316470269330255923143453723949337516054106188475264644140304176732811247493069368692043185121611837856726816539985465097356123432645179673853590577238179357900876426103943782376494591742934588497117587146916972984761159060873250939462085575740754577098620558011779529884042198287643319330465064455234988142139565785447474023546353758537324801838120387600868416525400790381285888256687085855456231577527939305920811766585308670132129155221804381548625787943020694528015999221718191557761789038539522349746808797476907664050601248473206874133194663585334983805734803620705778270910561716767680954814415310034502440445161332363611749326163346444542332941724120365148892204420675302563534393044688859445173161934549310336116821178855375531041423821706430796012246288037483476218396982916073816451058991831512686327488459585043246778160788873343661684676258006436582840222063757785048077389404912747062648672186003349751782781879120470020388873779589349589877119954283343288199886936593732250320339998610072339381292833594919318294607585610592445446058872982335095667132127175014425218125214413231078371985641017807775785493244577889145039577777188174108486988317893130592966383813432499006567940128890939479244323108485896276588430953410742355843709083268647257603685755576432496460615685892047540436050783692197618658469334121647320471115721375248270317298667413885986449190158090512335150379099138100399341203804418312058222344749422138096126080879556199432215607580443235372610748457708282406189424477174777113454219808060304360551617506661245722772351081365361727184008626088629774354996912827427281440499049041576203884943192684055274941226777713166180704666821661836801599842400753555093087939266058092079721697481135174876099183086089790629407423499734806185565774380559034010741081512897186784805572791197369300268870813900049338389921638224295056714454461080883077807756965827409720772505579006260134743029388552109572978472439362850714479000235563466922422958721089708044663530770968705926840629602574038878388019643087612154542045854056540307708459709457315384451564164605205270347685697223630493582980421459157794627274676372969627024586966924583596405274772819815023538365497746159407402985071118486658167977572127791170262993219890667610079861523980477699432277250429236731648600517593596727079745602454212291388785176078858827536463762779568183706158015662514847337685511498075355876317986401027049498458565149532973850630135737935365629302924513786786790048323898387186548565789758323840386330350805678311661668819487046836628773473937016550119694407061934853709391595540848339141339562398906165273984800788818476319559628933135045358340071467340560718311395257226930060643910945656036369014077650204164190957719318064249345069695340774396275899114532813398922449231049778114423636491611546062143098016974892361181519602676387589608583130651079418394594608733721969897698445638959666319946906799294895905987977542184749636726284838213133381329103265901431056460552198636544027401553454807878800184142237016521674068629539425061540842782875150560689263853914174686005311659555581738240293348748829414334701340216928868296932137866487261771102392804462382692100774795886869450386073087851339233549037171533701237373882887159380967424233478206989310941862528620421638791713282931819742730065554410314350117030699030522564018656627054502915254780314454267975468798809977757547241474383421019867049961270716059244572562530354419900315399436810880748386242324583549942018952773890856528889742800814877326003139319174681643831080069674091291180341912865009046249563081023044908135836894993710934144992208123218583651935333097545205397938966626601840984643405793569475726329388572530949795473282034084336320535224014209910154531543510407722485318796254833215258800135568197168835686043257428923676485513978661701358661225518383667509931816143721420140019780325759638787261319053516782352406799937669969308868187771369216965546804223512628737189776951456861268961557332618525455351762820170277189251011362539471331748593872345939391476553901819167118693498698232468240016493202969358812503940510069399808441932041489775832702410242760947747486343867078642882750672055023495156544613386480271885888119871160456182534424683318239697546891782299368264622034415206736347722568305912824554461251346750667874949793857027235073405658177480278350048463723946363968966658967300803952364477641969627768166678517717808017203461040592577891255414210468155691632530732864273914073451144834517823186322048335439876994121888667252572355835300863681487974698745051807413744331978829252951539610434435713708005248684561756371575564097574057659976672637737524952556848374707224818986398833311996461608803109961417168380806429106880561306290491926936466654852582162435191131557804645330465872675705723681938416419944079307929394539417506853388733302782844918669844938747311800823974424553160787464614146073280139820568333102798496426105845088551311317841700799436924909768904751441310197440348317995427105956855168650664332792080613584925093232358138912294793460647449153490340464132609564300008281047569396447857558686859078214823813153671528896733462446679789998917532271775670745689396960130533072550618451953523492390888579194517951830090145084223692498389800324097061821106193758416618931759430801641649851245873233726093821802460726241352305468848896576839483751221370699265517538559999767166289427485008562568479863592917414997895644535494509633740559604514556961797150444978083180005089474619059422247004941170712831294219520046222437125372470890435784284713194586870442901608120859893308413181708666380691476932767117820472789554445537303971151791328056904363053718129221799970986236159148118806425086933824676996883195144005755712442843750281223635425826550593161160271359220430152640410166539179612474745291007979443218828405676924983126953608284356053551579748759423671793735647640560181100213189638547181367573639226901984994195564762832556288051825643822877081820763324198586233972923972600755344268524975451922161234307929787937434968350012724224969172943537376211740136179361369152063745665743020882238145466386696625654546851280532136238224661496464745778529871197908281641456679709273218819515944633019333340213482948576827384600526277361447580922684619069612581638431598276342390170816023510058999373461323266084629363678380378305978584816889196628182881429623277443912308562397150875907722422147623266973277571317609958135196552725410909963624231126909417797354335208439265096960655707701544896094224902355664096363537870335652641662992619158219776529976638866736839451823549251520385930936447556490245479889632823904183107383426184779052893098820999148547729750774015828019638610395081886458757546906763604226416322779171081719063228068938137096191206027632119640209770570983680817866233848274838623557322075174818568700287891520502812385713768109811418574868413781046537090482699655760618073052424307914323931255845733214633857792259301729283735973496465265579715750748287415677735801655461231571443163811844522476020500280357863867048153284506561106246953344910204483389280896270226220580460104875535879327961492667317649687463693540342707429461231047513016172966114236182750806908745519904487135606094996667376493023526543697715034011174483276795211957284448892481829679271706298631851105734876556802881561969900915064026807349779245430713500979860776493474487253359481478870780159047234452337836494708776540931560648396410635793546766151997623769736555588322027742100724147494335985197039837312748555036517521898145923661371876394735301143967418447277204739963787042020139135453499245722397270975610438469628591408777668932247617117746772010990660973684657007249352055978451854415492718685744259103832900721747022825208720509376302526628291769852211599962194665671823424143970249663126090622826316125424642013755266132112005964608034724185798891125266855818211854921081057182154594282830174484479715801498246877871972789513446598429637711858476268382319545020338904192969302242944374655593348745894086168526490974068484158581384884034735179424562047987291988465528018394735122634570395618153535006126081228004628514014210170198173449381472252608359259458469318082473704049579128743564135206205190443654812133104717553426324130755324606124263614622857590946414372436832568629505309380081890816446559691450179252037847008267740819804950354476404306983329614701979756926518932061068604231191153267405694687906308156377956955414200341345192414859392009089385305701474507591904145206341103798752795066270896121423121854080975318245485708795802720033936964936156510410108979105980419995789710869941113887503874590398731040104419647968115894569605875846554827103329999540042769105141146596119399992775797361534416196391169567829810064363951244415072871694056402257803932022903061227930792210502788618390315462254763801214321963202597960250207671545047489967868711631695560039482654538160557143791947413682477684001225550253565784220964046107485666562168488210154741885206231935830865218140961987477541987927184445294457607298969518857865586445258230886452056901546210900055601326884291748174458275721377054718017386748281867635698771731485556517616880370384256436790020179611823494521492046745630913884593260390687454030564706654778160451627847256072584654371720810246078560398908356750147939313389079070448229197572852147755938132166184555005503301116823893241359052698973012601753106578618569751071439059478664923561852014832395722409748583726401003310141367297386899588723490399613166504465372299733188563693283690972207436875042549680950544101355270994625674386855766358286668514012111429678884878689655293860849484634142854219298507037576464289273182031288730939533532412494350963806034772258085729827222005233846896071506538302664926880135545109219440761961097563759627248101259249470666412412553338184764422980062901980325156392186401618980923354071739731681098323856420815385529562986958784846778162455111741909582675265310161452295797732075306580184614742700957986498066019726254123857229261616246265217208273731326388520265270424948441262706563427152128250083513590422515802480149875054675983923219079037700197152665185054114753048381606804543073975854073356736361667542458899442637074644318744776704401644732837370948769560538758675494803658906371662079194152543865814666169216624775805212263807000728085205803920270322205234247107854957794666560365940096985523724543178371246903731144911672634102438247936099464817769793389590484896293566186702864881610593668580711295463536320279014618378340829158303076114763543419002212859018476720205022132968972504607075085517476680271922820034757119994427803741293905122479464076169081940909025819593406285662521207040493961589329906300270870706020575289726326284411391096242413596525306340979512132383938450717835899846922430293587590990608416908875160343754662325838039983682788019501123998904626817757097818498185686913139307671153496358358902788767781425544547865312038879546151019859849163804921953211538687652603813140857941265031951412845352808486370272960067485273106108265393478754147727930166221463387820222595506041773775437961995408661683037405000759105848859052812713204177846272581434852638223276914020080779934461260116931941959945697989730806272435041113158535657228287697624332031589800958714574707056838276084982325716161516751472688371555572686252641487109249653294409306008825816628955067311896579144937702409182440765160734772085302673932367083297762624803633400750444155599569636353225033901783017124218300202493012373831956393511026201872616954184492315803505875752706467194660567075015898780059597829236064938959288982424033229325332845552149909646683075680933291655547059860845879482224145184864370662758151717248636197199585530247118205764996555755541631025392277658835933965717539161340274606644939248497917136093132798377664257144095297356272770871406055593949854494923164256074789482411251029825021518519504237749083766252038597246864099132298307696373256326897813027456314404371468228747616505586171664386632493488537795712537415088082549571091466332433976046758792238752681943918207270825227046566903638503920116488716937993980670169882701493145960516802311748524764597710979764030182513829357953376141475819539839113598993366806115054735544174235426056901811918928076553640399469398000599514000748047176802350278858754863726717215180236177323650514781729471790932821787753674559730152441333546098622961901213743070447954514749859736322934792461577543355558615343541124423443766529093175553013702209096974174451598740682958487340615634909272653875835300740268285745049200813998402389293819925337347772966956316134533687823163275732444597596694643632207889207784896075561473280165611786862658596776573472745512755572515617852528232428696267567849657467131183723829830836350952072200199209330355285885162840163786164958978820393636676128234053473369955557533754407565064322870186646476171930513289990577752058115068399079500558083202256337357967233988943572765982286710033121723175697516648429864679501300894688114589045963532162415255034936035517363472095726051219728688081107374868693156278892138765504342569538470557236669240728189648721291124588691213917666421878612704579131336340702480338073244782040285970195647799469205599068935312703375005039330651067694020241407792417549249301117219062531574290008044999767161888305947413146660514989175356309270300662465914026262356051795724232531461929760825813878285147994363804085668412417073599101211640171598315129776835029181561646618924090952504661265425770030316116766655114225363084834501147692453463236916796511434049604594455184868790291715338571044948757841222542053865330929291948346164906172510343743816852891539591100714280984472729609302909161421726998622481765258662020210033671151305907867622819832014215138638490965582368455665243000138539167969715191959364818545069668155717892995960805266925335111299145861854506889077886971983981726370881312344436635067422923465873555817838098718009623067842656350195996880431438266426042641356177893378912227842292347057721235726615499883048819033722655007263808719002192378855566980572165772602334307828233326559141757857224765644891776922441478238674925271750505922910753824192622676936987487094825118124232715510992732848550376659037657570089369415112642229482403003952646810841541006933945789670460585992240522277448358068241174874382907865270140515817396264427887023159425195344722994154242645113741142277764633194788967303258416946790869655174398816345050868801456366901681832404480716827255443986327837271770565454519573872351515254398681861489934045626309797279795621785859778024100724478663622290598750425221817982057062861757375351536972101954100830674091335127002493353991096625208163885642141654694202653548697279999610203166904915236547040498425876288661984014908072936018648557188572275004384720691421860671058995888252096233947491382085870501149471339973864977512141957400411778901539435243401330068744387495313181468236536661028240189815273080785785972537702976339093216971945235578804504426704977216305650697167332472355520185311305163532150262383831382363905719346949393882854911798294995782576785819913177643330480532985905202200255849054481082725606419591829522551535731684630188405961091315666340558684576497915709951235682058620936159459912836520606239153542316118626677590817033902446237255707604658591795597095357230360787806286005194845955218243874084931873754711582945386854612190208175840304679540092233805861411638297948947892475452238787109241517361165761597329331428438653277267904526223138111786069797077523368247018437597844298465431233722504122544240960195941467840778584376233914450312988532409915007747633590736396117554426451463996876228574837348637265297747631585631239584269594099426345452510032553916609763143192260157153282878393650324885577219735820534078668428743802187986046424377630678384355258386428473987336620092659036250382286997186619411518462881994608566395946353411521994489786608784676070054224016262264770670640085780070636324007860465076145947100891935323680072043888128910260314339568189152128638335027508100970861529485587540637024859464449926828165162701523454717857508320551321958978451073476846368673515594182723866777785489452719036130024011897485420867176010847778276863250949754431157481742807380689498248426464772513404802934183500619567275239833074669939584957805382961853430996003464328568558484850870714655004735815195336009204200310563947297175107188788303629861337938158157516086082649355761234745035956480212203790945724206694629307509989599641793495630984700890443289578568274670521389149424522347006628600023455698569448705312119420640024583009928069955672556132633658105282409587220483336492828471776053634924184150871822936637610861005949425401021660890020998298149640035416008985273646721925094148045397941743039601401848190025274547312938793337794433752449258745797735588287408694707865352305983967894506073002117557929902599742914401738139139546757703833744326598373132597880154265053074125628172250757765434309338153835815306681634523171286695696357036295104591995595718219297679851513451190510460369940707722307129489567653092051972141544705672299400432593535193746481228418933999498898210446344209413148756424701467073742926237115033745600951214471027632750436612493021653675442594493186331569956914800850186774259202227798585103577877849342123106030523876578363707285964568652649630085873130766965393674357843538204213550861774446720158425283578017534745068776533855165166133470137456808730194711964768880099056455573698104428235503150493364764252709509869655437073488812138997696563465983213978157616255480536297581551901748639297616052087854328477942691354898225920100218262449821027964342522056525916284620267463971581688340739490680912334738846420394943135457809609392815096145260810148472678696757758464197866617216244060454164382170523269523133376461128889191216666214485567045709919612658211642942613425409280351385466645755955764128242076814647822114573952178267880684128922141365379313137763631748614338395234058924534357255598280017391673416896072548441477354371836729541305365026350355814359500092180096703792280366835458579536617790409133925192360919117477465004553894608824675038999664627238195351719101774697835861511059664919479856036488214529597877096978268237731889495486059811214804061249120738000760851286609659744735103989867288412497098099990632662018542382178909412030933054281343411783063501988627881448802301278951865075642268936141679112375884616323615721038605488142779009698395944504712935400232573934832030808797963649728168432624214286511918917775854712570785067865887544173111931799353276023435294507107130215940116304232663260860198342576352581905732832050447954164143620914015430441358672411607586001675659230398020681996996355270632117619613013489577962353573635956110622889497861687428488083632058625389029629078880398051923357224076007119022955368326160697601484718590072070104941011011192852154015809510315328826324873922722382375894125572255035112049788672594164596566573881890358603992430644268366425817004633643720059378390976938509970218469110731316546516098205425696169268079754005415540032346765797877365804906128835636809033312382990679605502291849694264434296144932835590779838297301961068951233064696543672200239828956647611609544675723290628214335319008719836486820396863199003439979285708640066262651906076105544975840786369419706326285441341895832139985774551486542337833180199870821897825426764228299180891027795599231801901407404330841333495336961830902276819419864198068121560883226786932009545347098887006591950192380323651536488074410811099991935523314310499613057227893328258313424456192390098069933901129482051422211462826196100781780643960262576664802646820986049066499577905640202470968707925411901801817425759825399843917050488651226993753476249070404337453412332316579598389097386865196817984386857132700152089734405565290239887852936501455488302182033184282379837219467461489607363100589999456067122514640999866695016692412019750637753743050522030998554011400181236888811037236916145288218127079858931964022979317032681602609128236532820844039052103202181814078834072903717014384262883202423114874723846207563072552197840893554756165461887845347075079515098876221593962935409718372181552156261870075666094709165292951769255839909637592193244465853059875850416873689923013994538041977202411141558940446128178181199739027893441609891794027476047655236180532960503668894534272249589696461736499860284384818358440332705319797656135100362571547363830347936962455309716065992151291878494989262339388477661575813269069797581416249491548644722401165283767843008886574796867991888943205586768553334377039093812239765546385285305375643120632429452317140929851169759534549116276211261601186845878127692158798979412287456225824573974368550613320979034797814176645826904761776698905892414854169630796342379156050944294122897251814133032589365596073899869346082913049283702408338948302614999932239367788504581725741487091064040996212871820479100873905663553574498625782889472205409789364583724392612223770445551227079709110100124644228341405134014250889895960059656235265441750342661949114178700576610386447596360155489092336075319252986294095924403564613106743227047431094437906790747397417784938126734742322785582173020005037698884510866653580646531266522163468965942405463328672604018946031307027428461360840262512120725883015511731513371735060923859843625153292049241187643858630496239175828255769234118448544634972052630184103139935999849390118643467462123117434547957029212507372723188767340212651130009697100986155810915835772240870895654061576490644202819856797200197478173447244369545332868094710951673582358031700795499580051501763087675432159873071690614927770555216448006453499188373996697715605614223835389353570604113983151229761047168705579298516549358025187441812679017022296822770237888302729444098599455136379742113864404819622868084790392169365545415319002590528108447980702228946821652342429843067242764841822398245094072588881319932402431938440327585777925054077012352873840664687543285104132223794025104751988016902642256744186653510833521144694804147525525142087329876196005420166833485000375651671564589559940506234140185105245595356392257973491625904361305084230473763166611336997038134856164089332699665645624424318299088712154537074187243223198018341359318227265190545661189472791434747862176705585383737978410144159770393792913730664720716848363837613768035700608925956166905678927814999087171080837460905766180091076037795695320675388824490115661821222067428828982881338275935996462272318152913963631734068441474385925165872838929426141345973929983117774995776798784871958537382988655795913675954398835386999894736987537801997351536760512637561495351455247850762913577081643551741560299816885881660035861375319082451944926247767583426990349607726555805754378666642566508322924184307187248846494158639171325594169126345466561074075035883165568158328628451005980961449074125721802288508466310168340016441855014615521946469872333725846948639222389264876600089325529877097550837991698666249040915534919518283309536081355947607949275562637973545000630555149559906382768840012863008382555159170106296699868154573155668630193442891756234534523178771019493990483698464107890548267907498560850399174773026870531685073604763293349724506950866741976484708591122338389761796515255488193782368431284214748487204086483360175797453324804816343160149840551911598111434606550348580979172683951607346312118440866641814617614511186630398555144064856664880887280373960917735274105923864638857664027297619308395574659929930790331902206933113369786092561243066808099980553360091347861327704585624517239593458381305905914987180983701654682252122957275281677144319047211025484814786514896799395780316214174413606494053880504988619273767886716027224631862319967251418260970636754015934560770388656721630176137655618939956037082449103542286609053067995349322740287627575110842020148497377525235073919304876620509892220379043785900095175050311755320374031681672062232469095989577819148091829993611817468618731929101175996965705257251392967223847770689793193831426277121666468309817950600957270951236753632567954698182351737583221510825298517314986203819515357593740939376637900313329616906418641096223876826600230057990900247621631563501338270767007415105879399720577734535491164053504433522355792198840305497117120309203967402262030405900797889958147148318808105752005753284346009527437092784256254282922012751924102896033498391775275273068346347021947712659405791989973150571365413507129506517217548806155417615583075185061496612140129423283251449918013352090526119696718265439058203110993916595775824758510389295045568002485044605593877164384224070194407195484179310261833625189506494948128306831121882904446189254297262409422932753875325741299612221623146711700026755846958061755782665360361114295160001650370371551441046155005638487708193010103024566402734512646336215038733113404090418516434584044135199242667154042503488836600755165265859542975596295221863663638129564615425321592315406862445810562656919877849681630869826531375333207011408033635876538454320297340662056938410315390847599928878898005603013444459204357698608975258178383229562002038874862942828179646637094948322982054899463558842721631841072680639593943287185558155530039092584435637512357199134482664076592109607043251095445713360241029755677508284538042799558614301510384234389034679274931422706820301798907932859774831542772374163564706458682172657566474973184583936089216820550413394939609586399658036257579737418700235831636357500880798483533670874474283871632000232577361370184123896577483588930056886273063701047378466903373692846701166789405103801267917960470340507214033145142849697019740227805780912204078128915883371725469098054206340288463638921162461641719388828209995663822871346097116574769829024226393814364905089344022205362130433953624042325134931370841937174800760542517922028415971735891372833946497072278129947946925007027836530741972026243310093163485830136851941572201218053291877106851239958843953492443550186749278523092074246608750976130130947502416487855379389858381567298086761965192939674534312882009891739474861841514494206614510206858210089087224093531222430558106366903347537086943008910381785484614856689674833164273742523043618269834895763018293233424324680026459786818547656292487376374047660732473087523748885533115988024761131233838631989112634869715596547263333278367327286054618626509131909400072184838553687551320373957690982076964761737885934515149985835814615590846887312532070612154112018806128360513023184538846042421647171960204306188058832180953700241000925827068035565142803084281195186023937946148531300933348661133190012462745637295432396568544149546926803920072126368498535455317008388436346303976316256190203330279817020002712408080807152108607886069331287693129022940826046256601671039667675925146306962426032705152705469010166393147800698473095405734276973144204807239409723475726518121641327012484688013320734005342123907246067559623494990419999531504928607510589219232122897803422784252410353703723746857179506542532115689560214597543834915074208809688260437102120249799593070366986833334079272842015296271954003145793720331129445114325686937427696756965213931353725253599780094622118692965844368553190965319751043240920050701787373471894655313256687864458305714049201985712202941622346357750811962674155867143558980004644045848711565483888264785278952846896508919012958501617663819049652766922393394712639756720595776214284444848706356715299091327947623910066423849972060745229015689516230688272987772043834304403627417374352859877941725846294593775080044734325334481900405114964143111277717535202671737753925552963437747793276220228118327459104338893546289260550358075799722218122478574430727329697243722919575804267201790113341288731097173725366044323254201341729359345921246063842274242592938691061894991601047008045389098743899248707329291731884856742208939533182339354304765796524718601509601130764058084874410039948683162434296802771711324319374554094251092117188281087182794300611975092828959473654073056187289058087660057830839180383046316590750581111060416399379693234860708372867912583712011964148591405378368425133970218736461114217529400453566102919619189164592747137146100655851503180049592112163058960923254645452460415776998424602100181876233934367619665952596778503806866882944902263060227139617155871576118019259893203280501107268827578690266304470477376758336944208922541062429617459009265372181063634592119627605572004275394378667314338168405914891633897282503585165398677221573276893175861808459800872068004515521962538823010325110508592634165800198174879031843768337662420650359686995118831594944198184658819492545562344233542654026876762505455507603986064759264489697763010292750021921726474317874435609810960867507887017216019356309972131026772490166847302060569893212559237945833415189606229224248339044812682855118524132324491063973084646763078608017152601824666439724161327583691704764671094665244429004793644867386755072202115825909971610986745703111620647706630103321790824775691761241048344276538361005940717077523652191354887365937684608919661629440609147619469475074328843206059546520385939214383586667954089735175687087340634513084238791618383122389253294391815377219095015519990309334254574205448899618335883820676311536907492341078862498600628026296710767796692379561942151780542806262166814061176172909730486657826417947866271971139840700343143956345118663038526474099466777656721348346394264110285314416780984556782205336589316915101222283866997626394243057817083322083286769516802015323592172978921413078311769833659303573169550637814100704608426364181391743918360714309412580317442002044633844881296595757459576244275665509640486364736835631488903146931672868120508204647783527429763974521724940215303362639974456109104902892697182308767837917754105627192745163588239363937794474583155668366131009065481219322044519809343024302588494879275975430975761624580478982444574466842783033155152599243216326644743363426511672852894346304981374901894394225370237347045454362865170404192715919630954887714571310402746274525086864927985362641828080939738220158573365600688726152583166924798242228552295733233941798260066227609132800025816111861340755918013890311171157096898906850657550088357350726806749440903551526574405472272146671449386667096541306899450898800941063261924497220128854357041438594030160418678955304869864542983043153770679546903974944934101460992641903768581505576449185102703766854262487864105405415718770387003823424261178911181071554243324664324729810773434151656836640507263434551508734502132747865930167437400453553637524221086643119748168923763081381608786710208561287402947023603732288696285776865999530994778538097764524533942604765048230735626203683382145905442357009147558792587912837432377875441236503882330637277095266694700465301344140162017608450284869340606899568188256735453572221186796848575171363539383125661597107229723230901760669005856845644822146097601431139397749933980830664820702768346671423042159345891023209794023830207291637407579442083459059637604939647838606088153048607118893882955417052293689525736083093258387455019911303695343218375398889531085049804782884199155365385855547075041360679349185016730116861215756318084481756236947326985283532732143061054437461574170374804951073732821165599998516467012315155685887063935923755499548547064247131119124469864579195177792214337339710578534964206593715405608402306580826803948972109628071358694598435206149846987981854077924069692179177090705383313327362349840243215405511486841075238668429780018961573887728054253417107707412164627847706007656642105867293628705365224039145052528782824284082823679245746359616109840078148417716250559539647085120668109668324218060743106145601461902199234042913836067838039199443115793160969269010714454300255068424093376517060806020692633706375656495999599738663925851207963102659295848529750783833433117002684638364502596676712451886929834011310151728502050407696338801885147605108965852744439853620871761561470475829591950854794011606689379895450659592702882110385270537306733792094622848012991105958098354813700864082122524377168418133120559368659745280810558463986610796754022453790450880485282794898561007398484966055849552102618228949700513509296484076547324853417685173351282404666607391006760548513610215245940822389666571878688478269283738989733872085837137339227441044247792971735713795567803156834851916932047634587663149680288834162496243657744212738102400217547077630131129144555755252737564784133052865642554196301711035666275473865462078486652957676544711124547125798104082175720899799532979868444548163833983286071116359041682415676693590097044049095517581203492876763490132180249540750909601616864830946722090661390607510108686519843566262076123241040333029913429612868523103342591541870143183164896544671057580315386921441859137218989320753149333632483785405694696658555568806295599088290036910027518271249149557172734358952766261929312048970772372420996346487214962154522229245743926020138460839035230161282770800109679265701163125893387490326896429131771736530705486376329358113581489042382807579295785985989271631251816431258602408875548386420290505677445540685137941528740247785518439650827432572519746915467324797979499072597889031086636863158071270890467590287128812565603064027456490998758920746133990007427663965374496921298561098935399099515757720072760516290535357347107164577733016781625460415654818449310061625279104914043346421267584780077707314571788348926758743291491913827355822900913200399551701683455899603848519786417499850471607965949048610171440773337851152014952892983620044306562443335412322220430962391091527880309110481962465797256668254794383713953627464740128058370665454337835337412983713685922090053557343160137657880466593415210083823055825881918589359034066707219491951454768116944573857031094792555289908794656185217476459207087050305840404605167526223943749278721961372431107518617157168026249977916476139230723970679805062819199220068908893269847250796255083222785317977979781957603731650321214731802584319887786096057406276335995608590184644725789121439492982479736401614276809324664893812190702867589248234454353232923744907434635088856646142500138727353706446760192185174695174308152357801669864645823775094281060820099561552931870087930914233929101243001998771088879477769288232771039981723811202676520135303931999555889838763294513497401551583098688919920991167790131681202699424549994245924010821859043732673173731678016460108666384593632197651646534326861366745164678156912716942618078637829912261952861653829863029813098711341536261564107678810154323175987083812786188373910922385916325696803757524858464977953098947669941355553567100571914314606636897018659834740546790290914885549360290909981774618222786218510741875707458956460922194729576427684081861830383194240246507037293752249303152855831911010273372482148543889137478228717219995403204083904529263530778990415127930494774161310188282221254285836606061507636902588261141714272142859966275610026691657896843141660869601940865192247380045097483225066855482775136057386095868238511243032642369500145227455231984861984189209677320718877401367761187177623438644477179210382327495320672135332614473649607186669186727465254423890363205665862937062329611180400765190228718332950511295777398289176922347774092607544181744147685268928972194232928411467120127844384172706926300035624450700561125826619509184724552314120134167764797883061095649317983067066878681375505903011973103291707825638938424207296787517398637666041391173428307815873092910738160520903028756352159174975898609006313867227997619660673211246745189116993038294064500797274389428897202230627692173389464538916759670020196601082110788504242750332628249183096144009570022864274186229334204605432966901562927074085760863360958084789508316293861047749589971552943474657926543195818955764446245006251233780439636478508105507103944296653241170523571015801213800159715083283560859961823373030481312304884303297490025601756027736207640063955720439778396400611534093297963727370280100842027073252479396010433090770701692919632229704625146599672509774587387599837702789988616185961683101747202704724964530274509401766769527870651820443938458124976166040245263623919950553521775996020615091391547189299269538306723631183200773428114733873441640881658749741500449259040201066267532504018609032298288531589500766004818891755079861738674309685402312380699905549437717737449109918723483708519948951849933807605401069112055376550399858575068320035947949057821495471527663839296966110611624145628454307668961067440452405390810565532597460683081508224615304364050219288306860652617028300770631003692266959728832334981086659976404489850708468719431604143822781783143836293374034963424774658949621319828919727838526258098266798454708050206468135208227765884983684324706596731924579228008017459891002248775951889209058087773042090600026585809462394119493048639989054232990069784828348299387229178144000188805319148462232267322736541920120903648219771080565601510988519917101329342372992246609668637177945823626520916760973347327109511124431164721189028442382556058400569947861726506081704207247230604674945036720510157198449579086910609613780676898532691295529799888979820562335310289221573297299820712451683865839266336437609296546526183952599296070313755678037514961105760788045070227629047052650924891132862327781172288013329964240528302022509091412559319030322897694248019074138558933449293629121216081593250307075286845323964254172796550201684201217343972963740086569766640224792790240107718104611243134458708862413123235994296658885040575089525365849646658074383800051284771815913737575356487241920243345741028345765802080357390324832989241823290024258315142145792021214133617069044379751872534501976997868841887729215974543097602227933180980809124340869307956356974999741150587489133661359035845053504685944782920594632778582328533708388204661289481206005998745776766867511967154527984425793604756554849395563478747159037665892863164107372098550931576886598847658957019605363342403613350332576804843903522717851255332046835259454137451245889358999646833599682103194805265700430336732944627035185406412575519765819277216635082457979871685776663842564237737721783169742310977649345598248043504324153340613833620038076340451808807769565140983458484241642065375060909325031134874707555695032552604090240372681688738750501440647107451549484387228857885563379701894766759071404753197059197124039349311349646570383079694166583222554760916268693643224862554003469955255591422330683179041755362166586388842263463615916841869271219396695089865877557118831843947077425532947389351320933050250058554092275607752789047526078829486972393418711194407757278010341731353968817374462304100256706823945289987048069621063661964270615682649393592413280930709827365824530326376971930858961393485989750524701578761119942452920314183295839876139083645168393721578500101382919108951686414541711638055401199356809773355568530035720934054375733508337331230049305736206803593127865802010830151884243689027129263801123559787894828261741633503423704949981853435968318549737633068069615856602916677883620402993472165933584139827838745779481987437498531151020089546486452290630941608784014796292982200571298000667084912797168954719029460729968793792774345595949624254740212262994634081140655327361960138102347863363580511560201523770913544735533575612927848531392956590390060906405851712765973056279179552287799459154293678560243671377135570763787235225326497712871121213752794855617490563945146428171635689459687599947150809353012659443520241739225287542167157471165968982850739594266046410412502061997776185588933834356836569103214328800876986175544134285277047254677867070580238167521393193892453861759713335639869029536713314824170737910820769552726898701653629022075112780574110139679379669887000284130546727573107628482188706684158411294972317419980023742118000079987252134011462735828649875075022071821348728975558448818087404197333963632002041161768278893681936492717157717176340127164676130056901462149949634371332959257999573624153560363965321007267130821429649524224473833588588177916765495704458965926458901308671010439605204894279699144694132620574512648147282436835387583935602169585128641960769523787514217510280467098924934072580706878596367818768976325038467884123871841335330989911714403016635046067105790277122005456498949296084222815834758935739567245204534641590941895952206233643679861448869926089311169075970387116912121149120180374297131885479093846103067330445488140675157994646997784416392190058252145360364993168101458890114627674209813489056563897796493831866024289476865248233301291173231684492482471259533473501901816149000378943535040725445526265860529349358905739813196655904226065860983959556208308738968994465315324407045576713852539882081037884656412219877801469956049227158749062559103830467097861704431784276113377384225218050896243971063243305371652353864553452951309103466665203929746497650656055479906828156954756802129186007683103949109787363714661849886924613469280132953174671579803585340341568167322206297212817360542306177205316322354007142387574097794943085094808059827165128445698224886501372130002909648623667520188775060344397966847200763326236334343308002365368789012104703305222727722536349277536480042298718165206335423393346281025563577807910792083817041489435761670396865982496344380913850937240017883580239471620747370306631247927374442825332114449266401417725507408892816251590825050371619332651555828938096314203014450831301917538110993260509263921776078497354325852987101459722548445530477643268972803127754287773320047688371560131544447085740328617582051360840647154342476599809349755554258956460709674390384145037125023941531736520844480254129959986481623012685028598745323398197111771687006241220479637709628965285745811033643190295420368831796425503624480850258611693686990563348981759864660700075630686928316873669791577817834045972313694252129963652262266486208900219323795388114899506420739867131394344175330807394833358642511169782008420332997424203788815852898245853476370156277507022212612164774417266005227684568462603633663437031569198745069565443082700177967258632543481177792587205002809027432219362399525131372854107884346634489403785860520795162211027770461027498701562360152922293418910633880219685090025116186158166277175693431931986990092963155136940848866471459980466880940108328860083327742622127932063153809984437588607845130156933316024006764535211983115065771983465101523191825090387691224173970979303009808151962478989503798521362775957165210313802019175133066573471451274012053803593369468389826896968643470318051862983074370654868537919816183934341839988590743380931044440618409000789458871999074285913107985817992119190017994634894142280672517420920326147459002448161581659151973373467487605956041700502528262533364239902256339506160204556868701920491528477626226679184189999641282946399811213816675350644778069559914375648485354722676701382806392377304126805529549091553994998703161890307547288974708620485199802253368495509920096215725521096358124349542783619304308718758422534490534085315136598931090734368132810132620672360262943137737503909084334329894511149979829445118894819721326648985246684377310451043224638023922958769065068704722146648049501164186870677915216649188514583214217636509785930807471745619494724471282774873279812136456054354138966537938118959445488291769865058346001914279313222661854235457374993503456188653972790279012719725040847174940605231435351059523217806009120704659540789394261774779878116264110287643808112302097464618915949096832399925235970560358479758406951021633816784770429425043969378215073850591975741797810248516829119558191774670784401482096418916441424775809291116991103344155034404317132544677557173256513835195813725337110593020161441412413243512745670412324146446826822880255192595214686574293984842675836602422978686398512638313658562340219212718209477173091967329008681842416748622957936273873620910600338743156011956287420162557410940684308781562606018709402166804368116673989384222686961510941281759724248697359995565300716236916527251437729087279482859586438755066470362130056021927625260570378021560927557922282246003596038497857368439938213747901416221199994986949628718501610473150478405420369165149299987011708990792501755417667286948886266247953352823025261137794440661940559094288480156316329941437885331856974032566209406695754964096572032648758954485074140124877895706858835510305864200110874723828549291770680821973048551083434854250106466277122310447515537263318478427176536218966129685872851016167301467528707076704047397485263335645821722803018209750804565572687168957705966220992382138971409462564754948272820498448311103849001032885805709458206777182024282110117558558850427242251411947387374299410275653498807383187306155059322546281828305276236080166370257915491974944949759485950772623093925022005830029906972483238452125980641753691989791120349696437933346535165648422911167066081567419545184749287923897880629358766107621016278839868325574703639533427774679529154139355474537828434471471678540783341876911985808177887823072242816053221730812795811053192821522985407018318907891139357339837313675238038681449077439524501503351670316363471070803049144136968578215385285107504513716130010435703430122036219015112147946260937068335628574729292797244497044815543435789277261527849732997524527300594116562856781610688636490715569000305591625429326245218901158315791037411622952881787807170988324103653538905216607452773484532000534201824942281955689527870298775387921774745786476294934122392731821853540464372154130524398640339331621486113923845003514761872015384200761193983935540604257336169304334084731831932338921452474547694660908621514883142525226667501277204547221466830668267529413330167467654626722167225409991316093197228748016461911032329093652558833062997946157231234001412638697543687663296004500661129358872493583119809238525525654436699913498902202161094384449114777105564983899193771525163926654846747394620751226533968753277311495827295567205944232107712482496356568561518446096216447687562648284452802638854252577414361303860914960209261009411093497018889862632152875658596158528895475733418192690338341744862676774064414267675466887145618847673334619250619385364433429778851023404776832104906439641223305604300211182784706253805979620541099297992259605745026906520298955503534739791288336610295403408222609580160421886744943347446511013310616760185390252899985640760350298526149433223947155240083043880784344632225827413566006486145981376160630873146481121108864719630378384365069515152418170679339852909692161205492989149543813980734216949582741997368636723329776344168666974835701186361685139216350466860486680266024825056025961824387631371508111959984310027166150663140076297692879808666045264752080177053924783267943054308396939116923678871473689678782798045265518058350284353902807912610478624677360804182266227450020677724031754831781404949413018404198252481696526893773139739644344999627992816889583169715975618458937584540432772215307483056337835589283928390636971276376083882482424415384715270826413246984878939235802068575810354680886793936631365155011666510399390259190251366231907702425317373191042520902513467561863651485993931514831884964244818307722305235805592861948121527205748497844715918854213587312813817582100648852677457624345950155851260269345676060342517344532864729962655652077766946847306425932203347736181912302063596344723130484121834925625667899466200548133867855458102359625942239365570287749557578192002383432055846094844219136720644320841572558385558528028447656660809854909718634454658658555131300431671993974637585599744314599574993794406786989554205373344580850355608297323901121491612332195741356938975237402845693229736616703903565257924198168761959016160241563897983742768488022646903053277928845991569360195179927788376451748345547186829067961128477683094774385600521348219511904455096647255847346057528212170589387192698313601144815920344199528134340202337735447523738618456930270647330754229005491379576359924371786839093131778025047091565981480021610453588815524028343449814102393225599605234270121655478520993366564179378832962451015892066402116364302055185652213909094586810385615738454125709938892538541282581130144939453745434428519674219293752611966838677916698644914888104131660982030913892209857672734457350452088364320195055679476831596239368774122377279435391425089109491499652784224211890071514738354668598661721605023827611989812143149044485896065824937096585299246180951950725297190204190654577324613478101930374583086575070982351238207883066164956381220286140086736331157003975093336317161809753528343162554912741326671531822297758692481217117640974500555601103498819605758780336078974663168299476615888838427450349733363846641276474596893145418794813227069269522967730052705320994664226848856895903176376134914323428558143456290824586692507013313383690786670231100217635727610815914721079364550617156753568323403191769164641805788940044777265614566071841243460020675694538051547731017932812626859048437266363119115722586649809286609171973692664479321690635080762245543881240781511261776917728526208490777923286437345004664215401274832662677178304204456104780119575711440773289303634128451364646476074322952023565285551003714621999608282877921171014487275700919542715024296198087316171215324501789640272971355690554417037401733556139721319107098805613284226626098490768032177722568897374729530591824160468022102151638585306136497884827610480677671072765346629524536788307437579428930075749383738041588164748466474167109265489639587136253182725233321774508396093068496551077560216215376093351494363448706496075778518186308006932062400876323833574506230550540751031631342364962234914429223787167468331550061698051354480916173946794850780445514344473018693576230171961305801341712115631604710739343628035237406797754413234837735322170367886079039306153136461197099826661542159560393174014738563876201220079723681303935739701787262514234292327823081879867540284452718799075402476988298985418842291738743861450339587130746384934119243590708708856730463951236710825469394109724306816613451929228049463854812332529800892588980644579270828988680544495997254913871694487305758614288397040011098435796294044767143992939836525225865859364999647610805250462830655034457139484793048030050679922088657963427459697038810585990906183027719730367633443386953878050635509802874051081285700395228710795800053608513453192389153074533220456482402541279449905911560856934657917517207225966028136265266423528104916196903484285617530959935115971640114114014561121997193293947549951511571796002440750169488488024122894475060420388936846237092392846116340750554035899767563700746621781493591412038835424043779095917690891922973900147041664519157875239567123284800429495233337764400366934880913032524099791083759644424865791601691534810772606124297161538008245106944370471508421914161951749391026448193090191092789229721977330441795573285915319736588000764052797979012721710332362586704765925576162913665923281898856712592833716120067849236211723542819505821093140892350574767846184500705752897065080388550764786298302975934939991076478680856879698696494558872775791586796720278336190627113988830525435875187324837813108586919511117113454343898653267962953023269980676978136778576707257793573345257887453845483831975228867037320075142798912226236727598738990962460871418533129439422908158563529061270994751597033328672443100142932399766644094816661917659243317189342438665636756583826065337817119431429838828184931779467355305869439116068342363547132798396793215492031090758581423132997753899726176218225582507200495606099605433546795845068665662598710520790919921936768073671113815502032148931865463980766107272367538054866034378380579332159172129959802444033177606366396242883692900648670641427372631681079115888837400023642461720177385604122299574656210782191597490016630302633851042556465414091237355482227146900351445612234225748442050080956921644364715681783360709350402675680649231047234251856176628625054283411078962185216112105883915380712900521265824495600973976293338198014123867191619827446762127523976126391254643126966456089275308989050147357879685513840089770394725683146751400417155048187251946946076145472406794556225566781865059894320201711652896671096456956191673861252940237576700985779268617182985891268193493968834235777634545209503394210086894139353277802278077646734286097446133321089654127988698159831323105697062976227660699870625709957399127955064891108123510296828309107126045831094496674737230385051903626163120452609053161101875883198500810812843683904675647760811406478625580489166426465664003786448033209086159450903705786070167016438116424143711522827959174982752484107237407758873929037781032904069988310691064530807512955124382974083281332643512903271021378155068085643772987340288512170413269238253808310122556726683277600878055923106668622540204932413622365656687667470060556506310167770842486286029290873515132627881398214794650891054078399607644544627724974436823409683876624022100155041565494359022547640822583834454636595683745312686187650798016752990615549480321279479589174108346193475344450593232461529035205017267337447014421196199706346522951043147461114792292247275857567368126050445816273034543956949137634939668637879407201534881439976110901624758476889975922151402342360674933965152548634375273749549428194158117417484494544147061991918173466547269185886317970711866121268177311651397742701617514289726721213659538413040757731385447430903720499310159352636248446936009183893580167590945686815065424498268680754867895428357515742263952899403487332830948374276548640922197168882483374168066383408537743789511794387451378709978549900124234258411586107032371823352868889087537324240627210445435448549139867875735829778180814158539974219613536402061636396562087613747571542956067569009847017150341699072521622052173546479971709890245447753328735955814513133614619226642014451578684396983042902075367226364258965874076435376392738314676716350865301674871207534472673609380692342692038396052521141806693349472007492777739594211946251416588646677499402301145915970285098690302164033279231269713158347603372926402055239121744004118519927251799934087354230076032417928093420168264539735066658014464376101970250785231439513924968566214404936726628776206542120818913513034177297645032215969359042654327748025882770288318613599873282786206061980759630823307379460030910158781444132764742308153054529014215096313567855175560753678782900703092784722825418779793330411495468533407906711261961921277818359671440878098817696992948193093608830903209397535171220873121297166879686164382468388477729498144821353186376754471552639073671786391755457619060791157253220034838500562847484837873276794956077870889467003631015004902199707497927928317273054595338574177883068585539663893237687550296782997592302567834222266784108453081687900464245017194039337104692437346077567790773923739508417381555283803875214181861468053836963438806569035405210816326728157141771217475852481743250488258243170277119598221374140033161825025530941157761045272998270356604691557440506225824156414275923461409670443718997173364825918818420227802337566563004117883658252670720553233271933436200738269020064002502088043023701133472451253423167401560850190650228841098501394973054909206919456636927538290427744148574842192362539881905182528215689445759537291180520813381332400248921080748405068871442887004258376991741654860382374881943004729419946124003773746644323341220796948549819560127573116213229558288174914054164345702896912562439528263947546952285770337650802421331181454510405729196656787480801827967679316100683732618059269040722319494237545377797307777248855244513459025520289057784016514522988565158399482914153824054927360584257879698297200565664941423152452915790998195867896423841490534407733494538448519709201532802997525862878865004443708199563292652502751860767569892480172908147981111646280907569803972833313656696158343432918015638509474587144921442534487923141995294063039441478799054718653076821706800152566309314477746901836969704088682927877985028522958365593030167432994709376277511914291437692415758206830487233060129054598801377346829745278055955646573725067744237378513208212909545448740144019323909700343002881432757035408099774196332086852238835165300717369387104035011112572662744417028107888374256878142465553239435848230428557032436853726047368735358696132015816227655833135991270795097742565096982273451976708049468145629103308862128901375107219918808596017560555980633845302329750415428720484551021123870337986578684992947153062398350614941794314626274314702740206884996290850880200363354717531558233986146075094724426834252309194719684565848468814378741745906895996210942249175599488213459094976517146174098901519057603906529662517600827003767147987529265166804970577188036790139222730324970786885610070241387472216261125806607409390750235877812725749225352943445041064211569099558445348637560969048587275825206726127362647010241865041519822388201970444920372188051905934889032455237445174315495096678412975352652128795000239789960387939404817156164263653579374258812312443644725934256262513867139679880164984638664552309888503574957624402281647723205828944047632683652914942899081185515628038233470922430956331487782296651764923845815868633948096408227206629835777452839724938896677966944897475626466916498258208395255040379716929330134040041326138174586477421263873051956285182864444036102436367269619612583262876917246307964512960232743570776967238628734610596728017963984399096970525098496613735856483227168832291825462474921317612923330155025835963824877099655912888511066005602304909778474365280246953162219187653327809059581699480670969571009312209866324935071803044482054396210910807011612409659845126538271944425700936502817240501657201993701175054368829052214557225318371169349203744192593798965955006932777988971155285812940583665942489992680426183794413665386789293711052813996696691797139294792005740021988806459787120892112216325632398884352400933900620342980042798349150461249429364735524413344377857541198848712737996092539932505792452244686577941170808667244750254295633924020342186557654801575070663190609966984606158111130712440808199763219233090648852304428147770489683321855029316963545760789392659238531664903657730570252398615925761043802509062248121673345206239611690808718631287742483037224442834542934432319708173519547943245013226220644627293465381908001002357105142072255941055242483219509016348910756263031346271076007400389046778860969415780722178447843415992570763192434661247629516209176567608840528322452843457324794645761005111169489597192897101891379692042917417579750883604918704378605740108156084993471639512097649116161916850204170203324512668989519606068403378130694704346576639285935992746925992830060048677228447847904855772076466867423023413187533925137658134590987986926718709288524922789580849535826710226214501580319487567691400448823519246559877779689929214691965825120985812996881623774907779875407819804163878802789561996382267965713365045459714059774073022026312984872096042307590359557864471964836641347309229495528319495469515600202065012277266582988136784793839566095372985329596517763432335683942480665120472478337932294022754087854660544038192070344561913273881429612077002009726907746742309255904892838563513736569025250285583305250222492304014998346645339020119993548361187486298308566459182489481673691512993748434140386277671024035789470126631739208300022948808049178026416488205903198350790891774786364816095387362516877057845821851750176443743318565246889600445878882956909711601610287876813092386129036296593722790359429653746221251810239942303988107355124274020715863053170533408761495841803477332202656168707480744690716532360472355871451329090409297142955780509390879056540660650348818533920791471868925000295174965550978703983842728315338300238142407474831549983916117615012564234327639341763947389854926542221520281368853718773165442631520205417249902259900791330903912846640663578664361368361828853382040192228156381184155805367955954451932984883872135853508392670728539195799339732952276481147333176317877956687129169322505742676538084459741394005809882923429527158119572099578824186083168873161745655085139499658702784888561445969143774053212474973197867737772480515339903276653344256565327568582935748161734752420219392079503930819414460673290673215557696340711904089673441420451419884311265313393564638145086218834763032477645163833476029756941976924112040836228148158187694338289862846912933920626738881092992590098624415177307268940032490046627069436049117502745078211289258195054331661162303292356680839448062821717027174656301322642111020845702569027132884651438498055118078456374468148517107228371757882820664843522878241462491445018850131078732083367339327521227412481447952598929133453562785726019375837397639088580487350712113031594964496676274854354762438162585289241999461953267326798183511711167656324010533808524923439913933382509051374360518075255315156784364823199814835186362765053982823305692657181880442434183089696311313330623143449724996131884902204605535969769639030776387950464638730456408081835328300587589366112488081218154719381345910579611544798073172646025985615295837314457315600536425441453566846190035344406127712591217941071370575993495522972099419116104378865185525610815082803187701258894834426359864807000722312180093283337425345404906872033214837499184814802460480750463898943640938479652734366244391084461978727101261070570411176102206311418719083189861017355950491904814169673591976334902777823031379528473068170028919490244445818711037284221893872950221853081925493296370169348282000306145000571951304861489445683294940163301311484092575136313449690348144249874735425609563837538723147764072358629781278501541225049896799002649549350414472574976470169277883632785531119252746530125738616714966562045941209696136783761859136766215941660969408880716901198179073935437364810262593253499546055008866320244720529828388550992191109969429140607450355015759199367018969284505050597200415150761410448179805189642160266095893331861663929775628983932667517930942134225094973332925073408288800483588724460993194801771071574368141264993909472809660315592914614211788593395868017983254055895470872161881317104566941751111828979624034708282767690892163503750777237435026488126178347535462924350700169086702486977320767628622309850486070492502328567103660250097103037009450873411916608274876955186715742628060961325144272020779860776439211600055941622757190989273602148435292938199273027363878423791419820119943054390812213485064661292840594782494619946576489869795899670310518755466417549176017620132613028151138199223522685406811402455077476881882579175069656562067465706289208591233483070022329647488933052309596875508706148512840737446676906932141017850642737266294710177623975404184201806456025224055456895132620174746051468289045750264071756681800652925665200880587711689411262626504236618458357730055514416468532623137363138438119777880402020389689788607849105648089043484368599265410941360082629280590578606225672551231754123791223790237001398541374947502699445993907450421717788174701930441555090673325580597833055491169690151972000874173857643393208528425958424666100363837742162213837864381111194320697822476771905357797302704632926395691352852090624356808033038412353590213348547477641211945912569024803291463956063601394855382179344184024981911012459205331004780232682800297822749978714037259917016267062659302221112629038696326728324128853925512273166191263318834093690954257550438625009189289037569703995978070402250717701156610545237057151624703404816594596536244262553287308401394537153424240304986659522863806965872152438201684458334570870586362187048676534455682186696515470830994280548996403221806191950913231991637025326480893997513803680314543240218141844181797194049450059021067369424216781834603930639113522849375400661586728694337196864722161998713559497026841459093118062155893486791783253610371010079121529588338418235472577871185201807223256019722174410700531803071909814281770489531032447703839546754270521625613781343932998947035177623816428027272719486481663199252876772455543610676015924401271647414983469251051721644620114121476158576900839770320475600556904984402087542303163625839258413103479898447656972471179136521005504930796724658284570134782210595305413310965494757538941206926609578602817024197366746627718718848739361589700440832597370194926501376749898612434171317894135943416572133389984679056245547706356694796322660157025012364891325350560325710463971273318272797320714771300960556167794615235835277792084775082822500160559804758949583891222729944477695715745967073938177016879569670742207285401281913162828760436382280156537150040823566110153002371164848359380293450897247415620451186996276851396578369429747531660794362387228563434774059624966934755083436820631494838942467384324457933677696374293988334818268811437597397600448756391931384952449022533158149837499159925875862148112536162472637958776470440549085699413067239752733444875268860816657694448614464598234907440060774742503235603201105367351683370727840446004257715397909669790757262630346978836990173220260876446387831760074141448238766738534373030954560435090106486551145507899676179363508273406287842224697412968334697985237172776470019863351096950929774742159639549009901155276213353823915329009576054388092710792746694839700953273367429750816949155205641631606879283060096728801713059333238281652074077188816607253893216840705483322538776233070012679102212327000165144290853111353759170349702962282163622594960153216851714872493817952871050448176040021954646980452585804812365758392863092953832610263598138489860220434721476907560970383695769158858998028689245153093304054067348939405816505485120176006702753482139363272611675365181790929592819864595164484868121035160147823015339626996419809621620130661320501672119864189445149297757842758027063117607862528116425444789261248549690390055029773247576597215545041657292139966882518014266658955008290483144057453556143686130049837123250199941365254293049353805662461077267200174636301103616776580652834109332509705239300711066954284854143224879147117319116246826898790580149818061667825884580954787972343484283697616260426629424911938183748995416592632000831380460581755065346047521404587018366493039248308884498389725170545049228199331478678822225581684617955432164886704143248369305722625531664898489711189577059916893878833593141022002101286689084919810743727172159199914134173147951829432240757907981352188868215286237329630991407047278405873406744131531628148314464507422683802711821716831435210793296454946909456984503949409025054858750749837286025217121057716242941860490408515234865640570116383791087890489929264502236077441589080948148467251870455065974418196863168388721374518195234393828765525711596677810514831038069659208622207343367946633517854449844592959526220425752609742668248994567941361381143149665202408872361199977750654629986479095359273128943555988973131524117176960962688352173881409082042689357386638059083998152483618524134132364060677064276270236768714314296005229632168636802171762652336609577736684394541649807640299636657916329889626098299182759903951312829438995112499888608051914065111769452181001841899911156621894458743696072537495030155438518466172051836576701041105854410197066000143384164473649765335995469786839337972142127342094297132321897589414460893618283268769680499809240227598239885165756892243493658097762383992726527361358886666186747794911116756509889484135217310012559130641473405377309227370597456815156633770121545447201624854070992869138433703747675904553849289380847297845064458204982681545669338246614606942518080254541163391075530575521836060306446171001747314248135054468193999644839462450686825186594886975728982181425192125091393597162476802032494829226267857120269124776167733858688802776157755865945464988863829720370755289829852636479727022322043273880417483082657976445214357061427448126054519162825181568795690986846928976889016271883822526839786126272371553287777818705933014139586884161800054163585002927344592833479694928907837511224844307956879303077020479450367108753264513768411396086165283240636357827248784374444003002934794893575511802813734315707267770014816063596935721322090597160899797308051493336125826602850824166109613346912909751012976215162195096178564762852587309009361045579176275363916432113884309246269721689612554659322616409974854616203029128432007155407927431125988525699818984521129678511928032446690259705169100191241212013651491791490625692907500738788527688029068356436446611942241973779915799734853478014948519879943450469880587672724996995641520249372798694790544666037476384440567947487653765521781320948572003224290642353165402606169860770741204300094180066885724170728069655473153922661321750192280333619729861734598343331765479718681644099065449147262302181147570150439625947292976718653208854056862252098154420616398794848705554513914895084201500162939183443884700927129841531197652985385635677021781501858819985207466276231403108871031646147197715512613484524848781837769781928161866569175515863216511890993020408219393406185235517539871605853421216855478661373926934169205353003059492129384163120787539687426168369821629186672668479307703724542143412019888690770599126664617909487756446218830299974358798365851038304835940746423775277904510156902748488825044248123360012815859517828910949894181377474592004646022292989204435521880317929367438144947142469064042962235368406682469450078594063133049730749488335320981999205488004777999872631021136276171543361847175860298260436800932620595556388148058792079361308666038229611186906569998114186461810789190974535254200622577947235471151104381699014386471631052739842567840788187528645176788657296919409185763254449730189341721602826368281917783802425983656007704107854487995775515113891368379865241957390630138390903359743631595164914154513288517490224735199822109314061115580232874931022989208642557219542273114610689296858792049372230366496288661488699940767147535487525381153835620843311264592746566079000667330865644532871181467331326558908377316889231574520089619446990581595285142944788209980821306627159048786699814630402447030334308970429442233309923008364532354088933169553175930667660401056463897201451536324581270433239879724264463909674253016098853548836754052401191783356806065048742351383627265277850648578272055156131568891095154745668548393855498978462826612030342096166884887748635497249243355038449823537183635803169385097204435810233577640483841791835838726589133347884024607281195189514635224233686810896621100385829244005685184474728991094833590996596997930711405215705483519845123912575252065573398123711629777759335373312512360534486719377999991590035624947370294871141657598103210814349522062868209123228651454662915028306988491806420696812829156242549906467412511957664944835559334723525638325398168102001752074995015634668442777919772270224996420923021207291964167963008719123984894718605422192538980248269243734548488417927175627849603606530684678754512758000801237706616261507867043679088033055047642940004015751081573742236761166294364531836853756375450423237221387533698854296730627660081862903311087423737807919662925691446682728315180706984501320309721435584280655719864346595253050594729979233584532861283001046789520801942459014071199719996002776020473790983610848489116890374611126650411993287051174072064168935314791739136446840619417349942823703732441587292756152791193706242280576103080955679072298063163984524898454067090802341224303326942038846254770285082132545121266691477712975410022652358446258288597858288672182937591439986836151417757307709075716607980410827541916261396136448761592303799660090364272346412809094808024972689041945408762215332241913484947521446791293788814286901912483184810261273139719802545926358249666893939604482965130134466279719651909849041829071234102913974065610861880524360276199290756249735860871191458800990357557848804500780210934514018169051962331522870992895525470938840929438415699847523800010256006078416985055360559511421028188528280331665143130773848947364199869193025639194697543841424906478156164106376305479516498335338319601910868412560628933109076071480807144970909588201539795715296555857583739946098831465560462991505996382552461691501525935178336699834986382014431879459893754756664147767935231301775961129149731662200012659566059362703279345086940002000603103981181074931295993583546535796490141833819300909145647070746333113673926562894900284854987316644921140672706269541745336560975916935216932086659639128448318983045565272833648658781151425006251620210687877359683488039144445538213388215670287241438781454897134631716786247504692450678841202228779573663594763947322884190401435898654152828984137628252568208289134747012190708449633412289709016987819147032585169878535137904397610975691407679568193989078264280594725606175763976519887149414002842228907435594661889989265023458805164535031467587642186350475927390477634105556324787140345058190437969929633957056898449728715995495830060727505825885720867757548546203242967282667453916927111599865740834654786272692793122486911871378231296676827624284287392791926651067648746871680985356226232328138840970816779870885732886137955740378315545904539502454248313591288232061352093384448778407620306716656036269390410272823409326859743818714008533195844341778230049976315852238501301097176055693168172403461845266584015790573602238909976518361347783742986280126955014252552646769735629102258590596275372593865069981354515055184635948691105053647876971740222470017066939775957734293308908346581149358355596894502124851453216680429294252378001776711650933809527421948166601313483007793156010136991146295533313660464874320169102978122497800908131708640363863356293899809318856838070437915859079611696116499716366441210862251784690223503172698821841014422239906380349819543951711286619669331327230024248874262773246988934132378291589309510574482592179543853505298955400848187627703832017559514649771433020257455383964900356801525759247121097841238019235794309147905139009487654073942173670774345697948218859511879195381352498818939155660908502386442991052249913899776747900258773365079217360756146545569526782572994601230541072750858380292239868573706393198282853205353790054617921178397503028769161574573255669571807316728218825613011523534922646522765819023614538552358262237162172190401603530864218902657811311178695761569643655945420083942603528477378948644417352641272727121786770567054089148455260958125908899597944172927514840926973872602223945194415101953926841288096247025644471330966207888200681164697195460241330562334456002698912647379052384583253169946538767094181411896305049882277596483406011190048453767786914275816476305811117022741239691045611854577703649666134293285382554553110214757685068158557920258370204241245188136095459617061030372969374098470655186392426717618210416366549122557693596020224202176073098323489854367176878330616174566967616730288827703932955316617007994878770766403507357929835686945342668120567207981834941593698388619257343456089380178841687569365232326707823007698717195170158922673696439804249456104045014374026907809393308530458091127114588274861745450667790206483004144958100127068606511701067358173632300923690477529160751625488869715578486470802064971890312134389083136811213752341606347485982378821559456301140414066445745176059787199642434267738412808479473602658223912607167128914275954126759915297897212017538830267258848052758568620060922204303969022153620136511242755992655175034681568994242365787802995599639230700508672681537366084185506171092277263510577510513148234107420665231663578079705198478824616096349476305656717401736527226295671407190457533450217162152899672758157277527237463201912079667522993922583996131544848233397978881922499196520216478647926753758627843728712655406024780740279588240769302514841424398527041994044129991505289717486562986923058406677542993545961627227278892616804486127393325630185855880090187170275409127127285628142661595318050163263099548113418193137028221167854561725555094069364306599951864258459606044256534667861838507144259676155181968368713892610921932431929260141948400280127479846297019342902122493661762532198451836052963292415884064596940711384835642490686975943015912489872726268692539759879984493975527423615333454303554662423990529833619659665241919795652768586110199713636335724516110365200585867824796940153569134835624419589483144259594518617941690123794813013546834726309898448607397271686947114266413528729385894811739169566037228336716904148666448930800007875397540705765018222976456550648855609578662714715703139769202932563937995844140840391799300496766902405017214175295565251035076665754992360893683373245353526533079534947718045582207058695724036817378416803886160142434275259926986016935241066334278188402598234602384537173389864571674057557296744035188373054705682028311014168897914228609134267679723317393350584428286930011038425637857619764410794387879095431188122410857824756530165960024201102839959547645724749904797091359077265507158458351626839258463285302172694106026277938331274757954292525311385044299734948333118596197613895243854037497328914660019496961807098708356661900144027326766990065225046950367703098492851611131635773306096184634163709326006104160616701305554807693173371363508273433335851916379230987745449926585683840960716940451100637074577215076095587243469693412948801441391198259597159136005151279779378228300595451077285632562005996709611714013698262404246150703775175222423023378702930207877256297762810661677787610983755374184322772023667130765501826217744555788147976778792379693176819562176599498037769092543643359207977274987957093341555866973920946445004725476415736650882993388994140244018499542931625077026843271551533363006869578141103461249107061561596969582541384925516035935859981199690681287126514734297853505268289879425001451906639273591237988846636200728459863834342230204669764734226738017003292057610427959028252607299471736512134619425636688183677122637913330137263293107161318308417324075535333989557134701584625662905963990155292664253142277386019149869787441332825008003905948709086912411814306432896486365643530473900906827887044388039867222367967820189913613968913544398428564233674948843275280652385977916492522021325875172468661183859615691493172755362012945133177793744800652068561208508090609517099160211350669997271496084966789137606085850956419729421159383382042185208270890828090084601215395549465603575445837421432361833679355522276552705952732349034698476659715063284427281296367146984822976960765055850896552900844249488281312099759562905625490136272111270341435565149889883090569832533395573091045543507942717462779872988902336363506533568242722375622128082383296869178488809194320319114039125860184380357397455876082415479625030935497527664466778839689801127104733670773099873252860955965341377215286154003990135712912003697086945526985908830972976326031212260538863885849705151740437714161875295582958175134076299917449940035794052434680968666668327594349818094296256228141918436488525702740111331081861228317347765048201443268743602361266187446286807643101645654736852002739517770418901960798072342313290056225959377728120144314415546754989635680797698017401895669538521539880971723451338959672128238779228579173046111312570956653121438333941384760472728459554141014740367704920706494794816074525623329956796982934117270512774088383797255408526158988800229955347126992865871187257222420604588438898635085553013370892422889301679611983439635543164725100949852204903926615898824158352996605686065043131233980847602617768851354917507126150524685551619703005242229141656483618139207357055376286771646496736209245800031830720342605577308229150159466364140730475534847920611748095109937866332336054379388890392192008304106913348784959214742960887479186855794115435203733043644654543453015512460002336591848400092723891793412616815777894739764087601590498810824527526840222573607622271246706842836557759661007888144176686198329164289862970725539714235601575142642331360403016588446326873615903679557511114237590413740978110874945984826652930995131030924507181344870637584415424152831575431753873659910630368168215975993225780643386758065421483536282670460195560142585291712988698472390163879022614960493355506049073959429464158354018608962988639208202979783181830925474881923851767342179188339443321323336817690374189365255892367835917512302805098768542468883771789404155386293636703989550894948428443817071931175345655619520114007632177864462104389461961642163997819116203533543900676544103979963786590638620549622319007869731578513526269460400970533811066195276122772795777736583520889512678708130722330878495907094086966450550098630934122912726090096523947058647127654785101661464411113585177400131313743506412595013194013601414355649709404575839519433155862463525467881964472214587801013842971616175168400975998287233453922367956749240394977695032651504232813698672182192769313724172869695858857131799333865963322997998461018300059538635073627254134235054502020896933916946603676898367828181319238017969339405245775889970335023546807704088801533617043545421855227025505927779431226148688904308889469756477127910214692378067864035576354803484394360461805181017977927953727881449131334507113272876000595576612413029334830669922945388175290133368246407471109278022699771713923883427698985699716272994365321083036868785182156146545005848001960237517430038140445402668734490090676707678191386851778661131946504888507215792112816608620592207796021454548903743224880445418368523623359943334505154789091697627782348860449591790784693763092746812659245020086180774709909614775993361465616959855972723758563757558108431857998267438658925058704944978345109242632279070896421646293717985497554526624754245020641082816131611782824160336371874980803805156556545011898227736783006698394139847576738238965296263921503553057653886504840557770111736866081122868424280783406984046150535065817658854206072956884127238790593168270505867992916357049214162528482878426059387065695578782944267102077456234199062208164366916199143771544955917251889035173095299094650221697117232922243003415676187534998604644678035620111602470911799665361412179614250152500416319983777693839953158682837643845167272208632891161635146516514489953670745767464102004856749445456411731544284410938194043052799822738675541269625892373407250133509261706865681883225853197726332140428739725814082507323503013910210441061455931404547600704770403769156283110131212916697111401189312760242802015600892278120058969738108972813603060139224937899753751894754219973509956192497557328097805893841709398828326744561860903476365245942407337606333039491257851125302231214756468761586979821721469100964097729537062456438233570025186043193917366127464032080209883823330331088926593223096343203905699802668731717473404484666421139433795853319138531087078813882468149680071228593165611597191922977548202161097540800396612143151780982809257018178639101215433315827558135817667123186197648938431934773522909428677728850771794342260126641547898894160851509425079716529660819889473945779193658286921203082333577308952749741271256724466387582969327649034962456806016462152754077738871288979114541567219982563379673995858091780526391430506941951127162809932702623472948891684796173405767207234371934724919366225904698501560750198401196880596616776594264192281518114500039840257032883248658447510885347537804947280719956645451114166083788045343102763892628133687916293099927639906288227883055371449663716390351658938783385098571075606151344183815696209539896625759787965930393080417377422823746970165891738514163943830545450186874799633358228283340319032275399060333520107461964816066866786701353687437646141276377926990583002887468389161682496587757476813012059609144253132149494534592661291910936826561481970142712396970944476404585403229446117785144541719249153866901243496079721631421560481391345718001759155375448493841456928606424513253580082109519871857029721896617591625312230421876691614180088513823956021428871403636557873912745122868165807635534122787558542548225440942882494172377592651271805686716492403651378754325717527107245124884762530499945439357450363064891059553288344199832144436703344905643217628330655316343326517448201842949105555634163726066036916903645480507794885153125658252891250221597598593635971195491049556147181124370462406545597102317113967906863315349106186501230967465752181597001967890045673256124823062802103150000244656054610819601413219411182788953707441330331103961029131264098841342399783513044275475915818408846165540967837481334085988229858975600607186457273307503339079097087709682782538990906804321812138948248221715460714620214164923303534994275468661531475827803594685382353373277597466198462591282946998185577484796856687789002110756041646105739611797153519577300463588034369378005307593026004135557974240940347601403339240352104224744752855410580164018920358331616049593295189275359606467155545779117462872889105702837590622332626224432861422530142695417102722384132240701618297911223279058449768687142173984335021365932998190111057969559085823211459670302802854467548545867649834255864809169714838475591816093177922701371413560172684281365286282384491299315939284660833038959697943818998404797174038180559729600216569083781371019653709362725611850465808400347676918724122356726538516627648892501217952530384943745843874093328255406454418271439986576183233692425844232700332339580691087320348548974419639948526922486996631839722648409230204722593870814986557418978374033806759028294577211338798650764442822529307007572206809424065315928854405152256602368945874221547434358532567191015495062857831499354317320559457076608859742621132249920818818172850711680491215366677425231859309302603467408946963959534210747490445785822065232841447372058742717880666866749766323043896325603067945007135563170707543705490892271556628644554938898202978697936786443202787476405171868856898255569350608767197981859178943667218886295862366681968744515981516740540057535610068061100468888629446555829506409707912588992220059466870001488623254393311942169666681782498193813631646598139793585506986643166741190130889780411785086995206800203022846950269863640361356516288959988225173932238009707349363304643396684892620106789120643291050087363841059019164148143416920975401731574533009851588891914906521078281791335880155126665279201236062753312234980417409899951261468036629999458647706918123175935930542166854975066431311761259204285769471402368171779373928380642906843491810618194540417985093338814876273768990994489304570380176182645906353966778692126785701942357224036857911454058708802915659623308835739596718320697524916895670790188451981866154648252042486722374191863172108238372366171779109051127609408483063326865237273693110218084424929892554004602338851856476342116900668563386179556500019256694640137902031803043472935031342859640758305861234116768260076015588801210417483501523528597467069941414232676722721121864081087071233614917629608611036404052005744348007530675560924957347699237912702916042744430617824049333033799032559489378152332684972020791100090055853108507423950070853805396626515878427482147466552508018140555167334898318834023776367127143777069971015422501956416964400152174460094582067957467333096841367207600399257119792332859113730751045591371484178995003109311130085109217650189887214392185769786304414076231170520217832314372337576378924882289804180741222068494185388264463917892615349263635372689209066868111382513302708669329514663835836279233196416370695692916544735330601908771246302055151275123444969675078545953839908705116401135493078613464763057297803004884346403053921281647287882171150549627070527728288118101603998676431843819775036600622279595950416623367691651346776044751144700375183406410183900799685418756677882818614993169398603554138874267602075020463894342798639294205240161522375951054804141842576373568313554889674786084648349597570064898503484425877480606991320131488206258972215519106653976799059594684689661007975057342227723336109628953972156308025052107224930753828359365813718651843172674781139528733725639940572199092445604249977416292622407479687545087552359770184330002923325128419169513865031390822475540965113430425097466666817643424272212542390879367711322862655179352180848462691869533747116813221160180418932542226606090295379531442155039403470444296302933651257793201599984720625487335296012332085175090284630400725992353991648644233507050467478946504263130480465405366268171452409095001512409976719154171697789960849006448612686052022836711608266906288380119755849050285198465053483304167831612987532011545925209912711085735689294942201532752178762984431298046682131132759643515496872332183829362501359334791406958239416888597288309940198209482471657308251548341194700248363585462957502605596690021961401939085779843636850852610199297291312399543808402944773175343438889552601578542657160769992943975814747692316030382924147591879394039221845636820402186869956533967610097477849035337349748506121486327269882605289870052621152194515187297586023327249558092174460626507344504729663635877423543715809778826716837161645507963887586808209031533765511287867135966492205291721286846477223792155763404131743984612955123515312661971952347287460582512266150355426408701466045298064054004004784386599258855266850198894509831846652569648636498873472866409200273359616388294804476745069226947550100437391202587064438486680240399311133408122048764199328318099667864763314164535086634959803201571001346967300019753160623163526141367708041381613393390013171600281095905606390153314352520429221424685059737067678022760683285363164824814982783220019369193866846567279825850017981346648020610580499581635049012006711795433774601633025538738745362947663018021880152341706308476400655111265116636179142898350925428821383063682750123925050296111526080054526230661518821406790819715110350223012646441094042568201802624375290555987627065452529285693988497622556553658583795832402717485684098442988367177941009982698480467455457129045968208890199389027901098509248861223084631421381569818882749262326924383015659299324950192046660533829286656228885254610207448754739328226744834985947936793382664598829951679187052427404227234586456708628782012779595322276742962770529177054118823369844363344051503264473165802738878092255019823064809099388728043252863760824347831556767225999238692366821033451174184438858300835318781342831343459260289271798593921287690948446407427203163524157960278324774205729719820093617819183956038440006670493004687245950089911025221904028242231922577427405482252050778954042457434979356952792818082755573595800633975708040502579243437312678021017084991121565745412085485756707933323045000959915998695004978431280021277453166790714730953285640776082139559999628690755255479466375632215368513648619425927793549582136586882499186602661278235788927740647783210594337284996938867884546992298296132845122095891666945755030417957006272912239540091540967897280087710209093990132344656596427394045389924779350529224305201093013210847011714858792460400472443062676052815823353421427397753750562480741220621960054215488720543579363635844543990950500672214979255789886158040735294671644810471420779317898752365707402447947411364849149572276105884379890931600262733459955650546319712636142646626595145967960614620336712280272586498904273333515651340609590226885235359549903451382732614072723210847661272832478461924822894456336506062372178140820863487048514129891079974488330718453561841347651415489587017567824000567699439750945242790991636473353466438962552874110427883513463293752454038708998582791875185083819585180470020861643085661463608533403772436546322686702366492647833400894264626413909857725073792343045772472475632683145267774732382330582305399292237323236001847222936034455550893257034465983162498506760460696971889293970676923867307726243557561603042692448201669630352455595577068078019633464622171797912688770716276977323505610063881652927467599900578451885378817607978161992175800772304201696087525256364197717028439423112213968376745947175729010269653158951317153380733972611686300020250145575431956715733060463849202536646289070923837372378833660951527865114592688049370759585676849910832752555138417886242944553682387805475491093279052656244974587468668360551905092508934141364519207952236930262330274095379598916132524170187279174501049770186238996019896793327533181044846693524057719477037847729119002888207449938014085889362921582680932953014889718914908566502076496416512722394345717243010053162649060077490170176479835129173377857864201523800278192251252723142660990230561448540311287832042745761763268411095723918357286553890504107970970700282555208497491807793437064407346093674772185676568685401434445738139026428816406441164735003244897551280307678706120728655514782499162704328231437324811397454276892568211360167405430662094145095610341221281905964019497891056537498226733705777256440223894196343824332112655864337183092746128102544050542663568813228497398230518201059931309678844731517454849260779456643829719725511292212591290015358244363080471147061069197402347587891999295941458273610919590002424609437134568064001857531815593150217147987117931058389289571029448681392554903762436829696193314618157113141025261947641879083410203079675162240240950736848614220666577123129129299458628820046713755318734975742121500634458671533247251850499405831570230285307281090359832003964982427578884971458743349767748148703260384231395471652510114587448060866192699123579647800491498144732842583844139161143420799196992180793315493823267063517939960328455309106353128699538664260064632287288263419374523344542114554000766515877057775062288400552889540071675917417753687283447583249224379972195981632149418274910342895258391229029843379309314976751504570645313866226919501808918331971014809209109752716020641537076910872950255231229940221580654592615561930346323820881484075117189117924952228719633821735946708886274480409538493836860466032409239340337911153223519944914411454179038173222092354901799678436308996262167145326754774518156106819515209443378932267261671249030143071151681365172434864158325236612272401248607130968801174352047372190645396498544519968326617716933303284910907216204183734283260587447332654295567542889789244690648289441723342824638085241309816957692683381503417761843352246471602964361404977734692006570231234974159749468059558391100378496476138029922669491733147199326747454688383104615188062705096661637141341612648203881535598812558385230030666568317938744351221476026800927655256486971044888747013982634575074108398815906559557069098604185046899130147459320466181029408313924157356564776573873722773626842810684044070854978651688784320859549397831351549007752687286968602918970595079024389072939258290181352754801605792000211252982488612498723310111568538046934501017517620283090459457496293435801857691607313412087564602941914598996610089840086480073461080250935701496453158049333026787790419767511872718471564854368699355617965772805921431838259940101768418991257782720630959894190900791796834141759170223682193862159766945187367266825656834234796669629142264002578876998323724626274102869790416073491348062847097370719898440704190805566753979478407431479789388815957784950344080161257574348930099467651276904645810975915173669821369472101776866222949423745669045090471555382681624923015302649374204125003554009863506386101198487251781776715600142707251792795974172616616965502101691433927515361494835527548426468717988879802364705610369883821865165871778520646779356999005242501984689190373976448743072518050577627795840539168223767755676273162324228425731837628441819762388948731863718172666034670033754394360107610847976508689878862033061988499816943865111361438628638327522936285296100045303179548966992373928132197573764218682217052951871895140653171918887264709087588671751583703671176173198784309333693892789344194674986193270929449600914911362996327251190615413344898624081789966724985506250045436456980161506360218840047124958328524556618380556499105745286063320685876479865473943468865787162115252496570263035104166641607180826508590277119524416738764082448128109726631978693021842777682333214808797946857246327856903725731518261498216182623466118695529706182086597478901724227990124436812223503138366137390714388184061028890295217321663833374597128469378902160049846220602927492495892700446863119424030059219468412276126282483387811998606461885673610939395938418823284406138783198522044275376601657264505162490631341023815757092145389248371461921636117638364687131919461409456371960063683145607022097991687998642550940155773247947732958473342408644327331551259980974594791309450529834491662513307539943350150271924963689718319918246909781583425852395583267849969837958750605674380143981056031623926123045283519525969477494734947966462365232274183768992103363130273901429793355624961601793153064339807152572395277374612918781161464516076107047480860987588100116377751489825320893205232182904050427229215761513565523103585384431735978044253895401464552951787360589222181783734219023007027908082875364837830706972015255494181175130396688214608212023332900471577819148435526124739412337799550773530595621365599406760970615363539049604447896864972422138052904559277402942645175263102192725153938516888255578271478213694973428358595532975971206975373920350600336281811453982577271667142400293212604665020267497277571241629885931966868692242979075935588235219985645767942443833424352101366438500378367206470077798948317020136146404360788920157734861061418780591365437463281708302183292770406770869299949475218029163724366248809434381350109102652581211722184208706637171032018844412373607002484420135022279653872513908243474839277237889882316455327981782349219924443496184555600819333768504825109382489989990564939285480310575689100830435212483116499766419149849532851809499307280906412561549507789209485412360777898287022105697719346876694985757802167166976743644016190453902674731767117308129919555890442049397903058852780554517961684510892146286113517636467488586466160612801000609164755916130102131254300871295491428326495234934624887331789545579098282409939227180756276033837112737144549740964748144037591280782041606624607558812434434457122898211034170371674238033081103782595873390116555752792303643344160947305428815692582307139001322304645730983962693861226549671222099511690538742217350429876373097988034487132430922404047578854031473528192860333224835995218726602042775219744880962582589048179702843822612693580761895338604861717692208901864008437687506879544280865095588945327604550733139259370304320558062894345490795394869781011501296084692659257442999685841392476271929133141348715996521289030154600852957289985638295384533599944364220115587652449191116651454790039486770437330713222754803359449865751822158991863886954537626637741626733229033354235509182344551483669450514408149190377419245902836024389541419143015850898886548767680555938354563172494460399567977794234983241813084573169154217656885122596729924708517997074799641809095934311245943521740273494022480758196073743679192771843723890078777672803220527795759044325309997487265781896530657788859004104884492355218697800241551850481784049962525537719083321123510238389498748618800555124060987487718109320996477832872084780854038301132814682409025522669869630278716634814454826046119216221079646459484341455780171762221067131246156539341104372086753717418066851326039196012717709513464189825942652296908618556348337907520065453917720925168677237704901788255319908429570333681653829529831073281552518371294454050139540591867401612351547053601533287505962546959531976248881401932489544846020278527941859658278192355375111902827128392926215543700134369487018078123497372087266108943564724472268082636791577490080122298411585364205935409148638010226745558617959363767666650681480987505618751795700001711411604519172187110529195615421708248303808496813766874940184711686936602261292764927267182446045916975693612158369343766869803648073747560795593963883084673738468255091591231483311424038493753436345589527325569218018491978171811445138452916566192831029818211080224520710093515658961124739323122301734970007509594755386889038145148667607834379662505818714957778246922462891686492267361618959642447151020270178487553280784254973723237651003533488543142024905165163441101982460367251336763276725831687350301310289676179908939310828747595207217952182117798753602655873838854055501726222988494645165096342880452062749673482274892999370764791972763943748511304821327499714069923245055328935532203977784404385263659955660413884626230962783286550283247502470200097982694019255891953063696505014535862865745893797099034739212587286171923647503220028896047790752610397826704769953961394564937477671041345294577091913468838251017874089975638756165854242980751313322763047546213888641746659258118969190886997755622875243898921716515792094265581447672715784274755942521436081441846476794599652366660477651337687315486210761899559177777636991278531223091482627714832439446588590562576292184326346886415411486682033862188590135167693273911496612176832061966974941969764275899272768343915018279901522519533001666217993438874000249869034216518787158111466755067319433504686394643940973027441327048089867565823582187341078983301874889864636390963259522666254474474836628048732367542192439077244454982694960863221198119646960454074197598449954922222411450527364779514255430723982543723451776309127043820456919298409939663054855664240856209732679563816897684033334557883884115671288215455610960337587817977385882738117873819815741455001760260697699960220167493534768258221978884966457776391811524873788774374026358858771614718871342656429531542300305655902792841218290060226991758765359406595530339413688376975007709560605260423392060844737963345562470679324970607497286049053934960838081234238088794476085254362063990958387384038556572623512203694470588927202320082335629078558876229688543475296543898375933889682426920447172728531673362874375588379952037443965739314566384110057934994807359562609354029734755358563638139312586030479084721021903050973119698181776985945613143324419256641779840311485577923932972445477408504071133038371958234188725256817806765009219263256000746801641150509042519975489011010479335575380160208582200192407177643337718085079869289153803623087557270625720575407204725438125677807214330736143122912997530180100276070137245147981393844374742064355817266981809592712752257421739641350394924852710195259654088161356754539837611037133834369340383425951878740972980835488176786273411345464221271888783390225845465561878600388206266356952805724552966372327593341320084946401500141053884489744411568090674337343248670430705963907435850082753306888832723581317284384124574135718928580452724476526255570842114108840192584003367739592140983613618955906918130833395963447940592819119413730770900209325598114156539397771902472679848988985206241700671742944678589898391317423904363986372731427762964588835073626446282767196296646862450236707620920202645725195413146944258454025695979142517352986074551889253100338002513862004992553803031050276808197536071973098593784220162345608269652358811399974887187889555720024735597598856090738105304521226435110824425021360880143016820156884137781206306750688587406264497034569310224229002588784036017458549221148251966202105944520122580947530025104251031250857152450248461392067933687644859493175940665606091662107404118037581642386887614923561661180628456220474848664411789389685338451363014916250077825014044811534222805665713207360188101535533173445573952754658878374136061853919458839240614767044329913748950829106987586745690530093368486262804300382178702973794974290133329370451234663695305841811535754486971715909949600476484128645835776699452798959538426403963856356923064259000066243943819042233555553115125699131444471430551454380672376123045312516273232050710410408297582701479245480634479648401794798460369048523170141502314485937106890456698717769535857128883291670294510470555165938616640865917372025166363729771466445610724592346544139450366051781862896778419101658872446679892741672262719349282052991910822970897541878874944148697340257942751518080367667868018403786364927264423041190555819295116360359544882391623232817968088763114396355853047176604427506488549627360076440738362749437128247984844887324748286752813590849962072441369498846738399161036840905787325233630052748834167109192651781326330280931576663806657968347879185089899618825399286556651838869004379529898430396846089574187190628352788131841329882036364186466657646376460454181723334986290827426526746716241877756912208455070670124056048474120993003787469635722996155283669958123647101198806291862296317896566839575352154244490196411854540216302234109099585212389138184142840825558505718348334594027849083773962549631598577449952945130726846617261525074262472848965215132102155441522304398948183108495755399190780430881081000277861335125410283264775163544066085831919652343938774116829206273080178320457570035421592313057170471408655308271239842752528909451677405708708450998026961053098725661437806947454619426105695426986244948657862063144738000336942386816133456803293774564617865784916152551298995331170026150971390311943124640394646315670303225596883277041581989651643258332334050898897579938233205659572887893489365860120129481631590099530935835838715459723648078640932666727038934570003312027892478185132063795704575237290601662385181722919094460096469207674266466910314501630602259260291798549020360901855541274216599040534353326030035084039794779796202268040822540171278849610811063722707882219055457867670650265940492079856388465216672943387312126652209530200389474114055577706751399217236671895322795656673864197742083012598875264217209610809272668761418277637078142599801196491943001737388914203321186929309352084489381531763029210390668848873733208879275988342624649213833500520613941406236591594308992800772033681302412249976591108966278961896852339974776718377842269078692287027984816793968027763806940303712570558175583963706257507260473616588379717421964026969478411400109840940161371205303859056549276755261384537712935061240428048625664091716417673968102120025912347461300825943656917157134052718407726888557050246378697920887544236801550028602976557092129535757411195791065795210459565305409328574185153241659630497054143591282468082161166325430541276884288420447704566205460405979746548860521536409991141024858520873009623540230915922794636956131078335736316269419384364534274119502876679350463704134321648231936982199015831910153703854659121114494654352505005504984701570701951771641366769331182961527865035482098556182204447174680038699900173642245146296408561158135572909399457800301194018382659869592036346251050124432454830328582693955580513293838634888386080010136154166572213754979773872076632718171676282878032874922100943598810335627977045309584862259095348507650101871565705427115978329222306949454683874931270445293213557359610245125280876584985968303450793816896219710276558708525767928594243126086441874057733886253446291022764109816740131177139043877934956772723277539795899191759796477054915177050704956898050930083037423477971460143298740245322996937233792874171294797618364383116158492696959861232482390168354326413983711335621012982259200996262786718489510615991658162706271593009306325114234802548518338143220970652839067794507453398469790217942257415890496735329039297799409887446945358680078342192029255351688930128250477648479167518262789002400952649658051342855540299925859510773362633218235556553426942270078409702493237135341518775156325813596406230188200832015211813051639468181188529632401673028521012817025667179122763938543370517162965191304516747061770413241064567635373796189446970821025957970911989761119982288502401278846040786572944975897328198712390719240152797856729650345842231271586060193404625668998665823434459002797039082283458045710749868451296475517750236900421474740169965339333454118587179843121569177086505811094748431870108333768872074490730345110370011423342998265932452879140595063066865881125336604445158273260311884229872071387284222338837894823506471626903266106269305855774304352627578194974332231294940332484230041214623227257168038999235959840450919943550166949720639121708247583948085402273948818808616322929399739435043765771630574965926418358879808596032162253143515900773285947819096806302644720246622071793867770458236244411442449345337897462473692921495668766663548602889144974099906411841117167325903885438457532789420757053526644798054434038092126912059311203073797343843558863279393592844699836452901104707494174769374927222526704636455633535736062288627490613313365048785824479980422284657855845579102965410649276461431481883903734517388751304719499603117706620675467582336176833278087847914590325538153844972609858901474394801063276538139350140587511254611570088242546832341440774891865662266457849545982186058492241827951679609165708742488061727135637781311019933301024926893583979328546033996111608918628116979359543269136972494805464444368678355200339381754163056496592663936477802928096781229860004849684199627362875758158644514350743505930781591191217333091247697435450441445709708952216231389356644123009423649899059363225489247139057670050369046228643009243097197373249695726571581006606135503717328859912803368742561683928823813417157445258995303307955269352371181336681994017469487036767255682152280689727660774177753342254271411416696454501997643744766567496469681345036336407825272755471185164861515904726937368951525395962831841443421098814568341703800250021275978682289577055906132223524571819728731600043140948271895941475035956552532514942855778546044714383979142497243266533819050894170167746523692534221342993990710583311225394830484177282013925397185950278193476647578889381083499353039362054116158246446930443815788240561369127691573451270664971237908428891037574572728727656441880552118665552779871220463701160690585019536573113165417693582396503999207847207237669515382384744921792433142664809415775036912980689410219973317596504830997625059074608891983733897453294754326255866754076737888901140307071587775287714447160605033040648596826475773067160430091693863624701902363756939723736222477954133948852866559517527528489310737193375169606904534595004547333157450936207596284845705408676816267367357899555674833943896888108497675254094474469943560458777231791119123743512146555103509746462890671238026856278631441256874818182329267157580676976950812525691847366738611390244500444589226556279604781208474006083851243655015830350165042325674490428602039983166843187392502593161268214085445091041082079416373346579665156057530114138052102128957136556464152808454023110315930762345721851215986141849428941997731864308425836622284457125788475616303873524709373851063372679101940017913267856785921690861851281441680869233473145457470714508582030111789778175760314524209168558038167500672569505461289389074310714458763335107044707373007749548949556968800168475859357263261285396660346688058048489948640324710082032045577136612375533995502156871322829028908282235562889302597137363444402253467214579590193157816036672514728683902537891938659464372059615607062135817431035485616907708806646469773023400474636126040029998067798775813223436603467699204376780126018024753402633513547220822078391560794409505369050803249083561217263188819822520032234678252888318916996257406193421832719633899239456666754299203072516588447155174299945918080744844744618785762979052311689405974339592785382256524417829451474360000143483186518320571184911793008728266847057015427398241672945495778303372672703029073226581791154366439347058449418628830916793393847750679891828403341894695755119499642169710414525683298446977790454886762482774630746003079264521507322093209839101200503500620112413488542315948668004948439763559013819223228041723433023625407693187748186852495889968052223960398523831451314300272022963002249002046179342989917493689172881908821118651324776022213205393376042496917588812238120520490476629609064161659046544890037149806781665996133394892485283263750735603507556694487957914723365543600265190773949482103715197126448202555281319927134448523687430946754942049628787912756347049048506866541463704130276169716874506193396614590550077715876360164217031174364666661626454284807460355752788414657532223179751888470947726681101941985408652979277041312881333024676011010996693908174163586432281236807173277278109720460290326367600157103929780358032794919563877310659311270567839748432156719174158023278966877634968055800192601115680113178203419582539581676417248262005208877672986600700623421464918309722950465286232215937545870434625918464608575465924181592587867375998962503098974850881772553377069773104751829816412816209374700826849264071100437728738409924726091787067231888027406638209129574264920931602702541092794389659888961333388573028929687940844290827387260886624790354373387257074287254480418693560091817064230465574947259798837800749266981014766189516891050777187567841855371173344854860892673683500136848619536962229540639592687094175268317990704041714667029571529687025841868900483616741328269729121003540983217865159542021373605407387223581297569489983886012634794223457610134613051073042901727406053435608673306613156229995014763729846267597701153480908006172494214371306952350321178456317879445241732990779405300048910263729288275929993976822891054543809153402540566916078777543230716228060904299488550199002890785280304143954700159623825514261649844745708295580095941822594990394126352888816527748201436368679102484820953149410005368435781427558568380781873803187078939333922180621423794066442633597227814391753080437407633898256825108259018317069554657433678985411886519767442797793062690564879280336267084877046123637296378237160531725247892399325193165183133064532911660691397377552038329573221574899060164441049726582190859575501900825825302882732632876978563643905250610778019001569745616543419766204812036777489665397696179223893287182408723908654785984511124498751212167276226248230413453802683128409011313259893232981346619081470849155391762239381664732221767738132516187408878303649692769493557650686769224661752502939114520446472986307828347285321427689093635177573427890604529926454403232123259562786849984262387735522858654848696630845810554350684748227963177377793204967341761233332152158962121246257362059618385696093586209223863872508446890794724740843281509782115762136060519820063000348726439201652482590624375818542884211183223410229951919291477261357737280842186103137895370014461725683784650797088612415212303430530854164204623426110655926573565017389985955847589367516236196692055161466155381552878503680531522715187072935580479945874501758912449777085702602427794456817292743495915202289279707595808940231353769795238820825864862085861774824622352510704470816887979732445424054462535191427701852570588189525127762169146429492707647906801514282905810785734044586809797039303669783967565664618382957171049190760885429915722406625175073340054504323061856559002571005949624002660678620946032054805472356133993749828306665678643240553446541667347330002436915731474640701882058078725166640127539248584076089077630808893351513193316104021639968055565743258365744611862418646855704397068063127512832885258233956016812092120631964368325911720168283383699314613703387724289207787760526766588868927535367125868490076942803100828803847671701375668191513166444189949757646175670204328330759577924297085684963843900656377051060213204826940779594618679781993766036149605184845877232919622822057378722358537083152207184107580230643732633500837459216260256358698805101691797367820439470299428437848055490332312448275996124417152076034227033689442739055998307717284626229540327788224928436348245204213077703343674086454153280697826637509114606026861473166307225882787823784509633016504491702686621072221833182185716325338228449211463721560072872752628795180191803091404110781573148166527277841051187577380167070753975350781246716779377640755330009665788725738703283672045405807565879964756565180993806085021888316272202918235962762087237111455278849151083496632005162252048454395660605348233909261479962517403489765421717922550054017678474356977075556907718495246786228672713283924029574893860023510261253373376426019548176831146391797323611186835624789198104762057391058578248769668803634630372689355682423267897529305890236307860845058178649482753517637788683700095705201414582836165410105279846100161906299746797168652981717912680873497434630787282035809855282203045094824554566196888648823112343872955455432485726513935703295565188052852689945294135676238319953846165131799672224967302946516853465912236276823014830057831034891064503962045141040872886787997304654959966528153036227331136182303784651082939737918982665070507708652850716191754548723532104951688021295758003791575378393432154985396342701557227582458203911490484946760762817293967015996413694564251954709350557797467461639468027166964658043162250705644961971674026002764556010909552436513420674343300230794365077864896545709004488275083469025258300271376181952497421070543753420112817512522827954771513177868660606156275666250435572672991657939359733110400826860412812628904214487907140231307400067120963132923721751420188855278899349768743823872737203945748242312098762351992885729006251713332143211160219438083800671361439866870319727202672511498274506668360306253234388088661579784502448638247341524582144468452480215385398669054544069123700241685560592567126739506320550588387543334863137705703615692929721250483869743179233443345227752552846753073808324330406826330079868129793048228778716706418683140811278768650913973955500246021255846440569510821474428387416524869502387060972953712252285169174620176373595146591461355384404443854791546317071197553075069223230484611537136839093912479761693028675585931414055602214206982542584212402465929052410323148288795770556912225446813246737302720623608822569853011982655286883569828026196626600192867928527984292841379923407670264825610649747526103386197176519281117066159263182583497403644062447359432432797374541122793300973123327032491219887671386945538932773601843889672470368825195265700764754837289910892982101476088273616909837155635634203163389282480231806647923978725965982230111161915382965621547811866210510635908178897141254774802851465856261690415651405624768563232598130242394664668894627848975092212692525007074688594330846614483579142055350415849093509580895242765517309566532145968999835874167851407539870840680930906723921515525889082833648587830870735057170908950498343619765212999499257833458096531927218763452267608206329672089284730777350161055885524593420581692837768861602336673564413786491159230891613704225562323331307592977797637435122496197952398748250429209723550795676633142695096717319888956172860409655537628899494771137348262038903774371612614597063353839349624548343535883924698192341948656051693217382434618133106263345054365927393915223930690103329869345356560747066147074565789071007151296306114106215442227991982517711943643441754210895603472044426266274213589346754187213969144711599485730656542367862704724083870633303425323856005981681115058576113194435865428607288507313148353478425337777633612524011250630925932116197143642413241521754122526740204533209779085761393592345566469700457863018072192531192626847667684134768352363002879358314140645879067688432275738773138018283552245489540842477306967357905457946484807549409654067009597899075226356275152034909403225141358236233050137058352217727690038001409830820420306716209316762278476152574231021158273997482475761330765099771104213005861517736290238585938208084658748720223799339653056063729983085757963608725766702008038890996684624634702455554026971477483986844975897399139048628341611634310193684303207356118177823693330942220892322839039746658820189510417931266591543390279321917209209525239841601688513098506135964274902898903508633412048636264643828794950064086222873345225659711411967145356411433670759887383787276400620403499253485538416465331484735425917559491159777870573368252304223106850752102296051517250451675260803715637145265457336170555547021406313118782702161457866403785364453117927722866142376817939378564401405017470515958502564178206316724182215053562181730381423900267841946538081163714294412622583793570391479986428180095243256502555687908159426230693196858833609871772457096884998268922905129814926651107795997301814560648786993140350949655659750086075986943695587244814469663686390217451837898712401203369980038106624441020578152679667707348937168006518666953111559201690631016063708588928585113270898919032618450632127783145412444035302392882093993776650572708712318315264105281338673334331253887361509621394735683138621670104888416447353946459364093619833476109860424059835663726304395042631812124286251217893062602629198288157387157409789399578993863326796121844147660535089412695349699001832923387538037774329150237476190276772614609735299582275633832118289046637548991322567932633379653262689307722510446277609536253042592434685361859367380723368022113109063503677996331683602769270261894481124605275405936867158447887967687573989917362346754959919141708549195316601927645680075291989524120517192711729205397112539473771357282541584772417150756471752749879493702985227617174407932587562253059801431926630044500575498757420113358801998399891033103818955166128590597120135433820044648190063163818681130452633247514347311277127315098881259313967678255158489639775350243219494768779286100556680370114143029682950810990343817018653641635543413710273478319999620584861310571045741198604632080111930207424936949653465375630535380610155033294006219437731287498431573701457936554421881258323495525063811178472548494767091045820910950341928045076275381920118879245868401886758564971696076041016495496256819423346727092369501889999490070976685019033394138442791282309259165806114098218501622047531695946715514956780209612805111789056973039982975854958091528581345147299482084910556128543598975984269232024523284928501510688404337699074761584331977461971077728846696397515239945670991415346189073031478123029504972660420921298699968699217582217206936542971051509257691323691825513353506861504083049691178111277344404669937722690214938360439377033665724768542926434045967117190073519053368288489293841637661014268861310267226847737923499457627739279593616467102509814574883688660004525833889344636162633405872877809148038299379569425266455272787621200273261080685888611893530762769475615877156242800349077052026574316687562360532817761668084202538780568639664841023616621620324177446969429045522023861015257769268410369259241375977268475969843709054970398173379463978567576988162430284426221774037294540918833755509957515228388371326511401033537999094824844112493155935558137496809257967467381237207776350111091834787197040791340332791390144273095408313811780655196881950873118190921630882018545965485846711081097388576672391878796380248986917435961971479049482714614679243482059765782251610867331306606174384641879059516851592542245719555279242293480716331212777141168805386369956280663071102338362717766847726469520385802237356797771116078999281846529102193015265120031231781249731121753134013230185474057609329193164725611487492061419532627079518910465974066491302459629674027717582611200800905055681138474485275637288192658165866198492856343956661071914760410626008255811813330280674287948453008497685519522248966793213806128830973971724786536360949265448148750723604413439016868043643926223363530568713277747373182891918791889746106264379080224368855592591867917112555202830766582602691604472164699012451919963940319283812370960445921248605601741498652512350689942887884578784226365518249202238214730770749331073311940661018124563417984664424071487503219399189228961320984149005840133907001701368900281661087002629775270511234737524464826504705575823464814385950737454429037718425350109584048234912377691076998339629211513849327472891301133198550736349989363986985819808909288082053433648295064383309722503893771019857759806708355697624735895672177869350739529261606324058896996683592721739981463358191808628327111343343554627213063920611839131446214901377288881308775441185717708047369731607680607800443162117082960883359196292113269927970646202447754896736875085759340866341398436859887388141342442542954120248385651801162838406084235172004261522037473427177586909046529057557628021090488032033392147526931244397915282241434880826777589067307524630499906470340739773128059050860961198186367452092815415542345427798834277867205759540894923867501207246462436992827752773286075290099430817942767122470143976320244812667797374166953861620742295899619463060355059605617085606076245299188679460615043123560024502534052930994685395307287793013731477695788606439576817931093751081691930567682298636330828871775807486172479293995347802116167705329769087573219869682705030350563396265332762879357480108054193652785402293657699217522988626588059224601463250780020507260941095507913872068588676775392201823148933244570117325351588608757616228510555219870754241183620349297912101679420243945891272649145090369899822081543451252308075373131757690089937376744087904446699645006362642817597624726598421647880787727169156817418513732911287708466952188005613238573584920689270106721115358059385848255349064911037979171260918479743259740490765510915842842116042208560586727794129781703153879200200621932037165948864891674058720832355246878646790090557224922148490349041727162949520048536556807352972214323532202670217843051048801306320479559222364319489905026316269404953006051904044228061543858760762193027218782709328806049327454049153769354793616769683493715912041063118566414604103756759804498502933185376114877234197471098830336185026541029372812145819495002644488779479512344386738865376453609036220151106584001800224877481386924236499847781190732894781800817224942804558002024262611854658584530549398412042273546186836655119670242523062424143739892129703331672519398784719020478509116181299449090044172237224591459550090649237123037734040952347842792955435786195180904874154647700390352944204045081828494184720740611516249563488523395882654424794093041898450779844353045328349041280536024339343509094210138522131786122230896342983961269752438122479594397009773472435250674485564779805979208383615440162399309386306090901423813010662630445240919153963495232159968729376964071061060609425069227423303474806048360588614802027039319818696057839263172984919596991214588354298217759265425050041651833120908083485313961346188860330821341745238863454335506823171136317270536419010310760701838113648903992317167558594808629983024752720013238661580159400020823650339568912461238190981488987268239796974232118978492026437288165885810156850447018330555347060546371110655877294362443497608012055917733156194509788474936807925191945689578284586882537614172659872515631367038174630842479795606162641350026385719409061900265289542389547094025043529333855099652529214442444773194473630458950343789784974728624818018437225283031826261084978493490650688019402766230538183936131620380907793444769164265537416491487447257432963400159055509817386335002607321491777204001845785358903442995732676907532128643691623382525471893842831889282555647287121228722683782741628045609809382773038606672979394230851077162429081344847127712950641141013619313955480050584958859932758753723669659142747328729418589702807099852697275904269434439758903889926719642336788687780749235182255638615861024064407322185420800387006941255251956536433072583140829242297513695481716771624968992971328505573282622089545430935921005229402360465960402918595514774784006402529171537846322433770144813454473045410511478189950883743548886654666940053991262824700470270746452234311582363419272276236778350207799712565957802504079746801057730921606063199873707091865050672456658998272171947364736467621880494169006971138088110169840848332160325943705112443389995050206737506377744667132918382252581900703302867370441513803441162044582428148914312379840215373163389800171356921774440378591703945301299063871500612432923465283164736954077148249028088615151828640808552801858895572586616261339597037384412968867443595916470272319366193563645159967440227326109681245809135774590896729866970003689064582706005391387322718829991933345694483805403481619409296966814779229901516482506706651352269895340645207004386757159455394238837957424739518778705820871867905264208638210515147903597992900204000222600337076836904622195983985758493103402660464361069767370554535163710469846137685564175040255694114829977096846338575705371128136309701175227442916117749987953273357829659721189422926075057903723739478585017021990132452625681109116482833478428747776485996781758798836910669533905933415149477454870480457478318078812986814732118775819236452225639436382703096012310650408542079017295036028475983002273532975008433469383084197326235001865054279073305125123226197591549376675279960674287132715579027667526898991300019547235149156881861210963387255245912505286665325853422655211209268378041075211286646684386904273745573619439293778819743808318537589951328950624107599191181669766404893220326643330139550459869688608992268322264479669239200101884802705953357691210673504858870565135247507468105242524330567018397695887598750502483522372833997674418316910640599616626843150201193499846913919443242438014859084755657056029178345027859608429017256542059269858374526994884843358203485414971136936308118972295366133654488379112741609039718983675004276505428613430957795739932647702553405759172017790352556205130633378413367612250278478449694929859050130044181074617640010102625804706952173588704128384371117479862761928839886056606239853287688937529588554602875711949255410735485287858724458771469659860086286579344957818008398755083821863609107906235967979510064182599363182226879012402273696514457986873079592260913566369688436702526171250709470454800798888040048873809451263544541996848533211106140161703485456235432996790012571619028868599934248971808663372877282826680487045173462797194702624900620437611012795331578409797254164729118862035076161849648863886155454282242769511511413665580903411655545356945276781353836988053088460108894827344992376492913538464556452869629625568581659333798653889470704440604525072178931073368362395929236598733814278155606420418823020213942705311649681328236447819049725313936704973223979968229619793863579379637996663975393621040643697412756903821693504773904794217095392679768381952505521908346049551802331804980035428284400790556892918601108288137434395525524068246054028504677197659041814019102099372648165437764558800165164690467247869196890538159170141452960126556470706427446498873824164671445117175197477836640956139254096499109518071720900493756340067968525540660549243140394225251623693591352496941136337295853923708143199547449888030820630820048257539513284551123209726077163613985556679971666943483248087708544099675818995180963160727203181947257769892574256590650421485516802729064514341187211868357241373457049660411026165353477007961059226035441324757447280072510271221266309163581239813024063926810837959940102327620402916543884205355828115177139934720718498278977283870381902713653220499989756325354764584050154396848031249506934602991575894191561129109107783733732085467747565013949077701805204738766380377394061952925250178807472074303506328816559505009585479611561032265395070963184093781195296789536069311129495007209756906122268258652769317468705300754537103024727702206042131424067472936576343941268064943908741155162477864511686574415305207521371670442238257047652957119979668224686219270975404281535335025715754326360507016481392190424732740328667676328547142379389329308902438310966976945860695681426623691458441573479257857359920542723012650927684140240834132277882925087687369752326097800478838895644558896429852980357178480483121244829242529596343335621020737278832481839914980484452652202547288579111220706400237616914696514452076146083032554861370929459336650586721841918762033490984141309526706463394671962015000836041121941627958796316941881434342101737974057643443970980251466198286633637746535265592310489444534494052297163823142229832534233449970507337163000669346487319343016204991763962851712851258355359708170396104422912703163170543581749468053747765310460918269068339723398413908956557335031999225530245700262588948341480357786726471917244168132139927361819031958874123867629644925100116284726784108184190787862226976623652746608434726356182598803349893138707945447984767775664552170516282737347729606307625047507443056784556572294980264735184580136273680981936217745490842152621749215847483264090886374699009181853935803742282769736290955457793292837409397199478844229791790607682989372782028022179168325148181525253518567056768580917165720139926608925139586668824633720846540740626791107062509232479716968600498585233270865871517480922395005832831930205227620033791750484929783343920654234394877955835479922029116954964994413100688896496924271308276087686820877989338948526870915431423116410442441735270331806316692366716303258267134297742678697733616112883391462074717096292645246437039431341226023282103864650281564855766272237508289173276186437363806757324976374526939848189701031780371577188182806583713682313100196906985732204388329033596871900410797526962353821871246366779302619962849459777544322023438259145723762950912382279683055876491012367861516984267508836249794830666890808733031153562629574893036697530888163253377354351983042116891254421208826328391510506526425868509851965641172231869325411323372075314532731373839171356198217716598386351925661004373289754854024393892471715309797091641315412984679104991745741211173902799318781167935991681890298872478109165678145453278862875313024265849380809811047741036070852049577004437355483910344546535893984779764426776143058913892734824791867275493582017661870205595511269130436449438838465624473839037608733716273785817732263905562040892188131827282898898830152118922588814842089190033154496591307607776958273962025298502669681503429502195125060834070456613981777848117780095153152389878149502686589615868397625410897665804504696560090168020918524307531351843251887230402506321930795507393341836260566049396823315003890585057969265828085648888363178621928786389113146307160932442186487261767692336677699345432793866846551525480413331986017543076078310266949091493978687317075268828838480701791288493612378063660297551640395113229456192058406970327388918706648611467963527378543469838308771199231220035399123959947270543485339164404399968241588678863899343081460061555205095851696042163878592288063061889645747445470325196831450298399010641932223317787921288936309475287516268848276683310326472496006532625472221993495770401318073105195866215361671924757459604103280091006251523043726764218657394413647323095033284824600392266246490500577931798932554108743604615373548785253544863276385467589706246461915926585977839720375040110069786051489074441030104758489150271685089280613696418760808396456013576242043316072532751719269211371138983146523411248863601992179729027747625065859054513146522924712293034555335968868498616991768239756065035856011716372926121286612516129654225468004999061697224110537748050423411184273291755987131708644111801481461856667386990486283473258127870344418893457571963682712004194639739646719405866243793081447759607150211095102326750103448585407330755292817220637595438931135252433539980683682105550494322231178456839712951078974043264039300985862547935763254961411552837250322559790680681849730583807310438910728494114851837272733276991524678376047440164967099427507285084007841281819982791446902175843437381904069758829878768772337134731821576787783207953051482761664990067859372510095319007347164558573015373890115466230934379055257587509237888648158538457168173647202912612952101319265182306330358441201856595100278424696559424876877782153223855152274486761607315078614304942940473811997611537165488890290503367758308074928654286466357433953477463225137259906276885625820103336096264463310355988709575470987987161293152092137231090954544449819778125177700029960527236246824883975004903137865035651820754407422539634886011868456034898540834241223534336624980665695951037673464677416233708608106040277114871787751991778126542815061383477690120660517242783880254462426523146331603697826529506150281566530391151430869783496180527395586585016153310672990997205193502547979727228915418158675397180425509025747455396567331278755021649143866036793438762309822838118171015831477080658990236680326891863788684464082166202970985894002582518522781087438835469342867651753854285148107528865954203214338298855134073176189864848279394571528279897422348733423713133376316250788852988069931570938482705015901729538437827141623600425622268632780079458761459689499141036800417629493241371025032871010115305480784533730943265488454761502185636836099893607484317500060383540318720649673897456726940979337574111815773593673627871722992856046904049203731358850047242203607970773550873992977316060568384927773691547817925884591873244398268193562255418669313994590371670092547726058948911578502969559072244368420011918133911086875314407475060574785385682760052887491801150041311223630205089375171040772258736053131717984774074457041755246464780681727267420364782838854577820352026176929175105589122955322810674258602452626151713973224748859034209974207047427602542953430675269913939247457297076788517129167657987824240236299878206820195604274688991506663873473274760010340443352552916166430755823359761044418953935755770337100261199859902308787560598754249669486165034196727370003995214156680818758824131125888326267896035546659149797359580996958939569516684144156484345958765789687213229398619901887911041884667549723920926915289813694772772444272021878363863432207349912799533849221307566720110664840608010085428683450878907633719013807375794470208377710817178844097316833320490405632339314414919829896706151712811304095673317460237424250728408743824857420416489528786330001796709642331783489850249058005766222775085131896612166356666564344283541498024825571738954976022801153618690539999185449304242149987184235674651551029429012429555739415852357398229017466691498116973316348075548388407147511741892044371889544375184237721815235899594526539007280647281105684762704572923659190502423969100580328182516726092332062194591347407475352328775709559110456564072930365686565581445591917871314616448380223113283122883889308100391586411605974728744220653065625517523437224179033073378300887088100494115833625004414987053517106317216384184708916270805026593024290350780704312574643731565045176529413296164102768152736850231037490313110869920768043974952379059502768347329322945554557121801891706601073909713793611014022506522815558994665031918700921166146055019056075674326655748711484780733295189430041409813121555776580667001733088294771507979788640388013024722771691580395875329968663029249201079614784428917170326640931437586760165970838949239271740691942058557877358301466825925301573612090145548539276825783661939283370119742161573835077213723855787369696619664356740254248569266101120006507106936903942198373798152609040196563498180783964183895359082954748916503841789109591845545538271260444800245851637984532490740690349613872128683346094873425062129256477838650759996583391449648991981729547782385952430355100786459409833406610926262422577645697833190494202995753432935301326588985485456940567082118001201642362272962271383557702162700313631782530746931784264491485812526604161525756876521134906431760676890888265378889410353269348048505515873862690772348523568317774475438875025473051941797727322587326952738748139242932011681793916202024755394804805552382993635133520730372840796810514694184698913985960924329525837701334932141132633036989943610901519021239515100527790670881287254468290776575761147365357624069557526104012122026962627306537676449005358520029432358283253613344935965372267486547383798651758972044670601743100373245556149411763463711853092942873795389387718311958267239354199801732091404302373466243142331948994324594718722877366536024622944743392359494617586329943831210634008526843493374451274900299891260635195366971880793933384369755742435450282326020162320236358120704067686620123543793194598419835031117286189416465912277381282086658824477072570030660004647784663268154144640277899454211190055786167196398608284172361632015007258785042600874067416998260623804804017565827947883525322720104695617549057510473843788794885621118038751830589331082607007555933559172267208313137857659994156453255652119057112685383892282256166839160661724336213112289288185760885791387567706747287251918760982460995963979272360632094667922984716966484863191018236101269426504321150860363315642718733238735928730327020182133233330538762352458541062577495249635922867150760034296789645463101192843146591834820747479021946969529396780660447174799019174905558994922016506220913178632572107682482126054463415192466748522286880866342732142626168803185769939428244600324480704276843368398681175976079094044908152978093132597108379974847719921182804477200684335581850120563498169617629644031164616006046968237652210508861899980029087037801175202368666921667604800158665257621522966598572640408359073325356947820166138107123200466697623243203655398276247641251363878841551753466605440144968996093821372999383709935732757073767820339218406542460065257824535598151027650147062721435756476254369913628371992980631797799758312316884105568626892360770272580433085506204329851668454715200695616487157388197494818431762181411305622844565260347833953530229153111669784832997401658179119439230932061602854072467268858044351215665980110792277210228676147027776930461430689496325171895679664990507410183813393778334011792441184094846474605248113439354743745096543890192392307513792901196336828921239830539529203399230364623549809273707924523870792460279130963654924244850281331462022899419453233719872165701404450692168375687987752905359388079067347019364853919527767483083502610486225201552703147821160289148446228615055388980979309860398757077483594693098103017315972959070047740356574965847604941963543079142229042164511678203621171550658745455875843587055295552260394603090866195391015745883360425162677217925110156621977232276123295327889160694130600006523740632399057020361129673737063934339666618377021583557689600169018668850160204982348495554238838550928342179391891700576943754728563111294411942444061693764198251818521980958810810236809868585682295049331949886836214589307258666695377286801365955412946154975771488564221413548026562341497530591275595271218551247835111771210329047093448807541960755247768710389080929271919208546710741548179103051117619021478888355315664769868133306111130757528210829583335479651906025389232545594907576611561685523164271216243545020384807756456751969364842616694930245012888008118243635039284030539263655199144871962391799988061503709307917974133862454707822549081476422030462539453347383667200153583855910547043223918523069741730707350767329881274396343507478076040422035417373593338146602686378887810014187286515534942462668783603490918316503349073457683766125082709875017120343087496746516971923669211043469710610253357595810273892144395146726045155366417894684054598167746951740477630231209871318337065532692100741866631434635731160888266183612214574605479484018613446909713796684082059549742096749827849520967163277631646823309829206586715093561596723321159267170316394271878185831696601258842987887436008043395641104464579886300822185602991514705218725633145966630826482223643255672884630578195082841061373324810503985672162598890733979017370450409714015415049881965388776345404677418664936608609922862146644607930526681885961633837891656821783163263394501425077334254834847962748969960705329317324175000354974816001497396265839186112142913674772426077433463113069056511318439952034147308936139721834172946327670146187854173136038642605250116534150381965706624534479709228296757853020977889460296870351742176995588953240851977197549917598691391159333204151290281252579458910184477163437319378139292035227556037586095152267175922953730613861196199350855423588038491264432988148344539591623686707176227941243715161147260285371749203022417998242098674462242446147038486323990477235006672200529557554186642781803601875243863853627378109715706306411406144815705076668864063368656145640697216635725563408553580494529379542784230725211825046413125069402887246453505021139645073451673466904726956876672733637650092381378334449201494830859338489062138335645773966386320324383182337614783386954337172277983515296681857749044903747024631346530375871850655696516404275690717527281573628362330155881519423046963240791956741987213382320175759685889588626404106556122973798068436842441920402252905616093692189694505767835104705188483481384059286647039127800372039103833169722205885683326765613439586302877803270283055245096943713611669245163861076227558233108388880731666074577020335870145825970123049427250128143536249947594224579100993887645378492257037709316614431350719894892031315235849503452573937919261474948879393265035230639831519457319914931030674994089189067706461864852991529032186072875011438215841631098101891912369810522889916519589352251823194486104665656700286092641490817262153030777122142747133974286843644280303035139010572207516061467269953042891619098787717002067815364579149010877301174525874748838640706842815768558477708463033808011268382232693501647357526554160083831533488398114951563890718063474721289846785614886065500566495142435066012799384845142760443986602285816607713305555710937007608167081606013560764323862912012695161251944351675094525764619950724259560151526705472239297406578336226599024110068580339763806415589135934701435278082934386637741601920867480320950445727562628579496714472166170713857509782883311773586851441197197457229397229338245581894957088371317703629680411528968674475544699301768240845449674466034386002556420194912010603684940120972257409647785876645745181276039610378571879301560625204497610701649968980200304850194924639822968794403877797409122222437995835226019811245137549348183833897019704284799651122926876716539641805183172844780636125173009481812124786721262335860024741892721149927912508690728377711293910799524838705408347622552982094126030517557041954069367435963823318540927583333079818701967643920635755634972790604523836373884009582232434143406727651192950417963442943692967268452695051888692766007126584492359448090239570383994395716271862523686995972261281022479091497974490677880968428325314035190270507005188352762015380585226943759604007317111302332716972808487711768300955811108038753866566976043697249544262856922352155448524817566378570710768664134264983861627263641935614619558858074262960646552273977488397204757790993605505653398558023182914685259514929014559885575296614710757395367598341391826161697571206700204711369169167469529929711700493872996672063793752486338789974928740461011054119864629044390797084697201369718363117003315663477149393056934397928880699893266861978639096255365267527086264486325362534692420106947147059173417146910023244421932643254628258667634442611534404029031682083005579627229420439574679539997660789049378189743678283743286270181096449454312837295659004410554156908669253385563260793006729452755403593836659883113537027619911037201940058799063101096179338563240525564998138891990756902055207930124517067784814157786532058773502623208779492434263243954547529107423392319555497213246671996493428083199522208899848666545542079395816741657788630746739911245116272650774843653475638478985082859071074626264472115526219105261127853806161940583389245261777542652297747352540171652709404381369654749366530426513661865411166704759729138108088769180037027763213543582577346872889145564917979287279970547204125432272763598575751709093054060630129086469770144135549331662973397186014558350742312633661095109568842859549808737388889935941705632312490061324269877006604996100612910889416265718754754601769576276952766745825493877930700000097954650095569251221815542941500663824456363447292482028513833761470064664923755717958244154489772768406205717995218734997087366212465243944326398373568091456870749741152483829434538460208569256594040737775553291616355823554279510114218437373575725459849914281668291671384239563050814324441394410141933925829364110318381901702274466903817537859052426338992877279564023134347292674666750716519980404738157869828985467190260338277219045648701714936815870054242088461419068879464255679110899830906978854831815417704363384357266640810698657392242071400565700966295242764670889506130493344218981798780959779704652746668763233402244241512273084635277712964213686636253192807226735335580159094174919071868402669120237269915595950831012592893810124126525612642681257557429082729752718329551118436295590229718166616404349907138819835743229170077713474375873461999886749495866932519418295296816909273304166033806454926785997735871414204702254265430782694904549057058696852274573220071299219539179701894100234030176632496778019450242404876176982591700212853043915117510718638216639223062933378979482567648038858465412358860097931926590891576840195788202116334333835488936939460204879927743793004343842920677164346607765177881927748778473200162434574137513915705867504350639061554206707570346705647985940062944339042458155399383793137516710397208112988613675683246999912322749098780804525967136990487214209285045762156043007363552328961771416495407393594801536093856990673985082639502512475750693695311739362560022579111181663108556851267563290194430082440779939555686918737763464869590800729329993876217038160989567180052029801444674425394769309910525949060294505793593469696664166035404744829810856583573920551689230298872216721582950731276670995029882979048837620817992055283526461298063425016277497348061036111265427321445309958894225285221465467842138415316294597934775708539177466886066470304071881566846302037936632832301359616413734412376601249892784488445713483256913043770564119715834368915791515239954116145005953873997050262932832597444314561144819857891594116258767381331286240651131996269594751868656297672894686176758982084587864782695967529864446327394139868796923362281184856641331745986528926763135890103659770177231910371919924820371753639488219695961872469051776960476168616822994303345030705978652376080026129651106810429818960589223119330350205299778611355324758380065460650991809695413210081901957559312507672949281085121834692911794231712052499905866433408878533411430175268767516261523394296664129314987715645820667951740870154029155474603634052483084272487794534471700248559925276623527628618567863962834135576566809357037225424125610512228522300179663678161914072300969762715290138645983634537942603197371298007667039205136406874723643386025726253043871013883877157976994731467983264249585733742352017111691691125037431732595063805288849398030281706483132330374954499050751048506806308811809039957846063254540851972757082418397061207095573675486415031492538880621266435134482090392202199902285205972963132240769751223696910447306650266129344233732558071747741071085384828934540323670580138796498046180706150125736451752582424906362418900310252697336479412887491584323696150205175227902978860050954900263670947326364077899927065077775219165868255125590027602505994024528714632918630167214534281500546972873172800261611092675124494456226680649924098177580626756756297536888805890129234659663028948776877219133607003112252257895469393118906402060720191348907038137520678194283646168120849189321610528283865039625324855864985465280092362597801373954819191042019753393591696902016453218147218372716094034437837158218767373614428326227322962667283475315611218118266517300579938377232973789178657110774710278652695845438911185798580434003086101794738394940632669662113483481023932496866574126419595509466132202512502318124982636288860730029118024236160385585917775623136192808092452547993951935587495058370543387755013872807337416735474226571088322859412015816502195487726051841833261792105823032671444912602363817750397984656059369822053862288374772932113776020437786527805409986583905936716345363356887263088869607174707698274745153962118076510337575093933722968420777873657443189717396138826807155220828857865193323944299994125286665957385651319848892994766877865949315571520751467605436372071877755438083108187888451934282147525472350562770530481099857614108279843329244104469789455018725518343160397149220061182200681439130266498158954063120617414004253617102253184798591450770144997280480667705253057718335359880507828271785461362687605383854552513099197745230417451932085208446928258858630252281669639418623170339371943646676046736452557033865256385846722278204677174017646073215227252923899750131388091683923957198294212698632781299411236192750034767141463847306955980394487228270207446060816234177960823943454560117112585231793250703377477318820177274968361959671983474374024333472742879056932588260202675207949566325748760596858401264833038153643448116467907083718121226769543706822303387061055224566393501794734937261919340233103251322939862090135667740248125381564058805553706751475368219155595586145145495479464394868154895575446243578395326769950820325559586521435654581471906638010202944829158944226303683972960873788325852134754438963695619189336869325476926088070252976904643457556097001301300773657221374223627623524045132244640547705985996219615763629040410517780520523800208425681097730263582436521393175621759965237802316469384168895554929682479419235597643062431278148775372644840770590841513996439335768207271863764898633015852481814462813491587412912984130095779372367363138146752997595703185408601599393229032765943646059609560906219485354754314444219846384487094858499877897332250472993556503570462000657263327060183798932390800916996656584967332374217216540587082942288297561086977045289403526302824950887084415585756251748246181539046925300396739293617361771073137615938166177527367980718170807864833967613062517078304928637642623668907722367648453669407295950466837176092411339433697937727667080270327154349875561021141421028867357425758653515381239939256176316273993267453410896000132212958685882515764622617909234489484159947908701735837151656031629910074384684020426079997669562376674955543028753750840518272442398199094109573703158193967526713778086804163323957547425216148075257383865781040304703267603393742551023859047312750831722309466132620506870082452840530039770549638752061567368273223061334604974140331863048292155108891799485344119430867595785764793197517582450417759007563056517157511444748654658842816115318634613082056878540078826437953389312286860552835187932600894202221807964794349883261340453080222878080303492458708501404885807703538562767228663826631773310313862080987216430381948741002058741761816598644501192137149684182689729683217774523144134551285165592893587831725266335195311780970619674373993430622991904614112252443555996765751207385567666356106122875960960293718067961840140335877713631701084657417678270603659523021428259847916369001186906381407019192805797267408749529392709385255265973180062997292255501406349265168644397955059962099977455300913018805540311007411954987242049150591168449539593059330455969390850592809603399684688838064465155496121903902394884972784982855422504501796256068236302692622264309686402234991989964926964680955683753713327855977091618262849746033889658526383129354736287382559778788183250572211171992786812568223994897555492038405878759611566601808646520331484005202554869779306934710930342273847390591475137442842387008536436433079194056054679293548059515167744161609488846564782907664020961413017592748825108324030165156555504602722285554320625831382738704750424220975737337088120276143348880718573841678060276931389100121338355319800038817034491978645467258180611222548934865842339592706952461530325426944901275355546886401383263061816819615716146997423964093863508738011842804854685930696369310801958769431417824989542000187119858169089639033234349201051854641739472950606091696341162242887728671743098697382789348569409047756630540702780745512956647649429252093129670790271786389090950105498305724573775498016208054243883993460938155180905273167098033647792136000598560407007927392001909696265092598330711556510378566543177424341031237843350718904249368962438570794319318524319138783030389710829567282216685050974347408033427572021203563366972076962973098981977007357204179370792960089700245553482215603254000129070053293986848143102857012455088830856336657153759877740302279281528105824952593390551022787823258013713572219541237848958027847662396674811157915785618228262979261617251838740871348948349193008426027017032041158158460331409667524075798792731562493903991358104889030003524944139376451375540516659175422940716532198867127895972914218034347550525154584331726639370907801796329232428967841111066426123795297566328018914308508211564342066685193754274339206495546231536024411472121400725872984497867513082145069749316436764495450451503693191132328804641984136204493266018827122537225508500825868343613777179428896212384569772160033303644975332465437930482159651863663219471688501748294014718289330989497286635036505603756942313320577548924043796093181272072922983457280282159693078383019009292847252440782047826905287043572485799813826142625766931974733220035436947048521733668478292214241786401205287493479683372750764269375389223002550873073944741969171963839760329216491919040409359027045599519163164841199931837363775679761353897931891646434789921915336537023443993364281776709507400886705381075740848983972364833804728806587230363420232829542835437444083805643765862112111425698942860186257270573492883594930365284341198594779312370968403385519031080593208953804152081304738878215148222560254707479978731544831895643198197080593998096461783164909081338030772670081744900298214222390491828058772725392646737220545491536543839679078834826820137650639205981344397102454932210848863243050628211206021547682141536511771091853427084552192244158677634240152596447122620694588351632852749146915198774960113419402851105506598644023792571676899467396505197885591520423114621359490257539964416403591445609547801558110104602949958121341660208695348791912831469505735509986227980947673380149340165306830358469002809261733142044515452511801764501790804354159980334259389020471773151135056346126075114788539795734140919560071586393887230203034763995494822363402458702418094037532268740897520649944752090498002899105850659602817659321302885549367369958350767598185530074482804261461565890534199823919151675438447187633616713642486044019952571711386528466936705881866714476862281742651791936956689340361383227240264135694758788131595919386026801075957473050172968151974605548888063817386139967045192983864572459789467945995293542005037598587925143195012627401971115170099355432002709852764934988631626006597370142236158173412961224463775857179044204108335824929972419132776145814260840249048075408539104362625586871574714255513396391460024606911789344827736827255248474086951055492870831521732930754817211900931649241373988476491501379702529879605713386621171243262462235268092402256075751320827942309835381101257820339651274316017181521367515423356934856786564105073332345194309763854140291526038462363420576993543482075313676185740699625453101960708386091278871444411447485824001566694903181089882828164915910724857939784779750915916557721860353491898704697654407986338480812566177334642063673243355527747001864322525049823605075202209095126773834040851157350141487161704830100953957652830690892114613924370708533649100892360191750092076577564403183546778711488305551992322714412994364190137214936285923920422098212826148903172104860870353841704461385241314182654453100962135863087005420885221622158516646009022448873456206026803824697231885389773899128581508279239956398878810640558722287784999654450964155614731640376435690190423533615078163022863794739915518691052523237067578834689994498760964728594050073490704954229567553681625808056897637080981813491159335655455925009280737826922265669190598184052835481523500474208904581795817797093763659345578766256312415872612143791020475193562020625757261266132962327892447035531984303932254100653187861091279441888888366402579077076726353397831831836724933028301447799778189094859413006525526125009014747608006431433698709317553284646030695541323583293326190395662067047808158770903085129431509929420831477429124521820144005486486447459959526967646664951060555591091828731412803389240874831583238533231323740714966320601380460405873970601801896762599313179571007538611872483623347727512676536876942815667222446316500703676842772007523694393349676994045460821750094251158280019411035758618980812439227369356036464246602222096134664691801231429930486988684243921677243873848897163488438449224126202841889710019442718502894428984082786938805038603635210028621620965028830667629889346202709295913924982339113606218220666122012004305992493163857804135805925177388720380834250260716058657388580551328749776116720935577874218129260053099861079737044097724948496692534772424109455823780584697442844480848918969970741992741068724762124613712276941617909222609029376674168262213520631668128878785414832340492381400611026747883608198370168321608947630738557789368708528355135849114438700576070208108697608949862466280206852709296084689242710581831635857246637130564316995955541984073692660988872898549720761795448759899813220288130353682083271702425288839959076221149148075762528575641342070318799559826620062366262632187646573441990608106173687079976636713100255089469941414940586436550001230004884330512262189009342267028327453098867057108143101998806492443355662978242946237161878993193278654685988818490373599151910349150472994040907131707929661653482624459096166726775139428537517744747309787688722198640720078733233911330489596672216692454793068705563652340783208107305884789133080021270753132547159479115529892899012971658805047786942628763398829380652010599867924601629566634579650925241016456598048966859378170461412129930190999796482903587252090806513976814399821100154987327742542753071725027520433362354657487472040412998766232228966509436239583540315864933319526182303053430183128755752397518302420947451242002002118359177378568598846251275793841808709068132133375630992461866879254143964567287790458328583674925902638503508492227971886826617839034597614248749948355076266052330223225630417441063996636312341332993357074436071815466226514214862312259785104322843532761933411459729801311437550379368698958503638521483212116927850174011218403920760131670589451694843071897229379597399243326459420361796898202438343864188697605614768626599761774554374424926298088431863223766239151968122264560917514101746093610509308287841069737708407878758133213588317193454341449396203043674104221407397209993998715556728803164589704632300915842781132380148811716707487555365442864385969295359272452680510382636825698294694423663142398575856499104240924047463180942637385733599930547127921848001772478974635311114274024791985878102996997025155352866690207485069393407151553431425066772093055894300799835065700026011422823235811907180983850625870460325867712820277878321300383741924369132768642501502007672830645546511640396274987101908727470532571608645083023787376417539794130054297053866384438210717588834825775874061871223896053900269726164053930952485015948087986545449057506280451251891488493831461906177939149556800025605341523592897242599994408734350933352093995614474360912724028022973439488893393756897128786428561850152349298432094516432446021012109620271805343627618789344778809598478003996369442458006875483892443099902294251488571070688018150547896600931686148186404180678268785295153379748870784211678265732176992208235829416298282066145771065816935767044123325712930662142604195583066383745691405935058354030290589921745679172072978941256082949789698250093301656935441246037224352556408598527051399934386332886306379258028237804256771133648754308982272556882985574699193502814276018813378627630854868619709778910342749928172709379113965849403898191794042181196915853957762488924339317908940595550399109082455353413464752266961968635137926699963836548638334135480649403702566415006941932420527811038186507053545062532968770001650283435771242126710117576013242060678472013538472832962060313109117273387692702929444054577298483686776769630941606053861751128017421757053722482871436703311398738538484047563448356767847394475728013337230330234340824009713128394357430347889318475508871377980179007461969839467143531831199473277004081477039682563146672294999067844438626901428884728087901005600338491110348448403045135939795020467181506880475020086585118749418484938095729764603068434900968186056787141950622422198111949513785549713669429014391913899981962996914742833773793615580207215167998866760952559298978654403822943963139533602317275767968696829828323794983951034039277176576709747470200587416150847441158204362139467747599708748625960854481333184891701649737509373015604426765849611386563223005358463772120013159165577912018055210893330125765118359400251126609399533260183883929921304332340235174524407866054813294727817945848137195169190434149334644986173350130440378624320215049809874322495113902478973992172709751598314908790807004405046921303411449409342467727206853398779619837107068240073049575879125682506834614427076246580983685619398648164071212502126317467619983193650133204427111758073539508008622492717431966180309216703212533009972593171298461586047598277447752492225947901477795493693560600919423273796372221710187039555504772208212449385936546304696381398572012724013573910180603450194917438198210441296136424249548731588053026418248445151640337143409051766790180443475660783043536561642405791157243037351701012336481060690180643921067477666844927154016545367151754901705501461894899341086195026019623729334137465005183777650430894248797810251856836450897360499220580227925584594782696029222365258537382243353409266034717931342931254481946594870503328865345392210555727540179027726546579101414785764723989528635790983941102514084524807316689021931552170331145925343106666330092907082427294601485655681657585793005361550871200702702077120196363935247580028221973232926394584650182981890960955356888124280261969225305114908305562442466028585089142916163669673138720934800528349335807593721099969903776371561120500393440938668805256759268677139248054199032639546864256095835528193377353354861673818577236812199196768327160661571886179772783445423737198373607016696077535658340462817432941677460937855077463123387046611916867907280248180545523536301108326245199963431517334492946678041249419841233952458042204081591105880022997046223944659716434372730390428746289282411975028936314735980763766836453986173333178962220711443942493708552050740612491292197630198853096488768571904579874662056002536573703599542439052439768233666414421769265320911023325614418809647522350912551510914472978047428139491969602461310975107270989781791632597440814664924054404552038806932833852311054196738660269555778311375992758064517840239432400011025507783589720907960946671551014221724580122359612387449211574963559253050495581570873030272524320924588575586915278177867885460054144024975975653282832655355348594599795272489079090914707501588669523012200651520831454539307003741457503872195824923216897137488183717460058896047965434687646734117412658512630343395680650384750678704670607316676360715859607733752038210238176058403369676071038218133254205304789863060911167328244143569339586337716701027375606656157222268249267299836550266786630019783857032227778970583373839273528440621960071783001679377830228088802939126063495318549513106178113978431336491942218697796784296475811751088395301109282859427321543280697763410939202289594896009542806600818058621070993100758269331544109586374451741029297666409784283441183544435772435147411235833402943551806170516748741386107304918652835880038276463195106436456702351735983578651593026812348374501568367068458268809198113014648653400382154970634214955510018378262513370489661630442279552709326173742116446206917061009281626701968137141452756939970578790347214093902780591972610906769318633990490990659467113852076594572280947216253016554026065566063083781466641745715421705848265520672467416109011722692912802663735429573299398324247360857261096383553534930289298604410573038406276229357907356190571247592923322007193134659920763437537118070457863384577314075138633809782666210245209872541500676443870484884543776023763434780716685098713627240261232015945407664801200286169394844412849539616444652008068302922155263669584653373492223993246866076550435122980754943828445103571685239051013290015409226056099940652904786123774685251773705016601476126748355525935415895611114303887760331109707473515589779642507891874057545526010395987480277782432559071922797384208548603372762307920288606421832717817652412874402185555588563172953067152046897823937658155310697285946726470038649085141615654518049401914149552217862704865285439150942187187917477472704203120970115049312808136302495720919521735452515457593531219717730962768556093944995935983217465133444801292553268716888772844412819449841653264194389885949303511797003245535395374202393003986106891486799094340278981252613860916292263602228880273985525647106242353339664504019146614328362792104143964067689779114131246797275260556633233143984826839951984109183869691019185244330079872599129990927884965998680953192592025743647700093708129908852605389073586301245957485518188659591088590639086745439755839517421481538347765483853992835230659464240964977997288161885759279141893646099773253366242082913860544654707751679283986495290077417831321573285752847400514302415328415578966240835055810093275600402472634421926584980795763812870619600939983768726352493158290939720587461702497534761196733040420491125324595971798661768443197257574479083961715075499465991906436713465096749896725909086388856328761139521100673309234247442068239172845065928579584285232511248648717521167352264616243896955621587323420511988428008008965562090513610521662102091648835389613282336742685694312559423194413259844997333876105537786332764412943160068456125338007826415428758052857425908264807821593222334870019659547422663419563705861319537764588326691357909860736066930950214691407706405873038406690542794011651054235817057647615223977882941063470878531802656680101904548601953138919780815015892024608925028582937612326729858817139778911302237986055923423677992681280629840224526760843159718848503779492774980097372311021943189067147795573716543108973843426523012735168408653232079177364358926969249675921411032537706992485588523921076940971514205770226855379693629745667894909568347252630135842399570797773758664311104487118062587029268540044494420374146005244728942776214227003389914408110534191837012327235188336690433461433216926895591723091428049860140766054111327090212142672933361181262288156342819574733391452374458545845769851633978695945542496722843478748055042355976236256591479716153058449837509338526824455234166139142996800000531657639473338839462334576602585664063828051390699951760673104315003193570562928710923616070828733823953153464118049377981081127123696917551294055393018683256428527709523306577501318748438230735115715272638406079430467325204600723959932526800754534192448448115146127480456554758747794253044145393466454095153887065030995706106674260562194174909377938091043898088242271413042389980533160123324631968018148667541875356827659895018278673317277573449740967099387686583454537873212008940921697832078627283465356312537054255018934641052355209748236050063881215340410611812858242026808288535117438721208114968891045919590685687188546511652933400260118126283073285202802505437544010841371991045462556197297572327911407351320684132810829008948155394921720066133138576725921533346052370202791025011079128706080499958340534827042283202285043716373134694716175688016397554690794881315168938632813791958121683144680801600359911817942562884744317726425633580804847990399050705500677684909258535242068895186620021613873225239879135336844870769002991202072534281031400910803537621303338300209985513381182740163876640695502568738569942873968733364648042707254531053230597698864637155857840838026519563733948799986086738667660769194482614263148516478482216552795223590900879769194638858983707886151776583535647215235296707001275650354063907015092857828424221482927721231310016427383608590887313779019323681168838295411386831852619050078767171513275934865874065876992133992903067145162506195343065631934400601892082969738768826741142216307311638046388457684133342903440618532516140048608850473437916202489180577395426178589178089261114173506299153584940640958213520482307922497209679386544183952802943316350641012911285484708976705429129674357152955473215545291755787535313714588510083263032789326958975904926933745994632916387337364812150589730869314784030600470326271443942446840103582699711095333907496669031316478256441772191461733741514872957876429394331154947407790260664979093808650665671679630152439745529454248713632008204936396339117555454041525150959545330995219402021269503090298697655948312712588034332321158730899857361978235745960475649944914884723894544040013460684058923617305680312240249680702121865991559228064457283544031115691062703630411303123606636960059066241692943761157169247961729225105084540754926710277082276985555376760356362901802049372355262914983469840778231133472738528508101533171098021949860255475100999345413668695557419594233993850351399087095123630839392822516678651856317516427674723017337480352879297577948520783641696312191578670337822876099318644802932123589080511196728292815979890838449435226962661346827044614694598540003084513026827675766513335592550149811967858579640060074411647206952553025545681034845540012586886705002345922898732554533449954197320541780431492276422205105813179195696995045740597743750717451843038393903961073700852462045569758395146560658965559667079571751225954833796755339954688835576348116383571178419526566699330875329974134242748652673170529288190021443719593002864988272245230145470918519860933063491024624109068032712919326121470923683315210985175559333811721525164386387784453351760140782048240924522105077720001050742889296159579004332683802650466512219259183731663972967680036958338879008615470499588356408169382528804691293814390812786173026450965009556452051915751572731852785690668154347170643818868376675254203272888657880405219013826458951068861109259491672181930432507239075875756504571685902348197232778909491680696738165691384897948865864668337957092975073950721231155212919070645199836481756674736633792108482304622096424715617467756271198994341068923532912319206959764793404594776019794942319185023410807711482167599342828378566595534476467955120567023526914695404255527541485245634728816840903983296141597605169119275250102212045157300391976114326178659778826799926221669242288236797630274054114352564118672229229588544054000246278627564088084805408257127829671455063021724626637700873440626491850264322144002087529684679600321387670569363675235440015419725246687433455810598004232958072467051102361020349428701289192242257982525869409694337982541924700845119327984337586400766240337595870922203506845425537637612008507142644206926892955272377770348630384616428176151332119458302618376745180028955903876200075141339773962783927106313785462651708596631887387736338470981848640365960051193869643232611878341123810148126177870840259241978968256655937110186901990312017288589868290697018020552876974731269220612907063319194807906099839495324045285117439971702881503706248301033221485334518878374498971821323139009838369521518234601177396538144163563474290199487934088220559183025284833174953063819529309075515976500051916843547028225258221643469836385680491544342624516922875176785438132462870051125400979746216348840546888595041603426694251985245673947446329366702322696879359948664853787976843097073107295419426121785258409011773270142879764447848038132658395341731364669927016833348360599314762137621196559381203854920731482071483268267411085664099433048675514016690119495618727578005113524063999790078987322702749136667950681274797588587024949170375440293257613817272912731100532624287284905771474485711088168854141645761489686849950376091182651035314472043502946132477292252103914030885408238919816029542977231357291118515343933342526340277343571274312229730807849032064637176231978883220493478889566327414153470443215086277184999095911162152589771197583830177207370290801766380995120371320940517996247041882905661881969258914673073594978230169294593543394887398372492664769746156459833561993837394278493937059979852269159133501787948494053254684145770856176094848904155459750671744036537510650706666233912787417369626582267211559045902935131262900263207779092023584318269021088519438133799010135898548497143315724765159442390554297469326643088391234441300219553213007297082608824996801515270052808352334334489143465662721376824097821380359840400378298908527590381268204158119191942717036458477806459444261277731594914471179774491449517954636038010462604343256639386650475404569815101154826361766345692488900183978980593952535325490179894746841274325851440768416447051326694511517148092234490172297722386611079968234208851952162549281693347394569339679240148895482996156359888340263311542735621998930718767815933417248990710835776829639042203487143793674238478079478489825437032850727292183532869727334900317937816127869848207052265471924076870626671872029752283333793494895622686826743240461007873932828073326568284709809448350092349908022385584797626483959998924300973959158853632981123503556393432826828967210741969341170326670303070879255496955926358163647020233525398860257139553686260725730525989027395697827584958650926887512823987785717177170498014463968738042259889148038297571895227215539465037565449708455888426607549811454232979059687479667345651874804389281567178398222808519970010249006197074325979323228737416455637663751935757311681423254433026759345395690320307100063295611103830039854489038510285331183798289024945178214553745673002267354543343679206290996436177801386170562714015790717443605418301370253581721662724016758241823569099562846795481143596194724032623673622337279432584056106042106339218409429430231382556208903843075778798802468218799974131317626463958807510154150406060281939941696520756531402821509314322102012876181655093128031001870100813979212503339325244362485171544244018867954853274173123446276938442844632514400443774291451522926839128053288193722878191023271459250655731214722964694878094698303325903246748335377352578019750273268823528669144909774191227334969956709441943416146441660646376642383784136661705197121684942713907248925153512111236683203581643521738220047513846988441326410005886244301004481762808888345433889151513264544767726672583758387420991787140124318964500999361999832190986750461356312623967899490247717734122734668792813659595028432306934610197709633684140058402803135290039032265703637201186696998065722910802068909076760701871428602280668497076799725499687662688078864743949922583802515638602995933280487201981372011758222362969371337954265563417126442705658139571035868878643263232971229808131610030867409421914069803806584398906109806424125579634327048044195187096789056112661590845047217514547766470769916759662863223235091105447961971450338447223293339692615063111196288923460589851060690674400567154835015151299015191719192943765684637739883494090286391050201279887867112128976808735086117439505472078938416673573077356473790634017361402429646485415357228283042037899371954513973063634418845634046950505899964480590449081695152480540836469551624769122084524171047630736870964020173683954251491720664504215242393850789392375312948728831246226971946463813183851472620207124997155562011972705588231530601268897029819512748492176841139128854617301452600114129639302146102593562545872710918435268790066563335200557653704237933908082824870870083399009277334700556511621135143911829387172500376564741002069382715905630469877790743943337151381592837550986675150247911341377487918844976691945282571148441985875667663783868191205558440746353144562318058645695737873992638143592910619381308802665804371065182774653910826170678288975656439406445979914123789952301163262403996680636647062251117689699957276811392748229188662302045949249575764097046523158806329683166581341608920774146843976458985873979707802905192093769776456108438650807954835574998857214064640494340337125443453945593975144744075572900866039298961522474629757009510172101692197252696633967733374614354788291815927539809175641565724976062566939088325252113832964288605633629532704158635953979321590329324231934601762729233311597199356155406162612860015182044063251146021348765120448947855307810895609300565814595233229469837637433301365732281929887802492013856971267400305131299018703850806533328100609110917394201183634878273711495308284790816897590968993508424931137297083329234470859559987789266502629498855105512146825111493144369257842549422140052573070036339755585439073810895320885778589977281814820298980143207097174746553562287782067140592725256563595287445211741460554852614293758811658023498868579285505373235891670788725806449622238018088168943655751264283645672050240884967254300390798683142080372631755273315131579318393905362991280465633515010628867434881094175673336710762694577000559914571561991127397476989911959932182995180469487694058656554140445757044245972901118357877344221229806003803788887121059741493333850673890608709325360830397547588599461162587575494324301933748958403795222321956319174838815003456171188270695410119724670305460441150539946705386126083713358465806193876727585706026031818484932382299600969741791930789106828219110946850667881350602175519242121255414103287074729226828320249219527035336850341821701691303862286043307265573223675315586015444251151036659793011180097861864544048686291004899923998165198276883581313041578768613110860130508978188663670451178847025657101537315291066678289001671416206285821290663217230672256951486056527619448473573237433736199715502451237041211508833390131393869822776908949228396005329809495532105729503235237973419325485440376187499070954557711332135875631772823848502656904286855875109938465716564702487990370206151954037058121633184549565559221544154630529100354500522357238519796749731989293851598163670039773826789394495612777616252744037802884780680612601472855344700967078408465848462074699643200443843277500340884155534148754539256864468552120912133460082749706194619813740904636082245794634219978482688826721823016352828562367299240302284835329499008976099591212526440616732399990818279306694457295496504857314376811502818209714804925481917222346707145428884906120405564307816060514523530231279214186081920308929571553610203675132781769573962672258510508353132847813082106054588069847628056576392235540926228852291552779995435764277205558316766568893373101937777108966305447235264776235318826174958907703508194456304992593942050773599538428122313226347598222243461564692343834804839636030624841867030912743460240649157024312765022382491204143750648715566015607807665864361276903822322777414780625426122681785115688727578320495348271243720646842355082505958111124013337365297658766100675916220193265176818626303981116335698771640068857121271432658879019270183824864391930382682907374526601301574511908432686051771845137598982016750252865097045677204323644374667609098898408845951803969387159936537552997052500321073452190447407580926771389492444220882645663563097528457813381754492260218028398051574624614209844909762299391244695250592137387603444607261737257720601494905485010907779603545153804796840495331055949303261590051741470688862978039283743707370559776930060119490108960439374736242931141578636345416566231562773507327479957891189127609564333498802091429313729985205707650694766240028480831260540125990194313213674737140233894797342927309830184646915087744389146350777885620507576884268217774044499012169328012217965314759631394127796129904644600350811049496931276000718770152208682686284015790284017225805167271533505697519958829806716043075678029851533671621993544396626984109430897622691730627400916715253607920520386617992726138815019018551351680725529608053105078479571821940497008403071392083183550970648338816564478373625700723752759230517176064448048124892473371747795214763528919561616514798602220345326551493816527176103002556922757372372223168609409589990694652611909563918781715623014047850387426354843061840372125142239018435371823231337327047920615411122380243563854138211445291805814826656702058825711794673003663141017524224960989569083639933473243114206466038949555313780947687443125059114091634079655710915083366463571153489352554423630891779211495542009855401676056006427278541934906807289724823888711636522825597148224316011241401913935667118439523775626797362373592681827698154602055502765672618737410622566931221420413347151648856516628748039467954915960808645232370033696238815356730522084649432883974955829168921572505139389445258597388711312884125066464316228454068719690550964213496773324388117834918413015624163344338235767482647909124975435830060576763737105534188996904713607451194288043469507255808555936635401880428158472247011983758697788939384738416338964798737638361941748713342990141172441640778885917206114258183150009077929265174285764085906693684262313001667982179433376866919508798422273530427485970869961955453094822291531138994345770341630845429131862185550405475642499414375838444984815587596507807647317198645431608533022745719187328117695481718404401479598116348631543539445411573460479561285738530941372072564960689043975878866223263324534328166674282088661594261116539214405083252887613793061359804072719547352555216334793628456303052331253441467652255138616303961625351350643638118140179277395566311877281214100904876626927587625142434472903790610915181431037784634320589659529748392346897860208098017279725596888465996555853985109634674725469491784122262087466076852624300068522255997474882450127226417483172466684456698002029085765436091832995204816764481023667039166548791118259373591255911759739095979384543236248132132162033367883121232468986843972135282862129428354351211501742632383188405831997793620228195315552821696013120625006810782318322706505241292140495649190323498599902540838360333347539457422584912463800267052167725655186809404489411265532135428570855062324132065917940623817748368244106451189006486640459193563600012132474259443226799249228136981270182699162658703494508917680373341599986185828733268037434778478580438172019832368041322109806850832035843054945810053600645655956147942104690398373204877865421018104187640979537620207561473039870198676925565825611150893406335592723567305544218723102062189318588459747852234828697344709521419230613502513676261840218925754154898732497912306120207436686597957334397831874193971197216492875364382261717162596780196999164434162481577052794464922352879758420766186095103274510798227087841806943449285475402890593422282314199934161425167081175261246919624732905045984945701409459049979839716260452702566787482630531927558763698127953720184292344564509005793987471454243935153348829762654454971579125303463712535822700358018008206894029805582034253812287477585446130201891441825377162993408492952117183381395435580544095853142200698094788382051986493056250869859058256557606418686152015879173608301182145471938266944956752612517763243204242051658772471935726897642327818186178004952044857138259481482277565909471981943069690397766755015264051509861720323049841463992009495471053737422640038556763659553689862499428465168812132836522843950616551979964478515768793953214518862076267177407410423309828230832404333158929843094358870253155119717982722445366009843792828077466778635279991756418756635374653062024868830427412112902200075203687544833474405782975325646965667076590715142292452669712491102892809977630870412237108513711726688189246859880150760865397345846204492138334962517965485151784244870837034745246155295924974261629172779216201410451273658942964041629369357830677058513670385408682066419812307835965729785763081665454403276370009328734761410067147947450376621803929490954849826780537913372212544734402016583340163677052102245722421402616622043659502219067654074796768192121931757783767231083327274251880938094390521039135380455319916192346571037142246654531076961482250122023854289047720386182418994169973166361059170152663276018310538822292463010718372808933553534905918788144960675384255454472938173307535937540957988960156159879737568270758288424365612568672980445334482936778864962090987324332323674983183164434751226868846580829118327179096716033599963869309961448727562515194003667265325727360735145011428227706144707098623542010752535159469190381913642712608373756351557994643081730573706636916154797242246586670063533895311094977942637555674189829993396930561594406626019359732535370209218878099328689873772447981545358816460268024047825291598861821298331709167754392239056021718599089324310442196156168802201130577418097781524111969720523772290959435143909761337554958631064960405054903425286746481835223145870459580699124241233060088892891818441624026885988282952051920290756857015107504051317942739400687443385532381853665213024505094068396295794122677888661098636136648325920349661243596655675493458937658087686961929167042506282728977730766784986716273260973196226811920187534967906330345703003723017669368666521290730617911628743732872034644953349280489818410973292339210207047693477203298039981857381447125856928795479114815893635529135681659506678059851754407917587081326403118243212165060372074682607346960753550850903939848544549178756959837122844516316126432884569976803682787334546160170589414422356263259013019957776791318549998628336264019236794084323706788196538854145606229487929104989056489216321541759740744405392085647007956586367576553684305480211405473886821985469478006130128625651205931888225210023968784884910146266174899503652178200590476241588455700130691313160877444824648399821904445154762431008375751712472434476750097336417697139633996729722353548992630467004722920090547326869150096032210946082878473339934933597370006108947316836420710649124552173208547205131522712162497376037867436389552125753663829796852313473647033699114731341164235805278316969649988617213183194989993720552419724613966207924759625643021629423756877814295942119891055752179811912357741728489098715278760660208269317235693310681593788986692317173364495695235135793474737300559142989158567661265227317088202865367749738640615578964770987579838756228820143266827810608893516055439499640644188794971278503197710804732050829849926624350027637182713011806057268692251803508448622324185678516500899555957600110104469287443662513508945288968680839976710548170208983734950274794046350663475657507398455130560552470707918993915342366579953733883059137496553715519785975812464914031516598406356605766347197391279621504706011887707876728010754277767944913559729523336748175830090970749961778650047690812403810548111899967881283249439183577454407786642072824996153017554404423189138585276117864137890698713129270822253761535142455378678379230787407868187502140638058567478334966458800657594880574345488897261373156555762118498021800069429883646991466266444459030172320613528476564531696648897883628578345173099839346745208306077455401795577533891282278525118893463389758189327961132048458268322874306785725824755436340266309746469854566545842693018565197562166450239534050565144185599288715622045475281587865421718428161691901365406288972734896686825489398982021148417960397529725521216497000760430806127270354751114033018842917719062856393855305372960602552242075197942139217317249698407941813559497525295352750399906849713716472271034429776786161644310757969820289183719800094335993918363320793729652791158026291429234787016334936600188070756861752609843332880028742643727946065649367733700966234129074916910448388908727049554289979287060638983733975023033051357327147362826829363695648508814040957572729533458746927277512771487454336209037733219569898027978626648532756340612200876406323862814557138504804207622529012735133946116842686777439096169876787771726799590038861611128649392399590405571162714958649021993279273075364921483122152270208113766650963693601364738922096336412597033780848372161872595210759037739898685611246929354904955718186031270895174201912601604904183952638630681960719484040477570388784364407391010345020486349089628453716073838239494372105639435587460065927397937658827187000268394782110686727328996885831588274997515676525390332621536302942097083978026476207788109310225007155701535294863007804230204237175330535630151040896525192081959538829831885617916925838859022609548674857045422005631165078316928213818930495282655759705030564228233628967267613828725034307634153693508591755897952329878835239795914000656333560628669405360348196950460841922351792463911507276454390054991584440788554697945397709252939222508014529759147692244954040289405119304985370438685000676310884343478467729046907897027107353745435542532353173578402836114242983510167858965656307143032087011617259672970715998539001618427488631825043721343118388726112332164994835835618759203382346337534928473015043283105575563300963861773155687064245961535946523251439396893893203400494775039551237869852359436073550712911032612303672476206738918027519942491046621320030504334998171896726750239571563097208769151831748113204247029785851021142387456303938713829552791819445800087101568448318021543905933988968500000158396943301719318222275332183308775956907562875972869137983474037233008100797380619575608745349804383530231606329223074659429251144188829321454098532767638882331445066178266719455959095214132695747237221631768136760936309721267512268269408745937940822482945486765251927893582460736396460603754796087764140897996536442624216977844431048058120626797087676915865693044399838449728468169891625680738274575515707459485729501175935770443891043253023742307607164716524100226441236454778874002431706636659437492061796900764208609660452355956535608218553250367978308366441944360456180964310252744102295021000954517833443695695959945845795500714679095197825215392259067705575677588724488374363906321123963207637709982845398349659207365588148006383125183182643553677646348754742235441718964089401659500711694624365419547248211760128381577060823062489043585104622732233748651305994796311209761789850875688934123827939222030573438099486647352958264679300105034352245728574012989386276107701439601449038710005349846817997842137861813038798679593613484145077293829495807199290289475654393443816623305025692436956017007675891180881442127562360628680510446568874160076483773454336654690999137738369230924361948513196667371104853618752311961301546461765236956255848911123388448520873204480884599933752846285655204766281952314150693840921295163430849385086232279153135814987631458050909953052055909584529579017983871849646182398972684050023046962054651200456674743465732114359918900342612475406333035266511838393091278568138718028512235330862997584278319603339188694661353070347809157604902495141019341279890443015238726587034028488436943179729273905979072327254838676214584967303776177364154223411048664873945763665865221591602086740161193895469081228700509350782879218297991271290428635168291813425786911940502122650776752582327226029078334478097665852085608218477117014839364106598735667231446471688794853746711959851271143388077032523654783459870940884032429448062623493264966595829584310462881542103373688927188640224924273853287790713683546636476872262571860184449363608605845671683598115251548685224703377074395254171885342663761268474715043325480391737682704128952108157931924665831105488450568597535165090624980193907110290940990074649325420019514781285372321188601103611490681555501779143625468483854647970834002775383628623692978173741210510562386118517685424936310813597071911479889852184080311075039944083490738291000765914504910719800710411367157740893086777314172534781592080550293436071461963905571961600764748074302096818908270392128217302423593759334610730134459837733075987989790166176296331654358141563914829196049586280800378891754975230052954370380965550076067230996449987004753274127915419292173683994846616502346300086401041103300313113332804043746967139455039371021277699439926020384249346895799664485865924040184088861005227906392684927854335605997441571993878828624542839168903315350183843696117227143350162284812328044710973519859989720692379103174637769483959317665616845833272684805557329098276622094868815727330005412696082111722315332807500729215047695408610679676325837154360675110292300017564007416739543495263541192094553143634927558011887178383639699304783420722212308751078799146484996740323343403103817565632060631854806293331569526420719122274940477676464545242852719102822219202313276038891718292302124688800784095937273751939223434620055790422320010520323923153696597300759372258225529652403441898661683435652951196703058623413028576881439748972508863693741238351177748788388041433829087404422909635958473389223725835861491569739416623101688436327035205032430689771883600538611992270148031924276807410179793267453453856883800727788330275229493988778618617529049021987369462243500249946478620007459321927271364669153304502051698858863821818962056210016048248104728869458664100939753736876503813947602369902704696144826510076672268952416656707690493242390222555938887596100305404275136288265093101840301410941678409686151262515560393075699626222479766427590799033860834052706385104528718129174358042144922535234537302754645377142668218107778763050204707494536076647319638212114770977576761618919431671545881831571899237015657109120154741867152864845521911124720593183047871139919216551684857835518058524407979688126395744729557084140576314037473177568752867384183410279821606600442861360284683910898272510271769723525958796366061989886920370725931453811281101913413478658811052799822456159149764117988008846000285637512458354250522241914938800437440982648613966848966601152800928386722828531862841945985704583682754483615824448096294144294078588258076570639346174966943831896089801116305675525473712781444992013489072191327354052326256736359158156141966090784852767931490565724711539998999603651066640136637334422272166504684223429156147749698244327430225186683439692836044784617815852410373573171290787331118581629334307283204848352564580963850553120570446891590885282595141576072488984172916317977799988835949752979762964264541185396967809345891538644880966424524643073267870726907381516086289679884153889915006727273972682963295722416737985642807553565976822161892768761067069827539613241867887447685801122840620455935838876303573495532012078690260588425050537949618588609260758648532931948816775558791931748979096604330039561804673523776498577363471717210663058311129976911507027257107709054922453679043701206040645647750623664615894775625343490278105991177988187475174977015196630881726393848508709724629065000321126110683934691599445365878431232810773946780437506937115780529181781741769254350551453197021049270220901464102774830574869103551243281816120181405526407617169408884014875708210365082002922233925737752863998662563180339910826794787800366010134688991472206422954925165065492176587634617275815790216529208708796411355669486936878649394444462116556810046908734587506717458464019581729077789032726107385235585869053648962812323694835442137377386826294304878545055521601645621181157178431783021188327893035460817525725394019402424168266278868588705307161507484202448459330959116095758192575886806594076742894158516849505955910232008139261065303438758971059813808130153482309908953012772005578739387726808918678729188908591893323982163161444964759691657503898474761922978209682412918085291451130701628389454467636728157777155841783364992123889243162595999702702155559594209034755201110041432678788607660178428602405597433326509754768813250208744570754236506676400908616042608867433155235090394694021817657770238813423676535280592420156813767486366382657326638286895871798799300022228171258022463921671713016115008815496634535475967970207646926284700717562021757525044790843487794568583854289077441745150133436887074768011866823272056432221100932517365463028698301754320047616117117345196893557557865696881553654438363391089037163869086585612145135895556332711847922169231652190729883797802790402403633692833196911862578347042841013241530673337177997370178954273952017027989160481648122851392898530505826772110262574601959817494873815594959762451143660374747385332833694254918076948084453364885985343774797964963674515510906580566862181131620269235797652697069109021674727270210599160849756228020023005868961692411335856394059687231231461329939379569781198769749966608380734579419186737272634920011931482356579627946959538324984264733131354825791017325325945942852860417274877956138752002800263767560902645323154723618325181730287655256413416264872927652042361620122503370123000001146595168717996127829432178767709069623677225457456481649737787627703115764424849568724387408732495707983979148374072136431796517715707900525223941025647827704210589234314309956448518796384106653712822223757221611459854253255858480693036653372741565012357800975555255812635609130138124689966828282364436134017631249277515596696102808062859677825709926758247693915098489361761420570353918451494350378382453005175214282173235959704954916288757245929913557567332535370415667476532381766593944959497297347034719773189422404749147989160749932575801816603267883075042020532573296456962324525725110857949660368721375150046218950866628259932506855446053913772695261423502117741221122870655569378942856139544110496464173118219852133174069792749328867324636469180488619273939735143837496279351534677620723044531754436960759695071499272067092660042618904516662389205187526182433322516409786882698217575978958414871020500996283998164940668147338434014123279529423216007112197905700459750199371609335230892071930943919964638608480716186200848994338220090901543958174282302431433196134357966049522830924348064656589958528296908349400786490534591571137981425493589278344951241255439387085389844257143527793742358885874094649309369341457975558318297813637123797342415869577124755875978906677362644629535003698332507074198904785815447719831383978813452457208114657717576551096439700469417030156107800696760659465642766038315305462674492388836887898655420062992490222702869258567634986748990133585040996576495309831330748067165264457228289796089831201013426600018689266712171749670491993927985814054363173071442839224004161149164560534274314492509457597569941111951638723805331741698710526814444326975926552006527716217959687078718141652962169129311392966697401012711697619662189594575117214861446160053477757405508417181761007074622598932918639463870159144090681741435050704680986537866520711336541939572903626986322457569354488333873716759340351313122662680218539272656590308089522693972740137807601957745478702933583784853082362991021370268187361239117015739339709881562439546340519594648384111642879392042563940031425094413858391710868509504673718309350404625130108477053535354976311816514403196309370902824686453904883387841984951054270847206922202314468594839615908972942794966711427928363245383860699049900903680279051065390624930386248945257754732633875108543962467657819974651754385878032333391594324525888026033553458009357010906098737994546533497443155602101387191847507165855192278787336043712335397354907676121213541907575237414667594191868358322102629128994927558513171260339704871489391336736116192538751290787343801526025613666708610742068697150738930824258113268394002206589177736851400872819082114359659772995279763691004236605296244601139730228270403525559674196459659322386355851333169249441861014224136391538132124401732855760553562186104494200036514790263345433562016783241710403438834966863925281223932071209759701270067703365424673996905853936816843436671706321130888279556296986283889753881121628041492423859823232575931431024420561507245960979476625629189553418858059219752543955559324098101598786094023443038529579479007111229535300832152990587448680708583449480724084760547262848472847596976838251242265737337826465007726590822305201838359226463100616223458506844578714371182444963891436330994977649606805788227574078405944655719169153944606571731084508596922034944213328080372942454800884383766069766056784727479217178358603116597788191120833330937339155284062134508022495737590932506066970069713594539299419739616319259646948157945282244035854321392056319657753873429111118183262345251296478952072489185300663501802177674589974873539334003721588783947484978169904787557133208395704870498205865086041304142595531247261674982865163531060876945431397816232115145081196933865194676732052229764707611906846102638190930128459732009002305027241535639263645159877888492581098289050092341937073489997870065717815962095053005379895576806243003757289527230427855390534991286399621677776726700600682566235441254756452441274786221752214851875608284963983891304198269314292817233110109745546132757653351506190779899010253639100068402667066661547450139403779236999145240931391152711872008944318336317325380375556624411546905918809632480431505632826251629638457120042238582665927916682232853122059965763312867393425797815652119452609476681600535679655889253594311518241220283139813584651849835653441518184926253505627042194937365842665321230173755750106308104506890382513780486832517837707176198046667354909383372284356211262185315330449723086498782913850904691465226538470447834103688489459248686410173822702345699934166382283526195125872778062850578606719392077032939032689989874547635368031280776494028118063090477557600150100121150717030863749227268436814745691646243610131294395126197787777001873690882834794195944141485962098606108482856733497675230921497775382519640359517335699228151993188909345345985243669130136681799356196266048700125257091328976174045826809683643420714047757334043311832624997990273012711822414142254585657619288657201767797095133079151131416175007566337478669386734506367544678494428234450674398405408384914840821400015034185000443454490968918565271337838920371913918145508235851917254325396124032066129671501839561962904841026937834086382341746213931067253822654218369338884375190397585158758570031480797677158972033855989880272659464886546359136180232541633789822180242980428706482905178991497269256413317314882477839700942135612273768677000612163704682764388348582952386967808239545884699269423787875319361910012151436677064966856866504295822145639416574470775553426448430725025035141105080700164665157014192732391121824522846560713620425369655853573992571608186454022570337500343778290172434035084099936177812531197122272770085747871232624212007894073398114219593917795356637083540066606926539322428875934704760104725834333255317181989955102165525357697341392660956681389957250628963313397129556985477276399639549396373438366131909693461073461938075053260246920690639622528147888520452260762868584698034485374488250265900852696254174457479602671838163822011874605559800423937411097474335260356776477741935827679911273290371355710579096589710444525974004445089930629510555639358898680885380185743852810638768838327732431836714637478937570756532082943205818929100356907884667716011006999757296010095322244998402285735217064012311689705384565665718501427785263174790650115585025750046996894730091246055468952925798734971788711343970171956397084374665461826373841156944879016108552031431800167984969482089766142639175030662621337413117217512140123492628620424463515260493385254874523792983405011108295895383581785482779770017254526345877183351112890860353893760408834783845465618296487505146662580707114546318592275616947532698839134919822400481554372839759367427891149331330454102285272902072509676388885107622734073586416747703387344325576984157125015383065843014569328199868871811684141678761838938304478180578909150265853405069556201480210270188739595031495185070329683267167670996704388201195404617697031903304626222354790262247774491075782012347942823233567636286301360667968811528172337638369796593329804612535971751773873474990245778158798348980197424094383048204344920226983513967489419313556366008183546949950271436189890753372188632163921875233412208183352478850367680055492109337358769565401602849484671497585720920398234627684655035237411460982819497112963324792081202151606109050006895229696514527723876296728365247989657234458361051075337049581533244441892648431404092948917223591426747679876839795164175741780356315322908069546854369133016398275012252884174443832404340249476560697844963129150272725180486949005191974269879814572811093766125440176004253799290197469400944989372010755598174002976732268923691934066412995742733211953394341375087085981913192792372165355127958672511272966188492043050682932912150183888507628533709267172047694181826723328628770675520385869678485598792532894366875319073630582536325512627616709420999137120315177615909387874937783784092334668870804705027536321423993720658999525168116575900347577604857187630207303340573362453246640239870658116349253539975450975141590666719307360436480085736789677330660344922926467715651388949683229883190022318430047765227523265258068070370992422842398867404930346362909888840435189054281784490484124499684385700204536642436062928965822364194965511865623023618602020503703111122105721661599601949650904898227761848780705239650711232852427528547949263669669600244577146065419967299403247066484908060489446852769062526088214638267713197267779697661916811352604011443720944759433607193989421470076950504660731748681401705213768767480404483517572064134563466867143830941597031561404787767094393904676651125039864016005982938045468583568329999069798862681367089569382051944567516913215921693763780889074081328123077525943981859941195138466804632115318664416177962350609289370669054225087688020879884586881833176158017414830594401851636136633195613611546402926521749047523607072026401841743982040229315540166783485735884073946508763669468211630305629531321416371915352905733789481985999370751538859300220608434341604111902279256943620927545900166792007593635943090785521689626958348990840355931042648950307089365635889143047713933933915179470518298099011876724030326430307110433801353848561336515635943079632558447128791785272862249528577162591305762083048247791197858048932215744543277854786699147973740284461360102544460874713097411331246820222705155064439577273872915504859503603950951565157175299790551439141064281598949693579418379787519383952040860599066691698995997075746481575112265404154201116284590539534964744169915919323281850929060522477450435608533808794706090044454702470922424645949053615564421126866151254066259074080957897459115566618568630934424957250089031553364717860718915201100461445175413661153184516859761813751097643254808434554585377349248572256112830318876143555832284597855725788149914751491726767610098830642567360568928210324500180828908674005106405449850952787879062684379962105025224964458632912046752552087755180553330111370060540949439849335039666913879148581588656622048812328621963151053788333515657177952463512441982081854160750788232246711626049768979415265438361175555068575036899689857642550278839497814278241175328640153461975958758849581649054313648075929366631129186046982240750054101856540418584755229844232050534007051083384957965364214362539572143066912115968668325605316262758030832167640923540081775976860599818235255713694696301165706685460317568442777453222194848729595103020671539135779773885358324549409141051232857486484880441856451181709405212322044090209057546043524226232623425627831220364248353222435562856931016492499480239683967360992408403991251921125121131072423540038339674227955788113123076409071412666093472131685353286648152220312347108716990850765280294698199240805616858725547995205622205826672614761031387226468474601214385173910770969405708875111619949341079864332949175383287033196288557145202339605058490618246645143424357909896170773449839174453297868530349194935334224809017119798326940230741329860564980254966246182370497593835701051298848199808526743564261360334888884213266188504692968831766917221550240433621802265036481592375566401691951939115826470264699517345719754476968458118859650723491855209698783550302506024937975262221313383111993696928843248368322213439238539625456246389691862467563194535760059035704719828394127274821227518099651525330168950607716144456959723322345554636832511902314472578222489516596951695751474790538352134442078289769416152395669399484457410382583164107080848850296997805950033724054949332033095161541880632761119810524886087967930370936798217586430456902143974119282334196185145185609631535282711332004933313245283152455986300851755935126055605263097430171189537428068441330603261831081169579720368289498952538965598220028646312839617970948796593368893297050127537636189068342505851000455446065802827578360446851214059695987757719656179574206498835060380832090323987397480461141581484796964423046489789808625150149767787535319817283657758606491135611685481647728233467158475150010341753812031107652513731562795276450635796773268912778851171497626160093419431900842326313879000586182922929644553851001666303213081552836525311906474970069382416769376685464527050989181930805655735446162364348974137855316723144293265297446224951955922305248355501928073691689219306014261869412889291744059429854372937529512182716760241871166119652382143820403923048640396102219366551605370093477348731557906072568719599889956992766580848943258939924011096310139007805694002345951225786898629236292183998242742917691336821841005728225799070859289231692444411259294989585937346041079447787880277981849304689990894023488690805515645086159789575567357246579865660598438121916411498347393370132014028936944508066323734418306757162111052255240352561971801893737799123757592000102081419826932511276193495511527623837699052386275369533701228603010167764178564710204405707215228870343927176266247844823380178135852253410312682207883127000753254178875379167089402393458133795957533971854519665005105992397339820074233053060419481531934852419041225408845189274152985649689350593809946811014092365093319320553114983890373426756629697355888679999826876987262094100688189064820953158472806348523494662064495816586579298684070741077670767630429086211233092180895134368637293507032917951224966026588106750456910193146666017741281093768374590814228322584667381976403914684698096858072966807717988144448427281960165214470360303591562488499163094545864029393191868470778708772044421977449480231018000804516517132638290332219630988138255798991135770332583111422157811296321569257672509137038825771287938871953009621004313892820846744629987724369255970403540342392857500940733932781520906837468052099518755750172781319675068584680596814097811050443482995527143908376178084741329658737192630392376358626974291615390983491786662797291379080536952036089225911254204440255753586637883016428591157130888261413477146617583249416709698519284652538671824615225595714049998392873577220524293146544484270812027329481821986774147828277918730147278986458645759257433655838407248158844774664855935222385644567603151923346151343588006149497881356984263984659881196551643122011799548405264227556236048509986488449874325613725105728637160913403550889687845323191139554627431950129282764811704516146426460353674938241570022101720710591233915302313734649770490856342217022354878950854771537193023963191516354117263426230092130712789754107798690553324792436200044909539624125556452071255559368305272829938882867709857946337501989878976493415466339252496164428233553842786372154786111110857669947031846790599622048307365694840378521953121081232728994175555853143218950250315589561960993133862746559519961360584598258901630420264461410070655244338908175872291633165486641599510560499647426464058617202031316742579211868158890079040495909286387792733270711306748581269487809568010523237677101116283406746371197986327813430774683018901661652795770454692214869733666610023042129411285987243639442129642403809091120957213206292407483405192669641419878941890562141942573193813362937995751247279786145718030639600796460241079917270339339157905296355566199814515076221387879947361726264494490781169485395973372673441936256773216898598904936474276814213915744775843595236602458873539884081229835198325230607207073577739363423621954260408370441976530230104902960725402544840367369865933763837356398023670140188944117680822381836047853027829081865639553891628712572235622493996438787001309404099473066779647595672836109574238531162106632418073833796663514917590796731336900600410490730836461111596063762969451298566955577199554789536688607116756564265686537079072814802432810047415134577670217728840356250956096783060501008858216678431591959600604015809311734205710509895828666818840911882950558875525168420288493284349574592253920181509075863042475210917477332101924211557921520002487753386330622065816596160818847905102259569359478276881689019941736772833155717255591590435593922330183361274330378288094657299119120290369696668555585029679371338135378471447434986293395233189099835055963463868124401772640625541396518358460220729007377463567298240553338764324434239473998074477463407741931290469791370580591070778822060887380514462351545134657358613671030118303205326142975841566821990422045527695534676746086086528031405008093375264440660918466938057314689702178598226254190317654073458026116435203481328259880746107616974913526692592714580418549295840481580272261680839885656058589790478921498776497523280390070488640435605295900113753807502118056973338056054324549350836787843526825687259021002717232805555553437068386384672386706711953804477111150448524778397590334351141936442752211626949411854467886049877624597597231179970982943429184445696177978673608136045764779555433292248383410753694487498968698174772806722574072117577506382051264013691515052482017068181192784532693203114336987499597917843201638938983467044759201587231487321707331182857800666347436164682462448116116015401660599524600438964399165799137254978500163203639449060996056603372445299576947341428926218036181408738412626804404239586340845759192123727670268891025029181569155417709430726376623917194017976053392948955705550960704926817100865526893392869240335919553572418414787151386780598244524200496258180785684473587466422778964747756928318584254860472933645773972391677252770033694139482366423331162202760610295314884812377035868336070362386307272015178795217681490599726275773123744551222706595083300865698293586896937386600661371002482403158968226790860667394010846835435720964800337323838795021693022888160956920868661354690905345173106240532844594132906294773373288335834123866265751464408472411538746427107195838390618069665100417602326077217876068986405907508684878446350947438862232753180734514248341935624409458823151102910070987091780205409648326861168006449377443042638903186141718996577449523942797386003864496719932892613475383227563973199199037449121311968318893557649838470848012817981812061615375332673239288843450698760304517970563653475548574323353041964893748489126740168210512601302361638520275031840501464861428879930288088657604841106119315223322013655432668596590019337778317168520874488310379853976158168034599720506756078474774737453556066893062282723122923822386867627279709392116201345235459749877189331921175694766389283939470430291444443104274364910509916162838802745520742354602041540816578900997697339868908277551531373580974833266196897536990453641659957800915764197974547981756222774532254979065749399492276958384891481891686944301559747425113599948195035484175131615323465814633098825055804459806883893271274070085788350836361250098461359050233751213961061177819056078220102180673150617102698767268655325984302737314284936024564732005263922288683359723351595869453764864265989265372664897374324851778399696830265361974218145543469297272606805757917739187407068605220618760699732741823826235257227469107721555686018715808086157311107716082124837210720973859662825319851433693753512257505719418727927162076644498414933401456191593971620733307239952379500115376712209778022140783810959557251235507473753390068898657363920957319020369539862148689916488889482594861473289891483221206408322014009837475209812482841582653668265199682475703220552179076401335267515489406645347071726075489632150680738038240191872187999202127859968218170669168558227057907943833333413501814910599761440588236879033173238084103625377852262368998141889845011705787543597893552872559048610157234041149897633762692747416576507886802216619087350239731375421730681974887542501161688668113955429003893107732492251156365779521786237615446973041833567828480265869659614919910670648768431573516797481734765091480297658755114911868972846767360731124043138402974400760150596117953160073911208561414766178539120863899208204575494702435558177564389826182499501913917121762324007014244392528154650723124362337501911236928898925753033521403256279994149207904555822207769383586741622918686680143781604908390719104176102958831926781057657733087793471700463717447067590027546331697835863550133621467993121238707879691333940790736681289210581941237066140541318037352958220192722231221219861113556102861213765455870272074880069429835979818466593013036165202875337386914308435301841297404912816247711721887245134796148976235587358118806088710308507735014866119483683189909261973338806548487646461662159449368732041868358568716952232959810735829455798978960820041041017997143890828094606214043290434844704580453609706731023664911469894926020982829707256934351611826937233234147292237132436688414070279451931866923630816056427341230860292217723437004843531056246012461335924189232132247499591297221778675866375158207566839586062178963671556011443222443818634994039703743602518768458729560285030208547129616254489955595713226586302549447454222520897081928944405620045466797824503900350365710945678282637569290557721838135685508190607702529359334992089742034659951074657062326079221395511706726767720893183241933885096481259589017677351975228198735080384923207682726383612069867227498239966260231964608947091751598103018184088496026449255616950460195820016218717791280509946771030462507944499996086992820818584590906248592461801776888883834943287517973151054204361111889725772816414890229563889875530749017532492715007416108971922665818314008740456830255344355119021203165022941529417766002608558762548827016532308980828509104769323222677183244210730874562474860414974816964730858390990125814558717091987729564898735422612673333026148893019888479252424747851841437090060300658631208225411406284895805182821910687712428723524960168632786701951897129169226683550559546306080436329802894704023355801644652226619686648939639693484277296177177349000952568325977029636995916960587819628788784402810005585595000817922223568115710646069217804928049577291404292511036578935450553133326133628650997712178240125760587874282508073917000642293001690801361755459511402164465793246775147459455939576657633689723524822471032585090695391986238413145915371045142856807467596429078793002795761170103346473586356363923608847301934736322553715134780117432280720063562152600302229347271049873771946015030239624118886250857646208422390603433621747795343116278082244633932310031333346024243790842680168975174001931776383380367147985623716551809199147772764991444672253620958251906529869539336236644014340082345076655300033421646096474954219018693752585767052950946776384353124455543081766150762733145731426433986078753855050029781885181093389292180086309099610988980224133480919944055311689923928469144928786198802999172636851829109308551836084130382974957527358135717437914447544948591821124190326060783548397875343982550233283555813336817772124959458078295093504327602183572151255299676494639554771271547841122151609208863591626756221393676574890974751050748285606580100845081926826361306119484785082783597884567316557621499353815807018227820366681764550396787824620768082121367921547626391446768615483660750649611778691129319348020976906867809453896819445981331290986524444424837018967657616189776122655646837511985926212951885924430808619376514786277401557558259730590785627717954345851361853481826320202632040988903841540651575087556466081861233801273381667924816779258114809164872452084319852122096019428540618912453820226464601226047351632935886762837282942672514830741052242240223123516241473580337776774137267167130573768285731166122845027021055377296640490265742308043718049325979572158577935681067795866130144469296447575945389577313760796873704596047610302723810204321273737147556383113206731590391696139311044149862721349476758974043584530268365164257662340836205054992587146523891949741788420092414561775429524181062594438865614094562725653633019790736856623683726553214809278928480432675753756873298598670030806414390970153128724962503832640614337624501217897153561744883775973411805334241759177092594087406905714403149115945714687523977336438419892270558833836248214669755272329736021546573515326427121189265942188777299599289927091693721256976933549363427485785655393658434767665545441444934781196173169512808461449781410236846171014716334999255232088789294951669404330773928160016232213374980694477441168851539801490492745751419242902472918883893789003101442137904050765638473268982897560098895025786672115078027004766386779847792787520100876856740204173586944382126409808105749803585553185105568874197567987830161803465457781414247496962257831016131709758735051948767383912887084545843636982166379613819232037305228346940294882535360461860925536941563005266259109640591354443901512036684889399520727093382205530637058040545253794772968588591602641117328308534596068184875844263241832843597448818473840810008333308038408622070596376300561889806469725650332498389727969442380885631817610425861159794612654458543183406760922436820862658247268434155212798983056262912875958463213888562769521150793642447959635950911677732830466861979953624621135349522014089961332668215215039775867261475684482131327361315730157908194836127952188432001964560640719878057808985075184639888422892890790625769049622099969620128155826880089350182116722974625962211647971750627683430396539758132741735143917303388439999097986772554245177552046065827838582939530355968940501067301497387085536459897000072161266003040830819720802456063536788325512259100490007092108153875153792030192261570301195587852238107597351796202540816082171788546939994433920882683471383557999195252096474983123510250028184925024229587048463329310909958904232366720697039056070756593857151078572608552043919560189499347981123978825534831675905604807718163818886681669937987964590317686359294093964826109377507511371502066632546223092290169123101230639998514686230087977698402575823087308124735967426683799122713206685932451393850348073655794163311361362258986189433458891388626699078494826846102939248715948458462143245047750826086774293874370942248862895767782771602416418617059975122833117217509077744634612501842792020742812053786293592081644988765099764404024245595707551442089628556484573221039710755894893180084826255984197537591340414708405758660499784565129808408317695741783914950487522016673314943885342224614837466276578454618927349440419675150666549208022897078528790752249892942272690575186638555561098437177350133353867907769205437096305817723467242266939886269545401094345784893174967786544469074319426715286157026489944440826729747313599678423992470654216124180233620054351408569437709688205521336120019885338411361904846340255751127529626102503125932929075120343083307745326132080479051562041931374153127243744306022053258711658018252340805503525586028216760677844614470685967414033587635357030061951939922620475809837291312315810819872002545311963140050340552811540490705841391578775369852176081664118389169958137938969363597684895117180209724854144972676190883782008435388921563663979736569403624200294083822893740612410227179166933659069472877181656026768254662170476187723868002064771534280702144444866936817751856517037760256166292685367436992913335445948262699148771489201023287202853604233705879886876115121568652236229633829744314932764115867959288087725371411362813408272340936085911261257433721661591746614369298183311262861964232053763995553750189029051290605045065282362588361300153641501804894079269726063214607139187176150494739564609100880438947249038982307950606182724385671193519614644109457396250549908795884831249141682769308394176314795669544843631116018266865938199943012443809694745191940942897077656060105985193248650056912223231561959483294745881362774466946975839106254169795082475044215360931506033956345623038495268567628791380203028132193971026591599033857941292235163500098822327144820848878855094401886607303770379901005368296969294375049594029168059251096743131419101106314898388463094426298369912954931164000031179812750198430078388050070002779302485670621248330190584357261450570269880812622223965347658599332385431936756397227486472081991799627411632969242568957214935918968626476398935877067273308986500876473650299294519454259226704273195986598730310388797156788087632332309558265260547779395677909643146931228819796032047774689491876077861144318068082561329951299020177043158702092062488826314892357761694027402621524598555277619856932309129446324680419652153298839949042267564460607643041147843631638134561962687471683404433525379957947642677613290986369722615472733008523829633765434095382112012054498861226659151764591446921120266874313113604517141919514642468778192881585654937941536456913159315515386632744849705575936046768499352747542655751345449277317081759175230817420506087891800242816482435391534451998525057525049370899148047800813881017499392708253874734207895286285664517366639987715816198234336672098439038320902308082958179331727921122696972401156716248989878383364594860530485884215814635054248731063531855703454859944221198067740751285337528769655546933970412586662105035543313741799271563992031830381761465052771043433181785621036459104531995998290650147319819740940128898157704541146924907844259717896400233583745579241131261810578923267223444283317058255839380509542144776912749182643535563150626546392901768743850958922969550629498114725381961545044615442663738164388214640358492978006587539606362656555963780126462909837662200601285368568054159659615472642251366997947972235045872425188068900156775066128322842349621609309228931475427355389961911702150385450058285597576373583848363914595582840154370915286310884099409727243730859684239984252496703584246023578444296538380185950801339829376545009348703811497542111049106880876475031617501522849770618143696399614472562972625766614813567785465190612543982263833276174245425570721793694236155784326468968937581961209944845956399742103696537336958419048015713986588182777784859769477613264725913996896105874017604529400396611974541435001238049192432575289109486898888409053013751143843909982740942822543672288592684362928856955936935967780414135619717382544819230798072418448459945716753919994651976448117688026135044076672574655730690908132983047798560784552269664377236699900665270992466503108071667834471511820375263244402842122636374267997224703115752892364416998720822603490526980243886199917275953037610073322469262423719510404448621505561945494992803883427566503527551490796901704897137960697135321680166871149671969054628617611627539821485875045542914307482587286727379447687529480640390187442658745812779668850997339776451841446013686580110196125160502833619105546772583900949396218846748829026099999446635224075448480980414513051720264780389166047035378261397727126184705664170102367471349920107321785319998420107507102174150723908238165307591155521381649981418758905345215702580108520648753772023109864228604386699693334699287324913857019216933030283203526705908499229701527748801857237570987683222732339636918300603120944705846196316783298412456358164373332882579926830907242149259859400816711586102266251499920242043031119669198368576030694607513151064771721764211535367791119862659157060961251636790880606510514570320775272713078656705957071744968569576641287914253676568517949026974053482790355854734926397952703069332765690249332799175176902913611065390714195016461514931017418416383579150749945966424783493749412391558573864726873152901137122873808791742331463508131782484730018167383123909227599229447625230388458217101762445945861670538307012789222348053702010400205354912504093349250588655447369034557629775986993443504004301264495788136211328103603378083253908795388191874511556615233960646772217113985624360436279297827828653090977490314605020035504393017767506613128422881545284381944693970399222588406045214553096383886846488838264094089364555495695625787263670191739565227800532538357087359198484918374396763985234525925451296002254584148960438825670016397427530708171016007477996181476194223507754351696532529168801853324144068180475131262780464504290835510860536734206264220444599033613614766644903927618720708331659757949775500772649873374208369244051399379130655834741604902354797152670531737120549416248357051621541534424104309403528479806621400424684857758885426180384973652497911896117791256862916109902452413054057125058960355371922593573898919895799464609128519187196626982927246263110836576973567594664497987858958764256882577929020923110643596068733053120022421537349860869204834606844880736925204102246326450948910371893712190377942041096394950724600450240846886867977966496619181232078428137928083102960446747896590076611658114781125050934644870449993861786960924688541208575637120095441281159252830956868858184329435760170912959785666397300536977702796876079425134087731959453374489080576981126393205369398305496808012019309464698985613796194285689469813808129401550414864984890227865658829354077224687238515927801710179762366022298131197115459597417779679011386381618414811448920173410398403714688476794326135039628486237476352886375906757234820137111635371090464988690810716003193646291498274343981641807886404095928060516592234141895568895581674758662785590332464899201964933096298882314475403674210862521151810421091790637574858837137790101394010664494870088720363869859972733834857712596637355778723935975334300159947762353629867189750411449960715300409792380766095442255076828135767508179933160487821945859064980711306374850329904632584735883848964258134557786459557911436139003180732795183620022401581453357010907165957059169234689302263388857406220208647450277467263733231194289578045060052452285615642113480558916773666125189530778931352346102962069555877926532391286690609709803884382995315785228504130718405025731784566749837117856817107094352102278970959630562325599275783205235641562194549965611034665698305771428093739523225350787260762423176986500731596860129708190699970955699396434271078843905416625666333560422506187584281058969622104454696956198307642522606060657605354747626054711465071489789563494695652040530621670996336424093535071434706273473831496573104178134288685359103418844615357558243625947639669672885584367524228857292147002636575314147432376740153227252231503370962317531070299943425875041278156612834257922517346143319385400739629774393743875723825299099542733850105807554766077827077210520604003166432611054538973664990209818232869723716689982321743980831875313570332459255087750497376598654559561960968235009071016270230887325827339384146540837328611321592416481574014979329108481135686594977060527349807120931462187345012666532637657185025714186596726885052193276866703971464312302374298774994898815889987621435561692915530362304813591681449129436809966824850619819727897263826916735947079025619028043510800654028100395527798382754767536725482361743471672705113658924909553486791464945469938710443256636328160204196628811936102503356554007036023737392921209468992036422246419816380413131966898792602062273931861071283159949967506604988731833305741726596834411201687300011162188297639053052143887978330652736968188462777939300010851820663377105107630006221193917143276247590334619658433605845197459533000689128374326390250987201774863629692868059079609699606743671706798867838003683104264903528133395225583481811886536774967563166386587649660489685611614215506565765298778728912180254325499321427867328564026460532125644905646283688805036698120656218519875467027593243413171227105541270173545110330201633548383999627049463313584241980942875392034169867820242606967866758607186581613794035431305074275788056392396830077527495128262921785431049521920809128313442095171220187876344399056261688650982128267238573605882243808684277878250359773128811289082793939732053746242140237836239833183924969912916567101451222562930442558380817273874996888875471216468257516141607251384732585683663453556604823721033302630491159345615283175605903916950703166300455446541156646546045432282255735603096125053377618548665929349562915427621656746314248536394228423157967983731430804162143849258817301245329085712042629720409901833790465156422595986169639956177485759201835780635805774747722006781645479953465073986174833597114777126079535773805408751112861541117100220988048450045638685049296938348376818797532804153621006912002189620706468628285013754512962325369839060408519824981605291298282863157375890102143371969498654372116734480477591080547978798672859335250681369732210933369061963128176871231065600371426560333414449809516902927571896956632221646242290534207606020416296166770808066839234105238310639231887587975732782733180554536838359707948363176181875705655883411347625807551860236317754998694576752123691179820802353567200271163583511106882237628612423317750211981631888090266933109972795498446363332786271495987268149940644303122154940917569329061994692050690658785024925319110096484454227519978012084875318181492237521755120823560525585329868102319788387476566395016157315153060123423826581132204730167623628503770484547320763608930294902812297607966161491991059860903373960343799539594556847220123223006837251745598499295492559051074581214385629631610168762144388587527652700773262745128977506806880517300070779105538317682499240434087653958487737419474144136133847603951067321634412191141090345477773691140569242634516618145047068838596697264049344522639627298426893221261187866634072361266222728172831734345271091704264108013084683111628274652357035552354947646996651284080996759177773321209143508444004043914299265908272683695015160390946450022681440859372743247442468214503805970910108565193396340478622706546722618629295039345145837417724946876616926305706821518208050116248297860940198914024308417186127107209111302627541118722144394834529932111362708941268273188577968125727020221235901163332162965336451049913027986278042026873837526610607509742474900076031304975391753941379530109204509666474154679606943588465314292502172436982557433366716477171828337586699880422792324284385040800019739171312479463953639648310247777541634758354848139782139887057945263764074306011147113002374022045512319033557957833576627417468225017924491490647629925626640727356931777169122104533019661960385252302905372453998994181977084474476660172445224940625222099617573820483830979368817367702016334871032778843257508631676046157028197957171941025625944042638718066337861811354302468589536069249667606160360319283313369494193177742723002469688438019049106658548667776021916453764784862931582371589825915981609036380187417862664467336285804736411810860118182294994297632690697042484755793071772262975478768671608498872503595963940870208661722666648713449534679394569300391926833402272911373715325897162285609838003025007591521610688901238267264286798907783119874104275381966612043995261112362327724447121803424374146481256211418637834004678255841721597882683897967604913213155169315879519982407518883164029356732217951162521625259392601893400873083524276812822875858877294786847547320961675573508454974771161065801916392750858882326772983534830711527572236090955272475261296056390196014089517902905776680181819482523470439325193089223284078667353444180659205819350561224056611419542849116646754539137337239448289848820153549064118768049628147100316314803646304583892116479295852389464121947738291923561194616453625840531946993506002757783777166422066903158832384349078651249168386244787385974971930258331001103435493468785530047199048511769266598046264645785047464999736785642654303563384092699114289343197980908164324279439449467782642723238075586674991508881899320365719623368861382692755581635118778620815781226485322438215521925752896110209452219603572692235669294407803581811468390610963374590996516638606807107828497417228538717675655014262655606179451984865609601767324102491498378200618103887440635225499997479763483005937298480301816805889824589654690834016047420690212997688530119131950054087151570843780853483281516936949723130508213799872073573906514493997818477207432105128625055779807509173405365228062023292615118341856717196960264435230654616098424086476078596646977868354634635563282308418596362665780041143232139505639555420049732297441083511765827858682404627554586905136458158990249606741337547166305336023334032278688803289487186398284692357864077526032864522796909534093329878360788516934032906546789816318515858888770195317927346271526049708781925877879855995909469858227389180473035045840428202115737489497062067220547300982787920649371606839865004213395399964567752313336773489122968896977584940123777015838311519958939621697081747032248804720641364570010722563750564677573530743090861654785201219383546072254974694672125269333761480519027035969507241020410979841497296879829718129936598323539923793181212594411805540899548165462764001663593112774014553635441106576999149005831406573998727615268319150612465595431747074391925651152626654509115517132829497086255677616852521037399464942684161227407646112729398789114090288472394720306919912284797565440508142206648437504782309483453962915731257156164861193424790011881747252531682147302598968855782066077140660165063870635440889608545475598951518888707304143391662278199572142562576508787420264355937580881353306431654115023700079047905722090679013094002326338093829756102533111540489233493559967536064729789085118328706720449621418529419751238963021076770596958534641201341495656451232809870287822182342880869601741073387394600418117430703171274167178401124461534485613374169221030521419564549388327530457468109655310306441096896056354866825254246364251247729059869709267501011902005818609693367149421996378276275155026727432684871374023787605048237313921711482581431754266551034201469467149532456299305873923999417078042107909513074416835121036080875394724444861578897339021259500434349480426299641154008431599797720163245335213077415854804950979361839111485769594038368595719162092497413163191518629268799229867523918154337004068736531809262793984553306304905770407678185176802891750186119945520461445120269819095509721585278937711506760006866832666572963497748552867878416751463123688041166007503233205826437573922562047712847149476616186293544667091355236166506602478136311515392947609935453589303913158054366702798611456516325269202506456239089387116838586874597415168061350941239722574904730559011361500436675546490329294791387386177006298848170109872126324836221332629212523484487964252648945891050311455614020465096044290475040879049621962655503698565151790824249533106663339954084706637689123602561144337710814026604140744702027588854426047065017525615040203103339311560382697482057157059099611553990860247273749149887189485668951113048216198677742683065428314027084661668414261078723314610338392894982707270181933577328756604356394618788732664142799103650909053292343210092370360470764646801721755931902142983289901377090388918377966968217781919516689930149883775303377896008442572510820300122457859456215426220760219866498806926520588087189606984533866361622668961713321567345114044583126456308408611429452528743821370621225761699140743153946029800374393141339876122697030759453396137368936008010346373668125269590750549965201451257830490263818935464222290362859013712971927853803553974672358956129636123128178702120250553233411727465027425800609108137529911916030506852105691775517476267430740969839715359401448666276468908098784408044840046056963891303830825474451414748208458219858161976385716246454114358158231226678221470972527438655262841902862663577149878323845834982471892767373155957398672235883098079250918430439929434190131529376015147813950015305472318841156567740021563274417283414619315110064680870569116697313409692869286477522163466344536129450489787694283567152270721545042772726250795570029019013594346786417474005009066988893509071630319218172884416781277068621873121342792475303386995901721427919936924162130642920380390091722866258477167771363626117333750055243335832189414930380538037574581456187229057436182455119563378048119845101706189648347667202038613289874103306476168735646433148849727369106114189717151552137129489314512768397428685740519509109816832171386697841951263486752766687172936794532286585100027311551914115071993451089795205733885404742959235460022651823142372775229119947277096985026525912929777754825320187572447556038140095033273060069093498358289930031978574751834224131595436936370972956168697709793244038100902520812301358337215416501525551039273707974900503122069091491190918613748353399852400799224877527860817312297904699472512390327506069698915050968699999003812790473744077926166100944862297430659571442490205117136090144877575447168949606797575231767010136289352305693369955807543107062706958533144701133706790194584936958175584651273576715209300328182208485994033871210578781001865467205325762748611278683139902658487631184500138413854325802657686951381249137933639420015163967595984526614257790666193832016973488952320170230305785732794280873886327208277440041922391683636236962854832368904819594652626530201521529700323499714360209634988985876837203809514551000824093863506698216412281956747448161565799849872123741063746604084855409346862751826739344853721698570098077124472096705314347449727651623954264392206695959650199929367976810356873219247864435850459986374244550342040988575034074900812496879512902987419252854640731074951451398943964319246267917463830491192667603931976445760558637002447212619008063904589135678338136965632987041409321369551783443937868193389385739065518163355393354832355594407592374919678892060263896322334516876025308903639481202663624426522873661506945738640021613515590689738213220438375962902589821808064674363771214719755851311050285008192653696197081594339501662035973351251351718103259559486678030477771902064912350717757458563362864181594494342589874829956857995456394067583355820808681013575265830808575348520941770856532610035659282277971628917370687133050913227952072076239932865649016528360610497621639249529634865258150521245226310864917709453091486219952827740081217184617938007471639033746033324251490777863562950091036395087844888703800215596183284182753020872019565732630021903709096615567570082575851461720676965083542132401138506933816945643554356375938336405913443460183911506584223610407808144168420169726552334933264137698269018342067411812218048151795335676960066550077479368471009789301180035403728921775478007514531573454101313397622204626906947149049233239537497883470410557326818349178169064472935997433725723400021239879636902686665380305513078698826369144503199414143442728221313611698222894568361220409463085147498891262573709499593545499426429188552527669880343561992868380073513231148053645190356761609735191835294617906474848445167972448008940581400009959685146930883697321804279768969779406632548222710189531145335967105897488596837141165224505743294816323623082985273132579638618056288696547414299223665758030616435089883889445740852801436240289932264651339534243669892436227263683465274677257796911933240878310455626823332004954365784699359749961833378012147841663140757726424703519149785860741157068030097546908704522632351695748893284474816626307184343635966826099569281149416732907158320749359705772179149123459550328249268898039717390302169199652336558102077999695173095470450735404876369317576547643604559830734024725760849494232431508708084199621802512487594898051104680319906206851943693644361901061339123845153583652511040775725038766879198970464229979088403252823108757883430053941229149196860998720060545102004899324233286134462906453745368088494532663980027617157632310404230095486989743079107337720890638125548757876024382289988343470440797095026746074885844971277021999218063907473221697815476999397608456463219654578414093065924432112877612446036092761640063489821868328482580664368808046801899635522041186741309698313938788126765511526251188155172489791253884940802165377216724495840186737912891893073529500031315822690907394590503826067301921092802870824105140229109211554545521000456131050408491147731486348156184766434428916854985636515485110903990499937841667376955549403744437680319348015702416877648516593785656071944696106104361462828717151741961216409732677907861469148353237610572716568364704580554585476315913027227949674787312173352032077088867770676674859380439639933693941671160719265651166836980670517096359552455300382626485651969223170410361521557679014283105901268651189973766200221921374412843518819347207799802239492377460512744534591623897145261241055220889844070358174192758326778658568794049574850888571355500159560129277335394439518248917650764853081971360741090033919663430071808758265239750260954139603183300071524355800392387953127040716442591143608844031504709304688448224830607383600710073202093772578922569199194294453646471275854349357877475302266863441924825249718763628038112270259388629108398636519334349344209267404499721172327220368251631995707636469607057380947800950846274981029405671380644554813076737990974442801363429297917897323222238736379732222109147087718818324825176325444316116078635838448637128826791022193195390838775741762604601953286359384684801449411434730751670573333107378314164435787386942918909889874016846731101393120500514100390855472027970740927980535109863475877688599660065293034444650723254779826594321335329259590823933504724372830883052809261018335929696972997581348471207396543101669113493766940984876645885095584454546595986011424051012199576248670091520693762794592897342130204281262230065015850738224620689548907089654505604114358573639664674508447423593180907578965232099430139523454174627949117458517574004878076551973161765752337149813015564288011568351591076017240926328583134107820980488829748904185923603341671990204270406843285850226543100256631571031775416082642025906242901822156380311159075705411980035426909584087033403451983507107835465860397930738780313891025083133362064954502684155649612330684699919739351261733589162651999746225999999716755266513914031245061037396727710946913220924227199390544843970877231041498785806655559676009494397185468357335797602190695026772678011565069389254344678698799920980926436461954644275974729787531929528501375693697604024762756748933376909970827607585788987252691683738853824292431513830440613332753327867397320916884441909070429433956176257721661088649706162200233488202000255165127441394278678386232479670186006490806310065239501067857591048346644367292692674194963548952427982873881611468287204880321890379478141308166562592840951100875003908989248593271411707811094365779157589045775446361705448615055166140983229403841185131892307816146088689053545941618264157142145141943110357997351354115485913567290940860351984514003259035433140442600932583195294418110854079543812368765090379732218785493502079803094534236747154074948746753162693945616238228839334389834423812322700475892024545178379354694074571323531960935014406807941147291123012327106214879201836860660698921084961588918910583154174563604786326604387596843114035560705244513189299897517152880735979081926300876048091329118619172342230330036705072257997643205835403306781460625079642120441478272962992389058996955687051713706995692969389217127103609465083943497218949800369581347163749179445489645366689444929403710729886653575747761166775875014329832914891281671193989666212355060308628614272545273873330025991981715421894447589968512475725760352732835464348373448520515695126155752338098808612468686937849853162121830096840612550014796122551316858800106833120229607679950312059316832454635592800832420839744698263868118879472442564844502304938588794015747846261999239482971636746665966185905614374404755780421754515407767740106448465654184473784607804842078320979398734629918303484509409691535074793840999736520856204261267351000624077315876599178842774329372492924905654472561794432630216373344515986418244354287212761487604444218893892720720575161095678325926843935538590880520280021858236914328732156643109711105216325799267480398683143856416617686728548261384707249958304572712588517624554579788690468605821914460058849359135113383604326389164267295470724491027009797003014277700210014337231099251429057173878355324768070734343939505220590930551920140642836551453382522441521497730180744709492156545345490484748112572602626649071455583822597187989291427051173182252088804876960908515164279935650324188782708455197623827622721654759344272269803395839827670711372368072458577298729911807526241748922438701117404577593056461206933922183855816694838286417855544916164794539377488549858653557951034278613682508808621656654171863283804949108705503425845400086948051341380612798074379230759106903915760084360857684075381758144167755962637161332776994732302184999783353957250051177782969209596403298745223887908845378993896871641228289478601439691424121508919573988246458402441933134318233046637163180418278028011969374147635624409857151306619382955252961076822591972120893152728560241128003493768208438469358125691646946882339668109547931838060338591065084699276784302742672790992073052243467186810063969609968621086279860791487831111382107276459128628381229649421214189248046705450245314711828412640997271546367884926375320765715232597872971161148275337334789023708051210139864018018128661554217240827438047339988963369625011249141709364209069039177457225152567182582639804724348394062155942693472476710697925881890647774844212475799708601261055811207580619519907722601387793322066443172760300804503512114167698155825430674235075157661217735332841433699812713520363451215584059129113452159990818605247886040188357957275941488257349078019160362707893200466827879846500015355197710562249708162194647501733550684501939572565386650085852291732243053211672014423186294965528736414923537413040869143302595380615134352757790342959957704909673942695640899119424041727063106054116784880601357213232421360363396634479767384975343885555752950012129701445916911639694958686462422075501149631868186937588750777309746666726167604367693495269942535803159320793167667101014656539844548466035461078329609712891030418578993449652814176252761281365079001470371988769736875332242451917068907018731086579801725400032182455533197615341497237823359813689868983505983799393530603269007246789288095799152690509243120458204283664944627213899227689852951635729199820928476884911638916231672811812675755393719166879843754400920675520256928136560111578055196291338172121309809339880204682579774265119865386913160532750908232254412933554671254445850554354164452672341160726176468253557907883868316649697012310840837745932192082736566159840502492198150609394126783630262126325507571579876394105895762020859493728073409072671262532396975857056843961191220394535532974894454136658114570580110198754203328057978070320220824169796651063397238490230397478533554730395470437591303311445247664914148190511519753314434038257988014231844560578325470459152240789759534024869699991714809115118024661760259288023730853502225627248212530446292332989136878053323880601733829605796052264128337440490218823640795580481182180685544216120779258520440013326075575131639225099887739903102683607973512537375409248249628412223611397309495837652642109871817263702837813558675401417109710249078815269637329257878975950501124760551314255181918362003962695789466638304908345888850399126420735652200750495288066321985155420268480718180428189113905840710445282334138337665272607471161610207146542779436521458844210593243497142009393643181417498308097158560323431984402648606867236421839662785275416113859828710940722446357102140622394705095246613489910314319842790627556522645892975440809264582045163849956661485948854734220172856569142188889974700215415613770636061756217804705956623525337579013388470567448222363177750513999366192335381831837464162064915322271328348572242880528438929904085477509681329929098072266294863846080972390059772273907813785958947676408814608293510079695155795927184673060560541259577632429396334550506405107947022022512359094369327843449427934383342297537613556542508485206812637174087715396810228996416031830707717067673505195855112697013507619750901360904278087344096271378325103972361378785841153919207384733041559627250852227707763089527224434490671902759895893310271825474603545286385460082418350803802700884507084154625080619234637842912471574923587223322738953995912892075547849777837089908862964066979254076698911691173768783125139707059237555073060656555774907355316374755650471146377474666101098053450805198042067552624264827357197816811226520907919036831646949335597701309917363709636032658020890677417209810794741424340594689143569499555920047857003832115191693470517210911351005215381238696390105620869673091114371935400087712288541476946088755379017994208331245840915759609420829404815769468987730057810218786660244020853394461615800445719829433078320468653831876221589389041887766843904239831687731531699021974941251329616935669002548797893947491885852038448389682103685541678310556990247949272523466872223623341361531039917860158454168878070617762903964013882142689953503942117820461280524717740389876698168274051573792127100081200776761339029999722373257986075734531240769866472373279709545283643299726061926122455967125592935836353806649864622121600686057067943809882055880800276570103626925639943275051722488991957412976060611352230603596867035175715374879437180695630317955070996109333823648435530913914679391971698004505124467395092662068188717043414607964044395072038685541082518964375646847012191351625765668728959976227578873134891192437198325764675865137067205733154871982347223985666878635473015692113816519178411223055850937372235252358699738525615970556116450734100208049072212995148388125579888139755262660968531854395761849786684985604614621142543506521100433513565547791768433670750017958356879422702872939744805931045203071966230398901509025164526607244724225801618104238752053184789278558949068145499215460163205969322655467394997814489849407344965386854658410162760857472760646342730843869949345119593172382531384902292061248840019940064498552153602754765061236359814638899941755200866715996886015436170227951008359073463298051552862363344827322678201598503865601005899008773922066835840637284254628580800131071472787770577969922092244977235952232541747469760579233993801114142928792768541190587054981185152602025462981062562486015374913497132609115950344311206789544703051906132297489652386582606500846567725071838828816046668223581166624968878301636494189408674510169826829511119621936688536842428819971600253751309393004664495576478163862755674038533514383574731260642799624841905280757315526333788605957009186863742755211955230297914111317052829291084410367457742935384767313207136852974357012077745281054346149926605709503627850539044728799296752225476809663979825182503811877367826903467140990507271774254140459936624038530577726329390604034695138233990326142722815712093503631981148116299323041323123779218584272861947253470512035587005806623948062573926094641668541167199647716605168134698581484046751393829963981585133020184718411008865710542971508435955249446745634891319915318787251772393138646441318584203435907076097918318273178792287082432454173883297710321069426984955404443767122734808124208964142489420166723236046285969998658670326367163279420042528940569853958121198929937239238780099938483633632642570531454292028371314300620565648097277122518294938017669452260811160829630020643048892679958988874845046501714681013627414837430265831582981405420019046817125014868315152547138969297406657303135105754391892238341264130795995800305146779561496237542750516337526138696545257323822873700155727246413273758159890035636436941103377347689760572892034443482530353423467782642493516053753211702017936713249678134488820515204997496338222845388664913980483356233236823086225371313165791987160158601971002149198843032895839782428463439188817384505331379850705749117774451608461465207484197280202073779750717598740506748809127624166202586927828796174594370436413273648666182567864892783279485295214283699251788404409093356133773081536732313325537794871073065039726767517520498586230877983652496841840273165635345853817325109876563483224236356205631465818675633638046559182034295558945568285711101267905097618843857799748564633033467912421240419591813114073295365116165921083271589253285757679021989912377076373471108547344431207339325505324393434477620033979812406495109211188709843077980416442646985678148887640756550799844454278901051314013097972267038302165800337935819045537591614570655474356250050897476420300238858621417499243875683760001636455610362820385050484060135765825477412802583949220009757168891924806100846268404470351519339446478851978286048687780864566031434420191572807843091456048973453341018196693689411142744242767166715792113169107522801545250950692794116715277920872042974490818727762799948682988433260762515768183534445084214181813193213929382736903963836907797384035314355866084276956789113102485712693684607553327156399577206267318488678595976067933518874862838281286416093303825029803018260872686907657341914390118668932864444182914593875503842925515182468550335615816075697279326362823184699426109970647537135779821184901209728857776040572911993759177930461876035578759528581135781891264310286351940932089920891559499543719664558959470657644860404136575650156885022690448345256525883119519774422905452315568755120156721699682102968790847914307846654785455594443127164791553012973350397619021908792880202156947110833297224070129940822903114788023958189486932111236273155191439240673264682370476132833417587093625129243963207289467107205054706973677294465559266723437084348081219493265528298469917198712204334736692263939081176229172029183996050663416590157609969964662670719616013336064169899694794838870230546478465477896318500853663730806506994504727571025179782971491915726746175550453919594294856533140697376708713049777064175885185163306014094403058219467112283117982469231167152104658831131248656300804076942008403920317205202381917758863906088895522615970851325175502121279555121689273733727314489277601963251153664734710174711328651119444666509785437683763348166123466965117028542191477544332453443944974742586608645079040585797199524137803367778069742717390431806337135815866479385939360656083369302364597068962450992536003348616645786217776808460710534313289807913487040291421326817373433859083773648589547151230259020134245321600947136605577520856876458155523804213287270595613463504403448710884717508293425059893475487961838244830527792789329788828796457741200599574443958970628692010286892931423539640403619234008077345540068721876223427588404155906863370291903609660748840188062688660869683647791719409190495938764830011164861066085194542492945676192486200615895450445441592656386372517470345646098844274543149941726127254893259068062884621453651006135132734019874779467158948376347005261652704057471655217942173213175796633997405316704085948848232323202269978738989590681177619926342236970119423043385656978704387492249515867863113159150950982816375946432310314392080898908845930633620254378896017631568626224511259503467278269656714758351743336404315923306237108049348107230181200507522082327560358463534058604423201861876983762326134766022877565176035322586118463342070076860368071548416482731608091526246028505434603561350986600483786923122951466048911871552967338622107500597086166975026560244383062603711004297858616010198579254329454453381409691526984957676347172607770600807828365143613784002979419848968810871568458709760714463173939269246294288172577389038182044827673225269746858412832005989438106770764782913623729337064490184423830293699790670001022578977655186769776026317858511383119252570823617619851871510645683717216910170388808897076207422780213233703661192123625291617980262823465097713177877283003874266526351883433498664380961584140996030774488918787564077093897222434521173119360840256560984378364862890877138510482107673699681158527489154474970976967152138107188206076641002350257456943915578447030446213384893094655785675108314781146715981805558486275595547370114893888869103221048501330468327225099298762390826347348757320154348461193831236983196845287035611108163035266816529906727681819471231199175144100452597734067808460392330521668087301342520558205013799175307854472314284223682100272977978638686509414593642871333980470838453805011240066307159887851342916177344757778926122558013103812577485965689139138572912672947125661797623503993010503021001183502267030063910153659280462629454728293595504244116171809038635816097211194990347516815823769116262934341517147831931035378585338154401965879183222998066369478830525906797665509680519483833137746641821066249672550963602635965877845334964898321588815053147055113844026523143854363936068022278066627228725073868027548803386636541495970730590108286567605003344245875759292137152355870684702724265764934060911376668269094819784960779036219609824786229359284283511164854563819399875888131236578554818390351768408862686699987434744211099335053863749914168160546143815867319821452157392893491893397960284465036416082384861419154028229475259916326577974785442312975337485870517562790977795508802666201825686487031628922512416837202937972633178877988435321667765031724584110686484464815777784598758580948276804214394920201751163856109128662037888991404997753848913953432445427543736989758796177857016886446260003305618264002685525090526343831928814078245177674600623095046963568103760593681886641019237597363221118400032897584884514171500192210997668380257026217707569611353410721171418528980517120619281917220034073103756944842404977638618157699515724578122974789695026767597836264703360850653840732705609209686453189273331944124942497153559417862649501021301666056212275049476158232966722316188715482128981682003522988863295803787262997402655621020419431492596311477849366231877664363914521390252265757567368954414089117313593155765799000178431412163230427684069626473213065982038576359944428396634883763552595949811968047035457456762265576370003098325579001042765980047735510849754316480452327239990869719966421389235497521869683903340512802514142242660936169064412204837513033844389964144668745284405099113571249789236733263135531008198770432127960500214772466625973554612472872363908491535480193819542231429977105069422515323845564780314577259944022216223337759972879875879862616586837462190118262902709741392707910304472557239858613972430165596346638835435046794793944770513722724346827015196061622344375871834144103902813221939962663515280726360452004713783372782267740888418152911505718637310084259442989700100202414583175336300331202465312025051869565310731508265177243093901990993433322465056600574637523761386083120638089598231778644807860164706180422684082873869055329969052710109716187661786421389182251793961647379616400025395275741597707094441553800285832386331699961537692986070332978139469280384983051418731696324121879741211431072698581841257992582849280980962780818388339173124654150258846126334749102641040079323828620600366134178412741180857303932144281082179159905173171668149109749004097910891907511913542873205965048430629589035381573725639923960056188912069998668513575769064414938930049941066116254756623116251557334415309538137159668583730350084002273735294157217183008216898929867209588547839437708226634789786619251760888106701046366735628229547009714663814202774876223228868883679306334040046813518084506283377665047424747670001107925859983303384684732072460477858821596004244832155045471640037131749613197946166258116467993266023845785481001374005769579414048372010668335925506651590482156553562751073123477064142916793756284564235125763202667297595931758882487835795056248011704106808599271868718829032782011576703845821243339101058587484761038070107240197759735722220137640462243484170134206979737232550817591657457359755130849495755213807327203852939256317154668487961467218466771376418781383777059327827071573473526959486496487856769047275588895802789679071815975375967699111602600077867543410994405680428687867460169750158205410839499415896470695154532261565061969035420686535095825185257524035416466217756547875792073354930215225298595341275009443455875012058647716847550061932642307840642468829012022672001043793420321470790782205407649402195452664450490147768899199747182289598209102514313538804247555001709414301502387273694055265684053846825022613925511031833838705780729797011535368618755474324248139727026183142683449754405868678272866295582509225985634829333408221271884891776520222122402540345992178294275919559431102434315198269715486975347501272061673693654450593985825544620120030463322050232784832438318545913909053060292881441036116128086148787880956956514347121964688968471183023903637155939898512506738068130012246683909477689897864829102128098430095477242532961368317144513752073014439227001800216860324837812194045933625868084662624702126615709798575632329867481265037635979217761262349185851309646111631092516871329747139614431919584878129742483985346910546537566892962045848516361707791477658633385050732902617343725786527589289054758272130328176220583539156271607057378990812715225607803298565011902230363559957961834735808342921676267985902202074245027661322012655933491301646653239053312289817286633487598412726836010341053747519045245794944462894903195223105864080800856168727086797152659880111220095246036644593192114300247473235296135624893330442125765737092953236189174319083503953475948882645839548253190583143823320347678476012943931529813746046758119657739339740714308472985731057382469940702241753525883172116155884558003802905517073399258201613006074441197232835448940938008506848132507465126765916612496620951041752891310343111314497847331168411846047459754603139505042150920101260310935302993251774245376938729341184295720625284785918333033853017413304352171267384808874312803623120008100075048857004370575118893646628546514368794108207003220065944524026339270323698982024379915832949703027747369771899302941331553419336109371369419310150799318871360294789293962936503461380073458042269364975078728967156450965633174514906905607263484626130551569412240473031937868690471332370573544503608296137751829639895446366922687520917017466800966703924759787001880495734432591539750208749043921592196361110630279980748496999633038230131087997759290751332161131370500076845600389497798608394607228160681847770947693897094080992939406064166125130171130820369166806462930874404390859203963321579022128017031297769299201447099827505639856021382608855665478042143472689937984301680396710675395563361292268279929947309730689086147654449585223184239853178515633644608648589929320825490794458209511797230515694831094473447579524138296327019472005317872979040530109571681067265630308516651402853990643209656499497946728682478281298027918918603960149578195595250777787695495507717475047594242995773814733974179045748243118562836625000893093894112706209653631144293422230001485688230650487314188760082140066852184683778319850276662256446604083533119260456429029877854574895949448703074473202562083107384614635284181536668457722052905451790531709463456838820570185138944550337138447958665824407809494064319339396686015806571210091686441053758234444520508839408138087403110899762841007978742973613643723944146453119595152471986745763490094112786468186394517262049189888639349243529362785657141347491465858331022170111889366067943147274541082486189912078001152304298674551763212873144654009613883465077386497154894319957837309254951108977051929387673357225254797686004698062913971046735091645162645787814880626019961027002057904863119596573431603334093310601118111748373176368067414315436111919541894242881181171722826372383132239182154932417345614185900282354914630137538323618377533593056879673481851568333135233891065768372004879159529582625154511475827366644753696020583641219029539347936607430634548514464477623662425475504990699681701523200464997938541645746221993978774719193342235870559821128910481962178412986155615209623023499813547057417690326822532723511941997167304387237268156959711692441109089122520442585980047344666740265332619587915499648500105429712979229167011478523199688086310887710359711750681773956621625583765577987065705907211757291243706954727678736332819126603541216071556469038184052475582014988677123893495665308623742849972883901246073900785392494529243490763212038238590083719372074902591845342469862640025296100541078160251812843067477594953131345699348140149412802697455196025011653768383296654068702046828003482150237014331338657159437642181726310300964546333950984482066688390474260084059723984461946609309556156496200976965112664574080215113213473532737335673684466936154102151100340890887515128368092749722156344422591090801639980485349556468296243887736949430063102803273701753335046304613113779361041697838937229936894271777326848153469881014990469431133495614468041133033320122918523707866657809902977099935397298433787623702221883685235211810487528549091389650038501789370085914752624807908540458537577762018986313211018288117830828024170708539417823376591713157281119482638683679595215732496878845038400666612044404229323054233757568968798616897904139428966456696454159954846151947891601595338691917836551739133067714411568748010734339157798851735588850215099033794229447225159880018802195566380815556515193888698130144830201496730278584592335789019658865163208971443741070996096018686900837312100452253021145736882603138346654096067439778077049898845697196559212501200925774038020064183971421874782939222559481592848351260509915680180150216900733706773471891232861403932679226212995405903905560373250349235734323013301439793045981792594341213753174533199265708501026857296222445802710404145431735050487981197061360866875194346272519440457229929330251439199113621848117492405445291375226985907381927885076120011072737200348321798234943216481960085354531912238735815160401114769787273937667136256258771623595616487449416346519309175235671383860686789618963480687289627948287645658545176104527177157926977634159920171360354927389784972588280898084210719855488218663213057056215998541346306568637516726378726684429602160256501121994749442139032953755852603231281120856526242079236666373609168151788273912255576517057633119126608330190529128363780436269723195247428084580927651184095983235396874672290879144155507631029621423305301754645635907987103609225605703697430735960290796816535408289931896683372947335868222138901196794129348115195239424924563272945632551283970318244987884543906533752597437654013083759528291448501192690207637425714681015515903170944310058603381577305889661126445909921456765205882076072285864577130368036740424538125450707959113883636531306659638225754886991330638893794146456935851600684456720393216998554036237769946889173158722632561729165164047734680987099046054391274380671128143870590918869211159477884497163507183544409998588926899888549171618640818432682991828308243753845765586464715043850143931110711591224670380514547594094193135357607805408624290336511004000097702545628746872948611204283496287505468589860453208626161910311375755297135417052563852712692723218215160833955679112867853762760091161248910094615468715639163530920955016135887774079546288868692974909185406058421329846450536363061543186443939293992262561603260458985748833545111975771779110442407756775289884471686758325156292682633484469827366602208764947578523872921894611602939468387645457249212689210605370777209713792814937838410176054376321090443890280239518119562978409293549493444552084879629786281225438084018222982768702584637588760526061422801816792923478738402284225533097946563730911930714892478154026096035927344039525178030693065187570352275639517396275300877014024844736355160220596711570497851415328924841196212011927075797026576655891471074519891500347810779408763127990844384528295552801990747994979451303731585626237833157938334637455608584457380431237657034570313059642161499148727468459441241524010883889176627118150744440413773110922551198683788679804630992927248731818153796043976628378739102326801245391298142371238822372749827168538384013670314061344340997007899369791657762851002147115730476156578950639069988552922214496979836657499557849454304178718623179466225873359528486606717490988384546204043976763344016384209624836445112704701042259711416037251476912362076940352205212070371503981070963200038457629134544005022835663031607875167126672574024279245076082341576147828856907274683342732142853080549879887769399660192747681452216318570697246131949298267738831879771735630670404305585690892080561455441068081631949259607114254378402717149467868905768958742549552990856844838487271737867667132312092169592892921275259274465651507982184074351817279837515475641851904761361191229663916940325581551479157166215689403562285340314974500000250475239801513456105534590604183132590868107987193024096868872527601303189698341867745187894026008997437427090753954043918418690556157468617556620694403786858446802116551482319343202580447666745814074829989762177945016388077775427852256783961494792237155207112145887659600989437782208260620077798219348724195311673634016570847508917943128529839754030349460868393097364550427123305141492921258811344484053348184852338914674625337244880957196529355537211572912947105005114327285992348867098258518918956612882860584998067084190971628896037687360723888175028849114476595549831882850272173497721026437897553099082279743166965763991885780347477135470506752135004856285960389482406075282648402372012216268165575593711754270557061701609674242863323733927858334507785435334404963591705627271912154887211393451900581583680532380241529836786428612367399915894348555560734520317585461468184759101559692611862997038641191714161217993169275437684093133151647751747402434560867198890243087217107901524685446691785111452995644067689476497667268259843118297559600484370732945780385225786379105728814521153403842279382493953914137738017941392476599319304721871436997899179369036384966701722175558891567320588816910778778142446108598008206010082811438430567177287555853390700710633443361030572508248189540556591045886964461305816206319199055135727900469688992180352291156208470132883971401761576210254565989006986006873196680181888645521502604518054543738680734484793085015553041873960766868120767956149594864623997464398157768696586056501697129436063641343466744476089018341122384176161946445238686588117775203387994998656379312606726572377563296459747361606389903740621114788455030375105099263749894847280767029095956352230910692069936684169796117799610238555774153388059834444907901486739362048564066901993958577656751672101012608225229189571665168309641694655851495448600487314037083211137564713341087019460616137861746663020772199794876412692840841373693155577586886791570696417918860639521913716918682844077282644813739751495622491356897561115698970519665296870278228390036057425452436702649805128243472493725877657206063892269596515092609468340807617168021199208965931617246935139356993523495415668186266904022406519868561828741113088785449623802224455099437210223290306353178147915125652859121113784330607883168188852020335029986697673778259047716624424945711716383195938656166525416946737177766982852094491401828743437109894762188812910448419181076123431481110777920227439888444876939327687390491454886356515667526772008160279266012762307524125861616719203213442457766935095221597539612997925830491884370370407123121805147582467178931779919854561053067215404562179176359761591162845772732801508818271662901677066543593072485713664871635121888013142859261808671770053762137864920167031630470849653253574539372337522262837278106617646372804346305627957349266976067797202354444227697132593923713974271171892238462671734362184686637693839816628597290127370268092628864281382597789872172839799841404562494254680674174926771105985430167527806331985141217126692316018462097953764663372899107489027596635162279146767179662728663062525534738559886107353203376942470292024736050321024923058933342090848288267571836168195770879398441894862544748711178011199025143637466307253581375192069080585557999481319505646466735816552573480834612372195984726422094186677691174850459159522535643509267121368549600811018959791233629479902394754614782557887681992638273809944942098229398859279690883537745905080323617162432140118661152535328454971788932976822039015416795036653211282590822312873072457529601656641857018222524649871308083848792479169479245447147431576512668879257573863768373891734236854338329088757813842959248765445888461477096424324070897975348847532003738679928732707253334712512060690883829072779769149046896771730596285980822445225360852164963312264294001965469308704327205681996677675940965596653601494167941219210344577557238293276272640678475109700834166379217961346252970749783159728951681682396099755243702802603264581005597274826843954945138876655933438240536460354840057935220808120720759913337529808770245526591298039385407798590559130288969433455133130960216350190696075480696346176944716287027589790128633564006119761664564244795527039624843980313930236667901535784942720617173080540797426184364851926578626131717649243112113688600207854642418922754834645830882237630576318719446616546979757374900865623454872371705544241340906863947818988168838602108009992253274705051036713676088106894916920845348984103363265742130043742942247459865166337709549737164415447365306816652618169940482877645156606908018627006635700501890950889104834824276582311359720171967227535052473433922427159400277988623308665511142718769726173037130846754371344647487166923298048529936808234496937335225587664611962958586164647213195950693041874332265830464041171611815457645999522363650780048588162688524262924003824216228491827426085399792401159122360094193098070112687305538056087333234593821881372177577986729604394708959237621381947600207119035518416490852139209687459157919450974202548340705128907308582211768175981741889195402941938199754553274821869296897797232249981802628448030643694049493015457935449280349354281682644140106536018488347472183636736804716086967869820273035955894118890732482485937962836983641455806254623997693968087046795496761723405011848310054976486916854943660338926331036517900839822103237286804005153708398168136381228598178637495709139802796808687030860065485095134769026286635315016802499180763334261330331882019879990745079700858959601656094784438036838607858606390093208380339849603039553867331332506403244066568642236705312913525540853822938050352112385290358876535381313907021218427315772574754357681849539162081513308552981999102221439656668643221745927983689429712559602052207332599289496050047535204526764377746332328697035225620445118781924849592510072279523930989579568833166805253092705157689689177977061682183492367987812947324674113226168972898777612459504534138630212991377177187771474635622279611304637993617741922438790634425372715715244322277146037471796754318301227020837733154597482727478564265475267346953981548635477252952212508802776166578138150441556970963483725815828137497598781237109349193661092182244403516286684933661217254129034646702209576426464345315370248537018826730872341558948612586316401381397110940309717327329720367005409747300016978007757704491659532872792021863254600888765382198761573799038982716120354094669994151010633997519414498795288062854955650653751103765415935230964320752281579157424738023228116959560989101338431779364148475641781359106801849763810074481235359388889787723618959516951204730442258308252703490008335490104583494017141338632479489318650387964088816219959094946899492535709884941024900877485244488697398446301049634940493620618694377153997435107104937248528400083696554769439641277157992440406670620483921238150354904200610891201471727695934093298613839740355287117435159169329041952041479787967097478839685550452488002714324491157476402919691760694936432918440954789045599415214716782269584113517301618269415402770953671386339917622006745574556900460406648388514151693517264228503360714195165761822446168353022445613234402085749977191146353800677328423289659784189300348153231116178171560749700195970498782181029067966234101908497693372354373553572627849578254600653640364189286933135756635078036932475978884862908034851716639754660052915007283007860910704103771000553947225101140921517162975567986492865737628843606944587181036678761987386047344363853612515166853868352939138135278611011166572833905548514103399661336543571721023776266442549128540814801404043945444501375336076974730840622392894285660954650584404315692396509688641838616376947229948110107032195126956177676495432302728185075314377087805042268563397700598836956520676030407972116054327859460171773094757183039779399062061892976162045860356953576868318515943787697850481065457377258122972345876303134692715826506615983584115775420265769311271942231454170206801302609636591174768877571591334681566422083234987059139451859393152291813474759953923660256961487303384563920088805365377637205119530732506685457316371823564499868697887832299749621878594654455237698834355732252058202549668965340327032625509412292862957198994637555433724681120311517012682613774324349467726423938975226740022824999157202437301661941810589571792276449134762602691840369787459391242888442262456415881883103643786815690421012556603564781955959517906917098007375815345601191692415577358395903246422752611529895150168398709661095408106413701779720583651398490217022785821241326966144661966148910608467961075180377617655749033049016522817968659581052446694061234708831395459139647507780045900973421555015991082036013520322017596669643347836258119408268797756277037436801000551130621123293679544760031196563794113343683533546186626370457860341523312290344162606567923211447543571606015886653086591669672043200659441483467879269542188126966400103674980287518369087617718905125170975755534662931723898591830751631865726604070124845058939320189485719694515574199583411225102900483136150935146393089700702358942921376346563726128453790955353915273841093749104987365164663665807607062389971620153225381450255667279449842764699974583536253476905020617167335481957500388346116903523284492884440227214837277645985982211042795999826554983420387544596936996258152831907591833312963163543941300018456760862492019856124593725973622531009859901591319684673071637668452413646767879798706556986998689810413259393048942670947739927072053886365646047429135359007319506617714555922452070629480013778318538284269825020491765094713805455732709133920128493599831470715193548314711544965191077023839367953046389038878517647148491239488631230316609674723716698991034465663107007295121528251867389572319331305036298293780588733163205635005091734656017795408498401500488442169924901964553909277695908459940451185564841024868718652884787025229420053355081672627212120923757480179089781112542428109268405487029415997119667807029737631212317163471593508470837307992863126340951244059341132729230730265061938726154648573015480066699135435123423308118881959654834109074816002056476840687906265499662081132114039143759199576023038197992854070023646568121235382734491414314191556616670071367631822067618399641500966165616837320058426684671531903398677090778474342735299367454448793881107166082293794159178545322313089617782797979201286389033920045602483663435022725229604255876357937117077868242399661629625506180161413750038730204048382641481695293418394130991569827226461108372143668327970012144090993168643001307831462125178124746164171396497852251398392658313887506786942403514207259840991043685729113247440797690946846911982426906126745880445059331154994631677445569759183734696288060058706515292726440022919603010399223062625663137429289834929434913588911981571696553385817131811806178200569914735780686076566003135765895594973323945774575680670228752452384607532328172457914428232710169843561366281561627842256964898126615519140778946868568123903095927581241534725110413607962017420133897057197779760299862861621136989851355888990340727235099687045637284693329786929157449088709110391696270332843416025625546348980257170438914728793691013695862868135974891669571408794059953468559024116694879410184499199094562075975190088872666505058584826223984299642953130966357658036969951085400196375801756820441617549117370615806312523612792425698289589181107950438415426884728030717284308686479257255750208260857909640483334932006726323889008188334269900486449176473103177964333749648674218145223590951544550765469430268348538529669565098398944425702532598634193751795665728205070710487674705721847649484045865447382552635164338521898382142874823438739668248362783391060622308466930466478126393768362936474492636927068392313451908338667389775080754814311110346894232263901940880038419959964133885428758156191766493103476786336219437709492647793600298507462018918392351450049599746708049752826757976600123204115861150236035991231308279247681435226384167611947224854607181101210120004404358366736500635269569404477369817228492827126566965262087228689376735424994180276490758080701230974574256258915861990524978688814463267927021180405044374893448613813087718639515151810382445731980881294977455641251023529305521639418253059098098816625433739125747985367816133626784558377519428866832283002406139662405383685200758752887413726575573512789724300999159232350129957379474353309800871301233668937404891927052517526527927584207005499606788851256382067291818800189340683154421329547307199007003941076510615382916759341540533681603423189168559543451723424481094631937879297088268328304062397308961997142185538485560825827850593861039383739570509046225152033939937363435947325516867480946790144017050400097185176883397126390331808290625007035407116490575108734762130264366621792155470504427077675563865535276344898943547264327704001028015661538732525410707027807105162020310368614671728867276742972185885426997766588671028093735139049803276573877660127792000122839639666498578856281766996349097240032896800120587776856837576297369958697189754371659583709175963143003772142028021601075161846595056263197093118053362441805881145332267879041525047126960304854514321665227687265619606010441442419775211381832008684340377596580710547096336566762941832973549255422521075253191979632118576288228757148831755908243125978962943268913037976150537278419947886761312147264224424626302596732574751428354858546068685620294318079028004167111454296256915852069187092050239738144911863766860330530932758935361160386556346044723556041613637790739375527729203242068605381194089854121246038821939200301626356495993133755963782375809189010668073087173114497757413231118698098470219254572030909831058983167474094743572893384191079679049129307267446463206720173697596312762675769142638695600466258667857187273382280953506484266322997177447913420513910257714928591014677257074278995134568527572964677781237175953606214002482164387150393249215286068112577833755417515913504279995853040462087888207652437398419302935962536351394821403650975262084719191175151015973561889129217414711853183413610362632997262407317404128880998974785407872439560338067660163995137770225921480511056582747800627363761604826223916257869052414095378332228618930043890041366130098822398840172061731250772954777777809004112718232289005347817699229820886817661206020699952438761206907415184242150093347592824102629623254559744792806422217461223041715097262838121004539855236856222983341007077275906761360227466047772201064187720630169771727050980594832037757740605364730242012683207460811092369642482406558810494841620156036052862909931276824238912157103842820000750524496427286930237934849570161008938927104847342919556598381054147449052363779479068846025568126248312172964437155804518262531799265235666904802395533212798838801749615321492180096174472477182929971555147292244572931037265313637964026084321912899133149287579324308694697338885310899778013091304878148193358117390114754735521445171105258210048284685254859674068898576985510149251066505766344520371038500495845505860476160570649937544522347073849584599249002264159900563554997589554576510338163255327472336520204246966224344900486755763039853422034633066133529459790672006313075948694497251422238635712707272445988707771311618088983119203735033073223071574940951966404856900072040934215871396305382398045566994495466345725898823744478688147730616908134341605737786622187934907040950876382387608097200103279023822731970889117111880661702531379611190262409502871897136582999959351826165460387932738707195040205107348070302748732205551039631754543612780869645163670067573508781815160918356443295797481564676895751913558109666463719806854559267491149692231251019949905998615671068453151802586882999438074739665975184718407622038314805096186159361656393406210842820602033976656235696252926889206607193692536350536850017677151623954767793309145647165421627785226700806852922078647487685880659974363800582652678152393465997984984936598227617988835178186581224432887928874594457287419941360947366179717729208812055434948424696502813539561653678567570411063017239194652035713484879181914175867026292460016770001154838386522840894312207307523033819627303420583410203593060962316920655057112287673083051798609834729568075172583726797316456929486403029005775303104957429951397007810129482105654348171380656045656499767142179842783700911404548992531810745865407655396747955915388024345902762897645784307901615696514734057336172154773736968083591100721366060336164308416394038954591770011402890326545415452891885930521409136284753995918646334738729336041191588297359043804304626018741609901269039858163346233058363512319164843952984663605562796433943712013387378918205246413311840895059982827271601565257334214256436234515894149853951362632167150362280351020802163914975128381552862830800964575741985143987438344182213874229068325013374368677691865693948769926596851239129444183876607957233461854886115229397595901851157247856302244289052902017941410655801972713598899385265292957791933537603656669208424588353151732051240582788421937873066413838159714642899795255162255188440546112430761147966998802534981335484310282073845249111492085245750082496039501167505821595532568308753964214383343784029499371452228194217368373783431290623864221965312066552513727892785518904200942573423823331000431387504751387951222763753198475035338968717652347900231602466913784829786512909796708341255198741181450393444319765073148541013062463513583453535091290545611312131142191392072358527036461386304221519770888265018839323874437327918760023475218280759389843395410263362531102227690282207635054037826888837757534004019935407309647831670851969487832881326826207545135958063217919436248993507971833817055043933537045916518506662867558815947728093633549875728041312982272933518027292180242875917387042755550193342418965136318487082957431807190982349596251496617322594327872588797802186672780222354376834085329089104367619874672909784103820290948170312626243425852903018689098841887634357587556252556282742934260667367363502647061465407512055431571328422430555068966047177317737650448759076511714655418975723737737720991386588014513888618144833670169824234269569834351181804800626482448824542600285598836347645530707653117498617117685146719854101092991506350759429162847154412972505657113317213894482821799314947232341569043809911287846677211941056571742779589897760351644641811254465278376456738625331452449170514481315895058867305042092831878175546670639521173074157384395510637872290711122061544815247453903607148286293790437637461667089714355991312839488622679544525454740437765699070270309510320545434187552627910136220392697972109956540216714058381456593616422796136632300369487853807603434417245584723391988434249984447872948393767480995096514587934732557795370572698458741460949750778228605405980594232583385823305804612987674540326297322688972879670002140994645630484484153696179236580538286944942925756521265285961544569659075913187109916300572719591151979599025721975170896903701227803563671074374277680978886432305794159466568310006499455001345753815221606914632946755026009925830786097315687250509126059986032075019416705184374027178327872828461786458934994394811019188522180281267482814774298106976608204432504321867508734295306948501811614046912471112987965247578689832157435390385514253687677365774272549562388611377169818148178571572153717145649778437621715608563698400039468502564121245717390636553055409743503757714326840332464566914781698214030044360375139787027402016540850152254215152533511213021605961731402119780708883860174816077139648450337079362425006579352307548436485291720480048793184079085055819463456421631178044813420143683581414686168164034703573374163063472281139165004548612192126663486243217896251955165466010870905377939604573228655874560148259921895119010110433023806727325434453838136496711185843101570441699043647782087438502261668719617654682833178135721141044666683952364449937616246070319595627325877857556658853569334109143283031596276842861494348812434825177557770759145162783984796913602763150281226306503308990691181526082223680010004852286715322963998298281826975619906795331819985253183183285531597452090190777099254033170252360745205948276821256024666064505541783085181213308065101907365787406117413333639454020094322504936350125740615143544506909960676340351011385593871438169762512159847992359800484943104800576167339613722289144728782711577798805276114118540354916824125593569359240669118643417526078285860604054299189781917109702112569572594059231430317260079546485406699702071872307158590834895250916582912886852021169953465292481873357765314261391088710109584638497151551650466543429968024776125265039348274254302132369979349079318856743610887040860977103845039774028314196418089584199723733661042594535404260457988267469911724715417176829141527023068008279075885985316571217267920118846045417094991663864012291974596718494273486806679058277460442923196145948211296129554751857781007520001761513269665078557651975673801401752135326987351173028599785220213040637661776554163550720215904803328882889443954788080614920415755610862670147592077276507091652422781299012446565636898593139882264707434428040079681167619711600211152865297867039978992644148565032839062920231457104243736227698821496338549698496920826768081181444529469682453588746233936592809819017864464307531438779222876028702480049922673495094852534738348569528593120014887047349154627689366818723636381827583099001707057445908682880462509077341702163747318897055209580445579895163988517476742825540933750346966778838385862547091928340017469510131133831325328237388097192779426765632094924945418462365110119313037610818442870715032428135968240689376071796283444648544070709019310063486270265875971542012754366990956077182468177837989842852496429117448835837697453280867884564573894573526532940850019035701714652074364455194019531033743123212895422007813678456056264061442113319436471719821191420625092584008546039212780115992529748310501304754752461885869187224585547316839644833432899592554558238251783611949307993213699431925213898278635353167062687564165598479770237943975054267541460841979699259163564858461161201054493629140950543965875217845666326528058872468133824567574805242936594476867207566012048230287508839754584517608317755045548491670588265566894494918688776864487759353893121908409941031745468406202897604264186347519326207042634628121815288397239170423301361882424300152142104367163664740288389362784719702606184057413152632215952672096832441634115308226687508542409569311691719500635449974092425446036682478653885556806358298321174188484179129484194454508532429651953137680764130852381887442800639397404608921826017957013649534914220932601692994793376421977429235484571338452288112341264627171112133016461859664486842783440736849166342603779148944325301852543885124144189202250647510095800220628173213515947796902097685409037085420022136210077188179324593485070512951412541683662436817080751252146730235513618583021563558993285213543037360683496081720538933550559515345587878354321577102315654385727686226141270763285575445306244940211671672836896142421386904549892311992382940721012836698600330792660033366946316959993546659809219478591609229335133479489463242079627157420467531903138780005056111596247479458373220264002730217542982524948668454274512899703080229224144779661138501381072138611803601015537460068126094458078316341732153756953940633501768501973585026413997444317383814358993239809688620343868954391857971758716429263417718900947409794327305729423279770282641375137356137365489535181475423341392023963810194286123341782705062912831075193615012825925913304491404196316565653740874826006041895527471417047877276702128037794492581122482355087679218155155789115661800466972636690014875661884310265968485415654122070458165549734353106562327985429916563171201998527103882949702192470481839969159037052454546245945383478223878613357924396213434319469218438375437257873132436635119725234175060729219708006723023280393394191809300459000630124324136271920219135760097161098326802313592366081703981860345630435445112295125602051134192492616188173755367495935341064110037459749180746797769655995754692303892546114338807796621081420385204838915705576407603639066693917501846192131981108647272676865133540287906359198896763520726593348049998035997887609869251160036569410389836173763359368988311635111653687649427556941977968036497359633237463216810198449291168819942589341810546841101295476952427581648746711680740312086444034253099277687745341120083072561999925508661824311646315597979306069797903108069449445448268138402219701810886457214772899968227623436871357705326616826030440367830607007623295519040519558248000255223943285011030887110584718217554230289756840295032294349850087093389435207893237358626709693926509220235747174276938676340958515510128449435619819334011583302656121573690517387684437766237000700404360992168737209643886099466730845906521023791486083427846152907734615594261894282000948076926452201308152681652788558260797619625690495562449489185252083474753283221034662502447479305356885097990939125948275180795175430236787167569509010866333476879295481413297563313995966132191551074127264546229934764349219151677388592711094122402542260911391751261287031356839664197342825422451476875947001224511115484410658280309916135969220859526029355155103101434574171853175900268425864774486875981909574287172820532885832060579022760474726488441220812469352156396298413491913143690455611599883952108768828264341253177015701411018363042353201619161285413684307878848615146680335387949311761158659391447056290401203828282685936333154503919257931415356278826061249546470802938678749598510421136331265753637241117338121513642227736711895135145168310726423299667474116381608797389369737725929171930008723216426178692013967333750068348731836552028507497719013346439417591428084156020885535968918822821338113161194841641218678277800572097978422214230074137104673944654997395018110896903105218802629958073566695186719484999815506005241379705215330599329841132832313237926883211596486715423572043354368192327081994305830972186837425027291681026283091343087333739698549290423068364820088511969120067682142966786587985595957680480669787547977973494249852514848618995484131447025485199913756707018315305505195766653181622260715411255139594007199378009609649547973704097327288721379506863499213114392626985831838938925983150903417687052506361793300685698611032576927841232942004729071318825212691227769695345278606061295094788693883020743267105674458622986191190535232135004497039839296533171557766525756369755403063971627454445343271465538756221811739818358374883896913896933180808813574006971457945422143352013959117755255905877858563638882683226351556076880484513901853920755485000534292397099328768602226123305021170486425485539502952101665465410005156105342162570007376593370758771459422283645268819175682178530284516585191655842484050421139701776185079976176416750714615133821844278748627726900891710436767840727386979989329959814542483991307035376423829622145637244066487423485421130321812521214277929084993030626742227519993389164049354801008741586050881074766766737741274755470604025302230109326047896734588533979867568443969249851986037626408375886605394741344416325385123616322707819958621127985389050135484606595248275282372026551381167474604483196515311743018383130582320712696288114115716842663043977636523349163288237131196247662563811984746916391063170286945677691464205758851206559220719437080664494623437384114395160014096631457475907590520587120589531043699865421027111024847011535578522740329061845616080767434127123753506177716162445514156616654653134082537418145903491567267986433513684795756400670120571793313940548197263654641142240309591672145525940376808248097629840113072775577239575418725064408532943325127946092045489728830411343240096713695866824930771144964152982444611388756364226403920222587410235822273919346444556837228589454798832373213006124661375055452752938885137335336314967346215247525288036097238113817296717690263577171017498430110833214142693462344593688700797604588277339366909733514910302618179921151192854090327064552412437161063676229082867103236522247496195575771734212706693353055191802088081181630732844311696269302842999789252138182798412204895084208157553110619580659912836072782135784258533603401332252615516642561678683320761321155248158455294252110197218028166658341258088268007894040691379506420155186116069601344702395137511919914804152873421512728935967780776644542751582252748805325573466615320893984634384996523729540846370835313559108963971597027082770174411669301196807305551133976004424628191196322572576798084268970457088687447934172842536580654576269206967288435369030860558910470564196534578369882103951419979990557810533719763719040338867709978689480764915356321001180139680747927040755386216522521414504072474896552772876449998517409609438863462133639782381872257884455110994600857699256672137927232629432728030534905651830093927570871688136818577893191802716892404412486509933151270484440323859133443635751049979481807304650531410542292552226990072903454941902652446651763827657701445777687468495429610549628751489413061906512308514752061115342992587417688822349540238440547494077071648866953972109105116856615503586847014874070778254830348675195307898507544094650722914589318193488691627901891917042034576862899979498698355105157718833695332122602542350083553737991701774945992004260490192902384212052517748302550225937027126533345609362922218104521628587572445606413897668943826819081905574572653298489789387217144579264122634354806836975668581489732248588943032248438481961976188232885626803463435446014834279560872575921038911083638973822348123743982817679044044495328791062996696152568522314946254972025107853976562645685917615394413498892150450852457569805171591481426135451477912644827008621833319491631169734858825899399758831995315092676474724190790199936104787614225913170683321727888976179798309158151068798164077702753654476711806205203317959959734481827120323461807003455577160256550705014088187334946125238072504238523153590044869131252471038146750857443498738118729014295336963289944769609864711017731450385429638342673919728286701087978430455261801814538006028075676686113042787878379372339553602299327122031762728674999724951144734157055659680738961972819801626211459268800217366479854028902821266032071047371272751566437220041426513653168198581825676189131455228568760140076364578206215652542637490625441955660352880647722662970264616866039047738964439614621269824826333205459341618415755565514432472150333856574600587143595173828148951364347654319811623370626611895204185780477496272168285865044932485230748340741541763894998348313975597155914122159882119062059761008917280109576646534902672159649018065960696102880231042775932865326234464190427490498879682983331735803279010320653521431519208940838977042634547177541192848029074358069490969751133686462572284839302644598610660317603896840973279873961360331545202852086934209164521268531611424406928248823836364919450057328353796128273055450579897232860444205721069685590275385256001596799642193917772078591953541654470719537473942285160252312332406428520789054450750358795631256280789954075670526927281636797524620026545016600468697581166023776188001826693258622719644618058707154572146538981863659251669922602846470247578520306238685767382392151887530967635713768282366944108300217775474074836449738016452910037728528531528078088263871414566802524243217570692137383026444230738317609505082304003499969855726676034655431488894902617363885683914769234330102128815318624914130940392505994427834090979353222499498648808168066516480162267575972230858328257635556293636948338695731388858726760186290218192005441726091501011080045917484993831061086979574504493084971799132886569848293923117940600861026352820979191927134576133407401763481254307293393039732552451460004717217532028070352739829678223415630940852426251899198433347094403489985921315643467925452014708860299793422682761808686695571259984716941405687913041929595338911306371243250399243083045428294999295307483762210351804471387726915252609816628844436760693491177424848111684561606723272571458649920344010080299196226114742240252374270904502037818100711464388422841318758094563064303269525440539414447803402302733852172843718519119500824918121549931141400050277653707087386143843862437918279987849301152643490777631084232316692307647370483774267377701732874914709187823576060986922662570277455376332377407877748312114918997716910988851939433602707709766530064445505113990426163159331695156475782960571740770926805832806660821635117636255963731802519690617589472848346094923276293896140789479576680535356375831993942908518391650703454311704870914943665443481578186302872275427555658703675816084047651091760645400756446880084796196611252955965886153213585650489608742748360364206904531530363755966883227169465633557879775264469045269207255721867217218718462113968413186593985873582109852753253709756067318910825856181650800504975885136452026128208021985140304628711868775902293946179455575942898122591096216525962843733771577517061333412333352679222487048743130009137741134949153392399651251931837205696382491026155886974001645052330738275640332119928881738541352506361220927346131622318625726088401646430021765568372070920245936291583491591058453432242579578752800113537702125513295869560529864218580552413715860641114307960653418349502247972805238693197465833072207938532779402713038596602318133931160001904764535919311029683376388498686031456773544367578706754169795199866725458656863995102272783598909580907642196101093478076922217552560942024161729318889681762225649627767824578687839787232282947723357031203922861841084994716782076178252096887536113225180501786579834215633889156715834497585018042569162275378310035223210032944589330941440669644378194880975273780118094134717355605746832320079746446939378270343093199918970519803448700883183020089704739658086151740948050252127233588402749789896403421902263276904019870772874520926555560724359402124462921884502121204916071058671807117598269905938478256948997058271600138469844337309675461355657304146021769389090677539772240764377402874896638060745178546259229619671189672206101539441121193860680165929085707473949216287122226375450073809731925255438957837519833790937786365745176742612825134863112825293294721619000068919145989083464589396878713268442713201952079837437438687957087494716642016976155014847884901277062626627334542694008204280217463055823114132819017696207388386544521626673930002772891903583863589530655228906225682202996698588166201676032812551649572574757014742927590006596439181096948006506810877955324073334984408110946889958702335625183285271088325730169238672470576050289141296352162658943947198242719022124441507105623986506907104932849889244695277571868340046058125874112998954266896780697005314159865907698820913262535651897451857274018040524370165606506132392755687403290842916194479185710024308288803136917344899689245314009768566481103409920843304205584369158558095069125258095689762989556190227996509859293575405293593591769055096733301096935887769730514126898705766652581458700582439855120595495331134762307855667894348560184735619865593687670730219906355237145169651669829994623066290709837390353630978391176133476350023514336620560298398576097018606187419493658706109497708310001061233697718908114167842954601013208562834646359980403415989993135580991598544921126229475086406984830198591553168144418376263048238457835268634044311005621253884104024576968460694128818433373696519381169281931825477957920962451456333046356741460939925664214287566878118291277389808955445646133693115172458740776579377759465808913346501293592365285548987873660012686878602867738605129181615839647293329855563994739941885600882096585309991917178504891020387935135768773036071272393758482621291879795939912923662010796257292857922625648081472300650704738775466530650266314846124225501409131545571009173454036492480675074794710968072880231924071917171149338637220451759310260456348854931060156192764099757904371655456598094556120719656510662419218828125192420374580853228841829388225956363578705479545787098825096353684513731090138016811631407943811472013963075279309977273739814847608344757480405101406514594311523273357656322131399451195111447747369512342558134861458544465422240871834991180323729126083075036189115587648760970381992691015956879390841137082861872863692610037670512150818824098617052504514169514431653703863303315400503601862880680267172808249645877249670494641833777039129348712508289116764386917100312857212979512162322271938855250543978678368660117208044094770131804112046943749766437557593413236129163244392001428826968951784947639071370043605576542251996772403967713175111839323492107640984341612695122306219132189987884060761394157250657637040143890864027111342752638523532090537440099549153738040700276562613101304834975887094654354724240059121599321433116483676587528587218304865753784872172571451167454611721531568747631802253911008721721415062507954919017616269874948754048330936523818632272991298775116673831405018257164893525516624221017229852723344721861930176806301504108862679126872455557972926742161533198472389244284231347037407692800510314194986192102829197191261583493480103938120270874108339066626984580129862054701024541994920174666909260075322009145936578844615217730416928530878748040434686196026921761727456161946150269221219036472572141969022957711164857036178572865872785319282708441782037185659357967555621794307866718044807111887548900125697233693419988350038522556794496517840343312203004563878880236561947467802617119084966851868749460124636027270434822217980492256499429023471497564037846711093583669850998195889457491744633525907366368238124827679157522193436840445219212184236705250829279550172090539854040301858330044025401062890510756865382341177742132122630852685835325490951690667246295947660212780577731243473931207105936455891254767294289750107326302339927167771438432682680010644671536222207604487745666376232274487095068583328081354261341275368353650947193442614565369764962696194037929332435684869230127888784434841647134083113301445386445135292599198291925640716202935710179820709654070733797952293175184296606475392807800118458137385837434986535019522976829391162636946735840250274038427934909124573149893595810132185435622290308635889732988691846708854190525440081632368101111789011840316266397937938018226823821751150456865197682926111404825210560749550810151351994737922640908511429568135806045283107028337414656640061368432636632409548889482246892848628290517344875209670209831449141225671326043891122871756320179553527079111750660097861585279632414484709241882013531398757225608471167144501098837621800133182743627282349685582846305264813209721563951926891605375259897400194835334766865779675085838900108243697964968622411086502356398060907605927210942726280444996778639267802546646359458664359546410386248722673940496645642048948783874440062886759712819040867739112070768237673624474953616608704663799639934700176836278085192426405736095958474116931179773715817151051038237992908316611319306519524730454036038524012650507676221355767276624253444251256217064213135418823853452583984920099881339684427737424929078314522077436978819272469959419234949203886117160984335920825357662073743024391116390978849729418060532263738164439248089132069438209185728943890068464233883907157204093071466491433126591781342374328987791244067787983849574998676866341434734024659604929183267028497201978869559229588152421312398208105636848940440878785423028526449948854596285507712755653892036689088178027891044124305450663902137155597588251226619282194329891467714866655120488135058292246221573357605291868516199513674036290743045810440805211923213806697300187098410276440438149410182207225039289373032110171365597710807261606552856748613396400707774349219822493494325508393450153409596188291297585910624108119789584441844607946079977819668317505374140564050770329802424361407503679476104189403750017596031085740204163043702941736677323902744456167384741258497581644402816597876193609450075491868099088676799240136235543492327841756219610674586673382083057589059647104577310130109426219281677750091803183806152108301427381862922572011529654334528425719227757458021748599773121641169621576253556368225791374397591205308011554204893595784642978074088568632447130507119839254753464580547933438857131144318994509769061542923076331947762498936204906687584134695682899585640393014970903296543687055444103892590466004653424730718985157985810771497299131295583621179673443404472323016038305247503671718805246549704460992136055684026086495293391482282697518378457164750442211801059876066891112031782867105572888296072573310579148709504999871142242305450573674818538776834761905023427135646596293788428211113054838819964411102508749734472361505412703903985047644154484828050145577370876676578792400744621491809407966412541854753543986882364208787259726080094193831104864885274902979511813869036856407311477908974593813686848054325553511821470833567308389934403983498582651768754429679252687641522193502535404264828947286716518389504236556085547538408069566127550578416609312415554856829902448408906590140562966802086935638262903804860168771803394720494417838722983658009640517259193793815087785614447496599872782871380453460658507017420984994901384308494460467357229251094711210118998945806495313363129980259595312546052968723491953799745848240239496412360443853681113741555357482728232657254234520449648314809019817597759616679703382781960545217038785045986092850139239960713092588966176461298965478329689775901396788743176172717557443154600118155318034882203002934233686247831048935867001437025287257684978630087239088892195332481726334356803756065878081651019625191450383706491150452824343608013945426808200877495798419198251231930972867798994092115393363312209352632084266866076033280575918696319948778124070239909519550685675317078744264253537351289007820624544702404939007448124863921084102069180565193196010810630762989989271575164068772580279122936825848299101988931576954919144571958038537048665957692634054701351758180497831107163054701367167310077024118491507681109617984197177286197818249398621683397364687628413062247543397074884501676931073323925763954226721328858364899897072675565968895080856103162804789089848320272533390371875355856981742784376534093123741241091351914434364488962772970491366969074338345015390348778774303673829485403754037645019121446107008287877593650768326314122981866912516805272114179699125076081475698360468562078281853235307182973972970333365369341395739493433054940104243472399055248461728387585371842688855829362596071348866030454159764986103297108743098396241269350885294513497683063477315750890819939331977552727611471656249971278530189691524467692591974045253540019807871748415240582853532081792628613170868213655078097803760549982263311983845804065714285890603725256022688039369517478582567607239974710265762575068827385839308491930413725025595382769324550715998688903243856042497560415377414081022894906363417553152562773869973376998295167708550183837802180414256578097835066935793448444139344101836571927570335309838647085805128284250031138926042161682548692647144024493223695152561791784347953716635287314291109162735914197566869940840860314389956700695982113682462339814083856890519124964672178264345897065842020735872099813866199490785816501616013070657634735356066076945655290371274978067543894337084633252381393252595480514101762214583279170804353382658481029156855078275355199207386026904009140179536839735496118170245909894217893445154924752741320468525034553011749860342311103242702284828712255876426199348720311401914783783898238370977428369848740049710482353373918694346944770411203907749148167791086233086483796393618571951598028944050317031815365406285897616167120865182458428345415990865823208921313542168303981963477769789088952186567561004049968896614225846324416573566630630060381456967617842550243216083516471658818498475018465096531260953394742719428359670010310586640407645443252783228022155010065149317218750819797670303151322222337775100145165171108904565270439848719225640820314564609973692589281678511937901293439378691119645653939132641917486583743075188778428908083081847344925940077216916769769865015202357873049623955367385858487833577197741368349817489526919852151880828429940405599379122184908475185065670808394140981537073384646482936034735721374381918852738666688889412036734939874934669893522150995784380209209295340753662329517428369115870922035045105057836371968128005032286294574675847622249668515907191484089633450133640084019853205865003737595694716604466491206652801556457313947276649484543147348332967263915373425017626135222936474756203049512435041225875188060776590086252728738711538824365276907841455050048425771799952624582099326524673531012730979465407711754198641234259392537131980039795966091249782629022328137274752473707047710479110449124925283783800183705047522480915684383033167437894952170498677730674887766973484801256204915205026183264014479326957460171066451296268349431150541820037953325127427642041494142864589234531027506925466043877380109224937180403908453831021884039822667860634481144172540610647091513470735823251930045947339657051803584205643307839887817012464189580715081760454384914612238575532841167881402635951738178005828713323562205544418243330098883388597478987440871948009241516879425202067060174550643272600048099054652721049184597470185144056073908457990079687735756472123317022291692967342113424617933913488574092979826901440839417294627352458695987637664977615010728152256410984084069267525796052655998712741863514137574936681155010208906549304850332321100577570710383994026447697352876843502006335740399041524546410252949573717522465789960627410466415685234867511953201151980610822595473414250944463100045558548144267496193126180662355511158624922580996594133423703899359938607257071312689764553915532686237398771173529947620177870456269541236482313041831419742359205952955763811150844344576492316329532852308318743974559569940966494936248229077555067575903569222002234822512376972776509412841523495762792156722589895961962974291352107418169724450218440347834639245563485896705511160901842408404360786519136724639772732150428479464626531082836603362493883735052962659398815190746051670606667046837874249866757467388524975444562680100918535426048091593395796258772228346175854922491131609266124782206965910024116244152944133830301729722601624305402966351138427454225613174275653511753660983764163585458624907615629831720018280558939767377848086293482093569282877522248565075296544482008261836145434563876871892243645301598831769604362973545504227380674080974379788949191393203306778758617519916251600130598494844135123838840940878810016094878045807636085506824687776761379350923795060194598402062548185874428518259446981696110597677400480456008622498529415328167962261639309983520913651588385150391277189536168469186501765126791367446818687562964036796193098899128722435978165343335425853253124599613344412064001382973493318740165376024036782962587864618374611726547767818602628765352949475217199259578047496996095483872341671683447714450403254720423231703678085458076555445211592162540405686994896654110791434529755252019554574989333931918824364539216704947867371450803568758523812288428444323805660016795474436974599802845495962591373152946199511947423318457834907440552309750939855762266219690088736893050401373109437130021242510378957413490998053362748874967460919848033620149440386818295936108281258520218382512138605202267153201310886575297003549469852861347562444847784169673457224580499149274518478946888497951906891853320835296194597729360751307000576929352106246823141401232805158553676476138672374723760702602647056063930068942336010049408613335731513308042545222805723918406799904097100529899118553646062777442025965132059258486746256627225806581295772185104051545610981903194353722608235816671651417515898966274872863412380584363737345438835113263361308327432409151600988042634648342042280253178790409486028368605571333693851011125113454580484732593643641674830496423008211868417784292707091036432104058719123854011541366945531171435556961401743511666567002626252955572534061191154649039399505808759921031968350332556459464999781895050648411842891786660016277491552843330706326193846166889288207971634318022446551242417859028074200248633047088540757839983134247370488304319504677316674758915666436571628008602996489363403491031849431422326013857601137434195308777633882856932925691800894022554771421104111358764246760698910293604330522980105322029618385432273078636153698192966875554222775237255582529863366486580871153991400753482387863015244455679814133554920132325279835662601092239294147551165953889158757779598608869230868099277872028436747544416003030389372469309519293637515168492837423171092667150072407486024146199314507257357288364986819953383663732625165534794875389159812091441300345542551088102254257701359723934706733549324514123526253210752865055123188353421386137155312274531174726220850645159261766126687530002040830422752353982079994251404017913153910007452508089538941120535917246312806678292684788424629546451229406370114844489032172703463927866192201626779600649551937064141364609029743375946022128247414009970395040139622243880020474265434045782366957705938005962979758538297053319910682239785924779961020336111439572679915200639426429729864543925960700493126495361623190204508465837781986544753242592761749037234807752406355512188236622842220832454165641945697168902050010276039601946789271309742372666875562853220268309763936585981710403615390285378104224928980650261376506634434491672278528498438392069792110470354992632538469354802519506711901412052770986584061160220249074688729249972163203194512686667139292025853684601231289825408863294691757989569344242404686610467387316810793550763348489412504332787885469812873827865912584183753005257017101973743159448338234122738491114015222952007001506625677629596119522393063045385683144733201690016781695196817288219272326998981983916261249479731049199092966898185245533877053465061877891610350650847303660445215670071640547476455746758362474945454752190549670925988624448971346864380358615303736422985399129258654400938151154928020061482710377892432957460294025157763716543817761140010038088353610706308572917571200621675410198103618812104271489356177128895965656925993867017690241095371974918364547718904577358394673948229219242638410934137781898598785763337864617632335949296776811702768779977708215347029030315321582178586522071416121848248648533387119054321743321176958449933822440184861102583422801967826165523513088082128571676203251456452796389270908053127427028747493896622909439599093925430979507239875471354813165427229426204577282874337978585285074447978925096402411652565231367974189143214974560450075834596865000354602670690737369929133402810185801968999302785018524163429055723075015355509412214205125587072131911672646908395714865771650151624481182149496672059641152766618211314890579516107451661079506400058135894659251562673146908372144680626638795324126623506885857105530800036754732372698993575834973294178634579708527010466543020373809067841921579135635229156014545673912325587839714935045392926495807058295858548391811999756969901042139696725942994543067591272912786867256344010031982422697438732088250438800770729825089228668362476849507709944966775299548773809098072935119323097084366625603509696268448857557824828462219519423519775089695263087982887055848771958068953282275931152914993776079683561284260352113792096135407731327283608938039732596385849345789621087141063350304789565485013000932955135376602008242669460220040319015192560182982751759453712155108534232129331292820499939104796515292948133587495404629005537633260277018232226389646997753790061515062831936352811644834119471192067868417379801352319821594449327662042159354830603136163109522595322611949301628919672950328950972679809388429607613054945373701494639206709764306304497376064212791453535932395745210444764326762263604348351215169114081089304983637703805531706097864527827858888443529210528468198258503070719595881003713987064988437095138695102039486657439387934126558041474337454639448423158162376735124284211411607151699987929316513111846376213444851935179890797727739210098444552858577275958610618746930954968064363952054442082346668645109052591930909192681450187386351176207927301961804590792403350731212166845054003122024238640862489653028764038218505667632983526755176240236005386262982681611337795762730541830555874730636773815192423666704420170374332006766961687527535124644231964557683476560581117141139106656222101568948332746823711931913641644331681172013721895222351895713602112717989809111634573286749655364773407790727858465171527073478542901863309599869049855025616662020087812618264387297657706835940113645264833837562725212445991186814784652910100312222540680971550440984513332918672645668772686888536553402959344402871122408797976480063488167382549106515011198671198204849939791540830694910770275981662725964078257747769414219766143506920024865886892556061811854226167695548003767178364596038093093942991413660570715055906942505098489328710111020635600921431214807985136643862882354141600890892810742000504445741213075648352671151157583458980496140659316023222591126627568828433022526577006499538113209594827578422623779192143474098060867747852532514346529503693779127145238104772884948808979367255641960199038693092925413093406788462227183584952574807866882308522766104414850169233507930807335411204283037842176376331168806038078590318055740152380678474336472983096555790745606687157807849229542004590521668723729197481590672079154163319334730688595680761224843171449842168308607170323833911811041698990927868512797356304591261274486130081115297118372235170788167079087070219246846424140045869420115100113740250691466778840987675963984001076040809902532928951052746372065898595509858719143686542506446504727869368617400269180682215708665669968976370417862504111712079322965048447404604140670207127472479384538437492035229438276774150840503284384571850856240423107644814956394563038666400247493313811993665958750202133616221043764065839314994852715983575688247788746668019239853592905325952839877529884247283302166080369876654229584036689271962207425857303137495822031313603771104452390517745673187004124873798388537478656396366051890649117261548136818183678296520573485642629327870214515202984485240154096632159164092451543024947782847375422750704880082387756206626744949012936132336378912338412175784775372980659399927586660717864682792875454356112536945445336175743519589557633292113611384863576854352893379290943997558301228349626169368243691290056924679606220858281497419527860430109812064776461677837092420103821312777282960297276605875275634676130955965050538879615611805134397477557988580214388932283929889038268813080811463582940692377665624858689961219595001999355737225348009314789065702762816904380481970903459925923715804916264472295034348120307062738137309194900948568384711024948945984780290884380129053223121887683861326517964519173746344655464254294779056795760056218552428826403332855279297054656047174186655251975032239905063516786543357405370726553135924257675902117814741955276800588957530217650008060522832499410257031651796648415104255635964627384111183778643994424702364634164244172272034759222729376522716870448095264789290288554585565153904279125738709616536973344657368658762533555889368941266696891462608279910101997198681732153001225628540649463061654792996180787915825507124603501433921530486648392112039777053907961563147689073017984584950323935246988429931897722108475589145323399127550685668963247983138266877648467880437952530725951072947926421165344128607264221112013858007577359806420661010043462874131475710822444480536133588701906810149506712457176024456679623295740855899001587171948000923111018885860369612740278645655627990253391796255649318730518791003272613045935966131158258222090383810846691920046599735751875745343685217368016627894972942366471393013401814058573239990484610885624547069386441215422896111059682352971617887561047528910549877358344583382216099643270615117431210135816269406914258196010969258007836166033366252283953414752566786243282994819389836476346084794202475864849758632586876265413854598451454191096021828906464125497395646146883662433117393390228886700658054211314672068301673974512970971817661046230387436438920347048789448312202214032963343045702407758347123684612278720630684920328330717222708721466818574888105572150317706552505597927593323426931875957247126347814794055884554648636800763384903418328673929117017214357511530212433472334605183170788865854981526411389664740179031395955021898428632550754788423931195550229119049029175512759069178023460745640879183094730840594482354918714767309844488441638698764560957196616096255864798837049478103437144506380086328165428535681970385496621701965875542203154928502039132645073558970045708217903686245234154761182865877026283203201732407711781513896983664416888002374554188848031885210541993477832619981047631448821861951960124041862985740137675301204253184873816402269668269890709609112658722216918500616023158555967277682353182699007019765448412386073173386161154571075083068825120747861028512688572793826365343713859720192354064791540253083992683090284902660471535450281083299235136635843236510943371572427222608568673018079520013084050111588005360339828082743223822007353104217102726935708455268999496676946584051794974202152286054038554373031175306748062329911884367418400477798921173352822966015225710674169106793498469717984568164796824921061621516655737318337872860142108219541752886696585995063241058006247434273119567527184440497458639088201249417062353122287028136660714559772909482152871920677608333769458917591217289962097205950169427087972272443001400699064420345875633364416478407241728734873405387769332945193163779432009829379296977177538614860980227907476056819564776000922412942546020286144540989677541517596508815165966229429444634884899020166522377696483134177140025135079675164701438602935732023748802200114143855536787745467791809721996832724881379064439020795558973270259493551809788042215721469201128426498101373791070319842724830876303660891045262736452733083141642530770155393315555318323714417835949231267490815775082553491117205863602474266416800168493297245319170124421151718084179987884297883247548228352390201374776300611542356906095390784578792393180570396724948832083596389327988330653798117894028711591864239612679083190980772188379168917881700785611269709995368715433634623535643447976506860057744089243192259285210014046512026881366632011377786918719743561511235002105240753120477948106374194723731507089887287219911636821946096329545912386416332417829895901879257421519967530772002039699400751262747977019520228137675099586115535387346588945556024116305822865521148329086416699102292428770797290532113483402870028110114214742009579226204193555411794676375978581234704692015286469504924385502237801072200534283879769506236687192734470150628379555988948179934052165955573018827690259480461971496625855203767351500968725343076633678218520516574994383391788015684191872179617345357521661318979505350442949840296349606807990509440251501216204427794325373706327331143732173392095218128634637309389212017554498527357250828720357091100020002082873776276319332307208040233890638961911934716844518397217188242895986045248301648228728872719026742071460419440991536913394401611096521298259432283157196596604448758674417662868215163517889774826475863672448124560470134396840532036234243395420823722618381096505375059126024532303892538544462268875097740995224073691096726784608724007449783539467717985482160063866671995251457468397317386538729126760819192004616285485023641561748553074982806920177550647868254801587701030493835776737459024942613826421035339528905180895565768196054832722989643707314748076049783119575098195402443133007046637809427478207318845087612727146700724396325295585364534564019463405185891856528944387199568138771136551834999434960592513484000358018588808264938566453330372316536792170599047612036316529077999575888241527819477363235788800244435136222002283066361487747331940437661424874201313998215903360721356456034900263466326866276332731179173868634188501679490455964945026570894120608234270516821229091001147129701258662856495606489250233643396728801823866864300413278694978757718597295174997029166652868689986485824198907956790535269479423988428286559226529602422410352969835592867572681580799439656823968539262095621530434339787854341048952502805188394414870512493258842989512883914366944544574037413818646048832379352158220147409213181948313889385188319139189922396395662536569533580247132668530778367294657364465787364874286105565060024674325734742832226010870466676782058222981348531827067661517443078309324044028702002385230650807158781743481586367308273363923932837292272161433033703236156895297969720552651575536995029666929985970230999731723335386435100867715751623854408567506789322390440878005520350985695016116063099730559538565456870192448113295353846768815126930016250407482170719564733180866701830220343468639861121249897202727145363257323502685947245304718160346344539997848464635579407284347172061224028534303930856476268386084569310477195903746647282120184896707120952982558147261817412737556615123265980509652052175642433448364672401379589321928347557444209916819927274739621556404267875231865926398266400349348382291913078874179566089387310182784400096246417768553781700838858203065268973925545993627973695993768254916755962945311119933360901165085899522677708950399683835738219841133440058484006853145997935436434083509947609376966524536041350055470244987573825735831476162911119695354930525450151977640910529354869812067292225128501491650024524978291058240607016891238471824343229663448090964385823328397284587263649868900853794604130834738482528165133628395294857295096458265284140430737516931340260194772683254212666058614067991869368210068810047414589125079467967357770472608255851786759144689267536598549438927549155275568229739647279733429055884995305179265297113253902800231342048303665590609403255613920007721922509192657002030251665185804367967095461703656988918448527047156257107399654578891822600455647099446654172293285207670807972203986277939012103220189892124564219927547177738526653354325937223581314248604956615513257980201455166304823355218322184908197571204544175187197058884827573305905467869948537086706224372485932122192247717553344674990561922391494168116389080639884554874450833862191548421185856049328593881806045477704886387469089883813594079114234550878802637925081834294577482654872299112934134152153222102365991298321565370500960197589927328764326519938456898850113603674121003138322460098683281677257813357243899349510873819258157344702863227290966774381097514569586878104758622628210867820987852580405462983659468739928331234385524610144334376890606621425190398023799458732209061788316695313591528215381468276441127940640981685687529944884277511309296760250084739823465907000545874929410405840593349727046368989976701974160136968686143331975703350326689865572241523000090211274285378235847784185895752998550945994015565532504229177827115037397668715952144927942907351220016282921755962339148290675785394380500761804828441557575743695928392171853679043676005612432296773335543420202252925886134502466309952144718188025820942638462936989461514682327623241278696547215112860374154213130717364599738408565368936350044729833451694986920284820602163304610205809512296777772654892811952622311011058222679259049966723334318035768952498712484695355752953160247999493707686685098948914453030882673225067193149016495486532994197636801835225610809112832121193340980177638546354219802397261296702820410292548850893641964534055232468306598096112837371476463266102268051745936381666164494013848681321342431782415276992270838454970575857419446347225822084171709978652393486999703353428878511582480151229846113624026920861700356659769555229234292605525582632804164102066612377686645948019499225282778248314952683464363944037972021887815075395511277385877991236245900602039580971177275672465504354557515214944624299086197383113973001512118390802471256890582685287989666692178584338149144752903618241440441573947094564027067048572300624106149279857609883804723902283727666271156427512683841380863456417909857711433453036657123090503039259080046756925604777195611084274818498622804827892961012281248928218920184331167138503261963168059224744188401634998833624122552393358524155449680418796600142542312650537688329911645116645225014622988656264614988405783602427473412657816426472043917887684375162150389899656677950072159071437420140281444528222925665530141283080561999581430765023889453683754825729628607255021358673604707401887530906162012929265752846723824451369216615859866911880801614064540784336409390308314727217188761422438566282017895939572876240337946384035949876159652881268010623493099839676270109923109660337223267434717575098624646646212764493706280495243838284407227346654828382221019103673310649345824198936146174289021487111058006742263312637036928210131578595633569933640951108419463570582724034112112252771954429257163263710513137495283845670105686138243772580845104701242841211529019050174182966629977535687346482081470815159473409832168763899780441893233856211991926802272974757929461642936292611517538690057502346290793637593707979980974663293458592887403023839884686413727277412264180874529431606372474692214092000528959393505537338990063218705057042594209681441309664612552471711319326785826489873894081817764664177951889097293889830522285480028762859615949803746531180080206856292239433740126490207911674518608990191941943594078576899331517456809089451742064106986393854400762934002353813850647495394667345233694973570366641482590687490303989596217903711714316206148822614608181214046369345815208579041682717791202228567967100573279914304986669132069504381370251101721383708396094301787633921776360008009808963615597026625333711729711262460295776321987834852269549178698340275087705094202350406062721365162849296359087756202260223659240486627004337116311488052610446849249146379047592699127523056885501713127787313760265213329448713580576842323752213740760619445773607065606323471174762468014796206622593948730442742563528770376032958101106104111951796018659447864763178971670274605435641366264931551775101472668714021383974824574885425161160754480898099165681197170079784752387382283740789591478023033679239551442136771113203861170623988616478250339067907053248607561754461815730172732516092855468418432490877461737452225700392813304891189081398064635400377799618467059611094807080865955361227918375349190383510086871092057079588429738370065740292242004875277500283760700969550783880369213377545374124964290726996543458176699449341060950126316503450605664155002227678599747567282272187843608233175919680053408459118610547607621783715894913578205604787883744260669607446477184293906003436496479988907519985990663179762975648366370021101521446153414785612072374295849829832699415424182239773080361491713891898211710612208439144104771065997303931405647862149985428741780904882572902143495425026813082975941649054847062784157719373203025515229448940390379900061227189888466844794032240532472618786714797938911779837191409553582005991689249388553803627796731442073946890244151786618615173106825244053766977343880770774242317537367925677657873693112553354803875948475984202700716926306485125542782135356974708859408738159908986921893923299845448236208662203773910324049445610746608683718408136424400463794670101537593118332938785009570721089424186469281391275007848964481260243094416483531819412135003558708419771598382098724684132919569506300107179004121461475875338755530352349556045551201495140971059032077298072228712136228708849119749379125433198071827244946750827511267495448306826829879760673643188781587363028925872079539368808153984698834003617330386463791673134814932630345908914321523678645776955922763143091641788041345911745571899195137482548192699631787061074974843053868411542094711003805983691720896670632143192931269386969603659376163410122119941958855760317560751584456363907549389377837446280787652548670596966234619640691051339462826842670696869823057529611022286340189654235644439026835919817182550638501632599890665101994734442109664920390686170476248642779982675254674775067882136593826149012561900518902396864071720668724534934939128035447151819897725438160605348538847598766184220163251961273488471658048970059699236278218741281115178548242126892550975242989173967222630286950624158752654107954111070688902257640602223526513969616446616665619358431549903613662975993721027873451329177696341746316832306807080603655117392209672326933596498663544444726667296960153471317890849490960918588375047556804149099183434994158128780524604346467876421139285245973047341833486845690893639571195797652168891637273272834084493041977489958202701942882977715066918492540432578813349309419177747988833322158550144736493740973433281339952123062119663050069420429440174398504949677806735163501479754755341012738429302040764871808269221590479225250875679972237890078134379812223783794903445053980317408826963528774232587875769182534146833392843011470765054666917930726892377028254183854704305277042358797828639063985098088791979829495766436538733735139778771302456351416662656006151467799650069629239462854446092496954244901819578681459553445880822666887308347623523194106271792997467836333383719069942267273120125868515754188986560773521253272853637829706821008219190414750378445830823862150719764432036565652138188876666041440880063648807351737363830268761196422853174073717199509075785357172011848632917321839401960359388467990840838316709647048833177101039738138365688075970500013338351490015503242011115630851241335238543297015189402286322015025372666271207400023163390917636357085918910371706046547031970226338938906037309576893028269136544374696155582258716277743369271037827076518358395482486225185091494066331218262969716317699100851475215144176384602969029381711916520792990564348655840869251428757854265227530053043275713303546699367731016761008833257627988737506588358394853339563777918207753635679947355449279009265484337102913134865162365856971911149896360132214411911553526294292425632153608726438940344152542442854876399054115237251192336705526679084998212441851704595729975570046758881075622292402737219741362123629175076018987992761170790218526011052307990744076701224502720179274149372008995434304075221330829999165487201856195701725811238555608890782387878011106600938999077903393499759139427483139656540315871281248202852720099354359634668894492946755820719295827897166792359734316766993022681276662601968066817531561583968618215501372964673115835142462200834788601008744482460221097961684248306048283320107499350879251459287182191691266087887385957994469847658645587433039634603504396359667523431473152864828564112361156065218816508337570727312140020607008633099640799057088290604195927742742482407207966941836187217356731939627340197056155196273329111666143968211979713919396113262014911263382536770130926456166663758956787337705556508993255538117942598366389375752069434308528937095170078144210395655125886011714480999073878741984811417136497558371078219681681835311288008998815058483451465126248798523560480463981411318125897004087796033639064140949727669994782502718105969765560531786396134438775169217976138276338645949027022963375183688923720392462027610967762045841870154404323305684245495483644395364169004738328353349143319598128933531247853736766416269450854134195248982145679908263714809721005941843555784078564233962789758543970437428155754785851130564209597484939697436589877806449511081066683361339290922492429335965279121327107400647651960474253077460459668008163641519271494304251927350339371235237922708992868311080042638595430769054737286348187306459602765554582070984056904103016081282857916801366814346170082700397387266508991987751683987844290775750324629795647765822539329138432051445285083667425626105902602874364011116471524580501785350615510825639717800329246286772400030729366082225697384382328175694765858088857177509960054037850237848787365320635612099288035950583777106665717527855698019752210420108916131793534163785643025588504341698664709215180657933699210449181203665376764210379414753174918127433571284779626675791530188795570978673408918035805576173266524701454925895106113867874662992252011344778646339113279248113839107123880665795191903179414856380872242949316812089914701426999388119600739870731665043452017230139387095045348752701081722324537349217625893696785238026622123603514198729607827695570492925592554154438490694193289203175937453685744093595802968577024467132865969405877745069673076544043906335060948329996886664443462574744373999028161869627913067417011290711656694798342577345345016514201371468599005538877514046295877995383557518367034049944390484024620809045031085222817921207695825090690860866495331170122002350143509733661888508569417011952936184175390039090885572906221944551237799631474994755439683193862399663711315865338100729729016585946513832500708521110458219470072201282262806950073692631533352054702408278686412099453049300926505806201999305057221914978445186797090219332221997260113592674465446570094293319857412029916914521609208125283422009380306766421465534405483434217558481784669072983887736425929282126801872214680403512407909186293287792639984371448593570892416687214753731325219660383217392827201030194398497451168922229241044522134627884577040801476388629818969965832985279537459855135968985470888485452970663623388614493432407309486017824936189538479830531744065703801461246479341086182883592817575084186377855952962056413875556038307753236454417672753387326281669316237464631538764338412266088540074159285035828776938967464442915696440004982647950895315863040953722864289435414373597655083945844321897811823066856671034976387586212110267327254101266918883788613376944114068985787025936386764779507738644982479429634764518821864084211978561458028303270109970408668829237056782414550317108076146518256515874774169907401436218704360382059037566299734817326970659532115203870595623020414089829265578176406504167537533721651907038170179194118349734350448080027658859875335422958195773462801280959111652418992895631389093513484070691232427763508438734568942778351412292469224754336872618928766725492741300972526306151269502299699906559670775760901783081213793470589286214205222511932114834866674928714848547278398487550114289228458679158387264022446166072545078712317386278206849872261581914967109441028524982073831496403210697174927233807296899317239473245543048300936827027510554984105373914599477090507478009797264708741601662767651151342041266063639309506498636413496208639226778237920962498784918079532249797626802589315103599414885047300607265306642505951084614400573823190356093109291900513980978639477958933640516250856077599710828305651947650895357547365353138719196248421848979877198862719854237612402787940402122197468151641174249989995601549163791786570086011456531691167921488436756734794805645698407917820139040197587546899634111199031947242620760456952319910329905528681781078304353751203563126997950783947447306225449010949331728889124910969023325860367362522997644998790064330967842593868494164589427763189524808352539151761882817837629774359922779797236994337153235757570235663307181314738412650010434093765825709335604879500450375270892121130352072737706671565108395527456841304575699195246475307835081325200510424142505492820136280839171209399662851359385026896069333706768617101076379675109331686476456175649678560773208292005971042128443066749052067437328516559459423434575891770556381999719893816260333812505201702162853218205289892961253015016794606432312251677845745629910998745149284828004509860160535413539078687376636641022161386784386934167534807522471862870398887765919482375943885430469454958631547638623410528503467215600689011649208488485216452059361962655144719267426665786522912196114421725654571318336416051361154276707771203662501324413978276817340223664758218055557603591951439188874612810687139857460525246732345717176281485104029309960141252465237640775023116964854398168346176527502284715168837945871967883429702676444052220965181068578262225180849626080167626013218052958885836336021488922268124406027746545154061326586225659172819110085918168340968242115613444269892514321248360829563138520532361955461669623271971902129149030003443120143485401625589992565126832515050069450105274030670732697046721784875219392346511460549972779404780013939854208387989709933462621366158958766444439147427011931303865319984404211167751019042635525458930623455902927017884201969034323711090398780713885805280725452306627505927659549464888021197154351133563110660704123095853735558372130118814808676103768293622126806926915878976799211555296186506760009635068796170618865828675749985344130264691863625226983929771572612806967546710732947477741483585515874620041482441004374345854361357366071418357569892242655413260336680559919289164448162902949016509947287109060178530946865819603059331403304858786623878899701752932583764001409284698975051116330504242568055686479750408018721010954592560138284392402928971461674190451072903019325418933025489572160975202684674940983793310658404279306454271132852796570747703638739980307088313951453735059509828569064888135430437027181376526310264654559693327895647172113048271883400892156133274046091700422757620240145509464271340550993945744955034895699548262433512099665088150247818410605851937899640830190679667329183503664617245730890989437557121205613392771037344385337173407566854900188864067299400705656939754790367429438361692374793632704577483234440223359576462552765969952269793561068993351260478063848689308188656156622299054005618955984709094817513979234058367630047548679753645517923701225910807144709391542630811697085323405430362276522776991497987721303245040366952759888842863139940017990909377206650050917824613938504267952480790621282813848538619620210946217454944314009007713080854925675389222318060422998808025962319519205239191201622169705125621619846744787458075425255548008566802358240221651615411917291658438536181940913546976520174611817094809469351566138857162616563431511918620279710904745658487708721764101857958244592082093975164249749533441380222139887184001467124491205970694596475557002538350050159221254684720746719549216731718833745175507911421993788022086772276371493593562075889213864599818541748702539647635109076631939158631373012064981989897338392640727236953670742637706902912286928980460358691854419182031359465076724411588305182492347712313291307702419658148977960249579187195783046539001756554987207406868759059098582228186854686422583624989881645495307717333859649476083817059754543940640569184448316856446727727588642887122220010874207791712730777028817275778021501331751820270620157773679001170677505017045652251874074503031389487390804361705825925833023324130080062393956082343017337718076024283110699765977032486485774614880525924546685307446532566338261643257586356936639239279821677942024034532779555134194858580262795947573748526274679521217313865415624503679814193611071167494010779079878767485027561750073165045699026570605040718243178463272131736933302731971661773368824211209977413811988168518232406783489995982518350191372445228519246093992646488136847892584665569902190754883354363759873854864928246919155988333207942219827580062224331130012895184897694860707306231365061744003552617831307115795416220756848725308201076909273777413794265302398272037524491697963496617213065871153971065584460699153570262836793912007407030603134754914812211934833262031497944621325027949121785589073881702929596599749158983738847892909423859994852190422978256055977106789117250878652778723481817084715022767688908705935051944354350854286533082787741422085860430818366978547442676220135480606310888046443437211818801025661903194688779536142413531825557775499320000508228075967975006519833703110253664357396321160945680351189015223056884855030125210313954779395141703419761579110554500703014411576122236336379989187043689433943566666124955420207819635713341371325206290180172952928903720950431721532177480517766946740638322047314473277781490345822492764423592699290467447800186672454706088441744039812956006561597886790403093224431757413381281686241914535685596273502464442822402315203852487895539174082571037562905547792651889301573214687042505425812920508804242040192954529714087637404788090760983805380535611107390650616094262816329913638075662357288508139637569204388232696104535362828529469759098042592993231705551941336574811433829193736621660779669388875622003967554286591286577168048935146608224048919704384115306308458686412759816337266368592841701928272895655671304946091005042507150173853775447973231846751960379422763629760027001909900351003710391499160918680581774829852669051442306194367461142636199118947926520308664076180577733931335031045106900281179575411574370375243670027293116541762920004915677885201005151162240996169170363200383823977423903628266992184761506122090163594731772319411624212649993784651277954061635216998575504738573805193867829536273452309994828574224931360109277812348693408667219014154321110572582399759554833521546012527888787151984279979432324151259686607601018006371832017973783028391388034750777028088112718401667256302073891136009328103205712515929759573646864322975046640819350172371886834317530609830244896804351252089131421418219394914834839624534780029636935064534544942999403231330980593363389686861773089234654459487069601994948422593619773975820634740665870434605898900197943232243825786824343063003004066752380242900801763809866006685845954727977937137143170976817032696048410850883255461261494356917524221107980779546020206572213078506115812942528242424511611258424199888817227935788811858459232775787009628380326360855011706906542618357947275807069952730645596998833199353686181561420208330527714901936288898210106156842936607412537935213679063807922223073847050912787932734404123955864672865554353851346325352178662047438640318822878262323674227221219154932927086218590856917009138663971870537632213318225662702328821200600692495023547095389618626050261162336134228243567706080299807369816589399285551982606746006525870005255549847208422818270099225927741028475363404126168028246613019725056847552821579220724254244746781525927567887693411606516546643643480290223546462575184964979956923209054101909239185494043052525339604948468739601662971672151625406098916405709770884831549982984138263209524278483065651713642988243131131109503349315141642635073822833676832883613503239145361093582854044615097620791102717416747113179022676664585867177530849861521688307263847903671490130874557188149691462021598054474686345910725558357674480824561805741715999382592183572035141226960688391450438739108829055424367208544665263352218206359430046701082949766153239011316468412552536189714655581169991783809207843982125127084869424270724894555537079376548500530493337166985907171314175658812955711303570898701714476302688211664465986507714525301584751623119599533862458655577777557286127275147634841768765042531991608141698052773976561604122477207414933182044350039772497401234807020451363607745036112541432747942900526222485361018467922475291116640973338241292538638747066376681187052356261137360857294445826215528271754425563072808705938416991323350621039523157487857668191687050626907752602679268499541413744842487558221603099188932933981918155852126438123845274822755693083409029985964751445829443751092333335813475044797641719362876204079484424317858571398869072797722176515251042592050478937683599136553898057064068701391602913331948199533672672099137333867092507758427004674233339026067542808654114354568662842925977329332518911639180428854398109551841471425450721033518831273229882016102062767421886570899374953420247195658283050346722743210195596549115692759721389186799758961290667257859349507632133355185984284738461943878738057817668302362426291722364278231882937837849391034611391829366001711761946126629871514589033329195711073017401541810269156406414399145573252697619558637853740203047650734182334318043646022164710906890182718818085693020585501288483503008081808497701694500369429439417377674703414276459597409310890850638633083217301416171654037548044693903066050446377779550680438212084749491793360107832862226724718703008280279824923700517511166190794081880484412394083849102902401697071526916643238844069218138420602673398342062307154526125441577197365171202925706890918725608449749571009215823246492427632986087891370743370348594345369548960154066361343177379898810495110839967983715194539735470478391362055690074009724588306893314729994739148656292886760165675961239483355489280418854712263793090116668701863694720834139428865660603213582781765772048244696635139398950508919591554260989822009021911375040367391414198416684435572957548839155004789417435555490423240510372078441651641525569559993835559299382890679817366732803876722081230886252195265786776861286631394757588546471629961989884375690209420251056542235315574569078900010655758086203972887982286496988298468915603536076219925540838655136756583738977097147045278509968264783463662010534064960995569302874113888502328809678129971318545884304436572380590698824953736908765866364593066392958536093215871095950314481947844840598284423559468135251026970472108923004550021899577806533705005593328494504865370363893352521637295164717445226123711148693462467970701601922665544427372491450697108062128704389100896604802088586463721044686567658282447402661970482804729319401774420029915779791876449704721233683547694071172175914769069940907569243823333202949149536058854336755817820037279414767123833748866174764319169450286108612528979816509636901846216426615141985871255134514198706961790101347495944068395502006840301451947186987637353445226637620830816249956299636211306534585574777579370850366436513909373651389067136907663173961530422825926250375535287446607062047863715493585537226619128358118752223753122436796278573288102432623138514775257494601157560105169616947920376585713758433877115769143840452925437130280956396706846621871809019910823309111827650626816875864497367858667389520931028810588749993661988247119838041480696180026212699403101223661496882707495365255753839189848144074318272514557163559380067417631402269656185651988633041784919158587825056285669959238109691292573589600051293414694162047672118330383718580025751564147631803140724187496058997970250909345869952101472577261807521246118748541065311738068930240295237721459401729262829196104961118600474856559733553662796708876870857061727556419624569363943587221164689013799834937186867655128943932187463756624064913864264413733674094102176255533301188447598923440713608988116209055242717679953297286972379204102196843582677239515131427102459237226488906887386662818859176619830669611222176864856011995712877366460583722201892688686670179849487510730571903028082234106093598922588694742522233962080024623691039987333715605256946517251504068909727118533651987825065897718986313312246849184864886526434885924220272652301025782824191381351445964191660723415367917538701654741173296309538631664886996501256564584102778960431276110035887254324329858534794076773880412019905886440810022913248454769940443666576786986225407942416050490197161538941114317390122708048678900642592284187144449891935822988507848122708708207157671738660785662794456841669296918571833904460648934768683018693875957493637281339972836459047234018675302074618772156513334843069572379721175826436583046595376089706191924151870628712447043276101606268273103894079081151423802887352108412924756313122063705389401595563046534650660695882693920407913668052098089600530512627116969947947193356388121559540160556822348320130145828532559319670384247131332308267728743034375195001287389703988364432129035812993897772478268174817423206522268572152019465627681520905270871748243249058892386512257555192768906483826950171200069588460108777803982687485388371348160896560899021577821513149971301455777287258901254278038175290643034606767582377049512071695357049847346704285196846756567558758073833465067813345817029626954535301574120047458975941684741956983619012728879009988546413882744109121010358309427719792924976261902850577989144509478817233167581625952019109455563291342512880473116543468440261271201330256459998277098932603663090567030123284802536198071687948007310437999362286048951760500670109257856457153735239443338890619320681990655543839118932441888943917931244723241533667049420789195530703739737058250703870019559013122252752880844242113441776837662834315997761434402904684725425593325185718784660651038484114601096587156561683479852785526247233986966235260473505604251543183932418716373894019727551600133163501533686726916658618314180274866089913052547353951726000362101476091281323989849249550379489824324586599275719974020984375393003346907801397566757071102853878485775781334369480975759683447116478831041709246107362525027219220567597182317390538173666076556887443110129866474672317806281102796665153776962102897960937334006205298519286972328756163666793377150241825616273377874632882309076536744578166537341105616977594282898966990594144507130196703660861473353098125411629673427090027889701483926688614537886545997265088840462599128602199221961664269577910562630012543949013851827547284073421165060630018241890392373700080951437677200138004540575244267105793319583046699385324643141518001447712189305112545485337767763232799416317767845830352266695667652226137948891780540107339998680957723412826139125643168693526223841312825614340305915720235194755338644109158182699777938589916285070823011705396794043323683663512975296215276028909681060930292947167230529786986581326843326457664550103027548993608084875677968815940702927323333224298108724937135453504182668223719754552847701069615020759732356757542982497535397016910895053710512638487799146256454489408566254705971665018938480385318020625155738264674531003564124298815941633644083820391397870301554698200343826007765259450075657741193731735614276369502121019331508190403883598732357698183351262842557260416547120407202355433922754777081506934099670799586596707582296185562290594274983479879269586327331427685633996040331641639787554818393635488156112504779461668285765242200320514378945788829564002048075455548261495882283429994771929411384893615790780721602317684456742920391231404148399600832300548774641003872110252219825283386795855976814401242139998867362191054834741879935805762159275266586233759812684665363669904864187015804581667721010629094464553056237593712932450861015535553675695289963527488090130472698597684555402762301720977170126309342166346283815203417023662694235747287446353656019923705000474787283829194711183131414114796102686699137651876463657075982636907510412111876164200887206507034406812253982367047568312743574828797029093162459539855623727957482540286599391842880241514567480511574518995704018660039694088622619514757524501127232583518344653551660029830655462918644457345113064653822023096624765498323673214539368718863351423367169867708300188397149273122539511532150523139541472217051757709914662056972049267128558814066908586111443303869966254422976769783285463359453163004001659639595342258549636486074089715108219179612346069834478136392846962590169242328371420401078522429995313413715015436129900098625739557800796483062279887997526984619105529993770171982127268595632437326837758747051927257845948483756724555621959779646352617621604495612391152547682320268492412756589877214062128207747246015951118235422041301058048088474598458554132200101006804683476888252324436149221456499995664574895150701229469715204252714805935390202009480846598695083971357220693427092383605867169565344118985829948270823634155107899333313996713353431214080776265006917174760797626455367555360359873691936194483355560097726784820665060225646668110616516181320037743832759575443775841870192576417332521841109694471656976643027054647365262652125823578499710236367732938218618399871354567502334418203817660609262419447026699422636575306658846101229237014658321474655459619620707993813827425142524830807140358458862828722312433697973093132864000920210872220004987084080333988455932302507437211242711780597014030229676296565648074865960329339293405264855340164914091007174433094868313176186605823468944998939197397664997278093083862026202129730599333201350107765014956116873333096266733187020837650337163633166935470544922448052680148532948380215104658700009696827149116942659743331595798410600417357793386159818456159120631168994599288225087938328622577766849081062371402987707880134713654430412735694470613844491432274044600131397767821951121776776542149249367600435222092116078234921915033802084993815970753668309485156772193853637722761524794223050509615638422526216490144379591692622297885011426563750496859001031065749830305364779301457020458410665302901344254783214359905633267119791081472410871210464261338427167732266278273701782105783759887914833290265446474677954606790546672122587104664831286017819401806623784489541905485557035967098544952775056041001881851820320920383118987277842232416431286585500612293461670494369501136755103275309854216849735077689266167736325321330476950359403653282438550209123248898324319770587425408311440777281612137391728971103268949795210242277253572785058886992461379527271123204247753837384015473473434398185997513350717305706201776821524876419781479083111752223284106743964868336539978002484626741632145967705763218061176090602842072234954529389981444238135013370402143157073428905276733183664656805490834890999826879492695105263847830347731189558741835737597673725270174041873025190437025324516951956205960467442285272392263260910114182914529837571813824060693826544981958720040234811979385097080628520504937368408266377347410159322060153540079358118384882802439124734921789328224903802592636987660087756180591697456344269003244647164302211669425349451062084357825822762472888952023017723462628027581964910132645155647078068003339977541499371485908397722950677535417861911299988202160668319395555570321866626397964087810332866394683314235365735851578970829100179964078567763020416051041457449604362355353378999935814385923513509131862288997166441499767714346592180974290103727259511896861308060736954476308916124396700042918032575667656796954324068043294654102142044878952190345440279761063294826657930521708273139846938221968324771633597366641701267913525933749715131039327295690746016684900004891292490157048155641085936572719939581741444610358986294284542221827996457826636228053699327021175505472297244445464178083461796468694687945029275039674964159925143822266786471453396732350220868190603266217798302471392574127279176548205225330791884552208596139433394066127334098701511827713013465005900557106797725722633424799417989763158827388971784682213650285593116704373755080942872407199299714003466528985148500121351238154228734866565754917749996520312813671888481261019050538547506754766472895520498993391493016670098379871608792083023217037700429069021338709995984805929497405181117013589033804180068684624050178916673055212777023311931588926304250639472836851558344581659554898328265706586348486664108918272985224296245288957814119335543670033115119386360748043775504912028759661681242649365115193401332336467220112552827738474829715965788433793083921873445834345133910492087045933136782288913619795714520893481197727396006039933924564703993361129306346002348369943606075091170223044527413851999207381532806549450066307540384695645669663921812523044235052425899172927509253307102769485421810781038953394666702492108057545427029023616766732009434142962221264395149808644154694859432960365311619905087884761058340404617246569890386146539726040916474455109883533132536069035833144760580464539401386989108768394954709528755409756852019913721237739226000654454552254301596123778010241858441803347836252417358301924743331548111758100963306317778309617654812660696279143304112024655218357364689019258580187855697200066381155394044007425123028218726651160785724050934550395045543655201187768525022123262666806907126998827891490235809756631230765230180688191852050626970448306072996139786111800542879097491520173110468849677423334171471339847325795939588565563770364120036827457226189336768642222750925742328732394729811005273748313208879729633314707712569741200878081052610817713069787177876954803078602420942584153870409137192758489373333921616562449929501853855496570259777004011548324494105537922233961255670637826232950253635801854384850995999966668682539081957002914008912947469720037001777636970349270590629367899992969536316139818052658354785928943574801832645451554999308435230471627018717897681263199734813498554869497032882961852225543411966530966589493386652689491292379980103117708351070205656732646191361888066245582872904156117604184833026472166429447745246916558289847609039776137002587814992126857674479286763700582142214213642637548027160294047831916217439120660293370371077956529787408934243735081095262461088620649796214624480508966213199200785189084635349065560901725339481957442936342965715511653975649959862020383862916239795309256931727546246269201562586659821567452562710485735572138797317958735560033864064490906177921875101436856295979331639128366348309202117075063518026798724222203211614261381855231624112940670645423587169335120562654846077704163952369680203569645948893682314673273414527032645208883945972223461035115495642071746508295827813221359664224386236830676971033380786057347762251884008026506757547215348818988040181135171985041321419977154422516140129123120174820460135016486973880528642742799372268975895526021114581247903811612692521916116323405097817006014536551455200207945371839149195495603427359565710483195378007622129352816465495041750759323923951350818108055970776848734517543833446648012216808678228177139304605157420239277131213563740326653846436745485351079079894542695815464422317475849695623955285435526742914328218548897249742392482176525123155674622988841945692240828232027853332243999432243372719980228612280123103432523544788015803447268022443809401769347854190264754994853328194283414942083574666486256483423761894216563106250598286796841957461226205999635788437228223013126781773721404060213807199008892113479495125978720905423011487006122670615104877193753571170451224838294218671344763325254886960201020816387146630106002643306540908361299548183688555892749992536801001261468608271499403147745705339786894496621362178214303255041098017726124715256313432688369304552302188793976545571387581284771067405036197647112534586368110332514483245713782406749887773777892764930950797216455647457539453069086524289177170233708393774286150493828788794721028221769847565114627966895190905392846344214356260081253188756845537618449831780177854108938549356524383324746126010122215619621355802064853121942282900928617460207646748775210743349353548738545131841595456759491968115121922558089879518689905980092087225439582315570532590121956026839042684375723515439467086833507792706221236788490389315571889380563143148924613287048014509473804892240300580806855441756427469974758615230264076431550857397562739546167494611866890551680146664734013563536473904578566244428133230501357360764696744988233216567460739418113402167400310651191218868963045298458990157521269497877444395171268790138730879320339063547423075122088795915867061061443907115972244597968910880811227982412851379364585588702276629987409195405840194618119689591046196709442190544812035419668741454228513392738812076656561318615106129353373064271236453809197232730441641152097732077897178985600926561855188219013113940929087216191672951561617107351978647150659787801883609186011469210192372078957660780171998313425235940534387095724133018204449317390819071181142399760366101984264935816854708188222530792961229713025100645440485771745811142927938320563989788680572724546443974789008753247170196908816056665588250259448162630592821771267026602430002920936315578157926660134252662802451568040994736262845754160463307752413586546051646954549264275549717630516144022345059220198524109947917501571657304549410595304505764827167955903929736587896526034215061505057108156019556493377517653668451987074476173003366877254370144852598589893304084711561742457997992279118701962685578607297631998161961940206564486922929573342023198003634573473255289272260104499809640950082357251343555172007480739122073557204410341208264851097984742234139462683750706119912731194677452880103174634872824379370540878758143238214877792482341896670247074785303535852304945665990903354677384758870965546994104289547520699975790097327975290104343519109467581832585767988882987693446592260469406059735104136403785451138148225138854301488802945693045273839130095275413919370358551379200956072702788055968861504827073971105562683248942035782344961965784932259128834729935601852028099831374614313615676598283452551387886300224902271759979358449468122193993154093382434092499233223309556294003391856734994757242487145170729528926489610685668581071977448640671117300945812697135370457081136575771232645333032216440398745133471191119695003860567597986067394665038661404866835664899194561950046266686031737629187434352971355758570187737338734358274946944802985521164607884222588473723810331231424992091189300414714348565492662634988509269302139498164415449035823721322146011162692383606745332406036649682174086805398143589741950254926428729518246458408690517023924723779224868194354807986172093881351066669952003047781506349298361297422342110471684286279227356389931134399249161462124930665386388220761911291166353548347605460173671772642436787000088966374998254171457297103750583484682962258795184686575341653983004493262575180835360725345763818976732129695694849673791158488581843533963212223853594353962858444318414597644748095268101201909632336950875611059413489452485105137459648520812327483372482965821676206706884053901563329734089848594109991442449189309069612882669943981101421609955467802320458770168470718220972449621948326994177832160259125644072317825273656138721414825960039980118906327734159597560568809543129282192012191296866098718689142997978459565297604625958506258758800880857998531725848918579318849124840280954211095807906110241328863055101166955808423884657025142312923219795504536466199663608738044836739237770755994261293507520189224301227602324184049522345809839517747059530100853330923386930483998335151088560591308589275347318028515941976260470390818766864921918362279907074119111343049348914296013952445658750044939120332740353648603224122451951526810720989551278118311763163186197332170256186413613795798942589660016227603151970485191076189697910165191993541034095275482088864632516631819881936214722577982278174047945940059765650474600636106471081776773101904368259479037186809732656068638067542386205547982320549054866645537396591318781015578796776917380735678287894900666862044413241904496846433766904722560690898934687148026897694701526749116173635857873270902840040278624832668895316906846435688577483722306125365214339209610654183022176550219194017390470504702548854125453744790880136010118853018635580251012313405762030608733691185452435708695995358000656440264305103912961524592673337861806987968834932728211830545668302116599655479348473146841913421733400737287891077330407050690215833155995986023067559103987168674711702747818459156019898986679101581621303783917427940578218660307111275535589537705331062057290972989255662270082434360001404069183687982778740506444425013414123756398046455546129485852934293615857482952507887358846302109658361732969181538490710751174450684061664523886172204556859662245524363239323234572206704159311507040317110787704126428535210053237336302639622790626631453711919911341921233839795859893031292311721641271051056040857154877072478422793148289779930381387104566717271370685227919174366259880438708993627594175162483154712868755220880739296736597491795000671891993418252862249489598820889474272187003355266000804198794695287610599480557310948212723434599125112733584674113850362925225952663136003557040542001759922886881126468657846379902613525416748391173016722620816681843062838908927433883099259116677171984117412811487178234598102521125644570056092810831089065616161494000182546794450674198237515766062959884368752347315041860618094792348103171345663308983166340185043134753743969244594668366036594748841970309271666557492525534000808049919525551346703001789968602152969053591769518856339066852785719170351192410212467757195096765208658921603688377656264184231722280667178602712725323320797963429628848436990041712876010677728148026252635935893113507090876880423226527216005103159466658169057056098813510536396207961039773537161383554814957718433218809513593885594416624745878651774941028930490189357791152837274700166024279484022163165964962019777704031818243462665329765097996272577129980819347144544137415445717443873308080232215026372350349668056884575969448595631048912386970426775252938506501500578754638125467681600487117395002819274895395673351751716842193703929678481772750064985036170320716537026645051189913430569418546319416110477388532362117614568003663313150863631858039414052784882980256715630900236345836152064833126595604911813441298140446874362003503730259474393630057795651571606200841471084712541474876614938528103285811967568197332720083316902939523452757466843120937379715244540679182050253860572665890436559330013400947845295890140498658238978227315702970208413020210390361132795278709127097453821548599146594965783831897101989227474152471423652863871320375623014917165623573488390017246131587248125101438754621536753915256208228281135769442567602901773491944311040331365593470201785136569724783160589110073532918517194969080080799002893576592341110935103895563887544916271925161073872337355971037781696687026126385316050334375462356475586326546027169461654162851771589166868205250254041321131587025344686365400766569525187864794332486755704041465558531241731187691652099786555495517188068266244362016154031768661482415980866987145728578874965450861687110485146771272007869596308293398026861869436631733907351061883399911498937313988462256600810150436556205544906537594801310118846710252473659974873368988763722584009254526556814738607379654565393442251661020533178899001289937443227158419273970930555216117140952879006687061769071876427231742029865857271095597757510156348948017234788533047524491095302910903394452134292936272355736962370550422678859214830713850446557603809194777901964499094007600579833257657470631572098243592246485770575910472871517218548455757294161617422521215350353431166946799583730341322141713925711483250033681664837568624637405178666800150457072247516996264803823796153067653581106876585977289250158760676154043407640225771538232309843789381704811963202714836689913298885836026330111064272438176671715563827218888545350214333658542165560857856433854929219023805709463353805594343620942208949509066868899383156472486556461919526281472928118536425406371481545160986455249215103052671634597757817111096430925858913736817822543338680565329894160964340375966815661899618893258740301593405114218204543905461007893503730971633746218684150288427972171604168679430992693333931372247582614693883383924816445110699800405890608726285223759615957212543407968403144801486395065864456349113902859532377881659553033871549121436266681002818414319141155613719513236656550001344286457765737372587526286929751965504839618725463052543596305987371787020417385835015863494226997133087259365742711424718758743115102081517157057996042700256738918770862130839662987599775101346387689102303005373119870267060391801927687779022848742302583781339612429622854618039723221904734155725369261580909306423617122110357441627336307340319576414188942876236762261650421708259327340901703571634265297051643258352632490230916351436468654366546791685452679673317268616328324509751621568160578248722927895696636700359156256528263944356342962840257395734330444311118727165617010974986163480111525064234932334235758443661117780188038576844303891104799602708434175588155227926975382205531935202406455268609580596340328471827886167706434656180667151118959332390442096791805376855637874941856794592849750966203914244726189194028894233055030387752180028306112869444824819053061020702341737065623515431876150179741628321153082273243447417475781020110772384143082147757827109005217723779804592560636800780669880706616318111575887006593216112982218120548717845264861488342857721055372512844365412756244047801250861621138816316352849061613205324799439007671726135535579588808578256824482682226506425128874850585329496602015637125117332221139794643380064337489932634636429139819897130684035648067908577561594772666497083867032809919995719131695332061002940834851961725699977238479055476089074791489100353811313768078721452069315906591647761906905611684782161970359546600218225762096060778067515870306002067545162418180220562722483626008704248585140220174682136738197426848116506712448740840039855480715066596077200628905528056359338111238396012001874611046194075393316243735095035230418196965813963211250260894095930828640419481667358877821393452273795830259855028110691979996755905845608385537266798842623123521247576239056502670122759189065137694701773065534598383394794005106265529449690938830602742537877034066737636386586787368881103378841481338521718417281002775752524612997986269038899191643984282792509087678987948397390787309887419773207935065930778570769863598099354685596517301792487902521544937285820674675734681214477603832319998560396016217083556644161643092301124422730360452496191228590097929544013590838891796130687498548066010518018156565487818982775165280931844962625647507566766538930326562316614135945010980597119925250920781633902939336361055773133188526226118509095987409873482041409454149528620153916827050518123753157255328219876306349897589081535444489984208435926912443717756909176128831938165037683155485035112385767071514417553549168226044251755806709998767468238479651230272620235045287393631453148107757340259855738574558852070271801726059721643372249136016362493886253722077936987740571806645015470016172702534769441113427609941282949481146736009579438214788666642683744371332307356470366161035873533059138218744799024901392900148990372692550843486086388205404874042692522735032760846718591008273208446742223161312343931027054362023421161670628410891643938819778505719410373373765228982230450572335965894101076925646330955183818548133507123150133568312258093727501871104584806369889866083644376842851664537978775880471689126845717460029006859557941289261559011859719973832631930338429060092551796832499053847929310983240592801545995614956457793270436925849062178476882397472926071760169439314452804533488855764580536929266810216650635698033204326687888366445643009743641156894900621617975012426078356689156582301080377955293306377204870988305896049811905588035116300492353856265487969573670465264405224456368464505210659641091815735041509762816776130096986841442923351881656929664535510150620739653414552333226164292521108031416469630914233539552220861297591073078191624419280309928285835378614558067126905659707917358963637480709315096928133805085391682338311095947647028319755460475314688692090480193875309542781524148139336393998630457575634659633041122383170794453791145685212792712975908458495688431051827832052798740390080362580637969640668144928429057534980715486414583118363185991466251733533913628352140938633556820540353832337069599369911692295351101045706049373903299106328970070501201781401414010722196935661641120088461641774554055472886689387416679878847871055694846218444740886598375148576050169247172758945419967858638392015397177825203169548033867901837936700212317412703358814982067352144740727074796900685710401309258271913613093166965928080299964143532990241261783129373307312118711123204361010818322039180561774019972221801427605725966382466474068250678642862832516497226519281665822689248564169946287660650755518020176397203935792673137864604943150715600371610635807744525905883652427987958130544615913395116360642307880377039136001983443352591186018450878821099993255081507410692688639667223943255335926418553087173124089043923302267996394103953002911332666370175366539311828306776840424820425279904736441566361259216355019018245621743805264103983665345918785995185914539309194012096807683202289485307146629207758036205631601710068970147113898927210314885737323951452029453034361716303061081901818733507905584420496776795600558391801386191080404335412034643276494666928816961779163819571152623364873328496416488397239227764085962922928790637016187060593978990483052744736813445677422923178472310417666769121339697221946370989915282910963998481381885948204520604716095549355492528337325111010034433866500302889229391981348952825807965129869262173082215981686871305219437963994616484971106876675243530246008748710676024730028716710601960068459058476292305319406111034925307666808957787145566500504072825988221377789807579247819887045574678958948498340749972274035717274614992236474115778841536483303693513812812023264302705184033484832504515762525499014236107899941131402056343299748799572326116347586710994405792080487083382337717475753598167197420873159009067717282479779520527189671637281030877494943114865659170869371645960935146384468795281137540223863851816155772909281939662424532491768380176273882958870445643842934526467746627041266452239764549571464918161885995213340974236085560757825135202827540470418166923923752770993118732944684612843837919823579073999254561479605760051517693051154986653318957792033223291081859693196912870678695990578127618493757618110711122767508178528647944544458854578810843939809563499518335648040481558724491423054411445501410730903776601170696409466113956531096035584257847111726894813427668686626919140727030480563742618908962186109373702405896987039489170074892593519148546260426721908526017455055068681870915325655583476452088311211852254374180076888848094479080537962462824247192514721355704367223626916630157478608182264271081781923212909337316711835808102276055075984733291862988966325445174328878833528795005248938624367136653314429833875115889290042029811715866342191211696851700924222681482087796452827076201103807456582778365499911044813556429659887927637370826965085592747915240138873090771356991572637968930895275571220171795002183145969475172099770808859549072722250933597306269871511543471140397038451942722770502551626497210313332845831697324170710013476838815066209598928900560778315177365133625775001459262875489555571955936465406575200836287385693782657231102594178241994000349836621036886726818131444354103433300734865698361787966098911838792112091674939876891273373601038175719452708865353198113416947742245417243237903396156319753640572750154205276002378554563589757516899615377102216700362359206273506835041428064832520279374599718283658136963739887878478876127387190178311204161178062034536263151532448936020067296840568036133624512112539608269800501476607189663205725631871540061989661984482447182778772247442070345849953115012271877058037788156827568118666192169341809265396521286632696809230812007187434112214769621420975864962131842207443836822560664017480329971016881564531379088221500612714408573061487956052306488679820611683225024849482019297425414757013641955979762665745034432915541661225759790924658102371503149308156992192253431882205611001786808642992089860551958012377381950418865053544670113170210909160423060679446542643196452606517173038659637183684544183106763320508242821926650008346220429290918378431111027203151826713947654775777506576761516486158115832913244214536808991848537624265036856963444364201929278037218993059893366476405959929760496995388658963112538929065588696166484344008473260692628583582881674899335195086437581604347385758763336391569427330705766706395867296938905261311132245186600827021075891030913961318353258490972691386278630678189716496397744975991090486151022375740932464805731066953209075817405301363165269884945152343839328989573774179123437476116218535341766466436679535459381021190887041346160569607963105078480675632035432129918488541508904061852117903687443251013273528175106569525379924359259074973829587114873310201772676635484399141328189971562285225187863469340891736535917966807676407931426141245742706861085432659658110860745411331284403989459198627640180625549312992222592640729042672405913313502508685547003001821343461648593096841774300114832126891022701418901668024740095694855513773705832341289524326947687135040396683833540200202532316522940444341713917974099548524456453369460658839278611561573878454912410165505717207781021276762708632176513503243490485474902569464440246737028955123960804094914068896382641884228373611136095559398481987465334577060341549247228890314910910319736081749625124500886462825575717467380395599201345926651076579915395120882857237813856951596886369931290538610864663812979491932967776221729159674179228298554142108649890359542851401699825492279427968555984978601813989510669814241012127329992479247877311578901224812335638730812690423350618210245176019818029967228831134280919821760829567289873141998729123217317436036595451515213951575633872875518143737934855139014684091462995109464519577540538844101830577246832922790406024732472783363058933467343595639928058825650225783921651133162590937658812865453824482762995094696021660144784589492330734166452017938442727280611406475770018534575522901708682215472347488004163658794558437896513772437858132108448933496232256868834383182085485081243825031889690546197247592313247780883324196637350285675690598998018587207513189289573122313664330871875640834618495399252778387031843640152977070603317298775376207849193827247375947262385085654373630777421507941409568071220392276899098833017230793512553659197046203514123194689204455252497558078673934919504979417528477679456188155810159371246102316779565408667145710387521663798179424153473662842299482001670306699901508475021508428012796391575217017623916787584011292208716297661304184469928929316003755436352619830006317625967225278208773127332161369864999356406880278639423212122020989969494494441856309418241715146893933765634892551257194187041807808625883887082220966166699123528587352479103654688532137774109864407236073821044414294342857345057813575603604982366387164874748376227830719495487109451170933670555653966113931654931553026554307852341964653004269456436139182697441331812807496420047074191743606382974434123390871014174939621073854782686901349658274424237861205650873293122703835389347605652099073211795616287414861076325946599719361811453395972768573916780882784227363013708266953418687261008936303176800094191411661755179622107477930729314596281748996312008571340553720827453234821479706111409726593840751709885235041927103589393214181057946853058948535867099630748911471666234222053126326516769018483717261939251117480324278559394816434154888528364374586893669643310640119581939062607321117904289431842038894585772495510126493287768169250473407307824467316229329171381517774433129524485096940309824439135930337805030511244364647144953824052304118972803563024992202546080051272712617616351127916373844813890851685884166927762030173364917292656846709127388335970122211473897626804766890873938233328916146953733735147228414154061352726818364421472608576902926978617456487486534321203054994676045895332797118256359624321837216737097523013135796255522049397424627840558662400997736167449029326131755784146395598731408338357190571186747413526282276436153284360522910349791549864005902231480047386613638106109717480755081558389802472699708113963780795196584967102391264065051395807831162358738470068925661356505350983241308073887910101052344303482887524886072325761975106976489536570484413336530625818846658051738628072604476691788321934372229735069537966299272020418700686801932724634631866719390493522491087136220897788214675658546866195541452633888776147025595429960167028010150253318125647467326840588475720658106801072733728398454528178352145472441764941290214633403766177956902564363806941862862425085186247343684875165017232461764388628576719475141442159433467990787843476228174041587454852673456299044088698146645122338939630474162657725912744546558785437815165977028315942920760283033139626962234739914133796123192724888715633820656811056296179947351720087332576319357801637489432998458365987327586832305871202575489237511061803976402099730505956621430368742549667519943190797532098312635904531364382826372797905040617370248076026258422946708680435659312636819833714949737397019643449706685360854388016110594992291539596140692862742812849209251639342487731854524973652792598957271158893923252697521900370476822875548420887772377122229251979766599297668769532735654211630330841830841521606515041453833667228139633315978311962764372457055294502287470084314663253698112010785490023821311343230337086120892222890984460820711985117139539754267256411228990047610936105974132365891105879322956225496999203217627930206755266443318821551692509709500071943406396615572662411402244645244694947409225232949304393132169382543985024160250692899807191267593868776106360972522761268056690557755828668122479352113481379908723556873229359682930882352933155869019454410325508961561941705035210275652403213882687228067646388947875813054111749949947323489127067993622673011643398252021544795314513638407525084244792266262399890263066581114606932602991925382150222618465623380994280390815485404358082096125788650589222014320207876558698348033970187461492716309267215344734942161694118901801654613932396351217762575470180906355228434291681148359147877789435468388259794813468163116989904649024999650151117324232383487924645819712843467926441991245845632186156488682858594519604035501958299830183017311758797413391836959552797023227226068713158933196458038258406882170842173797142460273126511176070452062177924410829960460824572213857447158964044613501728777394958318459568177416339416669079759260637463887141116469820265613990574366333338860961292278354633778448608564361462153917220117268495865565155949075092059753721488783555886158563974986330460841867137489457342112820222596880746812305358700236030134988828059347811480652498580359917807861501185296882808622698943689518725395164597851441591716164124317495194822505478690882845041509023246309139293323556046078982804245548471115854978328841116808938677438103125084384626514454702271667013550403165738527981549781543826337396589796576704742973531106951234510689616028097652200958133109349474989671533248292034756930791279504616507161109581316993456981312139286502855482112446127203930475573964382569736816609360559601654371168479645840288411344512872160861645998074095906929686619825440951933709986080272383110263434480504364095830004815629721931132222100252478433231249809754839495948890903511687679743097196214882573773519180517947458747130976339055730513104991120203740268225555687240866569853344257912082659523156201596420134798800925155456262318635656213843760503012319763443781588557405980140966684541891771832255869034665491193889796153344122312909673222745582067629693775409981895811855912156120911416142615747416305490899185480957885027436152368633256934157242832975519543726279808713280306455874429177821302703603091315138936133507324289896558148774490007309252851757124956886405873540704135721503557007873300630387122679495079746218429908198265909262658739291779825842165600362418829591681223705802584110621003368277989355983102080034949995569694289056768967670412489725284388423217000044769771305961798462287470752098250378668250148622667081962125162431001148047285780707599598956533618036011843934781572643760660127336838756129425808093780416387349930006299860028328095811815170857043957100690868383657758169297914441375196337521553693072956275374372288238608525008057926810076165453093529611995094201473662277758721264726278854279388334822287665659462299438262427278951479520213354042324773374656453279179684973968907621503955118071833443770294391650870414617321429267439413574805945397945333242325683335960149117393402982904527355677825809070427255553100034199339296525542427394309603077330247565450416259496389879726994339782744565666274394986340759612225319099758556289614337337018814349107087047001611472586246671358117551029343658586157666872285849825481678603536997916716645276825685540999917721572826424927948785425436841701869346664632136104497562744844022557294318747739485152830259002248371503987399785173411466737705801445547201632112075486036455827399294936563672540599736039697108838982081177021060547669295289028209807057215331974689337872700053129069330762836234011279379378447633177567468535157485804220523656745601517997706401827542495916171905128815682452555882581222555311825468929933927956009185134837495042664583564721003473005028769472057093494600743025476071805280275793467620887359907914540123816712438278440707354307747350289567567432263963969729718244571877977524371909956930139140988769935314874981343516726856762418158962694960259754686178431245807393534742809940617415076392454112722662831311604259568445742464368451866900934501104580495701419049372188382800305747290503027243670532463914144502958428390988992908028654079424860451585558957805398254637598554648672188363593211911214734153689065387327178700121305586219454404418732900232725535141282126174466021663975539848676041902307678305987016626845365935096823497936418466739128596389787724489223115848849573869036150105848138375465319336392342619394382014094275094886047677403830588725404454207743493220891557417597188735421156695396752673607072399480434174230744615810437851951499637772969677407848960373298750397558092648784122780674064586263568097251975841771512887571629087672677726715540457960707522397673589615203581078893393856470844885077363181752102071704922486142788317425060431141490740222771931749379738538143894130499871183056069819050802827131915790276533259113440812528656139806803247041854509750018074436877870604122495174794348278370894783013293047237564848021228918784725096949969784289875435704877109486291275945509325014541252996785353021173416399530116488122835737983700582509364560870112821619777729536060185058112676281798624097549815796677879520538902243193314932219132983000469473267744005935214136031207474104678605487185106651920218701216142999977137727471937055540206659732165159565022411713845456909657778901002433137536487035224558895275457992376084875897858942108835025204036196575686289722035960546476536064679789018504889758177884978584141911822172383690568222138131227942142045750405589238229524205813012150348547293696359899524302236532821230642013794896763596083893120954935007050735664358266520892976845870721055942053813662241339178952478039965432927658990194409189530737311681749215249622415241285279480509499060368303450951263865321571465436340054446081754099090377210550783001540141798642027762842156152300849005638034309033682651191227095210183928995376323097415540542739800981351216542247450065295900475917659097789384152179150474410996513722391858935287620289514254041201594249925015090559373831465958225374708552634721161434926989071084234468864457847558673841603467750279004215975935322420549508827931855908185670123986427868197421215326232884442375021302193469321713300194647451854111507167010174565545530364763764954898651212992771903939992759778041280716562616226990334623015557631581672782655614881286738847331406346407198690612097068806269835234435617602440977562736958635566308606897778350447912694481305008338922023765970661895334536097414737651318871344629759209787804454767731891913977008388487645884777537714399099873038271233720093717410019603452348899972083033390934191599668869768713231411438603665025773498699595558223084308410346987527527545565184304820262885014136287695704015593335236092741932402834308581281534609856043305237635226523415155827353285061349500055452819758384201366420510096805183400558758582942902366976910420495511492399572065431188082165147923743046313655819613440817521922065335531650882743533594600314584518173510545039013521736640000209134565829591074329813006740848241225794697338622769429785657480828241643008185944474893851229341073372779620868973188707077303115408866987150880403002141268908769773761047939705423847079233562483893074791462273221478863074833836038350037510923634182194937943068165343164717018360547621491253775253670563226821630494158450018058867549520920670087224714870982197638946852917973490370378110431260241411656391213844326222776928110817712284268810456312304808040181572655023409481790870619248340853162949330516991809838000118273002534384248501965732561309010751586215174661543794812433516722413487260698636624421122748810976550878175193192873865373790419007468062630761099245690870303259493215645573370601892716568363477123700182706489211216824740132830538642418747731571310042635093751023334667680554769613808599123685253290971413125255837180044606800313654777092902396833135253292992762393202956552588656555058152987427411978799252484141363582360531664655574286183429061525945812019105844327825538316984277531188045206236241724093401046693418411706519613842306216204772343067152076140821241210098470147806209838091478635642779120378136648131622224986335477905266632199197618550296602553816821473346977567548152676438390404907860634424465709602099440822039685132309722125090515998691969364535120638182763910862336416392559094882190832779174233982943811960733328890553988645863968113164003957096877744837466620213098649391161938708100804111860881494958613123445596432544956610814324266217324710734793296675277264355002492828178007130095932687682858525618670240032777757167639433925556293749912156348054579664041002506408641651574375162380284632021808494023945980862685847958491367144832829779176412606755113294154769062205206721592390795606740784655119462462885606826917344542170171358322178610126677282937997508241310701277444160062623079591275787287296455299899187193229961466872867191056872980055971765350973246952089685718162551779278229986186182006155902814095972371613470804240259979521235279879289913157456601863319887293919485303096587194235550405505468324976142253712271494421749829686646949393552304446439005998551912550300679401943475790207824255454157809659323735461910307677083769111253030333535018711263535582905976234886235620489785767039735412853554389313595393820312780760017684467156008301343839172110240005761428792990548620719205650904335024597092379616995401013010242967085400798195264685121009179231553701990988576300487152053965379371847364229063359131035291409027254977532363825901692298040892146854500855772693034019625836059859532075003745162611025064781655525677554043069534085967168119339138803909905336658368678541241376605764424031829689549220406115332567393499902797160175488926249234681150494683853765134666881885446123857181794234896402815471147688922320041243963267972744046150680242085259090187664720733718948468037793847300873104961294785639693490526401332261957435461320940419272007891822918497544672788262495522323292753953582433783285726182149328159749889067289407042737332204916087098286607238929355846390335971821796844364507934566310862557300809063874183769134541844754729848583149436948782380773625540012155179082887888629529101934333403921423030778321222327380131587521946525914329924941623545434848862308806808935709308973828472878091249573740640619282513713167290574101805963819566351415313612130963102227237148858090917821946751822671614815481547318491152372553735728022625052577775924545364159236202634597366073541483205957925866387249224492338797705629448357906861725251341036875776927359525295841561912864407862529669352644223895114496027799840297725078548553305494183088563798611993217995235885353229351316873103509622613020503066207794943176360812971686501986209952915164130203263572310521542027773991504121724111800912935561945643771046540164989356443625674013323730161811432930201352006723619395395578736853813536472467024633900370379429277025316264938960929340116453905134606512594426445039002404914834548039593926170956650537753785038386219241499141106328886266285649042814725868030347242292177991579910587839120378691318349802875600470542700318049296148509675086342862566664020204014687639400290040569671354431732557185742700562480830509688079779439486288301602184706740821303445755916181358558841399612296211928689484160823486470817841523012591846009033491282369301381743651954335629925714270110141786672175730600128339184995848904759097164358562778799106559443550383409938750089062817284858919766059304339111954898125658963483557576020119911844941918794487529249332638060390166801435184871989587372632120732869153573320762533293399345730697990390548893051332414408889533843302471458507500371342946604890138094370961650373917096526577282332460329580306777432427466138089639036823320217179921967038556549528104751141914107024707009667079474767569954757729310172532141863776299512145462107482944626185984765202071613568425961612329209342991207986669757307953398828236003315528043429519555616810887550550970044941144166560089086623816573657429417850211027184904717581312518485515819607368761821952359294191956953894122657144600835244133126697382571348177492557607087018530824035802204289301666791593434154079468953579715493583765311645169938015058618889376664910842034968258681279474624414959627726086200442848658658125293944511664210232418692909135517930939330700242227310268242299671340977876890334432249023123744504384925651537414859747259987955676905903694457020993006613937338293424925167864377369650086877253553530234565574674849159375919728313578435376981879956766203517087732828559977026556933010884345183671722457580190980062267000251331800107261019695885556863306403070198685293731204142073114658463020970326657336963117797818141522774025426127917336773522218428667364135126495602409962392069766463356217945567653106675808852256412544769779347197644939514564663199651519821036863594096802527771475031254589044529720299069389372422078635874436907849828216597920659988649125374840145541017331460052573476763565206097171412605093737868506068128826161048645446758890113200866392926583725209059399890515646786065676166376438592094271013571089180198409150270355028922832697628199593858426678209257081125548876958069959649405143894835477850573607155731797013132425661045755763039315334821788334508419694828456927036063290037315243457456719401492341586986100212916793864835290379910355569944974712330803963665830385219919463747172995088508081735447455514705529939573566563917286921767138571444389120466831795565113487117257083868525207285678360235168302067773838095461353981612653641064339760272668059703470373660840770470993303536150704230994906835828784635652383812866298826407239527420677246646034393865445754419400550679357685804173843044494133219999936404025522662984352153387733111477383795375515901733069879656554259923020520503978268327740394858859549044300386840866393827051385874545057746035453514659119054030689377473491606702050077371738119254327149618004350615107296702899247456601510066810555182677582331077945118625957830554126504586869862987709867416625405671186801441728774098493771711767417339225169536025734060864741219191568806817698121792362807909170476709840906535451554741560135749472445006672178129618151907763934036736423158724908499135397168385796012606109929043494787297942654794118405789010149336517820841777491441408781715067354371987770550329995952583587158021940472360834758229223299362395471874092238999624391247520816835508336164623952748069339458357818409189525511300403798146393220617960613619919851776409399944714911856101990238402376505534038716281415216071137222776929678936166326546732462270652367562173926342112636163856224634318241414930126474862560994988710853315186666959163844130445327423869989566628623038456100718154986305161686595688487491648830691391407834822131784068469581711913826031430030634929011939986055604185452671575524423491377422643958048746768202451008948422754109237862313269776104775049563132275928550431585459411120205109407233219729654917422822247404962130798118885818837538813102885778796315259003431956035491570610488617452966040317558256276033147877872800008711079753077563753146679225105547023507054327987348857816586896449272303211607244896136081536833046188562129338966957859674653708168631541611938292140855023312908574112005863116127939162583265553305096275148909328097878766313166605637536219162111397130053685574326381981847641539212833470961144346369437807828777130629513645238507567323464126365752928433895661138640986034766794956219316384765755565812934429690487653945617281631308687752408349512599479075387596525539727560590131640496944797119564559757299259416416511801565592873292388603838822152459384359364930838734098457551778493306674076270504349201636538438509151851786792469003868683292047334590879593698857609523871088033635050660220203254419146117071787685304852225332047200944137549957957033309961304362973805240500993998432295578156686355371354856763209979545200849222211061489188514632774757155436886479831784095557312533533405528806595643720126658010499485790692506244744541576457392981625781479481261710803752061749890216510966742314025944580933846974074618953616003535038438893828354639668516828097334818854480411012579006854063942348172245928205305468655390638457673529731183837778728589092899707015420679231949574918891334215770513130383068441599486796973457174590610898029886193835597752903753690817707040050063244164418692168727708560432261997533996570415476789808744267222400155035934514292969127615378673470263641779427645970904580373795616882316464744039023284787382618016169576285954179500138658378764700021372194477378096001615729087713579028728614510560191697256652134854873821818039685805867465517819109263349969253780178046863618612478328574811884264050157990535370561987778730723739951330411091240999647063856559272280849350401685652684779405775738692068059953665000194851547912777383837872245221165596174079624834231884858899523516420625630088199964056858884952961978386450973262106144990222850402080996433619394068431329232965780009119396516205788112285226531826861912656790042087135826709641619941722247688444319949045222129003284307969275797639117270578055320986264113028753478501725927115447145920405749153598552754671071193802337069687349201460918124287265284611070386225337570566453105165102234816352768826057438839481198655866083515519476998026546823776283074687578910952178507428414749871411822071166158911541748087437267420296068493503603140272590323589367691777277216388932132961095454654224375888577386458341150758657064797574345051667352658256185764623266586948785542041543305499131280654919176786035529581628163394875195282488385807605867052886717077950365627007106149260287490226144832239456421971366281510969888439412958311204615282581535460010046608517852677818763181249959411694720922923716136705666390056731880520444988531801289570772153864531635115170108582360998964848549264232980914096978467963717346700534989389209122464502314945324913138863447716517220473675692108436619441166912700045160475482426988897519410297819900299842147906815810666513347015793277942440652602130911188106161143952831543282453477859214572693305941235480674648805927908302717224856352499180871890276613798773623383737634628823717257771941275058459445105245393187426585493467006030645432932468973312431071557449728172143204369290951969004419266086517834690501500453765808516521797589088848803804078069030605563075058685271750743035385421148339329519137450643950180887676985807051756090236276194884577888898595356895619622320514548496161430063973533535235163810706241338581589195175933887328196228938420876455764146398127625258214391683495184270020874741771948848840242389393730741991110004287822849940532834394931044172342834785523769658855064448309089174070295611731844805926150507325407854075953241937171037499329441823027387519215384382787027468613608535422435255694911667072407045455370132869041665767956711300853586287582029035950013770294776136087785829104851801425409955399496900043134923200087236350294914818916199143256001347504758480125681550212427546001235188194095652899110111398994362198553597533089000112167354779888308925386869943627655582093268414936482261125453105300789150413002184441513028422666269437546303145257197810633964078268228752849748758767733187766972522104514763995151868504504982238200690193051997459340428393716542301907567351138586569735797716225667042184078340329893744075717980697928000317642140332032804731905618719827466554310081207642952929516362705404697934525965375085747501604538797911440068471932375769297130678606199145729459610823989960736249712340836657518336069258045295883531444566212174663382441153894919091362101499241621364709202752521730620877744185508202659666659263048175918192285815948257362421505520802855970068430812827600249012734385429536074913872076500621820392049051366748159893493107389691162771750666952696193590405439783456364211531932357618825854282653609258848316947080128494681691142808830445310407916210682142904798297896273355961822236853574518753191521670652596469578705158589224150891031781209497705260291906925047979806018352087728373373658586040425553187966686794555489365770373348877680581474977689003348277930673215985295634843207409731631283802701654160785633095317634533593727143757216016392789582093743299178633227131144746217387941014928176435745529469409356240112531453614246333886148444979104803187545391457600723509354514281910555474725848179960326236945142395938554512014869666313235214400662913231740877920670508003828358749660367441436275288755750796582813458925660964100440298099324914555254609162066928028707232367193154803690142070105486783233533757064699373343393906689196702325983602356702577402389385131343046699898390044322517280054723436033714161778247106214690190259737759322587595956756957229447481172641435685727684949164686212236890171824954241297432485570087411400096522443304122081716584544612746386156501046850221067868817773563734658483053305855272281619668505681013114141797107662184433477233732498267718059866528562851168059257155484149628714933442298320742774534395436597501869419446600022015178040773240884095488638729564037116893692001699310212277607745246873805980584007769646238216439537657144989731112242965629365725174533921346668647499351085750066634092703108229562121938782189027414409071870736688772154278961861395357147376815938134919127356946916344233536166960709063053510261743952157134441801599078153742082346220562266117727276295062419594246387677555290007909213675099796075632756002533434518604095951502973771267080184978196926121122070974699659270069545635890346601821105773620441912674669441888936004904050834674467300225819128159387145739625908439179165787153070500290998815630678028758849541930894687521040633910019488036982276407856980529004050463762389611117379065579622622021852587465886143222510536009573857753180549675683317112554245084701263853188045752828783988736255467992949457786981897945093729731451320305085231519115898510176380098639437645880059480836622599138581412063702647284727584083527994454481366946696337271108128741661623175020458926810388908084902071939379187862066124175742105007176604369379154192032144323925280607535987393377047105500001095782659760544998521979849195293635276184099955425087960994379179858201731098242494379771034134279410602908617348028296956156173722259263799915795046738154322219997490120522651250708074482535755071871427757110403307232321252845210931971089621430875311397163510443561353880782651500140864837852314021516367939140221586287550113670346002043240398646223874393406726740269134394247616180246463026309429939612065980487281122992276779718165686322519716789843326792239381670870008124786842276999056521858510608936812477934549150472498137289141030139368587891890012687646082854441631103650659704039924475465572554417486554370356901121358515710586862017678294139017964878180174216222254255865546632805274914626044860231378853095031262424923699541248420484019684381215317034307428112597545541995284232976339370622558198745460968489163260415377690132454465945005662800983162400981520593269571630419523446577990560715450866064906373537086468077192412323144378681702640950614558094168985819500025993729554315711038632813273481633917882399766795134890671239135034761418402452977681844224095256173692070295687470062451629469122604164893867579790774572990529509893309519193058345135361602065666122312601757608581745019263708669419094830471052326116950828303369798632281304338919334027525716301464864685169909776235008176210728848919531560165156908695102792430260280804562933198295501448755507549606717260080706606083431553377448269447759642398360870023828592345346523125372738147049142116580524684270804526352176253815941407769933907638191799050984983067764253582890426435895583056661807298076809492929828171867887977366130573729680594230829726677829420406796569417200685036642515229704081790682603473412685696545078155698996728336526267279134083841272947051819271934619047597202364207623035584317561733509334155542560434012639399028242887707906692770744868240368619426206463449182982953571827974249766729997148566765066243950817433271324917662085202948066994525178242463883094255605387119361168430828666115261365771887020851425388173685929086606010604536863241458133805056200659201628086547461081349069835381186781531338632147626862004925030583910256654349281392607352871855577164840858144250704241704530702827782957544059505133718553934405299196386833429953599347765845534048948299501258255103085141615438306245337982218044637521976071549960785404583234187844741655104728895344741605664586735196527694150001924598254347888901768680547038127661805594526343591723704954077621765623417230182328264612811965364752921046075466056934112927121519862186748841948685365949185050316476030723653856041276291722043355169706882354971996491393934171556351729128422166799052779779360207216787629278601871710274896964963070561213439017629134417407761792255713805154724002934612676771037657591616400161414182804703913033847064199071051664825837661637522231649301509050056588873103149289218666664348148729492009011590375651783354326075232969707613993470560699678597145960759054823376864622605775939852341464141059449930625169323794968828646963658396220936384405872276088003443790419926134002645335664259099159349639556980116273444733562918880276132458008748788959002588479686455358677840004915869445246440027753058667093224978522454269082417442935979368690498820447183302713010597062846072707264371519440912900545210681451540142743536746661753432361709488657641985241806088480006624989197797108203944818186179697497871960517887342516432352305035493444218155097460003407332227318991322925129965557164526023567145459442570697892472606570128375825814169995811344324021345118768383406248974556504606939023733031782039181422290588127294173153969120514505379355553972472568052708442286973666811926917842577830418542614953463614441732633984455181055157783211759868016756503330786831256220535434038354392928730175665495288525662414262951934694971628772772528729171043538206566465583548881037534671645204018835351538482158285807521182728750093659602110683967618908393451757739257176014114242535557594808619384052657642997179117562141373963103770277174694616888153352660351745090628790494689702613661091757116789951513942644770529267067469248542442812084146474380332745593982057709084593332198117163058109157030366879083921440424742013403842017325925713764187044053914040079878758020062131859609500793445973329580756691037895389849464214581194249202074630816437996884177154896940997495551732558546716045644601434759264106241601749806243627106368744967860489740526697827200055909618726066278183737758944534786947879257464475346260301084808622878939063341313424857624034333970390850084162734956684177781285407556375261446450248173732443521759803022106191849649456994329601154922730693272519904408847940208696633421612625558564568972206028667383977374815393438020794106859820530258002735834181529206396649245979731537842947892620489404903219455189982781438157039216160041570880224257998441866172287102920747582671441138358542954911944867279661412037373078200246343941349267543255387376786470235938439451561617775355703366952002532371655695619628241936923619155197901300438177874260476049901176405982686856438120725059259187106557096565333801854021691551560217610769389958206977304440679931933567293951784079818265750682520605766753580292722045142635093882219324876768434346872634275420935031418720445339757180041268604435994503125248133427864157526648649947084532599283940989960107392736880561193093231747896536281910383792038424030764278235445632638421709788334293366551727428613627870870508965741940502148946165998483455767427004898490730875049144127352345853513543337940481716471621494052943986816254242635205285886197149353801501748784675566048436865199004481081820423032947311793186189289727832552660878350595505446137421533461815097210006159662927947400932506126746354781371568036773249315979203232674402832383035358176964390217746847511448174655245179820445059226446739904582342129650378519380990191793641783420282905299983526829052221040395008419780098609091187437428053888773068052562547002777682389438714314593560695426034960861584950770452784768131546606517976146514211493617848201893579919221708887201616194870052693432534992962244373998329436838300540382680597856566024127324004901527186898921319828843648231983181813364373073106339141256472794191661041963948418287947851662947593150356847035412468513943340661735647130141435341214075796846951831097274921313276785176327680088370798240964184294212444880054609842153598619281623639216703015906661228807820312379517551661081609456835505645170796349281459431566696080728689246034315542314781458769595580674948777675601444097852951736578686981293267582163893906273818592084089754388311705909476382671744445008163171936439802893109702686587397601345235778656427224945920107372938407709499169953663118585395466816844995721211462604969163833116849882450667154536042907624671040604017111435037470097592467144836771510101293969125761171884213251293768356516707290060870206197718005962651287634274411572578100897045923640937258735629572947292248945357806545807866196574761105337626429265270499007074521070227101537586236008615316685625341164951040352689452695424431042698613565795083367937700618475010102278924796724783583840650470814583702915583470498977690599275944024915309629906462052338863097048636419118597352229209149437154849149769929925193242607886732221593143626910784610337567154979264244360978215176614103586929174278708568765216718288401513159291164222138084217329697147447738088886267300755003095588266920241069844739546753682548364985798653712533318775425742171162352863011992109801648579714354070542767904862982288321765528922399427076782734336052133315121178061381070811650485068587018435776377382531107515097324492661227554039017513873486879407052898486253147401008920993345753625234990827564650749668697048265370021252112930812055821783045398571440464528568172390287620568927932831246238293612644568514551322910815127125503022442130122780063856009861221018163994754105526493990858664330531928885531874063827704233943098331966672953298170229684898222468418819427703568324311235124927977766192963644555280241260498425864613074727679404921224316633077425725355822232442435146932132460516173203871620231199704552994458515188992564103016220357990119364596386051354234659845853149392206844355337103461337869079326644149368399636096362994441483851683240063874994581361415223829631778234067750490487179815348650284837254162216983729199824574416058800542409041692732644627036999689958295126943767065456612143507470655830685509704764742114326309244292174883629831795280281656609245678839929085160595960158554102641845460004625918942402921217139360333422171959489550174509888692920367647424108464445508161538120842382094514777632977936748983863359023103644801498527009172384545109359663343985035587138622917400201553342535617268097387938703360263804017783176976406413673477673330471499737953928795766180677697640222621169968879397509251438043890514652966153153235237060340475167151045607258938385369539908352445743171103019273149497728350946785062398142572405393124987419685876710482527505608837843570712374106073654987465610096151897843306328089559340933846848527553024882090974745805860058242946578041046414286602189514915523713092686157622178333231437766474813058539995975982202656738532674581128118132888422293328143038233088980026639240631657218086525809460742432033608095486683908997070225749805996418860141602795340360180550329484619271049183842727179643772712853198483205830643892340263520815090583768267288070842047428448066325605608337287924732048947247583810613499507713241431512829716265406519688011880467952732389259929416018470760923039122853154454075295082136221654086248519558606882197242072260635594168125336857855491345332396926457223353089466585883458627970293144989158697308895005279436170961610960951271723766192639044533970868106054571748727250540634204698924020080944493724287089229545545838354993616176632286346693809358803483759079943367474921224842799647966746109253169016656684641566759058758643574594005201368777141895132002085770378624522138166548866950850328507162090895003398350888666362781536009927612098610280940054033831886715177372599178664343448470977802938049487526338583959696652495138727259528604578483673560489562285795531011783321331356456043982638063204207996420733254166938914908114015477758632741039281762407816860379390516928337472113262389244561716215200189702085496335006865606442826729706053370977865317876087299358357469115812891002503581968116528338720907708995891457212031167176417377478860557048497056689736464393237037133812530679748556491920091419703600765900616889459404710901410590311957793763794168340786618189680097047558364527713629137361585975063968253586249066087475881309516581077991170790585694691955187342872861515162747289351019722325175181419002258316292537213983121191780522304666156167388024265304837840753307502203242313000890558147478194300172078941903625130383134620949224157866595738613360830931839447330493752903851641831895395442684764661179406468933127623964150173635791846629522561664939749062039991048282739880819909476495601227376482250676240688429207615985269551796268914090657376499504489667901073847329364787966884602613456836983940714721765832188811894794931487248331358790611358083415179283245093913075048161705372524339918399312655682722835506712229765422392406463778593471989032068060721253102519916735555153399956199112005171202198224979251071022223194574875875849709679844301614522086087248404840585800997564200574874729978674498535813294749301684129966277161140808453825237551259385286295455432747510735595849122485600335770614642777337866980986428858042705151962632816182815127120947256087217416942823592071071140109035924272534320768066700128333184227159670568576958523398476296204859649571484635691991755426013605304537873733659362051003291871879430840716651019244764538485205930046175934818889574195945768628531846835382694452947705782667721675131315123599367241524653564815970064304075753327308503994039914294545804767887861835514043630920523520653592805486515649763304190668381861479839246848337315315079367702879940361529779865626713476151180405780118620217021661470361405250367146231691178905183491240585438345999160249158942033515430729779533715493371047169292243717420107023330890679191572970648537130896690142372511505011550707710406836584064940067828750709560716852593444790277671149845441664547820356219938704350120020418353730167254592773216868594162854209247253590525025760286600354863534833835396318134091735570721520934902168763422313935822067005534666872804683850794380691431651831211968522934904358696074495803929729255608941674433330882979431680159822132957777548389953417940528046317505125090016510516528583020523393276147561288427743858096084795769687017247347365765470240025131009804001428973162872055695216892016788432905139477324431011286806522350072935774477983089481656281974720367002182653120422401082483921234173249092324086060640866044951338317793065412011674600658985485629213860334980523831547241139556680144081314885056655577846476509326821357964810330802813975329279168778074712774712568500259122849329438990969564252855776212291767542328644844326639342070883689151473094143461163205229094953711203291646947285318691654106753010850170751845922548904253480918005761233456186545717188198428123621801908276695156626648165426395419900211126471069134796343305842853102607782311197433990640008966990240078384130668021035642396773905798973295906655921667760845739615265212742786905202233106788155507097438198559966080427277492514857490783412720216409538864969647908965692826898907461647562016690176250978698235251443690100275366917991020432187016048800610973194756057884791187775875238475466187772245666017005247026503681500833664058648400106981608426515415820415028345626985149535329623114777912221591045496968089826716037286284120635516959383440558707210059159320343198574721617956614950623636233725020258408752803875612222638049189729798254516799046569064962884797148829945998412927106695421019645895734812214530594132108791980512244278370091483926879216426592744607548936015255029939728045094493704701202215881000813355996464052211941434387842621480166443389830495548665621739623449361609300451404268166525538639124553749159512983038230264418318290073653769381644278276678911777609686418644386904129614825070371866426985587962296202942567218695427469719198372828393606454004506547891485854659414451331090720586863775575074703784820611478670734697927197899260171395794985728888267398508188067272324272295606474306582250118732244003943245226280163646299628081243953708903197539576281660631202211139736848631662198591113597657249996990211542700345984203383637889442653166376543061925876474660997539823354838419734920891989676989599094905072920461978848930154278624483281139218306602246328469598340819490639531214418222644759684375664893345988118464058454226192743974398171351745604867974163269102270533428071762409997825804189942854111115319403078553659800649555923009731919469884989729339368588223624856775319230364594453388112662511133967643583731869937827413228947903636353706780076657521508612400685895765891463419072443951578785721272244976330238626425869665994418611657733610003831260080824844616949351846350973703360923683574884708172049897759884201275024350056556675357766189669992149244313930842853754026523515454881505181700743969555685879718356829180425957781754240369300363983066302157696395238665424285950267077982265205308455733110397353293826669434647581416615735221257037223735004573022066138899119862250690570014689433802799831261925474260182137774664353383054220973689709233407389739821733110560216450853216973342729661724718872247944706825138621123971654632696309771557351557491222455508528877297185989485275051719933644664479978957671530937391202012511747741273236368848824221514138986041202881359307716968542857689218817227682398967103642275147667478524684587397606226441489899669574020103098739783807340158511543872743642238655224116364931979193365572257470839453983942222657694481240221313089084396288736795192037476669550013707091935384193819059946080148947668044763011617798883966182259692101985606076228581791620820065018598225514181195476629630342379465487712123465737168009159721926517742344672762974247736806197397234782188738699375452258000129028922200199252961037149149858244913195481104072948495378735116658147241158303886288408387745572398579438782703610305521320491752162937096929576605011635533146395761406828048116160067492510864389086590309780416617421928712839932138974491705519713177550813795233119814952521581413322181930762588164075800152642274707025481018882173612909019584878605224946892841096239305359644038911901135766211229814364609279085362418759812473608328101778088699853745071199901782793202475036685408695276929783562594069180350507940822074864094687738703072350497790098245764667966179441075684696631071289248117796535818762484485853440519661117181322087563395466002017718368618849083740698232770711846598500965175770602915379238941945500148468757230746716613599048694224243678083652255849780406576313099384638791790728298234394445646383900697559176352235953887502634589854674073183677193798895266326306257256953139425909204766040265039237949097194777970684978825540623338991913852565738642930686494639366159861768486070770869585440700576852837081579609436963914458763961136837945786395102550246493615706165098596647551423901675826837241625782914176970670355952617349047702110123493583939475943151911839604428302071989435492682740376539067458658626103475875722633785695622308908965929452073731756587763331280094225141257367805205707348588398234146879455328492273336570377227145846854510260548502997218689544450023711851523651701419143796681693095729706957867327676764591537119050472386527746459483149514984978626171895817636912281055047692670147310821019458560234282684106693652851078972312401710122011192366836397594739823672503958279107714013618497730717369470391751385550016399408691690636520634650946084241553307135396312476244680372153480013380741085089922039849164101239941269108492435384018590805345575424489258949183975148730893696577773995671691079187943540714628879713245777658606048449842392323754035231172117977846962339425381169449782438869720021504765065753389769063779294057931190305408932036689039999213299162430205757575729634197813015252526621722210917307800164048419313513685268547062539936357239221568769711835218980304307190383590911128196162501862292097594402959420032685222076930972407127697498339807498503486561071788043896654402373701057514883923930186879593528132141998619030478474824943584805309780451601071157964687749365378062716062978154748026206016105604505109156394902591929675819002248593960334058052088116584417474455352701550551500278291776246863427268632922337968456823489413726498377059383913792063398465855765511373119307500959487443018601984922681887072114529142376813281999005937590719966936560966577820604766802626215229641184043057624729538997212500134471362900230703162605764911167476031185022131347917264547252221700775742731969644467448719056007717989514808150762839235794871486769818689243800766763085373822596394676449875072879971546217997372803732403907828043530667188333179403236036177975516305536014793916457833183190752010464642326483910446511528753025122338466613467822302566667660714210770637775425155766169399241638004795352930181239535860959861778733463039622318130404473618222688574003855127673980176011438157266744175504440457528177835292857712110278099088283977361336987614763454259089153302254644285087296950697520924719704239506766382369786221096438446639345426536084307383030676865968046031913127102942946344413655023647063805593599169563231044615760804284768419402708840865466710605680550301610003657516311477156162487619855006841328185059794367959894381487279825172283710019598257926602555659037060590301733748445285208365549750365927156082888961117044355408372683512275460977220781609525256903432258793268429557333300095087160145785596978101528488133302115544986540147610663973570891646554452583142115136106063099198772937708405877671382463392992828944253769914625039588195213659082208578142282635882394491349539818861751919346712485134483611656592581987258004296598159762750373035686165425839747528178445906931695221400731262941951578539524432744576583319806192057581870337602521785726670480873769283184913770139326699861556774214627107245523570990483137959393198566246187335623864785249374448123420920048221130862976760669781191672925061233049142466603680836903115787719019876033694705550776414729905190228291183650421441583506635802735308230443349624216562873344631105479376955324790441047911979919147449833509074309630463057693274285904525192908630766490717211561586955531621308591170594864073876777937375262999776666328649726734531774337299723035474021623416664794756616040481059601674550128558601708734600299753061972998889454711983515793625110122092762580859561841771171951464996474529087675926523451821226607460791607515335751318296702972244727030309743544475108777468552959481605831988524431984203079243378922621234920557720553567816114404928025866496153185806230447325790282409928250783110969456562038698140777598908510830845025344613066141583062646276419770414778888125145701580807799878437702338955002784694607683960521363534366290473812415324361001008421980359711912874021065895903066310608538761769360983267775093179101932027748722369213467467125796930579485075480585166794776578156261084058415961432157915078339817418054233499752215017414049126392700304614190773332039786408507007069686278903983413314174195638869332559764981599048320846636236682631091283544235559593223821480141683377981145236671008595680749186588153312799758562320521380403553294786227855601394226085377726850356275253954544504403396386971017450837635281246033974271598319800836240608979678668769884245903031276649154811911307467358688018731128936884670990408618533986553844878551264797571008148643693232866485809950559447986231687419783406176921136140239341356479861234373911265937371739599263929726066185509513821964109726854655792898171511335354947711624745526891781653888747254777085760766834053029424369941228572507417007999190988676356310589698510606813794584492848991935687514669303382213615649878515942863076297754859279662447519439094196829457917360223970719444161730385477710613326171546828119895697308132271925844255735001044264311435544187064272049561966093294854076312563345407985372007991225635921599959192313219039348457871619050171264607002461082888327902983786908089994830845885787603666563377983930903980667657101125502443703349890583999916094038650754719138304711075830347345694780328690380767561030299350863952298272697281730993302670184632555487632039695751172246832374445686842257264299961971361561033426997928293275547309261766813601065573802478430356756946339349570310624062554262475452398411063402544216429123452348522482165290719190767680619029449008174811520814852042319972897474567770335774069362646429786287794846676251962309684499009219740615608507462126339691671121253059500543629712917019206864471308003641218676035753934932050289895182577959345108740488155010930758238558753614133930974795062690028419003420994613165139074716131212311512126105190425627080812121878059142527254702322322267396997890173542969258885986827320539396125665884857294754862615642530627302418058322413130735057390780110557585239375594222363175154284786377747284561368185612674805183763660515133249314337441683723347056472494482747418654735225958210901166006559861293960957482978720563765792657279352682793413898098172634968885791334426484152565047507260876210237983272388781223907015249985392970011370903675017138338227311649148953440557847594014522274266404263145541984714098795357869034538660924018092139403294803134511466275810554860165969118059070021862765865182371654080600224741859579501543095188579021166076740709951739355620740812035511238742935226401597819125280855280223331358210885265498538934233268945410795901331724173403641893067055365522822542361953434579119215354550730780420879880948961098346454223899879817577393087349940252134478967445265549291175856558642002424913407356154223998438208637005546971462771946585012222081860520362562014551026344778710447267498066625378909108037481469446207718200294689853153930551676391131057782135272581915923747932812883503316494661708599342773048744211006884427117021768765546119295130235007608998114786813248883944115228783136447807490992117030296654109338151342604243292889759811861630795042854068040291055482434462598156539262673321606409869639199685730084908294329048786696348872827772938591069840199959478440613767348311622720603115879789472287767798826746845709192180380034635717298091538390153628526211512851549037020556837977869171481843711199134904325344179172288162730058150224809415071172180994759047435901269220673684315029532218091804541418104726845856531983508196482382826256682056479789261757619303381196881964753227228690732770725642627473564795340526799575275824862644578395792488795094356304650284548368865473034301340170151245620197415553856528915218031062377237076029234915848791509763008987815471084206585099819040727629848552767827619425696002286514062692621183159193733677278355603240261425771091996474439567704859465116432092753322046091970935475416230568702816525435724096040681001975149053387888947812312531881324229725561514946643190489862990140104842774058342509586049186703682861217906906585845621316321430199534759706259893969079849227278533512973720981803317393108696744372473313402927017512729621662625180682921363873590615620672964893315816835202209712329176214364752682966502977570160102006268962546095632021606492343630406518868718303467839486552535177847083364719333234022092182412569507174468544638390194162706882810194697653651229701423080652845742553070093611518030836421783803442399347444924060137180817886253194404547028919928479541375934097470134531274394967446596229453882062412522127641267988238351353396482692066270945711400080556400118288486636731544970382846483131925979739376540222164783477701230779345478943256157577017022996673154964664825683978722916500837066872734352423913876427252429807498051148756499846830575895293083466861490838906815910851435616583803964822023479776442399080545518164889533437214423046955624326473259891459534659850256804417819085229872325165400663620785450151457707426744267867510281667461545244325879752426925395296930354053536120153226430738388195982981356727823797178557613016887549434123078407689783726714705987092309326751907452411050452503189570534351024436667922762489918551782661224884093212245312211299083736398038144629473069989191875367665329071305031950746723902252055698935554008340174145738520561473117481793512634628644978938989114523913885623453851860658679158175090047001065634026708628981440859478983979012685929883016350613998004403806739291905506883940849723094451995372155522136156563214448878449141277761246735014634218518522847280073771130678322721832444220338197063020578255567809517111104314914247755641484676019707525763782644837665404889791366122507940034809715060659869211729470975848655534810519196532955006972351932973820164995115459478161421086555888312495308137933314167677153799972663164533179978243951204148949970856737773074590588616605203813670123114588546893890947758135185576378274870430067997213937590198925992955516776153312352886361370012080905242698301616832034445654987459030698960034187174220598306957268094028922447978570376103212271601540756313531491621515640881884416059406381919684662922266025534858819287889410169295385709966924013503718147639180391606979708054393759803161985983238802230094428107984219712936000993770726608323866672571100916106195583421655070622059124718916311528466572845695797316338986390994613113268065588679508982927615941632670848268123282896662710288448135451063538126629805483566024708819575543235870517994947687963310798709725296518712046725497887243649643642250523122953243188603748066232044808623462184605819203381491306038530774377286055437494250471202308482662498958027155517980319232549262229399249952129965197159860265052858446849739244216672375105601058023620761845111361482828068093159315097466133963382680952775226790313923334681005344420278647027664737091642848497648129740781318636009883918988170989641192840984104408148111123434597731192211487617502685310085102838573809591522628455845238566778978635990735175106939699600427770539217844331474641749997158500487271876584441625623292828314207724206176857644244958845603448098199824493131607113400426443498648711904175667018203804454438492888889061925176911970620427258219138279838786298851268832374256419400411891905199027626845317302431871659102718779589410077826241229067404130032373873961330497399513979795701186351902192650980775009947344532220664181015446035851768574773212977520545836352666751198564150788891497303906060121591427370103004291218342562670251109973094969550156522705856900643150634421822260605738906758906931889489057909361310018564366091859599280641470025627447876248063745330054987332891463336810838827335154511733737344828869835466360390405694760682471969137693180136117046658323125137528908983889186727706112402234589116835808774046113857636415596006766673732140092906377529944823585297635582544046485401802226683412705635688040757754244554223470914582926130254902221672551254060442152604436409627183710523917018214876260242769717560835989141074392100289540886471901433926680641713137391515697888055935710225743134666375461289281812623129234465321616855937635051389182631549903226369653520363167679974030659977331625309489506496682012257968049307682821975635866878320113260225832858562370833157912739467536469558127945534189417992557412467702489460866609361879397647679264566948951725525359810308650041884987997962455778121383901313503069826201900933415367428716297455108694489247202988405995422695926616114370035439924519071202295076598029974092189028482396073554730468279946037425758196520351921356252896254446035815117081172031591468138595892785468179510644266008162324927509785727618331836751317346214744839805437216547904217029724414057053384257786717646401315338289770887454946067215197193586473498493319841961945816424920391149702744458287150796695334726295135262473997460941276053921816291376696946484685522603599905302782569483551617851704669733704315826596586003630464314283470046775260343720357826165527156342280927447103104223745817170597537378733651810226666994687009960510789957883298993108057758474611996533719805930054229760777647258735754849410414673155441332947005058623554347871316490788541249930060693029743943129058318256298020547382083786069301605396310569057061409152661330455286991016613020102976773835667734391181413805880156919926556228250038351350709673842275017312692989415532152000662756229365719228745975488329209234175906041041991118394358016048948571308725088259641046172504471092334506478437052928938288226400506776114998291810039397755754279935779360535678588984414717782217940954079125437679407517445739040354435695206654069797991780401079695876218360028080119227331491071753262211414415097545358731828711951899169115114686782380463375258423979851228062412513416344527006478944069947338963554464622418378336980656230223212442641960092356803719980924990867524134758789634022787706908331493991902955855564344378993553785908131415064988687841988706360712272687934787138470133366332540702637741615604840363453382301401336653977948046842282956394232899417174614472434335091462721125084515173131207250445166595739853721133088551466888652380236289380444369337768030916577055833146750429569504785600203895268834655731752467107104527519290935899957539703505170669546183906568644276428959054321104707232106967403594693618702488225994621004043773741795300918928876199399452395026657195620830479636457169506541644110620820178524323851097214084027076388709121503588769280148047398645165835421294147025534928656992183606311528060101814681424498793081353687837954208431621467169282460764847938316410440873974855202541468511232849929179899187071838988467869391677449431071741715208498127901572044097183340967064716777487416466470905294691597760004222648804700708010099599369168940150199613302326601779011143446152056453345018956162677879307773408800221093864914651010726358623735774499211767054314675163477018245979467741881250978420946044472820707645900639514429887109941081244117834862103824562959333498468949343748220112120985908551479955346714317220487100183419684508342173626547908592979161505689946908742423587038579495832488090267483604339972236463324929148186949909536409264615585759852442384288127171585083894297170809666278630313990521643385782841555115923199580968767239682596083059385958230231290486977777657578523008765578167877838742205173017366255212756372603472909701418284695025493497445314944058967339006272296335350272423518289419826128688683272943153856430628837505040351224960265621298223853109183672085697024801198485496371565630302523928734172028281182200717875276264055952862300337046615491370027248176102200893392353811954007246495184913023673358714337909518574308878267730288807244719772678895129173169801444691617322074503961181076328324257516649150005442254831288163708543592358541393170604683952558826827673379688198705871593248343157862146614305292200650651636429091494308260874891958788082457862119267312161583812570718954200296836316665511733712873052284343522420987863868603734110044510064699490010169022605792200128989723648983260638628594338683548733949942602169627583233404717231030416302922322201979517040804490804659963875036367466191646188555779833469024679911475017093521914163848057727400279384071325350690588352917699134325569239493074618844292899201838583162087889086792863316621158454999325818879113234642668534785287711638648320269545537632124951794589871017286025163262282167055727547194159648383227376436038229738365636046329528973860594982551626037490566226560877893638245162190412873527271034519808488471632572981262690417245577196272690275230753563641858801184574855119895983385254410096981789034931769616578128432517160712874882892414851633669753792260214956727627746006464855033725224357510166658646514727844931789347725545769897211852909834909371011451869592446273176503982151277015039180757891300300807542417357543266675392116555345441010157836238848310185870358626870379770776114506170270262998528666190833303174500187925899066550641808740778834641881656749621108695252613306124043235719752709581075167580819401493397801062943021884851268867280370133405087429273162614562838793409442937807968099578138513967034316928531304177107138031309026097923123793143762746502154449307156893622783179426322398190759369885036518018866693647424646995874464398131613277959889957707446006188385673600644847117362216964839998267654551228880077105978388048179193490474979540645503842823018104577188263575810685985493907045464001614114354515691834143950780418425398849217606292358196704468325836760896336879727468875863376828123555813654887190615104775732399440586765917786829399329857225402375334887496418407226838231738786102437209600474073694902831520610541098783421182491767945136641150759263609383415892133606412158411753825911845910112417557614490735466000163431446517823903493781684474641444396990161167359730384710972112125792890921444964944412627374155080859708530205335631570499820364494027283809550351650772704469067552362035978570205957568519856189059059250536677666159373570456037094597003121682854616606094702427425497015049570893639119916103752730867214675892769847554713214766374397353848885602643860262201442665411607539163220728723334823511727416346079029790720908536085390603706837328507302928166287965241239064656427452880084099039429473720015097018986750040562469171691571980629301586864352988320797626496566050246711282570137871848208458049370776828591229797704679928983702671041949860284138519269910874165300073352383347375980398752430413037398090707716164818487608318582143554274865498313954230905669847884742958686660400956135923414249797035016132386163250869959447243665484124934903129063352709330329470123094906730987629622535535490098542093841981739191910758198380789666418625655745698443704385586547075866695788094777753121218641923751053889711043876595024476095151485685220808458152949017765188897263488496144652324712041360368576705775544562414459880579093561415519376405983612714133139104307653178325336733933150944396550627034274509541304230974520029987637062753518333161525298337197291481515281167736657637213646448830084110157569319855738923205097113184594704784062475627704630756106086551456278581356530535979428682020914739676441103538812895154825732498588683313662724787695422126341336300797894626660280626598607521523946313311214960665563943655902191073307241405596343621870035648608701003015258604919527325373334997033420577569652350256186737555670507689536183270265694167494569584954830138674416871016058818018586336714696631607181249565126898339916515385697325586352270436474874714990655506773839688784109701858257328562861693704270359523022355655141114302017263566792869438550673121047225750160855278890964436013449184557628258844100686570191995080513597241820044522798489095157792507193440599679708287579108737685992766283188365208502743721469638642953871568271932458015134883647910151623295450819884855152938855151770255729318831895690839584411802029462323282126845601668173847292169931128217610022677786622491838155921631714827758377711005533047536856956007903400496857995321589067989110438945121661120930520644026758469866078030839065002739115890101987592929062262126546497527372772656114900617821168061014345995518043473743063651265440533979522597101221191164836265505363176591718757308671419979066585335562211308508312262498768194457724919738995434833598649543808085245734301700050720511845004399323645195245187034097880895732616233749932510124831062055615402866494150038243602283984151391927846541113338784058554929970181692131365544369101281556164960749332380960998872431077285431208243439298206662996875522216871415692229863098279071370370859589201259234486824484023339432181524462488290178297546667720031143560495381031801362546664557744009468024262844838823442132397397784941089712173815186332904144099510738161902600952840668489939512956254412165735339349217167044213762184929653432399908194791357511433070091289349005214259525911563370846159875765093048432339002850325280443637197601770179140170339407732294740215459873802035178764815617865138477425714118024720899331180108280604068084176812668490829679036867810681420683477653986225893407398607725255677159405713391393376139184622632088227599362555808944584708716560987910028842708745760781685750828831298494940122051681190284352815644606914978183274098225446476486558159306270291216729271818607890699587354494683647011721302873143299426087700414147313023382488691755643811983799694199612362901477049010564089901037808239898084156556629034383033451311660820411389004942404436405172198709810342418668567099919067243295687061720937168441149339042398865517760529003973554104166412850039092064982228430354331217445272324808610284612950150744693753965928337629044674530877383843796774415492505296232580451482400320526443854570255252257392807724412019501925418134418022474759618670478191314861049643368205274598392230729983579743866269901375125184569905849600290268016832215136389940639832652152272674418525025340045176491828600845084479004693699554739048365225904181380914985058021039552129547690196769925194626804286490878610153942176169202752575993902034367024159944497843944703284909842636814207965883677623407621819277831511770955140737559348591012954591445746067716662563082911953757228468822570978407740941377162427635457476373893228627616160755370438403650180993601136851243546179849504268217743157823296211898710134375551120759931424267844472733229179616300175050963818415606914946802469123440054354497230852496002493497918960767139135927190273773189017021933577591253503626329461588593132907493275853387774419572075579371710938720073901439038428710922973126726493447811165668323497386083129182974314128399167741946321424082972221242919694306734357060492164307003173024927702700026532446838920931864434974337135825899889867471719075162055392132487310083439075158106581256673788368856699602647646458944098785935833074405593022960573179929238905580338585398714159296558464598310195393561530447800516093027944535879394843693342878865308301787130639547267672511521610483399314394185280195329913981470897567778659798786271203903236332096716705187734031442216742662978811144127762080796917074218961059629410174961298472011707299989527407284326320447045686875920792954902091033010479111850426390693381864178044001284398410656914540081543992014389350782766319098371557604073179307097727624768661468516706460433418512373950616842189822277497192150707613129357946823855569622672300106541649802538987867802631684039936033567968136487392624278321546113037127634649938357609940304861147782901397053581441373187069218514827735890034690261581512631692389052779345249778122602863987339223108289692147294898205700405646067753758595366328353269491371155080676308275862050238660705085843946819087675718503597903366172297108864278531856587220494381657558512145619779913003011059089180327391313001902320830655395611593548924394835367043161628698359995151469116781750348631132008018118526670293794303601950185897262708383300171694539453057551896278332626298406298643099447577890841599753106102458348157962238411257595700352499363919777897116012518793995500817840370379859031008429917465520947044298194397782364496523931175607588278268017071448948726496350399944033957885672325810736590458722571348744405197453803647765118949669264793590291328151718679672233990619278709536719272317569679248979996412481044360852419009378106763861322559586954987355261933901982616132914408242943162445204571537329373605981328116856955887266464507252015290846716085354407146058512911295422595348430964213474285777482165009240059699118532993961231971149295807580418493035673358640347100636888419393134435192893169979767803370057185302347961825021847318969063578347578747337319953287671666895158354483038302101826914035281715975177403002635909386931378893970661672693924639962052761378788063238962011790795236644712022199455003407664063166849253421549977573333224816248121609970994469621304055232226059814033679234513158477914243560174179883609487898918802232483666698120211131705425059931996100722818638055944510229835816333883587224095668416769812316920643045438294020955282999605747897081856452366752660719279030219112687987997006754386371222419646436833888144900770699249593483141483192602620562512892793515969219926624015805742945613535412321537722674214901443332976373461424644920226104515003309783363675846758452873145242352159146264896448580864818816677952485455773196072147971055555349153639570156646970951777177501675488299075265493672274078772106261597127267539258136293732199934604827604681176602637113502051853402142905032407617857715669381878377613925595644827532969252648527012646295594711012903784690530918282439545535130688697976466155721522733849856760467171212753227462067311735914590039882399898587100382341158227106105081456840126175982666407173253022528311218821171539691407376644448557055494496947178957729371498563904353924045688455486706475922964417352850321553068268688014031265406949256725117416276257817815466556294393899672262889287532914643329322100014115840627002839548441802801223104603407781539273278803754469153071269174602710700570332347581050630036151281813052346365863790015897299533165654035949385122889408150264626522260561005190698793596255453452687838511236785767482850077656822514740563130978379216337745869043921328612090392432329302133794296046257827214665779138293219116378423583746610361785630882123917374050617284326896704962307509792201659416331056203976009901097165932745910245647872673116490001283723118451356999446701863196047659928476278347704556122506151663744395481408996993600616198287683845438633571814033273071984127356153417463100770551490419756779022428593942851060445781005109812903968606685758882370127946117015660043814247178719571553194567638434965675175375149119378758391391439695037173218360335691008324283266234611647995723783032306725415047770503300417580288125280054734352504605204001330860122738534140757612631266710732667266992571681851159573133296692941521907610809893398818100085280513569362759770941453757622875179318346209961693530749206730481908032659448296183109989347729928442401112211107405937315687505027646414425758587338347633183814644186146022064327994852092056000894167291272568974410942918388753024990279484248822568413665036872222327045278642778489291711411264995994981277912036235589502787236068026355359936487435903750243227883580026761153652214398056232615704483524411805275891114767642373568664876282538894600211656258155863125282068415376522114935772044407267563962117088850350941358425940027020403253607210319003504717197452088062704165325446371356161384425330442823260076121664936775474735096713725914096793736356318621199075449856672750563766541348374657029137747228958698773624809811005415661424431366750042727857995130083397848220355316827258738349951290046072765946350128271441285886202809347689301171260715285367015500131415455498666611139316257564924890344560184354106067361248812843361850168961971712604297395858040609602118496117571569193892141840301251114475654243126670261335526857785562683400884730949401490604057100133038297655024251299858403657115045438789759649986982492368126235864125672525913378288169442015873074196141846494252604656060764781042914271664746512423438125841190753657507283585780273337843319329364525414262749307661412684412787856576935892718942617639721454138908741873584522118828262060547695915318887519794799712166736195535346496597606498014456200767185928707406943500991218435208647430679805863475139515671179312814043171388977188392731461553610636241593545666925905691222986683902525862036209722659886609442683612355095931378510474990923871922370896120094717458477628235270956550883370118983621334523610274694055431136765254717797017040446113806468000472622311416634581953917763296761571219512509039321763511410241753021173329127480786614195371378004861782307481163226367138016773643621566472226223513672172791771513769727344833395019468914148954223657258863372677743200617155299393518872655622436070626487389521605378601237777744810584158201430120208474747149118886682773150198365306820157952753178073658363735412724163066777659423943587889598701038193274205614477601576160447771279625409574112343179794930640462468591083322956292076190761969109186170295621199698099296097006452378433711550668029993002233788638422933110683597980670180223920452330483442738184582374420527454160921719996156476313180765991179384647841995749894451171749083307687941449357590649030454751749836693051781067055736952320951224468268512725122717515042167775021676180729075247695311245698998805581017622435346567935160342928848675469199167614109361983652659736231778465610838044079688286405262682113316361806972664678491632990983326141986721858744429596920798778733384080012353320816789700127012281840252558534506941070891519490313490069436007838134942025640916410591995964919856159983630657978038141943343428496289919326352957490662279437716216669556740524332405541188456920354023200748681669162162403918650277922678465471776066098468068735856649554479309900262799339783148556831265218163525562536861236883814538934475381409980669970043793999093094980731263862024377286129955268759365295041126654014901255731276264871441732917937822328765983525007886438459733729388177607691718796187906693948215663915245983684167663940740267743969870087303069672634197858578682992785670227255191312498740704144921622942919428712616750880930080401165610378748294381594294908147534209719332329453215723238336660879836830594157698394979866862455348323598248585588606097925097979309311844667396136757199677253728050558188857210290088765504083100062018943938759955182981223457178813806748519105660264493220895514782088967573210768243418401549345903443955396825378576778119606168114491938300764965819573931560692775103014106003476335916901983955282933275814936350397764752943098569998559310765109435288521284385844443448407309227438585653716003261859181109239598589442306769214749722689040561196167224944620452829573965508736242322436070950691276302894127981881948599065990680936420317016724445782575627471781890592181362651987938428475385232848314965241070795461400247493840880786041840140576207498865866036381192576533510639790880238353854425879791984916417585956366835540837115022894105841730380163882829184855660679193350395605288056765646780784269454515193164112358003378151287236224119932198833011952885271509409848046691483352704177913039113638140258756879144597010412323248866187961336835624689495113902796952489108269557582419254271106392360025558369288121802718920897440992771046825325685761803635220673739006768491401780524506552564092597176198269402274682918423540049339376998497357588957297013892809421906456844319318327585313456782056168901507968403423899490538710758261528455104948906413960218818580523742944444736014684592339513003077075666193755988126292260827933657267385030364753089671289107285786609557710914811057011160317243945733690804844792594408901327949265913137644898133727234116538959778197890639290408896507444287504674065716005311103148361120341785575126499108982602852787790686678416813767408374300284256912941997615200884601244355024471341671972039781010652134684648086837601055556897800540357001151323588771328755432140622174532700890538606490136124912662805412650180408143353206368950306865712946866970633756619935501898407552647303035715386927129896746074536338644629420032211755079941670071374304991868523642540793552960321159542129345461068780994572026903505617083381068828253248639218344480321846819017292797876174310133324972981343080852555804253220740354179488996433922315305372901211888677770267583915168011904427142798322064706161808619437400446452252091399633010745226662194807607194213376463565487573190625671877689464407053333966497062491841770784929718312446164947369407975903275836516852449369673000325863149235987460174828761005989945437090109817876505172074650372858384226713809505127585039880535853027614810707530414260799895739723093567997389195558080884644106959539766590864422163841816145151819417862565534671357958074476064164296020183483206917170673843416844917730819059632304313610445859221455689514425225198589016965702429545952052830897355967003062690642185095865422847802796458205348356664948177290700528300850786395187705437668711579604242811520932663819781929703252773609834866947029122858768474531859669098301990751291519705354477016757019930522880039951101584650936103426201526255818614616844166343818497421161560150325104885044120342210584348418065947030249458642629669022475955556364720203669499467917567255456601952411368668137133901915899947741058143665835976366642539951312220675515147154093987721390085667723063832444809076694533376823445214265093337219562688521196623802734992866010328751789317416545552454405397945398565075191969575335852277922746058891236315621957572066234053466663082205470241914117215576142457577890930733924021523818308474792049359182066354624040074136793610576808771389440799673488476821192266929134290419707199239783942898160614840841730099026959846735629378929669178145162968714925095311967529364883966249608953198897455915724253060329554876225319290537014575728762557574741012599831349359715016129963114124163354331600341074867441784120788264835289567768325716754634350410976417111870183914631860248335151056010508875194925157508735188622296917549809483337479284496807281592887466384005027226446765142526002034710166130525272313253656469960021073611484110243721784477302456798489330437368717551626584871880876236775739173718359007878588950923531345381271878022126735065785362013399997503118138473257515294453467562512089851553161269967365587203954872639129582374293797736783016977422161256641925524424888968197634268143387358103078108512977472081343282321477739327464336482742720828873557523726139953554929047283488786415746420112857483717534509113818250144100010338360409812770188617796047258274322556266712651471244729513120194621836946175806982322136730749253217798081627121063649758975551050745728840972748429934439957003944319817917807832529477102632092113292862791049648624429135538770122179878786025284913969770352181094945548679288318392433916759770905870576209008692175349700817222919833625386573611913004403866479928030901518308152570774196180847957251442716693735279421867179855367031848815122082290071024826066904590099416596331161130539046760408746669752300135223358004551779963448154417920744815868664560356468609802161188209638892699682603541021917764254565924401321296294274508546700704764566417758723049092025087990586471299075507477047115420764150947488596924062925449636646861391763886607854044576692164247771723747904827310179498420074125350273107721665607046687886662949201864753325230535607952176019398317270429045898087967405438842391392925405890413003729018087799540500485965574858295262615697674065209035278643111115288236015025500099053698780559544596004124267351759214954620511871166216022216226021988123056170478766239452671387679257936941192517306987794525581025344437433927947002795779972200891441826964491423207025175709908505904645712801377733055611555603401447115843124602806279875496114935535994869395211866485732348777236693572851682560262273300933651584567487016982602151118188833187279386280664477905048671373802545025623295574692154240400493246528380742890716155410793280341921676266540626164904266947387060223500160696203573711467150176852970114228449218424091784344741750525301266978947364417507073579975811320669338802030306855161171873204154028205743881626590134605417434410571973192980063565801840325585771010471508426742389816545919435896621410818035126962721422829583758014178851528617256126289472730812681098903882167272960825447632543263096248435191651250523862630413859119507632827364496283781893453292690314591316274965388508725940891588781054330404939131883282938749709133619092929173696777719315215237498049248152288059224495324779541100610482625693157755450665778251544008071304061377932242194101774744181151919407889179393305776622074129322335926146592117038554845025348420098509790462942820861261248825760040366021631385807530627302764105095572488531573897410180810565652533722811568975359394829077231940753039475411270990579623035492691425865421424832647009970963503480604618966045095516328907794927232508366570818944807010677912687372392133557439288959095882227599925857389286536369152437491063224649006498103268887173459331787811661311767720468403072053175909147856846610884657912796554925951800022554466926952697903390479708286920507633470109171936484374040341563602963538522061676246315024458763766473809596544889473613731330007824638044302639095845630979201653173750569345318043241563988243877024288608045649866497599929963738816018060825530335611389744146131102906379582852207336161720769557789848011513404069351719461856226852356634961459326425128430511599555084937233666511283793774532743021335480155444714687996517756249946209631189069408446242015310565236305940354030622558341404185738022119114122914964628746101580868690124112860206014108869700355433887853825560756168921970935960277978718924756929071911580953074588177117368523343807561226289851870616223412673214682925889068805920234480530965969045188720060860108417218757580082382754354896568221989279639153544906434290815337821412583865919932381755301272290631025976877370583760323213751109154739113528379280709381628523898257051332900809104263062338269136921549568409861560023566038343497191016191619196020646762073563128170733646326179902072506136130222926064805825599273891483323536279102065582978000651771200391989624920845697910549503774965605812031437888791622113233495542904255593496855694917658794096785296213189054664914202902018487769924550194477460915704990651912490382105632345061072607994519612396836340026715900994589559887689003549510639095051494180010022204071479704821922415843640973850928526207866273305518263546287626015748703608613123582972626503277868041862739945913967236319413038460271825058665435755287465814140374579973126147280077837784051068387368294393810490260884859104060909929268212155219523670963456775991661027971532593589612813119360010890502613171181579379850818564049823774039476419880098629993897012328337629580321723080977147293907021402252809733380012466033891620701828551404168673820978210877413735104787221523673342230059387926409247956737096232977863302145205711605804261690613393830101190500568386389595708460579222752076951911218260135975199494666266875387161295914541390888537409987519475039290453600052926876887381772683381253300982137059657812739006079884986272133281591271481930964785100986821591758170598543050857594940074194316430158088337293660269383805470032015610939741241419804776778337331772689167447800997603455306220949749042192959285797012714023413902808738867726322846589933045069549249355463031558612101114987818590290657516234835287426693976185345225845203274530397986397692387716936723425078863212867947010471884120106501105418692627270987969428571394735300541492296775823799394621650001164503463562170943251480132752674333534124876201201458566070736545454265595789400961158408513153632793299163246357448890803463770218900526415633038239052273306497392902775752123091344775473141867469153729341156015356740642998952672579511425817504423410204713164648354080803842948429720624865315425079829326862873653520320173887558306612658705539003714343886297582373527127499275626141898177677467881962300168567251465701725881721221160261561139322936931499283176923879646671720249750671717366194059496538873206767084076515640302470396289386701643292764782837146156775907272113172566435850975434320200584404369656200053933150598643866416606843546524395274249794100561036096458346303113531136875076792301060295611104290704447061430184957993291061285945315630911158183411997814054674242672455675661337704898605716335804327469358433470290815829237304766357474240803490064237167133738599490093077329029846360325500797993499022923966826317073762747989179361216403038012896108287394381035658236495886947610769399517631394187294107885946293660313168155210868893399714325783613276392384795076725300697772303795499279142717334690497891906902938265856473332273470743505442314591871763229115595898798238530385841204892983721994150314752296520251854034142566733650074254965078644026440517751514315750072998320952169135348112097261230702922828233381232989241783116715201572169012709059730284954039916172246284810957614902218401977519169245558175761422379889082498874016147297172535903940015648030701603439409430403351299808632244998749886232220121286313924584193619147941178162218630735998073997077443604873888748455381955496300528483284746607454537452210004137269265836702412573727106335466936822143735309932970350007874525934491914073281681808429641282565967452514102508495100680209522512157575144473008897655701818835400673983115232910453181574585508699162544830055530189916004953300606745500059925172042356168765846189771912881365983082810443843408538759087973265521990512605520706925464380927674408177591555998688224920763702522794572727939613577664338169901824497222146984589053231029411983543389449067111533808628138563876484221700498260288787003040191938210718726034768652998955192216254303332878606698311112233489919346025683167138211756884463809106364932667990667255264571538994663633883905802461243742088784752751493020376273507683394355138459765876293218428884350408732153839694527829626384913862575713825749179877605448427158160807567387497912585008414166294198624884336132129568851551748216741216090193627498944928342147169853502133019359426819375716752761788707931933484125601569764577533532031824530802799276499354498598697264501306552476574453248790762678679639917837543088163878885389546374170417144489686738597290414721573412100815803120042513684496288468289718319035067403387162958730884991651009441956224722389244167115029971454812716058386707001388301317895605357014191404494459416074615470369119168605576017304160550062935645520814787638794333722042008513549352676050489189291627563697039723284238283170656117061712407536452005452724698349562393972070089554712319833028612462673892340056126786485265124551068661056821817970467642804430584593163991367644553224161604401893444639367128085987700173585322788666946918702856587398393769238473225679243549926924729448412757046353541395445556268534667384922143364839199439257823439131862676899873059233100606702898897784679638619941286472694762171898145674092866602314545005247096560197045527824084683287046224865234069354135384937739836710860649181635628348603814761800041841343189780733343807723566367004322196625351425930740647371338167918802125252314174679663907078371243563520542387960566335227513712561655021990161927064993275152078513038602278192995270394855856543805268617425164904880171657979372993364870723367404099071055939576497531715071980091159103156233761194077541575953041429104195197345706507616204464415823127956491772214061604009542668857478360062166830746067147816714116900731551602460890810529298762393274507803668374290435629602848222908608395576751829441600846551419566453001209914338306202341866181964014491448415189105323146508290601726566417089614404578200333881700062439102546809373867712505790442560864921930057077274812090735127669677824908003871683269258015135926005895349963164995621219064467018025120239515792534339279251076495522234765005714166581328697769555970617779317726799249465108305795232921599929638368203360083420566120118065362961132531322029280325857352121306905438344399750875136873893462737923514597615198418401602017204620344705014831133325924208714893242831463705390344939941687306596641523371067311441847878036285942377725309692995729166154421296580820915917301357313108584321869403425049816186760365575406976309364924681546350196711242312462227035830979641146075074950113863317303117260690678398691477890917174156316483553184208207318506501684885313551819170996736250074410069502111405369162770923907599142966115967703097168725693622471053432630942247821322049016804122997886507433134134109985313608556680791917734515633099990706982276928485838158872451131197709394140276178207698486377864639221515665823414346488599858713887694724055302757516505831471737412578667540425938998592475689049851286283872386113497806527781338394815096869301803687256637123216011089218462735018813951244694979782690165822353510670944853775538066150957587208596447166628987253869612810687579189744288161682244859572858876863744809923953882287162995099000796474795328768838363944093412685952998460544197699605220714433123602703173558338381091510590048700005689113698207017892506309073663997116353783626676212398395523435362454470771595739442678380667940865982945448710564327551478756613672629989753189519027505620302391658447655730690994307399374339495137841582957155516903925613002794873060355003839223866842107519059482473689134890816456896970573548014993539329499927038053412474068500602933482758396835750233519371644993965389496983576704959574981677648955733414101613334026005353931038018927125739244366698512290336648811202665179504960866148224452482261561354647802887384876549683421361083617431257155583485090257439998791656002480790187432128658233930058301695998011671848053165011864628321680365201708242603424333898374555761845742456425645034628531711176095758401701952158510347086080214678383665363806498463924265966844750053857839910013320232433163827319427269777159960245650708708036313016044811875075105966475296750657175301466089236293051001429814751116949886624139177482421783324687312888046569241629854687272369779894480018055688236581300451548400831558932763384230369854762836505397588249271613231781252623303883754824708101666345457423759364053242307535636755264840199515134566092077030085053259862917281187712493473596725351614885754119011954053318618654728869125180533405804800181254808311891310555773027183247119409085812635643989243927997419906081436707771603324602328862649016508467900330730459312919715975569214951191362365235095895656734563884236854082776047409127769128106482890833537232837994545079799089460994329699085266236963738988668566786787980229664327453376279328668711402722333508688179362979077786146171017008743953806540786405488064538678328293263470334907807900580811727350206688241954674565436963024103251978497986399880917834229824261503002216949295064358763292058199042814820462079275442973926533339236239806584997918291067863865424162071638730962958544042757724725199000320491159293400840891698129368057953546967462119507109691026420883236403197477313717785577188319752907149430225090467444614456640277349784508487673575515663626545921418630742048884497661059465072983319126405950414080072673475669219861381522932544842087243660196698426342147567832097817147013259722070141757716303863894194091124862916989985719471951362899599416776668904114546104911111885242294187707764213646894015783469004347266291846140802090896330724540104501036258778609708466474374523890762316440932531780068239623335631100659540565073733271565364316823262840339390006997081574769682440877191850636748239152291402505948987016277828069730931353955984511510116307694601200040953826718056611803564259946762771387604739062119831958223508045703997609684667204071213183037427826901777725496828430201437215894540663688376193145178902624899748176106921948163384374857857552343983537762677635457513361263600405584127080092956741362346420694232043724599571062751438965997224813337055482718883873529361592723595560344128857736384266558153360018832305637926099570934626052538410485004635408137467633130060783648907787106409987614492575318347613064320183758783929004190269030558834369021302584820474635162047056666263485365217559868453279562528470304867001472726886637858203616710048871581682573637196410551952374338329088619421632653479434392521062926618083300325040776368928713666235465393547553056486176645427946433991489895189672343423904615527978029385411631241672640844176992586191542221189058785230820663901806871717561104932440746916372021367315575542554319079267893161796120248291743106554128377175024626988413571888823452882627436861448204934644587278802031905403778363440418588279881836300713208267304962680116848779414904473541315058796794386281947076108227419911342227731031337328227881672685885949956353278823500372697162273846473737720135084159844055039404691525612237292571221638687553114676555889540470543075343859744076903734327354017265839768607553125606319282272683605473550473630765550312095293600988046103718316748417059482249663081996363645949419433295552572841121995267978027140760523914921036755231736327968277783664218079086828731411439369681563503106151465265783960282568780759103283946964100640383069340531995870887877825665392766268068298075093651650487927410259143714423500348928355210850472210847492557739881662814461442542173485894845751204911056540891516368539257774997101195552225724187056677482537879230187722286718262761922692910207683248256233118122674637568378732114900252437719695412983544741558943833085079708637229474216712787494252953480043303307297322560993105719671942011234291191239616717621833322632854668848475577299231630714180823476495307765728596283462195491734521191795698705069074197060049586907430712975142050114926377206134865045485994156886370027144692994451402032756440728621940793578810331938973948388802932791580059162255299313983447519726136337302328819445544339709390574440854412719310056511625272430540716126135076298874396867616322246951950944654831440903761750277389948865464611581594311418319473450980655744980456634716740368776539078253031493737017170920385090069238390729192080895562914252037634337729513503255374322127274061833188919144655370103842280013552796600670154375952689681399344084812651443301481688319872224276560449794492857645512156591062430468119536812413080027744561161926591562314251304008448583329099173047654105525353988068226830014599359070942961709993035253867006745253850964454245201430647283843040432294647424082540571809648994634280540201469501169913539372282834812758264582795939517408154367357543845884447060065277020375057761317743656620295364960962650544685784967440138763001116805636255494163337586990066536622460028254905415758226907047903122571863219931022601027451820916789301004411527571658700111850437407487608285653283213792826017871427781267163293667072465301971184053739357703594714538513135895013041240430047332516561754095588930914859295230923723217591898667423675210677049572727834052220416022819353791762084450538962366574566949470962203401616072240111837658189960213787729395343981192924236568841766431177353680550140099603888222479758441687213689242165857624973352253433017547774326790863276239673808646328919415438281214895706368009201340583104421786751496947939085987658969020317895429910564926506792999991751836474756424120863498021056260596413184859645838702813242930515616697972351166815328763891820226864154396439099365936833319519483228306986668587085753683971833253316017670546946926978077205472454037011753526197512272254715358014176745668464521922752889643170957944947725103509527440433198933486654982759651959822829320902204390534214674597744803440185699364009839740117570993734593571268896170132029430546409599826730847611946326602664980500080171841930525172717872535174798173792043598412887808221168050479889859754601571230720669519569560783606941625592069482595341034914548461818745387759041761835537139393651465917171901303928364052145639554273930046266368175559446687559867416525615366368628399485333389708736056663563570898626141635384194132831831080735645885006449170633934054910464299656184885003943174420909961802031914085347229101121852739763487931884544267067604460649218498569017464952786758601169564580162900811405468488689616428005128960397861325993493340532020305218163931615119036784784502674685427738009071986789250350198032565590906600748666605882788601347225388793724081934305600262375251602248422284954648762624312423135391481515303304952695968306397578003281053151140041971265073435172727072675971429476935450339471647497554125157871701133335381032559672431904542481928761185455324015284116953928476055891628503616056054907879236808162860118177610478274883008149382941296382021265723633887343966726691264797889405535546396371078740753164275323430456569051037851325938237826727096888521898837275700947552669650379373098933838507669058454409885059574077310494304124359051798251160278383423772338438843923250040601964164314798984686399038365114598022378776173891243989588684239447555080374497561137310067847170182055256356652588036491367010724241971371362416197742514873701194759079713559535566340265366464207085826395934734478084662190354138713685543228882659489406965846710234067267907941905498366202436337550326724850637003879660902281104469723476664736326211525521913262673234840798816963780649347451694971283022822330115247691545098420444382306762279848392339961496727265314110445816230679200537621672478988394100919567272004534377545102897124942475190278565499583823167775221261542441311229283371801294191142173743416717237542929186139363795304733571433083665554873131580965026812630209870913666355289887189368926152726719752167614023938179651685914045255203670514153323640976267003227073364365481967222649493050475138278392524048288457532141093242705712616993846683921409828680701386375793360472969049317952147990387615254584175565128218539926858323703256685215858720079605258235009647932818241171802244243878338109629360065104616324908705282085337874533355816180863911556313386450110480300743335188025288499343833662196214848389689973549803443993057162557106586646888112905164126353288992977491554324311668439187681794819071579826281321091388186720469213621486013977653204443643282447229269242859442416149300066361921550897095251980876112603733300913417690873551035129826568691939711321820693516569410008141528557083352744913581371273521481203531724136734198061323569354350606181260067541722529603489594894863509472939988411137794983565405609877864169140727276729763958471431236497985868592067876201586955291793861292296195837393278649226884621043890349458160222734225053326228158960226010659030749258960272774022123561237063639362248439703241613639572024262693764585608743894447430060006392676198609442517613654793478426011855691980738007723637271597514788815136847102642018985945217500821149468409486305886842832875736149724140909811297310290904720657075255632951822516315252756126562396788275611015275733822979052810052393147421525060591442623683537101728051306766040416197054446994724298107535649763212484141084939203875984965858860260603732457352978555052829656512404872950522877333937456838968942996112631842899661392531521615713355523112963341556310394830772051960973691088891373619594844238350937889851519520987862505564817715325643441060181851438189308149781677093355833158134813060756810208413643509355445016945485753915459192118154607411752365562802056758513260028262456332793796267364064627006813458426711754545548044128719892178018867345337447149010948555587298285110236918983110143140947417324076097040322518901999869099122476313507544723755602336255870514966401145423389618505859417803999950025600589796349312677191240073453724053045639924123433734553340889241864261739538673893749272532868786526659979473731744090963515219642171375502126353574227709067829022649647264701182421550122021149086618477861005179070998703002681638361602455698150567610528190677491782078345387492880805489322015941706094949280990203656005722592971940465919888894195980700724768264861730393851897560065741158729219703153325885271861311550577610978384337788901463045047587277164000949044139425983065696790746496255364360893975167136059750075677225175122317401801186088600890502286147416787445770350970827376818691143187997783589914435904290017857497484015384318398105477102133659776255524847386708278652461576666571950885782868912014886663949327649793059128338695473170416504765023595061239191886512355677039057048083875119686010187570019339222354530903806827134339403072890347445451342958890432239122058539532496853655648902685360792034013687354174957531552572926039045225669474617720765185293523253177085979207125539312989894173951199937183797655241105019035333208029361068666625481797825017383826962312358304665391349791909407336608426005522935047065524206169847222946664047757017301721717420316053425768210494238795116124136542953567476963976287152388133138213263823890053029438938764930525547127638310561100241346148497038712470627390423311173619473368580613090559645937264466093212576025049721100747014258721556722638188940060287466581168589214171567376262695315513157425930849353298649616404717900843267160467847635891963685792363487600261865734088504650349503991249260971750382991445898700803240905826523845142732864313667070587529001969386376246576696471912091559949541213954064306695006363704046450216346725652624895260901777019849249854714417458473119812853523216657261452726702754053532103292266560109371618198592358261429895027423013512142262027404410946075519836793247566657056159732851556101113663684659642278052963794338717837256645799557177181778849490137762739588902320607798911655864061385815643940828516774087355248919327437813004303617575478219019252651980987333098302887439027188393114946314395599710555528771978905459244109080238066814894891756983292489251504772919367725358789889967877212537885921082817957613040899421037392573887004095550880207328451829973645960176362053776185220867375890657150357315690215401106645398156340030514949419194630688415124680878178667278975790617738671091529006064838289260284179515578787601495612442121669416972576551145755326929951158749583917583531368518715316845223188772503188127239002747648071702917740028141252080931593737969861993465802325842067963902090514995893766679222112660697764747024958180322902742791044865101256410556573245996229039767631929291479237492882262362855971457305691092615546609961073493434442995723435205683587254115343805299399605071564302662570643304227933687298139582128291867466915340100051693190513418265441702776935174238965528077855645361324834127564222521006472609156707722914066654516849251736062909582146407148894805525442696251824154306567202124595756757155578403099550141893223674495149728632173291048111236924118276544319763264661784669692003947811376602457521593848756949988531202593011296369498785160613679667559971229518695554522639702245267644934605696129104670436629652236408741103411057812415235994104133908831832081473332604180364915675214561126710360497685687864708740089058695184746126050640792125614314838548512990337717324851263690360602113711060367189905896401421827536366543836179870227977043943843238318042507667687624152014833605692526434054481815913569084731165598529728128845821769651404591649210489822189989847440392827716328646162358850953281092595612984878269544521761135485820045637138400253908806196807692038638470544874277271670527176575414757659068865681000313705322718035852099981953680557065465390522570911998403140548256342608834623106942597368482746397432190398273638488093760428254645340900921182960358795651311534805579425469920347007249969191448144678909612855255687675239843160472805982221165193571328455484318544846768111711475099289823763660852164266310548469733035327259362769625410898340528301967458993054461902895040788903509665144293817687797655187934406327436383170278950375961017313182654082485899319293431873081158128048070919810234845835422066883261637641042726262370187992514408269805819667458724132484096933387207836764173800482164670366658523678491232104274902454345533683151612177819359446958259895517551822225583929912224048440078718279712151020468947439623226088091206704017600029166034916034453706294859659962065939523858975594725445128059542437776648026167771112842158615601555587372344727615062557424177988530698905647270470881476237707430577472144553819565445090653810019586161986270357541386957919688951948138052406098014468922951702466932325952918860007770201906157529146382604098103448271819371438234304245004443192750440703700413205490090701828296017125590567282306628173679477670278983430518061597493400508633887006000328793161163885313034828658173901582488827366453195180584421813091333735095478888497411041023830512807653640244182980466927329403155667686080289007583872864816394816772697390291004420415201988653038530684417224430254013417566417112548710091844651813559474154506506185266137669675173070199551522519013270031318260590773274769031480083808014524755990899510617115719625835666845314295768700898501607745504016399474216351469089106240637324926186578524824220660671145116207245618345508642449779691927136233085480543517814024943916482899349442592223475224573026931334200690370199319528753758075610253422446223724685816411531706283627541654705286657826535580977001634091201944221290833821771870935359849446704242750057909991841712948597906929166979701816679664314386498647991922608639822892362709795021357636781058754353979933498500783755969717901527107561608586291197448034687221021309642662964122789120333100941355431435457302248313726564380309194173078517872231164080612825998822799182159844136212260334200835883208546173420845704265447654199733750769626938286769512032936726686768309860190272389478911205562890287002504216120549850665973497862361114314478258613557372530942276156347068109647686924865553188352278109524044004487291129782919984613958939711923563709859699403985421347741468207064119461624245872493769277474526340093694064404492276459242882436907475431778227087886190732675382171471283773186338396076953933382220501764282193680894126958498504398537740411384311704960356022288851169251976900418515762465848265108916617794111047664013644696550036688717120706536864899600224596768588922302892836951369818929077512912519805886671104348629090685916821834313473453820538182679368393248924065654458289480517826241330858098243320437581994733777302979699676177806280424204853125458487847018443205699811393795525696674766601582042049120224128067476868207944349561076795502116230397188927686493258991666994391019981607529883900835470337275193350205836536524172494523531951087129393505443864901571380850286238155370791817361115941135112541419122032792716332532759210563154293011504484092912128444189181541392821544788193062254533216623042262826837158867644122080468484905358859734112314218275926033267539583802170473103211287220138025163929975572252823455485158783484647348604622618562652848646176450202418095502160661736828214176231956573061302727411599830507643646718350453957897708424484343358840164958982866305092376494059861108663199484339077987444107567587374527985211889738561523863054456126990205749720315866815020647419044654957326422890754885005168901044950058511567555928808367193624809392945819569546787742766394071705540109066276400187095255306722095927960483943146385620377230674705977767485404091786089048342084225460664254524530341071976482197214451043595000515118301500352233274074491868880024289338134284533051992629790054520338588536917250538086226828703223345393681169079400014937893641849255450709886939680205271972172744825775684053947229327307388207383899253546008093313542684085551602652245219187347782505653300178278515200740598428530401197988478419521487003090609261254157746420666345764226615910219254324910485902005712274577275011963202782943479880954008198423037847128570352518978387363771341249099196183597764242409510439165440560783415009919651567141909722616985434835493807134101625049849496549399020450280361535502057998576356754784679936980421980567500894543420009537772554672687259039836566280217775400725737859513145068532812777350688422310538276572456784076929695577171241739838095518786342715560009555262697649103047092215360491532116895809669835091112338154865726639477262447765591241295808688164741898797472782728594412890475876244017724583558023248225853693011309809802602431892020750577591335735515320864741372690129524128496793597074268609721512721492597705761810793372043387535023046298225183018743942809729643614090174536988646072357192858778596959072617266629534281491446552840952793520369433431508703198880766523791611679674626308216240299471705192294416054152392239835351615402866647494827004801758160420649316923867501254514667459691454635384636340981940500858074753688470468686522051583605443277799076085702344802103242819748043455218310823250629521900696481494858307490867094942113161371593107679831168560183087299327401660582542801860600505377355076302977065634101105650380073188484209124668143723626244734403016710778873263444833783291203437872700766076273049208899235347920013476573919524618673368025101856824859400734706154685274060504250951929593903745841537651678931463533916625037137676442361664798387007198750116898545005942009368935027421740359442658081972211432153180063069392256165636876432471227100673649953157003818651357486908998014732206388402331107423032037111756284301603357042813101131541755337201936056587381205424457517720332288345187276103781515884838292923803292341949245135869449290982664129086920198297081478369807445402229239425481247452815804470882155941254574573844625828288304048506652525365307482949904633527885470439319696929496245007621816331521118277679773654240190857470490438076559856691610565290219928137290656591080440758889749969412997866627165419936108729842914731836530115303239108550801433410652111780696754857776557097593461146050187153855776286664205991616156836352736191562160140591535984214978358342330961805232607991855302619518846843737553286915587139037143574248783027068402360273979498108657623064406876403318447490426987373543007277442305067489285839025656463500110610422423755234140326468117562474243263721441285938288657095845922634803849446458216262530293224565281740843732403138531388324679374655166061787233508309715716205466626900775548817455591663422298060085031455122721289379468793753356502580432714698153063827441135755528095333774604848071607311309260464148680003625908133054225995800592852509664434514290112051808270763939957373498473770573966022041249319012051053980765658602929760215332360670876896586047166877124135977185597698956591820840318072890419442721709715380511478195513128453591903902162395822386305124872030991791619256889160160054796953387402427835857690954728130211103231744670743278285254742319084451921323681259044325875252386408678782453980591137543219294216623277360907118646857763993353129222211271451289123549084025364124278828172994918537979736213338524869109267712650716759493500560641516726749859169901446503483627041832240402753122499014783241497979164992484733690525255667597851648334369041172855147124067686361123038487708861379703983054591574675285210131875748499308808279932632106597174699933200352594697236512402211459919220283495180923227101833243411444412696306107084749795395443410769319828682027501121297594747738508041154209106977313591993410581762548389152556890461788004964551685403618169869683613593443094333686339972939906072700166100288271824542105638876671546215832076469560076649321507092597476883604714554772506919312510464493654369222379811197869092618818585564582943322743802955146755252716524803260062653275779903863294295081813269001586730321048673900629635485189893556702604319602365565833169087946321470191281425846774307414198920825420611529388608046475607712714429289890418252651305611839017491891712325681194497734548070790615288850275860186248865836876055211822243208658993768643377069076185025273634906646570055826584810335356932841603242325852435419875037233606460805947693497470169462699900411453590869853568187311194308192026547237640049236010292991103334943966797451044422144717485152167851949890819752160305024700762973649108586103186835712158234107098079319450762475892662697584761081865360017345332280722319167055183130815789807251464193630370221604100743120178928630732378978438693105381747116184026057211237149738695425176100658403111337840299372903760550591206249736265403470066515090453142184637488972937889207442268865685007880345266763615410726463878882436278558919020260204303000804852377985442844843859869924414272011368467032795917568493075530088172179937524992113037994010307217560005489800936044527663845733270703251860958034455417897532183754567542202756628564492281365994811478050782196366597056813803875946719194113295837780459899725055495549811010607720341664534081683067388930346051710544526538024115393776598192827717796195245987279201801727229800842391443006944369736181411091353251076592160812491445746474409055567828461475253733438152142000886913623030306217831724000411960071066816997223914185747949692948103151863045127224181638493216113061700313064219381176618040825365916551503381438178860161673649141769532032416854262158355868451314778845692016931997440631398407430857937609772641247052579875633936592614327076528063090588521179629990986376633443098380163198494200811355363218764076103545092456254233806093877413078426175205349925668031038698110950770209081795083869116097581248716431998970461710952360888462006465261291355235173760722504034131760446300202417940605726218388901447400542830050321011405610036863948892752684134501329791665832345063596860563169682242925891759588657973448374315176137313367417739178863816308712861586654782511378405701250369354593562321625656179210977652640204968845491421310047540411291920863613209179970697293914127371153598989316806608261573259607126031985168330779009232749860205310857757283421111385023766330663090798412927354034522765722820402340595694057531625254462895597172912001354542667701619863504760641970530587751346036205002414704578178376628470967035130250537455323281924151086279713857066918706692238243636838785989923428000648131387919422545622465824703873327470954068233501222099796409288083494488289017145673812096429627840780229925217025636522007135012380304432953877156721383539499885640815914798850036897672511219598847878807299418908906331509196224153794098025291087228494572897476290266078068480486400073483380729668037347585995512395751312115058653871707407052867402751008784626067567402300282658879062606902447917183909000167787452627275182335835678018657946330489212384290745187735506217389193639031165272435638749650781086343769291171271945049672778489835936964015093788890323323324436850150693737413447270352652739491786854422436416974109537207790250985620970609538671892571717068553080327537677539718843521130906018887745430464957385885963586848926994673276454066685567796989186757695577541241445814075655235988292947665963744285986368103033677632948091628855901066252029686067541789789706980279105100684010092737052901909940851533118358609489930366615847504448808708373624948432542201406162783934198293104871399870017223618413817574877019500383641836741148660399163652406297011005737139688247474394481276143752940437080830675937833661992990047223947782703347887565782137285926053963868700684273006229792293797360685778122226927429307920917381145473114273339870480104316604787058661369717065892904103300163485264243007784004078216746312804255595412625400176080088226549564987758778957678754654306818810417898292828424758245780318156265823473671742859213882754011803851152907373746475862366981070766529912941875412435195795875740022032257618347628789927602788796889003446975852453972153514267744387514535202402249088662768305421089252863325042669257176803101436258672521741414363912167839533131663064632391560508987142969300647503134451318447731708670370916050525074993928972962689246741726473031556160539942708612935465504975220746914641829690766214621053333515522280300887930611576096230312943522106942347077890010747075231774760856389319042974728970519989465395747186091447327732934651061145282683145183036699910614910798385875858534040491391926613066579322747526584818573375299988050410830306484340140681598207262613600170624370293619651051811463211077367786952235031850799852255740294511897083720397085151189690842076554404149315824619457679412184765760345900380033286570195386150748597187572309646138374614621070200681009402195526018157909390607332332194132049508686857862580505574264984525671993819355311454111393694652032399667832175141933211999420905221569079433768882920457729853083688280552011488146546200742954692351535898764975837835010635899021440276162600305051451729407688953235511417197890435037879427486764201182898892371369088271944960044153528065397354597115183268286334146412289743617854588633845857492625121087249636469891245857255971541402333290144479075059867049254318417896768934550153303431189480899184746907652617538030736138117124897086034528986856039285564897885183465524117892132185263027567093176856528494222064959182515579620609002583347937124821537879269871847046482992282749928541098965222284560296804985559833510305283712694178509322958217545477908092719234298446562123631915206673014575890664344357127332503618427917660730669660659567313482787376954631185348145593568764766071214275663875724499088733185135627872066389107070193408830511383125228917935878828237594791362420490289882058922172923859102721361754898945469718557000214397943803174161252676630922974331726831027079503170469363734309956593847363345381985848877927709813631142747260774605498695880253136039181504094356928655898839253446031420981242596997167316368496744810143296669875361594491446755137965820255686043661754004453419038589942629539085412422125196264703894982816850887167644364352624007069620128429084538250114960959714115648005617131810893317476237553191774859276824036130883743742739403327541954710047647860886371678840671420657720963412777479441881545313467251573818406219880807540080163896590923384504359740734300802744610217580492501899577432877924406029394435820246502497259737584264641442908237173173411357857420588507098262231844287325941507548826283992617406454047087781452813487072445159901343513179402422249676645408561362661203722068265108221161541895272561704324211263779686596696705456239047937307085812499866555809066008869524979812290221229851962311051454476740640584992662593887244659853333153173821300769395548222027424978745392045465552089925375795759467104271518479241857661948019656946491692674283511239415254628826323133821903300684328291318880284261462329916604824610313557000595622340675861218941111853200631022361198476638338551122171513521929346980195161458783878985416646586961068955515749296929875441764619211597011499880499080148358381266512441140325598591513061419796699539077797474994062000451515678105557982434500671952747868510839969282031393931307884237571009537172162717572950326515939741925526185460058393837915380558666208093654766854177452223745829153474097297303646901208859135949925004757850054211994245646194076556182235841896478358584914027603995347904865394480402641148895302090041850683590769893324804471336264056875907527590069977489244821771551452818273061954611258711268878398414698041576003539823027621315747762389837150453570613187761351223628715232248979379658646797490178350597900821858509756098927991121510201733141775076031146508929714466080584028962408215918572175932246379071750612979676265584338806948704969042473883727969510231732349528709202103675737927193898993858615461901524773978631906320955880127213839898621903291517758554465833623796848775597438981712206282322481121071483577179117165131086534126686226381527076213676552010200328464941033584650456338413830672458448536682892381099006969689533945649016385403778444945727579943585328980903190664357585698320122747568018615058371510261594722147273812481057505388410510207881374355006089947338832671321888775279155518090487885133429920034227589817613925005783138889057949605692705686417793958550838338650609936118227710929339242071355750408264073587703498124912455873387946716712430638894152476514502321159833027809446197711018755290780019864485860470955165709877263383097153555486945078856136158756858623326998250327811636831561897471679905950399446140242658428455486008047687424447018049894033736707067749108960335897161316856670695857755176208628020010952382046063381956552717896275255713402540644353883010496387703189314234979063111987985774248338396435294804839808105864282166373758903362669669622376679326221765124990641835067326548905171392736462526696510452732864439431105018886555684943278607969656032322446464134987835510795385683828903197303730395678201918589322190081722178557581670298814746114593625875889551238814190256298928143516101736203665286724989922964480021436768373849664002440929705551815814106037112338568439582924463838774502229668342621567243475589897376201731102475254349324442632376477285308146975972499805700667260401046611376477567311248066357868643285972773841036546660471280365874333014610659182465991602312053128615812931687095507498375849529378542225647421647575940758091701246240173373443585480175394783813294090525214996453112116791960921497071156112472565331021185747753242977478943168003873558910221502125646768323600358343751724929083347998136500041102237435039098374898475574430222725841657172144954148392520893714069335384451845176196042209474323405690119332766710944572462548154237369870561167662407618090056062508123250456960319844508394093596691642433776122946973707773033310964780289151064825916144449932400132687577438281912916662553746096834969396319017462381209326445053979270913070776252005996299936624673949264673906497424956844811988601422897781017296069966999304855059055475992995090490310363132268803933317506476620000764138870884412093827353685388087025162328832897698321645453031993403914739250469648659133886189825622269561137338015478377190564753911339110347229401868914460787408300334290808336318233127594222425268565262827093407924123578015492582403708798577068346488507902057398276892747759342147991566499541918470778933166473844142061833995546387114547318718630117372005029114841162747695947061358161202807286319253924742837696448367490340750124655565458170528557980933774850952827332333150607227722032666861358095208075910964545951880803454353411284354019835732776026212093910172496413084877869924179679519580136227758823201840888819483558837875415732572000675612208942150621521939414614297442248809870486220709115433919656053879507658367407906595763014024793032292887097372120983181879072815618994893277502772082388013923175300780537216056962337240696961330774163652111232066594080964082451435297498189931955458560072478925934639150593385717025840907831550797131041773271775018727398012180529257369280539261281140988341518124679740603794039751268936373466230201002528686067443957065361947495166011128062445120612285566412604802673807882068259808248581741781685508195375414732708990053124470715913337104175693820062763433525331442016430912390797911426124733105311742947263783204426763329064688147974508228183171043412450399898876130346643571688981875943287501899430097239664849248687660629678238750470967229660274277240715314345674245360586565721594497114491267112713718923531684100794687112515895123195487286294555701589665198353824284141023666809679590403572245856994767492895810723549763943546680102579933453637196172011122915883093831760790817551216401261472867454453118574901716475658053697440658450213586223474228106598341853823219966934030343450806912732977157664182994655704553304052421230281233484281614794748100598159893368065952678633643031223428218448806862088030391599133687886613169314818235815770887653134262750612647782928452438218826696488600784273450836316355291493924873647344430951209961722237902955094283059924908309742529849416325557992213644190992797538550992017748136709875955874388256188154382324427778362353283671733794469315404097658977483163557348704359251580214475161126398189815784554088418130682259462811246820106446329148465550857747617145080466706217275195333467643786383892999786194415280827483673503284693377618725863027488040650165843229963636570055981608785637586124519590196413047053433307987285869891477936429733767139453718633027177513932000222503682419917212419025339802719906279180469488852561832699028694290790118629994666045861637428654732879378285637657085149890750731846833506997291547825060872868001661627853489522211796850219839582222778568588497121844237028163968859807537873260266376500273629007909273132746555688657053867425287446751748489121976133934327206583671460171387107551745811785664152502643480328358033411475044901994799264470342994006877123235234145192690992105492060972739427624186015573760261612354567413586194402397450450329742680341020377180800099330065153428457832038615871098716412480770524650294727555369560927180240132543037941268861632877512106511932342015065075443369378871737108050474098059485799525688472017149216207827146370861231046749521778883722951457941235217178721662460086296241180338026441715056271232708231285162877176478938819691404788031844486957653468503784318606923218819494766638862726660925525082034167511544631796741067966186754448567201959054425894212884873575410625054448518646661518041685698330044552099580597585495746456688102148675308382610362443965439993227770364466734404262939972198820349888927197460133716709969809889301272327483677402510879691687885771506162137353124086500315384067131807191717504432716925991265512955391557594739760960051678833979756871113744882348781172630729473516542395490980951197025175079354585960879184990014524915199719718485369791676019294187602114856055807441811898596050804460436470791321888421689337639907352313948225725431105609774465066054230290558203023900047361392399607652301725072300104027050800212921857322870743153758705401947210005189469552730984799172966861279148966258316045505991484111120938902243396099870093052281510551828624135788193204505219740302039858082387839531971643379464497487594456581614985427648939721083563146811650887304447060893700994062871532109200065125687914816937514061200794229197654506966548984516249129061233568887163470221237029651412656309391088258140014879755727869082208631389699762739319316335776565998551655376465726814085386539247909547925296771453394068235751859170021479267087011117154864218852835817546375616930039127458791006161181886540915748075304696971907210804103133438654085288517439983350648817364987094137318713757365931559438710961196651783581003736942267936402208912766369707944786915422991602373227202878296848503356070718902501546858490575248324065521190030411593286348262692882949297721126919638867696193936010421471609235185024482316154759633690007959377740120943906276998566905723990674436134982145089478220993518916692919602019011635701491953988642676680294553036579687353952994055095289584629388792529539984694888114643226027597177585229275544574176609766267980932140511194181117080325743764421543215465633442220059507900389034144333074532158740151947365515328295457405715944076562866691494172525337234129555111229925262195336208387897380808622965323865336766219026786036585616217084926284867435013772734831998419881257135976982335660905879739502493873288664245967381322884597450014716550388274599304264372228286705679399463643582281224295581990643721386673275979651501243357766601527497487517614109834125457832901544594122953146651151211157623906443467512581188934132538696657713574154156866584477543555077735360967135049345930667811764677817396529884870134696450639398046097857602105106294646145913600583916506844093958244930317078219409065695734352283686819952938293501516512095278695527060545109599470245279182076630149009059790412855322386678856817023693712694521535713363380342689312177497094654562772638200390235452927157038476241515377932029058194005697462230293438456370549700511408795844816958097437038578855772203891881856293128194317691941566151696074034136554188215633165138467300113453378251383717151383627195823073576374876930499820197158802136734901604188149531895765570850312779215292943870493356594582633936467858729140282115420636580115179755803939500386344067132447713013962088078012338041902143425821544820260966102917992752317835073477074998862020008074023358612696593612672834323294230252877366780350163250715288585052335759767495614971677525760374028791980942838144872618894959716118121800842573233519308271138585829794980435429916227321874557897654895393871935194679698931604524714893855776315999107397078043730602760739639147788963896133841379291200731456215415904991449773416146788969443715274152551754736257671228137186651396819864525964547187225207634699102742766509609426861373566010315094115503044549054039594717504220473718789799175394682717530701941523527247341012863549351368617844976881031712824387378798696383914873089927861970995093794876130950120643360374451230713831990154152055659919741599804342753540945139089675574934742376457765350307868113780741979362232776899989646533258242678695811487316510848119516765670155778455806414135908886034060280229630857504288883938925278295931462125892900604681556701238876925949444725354764664745782260202439826696344798369338400009293257327233755745630408492801476538990713190241071389684579510642717767416182089762803960326715090129703801254692794620169108526486582609373515931841823229178500538016136236176978801066512171207264384210794415385337474830498643985866857620294705432689713825041827882294234246744470232814427513044633290684358352238331933460739329356047444448841634099208951143175152653521414860632081048258648569517712659664513063259960800772670536022335111204900438273596012677856494972878852697755035487690561143930113632617758791734853872530770395001181531129127938753094984313096949993294480954833982632068237191147128352812366978172658030346905973223265961784048428966926734740120520989936345466551945574256773413431633144214715437494046665501740999991620524884226159929722168812690910269519575755560178028440480226293332420609331158808500697493246543862690694953868373346250419566039546067796688080981379504152037341276567197903685215875083949058679973957728409579869346771282860431845523814918985989933021241098869819106297215370023605054031498874083763084691155998613007323431301747546436388512578257304109958441739569498492805193051076499578830856099477061446095445034968431197185510900776602362147055579301708884634452731271671935905163991092919453657396755843416069557510546742968285247169203034095414918036564690536753562221542397276902782387841106818191487587549166438598106810949616311815530608033540874072693825555797279833590868834499961342516364617499126884170784765367013415643150043252342423746814898829058515867988177336256010109473177065158017344232966233261962111418596025227672560233699818017836523807145587816138996452393455914616982146336091726415312154787453270482071503570053379539228747902248303187357159789320619537191539345447266194081322042548456897495484748525397803235617112820256388367525962213019913908976293031831671549303353958684962620472592596923306928750857090308208180424013454370905809038890394051939423603199748737344403189246916939721931648272007676732815845592510964649459658320997200493853562735029485855327733413187943765439976903114906160094032073303496608584167825166276828940168696957390432615171214712815190314997199169280268806633991600311731762901243009482741402096844310555536056503823199057120727188613599607373584752400104537862302904689609926817678696163310419580959536758103275436962835465112404482521885676220427946044884486453784571426039318019821933583819540055091771414508712676582769133965516239111328611489896258597684653831103582870727173407058558333483364367620460127136767723463579395654950276374896398034364987802870475672461119424803073011206977103240584202901779644031556615067589169773102471607222995579315311840130111645300168367132821698863283628450801027510334312672844694894145049238571400937271558356288359699768623775955994269938617495328327347541804741896672163621396286307971878729585358782569354538445944378405077591161995675325344715468860565512085376245861916919926283431111591393567963805095341153255128095146120505704207303509388059758738409172243828356032936497217158254334236842118704102619738785903231044395567678986873717279606987013265889189249758882314031294547401045264420091201472728076364778850292430662800699585980428659882962308617434238704482775244311837440070609386026776398599136619961179292978571953244119218166705198222791629319823768018705804943408910105042960207819224012047737314794896747085454300488285491715064934985721301057761735705849483416942951285989938567484245329179144926386331065766035909929045788124943007705787183699301786308931707764017933652281058922660081455141800019053033731221110913684805292900204488968491431151948528713731613863665525164763115705308256869073214396572094472504782018134266985625705393698414902932172890396585497362688059173966520499063711618745501235610986918926582467603681605514945346731605784681760486334281862327613648531608853439300266926820072668850337188512772520734132758955689359007700096061989591878484469660013401325004720440271073113714744743130319927164006754705226672163048285016782644083342344609602400464088109754288181072757881933695629797122709226457998622981388020860075088803655243003877166791742923319715437303365037592938327260766357522269376651624614887869548521888891754872855076573095444897980588637533573555339346679438355401543219690237528752069303085654435188545253077838085994215437064680570638562032213727963212033276550423362482288568127997627505309509595652297934914788666621720147519737642867003992131867987570319157050540252915510698901606977580174902709592553111758732408383485556583207638597677909973070778397649354511428148490636669703454220769875213915927485242875689561716541485859112977759959651456865090438378795985209846940787726349336039415795990486552088688950171245354371970304329732379211037699724368217706013734978282845067690639776438606513700238980578608423235782135070720772331334173457958931216195716491024236782471825106980535294813767978160061878501934147583055389984204568056474877729872115375219461890355597527627995902328567690756545783834487433262972992159365249619396076288406012644533618498815007465206157145787283398972362527407281311166428054401761461236591933757377862086280527765977314989482688173564145193051816739020337511254590727783761601107041213787995708922884249096693980426042225393266881673268336370608477655642477525829109598859708755965812379862309534506144926894345959167709816964662114054639525554651530201099833367167275647748964832073708437971924393814026826194360385492626912403155340143915627042447380448213662285420919463348250934772777197053994712702849970091957571916306970005998195391393632763581121947452875427104984542241173906479004570701381177514782615653921970919006429399499193531578955963535598635965592024287620779999127549571553634781112391840801322528892137787798030182916262637676846208231247717403080962619870333874496659496250526180150856791814216952850628161990877962840145022216390377778404927371302992750595194319872986756429744273183648481683991671212834742553266578287586325508726323021132183690406073453014551377129697147349551157142838075049409754423111663567060112956895021950958228588143513677728326459074073579612342692006090951067001166135162811058659709462649230823288586206053323307208659945427100848561873509709650987232752358876795965323885407328885918303545006324099699132578700703723941281633448711728410832589247831606615946636770697954017707752387257865553536650582055129775662330375645348589711549701408936446016908893085015930568703670059911731073125495995294817992132835290914215623219984459301058621348411451627607183289073402335733390098282287884112157071540262881554528490609391337969571971172168754751847521748731155085951894483812003113404292614006338262289447034515831054734324598897551313803757003935037236226022109123980518212437759049255547634856400105181069775438927549912090161782277337757645438447633302692164219718563538333499910611555420436500782796406990651239497854415788629864740509048495444150430839154555544326551760036676977646571291595832174014427877512850535053948007868905949199232939917151338263770540016187333238354738673887592919599211557468969791093496924929044725064120108752198409402404561888018637742600646256298745467021495577688573280593021744786790575404153378075265266963353584786773347224115481536982333192063371757141917457251769353283456012072456353176984325473623245380498188699200811201601132758149382478446008713026050935951711651471614500296889180712488252228307150565220659803696457096575262650063597474402212292072209533164414982184960374828963266057420843346956345019223112845890404823914255405827454399651665108799544947963230281904618530138270068054288607150100006234700393899438654256555367040878202973461547658510918027275239721210696991038970274415618562810840417744815528394886787865886628980561471847224212366775419468295447545722912359118374315881497817724478005873905779094305561628906657618882742878437171147314579447489340664212730731558839799930564088298377396366809806350972723155539380795832238194348625391457166249393168135875068447835523825715114893220321545245408823450568239656197805585176144567652558669372974844445207934522608132441451649033214791689151693388112729427944783828775393919226406026953496153595355827241827948926797577666347388439195923414953156574021533549261120565286088604002433839451684722182427351056409585324013790709896926442874352840635164721641572543281238010811825976777507011493842651850622549870432735131470389035187066037096365128365442257376107687924131323791252381924345886031140528508302059341490281069823829308988707782679260616891071310486412197499847669602811683407708688675843032923739552072014720674039837957029624781963205505654044262521868784923416932196132786527950388398827030615354055947965054391753386530967933032234511903764800746554506238144763956070205205541427877830793867376574668379284415832704738583159964765949719233486029628880743431894409168440442769081674695980011459688130642778833345231044115685906555802447230150180360425788516208914994020994166413192378162618954747793423030052644257821394660883979877989928081923016271541535147703368408747294774083242117413245479101309292791809011976557676422817398624508669418358138319831965795713284500339172707204694248578904552863696028891923501596761382903311114259837662358115658857276752398555901049455654254117545685023894548526859754972437747150798461043411442952831447800850492498643514972126741809622077865255895135273227039832183910820122138509943676445790363091200328457699106859669233363295991471589962453698135779799453796008643497539621098406823277394703950663816845056860997052353934318143036726726354121462868956671249347025210622009217089419920230330067041182839030659345252331644706085335888232318439821900747090189336469497249851971540355060375785429035643462638621478033239297456741626869447172104464259583769234605213143625270307438321957854739013916022730339036077865469297792775948091050618900782382949353495239066308747511831816827826111711181848588273415944371337690210567251698091153538572262578755415354583500967870458757058484295611707600572599732027692298983042125672386348965096298479358829289496819797091600719071630754215370700942187796780272605516439768549658093524000592027489696241021945827798704957522068842307886240612157352863271099297966489816988832079455157623944163123020627865281612981331972501037074955300544228708702019232151799641721152275664480338469538616593308977653255760060822451170970568392139745196607383422699736747893693759641269512610868073518938362621638423497272127598259629435408864565607483495345240979907948967404851207025910457985829797962525980588139813621158446911167574403780318948652237945724633393399353030699223494890444845582435063982994011630514983794068856528285417310214139898877202685896494984100155318458099551528667625013908395184218593258183890328585907367836373562250425410907223558478112337239670576296631718849837370184151582725416065400665002062471608063320164143615245737424091606908117226746084906041107321630121486758287246690450396067098301526141263470464970447823606305992116158474287458705798912040440209401295891771019775160514015835658298852300892295146727952499069621124407583200099384522145530029305086283210336625572713781676734554467081172265633846067336537152127901744659365752795033616123026216732147050645844016956855934919229166984131862023975348781369166664544632920925262217085730642365630248697331011879535669131076374534316516760319949109848157655801669730952076228000792772206878152738753784911109623277737671815461412270733051141209550167222339683266854627886599348794218616956391420440719801460069276064067129951561685495016844228926677448052654556579296817538721333609754122915133910070829450033553460851660527401101994339403429988798265312025433649225315364254798730453919666478516274838339372539853961862933560520381716709914765314193784111422511137712054196008505131091137064331902655873928589292723410576128884591892011053514419477084660104519164916591143564875029648410247273495143795405207930880796931333200036508540820414817753098405364024633286984164649139571055022045252960238018741911869991134649990106086835224367831980626064228480669019638452830918854919908657161279820850489767075997091220112084546580410225448384314275624116185704228044360684878258344162294884192651114661651384593358776174989974539949137387142791107382207149489886481778646852604660131387916748709562726222540110652629042979741166040449215022251790842133696929610776585413644840622131615151098509380702364648115879289331715410779860729528527010221470240765185967793014562240281256432519197568641969425252696531692595370588443450139099125399900044569088496999862681153063486412781579189180691909521569388531123103771999299565481566774626434599429437833945758394136062666290254285331799289922911774687264873525350483421112779637801597619867950612000746207339788937803182767263608878054529854947482210243752041989989771571151138884554599074071903164944920219292048426477508400214229072305501661487648733501370572373802767844827126307911539457504773471625021443965734987582774339978509078502312264626120339743231666890223741817520834497691839444466573056684131205932742133821347338733046201268608272336139187715090839687028476000546092711034991599650536680922597722262033779125551423376983803021701641412930994462810660442282111148272416408106774132124738282700785273321191440261806104731567535890785040834744143558933455487157766823067520484260784262153769298348234800414110263546143359006594476049388541306880449199810910504604531879036124190654192532844268280521142816816393354183922237234751868440355914828433520892557708040848788874542377399743845079910369907523268584932899894057877063377107573319602166147327983270096559077196736268385535559348019035175028231045171948240134823506080234160058430041104973637915580753263208321589276283458195748682263888261472855649258933447890403542375378825460441467674918708770904156803324953500743118553609441051802819022845264748220131765786015574360829015641969064666037223954311043549098249960051249551816872440612761809765151934828744793822744615312491738214490732691298256194118463662036714312799092941520613717746898858400852431611298759134970069661600625328294398639972588544440423863603828127230436065621709660773382152945061823879245044981909609800633762241016276511045224890259377909651400781129688355606373246419218519356542694598608176562722977957366837299778410377839254751115489941695412507420467337652508602560672187508949116912259351089168725802187416604736980991012361098517619912392990128854899540787777306950869397752288039300026159504237289696190748194305077510790015001441860356437751437779214914642055531619019710332757352370319168854193937174642167999468760048146720349539308019298781939460708919656439908146038339796525125640017086888516545730374223841527857074180156435689436595231669996616686177429463943623974370165226257945409098978952296253930320202877466725811040814650838692537838011676098733816113228715884066404918123879708180038881050527997011594401140176450085022528280471581084547346458159029234346778087945948058196732896328002588592555134298334992686171933503151085117645542047216570253402967798984193517052948464729223097698211069656103574994303596721539184450486141411384769536383412198075445989732399357515510627212216510455018278268736109022326846094663889711645271781198041831212340831286630931376185069272908547793925658542746343091752076288450574543776862126201613210039600535608903043461829984377203133172103165991545246474775392575674513728297357541690372939558437627585763854457058731215337936862125938385654766585987114923305055984585539050447951110878591741710704633361419424261923882255641099910323760751735117106818989635757133486945438153423049233417192462398649373117218165087247081019581342650004854311400457229042732665518622317748275251612188759292037373412738677645275811578255504414819928886603938078582578707385475925743782525505478888741307752706759723409554015292823816273837999599611193066601140961867009358809582873506617878883439052391874112074288062848220197904671314310700928042031646902077964761091251547991556342473328030765500947424261290880466215525591244189101786171879286534408039935948009666360754167469596878437275879598961265065237183425419382837737240560227498846723711954627618554792526902520703019000474326203088984772910749697031039479112822752199161254330699863142564317683553925034457332587825696966765329482745780681157265297668796900861196530292359483196669652850492930493882037371325852603426871357410575370684701830718942398647987959695136816058010653997201968856448534260017645116393695674998437200889148619330638183596721737911003965459807647957393086345082093609119791676244342548911594686276876823827585221364963732691839638300564654085685348039180530813227288615299914537226706641321054674446361207329899725802281391180160775687209310655249461595787837446214089387431318149940355473844173119243793699360161655030626982725453025002012053023061313547382593615330512322732951562409901779996294470694765549007664726767717310106997609434890507539014472889858513439429077097000749207172493698934458843608524147575018198209362849316319232632891666327677653583453006726171574232576269883309718572231508145913196618752815847962616691327160907417440576073999300558715641918476071442439225774110301819293012092230341442021651331641653789576508936228884074982765604580173579313541849196771703420835595265277757377359175735713785486893810695862788991174106325595579582355697394635499569953098508094658221368197905850610233720731436344221706100058214054488685357855931055889672662291931861662457703239062381250035670436270201738121073929083387298025465165937514320306473962629477505360483225805506153694025113167125585553638106402223053654578809982823220770763243651390105522688730951375934581550764185601338906549177491210435936776434781880515399116033914373148160752579386444843779488322252121377459606214757905302180510504644260510455678055264838142381530165217285190099653584047837529182864883584698934982491688307532392456233474547004687283955653514144277212949182447327788440751034555518401188741159638288670339043590081159452269841051606110497582069288335242763659926439916602927835751977389142018924275039195440186631814635566123467443979247319130399371846443948271441582314593009484448199540330587242902817055929317381903148677089607475101864845758886042881899275472672041156226060572261156634248512147657513255874891896968741910687090780738538998719403903128991748729125750716859438548062362586291798660719949243205147959187668796319488921359660128236894793049936644427712469105593552289288312162775607496599754847545054675751977004173235152733545046538302813763796615048636254137884147583802912937253085416696305498882093343345969425836858821915585597749630319354569714284725510990806604978878797108950295534025485110857241995580401245385322385992556266790846711115351062998292962094979100411404868047912217838782850942188534964667528329288374780979831322961441579221152814248381047306909730931235841036519731735385716912110034524256083042218504057497281171387066506728537262596964258702931307535953861348763688553558418320492204243448059938789167745472165680150218332437021202342288324750080155730987141234099244345685443830394012536681006943801881116480241421966454415974524044413011483493752871574850549509881834906615330921014143554513578325273335298745294779114939006348169983853490627192539713006660667316813039968912312181995891737167311737515758388880719847168730710345686865893695234317572888265802363925743972672957001558544605577632285894697240653956179218248804970227920370296766120682282432354028852556414532686503551120345151169790998471527553922848987067327993287836125550860760277220503695911585027911178978058569653808278348030269232145147179138496258188834323639793016956307276723576967998878551125798135881727275595621656868639119330343998649600125229786135095828634103442440155036256695824936908736131720231146078791475896062225715055218070486286285170333709592675205402709419654940909029248823591883495792434076960171377094953079529845157154955270438562323099651497240476514044042692760408142293368679608949538309217144929027461468294457428860921676140211177689154187249614274828857143394634488260237997866768987999754546389924712543767661220224682911683205002947823882732742809623077964770726154131174236354972764630557860826318103261158066552060949146398412613137759181129405530601359211617703599746956624042567333471152499510871482961602421079339207088610845145099257142644078005657128156855564432783933049746723112565003423375605996773526567657551228241729553679700700539343470460604063070234426211812862166129947039150753645276820724299225643473387294907656070506132967385099016573721200391509753068876659188948165733444821045756693503405507274976125338765871319820250264730928932066804922703923425365198817102834552267149150790832832146867139696835385048004333471175225127832816110229792035978068616586683507351993270105746065662752006409404509667616127622156822431241660609441898686970495285866403603912034938489059855368717949633366220793629727806615834513307298703104252012958535924104301867250271161374543802051861274888702588490818600793657834098627213743369004556304028861605736712663562103724569807127841724702793794949538766018771470082502093424891180694296708131033505333526887305876379396326377464336467395416308428575075279745813051103514787098873264752420718816793217355952997730268795722954137884474892148974426770559405003031812762253383696785366512554832701632413723475931277150571534894569312797429453114390750913667865418758517498380512020055380878076106612299888387999467350157931504563465509354883985344442450791609684854546688400513207436870379127952892300413596509224456081938101724948767443634573100966237852734012114835455565504917733779866698542870904294206377234408126574055729362659618713213663608711087766954440500229278160199385558953786696232316511552666630596167377430430196000154177093009184663761675902944582250070161947613727099758379441724957954151942003021406455394074029677872031941294010865754345828931290898569089179756376672519753555545114521009950997648901351926032553779050891864790164807445182771007296203563104540801530005751602908223612295696798148458637658698847264898002444084008219421728758822844014376680276453787912776826862505515096812678156259253788505105321300080575941331476016016559859002384152623361211058511874770073622413802155062827999233480413662222575884495398273784537988675586815748836379085909369846698373334215175930694145772422790574004631431243989339874706447636084981114359846609533805996123935169268084640403335940482490316379173551504915953003787090495452857793603018264699032637220727245122247644644302807083834087889947528414166408147254272933291047186012426827768437220223486440967547406816793298753360130529498894021984086621475374852670611978952678044949707836680957341018255933241440879577930906557910554607264641431638136923617662321413352131241238440192209580229445388333394316874345092468273052261674733138599207737826652193835705722167075765751271488015323891427225782174107688395318599827473940958208467640535767228044944973819833085031974698124692525492755366183777550351772106900762421440379456678705050557299547684132176526675896475322397908938219338308412013837620711935426717839501019491207036786235876592789376845356840808337603997341719881199670489284035421967963798256624988523244496961602678579718481425455250653225491581599398784913300369466020211940967462588933823026637062702829530186627889912432050180408086531025513999920607015941486066233368517507850510682050705311175585926274762811976088897575738615719433077150553202886870801967833646799322150348842232692513560140032790525670569891613271252698662945062116539870182178441478967018349671589534283850468356297715535706038312635060753223670122044030998383518028053149662430056952565942018482704497831329781335672938441528204913908118411834185222436518999826483165097965876039768580497159573371200274558054322664709394891491326170095146408939962944699329778642198719574150726609351195223438033907690252297766622091530480138890310808146980271651647621605823848192659241799825718085382025881206952831213467576384703510317009974906123907432176942604315710694987000280252052329186067989879406047262237043605481254207702907247418504425488434634120539358429201014956773378668567850260528500421463285534923289836931871396970942628808279064874861095143514982887248276831715747107983042317918325053990508961187201286370142617986515239737662784101225226024820400104197012886575014165226907654452133039471164921626717825879621168220323220611778677743594575721585085780709918494222342805119633326405675341740884643928445743980554846210522649637996407150650888618013329707424173560523374165396449626086873833795254976826432939329991406472633225011824193183533053577377003572355091502897371500876758574344928872826745137734350429373665334193462121166119316180064167819023403847295050169683352740754653284482514905745847892855334323204038660353660317289076817214142559830110318036627260766443862502894725617760055547063869242395419661060484743857272608366404322238248898565106228351957842569858256086216983270218486863784851451629012174287617299370921047950260725432890832964745345007337010440412618933113290224951087875363094263364104985761636430898972459223586565055501201566784860438331704007403960381055518294688477589999476882210869370907061819185590775111438770295081255048608775533193833162003412327761435974408409529562681423156930631904733734226197713425585450513009500221605227173077038408971020362147221608070554370810668238272601895219891221778654458896538315957241338906415324656378459164733861727576923106140767193736996605012284462798534600590363859789127614350110489220482773574577435703565373870566294610061040619293548865360628100006453208057008113953882651424044812153131916542578840327669767790548190910825821156636001574037724624288784240429520152791815711016090665948684414865314470575976685904796631097090610312121035724239829525144975272933413635604605122416488479925948058986609823901361331295836006395086623989768870099708876333289699746665867065573036769335838726657136115860861799919694613436306900022308534830748048393311294258809719149504083978026291668855286924230573030583251109825106469575030091038329339305851151665527005114315887027973366011296196023140577235289624150386511621208541289627429929039147888257644922478776232389604415265844668776068164945013974733600887382847510538231675430871124176676785174939028787420057462427027671666849167250066620920799046321124741583482694539508036610891788773131497406334925641455769121469748412553665235553916764872867705679157413454242270531332574495730587492727961868171834473440721903506760621437581872918780206922568920260060685513985850577834385561898799083295264760627694334854943787248969641884615150590798283679904463303772565611852481821391425939638632834514455086117459256782973631585037595907917031726456081518271852825748272207778347207826429270935838098543826815253299232667086176189043510105921755263588924800381571384009723680082393724190625074849245745221593830176912048914865552112194589011008826783928287119787597644967032902255829889627569266060234315557611859077167905111649078861744538739535423450900881621071663723270733058371306526210651505391995333223438923459931261802392430222767508234107714484279416657783158385319853339417855683292398948863970924578779155116765576338623164033374064070488141990907458442411146131486979614957488311142887951376798566070769803138485772458969594570419297355668554879517114637582990924222305916888929277094032287945969821307542583449200917224082957051168759057832054708646639092651556700181607884293736940930390309531178278383615234021472344199494714149360503183174550857521720111572429669906509323810705879134304614288670145289803131143832255303590137351636417757705550012130133974943717618940783625092669210369043006450430750140031054841116441141269073363352043211246518871023423810957142940061458743277283055468555659654390565223697923263517762126791414806529181944599184925989991359987052260137930517179587191839618389344568859298454024454013361023635769975390182129357338737827967203476057912885345059021770193014277184176149676347882395112690417551182711432839304515032582889128204506242676667293128844036681200074208457551942807428407731037767165792150136558296828517847998624875080858598621046393247237850598334363864392179979247914121909239010581980357376727985337697669135377664744960365788055887757504485875906056180031335882233777026520246602414692188038135927878758496205379835301287069636890782374689403668635908529396326683540588118868947320267077186348661704383812379555847382118616809449931402328633885324528422848393019149352869999456900659043054301253943414816193141274676371457562129858780840707039267830364631012527443092437424353431399649025990608135256875843006041388765171880807752359847925593963948629420062862717838099096491336717160932589038410297225792436800637287553487533084621078210626591574013053413133244606785710553523607492969029581562949630480016085569372040407022260144228502919098986576035764466482940372665482222022347596189345236209341170970606388063052458918397745047457537976795129082933950326111435449497526667741891715529879737676217910093319202649137799381142746352789668752638206089972898671456688956650037297143743295262077593535698230980215809636045044850708164062908198226959111431123706790584983284866184822081870616814929310715038307584817963518979695342503312110031415142280042719937917923057257467353639305866674456172015679406991670867064842458356475221546086128725416252147140479776676114588088056774584602462004459272372272967858683513712275662653801052291313635189386246767599352609274391822000507933751418634747744983744403687967649125632614600460264863487697945028911082382220517570631493092557383830555430007938425751671513092230930235370490652111873298617998202555651064282673095662359767040674567295017603598465333147407896899360280029403763534933161687773646407453440695713135131763625743530264527011375084530422075277493107018705132506402510706627679118208968781658637167909113029708194264258091040794502227690302396611735156913161381907504819237064070458157089694848959244014983442634205381132394036963238578354318220176744919822746745797386483450595067550293103131737994743215860491896187419691455346852788176571619233194852082073510320998854927993750189935128891298501810519853859330281845324230520848384057330044078781772533621433372189731471203304569632220031785391330712109966159599087041417158049439674991718196745971848400296866819187146291537588089225965593439675488655745813834634755222794074266156551409832539721108010190746336894892547688898676830817912766163668505424435920278972851807887976744155183276204632182797369837629424143650814729896921958963368417654540324622774251678433698080314393804173234132462515164436763094412382553563062317916722070645298314448268424826404586621881015562158122998675011307941800072178443469842922380769917012318319751083919186585994816809118556558953997996028453259704824483926808155232533692200272440032375074515740713306316839334639173648158268190772364161074106042632858470955092444944305338069927660069342342075245104935394713227604398738154982451143041401611606609769345819574826177399870056066685418854738189196251748249577570991840190570265421705797561461451126229688552866397389421193015730251581186176290790523841945065559419902319854177710486926208495624331343181996168354194577042854282827723596005912936962439238355458584714436310969116385626730754671421169636045006093384012228204616944154817364478301905964995422264272907782051232758579703766819425212668736154196712494065396311865403196469881022403130791825696945008988751742391112735480973772846086040646223716853764138761023953061087756722654130458604442980595657999606572393742566391532830061293815340294489940660192418126071617871884558813774136293587994804417425331348409990731496542281097499611504538086367509121668604031179745241686308339039988616761498921508151898035725552602904265640962391116978588360866271452223395493608803837336327714566163785919951790576101536577037041754748800397883975815261684669778944401657802878384502920466888467040587383311152750425966901436989928726161681645016564249020245736573025256922377170047944904193027911335003726121540535284568966520505311782588895340162608069659958702418409284813716164918859110653238419020168955485844462428299294225841798878180640866588905090428246125246411821862600664727593015903772626069203059969815792494776111800914304962024084725595306342142551961745069951251330821204795829685431729703849647520074161427169447457802317318156414109095794211602895495420499492412375935259654563331102487948577777043101340666591643104133196944723190862165982625875899759772173811692968144485314032436898951062009347324615804659630448166632873663985341834719732031538378387490433365446092253405307177137294597237062214783090812073810236068318036137095291194191427342865758976989336116066218567913759745277295872377648789060738607168561998547262015213913899837631945775135573675260542801281212238787208690624398325403377194849068730402555292382855955172583817906752118750309159356929052804113386202952426597021618383061073963991942065741022557167230312791210856196700194030505423356973862420742111643171027181297370765465022937523896358311503262832239496506193722732305860531724841839793194615231630770240748428308491904807105284283731284158762401555955804745172800208890933989102786424253147648859840284305606318118951090447895862312609674048848310488842168286781889546050873326658340695417747361562311005677623406940079244762759884620641767491783169702603542991775833599865448548838677696666713195918617864575089526319737993268170932524446495918159465698182439119306571397744905062913308826609655565831436726586000538695522952112217436486053343596853714165126772527743748999271920931781825113518395306588849935218793590863816941213794981111043962454832615236519799594028178609846268468568302429409270366612445339303856232309732540519540330851272095854417659266090456688019826840470022407844107391406067154337171846183279343124911310260125051879279139643139037300724406451294055834598256505084011234078991621838778448751731087264401904061883674305380937333671647435528085982339954608912735779156990712249173994310830687533480258294657228921360218635382082688067717466181784751880806729830847687165559847392112387699854790304716642810120002336557112817902878240116274290858362248228398289030380676234100774010143231504218080495169326537172210233789407268206751595040926817975529557063043195891942571386466550748658343684045021168992304955496222783688903448183138513765566225353686303334158683432172724872847327214555038397092816466214738388269866150970346636102354039676081858054089019593683190633392016504137221773946395936460622600867600054131665167248579508561126907130219839875130824374108602056409814087787004182718363416951156840947576013689281019351117590109160216734210564651507864226782638272701823811798942967824268730214162727548059841655932821968517770733338195477380886674924194796538121285095208698776652396174905367622662134376902595942136632104442674886118482441473027953179849598393304877224472393598079605148948056678368757517703917955132794574410134627720518578723876676635511139731853897987274231780840393773527913043286477365542099930239069464516796454429820029731224073240169130056955095349319063040201533685041043058821584306335569386839877687389671535765229388295333902147567970440905808142067254826774259736575640301853661302362755201305399260071457153187600604348016734659140708356930779619944258390066981953703814472430716889624895825117971644260343382559283723367844467652262850928174071749652453590626393412325508649807103987604262046141599685221872022020514526305613765255863485505373324526901935728449937747302757891523922080729073725049474215837742437827417174885364742885307586958172472236343678857901330425890821296328974323760309625773634169298614498192024179830237594161241769902289965619658150374447804801866635691472020047727527553314851737050564398713013140044724603340131043794123707224818641864719055437325662195515105250012743446562429495048579156926586569338268513894102300239416677018268704756301290389627131982531934761248857013220502867497995723325746341738698103765428829265896141159282092982703855913685188532163641624058021806513430353891515674523017169462975364066747941746947356797087910460674786297265610294709522577878820658523181639821787194364898117426167130854364129645613068825631629337733943935507465883944291077653552386950171454065760310716641532697646704030583760171891043433950923441824294038837500807446246809213347376598046158145982933464951695946597481030039306884868359671483395090937223261143626959658595777766884281098095765287701113478495229001217068089438855951344234932261125270843436508526242222509163332925590009589644367277694330816443437341755428597048611449905774743569211229462016691709606275350214979010486836749716565575124475695885259842832714803289399759579668165306236388031523317220165842531450549265591131194927667452683581071938492165292829673486691579642232646710145838776058097133047141004920547462598529132318573052492405772322762197419245456035641431887304911238697590189855988041365840323942132159586379362456353669877368053591902488601347214144825000559476051379661494934099435322748291175488856245450206843394380368295308186347962193566854020009188422013489057597244360742312346108614076104218026178400303337618485035130913035822167830864889693094051477745630964323430259760448533860251887357438338916572671529973187822798756092358197208436979231774243085432485254023771200741092713149228186286614238695202926145937702984407803087958574961212000309580962344513770336962127635178778865229567602841352294570099994638889037387151613734420762016228370342109340865900471400608015170267570688289127677978548195733836120879035736757274140932812356094316404266142142742591906139254452744828481758868476392921978547747266063845560154358638011056327579297213633111585851435246320609779030489062069677912648279859499917634020993793034006440905332009688312970280235810600951710954256603183992025137536227823908237669126373402162101650528338483716674399501645559311994874921699200575488587886821225933060334590790611050749743763881364944122092746558072718197579540790443273757456121572810998970571569922656068191809337736495386114894036062875233479077987578891347069843959618340350701511592734474375358189143362964302301569509873237732241880773739069871144136561808578781223341174414685711453265407510728413776888495200598910167366252277711642706007965541574027863899658971658079188550597182555943490696071071066219528739783745543606167121421424581797642562019850746327495703750059771268794855702098984539546747104034736859716950657159914596315168866944501926818646776301593380895630934123318499609702546572877286007686595321956994595832864668422860936306223248094830682660482554844744125558364437939604873462082075770406172299070846443691903904846929663087302485981553434490349414804311929579818688514886369626010858121455266143897380739688549790914793231548790509507073709696337887781442572910244756968644768557351736289371346174724784523096329574866400320022534384471228690011896016125215674300871029144696253860606148817207543704386418509723923853401191892079608013996105841746794450712749208161930972065563905169464791158139234577163240269311943488579007561810461987885414693074028489760112224460114333449793975196085598304552548264335767651650857031702927595681041323670850723052971714943558430736298574400058290837104916822861857669583431183425517113687049940470258783613480980334901171760258056168926618775132069659983332579674523466664144413215205788704136607810167096391259238654266391495348658153067929550886023283914231924448994707766409394275156218467043813121388852871125750039983347577940889185615852208737541137715037042935359213941711399165255983185771745394292005783816271946853628550286181042630925431612221951677495416299270905412515095121275207000405840685013136844898400348894719405970433423468296915064083852227925301423228561962630253468720710550720678187348305843773292521426441698572161623076574489269766571759511449560576137903764648759824300358264329260106855518805757447476415140111921527410306277218003000668404415648748140356630981638934170913762134353190471055552304811519954085767683526868317019483454073160740503465802747452096044127996988413509426756621231679731924346655249628154998488113117334041881815261393347984284437168278550917795382697313479570761563374183732070916944457738663769255741015014710717142659073488859949886813848653387861790788444145970187456055427720645480966516042126132185796389229766388174667551531507121338767014485346668828658026410355266798388494945945710586884589711247785548001222678820704651123737425239114869218055520240826502114722023478113294042446004040710106191211410114041822132994179010074016777683929152202492977204874133031964982612963738243584752658987593277747241421281280263464175326070731074334787547373299223486619549331677854154100978213606272703989328409235424336627750755898853081565399762256686079161220077818587165890144021699886783392726941298348048459939426104648919133843617119867392085440443069586870173087695288168340774655376717236814330801831305541613530313816103504299283618377367538101068809689223466802709872417407857268572137370088205148930078988896105556952735989971934092247608540033767545919539242891694133251157583623590156330233583188120245219185132839347350764555450948145980111947178641565660435074110190654383293390853924522225254105341714969221607516178932231335646543720822881307706630411946384656737758954289806085603934272279170600452141100996722970103756618951710795672578982997767172416669482456416202609595972532773636928107986850047593154328456957418073369250737010002386782108967983863243858010644009430340600793490330817914304517496218698574668859033924732507068607958410099090183649081829010883294819078610126608230864778755528913418218011854920382783099404481557931025911077785460731845507916815484631483264770045929576533820446746227991085806283730470813069889507232822228961972288244862055427460251228892892788508655191327086521288086030891582940892779420963976668890671182313870022917913615453402333788998073563126670933990399172465409284559977802898211924355268030500175831038909378867211562773886082386541649134351048267463712200194942127922923919512357555235109245913574434422540116906462776618476850524346610682137526816337849006209530109918626882939574786065043932238792767043542306986901412652982370505630916731514376683069472821050678869691224749043526683498086577942998542369645969836817376852671679203202726238417247498821509065651285761212065502911787266043474502757322136881798478413846988126168810320120399470704532811305873423131459282877772098602763021605201753006383766513034097391813026600721030883004106219932695841207637507212307196556557485895310788454666585749097908158695819968581552056586523365706127893477901244922336191140265244745298161036860381353757590499770735987471948589404029313266737724674706340126296937929052012877779594766926553063429271282563958643652365111156841606255908803492201509387392212120971313341328091344428162629434580167756183292688925008432993487199658511931666344946559955781837521228956268221309795958889357157227834191733102406756620925201924766803082489180516700155319786214983512653257896631193316414724765295789779774155566293290857592932598377692856158880009626001815805994765148714818650361069067292832692129550445802396840384556266600968308036880611023133314311625543620930906895945880873911935921538169590877119050959612331468286260190711803080593649598820958703440735387147359031630593212026941357932937700125087310948584402626865182131650473933364062770860346716982748597639668732645504985640193654118666241342525412972869501422432324480592399769144676922879033331289292812793041061776233279898849231478933456124971790574804801704042821340847731721583138308077644065703281363239474255041218425403229495107871906317982589112157646979326504765089941758196473475543798701707471160284718862358471180597292918558636179668764712432644558684515453178671945499258119278096098898792688611068533485636922048007081529993172513977049198222791224609183549515858669160790385612903404872624036253347242461879902451051366412842489589364222323458725935710496802273996595325414559493181281820472596472200996133519203215405320824947098474449508969816047993355628154747066249457581486681157470367757545768671377331828124396316790490366733621629735972553340855637218729996192024490759835342361655045066214373838070834951406833523416692789999449757241805564580462362847395382207506020160589153084553636200635665451849297695745456373663133192213433928210264849839835961693971720649408575509109139292493939106225908389204640004860664260272263412928430743279023742130683439545014621889363004022384822313432849057910158367411245922294510053682177143966298489547516690263753595537722486184353674993765945394301193206320232511457572486108599531816787664621757379993372390541075807105028214762052430946972938797451544774237603715284554975968577895493571468856899942446814699778969370635359275021162591474874576695756404518530444927305717326020143273059319974214029064178267388189634404335258433669111306396502745804839876279621142885210766251006378318220650334823783702610343457005566430017660862864357302338576889349410466298146790315586642576384692785780638319234974534654502875252188177624018920577193017184229458506226712123374899024042848790067948137236451424751997754963522182306992158842287695731830147633197175245796132634609097231602343077403328255245688840786275836570025174138469682865287557769033840237987199322648046873967208267922137960945214616945155958924873014629140674568595966227741757221104423437082531807117001726212420669004437693687905218785794137194567198364345919430387850469562679596067526953401551308182435509330203391795044788082988314069653725972523646369526099618192783010263451909793762244736568600660449860366425618518412248025134087343099040866075630600197522663746648732388119440930340190816222227321053016954625471884522393721204514949088817075483184229132042059254398603226497431577348115808705470542620524584744338268858542557523061231055777401458130223771061329474333360464611374033917899303168449892827335506387545572127643134421039050800724961878620214497490075037342608302977513715795195463683724910809885737371265490712176357865639449663474552690256546921962858935636161337029071186887833641427740436857213199326501923143444728267767227609105672278683593340129717261969694093522861290082960126629909083886339441179114377647547761005068713581407139592501035363975612294894291157812596400667811986900934453951104901259254141266359315691450125129719247300299136017106320971438051363054693537539647910841040447207067027305998812045117817786808160638095197484943167465063811931397153482468483619488951316439626829182310494658087495440168101926575114160028717459080612144671414439663318777226805368869475862597675966888165239924729254187381004653254075214410505283029774583981382796871797862629331026531355144080844546036566174321973705481988861155965692808510874606106517442683292534866995293732469689371398081363837907410496538079540583902227147157252883758928873441674583156433774173726882965013890246971002038200791454663490007963569237805641608373469906000317254921937396773866433017006557749912812552958519533301591003067219112778317080495770687763253662127874120453553686774081673660168432838263123011566558694539188609241164190190991817969441566828561079882746573242783745243564535612036871750283440147919349560497113998095223945102024781346630290126283589641137764809802287426440871730661881593900396351623041777716510422926615374544026187755537364412166485710743366481021323280631224695044671317299361059085527619008958014177329996868563895746173438857538297509150808030512025422070875332606950698238331919290087952949159271126266367624103480443343806363384255349155180134995126898466548090213376690959926356790225260066261330944726721339048231580642007448242634748765930187082936259402596799633098540677243310676391069875073998192610182884738311863108806296197330233556933068883863321155058450498258201988543188449029775566399602902606326301059789932371518297884595241155716075262379575720621335752100392607742442782236620214519839728956477989811193957869479432520321877647582833580564808931595175925505750578717685540742107880961241680488187728969249268995231176746377458164646092816669919270246309521817164265394849127074201200796573552867614080653288674219395849269053226256954102431082412163637452370087519562840022162941311688011132752613297715171362084972822326512997696286599213628641896381381483883262895671377709432109896341194021445175002738614408615563124905528116679085973950550284279990602775482656917585348541607310651413082463047618414064332964548311505826864000154193451236445823650189640021838951977740219755941163241908972756305058305688801550949655422771842883987087352729200249682182799813821698162644165201685092505559301246835174654439575240071289694811966576398606198061910682704977959051467997134415635529541916984182149034750966565743710131141189167143304062691312314792448027837997216681533012255406735386839232481818543502261873526339194503318002917351223104975827568555983445425153790245248052274108359025476222989481031724842272620921520861408330788251831852591187142370833776566758500299496029001111420566636149201591434636097530122007577799205412928786709230923256916018549455802735709289483617003778310871471973504897576915380132675866718444560120635522098312532101703353148786652098865766138740476345252182322897870697331147925152466162340397696614940809084296039240299446337836673351525648079456842293797302282204117480152893966031408479291837356347815665978269893487795415206635969182486734310128474363012780265022777243113243642323354465760157231815067254132053780306039253476709105679647857894676273742935556134478053680659329058461650155857844858237258792450905665638217414836709914446141830766881344550938909173349343531966845676055269555927731661270462052562295261807382612949385681260423527879109706523187043709787467685013539514701150950699668886754397653606158641199026491011099312063169693809470810512667101694588363790419946502976787448384194555562577314852350258562671834279726484873512100605579557777812077485156083762965838344617496126691227023297463133031111184441260223539163961228934086040487609694540888346753683916989987680725743165882315606930787734235720176375792798775307413980490859772473905093901926757611891939466987419117382155608541293631403410648375462835530441746890036798144039009855537154961823090351196810256266007432317520363162033505612102766848055566618621704112268128901224439464756735610226947301699370800324144284247951297055690765875819824916479665234226314437304056630318483976778437134656003773056491941926559835300404223997374000899794349792746266786262666442791135889374843272233578719127978740855959593702487129123245748099948876985408764811422799671003680767601140200917848272733547404469456321085746249009648548401215880639620952303501882757105652855732853310621406248327219196920302613744277444083346925084799596797175257026135733854235680573399587883064647316733138272822852332884951655522343144182471123590364741981258285008359116036991923980486117643935026345624912443634895094764823183534076644704506843671263521781732880436422847619054466851481076692474512790796670290785467623284902802119953630866561113051759018121112161157955189127251103181197714967275243175045095007748418733186378903834104902471688628729134306674948101008268049309109473919966206420522917937301012337581684981340481549714124036731248425780020185164202560465423945402631756622739472672806695368796247046049258216715499014445679366547870501283532741009378979557674336280056333940577815035188096101204403130939303462142616127015303914372135468996967952340810292578007431989613599859969496931283075761609772589588494809502915063766351996656179240698164597852219199794094227578685838901880893414358753050486082704089647979120563642033762751230432598928073297054010830119256113941239819867792643205999783371649387469532298277622192609627997961240222841579821130002552700832040940389796516913208648504872446719246980604380333511582980211011282994669283198066629064287454412109345744568195917099334838770923269249640853211751631504698158479585869301738654585078325202013979239828460984492397121549605606358813796035260071665793131759839957706407928432403281424265712431448120087291062816066166409797371459384857715904352792126272488450564619740074748011818109826204655497350236877095185051828960967749511208573956531288033538983881085708378024092664972921221269701244209941015524397743244244561980927225345922573403403909100546708791498085817623635382620228313524807871885841875165515066082225939620588512162529540337642542364512336155151554728369282099869004185923090904317645864515154471565145639076580470854466081340066416780863834629089004447856504750008354185029765755711010735284574132893106745929226882680543414078147170984222203555936451557219049982511420202186225560241113514355701659283033554300343479695947256516558822717121288831283808358507514453894626505243622257612196436161629079131141234540815749809391248166138167027309737374737878573394795973313418753281851259159914370458828994523405683972783833936052405181068532730327688654811233444401930289300148797285054728033157522826057772973493579382797905713020332058674925985998164553554326131127674392140802649358723745791180235876302323436831001456383009434539624102803815552487233621311505911519503127767484932545059928015532232261038553491246027969464476465112202990999208150433065105026154363246125492857561079653579345528151240456331676415941790969063406226037755693265713260889959086484904207128849135846686078249439643253806383700190983635356127995025516847336719906505137386372211119275915697039879647704275080492598521453099438582796403786406601444470790313582165062168245232418488418424667504755706082157455203756724838938236294525158142310847148854421575280291979404843395855555410556238203229552040418001226058349538690756412017909773494914575823346249166506236814831001923351042832187938228726998163796086043961291449629814397103421110133443861972535337780789786893589935891292225666922474020181876460800346770779505334329794308890938445692542498535825505646611450372781849529243679792099417790016461941528369253565039500203608704908321017945341886483233099740496682805318548537962818205902919647203746975718572707409749590152475018315339084199508360385576815824134683130813689848880248529504171377958155816313067680408614164273573243891353099509830426634619231551514581583889668780773934325007689075329655142812585123949444416843063797631151534584232606173962470800489606186290378182512459905271020607068178229605205498640583580360651366277617289100432670202217779822703365851977199469409883121493575529184489868514021507797599304458375824250856421277051816029709854496665056165446512014516410270919430357417822439877092314988977187201628058706703690331413705780406087964798129485784533185886877807613383230664168406048236619716426936941362546482247838738912473006337594848905886847782467342484766851586366741232063379925421466603012182764157946764153487097181054882372370756797023863270570854909794854085897809623996810581725092288492108389175434057436972636822009328803749012329008827480442043654472556898469362435227611558069548259267373930302151718129811963188273467647536963574165632101958839762875883691135630690419061210371685445991313090453979786258225984544790924424408542514869102371594211300243826988220574999672108101427842126221123599843701712039428579124374433183397144178626885021330843293386369478852544085429329983014555586366500607496349814846959723019896751645452366131697672528952270829106320012157113199787104236152322086809717098166352644565334931358141789990944111814814301410561854071866144226616895575211316651081346600733747119702170329285074967593988530435916490316028074066267626630621863584108343816638084479486370796340295328358314887031650260509487382953496391011882238456501725294223637246194800897967072058670739432158530997711332222980808315433828664671153804170513037951533029343180394721416631504595267108332475356804406791214668330740370505694431450798275935805947641310039226483696872080219007489179968406296570306410771837911450877476551865899280818031392759002903491149825867506573700810248145231945090470515202150516835932711819080308088553264595930839979562991007967636851253454090555135781609763826972951627840359987963930628953764941236630930840606495547508966199165862171454667245146515803976247212408043582849146309574945674379641093603598605338960113724657189016625891492923962065012941916634905521147854213271810752474191025794995237324258085371897398449369481885807520071861323080341774913345283644122096856331771325361619719137059722499650342400012695939281103330374877155604565556534961218710985982880112495561093504495528087854342689807564303064032655928382666285858190061417863433895480266092699802376810576236414471213306469244560619953398392519635192736059800623643810766060590705460241553621267254563197422714887253663690167794431340668693471824168056097497385023224144781022591031734741746294182898866321352207177531756777142292558579326570489122636490392763702826458732154763851527361193417988474277069893971627751790364641311279924106751731839813844867020594469552243843361054645039761357923353291040850591905209181962142429776409315694776609919019336221008914244455282648978977523075486408607858449799375321187140045982725961673958883612438001523182155776861604816203310544020653216191088536956787650563215691648038885320845292071234467325316422911044827117543948298086499181129204916011289582845883995205314694312569177484419474127325558127347575016931035850274275844643514907774581213932115400344554757773439394550164964908882894525958234163341722116566572292957068636916076576215032465141445857670542817908892917309357018612200921731151713494661779337885580020409564357645432080888754883776935615702786510823728843880109044472588790811355352633621015409497297006745820735304893443369152703002708947014902894155260679861210094921866760437941115801386880058111330889197424814627686561741023168637926042754922011357433264585699172452289088115283464293242778652824551711925927767285164596199791526921115675542134241122049764821251931840070140228450680043105704467087860279495660659932213348877685991800067446986328259765163941234038815406275539694009154095826792455531156833820462774467481406228124780898173315877457434948402145644925276442349081496309172305590168302832741440362886813819465155689109799636470121627857498540866451431797827112695255553853211096443749844756215976533678382831968989562454732560937690092681335799945581249885898163590120995878484103844266526817168852165945541413213916704055202435943896617950968376625927707737941922846634017702752526951161071000877786334545178533138794685549463221675318574977848970510376628980167856416333943963788474042867742838081791361646332190326577587843418270823987798571762574465388661016538257683993957937463997425021456102007984064798303141522395279981896617765428781040464903693801611810780363029886292131957778512277852073023221217228039038947487476267283555783523425627326471730922631154473933587448895915557821101525823254564351722213100287574182773721206993911031388503158117290822956726404262093715184938827638981934416478703361731073890625964963403648856153275463022067763482890485017429505911392849037463307962079015799753755136067875407403999979537906561219810377278216274335103256995564628027269170984038343804948763731542193390226357623936811133198101673110525446215260329136832763362545430561791365148584896430058077230256604388762429706827092023889329779458559916371720133784567778175939535613297207333530755991557623480151829418028209476330290388202763274894028619579322832129596797622112872795113400660042485002374480337360105038557206825424114335603907144687429691796740803277026726410986337586288822691188659367356532788678154694131801034198325217407787424273531514082539237393384812163123995504289239404870391607456013831935775010294205651473897684572776691399161817248664425020350287493010646265978899705699946342542617549918572835275599924369548178723949010089845146820687910091951830227570024784014177990607460930318404289141110535073554558372757441044419982024808101672542479147093368197092518012040372076213531832177153698746345565886597835251678382356001811965191543440314267175445139535895025460174558384159946355744439564157586209066904410382083657772786712532732654307830206459439012378966332711153426375528812208863307315043039488422685515751770176844462261885541457863396411189083443733202401211865396929489365776054307070997970807706665800319562025075495161342326644934197387022739345022778668248660562773472973625105354038510952085159608414155013241888930246232984489291530765576545143809934947058967685294806567342694340555517579954305270519987754089156472882029077757037030445275323220103612126645299632900879370133493835373371276243524270065734785310844757705144515224263034236644138517410041498013020255658804025334527973115880664624301097377865701956598781750503368392866998717520973660181790838575836966967398206939435899951367451099809926422800110474418844593642986012316079888145270577932261285488804868160505525152296296290492506698529755699457484676268885830723151721241472790683107080886222605963045008562297030581208474116049031700993569969108371273201463320141516839337956362970687190406707497244140341929574028087164632567497728573542311118905784167663558750610707318831326875902819159547729777860468978820878194416367780749953863706010334809887230580501771484053278117960780825706926797755918228481414888659885548969184370516379451469991488436023045296811221839476904772358973515163545457734961872710292616224941432378878332780018849520195067748025468106994129204104377581569331174873870712311336992780739387915025287119109795353238266623102159345567565083972432733113793466412593571293752614704203335527152593901185442535391907137029339434586134649833677057446238807244110968220798621356632405397486205332134922979482282969920179414399354679378565079738822323485705596828888906717590930239176378420096069906329117558054462693988112883234076556933688085201498843818205161739083338693337182216341389714801904714129042652554337931328533964973066040034131061905367710501293728322566834389608506321362104851815517001308159142069087989177997644731890858745101178437769482214590635242706907645239606655121247555917931512557091447615326094610549052821411823845519243779019235917003656541789621115811733388690023743916933820449526028411123471129987930770527073624495742464928795808428465989595299452319953909211055251897712363878393108657393186036811039441041761787607052910295568061090738106982381678497521333797142614915594011777609729152348600539854185127283341341784256697761072431810072488727977802644186030941252183552692588720761931296777385630704293951701743064723471844793494926359399998497028724963668183882699642590018072482640469409757006371947257995686392659406132353070009292030464102480970888975250731010949268293329586885480443498114032551327322518629810986923242710264478293399558981159941218362790128120092476138967198456922198748777928284787033000449056018231678318954472911363773520660827314447823582077719592515874042554879412153881813525645754364444858203251501815282675797854993819763265365891470775385433745325293098997040691856741954110569917805456422273752697583796717830257282246158386796066724357834477466056422498841348450389080064480823428251502901254253598315686346864422960851857440777490117977540044171280855127537256465602001343491843536948004381739383520856799831524386648442202748834551358183691573869678514233905591503393199264899884091021101694942799973060529632204092452070258738238382500468135114463201501117281478960939135957621429558658468060695925990841087130431743726556455439381273887796725194143592674892810017026689984983460380279827867577701379863218651381539644418882198835680950571589506721161526493506554188823582250587056015443404001623473113790765555203468976801270646742016993347052145094597126170874524091731432455068061609470500334098853135957105215229319847019461030984622459557196275599674777331704108075217193212666412506759293436854580571012438364195666945526619969341203842886171987790766690785153764610548430829627826349883023328992279231285026370101943494574618159019113943085687236053094349895187135976260430632837781528671283115649664550290663534908328309096726908254450824949820656485353224970575640627125153080858332549629772581582436801709795219794802946122652113951379507997126994381981967256880604271025326572308391483278206583699944634156242481127738845715029460488696669246614161128135254490404173781012763236971423929309786033666683965016786310412408304073998433487223525716419975096903155212044889526505770423936264244299368255243869216335489066261869091088320206236092225222365549077447608505377417680521622306738434836999514518514353220201615429484775980978244845780904135866345959586362105097102424230827014569540671812848434713612939566486166780355486805075944407761715484440886472525213998834104506486955171585037458930093596357946667218624737217162060149041445276977315605910641287289720557520489707418077272510968008530645429140164885531443639053845382586001819002086899100454945461152656171957889193626210907044675879356858408246970912910173879832989746842613315246077861208179663313377368230406452685272615960823355689607372094711213600754864542329453098605940994779874806534152891526504706980448853953778854798113124894157485190823826627839745722930034035406907423033877373761990756181998993170755512193095202374501349954427619167109996600099169868714521079421456331772109515922959604840925109522671197273452628026082810363621860622788817905069913450544865428708190919753654716585777603041036691035421923757686216978948989306845107387239539686704163306016330169849921821357445338189933633025449471962835396023967362722550897494734433725347430325226118173718432822170948351026761814374962887634292653920090244217459341421000279870515400737578834251214179784808555075402949499277200219162269618781378013783259823029039150720550538556059925965250195157374758247343270075223493406353789282885180553155563296549260110025681692091747552663395092151332469503788602577102827949842490247346116163072751305409614180200090302189301249716182067731081457901952342607921166205664005846637868492645533194795012595118166313702440888925869172452477788350829036099161475809914293069922423589281071849538157131499606742375121822318660536190186868673384421709686112806823902683101783928074829212199979619481101528484748549271062464655732890781729766494351479301912343156724452171882414045165183487735050646342424785494740747754093001906890711698186220501950832873837774645012892437700041251558239498748326738123078090502238378708845985292591132462681168950290297540026036197338024717759813054600717853658534648296697351224400697152662189372210222192489482367406971593292022558271264727561760698562883974903406818094027801598920727181931478525625445546166028566420799989992724009960524247719006273155987703127466554789309728849421296679973286329122350132401402357507263559258314713599460894833969417037529872154895797522626721559689983173715533032798471813326228087902545802478401820725455226262394665711664368637659978669082183341106905062220534275534796979384738122085086036586080634884823345163198618306518319239106417556415238527964812064378054823387308442649030774907698029755598439995695328113757053433741387810415227944084418670212871284491312010212481172851160506184240410795197001828480511437954354146546071502715402524713045695084702730460989657687790934577028090767147790429506202816582516467730329104630699844777666965016268733649839040860703378716291301722217797432782929952656520274970337394836710668650834360835883876013559210665597400016622576575558936889828953170737382649169003722212466748494865992737375429111248188256065365592537691168289898947584745280799638302043778583161819312613988689452168298272467798093781976783117413709587701606335003453828212475115677392506775350854820998211912438480144282049939064486584092971911139568964782208179957531585467301106982508331519259375316042241614449646197449983947550422906086107850897321200420682810880888289060244594020812189641276347132153001463166007038666658972947348643874663732644040056921537432531832289401764154080211446489052673254752759444142913725188054229888685365065866966772732702393616522587860736649970819411771531131657279336955225034592410242097609340777898318929056438169969165935609468000172137458841194961911932533428564171029107228088959251325739616379168757858200282642186373798202122137889042765380909596916997587202754540028608712919860953588893299601360020362713736015626358906087449026655765803147759217205248940345055178261605638958085246483406649986160981395196733310520777269181552713175839951328311162799364427348245821381434626379686578239494679813565818463630624562042423251423321709099077391993715951216139447511677894635993638921911775935017829067917129885103680027462744222824944052160618945724065365692368017503673744130425545005499550601395098053507159930114132985422567654038837999744265842382505636380380113559177192430860498518282832652956273508977273068226716404941760698044717146747319610898345459687389646920785165927820583867470184360886245412055205054606122554596499832081154067927564819966757137910309460269022029952402916268739500565047379084264109147841711085434240520621499533144872261284279617209028911410572820423749389921848326847455525728298716351502513412999551093812107455412156260793112216920719210132494594638616464438271066698157487948661120830361338317870232032550935580102892320404667903136326081287020143985763859797335623282015473924881972471219733696504504246865691847005975005011177063756638400307575130693733918497101060271072807771504543591065371487186389087691611575682586538308187705779203090360141554271825455430369029533163010619611516791678057672897804985779816445801234588075457178812473322401486651544507490921266587721328283416190741699539683852597450902159371706880438715985758793032947721312258294649136293764558521957228769190324463979564170343572116558227305220658515670512929954831823196009911697586169843255707849867807696559479857192917874392238103610826513807991785716539366966603714549477042924964201632255471118309314809387155601529395338659554803773948706891837269840036880197825772006976077745816751141884640603231852407119772802456763947057272336318810737897513873766054258867345089125238351712637678279910323910283419876751473176183228262381388584458789882613595517909825586691443686258855316179020060312701039123659429877246740651684926578571729700832288882770721253023755522072149409963987245804503765383763087211019847815921788943475333773919448294410487603074936673617552760240137776497732546477513063380858627831891467533757308398827386183014335751178378494623924303338479563897783832721675721101090112064967972797909804656484090996571396560420881346091569283596036255835579523195235017148883289270353567862569837421773719868547979498328122215509914616108961940056495086259276306642035030680108336030527929264323396191576785438601875200187349027991485110274431182111946248381805959538006846080599192006520239859042919982359529407523142929390184025152683005402055257827579905264728810919527853180165763931565674274244933362253915281372832063772591074448029150511406525318642818257811780670124210784856670128335024058615845238640384426910750043280819309383493798855930127490131790104218894631093268851371448926900238766594062914683530005247968648604148250833012301783825362838618535671871212219036366766652820485735648594436712839669362568995226794304561536448257851533212210382489004340181907923311946543117481945064201565700659542374044164823738854797311550058368061092736981425493985467505682995670567630769299811623604935567328973200617019176617433532735682596413646033431125207504486010317843138005387208705193856854985906149795938578042498826170737892252487685584593750997373035330890712268541068001296395271891765091902315464320424417812850127266736791341372457789242949593512505153991746228403702324275079264914322947050217795152319947994626352051482726206928753653095695296104041854821536261969547867824929264864457443320228941855128813808881285457045652390578372503420843286811732263898355101334250312657967543680440433030226913062262641984140487456135703446240484253238638455209456366767880028153919357723334957368436919064255574592312304136293489754681210355556446729795838858498498491050362735597978344482990551021745736281031759656236439342010344285865612654988887030519593424019780989134254700988741854227009859479745566593913170434690377410067110616886477063719826764479356598690188683549397791888092171297565865522127663518675395986996599523652191878561921556672014834903666296413717780208649414415865596694478781791185766724035695908370938579987116890048973610079926763061111733404271949044292922990008033886258673301980686167490079987398115563108532871788127593583911450644275910655341731791839149078171733390344577026637041648234006096295385408787435477099700909409865567966202789712717886779047007575821889381470401945096099681569937178485342376408377899263775645874652178547406202667182236480766909470405081208792429336890327862690911833463289580618770250843177503050831403022726302370038796439755440270256645518887847132684257390948064212652484421810807100194243150700194773792211865097284978684000849925433117713606463397874780268624368686751930517268177679397681090307487088549224393189972852132471756605449312014779511267896074812876712481645918054681112478835198717622124546849287102412396585648001288778760344198275336860689502405826491280360613943619977345863322701551716261610297753741758246635650647231182484254265317319601121512628236514402623611329373152453309264779483309501611415312484370906825237324749133719589040226586836236976074380886364174698524745855862662665289561821908616789313115640233232871735753922031369883349826796616126588470429938633882956078637265617031959867913680350571216936842716833024361738637570736224958902278682627653230054619078920347089952535803712528522495853827041961495267678209860212865279287489215197617331437100838519029866032984791924155053771170761014342785202486797292570241589318806396994468331696213303251345501670161660634172476315896874947357088608927641183473044448384446550889743510615881546208390979386025164413733051529748688024994429827106606857874107522813696351991216398354940839859502322200569829394003215804461781035092700802796705399902595471210048828656543706694056550857514226157742042026234154123043834652870930033781886788873705336269944587903884114148854781246844746115907653050301864624203120432870325444179994635900294522925538467860605796025034447228792658766558103630454093861387576475335179060219486039896399481332707524265838525752196774037718214218668003722041234408597053606730171497183304223413831394422473243774619896224243003177098690182179935307141677298786978766263787631195236848722738886485045313953174196504396156672967934591885206569044727501823918151264988412051860363308794446090544626251981884547051271845305306309509330582509026102046880401753954104460749616958595063688806859810373314075145766637946686182750016698838185309224095563479954460978611075467789297710576092792521108848920779979188517715344664945947702268652662833397646911368953258789026066375070447964491010815023048785166657133295402735605844514254210802977375483665888156053244129278124827690560078038457177917606971215235253868480023485424860529091790952151571473163215343038870010375132438174133299168619799445342268905817209660276550578820099422641172778618501090227439561029207080167297132326060189683163169402296114763552322059934153317443219914438350144324894911278123744693931871920566322779688869772150148055386871299137085706699609779713840113691468945222616981304739925982703402598549483128382298854443980982863795534660961701494429510564209812362793610280949260817982264596276900527985795167678734342820908635240946064595532368107973714798953879559520092064083030169636505520208151388867907838301401632489495203697233353924702665207953014238424697060912244245152742642800971213754236689439255240327409288720001651676930834701962073584220902798182210862331663168873296141816068393014404976968800421243671972961799068002179913737287054539791786190200216134774652374165610890337520869281746873706648829841269205122645766473341799577664078976447223903124860547866029664646831874446089149027035893389001956696673661766500518255247217916340235502291662702770309292895497184541608637753153527359898824316498503912589120383017808183979388930767139075925002653429744600265332831497004893141754567517320050288573707776113620039556810822611654865637361858573291552111600962313847070908210868289079168216413419918897056760188443416079295087305139700024823318189418521089283333227223581899403700150352463498792698949506664709234228503619318802371007007789004456206215115261008803092277989100188265871013175009580205499777344195033945223134770880185054071011103531573865557349806905341524765907378607675979695320027055215962282102824603292049122351693900179092929252232099682891838088950049019255050992178065471083139254154617017626311861498000188096202180279736702736328097868399176233654361459921170214929891933643238438139918695145309782590198978377922127539403743542965796926444125241095042931791330459587312291165058753087080539697456575402286514473585063490771408067081126851439391740818850132392178762934408445054387582548921057411023937247487517485312960173382068365610974551575157479463241693647194943387232662636874515966877470593074140672215080832442684251416326015593421689875648874332986080436303050776309085839133300444581998921082066441445896614285613709066124484717276301453362916725336697272397304236641069001736552781863748180233689903121005181933962474493754854438066079955304930182348689484478945013581269770632048888710235817376167862605104162720603403267952846902069082562834019536229785109579095884501692025316724101598086734012556366321964770349483292545559018987006005758692854728702791695595585116287854428139336317498094230677652692903438940973804671168981028920587381955966720806209038209951905142811603972773818133620235521962159128880275797235967330978934399541849259076071881378336310004242702631673255059502870963599248520765104897767055812897584986050040199266318194259753720021217874475219435590913205113112013383360174758795430411325169047374277685973725661841547894067848747233698051918538655355718973286254003587792342403533822756611508715379658908870138863361560460657174498514793062324602925671430118586113806372927863734428303883557601378286681514715308005566663511119655714650833467586358174508347093423186879868517030759857007514887900973888474411515288927623285949239001155265898269033074534175391208093745063339687490919973774293797078555850136291262277357592109845412719473316488668121272205291408057944463125681575179932573409594102343392911894064556604043295669338713993745082663269514549702892241322957794657772343695825708318717023758592350166678194438157750841357087298308050966302539415185756504691211949767885145117495896270511595868206377619044171109457495231247706124618294946749089225328553974066680952523964076878341906866854874437627968334358126238816646669547489120752005816174072635987506475575836051842958594854711880462047008750803333882934328090795890807643797265519231086838783059128931636314850228541621158832077772241471148965034914068547314953736475664089555198079899003943602894952735346496611029653479602141943645279735354419654155207451552350710436988919975980993104746518509036539909514154836629936426222621211516442319640915660837406058379428823637830799686611453880758169236505360168207518096320790245544797891014249622538031984302410179695273756281717376965590327914534616174948079645097063158017048671071796817685955307837947625408174690255500178671161384507796069745105430177104926685150921856904008432900439183456929144887553204016025666717622223340752791780627205763093352025571197985647246488366859043455868211290835776306400845435171132790641111488220785638783749711993680721886140165490854729726628208916311149578174994502418793218711351068699930406191651980856253335502926749536170678894868882653436359639379887976676224434306892266441056861339265161091417336277289790227805373533412509933922068404187038661512733023726797935629709242480006806406513972523153351273859330697630478093780376049041990992879784092153965640196642067025970699401315500756548470560246443184209657854500286264209023956871914764572147917595389631900832267241975730612585587679628297195047390764347762219150276264383630661222911302947043230807060043298042794418644818561045951750878337292387904125684866536751306944481129405685048454032883981191576545788058676484838291467660447199979986489623322624041447342290090107299875099872728147871755204276385124930393489618588141352115163512122352763905867612485684561056886212082274522838492226965416483073081381526854143391486147938996107510977468902085890938305017433450281770697188948387726919814901927688615801161933094205025317551847281986960250163080419504650478663930526026641997035274028889101379944272756749176187076330524212043697037102442370870539142543994463433313168630920881162341902350470252253792788261070137684747554350730257924102006666012302324905705505917220788605889279963421683555924794207338703903777848150476273711775551431200293016762546484700886136605002142621992957706565327513931615264063425977170909848905201285906270427978362874010009940161036964742480712626888751312009724743425265208850548098793220270106004339599889996514646316750623747599095360738967072644058683031869815423949639120927582990371402220221988195372144891037553451807629079359118815599312043623467870794093247514421102530745595001794629496258723264454320781620004446773154615500886373071037581105412158707189662505619153767494964055578522167444640726272931353557816639073961883908356182116103426493145275223508451821025818952051876901101702850987214908471952829346214617274399902124404116596846602060794462616287029074329092184835337360538679792146858459662856515148193868236959655019271281460002199773408488777830883133101026849296049746709970704196115980094989843145928479218151758802385981629076934283303777115589360156897349220146073365405956849927077141286272192771177988848016887216996070853735255174496529700308165433419763255965618285713521883502429830832898777157841890857463542270620401815716345528412936613108498813414689644735988064860816563775397312313944601972232674764271397076589527513114768774516421553218267415936527112739176070814628260390691216851347321695741036613070471107433165831059988654438575152722263064392968124189147426634086242703357510441261973188512806480023022010198079639163699797499476345042680009386488025418779829465026783465660583118163620967142459730592551048378539362039061515895504984985681991743250117875500580169062756453423013793689085283550804555332118267989060068993760652183978176664086803938051220303722583637226816530222933078956774976168977917573002491912525292780383330784736803879104331203161593046025733505932594597480675387892346688856494919572802998154170703123723144923870689499734984127672642891970817716205705423713141766325502867286713143015847416738837831443559469990804401864001219842411374772710870477113483674029152285645886323727763634332259019997714615285473975021671488880194053536255398495031702850944697352803082517872162837113815910766657329698028513931673126763588507604790814827779739700085445480252923489173880652883864436907924056360437271775453853823282639818553763049125467334293247726385124251818917999460385335756064963180473229637272406556159816319328956271705662668034652073191790504728392236016156796514467712562065960329627830021008578700023115194180387082381727162961813873961471648202628997059302626225478718392315432885876726895163757301122264811480048771281766085757566125200366358710848682366415002638213957299585546418447990153545482275433602511879867138552702788830560409002665566617975834228620449692392080238987504151747285892708944599061003632491528442432883926655369734428529724912727266196128619143363490534013905756718418664819538003737565427879824337878786549915060877504044845010477498290142078978267434842515445269702074187674680677991342904817871395523206748860810243623122415690454516327020655228592455695468752701046413880325932776401797459407426829563751883569598602518373154531231025128015931506395102020314613014373360231227923420822991125696084864009469234170626297469870472841228128472788035864988882140047581041513612994707611995963064168327902013648350745679943277590222931229184261172134712731133815730869776518027157206168422261124176782427528788321431598568098580668511899066316931097298686301002188810699827047984348816556875277464747452509106771890825956694773209869435023002522116891368066267528447258487980900607748356244683187678066995535438031714310686572359800747881153042244130298798709154674760239214552817035103886380693091979179269961375944689773807828485698424952281298054755621298192138116979976803442758628516181273787431809428556873651936800663256603500750913898883615758406021245014908799788074609055182361204350832490702598101080625678166668288692545875577621040515679693269928452987665547480741931420644505547328809985524440156460416048060063677550416549412227436790914987992254511003420342128874639306751257479418633370988416416527745946820688687940629798108973003471922758353881663637946891387228362906328885179488152241752403737413426348818404952802713279830663204025336435252133738867753964477627056384467618067694786784110535027588156485812503404843775643287206810479479148046101240648197474079425947482722087741435365348961156879296373428088769594985204669137532177578847967073947861567888020689652853288440607499501513818667020572657177847831030160318708895355249962848191177605293532252279462282003958440707791988697637537330588701915355494891536436861109342223402012563486139573377408876154530867800965404541053419262886865504055138223111247901901006570183928472805871902443042127001000010083676454089819975516282118316930264045916489643885595618100805853979044160341720516150780758626599531960829660653232218264442398476809397172993223474767676817525678406748801741020291610690683927843875560132937919336782911630540737433106540435997201839509067216738285356088136640758202833838963315998815224948864389759377496557445809763812759491407782420105499344608325635214461468627334399064148755745290479546192290390722104928939356090720324769260130783458639299330464075827837709179742305307799373876184370655056215457316448055885480643437168154713249203649854646467831189604690972280031228274686141432360758699252044254127906988444446662518391990347428771753380943582580856013719940317234323602439372777924508337853278903299562130888869690661578785910587050721497550298892834512952526080690470846597894899400597162235682800800317551568744928472499768791543901589715800404754635008717195351833818726559694398298218799630675053607258284544867791989676670044822648072295073784080894358248949462645339500378731366269419141595969582194070655385734804744841063946359600130585360903087512849308054731428872001608153380739173495691007996979394555117960542783640411481298507532831853881570439996742890021694815289654481372074591114247424608034271394475383769751400289250645446379785393336999828238060498407080930357372067838757736493870201357336046811082854597639421654545126336130846258472183981619391868994541670909850194365414787216480275703144762556444684044567311489282162247313116633928697280335549644814899653462282994070039259225252001485989553473159518239010765867530600459594911177344827602606016712861996093047111556385503858861670126649136308007712070675941890787090545492084921984707380484457562240406301438820553509414460610157726472446843194393063873428161911249397741909911526733140624972050748855535931142144507015216104953750313932317448673663444031950573752028625551463215599068190937480645196505054390076459369062294463763133307288246242366114465966211265330588285981619790034669772205394372072838511805785775207754999975444250220211029789380398071737318311517050470086400984044746708302653799432141578114309709471217873861903900265947232454581921337093676182856584755552001708500274493827900518047868200855970301475324477338122329738059416005709070735509959489652409677267513092330798983299844255131748266720169792947059151389110595372917638992365210663383210039293996338365288638627909946064086334025693410830157720276555761906455293896952024953848228945696753528556485161585903873406894619087879456804781695819578055488674056368871295036181960833153709716885498529322416335112080225024113671304562538615349768006975321520504684072460640991930265000398009941005888803259674176583728973035929355179978196193414446555228127905236356304248065567824408971128571655855684165130666496342058754238313136634590113730819985416799451792241981351541678086574751794475687630038130955307900481114275373477772352364077006072560572173037136560191136325728572165190674444178880959985798091998460156867187465009788675372688045471483534393526329424433483646823730585017407916849110069593460537245238922137568866298420298704435252880781784164490572531651765037717276076483473776604452581340074682446642068605878605697491594406674404970421179867489138938881546422360041226427258118023471254642421987586266806903254151850934764993280420897074543311383616182025200065443303949459824231019139848701844139290490318910678088974532176237611559954581542766602383126663047703903969235482856683752952294877828400239449855928813165077968847404022823127363702330656882898645092765056719360231769180435487021426736583914855467390610336705736081234260809147538052368176760826196391448657523133868732925113866264791658092283449912932150892765044356866163666442428371284490129534712431359510261184032468361310720252547169364730825802310197389816500978851972605497355012854080585702459886646580663982980475045720391167762060928593253467538753524513883542736159925375193396404031234413109439932370500586117741398573852971380674928660881062962438168626621544075671710565365521671151948236482462634429453428953913743261320898113105058825240733174498909422245286763361230297425189354941221224210355284481971414333913598464331513423279515530303670731069293091716722065563271352585393105609100992154536793354660674474224259712256630061669998082808410055249091551059033552656926819711475955739812530249555628140688564714027853979836773691405626063327121102729193832109287074711555815004460402194174357219881299083603468970437118323804312755246616541316399528463049642026843313924228296186766492375900144197790290880278242551944357054031372495001594085354275200809583200799959766360544497640658934019611870083284779939144328176902705873941894158525025458331020478805157665310303028621054546325075273565219861776280255917844651906007662210342637828781413812988373070905339626889435088891333871307267075046642050749670629245812910749364585902185484203251954049954221433321591880285760222818045918482695267024647163269820397997487841258222303093812353226598537115824646735947386390784941646420411712981661169916315805152995549546457866189560702066025084537885938673332300597160268677705094880287781949502655190689003958286203148515313183318079544330440848095532414922976494837522240901448910188716710506879122082006444350087970885400049558945939566679237737031299590909592671757763341582822892256733599708644261874883133642411237136277004260486400947961163446026282848107017813621591478370838254493009671926524894121015433418247705396889155949729294719306732709947612488494649412907821305055158320600505088383102268126858339031584288369845307778870814805220395585732388056815421442494584710366211314328382164499261878005916219681311093402309106807458927240537217437031587050363438771845359991667652016776610263122549695787046158160159390674533704815017900542716223784644931176173259394673018986759048113604809045249978713964860120109745565422495904682301519334914922758179580010793137032759953464443742219362166770265380220364068490216675922799937294020890102590671095663824976973829343690767767081859047569129602533338770337202415370040469975256631267676047495708094327057888851326424669043291572732260673936503673998833955712715721270174950542543294179385506847905690703689030590170858621019751824728390769328255403121809744017083045143328200225993475736250370874862503716902535243151168623523592636354570034038911985707652777954727483216752442994812816893544164090717412777035103311783142537864929661532210155187211033595970608357059851336260764382318642551722499561746429910549143175140596457037505303397942950805250147290473640435443392397652848811412524460519731891116776408701542485819644051700001318517479972171131788277416476381770893573238306390066131730956960268402493208078289434320712594586778693497153266830448119548277244738110100325044451613303184472603263804763306968207093371792841807592093506234335838586635944634257334423638744947710388764319432796859541036369151493936206728594874044573919303180950686558550505218456496576478067682594263038501620695041233867182263003006263243434701951664353702822670134741515988244868981781580449286176957299860972901976882539323309830175956556238007842701409310593327840011249853435991801985146435381684766362857753543468617766563108555054576957990639786315492277083990107602291853520197485264704993293468448953143812481498122865859299974768389227387204293750728563948413700330250328216777605759634795570405002308179912604736173470332988302939017327858557584955415372446852324126313293548107181804403553676910557775734081018009929297765819297248375568218071215045407051778267010210415308317803862846696508660995438886382173288531082930400529008566184596300982758507995796810380617630149152621159226226413465144130218823948044235208394350947725348522623270327580933520728566619727401930864787614630439455580043696595174469569221387666162428672417341535393916971595508174124798648314383025247755229439114322080234590782799456249332688793945319966378871595030332267960776469350794617164100415166305243903113331045470825166219495122761723290876626934444956424930623752078648965198124374035885129917906170453686788845859064464057010773986588658522776404911155877189600503981218651769557626708043428649228419482976436903915079560033973180716649160016957932163303769358997616766069552260927412818178884083821280211969673852942250992246953533898353513449886251283725213901280445039864984578027331175032649047308649870467257034521955916570500380766424773917852188922746492099374915582599736032662811409623964287120418072672940294989138505319909198132409228924506317589032532420810396851534116816891878486572577007139873523143191993406250866397845634075381373926946819858462633735577284915116193226648938521997268105631414185148721473094121527303353644242803969961979709208273736879750121932043178830610094070036269047836950704085583763163241675933851416268252767049953086658631567195719707526623352146477027312191484543303505433835787724536204274763098689692044876732510508206547200908280928089683561169974383261216712823590450218949161397000566150968909811848143825786227941586240013013461204642319937374176682341553367600865156659100150381474959236141753426476657477495367945507827496394831449392222793951209234163459462416568404283878142585367774660458785698027322867687648248359350016724011563016273777373675511440352362340564716472844586362929245626105452280874757553084360861179497435469539663625007199194428954073552216058359855722049343395547636995567483162270642510421024502314732372412296371169881590159475536051227431214222148320703948857784541778617228741604026432958338265876418575681600467927836808352080968633278219561235976067094011166095010826592604738084048043548502247137689742209815886262604160528698330804310962876119431555219063750746447337202784810595108349466616796113647438344724086461003413262427136670679123281917404084674828773035977490656327990885928992389631246498593037429428157571500367069057718777960888918380172630843152747115670794442563200544319322235654864237467566114994865785839677176533171096282453314816680059672902512743126903126830986653194084994901409513950909079380373618002646023523770632537924549345175158626738619439258272022909481659589661117192015993347190647037392958677350699235148236493080561292450909810855669317233021249169712465434949399844684470474775012544473039835402384642599067540762811555222209874980254066295776916820515269541147999072521842321495074666204343235098931406662452671924052241235575659300528411220249254885025897590596416642035000208545274826059106129625904543387083893474699007723458764107778209431941944570568216689242362178238556082213731493280247189567314935346285873576836473708862193203062049896371258736649810569699091103639481136218377056251091747881488876044283112366390272163891996213525532448532249343063535034179308294232240733534903312728662032577445302479346353110720891201668962717043900675134892445499872423177618256706390330875543012906003070539058916580678394796152775707513457545243248747547415187096495346067062730562627488773617158570933874436802286429452216166205652535844071677893047144074834689561817516270164825174277210101884786396368157805514548932433789065752053395811992272748363990525235708884873215362303635911363820249566087068819151097851349208231423354468359761667960942410402754620981037871678800523841952106058256674517781238820503993041743228631194130941943735837278241738920482574523327531835115629277601498949879736005146341249703168261442382903903861474000903725108017315512492116549128523182366391964419203522231864004747397749856288945230282060957521282412433559426594830918219234791232919174909561074369009417696371026877752274566637978621058199248486138976121506032973611521447237719745554251823021235133359008215752317308812570572907792918064280230318007112990737902409288405840403082728413428000564538144103727993851973852059118587145162773606820733694995153996010029161130525173743992012024662774788156448125692850789040757858496679000792432829576036265992314101156055512383503802012597775758232447164747089614348380313499460421279687262021444898724365679022850909198674206764728532048232019603347864008573185790980077025074755258661649226416641791288742602282434614100066701143303095149790843200569954797841064402561407968140315753976044739066958066938218259095569405621689270870768408221585289028393922254934945638873647708015694606107793561469365344426651347596619072890864103443288544771085674937482938247098141108616958977110454205546154009660496993804591052120009064780821041242222308317043539277226847935302343368790870452158567771724694313471105084625615833236398349346423601736902960681074471960338495683434510437252644004009845721442001618655433157072427570847452917629959870384854655307966310412927310179785628697721545271507066881839476250661418130265249537867956958199673319985860246416961868519386333487135546017703248033779314185949239783826790943436291547610120177154428221282872782405975131376406047818437317417987832899816665005066326952193324486241115042121813553168391341361264057118568440765544296693365113115884012512333562050290070012923927780921206032415893577003529888463001791275359755772024556463228234705239037430028774383774418021955324770494329436353564860794333199685319095673644108199590951875655035813858582237237674348855014153732202638989197644121744709746049891683701315790375351483188748326084057374117150337820947257592115838560541718051286650072881122885352529746214742310383800492212481766553846199577166819020829224520958617988222747475491289837858266471282578686239798694240327559263024421160043458372512859703332883201898471604411545174917265013795497125896057155263122916388138151459566440856855152413476233466982200946666212267106954323506989275283350033757956664164325566730389387952102626043916947117264323829853146580168799178967386737775921608350288779364907338479625143395492107154905962767144652644378888928132119861280557156959269392615102961819372860942508226263575771180308864266211069758470243578830197900229875624482133310366637011203441871528923320084878012002207021105386177508892203740020397597541183668198872956356415352003626446602869816914842743761817722526921986037117252013615456277130152342198101903565440635570146958116818987554125067845606545340398384433509243259204113332233798869944985671375461085297023132520001691732679619865513585706805394078641607668722723100719445510986078570235273716484972720122180809479697177187711007704318146015317641049051656468991475004306957454805418288441133034650893018473918922164801581489936966332966886203482871876562596970437605317287232055057088756033392093761072573994321851169056422570736502755853478710033787094554937438391571542296713302211365183080766972469831226555093034713526340635465324394042944249115480066819169939707003440338837715581483295610589281826850424943377958577678463371831785441743720585116656592936050821625414231978467863008155825267753469160258536653557797690303838935390556715649168012633468169522817054546022424191607646207731522941174823030580772459889264230842566405064336207003296603606304528276949449183139850273074039320081360753029192781388308830045944675046820499043899835706142331585033233886260166406316670815769446914293652031570565668128655275456344226467448324536977628153189807390201261933192946538745542358767026372980163271119835806151274170849894493217464358203412228031799839805740782251990415743390794616239991060035544107093870079895170632638684307535497225690300977634314773948227807463264589426989210528356761532497463809020239673871310304188400219439119238115418137873068358204327796904811602651423218522288379556884832974288427284303728522249174699220800436372960744339110491614874757111690581423098166440729176225519839643272399469348422620281512555871827728734650562931025206193119141744977430366067973032623130003441873636043004720205177575879384726845658000516964153621715617147730015953250365641426332764621128692810802339235627800626747861115774131837440805364388558061667630949878083450861254848858468898324469925886546467084978878296506873832004536363092103772054010654196317427019427565576756275103994470599835805887118421854022378266485566604684295574931644994548726115696124733372281686812357988146084784633544501921661014113790754875219854664024195418815005205369394590219768883619325024168150189314057460884641645690701475161412533873446613863468017286714841795906766154690718018231060962386594908429248851931925975007399776524669375793913709564314886725265740692735339605182920922697094169654787727664562662105581608819998529882917158324793529638165520318786390141263353332844202200876705851398557963699509587037585055528945965253073652275431831551823739512704978379339309739018744087138647660173573199659308599060574341529833394959754407506738285103817792481265238775894259628033118305224926746543896343876049922005938787647000078033643459473025426957686523279709187497295805357932570096118342057797121780599378408380809884824253850318943811521591830259552109895337721892505144497624498491800249962164700421886633560366281504872069923842824036767727323215668449434316902381349281149601359997622478966697130314468425856451861436343833595937854181615197513602455071835454486454128898545027822876027367907024100132568454760000755465964090606004119084781420319452131473362669482699444232618682343242706963238241700929180783262493984445616090661271172604354808542449654985648530444368478413459175865883488444497453875103865632488970070204011348590683941305315778283401981983371767013091741590080997919266228824522668978602242989965223927690202320170008389416285255143118217407750430912746244996341161659220306246522678053640756564708028906241428807430218437223008806371131397559963518428429776514398077479044079223624915417915987776249486947325106505089915913530020189304536209555100287926798967528146611788424906303046798547488387372590544440770210534481227508088306769500286454594076208009131054804967501831028666825546616069087110398581855216920243986448623720385840291105509203373719314313038353419045518280063437229891799238364961263260097178941908719178669892746860551117890981448169870223918167663918368578481379554647246530589131469964633207876377863171246456025503686262571623908672252554592587431312015003267701940988744943324814245025136685697761683908837625256483667295786228146836296287755421206290994012155700432580921368114835240421019029470608938478802507280823582547702952077646066679367849641173677118856363046817012224609275568946301976801686026573654496819659879271548197779741173211575430314142386144343282832381707542547206192325707731369784232439143882460545527473548283396154420340148947881176604912580237457661346811497157278178335426037323887255310526812138743111224988138876905217374171165429620686367501223588880442013082811833144629518718151817592359792457690273875466717714932386297519996803919883020289545704077556777569190898909998369626092931977939564560726423577670781137441387692731301356174328457375722520502832865089525535898425226885902776578377346517381033686406242433119298399890416335653323827186327006793875823222929759785732532561037269174008988102200877900865893238161641946740957282579298014501707159567786038649575279184933384724352712370671027870134340736838066798906507944569523609619904341257672482515836319482052906898405394459770320010269203493694720868943635569132988972851325862256840313627043316989617693812988931977966327220141298504670014805834393817899512509185994004293368236672497000440270461913654714893047433621946831475107637790669197257449263974049670928700843520748141952033420646237861861496387726049245036946191187465821350792675184480918078573153454119612628514439987520766039344814024340298261613172136056735516925026733917948997892722746043830608576532916908741816806874568669781686772489098551315074795244669624265025393404357647301268918873977061810904292684606273542902571884443703984044647560271206634988361606588338202129342527775880450471167987458347362152267248564252408013801509937153866364365132615190912339413850750519622499582759581798961653475222860958832054366598815296622073065017957155471040639926250123438754750399106561235918325956579767301848323429978842650549519023444599327702195727576395603518866357214957046929172742449486431352120892548561300947902594406364933753089523720436177282805552806325107023616243049182800771929860838298948039312650870476121847155326675264200291315249546623546121716053632615790815786448105883476093468963895900607943018516235101581854425912111532914186999316437922840965724594049099875626687984867655680811561307739439907338575205757413760056490446213212284014238519348285757547845516818203449456973487689758484209708799431774262579950603159582727783890348233562789317448899498833531495528511754340828369140832406252009664303870745899123408636414336544769824945725838254825956255013554449694808684462409218631521154173347213115619828157717013166182440841620121168967637728640127969784533131217573063273078878389910462153624297359093792207408396482728901990499200443026541768584980189303407829612233053865788687493486372684695156418781272519901545124910980894060455473003537438907566554439139145853559572765286773237595292274299015262510914380026363388200389636048900179067799505562393821382120055466801517653333709701426630899261241017005811245739330747393073760732011935377175256695040423516791383928814048944786062753688141420503234485463653797510283761707051749681647510906099712589779020951529020054163448087141303456585128001394022813767377408953834653328034726018686307066241749381432467559099776273586180212817162611217418545355952418804691985524070259267972473834856844294058890932555572277845926813540035709153620275747326956888293251255399141956760659509995348447451380026934396074820389348124355088839656038358604340790258841898323642009280468597283663980211083735697738532977700005898597309527123567263966950856719987911063275462427447674906810547251758291048640743140704136600406130551053208775533757719563354460250013547469077021382392426179430640794412715387562850738741928205635620277283001984499477291544425218131970594008951141259032811873450385515620761832819279013495334280802378288127138912947141767084490919943745755254143990809750838194604100343105175423426586113214671333437879372470928300830983029272506034010608490571644330454509943350329662602098811421039841803456699479354916313554185528170512825210605129994356513508161962570244643379509043252483055905647370921131946595298087417375406315764236206068257513804436793466249552297206631520906427106834486160829437931812937801874017704087134259583628484144719627998808844582401706287036928123787771233063930013603666516718035261091961309597152025975682619177135969776300321031216834331268747438950560424907956532130119593595695709593155086354012354283028325598667740509742789238950505566362606749591107341041915114119600984450419295988365577984290498755531838886233901377042802115458189860657417113963338506684875568332851924549847243900724606105940493429050982991531772694008215671522574142916052691731976248549334333641533451437949646606287422634363032216449720291175835024972804874372894595700123520419455230079142871116963059090868287009980047867226362887820490891527840957686023187387932766890137221251837409686515121669880151540013491746011436619914556245327465437644785503535077807134213671011682856661884485492347871977423175822312940815259435780363310087708682177528186019436392481801623408279644699590044700950695500103517673464684956080218387900404131044689287360903489882021815023627682392173349412590181233954339324692742266713329813339219085615727344412175077305392010392028582064844109058557575816278350464277463080825977578945036679378702505723995660677452951682196983820474805504169244022391916793068549068569673833969154090748843802753100979363724202495859757980287634761497124380969754662274285011866745597858500058291757985637971948788811910668165409759348868879384816902680911847330489353138777180717901928509160888619360942073781958973435474075650957593967604865725339751287999564994083866427544419704402626749672303818488744425935283525273504886731597615286703909319563891718258581376769195648932471918523277664336973410359119531594703538424781168154171741919040223139059640315508058284405493647543719711675537495610561895481714054558738455952304226427126901830649883190168424532346768969373595532615397061876059498854871936141602897246936438271805419088920282630151373861337176386849193345689648839927612822744623416116953504670902930648323858002371051680785182969969053419277143545111714976412184052322966062384375680687336461174208776188926426175870070929150612232962419577805423169285701693147644076661166603734626869252888065752230097237347945073661747158130572966694899289145006701161504215734880450370304080654212742068295751628164730433949051521944168083445939593916692207177073570063744466509578219090932409407733984626564258689077522819124799097597120410647358578758389150899603978640364710256890624025329121060381916768302049938646036568841325704028608434667510341959451231075072614459163150578001298171284956293893578659973928857246580160323683238769643993480437969842740186559598279567188065909685053211272245289382830437303843644274181598758973706042752050071156977528954305769936160532618503929189578107334674410019248689058688895758616645857711206022414657834528992345230083576521193516725644419303556769732807457749725837659998161639796181550129069926003820942943754284909780449720253318413973523363590226887662818191085172128229633581119137845539428235278533813311905696834511566197662586056483881032068182552471837725084753404562233450296826974457382876498385776571101877877942614525129866998797811359974594267636198768410112186189862596923576911618695388747096021474382422378168974635360713565765335058768041277168217587666992654398702676826644679653742857656894194074962916638809631510609995313849784638325973296705048934918008820678617717979228225953079181990240342282310384909724353002998132560840793707011771243086882904322597434518400404974181054929226237329457600049447238175017241744638380158032315241742076415679666304225759824570278533405707579352244323391221900668325461052135003550177816809967978992901397275026208488061931990338278636527151399672995595635621726166291459176389794859397747354760970175931071216958494329570260794651417555233797478301715738019454964852615571943952899782177605250999330584405448843751857722400105950521810463346404289992766066241557025332206304307971176743663646254618173218487206965862937083191385969761423552270703937760505698791886475715979979477642054695746274891131767339661257759032099505378721578538687345588800294357495524091269490233569774734028339541176278989137591012258255951293355629097238835938052569010270008534362561795179317100583851801898358416479410278648292825950323360169900322414199352391848705788731195850437151410869964918700827541170011050958249463275006996242768909219847002294970515473272328049776721493584426930858211208640558707235570017951439663605565636494032404595318358910897393415902058149124186997200612316664300077955064881432168440535309569878367335884362898136101806079680003527555914494341706162160785133561498754696139297704530147764686936971810483558934701419581930656706726103823301056383518368724629679657179752378228752038120728573368790259263190406688080668313297400947351570330013543453052836476134892884814390474195310020567492202200179258064601093438724494532218089826638852653484114451432550897089613352634049937581047858672551122131644802602301230266286930348605997288433474548079073434201831304127913733678940452874520301482583257541569342285493260325014753633606472830205007019677328244356449395017248596911283850837320725250077114845809686293648645541145640719373180892869083027998419287604333798988426924303105703766882294435003896425535109823889255218202554501807029010515733545193066752609034538678949351042663958444608965149116437467151322171919299151156419914800402559380715025532114130832643575205875520027351927851104956180806562128199168820881257884027881499685493797074130560918766175373105001115733856350597387532928347793954089958027176627811857347366528992333182120472850056618111679578162585128377618379028156682468786563451340522511437088100533102593377384925020840491670303309812043791645750966602582134372512835434072107673485724473132909115823214349580663354861260430726674437949241501915733170493104957976148656319830876022203963743936790215199582440555054485472957235811142391625695776059526127594721159235426813425011955698194464940341639548973814614417797085523158586715116872780072756159509149547021520544928456002442617833886804079450154176957452331513614388651564850736340017972608285428211051194642957743574623316667364968871943522517965328507654132084999868947473947359633054033656573326460296553290388961593339268309171236593604756092463616030609852252556123796391845343191284872880478553887318092480428653857079405054274481461581048859506242554313073471343956943387517924031044186998810390277962843890440318226591914215132753456709959901215202975704434989835894608362079467971348341534091024484001374618646006777777352841846902112799654469476352939022973563173624298622685519884826777938126888854006606403616334924976588237786201910967223618076768379042976208084831538510290418573256076008045292498959020845756679131664746810416879250591913506101190657253865496318245553700836449659435338099909663913269903064085872368750133756933883979262721838176376422596201043593775016443747160588813737666351310666511079714060569926206357233679345799872770547676564301830732966749574564103361016243686195187887664628323696649302440369535783135828083826397690570929578985745089178966329534993334517859215241408180820774709861734755034098763176164767157911488945998256023445581056143402257821837800880121622399432426892090079755961585861918320073438439487432668985365753008865049815283516780223716033155373700334727267198372111299184526429516362200163581582847304720979802204759152857400984836325189280073948231830593089683545330947238667142213652804356553253129226497379194668534529059229411537604760305206520054733405473402423083001716127178221213032443129230082284733113960721360460967827955794936522061760732477604469558091581674435027890986458780056079055834611843607977564351709461701561368782295746083916234248242737209229642921358216265121026048401464804506435930091274674657510932720134635344836680812256063730862919341312193250505575396292927471413617996360262434842001707792682707480463945591886784107056166141213547943069327591189489125325789480139178257567072533352115682591588588958633979731397461465185995022105804673353508217509769453025877175239989315811328759232403655786547750538847696749476035854001567542469252360361984729318021684700446088051204256532978469430193711114426842587094886604479450617356695890461091741270676338149136398791592511098327213677386002222284059001638369212057082162483737628346883821480688943101845499896167932630390968581237001636734184784521819757043410238505485688218731449671316567087798147556749007227979523522271263273082730965325224879013386404380604675114611836946559419945874299035019418309902146073310528583560609697439508623892710057163510192757013869891465001246714426922022647477022048828456334816910568748094263177413561462827853722299023816729042003570625249337883799152990375502601218462284490945238896941041308437746817786883395715922293695084380311409760009387609080261398111291369309106451717759766537543471109735252227602021075250076246442476015831187182505516137148105615237844052080856433599633443820923440578808848037349378534713918546273925753767804074103186614485645510563238439692319959865182496468357180938946513005119722973129492969932213517792040145016584142177651062216129042447967956348617606781971082373751967423654404312149026664776663418600953783018336230133651470883721100192702965955247110246419259707694818592605205031562334042309156226726543690173213912337205709294149722549054977023489468855278828972280013641379613607801419229779370683029375600028808549080692142377778043099786199850720432243842262785184408057527731264717357753862983360147320488861122058770413410166757812108878567715733819514322160389667193001341991576354475082912123467208263022323868545567254407803883204280310687453782502761696447320097034941641296386267445858922299227731896790503340890617749620495967000453283997478151867308484185841352096253530821743066303160800562676918551314774018231295106824953944560372168722439354879645198367931858525582318441421381140644305392995309793837124655216287759266955133530451094309861774125711263190335359952560956150417636397483287572517347415375248925469680399437253002767799612524115481028952193181064976894189600084227889582156878899212373210046903451020655526558257675409500054457884510233992681399820009443956174730982054374920500102705969249220294812043251934005782952991136756483014438984996845211365104218744770353347995454766870521098932240775797720227225243916992145963871244731143034830239513501749754154984092712650186609236720548902941024669099270651965118250405748804881358476261554192700878407223036471707450175890955723731708671166475642395133621144934811783284743185677667744809509434420556548085909052154165989466219234310792838184112702796738638799960904325402018984739227139060366118405291560524676901221264979607648804509522098626186053220534930120882938612779040139338042202850847919457297600300302566572571690751083602806680924529938895718601230162302859612229724579614383506671694521238609015039446779583309183377597242012435407929880598756228084419674554044422689636955164934463550483708412525393866105307794737938203893926183925197749059952882483240931856606458701267666657999258421040143383427089190527510123062852682566174945967737910020828020087811654268103120528129263917834620269022781151124384360803408234241416052789507639946965654257947479272021646725569963048758276656378576579182656016539565321697268547768374482198083033607120366966922078553742894804087950019643431836312636788738833158802744053901442306062866366488185190200022597479386983949737463918648194841873650730311040045492185708968797157212576073601250662962148754008844844194381357672210779983884865434305328895024424977459735944051767810922860582665310699386752069035436935072278115804380333704315804538277115731590354218265351002649973279706336481308417754266318143407985591177707330926822046908380411270942148488374832827942909064902982859709074034338021870573286850734075634420749895569962911036319187251462625019332128862991627255316574635209518991307480784656279713652606495224641075334507807147096983677811417842120434335665451942258164612817347561208014158252322511020781901989523087860988897401023683363572310858495094624338959817530615906881555875239952760712174362003761042848092762279899273162528645137329595963242427583507608834499186920594140373097152592634184783506596919116200477014876694185311568515484021339651329953399842341111942262319901656889156208842884855368152207292398588695143758354261399125023148880706900906376323840925743239728065903188983803897622660256980040863410494803874722305438869907564056488020718580975341471387660435684658066924666383415450694375026878814686866587007974512626595593501672902736088838579752384831170826364465218526457652055392442323798129118678368665409227750924426748856446720436573633233498842524108686852024635181544927668905938239632027882409074872565119267579025968421512117977415586820783011061756168418541938805900441512444502117065970920329593070263679736860278045219404736543005369793822076165698111929500662307265271620833338578220576159515935387641640792778978542704518955612989759755766406174744997712989568743868490375495095956762315241203448859891302280902317372849331807194252619724936152171490016651944511689180537812774502107103909138450284073048342087846048005449101663800730338920652132082720603078658373567886219936126382482846516870066768729116119857343530266558036706667848659216327731585601111207518423202158456216817486861251114446015135621991760059000815028171594340203420069233115823941443833343602980961549991830940884542082099642510960489043009088638211072535661581703375415971926305318123373021459708792195746283499257854608996134752642600352911568878600760087328514843681297093666135684869839045700115113451921987160967940568561363818896836617175043675403399812085617762973882808639370627843862164184015468297944091401534024678186227303907757506312859027029458685207174232549774251893405255952935809051273958247209092237433797655542758976869267280897331031518550094761856855074098748905670269892736222134439670940627623891213647940149816901859393626311669056003578081328839493391722171959026066505821223773035617839779559530530864325168472877680884365192846811277036349042543517524522094137061683710130376439866989220737461367818750096351331086004342662879154364813720351421410213872101236116216859747337004590556072865131540147941203566506182887079025484815070740323756034106212143564640965231447510985973921247679679564056914783620010361959019905510346689966987078254977935550145146345416468282128480002734731665743731131713975587903540648928505342320046198198515360336306775457508651710601002043943784952997096514644930759497445756103027227180337956419121840030001141830343391836995224754377808839146854627733973943885692413811533188703614524539098107676628520714208086258118635524390672925596331780310251805636965943485619855873605898517115281984177811587080392668589721572210832449718756024972956090968295354515317917998174413836474766695694123753682996212417756639552274082586396988477861128482033746405842588825695901841082885741422404456580822473281414080837254522832522973421384704936809364220989650440690490668641824893481928547547517206345867686761736795855974611298517664842625995128449653239098194624197620515846727411876194365545579590925481101201647502520170715724121694455227663747865340128994852285000611204392385640336183301069690140386023510588740502250473034380076881221187768227126855795528492281663467852805523768318170458336696316655624389913311466731572799573898259904968805098000460883734377868166838927833510412794928063345997802694626498632515202569079903372389990178523516580696880225926780702393743160360941778236935333616432175560141595669566130698571940297652397669563077972851815872176510938257310638743493368427778460471399311339118800984927986582856570700020218746516251440501530035290603999093884533854561413043341399411426239519911990290774831641772323649222032877994505348481882480161010908413375248228743988987681649978440118172690750095777168736805787244456101063219100691452135162797140086940566049916214445170546968645854750323870561340403904757072750746711240633085821964283834032027929349105044578652088849448479644761073194446823652503065040750597466321315110812292147313593927802878178999141759908832967260178738978128823320268956015831856351803609861266110644439039005399496526183902483535785318797509184815677679529813775831388571159602010701862130316216491478925435360349158244964206053415199027970829571091307077178822559240527571116979687046229817793901497897550749737731714434149119614827583425736353542392702897282939924487004904447095123406021948849340992743377913396205222210469319917790426679081007456957582050009177586018639628756023915031631256680730985059862495410248678200661740809125739637398186436179899344872463763844277673762775076590597058668564002714460205110120554773246268306033196941354142684516076754301666318924004773706481339559903097577279106301085522101052367466318793173796406549868024520220601373030247556202670128702689374166292701475692270505352230899279236463587953387424168040827776637189630434608399402058653648540546934547627304564674103450367087634233020165058146211983268161361346894712552527198891333230191179401976253007912928493565655795426972989383838548441911359659737191735766522351973790621731261348447301997841310933153826972644277716922276385447828603792205064481470291944438230562920799959821499156070048315966954122907138569277782574831836574070291521096383460636269290040228960687647796123369393331249488123178992398831880581594476743653975082138252484822974195590385726146935928935329469957453299768153250696939894625961518152169935305797678215414819477654724814367294903961703394699191820080197402861340407943586688606412666130174191830083927911181395127297829024054486871783552890767551623361487308357332867806352945881736923977537781256694433534007766781317740318461835635687334872678673353962024966395387514703047538718616348615622108206252181354453879532916303292580193473640578487867958674324123188118737010447144737372424856590320160119084713075474449144089581911551819713184518706946263570294815864987016989276230113581298335404139516708150819871135157932022210083250529002210764456310634998568696659969680410847480280113959741744895643242634856774325362994094709261723953704389035634382038868831976248886243215113229118874290512958889496315583495094833564681327435829079820102508696409050605082240058775578483301707669208349453511987068172380284504709367028877029194045145058564848256895431764196382771533095987292721260621672385849916050914402316484398576186558778113769443422646489280219907362312505952445983399802698263388450113786549140028801185334294589963808886603226211008893316456078661168550235927446866495119280950638354014454968962618994342652564389062454136521942584973336596720550790211789176807947871513942564185662462800460711921379885311935039991718717865976942517895292959938819288974789745780879718051399630994043011176233372047667694631928533263672139001881492189665752784603744547146120342895421444859625608291574448074244812584563990790472231793315938772303905631544543892234252578642757035623967911607642357457396666809083126740012996322537818532467481497218080223001445656028425011306930678497111636881976757533747803728773944202438656980620543506416697219860823000468977575920538466144551873536986458133721897881455293170487010494283248137660495603125225709695106730369136787864861066829539801776461628329994455096263428355062083167287241992516099188506192520437074496463264631658418078800062857755283029334040497995340546564869252819796877454293825197064230050266848080834519421504515661622513820149876238497604172917623952040341586621206168045966287003571484838496539991442654599909256505826147855053724014176336539631227348215678016888734528682818985174332803479493179495311560219266457372692228024225919441111851871063178749969461064953532944857005156580151814680635095090671191060106341865740782422963313336292706935205435175835890360955890739307885732541977744388102283770853424293695517200396907751226702378785408219852036837619662333416496981387306857572323792721326494031128015324230995178830919281514952466250667141792405782396467459151472031565424410367254038285511206169888120673673213560057049983771676628585127181002959645065213991121620770845659058479908517054482256245824516616121087733758592229308856612564260030464336462861370913441350754674056012458223533987698761820303582763198899187211167404384468841704420915712368758113433842751169803625209872118858215462999951687381789243431077467079059797208745690379518948357867804072542960386745685183991543815919078899705831885228867915022940803349750056246590871105343685651385012907120083764602075370181828590174111126516028793775909695119276645409555537677326203431296821587782958381764181729351135826133782300987517808673453050708951454230694735837877572477620371351627131700784140093959617862121603722914012918180412041027085837518081591495852993273459761434978365727547026010507394004575191604590442819852152487934001633377305397081516453840640823377171284748836361588884713444394015919266300900873650703341324502532132459623809482344386879768138354690928967773520014845695163694549852758295188071878267827633886979512443799236389168927461334852402174329027434173593584437772896151743133486204002216833280303924386857959759605658018547856475715497703287539520933976423212582281004559821755423163135785254805297375570493660916511553925650483525665304711611458654204503999655814053499534338064213130573533486223066114959129304638269497771930911367341825807921357008159579484360648151176892872754457660148542947409732129823183403084038133746377636311399663817421894689164421436307826490100656753646805702608471958463021685537331633811210025774262754557364855033163628855521380576827805912121427052742676430423284173963978582635618165257540512249858735856643507799019685501567506679613180460258398598531018124773052734219617607324801731534526110989044029692636022682364003575184420550047735796109892254840093235429771404225332790149879653864951904685656241348953439683111101957476189233483251094441500181509178872820120623599309373484605428800868667904610675591609939651116534031017440754171644434856146976918793695552170928912270612873268042534527626021964485758516513564136495307910053221510579166971271607030156653813659086971145416657314574919816040619422097823304807564066011643360729726964114736380708103193513028545430070924675376161751388369243326692678931179745373939835018859451354283489235100128921457710345285686210181745303876196668936661190813442039942055306198979480013817655712490762299005828485698813343968807978703777266412857766719520755246498921200858572385139602179273603421809990051479428027579199002338159673528685602326270375537530062258378344271932117857272681364054030389664859304562560021283111273985806506132001912658754220671938655588934989859257401931866472883737857769165210088160715536213398784051914170914137250155134498561957914783871411038903773839903097721578409913420223693235950108108504018519313321454731420085481066460528975506848591764652184696559253619656913770259663457128623710621906284974358655853371039911260430961828933939030399919277007461694513867122353285729363039512736877536784540389645079444180478915970404698511293525988598675587079132677644170690246275892807066248975857109089499669828291746370318076662592625280273459850928761515983791099791278359675037244563360042712246584336970992732305903888309204906975773095178738426891191640013284317705897838269861290258415045597631447155879390443183571734125610863428524571373449068128774900835476695291745157765000155963832492927024234244205638047460310673254750634278943194646452278213896171848347947183945801497140821693903381921416282523442286315500210577325526520088087008390629543344096482521166346478108331363212003353667292803525932953991881094925393972662380218510686876590200109302273684078057409653812681902750990983517752197416801464259928289114332739210900260911729820865115981011069771180755866631284308481028095462054546091994346558065544870378339909080314708714932580264493503292429264087014801209270157996750772367360297970393779486509147233808489186208645900196391782796091431465970958755020290591149680820570233151090733780375698871932322223876635385086345276569759669766774955160617898268663652512011478189674749335869921883567192891858243546549343315277830694758445656415122820419430832087942827868616981110110066572143717744070809981493479803691265375948899597781888176128363296891650342058248840543463100540085286179564406221520990194567893316790445044493743453315890266456273894669001177093846880354819306081808383429544199225066588786936476458030211991671188518648670945652353121782538776709842620951149641620368742770544336943166074781398586210630191962601701958681475402783561932305233000647815288549584779450555007887340234553073394679352335967827961081311846985595066877097530707680368320760247098630735215477016798316427995015511158338523941557097158299170420505412676109506221843671177243654559853767618621435023165810209064297853759858891052771578465080241384689818180558921903398948163889692293801435405604819089504226271478275141639231620246152070396594698093808769806729056207328960324704160467646216639427370457810400507472569509967395236299019916222026924353538797041584651202072960389558945341273889823771250466833550144035203106766975742499317044054120478077356328853720790068959413076242210737501223670908837819145606414041197312719964452619898351740579412605640022229841115375218960172840566237436903200986445596641565530193417213811024622943421626154294148980048563263335402767318510351337310256550452092160832953228543191249154145215665157274249697984565239570659054258003149075790247610351664917806312154481294741719884567782467346752724395928372055072808024965389584006663314897631801015560352201637008757608674860559437551678823145350096861541940958449555297073232557160249101266254769192759223050325655313010342426790992657007940486218583826769697688080453785287925063465395518025344440014065934466087490600780093293388015456329685210617341717066769329963817184052828117908770043447273716434975666928031183236414420146500461171821080310407454149925840099455371457701159579785604834563525793092247210257540021807828188044440606256413287537447355134683944158164166602361814872150365096381083544116753220488161921244845519428167369133829971372886953466998625970770401616666975857455424412518061610760696880765037924722814001159911113943877580960002660989145114776849238468570199210610041705726952327599724502740237712873014512329030944730809970828161798220425794965850172662252132043735008294120841111040631819541697470283851401220215246798333128793051800651421470080565807182477821879648131110814975350947706022390000109883460543805502120100951778898054611423692921684528399947057179914787483911477483266242073746535243585234854655425966453489822581321982948138386269295603685644446564160276325959606233450597332286455308134537569644343208056673692196736494943822486257636390504783361153593661860910224489137479791107010196762320525262341666503920757519391832435119134190678178948678606357877604459920544322020925687208039455491043863105765205719430811704593720792988042300820760836241332822436241849594101916988340279681639563789596092240284169275400858551407433528406437512507434605239229237395754876325112740362369404175255165786149210407881467094950480696524481932562294951515066899352587465703559569960488314954749861849990472893998869381981700158865037859234657517922997449089664576615187921273816112873829650465728538020702359032190265979262660560860309433232016752819032516424960997580537398276550010900478646472331452372131161307997867736256537170752838580304270615381292253991109276106083207396382106143780265794317022483415346303004140435989117710987274534528832938632836939785463023642941829854486633607476542198857621382263726788296878271789001799448998106762856101153343546819300668743246360171735689213282437499854670102904171660282769984644089288754270866181126994504169779879632293981308871421493747173999425543690992889677389327281817226303418675980035733587117709922925227813041498170262615235278317373007119867894019264534331312406662707867399439487533694700408462781159130988800742778181373848901627223688908733081763265190242599100251302451583846243471206222948151049136868954708664775316675586520232703804152335955187436655717113277806761942862430051035613154432350053686799006088206566847422984468061528491169064852084804488081865133108172716224775435675922602186171085438884491642173026319094762633189534923426725940558034113263285768735019065309573883042709363409373235514412906059627751475214692494826027380165506253538088655125394213305133707595381945072884724557326455505714224318030427656840766871535829884013532454525106966267035874395208715914234531003729413120605188433500007208939628040987667348874930412991056483031638664973737051051076996770960352224647775410337765797387667153240097631244526814659397079500493549585045620380291144530250885048266011178931306009188677603075037343825188686303044791332837812872267106027721154769610574314442666244897308961864096672340168414251197764514694387049152983502014909876535056110577241423423069096415380986402179560301014298469415389023069799161259356809273190973775457813257014640635801520642685889320052211998736426695903777914612240609657219731029418266181276307336290186228235236590109213428005295345716655328199227506674797484104242084889445834968390454794650033777861628595470338367124980897572568380255770915341554116207461318734096461513508950737722823346855308593707595774398635554040793134144898251454202326532446994027701585082771571477738107094917009742617982344606777387183882591038542092405263288846509828661595885030035693320200561175180774242919565986761625229302664441397306988764416641862790721260467788333090639385832998198059257203999870880708603646225638881479123018228072673113176365457877489934220695053247575816889444619247980868349185818806728106675965486121538495901763273030040226655803774762756043179202710837290726601429694960816317776952268639744580744098533727625638227937528068745953465587869284132082943609199797580511628354221995687374768581494226126382537149803497268438302949359586411496142926604524988626028090266240029994496965968619277778918114839311009216363080091836381152638149208808929861611144239705287011301120569846750674571621429266181568083260847068976869145524792521506088023262206365794534019578390106490584961665572321656431268806705880258783525546089700488937623847741229828925983157622836524580442252346403669829340931726498072840425261796209705030863494355767404846595746499709648616956499533729576463761428500094595453980813126372810827440616341719612127685358753023714459929703375251266085472736005027048213459789514711815223667638946431490100826252234374455916164619101012954882586502506690188134798743629208143222434830581443146470512617178516717735679589319377423872825654355662903281071825268673391383727981706768754656382586774932334813639895007046826816592582496958864414769128873192973616247441671770516007039621670501437754976350814432743692738049286471092752479758340354502795863787170642962526063186187924767638565398722771322888787902960503504543052733636200549816772013413004821243158390044343862940609730619046286014308940701617187051295380660179138052259244503645093887876064685162994369736931814982751033219914995774800734544296085494366434286836237128399397388710712855586697625632114778626555449459220548151662129042681794692336535648936487628364698356158796318528465279326700075917804501614051641266975986571867607821555634936687424998751547615958992831191662539889538765729536129498817643287136964633187652339784346659881348579877215373571398558908943227698170963277814979195299082736789449006491854587919433471423412922757182711105197995543540325853592088610694776938011702586871907774375449900372563659894773161837969050866712630093544355413987746192659520550526168824494929415415503822522510592555118489641663336614824331953296555346718732580401481797966621409530642812903130186004473866421102008647042910154313912159212432210239981350627477078260145791955342928260964922444414858871236824651454864444345299681174270161156197194080446844518764218314951009239183141635031888438783121223897550582841520114730052863822086497901772345693196943045021249639426445678922888239668419497973703567844773413450813920909599545737971558662210450333739248825746534571817927194285497600902458937898271682551865891646028978361562471871258881281011949883644703118634135312362225170609051555583470555036035644391452960946037234759622013397272715266761863346869274667622628066742308117596339480301456676369070686969779237007352784533508957201827056377593711992209024778975889521750305648260346656322575211863896242306774356963345529332441557165185860689339393406482867289285507463750597064936295517288187643981572603041108777704219393192511753198308061668960603131266801668989671482455906829125176562597561274112718774751385643892932748946209050686372264167480360403402185272486986979823575970076114964540791440835116803073596870348794241083801578285169147864153322629856633572005304214396034371551033502143543022468252927704185315915540624192579039592839989990884038670583699162263180053865791165995098776886154000353450747684242836807072814327656267444069698432775396116252513010802023695006650281843915550816769244705375458125067568744838464368440632333145196851545154773850082221478308754895036192203782673213318851171670976772507605112038205155208957600288596502726995776580038675906241137106753260956130457785353390295510318651104218043808597572794029080897026383240566807888940760136312082100386307232104490216327801220077566572272473050561819450491831528012368531552926338589864168374074451724373152620405294567800487579300062474226992251148942968269778450898198313878228762641752048723943223609157850951186378278769134951080060499162270836496768967856425673137488801115927397161565702041658869771798356040990758330399042550967640533383283022413777856072849132787031421092064082749013521080291924717309564433276980765271887365826780297741198918360650418772677756902187407216830269214050057758757911921968051132227265467086725574703514351760671040623787735480891755124433007321608265390062540945767100023874521462796164649898528911783696133941946619614433378341841635099135709982870197003490718241675830368019356657670455716062856197449490641572462127650123392950328052586821402092183507183216046600121227899372706310234435884083176359277285433493952461623377052738569275099080271160849100112181115826077182810353080592553144834694908572408920365700585753690733984719107573126983060592440583562181134405473589220983887938324334374263985920509553343981554102734971494212024018477527045427490764140311591453879411281819743222321381544414856493153751381137328756372997563400476724627014864335928246501006116604205123003274269553711819320808128180694146570567132139883769006652748480505837404180832806162188068747951897051965297421030418625261227313413365113116812092687892690279745345877388187906412759690447995002292698509471648831944818901575380021667130381632408573994647006257684574076280803087492789900958107552264755626657196628719934954544912059418517756052062403056561638291993418846949299010558110960383006678830601332367362688767887656964490813718388507056011094178355002459022471054954967369772096043657648940153282013463439235520885715754841999332548135071986084109216030386227169694052459822700633813251483195138935319455445480610386568686558931403038492585112702537561155464853842139648361040029128139693932201675186013461417335657036145862970258596689829602825589962284105288847482984416761000186760170761847592411462458404494137656701926761815540308610855318177011997884757931656724562179964627924879935556902825663734639659752978223767732921861610464097309282829015045471317080064617176698969749746632618190162448329252322805385995990380092178467181670165704131986360367144632543358644094827527682220730421313461520695908170079188232726302561725858199192925316359745410928936817915660173963970487138966741768987164537206761503684579451317119500113829990302928393853479998391760633886748995526277028158075428358916935284389014705875463190366747138157968921134556740041298590443081653655608261985279907826445797810165472682078345426155826292072251387448340627332596168499814054905626346189264804615859299418017685684844996075890280016984440327941459287351074948341467659790749649564592314158829344498972563974663933383203591259257410464586798715656508147127541291462119932352555136316940638553295034528371584432259150992096781046284169020401198184769340887579386686960399266349338758179226552415280823077051541117489736368446394075601086246360222541406543242335404007654093035753106299233560645759570892829222665326409813065128183282097884233023282025769110241658025663976568759126911851431774614376405194738196245809889114741810863140588311941969593329150640432785713208586823416275988760001000088807812869651996476414598974995256633829743131823372265725666900286087803845504315042864732674611620849163238085827264335791332303085286435607420909000274187927336280704748527027221646448662080888029288231336968270114687452662999273424209730026219020272756431608806257301195863631781136954061869298505306889475060998579912591819903896742621451583640777762659591405879816340450560241079606428030980517808649232075052359415523655340666046083004213605558947678431988701320499814757782444009355054866113794981540293071283056947415764010375121967032981503727082320431136062926055147765104503483554046872449597788486587331037184215932216601057377502808670672642486305785961018563921159902508519995064327327428851254134178047666224589995193435130894729912736820456305001949906767002963162930031808123568590594699624375937321934301742790746673032931518291067147839378368731478577721000606238786090609948484804065285334597321607393020972154228123515475063346761279427054815056104958992908649692795112585243900279614729672866057984961339485940016046135969484087438459359839706821484102477314590380943094061293641953641353870870508297034676488466112066214263606927674635653851555382936237013488469624841056939082888570217484594706679285358553943491056879381980978944959892292627901964095790259114775264958126731111206275777667422314973417985020149888972781108412056892545621648315618543129747675403512015816654490420662239787218551589260254188768742892049679291285066389474650252087411966042128632639418585786606856522451381427913900575633535694188309882416274314275606735594222929590056075296122121133194889368372696783780671557956320811403519969356869834919213470634613224776280681030403716756388375468489011109588331277053391239903497763948560851636151988725975038238822016924600200712693986790503870454616193607643732621087394694005578418612438961360475154373768799683996408106602554047668867758244943776047384782770073392778761383994237501641743162064388424970348422047563141497068822209277110512739112984749900053900465780572879992805162169351546052386517712488763246575441431216246300879865042018016386916929112147974069979638259103008877586498371994279791040993597661169324797425018034946907610302425481729385464228203782026514179590949279746925363593329381512218332665550741303668217193760583017681274541196853019725847637568776745513745907618982930332784500419624806953248095568711558646115301158613489924434582993216613848771505320759258412058434405595988813743464090626942947381910073903473454789022039805121839802890825676186228968134409049385460475476304348783346699677272980171549685887589279988232299129404119249713133064419027634160752334096191064830923849137055806875389284001293773378783372129009675348775183719999644498720446129181481512890893058788463494643416489163285312321106048173028742337589885383069687623337276969764861847436801791670017437087840778946002991692380256321012004394832141403864414301565292083747495898158463454912705174982987459035362781706722990806539242954179731075565355589786773692084084456128471717696014095067021026464941971388958829185407382284651722334904973348007234696868838573437367663852495241589059613378550952795023214475314923822104693621619503630158698284743999098224705609408480847578957021247716061935741590164379929062859102748675219165106663330455748701677953595781903544249123411913803336151616934741703618171093516919120293930683114889876591013007180838740617111999531346384393156087607769782610529900175179592200066795517933906656023180482174083821140919222460947541499878626470051386910891201044340613273982316675944907508988988549586799436636937084912790736544017598284360762720056843883051722787823557614065622940725018562510139528620290224285398405999909134853467003083585064609077576546660123555636770792981132368274175550307565587134408054835169145993994477306438014704876535637977398547579916850379879710722532615761857958292219895562146077292201379461235187754236397965375047753922116572260844977320651879262025941905735122470087804084465122100188735065032437230703963890453346544322748510041951379474095871670205391611546622846395948528351632461198259650879365189788816340687003182261763500146387069889113876402733959613413126934038716967010149563249396733413878230308792054948060932634360339123039950856921197873389525990160757981037185653359443387586940131358055478478206476575525403939595545179891887003613212884738577771877460571734228258865597647593548549212858221348656739092205879027224342075918085157792681460229592834580584260301539256740047379936219465708880387585871460341894210344352855356141422924680943897131641566054030401982628668788272548229322377398650372891333173083525835602893251516901039522366461454603280406179806579725983381525668385438800400207273715308972924288200224107596986568237692257614815678759140213714325543602784843794953646028102994070647219559362657015128749247352852216202936275210895552073351022659909132980904733570108760776090666577469893184082580464112118069031553021105706340909100238186292943737997677542629882401934052764936948775192745444544603245684150524427116285750580176157916941110544294943508776730022333640415086151972037351539695280788750760589214633189225073414615551364315395863061847350188845673505245755636033513052049949454907211562819610143803098519506487031522563074011825525306928799688685407456571886663259328775272561803399396814890807001815685097852332353748597388534086651861180900757642714580005959510673947290007283490535002147053041476818426362146595838649993543229399513915096544242863129277390673161365081649376814090315709663380844672754157526009438119719481276848326810517687866769134624519727795524368998617058281932331794160226409788124470897109161717526964069244345624830294811297147446337716444501235249975487047039159738694989397126277939624105338916321969554215864199922010607197063581881251665100194405302716163493505390549337183737794117566864706462912900474240978486762141707863971860562155905414325444601949399557562687884267206886189043787808380486306883692143554532887276332181953639286557219787897992171732012008045048772425224180170801332697736660769481408462768185420689312076031186948809847794798111652643408539134260513092507454501589372697019032701600688447225807670062233384089267100595435505523594076501321825961701656330196880368428958020824981216682422809407773735852742640329550728039854589003448273841913507307501992458504727994449270282001484628082707507517566602624817241386292648358730627706575154666415999087937741065093239449838989565483843934443530938558708184986211958708248620794922344375584073433963672804279866972645482224581695678968740572725885255986664198129695364800738954394772601086821161836649344902368280501706930834290186154556274609899542969069877789108191535436585475262259181235030667127407563122481650149452966029793404910568553282605876475718684040968475389794464863708608547119238400401650644655971633088121183678328507441305943987006694479826534949592514894393361068016004760153396693781701362521622211207718704471954483823902697366161753575484040657040682392975096665565848710415353256993250758369320430612015112202835683187177320181017450981865084234924591354367165154004223886484443612807921853099985006914017721195855422896335732383499136790084119585877440035532560617586778619568375233784338160812323378741862338744235565674258836579209326699204873783908612089556744411669448890584366676677051026985744981452434982239874531068210656908781239666848440415701084454532089834402778361318185842008539302285299604852133728035845922629937080816998062196362743877507532604413677090757278852165579023252390456007060373925380208055862965950958097225834409869657923324911571749658449402184978225629172451731794012347790483324083181114225255108668552359836481335012216655397105226372035053482458324942905027514319606083932617634380598908185768997472641460523922287256438315546776225982257474715488022514510006975515844915569183903704833658331344926274126074389597044078992292989446863849511480999577091330002691780184502720210459475793775196709821155463408788506759924553316675017641558982806491871811208700092608520005770547496809964972034325158591651500404727591784611971683585451791906897915473731965778064856619451332453403681285877295989185126943123685766751561006574385498716567317229940197811008477774053822600673394456402148093324587338188560580708050161399921859815494664740632828036046326811508822346841165681252215641576614892712782524164435509465946667060139469973689220704639807113541706146533495318506380050180995500347332132405090587432051752200984591739072820370838636108602657029361744616398026422605301976174207970567933209747721641253276222312222652396886110705850068378243793599851364590797065725160045799748670273324896942005549167526366665463462461525110020813972149780338367932335440016473942184293002900023245640470243454728929715938251118876065611785797475568798726107775113471226575420103152738498778334337619833952596501595033454757405909714799368465175312863351807639783187679536418419508925173305333207265926366621055221356836806854774006973978386574960015939396392652616059937105490116955730122336783572850964855464830496992247060152417822594171023276685772344789452476971032126269010374268315332000498048949437385323698186968390885786689671360830547034506005190146229255037299149171014985252212439344737454084624060081124584722781487512439377880491682502188209332972822486344236623924570520878776162847898125184094556811037685516275565928479542438339476781562753840125211099291645151342972481576903413055279549604485609426769196558603201303505754910042121953842319820472676722962619649077394231721824822633710705211079027476173705748665473460849073293449365079752511627482530798623946344238266852615941158523415782147104141509335878875829868878411376329131358717245740245632355898839500897773930815217434601409016945522092086203212546579080891637893120348286704427413778055368438000950877723959307376466033402984345504661742948020364611471873599516456458112556431498349366857219279385006892920808283095850159159628081924203994958014277084906656342695688839514868747924337125410186227613158874847436094591316844091483845556090821392638540384427144206716341043557448012147003457454319263860318387489309014566830801911561448220154957511417474262407618401382250984619877267928660727819127502465046235382325060571539540107455717531205890612775294998035789462587843376478525896597714458778879254656067624439295048329951628405926057305296167427276266398853184913020798639126886569609621902954759549487082619331933082484496893564769808217807355081581252250858897360615799535559167341861135736397595707397114976465525771670680086756770914015557660146014225011876971107968734499799781899208689188645670452315212715268032155660712310079898768637751340729313914688757280976391937352778487305586904559612283669960044412276013030771093567184071504453450489090734540712739902612301818249620143567445792741065310131337082915550796693446921889074909947941725585333401667298060244324757894209589512734465942710324864053144958711248926701106931114374081611210541172972881969715455312600158663395704733899324635252405227569768881308104202456973067709283109855131527000906789970484049854257300744009566763738598451702928949488107785999549313281926174064862456060874322938757463251960057042673538687153922012550519801753216644602435925938170655045466783971557975041197715187300089049725666201595111579479883444737647496865154022485779369800147818057715396010912882448419789631181161488687762235499381073746245403751222770158327747572882330077537383902492377354188617656904378615446058436761661383215528102012960012155588163507595741284430091439792333740314404351057566469573613470189513119845490613468585883550617147991082331202729921106489711121599657550786872726851368685777196340974708600870562324370388856865563657758319218450439463682899619622994313002631795783497738852934575492902402521588260619855918273448192352720850342145630883307387029984549856512733187739236409372112652176315268453371480750042631806545444741394616871125737876012901440602738834180723393589275820184986970767038501364063165517191496256629788444500108293903705043305399220707880291396068045267186636926874531623532629869631509884959833402962118760361821029446937913436443560436845347216303304563466953032005173545167097346158657189210938322629450755786295191238292836387303003023988695374487453052731677135994649536982983219813901973240858380797633023121660705828051841978729669901216992385754051493010098820553099432548286450562512485456542491394514385945596315722060823282830245801054682424473906346207602182842931360272147502006207144444955067104836240394979109908006824596729581195362884923877560695444749379129766059501345166001547217909954210338483952138987541904773815198293795441090593257831314559888637072030959092079257842731960931033918623408260979779693773249235226366969060434933727205147353696281085895953696817414059215862742330407753567611753751105689894270802981433279669204276052790815222206462859641331739535679458676696064459985439171212234160242885259377907046977049250814657512627630786542770997127244370628314975017532818242669162304410481424542447040467785586075681587459093375471440704231590398928090397993975205647887514723324435261751649946374911709501383811832569123912797274517917065897048241577440941245535858452931659261847268513074283743670925832375593658913479146740914372466416090678850941604220699702398377133063598134080800705604613686251237256525650964316467296811642398068847582786107778719690413795875379651920152252703645780716388800087939943326532433817765973199607158537871449268433568579854652630369817819507247411234506827922180361075454863347243030864827554890325611115273878222420556897068160596469936511594674548436969459191236036168370358807532883293653667457073032628601584446998050264380054130999647651962256341041483993256526439199898255470965392883886945063910220464109170385248506427635097915074895570889643486443207893477430741557068783621090826224812662299375755873556968598844023281795910887943183866392192225861718454653391519875373569171701852715809007470427173456778668423175468395989806558261771685459586549489480612589075055908910013543577871762739909689989270366493596613227431459095713081594220584501538366488218087261480366316140763777475933154716965701830654370870918866786411698261615640212193583573329870788466355003922463174609710416029215028453519015685317936481844669612933095903390657486271023237716312932321657938023312587590241990218266153030174588110975700549140604620009018337254364360619160718559579289708153981587001939342098335018946023515822597424614198703919763249593736403705084241326791671403522350154467233197127329021139141422120228422010505666516353534395819270839231848867515979795633510351809787862520094648529422998482222876393765825657869603585380396697841595495167236396548925472244522173629923594047875150952848780933452745916052142364206461637881011659580214146955619966918282928277648559307354161507655370573146909619164406765037943387786726108375820754105579438325459226733615232008898749861916426159574946282007693374148792007134479006886744326353293690388110828587220736997562992815980632775467444038836892239560002883228537502093529245585033890146810429869745636914894146309953103566127424116225026570970680217199406136233763832624306593321221860272959366700395222095618253044064074209929606422597808803694062741403922203046878925407835277085316036510323206521746071742068475616981113114872540631971372131840612931214029532632164585263650643214373306536661117009423382554332151934329559693412258769559165427898934270795195732912075379885705147214492060970860039959194462253515120846664462971064018565124494326826571219579194467415145771031431135292030900094384178386217053296755713590283667280200016589860932445608923766820201187252810717625939000882922936771969214597831815858169117007038985595150876198998886345424166130027779195807672695958601279681001905591145398721062427140271066545546086055777681680649744985329171232771980586450685927899159683877697202219622604681738496306335570015159740123292540526829640495521821767750487359557571716352902426225136710765792069047190685741090146102494858333747878299760946229932486853799786771902718628321634884937646603947940444097854999679959831347654959592356074052786315515024178818972555635734258507000434904625144014382467785163276199521799481008401710465024189754047238850017812672089341252910697686320599527732487248567256104163025607495586658734011112120255583730034600791641338038375074571814123934919216258329493667884153306638256221026258048508766374937250932163353966620936085265434989673557286522280146495466691694991097138103562710513897074427500761154237703814986080508176182170513776871223392578687694927185338242081559238729279373341675943062575144084429351949378057579639539008573748197268549042434007918866037452295956136527510500602202855099043529232626588170003677388691972664267299165320804463647212218030336330090947267368040021619165477904402977888219654347248488337249764150217371701601321428979496458718581614739711344942801544383263150493677317914209625683777554986706846915565854962590642785567595650714945185564709067059492238032183986438860306250485219691145961928681701333089880262440786595672334796377359821556012880392404897907345056589765940712353506642708284235199713363682626336576660431596372934399193582613869496347002477382370701531305874667904336248917878306189212969156828563068059386531167292219199684903124856623591312582101333105131555122258793701812645087905710425968222583220447936684847033341943301768712561260809119776482073424987390317865034894218016572137421279987692865085855446767214342254713161048869736702497258894822580304356928385831438684299329287354598486475821605973976857775931674924806317186532253593740314760551051133228683940588236050918203184665180398469986895510216229673772004205041774489337676491698627484787642303072498368017232563982013830675728020772231007788126299401572341666988065016058641898171886797346030180574405688698364967476249586429226522330318055280511905058863845787498476036336503765251008059653750602631559970567523450930916836842559610030716607043306718182758607658067448181468178516196880239554660947477375938428479833492001954945641235886255853397429738465404997391981882980591821530439779282906172845802307552701930689573856578570326579672874729129232448581023820953523487092559590354411596837141552398144025767597510894873478914841827835613590590815256570776167764735498862053987741634266268793904200166946309548602890487843548480145156008556217409901220239278381697902154711740901800413778719936318905733635858809551629660303843488887594353768231700388695082538492818130169561396761124657703969523594750896728234327579568390825194306311704185454910751225233954437872985700596220662750749107476266047706146252054492075361847451490144355749992484078927902916890344438604870013687897928206182711758675892791895822217358440676108482908600916046000843909687126721845030614249181440735431900779152271811620058865280738143240149283853508722135722545118877010727794337661845466758443006140871361343706591858556121984557686467795831489723226083614842037393200425414748084969619501283625490204682943504921898013052552367233000222677608815266215630272462877265941490022803660936933152905133926865739959048764921275533346950237602692321940660613246706971451673189325838955986370460531299799103258126333198477924003985475212154926175049704171531178763488807525463121057743142109093680446777017744779435260345191250487705092633587437425185979736740127037691591801992440686205494849625517889881321572937397254257210703745702869448362964029071513798174173066112158872319671399570688294982448128436444321956563213898830416875640859226775082059610761758959360835061001742641429312844963779328985767569610365128573697533366559866376445204520134720917816024186831483249551467813918357158119795197168943394091502331313573170531440045277193850585320368120626324644547134537118958861054036284503350511063512777472229098471505405314775613119821131783570169042265531553635107803802192458689213673235367293722229025215104976364033872453071256019107255031765701046221474737764256631529254476243480701952232808177161067912120435797737111509321673855626686320991534200515327961466730285281063459330714671647003536448372961653654641816428533027017540423855766430392369354395437864650756112199282557071499656056137357098268996252516005974317396801012877218173332914677502850430983433899121718657346819902400082581175980104485709687538648271696506271939960299741038867651249086899681627806779237214975224403261745670358362054481465019803221033129313157568489164210341515536755996871318615102784337203098339770508612844359372527699307933066941574141918970211661772569833384651133386877786423207758337256144847720676144243365699469441977448837637265990288992280533602877695377288997913462293161245932127670765686592711808615246866277953403381690184234133104283967935267882097049606862197474550680410577702494135968389175094434756197951757574908733062728935271672251963049033713496628070593989538252690661971962035724530671342065354931770396875323188412467468797408281689050983969478075030474983278872795849105898538555819910564294721498694050876709260056050339073333013377704389593565689863155867501706000688903505570939862232187094586863409806949591384891803740795698453569465741569129988783528978738733298974544381774756259055456037616254008874178628659990757206121400082479725886123800357015843558455719626879678094432225670032658359237673664915961123426657147895240427278556678351822447454347834157601734087640397254730807844365925866003575461906680289448120645670801258767506345988736064210619004196613533049582589727454758294027127154320608348037330495577506948009011442897928625897180828561094227391024309134938132725870666676222532781337033109504938686964822912078053731660986896711656416863036937315508545816590793010764096460636486538272484149717487268979776201448968104031073942129233842193929790344990470029980434832589011845433553180981883823543924735883787122551344242359598389807594793793515927806576958590032979191581190166854095540342872264051015823783063237704454045121448498802119692207210792390909647412488105042701187397996112626022781656360930582689075259958645386100022926718239881277032934456717899784998243155946973669280879893936720255186704511901089804262826915385637343432524275865139933262905618406703181817928280706678852974140587666453658451355727752879040842027816743576485355117260389491740226072480072738929675957474129529696949810651678860554286720104618595956497929383905010704351307592747464274303404705314674706687055852488500243412986531556775708693178648205197412547426847657150644379609286588173555329165986005480425086636883329896568747257829585444025490026053138077822431230713551314212595737174257207959732642058291913500516441254375075490944885302845465959774024281072526987441987209835808042813762130881828116246231128436508650830329113704986435756408671218936412836853323752697357165510458319831716787997226074945717730604936245066621446099997445379171274013899160582455589111240599482505821804940632192426677242477498543514724265534462992996919359461411706740013532162755754058696037596073567977507246235703510284553570517989631161404796732920720333918945598295962686449054639306400391538184012204876531646738621722868055865653454058357387458343672794301985091124673726246592713913820152888885391474880479628622863275423447436988943654989184765390277908619990980283138898821221259366864848514006716844317121830380060836229067339563370741680049972524641629635120087623355471196275970124557299318006382768024154228107444066619599390951617554024135556715543951125039097195776650735899466295357940267312470242680054534721139076675025525750756802671469907481240215994103928445955121985978011529608844097967274579884549532780219476885286124188356350416894564269250978643265940439370909998825204959368432139403398488798429362787144393931212055265703979810716865639858228753116700136206557650980161600777580365618924709359348407158846388797911875949441764444755280134511639531158166321876355965877449972399664614949347437150085519330344587396928206740571507596833806399373501845642191712101275193080287267140977146728521578702197416682155118367976680580807747226429512786045868787790856555757723444418774281679778168069251729878337028311308189321529550378069317031766486347485559347584956140106703980265074944702066579489648178722158067181105847602181473378587411388557265106021479837452692507241819324796256241991540498524234627503436408341192982772622302807165610389120006296654410639626479185851316917550029819578880245691475297045903416481263013834598202132294145494010678912927549887834611145067338331684920370654093611558593221380439584815363015619129864517925936959676820233563392601101060796188173404720873175665610323959704528331122618102327521514059656193503094334462618748701619540641568650335632612209866331869552253792739004347345580574241696481969932242720594906779650290242934265590932027709971458814621276539146185641517398626928311538861261457108082991991879670805003866278047415635750648938964585763278296139935570650539854754901195896297813568538763166097900020617069044925812678238328371834089344457245348192837409255634353270913397874347474225241408586373246903719416770164715410358614094843040685222997936954629874114355616644112462998744335636349238280238940068573235525523628781001136632557131753308469188954548395000445780936480801502667303890838563831712997270862029760555738498780467570820162775773768696781977009029345227748846926850848753730014911780578775482321684254051533935549393952166852246697197532031159444796512419093312428511921786817613950011425744011699534031359545895327102451326021294671900215599514188082876502343234858906863262652521748301306004685922197722750453618543169029650343398973485687572796886717364622104898651347681776730056523543824491788078287158647590496750335508219629871952423318406871873845446367350163057914593795763503279740843089958496193315122478881178206463434382284025422589604543184876325688436613100886433640427601397680881684607468526121636307120971864692420977936205556190866362319422918234288270610911278079083106548828415702785084629398576554582279446309821142719682247593418248735991861835671036110054970424446781073192864809647112760745329106418176010745272696671269957426344296531318488132827671493407052054284111241384133706780837120700935198296766085907603803640404828127346876482860895760821284169272979040538207037697002626276548760371387531424137767746701359693679843821664447158033985847946409670535442117238013981710034945903480162699563456405829198453491299561087206289875340842293747595893906176727732973126070577409807075525771275048724323043821028864543282790751398978303070262053052415540400879002558070414209311261487119768906380774046195575821779099032921070801410350280207456296269090171720713562891116709083694868086988224149886563593359881347637262480208972433873424256000306635774455109073463040458147838493548423521496822760833460018664220991209367939028295196396437259206079548549844774408260457387006809609690641719135018920225087089440050183582044960169916044877609264637872632164351480104709155660654877951912768527341276487139248720052890710257902999886444067302855191916159490607911156065657645823656971852730854387573479276985834301436375093448837766906371285973322989306339173287334802073618519186733664914148987564118513982539569864220877805062174589809557125396379809460445526954898969704380889829328020286141022857671078477411314278698727140839540060695989683386424441439683394952874554964060551613999171069976842396847406024845295099605810986870271384075981387986781708306397520088123258121548806401040681231784844075560037006828574375220500425152599829018509057356469578080653550445487668641737474532061755865575418628203775831802663319833395700274395251252788447554698716439654338059396147899657680869642696025195946606980842295164054535746698693852158766369492358070855607885236709059441300673446707976538031856170252124468137816730367880959401573781690394417225453692397110887140364026965804207411441967097175217084306840771667912441433829445459151334289564411099154844421053117641141300340894333567510129710557299699857346972301865660341560972883507032369722239686975854657027327441249540874498791827987229685536759626253956064594198792342066516650287293656933718073038000858892248088976001706273053624110309126385104364969009315885651329815628507259159174602887089456933823419584279876221926434514687040224694278630740281590901794996297924582320591907074643787506306099969598991319247875140060564439184275728586355958973949353533041061787194604614601514372144834192367196070535842300790793032843610732347771230989034310425418321072982602050015467318253899645487659089570065336620760931808160173708878972468668539427328720794115931630498758221151193482790501720037321471377275188226312127299270282067527228808801898583034135079759234033838780953785306433611830927212093408143878373124771014369667282700973093740172378313842939659393731708698677229498601718383610616884879653277688212284875803219709248780305349153586247299933382742466942735400295960635538060241574558354558213570025394255696776704587760263040964890983594597495099007631277574285525150352580236093230248899256334667614304456096400378342542519595904538544415525330121605374627802047498224242769068381387545313650080173704243403898732988259052288554653437117200076709607321652755510305140510335772190244995731935158321616321473595629612009144909957024712802850477234472059406392196343924481988390990230229896120336523219236389989340233017664575082902495469306401186178432390179733908609570774470517568095207537311835498423337960238661156907720876564615331567556343607108193216721879890459812634573756655776541638665052279749176306460041350276283572252348106434723641513588978954001548355582683239131485884905063074494310082373599267431405449992864413758587081359023193521155404004514451442792654271278075669339139007400677266283688504196040637018088455486860065245154517642450958417243737193895927338612088868950797474482522773751476221703662534346861742756287735109725782806430971543697735605263625151751333067189949864205571249714691336088770891724497434120824324673079419525567394919325005748056162758308279099334973966396371816143489252357762772276267713823314259949077594583693928590702444110483120235202480295227916692270350291512701367369966636115854638192536968898589815363927156427291864788047681801488941942777203823330656509984449375366436025486648310687994791975420525368131090645723961719401471944057575101977552070488431903168814689364181038163402856956667075048754960151886903183120040285211916056015703859547634219873780683568478764495833713154263120461562352192042946371173121838399876053845481696538038498684331098898401225566586536889643483458245915580912429266938321044655975782173500396181933449069978247861547261096673500594396593565293816160615935145130918529269927454456791103922135585707546051960522343453211890574655576443307781932958345613059068164009347799268000620189510409204287566382948277569829740100442778426367900046211317693212235823153129192356659283316706997203141227874029065972504956196639327527165271565714824363175749947248959719058638509959280321846885163067492173007994265293579183063866516831263579127299622243601197943363018017757218499953228779221957856946139393683763228849066844169396798865945808278868879329868351986324321980210385252168480056500883438719754908973813496810556235827262986720537764298277923503031903739250028099440557675696258052825789213243667183454337332045136137451871288932710655898436756832017345250572354057939518534876441380526616974118580485703100411453908342084401813036949585816543868380565389374147711780883435031926660310051587304499663633033758739783953093433086328067626512082360518481592762997567979383251469747891499762657940294674885739795097663670348082617134758474334533867221457999054306986430270435206365373554935089720695255613428267903644433596774534628075838132585941375464966521878173739819807518246393993868159050786113738483160290997039556474949234173474221704680355882008263101252124972058828280474893503837217182561820031980199507760024849893625932079123259789626295675444246767955024139365790765648383031900771155474017276792206206824438217227152651124800601172583770293969593904006318176002830675125911781318110938027382117926329652413204128904909279551942089840487298157433382153225886253989557625900949538296267852992125051883439895627315888838176908003032124223703946923123809279285473403999119932855494913468806498787370399543510512112111800867304520197348079861801956314039647268118489753402282484312887309192848899941273610984367185041776590884770537886187422350102843012796502536272324847392746465367355665565125080198976710381367808215651126228925032249100531520695245077798238986241915587868968886296067966847823419539410214553167564908538741570492691302068904143136191580001649191205122091814457387713596553147546102632458738568010339220770909076837847256044937081819605954621523378613202607504009076268412786255491559360956285965456331759271977629057817148194878843912276387672611163957656328616462639677100788340299096921015217761440256402174251410785518163073179509415148980319315617253530196110466079707087358381889142234837391653159713493351164849950229823674994233973649574390026697668118376980883369485483200655571689506296125568527593504667485044094425497704621073516951715839390220580422844568156018282035052686799823993794146927653728272169849713485333720431603864695941607151705745530870002940777456473283466484963992197488843538975057242166647135457580893626815984509018059730091726096106077664986737790282106061089892373231948499053527769037424792488970236493309939327291881218189883959216988634610341767322275156864181684205546597946988174675967865089306176208373458403890490464005913538504177377110402461437942969482536824741646841287156776111661264910931869760909666113842245364750322573160284798257170677153860521933716312034999732314262584867744590822630347906881765065533815031076399805211806135039853698939108677921796215308623014918877802300076913986628046327767492017697042416001990046140362853506648038147491316665155741504349893024446684178035166161818333996250445847196157972594891071037647899184755861161190853419219365154288470562944151921199823479095285249099030398183121130524616049072862458450712503202457151583751908086361151544104719788444065850977647870154150312861687868159838071096441378992542770673371362032744794007898061700847392959632314006244577441940230038142087219209831528173839131237417494131459569706609486074223367484955156653267841439650906905254943668281426934051790075096171842890513573038113983056175923138424636470624165150106989272694665837733306458194970637123928648031980201007522155421821573764099029102558596468879357829671955997494065234430667627361318393067870840032676704634865308184899886512259317857103447606389678823730679606500128969549935824252907804402457127435905589992392064766732132602589584365823525939404324577664252531422658102025887808221854317986300328932440871959997305643449909104423223859816203980667909411688543852018226799396451914459231397425123230391749960864833374602299695708131521633390612519140933334991653897262161410146633056626726907284512368688823364025315201714617417444600398401587537483748249160550149008867097379353853413472318802995638624915670409234161430086951076319984202933154400565926272959345848687161874243180293536841426039564917277728806442657054577256837702245136066025707643251159621107878040694636868787186720708578367020205483367075538506725732555120568071976068420875236454373674257278302525445906792339145521630677715683789722517133346892882559204751089371853154141663332520993050798736964764756005349499664907949600105684908958678029384596195768681751518179236861675742756495080473496116347961293297678972202861443977320877430959029287703395597928516923034637061886129525125401122889328622290355595759502777394522593201126326324648147962783076428149212117226212713587549807293673621161559928226025645250233843130057416926888701792546964553375513715655066771279438562215854519626611534791535468245729610033889991247027320601742459493945344044386396192433537284739974339457903908073500275046315994945848085614081726480909247173694540093148779242445317476255860153359906777605390133055543145781458069561950090132897138089426655603733286317626810941640228368171848602857548923768694233190522101517734148824833770337125672664230419344597877164173235614876627078342680163128732934821728206797085386525664182839234961565868734393312574122085073349330223752103897526440792098293204118020949535884895197982235132899469502311249557939148505468352637423099516718316846014693052194672400512160135954121915398307796965081376715714518336269123560663854376288346522749999553451102808542667633879913212413244850957584973194801204336526000498406256228674530484402101930421445751832407381446775933865158423969087782549665817192473100067673012313236257437403987560564708911490208064075095697509379197244717794751571269255443185569410306921275736410661978389608915224198510913571790752385097820734529278780207020936895979249919227757578956345456306284904914884975919131516492935725979333360903094561920240629054840629490931129657252345431609146425695546937330681726690736903046396390976666102172535095098439851910263257729133900515911584955048177632845629067254166434428465570676074160873541085540208126768248216312846562922264477511706486120176053218346270492741928212618096516200039100067664980429263529854119990692502692771180581800825651459480177672445660069182925366405542233129906191823265135187949833674794590376360204604946188734122327998518630765468044717354140932794353427211549924754678979210976315384385896512049021119379735158639742103036847835458886815767314029880469577569996155894688598110973473446285737562134653316456037661808822396961738409473244998096760883744632651200030173073371267671438611799969793816934735417281015205766593822417835705530460598479848609693351095491957004291436875574928095052078411723995873266335561457054958814431998088344259568186962212922951090147444854735950469682502314587847696925822599721276241000518000623867372426480463633690917814093436153988404903201933520996562760137051986171501319664938015651995609080299812921886914552023145106917773278317891084803437734387023559803626862973332605687286013349404605319118100111087987415680190118972727697266786124200600366130844312445119710880742219942298517507572429728576533698184235370885306533801819041991415779450713464695945098205500016595625794124392416682545280610276788364675387252951495860056021150154152288267300954287000440370600781687588931308221191574394569099819793138819991783444320941215918882752930370428987396509774885640042785241181747432564432689040553729940895957886521174560363040320454773763144213378611538091954590976694729562788413474444580918174319860037322845886454560156144784250144991364655912972017589989410518441313527026521195531344927114141855865824232644482231104076298525362350806751169166858699751059168837069392364225171788380589866300259315873488825018597724974389267181827277101895916894118664770400003902999107085577917253126495821084794161191487286723012905205351910382359317222211008777878987053702390269828596574185805775560427841500204477573741764991872698387980194187426055382280879565745241895414814487277042102892984859534726088847370534091016107408030954825264644487841157062119654064409190472246740396026570727190107261956816494172280594532089050498556078706024171874762241540906289541643428479719865395842701269114903814169363827040775327570575235161911324834349148409683242955080794047225712694722802905321805815408380678104131711636430176746795986554658791271886493326554701253886277055304996996277669537100854309440518151392509452919981209421970425520266678916686687020779215624961257382402596123600151165071385967108677178445399908671382079910626419991669676820970933429335810806650511098544402404639122334498918829566004793299539339605178410467558977521260320645299385552266162886939642875509276738694129963585099148304205658220011816049957438914770490615211407311483904719767796831962499487409801899591456470630200182417606546450267382812451423787976104652735999254078745783998260153351195580594746377032787593166308738690602789519028130466664941297280012242457265092733768621932609378752670719467211811620432727643975161673940372663040415364126855662367919258727258616121863422891269784788236277768132291931090356792062773728842853871497586511262231288831471469403688122201617850942755567324373712592445928682932076606500430637972063963676231583005461786793004661577590164453271598795596248661400008207931633063350375402452382861387397291613128397067844164567083786499951706500699941711379354679995731267768760243751953409426511499592516610602131324665105525495249919371385489386709476544998089402099401567381939374776389770076640294309845580788849373143406721816072963603244854344232715767351014044926823841574736882015538540879223199691665096781398718932967980244132868461243401562358272032036752107623653788169397392582445150130681255110237776706002378221435238973516825751119213726532574437018957771894800079521614488399444059926294668125036886832212863439918588811614895290725047825128527866444147437615277148956764625749572315005287043576702638638739801455303142944596006145720029785694391762188510902401591585481158276489611866992093691302253027057678759420705407136471294404038205124729430901594592368675049560598374116070980841920597566214184885105571476238283453566656241195173500919593308468148938092132928492339519229031408702887575978554160839099113544973226902743397477547639266120546684995040185765268022886950913793725886375713862888038696816064371042037831653310704557460076567813889911226882542428173908510674814990110131448005459555630519873901590104865455034446777226500790599970937943776989657320511277016231381122418340301829843310880967841618114972693577792443971497970434235148049675078017114538496470241195168811009763807025581902245983967060651780719716817081210679267957791525348143888708996392111022197928865368108119162894968668028091454823133268752708924529570313666479727194830343297656958423302582434834022487843583835960913746634090747651809559127946368287922594723735632218727898435682637276964007188993391046353390520733439202386491923420618675739154866719961739527450131823137347617825194466479030986868981169661716512265950625533262710890114121859473183333471692009931890328814839053930435608114536514321193487029062305285218242669336549887885575326156603175331523261685821032075749690849063390047219180363244689071100392054113193975432631350795199648886103334138045285058897528396192304844141238820550336918815590529714770213637749154749149269554164861514854322925754299662109043396929095828924111445576619711801035247634180361589657141008911493568737048848136791121273846679647841214366365960870990897049046998190256920112065131889333382252310080775228919592108603185673641602592620266925219907204459811612599644559340327615415543966383449751919118775380696546445821452575032671982521496492084798064512856085153190280299745917205046945661023924138744615390698583693721687352834748634944401605449755697442351903033764255492217174516723543740991053992357153347939948393892192998447571677124863104669541025378491970878965273896338996327653066912847662119841996947397050475471569752538694991308390975898775320469941728390148141963847279954217697921506289218416243775589152496241679951050261049348064192945681930471401445221783723868577763411135848612396668364801036085520560150527805346945141692433525223545022469015535903570761799835264291288219608773052658466571453812378556770874980264483868179328236054920610929012495320345601750903882105536751756934507743800507499623125602702687744037374522311098164456822419739233728568489756899146322757729942331691421444364377329915541642707087605464170965788177781237705178846515954017586134824307234188400799847371158846897050706171119183495586928733932144030888360001467857372842306477603779226123557013487527764051451529870136754380468453721215744256214560920075900586982205570135144307651923004595113561023328893177277411377242143968962354784953106458061052705328522735187999370483194748833894693764355178928993287031477133421936421623338293788628665781417497255041119250697861520435932889187145494898718365607280804758779674216059123720210096578138227883880975059793437157509596164118131354998441179967885796945319438600496210932438879945412407121846164959104902957663579263354148069872068400655274359612014848811412176377135139710071470226881552305081737600109251369925743150803748504194164435139111104463643347228283709280903961046036741487397585168558781162481120698521905877742278791099536403254777477090250730067174168419094374140283405204804564275856113685053361070817071605018419530878594092557194042083776335156179564861760246010508129258344554263172052856439833803167707950144243409184811986903273971304649511603195753541517115512667542824204803489925169075632708942848895193171431658277243252854458202341828767559576879566450467016036592412415364058603266043381867737059067197885345478069107473650549558541309157138383251396180981898146348593420042403996668695142038977019549091176130465004170303136043525790619082090739320818308438068977716850824188988511335134352856600644665597917905699256433100469717837767494094300639186076827103534247378639143972779961028889982370508135689884357498244476206933429425253232334131504979511304166210273422447393069458414396122631625271270180094186754203654967535645017556911647162536874842519677021830406608763432448302160575958437398220406364231769791913617345526170557414352324600995674162849150998154225104162744507292605680557350098764588274016770007186094181430055175523571369218251451267634577864395312364079571201279163334491237151541062200025227477013681219022900773904951522126665908404648699142556411861603215347582275910067044009174672332880421313835662799849770505788966134932005707759137185522567607946779694550682809770555351592896633407595447714936374831007356969561221718834452977204439196163224769496891943624802932692715334726700746240877351171667438319526547324722686550944154300530690353918593904122955102265734242207461693871774212832135923240882575802995697940627532477039650672269710878440095754074650489085365341195251536440502778489483845102082525757544180486650059072648305272398223810578896458995510196072436034104731208409986798575310046504716230014988379195472359375377215558994590014881840533816292209601360270886281092235055726071314994518920825555001675979657683414515729940440830357796795288598552580289147666629018449415178934934558019671806766008684661968073088548914995958669434995308464547542597077662578018406790185654707917689874822203056765413758111778334761698476454181108000449634128634102216535173063887712401159624303622372553643989797916507915902507400977031989508270836887731838344143821687879962274377042680399485715971732750921539954552078391360524989829773485599507509382881968633904454375075316304903762788688289882137525647938532956482441717024836721206851071531821399209297955253837288927762148075301187159494156626928889554247588799240873100925987581886266428295166930134049536691645035329041103125712410790081822683812912475834694833406600117245008608613341189769361338735842397667061190097900110539126059736315807680403137564407285248639290270374863876930999982670061242472874375759722120852205666480645049994954191997893586583042261876147480706596466819017837003079272140326220244079084775347803462316688270950491387479040442436810470293226939334391433786480743043092024518587632992743106896538385812830016173452299142198638837836420514757377020932238514457603234870038293503139423125728129386341600009531454952889844597673828613286715049307763710984579573107367084245777161429627550230661734231305891364476470725330067982388112181763210658135407908305257606633397353434690695427003923758750976100382723241375953902848455676610854805280846417021456972539025933018565880035877559997486371391638463716500554257035881026708768674248813647680862299643683133802460598615974948770254121426742709145478555436119740224674148208078468073750208607269014023589535659835497708654605375324917281646485808301944163903844570156843605079603699591690482451781942922785922684827314795601161557620381090176159328721276597767720006637801966902165846984009715877432542853921970707441361772583720381094614571943821928068495155553252622846903513813644984790258524225313465804399627868132839007778130427361785327493222980657494550985564689966037815064260868208324518107764414056446961709177234957254266260092833370978514446473575490906489639302977330068945326118773712851299455648804563849180568725537724857650647543242195002146178759210474898998223458270750610026273425381068198166925963184087093017647705376618174057828838790634556400116233564086983422946052322934161619532611070859478255526532073427261083493334368401220409770800345582841056720202883562121556450437343410878495909727813064143921273711446015593235958289143508723680550349636613762164453430179715563712798056038954613217418747057514526836296284001647694960195462265031222678759012912177843502992159070090211405369835800580498933069263028282105134708889002139745790303129839006039866618609544748333484942899067293985210499861228415935446379317432634313833313490114142947982741305103870437227654493119499163437268269259563828060601766404705777813598538500199906544924917472789604027690307862937877639806368390150338878549249259241556969691821775746605868555378989262021109985475861282620238911935008589770547355159122449448211745009867252983743255812705594822485785158576318844257941978003339293907965690520243812686432183249311497092086169334374194164001234140260769405305668731814469977164473796854339342971907205735874513100534974060086344976933419438771736550650233938539705234600753708149710124430487289977430902447960834933650707721345950949276602800400449718527083761847172640268638739083006585887724429395195534960861334112876095462604419698522021861223506473116079094579872369298982345666905065695227316689025568515852496536454216671834538064737683246930537501059063902034197680164936734309752690479402144973581224562833914296137068600290075970985960716975583361064444776557341888220122356364783607882329965302066169396042395457344002556897424610953659032486518900618559584611491581199976410931176404260087814548194244465595213333671059873091071736260872961694622009739591342064682799478038793587334164129779091679238856965020567762745706534401598614263852869163835134304605421708242723072251428377287757562685428970365579991243639033610738031133753792659964805585267350368417105229105890926378649541067335238205733474219061938039362979755280338694356190192634127950815289320584399965343876201499804653057409272000668555140904569450605155470037532909070870026632657914161699408671003770618998631253885861538585000949448833606366926082281234189677468752181536501631566285806368345160791962101358527479535267508609592030978567018500217907122361819242562936815474605441276262672455433378245757326345398557285306413620944947719722341823701992230063303136826839393093049878260219380355869799480667452602627794140715012776041056627765027520115968328375499273091177631049616195853048144841848464309689506800612168421873694435836521035276084915852321566337779927697776813122499051632934116522120060430849609575034158787982501583234413109392223731369738946602550960929870392335099647394940716621112399976540338546413274547724254362189338723281283221235295678040307500760604963985729541991123725545791503482167294477751461490741842747157729752903568519826238703608414777295443008945596058693523586356878415171661318153198377022879405477124895642153474596101489198587959179564399974586117584200576035425802790636657017158321127057268717366067591055711605950053474697567395225020522894096914196184652030867374735281368494143689873546191301211446870015022814802637406871249364924529756416659320672742854705827390941741222210755331689505952346838200662009001051317818649717579184536329271058963619792638890637559629475802483182648435973396886996600090569305460772555763642553353621670776022248017875303766357242888601751571326243776389179709922068904026808619188515657030950539727897435915948309958213804738507994748347350181428857056996515404976187523411722993848488613119659334806790616094253993458440901382408361015991084843409051849636125752535890126402787323485913277308050046250536831683037360128931167926514785532078523380618169083034067783951544934472562226011261606437965663836000196604639734835876488917255274286992266246062349066907118154120655089756158753971567778568503903342694159896748869835101899476916633569059760403130699394531511683189338490475819596610227579323121231261739021260131245087057987703957149586054241480465720314068156149087675728354035511428342819342504244613964500365042607933984672197515867942602526186404231448368170841327923742157124592851625760738939499818745097646898080255219246468782649392682486967408895779268430246483403552072016256238711489755486794349898098144710688886607890876160685719405703665880761997939035865696230068510784692316815795997624009958548565889485020967937198719438850949612384393628415278970676995154168962048924809942912132699108704345493658979482449872879686627614188631634393022004209611732081134028645919236864139096538755973542786815411975722017468988865602821690326058598735193088279206249516967636220538366822833650001082931248259752616379116659565246890996130825863442665875922446946404369368851586704166451723058724714814599427663262825864282269432092477895184898192459730999112507918887535752025091389404502046933463205796025059132533938741823877436621665737103712928812437319657583013401965085222796857199856969192370822353887471830903652080430324569380394211227564976299993525648922289246925679549528923808865627938004707328639237164455729764588239394378142375705785506525638470339060257458520621458230453236041678835912928288038394737744285208164571781163055636836446698317861950904600087752300652657426345509402216857280397220544665248327301434384392107496837966079408255259649134894038624258419331901300982867505107333973932909573052554866044925659223693349608457746229917487135345142831134922494591188046898064716377013141990105884561131850389409516690673144785015991466661495246944618352537025614749641662957786232134238010881546751182214835375867691463899332726796347984801218560711128368325897985472865219408667828114909237439506531337358417425555522657823123770694879006799309719063044377436774596943953799247604469660975042164463444488199906060225777078425427139057269822489641665019125805978277760016187472382364178423715831745173625453139936803453641616366947897938091630401287817607724086629299580016815266649885621199594962932894169069772929471359549444844330675717153455690134688577263539312276650262373768063998429082431649325969937595131736329858274149782903593046755352650389961165319400034177525945250334751486201075749555249064843934543619156934376765485167508492843058105628668905325164787938779277102976747804064539582050723948231152549034716118424023600914016434817570008489487241954892782921533706402931928351615724462014384570146146832203978943589290449698331952454940246493223407751848423084429034836680789684310824417758602315420584333765589027468386278588296237671842601115666498553589533803056600853628869003895785259780718204225880941951242191735504618466789453580543457120455420698374110751361863693714549813637257910022662364904274709807662163773697305160188667744964628362709986156048888184187286764744311380147245042541235947048111710212698999635705311239401969713142160202874202166385479698658778292150814441279478541047841551027985366480679954893147801336187362703583322937664051531357262892662415564671751993799093599584323259685365675282836338954427038455036919878538046842619029169619787565419221791671251400348633381089872819426468017625523968931613715888847351413798585748100057056404693852763291908360854436632935365678270340995070842394499053317361100765082798040652505508186672872408605461197100779355800472378456945980294077572235869512040108948979721070735718944123548053757513070685426754590871828177122998849021389316144999673015516283643688854417917814152467448074801413855550480829898933710393367992628631395550055391812116642362656620768776818740669963252331026199989180671712450072056807007832632168446742005337997722149813926086768381029727060868507529978172075436907835491129356532355158056506485435364706021816806237853558446273414550455173158115547609564357450862427358504363798279815981837666138030588061914141149848632605487020704101231415765964381947777909150267561353398208722943955479188720630719519095462532996809683676803416079055151615698356292944236754157691089863881438182678949789819761937138113728112255991393548422876094290286852623828448683645934757232459858911943615585075568390555380509160459148731827721478239511168837972859007950290903612539049114603012677785649019896390378481037661696958144840026760778725919026614967655490311865352249308814253753964362878802390137347627985727436783404547800630902428640342743938906470441068586527362239066630518327176940969814173364353782733314565492061234657347284628280655271914274348418773638548799140545315924805737923285713757686906238514105943546350686329163505373569702891277689591854236737407685979407282644096260807947752177036331889414679417509668779662255317013976040630483520697370229328081658472550024925389897801554811498079186980732999378036081880366373328226373515886612269803916754612780993273302438052753160650699653246407785011338928072497143943804692264937989438918048608541141626523599643071376739301707681662251393945363221950836352522136342788876522635095197662044498769424448371760059830710411345918529250711964415469413294573916910519529801994663079819809151437348133102185421835370358092652951802712858794355516885978308228333842107227883918567741626575018401747384547738975787015136135748490815005099194001082276028782285487928699726589390794564105806722651811928255480187471370571599052474945473664991254905713931837984530689420797706974279650862226562234878899969631281729599568236422946506171248554365619085652144505619316727010132252329207791330189826254343200050792949599181029469556547965629412717714652381922469970133197171413965838131567925314883736760392165757527271748938030158803078101409264802026587192392446353179113090860900756656971529079548161071183661157779853283488075061609509689513913665418336334267291336827428004126853320829188159473588839345165878096046987765955229928096027201744216832971167493422190891781350620865339220216880142230426851239296687079594982127236429273996451903046758605734204371083746500277857071311044446008649651598607047932868718446907611565691431770947760377356708531194265415341014586097652236573507187381890378178525255008639989458776431143224636824337476270258133491908578656960220017489475572312435695878485248744048059730000329898536943965948368574305550661871657907562584689047750905634226717718456275070264963032610301754256114674780566231090411988368383531643198534600457229051514712221405167215505912641710903429678225499518321816965393653083032957082292307557985299511220301170659763440574555484659956263319713541327623190163900655588089910787185996253012243087207615698554977921245094688957756858855741878408019840118246296869210711194200485942238102604852577952189072515417763104196304283017907231495083429133422032191133921134908911302572770816542440900879238469180505659801125121354352589058375279402491277094214734670283367671499112414330267843036331676838956264929211364860232629280586878750796577081076388126237805452065204916602248915608227489549818941441681943599080427344257816853055414365460436105425684596024804286414910928088344206020464789890131682370016064912559327099448811758922640460080548626724298526816700578359161251442731161289469044169300683977189307519563250711347458261855078457486385303894702830420225911594542489242499552663605008941703294980126107125519079390100616534822729334919628226786273561203386189058426309506113687686450141395728252653366153870710764698556874826234883820911536336981059563538746811780044172562952187670823166339796655228870595658083982582847994607122327863786254422156631493708333623428950340717143037626264674981535209144720340500165593908499889776813661398746335682988984314755402331134247763792140118220802133601086851102121506692283680800741088883953475432618869935865145821463007942551469110721726621952353289844643041391809869914244268132180019643263007358383947491779900975048592767641489724604759591233156277626442483846117511221112399458587625602896972769420637845754428786118101945721959713695142489191859516947026766046601505374095463355592383266231633430978760993404193211397008026749305881200984195495716325161452064561809104342603837244670044792466559893508820736840295341407161780352897888844317790604761087912411147659123193579842843195612267462795736258483450084350182178145596715022810228517814125683995074810337141898985041021080548155411233310958900223300535044538760276973597307588478551385618716968280637398951934278760270546487584995656557024127847052889882110760987082119656551505572745129275681454154103910181627277700588743621282963763487370789942560316728069582611280162750162660297548124765285460318238309277692082918199234053138844023738798370243778946326100533480525801620889716476944425386779373642027272859032598746162357299132392825464325063594675267246718741383517387846875994157633678215508445365502660728998571704399354469276640004047749626785207303060606838695560948764210264898643468986796229931312663541075422727143353634460626675081624247516578561500449605136380290639368082711548294578868524990303880872215215385148742297216995617232616273303789117449276166825681801262755926723234152126917829507365263692722454216279942119269838157152070902666356913139780712002423752401168486690641489114787332599485308225212791769031965297271499232446095300068734724539985205594621111520909525417222524879296550487971472135631613566032628848254263443640996168516107839875601662697582100022934087050562965750740651285955145609217969959546116202504123775348141030485185876892753632565689792273146247208537298808961259975890687997911238263319597037315525037480206553997288268140532929991845491360007002354593910347778237297823414717055890750490944231845906763056944296170336420266331449365816704364928047105871687947864864482674368992289455690881517883233693268593788739266837291110007487141646793138263083981858474062095520807703485164021570483803189073559145819069238335688323678002938120095727814304020768110607747296328106792117214734660995922718230264592601704169353450840635899731851047052198610894384061452320413101702771288774949155799040755795242135760350794315329725457450488612866029437562422217499244899533779353078169170621634262213725772299660756796148452520754985646696231377438108248784437980739104602603399125588389438159588354631348222830425235669588971743316306499316237025821685433844173701240181831923235048173935834481345862746830164156125840042604435330848853452145181043127743445946855769664443432590090845676579074148093660230903565157795164706485209566529868422400359084069288699787744674563398910765336736745395586535548356771248565134309050866297904907195815461567425799226401246529160053518733585772701331139753432232910425712580804528812712046579921598796918646279487263980544221771505863997750897369023307264170756588435129128039728208357381321196903438065658001369263165843569773419676781771953428559161384082748874997725735980131454107724604386230951047405771798085184193902247230469962734887903783596871105505914075810582650453343085063292172099628560670190862927872423613759281496122237044865655490529360399617175122566317486416209172508940427895594878674024040730716919213842917265966261814811385678046022974449885010983198916037945256680968325759531031680644806858136721588357997814481433734655479987110806180445974568893547491152893122228156672223320697635331266407373526671876561850150096140953580661468503621950508753602839961704642902587290536549913323817647332851285087150843997466825681351166675117926914444617510856430323318185852093843928003263712837184845246569226435993196346933752797867662346929602496529498294421864419615700452775153845601025394317157561947698863516581176193989050303091481854651472226744094697104189860072017573154557822420331413323001983570241424363404033573626844420920751216311854418134840646853368367288265822116573632110053876639385775998524084560099005716149565613084479060907100012464711119104648124655363760936756861289022838926505947398040967296489624679505583477220702220002146421130215246474221787706724621170782412136131390924115320863436109397954469736510334386675001242649093168941495084914190523606157536366090733996356247538928143165457761543298786940336033160447393766094815976539381889162873501146869856012471358277349216505553874348920777311067634065876989491588013832694213374056130481023337804839788059782454525021461962050057660118381635204943858001949114233335486077628129337366439499493182865393163589255209531696930207310072052021943889453536200522550139601112458327619008197948556083276725696133290890096307562524211333681788327627085170002605981852404843837943166791936955808632164642825343136406331829765553419505277225456547519092908110034141546332102561205793309659129981306458789913289325489091264196174145493096724048369251335915038433999790898591443653951298929058330829030424391400181615248698954722609014134607518763901023386703209541731288568956494276919174001646551830474065104684282840109653962502966222030105036181239238881992037093648066428396995452364316542985768845951815097531076905434056263929806614428242308658877103939960485703202901562650434084441623071622090580472399274271034376176794573581218650270061708478434357380431248735646347399023317110275859403879837121041439666832837762704237908084270205204468704101266548941488028286455023285906859327105578954959993583696196418276595626781526511035046611930400979255165759755576842704860325243008026036018700595908268864320008866147223799860769817085126748310903491967666105573766134586441031716264349126810368446848958982176152222336757179866919481128834594040236726989322009055830080504540742274791493504883390994261983877925789319668166163277181387754340202096761950312223086401625666837178113067229026596714458589157203881256309336228667751242865616977142179254369357691908233039746502360279670187833245428715128789490758225049524097207472284974595041901399177420854185480673241237108687383101791739522039145369453403764648633306894455068994629557826826321581755045172800016850194633657634192742218516212600870727922843866842187618131488117446910543866197566804565115952764011473725558232205019664214229885785750665832803491972300235135874072253780880191745518294723016604960474365787955146513101835983648309522612508398419941584756419295472708133800209496405200112281610977289869542005651076735908391828009534416347401836005913588278861982741613093286634704657526193858547128087044923809096779761162624485855624294814678973973138918136514248129723307356609118203408976770081359274380607064889954167818126248092606741685634427872996880056565646340064950797680401413371341488755326090309479846859364994633136142956800849947537991658689246112939340065733337774483179864551838344707030345203939891390213965159554198884129477224505288939179247482469879062691806070690710657142550355437947644972729865682018891005833590215463485860196493887134413781563576356111270630447847637294095782224993166182838580003751759848971415621517000951049312309796516731401484472421500715395146556860687926120756379620412695911387285464270644783578744416581874379512143363556113838236654100102047003969798270063849778626688699393437977117511796823677738851363798231790748283030250799689700105050482920601200156448744896868117425672285602082227568006509473699163893981288211300365941495367546067588320053589369349898929835263742191865132540923190357000662599602936306424566259797298050404855213725370367328051311779069964458676290046164590118562411647733778138370093067761595032689782798288505664235078047839376350119079100075095107789463708094794534791987092975327391258326959252730855225662653028569147071433135011234382421257545430912868084830807470443805537807771084114024078680708581635808788768016222956765463000141580563310254313219794206877817601378765228563236671908600601990298697159444707473796055148023665913403018724333523792918500810299550362461671259370656900775025569263459934264495099522768422754004880462151525863951436526652296637756458578341200012175235113026824309157041559684139499677624479858685382004320617976834514117682902845953719593508761061248748866479926495069432816199334310362426189666708923234111695400579478749899758419440560352620705493120569394037502896546982183152198157151110605736546311243096681104840511833479739027707331955330926103805810452253180565469797303476748120356515810872004733446303064815229285581512881005733802038380116658914718490823553483075395879505785593284191553244128735724918124121494211864008963940108636598662811143498704134245297699826176835166913382963319533282681803878790948041167339629981235885339787881264294455837041082080600261751310146049494112813969699396062259258716656757986949786616025366579037328218487069187829495925492354644372444397495959996172108881924090039257213002857055889423139899500012099566007563581506950837887649226436497661679724767216554444162075610908280990370745201677134215356015983402627603829245178662738676438698184540515464043837582458747846075717272713258265268016925731857532277067058829820260888943322223024982365688215463959219474645548169897559428958418891683782452604014036777910567712377087972786880481940207930626078455874315679957447608192885476323586096092797158950641325257401798182123821914865209547746348154214960701375481592367678978965456459931509308650124291394026272252080795817594774563962099876635287294127030217945328373161202321919488879160098388995418394152770815139473638412818184050341667344781426895218960725809554380914281714149884990470598448289139221358587176851747873128856764595111299970758567027890847375962367631996611690285863466405156766813485097003392636913295187960010966170564610689423243318415593070178026755063020568779204993607153078717750155718775713197847601495232990292662427587629573335552751812051572386012580082389396739378166517322098622273584807884528804968217649132948851552373615316449115033844132928021949230362356365031862557175054638248249076251720854904436176832797240608677242782227111986956998260850202127529676634073861317417273467673268051715560923458635656731982089244258379744272346172161491254475442057032844533885298215004999290205140315830746623666005067292626246710463740484086379328084983662479613367083066607197053940531772002498148849834372938603552916796531326355731331559689680786592289220308803880276213695095662490829724005867961792459371167833828960162768526089439033029013660362407874505019285169269602928519292201412469076522244977180413370182640393426004920594279381153107520739219502467929582632865638947733253746630339493180728338490503229467105239659492740212152072652263328325723639394400341503773567626757615761250769148563577320037739955474175854198650574339511939721753000919992118675675133296021482839397912347178447214208199341735879214616689084470142286356438480856008454028280733602162003112079978644225683966782379194216315340348400844070927339049946029128197608292971809072460597752858583385960958951113470058656276421570088724061769904644060421152637177208492646300841420753276541360408669282695292523732626083544431004996727678175805046332739583674413218175618119974350147848871851279008412566560305696860266075108491531542689384757138236607179398248598121998130778361191664007617736986126616111914066759903274402916742844227998070332641206000998250435374845374124780649286796137930820877327524237457912774865275417324464090170258897300784578534149682226207119570774838825107585038473747568209761340890394279620122806885187057332156704087609672702137593172156478743761799402302573924208985847327668569467363605086073860040838983638695322131158405762405214848291029391816964256417109097244507661887573163804935354585164705729976365591407464181783993533068138336083253727747224637053244259232402844711354287663251147925721165637188512199489937534910071762725173830328164682473813474685385566018770783892582207166254413628169084436540394906264072620881050198048688317106002236097605157493420327689267275484983966252605219883175292640333660197229249724563123039108365603864480403157361580732289648066659453361727969948192682454862338820327216779120740953070709491520003896467979906274064157197777912989673829686759840127783998929602560920058161757177643361168293876284668842214432756329963500027904657264182003556311808355226053408649297034681174404098963457873910592255673227024104762540430028716620516405739533816340408564304912399887432665435146759565398856156646872370523327707958362248290025612152133811554234906925897273836346795056907693324333820141290875544082313146457846816536023591322942734865681359227676657167130531201852298678582827131046436213168563233083791046085209069418947956355513295577947085765935266944863377835885862574045213660172678046905625929493106254860753794463868858263468631277755670422554892133828382420978726389684551357928272439078612986339588475549980892937340158270160660146032180438900394632164695395688537902675838175544320386684009651104032550544469206753320029929585768197835643170239263167544025893690738154202444577688847570614284308113086136638311078825523139519722877389657942329201482344291887216963102862290055950956451409010444415254738672751327407760962815793370148099506605275851556546381623185161137324205574102724239440987468972066882374106184735097393995833662356450517153699934246313492898308690424842109885027066536848578600724895039540834357420027877197587327357178858275817579816949772484361586193465452825177652763254487756745140528050136137978877333891446005203978752424881549747343479390187312591559372904133535474681375513656640487085518569040920038554260827211818132809633606624394870943560529511698458829738603568815819847108915850217770550342244088267558221492085420173928503893125496919766562818344949617453151978106847930689381721328831584895384101477958358860282280800330521736166521498281147495966536152287434637673284633963344746767727945193699879715890393436165769880338343877119143912086292775036341033290260479769829707721373975121946558470423012388226385885953937182204260258470661562217373878326280499523477219904744357834821701025038205425171686003256321658427290936326240022643105585589600569407581377952348823457571296070839460572424539565224327337311000830495658266470444275500012132913050737529084000757398897776404009117316872883262295128970501230608155280287791008099884423804088547592826576914460134272963558712465516373098726861461517096515255789068036065488774874311779437878161703007748583092561263438203057366152604748989941120865432955336912359112742983481118578573183395275497182919643012125375887050266858110374289515527904362377474852425375691879711930941299398988894090319807792218231198259394353251281188486554908782294353845354936341521956129252737940890852246929196218648219019193384029495807420307693618173820203283542621938303847724874416106997156721034671215289379166533322710743547951537448685319720669182089684843779821174812620237624062955660352714445417935988828607560055396068921122992940690254627121020837607588470523501013176463753789138447522491177813322209047056030576341639564576295928730855937000097713819901309636242841330455387366445650114362388619958698934087841118983130679105512683290157427727430296003926512219930273622840025098225395143995630110231758510369080321253035804588112621011924408320070037732592010596089263283782335474051856783255424755406222282404518928747204193358641977389434240646733911495995915365724364054249025381871243541197538757984215094878480682289396808303987600757209110153910913854294195176626706262372227219182897849653672060986744259453615516594434946343788272873010620699350419782142999845647877031550250719327409378536864635716285296145086839784057122433265190720234041494158753969310483301789581414709640172508671014800286048920109976282552925743495897957415618619947550958200649986667247493796381482721341174050187976458987422649681948569646591304670498388265619254803041194481553002196139322835510245879201122072830135419412789752196716492077116436853914524502299868471155478896163536857813154853470531769920067152653375164052393024166281239545574895513592308103744099261471136029167075514411407081929217952630280269415087795508762076621795620135130507335570198181163910835223076994161010978023452526161497981995307870072684083380071383496185546706840085384131721301181841298643865920444363063807765647283241665357804656523418891377372771955578390383868299030625302644644941370899092306228966975075953689458930869387115267820500669335552396880666315869960243642614472297750452715818268146168279014133590607998629323643928435470429003284002844448159587129736117854432223780243337566621124884422309689089069927712019384969086603161065933116713943937296500309131596842079012952484631718808617570320269935343628661331037956608127370015555065356482137289383916216931556396297602802923217114230171512806255426149819283006949273116216204446593474890398023721731023180873708271003991118080224413743840754522655445430127300866234572762180819306272372560965956325716305167728134477502741496058817963003012357470949696659618753472779488562646234725471581779838106957993411342677633181280933878505599445069132922907098553679017512888205233893580723988603983840855516878394892929931574870650838008039603276146205382697079789876538137984113316054671673685510853809934081260755700022652839073518222390182093865164951806391202019184805218118164345526115175025693163934491601184918330943425980049493765110281530109558989859588817873655516521221817143784184217833176288607455006950550953069988100633326815809157884879544970699931742935152607212981751375746884651036214571947180066828271059799393568095711544509879535555252697766510318764944025663779785850116537952666184272241472793507999143247697286008691591043601314255517622737101490278435029210205123749460878738306921567946479945446642906460941578971344321733714016321535883103574800344940066070357518778583223079695134444221968031137341211092254771746866622727213952175777832484022989838030356639718423390239180063302598424984771591291634185527925339748372825197629018642943208139598205314731309165983067097050325201273176615155825121361739631796416432738658144429310636558966467622984664850361259816533868971704086699665152270789797907186365248607600631928221554442163112541610942611161912683111773845903617193180215354127226446853818255065345175874798037205238282122371485376601947994618230115068729169432330861476874895694970111513312063273470096673121235556380271680140506320530407710256605506231160078173102799541933070428451246253577945792449691892965230696941138001351071305938777033380888704533931952191728572410835449787942114010668537442057042916791386436040258183322629753513611927042697944171859296130666928704538017284728486786640132971509402955236957462625167121791065871890475933125727897597710558442474687950383348062238884779650430704213961618848722395810162431357072855298661611018069412264267040998807406477309823469473889593807689645738226523332165087013148381684230664117695889462228499263996078331306532362224684931620962170831626703740157722800343775096882971133969452135621566324810008067694893170930462927059418749984351735366236077474738902984171932937032114450660751726218591706165726265960915758695914735432470800840612468634134904419922022797667187824273461918252590337943637794579959750350811762988030751451961023507244123432045320438008611347378485813496623956254219457936264476311040575176843266640981813599550397241916548521270105823456925173280130758603717170761491407687130596716115986076018838671769212079289849332038422362425544713624907297151495191944313673528769832062361289122333584848260569262228199988544547079349357945336976820350356139169444683367466774444989385525224372582161654812726616990265733303831953454016595191912450553751426294187324384178620871076199240724981794218304773680657869019228837588115706792693190791006616830517189525001182737668985841924749003186857621203706500234886574811821383309853970519414228731613229884274871906078787011893363768083369703367290478232631640361004771309195447752505348991439742634326357713630407285203625144694037519080395862477753841859629281926342849239756163919897006669143236114694884724949619598118036506623882633535669051474199748977836915822861398333038182783363663960241019997811269960173900490064282166168122806779529972435740176619213474385796680134797978933440971904418703451733981887753003967699944640836185816485845590547611053397711282962789300886708535253516300304306928201650583529537343236360652073526628921017885286225738741165119947591696449275073009830504823346712311124022616974862956748078115763117344490921632966592749772749151051620081112538840405572316120470157257943622985808649091512477311169762475427722348419388307460187964063844230957893438632357158989325190712611005892034612844947405549460364157662969804233566797435306458262238319982423698848612201889212890796580731597298403873577645231574605698415872696973165976886208963770331363283141341403714647686049971964472753170334538948818699705503345279072824690579077954355211512154213566462795327982592786492646682614391015374794000826783877927869016413866697602863843295534293688399508430391533663612219523397575398406584685186137446334542336626748878438750696751042092312654550585607173051216805482689636672516758821907267369027008200531497406162119920868598547881232430524561346237738783982460129148180494855902677712813549366747734378703334301299029319741095674400718887060268134814585142222517299338198066397683267192879544408789714858672934230795406401688338465513561141081447423679267801800194531728606206396496546828158552852795448888627793795059957534168695569604584956211814729468084949665131318527372613503089103954089313194630538038082507117255082003597808502837790552562042873456260945116541472158999281655450824018142791890960554289654823578744801927867227987847050848678596532619243281083363836446689917407880671714906796417568483093492522365542626860815426896634949335544115013661645710705478274402607922627227269988628515052490006801868595650632859695347488816237260555141326116864760881440391930183813066421801578050942758885398000096320886113399906881047832270212086360360038770803422362989954463176435079197051154424881481626387501437399980161853514421691247656767900411787455854040053814069237267079100774600368965221115777192637563752727144204508120362994283802377950030583840104913138731553982021436727081014873774240492317603437785919972200740450434265924719771444267974805495270297658275255089900343330150732453905839587768030742861517644871018264729345648252460420359003504234202915425520646714574790653943431264658462146934668571011857090992132666255017536400819710934088481434933054337339174930576678740453012727992048276858198959429377343335449945923879162644842994661037551965700335636867182568942585102212752129324711092094829853629126417290269760777954286640903683987647277832102982468917011432914658134715003854369963566625918957105912486963088958938814851063333297045289950044382053781442045131932684234343144605911827861512538929560520482595437209041223496563529864431305293934451697132101740169884873932414581106747789769791539845972222681124096239847098143110048482715824465344655294835961285091367385774286054689703429578907115383552112812660030194135881189631185036304853884580994906798233227717234753077838106134604244271640474450312494885949916578570029390130674345465538447969837177168083755183818029930291911119282851961481076633087335500290038388682988338850152392222219988829434810635533097402669587905180999587084880465806872228639195217676126158699635979054001742232523449464422508815630492041531972377076115084004152997045698595942403736981673893852222228288758373010042077309123544599334859215070485998745676674692821262291670100567128245283561545818219961212811769755404876763768659121299730619727110963334398514771523937980502572619559093162642175202118702028754562497948735977860670432112920706634932715604290615692297401712942298362651114392467699907525182086565268506653039118033266053295059873905099897417804149292740259288636125154229385644677175913139983825573819970019992950347372626213440564101753525764490032850784069752529087886332506142099884739165689049501201967157981600482194160483110473338084528250172823398795015753553543757800361840991455576298474705902885121233239566441387618214905226819990934367071359821515039778231389655370380084073167160109426863636530280055945813588587011830364009483993155083480689206987071399731332792464751021391343067727359621086331381059194946259734102762702828727091202293794327876398560326748543516303284124076298110034202521373451933081012867535416993326301077787275147335187478975910681925680578815111536891837551848248073618846326253709020991924645726742925420648208344454107982923444830006386406536254781960079200149550158198249937878317092182927967512983070034155254313598129345077263269973042472240211641630002244780619595415334064117038317752939979170341902405322474107736937794682199501877461528171931709783916459800463703479421132268939202336955440974049197574516197228748704759812208617842075723700835105651575254727656537722109107631483306210436934689615447399796808729201780319589403231634329404195218886634514068433200603655500073148491434402439302443082575145645885485896648074246215071526320574329326659871798300078144595611581464968904504530827448706155632391611511903292743793993765667430151478723147134541110371380503715138383337512698648142540329723865242453153687111953273142216143115067326487452358368458822220629794828411571577161972953477389574198846385332896705425199649545282796263984629938092832520758982268231032084549988290983783452706009581469363530721542031464659179834455533495128331629309161178296041509348443803405496996000107090553124401042051742672528585710049878330879622024883343279340055332388809720682146343167868668814413632690158933412859288851485869364486246770899095318841548316557010377513090697728274590337561515368925435404266018715241427879824443716937569546910714240596679053127038674325642725681895434165460294448128304510612248154450745024466962991808809321365331977462532586264297261197072338003020657057618205905525382159541072276832625411247522990415467873364171856423337858170018179503329456423125171667420868900740422669082947381564984536902699645355003232044499577659373928994074232360333709257958735542816031082594667707781122187256560926079129801474889225422743671753594226773198991803388880354384368731910092581216261332410100058489796598037272865640638579784696541194303382159843523846808256669044035753238884036312840756188385186094174853076530905365678660860697884201401319025150382800138230516055750319993124232623859848915326440682596679762997287692377130825862143715956217956150004616915252909701031644086846415513338539999299935025039923429707776483696007417510338412081721809253137731118208257556663805210622394159029912007862415725541976829951346502989286173771402764163700782179532233188562106254205011906635447867755227113725105526809273560133965551607355544035521881772410334283325791549056094203385049264278549412149319609576016377543324479319023149577144781501236042961441503316427127306574728132415691300860747782375994626519975933384135873900189768882643358276027221933888637988894532711590684678995653852623147900954145394164720534065402572625094172509660200579419577199340495315693542615781887944007735736337630957699170252529313934535451866890699189129907722583725574592774493230678020355019125373993663929853970383430390933373142750976620173924658164499479567663951071643277767641344695265829284501488716531922491969158755171705409525428863651289962756448269324351173680250899833112363389003142127438653721568166845352524835176121021637616128165720342393798442431448314555425366544725824159412624827309584516014188825834474815414149344027114271081372450026062281442138139031318178345223214130507089397393310526148982858005293265675375740967743761211993584110204685165925425615978584965895538491351451543958418029265965983675937714796265947441522648448574498263903106166911536693490432361531939390749682638683908136262175762247683501512353027694825405450922490804259660499080936140703000011859286948234071809122764790427796507716196740610693623428795397674271621091941393323255937116862705524336457179044414079797829874892946959775107480072355284539043040914772696758857665583492215041016564912940192127555604478897738121727897900893841120458810279742283799852114304624338485753017641646482569451829477381665103710732766794088657426661673919820738474506532759426675108493444205441106091724984565018373027010952915112353682800688597328589280953075866439203919741755417369531905253788829030790047116175430356168305315131420434926585274704195095119183584805509634894975889293592480085727534796869422670327524843693564723873713386191802361536295288987291709139730410113977818055315489893284462757550299346201740135709316730148184904962694587669775236774801082034650176852586856367156976647582900903201348558231358357425253504428020883881736749475090871656357419229080635044707756821999370615631262888105619220170079435830921001609442964738700865317650592190327434074500752279295073057792138513859764652259524057832213680274121943336329763530304512089450838838557805614734092873644962832757033620537827594907103414251540270987369827806420830624807998325114157587331457072305011745281067948780543289121170007527152247641164816555958502614872638523384374213192072902416175265029954540211490137004410843188882823840830902528715861228925726558551849662276168230821721019867073657174381996194484287157202575383234755843959250910715785975044942133777703879508811829318779374620224502174673797945888940967584920996042822913026220273860052365013684332394120346217944435667310193296869838409810115563553757276267772556372689242799842084824770727318369394072033190923198425846979583887792254134227694645591882223687768016882334322773980707927753944784393206510737990906003816390998210655730315812204745749007654070876974361003540153972591661755672499022939979075425272770002889463235003681651145126913588398501090474598622127207493267841318635197323993900785481488583904408540461165861614611387845231017935456643438157564239382134499690316918582871132927975020187843325982659332350509732153972200272959194857939710642857587004179094550627297020535491642422371332488130543492287236055898624017989072112554956134679123055841186720556425545859730084044102446581101508389248180915797601358040743960188789778445681972443248381722943427885457696270558761447632495803954278980121025671393888579687182746187587457559283107326025982903059195192578051415673703633184032506006548018074429511471547993832728335547031111615618843213231350381482685758775395489923232636946464946787336262495976110786169106079066056505909962483572764421198775715335015636299760776964475782748877574185625716396942122026397338201072105505732220226387265933366420537582311904713601772847121439468971225948410392659150588929317401763115588118503995782627638667399130419909061605306985613344278209198731412794386039376325512933098078537830371494587790755384218718347265859059662638662839532245527890104126953380162011073053653453259970576757209801392966428985167656385211535669442727361914232064675099843265244503224301591063477984433602140467918710022060329130642531795052494578546570842308220054544182622456104318789929642983787806610470344646422349054958220593146531212790182048355873388406297710259470176765988642538262373112620575555828018176771817154731702865451818746539835984230614620634703890664152898482062698490998919768222370884031425941810032427451528956506153281196027705303658210428960743741035288409944835009621213308886978223730828226795101971035871789444965966902497897716608999576613660295686892893436994661444714915445814162193187639234502480966080192055386273533497077232564115777427606971449000909843757486229078166431945340792127204196950295572658084800528499930434773755651128441822259379718684953050748225828179074467093963281905010027442946817060991231924346199336612710334976754369041707132552613252424164210315750862589615438699486460142898903831094704124306585410350317434946201997546604294300450875258390003331163735986785217269244757090878801746403438700481984121883601955381739754008490272736427681566591311751886516924379633906074684417229195306917029696511826140084863722003260042540987454768514001301447361064109323348110734769056874886908887291351012220104914615439583431417123094813966790366876205627825714115723281545023121654600800933030038182706819466160346561857537287863530602257921828241951970418666970558658753538774908250306750677521649439207030154112158149560550553579205844000013488296497261342369556460294447216604167013767586532593147472856097031762168475082950386818368294602875626570117848495234067634127321886431313834713615169549151139500138625751469518927801177137358342062559477928211714781293746845020856534864025238105022715705721659726730785200448196411616757544954789145410056575378534150319695805480740722715668685124630984537044809530611595639388937262711463146619610116722595264081889963253069835395549178582485807873892483926518507573921678898236012193799341593033389045897260304843874182888491245535821881576182133981546817092628547804580520389771195863374372439255168036562895195172124873675754911307928774399244996011986904435841411073503118819166883240714547547370397542627363633639696318185144899633812322128518438401205866134506860947401907269208052468066778745888334114377541559764520715862074402455356588913408269481362520474033737615275618553888184828822912063103335000485466798346322279209042459768013975993973079055971510095187095670030821297116162312476521123972472767652652995818237842734547117746269079431974530431475313375806215996327288176807256637853299195149440575516225302727536777195996130092351796750229461471696811951948930486960094210532914825055651196514976758970966169214387683851090575062587724817376169136304057872101359588568119954007062081355059640709336788615447493360055386390715245149719699655155263770333500663818810308680001227529473727418353617011637948787832353801516401608249469325348687557888144547695387380028931527268237104536726048692779840003616532050518435594598431462681176690732034350838264144963195112321795611920894877887757785405220803839465861891051367402026235662044457823328336497707208807492590059158579001094571377480329964373159327433178222387833817830431126308371296583009565470908627882602478358033306059449130744795277832119305448700549520299988764552980484981112734017377196281566286882216251770599214632816196485790104929309295764140516727406678897490486160890250389945709148763335133294393384924414454036517478646835779301787631971336471142776116271874614482058071135270145957200393886346185331008916849029170391219932823161863916792400168453886522595977016095706308523787094700553841229913130996093117135503391858723406322983769197647559215757976847588119830625801475839841128610481775974546218148443038234205519869472879937846221380193731935397642109589401723417032797260988483533361017852299540821440101625210672585626675522117955875382720952535399336874359048386897624284240202852560769628642031160963246196335727023526780302208092439922184831683626577190348657379832782259288263030098831346313358866840514979125001878672817361170583945566750725674467425788096282556418751584193157481271808555402486717078413512629652232528532558787763714345755190052816519134177013074139138092673460474616419759970546896648991590232737544428335388412782977767204356271763025275950441367669253391495044512723934036907759381046843506261466812293824631577540175895150066758761367897886434379589198573868716016294171603383939386589793411141261934055161575936803377736365854172868127786194734388303127999560855241219434653499152220248778464670791611883414655761899736375334762437661532604854376849330899558702823255637303747843866080907113676119895481684558863967235212702479598505314486131633290735518570949166554042864454601506173797461542061423139233008654988343714900025179775523808075352387056008133756633107479602512104138322769928269870538234451348974148092140337905950633038707791225297285308506683043291754061089649957329455849301891561637868807732988425443367305616540462885307901264136094436452738417176358488348214387041577838752668544263164796066240524738543150459359388759324268011736333184276675986193952695288935620863269566972278306925982601407551597546514181393234793609043263565230289525913284078187651990610887413897844201509152273336667724012079515816134051141224405087133877363983476700023275267158652273622788638646928683237159543753482324317925368158577016139424307673512853501850933401698833200392829506078086445271103063854277243335879107101299964116014324351771674163695845198241445463644839365319366334265783946506552709472485197159928621429753063719342269267557727771433577601549259552813540668604129047791091515613802162593655687847845623142531611895616227576301925960541701459320746939172021895013137062664350140253569797354300876210705976073382967884322227437235907024839831118851413083526554189757021326205175128091528224891936734055680631884563667069292118900762949664054958662798061797871932130978001896207653685760246337904480485050869499500479740361386519671683846939032013691938554533220560093840428200891643920990422643939557112818691854556756586135892421288242259001348802064709417491330465410625415115656406931310811772032503337421583258735238251768637136244084816003360561324492146655046000087513581300468941951269776537244150600343710655840632624092885760927314033391481966085822100181113377504349091615521183889413695262459997851560609165213647974960924919494323348028764795975181801384604213275894035968788313007417419810483332242111416286419065416302717028372863833559100690775332072164474676122774942335205166972899450568858033808213350607082037442133490605820381760333589427342134273105847296531203810692327684994795449373042211849066609908575898433028512300947805209582221825328952051417313549794562672131465475585708356093999751020340655392643211926160387546370604629185959094851985393618617022857221211865982934866323823685920799019823249900929437400537839400120666074078988626204309276314639231791884670416856844999029875123215792625483548169802419905231545002647155625414003728970717094492247496567058219618677842640938296866771706291705077137427267998128549016559925665128799405917808245145653597901676030973892080587974653726805923387376312897410053674162000836731429975254121782700499326510384495292282476964202228595516638179214712629398964336365058936118729024674736593863854497194347369139515732215948905803828035922454293992533500606405496864555677971113308706140698039189456773887051338741650351118342076668028642457570926744631443402803509727519371226004007040107354380800036902316629321794858214105571686311801250489320190480786592544946765120655958097826275269005355119195088068474940273859463398312021573125236472324399742274595570585457127827960091858853000442733106397883178498901075419869584984309287374962862415122140446202223639685737590988699554324623873306691228656100536275532765251455199446048714827524766596506922715734761749825240987374325399820595923322332999878506731829477345483679665915246536445540001400190303918194806416860014803587802667453939841007708754690201313638919897595346417131514320742166013245895362348666720655744206450160286333242112838012521116213939314186547167341292542220038862689032257206618642025558193512154418693713613427161389606943273159885762264377604729229783361963985473396791948236807932268801383888863788635968980540633448680873475856772438211420121913075909738794886633674822113957401831881705276555651877934079611802090673076403460675446611865738888760673901092225531766940073921287105601332526803874983610823205714525808749131322092632923725479309064379492172198136052316304171132334101272198952733500994696852549857152025491714920384802628924538524945234112871633293126616977788509740358575885161947662057859701895162314275975816146061210940504807248217436224785379887619667759880931552347701620607486003369518699758419729300756301326244959612840278513035948623441790220440585202612895992407273891596514101411216801281205854341697542878940954703619329872672475125419050246995712048844806488156850539601365679203171498082828900337204786225532557372917650503079186500286719155310140151471681381026070244988374887003501825847198549019079571299044718987679999752830484178939777316433419012263551837439169747623582165456187752944368802935558036835644567539340377091482204641409503361638618789708555235571352147372896105319846370455253166923539649651441309657502937723052694861904468724309458310980195732348334395224076504279268220249587223178756941972843703747407242638219191808274675322908732220295802491469298752937177276466603436775351257890010121104969156641382320347101985430571935384081574873548173459734998252719261910630925053476022676064503833297302221686234181754299556297580661623786253645244197913202509893644824794815460319651337669879150601182801845635413299234850277178793453841420505556721393412188870011152545216674462757604800438813702062257939744595877859034002461258680483712329450571612449464246044970035772814809934733416280094282534307687030188383842504045063739473379189360989286837571578321227015840946008653601165324031993880657107352221467087177433988341634251430861542000123450649009439507305051875248555931320042889259834711956157241459588374622986879636889840388217489484588513604568024338305948827535052460828289385671375777877085910791557637098572109960335012996631820124867814208539872009133119498350414570496587653910173862422947912025128469458309678666491369413486391085839074576639204498393594233317262943378771951568173692993501164738969960086644789841927850936139272801550469052310574129679519504618896142920925509009419122953785968695289413404189383433252335212190098439004267760865710658070709360581249635849258587046651480219422312169335412590116104368453608503275248805965158616260791737225251074995174936899112549969659313007872797693041138960591490509169800763579826234494569458317564639573890860741538799041907877432308908849439042956618219630050686592627601427798567006936079950527523996464252143365000987907655463187877609811150482144841264596711952897436452133296872835130172698884014853209394011432781985041537427295354926189026496035746712283148841009840979273548192497929896815895873261242822970267226734319816762960689762917962877352724645139440420212296913475285694060150716370779784332173690031380571343686992726433381427417187642678808366742598313580750414643850839235698946986047800390483887217117984838180154576836980993878668672532730855045074055386377932317741855889870419298859447535052990657992578377883231750597111828941575915212499625126733740499234516432854876791641550184181296336830406819774907408052418706713310838518862655188742961468483655615963042803820653377377876925582981679075463250766218598647874349320874764519292064796149696763116053742751666543335081045718055161269764004850140569378356031670313192434215387132196835043540146691652763948331732104570120636959824834769798615418638525097265170257282839026299671317479555334537553189951548627579882578476101454171155988317237147936269096341518161164324392907737066040429683906589819551422074909937083240990483747556868901898720986117017987886648726464330724537685616575774622183760887246031263484390113652748273599431329521008376719387699343079599143155059486799950948395867739838921321866708546043664147981941491719011950449611803318672738694389850200417449743945272951212475047762385274229060238758767791282301518732333187998341055434779448153011628200358463726689455767618684976423891647517667622989272017394319304673883552267922992078706229026982300155761398649057448127309080982149121122669566018885283328528348878266974277931476784330340092302374213310444105905460704054628392391412427703943912197052803240685678300788173003613893943026109091594250351764924689827224696259687390943770491495573164492496822978773990618421292139032274695429668461723666689297940606294569509672330690777413848651324083228262684579196779029241525794762179323921413868714738695724917724517063061325326562069217106050832303496501872529691507877962958412970109677715604340014425989543055350493174158420924100513641673591982958930064086386549984105630312085676438572249940519007859224098465585422510295162088974492436349365179667431390834022247406505826254329490007227664068389064702216584967761849458855874884363772332953944849794076548776436308988211660932507265239388032692195623713727127024897221622794575073483001325949241116558094716583701329849163738341992461804210378200994971330080749916596970983573216051711414580620462232240332600467213895749958561598306135886021254390093980849746311409180842758548013250588351870502182716153678267038016937541857636762261545792943128464549933877465558808694727926739848067690003041304508316631590419210812321694358571065805743456941704038949921922762171814742008693657367048995244337762070191731631567193110674944179552830441701815459894814916007805409365450986613454964431222236636803845956865036117119214709648316471249702297547483771621203800172821304342360564982132243483988718053494478030192701822638264343044523505614828703492767357947020049209274672336480725214192051893616731704900422950827020106218772156519626617970651496112199194740286205835789520965442370435822454139487579894389729008199945165802959879288849694301748780802936682082095350055164449303298584219667452638390968433408017402897669558241644112459900831441251894391788353461725741734113001784017252179663747753792140637517545291226683131606856027515695068999638150913011235611299689272376066254957177145840750985984449802899849539300185038006851787494372426751155336524934412790777741079372792301849142253450827478704729439517944228145342678492138096290677363596224257597561790851372474643181227495732763206886226765701425003316509694453921148820777598890402525953146784545877307930854127363662741633671788299652553938239755789495393865979530656406310826569382715670927136208014617693767379088606910076316517448167433286700812127840978715579636462396650083811457633044441344714730854084959134720920875945859857374014500027222758139688263618210972837768115201641459846801145551130272110225335439078066651365434819664368031721021081601609956029915471457507964345897109386237015105816067738263102996425251471743828742877616507850252262636619911488261624892231792507969091849472808109693790266731062707322981012038753938101514758619176141247060923308148488437885113968558198641561695603407295731622227479048900214285844260572259978537146791838036635895439050996631524973651833644634927762670211122566994527587999326774204974967325541889927135434097162313023884612086947856260957930196097592663074718923618113842705029983254869922080529558460777087428368810145248892583927198970065419098268112395022871162062666823105581767592829068465572753287412651790509031199014540697880457277608519555166578098612962134612390225176263836943376411560703507694301617053767903569150689104555640206410936770141136454178912735892348102050163547379170799153409242104238688402358839976288081798902809104569133869137217661416633094238535041037893149204023976793998579074271775209429556648752144714377416401383442190197384359210324701329585462536229795914800394072274338861286495402504813947180926675354179956415513990497800900793271085136269999616828059159682487345594347873950993273574170816396801898900439209037946377756637487562456581959259141858376077973608487839756585033678328047898133667446035746050962719465091831525277824693132036021415244090551228874651911954186014750523211687452735446913490516522168003710646015222010767977859646890446016250521562951019178052400392469460106702105812233071961254494765258204706792990936650813467815679436355705184453856586563728364695031087280286561219982060356968151031624706056840490754089018507953296765709474974908253345665090144121544221160821268469747906927554519721391032247430921323949740951630725809855975047748886347877591401794838295170584084947610552678608750728798038593864901154258569296651473931191323575856254986783854763116427738579160755966794369875870184783271150698776781554924675590078046654892202358861433130505408780845229481161298162585250234889640664962304881588420240286396549731127469673824272787575595549624085453521422288902282559726798718882715216280581539998090359479426772246012696310314177933079608902262062673880068941272830327731792934996173302083209499958100900816062146602430974034325642057396389652443530559593678174148238060643856760263587682122534524895349265452978995321859824352518936252015028910545226562884414271046138058484385745067502834461071563303697603374683806878367915690606336424700805761932514564426430726554300072503938885957572619947427746984089986993568789821812410704671197853708944531627231980078037413615177028914896124941743346156905972942309467542882000767674779870868409190795846098583204419075857756284533224996593655779436666006153358989179553048305408057711949939557702966738629451735448579898056327564571765800179440431012613622701278859420341339708284223208973784889881884194601492365477688384258830658922413711156537725790077893943495375575043470388521465793642926818780072304205962845917171601037118198381562559773364162537634231019799391960060727216926842857761932359735907578809890946997831387369022336081622844945610030688758468512330811132037476391489913443042343127861888224682877851305999591723807886490499816022766435537290206053423235091000150234713768305654259143446229293745945324004727941157746466128289830491394065303276277773373066522634267032402948135187803314588278561547560832686684306990316778137382050224073330424673915755166167437652763654749182001735604258668767406796463655076788535993422281728448370635014053349853838380056723153025437393482600311710933337147024711077456781535931079048365271423421205324213990524926430887564707854055947489182450303435606624329635974319655379448432917174584104744520494861672943073004155433732262119721395715127529265576545518076983393943122145388716312413121045971331335959110120574448337533464133297992566687919540822676218714186129983322762694255138768175109343017705896905866908450376472594955384969231576700659912836442239782891683802677944970635082230678560887729529559605023946662611639795638944919177964552367559627237110925074459734432049571122226903964716929172986198592728148664887680378159594351200267456604073342701645135936985290609267322528705381587021057628565726503595935515714375943412830363290391086200453333884872986342919727051077832492727772920412102138282424271172354815320825362075202222378983879145191294363315677964629505869878342419419529535475856890276646961615342103600358576234801077406954335914013144285403203258594522907950415535176363400637300127744793013705706780173885486505213194239631603562414601557199783233419391518072507568833001320696346051310419152678829518501987254446897655937217237348191123553851553462754478496336292396183300605413697540889516214464046345169592082806138019715091769584118177424236833521831354325197254804749960582713899980851147450670731827394432800174019835973862220650378823865876859115826356798693532217362907432162214242133682412084483691637849995737006689526161901594935701709385546778972613397758094423595291311157081364914435304009965588141937226309028478933878245582365515393666831065884252874944272892083031570003738353345995866182640803500884232507869961022745881480083902457382649793549041735543160847008183028521562428117045521921004935247739723813725667978365456896565126737378109666490561956239956167965258948210944666264188753647498554215317679764443079985212380602764965200261722738202609307452957538202464856377375914331121785645952963556260464527237233106413533590950529981121497207922568398217952961765310018395800864668729968859434894042075898697868859721426316692525979361468902659622175820629131704953407452500597354708179476325985288519760809358262574983831757872777639609778629927053774190486553863649539322398373968650831009326046439565152398364677550103746500425493361982440768065949715340387836730507249344814291858542944491953496928743999123626374425050494721776806666446878218043362788531830022293953533434714713685366774594606538667083391583877511651211608351559905859675463424058015070651519283154399804912461650189272057278300909155173055077020820633490707428582006458670386207220462386449209066746896496260565341895688350044130423792592539487516112137542095591387923888165732391458884470835395102216702978218939645818318757125481912244373453206366614537108083826070604599053011354669402415088292862445026237157066354223525380002256366750296268040177552918404981731931297917274919730290319899109339043163670351721064514766926008423970046273884054385298166657866701874538415610139748408447138772580447336701607603208583374759165033647028195268930752868444055909898636369123131269833845875228838550799612110936422481583987086111238342655103492944842268265663867082343458285837526172895628317185374047809254481377677143902487897172018101558420738835173599300355559574433350845200348324734895450015051878901475447408759751554471293289150823118708953952230933668991585625353364161761441260054675367653889142943249425422120674802417480862635632382800430048240231933080948325175689546215585686692643649337786301132657940761976116690205952549751973141273104777658425833201258052341595230672801764179472062526037895845886010582147375568526340188449654721131709430814815431111101075769186072156269218735425766266217681715986822889110096080499726280657973049979188423407476021810225027643918093940571792332884026639649704556409724171091184738983498986957624125915195774401337544524843621724864900424158252684554691086724343930427046207817164616893840631170867881499315707653778684102279861815495182465553647644197754488419595693744264216922296503924746925286581094465131028405355096774994888677443469430019367165660548496184816212132820617025502927564808112570990700101671123119199717641532494752223430604634713078809325217616583720336218651752454203878533570130133265150335621638218013625314544152030899418704173276768281768334465057017428248825118165426556916499127064210792017913036044609636360310793163362164500674185630509063774400648219188109958588740143589548130752502712198867146212251866514541225479035176783184353099385412086381605914403223628256382392197816590837139077356448651233672605198877879973729580568892467280020280293125684250564311002898959148935898365419332465899168278921846054071616482598215048782284169739423357171867222772877394293133171052153553510089082903319298597170774780292293366110303216572763682172469351256572635705437857266909709950733067608297118812406449397297921671067724765207176506731225102445581650045073614079177200043039447066611699033312774569570768239916275171840047989240253208305350473166332059046126461796433207483896817769105394594592621401707367700337011116213455090897325028392127001297938687652909776681496630069221781612347569342589100444615954392817963235470830031467736632145558406359277362668417646551144016480736292091976015864729265906761601486551079781061689721794739172231257822902550831545983167671513931565237876246226263840904712492180953516490958744051220147186365236783905132644581236095945273311194711445161191162516979658180037543940653087494210739028198045794375539399527370717423270604138416723111654215997189302654861008094383218295692850598334075452423328688896642338945974660831387652705407669872105561230798233216719255643398276596173152155464817998818527357863009080507496755996101159239327107094675984725896025192153750411722829818946795808011438660169244777699158810835234020310922940109406278260083776535235366957678465778279494029703577658692260671810355734797332163917796367905711993846383854571291636212954903006226370637716487315378501937601245144601026189580421538789385902420740540569856119515580921848938383569913966469241243893592300851129509953432388842145532480343067969711705802153947234133161028759736347156695006875291433120029020767332227202786798506168289043174514713290411811366944523263795083749181840598263421993021153248651330385074891923008260904586087464902615037658931954073667411018674708429809780404822866730189269221388146885825668167516483038111887188208267144389384622571516659488916734899546710544035743891662322999723021839178921246107337083174333257750156907358428921093533811283475543137641214573332596413081892785509899995093237955321210716292725107636571845570952897258904101688496172700599702942446228180720211347028690504426354590638363666069188774932515051471881841266790122044616675910526017270427734996073670815258531553143994668353613756379960333411802400015781450248332715479232588189820484806278946685418576140387581735896820993395557790687273321689269474657908378083284936664958069553088554958496488440658608451267189081487908985400709472966092627565874398147450308940602833418940106522645909315342461657793995238656937583636195136122222604327164068782368849728598552528209892022132923051834187527787965163525033905089433331679209304887677977615893088000273863090532650712314261903020455642480947175711461388654566839623145100927613283673547575350893042879848041422693227146661081080980999894695707725326224350241936310997984574853699779269009016511833558737550929265655273435818887934612949094779342443897919066754656673770091962574397296761447690737749167906874806856970966328467847641015827606678065140738639259827556147137542402396635228236258575424095759801042503000595932281675056964950224071371951692351466913591431357656911199857684447422804237084837112239958500685429328708428637136053608846311358556879000259330872005106099343420130062506787881475057876458905123676793264149408974058037378678031513026090031035234516598102106728445314581624680767495595923320598046840016694537168757474547393104769600882055492364820283746043609676719570070998135165564592888351109057384013108759741159190936171249981948853978754268314622038557659347534105943130493106596802949886752711498429599627098386140123617196961958116110910336326295023225094568529361933108573282675067085804587132191000445360183254474846978943120991533480789276897170879841157891610175043727411129561991868013983478194405977325623824401863482489531333778853401585362069067803496004354353194453476672612052324554700210430852749640815806688611725785023626345666215374955425247885541709563757790558289018849051957351191525033339965996847404112069634580299159629706231258226352942160840717217018308165560619434432046532933654086871456743140552872358067193396765454562598594024082935413533588177731189025929454956421287247309535460729240618124013661065352755554688043666271650679623703038510431290953420609066583866773604992113240839473789405233698933782806143211573745271829597355234105831582935562306807677613301315524752185806294570234798548767317871470866379195731839302007054355687277938081548518950017806600826045482113862940870376141743716551737421795255629047780707907589585665847842997031882599027820540499135269932749654988103484227961238501675933310815435089814987939277395529244150059628196830516354081047348236313611955124659763391063615977146841279761298757334537776931873156101123395162394420396444472098031800246089865440528991188772696435589684910662971344877873573645175816114165016867345428816614659377413662665545740873717839090559751981386976420216842021918974050649634644626841824348182454658324085798819456011250413714487567964812589265165081782754269972175570756206458757711983093625080379125489154166352293829334001984117533414551168138359173942683140293174185523816814379528821841986966446213978198867161203411920305951514892622255328797075242493612774658536247829050814042549482901121087986986419218854745264643489183522683865262389138156456496055058238405060221152748909181588285279832229654941922082266478038566675049211240304969426074079558608386478037738650077060612286003832517804536674956148580430524198632758451706662833654133214189683134421960162682127503589058522824775159932119002644226762985454205782630871475486431873853272961738229712432084457988606723151183673473628472226191724045845252421614891912772520315354208253374690430103905535817835119496639132266999637066206636100551363704521459698686559786324315970722247024302878388809204515330446591354763966995158171130369423418510271077723978553011105606991179146442328773051693433284856267820695175601229360639254808208405431065870883996287138400615254874776300462942150314255693936780778409770165950875472294695885279047271445940905728460415484884190657546699661989734459249255807890977286392435862593595153541628001362014126720303994700059311789096357175503436635372972683259303868539837111932801704211017806703871518156283146381369674651356316789896624936845712015728241038043060197010752225176314534742898559434334430050361218184352250733015977538707560675012273989197849662296107544969711552992142677006728089414216511318629781056864261591331560729965930368108628754887279580626326466089562597046892002441984002623143200511378758565496359802920283973797699180820892986909448214972978187118184295991862923409179772547635680577945553592514839259630848300759625451677063180552790365632478240147009012943217437022711638651893053671436627609054137184831364057335952208763463386019442661408332515857435033468546900431286300510631889678453887382940830454153055448818200785971305268165350011613303846010120165613682742894334202470908021847109221963901353011287805432856758723038370874882246825309999726933124712003489773196551346329101918519143592516690684647689094439251143886254518426723268098685695493994889116854547805743434353012513599957862738706395686100859119328406065908457456057272319419751283374436396744439311213829737246979622278230700850094018338482251368620560564518459572238972026358079499894784584868319700618468510312821910093908623902389077115538347024828431242753823300502346070058922580819591358764198208097395013183191133389895586689986139265416226362897778743752191821535116971406562823020178253642534734532143763655990342405431686217078506691125065925400245118429553343491431774317804504731863836122075558607330131608317831574526668341793866176622226491752363860735919375699666587761687621968882656527553379512898043523777293937962436131520184668059973668456697328906603676544148220228544012207605336640117389861580564057532826375028706684850060635520059808432962230377686463147185253770893771550898997425671022603599258501730899006457693809438139526183471489343568712355789734107437381545003944728200777310016892141318787957940625190302381313791415208351108030950100345477561435887678591473998839861488149065442603021168511201469546189791884734415603259812009092035748254630337308263879992820152743821830088487730531127066674281863464775812833775043749719622407800969327317809033382506104152715610343452472344966947935302630272389777627016234138139973667321086930770270976506337327343363245077075276502484066873862713894170050428034448555948301422424800770814611854556344309712991714637767178660612278969716803488529327839095156870336673829501619075353446538357893499697920674777432629509314804271134441053852169309581872618168404944971861509278923310468402556020254073058350414141098187352250545552646211218628758388799608454378205997498721801791186384458454656178453193864894586782947632485232846263640286587376793549562184426344547377295672134742553065289583373216439626831229639659697591322365513289595686635856919454581245673549959612444678871009588611663796408339758213161957297142630554780204938779972559289077367543512342424210383446312114298447553672693232460276112335181619350701976754405223520666321986115901031890394258795645747133169089160033789255593821778001124673627928103187494570179525456341880012064971763643937115541056554259802017218933022773865048406071731138957716950032411053699578932204099696221497098212429427578084944539925510043102450791149528529291328805810923316976274650226058337635343886510638893138600417351511400431480485516039036658357096334997384273101443456187907560915479830773167829633105233480527257592741547300162264619072539831310010842330507449835115999195202684309211916837777924662247662072186605259841515791825818250209843099051557379117751091095659616367497879632279326328060282486452700675727350465139521109918080662652405735979396608359602471840640436281842382118741454966192271893152262579307706172702156402232737162293726880870466776087132824751121596205430791841472656645966723115237532030758821561467696631298558633038277773707506059059135739221610557894470062708937009440948539345747437227412456163337742429942844150442662599004224456873525119387083670422570773221810945548405789464331859892524325655160591862533030405237877343036983002635679523251591226121054256078316243489083577485833078276965416339170732006551409850050113323087240703935185184045419528280490644018603029483551038357410132357319104795511542617782069188964354399333715321587326338972479032467360985664340976768768210834780025020742662066316835969501490510866665785769060425497671921517912927918698618411526038473122219743459687927927393815375512531673573865810717538151631773185775065601831806716313859428356647818946532064168245531767728242348878594287863992977313554076823708768183195064966476555727358634443420095493846485348942038454886228356049916527518852322684657287443890730095911708219464683282359047139588966623030632411408996391258393721657595889904466492845144129443617185479979401107420884391921926937717376963802621690800055618098642537319847921269608854594001460384998602640924639473818290789073753125483713676122888870457790713089660081795648555189710825888061756703607764883293700068757095288242398049596150266229529011269408071595463908072623293650382037365709493542896242518338074505062809260568488093009017128072939254367900236760484352171810354998919213717914262519459724976811603584205381227217580274207842674436210539258109399760393682456612476253453536833551670342183672675943006030946202268784342121168391896295651784478450120393350235762981128893680858148045288928077290441866917027992687357669116177148915833032559640610630768461015735168336089000012146388174969091184283249305171229926054858688337232614238341167669787009955350306217365764422995107861842794402563866950848968773076345521200286321259869997152055539715652255038779561647065170678566489107902332653651590018276978833422632359829099124653806930356007137928691631117430645111106290427588053752487987185884689748451509552932371359969252228732749862978104348712345244947425569717703873673695647418815973438754857613658668539900670091066372542499455026325790844106253468420389277115113382386226461710504852234952663367976521833746688657996829657356400258191543102450880533967524728044276530941914865512980049968868135808116401479374004787547744369671028999666033527193421815541306446819229377635290793205558331043588544268295409111525919016329102449759455967929566677570498822657504002027471537980251524067576995440551909870841504006829877549680109024045307480263973789787945654760331264561495330713620887593525887611967960800852681289822580843267947938012188373103993238986201145309502010940319409220483835992952263240792456097724044847072499237235816314997177741237649708831809414513873729647656192724021808915040320957964241044811880470609141005810303670424223972968765681125810026507644750725536910017545066186645093077325543614095171644443562321506621345625042953479827029464403373821407313621826141952498705242868014098095915302062266856809082969229850462068718891691165145377433296000575774980065374517908417790210920352239470983787068374460924044968077086830969497520749582267746916820624831815533437413773894731335762123646605338635468282126696738697030196769184805757005164829923897671378163968056234971295266442594390236067955305381644863258612410576299784266782274343764010636178716937613528172233215561158972749423304688000949091110641109071072347418097138200043353480058076910799907010359455994054478440553230862447494038333161104637956812681263224464608611217021727907939428456855853690132139184448889674722792013717636498845080137278201138513965001930608173108650465043774754637287055372135275066716189696367613063679485559026520631655225600509250461257206824257751235661571206626540828494705866035962853647174704401015977641861281594296338755735928250521249403013696964750865909404392839271658186098091384049123925676806916549502310654627066445224000721091593240298569619605328013730208463367511003679330482425794199718406912887673444986206823795349080997896292664175968318419664303125348089820956337524762027046085640981744005565794958215230364027493530872730406582788935177241893060536874717379782877390618093469058434788565944610193744095287697210620351681645920785570886101008379817969160845656838190333282587865360824693024053312416089289908568321593257458910944075487707728571886502370075070708297957305050285924886128638661826764082520105587262493765845434620766058033937528328084239855820838647685668730584544404752060768996142466442235766953269929846030986807249962539405547766491914586717527657428495063502852647749384622036553793702738049566291438235255306405393042238138468560048186275391760602925399698807553509146222902858933812956224162597734668613526145710121016594164205570765510893602639849917298539688743595127162550850467873539155083123747472659951472326386654340026398240865944806053905654221029042410732651747030909491852410128470110561105668611874523918297996346586919006009492249185528292373386032583608845603132881464949027634066717089194410459540293841155395065786270290642359574739077531362299162889761153689780063318537225599920640697040149295961142444960148608784941848793135663192191643163959939347631832489683077983918819478757486211959000984461449587590930150468657429824542331257834285691549836293447870687641416037167176923499316821005203180946816782809662483966862933356101054678093111929789032160419091764063530083836078260350146267058635923478241737274670433479539362239095695327709172662816989760191166835060900356055281621466452317235383773641747058551348301541746686091209800011079449442883744219336309918468735168047413457681634300909501145834987839776888024949176509520036866560577413162695225862930646565257070753754370655246645286952528520766443569459148917225876089824667802656068790713388535406935058728881794185263417093036071946550783033130308259154386071152984452513983298563760745837675813316709346710046799457603905680989962681349745645459258488296986242895381047261521906217446930204337044481439239034949410895428812430058875439247739149087926176894647132394544622489769083799278448973308163389439977233576544268946304000310924115391052878429566724081624754500335558119527933519385281544387073785153751491407570758453091143055744732856445740125027183137565912408381949142137163342837885223834355974408485516141800099802200416464385026986137593371035387166044040239578496538165712600794407197977981044056986295135612717915016540873228958811547755262682093925842421433230680732599677911105830973744100124343612573395880916491646540473035694736755562491394394714017596421582094582427231448407501957002492885624684840868712716872113536482163129773371330326951954530462286081105362465985591433393856807141792254183589448411165477382821689313874968140169117929015956380574227956302128881920592345246113631876060853803134291844516231354219822645625109883460583382455108051121038567394324087416788476468434893164277558999631972055496495507750207203891194685046418025050426252747950326360983728595686559636047809056023471746902200694775506609406530809899044357465179690969741575759054042938024195860456058691183048443711128075036203986572739568404112314207062444896639360816112166925721380557981621038224475930496974743224148249995735346543941707391697566343679729332056903234227778364767731987880284169750720153312042946548754669499868673885370723529869681334007307707242360902257031172766345968651757332730529061261716892160244985446582144629039248197911339755504812824947294630753218287374069701399388703280586333108896546102732421393893505764344907291102942721062026260383900704398254686700632026020518066099660263771918352086595784625470525973921815775652337551989752591700841543407361674876480543678648961787980535781706503021131666579354674243091992132995003955491231723981531523006115538010319227466467516378369617478631457188664419998991683991372276429111284145478401201891448371243776959325808363801485320196439875578505523495344827421484858835106939801333580728140145310296277959944431109605288919854509497041876904039507934209905287644287838245173975458336959419376486740486853865926966622104140957063939053289237773472636922298025207076029825508221365062475984797492492285915215197299141413219729671023588573465695353722799434396352425915912140749352030680372238133187461869588760046233058152212795964211412043724270623927526635060871438396408224726514486743317965446544796603246890612142122383747522436902738102639455024878765276382531906672063470820776183608674759380039315033256840169247675780243279973081456933132445355834523311145988430827831838255733708027554098153873713994282364142291042098099143290326082856062830969553971695552576676912885359158063542466448314943511816618112646216308208753644411811510068074659368472838328001567420786601871214024080534201594900965805454926631183698289257862656671968428443999081352406595336649587665406763052980674745318069807658321339678264996586581264586169381992226764810227117505236140895662629350871663652940808720469188900596584682784689151301690441644735299120017740588353041463509125770176933460646473125022087513149931773732838939046208527853679969108586970362451389941239094148123073357324068531153033082713782993181655679542762494360336571795907146312860577818973942323790428163140947597096336162978597434980847059377602480539602881832236908151034567757204544704625712151420879524911088936387498404530209460289460423202175083839917289363121249642762319740193417176750679614161989076486285381288172243701043649241040005340793092446532139736689759108575198520317088199839597470753138073893332986266652980033477274464252033953238812464462099677229647402111263123993249661610405443081753312742441988968213806564466512527568028170263748560880375847744675494677317983392101077116891383982767329709402331996983888329045526461347221073736675050333271713575098001617915349807918829610232870050085143425231210720289429413367786718798486408682696462269103913389794218949021630464839639937420661642050240491292718401420112672636399050960509366191517917063647349538416110775316288061277090522968459607157794814914295433368921552817052160559847536054587302839006149940717892398862395686114160496948520821173832237962462928658471887917538063778877469392966248963534717100578232224477921204961722355164128595702507980155926313731755834322371070905971821169847852782943163669401722459995367290844270638382607795075978097750452052778792654588697669750641263210380825908339086127052896633761145691293987018843456372158012489268956769305682963072114109398468415253069095002490859613821357373825087984812747468893989393606964341437365060237386914443621764111460570129335138032225722944691860593246934267746370839871595920238536200438263094829421292582528651927428348896833413980819455255691411649797794937950940259266546956878060366600142343046678839743723519810145779040935519446639343520075067661122038931308692543196351723756281743720283998305048539164325030361758781817979007408837269840935364606190240181372758480971251078979652841861069774749703882336848271423547911725470739742888063263852087878269661940622264046944710667431342917338339378449174758362341136279605511157545982247967080710674739656090043623572747296574771891925908242138228124620975771068475100471336726692083897601807329065513869332995188437163707794138392637400718426393633909079465294331108165727179304292248484988522134728464112433479413868883888808810394905883316795182401835672564113262019996228740980900319791380556230435832217377562718064138940571811152765875793203032880487924796931982419363603999514247531305226517380508153315747393233981555172888681869130946013675332122964184409986284589418854504972542232209697211611584040971202109287910824023432418383054324742202773279568332749586389037202652026458840538727361936105681091300057253966879419964606026410055903094578471491973442818411861330699826399134309992975682315220944044259022415466437514806111062731471056006455010367730934527100979828454358727962348855432212135523693714336551358532696992722735077074519145059822509431454134034923740523188354670812124225680848305776570763768911498122883018090230177650549973071504736615241153428622453927761464328403215006697247543569647329177226774779303287647145105768642316527713260637479073327157467682764931946155039998004732163780402973748471836554349418216182025174859892911348158443724914128187105911790357001882316703158991205687612984193985863019005235030687503192713449433428385698022853067990961202414186797949250493486654238091999818761420545482956987314150018606794393365660434984697563906247906712668175986542115870828574157815277899338021562892930986969321388149814688614763613731144050559087539412422515682040997818964667823022642087680310277120261536687053611800853977016603956992668538143824349779812338594495188184208200958020721215006946842883286050505300889232130961818774706040973049966968891168370753616103200276618097303807085886453238349520152802522141148101094775304252349568552379983740239236892544624826609659519986292212132891843674171933854250299550259878752402007137000226069526993197934081995635920888964312932064068785021851161551461800526552259890315588069868619442496405266551835132233376804399776392844197309470259505116301182152306073250133185970746787669124723534757275197047587322372937220624028493547497932177656957910116530556580294885954200358138343330538215757213880624196971856542688942683366410414026466352427261123570349191133743381501952760058367942345533694382058245276668697829714540104273644578003717872066533515385758251207871163526515323179285232518794957767985467936627374435305922528118060950286453793960938080602856609809203392097256926249674329128285821329149216458063452812737779956282156766535669677463280619955851485442521078048550317546761494360131229811534966740090633658193100180954341906417814272810087266670159810831469190982060408542653523727872464556765710129241194493671951148088201648879350917832571922817109721951269098926597741433337176249069508895306033296390117936969132626657278366531704461899723189498737058550172623672223546325110584356313029745084650863516737155230168618757020081701462166459584239072557797723781343018462093938151563027353214206619060130801080415525174553307127608178976511335415799833473758132265642316424920419481307072457546976096771761440078772635550234039662287173684698201176085732968146331054699709361284876899170108368661863318446263131024666364173385132066109195197482484951728046660360627559398524457774762234939474325201325290497538517848554078587095695324610708763162579573121011441570899273093113878168089846648301731179206645576212593865350851271310348872501439077139486084717229907578908304961257897397582583383563596426716684429593145187259769307489405722439388876398663307847512479865960176309832051137815930662010842005104938373281853840436448782631986187521086064754008776566807194423434407482290932021899832475781056463348850970643578302718223918690998114108211967037451122090636190097026438763511927873153378488903443505702926256418139980960955435829406221457966920507864612367118739569703139924045608115327711582614124896542589039143527871905024454071597193981616353762610795002475124175892975684939492796536115857776248673655322308736852089187209775526090902241892244146496769273004905267414952239244871629080882177024460797722814515937233898607659192953442300978600008244207642330908254455690556296275055796128022329430961365049172678199260260350690105469962123919262052062543763235215431044745025244031008939112605101423703699148753300155251447850500622248749780778133096460865609327794192817059915119157216389784032159336558794760445548813733245640324219563649334739098923186738518045405675575260782388386336484895112216076610075434731767266356624761657544607912879991682221827125921170919649888656372304476532447908297859975882906048065827655684961459615799381504962151707205571763467488135575263653398446262442181172204043185704117444076056907651835061392761968136279382778677986766147986211581773045750342983970847802582913193768396542504052910440625940158484039491591580154334482571469382187840145598037178781497557430466771702939029951134492324774980567238866776098590913823108217247727285494310371362204230569660794014655295943343897356582297394998273362696943856844674709321498893127281026339026374094763067462511923041112092154003352268695513681925276595055669748877984115446948919771905200394688233161208693806442011329944764535740498484066918858423917705199014522396215667461273357938952781034420775042126642052861410868004576238177476672570436655008136850931781396126127572240599529858717409937811928570036789951398591931329855783252285960775818702896516076904176439387854705005699915385708068072486198350634069111675891271332360803587063371763117460061272861626204915864060860082419708855395171082055205001169839040118631273956716608032231738106350698348511535978586282756737651730703683595966636924211445168933676230088457823192861838769749821362924470588877739465957401906343004649583546142783432776246691866444877972981272060378409989576525086023902823130218665116204035732572224296494012931389809700801633306258271504325967823604048118251924231228617224079095164544256216992204325567808261735551562488448381126907631487459174019831665798476703319449876112787126978210171115887850400854789162990743312393157152798309777251331946161484846525015670640163897474590378012483966140793805085699906092729928560236517643598149816709411330430853686641807203252416142363347609871459992245089758667385761988531526461568237108423868716924771968235055118724587144855461145022679204248730867315939249994015043321410632238962901471658832093498131136511501143458194603892797823585738625602937021720604076452910055680578535899130056007945317717395909154992721068744570842507952688079494763441366754529296390083106200163445340987696290813273441860593180368259078791496062597348992976959852527996176014715475089468975795733210137025901658266571303872104454716053723486049317863068561197977517520287329690607480903926994878532029670944970874397403431453011266631685492691500075315907572662607328735971742294450925800128471700166227447437760491069749342429593639447460727929962593455180645049275565376062592585886412694211856250106290247325340602519353117224764301356514058239881999299652954599044923294667507406032136229604591986990637186286576036335331670652394069501802801918693930965134521096690521241604094525904026646426187922289414368307706210679389829920908137779193504768466392502172240158208891575775295803077080371079821322128658928540208221183986805453966480198077624817951634477856128100731068638804730084208440001878430396463566886060310172738746521276109279982303457805388295238318776374040047159430806254887363428725740222084101731629175998634333647132859494201201317809791262181031825482676927662181295836991173744023866445559119627131766448461076758614817682142546070926801720726385408848057169402230203040584107684686879033189030635418144191574536520385331925998251874592949876689447407382980439994627188589771264583106775722038020139223954706861633980441302338297794278813695651439574340182127718401632090717383729533407431514363351920504942628680991823255777947059904224514700561829063183774095381825412627489883158281083176046796603425109446885225110377797755334084894031882691846832414986532899435699592344280192003831954825658548614001729189237051673857234828700290375955126447129357706907979096572749489414295847514972166063283417507942378474368176073259990040561705197106841708229540542581800333973984883198007036641125317712184115083149756794751864275741435904469109891999140575070022643842436998359362198486291449507566852978159474357876125244814603595246772380768760590893499737860231129025864379217680028080732059253191612967479964493740420373361173350065595837211103766962270586731185185559814903690530984332422792204602984044943557069708354677730738254510750156802392510281409920749491633008615564092307681263297362591895386844343865789075163825894607382096408394847835986629276207602326158163292007412783234081777744815572305749183187502368928333068254097973826623098355979159169234409632575483836921837819174340478280619777061324260829432753087629345758187924446776270093230723038777915297418124777713383641090635891918508791717619300975733535006040735662249132942938246618418939721533959169251772060895881229917100352192226928627829129690514880322421689373470721754988847520063990365470060937419112332364796248042702861698127689223926752893814514021229450689800823548457472778560722307826960852119652826270547437592698426194198690114105411155487239658109781676942684016331387079603525978249904202191127210165948910375326926807710189930002385381499217986478289130174182389906294708695403576482315933704834886454470927210779834192875362117207380520480900263770537218285049396495070228522297329488766202552475048307761610199198823231749362237776781563553752486829687133559197289998310128462871104810013194042977516994929378563849010140620912037384573596298765558238274682419404605772004351429054316805177150447186390822193899524562964627184016554469073292039579214081762169327798627481310707299834388812986994050593625853514758152000879541060025212866040220481959188389187495923634772124188565775495033259966662166864743693478059226172485831277507519692733220047017667975778836791090658820790743444866421782890133591859854588800067101812748111038060047954645204866816483257225084226443553155412127423335977749630938532269607865262388304972745153800733470363115557330316250197690929905100004293260812280966125708812484665286036777955670099295124179232503021384549917085884851790551570848360646090075553327561924217500351627822267360559771927609230763401918285885520008079475482857883721188857875683056062969611479906244190677596267982398026790136158137150358965231388170129702669852820905485295362339470985140575348669556523629537636522782561702726539175402870402140339437428264489755412091125491886097642121548791089309522240168357718933087421139215428469655804979195010781478346328786110333072858195976217636235896033986208053949525964755878229819513982889941759275277901538145237268217840141279358104237663398742684380540286674619091895123986099607667190529522410821311492590837740540348951749928762369057101270338799643329719838637031186467057157739868328934075358932548759074413387423754096236858423482399743698958800105502411238180992291067512434278459970580000423489790881746306727058001361642144768171146582308772082213307274335774469984498673859975550429890178240437518116291413407801449853102798013031921196388794490331450523627731150154835203358976548405843301202364523414400177388946236028848122327587679288554090839551204064103700274314601423529380241931756671610012090373377154401834576849305707672767300708654107846158906026948418407583371561585335767940074934818454673019213749790024186812308188167826145506268905615582778077419787359174602732090888668539786838981981921613425329238638111268559421972626364762531323638980127708796329386270774084699475318702653020278974993741610472021100757124190361758766233830743373022998265357545417309497363950054711489495258305538014679048949112794407210604109391356575942032094387996811979248804063346818905258541088518505084527078944994705032177950446080931093363104965669103867268397960758301151746940330491024741924753620069159395083293709909368322424653629862947537861480529638222799852364436648376609739455463586651254942281769348269311607195361598095661989536267519658702341749371402120436203002286472409968326764133723310277498479833727586387958973644666899691448972825923909364497057942487796032518849205918315019239428173568631643553692866819313954724600012313137884808985450041836629481389928183889948403129529914269698874534741957446019045269530727015454285799912496853468100733482477646632250091846643941200311700784374061362055145915898883913698831503334641909115897411485578523801526993657071859734226538016591371585436142202503021664541492994495459742574695154313032662558559299923496298313405692118838007399193148544175104271428470403779435110815347311888672229360862506346960423262039121961540657140099028953058429787718366781118072388553210492679392316028993080324682484907708822335826381190424632063372193859637043286829349400755774655007466565274754219593040409205696215585570609751701785298868042354507174949230967716551137440849609056951332739487805579484391075464693959975897860478749503823595540028125442718024944049133545190334065581552305017890598115951646111339837787573929335148919145172733245085501180137202330002184864937111863229679720252733189617500605990876357940521871164628502015505077118906916837066908360701876209699189636765063751415246376647746056073636072675680270901475778643052554008890706133582987530324163628230220028188354622435744345440226765131933890470060880849837839520095293875169779269198243878950803784148684305229387837522597912540780576432414140780447988201744314605879117706534854917971396622380959807292848192289844467724438612833639460441495779215021614772553634721123957846859701050140893706366679162636518732470128026037593374601065464594436801491915084284110754712772658073304604072371484189209111970764423505262057416290644864539204048083319237020774545591793498269615225865394293053435811354505566457865803954877279316302435570981309608234468895116247140899619592051824916974470618099989955077839578431814786980692637932745596526964308994660590894756739370872646537959537243400049608213442242943631962812024584898794106425478036993132001846496133983839282431554474879593410862554215562384232310859058227153370135898548319602556517415949472871546027722028692794319288232973707000697449904069461365079845263204449355247674966543120353646049685510791142731094151450503905491595638582540188505190099135381900328930682700053816698915431508278651742577355395606693200099672856114442412464587491679652495302423688956588803130608407279031404419246957867682253924631857147788718029371752238608640022257498792401702860290259613928155866509719443630115200309699683254352509412936727831894499067259507669075613625696985817878595872039006503602599741656639895478991397838983395782943263875350296304609038697802698376481357257590455022740007463541428416157626820300023196395014710058904082632535517747785680390445751114773661703729260931507307014880319823364410044342889343119486807668837736873068958291966082277522893787719819841093934483215134907701027578474228954833947701019230658284449451290057109752091369269918594742287023710812217507583776741891396852124898193830778406570466044327171615871804435486163055363910116725920213381747949472891540608834916754518001919009336499642870259621078213713471756031942807830875228396005850981883552646381553260358014737383450622885978100293431985657858793815485571436206439262635283412954258091431504572169769779247834395791263027071877133129424157550551962313083840779462528016758828236701596064583498488008446089807581414255463221756283545258010125376063223833377151409559715239519074488612666051817281444822262883696274047293094105657527442988591625628112136265247936836884837034641376890428195868889267897784912698633212039403106554739221739438494010978279004919046816952353102184362378915227271087598096759829089034375877842847601621700374673838641256217775717203520912782974313534818195086096568822457793471207983202989672440856874659069395897443516325798698372057790043859259042028420834819723363346284739204140030125762338743411401342049108515847673737459290495864986376005368699643904585599802833829402604607517122328009292651456232775454805084976386464171813962015882051608153656808664555198258176201024193545981027065749006930834624136596057084809177523328429371762465517223418129044461310889716425106097157436492686877207173471037668996254822291910027790912102482523866156561803583472661651244065153363619009198154848564722882319245420666823570733239003023008144292277302064479584525683467177883099084328277274587465827123188229984363533498287527546658231669799476490126679818622480040979145726459723213273737455844040820878138387549085796574946268879315390128872282422563971084000086045544479440236032256909967298772499122909875578050214275288092666178034763971778597106084145797711215269841364718351889090967985174951442490716700296921826104547318588241196002356444758685206804657696879531923860519634853579934348670655398187995639311004658929850078906321720296987199903137055302949642507522032531654432903432244331427260152158402597121488420310899646605952947961188720065996565720258802959170515656411587828458261945259861956963915283770455092397319886797301791269564189779404496992155831127124459963696824190504037075595130445015330848951314262122877849980279271916254041230834506416079804013464893574131874676011363312756442546295822883734788178943860915751041344879413025729527891288238642972479597502814361931362633049585128139759089598969007746375951396415124417011651375906381320810388604784562317428144101459695341948042467230716123745171221716422823517195118119317817661029661298671558005539091922071170786190831558854964138989846771642742643044872520773273249019590998026477942323627993225704289540945058088905285707801365569319809940733198174846760010102624007379097848858903195083452139675619331724240552072372023663678100192089627242173154324694346782125260396241787822409580276948168129514927420485014558861560602539248945144549208325113812004533390493062410436496475128655342833831731585201121908713122555215369334428989197885830399944995325160127311366859831394049148703365785613173280681837156784041115680228205184133526342941586598000310140842057915825697697980819844725914590194989972964395353947671503883726104044039076144669338579081825694073157600110992288141925377127355677077819375158134788348527046426049314803330564687024682617914090147426298211858759174970881503599553963718181901243322189700088481127954992094933747190039036519858154570061709439212778782763337065452031946115975182232471081655159036264139637013454601451540151350764760942473420350658061464623404052956284687477975555359010619305938448397851114633735981718051679427699449183953816444569800350425283427414651751978185947108219436449819771297011696856905910052652819552886217831673031555472794502797481512533809830924353513598160755576458525088089560315436893051379889536780403541554349972457057975202515070171833478687777367258745614488230814102138899613356555896045305368426963210278883759544196127804018833722561908531474800362379173119111194825588827648988403378210257507975139027535435986979353131194065028264137076612600420091738155155409514386443586120018520465889870722439413709425435006408350428523408573233170854457891061662746568072182367151972731054119511127978212810374136392728374811459905412366973483750929206176243488460056941046730642226241353878366777311476172463352762367689696216568065314463294529383397074840478455898938585562009417132800468264002896814475852912622412840755728836789184599410866082539435631195417649057925718296889280157975251383514235117341101715718409777096343377555117945882118624825083674401129997512804826893545411728953959043447402604406557158513844215847321603511438485185045332490644979691514636024791852964801881159368973424345742990000623189051445650541148713378477772707422346644623580447781723744627621052778347405479198380954705435593279641498815066520860334526091692275004333307975782230485529218077508488927921238008672995645676976705237566731879341420148684150008516117923027637597580711740069938966510512198497918857408713117425103590097518377992492327028997473257221053300192311516511900920936147716029189244906326224502490097694600345273432939487060532579738978121409593295764420127159749457868708251108188372664713338881600071358753228259302773008077947687609795186964193832904578085865585677847926083298328761041438406573676982873586975904399552444674949221537785604488582878026399745527803144644592402182667721261028694853505845070701045850739072698647117939255596457919187933075005753502597594642492112884943356520254283780703088554756553565725007665604144229099795218179740026762975914343675991597874088468616927513635041435506865954825098718496965385473557664764705897491384462101289280651475283400267197177097161348011161557007007222113573306854645550424701786801683470829964107334265568687966511259758029691662699145353052473756065152500861228659496841340750970076616870242293048671917198559226217601530212823651076282153007206804682178439497787398137742785567538588018649891710884219210243294498718664954816558003762087363971279947569813190566745472793900573198684995851629656936434102027433378248843462567737343078370635138512757717874796655029932773418613503331898565843269218538410497590209931701295533229396413007524890489331283050045679835274269487170311326527976064162063633398788822940624375144786724339673807542806065937620785772454392742108038169628185639125219627350985943156444873712038991623158779448602092053130783973995085413265850428789996497941044071177355461672207757779514765303123177927180268437694335704119675862526207614428818892556797351395134936988849943333860077714297396755982169939116169704710256707496171837308100471517978602833812622917607970632675510362403618201746210383760107639022883429094446766095277089459548067973832560533733937485239007235306373343323988700601194709831082881843587672141708664141015369841274447423512513856002616312425984761381612915388932574066220733742379749262497186628906187766343941893249696279530343110341110167743034514587983489510456976992701700831892449595944774531899496568691647833996861769918027836339232091644422503426951817607473796814914198334810743200199144640509264390753114599913687651697400892043711963057568408793145279275719006721104889999284124770981243787351112602350055736089638182884396827013294707251069283554431518188932852467922256338957678260230035018464160523129270933407565002752017111229185095274894915121928742771694242057202451843132479529723809095650690974581087057694600912908851859606643361345004677795324522369399200763419329425401630839992032694771279229797336238206550068324860932565514459775987193063611541693002492968366662284571668011038276380770816441546242616083770125466775041932706491171212201507376765073389636686370013063220243009934006204470347868760365078829288021946197521843719314770926595922444014172523093862393361431761944503120328822282301791729350641010908126940505171995062812849300498910559266977257919097024870287205897046859460536835252743861697937911304386577645742435409222064203229798687317169583552071426951070873082811919118819997766985978251078140654731574605379383677224012243105179798322987258016925882548198620168439001119016541385040490564471696353478595816513943657502869241615944458345876809849007740300622206867155745552781875648100681894968171188528466901566503927822880173655513224197098032716352461554972925956372369972943161511947174060131075803212404030597979903778069502860525520051381301944525294077721785501137254260140717025593015025581567126899025451187368896551241850174344959268928378482652917938464165028772546415131803315017038744350741264711439848297436449464809261396861520434370545945693489733226023622383080910658933683219685279548888645524752258623455491358692479868896753119726135661462954510044722336264800000589778058297281371940124897426253131104008905614825374574120431772135137880753429158091909099158959618602378956140456333572063086418811108003353978116973786357812611773117837888328812031602685363863465401011652000195530253757508534648827243108502109120810944217436900685632894206725582853493515772055181071593455546164984531124873289322070427349750247600997632084489042089183566650649290625610612045968576284956737899372326505122909367865068136268759084287574505208989705996903681187904892115790743468394047646155315898215768629371728238743513715823368770042023191653488721199810862909748386204866487882432171933468724678821875065344634498458395766603581190224446512595357730307686718477883256302017976373770022448947546789053387690251286316005948361045232876055122866644085892847180398255879903753443601162681147872281700134195127253539319144408145978577187256619091419772165326556184677993785879920992994756082229445739590133822266754692429489607949649308150544090924067008939701203260760080482675833058414931461687724064614161002286202255067507283352479334223233284375311656354779584418820899083208163700896616609375133815887599574200328211862119457710014552915585912070574703728160048496444393575872078525245231966510366213392343814247473394837087770295868074152523475398802818550001839570393435102867821509391342085616082001947949066257618405637502611396253783556179642278186231938965380754870065836622706226326430558125765053633647279790698808214920903585456546481727772781732096512548887222198174593755717816672327004963583792496360142144077739142020368614501285044771397820388668358911354644247362566935059499198999521164793441167408056178583275557891719538044242283466573722855123801803393650693360205630201256086736894201466151796727137090793926092152324409225602742214421258921957414630809653488384060300877166450369958827699237462133436692605206357089359206615961641379678878794031337065812003482783249179401449881415831648891399871621911205848306762034609354598773025592686184575284825396904960919011205541787234854146824457068468303264433819072907583947909519684621800254376478148186548769448558862346931791519024493113826355831164641674015641561446240433889735606393363085845053654580717363856924305134750028289618361197032576827724657549691197134282790380455122832585147400532368236020079530361305760272133142331357952741766135238919140302842279866735763984224019504996276992064662341055035357515544205316449455467998992747615796485827759624138236522156354216294022074102352167478476177199463759423795284041773241831940108824450184721143494704662800076960030281368642947683824639078159135062335068289531789477673938770436905114800148144367312742653103436814699898629702140893744792035868624453070744773030113666134971057881453034539836640819498477922369469395326782112765066304702536208299603939051515369152261612362999199571904757094955690193492456724694044223801104370260742858122772785400619272440062152663408920387286210800499486792539075513210006111099774636062644582393472882848108460893729803099670382356161096234237141228974353050661469602965542815145127672507463560250355406516929947593600474217776568783748346651352695861868079265870674308692522668081312355881684343783658664393509321084139980709385209272600287716482760394241787793032779631928238860673132635437471254687780790329969021921518023003396185476529179472245046748021067485735168631006549157293988997433342298512380182384814686623912150515519631204033528298555951681602626928601820459478716970622480773987839219577675181308834703736787585752893954376364594203700200144347652953523338169279134689631888307356402222311013344196959789525647381913149622801709819615516201261140235333992332032535389724126862428130033151321474261641657264353079547950861140486992654574027269354277865171078109302450714339015530550469451942184203389350007386481474321126936491613252809352243071168189793608281215755049183459154759749605833817845110778837912227072952065751939168535180169704720420637423798343704983578477108755814388376711747970300755660695021703147391244842953590519261978086560601526522034442887407880747276360069457007875610894836320915977861822205901389203111503344479757039217787560894087938366146906810000166344365127623167101851849367123053851334407559168032394571613421357318287544877714255288351591842372193563005197472624113342902173536417332576895987398700098884100714204316597344500595702674317615022546814144327711446281731901234095625627138447531708024883600673497879395897603901577514670928606243956870684156912554567659843484444072654602652960736534478880947852010420799086656486827556043439370112339119311984745385816495180035450734445948219908789658932975031015958738700376582541727512363996847532606945364013256499090804133033982749744328541385351028320412571773761833168759573878358056509772480672998594821122137065282943442750577855207774607873287535899980483947534040813668036078849181285449350431025488011328369323663005619390386062167104179806854910240441258725400794053909837785545925386942956158712562686143507209357810377643282981754367809805289358010497381771149076284017598639374159508795493939606928752825965185931895111586507596809329558381954223087283239676998298216847793029376949255584689105569724342138518927120874902974243755744866038706721219041822676109597825520840537742126833010753298120758004617165499613519746896581059257857587201359859833125310669034300977304430847361914838317676303896632280734068884713135352550812073658770288140180596851685800473927270299212235147893148109931021469534714497992095503479632007892771226613954414563557998334788916351917875895857604702291722170258217821052288617769683695540748941043692473906644781247808199505618827646175052319673574140023979495288763666172900131017118850270563070581189768257922556174558258790171680929787007026971683368628387843047422633662310801276890403002105869254065123408253803724887111455217640598569854495446950720118989354466985530870208054878067347912361852937407906732824111344066458103392324622246975533565292362331707631419378358033749197834631350961018383034700790373325810837235049024421320937228476557293317524188182805468761271421337492853306880196131282518135841914884579265855211990734890984636591517344146436643254217874386070975916246828234163339047528287426963180257122942574723228813198864766831120808586437118805122867732631739552078934448022114396888391852855399013282401171098249512340523860272406241448062293806645937258342788142668674780505298743222847616828885064074859562620593409417121105195551485430725300847481215714210495507779991464156330066616013734605508871966136485089639200423630259563901257372942452299446375581640939157428903384929583981484576826764939859472084065358263969731201518793709011253493538572898555018465332264014506510752384194054679052944718701461030221556558987522163706830721504552206870708826758030613093372430109759314028222509592220201662200936874048207607425171168986200432713676009896118208024958386918110381519388886688619035111494867681714901081797139626679402891306914718628839961671888909502274281640611514526265291020964514393153565067148772181141500997350760200954314452964649648013009664816302122906286083153934655696305590320061276957588558496379822293032636710430291517559904113234250120270714653906577755152243126028675387424255460391082860876243572001143214293246077993584060431621115514567440902633051009107111897291143495503574156466003099570841232868630087944603930123716618528940996578049326956167589223515746841090446747537679787682861537246879183980930623687569240089665905966972002863481757064320263800536008262772465168689363389459894772527267063812763942032664512242592259811186102437707539987662619918357947557818787547264959348789326421188565092512336495364013709389803101451006966294411749304839055746160101754641668740430069083611096254086116920537028948424407562771106205765516592271505830216343065027896506831263875259619458192769591802114947984128435109481600493414770919760697968122040837186267381189087027755635209088253748136894962039778207629512435070664970865554808508084737760414220669397780332676075065349088977218489371326679025600616937581026066318748598518793509961488179617853208667168119120634824339555682338222471017896768014591601159228907684943735463230098314575267908801530498758224139598623824859185166026958138048400367390274885787158139075335135291114404425600426601014478512491796933978801754382497020570476773198458021223038059620111530238847271405396862077021866219771680834459396885940366227716671845170817751358211556124654269217805675113776826556947402877266335703831373646986202298021013172624206150558913658408177410017626271694961364603561765519201453849238448604679217973940932983304300635247435306767210663178209061528537761111037763545009476663986729807168415331925949277307320241254428039632897079008594053410893292211035445281264358611912210807215438042216378853172562250816268587822162279815204981326506913140444157539438969213270344041471952333207317113184294886098320019583337822549984780486457907775122009018620191327510795933810032594504492705938183138206373355024875601611952475297287461871030353332207630137547999725998174135048425474683068665698291237170885240295652923160685718598923108397736664402929108965401154179615396529608115286951385078290888338259904870767029239347995797538531471699220313625842427282057480432848701111265487420310560527565252707013177387685232752508674798067546451678638554843295059903880892675958530467430968297931125918631843988846515067202246272353912491701979414272269573647269021613677494760571169026246847461067239229837268032309140654228596377289166059220242715579488341590515934194231674571810601946544083858979681605808767884271379255050700399829077035959645646821182519988671368120932108646631331294746537458109375399859559631145546553953649659534104865032818791240938179438258089521957022564852215384193356268957570729593555906327432944795387007156261439104928017004402660924192564352320849081550572914499557442522054757071288779540595991123971117191375369503197752980861570404654568000847590059497454973025209644265596932096919074166686951604379269804669112545067658488570969152951599874066222376201052083225703489941256124598128321289266994943309423150528401322073402536966359010826450960826112589370981119610691789252517954564432657778785108237361667505085492974542253788696058970657280835169606040316365548931696474769442502828828250007104656549998609812606634163738353469490637360899249711076579233948484178563319529720124178059047897735477650574285413482529350443706772357670731571308300631206572403445438066543309198141938308888268104925572103383382697657937974345973685271338651060626928273437940282375044277795420720104871214610299782984094562103158847975249506596599582007643865605874600217415328145297112885163749164731975566054378660042345405252463869070643978418010275855666001678621752129833713667939734282403690648938397805269178932012456680770941607358874969951465773265676182273099468917680796072225600559693514568366749787257091918486142110185241051435246153372444887731249444023736787884319433798251992163143070138237410176168156105199526906801940925178002154498530736184372161956799030478768225272157697124110791480022398172599640741538835885727480814376573544530695327143629056576737876835942544671114393296849956606733896163877108617411298897820435929049009058978023303245661153766560356404599101743556401075969809237703283744546566361881313208133075590398931471458586998832048454860812528909324581682679001791985460315987159313847299565373061528077952565640373273105746986643148365902451795237826116347651686451914309116913360415932117981925539237349860894844227652450783498669086909362514217435611103860663631155080836043924796200458044997378186694347554118489326523501598671224979584241995625145409145548335005085686827840924625346176920003315725502720493763227822493023155586415565292374578401840293351270179875093989042303906889739526154049292515877342805585362599373260371566721798439004432509893320875878767829008504540775356074178569200357759491345748767255840624324481973414006752192016702079571999586200979526948203866584910437468921384160884845613318966033434979158757115102463677806561286018895290527506500404933589662208970991957715810974196536269833671344425030629245545493450518561861200416255510716826656332860695183561314269907844355933888837455401523914610864848394202901618544519223225403762495740969949143512561332521324971849671925866623588865598849970448560335853643045122761736256947972936768762982956573187604459852198942257516290096088003817280619376645088902522318702324462908555493062835131359726444803525215911256638745221105363630099055111394501658699369585534802089529831690843645259597976961327659378017930434439942261451690330323063330516349954230884240221327353106511154171758955734117206325427583659582521578785010797774892102678401095944395761429820122340189164804947263180478968757682386433218451101090863534066242865424234705883066895430518431952523486357766188694218542156419833170092587962369937223640709620892909539192027741257960777881445331356928327828380155839512274372260521127466856465160744281075522857087803960155645063566964640930870718855451932479853577345815244358110278627557653683439601499106023314401958480908514915686768034008659975173841108126550166936434148822423268192556969218516210695544819251689970263601013904766523537645449174004021478110809025757118759612705298581820709400230648218616008882733252210739487985913454154146877473819911981676731382271094819855487403678593942388494886073445814766318313479873329026844059452314013696477242993255207827871092434107604085830720190506538815542375479147468140142991439814914591537796753996670268438651147224212949524003452334555670828162904512209361499352197843181644503803459248382510334122337047472765628238736278581348972207767902983707973530396372975505498278331673918953577221833617214536913934609997341777845329459730245113403788121007263114735068567068477621527615713643789316418630167424427084149518253256072248128299222438639649324401474490564760507722642866956463900448321337742171640703311058423289545219255957045511901227146178352793541503113122699087364604796256931945820385244051663265367444699809785585427146364379923159550439740684843173377261918472550353688973013335747840826037382958134557106685571543992821489267540363216313398962776043393585608285974403071371957305825984282192321422181686678500923865277583472818759690011307300650991467642475415813324234896672035115403031008132420831685192945831253849258704035145540211635556768455770396802710848097627688135116354841008209060213950791903947244949081081404128449224494616187148037814643566968534144828965107471747919171287404041174104381765592568261728641174499779090726209252767022864765514208743042296049332817552591367965603622280090137744136398269611635673889142103418348010537846511708938398104478863092134254825502141861237012786524021302876829695425525806513255153931634669477835365737729420746025361883770781881254502187003124062567123331072954730725337674595321187350539338530146117298794067215636351965326316589475058605572608366887250725695721561267580662141159554294301840933659998540747215171684167555447036853169968166066476473002471224482971512861771256785288542262427298096492458061589535144066710304201457872772861718487856825098732380957867517333364386358296778380778274609454405486854007069558026662619889493364637092919117940936002953571167941543877405416665331386157997921586879637191182200351128114202725367844574426675103441840595821221172602929874599136537884903704080128723472157668726791817034243577035138260689644110943786490413595344253404671526802705920831201461644787809666070002782731919702425240909007814575920226594893620503193922262327957981171830885712346235267197495030007728689397996196029188948565488531207560441467602952461456483110988187250881528464231245176132174496926868590090924344174614061908443884404914422507464242185389525898935010542949483466324562661250459560582743269997638663373873485556333227637233973799134972642230445386978909380732569720817115776718004022573427531517928133444644240488109558764549097158561739935334555733545189151473637111018557929429852265594763705069664064940378208279334420202765784875660406541918978397128665555587473734224424997833340448544162752128593202488178201972661853530871966749690566378001149785608103162265934651102404394266360114700300103410621013348017889444590628573170734556861473970949967817566978758504040713913930858533493234109863291780324018852502054516111400931027835447838089408975395888745005373287860833712466858379340876657298964551057938301177323054693477500535085943490049018479872571496216306736590266000677237003330454632110328275673821871001902691599373942944538873599524065052114870054493157450886293578560962772871974171296888140584065013837656006320490221805312064326272629397681795309442303655531955207476040312908887172310623272799779117102446803558141855442307502082290821130706580080533256349518802017823801605884957050386269941802823096217831438468337839072430620730215802980611055107111792794194034393893900264290851518761789763954367103738194421597911357966385877280562463751300925132025660201768371972122234577198135906167411487428908366738069133498184298985456505392638523297140098516181040750316117454280644350548255658656667901404142052061259259398192430724803599731942318160426147022035027980046889388677731331338055796261639320123825085727298187028711612114670193096788882415370251216855677288135126477818543127159976260600150747180258538082248442174755057850276162784022671413520413201353610472072071637000445747350189477113824863275299191271371149053902424251972610121159622055860354712657711423212248190677576126489032673629956878465725487601261437753156340779662599555513785504222995549696219834558550130319204125140401343340056225057377349359435543895654883218120679495251541949563941664444384681244460432792157155932717383127050609383455725453848420622134542859891989784458256827316567765698724086698972610508641938033788882007023871272098954123413776006242282091911886481301260353316881889625295759158505168237973246473803082072450276970633700072333719311930866579289573852427309292916691395450479838553240297848822488821900760977737800612199868799695961965612253064998568143561022783864354149081877935204277727640006408236845078232755120123418505400299521455453862968257472423008915051803771560647302430272376840528628436621940575132659263163378644801925189893628215664513385707628886791580236570837952971632381080812690831628663856629775753099576658112053109923662939367314142665833726519535593855657721717883966085301434629039684528560122040319982417124931321394652122747147414412484356845022241575789700261853702069413346520094989146004708518395817328445378578956260151500481725065602079592092867520805778097660353324930992511372525278755654050101711116124784550626496376090076178214510567372063038264954212729649553394963001078783993190258412072793245278766276409290046533527225114272102062102959714348807034236945323886552817959269813079134198464295751196016516727240752590293689893064688681292863896402567803337229893156567696942540934776563470292791600767380931153089352576674291268755280671939280581151680259419698856272634672185513396444224778344952880321239825680493394968747431484995527003542002172193366643214066388362163695669903832403012454499189696476847520524681405153520306101416088048283334192227799796467607311213328809637890291277271224062833385627275731773884482447934970217340075975011961025416868248719653587288393315675322447959504462543613752932693075130917065785371937595774375041939453583480400976306511007839511621221634371342350878541303129165667840481586358901392812616804203995185339845698735929133854424290579637072174898726211698309828148695173765778599801060753871045411418637365819958136725087881951474706108844262691912746132149332898148651043649364335039819202576766549228543026769844539719903990973581839781811985547904561441898703197752430901070132001790851144907246752586265695540992382473867972249400977591751457721748062251979681675660125574553242775165366422944337550948917503206940186179438303741597203391359115638268827832326104593635764303716353273181878505902235221763205768817786473707176481277009044558730025773968664934805375692751257934121484812597149588469235502604777951397119970291566301437031146836874993705257085153355179543418234028443405374592911726099383754467092200455352464091283680025142129254824316586793008155670929799020049821066719419690114451708341944861633440904952325301827949904560657926134768408012113315264260426154985755319542164624196163782049701559539639295177681904842796147893465137566518013207282737060930304112888945072912801238216040049790147282801728959966507457416854197798022600283457593864444032173975128512018429714214614702081003848857710513850236602530474909096636013083614252562757990449773125599238708329454825644613112377327484256416943010248233217938880667678990992329740562933767346064903813785565674681021145547231678775378179277929059149096784648708302063819131577792532042809210966237704866737212003429808741450986921745997567419709990420918041160276579893637382646895617454856942296453824822866785605421108237222591844156548735928666369857557947242463048372137158483789142918119942491848576498818987756711263074632588819872206962449280551078975499607886366255262893936592735977015194086863029802896728048769351139061399408314486628722484892389198387168475912147794701699461029612914902441387666118987936365867958949059287691380491707266464382790507749702569785597941364238872457775502339164164135654322327585517589887175951972080871437132255454465750713993847878182326067290384820119511318371513849120773984579010069955015256440204200630189723470362776475126986527970424443517219055167748739763115522957043885098242286864210990858688942762924839818102742641201999018049297337768930009806077875244526319086811347056713709722709112688084510300644973855487913812402060424799917461764343510955464578626380640118095060327620196640520548201444498910620835853664712754732283467674445733393712134867886420939788427725749783767247362111967086196185149316819769062336557432008954269164374909610485063261110510537873562855023086941249372697504323725400971307864662334983344253006410914380093570271527803594823485245310464947953095751490937497141691594984882774554925006216418870116696836825740917844087903800253959424522193002883769470559453533407868807943252189160015167340553889671860039889227306722983522943282092042641020698774110810072191998762917996454019761683550716675320764138758880814031740876251390039930262724257994080893591864341118090805281810175601098289264880843226801574238866816075559925197477340369158144412127142297720188557811260423474850588095933014261084385125745468017116732697369860515247000941585169079524405822623671674009109356867575487326173877749422532491881689233528333383622665086828539570633134641825007094738354418919023181786766811071884844495817879222999750434070396012026118443155200046655437261327044035896839394113512240662243577616670294414709065129843859355378246665284893665028412326821017138629174862946832202255112127578193502322275341519536741766529475524588227245555094580394625592012517120512629052230924098796956222049695329675621700583667917041683173223564981871049459624611569275595601624977888890194627368099373599297793231396643767948970164569386755927760640037064772155768751365284365377053056099946552031095099378760884337456814389574765499704682600691887290138201944182693263046546705679209002832084145072827157183716229633548029724585766393285531817357648076488134069699475688179743419852431135849729152737134433366139595629743193131994023196222150523211605380875121505732646242931984334979240371578376458879643535083777455678823525866203208433125424062641512572348898335957357149551745136107093644781105983706212858212808304600244171055979849470130025414546442926606540383136241970416192088124045331024677462617525486989399957137665502026737228561216119078306775428107241246851256063099689139159545995530489800499831199254961729717624191966976303871725206781632992078654386808301328734613520069192971532977820221551207392186491802982083776375351031709298448449798563626117537037735402487290132759523024587685086144897477502125400976763368527945032332788211391041843566351825595973091862563080487408006932607189194792273699807785595049855213133294714307057994835357799999460416465193508333252413067859749138558550547534184234189582319070618772183633361359070992639149766613667478864287942797854108534734902033593617768941069837270554370446652804654858528856458513734450812365109438071305516488705421263413113044476966724665474866648122988882287849743102406276236665288430544934153570281075162168381145355889201007392442001837406740001432783113416855571172336779045283691773016446608186025170124113170528169691916045937945307977366764799032214794645613669690738779087909899793991228207464704254263105070942626517887734648645756978786149703015239662295895021239503476053542622147493533081934192245891203494396160011781058774171986320290938038267178064543722448595696920793487329441538836021566365691315588979239573551843632958801283943457094342724972616176142531364419290930822882942692317134467364741704687493814206832506225556486340071721737839328519799123840246430443301147942939656145148255892317506159047737110014191902103856879544591307386750478139761502037918358691911684367599786664496749557489811821130005896635137952338504933775030699333651583376266677161575650771148517383340661783152199623351886171452483763920291339900067827895932594924925386438029865076468655639139622634490916331784769351298787633587533211952093828227405965038114579105751378479817174443031654321872331744177099934062021822080352838330574352159512604776918834561270783390041368292153619215798204212347747067589472534530028942349702579326039685101288623114249078646566965613972807504768170490669625386270460581043469822634289984238164629225867992103504683549714217352059965337663594308327187525355985365926921178544413645302315202803417838700902223480056597465043402282516878266931623116842969190749373387909524832838017644632475157971762498707280680102115918398622346593462883499465944613354956929194080686816441758857601196918669819818976293991575404901830394481089494542767643024342044826659075787891440045929145111872729852742389892543026027395263543504023367025440195087810531907019660929780257857788606880797644733031145680092214591197576411337361608902044624758603835760226879480821671930859987239825924994256281130207706170786335623681738523530167125644912781136578581699080770157682713219895575537630050607910004867197429104326900105052905130037036996844900860587566959623250103111509334157339803259723749165148996981759124937468305767343898774801196416563533493325596566075822208518931684782485815862758246573004182883179297330291366266626535958846835048519852975444483241474367592411750544189739820607166273592567648454425516422003278832930269459017429872301205806085629909653430019196683222448473816193593670060061357945362592736881023082948608407438853370733591625103276979243353234029548629035586340010333844903899402747844167466693475943715040829595647588358483765231702619965897687523397215491625510736240316092578267106513503939140622566492678470754375317265002623789753079670052573888340426487314125495550095591053456120555653488662745472154145158300214278925806550646602073731900808811110078724503157348209454169536619346185399967820756348920406596294682685137273487478835463280648680320207320054136860102945778814456409452271065148634327635722528430390666053724669132705784396607248977019272966365875202777427999055622201368271522223280318406684154248513491772054605283198475383645569029679686882053092278780123079499679958503623328790534195168988894824238553146543664043899286636254747316699294092280329980034810742237418068460157597108723503045242622996925301415926924401463096580502651906899708069643958423237386365466650876757817337599520545853226415464451749709586120805549140889638164567212102119474506953391380736340620754256662006751323938227986777448229038560585219116457482465269026201462957321507675725734846147984239505746200330304233779051487965718191471206812409197141129593362217747274893982753425593701119855622769076860074884635698141729681759216200962662508102894821178197949929437916687366137964108405485280984537589220035644540085857423658919718720640306244684103786958354270226575852613209060343618131715706971425206356776284413915663764733562541638948264779784001010335111810768531269431387252604534169743575468883253342411807812991416597655665539132808196076764850064245147694242275335397754645089137534927429861276182978801000730994804280718536849114372815131223424315025769807431926955889207232282174991884142748950702354792326216520638638216167298694002404308172443719497137582940729184347791817325102697794394058832767201953371498276505301892258847828720169715727769308656367562519617460388513586567901713728406306479876986908630446837990409099214333822823488150154873880084786170168807292207592597605891051959447032260325350647283594695647269945826597781195354284434380010629885502592902892376710349084562900586882997950261316553240050579306455098156687038165015510484383288977555794897825538088496005539437292117196475820275786174025465751344146790038652584307784325543924834259194177574299845244115770762001416028215344142671039523851902883439530810070164664398755260438142263297792535240600347166181029090045311959317910571258759805076803783890372303238342536242186339966052738507565179879331566385013634060717124476787701546719445283704082885936615552456583327089214573168921636251341523817233579959942472383031672131527231073125508417911017999224212425230754377553921994043477237881799921344862437973808542666524650629510316969454688216951835271168148672852853217098442885299841883010083699853369360037013939553990532113664096305812014329823092597047097678245635971049289245593899626499876395333557585605101441140240791055079238569926030585558882662072677695519836298306828204398279803998872426927197696395598885765008543246305423338917751739496216392575900308596613482574760774987954421296845364555038115395912338116087211888709928207270121631430491893215819650849434269500953970924733166320330586322312579663776102886827781107272302588036141310866929945658978350978383072465502363464155002191571650136617134542656292757963386311110466335852758990524475482466580767571795761795713518692240631128959776520621629262287285744432162037266119067085863016286010101894174709794934809667860039304038938458587068883648805772218598895902358708551761738019782697544670869094248978463216823475734087454985319780297611950457855821551097601090441543447830670686560855538507290451598391473011852149153880410157032967544294740721532523869502428549846718178402410482509015603225240995724544078241129088829435220270869472437433635221664955189206837144884355437972689309949545978651226358911036512961939519934404436765656086209533409841133162432272816772598145127715675931555333595625892112120449242448314466094629771498316357663022127464141759332562416742928207466345029608314471935442394934813736738749107668831339120884030691461721704338153887990887861138906835283987574866958569238321487550638005996534088969158766472142823327232288815575318055104199204303164684844499751724602732121820959644276651468359128348670014016358930213867073491217817306336323435248693904063295461913625179142400675314987557227011660740771309250429617208050656981896871508686154166575097955312198711958837712169668538800667501369437410251160067780737878274833882685256912344882292420586307271359273256135426211169455541260140171383186832834779249665983789109248020659333811227844736033356450329730398152004070202623707522713707008574700305220844392696610669386864186411244036385159968252222124550564448719530904279413018068179066536643051522880173593891963858604483155975382092983556469966419591221462285721593179601862545179568331374305533076657412099418771482524203177325178678652939898440915311579055424963279347753960205915217819539242192622339133629491198731390285989648197387489046599037023217589773590998919111717240874024731571006437735837644384637665453565609615617578847924255509806788841475144437418611058676308422540840269392216369072570768332722277389251710998222390097365648147971098063406062894057787393279568934064912831527778385173214170622445043435201285223958955248749848321370620954989582921006954800425155843218881673505106440488093268994457211734020887578371939115916677846599716244152784351915416888536056930105639198676084079546193686505525141791638846704795216494182494402957823035268633767275557379437595032814794608275384899401220109656221495560354696768473622996995954787451667581851710570796135988006203950986771870739819741969476474971100779396769447144663384365437177132863764577394456238006326969254237887460329522475958058009936521795692837714664140353175587022788795202914817031978755597146037450426067887239342601095038710852359758863324957594391063238014048441774742432431035265533006342600596722394437172593449600725371853881165753337190457526320381603199207595170453636039760927811053681774134651257111576409696965437808105964535659877351893408739625825038853425074639565723460248976636699970525666351007398597952251317252005555752699344069361927425260683325752709814767756329861664435165751957795880400822017906565385807476904953670636716402368151269241308106105818963646740141311224978596682887121876382521411836397264814230378360074078260427450472379790350780066977681248392521522655624813316131529732707612826611077122784925841479671933039883777787491716100271804222032514035436146423298592053892881320227327416243829512857532067344317964997906263676896057298761064516315849170753500289065553183173108801696532992585327001108729942237661990784743382112499196877424071577290459321705048339128354103734762495822881979402051426420270569072047468058473767914719132666003252749573755155873740246439364090419613482953395395526630548243522847502188114492986857133693782692424325285523611252890356746752147607789871861270093191609445928528016559499601287623207410130253407878544130197666031156057827599370236222778107114445600488937012880974757589892522515859699890405374344764398714325425487254729342975863448308554433436699349858807568311395899519951457680751413798147764766724533983865276341534509629834975789225257593604671633436259779171086584181355912042521218307424936363030472110935724263307552771285620967771150862059165853623945661977495754469619870699177196154075477288855595989407675861626605519607946425517650345024649302773749181751106703357762804127264588221316583732888751953057549767237713511407696431279541839688179131932838087888908196658886879801378543330331378679812863543485538295407293746185508941574481009440965942314514389087398679994471848778422443994930168123019303803450018915792521348244034009660617658599804348148196572383909918942963185401874656589109570951358076970382401625891656907669456003875404899543169627571503136432474163545113849597476052825489398993785665736301968510435836138031355816883396519535680730137063689934052099660438236623385143249323254367643380932449016387381642207607304394336465213507163590737099071694699731326149949889900565406308945096053377860928639752191663436599799380335055975581291319155021819576566856740126095557038587381263709953530692558537013198884464896474740990217220824373270914368150725877165000127148304474671763695617722959810419757791525769474943427391456242608067406872735206029532771308540559265331772771470697472206569307778142481200462938597192251326317147301135887961204183373316234854137893747529915954832642936639035840779297094400409609931436003460139688623414205315319599280182619863382095095887795548172412366956985027428509698110106527950225348466309704057486546160642813904469968971632007627260387837762605630492203116966216856177180997985313048578863013688631706875864543429340330909744983124161660361326345348975895832887921057231482972707786826816507568777524957458336710539030470182999973383845980966537168502172320198848405045053951243734990760966161971941058453807853097918274334982725803240990624733449733041345279976438937966807691560774300231664711290098622831409147182721003821900464233690279482475030995901830598028339860726186070116293422603945814418835911588846519352131778454875237411654873319048811530178642698583497178461051304631743968478485906263678817281288032512153306294625598513717413993711549560935707295962364996374415957012806048992199086815929261740548306854828569197542732486549035012106564964524178545187991760443123570023033700071866635325625349583480694379746038148823703096839384539774506040774152478593492960178480840850937356187451490602398546813724437519068237559535361358946014288870253110773705899783232715865858741912647499857542485865074602313214833232611237416303500730091092319238728525526353616558452940521464958320221143818800578825341571997961728287698411086318934070584311403705704468834424730721239392700782626657874036736715543987115395016795626616597362898092536928987631028629581616372112266355621772263289859131349686349115802718491956247831819914312353222091412519637406793746430040071878999705949225228024671670609164008263049926147162702525333149863816419037481327928708338629676448767334789030743140907229574877560905830697058487677240056526816288742921209693317537955229979534925389958635729659308681421794665804332587905448480193900006987815675939428535296099034298523117720879712140526522811434739821947963761652734812757031406471806278168656576611210452354005960645585458290533471645218071047008667965671317650240334676791637849571322109244700472583880390491609873864807593464096592410620416809438258790823798238257567162434235861006544184279292969100148762066426797662937973497057810354718524356314484590907727412623961123246715755328017382972857155648121726093928545444854305697885598436910780925089347433722374945729381224666077358209188717202616091394240474844038305654374724318403341426293630744728966465300804885486724897708542690742580664682590531034142339083583822836184181820935478248764117394177417772223270471921179224351256962233187332117728956689254013221707054777569404108970656092329941688936423807156910827112001451026394418320131838979004980754170470481821723652440199314373798226447859575808953782233778238678618400105247327922236486316061520500226221139982307998822654017953993953691458639617399375834141972605082463307524667885452149170587849909441254729732052484774965388796592907666525600070363885796715564873793704938115014668255345355591292072904157720467355463848618053149047522369260495709617326637689580782960619824430171096915886860731546192771440409368298849507231496998260855626389149625421254266059855657185287754384825365056029483517259484925167498186163825170643286898470049305983679194644994188693656248707223124409238369021758921242000068747311595765451026642899789319416624399675349636708356685790181586079486748018538395289199930251473577067165249979601255696160070458099010475829687874838498525153338668554355576897079496223589705418940034935838945468699379554977408699162555209346896683181052642655365903277700797632019644091151459145393156057980802558226483941463252603660913638757706066183658476622549897223232313295060712300139048094086012211445219475094075476216516290184084264370604490064700371457175961579411264785854131031764852947398426560878290058265556765096167819280851409084065431789155908757279728688688413426269749449252192100352213613420618133152763839291574853500353873335586010062174947649175255105717883010979416296342041947947749613513502491651138995012256649965624486017855845848158686092427527115865963254338878979739443004992579500109091249686922606839400668769095189676520787550372885625655014508471610701366790774736929936164559383929162087101433514594573092673301679584556299919227955671858821688733024739950474737569135170229514369482262346560598341029698896414911447441121224566868061911368804396935246574579398109855446793382183937910418344419713949719121139770413779212590267909776814531561933837351106080016385452332855998567158203920324328795696498260977721211459870793265406469670044683183238591586455121561556499741138258244527696696448686969393938352885645712533181694135268898181240436278177223092970745334388436850590409309571817742348915797078173260202043956874295198102660525939277521035511588299682322693644557493535390813139895703383274914943481171342228224916694627178014152645570672578717462137106950575901586813580811910520283596586390828063245356133675349405203551937359884522809937220951819154515560816640121301288414164583073896466661193636461431838017411772619506273166928510103547834197725330432699742214456634340271625815040973937744602665354247121469070412804973240268282351490902854505058852319420482061511540566328333206343574689281294569857355236622937118558328807986714294470251683962665765400472293218223705727159139209763408697975157637198647830957766766106553911379297762400965538247030571906995923583030277665286251832144741797510529697436290100110915364667594647434820927356724109860499724715421266350177915479540424448006344078848876023538017575196327892560476327709422019841563668151969350536047055877050457714200011405124353734287339025900554306173049995573183034238557100855963868469689978939901679806381040779877467729833945182653287306105305014027411014207920982703700759040136157950928360220921329991045346874182416875825236053996849124390737849964540975852849080197070050292164424899605761072659321739110349323244942869504111568249285560232624888854043106296030986408615164342653317965374209644983504306254494834434654835645640528014920798740391425207247808574315771611037685735098364476077471939800617079482593283019439821827500748865318158007489356657262717983978539452614761199537329263179514482397538093259192550518329618921421168125915658569682724250954424928444930110719870797938794367932586843318365980354016848202259606892875097130479429752363440389581815358070029544657844216683681637167092486916342995767600572301140530862830535800461219197204257982321922595040022104131764196449598374669253372108644273343357080066715341208575866039749005381361408524306238825646434184685808963074508288200268682518382402491039149202524744500278979449786781764716394807100883194230652098529488933688135895004090852501580142919824256477744103239524047586081119909092402584888657074467668185803573171656532434902400047544185569920300962886798115868642797342000620838322989265013816581595718377306326611281579335914163183301820078358649007651373824238728878861045393342325909057500524801249480934471752096532895907305009071698582413722859658869286717091741938483089884842679432793888841290088888985143242831873569924320768695148506005761788605636228445285181152298898587319957620883891392291696599135795901722672846844223694520400531072067248110870746273709480295836509207861482302014766934712814318326965072610427757975680021119310883625663407805745884712365608911782469356263187521090547397248993606724199427743003046637208817568403263256998916333590490722957368504277538100812827736389906776349369415516374967682476968940916311943233166866880135276644654659837347588975278007838235656478784867676924241790160057381158086922450976255659809127856832720371803742847517843821828706692117519794876270138774924000040517575029030167456152958138889821255768505508799835767995603494023586610037310217396081371138521374487074916153896265111947236849603092331281103309297793660003918532564148685094149886414553861572055986151061301256496526134334520797623126853632857250080653365655977988316596597334762502671661750579265715743418044711232261999760916344467016178950744522859880164441908915490999830585821681679975546032926883168658285189986078032240885818502818838679770651955938643696667786997543424420584256312995686109762606307909279476709901061074067473407646022478137110024123864886437547773373294051609334103872366461540985253929012410110330729529376931489733046086225365214980998376256718154859243678989607119179382184791737889215925271602242052847014691134171240875467930950379142129985225912804081242813616165957463375187330732453555302895720171059394377157390712305471265918852670474520081987553955435342615329013751893350544687689656698020200291239607306257473054557939056834563065275469674242949541645430580189689169651337207215429676312312785347608066007066450183851601292115122427379807765526165155018814098263768620895693807043661969839846330201974342841553260153017037043472417293052569436160813818755905584665224481634716721892086638369864346792816838190902124642220726549681381669740833777332271978387271121260328133885283158850966662274991467449291352573365586635982382895492309874556710735251268287058500779475814655388237432843256416483880824577610939837858436860450475667507573915687038018590260568282896249389184497934851046692396189427053097706710904812103417722990673458006335278001404479382669799944551238209595468459283488310864393475910306599014803680711042625691441243796276030041252358397448084339745541017020137727448539543929072214874400928513208333768454069951084335119069574464306428807809337991918410273375308884998384833665547684491466571643035568309826702122829340890263855785881478267130789437128563975373893765402028393725924448019477407024006479909134968581501004064005272509844481103571224846752032588972543561738275781589966530072185319023380065646108764549922330917909864962763785575298520610904636197341178116747371956816217889714321767856249536831034609407956825753456717722450162997298601296492467212212317631864576311208684075500155183198120517355267808775730839381356762424777563212061250999941422726070579321055823922202666260371519364248545400418794098446423483496465547261930506011799450441051022660725688606064110007307607455111843431376153454921829062740034375339771636959029271825529401608462573031320104416880123644143633330738640038422932252371434657212446465106517615263017009132350731909967207096615786242968415265933548546180664328939331919656563515281507206532836851026657027799912476574546113351787061761592270754532823812447981904615625902130034681336841714726590341804459290381460174895572584612670153950698976358661127242103815337766924649871772837574442396638108240339511523593035280128914072205355140827487035308294125108211858815190290627837852417616627722870814283270957796761062442291634615655575843881347887010733557380283445283896705985399395718008840621930634821589976762869674934073060504077864300308162878252987367022372270232074802280499383736412382513701288400341847511065512881972228282193308440224793195340170817320947308657053475675629034485487444976310600808121211658257354879651282327751073427953364411417512948303796804073277607777050927688392576306143963264296610861276642527933459060245739335894986246360911243336209583886663234085906290560932219318892238765789126447775429450818708974346292315110131476793217403005029085843709301975077303342283838876721950188481834793154562446224154427004808584858913690847978191685769475776157676139813611008692635201548409609483847498947704738463994673394207828017654439741053094774260555406901567635966241469650420190311872153694606750109457981558222236150325489447973119431971273967665339270342094853214723632348172207587148945574527592629204223365765263567945761030853230331121429546249724606266922773572201797877154504077613620539454795101740488207555002919804030259754876933332649705995541216774922916787687575967200918920317410574377610882419687295314932025758565582033836136414199544550087629773353868746838809155359325293616852112241186548220069185608288508349820803059400625287560558086549957555613810486004970611445263773506630272335481858275351798140794431094454870818568992033408097427200412635809533724916782126496290560278548633530802064856924247881484432532263584789772349216639946828556329381820878782500768643431259435499030585914794104415341280379791357754907731932171803266615285441939858113349680337428634559582606385774740404463959583247678558654701288586832898704193153525044928309283189733829280679512392021009154406235035992829950558810971374248164841672408704925354698074461780131385577599403159821671835667213012853799611354598486610365094010913224167191198393817648674431279423502764273089002821173973765776087976726151423525051598407364391978825197593118436642877458837750485583422439575329919184710486868246962654480469882222199875224226741919986179644172679718208606325543562137133481816233778488235201404173588543370236697669717380048529294598433708660544269326887417135594797451377210519493841126732472848332725100236420099642719285391538637749269045018010835156166352662597081100269795859331980280356981767343078071664058909799983761803421450101644395423284274787129673736409392804691393435901996235455260470912721877413195111436628169156202366146629665255647900191025938329889390610337382691847198870138096745034155894001548041874655010658675266158502919958099151323060828522305865175175876263562212158638212523220527023904112197644310119834515544669474501201725296408815530553765772133107943137106327438282825645330377717198496804495830358337504017030700783327834128771918749917150535812928200451413983855542487423868088554031272196672083270427879736346851305166607005329372685021911112503354188790684743259612756847451602966281083219576676875660286392168896943600742921057386357902021988849520847723762933272499269211190819788937607877693144968782249427598800011222084992455065040471694382299006382177338004637248582035114946320915257052084245934390351375412046717174961421691690742700353049327440670210307890185927215630995421361885316111827122081168362501251913316138662272303872966496820228806643922992226238392781628729194404356791842157969950733916174382222656166735306734377262348203132815682573997177147464805434833679663323798423169773307492394975889401283565022123367798093256963834166335909625687164830965002347220644687477316407446547720563634591481207280768122124740884353128029057421368077081842091957391634440660183208871918714301500026806713110318479081981392798546172301275027644424039322510270469189529707954996419427070676779754656435390771856241099720814644616811830683221837665602351302353938562281273001815121915764678389845630471508062875998478854288054276524001223233074813704357776736499934126537508823841795018019143080578043526069495888040015575313681212463932119378508000927685038003703201425440673282951363624365200707320605083687151358439458947606439251266410935311358192949579367444887062854598752608779511860226515721518240740058027348515406524253753871521104201195253981134944676800034027525714953453197760263982678001719732817166838368213736271972113451721722945997654892919831895849824472348278089427379459939320077275613789686784861193298395569124988230106850307321762049712046448060511909167102604378514209406990738491666129822942204856181054715905690648020332907049210581877284797246339758385149098067806168325376783507627553638067990830437729057137355482602425668148026907597594875488221643567789761044624132750374023191559401933770886837715504943972458356273866625880695224911007020294015469976712655612687341660159889038102934420483699817518687866499027105105672128221754747455913108075257100204028351710066182057880113377612155992990899912401195909140260942641388348594274391280871897565199273823063533522948094752426011281832365782743843167487163631113580069259791961615892808086712566255379462598781902882516834329355224437981621822072400521831103014339095456493154499379024947662016531599696041395538320695007538939985468995464850644215077058432665450980205491078689210796247636395034418349749420356937945083694466116839941308485930739549846167507112015939387919439884219774337822203749812103684656369264112256914863629894477161771597772016751794641778676458188761973398673739672695227776212419171460723182388928294644623531470304246738943743012643614790547276561719337895884757432823658188658250851401461625727403506114728678571382698787018127809044205695097500584635241220123604401821273492564222759143088854888273630805666746404741791457206854267139369756771762345453396258626535215434689478631056090243611863964559980468814834340867523524758493595166774556676028644961577757883682175701137566733486598893341523205845574511459874451771489363687175218118056187540781772926957086896216027993779357199332409000088783189341649971051709849163503074587007755870816512028818715000821315847745953887625826558030184614384474393845860048899736283854503947327188739365824442013376323383064007192303475132131436035457480608928345993065681464124838999941247270422339404473765668693429454834414188639322950112202091318495441610631378842901085308661800670846968285295576610895502869237418624808119401824359575505149906526722417119851104494010916311292415027383779508622920009801465404315614538558795286926696672515855333784208457748607594059289635099715967179436403463390307545929137175867718118845368175203959179959887096270436780329706293865211403056313981304733292605142296427946331328501921752309290385315815812607856720481857029605912355574817016662947499311056649404658372131085745329659889564588407027241538982386820823114174817653661259921957222695357553683942653907572670044622382118853549657001129021116732216942886735140904230209984655292210213356977413409515173974038656428629327243659370594331963335859701488887440119863038784038928775183671583877268189140428654438609987017460888891829317109128479664239165722121427378350749847719436126982752375065112301394702677693270452256416641629974635768236561533287621790103000923486043124869500563263375647003995739601512173823782572570640299373355319089932490081243067441784153920478171434170248364003091205852403823821684298889262481572272098707098263255658870543676308146756866361573819018528717387581099998957800688562894089165944805277288674143844304726877882740430297188309210772056715215304109700253523927878960694827388705697977966674921302906416417158509391374663630216817245801307089484173414204073186435458165202355730698035384285022660313550171275515833796440924020961297088051237936552231018663606313792465446606629225467807241689080043102515213655792150679604644292253159101272075237735719384657267672295493895327713109458322095874263918134454623612724388166285757479676844215609839106537166831982134837310176517457395149636713915139608191062986085999389540609006517046501689185727807826716231427503602372049415269869152496026436549806594931042327704654295204381485899497621424551110324070628495807264835296440073541576864559709335643075255101025281111572429847228730100547061446653311295300558056225694341105603602232188871382767002450390439116005064771281151094852154452514401662445827512597626183761166867596798407624534027980791830672570985144642801769556034317521449837629177760593523566097474697663678594083826766684014104722202311229476649730642577012311949499663979981555650010810831135342321792061194338160551842293573392176163820398268799304878146356285039217672401860370175371756879132154352180262455930591825028777977263699886972643199483748269937718251937123739130754471816379893269176213971923473340991741676294735033078699609204988051648564967220907873183535663241674099197200116576700518935414045399803625144227625965500332880633176240925445181710180593520701345027526855966886422493229864979627245154215655870965532686956053609083039425572886114191264272957826897199466125430736987581559268934860191978293235474743316297728862021113264820174479991611757495225655177787125230868770975554402031710931331241485409450198361918202867843419023078838834120876480011201730683163348678117050736273207113331778294663368186201311514614926091308689613641421289880293571318366493862897821414171944590836694168261475942181037517993578531842031074411911804077025885692381631656023039652875327811862256626928876735496827754571021147739517649997405697670647401080889092510334451163533887374578617808595458394065211151856401950547844151401205058836930066889567777970384168881258333342149459526346957354117112316972866688070471147250512878932132454095770657511969233761161339535915364316720423177838564028400028689088499622060171580747693115445738906556957674014160953252177232815623452418380950872008076789620681727153615863561720301283311727905119181301224866212619483863835132091957663157119864793619779506306838597332840185039874326937354199525366844286245204775874086619537001044229141805088543718149234592351792134669704083650570439936345029023159965978682222786966586104711361810649596938133565198514080839098570018651884169015336830268512922293844505849312570918518884026591532567701396013246148358994123792416163951878074984279819526247619016615605970133427581474754563533152254951873585421010459824979941437034684826128571103844605795008388213142194228563905143937515917243493645339409868920265210830964493150062500817629432465790553279802926032172745362503378237618143645851499607407316798910567505982690463933434062382302796425050745009632294815544109767803809266444079510758360611896241823033813731000727058437390731846489773303488927222865640199923059937587976196211885368590908011596905657786071487250731346256912079146679096073604537271978511353407555040557438242506925691115033108358434083075248317122727969896831985751409018451275904603102328046794663327431278168766097175689827739277778073185425387511692538797059622871023357113318312791116322856709377389254619180406844774379963544950374526182773427792286432322594421521784492525610859107425513186777046818291176862182779636238652553053486721356610792955785318070898289715628240699080802339446254623914812424810590018263992567719302053091660828301043489449550132812098495278406570526057644486631315349251628521687488241243620887772798802316254626501177709644213083489699959554534369635345578870682578004385201866668565653661878380005390347984433236830974800972564425512638927117103067790544446510208299627535249119315838954214009009661738142208602784875512660969701060274466506600320368694625725420420812512402220966142613245905040900378260147347929427273560363921423086307685073731463318018414336367086268824986354719846970528345960069734728847109894519087258599078670378207397470429477587907063317098906229531495194186364545899924156180980188148583086269473497358467414903211792616332362446839405458060641549808888527502185882695726669122487170403884958591506894908619111616588755312609559266065206448746956709302799580939471542962883694785582465803361106601638865488826246802137936857418081906863710358487856708998524990624194983002364101316482230370206812188362268560297297422472479765273798270407170170671203709751590024413098959467585925372828153651987197288460079568018473244434204584182339553847094796775006885218450777766551368233198517341089902540734576304648998661850005727835915343416724105266986569658192132641371572189205140315649275098572250657420791636133682721172216699474067887105502266064579798502512236671662911092427000934726985695003074917971917181068176148802325636902883040304438670941007897304419974910407147780449417445272466173079303169398822791888933098506480544495210110819741037357149697820134362551309147783027501970166646744979907639385774981930788158115252389387033981591625763299973721281370546414089126554026625363106123856786915638090328840175516678964591307544535443647849979797296600000468964864385554591917496786891761370109767272999962476057300263038333989652408941033421968359310460942243640318143128414647461028511245543720783271264076302066998288701371822860001584198909173803962824326988348255548715045091426426051236864869256600893633874096096349422978582723669591547005557286800563215852049392722973564704728944766561562925295074729865660594941924205214119412686266322975077126536692597313499893752061711447591989162458273780491778975123404003737442477632446481776348653674047890935622262498455869658097840676577170561955242767956069302135062901588179521587040501225117333382250910692985917120211831094094451458217322903882167862363885586104355165815157574855959633133647532642621365955448957097755159678240802225976075263011892276351155504928525242246122404568735998773537833457721249453588200914270825538236208209501599237464575407724384349639220032370376229642699375059361592661761981606454363220120608457538214909357610038031185214535912734408782984644467696747577884956552712225487498008267092135607457310897813296434332149645544452431562675574823549620752441188839483064490059805342865987210402883363542789716896275708838259484261665811765060972216957713711111377542794146515298382856774949880496761657018148781094869400232653281809862490307170338446092554271224915621202200010075691755567933501829972237167877977977175770559937852770200533667485773284186350696255212968278685263633179581071266156874968040801583226642318326061467679258296338471366339800095932280422037074705901689819301798191308143454229662793882880807962941859814220878830109311455582345449164925557276495407331224836397453495530468931856697731068984635979708407392375029056640773014857470939171465188810135715711649068658176316562258258354279831512545827951009911798889304075391503649977680267011406120309235986455444560473385029176643312569739759498890403584763623207564542418970284343302947426953149224563649056382576188568870846436935395838328793878312860023584812387679852607195392203238512065029129870825134792850466109320290789337219363532440558424227586660975625805998937825808726481024876420698696447135280650921810076799074931222042810070867930893664973661888072102749097106009849934794774524530670068280966742451242129598541301005032171421452522988031672375417471278916185422573317357813697952961225279787139928374439207391031381281901724090010718821386770135239770412209205594450494183936633411311830495660505876486398177953955489674105242819768226106779705785290394750536718728319887960907954284351729892116244948770472898683835526642724498986414902997848439472183058482793621248000463870433686022685746459910805269662545581654548034529067466839961565415943834772592713532371085081694873521404281622848484020039290208948924737094801873714758876433229012488587993273441650648387282084391676083475985985276777641074009221690112837557467981026372354287074900016613810844875946241503992755457003966598729415364101116236770859133898381914893348838004213765914253836015905860786817845052120748087663857087801404312177798822251692576992402711447566200749560635876770188990298938322170479218272914531844333158541277146987905101010335099504896995096399356505266967305715870743681357626956022649645814860521016900131275824890054167542169915880004164765904973597685250994625422689293893020758201204882619455483412269409012644109041358044751269610480825846279715569818703844060474894676440288091602120902023106500084879767215963413611577534977172951537356895048261876226509720457005564971530365124084868626001527826250627515832286678202051029468555804818703893024006886674603520501783176494409397712212206251545257633561080164926154089265094691628660804759131294734127308696858037573923794192562170241117922625930955055274673756230040687043911507847707530005345459308154183983379813168125507842301474910553195378351814794433889751366372139941434514093281484366093623470635539105928272297100793054979522165818492669179054735567625601092001437682740881930615585877454434059499388032749385820198445414752479966752394922393775576207565583789882340796298767205834359741785723491653272291916765446173795206400806997234440343724064611819950922536920480200215422739685048591576636473333661390491232256803333662001698169256555939619410609938844215401228408063690117966749301855611036861290012664736198671130087570716769922633388760455774505105774946065420490226997042598180041855533578476508377467434292302674146704567909633672189583515886244097925090648697221302270743752252756197723831838398958126715092683764133722303925887227013594398139721824901739327399625800018893805496882528658692221048242769100804003996393345991876080146478128056832717154416888470471233691207035595381688847882823372827704467802634473690319475095055101261089496240677264302821576257836667123998854984044900039736944679098613442852637492438293915265727524224481368802181440168708289321514012803453179376947324041573428978963299760103329175657169245464535269848595554581841488139993430677680010002829874087161181633268546261993434743048508439584513225358759089773045279684539043141385629430671774331944713136503740009918341463693273378099889327286167653586794873785672193377560604642490217211193808760819377643964471949393029325098772747291719367611852303080353497679083621631731768534919868586207149611107433750653621296941088924491004467523316182619115334604301471581769605758167747918093140886593883512864435640286784923322032637468087038952041966529882987560215930825371866394916597832907809333922674595567143887654855501611012906666927984251997517937421051863726597003678314591782717477673340742149420408828226540228960525964158079478533890547841410223589403050370466232226662729307662592898564894950564942874533086620823085934446624113281397195538285975782240536352069054355766688022090922129916073457232738130116303167767358700863649467369082840143322518639750215618125497362893053797873028386913781168373910831248165231015097066961886575374642580355815269320770042058531933611900427865078885695105335375045367083459864461228162957271133443799630195412141723964210830590538187635679488271081749875169017164932121894344556033086770607665779547670516732670739245002901777547258935593869636114906002729044493929618466183438214463978220029591925674408200169692549889025039437020401071957067800767676209562124080456325573680585879351879452162831996109534658176535541805290496210495178011487268933237434966633969845177430443854859816251613310748710264702360951859734858319017662684987677285114368319567429050302685400851283624155834242294906084282266349927557196351412097912895830228840279258218585181672990359674236344383794817259780982141894691504799515313118391030806506022230419407727308254013405842775237430511074583510511653931925829324899517254634320775020795434221132628384541327175798864314235038702528396973154307075030433604589615849681662301271367025692535356647374161908681095376013105654197068466533369965359295592991140973000177276420056301513402152097037187786195138571540008685256700054512233462589605209110230782070369816512717931248981927295169556780104102387437863128934473516930031844884286330223110409239536855872295886958008471159924111790068996615731204726516494516849362005095153087256787500265721288491131833061294122158821031203719394793814501216916146153552012432172224012525975195304332641306030944203778317467203243776195576193700890676237532488760618002956154309450964098365700120329653699513348161551410315644722411863230085294648483740117857243244402362994773258609397439919834558552782487896081598175608565232554651678688534996382898633891823926960111389076850939636934426093810113481637962967347137600742073724925421287152621534791903249175894795864700130655288444702633430409276320012776891474359124810403581760531100757133143956334067083443919552327533511453751131022012482407662107693809787450733358423024879053284237116855275694841491199321022903461971908705777968057644572012688595662946538565693195181654372466107371238073213997541070640242588520936860273014008390995176921704791373024300864670128887586832476098906733662351938033608867937621020611920307965738839713315692764173981124995729468105899123153612481958793360727301432822388769833804256880346245216165393801218704967344671277363226809596293704469123992907929080805043899530210341724949076257123286030442085489511066642402987198971729922500113204929040601065436355212877745740544757459770778105797421433793549859578921900686907539565420236463565937023871938760507542711388683596788324019400885921530462614126483414519066769535500916636869625914863078489496484914682956948515053827718259955111157170140054848442926675910731893572048884044427447554620425386193164786816792658861732625070093036326653794323655983896497626967565613885868309118451047262553159064820968472187168801568518753158079482069780698320346726646243458024517346062438943081295052706866475107378256291852408914470635722522638599537102713279914565091638558407126571454396953001213067036964272734308248758800592356725418123733622171649751620603880954900590545623686845839415826277105322064896642777787016924876062225022735495152701076638436096237481540694225729501452727620052516498985077339205198127369837334619763001318725446224632318245413919878159395993319561857402128259273178764648546472813873299183172960785429120854179753859342137536096410068683922074328353026793296505923754037031396753329526063535852901285770822041343147917916424605442984787852501676509358423896040860881354350610445269737785802085360487883778802622814914329300449011201426234832846483791755581978389897677848191421097121150241981340419860024664870971514484006529049877780113046888208495260572383463533819401672651539617949590011623656602907070327251434929493654601787346353080877054566285852482089553487863100529648825283323108656601166158207978307496652608974483477121236306144162128440825298929860970158450135013067613949025589119498498565032656233351998452045037012201885670919371384340787252085364553844421591874137634806352660973521656203778594959350291832923137057933727376487858385282439142617577850674846228871031823063272589597797744414024203660702665129288771772706857504147440048509075398649607545266189043266368293572822350637677132467028905095583330355958726594475899895292911515405694905752334299928088244188794608018303958261418809777659872899584450040053408644145826717229409738842417560020755706412560601994705900706413028273693036996085902491533185566401164796037183829412040896317542666814089205772770702964275729164666089851445393832706693441666261832733243620936983649511225112937341453726856190574218260890234990936016912551899163949446300670799304148364181406183728566932415701653711925444415910757877477223151687231815821614031121011460243539812832343479558246471280385589313442168015897374872303372962217899841259244175706338754934438181022167479843139041777091926034345616070154822322489625263347328829390313456817966897301304302475349382539333840833837227585340782781986723699883657377688371622263734962299996877678842516684345957051219081730277976443540498958367604460003560065266582060470666870946622125134449849696651869100340202599326985119197454819237297094727833195643452417773310950885880772478051525845044262758023299473327847302605150311288954947383005783276944268106344050725471347235813213019055195333148120728939797192291593822129870995805186770392104180014770215596912663734293654215849939799862009571732033013975096847184316013417745415457131301421072077075221082282946079171819077717049519709489418331668697676916362088050487097524433704202686545869867364789729447696444318445588310967890741539132524621518616254181528491455486473228862716636758197972469352010123319337402695677285607180715078636527024374356210733834008758459124245416981654505410417804051260463429987566603321550618230467213197094238250624127754846350318317503360576348755360775527716313277977080256261074031963255090985029094666971256126838456485676235912300025077997335683991510589049528141931465704073235103461323730835008485852651360533597314758985144369018106144690906089819066706107739963066843706856420009444780636687532639609330043722880535169060518870905576270125614511108473826017297027248955546069366531713639526106158270993438157898630190562362467476532724925759441916548132120977320489067922112048782407354356746472689058224679324663583515737793153047229269828982630703325716073001109721307588344023453923422430515653642702016567525562451307263178776738000917232229698708710787549644915784709520441381531724208461862523625623262203333353314556520390526941032817203323548655469056528753876744285456611188149364957329141894549010378526225973721478453421407845365150024217312803073755895671709969963071931381380031212309298895761353189313587464697733142623764959080266931287493278531698390310865699811114848218278472212749248915820728492575963480692817298368758374391671284721372796842608879810016205880154572564805999602757180522393073347496263380620234157277867876545426857811661109172344191050819438123140154380430851465776332797479980306575490733578347357600047216694997216913846218518557145852085367407363483862521999359620505063682301505568319918664732996094800748603514659098501004210895502621333753473413647770820509113513003085888788072616715829398423712989497722359944209323827920942130307370394972983803298303279268904788942422738291804093576758642809840767329129238555712581163527677849498141316814314727346912296081798431398134576078778545478005309212224250318329458022869365476199872949207681731939537468619578569632204443323307651129092306890988719145318551682357732036879954527990816981877157677822023404954849184807376301078869321287766967960612260638384175536355633646119411657000317654674471340311412641065575275633660438293143457636631769066323176910035303756417052839203365351354804732197896248503960753784044633323037330084821729621553380991687599058968012397376842429161890179804104212237152162826086587456169932396760523820781598108112154985272077747398896891574262592948816064357732394578514527292610530475114082510702437235779318376670465860878294865589513723398561538317363500883448614218431688791664657594790416577244672009695175875621022542559139869950229658240922494066333425704935877362938033970134699713066668306690953210505690248953380795136805897923960744473905724576189097124989357237836604306816561600247627115532329328011349243094160087198336680559993666435673771314634325355294295705651196543111719880798722700241442876455542020475701760783904998918213323658713304661947956220845218328327732473783200173991139436784441279616748831867053232365258806469150446387569348353664812309482747245217592028973791387984809364413018600457342688043306007320321620473884028237564742254515480924258470118109382995902815208961226493298927795144660603592657085486782912863823867057207503477625446279913964660082890820714878096495401425447777687496954994596871727158086904020352350378272958967650205569620658352821102876166994036952698127447688185809624382869247471400686144047839719481941311745857547988887530054462212729191449550417300584782090227627843967467532810498608475362017478887473997305989256464888088615962084763119289034995870412620971400224283354217667866693294906452079089949455542294355071299318692923914984530684688460186683586400334594945626054705612819502314751953113959316094945520854793427063835830249888476224685196685186511104472251582543198418102409841992078457529617373980272932640060609537380659988751055621668467517348383108785433815760015221313065559121175539606027132999199911585200713191570418813503574307094814857110080553346253414913825066572757638640458158409577338737042381384642992171646541464363320475243388164205245275979332612193417027547173978287668348438665914492540769745874514567702776300320327295269548503707821175989111107615105319336933024170711883252567530954127716291766992772610424259749252463493041724061438443546210538717163021799985855204220342812852907168536349632848304243179091908234393862497540150585164530839018233273478244600214195001039529434601034192614380524290986040053381506533788800410703668606206194865864559728256137201056153353433138901949851973500146648142247515061099323578162305181057493874691019561174964510787628719222479503601514033607926583938069774234835630728120341133468029080419895523564680668258671372979335130015084187021893379956283490067970218337490027599188301644113166125017201487364958417468230048970697454547640033784231770931107030663024779889317721134864261742915808670583287287142832291246755495153341100373700911062194853765105216554627843528991406501866470629289541023592763802116437190441926024601622383889444823966653651399028657561326266698975466490909270829673567475841622788068572833935473538500375766878052244838056045274979173768950346970761728236369229798123981516424303135488617286738619607979416907027187717643498241517312199597655334725736741526899200785749853427378080699521723040202516867062464569837907763967851145377486365372305782109270800488855734930740582423715556492797232284370953576737358698880180368424906171564355478523478580839855782979658762841599475859299564626792900539329518806395257701498639723502813530936245260290987411115714615717116784888709972370497248644339515222214273184300454442114033086303611967035597373528950185175490513166654725018810894949820367118073753370798312515449642809844817202699896742850149451253020336198233401850367080638048941315210065315391780794212842280799431009901123238581675429672441253448842471283767881997228855568232725344915523131251075085829828510264215349893129405687848983609863512311782811510651470911273703057049910019536255184975658453716886207701773519019981837231670996301109833697868937592886723138835152391370400939214671026935873060518867116260384168266377977926547908673382392317623046651478430950548342937417454080693136164485634941218941327591660344113370310460765194585433409694647189657622207564202597819873380267466994391957359924274281113969792906504650933278376377184875455386185864367627487843761786893612621124950215311399303648943266988120821799195505337361312675901419030532387204720028349114269284558378471794653719135073026912317904263669494467518091366111724061143157608172837793846875318395303502869260931610014246006033804127397096760457522208888192376064115259222416890671747260616475374914376542770012463112556057629045351715666830594122886043918945803152350022046690037849681903252340749873248296257327579896138606894255986277691835202533031586049440796345562860292828634142092159177623365027495206605679314157473175849526979480474665098193030930863504595931405953705987991764417034710956752714746133171795232304184513321729631976559936309675240841955206345284618821902558377547933374787536513825534902431578328373171638988905174608985161358251736003987929259112608536225559621826951935890537892463724217279274069082327325566670738603264357610918079197540813017988124623795760232923654749511427209671843063154146023674483018350422256167488842708939559024219926872259892210786696286987908314774366043257265897663963532338250630175590240383679854350680414127952725205977825178016910148624929143289490251087658014030535536774427074848088502552547341554619963777713308376101902390354992631847260013841890323117279639112736212473601126153024975159999768751781374214434222242898254516249442944270346398668327568474480772444955335212169658154603287742733403938951612212516212624105335828604526502373823189627480944141011489086442869535597598395851315776504355263039961863099401228121502108486898368894063014969459355220871604660140465164167870467351024066524331421507896185693411317118551728562592489364440916966830112450991529160437340184638057631252852819002662706856874334025964376529703069379109332504092895102962772067808509558290052994685333646359232763308423553712411394733191258190663341029807076646580355063029767647239639048772886588093360165528589961404617597342318946190974198810598012041573224300030803222246097736972880626921734211168177021765958203802022438347516826219088070477434876211972875502755219880851246855428003136044613431183848829178969682481870983623715606912392972584117484941483966750251629749317101396659411258884860038555455682466517397702918049220088541049169984610716573941987327365680066970245346778888453532519784290259547203931266681550091449064364289340882509705715548614520491047720124462962206070620234587976774581079754603090913769608480445670699116592851582617955528804176269321529066178435913420426163135776194287057990586516643648708029097220056202065992589297074330352719969903767371548857073529432565253780920721857358646876162270997431912835448805975251393878738471315261446312800512811158761180185867543743622480462410233090440239147087305731497666337323253531820418456238054566727923659581719920892832024883024615336190660657594826245785175121272869447121266731008005888426852666697274294705026617641020638706952524897850334704697763328061138491147283167546956851229631902036549490040957596819979662754344737800563966082299755900344129997253126232730440283162942801916767693099037460558200671467337156381113565445455057555705443493447415330925607160604263381598571325666053626077210533769557559460850586384487083700059587392094845119316665108857561616546933972659676279492871413901162926720444731826002657318370718104808202475065213735849790015714382516368876227033191091364381852640991012859741353058666735368456631103419926287153923834901933002569556347606351493231270795908822143357834381936562704262181178311533520676073299859457066211676895928984813329497183121561372411772573145138801442743718040230683838519139777341746097799578775405777428278172659750482515535871206324966376191680808831496706754526377260420515173206704663863191336157122788816764591094007124817698659132657119591980701933677879010999563518614495139334781695598718019026174225273236225630949002914074597145932353893991684402895224946831360106569390838233932579796166406299392815232620862310428635045798437952230143684252278181717655500579622705584543548267249858882953039420135625921344228172990255673506892864495851445937447896894061100320433953101565614929692089513840676182472600667269024849179618007963943469878125182026720236614351608011906184968139128628255481542391067245523878182308228155464242654415460890066818213100042119695909022612349366847454009016990384935544605712863217646373671697372260272672175752940170058602555845293136364696701502134165456736164342415529320910397320475128098915042728935936109728280572640061334932415719843830657864448758140219433705132003582756994689034262730432072722339246382598325765454033789715312560861320251508946766045647640858605689359221689128703997168901279092505094354234681197388062555786794396031078169219101088326916922706179811545208837421256063249870715932146251980705533751256563150577250690937743089885565434467271009054276456277914740821068574218993646495985092478859644757263687985485889323909490029991593636570951864760677990948172987408043418754358718694662933357698502730813645582354892668872649914066887105333421630862330568693519269599048933379588719123037354393986017540222502877483203269260063919062076050738631134486236919236526229180468526504903102013817752421726843469710966735085803039637200035946996691001616813918330409777580666170443734357392303487242287471509661271265956441496056167745890554605384551122910100687373232719180621740810383311922499029834547727670899084109015298945615134287673923845105785589394543270660579161264680219155218387843100562051161702731082622291867877798755165737184013863733508109747688623247495952226111061237794574822380998433946947967880493994641387357046755802508787224087760573189979821788109919888801707521038775297436998470986572318430139759966645352476789245950065044673835586253501494901641398774695114444434737171375902156855148366673198689484752858992759497144159236153329646600506353948683914570468941426891921266501758379771790829230708338972054444035293122642723864118235935025176853807209702121159874947919646349052364482723407389297081715537403314028851286058595872993032733783811923816366159334518484067133102167693170381539634829949923395874956818460508050871852164804641877342489829368366476973216817653078931087624263594301052548325256975051229713160977586805082342305832460746850553688172027986076201778232321310367850010241683604362351462543038554585269276159215803010310981243917016687993497703866590257106034956814684993634453048278330966880620365468383221063219267472492321081312021782817384541544417274279693871108360082454165297413720977772880845331033172717432968351181296697668186731270236285795460688909194785826483363659270509180020210603001714693830187070892138936438955417265089173582534610848770752035428319027914929266675217279813345018568101691422622864913541045214060511441899267098364533022962208749988537704329610569277819431559744292015315340197334920052340520910269149026619006003520001736147359552780001186940007717521424951823353305597108229001571310690385242168454349434628735430545421710470730201958944295073563349960711976097773424293531326687965210215235307880874296652844973641415807178106648304724402363208432055993089571291233506789915959316703154923077434236417866772107408639988427960509241492795139295913079262331860801530970270785327070663678097272903692119619962876615065808782194035029088086164369006525129791806080194032774436249542742787050884099234276926476650796865489336699598435370719619071274517926346334318880437707860195230203282018590669450036091058937331001638291049759906557639586325632305713552924216112247949142924225303753431650951184317461349916316205520998882420969962178702391812938346189386456591205364400225565488639121135304780279701086487246447414067122482157601129925577259962801345241205229485610469547588923753398985636847419823727282386416144648171519076758516249327184692781264622827746870222528761145007717413072206657698170042331914337373611953554620505426410486012948955168827378259510458640129991591517604693602445793288903717086206107965204565573688139871528839183052827191420713339641555249786159226393504684696205877934686253442624250629477892164158894097863217325608085876866878279631459590107423862651445416730038153546879111321697973092793493356977423057929199873255992715606519660801295925264784210512426590082611505134738518650104877401144418538913907538627524419246470093577817564935569462978603396300308721815548325026016853876296564983365245775009319579962484295081713584450123099165902125255251905754230724428652168722488392593399860618637373125645820138883825153532057150402111579282497766141637468093739679427648821746733873019145111964476814207194053852143891583749908382788362983280021585950535099600247328356080207373933896766690851329135505714995200222355210817308743571345009855333862492988703165126299171639699477335000136360903068575848529388016109731666371270469928466599681352721680449222350423052511014378000582228364618108041139314122738450303363570682969339907622212159257160166207915603783319767561745780124431178227176498729787052853765097487569320809752460126860850050563598426412966640245334020182200040294779006677798628586133323876805938334143933699559554715831589566248315886523255558247688570334393851907661416684079533075781381174594607088144384654896654643517634639240633147061438626406088848260189668920334384829419003896673813236064238524114840595068425732650266204587235209909935719839214998708134524952118454907825617879468789296429224408897260391638494018246798414184375037108770889265132848969770187926426709083182296342408811099356114223721150619064512163010125254022323862263583538352521459603172237083151591707728180419789851580933887567958663321206558810446129335440820282206424958309764771252177629687581725930280300468932247395133174828636020157656966924049286416578232976694479484391409054440360629549550323155079118498015792297264242169104647456440449489429612829467239287813584650600094568465826526225061358489022682942985019817032082896673957718858967803418975165864825738989963068936042464448654393559211812139411706807579316608064017232316376266359456689298631781426011541394980074666145281090862357058770115417856857783632843348467324086051245659609293210506376295251224322273116959991632359938677594940896400198728385493071201648959032323446472787983099536682454245213699927372300698268528523012099827470601671370633962021293734222831741550849397110136228284274441513351052900195941015347185551618867012686310056039963847459984218619575805820211486906924222020669957292695408348206020484640022548452742659950760451402789702195126086386604187376164799133208895899928561324911329103654587674604702086169418996338025305271806874277497620186190799798621771820787873848008153667081450123647111388267347989920613596966061645409226926591411529012852361976142492034841662649434582771942596031337629719213894702725049448293092086821314754308015520310331042489155616879249973926730913345443083061851582892758314377137820560845625711896660187962045441375252655020548702036247236420636882848105054173789710050162501992809854401917558079022341202838240153072568590303489562458909963573012602135074347316371349618269055048711363715020420509976669545394108119539846417442178431599858492334366350229232461961735195652907584812915969340186074648130438114845294743675060444489947007692950361196655574725362277938903544291279229392593416038953135159572756266008834457078127908028489965559769079769229413968211512022155587713792337677842820867680334590798596703648804735358088379294778371169897083232689139361985587543274956744268197691615156261936027970456535660885011213024123944922852244774408533614905646710494548251241188389170749271404179387458696268614816979947204361436076382783670580539819474450149901223922812046014060623860994163851521500852807068698611489069860130250285343634814665720518447479903478073367883130419440262689237266922243097894579885710468864956190297063820886988505079490174967599176218306243171563454176585860907395868824504632366574676967629292161849426803802287209445701141365666021987091460095463053011632094804300775365053433258785511312129244979124680479170175608199089567123285551525133924367545937173402939026607397559201094371987345258639583304414840415218762199116135719731380062104029093211602750760651036904220477109674938388264235235578575430985517212664932682196631917443025521160241078484144157571613601078601750177272359721999496904617255705631210658484171643685446100016238058213222352823498937845819902082420898852284126430168257607550948995769955965174168644805106694533931757517732290656225413685367598609770374539310667288959302235766513122639175775624720577668438511582740497402522222830959612571630039768587402455896007132055031249708182738371042771406123604439920811239506266854447374442300537875271925542822965636342396115455813650922006062212186788102536701119697507291358208477755196237173762673641250109845479078567312813633859882366838088078117633841755184429456082223034963103862507453097090833881622019281113950239950198514200932187353574332048262703219686219162355686962822756815446754027523449636652468547986046361632476751254876526773311413349090312187851130466344781213769107481182575791072335147539084092276352388982986494732988632454347838419687915669177640951326591303464734659684735778229553226195432034191085722791616257285288226400265105265551774956060449646518597692164488935637446924067217022175837235507076092030971357371787599867673086724388195331719031071074357733473354513023241365462518313055055596607940022312223021923671867077808891150539169102672517234578555240212445804660139618439442825086976301655074792692136321995794814416675078302086690286989611812925940130599700234138917020239212941948972887859636896876990760113737090851978672323791392334838730443095100425809800342971636379727318151825782181921058410037701622331467983104202000750628078365568729483231747432432847963292336500594044041310162933319029539836690693989263136358212138718718909132198406163769297203872789818278404277237910570203565887552046955249317937371889746801499075707368591326248884000660356815599470186305259704575832280014209811321897832017520752009368162922032550214319485788360578031948628107679488211472662122295299723646830048859315395587290608573960123752285957412032547351705362626970843931486422991196727572660329737734358111513075664737579825709262128038984395426214001327459611242930551050303332104531676802519502569451958227943834478632945604291048433462367018308895977915678773199480775604525144039046129145986579219842520993651362263855224405726098386855400245207714634685039595167491164413369563026458526812602881920153775452988930093804000584038776337580628017304232371303161909477820453904849593543138944449030903538537340070431574903694295901617388326583657835102839888456278727372781871562537890366691896074477729945241766022166719715843708882410092562002118753120642237148699190428144985500350978678897867298493753271921834486223053964932146013946534584357236646582412498366518192771737062384772870321395299557498003560260847492722408461756024994048749928860997254237014642521021594074805068520936078519416755878648740081241212825942651889392021205215400289221946829480197023197816723923403026959249355148210975407767036262624724207435970606225703369430181312920810695850233805393154810001033719518615684474009353205801923451129251604386462786581680313956606137315463044284133783026540895289124131368590934038633763687204976221408748342165231413615575216345233965789417429589726815040830282480246287709278403919949746010766799998891978290606763125081573554242671003280090718594445116331346615903798367006332880878192436338020800825305909195216718847973417570444672665765892937563093007804531669913819789115439074868852172558303925200704620233799984773098795745836491764206260283614873811616933658653653503177750043818427563892633826743205895068427153548023678199494590255964982972840304193531398117180538441837378010839217345808723503790157592504105115687142529055099183582123098376940047908170763776052040132036998351502401526540035553567987842149912775130892445109192366223584305376110860479722091038299178399533494683782766641150808865628846648402335019902559005207008267226506698081843491745696316477763351713239865618350219893736634743468410479356496537707091168349970541563600656062133924933011026010883259115469622597546788837013645236056650036533682322172015117859423883575291512210017994286299368529246339391431256580266426629028636128062346325009286374040384866170742849725449293402321441110892038836485877978488079555529924348940442263219483959982776645399843509674053282685650068482886551667170626394809790607105328286941880129930197082612526043919835916299306297511434542194809761248915139222731781001919453964345153508998164841394115631124453530201117332103419245907061104911861921607268460780694480078895586500715439422077827939088832466494648785640366383237984338988034199231361580219357463355976181300761788830257368201591011238797880607261916178974177873535286633072522297491304610219532001696796736580326234450151436786009141828255615089675505327785014721260498657741638251388000148581608149145652329219316955722525823093827619617413957862289768358158201241300172551490501843030229372737042729495914241086214489442290679466440813323800236003746347417074973244527956666893022062238038226648931089306469398889428486187906217195229351352827458487658315519952453885725947087372471481514719375241185528647418240190286392665171580048432139885657054908568337950563668240531451380872040655026845518527189537501413582509182841364861496189608175687598911418218380643346198102569664239661803859260114362186137176235837514265451799432572259693182900998233904514383295335614525052943557736008106929357020184397225075202748870113341151912385972152051043290826922269421054608268467902117909235895033123853652970271553637492872937188074111522802127426438916424414641309021885630933566790476701878561274148266000540382233058226681639461783340812473463371216210144739438053222286928786673613271692520012165562933508687821102902682100111247681510496388741432389146334000528144903121671087838697671390324986618737784506426113125540936559382745188862830217071993308661431174912496746295382314298306400545303941126064214386963025572224241383859309989962070482109036972155772555645252140244012164363948875407626067957360745362168045132093038379755915620796570151743957949940732273413007061149042636415037346959299525603920071733706760668389671728203832930668504870548784027174873676678709509013953324811391326672726449964299584491644617431504287233754742002014914844998601286284118451594950888990696856819922466928786744573056983183783043053476308174099467596069884586833268031318199067963248499293240066933167207289891054038793276327105492089325132231305585434183000242964298990128715080162269265606827417136019404228681897153618009288753556409582970299464410557256071379705767716032520882288252934688029906395749488178621263114819681341336444711676185962103719054573420442578932485225594903007850665477362353134779381880838011382288937198821278133380812439559371970384936670690069398479880077060259774687192500295404348228942782069426786023624890696938772137097066516733824123167157953630845581228956544061686519746369040216326689279848168060860992328166976943038427624865121656562404479264257162409885960180396716006913404493619165259222248750441194012002804172292250443072199055766821504754069881049425262102517476147958422046541207470952605097920501512931548681195367961840860937920774063558934503617881274919499368624628211635363960187745811260983597976103567024410480224063079666079687359758489408972071484584635412380489835329904234553056259141599666942006492627915308973842528002816991416900238935041145951528732747369818020184161938955144882398041715185594267606009974020073373352446860963883175035573959260595853555766644983350048838891670609832987212065793959142840198471138719210893101220693836089439025461088962735776404468706836414739021758080973314037010341669554726140173847113419528973709436181492118741769853701394081092103660327832890675237735318866728467704424852957332258632660348660022200391900709704691342235151829558160121819456993535196378217648637823301808457863211798691321079347168454568118364685982727993201222257927928383935822907341675688812573396281805046954986522034610377753980340731277227832029722296857333730784139160542543939715442892750382030440755008138010336500754873321766346385569733582328653115064366209759071456369888295767817863968204031213091711480099910667627066402786120137680774103351057698689732681035100277169243992412074221707497013048590622243603562844098892135788231969591808032528612486613363057584491192003323366527060666019942542050893969967206594959686600185208308442142302291925501651800405275357726570641126079351264753946612906449606558776830397934310589763324071785188896998314206717325366845511297997176157265553252715561464379503206617068206482888323768832919984768043479961200332681708189856374129459761702256729982407074814030298149620437590390610588211711838250228832556873436372876292857248669618428467097799219957355452045573757113146505652988277540829135701275898669037172538404189985375655041207846383097961297489269662999114534152068925833167156360023943627176429122234578930492951928093652063150235187642836653270694825599018369240612075046102792690853909259762779549865384699097533924919179502356050254393832012481209586153609563370497368678548285030511171275212107994531126590429393031124297075415037369601732922863435473250095991434667579737027456127759723746513848304794302335393252193431726579698863385760249664007632519000042636740286306611390690768645962615902875151487877810191909515239234637272308289983252905045200568253830738361080887471259493303321969178772401339915681399830323459239260068303966618019594957385355022635840656498825986918931321740187210321207208758086362662872670344459768763371547251412358372764410590065156879004052343967990892032013654846163597485452246026472248532377462479725019481185309413377207066342475396859134547427279013831805786702323217569268820392596971949202011422358606605754407330499416805971181696587810677442945530356613810275672107769003938819357356787230735366494238972170599142962210957824264725528758452768603320263276745850824890388893143850930309691908376839804255950552058002269157941201983983161070298880425120490881590278980842465327771839505906113841451765393845576253409018829878465452412246412094933193602287390328813498030670297372326084613079732275481048763470822415141777348071105851819756611835395199325387331596864950008328131205156530724917153858878222735755278684523601887348778209718385250008550226111573295297036096465568430272884482147449642233813831004214701173363807622991369792808682304693027655946094122910405332008670889475847859379100716108538768315079176101350450257749696949317361206257040990039923733293705907519447243564745921967567906974629477686846660746973592179812148932964201018432727063029215992653517570815353175530353641736787043432654047942812184203892552917436450766768735005009534154668763879659411754227837647274622006900634369955453306261014318867070942485643341615747637986582781873108532370058438677560006085638253870839474383979178905413075422218615891050995778741226202164067450694151593571454662171437138632435446081155466254892252213575762590880029748966888725692735637095179032116463487147643560772709031539598070558278890651335062797273080770428122586468213233888463310305758704736624343388554273514255078307966588842665318251926930130756883465509749688303960187479350645141879433844897503866365246814157003658821544896228770510428782403948732287962172264228997352647403508289911068903431574425290558939468955211557894553128451057564370742476347970080695247651241175413736616005842663858599960244673105382265272139984764697348704804259915115158280364922231364671202317274777867520858828276857488806702536237433601615802192884749452291787376875730926813810361551136643654707723966724180886365897461032954074834281899371465666778371605252142960142723820342871900846468178668061836753659423681182373495721599698103475942473360064922642079415282773210171280735207047863761987491387391070304664264247652193448044190045239300753499492722996294463111612060601480508405573677115481086899243381783599679391171373187734290435522575792468598028562835926918880123250034724330208964972069079148276629481421358694969451091130861580609289296348491910382254592178020007442104690412401972891728974968654052573819211472883137354620750455487282692964992039332483264360630839492904351935288154753577044715937881846294687131767369619848869838033559428087214478853334797011441244896769945091724008180342945746726603839817919872127461623640479463609367113981466584156974686432433668414859182685974645421308978132835279459374341511641164333196117226052216471198929832545842231600727525505075236217279466008045897468610349139146744375318625237237049776006920818803569463705178389419560618500645808632926405594125223976170332062174978588477241239568326782694517541073609251835668382611668526106534763666660611330601972210368995964979944188530616404617791551682418919580656877112047975236028003695299065085286495498261126530041148529550772892515298855877201187758661683896856160355025829209885639730306371974123597834712107309088279032556211572963630384449848876783839105002135125531634231709224340107516552252510105601113908560227107408761808468304713520146635225954641268416092254940281312984565518556639593529973370133129905525883177697976048508662860272929770864561085775003645354160335202397138575650215140213221518196875893774387609290901976102844580108639622293767198884298751951734446909453933802375927682407980534849410070348634993084839911031183367165402330143992091171331063531926484229470722831663799797449179497320613369355713716171598948948777933720673158050272393684130957823841574523996534361664275949496062415641833613350927721510747504869433129960157869328918289707396499577036680911364775941934384352167940711829939564109111783154249227612156911098994926287429439636355868222925418795289450451184230450348801253629928671157845577203513106916662377035178343492264910182634809115177996515348638920635966765792714510193798757253950193925604223017158435431191166629228520352064078135330817103585614264205200243494628409112420487031392780416807053629653072420354438246209937094541451949704935435874182731830557423640762744832493259364026821536976232633004750580183422067240784125853231751235219266397648381386880247789491982017765217082265859055674440462385789976051534984048668423621758159336070832646074083323485761290526736806790557515649922928647485168593520497278383255121783442987854894964255378195651530376324142074082039331553800068152866090060903342442954290572184511298374100198819498616289567668295727985376199762565103360857931615742902874854063952890664451559641490480036266482741530119440853992114703933728481835424727129385100172474778101182365444716490422655082175743742532572272087178754474370617066855915318707987530927217593092482430643622609339911652250985210978955896147878144463170124028716146916947889384513744411724864136309641355943324454013885986568342336942236011883790793809429465559179424715963429673056211228584302780834071220725091249509748443653696075100106044761389071621520775208787676558397402389531555420818865009734441712523009268440063431575657567046503116698044502353953062443119456196001564449116089796601396303413473957183092986624087545471593133648159024063473555374398758682885422078479288201592643515613832421045077437900805636624648377159043693777990990263742220358901905241914433673279952728731897984378643451147293645137617556689817798331291334878854529725129806236484411069172948846368647990266208316758889613598303522055439360042349408863924840448499734589323366946341017407069659214053623935821560229075807685229850485383432737013368305460464619826816941592889087681475044242496266100063792022428447234529149801913647401786456720417399337359553094078953909847540729116269819669127181222405804181400036323982458510542442076443949486422041916557275899135438791909654636478543062816455139096018342431627431879409071255236943558953311644986816810677826308983704821466983343695962553793979683652941763951059402940429683930898021971626764171812577578603501198089377638429096984449503735608433403821508508581367729476304022577289722366641731265616988613309002450661970477033249197504035607256773665821685074198265691677590797334366067123529621163395884045365471830734127984605950284916101533582846619749757680750263651222499531431828207580808359614381134097035783595666402223361771751608336926728194722536288307555258874047633169909655398339993543041906443232193064396365540167119047357073775146989489179416804195158427862795679665028384457103996256984118015403054918057509928722298909930711256384030852914040957260115467206135098213607176727731652971503786445732800999526409140865045503478403333073430421974651052982685408157847850662902735420074656523461971205841336495412308032367935547995254330803276114063458517770616163593080183989528752661405407262628500951915834613102890315224698780133476168835432481329772289088996210022916187875466267618460101340086661508086147065720073546648421448099860090158948671361528885259248829431172113369477311800677387073695613901876196815244369791898157156782785240406214090968306857077458594599155602524746260654426619407514893446813936514845233370309862903422203036363587915678261216263895012408150710670784242852763826422752422641351749238507401022700033493164247464557242232962305324135059040333285442546084588801089746636826405415920329045729223158361553052916542611411784565186683486106883179710716525651595739491058837139858241775403856786697549567402361859447320648303906694334905625390949345358339042831360380166277367864188831757663895662542809620054625838059916254475894497639143361357701099784725491567438833933669357685661137558953640443776359506859121873496512358088432722590300614494698116612373113902600894169027846946517865065426625859695363361507115893747327004166556899250453403788958862203304375900186162417792876146125415875219005404464912141291939933126129653978714680191611905177700148548277801761869719940896311711132114832473937534131852434562626829508354713583732051066329260998047815917369481402277369083895224569636958819480631948178076480814642086588665934514740180088235008186867990966355535998144438577310480264942835108575567860198958635799517881095490399516124327762030876962119906903677146800530437931145927043401716793849242343297539473109459958668993586356406287856555705144744171562436504289495187110065251300421881196230334829999853215395844585130896484549301489545366126298579888018122012712074552047793150495199581470271886152288674814441182815346096032588538604724178533239612509425970356450029412166528465928664813845175586554334683702777792928671371486930074050270691733464710972850216283493272782799750394536896524142560446341019171929904118847045879852821973434550816525914484685880024557650004500324887993835483455218158196748514663089886657149566515672582746434324020841045907481998554170908708996368575313559834058033703074827575866934941391085272783624695777231920082998163961447605031896734783599841971357220835379262375908552839506169006429924641059434291675127006840757229157995304459914793780828461400823204328966068762465366093366933687336323361449882251300290344333640119497724871598970633040822329075445301085811204488236257988090625218005098789562124004311541987889543258560791795024570444820199962343986556373383927649838278726768001829466370156745557267106941753321976662906827699147323965674046616153017470407842997256588753209493086306210317970546722483828220504284982892041650659924212839574035186473008952813716737011702327728857973806157229619671624787178178776936405811454261682536515771661272087376708555356505526216982165826466160444650484253277025306713308356003193558333419540617819989119765595924140146530867913245042311950263765304874050869040316257914866519184327808538664791153841901245779670789867272217138219844529546479263518680159472057620213445506662434539744966477628862082658416749142886976720784120950377691868498726996201523095428747232618766555708974394935877056652862131098658895951455838928893001961758323458746803514994018864408762099055735357830906218903739916149173528012376722700897516745302461573723048562986900791224451898419257371781973222835963922733929751359361908841910086640842204004597773008738637805114505110907207250645563654634122918135113488831209845778855547805532845965066709449293598656953948643954450303427359883390293848890153032359348377161706073829420281839658148695659113523584957086997340293701126217399200890384442210853524082573764717014593662808165738972760534201127303531861307524978743767862199228284319566591774920734055244851545793881925529524962658503462596147704954649361323676501934315507233456761715776562253456378316260015852869791731342079431573574639844358507316744764985680022095842443363004287391426821798390876732361537467430089780376339081641783755560890195769680981574408048892415539019147143435991499858888277986141655247582148095281065874314177570330749352446744345299352548785099529750753269919635372837983633409781136217419989776166319995966338530223112197465031909762644623527177618715094259575368334470704618139912722984447733999512202873982495756856814293652096411121001650047048742097626000479507198538055741316608666089621898240878784490265423245896612565915736174622264014730995943215640367815707624652777543317714908722321746052842829333733732696788732071057651361558510510495753813283753592203078981558234151354417131568894690394610627504559319582222889506673561549626276362661142578492853262748110099166536744899148011477074702692464492321402351661845432410550953339284715367891921254138284225669667445671825848919089472869625349166236090178342486305204773205050083443306233167002602619310361817129199183595162929522717982154877493154443647164115584481545337055822383217529450226098300688407814342092001470096878604941416514782146818219963595305323084906948385030783188565909590591954355703950555147704204507823604988627419879762017304986724125710470005564232320711841951493232224636396265628399715872282239596863479309418350430513400399987953935896157234494869344554523320711171923391765141427130392690357632507934661580354146510418598312636289953623569429218053788624420619469546010891598771070686770779573363627381672899823667912429329278776948933969111408858073501026861842823056375403195855261607892726454622185468259231704964118695404490081229200486114925412378698980701954995402247325945403136626731361477048038961122294637330235688331598514085081418456840704484650955983372094432755324653648776623535523507481927632111396104056280457271549579647610436776175562201853190247279308138830038930292915853526240785880017991226707574403588157376766496904192050639922152531841675678270730254982432755158213492659852164051616546511673147864724653366432695639418627416459481371569585354149193768602499803277916764269209630458536537176326161147142168059519750991612844573884007555475679640330384315797924008291125444656878762088592859462502233672425550215890303730891779203534741035206785464107585501114419972806752923689464388277656154188696274083853331202446280675575167091997043751687603253571002010877469186474435013263851407497014474369985992292141207517331484142209855546379209317925535236758057760419148035978317488397409732874027282685658343559051133076018249984006866073046924722958528611430439373704895019283281799513291897385080080319390139683001041760978259117241692570508167229286994192034722837598118434077510981144879767102112572771299249444137056598298874157854008726967511890590910101597921460125392213727338970438260455581522739272817043541158836704356734141162410881413254643388572832260369177187232380850162543224762186482139430149232366028850983379616785319313688121046206490751869157252561714175230952772331200171572239234531074911199224657092602375835803852018378657300515304060117992505050465596731903063644357818364233349580500189661678589489481357607611327846353658244580612361127699704832070081238072864361175681158732185309407920118474542256546014971558205914170887457571054653667804572472476215288574127124769576599546724293039768102872371906503117847459733134938402556648278495623982635852024253850033329465827163345690775322610382021786074950304279325629392059678537378489935403570868842133695992613473610378432546685311317966807710067348807006500049445154355458937995233053824060518120828858062661645251676289510830953769797712151031961581740502921013630235790012369103080903826923226704053177410265126979454241687649333593625624966253028085442395671007386553114044263473398502907137539670358085169821307626416622903581323358708174706992711344275982135591935191639845838588638559179383650158955525036741344634110243007198664745606625962680581574710675259029311090397314096297492124288019809719288181358288231485292209828018506927688552981235003597992708702038226485289004931202239308642703116457510013301287262843612128618261549352187451142463507338386280319250200653274254255361865528289635134407751494130589718068926497614779558347447748495295258566878870983637197193875463010089332140868846495967917864017714606465555976491928106173835472295911797069436598415611924202093322419575492685211544933728258939917322856483319035071391864478843326294174479613116959370609035163558028615027269985914722986312570492970236333689847819979522222240917071467157416723246708340388412349727631313474821515917528789973842695564796575047489269383158281860514379798359090531699315039119017757762182873085837886692405015246639545725525275759851175869862195702261293411508554390300131797985128995353180548339272975351796745888804421033903473289112680673034839179373248352884581991502379116184203173517929915556683711051356481488974124894434281989670632634458947594040853466237186151522739746646939781190910945394799736694025608165357477283579232743624916178245847233959619638253134393215915414809756365104426617356985522789743043711665139130684736944875078716069668074064407257375624674925322732808043629062820644155638000910715759610190362101189725427923101973747858372390820143710523275543252360928143222448157124660961794365711457876017874915873977997663736612615108320674953956695415616408402419018506378402454366082225023323595582851428132694502569334039365062339859158251608581824728355612026872964688306709512713334562359394383368396419326494536007591110598029579935290854846959764415038335547489549460532257906424412396811378150070462791877131380427815334628801595047495580822716017468218317045438300793266282962228349787449303391032885433467841013936030917769682387334611111265188692611985026893294901667937771883400633432508640211442986923436017223613543284378323551896054393023092381794324958469532251542852856088430782423689221404212699500789987652475913468926110031537402358641413240285717671605368036207551868958943726239674855771408514912315493713020466171876810569912485476286168328152970081562937816970324842722921228465587089861230607783813718350723122758658324544729496460465959323646048279083604628265936049460575364748921967086023668222515602229651085283897049139804276498720991234878279589827099922520052675118044182215769329013287350709476771317240531337075641664159651520205086900907890158923225813385851397864441311254792829299933332685495259230672965421863940644255211868282635756860160783488209449751560833924336007944468377190012481817983778776968861701974969640718699613340597141772092821419728222031764326372115783968889932836322564951108570581927336243224922939165866983257714222701644832902593969686902010832322967832582878855745837952033756565770052962519867463958459984788399151956855700442734423040743017185014152332580263537364729669910101994041218094556752752831469715481105115411042747806643287461911234849565552997162533161375479262529320474240673472106799583312814055369422531597182578914783498421770682796790636686915378734281883779655657248363153045902500164298622769643715131480907020356634497010588921945721097303614758286376844951891574068000929244538645752032134835409669865871501365399681582255444050248316403923679630683014413573644552847315507968871854012880297109904902279598124300247611208943113051505561449094875900617301419074382001421323471422183804604769489596405339353776260630079643715765350888823569326962687207565347175000264519987806773741426582381160343892398839063054354253887609186186953816897046992932507084260575093809055973137378680245670239475800102473779935537577875707754393523535514674589405221808378384388477403161147028128866975658442572447388746733829262714154119131801136618683595102007059516878227266608222964249969215182975061783124715682366407749955629255637845675551881243107436130728370097419479671187755626733542948721487668951502840635102043956944027075787326803895358947618707350729455597213279607170760713247057186475185165112798204427131606662794084691293042676100320189025508843749150870457049871827013226260264826295404316335199960816317652601827901933241403567995321717629304401495264600965312732704181548803059598741196321099701836566512161461151154380931976571038743381305835476190088818471372281837812936254719498980047573748300589647618591505246645885530955206335681794015196018229396479399365476630977445299875151083425495838261382351876177187937428397842464943642520452325385658336003547682580907347961060099025079727157208069902657716737015805635277940237605423555821381436261877367410823676877307153851527795853061262054574666976237752084034119434660313298441687571889025190001360831554158776045745669496311557023076460696050150212935868881950145488691257224210136619696956176956226081154264945166320432174455632501742542691963186909032490020703682929144693093838916626720843514311741539789258276039436571487479791732180705893012170409264703072083800389383779782499982057580109060758844811152370318724089384345586031584313214814844327242439171023775200669954495650800562623733603052965188015391657677362993584198108185340222734398044072898124489504560914142885926142531162865202608649162037932951917060504986517273804083926009930521646031310022450279044748730708621659338949124902220576872275847909927903279860670724098381031583009301341794066483595341098705057719608721062679451417528677079148851924746303815613045342864911379877259677882249693626617739091368730352042103818881345791638846059552699585427326010875808787392119959461360706283549549058844031276938098682250474851323807100284042830276202147850431035080781896094369316225595703223621413625673407707605326245655496041774501537898839581837402878175428820582790567626055901244860951515517078947148749314718812545798804046213334145653625824317766941906911988752956210305158964378930896464286710343670938813979762659505205194116195088938907426853248340167626636839086443240262877392397805082443902003369676643738380304536632863324897754081705960449464401584332703542032855896695328473122818127552198790429553640969494833242231347670072466002162037740020143111484537756883462793966234092403574366186541619762638878384198819747151786995377627703084758431761519994341579022943466295149511626822114689658200193250527080432396417388165537304641310184650590982630269688755732377297799207957417918476617423223471517533356701820155590308670519348116075209298531867168467233058619811269914912039031405123343654602150656885919457222051560637077673752638891118082872153885127359515141404578990076429909400915404609566650264166564649758926933574992828741918980387240535572784563983948223024068219876673269436517783113292712708355246678176488299470473218342034207083449900102232486677800742018760636605857966702305328527760735764352193336594614355161489475922711278867875839662118601567881486033568684339572363606887836666111725403684973651820896502309930096646044611292550821931821478248272464948507919710018849076986912027315216173641856169054317627130811718313693951154577533677428669749567804082580723434609088470572949039421522035993800396579278061158963331384582180655592337918164497681973450084386939728844915813308535136422709205277794515506346958611692775002711575727040296093249679081556753688137424593280174129696610671027216905306079688121113995505606857637604784297572274065798474748850063803192855464906972225874176544719520683401199681226090497453286051925002781777774532715805811963132807208689606357674518495498990500012897197217761128225110850644955574554874330541347780558956257713712666815072336996550382468720093458568650825127051835686065607403939153525294348549609975074283667213656672326639857538734410489460359671138762936054931072063685576078569080651911803698224306821035194944186440101578915448776283990504623499812697531213189722269265084542093800231151150093341969693388775440395123682031354512957261277152168915781713385653603920096369153366415004606750700528023164588668959891710097322833222851938814108612818410228699225950996662697230538559740362374658741832066723324426208435284117403790226173649051066538180702033169856965718649610869687362417655002962915099792985490063348713999910697246987096538667258005659848127717500448890444256776577545953561542501909078862768871416466609409249488050457210504170959376536812617141576967095068431835787010035497877596188273374412654700173363106914160151765589298472257400622545360542174444955163810657940070003927958509121116412223507039226289704426715236079680240766827612141020215947269857263313524959176494403501701636988629154858852183382459394794410599649447928879761378759924386415794972200413168641872099738823042577518327078062349579940741611270736595864433651757343755064904210273002378999075366754226562808623900595814349186469615352077287372605583386625290489779400803548073650986235637491687607809075251016851949050312057734781759875889387776475056383759950278219346819788971252221547659223955610575890763750435985887884129460780223596959104447141505643690804947848784540090044443721089640415478052371074505133904696012574945661868179995945512860485974857752792138453778663844060079370774291311369753684374625084960649203441137318575716463834889765627935653348398557171443982315961648978349762578746833144733164690548772530135565960017014142369730254479217732250705342255211769133610137480827526994115780261541484409435922348897013479345625745541849216393948050309976046910417492908974341777820095221180648405021882488031902339032934182538849026668956121186909956960539718308624907393981716991227156696435766056893066486659124722268536602397757399052776249499376559053787556129812309788056932825197831126935109874392035581821302447891947839362247150723644057547347434767275929933909981857675869711374232960736069743105627557789771111447674202693101304434182058749332912014120748106308504261762272616368272148353556741642872955301343664537247062301132584670211928568550700701323415538511178865863003157088490303614362238405883897029499111363326199214668593186948851083632262569640592036919260666449223931453716336302583616580031290183152707515124347110615925830902701507221090428693226833800505904693747118909756813523923245580916586653846753188847198569284748933631704443421566368870457785180557003025672135885866076397887682995855407733947499762680522155389506719601054326096939247557354697355118508317944971166617765372265315596046854041105012747850458717708503703504463875948409608740000880181306848452438302336986870341072773474466163334549682865168612336360662770578813346070053085399770172542916323773393574207215752839329015118237157931743096925813347301428895710802034714496141158279283338850569091293442726452990953770438604310722427978810463726568996013548348757872353809511194169489671604663749669290261938977345471021318732407233887852819696974080034945407173977608476536789723039436455075697220362340462361278207087314279891988690657283016760324541362287965843703206399049138147177791712350407859823013339424645341673548458501805756748262434370151554432870043026842437664109180575540646780570633111417500146596058527134770555517677621879836256675659726799544708344262070199471793032238457987471383574339137156659729721432238051005148628708721673699527350824324201983999683506853474970566838994453316082535524189661422927552672091390790835575975310264555227969178097249831189175919513741006222630244272434432308471246594543969659382895878070691031144497281614037612409113653296865266502845225035684285422759460326404208029314305488981926173812459271443023650959016760561959123817024599983201368191959322687664991870492081778507699711985012114927386277016647180879891698960570753045173585454593941256764203757435033151677976602481843419166526052760912983235143793011290564936894289557672537544298298019269367929481813244209446316303724874801118624390502808927147152965838538176197729179171798047519391293809921086984117236539780230619163915912625200679953966752965759142040739848345336009060867394380217154284093333822662931902562536011889881031365848804887219109253799273844127110106622847840700464217293908170510234844498188517305824293910514779219411911208670229051306660895428188057964663828317102342331733234093344790341001354733938264210193740764917610377890748074301664690379385833104603608764703216518530319637611690473951665701731858653915002903673781003129378745840958895610260805586534708672539680196273120155364311524347669143890110816931525352635976823238350366819602931880195132084588163556788589316060005034834761724147196500218594253393043492201814506205479883977916650133611734817248937024786695403279325208546961131524871991230127821710653752490944514998166946951783378165231823993440252273637982176055699072802476689442303386467939389777682223978067133150648505451799823219635386625496131466931058116330385877208103266375395577708532278603446701504896255296254977439764370307226558287624700319319320730195656083618217639675644867054202507735596361178479808119808343563171236116995997075161619111059292247270892246235947564831422255699863824282308432268652399678135995732154952141447987615099256627000317739986402526391961749934590396945761869149488144296133902430813045485240111911584050289696690440879031754164590326610827992039607603242539159390218898906299523213835342213511499875255424045739783551594823467377698501029236422729094731651746755030004930269875092274244353911874501902254837549302768465851657393371527274749240158171468232191214852972390207186763028994679449386184815945421930090228782999993735082858266412682935705817070550182956328505442910377703269292262614299269955782624338645842599080053060743876303607650255355442346401560467055084973612640622011775494863781842105528387318669766547936597778263254116785659660640260216003503169251726371051998701813755346887004776342117000975057217109499204637773790093247691130354507533252783070716169350905460408915514944827867679313232746701569111345131534110378708217175634316328699521019898329574818460832643391390298630116544588200214421133495169214882840864031983167583427035413471210332799426246399427102875772762854360218481442632949047486099263209276832054738714218081738540268025019707643393152098737708526329711165507815667573101551880637933900626420481859837967765798921337344262709079598312987252363060116414520553487745268615982780149113440004370913294744248524094962411987185091920728201288591877062929323525616135054026144564579986865767481000547716773785312743326622546555028202080833445780672563282538972626221632389426168640057296677186743198866107852694318727479414128871640098041885962537411145480767945306146652881974631611248801769591917505663726138898984045309481446910316234404515013701198456454431002655430095990203941706797921887035438159020666979281146741104646073364309089415522338782828438545714232505560520527164051323932089296869449415306437727007415717746642228923361488384938414166928063401119701633479619110214645231028607763133358830281311150748020197366237971949424227818274164707498755531584796833365153414716267442991475339537522299679351873817661656034154578190424731387210026765717455749038961280506584912861896766796967084074473668736223697916182970454603818746348570054206840169669861180251867217096147566932880627881173231699209225418236885318607198597257195601383140376202830185927508880814632286062789733576897555291453978832427276281382361461147137609012534540034099151202349730855942009601452679849827153974890349180965501630995726876538883264098336013220566488422513760820586769738057277841971491791571773005045908278009379720744612098386790618943935910471491756580393134650738489873637480479130923073189590749409571361974199325879892808480465308371670732426719562467871310437396983345032922312018149709296681197393857580519313519602090091375213046302393137313642728610662325937437098440435741760699632707363726395873573360226487443047886550849477741765978814343460088859242561491019970592915194961922563017920712951679897974139653604977693605571686138210998567602214674846007679607180597139009223694600456732408780344699317700475113598219171717833580502319490315824792865974804473234297652643820918490798332436708623167346435260603674260962862707744111842014882095553927847033183251011979667116897924762067682571604489575873698679041526148818748084747140221452260899490575518236877379000586957487129596351786639236194615875357637500489234912285657479996226700123441660182178779036795002683528456996811585072251091398956478515231680836949634709231150557224097425723784825877847937746577234205820568186608550359483292018068964966879053033304409023154137562626133077872032092897689476943927913312692461526363156417566789955919192069416559676578947426012300305127568913528844691262770644246195629961307305739044596284836857812764577290450237560144375571967032070905445919407986629310223925067572614314524558017196161329323049937382576345432446447111842834259918373540460025100128520311493703204285489848119630499322250148637867003948201476592047997939699085159023797802896481714369029259219368074865640532420123466123856688939696965558115594139970973283238744190999291007197054896155551819087356545838859297979522858039861608966179152143845813536846122641796560502889782758576567004895027733195828992536611147075326701543423111025289525758238754010958659695858013301960068915917744411205961117943816534028322587123857797660860878308335826306711092168929076241899332365612859291484969653536233623053283170511067673447451771542951404968709135543660535637838171784740146885056542639493627236778348619005141915645432025060189920107183474894378607068223544627682833402372422690195229264339179885928422389983291663294611805520756774186841347707562649058183784205915234668332314327009896204259618877332450109959959493226960866371547206940079728029702942814776530101406562539027530974128771593273313774689261760113426401140764011108583468277139417142072193684406530949803263719881137037811611245105606563607706086589009497613326073847004914603569507874375957763656600073195187881343434168792090664922847278803649472301977617196377566328749716729601722353676189059837144267435179071020903909892568305279946774148917436524534058926437617004315053216548091594749454314174350853990252120105678130224729939182488788877685243776471131546848736183900638065256340692088904048623214631961981832574715676708988701327923819045881175663071655950219186944327235638144664413294044842872936005715641796669670707905795504025222017444653103203301133510787623888433927234559094057896256176711776089318926779652019458758815731428732703916853885827383995240184206460294771126439115016545293602391754787292398056784904576641982404811302232651175702937167808619944525961423383262013568596417911283341847765033144300286842137622632629047448493137498788040681384894553408847504707837659175352530939086720717863118456250151885137203649131332857965044462857636067797582750605697512533121485436245106574860754436373511822133702464008861136756677595779960624092853495918438435137864555163361990462814849675665905319707365577922176738901678299170574456609772428753040321936591129921092169774552166690101891808785655090995954667840802252593088733528389795104564605574360724830703766421873981291978162419453873365838319234366856857850835366396562828058499670639387732039790502979656980918628694243983990324911952728016932249010522762055623454058081439405022543944519389630010281568112132292748671907925607284595829693601497464663271912392225380034899765373783396629486364408999660550838616686300837018261869305726346713521696033094667858834748525607656227204303141789456891288571042100978473836384881780498874688716170457920304469638825875977506795130315135362292701244249944301097032118081389423503919350514856735696434870657671324531655463501177181682398917752392043566715472956260891473103577727237758206840035940779816867136037591045452997305062798245016307601094770869531861861341731792961970868846991677475286927489855617823439297143798599030351982354370568387824106423124941333352046527766005126310927534416093706656551747582180414119681154485499655974058396752609226933586233345024777600212664389827361508200765827407239472949251516381339784460735648349255713796399195666925428495222645438617674092564228572033158876330190598819506868338728005906557553037992808658885417726261461653379527986006461886235388483066103592921690117401890755312550876346319316718782837625173169644887586337089902577050998281397060950096557034296363198995899804372566889785428516478247550880586705272822982921723211737783136821022406213284292473797135186910693307013906815529527719831992788226149729510607081095833997404459154557816132590481118176261763358431402692682176062170226816163112034289476078086351553503801783816522408130211213218131440698322106964414789587279894026528107187582110892238751900920959105383914511091837804225796447810806974694251423760262081937223834817855209464691627548837619863676899546250798757597020210349569856662812575983558211221587305522829996621788546107239453030522241964218244586337555527919545368218880915825450401993308868800685726735829666932611273696298321995869782075511780434082401695796636346217196763314961680551665000237430502337028852225343691832500139186809257920332963237298163343790188453601211163769498150414580155688851317545197263285262851504893794967604471292359285979197407069524147607767091053557586378032744948064970428974082987081198661347409516229002024505473116080223212008377588882529691988516009224514684139929349881578958623639251691770315822161080198068425370180690609113636719389233976444267904035110990937014719430048437834882691911084756614375397761547601772766659425109323652383869319561615338921225548666078389790399395405116903201833756353741041627641838856062969642294295782167401698471160121292962497130223793530606378102983890848302380611600909456281608596551715171303731395904823263670150846752618906486628849914402063951403538920395310448172748032951917786330628299201981936290607880333640359417755139210690928276129365104755778059629306683193928540408299663719061154702398013411249884218381661888146506430260835993433977735998124586272934050802436859945607719195723102476357528490762802108140523745478965983188171784604406554386431975982264482953162964370418404793135915600435988463680852454805742817444582436362624811781430305495830895317816799327215458339230762308704254131809425566215739548603042405782241633242271793044826351504148430433851505932331486399755347653239119947505993495190008089351578073344267678844422097377649898461829597863995683931161613483900991471690109187768643552399825259107413982664137197470527069454729031799414497168460429521212028433231667144408460355718149619192465764824194718723924999800130625323266366743234954050326804446801190481745596610449090654971016231719312831077553081464142087974164522367829779359405703761341590311054769037768131091367059107742649644690380856187411493913569468213670612763999653190020319323970686179866611726659729299451995860904803398476918474018028553845840774829020496790923826482202797365458674728020019817693639809616728773995889444048461893694148761361262994308380828103900546380071113132645809011073245398007582519518546920327622597751352348144386339775906398106137731997214920352700692051698735357584731050887788317007691098159272630529659860740205725526962541987933774562331313045642244916669724993855500740412450551774977853715656954688457615072220775534652491073837014116918164195648565305541181938773613039518256312176436382245759117422749248563610291749438912111003793141458916113020703925311045695641074136838449915095549137086335235688900946397487839252500214574951222808018885459993385919503517465535147574821989281788838008139225461363856127475524766337530208098873034882653245790529962543470910216306138615541573821719199134777114903029976810346369861463592648127296040445417392583233169197043782073084232519996992262412349289810172546546629325328858130955139801674774561382167840294431688525038215987105911240169859755424579901388324690366773482966299901136935269429647393863205388253561333029343932750648222513015175916799200284017745553990940728143162940330759485994802071981606847744025616652649898503581659067602841742863385849936060295939018854909422981925989208552121595776536004322835061054075937861006248542767759025661490188166154008880364003077440262351522138526387943162546533212131718697256870937212639504296081389996190615478216898346115448476407014093784551256050597859231915969567119617323425696422940276742596448208325005264466010486377166110569743864572097348006273492349095859881802985798228550691133439524471673899062947440893409540799016486956288674808439639582436933400401299971142327749999508055569836696201607210308730016879567727754060884095544612662016083036125474330314394342084821633639147472927235353507014402306465457060792180308018716096128135233019455822159542449358907410340383224520352664093891320738186917618993892332039107976898085778705925495921979798362787236141795821206084614696744234899674512476775158265665954100444849866455814318455122386158946513665443474696623693491247169248404590429787050320259339388993143432361076003326088837986346227824020859052290031794674701010760562661366317768098113112690696455322926953586313940537464814260662898953238764264608788430459333628289721977315362372046741135011921043871286352679930530595678966424575450328284721101780478357480869980771732382676418863712957428501004488545706969785781604113064693528471555741021686070722670353940228970789650899827384313719756886818991236713324625751544215056601094739428746484696231425008786105536352757615981856031902199493398491291480669323802153840734787228441680989780528913582269933962041802765884053728380385673493050375612759181690870633811993116572957186138792722601981950916294666570844707318501239925783555710384946124750257295046887883896950678842818840176916168490489080447466365710093880688791128455014060217977967241220875296956823821328557164132054008769741075802472079012278334501007713108830503400374244619669529426219999585517678336009054482079919489925150736654689286444633656767056117890166459397021240155213751544227467427354520531306525952054392479872834519881484706137211700514457259402900416990839047708137555346773875050424539546991330277442164692960665530790654565596653145552117964310114552650751138096185616179421232234001659102006026674739774910155020135579013335549469428916781409996092603179897021805164604373111156246173501714674877303877356856044415500550089687876638173603727640759794050637680049940086844302736774375381377003761973378860069595148979908409191145896132044926787952845959981852041635487669916011731930784069361865128632351767026539196493180821691652149421535532664587388619759399264610330260302800103434997418220803822845057932447390563637100483121272694306002765444474016056892324739655289406545969031112822707616057189941255048397009234138258195619140717119317958524591416540178017019708111804360554165238824755222972799361447706689043613541995041889959367078813053514226911222959637939534260856756412179814044665039167653813384893408464477916585356919166412007952949554274809160333761098987371058415149990731453179862105183882432845213752105704375877410472743273365172669336017265076991851053722575485391868390900985442870257963021060107805730039244848832894592456199499894938010056884799404124715531633846399464272687451320855021095030268321807725578949362482738150908307164851895478931995297558863491115356288887214071336787575448236709326520285926038062950715909061744636920815384667324519805223897831456545554288495401551439640883036232107089661037082063754874700936483745078940603751266513515283019326109366597127031906379859398403785849756537375764705181865340476793025656977615290914679513164880636229204771169986389798806324928835547057433911961643680797432589607501812237721186984669727985092491348652072222066408001254412530134629562292589870539551327935505277277739438006845292568163880139380977876137333361789034251353436924202044008382023322533756289320895565738790308504648742622652092313194559660996159103090624581559825649880423179516318641593402331759142073055352360748579962363264562444656317487982826994207463843640761929971956810176655000106811322188828084788007514979835517775767395912805625067790096943401858295446148613752588381946939641507434584319774990918440559205026179902444606422570588655842480328994876346512491967172416413173802513606230490152647776262633456458759220645978502650862958409252987405914063430218788566865016056662622190083210902797926928797989500790380492785539478143239542338316356130153258815073551896548634722973418288165630668663606097826193548755601630969614297748876529966188372497398418519215466145339553207869410276806355758701573883776019536300867676482811414311895747689960405119751277683581718643135705493791716373992766691317434244045907358039767141348870009401135459127483195178362014545076835318608072771257704356192651884965344797070818137620825558210872580335912341430932661523942786769185592109288973196107138034301863595285925461485664876836672800345236902463247929754150797290771728788667005527769038725546638062400300324613802938442926753479619849126314677982293396374046464428582170541631542764693777265285689296731031949675835027389424188158237464487277939019918044419851745528601362978352568426194123887521475006844809010098975075845551168411505171716830488582196590758419645688431237724832120837430964546414653579675201415386812950603538834927516659608896593213361369141019749926601741639199732010705079015194769286415645544796058214816018953759073991494337642829018142205530241370774496658188346664150637824813108322650050720971692380636311075894689804435678682614914068673842488079717181609851312534221767947871058592626329086604110587792432887258470932775043269262050662967462919454761852333563754358490996926443813053252159681064649598204223131931957999317038303702001072188335768482906142876123445959532627163278220197088918038976700902445238499479972802514603132915904608814456390968915849385998003760901296930906261168453106471135827454756638704375927665852464882237360360770457590016833852093528346014621704303333842428409247557131922164535707777748593760492321666106986220698527966924194572963595961801899710535736551214094950236060830093099499004554652255895122983289899333601798978641464292894261874173949658402733131953690885749016517424889768816713155329652617859168531527955599584658322508546325370895843241145326124378876838431959778274978372987652902470728063490289744160054103219174291317626366396516074552181108923969172953943482253581368894934003063925269246541374939905112536892537848078979511667439743777343240450550330399513115963218438534166926200242581764695292223117468820328549476125769390021235467836128693694564782460499143603089596537422540504883948175871230121268114110106475189408415286415791204351895481726200037078912381747764808335537975602842627090000524184783553238693226339966885625453866295433796792975741395006494166419560525674724584340628440257395956575626180131253128054199776183402284130901079068164436363419671690638007757256827176731877997162667901805688722806584468862958606886553353229486362010506013420760517467328872404761680210184132755154338385116708981442342383335054387431678231811012666377735138781595551116060042605260654330767091866716753445781434291116537701221861440948362081065220970520530546793356929174159823858170453418107255297177873334248450757122213264919803585615399721119313833093276838529678243864996847997753232155225195208602029314008312218617275519251504804512006934086175733435830234683298225666008286338007288557222762913662301894042273614155917019980552471121970533662983519373887880307081502793225317399890864532451562927554814981104060561225407723666259116748977086851593570279655773935965074069508236931886364467677779961548813644903490391607469141320974208610918600585588664610191010325218570700054585032869487348773932597000594812877460741970301521033563228197354170548931261684517932504353218308009809619068388345384310456435437209907600068683947962178982147529769973746700090275852394296506022095940147408738399950766657387489864652344781061456340615532582821800177013764005660447887239793668112947024104239114745131713340601452376353627327719186773252252417270578288749826836593141419247302931044717658203889659864413251179571849804065501735486733849020576849319387322025556120450261552654572904555324698517305980279622286767609995244015978393585328811009605290990548153796135880269593467196571013105550400356702482450858818494305839247582957947035457052333369121249193809078686394098790809269492312869351060847950393402641064255724211296645360722364614942996304888452565393097358858056416920743100418406731471459865412675122254079807146752507397804226988762175091247861050532166068391432295045644921502988480174948924401872856382236014591380105485647951608223230969873320230927511066327773370801933776525836764010896175172133492702582880735029547943343363588970892418992974005613986329591643543914438693193832436491769512770772927994161673142326664155948818125276166441447669430355154205880038058922356045935260057881749280959353036328008007151319503330578511625230373519872616060707273088019500316540283476810465894107265209737056768783251244104618047277856402772067148240757357941376964679533372046284971770018303848897588472246155064802900612395692727022503701378554321416919203294788616469141847521156880852223362805012422663510822078393581439152361840908822198012773749500263823061949051041640408087485797499726038258390612921996360585437494716125898966756789698171871050970899563652561382254662915108051911463589299170807308961344552054234579384252426796898028857340953697899316314889157897253393339017749380813462516305726005855784833027590796150905104059668099079328614022126275616978836218103198851204475578556943992788077639341360050759449350495440552671333343563124215072605538369507510663318145300737509213553217165275049240270075824301811282265443282465581716850322995039303365979432728871160450229257604379432480117623374066815012928610564600320654248751933610411006178823043636472876386430651370694820377667225649090281289816774926078207796512139603437475975726172497955811890740993683255345709224139168056928666324002482021217871133152034924910988497484184496877946995483950695327492130217858796672049766749380263277058927652194419841246492392888080908619640427579246811304316449296966014726833110283678519788237969540392580050951270950174896679549661836309032762844072090280363096828764278137583124758935081671532210169219758051502376459336102578136551981171034451388133310124260688374339476394472669245344856020401151689911033010258432746764316254475735793579252969954492457871722379833127062509396686488436640986412899642147012107693471130242373371375939555325214586511616697865985099703553504567713200653272366955135294054540493423300904213419522496961240089754616323300517910138597925174496795821296708761991831104286129506908783935268694129532374734435079607539417458174076585038121140959325117858299924159783526682587629362501069247211120091101989580435166362577510612084398578064430828209632933872258107488521384042501632914645259033191298101672091980424821033733732124468346777426344189208053176944166656469597555368462973015982468702030034706599904645084794590900889698673558343163149547057711868168188222814350929138435195126195406692601773833615423078838556112308527148118443374782071837895481022737416296697528802898209198988799181449729444088538940679022482765315602859230386969885852216896929509496202174516084424170227742111699772504019671412235045747712506377582039070793937349545451470932709371700954090734048252397739004126370684992899532261361125157766287388471588133625441666973606792493094527402130026569886488501795485481677767473752263196321913086874409435436387257421535069456429721627562638335409614565609469671509662048077746874028502267016838631021371852052866271308135151858791945003691551373767621428241700572919250650164306117232466507796802676559622064269307809497735404781620310498962986518145143933210603362195295831204583068656006189452052123228521974282921605890074769663837349446454326621333631304686128781749156098732977787995414051662399247437197415261897496415782967730438612302119077872611629714256391036419029240277761266935688349813845765668093444345752043864023966178778866081035809757850491119721153970006133197332122231462457448515332264670770268469823509183519942561598235990842209141009063493630719529693762316024400670470602816920333769106776483082381408396971354100535955614060435866360318993066576441230052874102109018121302413254059967295897320334680746092601206229291576129593193058436973315392031917707720773259765974375551067221573151280706515547076377922222253364635500865859488874647501213701908678232684256165294590391275339110843991538331090321701018626895651190978506450858234404689758998710380590000579176810185496385107726096685476096738938346289549957533718027364573042079485925791219925508408796436988562810459739065139395769918900653035132147860461498110997856524914857403517844429167710310155391389561310928383443204413780477067324324121025741455746219620611073052539106490429161538168730812594270185104099547896569035244416911399052211203542354149466321812617479342570940837445561410555277619598791240432117635883128951717900372008600642464619949182953204014978010450493745401421347560260912517151397064937421825242907787229596290347223502051567029715098511477505983030120203626392976074656864330261147482211253957310276860554703899505819093542672512520070623335395414884522340180653112679470136557853507109417240482053117749397507192604921172016118980204928917244260356388129930302461697333651178506163343959858497617882458758118193609954957398416099354187593801333300020106426448511409499280186840501382035349952606046784750069729443332349445433210564206600341399934190096513652575259398875256250450465125921212450541328008316676102400987712013740389946127784541768715590064063761162269835930734666722301688315094972731016079436750267793642505412471579615334369253880696319781916432008743927227499824213500256353250951757126266816101782424306762237093266120242314507192025632524868485616985128752896599526333775290585524196356043331954906241655306560562667585163295367207028904605048268515648065842241177814659658365961048990118205633722040302604850909443804025202728214182864482587753454853377474666542449759852471945628365432701715701105644974626873902881093819263999005957016920277710168177964574913443451647525323102430940905529493129199699292636957896781499322959710035226867227215157496651168711841499268872617237025847820798309283030731165012300256327992630671816859427059983137062929727421418216090466491341811655627453733347878241987138465954943381178560712278945931814282178918709582940871381945622978634654440929210431667089582474993343450202022850327405723699856333324372406784341922324771427067448926701809305220563329864360877326939691017088267410760461170753141335072791681140087344086521095974445807763350011246458324574895284083885907691884351659736247367726945364352108749908383619724038737795613831257644689471588287823282487953209555442438132378361109426096106997323639287231693326951253062987986851190422416449017721853403171173019081165080202227205652024254842263768036844598195715897670139795956966722126626022259818861218100966331234509637339070439209513831187525706963738166627643604441159267947377746541278716219306687637367188265212322509713163113378300740014616744748171339378705301439375958639383949052412310064786915776551136764964016940143735692610954147724383734315588734281298778122934200955799513630334776942230230586523865872235668377425293589056667884949184971314729442928937598650339229618657778906138555881404914417173768394078341592334268187907461304883232625465629858439785230431732820250119742969325061675513774506262016785321748146380391279671407861491465347116691807652515968015018800828785778533310343590008998218523297182341586880019437303099584100552992364991361684986975907545354831190051772415528276841017157656817884517343292602767075220522171627255650259148743134354946680271418110989434330064500328545580711024526472701481714149323480915677075603921154407378262451533534682349327376809882200937320337709426186339596182467268388538026916347468952497505009764656983489390439464342515087202065257427260783457569553146147975513068370741616519379067473911614185002290498834526610907319953262943762404626718874879389167785729485827459648710573836061646158585443219504753844741159148759249373682303491161045141253631290815061236600263885337246151029416446206868654812258824258968881888208021499911462535572289820762372457590367039157797114127944536069715979040216288123255487387725102693540768525642190073011018231295451517743748525861228231667704017047230558136068132642555793646707776540682990037962263857011192082171071265033888657689270852416697013361718416439910179620006696580431247388158398279064672028191025385503970558683812129671391646330156937890154647254284510695637437053321711868806452180127176065506052391709820639703218667023202210078446427140407858322821329608226058097390439846323031535568459460907439857906973631670798991433654540270522964888000701286133648087655509321489516694514353147669345495550450101549893740857835103617923672321884764029461131492518819156231697128473415898126977145323404486906588793162715866946695498713601334536789283108561167179577808505072705137290397818302065819590208942309067266647225742037654649712603046181845988205387320033194485119144876090871500809140670432740889753052637693781146377072106224324677515549696101951547041443957869476926979933645601018437823386248611795020650458991945387152953655180042673621781336673982715241523793792620012308480465294433329546937763322841919711902411337153060623067667440833322198421873637548496599921954285640762236923506197923478135059769935480660213548476623600098346905170955436059566493910867522699556770382674499775607902598254382358624739966228626554139609176301105152897987995937154044577715466902179076634250394087189022979496392633566347919619379960558332419296783585645000042751004040159830775636842548243808233351903717402466861479081061132327734702502509965696675880465435244581882389147656978328229715363313057851140199767465590123842633877487395153144027661542344367329166087981874824334121611113275882166399379652350711502025744963315216307446207859757857074269310564341719293239677238811636898319870093310520301854762770042090795116703881121030294738390837232143764337203643112649849786955383699179351994579082961376104791281413898476128061222680331772058066573715229337787047756640631991383891309990445785767656189736488830949026906918008345397341093803083226614459175733316847945740819669117679409824702081686379695114970258227996803863785508343683596837621412406685553078820206151589761802998558378339845389168582744140122118675410109727224843952446062065511826377857252140570373783628595650339798824589559359074587603018683254613820973951471240416753144305321422845877744330050773024827835925049109434042250709463486058087076566339927651049771180565473435265629945642243132728933059958216971821295918836466853422030814958816792530769680174593993265608014556744205165814262127238274263938308199617437449877406484657912410315927483074709616777981028776128079546553491605901289668180022633367297990050755528797791389782763489425006354952018262104803053159290723375653602801544851810006854905814041899160130304488804970943904629944337565841754554325412946963754441644701289960760650516678375787532794811252283317170340856730775479884309402323233740664518599132704014629974231099454324352356664397990046319916421195071644164715231524156419816288377395546545130121758286528046658947003255979947964607567941523684342775858287958721640051751372458602048948120546883024356331142828625829278874953914827083687676502576965822168556962843595621137356790509590239100818138846618380078678824671925224736822988519399396405539621196047428338316300301585867692273880555128806628153698776647004473915959095597461591527711207071914696985849041204103032626951192632805613997546569010643054199027152552126608194922766913480075576295004940500951298164330852576748499179898849241414573411307480992378727349680129975602405630921765004360641121134074794887044992963004022431919892409905531690683915927177617058760926312965980763436565769815177057622523750736369841714220950793620416641677683828053788766744060060439390190398071098481535315517088684640495888087093909472018171861608006968376354356887275982154063507643851955904008291441686105110383451078314612888585418387628479111492778717065672487134688618222730351326895921226853674622156594160084364321255172648154167995829907234840907592200055713769191791198188782530638711490383295012658850190399186389192988227031820552615683407643930875564641695541959485788416108376598717231461515714325581816301752419179865545087937807951795726476300887650128737367961514951998407868563658031946961929820380534114492382931243144535340784900567865653726853409094858709150127506331925229173668482633725435577180776532965490006028600671062365596151664854508494436197842440000471203249044183432059998660217311461968479768251713292349040117020882527901139709427239006582310755740273906293899940908409384129375461624925424120830809780784509220185002924006369545367669735479657022259990293571397896195637981003877588284655357984698562661467740324928171762585839141877266145458857309502877563901224020234252985768804632547756552149070721410006691487918628403448322330623409939553224543730783698884673845818567312115962794626345768145958706156703354909538219351816902846244729033742565255741272450299071884162027961516889465471288079824102839400520057923234009607046254613644384027935951298075899290989033396005632585390037349288273076042403076863394277369209592944963740309685793000412766933701478976395148508794302454811764008824088741725932887102068804210655380703128692900785774405368151695191885748068122784043798899908864859015350492393078574337224240452061877920015061251221770162777185596497670424671548693240335854413950392282877052972858376092859883478518518344340278627904041257851189432711533747903472753506119804368701301017546562908740410234753765277281594242633312118119765263920407512265397237148873675422513231586604055639128017310521880470151747355611340332118306438608388551520256924779297057243832745597095749613884816629553004862445366094979484603810580895382500735280599906234549499467787541284711129379345196585237378157792497546699501754777444868454797466119718883048843786592788740348628584650122803388245364486498598785421340708144177921280053586131846039618246094713162016317660018752164384896027121459030095439613148733039981214785612209757725067896960414427541123927681162481427128608881200602093087064347372295354010310980213288671905469493086347059801219926475798182813258036260299799745554584622570878479537914937523283775360086558544337913196979487409166179227451900049961147944609404333843678117728754628549654118447785344533032599780774555804101276367910351773388445995686592057734779274373422293818235905952022386806800784590863798632288525492404647329927077038459430986116995398759386172152925527764266559712595076517605067000027935470275681695929577901940965252829596759133420846422978055107332721534850100349585603771536319827501517166599996568924870872804094426667876053028905137750453244874170549436734644799918353574134224461088773686327434339636392068294114720144235300340180375002205841762743585149590118727122016211673216905427532205141368258327197391702213938358701596673458331549408117226288249972388789297889869736005257081443803596034803267281375858144331226736913892626039607136206329206241726900700433890710228180791883442054562300210772284651269240748185845615704362579452753791845454317825786849294149728632808317662418440394928943834934942050201285882936692776083598579287468668808282998643667261412850120484677004609756961029463829739459235822208949147429165679587356153023337827210188662762050125543809846954543330607526327753797634456040847292782043353899400447176900622271232171627021094995408272995783001663523318908701305622114818973722145104156422777628149754056677986060169157024358937584544599248005539468199651840108553026158496510469340558503504984798339513351165867743020098768990643755643284612838378627250397055155366999539515914020711020332248750139131070875327687994663718563589776152640161687778040632795435605456259451220274913157045995035961618135797147454389602136466692585601568211720734723922702744300973695726378894338483902236808958270078011438773263692048504313543669874123664233114426653618467180394240946007689814303521787128432307986403950898778955470643499681633184033562361084336416893925795287622347060226244065805974497440685369010142804295555023085526113135099974321544115577621493229681446490085197583058514484430978234441709775723378857591499716127990422567393111517528226926087481871567800821557053794658028221881858713385233107201004640678724197758376673903361027460581726959547918458538155843095268921846961410741558225664075545554289605201282914054057558919213328437477032954022962383992838144448666475237502487394056033793032152311812505329379307988251611995459158035742966678589213306973533683096494791933927761455433149526605614934111712040266467699782281680122053357972271794273560955557243880706032805813497828248212758046390446037566195712744666842788608861109536668352298945458575267904377716855135745539917740768427496482050564646681268085197370431072908322987656370585044747026553356011252063190261776238207307771971901030429110856286840126985905318587956272478748649047225686413041470977567553491574495854731931675202826594686120500922203230425279334748835249554387411011357449357703156808386354931353751100228785417550754220669945602941754309381869522094922509933315123132467303239611495165943153433633661096128002470154748419710108906070077652331040035098577261037463622542283657799046924955179338304478580734312218268235626922617369875597244841274370115730212740977915917875632878153621806707641206138523189863241608028948144578783524675245256276116279999778644894020658365811194083903867753158770892062458923670859175541404097559845616373175119318621555831902019264263283906732108757170159915683620357621761539402517003675674701711186659913043754005310458648163451570953252216375506994642422853465898632861328284559518807500021028582943340924618293678797781348656895822994798428827604333083942085800266263125741705980184944371401119103863971862341044952422901527360965360624054253304436115595755964641703460377973229263268213024978421925226489863823003719809198161487262903420544046774640688376504274058175161807174953121240361909123828734381407410540674932172698781880996107806630397137497066078797569194961086333475539201939889418181029418517437329266093915801051764607801529857972703199382961133201131578972384382923163628563810046269486700668542007670674925066146368861066904424559452029805083264844845730815794970029544934096883394706356184749702950943010603447084507226336470710375979830278598551225154292683214945453052826314585312766823712679964240824587451992736209467531565864481569931367815931732560323843799458796805161519221881744049676910430554505837297808720591029052851740400313956138172368473002723087710652827180144316418551186661148123344710798999995344163907609928748617065141899010234193907791864201184477916373607986422579077017104667086365604980856700948298600998971331741512776514582208545039198196576184400134835999419206065173101762819337435189190403191853062035893375327873748966086014711066492547163853347183038164893936332352084780731314022187853655461035692595074473963994770584237032334087535006628333785309088128657493219666759979269475179948490875292965190386459283614797682769936396623049761923115484842863214374992840062913121572269618828212423691322366647955992121570484888320257966207836174918000673130883276750485537848838950183203322238569129991540243029992948801799876565556070262262727137595706053010841446299423069791506745216219220868223374052480058315223116763513532649079134445088542136404692634021861922410977879244106513950136233037091733306626534773379872145344151325092290447173369898704518785307456152195376192234347058366530203289776827696075913204965005161673272070532393198329437610651549772481241844567575627938732786253539301683984531857610095161407355318129118158296141766682880101690495845572508092252012039430926693248798894190650104998211335977551175712050904193720029699843348710054579182575578391141314100875233172709977042027547040637274141693707917095307285229246327707590859169520547794427797312336034429127929028601385295735651492668411478578968242194987703082623496154343817127703091599495694943122812119014385073221221227081026038746889118111414504061289688593495864055123515179310177229675596772442635849519823127119463150064864257309373202558541009443597095010635729304582927985542158630714763443729505978827117849985220700542607857704056236268203678026219031051208826634261160326790078612379240934291808311381889423758332020325385708318401977256235146571561416132039125980128703222124960495878163549206072329197023117300767821103593295097564016407908308791177672230955625870066614565589120445065207986863493361718586331358719315382089050410147283229712477250517259544366421150289888212802171284086385609311580177383594787175876784767620528556766182406961455961505249227322543517942859403682741149064630588455376272635938924906515018703090060132985779456364848139288939756836252491734265145129622419359670822593901048152826918230399133575092418376601762300444962622942318570107894316624963323796741786310865111901762876839076935045881133648944677594719744669872771055734611827219071247770577847230944984719485041268464987324279393830443824287889131394829031290812724810970145477088400695367913192102943744201993526576964557817483811104211464947692094796121021748743649734850073443509916670547608434485675802565903484072314468007592705440627034026159385025328662569576018075029979757505991911179852906340468363179774474086497526204246677898786555506817298513101429938260530694447156515060561293617397924195983002638991252519010390166213845710029271314993565765883813468881765990036737535117476353427932344526689091115379503057099913630549728254256159873041469367296313061161994143032073267438000994457373611136752603220400233335393410978736220778970666965109794345578425510609204947313019610010658035231321361645807447031855102415407903827014391647158587267586092129692557290378714483096373541940156225711500246837818845974378977494535506265089387219896382541894606889911682747365298930458645685417320212207354614308941362293730055626972481420876071505461047423714859309254262233689842141207609223269936655215123062945373241790562063345321049852774965341002412668748264068725251860189767687651971500651183046185120825641961472246294278513328425036534630156593449287691354174735280529808452297878390633682895659108698232300655076655985959155494830842628029830900586315200582928777337303070009885500378276706822962505832773277619750007255136645531890674344900607020334962996890254307934376840705901519829013011804545768529502529323045176036122560410864447152686476321821301077253195016845057596960932004962729285900216894269078703201877905421595333302118988330026062306179841085737112131066581933488998101411213043206451559403597754384821886179374602827665730286972522693747507265225834725649236572621994688239766656704860707429804553020946090447295503087908403542411543757623078838174992978242064853500525387026142167314455548686882971844717009251798817837652283761143352850877180630365674045324621185318332669613537437873934891919310025769417797618099916926026417311612284113378946293097323244827308490864323836650571168748156553253351214072493359641370998499729146927140270276328537542698343903033346025378421721511760158308822735587704383579965372044597801281788423328736294349474345418431060294325249350699398540610227808824375809387691212391675133864276008860328625597174705907286844571798969516658172341669826644939330913644847248945160969917659948812606022834620175424066916613785115572443514064748476834167326551480241674757222120886321271252741424584351441442378850320678938428427160683080849480004356674849478843602677720102936612920246936635052359736259410930173928548384723863131379826820253760959566954319666256537721675142062535332713286699976864654836312530682897432954117008285954492253019308641389737940646667881852726688572267613230880108753182692980047573959910176574091121956140746227950666125895187768960751481914131200783316885482656640408634285452073744033392190248170355906214978921949258569793143587979945087129030800560489438529967040685988103507643140451234597091075553596851407487525165950600527818719130315140121014980179511429498762204208615983708926144895956272101726711501893954074413071370669534742610751326066237705127139922111784500115766890448398799498722636048560394172606883421184360147736590230547081445624026789945947750480349391576392328574097159712696064042054983850030768817806485001643464849085931212576742537778183103338880048235302923519225196184136962860110644983321128217922104327122330746483312036178366512560222124227556277696069080280838293922224070380015319695676693148122793639702813024894849501759189241352791278114837440091917034768429045487771288775971394800608922782793904241780395551088765830305878559190855208905204161979764361212357506778504552113689215877873963805492163737389200359142800597725517052281862813148435049095600598383771704501229141299709914003360504264900549404760480374742091084204084923128728717798619869814848652171125874687076121821114464910378375829415658784657953916247213166067227046055607084914222674468339404490597405775083062994645415555068895584805944332582277844387598480303660815989652854224019321445037736129180057838712867323216441305192532595761435034814659123020248765279733169240837657966735100926467723402743402768393743219491723539928099284069135263820975998514754478071104194987777195165442838274636086874089418925783674303917790708398142621201723813806302086753413123989652011219294837410320161203081121408375621675186897948530025482323982381247474886058260010955016559223028626640424525710639855650722055168261546995315414857461263103133867610124083685794024795623451794977467444728951052786709730342653485613670933956774584469292214068356795819788998913065166630934099029274282071734558160690093228783299600447570764294004647058196625283139821420881438779418742480646557531362186816098445388177458633970552086988002991878097908994799403740827123881864518533275595501667471582374476780076654120790187331110529895072311254321126575806112055721673616875243123132499303272118940885847233581075336661066049246887581848441814377633724466358758406665215748933784811415910965050363239841337752025074906816751901573557061160069466490154209250216423105699253793759868792633395550544190644865088453287756678256159876962961254321573012093590977718520459534037115225753026169483365513577742414930316952857906575887837244716087805622827314103510696860130337022556938880884392431134987845076234924194388896887424557411049637384261347037898548980944917971050626983707624918149544319521335422619191666838074074113998517061023902996367017343466373914958832198742426635624188067203243393397868729364740427639085422362091071469120630751585690714359054254319862404592258600955270362057805593547242521046400658940168839630925394087194555376249555872217396674931940245201263543717410812351233273903181954748387758889749515794517226171998963291063608840342104143985660007414168951276393795441879114709804032878133862516851110234180360877840435707418633865103630043534064358899098739134913523946576241623983596580379637698758374967211033750222918147250290862448213841253423536681784616469858806715585433368866388771336018573409974086789821943113153128788528107628878704457093328124672365580474376569330640646125477092044209126009539399247015795445557016786233594205265262259947153304324851956633862824801218609304089774472511946050574633751281061988059132069335775052166356871152765329305352910272823334936616274437567684804125338918972745004877311658008189423105038922083189916122338361933863270404610252371169172221920421477040977140089643492898933884144037669178077715408552418896634264088274606874858147195920209941735565692215433520832354690795009274491295998872688993552168804004133564806650499805582565675027432595942327642722899353470579147483391229107634522276851517839450960186101505275640084659357282360761659010422888965843608006597499630590827218413603574425261313718737840097735173711553686750719588022565509521969011948967209222758673000524245993726068126811134053424258596400594878590160809120367873087026016734262116057166274656117082328339026538665143889142158573937725667184841153339037767540555355357193267855001158537958965648894130580617963834369927175324577221433332137148700671855045921576435313880244359327241997030369602786657712291255385710997248624431817358658947642708550114879101350301019173293896206511202774182920092847629611923488426764812661293428418591494544180775320493799572276010409927933192245557322798874102539763116702096297670608985914970315430569780414622614353979530163212564393155917388462412615009434385086381585433915593128620951315315971713241855873076517444654381512213195251350986000839888408387563991127051193129839623360126391489544233982175817280440631321740543250723829074948724586852557735796780978561006252006795401395859825140043484233346869490436287580661776412409175966250399876996397279980336385927342136885308886863829666371587497389534361494026820268537492605315527184009513073918696010370677520184482558424590574306352835731821657026099951825165650695726153128769853536175872933765371851672995570633194944018879431142581354742006531078450953082882585662969160250574470796677461002806429815418552397226098594695676192708985767985888101119529061443077599549934191660749785470685765668911330650673986596667663702025049459270579422531905667510952268502151227337511682480738545987445412444627014761200767939010842132347629923393829478348210283494947914754437509228409970586293138187265745240801103308153207758712914276618473617732739448525630873877323149610000626033771218825286177577583026250753534321327164463307476630287563113787789739656743550937808615844193257101450362495728628471976364358381238410496816573413135314253058961925800422192180986314119916346385135660327386617255116521749329031239861956466615966293510463290992471690784930297390964821284271882219229202615462153337101753699567459009205303732284489538059265170686360338717470564016270061736961931662020843402489906533730079026222288362846968564558700132992595837905963351956086322001665820920524707539867416948207363824483756975481098292740650090311902532414777524241279800827918452505874932934504232309292359767884448244887627968452562263468532913121441320706509152258685950318171411869871819741765799170255903977491989763703836771702945010613973282561208279102778098055614043412264642478642921125307607848040113570566147271651407537906727075741463042441960256670721443500119682321945174523235853234929634681864132515636691329181202249052751938256465376374088449184752819617038308538634917230920543335162454597259162526012176572918206051581732132392814476306083639453804691997959981143185427967012125361814450969457659575577643124445366304204182863066770911564531922442826206362140613716833829469016116590053714997989426414750699534814908297080210766470371699124257855366109328024221129051138164482354473289666952490262179032426112527610863430009215613224819823866424484112872541798090553422210652870221755769190302532555780685775263749166628271123555042667609783761849773846196591590995195800527041545074062589415359868607014395508041254560661338571540123746806086074328196692305973093467153295994899843451019823626973873189746819167106929842625568997510764221040624640321366979070166726236141650156350626455824886257454973430739628226006371353325579055442151955493261504111932598429742388955134311592840066372741233410921570469988927285505222871296921883927737945894940121629446843779683435244082384929711220820451053308933475708272888733790557445080689023380771718965559481018596341047717427279457964261810730582659941639349543193223361064203651339474217145427758012904488542121548018949068621648829105887197658380533982844115922964693371045841519642275473132348157690643703773070516220891162058024478674437004216615614167491189834226053465666441434537042479716146246555771296916273784906521627614991624250520585213080468162715460149882457394737427253854388608767132913550264351484106279080136070421767320675952587335096771067867734398030199484716576004333204472569598194750454397293414448442352511238231336576046050444279433285084112878280784720202343924886296684710795013653907074143457813416892045658606281479445492529994081594448447535726875223570293870846170354166430766468891088187974927760080198302542598869791061319475782866214101383774615866841434136775844021032776355814315990316295723499787878703058711191425384032452211831521518285723545604815730154424838786472273491760337282678724626178469431401932312641596111096805254920944036918760342660883166247781206681313189632132091525419286959770431673819640410445023355893484167697228529928813964946312510414417376735943097966305372332537835766971946515998944003505643854051751927542338621001683530528386667987816367292037662787764865573347577080106360152303396971430401865279578348230296271852689157529295742842508184283446472557300695034503398293992630523871215567143370704222718013511233361034134600016074954082648605744535391760562084437992351522289841795930896057486928285068325980535539771966724703286568383724268616744873716184737767913959683582569588256864842085916856942421119613738498074663931566185478324092268325305223700133785034815831245819695770610814850147667508704500471958379196022490097742530606059864442166259658767915796309937651671599089978210922179588453079392646565601519185594147955252772874337628918072369810089629945174248420065179822887791461060530500370589076432637207242648578501943811546856546913831316100905521053445425991576349144919360602393752218780364187054956731440673566561796367690397010859206129773831899144048251798062455482599925545072976744637937750729780165627620283607102758217517093836986604774147373232637639833918083368086466342637491715287126272817733773019218700982952814694975554395749845345883383878135066659998319479795364001627714404973145260204849975401148779598075487349051777856629657975674303413949864060892664335039318898315476856035125938970193214212627277313162817020512125765987338951352324961753306474771134654196708393205685606310654878839327183360708983490634841972600615243375770289740835636332502196381125640642607113518043989528489443312245787344423716903976417399084615040076539430127664953911583152399063385224312512538411310358148578427522230484044522095815976629018545900558246337354578282040112304081371811363464372480080397183324938518662701801162437677987887376085447939835609671261748012689655501663062365482866189185257338531019324813340382379104653595307644930346966510459346672785918399095017751620886600315273039657581876848906775320841154587639443403619086791623384248074662569052585739943573284529242259561085888354154200711073653602908803100914349641039066451038935592776529057804409387832543873002778510183720896638468704469405264273658162841309732696416362055003394111430998753479329555498751423999466290833316269642937615117932641218187473015122628538765086126668275807701084438303792856272991605508901844706726635411256443435190962518952144899919854793102447501544124270550354742140513921116178880736770385904110483912299418662348089763381568104205861363881208788735791464268445334551179707486498923977955117851016347156160170150265199447157522017348539722097829170284773292297370232622678195959692699329203553549101914195680345297548295043783548205639250588345235585168818731452693231596801862229719365326722609710620056219134865053513903674514323993408140490237341354626682652164518329066590665058911821672381846051695445807654442729318402951202254046394696192431593703886831335304746948579009766476167212168334874228649830672076053637702522952732843275152362816992605644742055797711840270448161592211244893843807989342172501138942973413226026762960898400163736676814514650719550348503660148717769563540891011945036275822348050868905567998449538736483557325240182104746036506523017496738756851475071517700674657229105507386143434314759070905892522953221252803227949317967982481254376548514666595299020429554431910000145435822553312947104855958249013693459900774530245022152804180131577610298791814449954777988458841492666536115497295013646654912324995433932509597787570792689761455359250688348067415290894383700825510614392932496218462014985942483872236107318635146882281573508779344025667904712146926636059291900435004529164140744267732899535003590013786539111885091233610876295686266953642926489851868286622253277375169632609678874421494771294571848160413584422918486212826233370188603260822336074817820725612623684148991051758471068000476697687245439793496607511812418087678291531966974814663339177791788398082730332101341365022602905899409994298090215856903458831440981555463371080258541223496571243111220183283516982905471076427248946140557755381423426023270896004023862935912710279115753918531024209425374310160341501927239292059661676522668448631485982431934220564766238685214945321714042315195181372819514207340520202982431199506294882467691132531529704770046092319825917522786883284211588742187765382455889580433105692085171583426025915317536662540606137114213729369619429936676176892612737185261971048674645377240811029757648532346193503226562224698814657341897830451830118111512729518530183187379507632502403550799268945271067060873296685129693301400084297492654338539742253155408844463502541222848594027335079367998497818697461825123517894286336874656317240316563027086330476243488266740427463723708254066301518699561208392837135378989726615762550162059622342760524387520675870257020830438667808457141270518317500324574132119332704469460739744166429595897480772957707664228222888910925046484958752401629647025036205245703167798147589069740862810621054036922687611469455910229191134976274144374505506737254860395749283139633612056263114866236323451220421734884005060615582780516416851988892726863660680642985799938228213015764341987875182739444387266830976206390197238725640820251437413992443975076707832332449256908219440157802085430299340848547789077759031613727377699309907997213103607885849229581217875195733374617467289198213767152647949157720212298404007750064556422675584430484231232825685350763257897664006130681442844233913688331820737647583197607197572688176700231071164755273051462524736064260385290954094220163236924897660578610111882929879630260707932835995330313565963478922234003160435522096960789886225697491272492227183239693714110727999404153191172144732594966219938795993709772179809821179287364050970701854087245850572663575495703602575239802970146532675413611398812704064059981019793713358000641112986636217275383974542503371079482194007996617372348977290319052818245334959744924067593594651571296772873365403340775917572967157353476462630071308453426062774581926719409131075678437199853930065432976299757161124533629421473957971736192228309544581175319577196623675619329277853661348280052343622227802027661963819420182841496987457077122021076039475199135020792786042797449106124655955690406574556242368829171187018115583118340610071296552515581653988798715620319501449680205972557290827285607650831236193462999794901012227280530059069314913488522521418904275039283190444428550626741569389421082308051601547741518384242040051384703590731196915278576892484868826255944071177339713176466981100139814419217008855592555942395910124029757102576751141231611775988154561990463194071352807229085195407292126628975487804325071945049502760838821553823439925136582270998855284657506901735719653124878124129766338476333632937958400231280961421586944610648148180860042135061005886336755854622555974851453187026563182162477452635612791570823836090186297694995434143297986877654275619549118823473313941224728025945247061322430308615383970820426047422573173999357785987617054834850356397367569591269751315034265916405338207288787618430602801377852304307712716886530876041639716240029884822738761083208686356346962209989125632538350702675673589698769162202439974325554094393029944003334869034146218194013671372261160464628222001175435941227801447081026135446296638413312851895586296078916672512063472043031188276605746113171019441904277662584294363093428848496685332932938180686900442493348288469107275309137932129159666308541483391803777368817706888658873283829769186123271519922520602830834343968714360150052042592360413892964759099402712835996499619360013119028237307516094758368372164051296774045023650463650135928631421622493785640742570228543650564722001979536404326358215930560908442217282619240729817608130144440956124288061942148818535579795259883447152008505638610743555082166056355081500804749763054760888624081464431869067829852109373418006161981131742726055254225391180948750912052545154651803783853623815854902068498136551123346571789304171250783750671791042565943744979088731221482994435016528334330455718689701893855609231866925349167579016834858877630762071637128999580924587944298599657526770365498288978550001792813045096677165924356045666340250059568266366532324544619960562665845434377184749751867011184694799277782616558331225889300658000917161696580525538806588307752776955204213240906641124431965258500033158561063781484051604326168115716277386453215852822831453347598303326414670851944411090553482663555677990873359786259289913528932748229611138796922944029044919611763550212791999035956454684403973373980018522600509230850991772579429595644656639933573545335914358612541817184032399993666522138878770366062961107259980993879727636991038067898724536705158394141030543055677709120120330108375160324051635476100166568204441204087806062879115851708404897487394947145982268613352681171096904897500405394824605391803442153007999858628063564823203228425562562563851584408731334525677294571237837970319646278845811485032244502915361147382079561556906201269141424490393217747286245723319721486460536737130768860982702901580735986965222605681724968727779734032770332344151609643430541114007713077728123372743919100850842254394395033523678528102831176148222752377794282430906223312546390117190131387936044762305518457875957470580336863456886906451215005461761617709397804326071128755885911857998463347757047750298583333645874204791307709281178491433164836165955735134054028231476148450597266564562086934243622524437820499567057395233848747647517578583680021953101216141376726276084339738198056947189870824457072319916953008025890140680915087756960980058795258803507327327610835794770469682418542417668587715727267182411286066685943698737639177829262015237463787249287167851318925968325666127133144874847829412442737930233064542872154400189943157343696523025322748278136391140319415398652097291838926572623619466966753019339146067105919117022514331144547725944457767546068168854924892559461654619854921793558627210298345419382597565226621346282957085191590127438533270281454233091130028703839590700586631223692119528614683345086904761573765443172541388658647310988934637645749678987040965645503852393731358069861458660486593597751164342903594138862382332782984644893920522809737574518390673213234258958118816838905738117255234619515922576674654678937530744304276216454052896559713544542481813022910220075727557263891757960277808684553281572138432478720184366858353745847176862245066567708130968934837864583327721985704320856051223437529776284890858059135716061615779893348190724646361717777873745395899534639544340402024792890780713436289740973202071869489713411504721411407728903158452697398932253790076314706836202999276979966017274052362920251473208044933517514935115869448141147794025953336790472242253388667180354881342801078009267100142741074784306503660144186404463609978049864746489080177606669587593929518758241021884270671883270054422120500552823157264728540735515561729823010466150070697996627313416095963583422439212164104880954710336444082190114405977783188351442371709793038669177692560027440669066949393186905830336109887756802201432334201710547177457579806285509387601584132238738101326924034835680392348061892220796962920742727728586746654759274120999207433623226691808240681046456653355429030983946066436135964844938039154080179750286800714974396087086257771819578513862706127662576927087431597560580251259995577029613132893573572444993672002510541534155941321204341172464316588056489656290670689962587325897486218840306595262516878208871506532048964356750106609199237882299303469228233122788109666190248020740849394250178369576707771454999575769587515239299995870934423185084088531975232452710635628715462592002961253295024296988029184704764167736849780248468683972279123263733254585283775864314045298660136847639746126967556130417427120379741704268573816363500879882438751430419402871735734647816839243329295809771914327351145120089528182629417819619336246003900391718576434499038720947100964113413124239098508090558114106665528740294498001037437827588953626012761314544361850507443920007071477429038171807598269536909665383283518513681723977863606872224334203646033169634870589867214978537337618608577846962941873569121753542283599164993584764017855255583618012040749730026892671874820143368866779970660701703278852074879856537026080471471590897126651808915300579385283346993511260241059996266982995750943781184602143295660525575319213075220239633889402978792290009020354505434006757391654983333919266443522179247497233219706408068185776709294621296035179567947716553205394111117008568991148482705655594838650384239859966180775788785668385008864459344886489225162602657783149320456188191613699148352785484102519205738939456208753080089047589680658975602785404469647472685683859122729030359156545346660074050250906541932199310589654097276698380626243360960224182415555007775250592887354269799744163960487670186713588270410007608646696017423790355258547682127083943515668181920426645554651250183614094406930578195886167679304072824537001871638958934243503934780283464429069304348742144586656365440047850703213556631409766767011834649514217543869945131940632365353597147542298727278156042369618174082537529990295411377573117327546498095124057480119711010893812284109183053200498187463930328331741065464958016767021685147771049196180743655860256361087461171353762659580513262310837199552166876264338552910200771146926890996039793554258485578313600521990199552563175144981884551397579085150532307678751069323747139212712783732445569232679472699209703323279902054224850493548296419547383699036243300913876117348643955824649215536455591931788001900950657741850396789126746621048782000437686989439039837713152078466666945830934846685668346465641588379334622844011717543187504674731259208688788771691877826704966397598458743465415329437528242925355118791735537889743152303596716194051141233406180803804908683471680371931999881319064308360800862048688228935038582798367164714990249884918184389980894877492838215449189704087706015005509317519414576209923302752837711038122990491392643213179595577135172609767622589429703551440665956785273525051106823740813015564394659613512348960706652890866071943427746677538321800736832936918112240847047124700362130392481521133054909924607932745471813564347090789063618149979189894982112224616920534260300659764014158925985767301577037782246595023710583616340416395751312193442733278763021391597181592941984285820332241934633508535320788876741114828350418163843491712570261724281468732322942330328776193955783815990952719749507151203993209824997700657467705221900663261501102212086759012462075601500729590378401576549618296628735347922836964571059044790324492254278092018366420263229535111493780389102374848866089683417062256943938197119628160192437740448008537862966414429153438089974534720096015610273638839341056553537728349281349936964156541670706524711820754422672199891681083151337296479180812508968796025751927156000022176523963360889549281890331412151986606762577682277580737843248480190690756434380407203859039840962173854716121796165768111881400292827806120763742684322934310079465233074855812030622533314607538238508647431228752516107950846846024159915271023735931090401843150112757836985777811480506721228598767749835891007823941641794808000834090971751550769112629647480736291562162663582703924414677193473336582813619027875612242564330805447398174275321389613826481248203857554350913115033735950897640161869444703398552671291304740049695368072040459153318198030260502592121361898589817847654882722545363630071997885742936413052745614237975592502518347904220653359158259697861669002170823160787215132895584161684720770571442920021029795609888915214427431257958306400910266054562468194030670073628831541226288062282336171219048237497739414844163953473303925123567506260617480440557785587956286866994805406345698102222980282581254719743492453922462433331279746343713227496808226267823985193405055338515540531849257227655251658499880323962404855582388692057536971797532890650794223820204049594376351305321180924341098986857212694607704686942786507911622342368472668476470725040033765961729956401029261481707759053406070323355623488433873888139379793160959821881570046004245757270695903623295601468123223159549812988658834993739282403785433355416471783558918123178834150848036984720514448745085445458287406136191698118018447425490274021303369594392984399088094871310270183685572248096399335762509065589046122899869039545361421543436786843470358998181289329845446837405349988785908105836916833678682518399919987384195405798824993386925877520699301361618003823338896766982368887287802642025692924576815997906458357246438132846178356441406988013761408850809099902556686612646290111206346634646500824868087864387805608473105003210146880173449280541324937184380164447864220038674439770597676616027066833735827733258820120829258073787489367977995538548397441156126986138262780955137310903141515938010719136327538505554471600030361078195519654074552637928197173027657650067735391047570091968053716873791173361584307152468556864752338383149198112269826319972460857266006386902421848466259710657329833535224948764665830731838594068951225543130198877308597822159281359600418992400378893738608635641824742288511758855243989727890762885329959094462238816099617560207524676327117346136488453011180069458778160161892447339529222112338046444767295980923857626255557038216092813840520452570615800538801823835481571446072959818462539797377453995568486086148351487386418214066318776636084719960551960328988306548040346596728117280159205203205479384677618430558587372818422679647957025439953701384583211352987765299420001746388541215696059045834076976178395605566635852620196924717612024581481968481816634564548034415642750322072965399068960559865846060383980464137012256240472447514820439113935662645361485022122324418870712279577885773524954790020739290380667191735989022764729432651487676379007155814223701012008050620537154912909944770098735069327549495663521131177913499492416574291348678752237411894482891166152016091943101565907559090568856037883227286054104233873981762059452512938822814248124115404913531181172819020200782108881440525974586813720200208670450822619935098210426577779667827029629792366397308579223477823448502564605413951896506728470915874168503765034876765870775431987571040545861663298541162440330991616928601838232198772232853814209557042439506036181210070439122296366500792477842810848381905702985016311716690085693374020759501020776933788378073698525476218781598734500651579411906068046118746803462293043839341834571487749423122238289193204350088504198716166503997396846468708154924168298373077344672164601828994897238542480887400138171846197192082475653288011948219424371812781787454290657167138897767614157387915359871526466680910556881718560815286612337296758560840066313801875892573835184863360877410563994021510212674556520441619081376061073979883607377537064938831842504182812663174568740102490132132491030277354114258761260699879774586215598842208496275525196668052742400681676579645930471354791926750463262989955910091770509622243223468310902785037870772041012500268088539302546875766505429515085307938315075122920701843071449663906002680544307536112274408196858439175384074775918360979254851468043410951458930131059538806296550809427453873144526558105447590976972376841606199760691907712460733009064938415248701760523244192657917203401106194945890871530907810797601657045528562342615818743086475051921778052258797943338946430014447489898816955260669182764453905851687677768231520458826987226920657531206226273956481340333455364980165896080758165558126518976835376176932381056671634708452183976373839540897040046692201060258408272498196899117525902307578610668911658737008981685043725549163255810149919940326417096285059968620886513531479940014525056449002347920954485830038573563603421534178207964539462936430642114762772512935741750701397927932688586849317380484437899424790664805570049857993037499478333884966606267275719279237963519805957256219605332868533489406983549523325361822545148624940630276282337224444361681800785897227974788872775700118993149237755418465031921386784968253506419546440961615638022141073571380505541201407127966898212919109841975431773948949259392521444393073049403581306462158168267013633170435234372569384642723824759135425242135096574241364268933060805865968685044192224635543091553700389373818037520487918792766733197541245107386555603341089876637910545075376598877715579904721905797759546858343556402699143088634084094970249480758316633268985788105147279587960928337892727797645901235636872102593448088879364435145292647787098296471159028148297457109526899785565459283002231324489474629007197948868670076894388197710417903619610460146067380717735057804303910597010179109622836898859307492092072298794104530355524690930996050226603820770371989667986830241340447301089285070823983095271443368714226420781209488224706340971725038010453186221717666681673269752598734315749126419744580868704754257371257587913090226939299018083137369958041844008618976191520160302115745211066249413199413886538262224487589574040381417702455735832544582345162969928693172459500248817962808316887658301510304096758327441766959628743782355722773353326868503273501828395570791001224421317738096299200682555475561210106415874452728564934812193158807866772076534244730042901114623210104911933313213718104879633697025895199222065152792352800354339109603846968479402946151268544292659500923546081334713297900787528115737318796732672240466965687854960750568636516413167416308064883194741469799555149021835747279388942911964126055848235085528318327799224209267492994848223490526184887890255047120602867844145416314497660149629578420401915641850408851892943547265669109977671025647523679469328544198239516225831987830008160433966582167011840358326925755141131040195502540482491485502752888885421058581636688417364325870944734694414237640638768220399850448700536102669560671613585966338361712594013875896867174336913625766008926230594895179196718422119498045353105474194640172711755000241118214572158757042706742536654190865541466236949424144473875260859492240922964044454701386070278644724965653966948218834881626552799182652540044677574905339019492289137790183749461672204076951455489825211616253481289987380097851022371064218681883253599933592280887931078170233691008274198097052256696678873299248585272139510148976988522308065920303236080459757681239002313902037653498368516724418111363859318420714212098615056466453835018308251986986987825424346241196875597279585852458364062081202138523526466011013502053020816238634435788759654935878095869169637945876750758389260477623365246919404818903447986075486697596419671334730982579407719682090500675638291453764187504787700237567094649157549902321656500785703721326130739117281692297774692221518544106108168442941505867663459245675019733983896652494977114189526813889065000157809624034281776961057289905455532686705174469644940873502318793885861906696777312936705751836952586611985675327018249770896028365899274340203138971030720926589258710018943911692572288953259192332210387497784486797869992849520039354339894155109902408678312203292955478973515551002851841524971489659144631783501120122614792307062383371172104794327518604252340742784476964280667637479205187967623172007052140076259091108216719725075057182055589024427074213928549869958414827352778383923236656478182901006263510457974595469100498073255603210170549087511473311249615252751175742311547897842661949252335381032358439595374898578679388529047311957676770999671033883304120242868947486890477264735024365089441725911439898457572960047081547687615553583125869917571169354481058492136262849679671940136716880914086127413144687775199383535948968039414026253611213554513750648349838791968490884039563536177223745136967078742937269883855568223234636374789028756079053107482812454989089982763244990779259392117951205396541634365694498904826947147610850095585752117451369939823761774981285730439785241950013558626827400839534902827661271667926413205621662334141439679013593732982240418896543765316990824135027103776683411939837371828910030172050399090160311190879665142173062088036578987863584979001473329930296336485744436148308410310185603135933806006547588730012628304387989705287567799148910653543686847545621086625392477229587714100361042898576523897393895585955599891990301194985599860808113432112577948792193781597586238851295678999734640949606926541474129761357447667740940633665007366974840115808832288963302240683332808265472802129084197905534757924622597855290152497389213873643319142353010039390573232472745826763306659601378266881108651184723352598662402845707348180730611242867412633538275896622316326983621196234718029781914136231991363820765294796843314294921458932800716386293428092389039888956731668029219722326794876851521312378700461169708983061270150995619529690242556524797849866808177633667110415654186759520724996929188941242693985582974616431964630591062040904516732757852694252891788738396850426962621344162619944789687926439003791071690820933383156624881088948506995236834385743073141829658144453615791900130979183743755108254899237707060387498738090633986135884145467770573177648663727909559548309009609457849196240814292908065350834029918270745855843368566371434012478020763698777233206687948286395659776705164946741952238859302534443188834787002376890030713158241269395646945962861505737862386478460424016391870530216268189397998610154465544675575711375132609464965100162187550759639831369737476578577678083902230315909347228886642707944752068268212964492046482695817110615050467254814971740483671262539920570012017798655429622188705719715823224764457452016755573813606420547913300756582415385865742450851297359914953817728578732707056805605487932074462053076692334425609238409200856223502195779133764684352657431903428117307639909725153097960087252431621774490011739442158776693023156165650812964710155741219713627381289012776904233865301973046959144232929040446920772476431374972871496838358192736994740759905330536815937047856681348361904966586005371745112598780013322828505539301132843316856124042734816135213074707991044893446655289273461476651368163981518684268322500641253540140728901666573980732958084530761526773514667582372550981047437138727977191635533770393800305259625601703450053369803436290721270235435521253689796906044541520238019372235841205016911038649640071930077425853415997542670155250850782282375580152880678039228143923015830163020223613146607799193946838330862488641702753301606485284439153629524731110737644574782422560573080874658979823326910648448062667774245455747774159471395683801096150707594522859668509688858940171489355819555585846849338749923821631497403316400677273375221026369794373202841949007490653685027768511381984865729850602996738751165073564988069360182740040435178524386505720451054430960723367310147900675949767305877614515203449524959599497729620818660631451823365878372704504505678750998841228845789058271085628579437945886665983023011289990723957224934659499163531306741820036887204395278569687921750225842532155258896334683103902178972492152861455229558033685364278358267161488305282205415759569839990011159484548632554515271522594649437938918928726843925855895501998167295307132147869611512783307525983373253396251709206078793732187583240411859036839105569247961069908808503466374336599691157743189588515380953858383060166080975948289623529856899875630820254791749130400062690686200600855444019358954659031790777341453228372781254493264175570085444971459478869618846238219895040347903559156302239211858863946963656056694614724496010651806803085870790018754929956817088862360338823977096004274352576526124801982630634276922567993800944301981564991925218593087680173954230348340589655138551371751674272200883469724067361640305799090769809385318951041948669681355465373871698354025442259729695051818656014521121911340415024916052354942496255306398578316499310517558812091171684304397604928000660895234728988005549108960588527038075897264052309027505954353853287268696538948426628561631765756403310727984838077187093041667806808450280745736974621724799363052178399533331757935599225798247346270474708219190392814742193368051600852818284976670651233447381594644877663530542420462091946831270504489425930735030689667722516369350152454943482784179146071076323059967579458562786630755742764820342662800810221613463342777709837132177230712032298594683070820293077185493681930413100051504532544776055693962024977487836189496883153342833975402062796965185888474800678884541548238928433175972077256063458032565740943280488980429382478913815704796434466126758015032644056643623133183572375789306841987352565042100684208767162119668226519956571253756646413492450989720368202056470969253420958152646880060347608447951863087070257919841154426777480267503091447270662329259085079330440709494433688606611975803636323571081426867753092530827339693238071461523040185469829428004214763483361360839669217871240047453714302948311718162899779871934525752516293392060075413125302635785986120050472159442474571347862880557388523068438020017513399255348048673498768306729718631621076761942866258147107124460118780483857018079632185344570068102197729343100450984294315610290493886003878146871049105004859574164949128301367207039618730471614513517198486128323653113584745934810026303763794070352602249729541885231341646771364576122095556771944464561699632864417480565234694114661860853154561558405418842156226530381330656667792456376738421264093812310894044531694830939015253864388448238058172381515700287620254844857984812297338182489798780436663811087102618982540617548692652019330616222583110051122450065895606755903977780603120549322386957313375186939578980095491169815802880290823473234910771579355407440459367885338922732902076385644259204150543242020482908711015345583512934479828195500554001360870890201179808214033509327226585839128900473909907127072937241406501718305866301317793183157602948439146691770228238523907475198933655494459802662485372015451923989935557595947766935251148813219433172945384370131519444040084259203264298617294904968247898561240385007001526175144852529704613700028829302988880411501400347148172702589391704266417872010138883066974161723474849899077006370517299239563259856987086840075158759017936652159136849828805879507044900301783930036341033072802173199073587132224762164043990756538683834317161496849022307339026899847035664515283817357622633393941512067554516108715898392811315407992506652271596074577795301502752508226234712191243428354326919733028712497925769864663422371165979934706546633565694066576229268690899048443660709259185191374839968510825291009639942132702585543547937019662177873518025700084819845615722067238327395304424988718470174776938182162196286864618005940620110379360757118055124695863821125672073999595527437578670243478093688430137119157846213469365426948068359777303219203217283096349902329966901083020551946929453836779431222267039515721084574034192494383723312464917917070049883554450229138507670821127850743972593931971053021446086405444267985986233144848046007898054406872986983636184394836815059383689568677370487212962474331453949256774540041709008550977140658330495998421512374919277471191979120175320065385927450332819199912061567680107594130465795886635426102885101321546885477267752424492429388229634846596765154514194334029878692793923016936964095017751423945253915878940078187400429772093647267390850120063067721663095890322500541611805887487366294656896800466799513101069444330645305158807594265375297426684846199005238052536213293992933652147747489148999361118090874292211642844393620727207886340967395021247465584327378501106640599171468079953253431563108089451600817464508199666408554340598314910003440881038129234298735462750032943631582358646778995213381681298565057634354233410934288323115920379420619545857212494500247450166025105023433176993775654615169925975376512246245489124351580760825626892967632641145008537620351662801585183178873361918262286864713595905789588249071961358871535920009095417332566610031134302718104792831053566004790783528336871766297226648805597590658759987570186072444963352457828516632725540732042519668264299310446388401347683092600666385760001344635846812735206910655851727011299003129333246067971452944902219968376098584201813280843149042153806765400525696105893334145157427545743530205428630667276431352437372487847007242518973712046956742324065834915187854513649990006044764979058295999020725397634894541135999098519784959120105653427763394487808860637570568692964336708352296751417981561505768913637436587452408594315863028868963952495249170500877352234108224568129142224480128245566741909004456710942171656890150675197585304395839337418088635120965697898895962231728291896430660429960602549281528877867249445255700440813702421616366117562303730217067448734121081403742427674293857830326183913410530117494367904013391718115948239956107319766308662683472633469023658951326060243245044358776007189638746747862659099520354519299469137614156081730115530479621634136036473153202091577553153917236064289741917900551309182984397747076035299449290142600071571130479685680539136777150972652283884183242247377355675203065152333791366645524825695101193994775033198050694610801427121925196290495930579808179821690863651990966514302754530039325154326589998131634044630230987503074660200480416483331216764862789760104455121534693432716062844220012317937637109477025362137927292253609844408572782335663193835397465159751239164149200825764087133072534004179903413798737281832744322142171431859614115606726137156436397038976316764922743476637976223140295492279291294300858940407934000901023946247518325796981952388662277148472135431219561681431426363115314708483529827177395818490308727003856314096217856386228044478573053602311281487053643075068608396145813251888042727006369755244733253989089810779144490155863088829243451331104761662054617995756950774083350538593140159077097594996212447202415468621946040364585439572321466356302247089632192445795623400965911879837021376422339936714771868808594495031586098951424069029483744259241617288400382089260256827154285397835562420257453824536743940382639081794156782239688491045226642630697861853684912025687319659072708769633589245442344985163495911967950445030020206996650644092811592681760377724042357995565003064267448982357148153363254521674223088773301432478892270391564597730552947220336211462574665673790265345135973288635747381628234924865922912478046577276981879697986587938328234118362880283902942361492412785312557734238285484722814504548264552037920138818697206846310175456875918974939654919753509823412182396479890312984942154938728796117601705791557206002618639429534922719079198410459758855409170756433546734438929379646046988639025680927416292040527918124022890288710617894653587971774455156944574612991047513387814690020777708158194322880939641059948639797890394897882966480539763301039151041103767011585502708087979528582150447687434226591452115229347972365045289583930310145905021712737026298774459872421612126152609415202811313472994140703351243038774189996345909607990708287253497617525053217460683230525500687836606073253824829830456313215858935319809254800821539341370945609189690980589915886363648955372552310054908339733339308078808361479508699425971435743076735592415649513314918388047724158971416641908024641430655144328691188433034427551764733009696598829044094307826880096081504137914675304039638874865411091011028098238485669827843788716008235834826639251209125021513959755419760125810634481527039822644649034590660465751979374682101617243287492283891210270110563727438072202254206823442767199106442317071793938020585199695020726339000701488126386063838231241714516839862954541577478640386882554302718433363199308398208531137814402359711570666617952325413460328510195246476615071153019004242254614421295384765084265744501053431453954524741921480262655244698343467429673308194970686399842367494303866089365314852920266198898391092762501118870488026122655748170348398927391891186393055638864308415838175419086918291971933310112282752016983871312411395222613345025097315658382636315176867130654639702298804810521798698322857148750041137506939756493927556709730945058830116850054714807846237389454801784632487014075382743083806407011511973364050488059026427812022455591339141847915066978390245759662927996676947734730979282869804083469377544435587147488700286879612083665850483723421198296554704279872069235553002596170172668918392218797273428438333418600306893589002517233538847536559129238832349225530521005821389962442730896097704553243250309952785092562998933814285492666108439815961647299197463716822011795218259716470618320429238640263667759587130728733528828900520023307683680196404599627241561878334139348911232222565624783071105890419285308295058035373735835369087046027565669170106797827912323766563216321376153419535163268525283640777388795656724607086639049571790329614963263252775413225002077842558026135284476108872084427305034362333228652408463697701411456758121113476209927408020060224481109362029713931917044568191638639914198429472902275056071617747037196159813355277559592739364867107847795456979559280804224545609100711415921341569998777592478738678075979277012192152353243578020179969105096504138488009739609232168933200411789170340303250805885523362514151887351998547229863309984573777313870673194400864176859957360661607163524225177817260028060771961386777209069474126890965006856741510836846999892693392665314394164465873813563160097221047324405487106193892165993259031667723060465430493179010250505308623167874924743070792979930729565749161991540397853237478159479733296652727891319739423975643946070127966040930169809997737536298448988356753500995835002581563084737492738842937701978557700104611524735546146119048860074126785469967950269300927341503248065730377037422170985275333702051375289408670720521892928143226544670058895146545068574714804479334614751949222376373349231244664345933690335919098231552281203997784423151237366015556123252444251595610496739610548005100965839318152342388350355816891536425004590828456949650914494230028284278907961667803731728836266796172253579009863879907297744742143938384792868004523255359688320179273805021109273053733090666795654062202829861074354257125931231932083883269122047648333879538124604932144039252622581982590434548100073043584081562222002440979338011476353323439767449035755351462057680370835134001355821199392639222868417695002709878790095792420216768713752930648961571959822890933754124876567941288203109858147498000534118712047210195030653864659042743627568075427787458926116704774827227311724813382597367229850556295532636590442272529768841464446544646885629088525593713559145969026487511293059948434885571140585965216411223922971060571968094885792649177871364621926501599367958317097963727926717142016516005488664527744822532741443919396893816297299523323525715119131224692105671909124719808986117103775981206911108635432524866915520294646164308093859041983957602861686732490473234216854406919630259649403407133940597408947887868618131406907867552050844519530060501508053919312323742322019997953418028504010475962025916050963239176199030345069516437758393109011018810402484522476567951951893477088484992837014338896952305793119334894718864584859870346684488804590204371512097904557069910168124476528271824811767753535667889438395415748876920136397733016274714983527434784065504755093298807323274929427610576304370358085174598528456218156471129946289522818327663354959768016928258668987531249856426761923196636531581234065274571281655985362867113004150495766061543142584867629066623992264825035408886722038128191373990841020366842998673768630102678834519449523739045719663870345137400433726681821265433263318739095651979282607645747094387871887226770445231150815735152938572989522757531054302405495545195888879917740428659241603925682002020613963537428912060439738154577317817412307092495759777557193478326164505564294469985717332378344928963438512846679416564797017074943721460892534214550559411516093111385947556170077742012036727196804744339665737453693083442762257345425420244456984383320850585446165706373632445816553073291669084185799960045222997359400930818171483201191640034594417349507358847927413516407512411355573423143609932745403396637896681169221167977905170125377064856632397891721640672336910197902687376124660378781794196924029558129127093598771105822330825836601250185346167291391285329786652701879783414802269305557785647941600197028480362143965454763656567900468641364075284559529463475976899486527080797664075564196276426620676326443045674222706187230997795550708089952840250082134990438614246193507993669334601797588714449862592862764627919525554199006188176299249065137971955616321743309810327770229072787655957023578973013858381297646189968685955438055355868388558127774456593670952753037488928678258705744086839003639647540461403474646149304253048114788461510213810105653603511463993677131109365702455019782063891340883376607997909165436750042555387582376179597004683958830976573557592227478712224840289364415590229069373191689186116545167824663978845378001508986738057870174274815207824910303972324814072236434917878780087298164432493463441083989913869640466982590008990619578546755137293054080157765534772448520417594191141291823869081717219226316953624128682190673024342085544969839693913191614610073636610487090967778987485114924900483512767000116291787597762582221816290450361335282781816816626117141220516235030140036861906334555442919619976013514418263809475586026469989273282033104771119959287071683437815009293808824377731433834975461599325169420063959047740929922406015074337189708423106893482673513013327869308366599621399969567227628658037800286252028142719298583082302969108165068803618275854567535845193893274235939513166940667218642199349287088838615527536400535221846281312515819227194201999776662952162797987251286438495763472921015831603799240208193321508586353290879947890395432534142243607826870914399686200778661550588407969796988821005943577718292540638506353787516911255266239333367304551917385190592120763372562868377654199285346706500912793290708543224215719135781402479234416486014620366220228021368780594389499086618797605988636428392685348744725901790576554282644137537651189219227681936300454388652476575765385692867830173838848146568747012073236906700547290341638744185428507853765776196049840812146019342357348809089198467596017944178445485946274447091601617509320290701791460089163060179670599694388665484389396928532807552005513346196730403006583491194258069317401806551970943987611193424968390105160753585414201662013174317362232715847006516575123698580089362841752358255357113869486964291498858523908298079291109901241455846563914105333801797507332907759151256499211212025547637794235816308383174350267684433761850366716559892701657927972537196941594867821224466776599570898060827508561210559405420716765438991094134200121610683898331576082034426445378619574077215559407362293419064618170140275591008090738009341150844269012004118572551544386015424181566084372775666253327772644363119189534306408068321598590122225033473069117385621035026279453357867832863120045485911034943360457373134360066926024492575850980077210720748358307033348785424844434391235571708922702184330001358958927610336468625661316788142578019246105885611097923081640121347467111810163878930457781707075793142254786698645149955210858656785664074131605107351191714279146781056180315753011128666594819027013753516604522435218163151017141061686985651455503129704903677452475864420628574217730300643028663886236317455572179701636502788247404667616069223982805983890431479665841172688380341601717022378832910933908394733779747947577322368416380315187972918430494731493023300742000083578123715765131895279370206698871918041769198583227084231508452566644082987801900872732153179278307939086680797465931243344018653421249487513550897141613497623483566908021818230995487885215521569949422894608643803039811188589790695341762219655867900569847672349674356240013531136152552401060779333377331664971090590884880715311785433777025809063756822624034834570493829603965258175750798734942709256782984700436466944801597538450445054859330883180653508286516342615307837566005902646779554142242826484310814789047858187102292485775773724360729030358165272632391477069801686919654985851925178547937109602444577636321610106228664320725882369863280456959137386813928682850147961156225292521681741386465632021840893846041570439043220907005241266453294389685211744492159490534097664117694531882767398997202518521063608617908194817989562291073928006198019479199924238235111798712425722129548522602994754661924634808811362814970687950615812856860363258553264229634751649775004928372975943311721127714234005454013154558746833307397592790014351875246463075928592431430008267755865981765982754660525312553257041008511716812109169257395860748805073715292835984120160916264673572491001020931486955411727298600861547765009397376199400185079959952989657298446323621526616895391779710895105186219973173809100193577261491169443210049808908666747550844680850528214258191412602187207623116648638789495312514131837952987642507663443671899400808272636752617667906754002699744067271742646992972400613001384474862394431067806199018872419104514723537148760127133316647929132627978804786829578634894024287875085309892944809047240564519563038844931419733540740850862963937433577009684729789411520731035270948963815525019030096385000163288409517861956287727908640424419691350646719322392642461218911355577042595300257664014509762691561684209118185427165931425304802600514861173886564614227805647430777860914258953923474591425983793360464418264445623512443481219598528528279171576910906385342230513772319775231700376905906899690955871387405120893389307506951183098896548760039018470540485862895500882873600486630335753188530955828258357590489108880196238297520091056802892331479638757910208301401198989701195129508259352031978237370136394920439993579607581548121786902437385987341820631677952412965022347470900828029239566894943090720503705056160421073879318571278597764423282919393757355130218075771571027533920668036011108149919386390090756459297160333082716322424254874216557357474425082234075294505821801783140219885954133255131318441198585570338068583018043801782438796539017877002012576482993431745680329953782089005409847204093662131914939616328314239611241484613975008594860412366862975770981435108431618303971778368220746130402118259446303571278488289402032124505348115628700553911305290190752280748149592776159517765279739704554587390547237496430055618757389959081048412831508284555742731119579979400315812821354522491584464088155186843949797644873300150201053838113102683875348971150219342940965877629322012285466799901499058034450347099003066994769727914459004544874947185671214140954941459448916513572382076080276963140956507209520273739049191847525187165712510618236546168284044970689322173429856702677899504022147820666619406752278787448809224788641016388544077295344096600032729246072040684422807672035042522581684159781697291585979617362610149102245402859609618665280558311334597952554216724044294498978333546610040517174041875708574310742873262160653728678198117642154592534659338404553921152912789931588836019682244573500712407278519000721276349345990021778410906132495044205113459540365012870842984674772256436024998296260835359197699479487650852755264920007645409729703527438437807108838868504124598926842816288330998868473544180453169255871980521201363876622709045079127302343169993721580298307999588500575597257983754894480593607554982534458202782974453362002969867148182572627795157499927680544758475520887913102542367306856062112733124600850894906766625892271106738510899363710873590719639505085978683482572847810819649430629068553362214824264018402984448178664851309385621963722917903131135150316284205257949875456923955802827017542593065497323709431306977917055657394306477912499138831219177583306946583145221616065576943300682323547473137839008384975103482166658486658555501700993480337595067605751763353982869648802738239297463368298899688902980593619857272929845670003641526923209483412466044302845115322648913636342636698344916033628707717250298385255145835660277385549289422931168745746951232785623181322690941169332208422815052770229441958827119856387178490407434994077534734586340075025715356267919993844915568359952701268484322243612212753114606522071796063145731205590538021847970727079536322693045242969222890413055297978861498950531191421151418250860004714677770435848447938722954253212733309556970199649330421524746868144017739396182744386978863173471096743971306391918443659027179589324970517623546760196497892455389602747275277271066407914200426740207915470703870751316224609997005082169969620558121131057249639751492860913043861123925260767461486001744106225790613719903044372070548864096116721608409289784887711445592637055083045557064520449802243772975768073394222430299905226414550164083525905307290389757665949648725730131642092672949067104141507506976028331408389041558634193993478951228113239301739884483297834514299920219462371529020575773208300268978626945802648766805964964745344697146453471980047020707248077485525173865721468673399953073588551129643549893584875993113078546481476716259845360647328328184887305702171589944503968674854811004455378468198017837914729430649571318010618691681799349498219276325539290602671174924126379927385597870113897482346587231128533793142756040821060476161037921747382464692422742576158441708795008781029040399228166280418519610149417795317708086174829566841387497402869861434462418949154119091657611854185806245960595704905086191678709288688486153569686544629017368940903299135726611096342817792472317619710660740747855676738510812742746224489769624284697695445183024058239096785825927847942851927967529830444439219918995075842964202478406587719272531203969327540746732814997424713388732596635047587398579226262460054733372750064481620961240427235555837151334144853318983569088723419823146045964957019447443462236426358095176358806396164352611446163034085840896615372549084311402177450558658091482496114698586145199813821181686576298495752934406621467577897165255604017165641493562021410648597359721952007553158917625641542124694150030185017311262934598532937800282293296342371574331011401501719768398114585670023677635938065366731949028520557876131825255404481351292865489903385332071223829870700713656895539663928962722925777124282064599770842603705043035137187355387347951882949307859858484744295693772889142148193376966243075561127083772922276999003177435624067554275918529630659127912595890521078802001309156937004986412575505386205820934859787721400624413474007738507484083392155240960366219425735238679209200197398568614391438694236842021484355878423426729301180081270997417810227636715949849823947450076799043258499635301934099289795876525613348063383997320792348631230861654414165617018483335179883910970446620395693979762212373563710584695720245002437847677693076836732794212170385316136064263855888750145199743514829417389343962134491244086400530081240287085967627469215174291168095045863516382487014543560129151153580021740253540463523839393817146791378031121253292984413308221652858822754627414237968166878741169362383933096794533558805203899001823649659052274191871107742163659279923811009663237450149810944616049408240236560814494117111806931574076274790316715355102041465443732336579416784821698526547919810930867960932266899347197212120910497574429842926720629503493404314824762855511749395898772093228689005104602782001911820073684366100756023847707334489810765915092527952999131059002938424198040490463942496428057381575121448685930442680455332223743117342924488448036696907689252175052270118581047977903106299988199528140127883677451949163278238474846799193115896487330826710577478048204584231344171243714110921037550711775305009966700780727916821606003140874914878035755740939614559099966981417266615015402159984168987968605026173910181684373234585392098567639242680197042316593085222713593574446562133905751939632152322121451928363487898218190229624478760386715379563839326006370257748238244032416719265967438055326120282137052585383775058337522492646133486678682629120819799185551573262040481787140342532334474840814352745887193064649877277612318705757550684101645649092685131813896535525884740506846336556784835834231767261216121614743435240370356917521528609895620257888185128812226689489437089798531389943167131514994989957178654293420459582304160273608897804427662056594980685928712498213032036107607687817519125078657796644203511546613002429001031140581565417643518622586516059813567720984771112290047585924288985429576521102631706817328545537450206443900317084908722035844131789348983079284634959385481909152329288153791318993583040754330983485858700317772003657791787518051841619969842974148252424978653660350737170436979846877887583131316361364454630108863920528132698009538298768628510290335452066233233737395169999549645442527178657891736835189722663634189473172272870049283618726937666228758215180063660491485452298092092026289017135534545729052415643797783570206379700512391988831691004059931132984276289126810504391754733895460899872129762044303823984139583236849648869787372152562701866993416515679802413438948576587347874467721847181675879813077739390631837639876099934827018961654877998171386360866429272486638218231623321985580059013128533586905640651970708559492012485497347140604158547397830589580932162604153061096944150518830044972853444626663726609855389141541262715708013685588050803341686814050256087985447866546826028055684385470746059379980049523003308095531213101981168569221436725810348447057526075919184128677293184934701083132279812860635454500916857402852627073434258359170436504536237343097341895423102211165346666157217028084438568637338200426401233867497654716992600297834789351214423800025277426570230604067848770888709398443817738547368602560254668498389023492655881798487632138290258047243082503571225322013690812436753523581724292166258743534466286150233482043847757412478743123886869864287395208717604086281703570755720533897633156581926583181377534926543021301305858846287795383516952831992637188727718360169780507389832743379684656505839625781345430924929223242530007298659546389194746828306122401731766621245065088125670545885178436676304784159404494166635509632068282600026699158676918531549271382899471069511557933581030250876100183578398000623727853839852722498006758199316630170645880505958245016021414103752377094900478915360068595146676406450840817781867382092232016332697145441195579317086629564737635085030552049533595077029417643563083983815000392081294188895271252203597133156161111921947336761993776681076095212075805908213677695989749184730427415033519878611672375151522639686916620990401459990823457217094437720210517335207874667635778355683794102522929550696071669379003327479943913880776776913439379968121277200591621898352847651033882415023532513230206328075890919074970984272387146526378742410499144335518865226851974730418981562075102014574981181992049088452968784285556462838900352827314704175392245909643536767188068529878394532507081842061010491867197687043212853933230430428916524852951404300584990771030680591942547753168846618693972068893346190106801916704473524452707907305208938645837088099964254408751760415243541464995699815131446612639319821221462345507032454964937058702019730501928249960681789547868849943693196735671309129376257175416557077495221275760830664620987722184836357397113257232063128116684392449386261491057740624721800698012680538237282282230906284158444060328782483838381205824832289551374928550021374133586829463000747382588356821098450160171734956606900719533923416788221123910555202583850130141685178965735393424219937183940040886450640371980193519475528679483788992237456240692655646752932203788047513307287187705071039443043351607292204619138639799644137902129434804351349745509616875145700210660765337336819105332998526678649229109320782757825098564468469255940393900903089368572057097663795205736138359675369506282232359534484433517355411557554440451102278776028921443075336188301682566742550464613356608924351712222612320048711190385114446481093255563666301155750489156387460884929434035397946733487686633767608052078001748083342814530026632579588127612541481042639503705303818408064441855827264358003523944307745356161956783726285860656222759745220043510833575874980939420822641545256807940162674994867306306478082357021629259608649093155327474559026126287178000090638830451197433721673857562421945769093619241683624315086120611373104302125551467703735468731947714193651553368980609194955948199531802592218570947048239792795412026017975459642821485186906457304860384953553860548706417738805750343613180031049153224715938424195713856550000129522951504407799213535418972150574534224433650199448133159988130089214685032125304342376948561060320109722069335239250076511671276891143944205448517668783084358111957340682292422907866758738087386475688444807089183317841039794429613339061031819285547246975717069091880119366905486838642486919812742076614418633995295826358175529679407653300796936708039379898833514530391590835037752862904700375687456558302446304341884786384279575745966752090891306818706737649699666372120777378015907439092064132070611745937469531895170337606479145405236546059056897743338712026383230966546509559381331693058481186561276355125047554325476835801948953730895220755718634979315172020320292084854735140205339352209001927134098688800387446512011030590600089888079590724396411080559815404603407836475315585214063160306106501460649606635950801089760903908046227848264650615245387019358665896277295363345525718855144813994311466244300582356740572992580410030784204743688770689954287005342487642419516080528178556107282601306707409421900914202551678236061658991689795815512511097234431602741631329092550132980836807087156469884532967353552826930039666237504978455602333587286380651828742854853294391244870577115387632323571932142855608604867783876715436063285429080074625452595735091153441618661917339177052564076592107831681278809996294384633580888536511346125928286537361930026698779937099570129294626781971702683555161893019109317765869589737086501851429945886719752394988281962708074967748272448188392570823473523631322641544653915157793058873548816733040204505993400074310058807848240702700599734908518439494289418207966452800605335316123456589186123931979744965445089309376324766386431844315751988137904704828027722361785425686726358058754603987400319887608233011022982199348409453289892423145913991027198078626403793314910694785746033780601235213743059216177051399819737394335572353074095052726897513396483313727542521419753224601427059155477817047290025660974774867402878128393814291168164991358061647615895371426375216894818946465362455305560219167382205131552676781204703104573068161655997378891704413090007479528006927401313934506188161834860006254909076495482880161414555393257286254633271553288029100250208052033798381997423143389912526718585794362752544880599111485609500952481883896768144898279828650304645809465848040847077032548102640292258530651576029474377107014865171279103838995222313468942201892281434714241230410885727544115680007180394517264448992943176221400898357275017414459798983553343510065454346414785733604510027537726792278758212788418277202978304296736066140878889919961693538960150381201363576130491188712267944337746053028413261556379100259737567061629155139893173315173035533546915941620788324855455687073284594817762405033013036781393952155079527615222900413931419510707430412371020235042263348574378128088300924394778791652908866150732220324088865531271678225999927029479123207438368615161061194973690321496123486658008102657915572982145094148957326745379044049097714774178036867939347971129663549661185359433115339702835786853942107849961203523832373100865924615533416731453354246576274657808861722159946689720622801628582533159401956425966994081670723491450715421663554499924571169321989003027215119837406064297089029825104857234672675366338616935937846887942786173305198178420508178124513148372992592512873230566758989530268157683853907859494567847928819827318547663351490921656659051146748010943748005437230984098960167589306737806331026361389689247661126892475843154525493213865488730558034830175352960544210516683085989637907547973138933439461365781728141545696384961313148240443644474130686883697126011681990748920218858983265679306882836548472799417444015800628044331670494439913785843033616102164070994089233417282855615877426005533404279418714652208276995813436320440170790605488856147547138783448744083066889285654263266909960004747916867389433528432357047535259888313027400181344080073486735179643843569033903576689873318651612571879815822189260126101128107883193323294262934488061842277604772773099531159842782174209726907636905513231792440682171377988762207317631993993911080620725250602235490921720063583483582384200781116243002889079922307434041461144526230013818252634491696405190884607249855696092204395554710480410747921256547938860536620005770604017685437637758250215943882218432978551668095173036984108644552996732234260359395270578210140539985691417509019897880009817431088229133233523877511293876495050847156818878300378386779029892060668308286262300300564756873340749755222680783820103530862158180339258950387949665044043712646035611278629869881419639704586896114729326053798200557303248001565878153354819132322331279547595717603723746362686422302844863868781019018765466841313717048181906339138223015494077367450852241792499100198990005155032353920571873641597747536479672051108667559439359726108512173358690147157454984452584627510287115549469812579564238653036956324063336608531143341464011953902729584490943400314019429053627889816095913281185360808274021801123206059562838110322230479450588042220000689683159243605887169116464091818173148378372935439988055216169029826146816879874070308462316293853236622603697069527675095456138791001357291427855027445816824421400152819592544122935988158169606466570799112451937356519957716226993187159809075301426756429210258292322764574365021004622629765843153469197443146125338665989802815625165126493772438515863573373993528088895216935381110771028570773689548240515525713965199316666650272343092919729239298280516740451814457112282265795596109625347108661641272773826482086845326338560663450075728406126160544304456096590717050972374296426823034388207774210415279483166945961362482540274331758362301522152352668494093353072218940292756930148575110511236783622977567996108170480280075854372304755613784669559527462488365094209815896796264356647501793727710953122944284730316925410131936088289184188293852355128193759784678524683144439810513947909777335158433401978594076319523594751860166110073267703173302618750078336077099700076622353935113973812565259479904381752009732866058898056594701045130555170088155305454857185195380746314376985593469252036075576575295080150292789725736043444175434512270855024682113734879825266637559873092424342928401723706985704702961431178160747984733897246365209788847706146244938235411254467473146727481258393540833152350053555141525680843890748772631634467781546485950731240155261061201147466375981922056298103653733199437883050220543281110038191860656171651941196521648752709174454853356204882748948784696538504764801982487814045828791376220569370665504168656452592192816973512428394580250673598849194286092935872216218377177890562507077026862953906473795553395607617809449494105487048425255016359124542264996438620969319841222247307793532830076696878902931329175858659203205273956561237681481206868257175857226922768506738596705930690411614050499589872131416259906045787897566705894742174728816406942584362603017365122425391407741393268100654356486783466173171572613341644856049196376728399643947363798164593511554576867719465583130028839369027072823221988915961729318607148345713607692987351257731667421903948271146409144671391903761622468996335642900164756674071767793181434629040083149347318325769480152649205463630742385721448465672066094497388308664715960226551164530582452606692054210097587231921193029620396191109838969804799188231608319226452482421376450325154212057530632790459595539545953122285788300751758475652509272060448740167026946306642789132405478934657678323315387138519735973076769578635486622868817973943189079728427366162094554176434829370477799628803131007306727633559600575963692968847384357553798997557745946020866627291612685876738354488189061237358144121719595891712297341494696787650675858214805235751908193643384806559161817089397053157377825947294827802809216459781407429573221900805820361441619073707152696235081377635935623718996404641369123936019409816672278629614027346278185200996124977775861038635708323239303881343911069180035295244138698625223322797451732218320808394148798056835730442881337795731578040067414110494629968135336939719620013870143220315860678782517467907476267570057852449488272612892694434328687725621179140785011445105323315970614780631410381926062975914167341407669644435921709343909836640966464075051180511572605454794917630609171288844721235426058558164664854975114243478017065699851688255943552290655895793454373165841362551524595411918847854159407834775235193443510283124628611826554671155883252742010303818103368938839472470358909072630695550005473457633125843098399202083076933489347105415578174091321095024405951435616565507313810687901279166722500095821560506052946726275824625035243750505426816059670351829916092586550660060103230101698867129744689801178023409383645850611998907751659583659676540923834626110744744629546481918022205082288936645192515768133034486370080553784328520330106374915820750710953490598492751890859912934772482652659431691899766129474272540192897029968118162461060539713939391184548617725359111917698262677570485818207508363464214419830351236378366223392419532201130787766075724018029940966355623660843435525588818826086467094500809153499049878587050587053297059980708258843113798534699663567448552872987328649102021404298185070035254033115094108758313130554077590963828973497284729167504514809096100291126043362766207444401566253447458069053351996406169383550566874109235950738794781516297722507950489170718627184325676564682270268591527984890572652754369773964831549917228169183312090667873744323652557763459908409767741257200601790387911133178583717113194828010461609074145439787501548396788154798761619276697479715651984618604162605031715019481412493156213608096924660183688370554560513434662157694314139289294212624325296037753268617384997255232774577469634696436279343505358826184974024235074550760065289891470509552497517235640254189948535972686025099350353980928095167424393405738370877034615704928209822336682927659604126990370367387543074603976643189341150159724310378152095926907322751213445574843632811904778607745185388014331700071041639378877060955211366215888525280121975724511843675513667318224566442245226737227604596066713801142592032172580821207309666746354209831411655119074996947467366922045606374177493924831043381623628658642164875711872743627261012611053822736192769173908170327722278368652350274350404896271149869545385529418108930497934787229350286912853207362573655113933773597375151287354506109596739403042052830278326997627486768060827277379224723843060959977103233929479742086714891478835305162249774548647815625437429121950165787410336674824618614863324430014888740719200214961664532119264470224392615887079378568303080483861061243021344451204383662748879666877290021843115415559565988730400723513006761441235068313878807048834568130989875308068053241799514576779662782657305026304375126132935987087677777664429011043012476248485931004862084318242517108060200418174421015071437756153199447999585554894508977092451678743500461472359709833261565451792011510967906617666265334043234984790541252153620899436897626614423053375426400256686779962932076700826788199522772612794624030472961750742806057638284294900444751374991845621427509423588788252403653895004885752460889874682929893181269159036114100535532776330281544617349847180583469867746891179722913391082766958711990464071773446617406129960373594875869071555326071808841064629595606933889781848448727481783541234156693726756982299423543174657006289228712044295805897541542610740813069604348402004261934252878169042912694261236074952720062595332903799113030252052442309576699012068182539035618879350495302072007511734174242871975885246890332327634975639390395745926119989746353456877098071552655748035527930188466402227662206158577343263550468905930322400996715005018188026578416615619897461322950676293757370295435385429070830042308345817360617456568571706879552918780016214821794355038277271692432071804289496925506961741993742328149347259319000297261693664493539356840600122798713384165402017331095271864898586117603168239514099384090998172125802071169721301363071233623121244540450921318118504463296126166179726180228314250138775513301882515703714618171374880518970023782486403358080732169862412689147679563967771974402499016689218830970632179496887121640733746582322431441748282829751730091767360137544450080835793647601174984456459477163240165300854638817322195728436348638010981153328644934857420070092549856454348194918618682795760035079336773273100541292247850645728752595825855355359252092270884786704985806011280071681234915108240429736099108024964272381461090152838705519104738262097347931659693942226135839069848771008035342721336235530493044425420382090429000246805483385967629689089013620030556880755516244460045643718602251178889104259644207523741140565379319756435154152302376301078523533291690648057454629991736578917053958617297377920022958840722496163135071050571259665413442556392872551127772431925280090946308094192999080414955472943639348711956816998014116415274782795215832003551429916981239111021070769224457865395009410093054474059527532309125430152707372533446509281470616572595146372212680085254265538262728205232005172264336520439275383222408754155724780842439106847445084461795518698397823253190639241993578425366208585319394538270271214229001319805073435417277888903339206819658122818637978705488255544004267721940564565183558797783343381939848656213230353949863047297506916581317699575810576208731929189726774379588271000026877670680434642744140592573142699952853829946068180799442395285659417886950085747450725641028111504494352007446865984404832500350255119213310015043945282811855256975763356197018958829669198311515572709325642387907741071624939752201261758273508013263369150831163665989755234344005715954363397606406894864699501625611958305790137581914926362023056689839789096764055071441719833841054036513810188627269449967206146754478497064391618366892036690252703325838735503909898557587020038079146082933627645506758601198228540116348686517379728494995580950917098434169102750537228865077218271567918723207165997678526377220765705417177966458379030909384708679126972103748381534756113871906466313742897272465484621116100565835869333606423160709295420405828917768390919240987163783730180937949221049329342830651496391606524600800575745789793491408199246417215097864979410649275002987035165240773780450133960434130614061306134938178209514992274191534693861921364833643294179744231732572786779130457534977900410011663280809099573813398131426681783305385779424408655353864230318098166597517703119264232594793823981733884592772819201792363856037157166947993276726703494374567273739159149302212532602433193153977794203318928230204355992406936412290948769558542666875356883516141503947404639602124807752289865296503403100578709217785802596541205390513732816808631285116168465113869692458080709793814742079620671994769934293766598136940434322937900614342851388734362799374437573465287897388919130680324900034084224334175345693878563782341960276351166756277247629343768234316281101322504931731850972106882725246839270482155567523138123438213823854834545700062200839435689013947774214775255426562211796663760527022380270712217433652607687459529555181887125167464150372417122701566346058193522744076595796681420279662927366879382118703635375341902132658372875032757350477244214343868434155296178485544098349716240565640458255600802899768303871410952170856188395348713417013786241086811351111343313941805879731171898912984311772888955296554929131579141818770069169775786847896102190116169064052332812247046319113165551786754702843990051992025507980109714888136900399569050210778448934677054737240541730197746327883045530619383697839386910444870551744337217467590663317747980638647964756555885837216823657740567888199569421401846054363652315075827062259359029599834399952763732202903868785343489978604595120515945657495486889374731926255508787126575207111040374003992899784840613554451791073205782767519476430899409531557108407268516567278619155293782650106238024828871967675560101551083687762212144283325129471112722007914301026776830911285917884509768415869425976928769546486501550475110991450157632835747251294230764797807066487133811954892052180635132638882136151625534175091029313040873232513367399624105878321971756462268037430166627939308926221471735319264122979175706393144579802366703645231971795009486624730282253981822284177425685943365531191076216965920753070596379328511712184697814545520262031117632635922470075474949259034507211211269806418714932967345982820614101782093099618013078134058456632028740097903682483566920190567410801861537187142728260149147966399295354856830617160365380298729944395528885602916413542663176577213439400420854009597180114458773015693295662356269343963926527892129812693564036586464148121009301978036136412391261277001956223930507171423129618103428124238075545929861271577311332120763842759429414865967391771641089788400559892974548190006008681800428139831200771601812045869639576696094379084696074227438960692240726410262360813422963089351083044485885691504045269493675516353534941301164503228934611105884091001150230223441420927593115999799659551644980563402276263684378733772776788968044959039954989427065585481035980201124351529148650262739016349581723791006754875406020366671773059386667623744013745424539891203992144875161368765837038170752382823567985665256407169223486199088277619089379040152528381027872916972669427764013926799097605206848442642253470009461891325920904137709111443018352714570968758243710551054836724836691158693767549746989563903041359724296504508748636297728258877089770409313316132193909416023784819573101929920518123736976448152379117132652961291707199914604626873363644634305615092135279419354807093141961071436667824407905906778509774343232015282468309937923333207222719368685866838374173446945040900565718194498141066569705953330122534033330483261376908259188832539271411080110480739952404953487329148202508086927808380177994512466359530520663639811973071541572992482673117056942479861487981167327880505350453550706525586797054307674858567988688437398581172687552606330679609335014410611605783035935351882648358888250477054714007230908320597026164897119748924362856338021163282644482408606797989930071109585812136431012129450150189531250458157489368187637739913842999940016583375062698608197402600924713861343600882014907687492768431783648398850755703698759756773665621765444804649911800194964384390196971879143828163553758311176830961557099370316448186756631557276205123250407062785923668671448123195851256453458348497533968194590164001707959152530593324313248211871524396714700524422815183456211471187611618427894876884983484329605577150502568465379445587525776994293694891169491477424020494559762576243926223593312739741435525904822428764783990081216873305995955023923335973203660305659627909202647749656525583468609319245154189764920495904327450367459564094232106062415606028670476733597365471372810385080572188346538801090594396263214926122144858866556019174141321108641577584768534077794370146424731583975898441859248476625578684589953137357098993514529721429875826250178331454233325281594626668777375600680073044598747540097256075134392184165434604782609614964914357071180859026493759265390226214304206328637469204278819146576330506596110579204505591827432160450940010143507117672819973139118528286976370807379152070474416660984722268851466569446223880902866497169887931249055622193388347171326036136556083493155578964957372514299485487236033030203467589557642598273817738435523462980332417054231462227203041636220135017298600874472057586274740614346548190026835162361837299471750476292792791958691802780721715746513594428966697218211542044106007081388453853783381049431406512161788049211152185501120658389048328757872326213889259686631564682789960835422718895865798397601243134954983461073157906713403005641871630123515986460092243056949908789382302145395568605661934421253789334363087229914205199901813977493820082834074512084197841748480406720185461570744289095773383449026424322892270521244444771503497513366138109771838595452825319993355800955605703537831308925480438576317629206927205272658995477184640355009423399388865179044868223861239967667162889852660300233273622441485493939372991655197329102009018731886259945258987825249852158955288606608771898312362159888932406248073466411157937823322154535935336228043518638017117785724458037341489959190616899382073164977750671125331822122487503783519898045379767341671535144968948893279604429323807948660551746776838078471509590854880453824509368462494507896304663342447406370938423922074011181596980140583997941145195241853204178084304655477553410945985315360759041032635804764728645315366696952100554921885394468093400830175244468397714447538007886717071764575901359342331848308017843738168103648855471600393898392096289421459197289944613508038590519218209549132639170047423727176142409287920970553022449252156270241954079111797302478050860844433044299076742366451262433283123361279642381200602856364950794867020803989535279593683998733132100951440081831406667105870573842190810563112572416736903373317964834084565614774796220687864778479149361170717546249591933692089478867958755816316781973625833211824216190897924686293690560623525440153512517233922393728356978971222422238239070803441059451912120724989685634291395133536939052633331581829461385500830939979135753276361221895240193640426602862768307666621247969643366395479527059105263602455232587377560996821519749409919780733703229913529856611573228030349470677963103547453286878064302585464164833718747647419215310696345113970848534578112451119201149421528786005839956055088347584520853068801209936688883235324360167968490455862445701230074716008215957985704556540796309014122790655051281479480673544694992280077487037314402630468599496248580181107460659445531465191955657110682532857445179088475926737179209104239736095334864349761450683048678462420563287784178604917807403940940828027454799299619009352675369473344824942829321096017102040865720498638761292599941986511326733847523231306149755551910025266018069446398556885138842580264497895000006904148574154845020922249415967350587093021264262588038504296989811605212660827468218685190862451639429863536228776787602459144533739151102298755836117078167375641045507679456438619274213832063491725192146646481355848701954832337442895351107680981080792873878399419621986741560348293679327555581407796821124598729858060228051131500343864506103093599321824150317820046987665456968525119834195002369823657756678293688068221280049846688329941475962485453242432518537915646760081546336303652870137488647599067447667306474349316892420212540159622779551590269797111750858628863686652007027021620720318044143073098138557046826777033398958606956152223384124843280802137087707430863223919396211604549894918332619978084712638617912617230605861385676944005056864788387478554913399260071971093043198848996058018387137080864294212458242159782704981843327354551711048862836125774776533788910984857286103189965336894768557508279183203333252509317056498372233415715391448256039688017777318931680190225662575797916986658206370389797789288835119067703567479341339980860435934285867997440315552751821420987491732723600308159530783007633358555613035818540711631556687329664058575175102673485528013308083819654641725281165248304113410622650130790306263598846759874116971499480110440978205095259630065813001043668357421213768572139877854430534135109972065914519638489377303895053524993830427485588210087656385004855602630774785761744766373185874592594686693534942108982202461586307358816289932553339921015482040421934493212322910292568133891011643381005364627305663782984434856159848316722529826278551474239785366667825180655762175674541362468217122943922532176280680506318761751983711578788081874866447900634085797770062978302232200962006139743042823660627427015325596903979693999726737055641411913729338230533825241252857482857231307635244890630538315738959105419262450774590126883420130886554209634731095667509736110957530971525204387397636888206230145580127696393394172113790394790480156387786089957100950197544367846503885537844210215224514496600525704129140328307684396046180992127566981122429647495223210427131613891647059697688693430542174063540823545276591628990519145911540852338596954563605568059795780069811796874448696459448780611897095825474676083452227315032446814803632956719986707055616279138816147880765122617703544641900625534615304553300375763351088124195741674909544762685609106763938277498948067577522655739427763270744972068287336607390711854614764295311715964459517504645184539604333653755234310555195006376478175136263743923350953554962819726660648756553731383564434282264886578297407573776185237612766868408258482968959547635356991182201871485434455655384596538565842573127131069400031624388880353887412220788358865839971406848773926253185865846401607742057178998502124923841027817595374243186052196925588747749261775292002268364481715171630809602695999933842119961358448878616692497593025928275202846560662553949993097398146180756995120298274952748028212969898225332045032863775052342508209743257414044263774816780707233600600308333117551899757160430344032061333238976236159772371828202157265526012155001065822500399579612697919157353672545317224937193087987456674055935578113546872376760116750970161447523470227410500395589201979546656393134303438533898490221285404678856966054637813400533151393652869160775938486583169605301879460145827769609263126088080597415747487396129832185043464638610025945215047125724373916021128948574999764787893844093699159187719143102236874304616412377675069200431868104335677140617360667470325819514031371863206868902580452824755148588901884707375293570758932046951465135203917391793066404181674765802227392044139217630772057095427436744293051029022770536545032435558826900634762964499906513284338927928376414209583002873303184624529278185934071445326362190463680130698349341902155121069722021046217322623117564158389357341258406739426240427984030528471991540813776964530253228693445078942084203753107037395067017454368925919973087008545538303863285973208404987095158640590226346601541297880107112765409743813799390314882161660647863187797648609138590157404315903472062841909273849245283312487799518040551029241777841710474459352243837885478191777032363204785464391507049151948043819927559694395753243972912099548425400025087170900492240150231778067923332961965864630138099222887104962369733560713100500723251421257349210195004102185376013930600013930932524553415220854175503778970232451496401534529003113737582380621118967049068745414039685553705560078622523056921560556773481708639127329606703779265012862135069053979134511424331917488040067327524245698762938709504017934777532903010931081229599368654568814662529161966156359007106561472578639976290550428070322512697391564031093933358395749343332058115406877029959900055923587700926609585211854538559424501535779279136798603740268620735359301331985584131924734407462072905805419299859939086627539554715799158546443723239788883448639948556813044033205449864827364599841068241358106409566418976489735008759364420768391913739043394165641899624999942439828539767154851623759642144734514582415581537629890941656556453422074384056795473102517072372141537398672483741885711026723820002748016160225546366834203606339718176940447540308794733279373610765415558417405992839845588443318334230611289949146375755580310041277930999223310416162377809347463850962547164517321872847553082675383837530782906620321408227706354466213882758716077434775425572174455310564462045245502521899518736719282359648725316053720703174494042539658237614352621854862965772920527872215301741958959583463051946431114305878449859752381735829750183033131162464664789998363032481863803884651975176824349228697765110761581947140743173555365426844639368021646159598662110275281891028944908213880488195785860443642097894770460139949534883028065758850732411719724026831637629014541825807794625616846871968661826407772720761425536683250575973813238525844755333740919711719745923191994134921977155663078796935741674391430656722750660362797434157351870859034133031907070856942645015362346579909691638929527442664857264972265484536826321908131394557156712605876867237951679562966230348222713890977679482529011459655118954262240128580510075786975720610490872377497782786977400951754576980858091076174511622699208045313298106179914563240855884107007785949299959209286094076507264600553727854587012132380495748024205074340590184343494218333983400136576638054231704567831115661165608115824437571490172121343467066314370700644862721407759944779256030326417065929622373038504216452334130415156947937066750824649463221670850323741539579125079862579106237567566140098785408517449010791411243733354810714362411366996181424684067067788485055309211034478921186511421682485760267383066968729165226735951664849803781111528046988906668753920230879186214028911149722535275517424993506242386847285529297635713337100603828349515151329524784909355313371953499109072337913720830961159231909849508216428762671208957279107065407350399581724400803099642177211971488432301264362532312754543889903283592707261068571881679629949344386626327240067200514946366820977542480585945803997686486167399067900654270068359915296121593523051385980552426485316927212702304722790052038745942142213841218310821723689697081562425008314259893976786987424307006873190723763826376060882314077097389639453689669059590473858504330132942676462997289613275717784027098423705582705537760464530973714577870418113965091543787209546958061323096241024621973693447437993397064843872891640273764287143512624001163000167288863062328243805852588984707665242422966959975882671648698428129987065564142906216369780124134279903858646395793564574922233447189936558716967294564303675540686433320481763950020894790240539654854362299522194181055720730143727844736141577865911954632766429705066218420428294473900994826140968582227403620636553091082129048166147599949381422175284719574426768674111588659385638607470111841585792233143417120930221438673638703278396496690552624424854263374738755143303308452277372607635792871247171447986113339205367693037601111646599384468216110943571045995541608657043461552055324443288777515941458041458327722521046454736087975367272110597195834793955218275025811559584265233092224904372980422229009473492519792938341611009398853165785664172037453290240454608095774175408020543578455600049679036282646446640859659980580024772050035210696133990787333274632852627502685230962591722796187673936526751742317653165925501566518290231901573621177170115140437930137569872874218765376743146984181077562166044547251594449481605677619149239705519577646288420001908478220626611833837695740587293568617431254789668934452277158405660255868945837557355529977383246593164843740097202822525077372011169231942727013496502558892106181627196033844430136378000755252413211635100662133167944200149779038102800642930252737951485043949226748493057574242225155636717582144049928919468815790068918641010262764990508736385144327192102973476749033618886162623935368256017668048938721666891746920009748327261701048063899216928477637118500231928511366810953727670682737549419331224028530060317726889046825338416628896626990594656856071257118823464341756346055563385258448541854914962382599617871359414213222606973202393112691555238514699879822015051264895728299732188900117792198279120527406999284548684649333247225575420636417142298370123560227643051728393644774419518019301290537037578302106807456648255170685691580031288991156026657615552928007416604980586779488942485574739194142285433209061632165973753910504718154957872488142533829160520759358748953283992346858055003243169039218299914088312085625880271487905625908480263361426427458355560615624042396705012991836371487792367969220110835546639404624807916307368335003663921141828981335548640232583452240799395174972577690419051527873117481000155054665598656881391624959593106725059077682297573299354457388284588842059026386476914415385152570581311846568323586427753028234964057509289873329265173090721718916262396731643796556459327467348097125307086376616357805791558057219402848824553140402811339217266032195948445616556317595802989367710383046168020578307314836692431073102049825913663960294372884930355839796998114021126242368047630075969105892206667117415881649258413945609350283101734473663831609114038235905799855794960956877868101820071881943492583530859475265948522967527361145537506449740141320079538854777096870908593475527020841791846962387786152258397780684062379618668862071434284873530975457533193071310814297922013918142368318526367856315344362013148450616577955010815522444453417776527390480308955109995073759078603862431488290905944451458904143300231230933200425296845281485323851151694513822911976047337318638815720975350269422521381574030239324257357242431959344922321318046160432854952675067836592772953966301402568702898168361066545028181033526747323191922666505755639272833391797684025514816887216549050517027438403830761712665968504532821532009930380838373337167756186909135277102587137890996832350533058009397477394583483580218823752187399078610309885961173920787900601969916243904516099179521328286422480330983109917338225853387448264274264506490138584385114728422715631556664754167660934235005686960170776600457189610000792091773448009570542666266380552520285900530955625937949606051826131494970934571172005593272548157120056033597346336958493526037541628577520363796428937542510413267007159704504170315472917003414058058757839781000152476079373733850219793852784218702039724284673889044451477419202973214502281956499077133840724943045093107458716787651291622194377413352864421116329571184538364125394799133368929033840893938244106060863924602773881310239574847177410429635762667775864306410970850010982101745945332412480878493838527271283707934256149949228809478574463505165480926913772834090948608352673570558396461191070328706686453463070266741729833958620296108662295502543473378706771745003156310013484598927996579393340915949408632281620303804982915467783209808306970695942052336400125808477466600749224596844811433493211734727392583970010672516714592408836204178799068405257801914342269565355089338941046162825405274749922765340737232016068709843212466101130011674633999575147021945180641233841675505143024901689607647601510479590253941385644302533849540683712321486912579055922948726920798703291088991978377219901846679247770256074009744290417401578964501092425091951463202334508400903795483943534313700723439638115969375296653995749799870847604969720314692680223050281199204160498950589532749663841220905614031466895791148177068266909977055656590641882412655489072104018217563616053937256992897763314282008879574447105618658235704963255913155340291047483449329056296843699113587073679352998008300106885055756709288846349464727213774050873825981923568167181394310016267911023407617934544901886533318073906839408327615175366129586769011481720333245205083380164108317872438763752443327018291618671256868917779876141600762943966576121808044639031561315251683450012127737762542857963553581928150965400167005732758314969383161089469988305597711195428786989193858352371417684039232082706280396088308883008797685113958564169170840945151784088872368773785138477229636683035307540047582075119903486256669081121922113635131122894512281032321297689138234276984607586261115799877527260289024456547632335668070411232219740031489992623320937659273800502039925531587748241730433490339873449391753941961869132422607310332917459497365830791351219919217775227358412121260048624211502574327459056878899564005899209494713894207416897395339950918650493087600793569009139453939980712849219669878359378538396881756057819984908245316414731783651234795421043406769141427576303583578684098802651144470085003386597669428505648906246519510223748312037087786215156494235550221491892412655779356669207423151018936302358597522369377986347051359480730742945892848319586159014835006807181735776440166154180775168962111016405550495314398560762132074887936765409639942369175863242251453546022831739569863745959389644595520876515238532674334357676425070480246754682104393804254940879161836819514108120512980488465791299701011679486190430547876027676327091784144117335263825175241403340066807542075535113322442884406304926771100763647686172610051635318742150008896135619042900221854032495456183074670523181698339530872814317449480534524268898749614783424520588170615929020521165742347800457220606321755271141824448627662244890879018741324533865716622443682546383144407869990511423654507246240549435442119505140250429943182208796712796928737103893399408212629485165818703340353261702235238833592590809416484096148709375246099675164937119001453943064028411110210438732655147784847482908202389648101051873700448760898687767799172443733606779090395007227880176242208753363783995441925897036608080962034177534247611050688271432652015814928207736977068229515791106960638825762707501324571248775821593676342909438598800557998006807694570199282060197416213892396775492314856334081399841519913798010412635349688078376425692554218827106171663820309353735714033300157034579444500536726425800343737372380880315977580408532459215514502078927723524050472334263723046763999174659786149200871710392305642995061858384925595736541073366914524853328801620113651312573438088716855806123552748096726426889026280446458706563904073328892165795577558257243052115580541467971929896850440831437706734736817965547397346267399139698462317338888831158537846421271344098501448565741661762212436739438059048002644459008750818427548427016475224816061521256365538589704834897427535225008010104279391949374952346937866858986664124029678317872007388913996066594914272213974328071698914921983946621293429813715495586470492698668509003216459836847920830403459650686713280823974579999006791371804818548154353954383798513817255975565438730887385674107656690931406553329915450086492870905677610662535286689329577236773233153626994355626427192842852413392868467601022103834601813211322964486017176027508817883720691521756638941685909066820463701583785080587600289985031561964307491102873371953345174521004233097340559556561210281520792177819709733882433026425741184739524469720601912753875262231455351267365635951176719874190421999567600336404251603754354165844966605741831261349840298602712043116557935377156868276017369491623067808968802389602442033287980048100720033174608561822784269036658585183673198787407195187195265693029413952039167784073242240442516196113997986185313532259155126193566286402663771452387149331735162309286400030652001169796021438702256264462706985879734539203718340012762608152022117488876932004942469190864118422685773275639366089524163356987684263668067650883252731955053258210178974556978705462310547295865845228540454485500035266251276063995515237708862378893892547015805988773981643437888462517272855673926746311364933133577725570861280392269552964735950183851081425582305901880902215254625604066329249227384786704948258378039205008303868034585102703097438377060841457199710910618593406573577294217624942128272312426662767004791794326852491357238644967434919914911443793656203708969170637299903106604378799258530359884067791906885176327000878767272484483864984672771579941297257147329241899253058843846429196667744776144211553338236452836565162150527426758430453866247033377527214254348709864392390938954036156751584540709285237139115191089593718403296547557027788315026632822789931288132600473597878588992200138313465619966358212430389288489440939813377156398955705133346818572123208144418934307886471600346629074067120608910031802119363337441245791858781435782062540127144044643268175371783810723064951117250692659801365110955026122214743236927592807151410667450235317589713746693842259592089564273962735482099188687689609492292090080688134784727817189613714185054408236488820087466132188691733154172235306326824823103919349328529845744392758003762412495479553982401397276440486999163727947223951533505504335367630845455149539077388332911480261522416941484565068451191646003753934514268271698952831134561639722916056148558322235263139136416765719567263043872118216729249103632254776428857462881696168940165048272359533021686042818718046745066800503582453077841801680036026155092440259411397424131491636155381146170219028062951577127923931102787429275957904073084920357944653999852170189267239184705845988005605328828014567247956733004452374091783100657066226805066063240565584189314088635913832507816992961639186833361745865616248370438986554321036767277725046224061262478867527935054593185973317207731865814879345957809938635713290005727211471494151230499682454987329644501718415817558489703499576085944614002682799176724197118735125865471270304913212170505182493864299742477445842625791582672364062178147878731127042415510821027198930057864539728314462008703230152597269085970199253525712976956049872406904409686098580212830164280195965203263908661028183497917433388232439990672771068187468092574213581931335738771518069884764028108501288653124121882780729559755417481073075274564893681624972304060651547481969903398609414108090738373045683541280173782652501621242867549895857720253929279821385095803665284532321106422746053437052117935047338122979931625976697725822097133440296057195610273772804000765462757937713691391820492406267586600630719822433938621575054763701080373735521861304866144168858001397133228706656305557608269113241997115078244467290077118787247500486363532183910710481647834463549571805331817904326042068302041855114417876159777715160102158724618008057898294797827752079975765985393933755173094583033905009906566260822752320468687543796967461910681579918048408309192791418613384248875681547793413230469486463850453221895479708842216468976971835519539183854324549480065722191000063686083227692582542578876005343303153605246840255866699621130423028737288111459412794061560018946076301618797020501379237297179093590365915555042763131020952884460736075807566424219187758110201298143540606259947870257101089314780933286665077174353850043345124599595917983682348069855509717328415708260246600347088632637903954775039614888362944532085061634196714841268132295924087309838495228222956044092625100428870492384272487196992064695834567546983049582213916723847117006053910987314931276232388345045444167683581885937983557671239756591977511794229508618428498057594462779608860757600324224713496837251302922102442814847744250993471064760480980418738453813591990998679860037064676788656689073848755065626637401919692583228226345984397554403745943350487644278579887105965341441422154233735924163642895154222757800852429127809599674911822873452866198918894846475575698106276763999394930030711268984147559981964990600027151846541943067883762949352919378439185514345191489632537811535538937279485716249154785714307381117000893762655572681364354311194297228244274159972202256479151317428831301841741660282057244879532823340628741819413054799149375702073040690763700864949116190951737301033773798397585150566540364786976214055939040120816265302679126730814072371698737301314978842621215417316203632809622225337929922077788588903994081707399615532151485231682182450036290142378742007395396522716924410345804746428585412209751818360596523862370204657512098707902684048870763334617058002376055165762441296268653924642945056774669532342947401615005163042350212292601807221078226066215526243708551497624178223325381150122017024319392779232366043922625165709120230351333421438903369280048452957242268454754601619485272540820421526484669234919289509696580548328662811878591804533921397329604969012750945856989487341803528827266594034751629674342264177786487309729284779265240814512373050828671707576690404844217788263917712219029619831417269716120015392645273792790377871821848775186696334945219198608815060179648102980402325850694307537627232237670624939794702469608131027965101590177195147998638140697884139318597156409105962957345902221999933351979059925514471122543403860577776770522773145698365839888029222595949368996419721197224915202230440603802027154127885427140577250480454221278813822874114099308415688481683904725243158075426062271321401850194004142727995310448372047673658305564689102600794394832498391533935393851815982572128794506802657472933895624366003574035285872591032357673754906522361404456400517205401582677598007692515833420666180746957892341430987088059732994473600446656758955811645169724607853160235354211364467460166292767169602719841174048297009385573814870342106362202721178577779829483011169287835945916937494926359292413908590756555277448126587638059721826991217806801050730873436525176226965840921942510601600860721776668499553780548241674784227048060450517276084366419191346470470032532799770075439862922686809420664339680113482162393212902002038207421016139512863977989848219598881301632541411205538370823201831534082013073777124835161528640995221319132396073015567845315132145880576450786310605497209591930760817462741114602965841837034490825742442879305224542958253412894531459770232307951325672940420521740495406605152460551135579836715461304951623468662115666302089732473052010768336826768057438012260721775623173009706522523853348871888127701967852129590342003108598014009943365097992041541114514851274013392232051718360085955178838658453363048033641838675588972966825522668027117796355486720474279882065749210241144088524887422517731178869485178213130774709877921434685068527369782953273749751057284159715286590190378850139531977628263567687222866279721844289369959643371116987849527773425115327228081125140275081646256596243625963725231744762332946371172935154571358299481079667788029004570871515495831256919649273190478996318638337599203953700054988300432276183750577127000943883481310569903734826166828976879720465843345274787492784337410757403309771704973528520781201007796040198545815484696164148034281801701394751985289838350076121565735035980039083444070874464140965491931651404317873413197863430727237874642197652205613831203379706541922989462267521664823258770304035494853228770233135384617255622487544035708164607970807661832358390996560611280201134841127793481646062393404913130969463369019262815685695849479091989389077817486825748367570875873061510753702488365068683687068979421357110676461112551799012006512507255897860648053381748538615457575401898324232759880682484895430589872560671647955002719946541124635801015917590186714845120058869826202228398297083291864143462638848898775413767739520600214525148837826062061989177659701897619056854874724024874644041478645741711864771856369347303254127595591209560256198316962842223425093659345516810834290699405611935121869708102101698321717648425315138848062706509178110916281336934279940578782867077356114657920012253058174262613694764422519295523095929613827691986557194131526064481975499750741203855952147894729525945888544930432159601349680435444608727459690550990545213065976238475713590624575946216006410270855516890517540262459934645041894166061693982320494042321592709065354455351320731681401543307696039248970507066275632911408276611207411634554557172181325033615733911246876672105686373924856809530554934845786379230443848331706024600029239208690151381721554465468640405099953571773327027188850783750873522836873588803018599266460363724951060365228623560761933953189172558455055590529926483221470938354299706193164395442744849325084043174934547973084677775693030438030895456940223862707787295710245972279591216030145301257389056447049565102032387867541155979361992620271250470743751130678939470054767540524681222461351938842977675197645725582536243707788603639292689981414985563384326634027200956328445504163824466603719168510276995777511116528739313784398917952591074683649382421031301039448014707809607436730048174073195664350441735631697583220862554078788932823138147592149328635079933420049543504394378351999318713090849628579119954062594311985396618438369999463149878610014266875881293806159175040325756684928275975145297025633176003787868524023320712267802109094579212561076470939753319499215936419357901995712813116345796803661525263337984757117323083566788912945856723370080196598900095316272125598317508417232281791908752702177557931207592468068438356866460438660788594398309536561411635400824580995041192179304776282512663340362829158891815234178087462149465829769983629479066566716125738693074992740810425906376567528059755269658801806866409305614518935356808205597449159513535062828923808838471603808863405232060675334646148988277993654296188145399296763044481379964537545695931072648607848920558995980492841204384800147763490529224445665281499584587076087075110739270851300154764052103920771980383515977308558549420512910773654070869460261725342974375011001719977769674823414488910659609197650729004922693536266123165434832614967304773296199689045044474599469409563490763775890265476242728724053030424070286434081673673417269590520250846932937007618950182250483023792162736652208387054192397495890834922880558636644884158226448425789109210331210175284913460453497061795697309896860458021379733765946768508562805034542758927538711100703560429727207242234476068999641603224000097576504459926732063494127507206753245266532695488841187969771351574936380209371547852109015368852091516605875713412025539969179846554910581644657034108603445032046944919702439249717895203338641273928702367897206903962959266363041321036532609488418160387557461520924892745651613971214397175158274841930685568468188640176499293502902268623652943501263010350907067471116689845286918008468618759021767531842661122265880851615437871291019218374908594433999558075102485155368808735025456451623500896314407823932483495966066808457356479047681044756821475359129342463477167688715661462981715620568208833199854906589746211726889256230299423651406679912529074358676714593439295794444564412331025030474125265524799204186190534017117582991243499705588164430054151276416558586431538530910202686589354762732784562530568649872770858385467903741364286427469151188641687257104439692698289445873664598536390868061910736736860472298458968669981651731999229593832290656727422081146248769269911423748765659343709548376428240496294689364967709668504902424304503539164201737656092648801578715406776821110009002404016746151085942685113949058797891330851078163267238258966563337158771089372932279895927114575302984946757291512588788020169835024303134034806981597167843167874502502783723281441619978694545529099816364445692111813142724755168014439955038828972292953664095530359161774393994186772822504344594324425037527673502011549320147029379083314501103197676610465773757827384034584795872247123925023869224598471586721047857784720149621800838742538971076375602777216687775602405167180875522300769014060284565784978036534068621848593361582050877761150347999939818814739909813352137340057982028031433917426643688128449687896585254009863704961779434117629409157058972396620418682414442115281813630590305114516282568930215760771768584077419386499657274747498427267373389799735310694788103918766414632249445967737279642995365376153383805417688513249844414373926673861249497897239629991597647314045087155699440454753063157351669712357584079560077852948506224905502063073047092664444021934604590668944187857568690348036748600181628211547591255028926948126527154380938680545780716269121392939740418565980906029767058870417283619568391383228419623971894603919900887908233381640037972832119642725858837388476486170295694748708939283154456952237201216667555252738422381772718238495497287841956474281324927702495165481593911200532631377655230894864830701429796353561390722446442387017819940140525520488558441202083334101136195286183510947232835381681473731701800996627977329016693331764315673757731130727382488306128890192248950596606158025570172472401389348878312933682220118560985448488711150555330908386167214684581480624464210252435274974162637367265739515295774870583026992239136362770684451706276579722728138775192685542249878435837430435002543445278428213097141049915057116910369237207397189666682542749999497187678936655130969370728689170907877394689312235470601080099028361637486950452763734305331319131302966095377282156462733792064338994343117289853863747039193556113545107599231390208643436833468974952693170896664330398627112433556352781084186702679597096886583283526412395551988432992155933303202196922254182345647008702824477257466742442629262564707478610008291389561286963890154286010662261343450597142517849036887993971830645877215380997825131286608378899663305814877169167979617442760751946177462553170729461434837506870634264374804940157249289368120044203332631853808907108189316361042000009320062222067277683129032567772672225010192998988017885624278514205637613387925623130927947045001616951458640359819241900967665847735470598638999903166369737250041605788715507129849085421785798170058994978489626972668654030258817537159963680786242250236109716548087267172981058711276451177021422069388288477428794077297035351534261231452529455059277036909240142091654168490108217972330441339655205822790850758766488092460152757175442651437600825396279503799554110329019475317572419897331709532899442139334116687412070246781183232207468992022657337444555220022492455546836376653303668314137312211015832636746245929091412359600954553437620472050102401097282043692631568438132144436529502764797885941571841304968891440207435959187554212265324847909777309799335060894696647415590881046505619639801187048383501080765616541495808637128434936118693271871584151231983464614935460355459942536695671610890994531123586210749406110426122270413064742852827348246135624500130696902225415491382494368724715999037457622735617570242436279871336583780931881532291080085650849812191590927206303288905419732699727096867037688641037286708187046805974100062173192108257520647342975674687074640667818240645745230698950751875537346751622588104345866803457865362147527420578901515742625572202185082628081936975386369191759824953306979963068305577007353709421452264505550356232129405545610688567038381270819329809638845266773205814852380316449979852116120154780624873885238440070627530501152268739626458947886090388284135106832527812723295704610444006701716763008218509954418362613475522638063792062848221661070087142857052569668549055570718958029813283385021076869064410367481118934443009416204217204343635550931244124050927638686321860376894102558393704562465317598491967817983408132515310400129815318468967387631211169931496832512257011950897343455292127708448504149527378033576127103742923135423221807356760092609322668946371755602175013916098443609340585871342203417578966611216689104002896496580244814562415164041997036421238414164542660868180651925440403356139256729546608277203884301293719268549117866135304896682238893967441419950570566879801197715343520958129618773407724909667481869485662894435899774592981906586912908933240631053070617891825380359910640027045630568208554327311104310085983462310609478152143947920569667657232931111962806392709245839430935495243623169430037661979614482930427842900945717351134124401083176204424652804598665198266987955072927465907306467495496481427696200439493127874536111345684914382038683773864076432315863503372223516714970792120701280721279700350565950136934868074362213364769046959281089058356711481839012060777940976875747191091288002534351522896253585024370055836112618923309855372117272441299180444494764994496239930289274920991161626739461247878064778066503973811502022714008042872660797713897117047372089006556208422496268043160278193659780698270104058216094655918929365144652123658987709355038905800789406346032440974057152998407844629963531095541780118681962728310178865435740889684456906136099990181707419504338955607741718455741601256023330194574334778822727277062748975241063370734792448958492802591309353792849372534924680657413865424571875155032346660957615055834216821900537219309753933794203467061263951741298772442013131931849516850656385125958552224343589049479778922827412272940424323749203861218509668963473893228440817521491651699007036898923251066251899553800337375294371079809088585999565141774131887240986106179145918392317929640041758113295478119254834782529675856055362746137901193840097377824019804390597850668440280602008699042371503149039335716702862142954930221056750015473695960239440692241722188367008770976448089325213498015899741565852930784494700583922098075156013078362752985255822938578682480771077004208501686310324128502371168592344939381673115771049738500928531485698669237938045245022969515892284434663483719963283390201586059457570349837768513338691330112555357159897494185930343446302636193727343706913568448338311679823949247693111116468392326561147400399548548682059427718885232107930953485525541672466422160531677452826467023271553325655787476035606427062778960535510884744449563588883964259379956420311981545584625806428138794333854080772619345909527069333002228173395582348339242159895204720164417888852427530439780944339059935049806985016281018587727939347075381234782145479081004692485703059890451514920743756689875970538549177319939954869090172851529725219371772032363686575096401797244635929357745296578022432292704004861830391625323386057320032532669257619797294014156080939651676157018651602859889886729592880900714874425555103217281738870907860784345859655964282451568710232588887587151912392624646148236882729862353423903622463327683140859221984625076987386852971462561214668516359319777996787742706060152602117801172641750076073362956145593859540963959249911650300186126853982271838803803451560588822395807950070956740827249482031808867125450044697165098503116472011508378701354374758474379231737209312954138604379257335674568052418547792473166129898594015865981866597335312431234008281991021123228671726841295914940344728253988005501947983985227106203474261680209767162625216328179553306942118334103716315563331007867366606312692712706839337525837701951585450001668103975928550881479187909607101018094396863575795936216769255323111224197146384237028128974718982494700622311513021022529537997646083188784867007337947332765625916014901183964016653506464504482763761199063124167563600170901604280807693125009257324972223500950551065043685702963121667681224454915296061030729314471359716945785613950861612171556788284523813073914462807536667191290463444203332548342221059432133437885333732909360540206320847353826585413300807349704334502366735173641103884775629912007497368358243418841759732608765328782216326540780920552870292802929377367837013121232463883855603855659370479282459613578749154647950417115029216234913682749310454879813924100357204738913719953498007690806518447814142507293075549423692099394385343749356013305413493264091030339104897599691289554292708731756258134702131187159262468601776611498193421315623631144548233315172058123910826593826472636770241495458670902619905449247995979664195207836183549641767604354839866600620931435977043326022964823823429477690400212303638484197047721076720180827375620293566088434645674869542092634663492356361537375128312849753874849376581721180118578823105356494524645500818976831077651027790228537257510096247926423497028717520806275856364299912896820347247390747647173103721257585951225575182170401222277415058904365957859048782267973952383180258165639346647970867927822067928610890016137011988850188739839427988764072722420690280227078284213468603431687177833939457137170380885527196153714957612774567236106661104830553387686736986514627001582661445947443619386667453760842260111232923359951585766949318903438236278632975417338474700757083977187735925109371987817085021874933959467070535539277727250495983126603028508967318694876326491502232469503172997036843827615408180207393742469602074341020574018073524375506637316562122081478205737612825243960398311439667050165056503412201719902869368863353011556718765511192230657750605449655508473394805780057501010311742530220962584270258858620013987400651980025367005001801656532709394723063910020910841377719191877988398294641723996600619457627108264864408206322271537550794834629296570448042740805723979582641748981732213065701763141854045147965090501002258064774851526709495807326520782101449197293354745571712671044616914143672764319700692728069088331686480361385880382161850582033612454442195073723219126349368125469240711546566444546070358339579995416538980312400262555306201676604779520561387108951677549306379282573969991385676329222218209633659102541679299381235290970551642820738480887779536789822291816872478279019114107117854763141308288510797175703926544937440925320013486026305579488514059723772711255163833099510424928450845814162594215672147082462646562042821248426200213207558368164449860538580632846211547834118576939391948609636031772510679782416331916578937039888409398297395393878053684102707422204100955079133773628740347341298617065733645814509006464817205988277066621056105890808170007314285340081018414925320691393285988728969388777032490438650443604470313566836690143041181236280793418334470004593407738367128251529137327691513349486318082522905746326572227353857525873653751222772735763789098188549511915452842243938095894896352821259825589441390296496880137507374730809497397643317878317841342302554207758677248842141640769605648058030979484676132964836728429105754173104695577891570535977835569123402736665644315712040670005595550572277360995902677289594754806293353535406581652961364835519285182788912929909491066724358428949648783693836661959429519077493040767003073680850906999176297402990103053697263816786833937351008987789151948503371993746527820167049860425958459921452873049666444292740684840181707807522587929223018835756986455441230479817759148704985428933877232253297208513495616922242756567772223387918496382758626833372396541248292489401160365594466300033669085248589423668234937814854986681075590013285934986966317953774952837521191784043256435897994357706171526132135953461135286263489435072750614859499287864144348051664198157258579260440621111165926879440340616112690021865168394787189187393107163603848440790975067110920126586419656851760228976865231154413131221111435775422068679529571912001868248658863400796298713452253520783711660465338875857908527083191168631286505250674307188822573951231304936384635675785165810979319492001699866320331843861848831930088794530224024089007164797521396956829064278824924642846325143426556036554182104081489109284268709374187119409118685946605769228977802433898880545010265400258044552818365599646454310828152379320721560047964889527334910778042550569772538244690802815636868231016064664350021951662260255158163573240794488698517413941844574886351204594117501879790032976985555995253136434822898461383167472922945528700627810532080482811945390152948436683056852249930109840076355394472942262595272601085247454601340619762416026786245314511366261256905843367981633368057821603345209110089705194564001249239620091816156059117020377887821102265320452664416481865350082944990684129501386919739737628119556820288186164622801018971618206981440490363721038449759362178870361631377072697860476473222197280208527504151911537349892119396206336317864062159284822844516214632073454915385518749051769011866035711855431719413351655819322179989598379419768217846266756269303836935144428208463404606211543791554179275326929446694551104087977796232402982550021533964972197732961000816938078217900412472644556687057356754932685311885189628482123523893410347470762871279644079629817550231826860499622109304917767343719993642447668843545819894338124516573273416467249956203641327729403684224315855847718192743324575224742837293166207122546452015342944952304462928424764788900792730654465227150573349956401948894161686866100869518977888600009825893264897883765526094456923815704835899826249472484718100593328072371527992105701494868369432391472174354317191454869476494201097406863639199868798002034365451514614845793621640912366756746529086403349088285785075823691752930022834026191516245604174158076102487528889653854185892090093225347835976584496525381642593443641356950834261208446869983404333298156684949152582223996471240624525542034444646584754427007416603637221014005521303896112054364817212254370302779148620598189491539239455967707056986429525116978897665247820194700907716903933061941214429163496532892094605253196312651353415454056583579387997661041462193920041862341007481448991805695296233554556160461912576545296954747574377444422912812633903210768872501693080733015298990515985022059104914878890088521496295649446811520574052775049446218500062432649056151854181954668746888493094844915893101502874323653978844404837679715991816553124249773779308229062993525403567560227599368300900891997820636034444099873823318950483176088082504301622597226360690359405922406329534773192639253543310226737670635052009502704145974093393701285242569325922769598212657479957200953419515667898967461801614291286385486946277831301920996317667919763104977969835777979936166797498325500384858363672978349717654303005409864535228546466386968826384363005174409984534989386313262704799994399548751269834003028967693470374519439789158770124331810801173058076795023324122160460046493539498522690412864297001256808832644911500973209827577982679071912645999769412406707158747453074201355630960932516393731932198414096752773135029702141591179387201762422297523865687604335517397188143721195344293223698983113773117655406047090125207606917151652159878726438552951178253789678832689343362228885572756100273048680170019164777177033070056496639795576994157366651540723081123879343608341077403104458679455406918297070648928349979878203947681932823263675850009714096272653925232050599206234388599282283127910463253835521899127249525766622156231179871847479840327871791595573847717851897156943755273013914141536634445993336181620540207978745093157430712653765053533719948632052548632288427052317966465586920108619272350445442294628222403466107759953783454109751796481398768525594429895968726608292632693289754949400516399257995877627548234224998620740910739405431919825128646383722972131107183980521693495308663958404003599464562997326043902115869170505230593098369926207795661329707874380619263801498532043822941972563446975732877963358599529397335381785067901455979396654802757144168399884711077000323385539795580125345266426558320416815380179336562400043799457756491032096038173470995752743410151908783311032613435648599376238214683655243716733075201830628234311481261109099757776715299837046094500906960269127363380364479629556941411738281570810748324661788703358027523036166417392563349550166760063797608796967540850661533755123819649767993034868229870725132205712198224614088291596441317461284396407484171404841422517644690846200865570529843041227980405678399953614136629113345810846892932510169247187926255141146616499115597509299407309822701157784130954538252101971336447359350129739794955769039385471681778789012787507347163114374493420427964186988618397389073734026694913761215133535608383425840458097045760550595282198366278591405570734670168239329031502263998399854453176905765293692270378501150581901468228909000328484640586816051298356013377966417018794504360864761661783338900761431772483287251072655341220919177556920125097887127460056927616859822329792591242065292888930777210069825515076077169660371260807307283911462778541113710878328440860876726008242841355382729015802737224354841556084980259626298279860323425236244497185623503677970817991886075096163680037223064171177024143405950172999920855793789722685592536695557737825395735347494148645505952390123125189932406581123380428103360974205552248952836412063108313329138608183334008146896723046633667208645856552374778560659003157955612030843805573546642666602251191393167966595518642172010280713281545459687199980369822380297957811435995883459304030073579883821653478527152973787811444159676220755227379556404465388879209846440199326254512140496725362374600276745785693437010536717133709920747812055963224411477015252709479619946114887333548869015977667370154374979582403029166028124762619160268510427047833435910019819186758039230556318504069106506931435393388229485394583799480495394653140583832487566196482888640101620677886379489093919390409712930305883863132472434583195863632034772465684501345797191590757374443450115156145708539061702994375816157246895629291529845029897863191430132417229630513936375376008022276928398863837717497625843025422628614918631728274785452956568449717790841557929719038977730389705923681980990578959027979728469651408960712770413133550506441037862177399200178844413691046410301588239063824372436327599447680160050235568962200271092831825912972177954802633905520325810394525876907989443639939951219228824802408330510072296149557035102034068303137102607148273494877009456703007213721669292601414971998718356241466979128041409759137497525415253351636541576996005170561580897449634747178847512918404548194439365826794857980720173518642063057366872413833143741112430007528566547609798045884109329477827086443474509222583207020415986971082444237834060598781972740985513282904474448138087072302012828628601320740534430320257882947933104909830423694854289475247712583788867597989668527240729979590769544739152403266422241574631838819448406442839229662596839251719088260839357337377605196296141003944211803524139931026454005581433928498294252151497073005344451326858237918440278707792183129688584302860286820795425382134510996436101111225125074632117572548605487791032764456882115781393336048968697515257103018572269521037922845047580486305213052638424152179102292892849233951579088775257800598964905072589952581713171120629075868530760660946001643651855576137505582222841558380227721457940845082868346838939301723774546393890292702363541814749348453748653673166529349326387876930530402853698397017438281932585036159665720175358635351529615505076912280781845761566275932472332636626284340082179960990616281377102295680993417215149903447348525069188468608161736194132741215209982055115894796862072393616322590737801810777130795679068197760635074847187134936459435595469399113694744656808097518702447964950073947439048086790823761374287756315202851830687001354906201880100474019948047465677568441587626022588666640217884911383865127297311546402927419128148122093343809692842594240316459967845354371935472890919294384824284649255514301285005905054283908669063333214922867549045572825898096037402046190573291087208757787368888178346131679066550618069069956111036643706764326577401538764860715828187512528383347538114355673438912078380676655812605686935173963134513606636295979353907162810578454004787781827743622649174956144573765763497216459620319218515240644058588888336094210006806645659731209222609215444862084176518993364630474435405466979832715334598971809196305292831998748460978217588417241931458414048819395275779265975530292034054162262943669732346941319230161855798506361188391282862608291637872375594049829281781134297375767385729246017337273354146572016511868449673994542368902781000600635728765515799746111314815936536406485157460482914931814436663163305083798399175162372573446651227868005149966866057284957599803413930944698202950505397232680612816649179839381415199118101758183140621891315652670729786604385809217066656568383757159200828001967600763651214107612707496289489069658467534372223762726501198672944055145543542614606715882398662798180021856862650410071127200050246578005155558817697168102003542936402634091288687047098866900946718792457645169415731395868459355802478058562696486280061261515606913459666480578244026326095636403644667438956333378446878149242866224001625345917288701198631477570269618514675039743846954084292422145841175742578740819423242822900238044976677421470888158085314133798633610423000646600694434078509722034655129031868397204312118634240180780846605773302816066604952871798999954428816076731425503653394765716301034638244590516737812221763325520196355592565806365684912697696128532213911791240074800303958503932188567569959299412077124894865841348246590879366003987195641663433180557778709772783144463980158393806350590404595100465792249835496474711599683837381538158248714253275456463958511932412851090696000508830136056614629683574527602491909057621844867768267244849377909486634456695881350158233343926461024108200703996404596584846776393237324974682262753999614147565048712868994487463083618109461681927662843830193044319820042716497746363429247524396440643897962790350004109745401809541205387340620789916241784934991664563593952357372181192139450644450922765141965190942184125450295431536880638267696981394080584474275486952486059889976554899193629212970308558187148322578918883213172857062820503851361680089727165388635753932517000257150820757833784565924725148356364181424159979357733591608007369374675124771145428436130676530966275987604330372635993618230354699564549960826041956579482646831923333442393063693290430796296995082346897836798149291464113376075098069220235727280846239178168239492923330159732779404732832401339697160427645384237562856001277810033867126817297254832214706799229217275467413256362752752236463615816507462371404695047965829811205784697519868433606268079836049023436056077406807500296860678611654129539078045221158676585120376853457280666676681513616444518708734971977978976593787663222540895810771090628568794381346962560568855335433511762490305836961672749015572281897780024922317999109885796362323565972391722090586921505072945766731986310310550864967358866531323782167727249208460499132320626335577676311015669235676487080816987949496261265017406144557150340142480378854077965649461577786786211758555643530197390606470831303779813085674448734008674260493284503492284887519304677570533309006661275792379697886027016236818748621792887801300660660837034559687844399274451086236400042226612083118526002224766829813954765551094024026290705194904549713027136432076368729534757085085410157127258970816816608926379763151763758753420730238236118687706375458323401029523424140073879157053030822786308762087585790478040907429133190588581138446266759921666838815434332452074876112891335519712480895860047977587173517561173686409535878028614391751750974260020843891248621172321663649338295107714625179288062144396445190159803147944443350187371034424223867788453362392145610703875984280924105945744623951215476554629932905839396470632943189764294243921864350274885888590141909720647547452869517504354472182261411914707629976721951288092409735415731229098677382689729727257471689111773713366462259986944607167334465327987167930425912428589016632820607561441676255171572046664037566726507024109910710637881943726999442279487305310583959422673168958535744161873562270342972672272256187263362716559848128580995085933935415486703402073712522409511910872505471436979194511653662669594334583145726636531550446081354958055924614079033678981673639789990748263469185247648229990463013390333837108034403516538140178877482401474546474527035798325971483984367117697162695317095115774918170450589921669505200725942201026515852965308521723737656262791425529092082402593769928418031876491595980921628413187852895738843258114753126107130022580470316369096856433626211753784125539026835799910434758916774908597904333120954260522518653521999524359516679123563193862977621930398997902457462528494094412041011027435886924519371378745927046106119240331754057204621355722559840515178548365174608146618221533604867527140885879299720906913493044124608583417104702039226116550238474073208257775897178687440944654236605447324218427740350461963744390571496205695850951690417435459967488938085514362183862076341345774661268053052078857853339295011492595230587626255973471280654881018557068561968690842504718642750334792491281359740994497530771179698569407183425572330595177250688614065169879246465553046000936412102124839191671985324224368924085545645070691800516255720494958589734557202053471121236135912570586228965621059969900197888614922715313446265761974842260778923529564913822439471710409258648560698891587524415101039719497000349241246620246246000043251538507028055037255766696587546384040274571106751667175692170704691753791507832060761434110032103749805818836168642565550479290982768938194199016950998806557766374842779522386635396021673609222074873273804001272630013211628087753888780341000973830122875182864618706501706196257762462545151528750880861890409732798958597239715581200298577530001037098832395735730558857474740059248004161766984863273621506707222201771067145603306357116863488035257246259190534808447367708325527287377910375559751064201026210752645156504014082792658554970389458355178176744017745543267057177122609873719617660414078526422548006816348099406041642074513519279797420600432389413864379860526203074719520453591559372446735292660176695857674354401667355812130199857161864133770572645438140038298266797016670272414320743320697143086268122536053960629107316201929378165578285886813412707415204772792855372608401724652764342316612184936899240494956673021760535364946067930969176990279329439046689217805863488493004835019347979083037784768767365472649891545610491239075094251265966382788930802031780479200386013710825372066943018056875705121146560051561193140975848624867979899297396709032955771128547716393879291724102405043000287013690037164728981507281360474270932562031928518529142891311688150807737521341627516692339905225131831085894872101437682031979909921200608746731408590111386089574180490304520484233026366338594666617501980590430165840270192067396428923396352891861406617258231522935533569216943266841887787282232815172042680080415833634212959417974182395717685232655293697483507603982000161390855882837613356307432679779901994861850091246355546341594035936570085574886915485679298073547812588755204390403253202242124899486773897462914882831174036033325711708080726989929344386528941296921328484150344269732608923920603141935278522615128013123461077564603245896260026712318365932947238574599865038077458532528621539151027291190137568807614244263258152946401134844879509046542018188541881126684829780554656572580147365076340350924528369150393396948315152252077714838222544733098318845844687703077513626407210682682565304921097136769987501453897716525125027838748884537368802419994573575087048729792249468734936689539685912519246192695702584770905137999151578234070273513332208479362529338651882864782326371785015431018169147883183408802724318902450369118843242469250938393149207152954126636499412434595923232021343632491288507833609299234407851852197860646621144343268384584773880541040114197415740743889015720132228203695451017783439653691411381505848718443584274758273675366236102193447370736619314362190465122172767147337856630998942644461011212988100405966632409726083053946248102737006952182581453716404536909379694933890225666188669834302989695110984237839139400316104875143042986519110548467454320923852072153052979938983289211988342302737382058365774550736759696753347807900338887101319150560921640041847933710469904432738394335439488630142691356006999390528863055589362654445689668172881857396659970172990091474573155725428310247982896066235420090269248804176481379769497709612410653283754878883834262517641060248899621723334685163778316452940388941671800639735279694349036801433190337526780350413106537276845790311128473232054518951065048634805596826845250051475245894665779138384527748568498215328867880971876560569783208190755377366732235542451682523328532158251641558925450627023072601808090738723395627399954007282800713738415473637592195035646391014799811159704370791927334483725814180108844505102036511143026660654181782105364348713449852757772476950654461731139437861257540236735793873739056916663734723682555774412172007423904395426810222267871236823048606244409459142782323709671619600405077000612241990606234958907464855309041542802837091918936845509748123987878386303916743894846569985274554543338383189281278995185329874232122229964958397991833889930579404158521883300605018018785359273188245538962375746226677094296907401852632458706887841113947302739516936255978886755645240084010325980376224069042374399019424441820292680959508765654945944201512850315305446674358052026872184529252714257634717278192693213307779651492003552636011734252094074493372767405965676163578259563707749683954556814529909463565137032315588077235818727264560273808355051104388467109290769132656012572790560440518066817775752549796245531494461530111020274988430045872809002931440610913283917024248956719781547606740897708997333480188448403689318063415518680072817833390668781075420124000697733735264181520430727216866019879395422742891084730495804205086250137168626593576192205094805790075556129936245935985375269332555221188522693052816568506078666573472593769035131044736408140701202839682430262946426760951708760726556464216895144348298570576999855586353801237603134363201666400479408977658163516895476609227872215928363561053552023602055465076376364925551625048977858248386346702751184748299829302343583385257468999637177880297940712584843655009722093239761388988745330495547649174006611830016421255602863270834772973130249579045195710210760872223531422010448897604144217303022361168090858758263277244236559091961640464652552566491132058301936689888018442230668177930035556650919191684645044179349225355192057551702305115991823891795844344244309375197232958752614936687642646746944916666752676331838981189756441026582254476816035857671689044463700488969117269940604805312488516798041805781553293407193593472743943608328013435514758518309751631519178798481514135789896282694188446730183036950317018517671714529782653814224643573590384195245699326538397490024186995375440503023187393079163186727852956434083259825634824383254272864106688760026026872992427081883359258710080742754798556643609596455721254779811264048672405390257874938266010780582383761904923583389411037626886883897671976393059414775168620690993093578429029986508505158054497701662641108198392927451627755736930778895467912206356454076232758314326411699949164893520141876204315552048669390924800068474017511166269129949849600093216047305912472726597281463975679723681929003514890642619421763004199810228226929249145674560148428608188213717746376913792165939934466384199510423266413404232997062091568996977237563681918989794931519976862542346034450169027593498765258442766097014875936668127623193089545129086302040783177859041904792157811215999179769694821810847757835616604370096484185177538908353193065036908406022667091659179204712405698885313990330544368955369417420921939735664012669443513962751069034567263945262974301243829106713290786325126687236917301495535654931408219992018831794781185597544586420415168716789883589184141497869577254989850336655660357826558348700088773266558568980496958059237091691516356027936589008215581833626336118223623136811460614902774519162180248422383819202232024760612492867248054885202759742999837651265609499561432403327026654812881569755233880482697647676632605166214553444424790256322358014096312829146510438693637935047768386474920780869432024121280394099138699446271418920262817631304053804939071412560172673066830200216664228021199321793064280260085535451377445139540298236204368155850680446428936980129372876220765255762025085147995353486977626847251031389670493354043705932026385992644691623903725916967241982940963051513432769128572191829163095459688050162348917672386653610954975792026370386876314051426334745240682989132816597080413027120069479709423740652592456305804057859503720837659932959271485396283241039034057860614189638059666676209911520975008460008578292789584438723255513223774230625072764414199161235667296357192085388882213987172085207779579928510802411977714538251760656076043761684651663066190274580066731279401593358647295327015403502269719697039264157459428885982604469034754007704058838216025222916976838604239787358645355485495670817665043591262900126327760754952415298622796087745863057292353686831906540063218259682493640309219251400163122241963792520681590421728262108811057553509738310820950998595455161548619901866912441745038899896971929183360555785941262370605577140132090755085592972682922227278930301828866011190908842183933786527774607402550589350313487848726372965825115870783990569592155657613757883403845990075682090682269379014071574917542072391895321381362502956244152360964341098205493719043975784235486958108115806301311100225944312984369325435392175656904224603606775672909145750199217293225733351660801568010175672967525427928981907711986085245231587420219544599845215473729168497272900004675102827627436716828649728030068221895534135391305779181758609066369895428837995976320084698254506289748428237582409588452082809660884498583469105626683586883677656399634142496716945968455329722834001085490643102209421133518451423937968528268897396119347579509358153394912527192067825344876427531893630877917428863279552415373526924749989696778543011856501593761724574462395479480356234254471552648392190648356865456592524747023704494331021457187122487197325593016713868048038979590578701346171256784830803028081169377782983296445069291574104008718728153854340524391257282055925173164102245647584180949185922914592125643329292776368899277257477478784478179155789269431361169456894873849704791235909535293130844709744113659641371850633489122623968375430780758088162478890985924374930299740367647449038324722274216545200225058071217314109656436262374944847505562254795012915358280219824021464002732157478564800103358276183246120941744044775812324649007738615899696881226894348807423834818629033168628426656468846743119553620789760489270134289723407654053261140026949131757966856505678934989721239886876682467410839117289186806929117835724539480910121898854640361327197461663737238083067244057682434558050522308444251761422665995284081396804756403851968686598085567693913115284321012881121675898734043734603568223787207149602935029961599520643569507778926416543964972142123520874856387694014214494461296507125394319767823462639135185927257505611761720035112978926400296712380693583846378994663300437932601063046051790638772472224346582910904245855912884282797353757216184012318889186825283057361811563882634407792941946627634853736558671805628277762078719293811619308796108584392595139217224064067183976330532486494961609292071631373658185955602585407670313339129044104149480754772095373427527604332049545373649331081093896278187069489017355360940586616337520915315917229418905805466569282856809975291459969057676676834110966687331657624786458396527032862496267278748475378832762793930890620615067541421514276858524693115415520263562498370480253033921383506774613715861390598806438403101923989669613172734212891258632583856092954392328410669097287404282830004707799619127546374923959023974120763524159103161772309910131164644851079818523796669261366277529939762601273794800746275891236742138130253631502512868387488957310161629061512739900065522099566681078649502264501768789108337933847783556387112673713014274852363836847702361669906016693095037964473648930062756040414910119535308207317690681188376484983074217561452778321953279630910938973498755982197281466324777702567004433068132744607705463228855901946258263495241870626066402057130261847292126963380436001143312468308228102096653511550882715177105704502866523563066573632505379103247723832472660075504966256811689568515894928953915957585841956645530147903667519767913909111173870905544036906790614444665086750662646774817118909769023762986290427099855536151585647407920309124204783229346336555933834690860301069069551439105243151244660008548844530030942738495294395097945101880612845522120322511730949410128265931252465022675311865978955582882784533317086949763859650532629788472919719633716236315283113713247414018001080182475187466466796486072597584331935531100485313036470151132618156537796118768691904299656626129089965098548165760503202217167941086795418633578382192680710663478647612599746973915164672185457107296225864521771986034091665146226809586505469840856678849330411099001244547194583237896429851292368833543331813331032637012166755247760197888540189237783892070050372100072246135398624635361107768818172552693231641769607260170667123090194708278625522580499844894178074046829873016760918580104557976023304253422033524910793018010268839037748658653022524779200606622260990970978387249490026657362995732584604587453360656058457329188161611057574652254779942913921886253140413526969590614201922891773993493013335499038745720315107758229380865800028108033587571218750465185947051804414744607110654829964358716835724487078459162912381300113257087996456742129745992872728236226829608859551703063210694937921351532969039395346318129326995341234539291780922079212227799254097563853164173601982669155802660002050812441796350346234726999620976353671147436991133822997107570983437727862542930636888555650293121316608634453822624080993769870447606072865572766782541490522081541158730636219074696634190941499819070909561296553576858290239958292534257761494444788046196824304591089517795326928206864786108680505626332232595696061614452863241579987178373956818158404430536148400188523797611526168123645998780805463662387050078655741037232248859152243228762452324302968223491626766546810173230564437796107793413877740922931843558635072274061890901898929456857092184088797931788423035414752588922385801772548464674021045980261683544145537682107580949867453852131550468429373619324848988701130945281071758363178020072081998018540253654507069372131890859973368419537931698755091342599472715495642417590902469640548165068607914405337963729221242619059484934483885683509427116234957815616761459197247461371892590377693942687776671314452924864134103583167260056399427982368753113891845148954990056623252586966889046678877565056485100701595095038124274807406311201535513523820879407956421485175972612994390606231086212488718030887410203555412632696932978030976408834072613579648350317387942548064728315862994509385166818838381677084870334451522721234317993726846155416564932765717824853800218193109133065792307506687197423829140955316235178977702070659375348970637317885851984427024052266341408814322772073402499251777446142253894140090439940305515531369450562201345850187654197184495003905372011836172947986641028350801240313613069428713730734177335578916032400218366496806033605536556860667609735692446691288395986661986509457787036377696943256303428154127819652472377847585379602461611866799819352301556616500707896993056554766912400656264649557554907023364933100004010526369414440271537368344842878787045726364989259460918031285771742253030709770879303184706641818495493523122805735628629756810399385954059666967373110462293634895029595657497783863138788864963878281454269821023326988617156799078941602269635220052353909943815712618441489785023247980916288251987168509899798037282979829868034550860959433479819693299272044083780128742892628613253322219151319574690210939032909821620418232204831069832603403894253688116291527851764226122426583708189807598044163927735631865406496176789151280485770945866692065350224727889197437863488318062336296186680147975415895108251916844147245355062982541767422944579521039412847324795951177133073608055316688115303691446668613903367428194814284122258245461017904968581099225839822056813497410686494594728548636651537915787803306511528727646117804752261099092401172792520209323273117660441771400765829100802371540374567083322530822066677260961316087124667490236869791302346889109444532956091269258450089822037254149895790724437749326015303604650436117180484734671209172612864703662227439853672477005740141617585091887005275229552571736968714472638516025656017355250012071183152962343046347028171656042287720643027600852097055350885922323045251844513267123881202369949581602007091669433390297172380628668719353861471270523149100336289609885098383556643062430106654926388752517305163912063266019375042910394787007083976613486302350134084658574674451623139038025509901874053793395722912305681810138470327194510575474352853409794601163038480797168376115079874900148553905563617099348570424430796221365370868916736728268862523942862193242118335279785575915655717230378414274917660384621625487008555760569296882098780044674241499602909081546260437570745813700343216608182991950261050279124251621432273274188034795835163494514311766163136015049191764591851784278758203846603826290394150853615644645923963801250566670286528484908183114795166187147573060725060715852702650732076267543947903372740009636458367382456547393765035019049096610105628813519835472383778458284682345097428022831034643836870511749732925335928485791428611544019030984782844150649745948698260045009274064010498674596280657621120508391140544050948771822266028569178655562597703334578601140066041687575922554903848190513257131212646509842556495755582978036224953095963077927659635768810845825373408352172323969298079927287078710569217623536765090297219098461772763715854125453002039909539936825698215885044316772932759051463288579814700130052374951453082054722611110368315839827675004346431905856944304453831004018257742615082830526171619935242840435926013253778308036671624777324673278974212243467753100006346309456418561736256655463675118540646301802670066398143241287287299245446769645479819857165422258408796656796982422087375044713342248668510540419299507447657090845904150373340172242276726978496233833432911723057993201256421361049348658907569067613480695605940817821459843072371309672318664237616114153001333958311155741689512149183457039511735583599073388795570136303923662878685838651022424972988940751591635652617526705432267182411522654064751184939265258639542431667641102535434539377032157697193664538354377398195341683561444644181773534045698433459566931525519901830584876224369015844909382725449678541575356592709280888456241029609142410834103249319896469740403682286162089925728567540846226650941041187295918280887946687962429905993707664492457108394313382797296261696377791202173496270519097313890990155845285705545605239620033328219637015336724890612158982271705069241130097716113103350284373813679955495383500999255282029181616778735004244859317195893213868292184087862272105451059971298277519791736698948957788666180080369652428190688387653946953649514402200229839380421107397628950905199634259333636849320495377295854993914337879758521682037944458078728681020155847457692426047627718255923847945695450952437790642069855465735306003211399742405715103490509866861467676088641766062831635514369093744808303416883042556004894212801158124224828207974332686030305292060448610221073863007682619542878594710523576349498815606816044780289175950324280163349563029107625212193358819369895079086954446219819878476275127396707843569402139337951059159242443599219011775488502222149593762295873642402515830910111753531262674685208908768014212627296805193887668041998917708200650387534903120117073482228401562594169261812391534483569610287649922653269586273287548183404742819915764918835745180715523012141029360285540375411007636841966890105506880831070132767663707899356819990412368598829725098920308913704896777840324368704039629885236090979847353849509175729240686214094602656955713921722766852469732507350114819528421292684807974025692710224948704755695582281381456154669909360112330722546947677305482507781444821707552646919489376623836580900852757264037442453776000299063603835699700354455969690021136515312575593174457515372186201218113207253652132548008359438840517721064070123499821835480419447123047647805701338495550641724076644767574573219300993352735597511627484227204909036852684734889892338999838144742702054180868002080666396180035268054749036412886559348243963121655658100570004693331253279340706760652473301734696472624742074902896814129590628073324633532909353899454168684320012411459697609464521566687104855467142135696998416791129015633661021410266954615843151086167482110016303770206878341021480090433440169249533825091999214926085107883466924296171595039621635761269565621397805240157743270567671974172186624426845612070728660906957593621767427465267832485292474553523158540710794839725314544405915752816862247357035359139832127596062103815776334562173291519348986000299378630086932786992829384877760981036462894379353306121938561466111919597325343611515611095335814678844131230021125029149091745033491704229893975809356768079675300492092431131477370760066259628578362693479703583627177083829999450889100522321790567819675309119828061504868880459721488065876185006186112047807224739946249492256879267834614550009847472176429656734622799196332896798555424742402964855027873248692778432871149759287452792854969377804823719931354570234627683205926717940385521754078114347472228267539396096564437838256353548175198792526575754993157828371679949532512195651141674604867611097016733085875440722736944319764802935879154026061199493522101683264053982935163250062998577583253217704349108106555018945571194168190553437948196194068011251845040475025063656648200414586306338133116051095692623398356960358809830292777772869202781418885532482849232364207749317188875798437919272351437918911395920989359971492140658892656453334925426879069791287262232622876619361067064381060454463107051371547395113049463759279202826555560869030941834137763667495134106068720813865904446957015349487793585974064261229264962568314944635390984472902826439366017279382927103996338783642259338064683420451284599751848243985170446354202980363529755556195784762027144992572005702092590272481226827424704258524763485368956508131994125573166107575908275598576423892820097741774286626370036970398557621023315690850392919939978067953004998133629730671367195473685595625682477116217776513618186871030744030111569290249954345840255743560548274345522206388937617701399788107399368970424057659028737548206260485502747113983583503823183071215918488002852416917478351448797890308076411458243539835110898543122633430618025877582402701106925714016312634986564376778178170211233293074662474891039643026175466896797841916154474994407216319281838776590743375084758562239320449441418881589592593070428660104835598305502690184760881478853201719901487022362871237136412369731913352830603563861032658610803770321434211111202213896232126833946087111548638094871499528339535298391464029185174673857544016699641233420080996654775665271403041863804343175102601120733727289876671940922463677853115686544600784809603841027330790627930746003311385159925736614008018778509818104126885836670258990086524199553471772471349404746872267406294516436418860435039711662108006170824844344045508057467549885296159686474888671039018917236284629444466193403133808713264202797232755563548054546244106840068311760075238151396615401756938160874090309586606658314031823876363601835137186357196700060820702884621260619547210146105424695195013627373263638516116779055031036049911850629272735257913561880130948935910803566345998394279952601566967228781155674488162287534867623692090954314014810086502414303474403966479547839108699880591299607151948508534061121233091714885620593996683226049230992229991082068080771932625540586234692840130468716210871447775463037044445499687838283860937242661255601109019429795746755222969932246313215227768392734566480452962416282245995115823381478864270793051375523487351906769767336419564490917676756368686723107060289221392077485819271068348236015291317234169303916433402472927791821244871262753458787304193389367023180813525479494423655681319218191326505192993154693569842785212866703925606422505694681014761097176477308569524672276416222243829201244812702316989467431041747048315503174342121710168264842722920826087493376935539122160930819865277124753755770173560244639408046184414841366543281805608877860668891504281419167480446551199229481300681102510223068962182488947108975896919025169442959773568212252759130810189708786843071958260677205689739378563626770257972950324851817146847785765197549507993519082873704914739528326918550661828932919811794136867149466065365314578831445042874252434283007578313679584660716614416364274127336215873131771730436282657444968797140749398535944393331190434101372466414293344554625491284699465804819594912826562370066821869668952771210564264954851275858671146368631521704347943583462991256523965396011959704969201451831476157282957493934054458859429360340750920421550007905085757926052644092936756689501078191843804536738643936665420637321137138567641631676295978471093160172391619080361986647944597585128311788789818991055538122834246236064484741651214899997045180031054313731684019992241562802655609553955094431928584470279531090535278669230838616150558826702378254614304662394907520904795775548913870104641498830776553400879574753693454202061476863671427790968411260066068885483357944904926270018817660296192787517415284920841578837989333688287856233192282305925289180072866312539476175180833535269539685737991651891202144012189782500033533475143969981908379500575984790674307979359679111721997659822178704434724630162182962695737522030388312740639556881214318433325333112585200739281177102107071258111107285070047926976812618611086425999701192590861189866229564976176964787067306346103538109119996999408013437968432666037221128462304254400110131437807850762078030668351928008249722797746085855408332179050923252793395622207537421504579950497877180820628334768031320800270997540985441324700411401182995592483971024832703072309072635718785760906315524516402559776671466592738803546635749630592304679570009139322230350147799960751507950831212229936202791378026514742462913361349590778340464904335162780915797812853164217491935210399892971720290810175010686748469678085612582163221283628117843182756848725372437818877978020655385529613878811084211977592574433548036735345704828479892851529814035105904883356395023340675643962793295525564884559786415992083971083728237212545430468952617368356525435430159387673862825178853581208633063531846363350323338475100934681047920971135537101653010942316595400890783695461748571171680710579507398016568703193650893072021887913854630992910969297139940072398027716241954753188469208645484792627084984938510081160750283047692631575725085225258370506643163815312747508366875948958868567508118689388273963042945333466852466668735556755052779490223725710421246431586876647601750533628391501302742694798387766144005615188893047100822196649478000468410862557887389473980460612819894544032420898057898697377919442607136738607339260294253611256853474544729657174997015507456925171813514047133229827225756516519646984580405089951595094177565080499399566902066339555227995405252460489606010335099295249303338081248897888821011339666747069892777688186881221329256103327464419582279790774657362493289756241026660450971582775002593101216065014058381204321797175757689829286476881598646621165607357814854775521642408115369459348688179299478089105325527683055423472276153257958816023973842139738620350839428085531621012871959814407182964067200632825516704561846203944845194857132607364037152265300642344319927813445218678858786272096925680521363247825094454556063067626986802320978978245093325951482501604484444455423963983616516607450984196932454323225042394246129585903925138233098809346813736264917533530655793044073058182211998908067771873467157261096616303870455925400295827074230965997991008232620339088894427856803559030514643531573395751534000878532781550769708876392654854878178681385772205466703039040211678244182960871005337370380964027142398498982471178418305723369063527875986837200770838125734812169172209425202123635024573188423922826305042824856922966258028539196323532340331374726914058944457315676486709793448162351723704066946555626744481662463343024624733931706116713339308310060831311594128054564937554927618349756649802451201390418006950085636354401283727520672984573298866290737011406137622050927583012453891624608366098686529011279710063163740844062606032035024439840714890189798191181865579294790359208819600586930592801249352646100395836789700102094574418075190617175430650676245235320058241014329991548322707749643714428535105281386847240768730259778784635598262310316814490399368652264323612148904684324090083754807176621149486895351359638033894866980362817394961902968479214162861886036132351010496964709311980060326082459830036811810920929877169652079888429649903516203538523223324770326561399633101341076656965459588165387465013559799553529549388685432052884221782780579437779725774888884524010909251825604639728914567708067049867481760698877391033330497447614771607644906650104402825540514209468333237854367171323821453331592056803742948295984389390702821923207248910501484393324028152768508177362522559368636942431228954752507037689877788187083194439394755107808778513555722839981050256114772033582301900649875132738108750124051692057549684950229399628982738697086118387602639471733664717529255411642462111279780817288640371365101302524288582939134354569027496948560784408395510190304836681841539736768124242490708104161316959211285934844985372970421260819049383111566778150914622720434066319001733446640376758223637514187634272071413517794838599237234613764071138207600542103292266198175876860050315501667444329250465858009163618930642497954823175597795264304118697573771311227270958076381415839016676476892008651833149264175583832832280034338495547369783415000552813912542334256512982133126070265032943042519509185180846792087733672534784198388258874243259269180150949796841935206753917769136778765499336828131371970504708222063464775720049227220206144928736672597343411977525234424245305985770632716696876143824867692921954260772681599735512242662865510141282820930288014506972295354028185244566316084667873925703248567319421732878874367571319955626068481223168661178170877524387195970733179522470186349030629792616580789008722793067581141243577287968865544559712199856216509859327896954902090894819870207921045656407255343523075644379892760059970451053254906789319101585589856864072008232033954183577877494754120055955178592890951670607892096216763813427915407760770831438053789166642962402829468536465384961611583447755570451423065440621825180484478297542412579420972205877094134921297615776784499918310780827077086062694381311751914286975098495087791579879442003953066016493079484499630068336246405164008652441497650049307640687405156967350273603334300546914296747480973023461801994853934579837579868266669632629778224821374413937024186335231527477333077633216404059535642961420549459731932396083402398461526599579439023415500062182362682801177026282053426276352796758337027998166535743210248631119548414197733158843458536798677742656120733505316965211768607134501244168643714036887463572303896225720984498609401243641131612400782689477598648426678310989267341913065548784127561332335367585517868181386394718649588547630918428926779589200665186489407316964094397970777016532992886355997751430271771576002368483241446172089940823764373494559714835156001860200093309849413686972454134945031812446124800181023467736308825226151471533500423892824695402800752806942739051030863776458594069981679783337217364805513934743975103891949285257938776003178839549988824054973908465869365243867509182546045764057724561385629720960935802321897996064100705931902665778622739604031214580553468478436837537812590437753909781370414511228790087850064672936614596697986225335571346129782945398119065316767498179203546850990121171191045879259148902800000713510549653153330834420507372503013105411193206075720521386869673848022076521903272563287164694279813083091689736608802960551658639106204562818684706361222955594707483678873408817431471100631655652497601858496910218359124825064599531229326173701639069838190289988369821372515909171722288993503500475787216699868142282915239783478386430965284999128150798078375182402544053019981372590343752770957952538690359900412397340179336134260874501231737376835377505019071518114810819374024114482663530042174243483948244538081858909417644134410443979843961524914583000702951210121190936183227000657902699326673207757331494823853707940430473901884583959548890560322721069817293291365823791490868378307055585908423932957464645826373857780126336162782206340748191644126126049367230120494407007987835186434271143740861841137015582375285637985498300205767310816631854268682437450728805040608221035828004130651653337966534665296180820884094246714383116688243779966740852363658924055343801478914179632128356502498558822992688623269159255135043997666142733834492442823781245054084096243259050349755560010713752848062744041852835445998204530891832971079506460902458446710690427826258345806011385800882597447404982922246665887321097218821588373839950192587941637798246362792774765408362032209234168294062963844421634503281290897603015315620317764723547065047042384320402166718928504909737050737752980883112923555756399847336868964013118210109504904123572295004183095771731406763925738063510147533408229070594565069476453240389892257853550857912326699254902087133723540616241487519318726176782181452349468690207891128355806951467520729029316057413662415413768912379974455941515815436168242774808979680288184583000319382164534447143232660596473611103224884506894595524740792874788252031991369382587822758378958315397653392723913370489461749695449775589910920208474495644072060248765329022665676111472571107672455725968173665338679266631764946687295660562049684376191938958270574050900284683776510828246294135584388974712390617009976786409009154812154772147109501390903088713225770294447152298703067153909934394996786495017377935122625459804757092079946483342858531284336507456492277476391980888846459099837644008060066102782048085654523543479853018453697648887146290362120267709179199549884628484030237746447120232566115591135817548976336975161709746891518896330071946867023659398612800539680838935275477956915453694796626596985000465909934034375623449389809908080059320985215297217842144135803028767718051516032177049322899896371659356674025252923337128482170241174597654320337636345866791141117963496856958908371671481694667993958900878164783230019804576337069043892142156525107901795541824415642600550863655472944803999788108354293994400733714605587402393200024163394370638404697948507039723810737435877197608534981520105463105909416323473870290735656901075748902505364255756268338530156334781219028267370604805473268242218029438463919784470084782564660208092012414568648778078669577223197279578757479734999499311085676193527726233769795446746365906599426625681967971933987934672586143906341546570218095260813858821257221052366921172532257146343284392992404699587076846655467501194221865421071591544458945356702044174198125484249825788743248985213485027533151572296586425230671096536424860087723740749856038865153112333749810503437390157626201397958206726539430279827140538809896126956617052683471558212411399294490227119322139764214864873563225715315195381361258504588418098107887560277288832848347812717460058476673850445242920092799198199609024341410393794703299758203255944799945263734840687018023826603702000231863147529928383190204389502655632422093637947718047626987440204945430364185299486990874935718225458128965570197577155234879239958779590924782566392798633753771276214475824110167993625625655763737664590174875365034817958931626306505082771146730865968103285288852931539700919985235870770470450901900221859415497635857189869540869493618815977311671776828717674602246572234747522302180951640464173841927698181772809946132156155534739209132228753373064381163381297751016459371346575557985291196690716937588190448834931916721346136352065073565969255975839528636148874055572876692121890884829365915728885744657560081023209342114087086999014769599480783208515803382990584673336809913293414444983865945691405495683811487298195994112513170924823748591043833109486335087365924648796191035548694045366507866555264313238562690914224993518442801498039319977283695410686013440106019374312318282548088263484542389588832730860751554380083820229449738716817117773060074308739984619370668318899708089417425844659747006794406159273887662237672512370540217706404474584930544182452759948780795895927041344723350222644626408434541191481658013539283558401579218005266718834890904887851289585813785311617440779382436875301667743325649375038553213694482555738358611812131524255014188196074700727897551038145216702409432694338958580817079022432640963209635144130818558264631900056191091701049951645847414697588973692240200027525275260065258137156012888713892324512325276051119337260623953145369038164718085348235403657582641518236968757589133792539211397351821520068969877185401069609882003083224939751816108352438682751345986726034895840413491403193909619019854852293648095870761602723064993142180286573953972287919931687969257787218678961043421873086851577715952149929885730661366968056502694101257555300679752180029381033840919473057766824088102753789287051188595950901739213861865098215735521832419678214433464334855847910165272190725179170018339596245692106158249645977532003716684607710265479573883667246634817501395620902521155657735534752964264675603693479138306223314552229726765629504729909639991943925123926726872335597338042346105708574752686033446358077878103893374147191885142512112394094174928146524652699858475823339730743594515964022158499855633474699189164678165695806228767913223513082584611174593570749435180428052785598708169484226811898179879520344263447030018691032225553005524737821349272808353564679485088111154780967827085400751052928466346210600578850732748063438279884284645303111943339508193435922252492586316142982575250321640283286464998756579154279131274481653878223180162953999979909213950035340647623189237929049950222545394755075501550637928664101452381630409364503200829005889662057204270965515943624816120169899091055579457412429328221248801348825376436710869852899385939473025959036745156806163348455579505587387046756756848934906310556138661659907052968306562806554996738847612127735542433785388140931962250454994419540496824321579710669044026138304728268479508899877737961151417666905906400772549848174381297299408513849217876943283997422061384305472896044445909311759503433765065031959991203624655126492856984103322463431429870948839282053986856448316499637641962483682829173619304388708234501639606787709851008620988218776396746151001095265173370518916380256663334189212025186610307407535981221861310903709478042954104942603542390565976040199857336818015622481918753456287920509130930910371522012807946569135770885344495847428867883674742908405491284245927502331604891912831067330710355882861664316751447657386400370045201657984026714034308512492300475733079166292085799353888602805801126388439294527986692860197444774361305380981983478044939102978671641397473555265874425331318594697319360778963879495827974945712517285638995155882744481120775206965099604095150872018633938229623045137908186941225606562454425124015494731626825894124093156585808108940002764335297994831336251935459105520745821594792699459967562440347341188180816167327614386277984802007188589253552303713325693524500093726161021495358897965685822975483195418408545447270644984978220889929623046123658345091280783695287536373176178325382649624614995593875565268331725939157132560543566942459420465167963568036078782159188314174746591712821437559292117445598554020168803142441871970149993567005737887014123048182989206966846020250506883763235740682979717304151477665894392747759698255642352925655055377556374044668894133293580372924258218902913889089966366985921234745565210485212415059363927482183826167159237382477503514645465321149455673678555934603538530518450164918380787143618353988568888604707567301305370132899403519984066710544600639289474794235441660316933970743949135016238128863755024844682254172783524153272906913504324953250553438537655449064728501870207634401754431135197008071654402564688699353245312076305023699585863582576486335691048704276830674285683459939121688945611814387242059907658019852838441514597137558687199218517914528613800566095935035399564902143629891157978673901794536088078033485047345981674302927807589097922043864438324380957374062261212427264575364571065123569047394606565093772357673754182469495177879682925818673794441036643664352600835823443532187757680211552470134095104500775045002861240889458775622627532848872605761131096242986487360257872244900871693802845667133648497667030150411559402296162796103247795848939878665968652662822695783039125378959993868480634978567758715985619702875740987157546757574955776355337909645208620643532417824247690536374040969599698748245492782668821875339065799868403687587060773450691431513438996188087210721674379592653512856291624655593379752265849616628257664936205424000130149834455188031240817432051899857452039561284847839360688144326600668183020500281237867285944816454610837054651088347334364171013010182603806517505286604684236781273323544814987679175038419249969014094084682628264369858478183355915906183248124368376228451406139270869323357306528956292699004165330635500704916522784401425178490502039646413362609925158995630169436064402544999648893789775124223483627522475979932537528323296759144021296275770276103949663770464258498011845029915349067139156878511039638070561160718859171709426296210907870345922307434248707179703678503445807982494379116562509734177496381722555411580304538749744371605318609267729688914973134989607646803941821309747828991238955573992021694450351151548692895898988518380182239567973658419622191720088692572039367151546582055643794216135859342764895464923877441400658001460263607392245685672791328680269867447751069075656760378270560489985210466838065374696225283936781326947839333224952339563168136403707975719903932055960794156358001296476772525956556686992936430419677263643146715746023760265194234522833621244149717567970134860619474874148211693184400427794055963874805537580042941866051842898861857930704425086349610295788917263415104972728616310981685152839524273142991882870671796204360427972789053178261750869477612716389761907937144247656554438642304235010322134074476609443662472466498236669241741012216349339613064774151508955852435467733468330618267067298157607286929790861731015331597287931631991309200225477465640858384604853431205896755356352761468682729858922429292088230376913931526019700444503934617486453182233521920548694746324609400192004432984071762192324716472214172801064018869566527965716731127905446601806058969248066093999194619495695046662572477076100787954648044299963787104743685033905850648856245590572413138514293141253004958286072551911978842644836577282334059272679499533578236168186715517955933466006809336008776463863424572737736712096446206517238498705171557395581450927947427738133202638432998628665601257887716083446730569033293751398922135311800337546548504447139010463341659365046342320254142411442526377527224623954544481211789530016685661000907992292579247043124862206857514054873420018270111776428455901300993042993639548338491204382048633146792048776837477982800518014131663459440857148112422749578147192097000609813069702174856300512901367200745751429833574736602427861133701286750656785914436033533498214378790589923712131154506013170590247595749955929163563573726599728483504610537845076050905186303330675598346932271371275932388565952611338162518633294218616150743510458629524126089959249241876667091600490268818053873071285896996308122966413410730906885230481749040213939587018053537289344808181741051514460687966398716982244743133464731163084551516001637834275409898104329763970357070453595609966224699184624919305281812837186327725958536272841186690007213754608704031787162272856915715853240632347794310418193602680723720258267873994439269017532014813733323631159143832328527989764412981373288799860411083734962325340392783451184989582511865635606357389929690864086261581822022228911751179589581104307680700906069655162284769351106957584667069334849640657924381505167048528165970060418319976528452582230217098924615182532976361628648931010808481821125868575593213513632181574416762446215896074739980835760289931009900982629287647867281018307412879473991940452168764526146312781582188811249599117081589398183391745998562866926510605716704421831833176563539760907716916030495341536529346089763763670029806294638768521617152757393713087806370255522054397477718134744766396354470666865125832516356422693988805389352462567226900824913183284371161424421153037278960476963032280880112111185826692014124594401031500914139257559771422051325400194245948998562740273448730015450073112460753039942010647888589678063983994851491048235446430278635495724450380712033867815582854959726493954634002976423304437909043111417749374110370061603430261222198490481239551335728882583760836126863243991342031692627204801817066903021325965224879862780846965760031250513689095820707914444657215743758448857884542948662199007987853786585745822695609936876777630630988871850142874412357274680730150293552225337283586723671823394458719715229254815345970326929502737113504169854911257790386662490113556606483958817209222227512362722394052738399292093963217710941916391709331028882379995034144326559656908545286535161270158518050058929778813260965835615106446410586273259140808898448348479385002210731014906530807654103107881631421492131627109943933675001113601780291683164431919846592354672530132006431442847555706309773364867480290982828511141406840310584577993186294250125928775412848093894161928341553611502854826263941918814699422797444236236025658093422391997794296660598690468341316537107710765704329898432910170562948670774752669633439813663262908762916931427350827477378271688988523704611016293057273419209059067760869173630639671118468169724517532927333843887978035771600758857022425446945504467591761238644851609051289082005166926847959823349840037588865515856845000550884688012727183116836111113538808600668422180195398238671650981385454236206060036621534885214474207457086669257533796615906107608016445060494176988043718177809760929041876610766482141997115840003571777758808825739229261993793760010352351628770989471598779808624800161560235929440052956801285606095745032500626092791091757965824688443179621695721630201491098343500248228046852482445416476528109028767936718576069064925878847578225467624265330895731533851695226678453164289746771411952996428033589046508713538230760787708842912393287400553712268630369427990749186266156559697667457750302762821402019118093492691241114098451066529916704178268235452451465522276957273067174906138752024997907519683497029482879559974855457152250786284614233219514168438182122644182639699879033525507924070853795907344065638606494870076197191538426225984385500222459114091478793787597054512358616252087908145629805037104377819496587674436136317783489806773261752179227903446810573738870793115641584948581369206679118837625829173644210040948815238492305431563520566573051204919347169552584253288598836574556780718002828190374875115713933337674624664747653310496923552485913934822377653894302419280596622571912349383885173336931404074392940529903780016774058817987918120786922592619777752224859852783057895484702360174147437479486301609674203884855476940433575575241372778750599215413946866906729360984992881048767720071617603782340737024137656275636326514575098344322062286297489965599768076584534673821262309882328452631808933869899530308926964026494020386795309422446030132206078042628552641337701330089308809789043916222520209516410120527691000926983967932259477583859966819735212650643613374681332909131171087071632263492653476430734795122340077588160787561875832510080317125782859658055473035878326934724008700363778896405011673849192598902207025406146924724413413976478519171619637455830615093051159252566424342492619206910134710020114920633865422153023237418500956825146360372824057159711659752568426264181532843525391093216599035992937997739877320814720981610762304773495197981422072500941206344905807533284488807632616628437217363701577277868892989720588639329121566240426576384845115082347849719288632571405485670210361032894704923818490859031108412436173308182156664884219169869618104440258723192688621042674038472067518958306693463440983740964554237284427652731974444218494325513617825841189389147143454053139931954830885089673681459764269007466895954325080494987815381001065583259705282950428661254512361169277657309184396488604798710991270522487546442646888889853736351823695682113526467812864269837596312685883414445187872799738102221951149275325238253614575171897098561638090933960840893755977335235285253538933038763262555496682766369580537302811898848680129349492207716069912125328568601690362810779963692374521268636105728323331990207339438768072866104912327576221665928918337925315354484413351194406687437883528708279978580732480543714464985241638977806388335148907294723559938585153671318347870819004473942785283870647476193789051728877228027958925330021151587204327748298705059342047341244593118092513280548886758866218782927700283334976170044023451491742209265958682023102418346576007293041346362462623070472331028319382839249427041115322868204795642818620157963201496575738511733971715981915506549056828180253698175862449374757264629321677621906477276965770802075762324291271401320724672145677608653398121096864083493633580693363044015094098193249529866164680152675621817443252865591843949024409546203687991807271898258242361642525242239724405449422830472687024820765304383383326222813631773370489884729632760303400367872110609427108849786694894272013768494285645162285731205108851772083868864435988394012515560097517172694622162831277985445019654893170001966274783525893472122366859256699122069185962940448884136207173020862204551215195535946491155478848357038438988416031557218335920058749931298680766652595965141823578693571342947862877691945835759355401168554540554351506982950478539194762267278800969252671728267913213818656437019515496381888065073165488309773490564615305725301579332473702470874467203716067616622666312726421482685540039061436889518205165103328078297386799292130642526241240252571624900588552041787573420655062299683194737677742950553375040441938925159426827032117265327903213757495700615182315706703797059763578636009150203977690175906551121203172379839506192642516280805910345107501929805528061291497189210706169787330285368655395339590434032728325234037493481304686884921584274170325271847670969483423417963763620880165806319096701029986983589931959141043098069117937207581838555956261422250248738531561038416909700265848742785048246529904198963863372438596098678794318939235509437271851895074610383123347369598388281983140537210932139556604974324336635922014521007120734290037440407739385941442718682825229936278449487659753866113120959093121300584581683537890716979708020367695082418720529605031264643417542746735606599170856287752468362625527483390107031886061994957279259305420764485470408881046317874430236151137934625724961166048735559062151181302433932255523304854903066647885894841151579702781104664190232204160544916151699518221860702242330678692234745743514304861405728479160951803993520298281692063853544842262634679937460397502745167986760617624571199128867385363156375641371302541574974264356220188505605858174571985008656047220174616949236521695370844026802225422903119459278305130287489981079349026622711580000750067298965979524124485620369183528108655188002310416433079216596680916236098808333848450887529042743215501766950456731500565854171820564559292121273649296634314463670930965788217907982931706454374268095608702920438161743405821939425830012761528413943253012215785777376517849086969616633401026204523126046473931939534366590899517182735607377313473209545425714300144282324549279634945377278285394562860562773890528984523987079017541596839573814705733667970681571853571022822792678641816891733503519275121564644129307997387425327593153359831429006737943375892663471102172383532228366839349557073620844195116268319106219142100450254778551291169837624536768777971583337743074894018346516197928991887296339636286314969861746337917369165668511935937056193232734881860485176641785677745519602002425641673103700920805257600226308644794375661290578043390552757737480169325738944753548651317784358957341406363089712611420394311104864061194189050722711325987187878013657996526585624886551313223754890637362036878208026321951691281877517120316601755306301379556824140076883643589896868832624330795530416682955980295086910542919612894250908611923870700713388752915621495553403910917061120070471525322333005699387170008420917014889008387937933784077774715373338373767113591950022806185744510411502985690958263490376709913511670650252269455375213166350363308433341086460583945957715753798326799125388282196896711048418950847548398250801033507040054591354773954015391163443395389613279185004237199931868648462158601618276180100284916600125594333294663262305033123730377602811938878506169883329759760850772889006073936459816761089118306867243245518274440132930936360719601081718499411007590409227262651065329035829673045633842192346952583936582698128453183739229394519299029605167988893320873686573214538057454850201060815063681634026154915338738783386884327666567429564935869632810373423495883749367532485195182253418847325596785641060849520282859907543218307363613123981840782506018014401300118674451232436047367549101828961436371522448927996083955561497331910533957024795675741904967473896631640408650347556477422173771211319481633083635718767526426566739875966357051720405761037681102015397315323333373882278445690772982580889471826092252810084573756782092517973237603219495188741195207071164779236450637902204369978520832362242527531316096231897101638933441905268694229914966709920479574038248192117109068267420081797456294437911265000734636046138054792455635108631174123072806998812687860176509090808187925141021477282210314807941322915868050714687324920117065581204553367102868548125109965988605427826494452675809084128478979499488553495992236284330153137934672500170744734952003734362004672394651377711620944921122799597300573672835664786478546023021161532608599552837796653440229062814728993461092494641452892602954664476393682651266478172660536051933620923585280588484229146163253800612331748642630153194432290984935799883699390686588480943227073242125811598771117487627907058010765704335235300858421685246674153514823197116679211810557383331277571870363796714328833600751732666014006396642265324049356555469392776027639157143518504566996568696173594784330684550811517608642351871106112921445606185901374235958192076020417207124609218409729210927294164149756354662090621217718661559815362337281545963656639316056599237694077911430945910541417561497252030488034503591937375576340604135105607364726840566137502260689485103653314041483475373808652947709288346689612173910128755930245191279399067993090496527700157644736543767226761569035933818199343906213819128323576910908047431715179001413556682869939290881883053825133653272851367300427935571044037317680769672660312939135745793853395073442761384586660753707433765641127970595891797659057137346095492229703965091928247026901373524103215841783295877751193088839491588833666736890188455058085146452880673948960339386018379494491449231678202846780135947230031880732418178383576973837595698356109771262175326419230265104965633103687055121643042569116754215106899794796404105538065474214529505681367679474353790609763428297624707738863999412984266467822477502670120051469352112651523116425512951715878434744893396413624776575392530746960487444084281080716124430826867657408593085569848273498426569358858269432279599401299355755044149075962263915202279707357813559745180902085990458807390827113998278899504734357357172770633127018896717836167714972904777767022003009485437783774858188946977211826218729257135996304524984964317362867007587275092662647471446165624618994073749874477440234099436678259122462463078778843255362692114429216497306292568353378637467145307431737023951270072916235612826419178506010424564477380711297628919144454193392768242035158313359283932676866661261441326287157983285028740480759042202616565260203632900117980889000767175218634465637303448103445289472795080088101224337379934465836845216595259199212743243148456256338999913048283169448371836924785762552840523390560317891493354816939650098936971117865054851923218687566735264796547719800928190020675247303216252300282396144617688551625884348238125145236905481489650914553501338465227415018006384599248039728960021220160234722592686308430156973071403351598400053941572921215440337977683719082458894261642570061612291826720068137285536644876519281060856585020448292675474177305932981762999841127461496923153321224334923112057514674133012448744620189840985454697877649302119164824657024076957965005341529611968181724928133770051152900819005144242547969372930486498800044690814404310683216281039312564292024795823750656633157612626541250437740118214907161223782732028593525448157383018427824486570645078731748084481105993461870232630066314473789430135607775785258255530819039194314462775845300914701839436754159455370375566671640351019959537512532266812148328108440142121738454565142513833761790498903236036610135275574957864351008567769466376842829827750300917932844822893595273661571391824115419640928431009441711001408085852852287697754272222443680158079961344576926426642742299637865940374302348503185295733442519871015695717627091936636348047197422291459479554288500705103875093634956039555035996965568954701762716560638681352287583678839916423955215103261627311111500728175156403733270692231115732230294281519164862984563861600242743376623648280628115040806095165420393216029420599230323797263686882497525024318308440831734374298376559241269441710676419361420890272343929436398869729408495392844626306255730519104992678568321899368297309559685397826137916600989737748995306416532711609386821940793568905092761846207196973871825022987072355465257140354992326469287851181984263983315601645237333399045077449016882542364457198160370356471184470915706682583140051857451299042659197712345754291006194952915230263074900230865187593699218274338888681773815972848749716908216247392550789928045257433176613074601624930533665625378048147771716882780562106188362212249705520038441604028762755150266366657933154305481958857289441717789951655533877951048178305269594044325350088841720528913302837726158016486402986464157342505226678432820049978661276790962492249099590961825520770289588304257566942691550733709544209203613603654553007259504939248413066740218105626112853371815299697554597192817700914359899156434388571089810839022159107552465474031309726411980258411067670789228279093049613441502748691458068273709020493028635815891821570532349024714867695720664646832136609511980259292580298780653290392715031512048044213126221012278539281890230492441784987638690835251764717723349940279827220488962769229411833373075119561770448758929629723608379329966140467336449152482393368488690205971117474772086391114177312946885882260242830784950233611886534279034445949671779531700409070221692484401307623561417396365589654187256108244370246043474683658110291562488715711544828033395141921168905154403684606943538862752832208821689409625718163940248879144320118201023091769413184543127180527263202840267107734627712150529599875418929095652833410107720196225626761163685441201629947524625344506375272451271163443995135045659504404141222749428411744406963672506832447933966140225365789784399072882513032313662228613344725578090216549373384957887693604043044741346041364958639941176611188230497668938796906895710627586357783269068928434318211247923391779990044439782641894597560285738164488130729065337829002036499571061589339093900725514443269259682216049454659436974811353755340484153424685788524246412268338986714157409386044185493835223185937681953489660216035842692372364495937737399408173945949619534340112837336968139928506326240272520797054066629544854267467159643017478316634382535168067897456983287676162508760822089254359816104446386699929719991012840048524872928318223552925026395495969888105342238909546166327518593050916001905123734563649253753104574603491208902415369697931183977760641956982270408494439570143090942064784421472051251579876515440790168929440519779638041181178292570708044701942137797273270377153572949203696464959495117893831832671474766727630971565831323314674507416390239415857631626295673763549881925179492188346755307571726378653704143860035099605511535652424784566141404359161833143624270952236475060269771808818797258610000197283085422765852759275224534137266948716185882876417390741881134176958368872006878932660794758044606106741928504601212435851938897686807136096126708262765604596809614304856575496774060082634341566419150307340684625477461434433504749971603204363248423293415486298492161045329335830578116843481764579912632939819054468234715975790343610113050301973029285680606566088670625741122058825676334224209468637170295355414021105649972871001637382735289284312203119422234894241068047246799701831966786038754181299991321144367080729613350100967150929840297667981979257461124279581359667116115447658684095797837465657337858069549936540962284203322657768873896205264157100069788494765850890932411548719452230650934801137634236103713110099219717370422673238683750860889371116932427348754200686596417542324481557763485451670519546098785862529755448120246001557561739542527352404182450041164735932156395521775678458026649038672985859680645432962167037138422552858128591715041465277380984441758283868201728468278650476923513378078494202641190443644821146966421097254596621419637451692981216791579009776418026306610202980608190332006963121950414587751596274354003360523161012618695826800508485998218931850179471281238002687073682366781057850790858464393791750856974409061106256145957811977258020709428762133652427651090068391152750583309289926726651384635812506960247566434804410141179947699178331010541509990208843406230679893409184168024808397441160778672572064719234571684571453764660282379808339341393943899398578707598627868907734583409457719286053812036541612789774541411434564200570839733316368858626440733285865490094321262319398115839102911108858271277700602671284910979058990820256061295295445793935451602869185832140535249721158794551590338080006514564692158130037537443276356016627019744412742195141765279693833968404255729499603291694272167301745796410924106763435844130591388280992678234250485565715223319074391301962156999259320404786803731849367089734967231194036814018120792892211725908625622056055223223586517585404736929874867417703557600069442413320871008842856341868070058985718003657048484986348062030408689290945345311306717111678266924841306499481726127388493777821620806254417232544735636146470879193160676867550291058824484984339991481576441062931428654564882305791032658476393653004951396010853040206610517274500351567318563041358580372479672764879481400228073496669489612843555243192689230442034869673569441568508032707508604599040837614844039343522823458902490039366163562488647793637935209590687588925592705985591086609180869769363863652979471694009957768749109071148701190413269034847610499221847333872408099079636983388396805806758240343237949573843757401228542802308144405528870405018778918258264632917489578437220772696079099604982303902984559492968814275106207165927246769856236686873848422362372821424678080269799340752701014309187754366660674830276357156924503125733540691797303019922184829276316620115780311363064380179582070832012655093997896658392076253279795964495365855637600429288639778808263020393924580321862033444647807136620173902702980227418904997280849755105121694201747770541699320581794907834204469221925671540872617592992543247940328727566214752632157043124814910000628762064960972931778582025217691330225902993204484940093764949105651513550119799918342471826670946227258820410914533404329370907112550459446343185205473858306921830819451328919014314279184204183075008217280447836357133799814017085062918071055662910494343361214678876912639789958641751886978088280126117842433155580207888339803534630379003817245795818886790255663144727226825895953569515084487638757486598690095658844398562457341741126151188349755641224211363582334934076235842955376738638086512376447814461272352828711248133236486188416975616573376385832649221885620501691212145839293683153562996512898759694641896129936930923245699516749330944002637826299557752229568574760094545905895669436235581024777791817273674041452041723044512811194113445834395311208063299310082440895386321132289567400377285492242639041831485913637519145355909232458340723724270605419475212002904419146710818918043545611851115642095076915648032936983072401730433117244320756165763138897409973196391599783121851196983331655098803015592190952795154790931616233433913515079921978193831288497135436634255681017423693721001442395967066171057419940483111158123202872146444730236788537415945128571115164463785799083213462283201739557928149551139081980470258869030306028029859431316835114452001751558681841643949695056331321650820888859256804055154640076180014185787498831824784049752123091303930871422953009054669687442685126900098595773537948898007478790356126808350429708972421589145282689772394554901002885733286159935301093032555456921158319987795859343005158081405422292439505008559844256354907362898297340453534914253935061722204241842222627622356139135468646847578016854796329805474829769276849942932183217518226756645156448467423178510113348670189777428929382985503796402371825491932693032150767799377687414320456076914070916790138862238396315616852736862918517707734129544456246760828469557369001942422632057262073032689822130230899266853261875547053847220931159840098918060176790657565141999799521448202209299131431916344038345245640019214265838779540154918532859353649286187986147564607459000130187753829630049867069108824131733136214367874719749851997153880282861912200212843840896909310620840681498995778560713692856197899643212654803201389260736890053067530119180143072056127597245943175159662762651527130495363221401270606773961042380825313812408586271255869964861250170765841557809266911078966087642594809796409444495255484287923073634380913516134619322519303299955205270693794807841691614063078805883376289441121356654543699723110396738794493971263819227581510447190849431893065177899146240946282120903150481620975754524507093131470279661437712616546184172545897979793345156012712890667303942700808077874854674017239681998243042292956111083926686253469211404756257501326447473513489344691592793417293614681686018531955277539178612754495559840859540880497424548941385680974861676820943659831180180992338022061551376254733789976712782305118249760315665190180351628885000765676225909908651105522203895320546606944716912852841971054788088529896061442118181971077085139510564093696391893293928732980784125639459986461164413167680197086112493482656839436650297891575804158811824457713192817873373944297442263472824162744745603008047240117984542893823218810568733810167572005954931779288275121462709027910934896246249162391590652656542395146308103454465506033100304127910156929818001617528614622426693504192983048817893099064474317282997128886332118414603432613325456921510461532023365543426260482901880678322375448272429084744930887066557683613460863785785294055692080824744231378230755948702646690754434341420730879461939181287837965484613984624369810365884930164639158555046922455411607702031239131790403886905009777868920505390772923867557579658961808488217047926143909265741925582334205041187171438533709691423608904694322986917122651774161959644292259960888790179614579166604425707124505322305515649983903736801673956026647566679928992139451975323379185780632489154178810787189942523878419688767558178944447036218140583823857019226412070355578316388074535678350827876298000293894782111647708519197139989382295298244926279371451305385870054499162672654761441438640887531209352102148203134727144458669993850188825185371179503796314664593186193193814310446913925366975132528045173274632695648608583380736572921705743087087945980755962488445929423212491077406799407434791948719599797276734614761152999121676382975531158282075901681996867879730195332256121226580706037127245559871898073558833081153342805505150960103055459990753572985366201021403338819836943055201671303763695346846520866144186226356600103915950905875991576344284888625449602022333900998674344393706591891834251343594300118260112246707809348274293420934511284584151206517722136446984805644560096313802805175466265853146589251312506081782413667283792211377897594647726537541449670318006899692179513906971873909726778179410842233831241776539969863967814622639264007492548489046022976087765031454656366662278024923184428581339519825478733774622853869005283507878745358511244543559765976960733014103198754672070713509357039174780432111673918439705329121776093017431130821683450509452770543624318209038461137502391832165376204283107898072388067723914266947610107987357554662325119870496646411082767583334917012180619821464526638342937081829523115081966435496172167306904829070850955735062840005494389187107494545289874374977491798423868944113026682425047671912970408621773699060084504451911371710634380285836353383138293317726286893158969836600861124059309810087452936825166172483604122047486042207454430430109110097823439540526372985504782825038038353429876384981762871080508611719389179533275951932549634457801069906673356023655873182465522004897315285603400023727203333609481564473669694912285433128068480914241505694794007465052588574176779234740156930817892349700432677847793944103275663869695258508485714522770027718277979937557125219807203734546693773661046980509064766742435366131515634724535632885814651492233468065205067322729450989056386770776957699773373726883076508555986062988518475989040554453840428745598208597208976895775062851654820811297927393902020726831218317706150820781820018333726217168538252259046272840257344157557001603746060056171374580683008535088233215577661624922653066229017455366710835876226762780219638584864466430009949991223585871833064393347702804097828951400482260187404279918359158250813994090176154783739796689501666462832713207878873860512859520769320534276171611659006449664301193758497906078498981635932311675133053910811164976069309477136613293863888961038248136579729076194844004487719033165167941510983169877318018720380998159491628678066203685480748883954568156527195026697298311289393805323312892365138011687670520255178869116005031399525283336270049455111501876163167246622134064599770256778510030441804303567141093921082803821579004133606528981882776209336772995390592022578314743299633446508503334222173419911920430445399228859785898772931040317294863832376012837931537840031478016182081831563771438989957555024863076458622651551737054986569399246935435598203946369578522953216005451816911693699085061586469521502921401743412326267411657636488425818255799888628658659599362849376527475609665297468290422475381783864379828067779053475488018001422782866384272647851347730449339806555792478856198682104328794707763165130670701231855136775860362808127776947948401407172479292101432770965929900806102042783149001109843043567690927320854171644616578034268404694357170612731031425145130567248508704094668382734496583493312457572781225329691033808944027617353281249071573767159447887345238788738025646764099278835075614333576117028681043748104193800735889647726760174895279510050604749101134593509788249625192512995054641258212610208166875045164672657770856345417398254753748757486123294794415232172589181493124125282531171955608143804862643723178277351880827204296977852918420962966167792699040520426869881286221032023477892246494819774885610356462679837338731166940659108153714067631635700325885085545250542346604727353127824283531460762671391236404179207872294655784818959777306866715650366892965570543440011204046122882238937851769546958453674603315377904513615169506122254912086459754389231263605831234972761214458631018145976159106391571379309266975642940508706757961126602050737196490341011745581065811828824594980594011597331732088733892907107662039052656220180680902105752280194063845650495115311195421102626986550645264751883621299213085810617042531246956977890225073066208459080690596931417880202779538586964585026576992625772349313526093076804317075072840709279780846538267815730810778411078883003184384125586685290410884380265178452504479949921387783303245444727433877647504216270397508899795853334939846098980398519025525908696036353237759338613075211003174676201905702239637839717772686747067522519317623695666064831637494735006566774441480790168925734323231799647276538742369256003002966198337765812454346418673675051461644340407099086885536310778117826445599198356908957940485784319168451074231967988519939488672789230110441243591932389494204682755427805655312170440679347887794506453520928314753164102252876714141277808968788750741656444413574452128269080439887082182805282751444494786895012471564335152307523538742995593390339230828330490772104699279696545540105141355872224864309905659852067381858513618837791942256077630523428068703534349984463694246589055081465977277878608895173813735550674743407581148017500048919715460247721091172373444424908765127246489683905746900650097983588065555586623915196270456778267706628974707396079437928058142848984342254807149853193033750688613923832514985847419018744098474782589427786035176722000012493348845103839809487951090192063194639455506732853029626969079571986558829929179350915562097276616150248546169861878116334396627850731104148290440911995742613583110967803171333249512545176481487002812747252947746383350121533183751665681430261745467097726067245186583042952767012399276508354056929478920897246501380304237846472852558367425795876261516639304580793724922861844725561181860823826012167414956319637093139859378924537978407579499700212630592304894261347009478257637543828253875289540932028031567484553993794912757426215736030121574633079453511248417798978385406155632077038385684227606166433617789874321179998131957567871586714601411981772924875193065324814304572342610761147628868084295339311954745042230643537183518249805649066185714166591114696003482554966786513350500756528568175017072842778515581849923275056576949623801281465139417641828688161289699354471434136588994326628837239084645889008543163211620094657593836580007709487660737573660255951601178338900357552738814027291423660845908474749673247391206980997849581015639030201546762129529558632398322453960288050450506419285832670553959295017043701235560172753334668948098619662795092274194778259775842975356275547172005645580855943370518367406819780699298254903631486046605753524663454030887977892100527232110219674446059645644982817822548584481989184364992826782393685322256667745504539731035217667271856180047884198042971404827892690668191326379462705774133647162975320809179034753044580514698853311346716165535973313934234795873391406259613982431220633213140741255060559074404415243642745958158902147104584665360920041063595520939083045020400991023437862923988091065069480379023637528933429621319872461550505990312455191161046304658531258624206039752231842540552609147340648687371936163034358831232939491797624830098652806514415111672043709670652386634483356522054342812203973661011466662856416853055031550912787945171107868473117500684390674064983857372371447387670722197819682856997238643979990278951838683646114447541762047453262131761649698097128361482025093649570694881358914369190966930276176511137215562591522011945288564936788868724083050168412189414469510364159276819854172506860980105363870129605405451987761530499836368079677917798024485025144171643106528461033205416359239193489916531626834799040438797283350641684162042004287629348322431630320149665038621621757045955980235347317663739337685105944953971405134322117906777664175780928586507437241865101531565609447162971095648510816645741388405191811048828839189777547848973029151580619789537125438113003665934932178677498873769528064496002801399342054462699263993828315697999411153942995934524427634851739241464945933921725195739236287284868441574573312690617534092244718130053947328908245196015923398423474657591314628970555661814094807897558650207580957011584527138012693868031773651771386316780469781082615206192519473588824722258080235488558174902819781210102542324405263916326868097053921549990431392098821140190448450434240134425862961551647026483014730290534682459037175352834347335371017407880977628317966076305156625820257012479465616423992424557619194408212154545830236890607997273608658925436622739153726753310826415978537273413529945038477707949404182070382909066567855046454609949189614652815613354788540620836673439402241409779624146019832782046091581280737900818499868905793529159420649680095931346993701293717903994842449227569551654364389361932894685741417281864744255316319338577658239580028832889024828650216587008795506592321551893267384902369172169062724892231231909557773258009535302286956421310670650033263710262314497656021748397429250168036315964827699705210466796902018856016340226696461515780831821357472533433211117576296350523127891166833272412412595630858634081391939444191648333114352417904816014835381478466465252909503617274469949938235876454412205879431774036855778141597663233305805415874986569611929674388580013304253452634409749139977045112355757219543722294543393602816887013669246773133835574381285701941762331435087384499729596490294024192939041068069458086703741719620667780501883932100051089860219988283601024209069398774212259874730099190214965737901806747324384237562318380057621846499331003155367946308167206183805225141734499860195888740141500146629105773079097947375249593935102712642924609124531832887033849465307955964109255203571672133959689583475672939293397052545860548200910890652602828075448363066589071288234718222171800167503456847093511703071367859362644388963570047616982236031143469782576227309794885722801740173022842378211197392034885123988864185642335651794130586584099853995706499323707802984820810725719874180761364169078404141766655549331076690759429768908373341855052631459638958606612478766338528756287360802067431294676481632395109195523609119940529875801956981532698875170962378737989270415809402975943591102300730908299883767152834682100690611108257414964941971064550850063105883972470322815499542596492444546897793714935507222668283247926235940138702575809536528107440763430793507916400507347369628391526189949617294444314140592617787099253258329646443200194913385916017047913125204272738833521399005397119672161147999157333315884284370496402448418169731387974772230740653448057318631947450138383735024717277598662257491846105293356849270888973842011889392681356737707349142767427158813658344051080740476017912069861862009042566147360581366116566367310099087766962092109193182625896154650018678685239570202528999246931141112445144311947646445745346395981905266661238731101074264624685867043651031706767543796322734296014329357627164313822725306586104568821326733428845236842798524906651939612418770017973714310149910047682191382761521797187250075998187221712650609716417141159244458439516004502294073721173766745389692612111121345736044117237161046193878417901434578105194977764343524626531746496545717986802400512799055839753382998704448702921196867962074697931618165991830556448402751008732842945129539884515426865533008263675327920592760065540209249256395670388717843458308727688094717469177581798699003723229092410196029412880672420699585391054831562215991526123114532265245424231359485359298938043641244189084460079065116842053453657598369182599510194612072968406166965099338362867692073963494488904654177988354842471406157834489684685398665432166148459944746791440497880608702738494067083535272942448555446201374458921299673152594220214227600539888898266506866947235110411787778114757250590592096292490825416195566508259667035146768951604116180659232901593214255535030116379510649550216710759714350057086324398613107439927587113691315863560705479523690817479855685496133000863344286459390149557040980527571997117481660663799689288860899681072661851851029806351760250994059763728685544871037778490376407716486273838950805566874506288102924407357220112146758952527093678427184133644331216184082947104582324747442005083828772295080547414597233935588323924931063749804942393602153761865066729720361122704004420747566922133876729731907757403699808449503860015765390844700068479712174966068708395411733459810361831151384464851915745260260017963257807323428025596014793520800116316814009484115345360653243543973535501357401986149417282700422533891513440195255713976808122044371083516858726022038191879878615825345943782433313905232828696845700165674093631247334972276110537017591070788998653386698210091666324032019836835137473458199956525920352515949189598089407819209564446751120253981512130177531593631060117291151930250541493562952702067715884678226684488028928178242895331933227038659881030757060857108104986208144268457589068050641930771899038677903590104567886756013858328034408011069010055763579753830279585611730841611599301059677271182891881868990703342775602223711897007990854617965045923065601655981935504161916544445834286097584214028897234837645655868501276921083233011400246189344997059376344086354064971696698107312057238843847335454524909685499830302813555875763890385016122654395415485675671938724517461985014548646443466680872603696928019651006937107216146243294993155463141600382330865701031688470312080667096563247522053911603307350508050060789139679270185666991394721902631990684085775593337223379948526610331796086502466765537287946653261176235827565181452566546887863618942750227871635354587643903581947316589549997973816961499989617101921408955620973888199336608416232703211520977350928092349890693420302126508876440334125600518269873885176186291056939652089682782967329118412199209298554370488666030659274712156541597068530009131762024082918737978476394978658305884828084550256713606687958735160129882281774040537783044985039707812547952849363850595689184057849101538980954444881709587933330462541712468141277933235145027646425840278950685191101803856109878991334947864828295899939592464861307581933760857983340611847243915816331404879609708007224654939996784067330117197661185388862223169334135370247932738857913294431468705442706230785966767518919558169410708261882465418062763804274486220448945314331803203753164497995702233395568937039653715690693559626908442962321562953820070399224928152217040856116569085897963163810247003942024194778903067600713927122729764151239706111331227860251133373102077846943097786789373847362963973458456445260399337440398768733145648318802534493540042319558512191061037093874008849062162086398269818972869969164720278394317019298994017927465715315505801227374306826159291027788719611514763370033163053036239295238608299152116920665057080405886997994955139690351807131083725727105350056610442471935545113244512385389896894552015460750993191543825041468031262267903501032806002900811421479961727503909663005471283144364777646876656222930772273768519269639936780589515091919333886821194707412478047923324059202006766208901309849059341118981263830366179020304204453563190354173384156142502409584879905699171249114419475332537747577629101345905997613497871741347771473607492565455218695777712868243767175323577536736643721613837473942897578117344902576217462441840905507550472359989380647137018639768660902624155680961164803203806605886664400802816872381144309792915180651542180656769907597904877770421140320519532207847914216679995241861058157016427077860830131707970135440131213740168765624312529016684034924624699449139892050616957833078429307516014724353505557544339113819145024972723712733603957915942941294208698534845166277373764459105631844171091959056246744290785021481033387259028107797464011071483054999204308050242026436985581436133236208431372194306997037838403597019986826529738707494048550930732490905631044315280262208676604086068940417784781969396091730762351515626033714509575957166639877963098607970398873899288304198352496094521240751105092763973739474890925213184116139692642897042374616064155169979865224774038054591076945526034625564542957151684130810846096246309205290755050977807674302017773673047267410283555672479324545587120020796920191027298396074768843993992457294776522111569074968867433441813966602607445240744507737591894622867675532000628056921325836973116003244975883144116751725089634862386250408973576008958719685585662560626489389565359996828152618154610922824881374136310657474854635185314079292328205732547370106609731544579942612431282180398662304646421678102011868457813549857988270769483649249446076021692233695177390025738354311770495465402678665577861635119627453906920911972159923973190065548651052978694730413873329105954793005737353419364261232159230793290279408368252196043771763197087721063505952536125790870604421601750776668483452999590842063552324081742944983740635344977670699155379311051730593660077051895694497733625271060805151039920638535996973623720761763429401672011750939351964660218696056259139350094188206989526407670495165950704035436288304549969360830976603022144824116826871346929698909923785878834449836717283792344247972544655387365768507851300034789743362337482705267218898440805849710587942901790779526295766100200546890809495036489496235211141045909454376130269519688258335289661827297984783302968323501356611988889594021891014811176409597160796062862090002253499591309667732716077254699016310904272377203963612738905140697312340407074391126842153620377720708578959944365929839907683343649005276117424985905823428556039339103937288813076621142931324274273298824004605532704293487435786541124775377270287012811956972781084002460415873108556326576888606227593386131309706723782501295558784614711507904773294399730272553302020417854313467764939251315887055938834207366866449105421691550273430745208713126037399038435354048180922263887292119765243907842015599804604269287676267186462026937087195022963277713019064773832375158672330819609263261246761304740034748105795510578077924797261205320667923951121586515924667393131341802342030841857200308069308773848488444908384652899058422875514923496743215998352638898558474322166354863529612561902441454874952856610540601305768274449039262258984929166059966084951442645878883042335250865984344556144511339506709657025143216911332442083460479284244456431736691466793466221484588129690067609714071108422467259605568741228256768796885652475015400744235270946399889858465811002320823968376925577246294284415631860732337336322096194119398007315361404892158268751074416040313070625723577516015983206690923083097754459502550453236034306269606925515313533870698345056898445095477980428354894629034799791812247148467750093413024038334683367902157316670053619424805371334792916577781433409550280965635798314893487821742461098867282403945879461515860664713863053529305312625519617426989170620261104951553373299615665765362241025905300376247506575797264258024737233974253253634948915371196586107463894416793199942532599602817940015339338770921231902593831628844930169303724956527296916753507133101889194383724212849379721446571289966597868845054997442591996778700242834388987163121256203075975338373135540242407001844847072864507075214227433750578267583202563505374518339129090359696475376569029566998285709763283558792036688312707008840432835080116452545655071906535914755311653729290650733855290566215451696233032865181506043279451570117270062466962352910286233246033126864347482733756665707356044213918161341921996167497238472229125639939342332829433598017841153831457792468634849206006512373089824258538920560605802993686276259595661369433303947406095303580746475663833136251574247368507698669339315746082791312403584893718564238354412267573004454900398485593108074190028894626846519211959119405004613747006798496421504615702924223343565183141105406995571030880528152419159440692581416367467795448789197021554128111665660714885156488500830972013855319907721896223321286363503575662010176259976379846996002088221138685344615645013465525448789267525175245126843361250360698334830949735869440588658032826592265793999643888660341385038878643061127152548878935838474375089947173400385682730172697352243898449672559423113586737506421990558355706348453658560253357401846442111231823246274016962008153333349748946928741959412802729864251083372222163584951555434616062008849203094351973927315642967974645824146940475840078171354800157254854443483202879524401534968926300228708471055329041438969071861785869255053463305054988312147890241231559165462966213593200972227057246952587829658498360254496647912265206652090875127947436591201975005640675890776799612434725329331140318842961445530362992214941971175574358785784005999606249271668944486820277473455632493980808675790492522841966452667035396801473806602553351343589885312314432844478683141705341613205053791461359163363253226086552060309872713528738441755936353705906529622775334805765826731726005840293869769646808985943315767889017867941343236901241761796038371345929220907982680215310628757060070303162923151122669592468804422151994295988985736241447945806034764935610435512051763063451331009430766327470660539921144334415612674784809692913155894050227091043794814145568957348407379221957001941017465828401596437499953303358675633261642789495260509030583418148595066225870083539785936290428660905087098829996502482989986527506998874516496824043177796187654717952375697587141833253282662370497274736262426426492663198581809604372230201069188088457273780976767849532510279423260595762672276405901042300784185731260828840379849463252498884476404105677577996226067323989130514076866624727480431175854939862337767958504622112969217885942363041259685225331360109859791152906629383009935188528901144337392702476261442569442070120016650431553750058384126383497363609135582506164789220098379352032223716740332790714315628868561636676417073361572088903922724921203241262698055652251479748827414871730296452487640579203244801659683800684985531335275059928783830155460863016475296566723813400225642625446311315829777425736555515709417768406450159054122797959589053008925979678789248344155131073308385899971058700548833787477748733330903040798031123309744684257077925949274610834555700718616121679911097837243435332937942606293093074590198350770544087741393363768958899444971816019551067094862904700639184584419924281588617186694582755956424865072934209798535327688329606350696140831447226375126135501666803598838117326578602702084557450611802918983925333423833977012380582856405918655428088619155265211237502298083430245121808317332656223722589412225023667413761138251136580752326175974008802494601482249559689667962396529186297890102337007951399093093073675899245091281245048909964807873913321118381020222492018607133787945277493868805625368353203826463230293392465560674901273701146908554999529759616045160865616878051923055582262214318855183773550720166718846918216828971149581433985629571444891257398039377946854874095061562369186076833682659319422179018394314191021539894917464921984862304766621527483905967111275975540111635818634140540083185283544495561035773654794564692696957851373327908590300812073958782460240742874793400776826168170542980393808148488194108326436161267718526036773556409054592056179644594430400540159717433527559220412665279292916311963440110991367331463163155292313732965087477613907299281435359758415844557231560665596513103064966135430476080575364926062972074758721776535829634619780772493855411586833259331956704211259079416383862863521014341705155013065605071007895214792389018122912585557127744735264005808922958785072813453716134223521924669844432921193657263911633594368095497563325290745697518405296958394466771966357664691224389342270440964544200101294334700380183288766958854476881073897624304415216532418036570947993322830689189852765500578719554615970030551824277943086737034922175996222707827003483552418418524393312213288886814532145300955007197638475852142643239341628535813211327956544832493772076188717314921948134980458652528502972395637022382663789853447083386789983570496258581055133940164310943550446173026180257498355837115428321124177431527645981442874436229639584347609583311668454442769789987810331711204089488881553350976720982255999426931008771751663693526189780278887364273258395559536257894062404706705901820069617540440891551492422148620086825889206794286237435298926803610470774403784824287961218073635358303766373702145742431832697290100041872837104230593076071759084189614072998504721637743370350253238810252244692736760317103994404612293357289511716115559401759145574357368227085164058318289378169197187890335134408073099154685925330242224665336778720530321363447267897949389969367724505640042008165404220003400468537342805854278912818852349127256660688517017271847134854472306199972743819284082079088101086640807375089425367990896137251163470400688082884435614811611916143674385635698860472025958467581720630617926046231085011383043298792448058184887431185157848664823352467016202386491292712599672439463643786274659769262697094639279031483885241213492034858821671031770032945040191559650606845129512188679052221886166373341621300555477849441147510645481651159865220914053273119569757890048904181451307856708410923900636060825594974661576601894605191390948558735340281847835537371927369309160047780286260332876106252689821551723377297305116729051153341087122821552166180192784681048096485117192549232646065761328828559613967048808901967414704430831425129745759916781462104450889114808096003539268988008408412696130868150583918855733389436894566483294206515768735203313654246927605696069548976889829631810913577188604241005879861989255908598575430967188799278886409228908622991796270428519320974052545322904928594014682470955730658912696909391257880865376507071162705319640242665014348444208968819965443987823717241378774543241614164150132921903937400825192552466495827258471968919899733137919867937808516004952582998677991258268001414784601539663644708463441090931082573907341490857872224011458136539628267728640861603203612693128038283890053119775641051790909054544089011182887694054110170714110662759914476826526912157831887433681196881567949667907833894842224841888706619033769381010458543953975193533886127774638025963611825282371631934709069738447304644953946350951839611382964407740092341276095252470627634868524545265429913652110731794989804430057324972726088135390706941473481787547600575679531686425972831975725798280467766950414478725460094086171478233040973264031390035427893139832474088532207919984807176881093275449469743153830569256308412574580286114490323773137582524386280663545141062748751526944937683458076699067558367002987166078108286356397436138833188897605856316204426746034322254258993788134265725762682908030317787900919380776883986846951442228462904522385572372610771572877773263400802103858954557645894063689389202568747515097662603720741407815767013464433081793963118261870002479580863926309237480462457372687730024621814901458806916149863220663570544276125740997497552399635094030800444453279300705578477523244375596647420277584475286343149639652381474552135268814633611520784831976134523701700538262126209842022090417382640259623983721804831316839615576663951433007751624949927670161788718144356038525242831291885341019349543755613669358448424973914026909196372309160801425748823510833549939877492433008085523864054579436243422768199784480520379859234551035620659354488427239786069959330926968838755489407126446574452420657891094836416269032163854726046451683542033844012863030727069929802474069278424879698983358573729068684407020581913247079537252875567545452460125973804101942455926456883218095363337698302226050825505992233340905972872877219751519759795631199668793328782503600524985679719201289829295373464520987870918941543961221259932316227406471683307692702675097225890258211343167823600080258202342285599621897373478098666761285973721230754791799160309321333493956166868262768231698662560774909406888318752073591852464188101871261372998502765481362217755409685432600202066424333787662133046829214743043305737802039251439364670290927616982435469803112113654957199474242577198849200245449359768473631446930978655999106328462429437475079212246714183095823083925216724680754214472528677793957114537208080258368910035040452626073034116421557063233440645605750415737891949240622868340792138256687090581584780577469029914793826002249531405334964655860138313100097375296506640125994367239870117578649170843969807829398537357817671394437629562137874340918923327398973637220402372583279012551631405287210772631404564684538696255746292738603764338407462109397521825026064036420024120027222827532317282819837933784429197958733012146337098348241621749089378560355930058284407708602334577168426277112947113658772379380831588223899405012839442006832947476652402919276630769283885488406402635814000069105475947855293303326967509147407977554628015857034718275059469033999672174203680413731348827220168298899193524473013164253542684732432779948648469155041289463934096724076949659237067905377603765259794939403695233722308813964714670685808595147769690928562006446113310883531994143056847012062462760139400593245719041368855187756914674723216572894502283610089311680695847930996740400659351613161274892053797653986942778428098256364237446174763711814713245135219927932426367270600371942971924670122182725738260204102973408763271697153732359773802448661605694871586406234229468806421728884989784657864892259968597957692928101905347183179834327200600919955015700942733337459710059988260459709774858103937203452035586337677725145666110942333621337126633372278348916220895069583299934945964617368895728891789817182058444389343216844155020418539731537030246802324952159012839490895944920011097683028173357393302003900865187755827111184091681246457023666112011073620274626843655876610730363992240739712128661015602555180636731846955946130911748377616055309169537310686007664103048175357941817106445907509471404159988422793238208836043551763782652674497902766727888184720739802606651638762501818369695796057406943355942112517103445502722600612552833828571424371976470727528201107451722493669869890625178661307663874966375204893339942620666377438274303063692175074273668376702290293117359237510338300291345363418660629733996521214041903292820373575360321598790389436710892938674640883363978132531425194409312527169621030763466431630238914169517818366748122111869714899707474148345007879266856058730748907626998465868820853239954568599129811596078461113954774293202608573332943108583506897763015941395800318778809642214083507291127983060035016658021946420287544112385396031427749198433656733163625908094033919956006913461065803407757914597445899408313060212441691271405164716206405400109833132932461001603891859789132134222045395308439121867259672618593368585672985204773574097819181045695035913142849230501493779365608861077708269581660614603391756372823045688346325165326288701368705111087520633931968877441108703715010190067282391967721707838708019755714181573253916245931547961678002665676736344916013974583200767799896804407480070012434009176427833176194670122886041435692240258769090227835678992177378716059131145781048039824142406830844901259986156492908031260255535724693946501259991360947918885899272919321613293380342719457403881214826143091516475369453546122547803781374453831843059008242450627600765082048926317114898710113993867971824976148880539036886842969208900787729463303268401902825970576119108003144649188419863460827206415738790100292951843195514068640800636668251709198260119594593926686454730022551134508418595872400681566580178815664918798131308195501522425738242885760307113520772899285161400838190350440029383664172773723974400280221990932736064375103010721274551188058951450526708648268262274006283610352824979599032643881533717818758139832107319361430567787510763793051480890906099863033529558003402756082921247594371981367752653970340987760910645764613727694625530060786029480330975506160849810118892660531084254885456437099026636397191247922284586558117609479643132948634802659264200037167832381709391730650126675748898312367906691995495409077646925314863521886677684049998028343861044319704956902750642566885100120810545631128262310511507844608990627796709642932943358791273873234125393901365345488672156425181322738639581400144570458455701287528518219474001729267712583451549270887161579528847244565974153164913535306523840793092042650412791653890318746996976710872348230228109004702689034579306862912762324414563582141002369285194709541351184476729763760257688054687553156575891062584368675300846923236067350813674992735806355111477864096643278764028572044309607124211888274696002800016571160956476754686708947035916100088889670741357663600332512608370051472678914969623106517632867744442238830275501184704221713982074966990880370765332986451680305377892160117164383163643682475699087275447522562393598379700320673363253948020220140893015962493818895456264551913665644089923255565727410211812270447131401185396786714587945003992543436142565894801485909971874690060989655491294793101434840842081325169156733146436974351387900885945270881025034277653288478339874190417577038862779266216465481293566792382056631585231713323315381521112733861795344364300097103210649414142030281962573075829214631054827632521661048156389703184723106746844915218270824336006433641858949896329375895279510311824748225829205573851552878242821238964531115542691657693820961050564913007274965785390597131313437194738220154979401881984352031850814178806478208080254216910651280061377412208422614904380996345988412255079625057790156796682856344393587000511346391501339373407034615575806049554471447645398823903963558404229648915094923649581259668936414174216459667568213003150296493784740352674986984516755565127000285327081003433873893699882574544650716949633106967376189084414665667929479292000000436427780226294878563803695354861628183774919593212144170165897337628645339469111818937568389355655915855146140615373160639428465019343783266639018986752152954653753004339614878592252786547198341036788343491955030912581948178019542084688593186217390942341238812709600479383964318260966229026633128544589078513312769474589322738553572798059138609510856880316800663841010992445749909858889118023300166304510414279982032176250201810606667641326471497370840574841936451419663765977020097207375016857790726786693204136434124413420548299797656620110759536159762291543147702091220936372762376065310428021268519259550630494921626462844838067370004850101044071924464909071147787540251811064517629308443774995900666401205272241642520045408875254208374550637153518581768203525371239917391149992643956185179499423153902863149877150527034180639256180069920363475979500900137663277999981098005520348644408264186303490405391212876706330238187787933006316604000610317851889335984908008144762070527813433289287340929885847930677479621921438834480055487255452766738418436071236378698497405727800428498756691237793879976549021962059030767583073824936674642061871013230201071808724263017787761192209382216892604590664360336704844257983307726464074239327999716030083359901413962544296954493741282189616157640085019542884977845096509590959310452362322705390663883170483558856250802026247030415442360738198876406507499503938724600347449369247133071135266857638102038033976228743203405682312119228720880197185461526395602068276051844535245810895675303998688858687508392526922962058358944187915100977686070994046174297065149531433663974181890455269823527502827992361575465031360583158371751572410893791588219811598980191510916010321988158819422388266557560785260277486206047187305100800492543874496960585644401961366376856765491360619919655531122448912888184646764014589090127759651847065467802537231959839870275373723664470689520452710761317431872348889752924691170635102430560331121372137969047593875982654585037632937732102509053698159482494488537457434835489012022865561112871196090154447688736198192973102108119692978039121637635180345265183993189709964241061331421496058573728907012424572253208078937811802330572930947695369929575231716546932990738082877699421443125375686820993931337692891690105905192091140824430181566826425676406107288087151353521892357929619411923196650858604999207423464080745809063736054031388999087353315578695256773976607770813246069484440931221440574700946236675639340178229973737416278481039476533089990100056972892859912766748438536225291630479657050755677146757431675218711511200760478232141159325928294543098747246549803620972396076413185871371674119932462373533939819316667532973863541147292789823581686219107773599691852175777574489641980271604579007939301255810512756570910481800119775166844280430836958032918932560896531663983640928696477702602308586262670394160703245498210970080444683045672399637299581150142348881811340661117555597771892906939750045684957937282268367067982944494336898734194023462717322319277708535985149371187352131551675662296226752433906852066529218017722817163856760747928318837070444192443303818396795434371471155899700046195830736068706918239577026759994669332533834420609774259581185122125275300219023979327693364959979508757631078798746352165813297476470619801800455389076990998737625817640081616774155191430143847741204386525867105384236306828832852456541552424723479738117462433086747690594083401955260681085839874143310763245837278552728764439094639336918244124703404170132787563296487917445674671468976375881645269154595965475467906254232858660373023554145865259816708727468260136651888218936372418509742055976755094618830898300007943116766006339463864513151436592443211977116861588330396569299662158367887469634673632882824142167834876232594265868179460075309694694181320030928711745928652976619481320305954021231807362444362826477454447797472357439201440326368951104809831359531898909439659667781914407745656273574306417539939460253713273147943605661433635907681495469034650843834622895424853433728921039967314380812585277741336685474602700308767006715244015145652859822358520145553006187435669460454361160732146063054766962029623057081289807237141433095719180071682733711338770646842999433486677160129194602409941834328788580278536674249804301787623629673732605690599963613947132544180369732658956290601934591071759475242853980358064094836781657785680294247462871105118352384538075278647368842709128210912820334620700257193891078860290239863452559929745990294948494297143149394591371174943106013888568495769300181985887991979593642515635653604779410571718898284859647787167928640430641664323587579963725084966104674647083444902551981888274682707020011576232125426837875543408832514069655990926562412941720175954647746225251181516214778005193418063545266386448503814685563301197640891060783479095308018919800760255779363302436345358853399397312343941300526992734160951996747836414158704742798071155343511999461435754594622521611995201116740696731919782814146918163216265458382154628838793789156993166759490221342343952049972006241560755474438306184925623709593360541651447841091499377988433496771167427568115329393486946883045731395665943558082895287840801070594263459036311426258315259475095453246053813625727331895220531144385481037346209404279129008548281418559139850411955129396323618065050141211310472105050466691789228130915269713154076877185576601333018966539952231097316768255497791179361493751210369425204357688975213811189762831382939954019432978304036704734692720653680490050411534768067758515076936869355276843117261813301984027488212773256459661806660721589803429798954082333098664350273228952997383792255201123652733381885140724654992797786473338422574069982243681583134748574711429670608528653739364309144512257703728676193309039043578076846107142143888603651560172147521158801067451200909647643792231740585208208084866344148029304995437252243473288090992130559921449664632138447242682410209394271836965571707183150206856157715433928481850288967659533799283537404620680679546947504464955338219801803733634463766351365159538943813217441732190525486577476405114475604206980913222623381995615402781475939918460349478512671305810922477442711243924559410394377670922642031731018474786588454950975969282158776038517648105267375775909647335416812305292758315242266716503526538084206474987497654211281994774969742506168561340299389325605896907335771372223337052302110621417774956793583319308030284727546127705482997680823320420513617642118608371816189398411754987430789744760803978934124735624130960353940074064070986462729860746571612427967454588250471262515892252156955554546818480293915927525561289293207014308051201974756192441683787881797067684024939535209044156528112037308518684206286279959386891020091382809497497031952730707441517670357574948219114605879851316888053374730205297423406506990787849902672927876986553711641798302376943019546047702961710479881662370204874240103579904005759377249355786497469562767088119226589723072608964558830353732472495747886391911843826734822145420111500294898182278691153002283090249742066009584171887805566460500008029902315619714703000480258882081794561978179170477937966317138491611882485662600428081615848127273499221987745434778958651332945471713472294786925371505426673788126395772036795957702768301767875568163583327143900460417483782411517614350496094171115287073784563302727150692880257030363373741014957095169344766124453696414041967674133064564033520362123596274799700202185873217202650374779020346534118577145615982580386644353733197901937267385383831318894178192588991276601275084504080525959095282850655976989463564432527531410412324301929136604578752783701114062869015067570503264858246872718320391242061539628234294578894952324898829367922007876419943503793827797495810160706985836899384143031793434467104316382456067370727596849405378537504484933013483846505058890586339305874387585272067475012361175202393356713310194247675532158914321222853819675025712227708049056897968256811648591804911049217660741110559747787954375692176290224562761341903157232759040283391475727952000277205824126974459193247923590112756503511709234252497841966867431320791901573678242445214697211709368008437636425171652445384137965941853237035891716041970348972879860854457712421415726907209553090488862086650017761572802355939619184790358111302021472320987296194422327980586537985519004304774070382510415854276923927759620761822793660683766394932704796037743854023401573557588788229784289671842746664791299430742437091101363244409540298887774048811357920483561896005791419786119282259189261135664512180016362153592313333809855743383717693521776782707250952666824373810119548635790059668590751837722273528779292352422668506515583726612960714993097205110984042868128498786137537269433808250599755118518234294039337582355989463171354501826602430285539940617276121986333381671984293103221225476617916764752311368003447846984426064955584557794514298225119529343211329330270020523922713097667410807082120178609005021333712688278593191973024744169996134379438696145519422215188192655405746087667447321938633864573173065128874665739625699459139244327940892536844601311827454108033722772331767885478936248421988133649850659317702741214938263917419197255826901258543754464044087361469003414597989147259738367441102392257495266662497513266378050927770408334899783160191969306276386811793697608174504299438445338183422241446155797619400717784482235202770627941783889173911868140321352964035146225934729697678660650254105126995811716605688866844192136223884576830149056862729727390078664633343735816045464752226771582872008425848068657491389764479011603533352776999484357229803033477792045030623324061306093984023183747402756613539322168551008293330187913355373777557037369399929067165261084388302364146181373856205819309582260877890444445612531881780260594788758920710579073813304279740438046235523453299489914305464802626848754164912805244011501435546773121758821330310520537721382629537128370197021062746141339116858830531911693136303184865553308059344505133958368854942409552179439392051857693250494617308406746440948051067392339089702945475653578901087136689517157312135470927645871340348709800029487747726891250456799550490087115343963482100700032905993351007353980847703881155197722777075224590266999010681686744655772243716729070625762330906452002006463985292296167727584925903216070344913524111145383089160259134511149752455985932078951314212747276925348817500890679216609824974577841744526995170126807941199814997418076741717424748626112024044146973757141990327611184720015439528277069665562268728950709378062299602033088631504555641115831331054668160499755332098283166004220515235863900338178829136678038643062629146835048058669483545925108846857763763988390796097746936171824428167278734064149881064851000266973548112130567411494445077809920571304927444339802642412291188940027706875185244350956822369389063103868679791619572175529291082388927927637133070479629243962408237807286728102176925608871617881519352632607412079751127666468729707142905548944049224335863412433488136954065099270949020253477452027599696019594152037650352101119367960506970392794569303704468415499358968829790644575196496817603245786130683967974104770692289369725004849794384504961544752291469472224949273448665751758010807989138720995784337707286836549222626396798643059821649273693586156842162415192204176876318407587745229546542948916292281588757374094566613701808284230102837792304960497935335258326263995086876709014472469616981908793554782221766394701859293315544429612304162902455007550417985482377822378235754948159567050985074313454035830703388269082585077109947192453503627003307808876420790260316273204372632462314655162658624284264606872463181251980371335087790482941678415214652363327981187162667426158904221893745960599110509034942452716864233736806883548105405993562932862738040015039094587516389253109472124543424133613949450483950248650990984756011115281047496770611554012239124019931456588076690294394350110706894753644471498144497634972798250273258320782854740168326632625535656972386906907732017846340562128043419444472775238187784585064391139013676535039568756407670485310191737805378575577748224969192568346969188541289684201757747308251713306354582649022444440804275268006929538543909341045613594191608360117716785764445769693374389644265032201740572637995146296318808777399403610641889776221695095231341823483416740553122276713773551530780266630014922437298903575632311475512348474876506124216009180741472047020067200408505249454176155461080125153242079697461964927235099406546012966994614041834167500461203844186569203996291453578428698023484693295686591150891910849449843533105500150839696544159365757503582733807925194371016063132820494148308951372701065530139285814605563039426702936845594936573340537543978657175353431584193359789015643434753329018919076914295647064372370402203546037029755866474271854084391344206064336748579536286122865195953401390982135184272394723222874558006686313003999085908640335476729255337095509288577668441162068025290197904095742628100830361654541343190222965149660442088651691745663454274472469712647617969109216446217000440741711957097159943546507763498708021488747160386351813725789479253616426657514147386924482521893707590899001357737283730542761366488879330185906737828952522912907530295810974807596962536418750843245269546582148541157606816939032477074051990659045985422972854588262287259555880876694073766122225214310163833749428283229560052892146148917521816245007708097129430690062132000280134127672406737507972104139093439118833910214122909493202265984894491373433706232423275926493514005155668821472870997447092405452918479697582217627185671859063344029554492408396612609773185897140812321156069362065349359367703398519816940247756650076583795614570648944174958094937044486436096335680613218632392509338979964488881032144172423437721704935275070485704668158535835233289530014758951890833953142670066039977642152277357729368628838025390018268305792520216764464825187336082798451520137839796104560707856567107854145822005704254234427381806649905127412618308968227848296976902713135109720225669355490818157459226428718051543192596869625454934194169028159569554308950547185011152627887162190248300731383318983472713839995473111562171922535037881375190066057879142983541750769275359999864712006538449318192629957194267026239866883928434892572316572363496757911941788388644263511274530770939365314579586329876783116163989497781518695130652460519787843407247406536898778974598458838150183243851745739827917107620142023842915067143869931172516935390262681578569425349026796360485983712565571747847177233488535820050361169500590276572302807721142131431031565266765976032041479750815272365291401519825540498162424804973495731017375954060612602593482805456381525369995025737479672646411424803437024743984940750705106727882812834593429753069531408533491191259033263708891235508036115082736507726960038379169293696883210933206415868772645456219090213023924210740703098340112860973411591917520132420457928309258434958590438909816843095665996742622698646211032698744731674050926460493951021814929788351165533445850387585357341151334234032168323249491547649039994702970652279723148734900115933389832877510152813265295086367392172430001650756218600921199861582209879922707126659740321465477245885432135100056589620825611507367351999784359591396318373555330598449463635546483390266458171922557202179428822548392628879086767533885339794752568621274309440904905288767642944959462985436912507035183177442496570795722604490612191792534830325254131593173476209402457814055337477849067233406027970123105468910864558378508971405948102568125384613448109017998126425636778712017167406633383676884161315120539023910684505655715877991554215004836253894573613227509347883288596169823837719480628063526717578369386897601751080500348402664924239952066280106924529094305725322842071213813991461818730304982018503239725799983455877699007735802522976713106943637172043489727806240112721183745877096367742011321428899032852050673682205665727215912105101560373707976312505263877533367123180665814534949448220816455566735973162037113401083315552664309679732579409063984611701817174032505695517840578122323211737498979559500043258475042217265509508676555744482946412019504246849760816380545972201040283468663210974118480169137691059404879570928586269787706620525228675802373788302257808978633155456615913818222354833682552673555346400388837911538632075671677122868879862507131136523920417935811174258726245081469530210883237679104189483524735632893783761704018460427563750734543295977456967987921505976585911533994164296880265285978209507620011086281323367967096408053611749090496416662030099621232692874568592741361062613979395634388162237013174320229239812968448453081136254238405670079327140619898288252612110545632604141137953272932605141804152786383310981477348610655486382317509944756534294314378853895229934233468135790401451496250814142795990288238459531520017274897893280106758187301784519220583562392826850449049313324405145372179586748012183043691209385036596199137493463456136097051656399011110368042690963366963561271099695732275121865275121122404543230896852167049362345814188720482453973013489319142115168179113610987922200021999611481632898615160815041239014394298825511619139097567637498028905416560891530590910558151858650329165058624979707172651263911211584530951615942199108810659328022719642999634675442820615906695095902185449943852857322540699463887174763477544359956609497317706672273312840787288443708682802195684657547297482820156928924977150549538139159512626730231961134015053943061170911421700968444283654821687469578620630999069637610008763641561610563175447843962017331154583768926546639147499006821782218242998899313709646971923662424558958915174063864208998671014834528223852349195587829670011063810611041484652403180378019978221754161992985687564611983749313504052878416712846802422943535033814901086525051580074719377452836259811854943553976846446090623077919407909660657336083531029008308423825269350099737769334067231914931811686547709540314930642282796819332227211919343803324835593687086791695391634324605735888752247429290480714085940826602368534735882736996671482756227291076312359710507177088472010836479058617867463658737587618591427480614877904256074431065524247814080267639851285861584203635718784439320331883586036943437010097631611053878902902685839178328029058263442494875783250370629003109770147353016244957434847461924889982783878152021737514551797647954212214699505999674126700233577507819166130036427408940159557324212978841437782882407565874437719205599788851506442272421234136947614634442553791458060476185558405016809526050645122706698251442666808106015182022245964295597372594946756494038595383108686284487718052375041808128359753934587146262225898135551116279977181683857300940948024182157129067912511005003038426971216008994177836250696274573397201332999958511724935014877415528355532648503731900935451698839355547032999118326782374255873897245885112347567584555660048860105676764470040158943919982517384980141993340436240878665209325241442347531079131800315868804626934760057103363706189882650726307561360696096971401131868154188810040391217101212237879015209651455299859266073552596438499505499010628891742551123331941703489757373245588634578435257564854398133839861849757523166157061197450988478014194428602764493264199840790169411146742295990513979728573784557730905142445374241274546478964744140131651526226685369394966816962527357119436121615995238491555119558807044682358338309745171007399809899392976282038917851245662770136378146250794698565405571317075746844984611366590695443311735205586908075364331052180866474734882839620934163386973254364591170661801021793792439022432624424914879368489594414467238248673103723127838310759347897508764884056996679888630694431293001814921029474898675045740100660963809460579786765499142172613422591793992968864357537669167210062377223847729997435982158176046739115561130826850857715321418796568631704612303531674694444246877376113391097562449591960786483143284572978270878560843934630430250812094261018548084228196748273662334746799702898471600077170862528555148141083014662603655609957293835642081142560861529795901008745664135774293670622661464055365426936110893240901323476638476906269775915044699379967851123916647763310950316968478274658265531511896924331942431740208195967149072196848845152075911849567476431878870531210584086774115957428290348072685538188442013267875085955014866586465914039175870260910180205436792517470094653829182369521516111891785301448248808860503050205319352051210450493037036494299894039692519936484512408255604172665192136155640126247505716610619985821362413207978396321747300786762602138876869006307276854595279690738931860845332716430834067358472273917992591932467673245473677704148899232280356463724452504703409506703654476549627508348691005185088607776626338882361925051888558408279329761352622465230371260530754974713808379739032773602960107938666972347405552069758921446236338836605270412152174088137768856379058456080473444798217423371205085102312592170835439412506553093331357002814897424171371396198786179117263316850325575119581953330958027754548377066542593553138193802919407357571522964833008657212946368170121611540660479678497480510046776093796321432201466091156878279109724986356490270400249929603349460599996923816919073472381624513589392303962812146293528003225046182660523611728234701778079385119070842893504650265653807114483588589924090591320444000841341203090702904738776499812778335430149482189305219467153406545855664567629096959607283460177285878016591308239213740112466938328034158767702232095956933787977179629305263018437738245463004400445681132688571894110711331055998999181635627947232388678824044401459430793219338771632906354040736395816168252726068640825403723314546942238354023208177320072616668498042464573563542214118222449431707629131695834359316715057651647432474294433236130521481995608525491570587291113579737794474094816877690538756313372967400556554178685002278562648288740019225873938561495274681873379832798272386309835319072660542306071083897268894149991894293323194288231986672602446075245763966711624203141833262871459986639655597412958681805759252071409350289410711001591577493304107822592772264721674781820947420736326419226111451073437609679264996183389185934456734820780534434992282854318648561501858784825376001725941402883628699415451471874673214440558938572195280940223757058135775220391238114947795478085011456988266117010888632712530804020138703539761533526670125096240098332563163315778675784839194066924180946212873404865179146087580129439681834732672873937594865166186576380927173388143185953837847038907004135184718295595856975218185415988486898350720168880474170962440750059662392430384640790403048281949295138918113609003986306773341146710043142174571019992007394818130066312016816345429422725454226729885370021409945214176362414325430398242654122928810110317115637144178235603025852869210433649218144293040132124133178078450440899188036632375517766299682640710920648197889402782402297373811056044366672161784516571181820704401639581195243868046107606437190267838770185728037619506585519346681260155453425851665650269358004429105448080072642311140650187692057801529242447378186702763740150193318363399627263870754667888494859993605671453276315407799305786033151149300192222592868136554194415171127749850114853251170077272499443971698657867570974539451872277659078156465348571709289867140697562967053508275816389502014740507857331361721947243104522148347085105101950636552835543537234921349276256152916225645071485301094163323883556751454709490724922496294418294151557748641851178868432176788977678668737042525646996932867805200006299533144317225937282000114363976638642362995695998691978549859182247944644954769840852183584849463737149573204619629463998162767067125390759789088711499432613073644258667296954013381401540949177555197231648707568959064048146423830671522797250010458540042036097643390543860273201614715718185491155990699310067500714285609236491295838903070094262558631924546506772572054323995687975236578996820332368498259713882920183289677565895075541582018720294369022760847729617855925850802397769248229250564468614713473712030745662820606747661144581740720960447539144914377724901594179090720012136767909827198937381446821643676356622987738258090869156647424036442315246148978268128490555439060722438203766929352606019773964656021411178346737215711270362135615785077392385420127590929193146416463902417488329209038298969164805676576178696381833008201388443035436032689015365635512555205606442335500379426517083372402028710461384874863548876754581782744252525658432856323174260975427329440735056898724246281900285716503897997230334629080736889314048336305559011185045504691820774324785124945274622758234371845066552262796552739869133152989943782409773776304274557539142264487947751401447572784739676680481494544648197091864241147960214434692395894065086275322273906927452303073997262373442447213545553702748122271438345669896259630383210823083832626534234229739863112117435185570337616559643377480531334842844989707401843890585223991070114306831765881202460748354601784012310786007654065851437391468658642319515622120947506823354448044176816707874346820093517128655769495255966170197826761840679637418670833819319877356941834968724911807856904580376422851209772277090058361153142630911972816282011834992988658068808422738726354394223292542646207916510802518901820942538851202915714494311496764865674595629637444003340733293320007063938746935892447002224229245318149968516847634489840504302549313481990547716339308238758292069968016499174145493588140240843634453137943084264818730474572440638328685900592376861167492967668081680323997178354090467225658989050755391988247393707375708589156801089354661664291665999890869813299598647054990309880738520888703682617394943099422632168228351798816196986703328018928766978739650762181395072174291863780883586100672575728477893433680534209731096403735139264162516436542660187310214570368224524753022095691097969315036026126094150477836237696633029695982602654652823134639572453464577028776936245078676845607420600038461770441087086063320136833462385846299337947921387999084286385390374771036777746680703961401644110631365120625532802419652075940383094837177855666510532821799175078483065941497097129538407606702389892353779902967000897327389580924264499019795699431395873424770782030676949888822284363418067485753332898948506084897517595432148533798956026145089327732321285766497368442118561504728900717685576715872673611420597009155858353423195872904526118039679167445720684366501731285964299877573642844687777873122985486379175734415276045381810349026940821820188641396514848232641935068812411267652647130363402466731768086131830394421390036165313754670665470222937546455499835508812722245629049944781909087656163555741278029199588806201014194836393857389477597485673107239685233402381351125763328593682535465413834175253296563796826241855855377587479621083792879351655724900367566774266960975579501777911826303845976704685626542186121400032331102189769092010733059770902788653733037368524128471129048844593507880275302471803527592809086165431210178837118887896874537795562622089791104543759242142696162892035995661367829661724228350278626080280167870050912255855943407515811636545006844247287740842091468657136505392752898542640220602762600559462653331841342467170775026185773896226048772008434625852603204234900922263158621462520003705893800034915609462635098886279820986500210374351381068382021820004291297076105600096353724171185313917508408059382283023309644844936552591194546724630363541637644279073473632610618455156117858559295437647400973742898500680506305681507950533725727695521283387909596986674709328979193849847232638338455442544499343226394984618384410318090804604666231699935813708731426547171517199858213441094321054886350355162072060624085933250583298813394977063915143591647647158920663580996939522568879812497162358064651496606285338801189640362054284314767972365621019069875616516396842958212161285991184116161792530121175787815461559713367508522463162362475302792882478609240379955486364978498612166028944114886469857951042413020825903781502247702575346257675397514334301728536941473648409759589279713651264365941683377969276574034878429546804287613476106383322964275547824532778070368392268415750170873874374607789345052308295663494497666480372775999498909318061201678215469948731337466314168443372844661209311642238738991990891614042355023217672561994832586973587997331201101279458499906002212394217774022893132182680114687416039129540780754001411667164628717651793467082179037810787477368923231022012145611434273122740366592823201925982948436229872206610142886836836364129500837517573605549538501378789988167390846979548567551635549439270657414360056195401700268217351919264593897251597962363230888510233176605229653107683857704907674407393646771730282095578411158025520060024083957722068252458433583129327316011287801699499908486879360565149895318070279627458938175126491351040613096738103552001994483448289936761783665619781698293753615833596979549364282832496062705676341228412895645091640552157716634300762060324901006258613056052771682436841886702642187837708928695157484214919751986734687527325043845770708850703326723053976920916714322392390972740565705900741255125613128879724526834044205478316745561350507571185942044592015615272162671759365351886163366550522857689705160651442280065443420851416577021610180979098213421123049327759924620911050476147568155435781390509633486186747381138746285430224775748699790552386424319139532458126013152935751738196256522533785384963274597902565626976816503680630439801031762347334106981024350686100678349187562031249620988000925572517392916797244355936679055260843677588028618379685975150887872717822787220577301145425186991647321807124087902775259013049843296438860242874750051677365650455374426604093545916120241508511002474246263623127284381276993378505589137394517789548800806810328908110941517972569401082463005264583739853172658899754694558815082236428790789350736183354277974451785197940182408974543348250051563760166561517421328919856105074865689221261169549807093154478613451728142676086573693264490914002352331835608382136596717951346073616967284768224340029566788365806999743112826892408917144116570072280756946642944604701948104843579463511454784747652941388045686032442443206236095550307225906369285402225719503143824511181108146522620137740107459106272370214618262001235787907343275700982592433915889874006643702197601443076430899391989059265038498606639203356360724168413401660041340856175134421845349268746885885463395616925002375184705239067500739740896490234432761353198100055786793242529111269733759871572973139399833714288928953024615492881033010015625576031750446195365055476132374808738221043692234173967045853969623550758998850441572062648141123193227263639971537410544886659109267202194947116002501871835109823994817648250298645202579523228514775996476670171482209762448449635789824191706874778942181814628766304732640649800686698583161907492508762003296226925481396406902514799168162427380346925730738680472590855846668814421212524966675240398785373825176329523876712026377137080116595589814412518538959287401597480910191881077696270226513605036744181951162907983584691656666682579690078625153578149226786689690832446075293746889589705992340689770479589372466848802980653236547621029644357973081186378900072566958825020305233651578858161525544522271098127090183414399995301691632689562007147722811606029881929059327276446595362338262588206868717449599091269212241524983012103925238243309798714595111832603712386473141052553194422174837730751870665565719572139952316199968212178850433936740577856447786597528134399981198260497190621897133552141578391146448471851918023675454616783944603018091381140170196591610131783161479373401110825786032593398979257830669489973321263137368463937736006579631314462876835415699320048642924489759152325309181518549907415370055114783311173241890193970990099641183182340572231133327378250208002695178725446258240634339568016895782485864551635961552091604489984947157871287080124767955676357410181001977670045807270238522510396638778280076194661294224939668663573603381245182654123430982694831664651434234082454430217379379106225256016615473847807140950937293730197411472052761534440286800065997203030430099755395528533886761106049765680458698562589290686226945754736214881221961511787442023703301042352884512103597809487638025156242475041392260393121775815670229782912783383883398228858863121234846504816895793252148940521367573142866651877663459582759030361577866993566598032373292439058533881606735529763198018681737253706704202681829757402580358452963698098823075297958851211716182660495593233032408332785318383804695517227374597574039023050899031324175950128939431019815839801754189847105327042088064829572661453440294261254131172009450506952724974211391806200062286458543087794567119720049033110307808156449477911121601903948698645179596416346073512533356736937341497589424383143302382515551489446953689542197046736659674104619843898199771594709829077721884847184182710140678440454957745284060550458028252829971405656331607795247512509538985914528699452197500307167649820813669855690635786531032845551618133164988135845066079234911609437875847453749263918834229137008104684097880649174101793429428487598007035634926272132335649941628135028123067249725808478510072898746846014148801101897580108715239835938843125484133236353080654371650531444210634439508427903465689199762133556710758351609921540602821886805475353327197436645232691211547441628975931709667743754179305363863121657253157274455826197196296169913703207354247305676983595746777196405055308157225296379309340647768704408672322796169358613619429913226339542816844564633755882321365643122383668824570023148354188716068524674070896256399371329835527485456018245444652097686199187934516258565918462274570415936416190700943655885319643098926584809702082616946053005090723051558121611244855561148413260847097123465870738756831011858050976406968642260035166889365105027208077264045596661055417707577623187836335914308638506558283968378980479475393304703842454847254599692469915286951693755083501143247413573779823514536434407478829117150886854016087178453754640687594114515009969608609267756486857583606004383407075448379854025021979519991377278398245079759747279359805434544016455141584760804999828260601504194246690664050365158615805788336195892423953022086263448383605269020697060750396560826628028500606979632526396135639904870396464874240219354678847594516848345140851020066398554298830072643675142844599868497978149092022630803212887679818639142254685078631384213524401844636820176358916015268078441861081248928025811936924014157788815497240262966034109397711067579972942186383400477461656532514233893886189866445439709338863496901983606045024598621158437980692971776854562489468522848413057140912461301015474406221808680763885489135622554379582859093641497091560089720203730963589758442208747820267882734353715740448835139538025515506865260280388006410271342939194095042197103934618861556204448478593734852221698900026555249686852072502004900994063679377628034404029881481075858535798845069398327906403219498324688647910506833340493825937766510240202481215997319979863177374790676219954563228881668559048270438411851704841036834295493860382541647170957953082390593580510551788570296971607754431651617173487808414703373272040116921646107301840154404871621507609263179798010836780875072901822166171932001904312455556124100968245150141146214477330125584974381533321326386064511196346727674890416910491451828905407481454217712353462265659736874423684580256214840801980612566431468321185929659069542714090311724751302500806864598804861980954575313410322636039447834102956826879910498864162014903507600782968496213764658242149967518196521878133457429670268336925170749506321233472379809047460688804704197259087826659718185563418073763760217875239569852100525930875718542580580632155423544984780088844679627576536810558192499620835232133969735689764918707046411761238666781762418899268113807194060618635260687173700259958420919063858511840543031506067090611330697271981022251521968520989894685786988037274153416203843017731680542765501942370978060564142652673606969307892067663658030468432814980441966466663575056130361677053068711888460588611773650383064628707337757576920018066984286807642746339266229708629508619422870882941446504493501718521509191840658435165719879996729387245427997179344330813502532924255816161078426265267375046848043545502928248248411029802555213233135172060299308815075095890673145132337909635959685139868295262907092809565824470757236270352482073502926114399675439186348474463011491370560471065845247821223232411549944192119517724502220930479229105561088262214925144029902449906672318791287881358930833259387300947478334551957295178055117917189890848283285819008141668165304361304778727637111433826797758163289084546244175756986711613356166869939958283632809433006843561355149794644861179695787367828996382802822915589192301103998145468392596320397165249525053527787055929186568720830679355114296730104771360816273573733192651927120331368387932887869824650234189892020165373265437009895050602764660199719001123800695013714767725762621842827369290572694091144274111113279799828363114429673591440613228409018603900578556420949807255127735064865063182043911578275248531120672054293724307282125784741561171127576151957649695894950076607109902384816198232854739832485896618679204113320947532024685825370490826036705612353460431284498859527965586845402808139705183689421473715107254984558489252954685895512657570415555785259049980283521666770186053857967162993481384362561722882271274020347555282736781816380685701447724896079110329077270840545273908517247122298676854923869184972107378050350558865563770551829199099842522021097467797387367666150533711053778025626179876360958818787501964495220189892660591951650224860222951840152290595367688813294628589061240067157466182404125672457433412274489722832207686161160520374890774345329129043099791357077515099095552871177438145333521442160988769103184062867145799635195832458894325442371778275993530684935151132998628233759669373020279036609965872664689467023772836663276180985163068296525191363177960512272339296465509111937476641977377647664726212648955797289207651266821777108544247737739890657272532256868390814552885438882158774926837405866659762678591044818790459416781114935641641449727312670718761448220142693146024220142643544191074567914322907504194039020721431233219745883498593059365910355243937055135830649154986570883769338226276011357261274950131682848867252240316125368995849004112969876518143292197759991214408045922358504672139328245632137065162125796779799819770566551708752914198772107061326294447504652109177897680421511251551172326236153277249612943432868872859040439965789463546236034715934157335989853498396212344816736701150744036033992017520321117090972036367244762302281788792828935108527692710489779623630622480896512219840213848147844815594244538136851963829264136488860437342654073076256853855375649469244588658970721891699709531526368743979884366661365004262844324790975472685605118688298556286419045119857558187968156847828023584594112329673310623906510400175411858038877132914954410070865328752012320091870268855108999953800388123474724478470160053521687930622052378387888827659500055575800165120471013895665136014475769852486539090098886402744545616897255535142506775749970073453691039230681608710506649949396589134651549593232298728998166025525301043889969821738665670146001377826013571452114427910515306369459108982468716395722167564695594503046603659321536680106569105955524070175900753387579661584437173402794791107083528672845256639668417879624801954903452318999563552069357712990133119524657003968634988099957401117897165856725790782148023639198740064520390326724457070733139135741708098691344015698736617396467233570476755129323052193715450268869059329998255275605662307022354488752503499058558317634756469542955870824036744705654497472291980219222907605775431452658484050046554692080816842731543021995219006450219786231262382707668421478544449773465617985172325441766086945330416433387522411646925165664866178413156596927948499633657591946956593526520412824260525721685030312995092509098600005385180106175150702259935704446930187948329822654269322284158238523620956043901469176704841683724185087049744462464551233852659451136748990510835842635137313978610228058508380179651978731047349353700441485249425280801221842687684688299898027778136969847397760965275158834615842382412236875850751068571152632460245623264885078453172190037380594059924756651553545230807921714096453521570257178070094187931581141785906661715174382223045914941330329094238358474349748953944786940687315021480308706152331037883201144274974875446193806388374582448944451224731956209127931543265793064522146568636536177004875208517499040415507093191723075226184289724183429503409575433657512659290725576383772573169572103674816247085778072360417954581888223659368907807630264329696565345781190988498687485569628742542733223234778187801378825032282692574507543070300157258410581228166926894972564357627574808958636208297060816717938219793903793384299260354911210704500290899805736860311182794166027100086567058805111924875740430285578887179787551599728225847449431121207642618610559107500649667426446616655013108809575246577869814085999761375881234449827959398202080513274272526588372976459356320779548241171891579760390725685740512543063156892339980134443268275800817913790814275120478198657684482480028220178080170791328050814989816614680706633577625019164690843487255976125113052101616017518942173227777273203635042584939512412330896803561930795394500901796945029978661621258127363902913958995281286422073159770760104555080184839598838476783346159521313689922108979718344745365744832715105268556168520511423308781458476644017471871094752449232183155452833212400159519597278668087922010920424678556498878697310603867396705583735232828296672247895579067531403655948732899760928806381210381072941170878957505510134416043289160756230640339675428687662758741853235337606249272484737451055076587511073769987190166700118898615487611872243854663834510910977225007773104889371836488450330544930468924995528716576794891286456358735246854664971179192730719029260261030530980242261577649235314453922789182375798931240406859864785975933031327721945136390932400982500666755646427617360256250218206236030926374800942688113926545743634257605804679021696969054862271472350276319464100722693059856042997052273745727545144004198606395365743689612335312446013892153776720258907294484274920900689216415233324423403760631129064446161215468764396358281474364057672056175513859757786535766661770914255199676848935743809254064453419695543245598349440879825905007238897759636955928668238215866038249793392077125894460510747566055729072302644348794311402841605951824173995707725599865787029688919416862937574180377732374498168900368262468429380177630604752605559788264689346864571305253644229588122244441161657155422132228959394380900935029133777701032300534780663496156889906845860856102147316888821463029394675358566396341455146751158541715332894530510743928841770593819893641359627755972184951294810252795241110121961001814112228499605046961300604348288506268814860176015661278555484931140211795021566559412109044292243582763547548080710029142191764107938237155085284235579871906750296441803802816120007604996516671782661011336423927212910898055962178291052816937528872551415796966581253331376799893119478733739862259165257018725137837139169117403883044083545884694128207580132372656538037591179622869847312653142545347215156331425482692266014497805452726347908727703476135865528677523825942343328371297493689704226956269074828987199814561392784858094101456631151659079012214045490262661860318430125883016748569495376546447054937366853256279419324676010314953318425532857817332864238710595623689895212774631428350256828629618967762933834548500175217255298470745035757444411140991091640763856342917338832665509431059601592466368271129543109634985346305339968414633317077906668327672627107814652884515039862231474032953751627129947826149046495737900310168227730710551617642340032719589612448306390630674291612805531721492417265673127739786067102642326116102153830933862980100313694290575066319694945635429930259280666494732085997186400700869458051210697867571900212276743741167744237018312942571460968946257317269572800527056029690451624399768186525355006740479387069471068894550609561181951184856647993044253758174466945594611801566114385173598882190123851385565592276436467513473246408874553372026852417259946648889291335140607944617148034116498086439902183783975881057580117019491052757801297018341330607088692599795546086970455490299847198983827943447836865752406847882864369912833589110267273834533867936724456762274219125949194059470300818481440520217741843643608261494205006198396275783753521311482024903459543022769368610243145413358814531211399264787386838183212284528144541221031611264350874648415453621255631047634040265142048251678271520965931533087277614232292730865786259072397088509427396909056274660814319047309317549752860023444787926983031677262350680012076520987936505773288822405380701783954282365750202638247886064341639908303947024920091600475033198228463317887218352270092973737556535509347931305921413419665665254605845584910076880548338903927115316387862145450961994935766560120135481562450013072746192388648350434059949579356225359266657524378612361256036806899908054938669074596145769841413174202517729470656175539664923295064249820364906779514429092805310883363129612960832394319386790234629136673155546389928606293842999600455715196406205123266825901763178394986762435306031609678761896229551696413912347593611631358665679849159743884105393238779914692903131060605236238603825576106479196847157690755613269406952806282687452448794524721896084489727254280253783722410903007650925436853880463783004496336212407110336500859807767280852448134542858635285824013575052444973333590553881058638410657735189414760555496765393510936846385739896929735272700869149857188199002424591099294969259878916457629672421192171638262848964850989168967952543433424941196965971277094334106650017564728475947149766442617342209560694391109981986115033820116326854822303617416760943837439711575720137888338862509934926090434574890308659034982944810278403944982883257073988416233080295859189611376401274798381264445632014064349638639047478351038156623312169793320616316006339151906958338465337140256657382183026959592439146938156916318296717627226455391206206644814757500600107442496650952736976364117046128095815456239204781188116712078172463785795552711440357540374607777202508528147708075314781481606252470676390591359780888645140361994742199382299422120939515252676829398564671189463754027815009533073595785565621416112717159243392060192217719133143309619378728179926475659705108740389600087605317791158763485051939650653379751840548422461099163818619119157466116248396301040614964946454898874972499969133464541744143030455973843594533810441994732278721416121035159071689732474002903336847981480720441110031787358912502611197330572374183015587517635532299238076717886417503585896274106701169062367425876865239233021697532569242619142069792015701947135821326928962752808505341216412889989506091362462898755786361819980262423160172667549799210516482474398952222682898900449469493766939718687364855758942318688373070419573687982214388665704823524677988151366308675222021017965995130615638660862884083457534223792660095649273222347311176144867275839071981544452829573384504096424662355605726125704632211339846176221237785893181372481534098301587474171396641795020174185412515165892457690339825957046650849309128417112598469725577827121353655570718398642560897316285745239586329533844130850748923625322901689931825737352306547280240711569078738127927628325972487105521125469578849582297278278958979332790279410589395713656520184987652858487628015528863398643256841041740025639356009238647208086466011248141337486296602898249908473310747197064790034729363300488549351501016270597039934297585117518705627189633268465496488037459537206505868521302065474721405223665807199978379109596847776429999153054409368963428707238649195398236218604060222880238968409888984946630756627294465092822168275430485859007582694057877703468939664162794247824337995202823277741288827295140182864027351245582703647408118120731171397978712504477223406504777855593806715631512989058696782840430681098855100436447369243571812204110507506398835357410753910860365414070611684925530612253669874486587104378835988166761318257966751959774392410667962205961983288610027386558951093154255952364452822559791621795881274857284870274047870454075954892734191900944339459631706729930940993884956588993440315996879936296589446352782159103359985695688702599980040020238374063249803274555147656848023068159274711850385278219579364374850158244763223098279160688787797855672105466534150303263704149112620832985111866846583374434546962244483298030525527071790150116983444003886507870661414916930640674422654717485055838205989728404262280751223374052092221884107821214153187084063972479914652924687809396049267961639352285302897209201628503766776152347569613547263492007788672419299686911420900389969327037323596238554416107984521199364882204780828214298816268234503929902305554553969125583761296074477499331974955339933238327380949490958088838915492424917125529917302343174343595664533629370845544810415978143861533693249589514823375325926965167264047107799984423867862303014651973325659533320900031710353742923277157991748411889926643002881903157766023148924160524797390463117304169201664911049159380057920342252443870307174112621163936737522780476428789893326687079297310356964996083272503961564005778843263273120485751626786960304219186797915482555999600965827752315089769601367538351764735813263035687121263477012265841017446723477346608739294775399056422296350905213095674735968929783856224354498850449588515569040395464226676125898254537135479384086240103678580177269140689369749530550269922544505223451445704557646355617870549930116282751361959208505278085615813834014891330500422699306773504112644058034863188993845311627965319969583000949500254013136221691433160554981614232696735599896128068448812761408316105303793398219454610981018802610221107620297334985779828951020255527720737278597402982137832734964512126519927717408376886569816664399204110456543658752608144493426699579854541048521396691567436868441398996025313123807078695995550643426721078673189376662047908650651986537932402167335094975482868797089582430305762038714326842295314792596106407947234887892557416568795527266205864555784705898630996765921287799627748439290969110846183042253580292584175747960187051755371486405206921742374002217531360717302866438943087424917301827696282132804039051059003347973149204372559159407977148913805261458123914475816887545295956957604886797289806281314130796412572974578712880864131576397014606397115570286149793272647722950977691776507976554058382717237771928310195809585492163171011008161373282822145438111362735359050939812167489612743834591004375498750240990539026665241640723668665518461634375404482905538251618775182809754588263427400289062406967556747420402776163982242213573473867436604803722164359610586892989568136691904077046484017256309339203604127637302317176022461379662172253003638359487102785214417710088383368967629528728376384966006715609546105242577953128686711816809562438385923099344722601368942084019590446420775281378739507366490559522937925999162090168012900287314341927436658010110700673646945998103353028819831821667276499531887839224210294675046441082547262484557634534867956037621097363336892554950208441925517832649732390476074794906569013320226079586316479807889159062582465884782472713946575765262796753545192293088152190308868476272560214375262237820682772811635401332817677935796090389129081101859852273372180236257185501974544584413653157786347159439520256274309421686521856251474118296563530276207246813508036055250395035939311147312478901861582455649198032173025699335091789588957813638198813064653908388275187811936614901302308186579103704176780079145099831112289529249537520217533092926984175321312589379881217859928402183846894191559987551258155788711865488952313624516518404621757544124664003255500706908268147396172366060879823161653249811849106023151114305011241250488839651267372528560933833280820181272506819074060584123844192508663179335419517944131747673132293113345566945743804388159465763509904057378650930276315536237400054807566307996320104309276373233557919502198617047926036332686303557968698857102844542787972584758679759404974177369351905317945124346779495828192966433208496489834123207158730552665212185250451349236302071138155368620877277475725875963962076136979792375496020790671880922513835092735003265368424517467543167786325529172929709635751824663377441554349437986460561773396550677840499221797720701354624913908468982895128205429536790177115234760495427957412359583628754558683574876898706452738043865034860717651018179875092317751114808953805823683481266610026202498039436569996259293237008290304047070753556430964096933588600029831870717766046978766300822794824350878937131626194451048120467834858988861045521034148481069957336556331845124223541549122591807630933897615568732150872765068738479454081891196709619853238331862490213660354540947231979496051670999560705814789670759918814702069275271338829328253485772281171102471076204510151293906777627242068345393713034713925973316074972693631243046118007019427032655250175190028109581078004448783335776019622368460333599135188975411746871147527046284239650420663286281440803970903263882821782753523772355515145088392124859589226725478556064596361324047866021898689548214010645289495584466049324072327678580440488801818543658879701991591217514119677594427101755309529715624302773417389434276338671188202498024054608131933292381495008703878378540570377459424930141143161256708180483574535591128506507237337117690095778794388867954764134061910416114095883585578418413704936229189356764760252712234364179370105181838043095686181460466273837926767245338939553453256327094734057242125731653243198694205699650152580067520318657804811153115411759964413552883866432681591347442604945804570554928529582489466631844840483249252585348582477646218809256012723079000819843160649347832327982565910606090355315070583231940775826930448843215143523317688272443196888973921477289844642931827589666890700624110035255827151720737597433985133597791728145100469446695949707954118085489131805129694275494045373594201676590569088675231815821696253594604997216015700034534976053861514902184920196891225619310731967337303116368966811245255585023961847715783091736708991532360503800593746700033817509165232925161003915682445814419507838068592948260557435932630465196424066575530839467792899402869942699116739124032096377949283414196092343704063688507578011249356371914492945139779115522963723766751733189428759079366442643627750441329900675276436339425048716664610070308182978764043415422361706999090601883489543069466132991995729369491969025368349548589287904873841444139125384810876272480297830276411779966993001817893328947606335869492500164952620997945752896497273066227803412585842254448673213643139700619124054745333511985324571891184851270374927577689827957628443426475130175325305478488895740030773818373747700262562809909575745864622847629706541370852003552811816868806736847218876087207707564690300186642500528901178773129450796532696129913799339867241795625944995958124261645233115145783030793377884296846083051236203786961805673864432752763232324422766771542898848424829071744429438883603327584195228708709689445497661948551958396199555427624476909604358481013714970483255286835198041044331335392128073764396497792771216533503235483355275399992525111747153033693270483603998096375647412279622429940363449769796177250113819268791680071935913719210841534031065860232927200044392900368357940376092561840421435318817675777721752038558879352007773110176239119930736572332303019756668127220267145801566588843224943731298713525109623839670748117890049045602140608910710687315609739129701317442867159509873608880747013863338147767361651853454774190632098740086344763183256985226664962795954095303245453847960689715194186300622442257906362749415188659630274614408053144812635829768813677327821294183012381011474293282213236263562278910451802205933668287012805590680835552595790641517277198026814108363916541143674883135471547593419705256434498252900986687206078506150840441498947137032217700914722658635762390973749819736029439844060300051518340591212300756980598757576289028830923663563855727865833310080452357921535468610965078992897288843920238600606828700705372934988936232103236992910480136025020410858244576571472928420472123959214530730903957226381013303313558663268736066035445464052160961376744832804530636978467766328006673179062414410042429553221496860373084223384930715366640991439838799589417273234868116091240730744937235513660801088998154901910823232687490414907973346845281291639589738725051458956818852996093361311083176421998939439490158873892487595047511011053333685485860632087098076345850643439443087037482914147348817040890631710535603160794795792664325159020639378272707270199253931165969896011265603933486016838844676833222283465641638640317738565117293150851698724110303229945978926164665617189588241538712286668581168724834797820270567645789417258265813765362964773547354656882749232878053192721798323201275402381454848207128491592771139393249808151732367638868308228707234987378488437392327780528789727399970016512358035370384903825082053126967503223195164589334066160752812869475036646935264852846805519514053072607809537282328862966416449395590589719834129300987697738419813896443700786701508315436292472015081871867239560124260189820063136271196711293867743912574170164481400094184127196637945921335152618006668109978867280591535233923839213954848667107956142917264482855460623851393363192244414876764982553738607433148067141431476990542689994237215865828902107823065066073170386960303806260015944986413452634367214894071641146855740956801415614996789066601026170319150083897311564877680321774250596988491093813778744647949915742818666400063928543101864092733601693801277165375996611416087658758813841950890504609262239687266744163125880455526535829378209290081278050418904710612954571921726491945960637988364521529214708838353142601210818466638520736290917572043886360443835134982919890847030768744617489314747124356222691185753230881055199844416781671842117966360718447355303520725390634126784012803552015970785993919419114269692032844098377638745634058809841434975095145367092990955253255511895065810076890294259097099743343147222083084267608708735785859564306133975215859011820925722797648064077161477269509083632325318465751865321151278408247579103400662813817318314564113427114028282525754359046743033792847079373285381162210650923414246084758912659610934986671748421425268116275205301143354564439968710572240200604738703069432047852256074252558118676193615527287957402199854621123928852696464514283691851222722991300441510937329195448883924726363832435410319251580385724052118268127052811698126042671001850007030562549620388569475264310242463669175295675892565569615744510655724208466706911237538986158742758120197626420954073269702922028370095838181468316092394955381756714758212995662745630944706682528274559267800148545274798119400499461660832312064451834990645247104470340363836314038113288336474587478701322911308326133671536222541434103995607953397408112648425392132289824132605645870007287983288880526003574435151613063483752278706359412098380380026659074106263259095665576319727686565282453952332534645044935230335558977526845387624496384157372822531993093187944715247641323158890438443810277523604223637812374409326117987533421943751067844619459629108390459779663475973214740285544756426179006983410618215376049133458587475948682483449965286554518629527809941135907119904894446658007612504062291214113521932168221099657735343560319551037831829230618829138370166137078255038423883784561866099107833760268421511504544077825087364072275779285341508448739386941551430146913880476101063240186008933392331408188593518660457241660150325322113635194101901882312127316889225588943821340843883618826245565907856236922176820811449102912984642393396752555174202449177212191249320610358415085654437328928611711698220270971190821657397266942221744881641567062755504573495920364128282135118092212758987263142718276238741560675044367166693626556993800151165548983223317722475149402519208640848584422896372760093402887250847449641637458374918342464451896100418364360911251069768803107303714705964238120993861270386167281016686582064275746387709636986226756501739268118509605749961362233705578542470306061636659935641754280903712413140772198906950788292907777080667656156221032136613396691699974591395019454504940412229515011154197935636828663009659625764621186166464528830569912849637877889555180215963444828414953808707355634984164646822181966632154001490840298089432096620462021204661971856764529946923067519037538440847489621030032170483254368483719071831873749196857467807352420207660498393044869896400373412585118375415055774801653004199870862959848007929328813692329262827091110028829640741515358814959140103996262154613287328135459928335646208920177159469920247510951772136854415018644177753210265596833268074051250819317787369470812178559726479521508493074881460921741466224104347960109370044176607893904041328837364265942946555408450734489234210331057376296639648314617191549387314637583803830631968709505761923451365679255741949959375801334770557265280628970587727062920864166426556438162361432057994528331708257576290384092739492803683559856336472900460958642146016357354344507084141720150179315927453004307486098805704747038368495874286527306165149987809005888611853500638151557019366122903402025738613085907684364859828011246717928706641327777849381784465288000334255079311444186758817456362703941957751585663857009136056631158277003697170879291356700710132545386103617563552296452217978837945967705434043196907667601649727330409396856596820884428848250827959848047618708705554341364244858028023585078519914179545799450461467499250366319957976809011881465400720805723586387418944513624305689786067049837658151788786001574809771195000179721076472591206851653349687315753004427713732851661088376242375026479620227895895535918108745673293996664897646664082044840869743187744380082417382379468208054768683713380423751493428103215316871252947750001662682343268790726605321795256009378251471203074251770113505751702239614662065342916771328417545675278010341168506639509760320938091613944483389153085465111662309267796188844406847805454024312837224590382881397137550117780845630744247874885174137277125137947116606734688245912601375953820623725386341271448893603885759225990727052235883752762150716482348633405081914334130859991087841347714788877876075881314120682639346934921549746587186421633298868318493975242401785495848187003261515723785526642050858483976161837213533257339696826380063782645560945184403922114056794534449427106990089681165915846768444288988359851265554390118122649959853344630960591756329115343663617572653083489956872234763793134531166867220742217169730702474843171705938773828143651244080154131815002919998518305676085803896648041632940985679687622838519576576445668258418466282977594112516373278584961220407612462650141382352687843894266792412906318237181947273791345117929500967040040328205433412901694673660847677607362642557987528664805539383921342228358629903896861592717849941173466357908440764780579163507193117987693951750276021063137060281072989215812118865912219685427060507718226592197609172139038678423633592820905289867330665610827385090344175505904321466217803613318282759614242828624984167165874390372265307502579891107675637354861641627637255145611367229623233122026548661804466288954661634787377093180560104040990426753345048498344052851987651497082126381118999293196821665895106558544158532915086635439676825717996697915635410031101832530536457556428518192979539304940118139202425756064056196578433150580304934028862587998056037203224357967408669633959382477542484782848985406662938163846477153163926484317209982013372753871541082708542750701683099973875640349538995007004628370754344281100911764817968869327348926388230732690723359502064805936280857745608094764175348116370864382992767418833563837767290899093820081615548988862988261437960898634394929371655104744411183920327033171580893952126146348455763886336489596787287254067701152559196267525490415606119276098669165727238730909486740862813357524131062419783753415162492743272181524621435986032615497842870777455767099784075139293232158926651726787443366931677402540098113088951825678147739115359448003755719737497880306687707515871157470661111024258559023571611411472467979139488808194501254349922982327006110944740981983849711164468576706623509972019266243274511464122526490770911449337706140443890207582219781369529890089968335244475331352924211949626326912605892547386767513441252492108983599120311502725895887715872320943611239106694437941681967566128825546795440058225741267389626612863961009106676068166198518152235122062947474232547082816861148211401861324756194356409036515740771065513999075553138034986750426243443133921070413546258033612070610493605936071619464535087795455836260789583612530598160412793055045740388776029097900281574252780838023896575369504831073573805052720621036821830167298215786718838698959783346059273121846834334966824924610520201568199098519737483203764378607355912590868628984575420878300982187986180930477126064054347147419116569741397046632718534777128025208948024231996387104244165948617415462052198403330885010489107546091521964165913369591072820309184013947301339929965941052832766004976951955285691096853136533052245489954848920008050627984519806948283015039907400593533462706856686749052679059937034258624747396906158850882874603483002851298642203347092736587548075404335974560719415262380853887223719531033001612209652010917835495118875017424294870239985262132681260115653814422917555130477373218370107084709332514660791111230039713504123019129305641032641735400193245324736310527467149117490949512349875315119352484244816623386658580485970644918381930911639084792992878701852916469443021723003749656072052163503448787139755508495138537361809728465947119827826685134027702410339968322787545268509855502527405886639432372889462504375312289450846326880117668799885422206568678967919838951680166300664196848631614334274311856966713974431794720582846842148530251960667016499755087941116134404033830937442933060551465671091038418767822121196490099748340820780760503547923459984800929209414728825342172531139120837650261506265967156510757184722752104157143237896093965678416387838737339994100022228801134432733876881450886680932518145277147796576810288356950166194300607295700877168261141845199260219923549055794765375972098376302243131075101210721728016923994798902504824512471969355768787871030174921136910531873898442615042255679042277847201309808525927435989213908627821568215428947666151362383628690327341669581623471698591655864445720145786572632892983935137785800339228811803427451545263565878068182222652754715643866782708952375756432722680462340787565016701583653705297591039251553355624961406692505115901865928896919211422758344281067806122450785062364130313471345304433884192159446677139124536891670351928321798273877079821579629007531948161783861593287861618911466843741437805279570313590326726907024983836035835873960942482984863573593869973503726804377167855743445486772653879188842346167787121899983714371664650008094043817901309270898537218623952297797584494182135152870846368556862854261625448174401970444694486322306576532486563194043423791337992578794499835331936648839525569505296388265258215110996965189775793948450974716446471586652002618592699911210819856364300477455283736030584053535957367539289941201451270423183383191224412779813709852913445280781031712089025677090992210998619534324779410346117360974480993561528515090628810049513709620344630738699487305986092435126221618463377259361201801711321824678520935582614296404809954328739796788920554475032164224110162447669233710266565515454192322218472373981978460778449066523197014275021728572310087504546440965236140866716799750834093508192147009689642718966175917321921363191833989329926452019422509775968780182491748066714340133717336450047396664752290195661462945297089561946436739013361369895397641670978632298589121092906866421988994042960110691423628906125853984059021451424433609476680613184191799023928983245112927674673027008669862518198822344305424827484942475649600427787846228573633955958630538974939105846909300270299935970202733438188403679752280855811798972683012606535732437123585811500073349255261401933338427526005369136101817847595023191469707804337964069574004591655488181953829850905885867721939285663154430361279740035999764623575235693000514794764212553506252116166359043460466375513464041427734675267495010292389381811243554515627348010663362762605116168575973850119452809915278811794526863043393839773146347171417116615477701014475601095092750233395008193739420791220637510306343266107691617730147172728710139729288370384717720904510741199769947669013116167492677982435105179507583660594473941772496773071186300148871663195846802231516186104791378908348605530264292265844712668887841479417226427569335987599085693828779982989748337980265008011312998367436006718926399563585093409145261369243003319025448470660157118030461742755002172668096403880648579734922155691428403507423017489702001100326689211083968991375016594709715903745117424723998848235395514891504201695787374028241024436806203109063380627700834550742344463712974983261723741651367096755380003594629456299553357146750051505461973596125563238715154362128134216437940931637394127808277998669651675616560560356674387631833993922570698149016520511722473060354247143697206914652510418674054807528332083181360267312828911442552198885139094632406329309734505308652394340818780741162654282766147931443199876477743435931706611052133812490088852872049721576665595574959734742694594140868824372336988438976330511909998079250015635374452770143879379150430442686506077759923062739370283706180251909652927700346230430290526711430291039404384663563813129009063169575710845295534701418468430017692782589401628346182702012544824365878121937575767803678991702901473022895715903378891189417985755695194449252313136508798408892344858178260415884427265253065498030906003945097442313755047270205529267912945186589735725869455571367009301263811976731252940628265780095782357468550939644043649686417931858532053903995433985798124960297463831875930269841808720425515748473104215399527931860749898418727682114529604050273987528730927703183203046677858705152472308264674847132653713323301385661019927544060148183226743647898043365411961792410310170363888726382675953119709480035613178252438602686983911304411418439332376766198677640948280499101619068565135312988786455823918388801617509106611693496638175330854560783295880018629899244603020487018088938892450743664532060944032598900587529008408413703701670466844357955747545794812019763447995193388698999737283811514394094310518318404414590899498319658226067224905239806961612780081264048774172801345313123225511509653866639124336599169387926774919575468300007818658705676301866274953131479497749229723232113436697619905340649101849287194282265056680028802377197174757022979274102094253762948599022222114264781988451622219926105511838204690843173954056144232284804765802156569897437087529308350414268107384116692207169268310162981336160245025809539889796748776939795306152411062183538079331731331366669215720347057988478483051495167264148989971553310843973396461990432458110978462550471880132656434097727422474967189303258296583372904213656168294860096916581498112628947114379529051602370579517003342264851555472600409203000524059329576022689690567957355973023830931895725543819812149098898659629443446655871280497838458041425099100544874928687940326590179532889945633014981097786259511167303041328121652064560157352468204327963661115039679688071860075026594622283351408698241802991625215859706585575055760181360685341496582790748238306378355062383244820991661684203347344031997993368452095501662157934535254284680250242267206694421406161186835148146532009170810395258384019017032716454738668313036302069134269828684883576647789392482950251046250845981413645388043004817744831165068402272642140201385524783313017967211761382415703902628360907143860295418472880443186668116829975185207308665651135785152706322696705146095082799609995390526564048729210967307360350333346651440020966268172387222683971802502378562274531475495074519098946312620128330158598926430441089370727789407013814113437654861474259691948054997896379941150558499408055847799046515300008940504526765004167772917771347075639067820375805781835579190832483590834156040322088323625599863218822138953211503061887798141323824461716044616833768229070474224200637612009586399628807170868830390727686454005298133499946273411613630601891472634143512522999263009580213922945866738964550045714975679443028962153542982670856606345111102803891930555565787178445203863208744388133648562933575300862307606472935690394745738567610103199934051660317868516782660145340536379504719074633714241176383668861361960648112939925796439683642015447494839596105546982786404318711677290574205943917842729483132457007253908176872000095905457262354921082615817486691507618418799466519088891326768269571150933054827665676489387176208927568386240408393312783402415099836624359574911657081542708717723795776449878501129095673178540642147070840935366339760951092203129558133109074983857801825757173716206904172526315384719451924314377412510171481297895252447215990648495545232385925165530605035714166243030219289112181361981629167813322530191615882354590159704174647804539341319062117030880751298275707899655667639935583934132501838665924338491303625969205087590506549772918183377085811917948616628281309741684210458411197498419009149292250223458881044145024057982752501436391969807871664168210950049068024326554136874229248149448146458599443461011072437995262697192383809685375647588947084288927868649675742156246753317150600502154370153168487597913324144399060279903738126061103503050939689411858797437969148150998076445202114781120400120057246203815624935079055277916389313517016348988753307845604359456612688596560628816498349969667930343915632616785524325997425761673555922773639304363474719391594727874458055213632442183026085847453095922200484706819615166188862680812116818917837954091131190417179882836623023238593004833336171511176802144241426677475360571921249318500453516039389599592621448518616070903474944231863879513619089575426209628490059706829685226254283256434437879566282257144819581180532182550120772599209382725597163086188456839145617897420903984748222183623821623540621868446726848039092550998167215946871494529066868035506408003463729183249789574056900302876467527672741326875859982814664009264812400095690556165784532835112306134857860939943748064382871950905902334997341889762379411872601492261924039993313955394698071203850255502625522656497036907039809447851713392047750703596836914295980497126085581230517370694243198219154897547363981160958033914076412793019664408355835299233910402217002359979519662453647824810989400708744259726587568896153815791773713542229893756067493166421353320327872730486275584510807841900461769303236194314152732651097944667494010771699819335146981302439710597618086954561534125242644575223309781644188440285323319883556459834971774186072877888094386617784574470844632684089888519911255209294947244271650501225818732590607268740370191620509270889902154078389922661829375882151334099372131306534048089694502547202284050955077697570488905652381645404330713396639477659074149979561101390624839365642133529061576003227577267089660935713955528784839212509023500556505229975081263999051719693939562043399510511561233409752122305968095584136006696242494515044141321985639974719631948333763966146697060626557635136150993984194918558319616053947565120105128212511910198427640703144379559473688565351497794028926982430380612877030034177017601467984826998779903075102741492686864626618681317037229136121911291531925313256927860639059106003038926699166407549004461429207880178182170867886645809920034751967517197564206706911783573051805711339791844252435677153785169577713517082427738142663245152933566555229724261742674758743608819986254972373425881797812177244225043474660501584479961993180936843803103913863776115169803232781389337682491311866436041455987109954639183452553237605431561787352146133444562358501944771317381966628862522439324049696625541291951969958123885849542539357053941997854026863479230206688322376596800422417404705377033897282677758074510108376920990605651708497091956901620745203312958393939060023977813535550799742204351774860662507090769192946742986825320469819110842390513726677304078164113298484404163404886017072877480681936995977935749107792183743819627673499844278791721692848651498631173194863618023553274980403154191879132245391641743754676923219732647439814692530591586252272708065136797689477218576367083494499677940466327992316947329125477900435345763378152721587300708078277912095815999659407224763546001439675828626619321540954697480475948052937161137525093537381219986488536164612577824700016312685049185464091633226871022360913280939990904048650674009438031515162672392327721800911316224770613369461792391771893282769794430242961805886830405115373217082593302948539809778330953057077047833791388727475005149504286368022300645457611955257907998573984644010998294283837140366104968501370685467242929569768272460759052402059515338411076275756928685033095789603849532075849957596256732248188539801614155919355151252105512669595461305841800592947616417894048451983151823387871777905079182785517953490867872590021346377476751368811260662323581826352326930213677670952484312644757131067974910010016038087083632670069185904010359448770243771767743032514654864380810981229221611527512969149913974636382253485096472839156432603895138441636539622246384418071205469411944647967884091235748331852648795315769858975647768607150023630710092809700015041085022942143393195770862329294246587372957607420921159959051321697002987538900476741077795086584169116103640294706250756044465612968172699363348189611717542384593226216429615198572082468529896960611511691256772274774810634780144842470941692314714615723676063961313041328022282587682936057538185296723556956080869992733294035143438542383425077234822996185341128595919625420667000314256400489709075291830771653522673423034424634717050327384792343041770923429878183139817591334623111786807551332020634218426977229457810881296488981370611557411840429480961966615163250226221023204594239115880602906710356739932118109387780570679862090056770380056839838752297486930513702334554611764942039116733729226121832281533288756492996261032503947130132460899623125016068802133173582240510018617797545089407390164744193332043812372928959484418449655517857759239208362390541658172212392874721673640526520631804496755861677658688508589017078503358604834729920822023546333644499928034708564179051986822273489335005386307140698152117143341895586778090997365160644988868253657697478551022752121995055433066848361514571580632283619511538249407411724553407781862627682340257960163831474932190180252424408537590007832010849543179247974934115629321588609347625079748556248368042762369485709273438611764043570296504434943025806387985751965164078063293168499505422580422409220839836065184168607466755251091142286822097426537817513934172997390183782083601217313141808541365321032636332509278532489964576130797280873216435834494301070091360374503878382032389350716749831799003576619862049863205397620389863506586494814545615727802093772031526119588035825581931372568456471844089368923124509446089042811949366637319135947962521332364445855395269193041876305450169199265798875143274524404842507724058426556123613378725010821487527696207859791390071615620280928936848845765009251414716458994706311535704354516694991763722280304632184960030742623332942759718966451530244924995653564338407941432296662424124422284940436303639543499019860531877169843778689300118929007996428447785505048618565715626011479621620334092039916129824453548737641961312533646521889853268977056897446895923195877153159166613899526062481256892841859324839758856013998964968395777484430320883590930966419475899927475617849473366580960684737334255826727568936948966402384931918588209116753759445648979058914000567340612639474627716216530901390843097527353762876929488781917091645099949398055148209953750612430456280139620285696503973550367015381380525468891779612596669931860876147780763315387144962982487741239855103834304566925863227893231759274293425857662956291162361068580246138829253848923241789477285516967788268359823745483217960509571235883744852210751234777401125631900966240708848298391200113675923780654113993011149965466087781784397141842241724031482017257552298832548951491029912309020133840017005035407097420522992601105333681516750097770194175092589605867648766168786199666456291763877031764281042867796904792140283676245092869808822133339392143658665862949649635100743590592228506720613273354412225694991510666559383696557824033545714739860287460466094040951602650742899444420664609313850034763921956877718442145368308018345831243095112344768792985576428813608966844727632477007640598719490195702552234739480186981361563662627687351647054856033169708258261420301962589271051003931416208790391525809663147155482349468658954643099599889084607706641822679766254273067356301346229880373590751484000418031154542777021458115057220283140368605113470693971081513334465542604590403782313504387935441172286776612312687644095061498305756127506840549583975076400685804612205803829690112418483626003815765321855941337571180978831702136782612931883805913484269583293581852219332426629487565114396018274356321069518526525281633867824259697358252091507026439149446858023949489642102427923306253991872610612522455196046094078871493414688170171500621426584850370740832398885705296907239352937672566129201272196145059416057824055182817546076596372004370324710662694379482712844033596458078464477837513165909252882719210637713927310995063613600320134372596561574433384789774266911880236524197811260318324291017444019491996028349555375318821837417629280459112493285940390669733704903391164894111576684260418231833421522151945660278717384478227007109717833948773576159451383908458517658373041410492904914844631249665930805183639866633033446887835126873644330267953267867065064989320565623220836248011223347347402942125171810334239726353426853446996019906684110880009292597211588282744859079565169254290184573209348761182307099915351997284649939902663737649920013950495519591877581875055069297360934619805418079693801236391395883326563899598114226207626796434903126553916484002598940788594646879971930844793574612271095363085876804681289417979202750569056038501326126032911476472900247990954364822254466640870786033220030597829842174211465746998623685893984542472546210131761426363078061748635184086682125680056126142404555958901921102395374706476773910272873092582021850539637527069266664453441323898560547507937864209900579764150538661547405851116052095400008509387304842248641346818414574939364903973708352247177387799617350510510313366011073568864705964989306700679682385091068714071681208863828810784213880969333974618847188651152588135271691065444648198409444298204311057887955103994274521168564945224473319626120587962656500146107959470268363520073314498996408388405091499382800465308307665178378695061812068769715306914206114228458724606020994033654921503225169231493640522508733651126176594235284391350874425384882867890430002116558056896827188925937499090101241907846810548430226804776220411412949477073632393278462313362230631798714923508666994882795294695849560533223970569894059075587517236846753894586228623709953599975298441299850914456842526171697143243471802031747052036662203744190880663397100219497205232880395471661441487610664220686289464026635317077145980356856297067094217514338725852322227116109476458126588809095516256407144231764444944960901669886121610195931692400103907686440426676750731498850629362699256455412404712704001235445274518884733723247181875263335742350315158553550971525359553173231284301111702310947044526073731041897275366820892909283025778606984314981081799365299684043680721270415827779706550676922019772536964490045535216372701993656954164845084398516539779805052873090395526351045563844927665393025331759689889079857404505496804040220948122941355896608863229018445183733884153203451266699920682589667457910191538354705330992087870464423956100742940663669283702004717740547036434454796067008352842246703735715875652246505064046989806833897860759886799442506054514894120615294063160181939412712460375361750855656713591285901164553485999690556548124283874780906713140358580631597381052226019223948686813157609470777778621415135645108945173170997551091399227182603812018855086231550528944888947446057539215953247492330894639605594084969758475575376130116917371816374487327884935866715406460913715102101200545150726602127642739382362948256587436660551134749518061920635257186390023973658808298382099587254250678258985889262611504198521050630653749177859967294679276603485442066047231972333565870264173409365433980544123973817562386968077598238866714601292888305312483748431090807507896483682020372002797438879694437113868816916609023375811224584357811609874250306403733242178389755829116242375395953878579882410173519749912086610866944430890240547528839261757934598858966455453813972746637635753474641213576601218831240272412224200073748184957728983306695844522558615658860473978400168270194476093174497854675576065622680272942956240555006163557780984827196695778306804617907845995412939426313820561717548099095170538344478828556573734498045089753857658540110841851992741551782528496411720325383352500231433496836905134631021782112576843162333520985462338935070543747166773885914475107723753335237488631322418179487668390791475665550680792160841612507035540641425335623482193671935309649056754367111870329165547703339375056337313500475823470306673886644592103857771201134810047310069708028247301726008597699584165579982963496297812805862569871324534172824015741906216229980187403045554740480280122792138663350119850193701647453828839785741113290729624474984022046538584548075831160348869469488665013134784011815691840254602159353449497587483017577583258364868838704728158664662075692072038262998113643523640019822670057437704307848342122059808776569289881828401098143499966924139640923628329981633550178552460430006931115608508774795516988407025200284082324893673734722897823791452406887135454089077177211625954998482211645547420826233068631461709267891427785825029053091114386114486004013212698570118653433784915368637747080049457786231689584434659428483051981162190217309860630997897262552830195442410260369974648980712895985852178884943074106486651654719977278568953767502501092228572787551860549517213269676369841305910997557330208435662397644149214901502520116014336264419250386519457818806561630637791364864792581310016031703351380771892698721852758336863610811743886981821614250040132859004323072076056321702145379714639765299978894179605445015649501988780755025201386864283776132537869679653080405878148598213032575232209142075087656780076637955772046100414205872247392196284447774230139590278382051479711807738126742753142157310431795308997342132419115701715689208959857660975111685644254864123914152223832796221632683240370589230907887459745376844757713325746815433821785925269343624063906867972335458768207372380978509104413650222904209912520369389325714491285750069119545731743760322963465001929157160947519352102960597804734139705681280853505087937845819863104969317687083198094904690034070971059792490396985223589067747896571660454589534472719289085739061702792045213522821929839398968296479500393926937558208291908515887502165483353913005080606388660270120398903015543488660818897604013936851495249396204593502789289797503988491566381916511969759551376596866823300518990133974267042271773124760098197627887646867883714095594502121394101709548510871339256349162747629973928454254232598433158810785520608145311381281104633212183558506284904266925452108149500156032684683331558678557297291412333272579330517835254783034764175034111680117476929022437703719970502598117848537969710134166295839797291400422054301906175141868065255370337173980244935885939706485679124811196280580395354045884630646000784086563820723924925853380023625939505480674607397657606950566743142155916718821777650140235173116883581537985172499129605694148148013367914187520928246086161664079840149304878608365596310930077484686695403866676940178539349590711140934771531531685490826473738506950533460608740105313574044557007272764024903831593085080225322338791618180367803299409357636210722250125001876596931896147133464908273116651966259521111174076874457365638666683682051039054608707076311685765781867910911855097692910676388369983196836598087204724520241221791262725250609816646119484466854513824140054818731514993969897993396643593339867559566924413680237905911281777619103204234084635289571580429837344433651309677410687361489711934875430300254945051004493654347632327435436538186696986795193854147051003046578617366699843741925248032138088996549493515864084190458727948197006396096654444571725183728041036349854262163409715182139180707289605525047992631681710133059148319494120010360574302813310600014084236698617714217265136247990140744928795743048038317993023894246151665695986508759662514593346799354446051432976993237784553173906206298055412071667587138617015323619189048429360610119232960499451581331273227497731522824806414886680190774092000466259402757583077526498090484261927811547802427744462824693979937102926493508976661260297162753667616640067077348180352935836289333175463571073256443726849171219023658921872622192017176118730765329824262408137956013842510218194960009090252770932329377426165038790423081764237653003736702257512645651359289907973171007921108330628879243642404890362871287753519380992429268781989678224529523928745084661448587470183947377265845205438182561415142235870895325742169155034878500832132311129704846442527379138234658650243192448217306446649291391914161458742926374877144912693439364876289371665548151465198497335049833804413520031025096579841662338660102568218642160513068483384924540649820432291220095174346828849569519969041261019542123545808912607653643455075416872923487328260775220087770252519267363633897921021995172179957096705663709540203116813162122857919142377808671103824520175813650021259112405884598582307474044953452944095894659833623107000031380958345574741509655263755687116123238351977319228573771224017699320034151231615367030573456534968723612409861333065386789269576815925392372642218870710056316110391086251697663822556738328792979411947560712434873656155726505582007567704168154989962189983820741008143978687176687912809989243022888934911015671337630441136030965365916319707700911509382561560074483414432038351640082007522979223136929673976097672036584051568578963118747683911164363048801174341310385695763356782617308778704209951038268762590852067416193409352127179406859981255853561119885561038207359784778183962952745969632890928511703434966522113894681515166579605274200938543731092248559092049479488150555095507518780011768981889004876832113579955810745972641358856418211084506640892857356725140232220301217165517241115725728580614032177807506620502201311859569662260408483723035191457841004251707112163639881906383478863971624605093035651078863075782936429578279447158363651013176475994440358127054187812382021110236603090760954230167629738850649507366265575481936597444513935968457967537558100592058873643268728126890402003010437680593342111008800906853897573505541159561664163540020791616198470878535654452340780406432183504508168076786577575796143079513658416710521366436667415394986331605007727475580312753045484874161956924086687792830974461294958307334118323078612432779881095537638740576053322650152241397056394985222770690361870407320539978864481696046532676822151341588448178169790042473673340558911910996801612072688101969971490044189261527185426606474390783040831723436343904780778873048972616358707629555676653143903173796065871538097706382387355258231213662105147427923399641963832269866516211239175349556393722238583017936940052541952484083646046668586390745772679335232072271844157593593672639533342992405473622451999194153583083331203592267084715278028669454127874127127314237003081976394761158702006269061518125348974863340810844945124366116243040600226760094134137782160991706600747587561924993761409244850606255387063445585143168312430001951606731970140491109367517800067063484443229189636875959440751073139674714619234702350529855207379497044468446110468198858064808537763555114254204165802594095104248372338812933653793506924496021345327733910981920355152819161055444230687910481735930995708228200013976955558164438522395232250118445775717819441131845275281039397061682054226401287445459881514222539068750125963584736050637537484156783333001242886913926463158308231510102612854465290424044930395642064495516020749900308616244024894765357968965981001034419570012280041484144872052736450642304374435273657487227152301929897303700837421273850166787941525860414327013827951511631696071809177772221516186819706503320644730763974448033909640967265339368900436197240882379685329767990195375652125796986657301970654882897021389026734014938880153465113147200595272040519156868754356675851102797065914102953578226939254598896490193407332557886472638480677505615545408710059762424837176795977053697641393871859811093996197461334870624268635123539082386488504187079582149127576734856651215019078434774667980119462030936256390004220757322848791641880089654021873368654613311861554698093673020293431399370807463801379109319992961179392565484500630694929108648813700256735003003845186224969935987757242274494506759513911247326855929978877106724880924760563561352978235419738753137664896346279817473402361085319542381552986972623626398002879391897037506064315144294770292116457028781130184022462267338106080629103958011725679474720110950957968495049590701472885783730252705238784831415864425508634381351191891512167715539647941669320647420148748733629850901481344176981718597654237943548794396776142777473120874316277224822194271016222928516666869234784932238446774205852290514191633674868047531567776232810787408762909672457204130337284246367831281479892214033110778013116936551500116889139712868753329757882665089814929329709857566024573430305281673578683367354160515841537582603676127556479000539858569664974524453486382263420402423208914769410281818971861014509880622790823570324139537167204380004010582295313168498137964833428181902960924097081932966437998601141987280796927348302732990059046572204117162063869116916731541383036629933732177945654760010596340363773848832211626503419482938204926057489119915905072601496832640819618467683851169460192557382541449780072502494381242184212413776344057398271460320780524310941870071088931499732616852413336040102934482126046826823475593198308529667061873752010263644761643449009182157754328817939642743909262537769907197803256703598697644497710199638269968426545304987736711047232819734246016191304846421984924190126048958233675100977085935564919021268979291856817344311462433704385833312263795308484707535498643438463987027997686041242001675981081265450689495992238992701801034169738926392212831094935182377341399419277904133351158270418207449847791822807507960987923468061060407425832896684324823337281619570294281529932030752773918795313210371441865391672019059835698397549722956399894870850379509019606442394681737146012988317077360457127931888557606642590283873318859053354033878885871887264948600013480546197025874577026413381808303556831854690434952130910085128149916138640352466353996103367276821071323153201087316404520361975091473283025662203760062095249665999473995042876031076856329897255573954647916625557543433966076629486783912345682075642350212744265430120508756712984149662020937952061989435654696890772737334565014797948981918854596653667538574783780013474002913961181818234477004222115393284364635902194249119641651403906795763394641237108577912551422226562343111247525763681861712065192114340403917482420367712177931974570508247194279192163833311130790110459712976284343036119534712398184453234459130698092525351566450792421505310182618964412894265725722143291832957720234989890712970415909897352193393092152494462403480498232786477182353743986639960859042251404866209879860080836744997337559341594582906985688219176838507071331505376319106852797865496641120449501788949025768331956922337682469906514850905309435746547868202142593037469948287056570015056068403272068918788631516324549764522747643459389324703756762309544775661583324143366804361585141632355514898321303218709132892490429170399767184827238034869014943854443663073388136733425734889747112179353523778164138534382299307808466753833436657372093646682209276619014199521767655404202362941308389889458580657428223228637309653568537977409588857772948998807903095821171609250792046548033679211257809081175894445833401885581835860266690833139532782194614967106298470312842225111384518958001844724345288528405612913809744461602827962213461188239129346368465499541066043815528199580631523773476732310037441539842136117546913842488099864929787807305307405357276336313615173143980318540189237181469942301205758484544504843423743721719724520344454820085675896270357410561365622700493735197237958735794078430365827043112611139769062473984289210828020220258247913306836989434645656773114775144037051091558570943890784955872789522935971227552699941980472953154040882730970830745578900922424046938463143488393945859557009995035765642893157447279238981589716763339306952381973239481329263040706627506500274038086657082256379424296539188111085366515472847765509594804604615500114119388651321242255068893414425051468981247719336556509104675510909656348723025842651733523723007698404070245197571218820117154816692826229968468517619975054341414524141398648719829617100609530611255066447898307006434305269574236048036244410095400385525654997225010569106745975993069751428882555352234506122015437860564993312791809947091972475187225273028881275894817001548218429000945810809659528848671419664062314331900401356402246179919287393700411608413443916417809734483005118386519522404947504487662369632174921614408366195094707533997168140316392064916975985387485923020637629608102059233827480867396165802954100773981206238732175485046654404962348826722292956732678092678955794832073558839764905129103615688689057259866076724203146581935625169543125972245102568247494788394336404750667467081233140289496407537588711540031665518474450992427830603215838595054380670853564662248402390316491302964769456875526246738248682100305123828052478611679104559819551459649518580863832646237176036023425112611616819032735427939087680363411203009959585020309803378914643052855252471587649007325188330664377545712065679919042198990957229464745356874313727544114797708873852332798928505577267638144167316021484881733680066732932866967363092053909472064749415643446388940952940137515287109556623763500169859075834822138637314791302037683441623506824103047515693722186711510663466205004218241174492595397572057990498968198989555747032732107044247525056847365471705914030349540658804685535105557578273861484647481605228665341909645815793734544225932898566902739299667931138100584329211817937667180912266513940420242178434449899420597833138174511083577252845018228670173673224757046172177033453739014683585583807401784059523977048195617835986886675172390553461497080864895984812921017945143368664069209191019920055386423859422503664229177205323071359226039969301900712773799747533214467351573987312349899415730158785375188634552014276536261574329321393482840533345065009558441805539379729391786027303862946911492990312699202109562526502989681340331153055728354748679283856397565755356458154907993065368423762221221092952459992360044144337710398867345871008095251921299029693258805795437427438058428284334411585532030947535204465754779177921780238112769124654264760989858605483189923717092169439694235806762073264326597773417473501519478762131441943889301386485261608463484603873752312788065044451157093071955085038050122145762129505028836463315694365555824147145261438851934117598658210732737173832987965225963327020069710996238014303007341806645393576558465070752620146240909594856239993301254104907396868550074579160189400193035001780423586509194426677556895613906475784573330968062542427151722981158347374663834896184242353867387470448177388484033683087881846864078034230059629704215579192113532522829492971106898896034493602036175983160269646879190523515958871140224300894880874771831466088703784032196509758681877257554577991370058824962921157737938569914409420386193693505420915766401887850573061977500571079900792954557652788934572727964744393363498655815926270592640651778224953885446007390484417644582787799484857852156310052518567954854415307262925870647900314875762913569992232721721473987278148519935718866403695603074088432129267324855203302439174869046025438757322001603910843398583721435169950316470248110452992391595033414497156805478358288241952613122877705050090118156155768156070423602752396971498299197158028874264486475671726094783237293819290481900075883158993791534143216492644741851049587455240128723370079644804264399631946125875309456704129243699914659055793069748044368823230950703106673378510570699422000030318237448927374726107824306595174299263319416244548233984661314045362835442316334519735912299967544984941323955008843284566917931244592970909654842668295055602189235749191740680390028780434394769762899692107425749708367021690729370715915014865642122219862745711648594499464026994886058318727625868690565952544329928690605332396933414314664714461788275054710264433917865392813926134666299138665709496091858306474008479482965914723237780375984892143377589449397628162696145181129434320399596215101987218003305394214154580255163344931622649466150883086858549430496399970482408383183961156197759612152490475274581383008537855042367266594979304410161996558208809422388952257375942950710556696215609247849946405117755538822686420896525312830744684583945999787148684040659370491396041956909563426320515233949583353497355236541682290847090878969842263013819091869270983417224780193352780080820989901359399885297021028204533520029807733646638290091844341174536210139332962305075512667813843380879297201048980628909131020568839490239953001441106344480534056825149340815952005878102836941324778562421002371696427750308132302299276002317495734423174668707480162125171665897828036096319368932197602639193490490152050349833073042053256400648960885842930230467070255839795593606156144035640460056292035528327897414115976253816011050053188093632056532218710003649552561442024359807283133164561654489285711794816952495616482384477630359061638731872331443593920047479280660413307957422586671823218395435334087882115043235421711429550957391761208326788245339541569038272127044678646131061411170034157042449876389449909793828528355216878554765442517700878249224068298558899593418753374091139562166785252304217741121054770293878682106306506241813148373859044315687355953925477213310729140340816791033266579725305090643547994085941271284744588180509433018755184873091067801113236535341926966658326135289466367262621000800647062658819792786121803473851518904619392407151063172997642029926487592195149301448037369227958307031716221252707711475686184969315519507638753898150048083510266575427908834314134784062788314292783497234785713593314200456657385278924799253607879098479223728868264177333288377368669311316715181684428303960144169984729530399827901790701589629641979688587721056829402803111252324287938325211491643224127892808784158611227258927115571527792490972908680514452683491378137095107459924236503472635583388579867392796633639294184135688966300160291754047843661089830518493330489645062008019017246702090158866497875951873835736383980292586989562047525257245211249212663107585181405181155688985682892393508199440532705652662168547248297483805328092006798030197574686159064353780390139652602910749407110501559415638597639094123644205324058724733026295421632795357282341708156111318697535325518772644546418783427149816473025060283929599903433310404232677855094211309245753323046292846182110299678662579698590038029857678390127542944977842899991951156168809883660279924095715205439529308354886016677412313398056023439586990269267346552061085339798885790884859735678919962159439985737338574828060711531161301702820064543272104731623348945343191201828675235885981532893418074172401059552268811787275946268438218083022232580289620379243007907410317615312255086895183138633521557564645234619958646179189226898669308706497651836045842814952452617027910576106019138766609183473617766434298751546067954017385020322425907857527909058281551949520087077186297926166032321105168478797140322769511409262535350845145503381152546511217693563356750504300638330439053874397239701860185625492566124634192293378840259078907314726063685096201382317632549131058484898712169007837488332288838509007906774957315764189947698990228357464720776562548320490819356599976579063903236628952791186142693014878945123474283799178483228060313361978208390938104153141995373158408992801516925275706496514255394391373646112436188008977587985306520082052591179991280025073101653807198440383130725436192194774687217077068469465109718570797697891057826810144324428688487502544907810875144482698265098890893033683764087780733414999182726497444584379543323514708550107588573676203613217609778465742859740170574859791170043860033159164148761159254839604840566041819146760157832459482502684455206081135511298603096837805966946237107361631011167586608781592049951097524842131909616024770985773057506530454598775845693673494877675619047232111647033291963315541602646829094441877917149632402325989482986048568607536658521408114663479738904185398622155172166434499243050859494192552459961061373525823356600618532735903207996053759891552912002447518181984497713083298367276557639244536943099929733904814803234354044975656493456613953580262942787420141035739082600682221527325101659707798646421562609523425281540344119406256366328789790499175115066269780116788320387952521406270361320408695110342733518100078535540972529801361374499910195056576459239123365556398582694902733737524436307010280603752104645900780736512601054959312393413423775159494376153281783407748157407853770335633537898584824955700725369820595180857645478179156718631775188088086280959326984712706309010199593642017492083829914569832177387935570498476896621127654403192344975810349812920825706656163868883171740322438758042899649594900565993730374550187407736713814175154937572799169144691392785533992054034140293336565592295163539387253081580682139426273593075085091406661843513288258885553501335433405729061171957788638845890399459448897490000872558712314443299068890663165785725297800654010772517688054538264893816229388061166642100471379452033484759690462347901948463690350272796970255735100674719672846647453485976869731307720978007907542162482630274557503984453160803976421393181804782043765928565635775899472199608817536321336478400932929639160326144548659950068830584111014541156130345383041230135810347903226171596521377063595751768681951483185345971040252713673125421055153045221701228788014165684582709613979877807792292048624189857752525991149104674580798334415980988392628366205696170402897360518922560507448468636385487525358725320312150000575486611909471865331266452790480284825232548360641923066434441434644014967266432459567617118771237479165785119009882456371033630266801233732031896766694320619466609149098312816420675550015004962999840158697968602590265375251876013469350965916712866027676994617813059548838524647309725354452007816993839104134388584373233136682678585103914785320046744591459945659008936564830990745233042575112484445758115871370897959126013906016267042836256971008165519204543723682383592466663693895195892740039465480540407255671384280497876804548044395045661042825497230815577638152237364743596810867338019065814725423736724763957430368494430828653038311283924208938587411284213298504578144790390555863124187051345541109804210106354991396834187312080522240935614343573595322447288325605458410493179776403491055056528435860991203566804633908350291842286700831606475588684098889476175390235503824608398574375034572283978426325579239626391426743915258891930764772166563235242959976954479099692104654878450579977587263617178280450773266869125199410303747026861364935033862983793908634061121335240504195706015612025703350206800880787251128083689443584021055557572454900379182265633796924987888671461117813922746338021602318900529677121739553556606052976685399583074176742743838014451379497085150384828257557486379691312572337531949828089756343047105429128168913869050144439679391043029000744562223810097934587211776856177116024654237296406287219693474544128651446520650212147090244691467893425204540432397116547230504930734566457301468740463935627459137327135878647319372955710370964595740686272412187583664804552808355176651966816162866689178471157229846222848908285385522633170105466869161630053012739598704293188584782605874094364565449541343906107870398781200742060471917357344887182286095703417869766696600356897131797164635881266896156110005957362372201378237303699303616673530710927994981385857984587330519310088016133837395679748578884744146614225014323025705516360957053362788466578971750508047941769962723040921516077943879128345924749067583623395427467516430031005211421602138784440089817553650668025210502779392415532330277916591735297781089816217028625168034060871989874338163091105945180278030163826125739197855697335974921553888451864396796403171280067120899830796008789798983532791276658096061039283439034599805687619328916191668546291629596345154977985202841360358262662741095508673786807919230444128890115911608894364993467803421222070100783764391535513520605507819623101412786612581068705637738934102625465238615096597933066185776415495896945646173055838870714844550331170841497187959996867129380516463524372223571007916412493013656065628669334238580247116317474650243814829032032948302686547067274786891701697185534791230243850825615252089391845275876991885000544270146766087963953237900200791953077701977778838028285235658630672376097637390280636098357423456477594351851512903326882674311350659752346885808474355421227498658448734114849270243334456817792273236785492410063523786483711533857295075022252453455385636523019047331330417207816781876462514037650574030324904147255523423241576656371435007784389794830510759027881040221289707554432433047988824665862319161562872201535326567642005976672300973669078106701824562510939523776210293880713434428118763022212531835273762446174948834597137552718717578504415525226581121779707609027958210955540142481386303037974165508016727297454188484468191029400839281935390890695090353877833729922043434191365458869666254541444830335444827603022257382112592692072228829723520643119049483809132005236916778260648133719714639110896002624844361066232277988976555167918630963560753654420120248382411566061685705652519310918126750527462507419845602154458817211598817374493829995857971404684883778099577482494152155395814097936876844821339313469637682166640010656230247285953140982968006565805337377196670719987221361434061832978030778959796723816081681073112414452955005284842147815586460836518647982767989451048649128342141767404729150164432349379922725843927567904279083434168746504414871539341770978139716337303318216792885329855883945214572883465794993007213320723729139893895647166890540861435244422029330086461914873024693164717960826570637274611537669289651667646099451467820010527075394121397730856773132682235109627932585728754090377229968569896567255912480494936028736539773140528517327909693764516958610958906697243163385455473938604287480466633655220772858757998692609013957009439986348729760649614538174542103372152830923046162319215456313308631177751494410997895919534821521105123963320206314771053412926415263341596234778480137751152415091971144140634799533911042435669499208321602117802347081603615452344744353187426845527037857897121756986395110501165479307541908173737105779871931632025774603348986141421971614797647565430739478722550201330409326335309870561711031925588334205606548423416321803903334984048246706039970582340869292378581052722460762852214258655886845297195426691614684426716754499029008231570332047802283923678279205871767370976769477731636519386909093096088109010508574185629128989689590378452666884548519532471346622936771294541564295521213876208711213504901778864288378208231101895075789713249856053566987127496567450428052569576460683563040684993331663674532638916978866172827438272974517433436421451995830917795021846968742131581303464793969762013547745900743467326805596266946525724173474023789486288670905886144552732800296122060456724833311992039113900276902711784055493911939408691470896606894473791924840571008352854353332549059138828416729968659421979711339367226261636566546605836951318437955547826424791135369471365365705429403241939931176328683969920777675251700307202998546119801061058912123809698040343854543336821674439721063370802660241883652926753911669292027013098930880236999444007258916038715710299546563343945592960308561214877796371309366695535989274738052380528932401702239627122809678148741145058027775639874035012873484935583391729439272815018611090978776396285922846940482176916093560194459747989048259961314120889159869981001312459406366702698404708265842477542868834612759125920683504769326711644710604621976584957497088968761780298515655920516513331064365221594398381500637283082494504560575552795925642261728637261013184544084787353713826591165089172027179862603151203855931419123033758342140703535406650789584333141447533853668688601351962408802870835031839350082118381662142090062404426052262715225905913376547166272195900874110060468267686213963936690297727870484796551210578841017362415124810953730066798766608112047828055453278056200832103662454520073400647798478235017680030881168529097230096192889286480612983079322393790059046608081404977442959766551295521984540651983494978868801321458077167970597499960976685929507809290684956054075228152701595309694282390219388953738707236151914331341580820051318605633686804604262225346962636249038535794481282223835566428135546934801347928730829041716298086693728743941857578670137966969120423370215808953221218622518530034840970938693537969118047279244389309090205220933071530985575935793689012079897876839327328301189838923833775628449558616868044736447212679683455834188235672369256736905292739323340471471134736605921185906806260819111971807652743071640643987508840556408662606066391907676342621953361008540655971684119908131278145494221084723822571727502898401416229249950913078102372705880842550224847592429142420979318919882454658068527929721257631433778889860244894143201787934543705444953840710973259656246074474552775268367445045290732119241144983118043059732428321599867948698339450994771787028291576687496823593362684664595249034496303407564977675042748870840441836385686686794699913133757740150828405235220114977700619747879270806610237718441639584153841697204278862244935926391355328831163339021345236023783430140735609511755536033655247176239928328287528677539265394780689409283968212029007216284712807195327686188714899593532376745761643150975023648140049226289776619007964840952511248603442940040551105083550849142462706239621249678058447354484893543750044237807905784314844012541978624833424219949996434814386402688412317404531119016797539951103298017617145654818734399603528528480455643353327882117956987132956611254298216691733487532161587749489158754472854645162831568382819384823353887870929713311888847237499140748330207017744593927684629103851349014734369082669113359696171219724270007573606753239575640857443764229264276929403768065804406692624761378711656592164530991190021408570706169654333416690295864444581059910666272691813190894468136974169581063263308141055949746390053130537686542032001601945664531190903477564394479499217367353634793797116219453474010792136036042543930979136206014639761234919396405467113820377414446918852150839574209012376409424110924260451561734036603466047460155494774136867817500659521208372967895094248886907590598399685713364753243049258614885496990847288414429689874007240550288577962161617209192213241854545510502651807563210054905747812760965386614329500283828032642657343015587915832427120999222815329620497208318364099060353072437404687168867183726782309943148859355542918157280837212150613059065312714772727286123597698847990846027610568217770253126840195931931296354510519335576311237923949810362008783635538860561732084532252627060173916622975896764082353039035270498644456683981962136037673958115512049294850342766138532590963382735561886655080032426083077254145349378514775316609042528686454982364029932326557341743339648934267142627324523492291674735022515147447335782590670196337870722647110059676440569633382370960498376547313358076499278086440246313680822477807049354297540988589846812662467618150747698382053486387181725556581039567522052933109450590123577024121121748506385382486032557545593821430853166420551635734757984371829200640773329747990444049748172023046020214208289270647217991571299787281176043173042005329274039770095602871104097328951614176610658130476781589537794578631208114020245246549537430425666485780270172576183813725366608816449973527204856247811837448913194314655883641262236123658213373991000525390794727178610221614434642700309553885579079424943007659622095406360966421006833050648236330147122909729699140995683923643259926233762022026537449205232243451586304483379417640979833698312923503900003195631699446542609190495268698317186034166354798009536624272349239590075900323938222104498267808351228676720712692410490706382526491026084744044078213299487272424430334928939695249528912793889028895262466053744627719836953167078373793398567595831813443595856666756114648827587560864179761492267443719496454339934995671028788924497466659108741905431361394215880184914140899963926955828546685655036316563377232624874903721648152322060470242512331060914821546215691326857598941117947184043523269696961549286284139677035132945920486892942846340884417125310451225430543135473296197694024707389440997596913367760249139547123912175069473797084489110439416589149290661044046096118131385632276187604027479036241215107848386210675181411283894569633686742428070612492484802563240004818909296408884946772675728215558084260891875184164962512730315063633529906951734432199046224242852621569261171017791090432550500315140809115744758282269581891567187208641777796267138405849559377643811770021113707988937365609612751960767684084403131034802644066606568153484092364440613357504202308966524727629618422556797052081445134979304102528785819753300016215098557314038854901322331064680762548530461856556887773991792702777838399854845395921240156474058747301583210468726207899481505446119380339574646241608653698209393110648282748523873377039878707141154651335529512622643357370573477622069600924467878722555620419641118880242231974005271759567499369678486372529009705511000778810531030779480515347163598002547141252514958953202780949961417018268505121901653757476070626202713015669793307694586365216538113438553387164596124411655985268642414804215292787099203738893861957538405459498349821935019889360464027997800858810768432883357244203103281564071305528367456159188967891995420710832440828297942975029114198117528758944131808563333130412095758165869349483392317381967145499079141823832063021739527141292432339391811657698177799964500026240513169365511420224873038015983122350354600649391394102372279304366269282416873151599653518173728047230660954512860614918658340299643586108142090884266405651680171139410174652388295949560878127560405327372395783925877384060936454589246412822566747572275053118591531129345964158703174248557721211300921776012373412183249153043533449660359039619654541529201845797966210838726240738057091418980914993230882879581849282835882954784061500676650979412418096169945164253424639247264378571999688925938559106734798079384337780823909503521944203764128114765589149069768843309205710438766251814267966100757570875690839110731145168467362444476651178489337920835611656332335973231919483158138940819444714494277226757036324324142011305970382895605680761443837571728276508135113814952126052309780116145454765759350020725412027268158239369505593825023733421253100748212172055940618437344527563611906248771449369407183043964335491886243771447367395336534062857767845244998352858621657016260449283629705093370775854245854162445004490611019493828798984031655500551688781724145496510042127835424882422965548694257545098769834227575868758306440488172141442983504377616732702536592316517920283322203610581174530625995455504906929769822417092005283445781593269076085415955498204790603275158939396699952519934755408135509976978638229753740150536208233227515105796031290682191385105300472296822831360361967991818066376860626554378401618440552001212616154814249089316981221265414159111566275416494753240862550272423215694274567511694529924452837038321315254193655128330021732664406133522130923257052171286899610087359363353173284021128387004173767629717143534992516182730238837105479460249678146734215270397467282643497508092117956651487740883049511975909807231260693334329271596027807668554357405358642203388573496465038224811922817563224699515580804088015305080856379752811820535892213500349322769689784395052426179421583699379940762450908809428937476261082253943698575562852949258587393345627856805750827554282720718047991962796189232997547729798083514264414358175217045336811491345689850982488687973046492951237471069867145746224313173131991598490586330625456713739581418733606424770553220470991453870694090495635884777083314929233964345015989199167918030504740014355285944436667116161724935924445895893827350393061141027514294092941608333626089268027250894549001818665145106199746292707884146715222817149989969625278661009177617921012868492715845007243170874926201876489458974021414219146134498096604745405462277132257670768397344246919267192039656098241025753789471458772583310002812382699055738128012863273162061246108027997938764331078629232391850468231730342367089079039383784527570727526125421414154454119120007134208938472084640785151644248592136256891116426469456397870226719982218972145759612244558494080776586572673842961045109064425227645236289561045145763664717777208488021818883864471402391067381356393470600889330367763796037270851348308647529002709854889240010836149309719189629665402588646392625975204456568977590952792706391854629440423622178064124400770745164476701150526454065293463458868358623798936883339213267357128879879366142753845186645011697967275882996410421691744142928572391489287555418244131898670507164989804740424674960927979479623251188637642827431881727834092108776334792399442232342314242357507589486067904254898316038491638376149748057231046343457686406898606006713657688338218232709897629478622148074784238928800358580957129073423674511528297928101257410376163848053474897793805938859949639842002965024064537991456928106450201194246262725113715974388011205189458536537567261782416617355566012767902258206832683016030583055895280286629610912834879628577330033366631386950063727834314913068125491218484244060829314844397943684225721568498936169754466396365476096373889302395120205526558691379117631665268585621572412935006673377878908571827544247689798685296812863628139446951658883838044835793416962367941895186162311927443802298910301839222588729959909764000987927123240401684813482218012311828410540143891833429688848725334950917818175974980266290084439018125005491431631566386312587307569712498336832223056848364303683361801644105372041393384633920332769390335339360307118530109908740609062867425147456530283658266103080282974781532768063565584826055091744015580398695868574767939103712469959350078262282098449905821870226946482706508182931307396511726135793210941435321177271885434453903040558807541672241820768037736714012754095824050122114133579111030362896410174790917718623487052255534272495316845500921627655024538506829890422153452473185589109455211286998350205832952889015879106901432277501231482775595432953480581252099672153958638624706875150232123451127744335000888833638215216871003079792572292603042529847742721268543440421128542749104148976536383443007218528836451649630653553710839190447715980321386751149014099094847002402931004456381903071139190014427539440121182886054129187986387221447431742658530859123163208913083628889025771020717036310288681380191649613387930993744800167024797602336256757789385172085234945461289397899400985727151184566818710061121243337585810218140876808684088156169098564473478277201466486157539824718066026295073790926742526574524375085362449592542095107837962510242381496591484096055080790282551931273085783062617653169881952899516363323356345570526623234041777285016859157900848996885292464784874579234802719116629940489701924321234595778979333028293804355206194990430786242782212730582287776878765235475849314683841760375608572391141060865413332660241004655774798713999196583485737011349880023848584648519646701430200573387567114818865211341209153073806513401370568494559276722490917900529208158635839123959472970793175842950244293985210150741102699733942016099384228145084365766060783642261508215819417335827893934690275463926327156878236597394268298088712684228295122008140110846276057665870224386794351352062989900443107284342623845152164757647090392887646401797263169755853907117262253145728465660463140081782290369161466969134591822707224662883302665263814369048591400550084672556269350728589893988900957110962188787793027567899747341612944050711756955026592834238462997858566400266456660423274518073407503054085415888140024640564158726523383772434300388408825826828899897381568771186297507315641527606038355922225938445652617105617327768746019524322012729643083138209610138344319853810262921594239129116399973010157329513730403842037391110460247160175517962819243045485753388769729793543577459422908994638032141486848187909622419149674818137527888895472097279415066133515633993120419255089655755113533604592347844054874379057008462467554146255810238323354359311129265282315240445787538717209390615367865946098680988437795347761921384877352232611994297354733214290610974961745260887029985775781342651163539575940274014413457877795957654067207013189541355490168871926817262572040412710022912101356021340622708014991610336987798753082373460388124886127673375584996028434653604672088503414454758906137515190293604296177420906350173453306479857242551611907169729729363219259451784009361434606835949577033606185722118464644468698807752426195412246877573064885433901309450687707878407876077724065149906985148186937342857996175483072486541468861286011871457462963792718500899989015019858908518858047336685224225676969158342828822497782032490130972954988833110545178857210520254318244391822915945067660037638308218253697763815354969680299148883372156083903029873909169733816424917304147256886061909143852958374714986813931425448675051838837790567212190904761984831163323721914290664898547397111881566518284395674060556446587034169992311931077532989444865671439105079312805139377065422857422994645812486920958194429239153318879522337486206517766039429869900179452840108855211358877925623429648649355206474798756503428977085103774701886907295463866619426465415559264851572205796233763795198867018948785594539943172960444479322001735883419645074327089921222225391489234562096906572128027526905952026313735656652776479793332740704683025530913681850978384992806569790708690631008722240931873581424790423121760018647144181580215193702767157901914034852868251526294933568249831358011887489338739999110183257795251450143722350515986468068999637427929152732640556769079827901423324456116335647309436683314852412281890167581822075073840963040553547542540448596745718885761255649198424731812763704349306973049614318493288354477111508572341777319704712184511209706116308273091115309019741817233227042847354233039276929882895562003977923305440424049195172533723709321566503139973421343560013970543334919717586260781397190229029827717230624494512387029034940522355399475264665422546508833183302247533423042508034302702075865287130478778931402217672859838623059989969996408352262496856168695380485640203054993591150273056079046660462988557359651402634256858325656656870929053977082289481525746671870455770742523201567267438833994942007216066517798520500145317215386905638661337351393538757336404900622493242972262801208548379185159553493967935968376148225878453922400771660385667354585767454764048197145039487880561793679909686369091325281061787518446006186463356703798630125733455277348386400185300442432893674022042631975968382213025479411237077205004573684833490289117432125043803807046931955249494334305661427480037327488856741414670473564019513142606044463935444931193295770587276470504627058115995964695414575919506579839189656658141237512111138959818701025649174955707446601247479894807153010562304254883609004726004417655539235292195311839388635694676376179770665059662860654159964454083583493089793060252483613823542519941134196913895132703792207097566192382821729329931540893864198247366987237401361485543409997543570564151526619085759368163970737894959910479263567181859280215779312230582843161661106552621408241697260086139094986123408020583390048882946059263268663767799169205802200490928291803782476560192183693222521415890707120718682048039377725422790418473761131590564022731230179938648605063537782215071579310061808643661168068524898159678843054745419567579469880048583390143882451205933296669453467846472500991849553369613810879295503313218163633643815047075912299711704266370320129019143197431476777593983414252404033857539983039193727730682915950836200729770158841259223297245393029447440827540046511016185769075347993952822345484853224678681785717123738091930012118988445306304561940919844056714832310720247953138071411935382324164482781036230980570893743762371471492254068358192817009851446067233833002260537487562408298373222731813406556356373303197499874720645233526982776343525953415942972838944708327867836673674293227778971723748987791291327324241072905625615293474389772563381907473797026776501693287279578844262498245952556292930019649055603737816822561691012617356211155287083872239526189403448759917078256090350376441673271910635672768888824205485435115240452600999306353823190074287057475305946913573936952464223458527916309732181896961087243630423163699669205069302762745157663903868137300416812908948916592569416177671058830175506072954814823701812734213645261471188284124551098944012703387100960151026894610202263031037024767347541987563490113055991425552603833040423460018065481911585774031908951405736700668978475619439541338220604448627996899999120265110544607401094526724912685217031810891073957011873863617987303220092111795665257560003291036233452529753659264099202405351306426585888837620871478703275228922912006420115793911655316839052250636125336902692832818787676874511163795113853985655180160526548674061098333524923961329743648122426437983123383981966479939413336117019688708279216561371099811605017806047603794781071561114897495871537904775856813761100910374162286949424857155747056591278588195421012227947992850732066853261255215453834706928697581685400694113457704373083821277094033616096897749563245278836704249915190821468453026091984555891605417509216547925730809011537880082708762113604687609193163140368868308885638919952536073495173886135042158574733720219448231968552026185558419881208659295066570559129142568432926288506877312129934429777503101164795949227557220661762624767377292339602215799929070579283665771499127878070798475403204914021004688608353516406026115897472115496255292175768445501741047322740936946552686155225822427189564038242071215397935761602213480415643501223393828696471262748933511566053463560384620818870039971391099739231688815879561062404097740800733663083928875256709127861013632094044914987844453263614435701502019455185869989051395209444368178926969561984009401535037640318539132608029091728253438598575747375246871107588782796620630349796444968722201921151840106072383364211957783694691756408527871350241315380523098845344783431966939149450498420534553367138998755479002978425189258612354891626479595371830019378968903650024875177034953481470717239550122695733440909427593662972657712327598536514764413199260013318287914903920024673772230746517175499882989106023196791184573598635569412093879043752519369699177063377447632162648938891157735174496014156880613597696900745167575581481371923070425368618165475438203214180624932806757347733076487932918826020406736514521369839518698716998533681553327618826163942096483561972435669623373534467604417789116037353303573014813504623757928765844667735933847966269395793243046025273793315293620863187663888654899877712313803656291058035845065248159235399838416281255279794554270019774623965637866610616601338920947704017513021154395312610567351393269262877631801229004448103905804940467429097924136111014397337971078733860153600912215004443279577119503765482706371416081064361805567434494510010480666510322717245007334400208055877513419825656318954693404222970854192791751877193621827493465050288162069403183056068492032038411530266377367094837736476071540079699645001325680580675757450105700378346867756289395236714355481271675741691715003865915228339334644828582671265834531250702516584258653582587069985441820455921733452227461361220776445730956588603894114413028436872666384071282428986189974016468828338361620694634429422470726717065014178238790764198679219995701896975155805026936563120891090263518166589456172503257057507043579486192361640365287700790109431179995455486374841663343955095194218485111910862701281484822447048245970935337019609646819829453127829727962736399632635344090802201067950895631997123646310326075191953878693073743023564857902915266201503476844851641238146328573065117328452081626734266350050268482440976076292058289077126210363019212797924112462791297089520113001596021361046933249431228518823059597270421077096222333780116848967773159900274633424661706113959325112128912583019102192064168213673681451245241403519786554938491926814305499801462904852141360719246637907180952840548121911748523731954168319507961578161031512602447361856822781454945129581469243628792091447893914947125969909052829699192840654038061398967913827204525711541399180992514732067459159160547644001966590237204862539560715949573241960228764869152471525771324924221168132003655753306210358064872552797277108195309584476252190719253619302210365552311213331523774240844702759100434195640187202022433199950397320430698398434913155675747327075147436208439952271829689554121380067257290035765664912456510925927459119339842490165664105328887263661041376697055820776362438149578441831852072567495819994878435170734418312822598323825017711780360534335358882003855206500902676647918530787074457626513726759337718793810992373390447781406061141849157922644454252348093542364395280571343698142631948531013219181999881269357177991701116106403276116361793611820234954913951882848332582087852665349080674853860062365691182668915251192858394322024981658420989474688948800074084445105571865032127847565029947378161670094544558089852192477585446897143011491827284290748055012035677441727119285956593966031681537784454236119014293438744592697720910359517102503973463079423152882451552510274276285340091043104281710454002415406109640567064065237556912897410779557376207371249463529889260835591850454292492894130693098859852835143042636741217308181749675318997653429491604284490618091278554445794240045069877778209257697016247959765027466394044235830766654389106429209109350675556284674078165151804278888131731689166186121026437242780981030370719939159130692236755915008015078785660934982265283025677865982475762218655480520397590250539541612810661670086888699701160690226678611785020983609079708722308091446772934726598103625525633720047951294744532385177368471066474745881490275524045384395010613857908553076720084706518815877012867243575057395197215767440213337020238262224603327487238338083108043522233811280379700540836688987437356011706579467098773051467596366513255015544345554434194259572121385164190057010003065924176056846155345913368680950721220443783537383613108024631834873884595683445135912759508191644416602420308339760239052227042123400879675846787997511664335590831424838450161519333120347191112656707252569091589421872966119560472895396568130540553204627746352828295606888356934878299523404663498712385868933814107491915727696621496979907335633641481923273808699152783942227600174435922047506373591960926281672564581251317651219304180437087952525838164590403189036199474860217390748320933867392135445878257116181140684071418982129744445139081131819946756523717282357471478048276616163496600824650436083083094803985177658901731830006302295514810614475688255793607844222290817475854981418751540057018882752902458506986783267450494050524897775451210211975903103763019082171789120969134959539723735248959876603430288411949792088488215383845621435587618810546287792114774462096048653995698578987377643625331578807645417892924442264036475249059997761218957748570053044403111687220216821661548177604165306326386604354983575960877627445937965728866726686548236802504160990635252911722763392581724818411110094816107825940387361425441846182757454588877815025959830180179019579850766843486917675110625934086740205444701284183599462371907714188536758495805272123977169100773478307795947987546486666402854632221430913155211480832262630981511998572690494698567693704377043375826818730399975844692197051500868746131999176986728306116434341889595348610041614608651733723798481426073898557999727203256044460775156440888267408275116288894991468866795789324661297866307864963561440082367516300841517387704814777266223114071231751707313504420391552746645783336273419097232664114635521220834040883218739514208022568211419806120851435655171164319569770310972094419044708175056765541016942617828196168335477743889930119444052814886477845866031277259100999746310675217954119755302669011693317018129665966624475174840206480871508207107914373092063617654863206976871684661149316094436760208794526703296704894763270006870857398036772564339955483555558053769291445633727080396433680454666778412434658891530148904394381919660980965146669271115002882679869646441997195526021477860972812215893512866807228088859446423712655403716357114500010238356535481367889776259022864221766205811441419935953960160233701346607715773731546281961304292554462595052405062141625933573672610397450689367492386525908965095769266986141131772671695234095110550164781269268298319300977430554998170803512796173540192369264148622922814822269814524706840124248375544118122200757496925688322196378575961872128627226720705189379891217054573422295697401495807590936624772932998744036109311571311478780261925127356697601257268439172137618490946623412426605885156393977131780789007840298950558207023079923040605411916898858563747353928459816985403057621006260810610187560188741669758125217224876826565854363006803613307151952285244081677081515617659065325471313234007988196109535100983597905802781575884870876077557240433683600683376304348422849314514501595476949264359101547598660100789711954708389136028306411498114185243109747854294321701051561829159659180666067055466586314234029971756826003212581474805832875129851698921322582968669577556269904509445438881353828607681864313979362705537696519448706443294978218950280620901202734563338724017800130570948362796726499435826924538047825065389498895667914533637634856298354857275628207611972763269762275237680739593975118851354442686091156645733025791332884759287778452342185260959855147067338563898456671565055140610017615476539899881899153929554807541980265169422256651023213795334081045020021587127940747051228053158157227876969900920549775731543154052291169857610124463267866351373353302889550209649514936254509964693918229145979479942355638387545986928562650469221543580007463899300989998179249648844865886356942271749610739701465480488014665071286042675678319302108693642023735861146385798726118648970443571130307682256999605290633305724370817397623284022295677943585265276259095152512432467612114783966006353626409888312339623156804692595614704209168831170375990398697983898754828489138730933320401424217194890891366072852450905447637793133456641737051298501704529759294341951241582772113456981361961606065446836484965316306458498326523095778375036951203809101240877780164380914491771830858713121756673778964033445707499429595850566671005062031726412899731450039086847503832530756066171231955437154594481943518326083782327121447164297453495408055841903158808533294901580059697282875354362741330085985216269111739172741611607050708269362977345542979778703001770729176897362419464205259555329773496890231358513629963732873580103068310796713545653902275339491310141486360457611766001222658515469981031915596321377268314253289184584530675731891782829744522856746864538469643069749851799212080081026048654642571978059133962013296730620007226861197653520523685909540024122362339124282640180976737958361428966358656439687735046216801933599245706731094946274949322062303604434520235313445683244207359895415840883807890690168375938105930557748136229493939594291618240158176400784567324272038479364373800840561174614199028950433981931517489835135395518983979672421624810912276286307435184530775263039717741879180947591431968890359430696886092978994724644537305545776940796044472181671621694651464003527971664778378712737277229234325597341329325974480719945797005905035123176358929754382295721267565904280574198735690225662792555237358146385564046632963224524599609997993802585814533696071853299673638680197787280956299510424318253808460211869307813861433699109036896331760249114738678034365674275081252614492232811032476033842369239260317653399680187750752914333115612166131020044321101083674459432449931437701616009464073248443858610524100847978728145902070923055908877792285060390410681875509157931250325028281451837680215193785114664752179573888152948499885205648001927171091990451904946965334941904489621370708862737308924610149220240661596962265990678944011091621461664381258496356150734534293738296805546266527831355353888478952841016447051434955090846880232765075276371741098683615498722090478179261918218728338597468876232327930360581505052752043319608675415924642962986087987692294849171751935404029383363123745894569614348651750748292295281415924835071941521781854968359244742461716381912485150337022413471193103492337231130282736192757423697432428659409897907216120596610830592153276646987039993395669814018016644068545128026039149935968303623946837413664256214051531597412518247840539835610148750665281104414714940599067534608898548743045546791663849074764048031994269890914158827095061480597375081936328532404891963053691964508151223720328825536579255799976518943596685407900266489654317035790499097730349308918974054147599908612243905692297198765130703308862812288049870836181129073657499176476761090229075081847416656637553817734756673636781790736597159377205989964121908639826164016329435322058428503209846070848620801647990568159914876484624158528136042308789979178531375198724786183684146505459213419602849999130038249580807626200689821022725154369240181581524176001831696205115355862969874742265451556421087053915969264174782651874280477305209504230119325772868366181266249377230764157614359970229474436100091953510478787640541383443155175134560941132773573818600055871266337928222828429966239439282533833448301154734377010478391544255735740067393070484421800502540168508285886823595370462312401462052730265127801050473811912490014049660215025873307037318169759448843296808658269475885448462340588808831022533175206984564856428522797537250549859069891340344459699922842150739431235863356040791158482005947075125185296459776224360429890457657437640770905778685493540706471590688818890710142808157867091634889912532625792436102952778707976436453184783119424480897158290360294513221582594549836366282281744145104627602625172834521139651722368691961033288889842394993663485942801476034217223437454602351729890296743476557494728302056379331229628352476430572907084038855606300026787760414198275207401641675889871043454112527327079348721686166629673698194939628982334475135200684089237172891615420232808994914022073538230889490690791659004314664839760819666662022272934976875358272447210917805866582069758266746989740809136105405238891176191467933443514501914926397660104325019194597381572313193218880506180252349173895082516206548047656791732190757929517970040701409259753682487037922537616341684843282512345971346748252268851007774618963079430823330827978263160239425223073137502934201506909959783909028207064463462376411392942210084888359363987068753600556871577650302995898275562050625597472832718105766474586869508148483105163346230166631246694230410350244211063510694223164621800703449757407978134899978271735808445477293304818405552754221595441842625578146243494012719947872563510186002973866655582191789664609154958392617656449786016228838491492766909701051887943230022805937570628303310374636593513097243389127759358731310937948738440143467207364109849059300120881021331130241302261671837972600700599295994789256828418120357257503372702739303551802576595099943546870691623670789433771947358178503297821975373302491278168484945683055119177042533137332276436311740761251996895218942969848392935873895105057058480220763263360492634234293195621515633695410030259975274712089075342598485835793515600568925275145419793712408715643707901609662470006648703905849063667523217437968549223022778619383145466172621947128916707071075692851534887609306550176093148544561457970778376132414597890471329158679342620122242091586411364439144797894751017936074403924217342231040209280826101105115758692187094557379674368359674352157946743228512319612821256728474456636285276627606496060918631074222257428154918875077585523221167622530487077574035899537580538102568224107004744117994518790891149006973346846918092736152487773221924143747501132104410107545426489065523303915379651956686635853388171276164756958969885822080273840718632106517005991980343996247115200438005094064876831106793559462588859797027502143973997744344273070429664397496059586181712303295999938506860469873069870334239198847471333236008263131175729872297932849154247441899948076685303657416759329092545855789444709516408244206391247043959129934319215140379641874593398952078808586546534572362376572982160592663146392215589979191748735996121801493351279495068468650107600785782027755866558856121145888936703253087236021431479367930255945498505190767731931123145708126135425504025021839996878331551047442614494413858270409561786483601817507784641506384130748069233061944798716394844836137451348370066001062768509903456386901306050885278377631900845173750453396321355093686759906451707427980741603904946690270294201439817967758370249930376830117094361579350788582703165913528116395151180159949676148637190431533389692847451935142622134094762606285980574229743619472611477520836871699044702464728073731142217947169411799954427891722693764332267473595679210504355298704269828579646593921688313462187900622396791837043719984659737186282159461403591953822043967029081740663062871170037495007472792027343122368731424136498725494370680136461265760814115764182922065914924423177449656393672733479857131832068383304905623466589758908682284611517997550689781442220563094169394151189512372701627901892268358414149297048052444985862068477324052836543238785685477437578979048590582875884498114150803785057790337856008823879981610020803125655854332738087016405386279390850257624856653659582128466105226026038664065576496769144209842436784377036693811877174769247847012564658339842209946305183111347355722406584886528730102073218836515121938266686327802612934098642867972422007196103393378943100600340471840081384033830789409282112914237210172931781670019735969984655208165658966436523434415591554302023871008529260519896751308770898731153367008872359082625180663416089753237101185597717967612339797913814821581212137142835375870998363245327252694035111805927642762265881918534722457046638698079360228410657118398511495708213985761187421908093689809822256396744405927271635422131699693224203043436956866894671825644701781389613497522526673944072300486260478803859592356046695892638123497123544340289383033201306101304654786971201617201148637489362975675472666765568281153469641744918747539001558416639174319820175182771016262654995280387015006292826663594819081261548301166861904138806183689222343277071345976102599937419605076683440793383552308053639386861646540834926670768491988994509343742342232456034670183880088455562854264606858030364555483254780990049716185511359401122435363999301409910527870129418737825411902415664478584398633595772060135776992024957048964560253869839034021211802720640545082835086894396347508543125715916461767157735827363407286284096203812723527554987014302208178009449119466948122304915712139273900616083315808734456807633165967885128768575212623001912657679802071319093470238901058974925903305680371759898385058686946252010274334445376802814137379398832618765020646370850074878262541600450921242116217641133518109872910912492270954904237853273944701753896003435726822771493656957358795566268797164553547939320065670691074388905249576538118425692459975672693932261120911756365144514050152101227574892302069987038152697558541277078682888384896064342553746636810588807886909714367149178127367558070863355192404076037388481466058060723684588279261965655248016197504491599014215040959536370978782406242541077339572371281527478505620979947452447442215816243150006805314201916052734840419005083134487219720491292882862589989106446663759249730572928055616588355587346839023000918063319305095088763167277079204894452188174809908718629985434088413618254198098026779448423783893154261291663111731613712407774940771225197796253993911225072090158119036865998927988544772975750443348093902416083862328419564699677080489424220161245152270866318503316554671647399938540166369209109463415015673246866813592862369966752893287169765449689767757484073502241752642188352596304743190478683089190027826511631396759381041879482884207295678926979581781549691667343044092397513338010430386290441468708296211516237395310110574721610507988054916328720626182379693602087257751225571528224815026071292665186306550943426022544828740849807642181116495368835522593184596843325699272786765174856614632733172005099168420346522490020079260453222046491402720475784532581416456596281816729105178777063852001309122908884634675575034299540739860804631953907618446597758052550232652795068133542635959638260341656127323552408432592783395364642976272283984598867315366213555116761733883799508626778865493188679366285164769734959293829967400279235498571485310180862356830675215247355777812768421202854942382537723686637617790771333342979785470009559566756652548057082067299080014515248145719039325515994741672277558805068278722407458876958327951033597547604081587783601857583981750988190895969209447473101676749910833145297192559797404296029526723797392990475488614190278998073166829265461590190653018951363689576265610623228552675503905971735195361796421092347348020132288426841495088606718975490828098517929068781140744998277758001057590478820437274626213864023933035135737243766228147990655752886341109583882482439362926917435310694223300096029856792805248731967891710092364011323524726089776823899887930588873702323490193720658572646921064240099171844944880190279783131061136227989217695430260796084127550447215978712939030170139697320442441402187527011682658126739150270976512050354947796092119771539252324099609774687793863455688189518886836992887322947876210169902670753153562950575783751040349144250789373247505274399374264306364121656900841324530841479728248875595231454199545946900361695457258441375396976717973974994829351215463977962419883047969311908797675160378332503588689678895713680824713803648138634113627974035895812970223496884562276156400746213171962451645132404291530136720572431243932732059606636875913904160949402492291458430938854704700368718669665548300707480256067724382342862986670978875837044014737919444282325985100616921849938927343969939993282098513756224839972342474490775939838255064905913659228737588786412795220043028977268122082608053453274251014852292563515247363726081740969917085978592093404840936818399149553007773501264321322784305190219858976839650170018575600259060227478115912477982037167685965973724250357925111631244524644168035790788693929438664434408552759479270067349198545721147354808094938731292832612091975528989919997207119940832515158354067243518890036671103000817839225344824755339583409193548401904243180238027876651109727838591548940779676733350506786389217627155656285323938045033986703001478495087537278471154595194338163994201109360178031038115890284569717909398839495610518879632584036869488115958851108619399183368101838533803565017364889216559177090162306811721929880716608099240750765478725149976214100266092765491476341492426747223719017451767027334085054248860522170507389813894985196146946865940398455785062958013829722122343991224187691247631422817564708673732471667214437173556788850730185966357928438139731644934626107492934596477176840172892235396372518236063253627382542460296378885509088615813762157243950636460197864747367756722714610107344056881068075300063527869641835825447089044584561284170145237472651051794109517783303577020632708087353393888507063843040399829283414367521502608012544573319390313667850405936886442937550582002577616369649905848016585185605121086679081017116316990638226617300831177223943464766175956012343224331166463073810332762143056140520566812156807525165452994994438108126255120106575877584407976538719686694513440777645201990043398180932349391755937204518072792443962727267933417788942925691891021445035993813914940080123233681578284577532480239414111439144078659514347235671566847867600518803500527220066613784990001472628438741285684376938535226173544955584506369458331922252875290614330832838130964456572939714799159126953730971922036711356507919788990331194406186818884005052198633191944473902874900550676333574423131633835257037830901520652478435296730888545479440079844156990125218227693654604797223490565023411430278579553016154524301154127275322792074921273290531076562047068731872788754092883865708539984248829170946289242149357814951703269035095317819498907209342346246879545487832979739204475560234259338970611852221121643584724236446039530672031220737776331891031649386284477229604563090135115093378288147006264168304199051377145207733665290495221040095734841937018683229832395876117154105310159101085915231415053742355709649417617838541179736983061691442809013390294486344929588151441677616311230371947454334644137239892350209706380844739517769642275957421618987712169556699356210807698883005183262894409099905512090078449936338654466660027775410229816522958141271008907666444899350497151147535573640119712578544789840760297604607212732021320861959605513363374708302981975086856369508027359584078930967610016861949069728844989765598805196262235629383853555675477016727197214024208201640161571430361177760153318946340269808472644376615511066639035354165957915033472214259881000182474070056168848953421155013638106121540519556863369723587754152080832677313271630403812271236132656255012604584027345087879573877137391692183799379991101083643878501896200751329233201723011399612204198006967630466924794014813960503715216710504246726698683826971505215126210357137137653719476676463655582096423427896338571328965940768075894917485971558736000826064130869920951043373538412861750955839240364236118317090702566712561224373810511269701602796223290558084204372773818854099237806776037846185920577901305309284530462607305927955580222018088962191903521159187704536117370128540373137220391218416530568325152166244929146536183904137135994356297699669178906525323077886207411499650754210372267711076697971581124713787907875349192699848851603477950636921411987032752902318784523024591323375374784577195488220479252143967595795480598512827030224087877958404619332042794728295729188456147932081941688136611756159776503630177821640979753448652686249556832698645466184522301217688393759165129952243472885537404615173841470878683679705039725092782710499872778133829947350078070347337577672816424584918840081375451055442700139736827130960543511770172673504220503004645923613868465290014636223870083108417468874891846830932839030807726985716782296724653571152828234217750034043554449096969366073896960767417166102508833386553308144246329403460929910695518266756186049389406535245047435146372348161958639776031577912755417343919327169705343111750407206676469325196928376306264595980909631204327598366418718076432246051305851763836703021947001976077753818960520917031266432003284610985066863886973424249785384996869486665353382621265726426140318836942995492914751440775967645672669909987064154127705464653591532172451618169501053177563182364107823714799945530430559616773776363631072907993300467039111863510620001370863102381329682538064437845041586818536184362323521856448661524214027318839411663576151499670572024322501915261558250144175845136618544959176871283469925768600458026144692131258475769125004009573461884546857346286202706084603761338417209144916373037962711381732377325851453355644131812105584004769151482107950005546480380991032011904782410056658515911821353255398939065679747705684772656326288156971747839109717954369956924714643143713454118028242295895570348057000648809872232839785198524724397896637545294362303555562876120697007959457367469658162271196944436401106833237605107578424691547377963867678158107440793406424556916614946677361514880329452123725852255737457204275579316904631331256357666009437446354329563752211859495350348727172861178111801050377782543896647781901163820658945894111943106888944246231733705281707745987744334013972614877831788231893668319023117659740455170229574292499010591266550799946467085818461679926826402481176021754587784390761714187455791627032498903836711789514593267239291538119681085671751894086404774430714008631870362989096110097165557932695074952050735161938677481778952576535399712496397106074953136878478271621877483281916225280745085350011428599596964003298562038936294952878938556853784283228832186585634856631752722233817681974693610378506184952169947343376306795485791425098599361379205670011081615653431019699443697305361509666243723866400877085277338096774453461278337269326113658881247686104549011823894885397392135039712364543845637294153356844487698029831721577010032710218240260572593870581389983964483857751305444377475692074654289446168272725018229812605658205153118742840137206235984937156790241970716551200406269858200763583543480189110291991476184539451877933008228467363208405586138281015262003278552586877385919667521731672949156279125849309936713842812173746641953608089003535853884151965383541773502003549261556659314784623422726478630795022944322947178199616519772721566805786183242099790294508328449530426791707348118730523716354983957407305076924092020182974035162626757771521035548180887734941915660495055849425809604894423792132384364683892617187962854224442053723920903842147623242336140149235045187036904600818880943107929781869768375227351315041219077939585908525058484810874207074346133416091564649173109497409058957993932029054466370480344001439912199023971126300794735934377497879537750014585310325298581672988856991605843689026563299620071824413626003988205724483492939173050601664191835175542955671771768716892557519665633008601056618205439173899013875844153071704117246861110246490995448992407195496920814771004019124879043443556750474707321672338082874915049219709326136334032935545027468811576440843322145843759637620334301025723978542408510376288405616603453242011835884569725252324909261575372163768805095159654523530993884027097894187677042017893375317646623779835865803878456023683231370324667648542507665728132276307337467741384479838305965522772045604070123141878883188022313156254045709043323124293085425473142588143647552530743239040227720032974194031459264520773942316011821618334101173922236195543866489148614455773667519233239763799805131037211709393252321053593990956344581313838324431720691346502790728816466468584738351652301921543094684091040402050725271703413191701811339051728120513753821750188909631615631316120069300402973551260812458605812764046250250437579699456563206260095796772664180014449172943894476009132167595396435388174073451316470907333707716598155989006264865126019258360632236928903834135291053147238545961420060521295891596955853554325523803062248147942313670974300447514471186995128612134041721140885413639338425817062819345784954077824404305702754513854541734666891181585902411033139271150228527953950708913671404755989530190723457395579725215592829965363184972174258217500876968359016784947123609789085670634430973931692677762441304392161582525039989178249683740500675952081581344285199553434880859024011022395812282125350064527226966371596315805090185783273751857292767583276736843341178359510463037772398305378578157730772807698214906248893626170864864232708761395384493714487198344183061482174927212903303593064769669202893518157182711870158055285832582374295864254116666143977075127069073969792598560137754841218197053141443386086922112373197627623968958772930101005319069948216941654452743832692544017151203755409282192837291222485097980666104347365188194872042409237609697021518410307046906397803140323218442968083767229584254317519090374851368314309641885620381464556325380388010199816986157825960509402279423151050273768355038956045024859714217401676212129962634501164059934016633573459138000443443069232121644948630858791728455335330696666951455117440141845613086816333019448024683554661335405406709968135473654800620538325611390082534577074750748718244979500387424852013187909882659245389349187551878719582881312162722084198770466247119352158703947523964696981742830565240536229906741141763394163942169623302868436188169519751205970386239000461841629687389680777799306925659322313453948785995284265688357919212669898522837778067797335226632131463184365898547777777421886401954022773994119019158911494949339012097665547925541846092384230409217387260901747917592671969194913087853656172066186154395554338086142149667360983656615190830617481246844086152606582513713801303842925147556784274554138210859045037650189950862978325723250977998507531094864150878283824108396947633289034467722600503482542394689345186022119924101526863857474643395239694947321249642757602740992239029972074890859420841808453321415674508493573966110678543091344927592031161109022975074521104252650049737572608013476684097493574895089430868588628397955555476622955311317207031931060451370066262537337004811984802272645769287527168343707312981817719974325928543707515253705663087764974848860833700363136573514380540924439072899053286112171029533409185733919030404310357806240199160575493531960606100597553695952284284432037271681462639280149655572392064752455428024128057344135863765100572598151592505539724009191932912531971444595355448617215011547714936230680324332778101587123909973861270870218487910826725507366536963242534306722270016974804651045466987005963658154577515936054391004594722610594845353365229448661268004448920413043782070976555933577731018671560338359079649247307232515815296286416627007323226047036342568258867383935617951915499350682594833342245570570137425469454557935642177490510894039672629117926946498150475061316759638359764564140729339230183826641706192417313215925278160005211490766577812584915169243875198501663598400115451679633325801374721482621735595969408609783352979573512282319273666121565398388855570039217547417324976981519334664656365386645590510457086425420933494916032544174662280983492595814097369765596800005249520671155871408323883196754518519304849196853269312321355087005360451543459214687627422034358521259253013730824127262357595779030874288311283956671537679069557309907137549677443201181951168585510179386395130851249975124882454590595888981506603626359262964675192410898209516846472507161107874350390366112898279407313169347280513192352161147734735816303235604701557033180929626117788271475069058353965420105140404965474820311128440926892527336859847038737985831076156829744869103466785452355306627214955945561039233245448568453684744304971065868313777938413894885260856763399365049184018648695416253828591576132480760736472933274680589590117920633208707591730876838633279352660148852533241133435866149037489387313669041121808285475451744170189552570396725288115875224835678285513182915495059639140470753463343732959897266961212788712513908421989316842520351299470487260766493692651936707250645382703677607794145275830148243069627179303693838439444697852245085835197952205995582359487569020874601257082483637606376169224336610067132546297577910101910044426693442337455445519964736389366184459106116140851728553684879716023430337257636246734484328217017780122165360760677085360129859245860548757929164067885686063357782457123960213403854095441024937998960714238756999147900963023867289805852818281486521868927181594874198428067762793254905916804592517799015141051111267647070809261549288869472152617837210545982653365761932890900943643263058040482525193571755748079829068122991619596282771854818702858676496088755219223906753922950241134384275429721409318826279670220127215345707021045818628408661416984334760131331639463023394838050385973510812858441318902243658696900249888453353545950627886813447822941850879118943709935350426323489365186552579900096534693086984977972854835929846073239417472500075744775016817282755644699754667792705532562954540023678797711373174980711314148344386661473938864235108026449988473041584823150048787089749173213183609406149216234316832904206035786783162078242110378770487343802687302133324492880123086916334802676992558098938892512800284687814523815143903452847585400139480968449741059718885493320862113717041659686033628702466818251280514747420251845791507299941601967200436682669663587062865051039221609615107347638652032559009137723271311531318599109461852022363267840628746820288435138229973616548413081463515583712079431333501894390736937768885759353938454456129850392413652412104998841238662976164947949733674402409641444158248504374817924393464875454869759780229952193344077726939025338404203374780715034449369515823677896011019781472200925687536109470322225451500034097385206790019537685761821709098291162934785811471246623318512337122228005907058120685894669368930014580042716548727878877755115456482068606716239828893146081294454824651780092035929344518451404980000302591396678067179472322818110321054882156559568877813066810231308378094590785097695915343701387391986559306226334255010378381073210334337110852042237712364279379441753545660679733058402151164904389775554524832778402218783435697992932479092888843099612040084982861440219806304530481246099453256118278499229687957378489519052926534341295143261981214471886969459073742573819538083871012147431878191285044639754607208973622531249857028487748530096138091916409850706576523156933423778223109249527678018097607746914884772172215784697080109061616095128161961597553130235938066844424456508247275550022663406358047931475326542156896485064372361884965507860352023535300875664797221695383238231174289055202213094001257780358409061153247289665782962526429448973163766656662810304941193907676387309162224260109901343459010039818189082164794784790468236565192996830179053822951191276382741586410105635041954592282498248406358044209090985331047540844104169627228338134789579924456487677730534106623816683247843422159409100160752116507445745304245676003678195420004264468423479851255525165855413332802097144146347955148503912292319432230660074943672566883297261922290615111750270463350345711678439513880865085161369344404811276444441794605855575335271523557116204372258056373857262648971536785159722497689927899792672398065489446666712160573015011860033018857509039959132213041671283712221734997474580815535531735360113598064821211963809210778318206017634467918551898351782887791846859288538839860494125698694509071932588148547722075064306900703139027091628048756616255106551432542857075204559564018954325253651870579381413687867540587862264946383987839267733748902518741714139651277373649821618610129993407718687863712121744029131523059633635304296388950085453331439081085540473036809121126915277770595965322574508653023038255484385990528695174229725290543562574036740544252341279676492251049292805029495213203399626815173030099864119656466544394457785874720684476540208843654818197109041427287488726526645868647117036984603096382550893869173435756326556681280673035034771317316798172280354873508736755343747553007060740458623762367212806863712241564821317545309895132381465409977288418833183827092315310783600883640512729235618605828432237738372382634429799781179265099265614355575838048662117923511541687057109521647953729994109110887504612739846268950074955450271845221222854784265198822818558877186599151241736944791290421532690560845372626611252862086212245542528782076130812043451366937462796580166708611739703637559768749042381678192739308522581046389897502464924029824526337126307002733798178777691531894752864593440265423157290650888410435625964543184951084257045732055297335254367382258063645609383951291346119850367179154076299257468388590762197886127416082508460328865058642095782272856241422665164542184205239075282691798940188044663078502788064406880160966957178256275088871301719769020001105727203801194014514658829787226329057988902329017900728120671862492460951282975736683306573634176164909354795362072983837043025889531215976090658179397099162361828153147763683488394729694643927455280922869788194495073065879054919144302498612790034992475644128944513446416861884320864369757250236431311669816694793233867436998171721810276020428020292898963917964253278057189007266873564770076120276828687306284602467088088083082850192892995164968120555667970239807866978731709711430188922632837070620912285678623379236934321184420840902886708858122534228155049934066039047591575554472528941540306700271330554314367787025149227998998017747895018107254000886084741683420084717656006698633832714321478884007557832546699605910875064632155186988043070611375827334537664036369114306442776457185866751743494216063300487480548912638701832552575933577460603661675775047610805341448404791422333548231762715052752969984904630821279046086904021753279929858841410826782718395058966415814060655152445798174123276235694002204780137951400642709012307393043805664404836530999985904280148197312707595118097774904417147552814965696258908504242704520069866552809371357488858979111772929821996445291424724251820007591042291514445933779329592589359915099935504965741169929703915597794653346732258304416323941307442650331357554063251480002054075077512911260593925734980204898347210015606126098369810997456070604612329827185104334254713521920544237268693546326425734143369091393716278403453723010545962774352180072165665481599548138947522859552146442779431972921209430214705806768805536023031562053211498272125316685323182089482058701925183286681105660833490896937116427859828499654453154682075739710303567434433197684025866574558621697233422186201310295866569460183275772917776633124610412356995484892215436669007669368454715103637832536829613098607472978651605012938703186363313780654003763754530634164228149576281194780683418520421473684609543032518503659530073419352739233596045891128415169084505373787183643406579957708207005631929171263449690941021779692435459380795702495883888721208951047786663820018332686362266367337056990403906832209464370487235686396977526875568148827803725493954865287502889406724735137940366258111932473826051773632596630377622688333849169253359918603067410747027871445110464531303375420774710373161116491664209999362463702565200959841155849287476119518862491397050560766737697916036182159066546589302246284099286617104986545431851716230135747995819028895746616596169167377967047996489926962062779939416115153253038326802493106793567638708437402518998457051382208982585563626601052170320032652411992157918445024974433480453437001050795950232705636780240984455014035374154795421409160068104379947413670721304651808230465142048924740240504153186515872932083355351117541069428565490241036476633328942088143702455343554853817489376830187087909895383022124366150689068795984232462077178240044965155453154727530900706559925361867178003435479347870861330295485912742349251717692504172565077592894976677008916148380541624026649413128124073599465955692722883063399738518484563750172361537374947408185340640837978595579244110456374245699656095324413219701753344073580526912868988434703416410520791074760656300836186774716262382498574635352662444730940326499529911527640178037581195494871457846208023405174104761766602991886664953004050781344364621528762927956481198567254671855495935945353045388181023573751577294181379891470817530881010461113066230754609187976298810409231218339435143798688565842870320021001605424829802433063227021997076040553302823243742220005479878830108484046445671786337283003140677383170837935050223513260609830951069757327093311498129476724591297107982500069077582617670015953129476653842614118737832679378195284986349506278990989636943208551332191942540644022674446001118931697569363275599564510982908971773253469999692270393993413648005076369505097629127154411717739055493039989090931914792139313995208238618084834886652993833011073892853546492305031746640769661319619396174678990339103586629960814368518455508648115609506759170432499565973867484502935530228194633547034511499527688253633078669896848584359133920889823990870347874260920907308755350766622386969654045064005511218877553242609106735088923074469829268418841463011811040376540975762808867484506300843289130257124978743417514852563950451605982560147963915154805303036342616007602965295154946313382376355801025243598693664912010566724737322242773111594614348187011885952431349559407608572029966221379205020827795739075039002279851477252674913316868619921978840532439337401930256280443400026132568146595258982845117118351902072225610263279204765730352347592907800444025990752599352971139115382959850867479282187365091966646041490222301913784650575306869229429782028674454776367327501040165027450741116731392230025480839537624890770848660606851577233618577141459841187896913852213846563460994175916859605520900032423669650414973689316370911203903541050340234447505646822771612439905687077050929839744025056955607620252696192585609095538831044529149294429308571168422884854031449712254005125493386584957594855835017978968867528336130044927210015133521141929153012451024883058811880959916631923196934568777232222795732656850480168781335826078282371052094368955726588863101850110309888106987053372152126957046882375197480839100503790346811760830129190699403286790278342898284864257950419866328332772485841138121121164981209203859118514339221752968946443433411176521729447445708709140868655758298951454530034101849631937573974587777701150816271914284509652216458782712404348549440825389876260511282251626261599401432687368013708714634878694538696191248595742717381015078870690273715838247553996817552119537901581655459649674660282161261442656189432226281354433548538873841811817693814642261699114563550633242378745527839637659075814720470304280342284363975728414216161038578365951213989820810492909656387068847552265569793799048446543037631955385896452647280850391009181002054943479568462062631511310535225585497186525637999450025381299625986742389566221807478968138381995425147408234209844974928763115006448462754081049582940598520004045308661868760664112334032324173972969724110446813752621278858626028367017491505876788193040348569805989100663248592933190331775735965844008886360650034267494494894812200399883576374689037864614247564835647196128766399264768490978694347552281018367218164222263011432142129122528946630327773348474753569746726697692907930581132590321062060447507607475900114708269540848580854652410191413093749009934686247210841973095506710185369718075586052690426674413815248957430273641857813085022348132915882923573792018782864425443244803915472369979011092104214054832029282841556745041475474217164542450146984420701951451921453018139601428689659821465308312345916311990715367398018996306612343768578339537855119154559222358987921348266485720951794678307940366607940951518263536445471141809292543559347268285781210157597005409058482281136054523224605561436474001766348546947520335016614222158879815735735007172991580928617771658598207833979362364858280876290336934927429140531289414253279396504663479718916363543180415139397407262034828911839981792061011650523828111107964401407732217281475159940426731268717716404148862498291317835355400406525629296549321779619412409413708768696213802368302970687182636804027432147386202462003599276726619477858629209070972681262544511166423865170447034421488323999736228776349517322286301980798761551505874108737136153274330440749667856720607185437111217895410922176763457024967956976275726914485715468497036720836213214582546289514101310244216464819476360056585013671426540769146509512837312065856157596803428478086454545876637860009087261733979802191623581702557552769675997913864123036539799232369792711837713884270390969283573530436267341896649806787601679537527022496732688974574670477450718792550098963844181001355777518569243538929946700371998430712101977928529662034916660828960732533928552409812274679717758336873709721937383092423635417030527626910013416837667743417448084400921427242668127958456596168288077861442081462548812714309940008322606140413048158764178844984323328060788170021615038197599217870103753651029585337601283288862880598379122573127239063258092066838644557333331632384897368285988662999107838844799899221697484257073452914705224298039527818343154722044011241102295237608673513535444119041267691744016617346117701658660553594824526377351913837334499471187933572357675115577665669673369954724561506954141785035093147717970606147106431551462771957116120067997936511509464525739561613854738936586280667625788820176086187128570890402714794960392350004136220929201517000014342689227785536146502232307856107128586330207151685142460145174878445072449977301804279135605393724026043283256445483539482220189751629252658798552440365030911926853480199332117954993432784938341181245903371052074573147441481077207868893933484399116154109367358255365142147643394085944802629494940748661789295685600175761121578343771571945146645788767916170474096994545852722799383348118265954511086326623525637826712371955248342364822742842501475958346426392324255144591362302752956466089848218863342621818021120075618908234992721140326769635394335511492804551651505967875709127656165605086999328676739448549052452745362407094348228016960278277447038236933012746969778206475488636704539289122470297404901899222785748813226342154076578744895258852581336928643867552493344126551984379403617037349524902477325811652175164817037767660576989388225448600773884540630759041295406948479170828041381387311473905881740589034540538892604669929565473601152391685070360743740287205365662995087698097909586986007463275335381902393283490331176209822234099239055274268444204828950738713133564793545450352251750208477859173741189170708348638246822594671801190844211333410575201922671936243226375801839211452674471343277032425162153244703938694821108823953935087387870082831546147975449154369354084489594249475649743619328194590882133113909239835969400554848381454233971298414451485977316615653059839022137252452400177328754490553748835625569295117773175802450162565746543704486158641081342943670316953548685256252650055418994855147581660437264336917215007898318291284032618577087435032649074247261484480331518000939246536520386372064132055573645626321236895655322011286779659658656480761393542077388145868485432783177758130004376161161158649930468365322689718651666826041251246503485584929041561192840192082343005435950684780575725704132174503017444518765528644188162628368809031711258937014975390025651652251018172821028435914235754839182539187015914271160664666978937107065799953175334430630118912061335826547602843827271783620951889543133429220036510984580022005584645777853397985035698340679337098766104163526413197539953572008157397438740043658758090735697614370796318707671102782703766355963352186097626751740024165444807247526646848287664259586658491024279801677631760323230433935165153464280215914539278016745673129989204650187200466002367405480326937262982476468277614634364732413684328743199138321003732784022276220132827491523019655119211872833167452109551782870656383758307839877766336691519421355943340804946919335464511236392398877230421800000544981368804517129087258015342442532047232887145149303502751664935406118360838941273007621022628119325755076609564343046650317233712847452340831826655165902282516737510025061287909055314294989114873575956088429453086965682973770679699072130572980109192638778987773520261259184842025242720335981640683701305958707967031382161277176772036987205792300186139086352274203250965404898382343529824291612043836253404289702669063310305690369708119809598942519316488432330841042463740099926838551638193118097121748786340728042865298620015126526891419047888862886042063876735939477768763693713727122839762808511284342847347339437072600436725283694050583377262339636243742539979840328283149292726439256236986965120817985249068924525379577578761783341978353200873673456356842167221015828711094231594443092044967846310673575427483917869478028560762757234936733558574799980020519590494085548950108643316675309609079902432394547293531462024003523970286433760070242206394493874469859386362586890395299441555346206858281981401288075388594368271071379833872506315820808109936303734768684965417627425850851807124224775105395401336061300784952679090365545251689874707847583853206885117561629632950111494539815947887647672888753867602867829642865053704381328172097839859428617805091283878653559247909573308510491622013194789305480355071180464403433353208700996089430601255754967656487101021100649979201126632444657734226352813085963405367475254351222641236971730931751945032374079184011925689031680409815959917598985720357089128362261643966052818760117166255013034166888481549933908947509195470540833500022158825003081870456602648333794250521469362007789872406120837663195630089146162478203931681907179511864568913733658223818685015112001549491807909365616995918946952867632405239575185028163396634946292144117335774153808748755193483423371133477457052057191008649607438872759305367193857284113361250270439773053449682450847257786301130976311726385031883968566928300299450367489466613135580373822021762584792238723736333097417808495302300730627807482754664208528661671216324585702779892741104546594623966851973760145091860473051606752754074919404769127578735620448640060718466766107235544895778652277880211520467791875772640368680123405817568610534289779121361409719996754892293841206291948565203431980045388565420247238669094620215685762372926332543289627521430769796866396249031229766504520028743534916822904121950636308982040029003192238372580523058659461571631415942842491497416162328381659639566130106372343819585537698258079874230427584054075895459435402055218941915206491050826604317250027270258706513347254312397637663276617371714013732184082550370717557750148894171399353755023303274431045302978597461768468220329502683798538679216842938327778380083880767599600768986626290877594065236829823455560936649506235141158251009962971226882199080749526890758286500259540888402914496316699034311630034469955317108295127848535616550774188560622659749228482711506678763733048744907348662764121903974250011737893406788504107119544475268121654955590207175198712515182973264466902971939622479182922740466505186391723070242228942331554148096225461960962149099880508597958579910090953403320992668639386328696934584264619262480808519545253116025400992186104807385377543358463174377126782449012684526233993953676805864826860335898256136020839057727258144389801422844878401414703139803180396888541238817562370819687035091565506085498672563157879366245931888011341683685519142662846606201528118696765876194888770157916519253881945363212953457324700194384008566906303840324253637099427624763871622702150508607953562868982071600370686101910172216129534171140458787954812939167049859228667012056628529545197086386349791286997842103969211209388044390702023361760510494252376494130627203368023549694357657372268673635879271538594933789800163414419120410417133691429158014446426168274300046291788115102950417688210072898683204644799590289889650894733874413798164947646064737552844724231353094005770578482787524736850410347257730583999934904636970274625356187505463547720359234705319920078954301561905476076839749212359824956400055065685713828111045504474232728871911002798879033988067476527715203046065207895998780984957620404766766289801487694312151686380720674445934720218904185723227615509220048947167631251758177123104043538504564826174613364782758151790162250287937183744432191917263994973455230403340391174282177351565757493050815589934410196525711225068114406975776638613914902231280929518345453953483040325172774143304620352493567414499336839629598952195027254074545946616468690566620002019743923818590427456911036904788354923692746328460918446336438164320121525228998393083439468663998274603062849449928867656496614539259970380398968745382131055980383178178772094501358161418308118947950560982412670948665144565534413515335299309451233878547786882309887982104083913399007127317992592877662579966576121287128727249551450872401592773890175992873181485824486136719983411632241704991467238820383600183849615886127944482536727752380540908830283470824447052127169595437926093619644860197273162293464519512326340281094266681148683089216622296300559082759632108969198111276422935163807622983884362051908935309968439399164222512159765386562561895602516049304294309886373038660915095075286797159129561090657589855317555729051460441357746485617998847197288530045291936050774734649625346142302381481304626419838030294469467759070716001776989353464391789132803016084135190894401762556176574268386173266873935522039694631690999723993232848594472157819967771894771702291785685364197716880981010940522566967054237812052834458755204456404211952895938697339415921019047129679563466652963641042364903189734002251416948931960950823318318509085690109190677340472498913860520663601571853457156501417249650925421074526630540505632933877552986593165014063712662201477733528302069875059260294318964569076796484122882920309115017198708136677567512762411593900173456143572462085658640524507866866978163537667998370415745579199692496004294373097028775896843244234910836127748418043317086507056454128944840521825581878207529494208360490437110851496789958139627538434136888556347911152584451867930558966099361669204824420336564768070800412539230891328644556766882308633494132406748752562394931279308751999085611680028021239546486196055151301156948631853522747809412508565029023909464044489884294403622215405963085380408875279546850126967933788923492726143471109803111542323521718950668217210703672046577679709038779525465954571161394303770722015214168131307831032330414981625782940743359386547063994308291083910719525787505294162422360459546414754616847526393083909757843894135880944326379655127961884914918460211618125149706284661329765281864839493932112247112390513086401182783115807073711884920828162734199620619123199942561397945942838258754405855382471396572107790234496548880792319301754238080395814182935083577203084543659955127896024240602531070162393188391734155828540341210069349560534659474500556324076664317325347323090662621992737249603459266037337229512097153355887060224518939741354766843472267397243645239167672292236290997559413146567707862360631260312369536513305320021577652314270888119982762094887364685972007929967321577404664087034166192378346406813784254426951461087958667962348182302084341945215309240634632698583580262361787033680209086324173299559346177741061014125608689338700988983204661435026729701533450245980417337708375992212876978803310760470364323437188236700703102596801197061260828866414464330167722984072735588887042762597169333568489663688959132144822798123724868415219269605104348438882186664255296206457416311313794411418799584656435017972461012586229375461523796044625239302334060796644612308605973787544119974984339841862527208654788349731093924003806702673232679673467702370253572619748227425072931858773749813869652892354335205350092526596327638970742358175118515540088817860858400937467566610819786342535813455767273630933686255718308481043010600074029233681070745102529838835783628770127682897394147061331225716251587453405881825814632477369680321202674863385519090568187640726405299299820354188110574782224016890734948653907190975724621918353083482255308027309795810214891156050126171547086486265662653842111075199955525991723513491182348927000279721006713863490582998826388225115505475037256824308328099362172995482729077468945342576503477035189768152906878502379463057254924415433749561247186484086019159425922886116327427214271948980615811498987224600702139396705071282759469173388775339062182462502809408463855129976953113708757554280880189610327888379924993287160954074342948695256609816889106262664536186496630010740183858115953953120920151601596888884698951823944186820223172235181344226037934828954452192576735678270849585586148953179665179665294172887362466619576235923799261219199295643447511578903183917863194246934312275565313194570580535015597544144051341386792257218812808733555460987120282998377756167935304500065987881525456165553055554240527712877169841918436111907850278706761061703381707308812417294983609695565109547294855072066412820778450450174671982434084970309800176624808826527213799524918079221831217205366298908629372880836089926341649786108480398773483306877649157155350822438934880178103480299613592789708507243158167772749503834556452444854297774339344692636367727612458932407048760513375178602469194633648120106471618842976510530772786332353623779808270861735663381278953716338206848830569155006713474619055092319339319308644252332656003183306361106055711475618811390410988774251546673517797729000842791742212699394485547311146866650068224003049729108048843111450862548838972392967012289306220602580443814788775211868785738405885179535329933801995054116845189191374069704774764919910504990002072825425258538704883096813239923551788220761207387703901410151003233571793207717976646383725984455462331006855619329958867948241966641842029815675389797767153785786918918759982886982053630074070434387588392726267426096711681831629130410543852342411251512284812625904539914067127865483350183917455680794704794266131986036675679633937264362633199298093533810166111390686022355335149360354057568435394045526927606050914516113475669372282140769882495849985328382856820568814783092134654961467819885158773857070318410246372312930467127324945682348416842224681752735459029067914912061020605581573076615541763479045734012971897582261823526039620407189761107630220559608564319995248483707174846360945262280126770152381927724159725417231867694402924934981213906300140757601336766375233731638841774157863080147870351259254049157121633223273482985532177207857268762711024805574412659633543788855867867643642458514414307857702143343822736317777436807676580349620178548083944775006940108150035992109728369961742935689985599847936757754772495275604600182904613349471815802817531479692330943832907053089850042080137481096670833480796316671380368749267454272556256225716082729206060037495251688727399885050900759458989362229640543260018315942537243619408052813141358334155089644850454777370330489089260292605873886173589669065496332925633447695759542190894965913027104595960141458500333453054529605646126261035466268326977916287596803043941623593121398241190893785161761666900538189487025810665370870014803091082076223576433540781635892887136276573588349102826969805302820468605721447771076895556937688718122946717207845455488610674194950370731857552431072576897260268205166245490369362490738885770703318103252211027378216729019914313515010777763442264428977665654137797784598572043476931843330743753423979856324180112049240065319749329040325894669762410164158371928781976190004083633713838093928224101778036666524241193165361813494334135442522330234748724054307891529797451146762811938138622496822934147039391883514371700313272072434869192830561632019110039306097050749099870911734423958777359476382729758493422502513581005687651427892232022989995798827620981875976383608497902381545469305756130699257807949210070294322494222775725191837335214942646591534962278837380940571574692748431481904276573562907254834941131755785545174557839920099642386526457274103448398482354433797783684050866644206090641941942573816058405095534268796570019745642009303701789947385271027985620124284961236525504893906416553538514869119514853590310381138675309608790072085582007297413332833320201759324000686231191885844296623125308747170247367093792427474424040452243483275474124395998226573371008363452041602919465106693425679925728799020004875172346689763369275472550846599895184439541246156403762926865517911826220857708949474130504056154077734220973233506629231009841184426044356202750670433843932136907200609860188465159416765349078118449622338500900357314498253218799118282042384394804252109867893141089743068948570076299467118357199820361108563720053986270609288410868594416014189885505778004309417303595610602960950523492345727310513069744475542294024394999452565759010819595292656880628331572293978562830701763855993087896952143967306241872397573819128158132327978808575446361593161983305865343202202814218831684016314655926838236070705719770135063873438725239737381244595092374611374610184849757340121458378934759180345949854676923171195500590899600799923142913739617476764419233123812879072689515251669429977759486933845431865262606375058153044053643798027801014105290413418642687359249731568096906479942981931396382750665748598479350445487248066266429074797843914869809598435496881120198340950590688795529050864095294133113680304495087110280507561611333318183170267907892044639304206091076973760567267309259158906619340597286230351009871846011883298390827726544396165441985239405380473290040917517394226508151108063542527209333435458521547285247730661872424550723232482371349873367190350211647481610352684805794321654695984929664850232967460974921084563410767737697436048540266332561846819350567578266573369794254147166364805043098941279028861495568736310250760513417480234703684665754375690011318866673062467177796216289059833716373854063114029381852858170793004142990984815041207119881905921577685428854448109993873167005508470020056628848747059031100787524301507680208590010455977537146877223147569516951759688267381210358636727940474046127334826856702577722813545698547556287299521930236251325334118693333222932077227503658900405726468008507845737032269856397887480824636596856399440681244987022973587306198319251722812573819002096599849756003386583876372092908545117254878541158195788507606001474543936706213881356573158107384784054011672263331432295812039538254997960360616909783467780465910369412225311298421997673244379005514579426370538467287548691695542592623568935587476328231487023223513800075709754131880104665439036610563939740461395823859998710556833541625211408079669548465234346663204947497632210936154628139073560877376044519582046615171701077637258189075296000980636889408572680614354918427489477715829955837462574122607236185882425406994216138476778059528373704027785578814243597830545420632157987091040741411134799986126473807353199387362329375215376794279205195815414588502165669568174074425044201898316417382807195770701347222905732642004207681227506690753380495789168098918662589905363268957726187752040744426576814436011469171001998795668428961488194707349123251552019752450358470590986375638055020531641350398504938769700576813330676726060962201719964195542855295449836054865157287780992022131395557523711702272288300565508781859900875023076784631211992306800471308591905848416001060492319355344069500151147370471274684865631132801666661151434830448979289166039164954707468105796919876232967601320918395377364997313693676880782864105165637253814536326130863329735067531919496279342306143887157551852945013469541216742860098457043345380001965657695307790212695105801448264387832732867672545810308373956160826383583052062887908579690184139801735564215284556064940911820561058346783921232465726750326807829924349973897931085576927739681258386835445270908166151899710799306100078681892795219848999592504497306554282654926901407193766024682664463074408807160059276784744118658108523793375496020669562433802468568943816324032930151440906780034462168850768477597180626024168697850089670202796599659284817530906320311310356668869571298470730615642931334361657829571631950441254419429647524906288176288195920322451322658246234030339164423980257378146199166603793303488408826194153097335209321935083952037412193193237892457529938431613108988629394580061610514583579657566327588401522127269008289423878131400675968228465138840030615986947654893630600766605427577947968600931884711473235313999411738240516231676202089173895752113862706643113465595640001814956940775316567254797433081976072742379128067737001655930042243908595873674147608840817126280325524360144589336927323513864688777926037287085771677824595377100516830115286851092853351852645250954096992226710574315728686076765364025126895741948688738621876180895526034784746313512604277176530966645308492440006112679271447958452696525660197267561667027112969290862031851943914947594285391880169529603711971668740438122736078163720398617875405288998279440967278777345081200006424576679046410869594128999660618001902430952713485506889525795519181410037712302291401876371720507626476590523937342187070279842276100181824645125145473785629280804013044456458368814587799456123151235025256433725797558830660881010799645950338344670941553175259462702666404536219065601424926109994371137258050013881879358558947706307416626262502272511739845386136669539586972506712126937799241052691997748318219142141972371349623769137125121615987397963936560303030017434380356350607614087279902190456215267456413738462284143994279575669158878435428002120114128709265129301589018392716126908763454626255799862103965465449720553679529150183019544576825155876196030777444480747305506123601899769737799619536756528414715618489790327705772897313606453251415179029085637276474653657525010530732074068250944417083514117265821859191634039514687407388661304237721546592826360569511182104877255213749642699834189519516194359660030287853877038325884347267582969652323183518163733146781990786362538503892765199926327857946550911253997132803776108330913525851930242334460526665360353804098835335829865407729844917701932482552670176515455477194966665626411370073626855722711716560210174689403400976295283327142305811061568959886130771867271360126230268068361179396166728673250115155969408211468643852982923336154402383580200702838327260621481881553758218470129267132939328916282217166087549643043450410329648345645328170113733890447442468660223424090973253984450577818999141164200722875898579441088818494200308980279593232526378182805769239612284693049611854119670670314726206293110756635794295802650378953891182712586748835172941604894717010942280671158361413533182236129503712567440636041216535399691158879143228961328487524506634953164204200520250949723397459930658638771980731133488652451397236501015253888467284021410587520558314143778826448993271118266928596808300175089311918632147041072940178074303899540832593013221471577805571726306818015942564963557747761527728729183884687306718287004272974630953757387670694377388692314974246841355569711825050034989875929880427124123383278049848390563483911246608475940629171597037301805101234754698055569654083867379800846421152615505008989702073551181921261386853946191805828377451049867888148591306568297728217561183564042780419815752104928923175397093090884970806650157718755187194734477200076915855327908745633986117021132185335703361971704869979304413744884275841675484570760828078949976345322999635917685662068424061689479523565824148754231966696016946556729688014628094108645866784004327554663387433822282326473910767642882619043932189124538153185240624041415091054879396260936096559214458429677448139606349292196995414556996143909625742026371775396096472018129368287745860086734387605681640868204543219023813863320993743449219554773576438026429527471869915605319091349480728521250925453875967071990011842632662207258863277971323892407210268658962782469715252503328336865705036927486989499779313561908010880736091159740727768427259115398859149161866114664027222243851736340775415184506325012760370286764005388032833049616221613648716781335948413185862983160700824441214567543107127717103472058785640613248829199028502840697634833925609410575015748054103313909982306458120817875575248419452337269406825344125469523768335693303319514042547411537416041401950518449886656146796170730477738230462799608270138413770907344800734846332748344943473447893046454046520344590567075048206588781078148166997800389407168845488846102881823037413095132420409031570913088049793646681698084383438564657500024775059872986451689107742193604168561968340490529359395731049889292316207077592055750827281142285765343244308034077400418665364347878212404924836586230980224128308497511138718606059845347925365343780788172676712465489939597161786912901729059937735739693728183073193270639379669977702491394390387474911909371372031384944817457687737312257586153905042563032141079361573141247671008267530017433651354762271414395211674315941938029409569943283442800924348320910481404726757727328498697809812374743169458747656465639735586516060907464131760104137332459633633845313739284930960977916446920645526139095527576876998093962884931585061728853288410394266184586357617048553703611614074872078110318102980150942523606712182336860844255932116774706114767405631090596927677023000370885681208052367708405785792657549374495410736506176312177746417214466751830699107957523674618229498489143111786159213538998605841354998432611386566969677407759941876252106890809732021851490795302114346114809292082618075225985931182311929841047198300022770417333134214712927457044404563438661046860989490009700881241489705612048320416881207150093407019430709578545543391108299586515896165781504336020202665990614094268494675134343334643820134185672629737064884542334784140147099610230526717455679139902325960534158638206398323979722545842790737091031003489978263594174395667871995938220660799364499513929416010001646722372606938261216013568537056079267489963311807360385358067599256834696848992640416818866615878695606368830803719212564941163311331881014479245590688293438642307060762898330111444906116715077505136168496668488169610122014494822190434036449684389821357530674397890543013542346125460473231366215468957903942699597292335859876519815640407462488244135177647497693973816707959833408598666762346208200250532054037417950965584402602910418675834559711796837462302201150338234102252439505879008573146443975119438281311594639146914434296847867756718550044356711854793766851873050598131547828331741095644565794909346580780063073203480687190626562932364863077307290650160871777429776849983683139953760702501912187620744490491780072080922991809961091508962922356271484433439746158732473361225218957474538060262838088650498458323067293710220231927119860381255159900659177155163675158232306704960441299306127318125120469122262501586229236222173495051327631573909345773340221365563518884873626866663193595555245297022774440338077946474877962395561096980612530693461219485857577363629813876557694506894531902973272716670479476620469633017694672155830545956003445635371254634257875029316752328200858608457484605707798284329435090551151151205121460649253747631941235602072501490068550057033123065767750233350102921556289750643246390449049908155454934915755717679153911768662339257556586519705431407386749920057978708707371977823824266208977882583831811694669174637439808857016967695977703780666174251970058841014389243766497049434498973793655260328460635096787211706113292246303857155260563893145844808232328094226283427784688880266777279051610786101753180965838478533890715303233890415293798218211008027603822427128730774149897158280038500676074911550846507184354304726696657410554367940373131930489590058679998930580669326527688851639167077976116059338629417480811456361630705838331605788766997558405933730160067345273377580038333483829023241290118857409012619984275110837007600571745372933213517326377771521510327688544686771803815947027801152146869820864224536105849231848158233145162647332331763619032106939665242255659265792170197905492335756252420351583543199243651460956594181605340098959076317286316968501301256207543658954345741978648957528925195154517700504006990255789501965640128261190666119502844941202404192889161134790053590005034228808817195592427540782518150812475180905801494858655785862980024918985727833093624940883177241457615851403157686877790780764757016473483403329183939751867581723744000800026499603691718071703437400827130088920852779328606372766393100846595088679511460204431733049446698364119479608374091509834475320077345376482444582993701545643453852926895969023442658221264330967224566114408057878190371568707197972289509687476104696752262617478149964843223177622397846905395686163316956102047536938085614525002350561265048689848811135678055952188770104721173324139529092977648617340085252739518957576380035777605676414089592716688226226779620772800541821544734599307879427474010083825199659322440006515574984560895832200369552699516491382792247328276450329986887284857386165424060681115968634607192702906270707885719553429043854695714431737358555210389838899467783254608320924455699807606819133613219804492791204200504353878834771781591721218728189371947087388545955956599000416237587796370303440599272074521589872605590474625177913642338233848319468081150945534454738193467133492614406181676947408800783696877720640172556353144095884323107997553068633539083372805412503347278675957809122801305805191522023064761305094168722769735584096175032680177894579604771625924898158872752953512052881252850942532271293043816654148039457861262653629889345603110781633148965537329110359817957123220251838802022238544825070117372761384388943364577988042958394941005561898412369314100622943986693058214331229175152427406626676374216775840739260380317773240504858475792996841573729012796380045981900279042315572386360543919737814349364115510201591301519214346750568135286559896608510139729612104931022423799791335472803596568460319617505691374259954821635648790407802408455748256434050485218629769037715407707224496495078033378389279109168794446697640260515205310548303725668794893631862447533911250826877886655327935988147936837108471693831870971654580987563678470438463664701099398094501623778397201709602790113769473950018950688010115976667009476204954594078988971086000087503660689155815638472574039739876865008034091032134924622158689852609145710600910763104366549381922849276758471401711685845945655167720348615862944968232480181637785496333502069217476019821188652899633310953937771311177458769508001123542211332455307034094318151231911376722541899869695820639337217531146913200731959556043138336237504645192549543874847809594623860296824306570221242111472975253181518683262757535632188864037810119602668789112563765313904047742001539461426268681588515503499400364386781940630095139761675517168803828380376122247410427637998059392056077811561299092840484607851388744230513695479810929813467921109238737963786569768660393993737066496848580233984909485119765857034425812355839455274576240899475641160519031127133532646986961975985219698085266337917708970011622635851276073732313109695322234666206703588899193562695392169719053525758065853270008232242330917617927251714130582728525445782438893433100332811666945073629411838747136137918688809040225488526977229507930071442694396420989392620277237229849608099280569976540648159247428052851160887175383531761575365080612138309856281486581218690524311690995509825285649278289333854358707292383364188342022571169019400068625335969539035985288755224969734957974916985115435775352163675913616328411106488107090748822575649717751783829463888223482686976538427846237720252815667206972094880109932759522863394504309251932788377146862722284221196398168275896511705447579239695564220357374484102784984637352038368372266627070055329311277413478012822066854199953071043147078660276907538129395131326413466219587253112023059213810209730819465938558221750963165413424342446846872084361895766878215792958899174678537732506450691730818737789334034944426490563648657854274881229839661447299477534210264900145077138757020012032129463466139314755940126285839441854202873199663419144617727323734114787467666597862800632939446260729389821852602244438679141068280273564909136042945548530719410813604197954799406645231569578747242525472462744348352222345823996553067712557513638421253614018144051987511694841955623445337046911183465984836645793347322904941470683758576010576773615813488317891640065669902666518044298762418403271661909353689202916624090109711417888542901244736683001880567661608615240509535093643861670027204441901197844706367596822296314973421575214627372005875632801001312657628486786323279705939228996521979625825120837637478179115573492895242146790017494989926377977121274275946694260861601049675313681694892862466941104891249389528188087512378780822847551922248603229820848700664351626576165442382081789470080976516022007829797302405938234168414493853865763031790314551562521096018375400038071739260700875913660471123288037042233651003386094367190021569578940284421811164992753554088059858848833489800861663128295544633804562096665176184222519215832233371562871868609043536018122814351286688751977619405034209236438399559118894199917817834586000375416359015982090488033631913747482457356101825725087187773353922441100007802458720371760692028899101682737308719618085805989057467961176657321313091033118012090905781338501833401382924935203038016379223970893702680043076418038954521563376817810387172209921997438331725908235731615343550101630631628216834105974973330875016129959244184066935068628547178123764724761997932519904751298179634198985722261854500818659198914829326322903919959490629231697602339390888165513771052479516017858367246582556289841046426955289996272208918258567935823826484726092687505526349878365647758338107796156932675790589497796594822385038548538444400755403866338096882795001995651151865591646061855551653011928744309606601047489743758724650615342036365216457883788085081037740809777663626430550218732449158473975890602236781331394410948117201096787703628144026627460755997441329915011104510870533223705020038008344699707059514895077075993857648556962415236629932716512356782625952637649517114198280278477223014209528829899856965608578944026981302203732943513542708135167510195763849546635319169051048607372772039351213509057386149182555791354806421834996317327789264596944345968989651071420442570595280051465060223721996208622717904507696776309935771427291499043827213066223170611885253559207486002129540699799419978813349122989988022993289914322075117266322494650099884872081758980834277526200793434450037762614394722595425488552273558012176844870763356608526400933024307177288077815965930762359996499318209428867115307875948114262297442319358125813346266584948904731362099212236533412241159704769113459734652060545627860907135786842088327307104467832869676911447910072000123723723908648544712009344862891413704310916608256837826581577459261045497491721032369661074063636314064345422026765618719851521643590523425539770330574822598737390689207530274017657741424586877668791272106207071064593026699216097443272787603905051597904004959283201203994641719220203983960364090901250705073574346266118409886918000085369539427688120799759790487613072568900279766051305315588180816992925234225472417117974689658161397415607770075756608274180328866060908046413809790086453839696375564087353662812390652690256669199127859955978384917030571011340706996105289537715788892220063518480668428914362973549595110593802586249464499493158715570433502335392976778232782878327038886450396690684955726772645727707359115250335959982043225588228747047981172492937794822837843336112041853912113631466134955566214695031384019660126386017809647071468680502279431843442350790557030293175038211970214672770280933645035509265323172062348599560445484434483547543229952710647362931481907177277335667171030458297390907517410092398635998118191398495223003478429610286680866326532702956468399839660301165745490325350792019803007854210100550300906616876720508971094250028800139295335507821758639616888036279831449296876598048614689515111597333076938830868011014671482819334311351438671197665190056082796703632613392452705108298792948152321731579880952414602868912423288185374545199808578561645035804819935098726571771520176904753967766769178809648597210941606764943136480882612084170422635125329728062610711381617970188452036841527646598146143472369011786284984655010031339871229832823458641794414793517096721071789469299534402010698123687030513989697712868089873447648445269956993044324832717518574889939816259496584256448669153584522785028955076436597819243260747419891072095180188182757625873438081334333648490891482708362613619212903122878223118461198096677969787326488586149212141422510843188564631843410689545103131423962071714728621573814744710583687118280250420656301917096679778961481894002120672013610738403612463249550193704126262360529816436908296330117214636446412470304919115342987424540453181114304203997557889184090780088461974350881291565737773840142217046797641909214905902681496247534693419406596160316283991982019450994041849123077481473099039933557773164407498419818251819395335839760121658349410916431858643642388651090657205663899707532844344452140345720800299850877110037237927231767623788649977054205291907083900449315158398137809487175170907660887919955802978673225890702431352612223577723222502535432209026654655214610175665149945308321130441055220091481532036874455124869239702519528838251121265912801891338514367029645097068882676333771971290027036094772290855247711220560711955845603601043404713236362077184969288679352146023180970203940522789297263651202678700003733213130252794420261323188083135531832701001838809277643905160471722800797586346479972283738132063895478219002168076088259236269909731157666974614286605571490300559081901213939102416581580125521094032691234234573600741488030467016753080814748430866380384402036941411532702505339062277644390675230374296673936966751225870892507440734931238944413744603945864161582235405303216083414573950805578740785100584705078222943146443573018244511981185982332109642016321190311544243267325143403331520685641688138432607866526611860247833402908507808285068214188359709516154151429930195636455774750368463529654257531357388720064571454256040085531371133172978048706659857459935747768931880580424279298250783134299846497042543269010730078388295018981240768639694062922132552867755841873602096418513920368516818507249854361784330582233381096760732777432188506531059013934971662816394187568713030653579507214743293353111259806499023329412809533464736437484225914910479038823976838417523949899123873659328790284408787648847814843873830924061536561670133683327501203928909483896281158866882716590305773890045329320039952064043047880516304988652914868241177703129345583076753548115662272913283409923856843702966867006911781644039001601472797862020182851731834579648666856475363899295230032543523334865631979206865367829104487501680555332034471725211682036371240223428231237328018774213060330613253023433733546388936811703575022385891013861176830328429835745934661473656098975898704214029920876965645310846919344186598763489282978055691102580878634536250690852065194635526083740590943056575152724995607708047594913693038036385635694515977681462155836011731349780150661909848142713048836448558391401491685658458809023958720465538165675794814045006202562316034559855215756170995360814330875734759226873324889320965840276288767429968919774838827902125866552274425817402438330594524288543253926355546224771117796494877167582773053923569040129085307180971683256913953490357827053530758597915428666838619529215564147729973714577608099322222984291116298726308530845028250149091690418948895430167162284453349999045246084619068685434604714111978050739628250533700286122844155812672755479920353027537886883865669000594196902753206518742133560990596992551426804589974414939393959402176501327729957199001878719549878674915830498126915527356850553979756826883240103042943108115071862926928967976329889435663142755014612975721028921751255059759465702538662574058293626123977178612129159511059924722577802659973932764735607360054601045119950305699496792576239485063244622835782849197047359188904597806415127081793565481127770714489147742549738359122284140823866297417860312536753525077537882945836828573406634582654551513582226843760558716634619545693556481200987269253658415801523126137464019027927686316715670968386784097720753687533006526864266192317036860028487129717846886034017129316773675909135433823738989313848035356748429200134817593743214971166476172554377011001839673782651995138474819768265008083868307447060147585542592148600182777386080922302191848201796941858928378025038607678081341075850249391449068955151518420884489852599460661419152167857322225759922934103411530562233885297180849549578332046551917568923763774271214905306734829996298793322599063761334078008329154093745073747287892086093818889578216295589936592281272898665431303281346204089048930104423009466864429620815828445673931658232181749653964960828848273596510160764496352943983658007357065283974276893736388044210363830160404743091460932819882323553160238973928271824320695364307845902850052336639321771124225534670405943425854016575971463632277262926040491200775836702379224928396158805442488000274066969328699156438309933623134870475851401589624408245513002851048628969246527444429454994547826968932722769802021463517724443408679802879142320106738249292690711949835574574920867373973529535473124980941051971936065552370232287112022929980615730878556076785416784210497004140977212427138498961850638197649215971964204218141154102493727734989032426349671278822643970019764663803726624266505724103341163835488859225331558815096823081626322297130090946813366571938122091732165640343475781962756341301136391537691211221568509210975776772719701740759310654630794149974474090706987271050866085578352638747198139829262282829695486311481849566147607311445193185704338694065730484878583971227496166353773388625425618967374500267112818947839881685941358230235901841160755082505803702078083572278102415886477874743275735579721252235130173595328059832822752285939634997950809330046524509063294660042490996177343595313793704364270389050446405065820940772968872331688129833938681418625000110882049202360351766492883610040055803982681897822059807557431998411392987006894365419403686226027162967259014926686830489947394257834009760496659288396520119766630218348722783696442653103616391730351909824367049537513574492274385310007570440270436529208222240478529682706619011340256494465977021400416030837904650824015267677228850757342642551521337938267849210823284039551289039224096228884530197271009314423870291065300638389967149726837137795012846183311551881242336698359918960714551296548397081205918119888010878564613392016903414975436148322732358823964475516955819498373606519319609784159204216064893932450610773217246215055463275012390348155015936537294858585342678099867283757615976577085856357233981316867506393130852300804587939567373733816336571582317752960178793650340382890546183959209321139645688046875199084703765714248640841967712513683945885566095967791881803176922465861650949165525939420136476129757820366162323519151916992890605687244091049947698963707593973280824022114229133671653934723136418330225230559164778810547664193431533558403514352269979699435623823956486121940151839802855126682460928201595527345648289833535891778420412264687681305755090551634360711711790432348209947328750954975139730035606920383512732622210004688192558494928374246217020492304135004901685887457016530982517346545524240564583665621295617882057880670721996242767133243231151006382664501227141375353876458073611061915305140177175279356022852032889765289787870677763023778620301227545829198330840383260323261666796626184681118118393298849064760061813029518275944573437920249086487884464756079430182254498367491446567732700427294660005063809533908798675575757288575803697292061391225718287934718245369045171738743142205318350605340303225463698554967908219002379153667217126986229716690745674588388431934612005598481938034501661195740484942908529928918376184764924362600077462699006184379203166597966645531247871497040783208611647910965719019188653057326748117389464325855506441434097624366467753167093844490345734599888039899387041001981817908194879495165627277681988982447094982291505563966514116178952184460992264104523963725462810618324504091560181471998135423557871052093525168671552640287887514915057269849606281364008407724851214854755477555966327485465219656169409929596041677227238522632325493492752299669744025877440458473972731907054960655025437183268353770466099990327267625736700915459941849188121685528176034500058400255581569721896926304200531068773259031209892888209955171500758399471905357418581352078368586525979797714381914172687294175975218564686059769838414615577952431092003835086922629080341937909029555700574526887158188231295260518719677012751153474321374260453026134208427890646964526789544119391108831476703068960433930168553839795541981068916832276174560960632198488164730863486317955594079358208443636321533262074162963679758807102221864278318104944691290068209553181666684919247959293691792774495166461577444549459443444513596116364345560219309409719857853747104100470809362829216430662587339497735347179079912676801372927048224409092798819702189101983551520719575559189769773289875123905355907452759512600881897514422032278305167482905394029664025337412911517903166719541283624604462625784569316772566362079555211472931651275371277048626365217490375295513616720125028389186525409606977632288308558164294402575499211003801853036184770958019196131113262153765086641023370893898126360700929570184715886001255702651461928173260774050863696894912150459023878075243717132387253587492566481844738613596872679445945927593138527362529139141737513205400919080533264044396343548326369563896937522674287404052632912776420791291294555505567168948644735996138116328175792263641554925014525072067486929987141443002866343201052205889015569337836908770256166374517341941794690200501498778205972688351876513912461408240448025430553010616602464036138883181748569347246905645241273717212435001270900277056332818568960058404546032128253493361929508258018256853796013457765652323172463179628737547550596439052892502127683636680494578827946214574722116085195768847669677905803174977563604480399156644613942199100960714821603921492282717523492775404594336890158191332370186859401491612373703761484220909667056892671161137233847487918710182984756442662807913599177302773737559852491791311750520495547251692885865153225198869597153398396183592132730797289759805598591650075539335352914596180051245665827460680544618522378015520120294505765429777988761511852988737944878986085182490875842278240576539972962611284733951431015027167508132229166362023295966998825487276402195747315832807767082804173074892681842700900411819131963639340696071143656058356624553007408768254587480266901890578125547973557324525729813111093603395240402357205971653230127469533892804551839157395728271911580756506121344992856526942698632176992904130012633343011396604299968469028149116007334056115267615000370219176339751650443429710652760520712802829630912893043098458864014018880247951462418015751669482510271905271346574567687908295894217499471770057855277485831363365011845371197077308636268681266414446153171669685550948701750629518225608724566227977957492068227291521118612340374586288694184279763904682955648095574217773199120020906850859418098988522484366916158124256737007314958833959217769505227343720452659966857132079958209302357557002311845159049427641755040364360662473074982872239427839187504728965506119616254562655606722186817664930366295205061299187507639119062459152309136227396652610256885418743000694592784598461639566491238134711852926985766828107198421918822623302922454806180115752697550615479232509739068051332082652019328207254144204760791357414229542817312306870453568108516994576629599529227648277898972388802747884722769653481164777039734701401038141561692717810307298019283053811186163270197530366268453527962180784750211692533583199213580461580073325489811871866715183369819649470639620646177458848524469689717817790970544362315070930702023809502817950271332458225996058773744274616536376942224031422198766485832648861148952110408995874798974800653853653507807207086290700968657886347594460091496991550935377790541966391801543460739995390075974055539583179155014728123820246213941032225320455946904480819305853140006388463141384387209899538440416967168501866427085768312566903630372927161870742073231488701204348977679575560879410224726640822611808118379317225562166851068712886956529472118960036462225455205219688284790452245684970558144528921437158496118016627166170448078386788360997036417141943086577385863034844157833803620348564389852489048790327347316275191188028777264547252639813691573375578843420756723499642638807448766079761463776499965065143754935821940946876223395517848208317702863655024373939115729909835467399760663336872884726343478284272395630744861716523841184626055686548073873865962711226602056405702735995685344826177594538627419357972101258517814976403621372981584912089995762186728784365373715027149366676978477489869203544709407442286365235737640177077528260287774555849530015718506064831149612293012035780063967692418776252932254667191310552816587628655241998057379508461354162796017958160398064418147160904074493930792660359248663685928756320305068136847794380311983290497276162241456402847509687149290147883343456152729872308537825909771134998786139067071917683903075970649761004073043949563734985859614216477290892759615671071237117304267202766112608418446215391781178624396029028321932521382880969416098583646053489123256233822483321284701389159303720790515097953014853315523564462470042709957933390060420888414393798838839421809125800602329745513166153892661684540166725897022985509990470420916138725966490650195781503515133713520022750211915829382698290220052979301487784211919892226097764056449772966274182464821212594826173226997746181068611420840045383320441559163751519291043031487549040220049311136304332355652881367971555316155422434295691385191493502871857819289289128901323788138004710367822490858895539194340676555525158823755373077932236147623290155669684951998131458630558762650341149271636438385716808152430270514770603975185024526311345180981796101149052142614065478105288213519171156252088055387773549622744968336637565797583634990305122332296786737210183146939679312562186254419451203239736687052246150705593322172792796055679961005258041179459821271350468200693570560502717686821106141069861170360474113245940688797527193768701544072518379312629068783739816784612909039515132316025974537562007909271770309030004566977370137476339609934777584723098586639233246388994492825016948977079728208265028040884390269961226123074225154542107224938794113434121834620398148280884749064462111050096113961729241432402474080123508047319674099376761228724347406474365740718219294365849156169776274225058504743218376334507669276601701915217361223362014483532475592603315693508014530496739150770514656710757218780719129103336165467838574673748934764626123732043666920660527795252421207697865433821754704176236986150861586055665465137283799591714660272569440966489520146073961958700233734436996339988419651298885722359001144071649077289421568167435487255469210639051332289586862035495758392756799659610635297069292046278000538918238781297943826277000315248815171727299156347202124585133965207826366934036486637361119855633431771330865869554152293065283081616077090725336911149938258036990288868435739905262439374845195035093612796876407442109210205698631857530979321389527388228653115554666647135942881523294224701526529962039453435565784614677656390643087738735571308647645893886815808078292962385728454846261053289883257634205607754001799256399090353118349637104892942617733502154449670422858851951130694655900806678860764195566896967554076472444735830767848075405117030979770305311030204312719598407993385896486506245882026726521119408046956578547894373375051378086514862277940485366007901897475299635496252968187050609197597271709545603312173459461494775895129225571886287832911291704535665765373138517904287723456814703012879151955634182197981164212025936906301101826750523645317832504849745022151907890641658827211465147976972699329391016876990438406655807071200278167323797564213997017473873433607746895373110319752216605524108757579817170656608461718429054594143849863711699544099485972736015997308391918688504986744084524052635172984368741605652679549527401900607576240586716004021324005292748797276241208741714810863023379696426778855139343707511373020448741963443249447629908014227697804190480399207063328477612458086275289730627218453165308618225063696702183197945068242039477471211451166297610634066925594769846165049750302191489148772124634570035549946276656912733273045002593427923041920119750689341549728563199872879778129609504824428081619654542756356994164657798107239493959592151617527114265059128563108899083153803769172739078221978069290410498048094872645638311614210003482948329967369572850975474418860527365556570823122343375616862206644846764471124091746833218209121459080532916654625976579121856702533154879937590702251855513087531181674400597816334078241211331686846305290586770262288750265815556190148336011960024393670457767388494850987291322713903332695522744737996873844080920413988393183479892757392224116627273944594856718202312357091160820102087090980512606937279485262290208830697482541126575851246838311934606345642721398824144757655473842414640518517665813246440482737781130629847845801964640794036588598085733405037486552830822536193609246180642651290024275469961896010019480003365719011745155222663143386080092215831017881536122539789919116272688967777593736355734049823009430299440621480979000748006549417108984471770072661571998028978501220995881192518172491308385197789243099658406631673237621383203055292056727767571679644277267340947716044533545173632434285493173603969950437272678508110915704744390822423993994807110981717974763572622772691109946372421943629745510122858906630524150048544479897303747173545502381166507036206073610349752098367178999340940277312609637684683406315120160840287051137074567087005890831151287965111291145408747221360869667903828464456766818688719243981829675006720035363302961199266597149293893981000422960453569456554967686552705208752984651332851011473916453466646365902955984064829253530092118539942885959475093450258624980248670461013779381760122557968505129254318770770419357759329693369426449012633786620136211952741290309181488789441377762116531554739527873042118155400439860883923711755695287487014219966953263075354545830588961936459121749326889675470336746899767344626510951799425259951498826025100302024033453217854699744438672980716172806883426393922199065117084846692535985229645035433027000760645543341168701758283626543367974813615458251523952259878784440744823732951345430435289825974292557009719379358891478455294900146786245565127236487304847621733058685960065667355429383944823242566583180511583361159193567907058579080857614164534401302941056207845463289606970315931303804639561318411181334863481067432591568594226118039038264586037482080416867638703486279304165961453070213950546454827657432450080843751137046834714350478071686629159501165827700345251961619030989936398878426490766985231406235889215591812867834265837463259410067728230971665546844928815403646080571013030367148798443530225206872292835025098614907069004286174784628070360459312556431669615506656945443115442454922171146165363278100524678256594195140777467019500563333968419544014281396910789022910357356909398801554864985270278815395954142513615589788836620961354121735862740117568931359283799036692806449960416074860568526892934568943288749305664178613701608805263926460524249272088803385492688822418757485198041860632665565787413281127148134105085172023664711175788412679281125661706629661190920023990726175819042083657821972866818680369512144271174663986835867054945498905782883773784944397173536671513954204186408880031863570889589449268480256987026087117440025665434312017550397550214006677616802612605563369190410611600381449619317051539635012934530099083360832691841509922103574668975561208258384567099731639412678808635465014455733819101090446039951053828513636570700158033849030448185973668548267067217832438325380339466336859648723036766537730832363559003374744153658984506705826073793979208759561961732404764668711880863223918610621365362503054618218066065089058248532987247603664781914522623710061486568508824644369518703471207349550837274067084839430253504787330856197851257333858820176595228094390888178844273731759485582506552498235169279018355763881172837725791957703563970601113112202507125744625084328587027162542684283595406503884151847384561610573716232620167681723885828506348901634593003717702095055056085467628909625792018006940060571867325018631856162406383035369879771536469501193939354394587080152381149297417081644985426560286015746172626766974551393596119773978943761031264905682138168147039825811383161635839042111013613380524040315934368751112553109224734402513927934555997176097756083961709642227308106079957225371743932313458090528797967412264428129504904457917036593737573972090501371506913820626146036332909869069481539128206394519711124014904434053131179926908831626990391494722119817596824446287754213848826746922657264753361703705215333786744101835915482875520461415719950627296201968380220528529184679701668022057351041251180939549634922817222329025541346366643938880483973012028150776344351266065217488131652862241169661759797475025665183164469765388492774219102941158965442857701910023745852313816648212174444746804664161640856899240865988449510544526534065408817012473438876337257139131119939725311041603701595397870296797391469631185103432000824484031586245165625479584372232666137315959873449341051249549043069709448720916019188958587627222048527221703240713241674363792625082795718700496390386049480402896818136195219804257926758697507687608030219300188088351250489087131183218739470913437103593811466935109153004711904357241676104404108323439722346450035634295566383324839340195291184023216322742121971060895582040678238078105219104269307560594909523010629200082550602094208579809565865422155831592653103737475396258516766752377474223617337476499933031425797827570539143286727373570745709548499775222082673884947046790229375518651848331841826186460890649187546837024040525221837829918231542085429614288579857515432812368849120915471887199821403700139657156338861940277912877282398214631984174186757052071630911498352594845101225667484833060635881141026224754867359324668674034282925861002927128366697722910968333647470203967147859042061777292344006598861556931176963633528269716793369335200704373292444754005692535251359069836495377645622117568328031427619988405786914027467226403730276162433586216743520445818540199953149120117120337861950324408857593729002144024156073168536416021231461939802647888472897225987783096002074363993380001817593759707892488474009647163445467329059905114047921789515775212574017662852516259066358596552882928920940620615489874970575236677985730585387298348545121000604788526293586125812001715770095151809662974455652069916730922718407393336649679468528630385496371139736228245481400152648931085619685105107655731033013841068160375420362574329288637291094226117518733919582421380135529763343722591476912358960631912611680103649828540033007366899940680746936247618567410792710535458624178189255625544474058554837874023496323323692166273384840145869255987820858799278962192275835137139992603230006972815086489966349753147479221213572951460189714423253681797279204063545163579387728829907017181448580371727089349047174426294054835513793935577886485315156596591836501057918589181686578919510495937668127252656277220215972260187199663235769608271219101228993261747487929090616996098877130458656839840782379541758441948844792323005516954237841462943276933287005344396575318604488727345601837574036162467042542553908031028647785228862159135950492757226526400294537800325832148057150591521483758879789975104835222700617701473144733085447808210777240576192525066198434300898829340543485546644565274368829700383335526812927194370334146916112498632817375104752181560059974277151168576829128620419520612309023327512562417678410004096018553481445056926725831290254106297923205182130341149167245966914150040535700170099978447179213725957319506910187291244808822843890661181543862311239274313124206789931588086327795240523900495861412485789864013359998611383153914958852914491540167444752553196352568713151765376513496588497074354694711243904862523061708483201305155932291407847175575484028151435975581039514082851264485908406164947658401029524195204830409150712066610580066271967797683863171690146488453306087516240917306206207941450018598201130577731983923182013099736664888056837464284240249011045368337086763086193614493781594653033251368341287290672434359824770374757101456006662892136467354830079160020352994075083949271697723063007994427810553341814976881684793333508820611792864164421447783354113214909133738729081173361700175247502473565824558648654183229086466127694206052343978740142920201527103354182952639085190310119862516041654680007825770149628575794422271832362329802118631613071416342714938310537268563154383563761512846441931286620825138591078928704857701445509658936575178983127977437895933696644323844451013042749477034149105564303867061810297786318502207197821410617448398797067126539603281803453779000227196495420392725325222100824968603102157395332678754749967399586596039503857208094345301635819992906956357392167522042336103683149129339097017868364867789500413610285603365571468852748871153681042299316654147310655495066598638685022371406300671287384754276605043951395927233216164394488968040152401688695924554867370452210246422311721079302994823803100630318990991159589754657541564723562261712928620736346258357329619586827008896909890388189717869185900924658800639754223792071689884044550355285231506612407000207799059798104055952642593745431664648128205980823441075610089947641707276820545125721476763720961065916454378367252551369620809044747176707657468408455905286551146466204919545525342123694912082335996301992876824237135298288610384520880363407330908879355765255368909733605526669890459225954693197618401391090862229736062026835794841497291405203649790669255361418023282698915563753720463897792276518889964602932067542581347007708312478590263656863600798250746317047894692331313763271493501483211673415361367822579016422422757727819042774094600018515637233495084875292650445403946863043657109523282255167556235254644378735496003553854803072975854953633129972889506411675999754217267720874133690133193550167017579207608629592935511217581799349912362172218080458114993756126567952708574802159125358669069083419514369603840148312233125311017192022420031774312901768428519652010249154130584533421214459391053644152834223752951808654334025206091834208551709573110945257674138168264291783490029944181800323071688694464680195700479287091825266001746655565395607984361384142963897500304265977318729410004481040431915094384640627953145201737545409813927610112499538531870730618659571035273971987154131631087085655040020321374572320471745824161729454582380995863577858871164638184130263726448435498404207748069786066312749282320188326554262800286458758728399501905572385250921312819863134641875471493190547645401777274689359247485756261640597688934799451804608459981095697930363964227028247387711898367634502406506887024114005241371375579335916737471238338103289733118138476613926999702108461297013729664986627162520584961415407858861610116097339450833617304024348581577884877720583764524188326061346317869243541828294815513536907169969309560383453199114213982947553982124215039216533658674281792148808227151613601086263925085600716465148422141134561511466441843862664183949966624472729450396391422181257169183487896172996907992275449710657118524806248349917353063331461254206056024584157006801655464117637840976196252246389554040187136716401003495367125350345709268431569623214431488243629869210974836633830214489100022316821569669950082880538492088347670656048174797283537907745442230582615307883405736084557063039967292831986919942017247105139175751152155125791401327214776977696758523010254643921440710438311418000014469053415877141328068167487072401601814134127408499437279651336890263268348876140090756195925778870638272679347078108585712596565179819156803462761477327758618636372159699146715653111771900243090538037559083557658879698733938370993777565913761224240837434781145766532452077446090410306712742425456449953357137847926698964851063123587712963380278562022715636777114963979159519044380366780170151506140615627331009391057154614498716003685294682700094697559922540128804551149935644033042536065172833566494170605438180762791279059128613684137958287419676577382121911335754766113232601234235928144241307607082442811195452924554121469274923872793152469686814584518850726117498133246666787872068679254068879772627302070152315094666573261063985507080381932150633696935701677085385903519553418273491612825050849616611707428434945930809671243184511576033846733479337963759266222092371032647929629986716980032190338519879119666642382831985308197106632891554135761308490260371997604500180589879562584435595556406361063048648914750049381245953770424499499089574434451056385204828727212279239647880340244211828093715229382054244066470221001597050766527040902069674250834541861293042436401517226572911602342621206471043531123410841995991843336323667534790755714205967261077504418267864328841116432234802712206964598341614869806593090126844976677195926397667453610312891557682463709783160825269517873073575467138484960642595933822963186768405948597343003751823541221496065681172906440589719709857252223267979798823809579727264420940987749437550068797299917623331431884957005367200684218608063702344103381814642837716861028734469762616733751896143567056219877819530679530938715836297522255130103471616144783518562421910997283771901892000772235012453364385200837886118880075352330051433022390039152704370354939064081703974882331763845997844867602902850748187317947901086295293109705882938909326351286992622227603058060704691779004510200973993929689353507381631617755816529206646275903228357966513673313356353943130583251359313433968532729634178689094349878544204648891858860127088412785077156182563648719269530459977551204336942897011062242060087393532778561387779747625950105280635117353453457565355777022807196424090099045400878925648251023230130200583448637201113371678536007214964738064901226539195387236753592010336224095586165138759025203123727684978437385851206682854650395778218548586394893867154415861568511844008961591237931106601513340199121147745706067234299410686745672066892450840058744531911796976090872836106445181609085659723832079309716767658945145217340599227317194345003464354464069206092235587600424307646879917263313484560422332472798807422811666300745914170233400555830787926415747994700276794046999660474368134618213157180116247035015983807142755294176379945662237878546021225577891215630192700262277422456493280238899315059896861412442801272087989763326932910126758129650676622589899229488949035454461020598490900557122401640093826849990096083908188761866737913106175150532456403795166598244458581889024327756631174438849779759479590130136367633435690402071392347614007728499243125602042401315421121465325262788133344251800480295288575270165751117515595105541148736035386550604514885331570638902886485900488041830267820292590591896254171594447672771395652944440604271618053121238231670674006864382987600757013432108812004617802199342376816557561477690890760250543335217359254049046234666073031070485295654118856076403090376866104131821670576000642997670054113647171770875227489287383678721887314473641767547157785296181571609113316532288841237418278333755142524615889175302010665199464235966954749131751053025528898414896237701506725486534492881651803349489652130449452407818745374179467437238437613608037483174560040237394956083393567415072388724525545359016584208331242766383498615087362958510774887174891281304305433240148424430865827745723197806676805054220038472252573768851987999522338667090706227932674441516553504407504397951797555600785025357813611465984930529909384681747315712735262221552035961442971364287198326103686149848014268304043350834276444008566150695815515012146572888952420001473873063024462801758500053677761818042746166362486902425964885507241434423644427521123971660801130851660977096565824430278130225663800237610994910495787649472231243993518327472442032623298673222936911967562080958178191088323862465513098898616820354080385023254123489191202554077076642692058988000283174095635038059196543671675121754579043124322453642491833578314701199919658049779323519314597376633258350122160823600299010903914306367159011977250907752227756745749048086289635082956954886486173877239320127842539315361826523412270820091016313489652328335797058458349233912471248626181366739031615075070190353620210440557776210951038865431356505127247306394597455612253186706324472209855761813685564713023705132052412125884784193431461670830620965455437282773488191013346844511861292841727047168893962083302976484167809476801486194010981689726849785822846315774509273763783367998389911626721944448518805702376966254244793822770778452762651138167573266534127238919411339045614471467423519822656099217552184466662565229935672119400557766367305622254032258894406484799773412109290707367150341133247720181784603236806773023959181126317174031426310278032817850015711002631934489368230394248343141630665357605833200538311430240966950696834411196829708253954794033528794103496150331162985169434518893450101244341672227408423210829444397526406008211363025507401645591458498643376106086875637496966152178174961028820463647323879214255117062094660520917832677897111194458032764180519950295486393704625950514248254762456365263148950248506791697888946273198547655916600857357837471587899761768075208168287093477223874031963435873004719996102369613971548644394992135942468630504440601986700087981238207749653045356229185442977703679746621299039455172622763676453658686249431902280648081070286921832163978588154342201043966847045345948621529864569328442370086617844009459753118164211073349507854420309765402498533556445385260448348714566908537618886070408713718477357761531432577061453878306992177162496861359919715629825408864890886825429979343153681449338148326966857850908166533771035300258062468168482634031202285971173341622052819631247463183264397416380985826401536562852683210489761793260136237868280117296589152120747550065670514997251531912240236016463118820526950822119596954788355666912937254600459074363504774995547068187261215113577385978020813693070271382387221394431954356976723001530064901354180056560023110160188518703335547234743121475920811495876418178033879014568361462254492161005022706242522682988687635503442418398374001016081433283116627947841336117029290698992406451159851790901936082672570172252729641556594410873037988803105501577682360131142901311334549680835404170892429940583974620853062960337066426646494201864723858838527368443026808331710214120472436839220251553140826873058697517959901636709250523242936470611742066361078643720473286856874947392749311463402464615926845566922529486897563817311795382719156868870047395068036588757009334977243292415181815398337662154664678315163064336346917907160586730178182797669787020038752337347404835078181128013843676174659485786237186964569758911359672735480825257872115508860673618602546496505944333526361933208235141564802018383872584894014034777618412039730431940999581812867807495927612785720467893283656648961668017294682173529556066455300460598856867847074210619971855118165454090068688115349574348287706905576596922075347449833288240533443065736327311977458521178491291126063745175223354511937717640158591018151025784469228133821984440267129922145127918421230198697105264958133473866883671632693075586791047678737111215381901908311270064062007790974517162116493505493231135042959872183383780830629274568757199066018359495028255134653499628940242141703018242643737037947532484199638870781578535009736559043739857150790039315316040199245947342185370784206183420340072002160580797756007705958401378667882628468798652980414067617490062965788257096850524492363211919186605362435008754339721440364688253479247287771064582778511240887596138231254967536910591847905486290121700602568489076065394575744867948431472888021211312249859516029453915302482445777270253334931436876745579487030195341219726733431462302327395047396067048329141594180664496874738989036894692365735608191811310750841457092609256141256012208995156605085327987754975306050472897008079985994491124876338467537411993204652320696873672391175706939173453105017508679802582677625184219118614946818137931361458713945271097129235902766259289495920685896259584944725322796869453497669242371652185120090189671064386155673922636060317642764287451945046623228353095034398263891779588044548678254573129226174177374160469810017156767896508789201454846561360329832892797874413180763770918909863035625590444304741646526841930997622592332890763030979448205511440714775404369713156532413210734863982882583950522082815848980145467527598560071125247920720702942675877624713268705558960479142078125187252269192954533703723968150452889209214489389105361971026828582705443859648424870347128007457631199876269805934319524201305848969738808943626264167263903750171993577869905026283056767488117423200739975647547625017524533458808393275340477813682747820964532058333463592384163448264922732639869938556271756408224704645802275004354575694484284202144467703117633224894417810182598719274051688365432742744369549565847833108852379536636334776276224669996102679398219494956465603969302198932240241106452019538839272978895876496743418165187473484794582699165612112339422202255768594442482411776035801976290472129548205632450818233445124068425361495292881397029101626524254693768565019579321320660495912144229900019198808867416142750950507634030837121220491807910231786997290169381214831674400618762589304669061645617280059633551859576854165385029752179557719034516643189391730285489186645360135636195974800823252934954857303914615114732317251077844816969754844727875883943103668493962547729513350501107275227880906483866744777102885861884163858256127034320059672989764064184801235529831512367311759783739396075065650821166251352888679101687624718804304559612656772707995882209272887055070108894814261288281847574051868259895739901647019509664261480109228532894823616086997429476901661451063918531963427332784194528724335416180062232605141426022383782221547872203281815258570567256658746093635285912485768332275814258622490144023143406846335411969654243285725253200397461699481706507402119048793875536726792318546470945694191126466617867031905745726096258070154281673453944660460628377189494301262429250838070601066547160016505310572261048465384258918656033627057531842188169362187303015331040064718523985807846878229751409705351067454902183427301652139590298749438189659081233169012338520458164069449856391134471055568194248014531806262587745566256006992502058939797123771457057311845209502109717082733978864041884238361671710601669007449353574720503742264957715074076360608775252341787348686397518958967135053467913280922541860286779303483813259335854259703244572520208478371880750855435156969617161887219780161337452256133833157576456778978935554051801391565002282448702523756359348206330700405530322769239470937068112779258332488904040389469930568642207764976361399549970588830951438022954481389066539121499790070500671655355582283206956727255821881199757103988410758103856247139842573508276660592658665210281319504031374331999568879503896495125302193442807513584662161153495017498077129176587251405048812359154031434686097140138749080556820288017810595835541969823626566624541362662175401660563611905919184939538603955689955715270207026636096844764900408520764409145322073342418714000584072220601815880160300409671894684848867797400688566872931177733736120017293103910726425643822753568702720173204676578028716890309177112587379943756778097389572467704125308604988300198984150994672442616216555832232511158735386070598941597951167901712501476859196065305199738735294075448340906797826676569448247070981517903082353497779099180415368583552915745240356765508356411959958252305618650025912134666997392467864560767430855355477184669248373689406321278466610506275519269408896118788113295407972965625169420707910612979605157653628599058679385196376546583240927945304246424756670782123941770224692014519192330621280371825237698496842527405863585282636168187467032485388980363346332424521919871136014075019432383147730906543919127217409283737715911829506638839851579119804491135675352251890574818008436058329789156937148933547487833429342789474067085565512508759431579164138625122802153628903914867029817782505047589585564421658574605251343919678950248297196229503075636209884493454410877344573888161567233198819997475038413861338828386200529864809605369835309343968420899029254649933094799467307538779693046813464312204716014378751629044740676015017417627325691456636584095153942823227505873713806086011349885517505699163432353202689835375585038189329190993946545344095387971388460203101570587947970590479291527407113507866617042592125314088674465218362163858489015115669049033171919754691322148086274803077060592172821142174314166192728964313312228501412893138785550790771072652453663684648707221828770565193179891329289605058340582173817480773521868256580459844806552199281928883536184614556098165562350180038388705911507036569863987631351365852193256408000570059629148340705557748528795446846009250019962400988595391101818678305536505333395993202743533625041654703585221215347410847071573280695651327653153857784226287039197759552381775370887915391065895327034465641806416554135905243287161421002924683285969096880661200126013640224989129760621224231393434419626859528256903896083017792515381849232079867201390167739246761563855260866874966320582396064273566733943120148482436097770513004897935063176368591063516969658856901587491913782012610157756434336572573123137913325733865518102736273790768304339873464309229916146995511458914304518314113753427050432630048011446913177608666344379391532006422621146610835704515111444977941312375514040574413634486267988924877727861881340595520171633978811029251776415286454020055575005510961478363569399807516113084782513954983892773219650766300708309581777600969058161306207690395701103780256647691810752871373048224861594334356475262949994664675143724096660514814512606159980260325197261976682981971664453303898152415769958376721569598195984502882013426841179085426759368873049135722264597724754993818713871742121733901505100167824835679030116628971427760960997355639274726364518168439416779201623801193301683241005200566007816219510941709544329001300413821694896399800911103175755733906356424247543107682348805129611390901117533746456713990023684551922893624898001202297324552277376482550653375325034222618433712552734089689327411457598158409239756708416068173523140412573472139414680726799664995705284565698988966848066171599361451077967252183249977852852014851308301722660792479832898869610682334564626727971536896022976339246546556639151027283095730753056185653746729501322857841130613684244568486923639329900651671200248693918762624254231720526149915069945353749568352785020578111849942173082644150972865413789612445604796797712775870067444706782581867847239401153658294859387876315695941108474929958697903559352034022300851817882501614675644362994820081907344676974964424733070816670535308768361528681479066292142276925397894585858623132894613159748180657085825149599265836067443115314429247965596453265454646945605353500771487217532736907451535910073697470998474907994433548552143820518961805189159730471435208881263149121096870359847590750652097217204570817374870534299210000235718040424488334536533966350447647303119834008576722481209779249986155193927816090567565568600530338036635572169418226530017521798151554953397509581707167522712845673538037535031800951379951610848328247114789206537746582562481268880333169201986418028558986434157195594546335554966280200918326638478029255844682844612337797574712673718846735130768659693279882631997176300880006706893616596400165712457304255933984222891434190397462653578606754339568877781294846118029711936240316981648830042517990633517346659213442238807921925587581853277458125895564372019922323594191008941137708390346105048551119140964687517753290533028737887169895708303820569739185159401711060849917287024208182402721970994828507458226401582967355553208097128767630243758685016729364678591902708101445076744893738790667827439128014270065817875331538251203499733321761861186999547958687006439584968263970152081906267148330145595181229648982762862443454021506603824993392597211230548302350220336923580426096848582023598909209735479051609922327197118504516261642175794412012579095601943739927642210173639826580161854351486998893296787916679900912556257876965434545348184613851492742858058941850495034237652370729289096865319477954613933794867938650484746107462028170799730553758656754560472073226248633142662793503808656817986293836784513808139388483045658848710117224754847453362507049961576387015056860807360348886133157969156453554199652297090277506123760398943662518815621159122549909038251671014040024893555325943453135877530290713448646395031620187711828722397525126726680526228216577832167387076949249448483145566955645880894522425020052241583401483744430486589905617176248195641873033993977482067325055257139187260752723231085266776872227646025070713233137610448356202395681679525365498481315902652519801985841383935027040502834123600519218172921804169683893413779082322972984445672870658459873292044286069278411630582016138214119730922874940567816836026585423935002976552934266181468879849385156338450089897290145663963180153889580515747934673265642981444365419179768115694399109847487146408294868386619711535498125202370738224791251860058348328099591359425222645912751866132161337284000209272995830838728502529715905825319219988629002305112734744058456873467271835796252715012859002177907650476042380399504303411725010095775183069534934814125233278319259784521606486266136735245034677765272610814192803379760180460623011754507722641702404937344714633246202482162850406064944566476364541187086195267788430883031052796566700242268375182524232969444840248481590889514283721409597481289494494559968136442018782730916032174540078360990505074913818039616123759496177085655952025375713000158173359778043689293700349990995357305406053903336700252624799063079754901286958205376015868561287249378381821585522924059472306693452595439689394422013608904830030834425868994385608619432130889295224206742013806625528515060993244279782855684731448573190856029462723976700302651366181806574484558654406948122555844040182125570919515985265269089115301660735690626239486986253932545526032186595669061305144390463665572256789082606872524537755787136913060557593802005279705453953913097691671927450458694736145583789856077246912770131994321287358213298691493322453337521981837534504345932729648997424191393071717176938795045972596794554651455886875035085749356598649333183597395314486902331841365048122019012955156103214011325967357167720729452590219480086783793295284371689014657099377294258717782205085362631295593360025363176046685054890988229619675396544218985112713699749458268755165529105978181077300019500524203874421134629273045377398796374371148699661083575877386259436594248957710568177202358931604094113397892329397309171657928696399443563304125114855989317574248222982444070852093558970826527028838994867685839991757567329962881849193583309670873746956362377510066955709458565986297703820730440360617614366044468297450742651038924079143349545760078029038222983510727823082692284718326881174127115454136838000736022240371313150750770984620692485929942541556203044193435637549908075056876539097200689184423545386119066576245331358154988727428073244450013410579350312993986030574391206556149238734600626630574600343616530470030864136424459264182007923454252108670634746613493495302858958873167325093467504086722135073935357447694809869421838905822758310364998185851018905114007137479439502445055748494864652700054531526732088302854888577666198561099509629312529581123100227579859196916181436710426710136686305325255195270814963984275436638226334275537620757528337107281521578479439790329707734739854534686009536563681132175714194384662410251780787609550586145343069065593238297414946277052024172614330905723266011288467438542359480993231991856693661503653286983660660045388015375294598022357732293550169449444384784391569280721366654948559202451720160329411512287529126775070877597865026507705282451821300894594342184628218812758942107995299519206093597030235177600992410593159271157958218795604586604564144389045547070468614261700332036569687676517547950032641218750988019783711801439347070822142738110222060369026687830001217429969575733097785415686513767735060266569504851337749466943992532794298778329865119739719918410663800713988283596592401155913810730544942942409966216493167059864447857169236161628622229856902305234695743788362776460582771481277243539376506903635947438023133223589339177099310169420588706282747883526871192613480170207958842255833984003439501057663738952935457415925576437465274978512200846698777454081046561904110977876902368578648994857353280913995655640107410032750590959083616632141679187380535574368372534265285442246578010095991966889542650578476244642249035840131821929363114906815208780580829770849942874829486372886736846439843848843121773279486523461779190288704202428855094321358839377131180776920787960808359877482791051847337417652959710353798271553346866426027992433745271112952724694727859911677333664696873069608358453430894897903128574118150638737653048423564454192676679320518475179790759675135758823565740630227637603951528505296011816429831443003838949853244282000277447846755051498405366009396394367707377388777536058561996738477748117766755025022311229427506202332040511707851946956409649191345370724243244763967432833512907325890538417010668019363104002994507149717703911074595718627721331038778820088323863132878502629445052305788528729793027363610540115094070408706188441757160578727021329274686802641519817309548608273017387399486169357972424551771040240495111147722812782493496688663952356968062135291129786375981773730173711509016925381608140807165227578932679881752315826013953456696149347943582563287411566404295592037676594731505440174803399720722694912575462532304884702764697670301679851378688944914939325322128289697732348952342560444371472646064908954458812865326768716812000405571931173731626500498061233187260216992216440945273240497170722723562436173902807277671941877957690498174641655782993344159069298155781815297678686184642528234881934520491500712136282414270350404151454216868927208777655149873774552014749297661422982311126676030635049401832800622142645314231310301929760486255514028780010898483172639493956422510170887897407256579515268025318717589363922945209946203329180006492705178401670766146519560204553573627627461473567858776217608658934102707927367566635153848611419439814856991339002532922199597044201918776130740968129357847472817307256815122401488581402298288422564387866426657524048781273527525650548228749104110318399567718535247779828013637809268959051821070519469475589776781837684114469019192594003547844844404299505562545307848332377605755916058997243319131372654313823071268396586324672048759147616470255010577033337885916861439751653022567329686451038582910785378510946316632645284507939011524334512241248891666079564513011114708578649733794474157780003932043427451117737016885883240912928314622037236621769488036699014316021281448895671130246306176750724288940868817771844159522110114401964301435955196909838926497711602604119809495852604679228861388836060412766129021040818969803072355783234265128106217699491935654500234174507361929423105785342754959559282188573298885215027553905787646242904584128271964659267625797348986015869821373715138121741313542932113445734801670872701150268992388861245956646078655852895751594196449118758738055646739168660068855246274209579029246335417492184129202365743932683320516467162078371957265964726828695142065828191986614214328214028454723753991321648714859180720999305825098076362077818959272545046104015454848286284617433848236379299619485646662244341207747743075876568987522910386347331627148714914503753535624454357082617860428876506277974488071895176673343630647051024273129240049526849703133680099978445294849200629017147496627836068128112523387556401924147139243910706851552738663369671710312126259172719234774263314816801125174324988067851236744010640043224659684255073083910122328025291094724527959192882370736701875503712640073893823363709206084090953006293072686286955625915738866505078146268724869871827763036587740148630933362520930752064153547441941284283610727467740594187416364739469761671300425063941531103408983182551821973277060439890948703363608526919785164364991153944252801689528199753905308704853866638345244722365739128098311240333266528661929426755827525670599860723969184589819299796856656677674659416537142430485448325381668340711400973217024503118653554277227616009379261776688930742943435109788890841158707967736048657095823225281251145926935252019340753604557961156863928087013459675686016066857843176802207826789477809369681935114835416521810488531908718726315146313595605311874289531353248161423919302478878493166658880330835644365655212952057924447421618818622102095244178212272947721185294543569920054127663027629525513621461941312157094750862826450924245304727745966585073342931258185766081428640653311443030456771914011222681827259228370947072967235014406185612586509755659882899135437357252378856605648158308948236716462867668659693828013230135730145461058768842923728708293768938223976161804556960554267505678572835897692577326671471364091458410060197479538745298565838964027809849245172868754133500095404566085778515071063224691536110806115918174987178938052483284217852181654616896398592027794489699573458829460465184685614716680564100304991535789589644195600529432006544017860708976443926768739097357420235517498204892973332602293184888957247452397179832430311094462949366469431000738619692488075033186408509423745052082682551560403933925975373822699502888974617913723501799541369097935791717614271827382081498718550132175356679716317506549786796597175190429517856046480619607185464427550229313627597700568405848735462934357952414131902654646970688825714595573239060815807404688711697699647036336388607272933825454653129003863316399670734426939424944031931569582771365725370574149224698839011455251619564893564589891476891724596756980039085044470102738212264487060770462528916773717368147077287601471666897853192296771202496604408616133953104849354286981224002808841842936957748165011467885715770347918602434808389322494850326324077228305060107417174033204893057644652620446274756609567270778507913337169424039776873820840836193448250138409230170513885697856696281509833390197921823807492098958273293395375388841897329201148208607843302075647274663227786043808351220804367806925978786923728887868810587945985884607879671966224139929439096278527528243853497171584094169727241786684887288790423258655694806571820703778609730633437968355061404193930848199654537386587023371131035290885164606094192662705370738880213320881409792951490661700276946060363470113901180333163812310238294208988912827914629904825044109529022155958656547192639459209757636143713354244766347558138525523677574156721702418322493036101483923006284800180508327281590219327981348281813775718963793618112934835782345041725615850104717251659126711757095169588574665182536328253031568722803795491735250260191141538292983169499916824844338049349988827915066514671122375986534344043149605477013732477902902481818171637511909264130657718417736290707052431611371875830869493951309216098508030809932926643062826748242350300033542352104365673708248861195918086095930477484691168195240735598302818417258151359493849992441874520111921329743669209758689802920613870563182488623675494403926730292079787300046334012369898362123716500988060452712592169437532465297025859036879584846257902289087031724697531247293400952745961832550967720264114379836368403854266582169236169809201200396193768383385244872571613657709410073548015625822772293675399589586042640776590646577302498245583744315511844428592134206863919079823716798826113938393218599838902942199458559502180403906035763692428990784119869374835026452421028186325707281005382719725190851572746412345342574995854766008489730343796441211771940415881754646112199874739173886891647021700479215777589241341336633363095187737079185785534582659629776661770335287781610669382830135515590907338069644509542314869977712101846721930327967579192212646356338542764814739013659154600653754557507226370529367762497587980807607720059491361549716943632928039247324672348719645000274628794363438050165869960627683573061344689900799639103469976557430074433050058681198216301505403477737472670162549538101852368274795072170043478779691124332937022018058513011454585060187703182910939885606454039317712092009964414539244726671749079262609864730180964380310886914614647391398903370749714902440424908111978198222365387638458261987355277231290121210157599771666376176839716779485370770761483258523390386520085856242726659684385181717199462262490625363434380830871992120998932933222252808139957098829419080897541598945697925249339287749037661405930852634195264804727929360024586799294261742814966300780383005144107162361861255215261121440361857891300570172345728944425750938957745434064496645077739447579908328033444349817234551040554458617937689426824892758485815161464911419416894647691766962874106756407807232975438735706771174912774427585831507845272952079304834444749267678193920719929719518788682339125255015963985713648340884602036438947638827720631106780740877077024327343274717216472076122584032472705174158830389056044205323665782884388581443228817156222043960745310546664700905975315478973949294537705659930251943004665541551622368020590080264527067098207910089675893939653709044791504086344543796319139465990240259669168115735550225480620926722255459392836171466267786635768782033842943706018850148400001650193392772029529396001447907751586438291534667629972797056916930420914419507384760139458841076921867404359856496707600367152480151445691604019983929556798062762214060745141568364268693428606984003164270640070943814725343299413536482382772143193129634431928470923264766298011108676195613502396906784964501055498688087783993965628784789222310438337520559406191713557878400589477576752078515068212417051351203970719773628176597862891356744085837651597654681302322635649314606870573287837557512335475871107231686440539597912986473986770791468961119821903192433351357347952141991693782808241276878205003499325835541092292750322099731693807187023785833215762639879900973023783433137591446286787062322269236112651575497067153588055782960571940142372958270043233439344327486364166663447108676929063467110252272140473767682742899860200357258925680721241331040970052500889178423161245450375524706805452273072874001502703893816770548052333825523058055218870432549131092453575785745559384774284390163801541563040289447624650135752500179530649121228764868575692276781678268723151871349779359727827344628088254060642770828773842544839512810055808204537304530912509575049741594488683951553949095207937122268395947439001111652372505916488152643075491256043452649289297263111399994954318356474079714770975587142339764294092656306200709573185969237133414192389655355386726134228810140425983542340729592589602222929852989751952604127256257378678693781600888745022633957904432493378232535486349193659590988763260200548214302721757325875114357438116400530405649911531641093164618005295207865839858757288451115218988627602749682612107839052800659833324115435954473829454426405839263229888667071026726209193470843744750673150719871417764847333224172170501603059582333541691381405650426390517354324519533806311578844830999074726678197018414123112811950396003049034947526464209605791097085080777506128669819946325785820188576484670564298958774299527152641470454936627119174487989880154241236259370443130482454294523713229262577062855725262300410440660146036982594624379687632007037913635137379574459979319303119639079555829254533510531805863199352577592080166430591263130988591881773355525391811593149740097194581573902065761266831355531404716413065224953601216588378754012840893033583692553992171557853069801273208788801873376569521751649216414248210578625777988211447940980065412204296739938158313749252202411064260988110114732497918632565967362387544962538396091623484776965710861548418794575546929943763688805603814118114825120054569545204915981267997476968211278342018289020369713582535893534854963893413287300027148203442980130689477333829794079782823778540312825158575391781878982678349258056070456852367321350535821697775764694889965114679033921527753952524647888593449229873656299338604115720560012680954692493463252588610021379347104375445695155501526360638746680776884232624892987165306282694296972865366830105468285590525061627540134463959676953022755154667744104597308764793829874831835680281520191369954469301216264130736610785022754666207729045144058255029735120123567461135119370534525223902152060161551183482596600003373160405322028112475264199516969755917511822099279536468235225550207423456499109246211223416735595671533504782555655640605044348924122247989914728513036186160003603121160247338948709516434365157927032914331092262202256046687917387377799687156765622501491200123836122239085597500995383494657276192260056789678103567275421250976021030398699823961900594977872453637846554185020079849230758985122334785047388725578360543393851987098821427779826857274626271979545611665249577124102302988663175523273693491615436379000487508828941058998662412318542928825695209897370588716069566826019030060309613362928750931358317304519025578841987539971825237232045584718452869615909580975642506960526064184216011894341178101062310772498169338030054190096530742174289392627899515814856743351287060777593168884702034889187244819813597431630633071998985804688406891943431539815673873916682620819659351743318782936771993433950336345468585582953977369876144468497905587566267757996901659483362976993466132209630158152915221355619376555283492381854852319197972762762040907488277736392848316085695425234166536687038465873581422931500831595191773922300072733259340844037423416485201152093350734832440180131146487870417020106596411897858704436153949531754823743437604162050049278720162260716447704865046695850544880279038403914209366819614035563749304170232598338102357629730781863464591075365270646382492733625829577595646162355798229637805102001568259485597918426794018075347263564102131270230023888210291398460313072777851808389878356970322490512874769009578944207855503333376699451074550745612495139640188059110687428386910550969741168200551677911515943405934282892617588837282664209399579066335384863510381927582471849065392613468163762333512834882600444829474263227860067595895020413358635409684901362574373303681017881405842089183313601839322821613069298702725145296949764328180631897356870342484704591895195203542012305440638345958833022966042770239583316573476823128452110986858166596956327662827053250047258210004810384791074246519111112846368084287083405940056018772254871970991425235831931398180853462312046089113167477073227618097347658080138618764738972329936953791236105897527168939330224868641517302242685641732238898132924704960446809164969741818289089885621551711744722276777324945290921165763070728113767383448373655632238985269188747697278246031696307485431209597189606713501486141919058426923910379570706125309824232598055101931937098353798258387459914523381504102266482066368214606456110428301559960361097436154387471721536165766436307988924428100245032205776145173479467849993807153292120451046909733162860875028143163490061946760875834960403926909091507064673404623298747962150078008990547498178600084675764432030690192662042585534456085470575754405256650184696830821917831450894838210180204406964155405825424239850357586852478298436490626726475653504213598369863154545846241694317021207413775390132177742696862565198683663267543931852660076902394369697772901435317130166659115528123918151128136843814745303781578444039719880047811523752543332923646421303058828187970726054809144335410493063844288085058868931157193097003092398657769469844788136821301994953228646466430969311391924537177401144394934833327300742627028535017821814059823907242203652003028814174965890014638378324386578553107467845390810662536408494691202715494863164328904780969806995772401212751983017670000244296715122093548929600337947020267660621047437054549369659142919747613897371348227975825627844909933469041401662457136161456325980023893625020707233420609401136353270458929376863106685318734519026277364239924796587741465361348254002825397455272573001808604006154575081178326054006735210296640190171787691639606265544653709378065000580056416085045099823555933262911753599406805163865528812064562683905930328231570415410321230363206489418406015954971410331127842011698270879569253294961170747766656542221057884063957598587608098001844356132914477218632193822713341475113584504262442257726954927885159019320282409770907915465544028899351853927067438149528676618210313860534535415885182552287038056432893308886605419213477716371407295444686378366261962646671019204785811629046318206603375510656598208493714853846129142411922368265095569934911582835956618300049833589715175713522668884948867190507541087096215631264185970571161183991635554645562005516214370579347504023949153622684228859294675699816811058464313912368448836123748835069302283971523522299281069964998338201926522694928449613184490360195960852684970809907508566525250319280853343218526513602803963370734454080784030139200010748583243839456907943243265899510478298411733145980804612936995744280458332393343583347799837827710073984125007758797707334069829132283486742385874985923785034918929964931426188806077662686083235178626594731890108495837247604221778947151412187245452348517470931645890900294320353711265743433169041575564931759673397063194939721157947627457288930371754360072647512642188464662864203721474496708265072816943348976261900346840743537229031478095395765408326950062871620160423707433476655762562774065072955831441736669940672252022038068312422765080727940320973817576013908595986922310399800128209355832576830040234517896306695176153027190758740150775536057673119522939660180406019242293160924865601316997464970826288297491722999383374337323580213228275941294016212740639667387202045874305090175328229612450255606727864635349610632431586106623374020569940146323752268782808232708154530547551612019017433988034459145608398861205570402108605717478164207378881005779442492933445204766829605008294779178616035740838984768109994103116049542721438520225420583668580323927040752793967010902283473192050561707054679204262325739655323857300571771110498032838583832860384657176593946671588412307702866751795301796750154388635811176950514252808328340296743192695535931317779376914679938229019821860736770157308895285124992770016332638456448737515743888644215378959737568614894587108449170055952932997063510272488210150257763256991715057308903780678601771094018206336443605453065081389153452593609334728545972911138017980288766119486699996887792841737445506421204545302746603542910166718633581205149834630318844765683124807258018329654366474772109328218482943416902381581369578616004000404990870628127088383683105728648872517529461775918939880066870328260940268844476242583418225003019184259508624892184654882974969393043321968461082456443725568241645637646234847124533213482354458534202084372206085019567641942354772662201645467594175233762785759016891314899693156698246151648433580234847211762526636775508986900553905097659504191277900117269093604305937872147412378164173628858400030401691180849414059581019629822352687734553381045922745607112018110633533066758121602716146249986010701797685086890860777352901463028833983562710896617695651423435452298470874459453482413693949672735919495385297892156355275831032838120408923966811512946344592150228705409976997735986278234309554137055652064368501885544038212186824501967214275002353211270507501126327511014187185530312055342353649211059849589203295623021925790794644754415457636554418318335930187056265437905841952129645178956064076297219548650197105166356527552560131170585089717860441393476983927656056746976019000071867997659487617032882363014016134773663155346813511316648888319543749155678852689204088077054828234811171894852374880562933511523308084126534500086613554842395499723390615553193712736014112917159823993699641627007555492643547352958624661710505639404974923256551306015447760588226543403746686154600911369003474313897256691234663357900803119652687480643677143353546903180361408617888690125651921062800029414501188849193794423626767592382293615124203255505088206551796663661597445500471632954259930721065061813439339267807597551495709145752358365176635263424233498632554532650248821326705091219820045131221670258829137884061737775769962577284268061909156012884330227064891124476805311785343811314190620848485727254569701042339037683194949412375464224791415888156950104959053168780015744185687966842285524467821142681305936609483546171772972584915653249525457837544829345063732511959014271930545732757391024256364268149787935225253590483996413444117562493596804921800247719311244552457754862631299621182022144133887178306867458263857211881770980699117469339764444788825520559787331353149722128431891709488471849178985004855348189956487892415893296792574603094224593171221185731706007362261080308701881728470735756478617623580578392669435346477980310226593286543247449640823413423854381440195436282453977924202571894387703422024324747748401001196029949407315819571481500865458956260721424864145112179036418480575083449432781226832317510563046508524212894024722784430003695092204468169110556928417621592902533599113185407355674156899524848516772685042791808024807981572457737210124827518592347928843578226841704495933364103798820621704987672758163919380320542645335198965597584934746419906883958614925061202468759705088086418149621368835848771282247321443599756007339960747620474787360876984914253444656658604426861710923428640965800804662913937237845899799175476239037600559821809290170131756066809966778271906273304900277261241679509881868809776429757783441972836562976792851828077760008797872991043879530135658145737700242753213881826533575134908931873541175604955250042631392172242962582830868169190098410289668867545781283424328700202040512742445338662693276343497628875178914723250629025085174959731527472984605032794104184823813169751733777512397914360923237527225469594518082397378489582810349423179787895162741687558517879476257961846116095459698721347010712147344050542577136056101788871503207993775116425596096661834938592414489237978150635450137784990189750745288858044233400723087123104843887680634247941931397554869874671104051795387355051128810257809306216756468676870186445821710167629255347579046331740467036302338306700825010121069657248467630537428831791745944847000004886395493508158167960057775603240527166328013245330987870248058738164573125648079698502254331175483016160627623711986567967016372977321683812473276584945445943104138728981874019702333086883183353708124097643306511629090076770008657452871539426631771091987009958571704613965922770250553782137880042525040306676924966353155967986868856034347655941683142715252024755175491207085699339560657308174844463380613380485868465282947979991362444876793018237728762948053257190916151946416860307373267498866616102101422258289099757476196850409966914417658967329926297653604270467841643664630786952749312230052011971614312451278391714353796998162468375528754006282817026977880711096109918214842207717124749725326528345132816079853858763387468935092944970371818172600964203668335716229787131748294131110049450406768991744625113832821563930304296668308783789416467892780010716720719933428278575133880722096437842061342493800561817251564385673349996282833085199978953383892199738430611380857953940949759231095582323292985102091009483342247394279188769704324124594284155336537774039934713819399521113594357276547118026434989133479299942031453972414928606191589648656974809113042084374221485668128906437203674873053902622935258277700146565381617379277397660300095411653984461132804762034984008519672723310815580782956206659430672173191806270047835405115515023363646378675839493642862422831505859065400282841975139516173955138409201999072451669096789151213181844011461651505128487973425936237278065907061803597688883512529972119637627587322643419367521397007505531852199064769885478561125648871399703581102593730791557586867499804295239801820842809578700908762941042422201241325797433237012978864855563143469891864322813875772628821177728084154575845763396836200640040106160714004372633563050279846318504279409426265689617069962781886546379374056828540732861937804895902293137488749433819789136885691604340428362473386602975456492657939598311949348169760518886836955752977286563842639477546415443624461159209819656048577490484269393206775406119567456525157517231188980068566493351495437234823254108165219846122219710567126335122944347405126990400824795704720172443026447375636879684288038908122861531562242640079905009565587072664855738314346073076897414519350072624944087851130105359972067555692431052760996263256331589754221151701647814487962659383011508211058561877695928865682456486515297173896738655692544875178254980759336938241170871567692378337763192141748481047560044042608602922504619620924530453957045373990297180130256520747585659033296953161684411128332216850257567469410993129454650932023996598126289737912793839062068899838120282461319259458539829749541961879158712299433860541638226303491133216027110951073046613145757319880393560609956604480370946331639245091031472512437550338609392906952491313854198025160149657596488502216760807207339906701469265981813199911918708924069373493134078454052253700707453461671815432121989964609197320142396799710008561592218948114125613402068598449971090113130606302500811937747401271154956865976760799238827266113656514340941645632287634183825050895376209361611769283155977267865243464827502946426347839718224496943968397232059646448782976989157583061720544115332179711324576340219290028466958694011366000063750735296577016198586135164617549887581846647709192001197186873034290677573674844291445184596523827527402987894372898097770232503194209332980776045127654981192400414475029318169198440458179114337590687026848553259876690837087900368397741036665506171119574774531974554277388057967082995595603191387690825896006689934615529534107498498140444823618593725951557590603021835998642591535450508147350575487551054989501622267252406913147708379898323966779134404571812275845137306150305959613975939091262620846976160397865446600231007759427064559197563337530005186915812364599677212772001398620865110477258603138214166097755057086932181565663159800908686258873244211773878556871538634041853603377454885731400532724904868352771391324214203120298211757270574329018515770785969018763514919191673523141286291458414616280965522626339250928721269899117072207385568761736298346407942501286802222178256692874484027177295657557405407263332939021473579941264587691183557765239234968637639079701353264572035099366323920064754594802344984840170046051770197214464430781443414112428410763561290803511571249479903032377657532134857838956394676406230505030102422299393590975202766798774660683384353844977046975508367740123917313874340446613872245049121824942692127261686128246295481461866320129014261268369481814580550432466216404166021825872942129483396527391437022763982851973731996789009817930110632561932586503251652073908135734113103560911725584018237597383662141475290358094712480518202909935992972625393206697824887085709768744332992742269055002945693246675474202199569393000352022085800192019925924740568291902591640078509603145507367187076879403276550454160099094709314607059327224319512623594361280786875856150094223732440089298193530807735551128697991094469449485826024387771635867160545632014620264032414384172529924079983797972887075000536473028809787415911116643024525991368769546659095824670162977721513856231861537597700836875926292849838798124280962981007488857002484022517654321496059064725506415163526786343024301103829981495558942681444665458414562500452632307382172461113415518329609386514210653094667582482057771901530324083376669340414369947219505847899257695378941271011833358553848736415198551692218242091349275900815327482807273653246470285156544023446493824092216851663201050538313399810559853567659233027469336574713371171875757889429962115590959331216767803211423680509299317817676919978251955344946545286777899075070128616020356382907173121291716824691730836245986271273870282969134065815742602818093603349337170284754742202220318457611078970771059383532853267430316760194519592065760685258980683951040228421462764822826637902484732664262918312134475657096960455228836901558364624649693598322195423743284208004103102238381325146204659719763172709080530521126060958430426765335427409995776265476077304621503407143724545331137753321257158270400540153977670522398244415967956408481257722354021346960115770224996117564112963933340501181129831579064709651717467020475086086217000791951818683940400786327646965039918353076217332189519183174028261066801243771684879702025894199879272932299675341284411824638351208522702650356551657352493482512477877579437368905519059198896000058866519414075566680004293246548246272105700625933301948717303452300124437658965019458760222919288788741747284954201385485702292476771850517303783101697021829228322310826648027789605403925137569028376169155822800003234506690094104175237071557475796734545874348961643167925848963816197812029001642915974397007485865784953902755682011022102965808420728993415585871067854168001240482051814488945806019261150075935953359525151166180257739222021029184385690589678106445166954793921875296720371279303737587484951482185158269847407316845917166974087617420251555208216756219321741472886981266081449786930268731969707050818637664150422638630477691984321691715196681303179932373186310809592582449339426740304044401994118602451757195171022671676545776603434402475672076876188177515184914937458625901076480859630726358037397869354739123241946930704989573216654624185977815649262808756306122958356113454885281189267791470473058329679907073922120510267989110337764497979945644103979179687904236801217439065584769855470015651735857637957252574379175298109520989933986037062091801777163852542556860496371742721456729525096419969582835492465139065287177680538997737907151789048385545542697092762208385532634755518289942714520219103724249790315137996541244940268303054211021687627869335038967031716297135280083785745273924086720635139386824511871333875805099747008266400952857217906386775937193632467114087930912515350833847786195205093499896859829612432828981928966430562309028588393188718027929705247180948417893299608443331089503296093280235524435826677048158715954541809163860874386193529524521156976406936625870236514071348595889563849270217990461913514735372650080051022196560130249082149029998813722310525552694177351154752826157707238403267733648929589733758351363748009696530228153558630336658109708581063740149419703491433764611894680731655708137858399622328856103218766675131042353478902692985654635899097010261222144784685297208794762382521536192966656806696952981724615796477002786701326468315300303173172992475926581568215028462614467696220000497970538077326091580730311423569968844127144998500425523238838027675836902213715185169648777015131945854991291792122824702962672032512347480508299712555670905379447763184359428487500631067279116057306585551080536629785335971541473247875753973916272156564070993173096441723567421280554950899610130555748661343611250573631883732629001257967453515695854061280573614679936987018925249114318452719131676987352010873280203499115448126038814867669936929564432350771764831762538428347539902090568076136878928769971929600469849874222808658416638790454940174636422467376784514317643172198501645971444973492072949041614026650523282020238051459603456611028937581825328900646245769875481266422689160815474979611466289954571228354334710141792986924553541842929710269843380682309671236422545653571508691920022474073366057750585599158689246461325088926224687538273906737540069804104386463585524798051268704469722111639796012751499575358287903392115553724389312608721556715776634074808609349462116039320937325338800173870384384746179329023331109119799298816364272895495817821238870850082103699867686235059701358026389713197871512489508875954454655374130046083868186822261761187012367468884621402241286119340921130101848975399078075545291572115533795797593831294720656924253717043682136571266020973645880479997317840881665025500393114286882211653732940746077865006161488755352304047780899923898555185572815218044552069107953572907345578308011916247253231051470787891831743609245621575569854659556767650352050738203274677198779566794749396367060321145957829221675920401055404178172637577879492948016709695977694860012985613461942096454800259112677238801792184785541277200048843642996237713309563184902726627100451425380648280606561453275368219811303072900309763097089160905007847713060766526442959166346601129766657548743681634999731043007298431850523137255877091828477134872135120173861909386168661387422380936074655436795356454616328866840930098594278596390196230141663306425258979710099851197329516008833303792244852881772939772626498774133567430073268476622286773807650244301722560171563962541136457589453909485134408951787783491640086416655271718268704945519193556884610192964242833512590861967646833257503586664514991516027471144686425734711484138352243639960712344605200915340936668196198183361642926620190655288850444660720173362918490417030336434964364506653560224014523389344122309979622143327921685944026856128924649697044247539158836482139248384214743934342229267930408350483902878631907904709621363115396408154032378489372260115157403064869661842279106672091558248990817491477741153602422395699995669583757777180220220842085085314676874312589415668755902157321190861969041795786667619720360830605758262327578980212702022278298445949481981794619568451153173082496783375930779070900298865280139808458763679055705297786016588209202796199444429857165952557640969848266306377705955801451104462844107065692018233580609885320385734955937976528057210662298972253079023227964230556350043100907528437364866306239431457359689828633155198265329487842932365478859774225907718519077110654610238831747450108262613849249940067639430881479873274193253469180316317964006635250378428960949220868866171305385831916505138841004903127588431408353284151441063611237551189527711212025659654586343532757161872417061219628187870828718653097605173262857831789241792753082871096808029523385748132367152138277468208451623413641852246498653436662058283510381848084545247826945252592882320135516489305677820966638050047135169472615061077852468631502830824738014895761031916959025480185153213462783395066060902129413517942289113953571865259108743528118429024678689988094625991062476490817626789504569816938228600467090762127582836888913012795733427417733462000300706727951689451531224088883683871138602442216419053237189648319613822212459277656856072742021277235277644393774881418459729458433405469582546881099562401329832512829503357311444667162996221479151961124505087781479558953540873550996102983167344965386989033714826305715324182997368721902369373082584068783524133838213016730407108745172539759808812521860276488638783639452096137804560510058766539995020094283745039805164558518251287941874106835086340763017198516593209136408912514403925194769442072781622387997550360118804955164648185983363060476277541901368640063595866208964572500385815983408686110622083293668675545300094555456975332963116485801624834975252416931678712900333427174802192016664965895190310014743396694100121380598512477297485748892991625596219283636652407015378402374708903106675612382383819762422619505429792560275709419649293349424400478509481152971913390338133584483477397428950877957128214403388119478909728730776924393125239986032537783585019380426086807103289165156182846031105900971846969032373939338483767948177423386430270932170275740238976186024456898907153453770244924409916317736685497146323417457174640373052063955275207609870092440458506669129246611221440417855441141503835830170452718468853672408776063464063824560104129314787338867360005860533102933273220758498080597768523191907191317705686038585750356321883503909020036122932196791014558378266739706809290974588655726102593966539380089810425781903627913569509694905069630329496557189762707491071437122952799487266769215217435606126444608332259021754892050256031633177992350044456538868446597567499210063522285052319848021645157741718468359241178343599504009207461268412084462691861979680365700966971920713316605420316094954958407339748044660402139799124966406082885052958657222068466173973155133230048204485896928907736024953145510180216085469534667696088915142570825864035943649065405482496269652053676591237749745724931967393900733075574655588918872282999299704542676151895895078939193165544852274898499139869330181477999402954797418553575530473720729566778985223617079964328975992340273697776355934791795511663820050278209981018940958312709029795855718482115901871693470840123937862582815111314187966531137170403765753534345628531533919648451915561384960601299721257597157965911607543882067482795179608859006749948225320402997901285885586565307172969855799766249003799305721923546537348280011598669240877094166702557966956592953362528186537391621534776245251021647195348921293096119024600992566224060680782771914845230203414606559729124118152329231250174745257830959371354958955022029520722655929060970208603495193249229560412316211684455501192823923243679182248246025851051674915642639244838512178164423772839143895557118200938616700594476745936970929843342526569356700024868473325980365618851599376053441805111900334045784384439988144351866310161326814626346891866788619164688543935665195263434544314619698828528004200227423867194861125956363423243784247499109457585155497391632214721271209264143767294196099473158044369044725759315777567272687185278272698947938749780262044189522521277238387559418903777063295418532539265422874087386827946238936672251379458651472050850001674820336567253670235975608120774095616147244801350841138998831536536065184917977080832855114128152759551524844385332939094518241901228328559629193995468611597685208297677562616423485277744808864749522098326720265324285353114286681316613407253436396390814900391748771295983974719567020905250887493124145147119600565161019110129581003625863371825793208090911677722673039274116535707465258006375412098537336498892108917582058204135376271773461670072070211811367490241230665447475656147558322445254417475090063417435590414656322331410567451945571796697484481314964455467980087628351703061640227039447452312990351251521903541723154314138944879572628090908017424712465158130177310113563916589738086144881560427008965060758191054777064054765470093303627224578575844608787494919898878003981380867478841368449603769136988523131308105330761212037692896160021001313430898178765796150061022833596495055093668748251688492765615223451563225990515436406556055181523387707053120807176325974610267706950193358383980560627197070012219904300267800678322705811467679400928501972864853827284311211283277878675094745620200781344458635865844816211444714586691486431582404372732721279342494822579004233453095753472620008774933285300816342889318715826791853900690055280093748774357919240350838876455181650332857923757670318373287522827051527371014868760763972671627534957216035334636825397899167909040220113802154638188661583387847140759601686309582154846075724051493025374247093663396884936559753264071628273739351881818810013959292704372550206540471591410357992440204723230162341330770761411154268743636041906887169971904919314595937101716863950757540796586103972798361868618270524399638445387626162790281462425508013252457125631484286596373753207436888025368867120627336193236019024596676349841067527000225735355608239075622829901554569059654174060436184742787051871387290630317138730119692580968492904896135732998755351793258577805395404593318416645316589914802275515309619416575004408696560584077678179901697078292339957324972293188558414763321089374931423064748052775414099369508082430445049217680521774845221301058607746414302360341864373836214111208603874747283545791770229071587837856317096169021438780314215204505333277293859366974599833434403301511686784547412505851199548020364079257626370674402938023511537921664096402663116793395270426525485500416385289690749300288129548014093284725766827040622535384826079380986906146636034016536420796128396364250228059972477293957338783835321012055160961745239150091396549243184908903519941577248505061386860703839544574607265488412146537225056306888441381317839990745105497373480624088185991486053508543214598389627754940584947564590592567622287150635054563874524842560673537195714036404466225646356517229621063677865907538015686243336838571444511179916688750347978144448645504236993080041817116622911002414070040650741881677107659670406236260626383210321762045724797377941038822601505791152590903745645045966140458273730436658273107796601259956469910340147686848202541250446814624366941985761557467942737998501330018387087857770929259662301768878312075906672200361171621315624459336105634474944485407016397021793903051266825044639174445227348066182361158000338845674634442459156725727839214909033129629922195273247754217732972986709640115327681803103684264844893897573246880017649052929023062825253078171863761839602399650851528021151388652121194167031479835169146213309973480879163691256644290438308252309417347943463620359424151800453296140661179377046044688350339968786384778506837783464334479282406905511877598169436300567774816895408132364884823640466537600835894310611702326717304420615924372168054847289543728780064220192758112606655110243872648258863102716541154399999323006902587668669792963227466407265855190262939589550514378230348353826169788025598616605245917518060051287275384957489099370443218913842160824193833621913954254200832332235177786324116179233445859813242631338581750811422421262193597766583082180911642478500405844368847339262598638686498751483421689217273754594879827502018710985906278063835777586857266134705269974551378377270538849002056200640540280211452665631711298169357519503478976903395194344835209928551672710444035509851222818743093493433865273840730696424877543389264930650476593988395790291193747555600091453551507691744859288240755913532489614862138142059817729720520385849824259146873341626536282238603522342109979041446973134387291695151590490747936948347036852000384308748504723056354200428733974640479715258749824600078096409583366114667478416962802750408385426880960765611859219930241104221821741460060877146148683187461331165036552454510065726507089409895769993428789197579115192176126232892990465821420589981324063083979320013492924426038773038981799646607354142774735988446723159794807695620008065130910884059179538120110637670919801724238715099257667044939091359873956989563740767362056645548467639212988943041964278283673446363616720134269066259634079831362643917003441817530719321276857866966114797364452958688859056915665156779963024052430937323091942855272369805848028647196802346576598830586887850441957269960743573139726414198470231516062513816619182740102356227604308804534791249279361534006727130937676976235087268116034153662685073670955557823132584771111597018930880948065331099588160020137907545973531447807548448871009274773267735663878700198180342151962270558795688103238429663137217021441039550964484899783800772577230916353350254454119616359943200489828770682405760248368719242254871731946127132590722369008712165260918266394072214708129696172737926885199336190366174716932918367901480386960139358636195588694613062846176514115708981831631288252194951197588630851305687052560504955099970639624484687893566666885138435442143094953597721894813584976933151761610187568192630351134199755386607568390512205959249431789641305530983288336138393848999287228264730501321429206947430807720174281225358522908398755364929550141514928590216548262931468739187054081233387257430935296362114368989735798332142860783897285655731009466850820613185767567569125449247206249350470715449031688670693693837884980062257194251240665411326543059179674695811993503019631397310546189080272777199701630983776294194806168722661827662605565096786825037943274660853546697076020602633707521849082826935557190038069034848613086335069496710254927147192569774529143726445498331088224929261783397485275254263662042097569072189322192588985338439950785351423887358492179268400084601924192846205523005818757666290257800304631463437918444034294415022194561487976906139116701360015320847299006178809810005158088590462087561974433614422436584971924088490142984465111173275762859786721076706519529200641837889738242737457707621250523673377408495851736150529725936082917500889514616152371213982024132496246506960748091267094977556239006962340983703354035284434368966806737687730262060686393033874343934986848156862267103797173057025390455546244286898333374640396888418563693700651555148792690737531062807482711984044039674778288818943115547163550153826508381097572033891812810800909906774067785085458354226628240073323905846019182352435311438310782192388831331888986706403185682523799201841065273418919645577383626911771177375267582365347210739490339661030775928671221512430219675574531369961130817640092530383143430920203183358094000250105573391488194005758842140606262605563868613656535761141703241443658369312099786168393702372840081452370969429290671725963121092099082907729745452390231633332174376306772730258661501170418916672190081718068472486011105521182151078154789058581014642709647316668224867522094091621670981811821890388140510478724658947497556007646897215266047520394887539416560876913001196387378507810565500057916646533654460121163575452981533524438643435887444665322289109013232189438050376296396117282141610734678807636031448490534782574189635890630310933405582089517478359865713436900999839210435441966567832759507494206636715356721758026416219408237834800478202594324260675249087622587441540716022207724031998506915267038076027020973490368227113256679004513582584809456673025897753943755787297211900621353642531850563334094679556721270084298259359582496545602065313167379084709343548222229284977228206712062335712208864496160590958246296759734733768232944323090597714151380825237475106756182229114857829986665619486196985130630223079164246467625139522622680819184815402243692107827691882585507473474009793573689527378182325941453671207655816623298442395197404407835233519188173400172627352979729340471676420377176434074381529381453598406439072780083011426606511571271745999880819611468471690976153113384387556784159832059325160183437859252276903635504796062659750676712802913600373404213911331516447499486362486598907946299598568747127364698941896031153981740857459399783313765611321798325615443144638950749794603662553476255583560159889290985422617206314624093224927736594196720283556239915566084248728716994559442191721258162893807509398294052153362323567385109747713651711804655791877895943738694609400242146405763531416640854643846243484351637659130565312951712949453447848734597967238011330309305620164124526074074850522211050362393885388889477609824475467718496968152573703084967002456655905679705520143316680011622495966345554234759705618969810480122670421755594316198311828623387074020499803424094225826155809173626797147582372366395726200652731559208929407598995498381462216735035672546251643800670527753005832575552576236514999231058847940907336781551692975099342485199340333255072765597796312167344812727809140959953028907256049352040469684252489578089423155971828357796067357161310961841704501527531154190818259147610834338705197844387002532726420411216947320587707316179269209481150761289881862389540894604530382270361082738957582085743736092238701783274187705699398870112263184097792318137870296309341492433293613377005450212440503645754943007546251829492630895084694788707104390712256603482601874660606129116470975093655619797050448008410572455321987810926867030260436540268446300381690050136438403476077945807376701542710557571987438549191995377562540257004576256743703143021636999440256090259639675929275145579606121876396124650383396972568313901472810705175148726478006673094790680447075080156781075821475233220314748740835434513049009062811942673232756360031291402312820812944392996746536156717011299376368801873828496571668606970537231849542037327302959852136381727163596630349505938459233762955305304200886291388245381840570921102915842818084538857690510573504517937403473916232830868398977636014025355679376262366562180543477224542986156572839291920434525194867231809114575883433588279122701834009274808826077525178238788702305704106638832198842512340295421184707162452988864172952600834347623647394273631145282424283317983433993518342557428470666582271109265682246713935514840588316375320074281046676407898635555484335898573263323864776353227229141273541625523826123634069987077778683748409117743707227210828085569646502222242322462248096448998733322572619459589327898677591709296221609146140582427572106394067868671061490014300302490828552020933094444257242934315079005277863488048929759210842233504857613782169676746749003771222933307387734264555743233183250379391505535625717730494036784254806813385766712575963461596989438949557546839068624321760026135642111196021352964273063293025770104503608735027670779416575671686622381252428758077325772014937840794312201395589304717446191845224739943157948082630680617786630661314110314167686979233713063085201300807921789985427349873642920234325408974671872306983260160908896267277320113602887628652885297009909066204030588871132693244584951077696286274370336960963705389707038939454389047717784392760726729069053135941861545895060356777141132568340702668294689067154303164188560755879520807146655753285316995588732582816204230311348443220730535604316454822976043186375786687632287615809979525467507760552428956547664394330936616907892392685320999838404294414367309417760970589518849331044928818063212889746359555426061404860140840248444973428539024766308751175011728863547856076533002105609137760587369747255414013309072508091540700154430906493170402068060819840146717594975047901268794340689678032695213056441497236115947961451522214962559442860604349406361771701831311594453687910799007630636065270822583911463573322639351979692059355828321622701073376347515933796104606817505741965972335941545066691126685528320804680948452973636373104782340166673425622968402925039463368564685949368705075485916886142364476074740493334084447208909408162875610635261496018652050736102089494110542986524179499199670123157496931487507499520815964451779745409682794427290069772158756905527079653574385141080004285308364292984533595949833803912986704848083432098596238970203640245657083520114483797043185246746519876119511072555907760643335948275137784921746053118816623827646177186364221272761281748779292389656222860800390865645081433969739205731487753274970279157800718966352420346525032182102206533643474224859753007099703117680176433666978881448015113718909095023730306478746348161672961606755573324489488253397453015920495801944946358695977616273772076504073129394169626793496032858475582739263019730342175085267814536346141721315630469617421297591150642786012538867207667999591487253812789171448029435568621100023363183718895887298701808508286636248412843182929165081532227686193831024877187631267625793431352203875305713423884795557001358442481062718769179208591308657734128637396306330582457375137438513402250573059915187649156043101052609461656621123278361405122263844989511002730519742601962452542286931120441773997520125263066993418068677959295979303962795561687049474988509246761854779545062584233258317397969071107982147614218399471988460540865669746850594972675964511836025374646112406104959187858487297623997750723635647350738892047752488297729471214049289548097687764427775658830701378432719977683942254401480047854783943683945373956495489941194469129623756264753397427235781450668870238737873295285963898288378127503815246568165046897524517572887499171945247377912002321204341914442762438955937032196707385267997775992583886376616089100177199149827465550839633653636135918870371185223920220968539787769132815467479401752379167246477887734743429283226971009989096679451317583946602189958822123332914877266761975962112374152721267237257269270735820981609171341953818779303478919754884656180331470374008698120689563851667567010349542228686512477533177261927800194956064086094381200634127987697419708442428036909151785424855505304924619555509812773552483294257697495648475858698910337962971392166082631330775182729046462655550547775472304418045507202995455545685905637301050835658954435520715442550805282455124135232474382812147028999042410170576825917248117734146190773219994473708707390506360307892045508650568911727941717872767703079528313245099282396576386482915653534363153312955975472187938712543938228332338165073733334815259493021451921718758886861243308330720441090549025510599865658814978357551140707584797687118017472018541231543378847923963328814173216856594101261470041351808104931449120275500387678999835024399455985801313258122298289417508923485199268180422383309290799598497445433073313141812510862809199834598898427398156118134426891934260127272541173387852048853522151169411673320133352773721480166732287697546708882263790087785072507654868048092911506556202117682673073475634247520169052973129206109010549034214508606408823512137058154573624520339734819419902049097168785773078456204560221002950016305683954185242351495744130803649114004072555471156884597281283412610824298523252583900404652108137317588450951839838408683942795234057945483601072336908958957848782229421186610658173106834362009424105578998663393031260155556459466760767654079261074715966206639743525328945279332241313218721450549904369053267740073144756443249443467353741612012606235693883953967550588642184236789210900197509440042425476932066301940046571119145902905935956281973689640877993238866921248247476747307480162760021330190274806368564657876552709318678568346427766018402855803010172967615941117649926772629059464090300253716262523873475203304597026876594205058984346125086301916795578379359827243894791388938143892235168453250948917919659037664449557541816035138369070600947003689678117752451618016295108341641937375587706638610064921952883614833358666935312551568991657289527390011431512731456922850390047386077029318005552281557110639018667238651134525941333595050247136678232757595881997221972520974885281205286387293630493767164624857107379916956781365904657377529915844642185204996400138224319456839798202833689892950437196979779288283942562339635940272402742906216353765599599077081260750003893209800214394033445346026443078323339262649325193737570762555745079523225894492661919994741963806900230110181217982972215021313049487695932995155633463563413781348534808880950766180600215126632548073285596629692733581887561571105354378265945213187176239412655082055774278579119683568754940035906601785445494632884352779672929639472106398259104265055884112191252777444053266928659004854896470057956281540046321537028570347620364836795418924479698608311418129534775613221550274808489521950858216801472236330395463874159627785027135447128331794703487144350664318703852781484067957884668877448461331118358564230057886680214139677000443078963317597271493117632633557194113302247752406591160908217303580953765183251005820959616280189469597869329923536479771648891343499737673677283168396388787991071170748264667381395936003334463132707144675352949937697528859923332520347271338425157236173609952335934593099505958720785193065226025819925987336645946284983175768217032849992737990817629885902468967322420042809253740450645884297056272935099835908086498010888743180012350216500200010881539100007422910334599682155304530053755979521823808367754716200434267470161221804692109835951012130917890383249558203835144177435873558555052337621496250309285645096676575566020729041774322369085357270707442781176589004235434531156414502870967464080138921197996780206813934984519626935529139321703856597840860450653098123517574278204257947295705688658618443197843955606463044997288228932335426400751518527286912457988734202039928376496265981771976430906026447914050038407460038889336570448106142882469792552836897542936183864566318204599520174268807054833178214705957683351632466217009405037776351910523194604484656149552045847694865429972444480822391753645236232836181634201027904311574021438915647314046791368369216135612361227500998511478973641563298916261741524033967293122665296479595744934331011700070185253709872377377604756901674465432519258478656652576983983865827784179534619762301889189267133052629692623510328501085718086972810068209543290809770002641522677856525238132621457102378882098946004545915314538934785042452387987470308036741020732256347141851020256847246054576301360799411174328816571133656296754753197135554973262893065756822481681915850851089341511465735043878153843936708566331126673353563702902855460198980917893829027127710895324066512330582208960389600712697656248653510529728070331178838927199591485594551226380376910637288628226684418242270350233588963812484913459927150992511862914978369947560238242835679495221735582241415479912821122656807965487249945009829853813682380230771622196020068796119848571367747737975292973487554471584089776261695723808194411604878287700932245026238531317800426664534527259334370536616510509655595107511482147535560007900903730472823991944541583260320893659001646469416322578493740559496591650063666544202503281205845601822476876660969438737417860699059311855404459309703798051159857019862641918453154477202616869104177073256494282243005084288790072441516790742002422251329474098140230941932321663736837805768456306819501986089625448984759197067030112182219005922589838972983307945181662164191484945060926706619310671496439338289840335821890007499059024535936600828474957669635237346881898773151548626915529371389204791348955264874692860428890658722152418316759500318669647256198903974344189940986273297691106669297580879698336662066497736896590506653443922278013600079342448328744163155252537340786422376699717436004629517896587452841125408965810276978773065033100462981533302036352238724625687219380405898342819852460310238596942679114598408631548712315137234753046907818849235016623727098520584749094546215312551292101188444479537887016547089673923015068784499086466490137888580787580207911200324204989219826703571177478059696394580176177096754685664905862569928083308855061835353822305291994895653155557184257844010890748094078432756448721767870990779124271446621274064465392023460178139973377189689963224917597784163981998478329381427406643966600648967067926223186210160386826281608480177347170698764115992889235040109048008222080779772432248076376749771759591017261717365012736101262523577404595856848806226401116477400078247355607304999001257390686227672076371649054883931645329568454609373425916597513130486886968851590313891857585943989689181785064479929428864519360232614069524787755848742515162169760845613899860300202221930448153190279851477515119702761615612430392530425404463403658309883339349516821882530697935761207698504931730465120467778160030146367863337257465583768960484262208010406472613879413206281953669671930803088504313336456014154513366847294711835260515703903660398694880049121509619882090672013883085425803034127471898934038259504464225519854008633352952331715343941252699901191804995741474814735266805321987363292400673724480622998552468400172286947442404933115802688063170341930046334322630332085793068019205233966350737536104967132559885719898331620213318577734824434758199325297198852772144930961158198629827602497200902080272777876008841016805359042306884396064085543437797037035167244260144452516069143993777037683966476300055441979187883661134532233723525875551472299110271360894585530100228027924779499154604170950074782298351706423567354313874672029979767811376342815040779319912417325539951140568089866681456165576246979604369050316423906877541985848439531315858244067942013947468676563595511116255789010059798467358322276679478233963115903782500702570940121042594625918592162792677785470700063134493883209908026570877484280942293867998916804708232018703697193196978207387360575843812363389615121511333555702875538946270480729855273827047960698033824040206308118980561303721484499718471774870372155150679108917703234417010474681415103399704894938484687289244720202208650611400485053740401474617324334098087958720107775733235076122131751628850400376403572170183138869310067057398988162625769922493472116105001908801574961725394400182858149874966202637686396191621746952817328999188707855430550015537760819584930407567469584188257338321523103727476493760845382623871876163124954972469426675506298052642203077856495923816759497054260297849174352823174711200311141111541942882658901825863602535808499671939139184106203350299014109581097825380929520123973463527545871106928147287272214054571487658672097761522490984580499518086764351182355829958708715811946645055422928391069772146793115165721038056699166927230475664763166214917982840680157683212837534375256348564811154353504365642598049389940649897063802505088616823882283509368298402883062607373310955939238596976020931568561982003361974254434464544780903437722265958856455658993598797210934697453784638519222290849440718860917466005817147050241784607437958743614911951265428383025282171912505757346485534702179587966580196511659984557279990355949208852826805504951167594135405732741515776245342560055785587143743237569199051806497849755668937970971796914111636425422029497330283554618637129132379120141827437662124182681667201564606564836920901101536699619681850318317475762795652672066706094148238209013701056003257143514978869436277602055024403907104400209354892817965270043535259336890257621120060913038187073582991752458104010169949733085665988468505258132322327133231529884826745431929531769730491706816435289624000972996188115877055619837794983220815208911055079436651682964118413186344450925554266338714143929791546665855027767863697886946901868705400061464474716294268027226638595746940479007392282986127292896771313512172532882986643053018780103934428501715000141471230676974999458055453138625249944810028161595932991667948070540614687294760384787679909662431631652731066427060746260366759084574709482499655557228233256855880948341836452039573630459275715009612912715877386496190318383803719455593548426022111032558744524076419708908561033799801284743264694580921109051063398091753224551667223965915583619360107574754924343400962065904747611005901896556956882133667577413995731618231102469935726207980220631589808029076537103933371620851249447393491967425289739177134472679285209867505840859345521441609186020702438906598087226867983609499969407078782022829514395233113163505523030641160549392826515005630046988326193259118962002774931652181033747482943969966029318756016642379725441888891098501943260975514845832810144868582471319466045359041087069752436118317571605284742204987335114843857404446707237324000853745889092931223598202369682157708037466506527171951458254191503123547442767633755728225791150408667759507102380711749101172892002978660463096086507314424076508667793341305837527025366200733841393035108302575844812048826838656242632132593552690145978601716879461549050336931958784634345887290653756183889436287588518619427394502476378307966185378779911227916293313832944500532197207689951221575890399144879146374261817128418397567763452077078298176870865128615196296077608298137977350605556362084026182712812246286436415036702195558417777270065833963140086881280139001343545898163868527252497999971117830255574612849735782211890675184753398852933259989743904479433193970209243136686841189877162421010948882780446145436816642658630621033856926928997755142821971192684905644391580242077215797075387933053449277160748683925072847349084907786197565699767380464874115521263407069047247598738672320893060856354262965111504997325778240088269277868265552354444736995595198169540783618158476344188461091126668921598490362344393061345459575569095222219048489006845414907342736482860527342338978596215880392915913407603547376220527738998103428719243927870318255154565434233874319744429782485867823424199819652583888976707966341083190477670110343586961731261010909582207320089721758448632546485928606867514923256947677279361205996638544460770612584514603933866967025459378132011398159896744699937178296604629585073790077712218879892677822844760709326224000099516755949552546495100583210466937487134340219911836050585316309143027851181383204595715822423560518844350822615419664502612414986738990437377056123390924369604277280425490891191009385402827454911672675653940409270164620245794407286622752653089740728841587751854210873233578269840241842863375859910586218734169524003636285866831022804869641080010199095435345913848862543537437144392196893999247579293941999774393391078899112899686393795573370898662112870345971374825645710069470234602165951822679764042643119567049044091191314340615204947928841872867027625511898383007367722435691779089363452033963030890895699424640327304131599590100481148995557238680297330901572343375427732876799964829915281619367315698280307498927173481750357657711209739572655381590124180620226626089507019770624173902794717814064529550317581432617314593847109456261451694716384027387976271249267934233846386429815184256385084897036008566715947190480439679128490302427907957636343650696207265365832282343720910173843700770756339167031353486846213892307020699971068428510071135560253493244790967417324904300620591016009038774379173752192378415345927499640300598455793756732148030359586063351643987572273239588880173441199206735528330434139742489082581716160650418270137709031927923991021939732759133996688208354913982137654583174062127201140128588906843682403252532775976727530499646548044913470900541072047019285563679626273005336634687033203745395720344656918247406640374677197631518907931185673747714859862093409599358148093010622619843044792307382227198145487261119183959220994746006868710199923482400392719231406452374981046078892099745197795017483403292514343237436849100057209292116178312011818276803411048760665305797107296193777373461117284879769831328551129496736118145056255155978823489418157700709416631248827838871560866759913887943668616831691042582894654101843177277687158359865213904093738916462018979324330638683863418465372264805449248359314674294448501211400325611930383511900323959672475758673079092461830435456197217046673999788119487178493330840206235092008597156804302870439314259742644970094669297852998483785765524760907870180064509588827719187697669854147097730620351477485961493113170896074668359439352633283681376847724227528293334989759587591619554718638418032217353218972729024517290547653265577132152171884265165952379634173734389795580885100107836314993926014074786982543098898430844852303470646154546126573427595943571754309172149156526187175084953282956461006705626430773422553423163809223093130559553062304590892044400435886666297792076403870550658846661862243985693261835848224615757110131499702056561159743312928097058192782011037285455608883278323618058333646691278999868393707873669647155770181198412094895834612583813618772658868050554038515701874434140487100406862152658671217072026536189337910282618014692931692038384702376767047247013533759624788719246035294088551061869431457037923302450930208924791761101480865408440638779727902115544496655724882831986571924518176912623403072295665335561427358453804636015980826207110792168509784548432571437429607287338464766687337684276024286703678901841757029924833799455666592245504147700291213315331896351463333198976538123493619558537461066779401306422456770877715670355685961440927782294536270086203085908137912784767326086938550580390247573597536307754184300980961166041249609656748052236831982118040350089112796120743334760111115668449652000159984455133563251283000358220820554447988767678409739210255831618343211377489021115674330951256174929447478984336349633009122009198551329734245789342598030124089477624527193684942481896974422894454663641198755825699810980781223160298732465782286402286862277733910971127219807579808285615626778378494810393380616169563306733513322120811368932738218582871994910391567481504226163617697538544607186988330464795641423937889996535218343436351028794683011001355671262551755368925903520625092579131101998892666050385703242036556115361976156961557595048607973464549521400688398786184056711229648306788972227834775053517611603184440470005195280405694253751333227948592844786473696536354519782016734339378042448462879330047884434776442740011128690235404150929745629313447760256209172688330621974756397012722279589713906712361324939221466260532509411602683057123081779335390893674873092826601176405457924451589409168642045085783002161767354598144531960023714457235622995114843769632437171361760726033770635269790144879420487937770139430275351819342538504385355307234549001506594225449814002490491244381130942592330043732586465556034072789241613834446424429499374119057086400074549437454676405628568390171158630889665554885439972390524521004976093409016117062624926640832430390114667198047526812571178462151728290155699544053517573206483007121705476223979628861459563750693242432443073942451951000795555844607078617672473335892490957412130909679784063910136705301298776992980515205975400810867796109409726545645417781843236484463992573740211754230482292491167909338164436887226135405706859303589358727738870185160924653624335713482155032618505234754973187566215598014023150380335709112448782112036673213696576013661401152270289004151381009048609555444173905908009354282179480562927944858818457982213821465236256490270463613423885913292513181660056211441354483529597371847469431602267531675369523031393451191351269219682239419522739822842265868750865675562552377081539645767599095301320337465878338379396104841224714367983175182158780430732230123879336434894036274310445649204690660887945795893664554434152944784740037820878064891693317651911303091984224237284231419795094296310297254821022877162621096339097678204854765330486023543464486867448172601748874224773616294893623135837686631224756207757828675951957783548128396253635810833941533802046164990597150843680040811121540090462237683381966446525259859871971456518942763468806067712770076293979992772752690598260379618214713924864935005958434977658427694506963315795573389947956787904946362013890632953633796212939297422780771058365505127070923007427994720504347686476232336533777542429466337390989404935133341017495622518904367273295891537650275669218293873516885399326218471695699618929783854325397671688435833944168449324640667872084920646430733838439654780356364817411999040617035928299413146770920348476173669623715059798435053959326760665462944736710651065436372434158465743605770486721550218081836762293507710827134711559724890197744700484421744950769206556359469279602546574945945892985784725518421783857764830153780001987465559373598068171631592058273616071952420390837373579983969895534696660923995185499328785110756451060991633037643983299876414675268129344294115368891839526714729989271169595354617228710715006751659128376816611347792297134064635153487241609149239687543938325045986887323730955992247996214707771644799727147678540392677450193377643177664205261046984056388666222729627878085949321110256606131737472295732484956013437610343940573032220633282145182718734611150876302954732963758278017182184892315582826090368959199590896858056977708468500047819952721586193684314582715418506824762662756190743112789173773353415104550016504747047423982800361158782455568535398086218811560716895641982057314907727234245069887157898091155922644594946669020163063693810780180356980589822041404265969514862079089662498966798301676801620443201565228722783771981899866792895036191451940418189150422693663025997364853932141116559103849366700566503986475660937716115117423291517268064957668334379908112305092014121143437498131818971849497409016279268612729862586818559526280678812677692582455840929832440847325705212618259080843812225619207875822892681634161686775621472172736032450213310511505235647915156994674835311501560804040603172919251428128709295426690377799985040992816275872036252688156449797715591898605225391605796406303609877656815500643349826730706729148511744598270424318412144497884181927144290416052679679095232866076694052053954121281391129007840928639829670570592348830452926650963870911606168401321734760181311820652491338965999899831978143917530463311317480225597641156068852521632412706042454496655883670235803952694577983095026152469714008850872126251847547236845321429026825240112410391043096543204345197777760984821460806047694277453785256310508048876685651124234709802912084119967258992806585809729828976314460097410947587817729587812606274485863331405334601610392598879688502993450953624891055737313174979184347207979423252732329061544351574260255286759406083841851332253795447945897344307895303493663759820629720848303335588791383773782867634564652339847803498159546061087712460257027888911839223449413341093346487603465918511791241126028713841003571586200370616179521467771005483284632228571666308727646814541553669058229389838537177172293239019779237231455266541169303327325881871822510209533641376241148710351308705541196241517176026159309179654460331683575985627498264862369989198369450677404281993317293594339127206220066104751384375045802860565762818762199957282033947366050223521935547306106567254747135500824532210492665951153921350358695702600235519245600296596010574946503130523868778020117320690137858620569484940827841288812657226563621188201391272152644436385041888743365922472264047950817812704721476931244252416505394110335764098140032903387150168171145356967277218418013492645720464356789775177725887588148283925088180117095761001260462010665396111285940213059875511919973900735350855886587269798377888791408906009547265022861866266117183250613741696091035078055242067383651474430351008363222529980558334379994965488001677829434530081859440421458840275847829881220553683996456727666431768597638946407943783379040166915569804103876087792711560258108188746848368548915716815386845695912159306900991669206796174144512795770311391383979172476724682393438258934187593865389270576569675162797933833145060918075186514313882876148158863763404068147685156302052213128158595822852211103105386690638536152672600652858814862273883199457515008546246449276405927536928242092354270166595090546175423160890412866679399109380612391261681218806724063242997628387491966342087919744700866284056942592649269538835970077233242715409886511293540144988499126057740412909155147750200042281662977715615539344268351196798909767667729625603620123803912529256503603080659460383189433115227287362204743513953433133053791579683899072848865844276811966928037631442304944262897020393223820504178867044844731060109342379516905071077282131080493988134626251343805991872952745024877322187273903534978187223410853856729575002998130448031602026334995799033075225071781389486226913449376782611017361924161012340554852997953639263254132394231464276249571939486944263096181770697211354911598112670905057165462738896933992182330622262979127637626469651773901653796856574092300181608423622042613710256285239048803809905794637851237851661174472991643647364246941955027508463565795521248511311590931664679628121355602111499640481462500256103099877778439687264358677645232696515618519817328119669781889866532618839182298953807164589481582444578202806462502008003798391642961112949975176549922396004532083974004614678876799556284901184419796135050007057796723287756243955269652045684135235498638601375378221684815745993538453553660540082659649736251559048541205983196658420186808984849842942450488462041291011703929487480358052674928382896228444027749208923189459007606149897040156780488496161720188277453232264851391515003127864851922832312076202270629371575917933112362321994692465594706982889115955975062807476423173566544869100429859556285139652591611175099075059134759874303488330959696946495175877376298160559256128813665419623416452635026050509337118771966397072012615831923962235795763420458341995242484510713397036233298023895477612841330406801387388598335603856984597180369647829133338232670709140671616224946980202295341111058771945547199543832253159763608795005194137659621021732085363971675296666880450223082181234075650089820341400340617406622039154708061872107277338743861798083089773913854170143458741947119324987877112674629627077402632369734765066490719732918367947021131203963287510281353830261500424474991227784548332548640745124201018286932652693835451661122970951931932894508583944066038389669853882938632737271054668993194623624111333730274605569247924778736807519607134330757403817021090240008694906467894594319937932738402964146011957262720060860155242735962777194027669683854269410877651854235462999841225229784879740424563284587734457206668665673492501020491595786666322690271275731524069286395476833491610033514591587134204392028897602373437353296730335137765315365305542820438874514891590961467232521130949827260913402885344568292772105914282656788089403381779606763549936714176219359763454080779649284305054154402531686555671972104650911383656902323224505893705289403181491945270383454715890320549084201460851313191706267504854443675689614134616529357183058131221741921896038559877179945189968490501603562860932164770797588854935382229013134930063284619946668822540996665853860798280738070475339598630115925055421455004857086303532662005246134670667612908965631012570394631472143820239513944613593279467609669531008831459778691331316187514396094408966704290516912795089408412249264864182177956452184884363712617480964559392130757266358544887422698603563029001312589831082911859258692975788548919544826667810628058835902334146105782683149028489179690250597997831702470390525869624726905684878759173120209650749495960388379633756837160805908635525442881729756712437634675614854618605172063296080435392675440395685300423858762146203260886340603071840893094813530262666245484530575096519544718686361990204538759592364389372144549433085818551479875253990099715597482325421872815956618784354214416472811025958840031249401136893420587178368370613879284415041194449398473984256173350132140712527685839005610010313842897848160485260023539365250388260814504348539474866344813073015965544810674203756875544716871643098337440547998408524122531335628171877948914682524056117187334452470252897405480820986212121439768177220371876364992436300240652315272241328745757841297724955146449910767445181034930741380254607656634953820962178687819912240279340810223865849082343039743565846201878513846638455935623840708264226649616696244719338568216064232108653118289863590512549714577047215649839334123099641496581203957514589901802702801153718169975901087035950113280844921282124079226983071076358440037503955636365556010979705337488940952063222662725526804737318889714195506176270589941478507218157931962905398411813973989471952689630441263399621389678212608376405089522777346715337891714976712524315497920177164358829404634854591648753628119817910329320620575814708375143830437353415740553290462589652189239357156340932389561590124420409029240896906755686251844776501683198638066647277865131622036936490787418283619752217319554978672984583649921162523653035557434850476997008059039973025853844054295156434877962251658551068638486537193356948353143850988801510968791854921931610279876621028872663249290948208701709165485962927175575746566493913314020079908585784022657616725654080412975797175409547020608816739636336967214411066048756685420910272561929064588822534459898230114297008592620397255283879734266266805753722160269265508178521676996050952825613708985518489740635926349949636440936342326269596953680340803474293291543810235642868975351390087741680489872075776156760460429245366325237214159721563297462817504476282248164631343150757784507526177515493512983669259837770496478921370312689127410218956667618685535179334245242274445401495500499654417766506508169525285209763941481007445644851781574599098092482963507884001827324236682744987157751174070438780895777470481435991897143481649733103257955174272797647709191137891572996321926555317899538199095425499329317033822370866655879094626812129915871709896669413475498079129926432246693686507922953882349530297428990784849662587995778769407416239030696952671174494777067408332886077435977762210533711500137910832945734166359669752415759417950593848322704944410962277938469913627559873071479109654734035173110490662061394559286641706600210580690757903570648142898336145206013085113517382202917928004780246959154322727218495455651170759773983693653273450035504814120544448448934389165600623933307427661375184713169225741109975699084393449302473913607642986565756050389129933495350790139712965505286637754918031513384965581091119921173007966978485040693146286383632004154628828798471116298644929225206138168119601927151756429329556363272354595942134020978636624189209298372822591866092824775526986692694431238896818720591915063866791605122312611109076634922588330033023030188680520296840390701893376938799869008517689173290858069994566021560680866047666219095240891673442159660578961197298658508683049908472545442331578128872385659095453713971383396230496574116109732822549012641388982543890186535619487370973979363087672795444922061483097115200582315884200530895920452269874814447151444462778018599602816763403187638204420747463534683195332347275159736463983119647410297911003314888568614341074145090934702628101977918938832592771586744027605036166804137522029261448595782873485424583090647718262436212716440305955446225808947886913334124806730723894266738309648776465426961854310197751309661814700158085196917051669406033779218529149293979349771933025913728952109065306674995827328840563110602985606614799493278132241696783120778444893952392877555590718769184317446886681147755621773688967991657042486029248687102803577849075287498483279128278108765644379272173344983499125789703219508200511957215882540792124829543819027911968690729518767331772407899705373008400968523877736560675608409269003730788645560663858509641254341074221552633560367869969666315345090214617232371808944597543093464843913268271069031111675530512093852062410989194692335107065883551656357303500792518667726972292907234130479706901677032750376322553150831007977346262432839312057623023900936758436525592343071572098439409484058520954078516371851578499887706948372572813021485510279857102914477353668635901131656563822067508861032195027426672994262782053229713550305023545320785709762268758533017645610144957803482024729240328113038779990734246199600680714863554330320901089650801124203786971858199991565172234098167080698124234265974796358823807225855804101672724988970135950595050757336502370416213829608295625224281582489953667723996616978061092058935104332402025595415113813200820324314788760249721141880035549762541177433127293562078213824039534418409369883896801621932694448849475939507046135761601647637360277064422602134709560541344539478544983350403839785120980993951953788553243956243384091239800997734456830712409179144711420956998962910034230819257571785721911311460515105660893231632507828041476666281286997371182813562866538568215742377445912685807527375557592091886518594775789541289891602395933670714282332741517896453420370373232802766928700342359342149290091475770752695661383478743891920591486912815332922308390991965107461905537082995502850084972881547143980204564889102027104697566199110088477019477463189147138878862146904477771061735943232088290017307671402675045489742652548932421401157827420356849477518134516085853180369320741743539427285108895801752656442880256327961777270631845765329840621672242406280451500432583559662588499214599536168316095869500203266095606469860731561170056661933430798615075131221121974649222870878518832393306063574910165183397715323172847987513222561987882738779290393138880722627679657544665548882843692762844793023608260595983482847051732272445385621537061844980511849731015327439500314866432466319162839616729442203271603097181751332040094938618067220314273249701708213465884935377495334228517221603316777638674175179331662434423015238197568034189195268178233700326128303628451429511219829499705911511356907732839106441459524115557030482486763424365264015323193945916004983300080918722125938772333529580777299487788900539967650993779657714013688725683070287736638639951658011973305113132927521518993212828930168094293090513790282826898514960299849789518826740021351452622896204600157831615926635223907478250750824745951415737961801010105702063844969194328982716463139616328202550587794629800232059872953873102883008186864536247225436631209998417622476021538569497450343715123657709426918332863589626628005170887932081674651883880125902649656755200419914716088069744240464177688536311882916239289459741382936797705031942631531963526136520829123517996198224577545790442808152022276161094453138416235674751531626891742964292030371897551120735133882826135303385306725738987281128786553468947382811739471365521648499334808946363579403591589801481973153912226224802317922762336965222725135233288358084797639583252009034975947333681962817494123499575129990367917446844606262848570588664870289297418180816413481299689911727975022602660369617597021573260105016545403390962540891175722720440805684104068485798321315359027997630467991152932648579711893815246362886745748405875603478835529655932659119409433110322088744976589539655646495247419521008901887182837734684043262825052873957267287245256682629838887042153264247114165298882167231525865996907340048150476042734378014534257591754192753861541934122061812727032401418353124465643666989618220291148685049859960296513773202287682183090992258948953342673676608159945941282003988947208159574386783761877789957591896585882699922174272929012179940318027224382756427723810762124238343111357331941184485007577333457494224757955462368746562371625567649330369775452585898591231453639793781248832649147776623884092960074485155208564273159632650903728224656671222409452914778946703807026907979562757030630027244997328916651394505913568208189401980347904918620692614024096832799229573470909768771599006088982277730832836122409158675388395457620510002541682406189835308118119587901262433519149762791635530067876285341148667666075887197553287241162862586334139657394355984288720321566464047972289965661375424213205572061023866615700436227271935407285256338608178234464241807288501450851711401238279464375530373144220485746842308990224781102148126472493720612578273301237899219659828528534343238173345066525123588969140332046278765993310616438013080813730253265687811076748051839029874370283148421305980654446445378301458419987370030268223813912897000080167662770749309755565137044150392227902797510746893118060208250122735570533052024289571789913756288081810529220591689902338506743943137519390727867741631921659917455442785132147020097550937901878172915715240044492021571893716724479409112422663899195484876656775612695926674969781160713184315143519284491268666342425067221847638185940450688219744308601228535445225980827540794748273369742255388087302030138410956439342996129600330393196834837562106513143331711128829773739817703185730468765189322737948952664782470641920741676428196115921260183138262067682087952302972988692631477091778074229293080789876740604856757739898208241261343446547319557868662109731955043658950964776375818929429688144266436490384434344689488518283765677818534816838869213103915815408781499339460343184006567155839413502303981740826761960942500731606277768739900452180757027830362182286411866573437226235207202927186284813740993689930336211983094027793836051274436726932141452880169614201657873108167405015833108175490685141498658201753106676485363789335920266027594932908447702944526102464090377941116715154883584163895630422598942585630238069016706908407031254017839484137146036955332153588598170831136622133183724894147476144385573901318043091612710790188054769724997922282769790155073670954310665464320202155288666448661972362151122783100232928482248150889128333637729852775125364310611528240727559975553618365660079434916450434120054316639599468074571902751919816404110082389066614102953993783515759171879094028269266366531840825988075013760024290076307467822764286394338187799933792845979976727397751264944340419746016571318556838803441533289607662320705550625574816067757121781542206213722312095970491113340368513359673587837610783354266336999515992552056316387231879559372930472757868337823027173413536276469840018218037558384292704442770853380923709047363398284567733401906206261227529954082853029404601765340692355787830109535757924611786406250936073790133329426712021815352781440077547496629560631445354145743007278783129967228505785533243064491402252818661309897908720333166709776584439040469192860694376201088529075902608636809083202458211874773157507317380218717917553210147383139914645721391086853210562242186397947169229005509713699917683473044980960006881648584849152072586990366262242454023985034556269941117383899402432567993557904374620325389158857136492803147923534264238712510133244306985220421391699513759188165658272594708534309626841033042489107501055571634561788287579304368800625235190093627258944246567225576636323010860175723625236012436526958169673593821426011291420669316556040007191718512928484852119036319511289420021872480931339341933661617016815437444568724710316327308341543690021899917055353775141805089110120053709625164798521032859928156604204903729773749245956511249088845364274854795704228815402153264319081897147486705927106102780481931584557773712772195247510993139447077444458882210509012909826644249699500422978477477827884782955740481356563007231952756180452668521275484588426450822015585918090386866623417336862115448218459670151437754445278481401949233230257420908489002746630265816543965423172512418948016781286728221762889623801031478616619958151721241176599237286982826737723181976869449067662127315007359683997556050455149933025538646009965435288044972851798113162300431556349894824141360832315427602067001511688018540977566579015332548291275443723200550870187636920762001243394574380799218594081867351217236644446001716995897719582879837805577295790015299941518575787260295316684266867017986957682092360320812683797558732775859779687948930730556223900042296817397141583566780155771614994548801818974611733454793134235464237497372953809436043883603468934025122213570890217427109834855113867549502721280080073312559581189071994463902810940593000641645204393347324987367395515087522575963357154580023612007999988234800804993557045437788916170530018265326104345025688127231867870557930688320258258979948771491375398929664919183954785538603630732908235386683896362558345189465794084593399312399592017505712158584223047741259825465624713934716691235515805804887157459561784719587070116988652094711668813290429934742010500630206414006060777985375498356763010756411400811065395611160286194484821613023193082086367435275522938867963250234663258049506020372945246505646836049065061323120772298709914406191768103819745465837523518906857155965535260482704719225947450579414014545429087762501243851419054043729664560384292986987179309495370156496959026606584990632353065126716647485467381798757442362129832970313217777741291569785035160707156765665143840506516891880475147543653403472474530176934747680987958100291796878657612562095368372261399625786810146376207028088876865691975838621316372480901292340397916242935228560371508280786873201468856937405208889337177428224548659613456337565397363222625429681316510555188541222347906910355107197191681034154792075679858473644587660033120069460704473704962635878251477689813412963237515752438390217869059863911999381555537497684129966412281830929398215592296364312720847516741318141394051667033746047934998427525496806409952309969874905593227741784499209967978940435016969165316152351417421272792984099168969905963490354790533773177148833169143997202505955410387689363239906070822962804198397631246312403942441494700063527248998884141205784566558330109922048683513410128894897794534579191248437472513287937424590426931727678837081363444137127626910082699523675714807620206273745452995016555608359936368386450746871596057931702204777215915831981093632645124955968405674731746016201032076049294387074943619750553752191550329184544286577068405104527723042836360179739103978231295712301183029265079273969032657017521362135290696785057772840075424526361758153544742095183548484882326368032716035100284147756858880788442239433320398105359439245383919955225748571502205449131824750568359203365546574763533955193113799727227315175914522602328389670217970100620094174412413560467094561325885744137874506894668358328719896778288731299231144263292371651105028527893275419645472161075853750430007036154210605331422524864029327289317165682796272491661256539993884179189250596214178782631839095192688669278102687943789198292758243631531072345037598549150590078027426247075569045228562843832786136881321918326047578758762191243742274936556510937155067880057490045507282559020681976023904992821710263832379242396691772653180497939232116757366936828129218239287088292942513653954783016676318516941523005490454926423141844803037242115839499119990204296941819158602802367389047420432172900738829128846654472342625782574090784937292198547687635574468891834776259711704869832993996382806826692119297630406198555038149765162811347903987759397044583613560466200017278599649787691100229735697812827726326494330368274071512566294533378606949855097867900510865223270475967080004386768941040953229784060769938159006474028137218933155953251037433347735846216161330792783631430449675253276396307879407344677848972382971159901372847774581852039482802519137989719750339156674352906752570713177444040028538088451720375289686645105491477553587278955285277891971594693542406602196374563564349756727555090431950157901622097623725377047919426399384210995906522368936140962617979067558386897989201755943333191772155450266141864492637740864671639636340402402654279266972509619509504040594794916619566587472361350676231519817143757387508486121099170631498239950407063467745287322627351379633195411044710428731478999448316547963801548719581815337343946737600412138004107371633030661413147462433413227235429449868586655762829808956219489173120969559474878035671806258258262116716264394702606150834710509692104994020758867407969832680135883594592450247902183301946503934718712163196465965948152648668073099334927264755581642404820981038394690323189412272998774410402679267881162352515647799526631023373103148096701971175965975596935491060525874725440644558545376500516949236317722669215720649002118027121539967457349605190093676062150612965506300811693009837522518127388861202237794281544161925054310588980939595907659325324665416119011359839551297851214386663403145495008734667325817444720613507519944142815926434628269198611286680598006674987353474757502122524499541624563380697646183183026086676986434061187712987409273349915138343268443279962718147655359820096042865755123200804671479626153933811471541163891364423836497007202795532320698805206037766815686125476674582433488465376902987881572462289416451570900678289477100467923355311860005282760826178049922553686059210973966489700048076439135202166194235817532917944244821609562177501931785213719445141973255279024604598517486110799156449540697463346137574508561174400277745370963811651457951685564702906248056627824910630252881849799209546541244222995065678505778211347122291200690204106772157456714470598557355763744844313501189601364870252847008810344621378859627452995377124628645223651018432830225261515619709703553935829162472095117370502840015551960956320583751618077721138703920926539709094606716315719507449216362619593107378897285288563348030006415876428016748202683444481148756740539001738938906345173358336661698453813950261935666128509951360036445490087239433626446866572687149413634211945294204665608110907839745257009199144570652130777162214728099937510988788891662792531672168396991222918888094447198417103755844380713252083424826277906986281508105071694929050404185470364462287753192979932076828262098701417389910454804766011426054083610268863302854930957104582812398379296144909750971574958152855019609848318818661876675703839490504613656857624719909298963505865583398591341558645064463248908496815301168663287237725551580658807439961884890208734376922490214989753173626162568495298068597830802599251006312672528044728629177307789732781383937674587330083404691952249058506211743380668980889055567652965959202790091252519396086588900694742051206772272685826310431886618316592892422679868931843215244440502973325095068110079439326803260984489052527373231139121873363591581291690241593537691566818486743419497288898029750324242280921685488170991944496787320646733196193753222077691263360393407002747015768337727350922549077923549401466451197654359455127848532869185061137979899738302178966436745739010236805527824683750933350911705247282697472598142772383260874474166452223124909820923598251978699913233415429850347094151554218584071858650581265714943226891444910204874341427623229940628828993125216580551213979691584339715617277335388666005179034702698696196776259856055367038011552335318494245622403072404406207924478585397640604252609441254724688174248766495371102254459734199110716174138474518553959861835956423159085004847919156587504354094360225017567473994369330188184839657236055426999268898811203459348804629531819966838260815485555513559239666143809324327665813401264535275317182535172756764672328358296659043515180867595582630467614192254207215150299415968423714988398838678027459748366216251951005611017324812734593002214255095353411308165269244158443828116743281257073679752790629096224413588101569135961617325472307955302308388380688224739605406549119575385027267017146682087137229295558991491843250686302661949273363426623802717875714804957212190379940788489469223752416873331029808588275599475842437705276635019478926590954978144380270712006367517570346597669629306292444315757099144200046807398205672782820254437665152192963471183611623119821576869791038644200480548087809094209624744331722275337181978796610175799596339258609625804942618395246895136420872010332733905800847405089510738101507291954760797344759027233788379141746325042997336421356065627073280859653094908427648154505695837106768313790000622464055204579100927997964382498946986521368659338384622673283225698106293225669484830659683735366854629779288160241770063594560546565771187131931140091472232736121113984544010627719558149594763945062312602514687292796050105680433458147124035504976430324436500134612104067470102758948576682083185116955224803619408937818605350381987531293153228442268929192898125270625227117292079575751464536790268549425081463741499760672369970317859012163413026172170660764886648287967236320258958375105285654940905001854546171713245899310544072598250392484637420358115280199313314985937150905313055797091916778804178087062305822275261530528604939610080861157747761898586933690104942533341296336597712812739302630733477992700244466712212062723306771810710054631880850799204118710996958779841770691376543277448610979736857087468487827192929444998404467085797854448584256204101688845850843314354578421700306553420019789006599755261653685769298986409035958260496518166783962460929337342819751330695724225242595566215077252372578409580625231398316771432932065281619842632560429736126515880226190634082996659598640802869037543629671568317399875825115300927676917757796808760985370100616171048863536141972631856630179999181828896258129779203062962804468239400930989284697810838740830259341994213871614360166028384755339126019888249506245742087038307991563917627008009633069015887941042093771620329722640009637379271347889595986369788266813027720820110041612314668674300529793458492104864158499706934073419001080208007165483555531146830134510028271441946862391755635229087593516212861422095024774012510386063995856472918469235052174591197608961151275653629707371649917299628097511859769366152860978576838161853116603566996222939787791580664055504404974802661689310595180805272241654755236063092238945383970425630865100197088309265477847293883976584728810264732724436935260000130093774736035546996841386807662629887304596746028705389457523777329266167289022182645396930593670979937811040277654441821512433997502607362783010879912191907659518923393504702218156435622702102941657933346731279550215443745603380558373835408481746477209457505869524308501130022259309024837019143256492241262578470065025468617233796474227699677072419888597468530311888877890154761529127157636424106464005886237289134524051880297777614941009200785227983763730084456353923774082789225154944574431504008354746610833660553298956107038146572394868129870350150001782397380270646103333765338769446533716508875399144959006012979060675929880204269264883470820012771504229766706283526941202596698135007722591533651295374382578943206498530429582366117830962334632250196319740178249941969834730013071045825639294673511258664173480500334268023232057623137910333051440009719572629027901762384959767361440564543211506091510408012934098641799372100146092585063998016483830183015138744611601199084464071447326030421609063611141157238457047682385554206302615732065099629709742758223033741429781867748879640889427255962877409966571579283118691486082989433792632626432443210098240193727172093433185045083954672236040381376633303548607479425209098050721599540227608086766056645383912296426407768438875961715366457674027105887066430685367177354930560423749861631315925888333082504920159556814142231749972627055922641948648253080376434918734020427037082025128550000233980487162572099177250334917419575192554003296686808611658611583732830916798864559702605584766320903332778957791793554841733987850965884060058595335995213574887544205285303690253587125576471832996982117953095997642199153977750025096746055637930083633804745879062000887390756737639398670500644752744709917820049516698151654293124407527284909284307337356618578387619405213950289264729120487599824215041941166003969199438380523108019046303757236450999271604965508059063174010577080455370583732221212876702295069153067811013057423608222626594236818607984496793006844978341649820975013926838184210352167264116719330097196844374608204332231035904638343299473972135145783756942771542126802303448197531582497130721120181328926159685198494061557992096323017827269502462364885981312509825407457160668470653784976092081516640101686215560510412813931554590218159634370983218706967084055749760785569196911491455015245060939776389070906953131201301626818105338875359106070379561203938922061417008958648116683544385232155683425289630669811814411819183303444338894274096042237460713294096877370834578722861573282624486847129594582193278628249501164366570260271653898048564477397788237416593251126896556636144867893621992927289743804032691002865287104107466608070501845394934273785348719941106921050062522044880797143501353558833299930874283771421268267099458167665250894023613610720850443065653426215354494531310143350690497570750633886079971530004407723138240264148347821021355858454777393408160819368563353677305631447479992650008088401388619355174133446364086021161016257165419259124164096671088179873657817475843296139698813413785758070019221752289930485553106508889816695060927409748060249241010304433430073773883327061279432300164866990787090574096126786795851008699619080519552421824800508156268141353824614402935519895645027044728535342622653526848125799621407311095191004795847334958297729808359509308512603897617719412883661281838897169480952617519545636806596937931120939975295827426293797731290689692767192926811785895788535032353642768440753785402327371288319150619938680436197363483953724972745273395274766431313257153215273943303733473627955158754532002151286928679659611741141043657922994913051058744481257603715299245207751339889507300496642800532504838837498375339411735495117857482680243220924781068285984467020484758875974890358335369798474922928315439009166527360746614578039540031120317303508353565380458700966317198716443487464327460569799949797964840104048451019969664713503453026320618692448868375859132017545716277028003761237462407250313282813131501582620338799595033318236217023878294710310337412377032814884213283948856874999809877487523350376400617016778013227452356583616194771294822642130931850099554700565341305082042723502444183137855406332724402017317219821357956408654420562826576549204650071963731889119735505876286408729362225539578832331314569340426606354396438697715938209781736660097326704657870969714614272097362629461690406514264486273758765081949273959620631993387064031813299600608319276545010042754682799860374549427203767393363459720041203095943119616190941543363096143479860131636163486047177982905789680078251579807202946901714667033968504620187078550985188554522172789476257616093271350779751951528859697385819222572828261529148940593166836576097953826992935145559458578761650295409491380987257628462105837615083540440309111835982240192065373714202917020091265546379413106615826204253019147027186239499854601822329550285650141715965391901489456416389552498583350713581594691762640453904013687523617990951816613727507787014004928108409884083785980006153727199696624555139965729125387636030779240618348301298151282136831846974590320878682096697653163384126374165707795584214754028861274887149589139594657855562838908127348350107957732415254810140502510012520818562958846852574960822020726806155898697431197876520225161814807080245044048888206633572495126561911659619687970291250003765220143277299891587207068748940636923331020244592758454482655789611036402157349897347600662204948344486047388295627763926108142220802278665392821823781070885019494231713699250800141128937921147766408202339602581344549761467765180630678117025604901891175261848972342770595859596149250046193322825677194779036233776332990315537018102429235966305356983930910672628027536385515856225601570541336923531345109000885326412534661007023432532284106838922932203163261481406249696937772683876593072832636895072091517871452626240022341998883303230067147337668824062156675494202951733741683182223134579643618529982791732251530718350625005952275933866156217904578831338286933831583106156338586722542324039381959237442170645350046314448402982542960366659545307016717430478316829418496759127090864825281722113503859320047548825457886191221128466804097851126243568869008164992014495346545716743105420462593739505103319333217665182926117537218536743771219896450748768706221191706537922899006178738768914708596939621627684211159798832701224887880277561180417079504886233108835705825140760215284390182091874079835269839248011846646534166921718237584244234592993213505557007262470918113911663617843288988297597765133588495683565513856643523142129042852470701956119848788478614149396398390363618267606371534987781013820044291352380233360228670099731156753566337515669425958839828226438667244033289511904060502392186348484421255122785612300220959890533672601838837360642019433496612821913064341403011891353350191012149432148707771281684757985361367685660348690335626490908399588504082190987151505794090035634551491110858156854075089778138394389268353309716711051477285798006819960802034776494570766953086839428667087404168050142638630698142264509939130817262170125901046912081810177879716510289382003993121588949423116594948721626202870938688204007443341264589034484501824598596205316682937005604615310428000306570370625585737683406338762391115593574816990507644812725745190986486916029902714919679112183315219550263768476373058242924244659670548108086357530243502648832870144557536620682634232926522353833169127121514659358975317018188232390432639147836334057380792627484640320737181290332980074179746932564994135235018050186852828649621403865488222582992696690001345006153518418129317165687235086266399681216291496390874858423017325286023747458053403399122588468547643512679333596960103021277100038058337728221224568467311728860524779488600195840007101234078919658758966015702399087937939057224884543322105345227379731350450066237477773512778415822698774759955380764097443556762676056374904953801598348170125972616497547766597313917698809433922794533816597385058309591847064448865491915409322802530136514223011727083272902103643628439496007753199696394236975997035942603568333887518337151464297485869273448697467471369305226611635045807878242816421040244399938629309540990346469451403705338715286821961280705464280922460181813013484450297580150514977910888044819226828442130255840416697280615446273045661726044968951857102420063518770138541614359290380550170939391142563685853622862974375880500346625728897885410024225183591825656491469166047841730796947278738432522016848814284024448211504976516783501710489115518685019384548004566473484117235975982101490003917529467414568649677082987579957112052764793345067481836055884119790594388337330523514021193816394803741824437857404279209251741382470836381543138830291429114548839547472818767226641208849474965604156028461077506998941881095687711836855698972305344041910576127016494805025286811773541729795289286892615027692718005767590820855372448843301560774776638189896319322335986610000280129339941006502986071069963776727621322579727556641931907318373484144175863642368608297362432514412684548991029553918764578664822895348193425951205229017243076374971867746252103148581436178453655271354904658318510181426476478390933615697530514464213550878714769179508593528409078081771486958324022185477319139711627987076749526556050263948071915459391351182398916203875412887031187916042668055544012854931875290978597669828228481457877666909278099299011008452278005955005104866200996975377954256967311928638731981853615809522861920663210622328026447397015187477981002134037942294094541358721359535037904951374455781064123834435317140644608634033148629644716204362748330966396738032847347873141455998693037158815289405151638473254382818212443512578627146929424512125400571210146530400286574552592749344487153496847495044688919019358701613851503918917109377747670318478532205533967582318209925962112017865158588270064446430981594263065963417795820516219153659898012936842221164762087178412902647763026609851308907848325106833320782236012739640985711951095645470242834090313565638556813128999285761202347859807696224368618418707005988507258898129249877126116967778529071106272265373746847636102127480296255268984688426339950213888960187066243434269915897028763173070439273351552343102199243969678832748939398050602526253453675483888258511158739361272420610836657135787751941001411248082026020812325990306437373348987411812536832912464031645852665904703114012707825408717498011762420388377256070556965715922711476378723097896153851278045539056020438529463009445475284362725221454144148844487904528735940965698919721809384747426787328603256508591916436466819563304420550991848478180224611704994857049890569206267182094235427125198369583401857280784487160675077584477121787211217919154112946423049532698407246991274134465682038301248076906451856037399338040693668476555140527404294878120156943665555976162744503013544829898257301525465924559768647924155885643265361224588382087550698635175061008241212151589066999176238654098240908869284824227571373560665874839546360442085235943185831841245422128534269850415850628052016047776137660037912698811371277926735115692442746639481334014535240302224057154310326173354254279775156897223370492893028583268894443855624385701651147528855572754646117062595205078663506197402627244483182340057292606610292815076356973122266592492099523436181903462034608957042587898284803289394178093697623539986484822076071629773313288354432507339113046142164653847872379731570157499245140257800083751012768146813308941960977182172327094154260222283863101839472944560124347968373709498145651899128376735333048912713489086688682430601703549743208953875017360043853957791422790078389275416427971320566199209284496216376420439997744840833319227644103975061903657372051331977262144967835740238122813932580673510207066735410862748745643534014285105637771161877006943749715922743662693312621250897736655577002628026110165137011105694190173115855870931490718122005832361839970709946112146914733069078718675997267229713226256978525680109099656830764143494527444973460083051256347941144605365274806802762798688660270398990638499902405179307000538182154429205630503078163982065305371800295912294059062201782205026878562972969795114249926279623159281252803119415359186629509878561972859798212961810540403187915340248586796561491351870687892048932071754772772435120726319692003233013482903914436976297346489078753243719927151858027500874265131527142027987546976940628618479660432621913267661737390879391878335783224928208336041825334210049493956179934502104455021702056016315562292351141364111950220570673244337700697912230177454255344763463828850537672582537569892488767493837221608591324334682559374976281981113514569463769562789918367672908265474566058888811629834013425463544176162167102519574872963983249911007535886593590914250588837552706345789782940250254374238539637952512949275205505958759926199244339801169552032210255165053510000614816209575167920397867001940191492828335443798253402869483673291469666460157840720288185238449251090551527774006747609568427413711890418181805173191985953205575330369489782876067320601142690651264636791387928377376192608798686771114275549853908958732555318321963762181322615844239701920314277319181060609874145238536746912630126798417880566109911100348023656922345154233633945937858345843601905760212317548587989100922554542723130914752932378643781782130333461221732223183548962327246396038304825152787245667629620936547859617901640372164212648903429434602758035154517913516535291331290693294324835700025128379961780895177246231881845846509019977833599877269996870339152553642411348411132365055034661137034028247146901841316998166786937779573685228781197007482433219583411389093228756853182114571860217844494414234986442151198471200095012462688789630524330034110894569448277841068432157368634379719485566688354555444829917463073735087711842171615797355714429491258242733127544745075081292528591398033866753685949735420486984255993678882158133475005657019037985375567014028154050788839110582542625555945667236448127551859541146073648862194343328222026310996712361842153580315917758024382405377625290305504791265603737372942265203824309943439412054450540577451714326287901119574570789158185989237742841997328386792399698732810779517478677851225454516270752792562749805458541771861469383028146474650336988562691757597054764420168393239428786688483745671448442005485450638349739672242682596152126984352423259333325978675895128962841971616139177703809010930905151248433019162154320028055919467643723693133559633215158770160326316198905976077227133200417414659726779323738169135910900300442240775196829921573618450126341543539763288282028163123631415033741202323870977732029706007203202930723068367075931248279718318447091800376480469392573086467690038091755664693073008222388913523004618363304699300996707334189931413859730795572799774664012468444934721642048624955342946284490755457204785620634270892503605180731109543671467064259288924120813218067506244150209867191009914692600714804427824221158136837326545475263907591479719758895628697222362382624352783898376419269145926220528409871246666160455544658247343966361305363878133632577840506599962392850142612605172471346898896620772788204199932295701562917646929537568602043733968056602896077933543050998654711416844993986188624207493585698749123444294012048086091164328936382959718780951542212413538468408203012026679942984177175914378157592426250266852630085787602000465158808756349326782683248684673920048483941930650681363647371872462872970661220814506133697422218590177655908188475927672214132184287069073877615011875376057152908090719524677829952344453372320537117936674736025792415515293568676631608200441815558875224690882710486252478401003747780790884859619087082428501279173200147910768881201126491531671533110271547967980616409658610784861411343722686481055105029784954489306418276186001890400409956355442459794530233198468990173124941814016854266154562366309968223455016522869993918242512764969578875681993795249417749676276679510184518093239237127236884053336220485760117457165632494982521396867604585874738539444391984720087132811297808939420071265136708238160871976114110280403756937516686646281579443678739152272533528275763169788602887505883969830636788220765333602222113538740821634309215637293385634224956811770079382462031488353278149627158972758612799678616048323601031273553918276239723813191290629395754188721615909465627343168090015190401116949988272383022899977593659506166733608141716682139265489576709613230729725757071330357185012422315625112027101045893670923333241445028531210836928846592970617073302360960636331646231566419084691333391100463968910251729721452301899260858978429589418824271501852958258572871592059150080359652799492737537678228337340485826025315508440803891254534790541700010829537565608755743090210443059414140067299463478860076011355309749134280269284550913685871698059072470588393610152508222018759862595468811592987844590555009110555402275785468533942996841100985754471492604110130401720057245205236874048287224046117417185204494913832135434971050863282318677594648585494254075804043886919223852852676291195255785036074386742903322808546171475486090125579917042701923593681201634173822063731888434364193485393055524436617592643679672897873843744588836847487191940393737235337924486194168373795284292048170365578273444124154747020756730116793356429187023731055825358746873499716582989751013837574924410018820009246821065073504151148955133727008226156850665703048830495258330857281444043122049682959922391775752247623347120946432549806571589604191303894320731347239995417763738664995048418236549115686423298921186135554043254547346940780621283465431699942355306313215329518985239404115387093586007689528860444260600174117418730360723879160742404553901860005487931095593265003487126339001511730100226342638325226719136358226096661307876759839909159415468520169759151053436897673275009518409403068317479305229857204198954494338426942898458347625626016413819997360839554545769775148795215849067094331987830575066187559560428573609787797932109185453411595419818798714204676918490847940295677903773133414400883163183427152782203591417331721974808288204052756466185745796145274659544901155185965327135872669676113450213800724713486286200927606948682429512622968741114771558803710262445901231799798432942808301412344881838804098069320606309792500969094560562600154994505270312483720747329051841723814347717339414306563668068715562866489629868798340832356486357618176039752256141777051293402307814466010885949527572286454404685670743843005590356592223780315123561073294969330596642951016102884814706456841566047996873123916641950609137783565857474162211869431360046609502911162322368812050585894147732336630475563732544322032844676819654794823517938137473881846306596889041166516437926968930785801028770060820200036093830713292133376795352212989644751548800441791358108502350640043520111209530391948700658041456549994999561767185585521102934232466055463141810999188483561588830072521468040200479548030910552807708973684792429322993455458885328924525962496775322733316108667060484252274408621681999025257823696929653290317440069417759246345774887927786773285630586598295411539156875085235702305808039847892211063058839516282380067274401114083461829243338000794580675168218561245812594162702556852738718273143475312541796543004694645470958850145842210800484295213523025697618016885758530402408323425726419776762295581698878633698880569396815995198227711818812480173995029248744562612435221925585532241651648893645777240672923466527610762978228987370785248646680921486907816380824510769483577076877061034669832042120870425939618815606833414774540535773357068087699646635840796159441153171458356987045735626201803420810627582822556597753440557271706176512770208184787969512512545790557052916695169197479919488917859205996503907172223680524878084419052503770809381279765502297426582423794481147943916526233160206657892594262816984578711319326860202598110102387929554783332741013961084258577633278271962947417509096612010170630037456832303890265179251393997653233085849479309783305834369610573994488745814999117098695242293117175102490933094307284421464488979127818722603302483979119603782194175450544866746484149588521288841930232639678667701996621972791925652937929158496184133473082435688611566290736303168129097345155350474720576619155029550919335013736708919231179308536977558689302779008407253342849226384105010802760268982962506868987106980214700696550753675204750713600357189977921768001426991941001657607920789566339844600779554884697242750834433065230873712407424364829951088302543715992491547462770858142921876610771928520039610200450143928512626915486044458464727248620348187764395490542208190330217385205545256063576685720665134842601089009097523599897347331811502802767396192739081586667199366017567848127090064935617588835461749278704392060239080675423768283353825456460774414242688133096155179407646738725946733115982064814383646185002632888585400503186915248233198511970844901583598879780563477753591700776397995887657883782122949991069964809955468192672646842324336129476932858452119255337472462529226940349047469880903611707586623718700144390377196955314946779931470731699936512516280581348659643808264973461494278597008301914781024464379705359119094334537971340591167859737208622529919785025528809965436716318313124002407611172623014625082231640755444421058024981249299035871661716577772823790314232991773471921190460987757035053478959601554404580894916255664758793858310641107577024141034889978017281724219435299669391992182232896939848784601511272363683698001801310215635754840903428776889069851219434050530676994554813754429461011180680226056312214190658856759993124538564036236818143451760566752847900689448858248480865942384584080226891733598668477659628760945446896475422379590667891404661148065160688450651644407954326167492239106391354285589123054781843833689204182695053286141033787822532762681826467469772941395207767636740788266553847776890931644888577619606181775363180088681115969284007085910790251464024879194140805831914205580271003507264360821829669282059807787483376522578889068744807279439511543074939369027831195475450348142271176668125920183590494270553649346167812803830185782346366924676927786795106972913934031691052965808552216298576266001031578030722702783230516534478560920910448238255079536829122248256170311190122810616098465513957400281466198165901525185193333817088135472150142520591817854932541512467971583490578124414078067165212316896235933689174322800956118676455751585487654777082018429667531686152467535485051806904582514614559542079416856167911790897646347338547440616173285316574358624110904079627034206474363013168424970651595812533439605587114164354274349852385152794100834202591146066857384329171451440901346892257341370432059383617544763818924759077693655555187214389566543809533363416497753933051005085331839775138157681301208678557386263363077101101595167797169825889376572229167301104568688540848563194730292638456371154626539187057724005878581406972331190161895328717293723741513380163822925192087909229618441426201383869052418422472464637345524952994469893098705663162005539306727675218048007654437951216472411901172714454604930222959830486020871679807425062291722272350509214716519510178090128539686336714671841777167192260053383808658857432041717223798919572512287126167214044043760979510427824581385845757987162432069278298124287496886969584500095769928351824877103495223501472542477157388906905305018987567740972254672458252670929308051887569612076762847471483117969765098109616643938527844935852767244728133320681540600520825796578251878578805178910927668689346207176579555856341983030803627888303909920668840815828991897358826031122750362047673312573451507154381746251223911162441969634806561684362470143413134998265171489292117090613731402526525649532493904649323402712417824373343534330150305947449976362658605987840955551545600145990855447631253173700764987588350987424634900318485870995118735022072692846012177046541532555446307999420015514047842427397887416356916171620365010792808319509416131116057771851513727139028401979075896410325337799719514649916155324289234314343010546393187777363549783677810247244213915303369956397402847674354990284644367196060084715105480936016842063648270374740330910943121773046484199044946885066609176021803608779142424995526729702469439027569440566291127118867765333594625288140656118643950663296128334981098657307008210735961558335087555650053112633679507758060698264623197931409940028951113997637375445962408103672253063289470357582173539592691874350090007868486827680662855453296724106058479636937245387302696711269429028192112469785213988530503373222794064126073646558470141365802391008734391291698689441332276077240171398142217137802010674071882425595354100863667797177426689694890600418349588544192598976821055978439428264835844888233486455299523255837794866160393552750006594143905126263020778352245353712384868752861293551349330830670277490030802684341418214508134207013593931320156422462097505479314212145629500261995704397345935046769227983166713676316436090912087112109173560386555132457707840823480668350509784181377584070823467165251692821112067899300670362022829355895322602929628833752426853197274902604917236444249972645533210488625939278542817744440596033001540252772183004110110311442821376514778384509747814189954447544739575182837821722831884132559529479035833642743888444552123240014264650604519665351126915003770210633426200596386291601043825960824529506103512494415003309939708874405408851528883208224806426327519532320293025565885652928996165404952590313854319892166433223013272901387316535050684596535112020331560268136815975294992374703468011211525600493901893880589652187529374834151229516980829811171516311043091701670891302396848181213007910123315711677072352259612817923495007796628777081796034175553268520664516901615051907514471615551708521171495951722462441903944163644853181344767831115991393745821314797148361506231401482295431507865186120783485745053029921610181539460558004653208945769641301909739562546277652069055425789410181464189018642956073583568238971791217795073158730848600375673717695243405515802037056833260641853045606640648661128739742555291071069863921217028190686903092366735425642179013941297127304945184102724437637798263918268640995288142717173199441086697104874457638767979563570374074446935388027138607496149935001929542501449145421072580789648826706052597426512328133551595040117037003024425259857423295185616809142051811073993202210710997888775864101780511560151790122807029748215662367040214805811661375081646289852258788547348720641414799145520657611058415652520523411205320589529353740833475662260913113784361040514062331420411740716384891407301314605427443547591340465626288281825664344402371792892967482815938110119995131285891105041442307198915841192992712919215188372674949501605518131099173414267673375711516266419715662364857403152413808940174624582537834085408057966429606903962699136398323319056645042072977423692333106465202143099595217480889480672615796879267242948241165436562875512913215732901516701350471408588397827386374439960427364788595451770640935054352204725827887952995236803107158912648628321850684190737889549407146307148715203813332697460465418526045642105094465225314001119924769661910119519129606116878291336519715576607127332426310205624144904477972920619482159052298265343110376263290897570014686414247018850429483645934590332172850715123378159608343541442599971314504938792851092142665095897214972956621588778792755025605855050200597278265567351640233128703120450504292541820392202701683648020972481564267318474542611257671653676359205505384487356027282441862725161326813423409875950079495335158017246107750766877659599940784709018980347301600138635031243920451764383787512100525500920960723359828077271934322922096597438602320307886051328129944088691472411033758216831708288496119609437708483990297469712642827959250564190845320115566367740218536085051272186000304736626052475605291420093307204622197176783764260698170758446635872596800118519320766803871022395545240302760027646605440096695088830896714023961353524985641583224165087482450698098871390280720521318250263455384371155595645873642708951206822115463337281737681510546630089552280311662712513657730951785712884764465687241407722678463615865132834118215061017767604898760791285387329596412820242410116992712818571034157756591995155746059963877434745918752842482848713232847871729426686964526801092343229984946444286751759773331358696739819422260282082265628898520746301976108813566553069354225350676448466018583397550170812792718328644500036458898073919034601451149830618632693243882792760936885974872301769825077249501404214295219187951076587785685746359261492010233129124556579626988223919213622493312443290666128166433385746236608340373862782281741731625763985619563581509969776939548621224226681031841917384147972103768508255219389342896199465400974015183697110937623383000812223623192840179210568762026065638994465714087850112347167953092784571664786147821591117125779546827373816927893006370092257708218565120594953933742815623298287257150439398450437695360879128684918990920843511647425598404318707095620743597016849856528573259080590700952832512231316571684107527974758182135450893523581085594631890561025366368610997916272561889042627136607265858733450103605127465434166436782582299965527672287375132875936598888324026356056903589706320090115483831927273056492698673947346952061777242532956389673221448139750588451071984762428343011084967757474312390154907199253209160426381149194674409938976116382772040813107847787262333283004665502036318083738007450102091475298657292613245115029537182820452753251777651524984584060618986831778215556993645968702142235052994737645021495608754519096939418985410457542550934626416866497560662512536735641997390137742445812430833749896149240949664338675994908158334236489751021423307913037988721276500465447607474086975199159812513081185577065751831089355384650066435439569360458767325986767967479442553436667770697061874647676511494789923838893121453286577263210906539921963151219060195001422823747733395446535263612930878090520134399264402077811285572152434014103345586260367114007966366766823736292130004633998268642717822958773730283054959021324032607615258248563720545395271410258265832645691445523053728458729835746563106842663892475789371971020910947780406820364452112899429256213533052427917715736086137885214867249302703316371930136290556354708724274788320533322405459522950726408416611974682712663704921863037804249429247082973139731282696793271638304091922974471763197757233293390582571460339166760633747808599284222503775967799932983828054794674494735083305033508231735572818909089996910420203573745385175038967836090299173428412831577721745406416672982603840144445456593474042718792556854609635902753915382539792780707335754525785848408062380257732567122518160140055426853326322225545442918273019152973929030423466944930392895012002879322390905257823890215936692008262594216966679546004691184818734796175149712793970842035406934901604038734070112240891776681477039638031852653412769160894702511897485772346745806548390063182455393366538916912968470920433505666287507417647652886667652112467973150673649051013737780456137724061418732292863396478252876016505227269968134496185122642119571809246079980346788797998628420955089836667660625686019446336672664336300476527785939338787003900773657610304090000996805581999800416976577087589578404688424480697821362986278514078302757523008531518488543644857845084383596397980067902061712606449711595643387396496626776136754039292146698000139122278974550557536844478074694951092896210642933438901812690197955094042721220515096260990196071891928624606634012662514355703817180703730571770919606416893952018803451050299302990153960633346749120796341611303060229748794934226077855198944661611089442562529493430772147114069729192165655412332662908866878029300181084081637397458108578285948776039249663991963934261123371979313138680112222039532919612500924320005392178843700480681685794110515484277514943982141020681675444257169093814250530550706423633441600927475436296176213014385712349518061038396809933431449489793110818731052111881190644629855410212083859748381823635254036851378475813133838486873853706725975691126315865881937322681306922687148242436661688061529602141639243820306374637468596804521601242927516080713385388499604092949534444497087682131740845592485136176887885355127216977528614398477108509032281133225751339123373171906803947701793857725405118415097322142509248196891956048159081800969100490390570528091114404938582050476023773432774408069046393544506821314169183996027034426535963773797745145705168234836114850251360533632189807716178802834761873076865185128707259319159280049182142357879889690529161466831719698686763383408716141247824483700679341030236152417638126838127198772834588788737962323854825973933651056376333171048087954209434831935975051518247342744785133515216745730653178582961201846539400352130604156911821836387376213430623244865137654357939006821300380972771959252952334890934875604455845932146174422948064120092628079768640475281844268446610200280400938355509084885112157071379300845973468442229093440926196778043626714039304519960941010116769926987483429408911762424133410142312983605825454660366744692375126363542828485050091534344808558478661427241195751533057924111847102639691788149174412381823008311499003697957719462328557868714312368373772939045203479163293914686717392258670476145984443046539190807918236978158349006747277087337376169097969395089827258012797900253823548746799925490709696202724160649891137729408263597039038377428457278062314970829995904554279359915132506966260014932640210041945382997037851315867513518451041022568200244061693649788138501335973017972573281840907485897793363282450718872005526310875725923957290684676722470194450546428249494490256455945181587788524578371744960380813459206903296299713961872997798188743909661900128415641816588604094149171163774083645558796442191238314953468001183932577475954023849358706468502679863078081972328017682977697904442944809978262733109480754021229821325253633761972375051308615104956598379494760570156182039293439549791643253619966016408666018381721221979865075907752152833121539063848324307910495593321610859952252121363912254176460345722511211568606922196012950945753977333160621283505229353098476261014985464732911001358666632206461158683320256242775329755354744342378679112739774014471048301796953334151547682305233683348391377077052014754409807424010258711919165201832962524204215872921610640909833444317747567946638452799441592876265749467272022668238004586567713823106866480449278653958038193985730603385176890374761008673270277573038990061454365035777771785228804660454387655049122354322970326893904574465972670280428919313473695633226457767829104773639241984586262853987178884633518442494136893137051839836201419873896392700827828026788597844265171592108226465833375743013231247598441698849176920951483390592592561289202971812249276305743497422443847002188880252655722147468906885114356618770298395207896469939377917012895956868465242832407995081216006694760300770554772733655324789090858289136127960786237503918381145848090060571552979665233332911821654056726842252089022757565806386825830529936234191180645643396714226199297749410543987060673710285635507596534456839663283933099806478258058357251819468621704059662705307892308754194027130154748552044016444187650362249772083248652220187644623332434844330207485838698051149254323364548521167771515764641953489116444367106456763597818703945766163166969298467452851096379915723147252672292571435950087771000831267317984413932864863968284600611664646282916011635936446066960296015927749150805732119450522295709642406843426435078922961937349621338475158807129285797047015095353662912634802006266894968240705145434379616328392473945872944871545955650383862511491361380330805465278017514350654405050228808895783633081715879888826190406669383845852632366760148816594906111209956896503214715499012993671358316525080113757465745163009438091830093237669896140437273831433321431067178819067855914218029311178079682388468135429778301005697548696266194983184542584966024100229334250298008510762078961437403953455305022779448109479535162783757964318278526700616865190679142731947697870132455142131880469213113657973131307744401404717303548590271269465387032734801272966069373568309797029094706897977908032578009214587689849395369183850235404029883812727723681822598909535064644281868528116254693266047818644285833828136701218570337839358134209208525763158369750125786698054459366536115405430189842222066583263470426924206235348318502581136955865121460096902162534510483912104031502206985738280452028398189312813146346300942814043135149334610576949823754535215881073291318551962802569670279780838026676725148534555766370448446762068906883331467140933000841963396926846177095346256387612790850310084952504496230077135061395524120485198081014389154001965265274325326030691611399344695460318432688929708577571072965326081580531592846963940674069134625626400884042326662056905805036862226126779918764923514929193168228680259782132191117662320511924548687917164004162286899989097658468110149634247414816683186496809522086959774762840232507409039484457395800690270143018718253268168050887302307187753567558426894420507303200699703099459768699574643185821919609143947830890393651244529360039139395349802976885606006472310373999204957102237955004325015389619748023976955596597754122751081425880564463282629446465091785487333081224411779681652259243013982917207196067910021759358596974298160077234093549189989488070146365582844197571121949983189528641950709696570236004557481564076676147889549350045864812103774268273301537333336721605596924117798270735023813244497603956386519912903931577172665836547106510832353379872589346513603150159855299447258977791872690879954886722230795139298364797980156426876701606086004923243674037820102034229943200145945467086865342801745426477896114124561070642229664938440333157274127778705407802050377918410432055151844584395008773177851679404918830976688237873756943375009629122900245976715651139210257738652948827829740243972196813588857101549679157578362176535178237076617357836822033618726228090640289758726974657030508271257454541971198287536684402882332103226044856358678968205314695297151167422574093418128466256313281048781399887865943059245315357926936451202563603860973756004136351045790883980199565524880926415656837976252103071751384869522765942348066402231000184870095862179242489463713240830859309430213261873364258655426787909144712499320120174607406187453614876985492773979329361260741140627302805411030346528741043278484965661884871472858198246253627356541455023958589818650475341600729799174837612988475935690921599867109410162768453982225403687674478875255695308873124112018937571072401808642855801397399922929783953880883497839523192071462532716536351745960347042774892014244448264781565245328357859533996993901224183140424217733145049884772841100444184334619126933272013769426604685212327942671516557421313763791431964141664807915863980565283482827121050125633236629357170556162037720451534059414912573914751030708492850627442989160859360337229432236707037297814220865150023301623050605983207656227213437262640005151390543936264522601677117966986441290413973411312185502569300043071958123547477689045295983133817743336867488067080873062313980442840768301021785761088123536081162629763762741076593589322585737553338514444237874760975893878651371227466287264061330534969212917943506687622851496090948681561715563221944837270106296708305629480757572401585410995444875762780649925511275785359112789897728234154990231153168200049531956959795425989505166681172367585535722619267151890830189792490112948700773418042150016389055670462374767706720183566130563640790235236978031688885162273620525439030756681795324300938024045763842402578778262130609456208530679533845442947111346885762225831335409800967354861460097318665058584516279133225124907761816208785123079311680462828749083635139113038266970825023924475211679365991781346111220993946458175412390048391194999302273710121474318381187153421326134126061645381160400932789402051719487235842860412896312401997993937578546100036909457876640678005433413560515089463163354734147181872656637659775239454762923292207861183479576322924301933427897636342025387690544527248156222481559557854535661865851340428713015303917147080611244810014739519839559936707560483184664701889694526996871087349331587290065697935955010209647700474014722012373518720124419439139900809889437329765706581423127226555903369957158713789946138884164026430198669949159266228373008518709977247191860225418370410706172986874475162195631782924101098398448915756654231706050377143751070851705978895495732182139477218639369545881521384139628481586776299483638842798946520198172201911327927385122144388348439344660467108940774622769081084507495940274490123890217092553534650095159960759406146893623177906161523596144495235666036378990230701989135703567401825828251392981698020505985123361047654170313672379171654268360174672530489665836018483784427684829616265942176619337724044130392035800055275598520637158812500273987969909535072248405930877885319687447099123982844952263292551253873660578214602307370858581236878008920595861643073280862225357619180832408351154989193049759754863092890797501076346110081963639254115441441252431394595829486402389492799468095419158280887957538136256162912372555274247987895605648851259369357761017660131981299385029492043730821841855244954421108071736601859135710003126004437486262727913978781174246708173405098968652109508557233575309892451788239447056223160686438581100533401625542319389592767762901141990141236025758943503577210735606875305119736232092775459721745810751659419217683847430704180263714236268297124679340415559713167245853698287322822786297267985039216442267819400598142111984923520646605082797040737158350657778320141312445763958153307665601394485746603732411232861503247604431954021851743735265863107453227584474669561574214648585925153675161098579994785411308318352953249687571122180030052429096134828496826232780257996332091595788741031907361004460901404815979589056828627571183307337769548147692892290553271812946551903421689472728999933552259413066111119747776250302549335632793109837922630482367071806191557540080932750040915417134340472415355180414990344370827250603576965197173540476484703924198582622271920382960097406952051636075313377764342582932867838091403948053628632458365325419528434526820756379548165945859099967812862906339862887177405242276959614338530168772340430788653771149380215828665704166372094047968007349398787116779499277348113138922126340845780871016074203585845125003728446821677851401045091488517185535178435439526329456096482962354884349058862947949140228973322477503301115186647494246621261677055589789421670803043615254336665986466216301786095426910425737520767276258318290061727492660890354193514810780575048323154616629598231383437817256412126087791662343443295817188120806086269373590018671577863006824795665783183853667612536112654450653499516429134163833875528158617255581519683009132944107663587663122160973240879818825856965482246196134068900554579719857945039465445156761610972182505024188921953566671108094188601158811518134204140877266879309716918224935934579833504481920954780406289790488649367262424810024769370457570693650157155920225384531506880304215326874995885982985907969984754053693299351659323961401450939169455295861490650986726297232349386367955375777744645203919197351717391043488032864507607834783437706256427683934638294262712432344744752086793338249644296483186110128536701007107143422705520654409726463697787736840900364761354481608152769021284439688945722409117458340998625890852515932721218230879419786506765081754590589266664169469078345582318838683523409778823604885811172735007199222670503692801061026195753420972525015716424641099258729689959506643062292972516475012803416833441030944348777901129618804106033722177457886410559457325960604555033580186174949393530059212006075878523314118124842730552759318688935830465736352775689553822201041745274581573527267829985146682327316558582813989778690328455879357188744032487101716626509927760165402562355332127408571795274721759764553321943918155991500312179617351424563954952738745383009511219631382897814311957868333370682808096794885585951433397658870380673433165191910549241295057194479858907604201421974568035647692183137815070167735291116733669379079568884431578267239305411588911484429605354199994649795012647799956016505028097235845435753657208063107267396627967306866214543879566360957526887542070169616651521073550992635611597971436144790621691840432194152617841148513223578531326080740496827204158867517434391848906031102113281935954948513995761255277498710006145646934070213972867782781953981808365538101721248204052770988890892825949511701049593426531023628604497596006577427608427688096342398881446131749658884731731012539717987274700955002695001789956361029221562723018168611077983609400441173972256641959124068780148311165422576423277666668499605057501340212999129982757397905879554150504838367686692617145119764895127818835886503568707016568164057975375789151793654465774518403066297113142871571905447644190878299379408795029053445812275504896378755809003265350483026759803392317661234165608661716257178402194243176266018568399239167964903461123848516875627906026970609719087989055783366511205276066371423425046454098808898269720405103588557657045844029095284991246354916167678041675823502784259097240777726104673290955026559521521701643084781319939393326436876724610615808798002378548308206382823309985561854830589175178974831180191643911006262084302574320496704594301736790807273858476759888327961301979286135559806961429135307256009952715665292116140699926113512260999037805383152303204770665300976117435425942055583694409519050639622459849219601076418172468335621343989185132705040218375544282467560839944612777784384711404155879220187461555652066711886251165789078282922061935762803199629855486720520448225011537931640179427129514774598750388173398584748438500677535661180944484297325403849178994943836218984999402828556948505777309589781455713377456677380145973215539276619242197074606721578646474890058254456508457401496687454792677093311369344935524414857567594790794317743515787529605691761819368376107648704693666745974905354679757123264983863210394305380295263220896930450473656665570021261511545179392662714765358416331633197600144655862267312121970076507797595132349493172666214666401759396516544168748426470467526701962603967895759241712361779202695884242522355416167500908346467428274690394380189376214577050717390359874988006096691973702492949391931993943360161937818774172241091959970446131229568836379559428382538859156761559487152350065167681798038432055459828451706521748321160272516056550310948223620943794302524295120622972580951782070316416791473377337805874004979498580148196100806092015104656479778927002791335538203419026744953248644857139526392947505402159999475281546786993930196281043497400476257066070937813708913622530317781818489688377333234900383202331849681431714523907701535876271994605930154555545293738539578610972912613328566118490566327221602945012955043189090192739162414002995239926173992530854048052775819047412030363087341115976679111385587403347079768778054911275233991614000160489709859433860264538516385663778026190055846760075903914842319656580660020887420327339572370191219176644790587286591337766520838207160290721751106351533682276003517633232029804236691372397327907512147023516090517778398673760745376664879119080606647976561006407333694577292052710304768131783061752062232360486394968087698770684362617584345610961294767332724277899862656037502518963735611515659621937321201712779672044465792888306463447925776475265703058464665528473357014124107300068054806724338452913780470612805708668396101376694064665471220013847663922502617799485894498296739340513272484775204545579457205543605185899656112924294350090212908012248880950072566359267088805121957904102117057105159130446730267320514687824061568800004636466805467302054958222728602666298860032567131244277709110332787306153973195193890317818204221065231548975711061785602297215796860786018900056697029151111134377060295693312160447710660413526269572980697537132058300800708439984317412075574181664590563031399942235645289225082705354282941949621313290523482020605381961459218134677701548896643915611700048663805356821894326128133237494227818738630624014367887825189337390285266766658136807284454469549591681541890519992786527270398869093515046226541805646278643930383888375228650072436065003968277329492323275059127151352250046369831780033327227524765467073130666315139546270011982319410238496432933515974877167877797197453813795127120580454159751970621390599553413485004633360691573859413734632562332286910406420870679080635627353367676051275429003568038873089791520528857777045086072169501542725807764749323179463526371343226743427275805114144126175666988183552024250924658980044417751670886020010980441630300796605006125485454261209917047031976754877517850294265388619472674217806631717541675579621781794671028988772217441921087828690448834058807377042744977529433356610131707483110769828144958253627119329615189551428913428248401159085033532177722301038158463923161976614972610302960918666581308035483116891107845483126224861406704027911997785477355055423825005280667196879023420717890482241258499152825142098611408462516207302553573681266925082543831844762875357289992725016821679366222007586808266338018908174499736871428677923530466461070402740313536262490783690900708578915632703085143828886938740826908062227005251848623476751449195764907923717376982075187682241510862984513291723334967754061982816932079952618074804258826947288996534796451015209912557475576190413480373275892503184397575488482953450951231913076593779326566444675689364801531161629586568879626441179027635221283463086449508494827769281944692163199952888821020074950123320002577389194625986476736768858939615386892007857110534184502499635427053605727379761151647956196638821602726198092011849241387514805643435532775630050084595528846971815845429065665363622044813115722459321130858498621587484411955045073326974931240897740233340043828816341098796174196734539186942216130707059875149017799854244269856938002742640404718356596519460716477244899164350793882249565251466081353748630936233430234380290264096931628640078956963642070766279165160301858214686449580353775878928903864558167254742373410167964719373826924438220102422915608481837225295099750746919389924490659486441390046212166094943528427062715188392460703621004425330141206984870711338724633921506102267723671159247608062877256736195788846749175593123150568964634271953614991890480681011271336825408993792559243676625710477881112398222091512248006657113256299283108609276579091763989757265227700349496706203463361884955369766355802655616930620532281201309492177042717664056116492128955996218577409225474543470430290057982796775931429347288849826928435192806475349550521485998303445811427471699761512222195952243894500007944639939807769158706555081745905344330703531238063457515081509842569185915506231964298773736272037043679241996811581112930789873221230404472099202985164909130952214078342507022402384106900849671776090359171936522809805417048026536173586762260890016532020880409800833612378184364090719940504792048130403590301659650355145213178781715132101975829641613663154203652793743578713382982894773594676126284644562051944782207728362875443835206598248702359001519204528678830821757970299018233662706300443961659711962192970917052199548305894123211679729891106265475534629492064688539695150339742471680041747832826138605121124603537789049183971155338063347477510711972700396542668529196467136368602356678258214791940962841510632118091133394616126267505122247516306842872862912991763879910477948990427470464839877619991817374695369853086161378341187800900604981993918843419796555037241189615714882005647844399761580841812504369174888560939193474727712113204146592226202988685643780317971963538782813977616276352791245224994280336867795679873355231015771133175583120564412432203634779729714270678540577140229188483464977894951677219180118141581845894420892163571152033754615378406698553651078344662365210157326251800751497016962954451526202657171473548245673462644577047792567946503268006199004012655964723125302738453080186601237497387343450009639470141875546240643784337230036438759925105966865813105198527902415316058563471343190947812290514732428669027462063146953274797189375335998254647616243766862820784482065766414220674435895383875748841468643230096585245380479423735809715332135792044070809850638505846142902614284239243549586878028600989409383906899096014030741614127134528610440853321243495124521666030342950611859796267115865922485563732975112324362034550712867039821039355529161922719541927201136802755006929828402668151542418349891620452683690615292559561098844012047954475795905873639172925804663609233452927130308659259592629417355020434133040707091393549060383370354026602578979795200921432063599442470772344961997205037451194016679981170458817374173624229576107221243108449334599422421441195574134637379651426309652079770038080993480245247817813218263982207283449091487629702465229808100507567411195378290652550465891822687713876589408363357903074730452734058676602037083041191951127771823559322122205076552370422396209116725224209461316514525796460059466759844715799510348408644635769920858563312959686228123129789150230146424707992413284994793466869776443596552360429096580920775797365414936701388098771675890458820449694943318450276766188287388691901837984079680548585345555136547179850298772719861763287045150841655786288127759090370027201273144191281738665095336475853006023026733764208690200351584653042266197348929461395818721943204022754856796643137232345841298479816853844222434587717630659197990323496644838541922898757131148396533571089438783047467266649636950448099403123432816628565536630495541247869008581396017218921270649925372842963149734484277577208030810361835505089771741192160751829852344850302655995585125692305095349870951444428813740183069633654463495958650430753762439891821998291846498951955571498071448424436634282394105396221447752151443845652000832839539659309190026181734528333128543157522981302487029916074650789169148403771924477054571358726202072003964194589956531539759484753790581926000877545099465939280543759561939993656923629730674241395728783156510954759740374515428910735746428108941526529397597070178849427301449153902440004889206309604704109227259456769360744267301079614493123400175994340035670578340307293064528006715321516354878207399606469120401659057872145843432541831354527530625112063248551910567561135584338413451705275915844320250749386249493036165855162577297570083900845126055402803595968418807393549624914081587694810976537738321345282708522806577946115590316201825548523026707452286509659315476592441289395910605120100832601301137128209753827668664803699329902233049667211860917590599227559621276224207426725332572333808809617614777186589264002846427014106089785274654884603153254665774770898063106472912482395259938743260463132754033308355152557307786687313357411849704781207340435630706630734983091195288565841601127323415778172790029166109664331553425224428022768807596519718453855863225186269182572881399302594904499846564326089279677470335253219422955252171438206617913095462324442456082046960291050996179171603149042549219040113152199028637623000570328261120180260232843957555494935051033429281262952889301540407073135568011172348900668663075101257797783183750293995706981329427508866601913470985546011035190193363665655310193754532663014527183995674365318836190449217263174500057600030800430370922121581361361275749494103628864819456243701159701845423751514518682478129017998700270651788611548702530810552232725822348773340155402604716845005400064952654005734090086184968702738336664200745959198795035330735141094679234577065953656928829958921232200192335412861622952591218428816342421697658381888174245213356465193694454151489295384953245681257818310854313942121399940027976214995346411187641166053013865706138188078869133155485303640205728272520082764498156573949860457941005494565978158083882036127017213032189735280134381546091806806457518606041129457154504453539186293666313525072283295516921683681425097904105447707717871095505672201358260689147881687548540176993289731676308663929183311731463208006578004754360385318796866533446122898677377500211723007326081161152746684720138813310398584627486125529179404296393482768265359689420624053187666058436984638185354986402683321012806770275800107028072965330821157780026334785516812723861804832673055759547034983852335434179851949463863561610717557689626366016441432061575524410699052287445829326761978763395821112152079179210843624978142378561850286942220739133221730295742761854153419677996238657798323544412963421067679465905786579753942026827403768615032274961755326874446646009441853470527252750725267022033175534418790856680854785720541358730811530379940306645196516907183380891407972771734554263580335274203223107716314067271991897735155135313084899028970693714289750689093645117685971778426538871396551117606144973420606805442937357758075341147489377485581347253731577367182260325625351609347173839264273783423466820181335581207157688135854444532927942027907153627082234186188317338850016591505741676066822475584625939186871062472763345664503518090754006558011857644790577662955201859518493579595098710827111488311835673341611129138152672164030669540467926986103346200819524607323504732190113999952779467460140675029740333933184702067367393733880062284095558839191536117706879053628346234878381756994886343222158719315626032588418634076627774328865859800700776486015145665120887510738278753309465057467304610638919536752989549678051543553932148760377297781925539607457451759760561990747254013861634447919355867782260665489895058099486186723583334254558783017323148505234877377558129641976755019253390552287272666186220917314250629920778314646971673784399357250453046455519571858739320974976334074772263384469781940788531673976333694632198559230675681697310446299210842609694303227013657492614840160050307601090636416172109062735212538575426751956283703683237736712297998213016945418837999190505636712214525657522924088633124907584766819553055276170016245649474270626540775328034573447598887460802025007104675737424871642415926114788641901721865420086563248771264712697097216752810784218495202956592651936263825253831537980493880977671575808983759822295249223931761132966485310916134186216722798705186126855281561571852435298689097035824317643838154404033205890582986520996647947998520743146550445902972205457319801879655251904230904808456077686967947441446704388462968906770901139380941470526237100013567363832520143677546421183004018002908902217823257800668242820927096594702088069820131765808107425392057741924203575989292517117818937504210875585521667909727697317965287162426817066117109379823889275839062202357033098091731172618278897949939343932211989630300677529919162867948676749885122215343179413894446299993250715939277260002819562278136214638900939844243278058182252381177099894644255011752501760687428235580716656183022998715007895995558926395686110800626448146865101579142747390392920062291943033150728836683155721970022756204217862352795919880277769833479114127860546242636391429438349654458396758876604914270084469167791357816759604161477781602289933110683604290814154610043559257736596488560730178967770705381504096768917793683762811327753044409065276412651285152923802853522093912779766813893117986298811244731093794171647625954067489481254764113684692931697880824078130709645054362456136868843484615097501888038793733430418738656454989849365418343231864715112085353587669651644572763889025743260896334344058528947496425057227803580044628124876989059087844088761569841932014384316149765472161944788959902648547807749953891445905327750587286600332848101506576635343350448641566572205162833833058149038325680122905941606412224968399053594011006665142053304472230802463703966743345373957547861301395157003991057561527339403894350958825866091063842672671163062043163722802797185062875121021056224052471238450834891422328134581021414910542912275520673214935055955584215822656873216706635087514263463251316740347666160485673444315373539299866424260800665876010633302678638049526111143239086747952821776307831244946476965682810732768706768593027972861365441706207639624088411506461143441714781961040119421036712347511769476637169830474378962086525549255098765937662213054325125845182834875258921065694913746716216392988725902099699495537567595161621582241759488393600686106283386145127841453468354337004022321800865755508494245015109983518946872679396397196785541911495234818746338815047415879590225693970492946016624655564456121496222341286001956830303700509998763000359945335966590060864539094457455382026384708034041524470521191826253838755025017184360922191947835163383335182254613198415152417525444233957794996069112036734643266567899314392633693066956686814608898632385125165050566425051700193770989067062094119908690960178152769369655390219309475428485628671762106693681693714504085050861431582045121138146607223628655293799636537455122716760386859787202609413143061887543793124590940564921751362384337550661200523791214332843720376838719849775481324607723406975065375972480870183790967916683974041629852096076939737628740645314798075365907464990325741205220021691611217445012000738477416607790507752551562008520695109124160240204054527888060308251730851804694870774281375211757565240733973773829908818393683962214728380681960471518933026662990939675629926630696048398003367668406486821201043389856708333374909655796862309912272452817186837296055665700161702707267004042679178126748460338791893860957781210239486986771614053030752453269349299433499327118476714215890642498740237036174012850810271752464105526516713051871350859231266948484236678981171522330069263919007860561565804261211970400295485544551044138161821892149812594833894176975794831654651599076368930378388565058415890227876305771375634429340517044059237794996416958515004396767931601510815388045530534001864410538726099582622831814221010284025851925338647874127188800214871628626606050152765024728371375035009190731045766331605154520881258445217410274505721946947543455760992130343764374068457003117386712832905544200492805685773107079944305143754467999184382861932951241583808803990027005458794057979491884869087644926439710144456055854012360096461470887363164049314472978619521883613988700473936879180988293584244410456295709825279012939241554310298806002142379748437849849722923814364587662420739429985394637221256866430595395197104854869409358920084742470499783964257079895600447212947559033720273597000690617173099809398504796624100869156627244620727122779560106347698420270220152935827372889299661971534126155169979010128854233333019446816768470622763254562161098237770691469826405649698691213383936315645179328958146851913437426070039493239226107764058824135540670154229518555266429702777100712932712379064918730327636392136036713276239360358742008476658171423555544739825102606579842366587552750513070912564290538607335033158854505439690832749005294615993666594156948417785350039902399325222790546514360493744893040149377592732531826445450533385999082279149994083923491535406728555742849486523563436986649542918448237551607240730285316274371220846198895399294289639640588254658310990701824560949040166569203130624480981118290215750899726296880025115317240485019070154946926513336691836503186918727090700431265765069633320592617657345651639833122131623803619336515818270063206032017386589064182772973855427040329527127147094251180871952915037266844862234460689698241314563170968455072040083981033622522571060357211588263743318706484179868951041267421163735513864067113723132304318013020159174728559554850388338335477247767901740233459896019423550675399728015287794298379661703495425095997869918454752749265544481137608882533891997756325148183527352551706354682993530013854406908404213477418806793746443881732526221246883846206678561634839937346728225153689759122983906976838155398361827753206698547440576739433294235458229053937443357913853225537918104372989410109515550590247810085855904923733354540302755703952268823140521047806992584523571571088364284506162716089736634135576155127484711813415502465124935635240768985893208191980846091287279160523615584983638458077544726582797434292381764347486294630149664254566650183751913199416253163625599708603166751857411844940844506874717632153894913574799073934130794457488817383619454033778129369432045674787123818741674498250312437889579541770209021092030846078116238488391499735237970592463664940948383652931516624686292915592571749557949188378592843653574934219285158241466674098901688780066581879505810325404547828239845907575743317953240740660091695284068826699292729877341607691985067478353155783276141929110240142133859069043083643483790033044299124547228242894129516642944343521727919654041311511521124164380435424107280776702736337714798590522587625209253993730071466521025335555088853790312535609235993003383516925510043471369999916760372471540395357346954703134650873010062364591203559413626743476053325409313305600289978687784620628308858264136261522744789707991773575474310989360356706251635806787519078535556645381992068485582104936763612525169438376347195461644698539373493472322602721676324780467126018060454394535662210572471683948109987261450500655528896908100122195898455920693969714878443590636719394580994262571343728804189304697982984395979067368507124694420078525614446313865347648551345132508533558756926015181998152369149839401790541154313118203116255195880231092725749258843213111841662475546656434688743055479912487589802564002764603578281369066284307381814750723450486143977073595809250199045755624420582035497831458689754746583540967787089837245156011352104467336465816056397487564168662966347806673019560334544935453541036790695476923484762157053173245603942199115080437101101538708824576417407821478100083224745966752640423392025786927579870239577488522337161746906542912519394079994449807447733116879262595750903111720193610334358017925456802619467494254657618799277140994816160040324645946175566153523570727757236043270056822160758342940786968107090654829803570103126179724295141306076674686946121774916754645586067714232196692912202879724912142312250621388892511696944611266281649630783834293607471210215970447616388562868886538236198815910107318777683829495297810585378912864292590258831364486202320130946101412494511710244432609431314674730116761203527974832084051467523839484401154437448278869720810539500607698882803619663962683416954429315064400361580301983131147762528209446251511578163806672434969740248178125959197581612634298566577367443338049727585302264078334605247336147018136214504379005637111439290678669729952448932642111469328419831405551331942575586818356933014294024011120282425380916267847098805476787612470756647742834510946741589443040173880316066356650762793910950422047598174793600931562894434831858597556996876812009264911419497629445350513466758978161418550388848538473417684836199212975867549216837922653783910714632557692768035915122376164969773249187600108800333870732531712547044735390357641295801324714440491642189659910377284666243642849685347753987909726791407798260046036039410271216799780666374324281224572377559090465525933435614103828399709733525287121625358802838254883819628583843032788575425203814487466753568437807048749147861466279571855144555876390718100718063473262273034483220795328865165700193442372066201802146901029719841277653987709055786602681733765789705987462159259048968033266345085824100508655264559042047048920639441652035961884692407862995678727564615606229202406202763045909504991280747167395281323562284375749893357243325249996376919326252197342221211160418547137368994336612174655156183902202344229114260519271519723322668173395761210213246169562460945756518699641787102689614203002850630607666410573370867331078335865997513057837507986953605693058784603594167698639565410999706070616408735815723016236533451827672163027403206179276044483038988537214651134586440215303888311342279440464353783299485013819503588723907208619545790089958708892280193227383082959751871244343425386532785675702396306463238857521819225986934375114614997413166823703275682285378329504348407092709750044163339285595842282632197880575771294423476901897262959851528556372052876595004231571544927564423064767172076424438028040247664060411636466144820815784318653634331899250055707265393070931400870650201061934073536179311113392028753934140541390239227471392986214848351116531846128163479655713541192855222227814242373791852436460005712638409431392689633356458408530547042757315318142138159340032346738878497056504213140984943782604938220428570610796969868929626034298125436209971802261365130655401769569758209869133543451348515886661959273944427005578501161170932558273015107115039863396274201288384816662674792474313641798254478389371129108543712031350485145367668680202597539223571257282197255447924897488721976487863959612296943947015285693127238879027388959351014264581228758818646860231063625863529326917356194647738583767315789910648296420229799644265923866920865233211510062315681353352182053950078793283088664356688033840995054652863050216470152640559984282015402116915887369074698803218385812533683071073914355933296214680760853377353841582956575597853098978020300311554610199840460579078811050002320342806452239454966991612488375473730318887161814372777165988816236940776555977963887094803407975076329757525563283369788399678872209693066211803516406352376868473823947807102517298691427378767445341777512864165307978033579164266836479745706261354380245252748901244424713111697152163276175798364151440418968287738147985570152579156507439995196841898325186966543826267445974533621754980893953307072097221165528480284366723917725306771071814397438309262084970699558179009369505390747218127232936469906476751694242718089685945004826816041850040804640047821391016005611256762131705932608434825584650367094039276007249929947585727721966328649500276045006579489548216737683935531336648426403032371713468201634231618736057305130107767061755658096660483114027771085243858304206290279044352169900878248835708104261526118494286622794197670006053443456302016986036043658274633626693494722487143447025515325241475461963405059164600631924964823244301436676545860289633060546956922065040866501745320629074729985572148834410141740010051779466535664358652168972330391922459541198673186679728997552681069572847048794547212123190485495717115835761461876808059764632968693665784894536488170591736261845469669423095835589967922744020746332189115756699900118017891790140194537859617585526106411003514578399787192429541972966354428749847494323641547312004859710996367826934840084681221063345084412889115927314451938311840496585309286443419924732358261328686065586698526691973238724661389405519914574878015994764306569926189861003951311468134006071548647559566254379894907019980430180838761269996404073118366097325218551813714912242627804070672037796346537575161231979960627648163766144986201574920767112989025587994949583341621128687469115466216494056948742777806835845902331984450691117007731710604353191491061499318831426436521280433807426045750497293487707728930781122715201852732236707585196377398475320322542558847831088828004442618661902789628607453768234847426647045302466031277990598151743253324421804790798571381814384228573995518078820052870880259844965239512811843225148407494947414137778790858308947275364173533009109014351204963199305372465298521966492375032269890702455884541718088278584010652236712906058946377498953900902212936993551545017762970809108981294097357562352484909267917076951200120527935121654746902506568445922226844224613262302890624070625675694744088268818799567172573913689214803758267085533662553028465156785827402747628288945772382799714835267315467099231077952483525355570396769031362758423986547123420264454606053626599841309839768876345991319630112651618760809720969310732487225476110020960944083749915391765513849977566090504746029942830871619712057597648674669256708937561973772045180180333175088988247045331098719822520577680775135873226047532711063060513591991981362112851406048734050474124000009240409516118800663561778488967917824266205522343526065497783325419190551230491897763845285344165714316967521994346483945218123882496712880093485570743848905319664921968257180689424084442819126548101273741576914894850239775011712063171784103449560119415494039272240205637151976334716664811472373375555003210243722646328995132880271411311467724821662901590053896621113079233267440930054187404634906244845250568212240365888075682367291213285709567974370981570053045808892784169329307187611076193852581143772419848494995796782914848406775965410498173076804330895811981535842894279107049344067071054236889475982758695812216974831893535657442356278181957016048492144863439765751570481173345735338005519914671055265967029484493164135568624699406324064108008137582237790495602588920081228635899990455263140598087020026648772185675965746130499658857094332387568252723551115556889694316444366370409704410143264563116292524059562839697816061679326373413356131290552596589168770499777636872914061524877245947964835773111966881448855198309156474687216900138338624173968953149928553238079975926211070077772547751772766648902066217802669699143079138541294796165846822196814726096390710491071164310628172326545293766245901126502312024831934027915730148292882014766278225941183021139557827595299959253738123991918059712369108613443299917152082330110419085932990823883195414201757192528298458114612423683847979611116285478681244836867704981837657148943463881225797915212457275285850803070064687417642886967710150491723888853986026567230536485013691526487580115339119511976646356299681275340876890208661502979180516363494805731312837713343584569950099619752605562516207049381460817650126917521631542896142366033577175103888743457274524972442496163016863128997020749692292925384828070892824827311105323358139191326166675057958423316187833061456555369453249449402780248393391570758198722294589209692097014389606125894758898671639683021288896368239688525123894398056665448598928342143213402332580782127361654621259019253655689226079784081154000637490597658227444954340802864621496018417714794555506201665294815971723898473133706527028624316880823951784383783337545276729620782609388948765100684343533531885576322319913597467945609955961325042912748049824972380519016670817413901152351025535953672705286252892714472379169088834765235613208635577440717007748840445577578828244601657705105336154255670818610416365219691696883086048515273253786116496607602219603596792524202589405281375377849419969953985440261325014964494422734660263800132779944863787076265131607483593999686518758458571171499846418183849867006818701894001814975378748440638375152989581684006842860332414298819634874726938546850878718711769299252367503687202859298425057350775437725375896149045304556111278335601155556831144537506496240259332011959276429959674895905831418103838352777113953047753129920685203643030528709946309518356215664236390787834094453875146721448966037090828381189960581199493540408558571573328496383827419538363523429394468596593695728383705550358923598189038720318750534855927355806285489304694965355651677201315935988932692170501940858461940516661742841452544376016075991924988381054838327747790275596616408029584425860465922465734137001344126336235429494459035831201656615140097534011728662946600553988831573394113908535240394668976248980345163146673417940131635296192809302017993364304042492263750384776344083787815571519706043260806069775983568486256570635525403280698760628244811695450673147225649639715565096591600215123565965505633285963312609201112372984059810234875899655494113833628099693961442959053141316173269953915342055589925402251716439354190713596184747229090942461598682558601191455575235453755463836508170608972459874246119533059293233440704493542772553563764717993848146780938920783407234017056302627139186293931937390569456786503738033167563639708715694177818036040866909053936475902107174168532945202965281187685709794032028695515191616670266774867347374611435000154661500741307937763873498365344260381220344368360024571445933820596098028999106252410595030189254992209859522071575314893174297120030463329178308805452763757776765130262059434370878829265945876220904681535808462777924580764632819831031572807585581714465935998240193724966526528552361665101266748957522706969920060753229800871026622146221909571247147303542604870818263871421685029928730840530443429815340654338292823835045048866533217953693633790549341554943891046627129162119650511970175866660883441957706312308335911914945708980237765442419720843942785157859469231391961925823799013384550090137562347049872504007804199523014193629430888019651102397394711511478386252004182733774322123182514995714061070741731507915258736906642582081665797233789437019719669351385897835583631757736190001973238948802042366667985920180012224102366426769772453172981979953730989142878345068765468182839272012479716425189755819513886535098226673029465853525884450418985914822529224422253024138744388273368274698139913717716864834865661276465214830157583498369895192708375268366982822576763427003056085376251310210576380914786941259930445275514077733825753916715765799514357387948164856420530934992795709211557155530525303979015887623851630970085592272371728108047823548555588642876306136756369641484584687125760065819592101422573780397044198536688813337556655888490135445746442741936780607187121709697274137258523882452008894887469330126501309501877956130661673067893744157578543170547230678835082862744325023469302768389569563778531578191681284576700434827864744689402705102892860090527115524205965147359311427117858183203971672828753405487043361081842556090015069864170097590581052054616925165243361195640279368900668459522059254099996355137013130630380610286255091401398249668960628579275851977188502517037676936368394167858675736936355695260281009791100403761950181934776315781909690474978611233128074300589544953094602259204757838702672078537449983628771109810060417007649979394705550536600104381421627265525720109072323461588161628089665813558859533811455744304263415726720627923117720336474721815154599053217004534105006115545937042766765631656955579663005584989623136932755587826754168700167032615133286970771150841038992169592002811413398811364452282632976751632688506878544429967839017018729589987521152461377946983646836683903706614848664867397019902676455536582393269734266583151182183897390213876628119787908286380326936884930589998275236427437348946598083901851688738097932667806805028114736406722915891309923845681671407769688490645827515260794128129920261762706669001918811412519639281787844581463971526917236557193792999167460932379444167932294560373015773128213487204003438696687395301112851424086650520878251731796674825546943649021130027771650918674449107141876922985694856512228533176794042282573904585679256730530468144537253209473222763340673361708203348935830788125708980769039477642812447159011757073685669113972775916158008404870577674131954231162266733528547727507848579897412541649422094880485135408196633761404212921769062468447394553139302239059628132547228512510558798786627945981321579305171236906788384727399358091781176872079298766644167393882369085897594863326127193852835487970428332259972476650759147384219210116435676076019717836405853118093019049683948474733415139853563080167944343105693198234017160863631033305998260264931381091350030410207977912677555975208513112030537859497270207865819526286241144007699035808660175503705796673931358296696717951635126119483516442988297478179867644134107010612806076543799929742265287882428294050838760389570080971479169676130908343372603500447549009013978437068756629331808217268524257922973599612767320825510950718058320587103743860159064121082765356944878969420619410275643669999591489861013312163482907624028544717444762766119798439829213668528820934149848530423773683978635078993849541726466000329858584512375243594864914387874401666797915600511258058854025437813464869421800753377553328656148597836612463445594784376227223188722724874723483164948435127935489938461764785763278069103522513909349088122555656579450283873882818722747976643808734912095216374391594825391201781636464911387352156641985598579886590826082278632589698181085171246486149080190363347689958745834145109358943679393686008653268591487420532217205637904013883975292714515394046624480105129493027296079034735081830153694840738611948556713078714611682586548066211289915165583450153234346892429230623434221531533433441762073545675615276367797046383400128007400487777744588087486151261882221113337637966792604752535120022443496763606149413079694726089785976631872627735712390292881665637755699348887980453588110543004112835452612593114004256696197503759408486350898280079527265729757003606283107811769014858028976427648726743691887953717466729107510384461632368885298359768677890485535963367045810104655579514206230615971531056402166200199427994018500074672383536282776035710246957534524106673873230552785641887746794949157615930380827959588420861747508365025189365694044113522238595628890611617669874604636938133059135762032186922239855920362630184317360463865093301503687695876522579190669291401838652673784518474220164625722552129541467725461688074704323603926572213841608317848001980687919034247761692384821994796372961566251463675227913804913077726598812090538150612828430085765424782091493647877256026233302372350042742494412319849148932385187365423344641788875948945420355291458248266277392538530326432628599488569981082476008447875056392054757585952737457877898429214481193307839978442455987158392518361521876498397950707250752125171108032475900008409369293995292774058975440265381830772329016471926347139961798184022774234383939645850084926648142633178272483414284936546250580143107380081990988379817246174485790299095248411504735298577442003033040239507575676691611779936185666010640597362393576892854882211073610983160641209540849894787806790187763636200429640245656459505942023292975988835033623565798874057713148819265972580403985578799888830037671648262751901372102939361947393295833089341672434413196107484517333989050016881002866984082410585860003791110729595864410471830219748361437744311603488690845250020993132339954581400588013939884853688726713010472512103015444738649815030289588688765544932394276756130477322707283032224476750588901327041972479287515738822901956180639297412941171514758997443490281419599448448041929290284876007934416774516121945744241214297121919139660526528514826015616384685785455249452134071199708982703859067222624541108395410842669470319481737595966671364591258219778658165549685006283930265676060743702698210747265394851845158192342419678326669585077167948879074105357116268348331540686456832054899713191511850382380408819653188209486254312993943999853377502904977626037013832208679645381835191194590624120166180114943401262827761683320713945240549725956297886712298742191280214095815657274222586465725519438077787597006916626950869375011220145368791925646041568100722962514512961698568258366285631989213828559136297198305887789594345312778228581525296556285740636748899373052611570678077399081577418228513154221330294264613031424485365392930701816405250107520732419815725102076059010165306367103837609436471021849424139288465542404847172520334809101205871240784392026131494219658110978986057093751057624184955745303229452912140187918105731069851588135313355295124874912789749898493063590167414410965102787827109480916617854354360729459162345094318852695667938336358848576485225288135970437426965789805998170184956783725777586676253740943785364562478104320170755087200042520875115080277262857864313017663828303474761666694957164246307550012259848605574102248224481622711345059798691082220926716594754176009894372817001098102383884798931922510684172963248102231131192875915151249729486887912385186037389031429167447396032472289628643667683134496203408167880526876980033892043644484479323856631615062193732693114771481771235926582290059530341108676757326718461182327340334135082628037592302586395388694930674485139267609790064008343478015945095135930742581306383116119406055140286752121795828922420432955186371929654503553279650110298874590774993549884481957009223173612711339806659660887969784481337072595130586414609118780712916782380263909126105508720613561121292277544650308178901599808350768958068740751350167453732776144072110258129388460520715701884160397683152282559421023621052831861087140836159420601901552806622553383742779470080205066648926910219790711995470087638061389520041363070563146833598217250707361864134937612513347647741629660246036207856122706478453023108218186389173706762810609427079933231249893376694121488835924216152485202158281816284759929438387905689931529059777737505453998026247790601040759490258408360479379376253775823405134297724913627339084886427624476294424843673899843821535376597905467886342205564585212317862730783788214809601001661885528100105266539573706108488870350131706667993981398716003933194666854582159600081863219584631540573367775778030916253175198343187674928385031412920776297496934568133754176963801878416109431484833973279195570670485503233895328681293383633959391670358708691653623618542224762824678322286980855520878341542523556683550012822248618865677710031802775794586234028599500592966678926843725955795260696705217335560825652521318452984502028267527402290533500778672171891023454862397788863886508285787013589152382292737657038012855739863191233613454165024563360913957742982815350601002271472061849876868910288496431469438354824173062180657443262555894371174586139671249657356405378745463708069811639719529348987525739843316063218875775362038705634661452572285027271248485164770955950729159371743898936619452540043225266694959429259354130304981331592086650515001998556875739193455934048612941341682194719011297670808820782929639931322056321595227985851397556865765476018434321101394254400828354990142798539156235958095075406878309848080442292427347349276195191259878296743847237662685560654892223955373982890542280308092815972985470041546378239947168978408385714174236455593590526244838761458921902517917543620422481969902951742404014413395170339207828974581449885434502358410039186122839459345159644871404813700087202036909354792176762247363046287709194339281429625677461244851494914224109825459703764149563376128358670965318968915040191151336767797132994980728147888709348007859630994665166136158665626033733310326013669137138178351833015468889978192696021903949555441225190530990022040141149124174288541380490127273981683934951252748576926463001620904117302678677314883582434934987862496649471613650948792528897948331561602441637808408499778688377743692104819979243405614734257588837609887579175504218186254711185946357941002979622157106915522887290673980954489414437182007503555363554902455812093238068851896056020908233781846765185452118170695095324313070012114417642656546900773737208113517522920430079900983380134322486095818930469520505652019159377227828841340191646667924304831034699096340674283518788461062500515590949671177075924569309318176113594033590000760015841697875712907865993385736643051526250388825312882343002576145735420370252389728031883261045214219683182641546077641999180812327131859883676615497842379125842609827114351714590929955028872318749254952218914277361149676864031924516189173775514235985398850877852528294865441901636079378962039814502509749554078884922251115866134684772966924528007925533091155273291695597539965969884855925265474700459923497682413635173703712959785346240625229359321410079386018545718055585785815758422797185455099707041722548955231452031913462658163691465729340045099396956661553538726228915987376518994666851737677407887217802724146122033871264438865811912169062393182388939846648585186482360146875268417937146013818120327013591222928624363819981292240314360475288809021849667008233806843110787704646914604085533537818169068477939189432173468956705681632060610588423951608314559300361968657617486098278879634388901203528943782688604651645980354935690656384361476478430436584767068902206818990545290136965389811400879157781554087150038180239484709349004423619682663468986955931513440913494054082058359715128079232556399240688304580335913470560666190668509924637232619802496588207556296538979202952763840879275562642251993884779909149486957992197195531104123813896092168312809234661277284006003003740584145243359046748505208880662635471469233872281286035282563752704356258422530127355756277199794596343090555113253017579290065712088649920228594832463079382684095543199599265716583403957294780876297350328948760791655488807133894646603581301314648699325593619505307881568329132157407311561111280862226986966003435173702252678184862718956167853731212031893608209365596654540718875824359348720221922621240466419663767638117522828378849090654434431179443851965855404026941979983410044380587031474031519658900997407051667211917674085214824794019092740547836043650897209356351938996713384037269181678973766275388128338502128922450106178194612903449388304200073542122160246940149649465488167841424126642094872189982045415620945080136845650538081117651053823994723322856976978141949357518004935155047315817988785172566039001322145088575276345748406890598360245523844011509594245920253407180028506999194255869193118784130492731524107164367747141526796745282807850935202705665427511328423100997229646231110458868703824181283485086889665995734089466029135024857745954475313832626197054248840601730313878274468422660569299652088591248152260315405489895762844123300718698745467449808174999151177749154523460311651307055067904874423205372584420530147438224281574750532889740417079353660226846500241591249366063481141275596665079834704648972892685189658735938018716783277260930439779812315176344114049111705598491009028592479322327148761186331771240092165561089033408275041959632247494227546378982027981798101692419288947483080175773467005386019245961103104893916333582119636308679749791280734822256302089713419919545405463579452038915692194062101554985619643391546879029531421510918926128178063784173971852718874885104597468405105771476329368177267108373896422433739907338488899656156946143238223293733569880245128712167066213435090613857958692755632380837610555501437590222877806617897851439976448388055734303175845884354780299646177971967163240819311281896942617381117269160280249057545090581683576838917224313498343910225424137071557639599732695436528993091260783501144037083674658086379005673676362218066331645242690248372818500667892186787336707833880971983135470388578276590605651843219376991551190912356230167695209933771828024884543369478925860263562119019548460291276504008302307121525154176289880086889510018394661881784871242762989252345665586178997646133620545054392642088808100048726091700740458963830147083024016248222001552927834558763071069652434033674027641470393826554660892049885781960082029473294000474266427300940632319223684426955460526308540622995469379631506596739849403418558721520061577608772730053580208050290114676774231608159268130852773334313019100232726675901314232648526805692880745445095218498119826184809022974784561195017211263242616227821989306514418946652276919273003076716598793990867646402532284550630067701709997514351577083462897941430718187312168084200322747867903628055777551746401027081761177608816121630181706520500340515780574637402453192127789948987783972396150784468173751418093008269398833394655334748367218070682424174267528606356999955715414223257062759091862761504892980784707319069593265619925426032395667939513943296816006753897411798005909320956912731673756474416648057199622001043446664481596027186118869375855299110761624828957489921087701464935228603246471728203274388151872354775185092834126971856374913292751801265201489393620153184659173046360363848939706437619981737037685322020715590145848593025873201996616811809865386888752792723388407382748500735534960908958981037486054317944003545199351794753057877885457232356429907165330485648280604284125997576389721665618083127097571825117748971180413472308545501078248266189689084296601844529301540628079681227603053063710106378478070875039786762090151487213364705411549535256385570856275765754354294639980261754863504674063586478769995478947792161512547064005154899855042609895336676150586839511155897652095316851740999684466479788908238608785979562759174764882050066663783481121658740652887206450041205827644676258219481641307631995259369142737739871618467518021332662599195174380402650123856046933605870927419768880066994146002561939531230503301701296812041310096567001638500682793428741711803004296999034342827690977484599343456616198712134311262814584727488308433124774563244757387900960250058325604803946366624832454657284798847162897056032267000197018087500809496686562751710342142203684829066412422711118423375719134579633973995709667293081842092724584182616176670667966514916309576162790272875694865995869783546897640277756864087635242949811145512302494737857990954981990793930416309280910419828817784710754869327257282808362954829396007545527609350175050174068673386516128101836725536320768220622837254437574461944408576066420038643699105375041798526020795687724815539497197439888413463619615721637907775516052962260665338746193541702083406562000269173734364437520034755391675365881533991040067906997534608312375667937201189119540537779223748249770792100713420960731080486858655123799886572205641442206403500035487861790836568467522662941955323614078524838041484003636646730238031136543347870092750277098491111094271462136323839845205135331610037733556228266078904733388377710356754054709859012327064349237205503037388565543052160487934435204721565832371112304701671800034274442445021279372623457744986938683081693661708500431312695254060920803908970887030108462251238977048253449283297574516037334670467953854170234452635526269588087704382043082816978159291107010645564412580900973559555344729200776117063766633727076390655090834500438472126968920105008602025506597923917904654239825975758832261289355848631760054163414545552236098395775009976637974059291581290298851077702160238743790753150118388572584223351098347429726465694408788861013341936281269923962134804893307628221635597953543655632301408416219258919474481180102976295951802047227881521984820725264026004062857086686204818752282214959103075848221547809190910684780539918800375077713928409334309323763674850019181800086205545758324879466589394549002823559214364537557533962069319350878825289602205466518823355280908272581312022973529618564746189426910588632741673068284766966318173068654449379382774805932117328699814430140768839043009943844520998383780851326445086615611077348540142732565383775782760643231902247727432636640767421837278683807549727470671188825540130625742143208658721147629360661581033970302764103290515387698731892692458722178682153757861755127840551025855162681503415026549833437711025829877808357364838495714011016614613636584214545962027660728071773359364564329262968782045284980337332078700711610898394867713880999275762209378236081760270922221448936730645832311416730840995350962858929131590354093985493863515291728251219181590376586154223401024498314205185992893752122191099232169834587093627796605238827739240090101468288917933753154318791047833531171914938034258073897259476557748176054550841658292706340821092968479725657722818217366959087652965370407114847413509037884735016647016189917056356396172282272716817091943465671386330904392197975785080629050607329341136725473117591895528662642487832079459969915469330052445066841123319798616591334541236131630585806215421597736447025486606209949627873396692916526552832984762304306889969389325553045420546765692796931734516349339684710526525299814774160215384907702678967480563454595522830892437236754948855173989748891635385813301664144434399670313199882684578900723319117810432676999897993325349473397519938023432521575826871272538242091988556961539704319761720995617797396657362944134749756780832413022468675068824381751586356546212263888848971731870929949966815132974187386549450177336497622651741322508507424397868001346583086837413226194476243279339958286305127785418937554007520277572147977654349793835032429520413646675736080829282593768511082387161520793959590158089906032028679007483019657754884165666136291384089147551316370882630450319598845908376899055043683996042941788615397664361361072727271536241020865699894532410929111888371259310235078105298835259824189597116354929375031456051150216847653887058564594045867897588133105568751046778226654951230639989062846671585607098043813626945032615594495432914316908458943089065593777870079637633582658475568202600171809444062271316241104821887471586842790041266128801369994194109796613149066154519003779016814796467088989144374819590037127463156890512054085002719870497722844125868828679493734903060224100836528190672496196739090304847689806251068481808953025067332030717021684090251261259189378912969576818537012775555606623891529463333104058476924847161219468181363126356232376893200847320551009607571152796112631675911852634790179304298305901399322949737322336534792913067996147926609141887151783690290391680353606874107497110373031079560868976743940670796827130821346588884294638023961329016040076942454324850295489400751905896291285239254811080603995492179129656101539154601461829489647806477363206376016009074688235276832153410852153202344030866438008029490627270109667750404542390954843068120851312838253958187935559963228827355432735538881815141979253537229787372733095271039808699623821249777968542682895179050272493844510593625885269324463258479621250419017825559740812112574758136067787404436631168664084446018123349116017919247956625051544869488251416864788137180427800010671443675239734895049829057515898790413503336421067102441487885287507485371605481158325029723723516278600625401274339323737968229328365597555332114524442853525662482992963901104097126133892744674319177119428006701773681846193875684109976135446411933452228966302204934289872216463190698535601315800026067565468892992976711235334338679715506254257171470560988889803382615716945207588917195868439788157106806251937087844542794321116753863661237384741146452923744931693899560337910975501046364726516461548844928069735767714276960123281526385203773442839886730191171485271930718647297372255466402428568840560654292271917738445684172935374146522175449019144584052325864040564239504030766391017291845629705584314725784017698814254788585072571982443772526816096088940531680391543821962301416196879063095829070470891829546767744716038019499124116520004514411303136550290575742945982310170096604967189641520933498909401647154628710610705325687315608915212997844342067944377577346157181635640596614477744672601029543813579682642857639823978103047200923707414259218270620290371549555407237022570558949267002611529162175990225485354963248330647683450385198209335343082012265535608441263329387483541527097238052243106775179434653226859772057117004050547741656994532261948542765592703344944321694554863751053609560839313193071014848703475505291998427061544817454486531017294395352504335973584352625770701693450660844974729962955091803704460355464929665842770067207644880146934338038393860677282125016889000374268539638668226946264668179555577860170732830359347550339449171134875513154111302445719705728028203642770389054152495977432233079313194730699886493330768882149252703048674018997109859163150152424824496099885975612431276282841713175788188451181050513638687944935468460615824117564045166174371754638532134308729580266729748338959793902141540557585786152387259158937990394446237109983237571551601748502757494756912906496605128880209247627564131927292907453688640590887662640400588519575709277977341981674106094701316114373829216565969264749288887085016105194974360311153866750458411376343619008103620216504505778276612855168689154433564968134592630610147617171391724613738167949407122123006707808576502428740368603038877239475956950745972545654294632799762933586913170131018257703180562661523186908755855692742797614834139616060591568009115439733082876688644000373389418971261083329045393010494076709641791117190501308668543021899698204160662678789873474213213365068901553378977747751809638521396769606297361960953839420781274453991171872010935077551647985022482713551894515514229703043833453564923474042190950279410949832088304003724890706273045406321054257574418680515397432837925018635694473206750807546969753401707197778734914656163897156327250389215721090039499073693597330960640491687503257315007292808978247556730930500519705502423578713654179794048241496791878810030309008568257034278422920252833871064327520911958069182719278916227765560483083588600047377806517722308515263423110404879409611347948722229593292356877343305786225008659208823046774263528647418970183572699129015201904552390684135349438307365816249007726595488461664284975894498659296342781425264810795819557232357819187805748751288644033911206892358746820563286416277004789378428114062134099907494213316308135869338125080470316321724195077804553137906491052561353622848458552898884598763183590704905408348599163716271911466456392060355498528461598714014962143344915813384485225149776141603957161923665773650113780669031925529424960114427507806715626237856624625906580920133654853304763725924905340786659209017353451683281237033650853587316119539281083745759433042562582005315688085737355281668914197533865956916194081964070990173672556865821652329956060024861112713615159541590658747158232308631310782254970151988011782064413469213013126165103893083403305180730387983333749214913074527642518520262449822920559424884406228469092191599935838435231369158435254655236252725550272925707346472343176171321756510511061783924032656839771620689812198941234709401222538909942239006712040158055587006317071010961993956957720241957814381509911837398449331425041244132669530076621450500830570070068937989166003991399629942256414332133540667233940943858258407354701236918441722398543449577695461756064276670052030555717527353805978331312392458610746928344815960785249159708364635739828237941463110746750564288972680348559197610729277817930290861703485729451746462109399430174417003334483899207466211714947204214820407020947548151501268352920023651466156063628503431744395468363217554154371129429682898001841479448335812107099337522886026952739097132157583735740711219638903432228980532670258863782994553257012939255369204046278860793394204815611698437253956357631976187077524771023815437767984398757865126223956823700404162586047837340236799006230810956935811784617885765857609264089006056918217345817681881026179185555015508185927296011422554896345734446142288107014754092514652147091617415852912392469718465145808499630613378548715776653098580802312811412759117757883866670248907808907274218461308055383299744949704627161789505350581152767447259831522556256805244749641131410958141460590205379304956696180956108551424692695861252569157254994929907041177841040855843772926786584350127942771694951990138596691590631767150874859486311470298661030065779571156284173046306591583212336107042802410599510365157413173348352184124916370507987411851282823923274194190909883587634360399270156056520897481535837069213260122973464668674988535329994335834315677054857182094472718784596601352577762645409796785654647552069704448535170792902942781350944976612398461587071267806028156104486689043150315309050549260970536782628401028320649499838267309655159304305647299591424259004710378219950805503731694011953671454483935196478319854782743879109816472981618575164155927740085726268310380395350992097731853263833662223106402596655896657104896705210667141815010318127002437632861769574798588160723043397022034606090093909492891594402900721329095987845087275964980862262090041159766074599864210227764789395979858594694274544535723922428335857637492469955524630878923196047750897464510028265120794786772461848484371039296554505357949985935845240761416522051219599874587017145365524180117307881523854578648339403044381640986020009886413952046651575168464775186866645685177832784300657941878187199546826437040021157062747653878524645597039827652109211102145903620405641435203600596006115532664286854716422830138624086285290085595960936104280299075178714040980468434849872087972500689061879336079309348832947191298551595834980364410447692700708520609184576694678869712124029330183035368107363442844144213995945771576228557532733337754800584296429175549538858278695250173071658334713603022389129759190928073186399648944433250720136531399419318966051567283846403561881399801701168631263853079387853946854791677600257827152416403131755509004969687650550783661264870153304602362053632853268455617996790838735150377656166922270494369668830706342175212261824804734994430072844257598219812700529093972164957271220361712961703763763131320857128324862682643691364847118155429372466301763685535616949617114306908573110782772832490417513014897307414407484027167164528772402567825561250043768184750746099169083966229794091497709154504230109639599848248738915619383740669602080649474529898470824384310060085387338712538685735505483140684501638149086917322326788095115085473686908838124510645057956326816178128891708195466629816906276371171406235228285023110438051919536696695336444100905315158886691115135278602113336352719075865924073187179135578589260796474584328075032320315835477208399981755867396254034480486046504682708591107312071003820604979112284174505230671642700547348186147418768037371222658739760481829945404926164399066588595125684617331963695993541077219303584964438303110250992462304806262845637740276238882866981063820805190966233485281625898059257793615996590027797589396399415710784450757891018161287518949703048896991635198931760093889553065579560508072968047685965635892015198670635482996429314394220996208026852484707884036767084710254417263518982930676610927081067427112106312193691666155703452453051262556044790964802783720052207271735954202426642323179706157721327063269116498083752481205895065143997869190721202350295987091716433062734293861521946091175477317456170668290133233882402522778399566200118274042124126914949157216424562371993306264982408959265841435517192628126626021768416162458950480503466096402999857348574562715698099207819268074003815323874773357589225041027121662976495362977277189814027671717069009787720603838236981581654375268803350742727410781701312364422337397416094952689110066345317473897592768198182923880619207183477466014319614929959723954705682032606973044222907842326465132883514093907835231579130593410794242560956419747948832787181673166916857507898133432379023469224104519755296006554391528391652628051946786545832950648264513362904359249461669361542511819600809199707507186214131601209115612255492409433453762071054328759494429205361715483586319436429809425605281644711891195025444672362720914320207909114961830362717869766467895751901111827551697885248273543592659638913939538640966980539937269954305620833092355679877721981540887931201205352526988508123281606895795937300955472461113871580739558587156988396759649464126503248800119674821351709479166983303074280623936007922617549073436546169773394038651522444294520101021491018907881010640968640772613608747236081653525823907808208248890298415251983065487524656267815410872809751120499535568931291995629406809244763316176082755511151513458454986412646588452057918829834792890286176190995096248936236225749833642279221132320455616050389352536737210100535606295453877946347839587242130063044124464404386025848513535014559282081848211622072127581201925565972808161723403535496020053678661679578317682741205359710899218065586358961405118669024364644311773661168977584604520840640889839855746984128155243639727188307932148187271781393630749732956657799678573952255794703669000177042263578403072393138349320953432462210460905323579587643656549981680821567834609204810470525633775462051649584211754943227065978524249798665648551683511602457265872462375269330764685795965203223176550389122918227474452900959529170241197008014412112857304546742484587951338207373456334841835610802150048439390431030311193152471425666652427210406534766323950228548500540299212156891112543832557835786484532869468004876367125101285233690756038205025850020252728835348020010424947469922435245710040012187068503680976854672677596686977733352250533643640353728022336126350632026773843090697522645453299394586838549290229983165998561641079431419986802833886449137114192543643436015018260431970992767582939154375563554006159118661867791312719656585567078012924831058485297617639945906742240570873505890865238236161985894715446737883131488614624640331934002104118179534360222983470042172227038118244435804503879350144105707832930038105976536974875010945263161820804875140245635010396157386004172574769817253634058670531342324428319162851514027823549504122109646243022476038159929675122377292939016799722782232411695615842413785078429027279625687809081722097202202700908273997233598252443187104940283524192214732818457523247722991198069607575800578688787466279418333343293973620925492994951360551969169245821377383551809103891911638235361819624119680614828648354412654306713448550331999193114178342156014398834253127853843522741267021513676512929815787853989626096931302512382611395607270055919566481735667903480106424895561753247507576001700658231974243414669699488371923663896738458844521673491172564346115427147482279614375379383149013190320095845096758502184688464947171283282875370094913109874695653458255396991930731499816450020267755597066577145948313491317431961486121881697091076349888267810680424940738334393545747262327553114422530774869900197817978421567519287859802872672411706546755751826167257440048365941615137212240643296562138926101856111749698386399667806484635302257125900852631056515924769331909252794286913600061531947922045311925172465604818272430996913080640722602808003298776252971183252841053981516067690562909000744541818110200497603236248262205052757176317722698041133970341801482324906429774633916015003674353357287534459305164771013131843639595189571130766482264192269657169224729538922665588986330628284994899910921852837338678584792655955665388925300802118222134895431418242600629546580451308254141421315897070223458396609569726821727099067681386874137575921206131929509466185521394406340653957898975281552730265962033300431521368725748922749661490600800686735009256029039234037794789516597716881708491540895146662276395629976575700821058129014829669803359986642817527805336106393880895359071675539487164178140203642339214508493633274177330376477954902604796295978037367503934109085227627838441553835260599652252270544366749611981511329153711238950365583836299951248390547027501566529686140499227750670038416177225890180335742353633687942111250254845746465168777045576465299089607703167139712506784832121766799521696993204709873085630111622585616308419627622517970376752444257097183096085586683206555424296450469636315219618172593492104512731797207016695735691894988971363492129503854080268655569247822036937953749603774659013234711912990375989181221718509077259633731264325192649634396551589525711478396303222558066329333847955920053354293877682773298683487029125380442303845019302392846363290532794953507953150643677149867645034582969119398767484851548857135846796238517097667145904545231849592764963182703118927771017608295869060337282006555600054521798104088362024989712653995026912393067213400081772409597391861725738096335507798540590911487781477526737104712649535780066230432546733636560965560877054084101799680074003392058527866964748390920966636561471577511127873524404228990247986244053947652402421763043605043782555021770289983034944904069818997441465215713147176496147574131508655138737119655645966157746207018850192335404918497275485008019549873490099380752546364535502593742887894130213535342242016419093761160799745196600968796412989877143647331125906246112025591615376202100143116173179567882865307242250614251192164652002061941854597279529308125028275448852769713776422305948106987546497681851747100928419457849761475612627235940319757785383296996536667362458487783166864863927631994960222255830159900619197827230375632684918550357287384989733718101853766669841836695636456556406178088243194524356159296127721956266652434175239245747760101174348686865758225389887455246211232377356782771453449436925423452099452125770511960521650909535161009325555803826401671076610871704342970530592302986313688096301346934246669588805189221291396223985419238633675880149868586052735261246127866982795283389306870502719663540275186075643500542178276481178026566561129079869678725858350399082498554536799896094081272375993466081863370614128288449291182392258373651690463315435047222069222042262472495575571198973026062887704257820757784199963592751124995659407593450221402662299327382590677213348291351496191059877520890286946924279750728307328617252050805369935369980091691238327219764046685516716430772107120309567554224582940419622846856451044365546895558694004422816541711646707221196270364844082378139416810567978560659083674327469495357390969504067371642525079354656197587848360979230669412321639693989120990017791159714721223083242711406924862584696760490761238331676629312738531772086971504318838674838393835513954319433700113154886038313811572777580031018909738989333187386785636702551190680279839977027176743945813508043037860711423955771599814110144786451625542589833504114417126370010986927733612293395901204321862374355044423826806890085650672439159484334941807944511942630503961475864189070262783108958611595296844842999363400019525547274451605740390156668872370785585045055328720340733659946347714862537651669941149795872423834658697607211781963289979893244114983810209457976697073834156638249249590446337595125520329097875809632568387126675605940939732401117811594797616372138708313541080592392291455395180987212703047524708509613384378820673021462833026531381015310450496002850769025784315613252504551941031992280652901323449778480512564999242690560154824706551459268901704236335469390799652837419650708314780375732838230754509629818624074879758611832849385530533805564446390254341822066102741429430000193977056004210065071841221141526420134166605926559326973473093591312790696973229181074772157340027560249893084370523923126300241912393616585982567293146419388317713326426665808392162967535616677600510811670837765886691827015617828075446636253873428669225447510046424788671904081011872605656510811505531827858398485758986409470813729632578161057822924760814394091703445829748751354412804248586800755194910641888968935742636940378613823806564002786904614481179928626464228443545293916891572864224887851117089252292897538828669572358381933645315890261916272847839805649556364855998772563455339721422629188890012243408953138435211344912013831289462763858698654895267809359722447689243992547220492722401406815201998330241754087498717141687231443185397817904118347639312372243899841669118531377803861766113538564383070734685128105038543878219434821164068288703274620922444022299593146557453670124409825981293247971009517507063810240019734190879292636333138527153872186942522706534874508817833806615322231651653185911546538755229266340441294404179719508732583554426410367687687438884406507143567676166643315508476239029217756450969058879121174599301890234161451599252024614622084165212073892047858304701056480829732020073508635874089736875821382840393514222260494126946299751430518756271830677656882790502432258542521378409455553086450286039681475136078720839072369863591314028554783058476761932483057296584852443362302482783471503433168685837582452078332481541295916883551750929140233169939773624156089656809196540124192468307202213600251377020982492833625804519292038579562623690240736034988525366159088541506471905682965531855045301151294129306848377449182731806535619267894941392845431738239567118692646585356486070468914618398285099990036993310645629215297718383030467060589994045373166816128515993038449456606239403284172800625424118687676441757174644609058991170809548456289052656841189011465038050059585628858026063556745830062364223971714336451587991563588245818291868370565781416778304180762581077292907490186243327144948719277394595936845742551594046102243934072298051117246602284904963228477462379655803773613214749684018109255264343176754762177673375592319265006999121235558645556234533177237424190476774248846073283405963370117620219916805323465030337679343317148571695935658450001855101628423512068036040562769822144211210907948017590485232744796260935836197824313089471428013656134778737552041272852184668388565200838844836449602661122330465248130114899329602824257143935099310351358965306365050789980650351716159817001103715971626560836058733868499963049419924349004816958181680617917893410020501541898095812647982313136288357347478223741342669126099329108657945979890061555073462185177950521942058028754834168751818724133761238868357960417408780054352389743597776898741486007869329264667064836511401818285174974482384892227373213903933158827615123492127135682654759655606068055475920822108228591049255915517931469862004934859015957637185128794348861758477097939441967732149943633900189397915649269674995544645395910544333074882500857673767731894726480350629482845014986652100901487567334964144779496228341593648577639181484411670185772726023845496165616128678299010846161273003293118052197988925611063914495070689590338853244760800449030933010735066274708730642322159919528011996784519242018903283581771799795793819326987065652718712865948891496336093184070495746240953393599211864092845840283498161727576135292637578038566115489517906353517023670440176641770811872028692066859171659353550390529934469171650292856774999515436511552915287090075384580947593186584823144014440838876077964738065431732221893704103669794729803878130963213459281233251264402683714750266628458600819927875866843259914255806753743460532903523114151817786534343884956351066938665185732618520831472618045076717827603444513313191505399856877970933936110807792096318540595614013538466004401962150340935646962512410884895949426616695878191073704452538780386903798774607059167528001468034415459765185866377944237029326575757285601753349563458513988006201684429118946775460171925277753961816926398117572876523525287926471346738218232551424357551110897156097496786084325145693528769927954198427002610547013874129684123956381074105273347349668604467705157567899360525907587856413338737946728452482583160459535002188000941168737551991798885454562506649627376188059567699674932032629706112015356574259115985635758743280938538350467870963520227832821138324949213786752947382008413065687751835194309867325264892840175856125833611006226713843545787128580222169539693968412014356644970988546942370306744584594521047699232784714552251399243762531733429622664342959068406391100903713545120383124790381187161438679616620309720917507364819819331253023940017068093580401779312806482466745186546927772555719912932650995264928805406905469910432394729172911437440195835886318720841771546738664424907438587570656002569877278056096504393661982379844604797515284001857182865185534338857267382173616713361331736627417858622127085145106384087461287232579878135347868344892882068515842924593630063596658197627718338088619332861670360319457280873822566209621156572729016007515576893900960403565313709654815291448624888159610306021514950593330325400070376867641471585405371332479423382849467002922838375572812234176404838053374317161051872804022359688955392620273604112263833527061471024383976106096929698183386537111347198461940087465745513275919429580595299312125447084124575607528254401744912019180175382919608978399153799431929830643444525969098987670432947924071710068726749847777414376133486140210271408648436570677437431790498014894146801136951588542337324513912008622020523238321425589772784176502227521993755812131280859622108978398109286628262912092731606900193278612889550589584107254749751183659365671712983976809805296436058017844486438960639089705127560259269966813644247868766302740088877726570014597015706482555866301695747961903478545610253021851348363214943453837275430405503956037841712312398104509221481930422593625048660044771317505418062620767040324993262688876992906645459884199749446927476351614931079345087011889576730557381286295813806224412353313278600224594940743263183827462847723759645437419606559248416269567473755339477444331666021861038648834383024607062116707813584109819186866044072954005462239821451639281690759471552662340777488337854631964572156010024580050699555664155059501092922502316027569063269250186645451190715758489333350621948748814332915042739514541972812187760287631647458596950206613708632921858825267006450332734896099149415918003667951141132546705269897892692437640238327831476809654858360957154464448882368267093447661183906576906838029518122071182953823391677857050589841700532480512859930235874910689673113964376132184388496962309155652577485289966293368142592432035499777036699187844781701344651578697264674826732484553656844227359035428099257747927898727327084332495442360789914623700520453246715232219896858929851152238925442544734532923764415345195799960360928207600244682034338418526008823274130523107756441596844445276822479876125803333502843981635922279240849106523583573245313254823171701106861346805659532943200427864234262789542407563484253368074562707648672411706067439759587236487303140397608762077516819961125025696113470890479563369819312002969164119219462911441170557764806714577800781715850176159105757476115006331355322293366637497212375805995086354455428663881342992570326116780798983438769386699194209515044745401302284118654883044855051448362387092019437434430655252068585978020843441274042963366803988647184830963921833165135962681780281903544163549597588247020164523319569207774098061708714242163347361403219523671931726215535903871886684397041563632009750960372385228897787391847104801880477715423228294618983484951841068721626780603002232283659123478695363208148036741619982192917402477318953759419866610044912939788479330676234770940191880950493681530843566436169627373392055401260685726481937331010583800576625842839148300456268903200824290770425661450569105585815122117279978450803111160381374209320684456941384299992395784857598090605678131529231316396775191167662295096533943184466664706636336827858799188913131058784516855423219650753996454368979719464342866151844045878546684084790488185569842507436860500697734134500438060233735037613334959807314101561448219268907810332352385627674895303409462839301922381184379334477055831643224930480008295946441163714852635837643632153827375831737783874647431808799173192726975068179109350251317560189601349674640308558021952747792517814250201146852834130303651094718192346664120795486178076314441898984473426547373813231347783279036802665207125761507408272524980434345970244738981629083585454122314525667017801583516988495092327220098547168968572796130095452961744853015183270155314361598013214593881794408850515608242550760703658673199196533210754602710792688604655997570411049528417416902328292552875893336401103173165433544654733636076678114014142409816540984655607957600193317921185939240542818694561929127669752818491217722173954074473338931797747898205015677036109573845379943645760719738004082535580533496401452593700478400442835239956420499143460932134481765533385354822634396836566816693635898087593461518557532866510562036276800305083321416180131391578610087707114892032093634888633803211980299805544005965234654876050253813987362492888352334974279032115988568504899641156465754703626646181958584732412616531727239278573557963032494838832542238165847890736531164291468341915298494400074786513332603839615177081385201224440366556635622548801496662777056617293845684687943093316912617350947453203345913312027719692797696106568267988263946403406900747177528562509405322710718023344374369213439683654314134149361121635055767665799897158815101124439876193541600200228110171311996875894712295833007088323290085247719720617240029356800262739057234869635075349806524349279888728809365824971061644853032659074442469274124112248503088445079290038571074206732698138808718418280265502126903216345027735197989757274474340979326731478550717906463086224904501395931770786608036937628959025731169173733886710476872528363296698796579486342576912585538913147199346397626877601970293539551887554085090402487281355742971700559860179970155273922272627496748426709190429333328264753482222958679468770320297457851257605627654435570499342493604930288256683847886803069475476080400662196510750745612346069951134332728957966713544541944507401779383647290966186766887920009535338778858035984083192045195621597533917954271871801075570355254561887504181212387141535061256602453106735042030777003659014943839468144805328172467240264827584829936674178402918649435730459359025361516022664115037396610421924986680009959780003640842099414231156085946377677959797675367982445894379868478409339822050300653169606007917255591256501533547739627629983285608093014745546547407377683146688975069193188836273083910723456711362462814672075314772654972679812420984362264859877373398255307626945878533441605011636182968685262979246434008319917580964455820750456132187378966174654192075794554883990998551336210406928268767467107857110717341118864635664295462191969534127741285047038110571867000733411696415436940188960096481029668648633965208783447300259154757172935774177550339847637789874028037296719470376143868182724021554998736097781447164666585524905081446190070051835752165027062629514833901370799378150390541788682714020226053243867651459562590770159646967582276799503045263339596012966289718032294762892785994801237239274685220929766867373931644569981495678010381554604353611316764994597974046270287433973598069902354496099334950327542960775022383214190116531442057784012898074923976376251183520328319920945234196382949670206590603576967308070730153319551808373490206766640128332117928990982109080395994748809414634517361684082140864283697953653633366142835055698869411145216929806811039394293847262404686671261539403118023768496905770070685456435235334945172190125911125209361029215075592196248545584818115445445183079453958929155468826724147624385545669116640365430245031484611205808601708367542570590273364518473063603969420012728407627769400415470792732730808542425663701534607304763337200131203102565521725644104566153106384463363301238985045521213246851445127403166705987475977118167385951020321349322340786364676333494735025332920682200212145583704968230246213653177842489500902429581956258747813441136739451024879853913464270998240076949900807239796156519667105519528363597957754920511544744932517624373289547483916363356352895107391527922795757014490961394110534088119226185211925215140638845808262068695956314507445190339159770825579877486436271548440772538220734719366308316686541575548524674313090368911729421239057213452964032603642240394376598019100290540424125262458315877892949855185521064791885833050952518381203176580083210397518843086383062141821898694841113828576904346529631570350013117078549298472731106800677930558462616794071321764950071199611284251339358776621966095813363683608541179208720417059445835562565871719873604550875119678694609746489635062158788023676375992444624337988207959421658435585847664284176264165577998676748629139350839946659322067832909801811510361884848452765071140817718771089722788786027774939237245123220403992516278251299057934644485025973834850547253555309070943139179294572589366770966315549750193642294084661257397693536108506957638987221626918825581161874041122273071025021217351756345909643977676042374730362214607740677977846117251299908069364536885882033928401706588122169918495901425489795917497994339118160036932990817691478204967040474654787951989116815093988950571901761533855637744655278721065216951575163360094358250238655209903020930961350163685387741016641697548425275974819264427985566835666297459885278397475186528634174676755632451608212329845553236623473766987152985685709037321743595173437647976172236781184082999165723958273597637497646303737577384214634941100344430314698592517754907055833775609253272441726119537583803423800532625529408324778025487882367190668034413231630706857534727970597942845887272008489057638375142668141629972617551649263830377357539331919735805470672383323563673766169444907463571439275529715423574231733001322834121547188871820463234479619532968304574538668892781845495988471523660133844798200693106746160793638561485948994569467066902646049925909023634682481510139383643812464848291244495621699118419178090838490610387846782851747699966051057556365260589987235706900044840705287676870534785253905301273895568672867202180213849449580368099219025519940375699952983249071724908935323175306890147491272794172984881769912243839489990003742695196889612907455488007243299747190710792507262811134218466719863911773705390997595334983722359790814021074844037540084871302872196624646190171915520944252542406382104660003839155083555581517237154569302878916166292095031760320214955153995877538191397840719439446208278905243382263031745301437853309886600613498054996348775037784414276522163888851586363837632289078021908984831660070567590688112946208952176727922888987670828553790289071019251331135580337135920947624950173654069736569720186865946796134748647331070798828060525126718962714425849404382891835629238991891401187326745398939244592836463490639461715320288402117262393919147403049477554598627287988543888098443731321587342662080690105404066996237991981922669212244844204021079437266681982085850016644067847168578847705738783866987632507711591735084092056606398031013625348646207585498516384911028423661492437698727346134001601201505445994646174859923307862456086643339126945707698860564076119973178322253686388682119020051161641307054320083970975809420793904402512967861302915520122871774493800190772708956776143147214310969723155111408946378339407198867071013954828126618234365615622121133029845439539884931983148500142623540130103251390214033780861603842615772464847770934615352346025657468246669644069331564474525340675106197948754794751392840066222570764531941430777205163766646394642969512894421024615703515256885020586887701179877149915934255296508598489545096802107832560137212350884113229937419793933556777491405519013160806647493075575140303032318448134631787275677757186000732315987989515669871393800756291612151881561152121453971427530911210642026839842153578019125580276058390804650576174232235569538178767103911683909463475768109146725598207681446769426561624429752908817371708813871431828295119419413347491669465991214412831088684901488416602576590770563691603797181548162538859729068534699831429769346688810289422964032391490155560392774870499601194559927946678910114106246131702035466062309937569503651358088551058413239900820755841142001186910164880177828842368024513480130771265909754470333062911944066241384686565501254986054564023261510799808726537756879673939760777552225893671112443048667155106396613038377689589630891809850623964251055139663443706646190536242531049485143231485551421380720517502564481730929376852583681111011367865871717042333738526930731697268808724138695689181374737998768494493028230555988686038053840038731297208931101115075198502354000527186634472084069576523635566111045840347441977185641491582360503595235589106190122200241262032394962509041475829541119785417526474404999265923369476591504268759573483499275229499799182382597533688975006030174532367607086123859990039526702514641648879872063993549813857451339627871906997841703628418133049575045931926157278368716272137933133507328803022320591862776901143239779374779191733005914700647345072818660029731250964284148803792833416416457529393832423244340869312108224827895222057919016416628410874598461469482892664980243485344099687492697678205747624422872965116440902181179332085832279053261406776867063746318577741318334040844739345384232302864813513119189787891321691401372420256588167787481735110888092640233461288522886055030355642841329810829981595115357915375451551760421820191730350214051291419457973634737439132854804052999090122678188818512035751475815054890648318332642558929743482260421148906168575714574639361309272383254449792912913900305900575209744726353827299787012685950012612268727253860539204482348523963147019214671345011860173192194599273320178659886066586430325498583795130515948380999532022092265766087782947557767120199829821914215643164860936849496538115166694359969756479570654516381002311301915274103380844627501076262318272896136421819354088264414788487574775221422800836687398498852382770671701529108115995526478276670817573798413625592479720027730452978454223754069716708271561466970247565378229009421825766302972898384963817592521769738011279550325838896529175249434247907013565229537173566982233919328332356980218192773500027724768900198535631395384325587921068601609780854299610496070234650209842887583211433524168207324599981970452534235853687633046949527505132069294734196148513839059765636060920109564177008315857621690063214079732035252211673412556052835980232244776620489620173936680043517925264365198355351485384153861447023659687339538748526163036192541372770960376260595748017165992100972017997313619045547878299957990690578395580356380240232665266625283325373478877329366421648086904399301757116536188968515768480524602617286336959164452279714708816115891848364362769356218115605113171869947882118789439378387971838002398582356428674333553314141772206670380440050864746049808506445146384396330419285093665088814349249127423362932463211074867679002399184401505877508834304863506290903092942112272448037866060620324087255711035386902329617694716400039567442812135907394447467474575049800031435083979654265355199050308822613096209656635436635418102765513433681727752897628958012540844871143968895608758600914270970883516800938895684805023235436207546900998843415249962113513109868716745338387690382394938012259362266131476631069913896571562417630642430593437366559438326385719663941969597202364327929866612650219450457774446445346616830876825224897362915300440744052505090662839201840446446964173382072072617918058097975625961981581543994464660961472199871561990960586978711511114979065552796337435849561886689026411557859068613227966576578887737845322054170540665105591231476593066736938781967214594643819955497640109619656618140185889760720522670624938960082401554046530811852784982259448919353845751950863523142384686992216669664920563745625268591559393106721106533467069953127357702304345200526296994942508293343164603634389792185428505797212876500377744597804094727935998654798548468508063403254712582728619625860376331788480297212494518969104094809303484517746437839630787775304001418696296680814048894311891847536526284289407013818500625062498309470313268461707495614132885951757049776709513554044888101844368907793119317557073577294388865164373081769804733332483756183569333624867465265033093317442154691210465807839393393279520876086071329770342919452380537586417225443196812001779036635942425862185116595196141542074344964714611714972856172110102121766137902164741372792580719046950120266946250254398075918256482934247062792906076392425018997364837606024863793772047468935617695555094147634917101892273594017742977957356026251130085898212016033086897165095748468796848363089828583378378004069984904662748762243890485145795160905512641472693581378584833453145564575095082234185627209646107271520234069546121682201280625445177810518423532793277443203793792758104037485157444454934124164382980762128809336308272861676029819092048354305314209762863889860979857940931503713873449093109051997875738347271634668821256220192335038671502188072999195814255967885614921456233856154465305757952588855550105801192936848349476918834534652071439970236916698955328169795979450151213249349559141922206917696839715051020167627735541224229323741951458216385867649623823203076596554280492876251699171140972190361512876839821376963558911156388142700522262637162327065245277779888710500145819513215216455461440972617249090127348059082073962183765111738964077150568283741171140991571619047759135087087350662184449391050254099660826709779699291077549276170121632235773526808851008317095978296151203757964192348372816448068438730791223691766545946133547645598908066771495716739215968042382491052363790249390930093635285493518099747070159220193107588049005961945458729422831629524651282453019791504250883018187191661618095063633833241437361484125256112061521883523119813092603495325023123608466683122322050915638731076106856431704536122794080662552029144352778196773265520692578987106070596155962866994099264651023217697040994747920616617942562118317172728437404719249254158351246627491954219463851382119244106916661207933109425908175150463204360648275072229166859483727523071760676961997053005452726657555949867040996106021553721864493847865646380990182398048366569877367029555919409065620581723332956294038655188186159416127992413582262932248544280424218416363638283188835028861829803787502517543702903297343361591279798135739226702700214074353118369557753041048167287069812087158735114355054057736967461612433875886366870988072086378908433265699124705579597326687007718789500632126147270679457766680512642035960476392516835815865829880798355245302176380880496366979725964951595120713531764968413265566347444376081174324250118753752403245288283164033851724360831635301740941035361869951168220275132952602262274472212038961786326472148106037742619442461935509222207016942947881973583703871668856890254211472490012576058470244867370665048658868985497469490789768989972012443947572156324934063848236428314018236335328596524949328891898771266346172380344533295692224426528346130254158084642927272957262545143541244969663258000159501490914747605445265090595925182324076522404443430848288586870479304860657245693220436037264319585479531044530980463139300880803455489389253865149755744482688078120657918884699776064696180886164391302911397416434441142825711309887823621472828977808363795766271386447990927828755299362893559234072438195897168702375154052544978260242499077890461901547773636012625934486141713130665035494713451407137671574845230803789995127262755093841342039674593615676288938691271545685803879214468459011040080026923138949483273402483095481775950212133822507395130548395237799499796515587862111870625870713908139197721614328802922983481917699597297817141813369607203143806587158095338990750738112939605801012277957405999271998654558153931080315795331773064218164286562976368056935116353544255496158353865000958143488042724638802432651098032121351015991884162970662947273843702199856134808334168101194948030474519135258395705598514553242756105566201287196412057846377067062907179462235689535991917507205194661800624058404222426936606375885102194405404455211740837046905218529140115821862483473579730901125172248423882870817241520530333217279815055088717353601901530544577136272091982382650326177477426018938566820409096576885278476411515208711309377145099824658123960197708833303148597513459034789387892772056814060412711837121469276566278789871672728981370229267190579923610885330826640377388995308591420455213268758285683853752479025664427051212776849962626180625753149774966216316597517519460556240617545047462789353653185792758323191967209919688280692101689756800682076791300310533312678852965286927022539910533718484465626034551046640337010507776941756626201439033797501254802530391690974166828282170723300348474462197213812113526912462788476059393368819574847180402056240630498841741025546594491490058058572790097650925434929637474306915901472322589019005843544297977270176308186754811205663296440937309900975071086697685680701742447489943040201566967734352645066803552119986848170353747450979501696273275874755991177558037689198524432895343664769578767093124205105499512796858908058811186985303201966710544533786149198081653717913247226999147497146741852345774084038767162442226993655437024275389917910213301695794494054184313797461680852372169532112822591981275504274696322456539363598941427405735076828998708369354996026279363549648474802349043244582176558581390069272389935286214977770536156163101555498555833501129889780451174986379633049183573332228668168946602457891122752970613961375926622640015514613961281900309111895223945823064431026443874499528307412496847652806336878090017413710683371720555567376530200430452385417032950458137526419779304926618280215013088931691981948218646079801156546661995892594912292034123639074592074420801684323423352262896122460342649039929319506775426821418775120642105985595011578970343144347283433913104661690951363439063943842282277868307598324477647620419003382655924788150890669695738614798432917408386861881393282637883185626304558678885196321306960501790502071470845242965635065902875875103806996954715959084124355867532291639891729246378600574886186227909690219028660863866770878292015659298904761544882022868775067243958000852706392478257478861828354371781989489088706697270063798956293618051063771445004277937894976706684338903800531262039331328036584332922260202302511601248664755793309770446457300249958363787419093127333893596073149788999320784041685440542046013139252186448566440481570534449641639329247992783603510970665109444464655492571100167315485829711848757341172461800505923115765579073650972952354024409068001627260165796596122333493729439323966132012133946228209910312293814710697982620322011577557429596698247185384375941072337270312423831497506278765212301791815187303102894055315678274160881689451991705302462068935920377045713532033117247933540939570032695781062415020865303303674720140967006183672890431724885360039670889837788174672694665295308622146638042211688818891301338799554097090082228690565765500191415346380196234689960424574432999218528032789077967009925623247056811324177234783384234966155588620212570332941955038253801832176386582321412583144658926473361289948003702679990763550121866226341542591418035670981508719615968520063055713868890403868085061243589091404265635607562130756499280030110593364298710747841518117698822593722044799496195655150296348291989898429279987619444485020675209561150492127655541065196672421534889600462577806788036056179617933382575378193831800043162788977787193486087701989339554366273083905492281190008546748462921702445546333386389820225066455057957951161085225768505409747710191130808365830220214389764502077725630242610481331182003752818577185779706244393324063567562378161241150500814377805076179670495851512900528636024844281402539573481225636231496370662079059266406809904125889791434480794419620047731311765022159356999742479361384066193111609585091889472615888775570252020584887716334041855010195316410301375287924203390045807898007865361510135399927451276664483225000067028429425743888867667297357316717716545677938599898900504390875967973953061496187507779318181825035380646398340551234549925789352734546865920254497612658978331022670447158070368320206450375367506508738216540132486672919955818361957745299866543087882035130238904423280778496092003178424936474748565970531937782317552210196813839974981608263998040528935962715999723456127928194811947601786373424304402801592600307118632465615405834869760429946515248865598343315642287929975041817345876606132022387910064393548924927578816008245036631406642561795023724740416170819379258667313672242843863576940310309007295580008965354776547033574382315132285865899987668561939446699376395294688861516639913494272515317886743698255425406204864934634819266915429243720384323392907046416811518221666712693870744024798800410333920144188628229623530108411066693895527994397996284557958587098602864507528196620004087171547089098228197308890549386839556898948831887810753416164181325314184802955019700639156720855785787877171566028152282657112468507014208606376265085030825399478822971905919273597964658212552780493010513187096793285948998068758323527537771000674513624825411406899160741902912397358740554333741288262098416401111999024228151078859997437940757953016336258984082453385165762710398482918191362676564631708131128651671065878162076121315328407308147044916571646730154052791889169577442948610176029696405985566423462654771396916278420982906746848350553563853578006338247131225674559320055537951895050812172812058581448403760193376404591173095703010728528422201292938701810739516643705381610579271444055608242663809284445062955000944550149177277756259780254869489746850618510055672359561903753527882358220883429271337160017734106260100739237483177625469359492300978282614559457981091347572218803391381223755854884117866631328656241529622488571486659582900275502548464474571322695783869126721569248827991347913347035926963636652523309364376270611744913940515526084415632975793088577397231844044307014076881911649434977031488118458823968655855135438016079274790465315079811127997832550942320939346846453092759823672934345152011771620476435935774948330524677943716788530722136075491392590577385032963451661356675496483978695888327506840247795717865067733493885536580356956450293860957900552199024927185611576440669452838152916450202516756077322989032803584989650885696359792962726015274655689365700846902371990595991683914078336183949050929343276113124487108526676191276448730202959136542467139001482309655917353005598502657081130572426705599371367859840740794968108912561187866842197833069064109525172145747362573864922800572915099114011783730462501893933569558211896624614642577671968580118003306166595934910538139659912781561984465555131081772221315567774278681032324794590079354614156656957487212071851544738449298592126580829059095224553078927451022060583025352514091421766147070322369415074818597879573967908747168042518894121288239234139777898526001626549570433576139496247009346571082700617071428419764680893547313338663951672422519628586306805307069134479856954410070851310680600275303861328898477630511602131667570958630874777957585611063062832946859245446035012261579840226731684053647568339225739937035424308078391825005169455921198822444478467184059918498093211567416730001422728517203499008436538201090211987907198315936446059657801919743670570236076343939909608656067500744856303506080813007715043166518718550248887438564141493641610757172314886518036197785156054518698846127990645759886555765161328435435694547629178323163941815979004179781231582771514713784511849396868944062924582125550971426497145111907273147590967140937165588194188360381277496347427590553169745452287773641485093004342702498403902235117615713103650887158592018666087201312238950907316949354691443390393248413547982307935093905461932592794525415921169902886144122971169752448831564477063456107290706129177654651614300338440390802688910631014685064120919275787884247764992552838850698113900495007193221282173141647248003894472663781733333051970406940093980339931111900834942794941976240425260206809649846136283696142516700747446345273089878739298822625335770093213414292490635332919419910968294435950517749087146239929297566041472127311626323659654212263159100388427002533570870178227806399940323384373346592165583233992747828277714016565729066908262712122327361246743591408390295830602601763876216660800360605587797398553937796874891890152983560621579832694627527598297297175662642511919863379043108348498930204758258201821776301752304103225134906156380604582234507713480318869109364735661048602305375358141958374467617648332199075485985240327667100858071809456351467293783599822107839764357437434070037435312660786307664767692786322415026413397353438330402523316310014277065234640406286551043225485049503512555577443886337768633734229140220958732017410053409265499176184274608637837251903901704068822052740925970684370545560196427384561539709721318906594626563191011922113754219595755046515290736602993952556381454222358487364552208807903885843066608057090654727674912929011154417236081223668991361967833102762306158475205325032580510101169302996685196854606441591864370449193251090189715809623849088544491757924583660775198333409106945710011934768698719398698237842111758821648115963760128163578160258256912387137043622125992697710162062937858383062889417620501609521543219817033058560513716564915214241186437657632015418780435470813360471688087706115145414363412212660098663253165511819626486705912533315978289992584220061721432165731190610052569345358245531769005044259052758318872784238340107411109931783389980894526083118098886916874966520391429413322856945770779717097403271647731406388762771585916686303488031668273805193452619437482896950534518494269175695499986469140907788969373956056902592187814873631584847291828381002032167406646110645907167746606128348191993334763313353949736812702764655700958448503391862281744430534522175690655704579327338773291617234701986840863922817753880562155626299427427156501297238832777926561592091079430608178525724875932540012593855044070608250177813976455338099699977361617567316407992094824451067852444864671988910625926963710968690571329956814252912090083586765694792451043758118040966753130301647307809266102646799698615127508090541483315851998336231814546737920416478608346066930193424283484614317611933963404337133094331767398875268320658959330902904969112620132202228895043732730496058091896353856422631421430613771841200658605304069462135451655779852894292442608005634085234845384756600289596322374938239573053780086318317786253439236266297150194545696061047442718699619027477203103857038353054239831514204629444696812880416233560537013379724843788234662192636894510564930700224843361725070291253061564934653262939962850037140671291643135494927272357392011318044924326286330556902414183226466888702194081883905167260416701857834132392827470887825707593907609346732288239359655667531199867668544077356476787297042465838070417535394436507239786586581244538472005727030709987855466825017731182390653369277555984068453906810430045678388554171256828848760384328776536452950159139916613449377865119106960657630224527115648535590373992697467958741030735390029768926743566995367751421374189423048047771140301743401421060184127989412746883717636371284985908903030205063315501810059333369636223836853759978840761883386835577991431380046560015128977670049593070821663987885064473940181431026587084848736623956010008785567915204722976900377810815896681793123776249498765439704475761021777448266164474572016939247680423779270006304418361367198712988495338228777904275266018775559286821975020343417781260345900231341241498924350443784570313709916195185198387821561588908121547712804875980550188293022474878594920149083467243636333458858803997469927746202895332718959020139579641912036045012860994265322371742393731188116920774893508617213883545723583114007452067560963256104156887384348637477910188630240816936418857295517113372453214180290216840777852532736122573187092388034579855425926083456244960368801186680536904125680557828964869222052939041591496256177489441670764744835448689975040872595767709055293710467835994100178766746961103360779953600566080415706308633512855436184971142448634927582996644223081745478210427294093247799088656368462880246332497503320259920486895494225414308081769267273187028830688054324148011617357548507712767360352967685139205272998977030134463385737780548835310316061129463438672586053252897084367748348006741928332553077218647573660557213352510637707238971069490019649755493630027018640748457432437953354365018821657488878205107490993051215181906738008635467658126738295498584093201349844907360764646922425369018829607305853995342071302981995867388744572396654937807366887452469907756672210986882025041745575554962671732598299444353769363040923476918557243141915312900081001993523527968181626802116366158456522530836037707194992044067710365170237211429736072567128753797574985586000097723839617105081281516910238038331786049706627759905105722770621982116170467156102103506707176094703265279426913330931055577994012903568545334740136035642579708786650631386040639003047394903042688536782623614391827406324064312176841928190724483297195762571069788360016752679252858141708773057144703149557831100281353826164541638199697043676411610630611683850085534150449950846995510972253849066126319382406581994613139985571338785324145679363293514346653823627567474802606959648571355147482073939884317414282949028635682609180109050263047119580061608564018798772967542101095045050562691334666785113711879690871330878860604574565536908900339639992089038668712247560591525578928512835852041914214668800750207561893820196349067546452411559056284672109635041350673334779303764697161625791721422430388291318163606185739015462830466227384281614379712345602047193380356541602181789537033203225688637398064922948516547081274193858409608119618025785792307997527630962914372964981091281928877658854774355588290989027044740296675620084313364658852760044338871788325145501697298721086055689827648011032940623170951868168957665886200509345340345289116022497644063497310025134936475819836660176991664195876388539479167031295091042707095701179359090532368515863821567739592858212390719508202624107880748747328441069105699926637466436262073877356069491829063430640358656885540770042480801869347671681020679121215478510015769020394471624685425248425572224527270243344015699770470570362182367577492657032717157970135173697166535309132353794452669205343071926225845700375133029223715789275759737829032046256823238235313149423907645339925988309740027830893820136264706096512228678811365886631132433864103525337228347374427912959667041721950757797124243438234878108156808459616569677687692841566806922602208070483380412746483498419970046817817969211100443293968643832413791713333348142313451081251215140351139832291193607930157830204522908214066397167590240978238179985961253896060680566719502258236295073566781172310018921362995524952373907389743900473537531731866218721051173008045769416903892844785729127109486202735337139599117144134041632128378509476346710731188133445507145919898461214357061604039776770495341251224508652167272939796444376281334922276365537776477079983973292926818364806207411404644373580154155449600759523423475614675694784565000960386940149387858010491788082800522468048995914963460944387590441339755570119814045532794074135135151055742873290620943414873725553152723751929703966476746591449116281509061430669260461224716458725246127279214530993018403768487549810236428162450523981971422592010529079591435704520868129921125941321248319233946306252546120152301207752515862709155571526613831016408543286846769406063879461637792590878318464466047736749871782070918252994096641750528516880522334516030562660525048968343141290607640638626496043288395945807713578312966094365279342893879990028234412698005970121168542310102255276636077147303402555968288113954176894249294199921514996875067719564993617209238048640239722501341608123245624782496905779159850528191183423246094859697648606432763253061135260916081557468016129035561142064772719802425362580603463606628392592422521103943033211061994099636562322498463450529742256966924034523636920804839823249733348016146753271874996375041038033628168286497788037156364048522398592093689140252716490855414545046910060233093402475074791368242839972189897242045424790101283031395142985579124500161067978730712802384525526184678988306037129308167656001014210195186326204724020594535392255760325377587652441720120409261448469239385989028893281434651213176681509793642357490777323480023688526012793225746902820133348078805010673137302874347368730567390810718011087528301006765470933204930998959287909892472974614483923468991849630571773738614091105599165083222473416589853105720929067491545205530776636326635876022497739516079661692566354065849346527213931107804923122582771493234447896969620285616535922906091676443788436513367361056461649620874873042974511792715241650174114171355100002679124889373135489142646975265621716825597592517423381407772160555946045363655137056356484237501050058910611899419444909101703311171382621876433536654881180100288075574285453889179087407276963540260942465215931413119041780632381460007385232849626458847432923852759899974034597116550864591045354328801471380250769219692766110487649920035129174306171611280219646916526407590633596050229747321918763960624166887693896815209958288223205629847056921213492335965911867850741774033136258840692855804953545669200149137397047599155766919437040607984467157356164770948334566024526455513614628720502077674484805456384075870919681702275968944862183854921131001460376287710016567416828918219732668547640457882592330571732707098461251063767494210804203442940370162850446511454256405526430698971888272953870144624813907823290226746597795049784739984640705112633439570832812567883544250088419438197207856902219278429135713640417573620105532799189991452844183577182553221745620184570986933545381179171772973515069119921472477265659922327336082881437914356646761685785500033809475458017229008171229797498959285281408851589376284270958856282506063231181333951489820309317631385410582549052218177801243936904887378464497476003477332771686107045051023430059403793088806726839452403842549477897003816752706120527697609591657030112954148953496108208706223922860224601345866792783534993509053534766516636135542534583777363000841606114434369305128572830173990754751028332997836872495217924898097976201278331280140832153169817248595845059534825086629225656125034415734178278856995118436854554912610921669681556515919434470122145990062691697250351251434766555731464536729577542629714476547910757439047060116711012123996810363060673990744570241945956449864625920187843191069783981005577913339456336859220040063972510468218336782839648238147879835373502571893013354926419020360025127873316094710942797956769485627644866540760428964837149247077527540743930045363451179560033708533949931344808668490161128233388639432743998978520165126769785419168756526446378022907182174461455380449932801518083273349710515277454569312904969831822184371866630060910167944172579877752665845095886016313496047688650036557734511958827746576432033824470400206684731845562462230827137173978472010440469510807711722299843979412375110710157410643583869888798268137389697568575545803318786101051822659431025653214111617899493750791250923992581220648324676457765724832199664752099989385275592953893047003910771757482571656114439443711673433585742745028640283098034495166758537891760532249581835797059919153151947464098700249745292936535349083226202540159593857925947298288586114418150460250031029725537263708851960770373782501920382393141566566095513264422648195209815636724319116295163420908876782781064295555668182511361778512325522959251293863011540258151439807153823598218933545661083027667898248705913193339109558669980232208684310637696903832493821786988211113075699980195801117480615561625403122806487658757100952106906230292287319247615658234220698742541215566341675923775979147817108448726373754970792707498506925437026859441537952501481146740531113082614971534508919028486679696435432557883636534757941009231704185182555537550133409704885850305024641760103350043784091085040952385724548034371001472428473678160176144714206619971712332313691000901739968271788512824338608403264171887520177994866365011548643736973856922995250546971515928861751283203325011223034477780057964456864830378508513668993641136594479224271082428803707863883542011126169658014420098014961348246341106156426463566526355760338856766015466009889424925414289688456325371099944474305877272020720315608847295846312345394696949216859560490616001802974474820864031245315195677942077418140700869692851557352592119358068429120634810527366846553635431332934970718060111811680625491542125672398562012152395255151552166864273739580935811273403986088260856982951637610465696189949062364754877219330925887719709511368317065451162407162724518544083196921404580018516247940986871870468615226511225457972315435204702409098500480144086455110200009794812900766202092112282461033611250883315689039134879866945446374149554308726542780752953584968748250899296176888247185185157309620060073371620481394317129019486962441319951197523450198120756970528514540095314334789306716587553604537925508401867045212694040159855767993116069953338750394592629350409204692833600102111516874669015530393853778718777985129785663617928631029384562368766323470562886181517279064923441351754815164644564548022107579019704078732679739126252567907342697991601691839644447836035083627165327013064980774701649914334760985897293125138985610212161922079045701669983541378304780081810264786929234779555784323077364235654439731472866483248866979729189989238729995138581458925356355405979792268134585094504914571986038659713602038056753396981263168879568538534894995704570768204996029087119873149761020248711951602870558202339067314191403638054003175711056871903232250997627850989379973755492327123436690838113729557126323337726977177034388062181483644682477085071175796439082266680089097716458051189272361163695678895571012837796883452713532136908084098117447736041715802326733519634872691811122080417503996903487121910394247673427738002740018648134302561637073305084379711723271217431670352307981374965758927051521805653517026633514837478181177723051526031679107215556824316444495528263321845625862676529368709736015664558983180629221127831064762559175364040170906437566778475381298400863535468010991729158535853496897947507821444593044314541274195845980140037250335535936803555611027755257854824174371518583663241085426314935034611261579390560852733113629540417453007138324238666049010516425454189576994820414662687701547839566589817875540215047668677338884427166359693934095103163441677622577611193256740040239198414260282576819935737619692819454895105518220558294570552233650932958656497854042056207876672376577821827609105826926202485700353699499345774077918584858786093574666512125258620296466149610735557333035671173021100843275628278099044761820862044855624946619462849037214782773401345404808061093160815418034856286369635212870125207857243501112045746479877293694375751259371264847505541068677060563003828121460038440440403790372590868463474061388280541616524722978615130785447693049506573677642761689733499551667973511423518888594152767123420630930080492461559795221517499747183638444124202091236605286606163902157788264113945928917887705060657638822866007790832661496773654791055754374031735820019352554539830027744282066429083209353775990512538955470012663962679823349992414522385128306219627203335427681937122415496030595514246917309790559740210468255621749188378081124389493015462825228256996479121082952637421632601606021831060738812772770257748796831655218351182804090205704093491684748676299011528672632842027825819755425425972176099899575822488635726094160578403562449413972078117951040600221943461231686086207386056302857408483669590423699891850314911071644102125586923469321242560091071429780594975818353527460826159228150169379504530971213224788500006082976881587773040504526648314316713669658364563901137777151120458039963075719584038247591694311240241111759118546080490540222455779410561183183433987018077068774296761415556433438087470389996942095455614453070659025590746840725798443886785887339528761495242345070998801209579586522168265328575320199407437079460441917603727851895507880366722133282790585696660897084025186661769606213868043540054057116430577357023124057994171405673586054804248594062934965798341589289867794206283344594498365334367800752087275713518969371249617699321477191634546328026943801999225237805979325640444993172590518515125655811076680967502108929411197669224178143609943414884934256215711194803175963943641160196633416700065618555130041779262787090143394516891356402978132021525974437335286817053829350614377161273680147175813433244045062654509845389898869356904294057023243866742661032635765711152535062557227515487042394067403162842782213189659831107405573307550750344221807323197859006627667206244959318179236345997421545447126223484084023715911320962461693219577973667571228155945208721562441741253331863871784860237016332445484239973585840437503159430260063046519498709486725965041415827158251385202370298998805631559132739148439231270716067450663169286631598985622273865125092024453910449998602921434002590872548745342919051547595495154775057949467635614846626727410534442150912644637879701657891120144088476821729359724939788415794785201721358803722280854431745412636461427854488958206193422956860542465349578796314997331436427055804276557784734594532567098878519996754143941689338131840117201939699765340095271907616322463182467528337301933927776893181556165912981276879240092547239479559699009369394225104238559771501577833332004659102825244371188320746090703003996660439228206329357682184148825994191661499552009230880417776014560991232638374164778386025548439015682586347715423762181221852077534326347957481418709944615602017267235793832949186660805688706528561421345053710223871864982484188245385880388561274485479528700383763263428855150107722193435877481605571505541758807146995489765234824687760687509325579213551172522096495225283012459548299248241990415661966876033637833439045552258733185890857022566509257324680453001198892467296753530576944761165803574027957553501284604289522408858245720560486178920464467489497873353573233296507292176232352809998483152053492255507878468413475671103724629910936475320983316740367629647464668573888547897375273077852308213666697793530416802496988553766981426630660252750834228244917592747696942977088770010282733586475849510497364743052695655738956186703605181486185795766587821061551303121411235452819261554327063610398795705902834073354550652817984377630583247203611201596994046569358376152477058165063461706866666525090175158829599396731286877200623826528805339637724523417526521202681491883567880085779121717166597987185487302229400437249007141003687508699753801342759045059013473092473922236777772266090239050755345159777482512957237821278644429741543929303476015791433494102533074652397199924451454450162109332788100673975710240890099657839898507421871741793170818567500476205197624447279696373234623679458707241211853844256236758698875376366966125969148881817757149677035609717477471459870449461174154467498759962226680052443594374893281892713719360335723088317799611015720471296315011460581989447185092547262159489263144154468703351005949822058965489987268551550776734127082972304655642775814902969746670344825105402530293603478736501368628656955689676745245276302962188858226934552957027542881747716805511734755066277122888787748719176243266137666590929120277518116718064910771429626025098666944802634403824406016644588578993056438695849869078988712163987880974648874274551454011192412053516528014407417742193830058817873641327653027439529070813785138040638394822534005042402794381255297693350218753615326467600168969770990287631411031653886074505617119926812538246151951123975602339332251802453137205580693927343411797707302993674862213856048462618807871930991514211338087520144472143120866257080823186256493372143118049137212255889366252825603537642943726470259047476778083159610201995125768419202640717958030773149284787378183856360982070519606306515953953014664662131035834339892431239477585945463622248263095930787965109893673927597441522647241206864410018101630991884474011938306945671479080020362179185487486358763095711196635717070054833259852488739731679697207203926742197727152585097884295550617616380774616623160965774230394265070930243467297093168284071850031160667635030666169394262070670127335389166890915728912378897595748470507637853025172349899896808009707704901667429496442423353757900409926076708389371360847139180078644975320686526086265611662910441704531579636458799666395987242559462161402187605290725643867539718928690163961056067427048533447676943145146867618567857228942304223476407190764552447770181254415757527766497644534464957625522909238430214248644817348517060614557623133419337532607732117489830534534561778608840750507725707052823205555651270022132889428516033073173777400494787361086067070070337224574141950406665560427905244906681137382614972858362422388777174494252899982735702519990588675754461674389287223323216497021411747471215921009358431615484562440956904443379785401384068796667810823178172289407376586327335002012118662802113022832227189173196727456250554110528317101453894898570182244995406408953125584471421206138066236719909994247090252989033467387224935629498256984694198447395490891120428671878088276384302027615747818709383876458170483296630407302952616033595157522221085019357919963910868832337697975210813617928612173810147555624593897767020136375485331955787011387267829127976574871726191051079023869074328614758423850096815604363868932263538991634243717072298083062685433192839892818420641621414929842946573915089914229578369572692142153366183227351485111063941462950915149525735936034558377198470598538107387422695945833876445230812713309890478272594582840524452873274931014544968171049643486233370137741917427683850727105460544064987799621466556372583430568524955298065850782388416854854840278057135463028003504275241119188506915041334932784076527821577837710436002071114319161076080642486644632675939200230259349525000927880170796199194355442840753452277739285431126838135718126480970869112116301207423459068090601945601939252966681628369541235775551978398961624863820449170873781320085319486830797566261825012411502197716247195449810068485559250844187294894172039268145140513850710697922022532324393920056084324507050649160640421745758114718287865028829739853591270776269426158438412025545834463020150992892259507842541010662756025025427618127095572038432331746231790694834358079529876321103841502153383505243274180731827497083587288643853327042166772330309873097728942771336276383605980646566144651767267389688304741258557943322458198852915556864226525945582790657651805666722493895069371511953060205469123376974047082988158350484375217379106885120334328791421925985002923360001038872650886412380276619930953009009539711305101920975939877689062538681063744690742341023972770148160877710255619768796822429390211488817500277031757236403803673066975651720691999734367336234936509329798322903783977524987582606807709948119232266180436687689705856355147817011584380246489071642280029901902297978333226753056117409448297868042459262828160673724827652981357096453835044963735221181216568134495490570037963866508079128146440555486098742643741208744356957560391262075400243305008055149720310189417762483334747696584814773335107657761704621904660515860596351251859689312611003535148446558032270147241909905460029902652859570210685269074206837418723576689483432403013402106126373828858210791625659369989830850626391488963613395092392751270343082968745614962565948505254341010288454512241070381065535308592065622863439375539717591064050193657487639372047414573804112178179946105148072387897725339706930485188643977588707823700820522421148226488488069008177078601129812315501417222474557556861893655436076171604316971339475350991985387370737070773945938835201715320145421577581814734870072577583904376344836480290465783996580381521854237404032186452105620465451514730982830671988010761356371457829982761208395728299965685193045522822842821874183479856364635835059267122261945764346643737936165797179626669564896744355304975087854551900621620472256943875158552677633862584620094193205851840795687415425066575537791859813360407829576262744276341663890948669072975358011628226100685399514560551258587537029367612778194374663954132538506994423456690682471095028863032259840431869074958170430838265141217848867284125724632299755310931360620950717031007340391466410511609120799058185517868651376887082568055740209340480363067144514534754199366931691390757607435884602519980546238028593318201801951585543803631502687937065026264783837332702536624337650949336617920012714748099181785327541856646147894199391105729547263816338116184098375620336864563397449771395890432267326617261471150198583876080633030367984310499223503462732338905725911747488559890388585740772854362269209037323377425082447685633193764721752846149687311714110783513489716414339490812567003190980548898827973929022871528260455507850047144197744238624041997188216837216758703030976018009054473807417310930518264712517815732579593311953242547224117791243154038202651616549492286231433556547142717745111932064463865632355334463288519230005548032008497433343897633615083788280806833235038769847908384609355327041215007144811750662098537477602754435013176962079441314948145512129148696206284331111008725889052559418467230883079801275538083289482512684100053667312785569450521457885576245950396754128635443561306967669486558477349464359398547200830560546618962483698077522484308992077955299970141895622069506526787915069228781477949515353551852274400058191013348678738381804886305630739847284599224653113389597067704205012151295071346517186216124434283450143755337886716513172507270114948658452466759681647830994175177041443021756259143546486984609756389306541591842236002705378733230248996439966733361567451450428928046027194823135033317230047553874753450250515979332841888522088729692930341230386516502554850772720871306255488395635373365979057716296942839162348826156375810481469612212351342234547532917018264565501205043973547141058432232561398627015961578048335732732275661748066448438765383841353853026016155035828264177017427815230819811629960260912357355425280346886730794781522132703319081821622992077138831646917990607197071478468853077546066071833026146321814546772600576080169566818105691401485236853886748273337360554622199325389142868799992415798491678253330198371322052758959490022710022657318695893346933954977068912927535736074269771435903667137800624153381649957042573545040724487644042725202203830713990801923148345680808982988803133726952816643374143316186793621278371577802534264688531912284448034865823848701397163801082749650276845917441475411478784922526335070630626599589647772974861770190409288023774604063250905197769175172160035143686849776830441990183906125539203519191538924840099520270278372561018695253426862058732732790148077103075423356481006424671319371583276849011088979697515995880508642493455909829541442502742575110433649816397457141708218279522333469660475330325902399384730951430094345298749961856718777399746835841763739313339054951254678192333528496016238913966427979681380854921746417062969899930953089859272132291509874697165075013056817703433706708343640239275747020475787926288132241736062109489997504579082489793000922345897471575801667071810145529375791729397425398700478850910971167611762795624834604310982331100078716107925615663402902257156245921169477181782643490591781666433735141651576936428197453289926799032403195157055342056101590942378721325751707194896063847806949200478118701018107726076729892864692925648135898377326928001814901605439301911794188426561830433226877258737920547801146978099596165148953368578340820120931992070026406345800501238838334625777310966957269227342947425016766046093367777748533196949777455489452100269136683418224840457512379369862792138845215716669742878891813211879691692423582841048196792142180099663826874253796346862766072940264249882659655334595147883896841077436247432364653198905780489736956571402075032987909951321490213565983670509226187190964283742594562596720572406020498195463677921714390471461670292663537174380057872100918759728055170079655138094947397708674370149482290246185419901469739476737163214532530076972937720149704159874512375585468986006071630587703724878913488776512325954820518251699131413230783898665563585744263962050224091555664340609725748990669869237763625724225888267864619806031777792672148001705047423768361719608113497199296565436766214750187173007313007954668825383643816213740741046967405307482587178953953811976429521767381981731332736431879828195866437999352818726150628670439098819347106021254267200740734822240671769653213862588755006374097149892841865899464858478663756571079552568309981135431047482616278137087316554693910500491237913340037028188731013765996196892782819140092442658715767514779515748032181787766491186462659146761648730097251508260149798619732480626714679484158202213105175928547773014492702956901986836445649679111475881173443969684406826220247189247176299421321027259680825819313498639369905037802047777894373992401384948375544435767233004611788298652142693451181388419081593145923075266391547512543698590971014448209114050149201186402547044834941767435854094558250598422105882007951732962591099096452901348934330257065373327119348474485673666853632694470467132368118583340947310275820665155382107542177327996023039311050053066756732776375918786341515960934243401644923820711197712883492767741192878289259898611071663552991644163083879254365707199376463843786766291677314550615406816995683688742337415989622689316271541178586407234436415630771989010123257591102642640524229472130978011579282508148559788348123181382168746014414206800418901469555214550078704719312787113951899885792889061934722700012998746686418038935784372247999509936071333459079113722131922542198224904922871902177343925645147221739411769568697426364412662826201045766019448675312398935767573186798652935592169761440162588383589282532309523719015352174079122432974386427041144574874491680548522081828654417293899461476363445872624100966791570335253599539849720279802804027403192804728554572461055722416971677777989036682118951289042914220588085865026616741931487726036423382910566826243204731074525217198651021005506051926700023704911072771580230762882825866859498828930667469546359804623004987565315445961156196835029429933106556546548945125129238380217200903623453788527605568348268643054422749395936222046356007835873698658955284406106495382402497181813916934309285795167061510688751869130210573705421158525048709810462480785799774069418357484234543022353490148849046676692753884064213678690705151155144850482680652219977163184121190884051647473919786374184619777989370006188221367228346481600437351962112814270107621930726358026639835638331377496325212933247571556225939870031608801431909835504356431241741436407107427372458188514653184377352349477154766081040269873443643464042153120609017687077456398708419609989425693934012775228616292784749560289585291553169216718856296198522127092774267471215578922126268024971595063638008194632271375874131507167289814721576488754993662991076821026294519748927437825512374841533627956112073159577113503071245139396837577649262153361814419065980253188885364018565450543799367394168521984679797555223039626590069331310332181425839666370658702907775388140862472686178994009351356986474184776180657835275751085682920198622091522692156492646071650092614529750087605355953503667246189244890461566808275059446181111843469602539488248679784732579063905391315293032451136567655543877489886051507317731213166089163134719293633025836791755964935624490098023613794100990870966099345111005382146902415790452148515059057798315732705330901435820136871924065726073719635290941133598070870005697853340666293027632286521084425867928428930363475524540761741767073501086550183766809401686865517558271349133102279280678526871311374672756499337268437316697782537285668944430744638318430318398289990420230988925175980691262884998078812248221288863456516656274428882039934659579426684409397522793258591300826228250616443284870155756484368196090993179131231046130570059609666439539458132386233919352030724343686128816354316461433293400549479419247678197952553460133049873076303507105039476882216469397067972345424870026732441609557998144652046556587729054418745539782631478503626396114147024761586557344287942883968737455073279703093756495282246569071436682387487614360168135799756909112540520745846878346124789433421310731133009204123269595011165039807604352976477146835522213772615663427836828017659979399453244835231337294450644721251745924694298155792244616921934502757203157504770329998965653199046465868923518006931355372630986426601342255829109605282847729107076400302973664131388591436567361604081862522951880579675782270094970613239272432883578258196490698799201858693780652169991872681560381260737977836777662062697791004041743788499944970537951096371654702200079924240586133222834367600854874934059208301823125742553665395255777095926040213345783726558399741263288160389827028168627949835731677364504311218309846405123575542760372878398811127175013509800355748415321954640044565121654691327368884584849536474945431284738956386047281707964008562474163119368123695491195683241832653132436243728202773068039567169084296464535805292838054544631451763294868858364117931836207008251748606755522446882108334857668469088763103722653629161469193973710368747841514939611579687160123496802484771768624744604035973141015484619304975866148369730985268593250078509160474353479726046106612336780936157648044036546701235949930293243660972175955747174674815596860128702875356326879962476521568256770343203682563118510671180720581445218856267155389753133317013696941810514957145760862193845720755505572574694444678405365293969897958929532661311773581252149845438253930851398552229274307472399549886910078893673418352287236387016759856228445709582379833627209347761198975862153765267032561258359845355397031640616295778597023090080379419792947886950799374613068833587196975425631505958419716487887883746137815215097551903518725787278515988371272700513655557605845450253671142089100574015862196777664813172284555558777387530755556279172949821675316310037488592187772512462419546149374943101376888869898480762289544765075233977143208959748109030309557792861586270313351872202582791134109364739809815052499783139418477079042560769349180806627287303396697081805453954775903383904470417120390450336533180882568675024607735114776273074897379552336900719692621243651985623224351594385702308527188680724405000860699581075478126382912235190971155587856449284832725346588169749927130005933234742169581951101877554910667408707440541874634549818191639906561937471225341212360362873645468049335722637929711248016747232998644059791378073515527189462240561464944866496441393443640033845537706677668013180524012747137772278707065116915769046713627218202429953333992187653153634644429664861883674980756571450329509363548551994614473875729354276072383382533067049719746078440045866443698689501532501943189006212753102783046955578407236496127041359605452448125761718736045410089125406413099642907168485801308738064499962711558168214732742451855504789727225930800227240413819896759727017500427723841263444649475244769751881145554967502328204347741570416747937800860394234742933740541622726277811848113192035385878966612157725034015181712858671975789907282679821666041933705409719823989420234794741187879008008236707013429947767951508777679029104520700116240426408082749019367870880809733146986563421743074980188021701037609807698940614872770137915099571043567210171179605768295463375344541767399001863191220662085881457330946222446446518568338436468975976173927967876371412586686150021918080260726018585879681531442598324805807115119706266963200770044148625326891267946466554154337719145510831270942851056403568644427144235716819358881500868857580526370674633149599768836296182565513862290875341069951294501622189454191988592340715749545387406118977091169398175514230642078630178617837990874474970644116657539758376022936578452454394998714229463136790100010917272114057486067294703103366251293144839124101692524607927677863733238181692525503091048893338961364817461942413435761692475226971064904456157819979907638607712224165903875957598150858008310772162702230350210427865683155511322878545026346566357941003837007183301664741045095134580405266971487694386631210294904095261611728820100116981119967070316038401122072902815689321346725148655406688115588315263194659776021193165521082232759152791558576394188502513603354154544669647670894781408540632973268153648949301077049898671013502357878375588349017562169256786550870502942478724711989892513819050599274312650056565850661104532495538104690573109476799353272637500053501234759637241045185773443108230174647359108022594617408840936271226722238378847238958125464579536949322761724314816982432537806824958659504389022684429113047502386018901317313108030166661057234344280138285415058692181017115303192816490600434816786773296578587662361398130500056195275529607013914374368473673822113608583849036537852895211340448549265712897519376355811798039365497903039997456537503264417911302425492056212262463917055326526014043118166769979752048402972790866466628461027440371008397361501143615204830969263641220970417847700494048341915549346698421009841661719128926625049030054491911331364167285959701457051935910933101811317300850349348280378761073307087261717320970964260975255742295556496489803274055506638506523729637284346856326045863255679019084165196903547642056609564859430228975567228011088724513432962358752277223089626929607662836541275488959372186530645267333868771884338751516948397869120540504812298979156915553084716183615159862454693226957355575351265687622318716520327734760721593394030851107872395332474047558055216882273349289568993326971056145076243959307870726115494075926189936771251711408962824111098910612495881126267938057306125811510974084156865132747875879934440090718123381307850644188082245677278990611061779556177685953013896081992175942137763715409345200645329157871778377790701348085516296598042049583669716014114774043973235087391680223249775779046034444083109797238689580659055856830580561732366095915310551673513994609163127741294660090208640030019993448373617768698547138931323191721022720391593846608582845420920304693478144632270018775687936412693964665038159475517254120858041032386035315366748537861572381180357443759636267458044853584840018971093368023477002259851528560449652630182984688482066581515932820107692209475507972786589594734725973360215574443000104648476583351076809704678175600732288374997367458850061054139318518087485630708595950721139039960440385466559538990221538287951519797705263379897488733851758936166526244816786589617556668652808816268456224357873012532397492016393289431285205364586663556081494868593400063645401197943191439110116164338408619137732986876183209274897280879963875459677032183515133054484657850995557539819352996018417521934131443643015306713045731697873356409571604775267248513042991821686426187686611403603031394121559386440192540966180521699768058561882419673724877670446496955343520299138403582360957766892232681890605770322512327549878713316319140144749359071333536665299972535961399682500922048870108910118863696600147932932182351543034416517784756142173808108425006635607452749413004334361233386049047759415706254900942946937768720261812309640150928447655635704949515964319054001653711301172174715951841035145870307059794466070325158944319807697673975866151948079595881390643202220972873442763088547113042492043691096353188422689250381047567046770194940761464003906480245883523669077276589911946675475882719328031454814358051883496921143399709742579452744106009865465314833701851445253885815433269203934608130060890841459526885554568550913154434112981254630475522440795734480934211530111827710952507331097470390170463015746481710750772159653660636969998748112934215803207947678285963994447022403335508297200769226606157123093413468940023797092250051590450539152184171380170439408296546783593408349180854731629666735657949741166893475347180194890237750340152908793885878961232208757018205241040130515884863201540231153609719842746876049552677549027605438259627591721822850060232885095496087421619363986333796160963721633324741774049823263737011668008447630239692173361079472542333948132233847352674876946340418183600227995927116589154842170871365813185770948761926490725837907130012912715507548334227272377380984592963559077323759151406361810308096348434801221498387859712844734004343292493171173835570202361437934746826891470551552683760845137570658774752310899047094778307886238279793226400033874556910844608454800252172915249383262571427414103199430626627071481792367350593048864932445939911359914739317886721180162422505612923165469256729910497091818391753862372212315199178574411390969938837216884434350638843104446370870803694417952232829480853709091103423961850863574140171568541878702150944716851424576111706137950542577447358839903574053916502276794560945957809059956653129952819687639155579297127290743295883084530692742197788881108734765520586978783818819033166216331716841712552541094223180168911528367059033404815269004613904019804659343213037252460373460018044509744499558299179329647391294956017638953558020234773371688486043362674237822923313690746478246345464258303668655018643320407273378782565524778289930347551931354473452337117256873185125264212121887447573156357336705575237363538760798946896326944546512928912916396815287927597913080351952167533313886781770913316211174074763744886611568106177183048155205351743137527598843653955573260013104892259663572175085782895583567644976130224358017024240308006301474592260524329975555249891472835513558676421151434168007032367788779355551375396788201900532546301679096261690317537884053443049234831195649270922420544558113021556373072398302657214101915035253557563935490236940502003399968665402197740656790375119236898638288387035873619937356690634753771912011270270610928711899067729728621261198227924906761604539685382855177726047512328673053822533173290211567336343500009481125157277232434263321724340678218142699285438740987371879551427521719736107895286150028970132691826706736714914826143863156104852338143444757293241216928260105798047264819246112378432161960614407038153102924954724681692312216722416650874344754867432105922931821954304939361213073309903344195463493095821027584503423399415679435131274958499877371783801182068280987143378496746093622560290089512362318754891411976045344701618928415734959531600985287097154630860073891291195054270576780243910853965840269557308303286561722252911691469244755757345304595533531546710684997625305892584942586900702319910546852811344210770117361206163736365204464798070906515770395942329481988629217312226862203494198148682545556516724216557316095233615770111249675739166724787108388564247982729554750642029686388726198753463651412189963095170853368692515360464434660442279938987164261665821856313193796536839911858718004279498687994251647888794997469289754116319332175498613831011764662444835876572982761589181575995343324499346286450452261462429574017605383328073387987995596506071496667680555723167439952600151249012142794865664721021626574212464194196581017265932391859511422426814711026983177333719799530849068427766373644975819801947297206913407492343018826865134482634266893453863288590881849857002470484466824397147446391697878660098023761665755648607097870710095256212055820122828031316799330726118351193452209153601838565561393832830781973196463047941995684922077467143620035194518363948579607256903239046212643533319423276600971047680537552640174838919232354401130604848203031950248848657825362201573409688079606326267824646470959291156649565120862239003462995944144003373970900050827819911841671693088970387367191288956031361352012506817744341497318664453943655527129559652153149570869588114962388110380681763037678991069368247270671924056114669422734420539919022709414601932993700912990922459495738246913923866294249722679211887359398350225341594010093416000553769899310928973861011929188805962335265608711262118098001300729961752210560943907074878515539033261473876846980936911100763747529574033468277423528918909832558330512072881581458368723111611106551366445104767510704466750653176113734267049470956198438459973689613541826868961245286115906277538246014069209113606198320359730963236114817019835428821398301937668103483484051912599383435065494756853940634880638583704101979642382926300642369618041165817684273176231242415685172620652958669604552819047794313386202026407655370824291138200598998241373222348331012970824183796534226832627151463458551300246754737051474728383708243391756034898714490373934453838806764670870470774706425990246735883421222507418050596467073677463573354684218730127366060949072698806199092798518271535866822807685420143509750972578677366544493896239994548137538844668212308310764438579777921519798823451100872627681367800207212783583144097035541654228594506528007566421646193167062020967569802792685964656075441959734672610696696422754180649698001234946835838299876459720388084623926324350432001676672260088860872752221507088227294374918960247452049775453969100481628294786523349580199490010138116054678448728647095309420664070555491103543700152895045848697231990924581759961238048249627536027985338526336862683475920393416746693388800162823415259374885405732313317618742762609540363478242096022701254495066494664026025912148566599250221135989977195184392993680105235037265426238577888857451819441117988384186555573411908500359401771858984957239556676501713482076903861000752840589850912795513689124460088372838158111187427417393665528770583783480700399527005157418000758370877877321460347099350573127054589297338604607434983280457101748064789552852479426796919887769331216062503077899613907691751269930152698562634182102948930657842577004748249840748554433018611809502166642386013593086061417165171334921075819856248019326398391745206228588997334559065656135150720140031668284346322905929037917321576241233876808864375805184889972605130111711300237126735793490121950026870008821198139844948259663996737580735211468944614300441564646491276751505993691895484276090602872066930724799608067670986547892346145455828282766543185624026224189738379528567027393033399797352466767468948402075416888463543239896628238769253997153612559512881794320719361916957350196579090100595165839656361179682338466714158998904104500835844867842592715467199560379055967290621339254760140785162977172634290638431996899007656223295846965620643380861733678243315707536657699376656906497731520233231474219005541887154524728563960000381469184207928413405049895817433583482974278191280473149124320197987451644147951614936790260746618043211199334944621917301906042831682687583491579165199224773024820077649876224160801111182952957363780263054400257914408407723154292787937092831873665752890794725441175582540687601571744203797714984435113923397708913208265121044573923975271765485672913097374090585610551146656841849948740154543770464744075934976758222749170197468522192064319243818657395820924511425285991993454654545365996954595175528028255334533864656473269759087499038694815194215469356975432321351132245640615675060127943794333457792645863515055804563992505842394508117628970369397713996169270569758826848234426096031477639405561086877956481069015595582306787720991899843368350916663585308785728815707482146151829418303907493580928452479853953758355744654687033707987638695909042830119004847777696547786603495842197405478890782094796473128692057430080645473810247158061659374362357515480674891660753451018836297643962483238073030756638841603754218036155106649615737134376852420851856372697734439204302515781828377479082668626163562252721395075571011306231592379641038703261716821129345898657866066031971624358535040067162335233774478780550450906665926158759662167905769931519076354810592782304599700103167982050022585738990880759291230115533363163864873838811360983592466645907526727776108601347147141724471088758840665800280420081797319096588941289188477545177234700299978882411808748281385830469761548902193946946519105170875572465877126047144990537764080036466235006412079312884134888034251849694639885359869619743924285715012154939789077143356452138386877365977678216668622938381495657586216401080545919883622113009605518675189369719086452070613131313764615059011868442372938928714164452152027833988108670651575671038155948485880985385356145351777614855285338655726434034450316149442798291843993495315756649869340902637278287664404449731877419036125574717229634871719362974020710420266182351109643015007329925424561080041259401879474204060604676977794361217263098146038832389987994931709821145232867921822282375665930080540007212063552889223621734033506116742343672225199141204027554985794922778130329176641195570454968996533082999047767419215466042946940322041231866745243326544702378607418856445789496958193266404948769324378870322290123646653869353663794381398158833239108849841751384854453490596725728252703067161412057500361081123403989571232306684230558000120536789434338323112203022164132541365781495572829620426207512903030109044595088237471416338045458204298619729011912258654450914822360516344395985065357346833160678077282376997404757687920832345534534887860623964382505005347324092603383924918969114479585445023743054231179880862828062848494203038463850162422320331996419741943581802499111944752777997313467361011394398449910441208817350759496480500884219289503363768233724403630582828530120158368060166786838284563745071714068420658473866129249868364300727967013110727304472952437095261222508048388814464545607836780490328084779233372775165571812102796753000807544460469283178178820457619003901508394087994602696044255579350516085643226798759932809062414232181686373291336758610520206951556909215612765053147367661228503144075328705545390108858287412249086581390372283382545801167609673329420263357064574884301470436505875982792863694107174411453505741823307325831320541058563494766996093106912709270276074261552692579498301913811416810137573352780367739532900372631758635994346385803565943608921986118793929898456032186591899681852249558734360213005414840623302133016663869716724212737195998879747470941071993504156825962395387542190538028036798967897188651301730698868337610257898731539886217123989480898125160505717941814707958043079658455980266528504199475303558859553896878549370862450685682310216437246679201264499519710141830378895118569994912061131424654460908513057702340077936169341835942375438174821291564299211113909743793978671959073165994361489898348585203826669962604031383550065031838228234479772767761385855905043775299335194534203636229190446597236569216032837249596201550580787233080985176832823967883365668799400634402077228206310151743520484075927300764794065940250117610437710823958594138441181368030646332592910238664671900527467051183965317572034952096427005509146658789463374792518017964229360138992027407122049325762911503155534471344144394632132651969554728431865833373637512140307430663783699024767609000565023689428764151505396548686273904977763153683261332327459334884941507748821168389008990861789756445814632386584882140231316471686035637032367408287428729680965402959845624237079930597285833858230214220246386959469485795665018276326101974474927617000814550883526674667132649109128097421446958276497622050874268389494602665112278873643425400937209581166187305199307234600321823365330700777387155393136250625701752743892767330901839362039326315520773911034583651867459215114368403235934138112003942309004259246774759197137192466824869509554916733502013634312105276467651309580332806631707892767344130793118105161369560559950747121517478423413317855547824932033402168660616232947256299354647266318456328522400438629262802063862622652354054562218589452942325631914512838924581148979637866069540096197253021394118268895074552090028804081399969871888412905549905301832851302003900720952455202162696489309123884415370188135881263302194633303590136738494387560330965137018876437004856391304523521960751737577899493668188521138830361041654819147240230729577703007526509190277946910882260068831929995155931713528474932093079162602923143962171796230293077109074674775257848440773243665563836994158335501468683070936130488999895791224956724133062828412679917913528338912170806724563773438927494605764475340762146832793575535378868067497005149058327780217169409609278455339139813141330961363580551534365909761961967105856729144340789860692378868605001127313304064146738758777896093052869787762849855984664580843686047555353686921550458049813277673540929034934440897194960968288648499585693017552006024416459695230495279033801355831664787520228099474915633955698900404244252467513541666276478153098990784157819403449097744002725551096356602125186114422726458914561734637331776267731061433295907555867885163147610166143073390578757144638973852627950311250190738497152529642547762484922231848510865247169180550802146229804069934283576663257185655034023987624330828839420636126322024322854581674525905305915880865264274403646850069541953464822492289978977756732409517023648822318468921318198122821011679250480541974937242734374395992323318962361724540481448910040125198837561378721697661859128499351895620471790775640915112923044503068191421747483213230928346895568490162513679325032140869840561473507661230700201168294370273386778376404933979970202021689560612836588534498610435439665978557460450300965779128558651250739088971844881759780413935376174407350559565431927006113606963950429279027193201898810568833461581598801722021389529491440059783420037708655366903315139139481636972061117962664278388840627599062207215998083215336278350441202647887104888464465916701328092034488618775670915923181160144842691511524247069726316315899710535707796088634325728756576416436332567658131234521156747938843547172142306094173836606295495805682866359671892885376777735352304561123781752667341251239455988233689462665630097277890800392904483822677999878327926910068485406360657286708249717599376491048273788053549830843713029535281503115678261369193194753514306903140218478707265682462194557125786900246208461920373608845744897296200524910830979087343474871359879587588691633518427364753645195096995751214519525921150437031607448871223534178914274815947801257025336263516380590201864373964572500647672757676354959253934241593296206882788465172305434897665994672916516646766255860233903901628854655033433108873278353190662936634350173130910625971193263802698449211712852822997890760751640658340767858849478459323076457596560166410736604698794472151800418196136636087411751235838980509832350731290498593749235092467857947370131383389699751417915474489767211881352865490363352673210787078107422927058229210966351355499472837382711623695926873916469926358040746767577043609633118765981287549754893179262792751451099082763820925583180128064988580235474032850783537323283615432934904781480048666850054822118226261266846678345434329375508877388463895235474215289369927987476965399974947663148780835376584712024561487609076625779730444163038078013705443875675051248110833860076232389104664858292972877850771518726739975778459970855204299310855712074713334168810721161537393719627111800073060795095938333578815129794123671211836560493008025482012564899400130069792462048414277398160146883054159903797963248674986138026497095740785337140219751635531210842952745724558365102419196896681089476485488879238710884538845394062123337081021127920586864505623236383195961582030327394547623212412210050845956093385114897092734158546619104804219195539039436634992180705878957331627929916637400130608221089941308838786411645210640111934145021435487190369270082080790681665105768157182763879975917468558804752272312528057333079298573549398517206660957447550630541654397492223645726612941298593907567548370187186261051939046519119099711112015254745097399766108319308516124542030406188150720931655342961197530240094264324781472034151425415497592752174708645243927214162293790685240669550802747073445887910537932039867626453696088188595301461399501710491267225758980794123024305445108186701040405848968709221834657492553271319578283375673990150975263613243153128837445675584518038761454438951561269664571929935109597733850242468115668455248352465595238500040788066034374877612013576492643105941046369679101568105051908895355570506558055665833411912571707521609691238898903669838981283889670157472451759923470578853074959103849973501125661861270780356454790162960422507394011782422957020769795376187239937834825624256819030017746852785663122680659989780596252781002654456073759792453571344617370593307451152086386066830574883554170298310962987199984467665384024547787950799746710485397533182830503398793472602337660661299714661101956671575278930652281737376599114470169297227121475605549578164111202427942813516681440467972195281106190364434555171385155754651659968960738267188911873948816820824896622275620111454075340461057253505620490823996172338693232313380927499808318616754014476038141256870314312702517312734717406318671020947906043798925294011598813561822798947311382843235375852245437681147699963447371285181176090074014360877973397511942090465215329772533126513177002730490133631795744553435636499103733893729126074735026170354197912868317887354405264590129514121795952881643864685773655024658630285441659064814648223236824511289370117289797592996214417332637338727111289441484177812887911499324830511136039913109395352784220233291936477112055417077657428866958114232868693996199222180434947273535433175794257561632327768744076166656918501579532367725228402991118442794523145108598594125523589151994878580683077864109069203109682890056447463453195333665508100847302892961382144140768430558556009584470811745931103219663482277199723495240592792778149452795783688162889089425439848892671069134700910949249663219790114512780780280986956881799196927199405247566572183281968601235920927187075858056847847271299815443041306120705323672619888292320647634999382890830300227315006653929292669166182437968208385993673482393457752213878144134702245681092271040000921506545537548081962757045506645285556401823454423317263018918849554829210389857007552491699249784491144463164977788922362086281711745160512666119089781561823698496170639130788867352075072906173447623986779715164823985422195286819144310033504550640659592135776260819865850662535780615235359508566007845797549982575639912658200118202171645925379444565759752477168068280017000040889926336546351381796505625634112873340648444735519666925506629650482341370035148985431454223390812888259090892160972616538846994900308738414427719456176998714595124196746338380785946525006315093313074356722606108400986899736746442830650488005796930001491124848294643881448122411497411300244409256512330575705912025043191601853484601265856830179701448106333882806821373246623988432972042559427720039540681226586795759560567345120678670262478366729947402542488393609979959210628978858016229058571159994981970155677919423744821674140938370042932783507578628752094336973706088411488689581251609246456832410423520830285156209138168076160839249530439065582816249885635662538952753529493293640347153804261786126891314770417759796459942226435957387219094308981302034368715356576484157792501551657157197831288068501255800303160302454873736375790745192885221450655727309553911383199682224392705413894082411280362094692190624904488565530376377215886741121075840117557801746702800204405174468904297223224196117708816898324363760456824385425284115661652217793685944437661992483524933609045356061573038213257251030150323929522472110412230328265930546254287099694420829892423720875038891781762798533044333923023689445729190661845844889734743729277018482780898889603393981523538415343135819717556373596556837663436945338599864264025266928685477474888739266618407895413760682633167776311482241029022065373344329740601961160426627773778363042813783597121693148147514203672335081632996111606840805215761427851773407081653887799070337553716307015826602438887958535383367509368828580097810885755288124961952230055756874435868628233227807221683983199997363465172103326480233089521473427190993119232134485090492707769856766222715460148618826943882691841062471233245904769305749942330310019582124032100536575354629261921895852229404904417863061261744228929803833475300030486087843409523309634296249086894802828956179434234446228239052726453149402836297272505058369993842655678652065596358645321062602919109895070617477845817440331048076564157078255495244613912869302399057560691163008760474523019511474285406707309208379809049916796660794160754015557721178047675839358569988453899919335213542607414333423177205739117825225378040555077348054263586173479668739067119625074232995635939474076397321965864595459093640588120283737801150432202049452761420828175085865297860866217686643611908922703154084258336166750572632811172586594647413004865035091045778562486945053296569673272319588602995886339629765174379120988353955382971665322788287556560412257271301730205082413450629585600097269002314638417942546547977923473839596658089218805679408980033813398891983559809701718913524328086932922067135825717306785935872606120215510129999094378706392949760403091237874468925754703207813526247295185508409913524302438284181848013125161351417356525169128574764536846388937998459952301578287488128814989616243098847586938689037074816863650375019368592946932131179987508245858637946480227890424437406042245432122439394757149580967527702869223910680008510259272229132795895523593906110053097187594646952532572619362455483871086538034989634189593135836609528172278420265520668416775442657858515156164764730552353987262471604390177226319001072596448977969635406252161707606032142171358938111016673823721741270309689527528694046550071465469840464947164726706454499901723322847922455967822338923536559772257995585672420622726985568994240506860621180794171446416524772397538268746946822682284886894100151498329593205592113611048706526111559525904048230633921540674880261718382547506580029191008372518434360269379358066599642480097309257364628117052003263289057077715748827062614043504477719828724303858418567560990864161901224625534071799814907353777329289375106583436162621323671808576251785761634030042497609366166028311088792561862888679256990687324773679356927585664103448679815246347511187213480130546267771036885293873423916166248134868711254134034758252328180490437186571566301143065825702397784903346798261013963342542468182982929214129641197113438273427469150336753302107683332020498623761483433002838900650104102387687349728192814303609003523704256998022833813575507438712337613068846669748422816661925685933104694402147798710384127359725840747934666478898979128942384094629329246361019035657545992408958576428787908019451990630771805169785668754364849901999132037550895437384518423797369724489780497226322635007687165680660115545282110916032415583086881686048485691046672879213675003318383746958783126652482570527542222407727454630868572685295611050315685460111765429496368818191899656906551110031166156857222067002556670558385866219972122125337357594678041850156988792749956533237623986242585456722352920404856741506184293158270617844980855994317993179266549895584337347223982462653376588857319281684711176882419685308863566582616435048361173550712803647603817183123165933638745858371072659341113702333503255388136351106412472465236371173886386093001613898801234591100157255114640326556862875104380468047889527353008954707452476134819894043760967009172999273111755811114707898833972090907763279365451763513419909580824470968338267477630056915007903004058966828126600123226964102152583385431818410613683892548872670301920910738819305545874341615771788452889266976009241832919053928111011580612383673658822338741595345547867519580942546148694202549798175609239061317624723068864475435236756729118495840799273250203661015936428169993633720495743053319432318226598249337040432338519340321658037753696170814947340315233538395577341585576056130138911187636602414368619550679754471939541321298272191346731665739665046362099707658835565679666243614233421824326089287774763680325226029746513918865085959058870970113547191581117216455534571767126753966824777551833939827207332539534159159443630650377912344517387938105594091767201732250949940041988984695917579486813507510120206145284736229403946460568044684235219585274790923784160042186082385332822498740005437296976588174383133295929468847069957331642296928510658820803168969019420023524158924532570266147546969630475251939974841075447043530506793646127482909714750446653537896031570479355936296322988483190306966252092293786935205624467932970811742773007921730565020023029608704674146479074760195311953732407336730739204224670284417328399108593571542557823975787017566031567681605310669897060449524425246675036320286427125572426708725840290201858397691071504730432433092655662209912235105201808445277563215740385331696299645537841543222610316062080433097683540992800880810059219202001819724039370985187012360966539314959357272623921037677723884880028033628518677626456874536977875545891395444204657788236766663456997208976490179999939822528020459209369926397082419297669065670549415238301822115730036940276296033073881508363530362261114744715734728756605814024011605092969381941717071196300165286008576683296497936159508780735620523997902992389822746348631539416107326734556779240982512016363197103782137347152896434463971022479542460037948293883777310046004832611648293023061982671176137355873258846686546968934657873672868439473275487087169331065785579644980045183804055829008854903831917952568273388095028780202210941586740890109343123453159485540735187612856650065116425081789693437700148971880553010239277310333257072825333601850873884374097993775353130938359026914137475790815022162853986285425778190824215831891832302072141883692945816220515271800939049044044194817662261920507637530356477157374257626367739449398949445092561067754518971224370993579469945002390438925357911233903005080458786244598799844447340089290305307557006962424025483323618485475509707975282750777375147365409982713409530472511446907862624123090437058559713328700795397361599454725845753883527824955639072176905546756153707468637357556824106811543352820341594236579822951290994561058097099995838301719712059452640641279556865731216046858116106194965990865169749025708102998682498283816280896978201491501372649617610561498935572909430411221485440119045549820456385652356401625706222421686981886194159718113672956251420902851615834913544664362281441967128915563192315321242637325249017827715243385923312632219839137698819664820787155581540812924975272940286672977250111628481461511067887001297527040133051517826146815179258443274386027469738145195160705486322642548499779295723566092197342055002214642101757839154369640351196141220960533905906847664864368246559252773724764032875337418055585106317831185844156995071404526473371451526127860935982753294620170019420845673462367055067074770462986092910039293889720613778595455760907819565482021907986444660629398587110673153168969146559134843824044702921778964226473392167510093343499126186134416637801387454590187021850606688659793193535676635070377527031815162078859843242715824700766471276882298047519525076339333969459691497073195920655575295850565732675441063490309160700331129574473648715817057344530351113760051700109648581160636994576427097550478463949943242417910850872290285301995012447962746976210923600489792539609681788710984339464030928827495021836675285040281034828703975900786264291587152473633556908418053041518362371130862168837545819932439143228263693205953982474394299397818353031553778702436636296718341277806941096083117302256976450718208146929591317537902897728407992081330971588759938351483041696758837610223880881540517129756839260527596538981264047167828366421960676696933693759204076883590673128793996734111296389572172453917006809724096319565169617450377179339542239306343665332094069863427062564411192761926075954908387736762554843804286739360283401722543922537089919140956219624599565323671923772452548713528286020117990002311516536655956451001866013969507529729139286380583508264412742068562890773788924578909718753928601611745857909475414723611787874511319429522586222015463607207049420294446613331540101437302959420649524034509570780146261735671681291037508692915687482702462427122982778992545085550154272729557739888438559337940406709385938968392550048062244141410390772241643729842827844639009202144726755704832104712187675845493507484104712839652358076918528458450328401040976923213238799134505255673613431132010336881243852378124371977061986635717881457085809398948266137330548937891399666756312292656011716306176122377867297415525376859842474345876134616174339470938652424130217544954276465219186470078907339242096509470259666615828617403117526051993527016540256475118600603830153540585161439444235330501468912630708909173603385158645630690876610103216036080736127572574426404324004112434382409259739447347434945873122373566477360713035244753103661478516709085834339042158205879166423471154682166670907639492442503960959719654401833067795977856623899105495857182328679932693100209023026177734707724408128275803618671255758714343699054660965512888130368675065798383713094020436485510762465460517472292043644132558421459420542819640181074770391385968928527428564937265478671961600054792411285597226483129491708769776509307438434599067365795288232509449677298714203490538602646485286182714878346715628832116782281086849419353419750871727762577831248085766408174581406321707165480242928181435059890110846323954367507633333557021211857233020986817972338996304646254791574799427074960053964916689181293346311841168330095053375100450443669074292741865457353869154516352470678933487053343167896647213522459014115757202422186014503060886688457555523577946139292089918117838738348747081411603181851467751781760006057843480863009154442238205675666489157040161171689485946622719318175536806354932598338074433707532826598227056809506501845509220299862933728585333398000678904190981938062265839619146464785766015842488659440647511912239827816100857299324302877352851799320948123633788161207869910281940647066128194713199935837116644076274468855814235611158246680091597810285987473856452500662871940303965956266408556924211192752713107377951227128546969502000641635083993944832792486836486099090211337647646593526445115194358871738964743958914811745805531995894301626028627975395668750722451349624027592703775509819348701897696905052823994814652051388482045121362102376597030377801810591810611316923239860086211567322563825382090273050888006651141541740858569724449955309763152077423703388102187435612765837385882642266568497241563442365385403719452727549880944766954732222180676875292717177919683864675726796819964972758614482325755161822721754566421453014714229880089457991134545141755311264421476771384647828925218083669253362082265245862275776475987508952694018657989175830342435767888085933061568537504695459602881660185900233939938755495068850853795476397505422845875668325214431771347791782674842061062166160023497127789548340214944311767599148608658534668460914684764999888730428483908185182666792105435838959580935807082898059197215415229240906052522553396920439170270108265218083558932729962385611274346098337385733298152276313236295243758941956370757243490892670099640336846493021836678833620765336210396513744895175832014362931907968678670277185387329614000424126812591160058896539044219784831754720536381004417515929525316326415015919901252825251910935247904840646863534145183772384408116167971975127121736833788520115742629095612075614017340529800024469072967286287155579952689887222683328951608515089964046784154527523281477942019637274280487010706357730454782038145910018756571952356156766172396526625013654621245969602019826975786192646161577448993967885943527846040361269482280411444300743412836106875720627334076418946254056453462109725849356013521970309883222048585080650847180546961274275427480729418703432063544476011493367309541552580747597150627634213024799525694416985100111009935121624923292127661845483920124977574345531224952192900330261590000629024264150407918549743467537202052225945887862027748826080064081118566147142052573182192814108895358414074320826065512336479081805610359784022474408604322500743251896740970738307357606841640319673027901604385600727407856941264671240016658280765221440588230338571618618230528875349666312309740046679303713341060608352155483110989189944444574295563063057167282100934009786259741948371306898562638722977714754399281895887843919714878831822757842269953873932954195206223500793246080142440828256115700219874120662398833406458132949613470471645693694340946267867474043835408819084575939698916031435811569450117853022016732164811359426462790378992276913101434065649514714121911165229305224925548988620188313081873926277408744864510844267231425814298015219874247043507191937993858401683600428218306541312111726208791542143248373703715268142445539536111282940557733821784520232495216481002094854426179137140706890540735446417805009472311691608693892545184478971157926899034120308143977924612769018706750804146569710497092541141161110959396866812449437659958234706529908615244315250848545714371113315106246924080104186069821931224816215414885931740750861295092604620880039450134556761551433882506869170963206859193466133422810707598595897576490190208902385391572004014480382493754851951618443346342196808850786011037608251376128627923806883983522921514716931438649715527441227920709602251506655139982972655288914459963789379690045715336758812384502405132620058344012456437942248029302661229114006004836731170458668168294239548940010744573478399408732984005776431243511805204814506075369384509865932587023008340095191509947882569967065810670955547894414837646575730625588903143429889736989934435910307509296763018629539099846270060978402957542382892684419207558190462664200348913609962326007337389557749722631705606461360289525626247811823008101778738673546097724569495371273464664416477757314436755687749866179908688428948632604673131962021169207192727960179965711307297862361382313816954817479606931940816137789358239636271741106022357008658410057691289333407112261626880110933181431467185788142644394476993957605319180885660923403337320377348993378613155822217068010433992273768064447544253943344676298272201267467988661003398568743450228061661085843137543826386594651462454264697917083151641628121105350468048960856133170452815327684677086431805453269866374941604830965665024950013037158952969228408832810206728940413975820740335266136712578687998750314944485198419283675603898886226202405816173184300135611904363485875575152673584100734637675870546150684343687151944903606077981725957169491560726366012382108442767114144359205762428142687485677568221620632679732831582273600665058691867079535412876127888816514860758218250783058951983929898880061839179489185550887790175375445770056622949682637812963061113102793322274738964155905973164281561678257419912121882758135548460559968613580429939940932958111089059177896070012466744450686990674365330243654106827776511723066870774605707432654213852685123702025427933964208148187007951838198633442136299183846368340953362052390918418689597767082066693525246590934824632627171501966872108564828222536526678444610591559980371953045311857520367279313098712244696343287606411560041983298946397729477885774634476134278733674492921594686532434175232274585643477462684227575889643931223616102694705144748765445131889103895006939835940826715742401997849652597379195062276928103849735794279503586138369872680476988406978066053576783886020846364483983213206308294793759101661377802017151477533157030404954045769843208793817870250046798474552667461108801722327216682197272791550616026723751930764361667721861761529407586314506646632083016163425961450753878563048293480968790843367135645205314810204908350996773506217591057728278788559843509669802279867997930597624983519434049774496263290856231819141955256764976138290411450224246469985421454179292647674387914041527347802514993916799585539474116023003507132944859964816667590100220283599479046406640000683246177714837126470184998648047544790216253082122685820043273278007259199408248163915134293011932170838731319017380868318976142474993541989212633800823411059270234530116446827583291740332198461048343337214481958248897863571442410456218773931502879974694947532139226339369020098944001925639267237484222800316895945593277049647893568391583126333419926129026731261786150490713189478774654904294191697905859968272341558444796481321390375689687004012791620204436063788524482433211501446310722102844789932065003712342886177535254465642299706659965145927315139571761306976714310601425901201740742926076069490469616588651208049314662421055961249028955857725957311966468546780230858810614372772212022210369444189898251296443805339342766003658109714459852628841228808833472072019461775886773650009628472719323192896633783138239577058473282791931900844771810518578109024670946828156076314044479565902404616253674785393514652683541698321430000451561743016598977422969807128632579344997373590474191228012050661638052296159701321498078932035222645374704403977667561579766607758956109775416217309847841352508186862192398800047438058711631915673022040585234038323905896603879475382096301198220543807914763622175668758403434518107065887858623826630528579850617375881001997448146786080410162321869478290089567037709053653218999086594147569341419457118110363205052372115710768822814842223935754930139519954693050946315023760374023856436688524623544847820201946538533656626675152650247651727023447146494869505614772534585137230132096723767262193465256750688404746811079484486626302924796968758730129749953834547415605186083842474278893521581486120343786360714812632119379162665850908922776605390253956237590319286721026698452740978363138216601677965544853840267839358345775825607748317797095876807162674344934900522315347350168533314659506652984398535599835434677846266440096048751627618977929486149986193309485083836131601811896903989910739561311812507949682421357827668640499852999000304898986340767200428953706679988309454826995625650369033716402920798204839256574183552833315647658919375609310680841240009601209524854167116582628132556406449214308924032847768822826750240179888369071122884111883909393994608568330395207328914638265057028915014452249592588047514639211623257275172414117072335678696867032257721028511629695931952797156802157233728657911621398661174083273202131394655466230248833082026278968417502059357535257125247772461262607683885461243472581441945129639576551329153110970397883225242120158398382956392710521492510769938206754568524514132502421173380454378296509730859937941236074177267276788092473997857679051304893572711636556048382751213717843727739149906195520138405664032685008971757404196367315436919816553340574216217501120806895770590260820620044977486815316186365064962751667311547992397139754381370651774928645326946610107418696570289231869333536394144808377519109162420985868089567603440352952370453909409621429869290478605167544125774733836648159384014322318767693628946025871706296636836663809510510953250844616031792347601543741993367628996881511668533268936120815665034630007359228119688618717220504698614151139297983827937300606375649926761358856306021960104093203513345778418302736376699432789403623253606628533544537783231030234862692999344545610146533071347300936108692866514706695850490732899898720481897517819328030543407531896274012538418646050129450949335885565924653752863944412799738287542507457497199416432934434496957218354794149259316619764823353498334043621924706514513708126848803921487929686633274750069619808306638115318559305816087832828388240893935335939090092866624713377316909852341918934372321666109722341487588383239468796173870870303190602486047273300090378126770303805373348951911353497552158693286400894676397028175462932385678630038279480880615083304117554981692739921929787428584348155154036656823923228569810930686625020225081465853886590677331324562644775008116505509276877268556823849373935766476947552275646605880315112036501150317043108716747219299170536286612830444885801548621570560800668943255102662776099293675919612718755493504181041967971105738845723702140834769203917550308156055394020386849725786130541783759827984779079379410700298262467697563454854772831313512622047540295288217082016219482302732151292322130711880274716331307449776046725646928338031423792103532092182454510191401622019918507707438841063445406257224424868563765496626669733711567103345123654403924088517962077701374430843954456570659047412357670897269484443856234948340192389818416684938398833763151322161952704687870978938813479890412537041322769230182551439387267716527350077409399618694914735261513370682920923195537152806710117067338813816059301717354612375107610163140799644591899148171065977127053742983344553551326999929595154680565512536537193643660540623896478125386889886660489272663982378455338319683334878994903835500219531792868791618346748110108375838033307239193193311609179321296427933888441173514916574439990419513796485475505102969467237956090908046048328319286973018807329251676206717387393070057933587383211710646658309829745851272946712018211392895686931420879195346781133852932033439060136773645528396618486887504396778558815775140582077254885362836564001967217234959588915117761294436273643700981459226306183322851918572040454096004555006248979489308126956822453991168457218222300276553366615384326662032461731327274884974937982058424182497664593108455283167796819489807302282695033379778376116936271946704480424771622124314653437075406127997039898773443421409273995012487830135871578477022924292427837550780284981874163894456407151263719222406354954746815991328488992576836948959846799180658175075728770277096458176628101290481263573474391216550922602087575251621188818069689747571389642094120165543739687935634759320143506692892225208116360532768225882452039397784861737203968164947501477281321120654846453684230483352042809727593202376113221952813807778417689583499705915291275102346854814531743194945862605994667196702637980540837606656908945108480140949377964579059812168572690353398747410912024439719113399638512705528309250034408582603572621175169692625708574757486392862460129545338100761081379260897395597713939208552030076007136269871580807212353171459386573615134095289984513146270674758786389297138303778231213102239590825107952802427048018667740969350000230423093888209277338555444315120927991681463045475495588575799281510129296121782662061198815382093637287339738309129678655481019191273986307417692065706387162928646154457549293125673606440584943514986945330648637586013860934523866172020986204492434580147418971279022069320177742072049432328804618619948535421626040221858382445013688545664102239799654192844629549249191406118021249049368593051862464235316641343196669008064487687667808756988185803837166406932578941472563189305811760493627732203911620213356012458368484421928661938359956118576873581429808310839345822766754697730715073978124050056974619746508176008069734798775513338096769060077262871816644533677307407493199776395078968341258731486302601439352167035191998969224972436646080933285731232687548101390157085106882505139427357356616740926620143653994697927209321628736097369456497713667767196269635817712869288451041181726887867587221582280588032112168012608316950680325325502604291067709693574624875840606689441361658599528119336143495220471247643099422265034431724589948472131058191697162205400061319213210229990179793222125602447435222685855994144607041354286868483264106354186771634198100348117557212249988770426169258457067491679534040194518917575986670650430081109140263652026160743924581322239871543199574906886038322234477139976470868664559376717853286100045253980821755796370549407697440696832182711378642677873620255099191532273738936715950813232229362137755676664484328487867425797848408139659583771372927937020675734355431951844279206321298802771086743705017546383030352940389905046244945595094372538779289730569893936329032672632729426131735598139472733824912975357454462769884298527421120595256596629498312796634286918833396160975257925450777423914789557471864992625069349143749054355929302561920486922417794486407221475690781105070286777102438788675327342619995468084289208292244963627369611558613855320900473145282414821735814759186528969840691353207959673406619509604197285253429979937389597615316999993584488043476073382173968586602262590167885728145241503593407824912183908991484026332731410309384636854490434145281394501838845741799732799335559819655617418799525621894261027799874564269822918582249652074531889895373827521866289120864869223974872261360331939906124491753880846214681203583338662238630419639198650690494424237977278026196172061996777292840593215239014061791158207247471374889667423879872342583135399580860237366698857346817611464928444206206015774136281338588121252976948816238542410822401886639388931917851299693091858010059678408541527785303337418757524193467236661215062457086512404192181882934141911158705147494483034788043041246961622209070315499666108533814302281608285322985729760306089710335366218812791186597978844210346404996879129503222267586976246051029040041061650782078352431805014959383877802941484539506524560064643504472011900292312131083837555010896420063220594367959487810956392358974865367690210075130119011329182549927604269554900366082697477270854628873249297173302163022710542656070638643335929826978279955044065046757793531848980362398284974266381674114081097068038129461785473535653294309548639704310307951593440666960430946678122821283831770143155267891890998350250136189620760585510395089137344420090938107156708124681768916608535517016274158377413931997130530820596457914762217101755611212895610445179151149091309577566225694008567531165676151763532817422760872636636608025309486072976871793579992155441587852550791357631717023110265698858795069008537531576960583087723773673193546861623376454181254011420541991516366683624378778550840108002481370054794716264398558888806720677340246149180119744099503852038050401036742368377151149777442695508197357666099942662552932651736251117991430152282340647349675774704255669287990943700965290800808174818138113063686110133623986700363096852093975172575754791121088715751918751035800002738893399294325640950733501753267419238091755328612877712950380417299289615715467858637874825836585551582225580842907030956269952404376294805517433796511023420940994387114913527993495384930324227008370873616772221569673096680923777936299612865650933432175402029231115777956494791212730181108240140294761765711437523201925088371855468247639607778497845489696756902805977345032604513536709668295780549018299969286144894620441574020009459748624147583739486875445543946294178010200628135106276585130637137900678888591134584050981139197165297288018298462906558406450874270568669438755279578411196542461025974297605710357011135904724915055779941874304582206161831096306091020653309077099658988262635604747319284413169563250122731075782254962564503958497163561447371139353108478829101288617389883293590440594531784093053392764150187097912313623698214114796142179537431951362050976716242426557860548979282199257606665470749185294633983362574143384117405545433563544418450472138383521782537272037907646026338741498742818170791078431909903498123065818562442623927355148684498194026060091630794948136440918501173427432080354280515846755923850931523078521725395946253241445669095305811421431904504008002460312743724822888327739473266864629274394923888856909371312727648514810649646718970938265923512327180856607134526847524941722294443763897942472278345616486989205270266701898134997166748524033929699600677282161980976153621393244366140337044975693847720276110540216569083023468485825270557163504637669817701826407162617612572264537882136468501472075654062598526099449669039648659424484457857360839161821159039848308249638508935095711648684152264665727249152963415831048346704713432986381385766707033697501447916515574725731264867597836717940851592760181723056170825126424663026276457293814767121288636987148236123183281234531751943801877479100777370807511793525658937226593838261015355738361567839905034647681693462078281418479222362191900153010495213742043239385146781661948584007265639837841279504787149629309824864807404391808781476740077040211150584127934375977565994568792349284755862011943123026637685477285077526056648141404840357827994347538522809745378526528856595706638551321159775769699142350143735030926029937723056997671795852845258640244164834961294293967619081133258119270687161297929999758198997165833683516464639457222406938070332588109084766291169416418945806448379235174290297311464295642326220461551258074838032421022420592387214356552246813696870548590941714461459164831674504601531642235087580893941728361635615224151732813658435886678021508866309127780036353003671289593623752923481614924781042196880417101169576045384965278996354612771717989680492608433919621507581581727496197252875242015577428682012159831714053918209673184178396347419710199955458835086253082243254347984084161242225594173035047741776089125218346075143860398941514723539645237331103341890999225432907481546286754403852559666260450041785656380382670916582296915366261569254965885572097963462939925127378412579525080690223733119796657892240395679926318875570911956032513284353702343205184042402691768208871211231374467170510904601869623326061722430584983569649820761495318503525277945014908310158569678021174603185420929828986347848330787458352779450580582249900002454997299009113196019920976229803963455526071029392955823743358338233256814389947363245526653945783470322993437966317691788470489441622616255560655098713631227925075063018138064700138111552914974305531936941572834571106873825823165835003066004830247778260966157377003047954368263510266079216089725249142989009704911635857666943172982839185867567640059092279277741442829602374304025189134406238996667776315271395716139157823935364445648714359166503358110036139996823075099042617275603749091755962757977095759543648899425136470758534153096768297789300333019705477291594964323596183669719567194301061925091010410040232541163540680477879900109071938980331018034720277758805090936037603605744513719262390473536448096478178126210807403200927880778760003090542723361805652157967675981618137140137804415557926192975391099169512985315681628127864032399154287031296814139716011535607852508152415677620637401965741724761365560180106828770122816252212532777623967044228588271911845446703591065759459469482056102705960824066447922770667141677941774240662251289896357884099600171014904014919187938611842003245868279987454708684918323914601004235663092496051074108200436360314226017397107590670830896636726995319555064241525851121871402312055246285023501604971278417873241784003018473081920008409905808267938639495530283984244025028303885147223263550870152253947659258501781529822013974076148640313212024059940845390839459599376221310886721258507582902788596246259248722220209544825558975914757529710445581077239112585821056285359466492299359858839310263844411813691406852004650632795019827547440016632651646284273636064848356535690052322790555186606531433086574856067738975623968853270406899996436366986914171516678881161669719209563485634958468338336052998473026781984713571493275100602852863770301629599841638281770516085484013186314427197867244515628446481114704402560893394259339788596722895229050542138187765113010484013928237543217832807850736402179132492498231960940681763912692683714947148372500897264094721980064186678577466593341323481938669413433486553400874050628771526460945323525098391209702139132657285755021837377846961076343491471677580160236871776758550834645253870176273678163329756779178548751895579185013083275821776186805874675012796209845323440631802406543504252071321923774159075897098339170257985290017814989015729139068152008762047613714092288391910074361099011114983053153870797906555174850682702256831160087788689001603664611345545399306040771835708134524119326039960183402208154836504001535726259786751589856817109828960706502435579005907627213245021594973124536173508714864189985862276715057584961759785432017445325168371647759612169289409500176529800796740680381272876995562195660546944199727244727058487030734930497322146384629807348016465043161085840551726062028573702845312680207779583078440662192195420746346718625264776407553782861775639630345720568610449396575040424146194509648354724769936504106027795630080504182679229430017982062889483316933571073095636132677975379451058988411587553898988103896624833813244718931216260657599231295112226441853332821943563643587667710618713800517193375908058148855840843497933319742831252570456604733536009155473449912447626213761472733784063427604382594800907736633389409921674747729708280757945006597849720428342209219027815992379276516148926387746747407399208821254273395754876939091406618172146952700696863074574231136847190600797211705711541693882424880086940502326349890731653379038477449548149798761372584141523753706983079465189267884527631619684095006875370286983241817312821420132449614810293726871474439409498360800662104539454422621220996668635358050905302830797305889614280358830170213963447138384392300801005543348113457245271365211189781484580628913528474117628803153310156368681172114281320991480985099178140501400190445250147038876978852095543045430807970312999512568937633109564972855744444275960514724359415878877284208511114563775083697280874627219069187581307669976450466213001321950345656316531712816937264038353628215652090874020255260671262414202175824897396745165846648066910342931479767263740717832052114603022667196074310178167862695097126010389555872107762538257319451171081355401660473275013910017666073237341409139358297582925416393090216029538616127442514088939701119100336345365431670906533285057520322598942577829543017822396539568458462521401030986626650779620359388404591009240679240727174470676474554507110089184306789260054778363394985312595174716454256627956032179883250959742148301350325510292805973127729334023590587639976734023534751787596551710905586133971722620425341761884942004988547589897965719633559138513208260311881083746387415250012726190988950748191017347059233630754773347509262440460381270128527732672667112177319874680297102100465834808430379570759615792505010230082089790140528286105346408606038249543346552993304160706241418348974871918655152415165436524491671623800928720835464201696980911797301893736649539801463063541107022362158039162250794362417189018419697466956187974460169387116954147629230474279556983944316932483973889491506078989658139635337656558661599692665137668324428728100020029947451838994702452664451209669437716388960952464579812693452654389126975125183492459126432880905015688023520782944101211097787594785207850144203645397256298360485577767426862292601404355434034918051271605750160652049784489097336162059751672847900537477379763235344112679017148091052930716922109034396830847342277400999593227191752538092949317756722627561054632621044148479173988414107785021783943120612860577435684302484474811280617526616180690798599330181947708516760891248281194562986291320035757833808105788972302614060550223221231095988701006989766045299004205664572505577530157951628608768508136887388784134367247085860469744942239705124952160858057635013449259576261499138420177927754126075066040762279306941823121765731328977520341676578544018809336261350911786354514531594201580690440922666211063081599822195450965847548153203639741789460026351769456328861894900086460438273017716763613835238791269543015384135068754145585122524501123724062703775883031562138492599051953868004598098361984151220719303975046409649903271485098120932927927648495232198986054522687602680467415070440203141711415288860079922852145207049195856253514764623129780698218981710481115452030607513999392631321203560695818538574210852155320949816221882334519085026431630106777728923769293327013384196121988605000655037608973493900734602322689548152663808875004223709266277117702895310943521225464404683955279396395755393740890697358629517997884403581984939233437436366749682636436605047787123743230786816592832447396068511499348612575553803274073873097404615330082259151928533475408814759741797567513436738683971492434443711843197982400528666128201862091332570344237670486992199152910340507175789269960759173367136506244216586509440887438892501014922234541367788585043113525464164316460790916441748708057878252648767010422365043784110382753514595316506828003571326892545141805689446032531193176701546483152941192199314156716715342013529948122788315598017200290524782905279057004358660723043308866215355397533351265305031160370601004649161540891813078513530137330937149142619763229308980518143570497891365727984018649073086404269407054820982597215181803522145542516529613992890181671500584630457383386486491399039359642168245360578208634649972494655141959424621127758846007885782784263679313526153881536196069502158917494113371919380230500048425796851460985716687190612639024105803037498321514175650600700715854269096906524564512802515866461840013237446046160398461403146817682945730063519244457470139459344385815959624015365254921694673659826049362262730611280669840439004068832788013194786716916588801671406686336062432924095560135895589816460704679087049558231589311643143409125172393862517337492856809011255302487382504200917672137385705177980129915861938994520974502806356091162075707089121035460878221770995767319147693803929170403035889496946626651149970258071225450645824813298926585848540612879024588008848011373227760949669766892578369822402821494037407439379859467927337550325515380419126870067605133437232090244021648220473559603662922872037767158300605733301083576356285052815918616551458261339257776412817701441521801585622973415132368545763205400687589617406574726937402113741485042454773101669202334460886278895076114906124252327931697317645221799315621910198804054896126859222960960368030412524634239698181681570089317768355074515563864929313193971263182863658991347989438569314309068001298786383405276423135179378976787153051521294951939205853532025851875244978429613699162807232667891151536694920579305895032372269139034890556026434242410854355938820037771515944897532855356530368463538800162963382273237401561992048515270046080900788506076462936584403467859569892952127962541976433343208989712511902326308566127928553851741600989023819172613229168269783866370729207255048078836087066050683108664955818113544009588075389299402195156246926879893427614176201121494681717072936984324270473895109831756477740113111870018148942252993535638675090175069980578842601791512708681985682977562767344769639342201475306707876286341965351481590095646868332080181813714175216329332708973184791142279919998854030925264117689632012696810372020515993464401027154292359315641138116792921445602898332323814515036501597913339934748103918558914718507238811779751526614003648213277288817547793968983724821598212197655380452764173127030690567747108625105076049872750700499521006403645769891981922492263674678225722796699749933537846505361864618585169589250932336884099874358759757439587671498917155121781714971406337872073590235985428965727530193816326261137179125814941663244019554765349293128894279139478043524758886377061822847981168442833279627837888068347543482835102506953332191588339971761294558644126191730570404775211726147838590024737038666164530541228102222853752751613507016564956878285891884912198852841257525537510012503103266116161549040209313244109629446057472536309851265604103137435860950892817582347460609779092861260159097524204397688327025832049805868098578165313743662156621670905749727828663891219657299262415952789633368545796423554881773789447781524555879414536330975936623020564737545003880378401465851928433747844865253133788984275672476767749278436830164939026528324928193967178691791906488791460918328905067301500723582687520091227146665454367138066367684847062740697452360276651489640750214058239061921713893911238639697954016530712117279137189173700210723366244364840310488594919952112247536860684338622283255039598162809463220631993676030606625380432474375741859853528981809501341705305032884595101593084475153302301524511779286622321412086450946754618880313506066051363698694838854180516243055759125905964860479728145752825305891895330993096542607962928400182539338460331519929491070693399818367824283621017518776514477423354035660032946324913583189106422116211634385944173086628647897278578481826226111655740928400331709804186812676280736290042716422639499152573117574780547573861863555494853222860876265868883963183632152243162985321787176443768915861299704556565971390293108407694376143184273056553952775065238605257887417019909476795894437578488413227967585123363480418684603831549282505855852081883537238346138470965588952250902460725041044410514662611468042845328248559877073780442536365756841342539090197543928693755933105127820910065583222889061421793543843272293343371755563043506192063217919650604940637901278945324500833962929749318899454463989013399221142466211910200976802950720807307675635559224394028556511332497595819496173544859131109674674653012778713645996651933754603405148160489701883122927468185677162555039901898986782229284025674263801303949328962045517142641383105091812376032512772658835409202322326641908123601635696202910343996029694728919611484424156206194363982904762759444467385916212369319317525995452045799806594467346894160391971578746133794826800879013609679917376419630305331594228716024152229279415116107524837726312670120477187077287076296791120740639862308069137552256347883151474798271286085674145203201819827537979812160323206558783829642913206714839438523605247106538936002556024466879865361746427573144533584921751148035430765965587683190518691351100438923900593741734909431194727696237878014010645751959926257508583893715272108920026273753164690011340140300477118964005427492275974827877382952619215804495003960584083464578738938268899346282771647768748091962003264011753420383423469064992226592393188906226675092762326427777126576529062869283776179637972173402406161034039436890891473893559183447054302833679254788269412700767337161383210845853644217451452523622754442756769046359483723403887115052354019939551722903920857100387825030318378740409380820727061119921260586026430168181154486126540552482245634801981699117303426005852420142870519738799771626359070982620484838679375265940401358357631901237570618306145278111710760369096272250342766600716205697016402142612279759545506086955325894544673206622303092659277821022040230395080519085366328007058978623622382001737100773899988324275365322837291646737541704959316068354667680320017706460513236796827403300778632631004497800624612586316463649665165194740179427075152514776468105568282016849152488580454580169773790903283336514671388473314875158226098368033497490965913505038647256613429016628295773824574294633413372038308633436000795782204363888896233646243805333400706368062767211524897258551828713343047252327925470915173171466372760080709730944695539184199311844666828244417761854296835960322393438311875460795583584474797498653010923505140108492551020075267447889202861042859083929822164368230779491701806582954179754041218247279330266926738619205667721760042462403811888763035575615454066943723377994197084363103024307313552519161234830527244058488032138479976304041098120931761306607677590513864994251718917489966854526202808116759729864896907323535721632944920796598768591470489415425343830246815084175317329374536552104908273583114828968526386377208053888305067703267087833604605500364465309188680332667121568887499522999276510822234203970891551859604969057290652220289631340846325378225694576789168879136608610463376176442232329965158296166283525859065875185933757962404725424720401697606675337307777718014756545911203204866553549272016164833141650733173341975654354508607080049931118222391185672362030545944617747990952700919938810978760568994192998654834760752008204729880791454814683082055967959564918861596925929667868191432478459966367366640032994947108712521106589419019594281657957273361095813052796481946970729988057229931296087759190580682119765469953694816192026338987014378867826273114043539787106690026947467326627036942962387878900806303400009563842901695023097652412423922057235234724068962682353467581316543326913438758289017615504244822955598033813311254919538561506917825349978656488479221265727748311583451293334902345466549199495881261806368445198535636691883673831189538043824301736616219069879281747634870987342307835482818247412905341037241510338115871703401893574396876219091921931948901791315934891111541396223788690141831700475411409687532225631451320186557672193794801584265562563206336095318287619399819805424893064220542911859314361910543510580971637697533603737436924527215143653411438850358548210808890370245236758786827318440698144717337547597770786551668247815750195211990080235168646138826771040185494159691655818475227301086982031466908292979057988858539696944739343723962784456533662475471336664903276356892232455339661002868647352393643726019373498405352086241468854643089980032617830066925166476501515320683072860788088019079099846322178244845034561527638500488642659608986325350117997327401400804016079737671814200671500547887793023520922506259304632358212313144359347440890162114883864796987853992240003879484927871879492751407448169458981979704482522649803226574358333182245086604784058756473331555182827459184501376199593502682771154554503212923715348409590571547026203586632813868865772635774873227947791234126989759512353277576290640710498375407065703279977502522377167554132275477475785141707654496834314736728063371173586307949762151672766584932105867697736741597891607997704471362470199920097358540599229639037672084971924784583446940327927412232444053496744225291349669285924393859071703810166086340642313909500905499719400728744773455348848850749059529785062932713692281062907255437831150875311269616424035125262499931886062714120422369489803201807185576154709901074718599068773620597505465224897043504449680741201244830183618101676309525018307257111757165532814046383868052017029847101458348952055931064418889458974267228793293131571317036864177045371246963224317161400663272842739374327085567180398623359604341410843463751290163556828234012718358886306700596722063993208218610561479239871661419704037430674239970671305458005474711998897864135400822703406462460480206054770287126724137104220491342736548466082079999978623242362205219842569227316301806423606199715775609755861394790946883813279712150811068238164348904237043690712178395712823090482261855420793574104032114408723560845461889281489211434912007450442026567500199714428845762629892540504769303501485932970870987349437356329932093698319295395918831251254220547415134757854747351337099905070214924115925423873049958969864154529985343299538498167244353662253685757996856820721417078214193641584448559999275654730523239782793640311225604853144086576658194350078765297821550838444793973202530076099220696386447287806356240655416788973269381579055303869744930369278316856291271912329920517970978154058033061112803024372497185841926834337339342206433178182461943810802348855381136174347265619092553847100835008269413960707897568731340931287219230204838743752360444775105808835996288497126912491797692965168184273152563889135757763180438856887006694255005520102328596837660499341452671924942660608531847598795032036231503296682551610803195443128982084644701113724243500782350342116261766248090067616281976670481307833803494576410384037227270300868540834757966206796108999736449869561504469155500945277331506444860851617178349718714219921519945462721055787201609081072946330910671242000819052047159841486350753358348640262542139093222738521668829822003242582420964768960140025728693792981013183066518526807237613376414738726951708882689921696584023068771855474813982284183155376600798127481397405805956009254280980985504663993446540379770061652351551072934931657497126357682759164475289634340818901246014067512760794383768567418832687674076987627760649822024690297250411379089191543393980201280436463368688515450234157159580603178096486595433997018597432025781650599011963719746982416097091314785299137879172426001185309787692411781022028672618070036864508870936353034198750330888482271652453027848377216820120024695142636892591202835860384823826763716466543147155682596091327096915499553102023636275073845377668676508900739318725645528324577232931027420735235204860093131278204482191046577465170683769974860733982217266727140427002692373415806418368354357518084147728437762386781326696976861557167526269863370139534181101351281688531796739031869109051297191304245686871345330310622530839392435680887799129349405049388321450685168389275215423827175003656714137912907683031736401282107631732453553369949706146784698961738520568781404504293169630992079550478738687967956260938020857851023402671819700120509751130455159379772034666067582413924713810699696651214327681101897406616905557648563181113965396342202604267901238414609528491907403509513458053506712227594601205252862288112338320755654544588211343097861069411353232958410585837011721490046662624581830339499258741172852393720345760071270529888822766654579874958063195097093658314829950779934265428202532951820010039928069146072475496016184243700599117940522428333118593360940636373953395705888572017000889431049521827456406508675792857649174011842145497815456729483883782869269560256323817026262286010414079444863312361850741323128857863444981289052082642444057916931906182767651765680337002575651792067075177282694653840430665921915449995311074764433744489151566233179704263323496583033943937899082583275041920237879809030417857774006111536089712339056865731102600145962773411560837465404173147571728888377270199204813622521384093972662856056965964349166435403402494914169525203706995714970123989636252802511917647903275315726130500471580734052654530174273378723968346220494597604359651312882615054316190201604600215320956309338712815452721142011245843868675356320735365122714167041495333064457489408789546475668859279694643985631514884242823016424107911667388192277042261289665261260304776287345870239643725672715306451259950262856692568689240633560245782710823635115974566789813563973497502750151181942836859321918985209769109927103406889122054902201636363736839463536510806599666347066915694667353620002452630362431973202174163682936153399098278105984734089684425195396657028348736967664336359089655802587176813161186241261519883046860290676726592730880097804435710364897441138525112613531886784270626867967645457365285493800799478674567373036597548374714552561302225374917362318614722713119085402051255951362021941745842450746519818146040127720329597251219836338259231368642183534379417622891111786976989949831305996015879800504389563838550729704342525230756159214676232154774360064074193876155492393249637676203413550117419481789098218418393772161512810686394042818632869301543418957594233687617135851072406371138116552542768743946383267865817652847977003157289934661764529735160985934070269739868898296612717887004718650561390614541133468342639717164399652208385612223622355925828332815756348571728092471203771378065301795543101204975508103445341641875193215390350406126268196119692659340463880310705427448044863015017681847790986047603238495929266662263614154018486311142110509320782522505488648959152477307880230726497676889630403622130181600247001590347520348876572541851483668073065382738307702974380622844813653482229398054777531245517627621706473999660676088283834990486590840428644539527384676143033135132798344188941896744475175701655451294613864592092145621573992941122561867571298697565037827669256566015914855590927774908387145597002122537684839669541450822842101033168683252609260964356723154403851473340272091671400429427179383274305530294761871766665712137009183895326218153153363995404027798093926735379934389970500877064876352770513359018142372723300338153652800645312419622558331345872277058740803182030044982147445128696078751744640146044834731885879318933799839378718985711363273882825329351971914265662681059339154086845135470488924535693542594312673974848486430245850746844671420639810150550005884840118890558660384567177559972818151270669140579358576211220276466877484305593778483969327611474289764926414057968284925792858805029570394581301531296574007823961901150607938487673014065455515236257903979071224655521120118554732640332948034080482499688848757812849419332340197822182323272400585046503383571373580662934266905466254398747212762377923879935116766460898764857480954541707687119936175135680320061390970790636034483982574938870162389200730757878942110270259224647840285372962162120446104077711656713755907661741647144109631466599948885197068031487109852387691319425570108646795470094375788258866812362301212221171910758707358367730479910151343612358056110023167071706893759558313230160374518004428640062291235780957908323717032942170535118859933277820138055050509417336515515426523497777747067688246241940964382474566333180986114956854255464952891733834699922522323092100586719735107890193511807355195676648112221759511555389635125946895674851816772000871467885936984801991213769595440787685451461254815958566486918608606829495760683262417907770932215956575545815414468839151406271243254676127988391463013207853712511144446443340442568541807157180957787982611625237095839412461942519637531162612533465360770674204662422737514356417931829506848546498553871375604488168150631159121153906315901284576362370890457388857745217210241498069645523213146602906019559387807021418056972502366742851731649944332554132958114048465420204346568205675935787529899494670239206305784784273509293669834896083418424321391406803809075120793701709384793936682026545981527862064534437944658770494193971430908698348770162589506974249372884939901645078167413281704550368586657956191060792042007468125768316079467092074164082781688005910852118616643967219609299404709072745253734090082027129817435068104605179272639186107999717568543148843079174396614524647312295700970298959366739442758427072712560988482441195640844786674163477570296025782009181571990299308601558808341412378929254857161417899448686510848183069167514810003750841281839560152293158522043459864151063778965081726466696101657927489751356547956981100561920233173658113663946620140772916889842177839220604048013464069435864134234089154577503819063092910240086783361396883416313435661323615500441922568813020731176902650558112873860883299015834694167723025037076831344419557912172518342968998505986153497135254765567774436028324054081177337892817745508003731797602699709338135016076768967462058615503615995911018782858801535574254794926409480364543141654606596757113256581798946259185552801827558992953907215238405776400452540950113334738926861242843516846592936129720979216435171930817040351931399459310015440244864666393193384402818746517255748269794720596254458981208847802029917641674345302385356821436111151925800081996370104195191807379971976188772970059611544349981610311459376451382879077609627221523583393245614360010414655343624874231999814150543012245442821403733685899691135122352177955693697560018567495162651933183272553613573445779991214284845903500773606894217634584911768744387262658328317194525558697092268518145574420346090526314086040648766285885820828498179841058005825997524253449538471824224764857344264467692999660860731563955468841864827158587630250890208395640170520814357322318485334588425803332165205087002084113334161509745099654955874314447104809491668730712208438691388681493316878331647190346192724555141771581575145508345643247175768496458288053133606787506294097906716885003437267777046721057373168627124617263495889138286864431730410797705642290001794295429604781978474268946123988118735720169274646052611895252198494675883177434142169607988445613551292428647780251473973120474100034081105289762264247346286495540223885865520105671422596461001812927563516872134186887130540309340421709908141201169738891354512809360867155412952173542027840787242090451500556385341297739851514254620851606510920005894232682549226624628080204376519689414850148072626511632738369349493900199633964977757404874458649061390023927635225457948546915122298427841953683491920605974441779233093967419889955195281486483951023814854442628745786132131950130930796519290194602184048400012469729558340892550571946457768307797649478835376382718872407975597268833671969070559720888347475072519625259459277893127235533029871124676561696347854051881987415603903466162690201843723803452282688840308234362685999262819142442996295279313104548698799508445845150167314172435513832035564904837644080765790248796585508420870839378662447521251098884457994757058114934545274109135860285837134970962275648237533295512969796705214351772109573457354178601334359154495427378322583751871603255174473858482828299133529370736313589420883056451563546861511680358854300445665288142469267452968988185017861588575616054733481085554898507247772355109860868412070889895667864045302446242333065579252199026420371553198391658992965105721725701285445211978779254223100083943568276677538206343173289725746135055439141642321651579535548839476143696067069400453011017650790581384865244503376077644180698775184101003258459961528791750781808990893404741138983069651998019471725169701830223739428766712161993476883220765961204440261355473838474454918930690405742871229849574875671925592805685182624683060407208551405935660695713217205670220034123958558998964549468220203361160586218767967182844606923831936984730344197303817232052574209607956954262765746135878952345244792331470262502023609156244019611750903062534494088835996741310621462010377103815343711427654530743780931779896311030926450634791238490360067070774955824747385204851127200995210916835805992900329066689321857153713122795226530314639630751610253112711686644484771463086581085886337499615330845284746683957579516828146109164399884369180734796222885057042023038734287187715732996414464529849512426845852818473663259638761483972800495280556412487637721076448458653028433072731660267765324603501260281909414012227907751254456980423904180063201926408668164475775080382483706057130999371642715413554576768200542315794543446799444195672101950531729882872443837597294368798899848736326588273889094086357126554127550731596245410445870523376897349013494842887867662969027638632070085347455399229207024639958911034262379285150733372255991836720322272255308825392993642160108929573843090747944201326790833722433244571027618937052666586623770464134245174153683796584609640918835432338086710620607130618201155959549084992999165052576635850452675753305843281901363077933952199708103191566292185992842858213344534135982784481991590805226594296443534830566577979669069602600064093051681852597679591144685535243498441287099956558885513220748381697263567584694827968341852523288528127218767031040905805046132881424965833838445807877882342571693673786295310466235008607274030384969703939272567591231307048657168059141026545572451430724755671976742293128445160986977754993339728893394778813404588373650246093513347672023530261709593819888847989583333829716416864383844938997823339107902575943540083520843407406024737088427692626086671840102865181067260559148049958485510819708894864356221483475512330983608098155017687299060190914972021433958854842786727851265268737123918755609987978367813376156431742517006915520582662385374475871384928102011470949060108334473003040028307243005033917898019182440192371178306731209524942625172620555555471124241423097952632141605862417474158393575926184111293429215516281530700350871138420940445489146095575056446097167435125234444223764300381853922352088742107590443061108539877386656226548461159939644011972082959477887733941175286370687233700871485168342200467604866621884658981446168865262480345428084993453651756373668865588414822727074510210428484125035629045534696902446058492882458231083043456821643620850174667737901632634203777198985859358738651125654430973881641656519687358562735113830687128421022334945128909538340821818502060154508057131965731938726150845502947876478975998333866116940751224879568834254304693180716650797887116060278375246722064637424118847127954063461924184874561644011442890590135233900291714840697809712666311191521060521413275465406278831957574799213166291676840927533908273320733533153201874644229626838647899217008734958497195371786557561455824454267481129296776903629826878212094052503775191270944999468345873363611607667775328720942555409214961782903139726621997110719395208013127294305118231394026912205886257394451309830019112636248463807535690021144603220800776330102853853510070965492266302837885507949926566567652610208886157878774838007328248616446996742669245645588553279226971670818052143512589526038807955308304884253422730057248294462752442083032639943556930492915291779744880443170662091562261749390596220643051280996594336935772398180190504776113860296021938314645037976346911525801632223102926837307738465483769505522331284036271665639019869263113267899141164514642499067505613374255877210886661961910269512719943672275899124384343584774696257838425823110717189068408378230298919088758053714559233189638436759750784073607775955266498931495703268987388547533903340689663805434357377726566866484056391782479411692164375191537459782634274316353370984557559976598093363516308164765232759504038124124412677920599120640842052188413043467577163979671953557978709052007247260099317960812818943108865870236800599707613444855263282426280133157578196698367394359958600986682019982711550095184328589502321862860289511973924819582207452922198781250488844170713747012701430333929890299968586309470644330425166064905670007260356971068677921269046353060662097366192144655154708197132475214625315415943780181341755249278082763232516047059221964709930485296228969918733689245788834414593365569944917088075071051196890864048520259282468917287384641927397537414348855250101183445209428459430363622257673932931094932643631660657493740842741559868104308046946622311669558315203931361119158999412914880651959294318276683052598187560951357615734377980944525856909403879351379208615730728150246937991358997015779746400158926034380755905328262384375302751685475599578516703164692965903749631239882454053517782272740196507798505909286679282942686325548811732873317799477518713941636232695515273121651481592064064065046217957327856358910330196749062031741919485101209959126586108588067889318150892185728179402429024413423384352023917351823846202905238606728658365801989115990187285582944378089186180076205110202234145201246673418577566858739712051018211035632693147390859003501379298812939176309998451600060550478108954618742221903072609514087059772905718096410234013682185930521402786279921217995114634171000508456498618543508778064778465569232627017870983847885709167585771525274173206659611035351298767283306073877006389523417561682104119054374254420782967563538377531073845713757382052644501787174774179149486578535859475529576603893492090472595696281456241795865568206024852736581322074026569334775977821735727723611541143786444364730907012323526525861222147600561650123054877122754516131314775940814397873689998716248003840899642599393534828228093169705389280115692982939481977252619274237792906526803116999437522764720941969512750394770445159245772961832473197129800602546644703535985105766611643417315343347930031704344262108669943771502725684759142594510980680766797914198752174464129731528239443913206954750313897835970333225237057901063107170251185078799986712821999409727679534539048444601142259917449530612432156709520929580761404155252260055065948433143257870843076266970371319448712817745337011966826806456437203243242822398697459900388700837699489412717559420404140658254562848132027578815225804154251285170675602750219987580228193778641902511725730762266104173624755878347975755819292991312882519044577026581660759497642806362494238330282550974259087184184927236633672163632687360536894536826177208821382456619378082933720466940230526807445225083859746984907996517279268722888870049679731644035252672102489140788163711240246546895308452369983153561405508977631296971931143503639082962673629472728274907996170305512101973516785529156599627995118956219998070765380629049486143708654084237673266299969721965033608830707300190705092998088509135583729618743579624455563731315191014110752813837186277667262865279566589978275445353972274120582702477890643475150476768625002314660366077716139726913398741039104720830982688201275100255531382235060390875046497713837231399731168443921366513158454150338136585092567926411669856844687646107204727790245988907863168887073695894907660416158183114802756998099947306635740145888835796602597931040795324289173441468682968185925261490024513599965461395159657410045468795143996627834749475005003525551411376308262094603301139432824342069462489791064569191567539664065555933311392663093602059864095198790124275896813535609095138227286394316766439718380096071274568953113706305482151172865726432860184907258728033336612780626773589139669037641059010253968632889644701213203290893326160329792921705709635999856005197097661639602073378663840575385386689739603964818236546473880422949798259180047487286226741903810365189160634460576365536625833153144612604768608326685342134208607726869288174752279140181367640961918097261486427989581714473510585184408784468155005008608276810199656014247124121623163801640902651237610852520496560378718079805330495177470803901221282601432496676727792173317245699882047625545508957593471115472243322569078181633071121425250408560002897351371859813789944058025873017663239960897744112778121801715511637868572210061147202456193793081634036251552945596079466730742195225209587542150495138118686763797418915273970810095563728389195331634213823861513144297574333174754611265904131655399796685543855329889414600251813930410536611744586819301196194017344934068918751850526257466851368378164428603032648819026391182754433260659616612664352077507325828348288700417874380723658023336640634676511351064368480770318353158735647641373867041573121024984052056550483264800322067244299109883531419175062214485345904628221222132016014262626950036380040440403905440518923737951342983115386196501169825316674408037785820879688491713261507059609585473599379676759936547554586121149315764187944082208807354000109887202963921712180754863494472109676317955467498689890089625554920697072964437410438257741803337336283774406725690855483049134254921873194096912052884616077944336374776596907250214439895350462634460238775114988843775688133518939787158203314913253545720015738137650617573634802036520656757129342685414188121472902209657475155624131478500591232914753263514389003009882180988264231650384114650352582557548052153087678703647339544226127573673520761747985735667326643899752154234092014114025154471890327743691719138861262584758431480029026420764601679304992030872362252775402029160679236071561673566245110194557811398033166590203144490886832613270498912008147565221000747498414634358975988404929251504642094389233307917978839371251883381974133023709077773391881058681081036432848042299726355814482924725571611765035578820555017905594383297237388261373665419717425014789560776180412986130366580689188488096403172028487669136670757229012784062984194501961015595440421991116278055060650626863297299959530303272884616901426567685286149334094618301097933235925061115417074066670362944491149154890968020783923958365844758419449172204372381970681892594777156068368071200536851318440734270592309338171698223885810325738404081490690304311289416163155531625689436923004864373524759231216592739736705628392641351954918892562565920282234813405847362478742586589494872235325052321984428365433439814487076733899065721657570230591363873446537886031489407352611440995157911800371722140492666349558751174125414565579525768896709234079889576668610275059018846634798318588415543260644623156203518048544674736905844892572886645652163521025550712208526061137210511781859144867650502747831109619837247865218392676948021011138818474741075206822557421662163899700120573801649959930604520651658178555581792495866937524967841361479986525415871521381014762408913443634688478939761215890287411400962866682723521422006939060989577175010967517732327808930967229680594714311808438368179699151014100085968233953930118787798575758680649960392312557815804003512554676904347577969903965882876979783789700868952592071027169222445448633289645003307818571370059038634482993955156986512958194805676502160457593003608459552283129825968612524857783197889561417640597442706025386162113099027203128926062612504637527454445593587582964916544617713956043745029330540751571677831168521867207052765874007453597787303508958604296672718918965402633340010757823214837720418902838895002558293221536473995422164743192742686874173134892810604608909668558151627274242066793895548391453240959785016877935053351242011026436400867484419644990305156296638407974356772207182719437702255671394156936085608701275940212573198430862931546528508540141518649392136452418326460137956313184666227637140889733798927599570209742934560037851426428849858980417927666405284811007823260160961731611343283059806552392342635600129684878428857321060925107240790629995467582601287230217365354709110195126136263675233320178769172647071119109199109169695369796672888793887586712069642350797326920614687223822724488786222528294465341827684657508906042528089176438353114847314129159953551863443493114329895126629675180074936157835963183553667500582391688871262556408374886078033191780191110629254479873422767932773561728348397949206449173816040792362257326421194213402200591898269020272241756546641942672548442237833480184797194298578798268539764645640407153230931565504549688412481194856148575463369996672400423534488393033053343473936261075538022889894857712164992221211343562006458747060606652815665144396644797376816063310217627322138898137976790002949067494348795158407533436614992975649415393944016882119584467537055388661996972656855567408115114839390012254947149554551376228070601888847740298110156204250219002345656234557539364878053180449806818254587220129264957842019619605025858393190890478494556268059932797513193767370673392443991470941973768563548714521043396999452348293423361544054223665378396357979548308963630295608717905875395301364199173740321931480317632020177575414255253956954289963972611109598652377439515076282974995226886730665963851206248869394852756066885015965389516832138024723128875296550004527398348732616327258566751940126983789850756798518664631175410957585634190458333659459792309967143218905539320898103563483500310403354301640819941527693647008215491411114456717140986828054228827993887836733724692588029996247827215747335637732491511793209837856697180985664586751700471309246487596952385587127954616403400293366946039669971982197965554647319400446249680637439752221328582042186644361522151373825659359966646845197737987908121329687863032680516641982590016258787735098957202743223518695298562794588985735067770568981602764394121149883844578941960112245881832062507311436871083929528449775928465015556199348839791037349781170779399867957537247995964682845411643804625611820051558593338726089997759280983964412493793768636665748000554357700951931788502454880544372556959409670965371191696428812534766950917417774017144663208511122545807528091590360422872116703144728456316106083902405975130477046976047349145941384943822579918211896301529777794502184518811181377354291456302292946845324921600394756476453437243697256419940243832558099218391887003649484799681932330805183476427854826832691585493686519356729927457583354823772259774669067770282771507339684930898615989713434516319866629749104737459261492308237833275097333794671311603779685104626465058171975427705484406201748960964882085670341180120077838723808456130592836694060982122107170410510309251303248794567042211423823333941079715727689527157893026133438018207764229899665380421652058320204329457458441424973515672018744552742488577536378040966875777178938547059906740980903304673691681396704832667404935625744541534761915515276970533861566771739301398203785707490651044406194551640961924514982832019205045829589288014466864895779496447983894627918561472263948818696755340835174307589697240656996831702003586040937579254735239364614802849424316660616652449852749270410737859609812327112088694670248959333108014363812057655332147897421495430738887563162760004464887957209399825864752731674117277053651706198259959662775408601965162794334653260570960595803743182060650890517542704547598442406021110922362037802865499702766904992914357256059545315305088330190956986392714432727272853420207479215747187826549289168217847019872929210547851311373820359810656541555183871565274238084555475801239402651874279851561950380199506332098790206380099429906841161413976805386778155420594730197492201139299795638201602760738431104913046680572127229438372110294927352372295536441467369856036364714859251944260560011427333870033018542287632999720608895610104974174132640467949869496448995597078217207135618834270712079052711853318213541450003618770781583447811044336312998596323321392360761380123584595371362116684059004799002037333926211449952254637460738799687442494153674574551923534426167654572746570509129543111600785762121066550737623172009684549221087139369686934053666312587354322004784298474332946772469810294353885949705426467119098847333010696556256595633108737811951544554009254025876996195512850726660026740724952975577240467889269190686795174676964340861834902832332113684817706714871987224175691957660614771205944739776814532811742656814024211634678918743351228386803040826507825620744566964165159095496143331390805411470457926797103169336690214995557789063793471741668817038200405383464330461221998497403032699260188431280832256970673688507778111974288332686619321588269195472501775910281814271356434911122387367629576753845710801541396894672782979351291776291055748620369186513490414297690145835639554188036355827722738750514372861684867674617900522808693782542283769190294228293359459020300184453659530094605083797958587777239905244224645698291094894342114932799259085083709578236152071745607460323997804215436263297112306745073058045077975347535723331123114787032519252407639026455520467267259255424314012493364053771278295704777395099808741803979660875214800464964697095795535586306199777510896320619788717736101316225185828060756058109267133270581546062982988527377034952913524993083368432211554212447211629611984523369414932768942253177648834364590471114599432184834019369480665711387452959101731941055770811987252633597470769980029682031547180664642600201324637943654109994517953347369489769712863007683576827940767249786259613406062666026476703115260897451117710213937490108831717127066954156829203523075591484679043447163246304471800341665090174338218854146270918842835972212578625249864186682427751154836948421102447085940627140295550948674773558743029606342352333949937633277574201161450854770192285701950543000094214422209824460885527563248496881526283349167916841798678360284565117760542527415272406354362401904025246504554030253853173602491709626318723431679250986615567990858159492842728022025131811445787371891867028630873241197493028441105642503268970228375844915173290393387858024728313033227391728656580183887292744697102049802378545800588399893652517909979468905667996401068462963821499743347122537765544554276470518559730702131539414755241550779941849034932242677411169844357861057449547491122200190214454224424190369313304433893567153711207556550756649098900507096073248762832025310422728518979473188100198468351572082517794375301527355986327366285730287417244629449996819805058397694007810529057198204673980182278922236709425749795081961561636710609340242552159455537163619017653554500113876011490684110955540130662615387555263611553547941674581007117585033897867117504365291240140433636943375923212989307982237868294509096485499519193437997985944599736271616357055262330744053264358283100352659217788957461342008006239708160194233785903124631839122500811705064591561751490679521150236527491321609660525067420907120069594146200321978094399009408196765484664873891159369184277243882455497957734259465374442349639250284938039972601154411872662087154754687862502099714380929712910397531685022348497007855051556002352340687644691600346918565992761900537366768811180135088473642492492471875322307110170767532162168484484333243263659312541487428546016121806751732010633547085453602800506936091673619532725191412470772635903838395995517979420770226387950269778931383393281126459108493774503431845609486115221662156172345674484774725570218571647687474863419371696974755684154900957996352446048244433915716140387036179876924343989094044223019093603665368359820341623446840577539035513363103845098394499522097102355982992966909780192620541545130734045335987231728776237869059554698988472928400555728354980824417820896785894301786385135338758402657925930858077959321445215648289880059070544982134782545738866524277605424343204560049574206147621651951255087909806488111113381197872145067383242885831468027338889563908049408706941558541873801085429483651159580222348055885412977942967966182289373029911782895268278520315384690379333590770988012653140412767213856194708593414219154500859239415898663332855258148760334078660616800118583426076025461664830091550322947247337925711541998951909652364108108328628980510691013961823661229259179965562685624429107034335010636682220780242001981119309659848171242040093757991636861806551041782209070356467244586479334156169992049174348893208533274789086923909056811866040973116382474315694015031365350313442023711131430010297850905339992085475377770390247342692005580310550536375809999305910423462798046757235257624019239129028823647062900606370661599771399413408491706093139177025267653037168981521861831779889184463406427160822085701978686564936300882019336792764892272788134009859179959027098692388774965202417612310388923012744920926987171156673100377356954601570387206197139082541972002507509651988028471630995642930809572024962898800415322287069441815351959841670023887481227976266939558226231642784732236149825210465562670447289456625966141616891898351800271840311892555126417861881113168764246896749160850979362021088140632366893176151361149818151671653817095803256770651011684322332819005238089182061030810068824198939987525042712566640011351452058171160606638935335046554364161013067480657345521088978486279588151253438461792442664577657697964564617441945881729726474751062706023446135350103767890770134683010169386950945192337176943699889326405679501963187732850331271422909447718949295216980147185195358595747109012416535277999947100646119593353805114579065979719430855905344402169655494505637212931051068586555050165280996161884258798609355558207358916869442081399362245433849376497648884629604332027590810138883109780622773496012702311877508497896347387955105782298436416746607421724286713802576119176751985007157957384068483444122455077232508546194861006869087846940409142269397436760493199415806321549159572871818990814909906018523742736774010997438097054998924394741149242264327738969742126914360936794304279481943163157496964852141239567388167911889307882355905293796265509052626091818929050382978985246021732080799620903424776738659904378723482811083766277214073129761897854597008408689641498658856400297333160476559334008717960468066720369128381350926126148149594256161879617359352488274247262291444201386640687463050483434228880132311667253346000660767103403709690853715666613432652039939357721941424545021517333895219447318093075684110338204670257628558221595029368327594137240817422029173220439206928333705253965856853255072980558981516793126571310772236516887241633606879351846693244826561292086502887655364594167926391456577717855517636725615197504055005808738791054847704271484935045116326279179430318444789838653122857893887278599333520217649384934589317042714290690967981511300912315173367567135869209282156581448718280634149977021372674695393035630766872712880276803088322053007602054985013433869884606965941217316245052745582387043856594048289740677396469099187908330642253797599704080317252562031717324165813222710172094734059438441806443482799125692263342420488393483861986854032608333316189004169534195522583336462150467322533223263334477768325694536244193356361172402002137004080321975819203145049432376048436356463482080264697646104334159918217826963761834117821162327367800526789857306620778903992653279213503967806041151282017625185091048807291527662181203145413292492899613466146900801015906375938840247126116753597269461647041790918479275712626381141120259956528213475100690609013431731686680167925429369332433561097874912779530167229128295985363901462237963099342509178340872326938183381598491773733155568841826465092351436795354755170735784541975178289120229524172840805482943906770484710371273834006259710848791402305765433849078029922827258685383218425396852863094354740124947970296526199587881536839317149916861914114745528292009690245842477326899908062721627784745593619385646221180854704765431484862750059699061640491574038125465906926560492743447971241315012648507180275247562480592672525280984645155383026064643678965212456057633470674434827547051220450530594971684177710910082196501581420289368971940099221511348511703842742647947991957570559530492084919140621063480061698771785699496827920838000578158153168348700324207832654491062081227114250369571924275531252585838128512428694204561434128633140756276453495777128996269950693602835917805559105395136780264650240347693024812250970838218464411667489958922957903009205032351475104997687312809408341600569274541003906772003549235102084421327409405716598234181033664168004683627233812522532942333926251024575838018291688631756900027413498318580253991960510355075019651156600421364694258757598001506492478650012149143104992506340783371870093513246173153345956677180732631815754220396071880152343597072993922320583015755012774791952226591820508272171782382779024030458987538865381098965241630084113830056238010030445796617621946284846712845107789419516052166540251235865022288461301369430326601488359432052612430268455574673394686281034642708354430684821812720234032961671602355192338500405409631823717179566253406709099146303204709373789747723456552930262073164121582563226157652405787736446216870354663762835923812845957078657830556375569999902162473369539603342090462416516984839531925788109354593951978718595815470654689489058065199150426363633155205370156448538782895263336884399268227465398201249204846185089595889854938035079715122944462777887780881791310219254985048479029361388290913406760132553472867922433477507699106094367434820481312361767300436272711597607858098150237071198681927166238171042943424814309382505275603363009460780892434976783974823794712637258303003368144347483950486791315883727803110090434284619769773963673078415451056492019165416751619409447283852259542148230822086815357004802058697377865949750019131106540109061769221367977615737878353939002801780194758957739831966073457385726132370893135788530605333986789462279762986678609155423468741311806668348862596574044318417468233371988137200232061387786556143854203120792987272547890080730574234308144215807563350385916265795054406725609509235251133653204058334267841156376384071723056063169896752294757359272439711240910381259581714133641940892465087083673900537548667875676677478126595592506671495120365513298968988440749067948398913575404305824117351855241285833068172359933952127376315990514226295146671496012554485252345737298967091687349430346353367570451334734694301737417716945180803214175044244603536162536508173481477782193003057308801377568297825559751630729276397455110876393110565905901323060510041582356619851753220365894759137930145856373927403782428444256372189854860813145471364988457056899453447666196304476791566300148113455112991053961466611642863615036633823719831373221652629042474973395846226152491234454546665110952720598232632069859376360922443404591300549282317167114007919840128896876941661936829685763953642012434397046000807563321783609184453610866913055351053082581321172439014297238014803553176373363703202228893524696154580157642046821016911655517063984858772555955751466192193986346808510806915139533711788887839318193368786642977860236697211787096513696037583916191311048964372020359434437887385491556395679299873743949570807408262997864129836547538917462673470917696500624006362960171723481272748607450052554893900092649992454612896775760349571228907275156692194859590788376817745789692540014640021191115561718406227482974419594220888744752749483531775588756724909005192857815810642162688055997573542820919721427145249761386471373163073609998747089447033420053406756537510365420482868996276311379633326167591538743035889101356088296117049738824894176894826292424682726643651272177565495288320104590291515237585533982626057736483070039345523352251675021877399453025994621821287599610922481913483199702474764959527221838793347987794152091126809851808775604144744539804697241339613530192834198931672078881100856755479698332773995143685273530862615721179171960274455811882479725016171787583211721939357405166876221374969910872180735316094772493377803385782295613125166918656510388471024240655625502772071448228844700276367873011769349411213304987720253864974392697388007119842711152332694727091122081776565969848779603273728534228915084883726936052311214036861516338896403661269495006105960313242124763512528803808459253928834022964317167707556889832796581894025938669209892932723476274514675172379781096611527623696075790459457172618948647828836348145757116639729184330292789233230751833693761916319552142794692808903928267586909976957988100897878400848201991896843223471095854898297740745723450559771982169814894570377209297377777759283361256605599552963602213683292250902271494463040770097399206747472759447145103897443097276604592736687764475120528439800314002618392032560963672575548887338061154434380916813419325709498545276480975959700243109435916145304485102237204847214600963238560648724065410296892254098351548278184255314241839471268557019648686633999039844999404487206991157155586433356005508623482357901987831156025472824991298057503922568750461090596619649972751397903607192491556080680611525540209133324892749051812288927137993723895305668937923868140332363434773481594128210345608189337974476269124794379236960777142050255900242653300454380549982957993038449790577296647277976019907592449483440270633790458985817830747938386708718378086841833904973653374765384317669479173614110555044575030716933358213197051996842290371044385430940734433937264733354868684886383375914546396620873069958347099702139155911498454921107055285465893374652953831616167689908305597346143281086313933933610493198809542468600304322206142167866585168252216113448653516139396659345285547611436799360639781847363777071479557686005535409731386709971444364974240358487221628161574313809019170601206926018307402394465407055138279919735988652158993407116364138281888089811318262671556334268762652111227600995017608839131859804668622444726692892575099330241698102928115370263958157531742797357739036082879871157030961177699347117458761603828799812544977046443589803415071097594673986297871032390655047817597797708611352006983732273097276998941596882558857699508806635169728338270271237483391373120722836286754864218442286872970456403841860080754184828911520361765993697458364456878461625806072892262588830689276230260892855079705300025879933149378206098706329802403564505247346944102749007475593590045863780864319031392309643452627549735551114296382676623914828347212516352700783118532526758016579310885966967684627750605438031118645514582202348680787070749724496260397799987705474845607187702409655017187928272712258128635746704180926317725351276262843424184231809008234799307909182758800717446816703007619846954246604750320533113518015116649539549681290974300313751115198307666446786892810742729927731462247490942615527168397408610766229734459408453158600160920159703859512812020568708011963134261688478175480590037116515154364686269204291854624346485813190197980677988138626513902307704871805437241343999167536245190065828603421209894914337157265975827019347891710412977293190945583704877974193055388455230351456669994498136355672774160606187103672726751563215726883355425036818333801512303235904429187355431974395946296423982269478007488643569199486374574319024980923960271888722240362068958167372082975242984957076669014402926683592476626761118197834910496213794565675701629359343732795508492739695895338370945261896613204567672296120370626890557174506891131644875839489533091746264072370625808824707229559629059369476770114399550828455219028671052188877699711214051651342065236553602407507044170044141143362344209703142777381917697248920069523492581123837153860063572452328696734944602316496544268327579247627212361600805064652232642228372616381107050512714299576691674209688112266862194716978698473946967500235795461701421232140038379171674459404904192151818095254912575498814698704086400970266709121106813754257997415895936998687813303350906453665730871665306989469783144190831223764097405527558937618477676663815266823155847105060474628244257398255687794845781308731875404916625904811829749471638049051498869713465801426421647272982862422465985557300655273095543558984489773686447263968782122231756924391320696488949156208259993339497170932622893275562222630345082043357531315437263761314358491982000442357244495654738275741932861801185597342454205779617350535938303221156114948401822920335067786880590803660778403856079495102009752363285560401372554055353728960099523328708218887988511178668403566084792286043411599354187626454017179897465055358634441890341628181718540449994104886051533828798510263018294702267315367079350975317041755812753707753092521246225350783336874427194457463548958627811573205024556531171707479507823007172028359830022948081375101156548910801480272632823908553971213789197628429503981158336965722947306391709861721495845542375628718993574067421839489230713359927309940204912445475645820028683479066222566647517321389033818003246023941760477314543160866163423816578303748825018070365611987867133066610871953846875357725640694325548026298671473652646478669726142280560021451609910984235005718257505914910592030824138200627276419711407039194974733421252813256590975023139994066470494976654611837008725615896149023117097406640469767380680048000769242678618119367712336883510666090677690706683840098400635582923174552330828067318492945621050805071385771187825912752012349737446343246459196551024823765466498884317405542813382651498933396478388335215200479211251368262022080488931376742234059536623216072021349757638611750056953573614325679877231701951285901402985899931259968287104908677801921514855244064910311566305345137116559328725968594793095594993544269765350670095890463381352336503076319752406543292805184396943635360148490524163007192795122160690422130953328493459397507396145222492659346189935592483774801621632984952161258200881022562796565533533822925285282943288008861396511574036025011272285694244567689442403968893817195852036250996603584085938982581111589024236014555397011982177484966299655345623253002993868682092696220008273219691819690426515077776207861738534860616356220523236438528721899881591076448869016823011057249461711757830704224138077682057574664516320877531425513954917482348881249788755847162802765289458268642556571126862712992452782322081486027537475083267945725174987803122152334126051204067830983160525824579779959049517434835257192150885142020122529916191771129873667031067772926524921353158926235772071974137037776191999234484475288803924542362091365920686344826589566659470845654498966724880887465795681426154203812723533505019925601729558544300040460928718162873706517884010250522799082989187204868544359600794622875607172011530852186710227268234962310307069267805421200339925079536883936412424309458406697150182399374501743745932908064246899757342930336506406798879319029701641481994885335225435162915336688013647649153291572296652385417460746909121557965078328984775809624343421249040549983660521274892152179589681814009838816968878163483425499613509862060442046691188964051447073275440036480902428546489715056894116146184611503167180631156658688432984833322806034858720312428005030785301354791480000776023065520778571656555104827872792422750682447658207421134846235084530912637368784441721700944055576167605486011326110942179356760237800628802099988375329449337536497908494256554823925646369573235686254922517813575790332892880382717861588899646981077874333598832903138620216884380474524853903762585340621426079941137548697093100065621386005552308107646581817471093091532961042045999907792718000274034566371567937346770021110646525040150362076260882661204171149788431702015295224658914568452831389460023826238367424145496792535127693788809819195213319338200514481460147027281709202781111425440232688828708280154110652661391905953953406420493880738383619950005722563455882682664632826454120515665104932507179899735955359779891868929294936179499580372331174683949069860507977806392730471011202738096753502325879552790712991647130066160486113172819601686351485679751932452036999356928476751328536774866099785860938913886471416863765317624691479051496248193283905660756774078044394522371781453987099620493626889446975127140288013045983633290173531493778518707827813293113446555888719649483144584276887394720418572202639917066621496764217588556243915524743069841539868103653673751820569764867566888655061643521149578277674617970126461913703888992322384597847523972092407859228862451904835253715132314789265497858928310384805642834039109430252277916274139128893907777244641571229349578889500210258127846816499465743108542974164446914708290516683254716160457913330824838436853479889976943331869149746200415490555271576092463731654930607960051145859192281126090930647594239521503587488892358325524649631258863640526000291129249109414571909026183632067921383979914485108601055030530245864232143921543037300493246347766952719598554423279416833485902991236965259216980649735110155211393321206150399807933691069287746643298539289980168174780061810273364898376876747260611650447999814103433045300277429909487954008335454398838457793986568194950119816421483411290251556544868126520561850444634936128100723939783752144266478538018106107554846116500220206265031431064030088447693750523764750352914726022030171545730002076535417315634854291093987937248453722729589012271511606606976844818993258159396345150754302204903873675492941460238990651610690208686924457268694975059027176838672963650633556609424801721806283142558736184675635705400075890979293063824994049447354923140788575782959512864672835746195820282675613523120723331528023726769888018299089373726071948423978780846046355216386485228869540810279878122173239255997451067701092142322441319344040727868614988838652189092233710002688769364625506415426410556818563486172069823692027627229273869198510039708130310824892565898288968342401897040197667637953702388741221069587188601331820793339607278674064039885514915834259473326928179913102397327207721713951892470761029376169948091301053565104264255540087983772864144770601533037656331928196017763632392586534142938646448139096426373397158570064268543869542498413137778068254444163845177754966717348612710611582660725549100651026622035091172165899569067631231801663839997211990685341592675838638777637416924987817792557462107688402530551167598029193202045991644377552266630345968439646741444854033799271023133378367644808199037575910981344519266886761567545397986427029354743926691485562883389856062718355281819110815762981847244585616729078110908197742644303979224407007807007645094780803249408768969785976811633184955492525227949204501351321987541753893852610739858471902524902767303405893703571224174066127735090847140760239105082620463030419461079469387759901766803839398318786678390103932019164180030293068916702743242080750925042851404170244637569692465949561300609483252282860491683826198196000521986197265091044316853482497084264265128248002990077133229317386669815339830420658797066213993575004107735578722126144061464087188553407429039614828197347262585419662952639502377236305524191064274438574550227947968892606644618615322414605450630752100850303029408972216811775838972330231723440745340249196444534618129090875066770993380406806731827499293599574624559214749811270150549224162721983695078569472666950684754014820331471789620827113586736691164993929492878843262651693090135570736894044882517477165914434776116628302206519444487508249038639163571816772411409603125629222849095317569670585214389999362186783400802308728586875526114197091852697457956390655552071214681854215807785236307815134767912245326605006252277485984749438360906093287449628863789707612509223613271606337201241501246037661377438161555811722463552233607852777522887810169374142980126973906072473729636992508507276646849535495492837367335432098465465437850415029560671832467234898388150167582350278777470474865742212413740173023160253414098342399683078899597635591450948943776678659328107617290787959776142328614320513897657655311188570681639500278930329714619533250170474298885495551243422663729813952099497904633325144901673207530229638350714668035443007071568792961057251446867833714943894453684433196109893518699279114367622440022672381854988820139948431091841096361530724633573190688976826411452997337989430359169533433956773669694072106495838723831787282898735262988514613140693873903833408170591832475140876628865281866142043818912312933862928188026981661952338047138298523069225778676563652074982109058311115997219350028648216526387442702155953398839170000889413173083106167048855272713485895535985262020523195029096306872101707407783201312422639890354237281269067938083831659429044150886423076656739594842891797001124507055277925523418799532783563743994974654689753545907930125861488800997090162936855831508448827116710596906129924212619717164420114385584309234703022246416576483108327594160038849872153224131800420462274231145103372374716548739432995831042177695690301457289148065759208219271031464282019756004580133516630238430607623473183581275945448681677835803372614695654957956338846960948777354002577118410040044711710742679865639958485388738403037778540661572556712350306903263208044477165903104267187994891622657892391963573142679294360492345854627263355382204006137732300479625806911116866449498103022600705836680599597853342021037435604917074502826759144272883191766298673197634332715827125043337234069545985113997241706958152561627739647166916695251960350345255496940989912631435332675382893978762504912182329895512047056309571945672137796001502674151306226619791732868147659668089617819304707023289489754324534271152815649013848104147384559035158164537507338469910774057343510478138066622996399309065597506276116254727382922516866846794893895332127880164070267887152393981179588369156556113532542690517262125433294801644840877397533751708280784958345683968989671714891914265744827634807150037732196539226422329816708614711511738263591859997785869155771760821779352550174276160125484559319405706352303946107678996441993169272144856372515675633432092600698437336528687072153124174513112976581369497877026026843731514686650666278871967851910082333043226649219275904156786292086355122081638380547310082591517871087128808740189799912357424098991506081244836278222655856815666605177850189419647841410636025732896878833732898340465441775937525256994426586419988097267806325363005742499268055003575657285202507439487612803345103919951105718213281482792289225110235247124102881579526119884240920524341739197557906953945985779226241687684621629744754023720633895519409967695743809869581295122149178752113841192283765193182720945605963847165925217724273828634722451614361631058600434313134665438202905338516044807996638058368222872612863038497796642414139629555889317884949370587258032488199659736434060503588721236256052313471340786501750924708524571956021198157795521836390651664904091487289443474481066708401409831610932909481639243972538606270353384704980057041976591942126571489497703664131768896753136278320001269204314765093731955967496600113156504975346047248103541835069192872878549319202489708202238517573417704482533705703414266592939580123275534392052374359517371605391271273263871275623378177704552872480278689682852166158920822755182479007953582349003667990068384820898955190270062288195152429958799264429063070226316909219725289099824019014240983250497641202818176327814655127904424495473431381544017887595830849421200029560845079148974424784331935098338891618148674129024605906468941883442456838130898463635716590098884799293008535521919936145205816023590970433763951244112913259065109239215667377673486202324228342467682317798898123360650122155580440667850413050719524820797511342616125328492416157632185195006155121378124170366262292052658100155778368708266332643083923495638760316640180638347143379882526060565085185797690825124028990432737398988978188144321435612783487165372002733507871383654732814577664340550675294809735619641763907733901974981428389129964462149446404691032809658000985736435969506465360294695620406344744369194958247659513267445387759005936040203986385088226915224998131755359370346818708483001112409349421696319833720210877014168554504313625844177897229473227991468380955898025359979597750370430300533711079353798423230195821442742857964830645114514391877738446093479595274945071208545159695693645258385329440542104928191717181177916695979957575130854089364651897147150142295120779640729727926077560448247139149786850878100908988683261142003152475345406722693241187892147116507777535728491250468374142307519160442956330494404746041725369617934768782136286722729740643301917661157485816616088284209480657379444455846952252107730780772885178745998057139765858838563396851337228578108465831005287252204230728435196932092790896020056798275993550741709049448869870919873857388991411831546945340838804114132124287473509366535864517927790926038940908346237384495324332554147769797753339419326472210556740886983892916861348876958562414858832215920058296116535624233144340174483318522457027418929514960193989659901422880993251525990867670798560921853192876610871701682523222718011675415632302354378586070097399344104860462468091129548143310816359884738703029774947965299749261642130797629436596804168527544576525147705838241562779585966857893834141898863188128636564838044990262873802816004359570758988859696564449294110137744259472548950605365513689603207471887705286149777191317285716278900025861534982994473105784139969795965074197642749571589543139327576586611238814758703310077082491843422570306833331869362741433427399537083976761005595725646191760945742979818018597826934396109327464257739596906699863357438916927459310941681855906907242224070024037882411906466997247943313990416636855145324941815733004012165684748067710386330888704317469891178189150266670210355505642297284241040995645207697981816459766847773126374217836596176620572541582444022063598917254982058997665652408623687015820514401380809493291613984297623822315450168918674309601316052061915828118959771612018207569302392742659883118257559051200991771842957004296571266351854033573630829146097405082262290463007910656017391728516835680557130854177630089701364439003447665651050554273924621139595077784611240085945765971499650121353869297213411508367480477275893175492264091463415307376576531560265475115949812269066696801064984572121181094617175595807408936045332253018714692749168752063424990449660780611401606670577729198663073174078002341738491071379220564037610473833228285108729657261856097436067798229312336798538703281264841260380933855637313573371217427472934572830375736041034588317508204513065074052286989245817898399355399143192764249021865049173619557976663129874548335441688088304691587843644222508362642278919921299080402966129408608049273339514108969565824676703478740887150531489854967225528717598776974839026762421580656399341646812557104759735150034544074243722401038365014961867808076098559758868916755301296240379738666518183456165900016735756697216349761535243805422051752148663532410559287743475680585693848488899484887582672615123978632985472121572047252559821852279071948036168708335987051545478380380329846961603810205117469189690147547596401017378981595151595862099045851096240969654665279815729006605510207065038656941270253919652989965139022246241454477629074413072889422085716404486768156143315280686048238177798108336441802294928318203265168728281383019778298390950427047945144081748197181795842715344579594224311693569759035089676991183276225428947623455518655294223625441124831197735816882880043854105972798510189257012663459797594247020619265391698100846323637130752245461004353720196051062423444964967770125201923124265982976703580178066441599427493917782170616072437679569365008830756431950405615794984468362772886431220787427355214809820244504888334766435819952134141931491125839159416627583135000937189662130854918457589802004195010893408538781040503796486117276829919170701950709087885511349029256865845098931638984017090908424105820163549749054413004410362795450734820240951171444724946046253380250585846170754452575259549053626151714737620177373803537012032691670112908859314467676850519857933509194682913257858063814796494984806053016140965871100789410263792982565593556479188173905912906005664498096298043429277197856935849478446644584868884588432408476840201595218948338395822788473590747243802352005710130275826664691243123553885918569298397158993814072343091274521015549304831127064540656801911822930979393894674534872924397744984636621563478513258682026662810328923144434034751210824500016619773961607087702814223239751068450618835543822290389481621350925982138291844269101400449596278205370863989958653148717370910469039493189447971667421186439994065012617774800372642766446862325659929510689006056822993254748995021778061425128521817184427421154963456505936291460263775844421606987646614850135380988651774070097745769395896654237411792560462387676676832378805280185273221432735553627197970774874608115908581463139680857045776424635854913548296094659312219673905762080151657615370682096131374772562764567072379372261452830405682118402334092345491683907699813485953705831248400220498949436833688480640655387506900337156275937766047598534621936622603308238783209100562638375082626670948330450291872682616322757306286803631839298603920546888513074150036139735406338962013330192910609748004817099432510218923207479630827133289169545789242838573902462429919729423660888655222922082928228279972775349322406524933082095696047391891122593116625622334749076669627497828804933751768949287921515344601239761609415961595207269943140779626592918939368203369232256484896280775571025547805635985355162376733315184448587801377052506884780627775269464135849407474090990730162176974724484235494805852786753541271614864833889162069672353808468491290021672542502063949673868397139489442195453027310588934556376562674721414102606057702489190479278227246142825698300157909505297784925017309623536430374865958269248072919268089045146333276015398528574263384261081610789012186087781687885264784887934879722913999957731540309137573250885215252334237228559330329221907211359337149157672566689194745638338297825610745334523936524733983878290386232601959708800861639625745088687815523707724337657844230273130412409265658054122751161791495848148404554552602297780319617895185898222779561978903045841023131441529438530976809028893997610324209038333456983075858546916713705684309177749001921955531488511510405605371528220529766260448076582981713144968312942693519602934548209612933903272979688748413390301843367867669075403904756978486996157380793778355568397413016452394597402009808234139207586446294634171700738513346700171976840823003175085700455590393213556894594328449373826616172841991781033316585012127201866957417694358960472308697463759818020959375248902237893133115121836951549996267442820615933784838750744055274517210949726427627919417410993420169693686307173741337142087867661959103498696183666417982641252297320398162085796886795672172115961686491438645218043989575242948955021893358740659974925855168512920808569980759906749866572678498162535345775687669001060266725545386383671669410925695817029598890457403655255130556972672566909386155362497037152250925732704477593114082625016969291250196212129507526336395978713384875147480123214378517034232693175683084043692574076082563502581511298453069218147087768473062209228117964801901937121582226495731884773099336763857202905319594005807929994271386261027998351751691206055021195614795888288326680225805425701629350678945639336244922939052486660507321373172146330702737682133513505061749509407779146562037942337225128343078866776456416946867647242061388930133336062422923465332112064672666255798186453253142145233105448680022301347628705398667680405721910284742332218110675870871034066259925527636882510622522915811383333507941777305595604640346678246032036251940990875651326362202508588581838925236354411061013125246954567178164675877735936521972866311052155489936647106050377388719500022176725825187630377646871943633403326736078425007788179156998882307346265720136457645576378607470531758254385782509868441373714283535996374992596503912145101917370803099445603626635079938880396655179128060158458826917434296442442760365884573124235834837918563106075396257239599258823892420023446639012775429819042473490711568919516068689088597516938693575390270843041939657451826578599475821386331616102247103165989928957124956807173642041668810242471483353985414528430067820118444311059719535646105426343691761263859054786522711879833110159052006020500818709921877254452490262965819538829780473528026261336069044379501094781550534088360207029604756358228348064648606267125768865395869300962418452590702566789609262904226801051608943097793305111869938648651283696476286856535258294272857805986373714868598873074681816644051945498332695014363841348345620401455777579712996410780136239159799795256084146152972901999120387503527018009098963554778041017464754209971647650862444108433002903686190097149899271074205909110329899457771618743912841895913289125421412893662172928184477212291133949920659269069400404025695845348712595910229705563324215366697027662974966488871921056929273214004512418516364292554906912712685072089647336536784766771904579372730376113055294709937137922827442021509521167898918600439200606896717471764194467417422205624696878076842100480548089449982044379436273542179885743779647749066102933819104171304813791200522951932093794396036949538216314998945513390677158660994866782477731174986641147518172442976354536294639806846749762013113725133481452906399400719941120069666903107065569136794553113117254637555723541990347062756195841610887090620675056624249691563553764936347164946682393297418553993363176747801513322314547113218930151881560778417610903726169594691252893567731968192871454917048536241123267937119606247316529691067144104714323763734394109369191892223009289600119496626171712361690160158642156123086742435637065520124676562879160769370632071974552636635891322323599891365702532493064299997442240492943865118880736107363145572843870264793087781108072198701504551059797756676813570008425827861271889918371297140647037251943973765603917703266834266162313580768579538719366982318202968100699735756277490015668688180207209579641715967679090061707106311931546024776808948833992527825509515807908972495722246947657839473465058398535272737220328935162209832060852741292196814570840788801887313461706080471424886138512822034779320095284622607019350287761226617205045205884308959945790483538535762519257098081976886569817318336456961126356379607379356192038941832648917792756112080073073690769121771780517969844566076684071022163587861109939914548236154599575949296599472280657722360395581435584388027884868013503847527441742531517114665443798239509073972532642372915658992869599167150138447674007069915747337795828888733480370526504219069441874863714875272908616091730117294280712026195855217734732296400078840636559326020791958750313911665271692410029444554384266946580370406756082043685822551587022956585203575554408913667639834209486527024456628727697767228142998799911152907231355131601908050189887844844788575756659608066633847601056955822160178958831907626335205300166993799627194583497525079298437514165647439639413703255355798074025887667422903959201489219428557890684533604102034048611581437146178388053824680027464622897767803523587235447321343872167724024404713262351562696855193294455655405012169628209375670703973513709748559490528431194235925645677014977223272523848488107577445570321182423908575615071359132393404141181536297235124059871228979688728641514635372469394997050226377641491275712649467571198071714927150445806902147022735181878112974406176710630102332125001767814319959849990752341461503486383097996114553475059711698639075341317970749826079158952647236292348655440556759022760426299863573513228615233685638938670079207778252923474380383443134149093840312894908057248989433165324431719059257547141856685167518592816016201257851272767482749662655273695626709903712658620551909549216988338458719877815192207151132121287504060296845344098265035554470819393960511242773520971793654135662607001436205052130208287667309845524169798710685188183926094163628366191770735541153748708453553789931250322580190626166173973325065150588698568037082986877006591987223010537681062230702304401824547517124220125688833894132980011088431011908364710586140004751362988335857070670236828642175091621809170316276021632270049251536040953232382030120950319806695801520514915760683633241514172641007788772884252314156932423623598480392267044957796631365746501546509506346493461887422141086326591772303558703272366349844797069430123530347259475165616425271223651842955763122955923300028078996023661270773573006911556798591005641228165544373129254408897651606904126940347458982905158512183737330321734054140535592842384348526743993115768785029487721453459087256679711144233087510473645174019691704334644240515726407871548009450866831372250947712087633621358202963485287172023356978418773899922336701846079796508788425192493529840560539373112274834506110617461251978541160956132378214825445833341867199759266305014818482358919524971163728738757106601602942132725011021121825793328876871166822338191913455356548199709521737469899485314369544413514302805602819153459248227482021852862328024031734289727184548350765691136237721342850575888019419297453580712713998022635642147227266744924217220780669150135880882993567416097709645713936506972404445636605857417507660658876589445549177803813466177206576736993714320651878319600917394378649948725030694993001742291234205074762910226713697854664334617078756505250670974288867381359688134878500393029563871900079228362164971373621093542216538987741872604167749608838943296887241184565131591524497046352801955172565691592962415602344499939256248313728015105718661711455122897674580479282503029235256017244544357058324605304383694456498181973511653646049493740482635466520918978546917056024603010496951523617174964147474967789099950908785328550893279696887546346553230137548005960152065973623685258259251832320295591864083448656867274305328900760276767510784465989994997546187379341255194376250589223900725687974869863922587658186668517122241453673360752855614590243250477601733942211685046731912318939931850359417436401561877079315254251289157976283202565129305407741029633808263719867053602358323472397829500866171096549899877968068285549831803638616777229386205712322147645004649677318729620587058345040049261197375717556071507369139860911442443331093526820815615604189806439398517690691515071496892164253707479408417761873538383834343210782651666702202907768691155760646100258616512813975983194677953483704030337954082605540673299573545312346593947153052235042821094211442043977839989917309979237430717163765679659185599299542647232048088743313313600812009711894601595823059185985698915219587844089539771740211629676173900199065597944905585936061147019904103959136065121279593154241363882381265946689151780296174099159572562637205222336331998465156876878930089209881810006327489745187675257057544990131657768749260665351952968239708735977298669989397156935460350380724283557891240076834692203229706436706344132344548182942570968529695862856632236585927642232690134986263440616983296929716222217565130640833279575558474340454777331287019351078469044686637454764099825806842558849535059128239687568763529050225406832082258417160824206554322945001821897661991300532089664221405278362500214305950773792504603549769749865012597777282051143060340831629526908302091519220294550098514655949738060538232602236621855086095019780218819417018594188239849990445569929655333741331445179503617883794084783616857254315793000722306215321409442264543156020679373348054517414856366790972511673705533795915611613812032716115603114909777918771114662952857432609498938196634129599699458644781039264744378474790920705704487258177554198704768010563997577023679449315958711102281385834819395619917191333849902534764255274911115056068222444604544663226966270375347865100092652140899023289528347119688611793235496334249721173901736231912522973228728754977803912374260985676284248272567194820642046376727261448403431660925352374040006304106900807429373011212762104029152607660784062201602812449127148902248672695249042144999866789538171093647744472094953810583112227752141815582420984938203757278059539245898992773141907414239327068408187698277683505733492239955141596754805618171951675310364490311829252982847836945728840123485150112274010169732439016994836278308323962680411799233782454730910429479555774009059968591837734572330083093880203758293862554548276897731877228843383676411215894826180222083913939991070042742123862747929877903579769352767527837710191989701479291628991256104148891408761895098593412820528319207334275536625583540878466703971335667379222343633752094674637647521933298358767064174950141912940365834983218465388099875259154740984656026371403905608420560876675525107761666378555362910945989050425055937255997470039955257357510745392877260949568998780738813450419742758199030067268126578999170370411542749954503724754381213286493788328762180147575826055778177799918471260106237611960055638794613537687922316807659663036827126598208980836455828207444129317546152526980255715085315392911019888212957832448401680275873776094075816164686576455536789663845539868525568762899397763449982897068691664761671127769539506584878186412022589629514965500974128439408911180438571056064886495524300582166777468667501149392821985221978635203308107862197572308249637296901020515017288168018434542678214318857172923500781165495767682429957680358102103562753735541677612941559135565012467933798305944697242124874244830856863448064899458272751185827508808842559090891691282034989321403690756608229829195005742467278986257997189270289889509728058218847003164407134160117574909301164056495740528299489190746730136995697121969207320280971182828831350907265598682930419296827929064260087973183585347869133717289569838260260445402345720234767121460649956709936338541748474823393916518262067024667627608661773872930290428689033582078487781026090125774157919281874892445549436119988903579202112811583977109906031671111175385116515977026142813844605903489136821183863690497050147442570582816889391388789488122873168225370524466168316231923649391565902556074471017205829214969768416190224679495780036117060883218161486803618061889123240686789892081258832132100240268851262284796055543200708666237886182535890193859317683601449737440996138525051757203667754566949190284824860245630789511138476127423014590922833729089173390818646978537327828608093716620880670359222740559597218806784465225535568412344877871856898045851129646628586330843585011051800804949102776177656560043746759423568502902868679955994391664547634077729690707589720551772776603824563647678295084221905474662887393747993101945617927966813680964985761595387078951579866799378565464788946588576218438807598104078392228758080406847869360138222986924738271544135432261476636751111145557732057691040846965109478106653957336133702429356456912246795769127377573459802839237730110980187476355339474160330619728079635852433794488768691434480245866727289395284302920857257190094311308193816070006121331552810897878712479495787292016442803593285274459930118262779481157634269999740683514752276920274474880597224426241345284840922193903924896565725053176426383019981527544364152126124885923043785002959477709315977186295264003330025129044474076844978631030505378410920414350845348039692204038895060485885314296400441970777618510161648844723884425959107275992988370120201482472756831819087187386913512125358927593379734963854344611101713870269027555118956844975244480184520733889645622129922942067761798059962961521644267577081578284082762798310071479012986383711887465941434269382583165448162347062022985596610332010626021779750925231752210239673997120055868203135518899373349518772833619405340025759483973911367189854689216383723948473529190565311691955036996152897534564084305658033695067747553757272354387541761778683703059807750531344165297618168672526746504301390436354584352207036667721568808769725121075004449116540552359638888354001500857285391527282492992574336891466042876864623796482921445024543802877644466503078294257061803860032789206745847478743095309378397108388411987536348717113276764479280337554591951579882380265177105944044110113453841101957832038760304523459020628575412044261138718929032365665061062145876666572563314582161042785342655828009336277657958931516394480115789933859848564796226689731323392168996582433454949078536915957487802000254025525757164511754156118541872343243741514601201503622865780183294591349495482293304017449247749412546776499370539551991807494098711582790138971033417736956147105078611276834716989394285462677733946755720285250032172260692420800322459991649925360096581626464094928425453207643266858922038748288973823734947607752098236530894000944386646787416541552071274045242067480327203664766810828389309721057330612326135124746928525995379221827470598874447434061362902937340954201460884640671727985798813585277248321046118981129767268106109957544024845614921683594265274593557986418794932149659399854438954060733354369916227741841823601042077911886377462029537255659371742887957452854092991752755848825964040149968486334974310187868338970756264196748262221901880229600501034213356531091926683278031332164732291266822274366151513423008376624034932038314015404426009510195410183707852172287512847221687089557117050894192302274176600254588797170102535317427827397108324756293683086342040978592914568321665804119609966538415916020095206293392554447385989417865090064024744629106293347452999169029074148175720774627794217363604749460897430048779246083072044895885117446819222144266211592537473456231793797765518424348459902586680332129124241706198318735102597093378046004491092737057542072375667507416355739061798815530522224063949980112802267338422121571530220909002849179248493764565794762516594630578204850588176869225952561558649836647722981247040148416897174807681707925800979046691210376304506258153472356118161971717967775526509592736910763055846799252552354620086272524968546885941553131307022547691481636361966423391024933856479021459534699138333486558955211432766886429433915438496215078180078324952338906136012873313055966021513209890798057907661394943907871994562518109956731242457944384165853821186819061142222047607767520008932236632832647322335780717901261275210061082874632460479948650979381756215339769463839511325514568677867464373380198077385445470102759869730055590331347922288435762719502535742686007992598561473289674172478753994596909314031429430232332542666430928106902693891041331802731438509028801708594160507048764283750585893538977185200522980085737198145306520180858446809706096615854754721070266051745578275437896758888849356791877680198143984059081498194181512150098472001592685833566160147101047937893439409746542661252237561381066852649326894997444060437223030091652120171486844875110773412508374140260603623363267095146445506638156677419403604156118670486556460299299468486991305897299703682068749864518956172391255495268542023756965769094641170811292491664485627626490665529029414340390528180898905912699987628184700276262805042534775373281206163957388183983293401070263877599282713591463856120547208053041207774280429253001069664392867298634086607747199164592133848383992693492954838421017796339289450484295498201076130076415814414984487352699233519399785287780885371612463784308594645554820197376140463669849016026984108046484323431036947750574556643249170030706691677222261687466091113866696953327077533516004216896325954927917053738059009210970657741341748252150106941583159853348208800530214735769221996561783112547666633640771135518972965948868653163325236317730177391039524930721443537007018800609910414347504672753637077983592060772932069564044436146566852689943949424840990443436478068208910196031810815531349276728275905346648567266526223009993504164358909158884721679521446457004328046808378615128356521814481391572576247985111492312715853972837718292190613071130225380679941509807858873616526878226546694816742728649907385160482989213955553226255448494029665299292111068715275398099935619470590655876757362604577186262528468859256498712506857456914319943462153718452807676873342418967941868790982993349770289943190530768081568979565470501593530913399087621519478250269268137582025199385514442272497576120516257101356973623771996904320666396252728592867137718415959629009983803391388022673320540523646018049685910223772883183020600541415445178259516986159594968696216799576826017889656821563803979306412036642111839800303431043744206627635719792909295315548068678068503173954923545615252939791531982479280092430522097572109381632184110974366075719522784801811608259152092650898204466654507350727942275740085066719686285688397881492212495207206841606334194891231733874551370721482478496791759512154554122868764013194254947704582438370057304289096346281784865492052477619098823858998682203675124640830497172716474625814690109722264754516205129712618478974141480960010539823668065350704841772789789316997729173064684777647206405757989572353618181851524845996557672568025244402648305850067735260522515662293995469363052666892766809460359021625426657615864897309547492188741155837855522474136126826454918230857540692791175141165658270167294127471229998723485906652296617319677709887608350899132857508228049537369098008113887013240544350625467313815599844076699073740812743571880174203117819573221985456834624459030875530078882357841392568274775047562194370742923122205761224650456366619575892141245948054955641548425585832163047440348728556401682332204285393815294701258624932761038703248650701784302387566486772911171869785894137232108158484614432014623724212447631003046185536908367679958918967765912996005130750265461047747832749423339976910949363707142108234788839976512638183573528944966889652639729591787232499242545439327361422787889698878587096754236521140090215362646416729501484315046137701729864024792365305287083577542278988131448309016134714883982838797070518086061637548625858602678294406229314169112490245232914881378486045078733895791705675650933659540420742349735636167867114188478377837082525291948312362444803548788943650004455954548176538347563338302094554244384650932920992044134354400913221933298049424360532261855466711538123967517077024116318794838679011536198240214665682543616403425585412169191802662444724960422597133772131419103020982557886648925685986416338995158420221492606799712971702201227240412401659926000361720716186187772911496180571610454373901945384491282492250630742822732822638008507997507066529165554222815203704723180169639397888813521018111635710176019705320828226529972836191114411764406337945352321436222012004347351273661983593461192237539648029981952063023711344898820867148201079032820035411432701015935421929181483411081162467523511457981096106054003624566279791432355082712831539929982780126297332140136062065894266694126241154787530278199899036159621848683476499489870257363090534855712046442310887882724380229025956339226669988288217144280852732356547925388138419361616032562268782151430169101624658141828550279668371151365040842657076044736565427507147144673765760807393613192196317596910627657354555400728680380371785801843153248881164816898210288361913918682338692984025639967321746830258389119140850617988059335411350353330748562164879736790697690834952349636187396739966105353476814727789654620124197952524180232544179017444872800090861015430422856000438328128773589039232905004403522901333908056201476108570025698979076237629732147685687422405904265140037091258922860779380190862710674623310894012470483516726855231320228206538197446114330033565868866426617780076365534429305457634580577695714733640778478077607470491610422352695441272913352415406983289634727796833113292329422084700206054048675459508414000683653582307298377219369477841176606424123088321484243360545008762572810257971685592856705251699527810074559088933377680817399944118528558012636337871359888301008908647678650579885928498087770964828361769498740934573644415333490053842189772969853437712762021785793120258256302031425529991268224217133482489196799721837404841769787496823235211727858184495544003224327811612560951330895609361437148222465924524023917411974768988620470538315130280896417128670326984779057353403780999245073560960700384421106870279817781020983272047742877814349660837573441018741748636811422833273812646519222926221255738350150924165418050589746790602190270011476253624197990033000652269505149780109346056571025032205714822756310643463545337510784207387406681941392736979319934224641045310664100065201182444128049800413253293033664879110303577329422883497968586382754325510515409183692980446979451634373201435911959728525926986844919197558555370233795661314118331125936461151372190216573683881196468574543655639983490793350841577677846289651203119021932264480359630644445190603529398525195227754291800484336797930235747800286860059738359869377053335984781157099360293433896335641494337171057456518937521890919063263098220855062704019162378238693862319362139146406324959341827442203926496872577828446797431965589387878962072889890217332536665326018401944115398163616493381011283534172185850704807526613463825937115008779672872806493427297893615822649340365150097503515730636175409487906303674602959277452348837069495056898725101840673677470912941544591519019687733642026718409375012770891844173689976343399966669625536796558861496123986719832968261178741765594128639004072956141942961264826895750764116368718526903556838220466093463394811215903382288650045807297910554316411099310275014239752652856626654323793447939128872834683814767511720006543270470678094034835191723218410382805101617402029059802945654108456100185932700328333186575462493801959157001886434904353310030284417499198570586571774443125794780614838871841392824426035364028655705007380584628512615113338635892479830742933898772669130538626312322936490964507665330330824304750034914576500594096060837327224572823847852578102567854565459776278048002560567870013168265085573677933103002835457446677784410521068011583247785006759426062935844711357445340090479121846339525398097753640779781430600161620898856792480791887291486116018520652775986336753416435289993339758817201803988804979193505183456113532146829354757472179877593542197182990597117142352649166553106693391537866199236531133609802246541649961317182733398487646243394269453603054038446218922872177499564544479904041388309335545612285834437388598978339472952284046357808479885771774395275105275434634619295518117470356327036874625467116483569172355978138721382974191555633084052756491074749490180927780307403986719167999677879384971497176740733869146021761358292889621530012170068980618510492053222217320068515000087602255122338363810343905731738063157925816552021117414871954480930808421652245197923127173475205832130894688211653721897053216082758906990180021183249411430769697088600178959284370346516599458783958626399513289070191187062559630219605993943933870566045655659508940039287368422556732034547671117638819060991017424224004619573215971523474143310210082367237538208416149470618298926416956373633598402846686651018952944846849725856273007553026444024625419997375037648033505943828831963078586744805258504921321137510185921932544329298434421849817794092590627661729488499368714506052762720820952451812432805518659454869363490313110721658516808693202838516807197039871391036061009969712091044194645591223125009260383829091179503544696362635005032672190625965291853871461489491284137216069566123847656803163163890093603083060010317215889644197271180441014306816478119934692963399202528392009266555175419427905404804857514880161921948987890868850393197339023768684979181590717893091724493224181182646973442343476615322096329033488682928028892541094535082319526638180788057715143273907759604671601039475619945635143326266054834362247921253763482959900313627400778833017952369231704953746779902869966257056260089679040600216496473358614554806908476314380355964834992323271889013289897233765081206944513103093183567630236667861935840216220396334486354690158274917618134383001005910409739575802564075432952004870685635149791289888000327195622242900054243814378724680013154030183090432079921421068548276616289813769527396418097346025124842691727477436604166228580025135827911732534587170975941166953914611145161179378820315950124952776310035881861735841990604763028210046633531156712477204084521770605817902149682257357932864643578209541795599886337254317269072370207563759554621858333839458212065318447886153805093018057695286702056014026404176564395324873457147472690415973655875020362942266764819725200639458817918920164356037042264536985556090087081705407438109619383534932366348677659983797003452136608156192993884613334659685757572150686645101739179953237520260682227022239063371166988775587877871947982817858064117009539634943847254689476985331775382829350492574857994372818088919108948989052873781934018798452984230388392473218216648523034086402944139324025752040694865964318227339909399443552918725831730967313837842223369100535601044209184378474241209085042590015284187964967935059804804179055383607604183718162764742105236860012648449156139198290378524423096127022875275568225525140626611487059371876313551939569536462157652606467989102370412547054582616264842621415798412716639695447593370821674613544272939221179600614993462514481876800088967924778357726400190551772443947003586519300045471872776926631903985180787120188050419161291024685645831201705880563969340300019531861456704241320305681642689374897713221317635428721581880182278322526621380452879043246816592044049743780113025102506238248965984943604320038677455754431464831797622513792483596422135358066241026093310093354733586058421597507633688631975439756274191981884405988217345125762696195930375808384627814717478715041077441615131850301932139700499648629761043435599131949032143827296778814618558251698916910864782658676275195755178404212178386406640747157544575636204420387784355268899301481676164017081074548248531492170027703730419439797925156924233168130452191674237790863143537545465698371145849675573242263699323737123858780483694454132540111368374774513530760066835780836363249190032950824807925815415141265957748880237105738953217001164515391521015079440413383304718088253105089579528573342806755788485917834084044396425958787868710727480843466268853187685231124438757151901059796626369036317182672910318865961507612843931971585490765595113060839273594849215775150178248141228975602612577454188500596337423664920001289104479523418646934368002245905274733822533032037792556380117727578904674984522342124702417415588457902053820288692826291797902761516657460261937339267629874486469666918932689327657901891979188597180378894094955850588919557028562970655966529163638359481122177439243139743690611607955122583829890141349646174818601723324432443795054646627684463373462756695271316411708327512268796714818106630387815246017136102142084275412585870373884236996671538461039561017275020904481178441934782360617582445267179504475763411026604018990819311823537823147285479314001913168556909493266389724938343614552134420247991831666066998494400502685001303067543218884748832942577957277814479819864310059333100473633820506012687776177111378572010303183001321400133497485210636666558195963707104675487054360517699686745339448424586111277197577906012218414016174563569259493816792837773126551167360620445929784509745894113033154250832910315757745362935137788625410857736644379044918073370823257248951390733176213524602333087655530185901227037235912030516110399952396173433652131886276256697877613852884789195660665162053124487504314110951857793536467636695096108693772278266926766421669490038377265102505189999393591176789408370400101187015475754695719525562257888467049405445655771553011985733302119461282932202041793463822543736114812091985802616134585309599928251587118509787335220849246607686543456689718598641880286270412650081720199123286580884492695564205922688558685932949669444663332671246456814460758224578322225422028427141346618767036587597886510790158364246145979138315688384623453477577600052938678054353476482670609598833433550179831456292907510161496077678628672368714361637126491809356770261136460037914287763149624908524720031790657978045413553840818014957934716612372482531733632899987414084450898816841136123928361195423333166750586249405073673885488134396154761520830237667872242984889619029553982836785286879995554402405964240146156569272121418915106778294903931420587535913434921855208222374766065487803736539250913785364059874732603488297920390901675667557833572537734592669922187594337762014068965424864623686158402495882354892585736230194921408573972042295886905182936295877674120123017523113645022682916364821772629595205958144043757283657483458042944020719033134918082452397869420335953821180779834703187147397276123599808944195234708421783025342614993462369525703817909839427044728516009439807708304556617929968151720117076055400220791976703575616684470709001695929345604697468652596085487605460656053168778076117204179498303840790710955277639196414858916631563768833285809436995705348565829893645445831849205637760514158817160558591011944130496615390859661621721636601410209309577136569572810275975754091392642624952108083022098483984102037666083975376682973276074428680271103635878160684050813525020065666975411024361551326845887121512578426043590716292700264705109305275658795801943155594257669585472448488535722739259641448142409602189819551319898750045255290878786709520461511630436708536971052790875188292036958605718332733594814479326158621272170358984878719716171248638339875917986708916604482061191469166345773512287307147030094276695737682048349030390637470518661491771160407196805120524235054225982523770121115350804624550355225564227242159856729580679469511928935263180155845065511440187384094917433568536955694262615271793272954765238194959366195320591313906492830549725855868683198638272159583605232913859911439997376699813711002751542466244839172558001373077540991626288644171137775510880956900100734878073927250796153495375154937283118418089343545074160049642000772675025597546266147063832449120720042470711991668649619229928941936862244169219847733460925640129198896150157737357426055909425208232042471471431282801287258743514651431845291605810896039828249679904405894531659145349370984032159009583675866959974956551065871912557791629062208197458842092764874655318414291502616067286618760739713091172628380498464557698067762902758459489712699031418455418056465980177485619011003115584978782598399686969792613015369860654416010019519869675673042676119743506572514001483414203291250366106618576001219231299439677677723288379791090382314235153604174070294575527186646773199744285949489436275073601716428059017862996530022191289956985032065458151774721049187495801607761826684188020781402593889687992500390021502245365946016607216465870602616293740047446636193598175292283628970993755819504989758520501594204616703239465658979267757655939906193578697463092975399235129713781075690384692411346455164819125751369300728592968825806175605196161617409307432700265069106206104507675863287650079739352824247274564939217688736120247154067292124741751197787586854019191512876390789055403233719947348699717474331217912233799325015905185117471737790537607891067791718442150255402225761238932297504924103008983762266218284442682788523214962934531316169622045910012713720430850083506875568418659550691610353541588471599233933069177015492775670136285574453192531943604190943900098071074540422709132704673947161358479030867532813848521873147801576041315427741324663042499617380972965465092887073268873789018460784206158908456866947487898088002115550850031353205318920837467022696088874735409985594359971174828008538063063699945233601390893852413423793057317964676483959512496443283364976911717929911087223239451942033705921400702677295891891235761337250581767341713493722798361067176894122494878367627003378253239383252083622038909103315585375027639527101833039770015799065220671275144106855292459775005242998323775142615202622830367172450757431323371164694411802472564135508689798862762300746839504037271561907914304109482788400247966100597069607449120853763406991543757089342891269832892753485191246145194172731892636003723288569469540513827581231422755127335140576078859713098877988526826556694683529894106461332075620590407136640239910533621673659839694247662886797350074045555440058655716350650384572852153163166426540591245377058101559030186827799497246260889651199652821764055560853535880951460165447230481407808913710329482609682444171687203194088803637224915818773316375651410244379309661997304260534564166811400199464340169736219309674967397983307406035045420419815106545425552423593797933270220032557961434604638744466134401409933995786537392373533378672997049992577951200865662745767494742649038106800437736544814608559639630883519362486341124258998008761290687676958604999015842100558287519371002452804478201929817781451179146135567424050280107763430892851792974069438993555325570605846994775001095600828624311979369630644727128585154326658078010712981877026189912698166241949232074833396461535203749181039540074620797305733033990878790903719599359900770952146862516681198893602021386934458119745952260667608502114971311507149603151992265685232064319896090275820824665224520579295075856993383866845972163506228054982212933744786869872487070104739549408726123550084810497938769535495813126943005508092843138247058832690603122218280599601434385463049446866293237318302313747341874676502852589714807371967591863622412964893910441507662236898088398136239505804228124492295796751438908593527615030131050747231200627271529358011459715154022438142746751707501712241569116588700121919619623199615217702327611174316760860855696165017931149909428297216946871634488487963813596852811420649102823921341929129713689481756456916838992002336642132231440091551149054956285859630834441304569410497543582917407459957185214031817073855197993226153238909383868798495838496632016818251301703183233379202589814043846319026619257634392482572582225904878710140774834422648228000013945799078284160249067372233723782430573338853938223221857374823748903620435671638262861949593853358379521108722923439194157231471467713282913227969313320107548778739672517886891995813066280248821069879430198139908454501027703932488818746565421382392772043674015282472710362503755834379649438684285016780605972721028740654127116669842184009357892876102558672843905067501511784333313770742485520779688308000612006047171933283204380912602234407351647150431075505677980077700711048890188143651464150391532673057537802229488634666309440123107796909318480836377539253452955094483832571001346075533815464056333602724465136824110800848394078847973974908042783053143847568169307755320604062040669612894718483667608648765410750943213223680036083929874752115085627960435162966717043689118283492980507989098269079155507944346481494912337285329864240256616648193498417921398358477721013606061049304771981502028841848701490285877073269256909888917027472070124462477719333573749461672846522341636879905892840545437428900430215672145844771922182644955430630064390465356456425016202638876062038097947969172865639774039341980274059015538903233104864722429600799685956045651836294888790702091869453170824216408405398671525575789790901847996476313556621257440129569595859639541262908745993575488407560783052654805296178393373714655605702208645193778477342046518469898324111469290382164104402825838780973828741573645143323600513443056504476646307407077716484146738148295613083611798642038444138475651001412862193192496592091798744271316769858508700523392783432911272581532793895616465252623787499035200017810255149124239917107105593705507205602318579461658289953640283842865636972460345987360221649608974472524874334643728217003476031968524613811565608331099069238884537930723367984507009051113451135155190055795690869422146630128429535964868522494002315832073399664704946800435539130159560428262766542788859428319370465089857858657542592702172864925827661388234640749905091892452630579061578649068156420420859639296353912812732099440125994398885021625385635224472834978794616427744070980488541235923034607705111804417412818678634437209667983835049441286654582268760671168167268746474957321632109004174692236849148793227686639367215280476996099555889993344015106982512836921126962308018870001985087522031767119657715449586924297759447024828382022020443339507026360302141128426559585956345266057674519116266540225427411958686111394566711011978842345398836192148473256713937068885162105823884749100584444466396733751783688854550598753071213240155432742933066775099914335130803057231561251065532360944494554649670532864714884388851863239350850469015218349528480224235496063843411794933256418742761285135181083428806619733602178101560343263318428129450314553827355378332451049114474766231581672953945010333639944079180830935871925752050229208735509151725032439263461940571819872135830998024705874105970221640935976933203250073214894304531277034414821508143503904940149515838662369969044398733622235717216499413933802682540557966990811788558119828207370199884329579648974971978974580355630459701375784879570246077626893720374328689069061511477112146482379203565603744413108541052341528314520282234031730357657748636629053492659540014152664756824286607038183024275623772691118439729344767630500095931220186320539395792434544572292807354203743326846379781654767346121302689826201635894480673733341586811641184208340492346269008084081333539220239941328824078633900666494847669271158080304642400084892587242525156853687789014979087402017066620888837448576534287452928798483790933843908470249870781351127583253566467953335352912051328594965679107470523725564390764993362730721038697342056313707592238736780656212182031961722583723998564793934910093675872075367172056121125910792689076316935467988421389926211952790230386253360471582969686770607564877491554507441660402118857531065668468723149365754298130155065376377907949894693229589166804683759711673930782030996164648062033382981306960844342495042858423739806041617510152520042554459413244036907108637326497850389905777194609836599900191263070942728670778504740239897155314404063278118209388674551059190624866615255059326210146360016685477028831820673971734903823579349832365838234814050667559738346133699479212485406574108542638174877712762485093634206547558277106011947374491332628430070488720711724215488104003561367523995796987709762107803111707891930492890115878836701887070302123835323804079058335158520493578995414844967735916550164827790191245621239054555408027517214078177882687564965825598953256441727059044560944559974776431749457091342388556805195257445665486564628101574689005309901655239572756151507220489350941323718692789384722236140723401438782038580723450362246648830034121942455750843593963540243200425468142834003425403887348592798311226666460886034173087682653108683673763738078023530975071868844324783580889176971056585376632374729369109721451188065632587036411813604097053901005226086754582108441921989477173574389335770138700637993732661676273623928677555913460295722032023106375843431635970022454247386610065440996739026631486182061939910866248041167867606708543368575612432304900766912210333226071625326919614300350610695637383834607340194225122660491494555277338817701921223248003381412561975063805070871170589996637038056112097023600231446316247017921374735914186296214655834462473527172245796682721488048729634656711755197714102135223035501732777120323285857773192289418735171760691995418535460668977432300022952449232903029351884536195177377825814077959822758754040551596324474819689157564212358272834750043127325422691801186338971429933159881776136883967742500108599401292609678260119800619073546858159150771281056006295136364996339747511500077629852551519265384812718303367957541868462625391153250458354408069477528532809787199313494532456414737516563015503440767351903396663858871111613391875472061035390242855844531585556938020465166742967878488953477287964362212990141606381079003552095962295404780146353021323825436238154223566587936589791765004163279661780139679546080649932468091787640895287238480852248931019111891051956742754351988912852838602911562621207145719808571884925248643972504968163868166944360195081878012366328812979587842744316224564657483952798129470464046127091927189560681407166843027847270734767927697309657058170782738667300567570561643420083333755056153194598057284559825069146304247641662038273054562039665827848059237210635791547420061042567993231379979993843617454008921603290118012888473538536961915270573477894348125953872180208548194662881913687951425714319623347030297951123244332133983637223867041224047483353787923134414987126881186372075994772391634284274941108627020211152098190141823094783230860940825151376514079017755252398958197562882515897229695339186325486272301849184773725925876442500811052140961027423883960148675866962003515281253382428743319296234181322313253610484467629714191665113879923684213739531354428938570432191541380773535349638336933881640794159952489309624276007594263071081163277595734788814422985936837409662342918916955391936711386020875636314913246007209942287291273257744616400885506871830180355862080256843499803397676436622195469255487093828158353046096425891951027827285808619148079348947145712360424377060167225866902687185850666284899902689154623403939441988641995485673468934203490043861085323082041644600471086667006024487760405450261395896437072904896395882796606473681092517589008959142456518504135836719030052848861807078937599591561694524706619323914036544305567776005066053195657825905630063678578762179152608079978412578953592231235864056663393240595591669194335223144440718912049767021654507026890147635380236379854522559198651730586226472479111945754170323768452493391209990490531984033958084175084582979080395253465147069528958663779549568715121377076565313677945782344928958405423233799983947988966498775571842997165323832304974487554170013849896084673658726814941735726693003341683813209427477807053614929861064966548633481291812792069823363593686298224674616723307955558487138178745948469354535984548552457996314050428258884153461074379674154275629005746600296047064936088149519341076892930256413450856612113657904798545008680926999384996072333144739401342672588479813158735149951928050838073249129093526458385111136057659334542898632184134525729227577247947686324782492889662431381606516113719789762226676452516034399627603820712928255406274925671009099681546168864325409543050429421674048529940248150927127737494511984709134111129645780637227839248802512029676627799012784845385080580296229182043879373020768640424846286232920569142552220836448191615787852572022019294123904329833271595759853276283536426045580875043361347770932248951844056343524727437048409927757856037060005418650791452866062841510981848554357069504929150357458434075061852898604231383115156799760614212763822476605963770873465841572365602386451785133612558972477601219800421632819881498088708680922638518635807147073798178651308274502389152213102934076620781508402805416251461592343816663963314282602353158138494732494881906807161702231101090029652590006396235179173104622197729228633957785209650598751606366106863505429021868785877571845577378566021795449984206577940015427692689538806154443070673619212011734586927628566415048576738066525831599884281517433377629081178783259398958521033937835915243883691718416549397185231159071519274489106157224826363507275722988928807228613967573495107429471200130592028226436009761350008710600756400458932344525284107863375093381392438553030402220573994691500574653481329668081580464969532683200123433727833098311795370857407922976798228777551930199473071455868005908253993200549654534409225775895744611460790053381737921178448221762930265763546876392114366515509203329154068706022315922123203694947608654522954894432424459690424385193530197219129966818438374088298864768139849704757707349674160045719685682407870898398101312969179966583748245849909608890984464826347949682238214086692648416324258806265390729809391218998278230567095442583877972344240911856674622798946154627958388278888046880611386197178211567419104466320281731729819891445740282130184764928453633749923620225549634146565943740496855512175434644636275158301093602626223885871753262867591467976614799646634749763988036341776015649689597761811586873082654548977577577468035721192099290114060472600258729419806474966867532707415872350608080066154341525882044560709966081051630399547436108825107324268371990297742054545319797972116277351364518864414203231815163477923939199795330841177965710815489090904535283296000448102085210822147812037543318918489562803115211377662781154948500331586676491542508116410070975680242572468888869268802747601768358609218918625415619434135707522248749647234527266189243096735823268662777924514922448063193485688900850148516881406038365500107395138910690058569535534751494918002905963052949379679936002068780923273773066293654913859469792033533634053302838915005951687111157077934444594288406093029817969541982736255066846069410685049166679318067042512488594884097058250208531337286986981061817857684098776436812930142018996968282375457014474445187936475041303324315322221167275253920509845001119886306803819130242658710380464575487875649704531270796138217142222866081936320161703734666762923648936450428102678010959055655243192338437840021122447807273319126988728949919156222461780728242992147361655658152511755273126000932764211712559017187756490963115730337146976352232573180597338320383323468766054112095121967698920920661376834521858667729884967417239855503564373796720991837705985937152460559672004436844806542225025792781100145034803402167833632290803668283718775575798220294186074385222518097345257592229510351465831610271626334910980487501708223572455052965528211238869815367101521376225432316843507134661304762366321944246940628873765802975797459520566202120634825173630676389319002816235515810713746043421225298139281102334062899778354434220010661220028657299124661509948377710890521619652511578219115938889715682087160158990246441367450186105367156873209667500778915046094904028460666927341549061244750187281066529635957611624607159850361364187165840961414392453937476707241549922967056854189842633867231608513963384302259486209875345559425229241051431127566784569268993898597508725053747751152689298883672543029293630692912324793815307062819642182375616609108714866902166486076371686593307654078602722817400210462702658070062525103844161912460029650705658138103270243360872680429693475302984430991053892232311545756749313110681410473448774149547386853892081589840662357849224675620116560365067617123788225993543532340415431343393693788842363742440511920289113934122565307107965266483656581422413877736211556807792507477880139528843086913427945546568849862607778903554969793608154868204200292144411853170230998512084988185567504861455158058609731410069113946179011148809935964981104443990841067701240236046620669378058048960169276954232012871861060394740494400164576886861628054692119668849977561313405207040546294081835739206558763339414462061619879197824200457184262555618405448595672507598329756918795303468397945195469462432014640132663340957149614125181056521195243693453147456066315789120612145760402203298971048631714160002875530074255372948912889086960373367104822637384558273538028768877514168103688431377859825104269348036221762539204344679336780581844011384824038668613208676723942985758829934192283372049635649319253092542709045738898821825218014899881472084088162385163087636496106430942401308531126135105491339024000123657858057916273056229575358257779944137483421793474802119547562460499050129935453694333584677780741604632739512516756351624702964626297378770592525105702609694143347998695062059311891432021524848216758908247832785457263246096617751113788777721138778269761612251971183404405433415236221141071133704331522974397738488124594357992178022616087433209158965226627489121300933695316501686916711331905548720524631403303056390149212680219563283411444414826133452030483013878944375411972731348573065195050394583482446409078660412464710013787818310123853722427485409765847263299970444620320777629845574953466812335845832179565463427664959108981075628285606477884006080501211286558161714729649339394925071965756175254370558259049577806084074953619504438763907140892213635806973022429568960240226163510238480744249363185190129002706477725760560855808002724955396393672165516239513535091590148725577384239680682682988777404161885089196344370719275050370433938810445505469194770278452437184400417512220329247031114423836269682578738079778981176210188531436351715662365913261744714251524403711833949172603375327453122409296165129433736280933127152905427523411120718520815003387836927903445891271526747782160737873660679761927688756168475275156150638654463600117863022556966659711653372215856004888273766843809950669680061423515194807832469690894868015984984202662683562638224483579289306144902004867642309417619865534298959142998529978936737040615327637130290951855937656495920269138553571544030819157375828583537939013992755793885613191827977262730916736535696726380086328399761765201573780271638919949245125816329781054600578429980789124459495597230781190632807060106722412740950048627926222228764778324518218546131179147878256545118057874681474621515619273425157786344644207755618456813188867341420340478451233837840239474212013334721297516115088889288322187942538637108349774738218112219731634616855254715501864346663626146231601051185134511262541088650409345705638545252688118931935014180795678895112368660858432005972004792362526523026007360198261679911919462127540414045693720312683701490855928729024022846666999766462208718695023015308448374363686499040399772401619951215037115194405748264878710010484934472437310421654024561776406503175206624711734040119017786041770240903757401603972353156261053202362325825322313935396692449477322865734708884764825479915864982500904701945102242228739897428359230764078231276053603864299477494131748811345688605921791962385229454282208562783024440473394371328365918776258268244991501241763072446249885747736059654087168755626069905429367283412629826161267678024373880214903441862737098497418628956596794410469127668415467697868688611300536647339242333857467340685218216465585666472824835960469890204162737512093487231829668619387925916470839763811891320258671080834014113050589733931591732209083443514174193249138424437413870379579235972719137255134725463000226964364285237339167497965195945471818452261340687085173037645747442644668286621701081457119456044217541206667225799494968039510028331347297782994435305820217417098019351813982810711397847637795895037009315841966012919131151825345009299152833018175581998788522830275984097326116720234567380143457360375265359215404803817286682943877304280181175844435609894502646443572501125680787631180322673626392515165068846363701018692701514816316897995466616380521141757412764607930037537443017705270310158435683408922931686219409436089252514281516301274499963987486603731052045921864038261360887285786248870441178284805561854070916699515788931581557469818074301576637514762813619402881539843403785477434659701422329471776004203874117055897902855794189444638752762456819163774809788047589109984636659311954597066768831524243199976966176957309274010659980712196900326736376965124408948121150737540758907495159151585167529555957950240667503088540417995469291152147680679503573071834454617729301942701428363138248910031421334718092472717441119662222564996694385021046058432877205068706333237558300194208008614294389170230844327006648734941951357546842266405093470971745904448917818701109664082362110844974226874217472945711783591522953314145622424786733559831755823841696736103809582181303363191755816700983890912682672617166650122122220917250963751885886366726579834503194657525831751804697144516844377353751531410286248839066505506723366029950672722556308086521731095937971383674220204627546903043950046936040861855512319119403810555825505470084470163398485379492521326246329807513547926330125478409630813403115057482817712059481279243873972238447206522691851119157076295481656057004687968973815204785827044289626303148593051422907497282670437721903162930260077686502946649070486132378168706961720221941522033679288464516823570910220470011136639152521317970248280489655858226808710638083934419212970705452621914653066487251271418409830247144560799344612271007352382581829109622563827194017662474292027849786307383411047677387063845317473509063724092302513071478634971738558597834136128752340185292278213680402050511926850081503513894309717178632094854841296592077423400856161193822446913153726356800671908630006432883535670982163818640218579563172370785806138121350721037850594871285020562374881861802415504830881164425513688494868364409329281552632898111299784228084381884528562525400026479407952109132296542128661110056487090058286410898011532338040206742332343784519679731180323352085760108912059328708557238770636258415615695767339407196975060091351694634059268444135059285783011613713454517776642455644901072234296413813182021551584584196988691325963589917663005911133506462991274241091994909170674785858329646010788709917091262991059674382250554220448178701513061370780551784618211908480337351557585198542973758315578633958470659352171888955191253942029828180812656555810829383675108597041589824555385690044864660729280554669162344128030016267557626686409729204343094085118038216711108474362907200354318299647930488101459588650239890792263241690854193506408905468070746895270252231996362214759481302445234154838843319139249417348512105076938609108898500153268895168336446326460347874739347935355902502691938253261497236266249473007694132769920105975050711157206410731059993691978502528527586291406311718421886258433938971451072844730339652753845338310219842755066825033633522628711214358771987751962504703177824762828310268602725132590539911857157942735838515028775074044247560288399791159619828288480787020810102576138738672700334706798874967633093380441079435232408890028938001888222300473128484700825375663663557928344939567354711265474894512575823132507110094040712226045619731686040351764978280903506530441926019291616408526866017375526159724865168048395741742371009537539087234800739540834656472685956506214658795971573446763682154154833300926827705511223164134963365777433461181211759041538624320007429521093647686237122631321330199257655082303506210690673811587988099803007766281327996570134121606014008388810239906047248408801963319848416919992857095940499145990739878320817097031887528319807120562643625771530004891181044506055171636624426493262826730909078234819368737362888735893758258102907077810918036217860596523023464266126560989944806082481586041089852395729820439324585927932294172629195628697830716434897617151536847052730096766052932457781614099411655366264047355630507155453802824854139340242304509828768356464559952477995678516348790078848159052319110080130341128679767556846651906790435239187040804043832658878187722046966503722081396461266653455616369104194616095550509472132846298370519227119080721354485466887669310329461513991795506473371458865285203130022918123964659007555643600158639224831240670538760258702914120485304763593055138422204509388623861620796294021650557635199581744164530020408372648516549099790369466616315130760828295961530823014334343207367821785928683487827231907028701474235131103048753705438313371052096364035911817382719936853680719339003188342420887873619652854809339905153583393075554667120643686289108891756708363583539763694013798559745751519516511495446231170507366550031566080505750946586905738904939579145024715904698742489066673775322633814369192907778458250114675496315615118278437517907124982121801535554148373280592049465775396710778116139109637126060749650611678036097157204391739927673115168284080240137608344827691744624004696354670798175256462552779772440531333343137357087365791381044075336530480933542117944494016452076961830100634610103253476279420648216345586603662672707148996863896088264390744116831725618434102053167951267130057382023156577211425001419915891116872484236287279289422969203974996452077421812381590123918782183829413400027654368189853071749411460943820429746808543618242495828790024115849906053289412941674817583404950003886141760754883132870264744176440627385884749507002961844845594502930984845529598726838901437073758568870221309017550254879296212238541838823456549109442569523984885774494797089290355990688802674834498928015697316033533523597712955904349140048633552271580698112481230795363456314759890580852387380069044843331162480773866798114211538726444299079307596845473026849354612698163224218328328384181622734840672928703741467641034936769859909546199169377444467092989127778058159004354357900455676499498040317940458505095122914777903600518981355229378423274382815612183722371307961506825215123197215993234442750456960962816247339174804517405322760231536376918305864887914895454268959340056947177409514869460658848508072216368734817288812766960037597388738295495634860133720339325764683251309165891627831854388208781970269232789970936905233506663942773401661684206218828714006636588508051784286671038247964559706529396895508930718007008924830539736797728432241479204419527096080174181597541629468980732862687498631618601316780614826178113823032252492011389648216980565569631016551511266907496084401892420532211961687840990488261815895393441583564616606613731238609476004261029596632661351353394539050266292871762831220894968672740593186417960737869847085680732383681658772763145681763976242363061349021115836868968021892464556208493828598143817786453276320919761194656136895421968267725418291643456760323579001141449507069336603137300762026720803014119026908181796172347267413878200527428580634845559126250713776650313312292354523031655988851480017724580418191757311481477061525260367610109718141109441255540487803500200114561206990719292101904927619316247586839016349867614030402826686199203692037612482982532417693850945172273624511135432046996184223215045444635402219656207223685618100580127987759380202464175670299205766346625061233705683296299063920603064563722216613993349199311249889419512291517272081044195625882682950548652201012434863358400382443382379545990332323797002452498587210406170322312252300585675105050269605766110672510685201371337056149869559425854821017598114380763343586523553893907944878300158866165915588951559769412628596093013231659128643618125831433109403996843893097707825097860796040412283266190231874150799352539214995704393349161539829738849786449670534123767329418573217147530586764537768231741469006428979255257902194576346464499930361131077892068390857848104543864680960560652555494452765721655812709367326868484392550104231875840376849032316757704118490729717813812371820782950509665173933576030064699979766754713789207145577046364491317829268339597102203497643231192275375393512107983838327568212006568108693352954267436953540644947743863357922077265797635551404135290171633827785391970436887157069373368611403670574592013814468653950498973801114900546319837150312545212831936605369098169394892554980025382422782844529864867119185972959325120380666673653318847208865788118271810458897977931301895923493464461150888453057653180586745919463204719617030071461707309137029224714644776476839053865926101270064138351002028644009722520508348237119473315705516095280237266784719161795828314710758849270166168489348535246349555640013396251571824971872344479759229892172209141631992318776132157594056775118419649574646623461194565416174808875308954659922373064239707337224546314405582177810448421192119465444864145471048190530647662903926952203311571160868965473710479647404800858917543525448358963512620799863808348623966164772217887528413301105293032525577758475585381962887078929255725077942841960913458246789938634566764869981523394768301625997472185289260894686045249842624016993251611678310507915448421304828093054562230484318023297615245986205998931360526752367009121423762277247857050026214545542175775843772682297273144745827220973417823146397512797109978652490647088432480454658084071549368430580032355620597108686246888800455264379671692706128589289377579892259326330326087979882752829122425986963862776427733712100741982827323661295625623979848886171050039568562439447741146769938239515288240427142155920384134183138533849562082723934961341994041727019058085499382172752553638616995452819068023291881433817346762095282925814925289026853355286512684187284103427203876784174763763265896980869776589185296089748957076991642756181969562349759024140112945324408573366466168202465986468960726150104762235174966019841969158343459984752157792246624038016920039742734690256620147978098825635876399694803472834209046637163078993116062226375491792487095900997029846756961883666417135769714128334476353681907411158653129755502919498752278919347245584057645677551047662616615134061396654136766354429976424951935588659073095465659027656732285235390797322276091355311820806702225245317308868228212601989532362792204675403920228512139903077753166864031857517300552761000142143916306279955109922777064442783923300239969640238968782253356481286860971063510389449698993831064337194790267462768072910863481424142953803404384416648446968506453377562465590045914828142718051870977032264976667676683713206290276557558282960675087878509273542198581741770326237136657753020092740595100238424025650473644619089362814902873172489536806695130130400495932258832343099222880225079554508837446067337467363565093661375588847336230106214090273232024684656632659084584827885182099626469416374652911172040917928495919203881360256456169015626052695352856659664872521004831170320454099176469324583055490059812325174150012473763624066222805940504594773787629687384189000702214415171243087105924778669548055888761713195434056218461388545180341369107228761841618090302154717789342290732245136679360973941152163378939016544292399116149383789915286086683828809485022869716421405204106905879924874270521743386443560940443286881431969026060704103374203208178403362396400362842542588676821853127491997012130757336211355212749883446534407401907098910308713365457134214184457821561641578779087850775207787130794222356676448845437085495230616442477093936811369068464633121493602989120816832717211912646256267119515210475158323665019140818325696843116991129071161115788311248620965858396509304952793671220539275698492290928106316135092270236808256354819690058957901400293978324260313885822648865408720641276215444518268194569641204762048848677172910157920975206533491974125074686421820583168245464838639748882469541136315469116865024692297391221128161089508664705033885430036782275183426322160709190146146359057005765390667491526577063019333474801104152532655511404193789331640457722008366835505453349139480341513312029253393497608899635358314914837501669404935073853582815771633690140782776014652107522501044915870593822956322757252530342515330463348501859354092039226015789960399264295168549102552422519358986868462425735002316051319580468931796713163442921983108466405946060959857845424562913632026273700150492093989407285387966588631764005489872884397295399507898429121384430375094923707714545269840839495620008920428979094107856879552029363698805888665317165827773608751345578062600927135839510235079888489467150676859425440058496110177623510355762662009430815869125119771257385660233610258098018326989493403004600992012978324909819336263274423238481253424841736414940749416476831678674400127975120417834901545486113811459989704911221078636451353992997610552954447350684098789421761022310730059123636682003924595561002592697637615639904408684140145264216949527918803050122299355455647437336524620810226322009709992945425555626832280976397513361262006980849964900974101610831552450328053480988993648158864883038377805690300703814226659474968488314766820586337128628624997033920892304752738061540189394998875839896055588821138440239239630995987582011454722135701001869522159756194148315591548117550968644641329719945768947794620698449023263025911447824751826785525367862646390896557248761944408904028343711992182376455728712976767923360180604927447955506538689662678754250789412990117272599780646499998673831482146880151997397596089346141520015220670203963087838188159902751292922502212507551599561660448761682179498028230983269947282394457094542093464161126614681688418046919976448945599281331748863849323334624047547177599380440551853949275807368635536875788684875491633062207632892383397936175908014745381975159135580969162660502837335767717239599550750099386097293369918256982331215886077607879444709876756186803391220839538011735728472576923985680953091187239870731246716982893520164231535571191486370933798408651993461653006400303576815443314095134341599393855532515830752141090664976824541012089854626016202383371394384643050279314265114430382333073570067587602335909225874692116171302529906967940219495712035756726877909427010666839289807442801360573500863524194453861073867628188683225538303101421378224873595983210008894132085712183098705657761968204077408571116777207245846181234039850740782629122454124092828487030660609085395211242355861643822207090279993305255373619675758287178402392202405539592376525861152783847754348235003349292005847877993142015858824997237136616898943003409093235622541580680991551813734888083662301108069237487565515940835604504153478014692946181620566531935952972342691242657971766603213656402323860118967227992292970061763577564765444529812858311534369420937093687526712049450849726526928031391120194868295808317218335410871677552809893125837964842848911124592803153170897719186879027380438694407074448191691909966196783033382297382872291718147629362801077335143086323405563658810355476865279557479871827135437278446916034457872440430638659918793809734605002603619702897479606364096699263701738889202631225000271697849379687407347759754556324133197865523072252737862251440700806396137025732561013852243765336220355433762303376921605910339338616835537652143796435215606288272603167182034142235427870350307223818124991326187309936832655433703439258087716234528608016681662487887656040296899941114869626160009304283244006604338523929188877801945532654207756646619548064658746800051630808756194273629356156801618595631488015013913640487771037037831478662459998521661080166309268198541650498332877091884739290707637425499284171009974306510383647394586290192847049867674001370084620021676084298305202923419969115027740752334872539874229608088688067801037157776530475552166661155091495147269877083801902332080395471961680890004893088780570508299542963957551999741192808774729912216980787636076191348945592349376034461733132009036772724040855406861058526690443525876222300821367699620816340851459475697322117898450440745329602297289531807248418943456938727233629824510748874037884918533243100501432597815210121984077840046181141436957583284091390696832014362960045890000234314543022415490951758383490182334350401485842833804741739188800169429881029795173635592784611702848552375793390316780822941120229953978485749820663217517363592100406747910187976881885225347664716632605332870902653831070733127702699626829844331057360922184485407653716037255795516653530135940438486942016056551406949836712849095788186967350380385805499594492439886144293317471862754533926620355019214814677433376302614619763852988836067668212145341344432619725609765677242860164026753379213892064198296769848658205717640543429248167302874338964541183168467851899537898900768039011205121586478500026872044880698055193970429644779056076449039212270565894833247333769978898608451328179288746501281614247723506038990996185770119320968659619265563351718342028130996074353187426806332937742066228214913931995931695073054487460929725991415869290811197081502223375633952090393193035649983642092311923161115043851346231423047260819145656498061969069600185464093370939469173237146654945204442986111005538903750140497457696581477377503834727527985434416030707839810756964427652982240789905477218755428150173559128786602384522681980086529561928224702465632759147988184514328168107272139798179776974117696204469082215228070555254358024106226356950673661418442062482496920075090233501692194285088638734415086630279962869104252398145532197029005434208172219328532626373478310587335485010548435370219793046417325416529711056463938039579115238726060018133204515132883427286158119320386530800733344290447225836285892704817167067369376865586559152951160750178164776436882664074550284355756060028469040961464644913757337195195887645154943852008880984275472856759142936135433732978296434507331444866901406359557997469026005854503710509750975346331516367410999414267111466518619301971585137662387801397838219248833974056343740702650294902422482793805971607685264173368016261332750540274036282291574145031629356099563555812516025472865316934069340157392456002206460590899603382053412171843390429363900547246264424301114231670893742303795273565681835363074014408241114062389421610038604958661199660812828617987453857551384597949508686679160355560532770740959089779674152622420159375118959096208427119507215412514242370546027575416323931319674819060613954236725229462763868350701797832457690205769878843563255157450094155924793469357511838925087366927832844700736983593564638970994336069515558978552463884205725987143801643783767827423606736303938930739612872481274504816210921489617894005671962295687900102530989034406766278304514305010986019309600451769083284639115242052535784904252160384451096988431738975451548614088648123602406243073838788579232905827124694436819815403199815489487978468849085768168785602983918260466820704637773275384720078903033193645519575915357201489315247023133159407281331186656248212315811221180682804782687197881903417736706796484773293203247227300335389699058632980369725450789309915205227802493847429357974456109013518645770728813016315057938362305094573495685652442612299583916485030806194689664601148503515969689291896644168436261158597456158445059551574693933548931670412150047868378054950916264843600881912338601327351254475000107472382502965522680122215343359444946597697903998326149233581635686636760849952363073692975635920081602170272496945755990351046912021276840457258484844216307375785319046549538516525951016427428776708985955895200864724193483842193212964019420721345836426294898667589993832343864446967820220461133158003941023670470421783988370981726887482773523285372479619357866629906048768067331095259703166896927749872621977335155872156575393818150122383341183768858069409328439309752086949815003580298581153083620812002863588334945150073472325997711819490412936374011057756398293356835817505379842330209406433492312703038977830826395047956927094116604018070777022879227206928703612644398023592257681675481024191853671632251095660330560249455397848445003313338618364145719855374826484059247321146342872584286144515487730304206365109309852655210471167137899803481430852211741156909853201463851621563951496705052235041857736840534996830090956148859517860282121818500183863309375473639166957766454040449225759427293933554197642518118493201612522015194239816676864086780104439665620618983860224101385567734769837577264259586315439171660024802297443618769721132231661579353485187139706017223422485566403719898462548718906518157116911573193689832892513786087514704635338473366830189524062599161908253503519700305280737363886318156574928997626211479702204545060607292189214847402036672937844493208014909312551223695872395143451928804662242699029488574719763459248699109658222420308249561519905355780101025565993100445665028845503505976344613976497043352025827221385989979360769028896281920026998402254380198695885662918383603243795285708815777022184382326508557657228485615555354955894310009204794466818614794617661181667597069534909705657422043248406234718230838735199809562083604193764202761511693380558684085509810172157397665698249506948597894779391575245554788015540568866849138701362433716681165720010525970219015452067849408954688147971613304283567007954553735245619723117223984067006162128622619831775183542909326026360072500751136268940968867274617474661979525024177471166258202276100429122475822125979653585747481278479905278614690090815082869262526837653829314574712933552519418335142138516029005124000565991253292417452374851203392117832219788068348900066130539903595374918373889072857517629430534715134162933156241762890266717826022971397356322207169694151093885546236956796149886592519630824900063174848313717092623295971204370307471278898392583010514759661813269005513762004268568164336325013041117768583177931595085985902775683940041860368492864252711002339900907633754446085952601247677703054488909568672522731130028805826518745926056907502005079930613869854624870359575994545512639982992714621889769487835811731415676900068479004228812005189193118309524606669949648677535119216427202797433479930160061897928701970669098161178560214171001970269602637658761511032799869304240441013326459740411146063512791054574741228670226380536093061496771475382093293086064961233945824718132016712861568425678517987771583189835800573203386317026461507165573600910571738735414568161938960866807291866005192653637973631529097248241886989020331065125795062085935079192637811620617003017638547833078152912541173833330346320389491132220831160918393528767223969142322456742466706667780867888732835083257231017522321105768699178646877513606848073930058826550919266519752126044500355410709449472132465474997980651842384333570422148993798185255832907279522834057897661820458848140273361772704084722217739169578917117453634817797055518023038561515528409592680347950178163491674043433883980706203558323047816661166302204517978392189569785189853498590295617256288611716331480297531836461743053900357310395930871000084653374974202487846983771004581155601506088997041825141927759713103129171346491833581176394083284402906233450387149944089217486910187966805464586901969697999829813892423020498376887613860646749028739660706430533761695889994593514617921515813455360216933575262133323307071212677392487889379616521266152696908976581493548576673005599048491281772531161615824523073386486082655944621756842444967690899878934772671669532799033624146523138402174124912002140865633219602476650744191727314848781686120812321483182090087156582949052652737785250292649242119943037619212142207742468681489544859012441486707544798551451200082728621138124938264237981900837074560054429581363113779157590119097932021265480413258662207722738333748129407005371173999278172096159726150939628727355786880945848497781012359789796227094946695553667081051848460620139070335694749203012599110195173586602614697622755350819530797619677880860990479955284308751453211077608517253886221335907308083158417718302887245407864081192349267492273319500689211362996253335142692258907721649488424667760658647825929171207520314610896383269924084668884886976061416814940056511773946159342839450852364583954787666532180559705116404651301470638285794022456718123095351867961797511656365552981394378765506625123239979834711867431195825132869424366359264850565031012454139708079435657637586959065566353513122094221711143036593594551579451713526201594338116558448695931496468684043368545503999228329596805696282285917018419160934857402878597546225867713567219319614501396366543642043930273451293025369263890623203860440349797057690011765388691935557215783652966921076512592465877890316779688363725326448068649105190909449718423184879493957087412712769642256587060500020989036933981925535535127736476754091905579385150727958446446459573108956811285437102976329015894215364287500648757360752477633520161310485245739554639451352804646131486655893220975151935869468909443793521888581429733833113234739303914912351456537396415241884843820413764536632669219535744948222473365585600861246105136000767839328164183907232776470021881611820448349086155450565761117861985994891816484120906400494466252350255769313511294925828237385104265958696757677143352583709901619253544776521978121413286739083459457302001672705289776194781034254934792473636222973773338335001506222821619816186054432176591417333999018820772359133239507261996564266882667705752184260334197466020967807509326441366451206716741386548068741655002174123355277090842016439835576197788668831140365284934863271845532672477729029046712981917906317932193452654244302055545223802305585860734290065106861543179956312556534912101995481771313111671679339242434874354593382628704112166797478915060674367590388317809139608245813820620269788376397560443356205426676198959498568772086095768636035356107873245386881461866610873231084292802379342337563163282843271479718569845747947507662491067576501196324767448800243480399523831206545473549143676731633406387507629275986993428771094221719995670257554125206753003656575410622417907819627976640119010825250647261943072899967357580397194827232514816784448174992347217622847305682705556603997087935548664778922639254413353295392210068439643505726127955521344478080284198336867089030892240319995455276175475323607214429474286203779762142181572993523418906947617641766948326412365069210359416275414749109021359526761539122029954194199109454347477432678645043045482904442811495556528627767032206656776711017084394667362816652659856841426118306740221794697467796133518317757782458709574244461079118892610204410622889713830915438629340196563483845065733766268804198287773537681218234254674471037546774475577626516295898086003274027853841670707791332631603809821417033850797755951945869485662720454896261664157556255082092515579762496724394848035154049850394679306422525794720626897377129895282793871579555508001622724706176839277478748158520525762763631036928229551272049643986924449559459559906260318541638671631332899336463497079724506671818639915952006491448834392818530542796123466891219722665210095712200520426175014349253617590740039365193042734392081321960431950279615144073559162661621787064838886483987268453485709295812995148636184295131061341440050125542312058123910235036229873319168702533658399939166974347662526325147282593319734351177247328614573933978843423841881586221099564784694466297014703760166684256831093301659445400372796486695452966553868297585918969152891729243605639582575682764047907983274354287916332955832565248838548503544489207254628600730578656747160575256204736413816384204185812421730050479484650625309936984698649746840286259051990633483016488725702416987099490123199037142518244935622600624938351398655128070250947232643763810518105195916786581502553323696415618969851438002731958174010168309395045751989815898299613618645347666502640520536729327251483030765679755465544892660168385499511010080328406041198802573488138336681437986182680394257995867199240032299707906829080181275989083401815155566925674163994668054103941046179925279237668700299256862374162622054739363903561108509680879573729024021578347941817175303401034004046385944891308367133402992368458861240846614827400098951342871829504330866788276688440557145334064957325401008927512282987662861654223696324605596561240476064213033332997581520651366761398168966645093283830095881765621834433795958700918040402125974428052702410515556853847400572415914622351053744405834995813536644370480651347392796522180346176801166463945704110994326772999448972759956653181668524428063287382900643738421419146260011099089579172485316982778952270294035952282919345081677960051590140025648875783755667031732012947055702406691595520128147879368069577848633269296362952309905496643054319465604153268043089775213061561604472542391069314512854015548330855893398660887718136867437009860565490496227058579346751919167732250165926091420630757760314511013301108901988067675705222597831011177792916780226288847297918367497957497575013324583415517116732375201834568225717037324271566223764971974928565316946656990639218043874830261323640323236697607537306697383188114232622612777450450729818244676110426114977928116151613213778028814775233166263029452083895182725129091862612422659879858260668118495882840160682609121337331750299451211983463966556998116703887267731178352646803540088169735410023331206367542762620879203629099846572075510522532815084826428886479889002612800688228064107001244190905636014445956633374737042624625877659954212372188332831953965879560866408612026600178648893172028026943087206565562135861343981591665366264430617873187762454904098467890859062870924264886587543852889092438242407517389303661817727187048995721162658293048517847865734604606808109072901550521551558878725393369255537438218690963225047125082423627607360231790570328214128999256037325131809699881310369562171842759311942922099949148846434141340595104293244832051197552327499010584684215395484622091194970566160789246607167492759565460117479129485596291847467351330692475068892213755870194627405276402935110326510561248845429615394821467912376352548985496148689464675070669099847215056471193173504306770528694360924186548621602558330433548325190026251237567028095034066363431979831121062159988622656886233021615432357734820125391485920246094091478800914835203410349154299421145161197794333842493862731030002405064375936042862211672262456452340774551444945216877284579510384761638616973902812641554248011886559969502059271392303143624283307322252633611999514943844511503917060503224812695261580520782837151916201729425695759415188033142189853261512350638839885376723840997711787612871735749600206606060017635320514281896696386506293887558146983959461685896022610202777498604428825587367929280793390747757679478081606823690142202413418475650973327664599803734917265497462011773502077869927539505514225463021572298309719318437425032097332593460690580573175474708717343893408742941921935380870019257345069365577656598373933584696413028849133439683353568222466769052449462340755683625247216746968660828757913928394031595336796661931165601791931646584113111625319979631454457312766089416511958292573559161487093318830402289995071044968840790292754231442800161790209494502354403381188537278080722372670660940675310480066415304097075455270624912532728080521738445615853264583044009430147964256004432033408410000940059325885367001103978010980774984015147955007892574477992573416575711710087800878404139568858526743604871858501195408547155428743488666424810760685936534821643464094631463215786811654767356622342303821826390678390567369694294085896680049726861830837324182899946503253229633092604813851251516622260460869006933468188465905812667652240905039833393115291290090685560458640807085705857420394363611594936346313148437960608249854489021885918290708551738752057137076506352186409542868912337472723042829939868029505279404557358972952187898713903603468050927593254975272341394678753423670648489193947993145790653077337952803347515178097449928861178356725656841516102069360737110713754282460601750950913428636569216227982599015574989136176962508795632530493544192738190859870396526175680594671691004158569736441066652743383644110439914409208842641229253721141051180366418692560016515885465886451604792068535042778177049960762787535695649486311719670890491338908820405697454736299083930991015480886094165050987999873882428683421496242952455650055171353012775732317152127352150442259338068802415843233592215685255905401258630132749088116712195413749324150239306780337684596969419230751924631079398768923773752167731606834331530912204113887008703205256229086456717115707646187715100191624796194965011736444267160893440314091420556180437004263918673680398523176545042563956192128881847077623329235572596164694263509072418718180704647528076185513048365712046665652520061058938931132448351597759002948627195177818046031992336470222399043536757034238769696050685821546543879480190568927080158351910042465173594012746206092317961508025969538958646384680938818293505839769948664453203247233576514173948050600431059271466373270756763607593667193646072014686615889378159587758487513549320784334596894666558624521453646415373802939145181491631705495472664250051871122854530733126678354882845976134686273732034608915377864202369319517944564462023487999409752941013472351896462779630609552150087851992418478294518069185036768624924125348698460777116218316194954207698913068583088659116762442487924137546525845701002198154107372375146080882373552560462578749492639610381923679212530355752254770470953066894141646441387008000873541168937418853943576194751985540975335062094763834770494922414316174745218831978774762924783494593280182162992559414973770760770094926278412517554119876725393773438521182515634435272799395190843563758138417978161782732406971697720134527303784235875692784585723518924726565239386211819513568253277829957277088618086037050986918353668425907905537929491515246494457758970015120822432921949395327257180857358293571089208208581680692545449304476143470200109110353274681821511678627652205698268301083347814933492951694387477895375576139601851028550895170667577550536319022556569088526025270557777808761622926065710166427306048148209403109113071972810944840006882394152541972549641344864510045960696319259898758752092005452250976246819416233937597577369625095701662891719278199918298049147562639233828830290674899638699856386264887324752212204264522104439702143738075166851308261996474324025069119477899810612421055082641617538143729934257149464960713221076321510551914609789735050109127185642805303835473582946124213261715123756225200216729112356971785780936294422512639628724976164011037775030471438290487227386943630216205626332896428768713527031185177908141885498189480189686671934474496005881152686068939410728872316960581178098336589293159506677976915391125811205503523616600515554699097274672715743314810182966660937729760808531577327085617531160073080955628951780258813470572433072787346350675519909145001316217183756148588639037888966199035433277675646337551353732173327962616861116410407966658194287306052084399835767130299427743125984663529745187090734966825512627801348746532740635118195313307801573418596151982172314968123425755142902394711960720724765595662626147110721312935700236831213965045363154876885549253003641725362901338734277448932522519118600616159681753374169907894985073582152453489932361214963446504895906642447748726656121533749971348552072202749243099117510198049259069336488761966283157454052393765893921032811169116553601882107327897288631447630026346061246263546187059365975656870927520056239645974946357247942824116603231477001431656193709343931004932413280644846333629338313092518950301385612837661820791119720389896397420801930058548264643776291486321096371580152008932211880862294147631554118067563039070613142597778155209922793045917645701498427803104172742073472576794846456630038377534854909641855997961377005305363449814878503327327608107682855088300121022111779515420414904796162982003080435396135913802817874115325996647865173611845459626261697605719635890451970086416757240507573819762119699072172364699926712953685695210401960120033427686229967669729536224393309283359973806651098878514890545256446824523833095599042212776711924925200479225703267568913530083693243412535506547324574142968032840191212686263241502312386337715338501235168188842239730056907573667265044131700292871826691933564325012948863955790670572917719769319730178638782242148756211377520947288209757819351098865272239194267889408464912001414043493172078280095331598843129082133695234410078421275747985892226018422021591736266984101576094055886305324643655010707787685428354957096883375651804999765997385314452454000351351628999319305143970186817578624491658662183444798227461432548253472307026575295771356929732556365105917721315189984694550386102830483550943271894648448503006463483473267635237730344238156565833841208379137977526079911416079263588621742346799423501354378826655023930217190448314435514079357254152159721690366288707461644430951314319307584398068737900276797531262472502842507083321974058958504647509137423598835645665020703547212436159082119472106852632633354104707920624563078962034273135593433247209994599484778346798433152796806414545183630812117631878008528551389637558751276961064327613998551526776910435866278929883304796088513164021949846130779787866888888410138592792594565543985909807915692124069086992855680046622970809159086360241755834633622276862108661079515167762378507990690197478388625929577307422859523931498645223682858109556543475946032429964307155986014044750485005934522976968453545571623062514699175596245145273287664253778517310108301938267192611534297582831516907188504893506670064774424229429583615783424454648346947658660680550145730999946024593518923328871659369839190249706089359052092531726799270873476153248689693453833919800573766958031092025840463244942711538824450475686818858234931792867393812907231775488812271261427531945458375852547402948474981881377310194615203028893358162922342408660685827849830467407640384695582341577246008521643005120557042458438448721518555224085236321262209065957106503772571827509617692936470664618595777548242147588354330638483721036848663154139184747583951424375723750222711983771374465920170556239497805527283406133854205490152242748152841677915248579434507292462935253330709560862961287966399974912382575961744390930818607399664790201395015436246833249356729113539804028690922675143885441461655298294584856329410880163822130687836579911832326020271725616212247743225094215538600977105721032760839936879631064341560376808438898877870533892532930245171240357740157947772397740946526815672954409358888295169684331540693479735841343256853505769572494374965891873103129656209563481440988608485415484068579052640882203529009897746128198674501693984547326654576291678576809756685834446978825028199553870182070189647325414238379880192358605229532727252113449921054612921220711235441801306948558939024067724180787955562749371194282800792139854534881152990285961044999555711153345464878772794003643270952840725106596276213836536149190075385924504880455091458930231276210582135479191283136620075399034165170379145772934351299000595625150832863788693727704190358599321438913551051096520936687817012451365822608043103500951203188895056505662197831931371225726504327077096852872962161377321517703336547496721700942881142862814518289378237339651733505630157534359776108135438803027589716766103599440981780952226141964645684982259821271493520385636916047835391594640434975566008178401076265551692268154839544641306935550614643930924381169322318801943545144407268813931052664635054461596468536639173631906144828739747421749577145025340134151031956046007992452623542612157504481207981465307582501745423873292338929986132678461294805940103287986304163407437043682973896523116471807182741908662799671197881041857801203607253233617495536816292617500097561169589388875361031669305686070263470444621774468206390971024978887633335182626379049923094919773599186425601591829269296683278853062825073034979149257267891980154275240385540181546244859279296895902512317926425126547087777997090461282863184066935908004479750566512541618850934661938662100122123049917422608158152948686345360493684641163239117096300945844871095540610138109424879630463917263991430893290108604717703953165322743364181794812903230200966419344008594554782563358672604921904754501548817007401356419560612332055627382812732950980377404684359083097129035342377922328469940015256493130268514241377443579412951612596811284858814479878603251105878333589754431987964050250940212357148002510935633342454537190394874680075142348609023787759265134495133893017922689341160500387296603279809731111686419294355735357177321332536098202097596276630440995675355502519843424303074619447122765601449816079679585373743955980538254073418732857043508944596477113642627074476262826598662055888134358193382580608310836428855170968293400228215030899999814379226332260716960535713612178149204074265028643678069131969963434877144871800049952804767507857604736220359696228655164294292050766245834296835459626490655976516887650595468238734539434284383805228988527692433906593430905938984785018179905836235981873948455654153681552297488591097958822216244768705572152938895809067699896689931867518224820735382576213491071295189882815760608969940005188793870790336943875264974319910522827091065680996449153223643001719708373578980951506768050569945316929939459350842519182166324396215751800340494618731138492057421170146992258696692062300255823242270366992437148440492686740966441154649650243263707878817614163380758903659579987862748697611658346683021155490958205781389717106938609778579440067324015293517695688093266718432297550042097639525895137871154757211107843336851500062239025262979490018717433267633752529244873783201679655127258398293286200184766055620752619811592944199938127257829468424977529925310981802177916795820646333619785081240246234280068533963417586669453461024277028710054178434975426718978743502962629517700062511786455839197047876841492622915447419908298431444933116254133522296191301534868574192626990789454276201063046131669589941086282583868329618574689223583229004627498697445289311118776097435825400225602218766312688986475312260337680278613371082756352987623135994263100589029349257570256353494175001727613444604983777636834133493064625796764586992435819869560987752512661378678003587799952973278121817014853360817068831407947338827679293455763550651592070742906234535663558937439693300459502988145270767277616787429476884053764196218728488951193207808951629916737374043370535016799519891950691440286552305654222552018964373177516961538777539235577498800670545651969775231307028070721058905130370195830483133976572773541900143851859246021417457013401198783969804311865997211306774287328217011018765964079653608364318134921010397830844135019691508175565627172611410964558981623981620057318806340872769471108590207589132651432793666825831679622978602356637929634023758936773123057168307838941001497437947851180894557296072285268646580660807650495068375524210914915837109681606884338622538848322997268593015404205163375911717191785553542986508090781161856596841068906790195783669027580669107490507186540385891192489535145728611694852978360453850465849971355694232952530667906109705307082105169280362298774482706318173432132324620706594620054149274407111723059676755456644595070779566670323986178644725017820168934076066450182122573086558899600918508708201561464142357277438793497760126996600876343256649744849502323607573665127801365400393748375358309858325735349859760079413075698211472094803476660532978781717290912311132027405854624802702044911361120308105085815379237796882360758692453496715698191896871257254429213743907562540868441690947347641012260202802491069646422886708004609173249440753686342928806672844409899003048405600670381451332071499340764584259475745589480399471076570273489605557258436568730417905389837328694887627865948258701313234701769152943964979290402238151533953521315833747763740522446229397462830097618877200954706932551095471484551669509053804041476712369820607045904162942438288813891731411664256359273816301714204242783039037855397824359185157317958596347812691461094214515254877906113679209087456947913800047359496567581772300809417062287435032668866589183066780292817411904226777348910423384310689238690775694464426830440206160359393701782814666942277001357841075344283809393919773348209080778638280601711294298539275829819660576156218712652307516575772668304438997146226079015486220094155704470317591423654578503919627942597969014729647945079386428599549155781189450097744890000181352533753625296186625738305346950495603042986903139878529229759531474430015583376512038282876469009132430664460301205959970196608899435707329892311976113402903405477367416988373314322717246633659498616816453694873846778429926489127855196518973344313855581094683432682624648942084238452451664950825181185066547655412244431706806681073512865109468778150541124183552787047503983540462667515155614824741600850163550666765516856607680831366604813658681068815821473353506449419614857361537745167942194952285773002776342315973722255730174673226752200929714767652832961912131926932985315020673454928710286879138117770537415439544115504667293130385490773452513883878067682504175576925415636817998282374617533752704037714443714155159798078977684757081593164933440121726500954742009276345931395802611061228905903125772033024927612064913057712934989479339187786019271848577043147072030196025841110694883107518960839328370383661350058202481860136603158458115241144956418625533141551854030314465690854501275494975798110719857200044143581600927672742460558122029514907642915329849608235063003911788164145785261586441961165557044089174063637448419314814991212444039477996004863852507371454229201712512687624179825100445022704743279142575439123485732292438307987384115206591111770517205595739241930299304259572996861977493021458547105217979077719346097383047391855336217503714726952108556790935792380563869167467170240385123367125496289942139890386799383130484148281177591131200308083242035376929549540599629264637006499465897263312298932451074248561789864168748639079436702634977463716355774885740538658533922975597661285169474370614622741896838850279123382110039539448501073394303067285475298223565038711348345657877018288620714933644698813044641745423624151068986296747464468625214150820546543076767553132524990561470887822658492078903132221671344391828905043634941498726076166302549918918879781431516760804766874206457638733764245614588512632509062638098132840347452625801412346824933923974337795740891800516854240328688458862320364916581419229367111030481496355135289428018616690600862590116283334585904926630597070854049720615929349515834681917606487885251130433501135758700774967784644689121276530778479950276686032146695340948055328402218174666343116415181929297472971060571321235272138869560218175744589047268418870991930295342705833844278753911912603428159701759650968676140738991790646656586592707250547425707789070871685765534368722140305314830037034854065143170517506413961309704325421395756766487511496644080568762424171698740348644149734155706675217339295990160828305777217362141179842378731647649814138259566660370383451009002771728639378835079180120280133430262951304417974223494230359253288938957780594170873275858047510143798815830714821281349193232961749250357061092004888366230637176146008926066000689527464340176436845231682525156378986610843075835924354355550913778898692080495408335593727801407531114987935854169342954718798920706188174653472963632421257104319074862857400306027449856871087929432553012716075628489435193501962211515557608537884141049776688700675937276517080654336484522930117197302460393345794015686196263481986563058996253262658244500801831115107248941028052154032551559185134989866064606034050071307712179081595729233484185987149213914039597419992669953496564677602654923112979345513636023701908410597336111957267425144230047332104046957786760534034264561103242311559940099756766683757272098451531511391110755331022681695493914569549694268711916964875982203412138294357606551824109502649700957624968476094587293991375206030429709130433224662821086952975606239641258424320070188852563073355236756554846668017631687046011850676959420770578062134898416519658719759657426000894174713148052388172112765164383677233168215265135200300948695533129542981333930764957717643230362419386812140846776354538630881090537610203190679392958602279307354921574074704555387130507235616023884041578640596997957395208735725390750506565125107302170697145877577507864169738187231481028913968556200251635534909530081983317986672486121841351860231591955740181017658531841285615865065535011849800857267973241212343647875890189561468739270128940982483878904256964621744266333454065695539351895573492702654617505455279550244397440374304992057682118391467235271676545946701753653117919514168393872518375520354072499163870910565909067740305352852360673029046822198616094467217873522337333613332889592897189782387012750566043359129718128478944364087853474984783549927656829982919766692046028069263426104923040933216404991792507599141820774338997814636411687549438397412396623482439067781564300273242542120789627152278089498113942353771402174800676632138707005413814973563421229223477567141047670688120526222793695710898068451558699104036499667151066343020496123682341402079322897183734236733698889585245454911447205314688819504290987041597299069991885810724844579340449737896530252500381613094293901206484660507224786363463706890790638423185672408755767402220815064346437002747950299429917279895934042512699731037148567316511039270725925016886694224059582711986069045834967137165969881149908116731734270261890586875023871742051802255655812475362603070006510535400923432463636871967607636686221392294743418221055939226986132724289807964321301426354415155900217199572492563730268985160923376406255007701811213284958266696447161827917599937371284778744972016828871627810616679276147613379240665977592298087465509248985545330578051779784191126082470339175398399672704015787743448638473562481336264845353462450409604722771027924355693931435954074961543559174608240645411608888065872560219698693192309324056909060432006080164859294950731122255353281316265814894338643110612991066625060925683117075311786281261583051146319864807043154673701664548334103386591029487833017287350497123334388088806956814269078979637434795117836041086516418293156014639086743814719518958053727794267786663925746904176952280477443891323156391480937614823201001101356752352557428062077732765411924846074006671460909246392513490715974831362684723837938567954118108180576533774679712306579968448014412465483270061454571401997382215048047818087682480043694755139902456646180032583364334065989578955093654570310418664976097694978195845558331528861045123709376116870040068511395751817753845478811303812220103421385099245925237909781456812370807998390434802962553946620017390139677918378203757069933960970334214255612780479103265425100014263568785894828885691624464297510054613304420071162885511950812920968857115845912715019817692611565176676951083826807577109421073526006100369306782912975334607184502373316784052828367965521591668645751048065929374869875598468910290774326503168977043085556368756139455988986380497774698701810971164829132145070713519827094423498276945410315187886730243688171171846663001118714216165365934908446705668911332457204960874314636804285452316477988168520988949097939619777913987600613815755805119121062041444314085305235080477725249672380033536619484099521121068063844260351275721047289225001217829470764020601421156180697070788250280810230962666037973284386101032867907679973720270934232867313760002355071416314184368468936246412566979887592133080198191640364993651208232503624812911335311986439123016972582179294091152972453201986633409636474119449835601754920023302930443082179977980422138006127974906823195671052551615226817281981027405167038778763162460242383808497447981203011031198531606136570179925929567999571741886354047351884475800690515297825274448046292639959477141812567671695504365122551605372638017533889957057845490882096792270754265122506860813370100980148990768639887314959848715643698150799231756401684799658473141082990806588969190169089344072696444383996316151274362341584265084232239804857662437529233473257541760343085634663028634789620111088638785898105939210470552706336497801992459108607951965239504856184113438661784489343048949117596194774912401556158442010718370729588023893810228834326125578122190279925128676834033832472523680703464290562873849095542510223423299556173365661044955212657894611454011301063618262621597462039369976067356489001886313585766099783641952075012067403063366993281246101159995128477989222883167369122491099718976413091216357855456705547093751059670607323200315396089355573791936685438070637365168125159651739156021859588162688712088055703385640725004508411977966742218223750369904025832235686957210596919895581563793601591365640703180280903646644588336054221218549900420640187858048542777142526743704957885662550927196019018734647205745318321283228568370597684370845447838565512617691917860896123123360518884179310098022963569376293765440783185684601893440803660793249506837881394598314045325590893002216119528941565328935983423126734437291983115103771843031393965678292039201804686701839018887185948964390822594708567344573479888351821591416336858629841129638003804384053717716808554052601546575473203647736646407108556465063318232336637164391431925133436684521089086600423042836368915784976788081953203189550156162120804484025158723267672302940592903593790570199495183986692089045880138992733391559142771452723126104697320352611619799737154510575794936704247400718745089533581293219661707313585862646943692893529331017897082918400152127487589121227717116444515834038542943351606946053945947564372878373383301601938053735396847555409041458251957926464278936347370255717618375805770016991461100404929374397770969705524194392615005124913973709593827518865630105462212401969039895385161427277974326388417807950962720866862964815709926293587206735646163894932791258284266107244262084148485690264867213906876423793272427502892407032726842783274638141617778019063105222581745481324732742614817586885795371686279586154141352997258161530096120550902828232391300000647343276289866506890389046856334692173604143055754659319297256554634260172530120762227940433171546570564957914228339178145241506556680370272519380176354490403490496952987466084625968367343959225906560983375252638872485656184600286058892102462715054907016994238190978801229153297942326043416052357130565850339224047095381678607071452841682042907532754137333728511496917863746231113612693407867549782328177093635911506689360159909537284156435087972210192557976747430741538593302305695191250046292653783504436342900019137609318019846471055800303754887103018268403816442933113633061664857666177428622314878648415907765180749754673243492080444846189527721494800824925446712392714499706143672327718278825548352765172022348865402091597193028552595137709342763840654807360088460089982108126928544912568434162660178676317023152834217157841577798216240128529234058144693535532140805827372296569801483503157474880196511232665889581942410970028310095460273971108719919268354043870817002297138764296899099323179163898510566455478352256251411841260115809853006419995047589748271797246263797612475012903271246092733987073290882558709045092734462714056621207241782663637549598885807994454193303444531543124167476027021659480907226370360967309103818150037073780273138588517638769108495526460029061890667117072394116725701494815989888188930891618001813453292420287617105192722334788491019905254946961301139249272723936278901118705560338629820425237061276846747675328249957176515343502485432558405466115255287647868802559485471104522081271139393129290312293338777478747580904382308179587969274603601224129138050186764906813177533248415993763308398836532800424691092128287539658478044948422215787789072234150374744926109112689907107680095216836120285692602115791725936197492659884805325123058772063347482038656949556655891317661774128659942761169606550860319267148162086117797924572876671648382906135749172359368451332654540726177234540084074202640500810290871382497261754450230362618871129551213219656681867842279017658436632952422498594424975289075427716864788822229040069608530519482673211539634036798787482992154151977751853675617616553582479558318753505958520331686495325157559546501385250051740027950725615455535285516671223487218658215322264757040204691756089337261023933270094909222391405128322309478798839432351687776475894503590849406861066641059835202040001247140194973457367207670299586388956551205122158155445223759553990428267450282496046689823970369924187125333513206566024926905897499744640400206927714288110178094122753145020178461716970689841096687021584901725355349913825637694893891035529272691606597896216999036562406714063632739840865054850949649002899936024541482205849363160764035452337281637334654987221681277477045631437805393962623012405776445947702448839193675257905095981720756492881103522456081454734072609305537801235690436238050036690288988203654813524683188977174014495423621530812672361061511723733238560233234365703276830151617700061644538616627285951382211869903990443231052199494847785727882917715775418733680317378493876794524202347036140430468816481974158461314100607427271368291639919104572355470499084895877802183035988950013874202318059256462018484270219255161053333115429919074769261015030839520924321794569059129613855475758070940190527046391819938875803242849627935993945391368641311015696465101199680709163495849513662856363709069303820417716250710245830425873506274294925979557178331615560849742999291712327421840780242499898286529376249106968185742749451663882639334298486467940964710851587728520092454854951998548374392671697424810347126554360184195133258866367348526782288294648686651705585359226230877386474535071540779506944645670770443560894999216747327085857717884609389456488996354182832259831149733712901495004517592093007707642815755920753934619421203275138194101642873784512718609030029756050662745580840314956074839865282213334161965143373557951300953126589601409063974185662371443104625999618310491481937475829841155210970918620781751542912180350106752696871263521162057885580036258345353269553973947457658864182076660480768049237764975947589113236743437149709286575512666484177453596897964871418309600156326883387023968619111234713428466630150700387209516420816436357082594668584603780547036306280962880445140240384955215628424636539308855872541181462618735201725916362858843458303602259836811455011913193920268787566224096482883857188830298336769244560294698524355017448344166058938307577116236967774804340657585478323256192684737049513265288635202413069079602648292919552840968304182233135786662080190784557739385925835645156925395315386626535717335873084294621564936455162478829848818635424187733775243311265570217896998271077128298662968567478599820446393835279227431569707920824202913717498400161846090573495246876388071774879955350497710186129958349849847178627731348572351627679503970816893799012728886622761267884369170690000744391871376290302929704325687759786731424434867180923507965872679045884255450272684339457915136860235011505512890824460888800347587270697324530592979824407896651755445327109335801732424194003550412934767085577612201139166229892457192006936241116195687955106207468599782784930376104999353568603996520697746872719333923445422729278814406055540675969406022611291696922253367850772792657196066953953495485988925990006579591782003467513186802966661418574347943000038894746520660669516003316910671710554117261589426215715933217074891120446366075399893762504632811677427740631372611226378864048838402738224236438147463616354260739311797320154598497278944746507898661159494523681618566619251017022721288559803867563096930939570357849413976589879130026993976807009435537899740842660813576392984000917393776929696116004658016844854787739303942559267749012869633449706433510175045797340963200953747856040159967931377144111430931264190849136811983856843701604297234290551988851726631812541904915767432809292999984793920480080943836859889763492790686235653804406372754541168685418177415489523810307803427514215185965668374915455295013801001609181485959500768502724703736361621639184438011357840001054152746534396272360604304911954256829419225880214655692353929613506856945861489273980339063659751889517559686944118339281265356476823067820975249477100164061761264475045102371589593642020541473686013821992536124483434142586133836141000107517710066988031810363540126594336639722526095117760246992169358082592008086528099121919738728124838317964544059077919893162922469347913609772665937893881210569978732472441284904788829003890392070568875407256439945291153693885629470292237220811308082498843103439479311930401894838863544807571797962185346180179885887668364999125199529886490569393954394392245256655573434035761059798719877576943419158044625113852652450648884385670301954702093122668173942148971426574641720331142790119440191787955994823136030330341177013020219917473032401190583170501381892379029347981027162121125346648551047751356127111878651468717869225198584334750523848573711427582836759120365468782195982953589453577381607127501059887904269060635009071303968572371363777979930827109580270127604070569066013753827242325804572425203917919130255568031044276255891814404029946950046389842949301959323226716729509010129997809867868227102483349567908037939814789379880423097680709071721192173300046817035751441172503439207639247671842275956144916156255061948949635652111025327789246573428188373545628620293838204529962592130103204111469011108672798714284107441076372750123169886012895249642685270581372014738445490479654317941467176625053353807105542764386732129116870423622973690296910446572291586473329751496471977548812031237976630077122039872656671557192795026108110712243541428492062956230349857240210132201680693285005532518293737252725847904717457282170949114864410042849925249927407505618444926495164681326131092181462094573507983562094644069205581790725706113604280662179509193302656832217876686762804523261730272299897811572325121742411590963280289340911342919910197903449362048884001146926162461656253882347584627309132131754938646167981557863773630127098227563352135737469330455901275350291074613136661419328501985697653818626212263663023952088150566003542412763523339503596173168832352887864766873877280896316897748440161938926080140253600347802361159380067580744053026430229115530623016644352527266311700259911415752392367170872134054412867761044331909980664399354980481308031518801260450485976983604563237600376500791211399129269260081903216368536651500932221188094512234998657952444998821520774938786664079099359643167509411947493746976146339314129674784630276211896844544451849040844756553325321732295074592842148123376401042208006281671541150787949792094510406346947117148190152573222316864843329436780638226890883248281170713081317380622487853916676405540893086492404961860281442960688116166623318656295807322297898212759293367381239041672539963397636287176138718090144801520904840230760358294936002189393219079616887307083711817636605442539168976689246542584831651147486512218108078741407222621436981638051836103455525700547071712429060885420763673092627158835374254167831710335469935995518784888271353565896310462426325983269446828818987082852741795598943972154318896738207135516552576441150769367367749051026619473276734531151918194530395099597899278825318164801631677076187574618947139324871340895307705914881968596525319364465949010297016117431437512266284200034795915961385503748185731832634528246483896869207100497261666617535206451870083033963813925578134157622618177150434727198251667855701034830307683781890743623436573299747983733300645599018216382085172896893355121695096068321930657675266240509134973308880871315930828166799185750253012674249006218989203642500806942893827551104150672202583635655665490767627209314784727163309619894089223154630196333179531323646038368835087518448883982247997177233001439045538281495012121184665050268201796817995826856049283758412426740079701467335161016882986121320884300987265103218679303994901244158088055105883383664110176423644450408236189363698825547796240828635170595119396499353019592074570657616990636879669557757278158809406069925783773654828400584904799941514421709742967212837850864133015690834164510810541230031167168654652937011155774528165987291110392799741032903268014451933816666912326975237062128925902745979364239715058025204615979121607476510082309769317872657613825093934389265257107874845642243792706024948027068251760886108690924350214823417234896104674322724271473846688609228219910564161332417504514474984652162126797417585680868559999300418391320100265637974290735433270559550240021326429430900538475850983399283315363627134476931066031592675825005731267365899117828368030376685832143852251154861209945188995976763740250160988574387762396184305445074823537158498977561460784982749094059897672651611991124649170812532188812558386569191142955119468029646939696055572636219440924898104211165052801183252625545810234855053357193447482969044969848652272982473237477050908397284823637183379971153670099230384705769240925936176043373994385516410786867975610074917957424603242866408199061228193277193107203344996231472285900288240269659964644532405648263117176925114809467637899810029372007475478340374990245048331137032399842679207439687198126555075543790870294050510788536834248137844893556901187638883589607942557423265320651785764033922584587391903233478244490566036866363037748958228994206060502297047537047013961746324333902743146085940125940739770700544958731975497760075097687837472326745753475012654070669421399783708607112520338590745967854822425281424376074555782609595823471729346195239096764000884458800356550615273031920827588220628679237536051512694751238041473866201515536054670637849178906533060895151104938751188308155978460705021256513292762412937116440187673355969161634095297121370517180874890573324365206620258117281213860511378622480666913730247807057747966578197033800133502644468083016489671416327744047773455174394300384851942104289781323741872498953896032589115381526010893283027639067440692670992549647314506802127817245797232528822720462122837435451980506229506696797435352514717694284321159508864796267376415889054415923023110438582580595973664374568972812050769562872195376631060670031658951837096676903733991351535368080982668526597206876366089884679379644024168833578587339914317079397616864707066783790586668677133339536335156552411301274775217693480047128066495174185405602337215735820550612208528274156288237502321101195746870586078277875767782114968101365321629976092316742547129734939736117254090355973766716711137905739084581131209347037097587094878763725054180568129849818194742886620256480232613276735140063145455980282284892169834711305169554313958614233995874097181638320645319100815536866602916595196429117462498638297499111150882277334555117610581821088258153086147026449073152584527416636278245581803401022769547661045725517563001341255027411344205473024486123562280090069938338484340085789229585625787087275841626586566188883519966275677400328622970058579399461753463098105198878684666476701269470025795246399954547799573185533284822481049245466800665321819057740999481944639029527060893273908533010946805991513859380263831169854889488437434753212939703008800497656610461526125343567991960304515058168951170152041593329309349403727988974542375706468262171888522073198654750176994102935878164249727045361669866778498382769242498097864008344523287916150655791860113959957982723554781610554892217555451899322208131381810784410710654511006878164511666855826016558389997324213509169994990784867235906849733560696998770717391455049522309507504836364786187850954045047586810130027847414926181755081246978383413288363381081014740212928047399670729067287671175220221860835284075627726989164734941930344677826144672252772343244784558226191425699536132703954530940619578949448393565878067894755575032719742167506790076648710454631599921272458473840391229346107755921433415061988184999734673216352312248066596976425505051902847162932797959910441226536841739562418264285738924983048361104892239358109582206741812020161393642821286986467699845132591048113894109472860051733525704575116391025397918613711142171055008555686137917708244834107750836880214171033162879026986980043495319941848424501037427279786805153371324169348463535348493645184883035898455370234710009658382997299188747962939414657276974022052446188999213064233969921611323507736838135269381023532656634170106555414954607630473171314943819251391278025306483634635023004829050763401188688288559456878337452515477449817611435426478286579673629148912457054038863780573489252821304001545680842777885960208916295832802947477143093864445344494493284760306506932441910589823917178308012744429642887225257212288527783276653926567183561102281590309657063662415649914448847784111446976884369295825178350677377869870427442680233132485150387626191809197127894184950369782371670277197326683632515196383305535059872450134300089549824425726819469194301875070238688359423657850911909750865193255896820249956564784963907426099726398172899613923162575921000531442800249444035687968342446349185788332462056934665271935348829337065065709083314704186961215872996710895091522896156122491668328612965429863552143294360738609906477184242983081082994218396788716360173725278667201819255783639737814944926033807570383184000275344482427181292407470592441905008965862386042008857381246243788124879358285117057436377247762663823612255952860860179147639720127600211656581262438101917424057086374991502805049916859814989710961074518722805698552190138367881049222966852439559090329529090244998431050900498940509273764230985089101032113983229121495446357971634430338238298529563805869944119181859277794907243850871482798146465105292801995431592255458309587797679474888790937495155691667023614045464227364478505049275417512706790103708739656528799338348044030885563695216166825983711652498089562287417837619403553796327719807783068960702252671228141529226175657304674984813358413483486966278073048351722772891900436380621357585317188562653541440097449333097852953943706869620906346046400870069987680080510228348901164701161475965000760777105566909142131784825147923282376168362005177024064865681905679161341125789683091326682137969071079831714253801020908823482870604080671296532453997174598033054634081770117141823509642623309842965202406433209506728097584134656379880430564587053650596318668696369061756781640645769720782991393221532239090811915114469675095464898887691306740918338648229482269392683290645900422207237018319536025366399537490314211236727630305924289928019550681143490787870447661789036567347708055560987262328180082629004518975515275695048275794507873504944274217969594217710379044987576670091560056108073448589189822328336778067862955137120321662264553487253596191777314194673438748259073738381952079407788948434551888480609477380921609286942989069711868559258858500800996725857895822807760916737437263074832694335396148815465535208776651173790181716346720404021598419938045237671600096693192258544625985130806108690374258415166266564391835298436602111841521341784129131664729886255683603366402139671848130717383407578949600087005792929195985735495563394253689440639013334214143775408933890197489345444539270656542947199104527858541129481161233415751854155612659687604596928677330786245166433605259233974425316934194822509549605127008957564259329906182530002769858746805844479861817296201957945221290538301054041127245146919819290429092638731581675169855911124680368435965136380701853534574876667169024351329411757102483864584134764706179835356357381996503984411882881520920817230639246924241544093713123803486264217300966665478701537770966983663145815344217593661039827341384091274677281035814214810751118712360328730959715172670928836174342647254876235850562959332388984004453380411922933250118251701376714522719476800123856634747058539444829887697855091655967459702518431214032401987391951368916268604846017136317322343330808728281320845927941035648387304120066597262712921771602728517867428849536855809940132203653514271267297753675447358476333475631948308003909576297463418723221272682880409805153960463934107000075309871701683049404572541478447816789413247480081859009953843903575624012672021402335918574688857482808755977077806990464419174464329458628846550182317136482560722650861018697310065552515909452882001747995751777754542128319215095576988563818591876932239008860294736054918562395209274524772777092675891157952662937486113627329915579173931314325160289698107944270863144593159864692036294630197418901336909744400917000595789465331489369672449102692042423167529785098188951807267219079710227991930431975865138851260708007358365884157594215122145961048465184254736982689690398533960631113122980680502208450811227245987959355963860665265957636079148438524321103882617166650394061667147446929199883269500697539860274382500534614984520706899000046672143036594298380991019057429080459291727564067355515905290348520872172859705134179332308084285822715883192604763714759362637365860784303963408214521588862051540995553344363077053780778324794211117015026736298303516366405238329725807142525667484663600256991032663171677563797117491188288407316879709287518161475193592788658228431542553626700494951810542718339112392626801907709155796856573736955684938686200100543636530941437594388084548655773385990723829075118938992590269459330075506180338188575562860682443180442182822112331772180761888148385072738447061923172710387754793622396350914871700030663280796032700086682050640414440784764929892385712764388176591543191692856924612833145194055591635035943275039746433941574132344627639576550565759343449786870092572853522780265610749985734307419207905715737115077508096381332089760192660084538078132655448714014346425041320090885342380272350723330292553564059757050307901607402946650675774901838220747361529397339906215176135600789758852660202975524682279067686114811891333662028211201830004090219510772091893032988428894693483962481745915205476504067418018423778480390526025818491750520119987126287480912197738320525935398363705866193302000820291412971453257153764335041901641456088701891962303735901456208421105300200794515829834334307386564404725518197784040357674426015875060361754885777994754856490440174504723494397398663337213224032127046909752406101977633960146641508503874940024653423282080760604775267923367932120827623549181494816772945395534521291725045835638012187892714541233237318062285760131794572554581835288568572444103916528134968694166959669573771761133205946509215136482115248107745898844509850791033296978291171122063999883051992224499582978115273910831276096632735758051139918182389572647357007673910713187797369569830641954802896426990447952248129384711154036085747983084156941648083676042283385689045186045367491099518889953007479964693574827058895929204137711167622313011221649136870539139375503936623487610644089979179944440384365019557655085369644433278765374872977029629764718103464514960970364862045387652825597747564993828641735714350775950316405469340702623226221334788716483629533126068476764981057036843893673256092909813207613947425606234701846737690413539914675643674669840131966007384214959882136933694135977340726588668385823544868961488575544285018732888098753592920182638172633292856933831828618439619082919088375114350866258067998440663111277501195039154750761717297338835896632811457759206810231113911156574496351497430898995597943170139391779346521231817827849576763465998263981069128707299292887730151052063048251332021849569030871035592237838771000245392185332716019092324395724537713240660104483796246912543851416159230344926994756817333752354312996278288072714856456549536036528758349056366304362297206280357652904662480564473022356431375404932918367506553327898001760357819532812755023096054640084238685654883219735176361545259397496192832271857567789507537029564243021775879128790817342475216015079635589293055042305601910739057225866710553213811323631561880328767432983526179415956829508739817086445844815452019600448047858195659938042757878424964896133858516362699408445944400434506517673372017875740732313302893907692576032870449218862982537647871607695700773831014695988298518269851437333028773559166588402097646735343636160185735316616903170882190949212555319116354382423206264097334571136027496222759053922103283409654459562760236634968874764511389582667109987948865786751894865820420551995803540347544274298875369419182201183890183757243299528693966267070084218004468391365838173929786389955530214902060969366983273689911053700197616521929127214742943851256416035723662277437529311727489114314612791366714437154140279192775902763649692580959233736223166972537132083854865167857161752573292096552937284808524198861562171835565941427668544976156211954478984076863244213548070665275854226273202954767997547938382449545743714399781243018947967640818256714981315690167257682294530498149038519218144317288386600917818171193300537703344262086705147448141622803903554791273899374508872374226001030007718081381976235427254259970417154025740064567713787070879411933434383247698975747493155325999475015563415088983598372364667985054552270875650875616640763969574785452731199487571321358880501897591708189347069154190332488694961613353258275221856187300718055413294437840196991479928922865280906895932820530460500437651410558629842538328358903100945969454029877159576136116285585487786738667448594222797992525138580019622292718156256668731250860787364320129509057809536999409230734865961212452641991481858890399524138568343438719932045729498157654768071818007225208437416786024828597931512431898521410584395283523967366100037841696433140351391366965119998069163342327983770352789433965346048257745014260581200567684952307654670094138852129436780389008477232912426557740028369646661347972985837024473737928031276963445383694896453796559518909717437828450216733422629245302177027981046326654885138030758786229505996752743784027752385015325512703938235771172047388678811691900093962614665351182939602528725257890151024484811983295412086531979456154984568631534507905437717519647840733500390822002343692105449936245452790333606190957496136151015661329320671602270163445997133647943305803664606024423166865761078367421357214333262581541210564372311916261111573910124161081821145839326256973363400999583352381391164185193090026889231925158494239681362454150362066255317583841945415150509664692437938989045980488767325836607885542568088031347455198026707238193547957030095901095448231352094301277366191298564311373641335274425877299986629685018245273594538440120230455836924395446532848802627837997200259932395385881273532547875657933332514147584253835283963327245676346813492790013384925991701681708069904901444412021691144011958957842204266312721017657339965503342285325562488029737582521002841939258977659166128799185043406851601926552579549750604883605716522892873709278252251018085565834654867912167262566597529419375136678113351425340670658436868467219792126051231876668787274301702563812148967933071142225801732968538701965539901177130290582690025078335299816177675894040450914085381694971418263589850955808315704866896981599132659655740992351701718765307639783271727267890408521794653816276721343686843777490992516054820071264220289752402789721196293385432641782906456660281181141161599348672377990924258998675711922831240867594540367507912200258648670108348448600730281049118604988432452068090767948216885727488981934837801855991409656971039153254515291766519827540975403371362797432759522113080385057255961526128560709185594288593184084489530452870441312692009771809131856302026422581920380384148799682380278922987831595434899979561305229366561611959521017083741969686567715812092592707216451339933288601778311684333720990252788644883717872002720575215689641337135108570102946589605061234526579981733456881938857546843563225483362823866255779065485344566561446785631734641256032895079817302045277461334107983021422329280437524215812070113143721682890818856015609358305526953281736922532418108366693083885864343063218279097442865628910903395400335433820470741920348083555049193989746716092018054881176817464329259751857935063585012761087132659503905975488127040977684528495411763263101081760470472880927555541717811356128405329089746394116538073142711671909356780146929697233272961568169099960409810894553586449086375670063887239387324870767324430028329759795390905378711714939096691159995386834242476530751782414034412900046975341967857173031605980255203808986928498437156354368047821525159018445183045778219656087264617768392107529089618791109055012884011316676365913571900774384991380093766169743130521705077526285943047150563865643092689027665801887711023350224181079176529265629908530837824113098916387174093266812771175463928458898347364408505836218277784072609318186838875091915234623447055985960199628028271138667483504315837473683678407275999690225486696416538125675561171228862004139205126849312652790111241440773769590296803747064732268270975987908269861485656901639023580684026204440960565491787311140716860714839299003161958916399266256991900388700488776119364748443490854524003332315356123269648951390725820347139484496653785205810087222437542329359283371321399566878303681943992972510119370188796347319950716492472395908242697229636093987932121241773618680043848983637000706520088083853864857822264314525247154274401549169925395864127365662930024531391289552355670713040077968279545755597370221903751462275099606017848556802973743556233496382522624706743346298026994474810705209752581080254734093540902267785653651294586641248463651364932720991140611377379008518989056203145274360301556071361236137219106594933740000919695536261355337026202670835590620219051113773549505136833964441399855242977079343332963798850634496197935828172020186157650025915697231946872247044267183288755018419135446169588057959598696859116671223802091664297299756204231603808110018436955038823227478700050095918666619608491957512039390296339978518905088969805011546933829976994021690730776337940752488709012607518212013024228928648360379238503739592444505710119711695050822885682296090913243343942831207036782118498558982986329374756353986646695165543741819013953204831906274642381815521224886961114196525191699219116182991487130094593268542658835625426278800275943985899442737654534754526584285928258912210491175161715392416994618141797819874410913773631920727481746430675159214200412843407818447415440890027593318442948060682670638639911778342346199160734103879182830314863481848119285334040555139734891031937931367330773771134834012486455333397596115369934966464147907500405028491178245049419193675998175658718066318142588966009492653641504452762965392782564702778228141284030556524022723123892602351073021205366993079925473198534052515064137676262286944853219172713420036692652321679922316983689920077550761344109400009606322783221393261478852675816871296622880930997860856413396783222722904522740211736661147380239595475492828189668526234637974322687462733562858050461932136947813391334861050258832544658196037298647716683876598894409610806169981996044416279782924654666012756791818906547822776883403466835340292583621737436965509095143471526598059454204018582151321140523248581448721732122942912045584777172173953687065668287336629259906853210982263544762559307561284808300830036786160571518853373639901345392387721710453143705336426099040409913376378908933699659783874959554443204778278316860889048187158895454061650090320201482618301763603520492259679938142544191446625944876421590624564501645195008287910408964932125482413599472919240563288437221421994489697719186931306174325703415378339150193254546769552111607106994142275282361650779032004222977631148160466129647980171219311569223301768230944507256034253898969835279504439458096560023260323954567158014269893329666521151855426203452339531299713489157227242692262422318508401747121479412880549216940780346865442807716756922479169901928365607207171016296892541611545785411853641508958033699496784288867299768528988886779203439550433471511572471224002596874605393418198871614298153121206506801704927175587782712698154937946722559480950665674106684971037317019082852765250024055406263717789856622014798027065381029084702139045959320777696589822438340210310754703888567075288288624307002872450701415607319963228724803301225621593132478916501170285157731966305906065564509118128835952468140759181693632294187890890518948401559953060515329726365080781188655362503416299095238857835042825111046423698131073569129760735657181638556256197351654605924889709412157353823765934554470735395886918560165216970517461308698249384390467911721093783080785437875462442138447905932370165505230513325810173560507762156334172144899225984218093603915137748350690961043270991443654067805353795499873694919782058755433140999165838908943678179007031137995273405517196798080049113045406018045358123939271681381632191458577538712239689795459210591467783075153653440183550977858277914818846555984566421475173691895063098520814131193816370043710650412781460218111517591884995020549490271668017411812981128658186715866326620650407951660939494381401591333364238748996051996511828597349452001248521474371710358339580694046881333482634390719853126408991715126262312424908956792513894170683774652431196457449903913856680349003862138618550530890650817567017961052000356279175658980035614845559397916570262991770862564102891847535852023038392223938250514824278116946762027787364698783439238741457913088990754760842442520598623324860153313034592811669714212329046703979062747637280301039031756291562929591418815632482227482634771691930504734271799669243593913628107854602554551068762166100620598636138443567092833319895225424513148159976600812524894288801189058341152586359525631614344442699772161900448911975883764777752595435122462651941261050780907227221744560601095939409693572256252437486042983274478175648822550270584591217998995301285879671398231169649811406543800837184885249803824313918065073363406984633569991756202376703703935118237570657876770790628221977517249217899191848749259456615395056370498853258519266079743121912211951427839153392530711975351809962096170798801428510278194097125295711253825227004818529504961412750842613967184986544564184990176310827581911392239422193906225311570482448654631804288318309415023869839585398675036747915729042158048573669903654062059337512869378405284332469334201169014761596941529004920935067894160665291227554089111503063354178396954413793822443622716802517565738302717781502469076877977235575360719174096112743461320354939091808891929090775698032640824804579346070762038920877205352718024238886407137567949497197539050566993200581752004036724503912613006127293622642756825747693300446097537702073968393062786596163425522020356479698321767083078725329658198512985655142773596807977683958152830548792073462142367543865714934825020792155708644332993066384842348702182207094284112850559044777823136347839628567638647338885802387710739874071023469977050946903716343796265560221233883665666719502227030556968059744906721089715531289007628382107557644459517679078400027562841461114870030859398430271198728439200723368625420540392758993746714814423992383604880228474381498465960345610798690801094576899941528912966972799919805079029117371407482545673037743529090919630221182040086195567603233133418986169726761091811158181055146006192055669117245181342167310698008847317640753406995322519764121149057099169030630716163655663109616725710161073751213371172382414477550675328479854119919954379488226384725839030712252999224552016086446494531389173720261452078186243216030497318073815898890092147658553261647548087225074393178531255449904811872896132855913118379662811589441608874989678578689569080458071097811194036638570040564150804893938580808257687796832819958449903140870455306155134895535844740449013151740167881210766189290737576215795229770332887991746755373928149665289469922094116120599608931525976614730871585798164509602358567892092104822069923594270572854510311304501540254924970928315155788656350962214609903005213168170295338067388572735949272126266398012793801017876331162249021169517549569520913889943021002991662247029556474017829713075648470332639260568303963429185127313553209123403917698856960704814312122758259276230291611272786159538876389231435475212559113941051283120100506618510811180084839954609043442680543803513947170520064448054543075575516729537425960443164398613577801879347501962143770647349161948372156876184497878024639210311529294902964006537888822172920753833204251102224067241659428098801455364060883685683190673250218877562731743849325852910048319507531275479631257530517933887819732603200570159346570333999588643565882858191016771945366209870349903716147559019636725666299427680145360989881931447423706643498177029133488405131421413935981689318353158419509342876263308546352864821630093876909206969697659713499817731906772377566137080107958923075508179406266910914527754178049204935433000359268063567434696021840992159151413405275291857833367902035871471159636983122613973013699437914466125001366999350794495891786265883354104472935019713008241660816270962161172605127592290618519946361123919950089159035738046046851123182420305009129687087629819524695116030518033076265302880279707735905580669803381939114535408822429471498099547155729949037914184273461707296054273598270726412012466791617942630865959959590294738976342780282406144927785832843797787717885887565664387585941165729228910981956647981758618404196369682459344039302486197897814712084029187992546213940258440741545621303741896056863758432718345548275574711012430816585624916351395439241848229931362094078436231317416264135333181492172359088653533596324391707495030106392855457626003081153353050543906628372358319667487268428180252803231781150707270187887128349692466809427906143947605544733423651678433270195606757877947148582720502166641189727533020011839683387311237495578054980580746218922255294343738193919479890372212050431596177841665750980198565464622131699629726179401905778233389839910174555934233015369910326061299822916088532086695986068230263642014290396703678054889868515817057815835143450156896873521801035474194977373408407345738990935985001846722478996997170457551533046377809502332799090726130290360745697508592331099195428241784245079150308387300165510002711532786249563518070384328091075753682824392863047233169766886443343228719861103196368931021149762888078625635359700851027467349109939517651229896689877786005362578939969329415413493830254482740947489103918119148053077043279188537463087354076692383235396858586451103760652068681352383579797931755448455728650035959870547286935926787448726108185783387492333675200465978914746491597634429537839052208128470482527247755674266863811364191747453212022926678465035777066617775060829771774300634281941368595496913627473856144501741787039493741890971195850503137055529583366129933207925161868376972912737068533071871283966784028301538308733362931033306830253831599328675819862834333112334923801865496277428527694924295557123290810300900536791446176903787653273768115927371472717990062043289065438418933183914022224798715455785390670886724576435304196679786182410422061482179768815717629386573516910371154391034756330179625345553337169749005814862019943464032267914778490696847145364421080077068552188590871919842988916106705629904387127781361026597706087837998365597008269629225045747505581646186329377418404416905470414102980148519262008104537899957013808478181265591016683270596069504087276186987801713417883015520984148368367291430071825769024624962722614534814995047732939719932072288935190996823211729357993683744132967213422074095700846778946741732724688567492408178828895818730685786401967052135258665736332731243850000481227808105517218329181866419304529840316720375933018648908769495137494089168069331709252078898584632583045641419767933109296156539903281604390978461630075495750512260747810371488771829995858420432232575474635935834929786716084549338092642560424429934989005576741607699931135125435254411963841620103599861656953306022520405377212656084751865205411342592792126764381783635444259584481571364412250947905078991714202841582862184133657075358034630215454339086640393056612546215776898036488228735315525098530130207431040431290823408646676931388599252228075584157850713647909911633824302586501600074167574810212716795773591191326901839723325070027696177612576209716565602732042147466868377015645805999549225320524461673314839084030226253274373436615041718496049517172908287473687976257775880379842584904563516862817126089734054287112519742312532117377345467479329357759765643364876068548454299682423051871704110744002850833307268908065188180648232410900944196980291889484990879956414468940728404633443630907111525637599621390257017087527451721618866648246520981432608852406596144592450979939553506093425193344250298097444156148371852053371319950008986741636034455486043896688102752684355749187080819231673934822022481079772677456814092100869418279386777423368895642683528441194494117429231919718062637077443662008047580775739497446116073493382276807520608532044452636280525521909202985907384227126980823251723843490216261498460950268458193105432120671149438776097124844336137906979511285308059639699375299698854914001076931698330552386433503498406000347354005043306619086370715446449720599244763615996440302733804431571000684078353505916265297881802494798221182956717897267772597269705578079584878987567369931763740752006548523666035589522849766857014074629979098495007302954081670970377579301288992568302327095983012089402696309609886097251544320472981811404891473386735072050536837805028654297970672860832836630604763449606456983348654687258621140159818755777877546454825123948747049088984674113544105123999425200707541508066640714786901572382231040862733284744070001368376864171071920242142855591720163055542526998959375865735592458231088206261078288932347156230988393460622430474922229708765035095758143732894639740375308137673286433800549009578167125384786932500213186299753411917855082380208016214823675354498915008050080727476158547688390720548034511883873859531786039459035672591067488362905452311641665896537717685477912278481536133575206946628377394139020903383661368660742331302525487126480922103395209727118391090359120618539301850362439982221581499648943873494864147501119716864363101858084019873510388780763610928801842713835384815577295249540471583637524275906195506711625487984777696247497560429727113636976196935963662837912733067066434062197728597990985468795538727198373422145958111869422027142903764342090265766858195939269854957623772955268495733202502672307779057233279819870056532495350892020823281643843278428815470414620676112561707388380281528192732446407257145891637822465661905796115627145041029533227845124421758411695513493268629670350995393909348787032234993142491895405069411808279111303468466442703984127105452234646410523525429212750911694636009371926985984309939964876194778120892955735720314776693612668287360063154484136924563828535795838232542241752474781649300167221684646052428116945548871787461445211691294230615237393497915850446231066806636260589743250294034506295908501561819414657275530153925522434182419350254643968261717751919173681236326528830438707923479791061038276520099887706860524523243176940260707467430849479112021380387893665625097661205598262445912811448922173462550362931145820087829068893245880523459783437470803007757804555845230202189133426083565964542164069070745884315279370005578233538635888313043735566417427436583957379792417436563863224935705503120640772400672417063192151299894474521634739263353114893225041276029171685472967718721357591758321142491159561247064460225300525525058846778507939373223302513385852008392871496035603540350224897820701891179966016966426195233184597914480818776244637503495250020862785948690027685724822402580321723910508358188188911836817804615620385589098190062794007348593625164063271409542186926433944282819822663119061130623054948796771025241278931023709095824395462078797669402860941505860628194852696240263787076972899091833915346973513631637101298973547674639401599277757963699839951573929418879327867393200248966139394319858467122728747818748595781648065976313593930306920870800129541566541075796464870743299424236280487141051435966770523394930696296166655633309116706004272209185701944253407371851841071981314474545068738913057342536629193054973345933279689690597122103635034522671135406837875670058553678861229865379715212974080136210928340136972721943316658983666353772686960770632915015011103151944204007450597628428813946517774310792272039476625222413066807856506753559721856694823998388032239683673481289608369433619853104651213087409791824169355823795347616913294312129442643948321634037054562399107641453336999929297296108207026945263676162356251415351190020007317631231344481605124902745372598342909582989720577408839597984271172456294945749994954547429131139663219935845889642945914388364818684365081044924180638457791438602965058428882649248078626258520807080026098367238083733034723632021400014566630393731906361893661319351872620259799902864727618722134439328890692754565494752240949507186435690329253218738170764867368160366421388342964077490820390416537950176875965034097299481692613606927740991783222096588541092125574066475193623301389336137969797422796277114940031749684793948928430280882330495937849640103122269240208109187100218276614736435650064665031017988101191279025987677456267862945888275937602626104208514464006500471596585473472645822598529885460705152785447310108216897767693675657136529984920551086676818232167333006170432469716966133723263533886602749642408090946974978146903362132354847262573546246929875018396777621277816863851702037630305413437633983776140962293263886781316213204676052191992226379525013532620873166017658421241690019597939302621342742964365731855808387489368978541835782228502864499457317323011214006076754075756779241373961080467142144400922665061743729156902775736982869807724234951053426256933249947730513365052380963845354319589973155272279252823028270304479786261353419026886436047412027846434569155505305904359255908383146346579225553742083802726793966595828240502364407980205103089106809377139515902679570767889166184370399206133209206406911467574306866380306484468816197470055565086170039689409450969449203510525406262067952214605121381285587921767404377030854688916455654896660744890426524054210151001591353992763764695156910095215759623179234390489612406780957314253164458685148359840457829209952410904415155215475602061839785918758229761938268873531460753678458877497911629908387142263263494763164265337080747973810678276294124426120568247125969430098722676962421061171335225498450926820207789928167739215071959714470216854962471487555116079027141433317460928863945985421860773739834204326457313582947717549336601208918264987690192821615633374056340444814640568426506808643762043264178790033496881537279768350746329512391948737446377680708627442710410955853011678675903189863286858509265198951734454915935454658429538113347838579397939326275043623755510555939118326148636896866722250202189263564907139959363666849045763260737418368200464472039209373023817820242909262178305482482331805107933898340987218423093003496716458557763353159461950754322576867868631817145262115950126054353910770818622829926320040968488197543792030482869094919818932928790448208941269464038529020120835514649355578477779089668710257206167452846889573014187920677282643896141714824680186172492813802966514805151550674332139602126999946029067193329091520551137212670627603008344628722204973543980596138617993981015775689588956937262251856769304478146091401337857608341757358565579702382519215236773150114203664233082777939691122150190897713956720021977946509066478337064802104158362433058972759292567499577339849754346311322627060215760933945645219427974403334266050577044305030872845453798360937604350634252119924720020047802066889035356271180954019227679864456036514093302057191034003645867703578802089957517070017418453202249792377912220639099042494120418009073186062952062945052927006802317774372089234130968143699929520014364919229403869053176148491613911379438173019955425599546467925965574957644742931831931663011314778194689197214324198550923390620161991837816958999425027579851915169295370445882586174385783871992655696027198665121882676202365044002473420235110455729374886104612177034688170332698600947460090577559459268605161889718531963716773908847638484320248185947131211218049764385411751102272280021915046935098386932336833686708946305226208774799312926554539040905611785412465891649533138095364781160745933742857530824490278108158358396319360761844757297146601436356654073942415395820954849532977149569030769137598396455917747795206715182633835395564675991989954075608253832604543123094049569528152066286943358435147671456153243517330403958047887695701857783248091613187834891798535291808673241160544588391638323625244153574833229454158940838588186855714769638952596692322880357898610729210992201787373116404092501377546461710747540721196838506239786124443437886289220576298608768089775706356821741727868787503053523551578968723221473672183820074001983051043794899902540632980144469234782322298665428867127566527869952587736388635941461034202372898035461137551484357226016973106019357948278504107696108784269537349477683551225984022819575089849343717953215357947058479209552165701316366609845089254936340051300546117384453357969039432980612411768731513786228132703184016746438069262140001825397113437791853128846794197210402494885286096443973670288157083137827272841188971920867931449047596320071109753511013573697466182933500070274757782898112380104109713649869960837699742526582783579039232978561067678409721182129663276271572563663854764480077420314333457277524816173858224352513204821263860610266492460849120273736068250757333248109094808328767541766105286087075548114363321572169574084145449330901555416469924652694986188080947190636602103742587966487742947907212271204253457874548301110773970926113703080503441099858617272247263541613143823821242422098866411420119593545042771215045575788325954925302667044132277340297290865371536214257224267285294029254231076835245950666833047811642960762098859344425185910860473063360025427314070460882796526570983125800287560089588052491395977377913165958770138719629198990862382813012473687412218311284484026781310567890545067971889542075046348245974253538553396942119556604111094682105870426163106175070163277834123054141141221322242076824854099883122760854812087728647253390997644373654330111303079762473222460066701540116804775361667468793177882613346220883810165630532852293592386367583987925867995966349792721710682955156758218718452031101224557773227674961725641515468838631575670101928154159444218354847926276460810171346372240267863266464620725172197159895159784726401812177238178135624199788521052307116327635088812772095232268528878816355899953315762195248153291400978236522763584454432131270331355456939532606968926035217437297928530857210705708643240600208993900959005110151966761314279243437070581143583320652435493689415052232208967749329232586422802538357365819476871179932315200997172996935029911281441428073206820585036861374310628187585352764681606713995330190280275724152025854103660260288497205627636857011488607096162412139938279168869019218737763034199696759151754572599949445331573649725256173394441508537899272258366937752097115998192975480866803635311089234946107350055337540872981349141782707252496298169743546132722165958162757423972467512321729618495642443844484618624582796206272816660474460323911751363197769214535461569267899064020725809023461295890274224302358395286594603427881221749232429573661004379245095476950054981226925184352633573957222204548194990928939748616016033168911313652354992272778555902850123208502532947757139851706539007808390410837082687308291057866775786322307823052542083303107916349884085137652854160484755772258402118804128145022704020082096028274213855520030717213364788247116747852829718721245589695155704400798866068269688930476930154841588541097119645802835573235993568673197725353345929163458436952715116501374169224172222877806039903840889304495680515719196631823467577595833331075967607826224049731710488598513063357384426413429386471476184902488968429809167805995276187453720145599397729235118433875429546360725380215591836689311703948214338996523943259147466333609279600475217477182947636387903329405522707286487675533903396911620277800568511592296572408473531892586862862919514469713103657047783252884656434011018878701114665606980940578344560445624642155200829185630845429534002285148867404954125467756895759589376051523070109401769779236007670216001737379870613011806901422427184389678817071618912866510611635019338612164745009330118290008065748995012383586403288416954478434348798243600130087943535936314714937618729756636122681038458524030247107176319742309080971715372969092959547308607600451300796585400307681932539573276926507220020466686186531915273609138327822766678534777691527720818331410690671969971278544383267522942874355759580712043508190234774198764471989063042607044054452725147051532460538747463273100408033912797616378558282633920997900120491582394731624136660472819574135593344495276258711776321387160748460720136414944410521829703152760271275604622518316747586938683564983460697106246685903370693655148121608210325862596140590895861679840035545391797237875826199257659969773494104618226714096404462341574545950867910354283441405507121926106076575525262867829292874203338292794856785990097253583816539790429454224072060987860564745549593286713534478203085495016400520922581688084382203116838809680329373962284249795508381477061490757895826616797108863535512696230037705268171293382226108176398857302792739927166291388567238503844264407375801426220010128082369233061646372426529318566097655055760547987513055572510118669368194732421322907972472688291388365835390638541086788366367731493161854201405837341028629897708524036943017024841537616200518538373288302774270343804562645729917222091212168005420169870367457132056493723284389759228438902111375974084119211104904481232196937562251109597920432794458055816773514376817465833558352778203756583006702011742589648253723610889748806563466103431006677245214618313668443078231510800608455750236356567965751017740838174421805368217462912953274566562297847170515784139494080583784594305394254337057797357522797337441379365276862977820705411575060931433443685443684338469376174045880948176624724183125163836678156695588065751376962195520277924856404791026454078575425231782159846545628590409136266275882626489217276625498279069469605913748994654638586412116328567767418408735384260848814399721472750915632712032089312501201902362719992198794031021630503844133045888450335152237180697448998057251945635009353571296392931139800767409473918709130538665678780181490630097550326389281539683861656105215685058189937827907948930831371306142252216832136195778495984227205642068493437972458745860052253367629216232520042395034655432449527148159923261350773325592221296605194142090286459570489057772152767647452459372881581874929310912345411890675643238772258502666340257573732159800117007971613091520839677016725571714182979195970463015447280230846559721144653857957820221892374860833026628788488631373037378863688853976664815568929258334463987352343837679675462269307282910816241256932589723730547234869973716002017647265767947190024283157767826995001246590443489258858771173409016633834137862553573600494370236276773161529165431943125820678153891679539553614765055380514526271366474310683493335793360813690944054707533582324603771331462259306219179755980909735695546853248482138469570328270783005707989549799530002267565722756522811035951196482356986352429214038886072772880148329661511253438984813165967137390638092311248454971183782226032067397611650659845423406197246816641335707621898647441290828737676835083585345644603504235986256176156401833772541258924852334212675670166714772599057029955860507610466061236984634119692316428497219089787888701810012339186061381919463777851415096690615181310056278099416413046356043082385082116203176600033234368693461389401583489981573351430184630782740008598191969254506168033974766745839389079589170619313520093440007606909990492611628443622039233274398785987171337008359413711849547295058364612573701500221463654222545986584701122253486042613162182030155970187382434415126438709892437539699170505958377367057555126808597043700462740090039642971861356029101183340414639049966419192366277503652070463168272305036407394820822499562128039477901280290357312693882472339876809258981381917020986302856615069734872492213944790112933725830209521064631564098126166635292072345790989910084791027844739313231289872923773255450548192266490451100615460838205902344040350298895447025904130375282544860719799512314415151328477126881185348704656071130431780334962825781033857576307693001438585000708393784679515478196242154221136133231614163604886112151410043727434471037749928549496867825638324429226398205336210821935948113711688737892497906300731920324653231084691950720852465962598836817422105525943328457551965352877216906059826443190737020653961018918985819768268505804064242128602311842240930952534331914220723289721639835542346336647861326656654858439432902619357628353303321894108421377418140988366391132603683469080533169071573842240008340236083874777030215025869524755049755852673947509217285540433893762930160049164443806756699934670427895360282910173794881606825948907989496915525180726855180940289970908554664507831244962835467373944907483745201051228236393153622192357651269853573799215064058972410224561666676063386678895005064884081574826311461798952134461101804385612878509899264344723240659558288727884213792226113925365081373083156765853018863114246945042031997514029247893585814165862059623590625618200135269478602103604766412292622314742002668791838713438277048064097775378854063818861012339829637473595084436731887465950812598365894956556824412852439864441888943118768251202473145575105881137193650406718095677921236430748198228963412395963837558927849457838494195954430858026269844563868007904901309707363069731511257325790749096001714997795984927706886206057062861219167137862915516231709855408605526595599257945540079578002145041529687024487287453303363476266941716029561627951230296550296079835362129301504382104547103023763664680105173144296818575001892103158678179150199469344506142311699495353226874553114695515091154754661744078015956685562659718821362111404222936297189716011616745615696082656950885760061992137466056044896323666170746980514287323033265334253917325375278420032535136103787535295207531300490016653504162227690739150213235304281151091604472961839560810555352028808904296735143016551618937195595948191206784271875740910270991519843360567163807385984697662330821721191016539333348367267695404760087309301119530789911094702629756534896331072950976219524105027968037842610091178023208830707980007130581824700478800483532633063329923767313264153105881881433999948563886592612818884663228808251926821084207008680551701014739842902344689075553746218551255347422831647979230705607543509869147988111507778658060537795102186433822407102495638534023741367724155981321480947386107091032524536086169951726649615871443639255118727958822050222680672856594642624071903354420575050300308387354511881595391461389179945058690834051502584876044225114911522945069952549640459854158720408569553250209624697876227602270967117185333890660953002736198785419082023398214404417109724391627111808538970590049354244720844500061112447234167362613452518290864028340272030992562712880574412041366215604287661151970998445796583732179005635912609442117092315822213131165095701162391174896178875320849360024550931707923439757373266979891249099067359456260255563982556772425808924048565730746104942476141375104437588858353966787434439835776442310303768093430071724713596565288406720594071108386032988982403551891396670136310794351868319973812283419105287445165365751313643962612211048441510089155315194913276867570168627794006581847282043072414770146141174257574038503072315511311583147184221504691448347451476300665427520613711340722146439258252832400137389022410943372327128601408168080608442740106781683051117279948301777980230939386201736506642584834289473836264501384082597754994106321953721431957346940200672213211455721193174438886920159163232111175335090807072339565459262975755173435947916700706506631790647332502399493516452229205228210342797828181773407928135879590956109431087968689111911717098408183025139091334401936059351698523211210787821710181536430772394552899516302598312149815561427604123347432117448504880563820930692063865841701700250195337589732048076523268922585717100047978934510357875223927216033264992051872333562996087907278102407634951211231066646287676421496906812219529894212478300257011332256528016391886746575147985989625109534416818405088991975584180708273070733124674043720418339976986441449328871132676732762628027007559419546409453156570312834487821239477039097926177976565045813032214976701192958435592881997587675156060078100695257292407006356142382303202236804953524144098810972103211186070132965476585447560380993442467448584466417253261433452351822710223741402131141203206808648607090629219367773457615380385840801598703888985077662364783461503757109389808931159518251785380029624652726269689133315078601001569268805508986456782043576638182547951437526171408049937369909718532979610881509669398681632400661734624752257614077060387860085945913675485252389456768549667843431351397584386517697715630992075694987009756412931476755626067975579766002388134152985865798470088106430686757589718032871286291712979659288753379728577508011773013817935871543955000428860133416944140276962339953059563190392480557233386332492668305421420057406235706450472689929362920286359701118793137973765323834885956276585258171678897735947788849988549854793941466005023474370402796599118520370122314639547933509477355299020881148284778137681256464566863319226836153774632350999081079730899626707212762700291544337815486147726100233804374675302439524100259986173223448874874749435012984244325400364133336987768380258167257799829024864563693194938848730867394767174635345232733160015256183923715166508063281457604948199123805655683463223900482042887741286026498023649175843311222685584563261656001519072466264084555600692114820431190050667379110770497813563367373935715101364186946120968716272984432295611774182968257438845445362608149595367332979143787233960430591836258122414518962322092376852550153355765010516530967590826310475801640448802478778402438311310494481733754521018371646973053965827250867333355499022965236479212342477925286472042851472144246327249517727979033267334679108028649527069095987513744738958372997488420681372806034271479511757512006278945950889439163568791743393666490720503500425622385158148079195986502868441284198420871955413334799294173096211754546761138405149447579736476998164210944453560874224186487219124216080663944501475794452691405567847557425075984899018316207506778320141210013839448528414973654324123861040059237804073603728554704815247345607511473775092463001352061473000929158898569314445736577799886873144194497659672209510361552707270904075634270761338649325084423450674617372989319931010614277215273382787521487180732268150733476830787189984550112760305250072154109495365834534948814967962884685754897213285893688267880149194025907166028523117067805809975864883128351453813794801100749867374604549946190500111306294642630614032227575534073390612762013395753426369568504367691533765563509450755070145083472138062769022724638027530442203636953472582819311653467129041246248559016757657267504975435555733839400551209799193535192045185153827222490366786991294415713739973506184229541613823725766933269341900220746362760387512290148384774483740029278553660257601167672756312995921080792559008793500777924873166374602802313149184284614096196336990378202912882674864191933196622491825061835454964532405430352980669897654364127270206138720565152409421626847824796193332000687232056432565106472542874653238603473339764177535879075134193139975762295134415142097860634876953416302020679734023805653955078179932904413366007376473197461151508893954003852927973326401673544504242238198394651313085598394318636641861808179582312605227485350893704138430810765519525800624659624502577268773930770239778900429614841360630969146150506207712179009288493476995573710300548569887125760244812297234169616269691133955385393068982457460347818070275598695428606682733963985718572203692663776101645955248844149957427907429004215001165964402999937510817774559132079478378980739239426426019786836392458695799917058268413304594957810855177162664732207174086370274322337395894766859542366682325539930862607767877383241566980487605370379322362071853750025210808930881440172755408564337186022447225601407899188314233420844079352848090074638619233785720027540715874151723115948545770273300062610887196967287372793472842763773785379025251456032728238466010022468943817013698007724984450998938913696463883320643829830841122415609565776559695373497724612690967790820440645044083313436213481644930829555444662523611051290355472392308995501491217209843541134223372825397241502435261318456725949138006235675933367170014104823472257593916685338607021060049530768557234281938675760311659596276945757331375965549683681586164206913750818167866248922145147203097030919607659165383137696453357273585814942647042437915010287953223699422799605176010532039585598234673523350198402472422534989322638150742091771198469645253690964048637611431366043265256076972487838510996225588597034061916969722493457457034613103103985939995316205166959607857973124130407158692726134868980591868298623345776128495897546083090228169074852902914576945976583689187470312462149589882891094712081578380669349842212987160797784815861721632924741547544888905457560626913855766728967901384274914686599273688331688137138707997737916385166882423563844011995103604865759191155124784747839863554306303856706777016229323638787906230519308825670861958613314841940756754775078894576029994138311585003590489291080246213056729579790803142203547197474211577317294772574585051749151963515645966480155264249562658011515343795108239787366247596882872011116308621083799601883594662060196859382862443200393130272616879168349040860324379405307242194185574293703676586616449641565728352764643682742821246829881577389724342619812366557611539509936713374562831257241348692230558684738672771486851284738584984331771669699284618643546189055396568888472000528384364818752842447972038011942771661003370149954526887107056188632767012137450936509129778016378784920131324294535163990997748801185207383124435302114348267445789617894994033676364046568179113216962263138621055826971658611818415840228046456777990250971046507955207822500773079590178944297303159439000432035871615814716589930891876291892962277889688421850523796628015571374370702313143214777333173374820345520491386243115091611731859255138904524040879951881944798207462515542853470325307435904564729324248017107646486142618048495888493499761406481085162297441324386095948741243129223163319055327417125621868202467283998091209623347477194549984481202856417736367464127699002835345882373270617691518930101496819624864481167575745636823960691913778386480773345160595029684727223845255200989399144271233408809002947465651319377917512597255457646843373617275321185519429190988044855747409547963148620331316772200117566328073532234681916081923107406312720895402855943664657742767417915088621686655257668285606706810746866853849744325196184232582335724766362422250171176777552095370815675140180555321949133433731470993945381091074329599157097878670836376329763086890989152437436767760202572539002648930480943758635849760721755660041817571108069644833540263874027153440272454320931078578794882671708471639804284956556845657363296071352669910140109911192319615410381060011211042988937437283693735131291630505133360060524561969256389159014604184748390957384766046399763576892974559689972675319925296149554634775389279877692278341388303845174121958580509059377029504575022036706748405403092280266189478368767735636503982111932852401070513447045793971011533872438299270327441735201917229796827304160853205216745603819932360469523103516498702844440855094519443003009234270189310632607336345982166593539021993118833082616015802142666557180347645565233569004559785972210592500572810752061293602631064061872214498902386920589697799260152428685224553278625808051589186556327063777823153451196374794471528208995030000664848025821840570230774642581943022700623971169038314614889135882443312601469440075918402475362725660991016449345873300699377706308511431282500794779740452806645354909337168344759139452237275406941795027391999525656730506482394568251046904052398559225835052798882253374346733548998445902861732994540859899088453841361216317718210113109190103534323882005663243706284005753240118365709190240219446225437258966589143632174600792877023213579557010949293247343588149381836725294966887412802797622919366751529801003383294778293286834524979806655398365322421146404282037899778220936658964073562311359583154366913781085480521089645250213173239959086149165813029103902759188237610297044444768285127084501670995992564464412321522725389939123826095539930500915341098580057315670779797046882539010371223385628941704166340449133941521863965518557169454113911421514564017543580306301312522539577793145846957139238188886475723844981797524784731542186654231139869801988386817334502356761666913574990769585437012724319121035807111025987863683877682522798125099812799098048594674987708968691292949088645560730660311719095736855159215325949957008557498060492641770577664050608172340668817924449478494248745903487559593511607635002562796029724444221977926165055713057745800191084620439422618667550969376160370246071688143688929014941977267210546929226812185026959637786840834473796659862746810168603569119927528681227024204768219183045063951516940844376793606533309152719469812341691847105926665978724439349792094483325081365795004694589122202295666585703428114235000189960588735865985101267922618019675726155378882920345931815433058984545706592194428233331872862760518174586907754886419709258276106429995920278188660470748408683332294290755804600959512951326036827719761690210647646816535346829073335771325961005159446139602945853946965593541459807807411500251417005736631718266753054238288387734555208152435208138492495670737735585473779479899296569320737277417157616386010866176166582112119043845404868299776861582324273914567367869932636482768711414825878844173251759910453203004229904230296063702034102275103622195741176497302104769677773742753514404601529300200238653526262989272920679565871485644785278131657543279746023261271489196228739013497668167840927488249286739121732734446621011709851929339412858456860972222420693827506108981416219634633307816346947194072222273389073291694724387996419820458653262989221881487268310467776727899012031124399904334981328443365489341779675851192214898557431507521804398546454453863299465348824443849753894635579155475572713772689699694127935736140679097360003123065978533047539593233766132093096803974868034544262169350202801094206442794100561790244318052901217580149008992845458472396750240564699306242424528472476966483402496181754643682508618771086055601140482077238771923865937528705942747475039387627561340595753932050010284921439056839780792440069344418820275910509783324088575773304136094792128616353293673414693536350397821189364940465330511580361857574427907865849610020652018842948718094197347312428449942914487270580945841296985313080194070462048789814161150231349609484327775248295031874124212967480656539881932847839018035211290138410030011371194168014133572522917975500960084982793590004534122501302940188553267739503925169327336139467901622541946632880523214973512632921752539621461426783117038637682638279600177072487951908942147282840995214155102886853961313653579673083883399313087343248608121669586242869488213145682639227624585414978662278428758690105395579263666642671309563623234098030156300294856671692625719089445843938187784824049701240968518937850115086835636305031404502852566664930247244511376525647397733365313031684196278456616476017028664339675950340425668518951310879365840402369821133887769077829856861832166412587891188753598191482171055562407862130815241728928671297568867211720135830046822845498736049304923356711135422570350562281359707720512132480089312975696313756240358547313364068437135501075583727161809612103195993596909986797815224912779604014542770566022134444958082549230001614383294643179989086218121649065875763862211970855680216592446204661107349398983798010232560193808652736697950040035807176032013788254154423855509542583622967438919154629531458456178904182199324986661588769831818895960883763480829377606150197230943840977692117738343091813186231924817786741290760508445242807570999083899488629723366291621010743728388553707511967499727070521585126035210917720328194713511695480576046650851726636038307070717625507163700614399541951828539681302442726336619683391325361584759023263880050584643231092038440989509958586058274585618391903373618919747831984600766325833018897989556543479231221516257613254085191190848892556617440673378833701552879257006345122413145642732986674057087095868683967302806121285159081180549171176241157464799275726512569679732888003450570159064599990107583145953651653518340071233759085655147858560387422089675346507266434142065187442429220373943076321117759471739905233942302056682154192579382373317315358228898851090782767613144633792197935766403324070353448851417563827055535748640539635639681947386541856419996852632144076244712037782128808492227157616261156106444098475679151079509466750103586622968790851180240877051299638896151797804104551496440270210635560959084919333232032205346012819211912940604442256044733906485424474031877305041435991240917658071077903976962694396360665046092740594628594200041199164956796103331598988992882414906833643491202589053368488838943802397354811565455360142236698511316290884797883349428119479833461184933211702461202900926237920739508783085243722093733041524379790588302870719781305021313835639618525003505147035621078366300148024434218736924819130354767020309708953013101033447228970469494370464594553212295021340355435552085361840317520931788046229792804776453370840798643313940738673783008056831225843453238299986824231237738893035787079218669969755746452240559769855926462370084338039595833481735884758967401253950323619903930669420475248332763450977043578848433232917647838103958542954119304350519260603328126696253026612414006952443584468894034893971763604778423646028373212917921446636991425327571269828400693748742704830329734551981574644719837347793223275445241522575801779520990131662738746764025630125661672790679378891547696362704880550604506457443054187844348501811236362096609835853482233231805532910023291824065607707185940015684315431599517679053958720764015322841072594015385940921027637514824442114728659899183650253354717046042398466239189953082492285207321704928426596988822037176913681300248279502641284579085072711178278008657028998020219557291279301382723941924168367960214183788541678397818091744129698701468309039490161359165553692280100679937541768973347211660308415844796562240474740809365087445059834405771956428677278797652106556719772523540312243571619381073793799918923883633865394204831945865894816114518237372490433584197516265046564940880230770772400439563563202921343150110567112637796191996315861893386934951752476795961181501235476757380323066617791226665206422715656008816352207716019383681098116543049299354116630598614286792555079885985156517250384762646412634179171965101693739338609059840063943507812439345730546881010244065411653056621435453173453989734560285744084099866378408999200866115614681002536676129415318697945040868947908480878177578976834763186247604280458851755953169714493837320022014836062503577513716190162230502691751841867875688630663793132190477015035308956081211197448136918145776787828187164636718112376036213684724235413926278317883894619754157170376485827688432028898448210428625526231615578907584995824465247388165727293006016770996273648302733323489822195049598628533157667104424505697896063083891859317625084959351817141012595797844521438017451773167998678048132945996461395079264049729305975217891105504646846525527409879556688145182617931344114809582294022250170928818252318311103131076507800052946083966115200799341272834249925400374617642016213657591520124484825691183127913366137794580569952695471446189247118277677950297749682717895225985731892665435641661777212474557777398993207738583539762744829498371941195940833937803968155428208394338275124815292871355839302609541926839831568554410793145713764370829487349555991321702443240820909475011228565528929505785165527157534023600509530186355718607653018827730376310882340481694315851330587641762311251223056206931048324167873303149224551975708863899724750957673124475312996360753030750245119907180975976004440006968482332017119407314651842796059615463202414640943121159407213003627885076586383091203639381970016643005479325547901395982284350647858371542416123781627601152815817082913366575026009632873898003868322620126865178450653292487569434371455610508291233185206005306450899046188289578378087434177456251930540332193159047144451481356752686037501746708811190495013913896965514695759167993348467773929383403239395591601570814349351101443078921392393239345591683269405347626404968421576382695214565277770548733148454727723097660480898067240383290840567770004696961151946734823581317670252646251999867746709038358944875231842306041830044970981256875179564884902771025715868470542341390940375403442432975111498985784648553686899201307618128048181572090967660780571297350751690642923724773129458855822843123998841690915566956637478661945662378874384034353268077267605843839048299819601571760409096246795865550333374002554390914010781785882962378707594968811705367208283937558195119062207273403005029790621397114442184107666074772280493305164174382800479829996033918760512454035004587262930566141330162442476032077316171288393801872201791283330099316182640402201367856670854609510942084417110405163936675752353115178371381827400038523433673176935638737338397605747920714303330765254533780816523031028045685311610232398725292010966954092178945004126725203248057153259603041972569336963720344638991551306789923889336278996008321247713614207539009885780439263377493874230339216031907369573839016480217475904645515778584919511876458685019277339817209762759678425421754136490043737078838303663554411376184439240303968406922311592827480316356364236181794740443208713150934413660476237794192665552360123122327093617162369616175320684632059538366166333498408902846220384374336538798326590576635404283861455609091640335529469812611233512004340273143001224749912587237386068690306468814719455357397728501592260603518162372149011971422713097795567768199778833956826387596645977514866073030486269096680352295557693478775220491765506431757236783878819865524388949876148047762119422020715001426829614855160673628608402080157336395516160244229371846264297492720934512110095390840013259095203602849577204508760800613413614665163403554935369674812747721495756346356285817678888801553228439634332446339731314590321486701111241067654075001935206189022469163781479408584824334214700482919866032318601929594180651280407253879669711591304931677738685357949356144178010354261749827954165506793038197151814885577448085241896865665672515423712443292121189605534019163919498321717350368894465220284509752906986427710580150095970786410752322214006064108567259141928824776541497733588714362243251872467235200422068431624988721712921596343619173913178454762790591968936182676594276540516309173219131859233976623046730337966973850559459089774336567122787526884781526422571314338374984799953905999964614820903195928959244990565576210247989403228702659383483678290589980490960552856363183133207113166233747885046038766016037264283740954239622526133084522635587922495699555129509479251451005152070761734839390582351535469907477645538877388947268514904882088596088223329244706178671371509826481630786343068759938793750027876071376608064659808218482201525323456382168017352850561819623057857233194351711326781068077008184163944803059123181591488139295846709255140221763331841486705168967592494140271024607129034936360303477692365028759720960623630852948247887593364254322750266439748133971218106081196226751745026330802842356736644919747099932722646770069296428585719001388478717143547430448768532678378231116365030331335555440230928864785668058450727499802023246601882890740781599046198678434721736724331395419149599360466254800726546279466723710299884830103248580255855720175401689235407746873003723196906107451962529457853273244113975329755200345860811854122605408375783906945480725444549679946765807616922113174048221968314108135019469087652849925471015252156928445198848698839887319402590037541627996621488136000075039867888069414614635085461049585877298161885970432236338742189829320799749367686944810678961921986584315599062765600480296049930230365534803018015551449409802046379996724104260965298723567595522936147189940495783352263094314663908643373044437761329452886733544812751170544309264935156136503405405010646328687469687620289044025023727889176861088799392149333565797771010648575257888533568880153130572705371267913739234490891364698211477339370092272284048903592650380597627401437001703281241788919966949597421753370684489696062693926263326586967136042116290479528749530282929639909931091108897352809011058311942030261197033096316596590527673211274223369244699799119878628250791448075697854328156369883845159069338359193960659150920408329626590961870704040385203779761217266113011749465932208094180413514635516551846498565528512551851589575370138345083256808355822802344105422808250517598311739874319706607509071346207849502983271226970413513662303886851524874652670241798048388200404634254663744130023044180001836387531201910116763532384583853037383483718576825869326462353778649791518871048426901152052585995180290725053794275570590234995961581221852214317193784972718698722111081878210194809782854774396237790642588780958400945572388706440563102458297247394753146826631581375813010299867787608229271993104909017614610198301536861519237517635085590838127912351417373016244595004114618745302825066664023522460388734209769508809987190748744756905275512306502040311734673974563320552803538998962572183851892637736689099527826722596956260081993088940777307581782904679305568528527950609013156160271621739303738049179713434434873994257449933832211152520992074579715238208743304750662122501054971772225409381864151363425210402777877950345729680398462479979577631067560357035842470349801407875552839100570414454881868670750562036965805703930217195573627162418684271802004062100775778842593365259955518924586488281480128531232631580907503979695863042677063363987124968417814308166465891863005004839410168414717252448698832873397347124203138565098984373632455211648290491775023227736658936213765310150811008687494019502826496272987857296730327214019283068514700820780109653636096950265438964219443530889968723740451134402815674711739151207408383003132428225139277524521992336383495610514553477248834598334756253308514922445963797016033231619490703760652823061212131723138799414525465899801897025703338575004076213048630995755406961552742219492328674404292616434736036197527633006714445458519285799276554178447405485136603145995724995707127719756567415788900817193297179217178905444930297993632926504469331431408150982497666673342614734766710005516332472935214033458023801568816188166760798834712459491571922918412493520567442721139379116543826469525690297593651949163082664522316138322953956087877377391969352797637776712867405257271303210737398952841951065363721970458988992904466085952366742859155063865918156053071503110007079390619104260819121799446043391583427167958027126952699654639699850548207638099166779919240888098631168852853348235205518842038957782815170559281978795095282511857752627208876664830470833748170522399247374017614050892690524597036027612698838198399221669960792120539536674762811079266889538573042059926667632538839686288845425366128293264327027045965031451210946713581974059030169199777541884903543778833223447055763713054897231856999343634495240774110845566042404206780697975599073222616913915776138732521719755519832767404983863433829318655058485912935359713672390915490469525146030834710492787927588001230121316475055166843993228953208198757434058395772907555379580870855560071203707223880053137221350595141299291416329380277205949252823350125610812525417355957759428703434079778024320661539749991596063608392750161173104088656001935192774771980962982446462042304941854093329515017718266232890973288004500923770850250138701143390711251393422140013034218771179928572601095133559086608699406305670161870791647259174285068585152034276662353131036247280655237401410540782334394372452210171805788123346264437619108699316722758338732656275972311907360188429981391338869489346537353235294809481032721302702647962498830670814551111577846910513126697297313749454316493862647970896789615082084880641534004819413497880033725612141719322558627845716860482345358497639346366180489167747188418716606879083661746132271460236876058106432201207797849148127680315845850382577022929575346263095894537787867486444218026452567912039533517548565069604694313802404831362991043631566090160817500909923087234934384482930656557596982647760400648106644452401718682973107245759670663604053357201430566540325163491004811796568633367169309949237498709694862688712041041755254597847240945647114510962945262668532088862485884970918505310692841891256025548173968110516449126398562099565137725815779135291151864020137393771383339033999235318982252820070723879136052054812810322892899667923762669198666684853359291652202820370269691419723194476705591923541318319880358623575533828746207761700100168506877711743212492384698334649305641559688842860166750652875255967770628818137404663983041157870472341147337206335361311824561324255052281576234364924781898705325510082716070956816495356939398953219802921786622261202963149851714060292350467988915903420781246575581642529168087727053298726361679554540376878307610917954128321972087560065013824133941087265201136149440530986665453667871047423182301938048279761181796865731672934407380237779985214394952838104712168105804405510216701394157137173273789371955999151027796564598504963574958033244815159321401799639361667731550297999509039597973407170091623201986563854157032258692835220430598783362494519590636336697533477209326333519917859303534048422005980614467063920429903289974390971682269092196301013678658525122818672790898120508276975637329505889057090299311916362065390330699193784408470129425294492913211487685575303776943422175694912764160839317109241861501721658420116394404832386367248975813328008862922679048738400831669234771468082703580610736314577339762380912045399523647577607953067072265248590173327342252841010383710388524695877397049864140419031762006666694532216934852119240346841038374070135443882902720593249593610955093251523843789486889200697481377806661134079955233279076320429515602833995572321642421768475089132470940910113956634246873313578307758241470461197737071482427239866722100015973934890045144159515632660217836774740551021691312014289013659821751924031929926385551674456410079920366258992987274434646179218625495430724217921868339532429684626762135284526086652372771006667729213949973705719338782171905206227126082624684015359375040902472750607886623690009088107186896413198504420245727893327770237960512004369676203566809070502916877891102397483020210221362553255692933548922095840088064111661598362478574303272866500394319992656236696082675379784941208760339935381601100519721778449613894962977602449228897301432169467165424928991032673327516680303972339881125572620697214306370719585069139969079430265233328025340910591336972851924578983626769061529045434353104083482579030671235739448309563411909780903037288109529534589042603155663124875185122649261072329565778457013685359750691776122062008497169650301543573871432959747670594096860191957874540403413879363897671523218158879188203570191448572959438564121130294315137258448864210587669079114651572200155064237833812731270912371750674625737280926367877578438510284155279215088598680534375957528017695693074666133869504659831762877866553651603279330521043261130104617728223513286582763644017794600538515730847448460914574181253979694128644866524286452664828313634775955141664964697170109953403119466006743441330636603733961092725166652173439657862374597489562772522402045573814129923490912507417796046174720832019895979493380842631782072574219083928297258081401398620526455549553673974527042161887339510321007786647460618928427602666875720096184832309020870069953122645911973555791073918176279789759769523209237026169352286861740288799649782009885265810193533988916615819084638701340828515232193601680120148216844705372166191244624222734086845320552003043303996802787210819564799966864917581079718420195427340339162079900421745842722333838296701558100213070445071199243370749458183424582011266333760294097766917173856520959149887043456367977086382017799991104148267765765154630101135673438306855186875814483763875557629209242682630582931320849684180474183123730047045581549837234873437083964915185349646104981474312227142805685695658184419443479389634400571155909055391380567219522270450259791385082935683468212531508612261621470909487451806717130656195738176727837513947847642928996495974073613009418410525611571548004951824583105948004276028921109258929630917572302735649547427316008301452031662147191647008919451990466552010753336947497300061245114529246334167772376438758288604487916228845110810343092253878911119948876585928705456304975312907958546703692843151694612375221841074974221643219310522404647575701547742775394755435790539912641291095132935278560024820695098984686254336513732670445741876511242744340670493937035620171521193631441969325492997024262776545339881312436142508544999238888206536118952846274177258187838539872449635452063213679640417515303704602041472699686728895961013035925819268701524416517468044207647728158357627474425942049812236158390320693185751666178022294180510299014276999699539867263875264896183079487758342416006746808152374760730335421756394288893778569633213063010035047398026034932633725296425731706563926464393078713443794179804085811367964978375803922266210110056649284937471995137749435743905939446708063809283691679513432398560915946146323695176764868842377642271131445306891731342023007360806609644811091309146221412148239853190463203726845618987144326746057391782677518383070408896741841414348411518169043052368531624677061405431179364014015806657393105291982300331892470168294774173266139819021524393753665922082686455244695286719235339648635824634163671342944807790337854471402021270076220782450040294200582156629634280795297313375721833871770351413509837919987994651489862246428809376397050317124053173639087329731840925553072365515994668930583614765529535467582869791324479175745359473064153627142273608688862750418250168736766509597505436760039314918289150246949166208111890844623862466257126730797079068903358075805601281127716847035340123831419843406341701716367843818553773397573446040852229841415066468301462247770184111848695017131280518716428370795762054138563840802177048306638619561140983861489810225809413732310002866477673780082906759115564989740184048690213743069899057409921006066272219353484981036210460777802897148856103757452141697718501691387684692221635862696525410500313805614373590544042478842189718328014384379905522273652434686926921094016914823816812004489293710669998607297213261118720949117022759674885851303248701085662887978543054838368705613297964134970309935632025309184809562852282212587196038952550839090402516212690914613999958245124201132385982492520865745108720568127518664381976672108228672125275868204346936821651211688820988761508417387157928040308778550930107568833468047472395503621329605984140373733741863237028679874774454784296619066088337772614197198244813749137472217103570688227543334508257105941289544225717488450160044888896871179953512295760726470368024755977869390929510777721193824945149979701983751476916799968624972191392949097600059187336935948012238263271114343767611486552605743589927477956067067330165806458513749413424389541571052691246764851728210866393507280091919064926982547691679624004077462988984890733544390463583411591377385173349362245762026191363608511140707492197000328740471786339463415580965336338896706280055830553500055480988293244198697759207987709983421250348832253266869938582372528589377939228237893867364115349307821460875151051347555642408220306318383227385241138214535534038187801094216886195882702241012394170477020533279040294005464225522809380089928234673120933580257797110666279568394782372442911693560199409720834905029661350428089810627272288115957434476804334586613528235218515817520505108842341152974117146407445809464683013656419745914689712397470899788490539985450687665445395916953267725042872735232550871677195730295918200233982137883963471307588160801092209245955359472532366169273807977370290023009885838857976903608012682911397393701234618054986890098774591206407962264835339259405239023841049604153169861381965041987744128159660729028105138689911152676729591640848818123544781877908505151102668292386489042361146162295739891415716418198740071554386353777026458127851794014491645625013784006582726067320332464351414151141812804839055741892981000632876846556781009013852403607898187344897049736060223150803825852973485650437547337723541288283577520870835043391607868434272062067221366910380706246037005160373894237948683526750322888464638606551935239451494487256339692141996766153316407383900580166284043030398923510433980545786916155813207992507581187084565490152159925908162103473842787483738716387361776790280010077317540741153294595418467154161433007944533238575597887436159771926088855200660084869813279797154430136981123519668153893706332674271868190333422070283972051462137296498005839483959958821102508394508271184256815074092023035436548223387010988773884290585734266368290912921408226268584390821882871361297989682454535559866783546410139766064723236090239303901041953516686670640522708003332701548933093302413514062648564071262706272893597348791356375163156101515559376361066665631709130196103745539002036162530864264315478636988535579723519749134023571706719517068851776449107053506296569917413665383705348168097207954560453744200437202115710071861888652977283822757996432768249072978609279426620988336127733724280051913928293967377947631977708575170408528524296618712574989125702108895144532004659232820622732672941880514568586348913670658573304526975007340044709987025492215954064023679302607291372180946007606379804772361505362570313315504651800397150565765728468422434440671311563353532605926047911212910666277598023431040715566573211908043772687893002396306775193671844906940481714286818003096014443213516673719472196539436678854881643496450379563130108464044614236454737262648038195080999246316125876315873750975277654278098049744673262877889203626621832057296583954255017795323008585760535885833595038134443333978291467279362938855806112367785470436066183174680190157741553849254965209718183463333920408546842628967098698005590544760006881464443840664414650059676162982973498855414170873514709275455978406241217722647976380082378590913560738563469766913822765773095537348300300856032204515571517837425918884103017925467730250028305124400437090413038876848217779368384470613390846295337506519673869947344179695609504695863826842898101303489207003886944086959947977210631544897427650328240265575039313112285579648447976483481022416828856421084496325989520943350265823532755319254719273079054537591411026213416068021750978517588161433139940606638260601456805219051087069744296678147421900938572504013108662609105115619555088323660135429828372453205100001998497750612602479554413681088646062933316306047582692642994520191212252507741813704098113435184435809474072280779220175818125664894856915434495533390870351434274168145614264794050040243535040929116318629616422650218670706743694356908038458637034220717724997418993543574747923873213805132328440986006178764798501953547515927807186743116148784019276103026805677650039468103552385450511147012564795824426047104474433730985215630097990130850036276673079450567097861692848799459937388459866921536143799967995849204039860421196319398058608394655130813307745887409316703907056919846682548611624824558799383262126690794008925222575860219751426466962428230325607124024102401647645288705173286271250025353683892823928846915192454474915232737926760235474346908451196707675315479869350901833307600883113942731892783418140910320899683232428072323216745014426844663686810495193302875257032578086591789316088904581682289798915459249147939653875479001122901345056484192867087434879982573273600035656416250681343136946350401347506867734973534578245675166562468715188130995289985995918318728446737993074592872028722880399300223598804647982249810483763001030793502253900864463745377127253712723678032622672626174661889061359759400779084954718690773470826324685013022296093573224225430929069246202449063442941958365145208166729761051249752795758991778242739291325117113895826097978508393007659896342877822216529511000986831550864415075967157339392616436668821285149691353211306893966619152249987485595960119987205393039661753744282279875208485954806467400960686723697581801423162471979946301904064879122530888164276737322044428560593963114966303737101833603792941134723881997371803702711361155497556779510066260844174830099899341353858494969276236409277233366998792822590317046373613557172555909518555108379578908579429783187045686287051249235963079067466130259944937734592663738689685340589729026497136264240648206546189681723550859971641300381804892541508015493472183128974685340323165645864374161762058225423324513379021975635129586691741107358726800073543452817039839133990896017486799990352664360415641958478585908894542238381463446265686461421586059374141507487291999259310680462992402235725895844907407695451612664562122307897373247533092646695558265837001505089252632032904307438633661399932309273887840358007347074582326608704827908223197094637372056394266300508328661354741211366376336064488953557012135897754220113488210474587806690695909096933548049792557822258011467633817101657729917073867835378325387504696659267577731334243454524080048875157158993841406798693783796984822456553461121841302055734040617753962529075990665209434613089872109912890043399544122443891454682190868830246344193141365354518004286543515723281917694316124751002559977479732638238610735820199551307100397244748109285547418114360652528773483340738046192431143057591370223158510549690569669859476058779602708805234324548058933391691200521333133874586358792957555002581919468542051540496281347165304539142589180826575720372833383432710733146496709769926745953263616990725925131193075311969456574868674890080608778917074950666399167673705596683024195627088273462239083835136526177079995279192632467944944892167368664141996535885232351304257479925900009841159774902196294680577866677752711616241511432877357630906378725301951894566218101518064573796310748287106838277238954845568247951725434484046395956431092796099440057860984105314765628796938250070385572360908356159809951185722504051707304874229345328355156744376959239946389624616255325416710384464380026290844382182639654687414150070198325480110862216260302907160318043125733468659594681960756302413993370758475544935850634673599884415812375462364799089886112191896893164128952797466124441084799302738237311453441803902423607205437538002639203017180816523129947741326958395468457447844727937952596480211784735380191571623146578645529581030049029510033067983004419475484198710984590266002100916539797178168548970832452339675823369830799732896068078622828353258866563967379900551448294287714687527217300705769876995772903625361532726493306680515150008989886594381599841447507883738709003151296519801647703462263525688645032992880198956715202414569761062521371940431999142719522106955146140509931264102897480521961684644075988651901570618171845735171831671674081842999500364062586450985153696346576827570840095226136698174483956285775277305024790926969560917310645168987866938846511277765124534288631247045382659401183073591996977842727824479204882068677458607564638982991230859635338487306006809871373761573680564610760314440138846469265874381970118254668221780992041726338651241739079687935840454548219272140321823024906826377870447765434501970929405422757137312659011540043875337493766198709951004971232442885734073897613349605888661983850926126764094899769485246461719556616298233199194827495607522224550999430678068478566148476103135110231909315362654170166861862453982133908591833167437516739279655677562512992705305693262718497663571843966364692138254145161088991565627537158136509162485870411491831888522896328245732504842841303140933300959065695006548526567349008545755972449781208405218842873677895598621425327043622592762193958987806760874797403982860860568153685883249911023700078319096889789042334651309082508265244381360885599514047726719429841549749574701411056682685398757609671116039050640487791295382347560118867964920236917123058144177211527834980198562566708939141237309729674130727499533869058881303822230293740094577660295375192109249137901034132931603809339586527118728580620821257680573523611175134915563809405096658190936275906578998635385559148284025222297686057083703636067206595375137039791168037265816893098165700872625518193937573698396084924149105724695109512172592332487216653069200241811563480246709017452971280817082110208792877347798353011368455689104273728025981522236252751022630920144004361778171375428453413248613189159519322467233391495580366769876256759912101547837388952267199587721727784866241418784795073508954460531578369986746132974232855758752154675296685720717001326354555760378253311629203393440377496937860211052670434081915960992528224999640510063188850949814323944219914799881615367788071006889840562397186179670342141962537693253745694835249840515102716042387783874664750633928467826632517580100959325399121452451856602784127543461225347944291866780604381223577992265692261164395647581833335688950270392825916760433239956117038987098204791263055307346547670470642928975099980170215287123177933392538932873401960702399393819452007047290951117129239826334136846688047372587074323386580173402745723243703936625098762356834678603097239227123405247467497819236173281600480257901700336166943650846659981241520809131560780361944515507688783300173268532906602695833296108235279294151599067504902815436843681771308234140510035456764417010600204565485148693376649032443715697587590118295944755114079999869692203259826976643064994138237080368905102642504198101582519042331779101269684874276291829320167750899493776258230671332468746397540277077669881472783378556428135838750567437569779952178231490671073454498032306017474025369557298605807376472392482106687908483681743242963678901135232453002537625295475417939850955885297874837765503027731876439404698587386717261524059287990701553404679101479897054642707297611907604978967423852143558076536894791806590327801685691061603998109032986465297110370682851737136475879101250242440678093860835548507720521059935946408279361859781192110883352747629474628997460941664963961418664801396505285029910874742985751195393429931288378240416317616020296202755798650363090773454818981635648940008588481558602437898790454710577129053016149859929940568776994234540138576650724147896462828648631892557787698874232042078972543158813662625302722538419905902330822636908505258767502937356731520845915504696071347573615430251330778322920633057273354802569526633310477940254168693702344905376179349508092952074965612892552775239625622784316809541533765852305863734843330995736087003210263217152276983284232054254919906488918559613700982314798774745843606893431390309443052037829606553754555878734679591039124475278383738328717378011245168816831989203918853453751050378434784726814657246762830715148270680730906020828716952435033944947409777725172658103240741798724539002010861980794797654701926916569286114455739167057452395647421113946818811798447427978719407533093753303090388449074515359403005807643074459454006946755985536831166312889371806210429799044399695028074980934146822245427241405751871704863834554811112658156868121136287821352278916281743077640648629704017571451048888914603641950986689096939211246050909896900012821179080413268592965754625533959528648683176149284271891052673250701044777226453418956507590681489020336202751128759534507618571587210176776643000212790093728652842356883166464075894205230486641823699557128635239703272578276505977541181111783855655661840768546784173210760357072540575882679512565140075223532146729766498792939521617555559215225413134608488159903894602884109017702956894918571076902201714145454854885856419210783400373006590232123479468002368664955372978141984821254301701160357274809177125907548040534659995018578328682107608270002950053637535260381143620726479056549341866180598449509511612309194612641259834060240254900233629588359512310500130465108544062717134799667362624218152667044398993067056629823508072684653941136509157330583155632080491002634477236387550786416777184109575007169990324783630470558488347482871582509010758800776566992363365868094048009533776283047903008090660720581076830848167484777693507047805946185943980162049869963114785604227116067367720217417329865767188001292842311735463660914020666668060621989559754903878005617593656176121709344311247412134842823338953880514722213524280466721153971282797276054113623630238992829667466761718718656114102345049326623358479356038092668361155180141982999931882749683185122838599690479816408560001008297354557678554308003578402225131920780377371655404391287821713957282204948960734191984172458730217284345996072624474355621496333639914633664152737739891313755993627092611128627594167644944791438243578707975057131430462457846275019627609434220910980235173029879551127199713756423097576110996130590625872926706007788412525817644245453970480799677217398065606614759889477448869538823309738697050154020136113714860296513413494615471503293095130182682810976773614760585628234261861789317038015967635477698434422386824320411831098850133186184946501687240994137541806153942144246750457423526834575685647458934377678239161168501839619801735975883870087758591976335410137100103748965209000866199518593661218901741030643120780234183865803427406031465503132239191648726524189281473020282294782996634101277847007855746595590539937753833508527445869624593379097843375558352847771240373813289504446469632709401282085608851529022026356286068135055707928046045401817915114044268347422480768302775315558576059202551884815461022048099563328902069062441065369469820097784251641670526635477957677030056720334792916130064567556813961996237801035994093374859235197692496987885473519141192115331945673308374683237015680420863223536367806783407107158115216813608457204701658774230683823311897124753564155116182261770688900619690544020756774225326656923428004856529781900741388273049396497036449229638203132660430881455338100249469695781023478441136394520274994565816925150298098296198535087892760860966766696436171940893368877521700326762077148410699807852769719215179650529474827422170957875662278231578740390739800925150047854517174874010331083465732151223620686557473680830401280030793568531242048740630414930075352468374765213734373781485751323176673677069483214416511008787030103862824509173631721242124572057839991308068516493450835525893333392345795245415600807677723893466427124538989961539158465924028093025181921670453771264451843104176598551400597220283032315801717913008257714675860836400952189690923953949855206357382483603377869693277185014706985314331837286892201748419403875823535073839405389256355511550199381063610453953332763810440480954118419106878261339026019872532465687163354135833100769698680572372530703118104380295264153481080326365709524269510789489144219303023551357537717441817819295936399981750369439802256289529941383218046733907393381573522189023115950497583170973162278982670227916919023523662687857228038237295344512380057272135851038183097317326355003868267522312274898333632846391918553843446025787606917034060102689581424044533101303117900996390130884416172781355394989418162199746941790323506734714154553216670229346053106181114695876297718133561112435650973337909152647083899175928297849644214245753206098248382270467391348356589479855386778512794139747851521008235978552642171991347448707242741579047881416385468829408199846945428925014542899550604019139752652568266692342895093192941062657420633165196874557034960835150381037688662503491344896128250893114151130840376398360583318657310009203045115824591635327272628797018918140278414326752242828722586701975948882784716611824819233169521951826264381295511863128572259612310327660502921594913016402238506695304698721542933381719701671956690080386084315143183102478291271505472720280109095444896903307939743783196673843922646079454593252936020464569865862655896042634204613050736758578095924753783671458924679045743158479402984817187130917665341804647643075616547613232788858074325537057345272828183523538192723374633119828064832091135009652022750635488700760402697522775895420259836227154220234070746608901533787351488422465169657202371372425485011625174267164535830001275667100981133429456181269960761215111090197860924549070685847491884759576101850932115749098955117436023585992633688200827874004981000894612308836754414513309863285069882553147133436686840993932261755516970734302361192148991954932290356791576513961451563815418624564500180483941324500718985752372605252052450779481490081014092674668319910497436490183737547042412190213404554269234186079423328396116347212568138864966274999571092814193866833761106353431108445839156366085053801140434831071623339267743354180344997754168562647415112139737790368358826899994288333031753550938058606701629642350419731612934878064319135330885211720331452717083499605046241150882511525095137348704947798097850394014251617771734403724770358979625118619682012328752815956674568751226651631482322536269449371900126057214402008207096552190604595063537745709105514863324086160375667574112141744481984716529249638847442744795045871719698628679302276235386584179427508389938416360461796960004998461392235443508418091938720202199155038184863991681292077446732930882127923037919165630919106923879854878084483447611412390272778951369078701290543288047910762491444363101999951084997892671278405642102558352791231368025774930592139069663907815826015213304220744169282414520879898240734975951909513370929173497228791155201538305416069924173000311479229096994167758573700587241906072090333073201948183398345065736306277103631265263981412434955195462051181504755589553063022951446696884949700106298065422072831624773600756891799319378871025981886219268368564626773157982014577876505357547308881354786391160412836626247622344484244724314034526593075091011650983630971164358060787325169862857783191085079060032091696450266283644865148009793733741136160171427291550930343633120953707109520851607443167679608439236823866527616932025517518649810083680162352547515561274333702812326883985053197170653997977755297689940427681851370060177184508297916261715504975937120501676977424378746113588595821982319412365925063146475128953554940156908137406883254960835097354971662063091694512536128017938655272600810493843527696634310367311808143548686520807626332998413477002363605312009482034374467224374308898061985246047673301931778445677101023881961522533662322575783273411273939956249776805258750334332685845791993894016994691628720979721485203126657989110358603669091322972656719966419090774435544202001052226176634320512051384767176209486447164894520639268572935622180879671958853744329247182362436247945208022275874256015342838449454728615785230966806099172512104609714530321132055624770379879357022397387330974605049677075431368001779988253126349070755701390676110637757146431094663096234931790359928554248356383894413849966818933229912021804822529840199117267998489127150803446142182300031316696385619930160108919552006238706934107645135748645540838276075522125092645597755038803563172256107433743924655152630826796835909817384543206520055077961709335904632957201878093472817899176059689190752910188430840157669928111389980510613906718296598629099181983825205914326892985732247458991157092872814499163318580110036767521564278900307513287406605412647217639615337579216846628288905975412925379445547134796419387537105656205359149554861714572625741514208497805434776251256744979526708083052327532732346313319267003308428873839510339061847212943887718936467130733906436115591597862531465024959468078757378776394414766317686470142239245610289570839809779736515752996650771339861762168550304208918563897564276381586744271294976085595064554644836950685426984042467221944834619830716925383385760148434004277774363276923934457019446119658294513967954575481607821320785776982062998522433201239942004847417621022047660514476568174041132290984376814961994493242074594385264313217477713309161464934864736003142903350306306618645178870653766556020297156471801594655630728656244886886266153491765920049201121796896659819442991102171309268389081113411476696877436516993648598155622785423077271962984758197832372551089424857971893244442782249871768209070350974552350931475925293562102826293837007278895259052985719155047656233054095393900401157573159331642330616214277311712388227355110107297504230526563358763097307580773231078216042409113626275160431399312383525366239954239126369753548792569524053174839620541152448758800750521307318670584344919705477360485709224853556420146240085499433587254742367370144699089992258694560004999219254324611437618145980807471320685227259260031354519615338914253493000331059817395081810432615815740502327904601655779787653976431474767628271577495348498640276475018319582965297451550581716727074207299596137645420937907600481941531484383047105761894232365885701361278361828394702642362736946095110487457739291527499128401281360334216778971929845740993410335096251115888745761780630286537898103669405596549851059084143676700112007319991923927560005475411472098449976623735595118317495050832356776147060840991124809504688947415396250173642040765999531166720628669566687238599021056317402056901859898273645052089565246026220351004557821494320982394205107829379119442012825078806237544317539579936033116194519847570201648445392972103836348367300710260244868001573076543108487553478268587747057621198645662578359466411683003421691959056509217222649689165681729858957015793710516836582863897772507456090544723406617759781833048594015097777039915814178332247632952785708220923439352723617507265813162051286911064167908831598242689106955804939324901872230662191339307072970562932624227194940178903333134177647952674731505488500734079661422497271441863645411993445620725579306661931952445656737564123450134974175038466481222587351515193816663475410322397095841625384541645004716058796911733659781579321336124809643422999567599424474954223214265109001714754832959794328661796021478570311636593894005288638278379982466108328272753565053029104426707867935752811404385636853196282197333503885823121857947140698739658460782965834549025774207141155847022496940524123548108414761588885686329586153542774004289366497962821447470886264622342218593548745710245347371075473991757288058248740675606266331027502873089295784670274371298735376596704985921756218031406011356790834183769603580331598152230739169002892581795976553728575572261680465875516402721673327385245522400027747481242057647987150839749651354999784078917712193720801018136756222808377794271428866571398607435592690162916706950047357832392387119544708091193116657248914408080898204629344111351020054922393713983859870680648793195462277914049608581576924245111765744196674703682921504881347279521083965401427046225557720480776970467294258160995193940912159375072939091333560899579897120149867954017585682946637521853796518988625246463814171678594175898750502286760506823353473612259034814216128659889758844350261309909162038879013919171368352862939488484597538021291245491196826482307657600887399373375131214394266804774132769316327939825411920273130414868074214487358670135278170428650262744920553590734808501677021243494633085734111300345488950860282935194006511627735555619072623961621020111672982634304212598917846502673136729252387447337067272888472574577686581426279907585396455664130354823320287076345661327209518373607543607386874095041771659288130074476058362917304599976689271265284197413004777260910178830859084999834575390878037517832003590474085435696499089681114941820651619818432387866820730949769721963556014937888998595534804320026623717874440007179926789011185676695917368340545498292020385972421900210094330729369100536164008554141122573765191432986683275343596352776438605696658812114727067370831642265784119766610989211104728231942140468979749241558583897848781769633530943970843849152727043150588982642983959759231530076680438788486149638263900172887498507912800137418768236063417325597973783906959817904614658509093036757619823425544945971645666691238596792746762064709706717368011160301249894620011998058483730977037790211044514563495705118744300383990904566802268510582253261885786575147194942172895750460390370635340769923329213476709331588016699850763294771744423693311408380826659448934696331247860511897410901411660752024400701253622242974183142346113270367138801367175398545767827087337296180879777343524627819296724224007448782194019926243461043324318724635072705127249599234277017637623713436748928119251792017546908840952845100133312414504063981686244993718318195339386662582774107929895971879413644338815024114941349524360003171124753090165519414190665169882880474265357010364759931613272074144857929093370224691945531798494486429142969579449463011053712821442507569686907516926499053817370332295524475266851878072856653942479823978900930400849205636536696385253625582711410295044276239735167092716415665464587462822504118828596335532730815129113150349196533102915448367800550767724193144318058830130073167600795996882679682651473430630716875277839951696089069864173623316532955574555192521093629046624580552743735905764247262799454045097944551749489889824341008673452399608122779115124546724397356315888134844025449830049314738790858457002746048329806683621024363375287917095720260012528347156907433020910120310278226855824073334870904196275127130826971406882834806758019297847761896541720486686899620636136211358137891647614940561800385177692445775334124659461613846567675339229518241383253242017964070425445232704375642406470490771200075108204087045351251606803981474795224531499872852309314084910283011766453716635707974566561459257812802192980295578183084007905001235519167764578741696267669544661613020887046017506477247987125651512295703299336361345641936352147635007710460665377750490837920357315561604298538052923190511788573464712831534127793794862357943127814990177030123515383286875366906644256109960184235062437134792326151537679212065784182222433782837081128822455123772656944159354092753972708129866344648656463595022476375362619136884094002020717531511971008111199740965150778189511229774455966193821454175327104544137969038164567178215167519683993694735533874844916258703292385407835356051027742160684602604812759861902800688586933517046792787061694604500394017851334022208516520533657495660737133497592237116951738563101604878476068942983575989546277304696163116327394185642905810214220741499033579715714031113028407559627920420778295712831368275979762983774075796020079464778173331125601048129559914234137773294795765980885369307769705409047899367002618392999772699585379438694053860208170995728487402063530103650114222652012286171583473540474044572379495168491603739057329595080494363109307394090956617274867375806018768364951645653502971668314676466744099069499984774633463609487242013043753400382821509511584943773533933537265532988342607551998423332971054367920413734102986883216957132810123133392004960502993560659486112154091376576647618340909251571413620313042591988706770803332740378045268101845720223979958933338109827016231279672365115689506980401710544729573945332710760662292784159776085665156171642182285167331841984384045694896193711702416530381705633902901354876678957323223478552285379186011008349676441803493208833576297915967445633966571932249391817822696373510382928191397424423477143774767506891317120067473707022800994349797251876176034602747479470450062062884695542760667900043016806758628857777649947568266447593023297009813428696696264158468574274040472442964771011079607451091887694231951347843599354162180828288826007838349100466120793948184986282032454206617835973359290741682271347673679101403899778351206917995275189698061772638812575528779904875922379173445735838774894497005770411202305977377838804699738131726280460420158444999246468690290799990227499717505156777447416139691589980327930841325447456942594650648794656071666155308774551863779843365751987669583506936689056337471550940238364058354687804876223075037196012106202648705273021077860444838585305482631623929708110704010453417025553442044894414322857918137903513155139611759629839387080399961666748803377204930217372727959951184216195264395752534764509738597170016486656278231677038045109432295515932439418712470874947537569744452853811505148072441901686783035626477880867534069091927370445306811222688193969880577387208563241267649217600467120903913583003478958636179648776989112503946853821850685399162742877600431731335195385177246235086057525409822478139958874280367785783534085975362243256872308284617393724567302353600913009006604903630060894251936815414075140002572645726807589172887682146264616129327437744672720569850959455021510174013681811588466644563785223851673572828276326366920286180030389949348533663844511566287718650966341629972504097774328318068920669954094555334468516987518891576824547031440319670310431109095894493089601143524922257452014785234060238167187054892526368425134076255847305262707663530669934293176273852842916520715776762133322294190067305556757552642037993483411022159820374092757043123481662232386512509644959166942255344400766660439529446065432771369022456545663773435634386756978554760266824212290193714008281275934025602348942608160378697122656889054419905674399700801528598260394290220508401165942877565961236364240146815825834995887958635396981625344859624974165731072037337595153654017410371562918658379073603329892492304513479913655051858503656862029069721350992820125900253497820365982693504591447075236952617197053409092877033267563352918794807123118622908000779183999683300386407979847233390551449213435095614485481657855859869454198322786320897438690531796055535089821136481327368217093077600853084780446508714575433644723759507118023964515276382155328331952823369221546667239069860563320089310563425095685320312785776053653249448875840791409231096164126283620015383766718836027636317555665168548865570859147384500528702180592384759529674330690585834074971541258558321979466224961980308518181166832676575962699135411576845595586924865707762896837069589585523186228655922946257209280816383929934449414192840384018304359029091359463537717358296511090270549211298063701523837296397476253677266658327357370885901296801267078402398404674130517543443569254617823068920623299578337231322306554254194931266233661034922609414569799955128627594152506338966046784812281652805035774842198758273538932528334067024621076106186933001851319072155171334618748200209984985897969099644798869718826179144588826641331929413016828183357890579793799164268794411440227771037440387207740033179678398805181346623383840284662224243854387950753893241956050727978128517035950803469102057696475319873515187676147042207010019843340588333403608436003452751384103556111746655494248306075050457671710358616068790255648477574282696052510245480050820961197255422237586096508096039575003234178927228886986655080090084888128853120130631398979962000237721389937190173369110538607518522730980345665986646970361432486074573556995976706965673236588997869135667561291183340822421346264920024534392245616169263994421869826920085872352366886115606240893627954126030169308691140012015947757629870736596765654453042211066625467621846081756163378320479475026200660742842123585182763817065322784801799006441978659877858159685643369726144910224778038589376855257336057774543750462980627669492712000331893602703717665649847907998605026753130846936506794568293890371951987330777929215103213995342972759986384947678682983002074238181988820966495382030785270786971993417866074580328767178995428634764859630080335423438738736469580820616125344551002897847384911297540441365841789997931230327541063626829000702203688682034484077010155597595796880325619249078865998797268874070663855857357396032330489910228596822496687810948118941366257586136350439148391364801081626191742519073847802149251912869331196318451427667239047608718302285038675313845654042491143651451208179175192269206995688158356006487548892809401965428169840888475400881612134912462294757018455686648971390968689343413773527733055869029216009856826200669661854677219291701690426115082637333446293143108073035407323708227418510645019232462348206853059265793861973219068406696348076488350815852446063062394127947679451281502457835351006074967657730149326472654692399513328078720894353314399994763629212398472126317762143817289062779545375621496857235354930721175986285788775415595400408136588039737597234309927169755309517020271026540401292900086791418271719802298323677505301308954837918767790630264879333270076353801233589353892348641533846666850447161406962512328996025281551675806308592895453356909714724084253258277177658485931850527806155619581780957366734171885995936587824287911251837619192760176269037859740559820369282788314620453819259432904434479973026651606718404833498595926635754952577739206746780324727223780134584763363855104687443004997136596180160941827862263897747449352873054394955570224697892993651318554807723803740012242616367725027175687837466846363549227478921636219525286195381683340400082715161618726877766822914271329443957962269897868822659629659383331596360805339257002685598410496665161102981728016627228711294548349131428679554842798187770711553686120319822629924434092427099150334837548887758008686496432859981382141381835567830608388293232612165807839749973045791197520669675910647493347624986622944211572903091036256959736372314402711471229034626787605946825508783566964934410832580444929108015456507240794742631445627926231349713310423035986665820923475097813364768702867972054461924021753358465101248087177495617184978370721242772586338616739216913502688488196684571800133609011542997433392183878969063137784032400997164419029658791096368397364668394149451436415925422318926805342167397810987033103356607993180804088972150759332760203902805828116421699012521925735496964789426940903864365653940334662692422914224912520271982657816385578577004954176860333013952195990930653151315357853954692310887879894063850223807595575772203332794208198519720686667971643958118328469386748349868686058475270355461808041433228646235541505265902961542265887164242401868985264851352953932584143252313765690116083444392584935120756264376209679763664810036007347272511067226428096556929466572463557731388511501545897414242313627505858505607221988715724699748618753782831579602544174524140850592607110938855987078619103502847131045245882113192072420374013923347736040576153920864750323826486719878822516066211268837355678268349379649290210303687412318459403104975918918850163874789571024488036837650397826828001401234764299170065946201756305679850532955097236379341724264095551531073431528687413982045529503359951272942661366886581177533945892241076163292212338387256209539874688458939808930846438274757722361470189583356695156872959405093023274398982649183082694100005116132368941390794383651125998157097641950914994614846874698784293993494330589375186856372897700485796781557985021275482987008248204972109343874696812489137640608996927416456288668493123770813383278659219994214214441360108473607393662844556800788941496852330140570656739218545271419811077368136487929268301255992164358520332341110122007417478621408080885519103809510492180898377391743257756990218804408490094075514322998713032282146202000399651854919243638470547342716866205459795109116389409216713159937471194622208927486759888984892401603632381625162606797324597194532844041851763453560103965950560179797077368236129825214473983048658092432348031333824831994753064017485934899469612282462512942599391838031376013337936141546445372723049897290278372748405731650657530035051311848121051014852301930269756171652881659272486305939828210439121510989615124626912788060137706769910673632670834911754331610529783852136671238415915292767430162956646194532889182879405165020320544711243527220013327869523902211767890260125316842257950414798569637305819439336325019138612122900674702812209062771567667789888677924984096023582768331611049295625982383933330117021625762318057980698994721246653193407915532174357955542367151931169648418506892176114917031174797529508575981252267809637902363257575980304668674123010681993550630272534539741671356042473990677756482274001388987928402401390964071571633697889375059162174613828439238071887853792372359345237720592552721181302212195510916646071590653049508520972884795384015708972487258526506732681501798445816038036520742032745866318635376160008418110180875674363809398674287841784441472620887647209600080381625130088253938526500059422159692247410711021045228685896123347563778630488334486191706951829013005437817009636787646484844418723291402937212681054242523180123942845832067580504832309124652697258473015364288095867636765895486393331688575198400278238505481155566093333414222636541059182905077584451218863525195262610954199838876654768800565643441704126779272884787689297115015825532315712797607000767103725869648564170444030075418361357090854770439789266819815339587091648940868373773560942154970951774279858449233544607661585713704663824420345615859385676092104522080253337496713852002010466193122114484725014967878335160641984526690968117793824909932793871845508255745915175827379293272733212924003265113863103410276780325437234073404148341518268309397130257538934010719057437882798415275284193397089982327655600980572416454825367232750733184863521065694847521419831378682251709599745186619979298619781102906092713436277404992598120605867921019119138799653895069079268136896000590940084166213101032542234609456658948075071062917090191941607632036148819652335297124456318259028994593874560348490923924156433873039934491053071690916355525133984709064708324851525534427590731063274304079413479573304160654788352973248385959510387706522139856209579254681641927900030990093781825653314044635664109826686765803286144624193371670322238379150577282298245596608461425646167432496321144014729777843315905440223512591689711238495393465465885471770327715946579212924912807179880628283724071563542524172314331786470922089497320178967358675153272978747902219127747506713549377338180540949598374549419869479677022047222693643851526568401552376436716012626849494289959640213231167845715963656907519472670421223542951644521235985630299995494777098350733308359781013318206742820952633736138576333994058061013379946808216885981598008392397646151170665247793864822315676864840355813238163620198754856980854641328527652297378025809866181463950160202310674634756518202132077282384039122301942585999344444815732213130225685811288758605818192452749360894657024162216259866936978240577139846923603911504997367717151164223019722186891952452431182727457763014236787284916015983949857820891321454950904054567208808446239768956488000656702366987180437188762326983781188763334743826619150900508471618873663850160248416811222051024894271216142450098757564771510154960820799097056425023070819236232399381872600596985154546859047630113262763655076916343058517357110101163216095204192943015697663140240589601310722549106696071237177007170150556144832887387028278724936131488873723876989425272560217334365694902937024941579562045244428068728403617298538472647981237468801238713121740252322565476145612968241202960548964273375565131907539513043540051216146763251212376232274837717032089485519893496982703882397050262625220576560338814884112555443789881655013619290011638347082312624699581909978213018107362151627926233571223176996945240816961174067556775680667992573781550842081389475077287294851001176212501887224402529649779091824443734900941729785883267527908776872426908119553657810025149826364582806037833295322073604656532849958913516732211533055483287351876867392120729958252408896824913513600692431662257933872579358446134138405076124666559081399813662913729185494712639397824625848692497388033641396683567062076113116482439891677784588159653535450817787079287934938882584571006717728314711224427709130973920891191732010716720024654413997448404892260999166240882636452306358444260602539081573857917308640864553471390323273256796895792131039126996916522158642815391331735639177487381801286940463483364697676845606885866639735643482574485029522924359592500509771493700806458330321264264935784170074016696365597577475436978602090693026656035559355983437319917955005826388771984674012075242749896267851555931424705551744209283179267134664759362622172036456924131937208581975599386820996057800467002015937441981071030956860558856562612906057998219018520199341457149435705171378367747939631122963822240167955509921517930968805977147063280327974275951986326613904891922679751883127237773535417207075866634489201845008176027720781175441719571112113050367671678814318989073445066021538448426164534410273444903462055996187494500000393452697988811909695994546536192213682579527259320242522631965249342700446556959450748168708431275693325203820031462266446597224379035557561110771600167374642770519356982566564004292715422782859870920595156054265990801361300201844616836236942664078739481179490536001802189029668120395186226724322161778407586566759375039164670847576379458265314204509441309121279887552182286858443283014370404885780361718330320736525126043434851949487850406148479157003747268274516762679637561702358546804722048208414258668841222994036930541434473076774432600999282816387791723331106407958725984850124041515445261085511645290908061633092428993509575343888103307833564214194151245672818438163463848502362613908564133227531106474527851387745544050725587386911778851469740359569550477169076410972088660265172602520593046482961270470817021944445249719296238966365592747269477592796410815064863887952584375409600641048389712976038028641525828788061787598747531954326917835217801594130002652034504392164730470522035325217274679066888775309624549234600379615227567443276814315105026234374163040790305809920843601594276545407514192760548519015957040362856569073687712005741137493848042650095043395346598952874607710023538893026528787089842172058305616817860586583842373010795194901168954376675146553888287190116384662696427675229651972125880061391472335872425222961510831263036213800163768099108810060890308906083809332455235862542108261437404362820749059900144734873081386229977460267945191948816364320545320495408407465076822621613607638291524705429916056555026546388362082310063787757124650297703633239186257081724246029386306045416426593589326019600099181379981358222527235088469516394337967954446035051619944559222009515306956174194398896902826192997499329295862583331746450502085787253027008456529783594652148056900860794751759280990940736943926906050162536879125940657993040090560926966128775508460082443588147352138334977970231035246707597017703034626283252570626107109195710680822882828298191127352151223668161129792528367068683094046477667586681640870158331201923419302471547105566320489750527259032568693673976152605350841018968470701904206400442255964459238688698548987782652448186114769099016173975768112137470364418509856573444590505953909663910813733849844019245458239441104202025842832918282154546127554640287843643666884190796049922578259349252243748986318292181619819397492190653540690394458335009829248292156668672233697854981072662618586305236652824288847368122403055927489565980539544583837674277815339992803093862730720702427098232143005008691577966778477520884443490127417336576995374509805069040148492440456006805105594258060996939175446795090566359911837186969740828155859353867665464064340940901478292688662217891618130604435098631703151976549750519537184653906988309840956462441937907925775863157287339744720228529250614580755732490334429032715241418117367772000121563462776956829770426373334126629322692800637054729425696251340744200357904399589521958553904999000992501625882946819360367819388714547577695339057650326030281297404247556819286161376485499150549794671097556200755109170538175350928534363326464872334077967509718835414531045285809836104851255778516483731712322605731893183182328073836370069770695750612785112265360559217503656070588025012639113976438075044040279263345363355717473342554678000378861707275314282090185592388783404085161033815959787650942144140846554220712079000519683500299047168882386718840392627128946102133220849278639912440862568931690850373041273282142261651731318856934970984336050181973850819389178745576017467254712145748989027003397568529007744582962207509860680444631987096900093327902770959223485786642875736445625483542691007195187492821688653033680734773234397685430452338136395408482356264560533965479987689150066876081259389715887592849266799969621124434888339074344893067029133483099266057752465425448381033951204183352826169094126044193238506533898069901986356731137571644227368823934063495700256525750465923447839312277075463908632442012894666201265642067872099340204283298807873644427809235933144664171155725139644616343281334435192507120352552604719442294944344582733227758346450699396084668372968097160213933481499245020068651458920133245455685600733698951961687043515661539143010876433903547141408155548435510826295137721672938274343179960861928174390234045314859805556376439411715348336536935214024585246231787448039003669932888773163352956648063792423835211961189081847858149066438009419846667458355764130295414307889692357062632324677244683188261039451640217062464954055613590754513335690241192910859805073009555256216907634245253181235618558825713117378789485735985729619583161204626727053675426207975930964950733440290144377179667837422137979218219987998365785068924972734211697247890613974359283434197892936655368831030575168640005466262502500614135382218626594161842425548517449559317651294960412919022692500762623475396857593650870457990946344888977175765282889102627020040207395137097750532085308757192690648216150439079591114238285957387972862792011597734117070740194479216032602910096953329138731712826264905903814865407572424288911491768595061929539698049227072146731808514649704168510192868234496828473836193117695316879650230626809282455796923315710858648425930620687761215555758922465792451921838706353396833183595861572661777658460632703447104862143183649963593921509940384808248084227272409196255920268770877315133805259644702388899085400800275287525211733284850894086025284419966283848237778737253230163836674792686700470722037781674313133287580069006527000089615446885113382240115383847646803900120759589972636123915794018402692036221939253039818469670776442657058746884497985897654453959684439671653919151588758660313095211095446114033028432173236019218609381793737385782286584524019452602703748604219422484085671678802661619093157891991770490748746788039947694144138424760072776378033084182678653776111660001805121264852113141441463112359215963713957611202105233444038270136264403480858907368454020611454296921722476144806158261297656469070415888384003123115224760432168821388091846704163682541773577981496138443844136432865948220638737534024848136395593268910198852533474324755095116027965114347959820288736600282621950721776972091211094820836081365797824390463657912949057710792121179393548554713661312183992627002123932166007311051857022880827887192340009030464989705526187662348508629383416895893907013400173882644364957151319370950294762316408464707909651245276912273308190808145215765399830094827122651310873043967737390513444932505263596338142587207733554954747425604886240018224987229199357123500988475455701282965890342292348335930152845171615757515348195887381075953559793494459327440001174179966279028034972039298211063270779617852754238454809946715138251169699331342779391776161691171047093421434735659964910059413548712134001096002870883807324070853208522939024630841042656450245319040051857307578318038009035810701234737035586135673157461529534541505331420857506598575308505495662064933066670813584507249601914552265841263663423788601428556998483650080999030392274363959145430923324619603628535537470969102236204839482578714196517304933150279973525782741463530182182196475506534421189045455934808449889142904740119134315601667168060848943483520922830669951927435607733061845385199530282155753163734216447550936664134339576351670771234627127674283657296348223945652892273037486212694442746999252651386421447359517090308083797464551331393411857531469700276652319511873568088016565643718864945037042116393026850862571178174361402989045216596937894828708510561963842570685467750004439023571778051256444980153805293579720462348964764514256480171829580361851035260170167425972743792926447746062397068816468892155464562972529129772381745470837121608258430977532806911646927410755432384928727371846938180958259689418861971468681052813556850753227176073703951410979664219562242451104197805474645459966821110623707516674278997150033483096339511930057171148734463863744199618059316317052998339783421328705703202392706334933604093154252163010214326934694294157268645118612268523626422904198257005834854629868667398839014793571505273981711647038672758133935412903541874546592260564877270126539247383041379452535600235805774593971338904788597033488919069420182577965472754469855184924131078821930150198410012278943796659932796311538330533922927163560314941101737329342644319966868441199197575574788774804687919528050476649359825624443783147108765346127314445325400703007632781941983818335115865074908008112529082583531122509459122612983865422496744020443403870065153033782493676664715159794812757468597434879128628124966968385634969016343239645239625599639275697985820344717691148974451392146922562415901714705202282729994817004595700012005266873429308831735756834286012524949498047096365329332371186753738739739284213750388077254442194151632091766034763590895386742348744611637228814284777372438354906538759905993312074153831367806658394979274699247070144327790659930126536095271697408133758669883112240168450262050786359166816554721720318591186149936644967286938937522636914400926125696912434035701103533186277396288218204341036375063083813029878533340724381509418159681929826308507906271544664085716208568142628325624287030355759201816351883689506039427837564638338645190023147909087843830360286099043069723660048324878002409189789184999431313789877798298156581698684918370900968827858022355762172942280264177041271716926503972216545283093928861546154943266620144225564862139046080994700403817750865812136954215719996710531265079211972973233749339140804724878529179908521078983335563121765558853897171464866517939944221605243681385712294248657863278735670529176657349245862798271884002009155395465627418198599090923861839028200515179560694406154444637192517013024222313649297401943406192681906967808352651735244237897778879053699243307648970482254595758366857762406568494746691306226823470462306994019179753596011934419109634733180356951460296527446708612039958417272013008966733378778777734184548491836373173995023705371249250833930554199069998757056292008016781155549531230148641583441649667977216504397992116172397931751552957447503517750404504807105697153789113304090342626289807367598776475623144760502057894181996453744920887371882794259008434396705246368315039335126856457404977558812022867268275251827118016121221745535833845117316023281275421556314781455777901237090322373624059593438317379022050897803164113697234190546763749557968956012420830546241722644753567556668736023236289932470091053854472232407213006590418629555041797299282421196412261836102202663863686289877440157165192871769432052265984749863798976200923002495182924265101435630500525311836318654914887182465129442029536904897828447460785266848467082270367384124389728770510868445215928136933080592496896566416181527226139010570040535021537997329156094441178920699016228937925609711526181504788246769505293647827732215966028251081181838006485447465265980140929984728473015932355418154546393742553411194491392623603876533474294558419075103356408591505304947267030088772588806627044063798297377728948227320209895598306732500016552166066477116389445793056175340035318239090097666516068513484805099563924505945888345150621949344669030352267307958821860301510617226367584977700871616601339751807466140265410115386864230118362202625844002544392901135332384921527486171585008877520530047673477586262145287825765033538501493663043280373444518724419321584406772491006988167117414839938933566596725208125690385868711914158815809212793535897158530357929304319652132658863251795112307014737902244719032432560934522901441721261061422788710419539331124880571944461865358538862074941613434062786712719484197799815368843457318736937849427162836920420930658236465575038113863442156242380898488582081905408329563518274148084659668751539142909556808290965493012155877870100325032370295849149070993224647967768637197093523449495780725799883756077959128830263371240018987549538549381259200792830441579367838137252606088689106045422789986726469271419373139527530761236765251954048876302392817179033773082904668167915482901069337488620484803992807912736754251055042497876141422339168433889809562353040345125922937263079744621278573677408520400612332295979132128197315060664412198990221287569227225861793230078307432263483289219579023471918611859661598966585519659838952814078774835889497486040995167163917693966604679247252424364425966427441844902836183740011991883148097660669354687507609884489235161796279956526138337002600695597247548580852004313009946722010668046506516344374262022880219404795179729820464244788661914191923231842320324131766666918127064363034212180912936423903060022625861157567577756127471096343475643130429801547678619481343978846944796372961215622846743319578177578621566848937016738846763820989908458389883755587337981138967859923381245713684362599878636636615362308393504436205994055067108600332974720182674166750268820453931764369659436865657803401658899311398979947374758203705801248837698756032033026614205556480633207202526687792741424530853052748220830931707437649838397507004232559334080266397722183708044229227303470314087120702269936090611533130885841751044028355780885494881662826556165221080578172383950693923884203400637755242366815445110223033673426321632794136380949137509869235259841825363864043351683750266552299822873587982071051156181439436612760943901413924219946295273560792082500036271357852374311915566945620605599645502681692969015222485865044421202973310510447085738650461897288766484403576141554979917396089135279125726167915252212252202211511467258471608658825652660898806686732187207062154714366730381659488851107209863670637370930082536333555927209233770624893537716212757669523428097606059687998954114636308954659237800698570099308246774261795588766231756946324598396695734078307682877000296258542835003183669866400820345199961099570163479297532434150698817869331368321504418880064335267490971843884828177779066520709587297995119091359310826799212484796194055933445433502648179880213565520816114486733896602922424162083710615377134597277681536998570893434462916949854758982863392498349308223104116997584034748886177400069059167505968604602611448760047487005787147191114672231659867535644900340962275686356850171871100268400945454325648828774762213590908660865645860523056493766740709235167634439905837874030627888974309142790967197600704818314973648113036773423839909763042191679381602746904631643106158685378585250041434111845378764050179512795709235171709902691570361082677522634628022500542222054235910393972979977551636531526254740332511622442948209353345573308674458041350239154967531966463411180477740167681619184429657505418391940754149149622320746774833436948942507084769523661817487901286291344754464675547916054097965401890865394082104906534309776286882487221933198578362167186163596603060963085644954688122880049334863101666049903690782015653494817605523398859834717582836469972966802506681386520607050265900335233013113845325552645699959636873081456049480437965769652293861685136223198273420130103682927585005136166715730710979379844855960211956270994914290664178769952506213733471908958613311535426549084715842358817220316688252575460915975731574992055881277801544947346390023110218888864139768662682775028040407639608422396036613959102895044250144408959124437169331426350964968703560328539656536101494605210338747963733796368484212160887574642917328632544181686027075495304778626349602846477942582582301324185130797101594259571056500111843823888375529221276831817615342805978806622201403985513581549456206867996026784126263479390597976918197412117845871029750843773532798023152094152844363604791639251499894640672552057191053812604957738701189878962220622362589853728425652832482708138651457486085477057963543584745763461567356063729084706981759021910641079247012035599501207665002741900573990332378262251490146289688203765592773726059654057125400613181120033352105563451078119399960909865445275384300605616822216818299433794678935123288894760825391530156690033734512271302875059172304575289144182874024835057902116686277424256104290477447313670200022961552757676820815829156788447921516504048358921476068806127383804426213972032652445342223804806011683790391072097319348345235316976350735662545520619901370455652673867977993573661538000027044247778154040960246489473356171906495216194288357168306711560469938077718516540479128047719818290586343587149052441759601996922412850447910829294358763408975693493503340059394491706881078900315024435855287047571076456983868446961365096693261516679190991335220926396048808542315877730857863310347631165146807531485965240051561066327188637763654661297366336451565212184919303741230136059801167535425327401358414037305084726107457265502498495467936849444805956269761342821888490222922444053358728936017249869725249244683070845779602888629132865005057757064993993221011743181750844003803879603271269626407119407618357535262510411731037990965486217541693775009566380942596181083535986205164639027981767262766124822199237553578520961336642629720226081210678900728157075817219570357307274932008749668468671587852468411103838412298656292734425503860309279750047932851426650284342719426802433935293307901328846793846345491994671675172960462856670690165393867347625422422761889039830850317515701934394327531117181896267824944795930205209036270599328096989452933095755836519968481907029985479167515112809670013423576674955267064046248256246255960818867031205615958447250978122057743943132424287000015849734425503096014545363508818230443632119674650179129598339665673854410245868838672775149453115172899692934387647463301643261394538150165179480046695149091242552894942927865097529627241885032027033339670757588481864489197979636988242046891405417618036002982070561520568180710521376313887165409651306529421556481070165329348358631687229536334384034029191987007894830063136657794418663813343797502477810829203685915568256941347822135483187210201115845994121604212537190763579640460299302942250221871020882135833075407555362571557675760810340384190040549352041204444163527977918620784831312054271500356080746724765316879700568149220122480203054730098069815918001128536545440631193128155392782879144976377098225074427540051791282988850068221319633523516094697612892308464172993532607140474542555574384346133377392375201370694574685895751788482728503547974524729271063952708787117176666746776278464166702266442558765127051141713775759813786951357740086109579819067797291417746406281925499979471817796219341149910667753803197565501778211976467582296593649779365733003988150213875192316169301424114619855037649891269082650135026411426621811741763479001902800408359860503696572065547326376786477135715917343574447695389785400594596142069421813991847789244028171443624320140017088997498639379403784099405752977656800811552063235143077775468820680070763093383162842637930560890172067875857486133796979776813925890377807260677393126284138259065375906400278197453583798355523611682817068574098718044233229135243898523360291598362189581443927611221761010673626052464327154633290810080854556482067705361080477214977302260372074742887848891345822498298900149592385578627792334016665714168043145977843232195002182913998599058593900137210926105042689263659431218583450480532187462838840043157483720824119178508359867773034236105316052092250749906761254536408753639741479028075384969863572254545951723553132709240133086365170489322676421514195228957086417862241396354318011848205141220846343536769742329328374038722214215661888760361959383876569137615809441277996829668443485606913259177564908289821309985572109550116009234077357180857412848937489974945559929632648380281186079027959129378841702854306144359216329928113282207586074270014771941107428339749668564152932189620789727798891595478793502794302957960139256481228231668601928164962017687365607079512193198407380936979649163964803273293024314813297240620357406374735767582497109823758005891020729294229531810861721775667195990212600294633559755480259698473972741483915604583868435074793487199179206013819276192427163057437245758460517167342184513483116196669501958949369871037093495468919047737359443409877786205794383090535391981216612858190499710474659104225949819189596235146397861821534670356155203913129695998604305003500694824567257951932085999467498086344856791446664806073695301579793864102247994722063057948835461638535745104826936163044900331877320112574341704727435666134910692777347286653256198204301577051984737307214681257625855904639197147608061800672445332962147413973334935840762728850906670221079961208015980692815380020824337617508903163790004182978789678213693367662203215341751432528608245349227325860511308851544720254892346492292394883229545304084630379550889871293947624467514010996729681872087001839141373553723936405423137467211597604576739857789048444597644496946195608526618938240444452964875183266503512054931908798568096838897814498243409920303511310789347533121951748892022513944825351247629279120849352636118172641138940481543226206074701115209840689115821349255960488694665632119176060634564661704792425607631521416759194267753135958778535297623011053506984107460243583645637790111672562611478301500495935025280709614975237734463775824476055344350592749112702338675794787521026923344473902096265767495070697771131294651867619256441991492623637816415114536264275176842858374355498179864367263031618561868476621486357927107172042126721682586185472058927659651885200749412989822057350457722352050801812122895807010957143030257396898580316611372570664225295301599991261878758401112971121533759175141809826913208221401798107954366195338042187502133590668556775221696029735714005041937071036130881139695247701019514122976330795761261966335236612178913012788744090746870487942297640340867356264082995150791468653342896840715131701404298883987661670338722180504501692975364380876996068510730892574589351738381746182353653629482480095693593476570185968157995452139772672886800447971167892356435476796484193690567129261942264155249501379185854960267068809293451292454472002225359305369760061467573285877377824930430312491930074080539903694934535333914290393371273842962412369542128696105114885868837712395874657142584622157342887226879690840210154765106517888621964750243655298577256242584321465583934097085452737404062301798783711268105858728863443782091905781362689698463610198570978176494296735925771589941819314987223009003211900372799760897633976412856543907613791977307980746409647669143419675848817984998700293428055019150671483207348966224490011962298535657626143279345530108305186131100195644263217095119327234179934008466361426165439068189734610760146748368056151932077838883014944663490931890983434645232262190263662568095949093363751965956094957481727704264973299502646755924242236571472773740340640732290535259272205227617287274831599401168400395813590120546011898003601541756761028202470878356938446138895474881167171765282868337995283909782417372156430494872364916715828600009770823629494976111767479814237070387394325678175595668924765886789205980285478413080506691053662794177232949957787240167838262369555351967998760370616220221050671255919755695521898181306414035913406807028516087244715908490927497277929729226214377303163589544252829488194963260755008184242651783531050967483821230181128249512185858240125064744217453909222847538966508665632920393263146832938013462345654836926737713721578771547339961699381922295078677040155342694682274586753179870248000135532733904013066692293786361743495776834675491868046196611832637538874721122086925165861070133566989026573853590583971004988592581052844864580158552950932130670049065038831654370038466652329211507732688514501797982763342168732289773762340469859825262313997013037550430453642953606098507489285988759388315441398329408799648699653743683193184524300335854790825410199770951032092657393225929535037035532196785378931253363447898606889902553688626893544510902480562821063873063855622114535929505319906770856430313142347845148366527830510138902830299831082579163893107953886494001398965416144553472410587388947049326596198116367751980490612992605733191869087991865135047102643655763464555491836445934867789572946963066860305742013362903692793393502802434610924593554026277705101199913103582380307893640850111636043943154675675608608069835115297384189192876227652189521090210371056380628367360241663352781159618559337110982624554859626389170479087436327021766414623175471640738729613251577578488085579118322991881163514665186140641190038621573812535000888156676088166220831823332207992713174760299161072473816026067251912013847178701156202746258216720808793249001358554107410602244133443224230999200318615795457057604305136286916237148175422755865432860653768513473215583916556808555778084670456512589627775418397017615591209391984637231803480485156530381433767842183318318678756221968159767606162228466761930827452602836708097752486965387897192542349843306569593937738226081124981137788325083538162501251449272018142027399541682792389431708285355295157655603168165659088300880648244611982028998472779864947092643545825965205118105716175631429732515402730211876419316038411405855779018290473519763223091226760449866878725781732081423481133679384333022668686100160633489650346507275727878642635607536162611189737683273576917104844478884128547024666541234447358280481583699235765418102516469781318441578387170365755958330359891901894627676558383214134939369406360373472975451978283436286641016428408573587126212305702946487793042639979681835432817598025926556261077897407306167103182917214571916408164078126962091628823436873801220544226797781197423109273146865183889440830306307366927638012360900866012171305504819824720092931637269354680501658341734381042226193351985842296130000763635476369456078705650034848257397039274612179121115063941254551925239727938492740210937197015957569121068333683959921774441146247436600722261917090409157615559962681206968843534264897869654748344251229035518730186367893272307009790069559850650988019479118869612632251258642371705265109156429202230903736281268106841997835776355973084290734990458867532695467698419841077920167179340522151829006169816083338428602627547218387277637308663864154426498879334965684775410645578507279488874060583650883663724755518372822594961340092541423198963409647715273124201529398702304078469916185872544359831414012525563437313305103814695486092657284496703247609095068634826017907151265535719831748804724764214578649967138605472320700181194848151544017495106055011234638318119512083778536822805164281317457980894658269671315056172526979208538880241078161920923557852681599014099540580782247387886714022873749905207140261230210068072316848757457965713785236881629279197653502649739523225658182011786946223518144511298650271073474756313202358955682573139660841587912189073806620616478576710044823898712434931097380015422736582296992872710477016869228318636713698758866040213074774261557249432755355720189898083847552058892856098356352997318142737872107167817843428029004705804748509238300024125247437600483924774193547950386728789803666704403835967259729525115496949649366548222028483602279101270683800256038782572992923645601129423666917669765179558479950734965567160140524024892672458932203638975140280365445298339229365019841826224876651880754571863574557987166222262272781700209039518396007671690065296509654251982887871653603150784501840486539223674055340083491366163714612949432745563512985563912236056173891781935088556364283257574366091276970339526081617475269691108548756308266274386072008728022432962477704424119231888786986605682070223122536020530081697640480814348993881178006823537926036731486888390382112534339330911001934128481427397011375056933277157070636995559378139568573629262515026647254118911646328310347108468107695505237629409544068745907357795603730335522806958305547111048499446914108269083901980962796380001774525627517967227411292689063587408232404020413114169301320944275299441704886365860233474302011533697767537508909245763897153371037373840217996048142351169026652240823337766727675690779897191933188883858358268989078042464838316051484638829133167406566898894977406011349988585504982344856119320969308327885546778782048123496995145411976923141154316796142201593997910583291990473633385083788941505320554285865016676915706741200545934141021912254660629434459138295976852091744740792977897441154138290057958232620538248472729019958802449476855287991841659104662394616538969736188570055535405216026321100853517368533932956999004014734570356403041802865992551873979075549993742834788875457253021455374954761751877482603192280228431024778900976295583641983331215780835774608118470945722355168664465425212444020985990178513360930317634415493311436486153576432782072105026696727447000614096982726954133680169030870567764927226414722247307488691706153378032529075793758224293175228405442508335414746611535901978919288686612202144677548840532702614899168253528489503330014987505093424492195582748551281684701352221454661318541491404517485159557941730838297560089751210244136377715197352641546679175725341527228193012024220195068967612110284131581177434347790031649444146924221554881205078702401729789810356303829468446247598303031372367646061204737277270136418690489873123213991960750414335351322697452216200230690752102993523036481479978607980828655553794949460333753891784776948970891140448205739969366290835682786598317506296242480767873535062102547775832370446819078192383311829072845911196447040154264018408699884171899566135835609643201489477452281507262672860032467415729508361842471881517461544571978474096100398639323231464714672993142325266083410845370828924127810911489441552511858776625154600797893059154067126038847931600213973805053993800915599974076656761143254283015552100339999498235312161660072834513628517433058188979708571601771104580844221123983660540990304937491180111040671371163316507475962387823099602722964520238544630538048099620075081291750200128352593752404632976338410042427521641642142459251611472595951450218453873722413439522356514769497042974577862577325118815275259978520174889776193438135882776811131720658486007280615220191115213845336229145261693035976201422061462825510264573514847529534437368559520002316512737470228474963664580561144559350860887290564002449100182495149190476295571988351077764440737891191422317343575483699550384659073191331223705045491985031111362975109199275575918845796886035242715828938676646071665721298557689000409571618349365213202904649730448901924766144244408441356396303803150246207917311140724794389125563378396386112625662156655787852047279859457994932972805003973012537231201372361379784955009475806011929411849017510379263784453990341363231101240847197048523758643898778707684443279385652548675405258682555865699531241835933297702932697073046846080355814152931260119610440023486021730210693497270653047335163747494070511467082422712439612672795768364324313235580576973277403119110794232744139117213287698538541108580407001382079675461419855613525435295884186168609792069299136779530136836649540358534018729755168264408121486473029847919421801790093970632904758683166895690682582058612047356289750796449342773191359764904219712474751528478367354887974261361475219702617305374922529404025622193102167488072646084806543080819152505949255131465398559479288279673746967638135538124616779698263290882631629292055287791687375115651062038636938808242214647881189908664916783668783804491007326997019610857170787323706291690395587857590045675977012970265109394446644807384113455469506401743845021172110499064347111094362801446602900366404707502901192541688856572901358136766483968719739025155829593105962223043910904943271542211113935385612152369920538823960671368520545647184833743577095721547292453249182676863779222136740939272653685803821602718653375122180789039830573231059546185780588815990993307948125250196925096688938305255754928292231994419537645698547367217156633788897720813595022401215206403068307362247296045025487930466911580678100917666877931723033217549869097669378053890563842847558055101436014059700981630727421427170957236112507487986580179665539516927783889656373947575695925810982137742823125614435484298656027196375403100638967571576202053244159920474590545163118134461728871299215086979305690067092880333567920654968650704520296373586231474480296321189898430396010778513049118406460846845448449255246580923014018804617247562040020134412284593888678043988678060383335659882094365235182287995196836254584045427163853165269268469279799217990951767372499719312405084650853868465322305406119777436882039391686558372167660397714845451257162557123144366566574068269417070291252265083553525448307713956365044605048169424926055713402602324752830266442703382055302373749727052647115998920744283327867954759207092157424787159198270953037642395220168789732507748674588274654596934876453015552185328118284129686027933388037309225531229675374243792816572005044392707260147234474909712114123993284027615656847843324221461175782098269639016511691204139290534725577803697224651678739959962550222139669771527274945085252834115250685245304785473200165959704249034006837054982661056511863688411098221954753433774953741816840850748022189762264761302250306757672339281997482313430482441874415150844716417674385970098185516034955315860513193025887633744695628537916790007067502546053118547353973931880819888111626699112543144977198906698924931112782438869079149548811784233861132036448295212906053653069551096684249204097124441905838734042818538796633924303191141956532163728617866698408994195382370464559021201516057619727970925184490370169983817512560818628900259407048225181265559215554091620079073677245747087900029964874528686571433021791479975946183124510692796692358603532574774562291571414857115036386563979178975064492195939841588506778796761325644652666235282904038258688489888538634637376334036155710390583996408463552822910181504398746938427797717683663364166366243773285004619069233757112530397560955598865712150142038163777478064225136801860826876219014748311205971245545391300365524742467199959527906227560445890200401749080907948265979106762985595762871747682891467219808776897112260367680450457017166891496383397880426733456168801485948334083136198609344140925042336993380760715081144938068681695784177205664643954185278002320517394489917247953661260847927391447654094400624419239388398957287988113016835135495618772785707458405877801649084643099030188872379545246733990547030988125874272972638590453834993716214786321994844593487923680030165747948422350074242969464108742006653796625202482478909311000391090534020486431043098690944637484020717331345771196294886602609762481013227218662861841871851655615103865340977925996170497786742968132015132880633495354915806340560831379454161153053831850656911588241916585343416685090582812650772035046645614842306142520224266081209095697708613609096118921015559239672760352165020200259191028524587027680221327688490729768927908147169064484024194340340912414676408258362799408601591399569279437493324684852776481014203610815414964141959080110671731048425710845294015004977509813375733294739854800270969030304708869987396688275556744755146346384033737155233978533849005614061745385654021661063757614773253724841944029346347916005057326056363952640268013048174967982066967132055581427976103671027057982991447362430051440522874783545989293512355461456089068601153592208452418359014403179998182959299092176192981439754930571740247320735047646832884556081275168426492724189875892895777965120701874930835778856493162092917943264669665055052814910536192260261533502722856152930972710951540850598226323223551759533117897220146756462322463407418455051703704854243269767503726067618839340095196710862575576258978620260875045395713083837666832337148076675097383332469521851913081696751098185736196577764589977880843068726960219011724606980358706404800822996404519947697921024637972686229318433959646791031841659214121059231551920999923644436461657011306441794964581882172025616060267471186913361020356413602186851970502847806430595693907866802940496333690564152832601758712999609920194554496766327938431474804940987419782545222790878438942720240328725797074379569420864494776435940415594629609817998558379880608233648447750214449356842396060902685456926630312948688607614731676905008888033095765140809484984220863353436888602001812347200930596904065606598969563752650674077260373809378914762718822565681444607356296166051982694316500024066205159104309360194934245702695992436979172311282608954845769748917791074872685821129045680643468939997857021664092086651153136051097299336259948013575714132559448072338345948005462442846412117078354254605044032570738531640604704966131562066962154408205921393939332402516111923135214311323775967836232483720214089996385615190536242595970714241953591531952153604028032854851458240551062154662055430563867146923146695794223943283154942064433818452552225673087703188256979063812004485008589893494037900382980264880136698752950991215072725175434910240758954542920473232864870304218834538660687313337030129811847535066758280994943568867113794312360253224564333276441511344328425187517504898782112491453835089396715778228018869058781684435665323346868394435089770536331499047152258875152179945346893648034478947773608266176020674519086979027517061467601716567899716161936708425879952762410234583726853432674976800725040547121620173806071322434679497948116389496424231212868823032917026242107764882891236213017925691066729550449794045578837232216772103051999217382512773559275814732400542419942830270077241634408026786503569663971255494261068915417329295898995291496676307964468552153785099751098264500222563369854138024343302668772596411137101841995294225613246858168038144489981628534079824409255186640710370137225037313288317910631909074920000331629204949513538910785383091794784549095285108596483836541590863597574408152060416776772343257997847816933610294995898468074192274196066842225618520088818334299622491458487626022101683861537649684904407885562301629349824516541324248959096545878769874353595329155843587063668001340058337804506992684016251032797162263992565984432781328632856082367565061064270509348867748395197671794315887035971374387402761670712161858229089483997423164605912823067153780879595925332280409972636489840402659618546159757724098886784659687570123171674042738765138605533031538614080787474296653192764440743464152499644806026551347542296114450212115898253202429527358909062882043497969328920732290035828425220118481687473488997280661241563401049905927418069786923371137719562473345511807471106926186763014979457037876719476021123343493649651575925052540613617710062533086547995872617545402112689815223697264111937789375074686096895032501185154439246042514976927516817325313389905589509504953463469315641104397802857907326673669342039850356628716547430045050596616215356147377034040553618942221211781617395739946043236973813693407161464431936440049901912873035559742219325297627339915159473236436595447454841791403214626682892758280141936800563537562129982108288250021072770953770655171090856796817538118774970018666617285118858511970474398032746060454393710684788874873797961779386480309366334084785702060158746822243991543212541390931912522036431696362401810822572431059764142210949669707822526554575076325862071859442594571479132170001329458777268340443910637520590418968424958460510220279646712677043048415093666546005150293690074856826257817349433120759859327819607832700186952363386735337618456991498008555886481756250858258576805446679755943343141961493574514799355816398536711983874244921975904179464262245138309221245279171221576532314390487466906045049297590921383291259903583913442964898372893468651981883724952053335578683383938834754425572396669097486736822113349796278789618405159966250020433445759561781413415189515493089690393627402090443135482973321727760897965608399027660173170106277566240428951637556779790352543469732601484640610639423847245844503207782972123160191042698984745782620868378971366204375131544960998495571944294562314774031614914908818210930394424783277569728740755690052420705114866498737917320521032090371556253916141278927117499811396215641031020547407850432264172364193508435396654478068192967287925492203446306386319209926818613211830297415543070107860497503281400310030122637604444225351252480082011745459837068867755190977069369574712090738330833360871511167349504104404378747394174339375688895421531729289328932426791872790292587832319055615340431285087932651629743486135846210644914284066341976926829065182593178100014078463304638478942733847380365972425352827537500627340658311783842199852389299107542917058222637337405942003047166992250935398119793402022627803780287833277078384338393274690345408885415893899629231005345808554726710865704913983238405777809145549720517900021654690331775779047758769241922287859437132359584777997337459467027795950148043196344471328940548289970454904071049914980606794691096435178281258127385257985957825036227842574493926405848792524469038673459784178988529533078875597620635382297400460783535077402019840611650650561513940716352789219972787538366074017822035341135236791877136596299390776775672629870921788642621516585322134168550317652693322566710458832314972447115029138443954043459296719897688404804281000826308005733091318898982797861300566798015151118876771725713835683809538209869607510377775563958709559817191089011206945095028643979864862690441713752130579005357411926420021393121007981888164525033042148056994919278357455579098899051884288529614549963070820256963621731548388516576736432111402911963731571772217554128170664948765867832238515618140280704512156348189070975537474914175292529217801153059921020958299201226517211308488559105891631648782050873882454121827286241714253234162346702308082139994875780294365521021227809144785065026296940853208671942073560845796960072879115408294803620364490726914928834889342528455690034797289591560747788829813591744288304768962624057702326917397448414607667898188260576796363744585971220686990523715545114931209045405191609614590544328942403508856082947706123107799441782308266448489300157104791125375350944989762837219700086135175175064576086810531596041292482364829442768145666544500360162298834363354615425586165104725970885687692304930795674571644164246284611283593228569722705357941811805651562716708562165600126476786324659000298050054518258001606288361182141796017874924105250111651800746945231013526093716570080806912044849384164951748932747160600635291861624951409567195062551672885407790930691651794802317183464352461503477348736327396973874432707261298908329771077549440843564479089749421095632502823337615485234802802186976883220260027683131026906556785660613348253324331835001138938450620606189061794144557972449097605208274129616536483006927998816334092703261437544136513788243914684166832389153785435651203860247663433906258495057480339582847430248803380267158690509394233382981405028079457120814230165107449564764702195368051288392467066122705106040559176075069066303597736584887212472489479021809791671134022453951825545910978138501112251037046163866859843387252236871584537687504963164795188061187144118268713367939076119964497248638932047786875166768197046843614803893190669182649220188515364906822063034440512660356886064166039434604763364287097672155922249350951307140843199542341203371784744301432930981232063455255453592140878447593316490487864558513280120997439437947867203327077398031005032767060580068999428068319644733491766747410230453975292699007824912541814486169623473081707726676008249289457850710938502044751575569018359942644930859231759646739684870144477289468455265621146027691331525449793712740657998924109914896575600764058716597855756362644767751944456770268093487586803505223229599401422411939254215448770771462058654063119152055193037333350046604849177787189954236299787305648459034912961364746399121697285774484617565957085835493413309381248075779285496399051266666455582047087981135172236697345230399201287169665716782491862605151705963530789502821003291814688968697965885628465843930552396785775968147291253023618065765940500903494199436776894613738686218321391555239053065569984145829111362928102891519048605788927489654412958210478894808496665688365186089021949310864292264461731215934911528335241016213844017181982538116320240222956499094813892524788805418555129306185683606210580437469866646275979184227396419281804271996616719480524726990799766296051167139534522319500974259971877507365854938840463952402303788128845077490698259066965988414666796972750310988012136347689843526980468115337404893551338895295885719423193639990936109546429030508371877540194675821413379493179941776697098916533225298662655833314410058876804691713961957510817152814273951717412778896465411439581702154327441151171848428028408583270075650918253100659786127154591134832096101806009813367402991728224853355861041141819394721556877503483809077181279431131752282585342044658103013346508538397613082708817600073729073103961089829351313734541462177322656213945769427363295690124417027042049065168422063119569570909728051793871346022451723540676419367975426989268797515608767983982793739209341588284575739163463903953190326989834302914219485595655781310246179110559024443045120389414597782645685063997941601875798999974194850701072311353235451429427674641533545918615056725736746310638073213306257126980576936262901564471713851790331827424041736142597653764718087959870975012072368056989513383317965978902269792284971520351343393790669210570477420533026122300431799438029530728129970601373606721325070906963335720511073660226790270369123745939907499018333709832846038770732042085003503165009899480486153724148804391152501544976179667115438384090270309721537186326581821430877818127957172163983068847872820574707236387942995645009418227094705124779499983441275829774820293592587822192208101154833453679543944187065185057332333940937204695300277065534424373688688512278945680527366665209853014649581487079999821931330472060122568822322213983796312558500288766590300757868283970142168146613068548353435063590549153033942166135229742339143272315153468742049155750462001004881298841397385693453749698645192702170037762307824229650744660577635432125390672826911662645206898758505630721539639035919658490284987399788792184882604913252311995128909417031347046638414539172374636601666771757680909830243600200460431603894011986235546392999584835921638607850783659600325869166805001773707147312521265003508496670258267963889409511394663393892969748849601253256267399992192026071841551634134751435391234873121580382507242514938759798938861448205565619734257104232507655136134550369614748123796464301313015597770900675606843048678351780142992050096414399982023442359661524065785249958398559792926441883399404154245274480785818750546971977071985572741503970528656698383247610506905856213322095362994284122069464219920715003392521321555419428400404239918413990577611338798966678262411921733851068179579167996927963625839855232863807703727520404390531318337907753455347736579007410692047958806952294416912658335535769160542758497007141207527523290186942573836945717343741320549538429340306235411391997009329570337863178604349842342939085040171571165020318393298572955744757534290520069608997951680518927842662241160770545374899634641102722404865681044533887768005057110299195489741196945109176398654397632953282222871931199440368336178315495863638920194434758514670735861977484183744428841519509832237214099548083195465906748763638921119489736019947480362429379486580697532539019732864368019747968546023551182100052996336769789342413045404226957908002827456293357214155532302951895946964166270841723440767979604781760568221843720006728896607265932026442791515082298506813462951906548187242652945547649475906643959202464404479002000795868449353394499877550332131649336619650970770187332041433790693184389918663844047460728925417820812956857111817464302598918922613206492353039867895671435626682573392602425094782233748121220440257779354086121147625651954451564579099746796846983038181493474441899875560032741950339514539141411945320524405718775200493101802296039202784862506615896782040108577827696877606330128377150669020186760597684863678270464033799770727190234415966380919387591649491662731270236670862533008500317034701169671874243244304642240797701827241931783851127409301923812504571502247478404262196935233991837397660427743066413188024191776519722409942067623442273448669464534143598225228024725302887671616911079996311612015475622237412378857472305510641062948145453551902558542992896355975213346916999869464062088846824908678644922181359236845343756715684228029575718973190510030697442811154492523030291889947479292002150827309018888258396847653950714987713580850874779745332920772231448538261217602901339853556832071008880702297660818807289526823284655812283886397308154601578064237836167098050409115845286190989432341688883723128406611121274559167195870262546583126633069184714809008181794627094691846291311076674759497293284815605290753364320743682029929381328532023323327185506353525376434215512359542662809655938746570765000882765904794545382638132217143980748810588822244155848119368954635863661376787675069119042004008291588324685508114351450166780774319327042604909855025392900667401109323991079725111949234061615942709205195913693059287129287833185146478871184854313730505807576241759224163040131454174731260947855493488516410209326026435073882536748285365207164041896390986237494297785873068344492241588683603124440769432599523301791954947981201664501258418589329622441668203442864007052728424127106651768910068737213135420735532760528376454133700042046601271280879142060144815306557018324801107203538336883674059274490078176570903505972052393378403531727434048679159822551853375218838910061623231701397408434769674237567237938748514301821687070540015511703519102416637845204574968906966085568332759390490445904732838685337900280836559319240830289046329000354431805210680154945176180549382726811931801836820026603488307608418400129470395525778718850920323470774790653897863047639403792537935147786168378651859146587593910410141757966772072117729988131602694222382567997062301189225495728761487131574279308535645309474390649717177026617344753582497016934557534735342858386596331998881797729893023132371871066688541437404961012865483522866106714697353889096741214790364578780560574453234155415741739168046929070525335462216581096661156958201247132553108780309673936343430434030248915754987171444554279821476775904750906684124102071566461852622322295487421318183299086366678818197702834133612122540967689618143948478019032626606299521623341825428359902913857453837644671368583248100998754000804401234652201491575828542538479082738143979829787632997504097293663567818319350127038289022840287384026195646500901800147705151209197667739145675408739431885300610143637572384756993164974594551053676330391357672940513908601283560041494960365481857674715644748075947832777314395899704410356368176474622168565746419296040014893815973833467306354142080900726026106353298790270976409744719367159214272690705019689225352405447260956760187913486470860845074273744539497515729905773998469790534606523526897571648872576988296062727428824979728759288587646830999199302149493182777222537184297158583783626512210368740652444207724014781996437782908904292416202548759298316157954629967882566636434373673855044313405783689693330701616111643983602240192791342414103243387275314978204980129498384696960192830657370818744067335413206051716632447421758871044088262270266921586129258672123312766047378632375279055823456269887589207906771208209459493152052289142331875159045325408326372079122160892528865798918615897185090271818631915724010714198097860424549341492819311012663255793313908215373060792246038408293868973954127004942015031945345548026194480084067295585499221927746748786036363153015675851961304740194688115391871853351887948701996999095362026319006750611838198177744444980935379477886215326061319510955542399407355986576072474951143677895790582203992002261938336393412890064527599545530893632693239628367169628069550124101068963910494719567186584191109137968442519903282430097495580054110982229024859427664890168401952356432752683735280678004186661063181621215131833825484150894772756129813901002907117818868419411992137113399530858989377395661758985932675427531356370298191040599621100675005166550131652855294581574704156053095741688318112592224445051242319655960249252028504597686775490743883229060190717252730544572017755987551885643979195729465459046387000365684936622093010155529924057177215087307582236675339200656817697667800984676477864737486159767700920509349774304987079527503398606638071560590240937260371143572799874152102544235846196829251468603142543238577413363883742848886828100388635496408151974586227912757377899237401000888730483631936725741181941689305039699324758063210281059161850436230309953305740418772571812076620222608423557355372822899491666817024244534928779705190203239800830034841685965576022995587022086043870431192765647710008802307814760840912843657302701269418537385993944060544461899493907005019419544137810512013773509558884845471022982661114949066828431953615141420384237335431059604038804575425192647441373833239872885448538160327325676743134947458375306344363306159115313938608868181476195163073805528576922778490326167721043904306854899744726730773381855713900119714313081854158287829309066240037320199101919930670291250081338264741460786635962851835921400062660120146465523150667695747046717224737016727026294736305260212378809771169958735529704088102001929608829908698788471927751663277180223323969292783887299061389287002902881561166846874628645810176372427974321463780416730454703737559722977203523006666914303195208934147994200089739176718798838613948631941488707869969051004503253142548371604930922404546466216950023085173553100639839702887081569965267302565537720411099872804645934861353679321038165306688495249612862168591626135024540501539069255071967287567630333165193913410820059895140021390531085099333281144387815346766653310260545229611834726634055896379353301972361562109336688183227212063276932849204996990800277365210307507837615283455206581938286262829445274473513573782473179653827342299649855866450387942120272186551350983158497555562089802029642491274975077601957884900436454641546395159737285183364442704115114558802164093198273785733676597327808141860722815534463430165821533128944286491979327459020239081047613349043042802490208774865908895002834376489496784993989001213806829218044085526571453642740364309031289633715994763846367860033160048942044954859122754827857396149833398097613126474680044720339242734107425312634479660604078270205913821398667297410017852405590773190401739330098263304592073113929539771127076461051803319559648912749741010152433816324162182993582356009166928854526318373179239984591437399984112111943074990236473692618874225852742503001729487822633990134975235929862013272224547394915435397137371200564501872497947555551031787741764737881388353425592155185111238342181442426767293197731063599246114952327084211031475776344053549562603426807547039348508672506237317286308374597399473045158852420801543654837374064318778681967412947938170719436384981385046729885497282173539464455006063587082595308527858429516718167805601393360868392761893885578851435495410737274254591042482785564005352871323040075823755783659283506838399562350187443783148053583761693754678075278182900157623994570017790937806444688545640770909197485686009082701594613929368953254378467260459319031999833631184309640836788004094521457567403663268200169322165932842342577144066631684853201794036289643467441000610598380178236789860348222483510632224145320466294112751349455551452456050475173301425605914184627929768660214828248406023590389644886563032968987497715762322245566103932525694965372934793206746699219676089227870270612018254583376253100766677142715664398758187441267477831262658976317430493459566189317088150952249363131655912343373658164279894887139492437455563727273680213607623336280232583848470846226799351290246959921981880753608262382771501223746599541299624969163236445727315295530435567019019012761600566727907061857484496573858273106101958076407459300819498841206598715437120328966665664587714810916306961989685180925708698522978860438008368213558994949184528284982879894270888214872617307928750822296620504727427449287204122287219171849257519357096784829507051883374286256437010213453279663877659790936335698742302721266224328945001414502712448753369928113282784107402234365525706288180164409469660246818195355710702265900979622265081127514829565651235014706362874924520055319719942623814524745427079909957032631219870320576207359428554087315446867951927471856374887555386078655217205947415007479472415391862166752531785875521160577275265573820164408124250905165603350575863804081882354103407989631145153386820070492377939656656148432742245130427144249046550022980441433096905652658099210711274148098546768140296340423837868332043876560757808638836067854006756572847876514334898833735142328535462085789078455834135808260356011132163979006200838417605944977437783912538587081643170308427621936553400524677631000942793172538598057267726139031532366740455448324138053580020467883701337129977319689503490782079155135301046518934849151122154786429552561340536141671108686877552977360736205362340714203781691559358966824338279277041586540923531070191367427294836678722712679999330607501657339235449500181416185883140554594147205874121583114461118197450714843094220236955691438677730045074359480596406211441328931204108781652136376072018390284352616174582173059205638780996966067503455201813564414673819277394910831750694996348081272214684014023530365621234251164547793966247867056493153887320603493797999552866795084397567274742738331846080216456019031920741567371590812583135282155208746746917136990164648870246568482621836019639423448904822033013882399897255934340742484184295173251261899632395612127376821885513219266829182808993709807114277234365430046901695004486220163078819853653640685957278672184516959553999719023465189015859700723164377485234412314399793753077773978925551509606314300174633250355177683098392890047925921312807394430740832917597599504450086018982764232525830381644395936094041571419890144022420660864992392899287778809173255911788923470189211815545053681341556312909579473484993259886431873949467878436140422639969143547797237117208927732974749269484979778467121941165344566645387482737927139366557094342871594949910828686751496603567859488351873084215742297252002408949195658397885468072666920986820592031341237782540750461886341037939987070451750997305219682313499453554745756293622857803361805499716917748874553001100373231872062653898378307623284172970875361096420379713820268205859217494933249701091168148602538243240467509694706343784461538159665002300468844996500342739107342851720246629962158559542226849983363532112508287130339239836276663821518818916168326106060657966654191284383557056203706328197242936735093907259643087144101389166185759284829244555501477428086519708696804973419551006841194405040325275586262091457308508330374052396979320527483837520933471250430588729091585772546958834215908378884800212426431246827654788187353127665006466834129503196529383920385771711832015544393442055046570767204988443060745906309411516283860340102209052578210140123292973219442381676497385217383335945246090996023783226844242695103395617349155672327862555721355621861338350825051054639230387088298850925167001303299267244188658632093638007013389509592099587856925957567011370790281795628843557654633224813646119711383515043795419669932181081754040235697681634007057045120310025714083156619172857477256933535174966207884491075926902070467581566716724337112071014108631265699728869537375817016367821380362313867826720433566135719922670985719314224804843232010821776078636744705588869368457515757922987189400110545401018638048230935459410398708587705464821316171359382748257825598183229078965825880751742328602790087163627776618975774608028784803648201479044473871135167617402050219821428625954120686897273033104131667958682221150638276658380391919666169753145589494846101817203351032543691720447111083454424532346087162957398015173372426001290152079452994763071467642770928464144158204853905155649211178195066223268954319803731352830269359289577310473662697193635453630927971235335313028007180607565977326002983396910470683705667955756005515292413197310085507603883750729428555242423351901530692865829670393560793578841178477592187592999780397661425893922242273929844749283609225110858989758251289775244715663430639427156569084821966593833824925510697214053262974388526645394919288464720023050623567221718912439252323864137591402301405030169500987521410921873783059515896839360078544159219417396528223589696757628433269697281173785864784298467166328755734983516497614904018583431120682135951388916189850990525251250749542919132139559550808872845577413122416606938786271558382215215668328112967191314841940424547428958929341411913408670731712959702188939570278649741190174444205674705591364266876337963127058541045065043890166753927763534869228867837588674873351864909167711781750890579719657746072890022281903964578024462637308170810888193336742344662635236952257772907961584591685491109596262666042717896950924121000062552949849128850953548423613243086232319681621247204766850144017538176156258716265565118457604919295024518628709591187760089391340627861858181666723688219262369392945288207331468346407603774490208978633803790458038637700016981344772079352450800235233011673417268397942054531860978508312583845043947579705376256050343804835006060762699649323739120754559700524110060664075313367734634038269702669544798900477541122428384003974057323936999598885460700703934357754661583581338278546986164438923409362713784447961451486709841804709723899185912488785846667232652422213276637861368060103894813976427772891464749739157439536718225245769585629983400118512463982994472625124478741484291794391472689202067849459242762761833420128104709331418711314162188351842999416178680417924933674760873444852507853185641855196004577155094797204002264425206669565227441947961570491751991702089964628912826337963741870673350567131521007067953210928050198561783378525770551066584567241300547683110076665501220214901206285310732147752590568928963895804526357087487769906587091549450227711493522299486143787065255339753344410686293219822046785134298589793935030659573954284715703271775995522994808686325187190522697510072555923179596319206099777473774064787609445260735885632194726978994438682638159201524914619998946124650543484498462706227761612749675672267015299767455708851564896750221704876629273469938426124796373136289494925961825111994638660198290590860391279961608456716264987969724848109231296632538803314031780867506729353618652239805697610991070758043893435827414269568008374623267347142395077602044491671698299828023785481186946504007865431960472441194525511717097213839137959350030959007456308386246414645662733966873226405689224820087258368973818232139439094450973036569546365660522739678140421515438693971142006610010754127554414749535328476054170449782128247180410874466116352859888008764576615526452605640650400822270198814015297148545622534470650255307816684538698758941933504249389343716596850226290381999634600100939482987347298891799911419784923162111996863541760504480961370744106444480529287683313303813444360434922067902553527448433478095847476829878777033621748884946113026164394299091450903801196843505716278475483856589043275405861607507297032347081562474210567504719830021624125452758061746631797460489435140002515951885626135193536294263457752710798940750308250992823870234247909443332194477116781116622258688282777653553283870790629347982411515444524530843170417630154701976693428221113310165910991149806771444716558055084856059925927790934467126598776620416427672262797812710445021205521608010140570208966193418688288838483120610593452593475283756992183190341093347329145396557830422422826282751689236831079531190129726182909587135240087952397385855545521778746390195064305555254244240016142622048778693161033286677963412920548870388987375434584534456600986627512435106147671117886723931561976003272018862483568824148667900965755994964987130321166023203078069990171713881009986066974159889573591918425797781820573918948226491688714082479059550820846446325250362714308248915693627760318944411384306653641305379377652985013455407024325498310020024794490922969062313572711844274420673906020754677623088544810545236280168947019710837526396289169511159592955647133700135644685603737425634072618943612513237074558845491065753237908856056917447150796232548311450911038650000233954132915380307733806707008634960853486909047432011977930982128983441399621685230744625098795299149285818127135325266161793601395541325213636965432809418006219665769879758848198804138794365816596085842813641434644627425023642554192302423305016939512817597538440124414773881558705259421968553369832049872192524451670276015577737391658673597171350275458352703021322123904526421665790442358850867890844247607426197560692371066574636802667612155059860121683371663443944356047230612579849508490547685807149209438291412123216587353641779182115202267948110753093266708030666026995374385556571080664000613668233044554924074765463149776590228279164453774312989192703132882695688562524551483453733523047366357293303879130655510854883256947622124463924566640403674549618625307949662733494157124047750692970614379065542920879489331812100800849914780780365517239046113467290216827469882720196082866962646556458542767040778765631045850166932470918354768903043216034184489638834298574808143181641364765368915904950630541983793610020004659608568117451332770078579985192919020275959331849347572372740779803926978938171094063673742784234836156138250448769076166766099741650985457698107166006828352096705156539894365505377804847649484884871701715123443592382716426563924031491581017716680389205765374574759765757779043032582106631181926568011351257829224589667853304838364391840188234829621247242868120553916287270444554510194702709513062040183756022418120862456661901208293730833602073586486737560547945726621624855028255540385558066039058291557863073627313348180810232399346937891071639987683944403646587932378151281996393620809357866166448680582262156384630482384740541710736860060907238868632230427946842836616374544389973724379027444447130161569177604556637628762848248296497129913788054898740708972415681782588220318378379141774397935797069143842551831363311359270046402584346572515852711303727059005166843290275286676844589712811224503641202594995281524514277509706020928217061653661991236361423157079865054717618141226868206417331362872030826847346551473891166969878961607253271844912741318149426967802000880470519891032901220779031667036658870295597433740511674888157465712726405816845538037706229021850161389182978796310593117100022535689952559066225295817531630550070885112272599210419313734217956646746532775324158193731886050859780953341297319485561871237667489251137998409062615290668689436058900660852282723284706893381887780752822151375659782137460284487614491162768036926429758371071096038813232054968457889245143437226184674785350854027337668712617200791728716894338869054678802774484947959603444143768277973877219660463206222745472964226680734724712452356299524809515141547438863218802609218579903796787100776618795618163347454151351858180245975951913323509249737945574739445003631846677610016046947540505996793585095616314573178185195237196348905705062324814170688219857076498568763954087512937470607084259080604276478904492704067548634101548860311012922892808948547531752767121447303349068753099719708702283872115028569491984620825303130460055991110078927557538374583418771419192305209021925548875964232521766888364654339995730021914003999526443843958072879525199389714561239869479703853401151535284101127954976319261956484245754181033473109695297122026957955220644763267266241340490901612823241212525634390193058287852749322678574331846720079827813548013372867333464739828410002865421673016107867989801598464969410610032641284251398993819336651445412111338844434074051602143085557077690584055475708743088068692465038126837449022830813545173012427425864322984226207304978151109164177170090666664566857648372720225301683291878645473198826142140124317990263587180738592042105629005241870711242706286270844926546379510199287619601097947370016993532498009105955150528210968221500210884206600251341028697022135642511164914957349565824180816367322989460430646446904614791449216393423625927749112034970423785074324144519183520618471183657515608655434599428637417903961893868269098239695441218626115913497430432477282020319940655337728717416013323925434638755076799727993575484873656413633526760188286462543621270336748425075763092388807168389867289214699561320307768408530156791620249464978591010111432836713563929701296113751851689472650424021228580406155252950137499461146787317334824970884816783740601824013056148013941811301059434243145108291840483137884460144276320495392297836966005563913665088472944862912699377490205383566015418919667782732146129041020672617045840342067217193723581954764683963664276197980528693542137223198337947617221835031421652009771168297674740738931929634707951235962965692774118175876476581439650668180412733892236928347756974460090397554588046796592782032852138413829522781905536575989337507974546892755311882716696790159447817378678992489387448796068038488698824716679819621014492627599670649502643215469492855147937200816022145761767149735453653723360613169768544262954893348160065406284261860227865920949238875923815437145064665162998506397391177341549234344708386160721100124529326713516186560296599446607320893175150612154685466041910616297012619434103339400993804705010081749381042764527965908745183004083179267451208952605362356165786635609779053615199019207793163914909144086185656077383605353839545560736019021267636504285251971369084296010414796992170347358797858598090959027980572321034261087406827245451261091939630956439171917809207400598829484505634470653353180278208971993976091676075288708135689354129541416921625734026406835055344800418200378500128914975681808094590060821239999150333226973875953848127748259218544017947793347985986995658879086493986563316523201938179012244788387138030757883466649493257511341533041681514951198556874863972895652225352552073946217410148263575434259811856871160618011261356396872754917064158118358771769187481676795155997372998447909240403402117872166219842177819911085918965916897295318730062206485526945086879823969435193568839977588772078138095629092259283721197018592185207182790503185857605741880467678797350362092193949627534305570368154413268648727983937878756067224489862596802886711032764662261121258630205285188576887241284141302498188085555631847375985447316979715567165395470656554089317222866866951880346880088936277174272991475990499769570102743651301961484051097054476858191245271475643992624187149330918779739263685823642360751282682495956286899998927446053752732661913218845853473661037591481683383827701819149369070220055296394377113200562444997672542798425100838908093615070359122382912088636286259742213283844365789293349871208923911143702198750789658348067993698216217388239653367993584294588557654220702561115675201379726275724632196250475222249192070817263027475350399718941387241415886949534566117964861883955010722408425389963836189681324487555852499011872833439123761161929509647399796544326579530416829695293236812566399092691801620724469936495251427781072909014892916412449107998779069913508013275339898950222543175562056102707358455524961238979648589750671106682464617106609713529406151844116039509344456046636132861694852124969690091931992191063194240322968558498756112138683099684109931706812114340934342205774983614931595166441878319621217999456467002031276540770130218616350309053687219775600288138621225406694647311942275373446981053205837295510957809445987037854683276073391500634337651399881985201077466236409633099946788515542059563383563985523560390338377530848693905256652029890755516194752512756092740363738622291449226386852626508956095829939342746204051401797307700655914913452896655249900333429006596239142523906907746261728294873989159848585316712852616486684680048987400566619257435332464381941689633990824015089088341677993898286472710706349108322132763429672525856557645596873068490458804707927597660941546621630275718000158917396799963466868968761385221967568179217166002575438038080613146912110834961632168780050079434385902753149469125775339844639800281451434952721988956026531338194306814265655483918701573936032952869470751198994378749261598985719319799096906330901603616457830579383152634409865387523249957212037219273575767814686572164472298736678569411031081792445243709922683622721131742062222727462111410774073674837833619770291838297615913025515236804100480485119772704648064558520489413169973600877456613847158975033985894979446115849459471835725550578749051359005781712714477650126234924723343550666851487635977004254070164145132060770256445347208404835335992768846710532371464132041901082622139311320003295373703420767521736657828063172308283554161113240623425200061966703466611005259770885804295725316066498110506192753745180340310085340134359319996620834083317212458460086916289714179042935730792966721907092680685143574879254403836111896426649808066806081741535616154411112150881141763131084319818840077901043609352642026393245477807357239542413079388306648979020314839119134119937525101526417048115327249684096278417906418233095255110620207125294129376164900406812347384559085742469623455684096836049065705322385345022406913972680954564805693308405705495769987841811125715358477094550065030867290096693182041528902944189751690215281856186959573229166695564999938283305872958220999516307119329001116189286389887864159525311085466038108603024050539041705077121098209978380270136680880663342959274826884841507717678495015486492713035920387457785352246166923909663612008128267348854596753514778370090119630101657934328790360745863065712270188339803307874985749806798548674621185130550484657838779360508527675147460537464769603688294166772221341402914891859652163708163062802923609771025838222623632632088912821248860948409730331257690410971106478289296848943426914223714445095831690757013136440223493771393695066547038666129048578761646755172831935486133960940216435249429118634352239677883581437833087453406424144975244600143540333342593872503202962899288318346971507750005233961755185349619124764748982425711253505374675337011349996579223155031229474886490322237194077905006557124293929663113452479260538895402900870508799404752156504476486122582921258836140863423867613141448055236642462344937268263495617801003154303929349773699233427079907625472765151727212866133530608421877955062281955405513429918051941861125120357263947522070205818684695975968007049054633983919236982644329447570940854760347629920025803671387978204720457745541365986714382350762093417253695041067994769725575312404181865848795981103534038789533128105865622761498141452789408947204614847190101037150158844865781072602022712003597603730005155759243534530483794375596165783066986176140403006525393402352288951421888182935330459513586184593238010776550917228567453847121613991797892185592636820379715532977493868144466492090609999988760045203781572269748719642266352390377648188832342199537115641232496015328526637352660163046880837923944731682314834974778834471357557085081064885662592910662780521562468897214582052651439089101329289735753179969745490415747285234319643820065120529776577138604932466095647318268659307527817079223554758005974897615356789954361380635467807631658890011186122348355086168775052093350922227339988951704287519698342480138582821915252922096185889850924198850724912741220890998728588047760121283966999888680157888492651030459336064984453700134885643384283600457154548003675956912084788071770201643479672723100110123289280780807994651122496482627256450771516749644765464821238686051740650274118941309430819989414611813823510235521797857531713414650720767650376838430380245614270465536553114044299720133290212879975553544439784400192627258890970465431202838812891416358730051405893823919697841158426506722328971044833908432107432575839021543378210855861446010698396847581536608961019109347974251198612870303724518124418072470965882856146311104688656133113711854459969501901647529018065095921962467165176392896203156049155364585861993544347471436521144183751927412195156487061855423631338158289991682383653822085535886466020606074562600530750863177764151948986399457103532835474508113635473948265421263045421152386438384292933483981128007904089032347663114014570353837843405430150001795852031928958727682982212374804506584840853776547218299594142394188063050189729777395694885643446944785327413426618497421522302743357118728297993759623856294676742397925381433072839196247969535466968435846224957773571768272556047764278095738818702455271329656851099038018570423938284592034681665463607790654170020909043512451702119599777003811354428062804047436373662439395369990367059607042213056308918414771903211193660023003618028810837360416138490084054289130340077077726184436086783451632972474208963708979999935553710279928882238341396680054940939000145621238079081604495743220033307348658147245961455163747415619653106631682202404007832775799606614916931691055059430285110038601086324319970726395705145856514273820609553202400400144264531550149793558984082131552012999167477035787732619879334190973568358471064440932744947938197931165723717685709068012271122568883691237320530122801976043718914704108678849681452408958671861289018069561698228346726390375644113463820551305493294555180249269305790856525380597039902327714698804520422888334754058714811641041415574722495616520444927761852088626218981771410914665615131632807029967496435511733116348483923562322127885181933137499099375663435276365819357222480846050625787643811627301749786006859041197313626632901841795435453041008166846215595262630004387208330760691127650239317782677359464248074116868974833215623524255717770680534372464742728328484639887359491406568632815766769569309473020646945682871002361751170001158169928775362601216563759175897083786850052870058014147251392849023791616091996696199971955685749426479967863303518987516907791885508180867078731605876009952902118515955377611081416225471811971474970742986791373363485598580262933499365378112123285770222791688008812651179112212725388990328778169999563035229200496375834198664282598794335717717369306818564128310008404310464215954310481970190009150520918294325169410844857045536096061098102864529484591601086586230843076266372840144662682760416858568639492998478157133492538621533988569217379436757481372801033355921429736558066083012079389771148689476419558859800875907356944388719568752303669500329293320918510951082149226012060063435881482502481744317757388703055037140081067991480521884454679095123817016890182253564031955908044191685694911576632820536631041402177899302743759039397730003293093554311494107360556544563781281565718874557527285884615840692251316502761511980290459944706326446263604486104491012975979292583914111479137242734421269626401510008403213426091483768749663854264206146164614517121573526157865887904592909442162609629435137870164425952538672930393024184520748355526761933977080562541480022471282143769239450756905087778633436167628285318761226289134478108471586067578116438177150907711393500151183594688781493432347980947784498047975321790500376042781812109839041270416691628013203886850284965748192535424186711102827329736800589157687609265390290799916730253362949427811783538686266160162301935784860768237735406452143058029969985603137198066436540756425584134933040221612801392229413962204514795665972312854939840508803066347835142418756946476894853724528337068150329618441040228635225872401555005616449106100397631670628741952755885548056575339955959040868628860204816896450329522111537861123617457585313834743786694012508836923037337037826483728604035269730285398945940474217562952184431217032256105784545539121065069923727644919001032410571658868094853257658958593235528298102821697175788508565068769915966214732501826673850146860125337198676076541868412972912045946715976578271223694451586414913551729434013075304085712936108286343276655400184559733866309202116882404298555978077505346674843250043818222970989809995695267516290978669771043370600966309966922641394481136814992371534385406740010768582302680585270030856638218280987707426500691403549130803530791235685783237346280693037165469052627838383160544316183528104884799214606327403171754945385923306241974012024215265026801773932981895314219750239848903503480332092749530020626972021012827842676906368445325924487933383079234001801637826740026663287726350863448964084499384001780776591957464871276197619899213600169253902449168535079694932247031609246174987439743245993080349255839971028890465438982690654132690694014127355045812770799994498451465674113780305492165764996965868150755748502614408575494669702872779385610443920544128729970679127998255274137161118892728498383031838344263302314771706662925968840439826449310693221837604079503978952715062117808522103212167045184706345961529945148089068428356796553619844098681527568656123815954656965466099184031285871405103208553052118154900879776670060796331290185313348858223158909778432747670548940895879848918335693793467746722788199987411376273594152086438593773045345236178607448954090842514541914909509048147110772422632984625600725016050615510903865011253681039361599364172576672275679412033110431853043963397999726667656333092063045357027095170515344409599437101320026229405088001128638484659518669436299313710582815335105579318131148104405502922730710259426267285678323632470045914438165296265615065916036914412902765067058869719292493922121156667784029836127071164709835529381015161478608306728246172947009236162875576871678388605579401710418966148083495125092319467156667915928174286804259911108423791181787270905266857495527058252937960035558949719656658732716846865469492198293325901561269009725007285294206038873863091388476193070339136050978026780796245701480091947982425887000271484024067430498639892584712529806779267716166992887616063129322960011222463953920292755109241337678333667242472876176856630699156980908422557804717716174662525666480982016571367744512365787408446598396575795791011378955364175605467811259901794911613734461344893587685290608590591584333064282369415908010267004115404569606063542073068905266999371892411214302588755250351475921552166194501346968548003673026517311094884255445268734611334701824215666469925128803967830612369777274289757305817130074993075552207674367972867413273560863819416581454542833908414988795340054803362247210935536388499006037120466086907865484538845665401085917722905307784132644816147752635530716719214494602537209803567379530400567197034251621544155418334267976552242946056854990788502940073656699407094933386581345265577782971943821727127638079358239799501566072860321071795672980300856084580043861727845943192321724006076305834694899054717490756174101673424135302156820466694221129709635266182035189092488294583695495144979515343778324527834414038382655600305505172548082751942203215319389483666006424069007579245995965451493204060384456382079441284131298497747438605481714259884371089732219849278197082348823833575642753503459847456659251007087004353780634774798964161486080564521493670065643697636911131692970083966486543040686574655537547539642779102290423829585781782121940491981986822494720758848707507893762147078655226641998208144787468671497320688761888995012832100845428441310072263809206938782190567893690070357436496221491573471776511889286096351255251408407701282422969810821282839400346808997337829287831001335913179392256381855874466742269673627149885776847195422174290638217805770214085086644824105323626767717938724098304867807825913216101118425670827334638292190452612007168795393025230885823252997347131711104655907520192230022818352665895377661394395508916280540170467895734054072154649037710348886529602117285734418576170320497811185194618910508933285528639509519944948817016479762879241800987523264234041497264878401131776927213860041367978472751056921494286151098830911660235902342907814388606012767769459684879457410665567234342948809150681081820244697510098583156614445899097681317793279610898192038652348624110984023331462248165241229498236674463185700340557572785083233486068403251307757694016534717730158457322478212613612922973050986887477792377916250182588211180798015634359936181306919993735868271822721615048091403367322617745496985808959372080892033040364363633042509813087216432167366398142645676357963511712381956553833208003480270615723693932467161887824765127562166895099502375988348159992119715898639245418005136883190784622897825240578011432782205973040364195296719883774936400077786936014247136530229365443750488038654691289560238801265409097080775590748017930656741852878749487401477512508737813451407635016003369837092759127660777359431049577001699175671961257281983897255109179025039326373043745815880524182031423082940952041249309028584613171093848565714471927548776044202673259573044252345199315864717626017900243233271157169420597470154473163211149540679547604015878254354602635252073712972727274870064441637092369351580719413894870279891070183562626868214786134724511048744044368612678823955124810543261441618217149736697466629708810066515796210465728084730441647034572547836817606426133251800708480957020487273498119309405965825604435257203221069838992513121211067420305651347536150774315148473180862721623515698314623445984825204281672705016578314956543325549451802470567349015584943680932770934292938508939072377824317969917109123884062393548849331608498060933880788193915363942916033210644711822278696953124375770838306437914901376156023471234289952883921520462084459493275880444439616442444911087431157343593728737312271496202946398486793586978158588243891476430563974759562146013928825423062009025142168077619887792809708771536392550915768013908644122981047190918821219371066605821019783158723559508452723249144626431612946346945936659057936400399113819140833019273726651054184643155245595342024087436116784431076814262387237405475119945340044480023875474563896168693742624301012170874227329509246454806127844211230467032618036252104465909299224816227753683350896377866066851421160007767860465437330213532836302595574199642098867846947860656215039250044019924948999804676058413395719960055100870733383876862066686299262015167313344306401918965759605497729381416638446151092537386770832082468658190114300553041666385290371300357426286504294667443285499706008718480016812965213794611612744084191315487059189098285417500473324079325617429554735368450217546052619521435658733574138640316757832202439484052068605978081802840029451415942177958237502874136889401618804848773608958237481306713774474217042521260511241121720903272369825579255325317424430332042873084475585015319019376076883155476263952752238624448810127876221256504567470074186912432458711215137649895667747909975123902031130708899936839612705575849511347766139785671234183362125021107833484943491377503318333026849135430856701565255934190730378239031440774486987176227719589932182519819227600974946365927788672225669015067829232708299337591626579720854059425598249803536651062261648973925335046223493138915539446426992551343804204480131872384543088677773526185421250269491216979040829426703029498474502805988627476582895533538279659570358416526489815873715489905714107035821307684162603343306054188023948707176758629500442132723030821898105170213218878522970025130155237914703829751174383338437922237739761964745520210655374056435947988418863295473155544256782549180239223356741352698951743460308863197760325351322129137258656580259218846185864530747528765708650947670986082809144354932737905494533084381417408724513736341854542761624549215542089015496552994067077360103597885579457246915792002641803362541888715198299663237646115936107762830738660967906116692110279973358388477892776115478566996415864136347929683320657209285218777063874760266629414062838702125436740232880847662103217272832808266202980155963125467009663832390258230377950633420228572346839269557963024944300817589305382690977820175454469125593112489881104895363761137732679738331262710387739967433381458525170513913734862412779669686510107615312521087186630596886695026812542760901635359640367635633446634713629132466567660836990405756848833350444212453152086365283361948668243090751694084035279411056174321800117708254661825850509806887682104640126251887451552897234094985701002556028494051369316405796255786762352222496594770599864736518192161718063152933521887193822711869762045710298797179467975480618797795909018867754882584264870286701776202436825102742312674721027813898539578351235724076717137221514991529328027941280222422858568346212588519728525260453770889728470754450456586830842016584741745237282621011504640634624021135985261471153030501906912842959607387775190211578563991409515595598489197919041161517430963139641900186893019440652621018354422232518883725949894386652422921504411202111468601592850373623241699674631673849305639101373961711053208544895952568804891366675269632103130183209729654321740455031757789173708019680153609238690363597780730492111763398062523052711364778863267261727798300586096192345209297506968990313025910015601733591166546356920210370243119789661689495442853693384608309682046602862795297649214907447512989150676736227547325464380106204763337871803318954558732388626594456344718729816786227237299126226468242886355239982600859383554775287320247602399177766713795903382708355822575519343680969569444876283654050561645269187134072886510854368357762436677035166988982245263185234766566149146724947619344723482027119053959154343018295639195191495419647085205984283589095180175473425348080206511273539319692414623055524522654595641591046405516320485148522263267877428370201436456353313277508296293773684101241742221000379526529286659188828506949015776469256123828799744614804982047828364017413669892033726730609707409131558204821265335140688932528260643011770728572064158066499162135209304130513686688595378338899119924996538268047014436591947245178678111459324107449326249192294056908815801370581418175213329229062845420535748359874411181996071139701903798334261388252556275584109677079012085296322975853884394808853267380146209507737586154084679854626583599346814495539209303615277229333480002776996533317073524036698530754329405610666310581751532480737433720255045135383129179767540664817260474351770473225340885228108721925144158221402636098180030343790260210790496220138675201369813548896198543159587050807985009063172353207704567242786743897990111330991586456974029888140317115870046729138242218637325525737544146558330107313989900442050451475528832535277919778294669859599179825383241274330455487171465075455110584603621705704731136754955881829743108219771912369288674802984966646627131931077378020721640387048179316496481560681643909392972293279172434744746336808785969119378042704236294856950136564639516792736644654919792772147280848577196491327513790166037387528777980550941861560617231811037916693985350639522480172118852142214953510832974267312146210263858429006041666119214198307927578463738143305273496608338716552283610352650295580562758449594580579030745118396254943009204900903640196817345166303045568804402971124063969131704820902216777559548845527815984300559645519286505880533438889628009486930152944303797082730155776878869670560837306883527391957628151842529971461182080252168021377391196286390278443848961689270399939354134995981342585162153343856825204532808382926283549002269324016791220054083771674934875545922395736040634555759640587334706222650318397879824522732405750659147343705845312020551432316162951417470270871870187526038957615608801307966030213290795391389794435101849539298317872571115698602427019599583684304614638321132303356747566397715106251377696339437214779526197553303336993340606601847554478092553803805013465090055045198067478086061056017450883454692145189540659052172319529278590774816737558195304034346500747801623648887282763245796371068753569590673005218960970279051275175137242749590670741994640943534440519593784415074257781926420771838917825302454047163836446450512453518304902081039777339200958152053881530284650817051340173285957160351531167086945842698552648547930530215914290636366873194452491782646154515345763218048310965386153640498481054243449672878151535312340636805298642665845905205865075144735555778062852501450432838322918744041100729911727724539564204671678348344570300864561537136867040577882939373144547131883183150255232026960156002793776870564846182185215087986457460283054101167425059002976980375807489885779395010114653452171016417138346248069597089734923618951539578454293850965368062107592484873905090756089581204978317215849185780445144580306111270559730057901010188708311185646320957270163469789375195732319096905269802775648662588351328440154392886547408011716372950615163448223565641497541426509199938762112628844713529660313159788995003627061800901971304738481133985710171341484008084600588076919763282207480511985782021039818976762387034553512141522605901024503809671340037753050694374878154229290278619296839886633104583349825314661117375682545122106485041595172691684356743628422530036638429199834603031549637775029139932474119969012542751113080611911876700988305275470612032249695005405342341822181170751178742170236109598116718094730371406246349930831061746833375410723949867304953615678376083470618135768023116235522506179146750815088354529507573593703769945023761860835242882360184104359132817031908546518329539003948170815764579710703439760694404826070976394609692923906513197382517682467641499221920652191447922310840965760568295079851511651416675245764091799794125098763699098205902615109561621292858294479214977307446625875316783671234528007938953086385325352324224404395133037054639728511017643870665500927414661439198842445662165079971895349406767806034773321461847227878186701835438214205937901456813102612409413620138157675071370443707663939627514672799300247954509688001336325453248985462444702414145887514668608212932821244208190357402389959774563957773575217783027942250137360703885880869328837852066800109795516897324942671647695709556311753256993850190554228656071519216388293039064566869270633447746275024946728361141025360450733220212567659476402587488440822124967761498526697265421627821980723313856009387705647531102965793929111564438468705059492896993271646820470270099864883166672090792775839724284697761862581833860975566936760988351187043327337457814193767799372133064853866873742083110829345571914868140567545045591996114582148566294552715845299862891275844234025252880212707181221586818334123651712453130125804928533909826313553792031594227406092104498839556262421702168693908025180870214069125681196483757990553073849709368158514049862086894810724336011320491976393467702777675448569193706706871477461308306023252582707742383290347139771454563612748006161619489818756054284508339545957646258494082148838125483495220763069158211390500791575606253129892341102477324216825495218630325791948840086976739109658776423380445954346066456171345088414059679250185715351717399184612910019501200970859256166916727377843736017458503117536526914949785967189440765329459486623426009199580769760028118620266836452737279917577622232819733230529822127928419874393526307520913566929266234856220983964986577504089492722110142899708992179240863693949142901258971933276812632840129184685385298083300485737619467038464118223787887398301247933365737826422571897472064742975416978883464712336648223401188917768626391728000019000969621948406706101129178479548248756281328099962515361633972580548340313092854876281205621256768133658746877125540866010065103680815503670141996612873788622844994557312226401576723815664504443749692934862551998627337353849604457875211527560850481017845777697860307201670445981430704762970161521092018579458474956938871231589896581275131038466861994610218028168049271287340825293386523527238321099219110586530158766765059005948099179784455421616464701542070272068405567760702117028519990664051777265193176871529500409734823471908970489261958346754357182270041478398500050148347892256169936798513116306298789556439074148461821275813778649760054945178481484163155453604451961846062429158945997945174167358221317993931107412147036733174476600927305501034547881975120379132292888175608051700623127719714897628864698818597280227848947413017163058935877710425710928887529134970850140235190956879949051381181879495777013752374223390618936811170457510716743028267516870429411176623438806142869727123202975618588568377362894287375981200497647376286753898140571785069228263839306548542290545779546967617507928475229776807038360195459875732852933145811361791309664235789581518603574407121448383579611870118999783624836747973219963044456429487440121683957008150421739566813696730984762265783259601287177431458148131770310691584698894714903825305197705403713800253690871739292762579395137081760323103992005762197489524586448051429593962139184872405591693086690267619273667073238054080624223599805103270485884577108541051233791265170535878605462668055543821346762619840922850769942076402421662813247636168133492104354004858515387103330310860032696077827394156247555835625089302740931084137197071631381150466847604601425911635961403364565548115860060114075253605258434803119491198987676411681099650972156442322596680885568228544397277245592336483810570635588203014008883030181109765620798369271024255540998512690312106134097038046466259695747798329890643025524463773311207137300975701771584079516420544647726350236818974803231862349293285998331666101986222070174706373582400580298351989694817488983557155652114918434228523908260135593460462313133316767482658562902154591742901778975561879955761621241806447229020534456508598219462448751270080641537199187667164004048939523438159224866492859012820080338810734990116852346458697503363943582662593837477525196757931809486941654870437273957562328493289019053535669775155190204019469651154125047199535887811198897742071735120448842115742096726467656900438399161699250594171362364253620858723857936006617102491000820516773472242123998550722683496483323687350629443418385858909816446472384633794819459703249819127411575936732060300473589598810255556800312462166619166160547229900334100889405052777887904896796376252525345404195088090673433338666570405638392810715655196909328568105174277393780387628617064902511970600584662685396694671654848485986796661590742256142894035654270644294839565975180697776914363762716999283265960317708605090253595996156897649081018023715073425632948484857320056291407179607647433163114114417056843720007148023858603426428650070024345251577561828689181076134625660723839227572365422785627699730391361502178828318629741143440471055761669623411527913963309689041782715910266092177311892963731492611251434272467854124212397925698674089868264378767943610976650441274828486236015860297182804956242134941161696407489091626423263647208465605443027482373118470582370811848334607638043326431327880522530911750423245840449001930590060843980131990979786062846938556426715587324890641015959692620466256482990075034336261856603315275444298241134781324984909445680144033068904983171701986574097689530762897657973813996306859907643842433625153715732576056299638804825674451480406857579358353801137523665449190419368539501068824538990057673585362118148662341356469963144345272985324650986134116262016551839412304976014578769762855170282284028182096772579632115538294023755143606977010766910295998225986675767478196242199379490107539033933106199730904907044080693447884179358918300638078160801061872040572089221793305982105453009958177714796836207151337289188136346931079460194073626594408470719284611119092824485216709052236405603695697800546133977221120812277453616935284149343327231120722569697180217634542088364568144512028943029402490499224799981176674245031558723317951074784643424700150951977510189291258859783459862962532145959580869257239179793052114425805906111002099433541434226143836728548231105502774526388203612306269877868271496075210156397397005784922732940230122794014290038183581517739636400735036196585070680496477681566164535460592334200606363468567894147728010289594433035931171728061106877668801817170116991444776781231354028472189854614550282808221968302460479613101141171149329380694862243768294427756837298472888101130385696085325932146486333093653125099702627170018842314473305784381933879965445197725511054312600576424349906548233327675532576907183243886891331885600430442077304171269645122227436540712316514388003435943010592111819977818759584081195419338521295957298665329767929042809176399101681945972660602306076229924955510205563787133290093058945687623105660032909017983013544752823785393271944227368716347499932855802991484109558601484627531225571949541478150149540828202759757950507777730305824236581735586074837922320376121537376519166291448061981228523819489174099090856347364557234677345725682793035154678867263330529000888150843051392781616899444473464963829198437281180165867974657461118865649439982809711843080253621044780227654450019974793318751365840231113073251281057171609671162071418675094970069153546408795501346119115329259263151069263420485809272726754097244817790664890121081582731048144556671123976524707132057612017904641825079061752431752327113653695607176133858945345839170850095589531892415720859606636041726591943150242879024652813481049839207186440817471190470069228250686423071154478389596936169269210069013836434018193272185755818620400288026037048920754240783367649747093199101758750058988853389632718469143141428716528970063727451239721550101411004846961958453544861313522590768196156877106207439945260571070862346310300600906848130104136361255603451905505985669326337911162016318529433488784401098729572228694539853289769699530686321773545583006655910002632086394196566978505927744135094982984425541628846733007753489664887579889950131780254281315997256304294000493102220224762268757556113307150838107628444603696445952562467925345916991222271268754509526926755474469818180273211245360822294039329543695810832481912950820816656505232553195390181121193704423195567041905062047792703138406608815674293680291682426275143493166621891616221192931031327303259629024622331514377884210915388076944411207509347793679009411123576939544875559108351494893858413007334954661531728392582344156227910883772292703523957123145917832992775574674051076656695604461708559172350516325858011627706063820410976406523356373350062502654773348681476264272975322940624702769590339768264412934384301406966604507474149152206955835886143089289062813375196041601388628680217705030011979118244511591442394293769171215308990390099157483349383283630797737552729512750643244108857257112733028824583497090069909190080187764472570212484610206418590704339782006333135476593718150854281521365022682119628034748659409863542326193981603000595251534275813550200149522721702884087612983854195252385923634183253403721137574440177508904006818745213952479631068324487628646378752423247742776393398531243991634192978203903652998331686143415662550473400714542786684556016996223220507636847974206833589096454811506871483696546297572765357942002029504520159428272622447550687064918130263291963101980298052309037888665602986004646080877153142907632029145345866299704375791672935655101503954254420192369725055216602350302458242150638783620059505473200715576505909669877168732430565671771593138616260936183858200839794544003671872710701188005477670801894670111314428864401156548244680690764602023180123779724670312028992345010652213099259327847974226540386291130490455384170556355703806416646349596723576554416038956722828481052621292438397192350497351466356528776231378675431519534678474991405526702281137294069118958043272136568362437353342499390692856905012577544130936593687880275336344431533464136436815450165391527227890407668100679878250092839485174563574833483390624445453869425276424893586424015338613268207720725458076273015415302305611427341497584344246154553859409751439873655412576188453576906364613975397883628206646354449128868281442387161122633644429261908466091723746273938634772618371239639905004642245719962577544692098154826628502894336852828007698468767638606099579428310108252096889944647753114040753045797781259712793461246829003701047482447684215547523919609162582820775759019628810337669005348555815015664320775481322847269507786114527041421825682051624958619116504875999768158629169686631087771622959021218091410827276859964454285416227841954076952238657793404422163988641244035601482869458365440416813969301903769977092833616135337388974947369445643035926825323681361960480760721578066021032892739696331811286840232428221406366095645071019037949960632070173336900049990688003242758203856383236041358267967121463334019660066678388794812053079016032481307621355869819141218564343508896445875524735788999650388122848765735382350262271904499184452566798718678396733826932402909126489393156693818747506943716504464359647151810423736408154961543226433515881201574442742801185354699347645649281999397838434154437857537033666774083134272700427876608201073298793087897968724955186877539031126352723010557891094185235141310871978606383934529703977953186850026566633726195707284681334151967236282044439322652008711634403440093368160651390591788880580724255657699699718052528953225957300800530714829557050010618754250795688710890605056569673282052734994300250713399110175729195014631220344598949942792251702450059931546151506751005817655373262487198857478742915669501923974888898124782386365825552897983158124854573899242842707839474264332245225625751241090797042599179658061205642555062095668422563653439070596691066329081449232123145565845034428724757811355790224288536307068657083471343774300528956950383663220097307475784358276174908276346227937191191754681464208559901098825860830540078455879835136418317825176429445047161409678405368207374392060709743658258189081746513158921874315487238639263354154922407995644724634250368257448566005086727400391586504428802289686070836285573018658184548701983864937892021673552304782512555131366801202736565684662601196320741510956481099498162535706126108675771492991499034754650996909084398045293278391735007008570354052451471427957354774793001419102961470209517883758833174710634966323247333269760097650441443399884186479823794286786045269543698488534796287394878228642297581020284979891229546023788378411701839113476497905391666739504387498564164809828834991022015974921793908394803502193966320437088758045581403868132550568024397249561736999837235920825989174946376207215758379939030338916213212078750711705990736383136759142133836862985288605027639883735813724373735724961574259662601257564880748735893538797851027338750819865449299763800906949516453698849938547874770787162746433199416000000007237332069645035368330114239923476079582591595642017547395396466156261493239370267132655807482341285912288814435818944779136883599236197728536893929391198554825852891459220964614609965925685098974319980902701513622823517718401717213254068061077732634192935250364956914120113029376395868156678050125702796879859495526114276292821632797171246681205437329354695340842653867178374299788630751633066910720773538433350974495107003414443091726812696553863047238263155708000887982644414522703053183153126327809967607150006474749684966487844131130023438693196098625890331972945564082043246247754361274611226438823429143001231762127410197989868448195777608992362454140864339820869904356149580272102514942504278343304659367278452456198203042288983533841694428491744183595257890766713981284808418527381449826217887645322123163040166211227242905398008439811063735784080347276992428027135362624726076860775590765757480848276146315130436987128151397908267200997622986342695131061286837686839544163710959363613700304748152564726110879630063504133982157921581202137373451550597341393697064469561280944487807516679060617095719337294659274156413568908727276487354638092328250765177812402050436076857537105437823538914188725699930915669602531876052921864038346961183744448211092621943680452124067918755217929638784412627815529526758878634185824507087352023995107044293231739273160261514821755228905834651799421595313103742455210460416555782542355869965005348159228747690345775414152226934787812125406412628464562288009106685654942103347149253919565194042332630711983131907107374188419999008625352962984547565068531275813996523100870231678271176296109623750300770550243759504885683973535501740205439211776498038876240158452150763754874369555795660354924418299412722091455481872314373195066631105720334332712394404558573205015066765211138342086962031960209309784740698769110665827241022471721155272323820404111028254744786593545233193654306599351320030558355657801834980245478924370167532860889111543737824396865924334704702220510226316480322673632471140915025941599523864101694952278773923295149313802729753447072434725020983596360547566811511358107118047800772004001498764901771329681151015076170224876756321483809935329232701427046136922471292057828967931233150687302766826173055326675380693603237571604726744802713036411049607959773027799603662540378701648531513848239722762768846100281451967188151762913616027621575853054515550337865914128537359957788474778454835925051625618309459852455867865667795427868343581722736355065334674944994092486235776530122881204361469928307418124427951973969800275613155469898317159408447652707154775128084103000001341051929109380280705125074211059579845355031313947019119967999183532910392363073073312566565912920185869038038753514721897930267018437309289070903914248653805576691629659306892344820387548207816026210150048940768385386371254115218609937502761583697800850040036688783910837553043036574415287035895808022289949487251348918408999002132290294342774596732137467658279186364763368469846293093115595967083881929474833252223100736665145415421389298059051175942163629244754072751198320184900057249911019539290547998242241717280818147585693638345049225640982070816928704850483470519996508356522853954810654726815505098504658907542001268199919673263124577190151818922168521522626997981309793785652692775602764942394747497493318984691591945490852223802322533301154957200422786162987165313389695767170325164915487116438492297600677975318941898025507394911553165182588021407641590796778905736768532746351423039765090173180579103143447550154229198421495134580352254173668715516141932500116801497354534435985164860428618939484667868361084699153454325821078141922021814090176848430298949236448545745966957903361636396337234021007821672033553618284036594604656865480321827541521124343361547946553613055606353574260107193518743492190464339941483214024745413097401491389380207807831752635171594597897934572118511271778838451372847262966667285067657650647075172326008372857910422439573140877223591974591728483080433787420850127816040070037896333298959101370197321819246623933866106935939208602685316157743801411890514667047447277980361661643418125987278116580019321639654962357744339115091746894295778233148748794954869023470976239871650278289703487204869611632951962135903469593762516644797020780238478514243905128290150459484731817650243557777622859049051557772711027948633901826538371579020495147813163670712260211423274814912479738624910803589316553836452182697452025652866918547911781569439320081666692392450370092022162568007584925579313735038262888448009348434167749795104925068031765118161683022723231834839588969978650755258890059500269180026244291525346912588841314678619608711408025481474588172822495724489425344788393522278309528238818149248075435526687506734473768164952212242045963292449198565705353705474488264733695846517612089713319907035638326615112124872232310747353160124771042940262551614791707796457942983734413763908868205541113127425616419309337253218656203379319354345465048064388144041851736361772299324174489074332332948923267905079123233567737051345648320185097493822441565562814732575399550815144974667838449698242002207962603303412898410623768806909735701673106338545577573359015845520318102387507240372919198975175663927425619040248097225846451658138286728261617719116090195945663013488629778795144220455597579661680410448218340730561744382742499970285136271949152803048366078550119934239672251711679714109241623020277172781447186690868027181891291226453995451651833590389873197887734330511835921385935198864394235828442773431973797206390519096226794273662600415244799639190659266228205756513034118541784103818033691369328197666334186118417704856319141551804767508040564316222967609555414627363402941103518682868699586467198989399666002195036909544298279457566235727252289622999967800878006359146394451770558370338465159563472387842204596602390393327547801574971592215274499316572911202420011775328419438996523845482049723767931041709577609990273911388046910393682378438874029325637504484701958808562840288136130057389992125903655565883233744444204996294103627386942556823642427970897349221437374714740072256195968567736388439899256035126180566148091661412866092384725063701044059498228019529553671770447301858587533100720286185868030507176970380415214707491390008371914651196632400272340304408365841601445918229392976118660453849362148716863574068024008978289558891827080855435317725094130129574405345672344679691625595797204548592437642090204681707407322911971883907309108516460529482389572956612814259497344892408982340083278283940871837968284637936761747393450884394069867203755377388933184746819779374276338060919119342408734120990630402668414555381306981994339819583897450881996837858696756614286245439062264298083524607845188181763293084891502659957942835052454702768564072120657677187102947347209137693558758568410377587907526416862073871175692274560838030385144265889978940225969597214296108236994070020090881491693809933089502388174608695878574439855278109053892414214296781566670027538879057224617705151744175709027428804145910461955358606221068878419189822914213862033606262525549113236691159009242694284804260400720271233294034290784670149274376071474960431719622317614224956255837718433573022244982474860170374396447724084637503331016398258541186902698002702948648167557948505605575389702671055745829651953289902532550423237321951990217478232757576708607955867173769776530151924747007003126264425409044232638739757755976488706309276183478085652004533471388260045632509228606511959398953505811860142967973387924558592047624791879452239590048440882128016211998034730716999899121933468695192586925245733402743435943188291602739476386784242794113225749230912364806925054444516683551910762928877724060125022049399969400112872621902959172519509250849987486201656712953724923544534937349672410847101059936294414943082624706139837445404452345829871083087712261325994549568624758868083791682491323245419335789410009663425618026847747670388572241558854049377456380885257763791816740990065585754024631658226331366698551871151729307882318025983625012840565260703861407140955691137423322641339276173666954911054552317527607835794336427877535802663743740771671017427049728089108465400532874585714153685620974005720333617528175066473890063802441698647580411502069512531831800642345498402399346479680871960568301056658260486120925091300913389000425417028997932606962894090858710883299198197276003924650127441190011276518764661748589163808827217971742417524004108139136910339781285504155815733939349100173239845652052817298588052974964690396621774642525873273308567625628463844539074900225750938580173347569061213240821535010289157984658363825000585577980627054401111749840601379786219548700923676023724062695203672662936938922627146991611106020702693318604064849349886377226045628049343008294351494116093348493632968401878404470516772277511532417651371950911600213748562117857402003683979782322658170217331720780178317936792927498881179181898410354572144614124659755222458696390420270606260228250239391778587761809279618811779655138191846065778183854493698114097427158488330176202007256735239450962456561627630901043906966936924670928738434632111498269288905446481566099096830271907562698273006722700769623262694061633826978082451711454947512456518745110874458762111754504099772689687216793291677076825478004967390696128667821719957112704105007881076952401422909338585208747680392699950905233747975759159246592967473805820702367674256458869474655472214429134370265652571155000454289690408099482204396533621209161917575156477557501283038031940989609621989737767823426154487856471586587647850538182852583508238738260462488144401481709814634479271894541842734005482850782193493961406519126171770203947668734656798691895972098417756008539179457301565148724116390722033195792636178024016254168465552450517218228179151789046247526186084149075023764743818341482452273796005024754125602682177993128684345505932545541642427015239140539963566160232338067663093342543380936703973039329340695987976116311544961076408145250236064945882808416033729804098841945554154525726664626744351694984486997202117960256250217653266379686324776758691939701692884843225822841724197539082110012022271644865850202665222567593878359457461472794978011044563173356277249124660733410286499422758165733947542113815384884650282677682000439841832328377627089234455738585033230710449002052397215937593237869156402801465082626364798010654989563692294526380361969052919867386871163549123464544481423402505452658146383174575265143188422956703198097948949367661812721729979955580808518511133178645997213776901236576132463360915718438560351429031751360577802164228420410214750827634213868513624571648240973390905966441260809850654532483351813265340668491618928738649177127953755712281180847025549692876715512126388146771887218446983874586496463223513255436808752634708725754956929903786001490582923879686767925493762338841120756227162666454193076592452702813562117253030635863306910539373775471166443123711435104551367978887528992534222043730594332768604098762643724893878584258679746031635696205576703393082287243311254461035625332733991052110215148574165954573230822425604273228160004283015929548013447767633356213026232417160437304476794818150314056986524649811665213711096720506531795604036006753888581091827457286524534255153230035283061204489282673185835213466085592867429669737321759929395427143244116025621119214603979886105672422488469612991798017922165933954209941133143093365029181459483468229731535096490631273341273247376400948621461060247152588801718262247727742337751772419907791234851758451975167811217795369440510745734271833128887258681981742944362603721757628759840591087353734089550446200245383286675946599569905337197921866391139124664786225729010697721369627844991364555179874891658120570151329226005095589093032689010974133907529345644348237701332181429929781447810600791222578651210429782032271644878836326531633662942419411676847202110096644361570843403235380451706643542749249008580653558836238214100436507112570198347445186728808775215993555502299011555318146146040494149549630871554811379639784272015379144071462665063464095809536921488950363969994672358615686223205156664367633466999095211356533792647990782755793247426369878801349593698237431634417047275064949303604240055019204429075862015705691042458860077168346986976043881123615141115833851052576871082573251925449553504505689298988569916668402398490816715839156364126538426722020540351873492478101862976382978657825953441532650386387136348461914620191145570603270202896092198784452722606283842962205806808798127211364532127504087061970135555891114170443829099701027030995856381273501507732652357232986035264187581164376792250428690375654767582581227155858088749649284669996274694161504683078671337968350253197946916847738399917936866200957479364800517639328825239797689983503734301440569950127924498270590141120530270935872845854465155513410268844928004477083480055239563960519342087345449109922851254761902896430177217959996340832436507984626692330711246178051486277918008969758395880316488036294984513248906489480126965578557941836288091097810017671423372661202886078162757644747182485031940830984079797436305608202068545476047397689955126589052126713053532526100740126923471158808023892539064172445985176530413317297341752201288244325603111580278589191511574182184068516539530621455955109326769151128746986567809917936130562646497172912112114981206248562849266468008223192777863682801280838789376801660407264342485527702241728238571067180990537113413358913779703378368462235716489503294936623807893940263851621037210268445246523794452579797003567566778676721509826148166153573767790780441440499360329087166329108622397601358000540635089542879938189879696970754190734561026855771324128886056788705894610773182167625130797292366104473078381685051916244345083655973572773207350639939259231276830018407569841530883442473264849012720556317272934291131786939945422368798335005310579918182143690024119802711229100358425971855840956300943516805615246734171886799960132773701699834517492871700102440745786425150456832856077146473097410937092381453245521466968536869995081174548561956134352913785135656458255792755364960144100827620600567984444671853177088739676368548391542007835001883752659301596743545672248973838878580510731273496141715131082515621029403988422477346433256819586280432841711154258224280883619146208464136938022835844481540440851208930692991681976178817349886910075021071403509607635540327623900603788513442715689789247913148003545096203001254293358404973989199621216183905808333660312461906730848214291677403130957551218465929854513445858403493261408851629106515899615002822318413633059188852137479368573248782580639381922195849417180708426372303663008729984792573731204097011525883809288821616995454369968374285623515819250133495001335527790030807954872913942077293036900302415158648978716990851161370334907968839007334626249569859643715924670887975961917662914438037547016358169312103748375410193027431603220290065315403291935528754946078570121047544736721015363124228906318732897216286288839673964220587720188887258012977960551026014078821753225151608805850078438064437322732829167226054511224333634894783024043802260927662801770337690186938560905272967014626914461001919381203954729933415425418600765095471331067205768733401380701380166765365350441114793416048165555416511181099508187438275321034397904647683569118610435044388473838919621721408776097030819592218352840888239679804307806069410062323853053186173621136488363001966033292587975632621705740231492205117619167533349374282030475689354424777792847126488928786724333264269704048613039150459149917266081586881589839454623460005964659340172204559652147403960153680916021097827819746624335663394804894054052935774545678356194075094467612111690220088866409361681925846405228253934624178947401695682008048021380327448598113073811581843772290338739824221559328991663668797487322013708003504790707108542929874281673578035812346428884823687328993152427795480318139327666229664650620584913205160373978014533992063267757921180306254352089808659289976368916532432082994978017605712756517381840398599899000413838861201529327543745477412790436171405384350369287137211239520559439258461835677411383281570886629772814541894641238743895662327366050980441847468417231197569626618108529787949853679690533894812062902365009957130918400547410367694242051609816008262657408971624054907701873306652503027719206537159839808157135173109407888461209031674905502688216235827559043641483013391213974386050081734710236189773079694809765015108979199753025403454783196829632021309302568979254950389425762825548667242607913043204011617923339461653375772251414792316634944980731830346144484156571191803993680160834523955684151159936343639703699030383707828395903984901860872468767787341270414369320242214429892882849972406009527443997584736845046287913782964427811513444044662782112092963952250531192402530408914084353950662139086276064473334421025913409928308490403614107503469478295325721197105723929905724058150521676500474861491811034823552255154142510816022234105796143386815331903040774894873122570037368342694497055748413571131023352738461696114961085596789244500471245849414570334201033633755335991096003855422824609895574803473533875266391549880289469680757423273288974932735643053306098819524445288195908450087645600801031119032995280155079385500208678355008663456742253538762240497093614988950958388148943242251701726068868665310442859351305913083327073609037046051292575135757227216481647627236989068313875101615432941555278437447114779596395614771676362885384852257310476709594777483334167758986557497099161896914726483627347235660031873510671321859115737474870825177395164884942584991244745456033337099831857178609974903514612703354068681328521941935700116075718823964558124782619826008421434786990021578387620046958440043776997510756054512316004962698741767376568196352431564719642946283258791842601359978848450052932834943102522463974648156238131010215295451142207133629494006710050691851267717756397296619353247329767645396727231565281550797633092913184787764766806551232776005156255440961269253509009365583544663093198319587013069587269109519283922682841343424873770040477050473509968352819024467285658234742816817991048788023096266745943440005807429248119394137345870299956829169490472931792842331450274448507626737254906106892790802182642150961970104230726400029743092536219673282303490997409548744500104839844960634864999485163745945852572433395532793932330990455307803275773810990971376055187100048980016720374134880622386238865303360593432935113632057738093509260268157529508101069250696309281986057675569550764891698967525917427009321937361169921186507740798387826709293702491674747937932203756442067424755864961637497608793269387751574896109546706485280274988927752864708854419226799554160465663877647533520697665879390960041871347940680641224245282530251361078566224849414013045480396527170557875323987385103246352644313400817672914560252749330623581289317386205193813927511006451035720928722167651714563259355013553494383273022905869284479381047040035817658562030940960232710653402249616498917454869036608950246603836252544620942842421365196164008410477708897760900376213220394022881103203835236844323512723331220263838219798817893734240631051413080366686995393106179724046715085089262609154080001765155710462000246907492368976184739095417237388124751751943816685882665952143629578569118732815161330336193334644595782295043368143389639068765544666775209431445826291039561996429465121744012704277660777487160346154847917876651300634850054274582175847743641367019708392980818395258011716694942428829655602774973648823071254614807894287289901327227095978374251167589510242931691896214487858359466385157679581095283456957497656294496404348591888933251694461119620888931039991304241452025621347753278554726256041212198887075763517043733831859789413108083559580965114298457805224422617390224869957647078317137373759595026729007491990079773219871101541470850873846972699072195974223351844521093762777125088686574315906548465804230341809711791794507841194886416557456314251327992873201583280072862894545433973884167340477213572825352655770632459983029979173244222010845421298993361349425804805539902303534005087026015050365248761950734361366596550719590082955780639186011476928580640236438097170780799055870470782638570046385508024985514672236927100774864982543510825923864002772029125002106139279167519824889976032440346894475296439977221393592180089191882921220954362094555724097271626647095001435602297052957016732664748727616217527258790260545531043075936136673144421258112466905469738508232001086024513253461216512961386553044855181927511495919066968602154732037805037603831595695025095351559349057014333029319019367937010644714434239981748451509114690130069823100495290680855819990819775325166323745402092199204685891387185667002884586576881191485685209362632772038907146626331835457544622299987142561973647336540785652454423547219210167435960742789096223715285596907420143663619417122052810616045539961363579881707259452091589157634032477897905111962777330026924009029041109671909816422971376425983876518776769370760121302330207579986042767297405809579283875875594610639693210657679762300355018334545904453542833768503046841666823245040557134093267282218272314047323719771308498773074098722196201076246031929645331828356252238676437261977587799946624560998686621331198620747165529343575417183204148003153422251073925526474463194219373641934448149390070954227926571741018485788289985793854984580396601320597397332905163277504726294574667511393144655680750030734624269590247787084374373632098780868463145583010854523160131846095696539080311436952775561253062248569811757962758341539377715115665775508574353698542713014697980164421390790994576303742127767588214859008211075622983048606607686539443711992361130321644005501953805507156678350525506583046750226246731433872960659845306055903523102363965105169678964111862799118274133781154461346728824481984116826759361691075981685454560611039999973008481463420221098878410722999928998786641256262076307644985281696170724588494033686022321264773875710923256939135856006754965032326339669863023520102645676262680174357291467990715699345832289723263634300311583553130650933813684847653336755141838266865191179353319835917262915755357258405209802833334288979512320004915889574059849618987351987266362309014897249580499940217562946882345295853676664160626837675998392371189960193108433968580678022637197372845261956617048385418641186947006163318114673410808682203779572012018706539955074967377567961787986254862136470312656386566700511367513480676082724660028232009966801838978087785328729803549298042774711181763378146109857833330096416319069691959184397991321214346969001615829513317916256468938280565030801032118987291471420909077090851170800574300705473459816000021289369197863463052921157978464233674549907531050725797880456314164272858626730969580481058703406452732448167005355964790954345452129607833074740760255025420324377721815109884989794619569248717192118638066262001980399338629866439947887389040880062439217227842418455837276476483305128543350391482141725856811175015873146827962972170116002612554609438930482798730068601427564401867631736019918610457880575839284797360116063383023140124104661398368926732484542944689687745714364706451844542058789039590114948766044827071077204705657203744627661143715022589740387706586875401709743786519390528515949902082300509834217726862852310911407256534693831904273811214350860500330938354755679030586103472098746071767402208370077361496920639612785878017823568480419654077251276518461450612635150060860201563705677735489634659888126985106726412008018361812438106495561735207458945398589827469897747282942972178291415754317447644440001177955083531103587655611355480554788364881741936683492611619615656252401004555740648407289270735857642003593854297023131247743681592078585807072643175273397098236131366816326383449457108619480386277701527612681901642729717576413393790222010750515673803971479824517688268117308820454529074728844179057263329746433044632433874008947187438045623931825207710463755111506594802484991717369443591413013765297633181741872167759084598284698151458928713430158873930113943527988763162322829009370958136318475115125024037071032552934880702212490892243353583307530146689663722035569197037628002126361364005387755019187310617157739467448312113193585808750920137216817791973635684924740308413002797793972046381219751701554039761552080325740960205255866463560590260948095309543711331926003337167383079214303957968471141077535078879227627087118176972959118541219652796394092958654124880805462226505418330016250005826338578168674563626187729100602091044361197084358375011326063103185457166784368879272619500276890979182345841577860158288575724385793106046006408551954333902015530644970889892110861556671008849063060448244463978471243658005243363942128122184325051823807780942319301801293348592775476315483926202964630054003340721984263262375120896853109150598179191433796512972944276688850855109575319084415821384158761183318997544250537904200311836821129265356424648429033769260553227844055488830582802154831622827179241103305228598256461866591432667498131928966322599590267035408440284592018064684621632461762482875392815500646651658170659043660009399147569593354103201208191752217425793599660715373126036641548636290816876320202732397559393230654637320807457810302206820690852014016512653814101411806324552302958957945415315485571812712985756007428542313974139906681604016297217965030357440967515601495573118897827103049382055826256767405384551469645200902151410148203336073279089262842061639227543066398602209516975836037358453218865760046256616236106256971435487783065166864154597302517987072463321920431086122152749252270924235236483645318688533127449070119242312744516536275248759743441708947193662797540155923976295539107649643652635763401052975518541675473046761765108210146432127906771071528084389630806921431819883072203215779237948011745770423032780279089595529915757419839942939510440944818481517911544964130831508696024335234359542317282180842799456177226536359137806048004549501774700658805609515302157187431856319811486569138203973279329820038178061713923112690078893809414939989413359524720732074863494472440263532942721178477645617585081530337206146290167175405179516728425415814694409721874076669257678356181615448762883757611300651921035150657520853206979184343712032056785643696503119321799779456051383705409538404694112661109653609441038646308007926827300368722105562490431917079535708716359228490634687954412703715196495297477335588960084630161898593424234313291583748521770548897609827033702662698297437160140985102473139501844215813401846318716665047061561837768397586433544836487790349270447699477490507986618441028325770594545290871818539609606664167247828348495049205818346543945078191315535826896593365462674232921098526178516407983962428421519316186995403128697606848345509299566178834765566289919211438033276637369948623033010311884111284087069453887681215984751229552946414435197164043897350486090646011904016956671517131018067154808164468589642490644212178485899943378344393036130466065185460695757259005133128690750585013528654389074238052396537345752322512675787157872122312422476831005822327126432231677730808072304796797951871893498187750973054283708172348978790672203172585544481487805517091876526868779143637462747682048174441384271374507988403526560326854533643024167779533634198823892242313319986596686256798449810148411984118010791938505217464425673013170461436536530093581481037534901187610325405477093314019550313835770891563648406218293128921072057284243164742543174271806881999722921298791535397962967015207185961082153179419991177846290549120886887186078838768435642886751456122559091764845375868132078827668891407262107228955405775738726277539818162754903552528770187320034975632338690804493125590380138254129798697104668102358307742411065184042870439628784697578630340522936845762518608568438572878376616764281614988714430828131479999621474201425110365289811232053904060079105779885982992667779241700464384246230981799009599671557865054526966395364600048151803054652927493794906467596930009478369216628713695530114005295882437398452279942392428324561227518692214144554964632768360123376691781308938170140394741841363997887134254684595982890118774468701796034395746880920934533254398181877161851443358151616472088978907856471687943060112829913074067397187043040004675088613662826613094930193183826201205169726670243529366302964249829161869063767425895049268777610205239430951087731795146549265307322656876218556584784726096028908755785992724731367584095237511648152960269403630648734782467282515888196638228655248037552186012142134422243239866767793867157634690932545875643950446988858809869464246016155646199364411194144925299987552251594735466711887218589794616816817235456690933956640512931204249991370562966754692427342350573269149993062287313110292856091788240598637573217746749335321153036770345066149875755426441250555797015269544635666393171019924887262762156427401481861241518813106386283690716316630569411806295899815918464835280483833964653303075831094456048725811029074431931984107792047231837124604355565831119722620368416854555133601418187753504939253377055605202551353903395402966326406514564453498080909615993505545872071815456386751054721490834060519253583119270316833027925902581771142927143470277839687655961515082045026684718307195444821956148703584365082686086251561313453868160525202282706387039485634806622759740337692900345604397514038189006693492091857058821199819636262082773458346362446444307934208590047856774784540045281565276733266449573751447036039629266745923672814423969606361728700528528380439681927189129445658774032270874785367035903929036339082630136653611329885219368559564013780336869163609256586017225129719942898846238931565083244735251570700833468583059593956157014047989624420275489292886106292670005500172880066579824070005096916607668270969738108641489296495276994732455193846684623232137224621291540531819848775771311109786753722511517285176712126357606405169489535415061726291259570861070319563031366278430055292242871421978068784717512738813935705341200046709876073015862474983935527857951774317368130632398771117373809498812168435733252700348196791758514792566625990584062862123633214328043465753046453079506356081681563804458169671556514972677941152151001855888110528054387823496407557461849406110050612091865289584602937866751984638595280364633252814759743967203653549720051042931528078821334898359573469167892430641879278138242620792988717304189852705140499165787712624491260835384878166451882098938527367508687758657436073829619228755598748394791124870390913121703079135533850862302840235086961456822967444403319240819318456600948108308535554270694373860003637805473688934554930375863676721993898158724258435717692850605131527719787727036907983736187978095428600390538972321737251424143772416948029385528518767608760505192426433566853392977142944471991356277288521203687047750261272829210580173749839522913539924779645570608572614034127557561084156225717556985094566810397303317348951765521575145722165683009979512680085309475875803478250177847914637322914165476570856195597687065178917115288506111260752190222520617570445522399713848895582435299444603735350092522077296978019950657073389744814746181293695757197640054662009503741540205770270904639596082658467120323441718850965008641014423793522209111715659613296272633021522068503936203496943778854363471085257027816019540368739472181651023857774770855586007653483914988860296574156719074456950278132612850265463961114560249538931942177532187545424612811115130707285152768883967351685281881698584499703203159045560260159295428067762062061425770774503982964537218508333650621890999638903580284184050618622368518117572072521235887054308867661284089847084844991404735609385532611054681951074303463687924796497699178989877863773800556868260529469490392166485821195283997826130369051977650672643384704862661958088071556829038995951038810141526395522593183876519904232979019665277591878237542422104226817099038157367100653640034911138485484674140364483820169443726895560151687160637368842781759215521404245323041547268270833052215772730339309345099060355950580963773730222494728170534077416087356985328944375041343235307866614499321771124266384427423508046162664876008705013457913511914736140661559696186442147688672382347824812821650850484349797164576667190030414249207289380036446734802376291232272574718957024182912619287550996829407053143453014146620470968815725382108347228326314140489747948947596211065241805628899088589218734220982430630708180346335965915187398933208327502753078929498688830348227270657255300007660728913066575198724191509749141308796630419872203471449578237615037631396870196810966723273255716692199306714577163713437200494478630823974374576125629435778767797889059015673108210475887084287641030187329084600568316446074880376676632070383100277355686695794162306199811218029578685318726347639708088161277796947495070144193803446722913376753204802496555103477759542507250304016559157592585540873153595143021544231952855742585404702096754785580184241853916745939363860351176891263310894796892956735926879396586055513449105418587216552054935429554333774267251470887702429047036297013599078345055526397558310742067551874642061907815792550772303569040327781739675016638068721801005656885986779603714238538748839122879924982060456312799210311388804688825488816842275119457365311123587145044515814270742155933728296397623994759264620422999936043918218675833778215281893771206310114279988693670432457395591437511639733991960681765270644334773521347134746095929949091500099872480017342139114030015274085654674938518568420222708136811906700894191195072079429441760223382555659599153112413467945451516500333801709373656430348914388670263975813691150624718892637007462933130627993819822244805550937107177779349001382901112178158984945126819729864799246514847234789350835046176405856884424072094837029820026838236874467428479478182521473655448139260127804406672409111898831880629457519775637012808114029371669703115054757701832949340321643680126551269913955121223665116052403372524151957777623170422267852353365542710989839445952530267495943164264009414313968104096200700880387341732774512833230887304326449776293549561394556999376626309423774467722053269823252102389971978420521650725210313753303583318425955665297167240185691449912030381352167067456262547393376626802034915530224606289830838900320569609573365206829115584294828776961122389253274660536225847386675362041858313238025995192084538862523008427498045257095164029242915896070418883137189338491964665178868034828243429845100616622833772840303660581865357278103469908458631959252939872782462923521696321488150693665147209548738277968750438102541102651220293043907342041618400261574236280690891997847305112532124549734558181764814641646233656811872564817790226700108829028697167666182789934491782153265182204237228924137637592017495151939355101869143378150461007136727211365294481075390331387442427677413399105246927565174769561176665039481532100766502141246012709620764893187203505408085431794087734233125315336739926245012536886526119405122847391476845262942967539965023654802718319646242298400976524409977655380524532069893742122028253811694570556065213400136858608717039444725806281443672148158465382347572912264060578425644661895575076779428145242103307818085700095580196206672740335133254721825013782038937841768637073430217497977330443896734289134937057969205644243694566843662786673650564909942476800991225336101331642750770566070105492245303029394946863763525711402786268863666133049447952125109955920630985988144222345428069971890819695394373993833077759942261031103196895295361142050337912123766038391787255012758007090572934010250747924051357471542337177766813793072534512430345761574392231232231523831180795045656798542238812540473079907076750697013194085119584163592623566849094278113922065984335954014504272533600128880490102411188534946306590972026015236454279864454992764524924685701269864210005586164237611289342565763612795622828117272340201752999575404804712046458072609238125136490856046818249311013151203268187295321305861393895144561071749094526274187070971691995067499805322748969179765773271429150104530642275556763128391601705998941841456105106035159047344914924391066435484433190455025602350566619474315425251460333537976508001701738922500749798443034396263599987835913234797076708342574436169301556369694117951265748706549704910309094631577487895198928934194242813136651511916051383379181738783613598240100215996821286623114016096275228701584994176678573190847920408776562276418851257788343072606911265439153676413250876832518888424198012696941912463598378985159943575867898398051985603093251960326458716945223286009209160445756891297345100200906146012083120635657738392459509594759498124225303743908210390511608931122998529642029210784321978749366119938373862261292668674845223608235190377054157849336345486398865216143603995210972085853489521932106418594445191712007359157036736627537466759878783030891780354710262875441064240999323389521649082851782052672995814091488638317093725652887429778176211609823733990532433969050576721838697891959786886688947872856488169607568502213667888836164151047802587964035845073136485832835285838346069487233558012346382668786570087888612576654457015593420075441858671419917531608733858098461048868315097463282722177814421651560053904239582865876573644700400781167495361386769862449788537060745031830426345754093228021465329331705854963436458628327125228941135481714899787696848565281349012290259297204467982483008306326461738016456632153848203337074450020371981703541271903200715474982238874845391117712781054383990410959356172526299342387616614779748865894802348716619117521131442486527591964560331628308619262984901369280363391540154182996847086825816710322987964119158841704092653736796763754631734444692379999126056703330724979733416694272900592168490623981344920044265031849620519671082481790540845063116417196603950966034076078420076591036063120770219232160347229488703287959293821114231012887378286454814613770301062728462562162529977112307374994148895728469708978788439525006910917353027221995670981229569979882248691937619196120532612151917369533529847619216724907230123391457192448576298594763999797049286166534805458196791181187225436502102928460925789975950526356015217331011980690259512709568465417372829825779004797302131487555852728219592477882776004147232594178121957135339578331640372564517112105822722094590361600132331361595232711171018434885003682585712695477131997849690966812056596671929298891753794171464197479976069899161744581219792655094183426735157638665106367830687758485089053714052053298873269793568590535815172647306637888063451777932257060875127466322127633895647531341834096224105677253352766545199787438706876123855432855880064159646915515075745333133402517906280453824255084983151290586885419377136076111721376121433361569153437539105175747610501549098909684748730557045434984998619064967694233318731319355829361143132644601987532131496015090282991269916115985921908736429803216728295797292197191317336682483053475405446775293218931584398305244540308491494756574245745128236067828211158506374841349751073162040785626809237693961496866751295955610231238528376759754821186042013074580367275943207387651682086029061156573901424057028464893667739041578776982663957833184960417133667176113113312084912575650429122347566552845871869133242943404357364288799465030726612019325681192884660516737515275058600366863059410389223389614854081265471007320733827352876624590005689277619071280837844890603105889532645501694778684968740099267460263867777864254767659369491027895439957486040427641052109848979844505225709182355386158288271350571969418941973113284570372552012810182449761658960921409659019326600891550760759504146521334174138166589166697274789796338091130000627122167576749955030435657272396967242646100133345349652569828118422256492370670487840047661925256764359070781711767243673801037462000050164864433891708216814874563164045815999463860607793817934378170847263852977862236291429259685569424715032314492933498963736325255522261755115940258773915862111737548131247216444386248063332667282364741674929270045187842640699937650527852379363979712648708598321274965744500978036035966031532487214677918086555577485302870512661810908218979795702236141282589220556323430972936482495034407097667853347990894104366259812844038874600832704035247323879732735621980745853696252248762411078908440182929395041339700380365689729912107133058766164861188128960701222243418666375072256934346434247587792307555742835688934231844955279784799112582027284141753916467456950196392622165308321428876946425740855477067704327345831855753513233388040775857505857834720607221114734709060266246086275988748132791078760452585474947574025897408102966462036020927314159435447593568769990182861920969722908252284472256121510010723730258425710493747685650480983274578028750567469642186595979393526061349766166455179007697255994813824233278728972214769772788488411617630266815245261504566634482664733607525105009186243162889941732536017790347337235380024415270700718700612266860796079192888532694599119726017045094758320473566685827995180859741625789552169288020432541629733390240671704808430472144154536512096526620020071078071348945759991568652014066777991556231392028137408570543433980083722099654425955192788094552221816607614493175757720017252731911580364282020420632507307042543115886627376042352893181860552383159708012994014506824044280444818823880163908606088114406215489732347197812999507010060561215297361654970356518035348086691036065128763691067476403835266288498980144784059299866889586012546742417049532645422941703429000996731700586229496466610709446086454348348046818239949825105802559511204949848795929447236216144716677362142897407452398101383275026651056994566473984696203015357059778030065648836070931709911412372776072475290053455149561614624175958743760621855405575250763575097561536022923974518570489068498055128752386286342110207303493609866384261848448360503705646959000008588687844152146703889352120631950045722333579687572541142089736963086892833214222601791601037921305113902664774107380263179121507978900227571055931659417557128181737440954317604285524597228423543681372471575809023086730081383546903237122301012709435059368286057804367051689957591881475771051327825658744055428425626698821224298761721235466770938886624590047883716038712577079319106490506575923364077485537405135514405337421591994809904501868156161534924696415438544137772652879742462676996951749308653941230055774884355756329689741863759544407006772490169098171375330416708858291839373032581876257667736415876776494763143628041014633793796129486719784760021624487865539881661188376105002761012316416763204469937153301129819743331427318051114981795163798804313320926048530053090501776999837682595608157990010332532842175746234662110619943359586924878190465730964985347025621349828548459336658586779633349201881648794374550612882762894144109093855744115650097736020923719474283945396523062634713666613603464671738053312895866196007607278227656863210526017322246039009310567661408675961980568568633773024983306835903474830754326327597002472268613314995048956823890257288319849401643383593985086761336885726966923300404940884609146562100098632717728807617271728333846012987887440046278572090532761549589396080320660017042754059029049151424825616011160233566476535668760959140406771965864204786053135567034280572952464764891321694181577206960610740193708404442341935462104503112614831662154317692746742513358794757842498131309425657833095624125637418636708650215323830000915971577682899127867280496032119068467004940090810057657712348632481838342107907269569465325305203868880884546326414945678326529186108781003353304453352676737542197877304550383917547703393245176180704449266694383015801719458718956980469036026483510397902499910037573128406867134316130893767302483680399544028171524937941983502389892825512755060558293821872392978330453230625336883942534278833688102480985201900437501249258473400452289572923856956275850807943378515870912588920730872459527664476173698498559802387071154688488340640143475819211798315018964309680131188220164661150263161934297473730367242259950367383976835221979830842741593269301201267221068458753457585688537809805683256489161380186228246994569287749756348926949924385457834914722797912973647669571307484981526274852826441448885626909773415157576306832427710615093316444297018329251929354223006328925260366509281382349725297070991737169734260901513597123737717694748548958820771396553342786980982588103751104588282153101814912797422888419106651224699908956512600221090158084856403626052582797527365124149488397238435514978388320384632248773017607237686372776075596700546753199271180840059353925408205205739407752833680533762697681700245208305296423720674618033937907907697142189324943408481688504289180470446646000452035330741184535920392291894314829052246090299263659946893491785032237350041035263621889355331896807023073143506791828398739793853830378052738758990377526064549661422974423772617827779568368784939003611101748583096910635652427581851222121728977763517836224780470801017272867101565418651227772560814289078955168798773681635172062759261515436680066577691101518923192274071740067369500662705181428446478354458013703860742553199555164445843294146786799622708032803981653106438954336437730140611136381616738159295101945229052174769705665252566719512115169475646486010104015187244463973750125205486014194092401101910752120398016092682863502464653384023429949802160862161488802188726213230345039223197620666946049855504996364246469410391684421366894767014340739759333900926772319755699681546538591743757725579441042326191165686938282331972780274555149369781006791156603487858444631111666253204688654493048900337854453958081612886104256298718939808584866210014959517868977072842896355991767002511731815419930986519386105655054485354936590086934709000470865472043579486595591646691921800075845801856919383220513899391306215836461948492967436898084647964220353444716044599765855049199470611113560411368243294657777927939168571156911800673577179826747767680802944120700407844894612559822071057057013911597836464998281960619313756869253719032167614454663695448240379048604948971388856602265194740052513959799256863052202451392065842714086777384196134665152639514164355102299446926339366837078616625497913380642314055222447440057057498113431173149028046676638799415529776476800973528480339749482528817777879871074986871582590219420538028724376567272864769243683581076173579070186661960465896876981410045120075132953143474458054947914657611194920713253620354203694908863570353771670110101598653434036247356039945259313266483793153769632082472674459636048138669470950959370946800275686033045875576866092425331042776623414704861666282448152423881697774955842542829004163262179438355108278206820392253946873894460182451925890557920775120786669760350504701667462860482211610358618998698621018449082472558419661432805640733986242054286763558426436130823827511350353146780329179599302270748400588956744401953033822758229167615496787488751968932755295257545469301912521742637082489571721049128512669022661563631321253444680050782096061947814764072577569776048327616302203375311966509786221056042554897325632400003967882206214470372230292061194964083005253110315911896023723045744625454848744527179596125813596709935697549338003454139253155195499773612200702007553173515556648699645216943579583433306797009027793323446102070595141484518392435216185102319050624780348621656812524490534005263284927764299481982010824562967474607032006568636153859313412279591191674076046480335830844394524605456338535928963258329788137031730202727447367464172570973022297697560032251252924265063397475914655754540916434192545600552466302024480862468436601448357597797847295320860600976726143405328983968541015303497637127587629051932942163449394471849691667476025764294245950232659343410183995530791746591305070785391695465475185087470642612359921188630536152244024997303825562733546412658581121324993462654916522661235755833638164793211703322971775882079065519129989734941856785625345290354892030169738748764100703476257949805061412837943950329673761016380726583893737610858407304044216721012555816114046792787268688972368551331252928856574204440252357818808328086253886109869465599339530913048342148611585190188691290135566155587647754655362396869376010387883824384979689250551106990037899813372418436896165971089856565788466616286193107938326069347410558003067564921181164891909933068132550161829032665290804155109058843704817802304943210042359892994618105313464081820458507074773062477443265933355252656774042280792562243631102064098124076483733365807648242605294179869145462187396752066293503499224696232363308959685266874792591815255324665338149109594665901429868648657958885623115848615545962065247962632415779417182481638494878354961741457365025483881155007050145873542983398775171074129367276077005771474870298919903512755571267364405844492472219543342355680758092829478216373314290596125047196403458568916646968817954091749420806165273353252600565784021818550782554200285778112816144790600011881330844268674922803798305414513969399085034368111328238824241201429785180462597360637914119558432955462311032706121997469336755498738476713965775071293742422228017153674618240408999769257197806070062163150169372115519932287923922131491059585895196269131501668712345765211311203444038010222625174184061742783373249812384569256034286620558684118457611221516746485845314062300231700767608190021063271972930076314245643263186933944538854711325659050997345554419235751661957704224494337596913123302597858317134338553049138698302389834173590590439301365165028936005314257831919451720646941079633871475450891572189898518944963639709658468201221749217522132114658274040947894656837578648750711347968662878348686051255316188241204979255347859019799847261831205399610782956167399009279419297593867643942067971548605297375467136212691617856070558934117194842494967411817544374640280781850813237022135975670591870068447093125454631198542942144592274622956734279092325473221440136985385785742781812197537586272063776034708651347720909265349315008078293457388111015363886084415388428765570912827081971690477195625679665142437586943996002560054864277901866076084967237642720009928478178060434759427427743222603552304313797240415077798448729884275103146294005993441646002351258425010953007968446189918740536715756069729861405709755254240452605757141339269695054447314704444360107100285033957657269211611629417693999403465157442727548225910412433597020908026173485270880570777368243105117602617164789953463315866785987295766365416111098387232492182386441914205414324162384617765154162371845001007671885153383736311596054118514610471086321412206076233587503029385030459252593416132557816394857083805421134737552646964770369375336230333038824435368735227765241249645986000406557439156627767955252650264626435064629151781703497737085284631586787511945738135032320111528832986780370482860816411120767393954989741805004179246876291511212443971627513879218224857556408461786752756915676272904889294337363027513229479594139469685575220241099261276060762584145136062374850938708369478576506192548984135984402462223482986657026505779732894179797608803428588699203869743352184200338118813065301773588210355193695448328951475070932925210184781344755716939144485788294127504563455664154048882253127770590379470497394422476492025205517595008046503997538581602503323305369149370336390978005384445201350403834009741004633447148219230471858714822002427388640926858321576256575008004448719611849505148843672691734639927731487574020898893622047547927602806909172566892315801513626676867077292632351878379516713937847070440135810459014935382053243774281018950501185176673140458523965323145125920249670454977569023828920518082990144747734351974342603623422942244650357682301159113296823144255054579788400906643573343023239758122884153548046810267801439536066851602720253646714684423270366341462759184572994787259090280687496707731997283460697860081173742629888899645484147150651092812492086496362276345545059190226944176786250515199824931154281185296315309206204832562194178439086858306880755461992280255051603718900813353583029810167316059516998154730768315665817966793189405302157364225612749950328791236721592315600299667411480464034422183447318232569357892151087730443186696166588809457771522486668127944764742762288317999351936253393266232769770542044257685283248165991624270771230924651818065597645630673425074779928203690656602315526432845201149066757246292549614322217338599628445903642463160599517554948199452283099354399297254103672449811414439973937079242193357438220004340161592661542555509084052654649769883760907665914882431323274260653195119759426287221762510913546597339831468805359298268655501491219992632356561780202824529448617374185915460883504689444455137115808585713919657811965437979980025370442120028792702924565509413768593041568675322503052394535411397061853360958995057433850524923318833328871953792385734949746890462511076102047905889084225405076574556699601448664277629790054602742823861573195926740651281769976718628953547763459852945739748294901178224317793267067765325661157867717013931304701404623808977484562754632519379399626555321157297692192272484288543115333478455802432948613516647185501818217094060344106013596454677273503180819797311216075353237559392438581604833946995833138605149034187458290427056973138840976959185581151616409799429148095066497558613983950718068736385903432689745910645070070315352003352625945388882907429366027430604520561300380210700010199000464507121249914111793251496756329013111294476353874722461958432395358913066292157458497867667435845698316906165672707071554927483405102146416319971897110464770019894683392640426206554202673238967319483844850258891865244781174319076711437897158537278526676921941671395533340973914931166719428996757663560989900345045770705403955760110733184324355290977864658127685244566923360091383026835952438233943198448671865621483041166526241393207463690794042456622635844683136483737071718650404813943073824098472264664878267545088334320141586945140792088148782818175892092718573273922728694804409258851072897015394760150397590936923684212540834489110329915376587722024315529707325439177118575233529468666721980806921814419296801298915098674411922791910348267471863292510046510662738064189811442143214372002907976590349366757626105037270746858067980022016423153677810413610090955858829504293170220657520245653025208734557837779577524717695075015629745148427454496416380484733608243411643405506120828776891164458815353674021580009518418865702176996226156922082309511713927346824163608929489192178023422332517041388715430919767014856716744796149626513944538951041251272047801416128555779812224691997972841483352040825921200124336494029628078177942386006396029491847037833776606185424807638076110266237342904571292890354512898523289565551353752536760170023729291043594520553105309051115710479211259275139069397578469171064805993364289749661136430416999366484428668872779157093489954508961454856940674685089163029973018231371089504177670811310693396309315833214215835961397927215789240831197740847878478721314760532791895973905039532654492560806521514761051550583963525189006937339474947753951053470870970679023441061313578386775766075269661612652520110721605771899421045875927139994498299200673594835694528657232044227489638095909866670261707002781635842654480070644812249905363864857156610374930753998499356268353698697464817720780913855612321575794982271068926103811441276829965208158126969802601301409035212563969902888093051121182927099485542849744034038518155444182119505441320077070822790531330041044226114577950131872848173844312823087104676486085821060059124069680362356179543806485233697396372911096883639153231062513465137057922663763520844014874848511870356808813723947093600762247177615668408962971359163453949797224447611993062464082981016692571243117218490871985526380516951432733411704242842881856054146866520270228757064274427778076882992898832018383479808181427638453032894951378269390050960465633718932081750118895138307777194121561467324383296178649869746252056724552644115926931682474091070926925766654287578475820207447642747604361631362705575505463959851967796286931933830782323857944437267573630813223413784732533312990984255121850183265793167644141383808159371172917469673138037159830762072077548400617211237457683900732611194431070658368065831668991171830094115785977021567067105557415045762168646731620723182825275080474652030160060997075186997645476315281198972068825400245184114481571462517208084520257817328795252956433199076132394956282987540046118502141229571262032636155502322796705132473789302798308963255898020062816700976986833910639700009677617454366970016918566863715368726919609637645035632609021519975676438991478051098740715070456300870321647339916057037748143794642235796004497613154842280100094799595023695107750660719745461225957410704884007252497727283589765660489763858420299052200740669835344457725969484476171852082751251929227326371828875311552061613325656518823152265926591283988241359408583595446697086866105097754570709453750069638794491319595675862752261491651432764737582099619504197038202321475840128512132835105815800398071947013271383404136071257716995379949533248970563002817713667413959951231381511468359322452532679678270590341516907745631966566250987308359035589461600363109414577304445115438777143288231273738038590160556329279647710145022340183482430103824064900173072027814563504908057349029363750535591615505720993348315339329179722851762552779525608075287930721124964016680913210333883350565223454410755586750506813821187420003535681392174846009172911459813428495808504859238084394802812688891273066115734745148382771048066529819293994121549829548046336402310209990463914454272507924842734790450668744489850350551622461461913211328037015535623356156514667706740101252642496899039267559316493222015423914559802841916224322308925082547858905942443456143691467863439097067839697497416292084066716631260518983589835666421815454903849604927619812347845698980468704443378442228569985589327781298878897031468663829682878297183454719455083214660521228073760222090501424352875011611497618187670645167227121029845211971351515223643133841901268207666147893483900023839749616274305052032527899854387745021742754905567750092660599833620460647220248839365747074219603836011359349408954976751121161729213519483380788028415751727775494040697788964643284792317338411263420008639357132273451960299957198018565682015329464626361311332842963435289539131298319864375161683170131146712528310405405689932915651178650492463863871035675781433414826663662010074525702054859846934022886838574151192944893270002302414946328438368279391697809697039739592930485349706293153142378572694686661399897116624811437226229171667851361013596328614240859078014483267201287182955680997949236399962691677992877699685619380213128036676033910134437635704280798364063860984489221332931166666803823842150261430226470764753463380549185097238587063608926948364770655135817846136822792953027337977167589857691432915667717365293215461570731364743970719516353459850166562962531888280786134643855365838613618617660499620997981347123750165181299463045982363919960388768990799607111484410460585892527202903809136380644117459073601121220135753632943067773140604266602171502920848329194151912703689827885572970874874953179493146967550519207011561362557557323345127549015192266604324094482045533629330698766802806111425608272886723133779597186339389976122005638297061920307598864620518803704610387399825779948528220492270471626790028837203463713255359564521612261590150398230061566961278920444144724473220422347369302079867103458259581296429119681923538490755132124291355264926876465368797020823998862590316159177461613872494739801142177330179383748500712959832235192513206922590312382236678225889162986157785069129051082018569914481764953674176882446092822643434776409228692032727812437821921933163646714167018704396336486424742498499409337917048753616281715094962122533111167169067243423896752635693294372557664567267144558635026625767513170600280895508001333438611352480822036917628389125853853196096975165346349380952295520067009602779950417403412028645537689387646956220978351482239630922517609537696841309182190020591835757570308875879420909329483626041083358834154239985420405562671467801571814112826899038845703273777966905950758977250957971078778952838588245482046334033646483719837328030043259119943119191831953160815637136749913701042471402069127290954365578270492139607226940092482199851729520751215928452724173556094430281930079067372343154443553407599082347636433192930658615532187359542551564385026439516398307486481438783318528392998685721280834334217762735361338671249667935079056510487516896918141357290348966295248285891414152136519826853971107634494665692334938694547107730159150443195233519765479956847361184247631810624233991630585349835112337911001007367637095685570525691174202187283293693976462625448389048873647479079069046910497119958823764751999213693223016726706794683785710439443602952632459266389695884714537562784941885967843120319174244979358468606853983579939373587800504165310468932148394679334405627637186235871728474408198904618269386643085288971500123316343237386763160047772974648758517528806672753751759634989304020788838255342878237097088742191738053958213646305553309492044225491065393210486759724892381945784599301981798407487089673528492977431264362812119848718427569105438444868928232465385887314539311640102211553821778196233333832504718181150505986794785720966608882417513783971221818545897915494056876151824361325043618248602800768303096823486545373389531345606551865151092676256446668432132636872506063057040982626598398986883846779920885414282745793863792461820654115941975607985698275317563744244611450519567220600572846532337710211433430028858360299017874248451999244501535634586752362782183384536190806518803751250253287111152068367064431394629208660599693461366025486816305437868572391583018204666662002065455564481950746526899919830551460035993010196129576297612627170267543699730844069695530783680161806278040630448417145008062028295762023798455641118825130799656233701396036557408056757895387855864198316103778087836010112606308316589684476650706982224573295315554949962512657324560044857179878513107939447654225693347738167968344434213746704134053121788711414862106496759777500071070593281565369207644918243905862189657262313344119309965349862366395798244758799406984098926493903017878620864024663106518364140885914434809419466902128237128357542729429652796599278532990071673497252922689833488253028807605224117667774315395750196206834070696704580739876017473056221524272349383691793935177306217146978924846900310068397473006866859116982286232061514288959724423908345077513965256378509715614166720184378120093092788255683037632133123697569586414801135116818911086517738697444410958373613678000924472471049982434326479964401022739731718020305214220560971329198492595750415464159368978562142668503330154067529710050098243060935647979206219370939585008122259429496003822326481600434310578961312401091860904555950327047978425382990928642790815435191180657538265074765920196274276195374464234859139864847687957954417638161897392903169760570278395648660609902190614011133857750977911892389359521355506602965449793892149569211396623064658636941472028242813107981195538812874254904503599096911633860604066875531524727715310708182360281981236284234590709002452312109395273052327773318045101755422950072191921243790453944754305845735398918183005999316227480206293767595371644728303017563885239013843355901593599162205886099044936858094866188098913355292602917705428498084504352832798902308774560877048887812815115695520886263947304344186812950281068802614873159897304171642752492225972573694222043516378544765537959374772393062583882129545499807540453823660262804552973117673739371477916208147649629183410005509279973195800977153346264343182430214061237131102831879608953600566120516205272327696461641315541895986542951141795512052059828435422590125684918681391144582892596358618220846405616846547105626684429672241401611616770581722981400570568863256151986427855362202713944980763290243339647121440716016995087952309511144498152747012837968216914189498948443149561553075392006716186481455126552493078886689751643920873544395523428496352615907798078974704984950187816470137029676965513522912342223820972936410100465197561123807487978110645596988337131748322562945385419080613766958631302674757122459679934739776247896319852019162263261076439828990025240801342403469326499610132723637097259300152176097020084448529822858490055471455511841818690598459967284420022644732137805483198325071786795702380431876690306234377523234839952388403922089224543881166198141126531093720677592394576993553088030470602183112357616520843533296402732032455575104980962719585000618777543198746246239038582463806818331919858679119677920617048858090116790317116020534390120341492955260423402019175976045512714414286978738116932958218078387424429571475796420895992177872266062611093785086677888927093188921992498156431852192224509411853278118404737900667550848280600368669517470520561690902169545298687297091234788449659822789273817231888226174904833701626114841188220314719086395618040120924470403512944881114970941671418686838056820225864190715711699717115746770896123364835384811323322440348608112820811437276506919305324275793601943831801223936422253781070905191977183947244984972141745842671462934483496548322529042277298930926966156878391119126541453595243098384916190117661033976928344623072309332403441351406253146139452028319567590764917810305587231563416252902188815110843663914357412280902103534795038333525161321844296987992731808935228165967437414762769987806436959732783626859382855671094654867479542160942128157399995424599661663187387931367266532773335683034002351519641246946083636788085635244047256854460096813515042558455408884706449013144401455011548523619805421291557036922901933952150801868472342286917195878649416554610904000521689494255094875993206337312926078577488231590825887614575550028036622747675604753088183996908498909969700118379384338562069034742737434763212078311071880906562666602075661186135831074324095814633134200807464907152857828833305903455372146037651876156327050230949117459186206243031570208156102889120196655927782823399062390863254753687575942711179054151867166012755862252455393941782975911612381753241237235491306125313125811907587628314948743592721154018462114419961880484127217247690366904925271839488160547152670517532699382496092199794974059709793327392716603210829567901867525588366613916933197171773573215744551365872819053070011724896788116837623415053442800180318631416485458647536542384039045832598539593801327803845184480559487718058384079044750545481488627888662340892348735435193303094190424695657898126697671133376721482932089868417220267576021993918099898088764692671040186915430993907038746124431865673581124866861567017891121651164251445537746486133553726562659860464031880166716172457259399902076792574135680578928467375768069928194270529331025125741599026110939624378961207129789647725340882767154000133447093982625587823033879017710077356988664426337048706911849726428469526732861457298096381124660182413544569746397935950488089023013378326064093419130621078967411568668631134849279720616825175450444151439930010822104544327340723423878014430929389712630089310221222490075496445334738515727868831515007572109575709319412715500127514345104240288097093316463212490018919457830518977429305810171375986568880103099509814278185433556330359329088655274989367357510275472674567808228955191980407769111095503044880132932062206715967764883115828943841131314992379240374704492921097641923129834508501338072052305210077171515649684348901029442057476440947169941082452336231907293944762869760113038824230905404267357774356783417727744879460124436367208399535570291644803831996536866582282749050141201262666007539184937763984007532365649524857243108411831692370488013386724500119202910431704946335153817612483135362097067775752358634943349152979974218492139225940650367987164337724730197113869376424916478931304305750466567443202606000151979252176528776333094555625466014513915507711852107198630929571470657014847688765721285209921844066170302309778735470322276843499091234783439182616949839536152682166392042748563958896369863485614096876025982433216104498861768125082264343397358363074774992168559750286103323414133238904311971238519536907584394952123402762269906234475023710497445204497965329860344023104957148213265733885506913955302484452617494089482470844344602711250356691574280512010910002498997735997628641778066174057205054932993936624582965027227917558577448590469814276978993768200446021863185546258491411234403499325343366089706449924850794647571079792042877342787731009436893214998345706221633600096124572161907553963250483856839414546826687393883782635264665517818734376921271297190273327758191083529843616951593930637105445875859950100174904502351202526411190166414178705658172763284918385207879988851323917207235166218921585386183464406801149439307341194987476885636891136543702829686000128953400704335641162737224717422975073169318361175795386311083374650727900938839920323941060260820818601643436981772027719507350988903201605962030736331427725792705803110707946886194133873504958239150686297569168125271789299300168879167331060064002476494933286745274277068913515896636234506081326469655222492314440344054445247286399436636898086992173844423078959488645338808945779017713616239071280933979798665074003400422551709184403715596870426360939935745580296398800603779297661808215187605907978285622737700034417815334133006835351930744744183467068811753127481291303334745978873636939840172916356609641136139251328270736865255321758393475643812290417466346834078225585783047893995494341025100717916515285791755815082776462086593207144345307642836408270275676803622095664275757891811866498648238906929127687297243714917269075261052340294722459626323997853579877607116328154237215717745426677036981717078699271846430125872265133932938992461049845951785693416988302084219756865678395003148032302136630101330081476903729215686069509105356505106846667080220847305541917128145758749657076489027463727003392578887451732040924778693609108698419989727597917003376033001591795498297953448826260938876785366382114288061732069584726408474683749976034562248829382198048008111296606810403541398142338601796279682668283610827282652432706762743176880799530510828518726260921352930869052766549433176288780984016687067320184661154995457276884945226209992689304707025561754745222968313693939726244897307298845039841913783632807478109871003455847222020757985290316124602066483624331593385564192431759940505198957192287225387026791719052098772189383058526999193020422421823385433889691830418320772113230703990361363200709263756628866463811997651650379137473935799423775383193060514007433584295775869995166355957202258763853667331832653377403010556725682417597318773603163767386047901595490259120036075759658479399931713655243539004605101080201516139724904964772071091830371312745095667792821443206566888509091099181697242125647648718332350203266732467001695133086659484323150234113424204070297585860429815177586312636526878633407386983017164288068444797320837587581107590271386957654547820443408509903495297831790662519161686417245893063469641614419885421412509784929794723399249366547481010584781393566096724441993700658705624983632793447113240168112221131378812585632745759171650440434383398749676624953319534932996356882889653350827074055417215327667431083305192574723580216935866888985025011637615656407105284509053217739617830497500970486740369261558856244163165211342199266012360079264149022299298285272582670103246045157950377929103546784541532324121299517808635307006693722917084802789383677182542228477853524292892548941178597581631395431504622995057069937558028113721707755167021499290815138327137518408022888182406586539341978631034380407068333689654089769011861646413326607553464253587848367486854691236916440817647305087272612898092635827144639804647597298806688363119738551550829177388568354711943139832822204093489297387718742382328344642487715375202020955903892731508983604363728157022415977609059610746704994027186572381092103903962912736830428982654395846255057430273018663937256566322545473853766257959065288974657753087470988237925864674916563720022071051351472076874562263329195158514978816812931847296190371133801804923857624770011747563793561721107955486730486752935175963695514717924797955359531920986555377165117910969970278316026001537506683647573562211453050807484226206248284843427444961030269395183149632782992691321634802919944376949240902481727597789422674760915086772441604840419160858743785468335887878023646283389004946710227331296735723537327084325334342377320295592010096894871922090447689964857753190947577509175030187941352056178219674769624417074048606076565177350129358802056109803401010284635431023939208016807358217124573289452577455577907622618103810646654470214215776936727601180868900217375963189872814733887842044469161144966432966796988417000952097216708179204431064373251878718728818783103891982065579273430211516406764589793109073169794574491058824309644701312400831052652149943645379966359538856590307567763173243564915833569681576681114036476236977981687252032303823750956196636067646716622360858446497352528396532329029345948312072578843616473001422366779771654858713803581939245112267807362446380702317898178173082709511129135088327252557035058409466504693754524452673179297575765775687293097321231697910241004371596604596373658333778550910039189954551686065588267182459479692934701334396362678666808858862750153447244839188165769697271662715004470748796833083122178837990354650668481999230664219251129680028002874870722543205852957369834820352875142596626642388475454210747678516401625704143597653537725733595816083301862924031767995659011787878856815326402578494337568209444313722504343556869932837795348594911568663512420747235096293868483094127632564260492756777596914845743103014063789920962807814714162010997547491668579397935043602317464241210997742707945711092967816052788487601699026812092377823067075884723378394216721404085198691755138905809749862093517408709661223970586496407249434052568491899246501784357806754357206830447046256666266773300997207802003044742129099216264807202222695408234406006754283875814429291058297468165268616429801273859247979793323776750252410918784952255863724549196212606468526703320085972896466720396688753663032150232512900544794501169038795342996982729961916945786489809145196822781986095029419424916449041702775742312500923363971267770519234100158647756639132599685924303067967051311087238392885119927958305104010890006674849337783504507700213108902764598366945797403945544309021335084459030881149850571525728594793388029185676293785797587465092851700643472501939201521921223860636375283852247924982813777086434126640065269465253857956892397480935232744836293251222901918587398219972126354270206063591997217074634984390137636043254283950274146362311541144842725156337963878520512794733113954343059512573045776216170713841224510077969654198481712188110087932946970421998863192044176791955356908453767318828933971161010909560076922127662056120146783477191190281504030280291455091025708597074107732068538920098475293739746153942394648716013638146388489547132061908025829691038442081012785022327387825274073648721557761609940421299106328423255411303579936145176671074419440692976988621389199085378895521568295985174808218154994684678393705666035212834908497724143179675679178288877385425414976681946667596524929796249764405525942898641358396220470290733968385001987576161206348156037098718280994871430164829128375545070563662030961577743046764653041286904062868776897680430255874183020506821134542842957130011993164693759053253122126933695197408407093759193258424404312458534980746854174670169306927022119161656087214821722519196127142722831260301875844750573783873911878292444727410454051555766921355311693668084232810151199494628246726770008817319436190265253618919403090190902848957668358230108153026510992026060258324477896329878110402665087886088245932418945613835917213491480250156974421349549304909469892781106227686189580637374777711711752509671806508182571749894594173011808281291524520166193080726730983484973069178360957268155874935832466247045739539969316110604812282336422104905233508158508478490535281734183219896167087385415397928466102910535297701400665929430951272631912021289855865254603683713699070523405612014126257818791239527882224149198148434729272802505615807041978964789711240874174813532438932171043634396835520628539956572421266221578104976858937880933531671969224886427833147728173373479035808750756096990431346862623659630454731617189018072739883039754159610486895777687935632002104733514010147758521268513853175230643898079990312816726024659903214002823396348677708416565034569554984464339859697681901984389390099051848521775738330964154457756028033973305981218763317484611380446424819090486878266750690749914038291551307694357925729588467014169888082910651997587430434858008114867657317764232426333524430522450186929005353756432994700610327600912882740183079615166283295594278198431785564112688373208860436960888532815284737419186320569750215770409049296624080232043120648733352194582562121958362965755403217517292204895197004707590335117428259210637200640141679519915974932085856962870536541888036939461933760643043368410340700158116885485856423971420456008739522333297498356029242876029516781964578117685716343069172782802064396964155364582228417408856881316684354689552045568544209092625913265050262487587973592465804648655394485162500675776766604308440442564102311826754295441173626489065079996912631817640730076905756229413382273595337604084010778698142029612592522222263751134719488740517423361939106302463587435473650862126625438546996290693980077548382542484316913839354666340669183454417880130199199665913618928001810687323716615066277937396875648231226520623659600893081016817652986401756075400382414718044859203483673014052231790111387794719923394087196542125919676482460259437246739206968815602595521512942961720878778598813963060591228398573770155984000462647049715363917181375474794474909162087707668832160904758184715366528275244021946216757141482869187331284325029665434372751277791069222185801044662758287201083439193201791069413145409936067733698635894354828277883722127650472132274456124471370254301157273158225920715783790314610991781174118547967839173257138936722968460347341427187076664303140435327790596890057115285109935771740872002949996280496255707947458314043100212393219655408825970979462354464209877246024145851409456020032759951594958027807765366481433742104156450013537032070521071011896857383445684114717915811958962686774963339859008396828006632021192344940223458588741971138080696443058052145307552118032736647921382406460063717285248899091778924411696644234059735828382930915520295572200713120747952823297682010487629028703029556530273588846530938374388409254433016357225557652283559034238245261117182781674646730406117029928278837029164454308938143759384215525148505580050919603787958075455872084074949226683633357449267514486421762456281559651277584173197256642459293200661169277105359079499143555449556641818819571304714727269136819294174553163232765626709642661107190357660417308858537443849885802394144896776038792270569108428682651650702088633981379563017784684244011905428488464524937116245632740028552420888946874082074609017611210407175219194325447307229519969913884200629356647312685665853686523651601923278596328463930077535440542367083384114418972604653077648511608462974272653895282095654009453300480867282911287700975590762061278477092234362229002487849420062502945990529030723838851288672716265198938928590455334779843287698974248800394838374664332547564783832320630965096859899701866615252082059842741218287900256601699470442492975536796117111984767117615906549261413209985972915867565127926840088714341463040825785919706902405070198044207849597985937532208004583323011273150469442446037753386883764399861194979304883804249642586515732577489984846223336134980417632277863310937597435919615827726386387694949509105176131817810939179411822343109378685064920575417632242021499822162086281892993600708952875120739210309280355038680046563365792492579501645513147828172978592214531090844274481214520937453882160136039724215824034479326135204927892444545997143794567004163293177312354626226351292723290277712593518067334707939560580882427176285488709364310197467060996062656220751006576315352536055463625447295073358858289126266925048870217738139911879024465815238601480145543251514216761952835622489315357845177409631258187148725218256771601509982033319234748794255301565144479103133828188534742339443382991853725447751441899002506902684498917956816151835800825513370458545149957402714462079762345496469500035445916855974185011270039995029771951267757487905208434621013267363325424930304870726924630310537634026956985537912499361233410786644469273255889026990064089668783889766984764375047799298448610867631582587324558675457860864213302127275430406544022984542166132987890771025770494085023779303589411599178310756903828965136863304255567926206433836396669487890821051226513912597157432633540420473263619770343356675608182946294099294806709082945482316087477609816698105995462822233775121398051744945341141659804645336572915243420909980010787844591576841422578455931884527307250366297013285676135118901634064263153998157940682364741820331739813106933400071619943723571431593777013008060721673241661769649463166736495328475868353536876308629345566550371562800437990026915396141086291002082194822765949169916687618234610046240786868664204608012593501985879854046691314861251497597569270205657658449235545156553947158741139303994798694911402147693073469069768147583792496123553523917026750614334287772309445553754047316271160564848970549754434587993954166559379395700098357628893259945955459038266631752839475063787225276878717509092503203289903914641603386023957850644056245985493838821123234834676093659557758491922236863185027237607225305918504578670607916853749103263712889999326037635248277213141326909479471047357885490088486619137140444094443835335329627430957040701014889853653691428605740856647812685438201123571503582905034276166480218344399629035603935049836649445669539924596959965947074134339421484995123148993799085581570571485859615857090550952802943639363721933025218251690466200265609822373462024704962263426434058525217184974079356777592881126644062837735094596246272298747843050629554298992068053965044754828144419198170304203540093658260363827861641216392556766897854838882074161362190372422781055663789896201536959137438426292793816194428633998415718369640836259940128822222666764783528122878992932009600456353596341775180917165653622299235963552086604789293699853579097578534521119296559468773328534240099663666692750333487148355509467520931997953562972740186434865751210811564869926421449218530372386499208896850412645821366734037710689389267035749982186090152993987387398348005410551101068624342629219558800217644858693020233970540257007563733392657025064920170146796587084542489677749176571906763426305178216785581567256831597766662034950350026996554292123522011970747044107889288632252304082245610464033660879987821319438944176145719196830930426213959118238928399968607307230773848962452033135859233072940251965078450444737111966322772518157644626135429152003959534971289538524706803129285913530271324116098829921305228977486227526651507449441052240899263219525449331287401021374353621674680898662488078032204249967203812515083215669598441058937534665362180200128905556565382464828454632107634859788190980048313407766824735116243929112608945136496287340538923505941200398671362200184065144246353073325845656219898329688812689976841406001239696070879844539921698549073351215541827990813572975165122174116178917787354404099874843740869177664034799072253665094906940739120446036014593575750725610378126838827381282777203121334360414129975435166600846665308598766724394618213406347115750935359301473513542413901727966649967124263140537833031679551673865482195284340355465664514923426785973902051770841930979396538040364052058009759570537008884206771855481402747480435223918440196713764175254048328199070394638906202248197279040367452690976253486172566867399808441972548267949306309442351023174456874582457790712369907915622275183891317034867980715555330246735870313836843844954509111191397880891476345630922202119169326056430954819296714233933404556546005353410878637366942557808914050642111423991282173600722930305248405067640544155070267401655151503217572616547956584762412234740327313788265065984453893169802664838415587312401659825315821621858908814989933437785649777709408379299826072543630717973129210856541190817305103192120940955192075066943511251573053858280730532508221887473273269962037538629411409271952605875928914703402416872066074951934746620433624312823445653672201654200359428453968274897403048451349891271966119223602811037790449668486240020914070863961656450398954385629772951351896553061876598879749378003150497678560617616339457441356033684911036502755726280271797699529786924886972449172165022611632049699614044447932073611889473933069317783481844115401211084344908652094181442412834636849471540109537440009635527622862898573300088475987937334421647321998834628971969910494708783134805244761163034106630899609119652213497483804754575025757910828441627614200383735292951898830981560081536647412331961035382124172926161128464756466016064084677770468073011476582104692960490374313853823925644555323538494305452860184854898756254251973770124361372053389099117677043613431018416096440709028307968987759207651444507524420263744309223305131416673799352599768468981947387266230993229040750488712180482409532819881454074436609314615907905295688141802732194884091033955011148094716642442373559406411956656298431275668228580841438802404392860981702034323511620968115984315282626487462762414858769121503396980159967652053490618498652556857403278633152042037349508248637877507277603809660244041400571053082533741100218927968076304222294001673383013286794113494946539172054707656346616165312059305657209912062911141595808242752587936307547895501073427606366727970985819013161841209950981059591332797305209785267530784250593828141831027707864860184271336042587257384738886954010096126722027529434732060833961573280437715770870690242068707766561793100831644467722057124815450767615991290531179778873125689042436344566525617695427557159300832465191137052782243609059380122667033899054492494439669737716654008244093464446412499190391077127935467560580412176065737101266631394322087535692904557538262602120136442288063998875118486427202821195761649828396352024813618749930826036184590549276826104966790988743937500797751087398750296033100036132466689656880692038269599780796068935993458606904246743575001102010123495037002654730881784126608720521717114109945740921733905517160585102927609142414341204607493237797403856382321919186328916611807009142198977050561859790963792814644294007835122071587618907547062372751657182623195871069029089374937103092718671918400382583641064250610902175619423822718012818313793553657673947236589427872376057927645767416914699242057757235172123327120157648270504659291348675992089723816657791007339106541108418886206438837710694883131255385978888343508746026326930873615087623093490510728478453815042718203700368964373764648497676055103549476969514064608257782026989024403199886489040471508261799482278240026104132349071396949103800748918627222931811344534061001730355126072354996563876561499923168287064297094176870437648573898160129387854653417401848557866392243760633946278672593023993212303539864812099287360959065778839929962773779175824644699447034800974026833786920364202718915770872376366671164652303012351039129229349210391719769014654528027096932402548153087169581243738864225032523276921195172961459711660648962280525269422442819401133943189025273514370237447356823242333981487597240326010025497461913594157792351608349536535270263365426642565083749701500975043012746737133780125442343960640342745199058920862663587669942726754349749783751370732513684300579400659900417757253293133321369050544656252330057275908218533787919922364842822991431438130272736846424256755319383850184137744700407173531822513226745699262254467008124283990373096973153550249861617346434341043225429869734542639356267089530379807765384597925883803206352107342497681680839330189655567391821594120520119451249524112397293795694086229117216927466348855328110119867197207975401370180757037458082970519477806644606229674082880761667406130750736754657040621043105335354923204632981439310747007998201609608702452901619683567072419782626900997731697454361349423329226023466961191416596341057542523369987059695840132192619596402283867170534383642786539038716261453144198632788730297176178594660419897818828805494860934963223334131539828597623126283326944823650886786203124778462482557589024824658627087071252315212750940550899094713499246673700730214350755934221294297320594879852462015479055618935556268795268216318425446373835242950500538626126700008977236876245850549881160707943888709950457014634748948189660024021350355685925117076140756185862862981563982550985436066254362770969882858797317681715522203178108870876243052790962686232164289584521684913375728845493614494321188989224895023284827398648227283022631932894207056512460381111214213781775642329881322083496632839133466940075573898611440212340070555272176586761779239549082840222517350418190762430846288191703809196365904004585489313846197934076854357355044739223267426392240722733836239246100812912783880720870485235033829071073920086963372660326898573697363657917937479675306134401099772881643568007095872936696384589478921600840592516540723849258335905828875404753675970274996031598343257275825066584047206810323666450795360765361935870043516844054322765340625302419548499134098095014223900726237037770498350123109504112907341016311706781628902031313273834193746789809804382719168218737592863313606657159273871738339674238937159042627634621509267715933776244238509816126780311023345303389061624169763628621640620819925969377472974421513467834586426581097848963973524603889751707326773101775508004279099453536154808539353027004502942767414856232474133667756092390326641594283906655986105311663146240822707168756284728278773847102591893991997836995896746402256150350428167228189651519386338295013491226109421591647904174269478451949413487223903571439735485533917899955785455158583240637563063666884036332342353886640227220439818236566653161368772199159517690943540189699841322679014602508872538724457584201023952560396276397534415823591521237331146026871160260413936950479253091900577621079292582536995481923062021082722829678772460500423986509320026173813729948486769800449871818542698463041907307246051460905242776369868921409454155182207160328122377555062016272068273133368053160276997886375193644336382432146157379585948572035213924460597985788629512691489617145030064899626462883363164455923609063761977693871806884781631235312391451618856949980069434130784712125468664743756750242828934987485004343333703410595300587577008945623910286012582716151315185239320781603400220045877334841630134040512588126247275121166902876489159380068992099166822556755803628392730217788075095798161865825289432197530754639358477581417640411789619700168050054155233399051677085734813529205579060395948105063350499420015817124707337174374840989016310390532777143449473152028027039100050578774500698893826103009338935311221076289142753443750027088854025751112780218773814720280410278944653964788629058049686217879294046902795746482698002870778301347603105090364561142615750297757932663201465326500817838123050517976349425532216379735655353265218241487894230135221062508076470082607427703691502805052505753528226223459373020778233288253897960258621421267710645000722066367295928956798762552482506044671752341311198666375179801094466122641834018776523786308368842530548552856210123591881526768821680715784695990301466592012376214927774721303738418489847239269193568196283131412080639112290612094702503339966040500659940482512996723970851634217673164065024662203139287422169038013837961867356549074359312991053127343821781154135101714150536690721764159665210204174703013771516165795975536768634114181586606887741361963823337911866065339286446800460156943449817772374942515827102970821624600674122205650714836480636695496727007101873320423232776615679135307152847905228294233600421045083499427397202091008140109604606009354448125286762171503998052008211634910849059398108608179107619221450968943819286050895720810747251257494959311202117974569092971897099399487130092314761339587556353300060831967583492855850929702699715374643134100675039788253682269864569294664901044453328527774109699761475454520974758930589621567348050781036813012728293781724779872799812660967156613995165388007407992032249502835391970002908822862508322670468134522644038611239102676634794916436879250103594193953726284271827679208939086250748036657285664405288223860520289717190331917305301315817579716332847536717197965472381835733891591480484727257859194503757457128941217235666352517218044088048659108738983784802385659685675080095293642911439594089818019541404765320069298125006239625365402651986718380010426441409728769317880769114942945391228556788330855515618981486430168952130670560850039201429307035815487488550610355539860240957857274505744295255521434035653955680141500273492884594727872295837059105791441866427630168763120896617877904533021439073059691817036716286438196950031301923053453599805748171052315543686686988309042930355836850168293398057884019790068995509348760518993464606715365528866569885321001027554888182054658726670222639184675962825277221199631241183445460384104739681353926455602389507523684422088319463035891797396785093529521744604767967545476937962928416346575544959385848700394350902503730973348199059474719341780452100945033482166736848708954454952743905789675151339828633319313854251981044445500114681884684450357749976358172969998754209772598171486596132978662850949696390050955271032911328515588820561335277886594841628695699216654307144951548680040208423544331303750782240898203236129467936886302736473531797714605761077261781764328247960493711848738046503792352065422072907331826188212081201490597523069763938919846580328737216154665426155522329686767732228914909770420063354184348973821932483175506616802888950388782833233807257282155011776046215185164500096956158740908503178275540204640678454181271220100259358217057343378606825483001452836497143934854947662353117028223459287148629942116868394016342749357759296822699033057487927674672363002035047378102934279560016171166132569636190623855692850850887489828930276370895538626724524476745433531605091613992650767437961640543956828512075872627233392334134619723014149902336871011438613763810639442226661309486817792148954924259889052263353098604415538143039660181631513249985380657313607447862564904929568472823936378646797381646219007990272976577234292007280036885794658821605258100988666725255946626890578924200976674787574481972310367598127845839294626336521754003538010068804248721037603851770458058550782322298972698800992882615159627459300086232352337386991690361974321229081631873511717884845513755491393831738253066567120672888519201256265853114494170409594593649185236375557754030632249967755440711770866259465294287191095299024038353865727883817712921353334766702083483246635597641130677799162027251675385810462030203319855841373918476794678684750538733774254898062896348317672518627938072904471817225765528118984240852031278676617027232745506815871981171283295493112359248817942130733372850176166409736474787975976537686487282938470616415062480405525470589693144264387478424383467165822166309250920867217764266885289294778377986543487795349070771153818640149004808532931183281277797047204118874532591924102540563895173184525274844735779716370093584528128573547693342432554649225729021600886788066698683659195980817515356474784930769799121423467890143053398379400550820157321044977948714396308794614308116403828434158292341114717106197820647977870300590075824728945276103462855525168204948084229376266407029316221352291503210412502118540406068722714060160736975314308255557265988957950432190038783693139929047289735364131726981265401548627121057122918876050275686808664515451973689150531406449591034075860254332440794562530080536690483658297706338171255241839320361325874661973349162416520097877960035899343544147967780200937273092181816242608988765605100933675150375381349462984235089402504851512366349836536775258669809577734558789016698223476979615297203886500603729542957584050299973156999289983075897258890168193733491555921228151463408310031875778817589490949467827272447751055995858187432350923986234829688490401065165611798409959387890031962606233270453817416847277831049347129074219252467908160967721545881155340572540469108274489582843223136182679515835989461959731044750061789321795706550918608265204525487890248756738482457199931123718952839311710483114795014223040026176154919280979242415333003175210647875835573488626589975313087319460063237378093140839239873836540895568636568891626169732477855548937675988077801268189827149470460179249165481171446501460493841939628775049191577382754865888637593996865599468039087076970495877163087575383107743661336270420222739829861084218168283777682253121677293546429060272117410149869273002181142394068821838003337142650630137942149818945887121038639242497850634123781714884941389114723852970925223862375403155812163839128013960805678822344573642151215949169452570236801797120234940531630978293342506685305331704150347215382767209952978786613524357595023673344897180943434964944023833345747252197331533786346532301814450656100411408375748099489227547802196425648776927619917071814415410254753860728641242789908056842018959252522050267160724220213396469209643391107109342167788092974111931153985201115938636537441010363446281547846847744982958034328179793326532839704261590716914052810073920117681410989693005267764136409289261903713399872132427989819285034197534540576868615981458599240234296937551697609807602908209440497353753036835744827832339290474852667633341010198404504834807689282462055816985755602985601630503830728969268217156432789738722123119463365003030657531063497384614342361985659105451566317534353436457650315924240657128421732078475100551965478458376858070275071807988533924639739542689483807553606412413357848464729809683833426214815795100950906731858138461093509275375904748787401842733212914061242422263103912091744985354220808232562164257894896399976311868725095085847519073148250561998987282107326884320968184904737211778715481264133666272363145956307897657712406805833681118656365605403376826346720665883352546018700440544262541294674854354218431667302616189457384468398361252396714800790909462343307531229163418859281779869588299630230780099551835009904035425854232050130357264238080412812680179177659152419832989294203491408901120163998837780060612265046498796413692229157761573005540359491802727615671779694758863159557455777920521707286848409963141377668286437008800980835060522394973269303073226507448571519508017383541655653122787185792804116216379550081836662352013816052176916924225936803331674275327846847266092772237448530753594448828430618364127015554242639685374683431286509411164759649581619202631100224944425395680395785889000881729720962201960212891908085363382259429549088084397282015009765222051438752909492960973357087094677359028922183088363449826679681653227210313551890548357543665173504756953220153078201984712606202319668814690488156529311980837646682289625882301801775417341083287747127740953235638089365497774505194478114271720877202627188595560516021634246336871317678007335566875210548555927523612829653931729272035699893238066080361380266638097760818804116171708528824498329602364704913493260343582751413254978138852825475737652058285776396779172509886624843841881051999452969940172449620589639723087330321356130385768026936347696954633361540992023735830088048792767344899266908932957184465158644523002140890877423153926581939864346712798757084714083764947509432202303751815903323980455449768381233734398879581169791916336093836182271385081412510068481006345785396919604928248213022491583266810090055691433344935429721812956415362618058167211275421545402522295421737777892579289565817041133486678752236346566931964354303022005372187550422717891290881459311517302638793791732863800042716807881273062046624549464498250946080305796507749551826764050499112184664972758291987235894856878452147319133085645415230130763614639198707710114271113406618274800237944208244374092461597228401808150375463069004502549819578958543000002509311782530340919070932515748571423767650126747026329242455033362583866582106879403775595170710545787771471224394247654308169109612828705588631454490251732507556074692917025151592417605894072672918556796215969168271070668445860147994774355527652955102538521780642204869337378018225507316934629137953476355929509954601926765282709132084281843365848551540195219474985067304456385667786865750799991630221333564842846252826669685710332218034774854893152968197386196247256511034211933150736208213858695693200936219518655026778236415966988916806468513439662431080201154326572893279777779892177378042825185077520999896153295456559590391780909595034385499677873052326564395996108137262826741646209923505229908659976785411961115698131686445962534475274295356508103073872568442976277764333895956888567006722801840036112796773404860292460599543192833167098026477794164176901242080603927935659812782682861440342801442856344097749959625726146803800524476752945903973976687491617038571250305483062683844216396853071562359946334168189620613119710086986988732454562905056571005622152742393751954881063464657364440838172854005380835597611009121579952692129287154658585844337664301238339792529522717781179233016113738772802702189452449547252731548337732574226903716256731366605608233920005242872494113460674239470571013190896158749073632279045817563650964383569033752893392934372096363423634500834240244689373131679498428436591270995428959855187160376255645707973280588005559498647094232795331343207746531999039643743723799140341392220500048555721074605698198455399884385734833560556830569402685753556455419531829190669993281075889211776405669340659834221711271427982441493667871687096359301732456961709114739695639750833642135458243042050877569663486586472786259900908730274906180043352532323939393926563922892608672338185827250127555289255701979374655600933311197600858763726629009244345053300495855409398815042491990846484878832338110754166216619895414888316662287253991459199427827453784205134129307021760134078714039758940080005313874426891878558691223163590958574162368561001097379052328109334729911455984885796719241234447991483985500033545559275879754326312951851209531562081188742265260296379508385253649223530389226505431731041548251556486665510389356966740149113029856287076654501428764526359451687302022984228835033986830345623934873924432973775241595384029401482400231834111502055034073716015265341984834227380781992202272514318826371465310697010339903516078501857639647864140547545637451526983978174715508821755751744381986060748271206309740900593701050694898434272834319172958225197854963369557911699373669890451484692614925306606700943026829875436676405506107891746979124231729461686168006313561074267049237162489156035551695069536726685848393926720979318143482933304050137199908401352604080305899338759970169938067548748723624785452537607770658568299149472539809243771044201530259089810155953878118169478556458127403182052229935896360136904297952533853366369222211770146272874515114472451409380387062028839529217581842188055965106493338909688974672883191117343479899751307565728307412127566172567378019762856084777282692754642979725432091738725261778267244921306923140723935048939365137469353565877710432468239963403601264337353382429250230374909182327848381923225533832239662015180954651435859926899390625793752748116784456947682703756426486219178217908880659334193205664218798131231705619848855789245136900544917724473079391133798565927711091662868917881381392609671687307844163503612415885356522134038713693496086972837611462776620512739176492602039271368287134384173263391548934639996213177145023655220129461377487199151328228728637531290191634270152667126797417355643258452413532824873131513836062841493224571667221783718210081775935812098327576311596491965949923836474859006749602974177256629826792653782363094331474561907177723148836955130647785936209962779181262924903300409383126522801022273754492494625482658603419685657082370478953568740196204156060731758911672172590542607792878129418311980350128589694334417553271935791553044769930494547715629322882178719714787008164919674500599732982873745329485385177729359586496438320711569813184767714472916040734680516261362273950515820941559181867746969041811733396794534944754769079859216425085440056615939390557285351001269563095116390479278822193883535757658550100526929289181779716397200257295368500533411795719813784746409526634280268738358765330480980998367426992756905081484217250776848860867405767144607625817488194248281767637308622741255851459251567459296057491941196163344045550824787670291086984845147888695301545293984061931116831381302954303147943707680482438907431922057145978514914832638722099977929628259446143723580472698389374060449643680734931972716316218382519663087472551335178402920582967341318569494215383544175952997778566369850591078279813487861328623669906610867510518673877744483986790255389971112610698997096246914490740988860057284542673174212811258429574195259640870352947063783645618120075482028779755311824772523025806261210569735314221230609885504002920891033452525420926094027996846608599606949452377160073001896163008453786209609624337823415228327465440412619637557228948110174319046255344308803658805426861782179546789880389223073185053378842859802472867170260617968990355918046990364559104190127446677220871819324725241843361380203300468301438423534200257999012633753306081133589950318403951713141900531560302125237385665036382212789220899288577738242462161151220968505654411598739605425785550939233018851867054130870320835953618236578556611939453891822343491869885527106386047713335746578319225656221836206133412022431224569458794965976938555593478556145099112350214624211653999997352780066993047124419278490739886965557284606396888252613291989875301967854186617771912777470284702904786757403898212804172430406667849059298816736198229087550304736115818762549055554763279799096935727791525542843029987873807653381528445564305037138796956691739082506569639346327665019931373171262989614573094951610658067011094875138876660098932066650388150426153616829243395513050128516080824743472284524016549236667142410468103869778975152216358895992352242716220361259653225023089793169758687848650611562219720268967901290103303652257338528728882763546659002028031308291088416119461870619381481612017082873561369148394876666408204791591646714402345526293305866094568376643531412981981034860255771752124881265453906779880562489842345644069179312604545434710181172150978590215199859814045970692052084138458110485009945246225744293946046177313398663022810502278200921127599899193896643343919159763039792841610772120739513213749049954281955521714473402515427995828048881567094653327499867802065138206564186113845239427826152384070380183892313981670626226276060448245833988876782965022153946698424250408808357101539746837987251886234185933318748716978263349109395534847623754709157727424016050734174048764419877895581506010780421727392263261780140494285696773703972512106070651525671506032640101395491395389920494964920310069219697913360722347007231898812654856914742862822969177324738117014663112216963380623864868016254432572450323955007014203842201044739059559048320142050270337440637257330962126298827900717756647771111812434397195666524033643597848812367690512592929643701774258616084098760480268505284107676185573448774847418781309483730389674421942811858566152886265594867239616475962335932643252042459137521955881362405988985707874929374463290685108240109775869078685513888249493932077995982878740582637372987420385007938795059573640516931806299983243500565179735748690842159990275610814962467501478505010612833376959334879846919475556452585623700441612027890044569313903464605358474691539730089970616137868697226753661494014645818714468497792759796708729268668831204510627758389679148825579913293677887791267779341461537616987697539269180559489596925809879800416662099222166274056760856369062616342456226471687699745580477265353732287844992598338719284702867170755279563407809023439838728909162061928984286501732225673103468619435987590963249271107638136786493101008747949455452594917249666831745665798726719504398083313679261057044633177734361456313678811889561673323512863611213073525237592410422274746307012910721414808549410047856449990464918057851107894432365798758014430157524151073682061923471193132673347097678066485099834849642397505887154359958613705607633389656930381606086763441825513004022950054963791784612155523949753628602484114107728447765979966289595464552522596785187755220291669680425918522085174418717175182487797348130631254511720698119273052371286844080591919898305894617843023105893811072946461631693136752178074646892227225823210008333832114641165512792546244464196079956359059015209155870751840923115533763276791105170678565869682459985780169236942306572206909570498085166577212826391736640131786155022042848350732533367305885874295678298569023971767006797730489475115008509296006293337154869592099176541018786467016665210947278598899919453669537257883664369929038251109682208582741402269727534968777434614342676325936483044410715068922805656104512791565158575914914687874015915698007352124372480447041327044872357231272881696994844593251910203159618398875323838014233924967398224234870427344795608342767187874374676667050515666368870310399354835550027259052897931070959339726836010448615723946831599522068744589713627811972335431495868827504203600593031196209968336448723998178179107291128712981171394821213411670546090260214534462608791724847451072819786602368545097787443851810729932711317624249511926463365529308273968275519480397402397213177855410766389018884595567928577758620337351141384084664907723521148007889972186284974952614647671368806683338302969634581993244564656964813440758531382204703428741328894328632353758985161644688683457621037750248960673009259503005445107424781362117646764654358560406880042217303523110583576766513599929420824753468671160070733117426853279640829853929664240837571691782202815635767560649749484022338946346704420369375050205734822704185886132442197308054986115783243763754800450030138661382827242828436674808009346730701635807330218565195086824788261435260332438674511159552118042919794672815088352753723571003974006573303561300106210088701176707257458680440719123546876649080579366855670746462369771943742865209820881721314259972874073662657008275384979901739789140485209322960335839105424794146252021543317147280666476862733083339207864899533399896600931121157751816980000597752983682890084258980325060046110591754183261772705442681367134073242320083606324235505168095668917143602591973580095238546698755817531304445949495262888597092067120100899180896734909352585966512397417555250555672214080642762034325704357789807754273997452835399049707264189028582212622052447661898084122514032236071686619086544541767374085541353912194615655985357110630575290312915142789530616006372557236091518957457859762098646523151915647803911909886327156831060291728029989709075759821735774573548587239721243822577505760904658197965284181417085304361994534163520796826360863817235215694452315686896099169589990353316362858543692972061450514028408046641206392409146498313033386454096202125832344195451197548556462210126712937144788115496428025161398130583273682657863796050014189695474004231333246617224417522842843048760247289070408252487369037216353333333517362801214127658740298097861598718914357458899265612162149744063288761773931182352196531620153052575365055215064774517349391851009669716026073875068447759099325792122457901670798936062289037962942305206062041954881748997333409841746845892076529699591510876394306760890621623869611664791388959750887533928539991332170377831296112902876220860505499320895285643207202649805963791377837875647092053246770377318229789963561504481111519331966694433357482700295268035135317217464758161995822549205338624871878070385794936467932186429310057982222271144501641704046533290503169777401960571832501610915351549523046326341705282076872626034121909572519933514195772502837844331073470558924874785742197365012561088537717093312794200846450427407514010021905939156653231819866724305230367269023717482256738604450047694178982774479130029036210458204782738399828354333107307886143741406436698775171704065480799383683357979090442748029609341698273944270580235609318155635271269284137087907365082241612370075727630359669844959032414475836568022561254595981593723672883284799700181442353920314586069620846812922896862342202219302747561927460964292806347389651463478006874924983492342443808960820984649359189950316774616997425678864402779512163838331078136402110036539128266267471633009985376970707995588064778044089418474962392357275960781893857861542546212851025597180387881593712046333558223522543511417444095140070257120577337847044649032021256701805440440970998994357343566902615651519033774456664567942978501184402687906615082956600891602734583686624555043859879781527167868964843888647478987236406156949264001674295551751125510091015978235217665559149244054212405175527821941044755513979572556011695256003537010651105258931785329745558196895773429958631429344364712502570111464317828764237869693019025244172433876438594000817750433012468034192473225612124767121033707525325040050096943148961072613698612471034668183539546464593763361031246303429034132080161116086772995502187433424756982919541103435827476802398013447059825597409123816280185799007390450074046727125699776264553885191625881404632930103219684078120132876298134584653121322859475592125179513018492921811099833522569679485279261225553838235731606956822327969261759967276370412702074354455665933126851688625813293363686373859549886109385338320820109534129468116095175435769985330382404223169124721486708308192390645425440614367377135542732115876090742194597273763038830155164367817775907702883244628209203618940464162232666310579251597648130657699853747902972239991603501772376036372957323824302685589430166422126179584745145852817217596450196422535672056378609176954609662582544594972116461124280425922030924988567166079659009516719445334439122739982734688075600635303811983012563140562661267716950943379411946619254273540532547146710426804266488390857727602677427995283986983228513535226040935416326500796861924681414240411369531766641898870542086253768233503227480340585534007615389948463439819477595684890733182840802324034319743037710724495505222821931546933617092077593899178409430200634146876860507629542870997392561777766864556007674910657335061902209511622632805549708347866917172138378161805698051774952811986539472233642005594090125458075040147927274913664012884367647424612804237621477502041329858264423727980134976407784931998993917738975711212703994301549057845624829764166482026549105506416000207167496596296147582200875365384112379429967701032301859715844472948245022698153072201914972916348301156452172423410079563340942051413335811271234566284952435475482863547551569395282537969562472166251212349115028576437905497472637200531709649399424996370220959888457936122570442045460851110170101371949078826624281609343202718512936896779745241944372844150682890128812622427187376567814188411422672710216999171131992024702844528987643560390759672723160267083010700798764912874859115414361836682861906730840980816182567119116178811956559524230691471310659009384160947255819289240053920654849680168740436041510369190191999827154892908361627671353161589492209378991250933079491632436163554342144845430616766912337372729796460589097803722861631587011184165966654267810684631511122746836850518382740061707068505931138505528678433669007677562428385953735586789061387940836361319765714777962730048966580920676236352822754536529532873326481412636367214834929852964660385871749913155672212446894995940084944091430642545366374199512536066356003282099878544654500981217291363602830996872342937004485765260346387714965639069105371123585282900243025875552617555236053580424445476183919789262516279746633909453080616281449431631298782535718848432782370634106970448942195211918770832697480522886238769049021807027306607436354365269954715016536714465943956651827139751036263729902174424899629382968660794718148019773920774231074372657902149762435337116274083770048179514050353335349472633728367704095946242960210061952631523858096690303503902037651507945122056090278138230323661202227327328715372112985966540598198780471169781400344473525617404424904628548053255881929457551590031532788903153993764440814809997324661961376083860132664120459920006606353569594445199429338128825599981778112771130241843357540502432246920035191853899534304165357547303059487293944714970318094449406529161917066434040520557813612943049535318430294188943625357347199404953894832063691399328402852776328507274714871729771667339739624882194452207354985982068186098685070390001432707442044022926600595737135002133108519015082542296775268899790841367863016934937318101630629083528551683210306785577822494510777373212763749435950763700251057902247672313271628631104920729833669681786532872706380311396740166161451777801836011471650040467220721267226742926891118344603401326078707283641402649713539678970475199929680554412414787051447096754369163257338311572835874079969424605455506678655880013869219916872704466272036660811411262400451147847075388181263215423337937904678545018247551801154288491146429116968482798362450778681816417355307928127684433397926607208904983984893593177174318743123222546819046806013630960946782364680720607904470321915271917148500464758577527871604772442272721961880646377753037558308026763655396056915338870817569608421982848689713648689697244641731786299033000266361687040072984450660240591037914536154766086367998571392165942535645073146178127421001236401308661523254322928476454567361305547973551138875787196859159395033313486430467713330217950458167778759009251484485097194469246458417356680289294615904956739198633672863023313756279168427177923543365924854557368619152878410518469198962967187156465628592828489704123163507603501090241995350289767055849969672937384580403756286265443147448121551676565341380225528553318778741076527791328258491407816460140379208793938170636692085884742097549362060167511131291052068573005706564714624833479464394862537082088033278291367064186202129895188885743111313034671235675316770184671208711691321394327839768911596706782373526940495871657288383153255251573917557723236484305454668747409837470479326470456250540407439823438647975919997725374285072637316392948726139656387809495822652949249361142657489918176043790895371869753002290188610537709406397079589617951855747725127775237193900902277697005875173148784805508195334061352734223363508476007214583652877768018283953181637010481762452578272255943844625700834868953718257583835196263835906596151302905521834065039625694563711447078467608109915918251756745638261655803348432947414556824801146192163931354127100043854579152957866689558194321094894504434207310305480635954250410178704002071405574491785252432920460892140435383033858476883111381114571747635269006878208621249350318529152331517003922062696524396089179127608200447794901714864692202152128811665486233690967041530107094382767638870668396751991812613239722772964118810243298601221560595357350875683995447509573996927018603469262640054218806911332280762675035712805854131159792543424519487342055370384174712762264814980393059524871515211273452628493864500259095980938802309731792413470408339672316928567134171249117376867843990550373465256116025221226922108670463637540215831535670774305995714920898738769523929552450229992939616862021722572042506929412623955469466961125286270649026416879360240606194884673446799574029211294690736197874382715634061562804021032044080524303021628017200120948484512073602619445366646618125955072653769478911966070996836796215329292221450094968903947327059849901284728931018566993906160736606670523223150228314344881243842920960091533455092711275547932105533180431409030939262663852343058243637858983148482352602784600160223932087846192965435795866086929555681926261645489869562387655249700209830333334429469627047377906480499658703305455980448838880586555075605240376408973529027192401260686193758190514252874573391980616735032311409317970867177940099859155609081571367288102863821653052396996202873720545791315626046911597105822588672571994655976176142359029012254874024511225781407533587727561895789503586904459942348239999638584793542338896828090549031350137511733874620731333982409902558519751917189342823557109786930728661619729584024052934920721631286778830824889883871161371957873492677345363567469368744203556871535975798152244193500885849661053744843996549169985039136869255876158235793955154968576010732175977024479003020164608724437615131787341514456933429374213411454547497632843815607258577845025575676517929806692226515409224821952418767564511047009881416728158585652433868535391934839981797531485202438303744851433391810609657951021119088859524181703712358100336370982924678494252284701045633031813086115366029957017282063753109785323197320965229726681337396210657701082335867578059134070097400038916238748160527788700512859322854057640821328250488848513673799839275660747846514227954891946919668807195247289162209609452360614987217352284796526236631199402569537854068201549013240756781497733621732552494720443519816097791600638925942259030168666005335007371217697237737125117210576527509221841387551200751610719997498125997110947564417555620811743027394104123734328864619839860149980324734773023006342235582056646733159878133504963393104205591676893160779006944854206645685547506236971418634740534130420617974906270594260725729211985090427107047791575386733548874901490084326359262707514637010669295948246328241991834099596267015791924912000287746316231811427838543710667267260630802444181424889045885161920971475936598866503221284533821335770720763263589629107997932591740840626656752456910268590202443517998075116296790433921268982597196530308399790835785300948539730378273628664909169694326711597947834221187194406543635957293059255326563361336046735900382314672395143286058147974344457325391898829519928005005493201520709092497027977796654669627705350662396675907863987655093948539533127592644316840914890012271392573481763804424925257965897926702960634547371275769223801375134646359267599121782451692217245010850341012644112286387546375272968023555188031118187918079479069485024936381180433636674248016322222109213636431118323678551872981568509630078059918358642922018102713727386456539055167964632727833370752151005442833073267795716716094802198285178796369984240819080082058521352501707337042356069788434345528795759760526665621242688744462394090938319948633297950858031330284691250063246708680984223331420316787200206725030694574340684413940014534260815891949571951357241865322259942023546285239447316161665761188864460982900531776460275368156959444719706425835525903033324780047814771311368179055072447224220098871642102220135665974114977951294302324597669080994501994697205327251686226006039966493217365293011292569641675370139237035186195005269412630244438223872577256756470057982949701826723153198016781465950343180496086545558197416318047541122026419745021358536974240867098955268417579684557710842990925621215498709282447753968908011368069628171496041381598114314887458048497547576069833187023916290028245478376681463495378055474718263107913757053111519256472472083918653358741773016066068772125067162611644866843323501702958520768355517625171770280671483865396669754942817412223462915115230445688321044573789201260582144381746769040721339412116423831448863042512515858275189456831957812935325571048521238059061553000865309724808443568429889012773323321134603341756516279295105428830913643925930893529581529773664756700032738092248192567182294396707120904822518203322177619025829854002025207978648135584054233247623059707742888398171354755939597808497796263096385074277069333517740635188066657937328424196685611348820402859976842849603362302795162832596510688490061808436363592474699220724467134347011195620664945048042841895446980959081424315641236078835903358603766372192486206994596234442027543010507446792158351676938406192512202995604387873840828898370285948321145573616701081288635266902138377625377565987860025068105865478293881279274826121243035641804997005893302454060302967835881538405368122494243189810822013217809134074960984508319295371388274206466173483310864727895312040535275470168608323645251526909805382692220352439536797875247383664723375137991797250084500240724260229743977458720063867698895052386613548161511163176508989284439543645608096005712891242351599645524978127270213757612905303897141387961061074823487561685196845237348586349302148113126046450873689616074868490135798088465058346447450081774938467579322142679221110204267506433328508907621164750874142000806708883132680415490307157311070408481686685723185643344128349239639341491377110870571067129114580169276596027022783957087810801671102020212497219819303327493389111191713621665669873014614492166618957810221958291078137023988826315876955695760561543068854100320275007111593951222988298621082966915914759868104727475499744580542044007203541979444599587170739351440394466534647823333773107057948416194370915811740164558076750707142339839624458403496909301010450350194109385695954433285298607069328913534426733810550819159287851540409451131785377312610495417536023305421813372507234524001745634977865551774821801526488077771930172612063968893780734523725084725845939044819909871325325018195684683828512024293273621929746935044517534128550523867685218221752967009573089196693046107885332342842737795449052217815008968413750104352170433144353186902726160802533943553418693433594854638805023408294337226850245482800616026869070694500739803425034195839075344151563289104092439979794936145836939407585520532495580724272343576812659053538100102553659681697990657384273738415101483942651216123221282533832902635466137862042490678280672572263222499853022671922781818451424737956516329799571772644303639901868227775493598459542100320924109862157667163506712032466149592175193603463022238892535909912418144751039784254606554122105436432867695224459173288838398714198453402300080272100294058009264199348821599346162413090801516976400828895595562743467895570034188090391203758834959889563721806349634250589491968498445386085393131934326139814696533109167776196465036170031982330839916728591217129513371696808222593764130464857133325359841385022745063032979333530846511350271340603955947957851345724004049150754035510583527620102687116716917504344717623516588407306418594748194391669771092436556067522834598227119210435860844455777570819822772479640675516232680142429168379440430017605957427315637201833838400453891410849426433291060535674519904612486086100801169678971550083933217606150295531875781600056399035763214594701921102622143949520557569815648391353405720537455258029164776398291715769809555777020397206652156566497713599845963483024697466944200407566664355912482710011372236444167584436932833773897274773893095594677994783066277238033884809516324831535125592217524458108995191102220515434345717801192112310178859828463907067096791889660811821476246623436555254323573319827794830938598948836096839118837691094573394561627353779402213162639830687458267579731398823629669085217184423887556349241863527582030284442873865560254564904837624552851697089328901687965750501248569053209229382625419260477703142456567655982784664964593660074046769145821273709803739257262612446688077683213648475009507773498802936063358755865069301613037020452458171463258966840998805038139144957453900669204089630773416954090816464185431115688279634939334532304300767938550197937412547989582029631322924595552756086855195186046719464808773356545659574735906041317419778582969660372769834384667156941568688275434717312859379390550456145746914668624005913352515323811195591609296622642521037351093400445708875535770723173960287349003549582785704070616038522128004875677386853932790456038299996171172785419712484682923743296067981888583759744988408656981185228809977599416675816186399797785005859357054617817276328829553378939637431121159140201312745836077308095560193875306136590545226233633644222263862915414848575681654834585980357861310572557595141478675440366903451417289211625855939146769478992587123353142286718758254729157988964439113534304049235227527709852716884341864076714888763880926853731880741796014835493720305131543767558874306789217173023529437474095389683472882262191609183957603189944563195854436425453523360154652597273957629506990588183103098081996410105705324036242909340947114213814353225969241704313940061532535089791242698675554441383790392615481852695353512481432035635491440772324872904278178515385610518041396250799666160223466173119009577707488694527443995409159143104490195591253830952268878360044615434948641671644620864747467588595300707730191487027468742993860005864100925719944146015516844058247812061455320984620001141674583546357409536814135360979952899222534942377813380153741755215799529422803292372212983251006153504115322370714214215760172362361586198874950793228706564990112471768900111598175953907220131420082104846722086197104225606020120376911380479492172452193864359290461759112446357947499900476402475550619492337269554600483587501612831653391991191927423055534326110150807232133543570318011991916425849715275750177156994391446719592686738336853977380542210028808856666318920921174614189700271581841646037118842007825739212984608794282190178591828503171759699584198283047020692583160740136518447991840483632023801067318652770571890701590109089816873690966608904305127870678702530117565542228253726751796349815684319936555510729709117512115320611368039614078880764573454961901324643442253699825592535829195515261496295003097447334436799619462229338696661220061878234910480792894158287748310201513664446075344543867200212947563640359191342169515306519059379024559769635911991195283305671558757413250528539083218623352195782777514641100876077756189171152708396060606263009539595896033282590277455529974085990483738537598625347342847473313848740544211380786190552077369594516471914459269341610689940494385782773790835976566827703960510385830815353408131348412376711712334374124234456260993531839434735773968427183794151188375342561412819724369357342250659797564087642443042019936865108585160164669704289867766877615488697515225917190972627968239813144844151758728617155335453958315390603943301842511782042646219873758624005673713291323505797302743221869797759384289627567476772517126327112488490114012618913184026124965972445024400755861239689574337135330535111624456925269339859176662714917316837914811785219991351665127696862725646322886126268667568088811633002898807505931114362592252818719986554484365318959280587941275675804227664035959715006333347884026372424046070787643961546538808802832594025655116999907025572574055025216885392472748501954779788289099606091081215904810297274170262832869811538681458983187477093884721511806409419544013776336393724936959912329665511248772450165800974615914222253678640867382044676551179275104431022898970356363986994503900248126155185020801949092346695583711225593969634866175533617678000314599311893269835312652186301947129475360683771495848346637363711075533970715135794193622460071142298211454219726220926725048051133801723240727149112663053809800205649431366938209583059630569572003411251888784285721129170389492300747516309765035900582613793520754472424321707665572454613782171244764331080865107077984748373747066878897781714045700497426988014756564239951816524536956679862013424193340208454522004651398105519812552838754880541682898102371516158527516516484649097825372646894842547526695032225545853373532610075637068369968379888759595839660652801297451271366038475284925813858817549242591624240143000923155450076127543711809400336521073917993267038762953860627986868660726156469118143838113858352936368938036137816984172918688932202482520927462095569746382795286293771687032008168072423158438272678708530576585098681609640856630215760067971490271725034792887978469964782105250718238960713716250671273019120817903922127573474592843005842599136641276519807667758752938421349870678674602845892795373062992861242052365674054990371913998416511558599317974322028334302320562816794122590812196586394712682638485430909996941794475956138351728198764319728413839549349381487722789400737109827251158470427649579368535840451135106712041852221250961188107184308241485554461765721573275364303533464291257985894501981643302237813268529532767436610042802567230624867582873065822722947572051466905078301349833102299484915370612416668353947000514899045371632656516695441986540813375403268599176744785495792419065312993705575982087875543954745096221447077597741669670475052167396834829479515537515711381961494097495475302205846592623582520677361391507566316729676139883407931925609781541553731947049438020158509981658442864063439764468165784659994952573073532661833540496823719179705413052507849685910809494026911313529825421524829181863344349919292878684132175965568919512174499777894551594970257803561283629219491201601239377157002008117615766764697445811712009543249018419326208083470444084228760173365987526630206583385081393999579921904352581651216302224381227452205574327621713929758264544265602339484596506742623044968596942683137499634668954250856653110753424407884780420957373191293098438590074007801573436682791201860574762687978084666566006103868481311493000793722790166511628467058588199782703534984157738601798030698523869520286212473516559141234643977060997504102639207859843346008970331745955322330023191947404427277686964309997494957002886018467926220198602086373879457934873938311677638296389202433748012647112555515211983569894709218058069853124614386357413129367939367266493905131577376353082495127312616820902782243589228834994228033326695235557426732332520408233854794597761043891543532921704883527166392620867336066833607169335146559737872148328117881543171035849664707140066213399949105530532420307424651822537103403391162766492295676141136382359264503974036655625811079430458341772632212938062180148391788206496488125098649622018257684975473500082081060168796526244805778948792494456687998473791428756387415493028755729385910048844801097097678833448520657023382464698882655289242975601922259154160607049539910352174778696080559175364272130828799798770367349321177125537073979132817349923629454410122998300997242287919601044751626564937108962741461272050491172826762067461660375085697821941180734463077755963077730312162548010604105341947142647305880795386817629724756821171544656448168885930727564496263436129034860703093475365969821520001431786559768889728749219873132811037195692558750465894608078656447617635800882039594092781731410477737255575907159698369482869271960286374860389986631639303573862473337762476187341687214921906733324861667717050917017754252013733035434379487761910201960605889776189686148495482558293417114362951415083189976905525889646311974997339734694531646974615938611574380263991481501365997566931480645399732638874933022974237038744900351503352637317658800349273589595146332832919339440256404892999958408086036010371611560049155949600001094923102434024194450812783358126653081758287712842089493055004441481145869411687753858204939920746050870491895782375658905998444324836266867668106283160392182005399672936716016593126434253821868368308851131629397995838027838606670234464288782012336927612883617691027438762410354622177012399906976280197664292164723145485595759310259213249178237570868355046063645507091228835472605983072081427740870953202914850854715898741307322629607751862862518242066282371297392519622291155947793902136768865731762510786163845755748561609186499993384057127262812642514328911384702740757843175690641049601232692578846239557230441540769109374933536327171618262308034042534503147752800522713154561958433856990671658292627073093317086257634792712474023674283155553196264570031248343776871175331049755488724072957420727869315629148862055229667751276080645477794677778391099993635055550156151259351575611329458385602748359318760683247125153592400039311620594332542326656092878903699825582700632321066118379305230814765530043036219183398422939774669766926043611904906812729704905037781031969120454985766325814834182786624454700954604438127840455143327456637485851812118058287318107264968062763226305172288730613086911074618382045374592994059741058245949083228598359261643709714205346246105785829057040833430719385218056076597897635033214836728597106364983229447310249958162957075217408816079655861547004567158229152153333661624664396523381584783847339370461452705417182153097551035587773195928608570092365857161121404639415714713339532967808270644813190521428349739182453222674875543769646698957056656059303438788882608015979757725060615206541200359400512732325772064853249858890191426269914614205393685100303541938058987064696228393281232391507059877787840931415534021249743561678074962678510568488749536237183877493687688851653953929358791427596067523657240160677458919354919938997064296587869718399468459250871290531728564617958697233878169324928576123629543392955538810191320264631420457338147585565731546634364028809868861058526599412062678268424614523757307240895392470035662146984952299979449734042520886615831376562959685557873883303770021998785760920857736999380212524906347449372062880232591936241823473158535090374272757314295209221853595553241667930183674286345588891589325190986429209668361431687404354846879173753643551726607726939894355084019140502706588079888056675870797959400181708709378890018927734830733363731111861739772629519205125888527170957659702593257559624984841651423882781261801144393193231582853250116041894509711612189294413448929460694154724723434342573460840203247473181542366369598027449682465504679774035707000289839936759529442250630395673185967272843169586385433828305127822810829837829287186501491225910506059821066354203254227158938793220876191512064974511374496690103128275222544609661858087555436163546846395163363344252747244262668702236336879587793952386440957902495998768549340468506566794709298392247332399228089485777536600877719617157211758773088910304443425924669613355520967870314686696537811981246789893055215419388653516428184082133967946457609739993166778143035381132702731517074364766560468249238679724584368947594506714966829279513194253460267603423430283181779930771663196565245285916800782891710097626836044544106506274679244120535693238950403385718693711203972646820115842715299470151288672026465473382921875337584650618778709093871702202702219088309556166992341241462042254696974120083883096926555105024462705179838102296339314231499414443674372286323971987891940937038187673769497573394553095041436923004234363231447058736319812698017396133889557447958613090742363821421367749852483589781605093520195254439710856556853107552207838856304848977368370992256236783878156610802226232180747818794625835847889371351012436010510530224160247854031958698326264285557653559447641823194032030833401777963176213458370026068628082215354375331917682698610985294727342460337072087902403196853263360702367462390053362426142865859038342920823820018809152503901030004944614821596680688744029843998636640086984935396770548917789295779660751768202702708002941806584384261611222608916151764478852691862775567974316525723427165178547364988965531963558945182230634034817519005948258153521203621678630218029484417814957087308855567823169167290418294108219975988810534230755319383950661255633204883807646817221083065221204154712288895709475242780793162995049717418843218000176707334234810138339838275441155727429586460830916242472369725672720695301438933197624666765694925134645617674333647759746232511343417423713053731276159150829897841401774834070783216926828473502643107013748642252923080377465689696007413478633287777905454494418703204716394945600742907446646336854683462133768222933330351571470643932387708894727730499854235743239820211601702862403553038136486129667068349831044037047757893611684823175279880109563965083392849001448371193909081553731893523848218184327341729202602865595773434186463270345061589225464244439167232996887809445849635854724229967520265019518938874914574388467289479531911333832248907360100032201850861067037225962382891508300916303583313355872646413304058854435294682157264999578321258958274533770771678646870313544565546835260511849736634006775934915184977747758647604777535101100550960361188963348936507918701420221050645559150201007102567712750853325890524566204686593106389758125615394977895632740194546150932736343719110923815993255791069205274051269125894941346246374193307947169889358742965868081338301786769741670293664537346838696406831621383020658713963341959876731436072586263585593496423539444024109431387579716473962034853031747745401270947257263696795091766345901843428207841712055189558463270928530338470615977960092516651282617893152633466788593112682887891604631595819919904898374061509439800507758406958986525371348885895369266075697336118264237435314403951991132744381018831393148248457637388649951081965839432132482255030151716526414540126279643342775600647735558857598024689640282241770882542150242698876113289938985575089077290944554125198611351966594102185635007059389372354204673243317115122863379668186403947651723022926864264481796192376375059612313524995792192190161232411467718173881244585849024957023476077755229550917431881801313630043540449051120476618004685797251891012682271411009939225458377511982726968208214122130809765794754593260622626464416801396807911436192228640342924549214677278239084504002621330403270328404519678428962133851902927307511089665303031206704226314317854587806884476827265814755297577271180689805402542110893623516547908722406334619664751754553365151056276343835534455576486416680740953187024808045748837391656874735895251383407160779690621992977704230675981575702763541468794596688768120609085406821907749675693020566508461699966177435842437919965102108039010090859425792144177089213626406894365975170641008540403507293094800879915994831828700754641146609975907246381495335753668411261274012929407478602430818079486190831332028042644111537025331048863403362643199329636703454502316648331296267377732261434658375806917483277029655573063196544982482342028343869154801052479285355870187857132055949078617670024095166501464285289371135766068308395387324440478153671182054426080019440430113602357121229098409157271528939507374684610462526359592583725294662507718489106622828746319023831692282504755176453969733106995172472046483537339973123275391868401296898823266369455794021034651791590421941222343223629488185213069352507688934047016042597183815924901026400536414464397037092275550950902438120983642404245674410987935120093631165806446789419339188299395075750181390013590694009295143552923089964398490463753986102280089481588503717526066417028245576513349669124545534458807237098385488585067119109319551867552515011119483825307953926607432831591768752339546171000611258094956221339032023988602859285100001644238534616179678993685690361808251615821270681308871283555055782299964832411497532543509607721514741805185899815658691278928469029179396318355911157288242808223803882908571002046706875673608521260446600796338160685749159240127596857032450376205137706119422534494818749126883500033622386391922260054824969152754490873153190643165897859482720874563111139862938968910555380223760659796167931909104177587720729445124642830201574307604747002606222842848460977819190492195219131633913501709650259015507904880970194713504066151759905052833473629982281812989014566303720396077179888185442116884724193825603584466272162370992218587961749404575619493879024880846214852687362298494532832651657242278569823986091904968502222303431279850418785273003050548740986346060121449936450939071658157822461974741732558275754760436320466785412049058779944168280261044821999711912277799147188658615208563381171765977104305875353398055895948582889319403482289711244727331490830238579013175943805212464984544276557235513607308005195189209715442841784618410325479774468676549568625410225985833261204685695852643309054782950834617745591510470082769433046198282301147740889738687695181905069443928488461217122210441968906684395773280831686046096418452413688252247754973665007546703281627785888110895456275621028826853984551963882425825317159722112680873595107491985528554355329584627767946988550003067382230655686165930889848172078653702472073392385405480007661316078902507966752108413724753417793903864607517412436270366544925498967833706657699561391030409859833412493802513487057594361741255616021815015597643773246568734345232131390300328852003016314101053807479128942468260498045731401556492396098851709650318027665253352778123442328179973734062583503019769588722849739478527279084881425350627253548849877016847513136836723486411853460508799118513331477103562007838333233957606543742033995116517388023439003593245699008485886695887557417673698994788830417228061150717401302110130287714805270427702181457178410351580476237469891466395663667510641794515296237930943359715565708283171239292799909525557803959612150734064365297864454563785464331804721247558609154570998313502186885146357139842232489852575968624749805998600888551455082609305159667964411478692630330674855604994606127535451388035253505558768465892010629362167291386915956771321949289000265585224507811610672707332214439847495837518122333575420312482317296521035061832315245033732192140284492681088081913929923963893009946165213462985620419949914056324023503719149375728667302805051375012492393787806020267169597635838805653182338588573594594884704580710639962649478912732465945529389489145785672521001354334880040939322850762040647806251128487186323306470330785230344269651765888157114254285191534078695393938525337385669455585428184105635413826559884262393549655445898649718880531927546129501315164897237546969194258414957109773728214188136630041502366045450348398703677160695725989270945771013753164305350521547687694289309572331734720102963687739090900499446767357127297913333626557060138423610838909380273861343518175781929472143174082920794971591017234197797443117662538363690133749175238464205118828825204593158031049397645057611354474072790606275057162460802825165312398477906763035765907268020138306973015944941719324498364947537955385220598687140333034863635069847866272450911100115582363705617875514296906695804222498416671818730812292962751081837808556068645845632246230673999029781473586537675621621630815248265201382124893238027314150041411097424695203553757547956256328787188425261041958646452649419163547966512879491263367073538809964016251685024892530695331143326463246046179794522399753593632867187123065604985342014379298868648033312672683923608144721573049345622125749061364013905476267663094099610543727682519176508383374839999431204498085178384182531071708539713457537174750491973493380172124622145478577554952742921962339994647394568924427665777470548310570751888384834740703764005288950214589715407170299107982510478348166467036663786771562779889687838421671647464188751112538156509055630580263028358326929722922054611630848747196570082016575878992921417904555136179798528859484355286010539935532507304734831360679145228332041602312795133283963801569889199020084706665484696754781563740808141667731112619476516535650212923647074499149402188533702441275178732405299868251333830693872605045549599104132123126152640318424069578944796584671014049922170640188231008264063889080958350371846998419294527669158083870562169158450276988598727769267102980602487387775555057890905240872609226131041443782434887305480917247878381072946465220008331918998185558609080020540536070004882410288546274094778248697654098863871362960268986141786950792223378249571912808828438014946262415911265130695926822404766677245847951978669809146427462135000913812084629615339306104989960839000537925136954808919463738754948744195130957918058103249604280629397343812113698531092438055209417454987832440070906672748327839197141784319372322302703906260556751609827287879610949553223241547785634866081927180838341552735809041085087225165963848270795730577979659560538262494750728721993411629471769306549975201314504036133990728770766389896874072891831479066883994151647348295360272375810958165900085428832339772735147397513942403210994059185947859841489775422273439214555743513814624402943503438561689783275502356190566128741894424108162683936585875477727357375522998358059471586771839391744404662595123373135597400524389625360188701823603011084373637036103409570713239030669338677902794175366817887633663884084172346277578063632557405923052368812681024927761911340545130993550825965921929885102455956828369142520649073765197318084094956782726619525270885957805345698080419436070001445007518064495174757005978268207958288324842633146751949734533902689015636660542414915825569019019491561292826801038602414116214768065514760240091676898069587416676853123418371866917002391776648453419958291768118201544429272975704092972473014236673473808884491318499034293131141656284863235003335228795445134828212352868231747413646833550151684502335423982381222576777765753740108093335110771099386030724525496076938882858046241412187768401171208277806446650973404183501432884290674081579234573289000403112697622255936903377398694637718069726839297040312031153159489785815061027113604705597358597000446671993971986848431954730121924705117100219180834420093830562598376778250159995788848188364708093307688502613910093379352052673939639453784773085392265093699375995112852170332218415825186367339682697074923091424426813216047114313622219351421929064881711373158557970225674091822448029422887168891360977026645828769010656177429426469804884235368622587122470447308127278836083356544003390197284799004318404504257461375563880883158960953138199751918844811984541730707519003223791724569293375312466506962538550692589761050319825230709789243957685556879457244787991157745608628757251296941492383673168343125770651949405553209731471130584373529295083214282299421173318114490891124888290534008926280272962784551617586238959148937846523260064941919502695439824566865913338547225904653815652935599014637168119481123615712737628378653156537061377366923139737179792356971392356772907259970750566923239570643243830806313146867470619179074774738616738864149515320453956299101639283101748449030006325717901278303134175378367941647637332150437625147347702242151003532651603496423394066287459144973852966771230880967728816471829845779373533454535119983024825207966464470445949417106438132425100955994870365309984104588804170808896918534957374938665668797940444182942311012328989877444764276914374094537484623881955459617520350397265128191219313616269251367541122675483367240863381405356692293022301500878897998958766554500466664324361071132912913779503742433196396534400132543245414602284245760808384072491002810935682745568556392124788061962886383643974677423370016602757830251749735223098110086550036861700872230752993513463971191192327850016787569727931898032584313878661115016961003247705279528304119081213675932380602648245423593103400176153887682150090327196880201335463773541271570420963542655108941425454177448810823302496957176445502401829738395225712424878884237163853880348385363440800214842452946496091656186619324687664495698464320343460202132328397031029737171979346717935776065403295621116825146688993283231010021452089659900969902914329632549445209079180595754831959821450018039349909780324543689158337428100080612649468822904020094395956969335006596897389578069466295782505496283747034276011042571888601848075494539604573083333504532892142548078193076068933088130336377847246844782748561683683268250016112858296020278972936199470798105352525751519621506205268948853666605409716667722825163981828503201886052309664104726001705381057064303596897719059735228375049008863185653337995590039961672279141826737984687614310107260701644932791262257641337633607598418093283789363103739997543532734077813040321224270910897355040959491773731137587272613198950583838784926287923165310196233192080361162031089673532250994043764069539439632483509657355961894952516838700734584109728238418447028470128008062581123531652036636380873559270230112932900790903071866222454334365519144012885361248479035635807996393967789033232028550235491337720690026187762142563023731979139302221880415348664818120963009043009000038282015801770337912000420842010542373681977821513751213104933000997775201139761997003198224517467772073285380521236301500222824026167746612126107730407689459657959142472292392716578408360806413538276159163416973931854903652769974141884601909329365458982359985702983635687395130633936360502822439419640230420505112506276454236554841691148659538510250333195595156463881665253504086079899220206210060718056728246016099103285680920909836766217923690394226613353444444612832931433859187638749157494929512954134828095586052667565021714855465892022686463130397014178474759428138618021250774573581159290693477669045094288700646854721258445160357697552295243984370989592793253470771292379884190044849687618088789419474209945234120245907399103169910927988089823499095326354824003612671117572433983597182015302821628836945838827364572676536024673738075526346472567150429630748444290553472840223164680983448538811037258111188107157665957868055437174315613795754413381765559496702307478722158369762106741368068359756151038564725356508902038662435466308925155755816168183979173970320587619063498901496076659252330281901778193889788005115333971055614907414356832733255285523396260339860461639615841406194911046376038565102542283915204372866324714492792172480353309933028223101955807448395960962466998762786248581776788913252421123322145640046458077238108250236487734651860159762192284112384873653927201625048751503924358720980042403699520007782081135689371196369346711466129230340833847835676160906646188055109021916851769717751506723147725749019193914767503941015927036333848875897534640690404158090539031228250767843915933507207918793800932396710865266532572742204402397299472155801055755563596226582133233599311776555759638660538424588555365911955856893334792517526869267147148027178178862115659760557367987614109723210308569324127593252414489730838221637414662524130400146127896195904824757545533398796474520257989233201465094600533410424644823102635249696113540416566450521289229289180201621902936845210859499227335053903720195193540225746526897279661132223964584389213050389624241945777610447802763443492650239638454599689690276832674721612714033940065084821101683569741515092164105362620093203448595933253031774591293499064474773867566478944468725711847477593623369950856670238322687225480264499431348621725127117570222924363118070298805469326375799513092686712162685940320614434496061487804049341704746758543969689161140652287370494342981390925163753669428635880217308203685098187324528246098123228481214170086927391791760186495554132793171867235519080989592934920942315665485002977612139365451132600787610956970239521582810496123434642931062144135149554415614956239186956900999203569278707055720953980531858638489283303820807341044447536303678006456853024480781999265096408547744998053545306514175672057210132374748780412133782807760497916499085237086121059091166202972402806738981305856430167600833159741073912781805652464811430267355160831952812235499861009102536054799180423851981053632202032288768223268642370271541066429620776594404231675829746340803381408303616940954268994305085679988726831629586376101031478303981106331747377443564392424895101569840339416045769605465365262738314943855973386949770169318467772613520832218027287231266104803278373362873927986619462865306446381875308902124062546626785028962411957451973143445511687066485039782439479580746897200646399196152495651162365804789141042883652872214164954138842157123477342277056697306286428072349595556239362641673141926054454721208531395560702047504545414940136707555997832413498932509282532908008589499713665735433653256341651566654388374784172305528438709316384669254021424903074808338534569100824011973658223942832498221871793288986454450475216524210714229743000868543414901672969690959094210776125670658253566289242413168629223975891260025844155149618971146876664507301135082472066301635094790999105338504281986716627453656266802730702123946827649536518317355321960358450344434241349782213832721513266346099609267029130317287328615848293716667144040504856992815165944579251588634615202936999944392613287071603180609073815741241684781633634569939674243366313677334505147955627271690154358032892968156107410387095425048190424317584743247301856323838917078537348530318527622680445609319504801319578557063575524114376457386955112905586614573415965666043065936548990342749728265167175944382465299657680130390989128695584677682494994311667110548639028466225395931902964669948827675869005911945449175427022359557777737160039008988930515959500060205568131336144820209715827112846829423957157494385883239184611971798762306775233952935933253903266949605361072242406316812573364478367801895760926468192463453025255140098039910651745122889270645720722785757617442694414055294662534249428562889235092392953964700926876531744309361527683419159315970375391542505888746295874868642651208144845035822885766167827155044222029678411936998428152677827295231088276729590786902525625334648886128153297877922117972457297703420247100031227205122351531255275558113527115637118885079440056342571971700012371584494207989035203225410355951356217199163429695079662827944728348720351399815087414434432910824575128778315592502173368164779257406410374236748635675108876359648351883772416871070051213461127243768854306637019883990545831999229103805304830987383910949197778109152631505896283361265837367800267154048470588790167957049208146776013985744771087398659526838229818699142945408135513828899488809005059351254433716310305394098064045101111801416396471196129653740400041444204587815692256733108045590140936328644073193756407820443012762300613727232022656440388480093293447768742917418350585341208879298313332283472103023796000186587236972724948796948293182111451663542189847337386386163747120430060533062575512862920846999885661838651692404736089054798948180523385838069575840060016281599124340700971174716784424856801193560341226779407901859476108958232434585451834349004991808988390466863620337068623703102209179278429703811658085208415220954131145117568755599222523133166388297776757030650393669461734645503859547188259716052385269852516084302940749524649192446266351411248716558652845360518215751440867020798914723941023538297469391818507628775332919484231535854558778849987041019724580425879355563093012841943648757625399382490819860864075717535252186480204892718884287277107859531702399385409205859138418286448242947394922342715800168993767064979378022783086956131468361756300336585995389158292164696570303919202349468957261477825178021325531556963063244233265919411586778656168497787800700002491143749347054531177078213165004249993214392844664516920125755327024228960391805273728113623333338701231871397196176805427979781919140826642743383902520974656706616630153287147405339506574717992301995959592601005985330176449429318061048143173957175640204109023771975618299374361713169131056120356165765717050094288498253229223654045044753187179809680940109066729053993944447909467767944170976406854063473743651343495600717098955933612858552030038919603977668314000538581840244277315421359572535277463528159543765612898004801647423496089676217574227194294334179444346175660847205496233620129937117216668672297761043958139013978045029423443214839538012710164256273453047653387429274757826483916967253972267216242548544741603511113011573958719427426238238480894379921724833958441204640745594470415506958994654397253958276331577484676754304414220884964363341046427397763549760094856335271366427322060041868838870439164991770440128214177700180771026559750051762301437769884467399208281342813909465647678473989620573970490189929928281547339441462295708480674852964618283228911582711157761234277876366215233030413726274688767782758451439071305675451700870203577470697777645636292978590921800983508109416352534927972711201563015759216123720413353371133876522989831584671564454166360531683417088804476424545766334416501796288886600250000321720040903131407246272454058283508272786943891246635382871588741314330064454278763197575183088175920626019902698096766290998899157811123992216795382500993627062236186858102877272692340316536252475237011124401240501221749121095696595678858247104432395810066404197027973131866333504400340777659517212659839728356281530642533429752833790944131451796099754301800903914340857452743918285533403215750967724280268411921336702659648118759652717126890834978366431862162287080523788480651485500101220866297333706970193470167516423478077294691370358104029535275157852833353858859258025069080051255377680000021261738991634761087552861578509303052705840982960910517137006481280213169163101025217485349214439278381525602495845107206155296823450632574821259842057660857571241791056289497777570951639226630453105701367586130485009187392849233958429286988878280174161769557130824795366190374901875171570705018506289142091304117829697645859805953903528167704423588158318011122540542965798353127314430991256154305742914690987582942669827276362442370376573752975252859734260618617280982501773225885572940917510177021389448875051096525166974982935899177638659456028685540143539534856246852142415538462770459791854504764144931907165453856433890921702783951245935966911619035269881108065025013950415290781777515931048278562813249374630235761561745987139293994718116349409302677624427494385905411105339684486791124790146143358509079759229337183705605647606208587322812004770574349604078762067505974154804864876957337975343120401470432703477200713910469385576186804150479367895895381620393117403791468021893243569085078077414970784759653510477289995503048536501505883876141951239387739708882573635613582164545988061938739739138292709782037161807649035353628541638617118592512201268536663855093030556615142190741637450059639984386289191921033458430607458006179608884253603627890322822270468165246284350120925841132526516233521388678269913306773371532740611434730957816647031489989009383339389359487564019910658344454630532204172818149154320246931784034773089518392268961379872285665852788869361812329426431177455832553300399130373233130847377560650612109713100817973214386514557365279801863305131020344738476142216575113121990398447295832297335062501632178803797378548124321063397503257905394398917167654631614537259654549775742948215182506807851204003094972128403812492945895213376246088327932679851375150779667477839762320975220928514858236586155021801937915064943928159444591901465401195344357550098389398909932399769139148166997266568249720119303419027667357843663112924479702278811873274995255886954402721808962623288928562537087796558005100115320222428523155733114845741173908884879464401844158979334138906183232851360417604386111542450662061347532713683275253190242171689758162656183809886518735199963334707228032999474826329054476881876239160815259579895060017654566254333021415717843518504924531237127305795915781460977851248530438669067736984320804550227739443828902832702549253266355159068389911349618531596035490362996207049954916105853213740395703456880309003748151189399415457036724873305821791785382235813363439642122363570618061713253616976502475813019859406209762313890380988849186254137717187989031201145064525173819753141681991018553490543763673583957971349818897656761971289113034991048167680712165782273574462851969197054895353725694972975982229031263905263804681191098470641343821527589196927765628543568422512155724813677105155245076762711032574685980243928614480495360888540019519923621582437263223116605156937923305457450569752284146024168993482966539042487665997359187774733657556263653975190621391278322192197219145349285546151352496717727289992294856004173904156234354625217847911832862887111226830383055527594395889126817922159364874995722696800329365761261775607829644925652120685850213824525297932856381913590618589656477882666748232214814171523943489541026712686363082014195441130973499177663147082709080856245022987960946091904327437704105341137635525727598048789590975490321198323269184382188035703905971647399154134895904878300575124747312976107929115237033537157794403549431042651922859224728030267939522740646569142636704500637756965487290489572168215338017361158778783042681423485935781630930482365503036642062882720352790152341914092175063905456745518475613993703373575610828546976202086683032107333303948640041265053174649562652618673583946493739237008491186809378131517995880512067447987597001132115397335925225500055701492736206415860229362795464022425656706142076069502708507485359048745311037988323363998873708301611230436801870963863239082173222943366527166242997590549893421315743613148166098707108230625240893475061084069419218247221372524386129230618907421575377297064357847745059276908007527094832472476673838374639104547046122098757121071918961883397769995333016873638001261611421867298465017212926438144284115540413412564096412844058547042031163757680923895892556195004685785150432000103567988205482287436291296602204554066346855941272719706659581548360972231570079824474399906729603609063000674836964336471394005113748342521818674677071804750842586752377616978424485862015814759140781504317549447121460410570560768458479884532062962197367401958997536226020353287867209369181944865413045616414177949184820704939179993164330427766735625672240192474685307178496682391951445289677901149028993099616764898422395437560943055830979366387414613428665735442570926195067313319115022709992127262266745283179808305359444905136190260673390731777082177857168389405928649273317596956070052425741685465637801369825635225545097544967543510694695151352263946038635832235853076391231784145919373523025785864185604784543126651831014432186723977229750538927312835601724467256173202142543952348633333190415965761594396498899109677314241568338933387644331155973565098661612131429064616112743087204133205622887629332778741184657883313317507742081003347935586559126851884773767328513390550872218204549016637685750267029339480741239408097465839139385587150390721313682443909208481155212247656519164845680517957412531337495863684776441833622834145649778624399698844158722365889182912351161234986472178990721874797422620282337412678968342197380403294929192699753310607472946997660602201482273582870480758093646204345272629105060800809716896558625644429605057338297250633856135073549462337982821591414131863151903263226756974956204953007753179233400618161306669239998561184828551837222769745940535073791477292098998320411639584780847022752334095543453907195846743356239740108618826408448152361025083276703714940109623466278809697253320314016319220610123250819555652827244069248853532823537276171233229067525420833695077576064407462203697430987452660781452307359511636526282676445523171102772955143789853056243469595958176464652808605256690109028877568737517803535744585147253592952545169861741342569318510643427859424221161140068393632735228622419206921741459580230121679345255308471464874409838755533029959523131070026341669959549802765389465222968134901446591372070785469016363713423656144447800714461825456606744042164524332475719017933458674706127145341971201753019729615853627964648265995190838703852446387318164389802281044467541773935022067451258744824407797050098648139003387660373680995747486536884922269762284498910640667293972941968643259151726665946777814016173488312823343387133538979177730973962083284477668259922139478650935872649979558317165665469316831749301453990772963955442392619034445662376549530520042230586451968318530765726478417118631511409856194511371717513513910892514320524559961086750509992224786704533132881156532849561220546687234702053067321098434971746363984166720793743326336087408622724282292393786297681429129277395012427400740207583933502524843522845551012636344754854608437989135563018391449340858615309039086423440471652937784057270190261032005493751257668361473792745612202135369768369763867636563646008474903085092924955654495662372052895954038195147631542836059722340577850513266732019936590667239876649356538279119451777235487633809538881843995662637378737985478523736098024070555093869350026316152179559826411071286942932609728228075839361865039473952622984370179267683175664684148273835415831656841925739217279111374786555244751895637035487451832324347174277178305705355608205675756137776619054185292365345359084020929885158214996857424594004164355552222263970740145747274532013715576438146137777904878951246168470668326744155819369065537015482612706817009245112920906016944177094741200076303303032068462196139819063284930094842201028389569499436714091760074230535089481325863205117726710052855048926393440724610007180944011527758303674684492927657981003103413569352982844810543221974627616825752013757135129301777568976109044930148979897564342871335515981663202801185782780901971096883228694676522767418408041126664143414221245834640676673339928722746609656128327396022039129990756835619282810322884548539746523937853416249441074689145548230922607479887626955405859801843292649511677432952177662873474817839855114782989544962823969410341444363992574176746725685493525262218764304323982846531904515677558319265028081022694545936069197718938345574545331714599705946708878240299737777398007274837738212917381793073663547782990595510598262896184048538173481356309179349370645879029102429405824485234428870931253219464454917191508199691021281097238506520579928093420151628961815501818275228916229056889771165697800593908969200883643951267872659436142785505372776451560402002174162329831216184573098624785112208808575887115152778871916420293824685396910851791122343525995539171236529284536425171504724999731259379686885209780145454615929670926258376679453210002506126023544987851473508334388254534130604512676330482668058770348303942088223663064337738641561578402935756578128464940605731922931799522892764820997245213218341505604743711156882369253878993161254203003431265725931815600124458881446603926737881314050337116496140487129144659102712806379284902197104564681717785917701413887701162582088052695397798572477170471862495123502386992904884761555427253986551737364071449074282759599075671567368041675893962627070531427543122346628095852121141895458807204677731530281850985651526901855590933441728804235747683823443015689911095616319768536995470837237117408824944823461034331050375865674416276817712282065070795932953775503003270438721116911861129599569814701010281113485374967747947218293924212384821165485595662536234195012260957555576410516042108572966830487070781311489421485493796994642441412683316650750341758622385619399621903158945646259412710424618822740075266517019799012403742004136846207880794730651652547817294027643612475759758982069066863734564913583238744743882002960723335549257194730738363771820609996189440166939140780619722444717846744637952843407765940101599044861536173725895032114910043597201084214716178371694538082828392629774764136889191529840526645869805926997411179880918261257447998798601936514100134928067194621809665855914905282503550030580500923383344527216233362159304515841751159551549566106123900115222804644386527074187739297439298603696972381721911563598306447526713169337640809275676138513697870301093333922927918296503442364107756050379731659762002247114567437990831375833595867343751604013173921552332640003583753923991932584518340733586621408899662420070878275924302709203377853919057197425103505443859495863311210065761283535703655475005521580032217155312427484817718262243993982263040716524148477694448864343739439418976327451500898110169461715168463127972829130053406851055904898783232568258827710084780311535517239360757151167318380348714802408614825543279214650484338615062020604095326300864413986039388613406165412304652796566570585296185396554370178465721405009316630537895134481886200744863080570010429190110544662146103470929973169653906629884926572814138935882585711985735871077573985338541440043665135105713548270635183782817306764818393276570018329889933237219244520668416283017554371514946477650964928645599093502607179379729652002476616031782965775446229793258916353785615374995622567434966380533802299736834745826102008209491642223293190317287748383741389772369258003833107959888453135985395472753722907776861671265145119418603445036278725431301617423641927341355228009886619261345987661722370967379140440720545067804629293704541718424333920035738617549436086888166880479786156065318896898091612762972095259844542822674925407303615484237374504784370751069894256469003886359318793694585504025224340485009029215475317957418573102289426873146442258894609055461318666085522087259849007031468859279973898408550823575318528650124727858977296678658727889667803627853445286337551503810823759456635877484225340301201483995257149259510706580420180581663263111740052734501330258654139023664646954770146293902481151042512620644071307053650478682156468984113987977675379975646613187210372283804421395237533832086615770577018613618029610636176096447594110495245221006126868156937751780568401118498358236237207665628617770357629057100416523522505844207745891448247308905086467567395379530218237072257344167147408932001313730582582916585679562527249416368432036502436888235499465717362200271272762268012418142381868974820930949028682092644433518351477994222602712684805464725313542481629966698440101275727149217540527147279766061858534550115002027144300499330566183766773086747963905420443280997809995846313435789645055485017614124876082016143435925506784214543897343480831594649575618711002259084254637015251004125693726446904014811591134818017193876562205126361617519338217921752492806227182359088711373897714732723115315857882859626103211776260075274327579397872649028693013603815069560199256460287284275897016341344812258916982392551750150456691817687931395267929098748308043630780276694587875721494854548486637439482551281288650534473498090422359416304740359447838305112021942958914616012849394156783966578054764170149341083357725584680166746404220955514903898241944704945827174766586192953271929298324426772109782144590227028937681565504176632774386972885158235277699911607151624131666420768620846976665087824234741015863172237139321411446031620808117308472548233987555192134589580615084695762274497266727788678445155652194938677584624201655098214449391107782012729333700145171288738527492206819003782907870653684499653001835186998573900594290988799307624995311888157732857094867841799471086495604014004706027310494754180453329621431289831975270034344434276147800382153594309770952236655125692050073570123421013729128985535002441560345004630234301162923287379699292624083624416454945920067104349894674237710813185723122537613708563313651781783539457357597970598165231671200929011817078949098338855475309697425410715610717975536021599512842815247618332366047570002010954500085694862837847126778099368909337282753305910466567558432494151576421590937688750939794682755726668921484839047843086828375407676541412724238205999097379182335917725926492960539663537335986539634147146394114094595956521516031224027733706695163770362709589014613409694337052819270193854358038280065851381020049470847983935624892459690509598846323138850457486805803941524891789729838698001739879674342831100988292883026516794146559394054829776915426579427386431853495016299570462760791282688638846914377482677053937974386288239250373851091066041402268377901448422329973362295269088719949339222280516375193288413625536430898778315591300071605729344174135401614707628932601528669510493414062551370785071981151502203169382985013306250486586147283906912631708972234924652084037160244284551958552990557785480440707167739942724568292531576344484175655690628727225093947824382221845308349957685135445376236026719733042565065744745038721223463683462577361150306687791922801464258722163155947881317755765430329685076329113585419730437626333116556264835463478698265940426027494544526629863794493025363606017070341077885460952981202596925092202912091388361982194409370084394892311897555721649801139275760839861642220632362902364916194426543069207036932575819096480323189219799553972830779487774987561954339753517157572770025436455630250996125397243405879324168392427857057288092750540487745295735343843143817212865179422080133229166102520084269091670800412941050947933939927156274953552281475824523150026398888441578736127662938159577145519663448895207408380950399863601533622514672256789572338299709228872143662442885346370170119718282453164960750379927185144890704298702526071860172693586451032939410352335323994485614250987847643328213409962723597620914282079417952958123245332339184627437102323078939376600811828270549613577070271139882539904924469639467035385493044133392015856015976091577371754175247421874195085187901758425513552499819130181428425832874251587766979168682361132349469108856197149914119660926521314705336644679795867165162375525812375880774144676905425711159766432179228983822529021259680935896738179891796835429521796812983118704085616350741927058970863398566435620375654158430750633176994649664879233471940175994488067701783726774789677217824122762916162919134530372827197866619059392156590329815222424094010569624580989914316182016694068543296064776458305789731392490811586141777581048043992393290344031660155419634886676923820073602514289040459927706130869163940286222117671617051715414501564802076678280894208005672592796777592607285031226138883842603024363395294622999769382100948086625761277076567279449397473490039084473643401557545319266710714287274081809549718502095462345237961826933370158225239897286657460828187760924107497904478824858344980940940179706747251742812298467475475959801806929255579042570783121188832312343030664409523801281171618698210339150651133038966799218011898572358972517056755068975438839092536079365683714032074960196549332534941382961905492087509184938546289316520873175973189531035772599477997163649270696621133936156347731970904844936222235263176692161199523068019998051902559661251986654768196290934460925409955146256307746365086514451632162957716691604568557477277536635628052570088323034244280313109054398183492303892270308919653537446036404485398896472719408146627313175905252811984218662992473026277889413384305584057449255289547822523715883470932605043665879036959565951029983731628854664431591184284928821816561234587922264897867656074072473275853206451134454454323095734810760448528115329725423826389498028382883864274668442546814018422254974934344022881859407508932462376958185875472879748122909944902171649479437266250310857424175565903299205017159267823682553992268497822526814446755458291397438310728805145287853873123286603355194299543381693246374332539440606289546795685561179643303304962699006783457217801579219907596588172715485565973549815806011539039729771330860753935688061018072422520984935963397446709982685891079324048254124991909294959832416956837159998706336282795722953865027768711009868931539919733376260665540708559117543886566822389877937661515823710182036451633980661186932942083805551702125865559125203164062432555800405869733552552522839252596380159132404943223379107582077744510659491454102466578544948113734058909323789512683920421149778676602321671603944325134583915195086386600529088339030421967163719448397999114703494228527828221961167841599367619996416680704070089984708968028913736978481034204697673230101982999136823970079395927681866112411292334349169588937236390080830499919967680850088744016787029750573179872324437590389575944823079501711303808173280339324498285145996904408359732032874180321736052066011301228799646678584589233653164475411971050716576103577644507949663528048691348103161102902461579267883034449164351541778470064238715681184779006075462233284254378258809237277866544307888266230018820801404511849002710804898714295637684101505131036659594113767390496273418204200744189041129700984866631811973596203927000328487605024397244904706834713623247819651372281505734999716590174536534220653689336873649554543371691668384369482401665960966557851193380531932833471453549887752492884668144342428388368779245778505099561519511930333397115125714133697972637717885026937687224770975545353559326889039516136440116554050679215256302752084140469519987310221809683938187405701898196667810686520972048634283396233468201561278768331866939014832881714035275902443195107882366637106332379939778121753261751113166365577817206145782163147542274273905437283244216229439402181920870048369726540864920003450659093972482978151058836744440562884124114937960630582535120616484333178021286340525187310497008208307019955412953662549409360079537708141547173713147788051778426806833157821503464596314451286618036697181764777876076902442346526234855439708342572822915399769771534733265032054409671703613251443705615893304244986477327511409464112619849502801257301450147722237590825363305056110427713412420671708415070491155676887190474519297371447810420198160957738734322563014841733942435486237701780858566664002107287822646013628266572276911895595585228578859909826258191482549815964800080322806971460353546652184899083359528949886828125991661302189098055157139799253557314164678958053383230758255669840415577374905614658780332545415391041391043690847201953907156388650491101123908340820629332723305130531692801092097735604943259866144948109943455552711416644162013660695745597044761533381596325943642250861478901920870055001008335534170393055922039016341111895543162034555375661283617694342376293861090224361709583414043571389675728578676604055753559920930718435698114907141153432932986153474826083926501295395855603643029213621526539852684777415386692145343704125248348951078568751528697976647562610054855611040522670741393004835177563655362233756492623622326354920025084961727045351549142462896273662059753710935049747792783418645490173767249395676408992526512935660532104633788731018115076522657998592629541472620278305834793589431449437357244107433109161136430426815665410014621793861996549847043909597894836905980063534339397831839090742586313515312641340311809841429846395844056932245404164326540269407533738278775777976480481407249668289035814747198631640294166745313685607096450023052400629497304744432443149904899775137070099678885696680241734898644366950476570472709021822435973325734411834059083852266240267035791110885557436059747878544548240920536093361525571426880172730598867100871362663995731231341874842234498304158354621102945463466000255259390529246536662187419719717817335697758268224005264410042940905602663298628369237313500657415536590050216875440197592964946328715858623769070482235712353328836111975391373274929296032899803280004162136053447569543275151688612421309244930751768743819978112532784328573278138189601018912258387158895885697749702802153688661111314719931612008121500819904704751966865393277247024644899826273171716842619722356299294536202533749644038085649852221048143864950942566481367132097613049132409127278233196361814104438282431084893886972913395432209448504996343054907542559690074346653299119751138695678895327010792038387429575869083166695904514838314810062741003146554592372613019645709806704109438443038183918078652418536278906168063065382838299958942391277742713788692903916081918237910638470871087286026530543626338264386635822055554850214347238704506346121791975932144622141503576880461329907960785250698378284160930605886576063866647482575675598296101404974249617981752990401633759261877473970915280486320020781659019712263274854734345523908019645273423277650635225935586540023604735493171990189001004544694100904670117539732035629799578341363171082235189505065704909374680926331953338746892888296573056877755729122849320809825006735136491609154585544171662365799839135207623073144161275922195646964909234689330490049219557039405473424776262664766363207149894035411272947470043312145885024020687830387947545960928057746081234922913975014353848767591741682336228950360801539738767127025276173607679446347210774973772464722520761704183934524971009548801736710420345470963905892717705153280120237700082906349330070354878007341356315934594090921570090172581573583805480956333603626710147641921791830372324848751348623554775294778855071479702912897260155277486112853021444883001800792032863098661786891949269803070499315662216140072237600790576603601618453998860336826752079160189523041641892993050578486132070653441124234796714561455300441020954269923678790828795206707479766442494388783306401221855803453254269467032155702760251651030598168993371315540047376622685009578270731740683825484894326379326392860713308390191326414284912049093312010575908892244998874589877560391875578510231623736679597437496406285840125483976835170152420612900212517210569567913654859886525225165255320294192484203567475534856371433969444323938001789197836473175009686828264849170336471313697381564496887888634837834686747861297181843639888577016593334136788898299250130718843145480976474586356620692581379985777503427250390677536676736004217583803834748557724890154089977104479714230841112048237523565309400963935034258904914626420451635413516460314576165866272802802223650784791625382845182744011999269433924157122720518470569684337770304613860072589903840852874162140085940957029867742411711290931869387167396586914686584906776963306258071848773019386087298297753106903265934182549691788445751930816366871719896405894195100371146678352981830968434160713490190830641607862154033103158335458136730349744638829775975940280936172265716696278384270406939993208035176304108412927305623529092375361502927806907118582826987374360449099080218393496609149655710607944347995150709349899273078791815595597510658434636133396138729878970400386416022396800358587341545167968243470923678654097903992400047821997878921414590512184036737939453622409159113431591448142750115771736315919060086516962805762361823274273294734768438891196492502315163622192323040791770243319262138785418292817184811098090567844964873637886021360119918191178002047905174536558051422442312958859963548736512159329621976084544195115034365202690475536702268370701422762279196680160177682883087338773230244327418879587643241070087284381564848579203145617796208087437197177596460252848858971315055565420635889997426692686897094192278241847560372166830213265160822955969460210090428918839599924038001187256626503952554012824936671036195880318537893093584191671816415026493311532467443196032542997431212662758608249299406111959798297528368757710387458921193027151115001024987082632324556915551673534245610796664253092830064041954701710543476753890822769430191471115441189292894113454578560951084096006630770775050988896257350677039238929440005625511746112480065878369578079170725385231854261451537216629491923004357525746887805750146261893340902236440877144303830453496673122966532891025433109304900563817840725584858422360334115186210482842340452113023717318448493199808764741543985036221023873353215747787420563962172707199593668260566338225675230965761909654011052304281748542291253815674336269812185352515188639079760513943205447483780374203918874988454078373763388419183798371149008624236269185953169140289890161770958683521283287172322575329240921068687149507509806613829505425668594056274590003328975563798849261824068917811522028802847685180803456740704630718073332496600961828533207139356280030278405911241040983863502712150939751883355842351407353831044749771396390793456089115877422479339896089588004705784359324608134500598220681929205170716403862950032599529577111641978972517296492761078204409894777883673149162532303492600734919422395069722607803147762210257298349674248403738243612715567164825918266932376868215748936702508360170473928250408686209386115743979904420810161712551221100792571323045646138064605114137652220251126194145846627122674192611796628041260772139195632181863610952068939186000626560382769075905085006583962965039001496087440812098952785438067340215319895739010501557269100225850345673838259787887081561699033965675901055230643297034684512876191800227640981259908841710602066096723997111966921606120204101206371066294854202371663350493393864261450056423707873858537232414534440405996355983763323125873528147773282156553371789868198036994799177118943566006399515072269374456102286327564580476365063887621480464074224134010419519412936383997318699401826462020474852419873596122060851795232058588989321369235347446638693088264707539590794436569766498870893915965130682143493874934478945210932823788304957117248995260565474668999969124884784789962028736257600531226995643710730559007930254092604314127385858867767631853666664278694734703377309794936517537234541412869020277649470445616122496837942694201261670904609926601359877442488244558323384874869329468915510313601296538870628512568125503203173462976203388846794264344892322260137107101191584890237587231747848432154616921029647476326990314542684511926136063403671524120242127117896637806848000298633196599234576286880390802155700931046296466277315388626354731264010026063668191831905752852642832414003141428645133838212886950577339523860325214603302440075818200724735613586068053910586076353493273797221578966134366102670126554426318355346058806160210810055004774773013048280980368829479918654045761919325285447869437699681181620279511702455504918293958627319135198965237971233929077562624575883357319318310504689825489261640075465757897448701297383085042839040143020625259586155422111450441811866809933451849569065971966195689723211967547265045099293315101377882810886479683764267730021472732925127918419382037098810423356651242055493855683826634593602842872305280424370457765805779706821353275499882112158305906147498011196649682084017153274538834692319577357624067400149115308978535465348068628910603974157259472809903375214164097386438449881752150630992759259506193389411977699320270062337561912596400281752634748912818245477526009091769710678920288877455578627843370869715723690692405683154837769962364729270343627987891693164918866714898661133231248075221261122429357577834423727126638603706607003353256641273783267031219957628430561103496173895981842578657807779436367279426712257107737479082188608214388878909195650992224046945304823846991161071533261870897307409219553064661094621832869491416098321525190426377822380179496094872838880905176616787901958693879391888508982781488199919376359700260108647578325311588459717335559257444303112857275745588836634641578354802763614981149253628845120706834384088155805844981856850588733583611161814494067576911299618951483312142357614790082046312579781887926089472597130023746128793490111836984481967064562123414248222630305822011446143733020521159816592461006523535639825784967559552191426612119784002769176347554278200201296827366369361142877815649445749041069160233507308580468817738687197822036954202088602316130817831105487650566625484248455159867094918678458936600614968573127553752718154537282451648894112457368235166627677372843371899267046944807299639582729548754931299928894620766637181110297496553093222773100627032678396893637857388820627832123322904733351596498048924254401297416517538611731958728875809735401963652592651376601254058086222528737953358889854321673772432581872440210513115604039598268509121286261225402534408626850176364997283121154383465499176645765037282799611327642929836461925148139943561534073936583986753984818666940578057024817386555037513550968308601274933577044982093559572086420367278069709462818792028439761788202495026802971752190721159699152926970501009021810902513860428494162666206373069921150279143435136327283897779877236377097932717599676872386097396119383608760661721217812561457774189694375095872517946694630449891631827166718728407546430091944507140275681196640436866968067912195109437260244168689840444748100101669975739265587108871333264685678860411367297387976368765225886890044826813099134180416259641647622645802612325278718340379584601877596760100799586434637968504956936914822062627652352148719682885380421433094222478456774589467257224498847351858490777943253095342388215719124612364168548718694099109749853360708524974736107778971634036375568133582360791267608762457970090887387787713669583996604869997034463520973390325191520507599334195360056284632958977843019579869695558902918992495207829698992475906281720005769560306665001384566702958577401073893452374572587443669396651375586190106294580722843201774085922663777909854246269583435606627030496064223947061367409144146494189168348860733212662374090124948091924444869023502915337219900162102686865976689791004246546773787649311436895100606280600757607843912092442389913118010485807019828798755294845964435234946861622201820771106159489938734113679131783352810200123031414135159422994701295947658735490802942831052207676989435562205341763034085761712063437544712914339716365125838828200824157226254142292917098857065964438547703145946702812212778931784672731204603173755527250901391971973450357370037438856910071378609651920023722624928788479652275175235474191107297034716234458853814134495045604258353177910939226141944746634192390169985456134898465210271327704739340145238141466280864480346414619428179950144555300274420106325060388165685539168718637024421479533771225134670935347194916538896066337746501410423460442774422945678563421853465533369918157155007179344152920504025776594098667838309229280790224023395364817526472806669550804874438146367604005304858449285525839720055643699661932494289704083079701883632904618525633166467848940747909244202523705478257983429006001647213948239181666981862040036401950887942351418691196993127219728901176341666032597724325884089971991885462251487574890024551193188730906970424349135826866221902190502266722734067597811393128175656765955430966935663472723855133916195919325701084171141421528758930618986734542274008939920805533961047249533757798274428957185459386010548553961423519148841349102426145870128958274269522386132619044170566451238365462983334209630211098150329026787849024988168868703601972064646325527924235350193111711492302208872042239174418827409767222086311741644713649439949146192963102716322984043420225515473369739039763330496559537637469568820513275400289880809093082151281734933102286698988696810420522546189921629029503840795650350547493662793523573549044181499987799445112561280065367712615836717498926934129214961864296390174687967221138147972458412484597926952700387542144558473236191005692425912550745884425544070142558497821614652136885904504490437911646790276725029936559614616773123402680669544532996797410438355501335755812232531136565712673333218974153789866151612863857982300749537723557048626912476909231433033401281473491664788498410331757294721713170518804721849208232785470025451042266394144065134174335835077056056522097055728165903534797983109018828191054941390995890070974698877997067273974973291224818222759048700891417143093724873320051818573862293553830212650750369365572710890996634356847366826620513769081831760379163131387370663572447309829436037926896831673773637898598736846917596267100179790624672871810067202958904488242350436237901224913452061368801754401632581679689497718535419963240080433898275502760348365709174925527779816965216778598465556989029279544053934537554101991213544601331763112359729169670919130878051020618817381719665307976714232988540408174882657029015686619335640363588240876169525250382211740829404499342153400665051639247511532956600686874045145501139190291860266954434671419162413154102424162068892447011551707809475200797488936238961339409704095256853006742564268149034552422577962543825540340973458187132766017122199266055478814891854092287471838734996144635686855918386089438473212196514185361852854211126123535765456964039966255616456964533961668278871361150534455665709825823627230619453761588750723821383296824124528961481836909742093577061018457133792791065718678465354385678255904097060565737820707315728170492732321166549254998669435315964147173046942010938059416917684682838348041578056625409440860012749975733479516821970375067268063014344103760363533287819166223186011910043750793457471708422600799403200720765058104164203496053627741186820213152471755294162592473877377798711841955212657772849719986285299315489937833318821851783565421715196797770302772040648303855739698223844703629577201617938822268901809686557342173934162108888186045118630028908416238306312517291319015865117725209580123575695771963031957885406445064435324109781012946684089719586203837910133773902022918097544350523829028511747719130882145809270819599612935119632240650950159911431770329181255795448011623552206581429900922032489731827078352752108355103007959132603279126482510100751198577566859798731192495681763954096696155600149688459033952568335716854355422857972995862723500313355610485260866257509440795794211696329418870509373667065732867705178578654068228657925807298018912139267937732780079342410913088215449776972483165600535525156631090794678705135566896291035629479637589436632238569901885989616471621342702293055370303753096332107767097735248206224554806019199085367311559191030015596870133973387633690623632466480895720456464053673411643119177398533635599472195845217609594412553340541508067646339301375485606017160360882209727291460582279636234206484292546249908698440731497075726895667907568650799242306031166960466808760671275672676558708333041674486411645578524167155660072772412564388812786525631010792987580492794493939302985073381113205431565719998209339391709630588210328442169352584089624108356977121133747033601921523110974046475474073409270097252988950061511270812678140229379997598802880416087953979328442067634339685434031229429177694846138606385967455811675082607154080981183856375220937487686781582167287491889533129037356413398662393843374715751006578812946675146550750589128844467793039690467460845699265808232813468513043609698629762033929781372332971552978514328887778278063294349748530457371766765966978256981996860973701609788695884189531113385605655341141844488238041637799858802035573971119333174407639188782087569685398910864823556118437554993578116410558846641592077367640795338537467137960862373061326654334054797013184713283522767695319979591709866563401474015465629211059200159968437129289320621140138605079275920920510343572736137372316470680324870729678925082107209733849336892706263461480253276631818726052737268980752538795031005778327083492676933420714205693803937343541940412475737823160988904073939330639823931658881463706144580827828380664511639711807974626561156467233730437399764603447751873639786579783021061414811420742167345101658783956185953734452775850190877696171691293589906070060736320393708970172821706400449441600331716536482096467857341927642182178139540125945726737059947740689905164329666644786579545536205942876992498939993641768043763028323882762066455706874892768902531785758701471761594220060789113041183746838210607566361601570529897025124808919936106390556356944569118271246136176796595555528167444913104976702076303853964971869407400727274322333124170375471784665782920668327328265058672564863022766817245975215989656893775512361137448475255797486198829491282215609270556452528233751783653904506588045409252283218959241594106978688948748405078366021393656089554383714715627362704589242482339539457309458032025133112935568158041916442701911997334381299810622479091320386445749872881358853477153653511577625144983066531579275667536928030382124067551261224045255912756974307874321610614127604247905746785405571728981298783972183195989377022793673278282093920324520549264817458437988310943616446580462386268360393802736729434992995397911265188149243141380407424775963218317176780883295853190944867780914356693249995227028647427211884412054141480348261007168054760740177086199350450791075028007998048454321189613567751276823346113377342186543345171599206421302581745816143637681019696334497387730765262509197538474301000457320100389976337269963622650305420495048147293660620487728750910905553902671474267344523270581863464246985717308647059178933408946483602646874922090186122670067895734899848452816496932548822459265781550508792639948364300798222889108071960733425276068330172377824560524846650928509697690539959783541695590991487245315314180074788686079941079936813815490477359692993474299650505272576442622676661619507079469190331102702086445580859832366151450277451882728909109593037567226107620403976616488942527371827928649240820066493558262152818409678188641416600302060101171690472797334912335283603712048091873244190166051325504505269313507294146385639518840939586605883972401834118828765878013154297608755164547798391951081838869512113502484104854433534390192998175328918977337740540511890731105139719477316895875688350199603463817089609731337033740329226069890990913430160823510616835814616322109115716822401469440018375460840038897053706045865274221640665523570583855166793564273086284068626698324546384049089577815080097028564554969696481693252226967686410974204367681925452941926840635990745080477607991054102364126411446533660571690214374948284009756348433147271638440708043963445135676373154393093031433615486086975389101647526368134646521765181787418911661913471816424099805224178480082716467161210008835914942293971831461316612122053924396532045171715449205450080545550480241751441282758039613085792334534402410125819350560723465943698153678863719332330873347231059341993930134918988505212602875136296082743148529970488529638781369807824309335671617064686432871339434680131269955529249406423597038085834294255766892062014348188175160928723241107988537796784871366540268312368572158088763596442257881372589917889733191387745184045670420466259523100882064498642114794770269259176313542831213720564540374592029380617850187966672825794839317415391714436676970488164935485853235441874446460604475523231732780743346055083222564286619302258954142160071824410553345789540780814425893678808528379809074672077224909376538242182957440408035282673118248398099091935383761510917417483603264111741337878033329715403349006439248362982573234704117620967487021491255481986719322931496324890819683254257649461844403444421798529720760834824339756970929181752186492588049866666468720695993016080064201368730950639164292943848425973702971270855620820575225688075734892490152744403508524547208320902888137807865012617714893945999993173365677267965849472800187405423597572409044316018550680258119541772518820180696453085484041471911697241955712482667658614607366268594638929631390869491022352785544279659555926262711332330944212356585156316272879184535209040279395564838643305269473371056530731337510655360189759977584332377364451872094694297057405667508165872843288968471279138840902273300449355576854418339139100916607367479481217182415216314712998314280983226622450292399721082972899171561178709699419163939868252866257378528905002380229923472889563168329086303283384615456034032855422503405559333272806628425673030996372973565330630695622872821159275414708252626125552851772862797748767470114110202984219603243847131781501258733655435838716274029669471155278931008900080136300894893090455704307092019024496220067053034371412508322005562145290771363309048066801115741457441750355887221820097935746030345739884106379382815468609408628561565837017858246998270262674386619093442910357874451735166464948421430404981763947243932096932363579494871977891399886710530818360164833534495811495576520853957944823651408805039519558863460897604700758107582867069533837899126589920580283226601536909170003070265892853029295579095527096000451613439013695073834500099808331042749712518483212876010469942692490129356399998270913680542896502917546595162439787282838030769251311715530661554017809348050716386706576640288501281033704702879758625656771685771022547599529910926397492641677702322898491275920710448705022583005759110317251164456320042695197177707803135215188435949572304467703264720828068502519017470184131934709810665700500187767817590214207495789907641895785608521889447262539932787235565910217476085911623658170564325839375018412107926657471079389148000084315428056122162232582117851018662655245714498682939269722433324907515768849977874581719283899068185564212852526547534921008286669698837574242805656666383342953411748531607002421670649204199557428378057113615547270046789011724757408521622795318544405896247985476030430227353629941360516071351839941938417714237435036125079230984356881224633212390840395161048655466370315352797326937191732585065081902329004540254225394123087682302403474775773023340376208545325592157408480477521404552007536535134206661999365645145910269933288443086764911739075743225394981155575150221689733080013044202009229118983990242357334788067313088433263868560208710066103057605932020882677171001514464401813778631969997646670436702676134593106417046809604670136801497789699050991210992386870453735463982065784419922417803766748105915747113921408839403770932079907443138123081566621320233846355485264360979587952107522968828840922654062956736383238126276491020087162010134369447076148515961579426701445524662414063140183765018116536510158210508786423108706081604889885422067370607345208874310097597887327741803356719044088976359387164393061469480129634828428064314623603234990701861222561181951767049062500289578701375888091802563715469708478331996944120243459408096531044370462563141720765651363583651499184846788215766367188724583853706945125821182390223573739578211483932250827530043625401893887433447933208652877097624662403051849471264796355501572842239486635104802096246777702767577880820190258416718553298131311775714260207057654066233379033956249458869392440293157044810301031043349809972716749258316164619495654979334749626589554282455012100444978036496457333106678116318857677100940558588260689463191080050280637396579573698153401055213827239633887427760596931089829514291714025685010015109193702363981184968467436197305733852481470658097620048396554454495939823770404672578803908812731739614524724978235797059841016371019222850526606282956438873207286765129691577779042319781098423112000961819436572554799129247920236504614680683459714674115728654957606357561762644528296713058112746077886553791898277510978260855387126864456259793657270804091499386412032858869018368032884913658273214310830588492183133355018039326330271584944707610972602451398984583087468899408953004092434511377377769904304246713527982612112337979084132943147276960724817905045889540227725434366879132377080399396133961329814681094886732954559621504019256651118428861497301413001483528939928990114633323548617340421336703836184792943490101978497620668394658817497367643727928296154285674260915817438360648727796996497834180761551082315205326738834598314424460156571416420225496859527584184416162995858622723052077690403217353274830743813464941123807467748562541367862556199002591478106965064942616438350835114895395577923530736519310801226846118419333613166660160271051410191550344166968282737331689178590441946207437520701299099889739363925742970688669682739850716499799534846844569485330510373387917320622064999455810071474464059653985337855408777502433707650167168851198684720343570992549478476633958937584052247769825429356375279568879538025379601919890961657689223452871572345671302142451456840310938720625744922389416907655707229889325931406970198810974445570923903381033826386475450087680856808675739353273906637172968343650165406058247644646458637609494013978584116749729294761812371458664554179725204412707455457748858939448245665981703898489138883847514617891197838454516618900120653151664139797082247824651390085543746191195649092720270298321591135156293056144830071671243731711936305848888395694655908860958346400311953749955307644419797115798955467756636013232269687945994281891046248086193870106912179776853643033973600666437075220767179350509417820521126864185987733354637146249379570627088943049396418907114891575031398409791863012550779193279055785807915414459227754588664579339904281742960231771486409206643694900030692704116025143429098515084563267074497042382509038733916731439063031051725349593038269420327794409955528570771261436409822197507814705282443866058660415571751198300071257849897377658026703521544287108998295622149181173249052951691062911236176470368172953981886006459885867274960177683510208678764580675046338582014181715291068391326764754464562505103148021388662726416251366110569324147699671955601953647798191857775283403389819343488832841136716894482036638475348776731344832108042088598340363719300771247695542072971125921821710642227633467295917212397338567710131065542650448459092477526975667139819371085393179734260877703708086901364752916982358278627740311864723585337885764829903024892547069558716822768364804519793666677015387804360606468841571655278277402092263014264618119603874724738189136289570727120867484613378548891136482358549637452217224597820757597984432803914735843059467949564242485166669917686561083248993698083362454645836851286797232303380995353754027597514708917103547999729015171698982141028673037253345894915007324946256654851594366935951875059569932425108330636581435296645270025163137718820474692177538234683947203852059670070824358060637749309043822132409168813225342621387042167930844980201095498919230461870296713962391767416368361025483416108830600872178859278472685298221506104756681847922135519510683627546915478770776584626163024767680372201393677765429068434858607891661139710753408048389865815093128265791534577809134621151460645925356897192124073482863399361455285848905529916277085415402851913884499350304567100460595678744754634387563826364740064716995873276306805010467891581869814843007550759914433812999647454220579170659672795250766949686728245437474986341869046953270199966037640295736778426171925364320010769192086967747280259721439766407323802547176213941138302470268768256073087594153174152957357552325282034347586884869648411443834978366707802924571798532903951135904031345724975832595954256882652208240781466955461364840604848621831458211082360978923039318957698442909057369824204512906336225917713040782108957514114714073703918789602538679375901786137169702830156515257475374667792914440371206914460676446962044377380995911583676080105966400738999879123670058773474878735900736595967357170717789756106731947073036736892817439456018580607683462201583542255039777817396416869702580627307602325297403909856387082995703343977110581434332799338706393240591503125781314029152960762575296138779199097374778371315950146140214995005991321031857079139195426113373096490132784572330025339617736391458451426120792515242756110999768793377787928595082343236030177389887732558991883430553182510581332475368954769916674266996316801776190031825264008441585899234926816519570765223048895938118554099391956612778449105628712137119506063468791870672996697215222699021464791667113966096517795939746135816995455080210005812978642752933299171993874520983181350137684601329349144398114939496597332700053754762993668430235289023425338010193294844757753517341563221759912799741477813555723797940023603740042762283576585007366010527014605785850260171920430121943943837149942065739515006149439079464005232136629234290037274124450895161568159211714026505540254505381816685245936592741133256122419008078664085148255929472194690118880915153552574183022606094658651136600477474181944526917761515381312632235459984717143740398322661439367672934539574887855519306278563312687261032114115199947446937989228873433130096324492696126970516589615757712363799261823715358887305781639602909401565078064224878107645099517290741170378373437461658428740030338954808835505423647264601730777398237190763642763376026068398510688308906657317648024203299225830306326687960187043035353445090915047307619043680792174933807634977720189183747113535291499116894563011051307275914449894445444042310025427008062636784449353736551261087908451514008025760068862673870683511465649227863298572029371324923133180204833629009357378333647390533029734349996835124241479280716109780224172821070344938327343486788344179491503258784242765233679705478201015526429489939954929970702634175406833778257465648189604847908843566377047308035347684578848373452538338925932545856633103744558284804022720893125407858219411724617276077894053813680657264847646579663695978847380271367396909681165196903435936222245947557227115549392482373406295866225337428535419267632188323661372775516333831333235808658886318221037300321093754168614012661257223456732114941851726474460684998782162272229044827767447101256113812965903853974604417623322244542269407409891706554492796581523515055303509450415178181043011991236634498613163789604328278686081104352762323897426634828860678697198839390160801551019313633229756019064069058245885532539946515500823548011765035919557778100585725306436752622094439704989723457642585815119519410845827632271383867578543046061895491787409925586427927280196088383529461084630192351633699207349500218297472648294518361189028232366311581637729984475278675292470007427339258239553702723452117753965459930059941861724515866580143824134350089267791374814772150215095536811131426013489789578395084594092380217835653653449637926530147234420061161917718335531535315262543954872908614629365810091178111347986050532960715672144241621115428531305267076354807958968193892689253205325280895187892772830364946498889266470704655515371614431843882540553085143058741683676989908823850957908410357961633333625256245960386806587276516984720319648489486269532515100699927693677485446733468699534837274365235844184490917773568563551001796484843873181320546265161300097614432354844282655636908143882732039635274016680533622753213144972672934910000477668704028010300959742878796526963025385082602707472811802760440698491580988386585101995989116728021601093400648954060644723121124989403613404831792365800130987964716121383470545864159517595055991681457002648108050447927992990515223211993415313438343436546048190343156896800075469880172760307698679249422503162640682911078435148124753141410105094004362130293031725634730345164700111320797690588931963709732308355702758188052783863139029349159829633217932352358206974294874363686185149850523104803778953324177921449697368804663823740085998628564855755463904636165091442118661406609935068926402948515598591892023326299440241686362720903863836004916737866394952119750995092308540778593647504080618094156678323684973543984857142416118281621519161012252756365046026330388142354090116608705438548814069213760113555756779555521146447863365749653108134878726920078074776718680281365850785192366150079062509864997446443520794282533465950701521019833813082147327770076597699513455158574996651223051834489481950884843397153421300669486245545200876412661923968338724436759921931235408375833359025792994986856156976031310422164771677658909171210941992973266999241664880468786787116989656114504368150353078524940087821094389765900321890760342220300074528889999901675224968411499385045555904469474704331073199042992840140799178319212673337031574764574060842880650856297210262902805454076863598591208276712809666446691262555472277437690616816705886057367872488734931639302172192183808323752596291653806848448150142414952505091862073673779244271047361354205865771506895342077817014828943460001097065339892705372626916018194693402889329390566327658726152677448381429987998503851120754831725372740127799477906686786624322750166114232672022404746606073886941787407715189855327324355736900783971279569506879913204870483868573916119616843760157485785577755481849647327077577878405064907145510992345362662451730940345666495901907099758573828439373632127237389153203124215435738461089993329241977932459607084762352525313727038786091378485482316035308011550667120128504708987598081959831863995165518282972052188129165033782650287705161581746816072530562732122040638971258120879904190486945238224345392125088878650248250544649452838328255855273949177382542736632901899671520745315648827747228498021291287916760375808079879203615188730599510138823919997878168869871976096506468017587902108822005591651372605635410771090175350470030513694887524988811243791948834430799948268384492103613858766627440808354324303341189734547310660045141149242593073129258752964952019475182645228923070827422356642367826400752835293858088616206512680694112503510406217056640465911137676975253771075374514273673995928048275856542203051413163274158095726103576667152971009166402219248714837762821529128971571477248505469716757893894039285468533616879627434777409172161279731406535551596288354033682811050948192699836563849427239882607116280897883644854204197599233685804557397467315072731792471185423345226616080024870375292811463445356163138351184104681101477050689201774952231388614094989089217293446666037098271061083376214982604280590286442321334563146491549162873963654599404667042732819856882855916782101444730088275878815833123111064468148159399163599949573245121830578696946336452058102778686539893696301743307278521147234922438101170447646107486440930296088065520165702973965934192280132954602648594799185766142722410043049050002982389840030096660025228027031275822875967298733744115380259414255286215840150784065274656680213711195811402952534655785178184291553655106695651458443526352590486470462042893511218246500233262971987708739027791941445432738352204431759436546606904944066048691715345766459579027687319964052066277335104535380619668715146711696641905209343432109591612770589540873058634541421243005137658111692292203281379066790586313911660354224905901537004506755709948558140893647660865266684194968998893686693600221826441780118229275758938959604388478900378972361644337786892402564061506781907144402936210675514737980364697793645708914785760675511052603801121914041186762145790881558694968944403849095708860394952848999454603396465561901623287695684255645651800109152540978327359510204959655728457812828834673865690111960976475765670806291671703192399668342705781597650128355359392565551101058859015979341191545956103250300415630910731555311292723435208578514020366403581224181464217520554119229537108523471380519621013728116028039527250944919744423890594312577830020571381893787982269815665069866580952722914865449861097947171608378789517532195956456504430767085040008593648552180394573287591993832168509947572867983169572749558809471688446893281151366334589257220006229379982882256921753536200691556612428825806769151441636199660402699666296656675479657340144655133299976712458789695543162494818771875888842438060581804697406650033692585118690351307257191211008101528780386088318129347511272294157079817478976601472247356765943767004808739691888758176546961287389024820922470183507526939351925163529246647933813952190585614714777750066730413344928836284799022018385053481637555601975733272499501917538476692329516302949464494174027191526802065122872859509106799206410642002608439094024429306874348833419567177370001483468919311547142531617160943531384267395655040201750695321604777253704727601777698130122607009658224527315641678273976581167826613999609205623006454940414817907141297877913119600775066171715048181069866201910179196290112211963783056553426217251623396846011608520960515014796326028144780452260478964057201696043926606739852177444135073002595349439260989974041362043179380389877291785578052580237438276202276789212150096152644476462892927655882666896937301155153907521222113115161816951994849774067797621553375322138310652820754631003262669744626212347391362107293196791459393283563000129396995634785998924011704034484741246073829284913618073482331649550773538894585662070984741937662269360606994905028591985139469191394363081481980609082648379721569473343770716151829714282184811433408366102033268207206837722220848698558584092850148917866529684725172108373447556425543785681535623438214001063394352693167409781222626812455694935543964798920784146645400713743874828526781873864083292508764120790618588084702258111453264567937083469082352488545397500190910955708735625046284786794254424473707678007949413590845592133944874035828499929185708935540367627035433775360832422735882006972937374601701396624901894268698917603934510941682777262349322863005084400793992928433815677553211327902129412569931701737571486909313196706224208237966007718347527292415338578279185116201442545431502721871797376593032699256938546771488737434522369818332908383576783782166127014785461896042433903942422903720638023307421733431398377697728794939921490007206016547997277554482310982365563036643736479372526724443680247997061826030683975081110785582138113954481110947928602601428448575506639466716490177073209901784774524446457375994730712043342264451058132409751786571078167516090628649780572406362129533036946031056118234975166577779474901211840750216687882986962103433421586886261861627967935404921352228636683117535760058742241295973439655340194730126314004727665212638234365762263955879620149594363677647328280934649790927431589566207732184451327789045045062695082570518052552851939132256177656139620386814817222369154804921948277307100851470778755169143061808495472427552109408064600927723852738333282453121114423087405996968231849433603745405261615535679068429249890736279633692706579903724733255883787794173816714556823929937827065849500949439405335571974987777130508657618622192034523064510926857105860591943564991065463814679355791190732661519574993152692349403517936249329975342541589041256831451898099004196874147591295626356504895068930167293757945531821529947076084325991668340404311183149779934427999794309666810029500614085489246621634350794754732104953831802827949305155935063170180864795077654796295073861884728933181116338360751174343962765434860143530353405803388126035064064374898395257249288638773757661375622748253263689205956497589430884089839522772476423694388511437773946517929719004066320377855747309805775591527116100153309774624977797236276641218975897257843537994115066121703070849286845370518860455877138384319361076927916242023563297425019307763535434118116049992736158900609658477532649276191955067237935108295030297330948468333315888589957991425485628099522717298847766939054096328134979123194020180162546607566676352363331348743599255949668342433806966210957324331192039953216067917174690082572150099759478808367571870443055161299453532454426880677988854074928630215364309192168854492102977024024479666802886872695353238656565270566540128535460703982172966065747746314072259271692269413390466439442611707186027727209271928723788173046217772743281054481496367516254533813973581821692027665942082516391059579788687983463412118569348281308080417478125746584451525199645317460486414584018428864826322341319709985035357647604554442037825474719052415220976847795025836876407556970161010511593596486466088967025733726745733119669753745241867481460533805825398261201182952010083651577046529971233207283361058847185599038616424440511444000822826361844871783098956973469217650242876733802774280367332918672602259792506750197860024474215631815943718758985355077045030561974873704639639586948207933397837952901224966902364474368998685952520730315946842259011351625274361922123478397381220876487743401168802532349211947565087178892956454363620897264954114882906953847705004998897345365904454665907856351703446251004844395574930426240372439104156443788475909773819631241963691764633446025727562874478799037603351347942858124999134056981739561466951875334959741081868311951434910986279085886836639594000865845577419739462706155016617568682211975167494912263826951366557538692991603678106577730092361500454366222251269176707918983904644123028627686584624966094096276213709098675093482425273270425939531735705452864384639275686688308739716193337520900750047298653214896259017106608170220895993402503654843946112938978006679351081880488931630701879827442969736791921905511931982710365104469912712634898048331289881600455723602592248073936936337446193414996250920801418322449389067867163539999053141995376529656761344486448942891954098493833391551022502658105649085897260565503674331993714429011909611850892682136572372646142922508293297520303996421911755715810360072828888897029667365006063700462818730841169231579591993626799552915043737597903231294401649977726264496043455779566054147757806750637910289864795601083666936975966932959568673968308600123359850976063034574646447498287968708228215411605285238719504573998433770650281041583263572955807828496164822184533761062029902905236947388260722563701568898432962298212674705673220544033404784879282940114594063781397387668108034857025282690596701005697373881765358369878601054793680674599955164754639109749328333860715974680552072364461930937828041434577712002313058982045770687338691786225236359140643943036443913445958909074520811153147603348570932114805560953487120076444716779851892791092166809811756563470064216061556992925761016744674619779306016958173147887675334844375016303088081421564920272051036360364710978091070679580045563725683943686252290979837788054422753757530697552656054508385434641704152135826424653360504287976917677158565151335521214824003887923045286419406117387151495708533399042818013129623400538050305425433937314976267774394335204930681114311252290860583698803145472307562541639028873004825331705785418477826342151043452959625517551453595430595225472921060542577167671851364602831500112718742577366915502978900968238404681661013483663451971488978207979188088311132547627015959436881234292369592698271572893979701914878060303923790016192041418953484312791828727784009154596523312111227744600654516575670212501415049378658688087502733491561317891634899763879355431189514756685515703451963784256434881952061503548697586610481535877361730014164653450167896073683682881005074896090833857149258703959742432254052306822009101470944489130748433111052531224566649146111871952588655932527670020498336389256899468157459250660836718954323946131246003630279349451991432871824473405398745945284398292629785385614932782497006326419082462280753584519235759266795212938377669410400756119919949462395057076395513059181137953941586579194975353950349769014174502107242456124898430394189709414446726892105467951351983957870034297142634775214547698429288380932336920969464866961124721874977155189195402864940973822425833324744424371981430637112137608165110887783684937209785431395287932348893408446765079235466548130418566940614760892891490633892150252183179534811293735017058827001270371823442249053494152537463389302432089628669173145869702279657562843215733877230253451804808685743180684488418021249080716936061004758473999126327175388693814945219734954235649155182154819119376675513852390994954782274597315725285954180320518931928760977595311003575285934705764205697939282142888300161524397877095063268964159293973514810589750118942567696504467853900251883169728997770274230612907326817956348923187717268920307550808740457682134175984117820394699662185806791968817640352487312442143651718928080762808506306625006351976844565950657256677130834956028329866635707598980179858238292666726525500654331125179503387223801050736622341129760036786472248242000362883060274050456129642163862511013844451752143298246629667255500188952762332503309263300793566810173173597853228208794145757371264941306455507264582106247006973368933402187374384439475958400930673105298185337784303217246552230163532488979922658451336043545654824833288308823323775441430894345483443206709069273152971075545537970190558117901069431291668763903734270465113494584867314215468796628031400266022120883974826425462506099630736577638715951585396135137343672393977470250289643803295366714427400605132883439004813557587664842547641933119983128309682134840964934905911672815386578961533364575257005697399955937066254886440522639880908511784369864902163998544094637221294859269013872560706806943004051529691166371755707793285952825757340762699250667583237003990574883641304039043566178954932575822627006406095492312468413671056336142153830956487726167729538313896419919150439876717969025278241555638338464094169578022417847065979845498606993394495616107418454270587803790164148260168565195290057073450107504189706750226948145343920804275658075027800117264893950435486474384675374736195879786741912552593848587083829208378553980793536163227622353197666102580155493818827983465107096488589361304880245289483334056655606376485159307294110370600921038948646794611380212496032559681958934808260751743405548109349759895273174378088737428899800880504529299532028379541033387810460505882751021680984359639043926705760270764496227658809197103282545144151750721186141896691556681275527484320789638044525505840660015691007204818009994475880487225806259362791210140592347559996691508435241272019804985794283018394099940834610972260090467991922059649221502306260510478761930921027620432706011754163226517311667250056919228868224240507156789078840688969106100022673227665517113788261318517735368027390465384606177041487774523831525389720849688855095904031686262989028028887266452608231053437817318439734903557049362296166940539046067657839988281875994447714832726249306028788914319726074024885387615478297374675491977082770552328134162350595029243564333868592637538558991549192306666782171033767259486076111239208994200385522562650215894100218725604526720237817628500488342113417920051445059056979471013458773170416283923225853862384620380599076368736940997854757479762760374518269602597553192230869952978797684845823244181346359593017637999378980288555955418688868024880635426620367431513892121909844820918121788985082609722531063843796549748733900496459604289506111471987613131715592342705241327008524818357160556679050682292555589392147444470114626998989282555838640811269429553337334388197175107876345344570309391546975926307063950763300097341221787933595568105333973350373697127862905738148963281693668766791987312398236298088783683909899887855513304757279330403748357815522737992276395759343691450464035407903028367247085429688208998057706929260788138093832165760229438765649657522751298977545148644058697803384831736803119688969736567463478008600121369562698793588805467880532802552797326425930446421497709889903033415900458312998769443396055090757916951471857432395692715429363501115826948016233660818191816666720310197973955516790391339862167344536904880320437089073696997636917124414682823383975810980673332781580683370040364421465125340592881633263120017609615347183804605145671186378722974010536062716096133884850154755003197914764379296623684092322229861486860139052776507735468066634004392047830947154036825334747114144913298425405262962294874005083452843498981939925081699385946844372292260630260725594937185800523708641817716638565352680903217507329961746146840731565814474611439428047091276216681494658332529164783523795694106984076331040591558193631050689220346126808748760535734009937258379344537235088539320706130475943694983622089951619469688401191245971694563013097276841316423688146051896877291970626280526404712858236330522775377159975833408253716299824313746567009197391865195849930827662374610831355804736829155788003183624897194107289179134067210846096405338898937272093492656035973151089419823592078768082701416734953679020701318122987680771021795614679255291828596800665152398350625348105947050130337149761631111199878151510655026161769557285376636880662785737456105430883761844158617008047232694731206642036286611510711377282295828054055021325530497832314161967022570906218806644481514533347525668572362994053173364636711789436346378179622776945607635249191419698168290012900295512964036166450003383928671819230370689264748335383131895001093815607674184853604944961076909882713939782888119058974710043099382885707067024911990545547101138651819739146339227252484769935625281890945318015126387825420182869171754539828036293027051922247501843178032618324020755291919033334070095412487885004104135572079349771947578437683882116679095296508505308112916238147584717208923520661554914932803793286727604979364546436135742760632461249072188665561009693815171326694025253835517692842730870437131476658775254690459018880573906138740373467862432525259082113394928628769642070387017483574651361682629780414654729140825648612320200429918005736513708522359784650367110779686428248877701660509192468823791355317753693217920316161031607089455468642796492194227533346764532317111146911020903364916914827455805713287560325682114038743219112143818560819267604005847809277571621827185263460659972880715632770990214710103278697715003977940294794856271571181487332841551447692182186435423058816471123790133524457421358724879837511992798721863959300761181997807477214090145966197479264100950977905257779589767133115501327002821892190414440679940957339047941459069616059590174261933766926983483876937126527482449069518859765943614597853588559144180278773440459641482725612331420677511094248610424319439258935717408973929072397341630329490591674483839110583605277309180977475474977251098282700125668059538441536573155668759250496968170997194763796995224132554249746139591720527196003425823521514911220666465701262210292162055969140346183532532453329554737319103875448340516740784137983868426839210592453261043207324602378272642212767386691822005327077493217726971130312686276394385492795631579490131659251101600411463661105141171975325075216802630180391972419360970655631128188437647945580582608705998222951268142642286721092037386842613848140742214582601556306203876397887299139366131508433937727618139624200274641973915213241889608359946193704522623277837803093678562557852612304020235436232823657814041362827108086713049457004435751675232741927770101078773610092634038997445501049788358590958543344639958944803836546655302781768473670947347564666947164490683742224887377889970307756455836208646223919128720150442518918297771278210243993020775394263200948594472708028716836932877037601213804707156962069392788156732230571077113775423292592174099929849549518632161003932395809903694061393309270049640281955345343576916495852311469767564644435109038261549823571763995202416540886645152576640979734253933692060724170112094830953702269175858609721259447476944390492358568680189514217004038213171204430645637950950919035402747086341312551977425081550735224604419820528492258641137984821785798267856961528043857147955261606733212724109687145533072305003177903025036211115351018514290007768963348156168442146003548123713303440760467537260910109060608526192536203446771516865494485370762082292590949577945439844326413151811297187949644675809707356955874201806592815587597823825250873595376332414271290965641243393047163051890622287096355511950282170632234216317303288717557503590349315215443197604040436419857916408067697571925804690533718422560418537641068526141216732743875115841770158971441795471439509336468617359250590204113554625991125328257900832884590557792684025898861257228006797726276491653871813899011775415494731297973734468950087516640119016475189357240858158833685855490930471179306848781600214127103829808549874342685352477450838842703508771363207696405683776344580025381544419992605837179450760198474314723221952361972122474539797345052410271211863248698403772373232278971602446104833699201435947713257244466144857390573195178883246711299696275726637592635551875844975595386915957127821528019391645143620411174312906333210044748894419548847413026369122058440714801688456291480217366514733369033459687230342198976356670166525365277010401484704791849806484043300751946928877862854568374654332321969867751919047504564764112780941037674992133163310002364628686036951743898162485746347004861361900241775089495235280703008751358648402262260738879340939400878681634768170583401080678002833946120247524192489352790697095767420202317656640275748706008048661516529369661433975106198572934159389914901887741179068881209303750045869243339834934097873023111054663133011021023740362323831913443532586080713344104976707648408534152658002994387934644279393771597923462744987906128040429742658421701202988158072399470326890704876412535027865195402353059594066071959658721529727439203913336308342004793079885191359633115087499966389520671404964153448823555145709624422585661688280502745569112521245197573910813348152361855682438192155651203892085391732657862766803138663709390970573271602784343170666880708705423304330015091922820048387703251708295679242164714775369365230301583185184618602963648475530728156180597163252706764402920509867720012419469761193030941804808040387760755597374111246112774816589113334980980467245888720241072101726929668862114524640668871245307294827908723648130762904759917540621590254684210540392552173841957980999755233950275372280822440503291171846966027856600262680608895004107986631849751847081948522506377497707645465107333039851836383871776922420039375962937050326948944420577492285071600215509232351859871915992267877209632051573229953775195225227129383776763157253648691917039369203945414198821597392022576957536556513331050389394962099004838527549761508641610175417982413143876350786889108727937296053005227080533773788730195162241000783535457381329025497443659089174853163866049455884921100682369262448027336397103571607822578208213574476506297038075103610695471250470197879519098589927028908334590365703430704374867036436395789880556927491449780177025588083027066444448260817032111075746088380649683661755337079354757086803277371555217480943663987537139261949796234521423958112937344931538154863473725492714356725809116354730438162340239023464480664546718367363076841379021790296281921248046179586119046544910547454415119804572742175839724879568947780544867444087118526442907365882017066697135053148901975186672293692503814591694574454520647988662471838745516255847547833741101326283230341149803811574139121227688952220675635099696761650361085185930613257581738867956772838484802087416858412534710233769688501658643592366137960195769150734517174553995434931146653174856570916928241217837104791916034974307465846948481061709409799047620209868715471601827224608663597117467444040037923712783412406430383765935906329952337658132665238134065159484370317680598949092777305750146596753990833583160369843629073086201480197668138021042224979065952855191888407813659904940481081680351215287831867217994503323552338752775878106126669087380979889518507006162623811578689779105062502019289375481161425104208045770051848832579315659800536317691791662069921214165876270750863802888450623590712285181937475181821652986803458282827803978838166080405551581619015921041857166474849645792857232996949137630915323973259720597023999065401991709709988398089848062422000681828343320583126088139112826891058326879605892028719909492852429691613459302273842184338613486517541212664690095594734109905594403073218055682940340626515804588757441361206298977687450109196296132537729508636890929060296506523836287269124021931810699692390948386548556274814570988364457280159170889753389361325802355920343879898020148785952341586777069249259742470060350209439888124044457168195818705861157028797273343693283733829827165375578062985249216898341945400841656805769138449935397640604944690833336644055782025618583344340248865655093076694725886699228059493848135700740429463707232543342572438301556894410748587247849062997783558880913873520182215714351500473748259842464926884937000661142912616738029050035114581808308131066906280650779338870841596921825822978237309256684550379702716488131754364834635972777068265740374912356516454708969154727192791981915836725068606963134574141283522530919232269352928816871857892013331124263354696878147849362096901170914904527853376167422704381369088577986537047461282037637986125354028855776039074004447617131118104994429375977159151815313137237603607947442397715929699270242818400174696307614432600827329427098204135259478969086230483023427912919321575250961930614409772324561875663702185374790974652869766366169923243206765819880238771560663806721887996164594588046494886501952347436092171483023740255362551928536898732880417740489503488064103482778308227408667181279798660874068612646507726362925923412425248454496218726158659062308910052182074936817696319380419717109296303321258363824492012296175043303585661403787020769042307993560886653364298327135409601501889177752253772130424722385304309641217510973619697830429828837775065632163264871617518046161012429182795673012854829503229668763332486607610241941970415152132543123611844520056576666478494157640286261496968442848572694308716100171459682947594322805780905680771124734507204954116480771131370911746849684452566376264619535468108273669784350386951857142829551589287293218369239284124057435580107682142727537649780721383048424734847516031903012276780250452540123217715502189041143551936631948010366577745979092445590651280871791322277745636692212694428047236920690828700070361952505319152441959552797342725267612270680419102675594650317639904561745757566881123165597007957055012324690986446880518008542475586400452014569548090997398063065370743689457934898218774516494449732764470571989743166981161120580028115557257679558878197685169307565637545546972628043712166021992940734785439957111568441096099363213790224151075005399787420492166586406382940849803909475020495771597119739267168167912165996841515970460224782064650561198920807817577206903766639734969437884649828211697135947754849876926037156778334305178569021837161106647137292122030392274987161074517090231983377180600365845860089869270823484855958560239769892227905114228957060943243929513037699821928007362380398469600639181345801488191113872043965840411541322456104036783395529434429982819149675784158653159024572507727265804760279389412272564768674437589614389454417549332884958108619943220403210489887882006145336189428517730613237931739431955735505046506548277103045281444642359235830618636019838973280446771028738934960532179757153349367389467107733983732084412115419082049272878272545874714147270296173657857750162380309127116900122868798753265266251131098553368334015657206497198334990299709173799076531811728264778723149468160803190755370866312034239296191604102272295428686569366253754341354110715602484371050730415835756031983020228990816703573789371259046017153529078274102263813875854302445471322160907512688127461947766100173130881799871096533756424330884624252673334417451788873848949174265512908435684505609175078678274673156447040160601466121276002798367920563603202787097133822881609893358632378094993129839814383657382116507754487704464538347636128588693208969456059439009617685334962968435416718909787665445736705503471591798774404109077517984919351891714116174205220249122755981915196497098362000938480303358017327755078795893687358790975162121809696849469108030169656102632768752618759112248764546614160573727521857689225233923588215420311665101623841661075180304040583498503631489577811988797945993336230786602886367208818110049298533364228004787781429861819429141742835373518754996557909589817319238264235395050655577627809966314612205402030279994838894513032564494056754746813818404641251965119041638808325181771911974921114270264385247660199452133727441542970632558352298459216937977466068118024822219309850594081656617930776713145563761190622145371380499293258065056948340404668768898796325352690751504572628204549792402700607024680522207880052507539620848979103957936847609606451404735490207071730351967031203847022717557762952458629627741029001622254063636952158928214697523878678504067953823948073883003795930479393914724240114939131242681958250258476675381855339421022244586323792011664736147819035293347637080298859382582547564081306190593165045757711893120942522859407527182005815859363481850387246380949007088458189126095768808906606708879476559201919273756228208714936776517673195141467333420490753855031650176299036760977561858680953223188672344352781892653567412524376428050736790506392702872451420689509182175121499938826638755647468833952255149445473217703519244118401617386490942191164734912099190487192384927438133276245481238585055569273974094416846708990808621468902877223728358298834468637117567130672492674140571098613737532234731527001252337198057817629629377305524997639526411621055289960673116962214341644683206860283266493829028187251112271783054249619290674156135570013853774053220769773965523563170794075384678281043896325200397567475191200545533843175211057659878118163944387302819627145178668947930228488037479825541133920450746635189093623189721879595498456872294726719581857895176070388829963975738046463053037737174910401073429964855306756912255952351713314446892528305780313849975874880880613070018924208326875543706994886148829747160179194118541291735463390111450636361833504923038571891218944003724720875131607012443111968633593037826509593078203191668669296101989552302503347349548901492798671288286790708335140682344056874702986482151575129135897780225803989699713317731828470723832949004349044121162755879294600846156169140223997657102311355991348346818257296233370728170408691951108639746680412745944404524422720642317921442768960138306997513959417586121683862511432141524081440496757332998549242497668454275337847308342753862061727214858984193501131992228661192160720338120922754412550480130920357784605766822880198874611848143575037471251959355471402602867206988455719181746386701659888987550779755285153673636819288106013242023193621902724391441908167002945007847983198321740612143515240740657055297748237510982290910104190953476514084173731717025994322159190897227085546011361796070419124885778216997473386991556946906942064204706218521005167329140649917293526058633858161827636039218393905758053812962863210966333500711343834085684346634285235735804375169092112015679079966827885935137167720610014306871985037254065450156708528891813536434520220920973205297579670699469347355619755935186229913569276748775930552016188865944031683533865243951174390447479093276204404357603953012171075972553070454329623481689824356360159721232358997119459765507564646078519623204756926460220469781973067538880168411728960504555164880936472897977387578377733061576571472715737358172558177455135942395343197284882276412523438791313460808800751353319883051345134995618139326884872674792785888950591669132573237122466825139165252886725043202109662676916727024539856445777392362040510725071524440985956234248017894410481010140458014027707726538133386568783072492870489524218049444519305964484791030884625320556325218346852182909805934608019913880840059517847473386280813384549056653966821255441311006322164302790788003009740833291725510545052484135905434798009783365524635094525491136495400001476505214835256090470829006816810550195355676301860276492135081210075437005969766623769311852267718216810825651638440901236247508848206032677034294691803433532817926095574447893499992528875278394208609135682102731872107344547645272187254894518417513006530656452186128570702424130898509252187886878353703472968409148631091075207088097546270901896119557172722492632274936167083569541041014830763388436488560417130526518101633960090575578214680298584187676821777486668465137714948266248240504923192467845477793472855567677894280410112095941925020512317656551286424946734607963335476116462053184859554296024972630772130267011327281035395769364655843543341280481090302102577588251314258298924565982272955072590668767877719554431258152302747129978606194230900152540489165817512269857303129115644595271794539452145535659415413753195894181546843910137920209976947659894494223417417243076095520665885402055340144538758414786462820909219854410354401420580574592355094304097033343734321641758282232359323681033859862099987959793184087252296798426469268398921400185410754887905083755894127783233662776830756225841415831029738205796824807853405003283706455009095839968112021112222992016553941678993400262480704378393917870758934198569317764439994596639106816696985194721537281983128297576417599193914815649042662603461702238182945627219905190549822246156417175982113627878920232981620029196227012117814464965677450958463449775598213679059331380350975583823231457979956263739724949231236166604472686463652766116404784699164084838340141732141931547776215943550203368806460310615245233902100193421698469030535259070633129372303061432297837938895626725480080313081072603978617045875813542157796458366638871471510484095387845123760390603137580759435760505019776889310252278334878698919982138877875825761530451703994758047272594484705787343341025124717173260716101152004915635403000859575077627995412975008932735457680463370083155218198793638440055014995203369803724482740228780356758287760887599209664653453664952950650675916355318637478421420231275820280521010288146145581881468710344686243449865644376827322967111289434595678498574768070051489318111536991353605730800907161790604872024070875246508139538212078086916352097259346274972981971710573111311571070155397008984577020912924971199048492452971771613835808479303529288422185881979337966831133108517171469855960602194987892705336725693728850924633374661935526733758326186689077376158633179817699841427526411316682564242327991513101143361076562830220427509675865536728383963745035249125567540535983561357348870785787636172976078969157821838856372276344995873699480641454081555525008895010591299985208568606240290906706064425501133849523400562575726941339995414108899724842637160055103866487416263340153221391626947922153003673512622177862195252234973811797095325164155884022255864178326883794729767065270062895786138236754348770590438847248244268216409350386928688619162139439014129902521129114764831312760510475929844702332194114126224761794872519255736601310944915450100725256581630437212418646829487123212277238833070088347916142642823202228589739137032045888633006534453208154118017855562510283758382870090211657597489126351266592915580822681616163718123145661573858601544874140840280597556149539936461538870126398881995943854988078899647939565119653751853592675643718121200361243270496697372529279694720289244040291730045799506333696296244341339461335827316427104527403601700659281241647123987409141188575475452994644021242902586966272789220494031972334455205451552943237822429026612947005552216567895511160545089184671395714330903154867725774938457658575053548808473082924313640195389114051752140197529339426617172923664307239103974363052668521816597894675670740250273559940712767278166150111852512053133379520183184284490548522869914468011312189721657118097145413226112718125332915753579592824752881422582389313652641078080013171871776924318226819434273335565243919443308859357243132224643668179135992885630648420594416242069544517744181487476256431271117483971449961971226754270508270989236087611465580561739113657041918991914877563315117943860584678651445171766788989639324302741998823382477162920600065931348286002203568233021269205604232911467087263450279335410081993901587493974216147408422888378161313610790341391097105374083080753595091267374484674590812373753617342191000869338364291108821969410357500294398711064829740692751912855185031938796914259950600326733802081322296709686223345986829641852588422184066624737129890883683634031999374174866880706499149031771649918943292439727636539112739761002332522778352157223527678503955433526164579893569710364333537593501531678638360638052216620287772823135658624329487844437796211399275020095086028311343057393897347856020039356619050167599587982877055030627025727211037982790330688304788086036553236788677434092388753933358626789756808040798126859489391324299097581733094390057709824714689257313328300838226564639336964845791453455348241815902522481048872194493341688152197940907766817737158086748194391611495243721029517679944252445988308051122001707332914858808121762942851643583793028834271481019786034589271868101577486996180812760712791394206038736426776058411957746581801868233461817345707050854728075639674763372294384220821506585579660140077412707544465645438987961325564826752044387268514230749470106191744440926983299635805091591440665114451224639092461606027562538589755112148359966702287942600296548141360792576188815150561569799032719977559587398533978933062134652583417506037219417558782348330051996714246696646225696332228648455053666054141579989846229140589649312949516545567560596222936854372647310142432620068579301238349367336369178723358551529499705806181610592739930377863990676972586806547986783818758172638084263871727115354174012852478183112808568394310725490579900318928832419024485239731557890729947942174101410166104764681931726559478571761007858417781963894097119862277242708174977375686771521930258488778213344864707953317639072930915687412945574869416305133529525701657374421146547127182506210816067186655802317598668979060777611663301934586288647344638201550348301941591286787375113784413204423270703282094150106197619080344123819535608324969124430428212047322436320714808928814944349597946395273709733573212447557926713157756055725432804680956494644040305609698752660533261661175754257475448807629814901680857014886080558420775040907214823662432093751736641537356043516677539880077712279942052169812447955163903057878897681479073988870618574102919071412248881487472962354076829772992693391786879812651673399597795461313286533116847620425123632366970338344771042745676047015959733259471875066736412940697293614303615082500522554886036984316894701607325797328962308596470080615179625830133860191002554991585614473290536264922578910798193114434441040013305506073384749802317270352294832183315460127569842767267163225048673385877298872950287257254832058943481777947999498315138251879716440551893893577184328626362573746869708545935437223137958737527621130677047572661108214254468598674370889389187691917615825009428804033664906263709368315807567741556931549617322493867395620452516419411502963788248088347196479080226184404809495911463644192408353617430110842585554701295885711013005662419204789742662320053368018307816118846133281306949329995324769428083516806778765225378060951463299125499789127791288894931311262402010686154700853600151054701968824017488701878396546236818757183794106659525010638228768015854944547139030256779476798556865323358169570728485482356145675039511104071752640864509967127833694572802310009905553849453468210860829207398281138473163453274212136572337033173803017309710555335466913906932895469136336090138677617459807202562944625895279429090103744845972783294673080002423026641326982928257478067606182802793060125032886146296768845036212456049198168513902636265366891569108897732033105291730222048007809886823042262151708455714924077845194471382217314440164788731090769016327487118687507809516056223590166877708127613308541845173305820647256949817719295635469753391789375702454329117036620941006325668757877770944483499835471308895843599214791711307279325135973744886599950046940465821569883910085450800636921670193207631043679643330302563869595764353554465043322318322386073181517288929159938839136525909718115183315669198282217632316113988555286800753565909408349343961310979158904475860282580550457680293275702166380161647771342969260318211029243938924332906603404563433496254412004721050661614478619080016106159180491432585735048647212248770700223182609490234310065071597523454732787492706043565011107754890156970875694166390443795054272219185554134332021559664450853429217560380305749116925001297026845066912470217696961058875560133725061829373391761635894637711854851179857871824770708349874855672711720330259611686602529266597671097446936668071428882652473848962553679279072829537694822228386115931472249680350068373367634682706643595087077264761996140862146941902916378269465599993580025871906910357413686576623265735763943049562766685851520723442375440165206150789929740687091298654721908150283339892551552702049908333517977009122665999196176681838075397906842733889579413343761616456337584370645179373528920176484432339972161780953563967406219823436327712627849901377760444033142592715427480999152450930444157399142894163866527337446727217895561661447350214190967812839388413577785549282827703047246811725113266263505895646239490383762486591505641355775918728853181380776936943117187803968328066490711531787394241829968499062759392451401841433476300545876276367099880587405255315873138995795200114401407577872449304536307282798101474908564119556210712979042749661026748755705060031446613087841162910577219146221561352847214580582343641197669076010244638778519704099663495469940279184049923699083463440583480683799684509467119691299354497639636678969121818074340035344569769339155505479918870245759481138990675700215791708080410017350365201434979645886097706780787264934222214240864263905259359755576989275622101169339708125262978701876647735085996138007223984996637491083884573331551323381325611511155588819126939576168641366398432581542736280173734010946447820696636316302346960554118925160975620265942477242410070641716480967355053483941495138382186436919029389150349543728142197624864793019800461486856281095518207887542828282717496757017633361837201225897838600084948404752678046804336063589878967782966825508922520433370781082718622166216270085827839902239351404563112776460517294215756713045086829200602255281260900538752717693377901950693996389540779051396225459266647661360593197350833646958851248242183333771399668378212584099661300285957636882548980370786592971540349077684281256834931741449103915199907693327972311691180143711178988961220066462662020596604279444497696399144803286238008788640566492993976079411820807900040184663490518350658126817934073040842929704218884444552436177588659690803187956827134015268076859986429364088871676694544514666358818378178064067390303636054502152265724177479066642710265449889583688127303917524254743580295463124265965006904466830319214097842577759755654613693841625096427567742642447181674141661761977800482163263879803530480398630780717619089051678252881809738201003506391178641395044634862164980130573366137344914880986701893883134673173202535693703846151696300074302161940967114448195206297093518715481664548482696153143133346487331041493145659891222365595153967359923148287772410180628383032329263094357819631750701665790474804284728831627960252002857195404396356180382700126519296533698988843924465407508667492988856525151854288060572619872762534596827709121983447741948305223173900329903822740210481615870568766526223422304907307606245741013519157076639388268706739704928843592984982241157822633102326531025433166959344507671629048788658030760245156495927689828424700651220622543642524486538531070836451584826315140057040236030932872879497156769474498754857316847716607066157431648802037793540791705275938851368190110836213249590394344583032531171242348186664742038679507342548844854118060675662439570374885535104402889500830091078881340083770960889373583963970961172357879636103190200349136909907280193409191789405345686744257925162362540793031928733303575868645326201928630282016429361714172478464098704299938986729298231357000126446222465111267268985447317717300707071829637649847872666546293766423030828483622834988384546826509937995948333022496424235258347759825508133611419936403748373184606668632215845267464199674258148106235629488366616704909901432982061343688370535989586105071495409439751506768323052042259777295246087386825557071870578052504323639345685604301529348224359804278147920443972264009812891673939875107761645508327010967595604413991231091854597287446298252323370224972914855717765746221155393548728597515584094421355642679173498746820774471826686669157075821112888139462747429652006659126226070342973695126698485707661960215375113748442765150916055918746821251141107282833917747520664137594996606243350831534664603150093055559300188055180515571249020789125308731266529794564947068796067001493551214386429737752782794036844917464700011389154745159824905304045776750509443244234456584642900765528673805986172437914196166463216757575400598546495975983708684605416236859759796863406650699879849530602631073076063780751159233138484387642584364268197122089489265938722073135252392997554006253353884855085041279676501689628130021355325511486662082662599757147344149094120797321100205667411235134656225550210862231020282267917912899346195216283526399222133135927171431020425578167999367202170648214065910072851073858433433349839543269976019819543233423784138406510899160993958282665106793188814327967793765689490615771790033685332877085763648679533081079344530460041676914706911922024447634076844931901794531067524507403546193027752136448541875089998332500617987647734893534955918916471236318520735692198951387803113060292370299675786327436441246678889171947066564414385629528578517369362532958159764179452333367283606978291290237608459070075808590231197011919076534809440507917522841546101812879769244760848520491473441773503782702563013087802167533424853500752081129801082466302275517956622538855140715285307963737152796585191666401411555722884540481352994612126874132881298854944797802045943069759428466912890662274307004361417666399654750062697381566126396886560786314697161799032365246585097228910760410964168567637784630360706591809568768460412061013249602889250347778202133814658897889236429240797415043200709314835284757359992242299284965150867074469906744135068436328096227601773513646281622955099692327889865262582602267921217346114785306723952098820069118690606299644999283530726431876226305899423767014269962932954275131863632001606967906456401753407038382481292008098009807959614608346095706674730155682043307471614072911321751433408969587527044330675956207215290083254668920133288896941916709160253241582717070471611307309085161355500998655929754865642993670294955744289129428406615199799022853901851984905470587475978754228821937575811341200388522160417377704216129863734927542788521430195547210818811708902645595794758558671851255212024614562087039235271092235173185714714674196715271950268771435561695871021053325147222020153307814568668917631604129102241696890303656130182345122776210596692313264866654533741961280535474837437369108025971667766745858512876855970177779102484300729839934556679297371984946410379069867491627698135806438924840735615605390784800547095600186647759780126957678321839162865692840914989064791889814008634000214965411009843467837995374205620597487259675161435628655158238238501613351843293153153137956299951460936708815177706095505762313766835174768754759886810392801779906600038278900124418302857821033112121042530100019172776926215300801581160409225662242141742490379268765148704594345214427530500355859155895861351261871496690677764148955056267480283226265830466923804473084045679631984900777455404546865234265546414162946740151301819073637507913849774114033787216969085797058166069865959392094148979025729920314021094185005082827915710168435685586122290589235825927537140953628181406693445196997430113407225607083399628348656733481480805421149166449315861972989049170676494800144635428271636359170819799345250793693720898206867813787902194064982618828323384283953348830785487206480227505128381773809570932586217959299861433055846080766930498327585953571233575822096201578084450083471196804294027810046769040371510726745660936871770392833832377738268037965980281840888905313049196850226958541996967460960932390186319257895842159972005612235835012134978666239687820090144947711033147161652580605535153021240115403977556408521072382709456422779487642155759201212960147412652847598006290638380563291571241370407196050074592856149710881939892027285838957170570121167073990653670403269602546885596290987937584100540044468123772389312616546625235300623000667577406628528941531489679099878542374242771407956404485377941104881267955539357791353939794076400757096424757776411062300607614605457511667225239315045521512762531205293251518238488282484373132340403632903730441981334397984067411757838418022340528667674273934101214686803059742530578950344776790001018315180981574718724987090475787140946963191236977433428253859836747919319260028389637020329870958319448467604484453564763313500921275019782500610069188040214561525710688877275962319299740703612726306163440351028239598041357291098000029400163602845619246830435236388203090579593428117365192107630917890827208014458475797040728440353819614059362539300051241745695703338875033561929803118906942042915270051830212809039803439270577993397744175661450863968470831565263535761141212984603977485009367220039801223674610352446736100892113957389557370941818795897527986904874660432380826805740367300308508965675471039912687934474485024831043917048573381226798445778934645805868649188658395578547287624906595973266020531425590965190691258236469424609120849288825054662022376527497868005458424351741072351959334938861624565025989274721765596369471133178862138420794934813204946444139085456643351403914154674244505667620779534158861578863866494706716687347696204971524734704972212915349914524443332631263168236575381495278509293071649562805882589535862556539559550899667987226928507024687987602304138119965229419612384944097798212459706912232962409156232828254132329861947150181807907200132727567254918917282705828533657751648233875019212758909009593929914177125475705647899680398770036808418786435253182416142471685945943204821456962217166311109469311545885708858912436452080319768730397684556026696904558716987394676951397674044388552266056108515183812152590386753716532771285375093221472793429048655058282937977209747036493994891488694211653516208682381858849104111468978984544588294650946744653011923207495488267500059894674793155951129419464309158367143723961225516013578308634791185121781853905933549044610494366862194536096882331258309719967964092002909034094553205684931119814184954984719360230594563252606272031847900040700638064279746477358100266727521898209958365958922499058561104356139527790643303515115258586894277988445961209559281615411990510700195338468270111293811939632590296760080379932110363682564205938043166736434479336435569542909286296874749822615198511124861744463342327728908828707638159414397324763352291747296004338937567559921395124784244442082797941010091928575422983442253394407329654001762434975187891899490605538277670837272041748098596819088504132364945192053367841571251956062453749992800214934652635618264554212842963194417582052375688440063768990171480448798425331641541780246652164542350731308256998110029828613103976020271019892720577260775834997170903574909043549605913156748189168137546683982189798307566201249924337066083675498455898126130677955884355847084759909093842585588876377403199369377879990622747822354614621800198392150796862182148453011955000970755849634788982798388022711414244359158732528983066417989439512588040488042366780941055449193661817829049238508257533613363433860731797920881512759678440547762595600753174800781955266164368079576762346871598061456815666085867940578156575579193890023026642284425153783128560709313788722470653174857349338648740584507651389776201613804770313958197531388947016355568050631894352783997250451687403215213572951787987702854341263155745551160399133546817001203241631973953736328848877782244868184327320670730733887591968028448686731285395288729801248431049732782851359595343108383255869007903725760219954692431286628896513384394495034247405993444579027402764733707473711909063991203085276711697402806071116366622202064870172700078855008809521114524394565551630847919380427152081693759874571609747636873868425303554007628368887483414709973482274360021015235939589143498797431770287582329764000420702309359470048328227289505662719171255584231264049448413950664125282192426431717312539811953957180307729563133187288868266560796471530522490307061264683885007603958732993647751980307482714673975565602663638166453483913286244058058036330664414229788868151089414971181876368567467192292403044934546246484247130378889767786774538336336180329558668637693115208298239445371115874072648997367570375284632539181645393703103162838777419410774465077264388708812657719584550186084022422724815274201082510357514426622981449228167355428858379241846552130069326554152391082918221357396432393816304988943866770087987548580974555351371725784399209160231197899189044493909140388447133744993856192536246515654295389625398327101593499484763823314031897542727464572590135366824757321674683820331854727119017978699708951264091441031488994485407494833575589464198126507003263544267494210559960908107704146748470926176802403970904568712131452849456256854437360441491601460221550556695354841587712512904541744790285253023088248151801976124876682457682446942871061488724648738426075597233944329360559898272859122724537186594399879749322601852665133691708207722357281665149454194262518633913591043555243193312395207282236674431746084718795589406834218089827176269390098552149035461169854430398070749778896107508408675684800033935161555903127951720786027447169438940266368592275134855692030822558489914649667105869116581763663933754809041370902558090110222753981885388288285078084669190781123785972863395570095981216914270427114821769369382063211292730922685709500218275147963838069214633703829642839274522660855965547566186153351014511431180895185542587873496938177043966232634202034497822315488995572134893942909582083541061590588327932946750327137673507416589463328742526478615151991507816185528400491154535636291787983668034471674918757818890550888344612342504410221024241981955445643682857691076425254110002352181704325571750041301391882052212284290622672300077059865839485216383768762463874617328035081719329381733713191080377782632391128177717418970381520509736992857938569226067232964698324703092592313715875734773395023349992487667268640670026234335232914500536635970376524845634020843395676841374395798756920284098037212133544330703095435542124032736230671080448896329293043203104038861860521296028032408625059697931955951972081361939274120566735631651818633925861550534409794447976872628140661101968819164223191021171684268698945306309190652649917618414781601946434801982247883106739077219561823526546630569618951027251603624029188447659764916145292662376598157177657020670224290104279013938342928576370058516572428169716679635558608794378229000398122584802025042618524751970408159866866707257245002808488816628431369900554455363478641442808420920305420959159967088523966832376190480691245798684423225695304702465626039639913303868466943141143906810483716374978305001655053207666887578027416027034908353892928867396094744426550698554549175999905753415399832303276326655622321211594924463713840527590002195516783801536908780403649123060823594739470965115836787937343985046125980120712335746619711448735199174602976417216296436469160481576899458592192123883539062470092119041267303826780616838386272746305832057382318263175005800664592881703333984211994144816061147780215760204434687498966710260193296619583125566769014137539761901605150618812928548237520015960059402805524925357250994141505833555801354979073722890717395500339619844970594519838520770563511249058542602213342265334188586263488596664952446865379661866742464072852859426013394652619977145297243921497754719587671088669145991718233578041503634262999793727062167976717542048863194672170222932878493363440562594375360091501282407529449448732131615268294636165786229178114687928410365226450093435505430597815060625119190344912107875023592695973036183251008259177871477198877872328861876287127130105308457539090311082357626453602294173803363136055889497345798489699227576472712270467061810212585354601939756414305602690856144980703702894070419125016388315030181524964543692721356118187061363868468901586416152153092172553606442447513342797380444049798329118606499639179070332188307878278977889348505413025885913543117210305332374418678716928797408491036191972110384637792050764924396760111274062212265217939885510350929131671640585717315111996211985262999719024076152912545245925837972542668026977856785076143672865655535012457779725742905825985054738138563834057353878158155885037317194822558177308899751766895517703632118402140859271061427240675666420908086760243526545597679464564993280592672302165950642577810722578053114488939643570679027989523950563093705900935138554277169889755763798066814328785096932041983201757167674206064193868254711485633516735110184062571428882981994839525765541562103082860691689082903567917839492142218773679616785868509631178381610257947491217507676043082634444303312774923109648482906841191849005220509000497851901042498910148230965402977088086986287463011385638840221291564963114501363005755646497130917466172220393093740827986619071176602539249782543292837486100166243333727908375272920667396208498322812182510727834672803879761573124333041247604592016455662024258541666992861590836009792309474515669943582318575421828450950836623247356260841047316367788462420201157594463558419043181458880685745249639919195644505511228693022615524955738537069213399595338824428066274458744513210225465726129445597498638712353306762738557069132767954026775790438178833498973535928436424703748462377298430137037546281637433438588632959818087190705989962332007834662036289477341166685798634357051649856844353586992631352495714858187337871059565825583291552459415585664379139524308412605915167157704338847092529415078021913747782722888850263290068808485152630659638503920605285253250212568756662491074527169615896027498837985378706253866807422313184997636131951702642265780987290712762772681907157408855437809565635094323209433957824548527380259438203318276102370196765799597506249656685835787143894372889407338808456217303668909907030740615390631429701089991862604765183707613820632411241624204271175209659050650562035851584875788764119035663346457683725974186972579860816583255149911922659537528528182826910231076311949129960307944568794757616206306448719574178905252842009640615026799415871336089838096312130519234804665635805839780225063856422616469109778984936705432733377890449447968487342512427450854106068826258048969197685250262127373907592886788730281642669383577566433486369473063163334698858684414800434930695569128013341627787419404919433307505140287668743472487868424850123924398211529977327720919025819150112154580394633316965152109865669268543750174648979759001756512059293944054338207966510638067206326334789636427373154997436827177074149874805365598750320345171063440015742684580053485063464593633674056300438071651581682322702332477826241254919697061848982336767094680346231856546382108736388430298123547723440061595967164677036378496121411353194904193031035913418144069080797345567140357215983559145551626669364043065201278546576096415068194277521069967721755742843025781496150345073998977287146588627683321994092557715702981506146686292845617280628487331454613623572782317115707335792655676524611380833508290620026560433137945317065188290413125134592916063059204374095786309529163751923191239883352197129679526528228132394334407076322631311593697961304049244646741816377251184801185221685072586065769570090699080141745142819700599565745623611510317382853177007817582883953442321019684925326396616536938807312435811147114340821349742894160117215230427487187429161641916806355351515287668893488632385753041024380787431828357299369770584180711913992556842213758481668296354433920413819478975466022540866132923665298869992377978639033195038977363928746396413766861656561441644843795452211522660147540846311284660669259778831281677966190985284226857936887436140631309794285635842950755743906594768940694043820900789970450916941536740832113651062943245214077812317089349117487762941391616479615412887216256072055174929316828421225104394644437793757065621175710313867306074996016510475849599896509507778478261111955626070533841569310753270649123456962398778857364389918546502151763593749422553545860850186317497941105832368944375817558475079920057421941395275978878406879652844441700634741844462097933035028215461275835122733560080408978785556313206193470330848510365417900193160185710437634418730497608674408511502463294020650604881042187343499723054760817851400481546782930715624401160239599850903706667202189299353923050970072940803248899356606612980648322551450398071037669815077482426607802075563529596001051958428048325175655670959369303432702431593717709551733991443996178506837508829311354592296785122914789819113370462504587994082049134504455349376171542479194299179067878865589452595791283988302576298821840312830329488863270868519557351597308013284964423871786487937355174647238429262335152565147544630315728555835343974485376908874946747492709644235593244074361004050348860429086954477854419917383788003312626026868617663388912199635964666295781205008842912210333254861991307815188847669177857701923498457536335481128102431727197944256827033761083595875183881582972412983293653083173356864232761769628664398362603931581123320049753545631892139746961817202586431439585410961567856149345648855035678641961315879463594225687069159273516162462037202023110181680434639821416437292863007188109813924738706184056118515956183797692547885651517699618495730975628673101146016009531567469012062914949555327385061479264701170137381977184184097561528625133788156703196845613607076781270195693775620462257861416551980899756259365665087368427500469026694281028565619539959505485914852365261112464829764373338876249954335672731251964379442428876199178163122869214412371533274070544850079469882966689611986787163032392800175428730731747461259093049571312824224488904075733100035490431314515568370645562804656318983167282564981390153595160458303322714357082595505548742431680042543995014575612780728977474934149409616506253156479592927045552255610101220223752139161685638651648272508135044800491117436434327806891382594829409923713930353365704365354542368704669694803677965954662335941885775386873906006834864153343331325396668640699810308766636345701926553672879278877582882083495450388332507439390258431949081224562356972961195734905238672594519092517353717921173677983735645772360655666611099394853073549323864937517605799586971293493698071994570556893106643869621836068493603016328642872357748418185308482274989301888056091037452120757195971639292468807361182078506329392623466036793177860059026033452848985211648155675879139075260110975370912391773831990854454613236175928018269336861918632907756332357168004224835304914716578089273455585859984608175073870382725581843381615081319058643784090947756014383738562301720387029500001075742277329497687815331475726806871217882770201773679700453228340235830247806157448655703873767293995785040367754198214744773116437827045894578214008279703487115483777016512013282489634096155361205277452458336885496366227831839261285442769565726242336140458242048375586638452657052788315204437328201994838130136680166595933171214212280109241527155939062754215499589317066253791535343057636620779395962070636264662956401060576415324438721821709433842773689693445541774896021894013195612150144890588521119586613274494347469623212712238318651695902893980127346072553867578917814648188822872181167816819018964421663312572817657720356915339016051058809927739110138400139753986524997320139347666850732630931458408000224140588408419111243051625300023667567471083033177922053302914495790978558968686517862704832166310711215590124596573965278380806441306650309363550774884536467884584717851955510122675303878691557301973629611779693047986603308246057122228079026468762652168805853685184952373777116348650409808513631191735987838692437578770049492878681462184104522488260679261577771265867290366889473065492650118170902701924115768005160914865598034832142370089170542567436981393737748856862003986114401765576439138926891996910032068420015129373949622986134968104453566543274558868582030408998382951851864101691119990895336658709824697073745572154292304620923910916961115962163912467697922065403260064496710075145402176106551128219406016168395575602320310333483568650475568023061116539060470080430429630426866470596006626020513375987973105233174205841330179390199099594887976722272905926665466543071771028658288445257983799206113592139191599468386335340654425454722481273009630376477413209270738566933037641939219063889875630505513847461473573449826832865316254345907149979686038097572352479928582750656214018545657823399217266349305205328558336605423167471724838798356178217002030440005511122087518524415926508189723758423723261976873513379605917344234130183791441609495181622761674294919927295818895291591663715375314947737826565987921590519556313454197679730013121970233857963660466636520985124555748316368832437028433178332672771352778179033738909340863552646271269980061819470395351409559542336964083700398046006173465421405411909664428914956090270235712841387779224812404866747946779650617122637277889081733743492793785020369535403525552603873749929664818376474466420130708289495204663176456873438640855597489796410440734722543881711243627363076925659050617229832025103032612663966874332355873199326514684334275584578058905407135335489438177214366725308049538380193829980445783882782187320937340702805116341523172019918774167025407350102039178480196890260787490408168544811619912631014659968711490563228244946118001924236840236755783473674432715747356513232131906294489393034601948890689935297079460694545837624116798500025558835478263956656288201344594946914019192409512387058133367541812503201225675520469060537100078357996558821121579428049417544691350889058212885340356848416962160764151463214382219320694756430463196330821330532618548334046665418344531185075796786867929730977905700040363781381240299548088689404125570181194183765576079828283993016550634750406382586861102053099070553164684202080841612737473373068977507840481408094622853252492120774782335396666506691606331782427246432101515316374128326665895166501260350673451832356031876351520407467721072179830802708703851080677788596719179848198577567381489572645107243153704462850024933843257300089311890284318296471499559084441216642747067310642430668872624672690022997948030950800195894414066806069710165903461473313248610333766227510404552840094695750946258278397356234436510437288264493568239595512491348678555919299359802504679238408248324615250710991189224538037526777027066349081824915160672595556762116332381497374364776481875918152686162307722955690344890605779270441981610023159547973675920654194355728085678539058084010902186691724888344051501884040128480591212656566257923146277818056318808439875558387810338566206246700276134017098773646770871905313043690423310601017466814059977856254186395326895732979875156473955317466331384210588040293463658907152044908450203860600445681395825876979859539877161949747118752004177045924868356381539762251671453255271872644389638023018733540389560057608592608119870669810682116169692958103739552888209911090988613387480101485230119635810142138644684512357073173809364734463579874927714655935641342034562671350288795276311388995370463250640696835122076018715426812324117735565034340317452303795595309327838281230623867562505557416926711554707170241022510953704484328065888317003364571866389383303132212542205874448087069605789698519593049883419869309938177691275648886896692384262983365372393461606536599703983689985212713850514550084998319786952939902420166338919237377831542800188609249619437203600597579600028800451590997049729901880932890882779933888835389905190115706712423001530486195277301755416395343225343785111087803066469765432924770647691105226045865102772522610206645567557448287993566035085769810877380092575022048808499796157732810658388337788004857809872644672665574505125651732429830726702260943620388284629971148434292786776801479440694309692189494118173838289125530460510961459774507681457803693948955772291188482033003508544274150601266856105925904474781081108439067304104343754229045096863753736192029935152484924634483393585535185825287680938335166828918276949790326787604770749259130489840300557845977955716405383233163096617275379380243176720218306775223506924545910577822199256538728959630918133532389296543579227516723839595283204329820082175888607810415014676792882815877259992075901997046281454501972875815278066060039794943292051423050016349554026445854330651189586088917578857942518075602844313239288857896379810657454933179450648948549278293475920083366492025410074247207076033957844419045894226648826638877190962913396869854987426962325520874352646909852654116714473705277936488026784961703880879047789059845419128652177552102539857449531039372102230760362050582491844920147068138366685092350933722450578297377690126167297705836949451945360909151935827570672769667390395835870663567302992942213241606048162559858726163058422620408503932878603362410933552986997281487144346199821279920450460740659727237994786561748112601701070912521896710992323610399728774200227259490525606259651093840675607498530377000882562124192417730979687244190573068819349244850591015154120939461526494041831604988831044937333894245766845215879952016024405862559209846600408835052565598896237480172491675047590755971711847148623053340219901562870179594232677712581656338769147155881577481226294063880234022237397856214829893503916683345648429989101583648754538064321755006352020261586522597357419653830063647238717018806980377670509014528718177284233875752151901764595497763390756040426004597694185623927898842888956356083079801242172100689591835196327789248777647687175001182016799019701747389808748683136910817163034834766242209264570871739502220986923963679434966320450462162992708906198951965474995314605594189423952397590258142734323426009847154638638016226556659503686257141743877513931813150419919533769367508629729341934829007797679209008974197307231236742767612409037955542169169730596672191264474589381173098803942557543846593577393154620638781515752671736252682412988189339935722415773796876130307915141694438364447617362585468145092718343872900621226782139702023781423477526287420234737310930521765402036512223325132939334156794210580244801726959426489958031173914076902843424131406021878930478599860777618174176960279744688823563433983703983129851652145198971927635706603273062010114405676324649850894270679844746722484779505197917957391870819509060511847379125945774431874937632186412557464958731203287649802394969097137765606311202112650698382692690747885300648385372409022117790556081665949683325741156391952714985259590019603858119696366911548973839109322081339439851792440209107863183431721246507792771710271682529352425464345355386321001818910282022801471121736781708102216090451055481549721677691846715208329784262962063603416781979004489281040381330282618390703821479603793606261198728938425987025426732564277503652171568210531727522067835910899736045117597587788431370236366287987695493381447046209133485204179185476251156982909798608038918016543111332311104545170329156669327384181681414934304255721720162427224735131988489493588371899896353566921122932636650134486142781956419287360462920261781379630754688754901018909876557921040275961773405974964643381092658986869866005561935852342211351541533203844004344154978361393476896079139182468422060853055292107329576371341187156209775742299266190847738577287795971046155720921868850517493146249179962854100543086946127415279926096544622260135751147696318498753114603265825552165350282044033407175127651699350727580287454686868185279011155103430827578131634397222971653918258035162717132655686590268667737626224211596145812049994602538156180114987349875493520764770518903344776354693462686340113313303795440497460084131151687883146017840856156988582047848497224037998600545076709690613096387094708912245178526663957046261394780833348911685058853774004559619243669747719138720483773286498595272264757342960390900671886227272548987893212874487696621392041659518150569627120573463117029262408456006311234014379223172139552435001470642202613883987101900159421922718061568499915575706179194679876443171476654370764155011991422050197323431140227147970639690278914269370213002345011409761574979134197767878965030729985500280099291909844264188924648734946239984224436973420968567926770051442970406182413829267402758968980066667207043360689842495599221387925140629591197964659266989241411509259491760041401954141764787372896754772553088884359592126370583198710566236233837439756352817959497241110044354579175284824648144213382467247134135350914276698657704028433737574367618265946630606728612028227448577972092879013572700871453277156682381856790334244441533529724410425750470802844106139933359893837870473075207484834933722055120938930468974637437454204202964625342683578179461404011649946389633817965420813266874779284788022747915974477483315502101454328386684878797353325325952066471599324379793829174849642339298155492842540001416360037003458809146086617065976623708997465378474074062227690186329720064256108054999660619150358894613067308445114630185760259334128571900883423574674121339246055377011618150459763363083547003314301535177662601424149638947523299895588837795971327925786511773405060712356082804968252331335595718182235215961816459918876750221968847778261214122083576594177813312391920438444692335508050254905562778767002914206600264541139594100198965264525168405302036367218626482122775101501538674511469664828692033192410873580234256176012045310039968007637131398726591312351619588714949302523031671822377943351511358823314487344480696669925828456425049096837330962760118315316375093915668926512648405419852590473906353717694937300518098909530695569253877220051681250032618023517417710134668982420254576951370784942906562919133194272014986744324268246567987781427022285867701936056663329737210483278627388284507957660827557751577424283148820403849436698243454067695395558000194102418953732796241779110692799053461631218461868333071269223722859857463480980480883141224196567790693636935842689785355995685267188610943732171640952551724496617512705026057580623086016040781823010234199171799823464639738913023689157709664847929164536969074360035207500190758107608523076130729958234546432961123208515086757946159036125039116383811371438045908155673301444754739978496392265475970655260473290347717381602990441984419537109945277006985595713218907966700860325993288688048698663792155998520694142826018185865822407637461043787577772732356461005988836419700927070254568798309490706989620910981692493178565542985974159368146051051281450486794830452413962460563529593456617059965174971544108588715255447499205647438527859073212984630059945013795629655768641442187552458372046082635451443479520127984120627212466897344344680855478629279239944248040204335392209835595466660079763233333744733049272784049786999822899185022789203613359514323062987871994600867063983436003940751733553754454332222966026438282634515440077929864563242561040755886765588872294004599234469183817911058985740572041434827033823193825057720554772002623229426349232066384180326666042347370004361152162888260548201892723485842342564371983105640672321753562157866255743742421655134852407468713142071547551821551359818975305513161434782348872764036768495448964747337931565817825424648949873232103211894845574689753818239190298230830355868613401303042302583431101453064812781841348432032143134452578473377156866565233491268674741804464384123735139889750093051071614382010708885075209937941824136608941347591902573135070765850718299490430595504714170186879077082745250466271670376797813623121592999966394288057575796626934946235274005688099526557981037212765629701526617119455024608485393097879320043864333064646654569266728179259734094438066888846105406174351976181621372162558411194066145829237421841159663566746398217070262713084432580553435245185163456181712972039341183728768878972888254116984660819032267399150479151080717591966123461055415616151813097575455871946701493983282937446140397361552266470819068415359090895797453707421781933518517436119807383006592472660656129723228658793619852215054921199198874587520608932276708292962262125417851141216492440924137874397118977655931819871869826677669037286958567910833530303156330343477448518413156274295378178372663346460501043429190690614680297580163362133140621080737989609700878510673116636863452995604068532412451851473192061788532515530466519353929179940890488760566218367034371755126579864006455000985847425466701493402172037203492280386303339934361088260615233660109936856040562470440475928069445174558739634047141496812304924641822138378935128975358827514848666969788812359658618661672803965474014118120780170360082614600922378075339228644296563339743873664402257688427426292737121408890557239985831192558603253490234543768655505560594979554346045492163132832840050068868709014353735992537457286469092287168006242586393873699738753547526962435166625265829668459643190682488573530748005831819078310859474759453058103596947103824645000643042699248250548471013579255499707198947008866257406379683753053790403972773590675331663484127086933612797420666367738970669481914470013901233093940332092871959062668334391687218346813169933776890580233484221056056806652574751760554425027956175382615047637382956361314570306044395552161115264612242342821804308403272665171323012957535782825390399138866880283011154632385269234603694918517470821736126120030205275838116348866557073732859978991339935809912388674846871423645293348047065803825550470316738157656120260211093718202265034547253613561563699143033969160095815177906853436677960622852943226808753941702856803348077709136917385040391905579904941745743680692290371076201207791048544949872421247687137281604117844447437029544937470650485196042440651745674628663526995208471748941047526233532088576874489172763852145584387779217748937495416539829267307238427249922905126593976882534865858530184469341470203362946370791216761678208166217108748887404755234226857688597200513503300289757944368140781079610194862187348648581366895003578808369296087592299025497997049866623992183167026139858030009028608466531878562405145589223764610633630074565373801541572641091162602150409412616032738007859580867623083292858507473651251186616137502792411590966047237203469325111132547023444973921892415070742221879902380812586060587949941121052565493292028896001618033090512793526506717504306628016744477262823588852407226263335249451389278786560408896633994150300154482163086832667527410377628396253813309152265255543498586156672693146668726864141100221205811856460044735443582087167006574283238787217106591839648206548468465858055908043497520541187437532705525694459679808003450786868283444329243679306520355628735696097697580269760047209278475788507448408337111672076288259313203247871693253172243612135957446696948003179904605144908873639243956176571603875038006292235226756654580204442180240742968481603774865457099953700165041750447814412046533604384097668345305871297592412158347233285953009772556631480932451914547933314213575227785287544055685545137553919058146129524154810352031599466867098718812729346603447168310932145840676336640867488393957165427420778368135769292145777455428712884286371105210617835946345673453090970774068164439779914440184644414970403997581451658335509702815100913137060617747823900657616795770965686328920769394137001868360475663960065422826739996991322258887572048849841417178398072824096015779375950820902008245005951350711173785876688400614977472024877914579543438162238288959326229784573394162617570976214735960520779208513670677237919546355242034523866625244463347584076904883250536083303858176483258186493093036650909369608116634195212585510749264825571690625443986904360204393299638582928596002116732153674613819144774697746923743091037533532958176074349059043274240694676642210542063011162602863488468134568104009430454628157126685506316154648546491610392440163608529282150468245883899323063128743397598493576354153003370048409505319546189117066750945348435817187885989109929744729790958207597530551474277599278902439603916695021767531416103170282877574677510350785745880675684223067251858054684699124335651844025409389087395271997338504504686847745717959035427907351112599850148610676506921602073825340085768121986910852458256509195277853059803158267945600471524319417504618631492593611562082972766953129423104229828141869172637228501561276018235544353204423501062606085712037863368848404463560344220229255707461920768222656784907038524698266834613344305903377008522104579409683542468394231057952457130302287613201168359060129876086143373031321006528691003828255553397444272103565257732885437697956854577467550850752474415023790330017558449626116382648583570883536664918555326131607133021293172274004283523759261591443716714321421265938505750024737943490927170941672773376607879358310180248915807060331889673760709264772429609679213770928710867548439423583883645533553397250493820073562083642051766472081956419581304066572027152412832664854639403998649685063679481411110766913422421410522428359318835563764752623141480493347372298905133251601588249121056058067150495291177583592327458936539428439738914668830738127024132777861013342022271272547790731839462871417108182830233382687864222946456934930594017967174890181680084475725487193796979324405778304781800470573483232015049528868619349747201357552780902186497965052902012016962710094306428545035027066186689096233318689380260413760461701538931141826086615088924180771489998176306700278035343731197798132133030065499646193117792684467011775017333589909097934757148674118991059665108270986823129246590585127512279527259055394336665465578064368046403468460645267278710291272353936426129675982587760430592806691702387252252407857760463223092331392412100082110633816280392864949193651610916845764748937783711642039106381988957310978167504793133836594056502166780276670989202623353805935754542329823444838139539331100771332509047530752982513008035853815559559682637639405260414757404343720852188019170699323745025507732052202014298357576754478044137543552490407180184771880893356547965678898096248663813865860351831905642886255011358507384936146259925196612262492056630088194432414936332408979188173469850093482256637297893365713534644776498558253464978336703007960760775632857620192212261694726627892727900069362082697933156631968806490622523379906140782198912860521551649059179101963905992235535995600599766954664526113011939879646893473498946105320477444136092251553128487715027436558740260813839302419848593160821820774317671216262521090395791459610125277677616509402071487954056726417843737119420453747157158884287205962950137126911672308278337474969126182424457103019506977895126857043125001375739803329375204994196638257655222120777512623179261877416422937553063080104890865203920409109119342367561868187769390406079948699400330781831357617217820007552080920245051677603880748223386396849225177203496192771773418414794313682315521954494001283608413802639673531806040201464828499351309315373177527335428627886553351767506348628823123066000322246394305542219611084437460228378546938339153564087616789408170073536172445294906288326237199266718958690342177100919728611366173257171193070495024241404609876122274834974639224002735412272803424391262401006560433989793877254748890014337236335041017006120331421651700196872349775319304174288750036762607518734850466719266914674551986809543578773627553857619013199176904924573541157463040496814133495046917478008077581765054113877887009918263180465482339378051571078676247119258086612542129747932869693351573243728185907699019571830512511448331310739004272741913315462405762508437354122539558466664306308389122611762821053216416110171975756255485880521529631752486666440761232173833560821333100237417178036801724099995004597825365701032142413409657782888192121277289583581425763276329116219168191306818682393848216123405407745958220116394924512255047127846591904244410976458292205861031631823786482528062980916681532169791298920695406544721924867519661666900074454426117682013499888962005515769187249192418170020104977461452877477050276979004469840319835245201309279021878373686222609116305660454020824043399641752350830945761072739995271298190185269000814004109487720312721931991634737588133821194491975276089899745178866638286590705355578049349272789598657617818752373476499480548742242773196283589880525677342752597505840445723540045244031993212864573972867760973936409860165756328219480609972348765040232140622733644968424009167895719426943792940737542155493695248135815503324109472584430719400059159069444624818311186300205261651328584971899255585067957463472699335907486223804959421655603562166906291250680845600766282230552362763957386600914256485140169636747383666434711131437006895657628492024501008935272953008436597134664015964451963844641531179994884159786509805843856514519456858900394317116443835238896867300082780722340996265079687661111931565878400589524477648561677226645692121187388317893169220757146280655029588668337126720966726835751857890673856089284709019952887386124009908571729979089406802652258418358712334211968863561705139731617205527007672916561878174259443734928718727890778088992770723438744024683682660712507764038644358571501942071390295778623406475106660687351695918905543716136195431644111852418760907418769223246104989452802977844014886145186655150987017285877138225393115224020920447395898218997024359578731405018015193568712067690367725694755991587106637797030116304485854457521230679123618691648944875180462035405773924760072715729083063061856526049035258611918903659219276515379513481802150657815757656671839311685697871814180095419839958604890991595874277839194218727902496409724797021884108523287169561431646489430275761746741250278544529570997365974014018114177244621173584514811082288264540221192796768868896181980677459053307019003254292558384709829095312649428544533590840097863434440412595408247250429519431100266541309471493383117924121861469788561431134545771084919476073433299993330279006318289137718367566066258771669969137299554427957933313345014474166506581442705126107279688046933165053401122151067556143751587213399993448082646532244576503504823047512126534942348967300340559753702474057730716504933540343633330691212657065774960388304791381466233474425372474670348023787160254870987530506420856660535841946140234563373196524972661651716529962901795563855362046815632127318075527144247785116323345442405445419987567780651170599322913961756221514022643224227716311079551102805822280295264098794285605130171614507629721281982284287133622288140183751175360394602034651460380532893104011702140368382295242920381378353558075024090242447942454548041544757143028518341154751007367890071882806797402252128976779349235448746250649000659268639259371024009114294480244436946795854021816370593123514372232239365465914910189838010964061001794065018540675214140188920375190132080710597516669592470969472443609305891331512638465195322733508481305481766057234152939098504968327442519976083876141710049011494283742073248539639712824531933498275467107557626572450202346607134501852742537196770135151710617960682363966934307522656259531813256754428642494597234529057951822133391248288950939788255109841641877322034000360455761982816118711318479613724899595007910454592699830107913952892956641611266809425610291881661639195925087592809291702302135680969583615091658806614640912283638982445450128057203350089686521800149200164044514173384250184840053311462801309031130896155572239731229261224612440234685936527268954453198723117075275764266191772494078202593707280443982691472387897594741644643653590411149382657175118837752658528173669337123199312249498251420384040653133342401559435492257281929781356858018303046581778053781992122271557161427513734771994482412837360821080349312391056667531980438842411427877211630152242783692139584004125954369458168814808465646482323629037983707048257141783370913212840068025043229866909485266868304783285444580634757568187080133600996521178795685619034408203000500423069966485894356062286645184522050119283260635962479138574218244825793036974706487854913226563609542226151256231567607479478003372462999074106092887490239790560261562184717654100992562632536485648982093696534756511875634530136564189946849354076148832006774171178869296202585454292478655659835262896408861684106245929036083283539705743887109765399248262399368695647747582506761374364541213406456027427442412427602901264734374686335183889169658126051610805251970946543328660188548439946409028631417696178078312367888337507419284929486983020852952312692949930362960126772215649467848589682510878789391191629962271346020257569798011680968088081284118975981476480409879085180629963501073933316231289751650576034005945970045887177508172692802066856573478582171369041698727503850106991254794587875864575979402202307409986218391757223480116548429155433590946980943159765222555773697210721617356937217284157922023596030871078717419314260406861332494093858671739411760413538333159233100486408604432801193215494111547010774127458026151832851456305967134401754601591167186424411042866159099033605293054275431775312945140328894659095067636574989905006428273649633099439290218152692298089236923175398685049826019297763525816378329217211022235780882880136060885566796545505511853178675040552359542551611106520565631583929106983007960577488175912825140249232412965958775063678693027251582553061136156649407508022565470840643021705590641251186772497746708630397397478801453284981036732473965137371315945081739941091551583261444542228167129599436223951929336078958695903438929394640431230156854485260205973890638761792830472764101675983060926665529819482374517027774457254994007204713691082233594502006241074034561059581587441314397721786681382320686415704031622717140827740499252952625061711964264718207956357886169013885377652530925077950835144057150751716612305418618967077186661766228673416813024457916193199268376279728703579920331015343598394318970308102044480965598853536246409717937388373468269862280540944270141116495540282481985833335123194605647672521126839393091626864661778665482192016044342888159520964974658275605418621690523461765604769216600349589510189806630100923862339564893293335689103754809886600346826267916010436440279231316751052715069991123884948272894618522367670075275546883190684588854075856871080660545648888281915718212007727274781655518295698469869613568368379698634758886870221418218337318629249564807082747588623918688850178568731931184977310210385575649693272605663775309493822767977986803051062504569552226852276280105563799897197173259695038921093212753088429911592885002138354312020151771040599063499758585239709750712576675353241135887753227290229302961171679345218117814892831605728966792545601536984108459012750127171897554667071663091616872462475879997993491426551970963506520188804673348776920382797346505497615133630683894143529772827798877927925538177339087835617708286080715818034176102052337706370352099990794612780788902572433666381737943861964993001636493580767755079139442188283426244177356521034702391534160583951175185830044926411504762722851516125566734564047045098048464525071713033934005303815163486263365524123911090101554449608686776901682618343580237747923415290947395755823524198359864050116471695968579268472289288468627685517547149079703275366503080756710873546651117557936330419299990555535591848733240875859699722689984188493630920791363457895297948685290385895898767720096995830345091450074445131528490965697863080544596955669633576928034824185789825642869967280951850390432381521290287660816590597996430857961747557670056916270786150564068303168053293861591163099876935870030905933621381168857828036093610211704142315505257877841755464112582391990862476443353879609618038587974794661887506251624971227719711306418327557216275224508325602978874714773919086029666381362424116568218440571772924155637516821018002444636485144705313971617060548851902975732661620028256166574473267915519024177075395384941750426809179805556380241800821358737630875813518669781151726508711630325791966629492708590031380614166765049324050023004628705929175431471471737962097040127644650647093999550352013501901179690744180307045901125552232799072018793919331011968301819370865013759789591475276708607862316579750158181498217102726348758275719717728131310829873646799762398180522538926496952743925336043460619972867161818158180250758825166660668995064303485768108161148076665022301669415213292161685521416314103370120541673956348088694147394960572515337649362087721524810430619629157918998899635468736916800584851517047683612664076330897051111965303829174491585267635501236603795888299155992590711513098722842117105329088145336748914729712758726958502964515439022322928428938762941401971920242603394342467877003742173265852382413184751394479570856697086537417354650791850776839695338090229258368411453165494606924565102860784186736087649720760621403031247523598954366160587535851820110794094810140495323026888643100663431626230230144252266431081024653928270510812810724508834160365293530021298195301506718119073101497262660097394560872369285345743878099831994039334366184562028593506144686553054011538873787930997584077325679499864322927177728282774817136032813533794418774392187773313571751293377090011414997318194809663903733365882446837012968026485960434219352474241955560280112132943714534358943957505184127792156930211434601010075220807117397860943774657918128215848083429068169478441511943331404173938071466208167481088041461070079212697762279530830050179817294678379994939863204962627302354607689929982536299382961318492910215457874109483402635308957250737081914506828398997727326699278159888425979415125014001642023161398534523311267719488396476615291537438986798911894311048641645761167657195501767280834327900924758998970993112245395658500914635696823480093338532095600688539699980514906777092306695668181563888388308361679319366191227537796308990297029275868592753356804292598760682069223601186602394810362544370723731502836119728336559123772382425756823550380060226825168335234298357278165279293620281832547932568451864449597904927729550704721649793142135623228750698077860451553731117106813157558696228549421786102364727257222240585076948332055784362246283853308252080174326912097925743837978007796752561786098262766742552106746642212880084002851405565024585949391355180079647661882934538159403293390571210315486084608137805406098303096202289800823415017012494371683624527641237796845031449084860353632543693920929351316963301571389442353959863680948631910515269244903929105690837735809747687272243118361481419945056910655754137478752811658036794466220140663545507384615162064030427763173918604154616800106966642164551687566914386675798917517010349592629256709924948248923729905629815350834034093325681176133971052933405588755152960847931085059699386270960433073327745850922215879990968490307673742267039473619124527056774005584604175435364797846568404835376533077156720989784111455973073106792413251398871132828291673544031217925839374358845833083661646122952820089387709717849728304869998562838446685740000853503262906163305649198588911150127486969195790107873115528622706974063297152386917546843877022852610178521414602908123493231209492797339183152221574230288776449284574103319048252311147676836140825683396218532070441140893763190001203029047128718717047367949607825955175632445047683615647615454246900272678856995306658872872625295740957656524279280940347298479024634472701921609369664435592451116953243830129487156880324662116295064263548095746878275185908213900130675442405532532772959316058150398201663609309441208423566451174517028898270605268203388433124711252078409192591190554363282857591632091144095823509658030400458645002218332047933651653447439251096988713958585079738813473855523486611798881630495227993923515322029353272207897901389369164243860594073529749248950522403681831650338232680897110689714799739635610477315550969233778567177289504082909666860295653789655352543775846392113072988698480106435005240578863286234890814968663593710520626182217649837589961689807284660708871832334392323578149984806495347122748766741423675517273969419725440067504755084776601942962309407984939644366384986451074413718119869482909744379638253091206509709378218166312484778041129090193330281505663090295187158328233203598268180031277682978849183671784869497169991468530728710433795051713664645544142867428871380350602146978008946667590595887116621413485571504542256993436585445546742829067996434762870434744747575677293976567471874422157325835272806833559253195722410470146630213057801945545114154214947887041304250087339696943756646468237584358857823408734790486587397335398794088349240997930594474273566368796085456481693604391503705808088886337180659487890728882938003792766949670731426097089826380538091582481579011705604767705650714407139345815550685358860497645517664055831743985945083085344185268850405304891170746227175204372006247239483486075734565211413747592439714927567728499101804922971336520664443872985885820620513335752560704543533007972601006164268299190960468437304641504573877422814959921601519313148732301901789656651761402495150555008233199039224267148888159612461414471459630421059725637469146963494384579748720399150585230354216394806800825343482383508976240895808974704846971118659180250999185498351714696799387652461330956002241629860507946817409872354996687560596471002301991077459977103785499009154661180653122344398707897265737647812109878656981809991380707083165954728011327538698600096897391151259796879289925462332704432964542319780793067329009980447528600893758829607107305542734649678069778511321596877707547420394491497918927602235610315687994620337291864607008238134688002830990668499490929321609713616711117867229174001733579325036637810960691204574388401625473819960338940969964281093546494460081103083562515771663167041260008543939474936781545584536000337170812588011783597145262319624560780117205296737095131472252307644202313899318153241146832654514395273221378698623720373030400349877190216096893826282376494186961912245940562992959342228270266792090151440072754955483168743554737758752445145437917923091433525173796076325973947252141012308946841767943259206931262122093164037670620679966597805042786078229793237563214250108921751742664917334555660994750238664080002446503571212010626134962254026222901883994789223366543217044915327775750715484349211044772395497154358437601174320439749788610469934957825145462199631188875553515271857200707569124095142741123973167709184997496599144183821725187977870175824443734349829231349136332606219013856655228693141491018687574691183847768212689723477080020891357686826785591250380588472310078123500030211154830441580431903868722596655293112964849057591125086787185627502356778778877735763938667419545423555152593624516529487907025540332248980370804954537599730392386077860596730934666357556020784197653588339708986362652702794062536976623705542137194641356126578067014428464893647297899128186150202711831078385669384067088198632961570064651869452383014010529202834700817181780743549581966415591699793111612250917520635504122805103048338767596316243798683669282534817466466125816150951962846820328377827009714286837640194953816399214230508096755334144074150585558684182461547435105922900907864030558748341124704141381526086529200047669780887802833188191088195283768082091106394445768688965275412340545591275515310837663459199897830049719200975313448892411469338127869158699429221277617030836473129625548206825671178926334462066440872140557834059134801046453046568601676017325685092194151145169532573721975800117776948698058527016291946801616406323538957551000674151239082539162199998051877100715319855825612643744447234032133890599927661659412838350970573859591169389928690350026571488313540393769391529334342946834211493366354544006607852708871895497771198994771932191329897108565344912306943753424839631698393159859795222529589270728845316528719551292229174318417533666832652786729035533500700885267383845870459384921653693651904916336810081223930073375061841802221022861144130796347985990227875640936707452615490493744025310751623360074868930499242706847929222305120236885658994088177533686364445650968523959243973358522392772033791299338506562051189074365411225642967435082118455261143562856957543911080122280052922097532135678268581826425816668225318396633927497336710412309633502859460816685619758883708339640333825561552808485784490130943105767292758988794567623283940385219051327371945669294916241388626472192172656566797243434726713326340300925334714417622491078101673733132461524125931137636520198604197586804401518079086791217701328672554940591148705532396851811682099255414255189382528559311016228459287706512218669167714789937224339288278362035220749409176928053615358035718685277923028010923110974851479798904018652644189683563948064811725602739822640344349044430380713887433191591940828376083477514595959472845551150701896835012501777968889889400105727616476223064995125690743599164222652158235102965286631181236587632425505840546550815728758207688629889048147291071965531420932905388829856057210539422669665758281831703297004035205279599481056367174109191184899258818573227806941616639480236209585980701596429169993853658304229602615057552104912421621012643857791866746549576646739439441045748229720178383124607318896528972090324453282664911020897875226175540933250143680349079186985587749783299686241040106392428482858096102828496264746202780583416953495027344053904464730024854184218102671800104494335565296276829302211248974286450880391426947650309772742275088901296017456483242363868623949604942946113523956737202138472794052846882575940225406761898813393979476156723131194993665281165642812303101842225901713087809188466512641611242925549312879164284430635268848088844011811325195844581359447941914000905898957532292432898900160370501483334675593257540845352526946029773906859917482541442982078452149350607737796539345491102942547607683384826627096952518980157316615873170969572389483946796892859832197269843247806683467460316668498232960395369031275197158391423118249413992801254486915533216198323807054571906149099343564085853257413359206287835773491131476987876086548895027798240892549747686632371552345225927621818645226620439917205695212261103215315754960429910255693263863856230384034409246704204184643042133009956384374276448545565295045942470826460176212248366351286427947375716325093077054670524805008866489220730481318685645790593800396756843923071862909199296906169225800236683593876398556814022927887861485107788335356579571254058333310265501569456193386012272248990279475315563808302875215301040733593211086029613187647753101054915550434478411934479641115263586816483647888562298350669370164538543854824048234325156889916387732128296486422205448398805310582013440651550072835297023213477450911929397517383868388096581145752678326912771667960689042804880669610660923260259889106692816753785399981642191796432948695624728922920301578925063517031799798860059107701989461427986028421084168889546858415472226227578548733921045045242847927454535064300196888357774651208468259983052370297753283856252785667405200724582993038108102794755637071694531069384793626697920058987132533768137050281001732400236563881439702784378197874226321635879241278582969910288354127684371011015300493985824048821318226307369863705133545742793159208824775229295583605522462471483506797952433806047372792508271177527659785846015698158918463048348463844082374204244862807033311477734545270400234306941727980500735025420039771633424255443623149845826609272225126702212034211843754064749144275513733928025026442626473350604700487495248485576186978464988086224829993451708023126745420607555118962640152385506312598444563777110672468996196414744251141554056030438550432509845207401247717989160281019374263225983653321949783002739380435067352809080273600668708121333103293852635058920122493602521772466057199416167941175689660186963621501632691007006073613404635365958993293361279828482032952816855127785301479529673335098203452783556846332986306402346250260269972757093166368670384083502489643901578387600707399240467801375521887658224225633011413171707899782127033284270438802069851159652866637650811742645751780066133459993325945826536200311645260875297679612051986024518919585957802764850301986909820445565681398739008721602698942455291364202661264606976612335355390680283274455578663835242115157074120605404947502975396142807238129082850896548343850638276543403195324374163067783466562957074459433319099767237611249225878991393015734402827887915540404554728265118949299959079644320796992421535239298171251624103825464047922630415628298839897232597974117901934193158779714166886047680277830247455829832437922022128800289939176207736441881603875545485353693271694009952452945877055891466213795598700282205981738240499154894704498497037868200102462104594938784427772023821914764069131974756838776627127092323642325645359368346099895704465908473804424114381156698696607339011828372298832474345357883192971095039953732748879729033957392481076858054199536705914690190107521117693641857710053584029907318867310725457214519010429918230270985205465921311118971440242995654965760036504548022370193016567331085869982095644082748699215726804109611973807333292384021376553330762078124756946558719229618704738585539404490946228171561085011319471165634057612107177328622984428920467871200592290408422853532792320070891925130883713137461537574428874142333010339116866831024241875475818089740820354064591311643193120088651362738548467571165511585124567333721396319403081265954779816922701634178643814760848794190355394932362641082681629088377979938388982834040754577248349008999166178044480075744350549253725951291226111372856312576561792297632919743064306427559340310851439175029219038238981763000219806355737154498951628917979544125474181188657707107119486435676626142665093189970506291855908407345415479034351043709256348978644472185038349227011946678117529472050300088653658204622204498441827259501971236207873583184940068081689484751544264820313319634088130141686120710461920287882046765390736419156849712998221536601585683087303097300907236778341930991999549402493258914167474517943646752975553253041832157808406491018695858058307210508124120710812137358219480273649661100065586351816714153494685361724160116856054301559544699692134061682130015063128224405037389843192432620290514584521504334180211280835496368871591430056757614848191244075914344234375643280824966865658306387515186564965368806291018966016882914550717117543563517647547647533271974169944726470185764229056064058374250799737781072739366930435096720120194957506103932654382767338886205165307163879826666234713369647783548099965941957546142012005063542909587679089510967963077003898553396987063908771291012259497288318259053596237914774290180354367892016457849666695480578169474697713133129465063849786014766770930351186589540271901214594254164244122279811023941457340792016146082390755200541903885832657560818610508080826059401980346284260031623902277816902771568371898689107748237579316273367521824093703056050614723671812857967801090915709632780770323687555219092644978027538385976668492948603966212778118186185821418847611826953273594205143159027999730686263071262080739873686031320373797707559875085226925491076295036286944076006378063932407532340303836505571231211409897841393597360274681721386843241898442383052047006284374336256710767693641858950746123901049350031662894019131378069999075356557443034488954580360858529465875958948017319068914485230953491296815770138096976309493378092927564220708481632582771329739358251113565011526020910296611735529163431569380759346176059347515618119600458170056923260263837358611329244584013700585343938586004048949179176196899445138341404796038836045091410498586702842709974489472608555013434143424348675945722938721003257932046039136762132604253679966065603135218138132588734508649262444189031091900217805039776101027431938013532183238281291329290326456118312344156897551458543419450014810000827197094852657897355572486308901367417678105425305282343092321356193960137375483419405096048043060587485922047988407742075493308687203628160722593802833351360215128099474082110855866014894556259423546740970684811897192152213732440595844058490853948885935985290060290004870762126666443357979447003970062737037627588430191456523097732872832742809497218953196340914706421550113106093639772973645739264991366395230996031615488307520718755628794177653327248383380547713994216226512750394596054696550447702621984666751267137854744613928649557578241074039109388958397353793930662510857521908296247366675948733012294677822444926837305458377515599278981093454426770439726716962363486089228740589399000478705668005600271252575021748582153771609462348550080323655797806196624132805626298597675629630030234187850780125439761210107596386528441396194267395762587330034505687482098156315440687976465964530966554346336076784963129647284755015685175992600712967396820945684061300198979721445225351871566128376841866785776578110439270000373244562206575122436534973187235778595060926196775773254532453141087390693673769761492119299205395636845941405136861236099862212139837092650141365290114311857921015768617936168673543113026443228239972521975278619801902370858505635032643163067917441585881450595148883535524366642388900815221071868708678654290438823892510615668298627562085498776947814060444882281831521182312684597459384531478718079345026005057011696348592404964816161955002725981490910405961561828705893902585158457912838985417343728184288728606750864746545270557240319783095678797167894836695584536425904849308680378228298112167789651779982029113814135347600429644676852448642042385887308175796231676077442900522579454163498102318635270341540842661049414242946962312377206919617583153543011667029797798304810626999364277732484807953857050145238890545332119779444934033431950958519176508985528001663004708189254811731019381362657497737199971212466381320668490154841175198235091859862092102683013101857135317415180940751959238833874155024155252059240253172482648112754958224421361244853007955610946835125956782772012227804827507400342572622297023494420796355445771989451248768798587137247300156782031571175449539419092286901887968167847759943480773346568170940226294574941087274689933371137192986047708753233000218038187824882080793903885789836880221675872161154993120614356715345889261907322213294299972762882019937771894989193794333704538358039096332108056942968701752471560445335153810499042876649541865743815315172061293033175427575145461507935273714001549035100645493353628292516201314583370439823295788864839226998712250375811895454615503592676712561444078255780390621656992601846760563646351755060528447814488932962389899199656580469872933438764092226047892907408294100392614017684203763362785052823365893304970461848592853885630066903612695552577644418282443248665419464309696862019435743432848220585507091556142929891805053017008917931717544443001866659501326519793150304643753501304029668401266703029670533051471888145480878271728270493829122653469619669020437188819050543500973070733091500064329652687946774228343913403450416886290546323079640148677162852443968630932875279519812326788002809385939934726435480486371874234628664538253780930445123472444870956048291208904324195192597767831172106894624866219062148815772001538849559948659375467598659463436440916861393121873980578711440541639891838360922436367272236341457059583801938989899466411406092268446893992258744368845739463987511498537531483120430190428141200825918802628499083132888851537289134262523487096178050897033271817942055173244500124942917031045935618032676002731830327055763562333716088785342436062314212284979831707429500422223482629217786354567551590212253883929149559588294171922493430432237131453928921082615997667570223338325062961252777581578117296024894565738095690939664430386350973828476274813602465625503730653935784945941309656232548168461606050539169715615752009388510768087185918983874056130940295454645294024362125244247418039448605521598099143122893523477695955365891441383569176279737521449462303722241200215819394524643496724308277268156514880275616663604554055978644112469272367718765139490891942600356698384354358561033011632491319257127404666947754959478716686478251098685023508035917546938362763140061251289209902373934280703248997627800799585894344482273521972299227347719538016764313388186391160295029680135240363493143760477081005820747319024870278410315313052075091594268070099700069278463156980731108121639718144684767945909571168338244809602127358353579591965419956448855189413582466303578557494557967976513588963234742062695595431636642827956526225580904126606052170944760680872720594231460639849045134632301566529521845870829969249681405615559937276694056222900172927457563402482638178577087992005186806444776652580856334517309649867967865899393382321882305526936073757798218193428828626426675592143964471452668773513689254102475845823150723166424892809974284661449141241316143681131642360274960809368323068977626207773751576067242947289971579857571768315126883879324198422520081431187075879740050071267634587443932798898759605042115325988655293863844904900595272992273118232492663411015789521832406400232448742199684529263194309657223777313844149770849707802186072611957942853635898062068846299193730096987640907327890343039440292107172262605580191715077462179038439385347341974959753756446543886559980475237431302848172542488652234634573535498374678426055430921468028844753070388191123156837916779022025033360481998676241221371500257660899135680551264050163469325467404025632937613907024645223408956829920591948303122013680765960675893129336843048725706198507060761677278829083210652933606617787848026387921127003532355095685762971526696488559725429173145722460012627292317629775055178787507010556866249896416707140137512882862843750432200887177461892393504045841689709718274546773302628348952253948532101709256071948424373518983804107511467786409854223035452654199641770140937934063571492592773485961390654247024289306031135578079656010179045886653106656766361253029429081280895965402853342701963461716580358265037145485349001390833452904279828181877602782927694136450025561334383471357792041192453050040327872138025720590943656306435357368426589793311775367368307477682661438756037776281086839411611399387713823870588520916533184074121337174556845491511283290328941904413134979738330654572658839181271715859567897278623220942946339998871365014505744159366286843663173562301213659592222438988398193909828819172373811025894528375297439328998936121603137546514006103909344953001607020885593143757302198432174631020457028548175456032025212107497231036057066274125944586776461472771526574126618782652515175689011508178524042468893547608772948594084070814291067071267750260225342902395749217496921054985815702855886066908676559876366589176783030622828278362936148051941326043212203388205903989978696702424673166570693470943223325609276426387994086671166672719099883784596974239718418020146135810848734900003061175443663286240956863249553752427628782583467381561251581000535904904242713647454153360789824342337701854381261386472232718142309596922836482043004744024860452201369877114781449154030487904681749404894664833349687152991740611886183458751920701837813513399021386437709678340941984435831327428740173874454286094426720774133009434557761892625315480123555527637754066232541773400563165931582532680592101633552620474657681712676104622417103556492869635894347055345061124277313496209697915197179796334399254690808252243588808423754462320779359378372113893657902045822758967369216959811233177259716261414716407468321857251830594640122097036046928310606850789442374432116740603899900094416090461263629306846302522747289870541996608241051648880515057225865634181319244063113545198292359620735855655513481231353978160483429956697549837283799197111840707540400069206716318107473402101802705915672120518284533895451028533192729356636127170911717633674678655133180327972285921056116895773810584644635856547891504315694295872462408360034571185637164550202141038147768288113373600298481779030890292694863384906046617838097720650213979029601997932087670237667168777594364223049484473135452259649581370240091542881629703927549085553072037707586884407816655012721205912820412837188887073337309718919510803692122420699876411736650600180106314155621167076358163389580250854541553336761510512867506888733680100201825589105415776287301407918341416797713049063887728223782248265972697695849417177973861737531005590080809413251484247161281100257249258652671593944514604309522705213651664101955780039395647832102723332681898070654397083968810338247563600374718163425141601035733443938318402386732143710923689838276559376946396896733130058995994427940553708058105597951692532551178265539997094304167562015875504421162253913108418970712961087140110422654307355329864500231527200327919820816052200477779875574464366577175393801482729842614400656995137795763260971445775735213765906368260931700720800147111733521435025830855231582447031254575902929675183708288010983764375140062881762216553801360503965004952257033017187610974454282948528116662474984714075886809525678302861908947935656265456870566304526976652516819134934226740034515685818659431207453674076477568772288725133579551205193514784079143305607365501557358202954135851089888659414547168515318514565713707578586468273410666500358521825700160188697678523229517081155262445194755336884858395341058745186817498447091645200713155314950510887710202820394398886298329962081714790928965851952130463288739435137734894086013574337729844356568048185014864359458653718298109049163512921392260785542463149070816432583175529076465500385001621883142664854694348706884252950578378622055407594425359020640941350496673988595903650644777582217794275436908903791467157036975412567699634341382193143374199684598820845612600665204916869040233580846499792967404193262078114735012761622630617337745738053055778362343738228457508888101968775992591594730674221383605430119943877955233696919839023730035869506703941604468058907947861248881827863080085918081309473619410423147038711600347509543830061442859895066862078659419675287271155491997522804571865672362694826115078912428329466323888777818106910709823883060533988403915066025439467931360649534168045308080582016800949736048721481255066078696017807415820080316017110356540315620420511629821880659196928798803162975529387752678227087429776270345994103219878337887768111748282980612555065981417504672323618136214490970339772455982454428369603654284925028926738602669314369001145362431089158889779740364315124701837813247401623437522613911848767154484311284198286382662096443852405336855968970835844718619767724059951034574432204145793444321515468541934380308552110497145492988718411921579746769175625667416147970549684723127040961675389794882297976189507728055969337389059669444324358997201924032568887208070677353300023500013880334823613981822716993934248546691517799052433139522640731205203383501211063544834628298252034623891097005771620950523520595992928652652375101565191187650404678505955024785514261319601318713177578668576105069902250239332592915336683699201048583384990397425641936147242474042893584558807537246523816264671639713499597950598455793951501133743710013272382550935367619422718283046820517646679996382528507442797235268234051697621129907131186148278303625628987686076828662723169170625994912596649383423879666867933956141687965872587466753617892825285009345303535735491671481655000558875567397897082583330023674408341339578695237167001362476346718013901119534894049462031158192774114129713975748199009362218154290996267852691172902943071712228875742438830103120757786092068824579527203885282811049278134061594962943442263440230951480074590756939650414547546515275213954089945998317186594153681826621245713373087442522801966752853748122721772412731230012568569126033399516560395226746226213096923861654774991270933346277672465280231842789749331741749450082004047650679385159827252544219539034852222519993044913304913787521457424349810629687982286309324860077987133259008355355878781769955195205535426700469161152492389752855925391291849465787883403063442014320904574077505842202685600352580388763033432900692142265100650850486493945062294509059194738402563161103656556851937234415888038870642231549973026195020029492557153638350256370360212657425296151220481760441261651971947821833176472835190519450695906357785675022544083981847276882210375147642190313204573284928650651560654401539786584289483757157286869509887264843024805976140866660581971667985177906014487556753274538903278309655798396579784624063869974377222839423375610945284465395812077175527949374993664636320745734976515714851053978766518170452971805473499947795572427758930657001084686131881634326460428112302456404531776085449671263935833391611069080599233141609406744322342845798797649572903579849660420201157674755609685915337612156039140223390912187585975086207870049867363306117365841282962727545791975236230447950942789007719267788781527706648893108335821832071098110628997636701542275884636298925719190912321403648079973667784894486419366907853179889537657394731137475186212989819837566745198633028811169947884571441364925543452946327910585465519036981700668045852434252967391768789484074807439070300358925951372757479918919691486971004353676750218691596774130221730151785515269308747828735560287859952082660206164379548524010088596823206277917674909659267736166129303475694142809538445790723603446101838146732222346358207340211499114561587769568081867994154268067151867629177397879429255646962808955818053262989643930558972784447609307578455791474913220197192856547039119684120558333514151864426866312522054973514936974716717963179252948087205002984599018795599536940826272631476922855422004385901534270509858707883213769928622464014587232715893658748053633427016671970948548134592258129239946069525600226896784983933899750236723216001135543454065415935741040171741244810182793037262859138486925175676947242623074080367572918474234277076162739596748492452870901542217078996383030762042477354414666710552816552007122083727734927069350377518683520507882034959264310392298858018081589548758561474491948015039331008856133443486481504360835173051602424574430009591602852448459663761791464208198771571142840799521285294453601794530133052915831539433551984304554243680740537752983691418499618443116675349153946796603443448087481308466309519918284420868491311297653014208448549553019324818297441237842382452785511946190288347243606253480605085202836868040979378270504437305638349790289031702389402342487563991099478921851727718443817843632576434335903940293473907043616820397379148824044190251393801572621553582247069205195119324094682674393824180154352142747491203681583167941614706806196202285190334827997136169593079847617503476006307312122354688021901244627366504459240770770182237155218541997165691197078594610701648121429865827882750115238080567160492680654215104433945701441830607914065059237277133051085135369038315297872770806045623788051785296701330368192100719554898507013035110059668342722613099178206928359808919943395849888705617377182712664477503684240870650513774231762976988685722478948886984029854389379673341035227739438572825319106511665588533341031284413303872985385977047831436346753599935577630122441051765624238861139105111636319057087018268678689286614940513456505586365769044429464365344881366637287037089265209700995188433861065381691998761956075359270513553303252025034649172914915516930270839134559137893055712467911268552043351130883634862503277522518109979413148527142133538106850473031375600025476398170268072207377279515181288181912478706813425001715796549288064020869311452966566158946227133431012340494582838952201291382629615399903429499513544263254938685114522582627728673899691773525494889549752699072081624431367256360060928716348707378363186227954543401560634511461869521057236930386811714298645363263272491756163885374101901870123018255091188706396512574492149945600385973794478802542145768136152425164999606907488826675808385674724490953751943556027084739622988097655722711863763295292830493250203955713870377408847171232549826550171725678357986671373155340238818871364710587852550211780957024227135678184768225101807012854864809667571037448014533180083729387543824722985076325943509412614140153803344094415313350097278750730050631333066881825856484473848542909026407953889062863223989201568161663186288713116744787583971436632757763293232365025641038130542170098814290051158005699179928136725184809730598177842786023485625524547145742943553108061452167102908104479465713698358866183356977502971320807391778709380485134576734652705189719470187679229937382110722649581133569864042879916006131446037072812291838088617865607792329406080558384726233728347389873278640933276008015141042972422735632141990415347218619945300749872607670811890212168940720701970269758563508827763505050542320797942922871631018739260515746525582020310368662760338284729725832888940462072830725207577585489561495632153864569573561767972808735261022807016840149568665759213312988866569584589983891096363889021864144382282397714402641517599193165642700219373751806291574421828802707882980393612730170758296947053651017904263660385288025491577106611673058888478605142207428328812203942608262836864605097942751461226530391123870989752760249728416046512330596829593407776565111709740600899869167322232579261935182389123528681903445754914803955338476791274033585592787891396722703039953834769688779970617704210323133053751370270255586642437961429164713479744543459441877149074721263722557703573278720040896755724956139494970482964996226009743706407684644053245684723757249970064037854325757043263369417015911497699634275630373135686936831921678722959390225231337420410570938003056626911971058241873828830264941279668794798065073918715891764643158719094803019352801158517049880914938469352830424881928180290090930152352885667966786383981442842479380443430953185008751762372437371091869734645773798090218853216572016500989132959615534314133116826824420104581011451302727759641380410889542935638789870082579129521539954242149346516819602669050296776167920518464212366447645441049433932504288846515258828623185171695040831716282043540914437045866137071287409844285447888203551903339986648263257344232279717263291660864879429820195741945704999341974735574767971127371481445292752635579848427662135073692985306351269440053009364792813002639550192986597547654032108385654116134380890631995037173741183724981003578700957950952344081619081388352467950043156931547120056775089349660211616424148971388170582509301681277267851287734882613026149116538893152930683060588318076929817209848648437187609126036208507340732416597896250935582880477450957778023898986281339145115429005547882717436960302641043140520200596119167963539508353437225997004153858186268379259148585839859299216345256214663405865939626095850547078284153245554600221072707629868322054960799713502663500820794390950642354181017004148165649889000719413997949456571651281509384881500723264635806891827045583258285223767985634516149603984693332072854605629007869773533597323115259049043828902824019244656744408614676638788175823225342538394148318632098702980709280019929014967429528434860270084795440670442593916014595378621417253082940184287105216186597066693788336974870837355182289975152365088454374074236830528380501082252804187437013282171326440531609129956803310059740569214109604670801413734185282940205429277046549831874397108955288908943375485345854338494738294571265830036738020275498790218823447481433140326439423854548865599436905562415091251282615349412272500242118024690268332474999498697871295710992341463334201824002659036224525946587099937506322694439436102694847435497253680465204138680728208425529430206409410282128722328896631573152343187255774832608732025280196444542884355394174374140143779415797916883126554125874029502911923669699573460173796582491456983254147170708811905722710187845025436354255148655067631860182174981335361378013895509027042730932312624379142871346935522741297258348324125659509859624477893787615628930210531852368367256840068089118198666893241753068999734521668511770000935683924147278015067217353505432693703165981013178360039550989047597424846052897057377278968088767563057605150375502001980904235469810880325025435812383341004461773059303690230869187059609299296398347121841964197236448641210118077123619510595871322277308241477288852846380764395503255602289380152479344476021294988551037984428045237572743592807109671064854996551835501685980300892336135252400246809327820988418522870952981324156740008047871130831613277824454007865468446660265745690843125862713829268411416804312099047328384155207614842145935743706223654285893340871050183507366435385750973754668517482898237636807259903402977487582857512408101008322046079950320808241076274893250521369193541541985554047988833183179156565122739972946417109909393319053918361928127331820799395668722505721090620600885609243736403626168342374340933137124124378464565189558472000765508170901164218589131197031437833208336133893675352084051750177204699844573855295980344538997175090901742930902007408194446549113962653154177116230858331982970608800643513948637501343862958237386500132215534824698506054576807641889176340129671953735657496010199204935626415509058463400147382246104985785765421144407772403615071202468504703010952024915936552270090648076978000703296979847073164118010794662693887000456031495400798362177361497837249158459468215747115660872827155941555743994756395157527721216714946749494255902196860221282516566174983818714757677271322277552951870473817808007999428239298968154877260766673718656131510645374253168754623131413683084688707168719219746320747644674240104520487946147828626063224424788222534737665771001673623242918700499458239755151683501862911924621948218719168174501115315646746517185185985718830717939113209704209307225209508388362202422603976705899234375408541724881983536814265149343550451122657574388218534849016418970425120589319263459330406795499651630281816186123295924430665167960527464080398452846473785119883624677655991733371346164517688203111493784835867243933352750003174616343010211860930708037881163665074262911716483576110291923262563998346210024839659916170625837348347357262383595995919453816297928678041221431483148890453413050921640735558479503838648878376795161078029656954925693705447105068364109458702477856627194773231137029248818279944030597220168731330355351485285497503539932733295090892549206162457326752480910211530180499577668638541539928383984043257582829053193066954055580086814937684327691947335500630578565054849149911660174813735031646596717260524439478206963599168728225310874336288395236180467920903979101868176920943860900204742009499356137328195836429740093941946000826841222999494163793381595694370680842379734972647114676271332907060349777486292207299579117366736127253916378805485952021634575972228475024091280281075797631630422910793434228447480658786732092195340400580101322493578443665427083519924504215913034671704281316562288884222628093211641661226646917138977035879118087573998403353098883239342705289986560399146848960970707627149749046029117882644393423442633685325994586263489772199551924234993272595236923057950560472035568763309588757177463626492346906648420078552644041667538868684531431539013672391267860049297384369504385743488793213802338930537311016063901576649753482222725649668114544295514640999617292504502035089065396367212762635988856566947413143304769038811127290403925413200294941204760132979964054210633674807788984220447143734595595339759376218278789911971602103222655286191821289922830296619226414032778967496600313170673175475751798538964786590545459234368239775382493666840830240889123222108343555406597766939701506480230003475123930397513822617587772128159774509964303783032702961515998476162538759832813528744405848376547738736483669647718754107755938701036858337073857290756333717166584260562900252352497359792622137007844884787153830888273009586065601102445064167699768801243877395245165341068101237603870890637154254981748511959262383834850434560348344984214803840886854102777192761860005874820728922571095889253642928694447622997579613996725268107420733829488971511721389501638188661097630353032387850886076453490751049710770470649971007978302524322683631331336884103643918489972711323309995349330988529616932795496114238087963935861896400515884865662102215734499799990332675194253878646705587477340668410346181691259401633522301349747044168747860283175660458316724555794966276803115126665421648511056179974986259369045707616242171223729145896116381418953088398358706172728585466692522582810327011260458330418088643059363935778812542597993074991158554206426190722454354366299513665985302037187188080213244766209346300862091455792581630602446598228699198222863874622639858927769909424519079125210520732849642787145611941608132496269809735063453181952347091974203233317672329205156273640516997948833333636711563054303957090396570127767206616924422975439275934573922195410384442921500531432331191325907090224307253620787804261713047368765333145301386517296766683026336648079106675201874434454287305173892823193785077238546715041506142630947426043266924559277001496115794603819221986262615886907118287914498636356303872880316972393290798871821586522271287132566876079665533044263837145462630935372468085454261655753422220972746971865475236496594174171924704277789777418568202719265544978614565959775793074804885581113464948669353833170149074026865216579684602989928978250606827829970973855126088114960489266637211760954733780767421929920803405525709860693092749469112969074401226369136386296644298603485051947504142038293736127562454965619403466651592614278275198072794171756019337909202875290210725040749408421846065988913930461003374880821499016304907521088108471030661929074563028428315632106054067723858813483617623566095928744176357003740483781914337940044161780706349354031289651373294665931554728429272378319005023702724244028167226711299719473550782841814910181308892346386644178797221853727566865619933117441623590150934182669635363256967927765520100844999464167716332158838071515449496342264988799808862397811445324069484562890825696557761071782493428076700975998143801618656673171341489994563920764273275150425754156613585611565110372197491131729574487270390011820244950652358009788607555574448690249128617930457200754129273025062935229183265729745406015577465954709395123947203749757428134519311291597363737918179550712192472769673450114367692811567311558673859561482201500481185438917650801770470888495507370802870541371859318635217356066088535159851367569400738525658519078984802490447457621415930622194552835674228441591600490840987279945019797710642890148006714384308536790838830495107537120164844117721603820354426376663505342227718715518438970806465376383913779124559225123199959941922390909096836551114454241194941727511454563257782410509527291280810649617977706097105438114080641687033599977867740993408073189528645911905121516578571045623524166315145322526486062756310877301194494455819987835207529799707432966142371350410416648274876042434898193540454834402418383281980371548075230536311389576478106793234120955919536562792507723743325431742150042507621878265003707736363394316957721064638129371899917073556995028304371435799287252247508454591520257031341722905690364462779495385627580371023993047249963595470732223768189399904588485384797488793772555183425520982567804573397265018611680983002986942712674327349215132856457490294126133119220044773694823636666092400923357767027196837797148011122605657162637948063830146869973338307970888152002366079161559435508862745232362266701815042817613560445941962888097594381437247792918333434997935676321391650090763824636185179885419244347938337791731814105588828110171529175101284255955183862880583204653441211998130471210522806453932154908038934785623208533340684577821674505131103907159960740266483387725216502472200123309450327943760942119504585287496299045448271404752491984511298147362315375218001542875282886225534139342941017527647970511190923654703690627550698466093216372400252925597254383661334766557155983656342913686288162135205792356849755581456957675334033825669478350692602079999675465553025798294449523986440850778347721161585305260130578129670544154450706909098080381105066922919520071592843277816968460743799123214467131141296652837221399554452836899642570253757032131266816571126724520052155331572770362466136185538891597653220411459835783947742905309900973573377184850733256324196543647931543928440716282758163839263125571211736467685090592252348851739627856596231248272280139830557328971079459609832961300194192862386369379606392968071277485773185724948534254608800648356576371178153075337521359708388531894093593585321325213582247621066400030860127987613241836017171407519330772423334857610708449690709982958221995076333720312996409621135666548168456216682050395441423818171869836290532524763150397084395286264606613165884897290740224648857342875282566612286346793312179775323806361147154487772602510557702684184110136388356005147913782821846851308796318228977597994363613220422369925703342085132013251077711656700355677945965657053841654661055185335801588500833174266959476267700355891045183131801654945933530681648018890571243121029004004239961757015697387891568602756418321574552904955472305785072066449884279931982253792287309795662161746980317251191177016580514430936701653544706997611946607877702120402731173198215539826830497699430064344430508953178852985550769359276950074807771365564457723524696897038394975657889185705897101481559625382765272965901319553964199631808097629767020229430628564133274981161712347219742536360517722531654774381628092538865639596273619139353802865507821056956224036824007642009628925208305081367260299146652165035593236107982712993599894097294346017845927974259333024224944360721915113109896851347410895327999999026727895468795610447135902904647012282993258170621470142405020379234582293548013543585271443118006689394161626899803626921602638096929652035371042151341838220574226978400822491644722787987481299341266914685288205139155479521856673440754722143051304361715714616860953256340403413468810013220267185069142817811322020928322698110010708425709125049937210321033658701713355549680806561394338181155453218283767889252444906813157328455153414240953450874100582894392157000565179078257039112455156428902578706570745599124155174992477212328823701976134130994448419289622547800750375864929137584043953495655505495854535163242406153183829815485664058161390944796597833213543473468305881346355992448354194925513128349292846217052524586129487209790443432067947247905866183340419766216319966890066607513966574023207259328859811856743231183370088409476512352008072675376124568576370716898548530162293825523694674403866947979835389044304905422851636588609998787064987348154150965672649114013401609652959611633127134230591401528508011686812040209332698881882989310497828700495115748495510330786659612489591983749879291874298266331329604862427261335855744204226692275453197609976811836414263020774264336079829062110690504827683831796032699579243660420120700157416436911685588864301322374159247891823962443503736920787790049421911522867514228112646495325777156371349076530446134808172944587606825898301575571341889984989364871158269159536823654585723089113095986341191984385676033440184746591772258455819509375183773215892050232155886782899557123322633838044636585115890225294293718375116195021926862628760045802793119581526910711341884535333841526248546139010453624922115616522853957877601010631644164312790841008580052456176768467980602968366480148440741458345999725470259481781742978134428516431802764143632819972821735884110179372640410914031116870297412352545377990327028488662447789770491020348627628782085126517136782963927900894465137249493235332184714326614857844749863324645193451637625310316052979114985247466722790676941658884189025478536220010781194178152036334962328365912096413815112716180748670633515294720865417402114557851814228647254744919251420922943570733145472014531115441326651381034419708620691397705523465522204115962670842090263210207105123041270686457073530588782106863741171800543326528995950340877485809115107140508955736278919204863260884773790727306477626472029264266372437438348736995328141533782599298198692405816508745711822184679416956755201868014152991644046349385892474585142360546237396972644447245426751972052346322601848131638996028510820318608747312971711356853185333143648611556355385413163483895234247817067621977230674167912407016242639013304435290815440117556165170469230137342958520916159117779542268723245137054927588714319474226682970046750512423829675198213395647609353632235811055171926310357985619987351563702839112196791845500626522462378625475499057245896923567745893064982549891683129678494879923790678000214321697646887346839733045672435071858029450935011899344735806418542024954488850024903701832320668626941654096355813135320981493443556054926015705547392905381232374804985721980150498797046586055982408285584140464133429814551343043628193058065305266566008735168320820572977264639935875502849185934144612606513353229197828609549329105923768772912988608079485951518960468906504093516330524913647134298334086170490945137849788571912016323648461641003001528724878868406576249549605658843595830993657659459504008748696573136658269388777848509866975571270356264908964021995683657360277644745404466683504043967129851554252337620742604862174797735965672996325741836123473079248434775131684034206674347277560604982383718474195126695503721332826209253306624274147732089680367882609552510941672738615471389408214360981424507563658958688399881074216430155497681943884547815044913237468278709002843219407722586218519908491181836880078099089823794279935619946813983572528517795569103451784493049132686938163143597011148884462927654501211891958976669486590763155415835459186210499430366721838156489564688325342124426124368824288832530262790953128938239241332619841403144983858833136352162750844342384988647941841005373523629128901696725034780369886403275484902319350789909043029910385976838470319600500513309948839780934069449009804530750590957869202996692651725141819067554195426001301778169228499644932977263468381162876010397872724875175859894805335912775864667291585389280733570321761564482166126838904196505014610649686780756504868663902100816775855195861721990713230678022112516590965889790197883403487064663833016284607596677923916609260614783189226769894500481681577642573913447136393733381321574731611406945681002299554637975868676519813222982404924895916124979723912289413350965482953752536922627159085839860378570233429634904491037520615685413728191157512484313772199407154654487419849142195575614208013479204796683282538115640747203263505564334376070476727766525845395453495836994463327650688430988351660381601174072392813500963929474695456478807672184315646729794991058061273073903833882762223696813829678352563969713911760472137616435090150793528374461343187573271973497527389404669073776355617708546029469533097114391121941930136015953847046350408648996876223232080999652770704222324625403078957002967304439250608945840596607144553886029297952802924860362278493223981131795866035152824872539101933946613610881323917501764364023413515289070358785279521206331745917758617066045222852998900273729050259067796761280622504214262699940491731353380935380126614499906751819361125488510362663028013071442298811728763243823264892991295018701600790176933742436749853098262572766764909554664688829474256095270795283397117769104777536441316863834705074992995938466917696141640367787589029359692379889340726749182879489326783679541792247784792302373118601960488364939566285986774558349463483854989058498509179172115044061932926345271795670861308827848829234822071061149752257540395540458855764828185121559963378267007181516821777135118767184946845906598385462956131459094052437510587565892848638276843328705073147175668377691950169440801686580922665690297128663688780608715889283644576155177427146506440720187848944463662568435270021995959891256907407671389580311841986632349842032438919523775380745044471518369712235363461981807347068535122634242979126492013213346062573952359327489744848278232477342848235510280454501690818449983969573415244784807559104551631000027478542613362455711704076833042263359180126894448289952912686899046134055768237495157999840410326199833587112598384666970003808738204402785060905095176015316499467630139065818740830416517162867682236575301555705801906703706224571903800324794661787770017981167814966608808982229726758162356682663580203676435062121513503706227150401137866034114940011317001365034403172197084241851018362468983094141898369953376222335051181756110341207069103731668206559280687935597918059533372626569125979819038869073795219542468065243819464333617051117536153884802548380514941077039807700059779672597961286518352989533232154579458172012609635175931765669252370747242140902366364826881144466916443349479199098721314369139996265767212462478233694986271410162249326715533969313678120242332129799730616770374597021275859226239181061232166629635138398028148312984633672201496396298215238015879092656194607333230451419700191962117317517945678129481013410149887554148608961927324680624082085183852691857642094376834259337110038874920789282209042905242359997883978553254513782204868924696019471755565529016259095334226806816931072135115158808876861290414867649762294194293432279852025724938469282944654205938900267160750178651441012825728180167174121182762483628779392920380782504070793007852853301869418055493578916693611408118321511016765018610567978480647410986096272350039989185103460217501329414580123007784332419033639255831872531500209830616621595895781615917330971006850141716142799757013061318895771309068511587673056861749827266943826332658922286272772745160111186329173506545695892469908573922170100755774332028469948223302725993518160007573222903111021336059220913159582355321097432252795689801765365934798720217996030396146633951419486863395391528007774270641332027521909200534384799432151172456545796853608772753127813444874425735656664837572925232733492628198996404852874373924682531447734266062499959924756032866657706470819801242519362351684241320756627698484605554969769956053174410084978998650407086677542989909900269597876656935513470567311710992607626556434029411518654708220589066418932824074915663352323103717765064305130431655834455987387457235713645904298131517091858755971084573120464827122242700292995674209226163993719071953060990072308356699677102729286829642137799797712580405861927534321284119330848805674343699144994709387628335609438760557350904998106210037595281996309475354120426653176330762278980597088815739932493191492485939628217535850533637374371392736614998908918294967029765765530383720504336129308644839491118873159340150001708125272470378024849888543116590267002359076532998083443183650454624116313952714335691276308006047494933471000304320684177568104584003377551087782758707905509720557517473296265356942746654173875316387684290614653132091821992479640524938997845206911043544701885577117342923443578564958399728218039232969420597892750190979137060968457133343321557604944864787552065080408866476104837939254172768140688994792342188475192355845324690632558061396537057760489148623820564736333100045253621982172343456618715951175220228099331037206660723654228814036165945905463106427044128037957372999806645202815667257084874703872101978622299238498862678592629385583805833213081754228057788847886741167211869265310828601785801460582963696595595184728485537081872565785741598250360912337955803039342777507264257171808219049374660333517593321369591240776836044362449524822765261471700508069569425963942517744581695147477354174629907499528621292291238969857684981677171335417300784265913718596630828283070774218712909968799905887566161846460866417233817591061765417810704423103933624066854860567464200492591647165393090921977726681941779099362356418333928955777199013350773342677494066567894322261056826092280987296297192776629987316014282401435160657516588946610270874182267075867663221798211023074591723785617733061979149251277049324190679913389435919007450803669095088178130823504680200729176423705463899404531069012418730456966567685453101754417405431782507615667826001615306123073299321295016443732056443760920720493491210391675880321551352625048322043134285531472616260355370958353115108131693747839466547315349612202669635039329237751259577762166021534284272298703504734462028158435073136051736776005168466166663675390654089867340690598715191559438639916289840520979872999102144020932903955820017547888590685939973000331193091498694170542839710157411572645322898057222094960695070507509731855066585296644445927998703035179469415320996183618860839441666715924776833940656654475089007847607463070718874870966967171266033391282888589282938929845985173179010174454252573393199364016915104936886047843261841407679209912051332824667001095405087867759593472482806862378401589416139424004644275658438714385458706275673130613347995386603151671051178110260777614944046004134528921929341289721496389031381699900900080498699908967922793046309800246823691516375919057397769024785651580368576682179078731325423557101162723961763922953630080800669157323237206214709680834084712205281895020419157830369583629370515828990503933602689379007654412447616844180149020048877852708091336081440302649279176340193310630515974059239663607866870142117374406639455538625806187992265573319602708446241836655344232739305416060664864003419691399717977746787094463869339815669402169421843200682867502173136628349974643683237942260315450087508891281225751189615486569898872048936385809978872195598434550569480470660457660741914490780594973194352636624570644059074851064719536665076210681795863672692508979713445580898188984567041545992347180055724202650293566871623097983330343095547373920106699268608119976239090491974071377281276130173411184343787116164200188036670548183784881501533148877316826034820684963990594622053923888251873511243200554387633983625993651440499317921053020566158753490459848966934165323831473048235274915670013742880771054678229107537913296596463981123889276191009471313793428522949947271501773590052284738629143529871079798133451722580123761100122008461303920116998379103689831803386196028750625847348547214480330652949606045616850638276694729967347162659640043484170818735411757173338174354675953127202892513217050917568218357866571165920081811849190690121085064984160890784665879303077182363873017791547625756210334060773629246564528080491779774753186239801585969414314628953046328116732752058139804096219452280548790439713511506247739429675660874889871757025895256155604030793813459993692413036408650754755319043518557827197980617386052719074757345127679266293436943772785924083359424072454171032257655922869045073414964947774598591042468639515522591818047706626694983103436695748345794534074160928631493138111247518316481272505221609049932310962345737076908250387284310330845846704762850441622891496732765844562358617664254145220812873691220781295990166176168951958955676818165909975817594935710690880346579868564719065077061265098061106128087564665330686784145640491737395052898464850119719468507776478753324496808071527070897199691847539855054504026122989565057588757201973659971570885513987852053076449108705159611087262427915486404751702674479985573022552368976173569918689861434543372446348939776558360752930273233414409928434285855142809941314320919388058234775756868704289847188343211759295384174753473022731706406568497778178925467642670536018865939409820960451852320825144658364996834591510601293964610872407465197276355254288371246662365952834209333604569089985270658353661638117162904703302119699306742704741238408874652837962572714110756544442097959402191375516960460526680872927076100757158180371110367302712952268658720965892364955842754614119292030642793790634823186089157328011203509452789662324438464019812116963171320753409277488089962233548592312938459557877864477925877444658564023925830728612309055522129129949112848243229753206108430364742632213375442905087706177563268480052682026006655781861929834563835467438169764819210649620951036776980447328003429584636707552330370168915939969147471139989308172766169181512984716568254309623733671905020724276549207780550402137915955587429345186238748379180610481015172251427748601058634813487673091261499785626860789862748571074002544130746841851026382009774904683293669644579418955765547129681188170734266166175852158043414031047237168470732803988011520966780770799864693700699083877000004720147076866508726102292219880111017990629785622427948605556293023018406920571783635194253935182790555748035578309100796154514098665974434446554648291685881702594662439781299459422214460073335123939267148439005573633614471624193988585008253929148110614120098389897314756138314946121607796377575689310478704617093225955733322553226105452712616669887509844058639432721833291216136858784806783872658308362699510694681877886109005006352524729322620947665844074364149408772980721170939647297934672779325047284527311842020963183176302545990789611186477360451117406927762051247934526623129459813793086154299189798770224594130313994430471086577849273366809980293988599633686488362582139430314670285491202117875338938288365841261939022713552196693031723485398377815869702087849121419015492018725278045294404164412883678157303305781606091736407396901952543442233786623196860347846951407941070970780778621132215987242250558443691837803513353877347170773793026841684900371335849101996361132239165312812084717363192400277220987059877874875670107780227172582118689122171665226924100878934183652843324013779718134887144930073807990027518969162629114140350274790208336676329205784289938264538177636622406704539119679703877831568508034793167791013750514246154133074579418925638993045888019650134541787030872280775018650895540887921261113661948242879913604852198313557899612990870092992210758862042431835562229461492137724202336662852411203778391269873481834352050579123545472289600930558690540497994687293877594374385924828991176343123755568112756124025370874815847227962208032618962931483282480196837163110894577057526361949267246937075868283374232507715351426455499075109005259626802991028666428769424563402325218697346730742055112164202189399750407394472420245304804102905047190044352002050293087669826079560161899173072968582805818805448632705757211024923572847845308230833879762116931764995677844485923324412186669281862235870636322441256958323450989502323547293245725693690751037306867774091737430915874509741436534934413356767178703791430034337478872831898696798799756322971794996339518418887900489856638154676229303251189873760518461043947229587891263433352967859906506271914962987868152140462539950367256487513545910265358509713698533647543420525414414977899092923732996834824404749805835194895788342209599682605076916191929412186563453637583668790037393551231900445084346118212114419525066913134326341948864833206148529361482405496356270190629358888012373452115278166941902603354144189654162514105174122464806657642023742921164256045548815150266864927957201101803615786592940704172348215806669921788804805335617059836347713711166103860323911832704438469864750467509958836619928295266675533465380168899220571712540204020960319453808218505106921278563401660154889189491164992104681995627242289416811998234272127987082437780085340049389810122512784041313220344404887626098392327784233138513781718008070226944535557922847414651526723925859463872855782900744897013169453785820100847151589798179187388313061527581879399641872965599182490008088209735680120073558974062934853914462566323998636743991209789468247358637718483951715826772945352436150764813638701783287663247333222595595730304222760887567885903402113126157596210767609423224072772362300711869514113576296130161718404325160309909378783921530786951607522068498448820111683468520166503576147000259641644122399280992282448397237678262760729896400140289987027477267996523221520847899506675384239993655860260570042510804699731998146807730132520540637175599729858598479463377171767092461045083558025002615431786666342042279084834924667356814138185520771945214065335739832825101421111382866881882140861610790231704346398165650816930770208552465069340354296105115170576521064417695375925550439770887534741587826871734427846382027798194343526063655384894352327208976940799524054913118225509594141544640217521864086596271171961752497438733318689963165315890412586510782110931132968368755770404526111049601637221555456647199492614181738953299992784822800503477307443172339456530304508287277050617565651730722397312946401465431959817653457147385456882226146626923100125038026568560473029016878096431308176763135316391797309727613498721812132103898132564920272254386163748992128940408276840804378283944245657435952480544453783047890913544645484767959484918792542369779421946355380006086646207479165671054266906450254051497146738057494361162873432076077761358714073747190851030141094993862447245048179537095048622633121919781423756427999204588279338839809607760613021323107962971878889967751520154038291862302021928053530589932433226530251478323775862020340833991335174454702190626703264295798729591272252145111278707114232694446310640061973134847352340271193164950214523629473801895771212120022623781202753295241593338662479669544858806718663007004968433266394647542698733135305616142451416275001747818718683475402164190951018551075808404259965230521981812973635995662163967745044447141392768489955306139099557146984721151085216988897087906838312468905135514917178907616603774477908544757060174506917826009668178316528459199805745701592383149753014242852352470569063785608860520126085519008385456086542982162276769669175702607654933142201487095848399129204685034444283715921922344225640999616788475415748984274376425066404398694683615186045265322869916914026913751736817205931120751452161819433742198267720242960214954632965714621979229346277056562763187484044626257967789209464973039886830780514204479439987123224267789646430968540098923117810392839413998678431147784623670812696540549514295546570379270684289167332433008925033974348678239915420125665867366713842843927626304527038451073833283185852392635242763386992089418703201111512004656545006849698582254539915155000540777281935610469304222245522421555023900366599997809503234945082493479095616934006546966461958693237600664829634652283890303418552870104401920725956078990243468211529130634224286448751160565691011763435590495394494148222018320509756576532273941129723245340563293963928255890408352961082713405838615761613963291727120798875497433356027471963935252369861503716749425146010863992652016672308656690041506068632475142373861925775877017193614787191446570294869259359722364760985893956481423297065014167507103542146286867104341711135228482038996682344773362238948926380667217335933202099640109531178523641717485894774170105677166386168906676243366566827721530073751499817105433850488222621727273230476251047566741205072162749370922278733594903909096957310794978085853554878342026932840795919259292235046498795977119346796631457893901793476295908816626178974822780237895536755448328976996969150349867613293637893125019246064127201975271894412913423989218805330656172224089941866399724605507994024871358570820755349971789592409777395223929660353632590138340553174234921083856175980772773258279422748613639131177233041498672032636832848052342377506240125171966137919274670858599884387256488261703861015752975049822893608480456246233836853166806494164375813119449789562406872687559766187232702525642803625742499071708909594453545781684183235332779254133259327606372868081778199004289507828107103415684646248430157645927222496290005375365974920047993856548218445261059853999124735273270395018292852301535269797164103462280358750625458199992008018410969029453106319197001326168962032845826782929053388300773256692727413151551283812150808403630396448471740003397763717733466974619207543541095942729695943477178576307802074296332928051362349976570227179837612035520401905029770341896027986588163071008731237303072534513670543868708929470253642234271464408551839656164799839757475278216235365029317986712372624569272490772085014197300056244028593261747979668002105690537094052602025663184818072755267266486896084826922379589854519626708769695350466423508297706042615194625216580504709129994496656061787156484977336163225632148760779085215233599001559224448312507234869402852561992472845062613372146066629253241891483666435614047295981075964710589821754143247794470659211914529328451412007964811859415268558819200489438058192604449939447457272462175503537505439447620300988144841913593940863233099297037944506181222054576150153423182094807723710467729107139584977540906184897078364905006576910845325192279837993349988693664927132995852293370135863599736654697253976656992151256838069043326382322886184067756781024201128583516309267680462783730258477755042104670749483571781036979373063298184842655946826354200258532631160734175492848428921916713581265517024021404447668023267614151887730564416818477067645664840587162984189501829676549206063448326007152587143797653116304491051718169790446201498866985747538135839644186120773643547363949376746570733944596327942404618257701687438609053425237916403860606937329337923341474855360331655950071270255825252056792361743346174477250151122603206049638732776020948027340980816963932987150200002097730133397521380341501965315919638435857793328457980271330766435664162931415071534455417750766609221125683699837019363565012889278537851124325097380906959105837525353839147397286327766471245167305869753299236933485101718286678183915644559950590340945461176284948661647915055223278878358199413397699082446756884628734322230928004879323833907455010735004795959400265978488977862268735340201197075933238554079702641608790960335921892686690902224005347073607383922961237939715848941928224116630491887623615180297409882903949136055940906598775788917678866460003996260463125410070284682335329089238996399105195654970023552341474762299871647110236174806811732874961727046066177418311003173697699200322508270679800202272356287172106539598045651396057495242552608401250788657033370757306931246553054390752064474194600110314171422650079507993217038823934674869526502061926459554264868178844895154643892644722190166554323249728931152486620550047968960607337444686410073067991505982316063422368640366012501866014997042909123942672016643795303145478584199535783258676924921688132722612952033935741383327494891350611069607888914657363301746948799478762926478898126985110910423935290664361387720688999218540866731413321599702703046360157984435466981484415626493194675054843787852064057372841527824643892018624119236758282032943567425488443475586582807268058268781550056259373408115788249526093254269118408651200592224967273397384516648564505672013121588473215100908665830440691922879660610669295457311798998804971542241517820468812595407003333000703348838993156757133645629930841633529488169664395138592194246525343761447397925536748991975452724960174151670633736572307645861717777294803414285089399125492896068960611019139492801701431143374913184780573648365691631258461124732918516456570210760546555050064788665841468618286453646048269116350863776158061195453663996210533446661718711406167651280438454757531636300632137364618690416424328946635233095704547106489803056429008147511978168252872351954625747879252030028899393530239151214726032176201517313852934785901671769704764669449393658681522650117500747469567749253667800389855250634215364951469967149121805473830455005389670389636596438190089474724318416372703838698691927518722341295259872084452849874305990880213196567679579333717159550644289537250965931973975936543041063424262180848307392814833431988649690211369844801314076935116655626998106861216191180961580630093543625625649645120133962119352990039429271798628084397856922985333264304362555294822773909187872803642281393384493798122021714098822161011844884693176721442986172598463511882029796315231554959610995476202162609149292931711654003940781377941719054519738801446128156912538030976913608335419204865795107840451595687578423371220260804964677019663984976150275827034809640699663110252457522608654712752644549535127799422854411541860618392456676052560018422002365524275504771327446934189739537325833525331351781229197330389607052824858297939865925484555786064865618990431200311844781321967428008480307261941793431094260608115974661293028378680571008664028179789564616693552072391510245162594006226495740026829330491373345136507177905542032324147349980061808765593916158686250127313777476555610842484751905401960643100598491327944425760071796006450400071699598996455446087796847625418761722794667058849327099265261977502404942249123232308379756268646628682074983117101373861041927132444713638896922231233788723579427921226369703825289347860734860623757269913784435783653827961809822094149196614833522230504152151935518779311556983991018774638330125184683057520201134515609742963954657270693615791258139590127582001923792683398965665892961165325384669087258332827125080503080118250315181868840614867384196848972926326942147643279705951786885093747406046150274940828502517014922945937275711170075147449979324736885824536952503879982982774008146798457821897892745689358888898883564309945124852761775849640383205314906153505234948634099177117856698645838374205695290614315817806769786907877127040578932256361016219030725891261025537750069921209116825818426701067343366847505004218026340824913259171232258956362282012995660777769885291493233354006448898572684848350837058300025723411182711729313274810260059016171464126532982168965679304748084914127140906061763706586962900841125149717496517268897268676302923949252304899788511226543653284016665709094146400468786866730519964919341152621782700784684165939608379416991980367014676938306211832472177655361023809214188347032888554603755119504423716990379442965996179527265616036795374007983035535108607977338528253570442434629280700466660634679825602767059056927657417552445485445972239401066946187971132124217749371399562597013435409233503755263461573326060560755366432152062593041943962801479704639640822605609610226336288444257268624698593945583603152307683941135441922911082481399449549571348486025153540548104415007286198023893444625209220284102755913992945900888026744353665369544475144988446399094761587963009005327186823313129111329401788597677639886054548694339398811789208800532801296175409195046795681957708092852449705482714640004619765220584487725494205707808333298560226364922636370415505929163839630949563862816409280512815497617869430279152149561416426567629547094766930960966653949439035756955569729606908569289568624078296933158614932312308566669480668361112566577657607561580099137881321977194227607264528489839879326491550694088723783428493092747144248839434850747247459851715267301107076857975897323347330143022878931045976981758284308839562904856570427033643693013824778208658300050391289575752204580538076443831374494096742450871698961527063704265274341668317222970946337246781095028868348759773589302127129188734097981709293198171381580894859697001898512939567171833079373832465351278407968860405723161734643785078591550303902918119296046901442612523755899202206362647148587692299812589684860198331431071694936743909692200405254888580497304082078700712671892233095554058618185660219974708091595672894420638031668531987433779890741512599270593792804256106350629684760571840115711313529591018059090547850294199450117107942868931336879688948134477192524841257807922678606644819440948516040370054114646343961609728349619372786630802185891403231011446558748298278150422870987056432580610496869889553921808084806983741781530431974413739011676267510730072529825952486310165544107856689598248818039535921344869503326212384663625509288375277587592945964844247178536010763371295693978261458005010478663120190794896783084573270365009664152527225830618854886155945600424412552548142148066294191645524113292578314160887268276772158683029136156674664116174245673066296121087325117185003334214754635849184162705547591129876572471906718611238489629596702312213831538970624653553919518695215439770056380481285106077942457975310679088874551051802382382701436298306484931850227332256887149269641241080319904745374673590074285661050938717939804957996291485976642012817242098452134142218327853166436417324764947473833837813112891217930548499978703411613939682316846630737217114062803934697044590392732533247001049426768655638599298091397250652502943862266552970929133038905811429752328471242481641737206271306412035417750921521176651545056160891411383307933448266679565357558332387490779619931354325164542700272749084232762864908075144809367715958837059469815294226762053047789375038226576573501807627455249150880461609940013602755257205461820826154599725204869157027919819932516540937634046620956201958178157021390990905157739242857713239453632409493893050137327677866244692777110736701391238496430102749552198343873902306780288385096187765464601036205882317596974822574535034668400741494184957652469719785441764674117565565019957377025995437069787933480106244113449006238193319174439505021180415384184591650834295823534816337659872739776214404134081383683844031946690061107287933750006582380383919193373986651554811971022104185166868802912159767186949890853890138166881753602478557495239613112803673317831863608649103762883722327253948703433123477179105910706488424141208818134563671190938105114015642094816026608830403966723203626977920925953060399530359407616220698283475912509624998555958881198435367585511318050477091837308982648639436562667484460446918509489027822560361075416029512046246292214592526330696350588216332631141387461610266106647122457649348174648867599340145041667371889629330882443857411495679186391476604913758826758087460638514911317299993587412620827310587196094267030519459299363628222069958011538574771192807548881448697251494176355513295562708454816439641623229892540258975525258585116456019995920139025162477846627394543773594435425455409368428174040490729018203974370087932533546538700389606575422300658632553686073672593884226517117872165120397740712392691032375604170693034136719381067254200920643380302752301228142581284168229146746555125467139910724959540712121626755885033622292319130148082634107849757892823210553609096678650642448704710776067864037234326356138150335836133493900285906802859103989670106616810683674441466927579014887594048735373025533617177049393556706045285737683714093857355717182753175107135382254866953100495926168476689607957235072628567530020680689635252928930908402542860874441785956118896410607414648397329891087471152591355764398697932751532395454237655335349609937108694773632634942916426249524314407038139485530859568926395764528179767235164562485694695808627771509495244493794375588370620853930669249340724166112174920161309038997225578613659778419435175493106351774595903937480869568788656264536509758757246787006506775694546888520865982309003151049899032666551901119389596692575226923694066366649073043025481493411495152273463857252659250342472736621222349957985951130988650361878182339374989002429221025971319446367431439784448149032754790721902351120948163460685520616304329816298997795435895050730582071780521710880157923502635057162781818072378360600925207998941120872016607591195665906052049191753413991662985901541651548012050542749310864426733939451708002159005648575864229403081626042581273021674487044724375877828428467795650451548259074587785138717001686489667642931091245442378616907454665908738407486663388608010833697852337495677474843821920802590634270420373924070009905068572201667513228890257860375774271281335125377985899838840084331244802820449823425560273864011470964579205824872810788998433899955346086660094211109217729318261107022308334660051931214776065531257742988718551885492213840283641150859530484115158322838514973086489613214836555436943796081963273262322930509084665079247717484889421668422060027240940589222628835671858526697342587855823514111870920457482656504357740401427917027865571504013196417310472541219759869911305998347091126219244070490425528232197529499828011383806138978820784319280439035023225918225000491669846598303700560698957300820791873930547380910995195387490573610711309731518947294291231554754688644394681024695091058980610314397357598586621229734597826081592481240196423287713935856532022119171081852384999179809364946593660964190547306633543140154691912355466770046136370382580438881474626572484722415446542153239820293493741203750493155292170087174831318363944288811383378275628032059122982825954984340897821600953695788807575471303178806330042761982936375306098296425112140427335237560559412654327430630466161401318079124129146172746608547948751979836509443347064619368197954018618963000647443752365033771988083533198862914304654219999138194002569651484549002772582259490245643693122363049436777207431077889894219685471889345916284881528898147167156302383456790874628486639679498747912811256699090873712387516961634337536416587067967007962211322467363089759117897816662370425110777361327195377828884614516025667666742454101487552422757873275320492715044476601527843287763130469198357801277926130368224037933623858343610141783834621478946504653373426327720979718807550478099155908762485487110742303022928458042996904419141425792078039748302214518134389118058467612722316115937940001470036976950220303059813690638564184125059734728491044782032840478775100936907053624414440718490986991104050829645103699338791823705186819543731094448403906789755664809778487093816173669412614311382812240942405345390151221392507172516645213876852183063310434717362602289478140316863723806816367523140133854866954158003146452200612977381487943900625193837338700726395020240869356179461117299627219862562172540739188826786348966972488825398522113673756692858742511113162341541698480555594224141714776306844328798037236168221432405496433413170242394639368544823009585775027782397789999671482851531526236517339226392236075567295078135151027300795171102570204301896877948799517641644706014854616939375516372041435738531656927627503207026119516319751403407625063828723441787489586221249247545601104013343566857470255187855617231223575816747101658143005709418687795518210251361167039630316732969797086183656678216913790595611573754178568326161588282898001912295592703860539866656053483863407870419644456827089339576398232301101465711610071343452853431491365510597325623894121330116236965744403478135306082346726484352288187837905985699764706906856213795669303714509207639368729160696474948672429703848118108504717512436767211539988220119907810832131318957673321022581401991382973462929092435318319779231124039494412329942014598280405690678843490073939809075571868367091165204962697578660692819013646496008480785531097516355352257112801903177846131060731913741541460935438229622939887105798499084399967238247417399451341784561270397726575418229135286682657659686135874254897341049420517752039518287353102851892621728405708659365901719628946002868268900402353808096478147557651799800419910515676740236819706835496585262956796600890206867675109327678711044983277711700509532026505067780487351226999836027756454133944796822379716274040235116593359833080437063857778081372119764546227728927945675692708570424688430867545229664873457888364643229995743067141773311341428074925144249563833902148184803375185097624677079567583714143390116889938496843386358772971305135459472388281742673873236813571437490587924212269029727892339818087872166343578442546707237250303160664301305841685014868160141587883568197333769405979360502505040373250536292375903311971343303832733660725009503487358680213700571337977218584033173248657562135385334739932775512116715696894585382617155224616797306998694441702036414500713886530729835980833858075085733976435512564858691261725484684706421871527715071602747000142379634338618201881478786165906569790565555332139659915075915438380995662688632086246394303692495253332552511761756513340813238132474393635548386287417335574942610638708887008072903033671092029613291662205131132982327285017000449915934514789724251332068267429768193861680867820017706218405384598535443942864854327352873795484068009605131625188962570259919960454789079358671649003794082248390342622650678063028418311839865849147493489158060887158261841458516934663225158343709490079811848084839760999587513196869959120175755155944278949908487059732840746798414354669271218713547409304087219829144515659425314995890470749221083670192051092187746243096804960471342759047866823370250663162408415789148486471101829406074849841379935259088058823168995428625192754172587891893889280859492074628931121743377566147082943140254247011264254367558480361205105155873136256359167604749443759047243998701380248379530233997488919725357741504437429609201220903180205184706786230768512011091891669840627290590281348070295071551314890056147745983087684508844166055482321807517805447078200873197369978647169711078077628972001327561794434998932847443395279375781748370617461324394206996010224205757758686460822015144037408633543793655987017780729586280067106268936951827602169391108443426705297870498359121709251743241313769385732489269496989425594440287171049497660085050383211256560665335268880952386813268556627247306148689286755307526611692583453058142165068171974220881440893801213190910445245152072168952793500813859465312932545728943370094065636639714436753092169615970779823796869299477447671427736421953832251855137014033495950810166413085111121182269944923351383355188704886733205359854960427962826269991472313830898775845627851120438388011304273682997694839092276543696213563401994763772562462066772660574837496492698452190965868897764275851932275262881250495905761846399587194150507586868017213951104621522679554366615525323697958456890308667823182100173166189866377335589151008492091675033648817802584933373524360929482049083456358293723381710146484503978325405887269236777343412336650332150044873503839603878433929904766530495877867548731488399121644465682304709849662371435993268430744670782613415767393378483892072288585132186253878089399025442340353957224435763086694119377514811283327250915050198456850663618447291146389989348244364151584592214851431646521335786822615730424390728121849189000725409979358087618090755238912291174950509658076198776733055372947366327836975478067196391090982642586230374026066041186120982408318823418516758174019940235702907752484783323206494246576938395513448992729405834991415743859203447156033629603925079587343104566239998161851693464438978821935452310134819647224748544297940527689108642105001570690779963026261966974762168960895850604215087795245593843634673982048801232272885460626144776013992773155100296326180333409004282187598831030470696328371725309437339775886916660051294770995293618301420997490916609938504243523385334056639311643525170724810678682103549877478042804043874507167465644926069559320016579500832755666131839284718547845001129313419359397838823064650531260095396358617759866908734822855527099776724973028206517248494098352008200192139013890724519185516375367358898576889923618306475685712649994852617723905920127382004490087390768037319822210143287836420537373610112639580314664519559704856586982775192394428040582042597769989583425596862922568465061320223340512161924042090875614806743386861733274251989817209785994370120176456773385155702398432150012680119033104423941075468346075456437976953128516521437690066450764002942987294114746173795489671665370084080081912870159633569563401990674757072257535076795955988953577607235369681632525485869214053154428354574910638602516400721093731814934445417359286423805510993806166351022104537846317413596684059897068222104315102980256259209949702093933574984971537112013079878912527491308450450199190836818061631533421468799351534741579327696241610501036269105865306033735263444177148716182030107277959416197357454789210362598578322242386397649413513746429100910041852589583096674679222246563561496476802245803127458719985431847788470450970346624984426233146412841374212934350388415341878856954995024712371600941361707886365810583367470576158644203516057031506582908520314140400315576336905248501712446879931935598280602700589637870898659010760078843959332131873033755263991901830680751229867028545513087325736964802929383284437274637858449599052318964307616942557352742616942494898741827716516363178003466932877237962370367863207750746429858036196074336504892287541789855621455325583376873700572094117023550507235461464307639304646227098569821374295910087044592550551637764451370510643726271875491242759019413162992911929331221555759605493460889453523069000670168519479225118110544337106704578061296657189630394568216861306929432223230181750442389792111102460364120841874849243246755018621006460833334701455592981764691030465950608029438922296592154285521773844511172565611848465560024525344925699832657867198333759404217819085509408386153471577420754706309349242422117978687468756071663795211684996056202971119557447018873778889849598412229953913141920729457105809830807370982736677280980627576244198342460884551357467214288166562285484392595322962547810264748621162742065055540231837934103224308625532516733467820636176042932870477392674377842069401672247085499004490505543585797528099366753219455873363092730295666386072082685728110759232617533156946310245073241452791752212303965972474296280353092587626739948127291591206182298641430353601263970037470479488162374180832831533651809536769930671692137240135303759731664601993075459224824502168648132850751763114288299074760026251084488207294337756237348622460602660541179929161168913792108776186291039432601695501896832752311696833399687630128142907929844648468856907981263622302866268853316002646954425890551650547182535939815350466935938893756117033401340120856797911551542006036542778610907783051431929545707566693204065162234610536903607573077281216115500790666895095071796689212569445734423697074295651862041241238038105644927384464696805255364488702703699630722615952946950075165400666891877376727273746146876488546073230981436777212491821835697648285380313682355100792430809610764774144150168094505551079712602425455962627890223434248264959015907058781191961976665593148905613841644427415231422884137795090900529624928599097656967075627806184754888228574614557145255690772946761927728194275486287038875341808744058654710558108991454128984893829949646387915178707785877444218658965460919263181915669826195869658030212257889816904058567380781561953308623180481845131034550899799202446364029236989606795718447642457833806492024838976941762964268840007610696548044487061846593379456920100732322665706468159099039261747462688886816514595033990375073941574754579548952760770915791063480564952565508647761489657514853060611403858337393897434040708044007508896452130039161136226591764054835895722626162552174081437332447388954539305965904985521043095721147445341993103933607528299123856935591811648968934574813205794672885980308590163351259610378678927775319908146513743682072066312025156086933659184700583447342517902511488467919659186372437824587978232580129197296240677796984837508867346181364547176338351669738398342958736556530389185562736992839820316562298631093424899071508391510784136812048608925428663851882149297171434789485531629591735384241204909619203341903911690454043220006036360488269960106097477720770795107708990847631008900798985965254318642390474653640552168877355596141570718753448459646365795921104069687535921684252681034834991069078081323308074383010417720543029595150646730711838390608137828893027187077757874494150406299626911824365380846926025673585791576301658028443547909643476188101437070891441077365369684140743726436824151187232278956245002743931863509829017262713735272371766702418188448137448576905770025847285416783002232481970845775980104472514438852624391409078504594983863622744753279695444905474344446743908387610118291542439563250261794446036347294726639763417667792533289228972450052798571662560903329718956875688719841346098846439512123062368586222613928802667455277653789425190002887484426064957720353341413413846840842182798051835861198801760224129305772686378159671960336398105712914394038838499932408817487424751506296196139491854042818507538372868976014953857205829074639976990438384984401994376225258619190508723052988261242528268892789635100779528033230816036638134175395921499407586155468198625841466077947211472224381000034490358511522753399441451686725895668035141568753205713996861488203043535600720599508978447191915489148082226292065059645696469687992455332321668862349291460804922951011395849721180140210868084599114457937696986416969149553337599263069821048729983179857057726625415596186599664347223469493848011322369584830502061990047265997110760614158033089290661045836173935470132482256391437748394507386761629508345920004750504532969659026287257851532741427421640904628175777163787802508382294738859066219009764868667547347040854935219414741825732652387574857951776042384795956220428774196405160777680840831556138670145541590428155182257892660634505260650400996955398077631845835171271821006892456281719805012783934163412996851221448789132902180531889526860541928143396791137990929909391537710858299241619281415489729407278493414861969422933156335599856577458243797934278114712335566258918239583150825471391249278767248967636130301336817857453112791947932565621280691724206610978161169196920849269285354357430503538334940351727196145632161665643083067441937368841277778626807947533032071104158455942629173640581571771433946057234695308130894556284543108613155875963797842448827357622650046446081012400307469406373457992118557325310192535950768832002642602272576272899319061909105241729262691533858338821540177371550034540826085355300233379408553383944431181406873701349443057196837507236221600043050191062575465685352706092446914224034842375669376223372400939993896077402390061276084884158134180830121395976589746108725701640145557621403271503681861974745013795041255643660734653688031663037338676337382447837540387609257752145177912836542761526556715160526198738284302982651652170492567696203498794889711221804550149706075125787307042333024895232997860550481707881782232227885811780242700773803919483204458256491369329877271441386965591833916546033778585051298903074903030439129091176753690723215249291244745097644048881419159009783989439438686372579625987442269170275927186376110783134250316936216095043097731171725039712332747560860168890432592002085520776007344256905909608188371783854272219412308454545127959841541656807587740517863248778304302146411086570738686098760232088282990482273976350092888304375268289328712500924828371587884085443050553504449447443597178331544950404942990184270458962812361302391062283706442108188194651855139259530029686182962745480198910463035870092065888722029527966525192068109984843516820842854623931088706958257096517884971812712305963417085052964879195126664331031198055581757562487084039136351780791433788045147576805705369075465988870827215719299353340538711613116210206488109904054266366544656332016372094822823704495891742706947013609698711286994832047857753413194983092133840569586714075254925914076870645658927261667262858723487188191564529030080408364201365007191136540548090885942988305966849256731402440932428640291008501641634883367593640063859609463351059353307763766647562973070174139753132087716486260935406866607329588264269829271298793312123116907138499519743202132630171151893622346402940071129077130239097921554924353016872734403762603479577671058775749841906892492298048571314460179695890852686477450580267485368649457809427371140773702454558861466004353014939003689114593894829142098158080329309427490502074082434822168191673375610087386118217497759216034256774522473424289292214724529129722525032553782039792906401768198905846165161158500641502789423122102496745530398418213630787051502100836446851493492613986641892977787836201931485344496218924457699756292258938927581695300739568353324512196993046700842725689848143283968418308020178178897993643337517402821320298477198179646122270398102238391145738757926668522354472987649153878708507376013830585926090974758791082455941016630817819169566520286313032363668950056617678163430423199694347456804435078968629672172747395393983744250486016759359137697460032866125858573452206883194576076381844418207965122823618425054890487204804750076816749389086497623353687126443585607876954473911699756187881916475932680493194217022008103823169077276555205837769996769990505043086271060029267935451215069059289282128993981114191611682865045718671242911313952318413216987433487737920672117307790947183409868488040458276604096839666597305319251030323721050111786848395983864013977774498843768461924415212214057565915203726100484222004591158154462398548239033710312487027743455198935114928035233385289609636782432098670782232842844909729058964790551479792814203291266060359960299086106500098196521968308338081434821659334683448377078993676641618704704933067307363769877525557218090160498255533834492161484938714299624461755472317889796792850824542317150496563288375015079145906406177214941489362474299936700323643499234981479818126339528440254163967374281335533650136737611073292110142075765656228627245086837110508119909874984307173492538053323718108879313665253198976551887363605775752604442396448329629492861449317794354020681319736003948847258714104022104375496469463696530148330180980604800620997244209869670897697309971311608195410040440855356679347344700824877972956112596451771686214188223094792492596133776595716613649394032215694101608697079807548914249009724413624171959405842896574810012920267291181530624972964470228904025904450638507403051022520587970075785647149354471051717375484561949809647786063087684668008172935341267489189961621685908236713879742546688828808937668504566802901905681467819766164827870105046182806971468951390891652079931389109032270079511329864766624737382888761865475137201011657558858052964092044467969431274748910314459314955707861643465182171159195264899959687619401821711426214929329530878986971576367184124606295072620097171905685872821564541712332102976157578394613794563790540433522886578536784325068841317214987926417139617902646167598068948408374965272174984950227516370703101969449510572484975079477013012204093121310869346802724980035611754561414516926622463361561199173875126830977913252521499286902612194926816920805968054646103554587133971797790413829297483196499202767746839976367332451212296369353256890670925351489528431382647365146086707490967029525905741438891402312966067562657323085601665465993253756700936853788818907159092285467903712570708659052218819931217121652604674179927717842936105896449969604340757589486864608033635314241852661246241852346430777493607474989770645049993576175289548300480386221969958370276915981902405852831505960750397060982981445900363412910503697096413525462458587395841370900842361593322348858155917741398694192298586062781791360241832220149803824070914958627927739307487646200341081041398662692774489988677922299288082489702699548176124934685200176319613506255576199719755379551254383596435402964780554834617636214465521331182900059511679127328312280535885858177693735520404703857508705062131832917275291435798584610869112124160741245681204792300273946674666300084786530321683394222373855656577624479208825735613552160732479144114511634517614315621548607524403029774055244439110605610154604380225829045433102965845513179564828916596766763720009407086972705328701238614973721900248006107657020700342165990284668040300157536894732675038652631546587383898514727181789518092175712994244267513028572984424532967337555868517422967820326345346377252521719440488416441325594723284801748770755466640093170432747133513503485204768375844385464794963733559824197057094614182094344368337207160527726370230060323036471104339307469820892555967463280131218964636065947796452754587604026903596601811787271760609052781814637317533218699585220007845598469636435439224578767544012422014923515851184976687535440220733805652859153631088237400385820967271863605871821485839869174131200154717806468362176619621649426218329648716852537620292934384256672942692439173197512844593276938581448185613810031686290407071000150365944332578554263639530526676716028151584960212458268367531755323705607203320708296784417065388152498558477994691328596322970857845077826038525820901151738443576202239448176026338635089358490341492869777706780941344604153772141261530044492193183177328382272613558545762562862507031565270616251489687542471675571160423463225321271024950363631817886108415940723117717718515018774024456737294315531586591782642049134784203237833100595913421412059612473795526304891254446010660864706757825160011836594509909293125271785418156494254336928927616039547809560813225431152495333291320060642936527432361083217614990742640942743533566699993737214997297947607586963493484522110612017421668763030150211728892350967452205433643931544135872434400558162491650747805726726917760033270705811762510146271764956083486148903475075794087506756410017275357416369414305151722510883814108225327426860751268986979424927668619548500628772128252826674833442872403991446865695052266028978307677970595249894068622139141794857107671841491849437773385388865664966372302002182073734850812547950696372108671937256161387732254975235895761381688026960915533203118364757441348888029774579741548102287084551722375454308566870047285693204610041813567285001414700446279252628798440958726987643220093064465545475375260835541029850217114804817277794378980613357515374521323361941991594818592957361101372199607971126440634589043377108918254246203961639624359180447368694192660278586532535332237612879207330061384386785762766290119319399321239916270266868634852211640905365276990787570641063575895826775776230990922900750395661781012752266584940538230597392545802400325159393809289435449072488619316750015912583849926733502228814479880359188995773483610044151528432071474589080666749275242080867395892294393482298089830972604104947933457572238981749182025537839650891221346808526880503906825802578144772961661666266431299724055785714570490195537409647632478976921803124034323680180596826235810184855252344498581536917787199581382602773691973270148948563497315782764560181481722847304337667201008264435516063778283192882042695568257867537672718948358902920422408849378032924806979405777218905774254194130852161817761913610048850034378220356279675969406935776501673036517940890811606672665668573491641989396709011084053133532915638664664906202006283518984224007698682016001518598996213853825471181431370316502822690800768409227993844370641403795550142507252843366555235079892272135160522115995670873534869071389664181219501211339311278349042268524337414968382170442360977978784196726681790413593127195801334789751836583934735428636830566807333685832344927484593840934266276287128712239007202205691943836237226616835883622954733857032208648918462352027766921828591425363873003270610036964727537573073174136759329340857434479032199681429333642710089557451004367506146112924828541847102664692785353126253226142663088972468136444379860474827985498245762114576678158423197578867273952231600142770757776970032064927483079810600053933001024863558453393297301363698570126876261258805890546279443307974081567763853853950900213466070284355629620112174031590096681969786872608506399465401526573290276510705557810588891033440091053606960431057955961863929405177460530690737824105829146678213486372372807752133854803681221243653535700677018068672153308960646954505918121478704626986907692981064188851357374149672568258418867449774799112041909288131463388393744514789003448704477622334588401773743699296102972023507773790445102683827876753981157173093856966235119841264612049991410631420198803273057972977261405055897712234010611156230543583600182827350051565665717660830006551579911361122500098251196939296563231917594178910751078669817515426728116629619761535330526421105243921068615281537571218817153978452545531467341616091407377934280125643283062599885418207797500821093295305609965917160921627830822921224708319183194625233641456323625216260941508398527038936013564870940656220457744884035930918903445802505562279830736855237967430209992675653559454829592680037678065514271177542473144586516074196766235114896409063200983479136034717199716869079870258596420485055113342233001307860438194688794904573525139515842863267751661110528452503591006787462684586898779075277913241984005408154508278498682601408604265090174621856571487551786296396526631013548862031545363084968675612735475125522226891717800976423016600312446314507845253510237937877728013835536013080075792969465725837366130880569796923910411732360288891972493760913324088748713103949284144600012204152065206081838223299918055609869808693383171431924708835812503124934579285338908274030830551277290853820283244474292786405067501416772006955853011344877195445219646372430338990275252178297057426944154463838038642312953490249954032754671499142710503016746441645244406415188341823979998174726341603486383334465068769734796677977767824913938223491664079324137623471704920190508434464164469749992266675245765480319480307620654242076168484741722672526001546068734573798324059287462085116064787186693919801094655061550296071686615197099636189612384591491426555707541076475630441922815779578233383935388478283765768012710659056123500944513527438470763875744776771232680452325155131667647107222013083808883915679723117761674379720032918871632738987168942910251425529129464037792202273849758190168013250518240481157118661826172269902817629971133752570420157523284798663913906629349795752524082072861880635679743423953618640646530367206455310735941646694779493840013757527053553437732020861290425534730685962935033106265252842468477522728344127793898016257517833353643467110251731905012734116139420534896730920567179767484795282457148987905304219106871854886004203538470597203385652911231311237856930843732171177868286256785861975562677840425454376550294326842162509673151020429731495015033378202180716944518794629689465481980241083447622571721010614679193944382777368645747700549340245158246704463970351553517830560742196730672970024270125328370407307047218905881465241001848051596555701174890365864084640623800386488944660473327816546814895553543825103970947957652586891198459571439610928760799822024025034822628149607697039325502099163610794467492223261452208121790476186536855147506207998493958642933476837971240657035370103092759671199996608916367102858834061786705374387251236913634511192643257239731724588144435046283466144274845190086636527107874070854522877149317328150682619994577550456217247863427590808179087511834619842115049253639825781357515845238001667063900031421392781312110103357289290831035913403025599646933038833627662133256198359677553591814617183131312536444490002933233341368471787024663086189870608086430682284366904604998260726691699701728427353171287136343598293850955199138150822827386166098159453299351590631942945181540172929814589976720792879594133761822217473453324244942752941916390359749881575741251767676013358677036866211532922976465543357114943214411203120613257448372872821695464252652115799940813942729703085651351623406543032956848353425340050331185434500151865008681428915682920287993973239359880811974533116572549252615215693553147076197684085816277498608408606799162954154658575487451531287476546136736686518568042399805054145241947267609607845458929786427170533193166684226370223721549935235838882326396291502945203384792869297723354410413793499211258308849882008108214694043742434134731259287970797284104925318685305704838042333898201090052098156948221485668952010218094755916614955139999198411226339964403422874307950917893913675303185559889085502904663977326283815484261063190153365380803664208669470919301353445516710139062454555802353841468997323313474089000549531815421022513168592817354478000783066485003515843882832087746377010670401900626816181506083943000457259551570302836060248897695284777568905320603150325339313807638996510352020578576156645549395699812419218686026446876336416832704448254705165122599240888342282624447263039089386614194123240662389726321892168632166676349569595236812633158783745107722848809140076073764899935961790075983574901551316245875035395030797908761395739247540013183592882373701239500869618341902500368750898167924330259708827707425671035358481062401319934023814068064132577065231338633973415179982254898074909290977165737050052356227172560759117073721315159818311778592819897711145202319128504069055630184600573956178082412948905728458196369064684461073405352921010449695952127437755731013407571689226226644005949357287821532824268373553069832743124100515667148803951087934841094463998162094547338283671823600859318682622275313578153456231603224466836519970340773158420848303557272289835808467833177356558243530122798437911021640091034957391321844054666230490617596346488271666060448918513120210735016063954585156167165350374509516921440655941025663502055989183688461623197692465049259691583493236527139277432759287430949974106394683986515439563333169141166943101302825022886763680096676675195206118644739520152649037338554975941680496800018380885890259486537292716660989183583136088585226486362989200086090918532631403199745248196448013128750307117566903263578789028391080112622620850775145120524835773146141286311214331838220019342111793778052585850838906553600599556024885215761415415170686410632356263412078392757874880381952322636653885929937927858421196589368421316996311088362788796953509646128722315259600193399055721374218390160188615805179584246615841571681962523713072778053129263345927551542442745154198608746720102774528968353718681679001698446256467686828796347254123728512071139267394220687993379892762037610346312004599754503135717401639917001891505970817542452217020433032724529009883403359857264128665648418914084435559987904526382804071066153712919923956958998288149389040281434009521559365797280276913240807594198486556627440846529644134848670632122214579668050779486079313384828277109856604637983984393878237987293332346294838097788847009050885948157334893738851729692161910689697325216238034958045680691661171914527333887328999172965104339988505453157327991236403743721542825852824670736111859107069515392952636632421263163890002667111920909099717646884272378963130320126289227880321729148232709604315417359375934932348718412228642995139542085267268585630197404018100733231314329203153798732346457307380643749178521272626530039651668940457366834074759534369598276490364221438273525517804073361403421301004390896086198162474661714413470089672358254509281645514884407391681793900266884627892213316040031996966302296639105511375979143618345356340566052776411480805540372006204770743530006566335457158396106415218610667233517586444578205689761109515067160497880208092695090485212236918665300121121705134052316140367716870454800890420915922607403701364494998567939426267062207112666448054612346357088820424392489807577976962583375008796489384292837108185920404261938596208947144761788026812660469621033444953820749392097351020990432171171122551672838743600031137460887868814545594536896279033403506959969850197364726500854168756405268050804440130613182630173708878049836621432731325557601449086844421802517495453722059316664879628912159312502669438051400880590177431927064644340484988011553996158511484882924445274868776648198748397186674498555943520328242424530843356922543364897250810140805661006573597802371219838587313784282900545914114331780996050266819480802881699159029838889413427056944690490938113628165173938425693139047673772772232651047494128812927037828756753057512170915485140276058744445239444758716690593898514042012316383181409417431389467049999576529550601427616033804328285600026332197333443747003788737624236374149473354060876622307129299637350747479039664075089347517571274183979742610449620833354553791270314474773075861557428508740327536084787438275593150312449079356354027751361931301943604268055831904395920530306741293758061145437267787960388771723913648163553095511188020174467086634872839650805491006387438320569410895260664159132279617287950258538876873193112542797298848697882936498318319139978451065989282567168980633973503388865679291880090631982236498483766491177578614370678784781272245607757450152670942714516672157311660611618253169942611945706217190987936786794909512569193759077961148361408282490308879855543668083799031175939935758507835146519689467166374546352560880051785142752923951290169672836247564327781820714724878662678702224307199814860415938472742483117866381240516295182173278344861746551474294788940761821687532637608327148193268391904702513623480409809983300699382124676942609424361300468629949007349521386251965071940444157280701967975911277134370960954762524488403136054518953621526658272454369474104907869790680625332746789390148966797813385069616780669647987187561743638819704399010561200542793436329454422598778515159766253389554531027481024881693573338769275537415953689259865509336701239307310242453071241685162557514113350231024261339994718283738267526990146785719428785447074152104600741332896321207157900357675217773584592349866841346226578671248745891253150114241774827692708505015731285902612389988410014906251896813200474646631676921898774972846855706199970780768440881775028583827421544216310241409629135757161336494842545741240823959568009268630062935658849698299368065707153594780675055421791576573652177302043152247861190023870068750661204618544894510054716230733539770000198018459810859816328691285525649545580288752862035326023686985233786669994654892639768609062328126535404955831226491792114920459818588493895824105047900606559965237224461642336937894734460659140043792911639527855009488363620842549269792645329558716800654518998728500713338177487589764368344038883018602460483054425921629681916253987971328444970057182791769854077684407128090382672850797430600608070540972360651404371445605963802894157047593138912311851102759637866495595164661270074662007358956322355873731220564289189079582567848740108344484902207568132165762763196541229722770485905425034720000087896545419538616834788312138895384306961149489690419571908052249021685380634381764546159116934654266179895307819703357322428596374699675711857830691196410245342134751492520288497534639405360541592455627278751845403552274379237792558476568241377931727114750462371456142463424996388269541309063110233354382976114267956278353304828873947147523661933674237632446816683885155731262378811992736390766056988287136526348064973630056043693452660444510631710092475570911681445294048718053105038238395469416595351465020387077130091388071549522823100770616600442038161405044536960505104246605133356634789041578825184036914932252031494524652929941636598383384563015720856216709792700329067459633023590906580144834437294120748474830333430838366807840748922002792136743014813034803483025635386729252965780378901676839839568462022745005635273589262409349158103024062563648825332977471976590951264193602835623794238692342970626028683407050452421182603874493521967270308692750385937626936118914697591839992691027485833454427130416229972353044714888574073871435861227234069608900051062381519750250367561679357387695134518997011408562662469435104813077453837053902822235963555927719826420673424081163850230296614257967870325940486982954637111883819382634092291724271157717258322625434501012102043430928261522400548042411089523174373371182400664948582978914679011108979643410008044613074035794251089828978581989317777832728543039588698795614764394826844223623720530818600050869290851518020994298837900718358282406318601479059270663151849203303281722833181499462515186326594022709617202288323507719754903955814965669419732307925690064963078578459621652917750421109095494457478789041334281257055669294262951979461759590957439889983271052786044009688621721101235324493670073740925574402549513591071229219267220812728769664930756919058755495329773622775918622276960944410490072658026321203828744275348691074398107751324743077724059743126029265792123593545564901052447460050549745996617902089399756589394972853393417729503577894900353520087339041501782089547772983139730256896296469581764073298803299757685999329288984818384863451041018190724134287505351315464299006786766213922235149784755834636955075745312540240431706380621925047533859410497312753199892890817088178092823340914378005586227549817278559723689243361513529194486772550623650593091736779447161370935535368572578999475729515739976727874210933617789538639068904890357476389395857798577540678842031864029294091595966120572596066304888270114670252723119203179685726993394841133896619805642892876513839354130394410237499107684215734628843515172687057635914004247166173392684243445288546012083067975879914238167696887902828825655863806462159335050774262315700465930403995289563105461026338126812232931136479578516295153253981635556599310545683134468349710483479674334671145853438742231631083385799673650551640658886423936616334008229243947519739101569252252622561307342910818138014788238270601829229571558175622766348711299236338081383026199877677354730362704159373674063229776660742837991798863527320896082864427732264812421017619292758293760423514018032324904997374133733197768576609306338726631124286509180575431621801670525745517666330286115741747786472673318594539411619879639814625457905860745381228051685919508332594988016128760475907254867721276917723170994826870175119616534951968374472998791437672294982840904553647989136073466658917811667099973592313703207185264087918543049433998597881742585261989361429865066268738749746836461092640089511577895764156070872725606652970705000322744446812689915709024550200090994097927300183545619125452000606248281583843962170921216199803896610215240468425507879825450956141350929984700193493145564764882228668967089282084211684124859095584515422798165166522192005631054147078041333781630727265136751005512092945408237244844196271246055855363674501927199968534623161165609933219236035512534339856188220149237965861834109116276997668971106633063042926481255843028795824352883297832713469536908440447283964324374740424275874484717465201910853141336115455524904808250749838416420791325756594405654201680426528642219780589901257864463673618747966364843313519700702851758074697964146172895981282564530429500452172118649215363813752282754137885234002911841650521906891828275421177650168150463319561711803212521902727785092451377898654318545469765606621730829974211892257679324107610948956748461795906736243587921042224971795978720238354881145838657263249346388863747831964749197558372711643477938793645249279653234624787934348749197904291580137676117208721334693132211459775596018815572308933114785884184346562461441060400929995003250139469238063865246063124148008564351436943500743621672555333142607587852545010853939845837281576761968848853123676904228341810962194794415013870136928046210129386298709083891640401414830288508018085227342350057283851130773286295426955141912641577814263751357008156171477034077905748957744664869721753292896140965653015638651008480216414231323384791573466224499445264223467044379693989677096798590051554370522899106808348166810718577672640313242771722383377957354528783988905726181782800171875022891668612393304219367385639131638953126093342571721888222972482713978201507424083294739890168213137689579979186207923525373869468467382164765996555438282399539570859216302538394516036315148035131469831181175650515986147999199568744880273990339414977001765339308594279064682835600532914003414458867661616012050764620550008607489901132798481614817728611136147584311382793368105401641800322064394361034129591678971758581010622568125741972246966386145108626254784681269652985340816830814555604750899169386763319493578939093998717105909035168596947904694109433369331887409663799883149499307463886341694323506405346617980787513356820125628171424531552019843150916978277693103491780635457273775318570694702146967532925978449391076784789718776302463201940273576205228763680560450176513796496425459519705585461856023535149493245459865864615503403199305744376516088822142183092162632666956686504887605808580709124269670626667774078658820340590811497090521255927099853565284612421967437730091671980292848549681099915443073382451993650504047097636832104332255193429830238332452678613283413846217983824015095169294349854078446273567991766827555322141402683930511870795505844413632782994842747240615615923382756921905707335547930423316796886386681248098197248751138425287230916362565641061656220084877475860349153499792929367237853968069255962113620844165569764814204874473349497437855038994238145482805168615157380044864043349520442858962286171179959114722258428529682547676311637585528390175268479262911390746186832749492350003178292214771282081469566480200063244086425787034163546873919644322625528260766970491273674164954779183475766313357440724302927251175903854660816913976352097174382385594357819452701231074417818165828035018770408025313426602755993538130848407424633269729281554660000843782943763385976831712825085158324703939112754704395867500676974620890783918058995158655950263602199054205263609119530778933363044341170997285725864017631660857427332995188926967505063954462607224124228625657217803222891176968460753071146122155204489015891171303610581387205980612314982835857708271544258988363169916013155073157562914155805857072897851342734079297786434746006783145186410430707995496047051483924319333811303831885898167440611051895243367118469205303002689426289060053329451670842737265985278241642515931751254845630575182288208942498144798144658902186625858919906198186864937023098226108113932338811818702020640444022360930113226909639986324498244510954037047696533990806461498803065025245844488084322274174243370430969780845843345548981248059087400134835184504828654989474583099357559874157637295119919452758840273232052887403530854369951627740130015803970637885085670044913970864849596782841775010155891437033585660216854029107726640224412104036376258401384553742918942071805030677772146570971878415991026414463366391236355158866102911091087850441630084815744544304204608292246473883912068908583150641938072631934607194484845868141006846296723845706036810137401551605361873901018933824607336836568279272513668214012439854957735628046351114532791457447753251085023010617943324351199186799771212509108066058036202275991513211552429240648306123386569427759378930341035813648683932010621478196101510582539775264317380794524432704697099189904608233642231270932134226363041972813893960289136572802694149003566369089769063869436399381074120328969264128189713374867085747496145439594140540786136818462639336232869073771437158450227914908721496539520177254375142527324649739614480233109411359877329672609923348528332817558451927199917654556861326208748154302501564852934618010354608415134654483214291358006814448433647116026534871970011588701408029101134336846241638719795589918584816770847495299679161973414045785407187212455783356352355276588599079400211296009235014464465599310598521240598935212701841806599780254465039016867522194226011923121859753259378082841130127243736887252363625887932193379438754920390462424387781078899971617213861044934105885842362839128682085345160812185814045800163081571474698523450753097081354128412362897398590727637680894996009582562701581726947284289030234118113314846553079860017924066897370319948843318777996571453166219613016447802788630120003968999311361912869117234737926012715668952533630976692797052885978459722479619737470420869651085412616388848961430827401127460100512695569339913756781617919046527361021391750084772536292070305116778518539935469838516728142244564151653746780787115340859326929120309401870192563342861841379571308381606647133443331878284612424910589844323095137202680686374939316339847382094038544021964394052801221304272426276946585985345460984278037704080327742823498549837754300383178747510081843187120993884871854857499475969565462733709560145226269040802479554535305187376498263137480288120010738083414743371207213211339017526391520745222217045745622865604829844576096261228157105036238393107915090772318465486120884540220364722761609509907364360595706699346014717607494084254799500394088065119341789697546347477334187466660757829381766618357199222135341377426263825935327434015819106932938070277835555144305152884006414667102761151523254464403335668876199142784473480272298647942090461498527501158015755335494117076301265400786626851177147086000066464891311565183763674099974403917105072229442490428789188385457185809247536331362407402339403157496960346153284663201587926384198278393758609413474104641100642429962001037994244716552236916803329973136579113431518182977275845311214821722678347191087495523414006606682032313976019108332704392269655310713875213876105080059506756177900734215975290005212266870719364710677527220032762286481351534247200971685764751796507428259011314805994736680948792073406111080737458248808509236197646639635795348167665468007233487043881858749564785747041755697190300718584164454941515451558685423112138031112905282258385402402049036320835319852374550799969978091914287628959485472951369857620063915661738399141068662804727335652952047336710135122851100234505266049954719540001252520230092152768677612162703111267402241544584863504555655907826830150396093672638835561149332340189783454889557754351141117513480766371319273001783356886157354515788758512682472948889996202280185975302649026727882924912778733292469657177215821807971167394297968456203791169932838924060299930685116493611825626530363156229540532836503970488555512222638371605673267537088853464706274292763867739718464957361281356465248850587184970554671855581700397823639338291518723920085879630503357925118392205818007859150094694974498574780538051774082493349640216443071495622932603675597111993777833121262183510001068609052635273527858183837630634868618339547636885941306889279850082008278758358614938225079326416581002885029263375637199931755748716898456005787254247658926336101445864630912133685309611228848873166562768175903383619230230264482699285768396833205000114137398567764594363342252033703290390936679006009820407421541057061450553544219083759044861068138057159630009487939996207122409003977165666542118176718935650386149765511099615458525087742803135755232886215706882121777506672499175031016300504473682835495838063492887524054979061131439351960485071241779307826487088985330656478500799914225259445801494325147198847905351216874918029447879389574580404650128730553109291554172420219526054319934563245601010855165413978770201419652761169700215541288079811219593175502510596342361719459255863656481745756377055179587702359443492757281698112272554898847652058326470662006111382721642755062170025591643821448569678820758297457607597320079822814527371828209797681710235681286245137609377979624008110851583822382745178761453987517422515493733050065536536053961382391846692009921255491145400395305954835105108183511961383510950677033991784195077874397889452765285360741589873142582231479083969867535072392955542717730649201083840792873347164311178283954352633350591505663402139372216242704725127615728360446417837727142248357898002405613125014689126013398830800124497516507648662023622235249011752926846341335942504875531173758698602290892739902805079550108153359484579982311652782369880904739375451591305636259568560568946190086752598675160206693377493664786904586375487723961631845454461566227666594826480344033085074440650593422862080912706389046151778394850498451098137824817793780753112930348805114632672526042268449500003074977550430241140000300512813940237703378961475372707001101044797120210802798254189186784968459416940394691657010198520179053693650939467048022163608399262595493152541445772804907113901769248028673113450632362041733105978978893220136789206895512209760650262702149277049417596565618469034320110225083325436431185063444797066305015903759996107459396242935401941962294102292633101243163319898816136965183931889968888852085649556136264611926938825991965751210062238942076117507256714146034309754329786350422908333310786329512197064514558774248946272427846332244370848992495507743393124402477808840211074004025708395435309560323780302328047996557035595754637897268364288006667807345324567819000451340397723018322075835158755397108864263885548411369765908076369925315177585855821564255806089509918031842792433667326909024716071704899641165769742620002926863882933818847703341785563178848666097145317772504044179457705352440515419983089726315407959976310027307191623866987757800150682446058774350084479080335215185664529645869961085141497631325971116563187419493925059939488659064972957697317382491864219743962731630300074093794135118245571715594762405213027440695976313080051076723774173953359513675080561889109785881942159861098575406916138215110063900654408053426130756345982854384297825716478060878277977520914556615760552172556666212119004982010262836486054241700674675104696155180861545281274059710366890990777145632787654317857051707295818883254718418619026664982900696244524324775931541087989342994021848257918005066254284798287971724675723923796160175414857673329045858828683440086444003597395402512088686587146922226454803332768380592180767278385248342161914945934907286383938244009304713612339764662938821450956545880960351863543778209126886413394200854205725503834397604158342006760106094481365112038119947018713416740136079394600766186596501340631223522123576441897461062789160161208096609223006387647456094273681434970887059243665222271094912628792920323406689651898354987898891945900497683630844375099413928878048618773792712135103114883866139974799641686698714281564035072167719341610425043388318152623061556714172043489751929266365671407602636879009491837570053435149951277817454435524957940304377756097595561607581584131863605075196577044810976656090738729120138355588600701867818643964804471232089872219755342916282504972042256695114718359074279069217905301499574452903729662218547453774255119663436518551905434807134732718033447399327467672560677114757993371214711335043041268787856691075680869019698097130473976528565839827840825117914835212171018449636667879204172113456834766882706363539926887918699356185179246012209767243872548001528298824352961036536408410439469229036055930793002488405822120214781081493286578893342533693172338047089107440098137011015334966817545680614263187205509038441783446859168056068311347439829465958423375328856946815938726291258512764895886978281800424471907090473184688800937429931704379895760836154216047130303565312497513394500027677201765665901043421345312838919438491500621438186941961674041692897977825039741762634591100803737675415171801657871499751595865563108304860907925158710454323105665544501915504436022472564412926937803123514605744768711278580970090598317201528753633232656077744138007762196452973107400790677760405295957499695509957986753865791849537332023367061576493101158500691379259061877160269360209801557119893686097692160685096603542424009028201880367997562747987017796917906193437613484704177972292204228479995865591633390106099216641165129677968022042078711169900684310821168420663276101379811094122324886115269185761487956153325257734008002039323367484817869401609346235199260550467051819437601045726213149728723966431942447250662088786099035126470771630089466276426456319442351036209302416265800180754410923776002906720001828829900745639326502180173771412722090730751639151924125024214124461812558153476201278832178942085512215801958214367449184115834687760043478279751571719488287808554782637430225778601357424541192413249463149374196545313236123461859383267169712622410005296497970742337915709847513473581642808515161776968576049959352571463270239338346552762091150481585452053167341807242866804971507586865703990008768171804118028397007995666381863282422268610877918254322509625002491639690928832887238387129515433553730618497119643063514564725238200476831221542878258265516179151408525188207301924461054090833464252191378296915735530510050262222244273232628884436777582804302237830917572476683502675000187010008109952762207114862398837158308409968283878949961779287362224520403263459342991333796511802867695010859165346164190708165542541670097245639390833565996550681549990426402413412906046555168314130511545619519945304953835581912271750105302278608350634641541728943093838144013121908419797003655736052149739473421771546555407748106421352413125738871227427548183852229976094603893929831317551813330745347043799644439466094000893022549867550067677203251198257511568671902636092907361865914864760892417029386100300407130689434337816794589671453829504857940618792035525673661883659946646857256518812102017953225129526741522227141928760335198001700312946601827711381441859332721689792231126511159481441326657463233896004238782454284998025698685297376029653036145231596034577337695194031881258573911538108924082003999143223636594070241067124488245480857080584006378020591889710501145992968178763892891338273322038526072422102653672224742395753208821549864404947060861962339546357346018798646299558035473860107698648653250492540814251150343650366498562828551433060387000320024529456206892001779907196733430783448846533177939948620594112096376463549336885452173219730945590237489953892165286271421371999902306538267459437770577628505847043724806777905535883895013988715070764581331245011845816479069646773611111210947142141753780801528485451034871182723405188621826936379629184546977653163694334270738437671650970779652030168328109703795759475567909772751929086663493068680587488164558993096910378009993839103378527259463366363017132891901429947937496681979290433796214714688907690299555380497254823978234991218873102822721790592763893271888555042531568022922735669853280927832035885699895732639900774019617361546339008750581063172690349003257378735851426835273926339485522799259756471132443139023773187674899600642629771736512645921287049919826527364842880559902018988775229993946303694833538862602941597959324140371178799183353914304960429666054717605284370336980542251397925449154742226388614469959995686285498434839051988143511713754587201969288229366762175499815203425169329955150170636118329097594927493081115886839587565830453257611772603221327866851514500764142940783517526075334577244306901159824927446848159419537689268475134720354993867473023977328851246374325759530645329089791402650172046863942968568584783088064134292840468038257231915950394307103116752802187338323756197806752724162558226562713277908623180309164044500056909073576266742013329755287290813742790513176584627727942564499743669894542961296576557739723832997683016419833117594991260262107559564839849948863720466781684701469190963643787048957077608797027646619291108819029534875167778394230688502322530483783436362465714791604005762403131479448654765746120987144598535766499527138156548034511310194281232959008350932113991903647937482796167723391655428333935444557135513069101267470842532593748903473342980917326074827226280074273277391533636285065300058976025850054881725697990356755106000718132679662056044325212785094259185577208684131989740496341140860691147538876689827805425354065038768017704801304834333378474352229416244246673783746127361763710342212150267614608176086340640999142733207036135541238035792671634212705513854357067456552544656391096448241592836980173380072730521916127889493367735300047408159516567933679857962515184802750109323330763734673671013515983924990644286181741561959244563656707154219744358112465497725445866991407846697680466435393615264386285931662785872583613855255695745521423513290270723204612252273469791898258513914474221595417619460051050652186750815427669245712585587563212165171843614120875371791798626175781386190389416158015529021913731910991748817636150746805508039764138979883679171239767482229548899396710834883160572838558916439321399150776016966324575550959159508299832890639235978962302284535323246921501213205798705292789486426974226752713998458841281380940038890284377970271416103694867138079333692477750128187800451329544373709590498411713761725999623716992556358766222377426406861085295696786664614233988791504938092021023034831262030862231455143262010928352823679045301468887616371436438755751664703977995826001102360329825053140809654675803871277400987416676560020604135700470951259495481944078151912508758106121772011307849428011917247079276720370510653601060876299475370391538235779629331051450949319341906209534653219734666288596126514780118409318806742142065451181437486623724752429264222621565030755054536902764486554220620681397479596015611645100942788763976473743303451582299745910756915397064794348355328731049128948707432081165000121724529224692242772085404084257333305817645858146826063929752519581811021668175950249194686662086347801477667465554596060273662244834873877752487467026805018306099615857556514300461998060351372182850752364779401739557835688915148143071036330831348989789178517035396212044876530333306945762666321168996726291162632820569241809038490176992416929819146835141245324773505943773606337522645552840735100381409049508032029955308220136600936358420578021890382340450488974314724829045070684121268719918898819919293939808137783212342596518304773206908592236594022952963881999966290698353521327652701694748944270164049179188265609971646754183147339842250036990787021584703682219321314231480932587539732769034236213265225538091474809624983496333111921061297286573655650301470680292563883905134585943050405555380869176582752920359833786895540615664752728105343948077404495512520362458575054925149020100310869553476520924229112299667929034392919193364215983614192861266143712596709396419486578550519650595656150635937747834581020058546271874626549931368631012047601434339444412839933328637415922823961116594407094831587409172770013116325072073146461246914304295697058324968397705435043307237402686388998548091164587316799845230249034517802505668832801961834020083430082609679959519091313844760206699138012834191082191672722232989621047114989079886733158525112375354925770904981412216358361202962825435242676157644450661851825926815343855556484131114634768484895136220488227220134199670893667142565439191175963235618703898999315832251288175143555154502481417626118525585351744833053688851460639596298622065809041145607577685857015422274186945074954186281077109323773004059055332988423034519704301966583199363372330342483030434594729077665119670266233463859671561887693555338180656625467873777171535300050518550698248286374122052518694196327407359505207302293786062420325661720877916880159949265752259267895620232932025955764662177001402954379385773904379969840296334632108853282816025251350815699943552813714203355878545339632303129373651062715218332246840189717319683710102342529964557253738277220130955652293385109179871803951223734245136523009304237755064118090596476453762310341031963975278000162376916910623414677660785061480088797695696972793858470713161504014743324231113820408004910735494972615130299932831741767798645438979926077123869970777991164460232853764700780409503454793071029943086190564112378787198003973971601843380524434216264492730649885660976488523078224752842593103424511399140926214806238276218867284084312599097112723047204331086445782223617936418153271875295725459901062417349506123787434217618244633471065097127469395162128707227844369216919079854407823108799576600426904433899926017780581579769361020084812898767948749255117600923643990272917367578148171707594026035741141458727895021264060608762853087450685716220402452461547083837134997027854346469205053727570217584676591139800387190734645015672921024739348924359864619982245022500161321736268564320914224104622735998204597764836949604592765193168286825161166130708810018902826071925057215486134694754449616452598529363331707607990351313479835411115871590816146713143262602863141351242057546794151074635398879901550985433271657589413209209369188162448808763607719980268138704566890284451067179084931113888243080145076982178579864246853748249294120358040477255241019370109727211299158110628863147645873714867523065398901429450590447409856237167680717127376123668342872933629676236551693621655072966455599881584813609684781848715192182241970454254298693844420238174637924439378567052014447508001127896977453741501392181578826319266019547981551561999311199564949608113356918790901202597661705615571191936699562103494974529152761584015828738352791013538552313601927923964621021127518676525052957909076239337075121628570610654379515356738892461656016986956808071071813132184042150169855799932263370538534304342046811039360317721624776793912256439027711212254580504846136841591269485106249108335107489511598637485193321026212946464957483480627302268158218834300161411874451873705564386138692129034341050742318848034803760575837404288983972973876025085589749429965944219657505590030749302137826045780481146191543609201469494924859688674887305790899229294144805001163541857010255828102311916473332337851120891250320575013675481692645243572661595915364253215433271444448678513774985308665991679520749136264662754927200145112447974156168681136719254308597408416604918660137299909311848948875793652447843240468608583143169939495684145920070604148600528289928813048543734290529531187919285256355757817494822193356652668692439594634333143290273332854847494324651036885460317762114255593660048967393945428745426688261935497090186845483627480961735414258043812792469722589303323732571844737747243351050212915094387302446257506747899779419052480501986989665447482386818693090200586174809415860664097145669873867637897200148450948853783665816985966015937322410127893674010807664601770941115480999173479402832892868069104544722994187643321968081732259300086733867845998606696279526849478632117941370309963952124981728502893045483836883796363392641873264930131976817700116840455507897844404304969465538339435696701982897714013551637050067683128874181253821029423797282421324981962295367171018523571324107654555285412027352254594363519146531803842223619902263662329007385453424109293775562598012766108450393100549064374669664047255118576631804983171647702936525477719767739195362303669479957468836983310035308512344821842091243832338800123820277373582409840344940584571646600921098627248094698506364430488882339966181195268070310803185588470035725230915867146853301296404985909141377109123724985284544512351531167383687181495050509657971240989300550097507968133261555648171100702771760887927592240784934821431195206146986074249123692808461563783237072583139010669015490724902011335606041620528299913979665234132266708857307638102588310772207747591594642017543321275498083843458370139849567892666108832148373343402101385277937595565569719026549336293767969107955973587910507770364536807150012027847193778193559627420829228260931555474876709198042584915736859501523208020936544303700903309543251746155932364085963430420670167832999125336672828177378544365667127022604954627042996692261894469349777961163228536079761151155615082909682219074441352312949864376508643530249402151555101527764426703281680378655698732487210180592429841539165484758161395881193331097243966755089237102658316641337029651844862269626064437741698424516411807423961032555734192392808231812856011489626823995376898760328338118853082919598589653064292341730642736474598960215104263782358733944240262647414669858773248726884984880674160942985259977467163766766468516515012943495016764287853623549257202831017195567465741608901265793077436233382401933527440238798443288908664330878695740308661508666132178542040971258461295780560313587095253442468086683117258884185876682876154107288068122960863001208250659809635940594964624652284368578705308554408718988701792460560724592364554940287393219633649938103312074353736177134901603161519970864902583530457611848147579600525502995581248333972924619044514137658315632301011983291491655495089971638624459252116292590487874892424320752471968986655547217762885014615718473504516080769345247273711221907619731502764395122256480158239533351343057125360273454896152579351839222465532404574536548397262719875797307464914573844702999882642336180691207611576517806974402389419406758016033184283927078978111693733530399456301306162065356324273502779563799759119541023978444912316796981470505691059202046587659430880246217490163066615390258505437631548413654632838794310857081294076862166731785412978166838848993641476689749430276607099790325000394012302273482811038185445333459800673395921416674630482403377236148283220300945122020250017341708412915141782356971523084543320919124859613981485360760515099993861153950259099618081905827227443182755258415953095853457509371704560032303026251723250071895202137555789199903269949441175454431222096413741434360548869827043649019696497840687964466678546292104884614047307641868589474328004633536197838623412427511286812435841492305405188067630823747206441668039385795014870674276195955833779479336642466731648056662898910656941785505041818193573024918916188615695503141752293757144802955951512391286415999709423623364627791797296189536074660259554791094830336477356345267239988545431897198067390831935108008925389852674921409730372391427012250904618620409525742844429246251889580815191143280704666872307791975717001119092234577457462519861307782205081998318051829114958186418661016419351090898895223257819050574568530330408918736200051906215813561962854814096030134944311773609234728623981096680850233696624933971139650161853542552481308993852279617959005923068489580198322787715436296934410531811133844863080280022737314658359755232241987111520279635670498931221763744541496518489217043420114348174971276156618378384164024022590571496798339685026369060255534030315692387611089208991588521074636826077869359345560751525112848057884866078960651138627433932306725979081042640543576203879233395674251992716243450491934502240231656317404250696102902549800213338627097900052400061531243735603957030763866110010017680432570258118778062965521554020306326220211965454946025318858692378810543637875795224159593908498210049448205659328808801590213488664709409205228739897950583536032588383324131848407559958233279235304292993519262296941453559327119976102839776547218715340515622858989336260957778725049096367934607887886425177780157910588078766768354810200644293497927804348242738177020165184775976286054398432222850788247633167502953785373834643678364825077069381649331753756059674409966257984807125818101630131537310943757213936334506711526512171782251536600095305493653172211026150011289242835422323837606216043202649553478660108068968623148079982614680802004559695908408758456712317570005208948495173231904877713968931938835304673156730615383974123207350572048334611155677983612303318846240641357817275031056619421306594162767407488829177585549368513817910999469785029528615628523298198606637534118632681634847972891025404093809081143132446768727946082320014291199910110696961194989599406773331598211110536683090379760488418685090305452737676181892255188698109184160312629796243961391745512711608931033461905093404165158499837403286736739928193296198317485601008264891586558215552676737276052483410792719280039876519131473362361458169420378331844657126124767041750875438597872612207913461955036901118472991493639283908623507787575320261446542901129943674226387659525625100581919042234144077315022934028360951284612863474515295732073918101406454996874544360177022012314773989538743401870477504197328611494244686036822037306899227683594354548555579227378244355719288164757649477486176006635157140839533254706583086321746884299195036431656893736129457179239480671980218359541100192827277274101850161425113000152960961324074513916273541791015159734167740830811671224693124424575333895895795821269624650868028121984837370485684035936591242791274826826951233771516891782618208746349999043752411440628270771714184862255908188726433885613161199966404198727191829216103639868227110277811665120125244790412356970931661011689273279965215917653978151446101096654759932517439615279257633981585397200234708413138591937841591422101242875624243664874054266696132840661196383179048510180292505894015672828108082834930833160377573087527648054783657829632247796631252090189785491053983538703103004431883279101424660891815376602581783260563234863673708658717131998156006579259952063429035047166847606457417760240360451831414584401859046970795447228577774646488307407444696758326492957139686073094342366266899095136470775087942125035078378506495099017353724221008059010606740044048041026714161696380360743955226502633354441192237695183548195167420848886389802553113573522974722788990605976389237533514067630361056448894720886375703377016298652941142135807446040092285511770164147514711401834040957493956530599473116815504711363164336139255941649268223968064564203950700356713044232815227256213556096372719165306178999807202465339740780251161087761902820119002503390936499187029835496719500008431350227738843759543083555237958706810955866001634017723393565740357881928975525031131281906605113052750870319753293967044105949453997135671548856382385422401725347113307197883897993178166834673794050593829082263671283520913420810402237216484993518319971320553869424283748792285498129897435692026400370459027018131019263966565653323027844753739614638430156962272109416786191381939714855969150320079904427263098642602471296595007894854936262690074125194285269233793393348770170094421429602270913966739912140403696537155961686122491202444819665489928641960768018259458339207182780127601294607271284982251069569710130961428094204123412300302420298292159091684696995740961126110154862700575505745895011523297310107143401209291875271162739239832576389545133231055138403476909926104468121358677559959321904426542301129397211891664121905532816276929961884076190619770992606072614097870010047021358477060649348084585742966158133919156751629962433719189065722401055041877508232559196730116136432289623547733976868499811446698773165152833705455883445064775053642058478211854908264845950350912072146088887496773294363835874582518411020156171217414562857732699205402555552080117242592301286763485543788890642374708973713181209475616925012013296793025614541156698016121263828065917467979239690235107406473043342990424528908010324200763690341909536749331766300227422983021950777684220398171317936057774126848321815687276485068994367459095900200567539173278215786566057638034964282792521166324852070945623355027834862541252592552810721308227764787491514777209428362671392323989308092912622131229501837990475450099824247249739193257418846373917897291571475264973859692801247294698503351659334911128597379009308445390151273044795713405783542654894819290761019771590913375042210340138542592434136435064629025358727676236640875945269076653042263133623967815893490475991220119348702781040792129762997158156337264159639167865016390151571062298539716825439462958916238745606313991493802369439451018623460895875034347606082453187641878217315824982987219769146326487622210150965081563262023245869465411337401548329110741542153459793026974818821794803774861736991528354623792858379781110670281224750434104686191395624850446462036736420284395329745273039896030464435241707541067176495525101892954052863334874689394760897741063902860117884244029818756456984749407328468713842162806505810259502894121580798155313189388942602416841016423475745654494723740514438044878866603987344130144192168303435272588407596008109035422751264818584844856723454918991458005093035351124287689158256289635626380143974131745501055049904879359675105008160381679740165518604378464801674917778274812002200904902239668042102443727107323880749884517466410690404993548486001049377864965111787749291417935618590385502840250290103450785585030928015168641975106494373331148166911558527686600405473148138594062617415579147832321853246770249899705016426133707675827825028158711860243480339155953477823846207393379160119413253732301491587669888138874555288552728046983894044271833319230719199514459443430133962036949131373681424721798639255472314552400593459707228909591822249989334944577633344192447068700089393580170573330547475945872447236222678626519579961167036947123163054494348141145515649385052868242096898414199973730945875861758399464694606172671468542251157169160028808430639657437267106562447865019848948389101049687791980004614616152932705306155424969319335213870154131587445680511494381145773141819670814546431228011244681461005806883013049084876110354131250925109856888129314782900768868505877025479706090497428422620137656516872905619021767585433479294392995614150084235902726973215994320697479411445662848922959989080033738596050455419803546892135739110888483699458901029959806083327974493742356833713474987726291614180494462354134767053562919497676453329675751417720996986355356512419616340718046609080009937443624606931974995451204782628679400113300117599452882163820582691584973274083984518302561892992484182664445708034351188053491619761418403767623122804527877027777255182099419959663509188110842576086993570136537013551342621849428894790531572044393471497719455744214435262019273786604605034989087105477741246905150348420027267446466287863732208211203792343703308497061310891351760420941819215708969623958623743763394719042655743164649786704548625858132879473513800674585716155662778588157493881116861946253600313481899121473165738918711256694572941935995549910742986846953460636271321895662631707292394018584053767638146568149801335232798346789674502383934214928344912762147963481475125988355839284686844524102631976991389756940053078243679347781467828614196848034132679094558454978028345009155128683572264350246650015786639936803846599819678474538888002362135757581971997601020690221486218922368699495062851872600853818894570712759353231800215726428103293063696756714969183863908450821049008929872961203034635518130584143515614623029895070742351034210209006765117208079638410675502230742090644502479767712940715008437915474096416829902493663406644175518301703174719343843941558670197909703387863238838519459779355895358175537855784642789640902142944489567137803348127083308800056346724675120606173767335447236381439802439597833440857051341809859961711004976039154374804840854758369757011362424693449499065346667650169338751254114488132263075892706343863652762691785551982429010680858988741040505608008916542249949504302878474248646038055689794511407982851617304326116128572536180471535837028503978107903082485638400168888019937964042608625183089775267044523370051711192619331267001605496920949659928487480553942605612839208080947828250234172386195402365857960525471626420653714570198157096568643816659284809125396685735673077453190932496623297752272107097805277572636008268508633497975898429771902340781623392464729368115235753001575787168049026008112534230352756446753464704530610084101546661357327635419295996855966940214824474599000127229341233716289270884110984232391576094016126623673158190748132461342076592245231011888981392839974902933874515133323189276030491037178916148374263075471363764305864877115692942601661636768212881854201930277753756729672701815509172597200760097583676494348756110233880831150140600341924323731598147948651613291110332856843711880127492590003130385676605169274655377700015277954776976468680994805848283152406528607465985485453364195960558029528995597407846418220922231427481876896954174008545182421269984055103690648210685593453306030191115881436245565751828853705685232105945137441518849818759337030001186515258407442982274014883637206379068156592822987420889691372949877155716602264248198284232958229262911210281472033415079124725049217632212560816645912067543276998912583695005195482391407612713382009361054007031080177985477455954544760158815703142033371338971741383854051033219095377479361778912473618567162671707591108061578922992884712401035386787602860395656883813788921982215554822562483461945023228400850061924879643535160582918767760108817153110002963652039802165707149426823020514931560833508606483311091252692417322161939884592323724375174086616435374523083278972505659205163803957575517574599547892588395392379287479025296072851382296180602187633079928866543437396968068882076130536021189996490048273664378076975562211952505673233305358175295971938305568684947277757370138087453215253924646239475682412766415927809844143730221402736145861548110088669537557690381242981984763264227501700628672968446306496271842562449296387381782980794731150839903566608294618181406005891502475384128485748387079987932528248047386331001334995445945058661008732223329305951380849325412550907446570488697731344754673081362904295403743571040323743880030597928362421284957410809983891744745238206712301168360766502743531762639204772192325238793837372618468661003029719533590191179494458115379861399218954031312228740782709274095084382431106428787016346970793026985155718851421281006347241343819493384843664778014949721938452183466247334514114056838843376397621808238914651124349560155538763341790080253383376770325392334337500502581305180534061072683977469016976983737375698553587118353993264920757447652644646019528828894257558186075632032678576183424838610069183450967892222068745666275485840715479832096095145106471549577549103298337885971474264685260541495717894506803315162156656561743996950949832874249630607397228092866007637567296302824153037097432813363586171558582836638983216603790237963670560900948861333068734602446720209263211200330260181911700635091192063867234683271022914888388615899421607115839671428408984166322051808588610978247013930327136560550056534349333056471116091026728376765511313884681419965964325510095035220158880105161582935066884828415137279249444335098464640088430475951296458060610769699091953803371315345801135383242290983071376702237015246839087058448794998437093119534407798152840283827543303655135171516853857396631920932273496428907508284021877475428113632399082919017118963756785912420093770252929578550887051703082902760005034663600773325438528048570209978118883331724553643186395501915716109732446746114085963602451274020688596405306270057954463037196195766257625882674471650404845006777650336865220748822151068027920782150932299537539013487231338302041035491623105186113094923075602328890500126207080888477546233738787573722412649538461432703859759461584699172360687775975578319967577176598142554410079323534982899820938308510757772343400805763936463794939156219968754948785746521878207519842833149746766067056266517603420560859617526981642805469360692152202003514726582690019231882922074589441413476733227118748437423495347111954778376571077736961819203414187739829194609492386926519990130599108892178173845352204559502958021349223645407949492013086754767438577088340009471318682020393579440226781618355428568943609130565741794970265540132910590120671617404747168446848567063487623437376536104636838924114414738553424402674812701139201474048963756304701557696169449321472559839527863429295647341766361282694955961279512466355390590428213504617129744953661112729155077493126366846941350887812275408863249885003566782213236630823603307906996360608402925069554818399463825187939129431401645486540811509553134196273292101194103416679724712507524274349534377122500257462009689247483714247303397543026227602383085779336597663226931860963633878959700815208600166861523080927328242473209367775201087869952783363890969691475886585216248203476013305178979233369377671310163719210515812997589129415706598110756439154877219924238243094882231718571908233417767077623803152145477068382957015755727864350805098362901638259446935863914160425365459239480166359303596510375926269334285156385862461946373996119335506129845979413509567071980359104081195444466260478090588261152166009522478048633143146651756386939629427218559621603481557866079887447388397920448319335696187931333556662688416880196002828956078279627713945099461369105455433156589518201728776908459264496666786470568887000238179784604898985780692833864614490195965165363609370857247999362746948454880458380797591795799304482560900689156670505718876639557403848105835882152327135490812288571306815396750312183095076775280111942639946715713131789825318644868198739510009288777451954337605827368731072767800490052194667549918972096932324093655963049517473721107660691157685392076722767621484860013351699044253550048598201020789347928753982064797075936275097032905414372659081008927625827773221114690401412349102889379293318797453321347637953225692356660157950088461454383015504703921160977214298504344976954672257291202406135820717152980113033699555761929741354553665742582540097956071269896004092392173381137027924675125453226896099400271095866412409080583389695396395511793836061390044972759181871751856315105426533507932112955738987197782522266459415004098068659876689606971265522708042945772205922446973167314906314322423649793902042779047378828842291093198233745383063602773731354805285002062167670007454706179200723657728125808583126155764732174693109144355704133741636949313766684229829742737785225566394683948739590218306879095859979962969946383719072154774934768930388867270047827173946357067803995011591967640063314722898276215050934527424650657318126020909390646964576011441294492025786157068886968253160995872992798864628225207885919269191493694264701459015687785684139320060626740118399308937580878036133882298433064090680267941742317104937754508658479994793852211350573977196694758005109803549353612040323588911643077348475967722383863235462932741735897047511391480371931526914997887653120467800352369062269127531792615607916940441406009794472182373784005557821641566002938877543896982198432414450783389531976822792833995267304090124626013534922268714614079268424781183922896288053353878251231078197187293802053217228437635808468863620211346872087871810975076968252260390375479112577937068381719982015172690466317471231826147111105678399738515918554613406745932100742721606808470333610266852687450764247214531445581948017247614405299893228427290585976294327747302472714782089944489858466343819409163139200350545375091533081868459487431097104592557157367860735800923190218387717582237334955021074367164344525033338046073927472507453390866501002385979525146256882205934270820537390169795687452470225988977439778346821185301599113938383574459226152571857039158880329441866209399766158175176444647110713578256355187473566441614255425995466811658427440584578318835778715668175040275408394640176161582320949332280575577128846512384343420817180407893641810542090796935278383548205013348732925557790981659008653866466966896727398284231664175985458676884899092232793556446269108877232538948224004802070641602223666368354392207281023519302903935654840841305980373769654598273156393279826735868743522231578240884606612789160144139755567409262661312331569124394413439994644418002789965626564257352267855944065871973035936317037031964829400098555803166231152591119386872168101897870741286778396638480452295995429362032555851549431426826383964857784214617266639452121115747048744049146219858520738591766938384759674445084518772282044824584615123877940837963971812822465314618744745934722692469883337464151865652025398005611271723578495369023406881276444320488974433114475846948860678068746477046416389128946514184611557632043997616149026700867544997746549077865967732960361491097133268039916014840461291089436204489516500823292583191766888365181734864492996048828024297513993993277600000383699980808407144951865963019600322273700319201464058047245411718078502703670166778900229070401436771677014465580209744784218552512981146315756588449674948358198412595904985054191672613363507952843681025487958921598990784117497131288802766409690307721835189138226988442018997999029801602240243698512659735905380098620226412465165176651050405850265232214674938562258158635325649106082236827638051663735044654308255358481839212412041908713421417265002426801269439233504441016444832627653951627336686089558797274731392073780031713463110952690946026537080383186426474293848587363964801103271110599153321674189231414825808324406860745895144319710825825735359145693026584731014864997121996092516601220754086756449075805300039497521782813399874389859096589132327752401153208571342360590138952327952163769556530219678582704715615999133109930187653605033139277528090294832811403046570204848686692931479379467528936485451244941299676558816160337639915448880441792711904387930262063983475394178232298811385034718178561275515577753345850508831554721476096640778776981845569313882939411629522880022258941075561247289109779405757564972558162668331376747395755824550336592684172268304705086898806347631324443627361142785035462352865111807613030454044090131070918265764311360815243410344732306026998748002426695109568475019600731676646798842289224572309810747114411033351589773996291737644686649929008481548562403868251868029416103074879535171108363142554717375304102261436033080866257232544112225902644750416278383268665792313115196470376690475479918590392898495207343627809673767213413595388057181424602560092598228008716489513559101948456519540387169036746838349716830825187398293377824090635345341106846529043935986868487101364493949913663081238712991729208482604938354554988768645614130848283140397704490282337821850868276613773315517161976563834794820310159294323608285597317478103530901284441762989504219998257024442133296585498084178884582145539690477865685537101879100682158447440059606265779090210176180503301732129829447089818842719077827258240181021357549375102156151608969792443735078195141448493882682572177754189002019043907619511744500282700398794124582775041123794973980767858040811555700772838675361160420126747501652662714739921677735691816456285661060107579471770103140975081553627120403869105442199339846832618511319030841741352015182160580659565073042805638450104052774800851258792989691009597046200236095256604747126542951324592625495597392399936788504692222349381468071166690579975694280916692995617690192237259350637224665749066340461118266472412194733661382708533889871689407541497622167008205798909009275360916059919666252980400940536820248519918993246583915506678276016940590769152553954925061570126064575066013781635218079459890226619997396254006404184333814834138927998719780116517747255391511429557681540661353002968060532872318100895531118240899357169683878200535429456748091086187232839259378756719450033698217936876423217166668310625993606213647726912409958129690949874904883603734245578331164761573468143514902857864023813610014699143862617377615115612268890454703961249607369751238440344666626261837142467451251170960590189104100323555200359986121201556681585101868776325142630929572789999124154309226814576001313149178921468698781097341182018387443194207824879074628798923964709668348976106538467360287841581769379184568989863731850846140733954080778823508917862132937178747068661282932765540211184057888322771664427836037735796338143011080206939940071641533994122211675869458880353465218076747532206829174367687113048886073276918239359827069962384618123985096931409277077681112634256024440046476827706932019056620849100007037401480566322675834912168221369715583700559120307446856020080347034606272849039796540909918357543049442793057204833697204378839206200325283737260710175071072598064089151492453952230788644684305664100419678796001288692837497551349290850701422277230695808376923951677785436807294605338419003645252188838608923903082954088552890226996393297609383134862297204622396719848414451866650229656167420098609532447191652487974301794866443199624510732913008251366891565762947751011227953052839674211434739968087477189785256558948289447147922891396418822249720183924648475406775748736063132917017987058764025270151132974054860275415324113512315488796105262137716568986331893265564662968388226507123317404799564179523095634296311466469446479983023789976394637190851017289268891581276166137927521176216121545357629567907384220096751188579937250757611227116666342849143393474791132753648132943913164991554235774762667237645421465085694757556033743004149852614893443294172781435901905699023306359811331257545670532495024383407699681971952300432256285565758984244084344504101583995388922422004712759871036722760819370579961022991449999391236822982253880413649009190407250006068705446957458204759270569539079436483825481127344996169058160649842810837351552063547910354720632752405102600616998584430696426536518187440278937937214176202639415775653239379665854153857907546872633459386061958517423431144298758945461682138956121925749060767125554022090151033381330085627810517909121545317801172232921862302836122060134441554690588405521067095617699978007615754998308582982306036512953817834443717629115273026440378733322243573834011041219406595555319710786033620623703340111347250821329997063114842633460061658463598705722066714066150144229878729052693843920453084609840074160267543569689793665847760603229048802052561363948957562690953117801930790681840928028716587813452727586531749743859964133553950610598132671613525487051487154031974374252604787780024199657535600183803578628244330456944232081046540988212923679759428035780820523073171013219780183737046581394479738118478406501406191361460507578961964634014616672000779117612309843650876197410799409105032364426631274926619978641508235348831265735551719788718473166854197629619317006668708951079458632017848012210144202221995557734116488717170694311545612363574237091245445796419750591049698120695927711385973646901274386128260308709262207385316648653140028521793441762014570007887034803997741151362884999676009352311105160587291860423282125480541184135412676102868959164133354453919106887331898384559400454459515133086029509502791719233924740941016823899970389951537967656622826230612618100288047921844909620231247994521242287448369237967727916010037323501587782599485063974157835494702493228123963054885246771768677901606778060096335971648986393546314210614820045993131768791474392530729806413861510741127245926876342385447334509383781875187797518222626024761952850321725641904573200238369404371242812070335546440753937453993384010622519882257012811023361290292124609478924164319066878028826249780527777281389427563031205646848372989556636143777200205868538059657598712198339730007909709620143940363580975544998113962558511436274223727626395334966094738466421044191507665980588268289268132560286466682992531798156615373307619440818362258090827925865767910960850423222740953251898297066476076857949559900107085450436445304016874966794093273759720165101774869725341533679641405530009875870202360679734296647297246144017345048176707552001478392436466118506523677959071695221141081749156255067807809260872957727503764461145921782589938775579268905599344367926119436955756821766800854423242160171124642275735242290327862994061579431290500496952251273580688984576599566209011877393127605313154816841479260695788653044688986315032237316593670661287500936084494613813605860170820641358981223091940752070195865897195003998165186739566109866775686249507032807144443039442799320376911809734593210116754680199031254773882315927771086112725836541504327288271542539942025458393726568449611890107440282221573813666629261091579527430236086167515532649173173705991660077894117334302708809327677090727900421891048355634853778974917376019800497080193812934886769815292919907483429003029701857945325706023195165073734463939026067623788143378623112690991069966525703234011353252627343371435376075707741048099458176739378364435585928651888110343361925187665793441861063503297125551871552006105846081120982092027662474860262286817252603859726685695601989820291954709831829232729411737410119598925355996489132041937563033397252020756483684284911006244955953075640471325099482809438934571624760461504218623387504769878657345537257860470606216532274920971109000135615625971716552274713843257904975909992779666934284057297607311758870106845613726503485120923563558768596985734052201005661232821537082124004737003691406990583226464819487630493277389294784174625931792312364839253956971754533484028475458625174449081804066016273717386230063811389003060320906736522649983154180299700887363619233485229757400001243342901495057857605423501608348923832572087537286052620044967112381105018541665568349653364977213957791671450121097175404461081611137996410348668730713849562771584935105055138404105656891528420114739257854648331548183886234293301904918644981002128122245537491179365401187498285902917052476287677716439806365314301139450881460326483512672415381217519874945434083598038954314489392350543582232333994149834088207412842538305595516992082268626747672343581400672070993227926540915301528030276006849771587747927045776471135965329255469649625836992819252321140342853405659666582405891482594167259567278313062005759760306380808592746394497817787564992992588300489772059227051976835190128076035326193241158615346706631622334947241305823626643978542697723769279201242114039950844244151063307693881758205738860723048547992923499152483868540506403686105744427861630979559167212300767163772027433436339747208731707590012246708305905263283834260405108803007508488444664083654398841976676343760970750161615164578073000893027616494119293647806381717483224958788051312334577176838334161553742819848302543124284495062991104809732678187132702019595599661341790821190563449683795443232736100617461687165598469924569796372527290494210230617518050461527011722063331735455078069960011238673107263282446201583999780733116715526349327546171319504674058187693777003114699464586988866117395684993460162198072461028218390870957897299136071486446725446044484516814235291488311546750172093176525130141397605462895274913500532798511949586513515359702202144081622919053998622742153371710942261066088688625877357739767426603876855900998326767939367758319280583896385417983096657325797925235199973702731087436595261600022303893902269685488741327727101153393195699507652308861733835872729807897400222012810422196318946203556447598152646470721955819292582017300709910855334176647861150803234513625301925192168282513646764367603843943447392194250305589832417578579458307510306720522639627080259233383303638550890098371916831452378834483754825776712893519082090642384444049058320303445183226472103764267673571089831784978211711665346206347117309458220798859079884805691461905159483626077876260281984908149775990597260428931883585184736488726069622803438872946636066899038009653385342791244021877146999330288649701917221165545909050903379554139934608020771015533269006621012648650402517355809784014667351312481224239790590242471207091854440871998456225430062740457637343850863492477436309393165014551505253737520313613424317908233595974821201053983294485609510497436085910380241786409133531504178496886329046423796777256188111044836441928524640342444798837310591258746135416075439339337556640476487626667353562800019782755734454091410163407429749706157293541359351797873943442007962452796488954088115628215772677267898259435116063174002917112142636233934253941051510319860783045135612097559997512101076124615555210345102770001876067154120947805563640424386859814867926996981306009867753429542397596806011417065166314619720628361417481945299973204279196499145927436475360379469795972108481736026168479004577028072372627661386175583010756924544891756764172520726641377487363508053962296457294810346105805298637637033412916664145264283176560387132065214490684590547152503288801343317872228706053204530007019641071104272780942540591224476583114802966657573953701537578184227919125144981483052588370156436556083615203813865091739262159326947450245340686809560590811584306030213668037813755232798284611743894871450011971892575052899338820309581998182261567425818350755084344373775245351988400320568802366523468516115871091440350049587823571763872976806616754384085164023535251862554475720517611852804690740659637501644140630603129718101214665845802918373776009552921340745758664868171177872711024006550557713457902926239284411724560750793165470526923845230218504142404787491231489723150218611057291974629889632191236506903768317314392547259689631399693526421380587792309983960942088673562565525216716497620359509335771927910433746771097859350644760644080079550684673049678429961831576670646419939779486876091887587942166775311593337414816810734396536492353005551533310357717441934989375575811261851354616543824665417298018917877094878504069595842595966070409589356237940456947713807745699850597497605701841482354352552586083355730070974846045052988707187807614061406662947060725241599649440027433288705235304534770255809884317605572931982953250724764469797418210377666841134474718308602430531881242527334202251211716352995868723569599709688953540809982880724684316924540426263570787286762169604959060994499163820850004858397832828766612695488857083109652065842224974016467170844934312326477540154849894495902096900049386769233867854285122244326590041673920741687848323664639963762584153558763976890770711499745449146236397920884552213625616260184186646116356478049541729086476362221475156795564594991789613516706278767946754171872569057660748097833418767074200884475870157973571827726562927601810558148134050874362111114631039672063757467615763767720210793331096472909576118864618548479191930596880399116775818422575814023548886768052481746606101741304652734839592703479836011394649415704246334166814615313600690670443025896608471091637695258824743345313924734622029293456659175971417890639265808215849025806329224689723202568868825055332434339413483147241220632263497244338113707868054586382712400595173747401970632391530833979048547160684024905940344725725934670203267414936221425592681369262735956852433409839995064748474050324443789085860428037549751745348749516441728231482032771818574519408830593146776708611988318775160858824559634234078244737700818931245278284320885325462682331467949989149443436849407804959844027544098349245913706290210471681311356346106296435181970121757735323541027080256113251553408570923131582819518464197750384558109474366220886720695199573404790924450201497831375666010170022882811118110242976427357968167869822730718215861183343280269259445282495977971205145894144453603141546128876633085784353775776573491802612398031773636270399984890762804170255019982476205924621174157383355084559794907742215782890252756890095190800681127728153201298108687653826532023192220992354357878375122573437250462521088431386805998753017302647007406445899322576982339545056699152952774444696330708290138230146230011038057061972103066024337832925658647952268979449013521237886706692103797985924650905193979192790319071899328555144152217376938882099199643057724436095095122889471186774675344564990001363936396464364288704453272695589687968677447331272549587554161173526491719881902011860908993853940443194819399513548831855277896239611301960372260991874106874456208829645485182862737465591466726008236781633557763745107648769393206920851947578313938468437755450685049704827118875051068956653107401328796858574218653334648784822384296199225814017323710673197560026238669524068609611949405768775882474934531662011019642788847479317962498615286479898275522967900173704427862046357636075736753145536727119179910933866336817789714877546794365301563125037615538500952177535937487343438574054703791438308824473829525112018710015226480938220754824319240122617954666205393359084318763055558074505098648950721737143817820251362385194983156383480570818230642868763886852011318040262955542260097915320442776232081039530720506284618389883172482032885376506197923982325049487804978592830631714501476214171666694718681807857177746817150487412804678016008633176844166377852011447647548221052970273759241308491917293924928907350668962691438099460300673193049011705821438103917112736102388976705512797360248982860133037997963579618549167626298471946209232111069275107226357812739629471410424793234648732616148119026560956102225097072377828323713271237244462729840433905617085816622130788904809158210272308129519654659700444749905257792718028847047268954021516422570334264489348769361006309308896324371316588151984768708466067398739842604349465253536280908327798312838991064183016892497667411349378817596124279611880243513052809381081445343647196529455181659428097290753739549442012506903551877845670204474663310576237693567857908016322878050901775383741046768693572388557823463505659797123331871970423458817530517650877224870058169146758096739102734196037331960897990164847036946932212754475473046092546497912385922813151312157424634744869328767800095529520009106303895954016070968553605881973432970008067595140471126939041293485002461376015924746768484015982945929795183745600246618600628217093362822310627667646316330989763324524179228306572029018557031806664903843962290347369803294328925062641494377203628325097434047670887964970200440319552075286639554413971629101449862568954820327698584644730125173146476100566107174772124440815384889115448680036044801828785316261075527474074741478036643780545721762726189106726388723231716447790553236966232251474234546917053584310887480836471843117763674589694098188821499556075969788430939985233837134666688383857223707900780344902479861990068521192739312251732766412378582791066252587233296788569225866875929010285752206697526372707641739154402378517612833393053741969818348105112525892735497919873262484178131984944062665039657911248288939077396572987337250475121687390506345300810769525226388703558957050303843965301257259637079742830086094406520075746523878633240584355090729244740709656679268497444879310287058155405128751657765956687002543202920491154454426524824406166089390784639151062215149784408484187223090720010401688851628444352902637477615086949349081610913009209848304078641539150210572725871598534835983260668378201365495942035841635575699759910470086603411709187933885390304385346967002097316337171520129337636724449409059242738612095792829943271530435497142651212941989035743557589235991795231232175062401398686637080073204202483986713148567541230671619822914818267567399038965413261425711586655744379529807282553310832365625929394605853712328970975392087100626261465643029971089879361470269150916282534361831992386893843246671663354974899963679202626871469234631596487674097784594028209371336226633046826969985541957325989455678390997999673801624266069601332383372238091762035487408697593947258617980326521339605546539825840885614903092240267043779801941151597919632567361197060676216981657819856208925643174935081760175630020283138727741031096715524921216757588410073067911815887264840474077776203018541725460353821787164393551346921573787654518106708790024188785935520483390752485781054566022342246334576939591064867939846462208177307337366585220877303423968036662866510847409815842097521702488163276987123246601751079591684670466360621074898780828493442839184114315681404184191840422974800955255384805095729925000986116414366263910527063367660969472556729017724509379524272732572857571731582063685681985109075163805633338427833437308567299756855554104601270726241839859443397251207728738060618690715482875203448119314582962027079339687157532486291406997715881298220987480825269805592294610561800886161024561104652426358931397232150534181838855479906219775795575474535914690297443332438116621559340633488556457394560550351814638057338170375525809913029699306437030047185593873525066997824156864021800168860232847884900954397753998631990258680563957312414763324404530005558573047092219167515441955719319006193608963644230621715481270451869020103168780568871055469167878748545874658382756915310070415239979910072495985386273863558710010502973423908168974044091089589773850761872110533834371351480963781762457355756179841183525443779343609840459051618452734057054826847269885157410132860431307174291066647988015659578208021764125898181989315468311747853030657615989430528105324186048052396504398168024335664529527688961119789093276771317047534919547041920355274803673194271022883280003721981531070510619302252973394662310659122215082597518876436507189556776296165356341411582366014424727158175638722638794684425683570472872758305319788346091204926151844175396272904238241142164091078140993922986862327415466229988407830169173774211266669775355782415428877136829042169272464487093491131063030608340066446630255238530684905242356060910296828907702300426396360678727780028321336260016790377346086072329493655547342591890982704141003199245114085606608485121439474051687801087182999971617776353185557834405954097594741324983234151696050742802903845567764774036290642912036019804507984317567642102290667153899874770672840579660008990207669053727801354692744996685076086137833966012780960591364349974246096295877966823142207576291500691521022339078650263778201935530400907756597860838838899173761836399305753049310146719908037827002494110482289355599145272967692330320720999262379890909725457448239041621133586476360858202538275289717492098278829359795329499039454815464676368677651764389185005801764256524570667167398177810553748530659092871003943883935796812678082993996668868871880217976160856230496106340411888937753588153077912730064054546226390659976538348678434348742152152543813085853284872180100332038859523453065506588813836819440050900667515462605855506574765649448777252915540463736314418835624477562631258489645527122064861249143972513427085163918759119607074704660231472698749926569474437886860068502506855586020477791883724166760606944273848858136554117500527483346792139916261300631388126754469956511710540805679898244875246413619100999205475113069095505514485336503696792194726040220873815771225596396903658882094026145657075804050644310470607965701362299686266348139908215433296212544323918871304021847385851532087386721221059829643315857746251739145635297881175754024325202374736380747646618823992303799579496460013999370499824840848020546866488466312792418959872415573449099993759123789879963333647750246146683461843137503858936679492742974911962375967516655494061804239369517218111517724796391714726439278559139383577387495990767407647286051508650330783954812079854706689072474099525557509368311987238516632727771902000131573409317046407140661088709152033589222843745893412186528706224633471544011926636721041402779437289995222165029873054570406318602909761287843299875948094117009166155184687888473669034805867735402630682138425534463070305947740665900589392176076739026983631166502335399188408149146823696346975646392476723955731285218356462146964982808302397989682686961943393377632054721936257275438999632587127575645104920690381377160517888199734549013177526330314934995251185192641925990285389236819638295172137286390241193018610730665367936219818189569796352513738460171281781468015487374301401803379397855048407188551102209386081969594903610075375564362705853276022430781218327795968063136922190820935008581821297374743769803839902495941473733937356807926966355129835946770285847673979652646427325530281248981051835465234742508649878577817575556514428100389349349245692490848389355816039105555279849132525228125094141529982180487356663373214545763069276318799415255961325795215472328889581470309426352785174131799474941537498265716111120090292807187582606491188051581351561706484019661136789173678618043187157058755109568238231209041246600015595278608373743446878941179603960671954998606246286532278279342786049097208840841082983068885642849717607267290735473181190366015144084452219024135892958157302034712562261773429132001030363028575817376010607519698679330324464470545457792041552258281477561903056415140293804954498887526856024941721248772638751168482517818585238716424724023002329739999123037009295162416228319830868292636309967176641010274759695980491103053446064327210098416572734408934103127457689344560835974405074132541668299009661980897653636445184555492989534157224814482899851354927956065754810024760130196673670426184793410963525790958420319195017880386342171406981566995806300246208605980947699499727981800793143072337082040727566440628885198013782274993229926809629335048357192086966891299191942717800278855794316106622151856005603511433102325794393222442362306699756183010711369416197168804413513270949981669761456275594061770284501026745433595238920302541652403520598165575964953735695895583905450179793256649901114087767357816315636147635828749316628190258614332196515324381724901420855713098058088169919542821256647829583997103108226098083159224711880578452243318672701831412101279038582969657602156539185654613742860980588037093907238211707064223110052414848829605547715874360349530011912758804624630059104309491070070803052177667539586166844171183815165388768840677512008250727138685652353880042925843871749219679466393509006715113393936511794948653557264792034135310192486802081629765161881122544344630820022977765690325233723994578242484570978532604349189880474009974354154389677398792915821187641606826424369457411094257721037229238237074145599205483240758593405269743615338228966765794616569415034859870003350736179139853505456527085454533338105863940782557057242029730301129091054240475081976137193755012729652023550532050442567215258295303564175867475743956263706718536013023741135909853810833949386165633110385309948530672888907590421439622988027703472059207832473292238287844655831068880416010944050528212871694207733300775384827271560940964361795645721687197939647701842412709728838433521192257426824334969573447267783668772312427034001441803446693378913946361050866948162395931126059999521614974586480869810329131779000769204587416768486500671041418935936024884065578019878107184641072224494407308477631766123354751891938673786093073111107871517526519425827689726823141986845270740726813713871746504317678681796575557282019073034887622746154725986458942243335536755097666507587196960028905552328679490457529479283771255101205680071565809607042452606487040157166006326626078185522564392928369063070467432467645609779471918892317557800559067379401258242575423646299054208191869546195305234074546498765696881954493304745268423335696368029269761692456608941161272923001524981430713405631827108254924309552187267659803239481777366962104075811982443042542913973822726007213114408751465541695623460276306449762818039983179903855131504600194990267261620478006099719545109770669454602776916282019759380439292486314770787168681613978197451658556623817972919340644641849814474699502345915941814474468196772672136719775862361925881537820632059696257182621933577856237343706471552636347613712832635565013992085991863858199601392331055528465749843383848177812265494806658065783993059609072662559640998458215718793327429466820306163796752175399370770003502774136249349329358600837766946108465693053306036953652799885931742461136021238173937855171706443758438891699291794013719272210411538801995790743346499776766915463759684139629821778221983122003170915981957736181886057626450789299241434812855481086729029226297891678983801049046140971084347858106441363999791805114264698846664805077610085136600298309461365625738101536938676279781162767291663757354066400185675067995137330397449763144256157887166426983993084943040154902772863466854571450081631538952419094670203823424334615614383665189707131038716148928995050881889481477593833651194098966209193276863218474994978882661849383535739890270164660779847681344176253089774638000212481587396963088471744854946252461844517873061983327040621319170385093844424476092195302407371836083100310370887402932214886971518974331007409008464639375520036692045685328163044566772885536270922770639807697387449172781232925147582992610557300127663526381699853015203132773910897022729872243209025323177919665646386391230739854599237527014959861764040830362109316061973736919939080216308889298401682649795406530437995496647261566194828372535991540901554133066245205066198129002541185362016423705540097008971839730256513232299149703063326903730254257443747281092270853041327409519045668655478821622905399330862179869513954694191603452961414416224321458180050024866926487167709207107108140502042864780922400525581093973259590487069940444738723959670381791992842963807841520153028949057054093374940928718247582208556952583930694981051396798118425789038558190635698727632932793701281660859798600414493306936802349684056784249686472699044412393701638387443715233874534061361187798676173942413677431231885737250305021320655663444487390931668566165422542935862579427501901229728195827461927781250481210598242813866117896374217315059961229525942244844409215629090767855066131642751769449350799407158734712912952465911783433929891918501366753562358329075074607832136235467939591976938725507008539200432031289554829771377088397494478310746311683282438144855512028995901118309107759448132602964809731166688129294038678092026814766723799640387922605861207316871417665007688952267765791501803726815194907362906100911069841791971706115092076610583635007989848957036721185205679572734399912326860500253452429666356640161063117226921128701980595355089740979400337870511284447182249494540653791939141471269865356517753622753087806025586236362217864496844979100817466817390753842538731703927854953420364911070108458231085850764924191756056674754401396705414672856928301195372306278045945365573451021525823266055791298241230720223056276033097573835102645377534771995426399723024585862703204614285582742532050632522245976418904611215537828898690592869781901015237530517636426227269741012110209140141422325187162625861960867468006944706508735950856633751493327389119101272864700642304778428804684809425455715465581643912135840565527111105196243046443549001515632698890387419501846724425970631394118208926251243473602814022635086206199109783550841160797269563116462446466833623795576814565720124507875610559781345492801326719011760536091816998434061807847670919877794666766905843205182883172430650928146952133146888232933407634229042385694510011584299712202246846392585423151731447648045538397492790066664969871160645584626384137644487649379315458760971056089379067655753069074101636193436225968146991545673413346943437734801739600215668594393181164127212201950539277912547240145329242042763472468706103775944427769664295485733592061197074809263617563287383475564404656204770137337426470857568835189156246845975183743354166386825495036466065342842572491274510519686726840648878084319775745840859993609197507235196051832005106560125947922873519815712712631603710498537093863443770687596245054542182853849929746305719397898203331465681529323891856281685955892621750794308313520822789616554259992667104194366622521847800759013374961807004301433698153599944159861143126062960217238257174464969703322481613039403605683918631851688403660476395987050255010611818152716359628533505655423887312982851425918935441349837338324523142946489859633454229978487118123534133899824282554651085190972846116575858724126879064310061767614952877046766353021820282759976730148045134631540057165852084147867148386626605590092034869540485338054941513922493263164148641023690022607907699749850813734170858772185647709789261965918372455053169587488714264361468210019435121077490731094590565134736003949660969048606357819400263815342141480278924593573042029470877346032426654511984406327165282238746144802439088899642608551568425736557620074272418695687239966365863540999267619854558377014968736299065184003479175399561417506335588992016837203395617641582608955819022080192047712712054078766242421942702050088885872712167244849599166867105445438055920242374766672431102179859167832940063717397698254132876816598107932847509166505850446696317606700583711183970396558747178356240731244722711041730592214550747924581463232102977870756183512999661544293866893794787599259952903889212864126993500045598697593869973035404550858261500429468149920935626246905553929718176460656183926206266323489198816909611572937296421648428903755501221739483942226705716241621798377464549387540233715021270872578138165731849740395727784772973809836179083967727347680449872905312148581426918975171696725054017509591633987653258657554429909477706693738421521926567764173218508035708192219432258140229492516337993155436277352704601918116982613839448875164233793850752768632946208059550877124777582964642856225763841897239730427461681267137385781109918537361087639416963876153042466991364032151190468414640421087765537010490472685912336732779602263858675667362907078349767971363693809592474932909085920736498200246729579424215310642808726145693687277106258975968546557131970770309925516087259790929397553222941426886028219155443646407075992057048245451954628923348996407237581821565230530488892458016038702605484149966717898025542868268560909878297376669263270282755047421262717127723121417008754729691371962986547865088843607709973382256521077284039358497418890124852072358297225514361881469515435724980456126434329737816925479214552588061396568533576240429776903707020742820167541913391616667017756081367285430680236228345548131157557073648565500536643832763404887850918750864989755079970356154425766715464493434358891996341218147731348692082136515410439314543656392880578527665650035284568071413160568164814449573746177542562726721489004253170164412601686499135727188211209108356553336002813754761115005694754999167854874192858358839383739173049665810608799784371809546804075999125752587257502232191607815769805457597216545822013037613771002305647760345909034432889968868159019916976985444010422520501275735895756690320163056233529101891510200088063139042951637063732670543204907793098600714187838324173317951939573833956464207853353850904550826811715944397389499966425132781926508051289068208995485462366410377399312265808568663431887991288239154268570530553068989462234622932368635579547697294089916019288140162604137240103129642303159970548718173007668376652959099525271594723415055808382378245246945381183454157884001038885451551251913280073705217137077789775323421746953578493474324333149874040596153179877486340562531342907697147460320826754034266338753460593310401870435615837359070222263020250269807392472656044380110943453919061408878399790134148418080794567690558473980741421524215686322562211822067263065383832225955658287502137471949553136737677481474775413556109053298550495711724044498266123163478862114638603254741825312330936592167036769691613989693449894446069132856607207339487559907721182220317173337883847908842695622135343652491333425199736186356169358223820934337760623295861581989929277048164976518756989306522471939575115067544961032402359174836343576013605730588583830508566031839932823376498982512221104529681546505879038371307803123071229855754660212563129279869881637507446530131823934355436526100591827269028827438508498082775125442766430065700685970667042925934194437338683721936663116250485370309869071166934813764762849591377612796458758859348495107211137102838781091167079259900351783350065448004701043001202559057652226656257036827378812433950051875850767871057289915092673500866323277853513587731874203425424754869215677679151985410933834594272344126842946102304066586727279305859067115510729656152931844299709605245220693077894593222597870321942697547674226997956392663205003095449825983476730449622359449841965483025771479398357647774067641580326962935772908619737849574665161131059438495152395123107900114631871960323253199928610487106690679152011078694076053938862245026569173663169133249632786965403296119634890764514179770242837083604027644724286725696061938401871321202187408958601391631970580801846761649402642322173706750953434094495002602409476329076470325695289989900755692870689634107468911422783265812178836876822380489371737746734538525663425104073026375448295430512059718193095845224696135842442901086523438842443621694297525687740990920748739960811928454322827281483456038309943495189730281885080540922103860602275433550852730662369755786945788975253715084580963088510876923482058822717592143380605984997850023117998992933775924352679555462270590861467859352666031559366675223199481902232421078633651799683348979778129047879959304949211205248947665407478254167540758085725632296929125478432022592644269210886326754361780621362438535139982600200374480942531645475489334946134347021152545145803984214609464370384312095458681322073520462603949341359931086898493703596424419881474929534298741401251753466759771292547585528538747163193998328726754554149403803213647958194585420201344452934419831240928146624728996565362387812230525164385818970273071365750400413650228199859045100492743406399460774701127652174239478349403729375721227895468887297399622623944485802918955376651637550449731200524813534504707774733375191322027078980568291290989770717382211770079338299036540445118015056174490066346708066771315383367433022548200023102852380557082503215464307062014616927408184221487212496623274160019734172276196719904620069260928913269098299600500915594501535758601322883533230427725854986327351863731050903771384249368246173823221558374953279774762377245906342512418101902363741130024878644991610989625774474370738573965763199563872356781781491688327180944944566965634435645425468423553716077282835414627595557959321231518150453887916072745540080165024600448479899934685044078719506279014815953241503135645181568741037837059989653101608686027644530032366871156741536212017148940798126309326071827337787900469937917524482905424072022934720226687281787521204657126388853622043188567287283250666921930660662918133979585573346861136057346542416152445267278880672031339344305866850806703019457326687041417865443047615586984119253077259568649000517752343297485783540894389901313180163602310301283345962251117490847523111576029280507585971224561932496689549618021413441556643054610588531624175696257124892987963499991417403575589872110856356943204846112915374094918662823498140682047776075927672851770662555643806539567769586830157929609001073395076671272955791515807429288035953628384033072480418756241430644488924970237977807018822777123568118144846512720150819731822498253052799759777613052592217782054552395554593029982800977255669018001759490563886261327969237500714904286133887411035497518049395391674355043739605484168985145403751615785820718875045461181132610624796338135540719562268410253951232534285841900556030460154299131019953565997976635338268778752980021213595572996199947340503078115268782140197727762908789703994298020487017563953376390763516342032521689099136284721969632475564413903791392017910211031711520948095244914823706635485114699095568746498753515398621178101143809107205521710477652831661523839249235840886047424994293895711425097457727253677135070985379514105719346744907281126633247916241754577480196193083470257459232967095979861093917513065396941799301933614665731623967399183319259483904893948436706100604334216024685761518500247584118253248913005670025538669827732890098875395444032933957799845339836467539632070123783963868993593973008194491971620026381307522930442077919678082728260120001831511412348863594038956311623298891177201971447076900470115992131287991028039989819548072218076420531643103611769669232067992012386723255310665077866929746983638223245944696563316900107095276777171242029130477741727815015721681476931535105409262140744250100960916463720499039643026768831574513432013186476518252535869832141524905041040445116661403851135593517580073428503591243108643491954889904050450881197525477713296867351679462789156979288154461879244010784520681165931076419900483975341797230436894971134965559455942300730508564922353315358432138697097809851591978999378749475694679388706893724501105872496975807060260553358282159710187182401963122045118262355590939056228274202537830905419176242640531994630400706619243229538082950522268772200087589065289573827397221934263168287181404755773997106208216611390991606348182617371799852461067632105257729631765926789504942773455660830149021886051063356427562961446956144592100256352597399563038600828496811428524376861941958107132130707078891354623426417475029079959446945858217360198170388782529213591461282093307345238699483212482831207588518640566970174412697272301150418637087213676896229544671777517710123533733640736720193036092787953144450475903205115619613441405862514018978074270717145063140626159759471768590137380549209441277670807617660750040056387896800391580147358325204313553400983760817237769086134036878647055101553331495084701794936711302874807148947998109660701633066672956772367834280672649732281928448940613226420670703074828424961322147107174057739076902118403321127921210678526243875470574932681652406582350043049401363453616228468418982004109243943868509560901640196076043561765492418889839473434456055616979314623585493633009504546871949057425384053726847142233505947483590850914775850264854428451316619814105877423621904114336557825335650794058759423978372303723449999650472797435001295458965090515526372515628156892718041650712246796090260332589149292157259526617250510851166884135484532238711491364811576785278533337423225773383518310706364910549502133273080867787556295879184781502457709937400737823154704368545440934483556967808712786562828959993832855708881363015975201107216344463721044634010470729599629368687136518152245943041515056176537418384968255781863959572899480109027790687824800066679122771516068718539971936702860933728692741447124235814053885835480801316376405836033838655639673409750409681802695390590006227372591675534881419882873582148048747970097014868841403461626597612290207989531196796088371283548553738100925232158660963620985612819408333556248249135582439755698970310574682947205786836228911349672721412406019908685351020993069461935085404452483019855204581980360010660806478585314637452343257157930840243276019078200732769818950110260218883263576488360339882874228593464002485412813399065683794093765814521449572007887230568933575889438846100619946148864501169137089331563234632309327947250110235829948256053786607000245003450234414360434766732177471236406439887888628067057956997488203692186009210376040043342877858051169896591167563126940589427994139856313879413378291353866451698799313973827129832537757507192292804972754087120315419990921077686334121771102159209292875666253388482263984473663652964936418656815865703420154975982961348060191950445607746714492084542587223760039305196598111654455321305384918207311035037608707117984066937700115694756109486449007141990314818616514242943459210291974997598708971253354330146126109371367521445344256524216991442051811566963182972958938592612792151864482755298243649435747799707354359267404545127794016036718988842275170139743621045222673439000392136516810737943273964712702532660978567005442815696464060595425181143622537560482430643384393161336018015275681681801702961093877997688084064810897543456324923283098898223786152445853730807253232889621913191966005209176744850635169317161555323080921169109435245018393309361863451770787516484975995536852550881929086135393523453225788203151291798882016711913718036163233303951847746669999265145808413361604977093388065428153959677809491172850428368283094741543949603021491503794533330642675343876310360348390892647077558860617286017199704041601461553343159556713256840498036670421589052355351117815742140209486209890775609132542665989729036293000152399682448032342276099683595655638558369960993994509008376477630983884028593675488981249569095038272290181880579048978676637676077290581650532689604185437441531168766129000679519299917148470362993195654542790559714029967025367649152646896424601158877504546518613790825284212350660246413415291893585549536241297963095497168074322881678988635601448747480971641744865932160514418413253137484517430882980233700530826971398376675874568781387923410423216455792273572278735951243013473512735796575993248064440139927907612684358094009783068612012311957675757653160585174422156354739157858249632603664872991198742676343482874027925332220826933393821785129446444429102570492859161913130071187740333288451288725280781647613574797634876313313080446202284930491343661115723985124749840591160769806972969560729303339538071345513197566721437944659505633702813996034410551651519349830158155110158965740603707660993701859316969451949653439825404774523873059453682549784399265686289536838714099332275352677214679574272771291933011308642527760782104168718440498741278411154510168626488604586057549326789090928292696113704974613527879468399079669384980844520711619404169402640284002918166120579605026145014918914771549258698907802053219054282685025580113497260731105010971900909609024714668117464909555987757525725658319849686886545435145779729808393460152604292995521914912561348639245275571910243332454154178705569124081597369729821168245841487227159231984817866652652516958524087937680572990718262215452186621539328555241017441290560776784968909492542471098210883399949206855683588684916364414448468829751765990412446781239861952002849676220028179958854806755737314122422368818583825822099881091110150960113793847699760587824815677587106161576082772344509428087840831402999353108388171227808670207073457647428906696857619281840583697708994095422770734321792233772302241350642216471008159151215251817590956711182848905580850524120762426905796265531901522124253804993427782056631638924548240105814559280251895634785522087955727687025412785537873447566155420893108501555854010360989188032019532007600535038190787444265088880487298866468429696584141781217103481577801724293011521682196070382162420878134593198669566381317209091637977953989022735262976359045538933304592192200233354428257534358265113818311539501988153484679963510431223194891150829113349581888995518890469977863341580555516386461307994184141986915423343969988244442616214822341331699647844801576278782529266741184979398799897867235137050108216002063054453455064869059041524930891346464335901467008166242068844486864681085221702638020557522773777630453532847535485859763933880459634091220013195582892981054568704254806501604081343278346367238418422444109045840302434791786719974448897168804588014737511736241659886805143966603000878138100999227690330294090027068384432786412928798653188307263475972022904876374149870485526597643819460637898009070260341222861753128490158726060991331230675477946336704818537580731471387049803475432522890523393311545894361224045955840865616838917503414000514923733092161720869773470615971582809446204728875103583576589613044820516113943810112848413935529565050915553802110163925286509591121017899316821549342603559781186960453657788734931508160501738372682940573990181659748995334198620687908850720179650336295841143121901200379202981241840155848506714053224612575062296677678496030238586171493436471095646291431628486502655855306047189601248246911277226903529191132909859412955205416350928934140315684766661241142307557789224749538005757901927394850934454514504918588680114872442988249139150400276789713264037262252150222069631674511437173424082282156112431067871130179282565940991285718198286219152846804048162217553981956117268046710692414925600317836659264540361347115473440931613608457513730343739896401403144326102122817040172107245528024342987437179265502339188534872765528010773479364108820322312802119167276948616137322535704312652636224995292748381226097350048020032797205388150074890201406960931614743959216611826442707337492793417529103437304378692528836011385115357496141392988241774824854565254639421121502459055764026280563845917647189794158782514803616509255196351176215216837163135053129637967523248819266036133338551959262557061206968142670505597819486893280213871351315069455818929911894958664087067857518324028701859831926905778354623357715341403870591767832112381576792557353470322266157078949325362478531686418703665648518110854719100557051507167081936255652945879633744056730211819271678431883821009141254612508508643988803099646702651520233289902084305597318634704401060620442432476308084476307171903097134938458320233732814922945282826600098184906992117431313328049838759421953313702703539581338933674653435346077572004194699996684475136214374029082571785570310640411303607301643060196687149241625058268341188429195007666992302791793581861100462104570043247028579882795352486405415637835138859098566186062532079801727467130360734315840766337239853764820161249349550016137189560956074706505825844111457225235596284004779643644182564751466542872616218059755539190628099819991151884010568307881127313174146273324919656304632519590327043731174537596588441854870894366365161200434000631213030793226448909633735556241717273943831543572023434244538810323299956452003577302124701021280611742446538340692969114950668593419442505749207377727964967008641141482839150832481622194325253262574646922020861441235922187958996706041045624542725057202680641765085330799353717747680586171664714822144372382232811778674278240534308553455355394259059630180306382402663260317451334515520613898923128713428778312372695321362075208356461096066723138274044391056171897870056656054036973769481346002605837251780961564392683604879309215846222876649232641162644533705886504429638717896685343616438505785531041021850952750384932174716727849926784096182553558248461209177260773916565023623431548840491296649153981532319257008131612257933507114629068591400420544548892333503660589157117334295652684742722735238220821888384450501429081373672163459887148360109695629046572406831860713725221470228659758801496061571185506031485952452761433447925689223510412224087966343213769310873023880144228344017783236835728092079314640246186628911979859072298258453484045709001602936564922695077093668384041335088155263657880603755809064529617293683292067510468334198129067062822279493108737568347412242562126985111031235078643921982827095834085317885587078167103406634022303525748779997528302352750202927647549478506244895955082386656407101420850527851642244683155850573461407806346476611166842963222132596418701714545118950757821422771894976611421749236589132613524740677843732050078862546339284237417306074125657742117835416125929615523961716660918648061661806601270992959245010879648339996223298232914784220886945945992880735195521997468398509622582200837759333282032217667963935525104163101016429479056577866589897133916042564680479719124605867952106031108874103233450382305177552623353412146868080917908213017092272025505134305690137258182920199931531731748764039113023006306256547885738331523812890797330155877330822375099796735390478834433261386728337317978293598320645319355504654171214531053015814615444845828332646674104945255148166730067592411168348234357294773615663188186409193582381948140878732957644158255386521235027029337268171853444121487406346375910203639965290283196728222038530898165311282979367826108944039622078728404259943617674621110470282987281113512840161226502335267845764243797882872523148914682533527244416673430920020330461623418607249644433744014006589374545674000706037064546754284254508637515627825608532395518281059883044008527616055978629590618734671598251339942396917408994195902845778837017624375473213599656328399084162107887485552542898146281173298698726836772371382629936767783682523717954392385303971707912677550392921445309004350637830179360291427263663622344975757144272454178580301618883843371115976501337367786048065624980744669004301882588613269360380162405229822395566420416097801378404235957067227352207602700979387217657397111307726506202699291665274053950265133907750163709102770302573069711429317421508360939833328417741677842498529293408028243517053511832073199882802633373942879704444100050259261885570529995872564092828148240373267959064632107866477804055079877188850920247394490539430279872440165519685346785693472640742651768589663159249535442572037721848255698926085785173413264726577676663032421536125510289082902553758264580386859156994713820042394958713503378577498382303372266044261276435237567906275329330748430396831209060729753787349008814778078380518891903804436600104333689925444551493668667805567807082017112272209027676831603061220053470604163858325999992629768497799594855281328264617897605189450113901677974668824955574437998483553329558942297457762075329461988602677799103686315278626906650152563485445839160266002537892112961592418972262498038789832849892660587301722114748750796352293008877902921438778164639664929842552700520096948965726984583195292835784489572650099345435845909452566547099276013502907758229286772886398385047966275118014876069331809952144469200774420281259689546670345462911561350034989109392647961195586959787275681149192804762281585277801943482018069694207006130823434870243930331440118381506580347739039255704120639232309272242287681649125269157796159644795091525105952293719698871033662877034568972060830256630425769296647011094327863940089529855858859442403652757076820707263958014483081374782633566353260229544879041715026325350537868415013562700737980542699478240133688128619946003290553363947282561542009780955018012755055698573780938625106860593451309040571711912813658267993338975152860445962519674749339500443446774603736759127799316134080694894317630864122301596976348989739743160608285835236663705873852793308172997325391834353591193089885231435983206842330041861872852758818764114727037864460098664637035139061182926038579541695541482908039922089717076000408935619077900570042211027659831842255542829384092484393877943285120235971950982478234415380706535868963202547324036459997701535995255115853596023695962436464406750746980668824951507515675589498690967717960864692336418799854510855283704100088479194131720187907096130383521063374706905643701195957708237337206890718704441263237852755781578306987303960781535128631311921772141547968180502905031281785028235891979746309972955611629958701095073807969340775396377186220119550881475564990769050681122391273934040762416522339376404438021391475344182863862897162687579157980179963257416643158494574553736485150327991446454316018005940138080989787216715712924132215590350383475415015764836268891015202986777091791061690724135380874262667086911459072501676137203937503880999782180634363072760613551855016015246849801464549921184440079069515372873716224594751302253874154446848767596146743054814430704533576318677460933060993467224696819718343344674789244450071693388900791402331997890770721612655462331943961532962404248220989942556482881372909917765673482126195240643545182095465725298320149620977629930631817826056533044147794693978474456677449098959790648216279614085843917174294455828013189028957267823695715120218762666721239297762894604288361746635982852022994346382397165057380228585640419255327009498220097814418790241271016252588259204177904924571582881676054564308077530525867513198675757012370219313766720867692028114349399214530876002739567259902830355238089820784291720984190175743041789866575106979165350459160921467684720166819163225973597425004227221685062925740396541111416816358386342702792905812131037283273904286985395215295652028858773927962929745110803365272114504210137673509115308976774890208237019336609682369690467650649771045884873172420572008904891159134767154293093687112889088113876809033092578798540455436541601349419354979440783208139081182435824435139074055601880122136448427931376789958257822745487604125693586974863863894649727163279260685819981995746676523621530794879438726441807597938240949703720087498099809907676923489901240593302621976561449997448205774183708425962842251258339336514302745838490469564479150556294147629456079208938388414965699250083353339601911214795554091448827967068764096918068050978675553240704639146146607378275907995995144989992493492788427530640999557378113015575275386364697234718292686355560524135088492445867053941313653990746840085832918392456042532534531459383369185756441809177915142584242467075049808618324791905874275000609343065538374613115468543360144953549799331480151131452198288115525869901191817604610589847177675690416219132741309561475567775632447080919530178232582735625512858708332843095742208915634824844304821335446833216320154942933389423392865383512050808230790137090987165643293838681072243946486789099498024587933105720738801028082150167167198215937903046341384175120640920562288908872188786511155959791385092715091711587404518076316350442422878568867394781559713909318550701459540241115021133700262800028289999657401015651398067113602811685746586267388704370178701118864642765419602166257968708420060289549172302495866731454536392346678895788221687103941740276765222907166234690165695189660747692950511091095328094159565945909381311865788101305586542066458910181561222825698143489883497132277133088440161659565730523208405890482035513830374462231339236007175370523130125377042324466903368780850125744418897950274779149235208158148522370375748220673509086372312843868998126782887415763670371727912064069049183904893823918396818308405379088331201279550633609669365720851447603667716449657760769075575748891893553581865757313396942061342590557502065586538045078252783277635304874238303528730056924064798898244515795021183784770486536738920312528512579598309585502638006001567791565879660783312644372969117220100823401053831989798844848167667127408637596555780158770946418232216352387562167934749723381429686174819920454221981737344695222917495845417744108262909830247937725406284469606313790586701444234329201485885816183444097236878735731553184335418974581086737746317889458983126344020849882952463841244167780631004017133378649795004590969339442514625674665863183254168086978619672780356117738909933073462181017015011563594582029435695036918240144842380278903238148023482325811162833230163357141505021657344633513852297928395679185307590418357630671071179175468698467880432647861174144950229992199790723978802986283746925007720454820598453217949937757041858369600640702261284444116211551932536301261570140359581622855117569884430830973022170881027749524220329703363953432671063659406498522426452943184981615220952861114110215849987761025426225219126453024011539153448133392801723252509236940587346234135243558185694470420786051368726931716900583284074898774945791698511718587881805765866327773016970211946591259735684649698769298286382308959508812330990866021984386525364640381084856530354751780091904965360761573156076906282885737660148444774224381460750810540119012188453605778787428140148240485662866401681688503609300810739908908470726481944678302012020513573568517570210370299591886819255589784703506452772632558609577848589768316059916892958816300324099449620788790340225070243955852709389117342140859701009087541989095797238047702575553223392791191051067628645917391318641162756916202949373210838266979448187162246652710707186977900576955272870223328014942301518279871837306639285092188480198307109011845002419625190385307784729513158525990370030381057087340953524704089894196763569590697839169101864654618089952807303392325942516208324475156611108646697666638647305479645037965367647553778835943065590807259236208307354652764670741273947430395560349576163107909159476903119979733465000305892389677486347329675535051084946716023043916075215456500825960919746670653262785460567496159273427905814422817830087218272477741599265278138885827556777700538784831154505749407741495103099866406339725830237995209852900975960670983588167663987885731569857716452019075500439213924633643069502209587225508716053090146560885348440731606384688044730810844324856544670241570865196402383464422940667098972275754481501574961074709349308159511621019424263976151305098495164093600581356534288003234315257900108493669122801099114638853473977490714822160301233241963101524637884385131570426094897320905991210518610612408185241181790911721335417209219592363431531443157687470648453176368255897458987747374640044797573537303080755547652739096422270133873951825269628969984717272646997763834578716787779367177494683006064122090242850020166621476605499534070888781675075170079567131332997439159512958267447338065454308417898344027382207397778246753867673059798265869246849113838406635666290157252577857727177582340691781583217290609228751083089652830321622419238949731415444865365740591785370451053194231366607961044737921581921231590860012978947678635709661564354600435424147778327979298254340831845366229526864546132247704275971084361783417891435839060031537070202737542681676467253754467987313514718833059953246353931919142353403976330777594130515512569838191226422535029375451799373451501565060323487126965122750703226910960633803692888688317827591292373569331455553618222099346389027236000602070323478822917540686782876562646908630550545861585250074770311732819935033773983275000194684541305374198531125948622274507265508331528399661682824197149297572147111718102165920214207292307508408897548884170738445411824866255383182466341366025832855769511351647948868940012764867510977082214667757242754169650943627011934219664298044583793032547661052612034107640773982994033486426305859807136892852254007036793546211792231048765186867906020313745342398082787748605514562862589041511916953600744597178076885797591195863338179366145599813846084118129028261980009551470470701006436024250055495045450720238117471729914046727471127481916843327201923230825193104936351104670883860342758023122366419847826169272172727913258984834578250890853887439838297760001320225992212879910509451111643383383830730561785897072967530334797506747804438272514095772759525997575617461175774329543001157821817472836862976144940338247804687276078251078883426154641369333828026607316090833386013771525079236542490948003128052947239496166000258118872419790990293630162081119116073891203571447525653419685782056295673263874608500491551414918897617212508888354994323160346540390835203058227935809367830492079508089801710573740224414029629752787842023868003144921967660984959932859507996007008752825518473928113305618209440302391563523432736951442801508948253897121151014281026522692875226137274952999500510575962233691180781080681207297387811082002519040596352239445883864510480245437887585003510955233646667554762708083785951603660126472601303244334511954192099783418681328526140984858511563491263629299071998733604895712550203840073921603382579100653818063153970893884734785652327950193348046603075026117868275137227378610333247680276618466807341626225033646230129392968548941178220394693754191696711962449298272603672136350409870816256820374079349382203714877208151443554311507263292284001288585908815647476144349879291132759467587904513246881426628315953641041271995317790391873173765514975896316541697568882813578196980533763521882645267251216247130952547508276164398622240588172050703415650103238436774391613096176899289491306850578237487029283182974200773977101157336412959588925958014462522350005545510866660758051657904666155037977734453138838241511591145136029546148263619130243579821304367834130723077203289363869362485402172070727011005202098679143111136904569070428825414520276552696056815118494551524436060351062353213213710375457159150419645693858937790585881580001550162475292305380891475326216185157783925019620029416439126952194403561122487339690811537892893588981476242685693565251234381510738375603442703065681733372862779785270252379323481597102135024376648498260839021029885943036868873941940428691951456402173600484060223837458285355774000970007081933694896556439679206082315694122482541626765465398949452492635703768782678567796987239848106005113665280338099038340383011978176702229484559477320078172562871288698420917399354338134395094198792501232761120149227849094939864027140487588079585057670122461618454126036911147291202238741151836862560128582195322290914752919350450472795486726712779419954463322309914571880979412666470401631637573507673687614768217793298476846754160452213021078143861793707279776335335158918534027510073331145092757714886652408580799022915051102306557324995828773220121397289363982829014919703639568279626803205577808771749783626748259241345585189545927507772181306845152868227396783250929115061673628716517177906098525405725591951933505866730962563066374021613114081246811377957058540162393308182740184070064045883505910229074083932554533578271555334992426501940280103954281327054609646298297296815597834288274914782137220539259483982099866733892142961183856924310345405714340517591775260382145325374876985092929612945484699220076347442879679517913331669181963078807851062232979800877649996412127889897320639130464484031183127908623897352248617915645265247465393857481749997487409375734798300849825163416025604052059354445057107797117826374434152644496880206090408935906652847823771391765604269331306881093800795953016468538786272558566972049241984831088213705422494634638287334605726035076595407497229250635099472905608682438920673047379515091394139779436738213763151661419369309145886688886322416563438414993717955506596856295126289511502901357420217059290492033682833627528183421343494046475975636386962657768391379626074492936458559265891814658809320052608585675221347768608116598409360463683652661509793595727444693237009538408577360398266850961174180601017196605733727048642844662456067228497479507497724378001438710733477223111715734180100971163476118060631735950002751437612424819579857797549550293403516976483881198568966927753122850254422263640952445362850251699816404094159321399402976437281707423128961016460042662831746794897833511121476936186910326095012050734506356138808858933110586045461761476481497143625172205183338379720876326894127910525591626104795923461162029533109216128608143801710048201359730187779836490555861496841584211173479294492719645852288915091221529187411108155972426621829925652062075906641652235122774855813754494944381123276973574048574375154227078328659402762162326939702185046089895880734222725202195717959975320050850353032610752203460512457533784829447905104344801684050506453585762552867782342778332473490457808274626105766552403366931247312158365121137278483633993815619003700228295486140097312205245876637223505271659039783767242933876476009671444041687419560296979306171082526636010959527397195230599023913073325426667354304116257681539132328800928998005595563036431811986693312824587170903497031843799633107527765534144664538569783523457821704439649508731472093915292812927909723360463007484310627492908505527268907368592291401818685367574039980658782132871473044233826220349167252849507616287739377764965115280340313706037976758819837299500197438631434854922486058412566932893258477723255878255860068731599103398938323158822662328533514343498491235779104605994054038962535865805879630666287494575100823507844890858211842309800032786401601924732555215108531401142528752579214380707652828033998717992978442647810003214455518300339108895908104038596981207715225776615795814648027515648264698841650819228929740620960549707986258797989169805577361979250468072761946234002549018580628009473627491643971219051860765490451603068913623648588538862219186145667250956472934306349861120717969906905862833726990055163954642898057530104561663334991009638383287974273405990677602985921480333836829152726694426268834683350833349007260697227458793779452262629579585797904980521637161438846220169661691713919280509489077344972063947174834773707505708086805568454825177137162057770745737306826702391590888817308778112380396007532570448997197370146012579810448198404019353971292328849718733782365621502010971922431956035372026346951716167240108287494903798452835846863728804065404960030339998815147503036351806703654418389830674243438945697654196776607899725070993847658964946302750835203529608780374767444792577967841809381839508149306131950049810215094224387047083335133115103251757582033895563621182677328521169603950097458468099799003016845328785769376180479998487193255300427573436756063898739464168994938310709014669003456623828677784145386741250379559969796384323035875789213525659237548013900241255628062733435682401922930855340269309675299146763718811515754066173665703796471089261353848463759356658548766804861835111182895785574095808317690108684984014695691235228262137355082514294426704348248794483305170982703301180023567649796569982375690203783250605262679832578824193631468112173252165823762749323533307476544634165696975842405551371264067643649604242831532144656140179281127079200828760265041776217811448009842567060891297226880288437292828291000151300114188719625915427574251685181756227903776256033397367318955622676845848923478830737759990250603391713421324108129655598414195795994314355706384038360974921092303676828666146918132290529160584150899904273394671646258594853838152051104254528633114746732076288602238311637068906085625800555403585716885576786046381430282936573274927331022605475065186517767567108801774353111348759042609204697995593914099743101539807197535630818100190862140254156872087343339129458841374820283062379327059065454888768254430541033744646740284041921707728923618233655182576892193220508222098586584818906348156610347156409299170974592959651712621516053270605760083963350544842270866488815812611054438133484102345179525005704197484318808033056707178830330838626893203538169968233628089700526482061791404610594344549644720237279492729218831246145693115026235523401272471567169426634320466433572611215941691399557897421097808353250711864862762863840402259926334261142644212516669598629646657195394594491061929127846701852589601989521861159621357581851049843452409148792052235946179464362543856169822000234524271899957252963602216923619563004200896487857060578321391428991774800734700657849699767803683655935445539860661949227335606463147281671205810474571560249821711778649104155722069100379133995062417436594399997972575166781401676745246275027935198838268695126794660663820386759064940088337675587047067468279855504069329570087882531333289969411434921496969494817664786441808588730708023998868300250340286294336718007380697144389040949841037759027871895929261346405015665308477891582658373867102381295001886582910965911125121687334684890100274503454091727352366655716118366893244362500108451440514612529297285793047529001820290595145682257233945651536419504424855548854969590376367325416763059083134064346400449205373411434664233245620652535227984513589298594217562552713489752269166195615787370580703335601558947526060900616332806564812928084207332728347922799846796748656716900020254289009739602486052915487514304795872170475205287262542679809515394159926285595293023102064528786778204388868265066501364968072084115689984285913665417767013739288078055408441204095595117045023123022433494850771914165368662542410809027393390618175359937439873044585714453918010098595302440767950293208052438154165784638668915312851365406860926635571377165228242217922227331649491343857492189458273323803411196101431508288903679446907828753106274455342577406524085207728704586613815064008285761729721824170821908507225094553839395431944345779042618254259623122547661775397919566961121190208753509495811711695469698877838616950426879161067959473334917119376043374156876158565467032684402885371917508367955723880877828097161674261932741935166539270262851689194229470976998702884490435769357734348481279022793669263495240488431397777600494524640915497832185128888154851472566931591069351239566934614929778716458263278062229780885127800180099740451565221584721660575551411343946075909054767598490812943742972713244863530708750797184211405015906201277402019758997780570333727009018918343949120604379987110531200101544239142015148899336613330395915908258229053776341376988698896202759181531525195609363405545428446409394079214550052169189284090542078098549438130356761087902581939871677353406574889767628216612804239541936680363054436528064870391041041285049023553097673405610596036671590542637835594326365347278593302662391558180939698290575982892727230918295275050352834506341563690607221734640945671721511730391156049239321196736478714220697923013256486948645998237546062355610257044015799228583193627340356984719697148420125336786656612711789429015158825187707503445904561789074441477184293994885686034501272492604955225728772878234651991770647864793424468401861704853962161028718171819315374567870142471058573106435756575436819974108475654661571626657247584760271492124837986786965101025917996988155596567531499015137175117677721644060596914925160104380151561668369969674132602156337493618599381530289219168736333136027269692028956735284822894720967818562878165748459221652534608180678633062982707502835701111561839811927891068500746858301812489520561190507341308249026480691855069346759744889678152272918109096714256477547084270934554324731827355934106753020134412321413604762780499058711702082038155409713197246229944814533455730804655990841070767070048485652868285637060281197183930863993574001051052855148659852143342446700046771133257217672671296376766578143039888434961870039142821033842190902378872466369043704724143534237849079453413661250078285730445675341483516096114758490917565382367201546668009000294510968244939510041622630649353781635220100479730977057665232883083077880077266571604486246332868978329093131774623543908532111405971517426831931254823219977327887879825600828141667399893697362651726835876683928396022010476232366103632035647006194167853911770890393876600741880231950972430942006155609682576360081477318835142416357097374302731932904237999630781437285764946969788550754769087673726419537989687381827538474348271222298194260743367936773554324751314681560200775269158000513568699943811623063234180881221142403428657767604512905374325739604482485841364574691468076629017311594317400345269736411633407742224361842430772210530737801922066684709414238802709122295400621616271123010936903430062486199137727362068840008796351065346694300022012662866152360601367865040211545450420366531875927105712722231875761616533319648733539220185923205331996800780856400841847963146674102889470761287437713142798095761187843865169377765856407705703954954127348744210161127789457457754071922467072772652042397698997012611137675171272285200689511726689182052823075592419392503277524928426091556634371428045430526845749042663191047084242473779795688919483301112959591389812207132776268495146774103584902580692704893406340503310783824732826340600461635064357616109031731509277386936041645171264471678870488689199940574282156401289164956819830063934496436037714055670037909110549029405036540664869513935753524032640983669904724685525470462968802742345052855031488756333648939837669134997556077815660018726592236209630244292120853981379818887521930924114854437084305842760906045741617691131927911210375555472596505076544626537652742568440239974479848354917290692203415015081012577780031667498177000958729435767035739986632309710961318860593805111390497994582924276009096908239341840655237455882013482194040253237471514439860997032512031987914147619056434162617673723508295638357044784461063554957075620473090858951541540156968408848117830285746407197321308577673542240478303064057785734556491661145197896065412184865393328351380169051210716741870576975332448079955065597474122178754569285248234081146565308226933601481141710027677014153727076034102551619014141926310376106902931943151665223887695369604345358572422720895890158157801333454818216942606097112975736465796526625228115143981586121877418901656725395738290644380880243471786816512097088103069162557434348241738965170775265625157071361819571521579784423974508373548104065585901187452026339697792607761088003649419921844940200925062638594621980700177033827541873182957960873814441968220842933406946531915157609631772729460421489335987506692954998348584081577742324426207721953528971153825737652857596522599112466570226630749006357576961022328109471194374664869358849991168934576756208105109016867386938050583677559266312785990783640689502657290132206582909947533427550525283512119890039015137006676778989873457017727130890825427136021984327640140996312784138699430478805482183799982037804041257861459146607446168722458382156580029758963066661034649966287547385762117501619782315641423657612527233841697537761739250694354425636552852283274713207174059277347344261908086223537239575264921786334318325473915722008088208670834706554086794445179857772274719569364768093877840389831553875522618852394440760499537352662689027097136849201794174535612183666456449941859698089777257088421713307748140885094636022817065941287651762257666620599701151079726322132362900895349687837734973008096238473671343130662920891859049314180911749615866946788010095249103643220471298573544507812853781765444230796412451351573343358547593238602903749563612849974465568538521108633525554090901438646270859694086449912618868794987453660152343497220972099695414011770270411029124214007888086390255312591473558724853444773198134182190706304120027191202951674895754664366252312638337451339696014386691938165484281553116303340158474568120690235763247665514626316240578362692612308837311864602517303294354929363947244123587871023931029590318994907528651523269845693076380143272941128224573928034504288192296247941730913113535608780366417516430413108356705079506008789497460562400555441375929531853263139492940833921023747895634470690369543471544804189001474287880738230822200290781357176793553899620063413589066609780857562504666181702640497941439495414824942361772960257688702363866966472503128920180181234003279539601236121589382139971500114991559973276140822486784881787106900356705374547200855570069781671592313744311422588425031258582689429643443526478083172079260887960319243353352283689783082569041378813561242111990753891827030763984000523183785943895383932714145514832419045074630787390365908506392357656852290691011974854473324066581807795349035381109051022489103701036090861812421652735147385308888732681265079714404604632990676380800146196893895499819111112422056834545700354309601722623555354662123249291395170908912347353310078227629780101482733897488289228230575968478891123116382168772137391669756782636486702966764791676094237595353986972542509887948160040899936050169561052575225382134247144329092362042218376988252842058044205378435568201361167023172947936893535479179472506263092204595102131167048243066280166864485132891987643795898940710805005949921034866532566063387359759016440791529504732249122992760364856211244678710237617802568269771377746116026041911402354327298333463714965303547310239722495214547369503284384538197758497320941047288247306715619597181658337064274061972128235842272479788618829440452319017061759613252364034172685711384697243424222120471359717796036628774573717836931937139516764884723941370615309560744023360850366035357241937000881874011321314416915041979236063656774966832283334650079039075158885732407723827945927658084136169816246578028376066497725639401475903030952561437185733582205877672930615686737427322892595774382116793300391140446247842706946429139650819708748151177387854715572707159936358213450990196503086325612399259990573085564288339684588421199164370402592844828003005631371256649301715113582386862361653781189740034604369931739581312449432284114583757833365893425476045526008127868056145708527652782014982383454261145528354053627472675481512867482577888227398432885046226050324587512043665072827865544717242743947347007373353522586284104517295945027565841620129859017456971452292837434972526850020845387430385198530319465641031824288683603749777055994872482231272690565186416980134157086738549407268417775514871340738626817734099879577440784122057442181289574416379626547667437433678982984282684288216214822780453722863610854153056039183897162829572694574705549868152957080599239742691019871063267538286537596594978634541638895727872054545789800744245862381833785383540681816016128663308403128393521491193235036566464473650277784155195385297370787542093950190806928663310265166359394944994791120075727845739279327282155261139477953577521816570721366469342030619925372624414874486224603608002587720982851759563987549196970836258490538807578612482351565025056736455456588160628699794448277012952474167303473228789507832552682780608179754075597450808973298471258295651475297628576720161932146815847476990894918252337542521578842705033680701856569957119056802030645685797450904136675130230651909410057988369312885257220473144792225698106772487979047033183536894771126831074279434827980026976014149659534074773479029389885090719327493437243627881019236744122636135796854756769970289962050343741125338095046837519311307208977078567150100147986200519721972219406259760276019697770850489781032600870077404648113450712030039804637220710927415461757978711993134902867033404655544639227682762619260837198693352129994433132251418204021544412966952191559348457311477708289386246325460849790136657050727512141690654003157679940650469357212327830080101027552996261643223474041012956471056758134652966734226408581202197025728218178244833255377156800209449729437674479058278431005652112977112884619305415226106944342853550601152762358066914923398557169913785951387419269829817013187304626793433999325417594889088512802427374092491372201255809248769376184983057792505333946767146650003954250078522584201425278377422729707653304809286744776673996656460688858580921794095906274783428336269503800933163767960339682782813498171551568212228833468158255109829353981762894445775346263919560001917638690880558925069250380966259723510501272423779576305600690637466060882595568259168029625519511362895272630846022388867478917211698952040650704854440824915703308507642863217429465352041713780025223008462705939789956828850381490908703553264478732978682153887446036232088676725812026584285843805379274062740240705665712524249235521957588936257959890408274577727025489025907199133143949507542877129681892598081444633561454226221782991679922911297982856229236527766500328767393192430166972227447281290343025401081781230773153502928284891051838124419600756667248423590550237194270998628850190786315360619802188216418523146534046570179496553990956810529098667014029601796923138106982983025276808192960226297846957314360812837065961075221605184462600744087054577826415515064489314913005354475167676229770254104768140360968274021357827843932115082243165943069506619219365433620161546947530429446479400107136127824836340282603300434362812315796287885711506306937266611392878769269958835585180806717669030000254340281176571295697212491196706927648838434217047655510853235338117614503063001967656371200223899903973502094252369179361826674711889820509099151211485308475209722477755581923609958701979186962583597559895104408843108861918757838235202692741751276639945188461627646602878803753850590180130049940425773566641905906398748550448036977515922507440234756714282794486712419292914335562949979380142224855427887190469281882443904070175688585729482730160125515371574445080852217935426029337325753342211217021751823672193323786485675485379157534661487584261983469985865849733237090244821864783319680668653666940322853619315705080219247475890369565373946781872049493984339494159714613081695137843693116122020641521330699837465374563330191055521332280382060745378335940660683417908757261630377232599587790891089903370646344139721575859233183221911209764073889161232060932690662651559190427917545394545766249266796685195435707774946023553082472115674492677916423486768759638901770118138524825266948718952245538869747765369213895656849748932743893093000935364642358310661554094686639095990861542979969697494403788954512292998764436148893940112702799523376967279530011182447990381567541921213447516142041187942861976993681753810090970652786705221862188874946395985852566022272739924299306629239753302667677283545054929762964447656570338103492762576098033628067846596492864884671273668147106593716866965475963818955494325970635917736776253852230678602491465915995457496528955619595268193824954547226217568544948285281719091486526656026226510469799043007379935431374237688858936067005234603351046133432812283683694511180489987354815630498850745324525180499470827675356049719164070542131844523253829907203641620526679701208992278265199301192075430072522900356597249566960623521838288588038978986971649511506714013938393968646389474074058248437563250296666585807635973115652296626804664898205470300112998628256930803650736976634095075598968765627774367067837808749832485983102227622235670360719194851868260975671548750361178014542495182408748930912977708143723685382273557924229760451727297855707428231394472639713831012040210725868145477767580245656108398093354997442538031852302353903580701089428127738757188051274068675856524063197541949476386365921813879276802917597263871211619408958709678602306513164081461402778378135371330954427424685153833818424599782626981421349986737910068423650494785268291580674185818258183924321771563848037197911999029426633587657373835096661354934859703092336289191982605785999401572932707570906594433979986790943322630116113830556099350916581050179586769532557405205744272902762527466107787667407064143798226847803775061591279109543798005915177507552233983461370311192322729757702412716856500104488256942864941903898806373859060389342242574748229785689752794482175836403563632127080362114221368957713009011233935602994310861952317886290391280908519106503419880282734681908230464160895952646412093267251974590678461922426818623850939057394692361820032002782125956470491550872982761530788945946113029396072567352443218813922531048823874627141156287797711904106748278809139718485867541963886667329584117477367775477157879343381962583621251889424794770228049697564415185365417595046859108460241092945843242614406721734837085777507876214002782214816903625736074737410724237846866394226161094680691157914782975150235364931946252985017280235692918831774709331441546956517826890254162272980025293754964022375185400719814762895584109240285485832729384120186345569895299095098124084958657800740345115086054601529031810446984402294039849201283078715269045593567835157632266317404812903777390248488568142127254149628509050701873689422157889654276861853553930649483524509873645548095396828561809425185128355466930256511809845619186928975276257114466068426630655205005521987237259325748761153095633088192260437479836470925419838024724237585422293410146060339669123322095411155235435620170243469464816860088267584119228976568372012132335231186764693576101224532385505276954347965438508487150867689881135832235966647518785257016163010405992230437857320405307036357615618383977478959778577905254548647806854648095758202633227676546486549803055050481280883968708793498129455400520802982794897157348987027693460173703794697168553279338929952018368035725998695588697780421890643561337408654949073603659177809547568170257563611543273531515576083762550948764608503254782335106365723751791052808424751340825700335005788382295415394421448726183721645649117573104972693795458841541014084943454358728632631928369252155342045387224007038810681327086156897699589946567518161253115956225237718785646101536241935849505280418471955048241531302055285393263032224935440585367336099823109934584887345394013778381874710183945817632230781734530904090133774267863134597530579069558905522834243184498065454276604354178022433649053979589696805781529680683975823843928383876927326467985764588575637133411647415440066602675063982539761953999629311593081639898434166140390888853137199176393439962397966627264423022018148808333152141803292956188865732609802930291530606110834600935793846902490574639302562669750434650761865533265794716788017217914277816607640249718289231342826525308489966887827647863465410146377849282489169963568002182931042036911001755586088614043883739325808595626669129094988627404787893151804543835753356166515877136456876134935921570390678946966345716340710821969231608299429247091462868334957262073672321264316124828155235547837284750914380841729274434101115771763812146094911821825415454015675047602665688223933677888895441595307260305863313788757844222022277504027942576105781463561493443501914590248506454284112664595223955617349191199059873479065257772772946106268201248498449965447375849738089156629835798551639050177790566981755732403274211037638890110035529912678960071780541007523735149876349149147608862907084951957015319545622007360303210166013584415179756742939744667212594761624387756063063909842639385386165114711660963308307503980925106405904680442490375031962572648050612980033204190579761288134566067305172450589631127319474743515726378745910874735563186342985017202972144128278953929738291237972492636597069988427725968402833871236092411101908305000762656735001991936048740594137675686875560946073035618617838285770735414915782772368369494591086833488883133788948171891808390469639149666222974908299017608861093289867904363131669187358678542043541347499537481673001422699936654655182988748836041268342464008966662892355035257133315835684264393898699506380956894939983462916588461257199492649817555778202529108702115190191911724289934658323797701367362885719262907811280642970030717670485430263085509048064584409054066548659335327754618024095041399659274338880241541107912155419193052645232680909962911553164066450066333601118460347577516146612618291220560749852100372761225404863125440719713355580176926816336164376447364083356395545571544669414186973175477197996649923481412456522181640761379658055142318847290733556444870919090243644903048171876883002405898234388387542089857320566339436072460774297060700827115447996162074901800112030957840394593981956382987402556712628407752918184445655865373367322507805524350468958908830170629989233895760395483182023195567649596947690729333577637098252980042217333423483773646200701532949718801349641040740134676777902163888254670700303462082323475038959638859960457584446672864402568852370934753603674724416594731152261654699414550402018223019020476010101158047303011560478853031651068659833955389263626263208516388513051242416909672390536408774077324964595931448132659681074039593553712560905920068324231614106019836982717406063636883007538529235527617092541865857891559626251690476084949284684695922481613204128914891233687478467243713593268789471521205201361543564469253192898842536771179438908786417712543537428493405074344697385210419528165049652021209006813873003811198598009854260829974269105986695900635640215708580067414347115883893164136850805163043346029407061365654153509952079488247794899223602943196447230024246570659974524886477088306309990474832986787229085292881920173547761121232433631146609631980427413243415150020222456063197423420290305475571793254507284196327781434566228547610059244454773559651478652085825025439684570170226388475851881092439670421040872561618202219153506406519746630060753661897768709628274939710908617476428686700027990932961944403554189262743240383426205009836492440151475417373171342585512968789673915000029257097872424420800015544725773964559781864258555014358031367680333722359971685882011294610567586887793121871978371690763285133321422489703775620973311889442909695518589903810369627166020098665077847188720990256870744129748074979805055600903831379405439439800807866906484372543655427749256135577884934411570137005800909300123448345205696353717755332481098104780764578497574030479742399478800657099424165936982035238055144657185389939005199417772654632496774855273848116219245837482590662059766672020839141117821996878993317533609717554422954327399316108716905782380262378443466720005257978832574678951143574754486971816722318913962426970475035984627354030072502699565715830421303270703665897232591682108519174626869939350231460772627594946148006019112954778460584464412742123279850590897697112316720708224708282561075764743387354757337209498967186061947872412989359218299095173866006122423904028353475287473807184512444031079650803437154267923065813626335684033101664647050168977313888754673399075306057226096029986331316342397358263219921762606282692634752606148753087912656654570033047141462885782668051802054895249953437129347019460242105586057908794825807777012109394104803635707870550557597460857763001578388824523153134145388377073694431029874836613189727970794371983356020493539821420981100698828386921044809175191375487901022384063890680647776318885101023270861223061924799573528022991935750641869773200361483532312508719220354665959603771818963700650815731012199570179296641338205448392292901876250042193612572943689123657013416998002092664106175611073620190387600968896398060036381129343557420223966555332531218101541502107544559095180244136834258378849315636258611311385362770113486583789497954013567785270212654904981426901978303763809933774300927254118690659525941145377361609214179053335930368193969642187528146127326096103342528975598660062565229306446984114313959780876513758385151014939998339749260938213350721739523646146541493569412579168349026265639500507390742396963708015682066418534247305307376973441414703789608053400896842940473823148693253713440162819107873259546746561901010538441499083122527389855279412241926549604558493685417846654475223860473561455049493513233294492186634597912935574633113709489631072455115055080297509936632968118544959465637333841812990533000081383367052638908081241178452541638906264979568397245597758907123749645980575635900474688533110600347796576678166341976112608024221375077240630110610314836685317113643856243899768950557565528079132876622011072390698682855225915177583721664869889927136847619459289566815809587164068893928835910902104569304252144795269565610566167379640024186716861210502363562746164128772995498788854929701219710932354346607022302187566386422580342197985315554524407209381819860840690940208421333355327723331449481004973198548797537099610509745621377825921108048387623187524916751629056500896802794559337442132867440917236439062699210426048692195814333122192917031020000703294624281433188250659915922697418964133838227965520003946309628402890560231213032168954064330251861026716586993397080929674170777147406133323738415074289934370268222139979920031631222314288484123379902963828513561655008829820964046173524216999037750407168485622075446870260711377152222993656718539319637836805239656582090072464830779114825245377868844674560937868182994367660096514211733346060263588752108710901508878963273747677542881763476721503202166209011797770053382387859117604127476448495398073983353512195900796056543669553214465518537595048936792944367774446957075982168478813458792382895313970349385983671701947581015735156650268065439687812761471826739042668504453575605199312362075822660894959831554824652784611116254622738054675861780268216649745451480912408178506289522464823493055602530172068100004743659604851160876922702553637623791369995633422843314107313564703255177378540878329588191023516573597746191516920129596891884697574989211448719217664998206549498935985960297511633333130843259992531425175586971241733203875332068391230806761249684313981816305230270023812372811723403776275248442419180763305232537920488835622814010738571577068831637041649618580075661452841397807525261578043266476493445976304702845484037586839425108510067069124133572155090002684605701546670369951075456809904660354875469333145956064061554999671551148837367274854946327143816295106852075343376984816882754047817460426675857025049670783516594044626100301865495263485947078741548634792026424479997404805717718666435586951822168604135790137301011936952196562547897711539948430062820858762458632630439730872465284702054551475648991932599176285650659967874641194200280061769402045768618696257244185390852734703179354302050697771711745318652622566340172706711649363174622636334203063924490805214391890327189196832229744596688164139645775784412669693598138377488779422258531888205306508045430687544377388058004393916354905326695659169785743648662750134279989957169727764529841268881012082358709895715980223768400930152526826932236257474533315763838431937449435824067521940886808073700132355871588161714228548158096919742160201713653722413076744704737822094106167205081667628968648194916528421156054372005752817641540467734898544237724036442474638548185254601402069160175984216493269522666484853338987159590429183355452227618103775355030202110943134973245827889744743215031736410326027920806944097127021198433505968900877869558379212090784246750912116954025826108290362401975319112961005060580160623720783001921563049129492584049186315463006334072636659802553031096594896185967947559169825291660908519235085599136018972477377605940559866316970608537089779441169775118166735660931208322845666067812427479183469430412229385382130042932257096490946694777389960679356889211289014835139947854130905160317435153129609103690676617375667201672810328363165176632380178718545237155618220285854212924375441232034450036273431770614000346768031604431575353886697153299941225579624043610712525249843728868888552544188820276796502120701599198666656413638467520965344709451545720900772739555364708539633543833104645999112786245690544973548094059663857794027045377892193882227785631819478360802769178775230240902770426947964215956453217466455411013213450739017654635002318428943863350509421854649316709217764134231593446702184723789414948501932529058247712096991705554646609107467255304880818833549241829720556763509748435559344143593679147014538658836580064402226473520182489742321526078463675232834615069197060054000030420001071571760096886245194881532170223121500447671197687664486402721398691579794847518928938922424398150360895808180073091112743530279806117371018289145368361991805782078982641526137769398053867809908934618493099092135068435502524654091183148719730727198656427953803721182880646224799951342813585450442491783715737806251792648804105465326969287276346210969069849861406220895682501150034434597798847724321992556786185599374166796613262471303416930092482298110260056309407482873131981049667222167942779484853734855927229751194455193961087016828637888432812009437629497591623764852329210744610390342998058684278347062387886231416752605709802587398716966776375933770587468710863047343994156971897138618925048815041776534434311354115508931291223239707026755604562239991720026615463147895955274876654823583934502960436795017726880595781985573465917299453233798266495832209163540598713860170238054614024417825497974875653554517037386592303475695134017679389459250186836652490056665147467378956165066645756490243214061950471041806337677388424009903331437757743678129578555979230149723127112879443567818153813691583855668508147207229259310511008267963742135985309710814128538121943738989959004673063617244130782456943629055669109384272839842948654215657978160119669296630500312135954363308176107698371207373305848166542615624564360116843540981536319824614647347945865680094317176766338220616521667156517341100382363560127437551077347740864788312341776259317731892131229791377346036854368153465770071430358790314511106114666047416769869336494632884250883770482884525652090681895163602459182551708331463582481370960146750652607571192593181221551074889211764329273194116942242022353525286111011355672432905500762998487786667815443464856291364586995794182454665037414001149988149444982431397332691450933930958850690976746170587475044935893119490789411897338458352048911476480666438064850672852461486125850302037379433606988964377704680733080141151667482873465796490778444021063759680493749823738202888976089634872177999097804278002219665930485168459834808882333817590033380017100860571588780480136940986012598368611761226478062893049859590124099157412912499134289954953973798580212197515668208676834282975407921446565590134048112811210897314439760534725027590551813372881059313427144576055262717164406388916804881201916752808027579344230520005810289946551293835725629431688032358445678963423597466589678102592709815032296197906684881672608235182370633613590448409267337072331627505422819365281742135938536572050380616802313677925296954163446594889663381689301764498590506894589152436419173676826302484521434523147797091764896425515559782051606648420127870936170342631830665455465653130440264712207123615011128865983272238617664051167193296347676792947316268756050778745322469595311650299571620663997978544923224818436441524887591156113509251860554915289551123047310707973812873273930417898586472552614224949496110230032005933169088639328254223824689496648207274443173779490271188283309371236624147653225605488771816881094556361715038408798916261292475895342062597687465313854163862308300891383426697361517198554710118578735305580710654904185485811839260917613625942914955834569309195765601655644574865811298795824914112820554231943770123659142113544447797337262125242658297623308916262603193628962223849925616779393246668853206095443327728395464628278688157730774049668056301133192439288205132008142992065957943663343993220852105201511629254905509989388529141349105471033612796196422617093635691733507777663054840177680100288613999824179598982066310413352471731885539734629726674529062480968033382815112845291718978839710725764093438899625007369012545590697695670573492055613589123581854176136576138959369837566578711510629476049560652356905750109315786023263466879525112892874764282146386485380284908622379367086995142195913168523865547196080487168514972673739100657251869066069776419809866924711862397533839484111788929960354862096761686987635320182857311930641099982888035774860207505334337621113391362401384754830277237014007549963275996185249674447792290753708870987762748241992597382292566432975640815986794782361818090580088797944659959634728855974540824210640484144169447742256943808376293262815959689885035974460011380279957623750451283823420169340176904072213533613568321771930220817249921420997426085001753085698646872313937800267897528464919215061900327895758190641873740151028461144361276200698982719176544796372646330133525257753371218584631202502821917497776390599339556208773199390654028946170095133703512408297431081117511550553348228773828404698902189310178485928731840229235180908782828629997610293303406672342110865541965151142054823486824932935541522649422837026556879547015160358751411308392205346910638324307505456611178370795247576929797188546555805500201833796033006008732853630200544398967526144883033871364139287591393682824053617371339874198401020618208395509675799925352605856783351670480090912542485109779952638805799490697862504071602939865245474728490485652355056777044650061944546206896376456142756589095939108178867381183730609312615238497224773699984718141271479918194402451360653560010146638979702534729352408393171687462423240135661451587818117021504986482664360280248257687900523422280915030063942340166448168680945976894057450571497175533776995369218605988102409243462433335781026861520767416034933886898743319997271445675633153150691790663118249116334123713184979739510701317915142484669643195437962721760200307848926892631994207028855962412801813632192168345330740864953939341117796074018958932286952996756002121446566449293623769125182925512876698745328920231567521735941225989609678665639157329633849880870465328524774423360524458579727988809500786373655554975026182561419416257717522698971201367620631325100427052071049995239581821682899366926335853564942576472061551636289810909326633658944466897713663411538722933624713867276425388903537218963687946121424067619269611403389662496129126445200258803611026731950665473446087887970781185612967148527739881453697754828977652973968315395429425948300270712372469117403187997602139996841942634863058724668654197809766392833966312841827875068856090225347893788728225603286580878376136516483949454371315670074521245509466332502309562304658492429900287521428719307994526687975342338581267745251246952691428544671088996874477270481136046213658400532986537910807528493675946706542803481119972450672270482657200536500198013546042650814489590677704806608700625307488449183542533821153324733163592070305789588100557084482344219736332194785477412280348320215125286249701202250787261609275984602365568386158369672563888506898071770108300651442308146142936931208283467491276815790616060113593801578757703576804942554643103665181707071957509666646410790852267686772403782247827281510816919839874910163389889629924281355844269674338495397296611008983267995794715581788947400253437010659593178621932956428436369530462570109618365470911427550365572854073734823732339325361931721050974963921648873390595819141125377716960615059298544460873913522917323060409653272807555129097913128240502212876849459323588080799769583185550682588978124663783150934903204201137429528338488599715444565382691409961153832587450235884110305803286990522022143892333304068600792224613166399784259899446493037541734005929715615779869024065629082666311776362547255153362871600088620218746308798328692103419635288081923640270142187577102346732767062514270150023166847517247854285740758868797601487978689321423135579471088510696985005824872690792457659008458217958372876097249905285866352005078636207612839847952940268600970542755414891686189316884446651164320779456874109200055467059042567380018831587935617580420571965372309041631162465717523673314328619475510800531277114928506020799050259401843929229404556597772638067751298305512743977608998910842119594383147919263777943962387178617140134864782565665979907245054104086228631750210440373182982560807593690160000946327848619917720224539176096555503142769333731619744241502021591429437780075474822866403491459939737373681111825025905670391165836088005947081045883009347178492817779885842657453314927132297579371296243404744693892195061675404474159457693345072854394364237503313280954649510221337719513568145290867999968265422412969363599784490167762493905649429253989708983244242086267842539730394631439636549454167237299242866967939275554019206529794549758676554356687512892656476271658452895505139942629175871690700316809886452443460858663361624608573121191608995134163622375342407779337457025532635890432062550447046925962510134985651327074404143504320652014344189822180535013680772212050060448291562784964532390070068341288449072991949897038919635549471840276766497981324795236760841956068646201331481596270530425978885254590408596689460073659778173104463211919225682367899538783131205529462058693966815197384939352247947854521973781122124375540636405231421152942932746951153403313705038514494729726728278714068173123009148229026791316770818041418162643698510033931735094814367720816097858112818838625706652159015588419091889050212121056042034825702840608508850408429008287104927997886785978505034546745473924445475995893076304851554232493179690114258969465453546200812762264816334693612792977786543820916817459390253019113009532077519924238885167066544751996467672057620455548801674074130120583976538986824159220064119580280793855611376051612914221461762398747029675289813122312114352706507654528074437472735042113485671789993588991108468511519880894176926548726655445643893516795896694820202685886755090161507808374899670260093421253837379301235855960424318469448261543413114574462122961382813426517725825262680022647876233026978348585345510511688855093164116796544216140940078095115096584031188888255354603630844553279236104587434242351273967020572384466303813726160374295394932062825947739925102446660191541323292787699426840797962350529426169830809147964938851623751788397590531107490932052447920263373332957587144792859982746877422276789104894211369652221556894555017365744585627902680657235436420408352439685775567420718898249921759146238120995151969482181009339456963726484875558360930119934638242628254980353455277826943635496516962562877665247118399162998147193116351632519225685766180679284517959611592148771061294978401087857594496364554149707478594653367033541622662294149297431071531272616301282528213310954549591025900721681424578316664864576077721146401640910692587263782767147614633479053599760774010450548840591087494510636335193028405004755490306923491008577610399243876373693762993721768320796772584978443798801582324071704135364056739988334667911934687690397519303985882726598833324050473859697463044383979594833513770621968308176978291284881953354789558689956555295985145305461394539372023565499426612129744363484586959485301529093348659686103680597403858056793027582414084756185878010668255691334507226377586192145905236004643525628227416290669797899414472816115233893617680349194014054541473125668953743760695389254875569499388810143244219550205617005028144054534227726804728124244551979739441664871650201081619220821710816393394644306798605501297951688217880672644860644610062580887922777010580434268082741215049001058938435364771741893089982218081609518113599408833671099291314004272027041227316498684962522952554401475742203877782372463974562039200222239344811033073104815544179919032541710749081027486800751834554743107903371161865211621583788457369758636011986458741589019130364201062055443945116884612792147655531614440648162257767295390259967922030836939494396800146026555824387724091687089228500241097080514733883918066980329784694828672137920707759220183300742659941796668508959278533053123457244939176523473639798534625496716936555589993921918418641553500263831161215759147573882996655702676431939472312819685304467528055312914415039375293758202025904286005524762228692534048621917693976471485462679650907368684450040591892679926465540534068441452662461167018667774361476810071237297637637085833886315433895569298429903820393970698648022440075456885394450851889274332138076309638307693089048213189424299106829446371140535780009796151693669738080529365969577593886282843135591044760126585987676740944733115512820011466296805794773552467788914033513707164320881985952129271976086221259171543709115479498164951936468775196245509743520058823480491676584850859345441846858854279155460741928089496885750417773541933231658619090750716412306138661295555092495600793230514611046463542760818094684841220072820902120883762504089846206761530117745411529558337382148522653437279708825792225000088225534192904712680479162245266245409277724658738538355590134073966629772274949685343153302898114901826921345008678763556040454457105867714833385348555809493232281321024608861847646177059096490570177796583429888386903035021970279880048611261414283365359605677438167332711798436563900816943636986708910941300870390536096580467983149958628413357677103976074306336219032193731768522206705187245893041161159293016133648056847600474622871628586029261489328144662328716411221185622229478744972875037021274125387636018618242878672047439395182631453133810222688106564674334694216305858451586412862907761912080381126129758727782281159257489956718736566193482787667420820193875886836784843241010773161760556564751231953619104839851003167745437368712051394237956517400916074782395893513943418479906429989895118019908041564328565977426284074173929568627948854077880433924279940048030384930799868508608149042838982017015444657516165845117301127843735318164802593993761813346672867762648154201746084268754569575172765576357747928327730732539754172186145926454591549707379343429886390511890660147394489958868639932574487101392044685449813754576652380607602915050732621080914082298279888169106746768788226601234480864465880143681659495949430576259381383651588134058478050003183432276287724431570601495555805049848660931474651139157328092151805528508523073841083576989235792345369434163274563158399596010801578709608274306099450361224846927148847644895853370004260713214500454411736634384909292025906679842200430093532073081045986790856886149270404859507620019896723130127594954279729218747011933362860400165572993297740514996594151930851097193039487276280027959993557246118773539063104063388308408990637223932982673175679064960691788023096545283439256788036436779418427856899553623651278573678513246044004120349433998786087835020743712461869181106253182686886866848108684240090390986535155580869062750653565409572460888508622391774161303931100315735078707090963800314556320247395211464060163349136357164833639006741879138763066536670785983140684189628918744694406484789770818373481322205018295362753741754361777084107389996323063142491135188595630316528922906792586357511845871290092933832654955035161856369632605867069503281426377573396436817582358261734479729805576950791080464563808699810834494386804957064486216956353074713112981776644485337834364868867251031487721064091001572683573278300195595232532496271169869812841924686233743911803684622970383318424250243016055886673408096574212991363454935172443859011768472094610309252239949139380132740023770270921337814551903599879330242450610268395338403130244899228121181117228976004278922569042761491038513007455597168099944452230950979965714076711824859603210287637691940625825509078116706303070933455845912216481890268094208670027977742218780044984175456523548146026613872023705984505110821298264434727142420909243008081713736182624726762552592075061610443978133605332294305580141239986966814121323757315310860548513237689786366529221260935882882098995571761929314865806402160771618911463874898649029606140894389569421859350530849703217983449090962638270422903326072845689836284840151299734674161498246926241491233705958872688805310079959734288946175900201429321834241114237487680582388390909954446147680774192184626552460445665743715341975868523612963853305791522397778301844461511349022202171487699661697306602106361973084425105414797516670967597776760710530647220811693064352503295054900075837837505746592419110400613519397504372617776614717572243969999434021764788913583851421443402971078597904002427993999926196185355048247919737711512626133009269871094512466000709010174076067670821727629699258718087044721724272135286543505326490641697951675777798065609833937798738485129346578980175814798932903311027636645510692144893534571323231838666100409800849488855985629009758009979036384783721494952498365242296917074682552761262647503518620958767709067966532427065784688162914629231367605593276612365737479079285505292024486794613778704359788148473165930524526389043745999560385492944122534261819604753094074355926436519923929182972397803478310953527100662878831953941919770012308469500845456459358243469939601005118317191178041988614159562613160266021020506012323482553951871401801019608058317416690524820413222034031657628711126868124998748474719041568068925597454391101323847801839364987063446751299103607628587456241769069365781066360630679376533056009658245294405221724111865399295808422336621512295461481065284288955304874671545581803614480132714403367757381071710016990822794164048500970040265745440522980092044564305039671564702156738976580039178044067434413894149827692344074560218417677997302055542230322122239576927413700184627356633047906480973084773803200113319979317931461682061566794561552033473029908380922825647579544964606548630284357994658904574671901174048745258590789026367391032558443907901931255569808757156024039386590473363685450717447420385431425511946730414303986530598865824942687126430300619344040648720619586886780382287368791555928741488071044277115473411580482942216627069722365026766581275016616055076848587145461839504989388991738291169441088467719657808966897040606502835452546645926404365299403914336609296049829278099071631065920865753273192998063020416105975173178564109681942425603970866955775244636114077939479804949972449853092846797962355081599350601226891280401078124379010909732734765630732218478428637396831098900057096788019341879986631688609516935790518628539418481659018646666135498349798860606778891640746535862276275152348068825535411096324796988523660871316117546856859107384011305254743733359163528511020576853300683782374345653693682066500955033405195766673199635240448147279662363212223722302196492857081922787033352773183538262453150126185818811176569471945623066986679103511291032727483416518938723436099925168926143284220095876074360049154207034665123531235437612608043852540208225353502332129873262883617797015375619525971471718952737613686308274736468502117303256762791689426749988829084564408952986386378141356890335815437046867912394051719016541834229928934807782962790127304009711602664698866068605735273229240956624716863825295205031136974639086286888044689817761551616391446105792363655424023221877885048932225418390133361029647568006707659742692424600033707207508216974023030901897533828403768564876861936268659673117625571795815926205599794985862803990877781552666993840924681291124251210637174064397761451542616727611649518905522396783372806391418746838252677179470706119416153342277337762672697512764708059798036569009750600243181462731830808958519550684341068498276271346986377024452689711811340778321276946968025844219049020107725299657287491383901308262768686272644880184091515638432478021425672387010709597401478704362569660603410137899323218196165152233101121157908588920478887305299876492202273150566520534394755023105077318117940552900493309601385675557114080677990325865065698898446710499425248915128077823158943105175883203431884291894271297902433230889387623180574087286211253818307932165922060384185901911062551019758488602970185107045219151074616730008739706549539159370936306994784049495513844188597238788750816000168201868807694639776005506572767759399905207647496545060081794484565810053388229068651913948049282695790333691441873089305477319671035866817613538208347107734454498297685269050763328571530484623191048951193233148116001812695335077129456457415199857922178233094201123056549447497256870307837602367682989941061595321265241094338161675412256972724423187803857559379238709598933737819490730122987596901374977491116218523021338175660552482321584043577936637578425453490072528024018658893211032522754133325799184653655570107404582089733755631363864555350685601730110330900894050797416989364013913879307193012269283935756963104609250246414870937639381145478564383151747247431854480806642283041766069546280070197802455381379840636967799710932840873989306024309784948386076999358398315589444724443552290206535786043095749464831527625366247899860282762516613134985441205344037287242478678652203791904406261411748699180657824891470241876322380134286210765212078522021147638376527955374655829556158242502027268905989678573138441561870014491106810683985087637834516500518130424033873933297371057062993747112240803564393988449277949698999245949813076630949661556651957784534283650677531730252587288131812781667139061846626004651931344623912254595631638756558951900169037356250733974320046626728602060636213845710354595528358704845918144351316908593489446617962209594398337777576806155650329987452983291742138961919688666361445042462603417839490525780994565731949911227275844584390309505512050511268130038536538549614996447145451534207418272915338454700934507753133646067862683514456040103383241376589375583926871246217250526000672846717045894720530629055320413865034848257057074891430629081051889578213100605880175466765028346401063915948167199517473737872321448357034075516988232951108113405455306730191141790998261643320092910368869687892733158130316391608625018494259325740261788468715349553871985206292555975807316852668839002076695328373645297231127381389374664398543090657255360379922167594744142145502177718570306364903138191199038542110435629339170854701111643756832998807956368837933879851388107808466018610211895654417808466183789694716398285688220326722872835129529598262076190774418892606110063948917239570022313902298899740839670586900050498802821218877914968825419517778238285753478591558870495662539588654880183851587752727848665443087927355218304917296723710351925332052356765974656975487652125915184908602033827790645872650304210279665239404304784528923621523781853731541019541775111687597466329982899484683148487378307959914133727278385305033120492199791038671492026003876011086765854354082562581963855021104305952378633930863730069996148564657586091860448170773524317105303654793641484507678359615280940905263173674319001069463525494435845126397898059490701041891645407281915287368215732164153478190328114382019005326515349053944333968787517248944441790277963952917070175072055390016244477057573308773787249437963154830030297412903651757186525740229194431828654456146244058803580891126322918200178173454417319856490923536335038254319741593078294395172778718287111606410432546644229333258260379052875603303077243877216980741690472435447482049659128817962004468858516782646249997390508437185819989981271714738539045362699213683580680991110964686205749078703850258402990629870666259312970051111800814624441151088150148405884191815700338394747122966697673438493907681663992537613173422395472863081297539141156365374930900665019626190092281519474662918178451829428622982965833358701103391230680484721128422440952434017914841952208422215589151243458932814590734687360299631968014778281033097862777002640457325135165989636641521804876589698073862693276068175104023689362606019708848011263504941053726311886560848044446760533099678832529142568679957858176206330630475318420687062330589643418686643503479620938623862664952301919256081828410217303327204880613926260071031315972641630042374728084551645718717365367276042658456262112434254697179045790713323305981520300561736454377037917268984799692247491655001334205701088646671217624284193304029209246431480802045860748429214009298338263908339960137788548578055745989505108687037746957288207840983667629792357412817962938860523898505907996338377840427003173488614582998413310792437504681938803020150214163421004862696674930097824383629477090097086153568263846398753302157429954435510615507068115629231956845938006676999022190736570450509017984531881559448633443509156865290796454707070737757249582051406999211340707618129174007501822751600528306894591505742764467776485976861044549562055770431922401415521893614292201061869392045391301505721949958788422382937657602245732082024392245505318610702234480760834412592964468084890331273633168918607851446742588475645755075805851942866744121202192867530932686062452769350261708269805077058418906132937372888049435012312253704239167098932034219561264821097107793694988861231524466179153920834438326322218023862458500113006374596294067174621345200377518287362147224903225360275303542262429317894304335900436870797399742686450042656611006659016467390158863129344672570413335059281805151504369647142786268671003268435537007136488865100987790353315219095871014116327848507418284137009425065388192940440715275841021836106448846710015825553570212558982094069243991503024570400558530379985521109631954450510395246561390293076140728308771151791316316385838208466352495056145414522361349559021235120501007670261604977415179647948043630220363833805625361111901024024489963688556353918037349038811177299016243675423762921368732451923459597580621963154793488431087816779592401690727355753167412788566657974576446328796144763665333428953175363243997817184397843612559771080011640816708434963055835335557767400899369322045445145999618542039118538473172561406081767284319104240818310799240360187414012733380566244538707137042362346187927039851671623045433751885210711138812011725119824124076745012904481680672084545034602152847550251260886160345956086728319517693213773443547596224238379435107835259638038947190277316332265912318505333926770102987862930264988840844150465375617009636499828772661710045149273108121218682113444409118268058863592362194315746414299959047547410129215277011150416695887723960081044324940049933249011755635837885751093122515971903287906813926282479519225816111799382683566011558652115541321977311933765592159708996277191098940578737214386811553510617213216623664605431002660309833550162174032165177292360505095208883263027616657091161429865853798913366591165523364365857708416017545986660288252618658958827850327996926363763558262428685725224403329393554135938904546517014678535378265766066898804459977039331296666430588682091383167639087671284063754737980104865453823709729153074791739280606972229457036584383919327144204804193687427435697497893750524483894448888202976903853818090549047584100750312701288078469992561962320031402478827759400812413933070895380149997495528963017909257916928011974414253806954466412803582834750681868157468864175521304412199854046247311478683213901107497387040943792786687502406874733055575523528724606836615154348268667613381779899098240738994201994566740511022154740863528913872984270913548054144710863926674554108394227132202465230915781923842023513719309656142748999426192099868889771945969213733283525165351273312442748122969412112485098147753373784631324225170004245412372335246530491124266468567221469383562150977637329792111367200170970239524351310391314027868630149214052932686588631141576829552177247250191521353294430833532996658546897726319897328416845621629875764511237550398014044970303445147798372711236571832425521084039292743962492514062891095869292602001475813088298907729703581046572050116698028109934018620855015351154972038401126276660646424057632852453571973477388211760082008745415486878172853465592426151690022469455158312371878840014577395286617692563283386239488475498240336993867951376386431274161554975679998700135308536928271690499098217945523807594072905207883638436664190209172572599862261890752391896004007179171586479456639268009787231391526605257024631337150743604204247899418124301251289603589398720054890046748921038693924748090642228996365880306801523095239100518849889491548057570312690198987319210510255871722178872944236146530754209089551110686798485534621737027727155626946901396364953669648720783305498265341015094359565689437409395777876579370066953034770340342610489890586945869013500740264055276742564205752431354481371597657046752988118992671954636075979240247524250963868929747886034801629079231679879513983033788012768227582642592826062204804265287503919453722311418676822757049522005357426268000983654858730222286320679797183350836685890496749863234826742056469173593593360689044657060886128559187254619272232335032158026647845545533293942587218199023581933063821849890421324438757414555361358026383476659488579493376274018653912840822513969517101422753972128524852191889245362793259391694954372049362866029075471205137096340407112799032778992743625236740249833597965510701939324042184169803333912872081525559052527492831909485424974267081642058357886513843644975331275205050586498833732728213351982362049219383794545752762772792556578761658607755448466674576251490487407893796437575864988412380225995039101547792720825725376910004246449497813485412944070712460250635533929331205335918676086968496825891934130858112867768057130178398655562337099173018402070222061104395000175629645203179945282295194377923481612255738179825325443676013630858114516862841998257116300244040931090303075864877617719151994186512354257284735025731592701135855487996583226298055933582590704993585023495677390342209696294958809050951596051446830728814469924710909161741044672411867469124657429304856157704082187233755922856268920466843101113667942979156294774108733017956585227852389558909174214012216639647689590440283996934026995003371234565297510121689424105255501620905861207709755067853179367065488892491057307327105388332935721565484813462124675695679394213108312702652299973653581512035640614609375709303750411996551335937477396746721491286899953663626589262690675188935301917091514060328616144592487243062630827278755696725264501090155580388261644343912394665234895408178666926499898832418980462345907850619419491237377685319040764432994736483253682440613427145547185275346246331383888171796768723146918884785566058430013010616463416851407317622508954843439709881105419256415428639616279343041627089391518450383860141470826619305336929945004190553171178073155807524365272945404422093712358658544769246939853020906280774482025936866647602144114443528454455011001872466914664504829830185627092890175735993401419930863982926034356463227428780741326683793047039186597498843440398108489801460221883616585720443695329899436374384796962584591143525936264339538559637954669904546116557775985013964713100072566644369957731105030997287123151693100430728504114184209384544639928857897142323983020461096089617450331828856019946955034777784757586679100520970318704435554890506150530873571065810697026194079540560712237573517089844503705545457055979123437291451616362798357810963649598671660352833569006082071547460130691245678667765845009658631053859278763160169377435491716712305697366761700230620258660582615451016979924750245095132472064909853715159270477494295740560241633109162976497239025784767925286264277201561209211369020724257745400081546717474458626514966990262794395850251718298075236984751675998738766739739883792661370556835119088296438073750871380639856722281927292627374525401834964601067726632502503285598149431405148754145063747739600380948390983401282257994926997320999239358880557001566875815487516405676743469189654381175877477930029297524889683465039364853235465970861376336747805802655738860245650817102964696273173151603740414830101391041931066753530582466072460355745043014592966379943615044302440211943784791766185289659234035632617473230750240474156615782889490789798808280425796136285579729099133533244463009198704387624628095083451438335799547698833109062011447680465440653798314610435613553643729481028972293415191995876308690754003394662643465579217882923798883332606117393116721302347461762360762470074028050140429908887917987719217468964477437704679644945155638154667382160399488647572209818722947594217452436910631933669036189817876097976609001006629860894711774705211210705111116438874342863973188939189129768977869317025819764077348317003985952594436364673235744482533562950949126738916600059900316732721669778333634360115576735443964350894499112157635319202624908954009974308466167782553355827074862727756710287982550009530616161483548339157982931221247119065777054099045590241666814081430462172799859406040226748511511355184643008645274770664369164449264181620146561333215284461505930212258166418342090767510620486787176687309481987504141133126702612951813998114950553237679964889309583518834339766645569420766895945625966243273870450523772264304936262880832700678092651449007255924698675735872936966397617078254845033482240509688673227224230652891284463297512966508078602978453728961160711535072845771023710682612535477161551246589115826003429116385977731418375314868286259883991073754337285580696859221030315343080201825355625765930917555138853276805475077534883907888349210335018718246173128920173225208983304683716575635348704403443797890918587744080413537118454370453315861832410148572805918191700352406661543523992077643362777601910158314490513443132146926698158274108846239509136300367032880853932511798175156669952633906449441576769461588317081934976371756335516988362245213029037561084959398536226572204487324856664236932671540028450702020873537712353079841243303891199118881171703640965306308284483671099279686550150110317281971096050125339880893872661800021415813129987939973270966603405583351353724718442638082989508957831534138616798087228538025430559083565501360523386738553270773671253726534788476234221117370180504165756687492704605660494229606034570568656642925832397624038359296619581413926570328031670195435303171087044396565320727110930487600268870536074329330935847153691432800931607285001801100232078662864395837938251974058697685382491814883178836415041386718413538829688039756027080800584445135074349720232274788931385193196138562087443293526435851517197864958718332419266859823877152853897740031827347256004172274222889754408822074141846898058764031258959189460318795862543487455226616577323545382965130475802636378245728006196384297496764631926546614251555433290797222969119491457377606571091270427741744668235527532878837279551391564906267459672774546892016339471002040046267908754547302163747386724365191425275476528833940709644834704772285761716012331389203975693434735269070307117614357513457052315816205162451659473458111118761658417949305680588308315467580785229760484936297817904383893753889536327867871811416945448519845271487693260540306935810971191991240421478422920632995023206538057154952541469443457179803577652248444429129879230826754626080010815770982697071852425745184539135000986540300499184370869844955842265680530264770421235968877200317472649907066874917278967957010763411772665045826236525834070087338858183302090463965480808660587592641425926846423250704183320122881361880940081471093921824317710169801240395883869040972030517343688575354237626531750590968453789194911028980861063136649051750154745710368360198098206570352730504556247760235307750598377411926706790344761285515104547175118171337445886582231523609394392337653222106696043185363140016933581403793697530439350590680164286948498226242162696960362471735640903345804098655775957180019434518576931819543254554534773299528625211649512156604174350857640798748560873184573717178036299683296883752263354477928567441824209842245805719952466340713865951360025544242971774596124299886996420806638840106279660590025502590659630803116478452772162668044386096515293827067421129319677737359545348789102849436522296790661786630264010809969041642849854314442280552950121826479414444587181481232556560063672796290505812089045999821443123730302261309271945613574786119916263212229569964094339394988447357020888451238584795943066926537981275837728450553208554704867528788752326310620793948188005457641142753462263245874835307901189850223434421651879407635932817984294805188283597464302271963192152385516861689905926089584761560021463887923062658675517297577742841401270270050687512619886900192117564584018435641555284761690763145031846324892681389113719012967425096788470959476382173117807623872554431095228750640742561384461960957962950542507625997586017863675527877058201185180929872986896980385482710451902430186496327411705931568768482725879170990295433142148336099269669171363197925242845640922666663728003263426367195959024796981195295649026541916893862979318826470851646048187922030780630113177622427280153682704021495711828825336182781023889941785644225973018228856363499974554503391679121079912111918004283684563103794163192293890936233590511612203699981039371172320205315531610401681666580106318360399010508582027530992380966310859100645838988788391423822776469649230728521792630883635896838768476747514365930136093548964920893664001945736594649114727842443360622778862255634916989592662730824903849981674443625411162236274175394825206069882114845585954962812184595953219304094808098101667292669080511770457353902599600415595386276054550381046074190987455770652511826284988246997014510823331520501468410060417286025083322856421509769439094811018015282450990096639152475329861704680030686491574487868380425992003963331928907245657823513899647699702049860058127468386937673080986587948762411560267878721238819090146052239942615798344272415914454679238065558732696752060583908260793396955031269416966186232655870677910314331650598495756569648225303415738621024254928927421243335816782004940920042109986981102988841101064746799206959549387222180500946777904709475801712838927230873187161504064551474399340190691777734700681769357705888735666959161462610545201631157388078951278866845377798910706821236733042827342064933164743743383823994619439337547570888861453427221550785044289842736384736106738496773346766103702954443244621011557232923603899593662402405254125893815179720101100485415072682777713979894598106653447776241804139357563056182769498491194264891086542541443055067735495326996973750913554788763903027679293632877244783090991045075322698608884077374804783442303350277423015629605041613624123719794588915394379170325335443175710090816667142750896699805407728103507773922174090971677802412169909729711768904030898270505676162173059902935582732802767927818550789972733521153568187991306290039188113231867603313668859677432850454758213882887675764427279969870789908295998728579019257514847085791388124590865142697556235400691522054501295545843087147794410371468898259880682091177799210825630643199297815788268202333825512992447621789824466688653844892509790773755393215637900698267187658663428877861677183159632397012444226547284099434771686325572714566308501233087387377550190754041327924078099233577858963330094855238248550104602599713499226075042983991178479017884198395975736003619735240691062129484098262419649728231648680151418473919458530598650205122801116843716512991205278732213700566036898327077472213232302545739311380787713371123946898775035124079064662286410090733575934849935011210045877175615414804614334462770113571273730387814174475751643531643933107424120751091373132225802166270284720405033915856172807521308519661650605163149101075722999427162385942845781249760484631468448463490106764883629879656305841304330453765314772735996766780939945568477278742297092693938228978046768398581413387550143311787441625689325584455042252836615865093663407040614821709249912860888588227394175205263657983656381027523952853996513154477528360018704936488848328996438954870964374022124821612411235393431969520086296234122522181438340260384220820601268855893150090412283142352834279963127078438639427405161019244342317853117033873839325888688503878496552778448075627856516645097928113920217271883521208020752797570961777499610266964644397104945015042599935861360139407383999912282874933397230979494293571932906540729972802507414878975462791532454395322968370730297240895482059402922819749908949689475949295422690959592270132556675431939385615217636848992153235393541915114219813015031324267959879978087962874751998719059126330852533977434101587918459947580602301815747661972923236748406916974446656064027820634638355661235761542230798099626701743081210623399974152852589888672052076511474159105566266233054056917749959694729799658754592195850561351169552524699424591676960337327747358020062870662615110583197740359353095874815080343021158942684377502921839217211215974984525997829548014408603763036818705248222597726319751097494951763643637158914258839683687561210012155636495378824563623157613070320821635186360927062525287005884230114511763304860108970714440248494403429439444949581567405182663007960168897988934430440308075227167808065920405555619977924773548773209012170999398772604892864650989349295591588876323535835721566624801619528994939297429502384726385488177223782080292053130162566323714957324707822331833704027650542690776662540002577683521978411281899007954180883505003832231782166050568062954648095607139981853584032522297956518295414011910198847346545589300029063861166730720695433891410970082050179285807745222565090005184879988217850603086603578438559593546308753421165546545725327242315819857806401469910461097458093860862917593404400588036834491065244503260278000721113861257656420119574478286428861583296105487474105630101938524744663030524247175332287766912239046769320030692282583879205178185205417090795063098107010734186557331209929248914817440069474539961068133350719143949582970868664995683646896514279697592747379383492632764461231192352237896404736577980785897845492235857160769163702432690622339575978337127757337199756791233380374466382090786779512468175052606602104804702255943204405275406625256336011217603112209929776315024600128576064734212499616582854009018098431381397662496717343872174639086258837157621753428964914030946731329556761151459101982419219317907773475754751778850466401000055659491024072614651283110215750672033488011207095429255748564502070869662181437934864168012913512412721130619074753312167210876571979967235367874846641162995867648474069895263497101481246256057717519405969306918490081477634329217828229748337446284229984892673316042197764771623912888524648247029992059576854127402845120886623697151218275814172755439367952709007712248684216645480203426649749424387873346773430412927616306547300757509139158602277532075114021088732963184153277897839147927677250722289459692992442331370578733120061294118729625796517238803108290732886936685295190552328822621885570173070878778103864404630343067113138411638828825091258365802670841470923853389189688855586003548060058985903667788546320752087546309980285005842730478185782084298936802892489666134200928922048094569415453847010008322241942358312620547451190677916544736119308561719339036792485354176735949652219872772754254522671062506645016563238642380445931159580135396334359036409035393600528793636796173838198879356882837486643558018127681359856766205470105682864741478445285262119645047738978291871666566368473450738306876454827396763903696361183022035912545048953013020812734416513104964737655722480103467593619386925515334738979601043912873068337465684652301223608679179664004817637318075251842483363368182813058192081350684239566349426646801070202843754336831607710570109966694850027327531633834707029769554491086182297246345412475586100657321293259499167793774445594833734924021099280315307974376102568289924024690414432332007439219903106731021318322965007471330713128713989034602884851347282918546538704350740285590145525823959489526184826338534754411734794425715025031764536085559001421605999056126239982466996869127550510698681092522805064079139666857215736174195122181766486272422887986428174140452008269482886068453340066004135176545962446999847357295671316497345316334955849890644888333349778171828164772793779813922600362368293291891664699662912289133410704362981119837205624418176872557027446008340694384834050600961046049231424224908157670158826450173561395501139982951836178372599172992940649325905848326981421904560566957966519182746965076018483416438923545616689445365132837923974520893115330456415097915251430546222233434005670713825013171077281514270123751436059616688060086900693222622967247389362937824254133575244696452395254654222015958179044137557744927657891336029299147597090346894892287785817039153979590942416045010000139835342332768984609416753911322923556745053506574825290539999796212159533806147790151421806678054825087107771070187183388307769050399606141109267177072385543126430640277597092704717199989837365505341388470568584987951367067694943796278133342176581210389593639327074260185531717495955436224264489620148539296273560807970572118107049135868562158956629909066409505169053657669076598556818648248670699205678743456579453142734587188866112452559892316935917276400616181303225155035706003048200708650771728126196155862256565077266657810280281256226950506882270235846204011345534747610429789771862473966909169389958434475483358227723976997385530573365350994781431850079821052833144006443006260945743902870486267586130302737553207881970199942681222376225053494801144232989853464996438129078596561755309807675309204286077103268711874974444304377695842281787580029014698208182250732374669582396532774689804651228497374348998210836663554128047100443722853344709024760609242361793869862523795795839640836603995578946809220208125382272854502185873314583951041956826241000637578955660161537620401120679138634843803381231944582036772153564434311520628342569651986639458657818366586924925962701496553828187724905563774144093103979000490068118729228489904027008938672191937621002371752953724909176407499532388251483347895732922934865340677593614032289157289507780610391407160891088014682973305533329079379778504189127256087783282759168238748551890304811095044710764145417089140361948684603995168977869985108066634237939418720584879508335107494505695404206836858561656247847061179747420360748171227946527244734260572045434420479010685587413146249707139725553518370865139003738491314993162055924007485660310809914527177992921198870181531386095215318368880116857956215416356563908077586553303834959567048545060621929196293249161402774858058336570883799714836268848245489950480590459162659786930936942544623510360486551846871866174942839736580951087566571889428818343107349693155381630579334071792267855129430727598452999155922873372683211715002409207362952641659150003945373221774898643012195060317658821243557635998264180778596767904275639090204788504865594274522494286142152695870165215543215668489705835937278381109951576142859606291746792399156504027284047110402841455455288242075672303039101355809950736425643131019299334972709443533759511844521259269968650659510378482314344118380479872834425934059486988216887947178248929659904773555602536664413240467551262212919893199908549216531387193910925695148154098619409833231539071270709860635229101775649756148836114735044287065109690953285579378515101642558161061524228418067725075996284654926672172282951054081162627614088642857002403959979878632759021020442231392448218816126068761119837374466819927813960614754080608541156017858880150849856575420810773719301119096805904322721360404919991697400091806930140366319264906885264827617873289101956849093060085975819279783006087520317618394394617235198811596863459470577896788210185263018368416055516204375362282182515213742818912098219488624961084541486954858223778169862424287620217601577647169186699865576555725365511892476801840300707369340040625975041262176690445715280961522672783853486910344451168443040513149249517818976475603608173382469347317123121124539094466250640109951621344954121845550121722411210836163964766681184933071899124460121140480175326798104462005292940357196649740476905504493777671221244987562853821808801623406021779776653287405768163811306840427660997510886360716906683286535201748384532303446553528620623313776680922270320369764621596492075042394088289823529539121522713001657688127015226286531108873084073623924643667314526599413027650397610855925300728520439945743745844365143888967317543704995666611703102914602596306876358763971814346314782356060632720835316089752105630764033318326726468334279236652189970816069924228341388449607472115640620148495791764164488631402283176391391398357482915190698185033049070159223089241592287931315420336313660184195111677381966311181145231351363420798437765224698779500254405172667251587407468029463283338349789741241739618163416687078148682071635286762167998387077347413680094155410661826441959685485438728817836881708027164205705996379952143872112847403052717810131290120820861214223689218988635448236999792051725107435650564624430051011345897219316335854253440937691980336585400138669924620665055246965212057496173313090480882660589703511934208203785582952239492776917876341422242031419555393686680440290820617270907829556865376461954597918636547132300014303712156297426836281479479936202110315358833119518392926176712296369018591754159674714400894422861466586048936431141545129703794710813270464749400249561999885978059769635966544622478754137240880289094074835398181061181547455738301954245286502158502034693673587407258834740247851492711723934740020708616335066637746956727659353394883340746946530536508129807802963559283204480249340852516323338034026883509703289061211212302364737069878391284697127122558440475751701443238785677747160489210475301831164862634623895378210718976970157573976302513869535439948083845406146407820644407172115419458892085393422055454128275642718644330625536504939293064726586820102641006963367673449569636084441981662408841217638410004564449658364943806253700541646976165505447790173217589791004037060440065491594949628302507977301518101321629629850272321314048273890577440653050096342534636050851593578936999669485335433676654614170112683065011531797921322839268667876574282840414576890367824188517328699930871649857313143966639281371232785411274803728917519346053874906722945264896846412522926761132910825399290630413903080769661437195364862351139914665591804816935322841508378238027529933539322178093871685374351065889763032349978669121004578322780635477043719312945704612936557227483021178422204643527427233489957848955857621193637861999262228783846508510811989498607142651926250866136248256787589874348097955955592820893827159358180915322422782817508616159878622307293417811600666864203696638783212507251311780545763834931734031721025382782807119972709856160313721675035492313235993345499613712745528311910200065065025378074771217151016206820318043168627170359146736902927440956141826625848873463249478239322176451770423986232427231725493349972757560560443371807396966722700294638313085932314468439625363137886096659121984276671452349672013567376326091848770402829928155437502953478072953766204173798659132806715568651314616308833689217948048940070238642626611441153522421072499489349041998711980725718429662097232633593807658063605159700931207179427581093338512365968377353643959716499542603412023894697882095895090969684381199677794129929043627087599125641074437162609067801287109989793552094009989201014392541191602014758154222798967874332690333501249239409236113775820531593497162612780793221518240917225010907857755140341416890781877329801970147898677011661571532192848176290041227564554945049725354755967662067911850312566073468040003595584881795378745079642657287568471414151895944507950258440539454662772138693904401079335918971131008925006125153063915452623368058073502139199405261750736089439076336544542892116318807479119837250407874683144311764668539323710868624753234924482363575233868816199900286997109947905063053105359262101998494577653321997705240924758102820934228440768935729851929150085163010419561651278067051720504859224491320855364100617089127112420049244097105883257012637600891782636831736609077960779048659173973606655748207503825752131963268773700661255337142998540373929266423923105993477432832174171889963647834510597544478024503596449531081500476010842605414156214082306647724808219012666965362112870232199963067858868051602394473142233364139199366146657481236895717932004968505464705668001418989774998086098705786817343992903058237104916772827586643312055609813550187115917529739482585392277972606590028347708789164272298445810583086938467236297680491979664518408297869912884157642233439683522059280875777021774064908604628264317658336637729132482447411861668079334187415087532200837660988832005405188124669781583536021763662245762787954194110357837857121280163457634087531633091692146686984756147941078231459552870330790784837936704179674251167642355974357140321117251524353144322194880009226864980475512959357792546778611430171309568335697380173273056296039310644362682224904508736714298298682938383401917826307792059936195074062551165157393639761896635791177018125209442244679922196132632266115037221905912679865348735835264017764930472299979066002760396316676210220723842580600442642648106537026365516166647322741327404373249190788891633022204666012203803856142294174402608304180472932553898818514874035138111264126305160624885217454181770336860589505834407436539282555921749471606152431811683926210458608716148312578815520016202625897541233549057230929179815005848981484674546357309591781909986153124113685953431013146601015687968023757790891400181247029756145035459383310404874105057136776925739902838679523630881265566135097772220431221158009386791186155099337819115753125792456737722836943637393543835975304597891588780334031927203994203511587969332927600344028223209166573577320737734122246386341529925638550268816169129974630671473323319908853040593002332984527175084088039423471780988188405919576690560346271016237251738501063235064354291549344870333273677969679104900211408035154802447198278319425468217271583347373918668242863612548751424747014251525940408773625845501447261505196394011240365784420630555985592291282151848654492451060787015915548375106037056391318191412407699020976542454010653183068028372359328334843339249232496161886362523799220937066586992020960844973689361514856197656003962805445451975304050833498605108988954629984550753597728615302728963242233702902323797942210324161562187275155415301913443645007068984901361473982290910811119272229726899821840949233074223787538503525285811279819308900844916795607630301449041870753952346845609682489676091006821559787563058130278103110481952429497402120670661255189917792923654466866775547462195091011067119180695106504602898106411325450828714318310622963864468442669918598374747082735984412297789861202747798220638054600350600550816065283397506387835378145095110031156877790262662438797240191978486704454197576461491559936634326803594399219449581903608189045337701790687306852913400447660072766875210679312386287088805468319539739265829527633966722203014069962358614936702390945327146430351251261542432890401825453927426547059143488593889128028573933786339696399511596491293139901062881277990723664535489511358844030730077951628487455337918248476595810946704081395784954298088036860839071950649907056651237917331396997779342938877149309584388268828492485165289647639465472913354705298804467725355992585984692727456046074451815477872032752361074749633180852993200031766336977537679935494124580484830192777574866964023418097807588099784138921492262953551532757993691828274340029152752228292900669286382856767368053818497070352357793203012074714936241800875050302623110343576897942467565667946673148162543757718206288032130043722628676246235110275928217079817606906495571916971050178542212074339382306578260040534409599089638818061026874602531767983690052254132693007359863277858866010152756956929513819276546886788545101338774885246533001305561763191682096385169727918306102861167205466485401421343751762357848502134510877345215267797345547828293478170623752174177207075277700546429421283796101350934385679776607599306904407920343834319674146089265585637503961263929885852027222833987337803673217120126085239581031536161024129726496057332537828399092952698730059896526070878782500468147413782245952258485976918633874394101369113148826795184309717205488652143460402242703354518792874354448896728525239116370796788904418871819052843332418468589353154097810469399640802539243778176403286891747280254377633080816431739809838974428428884933336867239359214726944504449496563742375658790664861175237065624203715187696696945878439326077184437439998351103189894182466892585250584943216539792434841105661195923815854306621285277334573050462103619843074403005364117955286092862979634413254416788521044530341039078842347446557128655383548945313192956576896350575051993112403751421560137397179887105789710745095145168265563341959022992846206775023401537446575295389934933130149330984235732313994131682266342437708065830313611869651504944579959635765269642190516462497683987736544976869013353196820012433578420159769298881033661123592015683648147393598186959085044281651090234702381804478612255360047325590970015504409873160659324450930374389537216361973894072533318998629203050389864428460056771023048124922443642647693897452823060406950800571738586252474052084248507160501935681730716327331386034349523851342836673451891943774261597294577197865113928729815090157835540224131298724939822069876824387416332093552487030270510429743517038197528550508049601231092896211201948111250611209915937503983631367312755243936549845373870364136716380346387069973965984455466072283469245164295162548054718968024198057754057255405167734603293925198721052456227200325891535845000619667798980268344468944433739528781254935291116495440147537984441934366460804497481611966533806648444893531658023331729814853792578647445699841366626050631122403197886417882972774008161450108334998469586187365226304282983416684553289525658466148563130384801499881416385601537997447964715628029526821354378705166148808391434732246912437709004532644768119606731848433268753900645992726876434147854795623291027039860193072274885041541198665901192086481947959788609648833870122531114993386821531854006111047583991334340226320601423480060730993516507310026361133838715763725993838413544198315321282474606793442606340896885779122310807140441862191993434600564704330182580115783522578102558709249970584946601178593051118157395387085848430955237455367354679943539576690196202415567474449921854691557166420239934259817793974968332192764465735319108856893576531160897859323385464890400687441426258047242963653501337045104298570382756956144098315274590811154623849175752508008008709078210091105931964245717646221712234790502150769799245954877901991151789178205422290936910951977210246707027033375168378867307217996615989362932994596757897524868350589873184900412624720510741828433397372660468577281082447199703648002432007354888607399281504456395584270572060623937327522945729696524548831566121420017034137212044080526749181025537473084561856327321261115321619753908753331471266862889885284225737016251382504012795463822977747614470762931437778153208108595442735070722642522292485964927152198496561439134000061722805768743464693199714285875856002279499638779131678142091641363143846108480490904785299128604784731900966773859438312808772994976370513703604989631603661732227331682995407854575621839986397733669093088098329635290349209283792910561078087360977699622486601622262506389711476802740147509937149146580474234999105397285320548317035653911565326366063171237440846455602447806544137212766580876700134354014978327220244364196292284612261486372224710119448478838471156489529956896798149227164960610904353976386944112315818444033896261713069099632019424241500226189296370387496914254222578622153106528536323684864928640480370178321841530546144393468637348849970904753412552919570789770126457604509514149366820712195789456005982711234415015500999833955533298651083033190065913047976738641294519079019352169223763607082607009245153854528152095046532854239133409352122674462053165271839377714778683292491722365923585950173991703030964715441441303374753581717523511436537362854387609090021771946585928207546939122300937637325989544310616286434575884801083481270680918607539486283514621735658603509903814791306643439166105649369060154585142552847991020470819821466052396921259115809220934607277707991003133644080294103376776208709477365609633584810012131148720329105536357094670801392218006562828875870381880121662819659130667869750222476457974537018391671187819242616642227526212359283708352131615561600200504731573212159748765585712820976318727423178994956003945138338940352285472840443738665665799456570609916932537858756773107067676323608803329667247838527541671154077687899861650106483231280968458556892005179845545870919313689015757644417123400787188574931751153867515934073787382949592499565093258504679769948203953232679349409872735336959381276824558674666669287040829725287347209121419339664633019380986767992547099711153486105458124561975428890716155222726656936433481432547660082166674246912248713586454183302873087252105591587060231627155167860511432533817331805375818218091398395354410377923129656465047540783266691405485718972468240777509887876819177076975684421799090425412961559286124473127816360503489813534152804274320933990740129434565580280743112038268967630680429140824368344086321733326244380846480023637916996622425420339739432880616007726818526252430968037580608583187261327367741477830238912562488520756838527296453959753586624798233966938331820612552463464834898676829239664838276310990572563138451262583370140850126087024075747094410284042411644866926546311288546116997729674153214109819338955579062096211242709081554885185040503612291718244949520459308964720632348064360152245331179814448093418195714675111390918114546071214562860827260227727011198908716536858174955946553137422059393850900154780090229161608500981516581703835375643465348366447631879636511537201259470153387652989083979191757307580048854549876205157482889499038177153241614908933373153176923222674178752228952180053145402072794370043736680440950262211326034241981647220304207391016103140678063618382478451556257107650971622606090589346063520737533918712145919914807836952179614181025421834866305501567923937305412751200226642498373687644963495989955541633097572363211897455816066573921210350488354578491452859329212179433732845310870747943687091503940712757070508773719934971141984553221047094424718636789807709602364190771112961199118336804771315873412952516146657922397900248940264310009970976697433799495078064281608063877599514611084537773072019815019236960207197051735530380678533228035533628251904018770072613304596175293824673107587893767658427643527713326476634769288022212462530728525314917851744362738882862617173050591843962544254295199043813823275704174598000827710480329687974935950220149895223925077535639332247068326305001910580071212335624794237216043264264451347087592120988939797716697755825915760914637022513728919120315816072636525918445849018873636717485407116663769330666184663987396434791340942537445136242687584068061084763964496898578958389892867762788492909654086578418135796038124877303396810428064372596215627230052620322486225350613701423685908393151014818607468678192947818047513540957590317245211875456110998339880325582949245605871616779906408093549268236665896520995886255904907546312734460111072750228184339364103814580775589449292766339110877731074107005277048848260492366127304713676316451784316107555479900095700515577525783778773281241552900283605450698750986503806581711954821822981652290657213632663300524754276027660726853345484589374891301500341504657645302865396886277375928738368665387837149920742176147075845872006664993549175495236216241547253738668430701776296109957299133074555018287117064113501586990508319007695795625278337099201494791515014966353816751162376197906149826467652694390174700528663330655450596731028203190697008188010075356572132980697239153300342062179934736429709431663995607477312371225701802500125725537705014937795424408283924365045942988397577337355777508515093336041870549018341514798132401109494293316663601762908781744574928704457270621556426362692525993797496940946353359166641216411941019961930517708679335640452536033492254065404533837066192416314087814615557561228981173318050407060720850028753815107160222163546478406503802913612275425573891829622235194966379648445454464346380284596306027470289545349814712952918837126802516687666696015659713727802650498504041827996462826853765704369229233765912520411041753809537327418900159627890708392480620936478934488493318584666977401033200841712406130110735706596042366741557390515928108537358983367277953878469100317059407780393148780679969287203861422101452514155041851711436274013963282486872921436021034132840560206341619127171341393104517666375258518346459756641969534559967537154518440047093877015135463919862477753720915914492344933265226411164841954362184627997324175066578407835906213219829941454005334900253619168336090012448080429134257831283703373160709878299030406505242008923218047259659382395873388013035767324261522674638156505135679699771941406633426577736600245112185637228340575990549416339160360855097392273833999341814999385070839966075708941472253574711162617194890746194792282794865739004127793693170199878500723917473118194176062016785933105460685148401266544976425748606034539111138490207315054830346777267936293373920508300599587914021000732672247253085917271365227465536175889463586263431085576951469276649805112467925025368857915080584276356120263974410831180284257963142154043682824791908023420741425463248804135866413384664389628946691151533387771535264041652622261048902615057363597371611998257970285473512971640789810723048362858301911572424302188306898560420585529867264081240491963966130561226384001471856428615271091345508158549020203069369841704894052803561391865547872099794180493237490702492250814817933227655639141512827821754547094589636156241997326193803005016175921498347913110639298096566146750519223817625005812339730758809530483219766833995109489986119050482099462405983211052506079715329952174293351661855925141730684044110021498076641677686445456521837906992509074285909098747741545167786035911745428873636594536508454214378673766596959741711532719854688137893226714264649729173116194975037519539777393005827179243458258643372202556939357918513542421430149472580545448602024452300110080968715928560053506339929388973665549438651467136608188299163654248325623938324907222030433206950652571788212287246628011855205968332978399944179472207170742113379489550899002773209553041562713039959477425980135311293759514623673338369706264257832000375055712285132770019404773938868665379343632574314658562505592589549097769193110092117722759483133791442217407711771975740667721053245370862316866147309315575989542613621774865421098490611821295493698737067440008033553003473614061934579877034362591106012283280868580811984350204516476887683324854536785047280842808454981066711595972624493990085356642945583700937577253208120547871310082469599455454561231218448726804868985677346250246414876109462059937062650226979821031517493503340550422414026940851867881646957707197264420705649602620023375655967435310146840814964145819193473036557859045336361104039966755334748868296459268451471286489716612476961608901036983014820617248003771912494465169075280627365631358598690298925370625094545481320618317248418861723786109431064227010451986575962280447118826519398940908633463442103395721028061407348720041630124061384813182303580199650755490367254178493687612407465148494001879712213656336014564051523794190183818194837712169216182650976519979749630007584381608472341508026188892118217445002422070434199304322549556110921670281652904315638832565907470444834088225153612515918329816902120073488136294893757941657550880397860512667700900692387862067375851019479173718800991381706737340149019477265927064528472415153246997041827832299003835424086276465195338884057885003819239391069186448358777606065092719157257529641981495194751710577589960753997282727122285298635378001928446010865579208941722027192284199364774256558910922746468148683940055331008713792455420631789416068046997278630642401016083095985196971155586132269553043457070968039334108487700688039115806746313752913351195703942472407654443200183413631303575429467171422484306410018292973549604284315848890308977236417016046744772806205777930243465280694068542543990397110396027932116352874257424767277529209434521459288642205058484992015855633771981573211394391711170694982504515824025001663736090072840020434973885713872744756536368546449947272851579788306255995936750845299387173163574077847026478439118473127648154720177425057039388011112158810472891764677382120935909932884227309715458601719921771275814418806923255916185090851204743130253050222390895183202117934394551415535100925625441842665336682877723648515004635781653980660615813322665183075549805785287476968898332710279348912995982605322041320318390938607168454357955059285949069452119480760993510386458383434795747406346577142854005891187369969513258235870817314827856417080126583830001161093618872587667991174203079610609053151646684389931938550257403599665696699261994080709345357128426404004713030436716239136971163329457340648952841082189916757732428318796009509473805028818092327306660903846157544584294078055507946725619580747747513680814676307719369119895408118810489768976432108005037027538722925014862013315854972769827332414438013548300457631633966417439633631934758037704233188815476629075658978134591633919547368538448040118653650268745332127411902085054999648080261398322561338345156228924728055888402992835965175448430039721523234327531631925406156853500052337309773900799291281771940538344331350046746444460040822223086777998630103643451841529992582860481977106669155266449643680793064490093312489303978142760495585453501209535024633353823551337110071646300261981602976059303434494533714221034367101960180686205495169794437600821300240788497896426368661521409772899272885463336341788908347047140180328661166153811535093223956342565500473745373920329255922841225917090456653612033207649231549208666941459969464420527734161474629102340635652572350402868144947220535820202350478830089579842838006771844134899983962684924755033778854175920733932062983972028716785904705389975535716354992535834720581978004593893420499407894264368051415192937503986211392035648528498908319305021025600699573327387272523481397936153466985899045438718942036535376292480528675697652659043201078150416662431940015200479847517678383055564584942839881547529847898826485962210310686937889455796956301085944570385748247018097334407541581507308338345517662810878477597451029460358682250737162103604743527813694646248287517111626969855918274663434694110951696575032384199740304171409558216042977820957020210142157509169881033285500221409774567411916166565624503364705050152043714077430681405464324632638836665623430067198859303432751450372701754234839324838309799232019461025288731445250063758033738789381844878374325802175482790112560708152742480315294125524291602985904052977778843068256322652667852676845464965908608984682882198416494179641334688903214857756041243000471408395067646936404683951422266692783104745218763380239694103994614810854798520546996841145207415327446277851268353427214224509991170669380040130705707591027112488993197548115273592352682626407057551074602105478393203442511449450246109951709476725749912388735495746249984848538542869333238948494937551044562884440961586444642583013802792283441059179168814154312520350185768179721591502490663741854315916516699448383884297680382964477473333633920545865189158230592347564713849209440879893936926245806127145558899765977916967971566560786160592280409504348491229528850289866291385850137025053603773574051785132892396080491639928363277789948600636357552833105110665454163574644394003192387295378263839463905839977490163078393104273180684957257589710816713821033178279829135851290739876878650104637049538435478153087826440721060951329811762425917052964041818683071290466704143808411280025351693347126462878343108517600279930518361050400358279271816551309350444292177922702590005067349123643871978507518610230684755641819810497271275121866396001358675665473019341432171067138696371431929472902093354256118685039081213505105058586384224223897482409239832294326049929686172986543689981313349295697343655991836248468267629960317019103616745629975614531375341106071787689435982506520968532555390525615683495536431781787677137373789547924299989872310539430755441734705083527243263490428522928887079975604254700843531213744278596470908158914582925623130162770822860642961481064180763826846946898743535669840434649643229981411417221498754815400508036137209696328169339778735261751010544933750118162988745009849199427904126682034769803151240074326528999857973188033987561466805610067243703714259899002444911686237691221613854126513286388917902110648427312734561241117973474593274648458468093592861700944171388686666283290397298292790146900108415537281121240902477236092833625764819500158877115036387142445892972083409357278165513077908471983790949191774337248777750457944310685597928395345697914752262562919213153651970459399776999761934129872491364344301462600749732838644628696295334203370637158747112714054734795058103597712265992947828560801075596455429280567026382388711198114013644520034631578483996188025066158768917365089008397187051774423252686245414510068829656118082428496819638684554289895153935808602395724885006734978481433851473412236472715618927208502749219730984167895720310144321018154495275576211734067626626999121221173646496116462359146105213162508761099470754943476668969917720394543287802675338424240503382988762654990710330728909626365176341768431831020407891477223305512764568039761083924869383776977736365817810930294360899529115835966564794156311929325405861774412541519225850018869569342570266852695886996942531954503882208895448091495635143529807928068301298861520719782144170194920509090247349613533179905194310646947763317477056966551149237347164243262479336786999371796408100552620404034962757569744208226082520114265145120692972604753482862869336106116087561552907087613222600052540509507876092689775029128370022036458609816131087326107078632348249530416042956293897711485964494216553215839200339954308030249975042368258099391966643984422425826663540042498256262584041111357993254203208672396357036068353473323207544586157152440834172456940379213179044426604247510480315738387253234839293632266094329028887289307631012368108416279179343734733480287036973219618768673226412141107093339347542244918064295255584390891829938581780821008932258864286419582887238501593691787148196495098982659020145180479451920559107006478923012276754934380164563476695003505322271217285893310823257600300462334674436150545870132129541965871036259164485822127038675248499186580019098504171346621849646413756388609438540293631659795504705815288182718542140825750591005115028432774031274118847537065316232100478650928339413997121681829846164148020348038427888123450868581811302618396091434050836345607643237471165887806298476006342005583107209463891090322222081967837286983484893591838672018076518684552088517604566477619289155140625840830159874814286852966625740948708708018392599415308136267510920439093126972714098821639972181999028091045120930277438462382145017282333675735969080251894035692996177433600113835216787785448438320755540317912028979917617848190669756145900651013169218919667972451156404375376291066668661190413962415962369650397241839300942603741285111961853843797101381059084665694894958295925120576536215072486067190260950306747164353521083195666463650559499263499359693076936837030219983099361220877508420591538369895429687743780143314819494110955513165712972412725354243280006119206660811818511620111210065989023645669805041985927478683366332128118720267989279588405369353047358812610839730577761766953194704189092657834777344435762586495616833101570190626884227738786495746253344639803750688494513022998847256179493410082714290994468282747862284953207967036483375544145680226944345374485581002618605363166599549317047605740135193241998686105265565817376420029445822778754954340301907709511202487968294627643253755800123577568796697005163784836236323652309794616700106213974473479462272364925897067553769981814021810705139047121656690983286242375332528683856114224868614250738274458143764514218471733545965345292006854092227484652471001508827742863616212361800262550764560934502679811015026421564375184981633086380711395011874818974664549475894804540368728097682862826370836951122761312666556428079153153154306494553811258456845785067894542805938207463924462076719415394095434435271606638678455207510224587055049079337311367723766901958703339372350267990028960860960610765628332616979438151373802967492719204240629512656467163482405964360906041449851712558451407342016543019238713846774638688173841828969605212144418887255469909464230814173607275139367588667305263960794444928163003330356959768914552101061883813447465719496041369320806221149437934739608701546380513704002635493548675817253783548719643097713009122806615130976916470925750187697433249314321274096669477747937926562683696531872970583422978100322759515697588819095552435666528359505648417864789984827570117808813211149344624517121152227121866227176612936996844259218471663933729025178610350042370803517903735117043727228869287346602086817320018323581357305619192919952572558970174406721783988000014731934459507250301817621890498475614736467380038851465932096739008159485446551088129011465246856123007446670249601340097393439696051510532905301569966847703405097860636561503662217433390948657563526780489428444924593400817727129793146958664288017032378425765107339756327601786909065699381753874311104828294670869681914320170295525772781693886473272968504577308621620930862049871227375694965561963633394658694232658946724696964123831658994955078280531067518863766829195242954572576957257653041942718911356878805898190397783667570290623799775425505540694999721978143421999225480155910975342258896953376487112337001319909918244859862816780626154080913500340973293688830962151785441500167596504962193239180236548782217696938699311432329725171156774193786020531686481394563337578578871303431944164461374157068539929265967748118575263330749912975520749563081719319565848907578558794651734142017163130819959655024655202602828020305857982664135900216768249113302856283993831817570054740426583626141476868083614375472303696652180765907522222793461164985240295186940902536508684143705378224700845389783938097539421653522577551642653598759832502872803888492385451402950899581065431434216246963775291771573707968282576023019361443571610960092103696845258860615081684042623453058356934174908232903258330738568642650276753733595477365971164974815738751674722842981519505989186742453851788635178580782941975059771748585235145880207957151962045740910807136889825169485477160197711113609681771135367687490776681950980208770344788753776319301731659932635499456307851721665178034464914291522701024580796377404668425694735858778366425527853429557425772146580691364307092406190432267686710553014195053671482620169379100643848531355390534042808247942390171313912318710443674010107170688318975743456238644881738809336729467498249588005823160732606056491058895653202180600689488683109657135952479443527289682004126634829640789060347269757132487413296267692380504274680791894306401692995109309299519825863006394267988564861298506509335615082764752601580347437504588673604701182777486213582483350647330289096055064968198865277406019798916643999239762781940220825272503025798479635544402126845033866407357126267972275271639739586862858948752805278909189845685218986225777331308796413279043357418553243308291762881918628848305688198035055551809949062927335746621532537402905805044643831571214496831004353238124738028293238023349959912748619560756777226035207876880336715133610515688300207381475581231114890492889289822740410566815862888556016375984185094339609205958227347862655076834712495764750506135102064737404129777447245628089032584417514435556355742731811331468864712097907234806561117598775337253548549487206693984191766373685609289810087025879682041629335404253629607448582347036832455010164035456096223959488010773296029027939927942588803738228006255188552909136196997724362118050136127252052987101286120579341718065819099136575122921839900302493362154587187532991146451078707834281987933301625016181512795315956010208487726921039577522361155283430716872519260015458581850969742751783719758827066884578293166024407616834271067200087053150404629842395086648196437374227075360335525828639937761344138715831865670143580015403510094324682083034800360538690136177754297674749057641774114760513648971213743120301365478876318683118789202115458168496805551423438312005345170701015607426814258953083911109392202630508305610604974103813332426977593290851560569217777233464175173562951431545304608574328700012499409770668931322051208508608697254045870658373739115262082534447285618219791891429155622809829038355499201271953101715840371817256857919272660098659285611053805341167240997195071856647358919458182340462904778925605309672594872434884095692341284259240578550025706429753163819036228961411862323119998839737215135384615424910756626457147262760347920431405014866928836193804363619877566647359575249394593022361396251405670023033064014683948100111650195529403344878765227982122415325981618436444391703012103354990725855905436036475621086901126009502861914495156998919920396219523251691636491027209397978976058761236817436414211682870045271120812293411658875790733401983346049072368674522244435694657311111653039110288506919246482255425391564243664817058695253202349237958188376032954008034120794763886601758901025874906680422434253941161135350900950301497985531720593548431718749706275897232410948337838700427534715457649890068687387292795355408319993301246059154683581328106204805936928531886662686798735447790371817213864308594805721535990859582720486833691942417994483805181683211433830469137753308145284152813417140289291384662347013779738039401003200931905953652397410906325527194631332283478843455733829829704267217035010384306689818544181649583492035424661146155464964730093904051884607438111863686091874084069231875335389463244592155228288058788016607750733447506938901787012589483642390223439470289316274682092747414000730767181266632365567158643178953652575126712713008111584978958455342880451354931360932393012031871607869611181005921141975678994285416962489743101680334014804989733966244418905489102909337452389239788373748605354391091418884280688181574532029471889980924968048583616995911874830057919369890068178996023106492278249291182873640783813459009593873169681579712571688858044172685378141875832531037789220158683240873049340621103300118831622120560039771652675507628933413442080326560382087585168501879448107812187188469048675858017579701900139541093346208024330635336409160238103152232588449230060605404468863383607271728214735843688510182598948442476169845151008117890807388829075506264111789502761215528344240952566128038946254679573201116305066016335161097947927108148979606600823299866613125819646739920553021905317537676770513001669135206768720511963748602447915830858873156767972433037672309783306238583754552364154338010332863566652801018072533733743923051404597861732377536247774173111817695916252096741948829321808490016129993683040488607655085131872291606201993300279866638523078086540047873674872374846692376230862294929721770258682765160853545670358881853845458793327610451612244795024075188482897945801170103352427104108168495021278521024117208856343757265775455599298541621287861080895191206735141239239094675976166860354981888977276888819439345687739977034083165138999943713300103603052278963119460287107128645522733920354376556542618333373285700404353569947907986800365174868796205574066836442627428198962437432893420133838162492773318078167079402295828701273419300697145570948817333538740876172814889585289430419847436995183573637444662588123794342191156599363897955330719172516402721871664010197034562121384626022405712083783136950899341175290596411170521350498256068207460841977829710935496244549083372953547230362341212337289633133028445775861308589570691251452540272498722748609000715957212546352687055665178364868583341981894905077964028616311749351898148821869396319129486481627924105562995265390786895842446234612498486402549348133894193923903280244570682219853562821657878582015531078120947572248572580273398260635816036504256630458312889796479138916594584422707239179433693215133992486108732990342394753530876891254368351916732901484449586450816522338377342860193042764896928406614367929944534801386912961489062399980097823466002232845413983641690551144925405703146517339832100680821413716186780343630118025241939165420522458920644373494300583521470130388731171596231848060493746575517849450500325490355693603925192626556483384959601154954535364932346760105157069763883243017024960797051610985516758383134888186766931883168945829351173864099757083344720326691200968560989161299532372354721335314750660076458876161172844129080161441258248179103939322839225074906962896261860171896655684484522000405729861342424149246837406990328759760795317622198100272536839295336117670534722731566032567605390431133815871924255829563479309018025883183100902097968321204110164428415121132710926535547800220089746739485299425527275032679801706866962429032529793403687679630257506219505088321835300549092408468638521536520943234101812510715013700477013319033367476139936786537834676937261119906168728568357687923741107406226232264368446608626845282848801070364240191393691015284158719512344724746716581845170996743260316206413687024772556576802496349085961781945951347186276821356529467638752759772282523634693053833648067476201532902116724118612478408024122652134605303121032706036200965538900254142121224361958335469346974278638348826682624786981500136781089225763909829366045865883752860218938298602379770912754853781445888188631488579347755628811984326047242242179252513954016548705663085264127579983789609300016194690551196635917112073642054922039756517902480517857943057422411519586407045623143692982403060783715820640751559183976375508022112389372093673428435712682404358391881025106042959652348991563118335956972798675332775371472943276226765275931699680703246361574393354134950499692569899661601197679019803892653694214619167654272692729034196504960075868699971020021888190922998298482565855745486263855427873108706865149206225931390687774928106771797705624116932589138306871037368703005571358713596212218287066257252207104015730998432795942736996729618208981510562509890742977140791365258051230652628258544827987493911835018833517429630997875792148217247351321183885794686920779323100747322812885535820672885395757437352295967899729993358784573712657839256019181966596522626529686566170048452461455175257217696122680007457439891101356743951213173991139514892146705994859409678495385912029621942412624504705428749078595145690927794564116706772234765550927199332485709110676135373633953439867520964936168089298908976624483296877111851763942015455182691211901757591973978716716800348279942604994921682973182156727605526490534404454479066696608042872125686174221357750354484423191216447648741447780577689921596867997195727596242096430870446183262214661140450321009395341664492038140389773135774622865774106939674028149532700336116518874184631064826317995967965779719931104435723936316718847350719432101275965614209516278005484545975400608074476691560920603904833100956964459930211738828357436802641170660396501014706964048697176499063437686390619126542285319343667586837672611445374791581946016396669077301326331727268460152127047338479149191135529046413507710181502656623099572362197200449537087249446733857712418851404142777127253956804046516812941222687756853236475167301189975816376945463797568300183768921799031267978681691631561229311852114091777115202557383587937919913250587601513922589961768081319008749547962810521694174232325318916771831595752783679759486762392291633867097922179418720673342327748720754866226071259156488179068208395345967003865986392313743186729685969487851791589771277838044152061733385139581185012500384280699937282446684894243910895951932827807238835519599714570778862400664851420108169692302831251246191910144893190383454625134695315522647316601569729338427776058500891393140455478597549135216024019341565825599820129210340745803140620520635446784310567567444006819602773117210986472503793574361674645799303207363465702339762688178809507726669271264051826140858268892995152146723372723000804556604701700024127890843235943106987085696780794095497783279088417929702261130563890340849480026772014476689540623647708961427044052392301802722242384691011850092535966816793370493791433865500839842129854721446698361406448836136790312659927013908704790804204130486863219232059084671779284646497762094474951867567247180235379651055421694764897323961698230082311491968981531623862390441421975071257359015140485235789753983322571403696488015687809935989629051626520801312474932676598191131288356864272755309757194120256584962305509925170925628823110511659994890188756768048185493420233313279007328504942941750178097092587049525270917883386170783792157387386676695855350166764806162396264600349738997613488097451257771102598016653434703166961604509051657081522433252435054330863410798546668699158300097503908548886189666769459018340312974121046233203719234087276763189195670074271657167375634017055024840739596629023884753598295345549988969134026628758917936702482120135517138705072635603912930287015330252710497856765780563053469073544870424507778039040063133141352077820415987812084412758641730908606351093300546230261208335357097859478037207776549939301884277274668116624632095088135887383524302171785592339088299862640747564102438689276836531417741999410607081192516232884089508163860176607428924267784408852902602454249206799179061258962934259187843509038705738393582980717494610276010379192018585770072995845966715713999421564083197799834527547261413872497208422421752651196506077362523117501339329412939059951652328799509091994468580236879789421780726815170880913476512091925765411562372817468453110922403959146656723873264626718426323701134318232741423662976691220233069769401865171764451637606026039323527737760198306689873326669290101985210676111908648359668768252949120064569709724282889460906670388750498208754216287902813823203520616384394307491207438304871223913420245765187033004612086882058384696821784394771469321741990463644412884564120031196008112909029804696807270386861269109342876525907418908306101573479918085567635822445033035092125371728845372243358126492543416588009043359446972709710931992269318987047633536822013476658556383540490951243123059495889662556043472051732688457823584733438258246091004500340689025085156041202789267755358142832801762373183938136738477455952521112247125843344921772465784943964467907811551288480686426534634850042886348063941364303163760350244883736436980354657269999550460241131357218884218047691670409046922243197780989651151930985285850882735595747040698461385802614982354272061762619383723642995229375103223171679909578219155369636314031253248991233159181325863640353209920306229908536665900679260327227858580402666154059509710142406152907243153560040597467280240159345832929890851101206566234370821678338381625884315107620242766266191499438479483787827440322321530753096110179792536580955332897850431478579605234223422906084998255027272254336630255419539188564373834533301840672514864674256688780658888409125951591697237064667933485329811691673215756244049049473801495506278279066700050754542151771414786317247664364159430716280147968464090051846324453015969848073344335436566600200636232168225431036395992459615780972828554738836035904486105860147195917399711174316657205450441095019117451695782408222988786682426007034135309381971628472355216726644243294631974928032190429035305389988116973878028950494286040740591333955871427411642453175917989031256374184724520649296853986500784834095241047673092230237947522615615646380046582488427195825831378311693658187983192209867392798403502160212674254227800033237657654837080220442642054484679684676332728543848609851235444326233459251206910087816948817213604088670040336469063985839049612759448181380302069161961157044904325652032948320104608376583378582135184770548594822975926483252530972487060764979353606522297819717200865133912398916832234026929156642137856619140190758246484638076756421006893473043839183447336716094458809282530422455652561142930331610172747404786119112763942135833554852082192026088620861592942766102173580465408051277172734933712378134840743915628818326075502215196536274458849415172634587284520158030175058582688302587035385300607242064474430389682780242672017934987560850531428028393047089701101240132407106201191703696214990244901026851808720729006056376915810550477045039092629802821385883415191095584368860773146566706467557375232465804911657772295128193576947211665118081610167860434643033940818488306161494647895924411432705425521863392655749282411144031066802760302363091862588897379216842744473933366517132212355597559442873534258599887434711492723294622428593245566938605733833567180028006148839836604672232497080779051511273125006759452420722864122239630595865273298352433155333561934583774839925035238527924468989756427454757313412508145514549570064338006539422455110081630600808757817755498038172574863972241658330597654695102794994310168794414409166636035507530638850426962370674969168256545027531075792717389299803267732439191482847932421428693713845892659660928364064251513586240229998059732922358301089112966753379589875307107118998522443111306427803273767320708684165547368841423345527979037650052795447447594141413909360799149957526124075735701753042699438234418336406401082582029293128102202331002019089520999308387133766410627873593344530644275693043146615554176410892216387461353304402068431437389063339205026130608500261742616057606241180513284337232539673815942954128188511119581943458473203775232155955894757703137073494489643871152861994832043785833196577550924178909541838003541356751662875020184794413264425655922282547704489140335393411748382203908176892724313300453659899694999914281722973028644328025664741473760576497405774552090354939333256788341395969187589246203029459537262974039196263922723452945970749200323926518570303516582166000463381769312084769895379823730884242119629604450659337044271436156295405881242224235899740827800705334533940118962219173839877989927992352076759382512408263508755142207935509188710418558027312754224635247498480191605964314683649441473278617728336354697021550146282959761562618203950687038273460075287500929635843239398025032305987774163499927971659210080097957739923950063154710177725022711264126224711867472734231720662893125549428757955338873531955523271077919564419689323798575815280561898446517079922977095004261115123076162369698610861921505842472274445172476787136521327279284934579310566470780178152308657269389290797670523859079166495579460798982680253153229226827222071886839219936200259356969755895792144154011185926541425070333236777952486395896324219537356121594293152605260385990115597670933358313484609288888281923592304782306140294635289093023634466569732515317764220339119660848537239875919793340581193400212493149041577403167779715093072440828731692694940324473518595578340204576346609417920836094201628237122007772231581332030734962258736695282857755579440465514811522128641453006668302058718274532415485099840910118756791738185620481852257788077672492426294918086849352807612251153593909810959044003642779964211142280430026573911854482782099091949063122123567959562518095321532827300387197707231132577821918639417834070826083333944260187673605350163994498097767149247456505223841443741291171607559391116727725293566558473151011320493067187533272528952288898856071484801196649553652252180068768104625264966611703297315443078353601025772051402612131912448352887189237766802024160434313243722509846230995261057823880332556362290520223637863207583463398610145498330370059129375420487882060755481322918084616158412767505107711210300294818706738930930889849486602130225508717759212470480823255352763330164019554096527651511749530981561290422953595031848139599069393632325966305095514081042535831736053531415692819021624571732008919565779218562846438564852210589886270786628437579955744034682764613980955911712519379787938347178174773100712307113145516451279807378969993950682852144196338332796700103097596302704548738884485709706717841162023594222459742443462797601181054205753360455697411621240143588694226667489148870861782648178483118361502525633484157001067844283543806583180779566105085596979637633023904534260300912226009437580646160499113767399662766043269248835407619843031361878511445987382975090009103267706394926902978159923468280068658800223222826561507834764407373160974806075129692934713140750627837795049856189701923769653655928449615237615806038690517014336308502149303371457148378242079459707194731373801118273770313035283501757643830228022716147472049363155488353904067769104997864674557965833032722663501079689297163269261836267768366001341636811468022122584116485718316936102627968266345986355746995170408895911558432193406540278646499314076972865329161610801789843035644674187141663087163813819856657503551361984093657747328168286123572815751567742311623633006059835590972124220815615968197779956734527442629745992518761881581143253529279537503686723145851229939065550624599601711706887726555983586836628578044561378045314913242229396187391133141385369906021565425627889831889755994844939182141594102403427338955223646024217636144522643154465019407194456787752214317279832131886318043988951701297706314754727321709622281205370531937369784011007796442560974104399037354582646175468695917224780209503154707432725555491036671408498981344024945370101233067872308250966707445846084738524688814244934808204355212491683366546019944857630105251585530684052642186273835030547324162186928265691515244831341784750355350201874630544095322188667068697920782427574282650760063764110455451922293243072959488902382850127738331653741855263791751336342941204925755049447872085861646899923785438685853620564074819645044687198297206217385864948285649484667458443106892249168293296517477546723414969050251508111904947919980592721374520460430000564968764604206868916833693505180697156512088904000063521215862856053291383942864261721114296349100710806279778888341884564652589287011481854841834331562656403098355503429929305714747177192809591549613461409080113331673575282534159157585270635078772726128946603480939886716867141199094782479405751689097560275894110267926793772907602703718762002127135736645745094304639230461607534207360223582511295679473438499163404166354158644772253867302410206850398884054898039910388651862077912832257212416322762165807347850420835725157051209234661426923258955562770329972541854849752278372505790418835009269508932808468847395160989672196502892656460292772581801373787837397109142468024493833090872258249586199421077902915235335431390612946071617688669757178483828780725539932397936426414393905806164110917891984330946393051668985788372755049754831239052649044154636402437912209679949192375516724054369238903110886214645889531933632458474091855170434581948257008827640504383026685199360521689519546808475406905864138694850973963948125618888438063237393984316252837980344444679901786618224251903526578438988882777859130254722946988642822313379115769309777827838819297605998529511322075156838016426656216253440841398281731690466856434383929410709459803115400733355725388374658657113355986708775548637024175841127740158365803128959496334632315692635236648489989768704063325361697411966137896388575748175310244009401899751869853860285718204875860810549635578409197490312132570189454566284839169120444759058757762016330639043649434048581348845957124093464415037395619534897523227732165595461940743179582930894424759570384020628667094083509006802266054498046938966854553647159088825336430237198753982404758635104674906066173250276551089927300508004390278188247250655128164367655779637910842743473583927577560868095089837945295451144453595724697977504845615948368307731916783328988610785905368682561281087278725622757080795913084190295735882121589780445421989794441394700802197783856150890937112571275638765069117126571291006676764335311886929160517725006620245523393998968260493209887112284769490332947594120401710934648352469167667020538210578815317488282580602251371280021790180980605303745099434323537076469490759107959862383700825133309896801743060426707433307500909623256204729198445134913591851004204133995233691402168301685339920788992095486115823253955702479680081403686971163397864400066960723866905638513368170462509358916366820382256900877703744463252699029885723027839261622450686171329709080976933004552926321054013387814405523566849836583809301979977189104687624800453250294334514689342488706632686695470825400785006667779726997630237460007969449948068458518009728285792029003137394426369631327244641312901393346926887153906390746184702888746697394358395257087486112259554480093258546234525549959467092343432489047107950753477918500033706623738615847962657540722542031314559184070933746753011945390807157165571642497455018255419776522095619231524475124387532004341819464284866147212223226483664332937359494795709242435498423588179601602488369133919669046079384018341426836553925407499869947783995215402479491059922780987659751271155157339195618348953477238289453690051767930389140907556443218017852394761895383797002553218163871108422363394812443512511644483788050844970427044733663819899701567977479555695576366278224811491884350092277751737993786837026639473440590032353763267359292111327995351869527366117010724789779167767292424073229163353445003327137355562530598218068247072379342878411692171341627636652634772819093961216904893885895711656824585593235065141705308938118780264650024059586194445291351133553871567803479057636070154756541329997738937524611468763571852862521672757922934354452709035019681061616834389802169022298647359509723210462369382060325398290139507260470885560618538832962181355964636405240731844020905006066504731836209733993509832722354919576104629400263603005581870934097767115173203096827949124472428457955543575078241461376494323008536459369820097834327731289997715056891649449973019609530873395193625913775377498414493724816616186713841687833820766489069719856478727627008032067993827257912220701047903227330643525341085641647547459381891543782618896067735489741711369553932010731721983043268286092447989911412314102058026865251131992188613177148695081646715374943148249871702096121280819127698603485045335059798530251690643424803622279820101557338505545878940042527074586712867721241231987030819055296598685088365847684552632116746047140514900452149155945480256626190958218869466415256080542205549311895102094307912924379011782435881131764904093216507853544317942273957416698490161040239540696438447342105077514859642153920900735322776005943211716100383452244320163545557842623220527223298056742701455709290628533981647670862989383231491685691968842500238527868176726110436835758057773723768437999255550767098315384453949744917629397731427214811708216873211810296739859844823003101796674389022567537012226709811553280143708444764534349965935309214747948127965151170602360123592577703830195562132982268848638608402980502114107981497078107865609027536174856795627344496919486117934496885386889255282873810825793889877360989492340776204066394469683436113209499891587771075999332277183181798610797569056940302673188798614210659878893414211495473792284998551855928830280151900889835679507382744384018566698890755712415729506183883922905356388427970027881535653013911356680994898719029252185837621175898758069924348798155970078777802641824366557988333158962778139157986036674487066384056988766943893098427999108659892834405039996369267025672717835563472673848571829592538998108790175550964014868815704234912537731376793936874820954510354278404988637035119190956406083362879333828319325303727687558113970859248784772158015188002150093209504776288897368358191398100738925097032634660396834110442120560365757168646994073224319621904836215049419388275295230161223287471973166683943297872830791122384918810527712033875331214076214990268839537954672886132982210725274481209446620565755208592770569474367786212396967163193491569438491105361897702928489857203500996644295155311669854446083295519601693981694769699406969308524798504097411186389864455393349504861631282233971745316774567305031912792415124900088313096775526504687488833727671017093770604500131722049200445484077849877929281942178886871490473785977399164786580166504525117758865658005246818797297991679524472402371155389770033942440087249161442172643730058204320480224040114687285636502081698068703050710558511538840346114504642105751298944421752949312299907522885156575284463215460889974919063782678744709757393438434470007803971036737570153761785773001512201657193188343496180519884758419104545763910972101350842649734779700713262688826822956518556976214008562459392339490815932477414503934668809707161812432333960811120838027815309462819984808729053615031879983923648467056739147434634123757200211123294993322137456536921218598819243005904059695961401438789415273246593270314990774531324476577007643424750700088641219450157300794538665193658094327967574436968322565961778247169018654383770135235768663635621470681625693499619178073088946271470480699993934207706894753818873036313469663319395820466937869929381268034407798982451702192868320296420513647091794428774958667001164046850010875587767277474797880962211890075518394594027451761124387867705129209844762963689399329797018968165307546913861586369369318040159136333918173594960869406541301070054499072028763862533330136526082790539369816724832202862719352059588362484366968465917141403700235380102744138156246823725282256623920749269510106414415160424012784793575572335220418013759327076729976362113825738505522122607045033750231225931021899019976066205139488061580893298105567610321646524826305104522145685775239969951875859874051282297522859973634649781660066004111031776685226272792593854993865949153290430552682709386945891993364881600113868220131574694827685492660676216266554628935160505504990846609439513074322111556212705908730818964360941551415337846952217540043167257006580776179334989254785139677618329677523495562136958836078251265211419262810242616964693923093222390866889729623456367401038179326015834528360076335090154129840486767802235292865687886186164135647616281418203279206964040261996506387322481734609028246013160089346712785574055171896690812573373795752192338595958111624641591571173423257814771169362771653641638182456138023376319176808840007597983699902967957006886570948620979817266672298876133736143328934779472449630315231439841827692606403940729045944725979271720749785975364624857881122919534925370707523283685596097597855129364059283867264898602200250990322975788069809397045036195540839975386071037258531105898533236803672248576395823635277913357735631947733932433987243679016193148954817800788057358806605327445280573004285252622069823297805828542830722669398377694166621582842124406753798735385303896471329069032449289136687038072628400683441815500344693645027294993321919686498903530467330016659423017983148293554629918336995987465887656244970629623766935132209230496762905889643101259575728308498561466243629626651786561512603292180778100281578173954447087852839322157469873824306881006001879746938205146654425275662277384024286069021674774951592644867603668331501213727708257748262702421891901353937675398101633905637802008206058574783660585005994460245437911360500646359912050846192967647855533821155932695630378613660505440169456039729990215544401412721291023294502432526546408115947284204138398879805017133974689877495125901869680202241800567921310385648628708429377229397868778197465746260703186265266506097645253828521536910793742193427330405103116974494116220474123729485083346629272924830447256585692993739640783169303550106099659114379170504170881155475228923640604606874591093374455088015701987305239304447673038721379693896899031104144842172550520588239553229957531160652056368864095207090705493296673782979322465352897815775165498134365110031886916699537688102545734938331986120032656463721946660603362289920911353131699336481708033248671315012466998536655647954107800665738646211006903791367526431699817096217313306010416150630250779646651121991221812612360799176485837534699313095866918439286079190670404961153228922638535098562759554833070781505812089122809708014355989159204063015634779899728637664468076250464399161669886693540457269382512552312985647540722135500711263842813284898596105312344791977419304182155147370470300179557958740023396453469231092144244761525206503713106389889998991802008298517865060741063408449691468333394736830920682385585777361522324748440499471526464036584555746560118807973781256755726816789453498426041531801738469730795116428936594558653024328177420760145838429340644350918593589752550969393298698157215782615762667385837333237970172470084676451426076276758729504280199087635697149249546787933204681061081467273570718965064753323225193942870150896721504404608091212114422043997723082273332500350253104899384107302129687579047543326487128392591667820143303506374366191706505689673774805483084736836840772362941235379304616616217936294362555009201472975830551957613099398825738438011670153652274833548488261025516240279716013179503187446411822764515829539612436021483252270176468618996109996280025841749810709075033009706009971224646395464799948592931617147239595825070154393236437978037783651524143111185556999035724783846021559060534883829535989612548343645296843863678823939152413251612215906170966345771371843098379913250610888760735364094062957839722667783503568522906507854325531886740007403039481327639629907364535393057340993870736471024468502996186841872863578365157466181380494537195349940843754447782599547461389280702121213685933130276188631591155796349564689498275422321049981946965162393034321092359014891726963578776539012313692167867752664939758058795926663796370532927791548932336723298533444116218307413813711370835537375476914550445465486962437470037650782328499393705620908616446237422058460893864973388885430964797808973286195091711811622925734738269410110339957582630101776221732167095278716965406054666175010462787468583391615822603907031623445367533493237939646841327153496869964674232350098843155184433162866784338158834108400198291238563647741212014297804477838332940617830880254975971720812374120733924616706843770071702626910584498183941030628108539201570624466808974972155967870676469522273504358490100250276005244937708171470116937042163723272029918843337262761410369028815474489016143677080598749568135017147218788288327846732044025558372346469713409703111464795263148758924987409385258509977671813603692455764202939184344916051326208184677190261729492214804064099934063850678371182022055088054646965629297768685146157021698894091695328574728643010848394783083071999641511411414421043235337135265830617335717219207947706851424203015695843820043617064352340651526867666031365692890445351159214526270125581464971313836972768746909990257817989639960438446215241975527009825010542520772109267218030637039598615693988944780815977603526813029793291223390354672718471099235784978001598765086211261220015768107113013962045613657109730134568855512711728301699690953225322792863340353723098365605068462624408781412760573938034453761079641916869908872738178850305464910821413115277094629729708035487867935995135587410247011235362677204846048356059154909127527821728906924250848441060353563048470874627063999956483293138292395062308001394386617099034541634147968945053718720151656096682811747865878535504141682637269269096717015523026458100451412818990302886881072349707908555732106267355006295480411428915571101319645437887940156254153342459018863141782819584065111282192154404167935521225957135986184408167934428317332771009918062308831065512512504328209335359716358026146125850444443798802602316176000790738809050151634335156347856199761912421915508551371839356190808570526043346307294898701093003536394173998907808653578726578978845765996753572580245512709454492272207629776114310983511452379176766667853756239277659911178296823834567066665923358175779112154894059291771908086024976223385859034675444299903230616094931944791163749793256792204291737803430953758286757629571659936365516254158817283656771434434987894491437337812808815521810953617620212852868838111330364443696400700096241777924927055893185209170391039383109404854516728167499245200741165967285869947478239247868691672727622820800619007983037836788678690551110671669109347967768713063785245882232764450128652677224349699744980407124163894403049012265798759266190515772704611946547000819941209053561328987902651771894835253597211514612577740317086344604891216119870782329131167490792964572320471990990381098563913279388997029155625370473613044596127464712295668221689739073810025951862487644845202103240756451578173739066959446008586039799144838665233769955714451273345259305743197766076994587309657329461420797995351801295962905035731923671065520282772247963943680539321987369092556878945189313813069224860558509913112067900636564950373683756973578961282241960224047401976715829149993744773201326068922928865707122180618566422483762651007761700222815935676304161277802679689706611313951702161718207062357025103099594631458054753731813851839657831643603585948128107921931917077088736438046124313725138559457226662904463604022088565278276392519097434122259227122551105240868755592409735852632951686374336627891956100902704328004371835242640744071070889968322132790894720673575894444532284294939802781950426676774113538765638425962631371728390258544459531220923827099600280585266008942134894298642028021031784945661884236114033054334890133264847799042395806689590505847311103302513703220986760696091466023518807421467107462601948898584228469725014375041044054996865585318257938542722712879013708881756233392857494218950355516348364259038084416610812332632810346631076358653848351065431255082792377948569160980383552589100961148433307843791641429589247876111749318625997878355784075887656585372292891710405598958813584696928117470143338059343539203350379874714032275460943545257030746168821067861654388233441809029805249795579471285455964793288554997784869569002295713695217923164022491225264114662743829277198768585272331453098182498545897016713981076988694134500893350508910100948590330999160830457752978012935006087428108879354845370059445727683311390343650733252391381676931181834150429183497826798457815686308612191215383311472536375163738310133243135943370100559776018439490970842598709539972609569736262178290561613326832212801779872007469104428862262773806148823561892584253287697263042982376784881999359997932658888025946937517610074985406114314699998106258594565376116381586581855845686430417309420475350568852071696757316263079681053809062553124311279490539950149488062004960542356948598060101885360345992651686848999161852133721781891876964390498944167597351815277002705965721013201701801985669239816415564293400007446505829934466167225641656030405408198858034530193887420644675170096783849341912301459803417198798042349271003541227749600660935302205514502291123788569119494593622985512013449311053357621981552198158062034121878136624518708017103087476384922542781316095624189661111557755567964590249792901951105396866678534992922651044645814760874195677874069400835253950443998192833654131424792180328630045982173931262447049240411622976911478389644329010720363703897811724728186360628258022813001867042476210472927241478271218516393357573391062531653473902632669734111446656669806357549110699082955161997218447683794591695047096679450437713985760527126800427386062822577505083777289201928953978206323471249067010733901646981758450516037842895949377824314454373271311525550114141901156631411813998921151647745287815576537688416136782177980620441014015773297142490091932055451613823944895200647219061968977091114933829708055073319146361757897728923498538391138704781515475457907023293680678912491204315267771436487085450264115131636250226600623023618015740428738308871696973179613064805733356997259808707177415881238553733978017922850556781543910133891023385434570630818898433528482363698588347040192603830593423873329194065503019598216816116109475186809437714317423157658371717729213894416043365687388244284425951579906070910229347334576954909247779636669442730895160538756945994965845220359243384905356136232198887564556793445982602485913531267001948563941821619512690795731316285786834457903971370744296702122299412290512888787422122476268603116869088312728496271032727041193260696769606736942628756203051213351181623879847664447219252827872660578290942060589489850986679373670713915545621888763594316080080988224732460703199284939911403048334737396002326799211815187579572087457311761135370752860882045283308268172421492488622843006144138392287673708283918184718227933968963051924284832624049918998625299552436977561414682316489238586865883640213178389126793394740615116624688513153704817433918322463584117386668434386243650658248997120988512255422336874228509110839760401989645064836999736729442730384484005856649716164918838421925039952180545200197761822800360139925030002235875793413724354930949174039633471680714052981755149085500218092698866610444313378096242364787789188290093848454912864656289329667408801737969607617562734297700904034854096049234702986707448557079083620421317836789699027770364536446520659183383848702222947885972649537523297466174342513254661506624936535120269014932418146792197483478614973238699739965716566296928296602452472295574883114989217138197527787910406952699650153600259360950105601718191391853054457928040878094397791395011046134187328891660522979123217893297067612439696782770605490991018750155367033578105556047044650827348162305238080118995043499840751230467299228006412022450988090022677514058411436726149172702867147875514650575688526012716049942872005704929767245206742108065567747525233666024240637124475789168843325239380764712250549919105379425901452856291734193951366401904349749791053029858230573850067601510864590762540832807196147465065321213489281926744643339300260723406507985594541197616763729264284375854068693907437531920767285927053189812350515138603887260621999046440897655683938806325356979220936956346284195851518506278371876730880465865948517831460378737103101082929149864353954215005826882764237031510154442632315005599224534557542873382854357270245236321661634587160765450315092667466333503857281119318632980338741163192635045491834521019034173633956279232971378451665859054832522335030706617357484351669724466119647225174663023181115012373706755799641662481595227842326358293444578232334873042131343745105254544128998013191312317967341041797741301035328757973768408412223282774585304919118712002270245529915417757853409597929449419054864578612867772012826375558751707824084872873676135830249907607923360676361515014589318705433669481100618965870537979453526065764744434130629041307963361539117429693035812733553684390275100626728911478165417969922637484788665059936327553351345497510826695624756167690756610601703687851774105023692450809581275939896542019188979826702086914767737433542122403445265010791523103832653244719659910751100029035794973992366432243479920851405648357479634934260793018139949273717208646224561143659678378393325696687029835956368485189225045683676950315149054363443277700692108008722616811431359694059219982712966921065631833157771860220852064536857614184888530059827422467651686810768739846535128405110958850777685001742640257167396867110377707717714213509292435579633717110993360535048817845423528228785299246547177682620143597652667275303149269734482995983410576494203318185565890721157986763816791595648943310604389084514953758857974979784768275474120724392335394882182090517031757428458181659564844870299569500739845566316284919108961193150245880944890678847534764605371039596324572668694477786638029949561765180317156151849234121525615363001096799676346393313368199009078990673960080628756693004415774785951274468028371518837467179640555404509262179073744293787342678918601604365691625995214783584812256460562360562945256564870972964588378352809333605841602605305012431663782313905728807411319189558067110885314676597721617976073037762137520295285541905570706067372147997667798826275929509612272016037713820100039440363188043293977090497402431747198376845685831800282617379562850266930005850676388012596618355736692201436558602466336223349460252197578822836127070514065642222401287324847868830490599041206250374492653996948529143200498386145341955655047887636689921433308892864259669472645248706745221358736547509980323300615751584207934079075286470403797885773651713678761171500241596317207957866128646817044934166571532655415018362224930185713874252329166726968831436649831064327762613432733787291023137085774296260750301522157039287690420594743049318268551272499463143980774870539703151387537683902077749537352794355605658820787491860473423521970687390244397833515629929251629498769863507131904552713900014873204139739285334365207817590535037938835704173961922917209500137433743538355697602648331956675910305069932806265832021929435066394891737162783455720297215579535029459818149662893124061837705670075825895977307629701751632498164342554908706574511124666127290657688361290235155691860011974873492971094640222731936886318907700319265183981657073099694050695012178103985623471845208421934189617539037850278712576124760554365374203885006465054999846416138364164218417153754765772742483432177974439050028197968099124495970519754157822946227126080205766261251982284465036441847224213211563762475616631495460938040625162113187409978664540620786450686099641287735841171697130692958681136158860921995314442325877159122421599292984079228401238916279600887300535199693842444328013003053936850711740354807034710786092418333842289881793246949267546951325843319129493795852620963588330303878319317622775534008628379961042731057125540600214617077220045966720802005577783432608410341213280272435680360025689383056536355571521942189397048406796298926811579687468418703732510167665886535434030606738322435988859115216319114210563853439375953925211580094482615678701016996416264017369361396921462132633032311883042371955155742309355738440610911561471966142355404085581326571144904852196137911500736698791463170680485008660210065197985509173498504483642080814546360941331484146836199317284589032113390523734552834434942535577733356443267838159734499369480825428534592932890881532643395123930043367515321891580907459489904035322391598187367599975061297389595274761626638084339810825274322587062107403369775329311046458641821487318147579024834926415152376398257423606902704107405719385301149220107378517815961611416779474598164861862270012906271425124243579461237744762242387592431100660773001807592223002294948317054936955796709042465858735245722343184194212028034294446009909318487139573067300264172169450362290653976331564487987459093552137213314754185850466043823926428235230443291301140753143601518814031011684797148226794400126335062848427238269801653751226514692174758292708602963663865624249272838745715714927155753487036063126444773192954235854919172728490258482875597233638379392140267321706194172904118371038427536772476986973764195856928217316981662673217736076279807417602934350765781112360252064030480759420410641228957972812652336249830363500558276605000986865795877297067133942962078594756264188426484648217583207275505146550756877939514489370829137033448471188510722785124870634627594086705333970484500501016434095707932614822064892184809480704618501524808127093714899322174810830847353522314328550529882911733472320140935167116812083657982012857132194862539663864428770133828148222904762954515887396866362805724682068020801426409857570172384133894993112605372916941605610229283026548718166573289865600535102654091742276120339476757707502179723417088180335628779511589799826931981387147155300281600786884681765618920233079984565661597594361899113968942073111962683325732256862464934040293522800895728044782634336312607383079185146396668806245094516982908557195569626933451579978996504224332316558423380011256322522615446571073345012506817369692896462420513264067020697719652244567133019211082208988023296579372974499578400551433310660495587117084036044077473095620788989104470420020916154115196895132060133618128465857344176845668159888096995415886776945622796997719329040317526796640009053642195372240769332892752285566587122408956465766853600458028204005468593241173439451232730611821461548309102813399021655885301352585026858541199885051957734513997023050000674846994580990509926744593808556364396671796831600483430580794260442237259707256934986072620598872066754766377255762810167145063522445759572686019709408932585446075231632514565844841461465336928341877747973845751607321797792635185118295011505697162003973104832529257307886882051910065841993783454101350939297667454244669023626430708141186756979156116782617041178821183163935051239931803022327520132269120649000131565835375734562998390903112114496884314098476130931441480435333727853126133542688920885447883054891341509447218757363687789301058781396939085427893473248490849606426021154513118851595404367689600168473392512864949552257813011583771449432735672778419155408499564293704866422164339175095800703850663636693080998093143003563652411323219704810361453591585257511810448805855168282092441773172050623959774741720824792852346270830346919600702577972091495305623357795823273219736358184693493244658255445548237719035712977879181616814463877361673938937215582075987393896833594776214237050919474896051348978002451955336605491479380049981797062931807248345496187239540027650755331551328360889958322796507688026637741477362763307148678181984427551407736904543024196713082236217867565259408411818610315733075716370137699929139628121213600848408424718844971731592070646688925417156199163781034900709565577390581375685755133820003253143262531346183942158051939706226974392842667032443133378095360909963915847300981595724334693059641306585074308344657147269248894937494891212982876120680501757013609005148424241369596474684334000587944065846375728030909659654970211616008659167923704051356879824390632129986908188969235738103608575770574106469696615824588032053303371158328550245100027839801950243224828492785026510320270916658845054707126843463154215003617518797734964836687226471243144645428444669239894425215749023331201749839117651240288607850071635755377016036820483748141357959307253695283279664355516318807817393462333316825977206893956242573119476090107308418286263246728144510858502870074530855224720306580782722493415128952966959099469697538499791992295738617231322516227897957209239160093659377429926646387790945424248884108048754509361214938663315240491590313665567146013706298865595057580402921765275878165793502748303562809762496558153529078323053303112238868425709717848875562556033189988051292971929699725944781416008231381520599587537759900654918471148768284842949021532458718036562883118891921154076600971876260224742998006950109698205861710550572335222552554840654641920553712709501158121435344219199850819438741805556030826378285391585264991546311934806492982886028553071619748328488520511399017601118067711373989011732968705550901439417744512810282726488320253148103427260546235119902940521663041934478730980975413353117198261799409814950380686678655315110706966964195432832901296185636263551628386190315503476223637864356333946231312524896463404714827739771849363364063558101144052060779589840891458011456269351578990059243181751937003317313893979303787503869486292000404065820290706123689509067489916237259671330204218441315856053254675080450311111502314731405499298866388931085562180068168004756289185146985059446830862195216065828212042383582694389472920046836471878228836645549330132547979490572350944890799566032866633171494580747456294595425921980503409337116158565247790957318216423238184382686423782106153524642977655589326579280008427228425187526780018648956683953742863095529948823486639604123010414350983838892288355585305636848296137552942102527154587627034050601263371515289650419003582440832913203220792038214482474857996437964820702502970772603182926911782840690743423544081663870871161484957154550352171806578900075165889763003340324204835455139342136213072201060615313008836823202246407852328087929212553990330230442503610579459247768152173887313425786513780210300963811335628458763956728614839198135459914630172797036502335358675563288571248976370985951671772321431531365852999341809101845737420004779314160493864972474137152087107370580125649145213930564036234465304537092695078206895306969568897148979648825889508260444315535977866777097218359893219880978953618328415428541051152416604016373412803523275647013207770705387874756622182166946303728514630427913894911094281880426250592642447794194144471325652753666959771307680981379025226342342813596971325173242444755021211135144201924585916869450897113763278145433256400422326200393587704968256895738276743576269333551901625777353211046875909357241842376379596108639583378053405787049850978471569658490105452879024725801613740908709338950101475260062847319579411565551652396485745092929234791804229208390028182865725969815030224993245506284900379641701159054473654796557811289421876116610961193075352070241240601472219878772879005698942334167127533594420454697499499547210286511499662637848783371545643402060996471722756922997679349445392783044062341283442598732956287164262556919731263094954292388872631118898428654649287327143686212790715390568747994932336713408769401521017806108468672853309329258759217852851483348744680737646928542069028291698535988436161711539526672999395882104500473071086676388642646718192758345740094833396442047533858652396535149164360742776061754326783858334877673446476241028525703811828888614397463827591803522104540340142442293848402550072366694380088750776711317778449202871511177938363959699556802723283213289732014263986017066586074052306119887104065471146192636765404169399339108690543223191998428061127624695704868176294449149118949299999741657981974203624473983421572983960408673685958646233460906528239551625291335918137804523051400807264206694305445093621965291528172189350715278060657386238802966656175895719289580278977447198794195883557858282865056383361726103475474038846567050552620121361403910983517908921916160517527814415015367868549525226747963288020277284394142228069252520651392386156070745143655626168998947284423646746787050540385948397501754626216056549876392806698551140146248941041692781335790260298019514901320050397659820670832588007511931096698667933486912954710687845508972057878420783519437780101906070008620572588217697988276471716304957056263674898353391389039433803859801971566730586472281661845824680677351712415715405072405994817603877663030242843893264148331428418529340883003415431663734285879042086325324853458103221599643944019244381158473311489197471781720938470778670119419899193640094766937364528422340615857120785687569591363726649386132663580328208682700765522608232027131081313693325693091880128870122546033684736222848754414025835252355759824071837707629677353659681426108148724895536128321847378519637461042236961059977741167615109559671130140674675062987407427043344175905176918350060092187907674593852974656833124560780284055547669466377103174738781088773939352749544957797403968186752299730960994449787409901822909647382458164761223486064370693828470606935719798150224045736202620403207972064067053153845912463346831100079539495852164560681477077109564754887031666853973907309238227294631659319414606235976925861470813309438551455300849274528958634782798635778044157603077932535389127617410822137997372610915992506192512562286139586208596970673110567483181574945200557508670137901177894191202042085010621066434520921141342591180525434011393944366120066574426965120488223739204135740825955390693004133383042780776038094590391232811232882809701953365354019664715245283939159660012492181736288800747118332545273583614458762998492667131014087059778830698611127232280301149347488110867968289584759106095263194231861595853722159498384688485345160874524396747705206950299490667553992132782935859173870140894945286899981890153502850733534527929648307474678367062248129061289312552306557168098066527711573505357204832228442973744610147553950436213568612128625468519078220047105902030937337989439349516574264917373046623028422286739470595333739006549279588927815078080938298285450749581852743835840599366541105306197722629603502339190088559602299673782863740759377354485095034265914210713151954842702604831126907115791533788151980304210908396053635152904873538336581932960558381524286051438827578225291209034710556660183018645731427429210472664648266441027977122738943589901859942793274159247401435621658552119807315373030155889665044846183315399400284799405215655843916568575680600725364368227640679578258416047730733667686910041620225540769329887449774994697909427651505187581835710425451166584021883572850260251124157846551741356719910689144178933549682717863756948104825916883179236351686472595619716781769117340486457932248953849681642580046745765305139676158497132539148634105739151460604290378775311194639907530185711607173401780684850758029088534432010362447309897325210463324497024622562748734439621556141147395115927951135320044445650283297989875172603901415981760835563270141026203951143662930774070884070599867765149034591255628819935819989430828774085558346419839859919934862530969406236687289489818953851997416841824506345364075106538855156777420766182107636272040895242208339232314907222586215435536584484060125479897078636147486008735824169640262685573899279260944263175497173846975069861881048737926530473690769455072208601546473470641330807975100225860198912182473969102804880214420061147823830483543479483341660484400085692009618039039898654142072216619257942347507537931667894893883275646081739022424208690550375619668198068812100523526782072242317937423524440833583503258172456276125101817306084883280602105265292674394197154781147151527810012497895830110816561731845070094840889959026704113027639866377701597876696859919676999593706509314804690790064192322909393390890325391792893706909349350681110597733404063244137056621337421252765190574216384185242981352579980277079656004432671904589788515037605161096614037596489679828439331054400076711606389570851588993184223512384225367909258660857719637234006138830267669367477828944119778141891723759969116713550344278970104246148659476316254732425029016353070230580584330382298438331499275522816474813979472560947512509250457761070447971612837987122893126766401716066328140012487588578575507985030929240497001003015594132602976505112703990258077059771423325866658671581513740585103980917972761154388810623919023434819642158272791421968728215520424805887293495521045507583938092496296008087772948227793196816126284704244741781038755412992426044784705517885330230574495033458261791011409894531987071768300466611468249914930735742390316420746246654835071760809347842967565992221865871073375235156200213391644838178434942957764415266049726548185649830402105311546915190185564785200550291829748026993465324665430105644539115283211592727648810986897200654853298890917795997478621052815830634170673620688525834535783669293212325756820161434422564206495144844401609342836690819056445082217803952507777632918833654379597327186663445255151861108591681778209252767361663043511997233940227829700299426390162816449378981248399231966784145419978472116535048322528130141482503290315459716123543866449302883984451646124252756792993175937265425179288614756965071167796919084613125217903380545787181502464825652323068407124122377929866482488638348662383241884500984631358737243790121180798895720720296984280563029244926915934693092796139713526587896773210476815985206022365481391497412996483894308044150103486367118707836826579449059253470529263110271697696160514641598915545015709178455431274586394962919375585235214575747289064376513522410742369552936489269342310723706851111193581807852580609811671810617023995338344008858682497127761592734536494584223475995404094215546321327066516122868703911755094161102310992410119059709342482509710607510631331766574551298250953651425625132556959064598598142713248820198403471829092186917320598583746258138187075901299444893218476096295602498327590836686263925225321720902498349335291816392486568046507431888176228157923190586341224356840983034354744874939794411859918006391227485239334001842785121613458923415862142216537738205712116300390113002895979309495778710599040646550271455904617118610895326308409937430319071312988004265703154333350191885666947328250526928047611901419604147738187296163584401257282016526907327624923789369779875579072165134549496417435890368173107566670858140795338652454797378929649069911808486798295258452354620716270394447303147968572415879462200937733799689319021833730367774808092595939605661542800485450369320170450031770929396032041702183553010838124942554750523836298363334790225094874753119096833330064279475325839210951356070579608562846637609096673918719648896166507800652636527683427314956290805181157418463250586173129535102966444686263536823750765943342429192625316732945575487837975155655202129318724526776057920333685835882468685224869953053879757702559560334300663041971676521486140381783888377933535962281574961293906997873814138269738554485608143353958601065487899270554507358299717491205000974703076376420784835502711948173374415559904051778291416493135451907672376924739804763276732631896058981388882898639791985289815567722778496627104442873258119862470238457016244607501238106440732905783151678068352297574373317077315785637384082731899643437286942882508971701156736644929528059426337485323211575417880415429860213048206267657382698778009288321303269967439564056356439174114744949820979835077467792580151400335697992554729424228664087708237289046026956918428862039659314992221751522017008183329959827086567616657186130316049335835289707183735180223342735940200619442435051682814027465090667863105287232079503163144334980919173646083922125250935032044656863075649870465839176360864853129605222527330159388983586631017252117805033295311627196781082593040364033005001754321840538027694087345880626511061568704340752346391624825190556628758094986236046860061950571087921019285706152990507048970358547542291240934324776959813799606106706544190108053153227787897024978781512683029289660543122581098644704768102623012459547771897622732559434879860093294549656380406225557108086106003743690575705879553065058725865031973422537363341594307098322718403641946990348046908974314705858408648024447580464691872018302397513396039835866829842010167476658251384105230279616438009999739596614593723600029530265914042286629417818680619427197457568566130407578060596930237488536982597433609375560789130216375896951764364843418925277541620389564784066317614360966449769123641834867585242549557550299320171450478260430657989048592478860285721230507159992393934979655095900926092781116544573767135004253023213307170925337575922625544843197071297160239962971016026062553385295017078982290779843633711539062791101185354412992909460234565639491876643047017482991166655107930984326340954699609464092329187991915059310177799235282474542422568359348074539551740141625603983410396823975633161750546969476961061316123894889617482733235286090553876862163476433298147849598198578578220364807917284762546900896587920601284842724586549862751143500273125820812290897427665540617668383014661648443116448595431480474835340087822543792425640554721586470334727100514305295171085696413930430454666164230484287348670512817264929460926148558206560933128011158550276900521797937155074915824066051810398909620220600514543023792574344447535708450766125167562582927050572909770439229286079529953097557618237619583753376246152367822759344724956750946030665572997146410059305507470372774678045682073066047389335132573798614258588248580842798091712881715603381506795927912803326898829727848450142790588105063074636869548498279719102850233157881359553178337873813348533728357343145270611687591687674760101933181986073556117310689211999065179146737299777331023483938044249808782649600688390716471104006404776142080851095205948096708140078864396669929951877195403345210068360359652743964596367364792786408431120880160068381005236489472391028922841081067161608191866648115537161695685666908569612947277822927775644505487410247109017258339157692806482818298304504570233783152330861509942923605344648181900299218426250174374484387337964232284129586715602775038474129021107892266652695901541795156510085907621493258565122037826732798733211743152148834572503931907395898499389867436264011276855046872831480440680534466948504439308329831842842586099255006646092428660270525615197689513847839474475297588087727133048188141349761791879061895565719982829923629544461880037872748893024438652861262799928000356437349812711605480973865728901977533722413776457800627078126330284165719819412461113098556463219665205272955744266602737602963984416982643840303414116465393178400589891268744543884285868297526523710057449931101049297691622764969004513957730752626768269789162029828101542812514820644054827755672926679550648562878604940349040005260123292889018275988549685637327159501219223900761877642194284977051004837196337957021301070630230820792799144824220640835531730037162715610957710687196035112307243604219816098763797003901528823714848645336852823284298574081483455582599432860656680020153078625801245737099371202170459867308097647024424622896694270504243046730529286236754756731204059244547351355146184191797570211123559543182497404223999757456977302330567030931542631963028550827646288064139570220132469307068011383796909952027853022996628992911708891905645264260035220211075012770971324904759690045929533711895853544405338506873148586996890612778861226451767852998321595927156206118276787827606576372356922865923763668482137322930032096310362665660616913582883168082441495109534525602212278935922595038509465260255376646343581302088007561944651127564561090350305913208721336286299814315658844704725942225028620934704234523861334987455377433496868045790153904708976869587317676169913671605879402793784273046775477916377616322261293762612246740377641216134815863886743623395391033529636448684933737502557768747075841381463760415167127043551493447860773895416736596861627075807165735128501926321264290618390467535739795337244537279317847726309119687805461732875699892904901260485895166779206453695279426643240783708649676332075498510189472485911910590439149148589425026529572404070827040106937746536588688543304212811643981972158934229822968328665920667207810998616363203107532295855039306973146382856826995399809747782207008669696581740514565339842464888180400181221890672958574311942208634554160591345971579479581596694119337556230313781216109567753305657018578278950163816557205618917040059639792410163579748863169814792422058286720203714711793026026140076365866501715443791710237946735395129537843417323125691746909131830843126559188713056286349213696421708855104993837952888597562249703774739448433847527690616058209432977496180742929747498660490690191086248022989839305184746567429245625186692186074561785876790532068745739881760216950969751715562730887776331045300695451116245312368013196107697149062574142633799549161026309643696885347288978454401107022436583690324708285591697648000046570081157745636719759494653032920821064724050322460936781440142086246477452107001257353174106487667890708657873137109916177151300989371528724726790727892504502393967299543930615362366919231447190593052008587928462210641463598845874174909986766092664052085551570364778306861927384949413024876620878181896402547487849698013874494496882724977438711358408367110361262913756054752362302075756305179625534168600066127996647400671472810319415739901310672806739429754660717449535080631579669397186575715743025889803063776987965707161186856916076232800237457736723549359112601064798937602465616345648420464014750418733101794881495841070902862516652644460298972244028842820886345452381102319541321154450782625861753849523906310518248680311637037876119422705072945041637554068856512867494603802640166722453641496810100986194063512125920649147616787167739588222047019853995427324993334538691681211880407575424912832096775502618052915639802483028625970972281815291231570786040439174489137814122265898315928255655825492724772463844322003894532774921851371903761761088128901461540341740214870156849949583819716447830035924950780380669637364829291617165310070652826976393178566680253498823539902208605433486843227504539685420213070577526420676226555552028590555995936915751805101333782009923407764530809097736164162281649028932251399852233596975539062040847130111579777971506886999946674208850646373220926907052359649479185557765425602446211315236852866143696255336399102519517760729795667405809942612446134082131048922352867572882084880939313515792204236253629163100774761854897789801751150396071902810469946200223023234575934675530288242074645586579504958657264951909084477402528330295155642375501306395672869469746749718554558134757219542685286280535823441552601892406360145585811930437770509923023682556120360786071200425301482748414033062016256603115456688330134044782535473566254067162798218393885016040524397889256575216762759120594045360768201907812465851024983190017567645792976740386427548615265573114139170977277610973329808717171383592199080204626076615119549700629554843254985848238753469288235653122908404617519674781814177755174014184934534705425789415092354046958674844780092518423789811480365228807487848509478727115085986606101221698410679340891689093822192694462183896540358882123043149159034857403920081154498051104643712198839096901794457860563118613760872097623782997161767430847411441717668708294086671755968351814243908485952439631777848144930914146697763650619901441852283298127198769576141597268785313745346882701735355087160801364707343975616960177995241444025587949130482060670903794413595045292903172901616936410266103816615619875440183014084747515662288595575260750615498893248411809082112819102062767425123235994537190170848104986865482680644908031819646302520987524277333315854723459667342117414491437943477807826532211029366133778964279741540041031854050933321975366305508321188128071899142195673946485720767677195709498509613061435848509380367252953885417999472702186946694754747276297251842660026355351112278497851785035657598762729818455860565202535147236598171339634597448957336466180277322444272618105760458291775747151051103709040094555341263313272416826892695762178152648430592214864292256132963495675329960458623347858632132095752660664722383290732056136608395140884214999524027488934801896626460008948390454225289425109616891869103021072949434914613895837699820500592409409227995686250203291293097218947518214187748974489009824313569426827455446893488045994458659424741537797434093646413489494898157681784996239644189597194328638720250092408325599381774525354351914654535193847870527941940939752268879735272521195844302207674844125147292220005357310427604741533527530808509115235777358652255186305752685052040050196197722915795143601314526440832487374156247570187292389064637728699271772673283125289204918150177369535760330735415000620998914697815024787845767509283743142302607875712180204598817715418584502275750379247187816217230262128747821612983439555917069208893948426775233607849027221176996424888457292486125588888986427734284789503624096262731249672875707814994509377137279201137243530232631957477146115181389694347928338275952852070765108151554059854490973072723968523219404251510867510344786404775883468142474851082045499346562199327120521397475385552917804778282792927695974772930346502957138913685768798345810642107632127104522666243683577303542898024623261549999121131380574008244285940722954796563705130550228915225748248899979035855340613798318766126673409577821815753330614372050704997607694214861381147531782919403366277324872968050616575654041319764234029566592073377669140038097312805023810544104982134370649038708561857641686636696425451492816546896703917250388735979852957122303102548339839777608440908404328962970125691437871650808107475305103449409302980460536994917786486073058473974229131252425438767701852889825123659648092243460183253405444405663188606339309963044268441607672607443377891085709332615196095643668695471013666489377290447495208131841514641486064334397988367828703389004520414146810041462887368176310442544905639166163147311877493983020308203576742930554520433677169200882688766136560842288415641141569094304955469676279453809289831367240264724706573720841979381396897276491477848990492448337316791737332650567046407461794856282176011354079970222885400833176220209213055805125116713347491627404272933373253612222284800515488708961882107768971208238976207431972972125733370474149418727616239549490186938475145321266387995752581171868551248006774615184561780841870369653495541809944721970705159748853318530487041603794041952000949099106229118989844713710807557847791096412766281564054267258071070515292865160061383379624065902822971662490507448903571688763733726048814001232905893939216758421467723302624431457059640480415909628049309642977333263916652685925733363090180749166707325447046200265400872767764628299576083418771879943850197602094581529435917562730917987289805708976400579342006931329117587522326987636426967471551458335612137544712410257438290531727161332451874662304392835611304089934048540070624777195436868719793917741061067909746208505738915482844532991012418568753139404863897528921033384285595396772539328925157302308414530923926020606711489949614558840199231934329164193608090633273208986946315704568055110458786085058936650828218289356048048150353067711719367724548505842615406814731723159976661139133496475958957246071499587639509149718052779682982319066934346010252783233823630506909390977604611464318336150449131915836879201053471974192487552747541858246084664334386313351354558472660162392079529860227780326259171302508477598813499438179345476057715117398988614991667055934021425202511676826546557546731220918190821686387347027632096447089976891915877974671815799135824500548059658044812097483812285939816564192085522171768250932800216336594685119979456483605137592403501782113749222076746452340894300372786678567191229945218304785174851400987033705733394722479226529596137157475735834317944599439309535234741661656941693077868282673877083391155893569569717640527721909338502950194359446084912871945327617711850522135547848674178843451696840000113186309229911162366328027420431177876966088762117962949871265824840817695670807959726358839599991943309342039367597946965240970327196212631440241168294123904446561801376445237837162082892986861652150982124037288047136140157471354974880282059903730102155309603564848335384881454702053932238279049636485567252305197135578469664734213198704308729347024915193817365976298166877062278025293421521812516577909755991356009197353558134520470059877675929855684816909518344608094671208705746630524253445850686111900150120739241860503257767724828497717798937134579156788906753038444259416599409353820478777352123208720215020014333557196143561997566917076121178934121797533991580216514070485280701272891682557469326697907476170991165414957619662224884132199251383771822528582677165481544082661407973186351848715558059137894850427001982997852306756872095693924810701212245841657871045963960696206786710730782516466712282858926543348764633828503489419109629419853722326776333995472684594563294079771573636278601977135788578367214455888537310688235177350420090129791085180072575111854710072854485008103872899044902934880489744259507714321081238901077585842339244094029967041546461620628994362709783060390147615218443209590210836295171288206856808034105328506355361633727978545487383480124015133421819882604565083379082521329061425715705676500737917494325992583806036146719389523371741160250509175371444278502092311244281863782152459488246028053399463695765780320160381639475211398710877597207651093778312865250190595490122163429109862393135304426225436379649393004796339148480459483031115594416108826626992070902934604437917127235499630662037100440773528844664507675806395839784284978498468924839194935219832539973632578376539867633302147632446471868885790662575546678161917482638887713923533345198725401678096568638250464517146521292401608528671202869411839119647769111541347619064048595519742718604133218158381751567427150263055711251476949531977142114986061502414288513797588499300409594852208592489788574585870934104020929492587349272711081766643519353102325393625294342916956978494213011344454483581416099742710447224965576662937905122474437491601891290858998532749645606809826768340775750851897072407919105320014812009553007598043669316002646046700479678376239148546121046198204302392629480086420900685036789825474247113072067235146206103070728368118288478374112691698188561667799456885273355396148271660594909738132430320938184245255170359178307152668035321373625545014196720122296839920157916385647913823390559443848765377472098069881901154359581333168626554856401139457999601531166881943192117914962219443953562575850031887547130347283366573282361023414680320767156456817020052331384859196234104130356259898095157935172303798516592235396843590031618494497017785293621253943352680968098088325957401782406313416536475707771142110808935901399890544673959927790429994411922001175148178584929320303680531694696293198844415279501039795078404213164383613898753704954338848094264103619454929023901982509553848295937243457739912283646136004361337127579589449582011349853708820650680256399875910361657787031355613180156059886096321451464683554683631182115858699803484171126222471081609268366553221010365693765307733821268252252643867194045960254094572626596040897020491809385965206965236995459650591124084992559934569049077053005249241318925022661588751960624854759811855761871940775422411039836287629929157123238810096594109003171304899405264246501181118932615623838426410479662091793318325073054349086980529570673808218370246703959225478995128206134929132285766429678682900392265503535877268839147829338322149860552485106118160524113589312453561105816394732553903298653709076498326298641389255834719818206134846453227988392193782003721281766250351827470635822277212705996881425869790395591618422623428275465296465700388178586596261332626553693063384577755897610199124364863034533835917891528702467959581897737904056959241152639330788246131278276105334088870629805758484212963591403288409501767133224539524490822607913213726837424998952977797202737498460308743241368730214667338853978065358825518597605357415932745067791845593153250826523135466034323608652083540266931079036249373362959955253813848769287294939858089416224015626873217720169030972978997134431298359690545343739821505626277040099400390467422809326221913624342456599278569691648311004714268278335158910771030924934173961698577744078979119485039318201413205926471705870555003621975963723109112020431101094500324877451060001466710210745467537934978837884302236908994794245931667649326073650799518202395361041814878195373410065484980266837957720825127474748597460388444830613707099740887677733958898350166101914682917568100505427294136662466832364257254640429233116831694992561651630433156281371887437627072690564949271510096254357616592692410969555241318622333853419167969368103826258219898641326996841515875271338175050537760728290601282291667654092248903817654985087102076250189674740787937925632720398519786753062627191951471982645799927349261606849737037292599044298143523248160854602253783930238180283699448142164964874272445471813649326214352033379012900811443659285144491719089471796974196407941648952185495822383467998572816425532579677452897458865986097981528136776398666745664536493257614751013063220566771410672304181243304680251320834136101203097942400307749059332961964271292837019003085996712097109216389739509253372790469676270231394717100438182961451059195277265592575228561223780441490906347317714524376093490220050497979841109827091179173839794633974248942143123502800846741577227207118657739817746431194085615880035037683228415617876893587045147247343710048430398438656262768650620484246672273357052057035032137195766510834817816279018755858659558322011866469265289570190318606686217184963093573950058163181599661396174050281660879899031232757462946417538092395645285795106526859040170674803185350888452313158443593425478292788866238631017525745536453824892163686838114179177321833129522059225020985521987629695365926830501938544770244296979438174977044938044760761577815918760758754742131997572549676186060016303886340331587355182800993449738762328092842285831321667830198043542196478993584233490418027259005507612818308733508256822726975016109191496031054155840570890150992240429002909702484304672697432208031820270871486763511380363021452089412769571417007039484296493037666994946419874085915835617963756244961967775376641396275779814528766027881528434341303100937334723863630435843622646651768262133878021140242225115514092357365417867791121168568237242545712677640227284059086612328319366767155932129350097056343180580040522639856988661094952707774170797407949128062623039713821207033681369828572872099590568011713295682188130716974055683556477873172254700368409107480803292278568851086244667807329517232748392349109051694250245147427672340951332085743817963504379488127828470430387057676982770975544145487530754235203389136783856531062789425031308734902993359320756956438060562361992595478817965877978490187711713791136920034838541204434009846290178404913550754123859521829325783385216390384979150273779072622537471817818097900512148162104925397057906500389535270323694586740573762416303533141968616309829383001535514715362762336819198669975200967953223388026209796478226124989937180807478288227439832368862684208872871502547862285787207159796057651056008182042750973248290881952118369111067863174132493531111330268252107559147643295950614418881737386971039828858747827027735991692793740698435541544925849539534179998964546312973762185301243129178496839307060689648212156694274343443454039067278870594736523888109793084260816113040375012005001991945499453623300350332318217699466018154297640112184973482190243510907287527624387087265457156467188565871672100795122599217603474570918395775560962228620211251813286666574374363288388536876903457550410696302016508000513726543464645912041380874944375224703691340153939696832040682176257297152236081542397012744909139782389988512018020713450170147705104692749625947182900917092584001911813739886484912078535391940534484600120908906299463821165625184866518030802906423272706342561259525253255725124739492002131014251441335359347786100513819952140191118152835593305483303106249513633377322180706410992412705880477882008562045058649913022491046038437298433513348701529676619471395303361929747663168011048292692352423332468504634996788078162731785384197551109831620296486412861387552715747025364569457667907828695881520713876204752650160745542060819489446636707510907632454984200580743949029492162440979380366549032358648453256632845984904689474060648602457837281584510649711500607346086978657809209324727543273286799936880988121852980125317824879635390794823125960712135231842267186903045198131567809188987290644520681606429356180352232622236290922944937192420792517466927090468533635864358294540538140156632976873450509075975448141767550158991114118790290041126779625533162220715828374424533851633533635778652630708896471283737161328031447428404820259674796534832736041326567750430456780553138535914339182704961936175293537674914596899131495770268097029544742473361732599841969365055506566465366849946320392513969113573938814419499884755780497768017625828135936492174905452314290499978231411866443180964179298980300971064383179575727143351551505139227084830457888303920208095762623952333388258328733620695457777002018452901681290774901961662465257864689197948903670453502065877900296578944927298714948348814157886360040369209332852576151978030566791255533304804696793770165426126210963741472669737573444101208105337802448660445639216726380753409212935932922978543999147002921481678405615512381916994237391013748536676193985578043092110180913731264816141056987158488407930332514341289055190548411117473526867715945995308991424481349943795328037899550382900706332787152724432392562478592511115012729389740908137173791737301933927826649702366348388687946765303343974491407275252489967106000614362121999236515862318983843430604574859970855109410801799760939162071974523314939042929075007387587204499085498332714745132677258352127979378211719760607355475141260085572360909791734353671756549948628464788543933175264101166989178001616944569755234507724493031684654397486289601673800722372460064430016799749681713116218232771527525196066794217661148126977535454371226303126620126985070461285069129748259867676366108887257174696585122433056133497756859588754752785257782448234053685791460489287124933030020938578240358353315920746167012113768020825919050651558127981001230097962958898198556989533061484424271371053324882208503912279584335882889115871116006734759963997292248086890392010265455727537903690627310583208990736181550479084873793363825030741300389623578184857367759087096259524508014804233878482469345475373565089851356669688250487070176571583900432808067323223824984929680646129524980038358280745255723748483314547616872895701669707176707322132898241907807834163354985590883769448221715987605793352717217525498017383179658456672670520356368847630865580345956846737752831340308253962573502730061323937881638079011415316277443826369524601932400545694434743411976076879341123420003035415735089630283203826471811784363145221842356272144203892306606970025222835400278997305643382298725633524582427199138083761513446044655392292010471316920367300324883629827868165040070690747867353095665095603389227111909192074777338843497359137065109604873931439351337153781423646289583581697922224186530320245732409358822154546304718590249752960616691073178019673360508314030844097917818961884588248154052595596682820649761895539001144502956794585750799900831117474611963817730658242347239548362520315481159131170532008287440983169017304478821988708230063867096106672739082768731548206510171057364969582695445396622310555429523364650451542114930594459698608585352814688902298313619887779580409060962998230538656085914602723238636588614227757030088473711115251401393703968338061346013436021419342527538515312381389744400632775163906230418284490990212005660253003791810324735918791653321343985485648959569549546215597316278358408125955207517992809476146236827523414431347043802772451577936937040149892991440782709116061914025617724842537333549464061400966040830667862672642316891768544469847700284956735641566524498907512041807985277679202432237242747232980912893487149648045952372606584740020985000504759354339956101783067797108726953301905792405081933183855502136373151169867487038582480797506424362739507672466765384221674430989940110048947544804827930933649364511912351692913063433939267313283465466426092655497946353080060814630690583164930444726736115100548235938334832804414686925123248418847627442739508436812601860219005005818722568788074286614857032052696090432599130643047840896276492893520287705714588135618133195014888230009822238195492903092111882390661572138646032667170235013474296086098273032069084295199675870488166861486123545448734615675771676005023355144977205601921606342193669636015717574690707660817893103643709312535978378746485440771885817786158852584760930974004199277896619884077316941060415595174171253295766317717683796758048268607438572807543512902589644116280791108335974997341534584724747788199661891634268504860383070980681405466730120835672254780745703932880954906777596338980673686986930896676925182514006533261169110943757305296943195242549335330204075291113108833551559124901081950909107026827552131428273005690284318113838300011682534866983406950898489273029459570651186712922544150348902500430811797301305600339565135394166332120748699630538518959585996410739910412674666423124064574527199443617746583114174253449863148228946281337639282127497372368955330057167419067430756789330441642738422131329389261666521239900796525119421520091140411465395724411949054873442490176016412279496513191135265457307078498878997472579578844447428046414222383505342364054818139085207114283314691185991590181119040062109574013296956475762863086105154026250010045000537723837880502140199704943604888681196047153419036366849761529116614482835681878911802199681169223784112610022872344649262383088383800684311781986958587708897542476419848143315821026336167274521356241822182716552389977776135369949907184896160844644523076654713451051500160042972755752832322679196299019519128820245917117361382681285566408165759843094662832951045726682601845194803279163173326534390186651453755400481025588780133397198168017984216685324033080367700149611717641140665441843957622122584816323062670678995661889580649349098101014124122784796364687072698781303671499629919957936654668496356317617823679654456825353459847732855974881251662832547103550664109940209823092319538962621099121133762767642441039558830841823564650599660797411579718250357793943143514160655498194878198231319719649538723384821899456632841864886427079173999045361414503533624615388157079883457402674991930951407090733897847976884688713604127253150774601335180887872093716813053213487626037993086641021155163944421160439584113013420142263983839826046018186538084936517048926653064629483179457403421605872527661719259396816804003153548265042306323692006634760272521330822295551121258000124349008830613466873385733800623133232405574482390419531424615885327431743685289295578410810797965786048123315246195623177383175384749602815490730571121349163315201441216934261900353311432714236546402418743384578205648858005483251413172859816075148023871927928331188899122760039659535355748516557909471587679722454713638180422858524464402466358943117371991644953074249644578125702841889955846304100969955493943874758045432608928792995022551915167818651610741887627304660673712664524364864790321846949616472895634339932563127034240434493231066730804352303132775840727026504339689006801536700600851748524318193049209968481853298778771544375382876265348025746855897990182853817321462252327596218320363849172380276498601939014127337423737852992427909995286687563167713632957230012863030124591689105029207939072349980141608304277563029768492422569381934908594067210173480180197795114658800026080188676506835625460574275279116148395581437117256814478911406662457472930786803920142778673748854952925214133795077948195370288177591616085267234454616730417459397412752228052259784218201235642523061987166124249244892917688717851050697639514633519457275100163266286196828450427111036199100465743192721307796847585694596226546906106218629628956799581988555477193597798270361898007325010489909794141633014121605416748893757748169447551756782709328563029481487848480901398505271153053095037654135560342833678960835323791289725905822314725181611303736335638452846695487062804195832973589864263193435201569199598977754229357953112386841171248849913799484482142316765055851218824487242095963677985936358805344255212388702000463578700907250054780552805688915651189530073743765204044344551064504604809008299773292502447349996743036993253482204737101960838477333232329373764634929945367762613351303975410314051425381618848695608426290536556124021512778578092651074742603896900563469191496866239677322129780689550852021029495024518302599059899118408215927293154761564501823886998566794077461025328467936487136163235014552866622437581235444355402792665465449689414360869594740176132478087004576881535079449899635827093307964924352786290877309218789952193239258309831708328827677917578296319103744238468064683022869505773308212503076486169529778316850305199610090844586179909560036806054832107477744449804757751080797348411793776766811940114525048160469309768086137605782199489521554091630451579015973428405366376650278432347213900369009550936610077459174636406155887821491669499485911686964902710444203198325336690651074834100408950844696890484670133213700750780908439344180930871384388509386432002997277842382086164469980860662972969526340131941049790921641814633000987996728621171383282996627213427684369332947856249359987571853394954291878143024464832979166257847683420331776230941782362599415255981228191198142676219851290561930433612039488166585170837426383269329766510962526567235592374874103009349936031778947648249893332177603755416771478275918961343411987726346771812130466690346502576171151085982186354254599510869637071254787301829168787878723047408969458496099855200207688078817871478963858643808185200749018319942623556900556945046196752976253394264788900159937158671988753205206812741431843629593883410026867769837758010798916699321254128021859284254145718171675349880879243803352509005205290132277031200593490291515873031490576439468227633788863817943886459898813610129711015220650274953798331937306111465198846577655755173626657100021565473664615455370634989091251620053435812015128468608510294434236526675258438597742506258529562690818011316363578629964172568414462949609036018364340915194860988403988856452530698511457083838243475131390802974424686155949980127139309586299651488627620087682883593491022767709508657512475012758151275487831346403798640600186103526761897307206502602994924316661127223848569033456913454787848826178093849829114932753892400647856587584349066950529998435093128868798939868883681850332075977961925639459832470605413087179333685452401098526440337751947441147239111952899375594486264252877286966893359806783558494569321908751187454969220064444601576579117004260333090973242401831305564999850442543610657191519368838121067811369962489889234752755786043216212219876318582039497095252206048494708854324134102601605597542508960506764330976531275246214257164482606959696847686591776067774410150077429492284525171879950482974354087179009371721132094657129929591643248543654519449383255206722654280848546531477022039804624792451508087832143567652398871650261598866888492095810005960911610672328687055932165772303802891469145307213372919587973483270954978593506616046982497211578312011453501323787331571783140221678419432932318410156120281579354709305716391962631456991560764240095174106176760610582973487611491351641081269104214456118519056833263518875027843015806141830583210364917528481340760274976460852174396608986665720995410292924031615991029156509918983954353298575559870250346753090039974797748302369607177769699953194767256283751792143959715607840339464372125538766077291960877829785296019259103763827022417485762990083317328507882869118776486163403218956558878734302233180507342446018174992139975400836978116237879336116992951662537051820320174784910314368863462179726936704151790952247399886023131217777169400760726991841085954694511021014094860345949033036629183049885357448749958793980107259830641750318069418913524869580565118558075873639269058548572840470565755373800576783825739404029792300459509860069403799194763551769695610990605716844414327547667645013948551768738169478136476435487304434803458584847101165914649907393448280548098699031009770423974197423779436483822319268022513168296612063913682818565087560339920338359386457356712883439058954937939565141808458008151641466552892688761378890140149976690580482054370126774524999329592828424899350700619488370059355950589637275572806343229496387409607092079406520046499797042533060854529343984949740854595304318558046558567090763971693380671689282518931855791519437419512136083886192104629720118728422174709939157641813824620757426112872830747627037926361123840663116923313248680237747083275366385791395195486338650673547005955368206483606018396852240580667703767440368846810648209281638467086159955893849690712297327287795951288653417352054101673077554256524730320721871713815860254880137765410140868686931656807062365298247164887976665520162423108326282402353995173236046356480558464535212380144798764912332594290340824203294235679959560868320279715610290091385582445881686168892999687738855820776066502331541649716165867589642573753368114363094526867480765215939876975935883291881546766425908208946950489864505487719300553912056882845600036831168421652489391943923178025687925349627130509948624449678470078894303364759277668007377267709657991410662555757369203844891388555533156786653466353748078972262817201106954336430940781796464106197142012687560272406657632210591091385573735350701892671151985702153914538597783261802001654413528965267159157660941994602352528666854256626151110358397121145059233316066906090874711999943638602849475798828502556512511295075959693473557618160869650499951244808120605068901950151619331384982378805331786577833115648861878256689671260888538670528934631271817360151884614279326156897786267231944423528972421640509687626248946464767623733008315337033237887784058577229447952774878302210439430876734147089394950271058808887112847515590459975827362110782724273390943075661153686804405467455365692174567979548849246780726468620371975362809643769832917771966444661722131296178017530336708407123937245670208875028913866917725504219536770578299500899104985558717798754979837157929468938288747420752022064191340685565636127095124808685546567463004022589860528429389401912594080912552319999529357648452462372178010267668331124701850057787078532661368122044121465369132001368677142879892335408884291210690656665986734581673218622723876680524611582782046694921164843402304657870000452195642078262670452104151875925351070032491397803476989285498604774638365594408081264783490348267083477731884555264203614565753761929519979469868406793304888008272660484775471150597834852340835670557931743924182721605636457695001252032012314168230133539621291875804439311959818587183896876435744582376098087697993674035411841141723989349703891973326969408237215781946640432105991274055792543752656971274372192633651572106635924816672337055299523490443762135968477573284891376929629309014446033273601751654854732106185043265319697862021116315494164766748843701779378753462119090631312659823515654206372476983231882160491331949518720364083368557956386547101412489699483912200493021721181040105590479772499711507118180913710309020478945024664618838671015885356546084783052105111649390758597905895795446962843917280566170195281215487762992505527734975269492034969210177058957554806542050516485724779348400865864589559792260617085809993020474669526022450009190180279515721701327542995431579772174730757694024059416752629746569976274079947158729138208492342278877955462535435727465072899215493934604505263530627217555170857775002067208475041424557004158362761345746923618238734360406000922859679341967102937413295800534295727112719250307503509939857431838965652863202183294185766499720543810818880905744606563567486357677424422324618797673722521992993687700993154827215238648749847675080260405013276486660023985736878433972207743688643512335494299268658456699088471901638946337461141235249434859113083736400604026782382795347105478806493325086346369184497192829624047577030932154170570576454671529461934313344730592647074858265810328444449527084982427257031913402932434736628535779527677589218519526427823665990270759928497351370998961838977559018659479006937637735844032214245384663893879000860784466542216448684813002239068208463245648460436171490518929143893170068292976672004750256055847533792496722641337350736384694728806139788621389456339783721041169176564960107871480289935434839156368480067300703222188339502993800070029983425506782628076696281107523827353221270038703165921470749559338736949846384408194338992027122879154240811523000457500670388937444520249351733282829942388604556312280819233483053029482216878062435568135419666100260412392707484449933827366210277643139842571444593035839640615770243107723151688080013782662800112854895000362290060338481575142849082859253348951528122035190910273932211169696947113208930104910365725046285953942115524925376859050671924989227137299065660334057099236474985344070631589962530607739081068951383385333753104816979404538001048136936984108610035587829047575789479168150814691143683456148181462792367381300015059727855859725749434540535900491820739564707397393198351555337290190395293277252599981525981330561062729214451191778984539377078239940665410929077173273450721613437981511073970810784612826761188998940325683660783131512498659032254495745448558193536151687736925650455229190209657148753325657758286207890333804696699144800881314658581687152205377734776880935203098070837980817032942624579327991416576329668060899725646776233981648590950207334905061313351200712944123391317640359308920476494895734183280347965095846551062760767443311420620972800583113360495865902988040922058868663490365123041749060674288117036487087167758115378598417608917620934214760447132818630587594168122827765860694396241251730682854862025907507703487462799401293291719349872464006997014374502806301465560853519450254170050298045126719317461797557058996057280227807243536345287113697497194566685980176825331611423662321622964821243320338032171120215003870988202803939763496873841865932190474742959978325210760068771528799641259934344367808005517815551692733358067561124719423440389486935067177905794152646848871110371202100874995323269482851762653556505958211323256636596463831071363621365984784461440705219793543686517563125229419816894737246310288119203212537909663780240140701147113124357299041627834843681611309798518507833615781285473884174228387585247977792007737434408504278929643407899211878943244553666173067547322168724521822953702019894274760976137966127200982816293475616693899334458251620487104364700303704449063658850605684050376076799351840484371002164560692560047227044365062323008271724525746234110358080857088304708816553693202142248054491956698942447420099795492739023640764527035108384717185810885906038984479558697560365789626620165360740702528699075373787121152441473051212470053762140761692105614855193342310983578927922776551148570171129394012341159830369375169104660980668271906859747606336662581071969642390879638954845656613540901921542324569808999854609931974898760082654755924510139381351297351225737053026662189114126824845271804961742110299682136246203322382951369595831238611119603517315979575215337633451229420920571444765001280365110112045709153292651773502334143829146677526385227452183885674373823651753241462387952040843298574594927979283367051389801378052366470229842306535762476119920957820475669589786063462103396739265806848953985213821662090593230591679729987888846857973694239326930352813864592025509779608218182486884349011743651046603987611912449607388359507006213035950749590662695146814437393019890219397033447943042333032359928344669205793742794134015890678821812336969587383979245812012469499598697929047088572727572498803579391861670120237243942352609488263543491040252329324005735153658484489768828148895108298455670162311887867483594585680963754161854814377466957510802417282728035741381060097717737140930038770472169134621973013842343909018607425957806057353018883988001869935732111153938220778436020955310100747698680859094113742786698351251521060066436541653458050520923586977908263148425561093227160113720045413231528196145558305096413891696213588347088734627602329369767359992303243128083065985716627455723417660717037069427433448003602246275307977351760971270980799680706552356171205695311668958323005647905601227750800189715949392860163496347221576042239391674667878946109336104259199490260832810248488420881251806031721430669193183413091816123598878358388660384185491094963303725164663551757427309125785564824847875303024638799403355022708581140207198090250509981548462342097167575010394202769713603566659998468946459207312755793591895387952926452808833374572824603046092281320246159290245007921170378742548816810275875791278218143731409960382599367879440670448195057984994675420773201485282010219880401069807979536501444162962323458917596235246493869952440106481246436015345625117969482317081696653873211533119566826947387577697350952306210077207301320613898502581997705227356607907440920803491952639251240808174537515937818287642790486665945716457933164138675451817649562532360849395583281382150394823297795653702603875202826077818159580137927500581064765356889059825261910422425249830411551398921359627871964129076676763629733560791179871420190498196408310115935667693065490213644348297933707500907653564396586897878029945391066175129673622142301849780828525846756945606261038848846962941509887964124824661559403255098852580717136805598229128524843027357466442913161645162861736266307049804093476834537672688345288375313248699016935975350211399825289435420621885297133653664831759142946547194716471720174933944808955334354205917768276996054434800286274948091470585371932793894705410312565696331937094668550052805288000987700426378840473464834037619811229656646403855204294630498287405563834315684510131999034342534469920947445671940381898349352997130118976273116153165139559951177624990218403640920965319963370984524464438499283843437371901265179654521544008468685479664907346819882315459243283819139053933848935663899406189534620581311569908331800792213891109164760135944045902088531502381112282411355313845857401778676375971364872605625077674567534817912876440339353035378749556898638108698003963801368632910462936216285936772379665921228422988594977113089740230216306441034910019723625914514035636716749510289871755878683178289666521691985055999030311409112635483285332078792592581858113595733954179645697389125845426147215746366898309954942940704451520827225564839886319348401004940850273945976202311023015731065370589661462439827261321223537053037075228314810043269078668263438385869611054841310890805462255272237081146395948635536450476721835644502374169048292849373351684791456295286714511030881371285079264691801580053357916440696934890120896676853617504753430752314711549582046481172027907674951296370544433896243917320560252703341702693516844931576226001331157816381238089247488735821731132197609862039385719520942879735521845455255132688083100251930859263534306594439017118402544793128361958040597722223747973625496964985805661897769867671686099561744265769156022022571970880427033506829903084011936179629695708718675365388979110422462599756180167075401524654770490672805760321623786930330178451255353043971619734069472146258726549231717738318787424031410750732754651111844539612451545191893588158595552531665297992971198238553698584953609162752322087494293835648054329617624653881038510439673335183034709114085439868037402963444592256731388625161884307753754362630233156463867704086823237971389210575997135719964784188257416485803897014004834969124583524782252617702205911964257667508281150828281311733387457594190762727709991239253048197072944738350166441486945920268914291263561258073462528345146133220112824010393059533957006409843194684243030915714571314798683269676341503807911309868224685931824308063654671950698666289113857326462546513694932381053213767728239423567719550946781072488323655678716420410657021549117391344713337939401649251272496575478624529530114924821446712135426733696151015659974084420263047651106901844245814307634790745751096329054439963701135663630595777074489428076690527720398427440248174993423987192611928268621413904526589376313649652109029098194671211451901965600757032573160039796305713078568669351983360497137053081519709815088906475307969166597853320805749813730022579232645257144428372794894935027315070145711330052891339495437823289457881082930316342439160501033140187758820542255632250690642867720716655983442998229521178353383239461751630768387271685937102967777592642873093317471754114956077112212646225850640716381634625546951011130090852595610781854918082963559909748417051375470216007674263890799950930071036837395630838867196252652581368645483940035056751610630841279376443132782593536043063432229432315496321985986072699469875169668921638708323191843671870236150500368728743963785626733113879005242286033972789000794133015004141066240355982388594251950741450139056572934048181639325432520070458990771675143694994888125726212430881634313963107507128541266721061012884666196394413004221391641862737614812632435401235470492854061279754448521940609665783402843300661063912352030567077401275119371479208400515925617626149618170213296486589643511280539117627465585541442542468316419064128142821580217599921584826327152350559204154183262879244758628188378461912282672103094649817966440152166768305019587367572591471201125362515911338869551954567691307040591278419248375820535905080587499613295051404006693452745756242268898628383247615611622755922638554162582943198758417589585180532897742160550497073509270056036239980501340521093459937472719011273623760153646163293754257962670595410865360292957060545668098561237200804341257698721595661456379315804434767194471226289142566971232864793415376302999314410033536985665416167531031741148842706814419679830434530173143175691985634061121754426294608865134748686210232344375476473352900549453275867850379298961361468884552738137416696198465868196737918894681186668791096546641976330159208949227295127359895116835601657591892917998202058001193660088398061968855506835441178708812403918347506228090488805432726366952115857935356581848073834046375750141438525663659370649853394030993678521785960151832200565729761363031324212510601226841616521309191543706374785674513780840998312185378650295448932352999717813441608856255984047661016340563506374964803833278581687023128415818245920931662486060395014398327798727654256235064778907550452584763172268833332830833266355091275335600606622634728318077810450946320498511669335140547502674088580799628099649865011982904319612164329244946542281549201179190652909260401629069184097594418374341414777841038843251101527406607046855591337984022948261028085197785311724112232739709254832809316879762419313400731119325023623877172879785239470016999844172459422597091110630061350762483681549653824305233964064548257449187231470624880548459494879727283507403355711954867947338566681343596310837718060309465613432715149372875307182288482459142587185245071596866579860563570782146760809133734432104658858966719511760668552139873036636698320854372115644280096541491899568177373516189676486530223344049935915915823547244154497774267951086806465696048920275283066736022150532309916833980212834895600586477280619484990898472434380305901993350479972535555828803773318609059855111524222294456756408465189265825049034423245839174057916404465770094307134681604798680386883240035871806745208028041966868824807283439038996542576674030873287067608197666362356157342736818409772619509375687179716083399537051781912364508764143918120039330774605449361644447571580238493419207403719955892593505084048023166541712273805699534958470290624368327077244268784860318313155632727362240932970937206177869291065154986229736604989153647084369299407674124197010471722587813570082199386088034995547181331498229320967560146493438894342513281385483508928691394028777780191468535624822583667889464008126104878386474843100995682204239588185182512389985021829459479415333664809129622826284529675988284141299033828151156986216657006466988010730167673887931113897893443434613541184260684340629711438427698785483216743916855341615661392710675153322601182237810504517837901220658311641991551269216695521187410973667647625309039915622126546220932520356212559954380045817930205423327170391382930388487860771610877661959924359107990358444066674518083256110432255949235438764574587268544519741582954094419140484508138125991775209668277663138853552384195332937543475550806288525767858868197296102356976636591433126112347722070051374732765401916092088785942383114283855615742469725869985588110504653315477211852477115776372596122156831045549652320450581916241282691371012284627373473194532380578975849922723486314898459535215074639978338363361631935622827763539754724418844693370098237157322142489096898359655759812260506235477720553933095282178583571442487257599098631873078332529629737960781509706412121836487864567330638832322898539570085964871741131822254831151368373913279061479609511724985602962610016301586370716674169943395810379437637385798275850317410126709125320564680713007944366791607968312508802578770047020194252613172246762662729243822951694453130554405136909110570175397897931698180003225896842698066930754166921194846591102498058376440805956067703037548778420719121342284073200651040595515053581744450628430322984267634692872615973116262970703159105644065552976346766676527840625563938552551017615413497951073885796470697169501551479327170021844610392613643979849338087912225626871349141332124340909268828366835207536287830369494260197393096733096410648600148569463429200836897182302752826924745863239563110667941077898262061734571305894700176893290056056549020732166056050878771809587224325832827846026908827883016076017561403375071655324868600430759676272301187741314198990389069080741614048319371975342168713749517425538968097108795790061655069814030829830039483781219250128321221332818884055107594193345492921685801007350952993436860476820760563038992565927133714297255166272960281710809543209925126222703894270295401635989679615620433842161603963197737534987537221717585644183757070571697302928575910754493987825157275734749256802310233509619199452392813709979804360666483685138016893006819645414760750121224273581845644970726416113435159992263884520241011185806662286682925655836162159899222274930685498824915664971857679186641280580088388637474497294309100373487659169561906310131342099924547322445435417151394502293760358427903025447607801784241508032453199384900535538543759952915780553211853709867038290245754880312373878200086272882781555983422804227787756117419579803072025519620761706961449530904097009367658174821947012103835405056788656522548585559242322712406090356709777405226211456428262105692916142493518853180654350408355744620116280877553788636445805742298286622826424574338396488526786532037406156117477394486499464772049172273584213167144770078166190172217705677573163742673631743016347869515367743505068111635138629684266736643260403273594453464055839803780884420167075888204545724882718119037735253439434793736054678151053122292205071759240083237422972864150378655520168903002650909930010237827518478351861104685901489675271629733318072850343426023545228854782557493205398651684844854113263876208412581123620354936466747242078409577034203033261094763865310336690459772923999151644975280877899897177287639849490925748585598557397471183221161046487594663495785870560121935296772026472036594366091485142057381810913892530125467888203495415064146621106048429944751026247895143932475644085590623442802334435546992978349376414832843003777040137311695814103368698637636252202343263701264727212863192217438609651535889227139674666667037589738939383687936416349980959564767571427404738257382041896941976522861307279381692499866735933197282217435038397855489410150980335466915630667673551814177288330263737097681347766210752764900181916307944618990863725689477663637634407420228476963919058908539407509070269182787237957625532499949264359947991559233714204595819045222910483013188611273126085818053478638221232808744424110281257072737866187388358617031078007709387841939547413538199246081882531114059747174533247476034497723738372918507682838155442094393220978334103244749517579311175036849384721278138402799174679326207925308756657207533394193651828101921371485951098667989442930572652301724278931559807400674488179045172500178401918023382618096347218573010290479095342064717767416806812686875130207774065863462117606498566235908260267646571120204243125125740116300537584077069352116852084657789172322052148680403309742061045593448162430142996402839823538951480702086752444355013687582481726982936546541558229210823462651403593276602960045044839824353588038790020371543378475462228620685327269960454738167748034801288341882073641293475184357785817686470463702236806158745162587377110419116857826105918081164186201431994675439679181990710822359030691246572007397010064523144190333579953154052271589474903516024446967948387622345413780085559527659431161776357676453970101881467038226942424772988554036296622015505443125187040656659745933297016915413708279897056556294555053513679254249956184242120132765906260200349905886377591796237510677801790612203843877982971581474750626155972498362322558869071401163671494742024548873498618301035356757606051081115033556570091237121923225591205057456346972864789077942914001849322023662206398297398036558235860499238752465701735750291291653045287146540604055568908224883715818242597200324914088611767534529189490306173460589228279432748742888766378879966337923471562168355559416118430455137735028042448686570419022617078657041940537108936761341362974674789991434776614369694197476457299820995086413132194707955627692575895427579533198031594811647332907827572859139445309803466522800526150039673570347568579819975238631464270005191204697776376451641320849267655750113879594317409924214388944607642881905015064765577816819820752400473865769793852697085449932095664372580663035762804254602470891270349793308827593510382265569215908619388488438188100139507528201392078300741856448425165821015232373677534428883758157490098021800179404611034549618317637926915137267709031773063792370167246871287193421634540711697843511944104608733570510291133581407602245302032496254974819206100314957847874651512095827271644673061450677734016158507983302014451950269302886244104007139821649099502163791907221526439118611617188727405590283912883465808180466082218856753664564393488206725502030561365825701021145837577415482941695054371514548955272977230607589944375870909008017661762882788067849717362094684626509527718282508956028835960391361280318171203027827386337939380733130123605670179281411955782262650515972741106379158243745143085577519094240805462387554933557947138023782308368106169453442613651128003557821062591225873541685461399358571458014166089873077053402837417255541200147173171606834055709216061961307301546736193711870528691990686576482519775723116400919279060079083166504495814096188692337959337808885456328856415483649080033013643553012878004107094828836281456358041333997043866602968962100256967101766648851297290299476985202296477266922000119934674796908225906065601899216602272179711906040247701138072891042819417120174458782463689288672227920741759830430058402962298722671950203001822951361089622013073086354943910082690885689554628370004282176118783566520127967981934361449855524055399417765518893726677530897440359057086095892532921604174298963677030103699862788415321337291184217323784813268492150949432363890496083650700986269571389395893451951634910846244402351204989899688051432421680122650074438294952655333083913899470619356348944079198709781788505862743088512357183630209449208904109092687600326895927740544937388723717258607504398549169962323686851175272716289528106806334765635035925311507899726881097287649667504014562740024539052297807640839350855736122719412450142955713560486998639725013161371899982896524844583764192277108124037685438199699334198337303466250922925347870720411363373685854822359046890529284605885432464671993164805904896739212327796891360808522317431225950945100731280534057213599444709045991882382053483675676535285602440833042374707270965000587410707539075754048001524915423457293731917684363616639270533170464641177936875335031519409582863393580244029201799752326587372812533232165284866393664383325829298446705060712645730987270096216464233395916252662351605670928924204098598425103074287416580339608160625139980566345773002041121208356312866219046703426692994668597181270646172459278728980341404583322650013622801326106217360220420226516457863237214657492123029222459284873095558054370276233508631226663575958938434928061944802775427958085111256093497859570221338873534628948448280849935256523325375166361969098712350556684249126594731210907231760862648832065569537653482284187626459262697453925124454631182460868229867140125205106541889165243696640815445651998222226965339178738142614410071551678433871285407282187639322930352625606903977800866501428653554038804546554006707772969510922288266050236391520509287261025035742975326372223032095218050334067608947037339610450738881616465654799492053754215947306049553102885033677932383940729032596707035640796321906647326960994957928525055817392217145936015658913298683763670709235012089342786610255921044438900558364694466843015587365616020641232844797292219223098538106940862523953720726437546925411931622855744237422116192965652661507795693657310510441446156129945339057445185857695177730943885407820408204487629054297785999762069106109065434454801814207949227020206414938355083248846347323600849534343254708235067345299650395711653052406564845271884298922645567343968547118885642988403457198684033824557434530259739135470327301774964142894714610354425593234508053967842162412995257325071415813488907508507373426906227179878346052296124113698926108293994076969824643160398325508652793983214818515851851754118147284727846793813227903939765363824467399689494524877136140795607662493807810994168277423743283622636759218825021011766851502561978099467609647310148877214625010624369734643761527861967665055505932433338601947371298059757057859739212792853766693776960912841004944391615965503832265439269066174688126424323358286721428099363216837117400353638000595533564538007596458545247539559900395032757509078632497725764346577381556412350746023414906315566768823130090638474640923675876135274102970344913094805983339583738753105890616393114309781297856532973933325666003326853883348623494265395929546497802739686464917057922851371009865629263028422692932205745782087749953465211316728072602725144005544026777417798760616950918168940229099533237729000747660575105828261887617823890456289633235897098699355932668927681791267609435042736137499998875598771920986922472399657353502003536851787491642904373407286230766912635432023678900887254717570715055148347790201433758906797517481541563130832866947588415930096062151169297067748691165090794603150177070612853157335271061842610230100803020886940957986931009276588451886604882721404506310100917389771706187747293752838279850542697798137624186917014589448046486025343613081037241524463237258524171402396726493398110889998624571753252608942719689995626399033271805276081176109829104642968497894264112295555175835455812259567903764903352708514542294050129177279671947446591400910521938586651878931721486498312904037626919467775829351566915944775405241416180559848155909228533091504738277304593832895002142393420509276701899904563952024790321417006659093325317591441671596831920962776757997162246385161196450149288491732297867132598692962383501557843876134105166382995759644180812085349315565281566237603120705600746800653131130071104828954707179085674909844066384467193020185230421718973708771791667503800177319324242767475944402130573518271890167379857863685237446918821139326805375563903456501981383284862568059910120841425517721134871649660293096709745057472199119599327779600437927073044609383489766091957132013099448461216748695578608635029652063021928115870278425731978341703604792638159182521804511787305826799828863048324115339012251205279021208689513109805298852644542546277213568474867592868674015617324091163785817529483245523090271921759446739895540334731555343586904133168315337061606543652103280165225320484795744156122011330458892273099227262352038019456856266696036425948542242354275422632844753568625452388399569462952892153402818705534906786221668060629695641022707210852792081778308502803356504947807563443870734641520677440577275584372689473153998349628391710094833245912565870772000107850641090230792127744533443291793219915284511047940114163108788165908313837929303153719198141013389296609831815045125097266032940947869214781548608350714107251564421563048930328873019150364124494218697565682289527604454635627848445925680140829655262705642014987393505788910455432099340732585221340691324974156686189363219132246767089325450915355362969944538359213164663520570638967562576998585799708615796593022873656947952286401447744886744095122451421709895609425855522143446557263824736295694704205368433350744488229838516027208653461737920254822410155152978984088724986942658446279276132342435337396745056982496355210740447180468512869556167659998826958257794561943416262549275484854894911742024808292964531322167861476004463595378245558238919732625454648658710141069914317277803917276186472941438405359877648061620332731420593089109347515865423863318220855224298827124823079420264295526453570552338612629428388204609379885502718640643167761176639855925719261921983789321462408369254570733250151477528165092567738068372734040265952710496601955102545531992709705545292055151864243753500028461230193793188361910285785389453458089928957915609050890976828694955064194316165452045155659553443460988956002322722909055216973215341263721498302120683086384362170187600112495105571646572899992228925338140472359647742969318242055179697257707932846514017495136744135040252348261150895577344384502722708420009544890532107400885673365311753730237958439646580713647804800042882643756586002998640536396710191332215699796304155431142915327407401422746445977866608737340307852072566146082306411385337289852928494108280205388112423906630487286698131924863213742362787138065063296108101187660362476278998429621655662808949625818599007601595757447630946521800159591688993923396240057939413516678425411567178090904561991662764825145917816960787775044858716407283779899096305881515643368632243640539141641245244458630994143546025609658834940999979902722006640650180625433414155070990889188356297054890921015571978260655258146076836573184520170239362090379114287004203708837560142190171799498242237720838590713275650423199889649394855462045174566172299335140900751721485713800593866239647978990835305802621743761919033460526514976027323737102713926788219100366266486772381082428854216039878266991444544160655521713859398107324520735609225017458472401298704742301186335055829712898584654463359039076713602585656414819774276649866861622783116899664919035473717005277116509231146909856220087072486774175683594235525121874724052235613907750448846028608859103651930776611523676655691427766203589020195253836377279284409079909563871831386661075012024188479914733841625100908726394843409814026540296584063046296642054757247037787037603545132088993344779578756714375886050679945702357060853573440576069084952499433365488763694133158168691977566132018057514446025214612060091841507386027010630566509367578575112763883350985621090019802323267747116306345452115265409024982748520446358503314634189669767745951601958436921691225477724923820077909664543048543584348684739786666423780791848466174441500829093794473342070267723962966657449449421702607363638705155211456179100507572221258917582524390948408629012317392208306540802099960049931363327627121784559813283086534836168013311654215354778193274909775555399917923838094185099775005314490204823730633726531795007676180662239305603990726492087163110559956637579223664779582462397440129399329442711047784988802295332101307876592344646295126384271355258608400121372673801732811845844236797038102759012814614026849974528797550691083206944035276396871689531995995928030838446883334690874520578597226235064971052800708406717752684958484108526323279229545415199284483489259081713831128103321406136186054665580372265402656942961286294635428834905044841506228357981307999212753024901378578652971733946347977479565872801459930227644890846292103635105902000298688399880712810081229326455256053389148009696103784138915220109549722527446146114239106247065123867627130381377934814276411532364893576112088684023043294287902617709169721698322072315652622094082255150747176449859206553930228671315870309778393217482496095133148793062462095868438673663681466526265465430427311751607675286247290071719946467830255322898539122485430897964791044864809726323250220931178636089609893624621192279520698264979365774299357336237924553269900457356148422337222090441973845427108564367468825033507984257368317062804866631810277640396870391347995652196357270806788198840193317861372134473562714825722638425590245215359693171388485589638235847337277193928708684689368865544393006335088905861711326279416893158067789972653128853108888380015122112144249484189348515482873785097221937168643500182604992162200575873317124040727430879144728873220866434130830316738458099000559262738879550249582936043272763605596183870147210045429825354919764870347919008842490180096275004568775419982330560899308583780251945110322233124643961292221142720659291327280615661803160737480346148472646851240915278521614449009219419283181429126601060465117586878000497977645157242223272481901855051295844522964170444678975507883582154385867286955749099903237798838399766112692949321482001113315801826337285566734499042761172424534029644778907111480608985433722355386894011602260947044673665905771802621727335603038751183942848571651021725819949197195469897533863314707714682329814549742217022063581666218310042753509534497080753177888088015995041778379069201628615701982111998122093134876804973520965756462888775947698957999901544985139196189000279244039639808653653771807384729976960584909332776373235236830594602226058610085653313870846665313603590070436247408383109287764187011704388225018851865979967194403789935791930095180190725618809705248749641530121792758347218610583545305575930284566067728746680114571850060770689048520058209616537358550329689457531885309246259853096387135237345511815056283193684376987407365798665568395452679467027684537340110492356078131638735092560182410478535521492333840991099500311517875019222039972029877008331088572648117207628233203118028635158371093206058799262324239580805343013738872574352711916642000698896103519676435513755741059750195397087804883772641727626368729567053253959687619757840560587098448739619595750423580937860252924201745737599041693607560304365687677436271653649041139620704913953866268303550227243328889866784246391211398661960728225259859180446871944411977283548874067260225162342772690329064500966262257814977566697660387502714276894838541658367862925855759054131785633100076248212869342507079861633871450312650792311886526633213890560363160336438567014341003868612172892623169328799594884467377316062011315115476997865485039884126389344687015953418722233339243535320593120276037396696100518474177994903983403202018772558727013069629503137916066032267463689181064778831091932083666924775584349413956334339735591083692755228830829166640858920096270014201622388814767539707598269245382481207869339967298756041676100475449499608276786541133296723409713873662367352412864181552165644591192585657984415017583173589502340554518103438521348233024170354058928728121479997856491905420559760568557541636870836655095064617519987894310501475013778640711348430894853351081696188960525878045963303986542387842190861678047126398391243876548933851317110418546503214955423740027421062027151624487538824946031393121658043993910366426657670958273560451819621304468247229993264128885119599323699788521767258952471857414935644759865786714902227731985716258256310204212518769311490443805903402359272796381946757550798127560304519559606686412241741344358501051782888244547709806222442124497589110836817186106073316895497395410930368967840796538182999771775640625198835454108022724444148897418838043023276967616136763978807672411303110204126368963809308369444676565609649755089898038547573075112612209201773440254192148898149716551955228740071349377026593614690023647282622907319880239911457398851729825085040155730018528331169810935263405983365079692747893587578826616588835397158049446417225308307082310696677752014161083831147292660114218062144757694856016082367913873428354154452970173919859743211721588113376375040722945455171910804623165176043252678773161475770731247698335197217099752243728723390227003468035035763522414544791050348861085199125189591138240128808263051020142136072636389088364503887287946097491915195975083492049228344783875607638769867355321011712264775897935840300332003184779911587079177206863806537825855013218123321501208842546421542681673225326216862771942307240990903521330324444307995346309682856035819966736661795056056314036302648234428065516377325917546327232435484234370712715567103813782680852873641358212857883646481962543333761078192863390243423236850426659617401891119355490875831811726068060370543003144225934020706994424460102025550997936427278622226586218534283322556292396873290121189534733015133434394633608227546121932524131923581517835024105647025585154722045917937964896628351453018551082097294267298299664162232745636857642044163098962639364464908279321844296726186648447988047657389546084147461181208157562634917474890791773100813472969341298480114443440681375617211419092994784574304281685867371558254921393008008932188760343718516975871461433443316296691406035417180491798390387962619136688747684033064004603984462063572850585850221109920533776151284865124338081143175839433934526243395513227896763153541284240315319034204648448824567764679379240109837812808650590703170321518476679540683829453414000178809277122111926488079871550646079244316912144430032690509706955832242625514156981753659655838693968815448836344504185618584584651556690254954580885475941437438333669490954867147616347779371761747330429861277631179923894213430451986275181537220012112062206129208138253455644252469554917789899655654474268041031797942296500551996256260790658504017330049400223734182644071357015510534865091473764372368508393354449413402569943798871803715915299039869653626524521034942660008502437423668339233197548418225660619114512870652296265232769286280835072584157951976689263981381802828609853970435706618715251413026343197336184507388075866763283050633498697406564199904392240767472188227460037879018643240373611496568815201609681050548669113958662076639193772993530340310744236312186368369490398540630199989675802078326700068244540933603156710977465423009858118205918641984945001936243335191431460416040921819869325272627333183737242229440422209737968872367911695808784276562129376640193127960335631378469938461674842828535834647913493490484957205075779315086801092587314330255786646286813565172340305724067237504838361988803858825846435620112744277775821893395517707126430783075609718640429917603152455594432296882382984287852969319746775580705074901236152949060276733293713504279198513557473502878634219693234304454806415105561659205970354345609071991713301085516911490532296178246087888055801159307665218598960155065235574331173828505786645595159311846047073327761229703148083825170604698282417205147435114488966730955772747845560902487926074167091904369843834786229216083662308908929715469968945550476861697659005370898240607833886270535070970172262780490699737024776810787572240567573325019204504835476423424486491541725983383003302942972729804850564138172435946627147781914904770199768259557140079019574427322112830037779525000481241637004599923598906744441053639738540834301799423668216587556261594758670053242771061667246439627406348299110453743201157927442727504500903957878194614812795368062339670387900004798246006747208654626071480643100620506560322465484586594720596938028295083001614442644623035063483250002897178531137774686821214905116346100673290023507110526292476829692064868322669602284226396300252437062566845497904965052798100989191379681857935206133411844623615788446216143773897007045231742304064599713792333510939692005521709051614326947127641297432554298151286760562537174454513096710081918194384073468823918636771655486541965211203724412372111570049641619061522827145398661486871552169697863269602520121196579377136800411234160800121150748522855599313988561575488594566041884290239312688609327873520415652074390606319722301286480514281111366303644290695124383057938204735488509518683115493930479331358943460481497472711419022468777751937011824694571486744812035740768250340463051395001451079245826577092689532783727891701488279356565979157056889748647135828156847245116487881163442087450180869861002532598867754763330219112189761835756740263237315995199158135957551066976761323161864773050033611198689290208880988046243908491728565781702054577490938258865366832177488955464724914119761395371293616509646430221536774669682425908749483538138807093013560234742116442857287307337459489660638571691857054544865698644178847097436432009252600744006663211656048540237229184350993481578590030270098618249375344333672541846954172747758943764147022064960489647350862333041535970778358090343995306025712327687831987651334134494475352027737340341125565370189212268710666399069010216730623246503802914486763312713454768059367950789107332893607802888379243966014790750975785050195095741528163997359646374678755863857714475233147611479536633476149306230420871693381071685860174007508136231758318397568917680248829354839476809712731519201192073848446027791585363629173287990263532655146607581498522513770737752669696174951680066370532846363322887321318050260396431563685980407168047712445989639805622860265538578167592967774006776548969619457398351986101405146717778820947677995004091115831062298676443977776049973096769980821764300500679939739401753060123956307264782401037191799321863767676696693152350774774354322430764219084520366273540134601721767247790355327002407474283823858356231139961874291519127929739704965056209567713663747776139668255306944909828310372847852156427451706566448138586063537867096425587403986650289630839158706234882368070370016540906096859965020088001967371246342341330692260640258440614119997318103857005364850454146700719874772389394416429570734261966814841992869015775823897418832063297514764226403035314094802109927699083595117017399804777344756430376754761802435234017525041804774360988272437302131587588991922117304657476938209584747687001379221627314369116846773295551625473210597025806581534090000826645543243252950373998087413077020578103992107221816278419112728836793969013857235431750782199744517212446428697738893829649379540256641385626022663008099601288533936851930116050469190802177356315387406742287577867332378493382100528289096339457833510392904589419400406822492901036869805526240230311981147431866219921048911309697892382659014784459923780808647785475872691851074676218247244112958594792425081082523211670411286038454855063877365772535504128622426808464906137132393766468231505731317954336873787444747821061958750264250955030518295605687551748730193670700902419317514316403494377542461933049810017293748905600852545782333422304556848565038728891768986529884155522333993453893125948750705311902281076286262736674864440180788941165007240348718701402958549898869031930809951450538743192982162307825754634012229359281663445665304431217672934875192344875201172355739849028921649930616073875014408972079957048052211493908744084326921286631978721284512312637755767491109589892172891845692932930517088053507601306907054224072806344108345303852135535239856123337683401821480076245191877496730163067811812545056958332130730364166656106358664408707345086260916027866209893610611898209876563752463385980264203110300037464922807642197235681179746201380401077126634946152909706388942713428657356992417016801850895992358273901067426000039734984386417813361419480454468632090593786480489812125157217727231345808571102609923155711903504155127452021493325253943278447692151553814298784438687202338486875351834769010305155725996845241145825964056289460021410527536031830111808605980034267954109903626431798674739907244283428154525270179482397141211204077654326625451421616426661452173876125396002565749408378200993383207600054628359199349890878002218930882575145874409900852498369257998038536480933255907396607905928947540271686331762224682854949266194273274137122678654113243193928355044579677636371543010483123212895454124919518473049749808287454108345314887859653129992972419622479900809418473239232645887583658265060263138350977279905950660649027324732487378988309835372616298484081011420612462167911773298987344494989621997197601857204573120715535911011316409274955300154212235293449761580908239283109810730933985609944414909860750845344475562986777609281747760510544115221137866444406329921407632750507429400539557065912078744601331607852014479099354817598357120158132169918066090503009472396153967218203153034723589666410593424187717368993287608316799063235935685462736347840596072898437339825418976741704260825415785572294265986641030620709659318181919673478147549357294700124491577945810095424571834783503071109634421217382723417282824077857584456360786213166156994384053119294396446638158602666076552673854881875046935935466733470707549260430001040306313609487760112711951268098006271254183203453182753253197789682064251002026346013969121060215569317545121766260577472248435832775126538521633515889657301458332799221100453217823468133774890678125587712881365695382282358256898831298306983334361386815293431977782852725426395130989800459083750872732738515878996732830360359670789846881138759946621777801803125034854538692443475057906183944850173350899721757686175957953729220696663294698932045543254027151447879211786934055866149434081950428526268511539628918123498856747354757365025690658335416081570092251076418659782759946851018858380180547226779589327046183772613218494082240325112884654288409969451074914598109635523971946579735702023743139559722585672186439478166862710066977612000545611436208156281095410031363446383276127440042408113966392636144452008629250153622848421576648833885792972739688058945941046503404382524772578604703568005470194767710673873870485951355674301065580850168013351087345771336214472798301937080243353738476770234760470659320860548983849304862090190909544197163541630888325101682939669819169568045594046555000495210706061938627866483359634661737664409457978759029532512467638612493597003031408716147016995432601298729211622360991987357562930760565354345454384430444911790918541980911627652181972927885088575888259571226651013839425112422314962930612606768833556708132864326783936332948998000218694445234701534756723086207761270003088930060061144288567297510203913059770701282324718012341334923771288779615907442452098211263204599946554183856749176272489144752103641902439618643093089786483925329580146494179649397630120705737274574428427535705449261461647011569951141711098206682651247716158257606842565693733069894485935447250124993468015492112010222580632282062889145899624652396410815908151982674463105474220593005943066972544796333561529740723715247900541422257324686358079479465912488161038934614516046918826609093773292406454284233473999274687890389567133574705125768352388312694385007378336420514159332089757056642416672222532624456602792488615007956350592763469494898791394847442960746889778262311752467678520533212519971735726988151605194739662205955459439033161923928671571847461698988961380200792204598044038821598669122155093300390271480496130003193633418590488567760950692520219058472939737198455963562949361078552712514439445158271961585334730053706027281682642194641511990265206822061283740151110306595490769731261027222666556880391773877174404610928645486862934029111983654147885306898396223432668186099857805222448458887919360627812981257228681605126036762612281674753703461587918302221839328933361520897288638944305041315334887559106166218308166471921984685433177259165994521684232206243885755708641007531316806102554760803069227498530435978216338998076650736627173845258851111253717682010578567149947356453528683196514085144889037902066494668560129777099084909204691095253680586758745786200314105176833543563180670069983184923167524631363125461765697099947743703593785153729766193264435083536228042756544676889218435154753518318852812565771257018154257500645307796784410174696793932562245775048938047850207662882903180905578126654712577234982532889667213852959471461425431366227854118976209188535561915071481360159010912270966625903627223308352461948636155458979165336174335136530185477031145447346017261434139501965235499655714795824421419490967371756708404026150670826089502804879993626370707264939027376914059453924263306285849492688150622374551472391145184341680397099584881882520302767768358433345814006885318431482026472388792670512953141306942610152218016940711310840881905659462882612351003185777262589525139545153997231767019104162849958258513840021115498065633980683086681472405302368053843698489958503202841960676178809710618417788051509316319415698152058665661535031943507697040941624266383435938894375085776827805906830737865095228896421993192366288819734213816851542597917400044743668609105249496322803017186295121832040808599753435746400813646861034302066760963852259854066113467659082483662397719068592035136261076924355217082595439794709680439735236672090025500782702943624505528347893556156061663384649767370622695011940863794575788897797355564224713216949319642674371734212561678296249866572965197465594824809275623091050703064872724830062872383910668787376866934975971145377534884629641790519782815251931210100500921112357940820542260385800871675490112803665975726331892991936511169564617666777612529983725592912346952658679948045738242598508453010837045655888222247679470988161985934553978941233719983033767329143119685074871589302403193482858994087342175554771789031748510739252901813756379176262358432690064741034855053720862162791768411991379671661843536250482789679264652258120000931834995754042745767011257153811094164600089228775447633438400385132703706009624030388742977037735540936664098926161038287806508885602103742013375113025046722865442985719244247024742803478998330189015726017617094529235829283292991324182588772596823436479040867929989289816438238826827741875591593989230315606848469540334156069466257084306877428274605786667377918984416155131470569576265922205951835331705583214689459955328878691468194511092340225946732083440065670629807192233876113068171486460183765416664788875301157862219151492875706854878705290381765184373473552566949022765033600706099110542734749608018299890779542741675770718669278318067396388858507755231086528028812480344541782758557274103169595434815810032990003992050757644576509453560638544290541205890546631602807298264108250161883209257288808580622852916414570087355472720104290403323227420595534438167082274152545667746262978870537213308556434905462517148274509443102909236102407766156539058262446074110192443770961254347225379609477277963343158939098103376491605210548025350078460369891570265656045238674631801489913845722676697474415633651451878545311418912995886775292003468698753563920715182681127489107055693172238309910816006927637857104716744807033711651946468588787417783942419742367685048580483074934672383759804173506708071258024485565281756850253877546501485216108759019388024406426026110146136826991261324669305282498548079751743844721061591988269385066750950647143408179184513285757290942980499639474349824487353570907857114757660848184446911574362341245733845918458441197462842605323273244493793213788112755928368370803533373773547736843081993703975546206607663031650335724004432031372580644213540249226160165104039417037113755454391561105640990525297208787279599787923970670482873631351827189580039671365170715564596794355653702294068227030223374011461386448791515061419382016374598752729337569865343799560007306062474887811781562881682369177166873593825514025101308635739582461062320392843600397469211423335693183852620924885006392057115420776990549831808568082183380327187780043880293956142847855772210429744032145063728096232400959903585695813497399751470057637672624434959238693941851118174320044333185894324810920305145843237471849673277536513731604752424625660778748745605525935665187519795199435293206078745855569923656698329806068194180620845591075585290137878505778829999248162732911025907025705985668307648411547078491745281724415743695187947942222083899608035816314902523977122036541713786302533316700231092434260160136441445788516134922834700359932590036884934788299608104672357218433515843306173567339478826353307441071879003771115270716000946764848314450346188953908410127481459228895035918073347144790726885847066715575724481609223138471492727410397963959120574797965450356505180499745360370519444152497626327719042897986599558168184241878093648755466003753873555561533647197267433914418144542238679593573199173220902435239909994218662022237774345425331499547473389398596163343425923606107702710921188381355249630648329907319280634174078326833768813286056663389552487711571370836952860580667852804307113798203734279295919868312630129847124445625427642207413663199557451303811273636887654515760665956941320168164567370302359411493012273467644192969527951457279758340547719522298411949299364909012308512162986438174427779731718526683053059607378435842277930520365522048884995723399080618550250993746978178140154559911107154948318485712309127298669268323886279763188550580406090786340705446169140097939785864538707254633129460316519860556706477741154174947170634421095605905103191180490530756323310287103890441512240525023541071809387019331244976709956810118883774213438145617252735062183055670966502888321627386794093220020778137471432422720004699315213395076579953273522719812116334669442124127222999551539463077028885362406987195660229205295626144458008352398578112337487417772822026815033867781970773713666307040694916610541211862664572792174010104005577082663099941515411113613990343442655518492995974249761049703293410923365521433118641223486776201112547688265029141722663342177441191955110833331809666463563932516588447830011442427030468555080338369948158182778265851074689068488448347874177901435559021142829595105562378697858385509470353802201327476704521294760896787633781639742535162858113691153998661196298340018201730859166603284328652188248800172155879647639693812839174768430180043556370464049777425100879700399067449303763303957461194946216205707698954058367165873789950035265128760379051619333853091546313434421527235226916499402983715017772495201926184500274742066253361072963648411079534038712943497750992201613286779535115974553046499471011984613442927656933683336419106222897910228991787232692011773332559831657564911672041253971476881409045801254374295904512689306687253406365047002969213536989024435580840743746977592432670790340682424780945694475795409816938224583583280334343228537368677890084715843949434579636774206986554490331635993392036930041264286424163264378220934186820312358951836919860668634457696979913176466764362880578809681967473051632548347458580605656430402814939325898435089790624572011811831578298554545264266478543384884154297178432754849408372952690876307785565550993215726106426380069228901790663661659285238126549444526293169244801434278025010177664711229109796222378087547571265926882848016125907198605629160550832587607443596994206117244447139519078454556601218715866870671562444095506037394767838073234826125291995139251182973171456651885723949894586543924399322567549804366143252691525179485118872282631999544312661883260614863539854567262757295722468990784146315837407592251702986071533310399424420031099247447871535098175893304764972668425555207605057736545341039081327471985112952669126051337364153718868352947494453850745205958170750476047096555233669706911325254519121495267206990281625282725794868541463339165039965675945003561865247614685769684703690971165882392754522710686251320574771301154985850425096811783288206653838859780576747840546580354195347228156471060539012475026537699621808855039497906156728980517961165141299581962416746394407105513604292669456624630104870900769037905231058847410351859694496061444195192309190380229345689249243609927958048580096575246759330169668125948316396978153953110491760328958835235429160166996608571634108907310185586601567174909071707767730946564082049781798471653938874083753724040528022079245845341314253977175653720685491978472743176982427266525055611388215319690782402194761850277062184342432685102682569993263691582487345883790619873598367668156832083476314957032839716123476632778215566431947434541287022703223975270697048137780965744834927676868681363242943217553158279911019424571898731116554803954676395857060388599806584547446182305754183894760515254593742611857217331370293640917665401027410245806998360888686451101875823929730867607700821610083837985646214493172204619566257054952260339444911210674456282823610915733458489093768583321949177942438423182694433497102024434775226326882384045935036388165012635839519110193795477888658610577159503423759999285687829062574880637789400546488106684152488168970696068761348359379641089728689534677802511639152957853174739729277678049915219517834882611054499313397729473680834160945930272728607080662228252330340436189211555579544797995893475063282052429234543755324510499654050967600724921070172599841122507729650821717023835734782460245356947299178340882916789019794072189243448043153018714043072876729451865300353938864533370979136366587560002493023561005677678753533907223963315432452462065244175662207466871881127827136435218734072369590910073469760890434388911563448942341525195853360831589509132965142023075420464018393212172031504719543276860045872818860534228732292298514632076450831762814073517804957983743427647700305640400952997736414355418871916783385320568616624923260057086634560689777041247293668581935331691646539306497845170756757463891392522857458230011435831004602912398101249081422868988140288489952468211376831108051468957650846658674499609709397683472821896592206307180155879232198448558655305569908109973936333301271406236270196264635126693970764207790713933518513955385652101062226259984068264493444930851759067623196301165438803161913828467049623538268954497774864451268949611255461599624623715409472532922863029474213434405240080323973082779045398769152825725973324821924068737821955688111930804929123229013543418426528720028834085380754959413054660885265857746094812591451137116774630814876667866692992733441615645943200109444614884264210601118477883521903746689814536879860032760509375314413330767836233061294884226105117782429289140951375532271005596916969305741634511238598835093875450524484271863258720801035084930822896888864149320155780216034570465324927766041021108962307850302718931633889994359260747170858565171994115307337571730678289514422362038625326766927497592656151212466887829315561741391721709484469951953944443844411138003201861039696222665641383623729406641808416742199458287209543803889923821323973286805965693042803182887534979131630269178722928662380354088136345031587265536772711875459166442931035951665466760197142664620376902890237447128492235561741241464970243337015862350721617278889348929010091284928924655272344150031066194516180372533528030615214084286944542489793718513568290443017651442142282280368634598724265175068568424214742424827840856964505523603152517876123882566583558921313295940618206649568939745631993601111235877857006978065708632112205386197689638019650504815538261308688370319370470789850933246799915293680543319776070835873989864513925287902458142635154719395587088164638202420082876705576561183201816103690436506544294321942449559766302254547925068184632341907411270954229330762937670243372147729029117806795740817225653074526314010665773702210397337702553666574285261963623287614225083938277310728127272442788320779009933874522353925377473621725851298720700046033819398631947910663877838064132489442172414967430903942500447726863529894715645002968588648868697224700736936543209180502087316130292905454109992585967090623730650677362840172420411915645896130816945564661385493004098693656377709002640981392969923469871379298572498054709176747963255643314353994065486035158838223021146680967367498584578733569066319838685023689117128942888254191954204967087234776247130334491912063368906582299595948906759713666329293619860408714143194035275754285041198631819296737175885792837625769788208430601284014118857211940139057572529363746436736433954817759678726744404012741700229672937736272028819968985521465577974637971538491882537600576212219626877202458344307053763963624676160736951345753593857471987187262777224905370400035829276031008026742922543617817930058097879391808160897577617276800315652026793785671518707349012021776669358314511168633645034856892838103740670330199983570626066437092716013749511994406199283853642292150095257490516816998005051874115436845365386728906088927319631904708787845292531368789610396729187051249361117523516831297934559743913130027452971896593583730811031090118355214644464631892185599575441053839894761834888852469745112104578808857907666532829174254116766969982234561085029052124505962826283531190271848736462388219177200144091986536177132278089510585399604933479224525689835077484830755706006163376235537256297692640809179234983648876844652703528399182920873155937875253864892821703737016981755126489425507028738064574062252238792355372849469721061711971501143988587711483080510278419822060837350817634920488791166026452946667660717243957898441176105565847429817141058388714531606647499710621431760444682466517339218465348078834492955618637936103465065250862461492220206194156530189741913266491599966020498471520040937032537400896921009497990325630892608990830760060392075575831274631062830841792764094098093120808696442070254183849951390891219249871301549401684353401751218627645926484841502386849445932152497478563307070337601877425599681533649741705931299135360446076152905695964207762547337528713850041620105968761155253243602114305846332623150091169404327919842271026921267526732151462502472633832981330807500234975666605768525996339763942103866633196399199832318932054164929215243738396156627637763773321769422481446371698903538389156916421721015981576085305688040819032378659474658416982183963662813646135441356741785294272502952487564269938741145235994127696552001629760524275548401770272157857688065233403281083256877248051941369279052596508501439548878020598947398715350079326279485336550229762698836217481245465157483300707199407892092615116341761902574967261199090275499220312361214135501175660279851312826833857600573285961848422724854613558908095432830797655966524517822043434657487766233084240350315470447694330577147606321722879771885283707723541399458931932250722639906713436962491300157300890117788587631284599252899598648685420872313038327904727584173551459325547278645864718943348803877043231299913561991601185078779098777802318676017531949484155261570094475196008590892756202562486847458386890851646906396738721913617956686242416629134239975598499870269360805846690990264463757477073724575335981201332061303949880976645004037567892099658254790432302124557533625179021905190752079154424996058689735374101557294297044098846852750371703057220495979517579006261281238051539754719181564645473018048416189524939898608234223965098070779761403527557453779041872526058730780457924380572115001401643631449351623973278922690975096133775216624110734401758480719582858209697713059713784316773958157462272677065981767974970343862668167858288995299101653981293187847687341185693260416995910456799486915039090521010617136995767692995776862501396490760828221377633065983699896446186038865103725673254519156281015327381005560507867782580931099609494081761102750019078416910114377032033167053496551979137277489363608178734741107414606529467740387389274982703852226012657137031810580669835144525111295206807885925002799322419686431501470571271996275240050839371457654413973534398459023249023126952242077693130467456624168743888717137448289355868372549352253013057468982875204985172941767605415116123148967042381296464623182273188671502961766607896681275774866515287741925227273467260013282804405057657958781414479908165509768547024663233005243469159994461659255143159472689111602107064798088364335800983171709215777255870993464858181421820831472992796347094079946979735431184830817595938432530153365074688088495968604439101418746763818771764648552221528270572577720200366663047517329428354718026510501204215737359832006585612623782685402266936640592982553301528930631189290799642442367141972587279651159573868135317245666497465024870638773230772016243008686323508633640967308377813686766125090840980592469600312583484474123619291229612254015435989270176201676829658469361670908868314380730902636820553784762109161527737020993731791299050750431624940578763791156866276948195035693977420200392811131852010454688291006566806373435151904417486565909411747299928841063021332527194195245522768116778703706170771299841961109198662471751452220849029224612362102120289437375569946524631896708760018856374225462188646637993351059144911809819228839678085102547890770683264971664688806752424645805813586319737630159210415393009183830407546311730039457503994837140390068180678850364120760811911117827758613839955960585234740475518490449785583259575124662227491487902948833645510310599349617453089797467949380779094104491366498630857934937942463704171201700305917801187184693191505843913556186837840747355084938418470772904960720669746761670596898193488639815227639715455754208837502977266553682424380463317522348875389026532636176803315463857387957420673218496625710763167835123954525676131427002984687121217888184093166999301501763672873366698653594957716220979484346427371718708443882148764924770457193805562917966376362169539169987453820898986670938244132207794449465560424327698793840720029267541905541132411707483649847809900645731946362721892167161903401718740842522099786401208682523234399512829081513549705604154127321919331608239009198040940537751872195126033916220526835044745364924920693096049808053279958273042519221282824591035662951319070869181973645654943910941674107109239997034238183595833720520222861976640732041259578250536758708373496990249235171762278169889060481655377588855525351826517402914262279315281125015516494593734908039996315548065708196756506890803428686864743727998073001448158707813128835299304771927730022228944318647979517423437387089338114673264854327165775299050194830857167683325983066282694756624561341266942929995629220943462210121692166091205785642739805709495152035065491643653280601944853957320403353545698747559966867013298930233993294510022509269674161429548389719556418651066149801925054780646527293675144195803655539356880826174055165737212578436720182635604025976862462522145096434677051574306864482821393637760304026150444922206171434552409381975588406881524341648836250406831464566305376299991493269810780206214385795860276812155479522251756000385507567130444529037285768724184770691585873091958898796571925950912229602484199322790445531060150055041153999141606768030294095165445942296550806659860871461128646685146159518102859689461444391384695675964795007574841554038282701636847534047859550672309811713224497456257765254256233340973273987590361239182609238165003431676347080848027723953952141016661526481579943872033979614820942987710141919743181697626854996010286449883809666199724063390253116552685915563577734031870606416159071405184392840357097617201195306923295413109226236847220304857876427679847873480232061694398051609231534688132969100097831460573538492799094047971059466045919621093368037969121651642077445767409117462599896746408254494605866347276776143519989632742716658311881616267541575448272176774305340211353391473573004291667051253010545397023700514427540794933828520675407799568786006572904940294647896978972148514862688519429636454429649070031964850409334217837967026530617679335176431685597373238498818452628738251255421506782785681914416298112254337962421379964909819941507767492555802328334422776635209533948857344509534425900461364730187840357387876109658569803034626401507451361983513230076691223804249552844954728709975665714508324509632425076402075461802722352181513912728223408996583384161835521973967919157272884377191594084007197601852215743505733080283956154708773624751285244701489358944453828418538018236174932484660677598836756127424731211533364243200248204180304438158588072521905513537037481632336294381015846682640456187256456057132372182379410578181648246732952268300550612706648969779314518961522488345544759868727092407853854591075510237187338570075634449288024922485543035298633911270584946939866666290849053643419890251792129560293279572981715142743271793449271994540374144046531225069911394166992652285292422744081003314293066734881649518409546958292675069415137569997027619978294205811986221745393500342703929539905802690411628198559734951174296049275290404449979667945802905110022797769093989367030210575326153014877518570382243681060229350342357618087509272239014850567928100839988779287520152895825264360685388814665303835195370334305876943361388136740937256417157854300337119976516898754454837893009527778572803341524867919566763713033286455344107266477593140045302571583592075390875470917052931652276519220059672232148103869610613999442801090371290608314591908911843983395890248805678918575519968790020805372486331135168540260480256637935352207151348680515375617088249458170214287310931040515276123307123782333465565334292440095441866553283730814855456605496490504174209295739344279099925587837630048417403109768881509071310409129788980818893666437041524334371810050712024779728367969942593820726880544684410273918176581213615730846775118732541871009545037849237881319559511410957303703487530570617201597414532128245164093892002555506584268375065739943609671363646565140523103629999589326786193069764177875159236368072764504319798161887658506672524797133402152472880181075134910225669817672381968798720838643801126887086188910374498815216670498801552163648708529133323381915672560603175855346081141006613414941956514328842883680687467084624966220748912884680338511213886948237881110295411974376096400656299573584533103961397518229601444129774997947459886466980069708782746441624882005372601470572447583434279163197520386553340299749598683129349007474018326923569562883988919162379327561304019074954593331154777846794804001393368781407997300516436366796893540838526353412649313408620036937261291994881018972167816284259150673092093073708173514809036841652889498768040494394591040738508721929084824241162513650722643566888643873258239372262072579300668651805299681519774142433789171104755449102554026397915485038867863311377935070334398230509265245926844559186913808073844975006009048198783444911206595188564263923294339445076629898044367600279664649762367438262781948298924914959348886682093254792175332254342815015377403725901867666611537000549216949904385368065453118065155039292485856558167890572564752301508785831548503465691440864415502753364222102102741911336121052264075421955126971360297029184595199983978553253561562745283553171835974890929111139158604053959699990522649657127551518539616617968549335984244386108487226377733929473800443621622949324330267604277299219321367375411398216562687270301281816479553947282087062190434852220663176527494221564802135062861205443315426939361628140942189600781930323989150511665322909557714047522755996934389136044812913584388220121455848005405523957823125253868582893453200085892067210091235372471832936637145007222057543369801632481263803618001636556766024585534005265402269833544051944034226482981228794045647972924024327329728755398061408538729256461261034907194846142633191192450540408339098081071448899540561811746588520376586998109724650968786059850083893930520956778319930178174115808148307920467429807549305726825446124552067770660363728714846520536256670271431885229627935926418335656040571918292275237481462077651290145548979723607002849407813064730658999360780501944350841365977942171414852659175197854688280753123410060756400884330722697046526943051042727692827448690863790086859045586156120808491010577180229153396959404418664530493146074101096372260565070230870012962446930675473784343456158628113333950703149634220548043329185353257358492683749398075061539729484803046191426709874280481214336657636439107586887686506178082418475565001203445059737466987225448473865193212502074729472981671577845706693026217585767992239563543416582937246136641496139752290378646158747295458172649342686160975572886498585569939908391412433851099274575890080119975623367258216542448942920250105407692484816334329711514060025750378311341247223504860294666625712635854351628835004918601689616605834420225413312475628896449873735722991630518501897770682554629918279233638420671935071062745631573415260910663940696065998712402869540369686179014133515073800124251387881632777950569452919079206865277021146541608087501476716739520735112161861399288141341108729368032798958454085285070975367077593095597776597358321038137962273870133337592103676631830002348264135261688614616016536994323133255301336187874956424248294553592906936630068300733468592757942768070614340353191004217635223771922017922909393017435732920677205640251467315302869291392705260363295180630486071604879093346842976347363121925507191743028831117310857948743271416420018459064713357089546616282773391765048993743252060124855136424898293227438849096517051887276183808737144512781005132874541894792117945058310685796470198659744397459818546535317992365407902968192576031297273089526148054749443188243821023164804627537276769323978949687952178598013326608417972095947916130051765492660386722780278910375212831513409015753106136122195228796376985339677291097571715715245415497256588186953976375072738520779484632042082621589387607313673795231223152410927828137761389818252068787664769735763266753157794880681583298785043932971763127385028975239937609608943003518418716549272396005339163766056289347232718771165333212279474296226067964115157960516646409715945113518328501411442663444932696038365504496855180030178536877748333486739019627287402123829900340630830476970633019529501688534984118114858021619675190723342580618305488831577202930180972165073199575555331439632863799456629131250697648970444550125509578610190863922085540839450467693780651863592484987589270872690158393658550001272018686643697449467426042511813454332362413630923127140499835410635092806475477274860700329352824568294942395326199647300685090675592525252660592419082355438393510700596641565978859860142431563496685685873252245162010588481838311583332960761046930704013826244049251040928236195774300174517731174878916249174823469716215982801902266788534649253336688708936720632900621288225363006110760955023787697858514085993671513929294521675285792370334747572964222668700004620802924905886884156828827291629724922297994218946419847979708082749471484966003536195583719648336066134566389739008962503069004239079495163735492294870782230947046762082065947783058905892758293272585108215274527649518840598774670270634681026013302183032720268159802785693819323412498270175360828890758661120722028306908557303357168391111551834338343066975019216610442657347536492980952224584885186032658159928778369439444681802456319753860481927334500583457936424619258450003383554656203968917983409671597581521391873434202248252124986860451540938896108734213862709518327603063778178051594809093453618332985657039332927249197362426654238749404260354942543002613003925763459719362358290592743210415779666347694575178217563088574855446192960962760240669359401129515294284833364183392079265120920317074207555095793911166902024913032833703379657829828130179775488398860855720221119905812218459687240274641029175732547127013462544935144131125236471500315224611979109487349533183511138873372486968859026319370744060755888457839104683108716398774053003139559674981127198765062262471549557533027226590715141719594058394166041932733623101558639007910333830750050217384484449170153979851069242003529126500648028346460055007906965950352985744714943525581039723527034401791886585829561239090427739600677543126960223706709988724191565145745654789222905532410272702203845291492338048174727023366616823079921056023453407514991841520066918866983307788667834400514518596961452889754668439666033414372105927332564077744473505876758269544265955393439243601407080474178529528641675813755041632232633565610321234572539814342568853382662224645744779388621163832757273254375680486904734052657547228954049881784117906075854373546572462427499219868246087670078317973926868601021312870037488618775044258377434958688895783812130086784739244617046712553702771898616425427698626840716799820469406378103141278340597061314197411334707999612204180883655715816172044371925192779825042408234078379592031997088139955066314734350265201657393934499405123969451489542200411578226956842178223475970825177562600407198084178365934795945986584338002696505481999713070398072590132024600974027844549414862233006758163695035479530295774193598383280687791774699066971032983720501548546860447187526048395196185131434060811609659773720538732366842606937750577287457901775135745749230313957239011008269147080096443582169303699538444367861471713958174956322880722229164408513135656836185057124190926766157311023952869685279326547574549032776803635019763860914396244223878708777876904910808032413312466317936782064469729423168029481056690517602186625455245076263185897922536112393906616966125505609540508377602388587413121208165751006772852638404370915032868265515975475827641720586624550670283291080336962084386159952823338529871882093298573454546396464543137363492638904159426680498186475304421129578357138375711503080918271344079757086780163829042386084235413788619057889514372585384735010246308888345195888203837253389812457091560824459760063570152658467595084665514189258074063335609478684031750865047456482562319412561536250520864360108830817000650625051788916220798964189586320263356010627452334946757218672655701144714310817091489260213466189940099963115924104982227901626853363929411206313994966908557335587421410124388386761691594967193876890990499936028919356980370919926273300047557062738269644736674591856665665804073074107456541199236453023307562181644564840394629950420716871856524213838380660116614848459911716127163954803208869346059666103210093145747106081447310577244884888319824347867430265419000220344178892815267359649491817240473290641804392543826070335698503421712184686388632534072164030607902370426313756853630391225457806288589129310068229866725833136613326030356910897441814550966182245995233408241716397702150885297755028686295119618604590242500538608775651996100442048527593481373792983332973370902911739423879679190842212440080888313113209853010574639367798525397736769498051716198123087799974866961827076783079389222606607995266653583667253696966352975721269109101898659517593022950787135513623885028115434461713584811443259753331429005357063888111336997849496785976935355331927681256807777391361698289513759537524389876211554459279545741978575898521613258666774703679976834186650957864298029995697539082390521406061430214761949115766278039436840739244304214516611497608814234595454186256959435428937088734232806337136832366672644310039282033923949467858561425653435091491447443475360314667038816796273720675209612950066490335960203099380522884813068979705858388163276220575126737834866181960073280073597541613013895965369410591238538940681985923186803728690722752342751768994891607426913280564271886953191581208019800454622472067036794272294023998878701433641350178925623547728329104317039148008849999754666615380984102634449870504584608122376949036572791651494948981299687570035268755518033939454342102410535761075866867351186604794030032874566480786193804853671749152294912018545426493786106383206149333532998391429781520310348801508572311891201909787324849022564163863494291951362087100792413746208149338196220346585425453911577502081724546652411034735903299228550084879337167523953276952512506505536018339851770367542896397708671048161529927028757901250184879684089049479645512428072794499515331722916341872528073571224187501344943661603273777994342041138484646387979882317031496095320912276806712846531473699420179161443145718860343296383197241618451824931324779088171881381728148464331308370347749219212162274081595441279198015509722726714705918208040974804052237717231371718348562372609877897229330492190553403724239439282640744487922431568476561955891877680955415142209171753427509105756633170307820449983697195181486302822867766527612520564809855011721225903979953080586119882713712938546404332455344529266473516604870584613626702310683017176936124508244064870809918588378663226307707287396206528432262313683320400525671583954083744181899199421016182603832391423374356112191051884783592104201550212613492207182224153419687038327283349042092187099777119293848235906585518578007289548095723131603586312822268253318626376595242106818932436008101872156421541730579010163226338457670578035016472787603203813727299617592494413128171576197561493156870195963157728328792908504032029804558385781732275294148218924207374505371682013879667707976775639841668187655934376147708508131560782510807830693992250235109036512508649701737121373857762856707607673984940900206732923807647763421868234730688753605887801156295786643274596630638479549929649214502463332130395252916928029518727505793016569526125453735829254297668398880678921957101536606336214316212502248416125081561397294507293626955501319905013520811007473150112151485156047486695680871774108928869151826082211736485357196964924962306035386821196892427698904422302246205005537811137819368672605852755552221519130583715235385755384083640596798636765556500839638289531226335852749611816723350170997600211552296298751437323094885078099667371710543376017100117316260310157808012786862510233477057656696024935590470981785229730159312953821280331897185944960050751250705273182289042606628954216204976732296500347380802875958419225650512842091228953182031296331750475794570337052942180985746638874816024073391242412664509926179719438440581494445671869507999637876338796444035900551398467910722353801405136579815836095177162883406067142573667715617221742372999153997006575063855233067423498252048414145945585131469907278397664641282432282740770197105838763776487397076015509004234169140443385492510927736509590486716761374728303231525375047763004508468775479568086692652278702078119100890461785251757604991386308040651815113335447768258780325712141099137573460203322935537330634239611977869597022127782666508167126104035363528109135596337714467166323745721718779929117702212625622363022947462570199402509226959066864137057177537523602437168507192413129855127536297702759562666015534996040263809178172476573807196391611029424764353975118856400241420265465993096543057694804020215537026202367330909852247369561552025077889337531115576695094837728876678460251446305970427560166604021961758236856544517053967446251286194492311607275020078763864667004227575375538894028144800173623737413750438751135299812626382789231385341787014807684472691480084866208273410379667583626928716508030633445556690129734949600954970660913261424209312627319600879801259778908272761948150853091635960077606450519882618980617962046022927538902137239146219059260404100166428915309964363695679297538227190501388810447835785996726661448018177310909150913794338575487303746401063311962578755245318530020016110026565188733472323314150051526955278047314619114857613012688134593834094199727306431865630660129910810740944437174022563470315944798237967887597143893222913516394624174592519912475779579119136505587714084674714146890099162460604082451240513678668023841358178154156804484344835104985667760206099654322450900396353757551217827416304278153029396971742498958693776707378134121933474242338607672506323296519896691976738390307247525755097876804522880495604439380720018006469755115545445596880598100447123365221995421300598969392476265243612876697602620873137966931343794905054142147266710450155361918612688484139005528224762238477598940151239196833289024599935567438477729762914222031230405879395035838062860066976934318695194169754357145787052345097560040899463055412256468410974373291885160974344912139042706733100580873787035985654042221648958316641713229214853862166307662823016847227220232027942926454331010180139387744929635643334464026895957926632377191159689668790626380815581675798453582612514906085805735465832702829782400573143352449772574039441096633626789745238779700480382436056370057680887157893103037042487313834687639502567052649017275829306745897641243268763301297120176942107155071389297847083529357180161607427160227228845933788305598756709889376096904577369899350821013766770304091133143353836071732166865050281380875158007309729483245681154464240697766426915226483244994861075961449844623277586694649449621260164457438998567161188180687670431415883331788009704299948497477441182500975375609398588098639195681289089980555938243861930095687159482790431567877292863674386008586161173609790143628734844677566043522020190097241353547413334944766144696655013162964217428031051247051198881791330897115455178458720840155751847081555550552647737961288480359541084195258784390819242061360237245090761635009717846619002961361933943808930629401760982602233607432065900918090007975193154680896998226908505282220978701663168719647421124133151357008810128921740091489519282688363373962199891198076709121996304678626429845710238513538627707117745896056545265126087193718243564838348196947496347420766434881681546913506801821083244659594899896291805304523570964609142485150533549575414136578099294972267471309501795517227759942597563231422063135753475494600932464272489106884585593340421834087634347281938486195066895168753385442962968501874945743106133461614574138483691344145857568544953353214764234194874244789890599751515238146807723157495305385133122274582198527887820137010522546063714737524858205202070839119184090247751102690731587334090874008627148313402823666879153322307682698497470643278290098688343879177576866734622160647206252432711578793650857175546919113703493537815798595749562038839807662499564403460243065742889897425276364475580926763278971201410397080216407771591306748834257060688571566203703382514216410487449975876694687170704897337090651150027441547331359830346347685090198475276702728203713240966723263467263765457440574807590658618712178367104274986751474576744126065993965196658326205974584628289417307790420110789406481882096489391910597538407217685911400964607358779167547784653314884557182780515441684225917915744535952559618998795421677791758551936541617226084509273638151709726095745991635607800946069934967008161723186732082096842729161455590990301808171726915539659300830220330894069168169288411850707658005935021212765207975071055436321325168550036496352068723334377047012597195212642689357511204444615105466565580526311364847829232508313390496237060683418973627031325800166398855002411100619512323701863356662142030238948531674224625553924955530776596363107547630701175147555859050209862019937980094518857558923303181482606070583694051567189178497709923110049647756917614287049422772357317360068293877998429991811236160500046428298396149657508930010799734327909188533768565031536522149677231279003100503098081761752474019217765689747086974913798088104842259253551528390233036396810944152828512380834847268275296791785083520421670103039239861996231221641112222225256026742826155416111785007735220851059686079323594868399677553058818962216912261498253742026324038975350710319378294288867352223097958709544061285441017345573566013899496941110806397846099863296155777234820888848283672688985876255638946791914056368068883822869096741441335947641351060731869630183544511226279609741697797178832523452829402563641864464279321887621342670986968048450793196031552336769174857973905784762860349065388827200219001214021113875378838238611296131759816450267553721939317685590285655235285108149728276488606413656145672269273942384649577481980483808530183227976113079985429023988067375016445966296736368600386405173364506281953995084801916572043959968353943928561603627067346265986135975600048699858441702556269635383752874497996781749028216636949592273815835461903594359971802717374751190625842042593830073202045931970719553015683502588779797754077355693748349016213029289516173615423614028188877616728863687731959800980194567997903872366067903731262223305395585049610476274201932871176335772393117728587123042416340309526148112496403260399227659125293611265953413372550521826958553943771866240304978924948813076029404676666292549172792030482322488828209314756486593219659682095339321756652309748420000936610947133275546732713210386353823921320019728697059268216132347737418583016734054238632591897645894370583784747388818352274156118782902597897770454754546447537172173397863598268921750594630555527387301129035828497467323957049559809636086493294207793599698472599616367741646974817046246158861103867322129147423645302261649368328307258111537401477919636251320166051095728297516609458798181468702336307617060220416976210984040215073733757213234891619900816111866041554100699325545070934915106496270409463978187759223897877931426979718332625178096642030325075429412330379285697031503448552414543213435891263787421539594592285355831439196500816445524739091680721162846166865897600867802579289128606963740756785472902114179389056778662296673083574745751170237215401341567416446213886785099046972735455001179567495840983363763514836656879542697439725482973782080477795430895560374810264836894852163066518433569181963367766138138377950200524934364991220234700049672335505007691956444902471056846825146765124634120101336903575209799219968155696577530694651514520515016219727978441217699082744118263307223668350527593543906059035160177887909827461269692998090102250468598266925880627175934862456549175357017807837525049385744071320213178822288595421250290233464909425171346319692990093064887505981451714648232029937192936843106037359478528977217518627680401171325429065721988065989432602014939737196476774131758862392768052285228677933340199930284777613142594197085134638633584469747888218606022044302924651949599639772501022192393963536667789585990038700387585678416566432124706255264031986717788493673538215655504878147753828467876624654447652109139123249522226491231033079873943853230580214621735728891233987251683682357891480818751892604246178388511011442937541481058471446628911857009268083273994194958337298080588915266228979462634660901632275768448224071223401966813316983360918086870696501336810014364580065177129347560202194132946416638339417681720746920275933123669821551553544717844627875683910581199583390652972111192106598569455504444107325063778254456834710590979215208049828930580289162494285873350403541144370307327893470493565010904976906466529308496746021963025709034576954827593006392606048589755341044270744334270177384372775696697730500888356387854023073925990057940606872283672285005699641922581527013093403618953137442794228507741728968953381775570293063101124020861230521933231225118166031595129869946558208110900920095650099508482894666504134684289456745995594527290369450226775692038526298624952795342863377596002317698334642653690450703501963843246528110738139517874085012754820709147740408706322523338673229620763333587963283510651905301005455048307691471281783640146754262854756873689892409453948575711509618319798398212559263128523253550652804912882227115257015178129247170374382785825417468979786096573403545678090164811829264630890390717545778303111126780013009666650862478743748887906571782672270438019708958440179645636249882752183458976503669364422096655589249040072168623815921170059479881812159826817653230027627216449889230069545260826842355944040621458891511155037509227122883039024878668437360510677062962684713107989330247094251639539819296755822874612419066937836469366159178862118744214904863636017309398502042753106855389716280892883243380166106303034779723577586023742215011950273731654315594920269927002903385573735558633050826478188660264401654280633349136002118099475899818668774388469750773776991810643196026227966217645360292256526566126331755653134299872494693112989734814361816760170688599541260815423023092908981304594937300188541159800437651518608575581272833576423707331002809498541272026194902674057456604069076924756082891711661631462667478743826044620845477758744319697548411681624395354875258167867861098652612313529448183352405901117113911242699344460842554952014973174376148784203353609716702654629696455702429999788498941132853400275111642122355567947041501614192718893142609025969818566997533620276843974612137409439581183568662742349377642680907760782435221257476652565253828222032949898321707427343625350647155132211885193169605088455708008204564679773623535056610948563980451721404999194361320466383439351642207576420665530202494291144227663626739459706332767695180079426169744710796568859146570769064876586271690412297295959361076914532966572461290874957610122989524471855152997903064633512610832170263953156326521758351437437505748277965074355227876985214192334303175713677968373114766251643215414805695992368881407267907862827138547842187929340171488530910811198992458442896866296850572303867138493857787631791323973555409242218197280549013153218664330313225802135091358208838511648855651783906204898692547074932129182768784475744179722051273993073304852723113270429260672261013294179842058051938285277757110235405404540534281732228646296573946105777260489950625054905671489073042964012783746566968016821909934704764418452436835346105588689796383878581924191731960947123387317691005607204924378257891012632173749917238306807699487545837099962749182482961110449978127439862921318374857461260012639158239656523199273667038301060526785065175167037701701482023742012803576424503478143615434445977689580197634359135786453689356656631567491087117070993127342335109552321539648578426451684033777891984970278045868742869771533481531598168409684571687956418061964961432613784529697440096273242270976969745917881931047027244273874594561727156960241110375762254180537421750599130484710213313302246612114834113200188206906703445007972396218238655862315571986931748084521708353989350960434994061221770260914977710829941446864071991462630055738603455684747572083321965100845122565766313904994430168190077109808764723607512748788663989796586311402362862552635967499249759589919056757206320305173144427743874581485796325016170608696784027995646968770171470444622430189756721300650127760138104271183319180520040718356710463106036937722545121802232834510055085190821751060099803051608477853407618521700280279122766494036792326675255879807502931108122273539226852118154248603029569827094439286429624044068856510232827780890633012552079080384861245895463823033103148895999377343207830047742817652666899888619758561134739330148051866106754256321377800882309353001382149551470814313445795272342580428856813414036621792228539708363532099640651795191403639705232508100090455806668510049415796396893929345869592615728069868117874747784801642402323125162585424016035958170974027550416677087249415141679174376654166778634579029118980298267946196799039681798881131879217851755199955108231683888864738115892646150812118193890015385245380084424589999132947015936158384945120617447308120679690548361111722563483090594449236225927201694089507566043003231171735657717790585153573822459073471041999512725790150355309765386164398321186903825868323467905717312812940882124568113115628822887910333581213155688739677342154596749874031063744961214820302077963649431737316240178867403414651310455850826339678194355291664481589104258165310811682238478125759675608270534772231549530481403328061565856526108618500882674985087417814912630509331606708843265567842003182319406873718052429071298575829730247510493891654159259178549508788781085127590206986174996283284948336638192192810834187240819304097164240326439962037912324470035348438935521524219475904357799365206978857879621186107451299211154389498196973167444239463493166632330554898044313072393644926305339473187729626241321380577628870064081585171209826094525046437367457624911556951179745655634918867719318745405996837389551084730252349341025010102126764397104873354938664132963183877098514461277161457694956877038633991568856747005547268622471935123142969410789061796659831294988500167881239813116567498785501658935332198953167872016371871810008502893942628988566242776512406987987764105882956078139611429640069718842179422993412339148724830018384147779969459180195515656866776770826864295284666885341382497554232286500761009296136795239087545768333498480556328489554062951316612936084334542696054444091335663841279097412902341287594685196957528865180894779889664202600945907621565360223663182429919300717834726749322179940862995725420499566323230392422828127469765655199306265383744620231286494839783723840074463877230079983416728834986819243988898665245851907033735739821247998950541051249009672262380986315808475211240309704153780051558424946297410426939017989122877276634406922367724454621138676729244156567049170280295819955461719266543975482435609762243262324888956706407031704488136986377032384920066608091474226084308665573710036186368166689881533329042639789051219229766232047087809789978427818870140248872538836897507122702753420050008014878720417437536974825138510684336770250844841966527689263231902711297340763414645480060808957089786562024656738564785903708192100726334102880422956478455841821131332500049340245435557329945648763069454951665784555552861912287416966679346197752086491496174336041029293984194719877575792761684188856318711388548769835930412100170327308497188849471926368231622492664849216472321405688940262981157699833217569200936595300497564452457687122017588254791962293985725032333972849564004514058229614672564730910511354652977266510176577263026211731657564408387515808361280279360594923488402819012364996115309819060580042358761125861917925516886008633771201138818492056786249646047404401188986533148463166028607636803232021770312081024303062483524093698326286182817979760877284461645070359951819612758301124216193046935887374374101971067252222133726695720793613754229745509420759527878505251753549814639778219774217623341535257450474230842572215319231956140042576657260000481486350289720051893310220983956960152462886927755248038543663786978961924515087735007901216789681267329739443599563094270477497817340450359722622584997075006857646233604901890435603421299667030676720700046682714110190945866377819380439743153106212659229864669355129258600343578931904732014859750222961410910313581298761179233569347914725489325361838457455834721912318425521591935678392315044435794337337496190849076274393969740254999021979111998915511378563121014356893060549189037331728649532680593501137611907574044389373291401293918967924637379393020901121231341963054802776023685007070842937455508316850704940912445016340416345732222076116544939593236845030330274640458730207017007476869036531384277870932825620107834310234984099589654167957118298523563262704864011133958708178420934619570505908178864663179625686579050087041288259420098300293841945217915825938356924948647884931325642519000699978795039718624760382590801089043049882297920886588830277407002733826015509850568716910688096027509774670821855262534666165949533322699167105864423360186682631316096859249124662110913456286908516319058632778919963930675352486437893450236617968891010792696447894553102405548677939598890908374714897645225779622712787314489318247391232397945195931981605520581641247570028382145542232791501376193151179446520908805749199906918128365921756606119514631845303948441505854408369816765504332086310157751341128013294266021502237497292139129113076116975116958042479743461010369102047658599071594340352327728773401476513964502604873773104069360322015408079324110444726403075124791054990335617719076033944323992523131259581033214369525298841910356939688558811821051091276996251356856174246312451798234684015095604096494258597097830480844102137429506058434817242730399614947390173503608321075072994985175704266989965828367370601177781583659270725256407015361435879076346512144924428192705554729584583715005549253533234619835357545421211323747108677811482491509159640912737768095595252742381992300252490905338085191121938554651843217043738395060228524895489825996390751901101338958688985268092409576269821351825093236493853960108025992392003905726362341770066654907052239577575819068470012866929025550402384848839158689724138697188228612842374615886493571901242945373376314163900297357757959829821812580855350675773271530341905821486715432687672066451889048892823059369727987201953675448106888813640628571967504554972969056699334228803155973537962111657642143314180806213305616462695351669568060751836978818113687463055209595055616037497122469020220883770077546682717963032666150914790615219907953314787844081563619385114135135651799325196038342685470501311042674818762262965982515485803434707517623418104960867214144985635213728872787824727298812029601588283849793740506325896387529522801573355467552018298663546536526188818185105522025321751062476414529604161847106978059203584998622779744164126554951759936192316285498333133401311227002916426254938646964471881008658866015821682599417970265057525737613687253444683066443262159073561359413628375580429830016792684056403673336706882515524710084555339228888885568014542476482854034328995406680821834343862569384481080188512976321506368720273546454609636352488114379845787397569315952712276325458057388403695177950899611599028953037805252771108925321347566232622021099613579008110125051680722627156382853873823167665915931202433552288428731156875503332274806531978572735426971473718285862550122964152263885043123115991015316433011488366761104858941589646638747312088718625152647925751479801722100134981507089102297999089168701996621840164595879840511072427082373492282710179670433091085724114486939136839704214084380652626659795238507638678810202577864329630019034312525539244080178230096260346759042524167092571258013728849067182374089375054721691862741721247570208229664298484870671988414158682825212718853173319948747924110914926116786170852611426552880886915263309760592433155291986837328426742120413709076915625349008437537321976439990464698900402509994463468545892970196775090914919518593454396207587271806949675973692590143544149546015320963095866851430198059940214204567023111774470204819887339793255031447417742480435342990269684316266479967996811744594737938705675083577284241493748010602146265927311005222605531995718920971312374200515434527337387441076576955416821287623928661324944894642048470213597563262848143126619193005122978194899566224096420952866974431502217690183770129208330040998966086511594338670149442777990647701108131705324671178400629018798478969831628721468823588850555067486371416316199788237776163946246586080307252732523838353520829523098297498497566823751263529270024314294999733071688721864809226941946610207741135537497676067493208200994706167865164711423175373291842000408161658483118231851079919497604711720062963360789068466284061509653966826086070626436359327003049825295854140038184125273886526510765926887165604104782798170203238175424177273134734097416587225051454948717792605367162055303211578788177086257721956113007421238734134600925812093412966139318256822186599067797614251850237115855902261658497373553970059158664754485001573262779529898644159174614771015736134119301614475274444965574100986156440361159321180634336132040573079171912443937242105403481349583268517769064470046971108463554784662622308945265013178017595935781443322141061012149044682164052840799792876392113598086828135552283552607815215713747635895709186064642592253546223653040606659401330516810384264352161965101319611020039800749357814989627159102007896635247113248821610883681985071203127893642646365132744093878540656876382964771475787661113659713398291111077801355827936331966710654260908288123732285617679746278627270433057813887886025096762237664575080778850908890846048072287317906052033623205148067674726284140434144706106488576377364793201614004968106051504151164502937643301783380310622941118621942193254131089311084383317591443315023244217981676674069141916790762838950502280490365740855315660622440593108453719722186528709039874455107638433564138337405943754702464123828821639015601594398663156576504985680262002624505395795220154321575706620159221113179320337145816176122303297357239301915974453829380903224751964858989645880535231412098597081279248716664643173763841756672743091911480876417855213790349529494941784910197805408397706184830010176841777511671994227507906388276081249158924139346140850808951257820342045707877532159668304651599370562646566092888684811058915685368825416420865193347050017109773088949182264071177898129264927393922821207075216507826437975721417937557096001474512724383796078502288769610515811241649238655241381675398084851304237352975481752690813260434401981530941386382060205443990348405026627183293123209570168044409463812878020103302371030666307889399686910574487700631810549051627342615033598790305786679718882124736308859413022037044985533652627560917282123019261255087577287364803519411916451408804758708050232238250966377310387797306781888911063884842217281945024405243043908911806634624725320824475145742011874733637275181997343378738228865962521729445329517114251390112913110886836743243806935243027352610371911279407116234771346337802089012609110213385724925996993898948266666557240901675495381315353004206540805297831462330015093316550459461037790895401510460555052131265898136014546431918591747651187053574651512783953200156043552027693922616662219396390443617358662445436044590074809756340483800567928074338528864918757196171059928292714274201732458583063989690192505673739094386982156295209007277814463259039397457562486709744931372622141505434579818069632463285360402940407869701842945344621072460487417053535717179193790712126292778502982219699490068088309797883112461224803753923170818734353001768914471797015124033278562212587293513690185201366750384170803200569051733772701998211917750843450133237031818722194836107760008644625770214405937733840264351657474443142982498988254866304349379071823080016615192755059852528436375759832623687966798071876307772664585916353168232751218279561193475660432073897439818216490004914953334527609701975868649097521562807308828848067933326406419602534255049095491494645795582215180385009013577621583042221139084671478052368838732742095544484555526432046114219777069191991726053555798231684360864559960876050648781929258817289823134720318507891131349452944985994881383641715780558048360754266546487688668462399183224576658132483530278177253965316838735774670304946907339895841589021603148850601875390575842867481951139135295199735883947363471786137615334986721996677738558427520681363961401306441464918581908810326581634660168065697972870293284151406781291051282787014707722647430321378279709799771952965724886409039530411267065118984027723545120447169670395881118569460628943938748043465084614848212383688514187661467022213444449230890011632488217997747286845471224265326338967628680700237119962144224267998080929196074507269551457311088430046357661116325112166701565891325874042040197497230048966331691175147803690663530743512792371254491153599297478408123069905266392811271767677954377491550789106095434873273551443980834444587093113739442881557434202941887131406909558854756050239118935041100683520495973258068050116553495539228910552517599883917755194645816725381913444940324893157494049560506817382754581013814693237846115630361560898666633492845390311222828291873949973444939861893133086094412841218583952824682176863171235985687698477132150022128846638877083351933631565860846639334126782968562242670706151140415612375924352278409175099109490846580904448957868128531271461884736566968039720399172287354907308396591295798655149379085142428313905766938502052524798417654396136630141231281592137224590190861841736502650817864301072630194391770119636734073435428073769381656117222736024990732636304476499790345040533232908594927818122088913844713719788025749157751128425670453636487519213663151219115158900727774406750796301260513442467300700334060229410615819496190223661201782267327364183757126897625557756939797363570817680545818179742034620148484009034651088951870433396533934459193161861990165285290792123770459371393388029913209192764742368022349584056192961508758942292980311601580193018583539962032008381940583686370929340739480010576733351676667197982854670823971658247751287035520946829213907044563618721254715055624796802119131466692408380856398209696474487639951898789746481665546018971349864118064309130799477532723856921458364782238050983302840149792912325498962047046748864399503565918140608629815953074320797856033048520850181766957196443078794093594476605678560455278241331829043647944114467691198920221036485265575077158694369526720013831503372015788288839153568759506803456510871530176999187288897591107375997947428279948935491352259438059135733615198933528334480481119797885314575298520797712752718967009825463989374414780914953235258212745524804044734836415265894186777683049632543460287860044113626537572615660027049075010903996743609478814108512471509013763993487971438076149835170903141155385725864796871863625346539725206198171665579678233412943938745196477110949342425278629242619644851034513206065665716870045815951439702399950005345567562020044349728849368833729387317888701272650987314996886374514181522823770225596522718822482090791662925508204009912913701412184044624733197402111160747846883689275638582513990125203739083288789399133781438608006537789407944266491644634697373992187278744811434487175082617024179608393766074377217634558928979065582908353003778834230937333322856139223654096513068761206285601168653917992295825111959910256763463791035809066904979489115400345095872799499523607793047093643576876666163237381285587360598552102303222985067033349383483547644062780533190991614235069580141921701624983161440087000084810114556010149900312101781260298695959615622721957651331929930780229342074312188008908105594325950346038317778837378092044378106109313925226979888362569353638269710678111638477167715113679437029967481455692889393372412493362561891909829275884785278338917578772408962537616308077631013529836928019201196483948623253829777518316330045827902326781896172684303333513027798227987633238647170227191863161432306274892245926026501799081103067954000093434301781924512228592791443347837512915409520412831741300459191848727528070075229529648945395104408416884590429335847442723082250357620090882328825026098359602462972398466028341957115431268510939982601211610331301608337485169446077665091308757114749980688243872603741493075795070370693985286145485187486696396254497020980952353490452521219248655333297936555069544296023456411851524507909863209762427444218586527342122607246715873809848641151328555704335861793705155302411000136333768751141978717181894012376324153087916204088855326820072368032280847322505883420607606521538185015338478239624688787213465224195049511567677587144682038335259887987747269380208208408905236647847057845993575234301826795387505553663283856124711329460211040087014846169656382537505096348421887339166353178782196342523103465508820163279991497874695699143986569451585173714372830125571940938589500913125330706057380387493153071715053491515227874408223349758762769168104776463062172427287385088805781255556031990572017901430869823149420727165612412070325690957605903115482477399313199806943603041657613522736923011819433186741495698215258183308906493593163083517452400405008266612058191012225297315768681525579872356208881127012676531193587403327149161543667102845940062647372792900975050246486645446278782959194389892114964159520068814766549428746590056153714312827720137594946470533079372770983037182744282460963794150969544955610829871488892375461844746962528960515577675280985487139470554009449196261704000497055622420988111673075406412053334514192437358489968661535516002743564089055239190160448237219140058082152058633082084029155037364952899447633926495378098198007939605038365093952133746726467837222480886217480098882434078928629563920377825376271257423516023353936032944453400897354805339831055553295100039384242331610246812433850578315530086576933826632331810733987792175715633134052283962023314680059118383144481603060772137096589840530702993209943703068521385397904191893401358041233453237386981773740662103385672868176712379102970189057886167886995132087863719685206368046999572011895280958251938050496400636870726712289933931903803885119584462013461337262657492207925324910387482359867578540276056739645765714679225899624049338206352571680771902109448719798504636344353661345605522089449845342724933300503301103191275478104447333580493151755593479784123723337616524634832813137414353642242287015505321035607377348684257702146729704969282971456650356675122326214960001468284968014267907909534093051067217895700792481300158736742372500972812227739744546869811991030902961454239969791580741283759941883488959911244057250005408503362377554640251796811965735423879479267567496786583015210006173454248498599215805794824471846172793295984882093824807087877043209299092286226364068437704120553769327735010394078204801014921296218841512370484764248899950483551320506251564980880152231493509548568439830913680501537520789270553517937631721256770213483665884621986246908840072548124951477188129410683260724114531161575965569594602123186155766686900380774195741764082197710300804026666373997405712158773449129786022489471470475052472237996718913555105528691302946575314593277063600087861391297039172851677584701388863014848911352886920005178518198053759184570470228264585539480288876365295389224239043831436559228419610841461108691621564952267590532428456691824718406443435635846336464652866044408973323899023117515499739381635588759124671469248803061041594453192386899469568937738303537390989423837711720287065254889709155671327545402641247898702601214836916990998502794938133749362262380950869475623215598085385339767610294190749121564857102317779706834263460409315399595489242719733681524288441184574178613708988801659282467659955052218690766292442680662443930325805987375507385824056509996485509874580396728488845117594263678371224982400748891496004911907408392227050044312021602145162036762520254379376568607531568200725133134112444586256723249052393922309920245511794370517387050850039303814903163604837222516656552027647126087915961181159562873020390198952361301894723339249872634416831862644346353988040007673986413776458888364419276482055086661070105062002048255541159424942881543538703318713579875204085454743526888970140611760823033587069704180940189748234654626380926007515196400318656903308212952171970898102021991944951489221342510043994261813518661363487561766752651983856453497737644702456273407056176200886933378639697591443716013387764724573522619449054882898400736708798805181604237686082949050013274802483968219463090611741945361648996697626153798789849732557434244255770699197924110279046124792043672459741901504398655239251471704813563926809875482040203206967971818696139182214223649701618104700800337077276087114093227118035972552255330135096111841019159999306962211334695585434072968364106076261621758594359663678235104825735725323791978960886301522135472884458881908644527977550958726090001214760958140820729873279474008821634501783348602701045561694223915511710483814853544029861293340882077443487196866629109456766167128256335748310966716822395808167210112575499329652028350257570752046088035681641061176193929643809998097497783567150672186262740368849169933078202218954957650272411391311736487634210938144109253874420336959052385197404814911777003935755968977049850054219484052739228263481677202673383852604416177028023568280430190597978403063211045966954442546684092774802388650367054436443178403355313104682664910908062630595387032242026690708113759949652465316529506053638081896345646316473073674137811748526299392017040805840172500130288877203483998968299430548017558788003744853731014047199816589439094774145670034054988611959288981554381462852334961611794660729588759303019941326108504634137736042896060810042872925403053708237330039332126232640948793499639145535001028125658871329582748556921439319201115908190871206219249126551281233173426630166218154614538989954007419408683806401138373177488069811575175221163222842002375677616292192986254200643825115370390673557615101927414064496423467579164236933944840284117016105444319835011527519489249167625693967129658227828823224895847586095376830554837857761891951744288291529054229997203202486968793113921122865815855342130877579042956943345998370328940388899312020797346459620831347869812514172330647400077415493282545812228687002030476380299632983001043490719325880976323596212797414377016950606006488817091375643023778992079074947609829553256201368606723511473187691245714149035184460299428570867205134683762608937968224011608124733894676442469765531625071515355456987794125703098321648911415954832521187992408444477519157372752220922343028436971779468821018313512522529563792072938444827312323381419770238178189622280087641913295116796594134408124096084154410762202811353125158641589352835412455212708493084196949563238841332208535410272255507548897278013038222108228538306405179925073569897591196553529210929062673560759006459644792996335953477633664557428408816213662600247143975201720709239418992389548393245393250640936009888407782875519042626514340740519748582557691865961350201317366310513496549393789873814612380122562423341289153479485352768141932956492177705271713383933027398192525234974561894986838032403972930598142860118102077158322168785568266645213293604366839747075188890739997000210135042153430611458015598985947918272134667284347746164200409505399525545832672229379956527890814487849615584999007411963620353124644894198340557109177723384469591613667385765217126582990914265633596818545545603761126622708321313090458095617888154655495841808726217578778519620093597385686577124601121992283920878173654817810003363997005399321323650270634058155563081356880370760883514803131456393137701393449055628435604814115667538759992375792076545873957155891094637025580980436389710526399984023528283277954890241729755505087954333549634434110157652632996022620283245082151572217936158079956532201443868490642242174504725068631166676700469501105321469838673172433510084668546832652798238867317579325270707029032002644811469358450172752600541946488269269405387880684872275162006927729453085955798454022593445902218365020729112321641341176995133937487908520932473130924338644141175975667285271978643600801284537331869701808517733556205030054230345827082730620238726248992030276640091711007745553361777077446514776794837505478793552892515689785948839870266174653807759836814685053020820842645681443590133216707404933767057851900415807541781607256427386541250961206077395331949022664581028147077053538500106713439342844393322782212792525335050209281412716129728734560921639170705587937718105947411739416283510420749716241782515240063131999812184406639288894404973954941410189280691112411782496215950214671083386826639790525160333012805768956736327499965805325757494120879705465596474432472851622298792948358501011171799716577437182489603933725677182789465987289678107647688913801698789082172178634000158427004009073581506823887881919766178042992892936056639026308281188194499397637299059348162938543701832568024602566865213110053840589503624543492519680282106584256966687118316266359727588888160168996124598648689972883475579817718032499611575582198464240873235436042427996152018985348434497397965140422483374539325410376838764957318194882589115314199101606514310290743128064839038486068766036607757709970811248096118058263116596307627928362447595079342192793809203037777697712014097714144432020452743951105039716468351170431975040152059453243898376191699503810181922646113429939321599655825406838199266890814555654948068968192227278437713193318766858973811382302250823658557515301650487673642297038740207436586612456892755877423398117728910873839712566833106595328542215447711492806040204057351290517926226484326871712533281742136678837841620092244840699202544668102768877851142865592669411174477458985537916890381361821242558980900213116043905588585183632660940746540111782433473639877697114322465234685838182276685075691892413901833605370905207964987157115116059450626920815571994757396576118151662112649587359856648702800666300229183125903827757062690919939981013674043364794734568609134416848841779330188479978304103058341883335341311360983425170041895739341445477327751761736109796109484655843483853704350030038096958490607454999485405921588557844336278726689823156361720693102733999428554866125437215912146771243026049447813709860505453404138643918549750574331842013432148235977526026654113918785075905339360376186877178821869525582570732646446988811400037660599076433531404518074954384776138169055629437771267286411272707314981831585684810666467297152210717693516491763625976099912392979192736819235232923490724295240432816913148608079658606394211230854818521792141902794286253059362039418536806754291968124343092473843905030259315691601262743662793512664939295609371449384885253184147043670572649248903810084976244866671296788399765953156698986770145139854598740726835636613967988214585782598800289223140394939671169454541374020929397569609645821459789072269353905258752730106341997991107648591469552773288626219475822137104131167677641476002646610710212095678829812372347494275329518102390692371070681521917327835346637773718026775411560078951404296299223544420488515219032216141437552947599938873867418101767533794587502775664582996284035445255978290579023539162198407937774149343305709017080263047956269954445585817769743229745386077448787175762660484717984558898851819089925860671717973062976117892155871844168843290708993951195048252003522379539154072658817673390389768005027847086386249067493615086610519270476843980825664522973274049963113129670913087222098865184378393312231488162519605816042631556856728605626909325923317821457328040434753365061991780318127568257744411480612408134855300915854560526111180953582996608541537018651871693791668442458301426595836142628414591385395419552468103253189260159861471428489802052748442534928656441049893274518037113425147713576620756163135356882274132783954575585856063273668719916222470571717701260758604477017358835430192306088156539894895244816160286321001026508978487033833971924426008079538604857452582872956458178178441170847749910066876909395170969052173437015362294456685332265702254757311855078169860996612627912948766412251993239806315518302772984880012254587212224538414365418403304507519083189563750931652163690374580223956125910372124492225291026329044248477772713961334962789493140815192923973828021716487471582401372235105545610159349217689443463481277728784322539478046834063841832911417595386934719800726580359675885675718447232533725049417747462086963663319788049853579834596750140993227186779193797425106776486193135323672788534157623474423007204522213221598590495712120409831078783126189336235897787634850939179953448936157092060891344550727667485156014611863101676248747470756793742494100100412037631674193375301627236402148535921181370546693624435636579808149003265347932086616317520682352472129176049282442154459389861478717960570727056313388289338828941520598560246189523880750741302151951097328106979708863666911017288234848595764126832647867123684597248917548649003563474403595754498767866341847763838194018891491405934360794468526436940746975509189105807193092054216250986910884213497445856547086651222128614792799233851745946464138759916767463141752412743785020206526488588566651574894046264865410038194458302053860076221042595864401707304180912261784189242658800930818689396749342007035544821616529739118649011269886232376091743552112770667487836436095087504777053018907361749823476262319841285227134167832244889432142403592703457067240039222487896265804486999037891087161262701832117227307100609455024095409996676585630849169921792816904383592883256351193871029135874174997891917518420234848102035189801658742918606655126447807571518765303555861262877880012858025580182978813082582109752195700825111054374254426992472634237282938333938930734564760723403155313199445540582747942748524952896216302140717912827200017960408735821199160155104586168840402963224893628991181227873979709610604526785948858643370944952950259529245807780613868940202928470668585484941815140409460365244319326460468276036547768789512160145983238933027861174280415046936335074010222388565840322416591874150056419393112798200590758594290817830037755778871337255676854092185504205607615511065635143389203857141229672409733403029335163256392975249883508830039710124160097178837364942876420859700649285967406976105876274668416894951652712498239679933088196164781625190090736491281754895983938927297878164658508447526003273668963106004470395031623851471411957839346738792968507930392956347888298619598107025713054719672183686954095776485262019707170944408842388234424233302524446399235478170572547025840627735584374142373960878890682478134823287827838139626551215587006679117443464273545815656055298130523579467915324307640683004778021521902580120194396118224004077864197294825088615206581237904185711275168558869797810470266170790239881714452156718131769338399422693241020301482930314182827691662526935234187349789874205672831346910372813934001432886282210224741168614569910113717836850112169206251966374249208384919359674823094201964030688260898407813628392102117947439228407444158699540745890926121132423040252770355940994335763708759146596833119009982744651662836890831761293845183292616106178888923017817476508145421035241031627687576734811690743928629594650887093058964730969614555638965681282563291334691263340904318974121989606051343481674199726918588502902472820634278406175167818161461473373787058494098859626281350665939352094990443998788298729278892579045211114709652634344858781641845481799351980969312534943974962327796667677646148616186359997056961115912184513533120753265096464869969606297222878315845639326986073345822815669714334010101011545647966679213697388267084966983907990603124966282785339113514300475052173845080122777252304662687355693808335815070313098893729562641295883219614567760953702745071748250818882937766515870358327208902932124027086259263835241311789089317752594161547966479710669400329776824078861543684956109841048181148678334668180368725700939818963622422972608121116387546057152226850731247653400275960526616942284515761483927659116410536290803624795508870723527760226487423312344923754879901137817479871086705236948160695684585853563184120189898769943014381082989975875927232309252029457668395041049958145886041405927930363545033412122711959113396145616454337948019497951841128202195098015963670007621648059119782857797605895950473151375478867135533146773941874286987854802722532578610043363594991348225782165988236968967783895421398718340259673174415576214461513153833490421837394634495200840981938971666596341001677662422489506958020193574477604338644500844638628890850585156531041954873757149110550230069302902266534711463899063401449273243597393514412602345657590734483936672828446411704177941858297701899869351264061165628880291733872659704326895495405642800132081206668473177255136817167970197655592069009655707597920421851066735634960144855179914115907986441152508814548942585861450464130226823075570594502607204276907223690138857863857644697526195048808206976287561336038442703694694989503746171930283134888961722818944670405170100959739382339260870307119948133585188518018130909479151546432915924893017159322743510110738312162919848359004262924099110431597755736764798357688151012978461375687885524604916957702123602524145069872503577130890876648892096788558165487728818591752068135452874760979328094708735448787195098850875365820955353753837813234804685082701028545572973640859548355212031055744589651090335956369165257244820470548747802505495670977662344823776286039710928074691710007809347144024521200478121573335455802835130354614807355614897771878572311569290200179519516525102791370898548814552797195105724698028921890836801300731161577406034430508768059738201280433229485941736435347031583744006300638595345060986604573717315963338497898848493855213756974476692730268044201155998411474719302867658715513285939527369725635859756376081861123584646716943665882243272417205170701265606564199619106382556013224406617426280706927660155465614166526907121147109436695012648175058101756083829763441212989676094917479428773814016733506665698565453544718699418685706197393057156829683624238283755573099554678310506589250757456335141311566299268912612412535360149981613388394343298281221879968432090496280916132723215460114792497002328905117568092602614599416202554145672757956079644529894234143611929184860959565120614728833495214946122884646442558963367107940463375582346218227906449392830699319111612354929425965802190467497288176823592167848916089872089488955578141307311893630746026875482320637799152042499549921255430926114929665301740274053579353059749920053481118402819796275993340595858290018063906167589569203113418748948453576427419791899881565036263172530670944973520057524387187228156183502683744488661070348047067873846533145326048885363962702540382240923011986356714360360803969211747335969939643434355766351831978513296317969142059084334302807882789184713613363070523852753005778900501795328848317316666638243786356833057607706100814394924995969687275297846074208186104178103809161608901721358035521142045262909682500912903743130093561679776121797324183499147333538802165668045028293508803519397025322731223621545393003014065147109569319435818854236799139436396099399276298962141191606611397305770295642430933578282297878418043390658815929571212671438443281655425158176279654280111472100555526170345641033694144252277486222507933149669126980047576580825515298629082732759249739310061128094871663140481655894743455683707794162718571249800239680796836478462030442409904147459566155101816984022873329508438850308440314875480597733659580782721424531236394990233079470859669001487634281046783665156175041881981068314432797635105308324064993762132489596343677557874310739695244207457791148452350523542847127492406104028307237352529636024764376833348267805092144285905471428264723895680931106003430957668409107427858706931909150628667512866693167967018251016543310199232961820292755195297337540443286739980020176671683732258009951756106545967026657608157147468152141683129563184794694404054725055791665398384340237908581969836379483788912550092586228977243661951443782120966143668966638448854510355980162109226041409473873415939034803316708896966816538516936434209159416876755905749868431062968378016816698127112774663363489850208580006368722742601611230137692558802393428167229773020554808002092818084074864104166592604370397659199482503357214564208382790314295537668926723388545161391507094111950576444162319319605026298714541080211353432289871228110222165955083488631608084699002031483920655472572953358616436184879476972328718983258805645503070229266477909323076567734637058043964682524461373792846386278332176490995544623595791871782800564944116245550380594097189728594729656722862779524737736574941598568515883329415353505410322646343724742440964177703592128334640106738084526484904995051731412290334823333385642656517547261484521060380637473550070212851345946361556283536700259588767880334564037362734180552527586036553425244259290598253974704116466166327102892289598223969786830033293262354492230930471048720336605797309171797370868813682331985402929833253878020757183887675691057322432979572046477180140064923534753046932616964793801762460747460456101099012934177844282675586855731577484888236024194355012798107198545453174570062540030847945228557342315655947631287814648358357198997465524342676858854881709957871407430984743550861979953718621293236308110288337828797895930297173222966164493028877933202806567097537035546710185200396255844150595383013964708143438140323559623657815715153069150571116403171872146853277149091967961963775374389724967527444511231151568952800653168662375342166850730800385981183585506348637381354404462760640980541756547431743720176590025501952320257136296664508368775254277010603258937790886548021968272878949245642102523291164022216746481183533811690265730526145234798255638411568474142817321398266725756158596381107955162178248694348878420751428550248295890226611988149112667144440528652783402140414751872797161661878358332059571787577799860906223243501568070459942489165786942947565595472151995007600753025442519834191164972415225315102195124356467262473301415491292035414528450927001798499373055552241364700531262391480177912074091136944845901102532245544276414056813223757022043183476904822837832714205650200405103057590213935491353670019257347584186122520378669592391855709476909101989130737614318147630566203439968326044971856042041441499829194083175489809171499192188514940268700277553996683984120685156482242071554701718733186553894978914386110749725571767695482581513468396377450783893299695221937495520361835541910193016316084270673387205202796821053798626309223775470694163094892242144796429553787514267452856796700104411736160310439204791840506297597152765596967060439343291895805721289088678358123886047916226344674859364419987125426964268705632475430693105169726861297105031814608941231585024093928314647013449832946182968117594627232008927947806335233547628894432642785451702108084039887353515173682058419769516390686103995088912155581121767813143070050628576811987207439887004828449713860565772598753388454698418734845087564216535733791474240728155319149645138395081896037322828254976610492971331288161036559119702504555510395868770046685459377062554467502783599705573990210044681819483101190160815934070209744977653682273530490604717868981064375844872499910986485470984099023401120467698972050621691998795504293439566252690498753695520423025329535656289471784140744781507202418765815485050139078219083917778729888635275728347808830710009460663577694271497703869449422100998440529053131281451106802434260666401826954728226443313736285554489446149161608447357246239773949437307534845837148328856677838142870136012640017052675666053201652997388029874042754162970006019793646121416673172483798170209488268710880543309140359800368868748958984623398602830946641549421728578107974162915433956643787869035213700365992692083409897623590304673487594492333436733106635842079779431358818041136308891228685921028669929716538103040546540221060766525005680690663627337565892130686153048634630327869664294321989772550978107971243114095289961091231564222551486981526713657352900642871425329392960500085981287915976910696465376368809835990268460470132064575593951203485599081785721559816174175515436628734841741114727363165962669111597396574947895272681111176003195557421700195937962609797687003334018374170138109466151532654705652873596474862243556552489697385107100987345546274840127783804182177025214293220131461486413074903462454733105954385927971351990110163844127706175467081352174275564724883833705334687570028939678634857193167270094814717146561721135147289626171122177348949288695956850645936840629635697668367611749581350575741281506160315702814231044581259366847599331572909083854148789057730927287281599681809460311934823429858602860215732031721568897792490301680598965840545106033978192038154306714174622257867071265915099027693872596598967658198366159967961886431681684274319963347462212399045143023781541323677696372744127544858298199820178392308509561893066507879086432494830972383192145817831283830625485793015502389498545544845080461402403261034077518788662301179766512521640360780412752660901836748902167750644707586526542964945669039662093278632603559854640847317498469641375981041831303762423934865525951546283969645351418036128933933419587490211108901639983335418085675657544423847748582480146336690606400100417782482915779951384584443471368157869977402612273251160755852607183326673792826686582857060621058373173976504570554442952867031904502291057971844243719657500828262035567156994584816517276043615707521857711768810160814497343717673593437497429681848283553467151602964839261112370348882898755333486994223286208241739152470305091068011250553532178502705750725027418749104862209066592529834574815647079503258853291908793035376586226621852403125234929399629907846540961673046544957880258587526760032498628400100515898635244676168600104726206154303317299600582032433623026668513798210010296538234907449366514758973223805215729109711414869208182318045048095500998995723263057267582695963520759765334181451763343466607643640730624243262033687264339027572244136764762612824416682064476353742674512382708144224625784298527963465538606796610298222288928112759931919859765970185101226937290915082336608625761623096744474754558140661585243314686506691790522981026665946202730307825883302448470684362340691051173569015073273387952585523770242988772551093675135640589622783253450849747581116586561272897291940725111131762042283414803224738547280459958128754536531520225580441593216180283813512770090115828917019104961450128921920528759703246987830038724952731525929067108054133766603836003704421662498139453011183235869414173768574993030561488075003352039542013856608786359861333232989143639710578457856926633616689712944674867095963811554213446712602134271115780917456635190846152968813516666894844710182423009764409742569040144939941969191916514866143975600879559974548337404836367902909790854627898252405674689382392080367676062142269533018118081966516628679058193675038484674928919816074505538077184082828021930859647201667054152346016525222728447485533152577481756006653853946800592483396401906536656699507689539155915221966739267745190428128651148053540999144795087642567786377860405913194498296342457373818321177659259220089765756920158871271671841877040040968779731338790929252880221319949269713888134507186189126999103145751708855121265702085940361078237851768148011166962541836075277669829953922194411378555561483087526985166152297617121887691279107306414528291587916148875242356361552044758139803148814386803165832069519790756727058710380612471464727801755434457132553901346912292114341769546796343106564376785730422437836449641544009954527272790781050210609596812900075997221875048920005475672761414453483422931191015342289369279163338999297722147946798603953816162727813890007438647664333684999341931823099592715111987590272938926258915434225571541008368665897482957508540070827680115704323304387913446348203086267769647377672042594303814623203573835902000627318705432160295626459543942168033529557885869425366214910923451787235022907400279803393593773449656400522709856439591121445082359004231235248199054191031890474870334312712559765845709613352462529137069843883824361079120623295881835961951494918039066093659450562911070504487402960951780014150436227540180839202419942581991934108212353238988610973175617476829916984508963237521380620843814431187784947942732427938489172099842376330498990702870752189220836271581855789161726149043933607816564050040199601686963858252436319652722001755338444668270304965422210790508063596280095237809179767782883044169125838757487904475931097076611735113506181513011256542917479146553248563651105909830212857338642005087892783495574137972140065349317245584108415299671722415933648551816206567937721786269370382331682258319034975524652427080266254935439451066160801026320648377987874825621041507380558587862885981165698054653869266534506579519275372993308098125588561966162048382402397339520859385071703841804535258146620162946397010691115955657815471718159546143292291077412430182931910292104645419177705420269185566080999440057317181536182609920899968125844003601969840827602226353995573914967076556702119606375345506456967367502015173801478182014675227860369649719037627435524679345415820419733053296421949766437535600612492884627774125605174869703376264240240833411749273493791023419169417692011022241813336534224582101692226093244908190855358764009646068551750378976534138687760744274055468796738677753300577772853386335006433317799953272195238853243066643104063549506180027998787365634638147478523035646086918878588203503440286288665136030760966897327101994769446585302243487145812141829851484050666425797367989496000271701116619901691199879730668036814691775450437612003205052908205098204115557938334560688083736060006355496331343273576461281248357027767981266638876255458448719401489481732591200866203371318658347507054050896348261127949188644341882400780223945983063901724447833119876555439923163516953623046905948150556290626901755138907265411424491628916531436802538662359656629222531935420158765837166263972285354853137886544532776365633864889245173100532066746368826626328393887249895865431916255394000952646347909519166593780427792360683620638230889381598833642345535879348909461893774793549759924895157058684799583199533739592731089841577771701513727906823891121239980821152370715511019226766446654367507088713117318720673490171780701141637091318361691621324749540167405849356730811209396088301665435277420089865750080569317124717584115368988683988345716273188605204383786274479897409195947105768605063135006753502085717662399451791278459835125055351695499839836827280603961941622251559972989933190535513995357408219694395501642224857263962192391349132621476916657110445309028054707088774705721265764844720387075645687710227438843044942907319753955139906951296023837225456752897245756285371710669231330833731266425610799055095551910499161432885507822838777283787231655061888934241425572785917924597883415300987478016782399696127662109560805267788354053438464076116806722093179241534742693172920371391135778457792639786906044043546993823782342118622615464328244280084198675917402360084494130493332935058640100790332913921317717634323291549059134927762882292086732050814795265463509431809749819699615397771985825720431500696719481092933835576821524649852825977949458810504134922457798537886688756256262536003031184692898960189761576926668058384501783166475811839674304038940789604311204659849433820063539667209269186309226247898692884030887193607504172866688593856658597491133675908112354239317183618649556209985518790443649518714778937963823967227465305736525224267566798126291727160967497206620150979015152557454320488545921565982165569464571507165020028189807764976765008454269549507707675589087295925250267355454413807119658576784319118144871195633985787116590253596095094219455150025755002874832591885925264490456661309117987604675793651888258744466028335109416210429764335541310128256831876126747016972078258025123479060823987451019724421928066702857572587840714223325666116482719796021186027635550432701123978437274992707750962206987524124997356755503554833306678551624440298051055634004742892708074645147722034434980201141169654785685045851102482884750984198484792252420933896187564245192115945136057603587109500419497539766593526147868146556793655511192879052646045063725515954310701954815444428803255780818930203392398110722670415808819563298935951261625736257436813924024649661514245587097366673798857038692636177626825656404492516338170910925147487870796244760695651009201355926726572602599496347668396382220024626756873789160027593679673192496789797451310339991539118989052921428835899948850505782294822578397482304240057733642675981552476808084981948296030208828210749924359826982957638265075159884883780952691639937153793397629703682790410273233823277752536559097246496461169326404272123681154758930060967284084518395013791030992975120940430836102651308430846452961136327133382027269951550351411964731241002991814043257866412659482293318511176050186993445791275460788208247895739532515060398591791029136716563301836062848379846375657041270644991282471949219604856673335484724522864626740219642561161847628580760609358468693628574290800298641207508672071998532508145090988468719644876892631808413063660056065704680091195666513308021736947398070771368497694883253896159612980754521297315891516710728766260738994350405686736264823483185188181098397177459155738352010875778190992888093337213996675242463973620028071999219683914579604710278755483693795819226216933729174675560171309628029189986653282931765024702330980180235678577803279578319509826389907674328767242633499301088792362815090425496483048356523292695304146882554193542119265297988887995010750740116301930139719518388954673177343436436556744505667341150316226101135344444095981937393502316908195583151023574369513726189922075019356884056600419568711652292887481451437084999295134660111287846944669852756813940830864748411626961867286575824890030379099141022775326881375079831292921011591402287366113629482610783101622354795782467205060969568370610140985023795364106306374866848372741091871556512503673143116541051199327286837178561798882820509755655129238496646126626433195998513466794773018749307226429722240545731667987255966060881267920002282211371292472729434091390392241596447577419918240659442291361924866703411066425296326463373585666531225762675460939132246994901922568826288101730481657731646460838135613576675017674430559626093283596654690417626651958254919545865406833391204702849635911100389981681773523292670359251094139824971352920215539000599766692183493018472559292242195942826978556698295263228117303724647504100785545816207570331953235087152991326110364401269075891862881788541833155289951534190481505377215738699862019052436133263380753877607841430495792602028736327925080413168439600557186390461492993506487823232343506830814605266116923926444062369596283902598972375094945667271389393093331103228085288503655574988077297770317442578969360596393221385734024750351319978188876783439364450040963260946576462183559060108615072724755096922914112478580001595249968360330498661545737822674346315093418482840649079059090088366108139763780225308933045903009091792664849366117685743684154743945829976940607931600212716676313635722087932471430321694767749493899185824690820865822825372630890618322280580107046602185907552177729099430338763484149409494662135111103704695750109494830646244327885392196010529923089490190530034884459499046114191067852580216085021702263643422340284973787245386042234551302597725836428459389960542680124825039163871769553149364645560806873679308027483993553620066981077552645774950227405704539448568017485119330158692542773810215718567027568303484568849271000864027760781495486687124094490820796529967760706492191230654040628345010776951295869123353230073590405267147611819002020274071992954448939201822575359559764207633591278711302783269776141664299857180836786188613070258319430930780776403726048819722133317756791818240045046491982052997453145654111865834975827374816369797711218723397611304026337958447897421916361345878219686574071695127790775224168643404414427996423309217292865265834444203526371739597562504135950742381797093246349958057123824800332527753307848679672124745012258939036819369034101675770635268515779951330269051252655985762405198468315380657049256169843933246198137574882987187023244392212598207212753309280760042793506372842020683192628620396038409395094506992584465172085700734700037943376211642560012444852689735397091225325273225019830765812489958776212586920074869809339695327599670904734374868044542867044944655588316928576426766422207706258938205764632824299891516224433859911017123715845086022521729036142314476709267201450243856218142511465658142614454490679522173990990886886019357041493576386801977125198139766071698258497224224910205673492492469943600411261706378972392090366619511793884720616493541171166328218678797560692463652273424553208994323900218975598990737104218267964934703990406399417913476385049121654284706872112439154062638110917537149648192841799266936141114824031139017761087777429149124610347164654761774157144426705169583135895837112198995605845767213295794467580081985239646676636987889516003988803828363263855914176933192477060195001589959643565422759610771157324096530078037477965511242139229068991166043469653080676477032112935549477220058856659196753142652399527997455888099118857587077649497975959670177806966238439828940537866137252111326659662421345345472081574108084927839585743968644266676399942309398549079353453697690844249350091425956638561610804248458455234601345260541935911509589547214635703093434549625029752871791330158845836514620010028698687405809627313656558462349180348210022038761433050679630100753400969972622321979262311421166842044918866412234808928503913162728946642354337753014385262282889397207252544800258455140994292322626981730293015420229321655805209148748743247327590829784243327898091538831893938732330055529528760622190782664882290868392074455303546375176722095376697626298274212510191216552477546451690587329229529829714352117945579125947265411992702499194631156100787484707024502825196531572979581309411076213797189940870266315145919801941310372464899471333275793508321293051377051464972760448956098368716098612766808952835542933005868007123806134470165319415393607538636434679653439735071223116270482250154362270553865683126979124108462212875646327318908129431751943841789705013116972006095492841249347816872643517445244795171535984742605875260477268313876423821151382308836632416130805988956781655769512374665451787980398967042643881177430585005058144761900977383832559744100333318131743389748059064443845760096137649630430779319173679533406428374553679604932663694576040338521515370236856447205231780282621764953034382214780600491482659003070262054750088546524674333035384898425583699057756925887941095870889114499124201364240838399210895321221360691406455939391281567759533554805561388254280682187262473517451060989786636315196750594558875682127655636891622333649160259170569109906727569601774293044916065948588288872236552645296909534342082072758749268765280086415439536356511621131893519040696316364553113427999385109776138573125847331526016326043965064965664984384990781384030495482456714091771151069874083684278975416625927163643938543070791115864053318051554554471176552369057517283912584196531523707285069825338437526685348326558428836589140168453135673258583532717337324846268704482217264848264774631322704272288362810111950237265528637908302042650343192330530584928725784492945660309519174405450439445507371217114112407444213721728805579311386139077755449648343802234098848764745298738457389973200797129097484892991608517764000590800965460030057760664298047820981288260306178274803623281856340597048084954303647027496986193400411109961570594037214276959528786202992506284421099902189922319023763163414256568709382301129082160970458103812988561616183086473503086298622841866877310328484626463133030979014177901725458108565581926806534124855751894628454050855130952760816280899287979392314518982533956400019369695838692836184432608856908979864992898011433419474105154416278992316653596732285727684910349413113411084025259345334376214779549955893942927220684894695897482073101033018482946118970209414408761887393454123597841449134969464389920819018338114745623387384461471075210510113291458646572116920025941136917504479943666738050309523924151207629653515384666679762897957076222055755738597567940296758713949270120761862098473664383914501857281265966045719833183416232818541466863146912851919976852491164386440057228712653716340289437831129056547207583188451428974837043864727911939861857805690922382311128006032702130394301230397197332082498448700317342067690130589631977273104001166341155704473213127461203360357311169189446929529988144331272924778141752982657199655999840519131366311505480592526918389011031055418874540640989778607546738015283951076639070001571057709179303046934096962522106830849420526301101444387179304033859457317472094268771044318018609978732512282909662663062793776550069584214371438525797368916116235012308927701058620457406159328321351719727887351373130389516099382436984859452461310338603426676631208054150243696856162252053559312590091490640537490676182594765189354790965706473856302681747984389857735621191803657268657128178232089499502949046737013315555473532772045817832876147283846913648635124324440155427572151217510784579974049161815364061145494299383655148656651207673579323397020826172595220378775280438575882088955482374761684610951127701558989219054380170052449703687856201084821870459527809141583617779114420912865929168601859578460443492981603750173790806177452504158843172280636392060660188114109644861813774534528484462218411024285037755553734593683475301117375461554651289056377925529898469708000185749972703164991492987706057151534668620667746907847271056177312275826075286979017012691092628615743058019715064492644731523062452738034569586132469091231256290431095042963832502790041830681107210656197553393296777511022325385414361770083177016669180732183163332907426589128592776328366416878617789807830705494217684738337243219439177353452519917052832540638288992577895543675218616822726958076207227032118778980125414054191874746105153132912649633000060227355013386948973385525214038113902471703843092466529557786764917371736450061888991541009592889629849614060617854676220490882639855434196724676448276335498863246830822016992421995192217176452403393621869575615049155152983868527751294524962286517591292848727529335734637826482218961745503204126106931720008494041405713850994325725609640939306628929386221537903441774646102420380818005570234695093858926032163112949788305419720195657460434250560008989620996643687509405647408710139468693172288783683272162600301549970482064255225741617103647697152386909888214150529178882624657811206758374834566784796592300007876185605983503075620713006082444227702255168407395310017208625851339727890794638791680980592741471523018718119588691034374547571011431453806834187557570350144972281569271695295951961756909774417275505209840783821152441571127928150495643903671890789044350995045228561258686913003755088431471094719662640806966496171760443222371536489688176325366534071133996194155478340074152365807290214982323809426116605706600058458426923724939004834683418271255698895163665544018002173936849146781689005422418661857263692785150005792263674596229500132758098058725224284870497838630093257630248614681288251179253351080993605434154729608430164721378464742834728771399467508631220083093954049600105304988352838409663758203534161065925108706505718685515032724029074293562511316255121612784692205760926890142888027391911318287880980632272579307602280090216503726715763450391577251722445094795828979199809754732867422704594900263381675389197605337582025761184802464742861712407727605864821300741484513262744905430155164803969106344452638549257868545457076379001517927140992512956928865262942831167587851857800507452289423786753168953417386409465256845156103573764619210279267162208947664554921077406493859048891750208695419915821884647407367513480065916997005345336081984224192651226340675845653373952363991627152025786198646290242885969835049404303114986305100075613344434913454252202515500929198618364653624765287270701623076233602395590724743648439405475403998172708833442423112226777175904682944446706958810513214125129919725776556137142809230457389029067375819555966938486292576985368568135251464160090685944454038677479515829992287144923944302597537834438430296702810863678582105754927879429585542882502650394836196443281590719625847540793863567936103802365348300893927546110384762184461771398061588528873260888509872802610159669708400280706582199916598208414309609221112211685114046753284097193179919449234024692740781007644909456882302127968221414988231620194539114496869557552340146032432835704603810643920460089326329794176665766226480152290241713106702609263109546089447500224828952875565945251491441453148677966412521692149753799793568115905449425326419099928942222286937037891661876566163041978431599986320572122460487535121971522920649420390882545296704721723247542139945237013712399170278028734327686524964585199305347149223997832360014802754475506731538907092435394902810488136337289190704919275238868357880066166066582698729762892799651508032586010730653608769769851198330844903245986568652152330962556776793024427764220139723588721384820606101091003959498466287013749403112837356555238928854477696100460315490564854383078545219718496350130181457725698723293545122852216413074058599333711292003350411754595062570132848631251098566325117947713443001716533947971342875002182743331107972704872657042224315987804555987604847536290486868732145183016913378391210435314867412804940887280645296900766975085074331552028324635621177383836701878963076968347878938351981200443104079228990707335184473385999055929397336063634483576293092584214308882504708697583601216829119266278186218089948619895090172053267614967889127642175791185362570205141941030281848327048266093842808244589129127992928175750977908547093250824156293154995249290070329755764556341873358363625323015948359483761760989123129913482900466319384042618686790541583841643297104085179739079028862553220810085644780987977365473657117566097221181343191166600633837743784597144228112146908758071879692935274145635584331670785525580626449213643510297037851563185441288348305504910166444551356256852044419625984775349493442456591348975547331303954655798036099249949708990798248542609291184602614329240589928045188108017924948760327031842749156333275261302681800171510299775915622563683018099034847741049033213660484463186012358094955675796771001148150508051472096116646513890334070676676926866198068828161928270743176289586672607836012610412206082780969646236407626015893522998614202228863955413459308983520396986124596945881441160809872380150092073932598586148025530352614224861879108716666844819945165116773867943713173130675530194810645741184653646619086910045328179253664118643836254202578332176998148185317894549047098464401195970074298400545764422347921143246971648810226692377155464217079373747753433204833653103417475304171487156648416666938085909025043341601133991957603973244970532447025947857492898568903559368263378108779422523452047402456099995986406424456633935655698999346371433027833862932757846922279117903538095700229000233180294627480932487577246311602610911927113914020945846227250213718402747151595717464414363071494630614137626711390545486177604034709672864299852846057094271260674385735915428113226487563550428285745467024949610228510234004617709223267815514860006381597364820057684609649918987782928671375728325366957476659580380837601614197004579732972467140982029944809240821222335442792809859058759692442520608838469816235854206933189916104672443538619226194429396228887186765232777712559741260585966268728994365122983336641252942828033814129407686185909366595193091579246246846945657408969416934101972624405334306080617691030861926876279738475130081234802452349108332760893311757903451879601347844434109996361519067638745202607067900553664671694552555733673687748300632377150860763613412728706187696976580772530074688195095660819772852425583389095365725886413463010909533321302902247415287429824596638322471859822568925805191601997298512869666597033129398776031426642800937875579632817001053818231836917408478468657278236622862252216703677555397787492081439076066178164494866717839674793539550547244796039072776966731724110294218187453248587201653086030138375998895486729108296951338845467747039903070713939688121976736291691527210038357559281995941390618079848878472345910234819392706558958726106701005111589748331515171682569982928060453650086012091477928990760665860171675487561033630264829421624612595441889429351720106122812192654674384047283322828443590133191304362484968860122483370259329078497595004458372883116763792857958808017412184468707055498029939201180691500216745820720095582864059680201784368151452159850748753311688073330913659645128284384028964931554424137621154461301420140106374307553434308332198089536288209463510125290189244706968327878366111769582381267341596973701184373552724514148472860855833001874781627503277641596122352873456063477487595610238095905262479833119251931252326096035528956815181727923266035537401569568060475261243177695978062899161190953491315711246337056203326738049912282645965196581332740134342450753697862164646613842977025030481891279705358820412155458469865763964389569291022288265776865798934118299207197044259425716018867244528302616645126698836884586019140820891284501924384459941821623976690298278419807775545168463988864503958181018580810067529068488312047521777151328135228767965046437676270287705710452384858499008526344282299016826237874500595994521214610794346615565537763984583661295324945204235674828804986499706904280140580524735653971974928011775065462385693299878387948630014805493610335501327721302793265372593762916213894698049866260286807674989243168756375085665078293831826564592703463078768943128068651333925236401197108651243179343098917538482602896723088291936249620750576658624054238064118282887306805645759113655347835009001637645475533202349937521096633036221016982792621071370817323256266907110936498529701583297049646659914188796258084159532686385223399731371402225652821713229324885909118102392710481239716508433814684448415947840344719656565451266284455845847968834918486677754981664774749880082710147931892378545123254077206649868273098769801935278768529853918483687336578947343182772275403139286518927638524973422080949276967429437345946450943344404932247236538414562201271599739442333973098970342052617544073220500466695471035779728061767798058474292141350413948407850756608103700795647767644791162072406812095768851703663714939314922534685218524121406162639319730316364922345315989903493015633353463019679425017439489915330881844955384060367253673529265558030381898858763694824313543783254383536201567092020208551127245052556563324869474418167993100854659072478166779098401317120605444096752553359555176076262762349369022951411101938241534181421540326947007779872500452607329731431308807106924471325750762785198620958646852049656728778464323502527569511469753569263905048843215817321088890105115078304686618288863386381133956059446100941205505874210686231126207637373483547818119770731486402827034475668318219300452367622078821182088272615255479511481159339045732344859968602579780153708447940718509592910391673258968520604804772772521223302019586260824990248478314738123028648494384157054335544610051320151002899187415304265397221279173075171586942447037729586670831837386300361422348598911990856143768797427975519498275680402095168212429849753768369651963206179049023955980388167880741555135822569214293852060652216790043310619373704920168414008026421311751119292984353177450896845921939747868459954277900311300659931736831358099270753730533604978234281937452263627606570005972590094710253849864814437867392591049692677313499859641374905055203595318760479482675161052598728767074455745613341574985566048343443493953155733582676239232430378711107875801379618927666069698055327583919196105553664815081990030312204544068966274526349837838438267669623224106280054003702440659771738337716683122862598418451979362284281199496429737339666448901760570269880681810226968284759527877797716505449942484164799028298585670082627277230913649468735679382580456417381828544831029779464206143022731182169283922369429807553444664534646344050182178375304540971045702223265071899244980277981880486547198573514557109551933522504255794325225160287955464142078490364261582038668213613482236374435267073455200049073916460708216368686226597873851768853138912938897357223851595385309948639158028347274428482037328500329946081916954697862432625356544766621276013127593568586780482147839235784196752675945979455215607752693632302230407233002926722627341405596017047117375171677706686992171929631018982769165733861234766351208940357174648775584193033838689344714991348170936715353535755711719692333130144289877730438375329918295264006182524988588972587691125249501965208452468171512058278402783667717142703117605021395558763961957423616353873084760496220519515594050567212329740314368302435297719893054159855746210709538787755424992902295362137531607102316301003091171859957084541407530022203333774901319844406903003027218301297413430107402843808535904067513296921746284019312876195857044743427222360764878060756003522816118412243598483049557208274835432581823606970482904630169323625201431011456153178511704420093789911431363069616959942373746615635063741360250832031474417045124057056535008530441517218445553470179378548838176229478921069064802254456874159826953088702870648669472003892103630875312996156832636045339445933363572631622106930532061743614557469789117082462059594485049628403092072032105564536682513546913201036882973390455832153809600227408080821008213740943385597659026690827222839684333491242846295447302486261041838579482401165992032999620003506270517657715953792260481654478815035204489699477387596597638594039960450313739307159315904213353899344777543762818096033313098406619935570831477100511440968375329022158304481113373911906049659425620083813290996951393239403426139002222638812609907056772315241704063177857371627192169881805331901857782770796951050935230332019686113840261267581217001833284375524727602041495459865092537572977162214138518625491630284281669543672667540704944182114682350691033619705975194527750647252782435753872367610932458589881584910375854555050280594587231811371099237002896330309034823615546851206023707271939609368606508866314247409990363143028767105232500469191862477655796942810511649179934554101941259675538296394052049371251793536129480825353291357316002757462637654310412819567114724161611656332359043964963124582502977454534701796439261915818971074620798075151356679173410248813105984166520676101847015362007994519176603379062138604298052351409168232730098987768180342280600808007518841793249467513394540075672344810284986903283173943344998312411112188043855708105646094683905770751990531462486745811513288532156767777961659709190768592193989406059105298603628729963410215778549110143009892756238361625731089360617040038238670668061662056393500911190189152294015037981909025135820658917165507549126365478311754129421337791462429501696230220639148546234026765922233424601452906217713345223585154214156079941965412385758946532210955934713315890069571282439772409425894582360355228988316889816439013480916428170793306948736710935016726767204046310620045057666749174705662968552319231360097416564059974231844392105331997661126962527467094605563898238602902696657763259061679650587354876666005557639331031959673284121634714207738744269574140514689320428668147248828173334505323455598094565075278539774948265587571169580571739095388693281438520337227346661741623946119433997578181109612943554969047604581777293102970082948864931549640455272375494593745539612853447514471181072075854171425075302774679795808098440170535801111204731645319431062152080377704218774675479505025201390568717159130272422515452840507736556849448337291462743142535891453690188750699933691445294504703113809879155029599752881980047520721951890414686366143620642192897734965188897723746851259697826740521698655688868595283851793918348487149770453246400455623663642636704876720960888274467897508356187331692192355848736179191877021486417362221435480604379073610587667377795762837815004406065581350552852593531254537430546382541869289958251196415446400930112144712094771562885582369403274100044872613297088898339522161848527282774654179330903253619358651148452940591483831717264252294478149388833474747089249416999996928921372139621184987112324165391441491731646262138498815509725783118242378595363662244816926984059112468584239281606596400114176736565992125622953307650840553314980225433203445235639216708572851170887964110449316463498353354290729975328465818757249583341929184487923680714220813891664444326254710523010210882023913307010513930916297923824476547979031904526175865372468516716777508269302490018063395628989311275543290501485933412452449719728328377027724983204767877351533947640282718764236240392029321032222419012521305661170794186447263800231170802216585150941992686986315647914613776960830539512424890020705108972675289906701308563853813076007405192143267426806746387320087632827339422044102201468862277012424963280828358789395976311391839319839927426081270404008370485299825016145194351932264157197107606463250676986580704016129802221601043373304022530207727673984014079362646549795450441067550343937675814248814586861232202637616617607302206659584798641834601812062799010652259171943832955366658874230970501015980683253481404598883179673585738911154893861692988439494045908661272113725922837955179897969151966990924851281527244650155083930073695298510897557853542059982063281112021572026141531614705333269255232017890599152919032950888659572427925218649233513753903662701249684594207867026879852987408796464466833791395736088302174941890468361976777402150055038321989653675749086931443648178578255056432677810938383364475743064772580485986755676034624078144498362410628640261585633664267587630634787396116244552351113216619291578249406848191755077710251599719264825496510045371926093660779714865983576129029468176099105496422998518174263621137119555250744003198057903974628627301460197763788766375235541355885956530854849269025062417140052945293157406978013745352429324574328239078467113793255147625469259070519824357548046554284481113557921613959619089716907037146336651328949156121392767520193487377926508014001972947788039775873571858770555898665845810085399973584430656250252573661184873689266252051582648171355225374618564178115752557625902362823873705643405432540895651974411181229431512512352178643376250986682713633501635905035643073755558974633832828075689776114045263343523638379065022864511421545006247226771931093123330069941791817182033417284903602178296460252703087344873001705934714882765917066422516204317109878680228054128237751717906589290512511340428064735191903459084376146603140957705681575335327878251509854030222470979385718563758608538064970196792551016626868117418564888573282210074136907603619562793801010733325660260861191060586546535266912557152112842287811374337684632833432841634727846194521068840044473685298385903788277505050469182953852444311097950066249371424210137767327848818957883405450120544769628456596269976835524439541782512255096811442233281653152639311918297495422794967182813394859718084144530530135392767374169194379453369650300534135802406214356227655695605975330629780838679741770024616267756081111622432179462449807259441548018738190341650955789681695437008166879631243148807366446133919645999204811463653074581414555904440449097179183280296848500811921074325710132390641633222006515288738131639333962822235180378389818115931462225750357253254029412381046177111529814256101225301644034509837441586368046573435646268360652942153049190433115322859090875589246421073622500942445744061038664099656056996895130871924071685027607515847631228378397301098289276394393866366389110490776187699024989408611095553327142262835505316377616360385301693382821706472438317790886482046150777974351375656671482029334733802387819353399803072857256869082251122738987602769186068098278272143820313753996359770400239888027909310960677670551825148390776983633081091589793184977141798839554413025101878534597952765530992841579836192664811784226456615221897172164499547499973554876004256082254674454618604839564130223813238005793721701154650624947214010276578527685337050617536366143812492459969594743275852432357805466919376311416212157497220357400125852200979065478169322380468435634735038827788756285354573848500700140825449099626777466889254362152408774626217790773087441499557388669750131610604235317356695551512502970757112005067566886905822838183254028262157074723665880022272832553494772648576886326739805769462940988789179640059173896074468030151591054422151771287740226590429936711267503102143823084889046223999458754446083696889665177246436941806894971735224733646098708416047176730601983994920797706129940033612805200628541913408616543990107265002211648737957081750787592607644445695743475026291408786620055486232566751130062096249930494854361082324266753358400910236701651478392560180123252017489717164779236339204063126218219953130079158015260760351731345224174908396200324370860889995764700985717115006515666499209612497809242583928288764712323199211310399966070105247068606912371324409555166637071579715080770226761983573950784049877964207979726485017103927785826051825359330838283185669977802772616476693353953802292128997230803291771376750313211556324682764342063610537454932772502276019065228540312493623252641038741717027728984203181677465088576090678398283116831681025750668716646067375058214468443330431783900999796271625735203815203182327386788207713720083323495569002059249433651181832556865921453396886840917594696547180583769398906224707764255917824013893879159299681521901588356704872162849099418616422656418275298691840868753130634428344996126467396330635154950947818363950476990240781290068250821798950369729963017006486929301049257287365271536761230825739738920164553680622095766067781935917446430746939353953268018389758732320868087141211250140411561506101014809610245732049742205277198510790039400904394138381211505558979125507102060530253269211938793154573839577165455659312363468364485941688575056043830004223708578066018811723643534942125516149177946854785423483435703886725463078450736993671376393844302591884740721404903984061980280172661755460620950213508613038416289885569382391673300069902838566320104680847422980124213496128064704221559799208169252634930753360364131409615842717990621779179166997944273224837745652772025716410434878641412195817021647563692339011766660275298736581910513795364884851951910271171383677897982190388388513659249081972712681389269338147899806419197412605050747072218455655020751366359183904526870419467358867542853467535290336504048157378013953401698317527958978138836442607005836844432750617702268022640855081132684250997676028491414286006478792846929184090949088388676754551097980963719282053814165180306667874703835921603790944988195042082128681805083200421658824283132486818436792458162442649096252316733921316526461136331279986657790296839218357999041367613517543991483888973348730038028037605498189949026634047029698924302183094313698226835688778109822428036212567247583523696713733082677481093409160800715762579658078674640624225444655717514567817348778225885633505261695965195031193161290128086404016642568444346536031852055677785265583865381729479131808210410449921131557869104064770455499999831522387431053325595282023875112222721563962621278264890758469640624986357877077970484935712124398222768552484710394695353131884461162809322145750895663850928344228027675241337505106218687628694032503656051234746884227011950965926876964323701520206411005568814539509677984180383063026401454388891222844320229524459743533808401448900841358370206946295296028216879562785770402008212910794628273117049414939791844555094371442029790682834637367886813671792353677039707922837346910570961085779285820230243592655831322165513394385531884383863298614476415728002914827622168039762791857069366669703116259325209931932325507201484305156610224811306580785458801183703137229807023012109708447619773685051931173352195197649444951706744050788110834297770073826155766767678065327835424546949014095515093409647133065873683292776789654619094567101048830710116841067176589041435435681203356602782769022373209644133031588277357941360495440853410532189331827306393123357237248323969742017446173897726585592333437394978298482083741951247900331795623321046700375022006606348908655512904782501655602150456236430309887773374525678660416678391302734030810525576484344159431789872917207307051197443680844176509716118254988899103606985255402152763815994398634018584966354443942193134761418122003608073555587623645747400982029118601089918699812757498599879373149251038743822763243912334974467783866008488603648409298479990449491770071783333653119698558056137457860933451885274820804569157639239227352990723389953266897599240710773868496710439420901275445061628193641239537735633617927569546739826711737280039540949692705578935388662433195643546733145051505035011524282758617844734738177618747974827247358171651464383794030416717262320054022341148456426536736020244284189775256204599524226756602104599573075201787023453011198404246806670824181214222094989683494248990937154607971541214103221794747913993224466310408852469659406773870435490811906413206741362291418499345432699901578812304052543793531389027488234652330490172775553196671807555167946584368377489923696555255147858333027649287323198806360015091444206044458954996220360805824768457579902817256261502377970917874017112398334938219218043770392098728390113018413130068507624925482275570614712978448419300353396018337270484476114669129450409352161751859558636998704238367558536035113379985233098311614254900719564710796913404209895255517109627170872349102390152150159759253232419470274335764486618858661488599412084253043001291157167853218533798074643117887668267969216382634117217500155729381321408666170007454199908916852470927043614870310572337994217654500825911625840848481749907499489734468674248306997912903800470807033422644295588160376207198757151909236869379822743165478186398841437952078874540528917792261514319155704965518683742634543165549419896829701778804055736182094575599814422629112660585355374839653697154493397504110598379263633652243591615125419039995530606173168958468336282373900286487029879083458953845298535366206186271853084897423837531528516337835633176243723240881153432224763788377567002189587513454824430126769993562504877006539862264186034880089165277001419456043173033358772808004210115141903931276348834282512040013296664615797642293249402806786425024057056226746324272874377687364596330379459574415542411080657009010290871159833611990931124378780493645320522429406577246770683955614303289060964062998819433377218427245433056880438621862769079333661531139317221355173465476956150400593712175281260839290482727070390852480765767217728741300926640477507491624144820015937131687497793756081542840768988373540781330544419828638429037852953429128692291092053585972936594414276072275098304660279666507503762025439376998576007023375059203530798178662985391828905168175128048084144531401437316831336905279297214510878580020353081725842342178037934662032196014243936877555464916307366669098289486829423606793116138712727701551033390997880504432891220468764479230200556446056899757684402463457979601905366398666278710814492038507528241906010889029485063064899605748605012704166882427299007429463942997133358399599901598409408233308506833639783970707470508027554295644027447162972707306509483771156127366005039045116237315708166685752522596760245123462741264941353900506847692607239938070733753231886290105482000779301854203078684161134047891192438568061248832384711838050484164183975639754899300945631857291359476956492375013514261934951842616516323658978768833314788560442555242080764281942697556296966602417792053078933730723569472479178180522472370474089691679637604034122173662634962916513937125570506745774870281147814280073680797603645071710978852452363741694554984627746622312345241300374745235817754615848178607996791034740606935646962704719750871683713442739875522276143691329820907284126471768886806717870370002478682084024227831586831057976353581859223825070649320118757158648629317980688932695321539657274898348121855364547563016605859220604359826933570047656696245730778776868647425772203239459043000398901560315595067052555239609082330609309210243160357536416955749694475844569419202382150001665781006525533305395835756821122950940492529452002013241732779288493847302305330298011496664594428786609584991157202086263505374204755873533009523410247582364468870411581176954372117057819621897780668644350793084582488155050554042817884065891893529541826086137590668478121638729148486443658385541786104212986320011094706870714991629649672043093853058250072078017029583424720158775566876394138069794143778420598535179069644139334461610830718232000354539847820989396427760260793246519586635928087941856110840265060058336898579637403201629140829496119317802980965196951812595285227741753146918721819191624283786674079704822588535439958569241424685300785373626797348703429769611425093796899133712801655685466748380063435339570672748836090845200892470904783023425885486175075968542609255432708549239912546314249520206668697490227419830778557856977883166822527402127198253882127093767376995224435317258173029462320737332441111609900182131895349370010989683875561650509390338248513410312948464221200725855687860899895043226615870736756955916768745435645156549570026263319386390017949178461991727040454297593428471551537186844818447144991396343228026651638579731687310993240198603434745076619640432891070823870821319485357319503250159288737378567159540218311500510627958164412158086117362591227362151851555747514291138179430504167007528475056853334914425808840697379349929206961770456300902527538585418354168781436673579858657832235307431295229143039607936728549510341631689983725349019900529486364461865298505252331074812955576118930722285355714440449942824050978880817684385538174851128777421052255595710484125913421194380243451403780100316551283683848100860133168359536355260573142395255975699290411350710061351211005461721573299637205505091743385106091221468809085529121570802679955258391088299525419335771790030990632126476393841552031097027977067920778401818805775526250922674469351293300620531951101113433221070466297843157839331514822610648121139391483915669263635319456260487828927059679553095587946197591434002299236529181783351956341082562036654378258616323956774213773787592230820060083317927384326076272108985392360998125574370342122184026864287882651038970086265267341526305175055861451390186937331263029719102303070099673079422418262825906189286177037003407000010963362447298813807171854064158533015285372349583365072104534589223896368181947628867902037480586753965185785375833179397886601831033437033498548485700103446641568539128954140602192319183392248884496344117350367183865332819825764000805458891578456814234436758279019749430033687179289494891702684786730207590214473105426924608570782696633218468261181322725154770028356142056914175846205128045554820246183711252304352431948515484437269252396426343969551727252078548822603454457917125371634888282510377814856195869492820980848786336275505401701581828026896543612917666641273339508428715252255938040686162473502232564699988237351702081245973375935422333644098428076303994047847315697753376061312989867060952671590235843573880238132021212190701686366147333961995813815617517192374689218864551235148838511397650142013526470217056436979296432804524744688368487033927666642640354740252453944045096475662774966282296298403938897945775899322366946512145358699461146060368966245664963970306921512494099983228242943455584495464963835360368374888857671236663637616362455354262009659863458540220493172632614203900524523343141451104912657348984644940675440009645938594349987473535890557218931898217795670557527941984347129968021573905058510441633381266165336706685155318718938458415095374183557417178688931655099088121478020323622397412185335331197550616126196731587505155357389253293419832611999013354812446930644227239077051049556040114642461265355201110022175425525231896552161938175629116165834017314393601721741244517532309214673488845967412086652326120426765028056514686525101157114540461569614452841992886587553430150992734376329494704414098384034601882868349618059678598107358386714194843761976301039733936722570523081452208445739304554196159317893911432435029944559595071177106941550624929098274496389673662300265003627196890013370314697125736409504253194693568688318553461644563000609578019069888978284694006541319863283188775068319888459351637351988447725627954650531364707709352014543021558181993447508357116954771307649860355863578903318364631136702142712333131272350997584671118084753749140185455988975152150860867123125299701982204261169625975690325992670161829975554709831137838206505123030859624154275375728880506309791501490804591267226768054345760197123563590198322352653025106079038081125798633621571017046519622209100852534755327142571709999581925664164361325838031117615204759054981346530874613934525623237035589081066250508490254943771236600789811413140829853807664977170331002671327745449445943265564035997512681507851517316137450991924344457903134470928426084308087108030951331734695672953088063084900462479495465998378613248667284452624926426673912793544903487317888129326603185446449867983298550391938158828524361843200201909736335156762025941771149877706049513811622713532440572517881373526559253473211449701351949316637716898471940404194438766767265710098768894893843367397287164730322777145071391940083895641021778468893526194796951898678590596229819280911986608152330277282243166587331469336345752174922656601439840430348416066264823453058563286432319196934163806626877972153979697082761473330793817454396234080077821820103127763105019454822004055222827433759256480592067917117501265558692398483462786340752919035837814543124223855917939066618207722760276195208229915598681392431677293399817433121881626239188641138002858801539276009320830009609608154968227673717221767442262591660716747462685624723001146320277060976023834729506747739456474384256239543751533262012926044323380156018516826019983394144359785151897176695408077296315489234916997517912368181124936731659689096250203929363969547270120999636163136213712873870879059462678815246489756338994606541598236854460544736986597626828469242346517183347305243955737439353731985952697103586973921243401868457810118242947312961688143238762359258776046586475618774640163642102714572585503706312035117125188063621038571241303785893554496321828705173001127128456382191279965585549849442243216071265782170332048473884270442315891198569295191271790417511489020183591586529226169710105955876137630855523902447349670062838941048981722887046243142498046112923462555456934435613040661153960373641855123165861464072770283606326920382684046747476924944290241037442373235312496950512213747519186428363156333434327030662055631313645377144833738083729968229704663340131589399563143144669940190887861234612698698670361574968633645130327843729999674005518349268703645489879515305822531325504650202616916289572264253480359002170428668099091343703943422276131453968522008189465966195002767211242671202610417861027993011387349534511179067937422841492782483689177023228779690132190629447479343917392777727540034554548028492506151356528594891461192318552191086391142515785730928309991076564918601200004235772815917060599139392103198585983225217720203911290340743627605661078416279009320973487089587746562940570468459250715118078809748982862973356445275919604608922603950037834101163357394940775915077476981689869582339875039439547261847556150446180040808557769444812160114685058055823806787291731241083478658475130924542806489700502621158260005770492087754019024074149016429200317941049689754872627588803012031361556486486738132259035113852718268506997628132039272118483906011603568168590858051495617694504997068465223033162236205543985150684774183269459193191712939571707114566102842442447538738927724849038141160004073458117708080942836143127208196450908229246546896244438722738697730963463993190300337277577363086225227430786190189640403416266116283267033222682657200946128059272764730912950092646589507257779212222809216702168215752513726465789348097607837880538414652657176839308144952108515682287201032627211243236555444268836995629766038530132450009031812286567673424793517188963918112743675158537476607172740547053362081913378752307900560873229189128049123211109607442301072538737872789146722873885394012225735563107698201245408254201751858178915951258926469686136767596962041406542956574785533012178740071680025912972162366401959843097781288844060607987020437671299651648935408032715193181922107883792823561880319285255985344399715231012018942834359609322951701596504869818871960993192998625872110096270170539376005345732140950774222719600602656708089532847474210435611243208391376313100184028047536226868775508391768177020102626392803607417068730771389226490731924086245746617123231751638172993102292973707315207250900954096734462922865686225041617442742108180327532743506353274031470496973949725782480471120348673370546954819085721210925376819745265207343608682318382651241235536348927214811158078318332404028639941791937366109450096641325271259986488085551282952962997921978907905597854177018248590556651475170346197566431296169329280096505810115586882228645405389288067537542148050959276074940460030692707499617878943209125540536591651637476429225824095472055643171788516219859405735795875702924488223934765219704339431984446699233460821719348748123453131970017263290547506225545892697229019872002348706350376946816887688127840460638478122896209306427834123248542954756328283059354063164331122393831061504351633811800793787219351154377110833520522085727846218762601146300370241234135742727886949512951976552487822994809927318393829532002172221915479367161249465465043327822472647326814703051785427864900531847167487151516929589516737102181892507765138686225646906964119075838848501326159412981428483341281081656570075864067422412286483985771181687082225269912069797252754835045402482103944021854525329364503199648720202657611164030701589725351160378414839863072396846087142590011648072242895460574066697250726496230586616725831461997697605335167344454401047967980698498069525613650067189960358491155450168293222291958053885628534179326359821046814937750813696287816235817071865793683639906797015498481474987889400419921601981181126061610402961094895498277165193136711842174367707064145457225427977620658770654636027987070163559896282168667111429642722899655642423927467492598911504404614228212554610924229322642298099101102519017965256628296821419242741020741188876540214319548643244728753989707641862871194707783416357422217517375455004935049993221806077560602025071150133143234360317663624748832269057375108298440504796006447495571188864907515501583528569860455480483376076930217103219580903245679526715488198067710332231755129126747848095412749009936184957807302667734349996696878204784501696093369120211621827869897308002872269080329268312044603478262501130242301869237830190245465212981720408999074063461766293333994242724195943474212061639203163130565408240702305210244404349244265506213767726033719163465532362810165267028924164031874052924524161164688436403329447083686809867672729066600294372550368186908843562023350686864969237101119741858988940661661183831978460534818761192279697482064478012230003673683592827171503590678744831032934444341708953478153606818621826525350821189513080031402345817106612585824517439707424745333815789106682376811503964072319091041134613432897339771590178147816707529893355853454295767369862361521755694901365800199728744275576216437920137242956976728509355920060700098727891189244624203946004181281672377219368776049279355123506226136467680549662449983155950416249709595508051887084874560128780843469606693157723092435774316670216290367955264089126180769236934561800983458142914667313535200102320797686495171271291118183045535560061169897872096259255779851267431427217252386218005012581536029394716747181886144323506507520866411650962510460517238517660357912622485951456334680863364087744542401118668792715865987487713773538060895348016837341469369416721511192661113657716907948782385863702591612083228040436337619510674126253465392218773756195853176086388637175969974444137286766050015732792862991021138339678941653576078134426415473145396438872614095245047756308979002211308117970458862319411328991992787777444168215135198093622950775134276737634479797708624685992611653068570054801790460493250192933307593352316175221192091919514895062675770123265671099058952176886458128226210914464534264220828444034394919111718746525703650876336738413132606828909639530705561380976146850049493385487066270138448238189575768300355402151480195191141232226009498006696423308137943107100426553286054285336611801491372888012367765400345801861756847953063987927382908176841354311213762517905099810245240643871834616252709569153480564472416423406665424213474276641570599778725684663239689092603537719318119320841422073514709613449635768442852089582285885208353037364221206184792645302516564415935379929286720786236901995828230291386191400364764716335879327872641060067438104653775108613031243949888396502095086626353420781563023734274682442159403710172234555001441019451446141616154828189116030435039338950276284343170699457256823243139445933238555115448304543868980146111998837969518468260295319737363235919356006771058742050084910211686440729996114097060412622807226888109396187551112681252024121307796352847622228455243912596886527364796216696175292549802628766138492605833795553534646494792081246670086598379891822806548928765856433701360589781044090534548320850636348720828476113961511859517330953926599287262366953787448322429959959599545181404714276594986414431306655136423863450889031841974619752173487849901700092455220232834978857724103009998300565179816888650115184779555536986064819058010623761247649023502006346485393303994329793458880866022651004008829421753231262737972329477511607921039355836329068143952511510023192559279638311580041775446590566227260909564629724228447131782533121789844815090396619596291344246288980826659478658171809486149440634498432961910865885602460144683289747241299045495216875850707502051439520257772272253226779044864050707399018490142458805896094402601739139812246612426698959311294129169798438114426532094997297631170459264690741698458444207351266608099877123379880171102342026066862465624856120074380906931275999653470683871398617660054241597716020179874374868099949543273593002626867646031890045953908390291524528151837414937642270920215069112336053403777759798227001795990921463598349050857244390332298360090868608252002681563364401517013474335524695105136754053239048006942087566987579648557826038634351171394765162456319883344182105305392889348644266577379459390864198108103434974499036089756009865629172776377794061529205370929583824753474077355632803554425367034267087629999228405963076870269004329022783483931654878558297588300690499135026146491857855029439533650410250966569692113387705904489097708153984053012518006664109012422898383457925450698757810332933823348824822365840867860556688902688524790148596359866368279459993408272637385047902328140613366941223795773865751061569068267853727562075237552183377151604954941492555689678864857621833336601041069253193170202499323892357897352202185374129723540255013573009247879708033084294189593759130316109403925306005363428142322872064740012854544046379682851489620632382384112291294264216285014089491232448245880383222309762323671237029838366366658653427889433618972700812486117455310372334189974702993988651783537648721169131481762448883194998758973928260699143640900146890633604744485058878451096297592479174589293835263696354210041543810584998864684971449300416586125997967827088792695424457724450547987859800647353172185715116055168925937455899059137428269456814818273389031022491859285141186997463567554938100806791166869754402520532128623814890065472520456262043463067100766320522232187057769101270860197633133103700191408155404999470200139887172762264923098599485704590367811235492952787180385010881713127384510625055378329745818925686268122519612164840726272395482451028716668866801149628840524872430173697218560883056483438940951380849861848833122728126205762790843036045983015622830203264638135648561613747747301556932796944874620394833049047829658520137036241516291477437475115977689503093399332312949646488170559534506359320195212016294173164417804167760096177735078018831915329258439522829909994460847050129747840338306354538749067452232521379146528348954687603040692030317731751315252744316952188648523126877300831374683721395769930858146651302068799713261193611744112617409405524127822313079747099031662786627776886283437633511078960967717039745899526503715913114138057878265719584986918243459165428089840472606996574063674189238560460870309384126498773165000305884045176266984017591963281913315764716012428323633714808537911450446415802650664228247131545010745770404507362119562338606638925067004707421592775749082489989720458409724669264898125268803564999567979321618335688836494208237867674138150638709697700055704971714138974636325105969895912048244806208083045634957252142300478940800624180004113966141586387183117675041841731863117278698760195038001055402352416532017250530477360567051484564679235102763704050665784088987374162776273614687582511881838388898724392485753402559036698707766960750689123258724393891242054737392008927389678628704874772222680006274989546383519041341292207375776790248714239998984069219240058611442619537818964229463555131725662784261867593712170617163470403318436744759884390410801414860790023529458433744216648255526216498988610661145531969866487815816059355282050008889283261169211718863398859213034732056956043527436015065837751533267935744265757040526506526513628872062825007332662515119786472338796480583341311130601476468508720294880448914892460938210981730750043057533248537512309417574353017372292335083191764488253897194009026975609622610554957738025841413842486679991838486289630196024311225063959087361420910505626617776208798204826103153434933262711340909759516418156096609749725842776435033561673729878727152259836386110238950527299535348330691308893162325646243228579721770965643640980296671748690618073308867126194686394090947542473560244870300957744385743013141094413686120296396109354614080258588940981817696855515008928305713511299172603169494311479985993449921272072213618253562339510604529541709585124667515615958930836844540464604780649861183150172237130648928049146183384408302811200285075984565971864097244979860933743362484905128066867763298416174083752332909387640109567420911271089070484836154302918054862249456275071954940633855715431562425927149872043471338615757976405376174032086266942024715830236941703221186041267629672529949567408199085632645308397764058678194012260288036878251437372644997065854865174595002384693719323158447574127259161218128390061695344477934684028343874425855415455289134206851532974565861807536946525325077909664511232574819383202105841149306797034768055091670178418574890184671339911151651086198642464731178496574637617489301423111637625898724615985209308220051757102684399702508857476254597147295806979786238575308856115305051380952313797528795828503058900014705275552185746868579813621150963702646521896222457877874287058574595993303659311736080420139859714767529937256653546497208891086092184319975046711612430661080958159163319096842945300803358853173270802482618093161235875248277801494047152019706254204298585435255656116528558399341796077752983636480953335180522715329488737297736077681081771395250885162457504580644841046261785708150519343298310597834104162478318059708552572884165439707954947252043153376166127778892055192295447037490645510565518341569873371107735954651675910154839172144765250767666777658030059243485746744837393315122309192122485593687157584681469413743144600472399983291599530231822453426972117794095430514136364512111483141244611988328992915278386519884700985741650089069665611727490035103786031895868240523740912847187776272885534084445971687945876650705159135283389648110911585069778606961447386336979848256089965724434105922804272212405144794423528121566370658857267147145352689845914312248089352496013195552503958131667785265858968640177768592920369927334157675586332846411556637663390832851673022210367864831847640951120770007714254126480125318418503529701427848770309776296642637402992864111283960637933279233288518314522338165990078797788306925229839860289605407276042380649874901527129901773936589670157343707434526647226795960274678133321100099211669285201946253287346040500174258806832810423871655914122504852707019815119383503579312381001296631308715650174940563681080092068299841519729376318470693419985101754543702993285120091745018270012672610109565752860144770058243752346883072733146774296481787538692593213572122398628298503216823504680704044988443065425558880739941598649944078404844310977697239619655562226925600044887418259688714871221237297053076793052800912635834030592466251145555267413049783542881568736154819516158498661451007617148963997252845419201646030461280330719496787560058168303661696851517965619410786021927391354836660615753742233803273630049623279251851063227874617248167186428380240346591834403967303475593790650534380678991646440123587805796151821850932745305308000282916462936012635805290957446069145919769514487931383318924359585818377083365429539737719242609657310836626219623409970265220268350924880679969755999414683901757864097311670793760961386994451229279509854603406107737407175284645940301680330742859916440755648644618459971046548687419963954042991071880181133378749644089944883737531837974332767462191834093140713805039374563447422195151471366166444713821141651768533896018407651549791929086886299798077960612219047594041095142985837568648082942123952669845666578327192055612317255684382420039097374006347114676785233807268055408961902416185029465465125796163422083106810947948545834811494752292246080674738445467768841161061941005810565118002400356809694520063579153451147689517467467312429891453350804540870393996846245066062909116154574041852276628785074613155276782651784685312306498189813888527891261347317938870820545113232323974840904687439792026125268599073270460626221765771574725188837386515664219494689204517734312588746793528626292017300405889990855567890205418156905017529757252913714475808721364947062028950319110384946956868913472318733664337865670092561741192645345202839455933776502118518711558899058958923932342987033022094874651348165583692010193162379838265583507717414341952673990037741223728351776499798301386149882828957184731931783505438183440144522117528315842050499474076807882116116902526618363787391238062687428495497464885510285640253036560722387226572040353438918048645246713397061140793155842212898423905244013922310124351426041384831717629178419179063483927770384783624114386857136483399375068014797990450756447507410639691817193903969120482888620449102037488135425608804888214331763111035337039600600683092457486562305086129014621234366858995551670166718349451879998588644460108387673841036478529655401095929486859933987599246974702398610747338628729617701968169491803301540898718015770142156876058464892252589110438558718945184857191451181966750391627365405839250203104311359241844366404283890419031194172347558183762533858458550847948395939546480487935502296707337091252370961768194731271785715136042235415056912590643963274546647849970692381109025257966461147214313903312071846554030621595874314186605119295411874939398780701287672440158765873181617079993130434588502124591431842333914322056576832432044153589947677242432381418324122464960324271124420737793899017940983355396332021679659912453301782800821452796975566782265058996789943056111722986056646649890850430162570622401894669015238879871015152134138405898450698353554049096622648067096029357501399158281631213458049457103576955332812107970724322627496690868933399116266144872843501414666486963400311926800157055405975114020955585442995315068192094214321568334507779483670988398366288969184263578659464613452384846708795117408552246267014183420396241874113893752118707226152465573219198883197725162142592149339468066414910510686433536921169917939794607514008890123618472633336481848878952805038074564252047108702320663883961046523982311979099732185486931729435196621760261963163823831358529727748420182123683103757176577724106593014801683933187469401732950099771193088593637572716354573112832735674454282607490695037625354227752789190413070433801063879755734582765251256474692510556504823348562423311812302994791815023028028778827671737987103265320185563417843696485323303908249565741238725781949611483933990686302344562118028198585344256068737360956236873189633402940113451939067350987781447595475918672410617114690061902108809733685971116856282846970440838213229186184515742992511978020160553693743724101690839230850159444501064917518973836261159959684350054187922281767331818077131937073871261033758670279543221007961044812673388753993757161120052174044125219178384308722788732789630658789851913586005543832057839361542824241309762498763919310955755981485048613106473514822399524272270978703720565089747876176053100600198787595824057323247887399665919734279708604428996993576156530578273578393943171847120387956216758954442247803586185521647158209152565135198533399416533676159523440269448023719698369604479547852711231916973647256586820700870045823799282305130664699953963770950050165695072941167582481633904935811486922131236306367831827747788834821680411240869119086795983505951056493610490134385148332246346174168114972423601764970880602512723787176394731237004951332763239385835110130203154180149358356596393829848872489980984956137722592974653358227785871030917892422184121889835833040391752222691382411355467506178783810212442401355589882904407316299927048779984608713515954990776449442027284461747478193895584635381180512629332177216296352060410929508182308210649017374793161214953391129155680397894216804664413837503374422949547107165370209216314588946392431119689715552839563814372669176400205878007153472796559126131317151912440092572767344408398473694092779170574100359677590039794104801574824128382168500682450689377117849189295685985272585392935932940451118110660240522363856127739414384199499368411812659175123899289038141059128027244109660648049642013068950491887289560294653315739409609298297782259044416678621328460072903267976679783100589105228477255708327092979593978745959726023419471210591264275656298220117278991381655396842081875000071301887367651050110498601336564309206645134773706588719039798117856915997970078875121037168169602813045284984925569179164302593185486467024803663101548650247489748019310520615293291082073180355057538933172187296886902117299168033434703433774224695205705969061040466123343541082694883561694618297162151576395258462817484465984397012734456676292175986625858016485016575907123983842469675983397132082488070966183390678660020862664721747870400717420812923667444042773102293262419332993481966099264798176872985385881987214178793483841224529315473263466689112177473496140710077175958109197787324093785573796401317746636205909918470725370757790202045266981514644654639541812488794153241015606727623829497749658323502944488170865925863803945715269509884980966306948225546881285818125246790579157639864337306474239854038243807179495034204740208640769210775006483990525464669269183073694051743518007772927198612058234681745845677603747984675967261948251915655307021836001628743558122813614980936555808208960775821557930664176356452899450916717910420844219300812582047047473829450922204066111140898854978542247458911887242314977680403577864494426847666801671293954517393679489818783652456203382293291933631798184265099574712854379556114323206655637058858248082938552085075787150917539348918683211185248653504681586103616717351439940684073260174062540007589836223166370302738842807219034066911424182737458923974837824466165122933059544143746478526234337292330180878377858000131003776396619633832431254234108363846739937308124908870127792446702264629993003670131620618760263167647995229039675065044816238486786878206057201397683099934138805275316351168072621709007804215880508758466496440301514141434984379978559676533081996416218665334046082859579826670546331867880956123047737861326614229499171203349100619163779386407180163886384997373159824483199351632477726783592962827510595698414001862137409913729970512855966376375589090429801029151721850388012748229781886364339137516602139483187285341007062047490032035639733449106932062614050093812443877279985583559213370545458185381212285805921239958494178610699919173425885327359161920472961597039906652297834445281849294525259560359739811294866469451198461499373087596149830549359449225511137414668245272255219545616018405701541202025003077710817381552399875294375339068777583383883818076238329200519389752114381426265503680967233954706733012190961571187406920457241470486142790575234164924992032101616636652143078747858731254664325091527793595446296974092993845904823847164145038365036310639174017786933184592696289547707675319875834482040426074319276075304534206660392945553619723752417338126997321786947913054086472518566300550130385869100029607693314502280801941324370460359936456832673650649293442471024985744250471407807257034293138946532948266349817928758807605972359716025629056908013269623825815457565332770930486973937887351228459027478150078028907575204535447874581242930427998984329994964647480106514699475251604346757011930376128319913034952359140534540056910597421872690634544020416762197597337692682947956520752236423564609875345220003645793145628025986959577519148952241825374424133186231038949740150441919463139773728711885221389247125441893286117149867318168097973000162416095385681964527881650060461338599260260552211085705529879288531625362219904323191906425950645816887391735423783171886349548690082079394103451232453312193495355171532301571612150287622304001952443786093235229078871099348433906829009641566194808114331347917568689372407729645516272281229079799329689518001506894972511475652336849667537293441790527388402104259545326521290128791932404251594824305449011425466082723831582290710111432516897476674621418774500286666334968797914139657113052400798433735724497207640495791891220748625103494403424760510647014685287773779689025887573813040370591917917648281385213506709622984901509426153722100994826937546797137989899366639961317707762379403243311706910756997041463816482502983558870647495713847946323301047708760406254247692674672575085503799183039543317538376739899390047477175418484961889158698515185425915295506464091087052948534952617198311958813044985021115421033642778639707368389170273579162437284480163790860905046707370528099065805458618307305461038618992367429713023146167511538876996371184960249970000742145252588836181973291403710338145363722893227338106294025920881989102345477994171190575308837644981389530020975393078983882104299755440131932905810875866429863658337581759385970136021887463333980917691491400796290047435486356464563042005481071201502817717890617210450806923191625755966826259029286913611848823510668158378055868987374727480675176744455405247832629899814674363264278215458061023901304983028123588277537511318009800634547489919858505480213434979643637004250814240682295984408706682067367442891275343278248167779445828256738759495519208522803559309824582477888587444893673613035349313588246699178049393432943687184993669730329848532694718366814628257925236929495103286878258269203767248089698567710764284366026648276644966750234234990554740597132896687196178461884791178302633947114411932597338153963992657629841967751464932796304347070169340067023923397344784613562791919230473119308685814746455268179608198665305832643563650007956454062820783965269296907662511077939057667469872693849508147905850668848170821377213373009845189474191910991771630169534831033639624469282549955201974452901687250599036061243686334536916096558598380215694561229064197909909674092201362700729038432012167924014754656267150384209612108350000154172623512864437621710771798465153049285018048343450422177588519473497103095649742141312596486765780863205850028330971374228584148476361783657663354241033540375921570413967182133731456381095750325536506475685152156094469379374377807300248812710888345702803720200137963198488898309662239983831475342383949072807895132875468181306576549210558903091015734062627812324036757451501911256969618942910866075105575949481018972597608212738530252031847108486650467674714134988360971546623212506118550433575749179021034381228704006726939472491012605374812374182492786862798980090704323236384930696608318570711072460118046007450510876546481083784883931530112927316555338761498945571609870268459207438439096696057847912444006765323974758212437602418897937899341874040002774253454124539300778646154494315292284975975663545881330078456624271978004927365493944709893093032555836861469542522937815808419844078811968758198212003786617287910972179221427189370740994777665402962832884810700019214142529544125914803970882239732427426842092203183858355140749597827170985175702640481750563879302948334010796537912355234037767392115199007027995676904599882602881092549322315767072523455506658415219404700948896704286568937103409009825129453725473515940745062973649895769532402644484101520049585271413325515196611869463361328740410728682115558265859600363899549455295843310769875202820640600301159515160662392497240511440586111042939346765349389482581233764818022704851765686237994020972685666649492864750910011902934597498441545470846576334318840003715083771257485969652235539224481260364129908181082188660907957039746475582996800247741734211673460805110166535353911128198051060995067606286913195082230367744391701172809440899132235615795262703371776028426261956265043254973113581035183781684553089796073336351061405094911394620207768748035992243293140018523455294710752649824165817797854634582117579097591300149749445854658753965504348713782124929976360218368665296206086480369832716606643004391563141956146828076237065054512088184242857517302599988761024131877566166077736809287549884496231464373197524655864170964426576117396431281044603829955738182805907351725497852184769568664083687382701967936328103695316168546442942842397063721661895562005050895402526829005890456741432839816934306268325049363280179686814735083598446155284549106831629965819299698205839423383866211974119669468258611358250103524156908694253748046839625469755306376963845227978115095099870926661322703277462590959925819921726876130690150803214469893643732137618388951488033916198002617233114349397971729556743499140701071431192002196528465176103352407784192838114952318286469063434443914225858394281857661108736003124538359499804809592394091680995655624268656461978434323710480491331743449959749753576592443246105512414993715151730409764249336077676006846463750430278490669368176270531846068532631269782160434014412633200927417795159363463457829103640619064835573793540281520424213632872354397258746185759598852999257188964760501153717546291136357687165362751925683748744893833080899131132493554731485274166015494792122498382834410397839441511711053534126256154096257813563666951218372265522695102261848849110868792867557581843488028916337062449217871605513689837903804006927357001496226398002830319582357782540813682965982297449030185058590542098410310451169712780865134353648559653338385414435797339695340235225338685226990479935428811801996237397320456009593680205880470023229611947197652238973142370850708415646605491689297396805803038733136263845320308873046207341135249768298804857733363631011502614038573799307120930979978311754672384996763725965719368684388290493629743709518862063153525757746826949730642270784121359388672562628227161428568753063987191303559909123891546319381078029911136015579205750602371272399226642342009062780855206065304458863426014088503699992988233674631324298665728755698841521790623999755288655741302436061307780638260855451141633003759880166745207139835581301334556876003246310189739300656916905338053959654321242746319065059891065584965035889011476747844242337148900163861776000657644730117488296581829124485351471975996323525579917324380554795611591291222901041488006141458888960940807707710010450530322320010003855116042282317553766521090023504999221027079535703997988868378982687698331188174230560256373244758577937607436129865026318135707944886957988430840473070453300810898273489392312519657418029937444121886954583013417641081540750346492767766661149283839593218420436660698564756061156236455728735713599713942881123304705558081850527731076822097691705045667952796857610955420006436409574152075064468357535446865972180856910797116415879878755814293191646551929274307433043061767850743571864199476206000802436315311108731878033619026500444089558541174391927436493899485643035616970164023238885695339099133786707679362897673950888084293468941007367194968084038288012947513679822127378038620158044781495777288297793262073854793869123608257586917879853026764097636161448409787792849826434239810684393569907069030714460022549758674792090334085221211787090004042735949843214997313652728551515798190818914784959763026292746299095100667158831638313346628496615790393565077905746379008420988530385870662738219840274608317847275951521602812815073452964136327712195055065829435763461178724634653944309040742989332403118998599789140679499620148608505569526084591487969179277521083649183852236088918013273782750261542923657199652053080225022272793426726139960710426648517576506295832389730468582358560755153462771659470554038874451828174123334216253769900341001945117285185568746684131282462085095169595394241668483034996091109265320546836689400526071563462335782348985421258541569288158710214488594148722485806435785362315741492433257088920712265277098102011396065700633323775875472700947656625998132245184791453880182412747361023365999746191281191400514385317955869108716528053991379653302125282151563866853528720623284513423444310580154733938452246540283887269922494502081561103174932123970537307139198694478558427587611471315516586653733024052589090013214514260343531780114641228463333412864469941582379684366168288958741876545740471891459753268765568215834985012190858359401314448096433222276105114139433260714028707918779027609504241333198989300153034481279404469344997475034798008844067598632339503444064142763452385347787386582062138671608930664154572214773734434421449533662424505414310874291202763542965517763520619143424585212303534806046671953539087720444888106380838820249749121291480996134546825713103461584980924895577203188715572156536532817613322940369891038633749313214358949432283959202616474359669650001715605078438144413353926906213259984718859106041889976074722691036931789169143340075981258702935271019746576986737452274685185936804219095765437926638288381183972461307201623229649856815942303324237542992853241946048359665565477999624401804798811182421624485621431964016181406964528442877587160006021193073173250980202362337174556423070740086231403385732731076522627379766449811339685874563034257536505914419567687977926019799619176359831109628799549858634660609386986996323042753913917125628122091612605063715659260475829570711591584906749671090180132043411317040304043578711499575570422601336451776543541554233787846093242637457134351870229568689536778382122452705849868115830220759205990068503191527618398999628645280802126276887463947941064597830906094779507812831329857818263475356561439293349501972094008419023326705777210118806511688083748675965213617428333650639964690654062731613905008178380214246953018431274232458509597732975094978018389904872459416246873841648300557115632773427575125520398464036900579385985751224777399169333254073073133115597165650821124500533800406943130980314155668073712883568599971647471279753263266587277798961693735468450791259834246170022595604203398336040047129870685725775123120441503704218646079150927665449289802323348568508588695651494085729844136020646735580997707660353697706681923623568508675885760215589002714800398133593282047820344060870436536648690531910898651395699925952577756642545127701452313701363430706878746571807486401474535074657435263842659443437213146010490318184220573561970306491136994044788469416282073327716799927317495997592637935148258716023265456530382988680224487539981673520803762543299678075820612415495262795364798072495113451897872668866860821894431662188085912529285773634446532065370390207365872907104676210562958379198246901079932189261164402063031113972717944226153069194846848587754935793714492203218863745328861204533398377641247591303290373223478123711799670877895443371014763647394175378734966054367573220236552256922525586827916857255097292201334634022507137660636558774906912702964562022028155902186986529836382993902106142259673365398394537022713039034368572090124500389894671378718922800193011669413627049005663443041950876576265240782782756653975119911111051017053555498817343626118117212019966128274240695133446522416092380065446329632533310446151188449665634136001321780294020961644005137136883016923886203220890439942426394144310160021324973143505305932921385102024699217214174467289928499725750259060994979261632974730907590866403232449648694274455887040822783710955354300963716205488366935283143220845683534555097473295259090176209838991286401162409202526718167833994695630099012665039904632853318389509231295421473014150487524121423981602195641349569958893844397357482943403308066278277951559909558562525158704151229042246189174587056107682273320646253367727219856704694924352954422779403639980214557753847593936187560575255541003130696133976627130489382119413197381152979147033002028441972300435366792376066958216340040028245747339624785829968823295270065466685750774735675715073074114437225747895525607290390168444985983936780850269696457339919322072585595942886715515538919609400765571870162382458603754232774898827450959699247631254904563043873579210511436660588278930039810103383990762102789301899422792132504159772794117861526277029423683793395338552294991282184529724659427103658158801647332301744606067044646702862842344818733734675384669592850840657347608148913411335572874175261015068577011023613178649606331314548988673854406412007331248380781868169971912119181223120162531934226840457956832296593320690838204937789281931458159325432983201652910104475840585438571052344552933071185221536364859566844495452780237378872478657006476560045145429685315564936575936771507527414713045998165516928772734973620183231793456708833960969454280909920708681721322634898312548799842124601978135675125915319040819333551305208134203204145554167121474437874970628662282016033221894795867410727543982775374753388727183187592366107626112646807807495429495023794990196867122646793058892967343380300578471081364364704690287856135961236363937600229915947073643448684877835909908054402213724446669271241215108608284227649211342208713686889846621920918636449269111196522854816267428947624441364918602077415591770534574353406682561657435280087350199543907760562832881406425535957953200050356859193090345597961355357050820209944276163474287902876935333392405637857026540045725304522986839677089483770622262250126525916400533960491480134902462590997647188239699855938123063357021320496277940881932138020279726454691756946326053406435795604964006345997912032812898843888763708414819982608768392372703762697634017812884499806500235042050708881819548306827512787647848084899462661782794432410756296450024682306902904140554933819957497731083981428084545434827798950752104805574327382385781455387811943839296129780635999510942964054155798917959384486778897503878492946811115719537530586446092375072549857084411768140492804861207843021623763806465012342983839329569425993902905462843902904637382893979239477152019530614414631446803554638318980585172679377229923766769235830544650344347093832365302686093156824031562141501141119266316708457252570561209534004585170641698074839156736139002102284739118561153778221890757420461188026181619378651210905358789832288403778680105403280444535404433631463553106189961084397828289829685393454975597901182841801772719121768936925729346344293507805354461134218808048349524065977062007986513282692195900279539678241529740877466513251748912289752482860823790207631199883120778688312102427212113063580382586115589852051890875067508608075698484526174482488512260881620474205413111417387207781423363069219090243375639576753955237904679193448809828978077337966403855322330715512440295490780487953767219552286218685085678087148394146945655169263320861492490955253847704737981662278989236446884503668067885316242728391996407494209688576478982991185442183875463235281647726128728952001878336911366957050707236259371809133243552319840497252195875368835689043480310042152784727327109787130701228725863738706812444829634418450607667738793084600207231783056787660055067818479301873693024381180456673281337488497430224836714874426101498662052455152340536701342337252830052095532665298663003953447254415509029749612099431701018335572282366707123456571212664561802549838371777986017406747172894114009234998330066911431825648178192504887225747581303645879360847110277584906107899059576601208166626441320545477784943042498004316782722008187311646265295625926918002352422278610850355129902606560787748513255829539765493564902399824514790486153362555841653142056680706049297258735227589055968469662524367644947426837484177966507592890389163524207729331779470687578571248709407042585632609156959178230450984786907492548938573005250133857607694242743535812790262087655514531181701234085309086669742344209713455252868047424052974010911281286555482407214762481369326240361379831181179414953622066290410847375709633120271818693045075092537367003002981535639211668168878500716829652033940850009739016544011142287292367555097646273072268649692310252330851998375653260341627529148110917721507666645959427256513243132893746781106770259423224329321238282524868115631600089735847219807056192445941899056137553371773108423765600036836731393101303390689777958420405059468014593700563147758725878886135919415908209463685459904706122690943131179020827193509164192305453385191358886802714038043619919933447994436498784079121025557281970956132790131014794054440963725717573430359222840249839872735202142595419863967441654870062283418789778849225165560484828814212483130350093202440594441833365940522828562513590585302916852973691735954696690090386170428274776665219838503768352384824316504172723817162287187996181589843183591946890754263695255107698851950345617160886141525393570598166153319743862464890554421698838640445541923788892302846797937711019187395757471119944686409168987350257903541102878968769344231047120018447801350147696743377580720523433108464081784970134900617980742345432730199568215754112793801128334762014812508118120930240217534256972946550263544004861347613347565442777732810235066953884047607321100568165786540463900586930218107034688412665150921211585874636521348803246883715948987817190178898872131684539412334222362189482166124222510846011587064597166077564975854242714314072437450218412686426725056004591826897868317379641141017416145987380815695879718827262348663016106012886331803481586909402663110226520600685093285572561347310120772591429023106050288459707977394154701557130061994979417338849952537271742372457989019127225589516712024869244903709438631683010793774539087143043356964957059623094215935516740061051030150522600937595701535404539922170510051988308825205299434010540959078732437748359565423456447272671269263451389600445995036335088275736039814835580945662849922237754223957282762833244799475047061224711795600941481995500135896020165777814910241320253919874503422701719243597637291911519848807660647532064378404787450175786445353585931302725097909487726609151791858747030360801893686328739325487790315320321194197854678064320200811876890789530129915816215847449210368015162010795509714069446933467833067860186347959404053838769753934123964944618259596825538085991263342985857521267219024367847364246856196083614284738758959364876257166018703384247497797287148079743490447179924947339928117226304682980921275449989372688346767162983781851343975654060601632266180703660971627090873679290915899928108224500385801017955873432915046114663692456513254260010752685415979219246022326730056194583598653074112395074136242864496868226736593212415241526185222073254458221790690167797138739875515675163541943708346779908185340258543173642246587123897747960514012441253441055724372639271443165326254060343074189714286823418594174981079749458632915048002222989719736938155921211028330094617228994028392207940673280035633518831462771140914427576449824302462429574455825507191612579831447752342367019729332486911093656283303460025817624524868486935396867437520414750043002075606794235534244876851351182267189485029947640383291438344109980188965693867000843763991231095082576169523831883067041753444266346273717176677514280817008680551427091583833918688792795131695205781013973134172400426465584014528747853336881826152795168980901708054002943358239682432505376875420942436997729528741004371257602794438676150350735851645136271119926528123942527200663052986789033478116370126805900783320708029029395931437988245324675253558889206072060536338398850618297096703985842773957737373064058749917942236151334804533238521297772731911640997543213413118481776287047417116007477342213586229559652826120235973949456844020843842809676486678743449590232326538767015795052900651680396210973629844825050315253519546297834372460904728838689786775027883021563685042422590226301959601052436275640485359068087198883783182544873934077495215884438938911498508502846281022231962295292426221296287748495442064390696046940816546618992113208963721440909002162257863892640807477926032489465791088460472828836121386752847112916479611274448542147741859339242517221372864559058907854084798751858488782145240807674706283685470434519100097956340025086367602392330441221209792192706515489424679986810918622790716320880493425683839529719611860367307413688715804079182637786904898415039390231413908506612928070819763312128517773784005753809847999538359623383189887784651641025404559574792199514972023198649279403701503060766027803152823325419010887011507872937335058796454557654245872459704106829793740209936844508745244100447311633073179992004309533819453886202426566765397435831853341254972184940998678494977046219117762920498690180067437071335730643574383185457935602843320767703098598229138667446349913483861817599615769285266701822150625405624792496839071422797000676262397671182151231641280423518956510804576280104232267453656352815904064777442927943612446642117373459940160562497378283374175479117954377582120083827007642818204790786986684343965249752560522558603095085968309128546056860932822097794836165175686209629830275288139174607778889850933868359683325547601949685159300524980971622844678783238470054009149019700551186886842099242672289566146010438892814425574812918114197935611011983197813402008508752313129719154869222414877046790482028838707848397193634226408346834740190443914010700106728535904060094606345860834298526376719394493475544107738478957753886130781899385910717241379442824102982136700615994758782165922303910680910785202676532564201638710267522293132028820972555533235723636967069999289076782032687110808738258729164730335375977803865487802064208237869505961428738337590720109513603067095179681108269713514670474355411485960622033294836287091352165448608051673984754685135407309473049126259733756914666463217306552901465495422043757609944704528134648801677515350905191445624266505262159327382805879852694615460092617888124302791810873405235827537709820878958886734031869494814903070546447645456940426333327035493968688965755587717235177363841152307432541424985742216935980372469194771688889787818680159807161047916035439132016073127578766267904275799583172569745978799585415683426279224265920451341229833601966397645747498734643680428918284963626848673875440448103621177278326026347665699379948547001657988174557380450809839595447954109833246249107700501379467995114675479683931316659418862840596045968510228344826248344571875048545742531648669546837627875372429675298199678294898369056229859970125836163045213526720035934451993356759959339190316318453817653241515767476929062110348130201244346528875302695588953416815457449216408351231874971984867263827919810360272736667106735086260971732648055124769788125642009092232252756336207401272421362608121262309871679395642609710529905259058917455646422035519050965418879206485977175069773294075050110226916916043575599372599344360029172158218758504208465407801731894013008412786368796455512619356291694275599789415170805648545408058474810665280581375429851775950987270099713985857924187848853559303026974346064977395028778763731543198233461598749097701493674299600858161170773549549823660826693436038828546036312603698731264347595877856526906663082350955319343681642962413651858245640667692427984465486221141670300287342787156164228581652932948337850457845313767465755305790206173192998719343855690537905368583424189271201226416529005870255422919588972410039843524055542497492336149336513258568167218410715763841960573670597898273437911921672812137974952923195317436370498567201886566798836161958705010179111562031445309868165622745392155410263873723400444708263875097028919587833941321625402769343406802500919281991557503476517328424201468731267607029720831995279759931165730044304382192173421510058368671281334386282235608009695726809098606859230286962657843729710958273321898191208017736813625498940400572378942017125274285057069871833321251706831501033129468839051468265901272168016497560071227536279000553837912014387056554985869983991999987313221045751869618924900459904944551772006532523521454497197909575585883932910495075061351560051893757283300322756034954796192179441952149678064171534504283994564415349814514593604395709140470250652559220313055899172337455850353784476477943233040804961203722634868701167843760430970902244752024442762961855533965142498054544500175845681517925247113047804346230914142229876767708918182906157428919709505193621342121015331745947631019414937167265803042140903456998107781781744891615226353168338874755236595192417120308765879015951569828958023653887145159000438066676504542892228793945875478507172640020970289956476399672476741320847317832821577513703756774465829678285413459613405206771439758329163523416311663817739236360850145246984842934845112225861196031962406745034085468986127921235244041534129248919147544103152029591287501013587526849739265166565204740505811618820128304659405638345046537288335067832507412877630264050599033247747902973393149456315376055002751768578551619615529409823679591888302367066356272678372436547897841223005271343238509727400805681712968338063999750010178925343170620934905990546425205825309631221622724143941356272826272187688745369932900357705395411118192676656907140130035068152428498679647250432737683659533839464287121829833106536093129068238813311654192276134337365591582365464636155493668997160029504719384293133699961719229706050563243860305630209708242739071925707685244527694817082677529232394540155936700972830823544095168087273210454998434063402942044900346691330085612086168217233802671418576548669751858694973321925240527874125823000049559084658055443716407958452319472428459567660035370408667924529511081212676293932350488794000606779838654955815946685240656451056783014582509800211233795969650952003181480578302823665012871312281920335680913311979019342632440715956188960043573244717657705625544135260330674025941220144024502245597762252639356062912291503789777537784865211882457765597146084156942694068536573957292307917657367508481398496865698248209325607555402245142221351305753164527140989177339824429142294625590088457602494891470615471029201808380592089314408991868493334216908198363370977291748251485871068921041828121553478769687567739384186405763430256156920500235818258350860212188232473939920211096694841724401454536347425363204163437777675578217567541386423173595784618989042179362129954584588357591788499988543684465917840600891118717188839247949006239703792345949245108630918624106425203718624179124717928143989598650627471784880456738184770971045434282782315174432810716602727640946141483548673341245292200223887018693879929292332949092296623352676949163921348127630042402351345030812225768658732175579115578049556394949300039109287700558571166379605515433588462039334355078560289976428425662481004031695718029045221786223499050763697530390067563948513650155875821279431061272660049105008250521306410596957326122650671642893150668398333329846586749049859825269613516952136246987886805575576209988115476900683383422637927022257796537020579579725600471495209729070431389944411585711442747308499027558821916969966135582744639685991012646827628463254484251332387200441194863889035107516760071689900030674223238319731774844575390743217615029100354977815344260803394400482621163494521568284556680108889092823233557024198490398367127711066936518386408183303174730638268357295322427150038340242765098003075117534153942540378652846629736556642814811675669481056449975924404617594918451586529301147769601909936727936292201739658241496804750920792114108747084675602090090176912397741298373942542879136282893645763410482159989413223514140345970487909338551314288536344500559696006943453107252713024931189641051649438643792446621869083425374427266260450961053965933098720294285161834958666733096036155573853218296917189643088927802741335117912183732224327382497073778346037048769029617510961300008397837407673153264169982040135958426763095992766864258628063015623508439577804759399582684073890967040337104103921224145804410958267700144055863315919199627535038073220294221489973574006674157054812466545535958739850060983618846628950469424151882290808239880938463106285644212372746948719331122040409738318357256863806074739744237053028325093926449237537246580281144295781263123047660248693797642029678037130421951973686934647279763652479110289718844601585531210069484651844477698944603687617665697555945330156962014680042032175762261513327692088553208220284156600126430604100107375347514186668634561830753944369268669794723957203908108334724145539301376115960909479022458364214076666236195398127922691416658565016571248745400175903309875939190769585461059164275297957524501730397548631984442686967296124131072451325137723680360489520534027400700261106725231193770222026306176308176514772871811407621809782979928383672165542608290811969757480142506318407098995043048255521995552020561265466821198607143835877661918755066857592523239466506379672296724095073262744065195804889596870559702349575087915733775362885054303117370706094297423819931582256508414268633102854507049118228643628079197712495921967430790693782431367026289680251552784658976628196722189370796855809070990388257964988098284290036733540616582360728125995872215783190453711944041180028136766419090423706245247395587255976439790158401906714944373474899537834741401292825198947719534362688030117750590716085098887180789081990178072833115447220771936093447835304324375169380927860891179577669627371287034401281742833003032010377366867423690515356590157161659563255173816326773197585323686026347115895772612021355597695038738463882457251250022796226766539531442256744602401103432992476704750306812275231701643864477617252527201590735591282417140294456681180421381174615370515787920458551418993779272218014009991647665359023809130981284594569399018061374725300075579465290226040378377332342862311694055786555166145039445833638469712936874993471183784105763436448304722326441072723060716796296707246310691821254648867289125364783735871680070143343735373906989978712197602747607356081626125473999048498875347810717951981697285207660120090169883466479120500305292686959530962060463577551771243393229500942372310405126091601671017709966179824713470435247567962690719523140070309122967246182032923771051581005927211112244102019912796869319298280535370074818614311397630587119931264476068747465557571843482153433517275370566598807289238263910872024996619216685808281070441010789339851718062951868553104077979626291421996785802117624521904033059940704412701707273389636973148964233816721878633308727192762139006236294437299017427908522671758034166856802610390622140530927696924223058795924195635735349832480183113204755195305438079690012362745719160871268101256937239486684725491837534119985516512206564542288451123708345753453805074646618798542144011566405416787462192622850215549142419267508136919698612564391607543339936697391829745778350578804840116322417360015391122059747241742885166000106511389214011340203618750885603916579341438178048084487511427782622708448803508951289546217552679901267601484445477359199640858100718862662294696242239637102298977994932338968622752225143318750342203187959799701118372431762253878408894720244305189374853717808340968919785208659866786626619158781060666229866202554978004806851514821933765986623671800487089075540925391829961970006246170046686856117464981379732055835031591660817291331662538136834753274916795005444818858340971539736517669448532930024425368767738505050651990926006211832933415537644318664614133935368410829847795581882099214903553863669607493229317431123888863072947791512586897050773720653702882974314414698044472034533561284520390456064081356211323605277487026200040958948815470367985465896311974345159481781141004847917409848203673736008069913013306999921488037160695008054784694394519060364668425961259298865510804700217808519687510684934579433213434902000719258748278869651470300739159760482616170876073362871634867462595782351757282134013364319595688936699373721243959605589755898727514832031187406852913300007623390900172749992571456762998957277183221310851876797141228768806131829709570346576238527683524108134354929641704929544687061495906032370587190914622253846213919892907458674459939684293351997966827145633010148314509537660064283729140821855647486636088400147283419556502154568494626812845086648948226476824323296409292741252602920210043709855429432298903892993204183930826775182449858844055496007693945825364300625216705572178954845335498233954281041926920526507783839100098797006975875607047119530745857323463469113001584692931274721588153341631466240291495426593396289001254092917118451324314704290801953386769467910565117991464603224461997570157337656449725028635448252630458501927280388087178199017864001512527868936598105764956795114059379985408786200137826094282239711582377282815283794393487844044851857577406439226304553522297607098088759911472136965499353791044136862595643869132592693765053465773289057862530780707252949615572053758366798890795697250096453571501295653275444912730686415485623006931791361268501521484000107393483387591274246879169357121049341877967698057799078731561133343825192265402974047622418708990583816864954609402842310411511821875130089908511916434918592629134566000898843908215248620375890073647678294963566910689872429462580112955910321099657871836990244535523381410920438725107725816778012909225076585193784634564240375765558589874129432973128911349051024283801593216677522383295359786528465056180747611240298725069788816501975010139299900181902746434875751706864811905268268181591070674097550425451995594951438602609205584227287584239698089472382483707290417117860960386442347037087863559073522831391265302009000311746133034309347171423023733130743966850152184028317781328927950860443736823100907108665197348954318057898905832475692586204858708880570134041180310935696681944364245322609228186540775290694054808834419110190349117339450998200656739602523173441695385015848994210545306230799030510692723931821898697529873999196828628952792979127877759875715817563460794134407954105966038216639158364897591166262611975427617695139640611022762603968236512162214746579772646667884371005447149082474642476449982609343323768309799407306617809669861885546180409178904691348003609505052497095932093192114460871401710774549220287542667656295712685045133409332238667091539686333359355251913681268745856546146740046881037351060087040371560758942184734618722848320970655460472579703007359599446373494002406271081756705555317125140112557527364098531072763425519200266000322954100391366070879899170285295817826979873483432678216763291453493646800944542806347889113735236727059602150178026742247398847016996405711655925440910252682166577092967337774297188918595235557512796666026291275842460227415749164883624839925603500414892502928005585127727006523697227375059307356179561976139050690421325904112991915809160718550417217809676823242890768355332005663347490955510926501722121685001260008194275257733385754018063499423165006743814083459273866116745591191811246793554716802615884802851886865497571216845325986191214146084312717757639481610064302062962368548573921233187164066941049541463068640103475899805976849949892418023585297338266957124945416824212331044799160939609793448493503655979857354212401855452361044173005936055588666469257885322196722708601485155447167083744763663437830975956355305476862010104708344328049192045624095737902319815506199477884276755947252647238382903173445012377725134665891886255615779513118678018104907567249541662674152982304675644935639507963328757739500181272998836995892835013000785241052148691391649058995172612394629560842629019635851709632593248198167182662090731226378321521223501910435093841596143216639715360746078140381197311079795507906137324361247590311970989009970532790821082588131486658825212890621980956446740192707724213920414438526178484536783385389145742225067383782918823700371848586589267558229632212225760368019421184835471746547968206432926400899900053451359937907810551289647357034423164403509045233230459921819130259033154290517562377249421893690871106295380949133909411838394639006115104239822016909896188044617112395225094408404950870217507809928403247859359830895248455332500767128440184729337782387566174995518687379714222842851385979175312369554955951032431357140201374835827783509855467749796283772442395688809570930264603279585762426439860619884465399411977250196566936399940643138363297330752996006797700885400215192790809698606897978977745108824272877619860475880697956217429946599391317997516506829316876121122477172238557275751898928811028054916889171726063045501212163205127931438206851353521988873679245039751837170665895910139507698793037731877231295548089055313714423014585151061673904960446666608177114663159629697445560727731474027803509461104014735658901479976642886065915471762769728746662637845791975278048495415383900180918059549090465369114911965426304875811194758459091079860074985246151595342076515311150131733616164142662742010105779765818081630980473776968139056963190889185850960156694725610476463300890243720110430482334913799810455585991652338429809335323674407303032211073457093954214690507352984874107666031071307358506417341052544992404569580444613419687969617322659116972527810977158384435350103119063211224137893429926917778981010169190587890777949766782676729840927354663519737323658991391210393399867862879210276054713699719982357119655733955493026781961173187818796339410968093366907595927037384311555133868580761499556606462160400532318838175256451470556344690467492510466935355670746540905411823164909548968037957255159063799046488370242847638207487977360381605471751918117115836085118798523132001211940374848768896486541253547854106293318542012407399989342864941430501178140800500862291319092832474747516891224038897886570984257926700285918183160035388362982055152743711997621574525057539604228089030083539994167280074405035256032172889629121075339600827430048039252191436253847471435559548609830942970336091442111258703961109187504529435046989912929231329704221853640947029271784342149674784719054609826165898758851980872476751237312622738091404924395010722447633888987752358368685187409421620325283993264019658915709722237406084480567813625066646305548170618541637169192329650540376003991415189338151305545098964002669248253715006871198726959997625262977020257672221891731875163777289517115495077505130828169709222650896676764258110099741908434238914807814146840295379238945633713222255927731113383315581874738158241182888124322946153049584014523553098710757285160364599856653324651206837807969233067673481478331805597730953473075490170648829131266318929779388548807075528673018003992244990937767175552208411701211049141792990041674776283877005098478667966212457984564456801513761840846760702843331742608781353415691195965524457582970270629900251042475062490144340744510951017443463409524050923652888249973598749370584159516983791943748395061699307343708341661333730246300886390633192632739373027885605517615278488932242891471091809653697698641941391411974554208934349589767081325348887044375910177812615291870581302342756980561279785782233905974403336649741863387919121199222001232039726833388341537855203983369871157449081398737050811237339403301792762162354235721192168433076436192502279174970892943634811923485591477493683510300690006760917195881824436198501445834175947327512234650004295489707549597301898320937668826441488578743173489401153963980422859815463504078183822934423520079572056984634087744805579845209611385152664386261133434227513611121979638070415452371588923737515130029360034049889205519408606129672883035746393748662527108380807651733431255193219247567359044248894319908811212840469205222431801762598264358038920481403107875319756382204181072524513017956580149581575628672748895981401987086231215430425359018512519255958503295931062102062492879434764666981344222478718577362248008217329324956793129019766001058596854092119639295187051112674693834495769262061447381928247322553604237459168905846748646646763889771380602275045862376493731818231568530867220250593376228331419446460299332097530433671313874032920141172829645963309086839473361179721097963513125711402786069469119832052674455174126045388487425063139529998292423997729470072034004352399490236323691398406460507122472631184034502714335661694423071787616528080507696273107641625467489086326772380798426053280139769271122277997241706740369827506460680755813548592530682216874397837497605917216283971723108570831470315848741494996959807284393936798369983514477961795980515545565463339669221254296834126526419069606520483618396450029812008249198794034974612633137725074512313135541565927962253001908632974203459416035431953273628278335152200747962136469200670655696829795498755656993966516802538801081455964882066169944678312505764017908807281854005773789122698984000662046613755822392427457182521136194776657243400537144654351055702323635232846756608362095973834423186188307185508507106108334706839877674071273912560283547764592477090461122892758686253279604088849475562173019460292445092311325768819708951050707580143174157457948551116334649730455314961730922047385503015806324252087093613033638128931237719931911971782893280882366244817032678811117412780350803080048999676730096419317923324556383409735274703241360702732864724054563098786274083006700695978857443618747542473351993469952102560378562541548513529470839102770419698018516272887680025656690321617659375408484660441247006242308519274450696107478516183091941144635166323096696211931580768732872542516599847717985493951784347444413249518280751521220647583910026842317548680517078458118276941836437530220304631207551585368621517269970910486682618030485577198667064026133137527298461738884627206574017425534620390182415162000775162544208790862559426777014045283712861138675220179356963271686791848500053333455881552507356159845502168525034108698275701023039425117944361020108679969117781663089084038042814228790101463023748026072903793597990130180174075323281952182308360499240919390771166169895760034348014835045081220359277732362903996293895721499810669190629948681822349011142937224084398915545932319252627378894223089923547182715323727150490327757226841932409296614900993827164799221969751803483817333094372353492283694860665916260560869687823910775803496707200831266866548848087435291510834273288947724019130185149352062827158438394274859423975659528922903827651845026946247477093475912016428632472785398242729949933303928651442037794526426616792769627210097841416181448787385820913431354437314534528475265806196519931003686614435196656337762154093693615436816988239802279036727008821835701431868853703988136542597863468211839563617986149775025989822841876684985756025986524316632301272132372572958424529527626825958965109116713379323300912132725779872402941904667547268191627431558468512596177228516627268373269563875249997789550440567436759707701560171569953242088948219653181341576863277374311234123817756008909272850721806139538322820696176053565651443633715922094057433740483489759528660062795250478603719907109063332130073065280380628143743680683355356570030055123835880412126392002370264971719369294210599581598657989996627951275265775676887919720108834941604895515232376972624296590061475863747750333139178017233495272641867841089413213914700594735642995904075834548759152601423327179155743716263639297612661478758061187484916773409899492482409527615344198367765782504644197724057592194508490286949048259179709807700339880128340471261042004100134406821125130570606857968317941058886411139836520103529431565786013508574781084760393537533451442344214327590307203930285541091105610266176957063012977471311518155990791014052502052974537393932630662114115526153097132368408152996962150188070107008267799579619743906458393298596457341186467090261275436611852936276942086636692703221588137608902541223764895407396474020020177009979077196401089834764198533416599778838534919762577275042264556739007114580098375173534819148794230631549429981058435422587416477072828229272380943615063867143900497267949417016620458162734084608536002388246459301498182624104184588272954166072744691427904287649186510390741700574315056118271347559691317061013789595444125539818732717407054254778562731093435416479435182445187528557537227187471726267211643351973665338458808285763632854264279970447615741241845883545602199565618983339918079897177817523128386034144798211292625567877205460618845333266616922680151984198918814180926476227938106567841083189530145483765979708412010382243239713885887583162834765609738464775568515333606342770771206288766507179396700429847007936466621273687988146053290031806186343134998337890495957111567670276433575108986991444899076441043452713873561411864323050861647178651640030518719450482833845591694668781165515817548024325522574810036162637202614350219272863281805451564960346685080399128775888047200476413438478155846426648444980452206054678473655611785451616137718360653394257842026440367715112100832598971367876954887892590069583644780840384800924168122761245540888971050610681072233190359967907309215997787080193819324688149047044840307071755683945025382132830177254113284063361438062822007565247246988953920521260828480481617383471707591618779165907837767524465361821633805700062358276391786009616475782182245087680210550924044976488062604294659307125018230029136684520239121538076770010349959850386668530004949623577382263884264096301880489269241941410151931723520240544614424308455036038893196675947166540579940633368717083628269648350717144816170605351978050716006370608025013633335333245653566862138495251495620000049122020862517782745901222732258169998792847033202589956237541529362460061125749272394439701620170299594655515028623197514910881976736512277030204192669671449215991520304255869128028411667851168750895294163898644126427016584502917167254165296718254173995472227985140669294457464468017959744016149833728093781946688712792750039624398962763033523273592269638746724515130604157003735345276118827979389660585040662458052636730601147045051023288341592058794454170204285017553179798038238782338917571824751063593663724109791727360212731790207100048446887059616577587456459831411702349448544145637659573688411478342778440998497836796445490400759185233181504907359155197915767214160532404577819889333431275535473302547155283925406039448834048945484535226318661510198689861692374804767859067363219208214524814510857486249483982679350719478619020591940212143138802117531612151456670523451845146951260919151648977544396784839097142584492269766846710772089444269156646117598180024266660408088982001279261314227706869634023053921694226932441292463084813646431565198237461981851209623358302482478922275970004296979264783145416033542286537043460591446465531902362803576979325674453361827709394179220406725284942275143005459837647684086390992329178740542196139968250508816148129853378961604635651961780109688874896768468281816457730747405367448820199846315831665495275645142734113611935599061617794169481802624767908916144141919223063284174335470581570270715809175511049408773120821048775413067720747709265422555891226922654008185766621117619890940246744613640506613140160015653405305432000655862897282043285808704903710187484493501846880638911128023801085258254284930080773095751877906601299429565391935430565826903669103140107568183030132469438238350600331744974957685437261342058995664281769600189479513000722611684816127990941010660186741511780100879389598690415982932418120406699046230732172723288555386009075728097915802566655851603926120423842683216794710783384388874233681688184714474822133623499616671113373524019108648566903954867048279206387928900963455891628897614146800674999258564929458082876967025839928223940814605619985869577283932771369684196475469422138599730026154654442851634649462900623616946368948773906350242310439887082039629828163856081380947423797133111896943437985636373299811853027602071501931148256275278793921552917292733118933168318022249613386383729940722441185099350793796092592922587833174496333779088147011661977388930975198490057764931439150751607938988221496629040108042156174607202792526489582900552889954573514237812012166725897345365237822570360852337916433267150996823056613778998941661804537797106960629198427675799184728894532294242082558999026007552803936526825185193399343213381036067594314390055224209929554717307169703534735082945824435642356588082729451386366520504542017339612708880268122732445534515523963964568243237201121674623272485037421317537520093310251640830278491503655663943530742406624665753039453029611741439606121277254338643715622093175223141784351434918668262086529332133032558052484315564082829372810940321190899471426369352229022657648935192925999604115677440794726047371483216593570722002706312561646685592224442309243597696241560410261694921817613974576210150261146946862221575911116167736949674232733275319737848158842111078942833495759249092833120570513001535361965041503820475829668583113419544058927544080903886396760183512723767784875912417665347032205155431913672145241017214840044938459897607125375957548795973680982628853452823409616451796618501405858887141253069763675425115670577956005776259802034272218138636671965426977499326216855955078487388843232696502805738084084276113050288267003097065927088829713249843381482526862223567986469904145319988328587928881334632613689868768935298994597254889981092759374466845628317665445411180546795674799896864352134973289277632098720270813944209072066373283038609231340394276356656057411152291052438391319254366667538820993562401803378348920390486342733105397947288718811286256073956144028849830409285052234848664655410008597975606575867476173623116483380499681180072920968815061216285706882788945206284583799011048858720559314568832321903688143239758628013615982509033286367193271660391144519997531871765749570412173314765286495463022106573755726832621452378026089955286065967351014892779954780405008741092256681718326473692061101362465925735423113915201723458523341330406832794957756330442889535570986144060469431569288250957975965078008884839248326784472484897899958143568134669620212928876414645060673901598230325417801249321561723510112867598312555520812819061715499906973503624745427770383665201909022972310465394736729472837381922740994177422909540114472913826368058860384024606580485415366686726719942074808989868430418897578541598666025553273340495071429062218103029711532091430829883796483904969137578317541564300908846606892544397719807574712472537922020687582352145267978362382586561675412628349207267322208867261842667522695583679439311575158037076152915310530948533986060197901285087102762167774397964268085245485226659428265901252134052264083275838825448878427531826365445952388262785048228998669842447831573125032426208130788795097357993334183134138395435996940097144786911391062940402220620121868551537526067914938472406221449060125799034162276260583339645410416537358579751109208511075334775088309663130629251288746213820532942610304369043595061253222497892000788263935680920639756074992605194540151599525284726434031730345613832466737738958134478868375978781864697781776165914811186823779218676442762276520337186773200415308700619983134664013802346411083013463230146400973747007754780497274654257453115403906753405238384349697317336345410028644940118600370537348409159077005132651748312689637242279014355077610668972317174213236821930003013031322384880038692343547970542234840579631478694768546141437785428728200584169297410483062050946156711974871059139061329607279095868428578577901061355058799572390861953287161580268030556870858688086753421621788768115242108626909369982308876269780239841721014177718201163074937085160582219880961788202002422863416644656054821535173105618935216865018994335286698217196188364324646432062450976132596811923850366106740963102707552086822363557518427762423306095302974382511483824033668408753841540138095573398713617260696212114714787047946396680154661447550639168119163490942148931950851435785669542528397790073641135589879940375602448041548236540566316851051658621914812445516090233384253939661495271743658729123591057517965744526929913242646419896391161385192847739602028150010231920334898780348195858174405747832433859387146124701141289563776463886866805711786561561834981920857851363204173858708954132774356254579444075139564863892464987576794775933833823858190069926968808579036423992767629426471697452756022745395758699030498062006627831124264726210037104435525263523175982507935582491131259896376989018517735584168847152493490868919499803746154422630431116802723248942947027725988337339007117958679005594114449560678815844110065755711131594720803699296947216969308507883380721779928931329703175852078410673077228895838334112848243276632719402604487804404252364691021855256360678189645433174423982578089706297794455624451688176106692499297968591481881690300188846095670621230810998130577510032009785585122750593598802358334329574318620264686495586129204480265482425554202715594567109241564613886921246770602914585781052733808715297492793561530681744968632957097413180848245069983289951165203790131332584578051133754779317292628759631732104077043869816528286272394590692461483689069651465021524581307823842527535866143644295383000685997699040684283032359200807858501949806978793930958055622165472617066005075362486205264022838158635374180803909848047605219128658544310841149500563915286821717791197286803805494593302950652193821417426909254109564817056933772991357114269027715972348239534583618662709292620765030757953940367959476500461604105091850097190018613722504333691563784259119094315150150435958383517289192117873711438276730005630669437599901828494782051101471822155032176385259319174326824332502198790971267991402662356963421631392484502640172407460575932690523487796322339689963302511698035936483120361665636193353517903767196856684941297370725286804961678017088501577163869248295854248349534498925554028461539234982268300999519631455746168104490882499130951998913356927697762387910706699414087702936155048955226100092547022769430708521981725616801158864533416100851303402986846651850164212396099887097920774575547011430081697753990022007426142583211235483110458340632792154024359619460815628828919989326159757035243949248614341473208933662081921678628405504082884722100595272185989803077091008288324107263581055813628979812251429321680916337509275826391580618115360045330746764489084195835894789930170310273667156799621399513400880784212408042038466231782857228562220388917172768434943209028559585278509223497792479976084347015035842414857038881967081114692927530669415626801056494321506211974704863108168289526800752223864510740343923469729744903260684407460861232327686674265716735204731086484485620202720950365219573350056348027332589954467176500409482557554264911813668816011650333587475998490657615945585292294698698503120187974646263085518525673818448411643289659710015033490575824480117931048245996267635673977581155823129862543895982477151539287677853696847849069254018311688657981315157001963930271983342788048579426526499802700203518699395705787583136632524039653170037893842898488310781864837283857493413784227814945291861398353918428975694013729071474518723465298727503492341422630946042866016459706578877428426071921391626079740504729020987940907461593681359678683647965521933087627574780901943961324442683389507017237157932484222234661238719863916284011342453167960597447681926343540527344020781153355074235334445577436282690950892746457999327576284339110206220041276687244933411765721285198955314382902420202287701675705814653574121043921454130766489514414162231696972532220820218863816833777249409209682947197027037196728185505830201278593859115315209386809559096024301713683327502296721083797450363066192825298241233029591836423622846570471948419780713157374453993652746237475667948413072305645165170092450124836536697786804832247844858791598315912074502081884287778333524436131272892476353039205412984559012231679675033083996009708102880649981557730439743317626088480234334494657674058256630129952827923817929686881743877701518968309725012801287143900958476005071760277453084975092630756618052420179621601651040422727281101122442757945359446744783373029793411485220335105672555289550705568792709701148095347728695753989065825215138405546682862703549672130476593019833135096754939443526531557318043750983323094612988614747800719305662495894183124469727057186593339507636089120820474631364157342429823104073582484559021698931837321750697103432490272425657622787882901905406251288545252177337094712522103813501791682703170875682724829554245230471024669957035883358145610546911668152482304323937189838317570875822387796601541027757806072383619029196298714744852844152524429803048285207972734762300345407650999868442491871174954921102423574615658138458842020611924530809512124161147890682027597054458566775641189474109156811745912999467220631242722519744399076098754110151223425479608674157049234728616368608656842184475759014992108386778513406732956015722451928660552741819656679273729455246507140902216229174725057349030092411199186702881252714748890175237184819937914121315445851247598337940340385059858640157577783110519308701510211143564816802422358452721034503525228308665433454115623132866220464329477806650818594476424239522824424428827920910853737296402211175732343794418104916205597846004540218072003182346412445548501516280767383532241978446592470875800941545431548602621802169669376638129419981763743128307750997726559053992631777473595087197226792165644776066081202754221418634768372508449342045367795110278452198989320384252236953537019496290385663425094818401624809651690731186269266399995327476578852284060065311543894353720928149534753553613687443655141573553768070000173677982624494201431999335680741831804281681589386750335970606934054927651939614466456260533461303356295440174376256353173693791836689437518469931418643693816542748811690856366995722335713142203542937036426415801827877433320001833017362130902484746837397853341471755009581636152434759942121851205590093466700605598075437696697001391329879126350014373844915992153072823415204162825593531609885039311993548787325086205769770474462636479948180104278891889014978450385195377556287258307762573825016620409150302795950210253747553281153509686712014950533472899000897278813726910584966824655053780742953086527910745159859222892569150871377846682436867064413275413152475946219593422848310798736961688967824192105429079678505139254845808216110014015421415029815576755759932097615973799279226544293423468006065045336963791382785172225304106838242292508972299570706960516870983192812627215004217455399200582765255440337673856227563159353913567912363268056863366321393039494760336540928495166332880513502927238669197950793739616417819211260243947720908302855265120845257681773899388950728543414711232682352703135350571243147466349135409886140458909405890387696803792150249921998092990468722111310443894190640014550882745894603327203522382844067244490032666615942137790882048826847560556080512301325925770981400158973789528772436101320400897159102057440837258562373158945271358195180768691102799068184386370472927137089498785443161655339247901661751896845626020077721246296559973339301596884855518682861007082675512818579836456971100945930168326454802174732896892969888367642386947343648850812789277335991154547467022413469041486246844756009847402081672071903877245595097941845473058425864029167782831968166421769747275876420910582189963360926932526796512594589595209070126382548071712210881767993292224816914592184748810570365492425344210507661239065294788125495847812769421173777377993946466688510447572730027886136430978370945050890077383219461768804351191417089972506795756528649862975400055541825036346838587134568119790052636496592125315971128280667314547546402830937891321889445095454075011649261339917806885093340684999711726433265830285938509690341797513441948481154913676579995462370505440755236733728835843253633821913064446278571638998924311627866366897342639075641788705947716489542447557074537869362076093891444502840772963108371761310282805370050796750404471279350145468788333508803794821928341921751908583093790486591005867507604017757199404507950585408643864612545751324125920061272056491091473580738199307113165723613590271003213059834427380878714212463548250812747681914297740901717939741973020911925080645765501613887088546207819970195394278906572538459724999056122523968199873079193312657521904418831874931251398180469197169235519964794532935338171249793067097224056242875810244185637778883273170202307248844753760502057796762077769990784674141384177179098663787475663239039696139860679454741982116207028118570740760317410300034693838054499987591209104895199196715113901563015009713492867293109464461951314641822048358476529660902844798316751626838255388955314495828388560283731262100528121169767823192821879576558134735640847815401510588157526611388443765057031348619562502575786969555665824510720187278327686381149277339339434612205531527354807019435548534539844859719140638568583436556552739351575422701375447012468438238495397001799292252101597555481025443870765876040149312621450385029240222325907441351525179147147695342824235295943098052515722049802725775732085479069132278556085422397917514877175124903747245767685429514345228192401629944313529094745754462276433189926372094132582529974489834099805996274832345782475883214837568125804434178657677452563991346412586257789596950473337056697683594645648537984766768182279886098342737758088814735375890479286771978882120963247861334541962600723741181375118906621375012325915892985413547456927385035913312709725826843139615309935124457112416692415343277363927933672436910887821691944125917054878671270914661467118545507511943469983277121228127767667893523173295069608266229923712879268947753540935253453635536704670410922776345983012839067507886395116607754095646667908388136798932604373411075064196489745814750001769762788635934893289326489980131860431452533247394007102790593478614358776525668857793349556619125993754028242356483669466869790426157954845759084001414162809437892110729188333840812415107128741496531614131634324582630825987099239830451867500364267809609232106566927158492060117385574595512633701377561947713518361948666160177730905504488799357417300547016698326677263992727099899622040427495457304495028242232963575205169158614619993716388167680878118870716697619815122764338669666488238635815946842848483922129323923856805048197442603146483966768612447811267370211149120529904055924983938112908794020073105468924180643978455328180038670445914653676930427479677632285790128227129475560303036039837385343989669527842374623150790934984505383971309144501204909523482337024995137199071435389409822194063607513939555965800101413205120450163616930868243382102712593208524871066343279397786045208781995252438581306850001126323541230257445677201257967131830513168971250853934108140318866469472283740853784845416171351447474296826561119489770687107567064333023263482694062210508213263117978241698554936576156974222341826150935392785759684281904504554419359134029684034929339431557722820951106829995386278689890885570261672931836965893036613111461831785369106068903295420264723767673148765973251561538334649938998264387105480552071903523972134826881539997298173673666933517014578662121671572638658845845036969763054284475242626213989022522127918658639914431160757203503857131959799283604113383095448864224006221383656553558523009703620296202484214477674135088580728940449663085767276728132602987103387226470075526912977081243571054957198830175752292131258088203191214660608843891806832897402756001793609215730656258493608442468964882021587564411135370583463770603115774404877181328564292942527883998372072495476682059234818744940892671147159367931523335781097751748358687767436392736738829286861065570551457065700155833193938693333066645226167103108404749804671045687430440889566042897121516767719671044535002856973871221192744087800452091903600413503771834600023414519385537454727511587256813430695449364635619531341409670060351564371064389313307231440188703243704529998446157715046406691967210286045659079085168414397940792533777568019263346315173896366829789927609792934745449374926151235051634237929444491681974116992469920587212083797574531607574259411911450168245261911240853997297864516848346239174441228637136071118076247308874800300324884656994843180268332176390270249166166666663221339003192937175826138727358678247909119818638048724286395329701620203447149039788422938868317073501438488436734181627312313797870725312538678298494739483946470319296057476096295431806249375708196217482556050618206161033047022382333864289405600077527423385592063539568002722088191425499180157757333357131622218040731907191020375080253914975992290316304932609017093650342843386574975434275592889318992066753987396491489390098052751153532605609481077618366484622274501186827884695497400677869750916498779994227113394915543894490134347108056319196038801245726386432933366630974118777751242726362682439043750372911103054210461387129121735536128839779188971872159549764465278454868364270410317713193068527529682289375361363506727075840694224726747648260315801490608665744455453836710914021309183912953463710533544540719169658006863020931662498087128386679263337008494222352012810554214495406364299418280612205157279101953220523826365974544876518706186318924372999438929446094034020461708641175131763713739778579507939556267336583994782728201990136339447043451912210748818045648984269678585350085025760388342975974395592574669587330806308596351475689133621792881481048478515148821650194540917203999884835420255653340608666303610154057915837384151947200429789975583220459708513266356720335515110397026457176848907145973970765004965439973545301500198285439171490659272187284801342311722858470905626640725515201120364433761608434183108335324825547551587734014399905836129333247952894143079808583669479440042358171116239924218243049411517598036249322805812786339403281655912907710505440765387972433086831386729748600908256855424367899581930569787735486410428371320793116386718431039759758777916215046384918861236987620448872891040774068419078861440303514165518860960583429094677645803365060058122520077860522677891500562745829420800888575829948547954489884725090939547972511862544562782407759073361724636693735414574010934672441733706491924675596726211058405072568741151109319494397682343500341168453015805438164573142973023386277608872560780071084931993854839345461409182898117912835656346317870756496534269489121770720543214486672537380084098289657718487502753116638714878919227331481152257558993932935099237853133314112766874291487180366329275228222995281750988732049861451746386581003451948864450400539441150958722598834870852685482115033316140571885179529252240457698053180762530793235966715871048531883401709387117603802104440336822836858769517072390381830494927841576073384774258533201450657352131730294205433905552046014650041589100183740280124382701911209227027774973350280571859099879387987339601618416785963154942496260920247295729134682365585416348465874134640855383732101688031991360240836008708117218986230861676370045343298163783592211857375081159367543871785211337724992928148353033735437684976441334050553491982717416786778405800379621464996451129643047159312102129889642228499173968449931308311716608540424485216524891209922138082113275434833877057907951365785893026874496329364243235148243454568857582527821696111046399068745512058461242421037783400456221300189732480632486445104052210716584634588523978675346195421293264631755830044807568433211181102567555772038419456972420772715982917208540796237157059937981034932417462952525038778857048954229795896277591896422205096527139899152125956290047393334989234006298293484060362391884321267612028332305039185481239312592634524370297537214510977671438868444538371131544687401066787143531738880641792038694835904331688209170804822447156570418469899641307569109270868961224044796766347121680564580009348670267973669348452208001287981367913330462410678626501337244627349537915849579355669753896923849900108728075694869901667035399732878881721962395437056080655337335083844402409195709057576528389601088761367994653892501436628015760332630017862336075936082675711315428429872401887075159768930119998271465666087765043709572063995334578104706059402798316253403272265192991732223021058475625719391246348260090762609095684979135127607725948290398726608119167612023497643232970645753883568059115184492478920361991936539798343022819897019887995197303700189309594555838673642366421934785297919705343173843958562276052960687238496407790994309462228301588752042495085501256610179811749479790681516810503620308437610276201466548490529255183828907224113331247418888270758929983155767843179825476638998959017746959277777252283598668351279815252104787547810806989378103909354039438369521060753629852554023085571996139837846742932347528094936559069931333733994131015875722275953991974990278336827465049915215288750352237591829549850633619157304496779512300498026457661987055481027988147646679297378442546278030095993397482063915060282144921146343606962816076034064396338427838816902002921981750528159712698927708019790521293322623675763463621319602004858495095127494728005074343403622728479365190341107554661278893276370770232952584809505300052307295356865515547745239280680193561217778193932610495041093456745720789495478053187141827525859314300163100495884662166849655011292836611557609795489721798650340940071090288416253080760902408543889364160562608919387758129873253369463379559850387757874197727748852131293851982844880392902423780971803365818347514228554039592560734452875008598125403888121414961225976549408719511144338660381461709178170799038704152829819684408502456181252000474856391621012428182954485514514763700467795658893624191001275206626221794550519061174472990157425441135324888941727454749728702518436689133335818193303531617399763023804401070734684176268593772298898844690070706833115863146870258786709295916951654350882844556162974036592000696881124831003172930910825953886328728555002095621900577374048248646627469798756517551209830555908211615995696631673968271348754042057885084690813825840143935422076248859666944287804894524117168722618110864014355708897498598380625273096063361047340564349854010128500625647868651379353705626900446497879733075381107806052118330168538789956554194800353090019707026859061352180024311891346305527072273689090021111613948526034887027753089230109358686965760289346420661884953525918382937516717501721310407068552793305753031821565125558278598336044010351069727257759274486208903654215844808232639831748573310358627603010967020426880359893921357930628852297356180202064729123533102282775699785217842770000590306299101798487948857492893655069343828962802914543124450307041868431488971334845928741135394544686080346656659314205295641991082322383973380015913873915180010657342788603790115596669557064908727643129201877432932359780321259430782155285314020452787953581437183904404959877696265255881677606971164910435709410094279110019295885146470944187888295051345985842790032791122284655088673247321243863600996670232042752034668669941529751541492516623974276162768058551722287125635498325700697896040615057314783204207957073103869540089689422458248178255011531498699875715137847335078975620119337432089112352214728102619918681336961171861835678442260342685352843975520788326774923978841225807279519931271892346255349508084171874180937327738755915696655661947808657728319442209047789487310496129301493050078714258251556270138281883968017537096212189686015478890491644454903850809953591619313528731109350487526388955461650186207169312834486407270761454940327352543580134491000679895151496776655258071040314398567642714068494026265586990261452483673194256475841879590006241992157044517726411895699956564981986713483918837217991081040502428455022803308542417726687622120618199992098976253945031827860258126318459658121734097194961480677191823951116494338600386557393508000738594500166621219973432417739019182565471246024529597615924920332587999477850935267848893826831045555975029644377484151004180404470787387868514027458325508399425561147036799696355809637989478046806191870819300244338600963986675101395408010949620531410665309883568153322413742375634088973900774656845492736198969802172674788333931994759831069222556904149285839954329628605097258706559691623747517704289360843316368277539547867238350727183746665141814319583421960252401418711953113987817270939597766495165111206304160341325752463591806171322925205203877454915543600865727140138662564966778840414474861122312480610952038056535712826270949516588137209743018434272654883772684289870061625020195227160102957999536597914564753532215766286915570570713858757987610998450568454742464859772841913387586604894700982697096862332132553623279030742114066718418766111866369923965649186041223615747076403617278452553634531399468033523088841015862211204166254664210029693667108357199160496927017925320032549542344355364442694663688175557648523579313337943630023895587665617525783192298388297555501676584587566180909712050525854959144420604687329880895604194779154937874436919467929078255394272759878849797749826307381352305603086608983048871573666637138868162774123992573217700311922633867756171455202100232661551656785891144450670715453456171211093268196279203199641873648132681375928696366256020732574481550288119300096106543181636365825276461100772716168104607406558558985527341957996656148836216424696671389716337072748797700402971581523333719543042674080184450461200792568178874345264344468826064608193969452435429127813861962881054160004191470797211339783144819465728715132720505289842234461798562926559932708680729791093144130061098840444252084849091258645618995944612043642452422380675787805363336072681878204970037169661942300503750053730094847530838194060680671534643399930767193678649123814706067919393544189776174035957675094315796728052546786440893006238773596095917862277066904235809899740063501566578195975783518503260551563752757649831604567726238695944138894485756873105750383019156917044833306300695880112449647112812677096682428888229101426014009066961366651146029865365440474172048633929085630986006834965751739147001472179131066836365235329276905558340494283518435231238077394617900938675715937284157547596076022084678615824389838473252724183488844583105036402800908203771833254010370473655201411572908453173721058187287283214372317011447654440052484198612488102701077095113226244689237097751333485741765896616614902931229983294046722996339867890766547728585213547024091528779691289244076584899307809925706673749442342334903693513454776595091483767679329901961254928042767546961481440307953801386492810436871641432614815476418032014402515278799446142310912187729715700640081694590406283980574149991606008962610226182524017661264766551123145488762566847631194116695013947725952336034939638635447157834568949371616018006488328659926135643971049748955177913318936572198660872450257733538094623437719147550747272275526376758416568321023486956165777708008639655002454885930865804970840502469047359263477851658677602218675921660367528223152127163009313314529744561406660550492468047325916057324658049140766103338035573746754782424247017477991202610457453375671027451440344456620446228842358101438143142195996616948386120033211068912004201519665407593900605914765285868950957714159829368104122692082262196090829804423493371049347858778489938256531694057599711335656352527152454777661351697069742768362997432030324240836245584952318383101825222941982354997453904585633079445937187853935770487975158116643281742732960143622626054941364542756758431803252109478428636076087825586453226931012464921444917366224845734791379866173090678258609859476994387219118535752190845360553772900247557269101553619976248609635542164102442818983421782099646261392638307101966651536048450205001836434155009331269653040737336422252472173695648094231181647152994335490521638100751179411770439683267155114725674529714164690844682601872217442810071162381934943575355559888422036408527789548508049724412815723725078741756181669958994926161705212656922447678989778863755967438420510063243839622535001724000393284885057778611164686227550977896862405080740838574371552206630254394898007176329742012317645696262605061332538580365463864664317480415596886751726973681814704078226724748963638087507683700706345138354379197870728677891077860329595803815100098079404661078046887029496179628665075727720836348871182752515653245896192485680163050778940400927911789150538654485751358947006144762186635024944433338523583185678190394387329834833279725186068961723804103605252617493032912974132458895241653263173211765553708706221988839679579180658970495962122110562444309506872860016626395079138701798164283513699466054992516499372814487476800663771071382695623486430307941809143386349828636060627531167394966010411809172931802996147642342013954435861829793313240735104054380404830446758509043391931915362472936501559785622868575767171153426446705197846403271207619642295944262573303939914847520506854125119910585268210833739362678586159425079668183422103957401445417311198257309008289933650089469761068135742459468566329671428348924118862042991827208128541144515476980231139971262981811769611894581858565100606743864117379295541853278589935082195213166940632217953075274879512948618362465226654232499519890198740118932985767059776837446962244121998769449900517879421313238313685524943218665864812943340469589774569422193997091701951124788823739808331344607204612722999472669041950689332496588349837272595561387014313153980561528678542383953015201400993990348775542268069549402639573806117877737767628575331560791081769082298984065430310802814670664082675030029988284789980082614779643611811422708707558483478504177310957086830048137507458083486321916309403149227243626000904368797498241824127965560327276100229354725338497645096837636298014507894752858488626267081918118893039754108800273905162437252810498528979142366246587225500287962725598025187298696358340505882498040560391873762049161239881779824976897865293163319597077275725089617532220486520573235866316750948618066560960850890898702237690102519936592513022696173345164374655636316539060795061073725699449937739816416608712350699855210481379960968358428610653171423374712749319586245213560297795815158750397960626098297639641775420434910709506449910473883805805064504887849712111508760362829671211659665514272567322490983648225481058068092785268828836849939699698309547844409721177833255668071821127686985940313752496123211106132602845427596997858508234590182878656594523358907939496229072756399683950874054493940302963292988411345653746219256135596380107175681796875166663777335548364801882242947696108408412520918832012256213327370276445506083650762990915455018036107453299775636218970199156927266977094333102858513357060206413588923903561455845168952604293597740722680326878614266190500732655285635215223776810494395444264737790153535527888389800654633698543063061935138503355218978829154510684831385818332012796905464520334867204424830836625754261872573762007909378708626562428423366667529557757033709292157888856889154009843140528880354115791326553509683450555848907679146389951349602176490334715573401471975854284891732442701755744842494808309923445779554836714998903609891521349489653197627891469220795322783760368089937779693009935741797086970352901714469480961923293602597591637203403871773775786691031753767056348474967735137094329607741057981415112959436709110713035499752351184710873282976667944397851039773193834821547621924329814290194855999251279440819189849713324885208537691090602360977699243707754727175065720713243136740380323563086669606360425969902833732781427474171178316727550281922609621639971966792413685651663658527881786876538227653490585586122999319135440597954601854168166703678630977631583756060738340760280305079446065678483597336782136060430447760863608358729258195294682262757416399884218290762445811441897281972522038675304133441540898342848333667359010888658634499300986443804415923679104976668894619018132643956933542558814120195259127117930810727805121945068481109259300070957748546950732387327482031860489066769475819544735450431400756980784599952845806707274370567076710750855752646953591887860283973533237404299612390960255046283258216109894093803138040438286666680609103237561860109338279412942524022498382409306331724550727012153962672083645228554014040041348783026264433260646124501520888644630339208744238258863349646437000179727639954519877961265566950199632340294343367393006083405528644898290896876792518218245484131085920765303171355667256992003795703297453683885655016052512588227561844505680809587669487400197492835007563948813094593140986345989421983440637413919708823108523718304724883717996331349431625790619234261093641072807088483471542211213635446876375080147103911358607924961723172163721847983161199597139497276528913499726718092432192673907991976276227747616780313727614616435030728025619246000235051168086506093240733483051947905520947325075145013666561178579943678977317707480583543159490797139631946201069720791926664492922269403835983032180136445742212598210932849353191474735380113750700244605306619945627885080249940686404939406805428065120928129192696944803178827429605883208797160428874436483939784637746161940806926698566530491962324247554696617215411369602157330912506797716894993969921514211137616046788796088464032890074998446291564995931692400473684914207363210666437400055900073589411184737643151245590918724237738240436501010087797713736926972695993455667756083055035044959866769706150341812042907864886155326848576477897889945399721321382754508711525698725197018801577106110032278339999557037091759108463372020486996169378801684996628968006462885428000775354135149887254501759890351866649571595890596091694554355554951170548570750846440839786404175163586600885248864087521220458716312747787506965458284600049869430581317464071223753893908367082029907365859383476389101878405854688093915155794614735110264715973929681285722660577903338127358208939999918453333860744082644161781727090741100647916725597423252069292201814779388489263451677132134210852723801877490872219936855086571387508390120950687583408924977949288749635229565994768148966568911985401773842314359199643984807988075326200039413583272476612219602437929793411263074654648785075530715243976897348739668605304416507275568874882043889086585118276265085518275614242637056235875021469952853582017672819609323467689591951798368174901174315472324478571349806475502318587767578036152296181414473003122088360733987410204473242406871590321202211805395498295275224229582299465601552997386093434010667506520150140293506870985128655042980953483244788836364205204051004250464836314192347049079397909509141842440915233298112582605086723773575958066051458832230543737077739700172252191166107899625787419159257028711658395539881809476362452306325108493609500654576864480155351232212717618401666812047080477859566560283907399725003726765869677703899739383388792530281327165335005084295515491573334307779960301972210989359461910838024437890514434742446793715262973594918539038390357315243647894076231458557957350749659028017293419790299021290236950480037206699471136234981281853679834943781201771592105760250382314626829794566351429520805116426035099812535663124767304601267317524543371568550051214555122271782247244494264719160011435403144371419058279011575373228743463411169291798128196238644023126650028263316224118913388438496825750284552834385698068653836234684751713813003434477170675858752536850427532990188328123665128468288448709949404354332132971433315450395483464904666157980470694560264369646420521811831326817592176120868659632169214068108892199857159759793366134788019024002457187067257798771287044000050680726167432905959988231220899296400496004036864216262149671614335827273588064884064232125170393287659287939679755496854195834661911591039391100788432868323201115945936567071637401434775676033380594445084824700971120225171050124236820374144615417645713571502041077176083983639747800350631343056380812629355612574365404539667406130931337732472455393092920557754351599335285729776406377152503210491352261234769785334791521486646780247756683214685607622603230704816579544885732360056231513614913586335630176095203934116743705329947294929848856344217240273248706514123071438686912968854404133217400259060542387127079073132766740994107716638012359444374033404793357798099541489490694718965507336724972905564948879925530346906786484928909564522181614002632774885853173985094125548674958880855903800453901837489406188751193599344877202529194513063633770697203735436242702438854085145019745942355072772844401264454985040881860334725235756069533121859545940567357411467877541162097742286721656731195692901351620466122220867370892094337798496604715700411319240485349024332467634676634645902221289134592895755447617724351278645952183427483507542550694242702751763013605651369310390935719870105338843718608085211488059792179807963971129314484987893992287480640041762265517809446349823277770722859934335410055781722967996656117122425099819662092410924525240143199948855041620226216621744531091837935894193845670337219205182062433062016141382675716254405696935712780132073475021046871958674294854991140409904117760648310456890001099157891845632738086687449563303410531958317900308836247653199037243970333596383605189401711303847646807849516129539564954187181449051560594448347623615459123598972031632009051107085975473100328093252776653910393509559405928531462899951419716070745328230337006938413584896162614512574250917009391625470542920215245029122512296706096846031512555554954529185239662402372184067529721876856976789073653695393582568606940108792307885021054187423822985130958607516739627120619692325808924364463484968354065954523131399180938954519927743429566501351031977889288944587204549174825000409213772521989450360034729808982723985042207593528890219212084768748625257223565895892890644023120913576558076316582949241622756610761327550414532603777672653995260284058140700308318944910555773133816715693407541823216073801873961610929282110931162653881294321165396115738345407456796082479339530858258739931039452836401118682254174543150919380807738648137664330836386280420325474120420022184737469164060574089806931577892517214792001482216077404804740937698082689625531428107112196946060342795652889607879973921552514117345302858290122955134568198104896396457526953108176114504910864467953444818624042068156801045038699272762994088116420660958272753209950226770166806954802265148912997160962723432048921958642066627063255355315540954242130936675624826079230408386778734731424353994644482599227545267914637168227697947558916538042005702060805891081671153570869674431407949846864016568809076502271415136796967464434365359475079082985232858248713008164400309475998834201613423757789626094970391908895355841091257375811302644061633645727663441325028246319364017843311056179961030864172130521699084695922624345336362928649093511050911516291749785298703374537066285931230304095893543929981273734774748130922827409819035193592004764790462111095732228313355291083449502194581286816745310477055846050567136059431189247107060933863764491605527722308458490929763356431007202785500238969626982979111113929160281446042402210439537078625230197540698914082062419040164229460972265147247015563125499993912364822473407320599836416591386206770584271480798384610333037995198754836274667925196080637011120216947267331340498660674137804214103683374673555479702308610205455138824471721273197499839571179148972268092235622672347187868578106920559808641405442954523884580529426697232126272057116978233558469392772294363903024354853259914640306489925464271674542752630735810831888398286261558675228420595286661441134790599888648395174061453455067725480185937290486245191452104829597608865907490246336250315924630378549797354363468629140764239571767220937692614620196767599368512247593851938366986655136682981353421943483078099403484131562754158955919390992077968319174362299092998063286158302276407258254106951001919950279408023968164392889883097271242383983969715220597564407683930242187053606521615381704601603912155837778518703009033778064526259025011866628431523655075012436724495087250534514184151790845482175425187832500610202481268732573526396647460076880009031700729145350374280487111014564528310147497859453856032413490474233849611237756390112560909016151006758777955138219133077461831386781686515129687465953347158742837497561411062888723497112532967420433295987562872942562950512789906235497299031052204930857956205441429858505731241908249847629326170652766577767055783907050779460547832360632268001807220942754600031693282177312924708380668443856931472498165287674991806981894072353386778320084840974061263611517033788936192948007327046017905220210164011711356072788435895761114855785112380025019731125301543234559590070428241491267208846405409761737796222606742815875533454497312564445913013487438808185605188821825230736932826867757706080077917145917183890878536032885669445328404254523416395604606094819279470454314593209992104494835704718922011098359806709189397518115827718980080366410734363078847430498910325839288648484234603115951434926202268198116364922465931030517171473055814831427101796773764777546793374300625510280258077909943540539280481951055406319662857884756734998127304060110770063112212173710459349120467405628441452109357207532424126829686775022088607297078247387825840437159173490165641920847180898346492684739304214042377948659801503020390216418130230194181992523738932652114702734225086208538954920594558807244754544511330486224915322510123010235416741243916830427856389470837544599634306042794520311801782881872781327198558191257652219580525902914573603079604137225288972392474457443450908240311847083642431232348549069622478229953369355450519254551287018992485811677424874537988274012986518096585294088371159970075617709179451780504702530323067088590361586450844676920828621841875628093182950715981434906692019027179277426968406401469603386616945762961352900238006647185319101204951758293025361732261823124527075848323903977921272602830581239342761311983799312165559380986042070059771038416238827044875642144973598187271443305394279308119223615792519794240521414310776811626219768620321822028756694701993603212451830185341012280971290423398191706267453874783808888201519306249000859394361454323682060786534229533549456859231053370451280756498471997715451573145972275787568861278442208098190756633728255443919969567030721444254457873109545747553806976263320422894631629071591013476624322832561445733640333218169300758867390537268242173853281446081827934895795518987232813246531143180304699973710170370319436533087403048974408927244298607651263404919839463890119687204751214710983463489202159773034567684518184581252051489741776399324951436584990079627566826444162385116618202846063174168326891057698830646715656020740739462352775744777921056375026516690486620564110509001379863886130421070163270519672609316173409193029226699090010541775854069197788957071757072242641650794969788658681621105484430633808215652012453653209713316136365767633253444461659442455540205764644489028710152945751091663406630664678852878642326561978408965603060386841108835710508530415498550528280644684450643894636063588028182126448239383189870775281221395767989979900824638247291572549808034415897303446135734365811499319187822852237663460204697167414755284049808637555763210600566014686644318283008335682018866206216510396337408432270359640636395662434130783818224260697128985336825096303132678888271833708360550120503896291734300546954392529827589688713371964161873236157550643797075285230440244916673670632027360107892462581089192225180745286910724605805136788604394481431765932069615940490744480002305087756942933916981765406050524086207936552212616264797813482257591031125979842829542838425428205834967851330072135247986606099789449229562559982348265541770195352627097290330825175207313581626607138310742799708902419695998409753802536236256930797860105635261716731925286679227816796267765556954641898465845715183299633466783483100449452493123426968665307843213669201372168710988638428301435760863788105328027571365442343600696690674187575339144111181054078741016393565759984156909168806004105340124128758258736629500249723662675404952849700845482905376272498275308298260416630841922973699352523175402475546636527778613281083285953212551257211151942992249698864100553983298819044201477744186539307981201966261613933260830684167766055138203298488432568704260969124836412652151561878589431970602530104549165808467374450012261648288580861334501893791367916798370363410638938632369461168858870720488538975900422456060120543405204961079584301281876721795810600530707724953548554815879100004772691204107589246523612607242175360186947700488451557830809376015311081550962694531681278479600924972723543211905704754197169126476863972211696820369157243088955163957835678821365881220124878830088286213224262792395885610028725090749576345154275588329458502627297296147744351829483186663713964376742512317173641859616025613331948469990801756720280290410890840590086842863128814185284851865067690796492363343522315046476158675752736887034241431888336345656766331793119822659409297624957683688850845659561312731405072096393579259136037887831099501277517254232148069129781782303313038715680046503635706932916397736700028636285788685862819327474779236495011646859109016914908241895659412463322843566064014281252392815928764689521420734169292613309242842148473842645885283476746785379663328221077705684429405223592136772581363870616520967964721291736304248506804515994286997901477540195529543480640479797305255415247916973157240707720127140181744216576904486452463870875293841476535550263551034987543757998230143860770921655071345938661301406925726897194406782946419894690880070353721099663779119998695303089228415331481999609947356046156265845108789370592486949618701897050274726698482512602196686343759492010714769918358056202998582666094966108330563107291097246165094884650011789347194085286549720831956991330167244672960291745094603821679126492280780360968682927383624544494983608450539358519212256660741310854843241851435978834152218382530009550385874295048911281927074080402313093614694136262651887328391740317445485638424525086777459808781222416277270588056688053772244988349022798693475440696441714695415164209249269149378729513163268101608189714026538807672605500018503270633823587417732700448549259030080055699117054788335775125813492705560360151858057351598584347980344860345634795604898762597189089327341466834369860188252265449879306277094811185176423732452486779655672737330556534127368121822342389530239783138164889877999243167889847074924294861139018737159260056787058465256888059145040502951613004894913541007959364742535990419045304449632249803170864634145614099070793808895661693566081595344559147005878425596055395658889369225657055943110784664124340802250874242941079413351278529828354925006529565687971304404809065459072065775557098698476310032593585984368483827808046108638814216380391678304524665541548637043288063302854012972947661730756209642821508917424457024622456806150504299949417685846935913662900624389952187203073368288518521890100938393404039480747305532324723185971037005130500343653757018683850870285971884306340807151875099465090398886722521258930569050456492159560771931946369667345487200141361413013194774292835025348535810378536598417565563490194613388571123415025321991064010106601985773734736995808825064557464349977973363571366482416186012937156299846303500795414036038749089871109565378667162115211072657807938282992761027364814852562484715288759398974868589066223969886899486931689308111358172808392963179357234794532469037146713895771008271677682202210047366796148126634953196364521425078040108604544486791075443313027595483976535717308282548182596240076771686655470891749780078158506562189525911705758939603273517788179653008996444496828127253535704282655458644638061992746245854488477926636295085199617182347008069861717747663271959684359541199193173449916126237061022634937669314056452402428653730570831417023755244370046401724860674069194079037467493576783452807606852124887353883020021859126015352819799380309546595840984136425678514050916531303849313487581454023557051625873300610675074211207223874658133654163186510581832728917798656805499286367110812114685505240290670789142128596552273755051708014300642113389002419211841243727519171711982308838957281878305573604737722263404253104894871462486039555082434477779292304036969470827043841117676236753723711620452766944807594262976382840702239869411309599114587743114628387041792967874821425253034204714831202271749266719442593570112006436643368934854433610411598360996202103335413799657377350830978076332001789854337074751255059095931235304097249143998710406545011185219204829243762427081438005375389262913462339801780486244769863639105456705544233814533063595325181341331528060265209138764322398443179736419956050166267592473185581863012732533989090085545653616957530859116421510908166715693222400592116699191929966053390739969347772136235084218904086950555739010022568710447832841076228413761597934175300294955558128383133504802959700605986499911550940841660938994980962795868463930113752248053200499957109418013112796263903647759162070048469321286656465824315681230789740475170578663187055953876545151767923125111912215219614175650944736509809653411847391598472780347864172253597574060351274849431112913835770500589753103256492125144455756701582770778529542064674418660208037021669685814908030882732319037333537529836250042301494638698043275665654507615410834805262223410531898203535960976409204769778415049472979506313537712851423811929030594876370309582396538843222669309534843519476652450913927498230406663357889744394681740879565478449837427347323524434378927799062049999329205762706603891714925756974087691107848002790237426859585074444110486120549347525218138227775155553849458884243696867529597865539792038078261513373207684162045166230248059119596360558733511900384667500710528210694111071454398198039419371536932646051134526714093659864340236565914545648615281286926222232821086702484546659725732507629584181088736300148020584477042768147281449502143288979607954277492620935465409744229283540562538129980501819119784368992595291133895163521696480680075873726879754197529445663798437149048874612901533228520360908233134344331890359084553542308176827384859551322945896960734398089582972923033036901804763651155360732944978313078318284279627318376649200771389533351726253929401320325441231738901431654977974332199343774913383644922735959392492510269436526098233955507367116107347336353962025386942482343015416797890603241428371082620324112090125420354828097471617972250792441680570394475942605214442441129586344416055843129012767026155849290934713278227296656537497880353578031958406806416821089768113019032674157953474170954367612844533879893391972715420019128986135767697720210180731783792238671890955521103283546432645964966421551066367677126668710219888939793806660207908163937806880787512029745984907018459407151189779057589523198140463199090221296998971915355424590740442792105452894751156283781150370577653644346953758299782547825993432003155651556693799138423998937379228051860057990910944305063751682058428737485520436828593351844495875496442195242067325389173610969114248396490970138674974271952973408936921081180778105375034040978486576899013629223888494785838133318709947277422477438751162057263868656169962227732066618171043440555293331395006668397410892373501170143523213715225268156508165040533206891892073115632064964692788619487303537706085964288230834198583827249984220553442565823910258764640323205633294010613442853782651610886454691267218215795000403154806159462838805912963955653470490918123678805839399936097408938503604155269794801410950579702942998408941284171274342108853444007520601733342666370051620308145681887370285329977446987367928152766273741840298932454804287457479129053774144632547114854627070239982623576478353334358311659966084414772968344144259614226638789106205051096127691467129557998466405115659267403832878473795319258351584625189150363134140760091711900948266418561747159652228551210550808643227178365811560970809682272529682467879687545083088172005478672137076914466485501751774747232954853011755970735446168932786939720827126741159198867547710068287938388802418816939368362706501697044112297315522283644893298729055512917364598065712261083075325868652862913029039180619814595357575346919575171246968766648605840863997943178681845894966736849272982596190900435866205998988047528303074208998833012333990373593703846653660426777043211266499521213637069409422619876298418870599295631551462455133542527102894326393241709593155678879187264978241629752426140504690473242366658388681947085743668577845877665942289795122071271256502353153142919528926481373581559945613635550029801147446066244770695748460677696895328195987674743894828026619797452871141817024058514706906486955369065253395468940272510052965905507533089438123513983820533665510545545241041180058167470052934419556555636802450920695335168832794566819952658957656866338307892680254260353928550448472165730836466610998194605373985683504220686114635789400994434084953809417503503716074804904554374850174967102703963591925412447576780425682684754468006473915566201930383553810463291190192709778588101521855578349554080686592214293167504410283016659343772333708739683706476072413656529102326246286478935669029300897881871586454121009804132249339697017130898889626319877667497316240921149713514187610230802066615684949181678616415501968477331442488886375880792502763653653768168533291375569297132005803295046832437709748269416302267202217533495599688428478762657244944545879918649867662354675054177689781449705485459648442530928801751455664524248896305176870083578742034580403311229568428079612658733964991599721220604169939591804843001010851493062700974417058696243151609751498657456411547731149072070717229819049523265374149448479128818977664474306847483073276526735224754690929594879281836583211093369065066173946475295264847931687570177683126364729995160835582771688768392045568847676230551319484502492980044670035308062158225879464062028580876861723102372466078003461780104934364538809123285129707716144963707184268538414396354144091029505709887124041815810816290541999374654108580724695831199846179451466063626626995630616833729077390412587951618859247209433309885105233017508711004317107304910907898399677339150466125715411142839798628193661396765321649734466379479304872193327704902875679378761043707940835873424747658025446168527018301080773325791136630414744869272229189867271075709680787896666117232839190287689134875769265332631634546957630644361001117347246077645045595492947391373637091273686648027748718614307445849509941817139116312716361881703517936146058634803965616071474889913991209238822378243314194341744028777177313464703539783761145332380754080642979411201108195245669733077975598682602186973582333946038722914567730036637732291007387047807181005033893088680480558139433295026194793372653994892709941737405065564892292202741016645073712894870331946342547682574057067334637569790654382163620617478133778585293112161290875844585978903469200669199752923902655343097912379086675567459554962199181364551302226063162325202922444605492946101723476588677693714549226812119442064171730913805191620128818349853156886652603724048956475856105079114826416954394635943071590379377907311113451579589683042050228215622436875865477048677306983314513250132443418481482197385578557058758116552494356973627380357272551690705388463427943600537690257235785023765720032265584276342125110382958854091428713380272438038328710525884986806211112685172457204112713318447833545589681230799441851493450303848133076257931671588313359806095947201252673872048303352864244725830380873280935234837627128423859840600138706640639913570796375766017724522517253739039078521884414184486521169334605405097519326536567207735661234239088894523468814784406627610318444040643003295113185400017472547406017692628365513260699782028360263763473583711062825458797590847223440044998608931830079184219465801525653108623324304505792916942480781258759842766059785622506039390811960764491089335831580860794173287278852304688939034786069770458635740742605431801577061327307242630308473333113407284921232572724981009482301939557775763188709128192650628343496459399347114783854878471205300461329257975308231943218936322736791446370588044808803327206327442393716309218689448512518576757159126044264773956229407070163704984334989571571234319284412367443643309886380313744825285008061728722083632466083428487251506539864487801280637804184271480233676991311883159733214582720237744990417445064351239538328046237373159565201388986077889870809434295675927416181750207792209701452427723693832180572485158548317931593741763707174489377886009455611631986623377928937497511275212933674510069744528920928493492562703237774989589328012937014440807150057234329044308288863457595604364941834023048824161105454602539380715556984366121592988235561331108523154084020985948404696095006470820875263583186568797412308909553203164635464139751991929127173823349009561137883531881519641175549924474592201599015923300163677484239573256593199018442502342156364564650104172038111373288456742237888435395129779788166787831389497140205100201797444334923160308398575687842440888593134308133064238601150477273619445564795790763791453867874534818110591708442697414724387042814909364906490526025916263243781991780907384747520663585715726265647594941009618219057048161892180908418556816396500203217602515421698687893811712474633062446435885478896208345034060932164936993825955412081199827764285019970921197346674597233999350041650572693291006544969077423374493126526224252029911346054136300596504618336299724836849146654938873913916183425221741220181698527316859770985212637492118506292486050148656988521784375990181151683797507179405975971796133451747499309554951626679809793136597232838747549186717267246627763096940528479886510364127846648114239557976707400345085505664983348347408935564146052180320977233807009444108471687718953933480517662004366036726064612878635136265164844123338611833059114269883333513464517520195028256387573306757936187506603895813500672734134630484938771612130166791612158576297795026703341978166475429047582789226713050096834609704247836145436620233987394457248894764685376698837639999945468894364887533324197031453135158735485128471498438051040597036215641891729210918966075993530789718105727614447080564274093654952131713058100964862286827280446990023746704169352505791875653046355184263868439709147750974167248276398220063182801700870342441117597361036658172331404404242667490081760571756315467950065402929517977078943878715729575995402143779148290530048811566027482658135498897519549612517466346089264765704355083914876339035929390528404262236184575981038565693615392059637429206129705771702874500101695555338375152219937501796681832330881256861107820487137166013495672437118631856395788737502640470985147802821332152759892278631419713850145958762849215950392131707535804842045660322276521098265573179592704626967306186987271203155083871258333431229507915326042404761277910582280000226980368707467972798186459289651148246536824175434142911985416337384073849267050078917962237801278773560176628224226918565100340103103977283202198926968142931850271640780159920705840145677484713633246822864148112300285898186030394387657192937301425850721721941689126258067945825193963348079526337207138771466147475308566430750164649890244130853856523099141603616149681447607628011101350727684916989004101423618913038499935161994463076526760911282862083530441853005867817439437316361221558795744103727324358454687080012558247623886169762645258529098322697108399240327385754915099758109207129917215119153259921407740387701006377791994339765614998660134926876922595386062102599350666530044365852953157034224383327011078944110425490781179864958925828140527838825024237987612890984102093931303428943386600902594230791346441486210924611574734318206971172431558320349739927474888892551780205044224637162706398210230010072203250427812120260498892754908695167368971723977652947693322193507847617278962227805227225410254573106209970509573630740093128862818208224960552093116732462074890070484357648857218183449564233465226000007929853409786744857302387392172988173576445250162977983265171292546511040487797976677407363910797866069409919230766142289913825317982075742134331433338573352881727002206355621299156984847895139027795525639917813104369263844109166756721656011435728911903620567534587948837648579755708604615372906651916304721455561863135461899079341775557698042077698883060472875167993587966286815196206455380849185595312614200793162220988729308553695870461018587490515795261273662355102175198846069537600320064264931921387006501191763088657118094247448819581684175178490623559526162551014965697595382613424767661939799283924760967001822314092468250168865016153286261092890194316624136758002729216580300031604626087148111892314770013753760055225459677136652557215908291686731737805944995813496918707511157951139049910010709383197106572338985495236993712586486795768553575218017313355991685720159819268022882557166812853630031723968007848785289755030882197930712613491368337019968657143986467057993346580541313630797965253356439876477642087266815001389059334617271736798741588638668109313388450824672763509912129009911819473591744740496528996908933012726461198276780735800143165358416455685074502315752183965969113116726257092479775260405057291696050684936659087449887632807302586445335357223373224734060510106337341573706723050738439908576574599289391924731898116112438122459040404716897175046969765788842095974955767376405482409452768698065026982017363773927052380623305717418250072909677978804060876959264594862244951290784614952183873600052415975420937223188525641140967876982870482912420531080265523621396855857610827742047347886331606133364819048725366646811581950461371083439842789442274826882742303545191910385870182401692905631060457980164061540686817508923757666897432126196872597733497586389560833952998257095540432669446199707506490455747417258940106611595050347697622160451697048672098139060131154431825360339481211599802038521895358424673073803303196695300771055637594583983429774774942225360340433288685054599144976167176993864693143524771244042599811181417909416570343710682721212097171893470787999867512919482763259834685641097121333219410869412340113002161403057937189176637496183401269821382899195577961830656918636497723376625211114779580200976423522296767814963326488735342980806979848791916583329864355509621174842528793569278916381770291326978901229487134655112971127295406924736148238443732154931935941848093152798002103022343533873039058115880802757007003938496185903550543439234606827200727629230029797901275029613251842369347028666419812317797599695591488911078585589602311125443352646699431103375030356667604510783149098145020983146139574350097974564819964126521226216160571697454240361052367352340674517449654769842169690951757680715451778355574979486676299626750400275003408374045540946548481895487242549850915480904935633749949606565911286653181957521894775829208608860682355674396548424918617798846693647942084977905748064498195666943971411472213826189126767216431174157486727469527767570326944342793261871083338745314820596391614733952447217581654441802437177880255360753979389289014357403703702530554873391595571019307755503424903705690606179044300378381854740305722899579328343109426478159754230507841396164597629409088635474521019996944781858631669658911703542514124842696642638148108974836789926731179290930717528176968705569234968864249164587155708140667143195717336299360137362710920910026172026257718700202639613052077295965785038411569964472468743094169162570639177536240797903384831739246998768390961185911504776530091535776521726812404402436493907285804051450845798160568604498835407823390224796509936367614338196724361486650897024680461766157387527531666283929342426839818415811531100114396878889134913431384446330678503899550334873993168919486892897433851106309528336213258092353427125084956525682422067321731607218620941712926447708006620182008450783144033034285216111840924088167077118158262403570681629805833672494933901460908597875662486034256365273531760407321631900296474728337885801577437260536103633464172113303173037756358255832988317319560704421005629297985912550848434426641538860197298540627226553966672309819906984369698657953664135772173546598728221725436706264510744348220628366545714579944848648384437736649072974664091691605295195097657313896055284333242947455908278329447518412650499411717714004069939443253419176670820003793854193997203968422555265525516992099480731287969547466391209397273721651557916238172567157410828207439996115375252344624660566825688049034262949279363510427635987925043711233839192497219866949395045703718204908990897946183729545980534487868900929397999942255395989144769244927889088707610064982241943169803757488043831433105558849543582635970831621884481827954333959950885181080309289357285243571989609607060501524747950409225238959218440369199010170734852558896731361288116215758901663695967635779305493125487365413775435154952412738336678562967678963575415423600482397242087792215408562616075011186515845404681337288977101889349487918540327382545737145436552467545514072972881488957285562683342729113081018973687682916729030972434424064540207961742952357133816802178922185797838120904713572564316131846041546476182479132949783097552645089817745466862737455217975019990617351373778373871435532215395817274228983731804999389651662286722348409057561290688653785380595418029938432542002644161358894441665753248023582545994231601967269627515745461155293532528881263701336340608154909694598608365925913609426812348230976357101498739000148729882718812986269981537694150622935119771335483305435839238354019248752695045217410565559240621940195905193394338812167792965208066244584428913537854312917642543075484653188722069878173553214279917477455474222105199257129673242736877722655685255989659153886773426227409885764672752501469159051610097361413559209809507781073387086818535298138012203602010573014687446686375621903962221818358288480777036690203814135682364139432390451624670566398085382951214671418529328471909756561368754009750300332089506437727820675592984186232118412426691340865323911487140308583876871702914645987515445075496309334583586585599282507494430958877142111222103022068722353927199027283840100867584522942000178331762812717759550323811726968679578707716852295221428594213088670893719006093897220944941902431178569736536077581504907254450120681403062120003920522405197441553066743683360872037565757872971187865930373976555063778658934785799332616974516992704219780769178768520253932846980741889807816872433537797057922601368331397204770700692429470535029775545926556112994663193887038519121697282518548122380270397218026250773114457125063184302287754479755356015373960059739827978684203508462037246451640504268406750444162267692618665845944943054168565772238975902431924008209887724521077706341528697659530376400302305002014604621668206941493826242834891691913036854911929113613311298713167386757869262967535693760775838702591298631216936130991713908632528373780354993417631075849500510581153717559672267564047779899602670682078704223285420607039181295282494226740000920837758734340733321025384085042490411089371921642363964887778474269431955851133551017412597499010619324062807857241662376047141626123635853147352700711853169276095085028692513944612312851335278373697111282140618942118766237726965950700948574323828498837631237646620521750112755636826469096066890380101786282764446605045020386694080812569093935838877363033352299983692002057125290426183732071851056137302720370169755480918342177098816350006330818976712317776758747317879919094544395125302149754958037572075710839176820167589333484223942642108763203585077863208200950653315329434990650180985361629942652558728179236171335614361485947345730751382650510322560882105208342553805065054199974962891041916779866758877787423556764701774582126818648144730276255670646934414742700696435381732754639640812472201046671234870397615891681131838778899875563455609311169345154048307373676991836824365017305460860498693816767026631498452710694801887822091988587855851882219840752477554437424379268583592608183728358550724693928263988368739818139361915617660013237663557817798957527462992451577232945632100577460795375034337042013522839984625052270538325874839267484161656017252222315676776326746617795775726282523715656163014146598768824691815280648764591744069757095002760345901046230228787311286549345177497659160970992350451749770095817289658874029738462147027896661053902559698115841870774252267929864216428647512541069802332271196462450190055875398998069724462996256278327699909145265780940409059227476597306096989177093474517637309985091896698206001868117246166562553339227460577298398460540196974230446168388766044282445034637865385597747939150130152076313706390628233258003097772883469146166102830786070660609622224845109623177986979361204642277582454255244658999330254665714360435758789117910962231539910724742547381401195414905850918836286958066333213516482963112724664755088336458766901843525353166943689309977906375053679840107867746841680905773106982720567078016589739334140823087056511262949988323924691885047668955178958711394003318266744272063225248317883622806873937319839048770595325057073282039752628544742652905475754303781779538855334643966386459830283745710984390676887862447357170310991694727742759961630836536859845751342658171186177699821639638552347335198487485386513668151271174776972950922295549062452832973226244502690835480194565040530942722847940440563808721921305382913232360204330202569991394042640993886856350013287832959264596478230752324904385324408014092735501648672777189828970514237768390262318468823378222958072819622634387558746269615240588865339771185779362342560071354164779175191636055827605378495913144289082280046089880631324239621738384115592654243635543196255576190088105909453857157917193835524045753192749904503161531610669402096802778837597537919448078441528348550133050618056567116585048603953891878173649403678843565600145015874473243349833148913024915636959739514306207092929158762336190133447921680570648744081263331660624475289735393092940283559003590422696769527174756700395722429176130095721403070614076800934248423336056377418791642040427351814614865862154553934612823089697909320588822361122254903562290001918553186038718110114216506348613871059831318922892086296845787471913299945063636139457244569752344838498194154350771528357281902917461121255040763457935285037109559554037626152325999164051545390389487470324536932693942093135607469999846643298986177737050924145689819609790442493220958027839491577376509742881166457852730692576147174756678352032566049433034776991560747867649958493594868986746862263504538871274312794757748650906951388088849220277772209892282507392225593182730448219529741879403548343347731065587703092094367924312098466627137880324268021329742000134057659536429469477366232660934028076738639898715853657848253964567643138402803414151432279382458321192661026225665076959154164304596617805875488008238883390530806405514658696755974493883894084643550963074958486149125236574334775214730458259293963578747241684903695330967012624671875365469553436659017828905375237066693777522771251989823965690582347705812684977802872440152268194524204551754905047601927052666069345773791329831134558524772912146693241479930155335399944552592226506181032077622183877928132339416235880567344161427988175625582465112672817679687766881524216133934984207419690782675937099021044691396796631202818594281727861376941700996702570212657125005209468952983267728320599930617799920790765869627805530188273684845622541897388672463594155476505451367708516182946407723968875050021858385987743367778157931547173038840822983051502906026509414733707671849126143163356648135457788103932370084561428065729148619291568042753828872803290230855065685371440848229390821784844951990290998338260352370441674780911254316562591329522419209463631177796748710501674898820642075370704267328934751339566745388371244533774051128649893659524457150766324118086032900350117102720196451840338757051862136283847921938575052713313934708664845891571499944950983642581608522207336137821978999105485240318773905829390453567903655773908311518224461743476942795181776292432735477833500512466523346087759000329285798052105030321152421324342624765712562074261081228880650325378245527950358828506133951389772962626083562429652963038473429558040629158551651575028440306889251075179754914577130388697132931869301085029339066771993964542205564416857718374485777732434320768097893229419946066087104505172118667546725719313633494132094809651686285212348394397477203825966315059067087493163379069871097041368481284534647511940878849783733401051719477354215435141504316742767533295688211923684680555598647423475762170457095868502056779532636496720364636965472300179946408310175953044975741905424752490456659547842187520470588424926921342102408256843486044851531252702968281616888058581439985542799347681147178868712988165364010539447663175201429498985751778252864028977891132632926471608502138654648282635883709106039865796808996562987555790814346440679559576147626957062170137448284540040633074006419176251237960590234066280795043061157318088367431268496267929999105635942741244096299962563335639024191834847229498831614835090384506639322623922296165306017069025602322211024664863938895740609550058372996180997158918267868771497682319801581671682615066769633610248650455015246940376376818705398701758525053335991856804083583814854157851761593147421200149464020151105705683253562828807639138456598696764447160787351329039624150529785484660625285103185046511080511608222292873394741165254113210595193231285563063481598529252336789940291821100799764472293790050230524550033679641175151488962633089946623542754589624026498847088409411876687028009011356151841615017346871248095780926531633397481278406875222851983411632894360072093558823525978976160372090133406219564900949473017180383832382262015031647758236866513256686611796724730851149957628328230058006962671069799995556232003444594654633247360260629444213210386408813395557983327330287361536120625003221234740987200707077500623529740894023699783255285429307633778141093970745035207386629018741547245577848985990205976990027503726276713472190760775620540067814773745569417295782724737213037244823208006004523863590621317493782048430779415622430507985100481957219415383887468896419860302049327657822079498204234261278999492343997412335362436269228393439091092726408090199700463262547621036414396945657726155601012346628442611652649173409288425580699945562953367211200513811534188953631466245207694618713817861398814695167414472947821548064233923005588227338220634236282005530775752549358058235791045359763150353153926632246903401366433356757407151331620981278425307475207260580142390810504196942319216138774637557302771012445235656855572798485536064298538866446237189227661814883454381417087313975000893669355834929190052541128844998485752582403474756727863364515559305345967485111148131335224657967403942968102244589546302480083314946733074629217534349719217209620369702282080982009432466429742030839908243144850487527127183269094608525400422034354294227906496072686887868888163222179794183301526362613194883983000785956465793937771227271766008289552223390627887666247477842858068295226752795343292984411015393541115563516890540410711341476528209130034546435949241921633866671145392738327744589325243381187459751553530619422579223010862954988769177745941480849334157193171177203785072344700029084025943886156943858049988927243227778630400304190899869420346055412272100451449964169597447225678004217151021121706595717585021050950567563201309915100377827848964915999957241200341251007478724702726468066748056517602316197692945718196092293245356961748549118522982058636724454140675402407426260090078726399400161652773939040827231207857918814066364753770097114190689641890212962711202569359570371902895890357180208940818386024517208174808428536794993053394690551116595723638488289903051997572488712590573536219649896194559259917368681888659038433542452888954555186204870106304607500138281401172405689313706257836733915603274432394782162838870643492163542641676233580716512040612864953337554611522246216584952532989106530228697960283832691103905977871708210460173544780722240022515746325489484072277670232732190292506039869662848446232359234711756585460322858229220246659006935054471322470126242995526195120988790498930101616453201978164721659974700257185315994533019775349848880963811532789198002594221326318316084098426805172420921458699243284932464501374023054982516223010288987921668722925046140279739347600844753666867984756512759144704471647073727841564989891670956008104553925749147073876387287459212878254553139526838460029549108396507021370667866043171623263309840446334333441300058588310116172928174770233906148598395891841340452946986866752785023575156499705005628864668312323265300047551398422787794709594995264153400186746886475631304439993090281989573748354894535285337205552405792301246019774311304615507401086307884697487297131680861198213584712574368049777754983366607574146738223796623113200903214291486287642490818000042861157330272720055925784100530739954257569100463653232182171563262122376599755848684133601688294648896796977302332492662487469030907316882504113346283254833032022377736730474654954820020144314244502957357199397134751161897666424281476232112124779327045404854871157640108837331509954684540397048902874051325302932772277570385319803343129478880951738621129676529079585716016274917630543225304221280519004321539329665006245417385818821464937642174870064817428845064399635366236152555428921831332147431198176054758808723188257685821233038180841538302743712282688210068514596662512481154990667410692429525319246727862154798423218159819363997819087939514175600231461858148813126341863258585497082314258540274668899906379782915907455985079905593372625257615878095167503699313649974345211702170054278127101090997282893737436214998572351239894908663404788970340277959391180316861564090286456608097153413653469859975131836893909360699877743329688855168498522879463614569148279163500350972303048943811503019750308698857114940751040555665256230159450002881608949885813326305940805133428334891067259160072693631842797435698168968167877116068471352624313774086145152990405916009159385865185565020700638504401509980503162052048980919782487525691211488167413781910855715272477432560780059119615705573281981761208548946392075179509997038297356998630801704161503500805619242275977164476526638274909359998935056835545417337600552797575605799103563529869849311161299714463086648558641135730496353004706291292887885571421489931440161718898278151508262840250391890823706801134528141178872071786023326557967859719150181398591823923307796684113150189039296874229476081720043675104824885929833990219756931088871129409487065454133429768261346675127607990649379517569259960960757465619986168685206381170227668305565225998766138043207226755109988612238450323155895877324732579298096248832441363233538596537538122006808068257022222953628820148107813721417722636017689965553111981689955610824550103082393661535508325624629185151128137280035247185393986567978172252237300556864677358124278796007463257251410199294804261543580166477445504661260920551007245407696629227580895042112933920392198088644712156012245891065076929610896875115839314448535284504187105383836332071866518325155883131461816568766697962919923205535501343118959859686503411689645714599185261116368807386388565715332338537708224067058187143040222061103746937372651184957973204757332832268051989958383166556712414651910040197398941104422583069045357619445858207157254042743394325742546465031292997761264269200958939362051185615340406382338468607074547745566275046211560386529069829935576245769762515446980105191352762106547223664548996129569019922919495996998135921844784819454214749894883543852228064645063982156103965187203600683931938236129707330530568976518988637114724917115402370864820828074658403415911966808414300934511544442347867734436090956315627125716343405751248740444552350285053315824864423210485995044221179826293055320263752610569516289075379556477845409258155838639091997235910101143720705648149442578792930766240105047146649292925889342171196450620721925860228778671632913077243834677678016047127081565881845080386564289615826116831904701218789555731296609846915776093608638330365755728897602892745813819396453767552603839778758328802586417689757442817318430390578165223624835439428092807191644140935680840455380047809205796960850328426549331774143007237016240475325606094508129146209227530421447467619778723278697471749551617500805219700686506384055696185928424319190299702952541010462586115478385728256096737427043928753132336384362976298240732863481344518547244019284449843315361654142156482921403235044891939461147294654048521756891230050248059538204675314225622106132619379492612490665843659504530546977480900787463081141002503544011045297058863244251258834450218515788883886691517911027929531322950805945829252156279531779645338730337709040060622367706619443382484407181170639713910372823244432006905830062005583090348892425791919596434083458607930416969990835649941484206429891272640319448838043650515026105930578814708672144480303364782365452816252636641254246338957124732333546343038619435333310808773014832180985406076903813031401717643814251197377478490073964528244006460188125354451646298103971772524256399457018726329468737977385249892936986559857882498343760633018205774878696797440724456280343441921518159618204630634252802680280529903015384827258779610065674106940558997539425613578849429945664138233765502212285725410393280528666515968239204207412408995932838279421713602523372406316854709159340742014507525184216013415389163744769272340433715161469692498774088026079924153011674917811687044532127593709655093205751740573079958590483692109306742808399515156261456089292368838040988760817730623524209531947958014807624913617563874167484613777234485821523032610464066819004620583985133947965895926210017138449511063928151321919608183707383666126490670974883047732969603126563108339481069542893150234642369923646128788334456915679814555326996014175871325230101081623441916152315551142125602807304813029924155956920473143880089630114506105121595274584536036680658584983734422666729577112262948246266952503317519203273456686095014054930186379875934074154868742864948490241559227702323091933251744046134268460460921906554724935231605959052637085498597427570234979974464931495767432588609851430387167610159992040747429808039150362601336023533737486933459841550916360987210471820970647341358024498759745120128408279187560242234782686863777161113218047361903886972940166434673241468879190584240792899264565277141347420450676316116230336450627158124899702663794578505753438339174185152810847843301204727878061192859304689391469458991888584608773039719579269672828987623983461408575818637343664589325376435382450639085829299660502229661761707790707785757130781634618226899222952715472561082512262113105875037663032828704659677179579159356790692449871639613536535368765509115941390083114116266703473488893111421929686119811971561863771591755829550334703524519586533522657332754083958212568967812416812495107679084422871082109351999904691461958765962163056305027455611985384078935481513893043172414065276543416498985003044151180750421338467612757202241426618456269405755771076213272207438449535311209292170630170585815563758976037280288720945124629786771868349912063802617194826630863123800867167277744494097746073434661304807840391131889913527814461138069033626503874874600834397776669038862435600750902591796359139095762082383565413705366397686711232188755144386764079021437165503224532951780974429137474414560462576502668531675508496033513568875132536514948848016054790038428059033832261171102310604023482053460023768917543525792199040773224525010696975196321246243939959060521551914272097288641648087932866872916991524013307931563388752716408099361802480988509446107197393833921306841876943162623058429732015369644707479098119382615777967786942281032409996483593768858886937430104169472093442043588084887846013497348255693866647925756925739337155068200247106808975333093102029727038173357628452604985426419985206316482437635526582209953572487670366663794987133280155073125364368405682509766190024200338015099256037150469850762615100361280644913209829809725927031428084509494513754243006090156198086980025029225469840488129289804148500594827262900948899129868276237719304852618315718612427549234228460396433235405556332118341191116959353098838249172672904522096915036260078160104562760844183541346252842928660848800285704621324659801948618155531297646122018663838772146888549364221612357140700434744142157416251690822433089649869612015034539207758643397097148067914266234384855174265041016502169910520347438927327889505431236716418622994103723695547017439354018584240097226006654964307389690458313578061205135104424734999052941484282154211176646983282198880894637589754892727385126273500888783980023793082607819468887029981009068242093500421974226713185079209755607630463321082988540839854599396757776994517027708381432983779898144636854356295912887086632353650444962301158517457090691796002054611731856299848065351811240876903810071614318982515340812158423488692099951425184048785039805843960302200060997085824956122814033163965765053798333610742169436803484917495930156095282037419107126691956222583447527823771933957628414113208712267452373378883564560116461343496489163564120626292642223400931189564472725188464552784913562235484131731355211277352001731873224626297327082114172649968696948430097669067190286616585506859673410755882643444827113043221809014214990331387558380938220179723454352710701968955879971814302714621988145984946310145514162337390781178069437015183092256671170071485259662117882483551647010456634436416692606367150164334524855573801104020365855985453623449660076444190030629514596745605190762710930438632490990238801278141138082746197738058842446483815921722742160472835745616762387802581086688213841940693816606390963863285558911195905252816145708807327950434005830278026985195020246757453091630686651767631353015159302368627510376835490610458799691015339954697123497450725745049816220708971982194653331546594166166853315509417038215693000275260464845961986152956112028624747754828090154836128483754793399244075694152146308987567555826860297518646169860497773358427303690100378656550463776730300618216967172005412009385363565205027162184025463066023672318466584697203363107356824962136931556861225190682429749974730614117857477330598298003570190898422403909549426403116330479992433077933944019526969769626107626517153690710533983378658194320685622236282905250049316737459664509875374540267980560822536992544648438759498433351839778491189318239855738546439518661829918679934188812897018941369261858672867543231185622996938817391632506519680114292423625559228652472808876599055555084803801799142455847598493947528313254221861012788462885803636965353678791110955466566529062907538801972588214998621247417596842860707354304049288925150256027440511963904480719626571217287055156586357530244299218271350985516327470186110122532665967069975602383670836565821098886789997388341349501994177929735294309781103650495440403880833782806898910423674363771169517092076666588223038831629791301925262154350295489985170617850767447610957589906804811597826308916569058792009969018134869888257764414326893859838053455680248553362369076158755153579448795441441916638342465964385370711182776616257637452344369581409925566159592102309287177101138616738270202672765617965407661277102671629999052327829346755236656382579398898825990027937082309727005133982412935143261839355030750566463393385291206482764471243941994946715238706063476048371308345209368493040947338907936992165814571261419628022736937842848115258075852823291835489266790790597786278179286741456195084110909332061520716014294248201037199375980544351145624649151961876967594436540767664364817779509503217753558659665142817364076273808374457481948348014811808304351814129457514181906359578451698191942475889963702375636892926664318608532808773806863345670021908442961052570511957186091494253002435001668369280749615168348928249604220246914844409926941643915506042509705886184919398014047445362271145830326177771033411842826519082027507975380468551604213633208763095606086296655508063303486891703320969300664817439962144495744958824772659151434238373001566791823139715720014735435274930298144003756340049331203495139545812213339654834729938854335975084589948351507394276584068391703335995942973765717693516898731129295674539965576570230028563757237468235075948870463625126506248338780892420003817072836736048987207757100743958113981541387779012048190503628198158198169632682307448311316253290562926967748700392400905853207551745281336872718789160541757201547936510751496358311182727353746821055858266945082543164338288611248431171163611019703431343778320731720736643558000721735259475806120137547400403236961421829259261111688182276389463474880764822833601661933479785118185449554781034055349419684724255308709791272606472529429753937514035443732460212007478353414890481259095065366701905449109378007410310866031029378727291901641344967258389179325507026038081099597985890803348017251780055165924756276071619005983887240952542738119378982643609004780665558200789675655288953341762884234120044532842422659221735816135158778515890850946015889156929908814616015842866684785826670462481905160039453583225688727665183457452538214454800837166756970946572941053622395966643289216902254657490199362775236009758920364071184052760245588493392433631030516024353520163675478920089892294214798053510466722597191388234766321542560384035800777017355689023516582972236277455128478009251252646227422267022157185020788527510423447274101022981044192500597941472130169572039426742495762110919669078200520084017689204633836061188016027235489354609038967717449363758014411630539596176220615979391610691297867519303234273382549300984567827783944961885025027302347977722094612739661684616979468199778258285297163959373598132735117378712085777583816592818490422398942972095022807552635636987651054260569467246015138762760750973874020201572568890454348744165107974652706574626199961348064442576300906365589678843638972694070555012285258581946686145931560296764662588778475886379990431030762502581437250783882862503818064752569202850995552550378666642151963373147700466249420480562529104709547432596956426689835654710035268821066679003584932234950665899983786333217975762330623661012697662297520733777794511852347727359611832508374524913333598109775734804010756162171272295364579756849539724033597403652012237397980441751089620267189980996856881847916389544374858892944362749096916975390281522081275540910736194083565253555968336316708083172602929951735228567490656036169665552731596397637560253675538319938618615587297016956298792443360186961177299804158994604288535862281436158863933693098227733461085650567037697577012377204862063236113357470970687176429223179940216483735826749430428287114151343879066461422275540892088009272518821684211687283910277833759052858000301819505770929129904676843731267766815901327377171023626091641886447759993379719209413718046065395256985853612311925547267006337387965257585751914911022568078724977878474437738752705600507313237969991476107261819313409143147109638724097002428043714269987267709691978766304411987910523161168149882529529012282135404233876887677642473289847602238380099836924547763891204368722324833212289518012944530932574058897726762482555313008458829614369943252320202206418784715048190047061590444050465955983646266848812648245328323437604554229412544472047188493701029601246611166149850390094105029106983591967897701489767117784435971436684378092879576553505544241044429529770202151206178063270659232006895195458819417461418542902640720670581594318589769923424382048276912671059862875916852836151772988902300188662996471220766656408199942554480338446301350105396887125645256490928163575495405109634477277129829055843194591515158827135883136419786387566418121740810166310609259986050844161763825023509107353339900020923734566469411552772098553099060189466320903149737391183970043000851772586233804858223947600179241627857533514360260873892947585850902728234462203791813247581116692450916687041588422941741206184108313906705241176044892681923086166644874805262603277157470247850926170428294491458137151115034664912872692123753803749297091743969528644147401555585975237384557274702022314439574086486656493913712278834142737079115781084278393407138670644250881192587130902975574119719594836854957839005893701899381411096574270322792855302292962173624919745092864662224640133795631841263816581500242677186235230608151973145411334907419470524008981254599696880258408222629209387213106106798680003044115061627024289553311558358612478936270128773604801213622388982505904184194826534678661785656644506830563766799887793850866390944298965366495925563581418095127020013378193568112758297351308149993960855646541279175147948718635188566972639289328717391585875015057825098340216043929319802348675930730369225866706343265270168917670212092135133014801753846645911573929912340679651221163206678894860588995070645362685966404183505732413299285838533955547125811961715001917567123893589475061508839699364663041574099149781959823533869062431707380031186636428022997661368768343902637269774215787032064345559648425858227707581532927424374189261690063559264517724070159008523767919815352805712350423175532600724443473228440156810701761394857768363471604386751200072849693940570514318982777906246199289542295365858573803389160944145947593099884649002398638041864095774594497227008520156516124451984210150770591529054457060208998941639562318614807644611790117669923659023919104430189357338786894471330210030988722527872535234291371628598247419506086537468697080013037683778517768235268566160398171669581868587122445330595205776822846153552605489712976370729093344560694512479239233202763901312194813040076015477732810105312031741107111098086404624650982970991701433684489997974553813437867225553828328753141458843736936092173865216282500061077942319688599652416833493989733424300139581127210402624080042498984397322816314156505842728736579972421137073933710903801359177202565249369529067547867464687203524796898782477780593106901006606395850254378990266258689044787192866848027181411460235864725603775777905948531515627567021604481531237013517028147826456649143061264559902193476586513454456826092084825935113350060812195206546798164004394302103763237442082535839927362105562548023453346301412522181182432260374166205914484419633914441868634310684010749386098386593169549986661407672623554996276673349816032359799721372493379420649179881690143900141877186911974175517594840496228549916873519637260024951957920512321727582185736070073067903396848986575048028097524977315806481445456706330842131272430558103891184831448719214836872183381534505715495120020195247150216303996622494572544748240203595253250088797191806992837957673386005891834466001779937402725676808775509446736934397159595497828332677883469079758886485774463315958957429601283992097471581220488623106743161860642673652185668628240618150868834060514359462362866545094178404512169056654846919257363161686521229159131321827275272405487796354903365168553088455518285980442458461100132099967004690467335689363793634788046027502268659031962544451153553117355553970040513428001051237593251477390821908757401720248581978140233811800921223768337168490763021987066300697776708219007092985727601400046647098499129371239333267268478245684503476953618808265933256089367129804218508576070031934941665859420452750840082159809967019252855795151975079214258253808099753928650842885487948535997841395130105738437117880990109560586561386272953758863830541118778664541540701946124896057716045132098193115968111627392189272251133067909836963796602443200138076123830780798207247700170491288574149797890619985834980920856784590074203114097659621482598503365778806672377274053110457643138273408913972289622338909951599251845379951116533780394162953429448365966050825004222045341107475106974555446447710412459887715453379009654411444158867374823666227126788584137024706306846163926407777382474724654240372621126779679143259315195420029797965573034761893474779976063244393610420383767557686470569591698547531423877439323333881412004823361476908106177007012377545021978928876360623742237630454019497528655952742143729639623173489205676469864081070487918539734488711142651378794799645311044903119032076609453296725334271650460882516067277750330408089206367152094821516581426709364156496091059285328962395857174903859352941998602588199333223000454380132062824531509395102186522004464338076329557825873418161076640489889764044647206402952215027721645607506653983943398512018595374580854218238933188335576341303948602397519956200280469091810086247541795927131199707995190207300527816573393636504703122922539228889827530350041184823482924063823257389211630471982125890804034208098830560420593440669164951073112644332273433737675957304542285309268902845733307684547671077690498245955911144554813030523725209083760878673976693995151853388622259200415961739699050684862079772807272028751573932793300581186837920702231699864637386245382841059771980104174065259811041223793442051854190799018579517569689706928729765038608132816553254585642356503776064555944722957931727420746826488539642790602388312321054249007773089692266930081655784026679964420072647881564137266418954494893470653790007342746218123364434152687092280306699671826059853847134095512759417042149307731334383597556183428384877097283531014223608531104942288055050334958383647610973930622920433748956120696744194392091092289953193395815728924769006582457089564063832238190033025803607374051541186892822548319107225133680752233737065931804697113305868370657375921936988011986461919689010560691886803969437258707633314241825544555301095478633518991045601397738021378708808487660556290809769061802310683696011578418357071295320487150619201935338888189886921258686470886531954183596344502620119492534252837613477858091728892920499345628165815816368282780623450509537091409451575588722730985513766381612347404109699107115555293929529078899683218983747926351242286291364031981207598801351587871194712645173973421958725960220014380158170695498272912567527943850601178205086188995413766178374805099885195963615747254677861666126500996191660779540625251589110085257385742577661539858039526982465456494815909778583131478498031561263481953242248266806844750101206956685733108537285735717188780565075328132638232110897092459117406607658307753875316503455457668167569187385310163205482960799960152354030416272518055582150513914102437957160339682188022465233116712850336179568321516053616854524823305157355370391212533695430611166837681467428162867114637273923922000144180139146111610746141153968376227076107532909354642071748810013609591104453726759260208839177688914805415962569561441691312597305773306644641818680753911067991279835097331483185493741338553648453810121263394076003303511392894974032534553881420703493261202500976223003129695560321232345894316355666968673947505126722432366550543609218288873530036089822021929984795831500245998271960052330043030825607108403801126641737114996305946815632658431941402413216242369953953719963581760037974853857113899733252061737369099131966143154087800594545188102514962427397275157186641392898453316313185531576422784152005631709611698119062962357903756875136655065304721673344287167879007463645303543841508794750722296065140973043005707240954184701618699875683479188096078299846048547010392686719539019962423861113218615002118114941241477774000420877581077433418826238402248151071722328892120847163812301893027565207289164313104681472161726343928464565184378566272801893845635767333392263513574288155506706136419926138853807926764871141444079181442204239853489939532425385894823681369259616280719947525086181586323773515592152983267839853719630947793769569446231795452902599858672565016225064707794437558318354254683620437581056015332751193229679654081264771526167285083547084795737016761781516399729547989978598508987641244911766465422099796369701535311756504080720091829400465947767445922426437739852070129835921282353387670078461142945181054882674330194983367400299478051649160850386665317060953939312042949504736748871384488708614730502837990101186506755818738401304865436776642301942620870548570172525381428653352471336194210485738958748747003863191936481427554140642285916559890382259653005070528722456735257875819165162410706232561679778182435601753352815258475185424447189712958130588505634970255935027519758614069092665944819743448540671328636023339408307528041255471496529142028692557140175412164014869720285468659303005119234881644263643052021459239770556141890335546480952856911125646873331615092381142187938048938228492122194575320373388882181385307091999807151792817778261570243343129742109109354754066442200816648313057519727313865198295211288166809539161795279217616185361736222790333517883157374826816732607518848121845339193975922336721913339767747272922980690094770338901128653764789611096639910686722724144925944929067098070942449518177287779457795064614144882372014119818228507800058846268411595179593767878204596986677258060777817556295270889704264592586739154289398158564214957985026634834827664311461188505907159392699436534337142967704809384161907860420129175973633596570667031333963525591003203063944141541526590172394932677995469999101962228723563603030595698863311627762488770852677452935235254628240361281877887927053491647207085230940725138268509406945998812293139796303721669363170098221860249595025745031644088563315354863817804829148203211380784639227889989523707351078423676187462414908776834715841917842700467428854334117388445873458304062295419964587433000657672951850675564684033640579030312852245430157924485915633076163148670492563039271448720394821833888083900990716792278795655004986660179022163418891715846143550017509938226351163832272047367029173742566827806116672656230940552427664137007773212918365002504239798148357389131351883919531800279424969059999913307543117579145616557605119652152493052944134412980521674283378160202838153135093184763272876488724480291817384088658015268431280867938484939326598740222232423155293499770460235488390109961598691299584267228996189640974525921835158495991824032464779545268460426705805888199771214158928718176505583681417234174879672008797825567108783936711091668363098234956902024614252424934249593868715783075354009818365222183289216553887032491840810680874871252472154069363444407015733973041634568158335720929916337066200495067274756443194036643889711611473818589321717903187386404382240039155203529305560698304592705566469408850857023704371895440628925983078145736459787934821553484789651381030929757667148847187845866520473747451565931480891275798018015546267300020244711405376865797774205307545124490177876916323263873334472699990782373665615178748817669861928844631099082887025202453396285284723132033343063814650477788235934040454581797319316738620761047064098997173363735741052827673498147879464957725468933965471423987625508602035500722059014546785727825823482720016185212260907835006824186245252818347040913229694613014953275524026737685053525693943391335587204163766828298992721085436048976510374839771948841880920531241545397163485552968847439165871889553212593328932123636887588568876309085737675459770069613266170404525078668627575377303916375206900747502221005263283895275577660369383445890088568373414447239749730569473277733674726796387437953380880812140382898481714596826143918765123031455858966957778598271484077384083986266081858334951480639398190435242775215245610465839982749783373207661598996761349881400827535330820450465402647345169093074971716926674664856278861052979774033479167855086475780802898370670863322323715512830159265761571409487596662432795028646007392297750959408940808628105698725506740589128298573131341934732141901414115057091075674135816216719779746859810494188737541050300329496852249350326236513705452138192216943321647971740951119654298241379834589460396969836450592973168166236629997531730773144076793693861691572604290823493030214476634796880529936043482582470740732291280397516835538639960531061832969843671154756081693170234553975257024717685389310016789361991953019504539315762027464245429470068379547349782286718198510997205931667308788795129222399867075340575726854928720260355207819118613885353377445885040540045884197686088640723155300530606234224408315360638401146442910219315639937462875739870080805725822100156068456027538337639421078042182282579630300490662572938517634718636305689128968799023592662897375041907334979375258121424886066797341931772148926624394966529918885768560319822798358555387661263971695881255159578318232877747289682724108957769826923391834969327845389027577413400807275163056749478432500901317786100447896473533606187524697244351813756856517452447112856065643308293157792165170274785966354797254913111276200997126637549527590487195531904932399070974074936022716050083732067553214062686315932055972893239569913951412590034855989887524386125199068904221936704325420238427626745464972930525243480567343231614513896395956451951795082549827600749217878628008656537970412205882152514785307727815458955442425225635194507208290999539449177881326621393967306904140529883460501701168993728163299947639595459539762789590814792420501392323483012061278159256584392938410456243492133123332098747915760376116555687845935471404225519981479922617277271930479539188975107248544568980090304661347889536596984526605569374230315863089924285024346256140972755353754287716239450653532837310137488216282845635468338220275248032681418570580093676468799730758324211185283624946283399433748749254863326006416366780102391500527126631302978566351620461136226631336787359800992164026454990124906913382341467200448589992788018100831103460998013948611127996295322739803993358284180613203444517814177574527823756801832012764347898184981940985677512581775459009537986151410685273888564045920006174312600122592302319534043669855863406797902800724857966034244554555879685602113774166034296603686371572864223303513644193570066735009496975865831462609064245151694584115162351770992010479027634399633568592810673292948638978353686966099303012901209098984882278286292316910640409801385723902710885480505345065478465101234263593359819411211415655035266279628341689228759222930838240261788914165177582097408968442877084980990232528126962470436044429871774542198335084038957154779528889054539474527620701214299371213288619309301438005254715515537386537652456513838542098375548157034473666322049988719603859179913243749514355375219355925896925693887837446511045661785430818070413292968447392125218587617089618382139771302678562313947515836368055287100279932960100053529095136084640106034895277880743161587130535917052092903198966752836053103190956898728135011493911370115460393489856930418790046429739001890489428130882258538645017938145187691396457843693290034949691243584737948231064942892912974945174004961503796473870877534334423390616742113185238535041809008661245165889078531552573794124485300658951795099834546571217889331189345884025213643881681772401872186442268829512004216959094399617884232567127804775893649574987040560668107023229974804331352388229740667867845079015920787821208714474666545875653032540149709092446000372913861689884386539647537592703463557887485183258420426753994017485756777825586948274804849962411784323162406546084340240283369481924816539971141082460133947872501506978094410482502211413117141186455183789329958495626450113942305630599372349943620355016064764717531476196559051387483802430518925228239650408294447994770228394618329565848942220549098579776619703887800878229485393496832476017442254704957570035018275186305265533332169582522226283658483742446611382666818591936284784911287317771639267197709006764942035342963566410509975221293449663609365650903538240997148659969068176747472955423482947722515680239485793263498927983951765268668343535716810976027323340370346634956651579658867511406337967396345180834218950148835092294125711573042496483370237709974854511447720735531328427354249992386902853957062636333204512762162192125355575609398523473074949460851281523573976002666752115429160640961613693492754089510452434614572733712702211818204832701948726851434639959562259649474259264230183248975483376995011190164338798297702424634758391446393464097431793644590947618419474166241541922820412325989507404328073261122101481183175016586671077898783882595326211491063160893049377277436291132287644403929747891260565410232229812244598442647267246485683504317378652798273570737048375840794110271825176650283441559137306657186851542716257238386946296697597545625725417853730236427354212357726622959071659976165840249501195246415378593468946419469986985508309233053132592386149624120891114987359082042112237924775920724362227145213050691772478124366318501096773789737328866381993642137164407094487032594463910651060848515028898513991663920590665682208953966180916027051648098980435374214998597315097862489578361308863454863472359654908095873316806460706772532951434102227539613956197807660255933780062476808721438108761577859500716192751149495831538682765579754545997252722865341840515898380096641116401905221579974668686286994667614155266069926065296865073250428920364253291043449320777571574633992953940792388416574660468557483633069400224209091396299913600769954118668627419778082132376036125229950936086539110928712923642128135864317762333674926562543958856758859217117585249160089086426558420837510169980752593148903053094082076411309703237422749057160003119517494518617119627356531749326281997111156652849601499428686434941951973181619192261498906115925712881119821588764746814073760876155820737048821613460923780768705414754114653611761082775388259820395764343448114892822371981334376917743624213716183748588390034379014707422865875773985163150286533655845860500762193046303998370098411016630762308192508688286085038618377794669839843627586526672983816462571453557130172724301257397202065999800898961658718361656148867832280820348892975893838047198399548641695139258737598765996239333294096179570490693113377422970404071216991886440099931603330195354747305592424603655691724670954791839289952466614233470930911947100614501615956822986237192757405418608952951470023182868867454084524507689152852922029296447538525417494710292266116334206997271522866798641591444277560485996787340626227072192033221760194838611167968514080307180107089253954784432029536320160731571616171355728922650997640773898808628392082117029677612541505275720904174394134443826253009779593017266249123485301309413099819052183876823479466695379187268715545431149936300175447175939783933060371255524531155404575962355192223650988040793598897710472862120404120338555660538109838961952526050951019018082192413995934636753752651900389834822868248794690452630215312422590432681654552460832811074384298409526698810058576560542963233516681592497149930283845108754157103186251769158634950587765971215897248159558197163877753950986378436918825095275604402345335526838368895588464415807542062886739990336152824689190544568772339874491473949590060344588643136069705023303740839385678585498025798852042359692601370783081714513632839579186265504833161146200522833170628556901160382304376004544913038936222957090228220115833291432654059171712945859477229496351311645265725674673962614060924836749979163540818757144755409590709444267393058384479338586711661631818364933801846726955297851494638099665122406268873058916633830534900876943579858761909764639291006697732146996296418579085162110303480321588523423315159182568890307367275104856767080908009792557972506565648206272237433656846383099630475152589279515089592126341465596164661713717583663975531283367501437686803850576639888597691644413829262971764750179962186447857740675901764558404760673663880255650793679058178734891653703193736466757652230126543518550028692807902583860161705655650294977955523814762310070662239465933206593621590905777849541483086130876372839776229386013353267951130455257232143890217460033658484605921621295352464219717571257032946386600073661355694976978036205578806741085988549328444529376651482601751124148428830331096773300921735256281674316738529911293471768901966379075914379388737402011507528269054968609476762479010510856370533593716089780830779516230447123764674610989537349404034391421768521773673504992879821237312063023101030015862653648027829422372717389116014980999100550705774422624039096818093822572411975891454249766507484570863642730473232510550380563911027513894347585473667092142918509493706943711921036367703118768923147668453393356693684570934163744579440303531883578901228485535349591811183726396748814841950730454419095737046041682837829360004710360399698591803096511080991338698095721535533857699813989976587579065041030482275103333690350561899723257188915705058775612733015165301329773099090494560065684912755455451867863049724503333677543714649643953538034981802337935273713841517346914658926456833273979985096251093223240144870171740661330988410745775833239498718530792816201662999405951968549859364738401986062554155086324064464198812315683765235881991469478911123302632319520685473573080474983036926543157727324796019982717308133073215893268543156793876461188904120151709612319362607082528271912868498673416039059231310393830852696253469535436765571473723254955060175105958025817144729340529430760449747898295900537351218005578917485161816844254858470667211466369363487362486750408552053774316208095698505545848759519310266205680345370570507727404156069703901891806189783335648185404067344603589697507384925258814549392567791438769168228692539355474913580928494304887052892526457167636342279164126672319961033209126131494032272110223367145858007199671338249638086503742415111983916119935754547572893749276019534607254083982834412592047373976440465718467423217338439739641050700592084601581199373127053500148341549633824861854078753454611400166080659469343727934128510603483513925758456688978213097642131083564223129893156332553289999733606478354940093187308354925916465360256893712777687360343956427642471089013945014779846329456111176166707688708528397656241703167645635889763388227284028141257202395713172041497414741287520172852956798912143839789246925111876444254449396783484965521352058580179478713173843978822720051024602281498707607367657822630492271539481306770476015694229834223722791121055893391095484879141202015250940642893748551377398843578430367075996696701409197651627987846429055108336434160516553865042012242343717478807266474499718407576287051734046615063596681102633771775128848039903736089156886987239942673819206778937571223021689027439206021571343364119086819971628692362752388147442685863286104478142204788576443043386263710670721177593855011931711201230455054157537051727578104247449879319403951777279534255625413369805957701107743885143453250029380880604567852228342763640467213569835604789761326479979124928722660635888844439503040141823845756085599568696124622895563732244411093699768950724252500714016317662946154077618253168479180492642991361331658610121460082623891968672710720183478276687349970098495128587856014427994566078413737274019338254208726982083339374754574010073294570484547936485051734853512507282736406311886103985572834860504209239417944168163246439774848855572151780404560045260003467851507815742104900803448960822568267582734297379198069784460495477821466172786873394370574113590777761679311217562813629047410073161039500650561675793415925963990692056950521169219575226377633633449814410739686421490792628802883568392896481429853882259328309784568493926925189160997461050152785180046616446222784769635850005228929308300646038717148375537971959354094684284428839487469892304059660937437586672826877086970975689816430556178512082635161719056801263743425194936512699892896384941607874627378261924727394023276210625784136079479471775342146054409782375114492070920389004382574847953731599895176152299961570504798008172549800377506613274135729135786766946451490934360625615460225374569213164097655392534959804811492730831871792519119214961851950045596350420571538117066186738708930148356036397738589376875349784791926633164630322211425649690853075301869776986584051308745333129298564738388627668111430285076857990371857462506822519634336431390598151202325003884925703448170388028608303529232780187929879063984202537948658871435157654848012687230139119347607633307827944562970342439122139629491361546274715907169177051843506167690508636464293963256423319554720041176345412383965292173700228653024816529767528003429261614907013114857606899760540472089855770324395303579929063605498131519095270758980153416440298258164340962972065800660772203618345540206891546213872924455672010147673939164932831560460139549798831637930920094499457445979446649909850218957802559939602189704816372374153502997686613073511870646992968145191702329755317351289266214973054844801964917078849367036690944828531302593179890425378284181291320588754822218182854798095215513866111994241627889743018042881685493587728358341093942347965907121619646229629073671639186414676550821211316628754006894039462930395441590227661526250145975414050158915709110707112950449039937074172667581167863010254147786460860890924224248872040009143002325442525088095009422272964891406675475943848067526714166815835884460859560030675582788404548151351378439719857549741139638244128344626952700676251720326197133036904117777552758810876703029776669887710135149163432667906440683951429869786006199279024846552483023348822683219920810933355966854099018107318157495937822962322858805833197726902885703723606726463864886744302504749098978467643868894014350426159977924474151759952839122497684598463916157082985179949991436773921853065113038819806182010605989099305970121314543708451741234573410201089146775411966604352392936374929411313413492830438993327143130431909750520381799446673867795707902225747938867259750977484194594777471756707209702179011593004648762278920494698071641135616034005946448885115617141220714473146995894186396126136483941265654733684272041464041140384212735383601646859011840227546728722430100796821169597677765741075744803513094687681388883434699581666580841136072687981361391288342000482963511559930924079639545420415166502092792572051312279142721727023960284253731741396509601449476533721512177122796303185203429896084521635155989061291149383552680272898151721192510206651999961597232418831950887093071726587658353008278362367208863074591414418445635692548872916246794262902656369924777662898239780973710275246620527198677691214877362603732500523982152748069423199715174162089997516762392464068904726615115186856040266057939847259288907048146878886876690606758008962649333318925341027417739957825995417344554106161500265849985613492975728921300321257506905648682702394526638651146050768397168634645921622189284499538361061615688179709767041930413627659380681775659138831035710602461412931345673245975494492097772432062515593851883729897889432791479112312310515064624080403232961491577381718619884870185161631940685105702838885299977103955927043491582469556505727994690921667480013664152463622121986632005895795359378340416022356004306092274186555934960114487975021514304284749586423464360479893082811464024876663626190296002097133456356266396473760149758150763263907352683630123621792237118368021515646436438701268795015005047036521221243774469360712714762675953470405314022729598177957360364508303077645465263790094362918484514169446753246805257265961523926925103563907463505348381864702128399322393751817062137729645125551803427943114450540330688104545496613911516955106365272351918644724280274204631755656777038109058693061698498826374264838552026140261342383034195318027393869148431756439786599579672109522785375003730474155632015014234409305891893356858688276782851475564671969974385455733924293698962363337647182705760135408838563758559509766195338010548445432810066957870664836626750668553341072616122318119650930907662072612828738902960748882962291908266184149275921401599141978939891538959376537349213707523049727768053774477809601837036826851007281580218760333261182887198592212717841850882967914407806987434302472144034582061686078946804107279972921600216182237098807167278107480321849875160190738621983342523663232145078982179708697037204298926485214386784835864887268388104213035873511562143113087434080263494473055090566705173342473561721155933823564272298472706954159263570981990054738930475629358667507883607237257990996988909316654185846888641766863457273770243712919607249154314078388803889005819345018662734665842891438075940205610796496900421019848653162346045628957718889842238333166543055773088045989168971503621651329036652252840874495817114512568052602561343192084582881096718349980822990025802646750284166963133794877753304203793056014429837798619807738617479267238829295946503582537310819287053853867503116106294507934106516914137670757027548819919213629514820369659133181128926671889516174541632541845404595302614217074374415542626323965214611621958013694783808967873532604982807204964596674147902825190898490810624543032957723899752063070814049808775529357085773036108244246088728374819353422152382112032573481383840390157339553952228494285212565637089802379173369618571546589349893889344457488643849461990655211094378310035778967778799118492227909206181916941317889835392491582592149435603593394158218557038783109258390826615602990475733167227919587554909422607375442414595931173487824033376564275657729673041943546927434279803015681930091650015567674647043123985903202194183607092385873119208289734322702718742503516655857672832293815920216788770792902923190070369173740018872587259479027959127057551489109811835600256144409466788902289646338834765252908414642647032699575582727868306101919219450454729908094798155811551643372592336167732670731021013329552645303082310431647966947242504954115378268115830231214890156894039693493351455682602234683504365887495550284134574183959473591057937741729233412626582002936607264612649661278001440440059946233650821242144505473163838816851052803170874668403633909374936014296317687723344524912285965311612191700467273657451100822700429740044355251625508707268756355896105867685976121479394242997362112843529039829334070389042566507931468335547443006907278639069469543880828715971321267581807372807541554359510229974760003681719357387679584214510517172030273053776669524779364016711044486446693494091330163828594013197491152175505696349150886632459604949739122646186622534098821651084569795591536890504947505330379720018315794864583104828305815567929580400193447643789677965563128698951877179160705942905189684204098516710512840482133961015874172892649472271568672230492414409533977572224414607252568338600370284139846619224515692189373079804050867953229421742948502299384013109465579626872943644682353582023425280829806812523636749482634113477238660046503072034970786526353179851094949504163371233721645583621874016505933917414049067032749637958886658596996694127984831302756507377772226873358013422144794035231761527878940469256222779347765340491999494276232071384863833601419828100931029692410110711508006607637263791468134579000250863174395608028451750475337103293770044546014411560985921349128317721502154501999554425356372108629692197469213039011303544118951569912400210378531991997438694877940343536731713164881157480944598843766719386083052756943242078387315054603873704446761327700575369095432750559434181053276168120153948907859728587250050354931503189046383761621527942709982114200745402691332612483860238378453235447317580923659072733217719715931145480914089141090941263393958865975081220167134237908448845606058606529727394267259994548510428063957809903539938093313640508937475285986363411688167855350956496375959873077870439996595492361588565658713665990988699245193259984242408644738080663545410302638725236143950814140014853815041830012903708537974261732460956700624267628498326089879609982028863797287281470126881458235621243745027547631574059033222614723878166403101142595546806009551697032868190241762449359963801901626498278370733677984170174881062501776576183812548601644939444882117697667533410436122148894593857111620467309557978582367802588619914618235185007089608758215240520186687617286951363384776079522994044199049314089160489747391741666789856371530197362177238239138374827518434758692521705170619155275895189682763738235044423829292083594560401864591059383175814222645869843435122835211996796275191910228341135999281509902715138287706525646537364188725358109785768145653607343558512280636605425770559125758210619870401961060079792915405313507573941789836714218806421559577483417179678933619237810912648328118445073011928019985188971111446903500125242689974793356283556547420284932736794319532347976557213260954727394291906230139092833382985192120045183839929629505853394273298467872887681239155235802507498185823645351419922968325397631152062699669615415507133037719061036801553738596789362393580903280290744430761843739086587279959108110374884002015791737769050851947125509990827051576645410870749749136673689584140001603937468959546850752086093138787038730008964332004808419371341116329093699048151924569386116829908319900152424409130669649652387915642147770329894671805927878328933451523500558326433683202182028533541637428612306605815664572409110840087958046384880327562047290882837411233142548239652680238342630737949080426690372047032603505903072687015307258057843170811519315918911656536847047572033040641115549538191897516452790613860975020943629466113201088188833784905776157375851838106836786537392186768468901101659139192800585719183380903254406858739453841575073549518851611308633901280812505278582157625830478710952883266897618025085152940526879838875866484410223719170087127668971485243018857616375346586794596108943946515457004332256472750810292223476171436990052597906526298012700188565734400494481724101800931608646335312970883208496371686874723659752854290677283859330772281879125182983998519245935141818516886190800270114475526165231616513759196586266153048170785548506052939785796007349463321562989126605664547981235857451139773552243625111024799624849943227894450711314667418416206878517475485594932768594097048508342541748358092818057998966930616438860109709304420760959043846013205239519542200335074873071416121328650917272132050035227937918262570314943538023900470862114338999738568686552882479541362514365378626589549278977452337475745697215240755183129824546876647131898600744404246715583622331326425438231161658493114960076791651373701415040496450234891078118882844671929792047393129763909394994386463402820591901325312591296254594085812731914394255552168390754202503497665172888148254549998063252280499476944283328143134237740385369727447208928772011501262865293536046551400670562048233836075654610808007626589681003868996151312950520916367474596482129726261589952932036882799160784246519632212513056918255070226659650630610071377645206707577427029390165255167329472260238869465837589786849523882738316911544744132688852381899886101710861769264732151785156459171847401664465560018159003836729258072827025914004525338351494654932013086293760664190016073934280256405553454041311804901177367818021053215957194363792959602483558939749964880391140640188008221674019596639957499467698428671392489275424368073708211009647175116425977050634016622632984434681935798884405280671739950842557733185141582343347716191562044478994299987908597289966781750015431134146595215219299189241438852917809986738151049887745670176733740973581853458716503533203463951356972869843767842604014699226490119543076272515572155917543516850961226731979765950650934439809644203502248518977465529543884449445868172019168629838177110135486429815509953394234554404889842392221921450893826099969119715653436053038773435943159803357030963402183951273397540012792616790148792412968403227172462699376659095691974194565602911036082435670168565265259171740214648557519197601647350182006100188815654604782473798747770901983658681126638222736564418396993978267063927297453735338012404514546540245954075465009290418341189450811767502375558695450124608695393949976701626114306776323207244768923959589815772216748599176814642765768229628981010589311099681631306129826872215222802689926446433728054238948258729229811190524619822420922595053592686757887315494506030330370272831709610138053198452541101185280331072804045167351792862492616059659237416570682192293360800250948242157221898758371798894818487126326266515545368563433895739061874267303638942306480944561754753829831737932269005512988071437133997488517816801036451752890143410687641840889820030024369164779434807619574904987517430799388494315368266378257359715191200723197894742619912290957941460104666834540470171056801920623697922392691793730534404353817034997330848335710390030805712222676213420819166557490918070819976637906821394215778007216512880960371170226555019627402043106660758425073272335708951825525699350305918238413340373176635444163923297206349551764152078027243911557641617230414468065973253891561532285220796878088062562662266026797846225336042045522604076406418106580832808163088222531882957031201975781025920100182078211732685301232175734688329533617732348419690698409032492770090156169893958922345824595135073587786208198810302066688962281702006949076393196343774488139188383947128443547654193818463611078322450456031558534160018927774092386009696632468434920972530110543045446017830674309689300203948544762108443638592828574039879004853542448409547885014992245166586405924923532573758847170706034177996427211450912649766134515565663787092986144342944380819216460748016666537845150282279368266741032157298961935138484943611597169915599277733820349660240162257967531882298832942788364226515517082543439366404044483111274927826384472141287438051933812735175640315991635546439557212169571101426767330283660522688262893766321068344205690451933387360107909601448157674860775897394205098201267019037980712365397456893131829151982247869612070056845702491445412104259802971139189255994218382407114129323220713000973230188050592413450367662819575422694745381516563604702232555262356272729248796630448264702685526062857163802247580970529753472898841510816597325363875603945042896629919476247227864149183691568479420058262081657326559742288789866893753627616000750144221111717411719136939959003393579561858113052077966514046844566240251874473471306294298789448875318021435705924924364064074038129013771256998988146225441895548632711252361203039736769092186514383694589042600735288353775236567616297100503192548751381186456912766066141754997160636234841054603795001483410974661420337090612760074721767451253240472723116968005386931150411361354178695907647089224039886573150564916804646088328233444431684670268586052265889902168697988449727293675009973001223023021064502417431397572940469872397705689492481153917859976343762457389258734990860485812508351490148990287836372503321691070138152679592356779354095824806910825235330643960874296127302852965083972659001633786390602313222916641453822559173240174842907971895093226318267437952512745476191977700743511127229218870919941997528933406549338500404988498124938121757188983098555622468973991577438846754388598074883780744421219299200183729420228578747674472657890525404943817997573684570913117134306518110962452606839742260368001588023402720077192619828067391711347237559203429228476469037145438083303989865998853551208612524262157023783895122918723325080166212682760479194910931667173941387112829850839942199213919456889264019291964870141069127691381538585194109101381849969151486399453870355677931125984272789996891130942390004593997298753915948193014809716120402420232451671662281744946922472357257386829294202219831296606185817966874688788270396203865311043863292099536621596325551022043466076769523467879791139351754610453024463540106259504890843220596125361816244461489598892983211178625793341053502585001912958620958389436525385957542547587295865755710181903850883912348586503406467290534350318904242636289715630618212292351155449303024972383972015045923862774628423508159283788059225280419341362185394873921905797172548886583334681724017182242849267711969014659138255404927486472164849670214563273890104327368663722885732782943215977908813159264156949058506837439413994589211320894398095405340926461350637972912836366150105449952357292877716641820663846403417166831372043878076517007614124297522334305475800403634289739170927731072698562747405385855110157237835374602356489156832861635902834860778562575711308133363536168404376598107538767129485372000282511923892826952841795030604601812037573619879011393738593272940931800737277400196399030527717689851176489692901348183150455334633991345379462455673756620249369320644947327697466062704529859177196006173937799220254011965435900653353554540156334542157053613791254210984314975423588946856969809505868876758840850930854335147108081212510534464618956046745607833316091475643324648370499457719085271902085827399214482157640396679810949453264729466876557717179396470089048782667535039642662757719931044866535118823626625196242154733877118368452132668938307334460551185606548147540286795570466744459065894837748910095594998673957974650630822140689261398884983630751736766945382388185657750020584774699037376629013299639175503158767191397046493948414067367012398010000816397628477172456065936097769904575389264723737418023427685696742148251519464777104653601926053050154718771974164322923394256574969731245321919541745716691568845577433732628741719611093589656305104578859395065622936941594941237398520475782826980497960810568024976535707923716641628696898663102839787269615210496158759488022515269390669198069068043585530913373029849427485828256450366691730775665279572465628135285386801049405037631255200776119846983263688615272774233493012581142389775389497718680269109548445836597061080809340994207314729239032576517400508950494375354001536827390645828117765264913746276235049211289968515935177617963889728922415241887961053896999298987946477134705816748201390231996673860493358046978902245406689043956250016884293777533000854958714715649742253634607000737131217873514701383017230090798843656406800354641237030282140384968439699506836403820561506799295648104280123596009870428757145111680469083248726560025243476333168394696704622034926795300109926035553012913945884452071489512851696982135491515801110319786412176771920822653905503960208240927291918072475531204683571673518994607915277680455232909833469377864685666025552182680321889271003618245001753053898824086550682285484019260769279238286959537036471607340739565564269297943169911372271692866883210571279684463889553999381581375749113136994572411344948152205534780313038437152932553395074135622361572360506919332444957883060740162419240793720936080001873850343821874141563487376712528805903783358173089128890593964268387102308721194152252928112707240099387842658445600777230673678371669660407931836980852623925903598762835883934685394847346210441237225105595101703757746508762506835432381997539704030005983230105874617931121433133073942626972504175480231911875768395624633440684445582913129312383652442677960680248734375292663782030709844422099692865828637484512482301813622764107986617522029847925500659204532715621284046788997383230072687135899826649104471679663521482558864694671664723532999639450857147848331191740716893473071334351073551662373825223803906405818387477051130621880045939251985343708884712804532709994013434470878645695823235066219847718327230840173629241019194472149561071680560236687679207385561716085184700466165074653835435971939935882494210887635541008321271967389464216786945554361094676052212651254521428235155602610299405699241566225864511330993394303458172344693504056202009985684351259480265094779096789056733818620063311685491233980849254811269296148904950721518248324784968124525569151728631445818373816662169195010967199001780636581564394720895996500751097334821070646021772155365424531418299552831256346904159978750747604865841912322690158927858721394980919182617505188354887181410277965776982652040508794571814190899810723828334054537218327842322763593344674655813988252463784735712501446959413700348748839210251889887623851612904855966844056301292985833473435222375034908755741261510502175783329654017957366858945942621766360467906648215808447049544867140149575530043137998967444813077965180133710577181341410818044331247262520718236423061853195232433210237058014345476141196398242328990215969771128623185829984581832316807827426238871008767946397943852539944177229837287226743178359073504387567043903757131134821193905256884611047351954534645183814920746088189397665990908238123037853630627247012428972905358676697326895296765602420796053272201271471734626865856690983933745943105889177313686761749652998113370010683510180256813649787409795258240605186366131625476805582364506872869091158434466007884249464511948775959846379305463897188646330363366045375282040674629757324694134465155771729509312481980528379218607593107004656396750163868207641788867367563528857777714931533991232785925320943953196968057774825319442864857561853850680286918500641020774459908270530580179924809196364794849247923302456564083032415336714926171827970184875687740717171013794215294406451733798772600354496720666438130782364055069548014479107288424937627250133582979490416336229333905874049503874114881402763862206548126723761067866747261303898805014687379721775530187794977535011616856203871323045764441220346452785047525100514212457130537313471878467171684312623455962538275386569160511237116295825595219778110140664690120231852745109828647076846935349452528804763094767911203113320669453534277462080304029586398997120393281468270459150307449593957309154684044538956968544674326003076182438955836196557785874875101038243231061347644636051759173400294526279871486216126489437152080783903734194260827687393516539478430007646764346018813563994496075449375053667377352700867608737272653064829306108468653531506066240243372657812938556929537091264400000160612924658716661423057110124846337188928594409157020561920606134940244809229473040516684645878766006783939784578803667428873636916996894948788684178094190346617011590617961104352416231643574854387419046173018835851821167264802911403750404125597303236387504179592972869197334285039827694859100504832004778635748564435212015401436419305978480921919049204049925981400522864212726096325220974922075405682325062970243057830342142580945940689556976565152056944221854009509807107708314642124156264666483086496344028559550642547550444783495922109647117552313756753014385603737275919749632402080064533007800650072725806650128432737186346995919193456091004018640414528377496096938184604626324989471898406703468621915260160412112203395476059166272130159029470022173664315118384421323250894659270856184388100162632209763620548332104800281149232073778048637879271661032728593833153768806456020069060576887515883447468451422433245493847501983618404923940917558092006470711070690992985406076949958233872010078880523508810999325578661108704819164373075296909107544719592640904742885707796131548984149236782454904425908496917575635358169990378416126492045006801726935019694017056337137010189638658976838803547814026795565064146782861645862910868564471879594492335018435067156342989577761787242996074768762459755609907603267547302967783201151627552653167823709648661983957668171973172516411154946203989146755670552456803513335609999326608749740801750170717861734137917740895216419746128540058497186910050095512657794938362866143172322546743913813153224973060995317473708317811676072478357494354529552469313244575146369153801858286631437370292068397495699378150084523012490359431675693910117992884339498371779866332706297286824695962973189919866329750588926660731393195929867663043815758993806368348369737020363948317830336721828239836324527880246563530568882866808517548829071570195555292676335983722566401165950820384841686464488018387092231849618345056032506150878682731698833387146627923834263966691173474807088824689182864598076629391648468514600097484656001892311171437755926635139668717214087714453030884520145098490780576848889442710474617759930502182537904022668659724153716325220516847399029168978143142688923284481533465643698768396693122531242731716559378597975111186341679273354822644124065640235974690654815979516863380913923265760756892226627719255685919155232634362416618281332322908406053612183609357940286719590467185352773752327865333794152910971366501367117288491981844898341174424275907193341212332681238348122727462921997823211739496617334673465413280529465488255499928760085934938219179038009004413593554464632902785757894368242451917629502794424540319257650055368923148403759878531875158205214428317326187378162018430415529373482431175367174143985544819039129104674388716930104443246657417856013698471688838730146396119966222375280899751720480427713691333119257650209893798811566524800831622687020150342379582578010461034930512952825895371527544938232745787098120665828474748019575289003568716050246981842415496085685707901531937570836751855710363506835274320540317417861413638709776716136423857442285568122870526824877735479055919429678427373928578758762075953462709837574359653542392240046112924894000998642082546016237172115804054370874890517764145211296957188044687877434604439155968125010546009231980464819503343305547648160322730463040003474474138574236398463199928450798931112429021634076261972565975357380253529273710619687585658698225528983873946511274652631500255407312091739136587856057593148693719952210194898091917173329764034356695367702679762599107413864468172416763694005125028940524264378311644993544193646420195200925353843040509118494625501324179192668928702752389032130415935211898039777866508122592743600510111042141168579276884398131616660667756835734723775397509334092486434265818255562554782976612126722910127334439080270529598840400491749840623443703301879315186332662815701848122290018602848515937284348195354039166189837918896961472471791841868445566990791462938357961870042640549011376882491251395294340938159978036224654471714497901751408827935513010750166668851079971690582288311958290985197880484966011978897290289831078299578680529632252855786779674118969230871642107150565584246569487235845424020239498492181412087082573536616714287075121355829966353061721427469526716344785691558060754212170056585038567312327312206964733002097154771730357888744861997850907116871270432046306707849097361634670963409740475026945859511874089558601338773093746640562923465152529914665373540413805027386274279097418001308652233436491434260230108102766652676029467750166652329064938592092677094639359945350627595247720870076563895719598046976520931284408890862712061324644972239987193219257293465834731956055626396295932544518230938665156959870837527535459331836116819831378469380106822133768516438563689526236344477646904724660406707230080333921689422560081839604675240362206289317471782763773812206890940279201222764636346102876494320248437802459644632273982216063385537322905686460055926531489157118870575586998292197289189435196061234232374755196190062834000326573758058401954657306018010697481835993627419336797980463207296271253489805934833359969075789795343071707058580652420924991348626279890553912498543622457928480226789688792047022284721609393266793890417800842024480562293695327711258701825357995714459972264679273416775207833618710847678221088169094284595708472691546551555935843489102592464049304155452547945418600970790915788467715446963187979027583760586721813111256351653509091489553733446273379919822231131934779583665404339069275577417024866097901690195308722431383691170204501265507849829279412372814189029220449814702678412796294965176040990815419429468228069231494138725201561648554934320071950797955241958188877387158109542757393668242761159724662334381019379629070969607556676126971582865661390978500901330968586426297666670681340285886420672788449151960582065058010548502320020291414529950885988335171099262237163375820996469969189660116035478606339762491914860853085018488022954920443308270207870785924700365867603224178076120819223895614164119175672877019573275720818433630395302719849153363193492377594387261177879173976993407737285902267761804500155424596006969251286828890473434326759429078552505691430772526670018001700496237197419855410613927191825636953327925478565495933049186614314568572101183380575955225322649170415356578171738102303558363949157708470702759597616514385912642727562523482459054711203962321110885172591556501188145712446532480565495213343045216527844366783817268708548085698470577478566814037507322321814605345759170454462803289759653335544082758660923007352332586564469562946236184547242341560283704014670056768224203740588323351264172513945732378566222249774606768038334183522820571352401017213677080004070555583263654264084900569429877490782435463906213664326994060822992174250429493063360396030183093937542850889228988937183741431542644411430581292218445210870348646890489408446922325164723882584565973046745469883511880340105714397311614027801197358966433746814065836604902455794461623148282014263623354626087049075613032300897736935579208733644506742437283093252383055101179143065437469576016999850141266475643371634255888534923796743773466932255899335704341827442698931078478350565909217751010813484598585293641976362259734022525956829237501321469858304170100961466928486360447586613120899730349970548073944552047606726943853572800552433012505159811021340229125980266882518407243646922347311463644619731589003735593236764660517789569378505312304094639262867838647117096676936158252540333294057360119443410304875620691550751689061485483813379139214484006784162475774563181130287240463934296246100192460978760924854372831357619740171186826806047523534457111102648580261332106169474599887352561740771990479522277198886748163828308347855958658904516164024723633502099584473460064466800430056500024764949942566361904893523291573917659064814793164130130818467193388084924717191095447327792659063789557840635076919496381361645826991108002897999555173878828206550236018648794162107117807381595712874209391315216873871868762683436896061924760221668785495892199320034776034308074000264310716066178329627669051041543721957396774265537595531141630055497894895384014635283473576900575093365720853706355392609418276729214336227203353852105195636222288474950295716084030000006079852161154767108720358072007117388134147906527902840161738488862731352452553563688132782505746469954453661764580526949102768457188309088859502634419749646803227686319909992099828665571038910356012026485513248928836869258123366337934590979515312605643331947626877402793463226170509743752840079380273767293150829933980894807567736893034924599653421502001731567020167370513331549023820738983669397001331516285421772722973373896475359431922458323311319582168955998703685295097256432200074301853129219964416021640807493461506176352744823910933669599078700293213759560108216128830239029826315247417824861075415139158286284679495903050217756291987484277097253709286437338985225479225446266933653549635645956362026039070397060542018285101580090305453944724313701631496812048077840002788607500508291031221182944181670051446902459381871923835554913967981033136872669298892707875852545425539289863720308318580314953817467719467146256893219567203358409055942338987345309567793319306714501194693973487057967000536421916248012499461321032254074846194428338848043664652977122805100020208495959219020869573489028132871095238854112047749949841695570518486811589913957836553942711131898289241201590896748351244485178864473693246399189827318426583295018950283412901420937782593814814514759486617724844740881045046474258073606991983464120553912722520864528843121434876929240199365777511156178756044070123084089509151836619456480708212231296394522775086162424256524917023258865140910139597127417380200011505129331708606466618101126095643326720383012720944190038628526153636704761573222719208192324707053559446484314254403612381881853543338296342934751143995685554163857980767259209609157080470824098161714081645071011889955618814493734837929636615312204067687155778521790810833250442664554717268877927272395301830555349631712598012761392073828355474539418104241550781194996763732162006780688405756561705781762558255483163869078906110241618577488138945623764452902567751106875550115136629657508936068966318943362549174230569599919173549329912806446105833903183413589271291703263091528930950679882714756834335473615641475498668725334620194730445155058911161731496618994005667838879113914836171904451886708153072158176279708943405062562681582373703910408377655967288244008220893267163770922127443415798582850290382734525135436928163628885908640229919697838608021278144451135139398506161853729610997441402275151548462350720044541835113754312436641049117910549977227549903024363493173342932120198279660997140999825232843043946853176684661208258579584158281366175122757393793363307556787064749828549717915500985566789521858516697520472982826853875554074141193410970074281379745975862592143596579506518776865789217481106369284184630487105030938301656755314633146267942524101431348066984256281769122770669594459290049526094098190906266281901244147307170679772590973089075637260966303163291961681442802239192307787968980138529086037042547937834569306510786232896607011988463079301135805163125870334633718318668347978658828639707327938534965564025850464546407166851015065482775169669858496690516599541362063010900398362726983031746998488357601405001217787511524481866291615985041458542465564797610246297350877325370493926169221728103074827768074355023870594876792247803946829235500901255650905657574581081239032500213695317375252375979305937299730876279312114986355811239805051798227011113044724501599807040331132983696579951242234270505668359269712369938730986747300378167877044556680326402047155334399897623711881974279354373350975059211370100545094235091353569626474643980036851737434227987021949193488081028979194125982646578025715197262218356321214658622604068699203951161433813485357027349329746641282715696612828741738883714736788736239212285483713276472514411020643215277550940762045201986659624582368911225643136252619209161901330023845283383681796260183430540450419751242414509812673594027689670248824459021022182500997184774929148239314432288228002037778203085509130415320292297910091188939256200020827387243289503707471149885600201636452987996803828325791246709358021402538129166223604455918970464590811222949338187747487545736461343300054840764762439224852095867881322783937423659354495040171608266751832363490166861495662099702540539297033905294313962855126551741001855470670726947968191383480395400737882480091504727390205887503491278327537035963081145604621335960312899423045579966162995959887368792822995382363703335485486838534115294734753834824941636489091027268049151973464241895609910493086781260299924098652916709917950348837766241483784915859344353828408853768471125656664650197430751117015116017306615699677030616405552335851975802475952365255142349637195632179532422317676571233289652844214875331075911759316228436489738733600102182381930087794769927878143214207439007885603987533743260495261925645713835016560549724308165925175673080362310736345079296002573320442221738242763473550746060943831190148198502888537275455034783074980494919218577955663354375919158700336533981746073070723445094638142474371252623641988956812494158095598821803012628803653524858223118301862426280983128610373042404734564905092910489940915871764407588358051533785655023578222960503769373885484806877041860527290326123557981575659257568925739384301919358843888420748667443003878000465246735511564708401244334578005129070341551034135717336811698501381187489063387838429052029673412739320098918754195590414863497939356252058272244513286496636926499917947468741333466710649090708289338197305505681185758161959692083929560291290329931469864071787918338157949993463740254009875809689317897350106812824777524095900492862089063593585376466989802233161346740890691857727386827008138870550302772040785537771401911617300808669303241137428963131197888293190686076214381926388804052230788857467853879199379041745879520567781275708417766831961938409893268984129249496312947363778700536698961459810297294623850059592085832692223306225917210456740297653043376424282462448839717841662709455822056200988801731199431071543033614901287414854950027230876053458883496403344664657938676259702903776509326688751223573013038463855584727211853963644115717716917275120250630780850240781034668649219698927309660937480186294884458785957554643532643135529451008571172765594684474528541249961562259279842636956823454127945723372301769630067035151355066697614655280483081545763298708240778086118659108304349628042315220038849426622597422407080038334909649137720989825095137929134612861419387767900194183257764911209140580802372367628594546762265844464289125591519834638486692519866563546236529191027487426844897091900388411795702135386408271181297358892412685487825135882693865863816873779574966764099883751218663986393767475412943041713070255858659723469002314559206294028762412665380661990296938099683887533995987520130835920806314696564261307580086965456096291092095193611347610290451890426010095584377864315401218439391835806581331233683445204852300324901848221781632182615908339250485886624236932623703815938923839732860542146917260471864970185779914249613888525197724671666659607580682355381816759988718606844826213852089913851181273538585661446843713375408010467998116315993111478264337871759584383350605605082739571697543485729272459095405238038169519628898829640395694359974751631588524364387757036522250319268246691257797321399394383267898530057877836685218396227597801847733727494303323473830084731745319063052437287147095675971302793375004887174752648108460954156705386031180816388925710289857901998032927658413361337493824286117172904224969265647352639803763378846812849162543250056228841228276178081254776858474165416688494371416413355827875268074129540205949353504819648485002801093004136689895720683895691014715987323549220097056390990861192222833994190963846859842988505854690327585484922608000686944576773094442867131964586042387433132544758167705579204034899983133844603338185747477636356860771240893280472023123956510860244533256980298212177689498245969140609923373493498705092858422071135567751110454059601636502219879886739943830454760662243641548464132708254560371883300762594268968970154713354481745868840237683065769427246397546610683212009267021264280582699207444950127557332286473726324555619269058125040134201448079728144647552381521608705045927310984929641376355712544247728677296425568505432572100948289032613472554089937275512454307209878988768714276875813421369019806203355250208749356203498370472883703052139424867364903825335801567282595356295752291363106277719575293191004455843124068362076628120578020558639036216733115599069991071899421692022935718095333859175686733465900356546359397290427289412154586144678273484355216968865300881329168477163846678960641419483141415046090208487282495147357940305467967291545606682726380428984462619272566664774608057964579590381580870797420512619249024357910986521225198526868087676860310271237311266066677680692537122575394426306855088817146123693239186082755221407796101460484872236384002993893030740220902601733337414527525890378179914552909273269993448368528109080841960818870379926032317232159202889204164281513761965894966838030032322683182698969822969278754615363794697379069144458792348751092579747784675343725860019427544810474903844126047709923610385615555926520473920807612087917654667757917230878296816742918302252206307691946647214465556951583164518480903679080655311973238485460099643583167730653545745245180376086818230920586792814428096202815516867793900777332546232229834903441467466389634305393792374711363999295290386790827938122598193627290979370255671215945046427615684289773595618191518919050552274366292204874622715871860601115197950871152080605254236004810013052533094287412665499592801974445380282642079206291788944617654587298527069301968246883320592272401622092956955540026262632238916295710061482735424032243569957199448396958964267610374329473854216951170663033997290118890755184855633588004657161758530146692874478975710444665548573361659682793575637918832154665504946736013049818533685421866363330289580118468770981501553272103692755607324612392896588250468097677797252015323595132644624117598850246071937841652094095463581646808323502558856707801006030221186381947856862932580554806261333967785184232431753793856864356678184914860681894163151151011858577694190383117189887228722161030638011629842124785249580284825117745437321409139064970767449500105742237659764431569038197077095688749063109605432713810877434498870438640230485197059774746194172871817637726736561257496704720115808968587248642675454747290098150012637933224465144933758377996985520896837828928431067966774168579481130325099441934099694844353860503385863406862048727894384555635658530553278678326621105105432846169370181026421490041546924252294180629643391823010344743580445263506236950104598262686523687241993636822350143671530169683771018795943599988907632847429579986355380860851985341288205434031922576986144299253743260795198405593211968463793552397939702261057775261565196304107501968867687104640351308561710551587914614235917221301078566123074828303691606199468881756915127900666656086256727609232038520335368054682015526642384249979407501028552915272304867154955052363348775053711536578266208715820744934251524050221592555161270992480600080761558978269861229056046303747259154967098157440836625757182789314836794768066280740617521469512327184443688408429321979772799602838578590088742104135218763647780963664355072843723946875248354332689567844649586820099412728987585440103318817209594573129410268635627242135725704541264516680268265094457076636631415922711121707603190083167798652761584773660205443216279965107116986105108487399020172938731883117402505504113580880109781532849978436463760052687325389586438536317034739031255730390193306106534904002927766709843711614870752766117665139950703471291167126837880530571477937429682775744870420737459469085016564145435821843317651449329561543146554615898911168092295993665961500915425997129988420746034044951652934174555883246701617916824529096829397721294427905750479415923700968414822471736788162450403626006136072533190347666598710665030746933486484752416621439121618944023901032164199230457418044465334328799122916583019616355464479360985158182183395361391332715980795517733575253339347749844954572021224673568893231752413790920132802179945098824002309287356274319022267170928546214240367798942738598613715713271067087180851071130133640107782537921037704423833178200958544920844023708725038786064904074521065398347032737180179103157380310371732081165384562470231562556701841861817195463131230471387860332367169478010501926747360830235637826268869238480485561080757597935764548116057537669692421499491317828146810377755713142856192410491904835355209718599466746041768319190877829917401696658104792076780893988980378190400496546365029408055210003334475443496407439828176119973789203513115430071235157422579167929007728442950263911377961881931256581324449680130382693934044063762147696562286681134750498809696191773278398503335847434563333826375295024706285760543569137312696272204265457468947694143806588515520970292239484087926753930062646409271464460146486083958462064941847997605482588489762619727719563261329506809193845671378232206736266742687995151802708223665938211400944776675613845135328602202653257688150521433217673575948625491292288615479697600948858442463547135361012006106825337635027733094096447098091418706238970362012577250689257078500379558396778650614861463835630627037795574059917976937973441152928703594970464780413082609153104883423558206254318352748396188615945878289854295063449656113946459202285202388199050238241177048727533101132239415752950323384077563941287225625447302658505373662593750648137898303208730402597978126953003429311037055851723302274740538418211094973449304116849768715620706107107320078861239383136208611107101090433142391264161108669033307797602362846573558688357229921443847291618642263931503678820680490119394003013083363533008933596669184183031928001588852725975543344030786469195237912894719504881500001970807108744496398488488952859149043292564841424675417355333091969925855255240581635225728654764571010540950815458692198647351439536845517791986821908698391464875178969361568230792761375377762060407387962208786972585327848941004163903634198914809715828831932957607821211914747815094046150511105546619905016514285627892711209198571688471373683120572144692517822660970527839311803062021895560024104230348112467561273267467435714262979411473379674861583396483918708225282931416157078424058987061028446481766106557852230888904051954739419419508945833946969559852440340653606337381565173335599739343005351888471611363679474718380436164107391307463179834345311232847224579194765004015611689553351195347446073285732705813477087970293591899433291282036011027478997416020785539213237404651363614062074931364005261905199914867122016144592595977769118982386113956295910928563209195106783103510143924808337794164640097042504095371265124687090592538623449452263180181734814748913582109771453150040072814791104553740663343114782862640726639398174443339966958379574770083122452406902762311565744892829191142810211004994900646060004534666827470081932088726402352390002959610460987964129193064306520143802356044013388921744997126752665077287906801116385834945239498747779076540342742057949222158657458231376025099139388631145712404396535413744125417678200394577648810437669779629726493350144465114572781087052136112172203945945870823682767325950085876772530202945284781383864989229680242385612657274534040206937320781372586397275942552510204802275037900783880871016816780093032412981741799212830487699695480023535017493597398131465293077853412166000358362008815202178906152300273438314138305246375155920923994922425561585237520798085900325222915173416677329861617814962353711219798262215307122779350500219648430680408476883164865005548456404009808334851626385697389128546864263871487781490900008997419745625192556432052616073391306147307762069648642422377481666807967154321800369833657865887287471551870592794449628254662449628016843105939435077712598769496913067599163311825895923295983520109214039825155536481007960310340444544917542559360505581131347156536742287796922989458252009531326688368341289715550320356890503442653988076623102582626804199140060410735647422454389306508729238809640619874107058149874615578994303344009200217992400905598867133292752705402681731452193914263444769010944491208073176090980508773465245868395782708750213136299875062964388108124554994038952091936207207224481304645761906435206696055856115077209849655445514319549656605798516359029294898239207011888928498668188212347500177706516226081419544475339008850762735886293655044033545243737247182779378628586573886429159922028229013749818548200835353185769128336157018938511224704937032302822595820557711992119883879479431638415779181891408557409472574350549544249665468281001171588546578542520280174844637796107008196592352059007513271944519364936840569673077791397267986808728072299835254447714273086537890497423878546534280045004582151538330177428767868796863039202488348784088973381726286489942423284409560930715244877353225830877736402259562851965539043337197498110347988203114607128838670430361840194802074860044503192724365881791724851644886367422777773796069641074416075342492952094505799495732207847234461687370990501468000941185512618055334248049416524000325409235267515337192431375483489274860341548365791238330092821943456455867178438619628625310293924525487733510245241261857035594253763476840807423238541771698834035760986864511601889291286147922106630621457832942810759025308906381393251502129283242027539596871138023104134487600555410006958217852470943195253871610341589968875019501589041268650511809583474132921071439356076079174311394659748406610470449406500242281325732480130710625811370863731649604831591063656483722549683134762130184836841441430250893660938900648347913145186210399460661988053850602527897587310199093629683420664768456293687297928524671051018329178060932533676086020155126954929201197185225235905715461333137035212600297149798146681674041113962700172739095095069445189085115990840658238957573941581225456796339257985413126521325878872159884505362621196411343700023543714985830106612623041150822573716234727610282613564598397212602341529895136706234672498928072127110825456496991352691138669436566394440874820921851462019525315342082123928100240451524868452416028809315279052982347712607600066366425860639558146726973796385293186766568037296123199340251740397128219720148629264208393188275738945693680658298252011506836892107827134019559980511876127010848669373996779886466303742270883258645496374178922424108021384209992309719324211755788419586618045804664113794448194307366157536146989451503057824533491905365102225771306289929230908375532829932061911405578312832047386328624810426685573565866085122104011294986802348742119278784663161049351550803242520265801501773373132802675219288142697209589611387879090020780966072545129633352234606342543646531671964796018018028117232887938621609104037711192101863074323069003486345259436945015659182700415269872464422855315017001106816788247785133739779151112671540201408322390958548622446317716442854479594631090608883886305545571430745770064053320716655520980409382768844888800574940148293892218097087526361132315924272420570326215988226954961826938643036092472074007842368567888707421840000446096418070799262936617723395421895233068269368108718133745390372743323895521724463882955870844245078404710407684977184606960829391914266065967908979524336996163777685127131820078348092375000344778588864538140044451747846278151150052927757126326195300790474090458176025237572245464767846082759775831678876062770091110717494130849786975222366105840402773008223757710107501905987188082231458657792687695475192341606856309853973792269478016493325592614437458697544275457801511296042690987758665905537785365996015960659781006991608759046457113232862152784622628372972915018206214819206788246390391182961000556827921443474176586259839119730801886770531459580136990701822299356506832310262758866139430181075684260413677459250058685211468440251019282412425114330831147842048343155170963727148796477778940513682430827261572890485328165054862995908086658083947514300511189839398394135097681265896114380966875884900721524480645181737919571227595246964459342412799074421117493862088979023070179357937115157010404699433401005043615735595216632886571004724797316589649399682500206141655597865896892138542406480240459117501115412451054469948896730775097277987673097450927311259400413502818969312187233684558531686764283312701958999020891191143393596053940472133729058481564508182417253086001549203171913928132289171234686785922185484120863664533040084160729389032021755093242226136719431346317842158941739676385957153520082140023372405308171211805799005955503870914721413275984347769669039618622799132084976756115077179282593926874811274490330953810622504204841035748221285825301347661041436809586087841176501253360150819906503911306486978798925210612364345497137877384241453334629953045229231091598296044603536727854969478032249786516076693057146080785941488661482868084567826510213255179008556972477385717618416785378308156492250212553831444162974396744036419051397647274269945715450968556962316322949581611783264239389054145933275025401846145209903328573608029063896242292299115993077578316810864503895725054633432067510019152687108674479849550267835714906332819742201902859636603471494844398952284911375964176462867159120081477776310518328565423194571381587216665653455886278649734700384553286528844938681519695273128847479060387419928111679674448620226214203164044808430110405356928074725130635328436476431723802460093007919338560417899973717422144584693216168392665055766967274993073123084012273298752626412889734233413509845295430823933389402804350525289926337374676033885715110873753436787215693350070626146779359376712883957062018712611214139980536501942406581830221037689310269958531102934547755128436220315697887104906770012002064675444030918190335462777245971733963607225200012719739502396861794973537287043315996537998087726889851838638531774950759234734407013871039806159442913328038163323831284510123381541923171396987774656780526736453729630153742007224897988041696688973231307057627720403796715074615858491589413677169113620617944530748309320447237863373014160713684954531573520817035241934448496555175346938367010321376836550925700493185397822778522651302218304593908931201787572351337989958154088579758560995404056638803278532397328574454119062538952538129268156095317249848012999435744683246182731507740408130561469419609576179671825742507475912523468282608050322665993398155210120653522413031153987319983350111296026157972497176735238440795637326261911883469106896232758061022339444086414867132506840871195704960937735027383397518869423898695278101353330490566940649410461795784777738729707833517697190148217125890094240346756450749864776340371189262724108093599731752920091024925936127025511783779421346619800464710921579784486844145104027285773440950365468750846969300336933297406023523568770890279321103984617579993430542307661383563468467832232169855768610809325824451344763202754646794942914547748135044130364842050529097195168521102251922960958780919149046024524072190332604141416814594687933050930690764975808805012734311361996051339069615861461182331397962125794667176975879232087411074966113046040014289719895908260162956846137460135875731567491168820510732902164216293903305316896595123513257531116516458154389997634316229127906300892030241954246968787938110755110977105404853265157831509327221176626761487496558931641070317276370177120041514732044880832694594917275355502288821951118068084132264637619372690147685597811481120410759995303678336497600071488742713468305905325797615464284342166291928004472510210167149096269921793660026785779909198338246610655297625208175096114631135493313761108806042564127992420548989237385809735658638791896160338941091845962873467944174596752888481784698888049153970628865969515659289049977632416968360432700339291766373265333545872867710074641126461502675858551642114394758794649695799006392344354592898423897834868981533821208886913521008981334871750415179887744628831527200780014152932182178656325026391199676438845729324799075678710222659076898926280521163571237296376111284392963768123273545671838594454399742878491434727743020787441711915848053098450606600058498681474820106428588174875485714788688337012438538999992763348180094584717249715424598345195380433332253920977412665346629273019719798295206605390930181432187875173118906451082818726740490709660601796994094871312645928765686116067993714661401809786903625050432097857335275348731329902866974849209399743813644620668207118855707711014877490800375754058881031880284502998712524294315923416448181839516628384450719302744147814478857176109003979835985865895987944189830675477134305327045148781275071271597630376788581093452881033744808171584646477746861890244128391794140259422349496201664420778265103828527933998611819058650655366672091567730443820668200079291343457877942565257431483419417206948914561255178157374344633874408175269374620023348660098797473064354530214352295987689182523057972447692142525365362398451926725406328546991628526165380773668280424548360115675881455759185503062331162700458744487375320703799512935286914446352078247560716652521947083706928949079131872558088811896295436378183862633846588885357244405476261815523903416360692263768609646719803473305678697141940371309143028610749917302866365692904008448438872744785207457539475066798378375461898837147118446017237811334846915409376571279468412678962766540922806790557222399610378906343962501387706935162257865683013050281752395980305600778991500038271873129094932342974196074952332943005133809262707766843165355310940946924269782153552731335354352587995336310503654918697361718478631755777106751781766212294588757496556044600271299445547696399843762557158868047553054636379191121924620020898775050084854212613706893690030042643380613284941676551099846836629124792654568226938471854629102370499426337426707119606255713542525956253265624890314984813251990367874203643944056076908580685531402527286183306524621079736505112382301404083527009261608683205880322282528125609136706036764482628325488029163894078121266202536015143607050017410610960629101889716778655582628435850042563110013996223759356975265073275636790374909825794420405161806293870715119454998181310355970986844358111579467531275708880685136600593332419837517062101549245000312785818190862148249429918416115051822383379693646634342928582480444184873118047173403728429683138024692300476577110632225382790795241906126660947815629012733472622125635153460745804727510825026977660508230853349911592818308744241242508012766922457771969567299527946696159246830462776025195023508910512798707491608957402926606454568084547379396098993423623323272528797451229638679513517243775561653640275814717606869831704789449033061494187205825678265860966930952054390684233509959494163352899692262680197677943812595515012329516344432288738437219862860597711185960155997223682149235023872420182718965069613764491577087098891700297653433212855727915478540581642342475014420101038038807422284705195072598626449580023411862291826682365818104006742010961767790314793042933787647907062789663251607100042769258580626846190363304420176663834141932055821472750547741127774721179798399449026631249044554531384234100932029310745061585276619006858190626828613913842455411719963896239978586519225627666488413008881713183190574166789485685608272747010213343774479036002732229556866237099899093894918523366394267614103881179121154690307403831853462423273688502960725588491225071641283526029930446726370440927340765145103895558686166057240826857349095387074819408424930635595708301828260082746274548145480845069622870826988246707721784043525581997852997050906075610007113185055353890232227624398408288792110213891603158002040303790591884990754534108643975408123856228157555827113117843922790224449176144628026935220908436712852047502639169087061803730836095914974323641786715756082449374774366478731462321284631249240488563255748983592687241065645843756867955786494081350068650537645403492382429400474998919771150171569003031126585307271504693491086996289698610488448795227113587647713880779456314456818443025802868170208847087807272785172821675814734145860929819033021346273581824082355044108448984327307340439170697486641306091243580900046256661291903278356635476183512952831921647706823606340760290379976214181551115774370267644275776966176028201091356207260215126646170807068891216423699523661600515227732241689951971396327053221270795885096968083695345033459821919668846155236087581250262743737265377540157628490622205843139437682040084366585343282342436478157951041539476022942969616605138127668513613242751526699605432127268454800825911276426497977604083384208029843076232895317744852629645475814495979095776187011654819122370069107735211283181307782095994407300847573734717263359482144481298078607693166538860272328086333359874836884863965210385884740443558156614919753315938864149937050844578796178616866294533470009093323489450139984183959128936974981603382017105807801474840768637283105146377986676268750676398681500589575037314752297093007897072087393954449479540062266546146153413020617659319163555739123561962747109012033313759565646734522897911299827390359227831161779542247733880796945350043778397409498202318028312977132624432829050175239393046468268940099249002186519356299011853133140441556692111460139290901748558035665773664044921487517712087624848066885820771424878936887480271643872717616126436643597614866746986985999954828698804460131791342060010328386367921122076068167863864375688070362012288912946893323832368259371251450591047659104326325266389015618348990445358236378586431537739161283703496707184831128159959461272383472788636089423093051924248510355655190272371134802122720302716648812242615680853471837676307241976732456927188964793616070895403617913088917057197375639958663954384801598486111700680945796681967345509774584625518489888016055562848434709340261408615873330116948681059986185485028680369174489776629333591623707950692891333412385121987023309986889991851024987150081102294000734309252788707594924309751550793307264444415394248703571702416883529774280398296654259443273907449533010219934992930803449937041692262755947440796178411908470540020654571977596206144027390941854960415871937037952358882515091771113981739949685867000539279397273467016130154308198335606508976097648851529025348140177442044397615387792888332776756709276754708343351541052613330254423071918451362353397210168900371293859302093790092302191098685061663220718774793051867467804050002970969680983112246591063150622393554468768039718513962653516753146646916804843742892597196015789836330580340994722329250195902281354437842390905210876828887139511540372569437375102893663189845255590811133171592263947688102761948131077356357546201164221426840941983312745053591260160397598835363366417356286636265514254327065085877616024239539576375937372545936453179845175287948504845933501995143167693119723991270197224325673638315334357531487619686716221520415026092639294883775237774597085911924218410385458335416714304497409567921557173584344409436372603255809131859606859243123484586016442603906930733660838976896350141262929415612474746376106349195968971982469945889164185711609987692550893096213222898267259218316571674904125520984577958673400335360553485686359600011197652030703587539287855141712193829671765810517368708177027421090996653951610942118548062088269608764355114722067312887987193474002192408760474843458755934383518087974849103701970695119269380457390872481760838640033968795474108523854057361409398225426379034682416856286004641994737904809881602797103723576553745125159839617148231848288813401171576582850555767867462761279516821683342398481230439899721186941090017759434368898621142206990581222247698759606087401332064164880446089205377832250943256576581466360509698942115258683721688733004577042501259540681156441425993738264169025658267576116171478287456497934280632882708914575688673279796297274208299834736882004444369383676795627573809861970916499129237306488350718731231371258158199847632459008816315381622090912411258149587527455921072410372234681724036269551091549250866215512519782866475315362583817499291526044592479125461605695231253687122999738416754955958178288019368421110840469205723519506927834964657045221091096351140880715318927880248605180372530701103278231268649803026589229271130121985692730651581715997294799855965919142729154624284837102310601455292659129365255067948982320788627350622503365425933864726379244547095741143810813893855748715616160111676001719155329610702772804351461939341085215861411431899602192347836320812926604606280577568027044112209792812255834192917979046101447058539734183580130594673652302845207280389860979193623607789172450530597378668848415172495537072614134258819864865077967539163344507961259043454657197694063630934889800819278935808649243289677811194748511428509018099934806080041170772070047424136556334707944575129957490537790061251042627901272375903816161000212875218186159226167763731533131507480499349247960877103742001425751519197825657101535697555293731830431031585835627063466316586048441436441763204962861601088243318649321814664569674489110809912284652010013850318129133932728890618241312146975467884869180234326891160997146956825248807520968953938571597806554484672934547607252558843973202998674361175631981597186500736245779835454649115257795362835157570592180639881257743810806459248884650824797389736686641590237443023603945344233578837615139862976891644994673110333504506587535012785495765670885021307755450972162598033361327417971570309799079826667617265362043254175733938454785711292915235231797081047872215459475178984278525085610267395855682272497083900441834850134784320907858721918079790369854857616646194862470337795194065533288098088483317764249228767918909673812890778997771511350940426747625955349008531195904265210453527210095210562109084148255478484466003964970922715855599968610816674706148342739042036717167300195298460942460088506231661196154811357242657596097846737588505860311949663850608736382119264848386478241058375047039523569325025168540052788437598747599540974132417795121860801904995918951380267726758147213866512924576112906370818799619986560439960547986154252792753096401878126104458034062485678793885171860901010095712331455550485479050188393894616554598349912641499834822058884720441441700283750227366631629048896081088279466881048298834345897413454276032566539202227261954548170586721962314931491150434993868761793481471194301436740318483399242434844270356815588358740129728760757627110093387700719555844989526751450394212720580361549454687782895698953316214877113763874155188455380388873050957933628644997934902102403747367197283088658226691336478169533008584806588031633153903544084093043377467154853059979184918413117832872759090225289946618853099989263333112090104756169598557436035472841193070961550623128433782928493655782485015267665202770507264156225424059095060904351217479750406294667165794682474470551922763226292824163572770373393979640769549195780771479545815773442906915541354617936814602543783660564062029605490202649996028411849854726273466130670294325742332514888640335194582652437516097587621348060464480482324511055083666970762524109250027461042748558777040204337019278188125647175653248970953294082076453480767953235593474612305691087325776510236127616197416415125287996423188854406230620992766444082706554985619325481521268045076069444399976428737745312231679908126239006102136648146646149110246772323174220556136462720422330779782244751787375661850677787801291061683401034966974070515163866932640607580694813043873114704429185169230530700471372009372854948844248737261987106059344703666119294367287890515179743579267839340408744109863400475638032440479569791398820711093263786108917661339967065082833229995412065265314958533123130066503503081949913213599826602348587562091054590191386229669548350678753587339221691222444865058411537260842322978991580876238799275228268225071739064449714881088836500420748934561014850135481718411386109089421364785682558077285245265603878700349009532467395669567661654234448343442349911736164332634970048012834333028397224337240508986545495499729854235227434930704498032636781994274798967740128271978776249818731210594275286540631817797854420371513630698383548696008790537130316261250988424707851917486487728758127710590448928935719272264356512948791496051169609022711145597573432309266808415610148810416169816201408649394118007184900721582705359561662132891692798559812288484460631130796565010326055807687945172327440532278377827445214129986623041112764481021840367583423831240909840193991052184839977555080969065604005389259470894274614617092926328598226399411454625632609347276333501343743614923373854715728558605354186727337387632585030311286785129417890486329808884925142755526963053818987945099631532305733907252457193572010612603134748181720500095330615998593742673276871227807893734953626360727724874190727937059731406247918821041660897941767754904832541097064545644670624043297224243585301221159126233643536710417970908158079856552341895406015945740402963732264145437554661882371953758892999430093553894140314769761553392710938345166292358835750539509173506398651627990598352401667732009393951448443611189941564555171723584092727159607465500730675303667602833054700468913419319750587450729744792550994037665824880024628211560527367052562707348769436245921065698730485093313259651209247956277407437654559934431915632777272586880636451089279949940236278554082079858937644542419096356398750111513487362143861442741568773306164774446141327431317620777835828363417724450916308543324961849149467178394118579787156824972346228768283796024959787266402655900916244388974826729378000848843597364303650263209450976108321932858384092961971336362549426794855092917365993583363309635544822677136811544588744723343654709123615067910303054601080706515313817674091681857559079958342919893257416164477104290295766616979047009233524284164967536802174373815050496896018582238703503564876018587797042607243371594502033097570009041919426073309749603075351651105009408455224887848511911000740784098106152646558988808353438583272530893505920879443285545137671244676457340917804255241936957575576804344057206572182950349694202639243624715291025248826505068478033852433774977894104255540027937418458230637488051841516661358042735302962690496262302683565712346556681266889511888617487902026273434015545851997092547697247853771340117202898208448502000533069124588597886059574299761155782060856660644297680251509524999975016319387074625178972832566443500137537139119617953640164908379487723090583518971700857609381895988617239722625790431470238505807222534672192557501531476856324793574943092200528668387808920862440154405821799205080328233938860931731245616750441113023278661441453992750568291912543909029619828777079081960655693994026863725353650108869444812740244211513087339519705893685501779126716152399851682478669795032595929520938981556572698392300417245344340186900739239075376544861712109179900321986572316671101494028622508557349432621962516095873066554172762503143864239832791451886694187873953412070855245365225845520239201955874966475365599547905000412418792117164867056836588218049631553745145171306783347243459232850813069412852938008928594701009115200745345859055739654561798975292525010780896012382965707678749752068889415571227664164259671474157783382730388261995076407379266884797809607809106173775213135958685067531209119344736772226411233404826634184973237731988992890704861366073626822829361753881621216659023784263718280589272885346044800849908514975156649125437671089269232211955536740962602415284693424881473004128598475937307183859305885759705111722266308555851789184620584349241520660843430951409209038149207094590139970189109303108860933073425374843109516467913429474957489333162978978263477795930034177141712473033870015923813016252425332767446801892689086427307652827722610966838729391721769032697344455190879759771621455644192300680171666063946263505084146009652988796730921340380776815888150857692801225075507175083251737568575402897952095162585403844789596125901844159255329451310523620868419137465976924034056251200582668690768841492714548645137905990650841807877922229655731197111521063368494166775858240103146455008643138402268697396688030386726682248315809844165253859229528159457113783413761234348230430484262124970637078931375120474728047482143869505416883271423812680846954444096887544073754803685434165194851593437342927709185976595595089932110801429373184942997140334347053437173061776566823727013118604404809526170133910581409465075690616166937236245307763578404444317111247878469095868424685247993278092884411724789521231946441302570896004632639370989071645644833786478730229637414070798624506930059860715147098096511387129385029002530758547092339826638788499414885116603367748778798874193710921984011219109106254486658805716139531409211785563629656996976261782925543550079242257895591889641526301799677399442593795806519762135468824592254396561113802758937106977609077053838743604975029579858522903204460117505009469432624229020340164369270652496512796933776361324952213368904302118230933944841647447395083966801879563356303835455692742714060685945868465887829811845524306321123855798687117999405331904873763351461544201935089381411871305628698215836056319205450626919553911199892259643616446062919072911745174590151437898745197622265768730510818039837728990307407443334621265391598274577284073583968942432691925151437923738594485963923816844188423618302389063956674797930481291407490223389867469838414821920036149720623500201410629882381424381684398796424639476323487346802235996327060992661100567988249155529864275444508037765256521526032412082426373860706255148992291656675824434729472582873533245670359921409426915689592033162058892331356874391731861398834927032158072579319580861862335566356022854593379136512538101195245570108457638081016366211093408795663596065923274441373314655293231374557259516758503968910768314786807181482291407320553457607071234667561157316942376156703989073657956921268557823073526792721025256845137787502501996477406467046883152599681458406276576433566203300752888808367102782836281359289218125585661262084807437814539112054565180042906836755492702982936260611453917977299971068251845045649003699673403143127966223113164168406700605017643133853514840903862631818499689977689243078265383234227829440735539797588570874894916338529809749029089389415367258271789796396686827712557153138147654827144331510409919226935079207195277588023055215558106272223722462966972765688846948274719891230991988341794299881027549056989820989304834665454919863519563442007781220774585936699284914007606400379663501615580167295232729832644983092366510299191323787665028067096495692500746052755271609245594014923857559964090623689113615515188626448747160366999331856932666667258279949964370814690603017767709879830433816795505747026598663678962645558921704752789812833611350663319017909344630665970601291936451587048976257147137098998535355471506519299337991548987345302215419179064176765711962249101832619390543136199560106820293854147306252662577238259400436544397901251695981151643528687260881796391758602608298023911188884710446906190066760490649400965236488710942705194406211455088098244604079818918739706339860045859133680523326855778601558097703883373545859230936964609076757259582368060702642626980910840724888734593031983041620811137026871873953458007444641544725794867189605602070435678550866020503530625939132553890168299256100491223828908041806074201103499388191097465509115418892563021981491769343962431404758151826230872400388779753646457069575048135834934469511448594713161438853792032744294213553403391313445852184207845077078098641499761243280073454047708125576043118171141160060507791961189903158353536183625174378631284163049747866574337692825013579040589676288317738249777595843734556463402482926111608569938903875709475051936478435491033041015957340741703819937168239002802615632536690768843310340930181788099138792710239409344542165533964448267049268774131737495898076900369096941817302284242217535061548017056296014849919292937585801578995234511769794718058106691912748072833206750970642479206995329761636378228764042617325809057196868394061298814282172644297486441903464368140244499245022420571588158660187169055001768381994078544009709079371632036165270117680749497425483971021569251594074129145596906458146717209892357569784296163200154059409308485713671907946944872027236811817407027624370105023615509711297778995646124621058248019887453828147456662980194201400642452149776328544587482665792591457694141586561168038018468152281146697433203329999049458581233727584857691667181612541437954615081968704250267641273203524771253980197708448639807700022921339446270526114182325106794919027159482608504298355421375929474545124242014977966273904897122514960284982552512021851955142477588286507709307410508752570720210787749207140025350536288397664220363993791850210699516295937167261350590147538095534214047127745660269634375299283943839302224524843363769995682360726013508061440251404596778366527782855892273284970456710329927149690460000833420158380534924615425410551252312739358535034857206942602645982553411672175351036194025915145097590262397600608353973526265005871532785682510771724638405174798144282352262921995057017499513273010558397209610904358181258693859443575970763294459140541224646473090002213173208768915111848523011196968922253075923788753930374438329090614689763346525294812464584325761453570546466942422454777433074950084616978358464362311145847411273350334741877435175350429498385207029875457543189905555295051659885973057646786421017812190649892585379426616586596134615580517495764271661675254955643239335193038655369147934105224668962842653682437036080324007449131796786381369878398876674323013976947435380748156392005897629283911549827590525044508122931693496048832836514025772034018699656713487013388172490910092048658256040665703426898881292874808818163265373478351255351398165189212628576046069418853710140694419417238521849332249572740125796307652253161783620451532793542279306696204195237306416742939797147699172986217002640169911821552667732102228210654654648626471742487744369469669704324734616382594416254866609133187859447170164237436521969373247616870079656253919081516047178722094349567651424778416222286219879267365054230253876645304010442673045906086747212568294070589546912317017317924569664608360546451741726235405139413968228170915651451722847578216270662203051506820390623483955187962812801980913864133558386305721998413452460661572749752544959340979882320456570676290812209724591417984542643115670541271377851686130903212017828225580016801709998689518712658270185288372105405905470048649743110985856889351221308189881100277323193725857590162974906340623160534852114778639589700207990502697930823796881491484630377986496700802525430486466222616669930359444796491833282951034214446947178451456273173041646807922791915721213050669363541156860752001576130938034836490415153429864256567007290039471770363384850704944013738717610804881630369397404548626460896968377527683619044431766552587365224097223626882016702534854452530041429245079045200264405911675903458188870610805801705795616153391864117511606386791864383442013064576860663437018118008429051290486000814135819809496174917473009362580340390281874429645463754850715202666005697977983659769489944304340321373055553235930414025699496030972882533066409119423386996846609897728848726637227024857865539986016059663286299349958889457666074795931240778990486780905560053419391877454369536945627105916052339584956153248455716244555218206980310140752956793455632569949232635746009027668893620529480510705499831596220222145850459710578580896701604298503929112041489392978994053590927890058408020158976818009799741793645363536189202020922468170160241071106950570359514380354020585456692413736635029079182006006380861158465155459769669927749855743203470743513306492701907738903010321517507457360419065249495631315511589529336520773364863983506237914332524923396546006123771040240241746681893897402812236960431048342025391290832102865363340759328892634889871515734415202815649669509916474768936384160107345213815049573318752478661190979730969847423729967924908134479536578076832570145642125521523088973135429622041769510816070839100616469295734267215229121653473958852330476040784232586693136704533055521338346349976977597256536746048008816699872567879148765660221481531632693050347916327463362129472575603154558005128053214244605499216806704863926095615320678243220895970030380499265373924846359905306758109313495236963445467519832256184817547762148750351943592544096099825130739264025478015727364604462224946588835584261064316257356623341416593542446986018374567030070808110614588911322493411829139472704454750118161424198835070852565529976294441734971976450981034384042362236065422694460570889286965544077109786974073789307459508054838024956761229846152958774976531540873866464261513849504904463533353379303254127685374987061385330208767100084069344633615355326130231143128568437967327395896123359768794334090936891006275685650728267576704720533323649349065314083203824917792842663724616096621469996585721312616534348786351865773456863587259643717963879211544039196579132841094462609809158003568342252883520843646701574626933614470532030061589254191171643022171638130036744581343999176059764588041385482109426837577627384025198545130547305922631848390880032102119197230565774148898390299357610788123490549920742955519144447361237107079847305805788761302378791510631920084097732967192012739621679323489286979041463170182977669349478657800513341261174541893401187160642679835101337813762365763748689917562306511881421331646690217831736008487678546755830958265203745377671828828585211890620317723105322210249733121631848013199234080656413863620963597161075806881110526941359639921435457950168212592934855825200019241867315638959247097174811785835916024048331445352048737025517539141176713623642457705875478323306778483159392522136052141007600009156526676872687138062203930505138621742468416954832739574118351717708796871037885472194512365711214635813240197863466841968299227332310753309698039351155229237201319397846852198169715842350261437630472681442824792311119311740027644019765575822913907017645439210406222432024510203021857828495295812141197320717214392824798150686256789560940320338451003491402245251954442226500298425309961143596155747345584977026002177593457740478473005626603853109323411356980925107314394708324408060695136946271427800644129870714734352262817176588400033797054476305285494513379269218951901053093686762194402222023913372133301759105496543045871575539546979061034157004198041046377230462368382045336551956032300247392215996590450727840515594492466079827713485083756826561499181322214071910494934741224691273050502367257771479490212907928550993255440944600387613655262471646475089054281873597938964198996021873442296804842339239788714710164568199154872539850707995775525022546516909470131092267744257196274128915979022210990164719745676469367166504320179432301320051106615230033859630053928260454199250077833318361131516912663351948825978042992157294195404505495680863738567651651094676372792010546828117141006383766777014786133327287200874354313886695407072579195786698623129766619666295356842138727066570802439184299714981348723346816810858489910804215593666461808229776288423983612979386592522692514876389009305243266318850232146719438502832893914736495544700634167142383406425703388797050563327860924380709695201225095903324182316214979050427338831846260312931713336859380775848052785496346057915556654782415593099770110172999507695789144202641281421841654147006256553291492071128163837170104288685050540738657929555590880822115018582851314260592070025183098418488196184215825378406981170112774140193470323887621285188676859482200037391264880018615652901804962116197560328902116291165909489171895037998657327265387599737249771656701965041717944921635013658038225965650124621908765544691705877810157405909349857202981250499646626682644230260276158118076960501814469984042493534775215636254302531795457765328597647664403831093770012122154912373506724912506342425581904312795887389140783661200140158734385833511644674199717880118813711436029309701801484176081696059607775064045488972753150273692473371955092823124575651657378036749342487272408403130026361883233247214379022702655194386476970278761522014279712681761684053214128243189519218331144797757305435746547610690808125559612940670782437460101388007081193960960498281203270489342180808933116808377866647951947058791863190869859648813730698986499620405816378468585095950315782974032668600852003916994120994669679296763822031590213273947679296311195827225121265499810570286902470027612663555136929725639728788079536472900161697588375968991808572642236617176079231905502929058847858647003611559283491663741525206506637011809655567665590605801368566153133257614777206197479681291293328529589004763531169945803389925827852483959897938348958777927309053208507637261414363658730708264839492202896559978260321898144222054310443673560066093025421166605076632333633182002304952218488851106166892913665842819115653600312020443920566387274667925939891941925668136127353982453424015769856873973813405522628633805655921313621512213622912480557044606421417839680996364507037792998328121977697013015554164833078813685339792208655715329413038084134792744573380538149419684966197549268798952856255471268715031650213099505276093027775342077883329161857427260647102146282046116738667371088064773269891357953879714493794770513727583300122372757617683471445932862691151766057652601389438503455072280382839092864468159634537193180889814620971770796844940987347385082460967799955762283705762681235655145531619835825357481451899730964351957613785561134306206671762604817812781282563708454531517318536447040138606875904744836463324966750835846589956243466460796858113311016854352037011190857756930613812007458411542234540099359821126267527126248994794721564435152816833164987164272880499361655830098474262716875742801907370473259595085197716579048288500706124900101369079490806698885850062885945027568631647299629736619300877522893803211159039242039617332614182328082180847935575637105308605660950899835662862854535518839185963810128677091986614501085839210864601646397472613562563812361507884142197801921943144236598433187874283860603734126949688806449750602167632861400026292234208024647897107619257096340296028804902347518673681566097862249486579951817217815027757760205515010937634649080230520221915848364607169165116073955916933836371008221973005730177134751285159135832224528465060949633984806987675743397359819964127963565889407692742739121351616636669546752031284374268093899816083809766169293009216251788747756701300550254416394779987159505909276550165761981793272666876618246833014869703114663773283332592756351531898062064277561408360205370165263450079905633477001231286921678001912810496697426953994646049700625544695988226179233996584299010832403045316228590310357056608846911930776746140091675173575349340217283416195379268890966516154981024296127244254499733357783290353647894334837480602591988651585111673654930086655079213170140499794979999171559271323594891026882378471127387121501083070959278148945765479799311426715804428700230451731827090928550562116214193511380715630101754804892000378707475302764663856581168008694818306554920331315719987923194012697289640894485241488868766051813973945938970425297978520209720176773637025640668684413222941516842473403988266200096600929944611309360361475461525221987732261059513084849196211973226547194154834009717899259924809231333533435702925167427849851135565290799956345137313566592264361628216365820303144066163188986957668510330399047023423304786649611562538884365913760438470600694528578716302930793492892587494529703894984344568930379038547436015125445178540234947782525879697813218776776189816736054943469367878004392788475605487226628061563449879693364067605032981543406578663390192921761147214037530205512704318328572791874543745665531712695161452469949769242264532066748041919647520175482347257739394711723335325989444878148110429380361521386548002788557296329599930259600585620143212291419768461048572418168579345497874023376591852856110049094119442121390359905280633031957743192782831557503934735799013489305838915231463531531583788008828341095565798672928643959447002084366392615084478846838403712288022904880783917440025296165183672686602419735688733558780846903539400379456241223074623580634636325456906615533988876732585917361949693601690438104000974179996817459376074172391970712455092549027934830823384059482607348916260118289485267912306124878335921003117209564423529991475582235651755621652342756712148175458598481587756223735502533356774519499097990152464715731565940870876784900957839082102372009754673865721083854464519277036269195901768626542545172635226935617818169126158577744237538494111195788819008743720679490781260373065057509167853832259537351216320290303699592925384323945957916871255036909227088327551340217439257140912909075232867388971794129378861952586743099914235958745979374608378503331899815475121068911629772347516152581598767376949505502520640625503425728367749603932144720042627837046809690918180901515197365450647575780679017506270590401882314759577162302484533280143628669850518425073771506855363898867852930974880178103372760924743007829765665157507874031624095969341257117303061447508529641620395808242776532641610910528876456232011393717105916413528179543932337783987449076384161681557017335361706377359742443840764019014948724912040653059886630709152141722504880635382080650887781141137830024947871709793546535377864576827423686364140895459904433210609450129204021846328647231191544422639952157562218657494857659148759581755820424627697751625085286675600411991965766926886674275026609197542806757570519829708299702758091964039022571971158262182448582725981481233968863438851082845877034854120903814408328206592268663086235796266032896539372525635656005691544004643668071818848666644535517460288475939332252477945116211974064173290235152016704300024637923832245034805555394370644728496416910731354738132310532006106970246300812924119763421505136574443005956481765031746929315369410763524153565920722561594872344692760220662248980774981343400155649356201959125600336927741307593338070566767891887851193383629221242803881590683157240272604312927205737795312442518076058024409067858694858134414465661095479368497632183222911076014658260962986697082055715352984905010277516068499842558762057924475950724395761122249731013178242421336647775687492039003076259228115998122981742618004879870814507748491567918498386547774451337387480387046148850282774451002625681484538266361809996229597786094420979486038354433340139824616129095456229894866117082532086941676611022770342825668538774742482682518000488117716993694619776414195126809292695263441208996382479915013903611662300258832365743332365684171270006838423272506365550905018536308443291706652552180546127552777609842372168106602808132113387548793831870204450522086207181924217258348113354657501834844455356657494544936887237494782576588745101967996563227233560341480933824898858508939982682676434141786316448382159285856752122844049791581915225771858852049847915921214270383973955293361251355105635071947301374635080316167545483375905582098229892967855802383598750058276509818982510224209319020483666530169822557151391997629196095796969271248674873040991028953204795264472107585669218608222563422261554877020899750248563107746911339309630856492288758165541489824616675715405977966748513504724645091415225454797933125768832542599877381587223354156181225386549053706623184705964694431484440369813538870679943499121858931387563133350408916975140134621181813724544726044911223819751078378423239491957405579819140423547789745275238850627748021708273770834740902060998819218584519564095457906083722918795243105094006910458611952193528045595980843142884318108868678278022529234725045225724387312169129023321541840949663482290008653845031100729470090596879914817621665979517138080822781126280925014773297630648707035312789780487263856422903464148223477094981531053464115211419287266773818882818427088242622353528158019330044174567948729375469766622892329097620303664044835801064616148869522970922059687135872178301064063712994483273037107318032543995755077279014456273288392629599456194864361652659497221580216283720262303400527592958867347096362307803685708635030423600695397466926616933998311218848884503650339985688752734247448464917132293411781136157820566226909888849357777968329554678656046573873643761858497585600784400063940363235821260129685165605927321971504373964917533314181693942580196538334477377474898136694185430310295559299713575021988710445171539884238141997049491788090323945781809949540197285934637150887996005601630889411266601720039263845285789906461785324274637700006940191406040231307726071794896149518602102162524754030041175388369121647795229488097786484411360450599324558155450143400768548602467073415592729542637047155096615471866616781252790223792730294574130597747763312812811693135292895321585259499999535578044797245853653481160203153600824186910184576752252139923194972221207184569242565405984854279643385403585416443487726767310945725770828149152337880944890507102430387817446129881959518038732959000100087981737972798348306943957967774990043827948901266463816200488075928873923409351214510460529705789002996149834117807735632907444259806626857990101363019038123368537634571465897072375707359586089121753535254630533339548925777944409210860064888073195264888960122580609104321629129624611185104491843915448131948857863526537765391670479208037226985737446024143078158874327887930622979888765069357230212492402706058104886683377805428317829285332060031977570607357537972438201603100974471019837884297939300608881747680488134039359716532405074661236007586032518732230630575795912348480465578509149906407239879412689735894873199854925090302581651583188988511910471447559792683093191419630480129108586291801339557414975155912789596944558943487112636628660843929678375796080716003752254588841298357210318142777035968330938502476090433357724940436717805112767595829452095016986295542919955871767790067492868601015099907888687295235472342786995834750734831039962517429628215113909625901556332668105171196910289745510727692784299033556175858560961403210622600650807126379019859646362916071830358728745696104315784671833613869058579724243015019183714371911848819927961766235858212896588777128272204773749048811186899806047762043801963348383111282106648297424078413440331063151863740777550103350757346636454444425803832721451528976704834649220414842803191180391055725951881096474916244418509668809920521526392929973610461293045355045761358693072719450070562520572435685732376898759946926089958573695475716171003509547350365416144604923086782646402036401016677342262596612564723058327139901005198467367417454076052611495154738921880151054545764262185106949095929753691421832169716916215304602702833459873220003983850390270739921702551481082478135670162023106343242125404402807547171388197076686873469313256076161589930210930462793945750590870705992060842873954367575997348916024277467035160156492491997612608261188628460496512701874711790870462698879878453448566603238067123957894710308951777772971682179416046545628125400183170975798625977886800303438533420734408346290168945634279348732246116933897128454947425660475408940133680494294838432457605644819147661655153786553171952031390671137005503715999798240717332156410493699163528030488575487564443318492815984664589452243571128274587733237220094076000445697806153321706996982247432321373450465889149954479269818306167943168786679336707283965558199037129988283461195355147865835385920909210258971366229553352834106224833597547508487447500794998611671417674817087683985276778023130142486049455426400439360857576684031523404076488585748401153360303942964705577811544440639738529001943937387700418163660487702340205593730568810685075926149783928437182306527309464775265690899774048200082899045024120176764613448034021233011350836124206623904201231346649575661521056114643355344392223380377034488445152536251377634523533448255411928019709484920508936101586128656444333470213368886327262697458625551275120976659895512541288205026434778850220087948226667803454530127299030150702597921690564187439508588583805208818528316977378679760474237573097520365485642844930496492533445141630735445370845131288783242518400449239029084297828993424751318144753631938250055281979061844531030437233466100316652869405733712686773045211228795283087369809880825297135723283415282658575117450968425955144726514038223401794614353054037300249448711079483173832831828181623863028461152665381593894868206124148265203039448124941278494231543303479871815291679350343999504834979590913398978456566430291257466207814232646434113882336053545161802902280357690887994245412508176233496005846540927723047529215772604917888294203597618527143266660352963761056230628010235939805039657958330759359380825332742067726385775539437367045213362672105020117545901051183773522630955740342936036343105426719400409272462304332189750204574512065076664074346045113780391113169247233889220031383532014967493765391183228489635797560877985290614190976017315329215381958554772580154740149707695476945241589242934542117995816460268999622632890512399812199805431641926060895692383650949907338190199438932646848202048058763756371366301574302450877015653604986188638798317308393584602585663359693548024033391815185407475321872769823659555104051092234497677064237420604554188001702048243524594274169454194495712065472021453619968382770057527409164975470567366704209207529120056163601956251192359059753864519571159721456157443464127173857977069305314943665867489356303758156333349048921606931564860184846367304177842158407622810859015601672157073423381550747479599717323307055333620855815131595230356162990245830845544302154021135096133467935947960768615760054623993186082815886300413356229402744486355289143730205771274647238375210599674376754843973251414652658880644898906271131862048138588676812282235630929706037060157538534877234647829847779234006040159008868453433123166064693828839603069995322322664952324143959943755737569671827026393103028377131330427005304541112381305904510837636074397792721550156818905616615349395385148433605599019596402119237135315613706037166243421766070693553078909080639964362957636322415595514226656730549900216026437953070540349496398795509712271731954732927980191654028510608051988843666318578808593389401010265571784919712877985642232025047007141466123042797171895142054042422171700903974134716477606176388898149809208221768677082496182265018425244233534167788100533593797097631077313431042883446987245771774589866217002010445964624020298574430193894634153818380137164292975189806787381656207564380221982950138841999584586490687481503616609811538237630796765233058119640187007045257403657391323236884943386372764463765385391035937237056226139913453596039374533311337151337168488633160261130393428346549749779838646411489867839693832091495948164035872539000962372235122592597179251203687255974124910979447591855747479599816963743549238596071966022789631522621728983378098818122591503066170150909628572716189524465535449640026583787997294288739078988850048414270981433349584176534411980308980972864222391427901362251437994138331362720060217373536624315739801094433787197939490866796659616322279546526168698551211109955221598167597095566623610090151888104796822484080256129664247866201021591142285445850282127224483607255953808469544556084641583513648822907005290798112820672103194526712682425731207768199214312943512758380944430317329742533690799546498052068757519698743198353967278997944901373745166887691553455337130931023798647911435815099393381701103927227220849117008105453982268251323278179528798392259771639172666759154686046242408499281889905192933366599482424415958500336907871209073956021001976473374153293786231194752746239308012826564163375641547108176603236264820192910130525563414593796855780419836914269089389879498802735873664230151097968045648456750092654046940174049872402089450802416501770124232379200296091696941491147752713896528998012642457916355846555261393331350197687186085814633318370268652238908815387802058103793611764709221367417902878573112666727754876045727036762105007803817355517868077301331815609442906774126764092685639403293802531567480257262864482375857129633897441081001281845190121698792286423638073480649894093839438872182626607243557988082424656220769324065246490384482144792066181505336591430561098171385449489431104012530992881478990984213764104332291441042332635534973744832510321415327304750607956884316337413366686341762218045431319875022444974825547252445174358200458001032548057226945435736925627293577386386651400053845102961022793961676631870046722262078997493535770869955383236953389187954568341852955755622890751837581849922770363243239669059164553480353238272215507400221804350469865610562146643368890428208409458369114641105090477904058398633391967486396229685169884018279878341820575487184308238511811453670469206082200799934113239126748995324517251315029136002009471241061143802056009823724854554296565674766741521744322994687296085462132887454376696602419518763868421343928984401381359146400672619592825561602187664630194459053750833126348177451732770560017458562191512400258029815245573766837079375156646534214079811412286600160193002420302313142076827578303667686574647158356743666672893622999105247754307266928161451878681700835042829429410810385757130165974166499175583377022745779261979241039528031618125410024782547815941628568796320232034352122610919778330749094543503517507025433355862252727925925602146873866313437201777680840349652829688386427341637969618653603013692715484583257577668939140578743130074525164873459063025244363163381486998718056229275170678270881134576823381640980137015356009166183390688264882591439882960405603135996844158830204640366545668835143358630095456024407846598215331350012258952264473083739112040785365041101182771663332944950529731129972380565191819475782612172370285632702201106883060176779474357643566088661534676053080238080843492158790907962615550553572031612776816211523785362185133375577209705224981043141122214191621995714119628803408486465100623927376375627889557287334954138729330554947707414883707508953926093993403508816509994888214437496464850686389798984952687254921057554556648549990787018137891566029509590443338067390164533788058915849419339014524690742005407167510512047400230788141841695225594191079127489547780776380338743175821496810059452349543193499788824747088149746961250420758511267979989766540384404706038204229910695703441232913896790077391302887938565151828125298424318528580163371451039399231751982762029010511899869519120129493511457867607445931905835759604642568222807585064930332780922818365620007740916369774950460452404465980356245124160735558736887818535597941764773071775434320394222495003430305929571572485969127078421751908812390991827788678313770379985663028569014265161572793663440260842720481516269814533214075145157196428175885857963547434835107113860210837989205359634504307002765204877721075158825704172486335788003022143963732295777329051046754550400694414091446008339075436855932013154306888997126368776374408181998662859930033521343833551572233713826002868893863316607344422150033910339589739379883262742013648837398066626337972220493179844047358364543978665547137674239035667862672028542637250016954223329153394183650328245852280769969461024532436643432771561503619976403591150205319119489127769299174455883545481632678910173637574454541080390538109382923410621755180159051733159314922878036430807510736584202844837265987619796427527975614633590771578176418301422486199588982058507292753281881127774098726221978702567451795114821150647086555981658583691300891456897382945423098837665567394905571375408792541024985296131006194777674114634549444663444115393680862162462407595370106699640179571066458350198112233622172333699704167571046009428154463247588545534077644171096003744838964484225378645774074894869694796222172248743809004498151242337230155168039641977076293150608572897492544257342405699554140692983932593836665707882138986647625672146684659439205609318335031283559286788573651049649335545809452099819608532897265664252251376755492386417011601551011337221230050711094279492477840533698953207272007778258378928713593506414792158183575942498236627505217411546321990472097485127437415680088883874766867015056259183876968973381849749177767259683909695492664012942336431265215721101208447232694040456520927098001534516628606617877372176760889178414736126161946559511712423337217529135995895696825996718395197142460931314580380044505587098954349341483260778618677576178808339169310651294802491491905896281232053750925618315951545993690439216717223600517237029701561996516661293753088187966043676078733229402635607553561930637099701385584358694703052105441914852237854189959863395923153883686722437474350238143546593883761250205520688264060534647265708793732234171851121246297801824873853244699920076559503799086962592754469607713489803578545763335708108919375832061490136376028853382433510112635863138790491404728948950100838877615292415013232353700366405163674222086891869566095456007373143481600493668472377346972148846961577350413839303922305029559905216951951141684601879523819374223213107936090139875661788511975345783110907701585985632754454097502843603096671116535739453832957870373007434534668247609135834617110677386902330363977469380963273744371099138975277175926777460028718273157886516756723954516173880076184025779537607824062469029602168654732377336503704154709436278982264246821676367840296379853913765300096101844605658573956693961115191867089147528589589831636624934387149226498444222271353442793696806209852650132488904060752318322229308626724480420718718475547582193800797382805914816117738972725520310141644992132882212205162689587233323311315570334724270451615552851453870069624736023723882044324773501442099909520799775608496080869201121593966276029294043951232794421914191637493790617250014227304209581780859734304043122336781260479275020829334186409599707654160729716940317702934135684537341215775230498893737241977493422901613781780794063395994341431008558055484240924752616138968793228373194113655142966501106348452271190883219880432923138183048067407968645157882766206979365255118796717789647398482836243989351345752572748999230777746762874684798605831916575687260474366786066253970040327350702766855903203117201489223192235802137168836662613687474956080968638016582788929867737807616487693883121817020916498570082191973509691683261198222718839754135986241896492022949443575239460796273981658102166398202322923296331369994309892238334578455757126412533939189224840599728288426943250068463231842494699868511761494844495914884481151436526867459955451001381423925279938228477528641862830468757404143088531338145056109119185818541321708009337744261119498173620180492233066447941308641674401218162621802714947296319974478184332122733131719384118307719199297997205408445936465184627670622211820862489486480816042522378407969133157817470618651181284355391438377083763295009500607412887731820776863844210490134056618468342771461828596528791463735746009437014523556527044730627886275276387669297146636551598099436724034520194134601870074358282991683218752068543102545099068924858222703866332893549841219057232164908673218404522614854489168163819047326412531687274971425540567792207220086870431041192502217192337728459832058383537711100596031223352480716470218534370567641044307223739440418765584439358294870268132356001029749302667223376302549873470803158367590970779909270262374821726994100008160662024842819442690945881565579509156887983592598166707993490390343731828549134174922544451970454711414544188968462862561803678686642847694701905228108814123673736452310092796272190754461759854740791069319561996182735461449583353361928168326620100694549509221128962652272373729751473125674278518908189298331708142158736493890914423082061797298411083589365866553309757356855095938719370935766048159876585842519484285648845957322607167309334858018909199797291829822043093375897742308082752703178915132396132972509297085510933688819366044686365752227361019837815572990705954134334216121689148333838903286006849611290666482057151315080470476818675530140897729093746558630840864257924186144614119687425847562723599641301813429918506028475443352259929440574736625719707791127892685773144967248566107320674959840880341003721319812047561703284912653799193102946597762737184310007579308403433612949398299243213303894858369638238885994662447193946891390246567980157504514318178627343116050819132531894277713215608069383255960467697392024680532487793864186838150489852819871355114087867039865951905534196965401809136307892711675973553944210006568328982540867392891278353924874543662236573189398225432503676189982761673446518796332920017187398244265837318647970211653070537678647735655674922303391647916475347521366888467538245499042315634837316693883340689378401340012821133788194854675993133750589611902642247702469164006825515655118899262574550122172620418773228034434348281774880663599359202032397518970336785342434941606688520785570296226214174433714146775206414298581777689795347548224982219933653733905762233513400231609816458972741592799740374358829711224772636851876786480732027083111402032644836795424603276422525173038094125810391146921329341522495583171031432090204123474263392356993213987770363230606664106001221359224679087718899569286064190553345225153529916131204997864947892506983622277562768836303781944781797574414961172547010539365349210896463829303931229758219183987793103529703908966236945449526168659311613327675838699247095952010414493742437533673186097816700875345734580449892666686188695040771818647263617127255727762608938752372873311867337568698325366602535561937184938708420912272161451058680340520056714286762594451510331800777346580241636732334286481595743829571786450409749889098077992411527602933967286674583208453714903960340682520724746240582612903779054844762303316216887199495181513070732907059770529934817522523123734853289479990826649552739523230853443908672830873689460140821412698835709735508827959395090887022451555039878477439350556231212281337682371449608676215047371412125820619738281507741948620273384673118976168802519593230839388442946058495684533148413016883919854582200030075983956059282238938553363920998982157824753279364391395325443024403727311625676532441668302143742799015902881237178422298617392496693592738209500221694608443999102695312581495982034148241720947356555832802267017424573600155308656433206119773699658666633803192162284001579322089999239593382120981194167795981380537882889408421876351135926217827736225213129363155917230520570205025720564887517468196849436674244122032965755675354137822662929988171246452607737739645540751868527541895080063581113573391552020712578284237246031487885891649159113574635843845696578623026097193917641375348911084858943684511562445961906368577385804600299632595650702840271827686143250896606412239395375099685171538173843964384773315155186254858127205249642476299174340901202899789911019990771953517154297017175912243066156417521099195403224998774774096503473403112228951948825447647287645727235454025497067839368161721554243355620033599385362134570297876045900313760083000904770043928184847158688670941030958725951002564179782551715754286368811834145878498998910586155810435498339159335678045581607844427662519465008410663596188144161930401926260512280349134481624787030450130326556127780661379960560363684203054105167359159989109304484984425230638190856629700997041368210185957530731618504767242836514412945066982683400529105045274010730144579457285301223583878856301680507908206914922007169051116109960744995762062430129481166492648974067901689279117194985423421856130488771950214434739035103531876430534179003488177985249373422060228838325678243601042370937786136709406185506128053546650967182584793073330462387035850410942668809768893774086409479277405886865293486731578099458251228783013433183452046098254793436273395723478117670518150489505487544033116874133872617124299811014669181168758245765260639837975565997535615276859366725127041295633831914730875064741102948699583070795245874575125895830933345427773987871064305825160205674148543654539377005487998986580855301577088739553375739197074460553952499032780694909313311941996434878770049279238163129129475458455979526774532516944707573184014509664995885977639712375007688541661131221931113165108205220615843337452415474881818384927031325246385425117106608228687561990968309085479292628771716119126357060796903817295009240877163382775537054655159539020422916811842076772983160200259557396776461742016203833740540741701544415977269910640375044787611677526302204952257839583950465758013210158136562912803621478035462275042393853424198391969656673596899679678579956026591444715067389496010574517635476805919887188897473062437360116665833615702683375085218851827890178022043772707115258372993158889704589830466485288308202424309123282126932313171935445031389064731373844822966221376524749903767920706740687420429883786306964878967448771748742030368452523487948941067223316305213895519212852309066129928731107746657622990548514286140850299521072644404879525434056833362243319762219579680586305476897864187003332101498167907697186224455508319266474308052177225065510980162628661178237386413989241713489497343152702163635903045999783990662434480312823410770724152805372797717902569613054361140686376164960977373292436661854035590522610270496491608795022846689065200410086204838845768089212952304734074004680128561429830152266899177421683660757757678313803360315479240355366157767828586698731108169399982652664680338309548920033001339462081316987335043842724816990198456089937084428376303678850352760830678460554373175088885568979159259774123375152726547993674838984740029281626405728303826645072287926636130882772478307833785800343171900886723412552633627419882066215863813010567296712999975803444531102511108681931959601987705345737862541835000446610000842052113938846271495175502967886058384601717473542224896525850813418992809030614088996972516265106121290942934316926543393206354975182653989805633082945365666063948927234717452288060799099522280883079184655091909902267656788482187662213615525870767996221513502248052598579071128652041695794862196901976633768243267848441205051432698983802821523567815355282150192075742740519076737369149476729646118701943481455765893057116796743761927832362307302125161176551095636717257921525767423327394848011879162525268225891457967532319955588878995006093298500235810128900093395055176123507152816778737850777339359816855471998905338362730420424307108060682337836147485993306357437202684075675743194665451414451910305827136543839972809893927776114757386968258827737555943656316284357881298693764521913466519681774228537282721878191685157880525686647838052462506966349665485058932462365596892500633108871567738900125489777803228848434361199997518478067710615731326209872209277845709395741588419781406613916031435213651742737239566808580987050559636090032210214796111851134133296482067231000702265577037264836241438368094345867372828148121990559415845535683950463448063038207676979029093233101716159741689999325507356681010725771885277899743676949722282687636633155105584887477565547327851344189451675509686606365922101429328746900014006799896337082079566680071494718308434496151983129513205429040380011389117176304676681584390593907534426676241503407456172011376151387460903097655425652386285295734742808282826738721319860634274243351248547242707241766571745236502259671755649037761233252769653312017086369300218809038811577897420164452987305203927284341155267412554630035812716635035215088000543153511366375686184157697616479252225015397931897279873622869450355189798699600791671776145360812361750547507820043329700541492524945098770467951214599416046869109064137357133624123109662934907794411532320352282029770794481957605708516604475952537487185839846485208930516426036883543453559572592497782932238825061950932584766170217077196227674827328132927655592266468745551091664150365646274673417380342522559058356069168980110542138031896439024082748268239162802307098535525863590152035929818072888936310370477229883527568815710182309135046133384092854877720566336717386832490966259459604756335667447503106549184378970619440821655218502417385163386421969356552583748900266081082499188355917252537416725352045337059530086346595529336979513639025142493229326783705566737226992688111719224562101172370852230590697155174689137625282299942400108097485579511139111380227042916664225006170198348529723080970923624384787136849488094960167032046026871229061242001160532999664129087367907221803284370631865469438438109516448022820072646670669603571628403350114539312447878169991061224389921100013574144883522319178005868885228161995264548555667860212957472086558033103945563660335332976621417846314065443025590257484053559374914917472365749021614294532922800260140128126024893192766922009512351200573028880418156375013281005889018001364256932658014791562506822063952662886855619089364954185666015895610108326020547177417204255090275281744457878467647084761382238202996177706651077059379587294677536575477020339911042086132187793840457397864834683499751671924948314741421361510171418779467816705063890656584401261068740921024776550867697951760691735151597397154907649160463661582350968867433754545088656417304941623012053475993117648704771047558365995269215175264785314504500869808392518647787879538459104192533197700496092974988315500578647417754926480926495597988296039526036968693565553371186627776293942305977698151295241375100979964392664793383776101338845882095546905443696976676912391273426573868693225813406011144193335538339860927038099142170959882426888410220098841744650937544935737360132796218103742883688725899995634751082316390810854654765983220576777668443173267279751143901756189397237214186838930641336707492467691896468449201413518004762609305050849803119043848863713396585591755011028682068133297896724800607542204046701333218109936235865049048671101852083211947692955497315860965554473593468954096322535889127965037217382332791831760058611379423198193884402812107356610647246792720284525764124540950035246554803623684250010158879704025829462361924031566307588696026565010103845458075099233578022874664904750160324738420923860805606319109999986234340971814266433223106402179631206965129261363265889436951307794784866546993745411373435208989172481065992457728782486990647050536077650927076595041349843863081544035740619437706450775664541818199088619947270097584341755994359217161419291332317834264820985133000523700908362226442956482742750400821802292619745070990725331649070679215465200689963502940018487821965210278167594956713854096720824599746598229822272701426989829509157889140373668482251614752423492784609463733258684315293105334512479300164112764809052115617631702140261647776296429908099180419886648000053827162541995259958134579843241172680086169251343422259325605146123454679269810772372407220159816011771922277519169196062387391842682547833822913940243268965230375597625608343812835146416999429170065725685261612083495600168860344126617580103967486812624574774226593587384634812373986415373072416927986456130125782123568962908067745209596437243010288454828633662234177123811310759938014079507062065149927689442122467012744001804352237517004962161372938527304258656750570349258903599409826207334591509087276534268506352541300754601703052372982092354502411456246022363538060024175685517487703464781155165874358812044388348372742625591214000960351230056676157165004899685328346608370877812040925796760203318015224539671656178632016129162502080464887265778223122914724824976083730855886023798298212485613544509797449764615000070781391467541895325878539578496456610929826678790644757431989846930377916604625072057601325096029093099092185738883764488684837861255024827935279467590930738846333436140446168151479190456335058144968406924513657008432988802270831064205324887461838540641124740764030599870075632932267906366703078707942797212727741263601816689853826898464033767332712141130044342257066353946745778960413226423423755686583610405098808406429353804722582929910398492283422816672932903522007831627558929205744183105072579586138454053962260212751271598714090955332002841484109571877255416180389098951949148361181375228038167857800312848540165080625498298844013143541024822456909138891071831888502318898350968950104078275251397381623537586355960948059645794461203735635610533774807129348250771948423132286903825747511624825292542809968372203814947706412402220216223998198336249222260513308027672025653678618559214061643614878297130037738454361116207096907379036170435889137480768192406452087686273348240467546130610291010485058626623532507066642018419580970865667025098832950978053609097436536961713551494540377261407057817669107016371628596916886573851829087819165436105331072813572771711621440578288624352864666473421144423114964218498979753178259373175455666562086940140401119544971026002949449928925077665774387724020671216260071315287602278362097117672842996467632623853338154077849412533851218396687841728132529651684459059688882852871398304058690500262053071066084099317198695755422149341954888554530666842113735362530482659618142441034769736404545021985249725258935295007138580486237920599309057532432854653788417828865864455920109683559545509519954582245577462903297834175558103711225530708975416751194578616545660860230779368542683586193695257587928915758247190454532470405704382149619714697807388079632126912332877267300124548005661644608883653896256120666079201281198747108950243645201215881382875792710582157358728597656931759546767700303164846550162983210896475516470307628670959846786539930592882358943232237816379366078293562657080048739623626692275522042838638050993172493958574475792837216931988297304714007773591023956957940024572916792452753116558006627541135942071003073765871737289823458896349031897638435513698270543309926385646911680510990090180779085799415086746664646177040911758572130635628547573983890686658650340381059208510579091509426588816982652587328705162578092053212181040356930975226227290401721636738477887753184647195591522972253498533386152372409505964605611054513285669837322612309632269781324075040397852301730337611158065587020451710895588052752651546273876752772868946528568951396251813447741704684904182446228384741424163535628716910512667690389307187443358585105862540417203358624018943670733642846115018149771029923799954939187011672244030497817183961349471293375871671759000813475507367376610957142618910152785322475381383653723176477473121878105292039667432918782175276405506572133982149692222414870809893643774842510169541975594058276643290654220535536279588197772494783429191669249763803209805256930230889655829493061722446330359251914980823944092165823021421081203273179881152464788098140292867596174100302910731283065564803040272665996283080015114070635404225615365769055014683937335693712416788163226441051065299028418130551956437376423354073603398272810261795047313836139767369262473155392834263686072429795589081631229586845737188644484711496407322699450013680082937973312503997040737325515448587112319868986971774662969320098683068909889390077094495314144658946199384879938847979798380151005982012697519673731681561821604152499506320911033351159502184281541907504858630822065006061578738133705304894414575046773984277985093277366795972181641669270168227330960874760102717292480054933867592377007265622603583884819230959653302494716573323612044228025384046349774451421730594796097423917432743934096124467058823345557941904078623750821036029912883398480428340323949191637961204217061423723712288446272397155494558808242365103880101236707523559320341658201329177751751246361306634662442001660257923846903290402084683657919010310247343599312622608238872799965297526830568640541329217098138692967623648078511752097804867473843373157839575123128991734296473025024571676480639168611353126688711009133370192868707106900348743572528425240656185882287971094038026984110410218189799033496164427353484149109976818374742119839529813086351234206622764234371111368197807673107665184729299881877431091610426616653294225023505985845386392198546088290185353579383326306833588379927210861180937168358463576195684503403195731323671436262657452035748703231786532823391467336374509151491808257439341464290330811157234910417108544640822921928744633178006614158090260191305661371705208305751941118521971381408871631853309817564532023347585455718973638325103267566037310987420517104319003359440776077958635661560502946939598156176771145736980498619547830197716650287790745569563749781961465890528793730036538097249498459514055543886006203685026945351304670152310381222766558039312021377338681200599449585608178488279552346603658034940051160010803935942749105004078765390537476661071695507356950862316031838957464523994963392047288012319219032143128154715341082504317839894937428635585788010363293416676912334345040539330980174193266392558731910737460887185985674445103009889587348275651991420590181324549726627478865373732507540034541286217211967503805191571641589208870191000505917082832128738025513950929039496543812462349533398606437567335452286777067081392518090044562633227253511176377080094909460458044757790127656826881554750152807403026850065174874408031131427557991127759829638637076284861236965057539013108779214360906558385358426180433090098313582293429352385688799020595253575567385571204148182181424967442504074255221534191838444410484353371957042868068211805294781141148521103200856867105428112916737244090953701476655144406992971644645102910290241383571621968306556362002437009985405129192048016049502511486778754400151083193769674867550891485944203679894178706487058604351702609921363232763196121541573633090594434208076358787134518160683317293562949750100799490116670097346421478888179034105872551630549961619888494514208217049625791854432335928367212834114364577285461994782709307893379776879257085647996887333500570491331094536602397843667195106242753499165406816212753966055729808370657711412318962560430579612378849091198904911908704658059868580621039216409554237525489101894078965158453255623528776862791727460768863145048831082588145069663495081642672355592912240835749077312574769522200401990744170035833491648044781367069145042471457828593422726092385701753664225789910862102656238943166765236318946983760536775891516321253207220015065946566227349084991872848379621807878934999511500668105420394437673571367336383925744981800464694859433265110589836853207746340797311321351642555348952103024062528993149078056671053451076564818026149882118721332008078779315699356710118850116164341762492291504486330741934905673708925860390035944340201643086264861341375475631134719481620903726402383266337792605122621250721511655030588533958203823296052941519122920507182350749571895880989056100430455845236550375195068462770465548196868952471674885264621812767858010731074777919059983323221092127321241981580544866117510503352920280083397998011789346974037147354031740346626118155775626993722930855597273073675166639849091110696735130824109916901752924316635873199367383987036469352469964148918965159443370511669006078801051769084320980824699304645431494601907497065226268443924104249688942668016216389583790424973715717960190704199053791148650778451295078770682024229229067595055309258874501425918228380782763495319364124612488656074035759325888836813930948296302163014736179215402227876186264113072390294835266609028358827774149836700317628667858530037560182327317718201475415052481039486026356682893822937944704622112462101550674327613505478272128970669917345017074551060538272351468992400435847722202916874676966609206456988560762774093871437637740049107981540274242224098152183458046582676752968061206744758163445222161161211769236071354652402852656102653836050982170447714877699250348944381091603476706927519196886432075955499576107843632830299776839658781419429102736915981464541757247724819747033525283685415716988271495929187963266376113173226094755178360148238818801513682703569146697556529533568162265009542628872479284622756947128079546185157000732967183590973295427282355568766190977306308381774904950421656529834559674043169273505340176948184064217518865336013393720842905933277033039517580557089020325662654103626819756151468007084808008124995355556189535289394001022507777292413484025350165919739688255474636127396312772020399670393537347967508864357432125805757211547730633218222873719049866531204427741137308238959377246658830702773393847164561861680470907879445969335922252987949804720302818141976091686399944778190927475200310120228537654624552269061946274753128514992876296619978456190307526639086207043246675734227383157195180726537744263748131818162154014816717678692388179045149340542992200571593564150030055380484959349073682164463547538481045671079525410041076099201657294657812941315183899839757004493267754292692825346351128407149060353232814494755498577847969324816451991265357528457240026746174621810179822924069312429742600460218636362434503039666579983824244300000026514757250223185558474794043990958321366867942348624504175965387357425027735561920185052068646531476413062936210384543759972860937189368172888942984234023815565071067585160005087432829981093363338015380392662398858084397396606284975784906765885849808660288931964550233791043561649379443628206680800737404441406087768142965169201865585066706579125140502797963425812748246471733694205989689957908353808220001620333435545851376400157671445256669621962058402187869943110835135727077095375102573538603498067557450077025844480022620331357718734582971056797633431229873921474072301509342329405208276275902137988287480196605891703268020380504331683152962795293535943894888513448623742197459588872165542788010522936859664667749154623457519982740931308494418805658339240837593713484548205185767068725627253302935059018183165871929315102251265852183470296205938423468420049179458726348704017954803183968084320331156133009373089656578459123148883970690653101744401675707647309695382257733842614013604766834515627332057917451147826985091055509936502724482522688736164826548638191441276364958527280837775350350745670150645362483399358545525490614040290252961843559582010862489099294237621084214500246465770953973962568551325382764283425749639641055449817919117507697808958211324804721540959261114781889968223351722392149704917270212926308545430476887130754581739991675744788053260635420156453187092803868605902161043279136862709846169161203813985752369207783807087613644867623691991666706978851785979455242200690574184628799104239402640049118535467796644658249544159564675127112340072889453668842291868862631496859743772949293229447933446389383294875452425801997663103609053848683470259822799317625745687978439418855564982060556525460015958720329654596612917338815159876998878663255844713665858128696401321524631116827719016373116801706332269940251653752618565467714940720821254164339622604946858786222714054928554142312656961444436992051830197494726962496168815697071626061924231169695622313434706040268488664791970052479185894758416697469201961306968635625035385346531553595453494263045155341517186097328643193448027252381221571426043645633553660530837400635965046839033087933002026896919344254336337422238793122321174516759252755026801137105001631086076500566238352407997192755871869277323285239727273860547580612742950610487533022953451740935731090488902947092775518053279946989140620847679761001046387934979132457674116415609973914545785399150169797622238746252042863226567720185855151532716178288657027057182854437118514127224651529998804327142587990734551808562500231410485370047466764467121045881170362801147721938244567952828231176996773517314442504025831448725817252236185412323705162089042075740908563297453498285597248582242698600648468847216875353850958701265416021478605182546420477616202156644953527606360731454402030764999786118927361052602407157009587496157952804046290607464340771932294790494721169398345088946436234735817154235793250549068380242953485233779822366409645720680289223459677756208111367489065993649881925679517592525786440444864893539087933615609082456405445337574570639407022524087635709991597744209719092019665225247147721650272085089544255466144164078639899774623675834239186677137746132132840103647984519304874678717724686046026654446553954527046249893694915505530747190164799089144798452010410459065767969962759987792395840163431056039645376903199378965954283776820327599211663373492032202694689275003406839991183728784504037900755193759305073112377908374512337119063070120946922760489056661156452932380119115938184487343998655714601339925540765051558242959770653691619026444427705484600546143618792284190921834609824288802108718906149511614996929968128082791187797189183875847036919259287531855943427402774815322854853367791814610738753035292793208599241597329930224950539089321516824325494078556726458905558996533130389840984085912768555042815185309379336241111200725804955698952235547989058576968117306568969106314348722436496188806114694212342552827461476741937772932125779358768074640240958149939957742988676314243919951630905166440198226129757452468107992619917814350963457019255982529428557343848690636466018201869929501523521212087780369107109683083054258860866584879207964804686915855992687499838810831718709325832037215402223570511279869285455912881592498357674237656704536235069469102897202852311732829215891989542448608228707101492498412036546398441834104310552711283297629300771962389189902043658986643828319846003859227957089387968963520266950822513802272002090269217577903070118427814639237147253908697648945446189000113226250490938858729232347877561535598362612456605143833191482385312993238432296688044692029822903687480516557085563480213419616320815666343248053801931485222144561181729353559913462962785562241190058576062264679474340617409498949660446105176141841306845960328537280144906246918106999890390209208132779100531287779317332976962879800384872102858147330079520122172164996767355128164425842562909438668564980596931746131680394322418357588683174965840385210806795564993061592573946654356761472982569556188488081549158102025023135119037665089214251152061514879670976983922692537995045786735005071482591207728603833113305197782556881052081241083909759484606394567868933943120641605564910433597571833377133754665541319505984469402258841967742544180800787329173108937642795292821116126701344114962723841101670938744354497596578265826410345788658344909646457528516080777634564272980293930247108757091403567898278077658868497273069315333822810956595468744050306754968446800268392657054402550038928314998819121585829556814549622740379315697025390776546463336090274811470275154643892979702840715236245493520797293389217383741035445971930290246578851813376079234118085747252282488686663220005269736190938179815611047381841658838504182597540551477024378628890949141492080040228062154743185745961118028201507806078872872291445427404240568010340987169662699145112207158025048431954122066786011900208186257965646812901496280675404005872019468863718945404047785820472661628449104963040176570512872236553142975851048231943980181397946907087058417419600115018647642734312660731782048011593788070926241493365182024697000206743394880709979523497754318233947896099509122569231994622794790356244548668940289369921211126889018733114228969665467840483617658707652879018280837785739859579677516127865910895490252001612579687400748498686690600899668477301107932840229170404852174199044268763517964390243427859631937052346528462084922093328056578547858334380202810575416488386269963202237737693093682316797682310893296932998295489370200705824768650341445975236444109200832916318188563526705129006721453845734903748437564159452086499441679912705832884374243333242988122798503048386639194783868517478407195567380754266575828307787193624376163340855089456537046444629866185530077552532732576131098824123494999302979470442270707270176982074619529219636542201536107758932332074837010447632934844660468397491018279054930079289614666570426125253819999692194678882513670553857798210246272083729659067668906170502354687882108934466865010720369245964945926730251590189961515176710074364372579964491606953032270472510618480998232977024305890181990271977204635731593142101795283335733193426280130839954743617754830325536746669826961778451102905442673415008416365128581221816529352435501056617770421118662847878025954456474024636925281654815438703326135424282628966698306630289449540541262379569606316363200643417100118443918038199548147986336650141838106506100864244871627647618627643609144142206536256199118373321929489197363524292584320063570154331603933197708420916672273803494386925405575677980697459173370378939578704406059494101581253270507498047462554770564157925804961647542042627446909678021406343151277610069639813739784783384148565614807063139589466091037854837165764926606674540511223632807191246934158277528072491080772686930445845744261831586928477131738304673851804523259337741508611940851737202310131275992969680797193691599765035628648722244911287490168699481486456043001759902668156012544274546657042907891121606286053532686615482551342887934476336168356805376189137816010902594396523053221390931374774618507132930859825746056155552169034309912066478423797967126953574718743331612310378445021817033727016780078448306963426583846854687149026311155461095631461787413535898902957292847725972175141653434915546196819503916575821058854072376625976628327436011239754485627419509666079238601495064610061250869933470729216894802334146588055218844766391398045216446552181323204940024574507259207558784438181292301359769315408349873652452614606220594135565636961894392451446901750053613060082026476445832690655558232797530697313501415450714821933304608851723579479302105045582465125520411938325634842338853762780258989775073798506664370631109172673006568611886698004313682937274353189415111662727431997689019447931043181638983550222410454221412618397419674722737212594537983971200893436902738282935326847502294397432242456476007797737395095141209293528042970864795624009802439315526619207535356765437720304308086166287670248308075811076755573417222000209789266424855593663876520382410185570944746832077808706893723223672235691968843271886111076650231159603104739733864418149635351442402338595913773282186609265229791972411951059238459289043608207527264056808832899323341124038907931786244696274569941819098141137281950684063367568057357190643518217092810641857251944713954482745369950255474121390472065815761288793374948596847079711142354515040429798478472752888901463915821325912249667311572351376184562996488065874038096896187301037195754703170251706674492706975357709653545701452669064913872299053147260594365182884800195050445982346470045578271047317057519948960889798599174842421197459450792310156071399496549808883864189003136808368412491476358353005961106447600450659449111146324982376623847302967270987677127234519098442598885513486296613609428846987907916272528661924736890974523204388200031409790823585252269391181415142712480157814606337056305881035358380231489451952390942930027797264287607003689597621813941574156542592886046761933068105751446111021515886282087893553919596103843015451104833202285547528284594684570390379727279246721230912583406568540929376768459967759210569468982459877811437530275268631398515370773282340050733689488498205340310573663525071125563516948981981748558738833277352510799036465694732792119625855948370640774331147317455200359723278233175117107139139048970869781537658702004071164271199562853996744281445447797729106537088203273513369156245791467676285240251726779002946657697806442837871270398623856064561342782671708385995296861229167603778463350954222793054951521846507723804640156570010031629937892275068264076625639895027663952210034055002214444273361799733784313888609803975778078774009126988529228525930345274144404120825052649125744761745669768828887333961631430577360720687103230232121585770849810820989293048467475285584383682466213992415052418363939182697955381865098829243666491040991645505124933594479070755194282777216159804487620365566016542974741591981269471115113769819960342991348529706250156366086345804005004376643419527101755431142637149112060805783322637254503240693155735947819664322908593467485289290771305823089730364925602055546106198511809941965994864107524985487541368640948703947844072944631677879239297401551962951897822776734787957686683181409896516611433764401868181680824300911036764528599290508637146433031869539236423406839406634453621609898484202246787699163181013328578598284193456582236551760757416055892772838506448936853079824056415009159541944818713185636173729991967088978701514714729577527812521003018568956433318985788885166915065600321757016917725250653252622198266696798269378218376638163517711243171675706591117114479753266483095597633280012756616828552201209689424441655369495086740333751159437936226704298130949834313917885473922953385674271751354871504126484634005947886697457880140436357137899500105655122070205689888914153148403401992427058828819122967648918735638250375503658619837840230720445924682451814715303176905122793640634260579349850915190357247067280722188060288988402810975799221094342048271423741438236938045437677125299996627115011967902492992997186565355874008618239690528431390461591755830562775561789994846977980060609898691259883721031848925300943952355132903258596851347343481980080488596794447494370400858246288179000404016167011104416868700520802628574717899657514182262881926992644328155822328556736346537909141370723420247723908995012337403625020780152701395677457953298901323228475281074113512814819909768877937379612956894919299711151962303596774619504553139765442896035013432701618524163954731471567075999467152142308286122348680906828403781305105724897931993344785254163188511165319860574580844412360773312283789232539452792924299123161992868567666432646154258842091395448242073514083747253997293272299739392246566986048051294465223057663021408646838468334357759488110204294348870384416021897211217187298629733817112107553135504178062871632736865773792970745416860066659375643785392500440590912291571234233474293674971824015381889779652056098470722764510098782315004566337430637792729293675392083567430456167514246895592672767711239877838079614849071654573828211060802297953002476599732405400919609066458881149428972807778013773675033979707787258421849582899333351289348947969131197706876485912343105760003084405629431072810368519578359051049577043616063324067863945625362909350943026244894654951279970341526935457757193755759877683782734495035989661993607944860963898832026933044055140752165114416611624496147873713896186453531359089918170487440719982682596087938536336874430537904140020621373416076811487792589957059106193270719079933914327823781388683203215612935911909019234317608836598936560091514353184465803830940466860073839052655576605161631763281285294544070846014319517529128285107779653284086113544478508519898612142751810743635600405234485076907223787644586170528269528083390778856706921632365437644903277286446025773522914932111616663785648089161269896387690450863097430032959550165286179291240908963119267817953648948999468824294089368678816785198690365101887914576573607429196825600644995634812573054067390179403583323068632770458813987352632834168537965327861116231694568108443719335927105411738549761031283171880882819323368728058660445405352725446378549212426673316777190470065107113378170748017276919094541273197669674053395316016037374148457084931659935725403549766885068185183335079800881678933959110473196465559702753006498184995176215974273218733106056173060357256982061235943152449284886149089488275920461758721992172587735414213244726523992582613665369892291797518597818460520297956373355236704186228695207734362503276829540184032864985297986212257944639130897838416021859846114875983094127861206200555756271411600183069155540247399895069246710398298340201344539294388663544453894652692186426813711405456785486676127604895422678721176059434112009745895332020438172534711034360453591691556770890005542533456184089717004861323091212194984821142555583589053685225565527883901336764124868560354827682023455882829549295833088886898208755877280324287284538366121826285934483212695306946488817209408132907954599278030274730663727212385789228485423211094008547596779686016203289481203548422407918680821410596069250000927382135089725024818620878258759708086709325782387918100087442022495079892663780853166922047266638228490303792363764166180084159105945065868179933256537101976783252249841907940932805509920512017307299882710577146195343764740711057075454177369324495692296098230595392296127756222034077247680246361209341113613961198517852946305738936712652170403052342346851081536407372077009006703002312730851501963826841803050731467697670929726165547725555063675326178091914831640126728353731125019721992984314318782020164413581955262812559753757319538711809816042317950345800709431867434604482797238988579859598337760279052311851518052199426785253566872758371689863952347971293522179705479834845228878209085264873945845600953320237784900717850847890744126414498497698495226596090848788044495017195863288401259046188278699360552879593495044635026453271562248076863225110293027619221953190992728731463935181432112617467057786199484598323722912306077549273561240838540764998362680715985483924878181837130219958049946800117614616676240241028724430231061333106297589538597282854909506461991816397103470027814738901880994808633807516430640407097650005380017278219700384278519650279766164527074539523311700699711128806551539002456902710064070801970396157523527655978572208030078019833683328399341742506773083356797544048121117463108417181492362859153763164640578588751525632928271562430233780529891352101308125448729280938950967797967330509788085844803868272434414547335345713430436327396687095170734734720848461400036896124668320084949738058135896308669540873375394734491740915626258279345830217889308728779364723937878056628507902390416753088739470786894062171017619971827219889896869537015234132008812675046543382662753440347197425018143002222478612593571687474364468142245377466565873843073483555159564440282564903409398288175837511401394609996016303474217798474569764790563456128440889930826715758293582913464969978950847962501922553312848559195513306570644281283243261753432984577148825145814126924894877272071641239271457606375030023134503651774517578699873310486976067686252811535201042729895533674128585204927331611268457954898127519314428613981637271945186433975623853469333319206955141451751122546374661307793440372426500084784500560810927445174655299975220329690423971174230418548535623878950270187448529393555877021834446532476793368976946061123394895700878479908179748851919662204969506930775186045034825802261234226841153500353849089737357561230097625777250918399884909036621832699824803158803005252257543632709966559339632172104007627369203351817558225937127948927199508514661739920940553952192452297870452809533421736817093064630281212217172198367226258331406086568954929451775332691466315478357393111028113517222614474512734466937415501434638995937302451600795521838781444471039531143510122330955244556740093604072644802434506215748697581989783548533948663316609472489994472767269889120688326795826958986622370972908434302940407937679634298739623247957603950361185056896168380282064589838453126922613279152608415721044678899619408236648378114470087220359024533249064732943256432782316929794152661697825894137057592190576154380500373400598349770350567562720010808304166351067456946380932371007503378157699370275628360949625319364088770611439290619418366026596662190671692057361892381634790633502484111588783616099931352164276607025651632240211349422007481964156317627800460410577021566356897215350020461835896555532448033085034885726449243793299222491242252220925359866085906609792358544513872425528821492698320599154848567680830818566037751233578381510139512342970793591937002525459369319919411123079331183206304331415896960282166283717684451791330790295073459016016964863856217809758820621354094465946322068286436683435263768155081619313294843404017828275282655437723419941142614138386889999927740190874482369594388276668189337019653923882930480987605510878500803572807455395771873923880785669468620119537169283404360905541554314668538729631570027699766853062692316173160896360407534136150389010895111398500728097241710553586372630288952222468406543905343048858862040283484921913766441145419883273519581407195652808211793974759398634575445571928502689538667051133360807427295029997428567865213376228885351385417458333746458988009135568662628099410774540953203681062731710596971087935732804217483682759975527688050939472619548298816247621204919788219782590451859604388264982957140876374971602060390462835759024339124260750841810126823619312008909353964863722903915470344134916372930878076991416924116915929226146924314527320040532673118339103130574819309170549525180642165623285213113016807003476307310364054510972570725420689712896205354627424080716056177693600586072088462525662244020888097684319546068196548262862394309767782377303901268875329915634151952325443223277798097787060916348564217051423502606247017622289156144382883095148737340338426310656538768666849529640353308538675685690682653386908341117617531783557144910954646917056685806330713775471706426502581515304627979972078089994887463464882029881989726007193863493679689130879432010574047071625096857587289591748952872688462486854373726789485012992056560095996952170779872944755573588524342596378957021347586598002878268971361035669715142079189742024884220465289351811557884413875021213377382385483473107888551120287161646058350614142776569797700644620386276458879388685113094753900443177992656357136575040100404945838326331069546020485036686046050240286808405783764231376528932988936967181983554736145380341729201607298106288163749903246021154002490168989969844092683431788556228718469304982508229242064866540934317635634126544575474717519753790326523214099392709069637758438024847798226086291293158283891090163128573753580245067014306272594364633851960682450606619841475727167894108498853648139845057806176173934139284685187193567530153614153889346169199881208938144043984491438621848367613552542155204620006295882107128578577558927170161615754815444786047116036535615119650759568241742541842871077968351523839760857508564697272631967889186782599534779752746621363260045012810113665443753554048776515645510804263752632884723049781201089112911096152241588960264164994548505908973953380036493964284134788895488801768199147716228086917002751447407917996028627726456652537900351984278287269546964732259153193427039868330032610946119953148367181953202542544044980162429047905410578424104335665399839437737103890698591007959881216361532184041297527500303125324538362573058477278456561933265258645887369047027620410560148548381562129722553376815085066955750129674313960630541650743828670766016725802080950672784797166191176160969388948030545687658753539194979584148417987063655178574500885731227902591439222641623051819229570560673614676816718966930308008139206463375184333856934501344754196680337175865711610396320228264437180267466654067053597471972600442993847588339908041368619373072163380680042737099622835826963585389278154339462673556654969156492489177774798698972068166326469213019176192377535653135885088742889101024406646991717476309293723403123097624877614161190571004035636049328358426676741679230034058436073075135847474494124381252883714356938356444988972534527670920152443702194861055836518852390139301305298259322269832617051403493617631608261389589800341056264475835078072015117506994754482387206752274128716874003209276666651483567095868720340334845179129587713784057128434245440398285034342939835736530639331601350185206143338704955185140418618197881751686713527616259798518469599927552495606639539042402625420000678697049931104834324042405019667484871865261247926001390579427799426624785979984142545502810579999500115829126174781955531708138676759817962165694808238661702478049777566241611175887747937524553312049536134628704031364340055113414528411285039575496510414100782004515890919085452339553665119771669028023377524929049696806397736395021744712463423404548164343106207789290585192672759108733283473395802803241077670961083500575358222016868476812044662416125360787848852642906817480312582648554238957634574007755094468717599498874645931263485671782030020687924911052948175618665310473767957555722360754381518784435976087393520000742241206214533886600417004808126328128784623548281366883610526737489179760616027071459964436478564701819471494790563194141853798011539267081980197564950523916095395646607993279383479314917856834608087030199170093208229150314440029751200855589237531380071481929491937562697703979390243760455104615625257494905361694004171667638589851973861949921361021039123446855745470933738212013230771528873366616735539072683267897624545246620212433510570798000236779820025297985955629960040514625869124893670547010621518408579658252713624578795026778731408704190562346925271585848612280418595718457900760726592204984202337722886385030300259940796511716898441189455557112015823721046759992101538067951095845890163508179952469787044192981658031646338277346470014787494216795488145579978609820900285717206762511291436923249839474554526717744682557172652025709637279005662195624872955091784283364466721791145011979577308486123384890355257006197648150253775391685536364158225276188332334926736282425384131331012910110428732856613517439396562465118567089924692785947574557371129997292541876408216750784687468671344580409222074921399634204992002867008536534555036450398089447569989662706773573129287660633817005362269965496378020293259013127606550730157989595052741161375789323304223291196502416901343173844469094345223603878026696646204818381509974086221726310100269129778148333115569263050595218945600951984389534948899965830244233104055903310591139957641109248303863764334705218169748244343407169645240122111816297365299158016740303629059821703283121376962179008549415503594952708564784039660201689870274456303713860086350082781588005618892697235155395273725814816086484546450016978432730910995356752579627958260406934279439589016296073603944815698444259080383346227899640480519335671557356132201724508223024120270203426144353527465458648722042573282190124769514479472280575800503704505844001147278781606358863421956521691225895937508393493825712666923262127890237162779505978107047853580289339935547222355016729411155176803266423886695006932131186706333727668797830360662711048125612825687221050985486184878689464441663751341720654263583642516052230844068370080777335169026073444982853223032223188178087248425219931739228303538528047177820576153795912232726131125520970069211524835313363985927283121455927015269911241307012044554251864013113531915382683351063647924535669631122184708859313845384132997014604223608389544111746126149470874368200543636262234704804895752679624077676235394792582518819303940223752778755431868178611193518916612490511963525832935887998146903452273576038323098700352152944648114570078549959392294197502343646109183801584421810333161260628951967016901438807248685613963054175793118880822028701083841752571974607407662970781866069263920028571210113191023161264853455344090862238785775754063676036570358576713885766489673860576382768042901790365387515466138307631410105398818214043956801650232202402507154712656294063470615080916813919110454678279214785078163522563207058329539071360134316548604092464749600571384112637521309030023632597635044095276419182309145050535174310732385963626773239774488120395094920025633811642794435028249338606355915298266759226908385996621202763019491651528330710802143134902002334379943165136088813023583404295165561017220824480170883123231065425432424792724993619957010470068491149038108086910271926057958715759818245987760360842043185225369428264700950904089289776044278429681865050921778564034177392622814591000992053038406087627986010305706458413575412365625937041880773189303317127241014742089959448000611907203503198462104706304913520725090088139479237545555013627902584833608306074237818843401205429218543896450620592583006225600797458027927800903303739282721063175848281047141726317117271676614984124230324248741969484468711108410068468044373541387883866199666723881131303340398885706173648577712522128155026267846250524680343638695669120865931898907719765495365947423834394546066790534245420738206035666406698275400711757413357093230011138672936764475582094537159642733658859778878798706697919310721902802740655840035448211220966222462399263687818813495758314704301563798836247895161705530664112963702890342569066912658406720920390307746926819089901598608816230697930134178573505659175694141488121758913950578671127341071286093297032632337846695654863807226489577998082027546112098711028726943408914188794662550205971269963176960813863391129988947928118523743668156284640359055976226198968316132100376254629733471392342097711913459770122982499114239476591996716187178043171109274320886335618556079967237861657689844344310461646586516209163056168653223239666988829271212358878903207919588160966749536964447178822755118117391507736913419931600631651465364338506365829792962987479182163770118529320666906002659270541709960896057222092086073023084849863248964213906640217537395110920295756318547473231177117408065816563742109020889032993481295982049841626780019314403529078812568435227220907777645143383097224638286624734445776731702816948975068764400300455968721567146107963200323790899440895310415811192252604437656921704284820105469649279614322596232317488556457700128437313369697348995887496185110702747319376963260493089953691694811693865183306810749365100582040918650779802324965827795043351205015342548380478522916374291564063313165099505990533967298044538055108733855766042638597243487555766075950619672465205423125619172434846836991135857284843639277321111254518204842090619402941125671803410347382187116247680254907295373809799240184814753268689785993754673920010625616298500566848359300177707510717269008657685415481546233396038970726521264633914761920960215324770467657900137729797509709915977177472598967179199992748773310921406560976896615098492721723165049636546284417526539761634552751470221274795369312026580831256168766991413498991213659855465029006654825452006426101417964870399307394232244891370631557745177439864411085028496892220054601580542655991518660791601613794464527833671772772935902508359065784361786353752754416616924395546586118264645786012894208903377456543560957547262983076645646622774813230082606553695864102945825101115197413739445940270360562579311049425081101692658538572101325455119629887501433218899840953434145619405629132254591375291892259729021049157864340758693895003091614444254372930888968390695712767350528650514167733837641053195308657880897388016494972239221674122271044942930571367303316459848857554266381750960150267531307641417545395634781119779077707517042455336699525833409163440113964428222976837356461444832876436918467824675354926247289106624163165839248928414783662937665144235411884904919645747946833345804814453029328374987132400057391378039330146412476195896639003999236500458345731979087396816489179099419127924175780095824759063099169818290340581244946330444353814375635046522985260385901046442613880583549898805356766944666960641152865794831806121207494201667558636748035840368883405415267261441749988378559521111452085422793380482246245544827683894280694822706478545276011960189986169755648130842816233693075936339202495012780824094086399057683849318413090369549322086084757573757462582136836618368750298592250618962297343840391206994383812564045004050435353969350958575963156606510362930790991913948991112815980878951838777215692738524174222029940956055891735422226571684677129066030007280353126629714693580385220193893604684779876290399306733923400191901611244171766313086015336123767058929745481191670281585201136891285457825732807694697282673761906068200824241746137548961342682429908883330962203967528282796975843847913824168837064212625972532452587274630018652024444128466919249537849132591767897294324781111522358329568316753905041987041845624472730880793810262753348331510455046550162787454188158275303932292568005229053262402670552056480420435631428893539379424971890544939663358358958000621725254160272571123359530182697243988373847033850315750358358341764322231333513682206500234569577543716780023717239095695767608176868147810222848558656982113378867236974516136776851737084028983146206574962072164554259525121412778512190033272670036220543392176116380698159633999674999004475865012984933751125620403038260036479754357651060875372062698277439246386781296181644693648109962002833029374535034742627584749971481953697175325684369531693040002629398689887366397732795971799449005566207712182482297714375038223393189681907828424541027830473175964441466351333565576364956037258689268439448134299678308106560314725059165813670592995057808266372091259626604902306869915844179469004952449354119845678913440938885080539165794316170209379215118328622297759676258298045135385157186062100957578325216210952817114053945000747885068338456922030627036794426819396150064108191948742783729732319801539638498725978737860134997690703500796836978467415712413213389383482424434488021931678718053053438425969896707371507936425904036000252811576410326099828250690060724665014372663890568961978719503256243140856274414107385628858733143438908861190948662001637758795051467461507500160821711963434249429042305348474288514987893268126653622015987490980391863915679952623254805829696914471605097552106120655469974030049653413456439429938542597029207897310952189707763101271267707934367919297619309590265910968159556769840887986342580558747413972128121616965439288850058427624834257759772156971372223131487277676693181581591955746674029933979263029443249631581530147510586361289398235900988137734879900676166540338929474321222485304564873225063209269836494573638746800868334602313231619120568044974505258481811468380877370077956223327322541693693528275191837125146213653697254342495002898874068835389104819982559652215421708443557054110328772105828418133236182724743478254089792470807488208395159468174093782879653259698344551806085574405372955811377790677678243195452917177179067785891267718574920549891214449157323552839734125977073237291915773634076599141729540772073319529733306194685763649402628589051832235407643647005768851606127423536850428169146619036077436919612451926104068662825017625213305912503685555727921179158622622734144355365678622687077196754855742557081859463515073136796940683349439739171166128440886827883150538798882085974750736980883492394124680538712102957056511387479785982953337911737356671608102848507647227759319798990460148813263047111722956964136446264363116595331791396516655162561971780913461674488000990167761569190580737928934261044653889833305838015919146059088917803067329221188113132536013336189877816371131312891389218556834318931278683947616207637945950905464133853521120950073875263229436193347871024702312035295171962266916790890187750193965414200504901137959983605947791516989500499379926654296278869808631185098587954120361381685485370727272119260000886916276923741760222203927973519331268602129836413314099782063874319365275893813089994338022092350792613266031175738830962932879059797997768331552481575329185064890651651867645062887205972770955926329635020169838684632794964125162830807837624861749751055895626766289856191935826923809581282400987732700007890959203815652195420849621046793619756465109634892514753738264948822997200130761360128046874349909507245398688021582990519831048231219176193701869494459221785861607906024008733183948710100392956703115797405089666913515830618459512259947614143281871928406294421256993157546193124386065645070759557400189004068030378310999196486591183345352370393070970367357000764252106570390300820507151079192202956362266338497875810652965757124337846893253715606376057374360386153944649578463105171632070557835813055997705460167668599590736764411219672109617562722757966068549038704299156595646324992660788078352730429785594527481040463846537110481052484096786578883935212385101780025225694921396566357179191102418721481202478745059743852039964670869689383346675836396268086454408196225413432035138048443660640657362965655583431375231305462777982646747226186737361530415157866635662773467059267898525229158140701839043740025832847303188654010376040454258476451244754532784576191867882000333444558541680436872667652654902333879510679504659411719216618525153294420483073258316449442076447237169682628067716814848627687492707357365465837160366518479619835733987898394507352844066057586669579831300200992191991742083292310902186262795339077842777256433076957462132079029427205291194665589226390240663832007530648832206608842780717944019404791844721822584191825504750949452228404183145830904605496767857025244361877977438153599532827415835371149882970526476657876024827047696206242797193867037521623703173437481245338602910675699262515888457931862987068182357813097140326668292095168799402505055139543978570527724167175984478130460708738886569400289596591565915790961820342653137113437655656978381383598280017605691596713288312610415647237507611205234037025018354975115785150641228534226502785324023861406389384815335051175470223244978812352019172630336772327394056683141482473081840352969133978751573162981156681245972820675189129559909413739216533380591356639927061007174338112865788207770555181662053850328555206385210342834595489966597527510316532423643441365709422618005987495640340806803632949309435235671275705475147448449455744381215786688313452849219221431483344232120763553096966667125174022477241158447743389655698352812647131191506399700888593772605261593227984120717034324602430993252315720636019882782101696170329351737414185055180117906422587141533211879795596021545018554656125424185216351652629836943347932237562758383234151736883152532250477959966254707824470242434227533607067965133322096995934958299237214578075877724106640979275515366717070610941139765390447850567276427003041582193228389939114916026885312913528379573841227215591870715679271918371479071318592918311764538316344399023843288091020593293826681758696642939395582183516082291788055591055295152457573251524974877810889280690310980884176307958052504340898855869376409195068686999447015708116076592994786932379383065601776428708310773281723821171156374830126019981192252063659043251524730027616224001329348993833006427136453061760503203649641316801818118452480231229125682215136210627006980594786991367189412961970650380831441758310075684122187494840948230414343545947034226464126295137725777067034213885924521104395425528227334430021025696548976044627801417731434515191265819467337228121349283781037452139352158252698112373184734417714561665266978336478230158570060002052039733779095931595543441312316558337136640580003234531927812612693979511552007623293615087820002116564604328758778125332030130716419463644134953915489836496442017207832908767502893512735963169321102485036747294475520678618927055507468823637271247531347228251907518801941891210042307799728688307170355957590593219583012852549594980344830015483554263453696633023389690061537510851881724868922866580995329163787833799258839989043959830856031724627868953175194184475411182654453498965349479976478126295209435398805077450348513305613573168671588175760583138223587512684085772176290089198688257737329870732635724381181745594383185442479325024208096007951873449056539862951748324395652978488387383312843431714588355593593298066030941195803587478528826065532928318935278144279129166143664439578504517555628485253707180586209511642057150718493174984509874350557372598739715561418685728515373255468213725445336805904148097755131808557684136512047744986357137311731114382894829922107304075380225774280323323661467489657116470653278516870025412280724938516963665319323297564810545421685302718207813311796414113565488625252514277128310751231112592281692156622371684618072722526127762190208307370293139237514710601636492942630156933049290697792057231807273469843449187452946140018387871647207851449275591404243299985851428040278476457843125179058237732674718878118643387273550498587678355806949581206780340938027392667457088237110551231559601818041316977263068942659439793812515659557491810608336696491729760710446962858070012440748141738921049637083957825553262151567213446114072802043970830447047658868321705643493995404298940123401509429223637518584094513751656116371737058713555807333419016551064078197996680923647533465714076914943352008941730664719392545870941304360757451295940867332925017618842571537037260064056800761876444640877041416839624908229060224043930737999384855748102421791938700082942375023389696110359010868774936369231542329230567963239230330761057108105567163586197768594645559239225383548018997559190761102937647691801941896442468920717347387938032575721961253869705069227191645868258248137702642227501101761626497878016256695988376421376592625923874249774835559001775460447545496847514128219093681455112112024797137880701775155549634612640570760579481009742673785236147888644462518524275358059800088341476157420639464690410368222504910264217953998657257280199445930537424885902768778613918546845506989746195362295337210427226314033219744285613717851402479244938749723368612060714027679936771314768513377222879643286171776800031272391194749812051291496022513264754994880875382545744609357047831203258996272647491080907111414723307956915533159022097022182895624208302739557883490204074456763463371832003001352622983184995229463295238923932394990941105493007940622432545532240814565146103920218807538126171291637967084334403797853120425883891269675241522214192806475296772225695342795257883404855338202414475439332205325748359467475944796785917237322241855807727327663686603250947341601470410206897031305315654006984552716459668322303081402614636175140478708551443240507165175959836881190375559249983010292126591097144838648003501086296168846731258041972077333262239834312186888011084831190010849693005181856003546733001933365171912519809029007097421003811652308469659263987534381384245915281020903118920569432524059505997153076483797913352040938798081421194718381755298124073069033659697089627144894781388516820331142563869339499398332828757357935142003070357594638055780320036570475212805984900842876356404849256136345779635325603974159610127886859972873442713378749078786073761441434992871492396059406699892443885804558435377985340851289813562983620653422400393199780684768581993898226820471079614085020558615843908981456680061757847448037031467925794430807051080388713771491500724665785064526195324083473901010325313300746248833062792016570580674087192005585751198974077890560137688749914721881520154801548639187843435983210263717935364819307004202907107631202206998608990805601805377893499071187151124277322932257390693204931157219400652564396580370739930813084366392294762296004947912832566512949660560555010533174478062367688825138157771118404782860562321412437523024703284321173840990987634594364645164507215201352609822940913019387244216967585169461487624852137429264202011715927631109637867365789879853675580399312019423915094769874357355126432740937343879584772211781172272228318928218340578497578864490617790242667416229989515088523232242001718353404554263086731721329841131744009544550270759223840825024133438024507208925988157327370980474595867163572949213829611565662153356254409320739428697562758454555636922313710858599940431031345794955497596729680385971580515590113184502151213426127200898872745685951437173566592621252476561696312621754180758527188267268220805218441010003661651379591746382483480573763781266378329181066656083527052423407734844985654925293386735200580079822370503772100283378903013046572058545719278852750187594967675742533501030395088644431390115867154874635906318617254335499002710765155927911588260223147121560410007753201446299882355583450102054092632675931973573078540638798108881175430003044440806143799204311345527814651013580669423437884873056123937533394881603788460986729218805236308966055941914150292922465864669827995843325818594419316511430109848448628856234021431034337633936117223048795140506599710985521460678917576545938539845893429461782043857256283393705431502611687342275280684739906863138238840431611317548607477122938410429201057166502250572757066665519644177513631944432344955277358711888698150342351497673916178577659224253539092431151557894430194231029034758813861018155085114044723759840248969218473559947762248186107872512722900275397209963283553686192272772521573128023618156378680636332499345380813895943563727012488217231571875339365901879878572923863370571130777612264190600190862799966266574162314174807867002919495014844980375482260543427973680957853748577074202845233040228649607927666628885721004232199542087746797960485702266259381394862460752095028118214019826527343573168682988117222373970874682078210969693649798820445034759437418349904790756961641129362673874161242135458425832246299576849117422196375829925074384114872167064659582466999184883069775007929250852049447766787672910479506258951851499086434952545151127776250273444716403057566277744802084358416921999191235647555475205140669635877967417566937986613239799265586966324941746334575064016095940366981215295389155713639752585951839712769173632897321445987972557439673809242845717976268396600453102336172909009831014090222990084472056488522217258551159437141712659106990789023724489587305739346649399545607753024958301779668138032344999825248664034005393150873417536419558969590401107533260992718192649087662996613522296008986822413184323986756001635891521123691029409887125034720311958989894790059574051457432650103701975955741667186475580450387123194976058622758570496688035421117595502904756592803273295472966142436019136244917359267201644319811891030581854782651421501265849069660502072922938138219130404275426037573060356464637911281623467446914385480434963872136196533663742681992839149606243373899310860100826104276589174366700198848468331737250476964099802018319299684022712252596015434284088459976331855503220579296620186269309303635235432112130591518416398110990641077229602082232680596864453619080704387376112421618141224111141637327423244650562416525757912987869760210489233977260937571209381959402447545804792845011194978874585203833060428559720527877875499138962705684543854392737927015133122756070341359274160234115061663294886123732992091294385777431787215284805817170068754452102544679328803635407338493638948684436062768124878884248948568738767180424199104285186706736022105940139187954739779328927449012767774492800487671364392073736586590214074316117717054220705075585535965383653109820710307304375569036589426535684177487168599968917735637094159714586877401372002930968140693155486599918844403735230184859016155752836454279965647459597711382326314342795415007688402405504542559126367804924739399659764718074332207833881782712046135356735586545517845101516885018245626917626893068885972997529567896659180668281900554416301227974834873702187543972471960360273024110970307712418851444890142253122259772436487930310362604338558168381122808022282529096994934621514235825716198612262777112123836229642677034727961650980356322451614282971931889761980696043183959894829212977125674751314507796319999964973565839789072201411386566236837857248024848658075556531427054298054450290422305415764734396194921659542260273933570779451755291029562304456501473881378637796890818905153630897471188522637432575628000214793582355051891743070936549059571046325035542786959357903791917426148797321154920129316323354577506933573740479626520635829070825703819510137625731368277864986316159783047543049324205632408339333034265905486871285585032466343746057849947608645156887933955186814906830653455416707951743680158597973641254608399547097855369508699223523454577864574985782302702368078526785501324267068691309010198406051824197232972845846584118694660474115760059852169120532663841901697519407839788396601589542334612412613962498214255404830595783428726054182035793205297627086994187361444447287379051201979958844687692470909399628315256803682924028830884820618246267359731425274003178834653093214657469793245438426206443814635071818315183330307826310492266130955430273311402361770238739207431609287992822555710165837998045446743622492683323993625488371677182187928604729756897605816880674778550206299244143848823657635123430351961386814642529759635838947726177158901244946848073396015072763462204407488253215899996356876254847623085810537238760157516484999613367137434849296907956496840874997102639892857670839413094184948311958767312397489265327157306723769340405518489818144059167508826364245328291033437914875360501360265281916383553106808674156256607754071418235672700269303198362794624991714798217856817629847755342437691032317615905951633403764839727254450406185135959820985252179846513556955119147003852071036002427180539164131311481885804785915613999359382025822909650447574094843307219723109656805723910813961699148075910619734016824566324842659916745543943134353197594555814436779281803070882606136052093872194065127081466505504114794601761807327095780780735579948686020716875189994359423135001182064580072666090956684043880752219192849335421558667611414134969583271651655242232997616666296796256387991316529869573036609105755376883215783952199816558469738136714731513212720451944469062665366014356178804938065037054633949102623184996789366273621419497123753139157866136514384516733438237181654045715495658462737201361848321256831827315681373429615889358873504582884507523705104415499632331775748146985463652925875676643304870341151650843556852136701512262978235751840247175417615346518701740241740319440397974554904794011652545239360718443267766703046625925977878873045567734772993014690908619026334697136821176009071447714813548374621448668405152327569849531319019091097801748816319116956185781123653534825985281643644225300466012485679048685246387104007588266789318635133490078672611477738414898751759086416084145457309223520572476575806262538686450549123497286076142260855716786954530048042404474771651624675088473852766473961624855171523291462188471567164228315913213903571917295180673402204809695428087608398512465144640302006664217571988004534869217372165144586442232973474590369383737179744805810581999603609068864782124576568475234462980936899600785128464421171449737543532036413752985423508513994601948302235360188526465342431640529126645557620247220062581987348510333411295643826267751932080527384822831791884531337608389779637024144034689488722806705059297225772555117878451473781635308808412029115560664934167702972613174728915924922286518571145224445455394820090402198109515312506370141101817515115530238714182223649156724012239414380147131244531203836472492502473855374526982901059108899077510778744845324003757385277692377348352809518633872666308908151504410204545595153669509230554180345600192391670230622570191399560647423944647885621495808811476639653357005380207197597787184201163286583776237058275863319883273506439332720351203427235030803635165739361872398987348060987711093440684047454533612640002430197876932478026963812117065445349483051822314051666702325404976573325293667979800088538827342498739721923510015704154272424261411506476133984991983060854685584518430247203709643429634521072105333220134186368858477211719572947211824348557683369802424760910850448372105375459427662244156558071850866316030434319913101582564385222460913142009733709051791929651737086964982108711428837127178205553364822086535194323558755173205531317645089411294933416876285483686469264264681555943438808406411607451104143713352710859446175064812870657624925997856557127989239611646609554884153271900557996851562123057572013449503954701277473177667895833369883699397145026427510799263404965381353235968533247513029772765966717281987288783477604759083255926175194438986349839198380110859298245412400922254734831569107576914588318870463815186350326174660372433615947151587826288247048121097986042372717970576484009609331997127748115053486771030722767185752848806512195921670710103822637448514857974011133723094402433017965628861658004247225406420921536356275120438009349838422284154001023639351439351262046988194255100106956649481512887430575395414207770221632750014732858814107561735121792113431059707690699890091502972656743835074982413541226848000536245330331945296725154392706250650505733414113665532957774157249185419236812609995780697311543628782031279603594165426474038847967954322329645315945786306220749735802351901473592659750036402944231418286431995062498895366354837277206651492920092384447892740368939364804710940219577073670494443499095974907170631773516278706257895804406514936922256952502697044610322591544751543771327133502433052951165789234910660746604855516987559939983523783684456790111918346017037403117699165717372465381958791547547673097135528247452536696110640716507421289367516998465658800206035074273673143145438679004908005897058842864347157742506485439683854683316971935863465847319301704096650345417017227022493233593059289499870515595274969349807946357295246360473953549271357957345935441209365000713714758353699484050012217868145713488570994156859023071156833945027990746827483058221352439159001896071673959004448713843946783101681621576831555513625075654257775437773250881596938867134818180713438596401609969386969040451376885131393060331367838844095325326314119686235815027983423095222600377347884649600777542782669135255697365963221002387488287110144738120682068963501468277116450329530991363215929603547065596243101562590433455618532438728008292009647430740495388951250007149510897091221735896219134554009529546653780277945681748619293299376424301521915319269330331193917537233858354524117958345947144780923838475625173063143918418679017374475575548840396835823651541157572597392397710089877332817146508503454545067832615031521433377000703307622189566670537536250944831347037562276101587702165388230181783876129404630816169518815200602696642902882933966872507042670976187211123922931874083404371680906455405911515413694759744274284928626891734786099378294181488989099708851957276213969984016519544602398116686762625318188051769019532271837792807127963462614956572980647346854637034119748563207148727773162376723893315139481431528420407395716284763756057208772078253644412127333927133955060199723537725797327462597799903750089104548313465153793410072953819323681870111525796060386926488505759963895314114979543113813840558140128484387974178133253753813292067955943958984680491198895803390304513005503782019127754437247323776772284579201618305568819701518478032900826302908615977252906520694941377943289016987801889756483841534412948907009909937138508637932014135118750074845830447206849792313212947151335991302964718762035319129921939588457195856034604711598089718516264693059242602674617411274065042960617596391903731921994472823404607856528959771515603770051130942735376583636209211863702523455055817478612267001361936258265019776801104153640479964615055170057103650853171938833592516514957487996692210067145635995062946378022566504497336333549462863486722973209165454594239463558877793155770027877559569106253353361205262695041917394973410355650103383633289912260010228432691980657270994266739917253096247369379398848643272965276485189313789010817021850108217331374684010652986553617911613351255239251337107100442232089863051490865855036783512317314903065129160104084281095662652658246927629875659078220866420151175737118014060623309829598389999435057115118813589726819590438792385200102471645757653242799674686095529875157867361790990433247510932423545467022571773277043895659877778577337761435209872385581963033398454193682946440041729887443882608117414273570765306506374129385993043296627646930822092928619255935788443758337995033458929689925781861136519629042153464855897705076454863723353850204155397474324651886597444331141328041877814764887632927745084739538479077624768124401261022279363833169184477197251012824815218923472966171593945195222255567091493059708536788268320540895145729756523622439275291604188676146236134037822836180050733015867588121747602540842807919029373922637392057347268269903293331663820476297995529266785205294001271444361990008846169763664275772769720112704450672695543765605228533250551283270068923008552960299400549940009005007169626233661066107144859387977776473679186069339674047342053962727167843534472517764732316954393073106829686024130784929143861013386302454502808821191493020602427433683325934631243509977322758524580888444273214450107159491886029171578987305766088557323179438272960671711406382460398057502551479437589086116878155703180731879625677651588781963703416059334022802734692625686740217268294053075729710714838596275893372569929514946161565786990150536293516028634355876787268168329362713890144592037847750403002048241732331457877227505905509203973085924471553677404312727431981729579128483718109785641168721078429634892608046460691910649605823031752384423625960427016080987808675121037479493620385335867591768002852628633092193184290079698776871841156542554952220755285232135341147712412987937333680569728390622695193036212433945715430369986685339205959206577526070866025702390124045436168316034182984108080958955293330044653795482693273343555578592741561487927536613309715793995514356903414428669748934351052406997600917394253747162514050914261517472650778717735268563388001892553661763854505898213486108981507919413247086506857168664194840595039348334895767574039766819644632254547002353923076648940200615595754851710863596172336706484787315444488965154597257809974718364466831360566060695938200388488786718574774008876501892715030333764733383796503478823795703087940704838125555272974552435716429560484314720175754847931885684212678234792080480956843922542070291387440137695203110093383459394587522241970400064659968512051221942821050934618856136926643682036038330010911927082464695031701125646458244569956143508850838035701806692891538805691473776181087413784341609618987679534734454557409182446748702848096533238531102472770252128268610364792804400913955423273825094290695639197209686132556426101969550418714379788143767927312010099716496890754840310698758128308281997376630966119288665003236046820365591728021895066637936975036960585194098905659093031849707626404758532605093155097918786632133748253479024480113150572642007703797523658196481730013106676705515910249436457784302199963454867948938221242857456039370908624103592774296094612819343488255780025023184475289673785101624784821219149155700613197528427445886181754051221873761700135241371921151162448451217141710141990204808939236378834320785855946434052764088673346060617744450004645899697349460904631930068998271882008523356625409241508571284724406640536542417883281447989194066860878952847018706350560194039054355901856570371626651939362581256064923985724634981435425053959134125125989167513934442468197891126690345926529260728591553195663996638301282719600514886158051451451539323301282385263016325058007837044684102495798502893683322302185943582134346957150564087380224601344593275693010927004418437820535550732304600252122052691080331356037680341972860157856131729414182647203727078044727583732140091456392560486284872144892734949853328875758658359567628848474030775407010789875583206201576850020897894800739983719088786229288152518758575128451894424668594980114943776616563768479819192330066306897958170268346208837335137231405280083501550517718322769377776015313126714038360585878639309670182573973513671418630378128011801035243407770522895714741537434077483380559950592889786986664917975944135497116807278154227440876243039329457371775136666575907716500734008251295300019436097937979559296180373025938812178551067374330272560298156103641212373229826943021983308303642792115340063625834488227589169499773710950451770169995160273050961764114951825071158869705214191766818954885696773065134280609324526583024853421334492708339337420992413082861416448695091328720763926190726977185240458144111143414553348642073566534006260741139598395553338819022656910081670613684528145432682209440070308487765596572472495165115672911624117454515916072692904716163566903259036135862929286636786092199647518898938207375549647441580387115175680868620581110622082206976490462252129166236937974461311490920332480243574996286097395983803623108598051402142160065468360469656474929705920033420420026352442920689221226045680894048661169919592976473303275327815124253716775968953005385640408524342500840532707950260336184524698012359534083690414722314196801187807267108361669041612411870409988543307430458033029000588304625620271212462014460195758077131446208317344739609668014604584395772564651664071496891519672148005148246016702222410348987435967515564609909722575677644590375658807032709630419339970192347811726961882073765859614668257247178721703250680593657976374139258126910320240759599875294839751116930421663151621851802388566575111725443347837140635590638202315208352320449419695280577880537259978637415405953397142140494966588613100435407929190597986603845391963140595418819662442377985520050666912495247658585363182644802880757000894042880490803152092763798222491569027948343171549629767210859977277637803293370737175554842049123149553398049954935119527043956325412086161816628294939566873000890736107264859038484523311719985239399771825112374243288026714998658131488445071880140712059083318562786548557298378896371487751609393594943703341267090851957499797755341750130445345506857733880611597569560465645464637530686904834847358459066303963076809838390481455464383632494975817236026714098554697734405171298557294276734120100683493432925695406307913758613532313484194362451616155914153129706720379166276441045098480766410084300345074090687089924448751572090534664769099643348555969502097451223692662082963188094623587983658573785923804632753426734022013349022749323100449255856106722257197781777463729726255956616982342386037870477138133312735356486899173953595318286224527672035958575008959877868587624355639878822769110898389442510790552070364309729064091485553518957672035027184252110635738927011935392582798062646796030675563403086029036210000859177736473093395256060415468728950958763074594664807998939072324608192841172299780076881655157284874352057455753416176255831350285467174236754895932669392453948545204518206547351221719168210944773705994811724823137855053395372778196461120887051731628585974742907871017371426452061810194162296037724520829495262177224372930809513169488449596977984147317738215109401497211835776066332779171710915462063536059857088410162472116194412196503438271512999538132444822754573455859646944885291328574944941352092562678409451850039969911688594159342335917988723701201302903852308563643498558167676789746234008578782187655648958213988969149320318774884480843412681804865683421139666298608353970858255069426133073629141510066447319588494825563310157272916192538250066824479912939782548073523753787465818854115566398635909268741514273587920245087540062160625182405312890279639615985016293395601131592114177047961250761243428003076019144640594471900308541080828047346910018041978306424365367906903662395475490278751753730949401987256490332141026502132160463640344822162937344150842274505428896940342638747630814698420254506909011317620904713563808078553160791351266214459892697708756736189085501614123278586566327958980149042378883940648540614992669222541949651845238608274789412525549956331481555994363077559438136919377780633036871756042401623961455350963103239083641585999639949568307059249934848860360048539839884725194410095997004732663608616027083915480704475800354506284351281313448161868545969262069573201358751223577619679429059252353142088882773927733026843614703122482104682735726109344270951592262287858277116587774513772166945002301477315527365525738995330169561957595906549517005988675564242277888392321476446178134484731654373308220372230644181295399387412263023455126907934718127505063326582503074047230293707392585843021171125743327598847340200346955963289119096721695157840987923705019024904652996751130282606699631883158325051751392817241367349788594827749575357034434923584680932177022071575776541477930366837770623023023944669216089940700725252802450640714253854831505535007331080389491170466173235505590105493155019312281572408679239391980315714785325517353550363596919563554346148690731669608413150041956234251673246246590901443286660078532819686222081258471609498417958087393153256798840214451517170672286657552456642169786363445030460638405742572680345283242081329239544566719711946168441585172515730329669945631004875932279124796039958108796244827238734469161130970626586960776100475745998046872126415974356003525226510760192996682957600484362859005277838773359123399405747274602808612315909870145962722906990086532293569602057293301486013659172525626758040839876889128772061292017250491076772499726512008246182377941645153943042861561686522980692204499058558821806102296472723134494799224326705621776253771071607815392165076017627390665797506137524784926400913079327338118701754346588920454069208437995812410841504142132476094479026103954291391760552348602892776989673558895104589288205151569366579791616674393910137209260078393498369031494034796403934356860458197571053898314130638769176210048574681927601717643357741006457824429260786701592495335914799179929707144426595618330141968384829122883180027541213230162090740679135785231331974683691245011171000023465580822239231780101539529358643758200778809576156173222551938020995274014862867810365528055681108243876089828493901929985234352177847605163411496686213669581326415127143740509464157427184626936930909234063851799026341582007063080147302042180086888165629577392819488950192968643438736932302005048939124080694355606159349337073520258408675956718266846028165144031046548572918652536771436659537107177017027468778222204266951241740287711854204229668321253039427001608955399989296956290460410641124082045073748075019618766105682588202194706502812234573165904170091969513354787007957516913633633616470083730482853977607033047939454947369178448535941452454935813957816441899431706982062817857086884530071819666141231102005451147199079862019541466747425817201656065897054095761494897540660255015540479018987894597138321813607968725144947399169572077191990712463965474358051890151054089533539038245981413975074593410420064472973053890498949683747711062937831471490998455097132958875283169234318900027330831522154174970487015821178986118995925870115473433673038170926826017066061490239636595909446458965106256094452172197631280121311950854868410520285013972021942829246311750995095130767900774229517161549643386880014360835468571613031848613510853573019899073931144579803537526999228655098852228054297373227722399353006352864725512504064553589283593290428504396920039112910462769241097484022303562707194244805796239610591887146744543632986986792324647715482582572223812084315705738206752678050806234372953768744474895556351479180995864513301673383502006902162237291771296261939305397103022322012301507267772264911565127979003627802803931243899505131451136762636642912626267279145322869471913446399115544611316466555798449717273674750778953177871571692080310796007087717514736635275514955714196635473651538698261169655148871238275490504046894001987945646556687844859713618618956864082499580075563192580563362888671858461593110309577718232063377781298251206722270120091866987140552244069510908026992397601942497507514098607297958160964515208996779870734941492750873584749026683811110385499386128451015121436133960962380960495665740895571912325589164237984244070282991883025448550170142050588672975956669458675431332508538287927202721894179314670339781787646085596866204003004862703590275851402684156583756762007609047903163081604933963156654630162223333833732013483840490454140230676006675383113161763620505410341928117295697042712011902947343848641248951329603954641572890630091191726938354064326256753778740499084791606499150132421032043649559013387921294692241547303320601340257038231825017351064516784848881886590159040048828519910347718936387073851163985560197004699279381364160959311982554087832520221246767839203894036099776618720706255708472603865053250387427902879509392224745923497483275716424062985152299752093948961250721956341611354144522877114613068065218644632142701935911551517278123949133957064225192082521721629240483381349611246437988441953547617021230568102962513415211800969375171129401497534181393277182958360813117183789114123823646237134329608002572759564248917361778314097665482141097475275616828960033574686644581488146567232100434013823210169703684660563266012750008379281772594907512131322455438305485855619264464071184867028920952322751457366057510781286886049714220493920709338963945889138188229601340388067382127307052070752808984042968872223343482641800351191894608524197676880089694783517358239552754606254042240087654813300379475128282014434720792746171277641448465420756532404393801900766083528826104622146299890610050376898027720606047174776302178787009593491119281360532849492105121403902589908897942449597090081827883001358326026120364348950124719325962163511817599336485553931270056282251558933480156554188969571429177247275732954375941383862917021612703614084090133490397327668835546787939514646222424284640005101464673579623971339944391511706714666395630397841246917371874841576074467923842372554400917381979986445444139437466949183228524096697906638557539632461688762004510521904503007726841060176454504839186252753354581962641524875781961737635256184851987903636809633695590579739012786549711555908606611038870097878878945521302097208114687889425687790741835620612588224180748956697935707523631342663788521667443470695730735823765069975808813263775415872400762542863795600603102120235918582737567673147566379523890846192774169806560518240597335351679937060949274256437076341242885942183625670560314988155779774521558244627229755319345215962396885420896862743200332128832816973939898906000311003328018446108357071449005873994472082217667631923087023544186054459946472711072336101569995761115862808740278234943017957065056962825102592018210120334896501478904381290275146375980587862546887734230093035287174101961323954866335627988875948703603498146213293009068145895466300699880020834191417104707563184082823461636988674702170981477872336135217006433026472656496039525562069112706358223309539235567185644560367018070638994924032122865613256474358318622208932411674393614477054306913353025975251774302050812527869232544671024478854305868380286329942787840772628519958893662838664658895497486364372573401153202814958997835877312955716642011942333657175579633997437870130299330234149465952794929848511806367746540314315828064681206171959912519477094524575988113158060703433937348697765528868846089269431186924445508545879239555200755072150845254698938716832819641583981983463600683981506309343364783823753455044542771932081775926881161183746387979813250552425297119458096578719518106371408406107344777043177583823435151021482777125653879826560763631559820992118033629894832991755452158148926236553128686601322557350543562804778532263265341566631298592731650607343067757954118030230221669040707928294702192376235792266017700189324267850704645240984150750933600775780944367395266819714369245757596593066964028790398681046647706409617234179100708608947514602137980408836628324233510545682227003989519227880391591213561538997863884080690786591117966266136626111777744220049672752037956457426726192393540402648175171254407965292029922035164060007443231479276139036726229305921945707636068635190563822459446173808052323716229043658007893477169825480081865118791672525138550251853223596100766114312015939303404259310856205305185330724993430394539163839385038835534819125504182306698874685197526297970230778330393751549123475260302155606558971519231246890888011159203506098439172635487614963529907651738850376202168728126298367819223799761741797462008828263199783355946850701385492412472105495187107128487272442622339676437471844719642702058195751207032893377205383400091151458430640952474274135411133930574272046777727876215826986296218317372183119006879395008428615390347320957914952632230521826448305760188455448714811792329580492859308632104408996596337302197414007322941058969225693165696403503780894262664644140386375896614859795797512292854923875563389484078593995139318106356284474505138397563099131937821644962708492728452176537714487929741523112521950437997293409712269423820121253432746322696889143571166999976856721463336623177661076290210997080727646087760300720990324954388695837039580399508001946742902330139706126560586493750871402014562566501567400883069852116950168932582546729719174504508012216884224021266262673053994072091210393085047952711350211641351571384684912283985324734679737768773535918169716365500740629154188897992421050160789496404469055499923184055934440215762922076843320003916160031310063146709482119742976959758683093039107006922242382414083812838254620071446987367508849101632963818117031845800787147011695291283967759369160670949182385572305080785086598592475705533999865599472184728913605701807116296990182028048867245805952173394826208452748530983478985556409917976240567929873006850490454622886054881058794139555682898855165771164031312641484994784266156004238289097250650757260544987393878394781769576206808715866641157523416518458228051800325742334252484597023198185294597150261268167931453044069610055330840920357854672694303881506266589116070953885511134004054921819704254541043255795587900455283774183833301353870884330291697954787820946861069743418139400923914484520427313248007876433867062003493716205384050268862292970983774647975591623018299327765314429837172709250898143427936649797261823592842887717852935361762903852349673846721501492286921251597393165531258238495444760557505519930384207181151053206833000148049255297079293230869243309821020422251963344287500059241743835922318804524587329200781850332319633825888140232732488955208971161138987697540086203282754660222186066560450365357330345156116039242826394093795180424827116664857703089908994901175114996311510794199469207842759041631896654447497056577601877766092474100520843599030932180215306252524351324180844809937828544323629491009443278573645319298166008286998989552780537266392206318995785240987088713733144545454439581577357380806175713343799600396852701710782981858041658935005042847203009780817597484489899945184922846359913938025580869570346069022433323813699600967929451198100571801905845606284394089057430011168773527228993524078761512679120739911556787927243898459056733241510775766578575120456966318480974693167234334838905730754085387909154200917996153600553445550792052709118236891803108543975034539046617343172754084230092904139826432491519380713682560011529229678791223355550579872684058037909994789894107566520633484879111711917737824135367833162992792379296731480631539804936802478567103319027629477838180831947120992418000195585434803610098393112638483372328246784347832217457396560803040314733829448579278077131651256468836981185210011644220875707850340925396998667973576034000711554565555066598987940860050434162209162766792780137982757156362253512180723802864943397734002218177344113321801530212820379258009082385744948232444757177241613243154286760802711490605113314809017754920849870200098087988777265619575055088623233019606484454554677896297957370671093656998979782578276115380410714694695190800192242844413343499605038537279305151059058336515397129503117730723820056424169124980248283909925699534028303569156129253228434506156046939096252243141849803306825395113681768537492341583046091698071806220617678196946444019136099828838508982524530093266453238456368301773591322185827951981110497873592597434258154584953439412122789882915057755852646253593509723883138468780139340661002256479529036229462823593646906837369996975033294890239709690348675736540156943121022782645124029782616553806616120909740832681371247761396902635328767236842221458568270621929956724459707108170879956884805711079284408871678784367278775450115740034420959380113165079009535937556411998515377538359669315226075972477795991781721979897672926235259327951117610807265929248692398307327675660806750239954068587362759075085980217256823387178146759538719079933648800426572549547451912405365773829383499889511328763954769467170791906648601533861662135370695268535952579080880602045669680719633875271947591433051120756715049091150193776056740589786252269795974817877071575166503479214880064724476628133640305825141595685238911630563258514252559527913174124753953696320685468467262004832028606038980328861089112228779728561672757380409240710546101599080888593625945847616432145425983864860073439940353036275015045247600100872021932877023559460686541000111303111443490700025665170675097601513293948274625164683050159035051700799900244143971658453246769827631414493493339600036929461516012837198469080284927043589220453483970586359446280428566106881840011310779010004227216160315385184815062776646839483335698309530767238639340708977886616040600787435287522601910123371547011825040013600134277041193512560134256876808076992130638945439133998453943657070348200807508213937288828013549038025799262588875726275307055823234737496253009484873932903900949538723392096423811872095655253240398159026344982581555441500860223242194817628574426227275918251949712345116066489750162908019335234730321370466093226064398397018375756958312172429636048157839434824448898490804706832138481159626774239244191740741560744943485575555470723303456701976217330525262540937850952022605160640242444459274880223653890376186650998348878124722377437856564686531465687841681696387150571748329582941154100039783900429795049362761445402575001368900223489380787426999163782299503634476280603194737946360028095957728999944631743976749114139546058796332778975400371697029593109913083470675133149410304147246356656033545369826827126704264439302805598046228513271476834322384047446251343746967527870978093495960214460040300895156089079788528942280367581222091385572646115686209212703472448097223715925947836648472016008997462896195496689097482186647122243721621469989619969825622736742773609280996018884276919998165551953869975851172615574201100620705661655744823343609902544114330838969355811129587709151988467673625438659233284651440154589437740326751991622140308150840279586060913731443352483673061261098144306503378384929743052720371162177182132496297636698145394808760383462110224189175602041260326497827728664585331348272449226253756333166632024297001414379504181998507552577560136935284003574412230906446342644978991631622826496260110354727138136394900304759973443596704804568159001112080867775172819760753760231724213422069948961967750594921540791603868180231485541057239617606030110624447622462389222496255785716097316543741150363432132400684777961636312046589017326262597973842983042907912296970868602271497768249645381486778016344330296489395494869490492248755734388802769491104349016452124287724926096443827412820408990631715354598874559384059933945968350895164285397327683700459254999094872969410997905272514350918539005143202148387545950394419116493002066106913511009237373013773035447910579413519240876891520696416236599100342358706885767762661241119428177009438740538759700985303923902278693862100165161526921262901227881623517677310796223437092466031157265227739118943672831735303446489315703442356302537378427501993855800210435881469002266820900155961459776692193433550759132821284136143209382517374964987376598630788388675523044601226629790623757085069832500027326510191090671497932594808163141522267190391724951630443449280121447988244245766065595117509780056928018604041818548173456283481815197334187316051388771042887940262870312066371671531138506197350035296691067300600391315599628411428767717240593088900176645765275325104886154562259027101797165194705587858050344505926162611852282057394532637126909121964729034783440905391906598248856675485138478130608937135452934073260154705644871787716486323768376234378138867365714100667419296973779054937415598669067387012491697358755662428930574437579827875141574210860527645969686074496532276339934768656400680014175700739404478169864629174141155987588448431456984250296056670011474317633631851929355321083922854444215802048743534670919467157701326603104967572984666930930828586436519396018191351117421876009323663786034651103015198384537602566135749510833502068326819310459533752768359658795481395175222531074556927293710326940934677777354586539667629693518511948015841376924271948918291764760190294959994171083577065441853833543813004862615950291532794484593569129257441577634525647378164643809878630783224161544595883404074483091296943531721631767133427518343964431583183918531187323193216110214522182742611957069838098338208913273599977592403554102847947747112324770599048400502176436393210195201548703693903445823339640212311014130879051639512392643057187709614554002273045251457248695077494058645893848489342255512457511501738570923531244657133650589851705049267140229869967161773547661058752890423832118899070567601406361276231781812507477788807421305148621809607868071240370318526918593934969802176803834953568132952643106100327478405186069723114613657704093460252135696235814236629544428292090545991873412979150781042947352183300929907704328504674299626230805411988275389677918659376451130943045762639054921036221533183571631546720748371160427361780623288922787207721884281387298570924885482713412974510209437847179637975043254642930693923273415428232221086000966068306450959519664204442101183595573382868466075302165168384442485328503689303264765753793219369469035085197562140127310173742515974573094617381141028113822344664781347895281903932964994802049134243096387610151773253123055340996172850108376399478257439387871279802939848191106363691614887533595052178894660523487234699104779227208876522470895113842496207484503757404449226933333372576598470097932645399643818181123503332686760974832087317665645673067825020073557709791221443922998647387653585422857734069467126586569632256319226761002363294036271250529294039863514318743365196128826541100724338624498980150377433477858673217303703638129792600544904788018617190963298844482515015192167424181754673370130358098806777206416581694033892206620388250218259274539656695002248200862366567193639136111448935231613087582916132969680407795793177196289366861524271808596548006494845228498398479635998789400768615261753847966104917607764971577448759515115593211537916887956283263251805672767546984846655090650006136840108132166405568469983754594794761304953618609522245708738101072287163057701676794117781707710892771126585975526783503547021095126154739571088868772308436125968446075628303592016492969702678511889975288661236389426764050845588390660183564703666880051231144690635082805340613683285061958647381733479043286009315365766390903898127292529830100631382439162662052059754880688023860704818946373647791972999758966765562513445901438600078156637034347845573311749773800487978863524114234052450360169257381199596390165680393997898360642130461171208738459807564309918966280909751063947127175391378333251417253909579345639273466305768579518122465964491928803912498882477900572804203893976867213752215976979948174528020544701730592080729442466457685945466066598691150114472244302411127947572016162913769981424273426487759264849411060988141620815395685225452297842076497858305122128068416769753201251628404520817980648259876207207501494793938104307083312964747229732342222202092635278775052249941569085265148622126388543501754381794505008526292758795244672950992024968814871648198424717424948745199317911167756478214864663118946091327949987171735092642165129490304311272555534892445105353530684429953381125855255837945938198074876031579190599859325555723156270581297574805249441437985756035308749587413221638454655209867197878369858175296069991308299217083236534679070483892711248012004767371724920988189571774744857618613208308334623984860499738477718327963971275614045138508808913602112955385052768086066547850590690062815207440822888260546811198734652457990743364698531799693787364767661609646309114039314722195335727115508579683866238844803406084590677078024060040785659568227872379949520543332004390725849567435357939257720533447809286464080857760112562717714198906437299255130898638537771873002364902061688159345613415589513677442614173831015720566935928325223654599421240647365725549913174433355353262636830313274471601432836097347324523271327885202572974615948673743707892460805943860252783601940811772784457871247903983071574564986358124646901312520551709713130828412134848660553191743222096013562156492591777559729298219926086893553891146414617269169030601485041280379859905021934701528300304186180809026910329468823874234294666437184777561415703110902131660538940505727651487561152301843512674421678856729667295014221860876434138077376793829640925763925846199643062203117938326795379410170051938822155162255679922659919970550632306703035163269947010553895153514018261800263296681480728733557922734606133631044319752501139932985091384912941425235859031130868589718729406610747338446873275803427770852968009831458866862316663157328968013914688045303794181501115134426498880860648617325066225762652669089358932572652285842097807047450066777802617089495133401259359303344627057010929748975497884746037372732512265924568990065222218480347467374046310063217864051591465464499686227676156396223744270874836141151592781151418542346453928561740863835178285021232265240338700932600008244721055526664457509840288602027533741108835862815148191690564263226284865416923510826605492415585906059168638439911255220124032841433805925656480425189665332074959162504544571068973052491352393582231405887422640888775722962801120668439802243967151375270832564505703107807592454900498188707386312297805556948496461423219977642160744037880127733889796420102227266023195947649531178298770695593808003867264352856161648041551251036021116509684551181587498352408357028148289621580609284105714916357472462427375773316632504037483450873804791856292641919181228351493374343810625317103820172372408007619944329459658587356870049227587690081720104284243645274439487238410476170318834983542178025030674448234383393873390671377253107611973587468657385102005341092320072590825316083941956849593351989864982112042260105446508638463167230764491204439904651085332668557709427190345461245803537714244490418997009938462800776244131648237921863227722164578007881187450981726725159054574662755984373087156177952460440440430275702686447124909235003664339679054302173653461083276524174022810667357165877698797928364267375079180905524016868744178006488081952754850445220830147276773778548994336780367213162357933944090227830349154387198782359320842031515657553597026889668878083627769694260261070394715009498233318534199492164856542880386780258659160105890553225224344361382635517126343489069612042527132126463080103874338435914673197440992096885343502320217591673342967023183929329472721252193723058613148574759410121032174760305114407409446014022344107514686389249613889620859702394021305494146669491397749721425670055047160318525874130709433136264916017603637544545836448514514635699818733441019734692429141821461257805515560517118913290381658372966547167657146275511130988848294053596702690533691034601115391570209143019805409299479511465531123689212057025183216460006744031780746306399457690449328039637323308622798318287509573007703675092831305135595208445071971946889972693003619559274362887446995994348841456481779448186473797016310534601383140897175802861752194103525183927419549005559817319443151731408986099341573760341460386865603169610391138227465460646233044179053052160696316343475375837717223543191527740196976704253919413482594093436657036351774299601552113447997790773106946148001580844087500469802550115944416072214181404699341350316770859956113779457624878104883566784993068515314505720626455041049735805659228529887618572279047648910887480821047382093805056102194550631549164604122799042152013053528687591196103546033720792674532320791869001720110833659364873267875344544989494818106132590709345726420482118937034591535812549115402846467251556217889697828518060303483003511893028240389312730781030441341356783415006324778309790753182711019861707643252521548975882867782966709575774753254775755361998329789616813363500439753092329487210739261528170581333314031582036896753552035661591432085070049396427040544654401916872357989725089365987607523137733267179409385199829244334547645827688956091082725348066176643147215908809594072482907755787444791322001378572134281514769340929634024413032683082464287472971247641237060410847873177217475639729988442948534562786961967211446348398037155146769559662218932404428202775390247003350155715238060843144376633174474133595172754821232143586253138541424442930881124619815954294368565096035666900851665418094854051389885656927913671386621629259086332856820724178874534384398245079706653035860197565828192042236203922224205063168748016061322071296897493200670190808059208607477729046951541039295094016872499040243952786339343713727600277391607617858976737530787951383230994371973986212510636407991577327569693326933357327602488873653650700436605763005701412729327629827367550007728262056945914393685444998670299216608447204580661005311009871994493382880718184914472343249159561289577460092858860765730201358727585777591839774801619791322555098838520091403385717666199332918316645544467598473667416581030906744903357520250323136419777823511599077358154225994618921805309995918859227383425311710359175995809585606194902198967129642926125120151571940233560644006278396621965302624101062315020947344315255867920998256244964524233830897191164462891223633438399168981084785795495537846464949607335072853077843184381523201066227366501587239248808906861463064219211214766016977614472411687774596937463471130215969346234256636251036174448270350094464261568410432284800453115410704230723797965154118319858308086921783989502172625134520204962372704368611593999132403950888802556577598962702767973164276153740844378824137993669238992667128352211545036616461486426731153023110332420108930973663997635433836911999350314572086305486183580535677262814274366632626186550697741832550339681060569490949157650124287113309816458405782954702918763655592023250640516856947943979455272207375285020849371187760612955480040670851380146000901076282723444986166022496221624194230275835695537198624913964456555788007073622524812907537291045022887555981166859475944931286334146818416631782661910947616352687346332701409724510546745418330355557219705192713751203095388515632489876787189920169940150290751995632472616157729742097197670350976817424450185237743949179501428305898383385007756059597056391245524029585098202919058988492619626164403264692054730836907923328976711109391997173950800968992532038940437478224076894486514153141248925570165068402035059515226683891076949564763861079602099824858148771824144801988677675506842122891551412213453164254906463952557732634475701241638824774092299269105877761035042855098782438594677561219426394870773984583444106048888685636992149839181561169074957106331675464476564264792310274071542770303701897963809893316515462996208910833316848886050303470861764737329281474802403554146893207498921778994503500726177376501536955470549858985608182479973624653119365829381174310464250166637777106727946010426862050844029379065731938231965237434781739134129447734483127816999937552715289254112841602892629731661717631992194161637266174833222086825386163167747060448842044513206239775810677846015847094035962620557535104745114311551629463601896042177512091165205902109408409437897263255639005020112559132673359993458996703319843397756532884089053272786972497162436564471193104092088563977439677482973248774288644248043385369398734225586835680978357675989282846780034637516395427068924401009170882140162559594986027001601064360314509950749837417889551873188656928535729230730294231004034458326805072775512570554244439067866124867025310724164096646785200262930615115956777272673624345682850576986713063592490182788532978057230451888589548872413244560887969815842217161546933799557220697789373522900823766590862955124063667764043120449237970031422651389249184055543845908369632040821179934080680263675929121314041116155590714563119530195960275198883615233171161756487242971804968039883769978948384526086514042596209310347194799405153518829737356577747342124391546534790720001153723677229907250829893322388028091586191976011729916758541145358389977015951057883923218821109903140687823650712275816124360830137242742161627473116424783798515892027866948665034607660538858439574473051377608606236568124012245736255738436608858039157310499026122888146300025975000167933004237057478666062219856979033538420343753420821487352391580333994467142326861316959172486261137106516511223284982614650278785540185634504470968592095448598701326258606015484346726304479815141437019063405610254038336630465007897178167735460047647577135448179062986461603617088627108144752649990406580045509459315155014745904979776335782997534600573851851608943283789474644411882488740827215453991068140321071342629215952593489716803180357446737207271111964397102299337587851388475437596903025458435111342204778858522974734699736437055484019513703097537215158928464410157866664335061967839813571607656683695818368240605594762429797624181320178142624481592356539038331348093033240766911588424703776788515238470778281273886442784740388321141387602177748669153836602709520651876154203837829620937879751548533402097779992674695620600246866409280397333148315796088023776207107262570289464087040467583417754732277919729213624198046154310307093393213037899652821205314264799333694521952393523775620451624122554240173225808700540635951193542397608365621465350421189137592219311890261999953422173500874171008254808701170411322073638679130791983707707692527097639069872005653991980807450779329026926279133496439597391436697277379119546477750103840176492657672574533925124240369949974501791419865222686602357504906768877422530631834311626295342284360989139168353214297169943727005394978407386873211785779864671423083337718762497200956388919161977103348687742139921684126092796902735751288969819906871476398214838291460171281213974264586988609270984509242598325996884693974688318834531347338883884182825826875318478808534864303903976102657423124200423208075036336078728223298677674125795767582337000857560554283763666950911100512181173914021940689562567111888814310514576364543913708999666219685447440486551992329305179905419832064754031558225216640723691820799752160855711661149399590763479785432803998607065948459335415847347365563685776172207823373322963397760358457435546348917313704694652412195879656880709544957871132162757608757464327896388411675909852197972947590130727846766456250700097374945148435870891781258268444627779792033036773221865798740223486644474753703577088031771651141909405995360230403648588096119583432613115091855160727325665556704844038730538454516918510728411723921963821988164395111827435170840837889051826572092207272827079537818925851348362390706142974633761718017080584042896163603718868056593450390768039971361293404814024007716828078595969601046376088734200187791255947789678612713915295289817481666925830102422991344912985819039344592150869273929404355269904206789397904847920980009248314198384847347216515511241504633689613326191814084600539477120679312428501288182505591506040239356420369110172571518411454201571462251347870493943131943786380167664864092937557707355152014101575471186535223197998858639160863887575845309051633274184873087311974460183131960349705421669145389506640813307680689841708333305483309851585764575310553062372769884628627998764845672696370727533866769775698667735141728456668830248620375537016895544090450078329351978370069901867962819269228339352022602766437416119753575596491115321693959712558526412622941342075975867490567209298600281811840137188021961531441419211229316091067589872870014961880257408475142421047725497899989671994458575931810043987003998408998219514381592807186719353395125882928630945440507379526426665018227954610247910494365793680850522555704691758565020066791809045838475319747224095311815780979059760553081972707509438575731476940945894335414599283984792313311059225931901982676539092176929665230773573809349617584775254525480047339720913453066492303701076039282700437408934684112112855254620302339915579427817434045610093346881008553033178730426995005394319122365562134333140064762992428349628243427714546620077806087152465991441972983002694943010953136005653945863938668254819070956916044448681011575803972077878573662334725291401821674593510484033447621034945459415325965905891269709191921715183138850607569200416579122070961175732498283800180883135177313004149472739140004050568375790713545279884324669996069969253289482605455741341571271989499005878395494350847330460704866308541580456224893719542365558851968176686281975411461887707761953018023743152415545584808073637401250074385331588734557280420578636677347814673381971505460331337558270500225180899874231805046029165611914170175350413662020402053272263757341879669522619606081254407841708605621053375941866880428553325749567411145046985410026110891745258296684480456026082351757720247361083689348976499668630426500194873471759126301257214677576857245588858514131835884799674653882845625223139080631138684920071757053262246014001569230116655070443904106824788697187249815503440470810847937285528420156513899472474839012227103239344497763072904212343048746485490851260702207141953920851778233981470791175566481909754011822671493075588736163635324560261735545010981977210993962380621927460158394694252833778696298447240732684265082567456395863767252006338742688857906435999158335725142828054550220081942013865081877686885917352029193042800346229041361030548894905216043335867048023628647047005112864371222174929112200637410833161625758062757171350189895651157964973535288852827735046986261802005990377536728817412941446310597416912713481512557966723745920370515769252499153346761750032772127254571695180940935590142841255513111080628933419609299147018983028939024359615956154457660717342582442449678075526166222984532984558059423151888826553038573496716729125667556879805027603551823321634224107879074361311491046189528196340766481513017862324857734446898450814281365821971302639147273601126184474221536323198066388044924656940634013388577481267780710303058115627541854757589789031514312715759353364079281529151629367092689777788505748276214159988236058952519534852320459227350756476199241815444016593178612387819213569024523619032341007209220598266068733044223182601903842177126872908916531890751954709402114694601938411601752603996552944641952343925167473424492480859135540892355353584319706829494269895215712037915664623053975365363058657574686750965169070717137176484394578444159195473458017296060145268781307795997533711599368080562955096492387403836539535850518485975713770653504504964542177636999883936206860315355666026015010898300993621871165169603501480313006868434921287059003850047804775036983047166173890272768858485972700587242779071972702821316651386886758085568857169907867191812518888351083511224404481614288879255288572573533077981410116603800767955594870544915209776652230581127620982802928573137755382646071386828686863005822468081000144386149718035917373259258693927258465968637401005740490577694347595516556088838353189973937728992016397271566660141661993756271591318591731776578466388791684270075201246446827829164256675096645296834743485104486116619528822828557632361961593257466087149997630770771341487234509060680649104898443890206039458286818484314016310439108261246986720758112662915310869291758858859194025088392090131884830509077538302486318289332495261688203022323859373513781191070154517732101838453956417398400834945311288061356746622189780448799569024830774797042884957686107198743925979402277131217128197616335554002774011869137850970521385106926524443213935860058192795016731240644267302070578318257172326060249587329214008578074955749713561937588123112412075140325708874444077772854817792241165775220852213771526958912024138040626798248166871242384151960031848344394350960110376057843540453187997459486566880130883586671543515805895344446786866860478079690750512454601463787852468274205374592300614739242782939559581925208307183487473872327169322930689262376473150466449180761940193805700661830388433126945459506519256361615169587582955941293519574828557347907535761092109810044561133095210374177261089654200757523198262578950508717001662494870392774978116732038210977703986564974948410048087176392286965068092374975274881900173792872143849061059181975008885319916241816892968656239141614221277987421773681571232376163924541473960241065038385241948439933377973390049772512965916928765179510722516079874769200661157149893620423759258716115897427134580552565929033706307782150435338239564482730944136285696692738266965138097852712012063346713556807699662710862670364759513194512514472320852542816451652542751725545282760283356572194961955348810320667997310726767724918661338464265767878376090571263264699767440887854100159933212446578667946706291014466015846518576428735313003065991651265286067136224067564139822994794950406782531181057318472275013558855903200810365120881100642195300400059976657675969337921012851537201692502433019829904697708945604878067102714118105071614309089567327696084841533100876321915936427456287539725732389813574581083163056637714544160227974754668462551232360144864183172746480311958062096273016135305448655524781708194295186497670999403946869044030995306156861480143800978669282340831702996833193793322041082901634764352049575961198554082076520141951044697464259470250880478914277529701831531841483498116609470240870618763883638012364386488775471816159198172925326294443959634818141226805713162239702817022160041736692031523801346048817507945472572946661974135352136523280211921928854329175758213941908060426788528724305546174725799892483494075996107955845274659459043395664924853948687754150220811455612398658439217331397827375087249581352083080571302816859128195870994802439537502213586059330127078649108877332462656626938965154831559522306409330151621983418647501292092781739008363373297949988824569909921925443691518970497002889969764564679103720486550013860289961094561264239395615018654263946671156615400487039981614614668076371230517890402122303478937448861771575927391839128747021684577763880073846496439784238667379954190499435717276318864458271002289023253151349915624945239644486036635263587451385928895661524380855256203113710368556058178835604408827476752916815385351717966588557898743238584197626344439929154001868951791449686620255652457664450889802317008476241906028031790872438364176030178762697863595983029428993182914602925803168748343306398407215216392313771423535336072812818098208488730978091988303620500075246535340157886626918779319462584789707691473936367555221159742985679024198710896077105649000303548075553726722817200944336108104383895652816881793222799442101022168277367361101256897022152400879975857071245003923013709461065471092793538210414821044850350376028234291120484883651992303434335374875827007549603900983689898218624222264935119158207663015329385343889675228689018777348748819938718147332463244335123557721667756088491859653275628699377878613442568206459573446262588717725117100011194673200790066375689055368206474876235182157710341770588630078505216198649402505566026326371107885597211150114333980835203094350630620734464892613600075106068812313052429519227675967089557049274500052138083289371485513082138461309535710941648657453050415499309942142947150413704203957713418485555964026546376316127275452181223456883905437036565594456515278716202931394009876527465873374275363135768875291760232351008380862454769065440078405403052452211177608592128876549954252896035033666782800777315144874770389872877441530096828945619414405899297293529038004940993355181901065070721217080009590361305286134293126549637681271730393697487247076799481683914671570011747656848270106977959350199466459663502246387934870557097465462317546542623508706837979488834898710876181693104909748404141666974126055764568074638364202317085092861708394339185976210354180850156133407150447789449340625368924624356510548385915076674937140579208166819807528116469131048382944787097995335629547418329680616327998745495062865716376113616139700634679150500917838699821296314140749299798872783180736494078166690692261630365670958218332394622672240227359775385652132017124114814134806556099183240019928586102105747823058724824252764410548700351841483632524875067591492178374245939208074326421961305646357583912626808790124662808071994560895566189892050032539436809439541228990252230583039002373467779646044640324035339342335540845872465745663821872671165538319189526884558246299446682569225903993787164470142713249128377321647288881441891543084777130139461893434054252443945043565402244168870768173318285946076084844064033237037217153446437985217671532102484120803411820342147908757130694382470979720880289937675297978607840616741800111163883500052322725656117159772231217497179275477653216220028841853066731591885521024989691369113894043371312962859736144464422017490328474664068994576056662939439600426177727900952258287456819006443941110803495490435618607890082564480055144704231769619271416801364510651551617546463917902269762750879972834093142701840916277685852758539210896166367643028018228440437648314453830885664312685456810540857943963932783826710452970146203948977280005567653645752071469695097774274727058234982025300571414431280340117603417584564002092882944652040398406808505718201769507953259165659029738413248005572883831596101668629970166714061450076346864908275401166200534229787323371139456718205340638631541080730914040782424340515548181462747626100806837586468373385839484845028007038153304639190106551013388716430329008371700712099499097176284013267771486196205542245580956035885329841142954476688617183621856954817866022886197855470383984267694701314022110748566309395929179131760692525768970804709450786286946419433607088426887656339074073591941650088107671977482086717226660978233384400230297966141776426984216608680914556032361239253426082201648600678794231212684450849912377730591497858894893989513549298841531950262094338954913546935502720233996035926142941109170576140400964101265685193429972603674089036491691502928102018684942068091389066338225602878658828550090895335907999689956223675113960747274134780787684749800743296159587426818352464022112470329486409165316028582508823824428706972522540062280768912927643448344952690360425426073290976333174244085451708375172130070533795053801306038739796693262816108420861367189666241703972569052242456957181748830833753338608090365207858833397265022292189716879904200230592934966646214972411452359083332468572830061056467669812925638502817999621327224188463320862904670470787489865882061710696393260447648534077038360975380967374868469567569033224261564157106150750523957420809261846274243150296508336514710241249744752947758507203570983561675315052678469473521117815496098637386714054566903648681149465633267943590259000963959811318753230809782925718345821136309358347312570402309357058539561820447113124479675076407483266131128509483094582357706599106703131407164451415512468708355881464270345552287453227224343817087731842867337288917955148188243478210556119969728750021896206967504799021695932112842158922822050048058295354861498957210929692909593641443292948922742947215656283493859509493089144693792510975661164950702703753468452099616954389369887981367005708756204741918535421158869625120570755230194370595792478744476918964492124729968273151733467177689748177695624154727360944753375575160019219934186085184450219301870542257919568675759686669803504331185766666686560590965090628750760572306890789236256095762434795846524611349881062590968810419427982857058120933195894367593530581838131537488892099286100822740441590703874589082005915436123872643059192199399937006768589366681987346791127017256961793943864328346627444729771342456585696154572623972078032142146652173648700476844274295234048841796432623868257486703820429342356624995981039955211731780238672938705959892145741359673809231010175794890256782890219201460926975124735306502007985504808303445492071098232210380010259254461307247292602209558057063829685680274025226388538904371467412009329053499152940787100739819455712518548858999415889529223442831556351645097518959293021382502260988458780825832885615648377381467625775840037702322276851698980791458152335296792507443139976695696758371862194061825353101599258101693403120600778672133543087612675157565615974215912067525805807318382868566974078399580929021805791560719979952756872655861774222067689918520062349203047810569540505539551536496888170668855863746314220371449189832799295423695522112070129365598149223910616497412972642589388852257446832021427333828327216431304357693650129636331260608679280927887694428100270366007914014435710315181624186341833100118731342821017855261256404853827432777405086128916323471101644927518013107634122962744309162325582940463509185606460575478000347514782793178932892075725168989034238205592151382680174184067796219291699938389106422193490756050522475429500005736318771924782711391649438280137959116727734048141075584925333999371524225241684661081929393395587558434091108451920137150828143029384273498927853862780415059364508903472074851084424011355146209428052167726032061421360201778274769279005114377552220212893252503135627512447869302011573560941144321356933607236675655132620764873661564944884020041674031999375705958160526391283216847368397829304273119460449180884087504092856396734495640070963498049178780476161962027214238333045064905460003309728292135819799351010386717588745984784015325353910542569208382423449521025457040403509402781521294085792260021119616712560501038708351792391069397288595538457369446826439933701326611577877693602334322964883355755813957910526486333730420997943210620080727022966043085560245290661710066516926047645802252729430880313762243846968268590709228242617437754034792764275350224651793360848339948885126850676044218476660726104266266423165926014837917373918282336235710024216061367411889312332723925720384036084880782327045989018011407455850190859734543412936890530079363762121275032702884942418204247329478844258988234700189639102428958403198963122564027549339702706707957548034931704346937472081322386273716683204398255192378695553292503979945433805626082306472218822751561110006524381074370647906376421805247813327149971247845920365779614076694805440828411225391474918963783310319048742999839481967439170515356593691572831648289861487166041590589347829516927457789883138331880830048788309768516527947636406577653524233489183435253055695105814673683182551321403334083521832928352486513237623622158243179316530440372128694892175292579364358340208687942613317942108288348821828716265883239625336807645770338868852401045154961035326551320059552506217254869375034345152783930395875193579786843178270095092838715809996744582879180010572819336839042692360597384669950626763097000434866024059590148483536205404338644248303895343716712863924723280529821285026756015975185909660835202218735377085517319850680201707818635606271959426276368592620468679389807493992557371305004803923992501297370488091251565978228809900127703393312636682964360987390031768968175020505188807662825826388021914241298755751062387080243577014216398071852908583922939726487450164437151563577917834656690016732474496888146898993153740642529084009871573347709942541996836070520096244053215656505824936827229196946443194681926354829166488267670356298668271982749809680764452343102035617936979747653043995629467967748026253431724273473132948899572209777741504288552066173046977690795888488091880933799486735709146286544546690242149977944585113248291104747052923115149608724894882319630672200207434513246090686132562237869338945439989336604802843602737155319030097831846927543057586042662973224902283677595289386647415227898620411282857877453052724456179757754580735146894296803831023591279188992774544913525154413844799739398718727958400928183458878471783474483165975648868968857954371176398994123569064481215644752420865934488221651415899511633171009862708836197348382399215195999737631504957331489545788458785802754016305762667471830038868964546523555701052065157403490656325156880974191197097628778540676422919800990486182263125909071510156762571021066801754311305436086551409058731570189892080779952183387216454503479362688786037446569311755017239579792960467031672481921850249034018072265413101455470918938329335664558330542176561597247708387142201807272656606495918695979098732399712935481550023905330245768467669514131084432949744319878261255727420671340317683095750974563775676171392024950028659932328089858266345074601222813892549857043019943915798556684329468519367096689218226818120746726593573090668638152195858103927433652493400277618307715969174823514567267028960212755787074002034840886215221619264495499592014625893301290189395832399858849042194551375373494011646225579414094193860719012704542212781663230830704807237403668199934411618945341250161911501644132881783125510138068581302312252708931302309357378837988959297726315784706502391885254452685757972355083530705668001503487614134438275441978253040420934882076059889193749598838829620312185571249328848279535124596960098635541041313368570424095776746452539301847019778697538364256253812119506042417565613192353268869359204959582628118156858506671781858991780380165946770572810945760293948942964749937262436220433472375681632254459180870505170394715782002273566780767782608358460114465026518102049064397669490544756445842306612907320769725123138288844831777827097825853661652010407034343093652276940287644789308482709987268528589416480273039225301988876137358555632894450033321352427456586020916268375654228988175237225576977413196342599760106876009534544409495829476996616270483615777031629565265981364309078633363084101260256902966659393838684293203051876500571439923457278849488291654166808946861251054017783568689793708041118474521742283495702108900155182759759802233825594931624057879914828328969309686638473283239283979939936155730024134782335023484805134612824098365160346714298791569993189773056286626472500343584616058909564386410145088100313220402545173179363621777479957612436283922835171498304201847506593841349194254030675968193845054486309961724420113405841875599781559402977334670315356338301657606455006898952602834060303900635039838545235490045840169141494356473944810914608992049763015718331493462837144327184227995605527902775703071313678490648809302361480956318029216803834227063049481275134401787530374397303108729472008250036377991384525508964853976721785524987843372646202557415225082029604006546577954336304021908237151505710883393283142966408929159668444464217234505327628816451631907035536475929580861203886089575432687671622371617570420311682148918203983043209119431764966292496309702047330648077156804424664076187802960978578506955232170888450786654121796120549795061997136264299235827568679214507729321313835457519792953415452239659797955876947142330540451386305463526442630591556298784958269789505334201415670088977011798210670380875389445685756759635431103294191437354651321675831751132395340480904342346198001365875256548162900645947294215342644639729047041064376630674327348903781596087178672787316438869721038980245612155828230959882599761560609174348506902950163826578117896764790058569677804399598072348086283690763756851877449975404748682558271137821631072564343924551912914873954090432176788378012735756715307314962299135756157148316594879333590173806538735228299809922389270888668984961314828816712198059310154619501579093168268682181264385158014447085737853747690498298410381892133447120516646760136612593016425253015124190978762203667155890605915656906991780813695058658619632709535411661685565611916524557212567621801455894192228052916191464171862306281142826170168923860483943390548705533098251881277077016273706127198913032094625464568982671580378729487565253150946748358638340456373906276401573964248238943240098308347470766140408216528150818215417427733387445438414092441725666602132806697626318742068256065590159185731053001137270088440156007049635738426529360438436009488468664070483848757777376137211249735634206559253523960241868130563124384060660644228242577467803059820463691283369574382964617680126020416244136913269483381890650541522742669912316187920431343036487564943174690478840923401496832668508121345670142823860086990848104843937854640670378408690187492152896698283954217813895563744223895629309151389219955225649862402880689662945725951391546620314691965062770987820736216717669554459278618952865315996262846807516229803189893015352903279907038147471745870955886623603154391217184367655433244413635040935238468953607560047503276176187332141079056293638330286235111633785209881101777048153344585782809685562606582802020351982671368603227017029024032741683031697889425237629088495128184147629921777595262049376449409928844032485186741425322544159771542206975046337050881111671665964668349463242032026437029814160306939957700240426435933534328374680162314860170804450203249529866903424922634298163332513907099847032539319504966352905665017028888255441176476231835910376306619255942974162007101061665882899115141739867187200810481861753377735509345558668874544581334876582689346226551842463807510298259922538318163207805297303165330884889475422232624875353567974241116557256670448238942336510783870877029476844864019062605924633602023082595111844062848953176980326959335404313815718404626568835115314174016297951538894318167787378655193896976020093527768300895323405249033541812145043743450105282689391974132443830553689272396606618066816368098019090466890084421869116845402756992849411683963975328789942397214121812548454775016020470297676622210045183530439631440472894293631180855311963095841324296167773818049070677620555328296882847406176321270805156485544774426524943105680645805144087286979888551983400141316715523789015590260373568359610109718927426295655655517224252879370701916890270065597538703447870047548260897448600108968320712878371348487068192396038578400818963375203614754062658091989533390318065539888963644897077378022359753731327411617222409526049803770988797184998320968333211616609661464258814483197797119970606702283921694791659058820639625043226752107258098271524310869767297250043479573659409316981176756348813025884228465918806714753151785968939659098063799544047167410609543737785026477546501720245006945856946250258031614398988825118645845346778532771189848932254459022226581065620675466703809096137866283727357398632831917115965023373851568509681798408238233001027025078641278021398442506238530235225518526099621010124274100423616981049507898744339769594946323909158513719017031757437109806802641055576669795255524797841383372881171210078289176901944450351906978832553638367974602860420322300811072901616267454547577696541372652671682061519489061383821310024893404291602420709588788857431340970381421159851984621055511324858069270333274187924326397236918963601473391330111181487860192946393758370068892962092934781982637347532820063099092538987240846454548284253405944316602422710646955264977421815875820920781971763198330978385508262169713328183580917625183834315382821773097416294535421387155626052517470483095800381363438580758498006529906300592524322023369375774176386297958976476102794455868910320373142839121687699390671837145585290713070928420909683228455231085589525568268827186601089171507863584930045549887197922910583415066932577733397617386552081322229494614020927807117294925444478847585767561102470124176875406949267437215279311628556671543813093624764567476371822124242443637999628008457391538553784277804456577884367280730156008298892556795213385892693044976021073275448239782147353162052289804541169651499849800347220444786260180348569734228389790925101094878875641293201597379110045733090090919271969239751601314048496764227722588911916297917721656028533620928272955008800228388394864056328197665999958725457329048497992169032214664831214028377426897251122282567191330955886924226733487087973981384046632544291752727358602444396138306308362839855099709254263094312445389904886263408288420500159983731620708010318974809435941297412341106694305128550614898137995265258270284666760483124690626170008565774033285533441839534582030231935476785706662866244985166483325336146856905795303324083728168409437852110216493857670429445666005807318485740136752073751711044750491220164062632546747577520640429709069193409974524001845902783443552635925387546797409264248687578042402380306809445340836536237481240229384252492665383410678189641237548140068287798405084166771466603877448492937794657922214016077311619048797115122341954981449571911185968835179296284687132649062033530780969287190789527061010591185577458116291820376319484474698057642245232413014036916078704432519160803461136139707414113649316174949838702307044668079113409806071252163808641824239734313520034913302385524027883358234179399026963985163414272344889282102667362985482664342513024630080286098179411588816820308788975678501134464018693861230550213649531613520272566689940358094732661433315338522593798917583313295663125835505399692473155814879666778816091803014902445004533394333219889897942527651235900848900812327371487324383684902853425972759126695723130186265278199708005493650049651579424934297560129414163323439449736055861074559929949371243789128735766571680867829884058444643809434442029511934081300945219893636612699245093403595256915698725497241628730260922046141934375077406072377696160654724027884300816842015197732780870025397771837076594729587291966753977245057877759093466303016656197676697730280352911687075305126256292590960613689369849786904249999022282722202220529078405058968299267413175517542707564913636934169606034626284862283139814963032354606229924341252290239245870951203096773946635396985374549574735667000381553807472035323862506790521160945552308002316235832515003758476164588369940567501079681208679550175876450986949043001388647794276044262580817654171941633009118701144211345396841911700386227131879631210761299511006655847279105176452904640142816666653588467572164548946005799074661551587961799859959388716068550591926752841562361766480117717149009323348886615785641250690240031743988892635090658153790755905728568805283239953239868358119815601827161000729730286733871672207748899990482481178815845933981452795946575607597613617158656749294253063824525391951931668142894492321118667875749748472493954471402950667530232046711986481780658028341919712306520456740103754664590220166549296782306920382355382356547440250409466436772875801489077811127225818862338740862663842908381780203612562743999089030848362003057331766841786791173800615499904871459674202681577865393495185785450624013370201684227252634024923714743628046158864472782699601604473413186457070093739370317059267440051596770662321913728301168667089177701849674561294284674160604952693715031280978860529052774772343711396285938705364015309925230066620341178466301624965120015454262799368468463550657798604212087150915859282793181740983599920976213141452128063445918541699739488210587972196895685484269982681574836011808690546077768110298388107681488015458813572857672522076460302791480026683572710517045212133909021420299554755596575353376377301855349237784042444373370858852892267917766085019755616600876264596217459043801941177893653901253328399704584580959706130767968134249465393981878477562795591714502499163510967408891307106538814131802564034359044858637228576638670914083930779559599250765700234225729795146849560839789440232006219601143141030174587115334956638586118077051569397639886309952637260035377082519138986898273314312275342441121014422378915029940135909870033611886429092073761428057612034996103616063556779353403875473629693800276913834688711333581853292548535706975815241030521834460239270992433231872185809666801675160986561967698384381126915139786993410559770873571981041930207943351189055474128376259708989971300568518022184723507427250375084580568266184329531453553150373202755779465949447488527143125196429750801833053846729892237754839913678387411546294648381444134707210687032118149853553389172700703135746931745219519774920142409875538228825782237620751279632386607744750566832309911171736623734896967048808397180986284312513705713118559027696901182304561972807725097760118778505830030378146893534999709156921308639531424436634857019964885807882174192431047378545531178574421587808486476617840608167811460380644161134353798074608764313270116575072284138333672752117346743252906241707069737523877539563612221993168120778118251394086976417358976198040554164840018183979627682016396990993782368335753668217797466256803305737356971060920671850128848727941505028125306615811844619904866145689869952290419083619707214160966294806832375099905840385494521650771669494290365569370882746275724795556114273121495559777038089238033343597312843483573237410361906866314345988739985124664442232830430567670637182082400180907040986570250671706803886934000784263478825991518207693329692877163218499790564280371993859303291585023465665083493792843691899018001837412977543913814326224335238948988912291392156331306838961971264673571371173762008803883262489862286070750550252990583687575390149672932640700258957355474998526971654427660689897253896230885465878743077728110930424168271065092874664679016434015923158034893828201471362032774247299535968909204438387807751084456742394849614849644432973455028524807836815378808979479225805675221785855198313984881650953807397724183534041638194072945654441082779138362623357014037050966837628052532407249290828732153066241573672026357711430528567174089210155910651567419268581775167109003694907390235150672289552247951097632889161096536453129134879696698202233843335204978100507087075445292446492794726003707034048276869004598450457451958387166110664233993868991418234335155989121559435572099945354589305072547805691427926551913806745908059308393092511192674480093443166200975411880817124006325963394853347930308627666780468781035204621506718756867945233295726895825236759096918220182753224771104529675524002238420304627629964684670509549509495864524940118286371937579517617951359893827053152800138830572098571887715738100069905910683183023049417982583882893710001647856887452765039991224788902315554683550237647998251257917950875995094620325374409012649971671102676145761359881675355450112227110184447193054930085749904394977994590442924326896618479870406456952877399105506342133582581781484687204688901170910705146948017330447399807974379556545189251674472596718604321021652552621213759961684800504596422096200180307206387286193936238244040698895409745226176723155442389443196871509601739833601430397103268314576207875216943913906851850228075149039101878398596562625963013869642157931336223966675180797437422265933702856850844653254949194874956947045870012692490993557307851238412150921722043765509439310312774052048712732796883415173576737567111543206411574583865688117694817737743264075174195590117421083573056424687542039902430031725369228933298939161557028338168129680839826290568487345338371930597116876715208800357425963383780562300233410235937241986715888879970949313825846447426567729634866054950525457852142264547027042734924003713022487937165180241981956517487791353790871923588663052712280775605534000775520796338487380588709956085464172492104457478658033218648491007094894550671063321572180533368536639423112363466636511769067238535290372657387036778336442151842789761145340758520826460400184211691719514997879046964324970321507735982692447428234163639004789427948048359575447859769389871586632536925469577635856419481589176214368270067582735976885284867178219244281209795885708427376219516745173409441911899133223096174823392571893302402345293641829545991279629825306866259047430400270294687636808119322157106009535072782630629970244909130134939417620753772003491608039452718363121777703693831240246025619689854221441278930823603964024506714356407563209715035410281536842249281190862746678119461218601898460501697409458922090921335764278474192632341856145926505069609563402773423180027498543715616146312855283757767164009859895591917175071027142567762413153749626959484986099339899656401622430047382314012809159146754260378245998843042361648169814984674843175688833034364276831242526730611313673953987717006667260385144331504579212019161349137819096596196908720664202176901100768172606049854340266037561786593351720778805718451416498826638237250000755568646741781106200642730394849686996121669879579081227308379608299665791079712454701721011017259234669344564447587244424305519562825414692198904380575121631923521985986631601964975419044254852060406886279756838273810804048595030910925848103787960172044892159125570260917835356517030156700816539728537839276506985093998573806798358158122502411504986303287647063065585798602179453679277425177360498400078063715249045145365069415947940298314585746483009933092920047196609100074996629229183889725455357580188484427913830637155754933870981383003921083476378312230145847796269196387396332530263490834834031433546130221336998404886697632401402046595298474054702421956272852409129616305891098781421577377585166482363219041443538728549830283871857000872714219664565393348141225283365690504059183583387286414644287233121259246293366481864178290928652659768197555186728539258153143398795191244204700033863474814878951704573512846840746661432810273550463321091545193761063961911081533751255828657918994621644561772633802092087990349094635734137011586875222409247917066653594897042848246017600747659266056835762489438821382999525248241178764273655441620796022661053878874169257088813537944870286362536382855231598741151021726146606484261577936352057570095383860790059438812314836389770941680236565574941174293006318431867128567619045659699721062361882093225587997234229805666849070750544182239030594701088858903795396557218958721391967100328340292391906299430933961218642547299871138724133152225659886963834998658805134463792641925749596202205364436187942366448329257284981195752131991323028629130229920842191358981554082298614961780299130956252953006951549817137596916938233073474385221034314028560822696668417701816309016875489336831581836163248351911726820800215361377840678195610721054718970474754477693391221804381489579245020863446441499714308965533487323018833268716947977897546544868563664065198412219489904887037516587815508727427935517820287574378555582821210935785699344965488383124088863597033047341683146830750771971467778004136300185479163643977030061641606871024130541114489081286169523563117486989602712189299835728149880396927200055711159648923725718903587434583737236164383598130182206332493789475058367098856441522587929214344996829851042755260817297532091286809057439242303405277709553277889566748903373143115679397779881206525503456090341337068806930528143673113342119451798240749242224787192156587327133410818373549574856785457285471904373430491995050381028171284856029622794573246268056438646227102092780888582533392507418977876636435360406805593569550259099089770108409070339313639567138893197560201665163629874149630232974895817758473422077861731418389319896011963070423422088224977835086909087311189004188939346148141204356609155617045566604729323096128446362185527667252607005663883678974990373853383721006205604246159023095261268763321196196129812914410629817518323020954597472875117765512037330650383577786823719182821956460910587892561722166828401667086173033913975915195558311724720889286044746427113255672543563163868531632765406098926347407103673732307063098095457973032513807905603770561070570326511226712413190119655563232340605617644408642671836831432906821732174288421495359596218891940028945401336806093535471760487409189541440264465079770418565725741376367867817161304994449905646789402391262136246365430270431275777513532071411208481672778242059441835841395875747639871429982610741983426460539498579881981828121539602113056797034840045711771879469093938334073951682616489164067274286441545194661989450446282441647105350943054988527964739386078038675923437984675172296536181607961228354419523411070487899211288004337804047702004233859664189350805626125971895051245576772533567766943817351545747452132805193591210479369282186200985271162219289484554599778979190633909032170511910364098999704060452576496813197755463508234830416905103103167638865380437371519351034797143778180571595668993139752228022220349738470942312901451635948007429618195694440521433888393269341668573169949318450924267435945084627483121766726454449510451031414684034865289786471893989193719945843182430421320122842324065313224835542699776230600709673946668930793018700177667579666103046873208866210289503873558200441576551396991106940419352982855113217875842803862791822348065673276292006160158503377661107331225305606486862864558073416074324845071149788766435299744191873929993476569965392219422277557376550870360617056360648381155863154733737304757932220833013992060030906951932908010172141033203852434084714801868362630113910164857831477228822028159664468958625899434615070933381224237597838905487714571687294392361278389003584053433581466506213539136467262776350199333884219983822578657636980105132073905370326393644534102230963527250112410163712922157078637846067147414809108803219913469333096623488931581672670189225123711982052847088171456914797932966339520295168069854826998084034136494719437608424675527878579087820260216972505679406135887723412514309969329295976893390547849725669160252292509119158177797359100569655248481713728062310291168052054603226038494050230378491101232268211398508714206321247146802024306841942594192304858727161468199820402986835507000154467425313231383851968283636432497414720478336875234174199398440846771614286579466819158245759187156337991953108189297249289184762996452099713298868698588208326497716382640214429296225230013180452205917535691809862583324024088942943038299512043955007237682360998161808712270827276896667408301377922881799251438403740917264448968003226420383613594982830595007779329932344274412457622899797522868814722462673176492519556497923251472590793612676929252434667978211510169032488725019114409800439104545589992461681772055217020802046407522720871571173442654475573745926768613382832416991212567832439739510935497987064849986882800491063845987745319285165425248799519050014154345689290562523451646212898118177244990804204024606261337714645932425872582914936839192682365312253919885113662473999079164934895782903871435509603494934662452415283265277523118549110866719207364264963735993230433459816624818305403052768289890938517575357647156716628451912148200278409296008765961113029287953497792502021349920268339828190058255556406608726886958867185572930434517215075865136535116222317881218993876835854004591293195329893597768155727567330764258523346262726216839678253409498489599399669426080376080404221141762112736490486781367756533964275037948418752502426774509026731444689638620487500781720606952783025118660855616746722586917392819188668675395330154478100192151545398545728495289683052506287063614836524981877016268684649612806761460351515186161182142103300366427804551301006536071297983312392353925361126884714778449375709304421499822728843265482315989495035367111897269587524751533356041991663374342787504539545879643794318722490099912273194381446841206102385989593221948499151479689965784231340354419142680864670342943634562189677294951779231828350140673926827110904615449030535468796409540523915520444073633082749620492720454938734817611893939819797109494622973275559576610495568128386941941135717782930531046454370570123287899327827107956621073473339813258649136000282248570644017707317949514361057026966704825805298794610786210240494175575967679653896463482139503846849642769609738826370865042909970490085314273644243652860680002489079343516408827430189677762875452594472517857124860913745879575130583932668059672833145110016614947341252433500763310902473142771043701898476193629563899043317328525846755108658865130706046537481693576793578703953483311135756010112608185080057008199160450947235957717619276627755719465908383536711267491838040027236579018128870530490403860783061989128331631237624699352391091002111304856722625460534353101058329930548890945837487618362436433517094935415087703309477449579780796405638211614200930037794931698317506200025759041211646038957043450330386083617678851352302586503309084441252789576908956972423158546676208491466577648171277415171338274554671846745135036605189243713401316851649190239707093934678378073308702790324312568208297737971509627545914210698568423830953876045729948446361611696093890231997787658240390722670448155140712382364325264975981523302649694440478119396804198247111574419827064392386879487305414498037855252923225941154670964930143643285725629266032345024480459170603006937152787530925230336457411707757120688309549788189239625037665338120413763396103424548440779634632654987417116428243747998705937608608243149814720298900192676876145307879090394502576043128203818289022098683615155760734461515418305903334522846371377424874444762454904718765681213902805574437868181818217753446723293100077537212495876412418130347573058580284674573680375588039025992553095531976173709147001696840498320163688645235643877966563925900502763710516941162019727202057630231027362701441468056534451438817180841387251989755463501299411775689180127848001926474538811383262843298663810795610518406128072843061216076910253630003531755125559464569658212368811779631341029057355844694502097394643349861293436589441518133656680643489804774434345834284279084677495280275337412496012062319992929520617183188084557948308748847304397099081111430019028307477599030838510253864198469904747813922481264961226848910102345470238556579048264971663174207266063313792117491829703873205089616772285719051594384554936036731441251675495023321819895979387734839192059211769477651351169863070163783486546592383290579296923842652168997228513019135964731619955883694551571292605990005997767292930263348747855724974187323685740297378075185263923534757726777669549619319741144819524056887435875376922886222866215936045703957959368530777400445313385348184371712393057792198173036496385309469990351156060151471341518320043403339268182046739372866308312174966808818058920003362875610349510931520764189489784451398107194123563127899925436840556144183832068454155891976860371025286583474900581692027661838063346078776345470081926640178987923616355732070958898343073600927236460758131327889829302788931578165936700430131903086988626815215228674254283377662621746175696252152008328390996880808160301141353429534623758433900780441561280946551214771097301581266988995609715610204814093776653871482602895823029955914540413911437556520755593377614420551477054528879888616585013422304377922922856254970706766066805003647203053210087879432214830663752528786824070683931432201291997877353179976262721766049881183124201651857698538387180967661379831412440773950856439696924547597335553970521754578142614401550535330810774710836748411526108096365314129327049211549121108925561453292642013191296615586718813662074885367902497775996663163794087902368217239984541666271495950206007960730333680110533101408487449090175234962489970035886447764099393688758762812987816175295029064575630035459641603451673209373616167487299395435264391189832595384492755496921092037653127491735092338011878038578208157828733857782419378275585045128848255031656775160470530436531171706820533811043468312584977933733281466307563925321685825812438416967225643670616087642319333108035751432822138820655957130050688847150158773979543630980248321433319949439185320376699293188491793304365582762582488120782416304134505891394175049221382202053983110419765913437623438274082561732945499666636077448537486730094490904028883031461379712125512209946156797402218822809314152385607770564373623288014589956706242576002354613595274769687916871852891587260346195235789815949367590427651473666291372393777161741734315460425535583163494484575375695098949183621582881961631505118250929989154556266227221791307844534839739151576468975833550952978801432998244336536189356470597487552822981514513050480084130734918497187438086950761544454361626460645225597117411100364048938866506589199912315097364293978516949204447484920995644676840376863037347619154512632483945696931401790740879544275236235821884904793578043454499152536911140719157538056828506991868129758867011849285851829453068782064273748328753509181676823633656295480145668259262305654444246871594937664497626673422350307617314817294979574552591961007298688088617075559240486573910890958269256129267920969136927081585133826121756185934222287728224023341429771022334678802560451661003463129789122720720880683599566975457663000118838160859920349896420116266565829020615818964600184183199202132261946349303805667369034729598175110221365018760961344788644668860974400458738193381895065050602933158344753220601642995758368120702783644437158743082595771122675772389726578438265747245367928071962910298639298425484255081597985584089463406915299764766648498202614055758412699225912627351916712048286979798380144915526664976357833722146535353853979797434124404375446333547890562225287758985763067105593065246117157399020735009474029989094906956183019639283763285994999717732090579486358718206627308674045286229938843458701887511618633730220793719130641063881243558832642037635024408629225141764955639107042928043949511222017659637569631781948542312387855544727998205290476236066728312105386167692186705076578856124937429339078150761403930704896251271416777236388963759118131064386914974874338253321194113186007481419896870208108335131604332549639458482747692584380866758001684317510012163261695292348399979331587306348381045456888554128817697894773918488457748022690510792060394016422810027912409711789736756059870682372538148343325488655124799100622804441446565034030210305295452337546123170045480371133762360417275012771418421073167753457200914819640855027833790760081568108332176523910442121149228536714229927620792621953778509689520303147366010841490164860943045415873640474202507083336323746991065920012925664469099974887653145130376933853835685055207902858707627752993567598422746399033084268497358136957746614655169281201263669915294453096796289030833698491870522330445687719806550387773591625245402860996179684515979174518412822459733876755624476667598568770515073300053273642708311726341062717377754617147390685472300970645799503234332373614268194336090239892712200401123413962777961704886940752341833195875608770288463984552104922468747740543811454454742233508583255949793721435316204599826639132240506135342648846448405490107332546061283333087628113878128984552445454664295990453422285382207147364206479943703872340709383984468357762855930990761541078725576535008166798225959416158328452599450169074594667461434310874474484168528575652227267630370605185659347695770831674960204223407591311237694895026863992482530268276232965374466380999991291969138430677810903742386283347830508278959812914325544603372170252919893077778454659377391805545784318687696450094774950929592747563794971141249417034048198320652259482430009747967810833667438353448635794918763003535493906416765629080745303082685001670577361267630225864963528974346541388092024866488200510517283381681926888990511718661260096174294475261039523737742932376309108472196616618976597902732930329813759835924634790629509387269317477919328857961884985174227883517091850997015938228516678754071302427226904282482416070837793444311006984707680994172392444997347092779341365438886504578326465709190421574417907168432127067238898514360627050227775706993535826382642410990808425383067752295900296005090727728576435482716738883149501468695724430008033947043230113339378837809937610639291422501030436080042200197481536514030473420022910026154127357245426601702714091253373077389150469587930657959583560981139572906258941940979044260411387265217575667987789678395507434998313791909375063268539806514813854595779330221317804046225917148043936788982482185043305956974342033100383065782708688737280357401313869542646590719833805104077904749501960154609240536364771479914364721442582129250265250911488631261680502785465928795051238140159421047318894370674572784970385427010996031091801958846674615732626376475555967284679546550200646532392916421564077106946416310896407508487784901329073834882169798845837640315825073351159962051205699903016231068384558960469900411256716170256615933276125402533473032049995580342942035790812247031746349758632729726307285403261922436082064663060458393854647936439075463077504818722538581176947437611971613131699634405573669400445510608269221331053055720626073043258865811934886909477969353692489987729571155094335576301650242513314753099109157707377357303435416929560096416858442769754695823157865960933678422799450742491443671039667284217718328373596909831650477191876192698988814173532503168222103972385178174298077088506986350149908668573354138764614435829571111654105122829282602400849319060342963835890003360437732419549522660770654957888471354882650921588706179953369895470008243902449596449261888961407647611989449430209972763270439712794065174304811543579385187720920645385257148704511424491718466892278650777315223445559111341122838517564646607819470261670346503658695272408372163472209172807340180516651239684522694394397621189705650246062459980211211852781079851111117702337703828853519670408381099249929961510804994935446321305876735416056376189590506146869355774776274894981466299532945816236822898119011061904144862447453163469577978111011951151200174695602011763865538896774813849052655562065847763562436456388461966434779423527313406993376310631044631439255375989725747674148144162641821073114797978695855356509924026288093355374253955466316616541079767445453721126654721669510104838763476628437883407451305409536850284589261440975851875835372824065781629803915011259886538585049435468524565305368262524929186544090826003283887453923722864546519241752490366330611423952060418217074697967655238387844633397842378096170045187384852047800892624299622844217068856619707732111240213255368627033105773813249407686896251341309093383648088434292213261073012067074670498928032049571510166399983838760850456282487939143772366364907447655129426219758245159458268405245234011353191165784515596615974547369502089798892881401721428095480346620368849471508521621344391560764677925251872181970013713860261138169229881929797314760961791377489941169758607905411176280727295063794304716998422203500445541522930161318895809539127236739399492951575231055926805985784912150975028254778757876908259032339279198664201282790950875647292692953096882209320825547356360911633506972608585809142164993140803503995455786413344407881683863066126702460322957368964915786238350974180761920436807455460110144318060290593931924517681187608202214120754719252367360124810897643777232833078612590828392031246392186146348924925196853197506677189371594000803679620894301635525821516541476074872977780968425337464654603857041897130042137563593116558401745226238996433185322082587550463821390480599188857590307896891329804862264173564760602631548285671899748914130966119229159223411805411533435089958239534965715859924702585853609573834110310953858975390382536950704511629986596772371485797472794878793333391895609254487739687356198301785443399109744208383258304504490914436362840564466005529769363250238604994830130145821647126164669530850918729443270896737895963532745430410139100223337061705530794694002850249144804325594727320910782240104285905442526494516685996816648334748759457566685169876059616807718159761172105581133358190419520297428544709055523720315679911637598276365441723463140735795824818569403665547117479282536879555571314987047063427303647910146545861270372985903733773509707714956487489741136827356669346853160261091071368480306798005383399067129459543047209759651747127245419710459645912168716422577622335910226707161653998627918788380831997048679235144458636343925008068934650362502520390460604187541239417015576994228775832580262284743249246974553421297249119021367012730453902318805012266048755838611223347346656149600192608116276906344850524932695071634775845910806870872386722008813738787022138525834542173885538204896192967101275007055762173411436827146293348833592958834630124450539321022653595029100534689535118054734157445107841708083098156315244967735461964717026600815313777499371761969346927962030275532739555725165263769995879633563652938394745500386480601148519246698866210680279788207040683209798779104487399312589351453318522624669977281940652374879763670845337445229401624698802155838735012704393580372780622644526579304161249690585761642001014782999084984666039513040995266501063609261942337670014078098301313518792637045498100967703832791700929387189523709144889518619936151245348689383746074160988295565615098716955524019599411223338255531338624018021260508047554679290127442737977044601783037033369249524634526070821151041183997669494519141419931897808239796799479498625018257810675830852595567704882317494919172771659177988545806815401576424233022738641966115334079996521928277996950421420667443168151599310876206312592326248630318573805838952224655376268807971979596302481009798253049975972967997854179869317993915298369819565429796168181782921623599551639604015401700033239558262300035713736225728161179914858854232537126411978227716159933581708633417259774915873200865829487045512310764669272448031584239844998661885674715165921159413526795398680467627493115762297989890941082544529607276225078975851639080974265591693941015727517121493665916395021821259018204729323216402771564215457030009857844740988651320538211345610378891935739686569250857610646749857177182646590982214344637977614897313227002314212516256606100881844539403110091850626937651856611262927493540899847107469552411729439037010912174940323680067170601107762787168195493653504625958729094013022393785930772642391646525047803051598924417689510931672986735561119619166576298452746431348484735888225142995061106507168123766984290013504220405626703877926875573668566958847053349535934175631679295503922894773360283460779719445366640685882834134163333530819558661048532195685486284956825491808358832975287502060145675150239094165067390894967572615008410850753813510851821968630585179500828508739873589049637114061074744895201337381280755448218038597005665772553086455811069958333781690007146757870511772724619214777716570770707956526769563242004005639459858491515163283904723436611125414827270400489385554909535440017876118290763720207748388966058745706195274628109953640913977556964753122820171269100846516190951599361324054660016649108473734026875343006067584077783504733940976371893779674008754176372907620895537971880363563532663114486699654602533704290570959319935659980457698534574624235326144886081825557132161752976980558314579230924941212545434740807248142562788746954752397885461304252529540365827299329875892573778104363569636125297641924918410552077354339715323366887115254376373379672324463837689141054261368275225982594279187673871261607056574480363707975073749612657765828620842033581024565968884539553093787900246594271322379701189119348053975153700369571849198096494798899353337223259180677426400832377930168556710680742562814093970215174316826980622428650842806759683606369062746676836010128396328025199654017841679960711843508050756114496297426509987569012415541106982909061931191066696027206095372245061110620366338852657430267837127857402004506058005819169868316081445410902549027520337010918384989797877503951534243237759804270671631139271092927826266189027903547636291111928953550350912250174054848414750055574784462355403865289805731593394907981766588282544946285654121415893949908468736390103838741446112267326479272020230097178314440487764890887378500838493683811517436436867616451682731551354055686842197340846454946655715066030660593178655471070724860004297498951504509569073458645326221549009664904979148166870139479181541732932095711840498916874532421865161108442362372446805396453151033151433747008294734302467177233210803170167795188299561957243123688756129775310422916034822920972486435046643889099284310072507632049570005592219794050601698866637740492013240186416213449376549213001237662412353738150056829593849356543943580081501762315755380061722244243961209829797350250921905799552671487097259783779079393271924169150075906608510546084009933013075653461170583256098164778398630874511156985824862346161143534228603204457034342393619071811730647879561164394368151342864958764195052480574346553661936020388105435595554758876707690443751786501845327873582240278879044564003138079356324522415027124001999097480264468500094965001739779643494342495605801131088819784072642383847832160188350208115759225354989910828847871754668744905770455530296062323155965432779900072820775834543722792126227967593641164417165464680390292074527060721201412567620204210080121143544309096054497570002378094674063862751621867787503797443805733554354159584110388238945564674278950945306855855933296575765836034351707856524036011727326911465902299058148729452758917103686940902336148423724420545126900278029351923764694470734440585617579355299164917753555814093972894629869448140607328478719654732537934268288755141761967716422332804603271199267012537446648428383322156246538231554827671275383106929951758194902369531235258123385190063200810511938088580827490769672182857808465496365993083367877916825871567948024173426353672544588174349261068825440994890000726235851366796346770483832564493185489602574387383395709132674127525827695310468000449105970570215208111971587558442493630018864514075990673550245378284309481841907759654195210019004970744821888413677263165057043411661715268105383690859219187583690072593928709618722184220774326436325097053844845573111286163772128506719890523589709719758081015185638938046573538885113438154397901773294538216369972491937325036450535060762498408196204466412188884006093715668871951677554582004859229841807409303443403449363093068841459544555472918252557273538014105062710649657197930240841374705908170078575569967397431414614552832408302898150734662884614251192698871064579876341188699415165473011819344489288870429283308607958274767116616029201011046160334171643003363404313066155244916040779989352891686692990148610095800098382044712528103015457210853228842220425314560478422736946464287011881314731183275349931993255817098060379622508757651667602138965261727424978416480961991582321004014476347746884091521203734695511004445701511515509387387577404348099764830722476620945867634525136306726540617001414140045034080854180695660602193704290492001777297190780798775504785765849736463700718915932161228951706247232506955705084294211320974709090390388118734581219189804677818790198913604547079426270049819777904108512977678984503118556459282395435151692986865202055205988211030345191109269885503462681161400131481606562500928205091223944760042593155340144269245835083585198555394109477489756274762528898007630562997084933160833362073162977027339361716598909859733729135237268821232790420370476831097339061739242278472212508278484249876942167458394769927541450147891911138301587657312403225199698210289017375453530230370353942116266780657137298786319498564487628301511321968625591328494407961649302270306175669855052736188407514322473660383301612477085456738943323333411161708859873376180679498492338518439814642173679710049914192240846219503210164737771323256323369180442205062952826375210552686951302451246483435271461149091328970271678908914315126341082804150778114587646828189611135026890133813313400879238189518024324501327380081457884709081895002030717977638728902652542044671421242313501918513721316645432206758127796455362613539792784341885331822271134261134136706408881661350826010743088191504831469401953478703407333839390487452664527298060579436849592330698388048773535439432041144146213369565629028618356662522895946625416394000616383433812241983560697817783772798940831584272212071585101402599890312410362064443545284899040183743286771769408634463630930853605927550273978982980618425977581680916200831807865711551350932254109120313398598156562321269241434088981660834380329689073572401911425999469475809938494249565616839534286811744618911336509310294371762696076725700342640528977715315455393293035131033767740212702539609548693467547306565750582171916990898836992959098751817501686554741971986009750084332080375578723130539806596079043438892338201068051500157333152207897330587035304834688787817230444130036341694991864280520240506248314449717936232378801961449970990934583942821834606471013701188886278939814602010361948662994680772563513674668168859371361777929587990363813250353419853476611088336806712133835360137027756259049525682554426578095600638532026226135921786243571619625607680952904568839915607394696606691790253458671963670297085913608176577312813176204984696950967951048861619617958783237142879193192395825598662693040773336189943748023585195494878165836920056945529062367909684921512612781824333641627627217500874753100865293750168512241672391753043007523336343093727428397760790720570012762476815698504816137484535370793382021491982096862774834009046397081457690125529572814082668846231319230270321662992187681703086841608063201648944732927307239935079846321146562158612449140136935879579579600482366816212938517590304542136392967526717242595518054480983989769243208182844328340702294332032699747395374251680257736632764328859770993484559283064642530682895352001644151833251798672282966882022400264020238248252204328477203493035939309920184033072406904806479550702320178353646664129244717898625684548554286557578545169360092031801579625237876379683237727604480099537402108183527976057111749214540750735773846251314259946114698311673876708704845955835817212706537398314236349016242972361640014193336159233533152570380108467065327621428101757408282126118382304376322414772469322108817526176878387901345903107605429810320864246464119756513653810273311991330145300009940965464660466028292797180688352333431975161250196591904878025758636152141121567101487839168105189761250648456706535643550272403474688967393088654229918410355529040862024132587121116583998406129950807743953777149214242123728213424631596614841735206895855193781932843403941380178170390113502057801763781246850865041551792999345115573706741098577546545791565078894861484528274763242586699126179536941578969766164289298221453772983389694371344510020667443376866317504427473352745129147172648796172430277205428030281319892812359441010034563717745440014914050475779708291788098409238373265852031094336429465468264540423801583916713956923421250834507896154073345747583933748995282582691964180706107950409656028881009663534160843248267694346826428253677864292048196918551250166197331689415256590272619910347254073208070707168932443455722299944604180870554430749873282853727251852944964903016826282139012867943494181361271051748652982868031831045106227088904667870269161929546616072815378089614425928588652560201594769504129696512812608486221578085185589054958057952874172330115978983145437414981866999306336927362876571740957814861562487175833404917881207972924559306350695514285593260064026481849644945383779074703170917398836600151167951222454435669765138993998917828811272013956428217524321547685386447735662449830974121979092085013481102772723601910704746472036932685530610243684753326410144117732487759819267424262453824304820075060403979545775116813465341429316607404415003269567945381883340624306820095424730180532923184035150679501870682403313824332639200250524103412303142298888968110362337394542906829454948249492678553357179909453162021801972187552376489592056548106689697168692261594671833855133634479450930285916845780283079869748893347783369094711121928986742623857532942565770097150343482301249605128754627706324435529003854949667629851009356971853416025483959671910601509658575537483692373316339296887110481288047408452819399574726806816449610869948411726653084205481867485501882176976316688219351155669116553832191061588020051855104182223843408332210072109316600346119643161764012395443609489880631629998760279712212083472308542401650244955952102550929420044289801714651278481358718790465071334475005535084477554743369942913403630558253898120107590386234846695921685568358471823946439735271040011509576145557981217983829950187322533021456081860266563636435511878656282627106534105794222531695963632686753778046923279568367892713827726817936598924277551057125496844475072097867061424228914453225943805390405082296589498468478999103315941994955012019426869217272747558200037793794692141263364233428129526482938874560948459899399513790829463780917003652189291726952142644244317261126348864762020075029878324624555388903021276995598517909342988415121494518172250858171801522817592612420118834327221349308043353569687698937501476470844460401975062401565291102852256484094256413970613597431003863723690541352707545475397865067769118556792458564896691609060047252059954675262381162966028944509747867062823711848606833530658575179869718271899351719885713804942167895847525815461615334054610200631921109883041334390626352265332714174332356967145176539481978213498070829618862352283012629042893338998027891073409769032861449571313856698964940901933461013519903833096200222942711534894383839216734080642536903272251495082581994192693907923336763363017451099686226784565038125929474205367421282413535198950984922899869141537678930854459273657827777490663434420344418689256416452296541926467705518741423809463900252499892133662501889557972197159583214772012431612094025607849855003321399318390687592604470705051478518308061667383368435102481356361990746068013898973710342429169025656227986181488510552162081397899782089522849045554617014069871100998686114236539957371917667318677841272411995388221786334247141633640140330604420905285511329664552502925051712143076120729821783189666431011463473354872815902175324584497885374776873317305915975407876712861966263740329451066124960335036690275830521747589579438836854114799983169572339416910820145252255007481131811805216566847037412678199708841604490869579887092538547537411051630220641928854951113584493351566229837052547480200398004505876642097141462852962123190931410419588197092148795787168475896882451393227792580980234530391456001069416184421322114535464040924607008928979445176500158836093933173995314098321134830978074427373752386853810778780865396858927393531423956862113917326406966873234352737506800961363218773464978183517617988981953171105422437481304156688195719522483524304805909960479658821843210969274024779143459228682744259668227443174894138684811361212131546662673416531095942094785073111970556757832209921757855929067447765210045529125339339882196641148174184500234264134906698256423062404053763923897411616032426877450074131261659109650252831167596534180643304751302431218296791763276579934369043042929520467468216707819602335862905308112206929963058582929551092343119706996921257560266938618587198852016735701264002502235964319345797675102757576736636248353020377712781302728192559421533616635348294382777210292187080520254564769552967346039223935320463548482305870754568857493226648124738828229314365591498943943316542917336541669833284247654427290538623883486269513637225248709813660663676599714553826000851599009428473738757557230391448341757140672375906582455110401149135790483828070344742171050003048211607063009894078591081770209113805227200545154033842484618485223265572218953928771873629282062293336222836292319685914157706367010554086734036148004036403255003395875776354767467938613159634142878419587414135439916423328138893694516614073617969409628328136404854528872133210548028767349973314873093481159851313674018335838629613899595391259948679259666589821586258673274174275424783331796424287593733940326210588106433570643683295971503270975937412179261078638700698154251426945495946119285935187394313942938993217229639583557395515372739581018714562548091889562400274497474915049836421491918818184112028116237198927237368725825302583981131880353206632608812261425662856119996693615705332224499388551170219617693066152550932225043035149211025215644361651494418279432690733907900008987400754055767022337561374323950219225948370058302362174048341508430493692091383243802325745079954745573975993045866877774385317844184000199900028883545657948340264057179294721718209703868939262891934479928071726580178946810385452822166832087541298727236459844243533787727196374858522056350788652539175721579110000272739440513719418435679584805798607189496630070655444299128256581744724007158282903262947247149115524948706898581454750401549541627964272483977175981182648040823467522524565284176276192294188477894357480611455409750512558601847616963053939549895415790089707342760795664307353211296801433933139422241676965110768837758153664468755947602397547872991278799270665622845660448652460396773312418367618979442510189967344543968081829264765352256997034027630697199131806882953575756896775419469220766391860709578780249217675465059101863360697658478945062226724278602446340259918761114075934759073322163765602017920500574830159198971760828305433285846149872911516952530995200847514160893634164843770182961989774236338074260309725056982658798087273382640730729127652638707894385589591381446273190654022312538506087969986627799744656181361643356761299432013318185805553134638825576062189625620278071034074845391262590159903544000287564067944809053846594873175594335348404658033811856897520971805499594803819925613421479651051969045133094690681199742756404559069145511226854604349095710169431703767392100830405978533105087424272976497528010888858093706051454321455724737435625121377468789204036783707344512398647395332625671449726475608489088179358086860797085089934082643562049881055006393999072832677810429753009638052622357566257545155480592451109957972092821145163390448208029760785886062155298153074910738429775972070339745350656465487516170794197449562432690561017610851137332551096178214133945804264676645202634232080195428987515330533836316496403361732460285562388174647638821273434676314077320561494388505275059630487769696392112766267548991115641677036240349502776484530713748738469059801797539363595121556749433167615008426946866917184340609982481876804353962515319504327870824627942174587315682521515456323874650417856901649552820245607143992453395592045151616340465477086974977250917077512401021649252423961529321170892647362974024669789426646625163426542124287387370648407112764501137336087723514140322802622581180386987379510182865574465460390049381938764179077405503010069611173928728945084648722869301282885106893145851486980847127136776764685167850544200768352533496867991441853715674559587258945989004211529609883929549781654370646374138416483832286761519593165787664203143700566284396781959228137378836973201920722389595233382752135750643663209432079813501879730167365131760835791448121556228943929924277046626413428618506910900889460606091661838221980203771924677864464672880512126552257844187276717997975505253366672997447900115820800596057727529264086940404556255812895115654098264215231506988635964496816659187307618175144069261480368986992204452258294094999655743370841981070786945882945411722696005326930267293565288301925430323132582521818701273339523725249288881779371042146718262141599851491777393074033720031526207627455556608518949711637016098245959854464122857243739736714576735628607316193961508988261534868615533462226087157319282091124697261736630836646651622455098555114819493463588104701504278487810455685550612726185780932913373355144450812327900746499946385464025293956165894931889800333340528000389128818113994998487271387940568783078161343485659835759974293803724846728542273700934420635711001472222380292837594362011540372242105816569276248289035760356919846784602934114510173420170561075588743050883404178874565322185645351767134987980421027444542151407883953793353072532938592046535177587535102803096442726454188796279170927326047848448240956600486622666298730561301096378047281836119455265114266044106141336761668465034571194624824338787790969992160313049431039035087187251515907282772936341778539992671031615573605391282887200160681388023282469289974401065881702084741598933598578258047183859254476838942473453532443199439362731825350235925681209890485878385707985726354934288322325528932041606218624420710066435931440793436517489948723818105720123180238379597802918447176128992290686244442337701786524784179414882057440308469588213325108521957202945396356589731859500440581295069069785157292370397248797731233251931878985148507612123227900006013737075740443987271870440659335536549274865515501223411597229775829553315337606838457281479757105710549528398027961790733950114027991282923156875763252267544143473081406178778936719466946326691522886837471494465916596071315912990720606152764006636892760465223113410993111522389938651277143688302810664371836822894652605038445975260077797838259258365688453044575153959330770194931719766851575129017132500364658498671095716778031659925494548255340960276816620253688973006923032454837760076435926557170479702948433377631259144967987448604154222513499055073123953937506003835581353359778699481658400647296333990652228590949466267339145420734868007910164766901263610626855609045311026879532505800169265519163941420136365308057029502589158714663257625815854278597102848520201903848067533221934610602321438708093192281296813967665319891185415333691686779133942324927901767520018259815883729480223657706167468741124692406266029630795012097344194592887282899382691736362897608514115243081953718764284573442199212551478160019641929989602691897685120419643250752272237418358888712256423378139532603648679858576845234638683104486525593462764485266027521584843471511431188598394880813705835599768951686043801875420098645440333995187224750847313113813994709800177495340450926228737543564263328584661284405540089126917228454880048252589353534897402312047535938495622780270720514084268381235620823805267373301705041540146120771798206775299133075464414125882774263023629107576324350866586693641193590630379128134182781302364853656687275548368257976194827950003788688289747020087077542051558399858200048321409393257934726257727957323697992619504054824428740867362853063145231252201409166709296161247595970057601790689021739060762885734399116739205868265347505028029658410629468035893306979359802915458603225192848118292290559476409893953612702545349031295602952365451445755019725810341466201350531167794133055391517025419273756593661159251998194204394411508729324932387385230466360574380405573582232927186864391759824875901858910454569240651627228533668287533111759366098140783879532994484998244357298560793743434293602781706716758692811381010372190864040702139671604528686025850679564820804821015271564721350199475495354172731747948869065235691919104727040804198226509464744329339542274893557884009491004903717482200527526790466648288469129151178849938106683820811479649358874938943138200946794743131721558781953809012075556252404151479247857019200719517256484076997003570285049287532097885579618428254798244083621447302069802387550626996027886929358464867005773248904466760018410151520090654555811750158562295794679281835219067904945821267567019179047082137870719219744737893841532903902303267870936896496431707309701186522966612721572457479270615910356878879239091692399505972641751409077171520125555732366368859974191546768444830604120339645057805869277041476370646599810469827892813303888728267489761859930271769887537760762823009829445468726861152275464889790168064683366239865898517218208788699152079452762854307203284057289255681964143651929711167311158493706250303142663697943634611821382027273884187871290357619809530625112873204587650989643075995869045228277161212280465141999308789046381616631523113159183955850446442543244946732058213247877722911416454866676559455463394795795154323002131428830578001764409019483950714007093636853026013355690878428670531302725743976367046706867544996912827187831095468964646165490023294724555549693366585871928768207463251094534022881723431661224206432328518860597039188954822012436808724656981682103093810383667181336838344451091944185659881650672119494434165260251279276884843083634871240414420138956189370434778553790566276408968692821576336694763689752362093278805528872768007069142416709719277663230235119689294133507321919736575555899633267153515793168794059294434918485301652160178478318159629675740040331013412759681588905747893831241575794733088549017508438881318866499953122039391155024154751480946961361070780766247585146314531302357145006166671995764052343812137491132137400415087836071973793031064720526808429908460348842634642782991267247195286683272173369156014253148945392480723107646214269472482058622122339296502075303172687763495579444597618381305247087401387109386887707777564958444037016421156975432559841532241850113782091842971485424785491331884420020480536536439775431902640540801911158566066724936952375984073819354000256792266476371079785037800054177579602010498892837494348917787961986175833473459213099806371915510954076424155249107185878368994866184356379029997725668629115861628318954335385101794521743209923090840130234702424957710467858048021356037762164393870296161239564821011794891878961566876036788233079448779618396284800173726173133770296503051073451372481478321213936209882415951192433346398648064302968117173953843237733337423794885503726401975777967908926490285347409557440997119261378218667426527100038144554921089793615855605403759571565324999175800236750978206450195155395402931450742208977028504703156667858076089352835013733285109267268214755930275738932891559875407539387610581257631616273021077439562263463975448488738104601369279413438093728018182203740775935680837110743624641338574943003068602142853987717959162668582945030732437054882799629024859166939530176208758730132244192908537750638065991018328739916512540477562654410321540819891368729635311574513257883333949622009985787953732879458992359608401624349729727953280306920645303030352224544361313132039834558547481599405254809450034217805460043304836391525619935904266883115510550502067521733969686079608194001286255340770960947658361462746998011695566527821661261304355468944773210190205964629989520871967920504978423600855334168756412177003171525019742244912861475409939575613927717721012651934898125001206219278229430879000410575018083766767559717145142737400971256272330397645158651974263533039453222824225072442593866945908583013327303929777422850088998172535398652468649282588342979298713335193594203979029573104978153083496566334225606547494744639467443903183202366601003253509265985336043354220804905095455763872623161710312386492848126307484105512209109195873378499186848326694319132862348410596951207800051868420644557377203245615415942621946213121260031480090018657314153732743290777025777696904541896435215843814423917334140482125217256346388846744490334867738027293837223311386763400955052755033225960876359181209311122445030053937094107952907648077065325347583888942430628132740233269121508331562400221078290050238157130986984451925399559764754996862523737393204665826826641386370817375272999511116430603854158375910537723898525523154467582850396637115907170177428299007361090310350185998720561757322579745291377985763895227717453040703917137491330024607595371327752354214307125063058244988957458044511944048885679634145928100029725564778293752692615503323629421275122917988616558135470376566942464126554215509292420170961515537184824041405750443626080704209459833480754286476734333364960264304973680762946215382027083955588653096521798122986011916616268371852916551365872685042743025189999141913456514161289375987806861277398287734141956742708217452092580888361028786217984538493146330474137077235163559070147539768666562434039476947636699675224688863108591343887970461554578255490826303846979769201695055047898622674148804658219971082226833751410740734563238540826353619110116863973749257264472600056542794628627063794143249975631543822168593979473249237520306574056037212472411662903054250392182865379685033621715072054177431507934336837602473970738354244997850188416785587130778836261217544215388167121660775770853889991982472859017964207655146718895356594928926088678279205472450186868462833979973823571078015900951735702170790561951213159503479376478870752532388060433373194487046003570765766925405253001240022557026894001509032951547949083644607615230612356201110418883520719936071507810502732619869813416284835770981841598063235906869671326845127569976146899745059578897206054221035697857777185480935319397698849187258461129267850308240701533285976739320343613930424294051782447532394770867147623105109769308282951677645687603515833787792162384673245382375606460520161220641069963935213935831865066682668242582777009747988648735783061604960630655888333666674566827877104104720480879658832399167396070472348674613738583771504980509483910065830119399268120855654762376127725613207501105761732588718670067741360779498126583290642227569458273673352364573322125804542268866043165833887114069279664629453126000872760652585071488426216585528983287787617513709919990854280720967440466658732837981777988869546216561674144042970955591680923696164999859845957788688609965406234574263382319249645666346514586734748557516160017140001952308110599191221698697120978432789506950866278995389697939979043701189055255762245043928126535507890832382768849705066311221682167925520371882788840448052504180061591103267732387797019562395200664117963292813387701736079816964229288004395201055756643412209818250018607676206689641313815865057737264203757944919639665589335101781841966295776809248043700542274382973435306398255549586617042485275494866494870627904661948217696793166596549462910592217889864536751991948576546338440198046452120922773960311886809329669291119986602464103127844826292086596023078263349455755151611062735117294337264180923232345708823972798207322853960831413704493890899829058662442031247732406442770356346688633500465426643554877999274195718517521026068051695462332561951467610515586119202611022730865677270772886765218290518727924561855462746612922729942130091072008022423161420680679623162357479143999083433720843426939156821600963711027990301639993597745652097863756130861454220507279283848322712371009157436369180282986226845991016067884759735879372936594113448387208268874650343713207760194365241200758173058920135963590261037279733648666886980446748296814212895272018306412801155409929438631090178042522566159529236147341589141800685649793600188127154303876412660845561806770618452443147051296608501734215740740760338543772047813477130199842045283945517251309007902814263215855068250800670004190983773255115753811600812102852555500662060263256896323350159376700918135541111388123816375978325801180733364496054563077986693547585068462029117737450017579737958433128537050283897257332270795585037768306129598091923397530721056478637081645900208959791116836692607253112607049461709698285447464812392297151158445643883474297076736852403399279947908921662411852124600713883771369880876345583773959318775916357896249335816959327256027727234203337886093137840766906871013806386774799345762952387013256553757326874395392538744956142104555425854773948245817524119121163233594847456062501702504477290351860140105138311503102729189488005736298337414280389980650495093808371580210925594901807328086921779796938428452164350785440222555388281438322588814938632121488803095398326207478404966870288479947391779441650317364734346744984649421134205166029532617143813591033019102112215373441573185733173652009581871382025940226408553535157137134997189338174355595966292077004145242694438290510504230407878334836487659760341838244088385981837813042320483326770400841612543668793959039434619926812832430133140789132565392891823331431745014087787003156534138512261795245037695331273182368102403351212184952805101419521129104383719454809116698293780347789615524051627745936525713397552404716572571130989149854227851668569943203288925761538067609167489089892200948831727255469942501159446292549219564586740473437334573954370443100780653269218338741738337497963373596071643906970105307236806990115287286478247147246180581276130084963731802539637318923500882448324338914578908073992737412164838079778696380512467733135653927661151844036042778355132179338067038230479163203936903105820981007162947642430987408551710652960618666479086651660864554207363717445866207384196815189450989277759006139506359150784016096536031109685257390905891187130235093043853314093795585333328526884948172110853977164819521403145955709330983679355667715664812765542070480895569350058341898997107847619747923094765430713320310036212909061777617862590052688154804909011389257974881872964923338551094468571894713940900601664673211178016747598809861633890939679346887819659879008192139999859541840995656076840933958252769332667008546957594496649069547707249575030704136752316093421113326773596869853045673194382145136994503087280358858729806383853689453747432839823666724248699546761989033480837607407107017638523808381336113084032694647558443037061930556371284553284253288705018779187800112276213850186763747552226794791655848615756398518396438633554624567295008640550212528555124901396881706642233315626534749539452335386795377430238973784242181357719999542829391718322513497127641209933783050827799984608991155229739776039149108445826219911484941988875835854882449843568063047017785432712141290848120421168712882324108313396030978859017743618490690486336113981999461523892198058541986799070691785903791832265952855665213343292989025069419608024629252262438899344720700840086043409925927940000606861808245460245988307876947315718787784849950394128819676136286714865097441188436517354371637007714936368478825739086715417791480525661890333044043118508308255963944509294283158265162560603439661827466818255498382141535962495210346088144439647569252637489133560409179947972867598186529222572832130387596054476510089034676779056790600908215887271461233754628883042693674353332788702474925774196767273306024545716079588127166062159665930459205594208250223974878094837915025094947657647773417648126290132144529573124995345914184109563141040953583008624216732749784233036023413784607521152144302215720539116147492702059912245372059310256570621561827625183103517847203882746823169677844183327101753010293943472292936337811256632276950157958349410607212125408006978785445867191365852349045367912589692382976816831819908630373186102489743358276508285704365727011651840989319376679727116632085841903413906777354342563347027937373560769402501359542822572899786173691353895555903702159875134760167199363501891088100185726540330448420074482503455357777171814578649553155293645335982623277941531274064451791844603426285510916594293391422833702948064738314477741829745165310312463735110135161940034624105308909252950560965957270357115008412999394872956764581708976450059282239381170561247975177243069291949551366158491132774088561643675973471060293582706172711146330588459508094175735622500497231133588362891724467826167730846972055939424239838838013754759798451053772759502223511550022364066884818915512603272174114304624311178563690510531817752364286331510347626193547831675177909251398855452431854976327263807505416292315108275788594889360458751190746538302573346853446867450645416554216259608930997315607029794344295490404859968996150939090679381822370532149742655729308300860245118441881200885407333269718852556822234030620133750726164985530943742826524985981300860548340581831044507412988657449054592553836733948234792492735348099572589669521168832867494796417008714885700081315400184689813939802014527114473446554194974744721308497134281905125029307924499958001196748518755134258103069995690731424559368619030827134010646940151353030962188920755282611781229457434753672771299352716050741056011831582608837621681985490572387486706850329084609911775594762444595705264448762378090642161307114255375187932269225681019415527518192159208781763692337979844902911854906342845672676408538711132937429533184501878952568061923111590883401344576063485734037070441823170909417716600752578279806664076834851933198929125869755569160775962296209535202393417890025634900339650767848712357338797106569902091664485350564296174768008464997291432658209109804078195968625598629181545590213635699942139836117167942763294436053614547100771356383903303004528569364422766186503271049441159147251246945700752540832858113243615330643127722622018492410722754226538153614466975174643514576192564111858129109355837580431831362436113420519958202012790572255849631595745981460012662501655036231087226778528587455606373480878093037448465262424050984358092055453903511049606945994242360461728650428465646177620852907580645177579737587058134784675335138814361918488402221272483254150486529102616352300609672165284938195551205121815465537536530919694278764246830871350500863288788667733881379986387850100930196709991238887078000553072918366586318523061074513390266145461514918913450348945132071262802853497001956059436213597996650709927808861792120215612245266266994626120823230269251481815268444260574801338493148701970137460114902333521192792369649235359972253675092126786045938076795381735330474164233197468321080789646711137887205534804029056695564701867092863835947768517869434779794738978784378590851525585306854649549207182835417012352438460882717532118737120067348463007093598894057185617617652746449469014730167915621857185122777491696007565509473859197172789727487287774884973725502801726307668720008830077760051859426304796399039224391447821605396840939675172903593699446598955984578114438250733029943167723234609684792841805225594837754831816962205386413761387733345327491374068131133712751892328729902464102637941687721427966694004881240743448584223201466032572872266618373194343655133976878563102148274186151817110025759813575064919649548054398276925936656655457366369879244605374831575947256506001221267652644216614561650361936190474730593136417183604081566964799077152473924044401752279702320728799409599031619530839040007324136050218770063458482558095942734733643776468817871402492278804788580682830074201158939183491089900691837800310400512443133439797806363757238803535944002376089154664060889056824940831001640807616900139959224124038506451103626843169128585428193954930594924092998191408731800885100476140953078706322589761982836743538964738670177601316823898277683567572198049525226445677450917974327924085981609345240978122354947564650748837977397024461223839329432913039202701951362991633556798523298378489351292798252894668544702467033638152605879836074925802138912215967394211851687087294771821619178370508900659141664420439357690135202102194241415585509974275696717480975798075162525952814510057380061465846469867300603841910128363849735790132098409076088447309183653661998991127273096875898532192573427862735337860831063692158744352272915410372468093538135641160098325847469702298120809066390684483296684888020219558262373545682140058927393827675739503795999046367589628899410508466951995954552694491574516184195927722768067425047334476287866160083631714035814669235770469494055968817675699585374614947608965765478639112032859157182117307019557230683930077560583856691272691129346803319090950173738907675767803680229963669845882735128309582237582509530880793158868116829506221453456606952827910933052506203895182905112761614938428543002300127173910228032468671083890047703611110059023679891792041787677865230295822938910819260998096889509205599191988063477740443008867791097668259319952847481192806298303637650452607874320379461079618345157897567999422065610188168194366179944906333151344508216188683458810580759646572841531681533435158635424152854249138772571839203097643794552063226519036908512081169512426210115279662533383464614946811329621920255609747280553695992659332961488554681250703389905150346428820523996086670768401994295892479252197989254802621968182682316091417317546374183426096741719918812812954577621828580488329116237159676728673502921818160179574478235391868927213152715120774185351055261862665143210118645033904744269280618181336659883341342211616228828774258175808322778569032937998145943737374406927763079164481659349073767722696203144006458443515223550830905750198951112436381642961792787992335673561934865095440305902097039816115819524399173425505082582964174057203218407130683296488162256217340530807339394939734721702732874425564000039700791809190638704729076418138011439375699122278957383909539468801109005661862337566273671017708211747765770864805960680480077660481771439698286034329238087345362973078871626638116010006380460426465510958192137565284087563915787015841965024434981801363916453044843991210988117317317233831215491291473025321168356109069883613971109410858654840783840626836710849256776904478262317130807749031534327951345984615513103279330571618997559224390279086691444665391511227874760779401167605966310941828916145876076083431465794473705269106867479861951808863141074654591913278682113751384866389254497180805459764391884093290776434516665768952957058988923208079777292289825171240064629998846038446190501662196810650143836988995399598421676395591557450835536230936938988926950182935473292874013084266542819750933013166969909960573050781347038569082469382969543094301925524839323579660876005538714440457597784684506020614322898176812253027206070851176513793588160123339613831932247125115895534769761030701180128371907239175364902643466090722704813931814560361366410429834485204832501534286872260746502085126019523477789991262253419893985906805992099807701797699173442855335495237030622310666436544133726513102933608833183861017319624494940428273990344853952384811166916146185331248211080134792173996437504485710844071541934850052941476879086545543787253209861532003067553416449695782506822256698997896043617131569488765611026902306270843440538904917906073181267673518221694239610944337627987770283746610617496441365506193981597795140290837887540571370508501261877570690040703305633681759429109898324312991229344911510925425621212260733756197002310628929396041511458769080337500590545289409503112711295899667118683516079828979421282888614219018102654063470491178000347099090409188983464095445098782088630453387312068097079084101196026734850898310259873476686667719488639805182934102403572725278632800671070564455224496158082254311977613266283113031640050959986872768569125319043288298457173365965295480933383215423286301178299520436038810201930177167986114038362689164609188300224121970408018053861316554934268320722539853109072829428422187021902151585587431611959169713054106900680673816935108330292078078779041774544047568562049688239227265935790735777932573108653895232371566257646933191648801615976914402446908592523329552899373488934643154976125179932985858221339665916141809218603590501348829082678562639104248927362625844748161126895177109393735205575736221960851270476019029616725328979597872971338555100775053141635571430591961036913093280865438778471928244407987198905319604955173217013762115888949468878559374080978858086068090692637369975612478476199836845238521268995465207338121060089275162478117668888867869667182943447211253171207598436053617591928507921880555519319156299449852366512090124206739151943466291812803785331248055312297554132380758996140452396016593273848973369484643736652276755389079140126360544470486815476017807266607275145429624679694556520549017381603761929220117050865217630928489142276361748119619830003150886382145986102595946795124670594931328747661266755895889597282460680388092581046596971724411668196481090046842739300273316830210716682895105827197114679431929514126487760108986382514284744602989777392648105026837751297744775654017083244803368075207345466812487898909079600468469579116294138938783450553144338681633589227068263503251995234707371537204229687757818412320607183757380527853741790235241526507553245739236954322341358692024806028228941063208688375962653154644073065683437269515949873050347849059426404390104854679044890446241082746862609100919651474880547795230604020151156600223142380405380141711893858786792037041501495844415898103648711873620791354760641553456343928351104262456582297628145367804954337307830874568079866034033370323988324470982135630290004035321738657911379746833409951154857691214680784183398986466511969593812804906122218388370772904591791979330146420850854407070462420156044853358817136567270600287345408458504417439762180083993127193867237797974329511528062378431344135740422762305658897650787185162827064688063911565045538965791319958303168938482302530339999991867113753899056692921981734826959654488072199747172931870803159115568945327167512601285560976405133152255669731042130175839145534335740580961864227236618750427506501487925877757375530129292058657942491113798956886504521197373755945268080509090594721208659669087059922171418917598908009695828105773862764217915935136904128814529852708134852063062350526510033373319118603218630721635205273755797360780695753697522537273701948400798178624997660528739483846439810521036192165716190535175776674314249900167851200056188489283894302803781807581471271930982909716235842288677706867668535299412687788673221659961949677511742310766977916054613593336976023861458982582357106402307649969762942636091234504143519906252962647891961852830220720389896064222791099396979771304813616076124478949819387157863996797166933543441503629236596965375343115550862229067558030703908718684181641890216505389420421400071878628477662881716483529374829766459075897420046970106986686809694481730995346755762294387680862672433604791500864853285384525233199876274482986183698035256109485391716596413364544157391142546091984663416640655924902261003301397798731000325583472046917825329632794957263723431530208631057825324915464592302642979157653484399880937817936663086204478406151189284878953905221938689611501238529241008527352995874195025547547377254073072638861034820121300734911955512753911854280046707958223604828763920133231561975159184277701059831534087791534208424833791300961590081926199778427236278320539639124971069878526604129559398735045839270847186986396593498370586408896804203080331223757392240304939854967223184892500782774094924605983006965562086826360998161830975511641814500256766235955367854408773002752774628266538395633780917319545329757702873299907795604616619697993439089767731050350942560451876406696591158865327093918111254862069041635233194321119438591679967228090512004737750842191690921392038150109996062238963335017824461208862792260545385731467395188033604782137939292500208569282464983631515073961746304195665765571422985831043999957870803446844363597079858133066743031585553064749089142097717332183835745249171960064874171006749548538047650448942912813527346428263305492762988626758113008328463310733906505653740453891141168530168348122111769983824369847231204840696039825862780718925664193089770716102732299718532512811810112428625242285195536990523188563305488958699179914256364638360694742822905859629058993565076655282082384693213482455530151135476296218907888669391259684741733354470809135480414184646060407870825720954288270317427599030435341130919994430633185114109141875842339383026550854949365122930366723743607759995792134375141304611212389920434241098919887753945782240462621002692154309922239302408998543809866616056693485262586159783979104911531800284428118061050932739963610658957960601855784390986420921759353964797364402008843202732897378475170457325118678476374714456654217030323072959878157825799341844282539455939752574212980841132515275148524887707502606028835466368590944321622571033793696856950609858827995661017261743820646011763854302499464635821625650177400399918120772814953714938976968930557154963718302586874352517099799550160282943203739965598542178137909531796706700511241915187712695437891315706638895060715821656550896874582495239057855233956740333285416323517740240148628229058879561773871212211373072512052288062150655374748624247264080117467993639074795839832330011133269523803122649627434829969873480003098858839404078030046437716107087233635834350915006918516656896925395187288977771209659406670008391598458852315187026959833743763139059710824901882192569077345319795915410800254115889802938121689534902118820233883738288403114299904127492763888662212550616211136521423005869506726650026018580147880317822151692374526103404068014154737552568543526300701965628011402305757943729049751426408433666929866194676687547791041250213365090702293996641507850506233917720415577353906350830920254591530690630521054809868768785881597504529011974863382549212706075096668203356879826996553983379888217066175859468355549658935686836427156208489402849991612197272559941730235222896718024548767235327484782474576820062245545000330630481260010899594757468792069841717458217110311811085863801105343341891534401793197841341150342975088730795354968798563837821733138547228041577790047000853072296797551320115145113267601504860198611530076837758710867048101513819577028847426993799500243798861908780576782198715884025266034612116989662566596357949571882503982879181092289472956140008145176226937483888163010648623266189840896420668971721170942231715659171709417014592805729176344635310856689149186406040147299593874322425594833817996582317219320324186824953518715749931310421628190812995492833780304605941639777029375388301084057235067676728088184546559043307307727509609353244959566621094541706876544473119537550896136306319244276113263299156518392389424354929248126089867871144328674716054088437444384204379774451473304009725441255409091055943790551996441692459718490019105805063890314942137699128994519959020360058379421503014537035052965313263675557020884391933026912617596758403306078026076650721059352999570863758827175593160141730880912795371112805425665936431561288358592709839995696550372455684452001230066840773623962640013419449007506896428296415881018319910798894661599395464890880450890071653053991238066472327318316790121582095367843604912130536437417676235610578761486956024795617168871462752993447997002975090901877886424961579278330551894356928232550387865297738021866042828050222178747129196614534890387017792766424954828206265585545142905514161819354955765891559379678341516286032548038257935373285495287634981067122680782742581575535989589489339496107213463929981368706998552746271810220044141853200355094385241359043504549167416713568947570134210276386900553162318643230412225216213628873517803054319711783620509483751250239539683164739086971550942998194253109335238118520877770933477556925806094309894522855085517014919985552089074607226666158973177668520285163987387086447796771182190154876599383627550392254915215560844993314648133254625888000520522218000828412435128657435611115478934910320075778111866184668762786075077295270676770572506516986993154540757210965791478576851053684429871929342422553592841543362183956348393120604693276028100594472597515587180693275340966644733407426831440050547005993140932780578709420815766669432931551526979371486116291814044361175566586320737296282260361742700375239569107382946120138273592892462057606878612966763867247706416211190403081524091079507590286377810221766636417276116817090532867742350827360995016686143864473960156931647717844154841489556062137390752735234035955305203866581751951038808965231578039065033090101697342883804958541949473222866615719703748983036706571076229690969328960388645626425712200393077182401985635018391086882364791682668940044175993123768063159782685774367845409485641895725359281412373116885125008779202485451527980391696198337456900160779123602549496761421315798179566121805421481947716274552094863136658138343844297646556853181914455621171413175447772955588019213826124374324826154159692748664995767278652568756841557664249363107229341860575978585522864335757430874045875406325223553637627338496135157982070504949070698134286097060038413238662555883555161844702813732299801544090593889419456456973603148077762673161442937517393999243648867308373379701078954922638828810289127531609073588456759740566759692702261294630843128137362225683583039046485659919436485172712518344398771858023645907402546957150001775905840791507450584438717650431098871743860224614920536415653160819236826269698177044257744557432157377735478371546111612413255835346855394151091718827181661109680178325570856920282971605222709103355315863165110053893916358951757829152620781287900201038594992250470371339136706874955029498166121204614574856931402334886017077960961160793496950142998901041373916015256222469777631953863802931408154187251018343219028564802841965724066375841249295145103950473667979454103806507166027992940495396450555335070352366035138487702588155807808250135117621593409386326756065138753724468074803360335832862408369001142563482484493137486644201380032605859930479882105602391962858123074604626725651004531960922163554576135241849237970387358275356465334202168004178839165102904832034111911262431798316794207448848245432600914081767613061834090213152980742419563649232835856841835397789134155989246648878012262803180801271750218012800704683449855361642362201943312465773557135468182229397746386106875938557191893255446612651065346850946107199968866066689029250653103235954632801813173590934974754120974257677632942038910785988720780004588646303127440305951532270219976231941940358743107584244641348177324010126729397520471054446501373938955694743801093762943768055392182848382781379508500811015417119807729233538034150998945496713074558379207651340534183675425511850461381257638094309263739483587933229445318740368312674405343157554161611778258906225549281770718047772746283471547394316881092389196866035629486672894409055150730187644609693706562723326623957233664615068638975936869472070361389269788746793269214401716527041345326720596113304139749806057836250684153529112222264087990116701610487982036434052594718212437028674191035915475545969762147856700075534494212517404592863238266758421788394354728932953474012183382986654593090418387246422078946855800925164347937743214541592318055520824239318607111105466621255843169737746102557841746513574456004970704258227176709576593056933847733539014544875817952689000802238358138638065496985989754815657902233245418549922180950249424282397368545879787501474452459486101634785099665116283008826707803448598879858212088029787455921288821280817872998146085711211021668623652842965353017576449740330361683229460400277826936127697464821822490021579500611491627556584891484487350741287034806851778956528841597432207716352911125234995504152009926902250512149817229587599638918029371044401515429930356390741279251374270948119341201984521239744274102061072245510512372524648427329146251140795562410161461282187620314780062714453332880017050038015312431515757032894816908312527861165704876003829312142984457628754967297929438614231411843782112872873571558391787315758014395250976202411442997074596554588340985282777121553980348806020289690183733663901263115509236463086336190669626801978350761063633823929002280430365629183290316416345664350670857881183236001997943843333426860886436364471209751500944430857784063868815525488443966530361095552098259635440066741971260175734412384271551829251010163987129731639143179360370026348554063583598848755659717320978052174952795707709747759424193152928785174770460670760472210303589385217382281611740600671434928145121122798934969219681001426380878998856655593718519643846510987104466421579286419311502075241224748457221372500337647312290705748721833071352183574233543385167887032850439847081688515361141830650443643833852732777983924485404358329152853895595644869397945037467788249383640652626839692677045880258236319013677768447099219152747607478790185580460309335877826535643521982903664202240088137550983003385317374297895393804909924744692038693738306689438337157832722922506211523039050280684254223219049929879046758143441921333921081367769174302429939526149355564919916434100483822757963111978993572079054107981068213806036268712770026795699266085176948277576011653562673706510260265745279327404381602809583725981480433217409927034903135717956918690098546978199580636564950438271070241621718974824447115280856046170237646298751212091294565759992609229460971722241371735721425836936992948320334872372073308725654914734209116359322742185537710624948832161372165953996029031109745857222372222884876161844790870295550196417594807269158295296187636720080713932900761323098917280865527368839720852444688704074163854532041168086122802621211418562603247997381244222998206257107176081866241448778937903579826065850351750387733457810469291754786989411462919516696521844281336157787271946591300182111071775266248856085160077794559453890284423165423923698364139363488474740282742872069176844013753297372560055249002715140812020429261979956914744729987321908413170598899602336526158969282511780078249207665507426695794643882118626531596292580735801371340104760553604146547587199307614893291351813526857464733147991812884411506855060417327550867380976738759480075308589207900165871053142780532772477805539700305661395284457411621421230213281073496630168417977230134135128287218268430202344206340490041481170722432132147857076996294695825575546725198903013554129988413753402347433145932288676058226925828185309720160107943885115500556308645871824888612796056091825495337087914229732354986837828385747975941885951342416284673228724614624782130396140036470992362275271201230607634288236929401817282014015885970425076114966286968690172658061225002427431900263593837030420032440137595338026274699241357126521767337452980857327104124994694754478290875061243763096243238300235470860101753319825156593677545128531341168804175955951757995895412267363790638233346628022250191673070471189474201969606829314292545975085038401291342497514116853345133627478560759892052033066788378162872020634951824927815126416276204235760266858057510877046100451632688171704621930635967258653482481233713632705886853688820359762683359872388570312623837667174530678576189366139773585613749837343753320374149018678212247997941427928116262819713786845652750606378034516408882749726794494525612746627373136858421874543300903439449776732878901448496240459841329865680955476517249801285219872189953015009608997376390794393304225611441065186000663764156996005774170503860510814425291384715805358826223057518932729229840106637904779397321704088006102513663571112887733152921508812007776105583627375982625694250904930100384535909249902698814750697732232259175824543191955650408756185892995084253143390841231658982063904426433855503064163355424837217167368206655069824933439927034648446566339363219236131661743414734113166515426297136164429213204279411286253673595579326295077633890718323230482161483810936030235401636477182571925713086332674055243539623895939945873038625366279635335670395866475028299275632640992717534265595400370549441870191836397706038015271436405875074026421407670638383491671866447935263575321316158786494038504438114566167658481530022927202942354951626260088328691293114025851710168444342592462806444944122966815613284452124426280371196745973251628854140171612032600837325980503882625617391985669824850802053102101527461595520157275090764082114498656779311206731548576068378181569503273849648392149044818241829885155014515143043302931221822469706137575232929733330118075114150800103756488590454552736354252193273781562744606261716343628713770415708083333737380056370460772991667728574929549404186085373618579409755247494971455778592248171192416332860716400687196239219590573164539717988330794766322376884193205695724988600177125914162453554680898207689282726383862466384606777010840569120712046665202960581298075214376633277288543807636677426665649905032847514907440308465931468293040248838362290108287975424100557860147909284688158299656814267704050411907117210168568995472093489848495930215622907773181555720293419450029558077580901182345752815814893059395281978594018857033129565536661456864087305874018584633065735873514695048162638232810167256442186266424856169001964584837954597968655446678029150212939386582797168002337037478983359276115048314204596715934628531685761471044896944778999267760487648485719212330628238183838923071748198057866092651966914354280652755054902037601059956327776539269189192006240112346352000386065369778600227978777481031254093344940111573604206291518689353864588238573625394043660367349958953474876933872540669911281563446838769862143594552920729868386118751970549966260825611244943419386569472964342724316478691440082231339857334293714310929336186556141005329481887622097729472091456123291684553263940755372485083779242645456086032892444562403560949407719846646301635786938133060529677669013473396124646534474052939127802239600571194986987281801987025604641433594214217671601564858325031442200966886196280044822414832961031273344551308003708088324233335621464884507120047837692983023720223313376131036063566691989085476290121349295159887161066786678122547186558442310566168444547239082736344880035971274470345498437725200170494293523408207102315956805723861058792485374246942224439000385057836041939234672001478864927770438132019317123990323973545063448499881546859666842190990372577280178292841656684513691005371824207080563429151568007197792573753967990415673141465043613603696899476341320165048614071197172322031031919907470553561901300520035099134794508415808452002514291451859374532161479508084899507247157821504548348715924504783592390818106439175334642173202591512611257355844298991037553988452891115706432098335153788579362558343503795040285685030048838767319961975119475427219826780084717433439677217827058618758800594587114809408882543378491337706415862214135230772723208087285615965719989232987665572463835436260783119593435551398003883190627928276476889346911161116062967861355552854505111347985419274350289889141634473667919604825915507823353416092640304173753250417146075817983518410228323364843995790747369975789907592862676547732373211826416855728034065217329654785535704056927090246482463583259815258839598367755194986739322882140500810022719438150644208955199310368015750195206758686411774151163121181891064188505727184975884449309817917544089805853703475072951756758355259309586113094641465536720011617161716318100698807771745580728051769205340264518403755423022627641829391501414159892052731887088585578817600300763180847770872084472450983131801456524378219266888801189611101786125476333916248441888229143814372469573702664026364547103642241672799619351111966800534176943087155383699999055291539611254622538216324174691011453746217270709600830065084464354238746751622606608310116274418272824562755413174398399183248524154455742697280532172787167327717058122074842082683742939274603984398063107416753272306343627209388630499461656632482291445583053511020929849769254957584993309925253875344445435002922968573404547996689329884181712772964610423305696343737058761902170824782825505939751171025231613780551462028020822201704193428806426609089528566267262272129991203054447560010526084294772898863623075586733548928693682238310442649309697013815380315046301688793575389589554780419653491400930543398044092945174577835843373653358518178161329683500972835901503411385493616425537307648406355697201878973197588621535663677920772823707792406059303089103314474934600343257181099174766536560000759206340546930506261739517390611251956400271911061032367228481648109330270134049723016269020694705147057707935728187491900788386906654557583183794818594777334063079722313612759731702831399080697120364649239872554039124264904029725735035063489645243894405677917118515626361128190149400462531943501437799509803840559559035517508604895378348201204602057600693717651447597488057236168452969901925869006629747380324033013550389020961660480282170173177246792691806836876295106047572981927327844924058728302401563865652051157197083082903147600019973737230857997288813526762724356044728058523461673860467432505732554190089775946960888877348666454968948971953295755693263704118385712432002549938428845262500395435658192626167757253853294426166893975605076197918182914530225027401074493530121392428932328092013238923363115411185807751403773070721506127255603331763139263127205156304650557753470978602455590070382543745690653265877234248739738753128843400833835413371704583694547928377506885357049654980621602127824717073947343084291874135697750791942850154973952671835438011169094802696950907950801078797927724569278237302650746773225037459552129793450383860380186130086746341549744450273343571730061907691886418525719537811446364029317566958820373354441605739500364644293226176493185026984774617366955617255206253501280448830192149445665109257818737797522189776511619274428248941585803959267205626632461545566489482680212249735181217630174100531129024746303566709877769238046404259958966450010441963978257468145811256629747063463146994256820460722250230993996819395314710917862285044274285515963967220930459071411234046409060596103750396729014194891891909537613347979125437665479201924684743578419614497527875167545800292837557638348586741821647899122150378777658567172497938452784666330314420290666886273195862697548653841836862759934467921526006419578027022960128196355081517813610022047875705938152426584934639085684912396246785809648728922539160661737431868902009088110845873077073988429054849905161530703720478144198587264087531754249813105926646583772047361380510752224873947109835400959064612685231565308514071856701753171522599461146456593155909376027927523557828875858512037548600974732372805602434090348090508309140861564330918825873813586773621633831535805803783203083583907288153330824537365196488093251312005321536372814858679391872572515370839086022692252427612532379234888229072824155561255604710074044550006177003108897831330374954384829334702172456527317242122222610246048547244341743069951930277822039104948815331498945556059909149091947268855458084247810457600749303451759438791505875337012710469251765977872666441877309656927380767971917932983533053534570547388344412503794971203573714088850609237387367497896730338915108583089912399512447725806806903782559050523608120389754797260632464539417165587504246334895870697414939024438937070494357156064232333138267337410985429130050107929462062417135454080939764314968936969143842021132212754060224392880183885559723150959986384130749425983625187373028628413582902164398289704432589077585968577046737676404457162214883099747116833776918361994779251236288486864947148234923989617212253361122811415068069582005959808239147260653393166116348233652951004204236595731683637561350791106783460280568122386086159537933450247906117878507962686997081104894671877024105001222482752716059644330586332942186245224132622418155572837009148165909883702112369164409694065339443983462226466206736197921314648072980459252733708602373474129038945676096888552897585554155154994031111041417697913263416925340222818922643350869014839058216304043703352347845768727216723392761222184641611573097104994405056176255908164895969001842725674823136994866931120616857996410313026448041397082170125957603506903261694313118744919534572293497941366797135621087725057723428817671321126091529451926422570475785435281451257358319107689576328618840012875061963944859694560945991500058461441590548172115196274894303975238582341746763962552404045922210625946272653354220940026826989859713792946707658515067314980166604099351337954959251172614943215936269654566800618573416838697568330013284295881954137110084574380966224118990816852966100353032229412447117303608759246247001176716762574924432694513602885519100979406594011346256778274247304505100217466685681818956410299298898559830041656678650159238870892706582409818394229181557476626923375205601074290020991703319843341272925216498124327290580594587784591566285686035900363431788488721985873815503119792738824950736791989999471443798386790220126239335575830583836410465068251013010877619513515748772610190673558384122516579481131098024336544344000050279139989588717742542406346945868488990088000092208468825430909001752150911637730382158210082779102061974412328245720733172508529318854979178125135963324380876483588383247188414097631552583135159562038993233246664603701485278530458986801818064954860922936495536700122988119078721008135139311940682891237612819986843198275752668846373768981180039661155091038506502256859903309505985311890198837847698989967375947323071201436991462042912205688981642825699504596350730736658538847321460523690510851382061893014268233147379257189273121187106798793240814207717260856014701941934854304631567333636539686601308805449258545371361616286479771718772317052350327216798628702960348041813903618844182770582981882495809722465750301893778387119365742178455652196650203136692782426786117686209633002069913849136405024389402646592469756749781507401756457425392459438670447236510007994420623358945986721871787747086536398034606993193027852173633901240733699155515589610472897117698462352460856026565205878127557214035849478399257952045878016561483761156998073145140397423813524900626705455591892012591606874582796954603777839208042856402969204393316873577552021714790312067068600918624984844026402255937883780322179676770005344807865077764168070504359990135627895749253229477436070733624543111558075485596804274664838560894725065019428927578808507876111779501937432216498279594586320910816214599974090044156609353198223599837006799749072016537861615246302623064579559859888120904429039940591845877571325822782300424363829219851507706015393448947292039857211620195496845516589481152644905105477090903439353606894973768825674302996986411390899202791769466499377645250837311952004723907911295653443094586858574188170193293723422003494313190861467810547876666422987712136210505287215013737157051067898003556054054821049926815336918496293106359219325262095707210625935365604112583413030568894454335313166048428838357700858864401655031263990795720416642261275638519980413871364176535984736476353498126057202958117217147429363617903796739305249334104632417675633507652023075996892077205342758814220363886796441680420723915274788736598266532334535687252251654955243782736794361765296534867115593652678491855832212154000043066956349260697235026580430739768567338933758125368935474432648945198833184290192048087397614275576823557061230295902394480090869763316100251858760579099312090353795303965311517859882519928203356428619345992277211080700861270161883290092214195041518840965340048977975007412498787004428170138669412077072110818351755993056547312103142713424317186942249563993106948494980276443467263276813213296133834796742266201294496097294098848787178035973986833654326530756402539847132114252723566208402623971117291761479621481980382020393896475308532689803494159004591920312717662466608807253842490266552125769817382539913346097103277356032857061842953906831858028551904695705736955043264250370166562331774065365684970246612184180485160930986519226130752963075727033157340407658857462452456779516905855526700894580584062284928583217021188035097858313575844939818370766556017903801991988932359252421927244504397526148642146163673051036091239110001986398356236359374699102534781355665528975986994867508477716479843332766482205652779380701226417886332742748178100380615016313648115303563192845745096873120309967964952525128436179783013499814426543836612944078611654241736056543627328070622047328546099228088452879831485065402190803431237881031473853931972577998145343392373298878985580809415463772547083016737316265994559880044703859041152248294980119603201486871800615767403652580839799596237502821321950716947220328117749674369470439896893130024034758347482698921231571699753643408970376198179998512892102673865530174384594078805424040556991438866160359719744880486502394454372460118953545880201194936734630794639357933844923810733023783303101389068912030050621224903766140253177028381049709438519040151970057519159842784694794704402878394785752712375915372340729523959309029484957326050952712300861436656761589308337273682466942611282025641674498240228924105419524708547314455921853725528423025103651152775293899933458085523727863623827802074567865225839411923365587528219562271892568391110095445481742971490083748208246521675811340142484581465984448469172068730954255432461562966631588626216458414240439446862287707914926683016590812089060323138680236517111127634210348608708145624676905258092033912824053309331733993858017520616326686275748475846842159734313448392816639183881681589051560733687124310336016890258885660379765174104647392715523064026725234058620101881829387211943355065177172049080583785050999812500289911158290278807985752479402647005395117764738367517916518536535214215571531031862978753571346381095655206742854928010540968297226021823367612180360830683074195440145985952434252523700059369352159004824233916326319569335872153306774912202330260013555570907019045183635766098654945409130886023198174531190126284808013606377527940769917940591253519700253770729416166935661346007999077592336970964038809689338525203269056232072032642659065337786582184509088952017767241836685927455924196332693107651070776466963672126819176884957732407101166035834589001672114499254505836379802907370184756157226404678184736639985545315191633910611581254819522250799763380368250990670457494596519173933133895795556278164052757614298707279463697682561071633188244170819266687963919540314162479034096127162664460648781319983981276999964363081010765827430983413379862956683472908232317549484650380399768320964548038302584745318722361211859304765485853496769451868407736827028110314473897901282218025619157785208672316842157398176658710021731342054449845282294479345495678225730576379399528576219674599819108569257666539005640937498823684546236067732009250076312436658510482543421325939192041716653836475295926279360549811346104924384202048563087164026963691848670873344882839979348009507263858742947982202937588560306130992093618177911597984931163308945910454373738184142368778198167827430981940008914150628355787869975249106875363060927633820441540393859624528681439957366789664242941632471477290624732533440646522625471124023346471391417321892692131049811650708139531071758818644162217905270294533631665817401919298376206479857627421883595399630694004035881181859477971114719819063355433582121687812718526979119403600419266456842925068014592685103569809798267854268989640199199257725713980568002635386862824020951290638938095015847331175637575814925994711915359632926371592077190704340358908324382562210926343514909382708155688637713369603511061104673959217589209467429694328578918760920588300746612417432716117561377246176355285666722105161334634994619660805719772274623015318107398823748891634758969022276462973268112365634125635795494176983267952123877917347026320017966453415735473545854269818414458448016515501686497895516489060257639970406293822787884361637001070420881563844598666359728271090613557090738938421096500121610597415344296062755572279980049632604098590805243637178459508986252566010956577587710456452054399193032834974900964550671718287557718649502687969596935464114986829704139697399398253828328867042856388187463947213358080485850403382591244364327504301797406368442054237082262691152641132045214894860636761967572362861461363276036335010019808657504621654215026852607299689451738879186987585289253635323516343142653309830998279536775800038140533262379841903497601595727870821515465245752478424434447924496550790297907654739428913238418154216186868571211270867779555023072237456969859405518610430102899884888629425985982796055911652991950992807721849888364419127476326474048129044914366127335771253883417908241581401252129142056249302277513983809299701385094139106960432264434478817126447970373663479809634085543547680066653385985731214042317978332031569720417348103505304239652080748309596840976520583331768639762632385907890129758214703738465675771005280623511100443572450444115235144689403980940973909363093610103757065429935083191618385642682612052241344047567995778125576673850223341350611514551382354338352891576231098681976621105471474574512943202868665133519574852938839679945957204738211344650366625724780311072791722003394479762015721589662300441569931966860544824448854392585519642376174940141620956565224355539391154857051804270916181528989511309524265509372500849569526780054683906305482475674392872193749943771831172498862866675077096361258982748303601519654181470430164054965707772417812436625517851296844307163913964837250479820881945597150435346124661840508392214038591949013462848163813141483663287127883378537154773367889163484533349061123925303736481068854634093108510048600433066492506383023210068101971575695583428568400883076390981825249656602108894277109279386873930640030177844432653633811380076293202745675900459281750789218792238379110358282335061865973730033304743440518437985153570122176572472615333184592201767745130399516528815982796572278817908262750804810462925197762332510440685298615610962806963349335975476015978683556508855898048322289421472087462776584365244198199233020237945136400231686337729400831539768547677536901768742090831756917791982437609753673401371576579648945613834378820328960721123989141847542740905163403305938985243348231186862145765282930097573225337786005794068691126781999629092621011448719208716952432650379986691311359847606485767420067213304498357953013429106849687119155800032125742918686819847278156405273874405575346256762206276469071992510358930654557558047077073111572269214338496721361830309414942978109776344031772025294623453294098920126455454322899883608471888957603716774672577982610765060980923581809396487315172432600590310743960160200011022700362509980117286439808571309969708101498597901036581228548628302236549397902166480671452247838464201998740049484947769842002300979707751021763621676453182855800909803175480563332231351717150575580329772964983043174712440667915703338865090728537989339944482017259325127763711097332116384005516591156911040133909251347890695184573002177800446572958935176754919047208737734763336011009183648781723149676031759212111800426557261016568739530490674934135631346996594281921333331917041799891592897337432412201293683871530664907385380290906321718930195193119502757279076463389857167705910821314234256506035957576386626222758070738825188506111542078467888025405029455303816599071845566169947889494251148331700406345584904847414944511888111873412543168588293751873273384626458880616115896119015896489852535448994880034439253737564792538459936166543272115757923403383613921905603862652977363277621448188958504548136418347723331841407943163408013477015693410172006401824201602818858173239146148091992852285067576585654528999610414652628922385387178678221630305320657902288213051579747751053496712748027292311047408303237453732664905911464717367355901733904110222004061214243217292642196409481614762441046346323931041103223703425057849395446175551318795489271985061143311284481261521910171274233304928311787745719939928395310928470363193850849727215919037386768185151711334849298541943950162899633002075443030949401889536844432605487616578455454212136721676979254171352357188863485955723069145208471789119341317896237571379047764572807762812604694589401278422303136007838098018581800399386009503228638032736589162852058640290042890636366104525273249905794202204712108799321686661752301215655883933171259935433414952018416966712174265557100779059851554848999937902463702334825759240566222835991212391303447748026816580772312206543079464809633401231080565279176796594845070276496613708935566118498825956383558188598876332056289851187701172362020985424669589930649584439149125219556782363163481608417270909646829791238902723316728464893262589679681635999232051559091245588153074149697598377676721398297210055656729787416343892806391230071331450217799988413087034168230613147355174584634875499885664383214199606443775910995098214535504353199351149714352516703903474686620507660009535136109397457941517417144160817702895050783099361635079314492978698897855699281723806023325948203483047485421300602875089694534519263512709475457776391373764573411935664771484128789180316291703841215461092287884320508146008550611218282483524852607583490204614285061703679893948065553057323786603218635207799760287069712561808150024562196675564266973235148897543933116861198298770386517668561576812570023069491206263183044796406797862702582921169877149773282486342683118146743689922245798717622098235415054418805976537200820282774285004420432147837111117979609597889648058642844266347691335519018319001670977656571532919398393359998297617448797716807031874987316902763873704905193184938414546778966456045414227640142553168708923070799983641866124343123959524217326590963439517424644888845683813800971967191267400976655251849171413825768261798012876327606609430543477496932130552157529696782541856071243394966516662438594705572905942429284072262249688075890484273414150748959957730154963781552502841342240376491607455559033952072212844307616351455732399596451396893122683047964036145008045711156866444627862109976761103447077603277446740520722927925048032925781746767934212762851181369149453841133113701418287073928736434101691890504430960246433082222668710665447996551355505977572494902826053854588365888193726629812981409315887987033539877984384385199335169667971815759123977474145644042157370574449597958744256291025546660302494091909214398076542953996779004314034815618457056338114323562333336417746109698403423548572979005554014935652081655889460629038935058950743859278684114037149705826537775299667092854498596685184066365952994801146912529312404090052534653048961658457161366406569193674087540765107194415385228877875561547913165704460266052511026187939877396814538041661318214161542153155856804334231464809320852020681536688223018670689348844916281043417842268989128025678507615602227416628853518094615217101887250743785694288862825169552197486815395974726504683096870223042142803889937458667235660004811004995125016766043120156866762133044251968192515141378990916309320812439577124141746156514917658918350305173351337386593235343474646708458812093885352428985619486970272409365189964525413634009088559842853861332162238311688198907414700485247579152186632131787864823018679383519363601424644605728204329115369295951831885186269736858519561993407036342185067584308462569151489074039506562288318953417535150432564033010583488853007895031312887550003517241346871693092537078839914477591404949937417076928430800135755877696155643529367443205424319323673206216325949195899444391654449585911544996507008262198355919172258372109563172352529267624907580098654846070474451138667948933112873109057864559213534771495707834224991177208652533287586028675634170873839764322684258779791793391369848197084891558973496914852325255203106404310403343026439758978734811684756924057079150351326783047488745605723131907984346369603358618170831850371753045184431279293202233018861238044041495146928144116025380930497364903042939372703034018346188509828312941239806136615227562724006585037211418152675127571924232195102359007481170136822006401721764627055979760145885283511414560441045175737848805144696823888018330502450310802534575891660157622223430586841652803815155818751352197497229300207603192524604110291177328610530018759365074378699641683774501940282163609709078378237212982348161948263716963207174294646080101917655806966389076711332404802087315870857785105199643598502601215671276853781781769292265306315057349491865365366286936873833986484431100953079110398056773261563049684660011090469766273713996354934944119166693186441264452374915370579911728422363466504405906534901422618649784727364793654396023092170511092359068708592090550790322693303948493970536550941149242333438132348682932766112849789136935832469774696109072240358624708423728151998541039354124512682678433920741834886239848654166941352294523800678453924268322693329139170285131623120562060381070534374299348472157180685303147108080669341459562136059829787106544872803976178198723462537092485616330079713054174736846830463165749057971727757255267322505856950292063020794479547888283621474244132288786767443598325082255249171181809623422089866380200262147684403982761769892562288174913858725250723999797814389079224482479501022674261079907736084696971520263767491151140283729557391689322935977933720642068141594599603062120814825985404151382918257522604779236116777152260241594342588155397122987845423360046318009936438825374737289892942399095641124368856208029824061528995883190178433737008698877900605281988717070003517758108594267712825805425183855169358410514071130894242475208413874200418990868942140839486667795582488837712500581551077934396385310274454728544663161208039686620172955656230278811152789284122830883284652061945627439719310454707112156967057577796039923769433613931506954098897910496804341644400227604612177131990711442742997363049158199553377431662772662661988338313388326612379194388045373789214403505639597581519761584938379712809670309304715716785849364015989645733206612334330700819502167216964449525904711222168146818649823783493341200202503163526001786051575609408757887657484150902075211959226924231528570699515413523921456924663878907319285476128499388982113532398332712380075990540812625758999162448891504664357423992668964260548996998992124594244679310400835010837057023616653287018816065058492971637092403590005746885843979393879360582381902191048722236627682748152988989951594265617338564521771928396052567295752824483686470342653806155702961863510759861888696386546417903541323216487897864242317254162766080996284683048831529375056348141887671946698912364120597511943109210504758227883531546963913248927348157241117768117447638177173127277134679459325182468980548501716178527278840416186399731477560118710136684762671283072613511768381277071729577907053794414499993401264351239989552448613727966694651439998384630163386436408491014768040946196340580904949220075930890635691984636501718260209121825931480140000687673121091307367222500829339446698978056454389882424409458949115041899854393895818024303556772488942621404667224117483185893388700033333952722607019454778539461982244719576047269158120718997437581000629748017110789237959673883218870464560243904613619633055354628053651573392621107769686238363492253445302185944259878074910360785203083566577922587798871407909280901462949399735029655414968466411753068712065724589189299829902691670712509804111947703291291644432460288741762036768467471701726135582963050780302833458216902040116543277906857751799685241423406837161190303998814850702869865482992311980683517559751601898533026577418451133182667323999200017083023358228980899180763405924813775648976841266082938549405784754802905083928563209880736175549290864607964105197701387381597264115079965840967612545811820274266777496328344052723727179620295619444526408830049658693618670593893686699724814006031030963914012665510471445085399602751552206045090254276329583792589825288506855673727063451586374139694940033810306842469004383897796156629808879009336647349489205877215341778297739948160772120422794651563136158903838320850899647822916421893148557590934189033326110124011831618872684925457872283211245125873778151562912903521936152684123920615371059982544742834112442021492898622640140213870239100973319666753045799352045966020902426697326908745368365009126547780806919186117254057920863712655571821606997588607453379690347510416453005588406520674906575619654767561813544849208079806995785481054853954145802360883133343277625691113490614756551116152481086956532381300368759508084940886929408439946546901539309201472224339901022725059149645651032102513287222575704599319930786045002501444210728820443303948374505767858407145530001547110682316167699821175596718940197894468770725319098735538285372092072821796740747062234909190648483202971327982652083655812390222569650862143637197705637796774049372241582560878354173090446996208965962980785566493066266274051001763685920407728623561296939567091226545645297400838848927611822490531955243395467058295590088361930046557584976498570349030890784519442392747250380764839141272316597420930010862988527256099053623769564103642473545616477656671081091510598141897093162694388043411041492417021938600701524858754816515642987198023960312141304640472704461517201407244194856220153361127069849930139767764733261156447318632764823919984067713993392218343539780892433863452208207038367315473186358107496817279543533232757277258792187493808810663171220152830896324738027293660865989224921231925491043406559063866896933566250759869869791748461494455953921012671582168144834822588307030295236533986818029371329506183304508757632273830986039835005824873290398157244818434250720882196827674069520043561694460240085324057107193634051663353071160000875916345537036422493302447931920244658802335241632565343546639001948915533284811026991655440677164549254984903866814122221880683910982642878205437993860676449324685279601694907059570855411103642080286737263989101846904846154921184703219768996053804487361528431377123416118601208319530174406549997812678524188077920219879882327512966767727150259595061092403404106221507491685385508452445245807459797489466026587910482959543437914513355992756936014708180568263109763687118490546281127283673773610714530068004323025165452016537073719519087796852774084203973470270653544433152365820200559146820395516110185519736741595589220877623404424310376336407522660645424568592138797101247048206173763046016609557689649452698136994587308594665834047538548310105565343136424182005962005389897551006615080316450936860346929870401600965916622936167540774135142781084909675298624443982463538957583297847693822622101219789609134627410438672820222972382955786059223003361666397818621798553659551038892188038786958265651777778711929175582687256647599894081268556903599745182164373867653098276355811676665234888132052413172292605171368760320276995193581138602685472228730374449650090116136938307439915172676021986084140925273369677538427378612676208951964586531082323392269756600600320269357854855772127456852845924768982124030763580893204279023597016686583991764091347349598335474659789353591430698680453480880469358937280554384714291757706250864854000576615570977035040218937736721937640732172899908352900041637594405955697538576420022073202354730318268046771387597477279681309282173726210799193959694513114378093885911385377207578434554395089131354620718610111230938556950361506585371808032512431337111807151746260753068237234075247649282277301516736304408687563011848506411738145115556807729814475420304605765497683976258199051963359400585874056316632782309126379552215601939917172990445538646001667179783013409788125491271745192288393046955946261111233414254389561001693260063271422668162388830775581586033737115119810549257615565020668072259211563523984290177737503147746633228306752764639242145675423196621205422572822034698906509233804665075294543392862707132873988026699129385004401564043552840913508479526187475212911637054529556185175513616779617291986556139330767597063041568802523908305512046742956214833116141592730123110058273488239009184308633938850116059280557436045672460030251430803831996008864279896989538832545083451292206812753060741181716662088426602882565759521078139825893039198183999651876373583299922316005778038834242647055121906004174312525983554834295697113519698838916177078387976974305364627642814236433885284478928780318282650632422561737309737368608390705469351887633377032587893930448997163648723612352457461408252057961372937124177229504575320150842273582636970350804693260951005557846145158295983293206748339207912992501593240271663573493806204816470473628566896052613586620769189358685095270782380937588317026740561197409320792801543605730372850759748070411357268947146183952102194902185072259263804539470665608391892160230902251009292975260492521900883983992632352694061720167085144894863732376369484800009315869908461388267962492148545955402378790156097413071548470542118969784439168599438742822838025085506017013607251754383887134358384548240016119602127372569808463889086404869049803726365750499660030756941602887515915451882949998402886016291705173492042025906429584832493326991920217986293956355131648383930914676001152077687715741271480973448119144239196883618214829925129628465814899319935647510586503173175791625093897808218791259722714974826734130433907405835314535775513450621586851783540495334927143759940251282930121822563551947347441684188821031019560798285057316749455630103794741396043440181952948012201912439311781745468481342848987517715474346343856489400532942854637447426384669448848906138780289262025544499781913535919761258833390997105129259996136869307198543595163604684067767945336168197543503377160386041216565373323233020258392056970581728202383289755398797728322059580916880958227774910775076514602991888388611457169876464367962466511384579875281876074879456851157040712658441499203214801422838957969229186736492674313493947240472105583159785010946541260359863356170728645125489520461116582374309388766670486925518024517845276271203312925051397088652626904470596772304681877225629635227948264082453394646369036431198040144779755973793270581102326122809255534229363557038937664498070754806637463932331343577652936296992124465266883430452054717061237218583468923224234473982498283907426947936362020456891079097659323255810354991600216328060892135508929474569882616853166677972314627080649057145750818411760005307172510339411753744631790827116466848133702876843368786086008501992307575553083455425873326318366769807247452851750100524688399793488825455912507981553739584567177252920554618130346092302381785470500544208239457350153370679536247340729169234043420616805748944253886908252237321530483149668912315844419736651166394499084725976473198808303871420297649359591058311900312316588089657434493583431774196949893928510965479426639551442688597565788708960612331524797602197891285836736314870225034606200734612071036614175586918210134125976094551121498491196382975177042708639130291024932641986501917306279197816367343281782539205469149961701092224219810477354281192988391314025848414252348600549359231633707801116554550023619552279596719200496648192586601641388427628808378786049034680112202855020406569788492008660876526514972757626140366234152895634946414501650740397062912108191336481464888360929221854803562351569243715438670404383301311728661776985037284298847497049472526020290560673926369159709254782182990592418390218431810064859731535015163569665946750242402962797848162932503115030428302906130574339585286050884924324355776616357049479424050004075481479663754582588642290473529381531548469974885126352729887123655175828360895645596695758977615752182533809675956466570791688585933428097242925240901512626667266232442882777431027560916381836210322675442697997637642264273611925461385448686512127280969490333159297683970263782990958063712492280509900273113330869596429859464486705589737353300655597689250284926274613806992061857383730509016303301940514633791439816024828471584983153196688622044501404615940204848320502997344668325417481140614943294664349602449769368407178921928066326387016427997077511370063567653481587159113597925003497528334707528924162792938940220765555212665432968635648141101911720501001953211633182991727373549036296561693036968059958522669153121029740579824060150150638342325879515061203887720454460448413636464849610299863062937179022876103012077576932301638160620836247819393039502490601746420029848301599203367427182830432571607791759373672136595219136285057507764526501952910385695883407386685176431995970187938382781155340820423080645485004635923320058566795492876184780665065056092994119678057118483595381454058673549648075777456812161852262444436827645534360186265127689979195015695017268350521619173298095188047143587260761969856680678984626798293280487491036236204384192902817499484670109273166381454585743149120210493030567009874894817553264085395247955868165846727196498191355942340899588110543821982588103202548831609335532243491944916299621758569863731571619725116127906636162815068638495475551484784488729604763372625511718792279338651445085159832498262624935479914868647238473454497274121256831449107357749645571471882521434327487737551320028182564120602614183035151821236601572221972120344608990915217251762832557135139533215523145407446841089643709572591292970803731192927899957651217856001468602164861727195762075517792989537797994952629301197408509041879109902667952975320071996667554169228213236228950792563746637266914745303529898267566676196622041876711192693777562841931720812630864701878277165352778589545032824111019208785507351548765155514500407724890583718400015254561754764911286705790026671384284293493641045038810963702819502224886740356476830026708122473123081564039716599371130434118172839356024578758477178283004392717982367468412329143441038744013085218647902120265613020664260639380062281003285596500737368264207231073049736203599293658227039905124336426863020914386295583818571244285206397407795734021158194087489217470602377692678097673049818538291482086252683047075298803344936568144079785583862079637283570493548376339313115374377281314774066802581167322038126522239659873051314448548046876408033087828296719927777550209896303444782705866765604883323394401828350930953427587000745781750102127349957581449161973595053800490621390725626749309909782186736321941403469488349085001887578436532821713006237815434048824464941319616395610911367251575256365921183784574636968648351731264792677618136137646561039922165484784949624460231809254480884405644192932628424949368674221476006498229761120893832876478968689702053003606935841662387413774969454301847371269789232605498260843213610759409308229965178709419326847768144941997555387923223568759378622504495389572809634222213243531640402266040897603818951537940064255519144302096145053343310934791191383888076206788710195204121642321099227117741678613196940489590813199164757992842469773197568295657983494151010166330157127058039575724606835669046169017347434190123528386462788395357448193784421466573952113808245299393126484566255339352957886261674236855988616582888864641712450570254497380824161893772880247634705660303695088579562477347628403415907735056678936781057495533041115751171424478251118968731825268842401445065292496092027252349397980802154363799336219107163585171254278954369236568728063494525871186126950951078340836006463310914532275690606952439860076103116496202887570068222527895756913468150169609475190741553697756945613643194209230321805940526972232770918278863367798320482325937216950348200023475629233542363662631405851629423658522784744863909064047428266321515509201173678422895400025179930132398259760347305868781532904877192188265427228475574657101940348813925019465841244666501892429693597174998524073879394135599561721036675643784550012179230739928636535508799471235290326211461075133039462607340494185590708289397907638959287156062060295174428274294633884477476266398924248604951763333772554343912485954515185483490081489722015337443792593262677286418110816636893092814645733907802125914596158061910232797151379276833850333338903732933575345076494030199807618334540965011154127572321589292939187254512240343310468782236252096134091083428332625728485952561600636084591050916258655428969267405851388615110280886861154459718640163740653374793249473329637338745953169098434055046408366013052109778313489888789152880023507998814214700848273247971618297604515728653435769393395834100393712897649340821637446686605852741281797185631424094587242243664234704869634274060597380784123256649942016823091847581139763411766495485973663632910044236312400709664347586819969486308710802108312464865921073946026792037007616363253717975725842263882189485453396269814593957512250490744770961090880328349238205440179329010131729615438289023861996870454415915394096953937623012431203896301481421345151387959022279290758944607531017028367449642474355162278518009645988797449954409138016174838390725135145467265283618405193168159385473209686818452972204055508109702118916283569332871600381469749777443294926905274292439926405531111429061094089851420981174130265884670368687880567474124119937162654416262116899725654595920034297909531696444943056494463324586658404505634257404944708282483090367444578611979055637840173694225072933240214562411651609163101907814890984435495761701466393506989780978650870586935171072525387499435211658984194016132519923261643562309678756705510263073869818872521242563805387400600102926612494673662739509160088516034386795178912449934224082220230466970866184623543202899319493689867221101400746335654812003910656338111659779334698452545931570499134563546703979955318467953643026673101335259150304401151926134771289830257440055381118732398186930269730637234239491135572255683472959424649692514151615051651461191166323128337893196184034704133872169513024579250606476529237447930166138242140937464690691688681788625460417156965586371562121508012281596094070543504555907851522655354570650910354851738744679894220909891524985400094052760296900584758203711383650451358381288862452935368915723526694076239714628420469890018401126782428013649967011480503619680687765941875999190329606719951163828304283478331147979861251890904720468499813128726329852584878649833678406616399362238554085587843994536716424675654769262855176478646087888751967440853179387407869928314125987881807775605792358119758917724023661273277260832259840956640289281537209265514609507938294020852425593706830816248948994382276216480767489201225803554035006720762907704782850767729969171268326947326182250678693877908490944520424394361532709991005580065735934537359301849052985376608601613603703263192757808377362971213146406232073806819766363970915067656846100355509604454207517083131585834593056334637458026839278661754378196418564591461389747586322431412235931378285954681582855952482000124491409933638107875953397861911466466272000529508127557804638404292371244926203732363611982094068581387656104073136719164591963978628034787045923610741864710106776262732951347904664168404365131036956164271148355754500259415542641405169161306414691656012917996975943008497301179754822946905217869507128774453689841437986884658739692507316131532056024603756401248825539528026132157909759481497415185183793546389986960332485572287684338367971251481755525971817282077989920101218818409639233221293826625742937588990642123967747924508988829813657144856520077951791719291247051038429566665156264413593835731011151904375524508262156897522343393100077654039313319231254508361061590836526507854616795897496995209164476436599499766219378168993081906932715375696714122908960360044631581240369443939371765874370983468354646766885908031980780102144118380774098303491646668197114213294746505351900485394523081737608595018228538723876993977512436024219807040029584841986210959259912154107471618736884847222045098386677160992180389305637210574048067901682847939381085017486353155021712989474012541781896142177801400504202917390568125644512060530890910111728193584555355643462780423509208546084808350071468199097447110702363143611608066026494973047351098282871163615276005450219943509498297012256294073738978147310279451164671129901667607368058494080187478424236147082382337752784890066921053026647858349031251254464775690683259671582790269266123627865814424287537221394541807905192630041843057731163485644962492890780040858596252643452114077291617423118904143184126680904261778192256519684930069406342548040958251089048407927529122917475279174805125495370050217313289035375651303250291181112934360274613766621396172204530490902653637777343610021192800679418566902655962596265020224642616442780638871977059379629510043981035873972947473033295579576824501699276097175690080434581093873079098721971725076514068271098430966838076356458718740305989195655937524681594376101364007663843996502562411921206603310097339251349539399266019096717963973028507255616921108762546725066439935424322075413872441497991022210803231490050256213097026182376554150942373173967756937956270553665223809357807296696792062120687843485825052717221853790176266628486185937303142176216747776070282238930557198222696656719388882596941270079071623076785048110534170487164068401178431387743096886910890923448031423777795553994298199749755077756007430437362544676942433672868203231127169412646836984431924894350420224610546025961940469256390000057057221307693062391846239694879639409237390506750093020846763827993536719620332438075927343339863611592764811641441713882153125824996062533385190942272898178252174160324038620553396314645733639389069380417241859077344262702903288652410989745229553915597100902984814075246661201558643040643911174233555522861787411768026300367845537896519704041973959585523653050307240989449704076503772645288425441535197479477425294353728861413003019478501549360339114650063924369060228497678663782782118357213490666122285413618461461928452984972752260308246258054049319055685481297148194145882390514000516704783155331538698461410615840125971611194869988297316748187491325232361218140851564634936113995822037134981128896002494571930203662046398452511510402241466020728505044391038243101271069378506052062812571552135330150308405869875108242290115853586628246275621256397185564459919405366526509693261427200518510239377591377581434616242392188277602450343225092718760964984268008856423033552445441758623312463006333667718831150181489624598537847802025360275286531995640853271849170632005506730102551791652011690017401449789864876669606057344583751243929926622508245607743149916195148993814196054259850457098239145419887889099986354737013192697515967281773249340799498785422189768325629690898104005847407337553490240002215059775637444762352140087319516787703976485447427885105354175895951402738863422936686442664889734593672405722465480180785894956264074472946976841321732548983143013445601946040077938581776333854341356299295064428120908880660096514799850992138381484387335923275741418428985895460603341859617962114680861630968163972891189608910693531342823229702023488971921183061403216670134320999366347058157243144061627187240696271491822430242178911689173272897888260215416202150172881358554384190149262159623514599445861771102091767998506981781414251618354115805914957410154434808095373213354611878625743009703492588406122647166852089001191544542405396621482102207324069815814112209301487895770689670016194360340724100541013685842741790256213491005438987534913326076529340954656209379634417486942477746040106115630122128700030464027863693097541349524740868947415692622900152911219416082789072616500778011958267494554296990469078296411000756791594004112992839344062037335655272055438072927435208860849618569605984914151325124713903344882826952693532961629190189449256556799108862780818178913947316749628353942192837234880959863223879831128377795887645559006648940294794711273663773117347404436991883620833899896249308995656697211062076142024259376336953610890803951808619191028707524495900094836003517903119940544962496566973249397330963185134938424884815401636473671105175506733797654650782009177122305485313503407389481865399108735600712577540416898530969698507532954695370879477321625236044372751931877797516744160769508768844260215676704622583594707709374025760358004571518319567474928178294197380617837569974130299016943455113717447430029644261296662912081696673977437373987440612331191765781040491462884232366545153974617299414924046409373883913446033862638167341917417679331473179037727401886537158313668587984626955447697959573964720117120816986743768048862576898097451124217666160252864834097001292555662948414004368697505007688755863349109731817306798186541722935964131298625666571184013599321083547135991668867509873573585553396567604632400635455977296148601557645552507446788710427753656127664397739178254497516404021671371610062436987469554190916111049661544681448085271803505895564583329815878044819611225284310913235453358087440024221535441358820730378373166997300929746598468812351552984898339473530561471790599560749102304377626076900253258198650104552792081793396795132322652269199242332283279239995013567383020403862531115246542751774595781210990551262253327119029746278323222887302899041850568173486434383397260058457883321234640817435462037223611248664182865084228559521666728641943705423487472437375934253355610586296997314812157908735184196522304253439348580354456591061488479597203189038653411833659626964845606230877468752007972578157338571490698150715775818320614212434010889159157144103260258474310706940496873230085901529889478933381547185787821035727097093590609124902240308410967910113838656628968282345652831384726220616628739261476469930094668633430430513067126221450609692373917313505161444995620666789871448898132123694097593431981724168900942350158724026730487390414187617730564883752926716914756785834841734268934918675454950782616621419256750980619403686842352920090893936680316177844924399430366721703313499446823775627832662734964608726760338135498430223893421696604113668807684486359461107194159765784539670626569598939276322035654542854423155357481232498799602823161392672874064800593503810471459567084433352359227809355111924109110885234025383713891751550667033391588190002202450739998080106204579715029514029940630244695541070247752147527749121611512404747861101443917232452954267432674278737761872992678826461091808055915998626022267738641908579043339205346347128389148769602361943668345565719923356981263438367467774190706051786546556560700149962976253518496968237093536226874480978013644425604268752595434997228673409856753095078945344244308576604965929713670820376596239654683478666699658340392518894600012463618340682965184140145810639059944651283698511849026551299695570958211631788142955949154991021901310506426159218518597409793657124037308965967351013514453863630113955997675248295624488018674185038394821858659429748401059597382641498456075167464513814705916697947397972693251039097456471957284727573689965515774702054238767931820775449995349054744121440299722993135313080946835093747723504129863467526706751825639737699224221376384260463721632462093129231213295332612209044711420960935518449962848059332428007962099258063783666967733717465806663995952657325939335805030125587862012948887418873523694225801887880843559319431732875997418499244682547590489536602290671527395563270981383866285287851877409233267970294682253840934749074897537845934579481447210123686746501450777822579289499896196310392525606271437690250511669823191872208377290748605508263349544388192123922728627165596561491753683230446964050818149187507869693260992720821027840779838005949071278378165157711715043503495984683472046920118880968224654267896221936202671260525271011723193574788059151045074068605019352885523441786235268350785915543925477777758114775839274189381252465766777604588157347078949645090576672481959714168475302830781447884128946924577824444145271946319957138667565393187241167879158742527281067312085573268825519534909107956402419978435788058929567618611473299360014547661894152716814562459504031362920300947783308535278755416948583940407169587369070582166603281426340482541583213711902912240765024734537740488325533488903371695822327013714704194519409278815683614957695256281117682879656269981967716570873909833225472705669446521624204978927959633094630786852421726821155304048071815565239093056589042238908454076875527945485820980750047192696737537575637325099312873302562651774467802080735055014092534575163939735661428304264562971498905491471155483064643737387824761509386421133941936476281722651001931459952660905865056594883503051548953649808517390189148981788063934529936822826000815121647538068882038920895396839036789941218955463320672156249172762154917785478511747577590902937679240769748016553721227039143893298470688429516058625294314923217564146030438547462616461637673426534169590931993535840021250423267022332346127976366392047250943349915307340269203697618075545629577033390534577130298550862398432801377469342187015778401554969319753942114165062955949140484511937888981978394987575852876479937616505936032843907381716939812264358322672364824620615089542471907330771348138556558889025788683259000072841369498978299952469545835199791203732236466979631348013593465080248043466008321809898480420368374216564978379664308697300938921084244030189499481663466996840923141042266750835065970055579896606023406835908383210574823398279594986822248764938808523817664294425836384645710712246066562351400453224786814148227872999233160596660766956360424681111721115683843196054239131805281219778494089256894735673055097197216988500192253965593583875222424127521025981436668801816521972159184341571582362439023051472237793353059456290577525224669527424353178780545107420165129545016983404466589447763996203783572223917368726204698904198731813164601327649158539704628890276726423415172025330368003202681896626551807027429157238906915777241926578252942076288305599984970388969462682070885825707625284645836426674902093333723851142965234506000960008984276103408956855750993574506921209714236873509889096009402506461167001716116312137679643078750697973462225201762980878770842501364044973284261358974130585512648363961710267152060912568551775955898134880171920863748784116066873720631327450610658330139915797886116008305533928576724922890360145592815801084414217948214551149349638113094910555982381935027260845729989345080136994200607450954880159474624376162548170157503357175701691956788804149147122198611083271396124785380769429221936246019951943202930631561403963663046060714104635577908545341701516619759496845720487455245625053425178211501943992182212064098746669272046325493717307896239421756094739031357829919359298464269173195214973018356148488512419557237122389726906229255508800431102191169603905535848829688776261002847095056595740022961484916180275087511721786292125056977001396334924561052382224148744876294077162740260475495680058504955965370497767032187307780079024509676543096856576747827933918217655957493691870161498920743831404689680813053282463944242673998167568571022245263568083909505508402854976520028059775616027138889870240134875786707325645520327010565548149920272474296765311390022311508508877931467478133739054432607446370901408562132821237244089204364109202908456545062284208209690998506489366307778861681512680791296566571070373722712504647234072766480477253639923376732524895525698355055877322285418398934869953170385237334167096808327848770345817222794695974106806380136056905190977063136017207709928777942566744664657683156271194909220676209101587858397578900343472822326874506535742005591941295236101390774647410662352090658573357469752422371901728923585945593481855831360392639994731792626154587945652365369782288098353516410826095827479023758485548811283873457410591482793740342692922727912196298318394797294692785759051038787205082531247451535056131446279966735083693793967658065893282417995115931882601774419429452008825750905384496978481892171029530593747263149773388738274752779598944890495133374553232873891507640899630839212999755537943003681805508851904203924334038876030153876357202952131870657349273789109945818214596282712597110646206633421391665787434674378115412195941583574461291848953513399514619853194923413262069648512668985375152684831201774668485152670902835408749968188582497327572720294515552374473708186005853159758850634565481332255214818909173921332464027471736841852619427971874243211142028759970670706338338625076995209886876665009500469670272158258222434062121023369099276765024173188163818765576954384208604425816393382385096151626711251404058906291046238608773708412435505122969089652123296770028994242156606967492853925539905819837786590140258199783784546026099102447751452101998702458107329734040395329812133418594101443112546446672716558221483529846563061649480969198097251159932323449273905954982859863221042675692042220896059684705234146371792337786699619347540802093841183346136112024688905376552477950682485362152861292777538103388536355003714245532194798795529474906155659669542958172548190288160269584936396940247875965575677696638574121518175689475249611766532997834893214134663933176187106392603697248156205350830896662012527028719268863298035768919051898033181768013054357009948396733784657783072585566981257355401644307618914514861096789826577628370002287836730325935584155922552048197549655724882776842000138519240270720283867913107710157526389549020969507036178969384349138383601329569727061246150727037711784800632937339269833026167558492782901638137382460547213543343254092071185895356279500751205532786401176147793897400581784524177618708149228893526134434494500107645825267589884545181764528332707556147168900547398519293690222502070447453595705825345501857957833450133180791819244248484636041610803865867856745081557284478915035042314916478724206144476186253976613182995492454380157832472549967154846977118276733397999139539432937976668535664211875525231912938512784926569071794196700012834819136935509075732758816352177232394901345241220642345837664141281919377629482032291539186056295676004698722068424079588283540119301585234722475627033435490973236535943989563218071724210136170432489770766593994686028921061841768482300043824085055541774146118098372269569117218355746679504773492753227388114696316905364353981602180988261878199059926013066091049039220570343448807210525344794073102653112549452558009533449861302785038401807159880953423669810647421888318455680810283805414059711634108160457341981635764119114509363566401439505496912345614429887580971258265358942518676297464345251461218188442646996222896455988392027974112669386016656678987278284570344445973285640469746332380346795144879309366212913266934891500338774715483432712614682774390592417337312741871697182415571210323442555295109583116094401091395310837776014072409473906625027430449987611302870936530449503262659869910557050384630836480663554519482962415682189407577002873901118755387759440226210598091382469865076331251058265145180476877746284289846416273928215555205647750050683111976437312617610172719378423471481088284690133432262093711460731334129741564384878856296151423042445785047056313103409510670932916604755509668311564178646062218301322101482888756153391347408747027704048657646742297738135249664978955279660818432969649691219560248548058065471636190899533026261015246132871713028760852925159201636369074668826635241389949253514213597388594419832848443837537291339869785693147324069507368301216571736154664958705802519569299204342430940557575658352619921327209958704995703222943338339779010726457942160332806690603151210084367929426419672304067972072720626846560663766169856075901950279765877569711491936614776963359210658361737741132710330236066786504400593092544215585663658739250480636798233295134191542111928644351611199152685656538557892155000244136272875629342156855885362078820509849125734600538609034702504176166231130669547297363366953244636357110453040156341861652213032047321977563037020835638579238153577628020533557561515261860331389679831778478182254291935899704730638168520480806291029154691951485802443048821212624435509634364494327047805735054686362036898876501013470542615534215851876986494098077022577809362039224071791732836743073749212929013120673118924226110784455262669704208570091829304865188077234168135384316638820704409687189464044349136497567023126309616199120580808894767836431431292757939320991219129574292147553771575416891828593837875611024780835298656668556831291820382531142944841696843578680110607540369588911372487028284973070676250448154435809373790757726538265953824605174103465438417390991282863500926875029423489544676073287319482327976377995552651748853668439578241799254497434112232464232035906445626161923000503197212901157382678764179097013076465955486622101840585231104801847234292285480581291637011151993755520801371779498374991972449148595008568846279377423238923496082425122610624265286398819878153750077759565674976424765194939504210554888639342731100861098542982399224754665704883042235922645139313521755248709833493070366322538042299543491125744679709108472957290494343243371191313312591109090088053052933665280572439204169882260422817588648617024577622050867558438318966057170946308252752693225092216367422292610826660698478332273625860686792108192541510281121157425582617581287308462170164806664238698511782507534486426350794800832405291924231143264291323852940028865031364145966693098293146965975454010038059108625655153876490152857155745406819584060913022398607089252887253561878910376287969098741852901547982540084792796482839616547691504121779156730772690205818455570550266230020436342385107260816434189106512359643297485744716488913192852377753787515999980696165996837811963824966167607817966566185308190961263861960175425597160095400052495362648320819895421692845050675171793578363299564667611787423240904909766258734610319182462318528757672359910374885305695002576511528362449715858669931713243534576160366361146571294659012880115434390983836371647807638429758156733277247351811704587345496138094555583292397346332429732956669506788961828400343932048072140274337471280223368792762971016115897949736788719962791464987871532920243459241622707260156359603645258403996294679053347684383942022562102609439525680906367890912971189777616425195565102153266571710270735960850780278540058304453720434543010678857654271829683562606532650460349319253273064890700357023925900368892960013823865034673975488281179421326250754969524149185070300610517627508524018113259059147353357783461066181124716925025360679560786744443268402007517103538264770408558494366161763982257850398140087273296600345743497219195898298673309890180843813367313032468785225166780426064802212659074182360722374630324334322177237002094651190218359011066791595105612386721624481068111947224046582687278144801179992866554306800033852720747774338439186306768676476464539180075286366332202502391626414668988175116958318689265809920210475852516338167665129085862382468923894961214002478378872907106783595933597417327651266051807199048550760094579039435448262456748583718948523216211491912714577401875657387137825642735440043049430071412037897536945516051111650002544352760978885027730499858612045963440497935769358660799987658389310322039114023769314632396557608852008489958612343006973153117411627968199800750913190777849247805100884995437574479692211909663479853353023362703911739533405654498331887415734878659014032747179656964505317735020248650701930094276072334557953039921990716277330741837028658622041098667049322330726159902955350681685351757322941661875678694829409619270822359002972162014644917012114915912497818870590263221765554087459955346078669899725953927910362686438799488823610136702968984406244153068984642655173711279044946839810201905912978147912335762985980639079527954590203449710718136775138832720627066316469335591369458881477402856450532622748601758360555399919678410476891858790710695747160066714850315655953732932622597060241175053016829914647690512666425112451334498334858657490112031307960307069304253427708816066737786977686053717590228966202780340486830184218604492820378105075917383393386536368605923362915712428685135850094716860027333846032663444095371715419235286449072939121373267137416599488450334753335787388912213050283390287030147255256876816036109759991646079075157597940550528678902916756275399396702722993429410365020479057334137295463856000068800111313187184045847165925960379700777382388075467062903534100086638411967360024401487567904557839959445623752617667619772831751625651026687121433871782069728698525678501652766022053250884361245168271015743115771448968516993917497462443711603933033796588336817514960603435893642855857047530120399583278530727500714192263875309891650694395862281055865459293876298889035009481021529171616522676663437497788458038514392430396385715704100300997898797129419808238761691749243969752269624792347664475162862384763457028986456312960016616540375963689646501733035069254639526018019504356676720508899053651105386817250474138594178621144710959467279786678038825483818939264715190056407477809422247165858113194749783769507152447811966485928814489363200075553197130095734228382297304836810331720966528071361440154813721698183692729480359920899642874840449079822409060417819456358756431802972513942978269894651562192922312206366569587782684910943861553579196311734995457527004764133632073942157503758057181566191161981861220522809197974819079242956736663018422371882651777968874387031350634821111367461243393859827343686714216377438997778905070176331605668252243398473196987490504847839471921768293584932083435353823712809040919549597505594388488901241828829819722463035328969536820651019361251594357273747267613688436785309714694817087965516904498025517511610021724794353569320910714114939694244394236051140800997991355637954857518598816301042154555892002071082634165085047852624271823884015674674324621329085858258678553064326723312430519051532718029885511448628188739800407771688126356822118721422220870024984784576298009521592686417905974815639609514269728769474571866914703739078192095507948807565683351728449168529575508525365394373265447917611382270608158679889516127175656457834314742808911407939421917656002360151723295297735369794180743520880881269746547615517387769628845809646637487832086976029684656738043401638949472207646930194303747032143535920136817316589077070491745134493471553576911790037278057929018957657577364806188847469392531667948263534736831622591979841420408672406139708261123248609238375258637851065055334503308963159163939230958998640878616040370250173388321352495843365859168396383997199928736971732056791198515317544195188683105544124707584392676403209871618022108200142623107354075294161271934912038716457956771451757067127758511232333328142111200040030079244924224578007194081348538772657712961886066911012668409543414828463005709814928565718124602470419946162678735423110595226822025696143660264302683585112555581319060378098735340343574435254734031687445569573641816681204933468903507625899555677785876115480989599535415815813670074816399256786962907118824257621616977258557565428390614991030901137220195808273110014908728178924711328292633913031592720588210297246773288247226079439822340329249772921875154803027297631388347578048244210350338783563166320304621877284193136659573157387156544788890106668260069882331512611216571274960335824980823017964099199405929911125386750866153766124143368794967507634745479989761972983417217581276565012404376928364716072126021148483477274774784307156490672370009163762821752442856734811936374699394151353954569171390192966814873436844265952632876561831813761873764970024228366403061165225535088971894408166157629000293433626440514428934342297027765096425341753905505998912345491422191766019343174776451285991028839157843219721987545998444148769540211905814594570185765130351706079953205618810111067820987784758664192588763784377327373692576551346127849929201409765694646109904123156290614395892312785997385201948060472414906433386491983529786897810479325973878628604199903007168209980174506515695444391142854160981155062158836624685143501649734654553838518818190490681541123521926586980900364312837533618807523985957165509816784909631997008307136470497606722827843950308859304253701068010627379551111037730738399043729001009563967174637366887347956756539304328380316531477651609898655776296694651460568857297239737093178207308057074898504213844370906028928542941051370940359233520593951322994616686307570669155094439158999144890719133109445604465910591345121692054563468698618777763928053999784333489253574871288217540714676364042111302239892495310925722935916230598999547046319845697020879858579396991406249663790463269085743780552543920267650438274687294598618697889910572745238862934570086795685961500728580106409499834469446672321678683917422146446451774338177373428306833727321610478578789747683321876462262103612181258795640030712806649972634739358626767684190522374559972168491462578885518347131684816236228941699224703304808289456016558345967160635962821288279495194387621975389208540506191765588099992555905572364240643522643076216242469320676228439208623703111233411934085774433795494162886989828507180639495052954312702821895407729734964251812191057226344416384825829607573823563462376463985828800558270812180529224868863075940677286188208335472203231124684248162280561936469418687373539269990235389054396443342702307603152365759876237580664346863699156311104837325870755187716009767535286607266629720383039180709724416636280584875379333686283833208876289622521873631247086053264102042423019819245638988433448334914382053797584992127312185332174281451696226478647370905196540117710612329664513515977866941904304990687455938652577706467720682444273083553597979511934632705886462514075657817354062477827501883274236508139367227768507489344175490701767691225529909763143790000803107610391291917147971002655037335314718710223746810286735909746561786930589627389638935752669052588868393352319448824086814315322682228156589142705241669636423763400948546068650382569962445681146022618592719528941391837372674166505838357914551211491847118000895782162936347809018163969791557319340806187815319129440770392466862307191985459279886980073940921196763971781300760327182146518091726510060866032953066985133314089124791622616698249711374156384568415941562504325912067851802928898900424299945297812370959847687190036646501885960138654785900274332510094917373930413503408175312317764356987782241630863455567197781377193503331124009383867777168741600791778783180679570421507476860542152648298807676305197025133127183597050802935806986402985153556061035814104818894098125809108334474381750839856678552863839032245841951776996837507500793133328511224582272768721324394856392191587261931392081922306044019174882276156373515963199093038147936670538979779161905950037833381113566870306875999203339408669357171730287116325399448840724134634597040821258764510188133230805275033181004632734669556826191964087484834256893512254594560908453536657268374513859565846509757110645355697543382085057062356442529574093473398992954688662246276351288017407468213609139984609779494603746984585790799462616101736118213777454992575697116435991443402050202527743072499672517797780612259029741135931561434172859204172796571414510849725385983028081904522441125713544399605432619994584223346498289254055352920269071253288888936728247744035044005033806463569906164009349175824710104074730764405212513690641528816736964038719005112823735103787624214799970927496151164832566979802675421972276017106773365052578208029370689986671400748754552313764017232635153584542626345067451490883873919366291776147282045149737059678075029463611681360499240199108370495575562972265747474457667950995227170416223537619144476477703178332547557659728678058274146586571998248483979858153695660694329861055602271871303582698007370948503539941409422023379024582255929359569597956754276469711309630809188290532257606265739581865370652463526116881034619157556349500487316887567472241790384088049866476566732024440969726527733409263042751227730984333810639817304589839614376781611061343284451520684062161566619659722543052121166613908261803085199203149969383567371803372885692688937829515571896497448822955489247026346507755307346579324233997202992820050774199937451331167138949302957466394269993636384016636266537349899068281856643959726091395873329357366452617044332993404368641346212295960940793536385613850724755879351806771777150839800213363616232236541046631282508142964753931525102338907969338886013593074634200230913082015041598649946118415698291571539587112143611416198417629493076660286178845359114930678832419758499029059318122901340148089905846939040421719862752925095258245233372081732844464680295965976809162826325225619481153622838605588969194570403708729516677755173170393694721670853449867357302378132184005075033997761625368152057427291527967718846962541329628183252936498740979828445595710068304900150099414548413819889642625283065069635701152210486235334158758414619711511601315913492228900873969269010859071911215552111615755096637998033562862974189200928377331810706890095674253367774369362633994498515269048129101033065961592346065450236902750126406163138606472576931639271146881809628674898129829368474842020579814216989279493254324649216469077463957725817803562761931880389524850535801034469222651442614060550359443853380105074128264185887837161546543884822017340383616229598165927178290224056357030638115470175477432879973042173393023175964948620749413123848884254462108758587880055353886711299746712434843131081072391160955323320311565605980585158221503571690071990981986894719584172890876132258033787874227430557945019947971115959958139133665017677457666278324968256654937179200871385641393358289806019643400219857735353351262221589143718288430888985831067483367020151621863978900983477679126892890904714300527238616563409505686237585819630381606612767123963041658432520209420799720708714711888305258712468453490625424659976242791215833583784603668973119285182313727880925280205363883181946086541178840446645921607654425427242991404091242303825531102713570570861853071786109852350509636040846319339443552108657646270661905106999455270093367081967832641234355033219338979602092483380249008809755109945200134022161933526518240784562881949984269849841348301074171868856869986819099083212015201694013531235300099217864379919537616493623044500949643513389177566043614377969551393748680974666629005043361504043968393650989875067866096001101217260667203061261227042316683120990507599266007679651834308189106336975643247108238417493163128551912754297261680884398932231393709829215267262864879269781380176485551469937131326018025751197809467055545995669585167793097625880408239518215356374122565568562328760856454066329611586159464213941192496902205160230500380908045152626675988653534371152605517282764994018795326150881327529153614734594027835435557183797162946896158961604023234185323725159160827436751905204734869297085645653531381255403812130412153615404337341424450085260303612987396962532045973145362056934547285317799161144813453428731980019638663897485789079883614896768202313615999481766000748751597322492878331715363591886517380122185197887800923710944418429407052937759816844367336552156176434412814885718850109752782103160483050622809978395277600031159313542481894023883593824583322158556883661372481777773285383260414250614234546970763015811662013610411901648672935598088801759982496911118878204196813455869400959684655523432071666985289394801883070732024272966689900855264540896645017160287870027388230280811602327321147650825630461760042162392552144381107240873198982066210458787519579800343260992880932612489743393761990229392813994825009777714481389213616983401680138348399345709583647130736950201375244211073383834101750699528124682787890566284927005046728462795078888223120749492974207639446870321022834403762613285286619982734216983190416725684826515459951366947041920852386441346698857527067143160652497859879075658281591631239117994826457419940828579531849694740662625302748496220602026174392632019010565864098037536455716330957214259656564440079633565146201645463734335327322475461821039961891683906101310389428878678865092239568865868334030505871214204749258366633403038915097051045796049801962741946760682693873846096868817692399359699642915475725613080812101904969623742236596805412598632219382992277430475823859428176491858536744446017726070417314430322255817550916427667915189744058152012439820598311434013380024364405185315560607439944927931119371943449393378791907762751494404670918045547523704333654483826789760451335472324746965515847866919825684621898073529489340570138353052064392871309078952807190347500039214140527274394676518574024894549011814492685394609304533126859662204879724065875279235614498844117095050012241796552931784089431840057669751531319573193880372446744208974693125167649269899498924690500869956212726588753339495147583777271225518664842293351666623793678733921325280139934767540685853641923495771988282064192265551803337917806270042251022500807195122373295718452627684622860057283926864901656921304990133905079431816091905731009822291594181169709657961582540864160604703313572520878697828673001640875104670481717725429752131512584989702027781616065928095592387714174804903846193361447316983313241239214103788274953524490171477583463426386035863907328973233306112730520828076252571666532092724980544043527999897006179096926538840556658917677775232785098522719972509306141924269471243229834763227962410178199977486414997520885204437039940326920191433476202981541376881701910551596225577522212334600473424800075520239528309595429540202588091484597588856701408481553295717746634493284045887263048054929632881669925594841132864012957907168214697260952693797628586341624673912937642974258324868893292001058000681877272225041194023288260986854588443904959004117380428967241526290310779603625131580823826590197091002613954031334767161305847409416158371919264012057387212656726126252292846183953153732543803203482090538909011479404692614301903711573066321077277998591180457890117017504969162239258524556176391375899021543372543034733561619821987048748224112041340793324418317363629978987594205585925443101821986864192337304014859164768544519371598864324240900283540746603641417833106337753122484305595796586485938108941428290932384597504634264009571255263399400137731583349957257169622650486392907803892881458590386099003356664446387909868680195479222525672209973493481244480292715812278073608243689943908854386379623140176702974107325741227105035110483437029173586311001794535283968099582200720652215352620992755543595617737085553222459821823280033305359736450756293164057083840739766367700110643253518924375918136669791568769229096974656354183016972417193920760132054495913430027182014083888857811350219491429854594589695020266444976826077258546162757335692771520062907131930724493299878250765748047762565365109019692401568074891916255367141436558116334982577105074253900552638244208965663739631234343093508436895445662464364672784957766053775097526473288736795307390739689157549797521081640923575685973543328323906600526474835062816967703193000632308587618763712597964508937040103305926592602348932553253441990363210597260586965933587413904045387704502714297257738382406973794901912416136171244064521782052185211974044932675342866128460896605181614425720688434410170537311413368977972158129909552467678030622285753695628290501052001131860457335574848349612930135843954109784233329623946820897791112803663872272893858456873868754172964544404286409450880449803737942328902300374859905467552616021414641531937738602231769014742190070035781153383023465721383243518495523035340550643611511725346473144419240910163809218429095244021167169623857533916579855212770929761563474087487992827279834472393441876228820809273434056294976826504919159729975333230974176571599409467617085445959872372828741240966227714864927961295166471508132642561507878155002577455250295702875800973651138217418401606353438016068265391112013571441635036192187208767820040503026599073662956153412867224723355146033988125518475833692021035932460277668612825065395563701411643702451844911213546368679947558969191504698970387932296558501876147584474949068936717724634674520301642635492612525389557733582741484574629509158921909331272280154697176156756981077905709861174901516868556325318441266171841135402712506692702945272031496058929162801049398439786877741677413885252192183890022392509754204445762868676513147425975176251745181786566678474334477433317339066433069691664741042787792842393255972054725270551078004370180303804913522815782678375669914051075632132658704599744298884707757236217346009889187673734318552851071632315444386911291767389629821090947729166450906432881057581195050267513229094795688669076670870574334347826976886229217532861409668740279478610394788374148093927580277809989342063978777013231082445621622038204345057888526593074050814450592172630045794640852857045458274504121834042708033334746306061162478259158317764087165049383483556871226063671394359849389290711193848757338633714450924080687816109813089887591141643443184214752843585076699413236274170433655473437871186354487994047962941777803966280010435603064747719004470940239418098274661335415800751580352644398269390893480114717023467975597356827834857772858123084452951714296626246905286719309332051662712535767589390179653947040787635604291756337555142877849236807794067834036815874521103498957544080465053677808312470147087458424678773901518673235997098214561249372009004651822157770369884896496779239496900396983343773189617324445439015742860638961522452856951969330508126714550750725767941612856942720034192166681145703993623699653293544749254354053250020372182951148721901211877257506861612974745434592953728645803281382050137960247712433960669611975617558719272323790851436087921038485315267316815474638563992232617100025410292631017937938197012915537469687882177097249883315497816687544497042840902112940401444703412784678911874630671863198229449354598968959990043778697823946229964680525112360500073042084231703722568158475745396414595310593284236069443430367829836456502371045164765615256019412018727042740235319437479750758705676617533798124666679156062274701467695869925420803401973143676073583586097748614272689261434539784462334929504616649148416263626764453440780990061707590173403633226092150464071565499671502757464771341099339049342997389081600149905154067951250942547899776493617427522211677933894958154277262987303730901106675534321147909701041913434588245144238945939697859669785579632143312797549918088992265515264339746064136597814303615709409512071688456660129104210091212547141904198265656137837200323624565756461364420842225083877771128122814834820545798534228235660444545541628375578115271869703248113245580070223107048038405416326524697878875049754198899289138140784974564291367054892424977998775936204928651534760308139145405973725848980834306387124164996710353209583867587935766483723934727690571589784528972487724189126787359042697295521864626317236311396864291493847818995732017402675328710562083995601022392009666594185439207578044734830337036973532695633953161474829296627839000492077785344552066526675004804142339636708045602732483589742540632554392980219636871557957519195659567739729053888549101328522847839188039627537345454107181595750783622189530694255036582757595134219751553432357945109397934949517545432878105343822741623372790256489812528476362571516801037070262997917310681824177547405898719952931490323487058983447237006271080601344815162733490609040937470883569111480646730412740116358401341800810213934673329589568717449997279626407721979522185095146893506355637013157042837750744535904383965268735892761395770428240772185758598285420052612641862158187496241794541392164272941637323025955882295893298635237658536782409318846738054721581569194281713784889779138617227269866158677142497308402912960348929116795185787829270781959098208585515847303128542576881256634902467565767597709523703408242489665335936495500519588515809053084123607874634353968476681570641925219458506910576346606711232004956261357197271225988457889835212973558116344545773417416704751270201154330624082647349759392300451147353127432476345081737190596182162137179397166344202988658931385481370991445112246762221517164319858844017304124464480921883178331523988089365389224081520163569557000291374233203372408613387221788535955657909017707779657179642347422356510675295171437932129406216118223114703684694334261310014776032766222559649137187080883895969749420132457963735134389032945914828777981660992283981422984914498269156872848861720475556131284037976824738455589283795471618364593679719046957758533315164753426581418684865798118564172919857220151123189986155181903616791194871782495150841636717634614557894073548043852079773076898148943293784469842937353793575882250262485160871487456707517359598125884905639010049539138088573101620378951675317548731520860667161822240652246256364842202053186327663476923562295817294693015755275893043524813199356937049605311954689599940254101402495149954487771142307488062983176942552628400921942693995861945239864386404193014335282285884314045599963425339506701911755878732084546706568008262785524511558789199695416368189946687370849395694919024109696476368324940925888920281675052014218351561721715637436366911942677194710324008237274459868753524433212168923923509374971731254266350943910811923168330926901427891016159517596818258131907823700510839955207244620044380626892713053937463274481983208032361008232182676909263536196947124216130928490672581909919259144044868518654485202662484383790659237927214519365332012930837500959181833808303561349482537858667649565305554481379019032450232581221341105999756246444823813676440775660138940200241380206120583190761631931191279127267121431250488940077005671491673196507124966294522435757578580314489671924891478074758835540946560787559293181634793482394730072164814687638051552584308664605176844914488307390159765253010421411308304062821765628877126927562528899076665668057875726863703480309852776914387340479260680117949952551941745241390022700514425867656861948712786958720052588685476195604864861027664639989551573895358503681378930111642665572808439412921678787143987296921677873127151360917451835882488301903457923578308346895891822460341468715953883576723578576112721770359227070396698303425535057880361872180963865436273468322071788323293522570713877990992384074334649787157361498945446791141342035483423789878633442579233481873979159759585885323941432069879462793502229338678884481945945957634687144687918440187006134354910617039012111304551858029249292586020036666947089395184053738654347711974407796936806568009531197149465702529102398387608966745386815466986402547242328235789247988090810252807621083361719888520790320659815924759818481367803397018235669650885646301706062672224885779189263626221299144365483710498547321026004807787045360348829295043802631091790499627292063192994019825150488938617849640659972761529027959401030480624140591296280059176063919248550372462565199461612101787548753605562563700291904797058438694289735158394210768571693060022901211196686137924179829064922505454785404594109788226951365035580960265741543596506300669616308195682044865378609401392665478125851848675613888093908156763592305139123077951053755844495725338653422975296271072034869174258357074631291213572909879694026885499966076066727649008460080287806620281446071152646290600709531273354678998448771371071998709759311170781508439347872344368071470125093302526813372893735873118932658657137608537051006538907670522931135079021176501217038366523340830040491506744725714446478988728086291211291972535354905180307400838684133491847426783098967753880588042838802303773939501107773271202392333005878523482687249503400105170943098761752462125878867877136258280924691755204408023300919068359515665828810974889064256875429457766506131575352116484170012439518432392634042238950884053775016253953267850108151975941995351250157369703632542427435093713481457706802764617257473897740751203353851576511409696120690691150851733412140183615040731824271061004875239595947684171885594227329461312882937312090474161581385179797819076319955849329101694352137417318089845924102221466720079113135560655487002075020664912392111455577041914503540874678284113764747377436139739762247489129705681283741426305692957343104500188845897635493078709743506543220860972909456056302102492646664678258345758367163507934165322927132472708188896507333494712913885177587804350464472950283662432607311654301792222882014144386604190413687386572667221906575008458335439432375202891676573019447220873409389726276780011226102749490717946481818054698919695048563436835949939445577027376880722016498901925486526127132377079512420424784149411327131874258836490836133309238464470679121408011488532488669646811686001111584865937437564303996055129606319728711340792069077181398261474881129189558892565305876864824274881556212588411069098179033424155524073939688480074931268268066886299130399391280543531155747928751664169015012604693015114756292018458646876491280341210427171023731788145717154783366346563264255024516753970028920908407633273290718268795933932823026309200115205311144570420340047114429896929278512526396028914221926608344747119794103298080476677810119529732356618074212283919403066553082945415321783757521129936688020422319751911286467085373460190304614460902488685560471479428733519326091150734937128413228511566190350996879972056876372984322909320727964251981663918338347165455731349317462248708014946103721423224072053540405149017840143768760802152312143334623923700657213294900013191062961979731671776310068382610605930933329841714257374709811072998058141222827772407194682796412377512835891808828656954882012516731063152077627893746353268505577423643630381840654971189482258335130173756979571595726377676329611429108452213674306247162245773208207559852636921739299626744046567702883795573537370506100968669589166924613235369597311769184709969509282546699350158428366366442655242760148806746430695934059290002789304614847399805322283104283791989220243714767206484016470732682376278367098545941741226147800212778326907764297819467806592868427850375931132454411587846840745181808370989188992899283934277850896208857383339246026606044549172427130425176063316135764000978864762306872892326272622929304709081034785306799379422343911603470588067023479541929134278218976414875219279001802435161316730729959270485126062294928406851487763789124114550538882343338835064137869380467130625749318644986287513111067371478287256380707571700422845640487848630161731976380515644945878463893625661748202921859955826828928646762386940977079842453422046175338710009804221159361118032763526120613294913555872124528758582975117147390523113466082761407710709300382054499043671443713578654221322427551650858668422871407290618756947727928566384959963728104046313853541415863610405505784993762096495022968994850966254443649322622376518507872013198527582214480299393896987788481276746065555830747276690703978992097264807820512852569713446897726071331288513770125607797969661451912666074837245948572395715168741361222163282536504414161156599180207849693026091133501309489264825301469138684365247350120519958512435698879174853957573772627557368660437956329730758700325516555414821014041160622553648757726500892934102697338118127419399308055206353526400749192738438466789893167719945288850150768792787389570988129619880808221445461416074079988871032514139015461691479954237985291034857769608937063008823013302319642031275490793422474869203476598700527167125195092926224378566250916642201472440380140310180023958279630605954103224197777591174999849133901631897293928189677067601582269482573378413345823536953163530199039552953833522832811142490316037178937287343847613082343404659168442853324836123883162637770418953120044420974901262304190977725490398534471308282890361904371217394180136809700492969465096022262228302605843010649236956778165647744535572316799052009740171045841528034160959241280491432616405995124081364189429987365323555274439336994481710143805388122425170665303977789114578502866087679494379043046333774209281577660645097640020032901049211439059624942666050203892723929197147264011852044296885837828215486997813078999120423444986852894623159770028430941115266852607754227344976640964441074749800643310062662010029664837322558236734024620171152581884429184468977906759162429081558310998552304839087345266658175997634792888484109188197208821856373907496604012812331184594718149067657953518319061305122113174487474938452429637551676952599082079187162998961516058483007394315337916569355922747122677620607599959521148922666597282446089553237874837821215959349469110946925439940843957983890834678500198724277377391714085632540809188845397574600763746616996356449135047624198125590445713633541341997193987593476323153692171553878174554887246182681103441387992155096463286937508826793560373949545170344124107407428378820553951822084060350190675372421420113204722876945679377466931755647365107847021082973650869831003725853447101786687455674092942260926746325233613374339575839468268210842713319741551548858709806289287898737531658454740407354082012353761231952429579186458956137709831877302385548220383467981877197645472160312739728302478631542374915915078039620676648189191149877132036100585986494899117832315643071851236616350536896444531038523858569018367932972288666809454144053379775907463856470935338686447626270222707667339088301611821575450620059768068701131826996229235159345498832537558932953112327592674464844330095525280624642382237970823707465109731335502451480589392485646134017681293359910013587974997521754757827224335796266137699245048191254453857967787649218714328949527442523667744677757131413019011774818894797299170328547001314202337523662046352923496978261269693249121948215551367632320954723734033235467084675078112703774045219732762919366416340640951527308722861637329492615097911716117217539249170378260935691686772612674066728826896296438933914276552346418976111009752916371067100457956421757495547268408730642212791900212236841166705059352370802036042933559048798103881091037603095402201857725292484944959422108657460935610368579131330482437408287374846409074248075215820438415822222949918932953030107758104309292879383667371954508473578331924026357053117952201487678809122179298316732778903197095899408028026467347416073378064451902170585115389542488572852703013236523299373873490518926506649846925244859956703609037691458652178915211046749257972854328187322842910068995499827067703137623095259956862735422427861433600700210210326992113222500513461470502865747702773454865317399840788501228678100179613737999055575515663138657582841845138903445582920406474884559164645693301972008932708265697753453693830224885598682133231793080645201627209012014776102532193031652636268988246304982497168695436730030886330865249003058642235499666927299114555968828668450097027631538702130528151176910973167204796090566637369271188658708624068231605277630279328888136198859547994498505405129402671160613228894508799010652075775862489355694628416053183290254518216004483286093863305938495635243738705466873873419984824727467113771142909852875468313116094065469817995334958766186581854715036918863415810713782290497299913320512934623793689865880481067828870705984341908976352219061350788887864577905803896360998453460715459759394540882457284739170468747276118021453383063404831363235559493299311458920543896307250109721171347903470370259802440162103108699720852690632336946293642174015826574745305553336887115089980157541369873312651991074262760901510528351850189457039855111402264911620850158176205049888406341966038807428159264282158188457946471448213430610678511742160134848629329894279019395344712021232031990613792221106645606278439655821311473929908251467056084047669015516431303986731532866198143914660639765162176371193112784146233915219881064321668177678511047310707758726674566290085269470209162652962524239936618826275002938534518520620148367475206811327516570424951511952547567547800268562928100872848501004382996704220674950148079961292784083250408711208312274776052587779197668934879689724872427288885993224639836255700707884102368091645649305598509620303429451566147129282820315198131787686732889081848247127338748583436839959753599575894758952104588915064771831030813448274601005896873252505526198629559263523977401762415402067737416051730769161164038081676018279889981916594213210613682283468452525463129651869885665614267740253527753589755599721432625905455397404965530983964322525299859014612565529126033044332648047742104108453568327578498509608620885166195706545285001202179048069240916540634002669055936885082278334789556366144804202228361942392880811727544281940422431390756658731983849297039347605867650944559350232501897346350210199314305164600374264882315152898418114493798418090385404274198206330703927001129084230234617110769682330241074902097729286561168253347652970285833020138529372435786627919707122957154469230656568041334090856422329647771941499619951046229408567777683528015193814761417196445545702310494984856493414292410556965116751554861174772931619474566372678087514692833544216999929443981307568524669592072918079568990561034696285284973929039843945614950638154918938894578801565984395138713276063314691961100082405826974880138613083087364755917112464099507689392869626834107484160235979686023039002109660769849396779439143329559863092418828663303027843597190020107201941128758108532402803291160643054573968752382667256962808772570804252984108805891614398759022590834513625161904689910503279743944536484251237317882978406559512182462683766222616703081157813290756714329521545128690774012189413234468108814413895253813748897736222078589885012967160936190635637083526146043258061649707246645324348146860159302734117956430024048574151517593206787426696368591735255024336903216951880090551726804459277657716514909609378015923392813790443480293454232708709043154787106535999285139487208807678944978917969349698215344743747224496458920321130346919555591686454271027455263889374187307166774291385149290130874210595977561998009961774874191324597344953013097985871631289267151739551893454861534789462865739022921254200120209205681505153443181044008093750885421470782134754035125681528314086855932464050430418928010570230683412539386355068614724954723515598870620465758652722062594341208259898370431884593265474454948937827359184012475141798630743839524685073805048852650047809773058730472748239044957788078093276030539006846245316456278913553420237765812557512782521397160540004597053703319888374628007282966148044782089127814724778950180962804572948440950972793729469048438939322524582996073668328763514915579990228962676253182212890338060867491627561888584190986252669792121633587902884289716767465921717282478458983883660729752748897181278245915051903011932566617352746509804331574339547101294092127743582649688286773902048341088711666015677016977548527180610280458367257723717180877586503400147449691428293405045931997845563079754562362138016709596942519463231336755908156229613246758281153125040675624871256123120325563573309648369950204944254092215668930925450414080681469001449076580799726121132902062317781457019123918095494655827774667653993603696679275901269036711005430450345810848240074854908985821422490123225303637177509063842443130825736223478890610154499418520373443780526047757854425765416786292987232150405077366293918073380352382344183278222503136573900722752349535949967180548372133687416453580579187786002947153818999619973747090947912511080055495704402712626810271456631768259615910440919389227087802564436974156460454344678324143239594992699141844774101747517686018956615111785401911105708379350916866858978231580043003109857424276053448150427065670996514659233496917456874153508543665822120448815609656113746683250173230149034239317874229636448228760246898624697624201634177168337190292442780712195415291001168882736303260925640080758365221702790161751972703538662477458177488277817650031931899604334009890153451240456002195491025192892474308124970787763271135050831113101055949007807192754369970467435644560918867087393476038718654645472532532249378881624265897395150959538723715004739268953068975271519443790586991733226391876894401356607769626586522883553880369990405600301001157502129100464141061695570798213775654578753331468411164139833884345837902897983413551475965485235746411035426510644799595328957613793281138448615034607769965077631637329269263514610544701234537896571287096286700206576591646794891976307724901379625349617097866903100185300223993409888987079705422688693370183110609183587509974906945371474589701364821799601871258801419532910344312717118180662414794957159238409674861070010536236240228070252617694995327548332868983689850573046191425732000333363833149923625690419625594700507777115473458644849924601934931753266421592354540385450562239476138103407387127887214391925605243270098660634792263852835151870523193264660258360754008565172627785216652875810731654710934040043805126598433088853042538528525792254998381497663930729274099734845385901275113285267375849861369909802781912689711880314279498091493527453239491215947814790134565832692337579448099094069563860541266414596502371928759466430448700727181837568519525323671526835004538727447691429467928572716811212003420614785638835449466975916887806890395644950380565700743030785654266746986721366416039019876650525717669486109637985283975725293989404384399039442307715489873840317413717414188264067003492035429949074880300879458420734094532027879697542802436989844613673877379811701219870726372718245751485370166252875666287142774379043844894972300236937446663536128651035567377131621518916233528500058169487462474690575763200288924968341373963996183152433665275638708638668814011171374816194207464671652414490179230309316702810735514826656060706786857631925732876936126613747543549248592793511685009256227567520065797503974195892038028811382468809091563038618374719870807175321344644122508352721037435771099847494540698685224252431174237262991598357673185093401851489097968228619308139365952872730020403916774661142149806157710651359137218492698178730478598221723739710801275982602677116706941624770238218690212206417632655679180295735168020723436934545368536084921859631850653273700164468923983618076068814608852793312048058777078010928928378160137128863522253785055196081736598893096310329913857893859529359207368351075770862800525549120064445278748143686166973324741653185412497552914202993428707586429506688028360991462950320512250989181244353790973113268038604226376064184866551945820331767884465318026788035392868469181726285235150414841141840242310467173096829889467339476820988149088828434718598918134602839429159976241035039353256811749558706292432921488971332391594068910594672194987984596034095542024500257518922555281933194017802657479836725527552142606607071734378660732832308230209212026777606484826256679349271036480732905402045908041990364930933665537963085901586491826060074709395703065621751919239377821185977633133386694898959588186915703431923844250185800840654119750821915774388461173243948187892314064130644203328428136827443373403652637702960005645839475830716045197560118617643792962954051398062843688636133977798994410731038242361495764893938358681166884020293983747741027092239769232137819861011702109591532617728206424587708776254343162253732081407979845389494137448218297708956845568217974636884394908828130669803867033103941651673399220087840289728930129722375454871368743140334687869122431273360864037626981876708774712940242416751161256284736458420084752275013851818334939231448413190332669391455225265653716375762403549865928637905033552289517043231130388650053375994047286800512985909804578573919420402750490686256985306292795890694454338847706626686575370622125010406137249837952382130811466190956506606872943711757782510277356286895099776132626132025588019800526759692601608910866649225857281829197845807167738668955016345745259058604026439671076710993537903324158689952003360325928430824075096412467038795661397988725856408691518805412543202889064638806070072889922965122700194820224206775968334298675990481341871026890852754948454808086789420035056977406878787946883054781971548944973061300375921594718921129169906795175915935277312257537667856073998397366471236787829685998165447158456713066375753266842088274727094932442203881368316943384798511966987934284073212324410349152547959777669066538720008431744835271194445223425762742887075449078645820615487009459200369074153886255417023243102909991408225774353839690919133032492737723406988449507904618378253929894916131864832579529332906094229942245121023255056950210576214345275418626876716893256522543521201589709040574714832322156859226205036181961317391373137255336705259942651897228507727651674935830826622323983599585347545026020077966493341933845214362782106554565802830663138647987017616203880345174826137740612995878794274326192452358948887115986826874886305272355241195555482623677193268305608089477070932237415337368871499620111300261188172759187172676111761712361137872302411059155155251129639067291923381299538863137343150304971956592117931332682286494267841316203755759036185795458586042785484713134218764430025471401808441668311063843589362155323776129227231387195070390802157512031546959439020522639800638910906650500405807570911210989941853371691745413911688629282514934231787430954753035486712251354627871216428916534012362941014341392016029800288385535053123706895422926941004566741127836847921395285195139368558934962527500149896830529177406463463115188801072019462781620324115341632223714536739691446028767008896081703187759282176487016864925106144958281712165083872308628352120996169126890750959400145702349804376531571061256870156638336557372316543986039175907350089459130897314064201094519830448632621821395805354513861104701849196919398632665801726168746139640940630326193487832133895247537320037556488946368574149192144596172426384119237671275347734483544786671098607694394845418463479989679574298632416591780229967530450733041085240308452578251524718139300532200512544416534680095521479275838087866216386199346120848690147978232078110942548294553059378854997833497269501869993204024463581839587417961731355428720070647290718620784382092583295694452614104993738677952124043312656366104657732142997951247390174666325550690612648363410480080356668678642715181904383691174641445994520484712114041040087373798112929118754541263669504795238777650167745784131808714658101444401341054341526575401923657603895110193251741191321496308157538140016351698508795865923574652086706666176956469814913815402396406623955438472379913436881648773213026038614473398978058989330090561448201686595364296592065223629233326337286254232110337677203274637214787832918464322599566565257664662725204913118938642670361842755247162779263955847089094866786280412136367033160529037767545065203392107855069423745431583813968691647944428947830854747810317102520476992094329100066391288285463199549064653537784116906525387804318352212043928867419005091571346973084553897013561240472623560699413789334535689715184079138742924188428531860237391921046754750231697338029551388209289548744370838379205326068461009666169500946077845752974380424889671144139280498201296672621737277615161770755297090349785494667469235440139950976909984498177732269272142212720189568777553123550173257184541184480427873281550872326235122229498573356354342766429794503248911583472084536331188667070646807726266613603096498237096803070655808255705451394279039888812714251660135613796350552996980058792192320864819355921799967375876963112721346433522163740625335679478109228710704653373881489713629790087247091800798361135715721200723523718386374773738522998970106231298417386312579793839741987697181713281420361893370799657886117860516641744437382885066148582946895412639981742236087684905728913186322193282089205336374409195232182476536985534548776281533091969897164964495070660499604023232418878738334324392741639467490036785541123989623325399256060841866498669212044979664898987812153890582913765008186862239842938097163039347639333125408677464504141570984581754621484628415700694932348151338360388522664757669459781261768152653042616904290450927625955181733380270508422494271255945957412824078843615473200143552257350120649312575590009918955466212197808448765031268285664817997860486765799211704095756319122410723023116054060493744145547210881642716481684325409328542413338115160235382391522905206640942147697546325105632504164254481968610345818308896090628000566450436942490107061857674753306985845882262573934568414593241704808674469785580075952293214330484414919029438358725707020041154225814145104911359972804870729652428491074148768404840274653924958628732653197695255598531204158973025035553741502822363692984456723173273403773274197299153185183187924342064936886631116515929646633557648581902775982110094406384141222842132197275199259847020190261013228911374476331999311483397298075130388057564178070710093796687730257126786261561627558747937913002135537195367812503831998573737808314565573544901879147424937248521902446955784678808466658650657779833979560597614908632225516406092477039486614130897446371909949094660336687830661556546675765459618089028404257068850141686225195347459545155158651510373272823449546017912887400104864604464811107383884801105103816624674650158305591739882707745870579199998695527220257710116241583666672772529194844284798077010855973976576837154264496780272604637409556684401685115523940008932303285145600006375579057638813414035534931741366550281382506933205811001531902752136929445965766420779510436948604183459453917341368357560912934783234995440110849669203654141251052726303459391855997805477946024734169891839531800727908229380634773405608550703721147665695097727783638611003315512183586122006847307737565580671887876592699026491450429184743988580002256052988985822393636849749674795355149323088926571010848981097520821739724137339248625294492134143574685439972819178438491699331082510063666406764838464890012465562796010211845636737406435578984620424155649205324428744158520203185913743961833697049018597422669683869752426746401437462625098427465593763497961946755935262451067227298850294131729050662583127860334889860844177476153857324803405120589569155518522356928726482225847954468136664925589609968418089716205956303489751406331978575174453239926124448809943855316367807331519571050625706654197361091212036946020689078341473326219647391959557586289818659495604344425651670154954432204356122525669081300088649534037635733398232195353474348074765365827499013222951733757549097353586711352985877862610771086897740380238191232568920956962323500571129590294725494269134876831803733493311892385818830838234163272264776486910968908325068993956706601152777355535246357758463374774548714783257508305261965596567219045724127276289918913686630296126078846184997935035255456158786165199677214284474330407682992173503921684003181661169296355530426031910056417449687476117327286446940586221283101235697468576738523570185964672726674930909085802523139317070913571174266256996937562718816155361765877752519221797707975093805412613288151454069601318136998286091416883358540615630864837736394069509372052918533516639352152163493730478165866051467527708862210855407548052299068542757200449334285550625085029374029569249434418673313350794573923138077452104864040165499118213961867263717556183044969248730190202312470106747342824243218272107122715003636603116581141093914983441377503906530599386203332845989985947655330477839135514873339679901423637544706371547030385451820622003541368732029742749843126553056158573781592424307648830424098854370330750476612581345935346718118506852060124097419831928946959106405322518214359580022194277053856446029661280768928292225046446979662780922318758274533322040300173723172580069491864083886789131405693920950980807987603303956903028375365327345902128873253058455136780965166324238441709133939883722258098194664611599257522698518202862619308920075028481704377614078565557380588203547216273073979392106698793705887987453767064581508837380817795763652970015245431267366968403051350989213006034442806220208951898805197151817162060227047836242936613618084027799512786935232198036635600543441085743708881892816790334415720501389667422673839747328454813620061041310326757114766282619916259421901236843860947203350670899169141236724205428755476535391663875224640562867296806294443162637534440671769941778371972328077569649893358183054339035217173736000129142704801707837124990845754246851688136686803148941423558921348770710026419504635737807703973795977171124460194582418279802874942820910090970909117614143109360700683472176670568427674391874456002135836693881220269949068954895017957640861502044468461473592488413531282871033140382424345693317859401798158098573873161662925369890750009891021782811228955613747021237923614487280171104394108478289014452879251565718438315102153733762582372300482333572676862241601175884912853987680595630754654022418525554357581158234328399871613663365067999442556873236278822504856560416806256312054108533019861238102789208404434088669789082143345761648661703458195967608042028928751975278078044370641075172300208342434281075183281782171028448386741392564050747457894101621643528663640828402532338932399207026629212216460368416516847287982614111618510082552982197983513143420301008555865898167318397056566439248297596916714889649871220975490479839552254446105490928421937170710431307840704318771701496628800103971347141776329728044565706218952891684124192142938334017376242965701921786661370363603345849064476056872079558160545949495161016316734097761494541547269385712240999418178565724771505340399626071125045783599983346172856915899033659239489843928782070462816667407550695756340930303798879953374738489721931523714441242908843615383798701207690123055727132470270928587682495809676959133291923718113203077314828087250251980136259980275065133310218748080210081303997555170758237957087636794878103519548822913103903101058563978820432226204174915097195404536247315650148227631182903511042870979514129086067702844689615024051701522835619481927439422194270302260026620876040239918309875393396386408640009157520210731395369582447424514592348616627988785389677554321706814637049307078472485499337803634498299475885540470639040033416563378640470078556945183841400938043219673180741759834267698823417075519838081736292860151527695515668864290461485562742507301508112936298884407225304086413916330285131362838619559352448327370674001106703456088347370363461399668351479744912095923629229336417709234670857996628460475723230528265709517600483969234525905109225599462607680871916076940191738178863694630398199499977595090170061148701941406323570073433284534429113155342648540254703189094877331402605705456749526978213757153693671031362034344042176825698056251921944980923180714134135027945357839038452367846655571446954033347994965132616151963969648425726864554646313198568548665186323988564166089867090788317898935104039449519826945819084832401193327969001274821807198093223108289127253199976010559363946660752461354607798752049984527040629644055347509094003812839710123172849481121801170108952798443137864451281680467222458140238094355205770650383846109421735838242710875108580096108667675009458581914111881571717578872047162158088442981762312597594983058278776351676647536656034722908476982459636804697269245601667291932790375867821676979634357525317952241357462933885933327858457832835337914704348549829382176393609103685438151704592045820231910661618045633021887260652307477058416234866026290944042265383436363524207768103773216755555606003458553743568730495098193766789276449601989752816774374771380246446089048138044393617940651326514113249430330089739641030425939786043881560562187332733670486677334541401905361151963211675503412222304046503594054518745225777114353385928830623305929530515884442644599950974793513654410799567075612800215564651261064923354611359372017422894437944626368309297371574890585571063780092985429862643895285073765256626526398447072726468010617712600543074897649219866360161150899349028232165386529395047818909755028395764284101929059379918811077383693335212524989980612418079772697522877601437895124627626127325126039899743464596881609770205175631689756159334278898252107738608223452784987042305001604205264567940571262976394788205519350253818050092411174945031569143138968454420730301996951170217350484005437072093361764169057691251720277631619079000076505387204576361932065100071034497306871074084018568806723930552260050708952944243008991097650665519995679846724888260681556970084304012840850669837403027959934509862310331021964362918742947226609455781402465868102381184628504808469710211368507457307435227798888807523970096054304787508285716851247381827050400477626676758995708760193666333023734538636341480755555562481970932848899375675843815053792052186151822964437105942920463435121224226376911067668165956904277509966401812378460858065520307019107914813066120914995263728050554926814250910700908201236278870562452371888885290342198430928540795969740801729923913205520556916373616183985810569349714150138802730519752612678607408056864335915145961480216587246868819801354213626801041179131855022894286892832769378366507053285775889809334927702217416349397074644530641435466353421174547403915684923286675775864861202111151057449079271226890617932285110307197994650186074769026164109646461128319636668065755337224019542640780299072911687852324129594975070592254808068367020632042372248974421748706259784987008652205514379164981399154310915062952962596653674936281783681962863277419306999490351679205826464734118856634666068409498417340836694549513280336932091828289936482919676001477715058501279542934694794599928984285535771577268481298897143867992368682236938156907363405000095875703696533252768352935430964454107144871388130401252050457178874352182200716506571675572929162825962753113914466920343124022852527389235047989108460831307417388876921187350106782786230263255646424211966044485802523276228743062365749610250343638886272936100589083294127567867335285178033383658113572277870681468073882806044407675512204192112942781843996311099954407960395981405518320919859947968646107911952098343641407192811034047437507537467981348566029318363556174252786557031818301238592349327862749135970220727287221958210192468179822978478401955860240649629299052659616016026036911882488300087516579428884783055529356682766962522636996310895527193357736791377072401772407930911890070042137605026923188590829103157198099952003591148291574492593835640596481028830842667015840265032203039407356914435987484093262338646370093914089989138727626806411785117152709646866110791476737813937284816059833964077031203197297889175380792795939733478972057482822100753088212180919188258130906307252970952380105577848181787406475907562995494800894995173446874546684142272692598772814289874205259811474614025563160483519794168615025682971037851659349980911520902740613158976202867016233740752321316205947283127162380691600191778294469121617584490421297512740050719938524055543507344947397869886652812867901374914985351938528098239712725844359013850958520927604818483803276831890713273394463260219285291583127181442122769448251973678318477783587724864291002801280751620618449886151222492512366953995501239108035254089499821579562708757763962342507460191047262188665067539522221766884952178800224087586198371321526901671291442195184842397613838731050931805882269469613820976193882164494424001014141807615141978102401878740134462601412965130888275690199624141129219765202154116628152600714254937862521641555192766204216258811867674561614701229641769808603602547849284879943989358186845401573315468898708644777566848848379942293349673971980026026420144446534248532711035727484546474625176341349288455301632163886460992653517886002658628252826214166397604715887996423994363324799588681738646871097250593238464814377450646280867935126197163407563264980847336858451709803250957999320176260990739432691625436040123289159832264153408175319435465781432936762842682090984350472321673437948347109533885081153682017971424191015461618157230828286859210992769062203009786041992668412313264036207832067313705854021926153144116045156403110732259366016190695993219086742574539686899428704995388115059130972032036605420687897998306680578471706906104231993572710768978827288754324237952756452688043871785534142999386964963578124555728335406431513694991243328018282545873282507674835033193533699068831794656363978604397695862947157914728495709660620296662785119828759216351402329753276289832947255926109092763326831093231926863517215992074438384656556283859096375554893207906000398235392593791685423844598618954714857526338041471754147563112535326458537340622854443354638151021275151086509359100757321121521356569191316806559397995916932599832843350007530596406370577677256775319012388013079656237347723600223240219892699113596155456500954303332887296082847885565084904785188837931590005184103081040290807639673865322592388426141308711541762230839671360162990242849048084090391751958783493702681394349871846535200291845904790111493501655965187409327930285547399975865567854640578396128228015495448643399402231746712999352274462959080540699763082964551259216823085944952397911369839139934213575374851362778107289383580341566519700783269352823446680844998137192765462341995290063482102687538340585240301951890909530739318083946052087820513650385555481210304378949374826739548172314444982062147833930583921490569538228574836614616369565688958375348346502499040090386622346028619951458530680494081256215536580859916891474942904276640167871194382487699975964697057261429946811597223601049653755322570469013514154384784246630211128862388642110915839208682250254372221525230273667043801574935439085476125614002051693625189273648434311739826258451021634597515001333162098281133299944897457307814511646742634927109431615579286586013736812306347105777318066594648829883900506505252658139505598206053123021896919441005798420793613146025945909190810036956537172064948892553387246817617189567386706082637464721102800555309350986612779189552144460564820282266220667744802152831483304326308797321126546838094305696998671477288037744692206714142975896757016532347411492319957498850559400322358849414115536500348654166417589061771210228499763384835128126845517182758302312783120711493932470754599645655401810356746301682796432692892839793110280535848857688506957568055301882683203563102464721428931337720916607571096883529397077557748520850348746815312669136997678923927022526231569032638682361970283777528531615996202975828823661326171862222517933797594981916247848265245492082516485873626880045474516735800941845635487513283544803264618281869441122583418765008094967549019158005842294667919498352138353589351947082120737420176906235068149315716367279081013526096606958607733504258058001052467839432586745887299505547739718180388964822012897283446945300030875043557804969779907472776686630641025952385265374222019132709859870900038990325404346802751550515126605580296251634526522507651871773868514655425089393110315938469736069466260088429836417865016657817502103220332246921602243275880208743701272989247697991394492219510912547727218459474839776837089186493706619255987389782659184365950756445262133983484929488813863079142572285635663989576884573944886754731632453982099967529627094320390886398257919417137365888194957930784886324636809597734824499356338519032725679969621689069573254606056368656330377068774871509292910375345092089811601024103944644911609835002643766686932909867269340122913829499286991389190981901479757030897638392453371987294778010871025501745176382407917417330513034301833397341356658946986434697190465533856066178702089556558780430192502945940973948182806164170032534518553949109568978334327562025155548929148794240565218345069456433070404777420827726737324752871607072192914669103145277065020449157512659856387440583646585631080440164172920267329709669740968284865061777928362188685476966575950559462744932130100572093602724458809237802504487242121424728265413966048683878108025393827608428794533949848305982089122698870396490373263542195791437663503933652409833673431129903304639588193745751258838630297750141088229691189419096760032156259503916930429154648495300137991790935703621618279412911634009765218390353775024525498020839359486003781983059956824520345731130684925814695643153556546192762053731051098923794984312315198746285561527364564973958360339950073081003033240497864527228268711780262513113922259666450708568075603809568906054745920733957986393954836396321469746435313292081521052913009870142687823246635304908034611773997979610873284094661438164449287061425418619681514497472892349925129706202888131486112334816742724464064191864821075609809522189257394772400720088344749681775509949495208544328732483931986896081636032830216421732155785924727287325420627503786893070243467201472075874027272688996750146879843037994600224042569641128895748585719503964763266108993788886629812661340218544697879060524973564931935190534954604949202295852852272243758482483602030761971915787711677267314739389836750951722116199999572956886838152034099125228875689816043386665361635675781723081263257717197772616289339157869813435198480603792601467704093414098233234729990378815883250094136016356772548705885999085998160877535029173199351726186265926388697392711793005744761457381393108435191061945399668592050094390959722545844438886135604744511481210596964147639857423256429642212200451836904911536247623314277116050512696459162113598770500640583115896341719403969997401360349571424742624951495102459607288083351498413270410968139097303619281183134095570543598795913390894147279810063531396889896323913223272666048092751945969987629292765499268412781220692619526486465066812272548535875434393902935320269151028733601071217303128872238255254870917746059914208850032602590978989024268703968280866256578273749896565073920020899252477816625612888898348519456002805950858029181191178057069024665672294350708627407738620626804245255708831705635755514558420690045121061511618194156119502863742110439188238439775254662239866648159476963967132118662500610414018918180786059529368331832197501735089201431076104162103977559233208935677859560080321791916398045784055564924406502974109824805181874720762845511651839901491956871973910030882653381809110607945816979096075057045574975647382441096740300548105970569901591643046462103148606965897991592135797919821131913695446671793228381587553308457089564829976408404711753947979886847384739762976774616349238116477839875532418078179287111805545174545632144718437233720869335250161093254932936456082987726405757096211040485404786710351453396938169172808590642557483182196811187405896552421684214198130322209276463229327059547780205770788148679994438880143217048998033010785141560809335140701894092094777683171965565507291968367302626744631914423578134442241724385533359478457149009096015135485849223271583799750556297307193286120881856757324098847063031697402077209197726873947863403281372354126306981381046689674309731648998898066104566035947629386919363108404999019843940762027430799983986782138569382237838072052808221888833081660024518079909552874917356131310122005347806364064024604356448911772312291105912969030305179248122947054380753373891719279018711614710729841858324196779178716733187895114457180074627428044206098985086636031586712277673885332578649676189805112243555789253368861626770180566677050154438068920629283771569292304213251024251532880283483460882697501949712660810030304376592826096980052411072301389978904320136386989304859594960063329453677970832466466021484281135895036137617228849038839335721911948486980230346123093308801522994232614092663379743735851152959562127016452446601779210229488151781515505330457459419265588734756641416723559367513493455682276647196539661554909972357761942562192202489075471685368015035547096868441487157333552021636579485972310187618569778729910849957893559034525466597581511148569159287807362180462370769488852489665132101150900578809359348999354870913264881172745320588630459730744984233751073638976225640771906516956868852401431788101666284852512836422727965332710759133330591046404226657921889243600866986936660282416903889469988048808308829567215703259760677843234988699494417668968920514013855576678409007061645083775632918212827200932074502143950178477055689513848722767663708150422212615870097598233756721472972338158711961161426248452510669277778443163006720509297808524107029853388903019015639904892735059827577472532574933225000300457963699854797485674683610488001511238612562225790221869287236838423282461556986039735932833927519123889241904396185241549528270364114378607904185920657974804815582323061692951178834473077204146505481360701487310615673169097141811234540179510404205094239410355253997335643436945588739958719902624595894410471209404733634471619247783417597857220913732696646285271425345180775574749829484232325676588097088643818566356495759562450043186781736413165275090633660390176333913340847192784572068765239373923388558757334860851459632756042178972925501694753887060045999347923788725813984804650856823889104785621386432164456464062087705097136003340701826381404639474412002615757034496702088701183173789989036907242946108751669343159970455274812487622569177155262250598312529121918466898481560561538109458660092430155358889994352717613108804837451046130892415150423487829400276456628195706047239409596259293088210099849365715164687562766800205358273880349521127565535882033837563265132213356311425856915848683618288793976105778223889519124482179565531320818377936147223101642650212922715945308030622158499450877482271434418508954165996028812027241078870821720028273195479461423749805451866376469666609545642162594870303737814900613936764646539572851754074880287186945422972534238399180214636823710349579551854514946903167850844029970347061681674391275333060006711453169881559898494703104313743109359439456914907525039880503285120595015958230555067218866604638989649340404614140032946766884158778080489759831335642936539342562614749098596530505548064940360288379368922423415000780368627222251288682747943433795755065871768235427908096335110235606020451746683872449898214236733299738232363663026789488079234746109358820455455234963671953155985584979710594372160624672442080574330644697314705536921662984621840058904734096024301869435827478924090734962271331554348275740401362848664753833145800542009676599956541547543116977692449228217672410335313828585764649086761444577306666155305460328791074784464924998114340286742285865650664269509760362058918383033481981069021697337635222818969399151411484254410987553241465965385102232309212092040841841305883797939145266039758302767324367337196584046905997004239714569826971970800473639346434999301744563075153531653008520293523486985023316815966912836412354479914932938269666677732031176875655789133032441227018351698216649554159781461416377416423032028929160829081068510635427686231203149083471652114571179317039937840032863815116921321537548940636136215367488590384659657247289997014300151772245493083886964251138483851661519046345410103553854501357655537006360115651829307720815875262314476972855491026010097143074267619982867479671777772164735562670236161016591311089071804182677180626267548361747562985462454058244041780856386985949258551808492545000378229325571715372159960342215929054660226781766571818156152746061524256399699649851359705659887679367048680013927167834401852089936150932209148826348207628691069180392708637600328716818104266265976961403448408207771486672322709598267487733068734623693463077594419603425251666933137261635135397159728646651685676688350132846350135047050679897244687900157534919200242133721972846879029114325429668312014196931794390192396556992013286300647394413377055109437036099161830000663944462022980720020186584046313903112653542713115720828537269613338776665424608828335196154021080653981492717141874522320184625188140736708829510690353064713578037158016701565270347700533351141554300676240227304142819375316507148148433357157709477526224535697767652090690389527212787901022224351850341303724296524107535355082367228738455558926491460731817692758785174533767742407541521652571676155625480014716339919496519516969129151492116286847623731208005232961471572734185811683722192181468278663786367847701193477026109157259423024828398236324716594753194209704883502270478047886471128836732681654510951828586611917345107049305530990226266992947102649342442577704095772484697441473027167130628619006826240251458543877542035902756979938908654647050099296841590771708477304800615915010486207946041839132183969106674319089955483561168364171088502010778088059136332676951266480750463392899458211043195893850503642701327963942102918878705402012030045968853621600667157324790442524410215238225733483381119240001821591111689807480441263592440281627672289757682667810133386323364235156663309987501621856553990860197624306038671448315625041249595397153909833253970899558069371329465992407928155785156258029787438972217024371149432523458404591846296025956107237765182261656381762310168806174675197545542411307157846655718342858777799988586191519176661146058792686902347977136134912808952773814105609744934487518892080118384818480372778480769365721880347320764316446485590897243866411651664092206321652955767576297431493514455741914261561829543108686640193737429259528926796095496132340608763751657455550466684285382205331558174032788413735059050603046949916654160178138394768924556983382561990904096848248466738573049697605394641380890411603589642432359176750717480605951408227730693369042283713998795112544641824716602628196622179068229081971862114401583860074037070760095384610070912714446995615255580399072824949803365377211132208235281478394712772119066796792403996864581191835557492402212203883302696552295063601829063135590232195803347812253917609382773698689924429623861924374297359167254733781238728492302328492041179161345269693642968186680205497993312188718861060756842919743787927366443806914654011329644580197911031041618756987517066631607949752703509157296920677703400847384831968017175089219497699927385401359195949036428432490011463763754319915432408443464742193101542185804432798662343910897960256788199589546671160873539450647868876744022789289370998500464924722215643903005131723293002413307426989145653850472011147857137210683798324801246191310851236478249684444493670565835692829497753346412664273277418411676245439278500639386992994799549561978495051047822865486401181876816500909339320362824965803586285353841382149380328157079648684111851462383833840484086857367328593100024653275937461363690495370662878409638079127736749221459022910333044854257629601936971792287861519957472087858625775520832083953672484700729308134842969936687811884318690281758130868798506285417629876205298303992139360264892078765654898482187286019223884842657001824936065427439045010318376549996946391991934549010767736940606397313528664539788564138234460761218566648329933957884684621346230811556562445554803970405084572376414265769662539503171892426201492426654647477087031952723711916908535901305430808256444415111603231039768803748480102064612468175056508993168457694253816779388930725495732947088106282772161608547997667101114246681528866829958886810309600220874654353548449618880783574294333828967563176098516453699383944968971819708362649661199875643880125203992692954596901360317472596528969551235806102721148019365215466606030598095004735541872150624037588423502118561126032720509601119876905030377936890840536466044973346731282321921602427372364542736954239110344115402129033479983635251186404318077467422280387904989976701785587515092368266632215661371813975303109396529542617018928344305096228015825566711578200379669646759754182768340971220006655576508461447028712356162851556347121458142819297639330542504868004535810535436539500135074535324610032698084131822757995860064621690910147094507286715518043607916336668832089228563543170092959755172665584151740611206093279694192418521558803689963314842437593213796312084186262569010479052952347815856924843088206086036549816561193744776808320450024465312151611654528197413401529350077014816004761111567686512319126372202347608190287115881102565952485977883132985365200157253138610076564391220560361209172861347926234249145925692775965836252925918496014479036457519820619386423654687590779767298286150874596972268220638052177686167777341662990083318211252357766584078748375993437671910924833941329101797793997751382179126179249583245240111740423614482409500680267960680057679039805208766157626262271913535269199444654255205515789408029204197841294267772297420348567663020140228838967686565187569577907598025652088652899768951353231730902079952447465682294120656490177311057820223530694484615206385401875533443277779594764057496333984161393639365876689114497173152933368983376665040953133205659940152417531153499943937764865218703630337766714206640888630915869874726782312819719742910352218864425970588758377519161492711266467420403424282157959867844255112391817895813381575763052025853600696704182240364327330272052318947921822516442255843984177528726609537697407195944966975424563079746253981764634378043974331474343273472333311177578537590228672681949206806373749311133076985251117960492326113462460963642956723800405484108203205158001809096192736918554398707294705583336062929783951625872662959606039326562947945913414593209442077505505244356808023626276995197828382914618302103233548512099445050776957838951258636215698948588499972361995028450470640924449864695243534676879700226647669104195617221755574634453936073961168024279485372682160044581571197066079479224073118946809694134547095316543681686231166818907910517375571989568703691056356048084238988142347790432019845810659231915254271870156807066230250970897449801081593040434266363178166137302791170208386059546842117520723009439066089204017499302980645742961653083846622206838865077086415308108315997994230419795226341952735969171054392596411817546009957663767566488942517307733140778860878117870952559396555798159961903514596452144587990140698833546947569218122961911607619829717994262315690982168585762247712034095870379948249184631737075489432166615050469173007380170342846572507723432263232718754633597497002341548338755355261847671965025021374810077669836327786431331906252899415919817330063708774020988324000291818883051177750291438987937730791873913690262737711558891438980886554988866916195087252610361489767338008403627470306697780096005950817470578269865225318185334151190440878580862071639257448096324459920039258131581244758718927385587192142271982136622984318493293980724947362993481730131870015677236145261145572585100517462493472636521469608549544359478141775244369788881778737883086425524247018830694152554593960295038648223627713534178750521063095749258133272662485529623702361979661722379284394554222109093663119527457957456536913412975458782204978953674866619836163764922582525763371722813539527116376232603817103149761908996029518439180903488803339410141341216301488692308752851179891583392998341871865327719957552467405809096651849547170332213718725996026520445679866452770178836203564077046629619807949299275000054511364604436590350518027351275095061826072257911364349336015314427878276553081890371938055606331795870736588693729864015231307232655842374297930085372390105299367821154249860492767043745082208835423074978817539025472868635308434062543143331268947759535183467653995284427756257165677095937412510666537410235579556282592209200940026905162761927091921116116195005880311941462833178335069015401418717452664192934453393763068695164066987075022501758734404977276087269244045603846914533431962451000928532125100600928835229904765165728293108116453852570472677643418480915622826476879417643150776646907263694764090229360948196324124508231375799173157855746889095307681941433073494082390542891842111384181632749122835761777585711789895069351803321191336108801984851327679480795774338950193695363653076305773389424326183885933406364516522650474458930144849571992426508782870511660392716165076852057076403773147464322901817056240978997811003963828566290563916638771334772273278454478295490947082325886439540854930875201944642157374183112041716700342977731187179412383644503406865056365121519294899101277001894331349082504839588707515253459347651639804663111913418765416899150141388163875796349267122078396580183325478384571701591733470927937716436158930581773476800980242404900975595519679451309462693199876195495533147217205747020980252208866465623114959071872577637577517596309777461476005237282361598131144304577453657694632346897316360132029498231653893187310120853520736793364860140266978255306544157145200581214085760728526045674298536050652689018399454309285224189816987977317633014766157384465827382936075752453177984958753289438071035242104600845801210392647330360369347926331618178866063638639836965858782352411108007952533135931875001388202266076903836010117819919896875705364885137109359397777316859793627574469542874572759682097785491120509294394911384516018732737611710697260162419943184980571070125663526946192889047157751238027775726348022371952676453523268094046957008113640670215940733440863616607748899652582355163371391128327968239366737989143830343301672695577838116460331853679781787684880240934385969407360231450742189434326723915268631996386175664912609607904583861654134549158668676421698565282729068133583164181749830313317242363949712683429586532683692758630845800176703808549132598288536569599526692238229138199203259227258357010584601796430225019578284912388761706143511362534280457252974874322774060809611714431272287570039331991153494305029899573542590993340234566736793305696293967701310962323336797246138264689079396553465391990829296855720235894519449998839893589613078694719566819944867153917640946738053961776657609668050352581400135532498136880784571042700000412900017406845585894691537998220000412151048510963931712642459123020279346250628348713394038655393598360239949484657559599233830895713364473794876544995282279351889089494216074646649586440427723686603869496129897822199904494142966393731233398460633326431307566326779094081422666764373646804339181890377818273157238406694153016778702997382672441839025294779686674389748560752644199682059670295651956469709220522551824131015044250415970103100988648268759259156644834305629994779222079390222460470305256134034933904827481600015341105886299758175384501089783813509352027621174693730074848609761040218492836286220121279487747046001164769857582796493822426891210137465715683131514525941231661553963578264295844425778353078018589920222452285569424054580051333784714003535429315540587494048731131282874651276206979593070147089349650566131747319092553605851212852882774508947297756890221353107955440402676333711249280907680149831878524387089737693768434954220009665269477956782286569330733613355890519752580530283088132446996339669256727362726667720315011104793847906497104494799623813031875006909406210460683342894596839440119404062552810053846487186630336320350985360340294882221964129702358653515191280911137556372738846889561347425423422764624393702973031806869285546901483032693065074245353201420281630452570511765342256038761801971505749121966266645042736090981797138922423309671729994809044052881474686418718162853928676954215231067853067228787419875287572612016002498883168802235335750124053862902855463961251079236081208931326418559208092216117196553949886549037084383729383241037147767555707394885944561606083445614241524927471552502821173714476114490363279143208225866218293226941911697115818198174542152094918792436814147612452193308382089827856045871663227025363506423592126239053022767941599943649805987588948826706569841562392946265271067754507509552888914248582301288812702630044727174551634775712859952381199910706949133767050806343942244457193903689355109494749811576226934823556326027601914982182401309567370102145310764334929457509406572397496770274365782205532707428011982410974951487175009499287465127710275232565276024819779253866223590225372003543625163409439984302641126848123400395719492109227110085074154746717140273653100493862285063720597377494846842329744091024364808556963579328967114267915050818255217311095819535534101507852866068180504236935812017322409730315166140333642926573149624508403475796396428535342471206669532478651006237673222745888149006620124510308369024820004532464368648707241084459810610336751497867162269600445863207415790971829637287375863519913429297119254144260552249793598436066729568162824035705590332412710347453436620823267264273932108099248466551099640538248690980253274840425499001773414677692580896236184857053054755221963921776106624875385866963821087481389996273279674661884228453302491128476430960003473319181182809650663385796967609017621362993573215706437180423881456847278276286018929853035274842417634932822715061901609651729027518942241365741424140800439406910167549408463189524623457004679364850552004128279492981621664029741118109220418816920677274771465973937494110890963664986638039060331334467222344772261287269739480970870655122101827863283773184313658964256479566091582326315581846338172756846749240265702076155324334600852781098514209616147187336822057738883295287442815347091896138762785835113252202550085310200116881503961363345868307327106203586584372711875254309820143773970443579082135408191533167476312478525478250245656854828905569213101668795343384894423242863933687862183571442631187699364081010009601476218767810646266600105017217736584073062858707438970882682786164216701840064870223193673522385428905224745010475215228289838543988473827111490173561264206151809097311783921486724793285923398727012632319329446517868210233865378829673550943283582298134047279883566981195092874719329250004455370089819245874634818352324493318237441641804670357647015993743812511136066837282888114961298676251484103895976449475059025733405759868640606763773465190474254201862353941083952872341651079636037906982319237448183972645449383035412932350782447445414813349460319126435673734411025095950584735216282554416108471781165447209128221648552227576846443471673706469819845813742686209587399516293103615723290874872109172774533806384364763643323358699076975256604181474695772736529370293526073601363685330817695219010097415807678435167573609148085532502293412806127447943638940586289533895304942656690163474272515350604411055079468897591341937801363954583169833325187172824638895419680260258875735984762186868756235957037915111161751489542587020522627486668114780547494068897325723463307229019163956208446717753205401118208149789163026611333824882018427400127160192564718459564315735987739242314637704095323053314556815584130018057777418259429937239515038720385574712552291390659666937085281632169799162061935422350453501023259060114470298851854538997865769196280879951265252663287199877994395396517016695650782510104694810233720285369353349316602113056740937509858263437403176060948153133077977742095237224719373454065464516741437717521949803605206022236244685842697180999653675605760931050400917279504691149464014225657470809389569544789424543855986974414522367872903657616754811183426597719728450823954351619728640091085763471386783633044838598748369400577088753659119984649835145194538833593825191565061963388482101618712485356298137695243302126460690581640325204736686115205765187483974099660766313747671221907126378722872719653465119790077007570262397868475712939930797572519405837194351878358742465734716022519421363060175007234948789606358407043638660014514090169389670870143874857813062276007109512138444407351710805348643975247839124885540409466108417281003358600702285059721590742550449646851529176613606401378185202445884690044172081539340735153463324566057351829499720432399707423477753011835525881629040961030797923929539032445999883550625164445963106348926937720521688358339472402822043940433135684550561232501607125155110827956639034651330612895127381010559586163839728244711636764596856297987344910466275571664115423839399604646605821735744353881127217566541818972135866381287686728518046201895527528262226872157468643341884204415175081411957469527017393876160071423662572799812912713420043778892218402057713158852027785406555334001100507185408858914885451764914433280157208442936129583824855207398839554691016120257570806574941068542301803882930518784082419740639561400032390328829590357093175163011213404614790307572908401538024731853241993944833082818542037555658857484609992822221328863009338056713003583786508305034238060054043452729076201839668754424489477972608222365037791019398751825222911572116924971188656496506101377523826032394976810527125993102579646065117418828452131124886418452106030078703200388981698225731729274626477924225614327222170823065022049294340075197700019234432949995842599183664345245426182170799444079532577927231466287981897267905150188668920231298423970890250266300207211168087438386224340067614036743424073402995334371422393543872552739096559612444408384299278475232179157574057322532877766876437265782006346986842150448876835695988133276308128377609655411066621415114032705194608586488426043296678768626911269575370427450580102199921331272283357616057943366443596852535717096595292155271204311434339002951611302589028456211472676652936200128891008700036673144648634995390634561809321196540222949009380549427532310090425302005789805458617358250855451368511888512173397678419888586227035505981038426484887839638606152472438150531057148866482754740356813387499376326777615295464417587064100400261968553522798197738706463312453823649340496463015973650488892598416819823057098975804018335014841911757851141767887602842443083346576657930188519685700880726744404771948774503108079078158896444719575867286806399049586459889062210577107462932206602049097414868627741268921101262409544210530856797222708631645902354673418068247905440391314189574248873379135262497237735845107337888576480197979207647034162008190611761963749644593872875349563922914986013318921165918029429514076609387761869858281375309549385132538818020131097495375504043454720386690239997305681123185817569671121064591921445773979810118663386891785626366895984021009755897553981125482584314886259902409153916467072874922727185692068141477887574701188867470799966921505451427387053240443020666411040518908799308633752394845434839192734238776994157498503202356944641427919753144894612803002560040539597327888100708719345247150682515191917277498378497069303593700906176343224741909133940219290259461868508204203556130287714522542263499432684912836342098079642329766758407630908731786173888683912962641836648196809182598838426467313327928727645289202072741788666035058268737604943764208799921316602177029775933214801450913856478232579848209653357431824096017073277573604898407018373750922315004992775430524215838596005289644878559881028691789371958111223563048140753091272122322129872119475656973398863329669906104983502411101523004127908785684664064927320927496303188134112328596884022508492064392453704759778811733928281483101976923618047963413506817669487647955592859804865955131369504243631625676673415163752032621562984728523401984091072803969743513363272788532402672851500140964277756132543078571923142444246981033314947513340068242886457329099056364655179787241873608366150251045889476927677453124289111781111708248701384603132258041408878145220894537064257519115502235620598022021522104647356674264340406573795798138659932491687923052306626242529055717474025313256581995110152041381776968573358148150052694264762318869440880754434672070814232172169542677818318051151375494896477337404871142735478323508190983994138569179914932922150044850180882701913938933232934505005994825279770750679626837393123374686555185762035962489857733547228579437149290468183898587301666746688092468666135546377564670157894517464681604684260043239497901005107783409660680128653465102044753549751838211621317672514652225040436821382208130720405761332123269754282437422248954394531126524978430181104152442739014136954896916694766707685820256995008954518504368961391292428440872838242612054252160556220186498682160065966696217000025747040186855922318592886578607167124303788408336785934943929523284298734406956390607178202372747873748183379695522793888095324878137477864123077262608684128691389462391929516755585800281758835888440818237630552361029524265431769736511950876145107908324112734788284701823975328639282937367165619300775585015832162843943522958184347901574445719514856078207565774602983555842602482308597440561686190570500757345410553578904761691115667635433530716523421387634121929741146484141193656230639223095333762015581141162218281273196150397880549050943634198016175735435292080509996396647477806673621931170570174238316247622900221740274862789462035271286069378482908339727680803400867848172979924552698617577913228554509682697316098979339394144572962506836180534832416877737283659082318844547660753013761929472706084061683350482794805880100169996628528515665194712543353510228572992600051745316900090491833550931774190112954225710800521197574888652480730581906060528536361224054580989278341151748454462219920878760487133295460144636740688436566577107464408427799042747839157142478383264318416525787364693849567697233698394671416468030012266652451176886417048498615717385280477127665702361110466280682804509629279968776349717373012475199145492173844983560206957914490097039890395606708886932556553022202624581165864437401053949560234986537514783182939058434799081128446275046874672808932058102679281119516265273704680697428518344779431121912253680663956900434227424114454371101159422974421656438175969043529101258462833371803501413328754525034685643371207365157474011667368609752685950320106293888642964775672164661701143303543584748290369374931855519094486663664969388955769164051518604360763740571412172337950956397218072021444592563640752710093022348488160747713952730011822324783465803056179790656403233045031600711296910852115547665348551181809439393309264371783024865766722935030726394913596947160856633468897544679550232544901079318880228024728006384941820206890286925711040524757401973473762725539324606426311061893945261035202896654546646359378220856015276027994929667384365765258163915332184637037506447567464206270396484298280567958407489496797379604169778217223677367267670476462380180786639150445463358693156396073446191876340989487461553658817365640079983495247737638394941142600249030605826044587841179645604708118104925487680385653212830230438253990019236015277218303525996820710609456810255028893625644766118653423325947534947680186739148842873901003363614610301665585971168650420365915069897100118102361007036238963919801408206590241894303452768406086348022703511115292267492505046857706780486038314125097083320147844383119297741601787202927534760399487504682070156996208961915460259087549621908801193293442612589857219691360408984663292560686772451631352182820289915364449871142492098730699755587475391683252293701322173266601596068181103561946418954341555679370668117319020881962636706537307642883745041984140970320449509816348324287119695750999075630973618791207339760055184852953661265077978881968352338468122694438429505772528476832775876204557320758526574963425515551012204413791587617078849399156254946057542625503110826665207317556367215264249706665713237700816836032857194040835278497462849709336314901484816550515798560084173094355466759104531369848344088972612320464688690799029716377622627239039236380972018149269918394623643738594506164994788459912020583892155454654326155868207048949822980353282589772978977498059090822741323046418550739075602726689937496314020388817843575073722824218085199599358367140638854404090116308896432210261321486406181901888109247832484641104015582352458261280667603029959252398648416733595548958917425833556911263166047898352060967783500575138954631867825045218635004732116865688502518195461752849334051115797564045483198254832062473579826250893631774748440694729894577566473223481328002060626297347772105819694382628828354796624381671036727313897332337245328523642675571082347411151786999563360172402575898151710831428048837245393880958434734343305744473297321771381166123669133037352203344954978847317182136749564753800926084236644510116109536897996032979428716753420309482762991274738206377517860131179256021732637996162787812486628007418460996656755198589567078319913246551827330521211054484422129297534024845492552995350472859183281249520683121200519027203762222510943125625834076963438889204327953090716395540558978450803536450093967989339025601930839590495032633811382032680805631361255357283643340687755326680545607524743947178574582199993169925891111461637319664901532371582437879446313586534805637484422019742634381905449684671640667983011628524663339134278181540500279838545783595561326212941856800763279123745098471599218602394731382164608459734694970826177597936932894379499932644204933709794798961058479901576198100579969979694570543133806840493689381039388570954647912571989884742845422209685415345162692437632385705216951151582569501406320788163646201205910288411309933564542255897452887822290062101088209190192356614534223017796868757298877897823731826128575374368515148753894405814513715013042312997272400181048539981411691974258022929063963873873780264097389630331044151293768567627508834035519794263291339087711474204215144780313181648907119777992286890927688184635414868283302502727392925311436640795358699811630509093013904234986079593726336770255640199254385325739538702669420057979062997784403146496023210987543647586729545359909087548829193174788069438072779436051658189150402673058098531363906549128148897603023695525379085961703428461405806994204412871097332885918627836353782513458923595587665449394028816533543801579644220579855334111534793720533845085067737871702413168874660407148978493358430924533166063623964003198592198952683767485184865248196251664197272572454516494270907522854946898556475072642782829410603185011883649172150643357516053524326306388652306264689553652203077771823959397259328633444871893934582536595422696230494976933865109858897766089176908983764568242305012472459422641439050318743499506683477720851720399535013643949408886264910506894251779076509407094315364423897825510740689946195546413183972414869047531083294403612843471525970783393416573481736660459400242048372544897635477879694676648557098208429550847937889980054374769015108570327571687112954204217618763132188677227638897471884129566177147472926449146258248684067089440433128702427570311716400154198290052414196993533504656842824149772055826196925169738173100065190631428476803553145148565243625081600645208588812426650257409717976817991193141047129459146347798766841452610823344056302251031615770551674754084113546464392198955324215357131749451074932541097228625268807594226827981304723369398823213754904833177899060941766645616074776098195670227303652806728331656042496751899129057793884071400378808496448762766723384240244128296096892683272246166167272779173992846770741820262854502326582844226430296393693456572916242736638349855814040557725570944908789448493373136331945180108964794695044900027162945421899976047177910413849050405578880237082888723627662059526940924694029797759869498900293157654105566726001391341512435061430436094836951573352676226612056337775093213620117247867416903004855296117622393681751110146742708673677722114577389946306782193807945851296377025378169007289945906892841696048590389648258534885969900035832998264972658734717788711578499741989539828963124203425353503471754677132790096535449990896323805115730781565286280699765837774450295112346817915856360832081999454685678737678748943815523041599577889496958724441832687710511948046800899225087196632361554584939078132283112566026408854388916422296542693808036291728560538986700926715483164874660088633675137102311812551402585874952406356198050450635001820116448547260606524395871260768255902257084056584258539985665569623422354559724527113002726797262889256917245946834120541217186101462206066321968354460861270130904727280363671542803341700247863055584212993440152218369972866344454598436419156827353639182525831705995169609828281309091686442876661482341966505671266132458829744330043336906789406257473373995439798729735862127892553017113531995125534440944361002680223510316012442540003355789585209276365571151485759299661285284284206122209645573153448086116230559803261799581641060666560586417304176371593130541534079757021193156430856758985817826417061633216081315250388046674958624055860883159674506445030890271208738814898452659093221440405218807024356813357464695341579920842950447810584908746120565460835151610904549282883227617614230468439668221564495652178370012927594766938862189776652464056179186821524404558322119392040207412246990240643448885593442516004986565670997631811261941632110091384018139576668916143932611115348340424750660783972329226809621293757379420429909107935216166661422395758967175162867494561666279602393370105594682577195227342607900542435129799877388922954884757443850566147194435328198235111412874163814942886009963380972940548448576098279236618895883750046185963531215518921544741985646882902769530918537087137529154603162338944108461895471057094618587272163688719252197992248025241497899816743227916765691906943564307739000909050030437675803405727017218929727140952970388211575803802483426594328366358870379553450783187228777452321501558733438030669424507223476935474658005805645134697601638558167767829244587174110971302202374280757960520907239844165124396910523434017633411189610851497464087638881307994147743673366855627988897978755490999471127257396174704146578896225824754221707698541504733063469263557745397106381472519235562260606506004169881106843124039227080087594133061776130190899259932335936468227091218054087463126492889397557187835744022980631906107878622488441246658211352557617541295085457528029525164363831805959001323623005427248925734096517521701865392376406950709023387564858272824823633562731549970091231125714540301404284475091938698079853449503028649412517965856525422168071635828439662075340474176337558155557427960257858449955332687514922684116689485503444458504849203491176083856834944278265295605425369341678687259319107684737941096514993728055576411453504194898142784200044892588658955700841524505916391433120154114536637055472510085730614273225216740965455490028396996204932946188077320369835957055819524186468228624338154873373225104426799317137793921179698091783893961353985410635558861001861156570048839122285880223140814976574467191937337184914769127948504595590264356848244968275694743926555900556059725648746027157203954039795914750913079990575692213730376328823992235910393596014852218303408313530448206795356054285219657954426742176907073353797619861854419932146091706269760970134240856632546589746263343626411425187831189630480672858920368718511999555071000438795851590061934447169074134200358924357929394104707386862586499527403407361327146786656941159360324881273122577684346923457826163478404890406968632382133336426675598238897170740521129114798212983428195261062846359573110102123591080991506720869753760772300855557874207125013538283514073658606188928193830599173364960896204062373741930969981991398292225454029426281024155975385368660446824274445545591697525037092243428380794382101134813844106293318779784317778440202520821762968498888935206971605653315859997059960552238577834709802426349800055491554260316017314532937903170863141877838795791604630836817313205329701708931084950823885499577341282570701673666803580028405724115510176292112386967452457250484703755347393026739326053861436085175491029736372062351464013287798797004987402468042865203334910805278884005092344670240260095863900243718517432457551399977829788470698340138663560785922141500032961588133567033910684810886105540137999570186458271660706109451841423535783070070882000990109689098199137068369369646237790361129031867903629087692488649910936246030624903173209630282553364787500926059051623255280351000374856268730256861345121600552164322559087039969774448766134578496440792331523825735054395504405807984627446859138846243355580066381240239827909584630256305362056356740203493985749534099707780563782515584884466957498189406220363811986255948046365036164161330680031269327815731354011921640340239986702258594917526334544824822333019939451942097549730627725572687332204849807966320724881924529242926061571284103539318733142342396435185258911582273711065768159417058697128177753643948277225906634837577027892623654238573186257266709093222551316116057516528346414078991503799376459581385647128651682501522342655675836867582328943427603029218572913311867539861136092311434233299978024275107881327905638635760839252724068023747544610243353294566737217275540182261332135320057642163525381068465920653024269718442778466282753800930367847384538136383414059033422762187285041329887768135243180673400855395402878545099807698319799359925840506368283832167775535603938403871648378753854474035212176908191665498888670327581733951261612564918614931206820077905739984678895976733354034734049340182346332093623112640637138635708725940247730808743251950408230028623390836598654417684608544688188484940400755604655246877581398527234353697780024956390534687696396045661745182802980399346717107024287932109908150978019221123202879846407269938965030228298232786686954025899522960274332466107591402948202343345983769464145607806973410662310272733190940704221173028215823061244264368388153590173104021628927759026544376369463727254686113821470764021815098189164945810186836577298325793602871215307091887432306927400409989998441709610218748421937671459341051475586176239453502833264211016989871606931283672068093590609301274783725029816589848132524110716940602800228600870301779540131147070660810012096865155958800966230842740392821500766763559976657409824686202544700440607778211849395342916107829849425326584130274958594847755942948703454804577608987215878194858230682630659952329683197158571851098441241196060767916455737415222278267594254635288657357889116882328995025061456096969755816841295400400573806769330674297229998656693154658503738521651971321796692584762145900125940269439330711362422207165676433684303834216237300689044660726761580840505033571339767739930347070115953449135094103393402459023469655585935066222292911466417972612132807342288603566552033513252637469137970564911159988179512289546537144369577773320104423629411973076867152242389815847204447374440908840045446330672944785358174058123338531577685914376136657566184534930918043847193805083322916786272520010612967087880863474581387165617664572442786735784714751534155285104968568438070053366822715020743766734628111611195554047241418876854924578597540759505713924256272941957410033422957546330068715775284942291538456621996279980584374658795618299917578175674784963058649827732891511089864433492014164457160162157524139534079804588770201466236147780062497099264550833350559231465193398896840934309680216392046483655903674189278901311357605921796810099557409301314458103621722952158724936321587232022055890580161095064889698094313563710635621041746736426995782111312616884568009355271775690376090087104515605155516031552826695118298062557542280044335565279579134734785262501083384086115419407731285196297908056169931855816474376626744637236463082226457841460098065771535148743915148706049873134164603087852739914798004699215846881074592317363163513587115194207257654116617964791099754305668753284781177551183088425497720008827378279424220328109695013935904851507774155370826334814235215606530917659962985345922689551925814165374609126511189306434299934704648148184776610204798584651930705187178900886082991210595514379207717403906407666865483855798945412352852868672220602780630993312587459583592436999712045636832974767244313044418969252567266569128126413265176392034376918586738131004774154980188189585786337020264380694705436253180630573543784832773660705234176710985436669238381204029416001984820140994896251917910453274738818827809611090241946063433918238289348930998411459740268439916935466502680624049665112185233687124150656336575700006133892727123750980848835643881926174250274740618530535829316875158966195736720455304779202085067654202106731088404454754541596757466909491623210883874230806554306491972066652259112809025993580382527116052883559340004222601756143324116672987129664151583467732937970865272095687853365646450013776294519408697815289189872206702266528569722149455186514314945503706645523942855762127801331993376864967080766864100381396843995653318389268414240201113678293689441922275087903912778511845266561981049967650062212742722776432110916740297969818575803460144032717036222784243087735915106924769177246330069420233574206603793948378084961348487034606677306495111119277358344054034784274175047060937747867649979560557541953954693195176065320352737855755857393721231150956345224493533087624054419892536697764971833230780449397230459932604697805257006726977357759908761914773028479081631337917932021966003625373815501436071276268808381302216183130935654973635918795163732441025599119979386419944699213984112204641832962632522625654305919892516978445483079692241812449903510409893697906320898995501412348507987264826185336652349693458782512345782315717714732051752423414646747020891127876894586746496037832114521656233954602965595331487711597785170599449702657012664950868572674088352433258424495674986985196934411362444961557282367602304120350863814768900497426503419762076904444169347111122188825204449478696721593631732055235409182839325478292657828827751369345352992219850402957508474794730951911891032510761302345748408761378256631091749752402415697193739918804983326711810160006587923959859654026738802216026531659431220387324177068950251395153777806049910649510043312460892148001822474456972361542128841910185413022570733198499390921520001460880676148118179074483744771054498963130421641187954140287456449181440257213473943710075725540002433954752043628249963814152043786237243459882809187887902833762279371046600794045445660170059003658419563119183273187448430310571166441394754359846125941632189467729295240369150253601001744065847968282304506299228980329672146443228010635771001304540447847916717744956058970415884355027731482400285557320887099331393626585029403089097928825571180957980949778589001263166219269579921309658535109174679435362605957452763138037590913347527667047320023816698640229708439843395373463705524758941210157865964415773153738018344244899944052213508327874442295638893953353651697654508829171642392171625764285983226502382989582286369376056069170295875689288323335198112332389562272939529470199630139413497110723215211766533612999971310461392983164620430198848700971070492939525419400641762601981892111878075927346780158270497312788456740879333138224121569983044791843450127234345813675047285780035514174572158631618495301331594005107921596533062650364115329122407782469118302168699867259589623442599366070675965512020676887091877881914447832264177361714681774839554852243386749470048899126254306876379209882133306313156978548384383797533843700420793474569536352616044159911610339368600951950312972016747171875820740321384033229106313851809501795960121627067494514845181296520142111702665271801613224169255052753344940464104148189848168248009552341005703273623323841343548236663284511618151446737517451537307674960318168709713286017680151066306100670778180421699292727205386363861537462329240624615659781868895962501549109038371728941402658001776505990013446375390874740879460396282833771775939406896029263046263485314902589015167580907171597563206279966278923520611388286527868525017173040094831391079202544851071916877863114428254973878263985142800169921821358731064752092959742076765817198843246737428040555661667956591653304428368772876087834440440743425040661737926492744310401636234076382873955060984934639575372452158559785609783801517679540261699204885487022933448648537001045718970921564139702104883341529975499323328088945012813689835751441182253455375865718265773713372599007892983777931711384245515301275228907842266462176989669273492714909945019702336371654741149861579995243080577284257396933306387847736467908503539230673032273048131039021920079582411715367827119646805119143624308240424288940376225168840065459840991063458878063700693167285497965105767190424188090656931623463657093653354384477689729775265154496200473845119806376427742692459373666493265794089580553362409172109577885313623833976491736982158156525317318253631231124481562988547746555211844986818457809356067700097682090468554903619659293433527116540281534930602448572102031817734960574803363365198609688949959263772185643469421613040011000078329298333066502450795285953394794193492355315379425543463072551653110309991390782628059789924240710962718787356157101536733784993211611133744118097296433514700774342537096983175538498982249422669406942876662792653382226569911906191810722237250212571981816026033192079054642009732796281949491265564409600468903669948085696605462823670900178032927232969869075316029313281570208958996125170941064741055547544522525662678890135542205200800101823460609175900390581736123109182998863795712953986837355806834568528034800561304346331827373354335970356283366573769268051937629323906985638198370220090919337445283112058756213590619551943595478932033773617302431183549372337815399054036015215028090034536389221768703508590884989705811247108111777823307069062922791045122240686498065710067125564214430357212269184690707342678237327608640848072207015141537465273066804432870818574992704626947835521932435902211636190303017449579131612656399096870665457640250296623332395092427595746582932289616746748375330574396913577516822136728451349950575728365214830144777546279600609493136463889989055538251661522853262859408831269706989256359246650063160956501282975127088486757510546531295124278437730969952583490557616728024110645966040452720523147987797783153438431926777050770972593338933504191197829812137802805678978138510664099235126335081897047780152965298631562417390618890392030346263778866708393769340788540496182786863957624218372064062360847154555764237385522068616579729590194009204362788315655559307592080205772082005787266809872537932788372753592327311326698730020496208713125371108422342977448312129789151952028369211855449965114778477622256117332600504988246243794735550343047582403178403564666853325606383949527831718618343032677299134862994643320518622973525353070381886553034174776081920588292133658452735214513550391541511357514585468869757735629479814529739908448905893716415299298444417397768863531928046025204004057926762738478792122972309940365335849342141856402145997687298371973591570342070748877741664169150979277458512679025505811836691782844606905560324527117113642902882431120765909506119853282521691577150068502928326206365643756353755042342695631710916793525454375577942440496784470130803165556323360655830638852559501252996111895610382649517699645240370708386203364091541521124395857781840400885208369378347957274911251758955439011080460473907866115176962658312317219442598446182371122250561161384532635701477399105325406706404666496306964830718243902766910309225570943966368885182678503996914624608251032287317777169211072430664518168487830586802902646881324149884189344323342280142209758546399555237103365263484963136062225472224533590280198445222773754270420634149625219061699503885700186580090451903952905649298080993871626165991021768785875800233956323646131678400738821308629487129884869731970592317670618509160250581086978133310595528696649787696007739480355912302415937251784321401720818713450988430786422469009368723063752948998232442937286740586042595921187983870823096610594989994453651642011566077408411983203352831013172326231771814372115651443746117336133216032880316055243508089886704240694205829934379424747542916505658472080247459904987294132256148630796284455080988247486642056092659106763407751738553441001440470927977707534406631850836035877054388883467908542346122178031437145692669344527019118733839727638256879156973241585469849643730451645047183497729274200972594289527572737285675336436187017798908680443062309133465675752884182600613175379008061342175343334095106831912905063479701408681304101341604912065350910947415487936699731561282580377433793798613000263841147829987263800737486169354798642745473805183773949099892475484727802577368018171707623835932176997030082729254323574438614327030516789714200356422822119895664397087249478373879583616136867845150449246503927481498625587730816973492765282375558260719250867703106492935000419826609408774522313317684250691425465205657207024014072006124978363333461022193554568161186594992407318633023223188500333224287825016738794442647585415132532917562917962846626948118509512675615516478116159107446406202789091239054880684005564634681531040769425789730002653687742701555267419902071389736997029337314290979789700015316978563086830842459026111217049322423609133853429491757671806671474309791654966551207914249599288032899094767644621321044961681998256297101768142372118996932437245329346982277245273769071353325608559404280164737759707937628114814520229506591031581480103469338983983219147581136331514123967131752021673471307963143237119575039116889145541805630915655198707690787598428829261823862458794697776796754729510066467488402624743380686617641158605204985805334968553926048034063416570393696276855922347906475355539239489134212700557848955619688446795917376140419428115657493220073530478972472138502133145912003505272739389182535767458776926918559669057527802577390645382123592390845398461201018781246546260341180582646337062492280587396503981285358496054663228359720289806637217169829634251081616731022456025207838556937812238693438755157367268205909946695362833011722555767576612633800582872949263307584624168269301124810573365749971490535077433159664821921809939682576033381543287632591964464135475217761604833659373246172096768670405190747560874043251310820925728016864266347337230310066242351317769241872114657848345194461896373686177970843377884591928176313895339806132700233414333538046551015877699827342509171889004504635209033585086372487322809872490265984733097372007368474789122428531538560784608122617185458653733399023212808033829494303114039588004940039567071218699510670728871284741295917980890734830514953132943479770535118081479536292421133729451915282758326654040080789514295680443544958137930967915753712440389541218341283486522776461511564632545532551909186486804409717916852289592019429161091686621210301259487797506869796474738469762684549945075130161057639335236928707616621845482795933068438944005244096245297744350236903638071267618185204096604411621364562128325000646269795386146376333313238653957308125485523302775738724054006738497135422554520949995062781529595096793385856869181310322510191230157608331077896060120439200912349491904952093674338850701833427814905726944239883135444144063388864523750505285809680880247303256307022465650644442481409743003405428985196313417144974986752815161898004262930935046875012812974169485088280258388669072722512323570509123682443319443493065566648380866905621423169731945478746180668069811727136265825702861429520422201521337078921640411327368555559541728315351856653844973099886642497256019239557418265110746632644283719767359818583888453839440354841213308474592254069077642247207472684663193552841814282218920476046977250942926464058204813206348584975259790017188713056682425332729496115492753268794072556817150167552791174254079475215497497105147417943788254181230732050924353484468129626276146928859504889985356061951736512863831391252150643153304933704103056990678869425115726476545067911287266647032559099031236384429525773569537271521285155457796793984172054984178903889516403361041590645839676742563510044538600978889774065576372192663166514022498090079653211573677861208153057981890893540648589258203204042783424610970092470420225245912883254193290685542627685855597969914950461922192231649819335782682519629591069952885195658340087894662389527437928042987191443343254224274607219615784564669430399519348592681692094517463504943645255551616145381008093867914210706610937799844044036985694323207004512317578151839178437041009659718649186229750140524349202078808492130017046265521477922165324844053646184466114977279438077194668921786332728657146930679480625441202269319668356020487540807230423346875115662959391086811676280041018491542093553717643120310335169386930911908331796263919963274610058575209190605988467362815304382405941883963447881344249659743492452769783962028848159257743674864317581864983152179546999360050625003690766713105351063090540239598990822163249655123991222601372306678901701165457523710609819905304131692587026086589521651809339402971906572326862296052026815311416366067150544223330156321148646161419793220727523540929203223567744395547388041265280743644246848848730850614892231992189893563193067773497996375076777118633411418252225453132448553781266990492516205351980945498978320824247249089601138563987850781463606745965084850748196973740638755465497433690960298682709097585346262973202171718066241754199008601242439773595984084282732555014748236679209317983101638796191910687568043706153282873294703381076717207280226460425862093200052051399841791873781805763797717861419664645183995095898913736210260584745945367901158238205615151602609874138284737182550259249282425919324822966216144884642180197773620986537950473140779299732368564507134471466125455875905259417868980420677435021381742479556468806281164283662585388696371273873229782287626032518890054950385431663256226763773393549950097395344914788535213467704842586403779949272643995256973651114077986690765372612193846144134583330249732397912219811193490564307731408333305998838843193202316598858198729282233210795447473863527471478623568375326430279755344266717965218625958368177026839954678707718271811532884008638528913324273366350379100353789316494136535830632598281860086324760820199025097511042168537937177657475559665185485871382659952897867881912267572903909564904829745848129219764748824267067444219788236681241040165512279725015234390589973275648630818553145043186780621144760390377437089943141385746542615792884170855818863567830542237767677310530453930249784537376615863425886604917429115383522275633156565592709149662368250673115659603773517868646548683651874682095170467345940060399984106548423030430482449500769431583860735013501583368695941777692761927200877396685200698361002391508862702792444277512734868481974725750529283095920551646223086369337833533404062930591821892480440172288084285456821253590121411672442454168430861601190727425221368259130962343555021303894965045785343542350764985589758252390104373071660425945652822014578959084151243249047980214417383675165959742257647542990999022668609743137957275997964046497615548223160316047647534550273189954076769004808300697630776033720810461481161617975388572615441815199102100237725782489618375093008019661409114828622724602608275967160916239342721869303243363387342913131984626179834879870655849569703857411435470122697365148259645371328529596210804823274594299598798798334877553377248008288433931910184753250580834027330288716454535386006804332061210712336912150679086300039573593818542080800121248330227679229509141668820548183280835178484449072971943763274542021015029323848145110322616940388615874847764824035330971681430125646279356020109863983193741946872203108444746699904655103797967698250224536867238047133737235476046474470033291453664999135182773114225588475517472940658421642631031471907322446578913944343422402139730443823818696385546844317461789307375173764593966695239007368232405836025971633675067198860183493191825521032967931303884907213554633892456207851811472627681122389339355134219604976038439150500085487101596732134936487080922201980294968928510629792431644826204517315733921106500365753368845893212844463757490431398807039884809718241420886103789527821880778334702777061662061009811560487321652249404362195602347440458898643986095946227725707509093495450675351613513754445016020288261240277503995237447727293940916557793386313906778358414649923250617328117607694709716526717304609164859132298908170621591046753478806997418282960953117994740661980296904431079366945720338517533486633385274700034044556879667808141698162184196799325943067663944240268673763662041757002841311526632079826068825825074331814108342015723902777513190977518761211859014437945812800422615610948644614655327160011156008128274898886900081051136687664178254591614268639737808081957606840866766206543339628851289727863028716038085191887760213961720314607892359512139657500830467963944116937545949946717246026398636951593857577691534657229576707514759359934902838996018799481038804237424012543686505351832014267776822530212782967434458371549391123654425593249413017318171634008504791826326231096645381303385632331083288004213439572432446105419765019598055549285071257624492398364768900286254096226870219036903244191996759689427749994803557182388920954142681295599544716243861394652069296569411890870040680059444022848371595404121965206312510746931851350552166989959267168721481867854213918996844266820945813014100175594986392881777061441772059720764350497808578539924397991221717528170089768535844447615669039289222582273059630953866116900751857851817349041696605531840426025864515963878836670195356351308797760980666784636642927108177202062807142946407010245151207626031149032152081108332668172774600137585837205305101195658361292431502262114212290220253729429563324602295670647161298325130067700164131144688869863577763944571479826640706149596534883335965504453693606051938352810800699349227547861510788750742178511125970819337404199148222174015866626564657566182908794185067287688814682700955056516604649549181569066501403335178677561026355704038199973010925221966801277993151786639268915603280764511725937541706451465147709846366275896313212463440419512276146943481811401499081407176201536793290377663266572165477477798570857177216819414760379148372581953850883981393532158912014690865076263000774119794671070501084017483102910240707430683925211852513606034343003740257556073688341765651623312811010487676135649067971758369017130777949820906253798123452932337114303720874939912370118916817387854142358765319063893535864706343931275054563793733372488209452325583700788697251254346387885743453804619506408158590238990691634121290686531258284399980041811156258216557619393409609456272449483350284781725896892121960055367599430240307032728333514998261007423679978278134628958931502976224703530717842241274483234899205182692701631148035055136922163014283792051312447460228193778831243354814588027273581513182347737704548692170394154981164226453274256907880366110325215281580083893503166757162549111851363568469891548606194059678127683411548139680222481085543494403600303945932253881105366613454932404054603139810528589172490657975745636718118328424522540880434013466675099054305335228206687867621224834081407381346451152532671630957233911725580444117408469987624716829151664001276249765548908891621843607481729742423215868333584404289508044449858079354123903502854194750025559350072905016849325974764123753935138961640643346519689779173069284868357715019782082139329146987313850392981768185850953500259553951729088608868425722969664562513294866597255974579760502848748721984554357828263933276719829318728082058709908630092190316328885646814303203241979471264018675378865208799944621196207138258359996279979745425536630485376540879345249089586085767785775803560013267877059889632156164624109095629715985126703638265256126612171049831430290547611733333984524630045198116105000479894567798195345297780104169297369057857466882414453462767100620217965324054513048388472251956190329909125139229163288000079547416953516841908508626534353075148800644649511897852821167485892077757463323255781348824940931637475812811806761649212063728771313558099195843381965119846275092996066094768792723781731841536158926054155352379586607792061240113126577273102150261904414825098141093733664168175746912829227405849156206145867432032171487591978337729157137425812658696120048025965014098898043630753907017776399033499154030983784806307920859985541439501695202979366560201887520603980705921872640634312537258065862122089480244767916952889164270088756785684710014046183286620836044158057122484806336953626317845325093244866788653920399995946221278231741291584442458418319585759222026636469707194219969956770921376170410693113372879380959477010536823191415297787876350079048743912562627414126001747763316725702180936937974419430182241455838385951305773209985153770617702668299549309637075060939723320508706618312693020129640586702970603012715351843256859999501743926444325515811028013633215315397503638216042344350479986251398024738627242498051707850233695215890222366070042230591025535439007531760592972155836798127535831277897109682679847545430507034139169726673685239474727509201527131356342949914277999162683608459118839168638604490458201260564610578768118378936331984567727829379096202297547690647451402960214429363441719670365219542050991075984783501724631705368375361109235356046847890570948904091043921432153715186424613268824657627699937192625091944049128188593759563885581686845073117221079411363041951910796076591074649540856692155818014177631693557316537914289690272625185853324464529104097228378483755393013567867135640774434234976760245769577435675337063211033315178023423875422073649915368052007320683599896927543494269131928800965038203834973071024315527605344549782445192571044490175692976891081224096748456786114841410027741315252830584526470671963145008767451086500904439427479393659926398351276298011578929651252234779413623682063314209649407637245310826857059898539677340948003745975698043275805382071769774486552634398769799015479808245923968763734674798528404554633469702453697922987746403726950632122891793534475897238667115106862726422129934030783881778239207719886859922299492638329696717383895401461391928159014220863766664713766539063914948415364883624428514703403269127604373985322137821694367860144141502218082702633238749388919073622542579712319683370328282551100846942634227559227939079282456009932417649924528020927304519105277956617696386871684456730402233219706235082659859928478481059446761893646458188847998839678661571850684291454795529865151097635792078198968281713449986378307912398054702738520921484120026239600453520636697251758071317138698901023147131088443759865334844149792884772978444074126991263593613934473810931510479624523542341460347215544307436752168605572291673765326688754580718929187167770054542921924551888862876604480657139609275643469135454843852540559696633854122506251825910149619091260007838944500479334738795914655857546724411574189179138846765496493658153292338556472133000156372768782957119964514673210721990341662588514847623423307138807335752905825592670935607891274258086119340671692671084463719757076487852391810339108858854477035711170280408009364567173933000992329803931319577177639088932407908556013707581368429885099544230834443564066007815081758837922723476466967902770726056112086843370609326327472130282528805651405121436718469980206108932048912072540494102499066072515913277178262135877169276036731729889611187290529753662256138767760451830070524149458967261836290847140969106852566698500103017247859152117568570321054414995275907330081613621489339582886529899911298695293728520145768627822937611800800369966802247657933470917606124708741977612712325807436662639641577497932039736190553481338108463829931040666290455942968500251242801573653610318991843407717338714875893521819995083755696494164624946009771383424831970203175805313205603901470880057337174383445673993714527911049009331237282065456191396911069377094399821463313483290810062751150704578217819324421207231250612413674690736000776991377081227984981649350045109878374815277020157482456650265365014576347685579054051320023693263594704702578335968321844386351286673392999430243984107408626380750524033927107444621226308821241962146463692044297205501132957981006963146922429592314300740991943853970335681224497526894596598721938938032809831220193302827181204521016001042124820376852435515170191077761714424345236790280298604250807861461243473855860946009540619961845211611402294465023507274471058301416275447087058111103034011597414159490969688489071339610170162095567963453790039802332775730697245075370868894108779251794830194586889180922548781371496329042499321737720625690837878707297259371835685574794099229803620241136876378539226523713975258924167434550175719388213846272753355588851780533910719475086415260857586984449438436887493512956469345683404768219604515727079687792405954350240969615948144874386021443208419526544901369133318890073196810608331866403195091408467542285521452004542471303242062630831078551667850578057183251762636649722275569165632718747496186134879401214291822336129222716274298546711968034868650684735484050269121648808703525165040086349949442779163929225068049427045623250848930741182278506370778811516870499031428339968880351744564331869160505484256156632734238995083276995349404212758826049717964260546340810523902312535687457103466990292121031201050325876730398243219575248169412608343793365071242232066231999424287614707691177684286553680866003944554994560474578591620799513518511104840456246248606610575693227089378058655421284920124038234039809546917164459960470363144311246324425334358278464051456872566567047380327633293344314110605340270398472676381112897847437061590610744477425293521343069284704868988428800135865912117753786327282667026662537583988419087408745227293224485689644467139657078851428362199814106078141804270924925829411891662177346458422780702815416917979942416913542544326703284924248058310686152202066888214309449259589967410117129450324028089359132882765031781330499757010083247456091709058424126485471512801247273484937742054681247294947001210725958743737602868272764348239039580377868141438674332469534176851828356874908449211556127824048409140889613725272030647723408891311743894106730911052975361228206573835608252292448630684221190718790789247535668045252102462853200274572449890672406142311712240427894785470775178722209871794644081233808928886045302510221563067635583555476982368483096332907685301429238824502923762730289591203661267167641141037492319773758962994418045081597949178261970506273556995099672277933433214213446362902768595966060294678981458417859683418960150495646904375836640413831551282378350774166504723286930876063856706815640135644979302180471539456976448091780312702639549993484906478126898481253493928151744739040530909952758576173466970194736285672031378087120480525068695399460579069024766337598385412063946675439264314097785335198114634575804556648806027520836712055193823661661137298349393741269778141517729254636924401664681647847600154346774197868652503535638028714690325956779400333127153184415557821031925520350227299445003119285987986108372177235522017508742042225273492840145284305708572154859867018498455399297918261542777331753701373693580844284514297323855441584407852636867213357629036126101756678452709600820272598248211993986037376040884442468215206982964232298006353677556592908850442552060768654759775367809341611082769894994689537388313569681437966289562229099270185747316527044645521931010744720447152166145454495107009465336572755258561073178237638175626458661393757326372755557318431251195015046071434469959371331715134901699509026961510186452749810487172284528430371314850334710079183425411213365453392687298931865387675144305452267868829919414639768325971988972511310500662533456405030908303212498997191191338772517111512948009739419424260128970804543228850702986411988741385505231860615278208552675950699250937811515055562859155441132490275251250110227028756514102918232567575175131827036767656936181509264975294184293205866519645528402840142585773243049221522932713922851744371632249029924389806488039332573425261220989299647943373713168531685736204303729834764393961129028919650941949745714273544619968149720925949901902529060426031276888073787300036272864719978987468540258075124532963854095376031415197416668819912025287854095938582447971275486393897521121962992675402884750506078238207203634416437281300889605734124871399336839274401745661804842595504511743860819165990238610224312382197003630365604408952355981253640410331280655540618526429205312006416108478877566592143032730945461775446232425948357458629351091025388474023436009150302652012135826858857424487995193818917151142206751585880923818178740952665231329342728974387814596742670450388442857677618381601886653508107512885861823823381991442244781548313224729067856456659330492902256459299835761509351067348619381454723189500194120716168460620528858963769165346234254492116798046998911041957945707682341086907628040477090251694314257705901189879703622952554799496181430900149407022511295977290641859440567815660859048119756251266285321787130643362913905673094456259457891871846038498456060405950266324311414599539409047622961641750688357998819980437785441399537458164019654846607468049679923583054020919160243453561291390732776761524262045362449679916767620632472885618511696817956129432066489942342328524671103780612243749439928379544146024273401986142955505265002640205681039812377802127623727258033473481165162789225827043121217518793996998999371896100168844708335031484087936096067616560628288340124559035708155192953695790434359345372652454943592324955554088494885443487739281656262614852538178447426879876879111385898021882897232881450510191438327269462854813847039080428589218577071391829173781172291857030076665359711835315766108318991016603953644947890845049561458890438778779501244676804023009681284091825255723325182316413021672146781064783892841502279398394416472658640373778863139708801148866410173266224551252338322153623616355771195767598384869404943670114393305369762613060429485200428671864511679054150248357106056549537521366577915295525367186591930558478926527339547211085081744821240268671625235070407450330984152951190495748934384701841379670567782073522470897897185324524680655096584396420048407779013806405239769555562593541707647010639758419895721747336778858600477094153387221053948849795414165768898776621352731902662101539936381326718709065065940010497864028275891113264721884221917284146044257778362606631129234943167564365453258350998061572144737888678437391298394204645986768191269938049756471804882914669354065102793960587670542384896211970917956583324676033421582476889780122528236177468267024963349126894160832120120430963563824292140630946206530190174330953884746846734482054126361485221421619318212246670505801610570731260207696767853225667768806271743744677769767077740674604275099268521443912621193136974925711295152268290830706534257558239400241765040647230908120818743188400553588064209258387794984985785870301574346816542193036547440667289125202371919915466724252849238668464778447536442453170092267485684777451063401522211668521282423855505910747816008995941075561744000146653409769049138763775146525263668291386518708950920701144500212001683835688534942174604780173403674362599014889157422952154126710527557501093771105743165911561892433990071848758530704619737201424868997930584232123028877570640848490642979731984400977451633640920760112127485294187188087696415171075515208729132164495730342402831481225147335619000852330903220608840523789630712075618705517235036165895766794034983977410966647248114218442671488741183228026613207777794694297636731493197398962776647424664977244205571183514222243312434199150357310297768028649357500363305875202684285958188171474112279097246561460248646998721264422133960536240082268575005977293374147297719340904666741246532806133498976283092249873825257958942732814022841631071451491453412841370252560062915063754823481015274804959669653644821642981478238805285123051761882345024223987207963672695706267944894254356541952365606877303385926826969504651011119231198916410214274733377573794848127492148285304339072908720848458975487427932726543474811025460128313146814514575607849406271307557100000753330953617470311157135966281397410830678419822358239624481097107434513308319497164314511213924431045526350715043476964003899631583130956479985047642404108149687943805971607484630868234625342528032975223276144433024490022699670699566863336864710998624480398367636729263592338708470721308067603149441831221351809766329469913091641731865386859936705574440735470350478937904662763806036930257398052763757189600562030082855631747055378406610594566830221359120204809704228973195010144311470832783554825687614149199180665168215998714223846623154854985552957800800649806845744522928926317824260639099997494214763553390351030816652371687775769629863156782756682471389813856549456735375440263982136882984320459027853922795747443215514130741027768003533167105747096135578659999622323285319956424623433833026167417678856205096524549944535854832032088401745248009228602667297920756646754958467723849019279277260976167101221966565512262378453178281919881298215990264092017016922568629128127507241025764287209126579170148929604853863987087102304052650872870250422823834701672978777363306998888148578262028642855136285489623253235277832662711519882334782484653667726444993485753849799964953018413061620846949711964665202475697368673853617035054496088343691622281367976483940170245790450194425213003314310691808264434721443501305328747855803085197110994044444483713499126754291404231144039488300242497654106821985054002755022290967975161314029279940142304435474478123031386407237002872379572720441074554124221188217811484778746472043858131494531046847254139765516807899942625420501226561276737176333054888800183934624435826546503848664296250924420055149033261210312288947285217554611470768171844022630888917813730739564182533971713983417766748679974436007120234309308224912839621369513493837085073914688715421825723070964031192547627067975030921795142066990902563683104071346054179013302012872594956125143786032349125851335193671173286939793317141492709640891882756043203184753850841628931037506635474468348853880070326978432327133685839842993399793300611889815599368073642805555113863418032601679887355448596448403912460496428267619023457771278566785037052566864887425176581456719649709201481648842569408841057164218773289302908820886544972405007350559673477268600269085323593305356020185940368950694592788288739487778454464461455561268641940659571907051593834481291646809061603342312522940289844242083141546282564195734241588347293429356384273038707333233125408984398565428373035803506987728998855542397851689097941287427205561006877063438382305063068829151937524373657697450221926079897508869198960996208329870359919393371402304124582162573906261256668245893039851090128149690630860528516041066420402456413047730761126112730035184906514897140607651563046476741245155804309532631121057331863885236144751063826305080286459977730660057239715643014415575631039803840757199076976426473590842650265930294473749032326528211143210520155884045167605845360434043048292566332247831454696220278778029709220021169023530499457666761071575158950426695518910682402418764372525113939403580940876997733928287855770575890098154172930780951455664114913066387100202782680893340169392468516773654418009756367606520822634774054730545378393027898233242658865984933272420915859620152598463093377566478147646011558393774833281053527643218530861933920985312150574179766933026813070831212922905056153704153418373787645857769183844601238885569911619562028871752378638828156423287944184282321422845886195236503108527352558589792132995726504601861543647037187273255992091718212627825396130570017536096083252102244557804136713804471189068072769358388017133670360821635680660501754844860434385726465783450569599754297213987854424058279522936374954885727011643666274393249224159339238682738659517463644293788167793176218196011631312355370152956749309709972401288100373713561809420850885987816919023805325221840399748464971117856279691023871157979256659282594588442680904367881488616326808639683563947113796142246059628233857504586210398341621301689883127382176166894196320913013518341574028785632390618708631189354621570727033818389692262618938034514243220837458350472137147999308792866291786735254409575380746169161266632097352934876045431281088894970266884266282494941335589801298041543177783353606282672237319015304463114910618694858503783631981900616497670015503107263930034888879674120994570793349670471187422542359019839047173836554883113568951567107853805372203613775460133262000846577092593777622273920685512686582295870241309009496455970550968241217794255020168479848753817462965260428510547757713783869857340080301028921458535160378526465931362733976886227707518079657470795652517274675808817132215782451539104611688838719188171686665036995466186188893146745622635214095517753197800959619206317509280690771440304742831340711040705038131433159043905617814506269857944989377039153338622939156014922702959400124096600693284462300222147404783930306915215695858659669804143640643837193963276259729833714833149775727021314207436372452688967125765510907876962464394623275735542145831895759126721751690858172629491152441267024597585625184985090160318673827202178466168561045421788841990576805923491848700543925254740684061905075214513805300599709622118752831253716177257625199790424017305864346529378664326831257689159456170147670808080270726852520128726280270988159481061058213875054412578289574975591030633671732364513530587765514979593404839408220410356101723214450119848584325377038043913120506095740107218659803415454178842345281952913290957057382738267295760999922719341100616887082807038525828052228628787742930053592166874723117225056293080832079476367175755617076732386320184610388129858987537301566874642867978297585343981611165636070987428135917321085623461971409851888363316227861440628412883312527592453511802201408090000463023758624505206275170679244766930907860747758357299225257797758491734336765792230147508669397543521283785116267394557283377439750925673382043821094180874252138288937328980635700457075690865526191045999800892782352374321444492039360002697414200174751557832453159897635925598584054174922203780825799391437880711384983692348438157793829279142373843992088943422545189509816303879703481438132333906701055814352785330129662412619767864103910111149967567640296384550521078542097118285927912771390145252688662252699660128313555662097787954130535573982368781876122250943151157824309902098641720270058850101969143185963350032251023094460507021959021004084284577843568794231301147162731187258007375081112987552515573566736063869756962251083754244965454262335771928003845125850789387646172334945365272556450039794317538085338023002404749980952057264949867332851537988325897197345591428371715899945863864565986541654397370094735393830731946638830614107691478414602189727773777918692218336525818665575569042343984152186540593689539633641817579829049829122110931120278570369622862321317989459725698604920544784579870072785847308782688493578113102167224119019222458504084781712531834736249483758423037051592147955341875913443199497367978933782980699151057649452006121524491833495638269904867190460837108782016011598001862706854704933037449643636167718702654527697822038586939480604086910674235986493063436242927614079223621595446421623885663331223585401807062089714725033428542686250527301787350192003354661973628032322888806999396850480261058722806498142136829749024602322442637973009351506898809691028097244751800297356320863877065943647664547811526915897299798081194696621896269689391204900711682952060842998985827130583994091441362874041732456775977654831489042746894813640466656771836187639764649535451248088412091011631385786135279002287060902714703830547800808649285839201959943690484144042804583891270449868785744944204199065662159067577626885296924751845559334880137187280703913625380721584538996419759934974908263616829023858056305173597205353792626152411030871696553594764572317949643387787812178866206873230741795185505558932653599363120470130842574866831390815947131840933780137506313479479179809600496784087872828479220016704008197206182885253106802088413550549107189662343145807745250503383249956034016778828471485325982835525308066334724345053415108035757970439154710746964282977168296654965408636019634124319396432598866878240921232809874994470360808333485775371316723721941357491071733869444314347305870396030211529241475548903601379487701627956391617216318095166583563551565953946288116461948300464653310271140044048041179534622700493504106847721674348707506139740115260945962403425772689019025008363893192824517367767021639409999277203169174075658320757639736678990026635645484748768385608462761955571069382717533517317290097574093539679569187179657285388116963887564198141039027632013575980056565717191757630834791798651330745970176159800625619373143040987124766249617465789192398204801482612445446262697524698859151139536649194976785594068829079520542742405900379877437764463811683543377918476785996742362734139385843414383339059924535515021507785996777309011829597796263768081354373197093028177110726976785767244197995028083117301087600308442899588266424224707120344645818598792513905510812561178898585831928357458416610508443652873375818098020752937894962590965861737409914051254327371489324771615555610541875335581647077349585322123025681583982560592830813251002105895609056966953262221581572447484540579234765091703850257129150754538543298649854179708978496960892097074875057591131486795902079877422162455588372366841853535291107106369048551240386627093093414802835600463900961409121723712607921817653950803785875254692608411214435672118124443618225715389644032200157457570771936474805061608576147811099931417867061158980965606568204256083496956706235922248530195527422070420397897619115595605469055286286675053858806682448755890148583975378410487608384237601358553631672332797817339851607596376742585313563975124805866725760421602276901875846357307703240489174043590527313041123382222546513172842295518488064563079957713280016432794746672215436914508121124672062497471303641843094700636239792238842171883332101573395138634280139366978830804139665037831993236408980196712037351179406745101202895340725404060738780852600236726738803431237639782858009928445130910456953059561400248598855863085470881251393692954080696503563685291864394848376535407168199765858064843755804964735667980662601504800253572766663517750434957638591621572206884675153901292227138445191415691503974694743328152862027445417387663471423512416352444430407420717463556181320443015981779685845185308183423635425748245445155859975750644840657978991222989371735589910799922947220803796121077511579296067458602356213397947589948656306849070719397037627977450047242807618412051945660954080244280390897260609185819069836883938376320088304653803610198147405607798546359961335765313560795386894204931327385679190059923812819523907871076369570506165526176537999077842597003992018458792885093251727550489767111402945729937538553838261788922506476166021762286195915858150707695246467872371555243845866144136356895816780824113404543152560483924820693500336189593574183149547879309821959076832070959703958269999326265139463796827230736981024889048912873767124532435972111130580326568519558153105597721483030852624512460433532266499357651098240562144373943850498197110033556335700113057144693514968614156506745750567876665601141493257474527659312159226715853884288392983420787834482430710096812777345975818160026705512130035086276896730216268125043475644474855066513976915541482451480352140728488430243381998170401857322767238150606902282419911722170278404394055018993782849608631878501550706946535788685145075082886676322619036519497472222324990123119707425699951391928633843226048522277368477645885061353947458764101696694783408820841514314435528768046644465842869338074821334107040833734969585995817068556147694864933554884123076183284515017116381248320162306289140835862530235106740815161226267626667451125973288230206525923476156263855516814265340651039747083100897749941113343448476833590359221934556481816085405980249730921182317087205347038533963463057197665128571330492227335394128710461525679949595228223723685485535647321312064879123486247286262683862632045518360515191161121885411129339459747850537513869209833439992623991523808343203372952053642217896458887186217025782909154255665609441501196579089425945363881673205496548245665995313752191559462983351516368919954694586395312363107907699128154839650079526965209047144013462996804805955224661212860801560421851976997762811987505550583429631783499025337078799275471839920211023952820354453137995193929284781604591480034048868526450920348992637069111086881550200275107722098269220293842639704034377603368072519019102415572691786508284031840053974140180312888880618475709907950543861791528834777183389695167304719370214452676471493687037910844965997036784629336111079562978500496328607530474566660266980755917659151013602543029542756981627014397467342385092147187352578505537844711994895079973014742492127622896577256611439016736709716247398459433816162108583034003065512123064992756764606962847721981170428181750017511242889865380301668437623993404264889527761158966559811532558267927416171590503119310477823496279708107621464774393036290070984264423641628678555546264795440804128021200909471269173676017826260801694710066308874085297895587588874374745024435227839817279914920285939850409845577980511839386659258099495266239603149743123735745217020168007111177506275277100724692597924630138494572765068037329223515916758150902481441578541509347060896013987084933028158885337045116449704809430494692073837419180679450477675044632013513595426663259594956157676734680440631405042166753580703378247755087529608142629076890952238445642124985022010722844583546147439192512635350203971886891663066028825920717097508495867434684820334168531075547464680103350026951640455207430861423171006369917207495149817226502409575952967441046825605549600032694972270216407688942050481080839880158671730385458739357825471470029370149373297368021773137122702265103307857370096525075398139740412394948882457694258135865378106961114488431840909155062907434235208450221440543204111114659532170729480701691080966190246890824591065532753003472558286121706743282692567911563974485674063709088120021997202692259131295841800769426414703395998727019835455799462538759130525417231738622457445383466831893046026644731424702543055112820199131523347281819095484441966166637355644549916365760836007283123473933900795811771805620335076156611554057639444118559236927565300145425846375315082836675139192363004856721136605033106112302928695220941929115705703404373768586134050745255396980135760636455784044072221933356946732940797708272006340095309464261941986950623412223151354796334639416768276950837781130735603168780799965398254509477478679433160958635835500162176989197446930570860622091553932088772025301568274735012604354770129252873112982586173438796005973907977274869860386164251970752129685596253357314205981297409159601422802105537635240208785740057861290467676592589671346643662598149025936469084909145777950246541430743708789555445576172245050825677114406094733441740211505772797394824246501736333961515110926437086532275709992123454216545198630128511420507082435534491718460736781674412808035291246022541513507089574496783858621475459794142159031884469525536435031575923702882699096675883394582216600871302053306621438434643934112309899334139656122163746922500391529153110380780276400527396024904281654947954838982807481909547735133363935396970267177351891502424952969121920410772978078161014111169275752166929138389405653077712016600546044270388793337113524133279920057022076580337305243937630840847071431933241189658241603724613105734274953050444535467646569191355653754521224008112001846866842754763919249846387458316172394880877366523635796256019132114533150557154132372993417438937255843865323136931162602097486341630181630052491654930317246347721214835955300881398930938993625467205547694143437120344694655183493460140476498200568722414328395648698763489899434262367253448920550072127242347023811675385601174519237766546829817478114822307740992507734259276854515248101601216668400136213272681489140332623978339527519679053219713003127526996535605342974219279414518693028847967504465134762392212430788660619702386541167023953699535940447913289370302504039765392719905296380850500158397014721253336273282854801657073745212921512017737023088376854293942996646517003444905672360093898503998699161567349648798817478643179642106628648298317170864781592073811882726636484873650811139288588550156172800166681101364511018241798741535044537583342185803159818214164615086500047871817674975788485484703241384869285847476300769484980782643677448958105515208175731526920994987405479352649077384749861348625805774682837549810467938111284974251181949230454810498882315448575854710476843044391113183008018681722972051803694917135727591706777998308286993378399320455834769069080385051440220547037891634047428091233457760757888485200751523231786166785137064297029339011899507264486506633782589720744400490591630510781489111179032938850530068590017089559988987842621570789712629215135811385854456079294911832208652280697633658486348777641561811177455956189735924927135613612268539637153600035960658697159849669311266884835860108576982713683531123963344467284161562581733018134248735948165961090843776084198409509376777552650573237476799740132473181895912299357695691346889449911258493077641164697202977471527325306510649098339375173068866746977992695979571777406082997241346298724091867200745099238904393236484494550152814726210385107012924416409267309621549586792304751866566477590813957090576674213030782476361109999041037348454422771928805454680752918923433499860064214939425589693511121653022589873274507066097857035780202076276832468033490564013084094186557213543956634493580328343406718341996966140441795998318161554596326509938519636581767702661956784231440673496033378313961382980455665787723205038744450725791309005776345978901677675230747555722940563812419110010030645890801868248771225946097717181960761367227546024009023140346771176931312537889068044120361922341230087342395551952185531400082436601102677049879105969453000797806562390413553514002312451674331224936194185920365125072630589069192328097682168417452330381717602872505253460464184469934354886070761207235608584392548588752543511357825317577299563337296776573001160707100312563849772280887063821415396123152981577266502582539161767885948703895369301047946954196101527569050567386474546778811931522808467479530536246525985613641040892242976431774520219396761460569119781468853728727692806890238459777608206388613102908162895283854833432527287077328415514752298986310832802700220495137769733624718688755317948430411559826703862232694729129049710620236304963802257352586093570884678287651557786795357096479709914272335552486758155124383642774648464771763358942721967223305862988239188805236961692121814348056632362664468155156708251019907580129673798628564795767637984397437053144769883148571443377916837922614999105307794038123895363719948044545034960542872551267507341644736552163566887936551478058950774103173318711647143690888283649473962595836869322773690988978370788084849574350168930555401846159484130883128558845057056449313236882878830078841298402587380647963282849758005213885618660344629642468487097325644003473997694312996865865799842747324417877279870752099250320664194588898517389700924969551172151702348738994105286684719210098171085827281876847937284651333862664307402442258111561657578896063696886623984278511442712371937427008844768202911688342068576284118565427287995156869546286412152732103721178773076951846590730970230940449404777090684156648343018333288774074244656444254350193493743251682631427436054995006955164934153566621032280920338038977387049914616454743436388936617699738614655021200317511187085795631307156038870775687149219007493662555790805221037277209232734803837518235541303378142482579580501060851535814535895598835932025822573777115326896628323973047766586544481814777883376293308843332650708840759548385010811260644267418016534738222738055618169878023432547775911830736858868567932431183528466809069042543935547766500872813519784244585456144290366178777026346038346321726698030419846452114128227464065287682090704826288477068901600309547498206454285236898284585974547210980182226089456716547739356359384914943372457731866450885619794905049519163553665294818950395245492696977295246120475613383491859967233704572608053922856997875727693976258468359891177310301816378425502309248756436790557470280688872139934225041531068973976845136282121720060343942301675056740577555300692025865095970842885469935595103205029212390941138973334970650625281577407849673872864716442900442270369550248714408178427682194762873386976867395961768443886742216023138024881782297397440063443910556900495601645475258670509942993818010960161528978575772821256083235732705743484930132680438218487978729574460103909391566074661286592735954338583274082093641634837077687703911934423589724024481491935112443641087289802224543917483646532205397831240123301411839734654643614214639375166721625011974866060936990218636096943229288047671343479077295997190524877863845132152587456854822817931147380734396197801491217339863801724178735082751454001864197478419117547035220244246642006702896024605393553134893514385195670310537501856373394929017971058747674614707673477651957134561002838262964698115027806004463480123917956308095785265971296328203305244208474629897162998113499722600612135905167608129599613586336756159116151351195289325809359242297187831087172142989007715959730742330326747520433551945379444833984757477152709594622930859442409749742607103838241371414583878776206124939363203550328271796015009720437917121995790535274126975533966529379183142628681232649929841715243283569923342188311296058609847610893010563990398789934524153846259317134637950885878148889059374877826597873423863675140187565957213597308591022916167221661278610685291055902760049025676539553240762474293275758182078823309592873267822851905827210588611125412757528252403508508519894378534907551185418689637213683484134643837682154070170419369880162900439790956190094236554036854133730850742087311799210039346047076472426526152586193808735522690536501721966405886258113130899737592775817544655254036968806479649929638247712066467563584137447645362359896867155918452976233614301594844526257646929977314083711559421638442276870385727569749976691794164419127150608091586481781096183376514921467790074573986823994023404539072984420002246659797482862247532779472669529695787621091933444392650466189149384892757956190248912267281288945937403563364610615966246770680788257155796972658792233912412670603751356814714061940706233688502965681624158841238665163282403278388104827500214469520244326342895030382698597844030424985677913110061758082004747415541728607778400932131722571994953581295031968573155852768550018545729636503166330162742521408039226906771730215692965898180253291775275968065853975113650483614860797921298936941096962687269078636000728431697159304415356670423387021208592105201406578914850560336470257678428613953162588715084933658922337221357060847162784628939462297026089170477350636799983501988607407010596382601377572782150090533343044905955659545318024034267371481655808033325440122154243027732891899145813116117210666495093720932160734787378524250585061028615164212497823147921787178523905927493062704743650768942887368829990672898424303087629183045241486862233710490105257665049671210773042570717639696051610391293253614660329162549491688783287397612336558242370577963970993471030711000250468099345311564276697297951737455440870292350401111115490596975187293256433332292658773096538909348446688569233369251616498769143626902054821068970896588531463835462915674040059789288795747404956227762037146600372583127414298415056568766591342591928808570177924592051249367145214363886572074174377017264127121280925204452870976315938979619457693722991425337603649704899166346806510301374942889976134550909800530878417901846082749120704747649375896881777188310511843174576094252130661113908336963398586762717657006119284419351906496909056068266743096926725704503811095386135100185108374967190739575733685717578876771377927805357639894787446361448861294285894071771776818705005649054830438508286920625922412174308094776054642801310326813492829528023397967212559858862135607155231721386469183894309185596908810929532095175353932381978270188054283630308328832348953597258314051623461918693127789774509730280979596224866516411346740263133887615514956110408236968623995179043085566557906063236905146128863374643275963258884642714690956783123937041290302287861775217077233229261559347954990670277757990197699685609423425006372262430916156307355302251975681516865135945129441827887334413693580513756782405372112603377554013218928681499478054351041084603325456031204748189442331299189522341843903037701572271397320460110750011425523483195712069751576500028413713772269338902901684980573455944494883293077788889992694028047296677850859707664592866279406459841917580728845675641499780658364922232168066619492488666932100211268860303308310729504075241366678299821467409482599971843476868096687772772374971418450086626842889963278245100296117610714432794494453513006235271660246192059098412710184948481424927455598110652297333225699020175652782176745707201280969481421347703470660596957048577650562843012134650516694563091119922312563044304463941462083882432698065232414749561894811041071285384966872395144480232702609126136758038058068660515248414431958238200352688689207392629785779911053857140782272855468069069923774349732172182667086176020363346720071840267080623923257979214847340237752793923319016673429474422020465014229912578055881351063824931892423527848342755026125497026980437712255980389644349168698836493650350166017838874211767273662540335289343513501992012145853183757346472417740060436173780824434822750221256054035906399139098211455679676296433367007887668233776534643331887438895145851128247338314092261112398740974505010146507870854700579474765575361510514608277455072029462864445985487852151320406259708809454657437179326718667141273695271607226333614731872480939146846046904825458679451115344864809375722173675233988361492540568655817218927896618472988366239153163343970302407281909900568106950349465389369237609957820999412093688754387788751275995542191482878607332395329862245830146870690667560096207049880109589225713214655858364022635643062859218257765113834774893676128767438614125228125587583746958804627714573566821104221777701327764993877604084158599007346916998831559611816163181892802326274620514947678804473938731040305037125118416555507269597289181136940959749584421214494225053375852327864174713718780243838188170752709102992017755141377573411774809739812254576546713607147510739449967404386501698287482978347936257032219152954365817594546968712467347411924719555184415184013037265960349737845110755867356160323905435789959844409761977869222777464609844176724872908958682693408866745276285800340370147840060102815286861623685135330215088440155542066207236775766719885855404047497190884888845725241328867004568403336331551967787376019647239602781704766659665155966474857541455592353883397398714666358895260662836009310855361345546496661555412956389496557165592856265257190297430753191012616419427087329827574878456467858839944082291719699513405847797000461586960354484117296750267104838360678153452156435116931996142586900466244678996927176566874288868205439300002165924900381968033588630984757800971876878744244981407835538287978562386633485983159879293895740532347694765336628442431164136569339829125862119147749238050678491432906636504905874603449762845177624996762133649925053556252385548563780644083696050873903161076990455275953520297549606841389674878957637754578375426476903210780040226018500719542153568491919811487894405942769355681632283368629214815554716960778449538974280626762277014721189685369981652288997690512760138718764291993407741872093609849982620132476658996061855045782374693567834508729708460832316346341350267080798868050630310672557355832433934467675501108741352771843995134297074048643076570943131613772560573656085842570729838245145544298647379320289617510196320711348329715232850426689739573961032932408104345007453463193523329685681482946904229805166566192686184584132099691422710336818936591917708625558377747463239315311696052331269799663528824695511386665775776575721509968328952990722886398322786411136287972624724005396794890024876949929828617932527742584049503019853312908278118699358532789501812521572867139350084729905455155583917974101736714562999268943840016524694404566355549477088782182968823408719715796544751124850897060932319915635880173505760517482748153017514792503120491602595984174921140544474416612288940002792842424182794658160997696077496458374020897528520596960456204317363126973622544611630666700676459851607274440991601224212388150318317479358614295975432907873211322360735904248204377461583118466613446257906873864031481431902732140829448462672135773619040281518380974544309943750079019917627546916244519489175318602397277188608295104680573880015140801542133249475536729970984517149217864236842288688067138556069707042584674949353242507322347567627486069573769063549645257675739984144220500500125496281358923076042567945944437291349077667220495673772111931119190642964746556942601398708645530404371591694440276183001306995111403979613661685504938240348285859829990392326458320694508876167773808726972909796068268663713778743279279628037722883890849528366546903933311984545748249668296945903994048923463827771311953006660775286254170876734898216434340713494819556737164170181667811924459787134304454640318119394028940689775994963403444449157850884385028518613476438190454904207387403401125456538261499967724587804322984682591918485551365493242270049620489439741927078760133208987687681691165170750307338892236907250640013620566305986167016845244784501619529408780072009137057466098575267803423875821652911949920414534159857957219852263524526181790504760548925796560646289497451242815388326953004686220338360665793838690399472303033968537952736550934021175727294632910415835243622760911607228876162099332750845962652247738013122499286206032948593366428242405807037781397778917901682146094581606215323639181792695614221464912078527283759621725585416049223162015355153667265695533423024645097565376179498523831459017131891869756235013140787605774277851928473364887974891096389627365795354851054165680924912078115138407156833428655205772272471680337813194755981255684995570086022885827391826335591845203860199428861259359505564314114890100159311326653868449999997514817587001826530754584038195957309912962804237077232779939426432848044752440197391502198633475731276310103124411678280000550315638174812181355420401691668154342349327338879547819930077936696194836732115904482706624373754609588872437343978027030258897622446240657712430158036863639384320274642286418189219841875579189644671921603489209355576072443160815973593010807389121050459401436113631275531238135247427430748568292852933890197638209477301140189157631373598793821559682355434957148681848870536018101847859083702785162613209099979828504192297849598866535871624502181390520449989101525898609928697036620313591462546739723136677367291907989827997235946837721087321109671821318416792334256364743852584934976567962690150576611377261325461556286669005862882401858425733127432810096712250894163680198253091094629265773601630252958146200450232134587970660982595299884746994587706101401805478362126417334986254760828019043939185744870840184070130820950749250961948025549050609436098360899937476330225800291044499467492500308555530382440511238865495730677633930728688080224538714487139628347759906901892866043054483196882451255441704410281470449808806293896981939966602451739657663959495669916201828725353299284667633286970215179636643741567152662254259648402026939432250030591531447353563951414612029656023041705392093701820364615325232233615599970419552837166521767632120386263663918690564439274662209589923931453489230919249600032172270825212685983592386951895109140647722024188751716339898833493427439339777011338848429377958778464084296682491583377904891420430164399908709344484510401119571668373350475433914920580427962235845183332907143807592941570188440922593056260753306061598308785660218285984230345083257850095887910470229170208347916270120012616361522872090195099430647623078738271964704219614952668156799738604585682619228630712438668268307637041600943904983419264852233126176138551953104579059646412748920966833495703468874976958885051993146011410639016794242752923272193439323849298023807230088179653753289281080658044695232432088118079171684719156862635164181561751195909273391725941957522350375110032376755043223029993250338786738684610602035486079385938814084563935355917790850214523119074419124273889039122464485456000590284386880170723295688449864399313165085802599080457382070192012464599253730320246825024552412805322367929236952961705453568738964932705260305216591967516548085323338186837509999595918974052819347799357126609436656672901645968188988265455899591211687818270397461810263000318903552839662432598753964414439451567295133603363919115738046613246163180938776920618483862168672792274728899570138776916741912069651638813296238473751102841088678346130991142693259602405406331516221795880965864160049128221572498124668341711350123837305524744374896674640040821542528303976124791911875963552340419705488556801698765807981008343737567641559518661331609721703488781719052934601084590744656067073701025931393634715945504867061728886215399407852669465860900996458123453773634134843390466051146924992019477646034468081903945289911136267653513106958341184032738538813406166803872242508959458266913082926527574149899050585990579890781869442184581797358672538772358297557106386005024846525414762908540684604887277514395041766547068978807469121667394784112655748867598297181539164591112932842512181828647389299885780208038316310910200392231488018024323105162508733403147600613446957768914166755535527620948275765211041940318946492090458317811424287798015388587120352333146086244845684069922667664017689146531723231657872299283974962127129062987187635802962319928931651401792467230754909128545358599679017224303401690891000129533446683538647936373304137352790754808593708091823724541673468793143227375604210572801974897685624485749205502194621009389875025536534921847269509280837682807174121423167220787659393007208467849981650746986945965571228159318696215518756438580610420051684245753570532900700881546032334742131976980077201202832586173717143459909839936656969547465937164278870442647049517992074920693474130460763542945549630716263268515794820297851822337062383854719266854808262087806581838001451350710831067639594132627742841026224189778681576907621484134955207620141282068633909836119892152025990264483106786013799506060233271726422440280293619847349739250997851835493141596157274499877835857095446588446250478226586986361797874246814725565966707438039316323751610580324711291180831511524830734865401103411490234345542812178114638765734227043503886352462238285270282574994027377659228936758593004535802828073765237871052487382198987607622111834632646344161442412975809052803077069214358762012060051261648722151674070776770713882568862429387211717322670866897086296716860995019461475918224697942682017675211752764588136950782078309831552191666497809309727523691098340680005154060125634637054254336340026146583000220985826395544189456233387770874875546348037998439226214512826685736135817550423951688077454181401058429220476282006463533187519320565809200519580061907438451333765011641858907994690823260143389611691282741216002473444772527919838050373852546020653185961126715688716682503717104310658784034419822165518308284503731456908310447870841554901122509697959821063272678429555663123482054060890093749969748062814584690328433148501741124769820907150051530009346671101886973282209534285159702074896563683893306005518454018185688036909540748749109301765278126108749487265507346210437102471290393384451972864083730174277262409124397572376587416213124426331051769159199341064492439228297420246245540640197607070050920528593062802995797753249898145859309178557795344192665394526834069577123908860604134919114592153817403790686423974438431418857896213788031714875440483793885649157533496408711597182621209720124526014274130475490381175685719768969040748241088573412420114478219784093043212283298209193310033056063529904027737299104355316306182238850717607456481846305937511808511111780837126407255640519825747028776688591960460898333555575040857897291510681094811124130992643596397588543105432786324164927575414580052735556512867453994733380599691427138604105367192007341637212307747813923984486713649782797039620395001611548775050834396247135108112901359050939756135840475657297739878328955291125704996755039504922997503786776286773320306758700582134357117530733685854161212966243133643391363370014799264161611314961892594357918399272148080216875039750705811731615253617811896437658358155541202109081215201103216177856098762675123716817074560697071196458715399335679650424420594932763147041364314414827030738844298904343596780835111390087509104374393496780964795079789492817195068527873369287489370737958314915097460763630750705673538234655497745574410027901601023928692696080341150677090908545708113068608208045004603148036533731893109597653912886790961596313748558046151206939033844634540813840267794561956260369161776770168464801616431875971454967693272353856334999722468997135038505038336956587406633105983459197633198196495161928293076055580835568858228843500545716250523225120295847082701191914815982910631689470222025779347159394823367074676318394695657311683380954812157876959531245819237267226511064998586568360762844787088244340760668719692532343575773025887157806592934860009196566974912299082982965518059439987620230599585628476168404486413817073086288363182278760470455999253557040737566305942668223858573874663626387523799983333636686115645860505699965051411736179955969170064596990048264420255689790673724751016966769998501822806249925335261936548724610469275198853127153330668139845628988270393758152565485873865451874545001791304143738002653235907280224263507303394652650746531941006417107022391754496942793480632902993034457844762831320486428285236884312926669260549985736943336021912251238509256023523088454090714825762357432263658369333053443712789354953273904048800007378424080792518326141190634340554674408187558270997911542384251705150426456367063210664644809115681805573787191889636051295098506965081782902016717211267379654158438233448622635366095405556659100941668216873339073800919120042430444920821985725980092995671337781989803287447277965340560062966432076411231280294797603164520516856548765354267315532216460381772362223585967413144497167521455699997702463872017121588811295567299980650229613209746765621272359421144682034436263193385775880334539822417141566428454515750236723664469973230504929292365625267894984709569741904428233303232495620277769344571734897027781917109131190920514862671684968822835209467386030044049807833631298850075990104938388337858830150495433878254587526529839209789090019762806570684366535169520952952945104082457678780763000843222973897355964814617982177961873835419407919940858212373440466286080173059823946679119893074769547638923016124685527012963373362787191849865896448672838196698122572932280613268622401289372881025704172168935990681807595575903486355433117617850732236918736109809652203724801899634734371446984928206128949820599256908302883475776134116832313270666722744614284574624832224415428927043381817961501940774401346917890737304848704778055986251661585483396380526668579492223841314116024137254648094115694587753701483889129157278704727643138673692790227190809404356033581716394117367781154595665884824707597408536797727324226270494850690517858398214013125459738922063176343839238396710597135183946891427496100315100893538783858532775200998260612277696913117464885153090098451306784374061085318799857550789297675977374153603634966407030029821201382554668038404979366051071763736279670655970487903485529190819599523586799030665247121323412019049396366911572666597543361861791116239186937903271938669550447405023206382039026721440372351922905484131265858395338030194217163828118777127376181930000883582507438652247670620997057931033792500118673612481611123165351689582966249059760814044383132814308836047475908961733524761085440786501222615969677511424620474770824489341217405864063946705988967826344111122955347969385712385418189154370357597930223228859445789965939991853835604260327333164867132285695060684384575990115641224180397246146902528616802452187758932288737908657900574849336172903026756210356039112014396716230652877451715642124319046257697089797512846850939126493001883423620062653791480535834760317296271362952822063248774356220103493843863414259784011953907827641387484798464777760702567222348823322739669595084431944312629626027615783401520833243687536353106731101556207112801570431223321219427355457121524169093569165302817681573095384320324720684766996197184070334689560960444026164574676751728990871265424481117185523476258310607538081143139809847749786396481758068379467322218904731295878663547681495116974311725842403424038476423730963277544119387604826637309136144478796921497482771378750501503600639580008327001956792669804158050724042744369072353765319096352931771307894099818107082703495459655122738714201738186095914475397585409963658404039148610081132881672601186807748851317661667583210703903153959692010466146967320200499454347707425074247030310619140213475862664005296325857482912544058225246261912746181711094862052446955635917753077825178047193471956773757578643734286178727070605837050916404040124636381106662162455562311027237967986705429416137111716338616771633506188031302711582962756984712907979817990077039014475380658618755398774822097571123987043821845974585724954930262228980808046056661523981896216413850024556867255410195943164812009604175952772236301329094788748654708357391269777516778504967578769357873378280190093565645033364903078728020422881443341322904632711336072831582743179297141062586413342790286448130292686298817887988057162054076823982362796868050801877015369805877085422023639035559709827869065651695303694714195069113576562786947139712946119124676744499700077018263710168488484546392881452964380626027984829168699213851346378461572589188389658708765089934270084269716489051488256272411573346287849662402982539242442097475740023338099900364083405420499086723493306052646426359138900033635271855721788267041264202535635558503969693868682199507205203342111963612909959105406828982462601702487354310263976806000634426843048201992014594812172167177418486198992767155357545615448423774742875063556295186325479153390746794246338900620226132358667289378782510919257923414421570288903565850843890274898213296558061289756540646353790812049429646238739941668786708214694289963434036143180200679863311417872420790172587994996214462440926395485576059941100459700197201627017845353150923282185748722090348567683329860629337551092376249477380716490742457515473152729878950883757237421696697549174783349297269126998630895334614808643862634617386081989917442236328367110665670308329479040229035392038804477745523814609915164950732533515056765537461827981741582034928017335900197188718099602220158756697625785691379834331066393129592242655819888150298082309248692880151594238599204177189433463060327066842725457947055268556186715731493979853906762937673571673793790220052084523589646937990938814318968167955849380301260381941550815229750038563502767404004828786658257985142225728143079480027551667308475884781883040396466223835595241346435606096532507502842267631531077802089502757634746997127762324736276721394194473268811967173658626358493263750551586626488589666903169411795203269958415018641322244251165404119228269890203804882492639098107942279868231738531886506974139770435504774601890067598116324147527598782908495743764010477387896727625489022372897833724749398078445283972562521461732957789815178771285734926546776874697199148353577179862033547657336795289803930063245349467401397754297058095538769954863846171584407671286130988134419747602412136348601560741062098092088938155182663684988049443566101318794129376070379676886197595440460299883819104275187718878805789780233488905060450659290389806898426870515479973256874931525116475108112437653890165250244945624520340700927203457001129213892935459220435875053394292109007132372204286839047024405108855813802458217162043819817533714206049257561475775200540938511150990472322500682088787207830610918179956639341219656892864666888239057652042172539311859056194861570640587617479878913321973359511823137761625805700645858688980460446801861112778377254014724512006792065083140071942894724377127145307228946350467460108541298311249687422150378582403406081707259362184153086444029407924826621610158668607617255642436576225259232927716112051151963762760712569257676519501200971210561627876368577355514952110589254904212014693847044603262148487607291042704980236348026002075571416615610002012200380641062784690935585491384011290386346716647227800848323032848952682987406601131677998566629063269588005160396332025250572037337720073921465604717699446147868079214660849236170975083717844665760899152638229456641647699012143586078912977799397349097183379204813816214096305556813446328178406870987864991621298279632854926923689779334456428599018116077305012058250051728715108093194857676449284781231866681351399507597418856596848096801630820146132469084459740935702546398049045028726823168879343150538236637917559962486179894068774609391653568496344097060744452719617699035571312079997387541701289668210974800338892860467166125335519501103362964409737560854754129297347418214964718039135832701239731581861919710317281341394592206347945958459866389809317940717386640660534799886357931337951336660725626276538730615376028093323269483822276718721867068371755960766892704518483896961076428808266383226384889643240864514429380892102896641747537425199125490615792664132118477389255787546161867101406409810604900055864218727365781440410179158948334487737969300330589832626500865364865198936257205392959800479797106545257893556002060949690411136558139030652835519526429876838775354496767391167284709765860002991960002116069640545701137883332144975459209314612337166666034834913704022010650663636214251416051749485291894616799654770907935790470741979888053030427422040858133853370865532878321570514558823285068886320284532401878594743358642675203648003799932650175852984369360530315353660237486944065561212900634662989532980537043314163281250026766336044746474187771202499536616950946953944726836867693649303665777477733514687865054411211823271866402203677711666488897856460753308210087946265020504221323771109815882537203928143638808655594826196124676155965720562375052808414192979600313178353130186436423774397488468314898496448225268656760439826039491565356335672235140893962485062030162709790550541398192308695296704658348602007283605676675422049457953388751152705016303634206008326911612278938295911338452365547485087206808100691020032111440069891929722281851459111843048572369428986186539766729101046191027720532425714821768967005478321685027997109533434338680651188142611924557614893797321298417052411163015698719894808665328228901995441246160821992822992539881476229325953690270659482131363365125706273736944514048861802760215677698620930852615000769543855411111192797987033460376763200017446032327916375426879701301739604900196868306857881388816583535208274231018797594855188449012241910524255884363863135078132294999612592598865029538965848761993711914726598073070120032855055552953521980169864042091060015937897845895981560843921763936535523381265777686277097381251310064873323830151574647158594502802645881356810794136657450247243427621707288265635261613832364208388651825494556414137388336456591655825200007267503347917093009384591614401873097449222374024677871614294182488940124978083756976085172072861013005180786661354856909817963273603413132610770595339055420136472132945904936501821246100182119643321449109823285755815315757993935560168013822845220396519390663351118774403216477091231888508303495464477092200261678205979568157678189907502511736600692512485105169729416630899838244126207967167379685595721621544255748341978241166619902301760552582114916722732884901894097471431944680770729908246135733101858524164353043899530035841640079833247199222164819108800010267418191328083879081203959893431803941718677708273285648623479011402854364173250752099660998339276657778881355598559806800392999794864860327780961293490935361187073255823280599019197156855433990131143934017363704549799365517538313641912832650893789424612267756897606206468451750277089172239839785283048702846846567098346103257435245243711762498565865728652208714113424802639157294258436847697388454546913733213388326677835437483573165654240704562062304420065130022387779574306653879686711065732919346849552965258325171402158516596798065916972163715355046519783626192523464174500411796541622830096395114155325817089554713945420016325214911602509258385048548818498177198838204961189276846854797605554869161789435379171606976539552118002276565816162251652796870471043756424104171690027044915851394187581654108646348330139069284247379378046850457932776282671443609032798214414665252837493887446392760047017208512163668984423911884834374488585441769442458686761801138296417640342151004003623647428514816474577351454562776081539668746708074012103368932690096876904937846452946835860612016037815464245789932370759608203574913125809841772601370791141226793051221278307181872543824997864721312074640302600347091795827848766572223122204515681250485796527195907876664837479143890161928645263717571071353741942273168921423719314858585027638644275948021187462488307397025298764942479665425667958039466853852444497575417112515225262201548784293113912397437936607606534363679164622749972857970311459267188324634164962582047593427826503585566071715818302115404524202432321311180244016744834407469136769423646755143293083164548186562337774488338144803104384691076221880592595578428812093582518636351691580746335632264103043304217541354345941671961259222568506188732785247849926323147859791477819627934235519609805935265492644040268467662114010624259235253943289765123493100398912746440969115544907471104364413825417139017022993008566092450367782863239554122663155123254307834080005379391710599857148288109244094314767895803881451480838826800242450602528177725723535091041439793997846995896749131994064261889794100559930639129933774125971912585571031285855104788766762902342585989998639008340927459468440343767852862654816176708914637723471437103002564236659522235166975606552837523955020224585899097491999005248082232538503644054203628020821794824785282958270259126103670417204337921197907680318978191845515704036484338298717485011134543828822247023780417146982087017096315562598246767841090875611612710463325799416654663121406295522836244038242036346178599580749045240582270988150652934040733741818702420869140861946914099055018015502082009066675820046578875891159655295618072516349759919943821573528623037830228313304883192169952771448745717045909252166356985505518725179949650996127432123471332668963713353042565320620804082676587109708697038071032473316937454821840382752290363242070186946278936006052521472436015661123699451112649500080392411099687258141927277515184105895371635174302934990982467510392966196451855300307695296298760342178419195533015263489065864001144708546709116242066085596102964497005163209574567177215618669358497767547375197841196973823543781426272410604542335747851669772761813195892113708003004438193504186241077115967860628881130064760917461615079570305869461223981263899435572286241001117745860577159245813979957303233136341952809682654340551824240900082525644495177193223779554243477137236358341742719950567716703274724685990587739607774694026470169285131756248509329173022140505263544422740542402607737863359341442433906428695355992854061337039234905369336062125891706037996765346474571502031596046300613931389879096375970249119462003554760868065188115060550735210068215309396305914580031928876202319470290314993996480999166349652256850913525401858914215200417275710378069006546114978471719556643025335553205574496798388550377657171056817332233660832356482087349644658205949370782661715912276413949906898194464610071146578914639951246805892622047080666443803515271598006946106688134260617475128636983486419189193160572771847550716416716155894523397756002029818682441219202695349276666271064642363842892929173998409955735628422894011487187455427366472031539243435896321216338173448528763090995629189274842729610874870323753035258953541303756964287946439464294348456802486270353273460964260225559274152741895910160747134886784504758103341737668785589043999480992865516203062203058811530511770469618638866225907140859275183395244152965729430305293390071307725207730721412156013223617464096953582982923815998886062797530720805119720820143907447130340930326183322998741796907670438959400883384129267520949417930628516149250612489406316113508759503667153363911377451983424890876467228327910855377594619192237789985515572192960255572340283511622998797926347489983162554010299344611422528912997129375085639487033921662664461799851968003661502750131558766877775091780544867971688414846857859018767642349337682517970299776445021675466370249652210433856856908653807164022862255831428762125951885037391911759724271437283592879532294913661382363982745090960976896112023396342202809777066005406862316273476419283637052965750506754075541737966521560222663859360414145404065600365167233427685429281791241877779617250267432034955116834844332842083778152050533698057876641357109075874717212028678312142462061765391807841646139510128451001907503557835643569854099081342935946389311697389068711851131704861191470407635942229564847903747832742476502697087568522877474035473604280893661389473726887930954566576640175425022554825856667655151487132070891157475098694099356463176873309777464423869723388774486376118707881910203422502883522702637573288157266131988245618546008019655783995597985033245672798855047310845884354321916871292428808063222172528052334595994693516332037743063212481054762805162212556179154505197655370761638548003098378074614206926864644503479514297704635962776323984771096272677161817194721753781338515691170992044625938259107574179961708112244322331367407798950084094341576290404772006033352532434072961436124329551758719239039207625805773174595750852077780965093884799188227462007416957323061725873424606201125645632577907605664737946519978611486560097990793246841520978830717692209491619977003860586996078526779471843375974093759350488023748510002753414222337110235766937619428432358371315106080518510282157177386316494854051406398311303703138513671177776565827054436342492217717959565436088256444179757004356003807321905741093044634517156905847824666241095020891818570612672357154304528719817260758039886695905690452418494353409350323317663113350192037753363179628275946540248499667414887036177538977840361425289969869672735736536994973587948184111956199635132671476659601988266713820493711024087131896017428930419516813461842992495297841233078166717437518155978440917735856752102132928276788035766849159833032517161043232958613309125234413424479753322443121057670169472035151732299952552013201013267520587577117888172702065480288503991440737756007218212941824828241786197352153771211427459149461234121200209505487506369034518242541320106496252908685892889222622791391651755145922421554009357786748769370432972660273872753508328648742851332421182358402582155554968302331245284578038394672684236725694977626492760189576183544824086220000308316593764837576920469123801060705543730769718449181389528059720803844191684872074306502573643866792864788443994161602377706295355161673737469265116140297561337835747068690705382045914239941737459675377386857313965721854644184014123676727980444398972308338330557289830809784263231849605155731874895217837698161790946483415897655015509421249383764205442007398530787281179680437120014605573397650421688118216429944512290933533848611281967484332248744262371177352319544586026427459132569700200106996942089835230999471192407187164798772423564656815576610014767409868974266022558873264358687380273140429048155073710281066619279749503595998584263110423112534793831698504795525715002996158774091488526548586201371530284511626142360605185602365779264212371394536467846907411328141164418359940445149360899220907908252716976600487225648709910766295709541040682822549812923388527966449019859555087511711631241154460152489751080374205304234843389714244176299129203923907957342472030480984260394751071655547657222089771638650298238627736316152879745755514786186205893387685152973918330539038094895887416359774461473734246581286369488796941454501701915072572303076110445551443378052447074561654263628935631009564080618378553111104234332914936908615153783995076797687290041364079279287088845785365612637239640448139145326358212315678901123971128230054171055753151566516039382132659731309407890721636308038577642992965212519824625212132162136506151142802781970234643058268090980963484363601778671905468741929100849474529694796040295698599025613241238298417106243756538871978152066332419403963706845416047309137611673094221303525628736306130848039920239349655087870732191026515200551748138053388728837094095345179593608776840545430071081871117202262197296827517814992859739192005210125074536455560910887694556336874993230266044679640406523976885882900105503637270396469698715509073749942968676925472928744186753361896767148778148048921347180297861267589710060175737902763342402555736267649238107510948031738738832547500723299423985074159295987758668150288510784839207113753511687634050115045223037249517590663310563837398344226816710314671340125498169368235082073962237304524785896848541889884704678255387867627194396687375501311841303778394073044254207436582202745876564111951303311283021741382878227544326050181593438697415663179951852106815084378845259532865321177103637120683799755576530359862660433034521493024770906630778936745681596926828922451201116921297325440761950470804363643143609401171569162983324434097104938972148883102064402055099939265803567411942414726226309515488812161862229064234781147173922513776293054914279237210005068091729828750662185826907720512934051154783534355051673877451334643302234262616879599252953978330967242295357446825209280888763524645192792797607178263456783231544151147627157783998186315437125281129367370220586503567449547646259610216342895645762725358182906751453875852677130617501617946470476124027027269047883617907088803710834685815055256546580922829601902048597860936698353324101062709001194791201885277374654569165198263769615020491976097383999072723240864839233415269550740555625076309233351709136089522489046166532053588148712522422855137872090451491324198072909181199344771038701624919953238732712399835828135373702170948053316735013887013413043301698362488260008100547256902483670015503200956277956197743592775705136511555625020021599686192609963371155962826005994684858349114052566244085770566563270949642190964565966749362779986899026757742321588175915412047411757485974357408166865351560796308943495650249035455713983885788259450194268319142890304074372326635649285496842950124191045662356486404644416593194223633663203216448572958505531543623429101710143415419915695241293903934652776458256132983447140846502002155999564356227961425465853499675741091589435698021892977779129481423418015300377933970432770960295049353803510161094502544637188081762520019817562546762070378231402032268092179947286256284663167882757335509204095515829692459947804565405869413087108714036567617219297524212991994858557262495188819047900224915761106668064397475889669410837175908634654783906612947287555124768327276113872256157298854928126308882021826488849355005445535476444780540707602502974186805066464711094613852918250425828499266265258741782824543402889245606085130146970172074204991033144268081271964153250901231851431256679490628989893135983926973137762141052944207088307139978265469350853738836904997183176533550907148846497060618400453927945776922071380540072980864174103773940765209081982362877346776025559913095483073199712871066148761863989956513491065316946453609841950945117993329476815554649823180526804206383686116500696211466117739273480415498544656906970400911957282070325859017546500696565163921525610177519727596115499489999638881606556688841589832043972427934449737760304261651736656132381208032513351317401220727106222033478080784747616193178417072290625304161746557738867135922922874805704163133952071930914522465938531102380460511881526824166026030020294677381047757064595400629352978696569100898692913038336832741782983121603745916346626611936405780841033074036308584663793855225956292376743979922408934968994124282514982910394174365444437436155060182975543691508195633823617657914889399394643691002044269968026067366500910905519108098865322149721486047265112204617759587537866981769679555824627759295196207895215099488357596146823044330728843661352683293291842490749785064383062459947026540976469416265724011435461343438968722458128200669698700088549743110683163650465180982251759572800501583945922082537638535221479690001036500482657877590879287591218045906335684992638460312310238364508278870948997294834224045273036177143224844603047515210640429344064649796463664337842507614156758157331690404767515375360992242857378900380536841064203459452581005541476340699078389906645514805659411929559902954296279330863485433075811904658796198626627999388529371098149211345728224966765932394404999355350351952769235737417814784694803808846119776997638605429588300509149942435833147123502122068352794916911851870171298636231929261225465625141951227685520276582842055219955833112426566665826217800075446355848603406574744396030235672974090406389517982661752101741072261709262887208523750171159661356807199356224015872694265371179146715062306443949899423570199750486551452314818768155167253634860778113109082238659284305175928006234101339338615443188728263109859642765988137586718077469276867353395871492919101932920205835676174811343239298425293148435039023235326493988823518184381964441729253947247765189024581820433503594357982172713047794372196787736115057877660705414202255113846719535525383905196187964727503421759780930022919927238257557118338354525782828560260822801708792196071918605355405476291341974893417162740658793231985191079258617522144524251751202908441381542487443098864326467014296687703281328231288057418393146140270758189587408563423667934615547692794344171749213609402223514224105074493089044305103572240332515800844332793860089214004958851122367559168523655405184304005890087601987622455343768003225268206909970614830125921109024467374182727292251396059268438669901099765365156783482464270589738067401799300098364237964250582349936317922056748640393056732959820630227070411643624315208557919414182591265040465371165747525071459841892486740879250562936961340943614779000423872868481668908804598993621231977446374378076067006096522564728319106408150421519383578767497815879235531662581217949491318632949413508421688327903963172755245336405137496765717691164506451159452238270779798626614526476052258958913045949061783444392289291592068700241398199598658309069543372334750507954998614495740107975942967087126675237020755050435115583847354618245942829683564435680052433661560296996742464016489685840092139257868161250036235792878953389760889264881119817724517140632981120422492808887676783538944345255727390914280046137596279710339539065484772048126976554911947474639702302483555718710509201250557411394718075010959703303436019452685180665604138534397133744665263119856507710200661147909563607086645113407860764209816854642286486235715066819777919902949102571499124712894095024629535129853073230023153504492798641015094130605073019564545472976080847502033670975093207976391982000108477853938130556792587009360723398423588688231027966956771470052743468395961445483139165823320753320712468118458074652095927251840529334496972926582741571279035847392668053815291762964117596310633594024776513456937470270290124385766012560846200717907102422778697831443329591487087567052339029061115022652024460915910302516624564745350803421862389685037224692076288962398808649954084226499884423785252572433209224849516420306892069824804025503372630027495884695575569041468641682197118397519176797106656107459264485008826109490062698216116184806872146636891491023984241392515110861831437844915257117259097608759586064024181192267476281037284250185954065695974282395180325321652233119117286363714650857586201720206388936804600484044748349814281584032236604769891930900523100052956527003093189329847965309601087595719583906635075263768341689069036966667805521611681998580527625076848379987213613392132137002961742599487642831085117405300415118009702666912841259532512081949056316805534930400864179968074564235517362329208772136538038541835929345684078105586065391410425727486899516881773406492264303828240539140458270828642341141354139054764917240030802172746659136482660584410541462078066992548982213171127456926057060453401478174486042744482090097383138204317416986488975380199690299696130284201226434523926899845259546536686565883097633207667400657113759429055760663557125940955000170895343215241070977390827316509158614370256989645511768896412813227911549968623426891041030384012960304985708598454232271597151301383563069764891549739983348592996138416331029470689144782542333149944498130210758854904114295505241227290035667329128947111571300092834618017598894887591513041843346395144072109590155431071161339183589227652664964132957075460618927419954785802373254127955780156462048000570253930390093782346047504551188800738903405891528702312271387162192201144670513170207887084872661561992792039631249792321978650123956654942961815752951719545163475831361321868728059931688832622035450316752306207199145748658547932758736498935766652126190480463095559334624970869571799221708805749010510853136153527767116567762060194756554175290055288685188082814703107631684047012726592105015459454318223647793478569903464160831406920946913577866503717458543698642546647677942354051898459270853332015555257185845158394242457626244856281628472442322291912996657815797491975850603846278338790945619699869560635727244654743915796798677987450836710887965800321888517569151305712374657300108901216409138746844509879165937089828531592495220352819021250163323891223959426120548493838221890191243222043009691668320762310190299294285860252301788361330998622840332275043922230840788302963583614973384908678323594404322453489622674126176026833150983720102217359935626974912910753678721001876855431400218657442693179357887200302451848541409077426007552634563870762662691065451722819478671486118284618922502014756438381181010500092576033605724329401397313182892246294066289651766697070883305341936403161656261310038796892126525011495918322989269975017795060792320179678216901149970070473802986097654100902373463776799548278064726229971265090842920081902834724393753558507654267183257150525573292631888182441483062574800458518898022937805276336670024171576076269954469804645762423356626817962111537294229784315701931822729136701943663460071201964668711112504831167445699397889880232517336193979736731611931207593678231981377481877749623167141974864182960745089185347187344278049913748480381119194468566845223061173672964404109445509177183524994895079460528947936849052521507774814590687956547275578817407577339248785380973959291715198350300782575920245857798603252954159087580497976438384983175185568447755574514994157021669284926743802808295487804949586444835744456438313994831353961806734076645126840966548613282714829625035026810820738259218574583037342347046126927985374099616831594197019211260547965033499404638051444910432785877008090944623370868669316053769244170141210712642418903948163806703266480634660855086624747203718759560691626475807893526391401757680578711774734424633718268063247655198421230521085335026266083225814989103823847785796414650985981519031380666004401633471666561837030545721669656418142189698878000758743980843080820582921476138879184822379467679200040509116592218482520561638391311481654438479060879060656935696974775136361476892357693297883022555802188500541476117901086556386432101853057511083354630329311432035302336384695503003349093273032403585611948517838182272951674136639693018200476049304991366562084418243555129439612659839374333422177979734267387960874294066350557754236641544617548181880272919264727070138212634185179647927654959952207405282927700941501867159268369123001487567908266220467885468659565071362693356573007417539850414075358944008741962728768761378817947711652182832538114290285439150197177710639121758337008089651583651969719202822673331673831256908469012747660870228432795188532336935233943282375508951343659401077010697110091865318262446622641421701326000516442666123537202324586148914850854152958236706547099273534393170384814897128735797493855737883958787543837660051049166427613892291956319698663169456773493795880487105956747121785169595236735538489318585419538539949313401292103636548811910055745549325057567101917314645359506095441621291566187388391936709415439204364858963201929512902519816296664862750764935527082477565696110460760303991444719992747099776001414987811393903185011675036172675319124072014296482288062596565607433054383755346262233849573450465667388696024337725929504084827523334822688796888353229896102331303429499175547821961827415276344550224587997881045118435410089170774579396173619139103885312003900216811630019565435742777990469150612806344031774330240751209234424280296580448886378494246976116655275782645695491746062762691821147283022847619215030940187256739604199606580463019668141955037343417896646490632365927909015980008030282129082609783682887941015631702117732303603009465502976911080511865830529243548630846521562918646800034639598818649092924250426556705118075801954060384519900535559625943666579296646455269894906790845744988313684454917160095930186485064338338170519689838295628585836632977554046365724217303454244550855968717126816966619771714027971837867049669576651881279782437840313382488842655348578741626064217208836514350331111486736012157655412189541477523817117922022667237988769400290466167762541112807214206149303379669274315647518995439518369952221799747272273237702711288278369986534891752778238469098957966780322314075708726881116370670300629342769686161771790047330655348445547916962539248339359087386736155082368415924103308477360477303864107226575569455685947861550006429567989780690853058686206248522824840936529611124109163988889293810465009178575985344796570059070117371367365240327056901788691623343244689199880161748207822919370678389672212572295343837305180388779532423486337506882440956227836110590037933641792609005181355211297957787893892196643076574812971749387161629328667863823810693348802829290202565439178163077619653137137338102250488746904024161814053219472943468921455920988737231345570644675590644221743612247360420751105126444179851164116964419561907683223702202472096195742936994597143450264817734372445392542465155360992520006348792562855992888468109031241762673180929810750772028146328783641154847637625631237224352661159723289254948146342488683163854220403912609812653397780575194631606378607797821119464941129589989526414658053867613899057854973245363490189717319410325030609477357704394179179245456325553074413583144970160305070946726499130245034025148913238793547526225354739941801001088136432470525012582778928461972725219169688071358751151415200492447932510337189204515355621471558096692979238173447014442008950658786605634058528977351344901592162881225036806383500966080557009229044629702930391456935256794416656186143509815090973685177001854500805953166773517811742463825900604309365563550760382567973927678713868949154935347740356615631608768161565093392584896311326960124175457610563605839846901494010150817644195193227363211113390851793519338278872354300176811842112761450944860491707410849149232078669954655339425507062923037879993361390394808204463055114958543729459189265067192909657215274339440611204763720830233080224773116165175785097793069274531756303634646859703710334406127263151536991930725582297583568250115779524157528047541414800610959907455769778813818665362104277297051772748150426084069094609544516377356293096923379014322311430754553082898256980500997215757153759426566309122076145688379620544654342781428478206197419732007924831803170937196680668442918700495982876720392652963441843177962670625722737093286528166312993286308827259955852091278782565924482128416666021683700797347978228498869622310388504146733189949122875392055095401557648873996289767535725082278518289148199804799695371712436206569602366586343333421703526552814339281941335425803886321640003448715958190412425545462900570466182633112390591434267620097357371564730112407545485967457677917048835339749070843053482395774266750766565132501170572623825745502823655730395628857511951613038333791462895270037039124111319899655066863600619762071543237028991671042895837744928416146710608076819410500582798279437353757776433848568575686019329722957929825421718696909097048190539901182830212819981288118826455646005273788114251120685647420131845526263588402134914436111881236412745052713603480964045456501101831698136562330748723984547930491805104957583017291980480430529382202296429431844180279294992756549284704273634147865209154293057680947653036522383405658530178037282872114871459303187031944344443002696684602451292540075759651398448323513369530549194649889342881070331018273164029274445597542953618814419492319058828888381039580295677940269915141419816435433779851655525458979215613389597644256708003127579922033834280656231962997462839952696261487679787772157805962241845559368198936212979263896988818529283021650639317364284992126971041326821678266880118247467569526881930705507968558085061141857296714701371282544815586499875938371128583828703415700035147657059504291447627341160240974561784556442645850248774990880353758858543050900336295691020015438542048690926334952618268707525039034692373313218357648998670219959363555301051499643790147999130260679910244492817062340291503416704645389205437542445110162662090708341724241556144273134363137923373290512076791275870040032147139875245319995969651127298011317942865884570922626061878750822550559151973469207580720245647317703955579653711967694704605611403645288938785051078026616153067154145851245771596414756922643498314267233190296142738470437237795220042172096617169837996717457381896703847720478933697561388964709262706642113001870250554509034463896954025285449830666370374944990880591579688493813506577602775831878056450930188723170022333896708106726627116434124094016135615019944370814573869294956025716457293490237347079552269985525699828380472983801404147790526383303882637492313335069088769317107733110243602113889825318128553245971287551461961553114684633816475787710942952521280800343265289933884926179935645074060254114740401713300253965068818269174809381047942381082477796580158278740340588323928628779188102052179594724061035750292447600473458167978669457529336607637206735384408925845081354505004709900574493440277614869427960369126335823326824787255407463906329119772448344160318761219259914540693670833216895725761354244567568497128777973044429748586773554817098573864206175939320623397940269276600402674016551705610940341923541002537482285258080813720469509733057603254377969716646178512323278268812738208740133307197681964522470176227773541782174995123483127771811046895235959687607719419489331204840976051888740495283497271042899798726091147250771359526489569427239239420797692494377862870681653001139578634037740065431743619367386387292259966877641954932923975075556574535960571772167784579999222027852463866629489611578559514715915728599518007730242754123950670132626323989938420865048638639286033053797779116240289715787147973752552689232488122725578838972804414908711991947922392463082911834834897659342080652874626905816494040202481551745361683158073270223845931441896856117937038908296912275563935709990840081959226527841389954410565313641080794879501887512420982250198181219970253603842103005142015580482091523120947674437186572353444999180101227141189377192725170575758682923668485899532571970474643632910995304851730553521863536700293139792792928974313327447589630215785487762502555360216464778476194037780852106065630412815624662316667827448735227450630195657324459706714214823556538542616314832823271715941992074490505934967742713087471445011696934527071909505834669050400022246419453096608484741811429708129514365916825006919490110911093760090440814721676806217893194230009176799772036671124002601440073038682627186534168820049005794971285468916703895316637286301647371547922490659188639019448357647754983359262703811637681346436402021813915973951976782788330852609332975086356212531891657989206824461206317961044130015299766879640793800215399691674093001065430797712335191910739485761439058116599188643573096382899754161034379737351599456909147777652506769113858093375417654877100129610309069675927735550159321179551828443105800976497723932914493120361860272450030492187051954886981727720793266207993170257234800097456380542927291533557565524295655703402179044799888014114039484317017313664561026897410604210981205584510901993718473305678038177374505776512884593946614622304929224844487583482291828257359183322939893055384026581692615427862068043780347247176702108459789197962497565473457639881678640279995879774595222527316482346247305343639910972835125976998883340829862053365039800351380122096723339228283604982203690644064280679635998608706143899546946928672937115828066534440617992663878265753522313874539843447145044208850186891889761467490967344113483245147359610587384443334666646709768800001579956529725057599756826160380035422416795087396782001357674919607253656007612833732354612348769526401955638222492607563117409487931542099559545298393084737422351176238873264995233728114644670354679258257651891716157080479099413719724722894313017862452404237149207058586131992532919806748424862372715820103055079309421438524817711884079102011758755514593329379344092029572490361601922392478574891947313843993972271006098424914952573025504240047176365557654365030217383718697829058922181287064401503900881277617131846222499269539646526405813005270047238239630910827439290303328036168003281019444918297667191548345662935993300567414009264549058472404367159620160029875194453941096707796797394156377812418207443694565628022208034195489443771772613889458916981243967350821586068103645294258881919271646126496108051579035085606435927156305547247594650368516511001636283384456419084739936784572681073197058940871865994580923382433352694758321744281599207157479913380654241571205469195845030620107887412671500105395109687094183428677650252115870140258755800419355325343965407309199826741898548588720644182210227846701028990450721267354727928468336978876352995542504493840557097500241036474134454356197069219897280515177338361152356531554847950764666421334407174490636895579410037865657146099498112838394805968008208615130116856073624999158388126718491549772685389580495722715202517906286351036961272481185953087408246742052266651360845144655776314351484895834541231334265290600770311928690656310788922328323738676702154501193794296169185135444997087699166654890705134809386509660419374474726727261925444545877275869441180433617255734830203203041744868610834460748089645432406106225213410629762533496111693388203297623031616402045346089077963213713832699394779545293024720977407386266354572280622304571811172914515153383701113289659705914628721671717744781319515574768456297027324714691446923463018258572956089053598570484097342400707091323400232547769322970983120742712483238169241982519321841198010573030817716254128323154394227735350363383679979054426069542815068927821828255748488275465715049756225490566172773344804376703187464149094078986669540539366508187616125026147594870597858198279256548894543685798351255436708183052146717278505572440963102639508487618813652550906680470664953468142769865769381433396080947352230889861833616951817543350604893127198449855292245026769862075623421448406520084515338114202948918592162579407345544778611735142977131665052555290658920959809725463312363840946199665693106016183364318431085909262457802154104502926875393955440916252617465185489811096134314122946455503240069281218010360911263525966546771307089913111057404450877000210201017002611877486083465069319737222455865146993361409211259538817649191126205264357378410538902265615049477766231423966159563174230644693054491156455628227086476768056281933806927466334540748209066201448330086781400872855406478383146821974412503496183930341276872280903794412094876511216874490472731962127126620776227898091865759311164530497767386588553549692662093019614364423587991667091576082450460722853291690389540825332979632975166234168312744342379562640604418111964917258628636161729446251289767603779595009930204273143507949822622884563592310033587977746350485035598535542496881165429377331576783748071314202200926264579499365725024164665888936166302970322193548815287341800032504574037857368969558627768049631327843688676387573048434196689966386327648828322855441751214653043924414882074177137435310236778726220689974913103985250155672122516661362436399429562872952789719963404060517044081454273290435750932664581808016150875296928615506250012102502845838321151850594418936230426314135455132081398214438196801121219787830192789867273330445117110558377253395486005177287497803172641770174787071984945704486896659552473158218493872822633891548082805647949918501049158785278368454913158587525427503290290499428006712513197805622128117346507880380049233371806858713113092967889433530789546923900160605208171495069527059033705641473074455198552349519580194206436379573010094011258394590026129248382949066239144095935230387157995803852195976704952031130413492386219295874738199536644690287019805564563639101099221669367605898096663313412372742487753894125741590847133949242601120342066656139385079212248543552932171875310629862831063466458131142623297830167911227385417846112191412845726531941907309094233805449147711644287892420217953567955742549744757410937120942373828407515018014703957979704120928639565793451662397261428294199393905140852239860997323611674070026191636641874254266295003272567231853574174499993216605804758063054318450060156074485452805383090289850524941094783940843399322544263925842490551223347062371564226510063097980752074329419589675430334486692275393932094125851440417637497614500568644827021922827959517197236417917289459526239946142635629896611267654756744668284432527830061856472599749064498764692758935919198952168215200766356600359254392559908654712467153201092363145090696573976755501386387467842237981681205386431620817472511817614979706202256261206269129267690105831099233408735244775049438792532161099815785610073159984140582908821115143636149248318807536618591031360648851749127306848198906963148743816986717688846925638716570127259172631584553094238124681512239114419722776514373615914290592744587695225958113373722588874045193047722914810464759366299413835069714462239948387979137597092350312438653301981928580929649437265632203672572952709305675239573678423162371957405249237807435859607298547106135955398393060697401552539383593277093953234353957492234726433032128073893924121284898090627352143277366262309318129355609937578200075911943706778910082599939400699285922972794257428662084082581516570395143307840322338746734174419483585920343029516603103873694065975367829904875732616895221235238100855450550930050676962830094894810102010404988784020493412542943944333282189460381878922159779419023755796125745493816356829092223087456862392472154456484037137467739179326055569356960020983311686099201514196579086752699859770869462160069115198017251653922527980048644974194089459091347345007468807456206026839582564615782918663797360047049688652541643985049662148086927062617310861484745619615247774039645755335447645811407654539078792142504252588156576591363363016249777213151801047660372530693743041508453545197185987378731667285047434662881502795854632523028598493048122504791635945065990383573833040561732430844203385259443025825115527815487128004977878132968425645948383538841830183811081378852323537341662577797138351655595255727034627987443480609633490166597577951862488105700471317655064499368766965745136753042467956617481470284929537056909533613628947403783325387600282551544252470226375335360594745243175955745767042618467182646561653342390537451619794405362082314573229886285529072262081299696114606834755314462589838917041732385222446603431540244618494759741179567988456876071960998409588455828742114552215804450903614318392016033798195921017548861445994071228919363737896123026040307757886195678630669794879373767988779587268559305212248716270489107599937515067949621781828985288934030243753684067348171428660085476899281509039028079660516122954210155484022444501170535370359991680084093711565415834798807558759898597853036667965766455511996284844880339446350031744966148141850540877402984525574295854246199846848127388966899999744715504976179488078558998135540941881951253853014000215609664472282524312533266927397767248517511010948928661456374982669532489676801110736198980313603941499382745425891724079741461135594980900709427036854177069805653861791737929614517727703821638423979478788277862814114980656737121088339998767929743613167378911963841391239551953849457050204152536616123148139724502291289845138967291589233683980483780190430022457754740760498377902890051707306063169327112669416742788178343176054869880174488801320648973015133136552366682190140852587563952941249497727051862347152166496713211389002505815679333121738653481909782000176431480367566140843815644078104907804721613562181440190608202610064220613489648416094312781006084076581883178711791524628921354486457547870581159900357937953431734030272058487145877757426681823527456702614910471990346778209403167877366758898041984321575765306903717002181770535715867275394945438044637690294722810413749291927348981196042721275866741485940864026378320500713267657264729893034847472161280880198045512406471196274281751299933729220422081519792541857484403586319667972526962770929985258302005875826599934113319897042636497821695421342218875207146880494186001087436532671459441238608746192532183201206658433760178510651607258616392288805837101635975505392171451744343350851614711206461286521997472941101552707919183289571775227715656284247051334867611865701975592410715212428266892365400769615062995554559954493736426379199577861346293001610276662335840950617494077089404076401491344246439835828727772884895313616793826547848432276664897960380919126480814600201510450484926465904288662717740042109161339838048579652657060280064874593595927108435595317931949816216340333103798619580558764629239035235240400173230010959252416891751645788282116005618061964799697970122202060594255810493295937834471108326688459356070756731889359629991511553000275403179270767389716566553493707274381336929646475133102625185452789073671881443447602475515212905778296146701327695161275509649790594554644301575785010213419521781102917302379365000218086709661409894252890158402419831516952634545089811474639813713138629861693882258087869985010644400949172096947821399457045768040619736567981278782508885448544881855280248357520393048962731698826874781526190806577062361107450366766646474156997163573108954391268947345092552414279139621862316174590897460924852640663924923268044956494871405441164547395479279727536868764741086248154975271731985641513911257367184389682849480309320137574701484323613799846397339487184476627911516717516984027902535135652990629376063942758366088078815601078760873300123088693410705633039117000753588521939007207466602370221620671787100441240611891991917643507523429929142373939767359361531588888514700833082079592057122221481979175175571786967399995459803748283811744231300279284804608055916774625451268953289119504160818805213514809453812424282965554908614807937698502549516870871290773316789017957378287059797787640930501249714253331182745692666498925089754899958379919703075756091755707660942273239896802932523779731764726868451051836327357885144862069515652944897240931656633705626555114796569629526775191593347964569540472537023086308923807039257962666714577676237629712416273904027394998714207872685642346586493112707308315348907948103768998895606683385227147764200621466719119929867335676111853089863086262617317658073157660982840576678767418469907652853429103351447732745607172878498893140371384820157443850431270816539119000578048117857261560887404004412777274617425323218578426963043268045166852372138212155052682161677977410237328819755905141510287016403439931725068317434284214651124512975725272330164713364988892622418262961319623144768847927649306386837163905118307843338363936209206217780078997210251621055503976461606714116752906457659551410569012866796872924425528296279084652551494093372918621765061135010624573532675967289995713583772075843820067992084699527035923506428262942584588474033958984611255039869547230562054346500979163955710278242946304540659574181436138194139229084665833342694659916532475435888938944598596150803573442856992853517432733419359887486063680980869538191586363266006603433276581246575111323760286998021664734421149930440997928482147017381626271223569933060687486263061999783414208522252940853776761213470561069076548674410849122797289950369805325715759128198631175160929072083046509924616686558028886602822257343444329728882631130375184188316148730756679094422009050247365591704151876474235928430739102238733559332910442439965872251929247810633799723539476077455924336876913988531592233338292786025227305759294026513561657113962622603586743620585857290620029382104469580417868744768857427431535384089637383198307239030170560810915120354385432519387410399145515174576070505583790097711735269382109735798839875552925745139248740234824479386635943065753455997818742667829118295748563397280376782633331475245093859380943486788429684878769456957784113351929792073851196580728823422455318615540625651340350978369206256248152975164036577207621374517675971248728629543412908169194317394547312867105845186264435720566831630156787318008358888761630079596683937115065818440536359902923444549897088139016041471014394559368512940457782574300327625412921223165107286980522359197291557808683763614427208199413460924779985897374882581504110425703625191040674042146709191792301210102975537187519743448042055488467843518108352145621068868157109014437853639454027773172527751667368580493090281401026253680407828157512949324172705162537056466213962385576834963676241685705336157762941975615379847878749236602556580236089501400363981240013848973866999476518532532755934332284025322001827037804796210505104650542497827216420137586650747242069339016864428517132306907416232638007811288854288967986644759889332891119327354234883034835477835930221396886277054727069610089560096326412985606918381300947553586049018984018943258038336899673259491737645293116052825649040321184409094179606366004831032775356506323696706373258252730530543857438555443746295653160071815414972976432980288015040651137031600022283009540045840038101134381957088750737764766875820395819506069831326012706571066841225099143926511001318056687043551820959615846756898162443430853721387623471720054175006017446273735286999160246139562035326103015716079336139972571915671045113619076676940868574824124837404579507005591947264942706209428921448301441796338454761436188150578040944637621355566525858701697124647541657268869766690350788123228304140539461621983009540815457687387733533717245644902218944396019329599226782713644182162821476301752133795170098021809847970695030153208841265928535655182475820477880905992485452383455163203171515537094140588516989714884400905947769602873366937826290363786032308419371720816570607578284423142312164906677814429057182080953997762768535008293370362789170807178579624449863886693396364032699743916759662368978738196704258747688097390993322874388848848434555988526453200109242042004156905349418977388894584848962902927874537422411230106659844445546684331429581255423874913273440337073655665153828307150049627523492664619264627405554122428643711992249908836092438819182128440478797512280239098685266255302293672820503469283242938535627008893889391884565853463817987740072150691865193101361952987885960945103737574971793947827023818350157392339915302780493553494713390321872092508988636609235914309153809512853942310728610472787426652246859176340532726762261995314697528511450308372829211202498943432548650332160396796389313570845737596600896627599479660190818499096561829065560967430840706037921731454492648042135072096116629448356236974281770541270071236935631422510239726322511133878035392607197468976701660627211341190260791087517334645531586274400874592190711617575866074004637550663503612296360467869208351190201985563819359700331243546582878247954436608038211248982897965567289217237172738451008687643605940028726085546486913001846881140247059871305823611495451323663716368409379161021042223628306133583857033352514911351332510790816519489942276315928407621127928740366254888565318005094498945223031060514987027077685602271829562535173580348640462277615777981860282996844958342690542999591197387530334532163490656584041465998070841791975297408142389107783704909954497086621564653840794179719947931250220511698279606405610330324481322435832725983525001746970944971595742876500394285121171941374724359689444518221040938160486321803599705157247163464435745302618341031718640020938764459514140481443162300184559669622447776218028916901209302744453578558317340799916732898652401911403492721157953480347715409773893534689576290642198656896982284921782838328140107231746315274587951146956968815995999712861664503382898958753038319579737315145483374758797409538383873079776485973184015078874233637518082030905255066529950060278653606597210890401872342085643640117365886140609466078705082820348769618283674220190239157762014147167134147046600687237773836607988971125307394141385862419578434481327587695221783452802087901858264637233840206142090833233769761091408180722674258477060664427260936290468240796284504960908563613158579394386185695198268185016819704283323139848436579703802959481172107100162494910186928425537970996281992908464479441259970703452448636834425557590192684324765982318948659167124476544858553495353450939830692764249827070785269497229177301121090495631771156606014638427918670893071481728793034534156188773154780689087689057436737132314410800880182928247003729578322188247550376840767976802207561645543481674957664443101001712555768156461301196041017183286664014686075452780620567040445116199464779335925670235611042560079263681772495168345383961130943965949382500854101335707695413636986429973001409787799181696124136728485595002549192039608369687518797531847306152411784806345911515476928872862847264289653130646984009542052564148442579482268670090493830790776241384770213411021332555689070012994261787270717548876983562116011569261550538073491328743316751813523550303088853730833268696407484391549511548273304861601040376900555540094639585843945120645279284175572694897002450182303463923998194239779836975673464877763667905751987999690447075737702242147024456173416836710253015639191775012000380873503274272116354539843512948399959225031969805318181254792359031512831864107347101186809757463175330294972550762513909608028645867846926048453540576381893363733190080642578381569109244525427906507210004200178234728828090072702730521643645086118958693797601715227560910780599419743760888311720285085091323061861851675288583688867680626301822731811817644990214894472943399514279178022834920492570435485458002488354487505856378196075144156961729625076960476373665462420773626854618146027546897712179101184766021809506114646713005247302858400154356500012065549045467799229690783918138031633035823141733112746592803860418895060644460943545830016745833838353417302556752842096223757266667054373233867313593833728768454679802710866662550348971646151192507286588324389983757519662554810358378803727847053780236578644787428793075936911987479199320520740011078400870009195535189628174828386174350096181573491554232837426806315008125807959398800826881196149563677667379063580329618304041548642801659384074862644409147480225382629106068697962609049647952723153452039532012695007220136484721492055514817269123013873923879025025344095553620583915921884453494594934497251242797787104198476543251809744599005633879802895869317811462410172129887176826047817825873075315205726236294491479645317607386409260032727143136814672116685333102366745805266763255360543459170416089047713666869317610820509489462967022102128485720466327340573346913445672494364614218681001791021517141759894004492543020415272026522066060173593005730620103649355943647240438058150113533716231403786397372673934467698795532373512170563961739662161961622629094279697054105268308022536645293783009103100417960154900564560354431218055766460044527108964420850506925986626444833752077379703826238555556045973281042808800690632770528474022443493891075760380656895938919981883220498053663998130110959643847105617619695913095487023435395938949696499122345186439501226600008170415877400036183511053213170923052410478972220369229423634837036868495482500548465788078445614357073012374552127480075273644339158983757727245043578788402175990079261404391882750867487384158450792104671516548564666164612360983002464776881179163222667965763273881563225344789040896084277655806273727443016918582701730009921462072260187614654455614130187932562572624396160397702687811893098380391483039229183443592511900055096707271745623284991225195942054941385973938836766359073079828896814317029608823520183251626560909950640730581652633680583009395458804893136424885997581984833584207606202340307871193488802156281385551243774959733193919621527855094532047480533803264381517566705263173116747146943006543310737008097203979192705697385180564160134912274779268755715709828784176318861147051297795783071139334302819857306002678056286878106025199364278818856899839662054141917080080847023436510085910787259930466702231306765070172470378901791735955050534860560838793837504520648925142805688541169228630250698713432494362851087306390405882027417428655055199337375190498003270110342520403678158454930284779575475999041562213107065156477591550375919267610273967901683812751033720245068963334517419348685089784177541025953301468896258387403769520941074681776940066919601693935655088447759297701802124346301813514269581495464351012175925685411055118019363477375798185517356707059308565880794026648000332426832183632594859731184726850960386351788694127769770903900651853933898199057122412594995995801393727424734920092719173749671841635252142628292502030794037146122668786996401865683751611522816925693563362036950912309777121232416590449581367852009367108854633884482625837438170043954472985861017715193208694661798288579247330307387961221908559888027587938369157913214069377823371768940650350731210059320062573464723154980539809747300195052224109891620356979167544751071026929050013440212724277956763176397253064619215841867561188912052188135929681555652704449214717063943599000451159831913833837379689765270566527684208485859292984910782268683416365848325081454239308629674838208556507311127363918391519515333496994027653679444237419874831390133748271650396134333053913340950619042679252338624941148314017824048660942784167740455325244587607428689225583923210249014843387095606385452024166222698806356703315852954619649164730725901974432210702723398169944245190957927508242400455530717766268738557471150798227141422357533962715168173210367431365734232978240569387279296478833678667426123440296663131161750420719734484837152772048397984418021820785365489470290998826451402596753860472320202136588173175657142953320958296191716979759691345680148513085768700888688979882614350481904162349195486090474685539027982026406042078413623388015182896325629175336432287881676457147847550178268881574850447271104653564457998777273933185142604181006430075125844804014536160595281095368979833668869299387561066608680220240656774185342223091258728958779069902843845069790195755247938506714458915259301925076250360097410450418219928716638684099966454778706327305405934391500302210366939344381467899803842156456060686069253734920534967443368607094537812336875687868327418942807922279673577729595263404590053442626651002063277064553875095806201127201879061685709865526757732130654809605799584182714339919588399111759109891876236831588244777823296927021012526690229782393178353960466431231070315552117646008389237629867862310759957682962220733256012109196577217774155155332805850320137071816976073586322213993886420378068968314054626970022269649911805877804156952018067133527657009481417527994224269775604867850738604288160004009051076681315860851206371481416270327462956954492556061999347552026495622251737447461311236505791029685321339819785233822671802606603611429033540831033681201556243636288646443612154202679189058136161671298515356185169237099496072899763802250936661972758013355999775381887038083158817860863072191467373601186796335477139265150942707825745421088139200327224593809481004615011952638118363175283425915426949303578493328014615806565308666644502160313855904931100130613748153665992317631463273144528056009263085313146377245866487715677878384536857062986723307488564423776564057519191777950338590548659027330264833278986409098682479670475708561127995616998551283395459428385155913689454053679552490441932065112631774813975133212008355247647686237635235081394679648819736454652370441883468811822543497052675308914256892850443422541855088442173713155021423189733884328908068559122630436076986620552886083814522948683226059142024734505739885273113345966259612107482985905399528876608183921374566515133385093733936350558555718358808835143403327732754424705835390336052543510353009054585065877201144042938463300373784100054464557250760340233219806832020762805388073491588390243341295475885365191791834621623843142840060251171304269702521314645112174723161240171623807132613807365338687027819850138999044686438207957342631172713453651688154345127067632189810166001419739518252276999130145775629257803156421271493010398981968578992921644726797550504463556381790827687038194238567646075596747344198349158875301791037711991164720219022186799313433314120616974727333210717683236684955427065245327109646783402479682896605829400622839031376023967210780055674447847298684969670719572352124770861423102197010000059275488656016000474357210331060286134629078515459253254346905618656162846202267531364444457661160262615224307692819362118452440713706586203878446954067741133801614055750749991173074339499463193406049785647954988986626319858972594220499411501676714384317316317100136348415923977861548660353118712654876081170226650965911373706356047298646747904512663413601602447211263914149169519170999122393291699465663424086733973545226954966161770583549496483734301188487458867517223426611131091476282736340546272329552845844332147444607726396686288780755685656447178083967480640501999069485325865743415170716886715880849492328406456917049012811365514028842619296349336051199622972152392767955663532525408612741751771436606538264823060233959398156862552423399129026582305270909666873748033151666560893054051696630680290344018146969498214729427048495097784822500475402196630706924315490010398626148594557062924533562757192520253985101036030953910230152218376146329660167102629683697350525823984022209406959591453371835153377243710343212014610051395129855763132904178517840227459735810851504685954352585166945922282017532691014332047252925319153133181906323561094636619639181830643245741722632916214308450187587377198515458557128509095117623369991554192101503328207287361472806837210939770356114289057398915658135009398665918975024635896903328089532978204623296051379485312578953186440964809714073364549183498309041865986281725881148660542774518122774310014710364126644884976680152742953232672357726193534527266223396730616555982611499965371715962723976784446719371506115723217826108293069073723945126006135571124855728268344701545923602187992555388590042660513315429729195076486452949719567877709485516467874958754945819605702963880873206641446017915997216053734017940123961508054913337767201562525532137374102366770184199171144151807483064187447072178002777591471293726761957567229124167112467823101824371437922608441624108140401952984690099367715215556123340039821455310731628872431104405959408962181583588012622136576842515431422042117719046049798890466984448252214701138199645977726199350606690875835928044116912121001669404857154389622224094599199174627125090450196862304923932225364973744845774481319176724221305771722822484835256546489503305768877057989369293768805013844349280649944158631100027983829166666792264331591080869731224182062373579965431374199893763040057478461993948029110935292173920649843415466816306044035343859360805408586959415055851847383248635791255673606705452991703366238198496081727270755368081661360564853878262438674962428268035213958708348429593833927039895648625047900829296978382329133622774366608467008451118305067257025431951864335089906901605902990135724416137687470922977801693084178266481887505243773154969786887806550620499822074616806052402851500993064048065790568153040462647697636201519378009376584928126966198226424133276184349873566018731249666144806721076217579866629052465609451389212073718296359604628354964131572304029447310858774316082216503616633869895379803140769288922818714758818319390113304051311221006678430705262513303408507039059364606386449722285162515247863322484181349709666330236125574715297052730839122470344180668772213406189009900924545788188435367173410830903995665977011207917811353526216686056258966075089964967803471196249063227181584147783171069871839245389384026250737668153158660836305671949806368706524147772063262167653213327567349112074727507264905831450868755975091657715098408815092850671928270234252717518332497439800467629193401734652347184531837482246641908307262633176014443411036036278755089684900071673869806654987707693646791656743628695011492120502440028743872801317480518298764671549507613317449013271032604768512258082895131461569553055411438163453264573786318097062376246628028089032740278230656287575072228611024751955365929864489526402463561388728822638752083457259062818752199649734888284719736654810773461131290966307946720484840856264885044368073434349113210713386425823822450785707030860003879486873687910124912416421216063170003416271111444852379379178447453867780600582691349872467287632073962706416147165618203603711986314692210270338240386896813451918773833607376149450753573885313663979337385107227757619718050469830147949623185639112458001661750283683401350820435939030754099153761575828789836937588178396859818402679939449979120164308581962085816947350305019063527867678664973558800672181451338382222215683682811054531029068968891444725975264751783080121545953181322377913759695554754971598411612759122235176484594642897576727430404040582155115489312787162852304260135714851247047858424655809743840668222565207576173862695331268206971050483823193814930354117120872429882797408454748489325097065203559696106180901467707526798769616738328852512782524067414332030781368711396062917945043341627959966818176700108174945757402439776092588145313297429500508796695131838166436940457113622513853904880991186530648650267659261426108239582690562669648660768707784748745835012735553080210384596576528215410178662255172232810760503212045304425024916417641773840857906992517453002927313687730949346766693770726080882840491789161953530468752278488944264611274715568073237289149769870568314856778388282189968779391630333607202189836076214806595254341361658364363346382317996880885563152478024467817923831250125820060595178112375742717785498955963888704314271161400022745324683652983379989848980930180976809160733361363659068423742086562057717390416791396653163348328725996126361552063555036174395108062432580808071371101378039737583974606549793729653025652836188536214698606284357334786440370855313435726295834536874433551652384985104829464233166824828078048190472192698940736978211451437136085464159275360843102593559233839911213383677543999125280890083684426825364998544533292919734379942599890603134536958667135395534094157148781042647261731880700242791371684457049925503532105834253820379743717453868529570937106525586428856889834782122238177929408693248735139908714601817060731908619825014636511882543820198481276484206008684890531501039208800008438712529150715589833776091283616758995581856486905052225029323983241374389864672621824053470884681687805935558829593312448216548263717339195123901533251154001632918869361457142501489888618949767382583228631262546328326126367253425823920047958673517075305774076850808218947977317608270519136075250084218323144243886159368659143435666397293087205049412551411954597144630816880662502525243729394957133909744179380654976626899312963226200148186702310113956021871023980426202136667296417104358428222106320451000624048048199010531380555284315884719941508409332007400234050340936985230674238653125977075145377019749602903206609492455508979463225087811742090372165882766033825655515320524872434484511057880706715562766942737658327701969006910314701462245687013108661919069451927355236200927392342938779715439331751987579529168662637029566750169919125470505234404422715985731249918006834864621924545804059775865688363588723437116005625258894436426570549417274901531519182277085532922892948746129510269341363280184224473223101414252082754027519302153857516992273225925504854061513577925982396573456996677760722289612482761260837932421114319811986640075078248946514947180514764993374170292600296833452445599686786757170049820118513445266457164805804934478103777044366564992420404683933119061024564185117856865063123149270896399213539124819120718642175240490579268848825723403814419323204627979054097077769684378869660834928842232481958950941071222845913774173667300140034415937843397579399078542456778799170660364081361349359296866238702965998076549968793878728639522227958792735754052442961571991469766547685370693109859749668561343427238928573184955937888855347979519589237464210058242726585236837404776657407300900455000279442103125534942468782778863198920168329377429091508606929430903561245369147777748153840354638030390413308118770370957035321269455813745650522450716747275561174896619718300698750696231522491676087644371051414298346538551241479412818089829173603637814324367610639873101294923178914616640894574638485672341436391289690419350302302079860293065400377039842067372588646311323670735494120300203792475276726590411228726889108557216996799931012340593364424664142309239757472645647980989047320735579287563254529502857834451504806519650515415061667735512949472093467309144267723877589569490394061770294337927755600543910310677135116096893219611779272583744266916609796579324579037309415988340987312050633873220691110864306524722108294223109277361247633211038283193272336583445827176672980165596898619848154531238933185324990707170700764495028827185284148785448172862752009926534261093000982404386056030384148154069660294035360028780638073975960998520822687677791114803975368275228038194235572758275599564105867003684336473301557117862491028119927200112439500931795073582984300502215078201538469402628056043089557348670663130404419844002094769420080944880397501223172942327518708166266997688612106020004874381616749003463475462140673073214635363014335947673705477570519687650586499427369679219651212727391187772166285303069935381423249382208338748081139992260352019109273423789870121649979664071651416374776780954748016524485814500657781065951091123073837794010510162570022608948549561901325756508001867286174529867147901235086827477997102461937116863114776974403196224845042377379436982729932279885049107804824924177759379681438511487727794603455297672214303084907549160494359298140387154113565782669919283231953759658245334393717037025942804297375486539038095655542680156566698258081837900534744585603958216607795645253319364366963406048157194930698384049292667749034581318650410757613385458410789700352351667444669998031568435604461936950700020452314334772389602447985244044515003995366065165657024535399055808961194120990297360923579518212640100226822956303244377753783460310231415871464007622175023067395519515496869860691435385804080196727070921879541672961751977654736278535278553793460448442203788130043549075512868654392717512407579705369228540295376029579907633370963849403513098353129201048365591666956851655931160240703940276702038695996351604011154572532785577727328767476443208635183830641019209044468523246694405742985492413397838112078890529898584514240703912115137994605064042212836780052752005334500539418065694131886172242259784328705285483392617442397714435887535116879167255864445347236556317530484021752144428029864561850855174922206349637576907883390702421869123746718945535532597653538441534847814659775953418023474247944391531809624379601130734264948612065310392894221432915774623169024209556857678806799926336334992316590176098093755514288205428683071401950877969113884917373330646310545589438091851122192990164158279931885188789320252748413979127464239819781477579551611453577352797531145951471311433017736523113131039983939001492515785208166271726489066904433588564795942228708773558222982241308380418011825484417201019491506249013439052778912771959664348901102589295982799289491989608477905412346465413479546202979172149448161306519903371213056208733638874793039735049066119855294983182923953683002274910755037633157809840638348956499449849907180422790042293074989378958844928041392636237375910470366042930188564733269566667696363344794692543374042553604984789873218390614749509919070204656508759798721124762846678131183483463853864010275138415936330075814224420622479660329957635410827708134240043246138011876533554252666090778401777849549032756607817032731867226358274707514305782083458337176256339551082174049943597572359047705520686079489995962576286560225080992100830204710215290008946657658123167990958253030461824572699374454741060428829224641641080597784550857475342344020913107464641727800666512027947520198460531384406991891639082118214747879937148248942277924856231406247401738093967487409243851104129103911376824406124407249094228573460544348661753838445225590145111416375016756526715996319811283085170900085711818463298589602267572569992320881123085336949565044623600905437087223864411328482275694254328021436307234341338296357954148768452138135733071195466039488627498610845553230660914699737812555413682996658407263164037823105283060315542468448073487956168452770030848573815923131211124359704216634288805422717033484183399538509709555623023847360771247429140620813907248705546238861509227727500845804859231193500395582605710179866839555228891283690834815974973453150549521196347364173887721659316038996843094893208624876043274789078660288082926396054602820242011533896062125649744533775166943410520060163334316428286712669891038774803706742499272314671672667828367154897251947833184461658043202745638652657294436487416580483121476515968532382401982915927687734242822716153626711895877552153128897053163388683688597290400808017785928653758296497716938505979897908287152149553493720724338248356499189127544466767814118420060544765787876339325850167359075548217485831496870066978580155866523984125034151549191519464084439104776113490373874645337829007958809719375088828128307024339896259352624899775089595548753314004956202438048371868748335681244939026374595189192105336436336277558467230998491632813113205559877101507339484533145210622906918950545440947909930980774966202010274432931637549634011599666324366608602852541314776667998663075420278693707959173383978656559766534968959213308451877151609278823609431423849937386587728519144461439397834995107536847341240963434537573915101757570280724374973711624616019616625811912161555621364161559553109245887117836116910696942044338801849032229542188847854309206788188744117357391149160713350338952549620781770466161420205835502729823781724497610314143086095591712745096310435006121740024403207758893079853798456521434017915341154677605465023056511379514831122832854435106118179341417601078002931585180791545064498412064287805468619003824687481808711532245444104243309682938471118530793388760495405405417507894604479632103480722385789856758722389675397007464962219260182735989429025473585294891043152802432972202825148947355037428894055490313033666108132920629906538634011005969541895771623103140123938752719099594043929731474023178999238933281363594945052332868764105409381389916939871958288144775651619730392532452663818194710256981711145171985948931010444017206361514578068214550880404786570817009406868178334631984914116844920692012922994327660527592549946678000257490264823971300119856857837116494775007863949298283190723453270086776109316798516950869218355226781763392268076191045403226004419849174413957125519808166773845013877492266457436527509771853472189211850072757938898705355259329564127775426400001473137701060235153751384977325276466587549929528092190440366084536328646735610339243402413568663822496567123763489816927079593334283383827195822234974838053896748651341859866754844566560050822557932818564306608246138005728206886394639342322655303262887145457251097177180504129319008697017991544948145457865352525284757697808326256044288162365660215230867079013878271720369352265142759732156518426615547438795218568460632976626459264670624589674768477716627588277884231170846358086020920672280593061228903545374278256797796798213944794899676887466104184117304082296363013293245982092153890738620961578829389768947216596817972613637943764219759783708020788610599750795474752515370185847180034624150801479489671510112353051884954336691595230656668131756614685455395583559077970268679521966455660249733526264191924535524014559862004915740703281390638661648555920821134708243672305533438633456256163611592133599443823796680012719850970369036618019162305874009065667248768386551753439610243878696964149141607938345584097542394232470881074597926773872736784072736935800641980874495042300298190853190596599306723100473250184218618352471476598995096157007179094708511794244372949075835153590311411922700612796124314839873333839970869892080809658215552663459065459399984131368305305190883978809889024404911135432888956832077009700256311786904698043020602722437240411831566987648801537452500413466756920033245692517371457351120551586151099463930967906239545830413865009032123058971054814672049170949886019430965458240263240749614772355382421122340383265513336482453887481408150723463952308173691188018682511761527176891288095860438704812224962218792006393695643324188131571537795628140763625190241920385900166579152786353467896522084598509211929056760216303927881198526449334994850707616903613571157093309466466651664573333197470814759135006756229712017492110194272569850643767049157703837133451185718169924259454553425912095484399270540597880758813945764598816713273445876427212571556167958224905143458613736122492583063794994259628471048912489503298754737176809224473835140688894173809790975413427652693213756050799074572185932673000565984288773827545742721799313436584174908151205988414458607118846089218761787837456086480237324712705153435951866471238160281870023860221631180267910078511207129661568062403211985463867097594044024182691815327497170864564898464066812669083308906282637364498505089099536683152749007918374025660074741015234786618878682152890683278789133673709755558767901305539761318615591318244969390931248265422675693633422169598006893631686880383141578654127733857251500235188714377659773006616220122724034560693328432726650161973430228473995687967299434273410809614979163097273310543367035602677542655257869514049445711842506069074772112985655705639230962505056944713515581869334558446336775392301577206784138872924727344071700816444658801909401831601344561316507215895477729988592131715419543613263808657412874637776509576698257088495924472156956369412932252370506541591399232571397632126446947323598694545033416831079962473136115996351134099342081368068914395084733113234824262559357928194481478988006046639336392920550326582483624305022262039828239997966664132501053344001099353008878677728042210055771543393492530841136095062123787100691912211648123361283634095490708113894213213377758005293016052735468967904864840825613649056531134563351888442803234210936379324387175058381266734573554138934223836403805682635178919112716791107774866429202514793950890879817957243957880598983621190566641782970877709732884885292882122663585349292427415780311721806891777394501038085530037686001114314404775772930936557880904905114065557073515897208698970150925138524886352313073914496274830125024605987525622710796172667642323970094849591070674588331853867429629405633015554607160783707165154434996551673819027743440694670543434670378676004140839903768221619686273355883186462833904214520994500205556837033929897483775321551755113562834001135000268342030332374188047213795642164370061516006339719722588672622504422313095144338921876712430724848751687113009366863214633396528320864617396314195486623580324198104034068273189012363652664005879342660633253889649767210077886254584073294598531070761564003841548598545118396139921368683497096620326442373691362973129953544956349082418670651171899433008036530641313714876724613985998766415377749118937166389758126024942044619460122703697330467463322959493363384529305536334837498651852649724109861233094492110937643286385416210614096519909979288204638799003820078316045912278514236896150963164897551133104848972710153623195218928497952382716587058746572867862396835696913079508863374552469284546349779575130051520238445345639279883450283619694597557171428297021756131678973033486476967095837365472281085085437210830639967801100402325207480724074039565441058430882042010085389735021662980662397882456584253845439595131209899446216207982262652610378362054555068518474805363845295335714873536716418845713147941677427411068067451668810149852463077447681323317532970933052164094444009045745751278413479312270282508055701419788074439913548954015745209323084711519462502493594756141061794334329758485803296775939049113726010448503259383974422233920891676954624605187444226632827900016938377366593221969037643251092599246052783036915891703820423096480620295926968402688710167418619104744608298648806389406976592322082636747966963186266501636203182317736845025181904286972884414295088911544648633791017983923313864698244839890208932996948409241333332330268029520954189743507515837876264543047488937021212676499513144731951634911620925082790823183199699223181527817280881456891951013442091090207413491265702060393153150801436138634136983565735847868889496500240099366836419901351090286376570543810384155378571232145743356794977997125900535837070089697402997366016167527672155931246034261443587933697605610433316364176836389813507588292585133806246911782189217965192952674011518627596184170826417041301263058740971443873555252104131949897659310660042623028709181326031369784146548086440873864749700507828844640003807906950901054183582779744661789818869916228967269507831319919955591256885094905588646530266289210743246096375947817061971956347916028255069433798425668000050423896402241778716913733970243454457136186297964717727889657879629702867652033216066253615168084672161999336913972100785620957050010068117322548195117088769879270583875232847530027021118566721447332980168532740049459400042297802005434989350061069899008121233708678210706189827858906907143942569478751330916839070231357203560130723856743607462591719930340244432030823861794966803557449435291809344044199913681795384132015855330148461819806481743390521339650916251954737357718085727250494438576034598404930931166118892014441240683262900024924773720635919601094782364560387322779489725445834336990253603053377586032889970829155518218809018401181490219303228904632492461338190454955024204390625800698749681181754835012430326148000395268927835446897964805365564422895569119422977800112006548869637033504888284876188327168562748129786599584977155938149249505216944015403736175608363701356250834795468095401651551458017078975046968463037667083718339081479031051945890999466594928588331317437202589610192945218137756368633181483922497019237268976413578144592515956919145215811088323577097810954709312606356668857772407789065749324784234704746017738935426579675384287243838158642298591699050399872513719334408506786819694995716681581563411727876020353209795469554972887074918922351169931788139627196318002608404365713892009960350173372450956592629956624878940122677201564923777372915948001467726423172839392945731316804764679839048655571486497903454453712406934240074339350992870218641208359798575801157240796397727205675224963317740308981594796866027638751735856296980526877848194540308551739330942883178765410136935927491901719610216341466724829580728369126915711437898528456642746002088956161654800779590110430334507136719861901582880630800996382999072190826013415758561944707258365113978373321307032473578885699384536060137543593491936287583111080321368215527402621405219084959469650875575540190206505429740104479752541197779489977518964175286801094757144170361404949971022927473805665474771663553247791944322967100311599802618109120321463876916595101222741357302673076156699080268062929841127414970766263418677844648357971742961467041045320665075998556836964266696606190480425574928095075580184826168824584450073230636352747472068955133269510821842814871582563783902126351442320639422372576718581449534837311966482765637763057638360366220495836587698949698487143675546344538552153172616223188105214844247547257555475681650529571405470389823030099915482920464938133103602177340460253857728322355264429821803754330379977977319679349757781709006379911113996572029937140725318398337072373314354824137013143965938393799869005828425314501065228619079338459051391124668617505224624214555255378970250504455410041525930488405730155959699531429379863170708004082741522947404497349958470517377744456091452627801927143192730151365848363044304872858910004929359682753230418904375300220468027956403563553404678912864894387080568054430756516214430743027564938162846448809790479015035805653069037267697996251484389588066627272430298775203793619524769405565776337082648309724886862076173028807410317087348935331092622405470615610187738508523675943746975349843853542162167473136649832736037504564626762766611486735139006234122630908391263121323168071491281434163322818163697725622674285630955974084821927320094149214493628219672626020799593360063432029032797989495817280507573064458667646680056073452219869759739238551881106112504674678124459361982227680619810500118675320321824971672481878082418515618803847261808271932810796874088501325804976853602492907574558970197846794649627837881205902197341902590163332079293937455013560412974003797406703409458960449973715887856991840984442329556002830992036111551235179013000489098488976754873699294487871480249756223976537105225291029731547462008295001626055448719105629898036452921796598106630409277616104403535427150906642467836543680354482264562711852284128915757374803078141027672736009186638190991085397176596095890062115127777143162205437464958115333258143319686907070524939629773218511858893029377378778665642633070993492667971791032821705933747696373663380579347376618880195330932314401139718697362235061926678580419606897716829269738542452571184270502855787413392345200428051135901703804268104173646613856685186394496930033240432662993289314075177979973283994794985342681731143842939468807548842385206568480010470593329735731807340142550878428176785181143932854588389032975680302548606059190747223578591853326662428585237331139289625949165353035489772633951005412880613142518490150141854509578706518361192190589268271284120419905793661265431294250850783641253020401007579382647409492883960659612821643201071483266967321021708185994977802009631284957910330690494975581983025680682454190452800151332470090214576346173184257267358937020247036525862773333661620931495270451528654097918059532631813628916534965207057600267987337033670593878007094729649206206341680777959680336294360382072083092209750912575139345338223953201590453515473891797450114749713298824241349653277598169715297628534482177061047754600716874058311390281379709302972125007158419736852097093265083131808519535640806388395026095220269961805226478051588184623985142039516644156941785250283500714851474998843414984235282917251582100162044255098770085547019333878753201137842065787077108392418152406140068515898640509988656991656809428138385566270527634387660012072774204743756750996819449113780966296143570466845471972438160416890656990230427804289335481959650608292604410617438719741104192446950403482943880979583016876542794690356053275353662729778691844376121853540012697814506066868496794030811123493469009330982771898202443809541093071904202018204989009799095811490332223496080676040021754064885244669217005117429176019147581103721515346011671200478991973420291667555466867488308458501656553032491783534172397561510853886432900421678180554524878513568379699728880389615828663321235440722844732084640499948999585908221517628732426319304441477036480857142044578118272993978844260640455198006410066393556124443926913767703303094648999284552834212038552001245001015196345649626224176705954523502796238112432691930438549033983282556816096181948454647277600174398294700403972874870805441712055434748643537723353709886941096927088152491134028139072611513978107231441465348312083549063731683534139063466184273758077278592477579361890839980614422514259868960998740897225461305028406098877865063237700949845785114752487923457123971387638976249436035963261490247916894304336463007721359463854237469723036292417147242988844855478084216160673984088577135282782892994497534480799314238817901478330890013795413949164599413877748259942532848981843378716568069583855689035461401117918452484664166526495328963834659679298590192291098954981274968412246982736140374410747691247127470100755470729350185673287756983447820329736524316372722567430243413422485611312473791276395738807612881320208199817947686393306300602992333632804454303437207609104437254436394779783082122334349331233077073418966372690802167407482279267809310092162203260182251233714861069536143136205547062746235981392722877041179606757144645406147749841460324996737299105665867607671109465611261472996369229409815290588513219423469531696611081020482699132560202321463338833578460389289396074409228906369448172399133413543544269413785201768379916096885137389841224264928579286529921025882934988171187282542986143207671048175409775349831149334108438316942083937894110467849006712867302569915115884126749304920806095147715582039813248430061002034507256562307988982973321067941141581364372941987728333504981751686936954600446711960609560956679548522205098817562777898437203982910333296110553880944100702942476131052484553846922662341875156678643534086929494211909645056434197695073159484120026731545020879363618204295919712365295675421971363556017398787786243734842590740370152515938304421693778034236569943763396845525800040589289492441125892962878486983540774735895978047067434220031860310317175174819839589250701916967091069371026659507104227677876473824987071952837683130638403258298167485818999973892745919813771678326090672080531688333790771773143551774131210736734022850693266514964740911256616902587914155658578880856146769144985058658978330099977968142706525626290379233617238303508523049824793156597459354659533714527838323827268284145701409637573110123235837100699724532160886387152791582425322775170559278319089026006552348255658031203531966471773633581188027556160319049931831097506651458750927694081887402275166371213091520248966901849489391913285417228922775734370447041983788712907338556953124054419094670251403166701273378749122455724810234310286606271832234679833917446588845019884301724988817696931644661183260492360055402086832685157392014605807840769025280160135457962582712749596172969870471066081045048280246715659020792109588788119494929708549703345637719174287112038795406250999730614925168207355056622301146425928871518661220513032285471754062817494593687485917102847501282178633287433271428865525913976468265660811993247893411010452803202166810089468488075295407298617478964828339569415776472450218296882786162189781290785260005134468195730529699436593697724886346998711919937813011579259775280906565858314177360067784780391196891954987022191441052114024802449030752598373448305319946419189571522492642028452508794080160004087105789765681894076212915330565649820621414529827129531306952552192418487996152639589903596417613290564159623617883000197243974186325125097173976913533148046069630044553999925087742942642785667727498063671502949577011451613330672416289776525984699460530864245523993051615442207704795632207246075088253386690421602481600997216426486905720813308261945474287772287298655238544889662660574139343300401344271257775763697070663653207745651334885486904034097529673580600208498904833671587156897619906399658488517346433549230626992105547464471364435257052758584780445637758685083746430043604319650823919314794794218174754969426610535462109308892268171038498355582224082013046532250663342949449357987494188509935892606010040462195225610738549221962004674692271007682455053595721660264745867309232803270749847501068529125739206586228595953830971132971538436803576918308211350740015840971702238121361046436190635606020329306778833844661690559890753190868247571576296836422604300336146507734543565849837066420587306814605300869563682039292303780295264100812418459116684519321193422629862498795332461645871685827763140273697417491337365046202580242887171396777334760672995177337626461890428115269502568725270979882114396886216351465543496502631531663361242911330509785830419165467059478027556240226782727091400478012030501828838465407585196887999769845729318127700083902278943138295457638941004566977567350439643664585759751131468702404088845814465922907295877258722789539069159159438738384086094510455967575016504520043739117685903061484087148180908299752098178423644598437782955338512983319587667071537033349789481545060612979611744414665822791275591209536467017819533105830752349912476014542553604431214020485675168187286532567584055305801944665668918097046899136134687483054129851842933023429775591966037126470685677106256973836522464391301379407956880216381164837569362880417855691191948353187749520572173495446000261737252529791529550952020367675152222063769750241440016645223084243312833168081229925889753773950503387695866364521976317339192296041322146452232413343381711976638645529092543356460940842207880805269717914346205246207688374918604192470888749805513478691714002995062193527987586176129469307653899333345057436301832543373229075081575751530389867087562249508156054079841938105102421305914321494625517251644528959767233172958440559081890396417414620020884893360850596965485802564980432102428572821483832539406087207955515920984085956187484730613579685610789566207140183912249958018465334023064301572625045015480591595660769509586217306380681767857454621713349783028020782573961651893807701283402945114482500171575589681603375982172414447504730941600530684661121664592004007442297917280457529476945336503219516791038210674423312584073680289181498076953605740194828481709129674676630227735847200823024379430740280772199933655934612341690521854232622189456008641197221464609826899851569319731862665186805396182518977175346665546644194464496115207942245701088235802891351952253145798629147600400622097474969616468526019579561852807481999854138744263669575713866913486673783272840023215039956510851715395885771038104690871301957204842743008696725321941567900820114228272797179537167910739938377842902479293651351443659253810023576721511384711655926809460444271083370817329777308348111087181250344113744813536237235646034864471082339811682566595042243978403149023798577214268809967036261974182480206446653889598871444454253603747822893036818036752295184972194763999348087436925842999501063193475816730440516457620602469912298198596566819013766562960130814043318236451449726081330291983049259700394916123020138608912215897490341497369102070527549659724019379944349873480110082057702613068195201494184030777419849242227446120386905489190408932049208875412336984381795264457182398302518855119686029967376205534773433154418669321604878645795898365174825443319701973227970999644489346040780661836447457130022498962936884476800344775411795435854324039834542883190571997652165805509874047094213523667080851043733774571512214135558480041370951410595285825290016861348198878842119782810929892909423610784978406019970040510437264022318715890163347898175848176391197935937726904000244122153862501738367369406958714389466956774561943150830383214667411808109837787352117964084619848693558038465057839693155329977047492558524429224066516409700690626120775808260378589599127354819534507997815412297083161419024123883205291302318829168396820115358972499114456864126810299480030689442506166197212185882472720180874678204641858022536397395877906062417581603134141590982912028820252419809645593268216269201714771144679632334328013910661300091980797585128014815729479773855417962988764745605653209202259445248280288113233531579751084160810800018719512105219883984190692874020860180988148255929807093686128731103335657070702092596171170264906487834785487776972213198770368320540207684049833201709155417862934741807044587674278575053950968846129406652186792238756586234548676123870555298035753323570170538787545091101547074308317016643532330494264007543207026520891845986335633308239428653752117644399632778511675293266871940887494758871030064376673114573340896180062373744911899041847954738739996185885821660427184481527067032106728337134431405902976669770981525586869085333776236791658862690300905931369747358733178386492873855524865184015327977652012416718378382475858533533808794747064395249410611995620591884366868041029591108846787217086010410522409512737823175931273908027407157190271910471839643586074001111349183983274848539079506074832961422888656259135569130928951546773090040808596403738814603821767118371778880866724507045813093763809519549286582542620856566659983183937890521013567034046740918653579832803805714301852484668837230171135379729301628086965404743956419795455051695834560886924794985331628725726247354786142070027995741685889684607054010352245485656854550930616997330251212059062517390075413758596140682814079349172649675715906872468840172067572038431759191170920570612098580621776765833499509985671119342807464529435562256181263279689488331672199298156206327866462858646602536617492656188249363573968912099960527673136218377757146582452926154458766500362711206413181108543221791495438918432109009049523851227958944890433745763350260414071273826802896735625244023801371019993952163992086777968415253866520612606977059057586047636557528417051978015539043988438698091777379408329436659711460578260894307183053343701464704963812458390952679049921907558946780262011570253652693620267955403620759459941080025990243904747204795583818556901245974207278033161805524456896379648067328887121153865662635096675056123919816221231164525740830222759968452619996516811948644441722303244257163470579465487182805476547426045471886875198499497000340863810093851079939792554548763195217071650481487684365759845507707392726654450626277710695775535716549505811443846708131724540891779272505780572311389011796076354175240428640979821257994530151737527706186342199870412083920294656060409108670009748394795854158549646835839560659845525841333836323752205476798951826017061716443337295228774229115405506039699008650807562799521801568114961904834887053850229039334465529126716640353846268332991295597279575206770196529306516665450510235335383183619456227866489451700204505166010839820581660907412764149869241794055455508038220904886816275718596419104436826016095087237211166470874948443306661223496139450259186403885421785215801975440855199889512298502837079694398207295256126398394843631636719397203149969829445881970134496841647735616047745548268200375437867661508299650593077124694593579474935847928696624080420923410477231002873705358036522134649792753972055266130225134980297163237152215688943775068753499933652908935966451023320868421362462379343673706759162983732277157897021525432630018181736976665011237104205838718122987442689941284892881469536318835672941857887110400296401597077540926875806760530279942544775165560307367345729877038287485611101392453349479857372715977748429508659459270042662803966523491938644297363227006575001652704048451219398991793644395009974099998430560600967514709645695769686127822854369579552100546406539806726013082185107058750703927312594925368476897929591171580368251153222561803424729463198136060094851283294747025988839552059562411150488488580547699895588348016813921419682690062880620050890628709038977387688120040472028153814965132130866514131306550512361542383866351331162823438547696847779462241257884801710466873920703976448767124047214479004493900617578754474544551261613165739099266092976415453250315787705577311983304470615000220158862156969172550359022933699106309694898540782073268890723787168197368252130281662397188570032941769300190503664065750941498307971737959904853607138556635614973149076647885489846872091319523036224533211735268924801706389169692928216460347121742787253019862536015848392960872480930332143950397362448952085924942519616423128647966603812273793595236465586842980480572746519805511263301593922950943714956195752114704624592584532583717515847770864821957454933111062773377235485754138719194442478583753528054870076848936807834055860307198434342831531316208209007884332823784384504844576337882840409996175338368277129698092492483147092943705910402860736440762524705687415703934535389185707301337008184361772844089366119930598934758746754865345118448212387513811117680979719282346674452730196711556661169173711677663683244896635468574726204725434112661106364756114986014690510815412205809408119478642595490154166497953666420224210903600081521327896959822239084450765891151190586246367836551282312505719399987563976762124731294792091053742696459900256095254523533083030699157270891371834333217419911305213269754899203745682723067206294248432188905230151037213332991746989051737786780779196734859463035272990797304668593252697682691960982182220513652967200260318935363054842427550329334751268488695836750040924635940155013879327826494198382459161772705492158420618173088830724180369763718137031077035171762178165491136507994738411484724519526020949423966887263585983499634238005370073738362422837157729998210500202673777099078440342849053478988403093412173966853829555717576327783143767733233649620143408808895163547928282567257870229697177478769773648524667640101314262555165107018803991184399456589320670754284552450614182849576197736273437258390115552200754775457359650924807548111424676681114474137699121845247752832457696310081244390614171489741669810065533483044642668120323214988361137909526178043083725055422928281893420453066726471783364675952488197579861699550326832669498324148560163950089922296057502938080961768548382794749990612587911505192073676002761859471022975712205401961472647239652844775025495105146555447615013333810828148297730493499862086890318167683796678353571241767571319403118785238184352736021287237341023097009673627018672407403301542922184115512020525898772136274852984242604056149486775857053806519485620264166175226602297626393664272072483539018970495288705611187310674841311686441103877209035323624411737865477717652714177218220715683624591921231998441145092731804540284816169386272125258637383827478758931949448911412859047452681734238628122758818123596295370043670979197543213910114624522151653680695741910240112641776461000310238341636396987360468308266211015211452142309270352021719063443366771402900481505683584943716237516759695188545557932523453732505049338617863454200470533976826028741020894123494235671414083662488378503467621058757852562825465168326164240933363297345535602965065531205435744375252311780370632389703143525311790418438752998265459495087964845303127527046279291514196688354254586116155443668197188980358803566262754224353186368298236241336002899233644423332370491097584552703884752750568800282647191395654807868886299319876321096593923189468566160466704933258922174234282640784105719837059527886470651736911833384216644308185964896127922531056830184737004570526730338551769152683724366580596628360398555498734445543269348521227991843197158189294184478546876393189351345711932408663054783203076892887447287398318095848890432734951132816124948376707803781936332596547367218030154836739637049570065455958062327691341870348465379038588446110667809187189996104171256813664484868519535379207526474684171437080934848671217711309128881923618455098866988722700835930276744011410729323676748329411832570393851838614851886822823795408110483638808524995687361489257952345622439869352141666823901920168096543308009992076886353586324780219499419971080230796041455502876187720907053980130664691950888212024627546358900433511047575862111390519919747775447040163571048610448961376723253608073559660202376111337794898258061157150220878547906796702209291034675661198841160982011733385002919673562650596270438134346164209219819177252644023853217829586248976557078621243040855698334163605755123226977353526527426919130547683165003406239772142843330525686891594612032630835413065439240332641061276233731195187249377372673168172376240007592039916075187153063023367311591534637507447452842191800928565492033815959743738705861278063147638771560867643150454475439223016043918325277691450705504470496196495951093259132637373792519986165276055433224258294544378160522923736273349747076147694428540422050939510029466731773846030781071169643022949448250535266141866205101979710222628333795686203915839612768943147352270773919066125975732708851186928755123336071734274049392305497649301826457199101296587018822910228951667293736029919247766531847676291477973546426214813637784741612386552030426030859017114904953302538534109412168866482644895570050864677839251876126908926334868232899526525473909311693363706910281011840701760083425020985840204625820381597535745538091796455141203511950008945845350084232214692474573847247512321206242922855679448265343670245256012034883944367424917097159733110591848600817553655069558929730805030973558963461405241819427308721311396280738581756585027303580851733258398659854500382089668003888610172023887545075602840921284258483416856737579943408808382458240231671844978139391574074960445907019802210511500651332617660680269642922060925662339920066937182349023215365225826614374782139568047155735713947541165036030459325030920946068184312250206646519205239453031504330685084476295139856715078824564680730508144969774882890512795949127403988043979050985730743610406812867574957562483747917210950988519755410470630579165490789248557626327685914531657948187589334744372200557013046451711527125562063967660834607482226792476027950327411082159794166397064918720075818988630627459563494697654279525981247087875428481292149959985541751357586667766086105165554743906368464549700824758517672979731046139591018930003491932144804871939517139813831180289640254992646998133664550103411848907914910141395264165123473914917052870891158260053101186879405876533058948343677623495983730732105810122454892612632236416384538107714876369751178171079772006033260944471362668203084546137213738639945544554630318812296133578657591336830494771892916788928676087066122039855348613524875759688779259222159432632080106090941306331224289697112188429468434837831389768835579100314174740482849362079587910304526291150501287090065876793978055291385998576697384038929297623981667254202207123101862079005544198828953641801801687506036789162389597623530734562227836792137443548070042921422039962799836308666688568567481282696110881442288210902917326943572745344463734826598410726051091996231172544285799606878440356032133391208587584226374980247223083937027833909228832323737959583069908237429887731389782035456112742999379993355080046771526121702803237790674841404393354000845767067851092666176500722262555945077921294368474647286594304789704810354299512547939991313882779314052820721120527456663860637535808439309363276285477675629450211542020595504657261541672943155860896960699681257046078557561114984406639154637896885333457332853926111029389050181262834170015796034581593497163918414020748798965166931103468064610474159537999824038412191688386601309574610747609590549151314960416490665265233743731107313681236174369156279143600560913932260349064259727367773467891565053127927145620311312640233669104697375438427580178562788806755086609940527732131601233254154126946594161707691706635036541626924265146378775315772372113384943767406749309799286075269781627753420322612629273872366370894097344923287429788960171899752639991200541671202589993213769551087268477182514623205271455784796941712728573741613054028252401736774992427360196791380092821457182383768876563930757294463976275417110599912048395818151564958694306026531966525831269358205624790307572873298677898856940675768155354986373492321932000508497807894176438746058485806165544864543882341731989207711044098694325347440952231826918982584651675005399399671940454375267721468171280024029455535862182869652280340532459820510660464872585825846173800258430571816546532796572693589680879862145906275621480088740326128202324271927727230680293614761892222069310327369574835168764231588168964178127523320835361268234470932025284323460463392213740489131162846099384685772568847068484127520887876028219602996887683369219605251271642932902712763191052324572851587790223802196460912246033986918297369515425261318274865657289858622439916836721353242987703998734120431626673943992428915108091496935405882750014569603040337796509034849966469763942659153248516076374111660032306865667372574852002560650855598687614238944002130885887946896167024057599281021549986783776670376218413724948152566400714793394922280209936020573322410060467451928920299919684281629980679494293998602391269623433605146373592194705656041832937602378846602803924865959012068855024131566842902371762801431077296093227316711688915253982530634028028617783812311754901525256150632486286457577664303684183875470728653589516112062134945940791243569958278161651491683878428319257238617681353887636055947648720960878406798013537284494712433095973114279850854866563710109793904709029437277777314008076147711717364751135380207636696451845675350770835176856522965954767906452422870538201636237670195925723762615600227230271169836360759303797617156695494155142126153390320466713413396164624363458989914516519629610196230220970713819443837456369864273465418301825220613301356796580650097423050883853863445978668747751162179094017402046461848065907940741353357823268619078713724771223998742363094460429848206240489810646293936805870107368139311765113809841704955004501368552061254575470654211036377138855485477236956188987530306716510220466299590270279528235421048785072624027474075299756439987578259882363531199493688735253195672233215142211846005069968878499406147375016669366467972269888646642717675230114286258487604328999634924975988238598014153384844600042824709475236988273109516283408504745865400342570417762032689030788233517413910513439077419338776147478277506063144477022525356550319371949485741299079197708223240466158533913747510424119257381895538105798194493312426424073275788464160654414849709324606020498429799235446643657321686877510198509961784996139048839490252537080739841862080916349673885211738044268862707081973575665881601727276465726521212545856855557300648847098421728050614981912190743815553970587969428229737617132511301066411551204257752046555054737450332863432246041761660450398824457160337034736034662265453781551633941984672502705455479485803597821194267757457830778733256882598893071203899009528262287652359250664030321665157686778005708663840850143450142139576363691682418931193984714883434028232881386099645414765023478493274078914333389245418616793844335795498142799673892517496802459205911614223430500480349690500858962865183097022897767836003674098106957461685321276026001806018511443958575020654406936637341209950203571406114576661986804112862412898194696544232604718101619790177234651011960889842018540836621120379183860864102105812320615906170026084002869740414961080237439142601573681220767479798813020576509816134644480767801695621398360808298252731716881440812137678010155263368439548382467532370867644035139279065217910134503486119818207828749689626709407055739753961613065149587520938617835698592406016344788700860698446306091070951887123173004515763619937503019767701395940333970117647492170754486150237368254133066575296601808811211062602176128696174928984412832835365651958165330870073176948108909576234266340617562840756548418980664239365171594959175584583689962828858427250203867397480031803816813827655176771958752569251486785515108209170577131500493748753963992057466866726092004227357122575691712231167835185325829699821674792243469659420818593925839768075407598303478476108874577562412551377893604664782738267507198853344357705645927808342753896720586505549020104973197010115538667335287280576062806417553972851041510571426568209847154831799210372625894893534507937703222211837874931890692199028971715613791879077903018472595165609432735375059883097485170824712957545663446028270455564086048397525059424661044861691841857571784295184840803525264655879435316868673926047238982137906487161917154524022987959526650027740521928427726195157247541066442870470083196199075175028046525780480713760243141977768276093534088880170054278463472530334572378458421517178600501039255445054050226917017571454474659476006466670723448596828613351597467832972465657476273803947082846492199154515384142714889105717030756997148052114935022497955267172985615429834917998800576987189248684902940978098848096952915464240332942585782978236347651258399664111137707913372972738108905223496218275819450395706555427581802394838722841960399129326210863868105367709199235058582675668612715842868799354470129985148893345962456754662651002300641989576876336045422231440933787322541211221238206484709834169767113676145708542305917241146273386240561300529120650664947979579637034507238843157904473960900480598483785911947180607020747213089203066990895857346025991683138854176588052117037814226485697421069936591858202026119786470555871838051932522208404324425136383740108274659720489948370210193386947668208277577244696330807290670720730240717918351363632662674155348397723459499033130208652710446725142014088036444954434447691836339710724142712118387013976036966361535057702469828211278815602464908581344658601865220373419658870892749671583640693354677770736807314252023991825335315545375625043520441021155923428632475849970585208109870428596909994952759103220672794255780487006077458990218505178583335473664200807642901787212331434109167255014081464731481693365353395059371173252554181477653223114249252552592084679831198033892569921651299476464226284681827324837502227587905658954218003681491080364325772472674098161679324744340950834976796753227681058115296995240632426015663214521085725666468654523795350481428860762148625319036412936905982405618270327525444431856768311814805873886089747679333232792821972506775532007276439511759329922127487046899359351757563218530015129219625578386985093249241725162676006845392360045569758956952838375342976265360167587331929513105486694851437202191257039974533697955162477104620071806982401741288520861842204197994651231677060958159186101872382138088768432659425912455713035136290027466458682957032997862662461557808625832351590940735841536453294103269357794616450630696792764212737603079572994994109370399973765222711743548088779332505964396908436511239868353857886145498296221117383567698657290187190793366192227980519973585260390466074506285946055338548849146181613578818581525807510795089246038354741153415119163593145854940943655090254029148980860835452778663834982059212043540451895840591060753424629840696415277007436648473118800970068159858685450479148030924133204731582985601244159302894588291079813070821686130466749121598515516906682375835672068168568345008640737839030866086679755935700424520133678553038032497304268130581340618446875773822207228457396761777497779832278704594744069862115626488439300568827736987954302953534379013885129324450998540139341890871791188513488215718158473288874455454941857504163815248875895229882673210787471995177363541900571882501614669946741910573773716344212652526405714520374094774860397261219208820565731447219151711653305628803063664605454685193025247799215780968251694525952710323623589261701140930977653650318339072843111844509634234411607279363661124373958697036516918513162916550043288716121802428563709190486487251009876140831300401539845530959932774906493463882852582476848979168484424480439532602674853881271996363248634481569170702767221039351108252982762066300544067463278376174499786530016552419096298380642309251500940527975504012203890869502462882303683383697970463036254378425444769203264643776661551324222072387640186869965747428611680846129571303550731700117294008651499583025076361631228252786428914195615866252559749354007890426979863436229589146564388960898378934150964982479227120818673659592989177931388488525914300003904373540684892802061322570331042182849286390572270212349216678238569869231825170127815390727552210801779115861722948533287042566174806104403012965985288226127551890933494784647473847939853967748340560760089159656919494856887698764725161835543777041891277254107656683386008110771644531663661621545544938028457152649210564081006523520017299061888677521388000268007784159226248233216020468241733765989215051849028404861313440023163932659994941132773960369185349591402158261221492812971903173390319693956319258361547838790699740616626091335125317794742517651293425211776504366765672144721877948635927121385988943805380937803146005640095862209703378593016950991768283683726215233623607325081072889290128939031922223798857413586148515948631793296051607461167020568367144040273845344721002768068332156644705201031074899608223955856671869375711464813479388194533085783606348121978675898109269281942742338197400863148320025240386384688811734891719695754948754508531087693712150710911622124424556422928648210427023241636100719495173629158329202069363675711306267094217642412407354198073713080620001840499085562245729505353910013512802033140220633832905517596990364778108268351945855727595419089124656143010769485220699900377229066718920815555942317410042413669118653785019271836938303166980292879822968117838374220307248867189284395282544093604570832526600330862947107955642029676530014623981397906804897335172596656576553767591168718493941716029140353683411525366059992727931226067912498127047668609166569400354306556730955316394368767093165508076649121304683169250816122488573353302005296265064014930544261736299432319702022510675240101391656976246287666844551485026125875852323800060874994956092537088849799413863317869101230112790734260203140635815426658903362429925786089219587283638874424211221016840400104651816328483127025347826000524298816986000930710641031354984469892223248258492767778810054979597557027333961320508521540863703218018490009774455427776354586240917662264966181421787197033009467390596099291283632217529558717785258177581684043195934861213522399717337405950856694490779644329165987753772661040563145273293377290826937801874892502848807105416522642767453347319757243307238128174664791286963268132267816984118031537032443902225364939275593557394015674103415000038523554215669978487636996170271242534289791198216446903754013303917221756627005525921515062764661686322257416883960029096038845381851289047753765488355546220410979963354527063965781858995386772483000452953788101102178781562050689999385328057964162158200439817948296531337471210555324074808452558589493120190742209950910831399994136383174691025643076619362844983865749139398694296646715967419016930104398202856251242732153437441233220660924809890940666624743963061682098741172766273339222213556612167421028918942684337951290749232531222796075591992390587395735836223144311039663429324704696457555117151035879157914419699273036618643275754829198602324659397819954260868314740178131197975398313720426235551702370663449877090916556530410884759408787815304700681930977740297745266235080832032674258172729586522431575634737691369458864838496452435710627986531327947965544175338988175244174288107017781217591595486323046834861889503892456970428583605135415487854360256255069570704764956677284980815760388912970395979155104107438398254417672972057715185498398480317056030393312397225390734741506699892274776300517595670770873120278665999571698576424473881631763618176587925448578926975004642745687404738767732178193726162650300228563206710541684832102505192170454303292033227067766101986452891360634352378512666221416214054477799022464503211661483441027100300514260876755563801947913004806220633669715495714531227536899764737373472562171275390273159410313747806125940950311068884463651725839176582094752683992666083145699710118959352771036060480750323278832942366597592204077555128958658798093306332016760259481080467293040991818146752330382528733613734582336807371458096906969978761217154368874056447915649459905048360319844100461889848231722683766562005828203162702737475268691617302388051856719546000149886501779736091570841575223060760654524802030977810251076046429393621606235303981670699666937063149794955869255173862659798027320227902058417901635112213332136245278778048843896347213308977538903574052457111672377333522985119855210923002679722951266429662159253224765688901531845860057757505647001528879804173113758532600543102801249792213112932334709332018773648945036248569526490201173889525242257660881366778170997718618579707698786806312493005866508038509210657922865926226671865029323769186751936815134023526514558410250749623357928411987623082727189588151173353961081337804278506321878907244155444270079393993174070929668355576529812943772547914498023383365959918226777603162270812878985142260010705783534091857476589914634974223931473905396291887276947196789577673821024949000683206064080648105576327177246006432636076596032818098666134000871081595999836737810257146528490898068733149650834295299472441732879238903074190735981404418838376032251675931175564146785615086064839792856925054767058525254614296614971029780632130935252228973218843967585405534574281820682814415813517983171389268578648061592079067240278561963659791609798032266891040037651653765846064708961043861660074639612555823271804252999125525257301736675805251611558437844903798737410491042315700556507873111604748378783992539859815448998073237953582043519717998771065598909530529938967880417892581468179401947595885835707325931079706119053070318594796864606131854344401336836047633522640346457197139655535928369718946389757325013775952393709543930471936214801993784558518527625622474031094420592467909092828561377542765961249410052470059685582149204825694209184860682875838277165902336604878604522158806508445915487992302281679522114693299105365654925771651956982727136955173548737132386995345549801528898544239597553405073091864852498032734444486127621932578436391275632569532708240319009076647624144286677869350801403438270922867522359093833943281681680563673120614568410335543097782834950687861807396470299321182901237203114447588564215425849624798251702537106677388669895748127032496692582333719158379075673545199115337857487618401013711372762394026556204220642328892501930926861269442009713215086560954248072756807519553178591414053114826541051447380824481364781364459408771741267495406965810731119626263934122467287895562447997117731705454378756067698000995460577810418702918522186175707344837821667903097034889456535091184447385195980878388680814262797441067455729373531948347121254886267834482630646824723983154807175999223269676707040273905864428008105971600325373941424661165668166369951666039935180745903358992563262158271067117193556116827920706019957617457594563188069304012252169442002816994974320832108945136360471818416524500536615823424366534379727231515740692325553015389818960040785068213160814623998474686395197350738195787504744664226619703909169137347558907137832043749518793499002272339634180824342081761238804722598661565634723113009193904484819360298648593762829113762543793842365616919908949031319206691396439151419305717802971413034758190512297166224312896066405379983912798918084335010169641077548200116632622310314249092260504088506290160393864700818482343609429667833122230436127415901684734704003102748590303249852215385810023903321223203530979350862388513204787909677283322855351469134997175251419076168139275778427807038440662916490120430701252185814517130447504899885908067308355368646014005231421119620346705821454282224630913576356135084970455021020960411996086287536401690710353493450271793139276507433750049788985884646420364935097258987317214138902956453077215758238296478754762905861294821514801678196539362779224696812155709084089807735026436928084317312037881548932734670662631001290190805091876521074953864792561216702147546384317632423168705389685429700392747085783036038378675913902965832498429800123354761495091122910621900032311005892249124321637534497459376891557442879130310324520039324652479411549748114307742333974715001697533075130218422513495921124322926721888054586317167327258315259358870849382792742400541269727362533830379545346932687285366025276991095461804411898002230291771978102461142812424064989763722671494371498958353675410314272851175169962408329641368194128612723706021532617579582792599388267898900364162855744316926233108747919665413500903911726945079707942749222733708377157798372204473770098744825555865937601028275820612665019141861388646463372681743268010530342356284826779791434716876081760209509270814007821486530759387592643864448397558074869784752511230286420784343203216619934500843512691577449880698457202953524086604648800470712996061579656923745722696071933557483545653238749653362072030800918378130270974822034029425666151632190764543009292215268570881965573427838332835787882481404137503562106942811996191025695478494521674644528431119551319835103379453560260198026283949649828049523300777166500102209275767355035398246025293986891875241917938695200794475541747845122695370625689233440994993952081696516847746183065508792090498369000086395754892995744393870041621822451121050587307114950633821747339939089005737414513691559766446415956661747159763950074464062855916255825193854046483557849687657516717568423010456338031474863451341476259920025947752698651280839133415428956425586096823262761756045758388090937287041528849235167830902051010672071454720229726786293898182252422131002599511982340520116434541275732366516440607109354968144325148268368927582390893649642696885545851558235635698347473822935809903906627277218018619986118649671815996363209455795983391080579147205481140931779000948556705547911536454182452528158642422186283991105927869559988141299773841509618637376001025067639240825341197818713060993829804156938668654812318932980997612972979101777999826188988041207433479923135426036684256021785867592893763921592977435909810726937513636185387026590317604369522605685725462209429230560873885616252697957191283129529997087402996025511191010951254854164011281528128144910059041295061363385808881372506234661997791163595998233419868970853399180777160019519598904619528704044796837743197562995077630632828814348721901557716492886945783834477288212602159279078569582605346869874672435988061694527549848647625466576268138074857486376251235004656318994597792486988023683082339345314737571441428416146216359971296024145461715395921989906340498333591917330481046823454631602689201957216776068361913941317906408338740729369026709581225036812986124300840018866143805328340744069589524947467488798414869529367700752637923966786888412665658011337991061880470389115432655585626323265949197516232687742959166847841694865403214850431089242458610051254718819816930691820000755968121678866253327097024212222506217115597403742848143384099317057798302983243916947721083401308145209857041173897892974891986861502587575316075144522969314032673065366088126071310309609090825280415791351581953415267994129381502741324344123087391474870740640440433165123864145219716085193855079224739630111498217816749808881118725033704252947157842118199619993240185781954998717773318812804501119789452587161150555993566007597912312701788755081884997070127695715340197798065625259168838796523895035574232664022164442874303179030421724791190294308334689322020008055181997330005914040690721576912267145458657497602745437866203393010428279376959648441457780063214040758967267583244479461643329746923577404303401613622974778176081673539132867058999919633074979044547383544165908507474077924153757987098799677018274021051633116919651567214391638931366384192009385570181962036544253433728366934857287524327354615900159457172324063653298422978856277659368594301694410565390582610032942667736510174618067383018840053544858047833917470591280007910838657536211648749180411859241899640165250230139887401934879968971626816928159964740479245998184821949681599976233337515413609183463511720365774582148880576662092574854529697677600645168307604078679057161968847341578161086773485917426747973386418129002000377658546388111125545341335275526767926625172426841404317531523637873470613428305901048597355789649636974432722674045110537693730582000132243059604357243326169697816746087625712388087281694536719352933920269260879146491208977500991126782479164443149567732717000617360443661759237251976342662435977089258816251218871685023948122967725153523108951090148687484386804586807717800700945885009851918537582516838892831524490690800958330279701553460264639567793641062649197285012329529142530241912727670692212245910815295181228002866829645900681256702028950605148962916199915701559662595680061950243065295819464460570028705764077614418885840053607053696852269616832065144765450619484625556164000631995199754328297987309961072444802772169998578125012906462348613343126755340769135829120108228620397669947802058943733464442205620615645832211139213252612688541531855981705338711290999016717757089349769551194558537418998084654907350561364370107680364103257980197581141669952659267555426454666692424029222614784466880040269374335545480506305765686094634047660995755913650933296726867557349928863208280564381308847623475427972737563736642886462060881612926684816148010581778272863985846382674728695229083712585623842246516449836200096289690976500383313214809127597849042114551788527929324563667543551762982321278965903969346475832633746238718985247633439131547672913133865425288030948462432600631621728388922440347933549554520274170974362500008416070706405543937750745965413830636364942331394421487574476882704975701193718953040976069122072698788805606721705160363611705623340508208174564844180177819720458116145903787701227073810299998389846016226454971765664490023674275990870825520284616883208354416167827499881956705286195010159024511657195714076392179372279809712849767953924065914674678033868397350159741786306683132485016025697503999810338053907809904576120633121910733098282190825895882916099614035902274804578043971651271548120970852299698797976413934543370066002686804639663676412723365139797099756708145144232979473824988562192965962314685497864228339688045589516367331499414269169252080156172929152049109257234478294092362325317103169329172125455151083277473087422172442290512294274561187970651532581764472397539503856507276515301573366402995148884256703681893284352119975947947356560341447964236878287618675312798118450188352293276305001233193727086995918620078600939140438060002919261626556732012317511054580948712020064871762216151027113376432780289875819378023180457384104441976499614693719895008678438502037793156722493868916950038917951076957758341700961876700865846152304301812546211890263391528764707165426964138082918955087814283220242596843918939324579360400013133324606377058751105580315356589448682659083011210132677215617716465900150029971524728105185114979450271723104858276576632468971864704231748211980319191359194465372200241364156296103797886110848042965456635136875055615202182263364154913906265327040607011204846363021141801173405631091332464692679645971486534720561134990795171460834285963207765744516449463964461801231595904745767021589023063945188260055034688487223209328870810830955387453498613104043049857683866470931804764909120313943168720369497510077615526415896332432986064441873016118014352080318049567109619151644627310252603598638207469910188282109927675829288931906238179270934140550848018564019434753929490196489595319019450439064955312394015830731650592596266829640804905023848808807375613479540155945378475792172527342898670886071348267464181490343136643950801905829303516119354207158459550522934724517716390411418954674507238122065839956130780691968498254503840505419868942990900955849536617111221386770882502156714980010517964163430644189803085224787907298545056990323011180961748358540245043378525398694253353398478051286576020237704029515458342363082159127423312732217138709470142109078686491712877444051991154271478082560370800561629924478115503997591808771049700042317043463295883674524658149973813755312349073278366559247589645940861909045169201776734344020018580346377373761686988591278880826466023735896228795604159155346451304523073543766533082433583364690392937343521653296050998297485477685713214211788560910402199186417076659824104599643709115392702165893967423839404517274875178801872344527231788862751793699319639465898271943421030566112115394449136527696752227460522510716790661454170907143812710201349425264989413769257835365117737906627474424988551457123886049445811981413304420793534182747748506984054116512530417775297963997616412417886777584947891741648013088932709608045822750622993413673386601002058241464401485203671712019188604984477438058044268644008964576238636957037743483939851414981774060119494868429119392278776056917094146456825061987215886037966195537013223986123434645161991485021764818989117898179239309479533859304455028722486920417757351588271939553160301679769485144322651658063731051392326576304336554315592728919404813372492772048084959102076604404444460479326263957767027603475735624298596463102437007054262699918113238322823499399023160302547367311449307833731176321503002102571153848759764681116220569235387046354871087209275831455882216818232877532718709752885559941525462085806574377787587993565892118561360327345278402923854190547106371136533679978358317651381452383489770319502921798926053688078717708136886320880711743275050889876304936190211845899603201176823919645925397443398687600094651904458920516785609573807591767338532936728512654679851941541165761957047497382516837385581512765963506460347304388807077282790346106569386932741826490310719699667210139219805144151833373878698056853565685305224306293815560790575285695107248192467113942972090349105224653272827988219464643396566397275860659105206712333652279791983475348759481928794313862652831022116789308656532990804291346320458827989792881788244745594790638847221420241463864806165086840311234876500907158851030033432050855888410162652279627228325835608468831579164380870130340612397354976872418242486628874525869854909205911740073116253136847487640588257832524019159690956420922524660691268741437498753104087753396998743464705151960252842712674775585596042499573877726236334077190787950092137501541802243382943602904183616980154163144846702325098321283561367184987786176597171617100708013750493497741617845712026922555866979724950781342986835465176105324137742488088601773110650353356608172296488728691097211889508261244027387383073476749897692586236594476756089644450395949268827821751527867350486101519702533581530368251291773737949815296116646765577260954152326435277206575753969435229887170925032822394009582660745536835817717562029052024072334495122233192323469972707038878312923609098417740290208421682351595429596993573929931091218040133185310084219487994261874924288970174192244203218028276471029641918208443310706907507033720707114395578662133963323104847938331207450989208920253232041714505834836138254634951999633909901540167092382817405827585239300317229590501599448120711799283307464589104448998628883349210046774259310103622020410302562746831884301491061608623820911618563025664909060022832844351109687652750632812511681658700136004385530400157396910126395389510325522649901612898693211854307414116432747991810354189434517609832779891344289947381866145527263618870020551186334981810275106120001479329147243348579940241339000654664641908874786496330577407977135530389575485435562441091269575440585749706692526417968934511520590676279359487747419409395051485401652396829492900754390243635695731199067919601966514548528467225574707529637832419825412749300222962954776277767571620463256341405764247436197005934769194976817828076188465251546933484866902793419092913092223159624921143292911487869889681259023506713632240191262587572096639872538491856907217918571361051345969390297878749776030404428426117302907449830949668633107322174878121891707238870123300503733873064858787453667321422503194076324844982858019980007537582305017190418415085800997774368739732523628290916733744209154071718667119969043690641077067649623794420560287111377839367450069263813179562996963506888167976975133177361924536937043792098428929012672281334773430925698363954359579994525944827045625056820108256535768014045885110641826269148864063314855921241097741696703349826885575570505263188039033909155129759377974508089862863572690884920214484270009559183775043046746643578142592998905089621388652492390356611873679274859639967194601605698305743290282452536482672777279526911560188808820230038101042865324052579184236461562234394180508336095913541458282426878019600845806418177784439404607285476574822128250666005025380459683816799822503075096628451332409341514043533044547903568258879557506130668987415461242472864636116036246904393187331587198856748282151273208043849190711825129438781230239495599601662142737068680652490876178603879131156379433029270156067794441021475559540312376887081630364143697138455798242544345132286911930720134568646271985723695922739328725738906705368634092867797409800582055872675489538305638668917501733597168769779490448158005928339069198480402085221140750701530293523635959729893169170123868208512055952828766808598180320273986179542853024254067733246604972177598856874198272919298580882131947491571660114138714638282842794551388959563589628433851287772896711822533159010065850777015585319780323967775202474550295369776937865433777852886212523578503487347761221451037358356671761231688412592396303711675353652941448865065916981495605295382268581332100165809219490945136410896247379459570547321161844014295024216680475086495045903713541614384020998070545052531836204109793628507596649533191280711028187854315285049912957394856405713997532382973567200891725454580342257672147344002647380426306414735996323902490723566182487020639435319869131182168728694053895276177630385890294700579356858294392539699886434589111935265421623978180819159982439349114798118815900544384055463454614544792867837834535340923904136215449638895657195342816219074183570972170602035449109014902332730621840340000511206540822181460965112308157405532453232944484526586649120058071720287858990040939635086751656529827386757870339880869410384700894345247273682895608352417185615740337001464763591601648763067357433065728806025946159982828015056449845578210405711329695824611300113497843365786468264901935111281384175239253658197066973690329258852001399672170041247490906300586437783473855355359134890077296996012649057080351596163271347352853081170740130152685239507130122161949061694327811349967625999114858061988684420887493644744603631251515393051620181214204836657305007944702345280051832730601505677106502630625742910527450065143882088811881917079902286025234832363431778832890885910743375253120803054111352854759406260709610420116086332448395944954894880885416508874345171275808555790673161738996676373562793905664316471007489378817137133787437304672650740894265116411690521247126663380223978040658991480553766109884735876829041427704589871882963791735001701892790210531776409648922578997196532466314638411730735662103974028986171244380597814007341593295290332989001502387023458150405548293579988151910520629434893552390443933958363796111982635042356562204567664302981995091239520848148854616113755113009872681799353470745183236099289619112487344651417948301937830270725749979396398768809883974906310121959492159206372611511432142366085957507823821301416896838116782667168643063698237942920065359148197585075182688286539049903426203730636149275450910925962658469350294501297544133420012815008110706414477541100529448133310586323920606855152273866835013158906194095462820788717487906016267900630036989732530668025141551890944652874733212417510604854693352050648477822756952291136031044971102186564633526248736868575691282251300811232361538771493672833112984866800163138268206332249672988603894233484280214510928590425740478441450261492064647467882661048110545621366978082284588289953057876271990995240902587714383269291134737988577655150772700460316946964566636441341448883562774517056217490786893190640801416487137102958239588810754659518894077945049437187462708672675607582867518913027559185270936156626874717921646455039874024168057006207584715714021148460183919121039253691481563828915199134457923933491154849759488162185236119823852776529098978163213548068990679620709073649250855642556884442729208680304390557178617853635524323366111438684020643848093641048982415354008381862307731484707362619617547425661849577407859930077735787844564790775742298573247393450967008343085559103204644955557336167854402407614613369367955073989734146414022148674667230780904362283905056491678678079989933454897138780458523780809834648038317343503550500404845982176979518781012384509468163651839337778175834105298231624484803026552233556993367104190036841413087111596487014115112421166142590241261321381016318331194006409516456653521985589396702780804724858755403824813502277533598080890248961088967812613394723433877148613002777003417433424728092050023182139746924185026440532472708002006988535977542527646029768945358978353264062382998047605156938123854483912367346396007810441943448668736777427926243256260408358654859803104762969664178782801198638782190317690037948844634767810688040238971167664778145236059722966858876904200519735376314873315959503445059893574176564735163818570532749417615470084594488094389424947454764982459655634311977286245027384248379361235605105889731832948324615013991339112880584656501945537383168957481320860124539275842205713248405373909456415199285755801287919337340507217491040676756219678860159788861478351916174592150977469150489609596533498221909107543610762328685068113736328836876503469194115992909551664267099674455461568735540781831600666640670678012688269919072294145000379028265743394188692111363087167915667656392673534926322942407751031253121574299017550385491206586215696597141490191257142487167185257529847114352577960429685747501038816583093856025304270688771326375534777778759431730610657234891917897426615366255082542950382632326892750670552287046292632990929420484011195163799951831904172188828049705096352315788681976291176125277528969453503104624396812909401486994219199145531116597790796994644958541529214133372390971556601700962399855932328506929336516911614596576264355243696115294603705759280877867161381552712825528978426117237831512746944477409646181084999050525872029346226353904200716104604343921888424952840855370092360756212973400118363171435417411554095298617251606615662425427635033021188353649059652124033858571436500223144759515880213170168994861961267863720036271182101851833371901689922168111531100567284088853237182187908975815465144447247356637058112564120742738444889735110940408348685784509987032678106066547799401259090804704782886233219880872806160495723499471397832750815732626132935509943678654138053779607527524306263584189447081914727686087926563383967802195459714442352265138890225729650106057285035587710428950679296939150111854352637222201554922832217460528011268713480998346210571999977906772665077766577743377591940932097207129106733352320957581303356105103449787559090436110274320753188469792973449948547758294723004991675733542576828971879763735805884305586430873385409803024291615086695062490431876135214322257387263700531763147233608145840435515518240566286605851476040965848754221474556263510779178943554578101713915805788396683602672273516795492543123783363457097637278154260881406425819724219050545696112980506991709817722163469159287260896225478329525253865266904762314519219178996204513568945386456925078034209890712299755404261103864932606257341628759473019990290360104209120258569561477824731419826255671000621924311065848999712726413962360103743002990989633093852021609980626538018247695619423872217651882121120465351496173613360974971582545313701749836283203767833459557410612153241262933235415515023409802824016316943690777008696205120248525239963863463507793179770877949058670946159125972901256685244855150759226431168069789132111526521571398812397270303438300559880337072389345284119213311773001568012495557788042830475746576809394897005553564675642183859614197103025173696371265936847037454364768056327326122493402158682394605586935372070321940399830994476289777077897254583298487945063990921612971814751289650787768841666245873444525944881060738424181731323094861094726787399092247768562206892137937867918262536996869422146719737313731165769832360102422600325204185499333846940103079050200314752737869211552399959007468554899827580393745026355781661607476869301721543667517368529910124705490316608724672176916054163268033117050533054945905986088121098743409506742468800474599957020990627479365171913534471834781401550255476804243067344857541387917874363027976998060146661645805020296838778584573659885062679237027777832290723795882747720512466668562277330188547715688950353541893826619114661882888898852256162204470768379572625988260968905248956890192073698893796126712655809482799344529252929451976872792648569977120444227562337376994714014417460458788170280753690397952546333650971465928170180926783397068385821693348352050352799280313746154215501322368775825323093390498481083355713954226241297006194609177238090845643774571321570285479137249434407807904820326640915118581392374599741398255190445319320685877816799848871690877424719341540079894044315745464411933886509762285481435697751195104589410088354119830629314023745664684959238790439891759013452199336527247214410065404259093192740270276873151767779674347243120946757371387406622201962512834782941892000347389971382044332568097383801658827949687994940567575943012435860075149248500527733053824045914670253377337537040476126641168292867197931464428999918691908606271493563530613790985188757064070123179344872024995928116949753963363273388702347466273988995865564859472079689551844466496017244424322429176760600697436232327222742713208767173004093730205734562403347438305966628279400710621679499829982918306360507292579968637857023558739781112651487345303972749511910231080581629032301213751812312528413261489091044732457565707522965532634339255462016300527208321335733567672688005622279214345030859214562102009621188552220994926504638357921628196293764318374971321196243586094475373306429842436902307676689238953059139562857129647016103507131197494225107102253090176932588786032288220312762835500497851573151677426447271374540250156227467642982069799661505413818063969395272499243821911025476804199220882286854693728336885909478449443010853082549503057671580427503711847367534404543444785826266605703412579167899907802794675534300015627873411329367640645842748753190010208624188837024703785095121168260095892813066483149733523948840800243824821926455408529136033348958093864022517438895325581195712201237015606427223978578009505388113651192529840470484400466570378858302538313572613335088208823656423584723122458215072633029631113404764946081056598150460322071219385789183663506943119010823968110499423573888836253612626454999923497982864772976907549394957703837217573689381683379210038019229389744916285982464271648644564642189605798589208320617166421566474290621884202796811141615352072661425423879724345587010023444269088955577418258460041401332741448679724829955341887362805687094923080971215379150813614698955784833809999290468521842191416826949520860162654896374552175294534756375544824759151781795769398094296631315331172019609649460302760983407142795948643106727594954003399352306532929524139039619482992210129180611788641380902520908379461022175670645049189500021194332846643195737637091632720665954572090625272930118305857856492002940273340816643554954220642825480162693317092595647627418431977363145631717988440954182666886895322159291444895568671495742008477830445843294644797235518082948591746475606371711513674216733838531115123958351640917671811237588429940572657947982658722276024276776591953269948517490877671461027476447258237466239586341264632233180290090451696743487625063088648358719970511406953449591548832843093307145326956787899254708389532545337337625223395806851867948212828244393108302625232560084389104863221303009770400473974012909076079398959088063557997456266664311975861373077982716771614727985077911297296106715699304764325670150031072987761934289417644409552466198048544529588761580934583037979930557890425341968812264186569457095787215357369104207879304286365065953683137694289272174229039790423991657074811836772705518094100325208814466905433917896801949249098934603958740537567447720274494927592780916844109490043355718252261097228585262029472031001074118084005463118283115376060394754037744437253911113521195162421358277495504231969977461758360599866774828448146599077431444278147616182141001043617231830420570599236458251446663252846259588198425029966483928455513114850348613732408051574977630106732774641125720005825474475900105393166337191545035757154824733452370335390567672834319061131494363948580767289218319548295185096513620057955551663110773194568477797558218950336035810939832831031933353356723346776836739479197746844739903128721670009155330149716498941044779269247339273350360972736378562694552766549874245403207236426913706769284144976251872122568934729516157213000281382179911146894361531612751049605422292390203680138216463696871687442936144670671899015714686778338082619486826196702458480811570739495564400528083386395423012097977335680603761960567399011500910075710697780867548329183020793683749292012550172008563493684777845248840004369171751900538990019477283408113441634941471752495808668585109652136066254277705898033501274245402683056221149420740410459152723552283264953965896895448968585644908879579388049837812911497551629540512984691251036233881930456061147580619211970692507327219204729545517602299549323632516091548423234926673929679258936730364344688849982108276042706552749351569271097800228961851282962174720635196403573022139059306234286517128177479749422005475311806734331442655317261597297593296690826007313601317829456557339061752045436791774122859722665352518513761609990559128107370414125517122812335137254751059399961046827067811503575504005422086468895114636627568974002754043208422296277559029633901654308618057972944307270021183147016649802740077510081042159552153065408008550249741941684858940722042637682350978435107660753302627302934888441104629805465186682113894240305892850407018094452368024618975073020700935042726598527165371874876367288215630797898476861516164901807607649894938278704278328827860074697052178189416640003396194201786688748638721754203869844154369648265598401625961626908870818124147420729932527748609001576227663974292515914383898394849783595616795185598469245102468825108754565989179176932058701859078068361601850267297293700479053940560823308259842397122071203902816105839062463855775000696975237517257424412942660567864613016521256217939637738951677130977394766610521991996789531929937085800021851109854758270670269415207389842647171721853240818987066505822433505127038232702200931328859766985739523901637285378238126775022235948138872117228450231601296256491416394063965803547106036936746074449092084687538010799138324445486895242141247078377208922373671277688719375016503615656008032804787218368960363911673097725474905807272854979699065908768688500536208474603801009806290296692116913886148541330655969951231346340248861492278545979200126823798265761597299368875101745911470950217458315789196838901819598298898869001307462689625338959780930693628131274114002088765665433275144373657890260193773253698939399325086281545839174420560561598032890350188682399761373532836467838395879418171963637411735572760915822391224066959281451140614150190189766807140093979699322804095748261008385309284836242820629758555990020697690861911215136237706933676331384714099618682801181912623168386339047676990635144341671841940417464465220037815108609988277793934369130105076142105777457778880543325544418833533661996728417778584600949154607669938617501778786696831500955496025319166808490940761424542891586914285527445982028987718048134689359403258673958249656012868340789923062231782466287595228372166362973149013895736782310986965208726780726580883046731534377671238364937248547773281373456961549284918903263289717950534001728283188412887940813264405691398882226419226833509381335861470468960192826543562560568555775364236690583448582758329441901749061689855835037264477446710404902484504067073208704176745422229014141462185157715506888372543171505844398173213376744357686145706516613101679901309835477188212805328275044357234469038998590916394712953825714100631804124712116066156246008271679121381027608739030429078671676760005418384110464066733865514224081785066342571289527788636773343256134761171280134760427805936000959420640694743018044901778121388485501392000600828397860830590591769690780199670128508880070629490649607143263101534293949490821874325555990054348456501289996990887398268121980061081185407814046011990727062541709280016972618233739566520156162229372582964607417981562726468923093682802803167292185328051460411562194440853199585878283563651012566899109015013675573321232536608995331310670312901802365227784595743138965848306544751793138426517588350733702418697450908887994027457815420267512558238426795582232478790079768463991484641149748836925257808370111057795715474010677966239864511050795370250058172986601165647101128597520442405834041595911027258151840486845315462792420662412879663747664197780306115930770066752506260661114843617618638284290271966463564835981512844322973930843404505932748269337495463159284814717066691359293984798605919723393231836149320094286636970577720023032307960290217259348787022552629047859038667045238797908849488859875580193499386749996602823173125859706837573004771735416466053791645887562594656040628494949402339670395895634825561627219622841345641506468584635586903233843715700506759278893863107398982512766428001040111921827243013928387959609809219795608411443902744153925930429081751297960283202307113568214419046030700350495619201463735593015981341880897708081223501058138000057445115022701046614040952690960513310791168183807570660807352722747920350270685094768708685371207027387192956771514575368387749105629895701088181421995270679392460884892408321731457876938708003817380797885507734242406198270598947060214250253172860886874596941497049199503740663877539862427641426703717551634204045693980090404163400256465239077163190297313959191886083383640118355734914508436498292172715867480161921307731084644303784781367370818252061350215776029906274510834141056753916484542141307975572918651395056659378565617683511462026975258828028679219715686603325823999616075792399212580453687035090268054460205139174919446988936034610308223682352482403231879410856058670353311754458488538683490088179219155913111236002146282876642608930293563403168015682603446904827867218358738616307627657809098344556172059901370545975194427506144322549609141050390182535000764414382104408197270238684029167237717302324059997734033717566303259854704020133781328046563389512983966177514460879501564591987423628133696607166981173032522841135692462276213662400035084768191322745701646476079180590161185609639875191816267430817220260668503391983384829253983571083101594569352697148072292224935997842596639302415835249574456139795167588277085397022379828458342764941092019541988670683355374709804474297092262295856996106920134064285539144409055968237206635239680361487088810141535223022389405384460500719859052790042981404916196581248776104444006833891964156507392756886847161726161045836529534991718363734679187209695346384277317078859439170944886567498798480349267188616133393369412736129018762223888452124683053251018947499622299010118504227975652398228004613182641056706229833869920017979691750868355704275928332504012352352877978015860019682587415368014940464685440041414629099615229134827822856052899555593851608595837837692262585067441298196217158878938427526875198839190618481723941323652458330934034643170701259888380902624993697140089719591165190174547088113692129738100083881838492029942048809141168664319026074953990186131067505358954494462614789602599409015796137240390123878558527414857058099252191798890256191416773543114582442462775405905109547126259361180893941001891848998213551341389385665426399222473556015839538629880563520304041269079404965453668687598475424503549213042963587762296649998311523308604070871378661379069032934890076750139375880206326877038154304051216955414808827456807096546521917769683310218793054321498905200976612444459202840483978263671619654977596166249196123269444670289513078649283388773317200972237444214359521682479325204487734599036464788288655761518827447986568554912979833695029902731203989378710816779169443231791442927417562722702668725838438032897991642932203103717656853406710311373409603242146437026722690262314948058924864098114723218789600233089443955773220086193115005123276123994334984879560969631284856937437463871687998336712899899633396247938260515056584089548202717933553024773744227053094968289027531563875292944747431153669723363053477653075745938823991497168563197935952698944237001328437402860514100913378956189265346056846413021634758967558835736736789470043712742487675630311946143160644902743820081142531322549113630989213419536528252228857316419739769374348670512190742508401070540007213268897943947827825322722271313111863078797584876092858000777811004858146291241230890433633433494487928647729406569778406318838755409786406604222854195078308519696976238251303467377269142050624668488397877103253380742101534292178109215001107368983636301149826081413140271927479428044457208165757509231792086487858706331819606087703983858935871967525541590768011075475500854833600199260919090572226181635769609571501020860398488671511917048923350684366111228152347217727635572296788149395847769625414021590419795126805194742971763913283756025708107587157175056545385212274420719358971380059806265533193447169879228325009619607213304107512917377311728776942813842816042613014925026723961373217685312991174346804140757572748570224418994187278896705340384619950134366558324449776984456889420607952244361323764912948170256961560542795148357372006585475274635411386952657855644686635541761394879398851256660996155955949291458783899806884257420064764439295916344843379858025582051980910232468138629584066470588167160137497128746310511864434021173600928075428356153888375775181684586203511413400429322751466339710162837181497568454840511789692848233014753620940184481522299607188087820044767507609632309155326885147800891014904528925414985419931140536976583644920326838135842632277530942223630987952708751708800477342491927047627569158350804113165188800461683826413893304984394314463476476439922189684092191072123057039847759404261942270739027923543159760297734128757330490924806750265181217585506142209282013018073721986367335137931100398668676717611650555654152392514833187573352475341039984643038504097553908356291175965473355859199430377938817571303852432766025131481937523856254005227567530045693463545041025035359040258481725534204890295932083373130270803210262246938707856173186650463618588376920846794576389712246409934892676099266702402313181057558840198813895930601713083183026789715216151994783081459282230862852044903290809963681065176335454726710127203844015847431554675772962162929827798264860692006440558363857095955352000127813160427561475280467435962408544755837806147717843069172546763924419718781733678498909946341365553102730306410613644915732392831134794358479854486218991992210317811281722803086333856096916588864697846934367824444555501446977826430613572318098145454994560283307029543710849231348562943133440143771375284771057562241997429930431219602219661304998896664094726029706258682132970214960470269411932763553852281737835989920765991925514586331960961722592180705717380318963472327879610251019062326641427927762072852431249661337249963861679290034192989399947194507326742846637426126383574720107616829528934116618847075372804139006222956994279727528524171263458584634031427873748015805183687790927508020075301072341095911108650452942334377238764880833091056342323655649905675858644637511003887862506227589941161157432689208063922293458964507304558970612555324710594580036034187443755487680016546522066225307907511877481290872096103014459916716239453144134963014117830776797174942579692599558364640050733266657901337935765887750267936810435875159833623182619382822801626781768488487592195725407864318646909712872406335898297515976534627272310626287264148900355253857466125839694551271924920430923901632977472487605788969054902358623838576134752874190857022956007905855088424075696269909704692742648481904432654092538197323075751028036607635632433400045110540860428915189485354338526327186964095761416956693840030570333189450355725986966681967367145489293289017347322512514953838594982379314669817578061779869373845296017155902826411583372516043654542957827641115885395323689340901336133172066410461680669839939198169933986856787088389786820621556933639930433047014781415874468337184543551914545683815265473307676173018505718842411949847456978294476588734561092745848217579575583709740363322649266050168006336732415453106910359760333416100285712800125436737470664767576840068754135656231906990667149311929083628765740776611111888063503997352105945656432415028391331997629013032611639725922445199788518651003823822034575812874118825102276391937412842945011502247942398780360871028829477625167289520977520409413469621398772690474690303798528603094906964007104052916334439377609921139879027688452178365009040008556510629732047556177494646229622985729623046084209803410965852653498149239492083058696239716927437306655666941745462279197066957234691656109021627335737339246596595879682809894532948704680436669861522978510799230510668230914616069658823983430063895002109255883682536298883590520066856382457570998408668024831890128805109743815220837042930773048609726566221514604756531195153804929619851529169771891412709623484971277116628572272705190879292148627444358295617624518143054842013719180582833577426656209071970092017970893824182361880349267782274294500511280173435682917922321859741178363901682034803415139454088384331248921195143203737485631632841900150112824696131678200740042337917722790569119925942443422044782637664846666346089942646770186669515921626102873511809218951650497915653384850622012465327310436464775975700892502765712555945387165214067051692298498404323411814685450519229733391960676118628180488490870981826385808772767110102335690660932726042514469137769129765380429306515909080659705962393745325915772056186567490829021939941279923745050047803024237077039391909432680733566330253535880310277567981852931494451230294333267910122779030653681472957062180406251582283591071540417364827286884349311505156860978123060107823056785868065310891455246863094778522777642259468882035872393363078891287438631336317709823147773287861154944363507201776292518182579087241292122822014220053055234870247878435937311550881643181568216290281906785089618294471471607873851234326767945016504753103666548646686623943940829528096027213074617455235967404070997634523898096783283446156946088257374996389357634872520476105592794522446026913478411994195446498666317670352702443797534901931797083010372193928197623455350336256181288615277039491803285192320955534631746859709961076450370566648520762220328265022123129717980057960217551462577251094797241031398825168108680684859594394312978139583445598956206371477100836093369758073864470751573031960859765039303059109457689368711304912799268821561809551540637034320042193888644671004235274552708865933291348776861681621375003407838925492249194566901463798134048907349111127413390065790924812191845580339426804708834058568311069301263683353577670849971719339523913032935626847452588071521694790344485235449399271392849588198519548054977202731583912913194121105963911941841664925313472781688551444964465302824079701032817668010123527299549938348625553073129592569296406038023857877067622434931542061760710123217110791068790484101251363808634003241202001891924785924799878278563558084516782220875781877890720001079342598682135201522699095897216131842091239719789881072160064165538612597334400803644291957484707233234270181761878943671033294764987201849678602522066011307339562703025984062775457024499649821413880593275415098406580983797937759400453485040160578122072021076040454611574845548581450224957678696767229376168212788160377807362167765389745031430780815545401750409977000285563493830741819982671977138772309038841192339592397686102208875418895172729949365448543181827377189490567464520347023895818048311756473294437366357766264632717388082596287756716659866061645523845520842300876798691234791592460785575945070964442443300470223252894017277277962107132611966813774562177821434517344309800782035647897717034697078508107180985861263712415756238601526740751913662527801460709816661688825473716803683174724706557695152671313104883437535562088540244855917447510515842089746388982040800379862587614364094220666219181648590030560422417956016774334529709692569376532940798635789938537158972852454263033621624551432144293145592854139624224760596530543110139825762959728297083334881479920409751326153801959102733285246467823671477722943512270280755935357053276849712076315800944190743876143994680734441312669749554463222335007761902306683345688459138279010469786770999372982785315030055589442354848505950834439344691022701036901868819124132944947329392390855820116280683082683236872482259489988658243317895926544880578012389747825272013292859464025389075295090037042477900367219373592497606573219555423994417093997493617063028702485665025215126783577920348975817711447608121219703005902784592015543644939404055024397367958822772255662430584528730554217438355436275808916942662830509083160646502332662029448335120449086778551816281827953968401112694485805457885246158220703011821195393540813155253809986848971825362702301833146346588035886091577017279171897056290049269305719762573133966953570506462906368895739568396810327433126649956730169978812338525863439254930436711233864505721761136768221703987990765080832907264603798594791220982919508044006939780019616650273682485940106766993902654054755109591464898623881874100908777103324494936670242514510478589970727824214399146752346818464598633590502560887050298249085320331127431875583070095101957771939242687552508363505580245732050160982787410422092046088833452912161524716544345670876570559101217256949139005371247522370199111347515173197512097942058719259014384367251187750032596857687679600923873743500949795881278755260030616469666838828199395115387530059290831266352487045415685959828418322140007114701107814683013486765018963211990835070578381344551836414319216700040593453531300185298152244067712946624443199519611756806412441118328819627056421485810758139363218594001692589816103351420126978316810183801672241566471941060561006744085261487789211572760892252737343397795561479875170383748118025137838361344609556122736055412332148831068627959868821865487361288239464426081073606842682363214293558990551365449970461465132941174617296676074107813970102958777538871832049058630197703357988245377513835675300156487989895426768107278327273539225498903375698492581182546611337144659953323449983095344635028540481219243680959155608267684128358489260032241489353499052313100253287635941543397478429156929037587351294637188791259632951835470845051200800698349542558160664775200897346370460507297034537903291273823505905837148727332156512018598455645410519801908730389074602472834627736562358984797172009052940616344646114591318584450634610937612946527848798384522694228144489225129865200186885579592719810330640084416555235248799518607604812070842860496772467761474926373166259200448318192376528706630170453249881446059495090498452223631806090270344564126681323103799079520425783015215450251237884169341370236770858392543036977976426585486560886369658977060815653447309413637210476346209147222315278963176294280247297108986273385076250392310166251079100023723042879962141454397723157115693404216884856726804214724884572530209921029799497001955855504198461300550272465572009529524351945865014611043247773922562027680502475131432998626682972780546598882961713634420937619709517277158232161901774240150847513050439023551503519447124254199123315167523656212113371220102529870192262532844138426577129573033123382041832073823510386709627301428700727498136856756027478633262761919743931763037990241109430549525002633232820824770946307316962370666991991799991677833959745425985632863518235728365411028866468546848291936473656043529186713735603347404943380480979532261074019734804973648546706307516108644129668449676839558092055928332750930184473145925840670086806626387038863292989424642825668167589051185079286422237819679013452280808833034073678209427192291049911689162651659592174453567962597345373703638838522295550259813745635833313225757162529206064433142546387921508261474272043250111299832718219283228881492259396453585648713660947592923926609390142652595974656405015167038565540791292461386613825007966390249517616057860025491089329430588139948525348541632260765319788827607218576586834841002689788403590351966581683949568514377740418665859663678649239733344672168248626061443870427057901103570036031477324631214761939779506269072164869126290588911736295581919375875241698182112409016378057106157434628624038871247653757231037469672224635192877506935714495934974142724932257724101064455013635431186593495619592100427830612287168831888514137625065223844673829829317315175093705155329725757184297807864507856655680407886435343469076117176366421286727115164881409609161693139088217428530826286247653569060182729466091042228046313603486298797183923090275802313596743203727322783112353742770075391062983175075151056519531687958698900013759955449821093276667090090152245307167892129243163409519660693107421815759058476856237650685580431291259193945707067000332735832943085919144548466477692336320884775671312737429760580119043024544245783823759676942456372028097163845078452107314718682788857568404635619167255904902006634481660355667350824717371520890145198985415831188961134122433096878948069765681011431185056428395085344488804504110580579995047499162011041818243330204576312696291681917932440271038718913772764079775147418221256522283209975636138985451329766143417085053366511862259927334035853725318372239566219144339451563689005377144326364309506009280660088880051225586841146396189576939722959074507406329435102827997365807901845250821478385332188377485840728787109217012511264339171454326186483121981782189095091754123939200049695924026317690232113375668184783376083667846556182274136933602678247197813299298319410628267892534180975171834391127130818391435735401115760555383558831458511723088271763899491057571738177755370877803668558382518613744260907862864137877959359395498068881290546020966694176332219573562069783238282115978454821997407647794713984208849798966243690985557152121431965093896597408954149101281832655526094387249307478400700797475739119168564656646967455667856864315378790214930181291797489208147318790284388605408185648871309236048733241056697108373662727018753502916459531491043943093270761733552126350556396800173416191006698743582392953214506548780346263875820014470790214256187384476517154867011171237518607055759789154802610170690790782473399767936395323759999229810566217022548544067301418991163707406440306504586050345154988440975916353545802841229992429781732166723312677569446378293286217797388533113544807493148870768166672503612921054060329542063951750124894884553323139761264505504315693125514455858049979466928629668021889581991574926323698628257461739057449516906997902438786406776674980565397622511095976080385855291543197361342274540774077962620858541569600308576640449347708132593915786289825853907305411201544297792554677983307520245321190176641839378818226834189983003547088941910677474969474633882786833722866900476189685328509738209905917667458807674457039221538461555118121754962611689187358017864006328629433801935128020389695179118359994817065037206577830826508942270308012993742308919690567781267500173490992432844400361905406784287296975870211643887685964117834057895315154510954273743399885860250734827390488273843605142025211957518770830748323882154261515782922712487620861068601490881007763664836916998935739194272668096770789808606405937991502860513241716740453591717856211427754776241484401217856556630945674996694221851211047596462011679819515688722616898117452959923039760606542885403404823535736305478626831301273488725828221845234209411235541127456665071781048578836545699801519062198507393631484212474514657210416231897669493846862814086256543465346329523029919365556988072276330301451160609901136762179368826913950588899639717963113406830136936382659632469073801482611629052927902037452999496214279657729870401987213128840935343815704896836244160321167775771208188001773064489727485880292260479366396144419782037172019323872355589619403958202252583495959438690440374216005297868818752672492828878938328765157940759214306047055424613078575399587853430724020798370277359926216287384836562415649748627454061022203504701404236522638389578593737990436069979383662862890408257888034417078233120963080940809835977952763887792240523249759250145588618602525067529110715912871217872769193648064956115386424678642499508157161016483788673927503384397339739729168645051584547917957979563008841455890555153249118964760373801302688666155883544752987013716038557005613226065012937359272321061517547124765407192840813831278441594273464430457357693242192269167679463971751809008065402903907802478735616238900758356085686550628698607435104380769950718489828053470917545517799889888138776073261200799107215021896442356942100619915326043051539524314821348007183074206715054538737215672026388579325056388385901617362343168078002729815849177592614414117239816083910871524349488583790415504716125467747400844008906475937711588670415618373364456678646105207016959709167194343403626813396627063094634444697004649276580100408010208692631104524528945887294362421367805916835179238689432437784962483505668271937433447357673667150042090467701617588100967317796837319390698230398760538425320136152407451701232620395643821692774365466650221840896508948747022487569513544436555075864306298010180878609562635089439008358961402299645515792195543328368370311190298437310057866143346325552138680629651573676975562685822075701228953221568017176666053352300479006900148866285187085182625820141836778059631445289958829534097543630907689954074043112810839517931819495191576362014882662112434752709377842994109884126833734214058794035476490178016541791988099599097686093692752106431912340038761561742208185085413247772328622284340683108649528320386793834987583380323250443225623103099457405827759399394465884971012375923646010896889841892777380624556488080799195738202812866441608271284404234016594949009793294584425124644896829640176360342606663939371488091852617861087878228392338603376920330480328616535545922888756115904463870268125408520413037767217281779304278929688443488690259372168802854425116434877321202510568010794591723156162893738380368549836330845698439303047474051868522177883002155732954511383987535318461864670250623457606037099911426676132243829851264046667155337099904774202968186095258764129426222104943772654636700035963441969874349867641015021585390029913402751590528208018953961028591508812483657696255938230030639753202063991058707521371661401603282326109112644020100110815657219633353043301175247479995863478924141420175971754420202831074368831177936209222634073985819880696012227191407797844348523582347697486491425309865796910493666748464175542852448094535512145712492134449646129740372148555400000564057337487143130623824656545205814013244066407303008773462341423041198620925420415236955564503918131505678879730950684980140434793712118234367841725581258910933866783748014826331188978940283409052156752276111009196675409943336449437366367400577789675788494455625000741873321626915399447450786207107551977107572915509774338127543484411991866009248358393095426809842454896133656295200577626011429677910921858088180968538899215453677463969851135107390993840539966618652222080992019165780213760606590779612338571513916274730577019064249256385006235092590808177278527309081312757408814194865103453750963076443737563538347433557967391408633866582210433709182660562311598940015295810432580270959896807726868030300365894417348886830311572895568480217187728186372549009017218053493276936321144542929732935718349968862129304479929293923229398232628660073198401481087536050759745129428835811144022629295647837583737193512561657778685051236123811802455979077837764745670665403865254676011971891351905546467678667234035535565473959374236168608328563107040453975567183727415671109172229231801796591137186923875409619743583881215942381797306951550547006733483353147347349803604912219395411219763167313859820296770017023944480125203616111219331091177664658566681096048864337981148077049511114030931809857334442322450106354947938423380159698657621184605362144560429660032482996235319749760542904457612501933653956085097590546793694658273120466924992942950269982617186804455373376163678822054824696961857552783418015498905734320301047537057503462808098184545451243322636664571226261541242399106693927591964437099961645433895614111968364538362300187656098502249149929077772605998635811501191579216251276132584113024249814363628769803806845115718382182199034204880728799013060671446274394623639518351479958601822816602699996100043354268907442892142868461696265761158744440219573116491613149204475062634466046917210054107733734666353427453203787541575606421729325570453788486130269002427637952230341833441719776324935144795828464607435387942358864398465140261269901520660427465294900486691726886671124496900468352550251428385991470355697547376388011594537571277842360644946281092582223616427202794143997929540227342490835476098650626197216985332111644156875680768450174245016837503931895349250724499002481907565929895577572194819122325048355042055161469883547782602043844378740186915568574239171077905010577651264734771404453158471466595087313378456806949497576823810216398796475321167121753593803022581792801918955320315691055279609150917038891799504619432652888684624358524516582258275564668920971351538632293253864960293418456787932247379085581315722443223949320837859257690979546712694523555586621943378964040990965124865683826541700321435955282823646455545726711593039844068535083234511172023211393449257769728183737193587806676823457347256160041118382492149034504277268941851884891870062289632288865526563930289508239376848651309606267090437767536923529529902085084324867146418042804271297725983937296713178014908544688243785591632061749004571819555367491770564625120050001093507282228208420564073233820746716561557353597995736203835690190191444880929756939660786634335018720035188492535697590969392816608060766692673415798757075254258705413044064064155295799024031310953670845133258915469804494650288411738043568593091211019901658675562449301936444146618636401121379201062866452170721340079052918761093207325097259972871022181104994851787911079373385567037784334419500580893087137696291501032733563568651120909135885691498000718926962290777997488992698454281911811228279162066668156164900305974235090242872461931184090269979558510827244324761344373458701884941770542744668924366423806674392006986334464658386258949853675144960892166358664782441845921830193394266901114170494888901244447056304531260885454383667335567727910145549146218587682219402075943742079572044861911696565074496050795643616512664338275704869807716339092680142201146123992142314740781373274268161818097270704328197344085436664368893953501783180078908994861280153362093341786369473830146665734701489639345996073730387839713793029908677249773875057361224529086427604787816370574929861203695801630355388245591172349784764885617200482664620956886139461965554851681485103738327568020331031124339328019082670773401309837491320829973523833968210385664780517673038011450725190988284091262633806373853780312941018445743178416600491195933087293153579229768888167654047659885553269954808965406659803814661304374382094393816142819653684174075767240124138615492427174138333099290968519009294713466600421992248917955707040171130518504182365220006410920295222173151858396747818453443956728592350847007731346522587877413940532083534915978048586261486113175109243507389930213891432774988778903970565707259524761722449058956784168238899791823455035904263610893677776682607784750881115593546723248609447784724687962848041385604610765138126184907997493441680449513529256237506353977352502827188987909809206264235007621561651795496887434118711690920758163726536079652573381478435324562920012877507227281827730523584269270892702015437746942371432273874092389216723331752608804214699232852220522234422722234642539660101708009680007831031967056188932686378470624540431510200687744503063513736769438509736655830420625111036426091643465763701826340908807057903810887307610402325099976279988709801082031156633473141892995499344094385109207095566192573310860144227127450049390445439718067156449807693032298176849360779830866454732201092294811132242400272030681588159040438584424236195372433813524939706604749991182288761234523745933506628623138171393323062640921093360152119122709481577482039643329011787030937910523996186384925815718338104263601351053554414296411345210402520924305299184004805254099553622623625174617036930042424785955771388641317847057635944093693880877995637136723457781151599801103005949554991357649375081058969390582975394622454531932358855495189210828710765553689648790883914784702540448279893871888004508108896752100457366490604987086754557825954787793706301159025694524188914985602788717504430610765220056235774197107310755339127881654016759460380962692281163465193522676654431462780231478449144616999299293874107267399983477529394197363996204105764313397972032801983619793963889278699824959855580271819175870480092610588823778915685404942750175217767487944400323664776733647404997406382283880703058685179978296322189319587954699220317405543539311327422827930263212596096704300730828851812267447311729106826033864121354656106639392742161485613665538123732038522541041217035869555605141184472080392085088030288013218189832838756053421230489350064422298617073010148520268713689202585654556218114483894724274217680939613446008075746513842347332696146557323340195599584703365232946573163989466839841508111298632252617449873065107937195049225486669293197259886630911300962894493386923267895470812345923909441534380714164842853932058666107260102160501013711858248084115058522608258989955662901047195261619524605760840801524552887980793328869310357345830874242413666189290498971719319207291505268246758582380386492466781985412494022867748006500986028120606886112521721470140640503030588208846517671863973134941616723351486593917541871599477037821281841130547697046897423919453826890476873321655047677889076356067718094354554481740629812076669961340807429272929320452590487212818832506155747126727234490747092524952233765396593082044076131284297591406650054232164025062361844437641067225606719174706169023354993629860059367731375119589562998328239670261945759350663697927481527809949471561163077489536949180329225668205905387596426391581423355175655527949379883690401404337146292299061212082986732555269123210354896733954537217346711144348630431436617328527368205178943471986528620830624547098538540242842281002610848778518698921815461085130032890272853557740606711779872684666940863368324654114580349523116454183547720579606768199207049053503866207447394648502113679146459986268346813285044304738500243144068043889312253441079142568631844298620063046981320169858579702204860853748032966204662606341474845963824185163060505422469446244121109641729793055179396961866218481937975269568189234015661069522758400522068309325707598066568062053069688147117154968192228559064168923111673531335861524794270798121315955278937153456795698495698619288463678555152041521349299525991407308092542799673664082318945495514471730231787852882718702946220777418378715776942516649609696306540933920635231052373733739207201686855865681012441978000996390712382103542546388104606548631684549512368637118830843308347536449360640976109730614475471698645204726822941032462102376307128344711771082162220454494312514570513018425858414423235399347768763269862345072564380762397229823527496808466177886023165692527038652903155330423364662241978607834977154800026743185937054243242599063159730092977058013512628497402760610429487494095821701846238642952003558159072198589272408025730934152672799279920057005187350775088686953960374644163664348310019173319012065332117661723814202569566597191484903643142484302522315047269618974247607326930259953166037776271534961678463666564034766704380535671401115810729804267325592593354061642448709838767181412202482940544740111051751917927532391193172989354640074431358495300778456849859045480749583171815389385174570386044429091012959341524885593927929976036586317405219429696082725405672721594966654092020543493612854371964745013808683962238440586650797952563704566858082113595374446974602957898267185286505090799175638412602594876643830985497226010005585880227498408212477879116593602501989680793140376475047948918886071020501550358841075180160486629463031335087518745228447206439248895158779290592585341827364764172742418207271487749394240761205863420606894709088748935982004646940406173206612680266258953379582596530904382288341534435608111170819508000924908416521757200162172589474939440764521268348498027069264880075537831377246007376387981223397984176763310453617248955425967880152755902414622250532426192485487664626576916560933158064056971258562470332345430694117394971121026085083520438127004836373436645193375062108770200597013773655803901559867734278477406460707175245202099303442586307118005237843632405397022840171418545138803605506766970968489523528504222881616409115551737567105027594425016791242642057045932994175318146648168054508004737539109633143252168120792244925580449288988785003093692339443095501344671697108882716812438390565914594627006918528094429492073791758112584287049825714785026886329815952887009475093690798954563819337908581826203400859560975159731677511990606240370457016095867472508299118686382043405218282757480203286402896478032444725292529227284475085386763251183153660834617571202713405470948791327365145652139185042653139239957660813121771464871734545508677187839908131490518584229846628119060010911079389486993582446804439316479501038042917950091667064945650970391079484754813370270581477481042285304258249549312465629325010746586283792560754578895388726575495067459834695799695179589793310308043609030197278722045820866329897596218699864874853433688935925929248269586062650748707947800508025657100153253367931763857479849144386229004591843382973964830653672697116308125585501159075701423622869139582033902761862749074527254503205660779585091946952239926629895111496618942911438527162464480068046602447910078112761791979090973590861214906481521213447232371617289449358139830967772974782561274394087074199471067594909162288583181635648495205234950904624327483875322322020230263638929104789097056907844856137555925857883533834983919169400223463780738098890339546147114362702603526342015907519506616984508740168781735175640193167730381039114010967771881704311584550175380494195249566580147698876834997248935807043360672277818778177210002255616067882564777808151997317991871643142904885567237705535666526876746348067363838499364622370327173684386031741769772435422756524172548748471214424165745679061210398502468969883214050632539351388347259032542885593611210779660961555983699461060342796196931498922325138288225158582538075950042644225915814183578425644676725393048211892644636109324241389380691779949352281385643166412469021090900114830551616628212940240405080599950299848021000491778787314983374791845594462930690170288368831092186631892788517098009198126982219755131298450239189631683572482409078517920835799991532831125156629783265138037393257773194367397798537083388028867048648868611532758115952575296244844466295785381418439306200917345905755236844149388301019162436868742265294672704261650326762441566447211568570227730041022726144444706285755886510987015761776995822366772349917798470806803875646985012548390398582624410201076855867010436711263773981761278719606299956904123908973749153092566841037451087618104172077762857616175802045236300460097734618285563646631649150439843085955862606378150341441630780220818766450325720949679163786255282978983862453791862765985958891765788522787501873363529505269621753105866742975691477137341732200382858339913915193143550724186246224238166390203240201461810019998231278010367063169827719967195726487361185278489173142674646444313415641735879906817289973233740102945353647934074455227391524072100148305476095834428437584368278906229015112673110315030094478088753579729071718279009164766004273341446550914092235240089646090747322951510293155212449940087423072075267683694891305977401576090618267753884009096095515400147230021050036558587907314479474476669634631227401564785657402528598890054851362425533960913546532362167936814002778009310532201860658780649660301385537031956440864372695924596864856042687568667072426148463584904072379533243881558173897432745058787709286740633931586133817646577044999962635730996940966910323344853430443568266182416401926189648473379028750423688224839160923381658866238522722358835287019724405000441074953082521856167944436304323467135173534531099047973204304960095205320393851555324316536067816143540383325990660428320664593010185112173138976917839068658278841588105572333918051791341794454717971469245621243516360467567947776756907807638502423334411904585727350237453878308515085000656993361534990536398365843344503734586926160054290202155738996880104309359667431218462319811403531598390249428886373597685915094819378070680940920984148122461905639991054031527722450191584087759808166178070003294678585720547648757840318334513221132603667658596916959753544778433901383198742874675024569467438148042965378500691360251973050713201839887061748962851588270645377959914682242768482355557057757425569758394693433935465112061081915283018892518160433312524859823488123837703434231897190883760482255586181699710050186088534112807480036899029343543781115641707505456976313142706505706266198914829452010905609878228284880838351464766454720453128274336274856432753475785840976709483672722134688571553468278824809715291092990565572669482444420753474904999279100096840234705721289367272705852197226286917380030389677770906203902122597510271362684750997098645989613142721645992578422001390454182005413398976680605060594937914967542240998122643269962718286798198689606373846525288807291511711530385552220710273895715871168536222364658454060057082373072943457417566803836322282854052613279601535422267436413938562782845031859562492822894447079872665448422148508571549900068563251682223735370352548016448830060985834470774040545759300959826582990348239905967429204549908480356721414464459987121615092722034310109157731260291315209666495006512067525395421942408396095911319096582969216959347752393432182034056600878370498800573586924509411903123005668369868477336090517093909611667365323228626696957264580322244476790118193232211732990029750214212934020010563707451817154532654084854226463711546764797433829381075598092769258384274903646605858685927011128238062019483451140559819195533039157770058688567183657634316659479031477435229155131054057616792950259764676409382683866329079817729944687424142390594869678457523133683331837347442334380130690768161876571832397310510629395337752677477278155014554569526926514800679511671093866897791031353924580582797181566020942078636068797801947083037831501154091407741901249750538340948420507209109544230924794089318280653053297252605544956073864038411272306454690893224632063722439294962980958344116270324184997639590794365436687988469375487707868444558395793948467578858748957386279259297872785127935436124265234435343535480102959536570428178130287952158263511068048829507217272362675444504387445624603236287570886175153156813657575715685938868951512150685616587147558914702237045969458423902847628052703402394503930227495776043331643466543141555922642909493269053815685538075391627805504376412819997884715531452056440074847113309904243975118056547363921978164961141972295995114979573707713059647700237804411220452277006476017580757520405894112456081208363482744048484500374816202440095251630863614486999830094083886858178987943811564314619902340521536856162390799617395335557814818756976962467410418574838437481194183975303953161581126235985299281784980435284695423584567405900255452449818229115723753933992664000492465997860877626231357742327288169712073641179248740502712184459340341008129648962810208684359585395294747998470425805419849092600936317069133396223920363106022408352823523393801045800821100257626881967422749067469835927949551953363544551023602567001102695934480312851486094995259165831854844065885594399222833776325686907002947209603317843498799218148719641651433311410087772353068426882872503554631744536172140911745170861636476115647190888402414936230906922279819943005020728817956023439469913376106894033473102244402563850368848599663082700431963025778229591526391884125588454291400818593252197398239784582367126334594729378765167542218165141997514851658926311296281752520310503797690256258784370756884103034098833538220517746179157330801004796910717332830896365351965837915146396772205125050416190608042287077340047085448711559702960977675251409331314094963170812167853793683501130680147737138053856465658041800197608289879196166192748309126362650014081580702066228613358299896612625379097908123850666623699656689069386724830331440756865457965926106537419205185094274650475459535892328263378842343443941373276165561021744405024601042519461797975897105372625734559972675038644738768523030567695239829305574729012334700815829694932606111679244742344977202170344952452631518661909308308245874035729629373593648618390453080173426925364034178689796111704065794860120825362816388466716658481008699611325469510646647911393316696501805751373059669109270825263137695757348495033101614927303908157341626030753682476588289211823072283427565054802594690917781065032197205756609129306303232013158438562636824469031657154583629669498245611354689434145389556998766923194887059942944853808845042432841964224431512291980407561589543277910961731563423178749577830314264161469989122719712932594590167478616119412856103114665036569136602210563411302938098130627609826697578296503475832986657118634912350060306791904882634168092720972075442637421764785942679769795010770067323082377058234944253108616457385442961129411073549706213517744481306969052886385403871085775453092143063558944846438872656861421027376636217923612803005793534989249932900330279512635039744094128323069473018692588878855970671254475740841509052339957485009032855306215348841063449637284873061260779990049848473259429153650096653143323185699597409586672207386884505475647993681753930359082555020882448063632007350675260611672209454100587572290137160216956352426724857551685410966813828280995066549766013581187008015709923474079985219443836342314299436685167695037017755075998211209124395324894131427803641810688909684166098657939504510229716266010266843436708084958417599834645599458428922874338102240389864652736984163917919131004305892470976028982804282570498768538157449218613803007143282083442160649777390729186173006199425682636931197951663689195011997372458182847982111186647367736837265666417829209833368747354314599596746297607804013203939924734023499732423745168259733398341769691980646369190380218582984262824984873850253519524090062716872222614547107678333618122293569494165417003910815369846028672954114081891762683927918669884251419222080968704276603661944714887412444251382619180734171177250850398558660935361210319653412467821152059301036643779688730352783022065980542753685254974314392705788864090498146076764606756612689805138642794412738148777369334188901209587258566639234460508799413557926276534817180373217025443954508954131863921290835281948028384228201404452261920009239500374330732075384895907279318276074053581534069926209904616064899114598618907608482871676586465037208240181252309470338769317117539770493612009052866521545347489291004670959413977938903944949783211606244804566042571661301456799754651742813216267081767943899994798876265181034960661708355880624461202559252044571500794536746880753240952812366355955649515773386557545724339379632826720834687477667481343936188210601598519475057021984027566854773366603916235692449050384126143378574625001446111168218923216284421461433771909820858619417041665343181397998966339747487622882637227316959783958736912520836174315970226847142253109586672403287319232847171741063423219179972494684926055174352489921556166114777373963066656487952451544893696948743868626287222549106332191658356755509676418109375065603933548722989114637482572495564340599460406844332310439031264554908532448321133106433157189956342336975884938261101756140932937988831443149118058941417393536224490386929832234147821372173171495756118603137075763669900288372774828111309357445471639814865257669587603869344048815200167668788938879940189547059286189436909968555082143591547576062300110961214335231855276202325318930285833432279187459093340955553147696564969010757397861522329047979888423633793992220932277667753303256118918991930347549995634430659254404084906731329824036083857332017198336495023005232058463319829319606851418552804038812873544412560362467359873404486288784363757843717678459709818786331216451402283554841167144093955678758168345874392606611092959360190712681740153169092493745059186707654504516466193883325475778765590750104624711365510435946110632272208680678844418383924729765916076982079753570516972652249160674251347933223182315286903000562156174394182765928471911832850720519893936068704466254783039300951741268155402200250903769151544259656342660574442552688120675772215711602799985142521518903626941810808222625879670881368872149207090363138916937934209136213978418681833546192315299075145649541911267465463254965127330733967407631983048549878734689953928328291815301510856865585192124373186029504013053711475355916984338045501688522089856062652679327590901413659143802789656690285841159122341381177395113321107558044791728317335257636765734547356594236323839460800717222692740232803105081101232351729096199843477639546251790211252980569442483585645915105117594874230209326140974196609650114107615577728358533566178592921588556890643294345572873937383891075379880148232708508034911423464615313795481847229536624212154164234522140332685697898318933671785139570979110252389475329280526517555116272047850396612433642309652992658476842988025913578185291486345238512408525202719554864862342308027661036661827204877450858154351887918163922809430794603183088854386526363214681460923790547575245579983445019457070860706518754714248553008418374893879360293583386218789410866421998571824763491780778497744453813533934984841287887120028655121677179519018413845693148581523272441512304463724563193466615953517735886993340313308695987966531904743064572109319520987196285402375853728371270971240194279255990387374112225579514007380413764775722326555441088551639526968731583450949188210950410454118287134994020268143345909687970523087690095978506490972661991906069466450823926878412881687408419505450749240893183676951406382296620526584542628583796612105573641663703115516084469250417392342913983163258540022953149514461155973074465467573900956789852810275851302571971104339063412597346460100074919120866987938939151720711772022678956822249026688343825994438802046879766544286436184504445247726463638294796422954139142742076516160963235821648650405382557945849318724859337086028379055958929633454495684199745838944266853322211330293047172961071345364982761296216214101189844326282297198891950365100491871877936594260552386086939737864568411655708187368497195790994518873042233951421009979285386728050575460956290549108174195051710911283617248967011642497001587676260486105796424335234684391766691278914287458254824168123415044104916808966912223200417889626952995244109212117443329834347303399139869135878869913259309359383003347486985785528471025123695258616987672183107221418528682997210852698048509983043513048160527054330582457442840774423912015839390428150047030944475522837683937757116479351110553963891399660792277506962197528095954450890974259822522433550343346285532665251901508436729226973548229755943753216994098181990215725795532924010794778180454582524819205742450488370259759658737209575099850006587028771246162362862065747540440217134363025250690933620457796640421189404747501388917696998057001445653472874659557501495601973818313098547032462257391864042309649168759533684904281101597553454292506465224505934455946946307663431370285137410477936067228339465669816032663877798306186802500738850362552474819546096547170359675209189420682557812278339897712508708723069770723008758560976161598878683672921746424471566693173676246523520190387515249679436969319999136652754241066494426983919731992108944353037278043525017963178460401682040582254655019084869609474764825846787982397646606237450500477491044226762456864970222408563340578760796355315165146031052644767064148016956532417306623830628010810804750250227372146431529230874640572340312920918413163405395055969738579665380547123137953330850749346334350558967426756686757594325410483406123228122757771211625569880346781889655107624244016813455106559457273927685322785568942662350382397373010262347826515915894887348767692237750574281506145938963881644282019167895371421898666972999257530650368606815140285265594141860903379157508944565496518198647906646043858141574097189622420944073021280945331145544184451534065413086059755382539424289053290959908871704416470178585101647902971658220343874682329892147127192379877486420462269564081497432383624644529360296311036760124730415181629111624342516160602805756980009759304402826601343024662882865746502901655724982678222366985317886847687204922951784174019355249237042440509780067634572170729194322281354276759799828449802526782135247063917947119371923012968599901247420495861196878370717611182583677276662006960489018628654361930308769318598549862043824030140346812317656665808360066200622377538940440254021716585386061548433681501608641734366081306070569463228343940780228273823553321971355283338836771558447738676788812666576939553659141924627586157228439445380537109105817076598030510052628052308208169259475388130155321351436515897617487787257006862771306843574981451231144501989859184923139971630565985227960368948509946487568231956764083230351842753476777302387188085585625664896452718176106526034177061806267292310262848758945361183860654812695595637099092123847623054254366275793430341621138098327920398759655945689738139376414303278639928295580232480789651538615401597971880022562140810527767643263058990715323840555098934545939704953348174359385029708268561159149611632109546468660038872071101420434302793951439008816167426735544707080480510637736090284592129817447780223730610818320969947819487680892153196979508303786211040385394535236918543218487908235031534035699794889762570975317966337820322336072092221932737184233026254327014158199662683980699343364495779685512137241543609685616435697741926998770388188145905481137376409113585198987355210943733440453730407852737739290095678932858943575775765769860377398659281293452019969327233136070280660901589128997960243347566946376542754275691304959949696369911366164726238050720497277776110305340654735241063358564672632586224346744342191812619103859953873304151139746288938788724217492487816350278240964860658181192545408450388882266446185349316536611006671520226818837228695176015352959761308623173482462188839427610256253619997049719861645267570515964938723298565342598688644935971302267648001318786122650784017352548082845352241342180963600413297732135299793291038229617204927178453527035799765151859647628706723450297170275612833289941043610507984704373405771337852227448390014153491815057061577209369222816371286443560734316605099731955194830960764276917977244492401070394111832118419559881074278992298629694057062918040732518518834113700421703939188774760118772727635090620041973494450240213823142803884706361536154903726280364286963104190149995225457411208466110013338555952691605061529955636662505755239163112913732232178966898926295709796976687731831376282308220439680387901457746674470654285948048316687640986565573720923198620040538726054686557552527342390203196157470772127649304585595406508174060039695547537090012085422276203108597866382837998504470747542579333652971888229205444039275208905870223590861164196876253319557324009497013177639557449910116290776722289284828864653729794473713680175964194647011824028358827026404788124018049573837825387029983677131754783843914641214784038952179722053687936115747545204918533829468167955551401197660729780039553694003516186269055776826715665101567620767852833467963986763663177479074841508568820244935374124777754228202559721434125018662454856661598334829538150958062925142694194105409303398755797597343479760645655102328094037970375147901152790037804797991680688514157321775563097037237972254562886563363583032281008468565910229607256265901929240418507490646914819981415884572807576694781436815570767950262618108686785775397720213464429739323550507801546713097712246698469807566554393767708412934117739068286268170951841655095134277122116220148537432090919386549436280335943410591365012243011289881825099531797344297139442495751398716827504483491287836161784733195355435937777617564269387933366895279268580193137916705783656888260579303687522224466858562749720257955270057219049222374873789556474269672144331487946563443593950066992940603071869436742573310482719710435614273196261236449346311449499207063948610952720950619534206336900207831991021593777664826755336731174220795639277038683353836332168864673941008458659236353332053083020278872503952903888011024620134483643082595102797795469853403739221004450028794936203975764863365843845218121894744958067731601702072977804574255309905122202214108310160799938133645429922854643060043312597208520180394532667447654000473174537102868576695449399211321920916528617383480925591580622328135590458812149678567130453488909074943577335015796348873054547926831108989107953485308367602923457399352976851508156890165295129455984155124763924139908266447412140651581792028213483677564660222129211774754395456492942615404793448184003163887367755609710387112777666276974580566524854118351168977361703369417871833270815961498813054366425384785922387316530987200049137664635509593234254033732246938208708384802529421100087498375546766912804397641474965776511802831244457303235954090612795181735072846614628779521410145929001299528512150424467474710683872080843838431580995779031469544709546277262018651651395172149464961540139091606859026382888435328503160141695976929917349784910401233571191142050290591750190610603942997038519593709046129417983293714891531213844950524090842750230160426309381194223762911903441240952009360466248697709671738533785438746960758344641837928028429809037323186350333665698925536740941184049346191851828517093519800193591138589854833587873600272552210849783166986165015382636627817192153281864991379785440998864621048501314505242981674943548559938035956807301474667421190375260125566039616708000338751369343880723620580175371024129005855973694611792313568798913593301558683876601120541224698013529942445301682100021302054664651359355742583203446032429216392814598543489514680924572406896811667646132062270431861860317749938165475942669012126397551715791524392824626098281032940986244676681070126336411499074887398218713113921054228111666814780427127888008785179570872639212821126423773686219577184090752218319511683739733630727158902263577999490317062698307213282191040422929938132208584341763380711287017052915922442075418031341623713491093108090248343270572743902677345205670650903162515161673093856898458028185621770007011811905877037803034820853247638316642304456714265151385117630510581047910523728648056099215568309793880523743647837688138542043491223616327715090770845909643991452674897918112655796068055175372033753869449949280448489923931301372906211539640512484981396985877690587197042823740837614595001802330559944724335540083084972165044402658231410712928486512160295008313227859548337648540748834861016370921752837076948007999616246104259493723796120954616672905647529145744976159008997370194568778000027528221753002241305886621702134534267072043528263852168621016537031732100516385960445476870400971893224747721961057439553409692166220867923412170172118855796661481869292708074717199848167609955994345069647724699839875857624785994766623032541669951213386137694577859145681727332371357853990465875790733550043928021731431911734024531325243047702788693004460354162133104614243539446640634794713714046480798857452836239732357841823109881044033146529649198944357482519855463068062285779699935475160580360807485977710711334591275096533677724429740177543250944343615122441746515485704480370487234225942585698569891648098277277782319451626295428295341258541560343800593740033519031660486706619209826947479574180829064551733901361547964026329289560165607775388438031791675479362894040417295819405118939620161545364771692970571033066437866437346016453494259118062099235261710587869123879702973599493992385053721104995643559032456668587185642845173408537856791305105242799863552374154129910569386600825359125790618854012178505870477711482124462563737463759159892787301754172801450370681367095818899198394739581337909885796830084294576344754266000590631193854318771373184614355761861888178722220464354103922037853944648174719078028624778681800469071188205928435297850671110173990624004463071319247391317310928513987398581083123738943432517224091768644882376571395895502198861240655165906166958681851868884839195224742196461029479529094910351082063599587629131927024110676976549488627365766473988861859349875525425648485477266212530109414974429333970543695536974675400050259181852905921305524539280911199666259403095825111184681206517622935744783478579966121866839005146915420867580487292652209364323591584392253396351338519832058218345220490387798576141049424235911322354604964463577419003716859252958881597570652987723549562505601438944905947646220101445961040159984645112534652336223039216345100774836056577966238483367840030997457919443601450333440446388804119144441737351118143068141536457756304441294415758458221300110727675088514469115559636098069862748948432591745749492019453349978026206734113827894944359643073097868924943685153172582666131040941155733766355183615932376249454892190973008610276170871763312599743851605174583505128933092961319650649155273013827370971408839548579130855273352389537777176779794853717023855566525431260131412589991719140320910977728185363831923609240227185400897487922273104167732924474693170816171697763773836762984541646038184305712709236827222285635598074092984197019785157903905488301493247332315630941459581712502773896924531827406224973648102959061296263366881483489282000402744341535814676562133951591303885308489187086303432183034371357191031699425225731000143973726272136169795723724782294076560886702001763024654733388044488526027369788949385009157947610857512130373268282669390388513471569341615992776724761732563888098272763974487260360727521387179019568128360000407288254187253447109361569379351204635218280533983378320456014286006639229358332452421219200035186007737492075444191324993176213166864467641004289093509753828276928068986411318649482482196550826030534421899811811027944662991134344423552933312844032202729386837319125344080785328696704761206777595066193126075929374470567230281614951907831120735404771788153102919011253859502897687061443318617061559068713057934631177825343742996357894875112911930579283245766044492674199755242020027319576177350134487335202376743563215608177170625865707378753906240122121343119126602450318543850746357723762111267301078945474097288221772792736781587914673800631947046205039758339358682931206264037126992035356701768201650290471863182161211295107079507992352745563021527553888596799270799355572288061274756172767321099560695815313597214226907261946756716505923605909311851367335331893552701556779458040591266207566469950838490327025929695135152824464221180810953508527334599170993863335084844690364760312416318132707240966320402454885468620563974519318216467790420091000045902125598025317031948001528499590733316647310520840148853361769765008382654201238411161276620144410853819719300897997186656267403824420444313598538152450982161166674521870346016379462884289893395995423405782768812093018973127630969931471966994160014242643963898722420000711741137898859793957793219637533882797702309274759965878615509209305744371040125349283566775191522063332522650876946251285957421752516124502627233689205492990681435006881817332062683624833076536442421175715440437160347340554002469482693613774386220602619674415570568162144162582062897827806598533655555075218702232335565523752160764822194785800143778862908851522745309047006552222925792232287335260973903547567838857373850039672902140645452870976269679334288243750075225315274750008801705817002436634615824791922470489284973471608846102245288148493300338259734221125639542772921279163938100417566100111563516483115309043002241153366187699724429686040218600279961786336489758547036306605977413181052270675624102462699777241548794282798891640194029560389759358292621923985249074268906657454239781211937529454569890097321816663442492690934056877060925387465055278259726138849948876772443401150743691086761960999358599238941614225618038078503025317484623421493604885141180261788019100865816662887266008311086518803798011235460290073796561376289923391048933804311423013542150208683394437428015369598818532606925972496804807412268801343995671360039192090725880504442401178703661569372418932487902500296712163887089562214419103607077660212624601592664027143604168617198035145143266998936104114102074081476041098725334589243652979948094978799002872788898824738445202762890675094566254882248463702162718038958943998442861346361316480965827238962227388804161469169409693862066715224448975558627211035042637521572905765092967694585554821302928906991815529911018207647677806652300391657900038856625815474980012222694032605315060428278262306723881252424412809272006349521552924423008519000290664639714332645057732100745602448297880346223730672005318679793119175232095101874940122311873362584275843367761955512569679965056958657807127396416044797241181396492833318370121952781763586058172680312966571220494839263281733395152213823249408518603888732599379857150734431352601781198184124093505795468960671185424250577137750323798739552469696352165169037046856401247397495822339034065410125305435231899353698883734997830332620139980924741771419089272856120026891748941586773017972883472275829303708716705547481894351989257257560964942892672132252713309647008234146987234207136273545852205332926062438193001513257893811780643175845591880473054252427551864382190872181331628514909168159216736009877128523725892655471559739908100251030027657350934277926362613580371512051473650116991520599549043664714080023520107867340405851304370353368153181734365369440339947756251132131215395503530698240610890637608042442006398494618561675972220670737956925813882683269907598394632846070216023953070980774181433543923907437534032006181657655989894211461628403462604408014206149479873663070045454343448446068932524800973046156121811829691897174124007328225487321850936905037018509601656178455273863309112669031908162005248837984565089766423462131322776961263675387983217203804021856676041610196020244852578540706456022665315145597722686954865157025706328847627909232365508169695350122055441593952441817139811951651289837023404849523865138384793602685888582186929585927044207282332571787778778654570405980796028036919028417001730145056505781276284098853288220751109859893605558853198766660170045240877733835359479122842040370629439336730008536656454735806770761101327106119150708309210936894339546922761050746327291630397106958141103246203464043121822300586547603705419657902967608267447825848492310869516969211292855053325953228945138071465343304896812113285686242791974194712645771086319741753454968905510505434514346814838379731321590748288148054031554893658451183632299870156870960576288242974199648743217635366199460061176641289907701584811171876726663494519844380833190966133462049910167599579033488171888783248481564555892577795544430371140411294265499596360365805077824610721556021713772896242356159878136412895240050968099409013002619548163850877952916852487567675494208716633875014887630842450683839163197289287793065227735451842198445415074780519631366601692493499798523512690119057535080155174660331494244161770822187470423754867210172091900401952748367186252716999633153765002805584021670408471150376309349843478865099758324421149113739661777021477205656379852879917706682294955281583977775337799979377453601220041804251727297288762273502472239257479971326586948689760151154863252852876836102095572491745961541934699449157724341015607221627831616007079681235131814848137288485102313500792095581191622552370140372014325394047618116344885642863158631501833509398050229551872197780630914999599889449991140422319499058293624558566653026099662737520896485831977642086201562237316935676657953047084730216554785923363217643089782330014118350698114965651722279282987313309695857865214202580206772959016508615927243394443420494405720269133737031050390232226234959367022560062245206250273209043324341527226602501572485264078790673887768292028167632723585778721033877605117932758486471972221685345082198811488841857528017511852091167624597086022469677529336944970431679095553462794656063189478860585098153456697794466650651892205063716462028707469419011328523178017282954711332862435949205363655255920803743766238529270710729434214564069349218383095514368624339630987062888130404709770806676201631920457313344475168022788339005121566112163153813923590871382358060553074698151476709013019314169290369041395069658589032335289844887087892998999960332050021034325080495501169397787544804031715155013699947830910173037503401280137488451210344685165657261442584762213662078976610616884588966391875916698665083436169497884278694800664584147737841167030351632334508367734757478051209850018966407676255303725311704732703466942103967800473983776250334926229693646327091438527434328450969146707950371931242139895695828519155427718463215871541968759376453371717139601700489080210111672520904559167435147235489412116910121442500931462580420868363920927304744807809710916806197770938749480598713437640199029734227417870784938054621616912296690853582992164793502352339317341053648532696400089932678195449667491340174942709190762701442436516177483282302439177260819070973854331419303197314666671517611418058110788100447285843641612039246069484188160330285400302676316316724667658016149428136649579038146304004059912356735928043433024483470062674230990269758021377851017524889028384356709447771893863290160003086259203955849321926428624235676838916654083204887667624940208983494585811820221389739454367440274644533133219277191811435853453890280288119418589013017228583975669591812505658082181051979982481149528995482152287651305563288110755868154154719631492807284810758179004324561707815600880770560426996545841022015720474115891990983395888938415319266564087620071000143372595578920792777373836803692529502555627783323431352678653651894699443815741701306044995313294486394526078936848652707967457505804539052499748056835367241217669733738660651199980177863537423398458477200769427071415071517940191879223382844105907570121562421108166927642008300892190698313673039428746610314738865578672531231759961666645624791640548787649549163797843130291831995093307713476302699199205425025036966777379449959413076655904343805850234544801955695552021007181255975210740020557136973705739861097965334697402128762408235726414383757671116598637599686498645658826229395947561696376985298232300750078747881420102482464695100197579841281671896594968511348084351396386953268764185543255751029984952367853664394633679843578802507504232655870858450505095593714442853553576093418482097574424944869376018380893780272181609332417902699012100986526759283564789567149058180560713657788686443933990385476325320898013714296624400101593351745332041558017034010890181879510936740675996708459539803703649068080689649674139170378348352924295258377234979507784731208022946857433945142869758520781229275528492134805231600951662423816709696694080311380618645685376324288906670367503228606518219833858244852651881880297302226749942318745992649634804556072794098903107172261006361190154072479098238132667642493714379568800388862506714288152227891876973296348903565177179924603006851539115549614966772628417750479255792047507354898434935413971075229216495020688352225580883914539768620807980276899516921603033970451475554569777844760633957819714468126772378352651866020204227391329817735009405565416012550897391968589933138499367607893602010056055857781242095422290052243104664812541909963811594911877776337687811383900327766651078068558456841671281498752441067515601373778699120993633598051904152178688191069162154443036052611281372190542849158623175650359701637142097899220133127537345585673214282272462918069097128894110105949457564660183965891917898046181379645346239547753253395646632536738312560428315557200181044675753418808376312040870492657328698081347480108019175599073293706783549475723062443367083264562207086179802600158027192760985018617654344119742444158548930353790775981764285620397108284188327433748456443693421058637154432834238999396120230187745588715097870947670940337052670592025357745227385103298537681798317017823694690143725977604832554102435176055974568791307406153719838183107285833673828944644478713781448122891744229067166079233343699484994753348565844598376778949934941505582476276118747289743973137395875024235562948847527895265938203030961455461549374486380428728173130940395754263820036949098724207944397446703623451822301190126253240787953892563939009974468205101053200087381163252323387934163278753930549745166435549930836697212041787368222843216496854462658222202386054720515691541542474061648366951478765873168686105499373096880024163178535152090003954495415700000705726791918256790203542164933954318433271220587818723203497694169600612751943271829600358747749389247248220978298660654050333608671462022942816923814152295629601944339594960157496400734047215820093166456157183942361044311726015714705460810701471010974693640385975765497664842256645542914412860690552314489985014417690428123415659113803366114688681802598374249578764857177381742752693527183617431029241152220940292399775866400238977141615192501091214066837244565070866862669531059899958047852008285672712409710890249613349165851243737865117929928901073770573024830830679583286191627322125625929463959406698952800448256303885209127592299357173362053523998778333951598062521363714642016718413159125865752240062301139460585330129984053169807317961154830547388084553797382436335060277360326783375730010963458500053706556066847025892008602554035776204096987390227317053687458999292860859851894600202917694332943591983525983466142529376026061404243741462278420378937083161739358996644532462225852752558825580706978908196699783510843598352641483188112027366460784536516686791822541561727565588238989105717246390801149995080512923566692099194911222878528273950940310165113970599496599239250569479732830738792374510946190352590934367169008016593074042779289188644042440453695691117444385738584638735874782435178843712669364002503267122307835953247324398234117469276289744158699756476267475190275361836703779021198211330143754547279693693391952202675164477731790068298629556236262994174893871553199758812968128607753334130566523060374400621191310037847062955613306737558035171630767395302929024288702380965062444110375504098501988888827471178103608484415821910251173827598019693017683001821703394690416509175591763032906434520458123379025337676056741169841437231642575436313539698419247350087826373621995946610570848418786173302767181007441628733032538023474663472245016967299185534600191910436767034824486919173697384023558941171161277182085565622134315465647763492069950300154175987433158907431806127604021561410780152330432085391990108645426183317296961938726925562984421452558509395034600296274268849374323948211100516917289138011241303352308410612537570661351135018288795463601318517167878981590115641807345761128391480829220032479737508442770201390260090070213775545257179103244619756062817661595368090115346806901176872174727496831673606412499185167637033622934240177131546879403913814450971135581033340280832580081742464048144136079548235741008854447359099633046601634210562633580166564572909484947610044089770519756395397805956220582663495933112198493237973827460975472010292456654481058795902260533223036083186830337759251652945465350164476124231617587854071553841056581031206675325214248706592698600463925516644629020374459457305341873255450974040786643017917548926208134907743768712831230891243118507882217335755786481219676738088230782967108647270843862585885994120313777824581252450252911382315188790441673904852299699502715665994979589174215015428866356112026954612574264627674545856322614186966424503821875184096305073007136126516838173838636136999985540477816481679788536506722137761249671610455970658839731225085386631855067104829872335355188803685281350666786766234527757050587563840856668974599023819909491929587695857252369326603742830141247260351173878386312569213446687731839235646191382564876312715571051095157657684035328635186285073884175912854325628740614646927911222823905289990637952899609190366944471676496387113304157106771970981587754285655209954560291662836060643288496108892944172009025332043955975973150217752472792841228303774414715722270248882627678924584475268751162217381024408227369528096545445949433348807666463486651395806204359246068358419652382434310945854154790722451453644121844003916976647633496654690429158843827452371260228096804716776994968467273929556609028778771935466411124765190989541731753045259368987972414231341773798316083588021512680592370153212172380490483762830588601889399791533824780416688148512537550536298377122310344024895167451439755691621704187439980749072281547319535172222641064588237021485742449420863653251032019451012373067848306894571781784956765775835777759025852371599696209021586146657448090559985982636030557106125198985608555163172394698309533183734943484588636276129934765209494119224700161298230897367778142192459571607845246475975085514458479619635793630386220542705924424516691846742743966421213401414680778750974641698940618095872297429795355686872356919634910392434697795139600189094540409715525712299792319410208593933976686559501259484239426762331075137147347449824906179757502178100387390209215691107491864174815035563610902244429401144093007658678328993148655182937266776727008490011642522096858680804928148700184399094431236437248044211824916792207868097184952100314154127374763768512485314591669585751938314841720352881745848524780475771691519013116978097284834583376457944426115599820891108041527085067845698208214657002705358917349300933690781967240033551454605012729467261291079891168692687080299313518386831112195206728115649021601290170729647073735556120099816568764047114164879867402403719052896110745973213302549535720220941952359085870062161945406598250102181802479285485599092126799551801192202066204120487555346865940412025483720276755541743083513020890174696481380323786189263765159296541254565023619198133979262527559657750484771858971573482860536679577657895219857938830900226137023461517927090693100098306773928216042396189189838843881907949324331908674260033325994036327184754707723582388788234945251286851196904942397655661414156880322788196251141820146261987266439179642860468158108800053458663675102179346086722267585464711039313102907309279522329056899394879672577946940043621930635464135548853237604200523982531670902937496335660185044441915964602022336737508979470413736933109987046756347128126559823309159494534521101942468472308992094598310345743924679273729596047435108228550995319876205991034824554591258928132429627080297283600577925728924769250222188263722486693667793295651767049847228685473766646196152609460722335380592172837974572456896172055923950549612160804264729257279251230271402456677058768074482104704205291449785268811295539598778963379249790172478478453852688057291922250255814149791917515660490001568577587460592256194880036333748487713406679616911022483235051936263140823962591903293074072300789995329131673952578303968305681933973558746395313603032247145693391200075267553155590864896078257410764817006346756926409292742678818085006840400397651644144958166556633553160957877679779758171354849498594996672410484862006951055871306365358148997500853941357899982841102682041040113032054544959737259367074157374401886360153686217909722329962743938439567458677504615492245207244255113344773044067776299022470890276070306870888065514241123612063932543102518919134778695666882105595290858544681399684052603127929544813315414596127495537147950284887439359081649620096029745142101340287146918948187573939633966228499029925623705982447848569667907570134031051936665655628794049975210113988641377220207718632932312469857115989943933347439154662923453935497307666675439617295503714023733143452197228335006105767089411952958071071773444759283147542339503061607782111260681769431114727238372639165566523401316718868595063971167779386270720615595346599270440439991697162078583658151896747811323949091439731929701860569962465681953897168713472746829585974365283201995734118358718307080808859521317266555565299504545855872020522664845723898250506126071351694056984164806156334695532828298081780948215888702039940519198162235927140699804013788986776728199652049681226384060159344656489175508305022477964888133105695464129007019623050284955577833593607634670330601759008788196003376617333919816730152369334168060058562620259040517113464669955212860602467259966787231192777724725114695524521858582460175574430279315577228613443251407338029216607239754105728774683148772314390135794389242045434946931208293904024540874061402445865944429662024537886677875295574750181264461964094434413427166317620733662360717402894030499715629649171374158621896403872643863643122852487118745152056406328042509223511279719979576982284519618375043473971793722784016702408680285569570827956098389195248616769389790707601703230177262361192551235746123144853683898093524267891694361255822795737547545449301532081130081157073964750834397863544527914254659054756127829154552176431619033266890620594474563505278058222708198189083458508313172210633234027298881616544621729790966120997465239390768180679778437542653237665589134632167679913968234999142826666888879945887566291642904411008726896774754876314826946188097832180628461245416290555038645993618723431835872745028833131053315095810706822369464315653715354503836046580598387181457812082460583903448767413690338429805817000846228366332274546735226763099273031007428383627236653397297684916368723187830267946789606690964996339369133200153303423498051360631760729183615114082649531093600781732970126890142952010297111284317915233390523557668417276367583700965300429208119853601120128596231547551858096395873293890467805287763850374054309946966700546084494664695464650001990680217801849698073856489878501312234720358121595639114352665733937490808895053075288677235521342010984824875554345091225406369773660260287708424231494232372268777027040260170691903606344153575352365200867167507011905322165898418950374636030550278186158994766061224786673588061103510569740662977582995927073670699476035090604444057928289402346025367839921644030396375719707775612475932527491956106342940331181476370964717531275088375011136628573565898760197653006515224885736903409764951095989447191111643198102724917094340295120233826855235894161969502444683131684826172614040853462530891766471028136426407886611284199101321182717126919999428769657656285925976319840785045477136900144347014148512717523263442637080648231124328502239395884755430703537088379265269301574203636320117541362971024009789488805033081331248292994530317699221647015158120194040131650251593313235156342741686895368171842093588391627394637747512785872392359171503802832363066513688290667740852788985744276684314973179362676145714397443820344419770620912664281181597759944631432273194473029123856494694875267245327866441878868226544200017690499069572097616325651286217130090028188008632058134885243935202216654657060409103294380178224824026670264845282407851684520765806480434108249710144245771897732661671838706131329529392390479360499391330416568542350174352983689391932246333116639705028495151404546456654477854228094344444191997201199757010954252090531394577259244545906751372077382239699291918933480820910300132948510435652593432316945849520751751134963620006516150548806953625099934943629354590596067496679348396494443901716412581739939331327977549550792620626978795642497311290566902655545761541119204431563556589580370734042181689150508476464254615814183203699548013058259118092160378523766951126970198625451238564850716156265580591271151474846837305619255809251498087418099625722798775288045951672679007781296961646079912627394555912727656277762791632538313088624970890822614525634186317717204608527591772712159192775598726671007437482246257722761690660990604541376864300032727173304202487977148458365720927428965591646343202107456391340974998246174381167384855966419184644218906468947226517762760095504811545291474547232191622666753027372446101049211319854533732549443344646477103214795250066529613314910901856944721315723681095659685592140796873858874428119382278062431130959911429040414228266319900543844697941782842973268325107149906716569691147433228181120438960833623037613544021212799831498567493022095079429787929621678630753167065020751553820968800482601046045318223110480909788947734061389277287425498145227938176024858020614060484465945860932914043623215020285142692656498187047567387024098949731195301364800687242667520005290842539834774128536289401428961982413773333048615495703871183288478413907748204265008867492099683554365036506268600062726726701651048229442546937844422675550058943723573073588363514130968805737673784305713045284491049951868224121144946751587600307312999151224731206990282352294445582130813161507961536313179432990057834503103508935036345604309656353769173518585575489979555638539868137331462372314625239994961747651339805769998059815985184002670047964796468028633613158117293840490054660350208657917696261024501917468872523897262229968103576646785018483413057631538923083321059541091502703332033526303145271856411206931392100826868357339446705467888753897363643956632363125393473389521826755762979232899965749718081339932810783737252496286603819358681772225102135524402191542567918754896281112838283875172588940992625857671341462811126678734557476462691685765256886264368847923699977302489214795095969428417989820698903605580401146304378588161749322034121564303202951562728465663630410402400535421241875876066650480255900146852742105810962825913508532005533123999990782988964841128320121467893236642935678519214078162311689335332754463311472849541735975993962668834195712649301589576599127966832614034174193911875577018074839665283661100716196561724147420098769129340391409765323846474728638007361011479919135492283867152548110256142319569227478784304308871030874857405780068255037155820659857704299911850758033193140077985675394556674129273517078130512523777047871272489657800433002752583243348181890927965926238448226057587532460290854512438743063300935777578905651663028267838014129598923242537964603625088531485412215963746090769546252722579741281012631228784478256736879682762421208752023556744276141073697717036940577440806061427538552880733106476593662597542737231825314124182821434507195773891044846012937518750600558148782036010775450293611763926462301029323007551011264628524439304816578344932243699855111105189404718492079436579997236977348714301721336511542995329950990834145893193059284892391169953901965331684546849051254023458256435183192979637219406090470806469939723272793057371064436973855245516341888466885354555250010476295484719295321657949193648495853779299462642066826436537932288003297854034178352674198467620958657664461200113727719738303013852139985074359042525310881756892894549985594561241977032476068214135321300159406655602164754418598289263932709868147544067971636608207403392473372762136877506188990336751548437970785110403478528223471692859629966512116504649060805421756260648873026642342806113757499744791883909084266165614874579917655014414335349447637464835614770254538129605689475651080878332389320255484570058152190632190663742629010832589681360320869999137826254052368130931249603293119365554102560075101492700425183538662247591304923362353806651176342214757914226251357309309736590128634871682403890367329946919329509893357018293675838137865489697128634439377720349517174400293065778038977465246309774921805423279148518528683822789459461924473758718659560182255744214533209328974875201876450814375026912107764991052682703722819858704772771125190698048803120381933518631570272227061688064278092598730514973601157468985342364958773707122688261921924231310917444101009265403115909751972323738405304179564780004730994074753945055736403046551464940332702666398411024595626769859466575070491332903004195097882000848802935174792173771979837897944034778906202628187661077244370162952388150760736026209209158647953900261148427710770757196841915529919455754193086143885392393518854466674881609824262773892175769246499787596175580815877365541735261653310250138085916474941323876894903167411955494298889228370929938841469864843322731581522719760624677877156473549820044170839002109608202438654670432746580341388927275517321722690688071944181063485744838593759492834232487185051649389644546332604734003813621770839530625530538553090075114644342261919069414725826488592817993354101728224474538388380886963066436121154252863345231200091719912234534213170490086184169064511364647444626200354201945900893897958314203445629672712184898399614493230036973908807713656642010442821639088090306204875309405513185586359736494670606413837528197373522796132939938488849910748318251516895535122848421723684641332859336108163129966838924479505594801780922478051856168712826181561877318143489653086763688168744633420582625549997087840028111350786635533574495715426890165324401631676321822245223413116627372818014313803224200694103184782239764872713961314039164581717898917316203685289911526582741688469436822539070604809504636268499656565172761716159324266533285001079040103831794746112954628799252230392105141567657058430776920513029609059826091745333592650544426362605346799708747413894610260176623088558854240101808219533371466546948107194363395334013823934508300982154691673751130102123501315677784660270149622601814909413432661890702650384290531199152752375200553247822191225014202417343006739538705603454444399469069701571982894285192885843434539553107485563611982683084416209661086203432825364437106717092934533944697008638310069870990423245663264859858878185221588166374945082474299811404910142813640393195494656922734943219656526378299438817378934663442466361522278023223282641667478067861299608854376129022035447121904593615287457543858267883014873944090464690908939316171182535390238472527898261175153237722592487600836935575799682209780611045976918462865549343579362405836420564446623793035814406232274728305246887440052019298766590061990022675770471182736444594034878702264528407082347419385937586602639372214070663662104627742881969715259733582546914775255018115838912567192984991311784305684427071370280881506168614762373312439795882147786887766441972321313774793132132707609072156570684879393735457218838477910028216183092740998433891979096622095788014430495153237263416032756346330662594549254117122211813981080383587301591051568190333257951133484148497556398744371495032541019861209278454952198047461172735629250438224270025653876218910688531911313881243229144926319974180193271105168530901905951906500235729219801378794868952044344932203803733199978523406686213537447937741170093634557459627652600958623006331983489649431293561275447730196199178552439382257063048870672107892533813337736095167703879923471596970742169809411028320760276032706163892663693616520006287267185210100848494847775868889882817586963435539229105937562646402209051219107783901214946517803154523444456048529414870341498011945826015623164430075004365828295874297554392446030555948944616293814279919961385171612265825174849934982019688036435928682533362230053602524280609791327263913254938122402581143841310227226381654427114712481775354279274793398425669300250064559930607315608297933984900868004925724793321022016879939485479120810496676147276987696636209184755943830736702120966621133239148334431036458157434920180024006354582509634972062130934984000240460632066130734052533605791825797174328549548970323580148663503115324958582081788122608478253927160355822337183658189968683348253368281152760017483874975243766294375775016345889843007375928356942524816785389755082552353298703509971229283736861315011311024493318820857539632443732124209373240457102944987265959434549923155718221924556313665127680281961553584412071036160910625355744857420210122381309339359757556927598146906582952548855133823925999559082044393848590383402255496769176419412975089627750181342183469183979377406109642391185341563873679980256370997176831192275451750395202800233572587222711496537841260630814970385748216797192224183275993142781400714633660855149239531278726371372259446940748723353092016835873671209105154021607204466760232876467349169153156320452942681327391606540636650422402332216531254405110618320889429597734866820064670408358774562609233195016885897074733241738091627673026215823283954513522107581543029463150705324152963429945378015659419405084584124511259128986077790244116064712874762077345768658454702323850909796527856100107099876039701141954712658377872055321678350490036872537130819174545438821975167004837988944226903325406898853100516186842998592309608237876447100873994757056026486898372544102110048051649354231248030988581566913260022731702722832501540934026400738070141710362277096664043328577587423674510174627578250763154029507732645491603148474020342952574496855889255578948775975301624742652856167011976720143104914312463839246580719968531673852183956622278054669093079471238500421117014276981393736049013637125933837753538685319386305025446946047838925408851591982157295730154064057732806461467567655205227996447922435993594047747980927554945221735414828016994888305804656923511386618126462476067702267970084904262624609601631507120411366119455097501590197257399813116071072046659315183060392455140996361704373982677624422932460465988400390239105474508539503403518680591814643236205952897412239063082220465795942726314061349047921734400415904206135754007212333580274576803783366343625353512684779990612617017654564384798713865020300549256733253011087108372693138896547662290163614503612041874142617828592142583116906253536276276070009343773264751534984684408503328775139129915502565177198810407170267321388335266885761241047865137320490104605339070526270345702485666331261678381648802375568375658741573499424778007075219341150505976881207652163039486741470409882684069366951394420499817458068671103452015100004113030836545612524001734748233942839805980501488678233177095856127582087194432519541397803294125418053312673628570760058430683277193919425955366834621904448347727257516657461022036554573423179761532398419127372685954113734432394509655109532791659523628855650113231939305159848465192182770176239286640509713634397039281128288498280631844211526971166167996611441652116875641922341497932234361503659016306518155682337538693495709974098230119998568874629966981368840449811608910024752427270009639292429672774532907926230847767762180433398684932984205182868345441070006345994440678205694695735042124952175416838564580461101780023372343688856791204951637172705938079166320963143223299971611581105800221065653777839390088233421231102687545493306865377022119874660326450594669211479018249672273196559324642776537185167998461852520570660730706991535910317862951964531830611482409676036125938388454998250179264094891548928014047102563890248424850739567744335814900286479698850259665863092613000412046958943579889680250312234552270518383163710031225719135238039227613070102611033304385876684558110793874895390589296667833706699401219603388864803545006295431415229327766930848171510979922092117815015650937241926579584272247494454981044442986398654220723732291607714123729688725881393543325822302244119497072813746763674171056801865801635996129588592933015526185101830142143522405144770125464753493626599688369164444227997253173519854165435918244329261197074012402293458783633603543866461551624841836968108321095479474666166286448635273351914461080890659699985270018536146699117812333683782819923429227627790841348680969833024005724053856299964646181354848652060939882448197351266645839062228398251287710420522046862497363742904760499393426175187954195634466141201767906907914868026812772175067809041931300214926001311401757205756224293657723317609950296763347572037623604679664809253964559927705836031458556594983957225872249827376556065438040886770022860603800073394851808723095164688525533105197160982682546236214204904062151171940069247959794467730519108585653663014555424837729710068184470354820433952988062675132266841863463843823765444208746759456252282959115842382893151757143810901821477428491702482145531366948249574724395516836673542106101403170164036788805147490223364986987904026648960155469037150446436851815815189777953884842161063059847646652626547648707364651129552301118433597840313863520019049995072974152826206063159336615751875301110206802593069134808615839586756556312252278016728882830210680905777411782661501339579960007120768804207812074219772797377365689017498626017078020303459050914421799155848954745596383665033600471616511733890856218430207583487629969406885293926798414500680161757805289270839892751229657380922848101331682211739907019684454305263701412989008682513034193635802192892396318288268914215733814559273631809016557670354678439159343322045913217559664821711783482452734411695660678213612421848680653633975878160749998132802799449966086820328267676302864745573276743706730307818265186654806554446830556642295332616206709472175013846292157283668019257859232634392666542499962944271221067078747460321772296680350185803946791834334874107260100300794934344164913068135123819633198630163136947006548773616114801347875019204384964849821841880509886862995070702525053112032260485674918808585916642702735329270309227391779596646008459598619854008573586437051461942336950144001672519004731288071325309000019867910978064119478268772573689062533458249745269445301846650229958511924916303893154191459564916778024296464985587427654764054597530789825346211754712185086114981200907134573966156938344236455330800489869707113457514263104518299122138184955690106848797173082824063346972976742974928311873410165990168910343052499048574900221906313284034279885759969541577661603645690161381767231458310401251717190631422223333096688628335050500852811427851028250156240728337626775816826762610615799732057795489974350579380908907645098770720747107647869047544490947584260725691287202583606303687713635389911976971387203729160519191593110672974520929610465637495432718234692676927893039552429327918699090771052677092646446238508766702917376561956711645970605169129565248464743564748016166333878509780252535845675490247281756264206550675636342827651122011912280649100712695354218389325366307585804961747150424739711848131289468332703657079346485819725041564980104230987710495583765134458217345460987913063286862120244613168489732124596230603589882516766735456256664411074861172352195929352182858439382538217536963994395032452401878700794483047215646447887205385756931774147677470314815730327366009571763964032198770396928874916772004800977892176956305466374352674885374765543186745410889188954341610431697751780159427809209219878366787843652614701808506929811414950323600881377377594237864273521773951463209212518572326495354291830394591690051521198215482731440553956878975406532488462378656135458945857328546486350441963843495903773086596115180302217626521813864119296739107290974960871972172231524001875416898262129764654955377848383625069225785921012594839739318756484322898987426433960407627301731716482926607429565021090985230099784933873748236522407288201806626191376522423573785900540386062323980056333376238215005644044051471508834805916458370454157605245371637366485168211479364330682602055182516313561044456797618673796522164388908205948767702778126498940872598636030128434153015952996459720951861311654887966071792386665558608941387215829679880017929484132732747554671848184920316150932309854477928035361133419118525639643672585723599160666098049702640175408050074343746306983319159643043387362068706517121740992104750299329178744041192428423281428408252627839881650909975294027461584932040967919323821981016826436343425952185645831769497090310813128560440836752973469429695276715825355145501520795798443583401838694826662618019361381692833719612863930792557825049352569399873864587646072264491721104294847155035929111117528888262563070089076901325710063072768834714629282611917153846577238475628771813057314616596508145106682879290872927115316747591706972687211635059913316687329940701174647879463945685696358624479677279113327050141992331734223408785373440733630530879731103860455510520743758104142599941507324742547202033852459803295681345477702720150328140986830712200667793175799247580320608862029555026044612331479038957723659935745953804064389344752512686437246640876182441669335004604604541960364718961020235852393725270978777764685544315335844772319934095035194423165550339066239424703710996257130264852976093086828716716636046923193355296621352329285608582337292294944775923561565721460142380162263419715352495631777312280480534353110400942097773046957045188881998457611315059677151017995613691543731727190844279455606522909886687090585804245857578712474082773046135379022816057151590800565392109362884213227267185396929207268510603314572648861860112563634999577197695884171393792850540363087730770119551602595035015513000976347268074347408506899601658244975546021403911315155306414169247229674389895391710435496963085797594850589014270576044629865843691982696459379100933669029247106597822135391160277832314271857318804812728652246174129766076140268791516118187312902268087736384316202701842975667391847706670492717453175837498479731700117925911570379278978563843445690181182295415981350278478659695696404000790441211169662654557549921441132527611145364682538539838718476994195500541279155729910331170105597639310851905226568900720819559759680468924127655116070748252878627281381069161589040605466365322707405994689594701963058814715807456324338271945000726317972216153898307411663104605676993098480841381754339536478521410360078512647902453335340056215101050679500392188984337606492519919683515217588571866440856830212619119959732013128351291532226556202662761335334311888913430616793395409293484957415454871898557315373690215894859982255156358871012081596277348555797700717477995148891261346523333842335076540261446231196803450181340584859199617418242108086157994438569093970323893955362249984125089566477168503418266938864930707715291089841414917998251341150040372838486315042932239655367559466897270037271626615174817494861764945013232153802285867720862494773119137153958375413067008142474078296704269028743593354805780893670136592859924844090533374565087093425842629973275068070714864599903245128909325137565041842645093469684373107627776547566658855022736151178353284905014749672025127935210028427048944792528951928208985187605508845495646808461238637128043349515178951285495912861304222017102839728634017943468879772145609406463357553222094118130925564976109315521229617509067943711921551658717139290256285588113893132551725750968259271696831970313199944302579895634000637893973274385853140028889715075205254154232712643071665930638332620629056886963258493969087288214702711809929818773281434586432160716400771940619822875383168129917268372230999774714191423251035316220411374749573041302587497274434973890508845992127743837334735696000339132769076727026621056835580990299387587207662678129646296215005888778771318624683185021706667745839561092783758623162891059073137677619418939273948588472032298519249826189639799988853195123847478461689341051446471415796955152892160126257783437982987705517656051244835657317249227782940676244721973874583243222376060850314305819026295414970494956337286665610447727372099448819283443374460193861977229041760596892178150543554445464070842754335606036996334397380821599258914454145463696566034356708299180756798110545205388051744784437702814261901158928123380839253374512292702636638331795950465656475509426389467995248476909950933049436079363195337388837742279207960249329362424040530847873706348041011298736450859120556322834272895522945938912785947674041619243322127336604431699475019009153436383186305950406623633470847162461220031306425844006609939530843932786662074289731303215686662167351501022979784509389685988093968816445890199170984159574853434405338714219572672935807158498894091241853081491197430143903690044046008994373848174324009343456841029213091108003881277736261614563876372436684560034044196592430471901398453356838177961774056476323256527944947358594025941804547591536976670109706698459396298519034996348564588972537484818058800884967261961327674583644732076626664522055215312770544350093108185863564929962309197872321927856932509364870443034785977407407630151986608988359026487225466983259020776722812566402815623733635074481970387776980991299715234586183554592990359886145550326702124630106944519716725517732178309514006027221093517414766000828955464782807640889195147419929017417305056901218680324341755807316807470830376499466028544753032020710929403445727566413269897111565775463124610354512380679961211337291830758499099414616674202139292730478494296818171640546280221766330915111474455253712020852969006671284832206871978836174941440317891696132730613746768929985516389297209815237048684048626848541934754204984842396334669724521405236837995649905394778926711674748170211786915278988930454486643221763105759577275406401122436974487432273528149664171855991060443399460100102679272116769944716945018553483842262305520317300299429663142883842054169159454405770594014209555359732289806982235303027607774044307459159843575397236565822179640585795070131653943547467466474996489337081796575801792396256822116245307750125632572422245416189963399785639724228369900084667870332834272852503209142678080935370806173755486546033880816224672036953210448408866894571560351569908294772439465588104109300089991580752494127952277165931382192573650643250188495311779078136989274856146174255951545523384126133580946970292044240843644441345722163098451640792326506092111655067635081761945053189421410598587484714572115149625977857223999347348149452459587929737769086007520665823885956618937496057151503483077954766242199634432117477565872579571336973057499779568861754290861108228098423248736260940948234839390349490462424880407809921599690581249606893049025243169619232647153697769633800467668974063788158408257918042297376016098257748450281787819144164683889029979077533828690875967030907759021942704377679447883770246445853776946647536324286108369828697997891398870555470317916285929880952420555765383653980386702013539797334822950455349028302483697174062928625634087103436191123232685986530379166992729442295012470802657363098534209030089627586571595217753811314407205787601350779886800806470765223991901074174422342549368256981691040278830814698419273191272156000773410179697294048487867004476591494497234921461000734307120185425652143631408057258859181550156294285323116717252229482067076152924435030988587443142802117822889007751459113875649014518454079136082344127743704710190152426763974328505844371974587289147113192142808996698389291015721656974621713172445397205757022444544152731793225383734169879708345620971438921235789594717427422491972485760767312689315822306209988151175118040886752110679402599619967566295125886952867806627382222738754069612018055749888951407319536309342483029685630321036200006953348769719978875824645005644393760311075189872864048331361057409092987567888100790574624879756149986217554486362093261655794109256800246982847985288458143835134282368247448861360147562171628294501885368322223464527688612266485027548108024551588144613276979976600721679777236213493347536385378830663423986510008157627292623510472615757422984436950928794813629690028214641400888218313880625582090425244690307848954219493009443304620316694430526901004642147445991833962997450944298715187241472756225571954036304906187539129257644671311473676205803892693311761646257386164988873056130979707439221509284108223430178090318788907990907519346382987942980352934355423570775530099195208577152508478539840013671957771279123374356668077574422825958747940501396744608310207129784931976229679135257005077136904241537709412593841063816985762690263325778026190532111065595781225069344574105809626335592522252979306747839750382370289348467224743147361663383284327036463617113246543447650493507004808422679781233240035395796991784986971586038818278137139097583484922214053772236697382800825527349287038263375436594090140295866816542792788810175460389066774553777455766717868202262000125642696503541238406298423305246109524643424912343827082134079678339345834444092805653298800706448499811258456893060769608574713856590468690005984087421104267058712107649545243776075157674683839214314525371487970087849717109751050385993716611313462040749286306368882562574510476028085638623737000269184833999101900796061840299479412885773949301659537234073923038259343878099848727662480401698106609561049232402082440961252240366056563782619496230955848360094050223405056807054263843744784212039218401999472583413571295234828499937663383766216764158015240242771669434892806194261364849665406185770544209709808927570572391459828619435053992546886949349793250387584130633115387148566242985118101414063513884591069848353300565749142458749449127925685223927596094856483093785221917754480836971215126507680465932113481247679073999766989138775959166757163118222513853578771820343269573399084350140818548919906054073757964151029545524534712687215683602500134318484764483456943291074194201510435028925777531149522507836610154012272442738217488055491574231429551673627534559639983136036923549385671267606937592974347895084262526642857313858071302175845368189252183708536430985810838205232007343829452309295540869495073754064926335964451466609756914782373576020037367586605264731552089043804926897448988626012821645471785153995457618962601799155752451437949789684374348104400934010164416934269481618880801279562012496500542499656984467252088336995618817655325886825563979531389998349047795776960573528093077901195981813240956011937950114461076448804345780110320331251139520587085428348506985509594612613991217698832668768208128113057971445692728636141978033487718408501401896845755311334052959509186429646128346014617123556902778905007207474922850285054534248337887149215629311148168169595610153725317016674709103618879256684925226544785923905888503879753871580003498467404301667066344136975321411164871408930161284508426474761776298622953683731710339880698279358184215320195059055169141671492252852387507092530358156108966706597093714487236769125023798347615795177511078553638015110207640856685833769687313331490448044552286771940430393506647197865872866519479690737473110088194324135128841934450979411559271290273807985706279084948338836408426640888768901329589868896087272666880388384660703097661757357674790725673170140257969151198802010632739249857633164851179556314806781115610462146487770367076937542579960834028706076322763242784491013580463186036097180980492202717265884788089677988670192924771535875346606123748350061847514217714457720528925295463043102330836366371962601243347981166982566530835404978719407033285469924611695954630529189270022830467278952406441696139053859581086303645705873340034773128121015331714872383803017689673587077912544516076748940296736618693682752927265053550630582399775797484864932472176189751360318932939702936374872656654744429749363595062529497832122071616403704955515446282205351821710184094700427351762335678714915018972463882051397429438803034964073298440465400505123527942037010087505797980304754161953154175553406241915934717180226821302121146373443134817963815705481183646717659295641454113104398909885303565642186514334418291447006544485567733206128014528390040648188055140124688300381610938762881448985386733245659666474915272458571412458774178776520956960325308530324301122210619248950094862700420511256285594821975970408014400488367206123335903731906852935079416962190246405035201662259220003739881755830086114546818554898689914568299707233086946539560448088602145286829875099142170815126166161125003790588697727222386452753634208009720080576151857731410543343204048611863302555441995074184763792877171109916533812268533344614794112466540735159922492009834784852618140896831760819665359389702159322633914732990935470771497863976704920768997498444563809906021792228713935255070228030426268915634703202147111383896232378112356620320372385727545894195759895384923543924192778113061438076284583556902491610933076754292450188669598992289689592368803710279692908972316999103616844728724807601439951079487909965442655751495901671500419891422181735216988857885059908339354895667170460933541397999258429283567943378290694046044786878258242623640104799771881305206971820354385758904626081563704880670710394732525293766555843163755516761208451847023851895157318473910859662729674415549029035330567296667790274928340758829705573587187044734347360939456104765718947239704782013888606899370758705245497280334814122106077688556983446441142429357683118305203413452202779191974407891582061335158813503392482505075307553687106323826377803442244111641142415807561052124459953059624042397178101484655132373369166486178359830557146294055274216705398458210347439810348854680071610293100782162890984729672022520150844542473216974863947109327972913585000499860875416552654071744556771622412594247585654201026719520410533505670348352040507316887234141502203066895663783962645958116469619684547733650607702318795155259448557428942330702172818564186009862257392964343400071658554258253417728192037147375393470586283857848309862595276185900041155637553913480152118088209801440127280433395130221048504806415087766238370702465839656045138752996789529461958627951397907518744303994150797474899280438596166984723399068980183887842490784482961838998972235738816658797113404472211600598546071308820821704781929304727655827164524469411415602834688192337573195813176792138054956315742929416019951483412181705015462246658327016438153207004863389606502921150681808843441278733389765509578272229421553088661390474017262446996605995679630771450764788976658762569097816689861770973110749306408769352791666561123791667186229645748194503545479633979530159952971154549286242505545221332394502861846389729408328325211869008293976463996692978642804737258218723293841873641884392547077336270201078922561195240350980287321458788880119095166690080520310549801476917554736041425808499802401024338559485087950231906762041904595728827815163517917286222941337209007950729175883586489498941712929028334765997228013855692181675966426074453456922734794973937236626184715195216146288277275645408259110414450600157351843675805366340056036363927048927285377952069592334941364520579372040643016964422657417118414191569562206106962851429639857583342298771092285858967443150529889359723342207883161108557141913329599040779641659877555881083931376181405427033412338124104148804837780494036346796778055518351422224501171377681776085870028638587154730808376882944321460559466916434551317458265367695683871407755705668277345434129129597815135242452247484642123629476735703253070718930338887378505638033027874710386422160138216602476712261924426883763766822140151172553703556116105165433349643253155582057749677300289897204082654449685558442211528696605113266762741380174029696620118618539527753762991859335778478753349485062091210021417175491304856924620231296660999069804273978883470612347165087870324562353375419592542895086925424953798808182215165242964169391418986315779820583472763148105793812344520509794133282901383936653303479896226848091907537257328090500920142022719920000302305487044702270590481840501928643307964034620802613007138331060725218832994306993793785223405147832189059655852783899553189877556034634998228870094612158331009481942018289709742342987571969489892769895751611387578986386949733750911396791008113830428093227852318394542537187246923884541462713093067253029307475452327700871920084006876462050449913302504577937958118556887555325882842812328333822921123248292717612663968225899148168556657961310262966840824931963430164303464400348410774177013556417778592407591465091753912327205704227500910548877964628701944594464080934046596102434150582374192942334699498422376079248804750331985722145172223944060930160108744092232697261883911449823053482642687659218395577820272270610649521854051317810344656716561929280263638825380537046330501284175758224380441741701582601301626790029427019939162149813393426153401352593461999914228905581413456020195831368728840718462079497416802811651361980703800795851415194317188928424153151918366212887722413933357357968573834282124295777963295098231264650923448747595568179999405194506668154424165063474919847077465746704988499963922807229270150484912315099170387630067849285440618155915779378354161415511239160562552932224501434655883643656239822001666031177044205147609422054272761515685669650035293249550366349023842470222882571852625017420508698854367316637176737737158949253562984008541401770366605270167391717191591694395486705959984833611913229446554055932813820865133288593852984755334951302963481396745384207131088882858359987603214445975562509073270515455932786696967918608606220107180274785244621728053982543213949316966688356806154709952702862536325440907139633378959512258084324543029777101365184572972824136684394201549140186483089157121422639621605459882568472623593243987952082052826788469986246592542444684949190493310252907889366297735484263752917509510345232675127529691323514633850383549813140775371169236477393122865816687539625192765094746956577318264612530828832665189296044850013428368033509050789262877333910010138355621227134373552586082076384798082593008421777916465790473475015705536301299591257039513300564923591121200853308610470350282007841298736944929493903536949740021227804700948670536207170150205451533817104038256740502611142253817699014994897380621026137492644021576255867120974842453344694998706366873953289535454558027336653680069793479111039906877045531672807319230071283833230254133644759948743129666071862724620649699667411476351364418290281856835585802904266040168381313367054984690873922371185421413017223013635985128904268255440355299481022629965410033681008063185804213876296938381333317302066918907582561500779659510470018113717527210118455378463467032305691718568833849970418872345218378188518730922816896914812782319286517311034597910589360587912449423797506365689922980078955143549522574232118422125138648835097373052429375432943602752511050225333543795710516227382312334192671952709907531264272150587627636402948382886677916468997425409332595708752313885534953309119171905474368481732689987026764174897907228837918789850256151127839743243452694854198910249094108098969564909555903732975860785642910335409729431732026790859900832909948916603834428005531896571024762893902149501134557835597150295593723226691583832284087388233820925109165282183606514113917175861850659187551711386958950414372912332062933341985158714133452647958513968920411370793010737011281965869036699057844462350406459792071491259386874653206541885133651066373387044615200189148057980774719478137437999746112752561426994894915818215872293167970487453269284850066402417523637188155893390177346090931194622873419090119943080814860257996410962544624443584441246064462770362022732736191195659619030304155156348980342128046655264794729856769801489620581970203718652054842433896650859958201587885437064387075947515475451685370475534854683862694432341601169150461144353104391660297286845021409138046658463065030263788943460886922091239417780379712371378635336292366251727719565415936710131161925697347996548010593480586081142885411390713294891875609998336388236281361212394314069713095995028939461640769154410903003239575862021058036554584796599946337996363317184066577124062056126328453111221671368069054203421425420384687536059035393551788011569871952814032719585822689603458309186978533260815252108280168028911185587618995790059798254023646857596976419238724201467826481412076463432682868121717062724952100231679323077958671885563637000511643681767317245877264840091554536085110154087680085262168985887009966247890569305395772908458510777478447433304864615903550944661289518512516056758033240232583611151254867456555727185084709258432844286294182666456834070040952077221203794678916969365312078634653281479546869840497502521819393544116833217274642660159730421151841358599808885269010317648302419548927858864894803297751965483225359996766548946461161175953306565646369768383953296962059557419752331989695932926809041012815317245841968262566946662100743788622102823392303642923510915385201022840460905367462304972867343430358677820062865851906139802073489153645431266511670537762653275618858774395392787258667732479006233522334897925705032228560440557607211022964027590139590995955103877040547055017290420268091790295071096287864988677169895553032738511834100104875182838469150321036328098820711866371016643481052726415709443937193122714341319690890410311628205184769232612988813739767511724710335422821365120338360741004154252118006719778419795111482779885804041483413758266633042642291816143651468139821474745997325990445110138508793082171013042854451040763959574183729093602408986209093464028618314195082914650437987364004841537339005167272082538534133061244831875547855673109017235977856512685665594509190405948739691658440359375534352738262848907046992973520444987654914494730581023766099871926272280788299290504443115760657320579823751879383785659848527505818643618887377711801293437197902085558812480515135457852709999488758656662211107349142322743471557304713552972937880632621502887793410383432286059736574235719878985207577226748173238890750697556901498618883602058580513972905238295156296967337024977132549199780179021465286886222154350111253661472091614590103387769882447950351891174196674782128551875330365476564306000945653961730826430623530412167855817625838128048514662394093198451247863443700114228776842979311253878414705045934539572279498772001368077045590014776211748816003375021098534506128394316003584496735979920479153931437906051674507797452738644395560008584605461339617515170563563795444527408899853665029113836513321470311832578232622630170572860487806304474729927360821655336473489616244959364208373092277223110389154987686697309118153957379976821910405042952151326073813126839884774126713760313269575756621465736630086392719906285853528191151360801327425058141690336778445154522728630277625529664941285432780502547321847465312630313883088369555974613606411378031204591583585968553006543559712598121118691983459629581126357631029005542172644704740164939578455272371641719040719651467623685685531208930231255326783652301472766313058835404637269172038155431031257795125319539328557008327846987349138575469035510601228380664655757544136587596045198733166235123198616890972039117398119310432471232987321277534851956507929030665473908028105041223546156893244562299708322214428292550444650183603226612731319469002711396502430509628695522998624448604569495019456959146389017912973458744535762244317106880517614555669390789270257170683391368150491594703990885858036093729862114389864110684873559919470541515118116219309706456591264880589768250811182749064702921022440512901008211386098863463898290666817084789764043585823775900732137858198355445984828310066364439638789942545138780839899740860727382437941594125368827373252889460965034752478104492434364013259906790053614928580650636343073054673294847380348915561882987039647286406459567575883528954701582461127877694665588667572306647863650432379105062071696806560875213333258901259832545803215671415854080838233065274782882323334286470033742823596250090806965222077889066499424933448004113911224283591292513353310489143620442136603577867844246296604720030168977884212768036823081675009622721677675466882530332162498078964704943785010965858701809044760587379832620834656264706496593654486059456934350963265906754382295369513490086615021040895474475742229485183051386464953467550697459453709772299420461725289460736016600975758702334202871719052103782014723120285354714418308887824555539569880727406490616140186302892880469308694552857242026613635053699402017549307594591017659632149063633845158856929198454863860549867269228447972956151537137453396487522928818875295412348873681871709696246382556709380309253892976644001336568886664192789551962481657206727295288777071850308827675541888530372571658024495999365915939591650938681742780199740844680620423500686551394051255645273872528704930857405916641884023402646354854538143836329990227518692935804836866523555353192740916224503733111500681201690384729290479761309084252163210092606214433431775349708823612077543631961688986047568532933661579718363752201722604947190056509907501024094381891610169220318772548799569675112459576361866230794715651041141530066061306396038114324591475270063270839582393134991272907367636231613202710110624715956705912029334045055749811617162117683190875370743160836327975629268919203701041652625237347610711282455611961327636770539911900447562768734232142181305746718333081262580075304796803600445985848355871643126718224314946605334487961447367493934285118369088713486091134284150713405529939168005354764170254064003658716548955896222111224743916101764314949289543557250459573015502235369416442462233652282658711808123678476512490627022354274487668596943415874950057120092761217275047986476506520176243083355668070654255331943774493692081823061470524313031610910303635512787506660066685640230215373689342510015694447228500832601755907031174524399721964462331358625348979600550890968324303645148668624895500642674870076595027449336619236022754872906006630647340485731476628672831008706954247801922260045120300790173432095577220018824682624571448092526835708715070827220769662858145554741838747140250935524393357540232304957634786868044878130620204647274577625891271873288694650003249760705366696252403546616544322662878160594023648935840371499598570936570003702708847902411906661530498488957904415514161289008225513103857062552974476191689208320395725161099424567506467235554296467386676834001095317713732777070249197937549084595484407335961668435070815558692921873549383849475307181464102445332599437651855632712251130279848246940436118959153939575557812923951286751142073590948035640229688701788857227532532921611438916225830939783340048039974437679958799967099221248195768540850562446722263850005019190794443452535833277835635402400976356425712807755925005889949855581713649200293886262612507509642737595352449353075156942526308703787595158267495681863873195848676358309882061699435834068266744546010765141871905116057564731017368016493349294671663942026472616752307884514864446169638468310167230572174975213287354433133400067509109891380153633277115445266715589663775177046659497409748236594800661392802161494167065503354831742637836521620292141059537093418987843147649874454087293205810184747478177235448890382822331520775578727965846327221978264531616636296368619390480282103028683829949990726377597877002852238289251974326030040500897559343772122295176669129244081783659662271505704112610625239234628040957632734950431721823422375836051660823165054304981406085151800567387757416422783626258903439114668882812132133830166798091697381178353442337378646557599888463120289588322470728213523136328917994327292336941282854204152737544580270124098435949367131987079881156441697221011204756549914694650660102829383963093233346357057431571093140119079145020968146811236443299229019232835663332564228961916451008590636971950940719412770101673330837277070141021863831101480465601632665335631212877423690344176073812880539012985032628168951029769264107640253600700203361376318092192608714410004367503016544743681753042356233091688416820532721524192053316731494561428630061952455039798060314604585643044863605169006421026363113706245609402485197228218746628536840893104542601376654454812085860841097130375497092636381416681718154727221582587334398155259873632790461750493250978154707950196321543272730300723110320988019635364434843606058295032597967507161427738923792987644954902523217988107101788189365228203481906176021510374811376145523342626627245493348583793105551987759832448492660127571902914899166444866452228290546872778927579480350060254126413314087475393695110136738914767013669384396537516339330898325821437253889008258966135399661066227914554578094203112911069465177509257027599392044539330533095662012763444023430669367911147731169118381490340994166700734786870835944833253716072155015991658216758264932205135105014796390650275694799604224594728396976639243989486351814205234456180698467511713514922927944188467348477803318760743387672047773853721650109985659249181583609614191889041506079989096120937062890209904487895411042023771047640387141913384890655447146331880846952408801164369677626818854549207058621936255185988390403472077374593458996893348670619641478110946971117271357069485618711947027297420671091351051853216823277680993040888437222606468748400954875515405833736934621211460268488345123259760349064931450492976670744970297627659486675057446919053126394977869127579764315110355063862847613431227539664367681363938709345194244350072508446090943034580832517135055341355478829115384286367423139959734081765077048629837257927835517932910620230011570366090062954126616914332124641777048935239963229833886269411297047019274175149112279678897977609827994575661646714442516126181535871425451270317974985114390445471041641177841470430983267166139609529347390981974276925048709741831821935396098599511324102791326120857234052542877820881383968661014595329215117773570986609115291489091462930700743316097846995754618994214969055306565258149899403760996944424430640251521318994402915123477495213095040597734052388628204974361407787271183573925431934347778956891250004347246156443902312498598847342143075511207921369344496054493368094562378334633756958931621703812459792571183795697827975653111813199579774366724449373920298641211752629654453141552281268386225321050200510948395566663039256922232118076930106621606759130250214056407003789200741562147885943951527788256815413453116087279783906675154698325940643754992794598859620256848576556848039900050266060740539385480196392754206748288270745860514373037483566658848130038249270098571948094739973629014798278466690896362549235142758235765750251252686232839851393219529984127647997838648935437359691355113502712475646586634521596353584288738625744643133899228973480761990615020514793174461167972629088936467051674388943522247470619590827294712576066414141740211530086538729523650895671192899735081536260181139569971579169601534739726861922231885835055955181238129887649615489820024704313960827247584368848063004963029755567708700879323758954399324040425256850015638071263424485112322346791240989533912192119258391637139636044558791092547902270741671311134662257061053776372177225974319269966920201713544145056547770938229430905855804749352987178700875163599528519185096694618592149951041990980900777480916803597667688004161852188139712754534323281600159602067861808679720577971287345758179045208205193330555281127847745624950974457846731551147419995633667421091832250035640336497034194549580946665604643896403289949375281384044819019773209504050942573726916113321457029861401812107304002454280162541552302852072710338764348036925090977235809753351058279976840431566480938552535745682587360213114298715114975031693555935124295899800263059204791405500804239410421440766093168092915366503029722070222607812857819967952742004661082933772352610251918174561814273700764279361747241947073273765686179101956991789728729275864280651421996240184546481248464324364109812074194178532657051670880575142439572036329419945912123441162736048254320514473371498516061151727787322920089191014414366192343807560070509968946537182575312775465703131432385792746281077528118820087303651433721134483604193263743056105833916352792734872893368708196960008246056306144473343331801442898583959823105249538900452143297383326579531634274581392914534038118204107187410935015325812659049074025455284055860280340985150492657317043283228563608164263341121078555955170464733892689831330690966456421747605768917225199674498449972715231735654205613922376838751047715395652793951942251021136331805049891318498435434990099269228569755890324672345956515437051203794630937108063305359804107538881641907359828118484563246961988338963395382851458399143822655058225857026527081460026919825553721479757210646785067156160412914886599132903374012880684537145179467531742554102505001523635574306039927611157094438724546525465557842561943995261893191964611823990804955526155346669503857093428743098116200708763958485790244804967056798933963132522084969345522089294182010952190154537484503884027482994560186761177699989175479818096283438911230091822775578539819997893661621309756365821368829496218118815867491700589250903971166327759938596087340801383026227308449624747346582436137998893007690436046821058692870859531833719596328346179253510127837916988273428293447149651487774252694631997070612331557417250524719546018529889180129820537619670665034123523632267709230265962982465879516917451935318135249342744722316433290883972135299708152332933441676452700931998737925297441800681165379862359740090800893652330708960919398915006240081325455894938167138276021239197384810959609082127223398539826264498244697438171849890296718813168834019351389243201586382493564585294889000374070518285101467992663806926672475786084776177841923261467468618901937327263344200643724746671624749301470563377905995083622659178178910268219614249232544955491344083060166578751909414022030807134886605027152855728632987323632122047545413464253512318989225144045046128910049648980492679142445978953286461769922012744003874266480138960194234752202209866363017254731889717832770613709122800801038526316869457085040677175770953059525554909305526248538728691602717582072148508151971401401558298901131818728205016776275733219545781912353755844831564575260178533044961529953988652135690590513814549242914606473556482371010603213611203469880635575647613588550907792534719997679941228974149398984357058161206440155376141773091372888571472169013268161613790329968200664217304826190099251249630859723061186033658343409286104015738339772452460173272001997895868252424161574406940189479919246837546272210141766218624548610274949824875477405124661561592859629291022746850725811353367251561899601486490421556645638792203637667120773727424494891370438627524826359023849662889803669561310458687176456455318131225595773370092939006560549815402005620127814046410295026724204277871176429398933499798363285096777922651922443053878463785882073162722982156921738544102484474744365268269272287333247492619900683212761154619750769242920368031733135943008741361712948558029510141447511255085376702445341704073295281136582946663545289279375204325192046868078161841893201939293746699678398506470030995135574285078646923016603487031487188601804731584703092729202912045437961432881420291798978140430806368601282016188370743357219908930239483246437335506572430709321011635367796076116440376030266919441461481074062629419871682241807492578345935670714597752078645733202448878076351942164842708062865851461893118902928613247967836547005837504728827016793212992473584774359309536678081292886023086579248794094824423494603480710899501033633042808115250661862443463460887115795635932307371875276533382762802993591319838401921150854155162000662469685225394531696753979009104355441179110422272773600750732146122360515457280375380167049884303572930358865574997418897527892538158535271654749423644195428904288942747631940018413416992544061105874078192639159696556276854678191193741538811022524148469409227305286240788819479726688944825032815117158266723596110655076627952150428966829824737747971894960915585481203927259967557457264995406392223629788686678190649083984647151427679770693293954480845052785731599912187798662670124454925693044490048146986053468757277642027443710807247143103034924127863453267094383279799190992063538670479143957518890898466994698778006585002221416809455266451941945937190527460713897370457544772856839374149503703600965878441903349979891993692098293101156149489267203570958538255966351438634759195413077954643139130621047296622258120016185147294956835178277319079701836545114435669652524985881678940490399054263721696438561107169719917214379368055881120086664439503330362898848119074978242880152932510988794887538558904551586347216542634945015818273490210144237598605823224185135471342702287733005486289766983775151330400350747355359626794678169646346599917438988994687730262832648196907608654965574862590316174551696811029208570194950344818349058363717618771110828319873878639204463309413676470129360334731175645272711344035606477948341145914457373448890970961522210494973148118000057705103486689188599231243488558329399816341554572177161567752531617948993385776739969891086773289912861923667218809422502662589641554661697695702998414540343551350216858484598403479937605372027789726720874122711198465044399427594235095378242015974998117266851025738297520146841305905495749124058466175428123445955795617517209982518718081066247599088907355179175249158765005591082972812169884819888705024351164793510957447746442221179757400418340973590853572567325380250963767611129737544597747296051524802253356247867834749766224520849478841127596717408215040656080591058476089703469626310870080503410551697103420767786549023924036510100758298328121918850241429869689072977946999963445892929236033912023624470992389929648466258773153867533705901126712249659676093946704309969572741113326551039564345935888373147471183667533777317437037161078615537951250065709676090121711048371068428668584250639675113688282566437477247290593140830226555240650078471531496664256959727032258815580381801804452325012202073545207042930518544896171465406582258309520220877725719800593353395230860497890263763663897806400922254459169530502848553408068464928457662410527296089349581944023648540848888295070821492723584629016871689299466658924883351997512943890366151648168214822677547097716534769185866543340858428417150949021821389968139388922792081013195264512820458673082528948342762928532029350538736882380090706709481964172110067601565236295592353077545718710158359910202100262495203721653991014079078033733897489045018461982647807119668496000193134309099535432036507404741978049182525964389895989010106058609461060610817876509522063048888690868983652367602354616745461145635626993899641960118651229483985926201535176966050320883503921436523753787372868293226956628485095671764433427365482294842259607202376291393099701575695181647954954736267587389478449941592371223978545549589467991378866781647101169058055061179727257473142040452925292989837056575813925861460678863575949892546447590068514668489260241181491605883949945552368009466114945096219333280966103602517571352293791323504195552281660266262980965391730162050420108925402223993380315245793923136950735475715113346907448357020541339068886805480382292071645620150967061153961250343691568337423375829855429486174196257319792205485237665236182513837468177004275074884373094831863411933950708208401401670949753438824418424743799835462253869699828789625552217792381533328238070305785476716155743157946823656653600609085160470936882982680211293697058421979294736203629520761537669447403735366999884173497559704136673025685060388166208843881378814183297331089011002471011640882010814431750348234952385418301660895015063762842266505189581021525124619837437898973812973781700614304614623866254364032681137267777063749259768778607533066825830139471664784552337032660406839422054322681413741494097297118816618842059528483730167117937261591655017258760384566886963000991936932576207819894125505366070523723746489913930657518862306451082247178040176982185407306442199081904974094331077283128034049707103377528301623844339736114095746185010718466231653369978086844206068116513581369446512336736133761716061167696300698334897175304485045927765884563943153389729645577717251136150514198064928884045328099166926803161226085019317052790547810242048510080698306871405926461900610321490013499431428574050048588282053936513173217822897902976096251221762256952265979336053003849059600528226217775157129946629143743409158702299261789612317000924145344653786713923797169180938351803981746760912770455275853988521155755253491338173139019994643875181264510584243523937821604661980754529790601731195185711444014642197080524883516462189134455986499043478954204286664783206831090069657936854693769503642935266049942727985569863982076232501583082627595966557231516180944005394578878107154257360657136570430797297966594427376472372436095981907382997468457605800922849673791595111636296034095390949499029638844101044082975503901057920838820248933486286533193058097511021499241553111938295835006481133871145605605983620401358623644581665485916967877911412423640668711567893075797646707439030010093346664556886896387251837275135084465021570955167657408855876498253055958931183618983924471379512993628428012201138932525094833509067881506134346242436206522210386568924291801105422100767478825148591282362005443564381202234631701825685888046519996868124216740009243103584075237117899642047435720333209670853975881628809107727995028541519251739109314106547074754723978822679973127030993775798442972166851239358124331556712592983587587864178375685748460352248459413894668895861528564358564092980892566476475356241990128457830763964786925360031965817482924769404865833896158594549338599104865441918519072934585790932881968750454432309227603298109254954959710886031038244931978375484682298665001119098437164962029112309008467554604970498350499557904229909449938168208746551205142865413541664410303343865116483086130263739447399332403447842093809192278466209003696045903715297529717011092907245647841010041017356844078607056719670088638080474710499296329073587020213561534808403379697315189685835307125199890710906963021218059675070310170254831310334734427641860183798001064972576077869859150313378194146249762817912511444185522476866354169262500329270807102738925080218737358119651443146899075907707252155881002302381600844335926876645790568203458508819614182361126235452242698504138876971324005664694775726919305415229961468505900859577669748924869929028735565537716388481058346295234516368801393393406065108031838762061450654823681518524130217966043464577155223378839759250039222981305180033270596364380244627003753392396449306163469082558888655650379848525745141422379812615011089516587870580063928395907205351400499697043913455398005228695326288925072189580044191685108599172313171486286081592002574077024715361423418560128255638995246601123198514096177230161128964810857099083325703796517720400229641269651325642450496619161932281708420654031988913220837981772767313749920529189761992307811180342985997201004497858645407400638276936664905240199983570201086131943520117519370149948424959017130740342921113651784692078652080615544953546417835920881999345128441782166257802791680375448265155742395489896532666218374486049712967359525728227612727993879392347692603657555411605932282158112487046956534224475813100445437804722657276227899295640049495456725022012424465689385414271869564575176253010603205827520933947171718247315232957324658997272677626749982460111539760668862455063762208798928545701394210937091944633612656076882288376865031152355716329710409379752451557223061665408520915557712125035307627135606290282070361989164743867543946858304508331309259621332866992733459195921499037590484523506609028267561886249893642084311150974622078238271766810526388289475530396730189917676353813801288368212471393307318662262387270635272026101246373604597231778250845526435645050120686996987949391023817469479419548755523854433104985227026181483087521879508886119702178805704166990259403557657367579802869590304658754597762776714028212295123037621477594857568925946366352302512615473136074270259493826202330240552981841979819895556345673572603399534913146148290500401864877417492323500087391907334566185209434083742779324802980115558372210729896958333427992504464363759414430776934177549214811058753607124073896128475834349759921722758403057942127369268363729439704292348180956814037438454277279685091244939116688071304665108455198973059216798602978570157401578009501392836469620805767058142399043412321702715699155353455547759244120493859644189459016773237784415508037726780868100851150270876804288003664158015955651014958508092605719873500394442530727903044661675450092128596576812320201234282687569617343880418446765743596681360990338789632303424673354661280497865046199913283811609465036093835434849778203670674333061096241165087039858936836817157030298546098044325538235310519272066476759240220698667290483829737243045890008783109004610794220453561189465615841495373799332425072989641031103117752274390902902704780047284044011444859087104681182260843091574580813550161467733971174126542241264069773956336218782389132607605087914315865604797918313412956007779645219160202642435562951352957331649266270331976905076662129695955259135638054301979738337984288303954950236390010921145272283522991791079339891562466801836862686470254662440354844355120237688735365661311425107324793645589344911699534866008387630514451033466263635372514917160593283935994521503640127813088932985179627557412040790177280027751157676687593607953237235041290079909978658309822963890117822654027741891836980112986854087812383638135247209399159849096609489650142427046930576710816467592103380132259315369553676588739853697243302971974195433304303171031162598187894952881084464980190893145879883335705246322169479390063630310608220640058746604872371617568098741156156591526949855493280205840141786030138923093592616007017586282797366843431177081279089576023186677875349044136169163916406729693518640272079155232633076831129024537336468985803501385336001391783513992968125025387584688716612807709485201130783972106744911233838178558407409616149572761397719964756826796681673084920600550048214031492462606685206500290323694023382122542790612515791105114232293126490844546899756534639581940721043633644206260931397202545116191306448049052737160066760997477768977497799124850683510150745655715196733327668494038177880769808022845354831988450933532309811262422817940560875163174935930275013427634233492011166566624998053946102863738860215430088975303556811416371908013924317707297897227896336402571851696304717700519460013012908846394409542018314228410793177582434897267002210920850597605390498954871072814460175019419042952668474454726005567678120109123747271931611716917528475151137443615683984322993565084494783046721428321630314313669627838151901895903177002071689088722248415844376055842965302125178180670125724976805788225525582193181906397575504480034843914243157423549031759258286319349315728065975408882705630493287223328468495234119063604925819662053641765456947843241970692475359849502376910424545068277604897065633558205606601583154320930516431466488136235139303710189970533708710268415819060366776000264979402510821622647842724895710652464469723299554689295085118662010240432839262333494671464128406078969425431875457848065486083318238924795219542394660787975302896616294991619673517808532991461339379222676076825104040699466644699766065208644114903231184589933415005295657420889427762238768224578659706172492049730089752500507541841408113029019722455593295108383712760967097444785531851385309045752468081526845158328193744297410535590730056864611854154355058262781026776963676215014169001035387986987406112716878381800258925754742617061329384359439870898221914376579707832377712507600969141853154203826974420678543096003676405266157475272630874881894790343340755094869155096451610263624728121593224231421064194072087124508776838625205828982638835832708190067779046111395850460551280011394246715225874697980609535811636436796729338901559520247291826347060249610868569059489624231407678277983615270566238472508644459020391260287485816758529960687889981038562613606453910700027384355720242278454441270652655211339475825002797929323416631557136718376914920928316547388028511252978311929459540438783246363768385470728038012673183153648286195532533626514785323861544853541166663532061661907681240230458235271110641966507019758573322493996706906494659563396014010442099675014745241510534431657452963017208480128477933416853237181552536810815402380850770261397431276142560583237672136372886638647460847365434543254755516679398195327477330668965700722807058470093139632138625557150952331150144420263164351794270595717688620561080534878734500954963081829232511582510301566719157655702388798404640216887754521353813650975664786010707947952977261356029477416174377597585483955693758426637102990549915407832299817970365496048541489041657568258952760636805944615045332657840126065896256664821517757262239608782765928224212850036056946444172988680973214718560140486249013163286269410883624948745518521497735970669408163044851535674332665404075574697699717017736068529572815081275657321285184178049161703458840953105546810244942024287780630368741848470977457617384724734116566822564819062661955334424950312921049005302473629584231717545136637563748337518104113669383399033957338081707239924950262692590143392012577142482216617835021752530837954107910564852323868172068565131583108481016387738692895942917620678812155021869812824094740502832498420145124124053343043040334578095981820810117049644452694220976877423680896717964531476531511054416285583800842705060167162636155816005415037753803124813145591186826940631004489490697331107870842157400130645927765901878078262493506898835259471298596853523066890849878031538542517809640591266486654764041867123538712501754253318287669080068962788512585616621020445927493911189582834225651451063863799078301684385403360062703830484164452438307376607678148401274608713327221399634980136165749093231287336063605052709161365276735323728716170346032710351768508125863178911641299162182679389771871483438599306063312639788460840077403831053326603466052261987462690392924897088774585170848301407384194921827453837543398426243288581740301480113519614903402059552835362509273589377561029780437246218695936771748241431931163767989892043410921700211001516613044883893001997789555246761105042035769808428979975110546375457092774100864878162370023966341596096303971529354406927402238662305331853988747117838699884474258239829108585484351050404492294117771807590256974511213986679017059898250142600594509522656120775614744493158222503537252120047653101132919706945855912549744890484586553532912306312077123215045103387283249874410805894738853327447045633857183635827544567755766126764280289749955082768657560850388394188817360982159285757171962056437662637185168931113367300131448368238044801505641222664257561558505800700019804671444418996708128644592180042981544832268038730308315738377968870185087064231403014798521591864316108866716614851859680803413972546114655907389001654083493264771311688924521201394509348709253035122722730376285386381489306767440935338605364809917091103542251568801437504594165012515308322522622268000402552945983458796921984904070468823334072291114465282012511847169314221296425313210199222263817409151072291088288134678684817289657616132192573581430641712124131819484968559576943196204404139659828458118306515610233053850852393099565932009081925089988461298490643282544832360079244592609958270066324178606219637101800969644412156277491942486275664476316138556303162772254238852221867440861575966586782056173600947697503481460788732534603734564330595081440198586818459963756873549012959971207516989312209360183624676383608525927472013537225457399911592353752453612006137165379566340619372822579612737142510683494221156970471405392795976880145229821530997990367760361263967074821042219727195629696145165444334326913673921072328198451362948488847114254389474508957032761125610310662607113830766791960480935043342734873468594622742750504953060042854170534696431115461880756058686042114667333238793009783413017599948727982868926972761823471561801480268555521376548192370226889289970574738173927247673539435283089882203873568981605077678029689495985322435955112207069427206466114702524611635228990862948037849407217319386729599087038379927676429691403486301373118545401734371849165789267792917837116088820183959246697797054549794386984956630085305655765366805608238551077795130032241989393401709610015566370709195407658240372221045601155907350009823939873282444815284070433816831837921521049685103283458625407168027824762548023089985066412272654742724592272177097990049105552462191983363870351972465042795235069133786404688351749175396769002201088450553063180612005178381273428356699848507613926206619197086232724027230700196690359884642674671690412736839676749348740412034351783933120592920094818900051660576260264295903369566823203406710436145809763517982358155825069809713429605975443706277100905213827604536036377064109594543160889364681405990544378482913322576569115003724031753515933256855865141918147714953385800068526298295150624816044135647369906983787450393156006388251826576932061530249797138839354964709197974683112383735713306357335240787581453978839839043850330073354856291692936727681801887302522692086573107077657917124922570451261994322627063130741745741078911413203554513302878200247729092272353966047478493964689269660699881340420308359060077572737444706558286815111768619996066584274982163312389758514246707616610855896607834418632026135760769896641665323484458415570822151280143763762126085117235388883921406392146655874020419851446979016121916035305505750131812613712295631434220444963000413101260408500436065044794510274961422058655039603222701097126307750367265080806466557313056780455672995925838750908645559317180805429904720143305595351059398580778411904085246021981120917554475382487184541432464242298434662117598240914332169417514210414984173521559306850832988428597153648663198062830333517272813329149369778679644244837067114602486213019865086799407349588692736128744003045002107330963766725072878946070642899400267313225169003998437049666518544292780382922163119299810198257763434404307519432366940818757335887766620836635907026878704146481085828413699892035197961177212594910097820166704501659743605073559661940955789251452997203218886751899472018085578490624528994961074213159242325235336247385073866678009177774761953902354253773332646549163555743716307659980840743116715844744578537536731546764245675515682526230576356180002075355119065612994142712927058129851831748278881149159271819308928139360943517506200615932763589094122189922337385535716088975472338489634490379140971476890494409247028786597650383209270449679554491156234697539220996437783648560329127757584856853355722129111401475885583271648634049848707632880961047797424520308178825737437741282695424642294457507820015507070894766436460385219884701963505135315322049497453108266002537109671375133161234500632423921892823847143239124875841871579814454630259270506377037908161657322120944723659810284914293866700108671120422551152219694599265406363362570961669174341003767987623678254936056662403791814267506211337565197708478887635399215000798538086262981560976470084055917498597446390981448545124942044426405717493022398888659842208419634071623557498485598877465047291427154689448518265434826110524354213701723670423594017852379572751694630101266835700536742526994805958225591871865869585082601322537814305606041668057525561251263016057085987194711442200996205880500710420939613844818518314677578777335770188852244364578398321974603032183215306426281627916266886495877542691083258851882626919462624780210363766191106131383985881776233931336198333857926767204667310778102878861255205122851125836603479178882177137781206771029090292427459926658570310843588570440327888053989314377067256905402268866816623531243354404517871392111375804861235908075021709057449951183617455206780513592518116428427339006340603469567116073160807155228894074680689983381150626984189483579982738521867234850527794876088489192490521009434170362257112138228786871183871433964862219156132538486195554402920455133275122260531556364415728139304954877597254693382451598953007650261817468269456729015258179110533287068293772052683760367584890146853999252851633159382937634709125541302543327557578911666869171993250254596044373280865843298749300489450568313224528873369625214998698895502203457133330645419440636839319721318893154221855508699227991332498728461026878966488196675149301189792475506278531518420041906723137038500379079615951141364245964787399256519148418633828196496134208268111087797734175293617211306347375249664965214054002089683055883946375028566128113120197794411002486977026362929641149388640184858570027589327771786523925461810938076032885924045107975958525500008048958776310895385272153101623344262775873564237358225482905479900878389377588621087872167933719621200484429479205149130555769793979738834423960271209357973964917059839780509971193429183920647415456361382504695141661855659432871235434351519185263336212297713398072119472894160196932277811195594308526638216890677302954226854729276588164294509388213483522579557431932689414229782050672839949410025162159822087885309337312352861630483321181516468717508236961187891563396472691171839713378822883125755348357625866658609711695535744214080899754245018244510693024552216994109269575168815118343722782369867485422290709230961054264743500078464705341584143031558807955227161930792632124041454573503984828404119257158547909170546823824235675026067968880403538627168920475585582262996296607930055201696007452688588584783778469828207153795154695555449327934464091793262425978120702799643939319702611200986373562949312106325960117002482658772731490794871693517657202754375781318058149376373707897866064300234581938901924432437855376970162731282815703219113080534937043973471286892590580445681844069210766416755943567921795134165286140169254545615547212520550267931289353690516608611837739165744849622450229862555497681937689689066305895113649829043242571927163019576711380765982108690629144062852353490717612093086510498458463181280462981114358281573846433520999822067131888216149799467651245124924470496031002937512478310951207343122386779302465124987157838404211153506040262939891205726842885901780222621605498010704850765711365891211163250747951182109430469763213636435393681254414340702656313712611267639978744177537410690359683387601843256827108510365208667901979772388744587283660305184368009092912194548143962112025402124736427918244866098673238389067770751102641210194792482519399501599345085185460163628744767690019591927271737894554026762882454908967787532033783617492483656505219330139970672064992416572407425718905422762886582771825596842361535922120775984809625099232396199025991610425749069895353194190131126319765040426050099289123799170212929208624820125376221112646707194365735494166485257159435424858577103290525058474269428694479165997333410280971008198552505812309509203255316852139298669229435475669530703251551677304352649792042374528851270236581651816223266656708266937364635815010135983286791583945477375895319807278018075080067368818612478735969290620419716047005086394951808427970583044495578942403804664062167290339560025001618076196789861835338351438671311583204434560167102137548143669359132487422510089612765360618765190923650446009198034452846387978734549085438585627204537734796049862853418129655578726115910097460869107433343404372932426325195107426469870670193562847937929290043483030430373718483874387324904759293254697059293830562726520869512291888566347074281731062202007215143084300207295578655225047542566217535594303118803551049823029074686678051690545293205235722321081598732392917317757690080592647339232273381463109281982984284591413840528388727849847190136839774571917030284471175423247829212829687625616590344098846694055670801997742478120941964609712425893582351992384733960803852071576772338094108245635936721422449427971834982371328899210323533276614537538299458413722244132450580482942079729860743067035542368270747825032354249131248426593430661086896167416324501394372649010815637131933435720739515759992958007715699625807077298332753337254020239333009717550277027816726672656671681170047565801343192044212870521688694027819358629528372667958005403073484657493260877791926091951948269973348581221467342250625446110932887848573010461441041142739722682942228179112838619105158555802714588694246956504411883827892279457908659464395661084334797096229554684060186293480065830085674141649384669870050628180536215123578790108678150745759608228196732451888233078623741865232177671623713152796841194503536082522723310346127638572244595403975851836760075166350479419666879017125070952242306175734622793733278236999774174097666317242484445675418601533347909140400736257017496438695247090316583676505297210446285640354448037007689417363638586093983330620131765555510566789319805992875809122054361535123222140502480461997603481443822851505063933270533851689401931470779389418730352985963614628829305345373018581158122275541776608503309713955389271173560778629225847141228812766501787868063514059001966797906406296637030817153640288991315874328038377220988673082975245327763902653490540479068118826778834060457017417456908769531932927627258560007110860577204310329636515914257391438924679476149581362235722955378960401559004490465666074763154696580890573030141791476676947797122418148762710317241571785558991862232188173619375878730729013725724673830568351266878568133062792282635443738795095301531293897272072710882905205166732998264011563297858720451424930749010763146647717351993549138267673142117064816414290724910196098304012309697098453711396053202069445653505717154614428816688852286739007789196781050018517252998938647743748641431067359950858977770985987392029728758498602828618964341376960241572214658792886150718251766508365890646042372641792278742326366779538685610871132375570743819857463650747663666220384000410913166013685303572625213583554075414552062749239513989166254708657240794957415665392885079964102538518167895725437139462305830327608581172736127931829646333079091318690105663995473458629011070565392100804694165346664073007918165323430776366079908961723804672514059041808325173131262058010470783562744668348958718393792699688331567047342606218550348502230688110538063899469275351340070623745856295314923352449167096543815361207176350196618777299721465618208698597167770003746440751851450462963691760638435756051531219143053660465518302839226624339427881312994610291308549469821609830641500165830382172269013897535034136213780754362356603190640997175557624680510331682724582232679052609141472272016601074652321696007579267197999408759266813784383576049490423787162162035747404366554162750039822532863487248931159558663873069744217286064549059974480406278900609098838019154224320534560815924296832258064301805149566789619564154826133568349048808693457481719357315104824751574707398625345840081083647855961881487251156631084763708591906483004323087632612800282433225684457210241628903163139945513815524429832302825465114934608975432772240662481337990124831766246450396201083050121591458077528995285222052301935999409446358420779122723950692847207523969381586661852345599872791687040121750163115659846219728847624998125071228857585212411878995382087362847617662746783193906403537942717311617944443857418463498202742109645401259296168238100670429738195115869423909035716442311309081510802871220981492054799506330584274862213534673680721991727917914603520538140179809264295781532258144253283848762706210235336449307732093502303427965247136609535196641047268806137903005819355274819902586406719738033508768715745910206058625754473509019758938857336120202911232971762217899637075014937984965210241797099158970064569208925315919473196966382885029153241375923291325738101707638632836131734836579521203264632607025266766448688418461201361057772365201332051856570057388719033837068920973193805092769791164123034896762506888974252686083846461675899419049594875864712631055475538383281076731918200710126207350605505886899746452127679890957398734930937694326428822853919993742290435987446486418793410007117019715127532471836702857434622539895721088855198717212164071625732417719372524033578618047713996395664837441099379324186019712489188356680478996062994744255537668775266905778382736470342460545425139135651478809345476899519353826160099914219111719916111197477098465419142262898401257745179945576356773503224774541319410906663346467728605948618422112450352880949031325783600417740189834605841917846211053823352294800432686273081761801150093001659348542597029004099617320274912876287648005908726079640433356025186620153578392942996102249562438211757543153094416180038658229012281929195233480900741810103167270167605166643302153294996407769256858116254543451470004849826406109872727917447836363097783774135947099424683525912199506656664044112461055193201657942733057061408286362712695800487191438264037137555675684025103116397303128746432224169415692875035128850628076037739678539570773225210508386806353165806361608856696041865015243821878240585776825351244063261541396654954181016643962007249049784817911638539005847231361729445053521342166695943444992219390238999213677762259559452223574472776383008735459256954565035742296003248509112711292790718380465255009244309111434082075525095758555385291991896927305999912512698973780018345931859886838642529195200386923182023147184673665466495202699282865360732380273862817880200999593180265475184203920297799787627332216564739227968390156743133057986434812523397111693184397223864753040122429460294697486753997845171162337411785312843180252819376555526673090693627015529998429840911422344719874944422613409330204662099338755990335967786148631785533815750517513180074634066224229760209614057610356397320506136655335119412136727512282451898985128756219059207076968481537551923659744411015812733306834071891885640053903212186762583996623925996449231893815893993830451212405257846078573506189510203196283224470913173684288800813102497239050842059054782843608606241956993130066929977806744504437136906708670949036200012948891285471615109683510699900206461531666833038708688852083693532615953342886860037129926980269177413820517125466621724406182789562039623604517641199060086980772494354904289491937094766912990888065191388024960993923821668178868544131740278176624073035485661552810195411702809112332528686492991578236463742111907910088374715774637404790686610965020879779497448617693574515473363148043774592365754399385968540044760723799063965631437745730917421988917128598667549426549255238562228758526494122811631786513960982540455971798099388061242550921246838803650683976005379737387053689159602530172304027574434941420134380732610858318829661507355364679379823220545849477130938008497636406164146198779017145359100976481061218673778325207156219170901246734422658375794126278600856002219930770784744860808820579700955310566698652529150149931958068441862728984544802398227986180502235625678541997767722674894125862871294128268598246719751962534830656181974034881535991516612093314536063205094847211320046786122456431893373269770262566312478835483050535764184134879669904171396216108087550819555263903422676261334319208089006349072298458050607960086571083742248200738867874865932074793645013237105480968386107807900405499668803656728051331668165281462389038302079400321842035417854653799344537109296517779167944344863610697387739488337227887856850393099593181732052926806780852963164054905222444186334663098372087940629698004872978061718935771157154185735970203803480575936549355717245428209810117639405908673039506298492518721463056339219417095983929272269104616109812493498334523679990167523232058609411682074519724709478852636282933143877594141302062170303811153274257515957205689921234598301891176665213586493158409714155764166675535981669387713054992806755939352609555832818637296216758776827828748042085037545153986752071248251459991241359023839330762610484736767414888250378897246718015633524467877782161676596100786409774766337415001412204557632507903627697102266197773286882489129358986948804059428856414667091644220590866886153732738563065901634477390460164815266952090547622362020780140002738834619779322312661837234761287983329401086710459097543292295531342514703269341890311402170472616539861626845836310228276112104485344268410729004053892568305741815951170602019155491444278806007119977677293958617056719633577794518731669340289080408607433456523114873815208906771700249102311021433182681444177785186412202602794292777447624789604997874567040088037804933800130841661844458799432025638509076622114579688602666775354945713582491631153000988157372310595008720329418051701897988590547657719046288070945710168920527250966808532184495919732703613181311291689111295013762291783213848152753924278622596622207040458468912754864173973649502552896111082593094695679686485720157853863479825338715836644125282000609915518247449918898127101377642623057083363835503648357385303893140365787182755064764025562721895647839614515816685409532830953340459939786515322577681149050698092469261268271899141573868525215802761142373401836836917903752992671055634416054138466319655629539137418186739069593137999710640892028892130810967480916055978648904797322448299845183197529731486562416766957638348039018099082284059716457665373767658831121658291395139377220613169721823350067566837342691821969047141847890524031684722499678644544745060683212998161254500037945919834359085603848911820585393507672112467929374556675896543887004439122115031284576595349601768159841780580810554954833970779027308978536910443986065218392959402102132711289717379227647249234602847869936626485813390005900108635946648090271931852280222554944450985255040444708166620296099797811450592754231381675149673174050703868332266148302588036578524750566191210754910933947659780990781575823865503058236779931218778092196702442556881314363364645689492757909455716222529954289408350197930991783690121097136927362860700320743015594650702875952089140273493546652559745763867635865881561452950753964627503873999355651243178261083270461836708631991068004521826586726817693621821443412532882588577652024544978310609471295317950280684992661344612794921651916390482499961645228631624687268133748918049891605793025335805441197068238411461346930911795987005931864831078435601171004708783077013768223025110140630920025204598823998777124269909047172843762495544906438003013996792252336074742311028172296785882343697137449196494391083395508310579446922554524744090386542135102468290674854573121682365589009034845008123276082017100509037228229326102577379553925509041390396347479106799577731719678999681394865144801379054320560033083535770887487970367513016926270311384172211777494134803897024794239126987379870712857061960514938883245258410597337742397553375392864711891835835690599358193316422929312209546955454692162676671651868795698597107437280837743280295213236278543301866740662686081203928736937007227874548718446738769764817227609395729173803190474737954541652419105128861202581310881686345383958929042600076663387884558734633684624516415391399958091974757305532444898726807490378158288420355868181544371146610337616606088264435799883426611829017883244455585946459444342761671158949168836296921194724131155931525713524580415866764703005155441740214544018766296125665246484683000496521227733750306469221853519088953462678513178473828027443571858684686750304027448033800691354960195970261895925133134967028386262452010650699400495491458062624460729654086424710852415173747268029846686532818753960551156918122765708248707266390269125602853371147593969578063977236453223571290659872343794610732888995431638629126477982400613311261030606790808945816554144667553844095293387727671984036027186626864038116979704690777626328823601599528368537306016704513885704701322557335997225067095076847001403959116560206027380261699162603984502427994464032099738770879169676159700253946424600279463592272053744200149919963292251170745774008754319475165614597182350491329922414324348758840836479083825339864422557644542558265595610395870303883153154982077490006503488119856519684599547437248119925497692012768992998739183832264049762793385919498261912189075791714520138478785627032128520018658662852426945502642400401078528996746856441440086132875440135366719361390479889613643371291116696384160214458575507310205041558215339034808534930110387743635075459896166760882305873662781517001491931616747179401141994308391131372135862237099700852593419906836035353201502003492053342995828362946622190569924861293770781448928673007812129606804683945319893675965303917660732449613906207135505455614771693861002863875946504862593633385663553201537159027760543289525245119827054399879191224871332079704487168517449388905585170986728207418521190054084491974792020809111279650717689731918819299748206871509902587734698114989055588082235666873353459352687621544831290578161044028457918502758530806909712663145977229215536013640470922868302944232165869736478079324303775397813027325844085498065372721233646601571960372546687311188899428820937431026434647828134962719768464687109469310351118118954175202424035159143237800578609521584412548462503341638537806160700605257322738657750434364327000071886293021812659643091923973975405060386709286949875964332386581032378610281156854253953957993513495100620141436615325821998504168198347668065885684264354282573588578495326874683076670375634916402596190968425238922905844910560695734523085897714983973301843025415900013999655073622792252412220336142363714445671932041329604283881020527823404946093396714183795346537831930536711343905434679703784538165077309236228956503575093621607488878547426575935140699848781109945939513088428467104281010688665446629664883700863967239065654559027444723466707903412459630973875068207669636891074270436959524882184728930913552967374855419081323632021535495851649877826163789169537947903532726412084884399249018969136871619328298590534315180719992530614098120333595339901840105038188635150818141038220374333453728731056953600146519300450730681241574911587330352237929507698259133392049910891517476254813578289967345111355053880984632086826250175837388627355155645381806400360995528814385217746478769974495785497584719581823989313028318180203153361269758221170546597386695917548173719119426889887754283231556005599884933692794481992218546160180411473148417313790410668713123310529961095334652364625128432836135561576577791882396108740354758854374359738571155144144084210538903567492279515063904254003721368976429901125047764654756483693183095242632884331173653806308195908704774697456162778685426225444924971171764418921091913103881567716304685514853678256602513362387797597483387813010259242323582157991935160277099929886846587789421761079764767740496715546448102637608126475219245349359123843257128938478102691016138687356409432497195884032449159780720237492870648372245366877111650514741899192238141251023097807159630867175288628468341911296483943003900632470804618360283109523567180092402046564653007301732219593283540121732935892323664822577930820481156313696291585869349034522531627597027684384376810095787327583203187698103703657538899513234778532143969812774531923979977866870320181635999526099374758684434113592625521487362587268679019236860193497034599428354757749670271994804811940338806659220385115847972007837679134120194909654145000771427990865142937702504133318527780512397877866071891001767840553000869512120836315493081347673648112064647411371846040586254352619119236492103393788122279398596961685535231659516176061051007227198677502537840074389230464409915141119721277873451687225095604087840694424760321518550334353393023691333898657816955706166057521211416617844792920917249421888644530814409015692002233744681888575419973934364231464797595997315532834549894869950944088352068442903215661194835493035223677255142880607156598216128079754908893206371793536925518717749354844200646631760169463771823857097687912517617336392050352931575084532535165930443359361086340290715720878109057458894795261708824248384041943426786451052957669497596092365310209502935343677404244201972228067932864071679679795560710464314463569245627442094097506374522468391321035441768517450143852269635342674089328172831412048348865459214245781087859375247587100539998983239736022882841494153625427309646358952701718134562478490633244137684375756381522021714178282649261564339396469086987660690292392315946924690510972799109053184030275268321946528259784639769392226159173271323914958780988050516133835724303341378599420459869082030317547171050028212657841619469657409228352250100511810737667510505794290984332175873824349549057475407970257453780901801752326332072192202243634532390768501360856299636950249547727402852399872878183985250495683521617318933778282007444511833664643943099905854043733549493458643684516991896747795280977688301293178564893663486228911355135751062583064194421128055378563013360242434138245421641199720134159391324783867489858653618474198946045601486258977410146873863557588436546803703042654331239245880186308610875593602352945379615608600865162576476447762578696245878190445144810776729154172372251998779993206884296896502839541578236040389094781986004849740309622430571061569057196815532219835755485251825288155495176813631454658264085565359408583426485746901300151929487940687319741094624043939185721110691027731742482364689786868438060836493467446214631487687545153613050336375476811281394953596540724825942623263908340371915772207569070336590603454303977566112955067450008690929908881621440287082474402014442889487303558372445008471096322587018324834325136238704358955564448530465545578559235107547033719727550975984269036792247719179566470258727196056285116221474303576208828120061215960270959983074739647376570504385883097817197805214824016812630315700018946835470157015225219359655638753270432212866002492300738701647018918895776467537035411848020241025722551055778667500733527694132997538016967840183534547827123699347351963245913013362966597419689605459411817189039791820103227873561676864172690951298654738620862836734184983936602609299594633767976609148334502888024469325572794557436520870163812644237578415483701041137563287836773039703930073072017125570021241562394954903270767925622788875474740008840497151639980978889910517096372158409851685086271683661412340127891152381157622039210048153711198676229971142173414604268491015606675852721625495224759972540312937563844903603977339855608220493196429696117865744954177914259695097244588073397123986160594072391034235516633816863928378324077620942904912158319684059760268642443582388599349458742162606387457890223542040538769762008084596212638819592628271503960228044264528625021882897244825843632287066903321238311635688111947598101147845841123181212701420967785392719717817310478255833066880715738869185696663146711479151496784896276448941424830673265188638978501074237096359092648710838496396303934110330265959796401851242891389784569053347175904555868319943889285741987657605596532672186143709399282141760107872088475974431571730444343825675498967553398431282754050342280953476776019969037512470679623169232019963057361943936407905236240416304775209165437164185097086470113294485558053238495496747484212097907461531296620806697109444318778784700012631385906165899080606791069980765967666490508657094285050856364600974680336840269932534471149234853344773931330032680929732021175166288354673797732251517926149639765528345231749753014925586670214653636528260943410922326665634910174368637984417300287397332536031594998747623097033654943870633364502943426096791098891103885606161809958766891259968525843236611841130229358885938719936327122181435679696835412790612649079584107127519476803277946638737913049320244162036148599426850263028648232630765625317570234604596354442180272625300390361096484215046309867587593475391629092678430638321891562017224480117189525136802474096617518974536259429711116147683023123431338003178698797874648770257874515568374233360585023793780324694761708607066225584991136197044057318240105499468070127554117656099981322004368337712326999186188993386506490131036132279516316008650112083938472953062453643951951482840784013234502828242130888749849871664175492981019219305645512064190439920306058485619050930384999003914683771763406498385811843076105381998312739167298512905698516219769736689204503389179013231256686136712145652648440844959225302895049329105699226275215712654935400139713048353186921837723938315654110361410787900434530344911300676085467505555459413430375216109093764465129440950030188081974728011980827354474227838465035098025099911856451859925563648103468270531729386263655363588547496052322758451386133261532000054887609950707306994058765257258512505543520532284770186430544826541702935840460954163478231521829650140729699330507438490873501072895411291361336111227245417991290343096704267890365080546713164263986652312781931830652177979326062489115973752035809028390597933208313337043262051687910690302742685141667208791333520458317942884608493845154077439149947118584873641558502549905904404327221616492825266514336933759352594569792444258185711675016752900717706417439204385748685821503460717802925695067046243791210112290066882854752867605783120557480202074371972661143384145059636226143080066578779768298508895111216788968464780287525025351056179538507706330273124631549815439686951153269837821860548136446258465729006706435811149393503123989640861241936898129959958510480489669407592431532194324296203261335486979313707160798986716214623664091098474735495554654950237937351261511406418153766791397836361220588221346673504822975421773718929089755653579796944256098397774537311354050904755141542241557286120955395807211932355154157596063205674057941977297403236384191778263258073963986234205483359115466521677756802362007403558757271568423771796037377977957977517289397726887258120486125115075651892947923716296830229519420169175527688691498882046503904840417870753414518138584418372519967902821804194627478487345436920758474693988732897941571937912297192804113456138261291426140949863391509706617569878312572198425617287414686187046309210321714231822414578554974522403386190291560588897759745562532155070990068361153744471956507539141793375026565265092880506898429938818860139978076306344555845329544505956294108748557525734541234205053562874433507134777738038550438121696722026851424589847766532656098437224299460714356925912419842083841748253140325806713213267153078824024951550158342566776467741190049024571222059124364422981703478692521309188157064291961444006908453519838720065971608918010830814921758948977180568058027489650728148372453393196702826306729199901494427567957510396673169824979293586658907773381232780331525822310332661258524165660030953149754237647824014508968181526958459254315116759962654709687360200451277431306072929001658041219690516281948364665116143352265888656098493220957359946545937347646700651118367006876514570991793549506934026495968316112884017068492369363116604329696357463628303678820844271882991170689334901716577059706206105567180830157205223904910890755914761929023510739212888044927571844141668769860654589002631294459198112199760496700111106188689837315360505692842682793473782457852856504160544356868615861710944874131533443867447836780472247720966454397219781925624184663088993941745188754416013475178144012736791134574071341478969277827493765351966650693877895495641416435975361827456780951033743124804977227044527817624566438366157310253341612241009395257207941030866354780440143158911028313043444224693823687449166697064850170873809896056510369285114188759370169584567812873822025636310962718229868437432731460818048280174913126874623574085484079316579378868379322009228575835307419745513515844541868229095098603677649164535804178596935665901621984075196604910036127029828598727065578989393852496867010703747984149152400020510561995714025716734984283273012407997689320746560496536989985718773927166607605066699187256648393518758027175492591169112059715054177117211599126339309371086997794503160706647999750039694440062817192883105276012769942797519481195287353046874075006938794458360129030211955956991870382717852428854646596124102024860078979061124832354068370108325493486555269516556294969343561236325167969420048912395477537858750412524219996218814266884401026462626206484273253003927263726790236853386646261693480401328014876413648994923762948710597912144679575972560070039964013505834040124739867330438986079268644016206987878946887243935499586083942197280104844026853436671554750274476470304372257884123139376385533734939878591141750466540931725987510843807958044491463552280439876003934505416985277409232789327942284745995331881576182530609521156618768423657492101735238110769228356478234304210414552881155247547948434567839981556457781676588352606504831797907001245710457253493993285169756034504866862143189853608086530001435244680626523584390763364984637095177536882680162246165525719287283415660355789445669012712796710060552254871732355579314641211852757478235678885843839611121229775948534489967602061918561751692360875534646526919850174892596151229242866775566862834064653251905543279174897612215140604755207261494152415768821114593478506588740145233231780155901577430554756899400089704775311099924084447165244752682583569433454870463213134411332031039316847677736039483079862226641675306060379788399211026042840474749144012140696900386831245126886672700139235998269564630720897143694496827822726582338696964010560000649167199828433126760894774209217434249442674920105152468280173296863297234038238928444854400509182317909673305031329689461463053747105186361373196166939356670041504748328982198824894263142776945844566626624657277339086783538877544364844350157403888934199820262838691598711814376089205010708335844851821696323724457811276033163903969556531072372284359402626061459729274795530398149917045991723395722731727466407882247290271311358803722753664438668914554170563515696808076025970966263493265795819344993763832085076342345711594059031656538661900820610911591031139459152017854714932401186886549684538659768786171304478481611823620729898194437780328032399978533215238917910686789929100582502256412419746996374784798453949738134923336558501971509469645262038932181834391215963247373365987166853373600030302394434968730889706076374108804427910195172271759551046734676758503595655265471233091265922731299656414355697946634180680276689428003545913348893688093056505594787998095413433331827835626540053019946087059041277979481425781687283797198446551918554227716931092897053936388966921681669896978146508290766304924382474194472239039001136742097665945060664440377575168316753738651840518194604707664681854784373178892188023736983308310799386257593363014858618087541898152232153891333362485224799124461997295195981725631328065559413640145479020357681231614406446026925814841017013720377984404706315953587289994685429619282342919655035805851447146417571770320344097238813741220472375938075227271265428605755488838333210011403991193016332354305129256100835771389801534615654440781064853210814696303809875342165997792877531419449087891073114219795598117173415830301646927155833375745992579559030348274990184910235801999465743898044946744030091954796320380860223728065547558723976181491057644906613613541935096757788616517104862346407859382685665398371622616881573741209518845626096214396189201924881344859136290163065074755166297812289051872766384274396742566237732086244105242879633030500127291567645789327268927949176272379238282105464780794029600737443000727847168511700657031491373393924918211937771611681204797930895000428373413051361751666074803142363417673539012816714659875881529505375487363262478470674465464347876901129031224988042984670277036098280903676928910787036950375009139620609288773911694093301390048995115813740122090217042050469658143795759147923352582058176954972314603447182864050537428599314718126203111145897189981958464223923786524944562012180803030888513922964601528744895263372902361274196705172131982775257129807782470598815893709683773779800730580959448831321446851286118526327085585116081242073240288561444048899142515178056811768893739221114168993987386620178830701115696068742522307624775673298821934705799056774615676085133411905159738691486339149237937695859255396459698729344744945038578951321808043984306341559484336506058170512782702870455128260654703165070029888577545267850358081057762709058085634199855335391931938761843067801405278717514391638787326480883623961107879633992843564470394833066935627868588716504911697112556138502942757965681691313192754116752352372414164514518694111187547754521890613755088598889776185683992442981990072503658365757050880704595977158904548323046348396509804526842687045963624457926675458326002736251471963156091355491132731161073771537564181730361117831274334436105647528798624745695033972016965655405778172303671364035918440039573998371105704707232492905288747556404315701044989079161131591504846403718415144334023153275225164943660769675727752892875441820704127662561210602583730959105364576918733558404731932596657263786367460799000096712338117946753299153333411184725655350945144503285951399645650078271137102917968127436736572532749661183712816455050922437514922762055515750269307481539499320672551705442617181713307570979969811819603075472969126309193401923064388546311979823374759504972103854972758699244839160576474331999742415605499754359490815379666140890217205677214586476324045701815695626213560680412466834795038840303660269348201893625772635897364207802993717645913922807575918019086573524497336726632086140076810435770930594075898394172363081370201790537407848536813919311311912596356269921454093479356751118552770746055603032605892662703761748734848009321097247193636744907198590413653534672044023671189969602765179965786733702422990179869553543278429991254734098782791097571017057017381962010242390493550557894124775615334721654031262402245920014410205141938288698492020265561786378369604209595975105632140190006321445145332932515006485763678569904591484597163859989428799555413475020471026166198401997095860769096374345475396471159014451441592958545395721351760431097192779757456080203110110129427324006316453021607152163896112523913166635175681439069579682864431266512212987337482046021195355467322074786159611995295569645017048911574308359349825903605582502164720158707249617025275706096298958746040104739413734650627612710816696619039267492092676323669812886089454596002509544303689443622336072392624662037787487493609043164671734090293473539022668757410967311247024989130355182468655957968319391344921322852060245405428931998345812804540651467910624184829498941918285575793298935126693514364785052817135221784064483163330453709277820930392673611980222898471697354976345956541213516150713894864556236436738275195369952132546198754960020717412253830611420906271435114424068624839625638676155721636941983679189802069504919054900233763856449304522444564884004302254287555631358493799985341088152591188082025157917809341974598877161183343685634992498207211543025674822506098767053641485569753263719342351674797122398439897029714507641709324861626058970376861819090713213632943599954443039797874504059792524337872315030120247470054041340851373534983795187962292127192813807708448686318385421924939759324863000242849695595330108643019111476728679371109301847005935453446899868107360478576313900291160252188634207278881263027175572961494679109594070281849118500809049607403527823138975533565997718324498318846256222662394049463677477315839630020003239646393784639817744515220262472291905904913228007502377479802125101558510567461262985630990772489587701380834150029157050628476406400138650257553940521718546502717111015100175433015683441356972650001079471220280303943318527541638511939290270718872863474201759498158424513736124607754938562632438601974943402034731350602915626666624421511028227188122465281303533878729431807190377649557524977824097624852640394759018089544131762424622577974340445658561747763420074721757053937281613421485637889779139210717109951637217651208323344812660150010123474008505596237399383915247609051943114329983987455487019618373953559591913318538943124646948376219615354871565001196650925210592199586383625676471918604401793341513718395011395401560226307324231493076005875549093799161763842319770820410249829103862026847715818175474361679398166692961914087929527772689928665199509575499282985474230148613329843797440377614517842334687608334137388868813212381507376825237189536765726399956304848781182466172437467452968603305134840681634933147816520481138644529010864390884158188804964086085089515424010773755090173943459816491541221933704647679949590485634401253620736294250818009859289297648463230629954311211764830462184748960191119309099075559156078138437880781798150103301851887676721961646386398122302116844069659247198566377860774864096502712682380253155164191961793099386079102520747332881534718005911032383199985873436462632963569233398249975536376747139092095032671586239580919519081219974604342881105526660375698018193017847475933763613929135646963943124692774059213505642186524571099758765626215478296790658979927371165178782337869709422059380051186142934446197699142102537459287843334588781591664678685595995146133076463475626530066947985230481538500266123086793344599669002334025399319161902623003323474356281731223141380735900891570488546384372514840636720097170206043946647857266766665637597775306043132089043248971193320068559143629450753888773672546971071968025313591627701519263750679943435697210769563804644648871465545184704576897278314632291990282026397193950764132817955283650780296396264803102629783121758084769164370004040320447848146487108846383800563192265169297422085583026160094976907099378538449065190948451875312680556808434178823560777865472475934085804017195861247953491006178021859523441161548643714548652839523406094938450101619090074199671407830991339171800540673456343649557983477860016230152041920746220951451725669051785253298862554279222293588579755403952229219369175687772798929091622277625170912305056395286566848840114405204544826862431859816549004152545242082260539265861037349545427957645970084596813616973839069365785102323084326416544032042536287800513582432706642123019993441859429632863697265123925563808288046712591776314429843192011905634511610295636115614926851164423830907912919715464178422429182182232718519054154985707867895520352882327150797040376446541703503045861769948214160216350623055154598517655470904007342026509766022390452021233257978467149130681993417597548758680874143340400939050825576649911160429704170987256447243416968245844315047570252835988724102521347353107556736641496590120586314327467561284280335038232097946614670861741983983569686569783140231772324744993281157553217949229341029434445712778310580163939242326338176253180205658421960071041010016361135136752629991073534739389159671347634854632629647773585372505766961216636303550642960744641072306240971997534482765554279980537156780732596469617049188095256420735436155418095645762099316823822275834315205710057370967504836771758412827194435210364926543849544057031446088890601475711529436869557710913176618768246085676989042363752215352940127899803003866877810694327603511615388083327264908128795269101268563258080928478756499589786942934616854428566569046003714484319221502770282470092564011797660706975750602819716900726176473746899412549596208312406870988287608369988292436514474665374503572547128681397747018750581206781574443833224652046390622299489121390764634768377213788711021140835008782016728050334922133831952805904786702581303384868046805340852952248585216580860976041251926262984059035084148901057505451020297277004723281645594225352061234669381491936333304002218787313620507865008353839943237374815196424105763183852151639244875901339201102726474831907312877429291010374178557474616650936235416057649627279481058116364362650001731617035107149690526573740013298423179758055931278865724404074110155064730370023218277178405080659481152906784028200258562053208571846428616695366342990825538294613826912977874465701429077085373051059245021095479145649847621246377912125485922085249903360945623935847443263664640185907559550773408953419834237008696318970827889094389700217013017864611933938339601389837050052752769398593681456708701316229178669904770170882313746471282582582141112390575330144671959779386216080401530393905934154728490491700546513567880999215115093650560511344070248416541953359919041181917768145646573643918247702302225134679236479501258090557988867760920056353638964219329597666526187633673093261358361518020143341231258071781447540904680757956448491683117235533354910354748219154904355756759460927942891087756471584993140404577717868701816636893249074588318726571562766975493852344706197194811818642763190910132793557378578559188101429405213655292646641693520803688904403758522617883037783167011511314126630365682326084216569212844666436553784136867865544430955617997777854888778063440640185699581446559996908750975104495035133258451644646386361224294622800804449145307868942813792698656580930059767022040407577753658455697397723730760902758480120117791554663764001979013760712820895986668662408268970770500950818733366919581363101646911724435663542125599716284004503820325120526947192252769815279268989381441937257528571732457241096749393907272718353788578457550821763175229183157545437352344758182054748272590076214117513257664707878375380036562384105729789142343710148978767521321599695079443789623621546134703396720305010646302619729684552037603054220957821578736895842003718477098297480471006896672591642827321479877319154399508935158348629428773459698807609540084630501937309457398915625959048900539390584049333524907475663918841753715719014016687940438397420978095458405931308680272544053181886669685636527684514702970003441095401857291622233401714936104285499204173956761697437680801596016323728561586394056681826512640156423280440937218146254412301846430069794245499851884108748428587701960147835328877099444628192327441644091499165533879486527092783434909825484683248605562186294522081051709479505296627854300733637454332241666863514921690521931047968253637774982888766230556624121120235132975565728309476002950831349904733597721664024300172874213741561441599266320792134741001503405037259335137744311236717193451777554986602118845963410615151571508737916561475048379816807234898893298325741490497694290140705395976997577048907821869508784505404055722381266507276515648567926434689042278405249748058798246763879590348431848606536140985049079011003443862919646642978279804947021301664144465527828451219579469286525549605434705239742137849909091538428083528918793906793421393549669497051268879665892373519371087863069109510532531364914612603420314089572256150757407469888420045654474625545311341544983010935627252553478102301247248659126709569178061168353279514140889247022354271901700003615653604371583259790314653542214440223189459624586050260240247147952275109845472341396453920297938291434068754647922931888102789289003745409465799552542898537797610185403370034070853739915972667899910126103239617256007825652225796066199128021357299941317324496844410598511837937542300266441665565452282457665018229688950238955270513091640719719242513944778649157985512360468983797192840531307607509527965628485744720576456674404146169169773374221253821878116853392539642096108637196994697613132492239195608388371332685960760727560848470361856213541636281677179749721383150855247363026330155086595601122563194867205406007380565839120881799254591482271320214452984719661594882595332807516679978750293244733747926364188701757656499738375837704462900105672793355182694667886952792262280590280343672631871754450584194390558125083868010816322066297012373443516946459424612508049478653320529354513027112751116300728325019708775338610006050318735621154025519534415392902670331485850888379464848659261322348072381741446311914210093924365003469352626829775709708188067737505634614502760674093887711856028348429036166915088310822078513171102422530526784678736159852782673158706928268585462710708129116407928966515858640713983982613127751164786377805168813847057287117287399759005790547120991791224535746566304229522516182737720456121842461522658912369144214513130556039419655358522026735374470708593582516133776436173983346662513222796800293357434038975759199384072954342658738363315080067516652843578782431987471615153996241309647752358746329074729439604267963559042080095160552002140217623161873861748274528567320831576348733791434328470072651421098114842379309822330195964118901435865505495715024999733682522326857515271737462213608017333295907117600229118218703433596699935018489333074648759040250298765860008269838742281536177036221927730556324083302124919455370948231698615303325618017637519241331006674990770341468010940991992448791193387514596580534261321012995558280722484841152845723807394608095430481016680627975132941554186676002842213747725158138187995548173628168456950895299420802240015868925252491579940325267084863037198172323531022100113127406443799396898313026175146660634733172376667835804337471789962163952562927688811634287347679546269919271273051280405598364874834804718324967923848211971582760450274829786613282324106997944775613726120928333336780121933949736537352310498019999141696945012242179850462795211707653473607661867518602212105841736892446339678151394067283551254918492671462561481067498645649586877882978586411532772904511356028897596097267467365718933091019883296998972810764844385585792655410557788718987613599179168390492416138254808476183316911007731374143614939196526159130437020317057622754873855412864788946057339979013398439050663340428384314482875383274488602397012324589727812273157046219856413424278876033765770580257985863868174960859085002094643170043237490244916752981031516995673541298282044286303182868166212334036676188430695985010980447616440734954973574926540468653813278736577102007844700826809655731406172731027859539074382170958460089729701774228422159181768110835883351523576799696140437938761356922607115687742355831761512882168087372303330503746846229311666352745274380158920872370339456323988520472243968834428666562852088534777073814144802091630477808958649276666854467767129480137150003614002722920242987669113904806271777430968451312597848650035563524892066899103549789086208727219140305714398441161182820490065796316889065877181230565107415985635619037101559868935226027419969222482179265784534669485957423948278981877294698065699742698299462301363551308703581828126006756145565265578583532849562380670761161272431137286845134710683499097537455550707996747609697117925879597114489049559146894429762136782605178156100903686767521894512876475216214677259658262416038843702716612250051528671664153430005594449493162817008440308346310012717981495125407756185209810765506268197945321343316625178292965093750142667556705614395531579040593475230448561228491718460832510620668660881777717826872582732337216073044418891420239395208255577684133488959793819748036637898052322538323665685386715571984626067501742941313520708803917237697838978251196027575072835249233912987356168110908696062400662267803676254986055517484428471868655382465232547501415215350604159018834050143062836760927287154896065882124865031133520478151451125657901895822550736916173864553190468241467717725897625783041608824103525112684577935084232448999476240430293495306996607662195060048442132038670003194053764518607096808562670235692869734220554659866736816149093502292607377361861831732930255330563755784520151431409720243393354683391544777008650183738431624205363889539214386517773809311493166901853214485468516637074166824363442001502485121005177135760767297719255008368692179916517332400444408420872240636003447521081462137379495548751286878987515760997286846957029700384792679884203083164320475745145560383615922271162902315928092226836023326842287021172865850552985835924123610619394404809117077655221999233830714689184086427329663943102074759679120614744395996881059856516657166784700749473787416471815513500593841715965067821139798414819977704952594886426101623795021464593676081492956517425255068390831369501336020731867063175434733054002593528045728040355652187577478433755257766635599500839318780300792467679535732599869023935955259251652941760725513008484627469801292494980502061720460476329645290764092727806996256776020891282042309018985183138770221366004158697791763398209586232315921628412254268033207194875399857752076226443724460861970728126555965938975536546228997337611067642965836768436530800131286724544203944384685827546376120829118466179454951672666126937898803565175832199717749870246034670247845331431837670928674120250904652836655793625527605540267647602133909020772613751155465898570121774738908406117292848540973315061095465532090680677709481148874778831338116931866581660189314395118929942107724570968588434088663509607152019942168172507755547553890063172540534008755077818296846387773204178018490719407820433742065675906796955230535790369559795393773271767194009278332221955088399732196499382666050880392941840244833910720459153331573407141235337992919169620128993789275494267952112918448852900348339796950971592822671051076347096231928226256104949698339335358012720066454966275300733154807924140385658518815236664706192187882440963467328242716238589389713025177494635708416837248943169056260511595104726405757276726533384831911757541841579667912035553880687132447813414606568746952641250413154180016874694340981012023481801853247596123878775349831073075945269820183067326607577018047088135086931159763609633309865176242048156326957757672636190797906097528566827896451649579889506602062511906799236726684655572966779030487523396552931456180964122158804467081948512556464815521260355928705642739840661523973583564971591490583749568256542947603607753140588930041553713314074863059782674661580572446205422327051487426037100658473703994235777896218102485425395329716276838965175505781782051407542583487666387184500577778400896647208158709444481222435042630839355659770988359308448959731298831867591596650847585097694476614562002078260762076379874633730162683769225628854939896593988567357604685980290194470489238725496824438806478053763350492456372569580375204923646007058544844327236766479138584108265781782568645927755079456313164352243843461838826612810207578974286722228339236391246117967747806708165138546458452189052991334979445056722059958809438499890109861311981067444550249458419448586078582095587086863612964121320907257061382179528059983494758886179005047464487548769643512310009084222310902117295453088578473373878367230765529717480479097671569127718714448490860563363099298944528642573223816976741775994973286607134251729529825528859341199208122089824549694518858820080917332427237013185929342625128132646888384632202737407682100687292086815610805888907609648657873569769132289130420889886619767960198863887001823955165457157342546032031775589128412869062836767264892403285081142278160838496339012163756551097757480545970904987804821977441691155934440375089287629130412057378985913186494078803227035678966211045759419725248939292984005741363960552286792624725762228806965444441358941418452511311715144922195647412730224320595075880980577310350463202754257922859712326455701971251665624149255270315388500901551471749478499947733089303531331991484122638680023966287205980163270384423085167033750852013961831084089767288318777184753786308126320670066749709292788765318113919565643433332004947297494765407471476666322438035385908190293561505686194237430993531888564021346079282233869666274933153686529466478235796317175918234955473956052803909922461577949382143939734146961598989084759972094795375873840359049285664509338246461759230190975462815965195316949690433579387308045667704740463396653510623121335805342674933345332520837096905285758238300420843471983551194073309668419406593071074004396412068039187109455595466458464455327254742593124935936482402148461210105907856667975795772858262370043285860379495827249491976665573453910894833310383985060801859232047898350816122101790777170551478653236208404344966871614332813652422120821323402882589604244361088634831362323480351937932094270417182783641558666133348763533540940109553712836363760337546759073913881273091637519807892369070451130514589990945380246563430802663855159334035926130396488554729497229236516835542410610459687755057165548431085186643448209093703908493731707931720017772493216431966063468112765223878661340564132411032959694054294016909733481821431588698530915345222138387291316077579338614450037322462878488146035205571521478790189333453563854964271064439916225030578309306939943139603907299414537799528619904867105841460010480016939945747066489665986953078147449366619605165779150447429506275005370501315044380843509497599450078392718559291324056968291925094505159843369633793140288128447199211404731925113577950773372961060271478274345531707720935479543111579625615252879016288025456074606874542916116788868833663367716689713715874180318256241792501448485643786548341101352680993850590239838716995444326432052049766712623969919104858905344349185149831700905945478286605434114799285557136839889470393113385747035978935072245333908580166310850906260715546155132573142571025535079591785246174565928726105249924680118830468777745839881584898809734760477427596986661950426934271132734041205273359624340665741316863042422238763482622477395467345030986919086041196759523928954286959906310422788725140798166115282514831564295789974735785716051522067196009586334704053350844209340250250631831480803249959914457350700121790371725478006097942028248742171901182274640101889147996508239029395557726944497948317217566189691437195971316773198619735837051753055312287824978477703407677581758425375885494180842996914991277637007725950298422142501419714040437048946776886155894369470710936919555376051880728117351557517001288397160960440944949545367444518751960408498412374288746377392780456594713263625368091443283044764840906379908041623508192144137874622747791217435662966809217167676190536164652612428494085746732218398544789875736539742101696887823289088533646714957808150513951002905408843563178680025530020678627713877065900548638599808805346791026335229221092783962347384476513843430476299083110420877957905559249442425539378756582028480293849685649554353244623745733708718524595079932407610926623658401092140771345799008848424408169311254857939042834556720832475532648886529063451637759805545371212387700741150268090560488602367753555232755040745633972035312469720098806229019482902214860442783360584690042314891885122094151192571126463831311350510934960234430602068846401542330639044514265011888370586140271325698904187406993967021020950960881771611701022588862120297272516419722494911758888035102728809761399053278042189123807789200297209122130739261822925952143739580152219754623717842709658689136627304497820058800242228877670939210996696278541118642980834508604418707784653324353089320882763445790484931727395703729518240758134717866151019002724096407926358158011348124672762157721428098670474959249564459047601734037343076347668132538417756292625118081679294807896004215022974182029558927796980560659251205596978747174163027943934595497666842660411383520053415841990907694644871840356623072552717938607351158391155358550532362064349533927464176534903568721004525673240866851401547086251946523340015028775178784505278990477015584010844433430566734906766925368216177338042867546040241549263599514387340166255506912880621949066649248132301355606972457482762056776199589519475494305469201650480200689166874433765263474826115657008579684793010438793408412877343346121063598130671856105503247676553444175380961923182529057736534331785214579735224133796270719681745351713249889228272448488491983451973005282155534574464127066601079743051940325111038655222046016685059933222201807567342860635879358013357436068952880720496434102845445166318562576469926779970655155840239270982842302726200214027221471130893703149132053463406983298754197658636355538673998883563718888869620382687196612739479184455653408591880167437191820046618154270795541733733643133908008619515863644944105499556034057045146870755734618553663341044140889296976717889215523041689173686451452814151856451852216975658942121014559355216587053285205409511591071629815208540783110756667390729921763796512073074246373546817252629172703529328958656095537774637759466182780089386728429255019089166064408359652967008248944433862595782939693219729117786933834762226694791386550600303989379075634392657380130534883011504802708998412620390310216529417266877476823460748423963444004479714417527585817082914805643325404583303207055336871291809405606793572628529837608904890167577256442845080752910099156896756625833912402901423355756978866542648437040734327306597286962258470000066297548296260224214844070319363138811298571195128816949412631176325491777634200948133149945635265106204392690982319927575442512024207997930988046231956884898474510314615430648172086531273742564071840483557677261585764805599426411760002645082758631879446545317363531788316508358748594596206993037679277815028260123204249623276840364337371417614334210666636473190606257080460957489239929820743670492700610981305987072633726717630243017360254896468362096591603909049372576837073548372982951955227533624958228628874495177819976925795926244948071213856094035183962799439061492963144394849960593617509384606884402786624066543321945757696783196949189599008911591372833410609256122134791003088107123955831161801478984802584477849642985731174317474943569482260166591866196259845654892701550281239769008472925359767101165941121869154872599994669745378004503918452041519339836208104661277485764288544704335570723506143834845014899068132403461580203755666138210621488610734831457658449011666524289031090642656751982852043229057147828800878050710925790236692108622566511201467662195843121261311525169414663657045063020578323428013607021097559008853019281487828639589841777450558102884574962122363422753902941684798743262390476543476314213912569502516682473801817795817357904378735746687427992055783208497041847312054688569327174736733997769294234631223956871813138698496099519491443525954035950821788375096354112603079274011213638810050286743589813971599073768432834045793383890191637396001755315891372309390461535530666702892549390121294647575302823411322115634563727091548058780434782123386671882892325557142418322425381824124550349543727528666509543087408054913440158893550764644201522819804976346900473991061945354612348330238109449399461011663017846458685589081552123829316654262377546240307054555394468005938026023539931358238183753063359919879189851195595386455349556807769314299755160555106518866482743384506687581895164814261744174803265115651958187714525827800846504216165458042472763374846071280753110007003558631193520603164622947246773740928226551506718392788461974998493466252634809581635466526959345663895839093809137701908483909945509935331675750248122498888623940749168347071993471293269435218034357176066351086765667407816815813188326178503736800133985962926367278193017869765164386037008177597749347726820376874098505733574224776767538046067231088226423086520846093441372889045691114533755641466550539972217482542951801886981059017566486216851985960622135655402073771802887923847734806042766814513677601229234499731831926042849406179065977214268080650858089529821505744624184653220766398122905178544239621548707713728439901330440267164567361840372833863850281495668231578410922574545711306682264588265585435068116450211949406304490157787380935421638650434310640968352184438062117125993689765273425060697715463051379988150279567464194938506444604148268784684101647259047682551973947158981426804855239712208011643070812249534692407308987557267228322908626172671057728470124563909189136731235737566455857395014482087030084489884039962920691008355197093175281606003122490483429921654903649388346218516391782439968730048564892459071766095341691975722211744404028711160394948911003116531194725159136004765949039859018878452641808834109581455776512863246137586466843657709723760637646723657310432125116675955243129482378703271392094769377604512040581916607159682586359549031785398077227973524674464551804884108216696125590472147494943499114219278277009572896087481491963242474915718047469673540778020181383054583929406223355979284107392081790988748939337307532599715724708362659920736500112485585614388350836735652217358219399951714224335017028083589051496252229798223833266423544808940791607661269739075577035547650439476982907494845510973596073067740412127128668610414179199559549631953519520364343458840950976763480643385850472458766129736706181107423991177622520035196567344925675014458618756913863065518179735352954990649149113559901331216409356243311571241178833099782096670061969200400632610926354009001913340099685628949668529835380456111505488829385248325855707409883340776285713326754181225600973519870999036283105332014000201674127999172449159816354490286983222707101439605428640025373023212547217547604598798005801969048619898068174407987750365737966783398278255766418339836796665215535039244367346236879891784950839763099528011740285894878511522833030684108996903821935167668909240740145979568018153072788169970840186455540514404778916529600723142575524329370507142417420418705509114397481815847846863490671864833356840451691000057902551677549410033191301880281810639715222997414109407511400153004651976013763564589276852286675567189601336949730502670866307274347686865930935318013579800457470379199902893319387231893440104105804928490610887611333121066962114074843444023200129024970736033077254254236179382905695612281579361086036071453396168777941849664717215796727021920073559905689054506261717120637688226442081395734371051846125073197109558057621281166744235931908227613930909429753237947931828893518183853095509836549256980832074834217574706044843288101023682608362952548114772674196555351315993352372306773855886087596128779100991631463566814526375066294430224392434318769578426133460499823834134212389213814007318398403699784647525092171204404246040647493756183624047945475322461952677503148081652132524006688476993437063658678182489125075740264334229682933045647833706067074210765073718163862048171424132237076929120829920945750242610739307818920731497730948441776163209557712911231357900175219011812903138763518294191174221760057822510351242477716433235752753989706102666676013359366593230215320228930869081732351305655865389518170323687840893068184742958407497035257905407482370331181796376200207040568403963607705483450124811964320028552438082717536822710589690923734284282470511029812496362281641342416749254262189319160459884562818810546537890018690348566009517200906296598421656837058165327297075481681823122639339036717081971408350176451963647944550513996034382117093772383292854470777329044825987720015637739746968097555432910367541024853812397674982163102473059159409668008621876655252713378744352190072786540510453356226847013244046596459753255278126932741425593643350986644210125366274960212671439765747147278932570546097903002849596550323336031024787047594178729370440768641056837136425308712203929263912953533102537962232554231859584906094034504092729423433367977791180592783176649568855282669146576449151439230439731666680823871401559523946453149592111157181976512357546267932231241393229281778301584074356178386076452547659492442519768798936037203869516347959634420842635059931741571402134610006003076221884126830653583132876671988884954473169688756400954629459293078608807091628825668486879381414623850583713333287190880114853958038225845678271402176154809275169887071071010213817175356947982612680500724802531294021934442722343131674434547821274403146151596382530369884385805561586275624753048319885582159001701571794437290153948706243343477196713555842333374158087253265077926601497632936495735116082811334874833243183848310062739344112157427652054085268028963200347808785279198279518630229099514826624936137466541197222080995963092792647202888119991823163160249183146711728887330759561041057685261053941738279073574980588463596280568072467830400494001986442276533774565259573890182672742079885359087808115164878425562932993890017408224796152068681367503958381682858289140446204112328233124327802397158555309515022702842282283644677108024633335282336272580256473070684833080737455320942923415790182794045810460762397495509541359559516883085931045880450612375401108477346448530854018310250405028703812291109177811594404558324029820271999757629823194373732600536561388727494113157787762832988809689118706880544016984253301180090173513220846491631460619774734852995417206854922002789115440208193386498384605692289739694148298990363525016354230138390329997845520998094475926429441999050570219052228312778759442832360676819344007414551016795460505618639091744159221909409881185251302762401365942703914228172492491829540211980387762760175177172784848253785710861636009906954999234546534795501924624854142241319413287323047097169358384541793958848041588089974568287162356595093200278442501174104874304701604769531053098489144684484107044424588065334598630225051385427721629336624661932323678141630048036778906706626355967083904676111334933351545815530293778924763733453827816340904126817982812443655615463280008189215527817825946945876018101807591880259868119198797590187703711594938988151954156635549351619006472036186990135248171302114407423430388374728894986299204600542395631482367760577502120961552251513492348644921948317287339611465759381139542742837807680299035185462454871847808976299322682980049441800198451833097904615479049372448435869843642593257894140826658081762107904124837567210312466273345947646915757533257131804981894692697421398137387415408916679020370204878417951976251199657078169386724493729426433366360572848348686361887916462027490640465403196965846805995781363836996565676203709589381403148665235588496066654540881758232635866059578247816900466831808370243353740783075745141689003844724445912199539557175559809085680451139191340809220875518144803147931711471548982068617375231662375718799480671266732666309411184474968895704435887092364896726815634827147208003077189320192779667577906511782029063373431295626246598958024486347746311480093143000590908408075360745080367495574758243562993324104686860756723359369816255193717988237006237797345920450473560738204800111230662195525845564897675505301433298865549680915931324329425248336371964657250707401529927044514554487550428894075761906610437374845627882091598008778945406618498476338135050993387294456848218040451885807922074033553061060685605109275269637832333229595800090832041701349850339331685898607220259216270204569056878466492192610721117414782805071874283568855965949631224703699119710926021828785033398290352987877349812221927532753525130209455984562941356396472132174260623609192025775391896967413923932547346580981812918670976997362256053325529866592651106455912206434274929699239831110110249605458659801475380013750541899595879412410810773948910743828010105650529579732747438452971222716485231393476642252880889310084954268634029136552823115639190820415588310703285708327262293034639149039109681417448348933799183232371769725649516166849594032955176902467038664259993570175727596389083046813904158434210937293746005853128276238180756904480669394193944867575015023177415654215960430460334254557860916882141038756586732453373932352920746013577612628382679960810710827026754295572095533323230237452236997586567848787961317886390794796179391814313038525443482178757018395961505512843388588162198705407167784519003108354205792497979052055926415053454617761391976472608204700730175477196940433589120407880192882818010233516775750797326246854515508927358471673178271632912037866644849988566963699379770306260337892326282041000596829438763223141081285622067073470453108420101325177855527786972655775864939168450527034778879802736545813392272840705978880062133643017943119045837537671257858215530562317478363729124992162958225322125749191365886672535973346499128888744115378512733897823929259129060302456736839246977583981636899256599158017210821129836782837379586155846658697718216957901131419207419966625458284634861617067298959516541073260947106187799324194155094125492694040225315591231514592779294189992546501032733999051666350100275637432169957707670837233875320728907708233397635927201141410823428896701913659012504598897796696841525837473289032661737954697092726140804869963165005926251885409164034880843830951376746596971568992942969339640973809946102354931589710122533343741961385061939784150921918233544526995367047723463892317336760351402994050867462222883462310278485929737462939240460736932554687495425907292761383461023447421990691411753350872152558277214105689639274449695292351644173069013827840347504739209312132502436827439315303904566508555834766341858192518767831953009376783472601735003932818480847223648282851378912874084956969296985418205559939090883356289724773788149864484286737429577746686609279427802963390428696711410035097186750315262268734270552976895761020430149344134488616883323283348326936641528375662496732598264623461789604165783465928266428055581068456088758510974622428679447980051483068145952163747814655689004589359302846415772203730274526249593429563490471618330641268179357818694214890559768500565064756095427251384819183006578073883070070510766646543498407388432613545675116611491840653283181713102949460509084105672829951342558246884208022978989580844725195504456921175713827726578211922069452907612332709024900238580827665332298974442640409501894799434130754769019622716580892905538653984949314002015168227926312812546018194491642821481726853323118528201747624441926861113822744006546210689000703883371612261004341202111740557285077078285088939971758493600168363112713726145761189405641141598779031825050157348165390484541351810720585975653420171669343425851626247444877886450681097703270316214785326487389171293056026419365296898898844404539283293459174568058818467579548871111776528309090896092676301889321595347406318408123653793331720472362578459407405049185637875544109475192922551833952676049133612743049124838333408039000195408953164482480275900424539403604317085243845171289854282860953866967501765306053195479924805703129512521443366162299744021985412052161928036550969541314845984309913371186977226709284399946021380717838725849932449293154062754583220231151796659220117366194564657927634657685214625371609121803087810291912940452713309253221153067257664079495585845805153545685060681850728677680509472113645234708096809865123734844607143517874267820153134376556548725944888961129834002598116601648550000538334904630541266852661072955890762277841099561811818206038146276497720545405296431036853622789870548443547372132272923826214382642790875526685804003178463012555752603146469770481796154511147994725886854029289477388796250884111029048468891399347444331656618666592935742054610102265023643198106082531708159471475633974857860827610603182581552332998066809513329501725281463353264420325882718121249738004324708523579371905788054831433084960917587055851297901666723333124464451391950843486475513793531530356491341310114161322055947907244790182311723902812963574979677185202625505964705354887061803957160988869575087717406261960487855253919917858106002617412866693631716754481349579410032375015181993711488226458318977649088573237819484540519829522605041614402331513160142122328519576341948431515023161009045993820240151175274639923009605776110943539911083919843017322240704018308548763495903611582769042996500711673405101042773518186936465860476185968213179331572672980836397086429894465099436173067745280925192970708551272635836721441176033135748768072386527047486370552330713597846825523274171383655834633886119418841835133046312030084142000217332656839794905697195833587220423428621364714765393813440932519881330186820427924362559588666748390846315925701165276346515644564646935242959493222484180220438252942265366028668645391908897542351107803812880533495364569302108662150986602019781020050795829619829780571135685930074057126064904351372600394234447534160706271568096767323066272420848705602799115781950770169041671278757700717340082109014793046038088177934493750827394115243815916226167854878084436423188629712653027506943498022512281334124039491491915399159560930845148992217915400157024406359258010330229306283893611714373756661379535691527378758919495448898004145352281828255583627524913681717514554792207904627202891588387287011625595251633592043732944796315767229514700393679367937971532422201374867115711828293672520103093792404531713012364858214819186148660387997381159208696517153253711263542496527799262505935710051795063455107039656272873166348243372111711620045247898313024607902847698918278951325500851419666330148320964356122205574804968615654827046978320722001880805926285684448488594840282834577170059768802096805961054318107137156199006892869637398356118924165675869413566199455946646754916450344028687953550676876805194408749473955105777088596851136523775108214364626469645101436530297205530502543298564604908650848646600238076567440462377236758744058046122485131042238780072312239413984114730213371088492726630107922215197291988768923209693896720732010970549394992822489623583296494679564921582734060663100115342759600340206317193756594130625146000306480866494677987800697670944900661560188696138409141248315678433488928363239905048670753966449765430128822808591639205616182997000574851698480676121992760568551406064101412434257290696264978083200771533791567978256005385522007988350578072964628062241151803853232540252071715987428621592623357833244385436974493310198700837753414178944443074633282578844252210053550761323777706766974917918059803100758004259345515761059146392774448272581392346150332029480882634075743249485050405541741803812873911701765891181323612012737581927349864224808440867922296535985911007221401016299728884830723503136471197035261595526586340583604755714244786580005781297217152896036211624918773678475570344453671193129740194753938477503549092362409250116572201672880751451494248728661934479957220402078056252929581296754632325699794609870531664821533605726807584630051185872548515772111620761792544272763619070382940554917945018648100064189173356569706835510667738650146274461621620240176220470125158351456873238576866905318356638482029107451322894490615457360396694160616508660502437608202208300338805744458211750694232441079568082732452625357055987170012853226537961518984708868350925106832318278181125229010981972464921914852498902796111178437878008914101151798477296126508650713164930778552992014173601163804871223102941193145575206860700054406430085925857489257412304461190645869493387274037293775616894092968980382489146277425987597426996784909280779050565438484358655547185727306437166396764383003192086383702073008499806960090380557511087983807129623307645484322229924852435921309710686416067300070557656700450377212457365443506704215840931844869622907926890633318206426938042364887966124766375228239523417177710849667708590505239864560265909377519347716019411018391352085300983494288216648927086027472430535472854321751625571755775410643882146911073412382794718372098085882457249943993516392749061340686794054014438673283556411458221432966835854925563431568761996282885363413600352721013889864981129259246588156687759736869190997455377808264847241685194566396524753151925147483577244347417028429485384921559145564310507625448749322967337315015432948256813305943879328413937205768998766268169762998253546667098311721870632796118037913843910922660959175941181877050090812459546295133445154533561532656699730731736231594027787089227322948086617296711848393123578835373506771894212191026149685955525098246212836000214372441119171129946263615674732799990266173966187764751535783466496968089860211837632361205357741581125774470345117523137052575810131677795112528087265280284654709033709367539788495113151940007767236811545043884016910583646427705978979254603716059961844938200626933212740376723122422846025150077024186672488957670371412201732167702957117005869234165010109586338179191818324176869119705066329383075299842741605270857258871889566261820739054482905647824582854246906506524618882782402056442525558467946480878847566750823804671601854021864796460978382876893803247216629813347502853299108934975884709066622990037342190301489340079405150749759119461301851901138204433985129624269324972185315680081762621758083821757208617857409038833669439902500056814636152652676113507685352674676826894855215825927166558727084251220568204518629652630970700920156592125022963847939760483915930549657809115710613918824425887845328803134854637060629192424987288606180571918522326211147702328953988756784383304801234861224937294839003066734170310096494903371267380352633724341298061587629330398648124828596091742871657643947647448969775357617730956102031065496792740177262059580747545786629208242639271615750745426031380159213191687286678272512084699720267139334763358253267275376650679874053769941707845932410909792973665703068345155882949620546093253635851160103812175194422520050511569635924095427118102280631926212991157713653988670048139500223935471519609913926064272306624987231703981223849791577174308422117295797486152909535704922675251023429650775209727152893835196475632847440644199757160466649086955766018598075528307011348346231444012948678789298286380853094594893130260446436070157020704142142624423595838104012243008307460774678274716144084305961629722531525510241209970978213639802979231397177178078899929588483237605463736839008362519816693951605576318559646061451436945692271232360161241371885692722955768826034709904371669511921491368086921683483832481237907685246789421832288018154135578989290841049955970727250119980996987949281302821810988629458600623785447888691555610240708839685140141033079269982029160844276259088341372759242802671620934666637490879426864712039961824905464742961094321670057246593730961869231870137705420258605336035373472300592880643437895684697643107923944955824035505738642604691519011240901828787099892470539062268650578413130601338686667349506262197069843850214850250855575720576178925332274782326743568900968147030249538058750782639097189678239354504545345882825179270188302486716873839337023893339210347061396579774945874790909755562926858460704538549939280369614886997944665097590382535250552812222393159954484853266752044349338690579382061532530861459304386281404126990434403129352102307981664420819797938124556531416474850674036422655568863151444851875314502229413447732326447723611400706224193901826328906457021824697990042080921235654929921959824207206500899587094959458053060724351021260268480563787688578165508479843310392354556340221754406053551847308374562230722020939127985589032203966861149309802841362584684959951748988877220141883428750090715236193285900471480550362236717788275656521598557501032589398883689566019987545529191049715147732495489588787300757988151060637155067829378794502537537980207467988825840233105044577323474822870488996068594627440054189697409378117065096419609013650399511633840441071314688068614776335826088138701990763402050014306710724992508695857009891308749160482044071391626914657898202979433583474285827392762461141452008407348861245202241176610296874427416368831138687400160265804944618843819914927411734997029714250409526624326155385716154697873666463966022880080741939205257631369865839788257296202130759901627397829243038684500897396626112860917777516102741594579814741564535353922446843791620862472675036646941155569562517922131606224745152900039683103863515981811669634957734237570685153803154776503329473752093788426170569487118167746111205770865643128815197560742920557838924185119824972854123864163413231249557996125993216600914257258337821801788611518675941123562347905067161444106969949173267041533003014808917594963551597622651105010985638583194882187194534670778649603342070518414131293507443360291546224146871060270549457700461295181213596159666337953316149995060366598399292788562575849581199202644123357019650464067964892459869887628330792125375976576922786625251745924016277250121490921961057287921515737239502644342219746295793229385129256866061372835719922608267096975862917487236987012403993123998412441423474306318447016234442268267251181709425800998773005537329892602573863515064673615841392933178394167374636720352085573570429643008155439470284284378407432116129000233848295616944903039870554151310967629528805525727348123525113658524193794538762798311921838700893629332995782025240959276003336522510691375447887721573628190203534127025459652246264316275027433622755484322484662878694555789297083876085113956945642057142500063469897367888455751776100039348353218181629123540576932022660820451212464359336280280460420180438848650968159487757949059450564791445379419823207465879370430553853775135050872002354773783735037544853026086344617303567649824240593604696446478889707332258465562773164850625204677134253489158915058527924082555993416747542102271791803401783297309497566854125144145530206924693278239050046614472892509392396908055091943099179126281121907843957527923950963683838576363866668152940150674398042441172077981257318013690393579924336663863401089316082668024699343723797883026349412582220970519693745941380984921390451753615683364349869734609842396999081054284462463916875385307968991365008385143062861933762553285990366919646316855715063782147158966997967431518220442399378284387877278688966323581244408076242002430831243093725764790234685871633253464116325619352404568428456947882426754630029010902732363256737697515654659371595978177608903496869220221584846959531527928107839058632532920462821180468419506198757752541347384685689598173458124207486832015125764798417304236070833226997569989682683293940404340424754133083306606048804835967143961934900683141403607847361840750612271675710238817202832250758372778296013422984693714221639218616673487223672014018615280477190453951995544160586861960679542796660491751162879556164382930722009306816102859284303393152400486774902108443056211026974447990861913657072464802462762721690597643185224380064189960849504509463237855260150154591682288021973884222912858490017731487831247913228039706120202571507113072744058430395902452421260942457323868665840610995716294125264773948308001923845685864586214670859464965442639647781006921271863218941818184870461445258130015272720908102487663536389203360388352242451446939422176256181801249887502801415178192298300957416737355278342382705275151598564990568526838758518808596244597434363000347534007874716580465476310876310962046328710594137920201775468641151695600252552845730101244975811155627074989116058838340847628871823611113474720273588480450046804522607720386902728043780606451010724057850643978103032478196307704148075900769946851148791914437800632153844348527078197494205809935460349451575142367613133921654363508125253176176805996305103827654159554404407473742847283053092618104220322477461540656375249414628666683765789853402570622447352070985867707954806848082880200891027907455838452742876445441610987888544515877645141702845395073745509059859666867955874063619200522019963254225430920813671277080313734006132644471811386101524810283596449896516291980417966270370211765565461465205916448873501620578552380940527608540186332035793570189171892112730416318922097890075362296580441690267544475803873523762181662425486147107732393107842559822324937600023889897514596571696478025748525084031238995386860257530467359705017040751907244633809297460964675245938025376076660800558914622080474486824931936402199460659840600107098701205902726630106547281242671384752210826752135367401512619051112726166768470256840655705332640474785907249602543550652124767076996559608191773602259830701084979813966109069891215500025546302155058492516128383352132419381986100304160930475774818912688972501614579641130052948079944011973396600430020723292327047883101333561322981981381120902994414108678516685399049143355221239381085756007657889992099796395958412710201526244390808666230379598514431890711647320217986132874855425562404066033524590215700360409693732735140463659730766631477666472842565306246626614248026749727351009519167274084522053044334076732027901548647641184077103165781244449317501407436555747681012872736256485424331963922513272181975417893921347629438402660308894339500327436639991218104542999115897625298935226534788598201793172313327902106795097800359205429689287249182973145372994477016899791123211687817874566849591701423501460152541090379767847399255582493740714686280097916146736412268400862720899983525508727310389448424116540046816164395463528319795337430032348839959848319407147404923109246385230329675320429105439439175182433513550734924328559202125734375028511578928609601049621001985628649356363417348261806712159854278554846670079134209071714790228457005603764960705825931661363665433622895130371940236110674681408857999932139719456482130968375447762227611198992205673730099997579401914915710293537406719011147405554435147449319157990799428298932125711172510159051978541834667109374138448496825137268029095070428708178869546018827793823980979794230821618826359478918032811196598866558939474392415311965549352072908435474441081519610682722327621114104429138836544861215215663839152550076505694754966508120118614808115378014875903697484420583461243072557238001911433291501592139526185316592979280016766145676345385980278507770390958448040641854425310881798697995278896400873187588289104810135655999137409047265436328409250250885907752238337177552140327136747747848992361163019769027455925823917617501303311432085158042609346801563902242244334100129259499131991235708392600594533228384046891275687020508792438076879094950448811714878307120792383489187452077392339038263627161860152731277410948422060263411619763731611517893961602400001560887514512432785627934639529461816619298707311368437000416670460073090374975124048868368198963454259978833734909203364762040432591708115301619668221961283100012871431574620576499084893486001291244369872882768890120774407955203596930570666813324649161735769509188402045494983193347228245820114097052804121638440024642916531798711045605701776860375221391262499932192016996966746968593547344647459543895982587494194716607927632725738699341033657543201801671126309753195769744422485075583197096719030220935632947170954554350087579666756856439807219785811352558992283249791400401239595808095749752374836693337958684365288039415237666057721382869172117395212344034270955439291548160770150817102165391190965812740701750931291171122372531631641019191844224899046946582398575285124361361551928724541358814158062390619050157406753943563661037805590318335409623726994284879221240166763205053970547123415031926327748899805673246335412766961201405522935080123521852418243444905909577306456542602263293759767952687469728813274279941770193869875658921321319565699064595249302864053265026296290605137713566521920943209647152804129688548699714419931190222300758542388958840161921567385494361502974360303808468511597739051774846480991172676451752953797934180114578530680402698954331135792481812000298869568582750619847098279352580865700711995691512824412886313978920279622837426387812422973387961718654854527543299647008153410849386065022290302500789957109431921168696057750996635590975369763265405238921341330262401277474186426513997460768703315554086255168403511837247271004478806744477286630391995364859490266278879891818777361783955331164703509412487276606759426814410534869912255251908247416249323688340420571826793051612204087426318049390679327637143895346922744719506340207387485459513999301402428037269789229500902675648210214888703951784362672545211402577728850488079707328637137880996933669732747412135470758101999902887600809573738540699628646742473168874878722521558649167190952600719603917061288889681974796111718764038103770353085454680919338056881439122599490331121058317276238363939063708618552677645123097522478205119196359546086688371257207826815487254301654345154870723277674435968729089535382941752263473839811527297475879641281650715226788981083967166495172608245119336224385212569649414551164553496576441183843568833816710222492947169791110642653775937871826651883323233446194907043430241207861638577747503497184658129784518444921035172884042784270986122223830892439865176179117673790306547857372273106248024613376064008551081408722033853357342336933528387734563280323238076175339712092286540959863528325364454099515454183154580855636133117846851607906120811797974781497778400898873272495757059016164755846687728044024845149977897746303768186773642030999830382347116798415017059662908849199487095862074833663182675793341698091352408796481807051640336490580644884144967068456278570899727006161299067744780832430329233274027131475918541803867768102948662664379537429640512346277432305906011147194561289418665020520161244537542255966131951305811097770668468170537652216860751551131033530112417188824053586335054661324545943917349083494715963318937100685308729585809564495754892855310159417637201257416094215173421058684392574752945887363177881752950273290012460852494287631547036811564356506090839295934478311090991110384410522866493657118099037004155133183071583958785573518469827549163622327103846041227816747055895559574977109842757349415717899366046304634734233650192869928104381957656068569545020996980252984852184313174364638135777222598839842587228498562056357038578293128970125903454797760401563042824103631734799964459173740641795477345149775270694217716597033773891816056406275306171607432624829034710669064357622530462191728768755170496852709583369157614564442871952920030420749022988257313387910387989149990327432655901022291881586935540063047725712460904475573815272760296912925723259525972626053800515429729715735840806058654425174836451148340842592575168057603290105644823956542286927497198938938407468844927918920136055204480148071076632938737722263037697282844866256411482873292333728831723677031273226259695909283864616630090019428045323139076014647164356626243496822510458453247186196098891322954240184391089292242947910397963806587281371878197306292079370334337698924630203326152341716157244409207699225455749165857043772358312824225673561397830563034877370371485122693308183255809951705290177091353203705317350706053750849457777786972830676172353507445023914563388074356905497983235793211003103040873349650343249330859636536184770007706210853242730442350716928958933358772263496375200710992277284122271324722100751568529406475824186418275602236821413541877323281459484073906072478095060341543071977345884396507341552488247744489006608803651625431330877588619474169586770562082287119787772064854460210841756849300041698187356433971265243900005370695904553418625633471686993374401669845240060843437153048233339956550015715615781242145595002908759887047389353009487402401931280200285318460446813106053274297715358223781379801499189779237384341045001749045651981258122473097271692069602119211683752642597216070697341615924446367465502132265570377515058603164074406796000269567218153385090183594154931674818001573885224146391574593328393879535999743127127562771298713964235054686443049678062608565069702418134846566686532177136011051683765897674232023628855825948359770812802725250032376699896273352587222690730681732399910953154407688866433469989430846662688350120526085571942643514607512715253181084300629346178104456466400998216632353091203504653089167146025502311094384968719990723177565949617345416970472248774791712476635930487994464139037350454144104102222844067956943823403410720623709416846353974141384737914908990060326076060193173646558487162089169462139500447653794312858427789075629221217092248924450863714265721953649222738414904796715219384337034526796529779476864003993930996427929584668988311826669933135254785905329683821376896091667153428380597118915763517850045575904599796191538027888486069554584704599955840153781209167625807598531065788666407454403142396823433862311755980428418906471040638894752279821892314548633706476374669412662379962515223952554417466310578502313544151940585797691365952348093477695931457283774521332063389871080430237587799716835327767170352572116695407371026283879409105933533609726793532122174463685136298485672210261349335646751120663424998678893001432432366008226629202414927208602274910157571226980999703117283679254600896099847302478662561580846026548319196498123735072475487992412426414736788976311459182223868419991406410018685519619947776728230618572395703024101614083083076421715878433416163996044696864801260969462836177884077690998321365282820032432215047127803296320095829492980894423316431683510479059751122444880483396570068687662637121930774900489278482693632969088760088102538326577736957302979828474317196232331969609406745400019592888178964441298485039574191843329423299652699997257045368035378895957196934824327452485370291108410853410346672869447473218431366568274004534895490637746551137265175149859438436046615564026772491539882287025511364139052295969746517370514466887725459506576595515698073139463599486743929721263271256164373073570033020021992510716835862268933178653959048300091368479603203702076904706190302551619059940581470713162421846401997656182817421617400074328409047232473448195227893402505926327044089972871427465742066730250884877264159553530388879702499307135603867283793516912981187119696171560057362119308239435962475349747810406283144903725680062195470335256796111784003062456263167036488197937836008823232536496981147098049127227616490433280557352778695095595592725292632970848465057743140753422673525170205098289081754811327170375967376624840396482023951810456285892958076845787399117118001790195605388495369915720082936899822301656439301073280578698748040009098927675453869590447179065347070166396187712678036019444667526844153790907714838191274418445702438574647611012230117588132159430486896561066397534593364026169570981544765873695038663199769767430747286421018127182159218639235078928116697009093298433158542314928758285476170866368910473006664089855816216008824583931965849995264434801398725286198252538420611625296233675143265671327345894465359190786982188510758104678721441124127250768591544719551169466682520339710147166575524796651747760038700929819269805239909127867491048283499336372817127729464967741366630874752031529259478552273916021055462901487649369664348273529333726870339039904529197310152698197014597804120668045475374515617680218556281016869613903797751886595261614295747553660442617775953367214534459937213609248761544412834896051687310593387011377489233314864523177718435491359018011654654959923615201300267847312103215730890489182871404446602303840729214509073884058471362953282465325088648231201625912678436218234616086490553363498590822518211501906293941022134899709311212825408141425320931135509596357451939739332262179482283853323448692987593758084479661381464881308971381693258438237069560750965365531071071912129337358341113247268851990562821260246719846467256501326328743545566477170510172595690968429130749896950175795729767110919029096522234319167500575904011633925390777309900213406943268161814695243870503717708799093672660842174979126962975232947421989638667157472195260099248110828594288685831208140230340725218420782339924888275759744914319349995946737414717242485020829541617945347048814402603662789541902965174763181073320357739905956252108755060001568175988098851340019496927799948930106509139494516889039567348599938583841764135749265681336916944497484388677756983368426681001194136980166280686674503305999887235172469715755885265588423950708048306046495152425105876018229409033726810177819302182838097274310529169713314573789784485631494643489825640512270918932556940714818771370174761274995459488287161551392746199857672964349785238768546667301646735329705938574050834407978702911847020332126305691792546687283615460292207288743776814651409681416546334814766699127178832719050448383510475284889915371908049711692717672244503395935516476723289969686704358399783381541083727906785782446285511294713675292798822994676122963202095420470484821797300540790695876631014152720890718729723890915029894921473941118340767626024968710362778259862083309186139615371744774185689597106310438334811990648595977007943124920638965573339742988163288757639684789580037182877794718858840947181768125079109428826252862151398867661584305325875750843864282979162783315374362728189847387334458285486771665992655181700502259137778851913505407587151962520266681662204430061160133459947624417316881356073260398806369796634335694284003665125698953244127866758768549905709710594682491314405344032064692124459742836874441835881938286163069633909073041121229987392411007740193747959889589156187355946817539236597642671324304185582271543532957713256059157405219935536190591438980522021489248134865072179584327336149754688275190232775217877439884053481922457602077892461645046816956663550509834382725339990793213541525289016286740064877855030868521484477737999787059850922627875542622159821457056627577527102044996469779246976081262974602913237664911705300546183059996698104051318707524127039644807995460090881058615185793200523899368751446995842305357232861448918706459307813800449260933117335626921523265824864846609456126852195345301594484963666293986046884946043443561244473874853352999303156732290047520625951099452918103296881098188696802094665640671551048475992277318765839325539805974256618576720573892995044928443411708965606388904612875695099359305462603502566745168249243929402780255075572031463584145641151537047370927965429023298031503711085275952354418827794822491492980537201665956643919091733797993207160821953880557218370133049998235079148723706113982214756059176114850822667791293095424117364589933063102066948816874839851381754094645613781056893345049351356965620636480892977697377562258933756615818489228740624119727289611960868785829252001247139985110076746979408543595480888383092113087442570975518721472767013544970266542440019883988207034442734692495007269943578346972167341752907706236387571862382912438473038252363891264483010357845259084671117250380447357462181796840035726052330386070764386400040199317556606173338563238998035770384130687457259073377230644481629531875456481871591987784352402697848203427478814185241297673853068976090583501863665179779204998061460627630268660003401054081757603725082188313597131445941234381280980093766039907297552324206667260996726790179561575342111771992518651895285134312195072549377981833197925991154692149056447893412145730299739173875204123611349628938561586315752385112081002812289706712799770185296876501172371742364625286052272664208088476133922600351028237371241506786561411103657321053774935421152442124013709980731295455217455955252321329800663610732682144872129319883417654046925182393284249383580041316639517214334142251038360158970478559720443565771595334202824573224518815171283388670197258995170725897095979105391120675832263954932672193876894838353870442246352263169357942947111433960650629782514594353452264504766904191353235553942333781007730977440121769596729001301365088182154044862930626925776128563530366990875953695182971674556749190155007536634961342603647636146066693740116997049770443503746811137567049485849397970338029915040110258119593126333958829161082828949913912755713031645887523704519944145530356416361498485584094134676793063669915824468947190259247932774831460472514049992763638691272806369455623009036044839661336508635116771263731194368108491471345084848425820705030345076769050347130696030531602216636180372000248545059924277952945936330411813783831024433839422424128407278828128653254477887374885897945739755348299711115999648967945603308947204298685219442097092740944801587845023897347438197291151621690166770349162819753827637814058008638949159715140670634656889578103510115338863003674064461480521061907419091986208312009848807879413354188671776346343108733413998824634739313463074546422139504708501712616365276421138621951712891943609001202498462634048731606356466551037688721525586650519328280320392211691513607615868400307958106311723358178834757637134233772551010603535351026931859886559820477626788123191694819578123667330674839180876225779300069229570835759344094796358372150581490417446683485177033953597917836077226211119292805917311606170526962513208409936944089598999842416654212600945834823898722001665719303841800111164680004662493435280979066348582478576658165534645562527739710308454347921727054084968441207675433137701617663447711601044987215974865260265887555516879052024693563090898861797110171762156061635814730485590388970228299396743341287342882550197588767700620643686769367471423504813682151602378492697047659684586815091145932836173824053084161641536069766331162806960797605825521810025720079603776581212461487497197706407075058778793904151378482536911416547310886098323772287224607558951035391889724452083371415734023876226772281226183723162264425850697355401177715799400809830132794393441047465862765917790357801576488782086826172058302962215400194323083316255690983687462510253461286463877142295866618110208958394854473291730287519820135035784330119618939954374872615083966974324910631170155213533688223320811704682432199864211592700497138465419326934864005824245178545215307820689147222886677990807313439676697732895835309434429026552636103327404478553547137332699923352961769682847432168073573129176951940917916698744711038193093651926612636015369428486806836217809202492420912148228096220278366907878211990399800283749644152638688561327367548339757744514738509422710198543815726582692904417382167640078295084780196275521719221075076371099367339667644020643091542176137231442081376532082712808692588348188556583165790501538584598738814363536744315451696874340613694796812935288794790760476961233320428569971677887826415927094273330211328563419580084089084694275180992075352850644785911764861443407096263385283402300745239842757916109937201466785934118549582740779605961020734576484308749664204007157910181220003601667915725748617431549457435635113976745467428298452394911101619120966439767364031746100274814400331089282678791030332176660165008598967067460849778056055725924590475333732824997736314438078875020128932677015560574551832824773867752959557607600515038567653270348809653850609556782304590934940497229770344029256717958147331384408191100594674194099062740543700125651150356723292288677545475239823663516666122664318430145299512225098941854464995315941179632094385466283558600392970753634788180819663088831165819774680661036231135659175804593309499798080240951401374853843775087369372013343831768429610516189525745012133240565585615824718412685130530794012897425511057920429483547269672236040080501185017771982837837244811489197098647413395404627115278391605567367999874823801673419396517584081597897597584079261918853624520098597393496258746727640367597449829350643392752638672184152502281441355042905978308671545764871722200103632989032820169951966697711809460860123086382530012850756071890939978103444242354803356596727116247272439040561308650452052973015932525280999006323661370654865081673552277071101542823342228470395786854720921340886163443937729236929191773569275195912305956823420217844445965909084836428196400976394568654767475595395368767919349370018924960432120161206441376356806357411278119651778625163876074371471744520787447247301885726002344081448942170550041429341042568804460317727144153182019480113012451998280229677510000410523161600752172716759349179192534237742176982589313102232057380708116997609534246687147321195055356588660873773824252502319464210255296311887496080532374861073543059332068115845016941316210040204618987666597727849807123636916283699115333636782808224630330926837951845219034283709620985985329957816324744559546209869065410220896681770622171639191995874160448809923668607868412193173242637142637781541171701878240588805760475121722452381347965323353235056043519162554032644922664152900870984742705487720067520803717969735367363681460921394042614385295652423881598242639317757685308131426543536391116998981226733428042901423781943784071237711774789684451975408638802789841629748505356897133724088995378840057336866572821187906330402076486478859959153116169805289138414587355308816285348643082619511834915433085552602486041335846561918040462503599839023668060232342029229764993455341112572620175161819033320905809606775166892476534666436279485293595694257733725225141022908280517427368463617345174469912778477662369440048275700362566224418987503503446336056229927482803406641960154618132721458507735421075424655570333895325323507182838436430797162961450291803135128947335150249026477388135049049743815457536744535977283128712779404960686889645978672843317573573506258513261389381408985462358849029260829647583573148722251048617423448005483136319857893989572365826380501445588649070835202536881935919143129413659317604067471553416040632164305401334118517295046231348275730713881498242744573857313821575283696660680410627129277435459697271753296629881912693917041938144784733250940071281142613477359633217492427953092530240717626219519286835456713755291549859613863527262834478064514081746620797461194565436232152395093103073388339902302098849944959828389122856327106104500091453968770491737080397364856210751032723963897463628897353615506572320010448288693572197758131532601277724733789026308923518021690049586498686516203108575548523167197678316397987611168872071554705273468095282448053782391050034877236598324280273369397333804917474862097378660399122415917903096951528594633871460177709202110819280679421371285925418331121318749627171498502379033307545949590262287542035280109226280433395356932157352964936178843806860955633579668561628149222991395176569545318666039706440512730849895870608282489452550835969899196813191904208438362310134897243845703818000466783019865709058170247363919832741867302289055266772249221316439642257701805194923232289163321790111776651135898421557767642355465782698886925223381217082778467916082284322202271700463026928680612951787133292831655037514301801670149986242511212928593508668397366202086850304153577946636311951232934230261896782159584180344770990787421048551952762968887812121099346340535963163815451913674202422961471563462700386743627235406404691720919573629900484414415182743470115680936076191538855678782646471942221943591744471968321681799861264348665748206234992855193236922077686658743314156513164653016400911703500542588948757206825597250391552881340935260391813833540990653434218584536770801015483739063817009557551227201835993217588071591616023385007059971861362155207671487500200047625588529374749224727319903698094093492311888830838220925987668551398232401469494006630190616695634896659146076312364136702818985460905014513561559225523247729845752752561755471896006552536876648610180137252941219695995474858661099157744530393999758233221793338936689497241972635558199680097899933542170041887146261318501059967238424040795394424677298674938605336817245258254405142084376020647290704066619453115866015977451760396300555812970261558967597562676023986131285944124002037278396788670472599922708052005952515713036094557797947029615676917847750879344949491940055230183472598554424509606168980467389114631827359466194141526609052525969255630333828012628220007778753717018565626609082894229881890789531600173095795325772360834350490476982593918757535477648092117451021340890301551320201355419722382237235473258613517690555404040435355864863484274202778239403712710751817657612467177653449483164701857202487051501565225048524665841519434259948823164010584209801323875222287275016859131090654235119739824779791608653875522786914783369285136059302173836084971376806683308874003460505042595233325008134709909095399020683377325357133059279039297980288364666865375096141682817899226687845553871637745060317259514281161336953086370802783840186822928140156967381354372419082633754551819603017715006916907705510423451049561855004403923677906354061473585669944257190525497058474358562983034669748691968476899912202583912146230342088206812997571521804142804735165063956959775321098021367632607576601037322195536329471265378397664378646603644647171482712647694587445177295148721186442875395475082402925242699827571712411627090871234078029187101274431917820025837615360037523553270204744571764309948038047442199480256187879531738794253228588189198888656249790744081125564258314720291480614155973815534419065982533451260842677082809211965179750647818141526085401276495965268026229793073007319680052061531151858978802545249063373346717484369335127667524196920588002763299292908690944328681351324071429312461807362820247489459027719432166950305138677993512991310381076689775599443585352591485281359873884304844100549319850358987874823397549421488417968057227456455946839789364656269897479435655448824895650817347871246402931277485054531042823552390510958063748763031220373870311237007221528679826038482081271190334537028324216630972392092161026394358412587126715902202484379106238636423708687250833293760432903170977312042115184244178645560448082621175469502817112430920860775763347362016665412989497524293167788700063882368132714987708600014099282145517217040011100558967163600009922559241380488854249512206554877787695781515265172873637493966487999817399141664967150313850972646805205327868456715052287037377858084095226437377348650842012661938967316620170919405302304745628023805456959309551294857272833777457895102245140059522718893882405574261071008068400332864665860755185062111234678145378102017438062129851505817603734435367109586274393012384347504841993650250275623909215859180115735032413662586411070070632496376588375971994042141604372803591602758759592984514941719622449037276614824446658312168959459885005874899956610929594909655855411616115064404179564600865310371981037679634358063403762433384730437996928416518937401183072781620046894087362048853548077602520875016345934802673645084116550061074555207411556275575123560569610292054219840636393212246680645858543091404401679373448854153386686348499023829113397585065394266358595976316938838529141607542676055128960536940408390566200475157151884669351686988465792404185063370688884773710304831634785379033883244044790114212506844793119881439758845495990663165593275934997346696956175993902896827176991144172419413566683557257419437688685022440939635541080788254878987875807633740438541397832958538001364489868160988852836459573696679979325126799663135637754427191951971736545471952407458652946636587601742042957079062480576522702706044196127826914057045793012642679376541025150057478091803807159926240157909220827929533653028606196734906858733391128978275614141983511898196997442369126791052285982411707824225405800511846607773659566365951748520551029583518597376487537431842182544774620270891264374636538581308652095854061838698226903216970111680026254408630818972771800449052205372307561255444390419164032710917610235224848142324962036153035556758253343757516258565796782968205614332963575342592073345480519012421633143118525667181718401135871243602738159738081914885877516676878201812038712774271810328571844452765661577791755313368503438409741540759459050854132204286786747545851888555165479795780229325740365961986897388634201755489540671269601481870923161326429873544203517990746076727488994388725403445645999983208990208714702137484950588115947776210649872850438514486483995665057142653693588637076228731617741234889718700596239680057927131803249498226975254554051174899392023106297872984523386052228489386490640737587658267495649605459730149346319714448104263824626566311509648497131486329741360059049386425712267750682931581074656002219680437781856467130861099752449992585251999510194975180009343685845332978860734105682197858804490711187250709537241216144697942939291534419146259526742871271007448329707430212076312956127432436144857847812740485194261973045710668000719183288398733161488415300721942841413902877865587007212834749171989997836511194171411586004317500685845342365754339596822605888941394267671523816193158697426258160572574844142990426474294364555459246655418088114830626649563075512181004038655643002897409383661511834607091971265997676184880927639985762191812636307436176799451485443961997182091979826332957509047884242640249676939030704261580879962510532698662338093843157720299001622498297465774131833188341109167065281360313194090784493128507361251637519142166613396490140302823360876368753316168892216477715346273132589364707858978795488279950276857610311949020720413883674551140160064688265254018323347833621935514343941681109136112727489889812016734550152286703734650640784459567158853572015619334231099977862505842624543122187305435907742161679482699603121771272582157546034362570192158621698039823873289063518741048075268830761568136441912611127094611867130044087409601538044318665149651352991500098639528561972475016168305636217353797957730799920489006064706460139961826009751738227414499738400293519587684781595349163136474746327188624989388126083705613878828233743565891800193926357019020148278702865876372784179134172033630416997783186316541329938982628605366391593178664097685952318718733055332801050941009640471965046384874253897506425943447359495954337681121169901224257491746400389774710427426533859674621234880999871923784067367421444676331512496540557597041691698154571649148078629616000241292674452246635194038154412037072095145902832880183670992194134244270813219360291750098155939264427500912352650467353563208294818980932571913267664379971879258357905935781423405607195692344057410250980390504599534061471744206523493159144759783701265432346869113431176528596524242628683817311810974762960245105977626640741184562714566436993794549867461103426917235455840587645389018465865246175987658023078751552447272649607897400831720418512271258696108497886247507026377148771338949761470498073407997964625555264696961524116945840457382165268460490615992587991600227026919445103722907619245448877872040694724854170570656025448795377061796242964996905469061937358789865081103322375199699341898614032145770201692420587811125750494743020425204535136570435691618420031957233783576984323464387995010224240601438878275952805346806292591126824440237855234196213202620659085626524922399521164716393096268877120813995210844233206788826883494846241507097986219840619768041643527548547923838097795830052123299592330343350454275750012400527145636565913475944755511350534040616142832056638057548974263828060316082058515530488250958905282801553954647353961937677384264435134367809520572134902841442849828915912783639740855504110773851885460913128494876346142257627456177611559271243033783557417632564023610809924962101899591593170597007398607878485833252268173328127999200167294674227434206998402901585633849564120386253428764326875538021977815368673099985102736571993918911367704723526209282093644807712052317086680117372758097803865280750827846602736804693682633895972240318469863950647755888523851225429611787108834677584105216647188987982138009399069711721020685929091454704477227521471464449059154186411513793565978500262489143381890993655586123712743697065735742064174284708087328552334251476750064016873568891314892118412472524984512802858715840417900845542281611110408399951203410265427461733946778688254317205524403740860859838096345336994003007276741961832750059634501657426271128439677641185754173463946040814704554138873601558903934495941853650010546933515924774231348447400413870377339143146563071155911743836811042190783648301727431483997390555353631051181207000381350883434096629866061915598359289469519623383529105241669270113544904840499323171013212794877386384803048210306253878994306768761662880791383579636663080325681640316257077496502402340106645656658417841873188221811665902078465726655840645649500423749347440886663451856073964208298235775780708055262339421825215961779552906241222478876590889229910441517176438670674145877177276748795311165468499930851577473229592436621105893384608122379079286634701639207386014864814276154022463263084976612602312945365257654975790782935643323338601314885244601487985239245099037740924003856620780451932470178585686942422469875416575214943732937944544515751662996505486182337823222189762181673833183628727994793218900602905752135835856506408169085064253858118551066056591615296565409951001988224919695172682988488650696366645745610755673587587960807951579251696144310210838985796639506345698796763289771360570389200417905487222065677090138650431852853641485108474616463889064185676855525801126379013567263674710625402817092038445784729563356904798238588232743068657885040273835522812598224765816040596020690411186023609341372115058124875600932437567228298376218890356417277188745061409853209097812292015137144525567215623242183715934018092278335883270804734126586299250628882457064256074563193205036434650166831299207146406904807586008861327295626703579619075024062748792596917102831078182893447316841926639736851302912928118606287588441959688472074615923993996275245919332976508110230958687746266528617521691454483863465509995556572933325072419437300015066686662170132082944211547863622686840855640782598685954746953151422693570662147494818833542350686935464962527238979263077812435929172351002229876693808379250927426854735564337742370972001603015665934884313002605801275027670961562222324712944950028075233972379602844442020340974207669510490226183746945092481250386385397119470296677580594127960055444988613732832428610255910714438694519094920895290470638626522571603473131385597251977613055444108269756302559962193542737704598038541648245565175454912408485274307470583218819067201549713558571052489106319495349937108112381775154675251476611066989259749226594311816953480516329205488027192350578434252804704967777256614784322994869617622001146731940352482543353522154986252700920385540279579094573245312668779813095762876364658781444927427428958384961416154069849691790409417713173495464451136319209307880796898378274001354861030612096188226559006947225823921203296973460840018606604494601053832306178692284284858717981572824664418811493102713285747755261434703930453708571431424838478436170783000895144299877819269716583059289532309337384438570866467109288556291740265708747578858551830081580313512450216779641512051456754780939002265209454656353476162935427111939315347318459750172620114667592968472112803600855355412997206950802135146245915578294220565918285565769492315961403939578184318243913724098770870742200248638666626265495088475517866724147429848225826061882782636573662433687432868133514895182493323237421904590327758684311384730785471309536573391611840292300136207068332883294824648602674238300179241307823267597052897344409190768029455276140967123896681078145553234182241759390977471289688850749134802809803388098632236251258719505720914770684263559741838563964219668464944803852885846493016833770942428060194141074669804013744340484349504626565847077640890310083279520508473403057577877496160982681642687478757884366206853432845413447394415614786081640343975996124840883036420130817221497308374363508137482272032151929258753381682336671399387198368052554734887426393656867186853053108203026888865083584466563945132789441726698195338160958158002730739727929610676038545177226160616083688617888289566901559407087553551427482571756697378795472496857882124069670416484745240873411618748561957468577694508115968320762316590026023883864388887963965038785236979235250222910203112152676517558150285778736967346970128620657890235291408357322810940194543519776042686688071001385166822686296524791967444045232557841871524394545730510710698035579659892091561253919865615955692034625404503729311649154202691259824148067663888467167338330982586941617053377127761989772680432169592430865653279469054141767615554156331353281382895535116784651113143045066594274507905932286842507789782736641463566081086119955174193398770372367685104550995194274402198201030221930079470634313400317141345547141797128298063169620313067225638581112877883671655956099830638351850885851824588144388487586064019936131417696004125021109117024416180763574512292664434571977191323249039853519217868911767070522825659920794434697328944788469944349422121943035250725906545436524587686258609534652216817060844956661267119570969375285124933158457301414310750610805952929926326859443517877105102002371040681034277807009550078411120968797382979322310950781911325231370564845530859228379887607567720408392674382093189901946758537798676281823459264823247124250907675401103158701814918616081645752396748575032798515804207586164315424734844751551008037847336153401590300607232504903930227087384547045636316730288856510322653406344895330521151895406786083091424982806677691755816804020053924705604695747094743951700913006333010894718943301031920435786081395318240148801173264462426553924804836498752136110576698399781572355730682290640016548950849113980432194384108729937465883528034256277055247062804117962670133538799745909390127256785394648319168270137155257218838678011024697975029766512835035758082032108758292844703332438236789270635160213190043671798190278149466186315982400011332328319747142444522309390413068903688319826012733945686264750518182964076408993037335993370299218402510231684310796491196217344172536077906171871835906016262960886656173583218544775692403558849850589439919892976098794055824393495997001731458921511780169074701268847513844272217942225540204724687454312547964652614854536021367059250323491225252072301954023281851718805288461250789137133479177700609131365974376703463116819548737982308061210957046317910053580144727168766206263948353307361417138836407149741413987720167762357486078608868137175673940467709738915775076541485997879737256655249034561049651080039071375946253544699131748142123501265407884922871483529569004789259074329145453645185470704110415701717232593929973078011024669081678977109924377180131200453337148907960544273406197848977320244735676955005313744886005663064149583524098776920169693095723887256685374563782500070944636576378240960286034913807237219502657598544436332717433920473919807797250060125217654262310624955524464949568115750430180702523189799147780002947373116352849657134293288711946790443187175795910529987476064131719116687879651009918866844971709393632087058482773307337688722073166661544374060575308354855365160368636577552586383356233596287045998982770615948395149608084887656593631768359838339559493304987651776966983609878351782310638524762144696445090064139572866936567684962211715704211441191350009929690757522367338258201243336848240829423364242620814466722706917862949704643489065532298812413607877187327940281571462395184736964125628143772843282448107147977361955482036262632465350590493539821085930948762457137112162204381419300660887301693054717822059677035373651722926312014734213666788177519953987106523356496419735960684741038522519479669752155799307134799879504569201252843476489978629364236492360967210958151938686061701005115723682566333129266651195508652298171183944181283019125065046051390188738533754042894903235167262393051419474827265292794599590964595071321308573136772238506528192169233528996347114219742207876736815104802077454584327909035397564442603782472365958210907206097006958819507157295681159541186828559905284359996444044377639056366958473801709673322066620645673902554589974990857904660975585712204821296717697113843192728556687742843775139439257327944787850029414744831016990928713559674647580015670011168535637424972176397602410520189623683760317310305185276577363443190337760624633624373579936075626154316896970931168665690877531418588135721197338035028943392707560026805808305786181910258306391731056991953840034414590586234652160435060007182277018250983081604558712267583158194492445999572833680813139926509156030213599129239175942714446826469426139396031205174889573751609702482242949987953870092794046863277601380913617855814226281202636414827246678329479748898023965046003797851294616233429048028621712261043769327165361590093177003852529576101876176270561003892088148633004072691646732781674503658911332647750815791347515728054979713563618705465446703475673285070358400768614969159929076069557875527587085580347659531136214700037065305101518980400743281159738466086783082235077098784277009887864585127929022411271691726025699702859288550311754384876590137530139243430877000055189392877232366600430466356273145719320640312972877804352524116659405689863732091131000726905847894174831965035889068050560034603374528213084264821262114702923778235664600059112822659187271857523902906115291686509851911237982824827424318844637295190821705322173597181436930310295293002112648689348894961103421674956951013792680577439412029568608394926529854651758421909945426437622686580150489188815977477204208593540027075833746490157250375650006367187456385242540939326550241170108718023374172474108577461494497216281828645166854397127375660692499417047434523954411714455062811356753783417956684966535532614207594691577158213232113265580908108708864075992105591102822898494460393241378370847755184143313060589390431710541060022309746836882235491181491242337382142144936080880210782170263079334512768198183943535899825977270044168801451564328106474599771027662496070839603902393420337744766864559913593719493321806298448850837614328697837553436261080347269056629366118319026104809510638696343582237681001138139680929949824030916885135435009381673966052936715542279654548025779730473043894352824964208260165506790058359089239125075552250968126819107148209906765913862143489577537896929054214136528058620533501423663182162735403138883873647448535712714589918625168923924692444362410160453313287747173262626482087882304255045157814782412890693431848435605837191782465118239965630185568097767575622293192817974226042733657884074149148566279713924842760354172381255370987362959425911924926805817610230656524969225433975825710253183242283437901029331115537179670848166128936552117581753350730499602197687245199054756647665069996552168584849510208479626323042765134578932221717379367686383561259750022103540044096563204507126320793462828396415948777870478195298309589536550032640241314156948776009579481488551186009431788772996069220694409801560444770005168359171487822897223173075316187256974021591274668365518894158278963348566279131017652590292755894194780779010561313141314425134852112170950836568272420288159993999794324464061630544066321014863078431741210815452584495671325660487595991719889963059534998623936577444058688317329083926776515487002228784039649914463071762033346244160191620179744293151389411010783132360993688458127141420364359091982479903598022091641655529097545283548976000210493890869440941341771883195758436864209887900700542741613103423603818277306884790588860935950381411348573827815208917770945865704433710143980823027860843582527345242963568029225563464326694938095813892922415622333510391446053615263416318404226729342599983544889627913313372330217258048345808520273442169506051274257582674302882032232304716959429924116640582368675160103072498835600922060886948834998601193687564937961223037072541832937455869322073537120483076351292404391102582701263916718112938407850805677258258464848296211900741306899306817831854615053503553372520135421188127226225551969160332772362317187409739416947327537421313237035107078318025274188657307925432714150162918626014063958170891234579620820167679520991203386254278552773413348140082564376022629564601073266869883026751298850382452415220226517642832711011791319408319989972701758048039470671350811618623971502753385156777797413144662901204670011046849117196200242044656471071960562965230381719299056922505846077119067735689865488161347638465378116101180456164930743580482785295461527048846476965212077942341438086105315064671663553744690944180182978501317593809294258553969693239828989923004337861848492540861906301351952323254688686805452511901974345766185883357474799494190006913276473352508913074628713231287030499609152905089591300135859924582866698601769682338377090739536488653370882024246210459102160949936730751872081720842693892016136987562820456669726763677659945123800783820335169394743550336093250173539655787872005982706106848480274231223298407349278914060726021844579294164574192316607870711205910130117975780501018295717828465461807363579963112606253828387930235607275218604056218929482459092326500462733115677781509211261595141868434959757800975354035018828213256596272783456622365857325579548263173462764166158377747700201832200105591206692272435836311321795519289353034767506323359021496385904551621875924434283658880589302945486974703339215739086359430239527651522814757463218455217210986227027354813347459852327745323711863639201117958832248983367053757535472710996342093254900849722490877682952190103513875668114661348549648985036264377452386508400338239360641822570095703586666058654834505327530985758001681582338855308424288651893639736459426149271443364299713294709128115335264146889474846718380718771334439421156514593339610946094974269672455690370445788063948806962721898036695298233134149592922123823682124926696868734476237992917309573949043022926384023117222521994555391019995413070259134428256085076454467603887771006560750059306703322410523579629646271989199421233320032574316145525698005970902523908558505731135322085315611978496387095449300497332238989653627477010527725622325946945006552903617911490251944599749088528872009004172037537845060485051989987290893539163152954408631376805998092773973930648818617545205079281573737790881324678943553507738022987378645945016326408865092871994660577006355316559079802574557772974967000258404601041148817916718363689214353679031784176330256066513034396520491580659578287714652432219179602421471299674245272460004671528555822780262352111706807517464830246175732234434608100837572502230527219873046523733633249699610102080891563733322965903479531326130573053079055081318704133256406887359143692535783942340317073899847147430660747299608142067931551880525978357307035381334948161720178270439253914671886898202087679151567684438426180534629809499102424362868950056866311877598357226617300372678426492742721774787701610320341363263168048723251498085718721254817700538563065804402102513942552916939758041530947428724925966263695977276300261882911511669083280851158058160529310100539917569410687095729002116688350102120899940966711380382848827888856006884025550702377648286106605966699778837526215790880621544523061721114028067395558423869354719510207033072203253714630217040313689255174971095214713206295528201439308827382393867751903368094056089388609260357256992144557854757420427554807825995222052372642708702728934110913052238598587872212777646068984327795798512103255060100937231895066219135490012487843542575694227899332669592274843074274082273400168286125185483669399305768453903931271507586474777131676313594144210695437282733370560799488469758012892775758487277817382084064452510187438480894733002470704470472349028886706287918254316046981813636024574016451318963473842111803021039804225177392859750633564669530854485431265335231764043621458582804425421299427074931108220669523523468726418350189084337611859298351748862995217966792057234231750171556260563532790977993062715158754265459808410063809172692783127237393428066537793427628246301870323775212315161253790787407301508680374973897276178375217017674882584638562742482821128069228689593440246249806601728481798065337790270305994609838229027060693269529362501558874894617884526957867546318974431472035763110460741012114645605722171228755366922605791483876326984563692428079966891384119532066172514623234260876872664317912204501515288796141985888170424183936295279540225864785345298293045656799897947794347037147554985637851675928158058828104585243761108148880035762982358193900600939633107570225860431154555732798295846402857553797520690533124677478357290448179461288253213595906032402137747318405485980878305959247023984188448722314126959373432527477771295201111829770392817221172096957509680518585635689549434973077918176846188669917394883061634109091846989557167344331649502182282323760864095744000727006325585336066731062043887999988041959200249417227030138509919777780076812568580054179347618227613828792714295792383884590175948833972831991058418730509044934587581790708947783626012680709165408588488531728116625361742144783643361359371893870525994680605934106638031495512895686622756512614743667283864797598785819574692728440556689464830851241401774223847044392807840785971791530988063541590412996254318079025082503083241016476895992270334608961809988966732264583374606199624996661504874356673242101417119412077582696780542590275903906371416837327323094545420538560757919056808893692656261511643214456451373389265202172728424403851890997192537461935447036067159650763836671658492618334838912983735549070166945188933645334333005127367053176145017990696729694941134079663140912906783800860011279048788714517587901290595207478388556655707609224097609165125639460079385653145478107826685080721641900502456576177029507538339127609424760864043538376310771285460039885022762517732142077238830585906433667174288170644323858798992765540750295063684441342532790647879796257178607510598650375393639987860984114489035936579249786140958704798041168275881113157751810850893777966552438403947024315281774689822129810619275398897805654892999128135574565177091563908587395105714902057641901718633573075174253798794452837957899514698481304081922283289670729202479192814889098858399020269990941606587943199865039122788266711364949445675816938123754585309468917915836052673406962539103339717630720908992423432945353741996027532735518428097067961425713758970521701935758046875075574077000028980628744507933453401103190988741800682904413780642056867234059657519208522765398933609244837159889873624253190711213773531691934712707852550550211116418724285563225226125282387903613999202291676673555909032905352817000494120244711125584818233482528761278998628342268212825614024379415029809724364241386999001779712015434128070528334312204532825746407091483361282063391175997743413101869432593184242963516277989123107066204955612849967080893450002235038547946429956655460886325883004682744768521968920409063871803086232442201558219329206739533618811220155723869762136389543296423715245077468174622120735253991746614989765512607702620664702256159157611605678108174804534621850353321232885735678304097716510005956724072480558913038508158066338724559366554457135065301779662649838857174637742665359337913967560690367259641183342139892257665460056490080419742694028395775056193214061952577797296599380553048360117548280213279092905614795919334522212591290603170618422594248920153930628318895528206432048495674664226973178617187886867560824439309994728595853410003276263045487717451502844496399572772104192227267653871528326025308623691719382096973944248970965224579263014262886548052536037900991287925362390117355455731884409997025889836296169085047516682902024696731758745150399358854120057561197948722929218632490020277099151729073401242327262740066223554036990927628275256237199926678622265244912668922122853716612368574186497549501252382774140179908575745395599487211153068667915432371972283007706021352303260711727679062429810640432576809467110615711820666101888892734269975354698856018240453117862161573589254857608868299897345422274912094626229937865331315535622638430705631261034091036568700774934057466097945431200694687381604542546727352470076470454913977828772214556028737268428958408215823917061380468831034172716026636442822959078519791140899926742845600216659257147226223112987511140597431144725440839967392876121058107542764620560046944100642297823992089038636060372034305525013436138357120621545650905240837323386318383534318662347523615679462515995651455384170519931740612106024444511750221902621424785675858887023760130010289334539114749362420795109369502568342051840458339077537129550287422904598367598032414857569210290726875333648203455450766689959563835032012582663342954831814296514488990491280488578602155938673526603891901512831530940356367741017379735277474715969847934807334245731055044868921300396859733386918346885919155902190123852543091559139854011914785057199445751948070007530002514482682724592468190985417301073226259287683489756974663412742424245320507487937753027084382419387206977455068954930224274335589173186352805328858084776573518376463043737529015554579474540659014236373658229768447493103027469401360027978233616259284625707822713481075835320999893318517974867397292326989951424547123810042594458414520848191665570416721981491738769978855033806274121018011304304633824070260330786115334492165859866139331990680840601011369778079651325498319787011581900661866861153198491044029796451086751710269097817535535203773607587016272980147512849168290876751043781514295390613170067641135930034673341494073036363958054324498939684379301932797333521123152832796747349168008137565877851696740373015254525321578592985039194753705091287925130154605515618839533562324725221937735043914912222441061157734815558228164897311848513409793600309194268146554995689950160519531281523306509911406346406904578667227927123129204048276140904760189484863193895523540518459764278254942588701191995621366490381667357611552299435688478418557061664753645600492660662471984135405324812798487875982054382830930447278586655897055905070258686764181770798529334320619729461752175956226532971216134213965028568215627311965488649885482707112387348588908326553811762386846661210025175919110702482187443212892819385525256540158846734881323956301657243032043290779185929690748228456892474992953738144979330865281194934370111666334080820876399519054397263443837223157293731066805356483019220745740980601482689482619303493689072166236737253355321122310921810408326578821907707972054897329069684670188541962600548426336347471933890514116044213496907753330770186785097278286230923871299192106688850286389607397608165183378510081225004826252870125183050795626758995516516016819634984789517290416089540799611957996802926827540780602007493425888101335705203074730153627927521798489187338207889754781520145465413414367173589091032463314044188497506670387325015853148043750659220874336752066605864838222584608447658711906264359121505287241679407249630151323547021354039559317524418964390341778974336072036217097344107450412641366338102459272348093249047386199984041083496363296939434895237016914863894176169296748968800580640465289310310009048912102193808223178687581185108744715594980279353400932676019979711765466426708771587627182050777040629453276549804170111631979669277307820094506612462903107596957719788793649136995874728026807647739304778480744779006631745798043977840836910180905321236317173911435592143587750585242986545193818301630004260789222145992444135167438434332343788841476556245168005612739475607879024671398716161438058226424221101605814503973978696822838591471015081721485042467374073360298355554987520274912518462390247172360426893852850214389431922070582707262614658984501589238703951019284665422135209692819479841612640292860507994169721943039850586963833715342785294257971088253069666376506896710579802562441141043344275323486197628016589275249897993454901826116492217777722575996288939951312280519435248164544224129692916566185027920976415392460023690039126536624410806941107519153989408438977466731832083185710049964874947843954153424298010878199814229038391665396252340273902433789700782424160835833869118725515682193453719835975465833360738655437642347074405285265954250620219507632571846937526712333591881448770041537422522089695398475195750088003831130899927277500273149987229397169228288271583377416082342462506723575756092277066428274921360092850036628968592762034240900206400321810957559029752569927375404305682329654287977037335885935231695599365601828860413440381331293031685894388112946433278551729180822087844838508942105636602328109706571368133651689435561853448863428652466542477291379630433882364103481497407963854781603291259571338994152822117495936010028235662244900630568511901615081818079004421997111892976042719508426783104267971864946950098589546054231316878131389531860455710368045466908790933835243379217782565334874139143463167937105819787856491807590180686640905452314264768837146880538298855805672935346923956607660740432209572742676704555276597699697728088138219154616962074386663339194719967687437516963940385698301676576882630012805712490816575724762782533419665755680841285588827744173536974575472056934340871380453980326966653344843181521712960642269012597368499183439244724174655039345517443522458003344331461701892968137851066560761406869781628688996314876523506444434617740832821691721446432532543197798825382636704576185930541125914046851846822215329141228263862577579429939669665892984034430592992504085584632727589693789267966540762672053467682836625208345178003736644450648563282960831668032804967359111899506329349551381777229412950554661765590192347943457893189334249963865808522742541987917993900415379313880386965855987926937887566101143876504730530517819772424153877007545801268663242585958708982807105586431217906523752956881744917645959931735029858073976511977524790676104445113791020504556177497776132942020789182140197849148794346629096875933507422125963335297493085821254924918965802784855262174720578685544025354310667609172129843241049407996728601282452661127785013888104359158257051761910067960315157319021269606236532067040935875051842144013905154175994896328492696928417215399791984612323021652178661345641664181718600812810779060174437484375459573774744653924107086070514178227380899994694244465709330656835655367415432587175906985950407508755319808086316026157448489152746373428073939725240071038256013486097186799890085221683979802265814299820181362477864074250662459782669763964210318966022146293354616148648428093481963440836168608733311857379767365102117683380847914347201922483769286457070206172759463080022662111728875593969410901109845895390482557508802583138265687004502239350924127893193538984632161971192328055320286530816396167921002866552144264305569002547364528205421400789052772355218098386181974527534603084985148582186894113632193378071016851739121520632405401757390499474842784266749353850486965042907441166023957607209773928077707834495803390845110870881474050782377599456937763222423996748803780455097525417106961792443516235073307448463525318740210666578704054948203960270656284743210253454489658356966190117800197066311901896761324760242510710851821122827307303428046690035108254376810668263006430858079866656862880264448484967205086177605289158348144093117220788548569203642607195095722324143327223289802633283677865072693067533233375746674123739404844244610594497371391396170747646485481036968875268836420704467045998206902015865732826483165192820432971059961328913651520659965596948856883511695828643706000995067038518104720123889429398562449679266384249193776861007790083459169659425497565353455053378835806769112016662708461118792802086841798558535679415188792597251575473873866318803999290571498646964366888430395221968538441243919842242004599052179682725358081967717555450515560484844359843654250343044126686791645763190227367009258059126317997708531108509939373952193542226506249956241533055349968302573957474507444493606918021874294864260767265237824345087307820397429922914860163909413382535024640136064027440015417497434358965101071452499790141769710839986141569918818195690591349153741788890502676952339809944065744006080575970438293382068828215500695769633963964098491221778209404422505018521164289853488849247509482139987367058271156882052548543525084502379699295991093563342902891939902822478145414883964266172662800919882853360160879236582812562999001983929564805980954347637429367267957948415191935787542241901013039448824722111517522738729132657802404079646636527424101882196690168858042205062328138626078455556168088968839912311463443912787380552720768656359926389568646832179784587269383559455743086207529118719251167019377080281715944152647440827161143818107080060370261937037835928882287304223004290329344443716787522235277485231343968884403776393590796134145283441000781906583130566060802236302635591190571578043283637245510977173699440356340537243606988241576638843189512319761741255699243133169111517541124356312064982762649534228781847754592059023613589588018207914759205022635304161690117715600741471780184574552941231415054099198695182902529260343598180151615203595817081040322261318611717959548468294765006204951867408349948971453728500264187421764244117564762812010689970308486657767971671757504818649674742745469316869805256794057623732704268028044881342792203446768186240736412916299709481166983827477767564953629567838342101887255028977731065557431057755968428666946643464666396102654871358832570105514202399141835332009238619750017283207098503362419295947639250935301574450585191424663531056776095731937398185294498722362474917928010761110208527101318917413127211530914813488240662929199843418983505683163122318464197031088888297166302552528902915162971607875016444739192126116363750036841934071808539018431808693374321312180660513199453786574616459730951146007750579188405871961282501353509439919694594210641875459522985409214527716319883020795537783315730621212766604315940173374176253765257916875391651789714203393491993933821352785620876986454440961563228785026055853620246886571225972870501426085476540577661182378248343913271806479905213578382264895188109956091207781704297395511084332274805524084199718228436363859044976125009009374022512904546153311337953447705156627593233556905356815251518968028992716228405691664276816564115972556981750987718469737646988823056145496787787032363974229945237533239617378999950522828235665784265583870980971554947891371284471382544162632353018140179719379949137888155235333765375872974731267264586241093178933006170982560695591178010191899866490514578456912651589292691909847615628097659814474045903844451577642065314212877542957768566468388179433093326316862090361266348688014416288549696792696749957940207790530126948476984130222378289653062202047034839159855760747647446817052030432055633064334953480091894517189578054348954373783711219120500401819509528271016026117235973971743745029430471467786574936390870505393253437643257830768897418718814135348199094080676601885734154480114062650481302852571111739843997465942972146470570483799383660636005765374564992242878485416077014398510857782244133168729232003916316237826707862117994598811948520396000629000754978892930367888553478437465944179773455992602732693245229150115780670126380607831622912914604790071556732802702829838729391301189205107088923871454799463031391535709820451534400534878103061410955922893333092320742789457046482108793832154718705789264461974604016306347458292365565734305359381763538780155914514240135769993045498298036545989904408823228425528414458298608135149492302426161204170147736616546683719312082879464590910986724694910965212178815339945762711314035887479789292047009236182193739955631918118136809788439189800881437075241636869729164929018013613582436148513938686336679702768731128981654575519009553033677455724317055737390715598224723212518819229228213891164911898708738072398452304273543909711990812652822763503985784368508584303773692973416132924746528092481075532241102913092069263567593402981212645614035968823368782741376482472378828671669321278092496885494067593027847050829281432546851544089710718332746127173599382244854337433249685733810568210810247433180342002917238533798329474907601263399703403791118978581120682494785529160363828280794339613281957892703244234029650547356563066937851793294034008655835268436627415001785076305589123510980937353550451881960020938685070408202299291047840754992547218413289062952633995044972629466534216287028070048788435477788434474965572843536401524331245779774121204436912779814683599427618194784338329756948050487800755554632923311244286260753152136890819061192545927736880507220251902187693879461810715866227674225667084460087021836276422174966724688253317685068629077985007616373056112273338532113140886714900891899992035320575416023213413559786865630705849278497630413844244338699989626534888390297965937536163300894448893266955906862214974863925297958432530877100556260361341704650857023242713489207221757768012685025216672012547370256390307166740937399090984581352703676593337905683727922698488745663950183913663046191180191172221460529621433830937222223928911265465500031677464273726937712316979533898892444537681201384312645522979817313937938363990697957065883983390555921607202173688657612613981054987630106649255681997831607503746651902829163012787672924706136061954370997371551689446230910317787386369254017607975713948255959073432837659965805003802513621589735510053815980816944429564081689047725086587234611135052184884372184769924793586483930827300881717743234071013596635287219972020261419208823843551878937076781604264642788543666906094821017123191593645135312619162439060534564535266584188087738278873322272370836702542515994483033685185599276611951779633083244384461438613019935837592813046764378091111336213423406386180945920960230785209029280775670384369044685631840199706203368231303029001681332303710296659174491942162516257414817504746866543072946454988158040273925839976453338971623797863409544371828648414274989070425603871817309950262340982968773497422478837573247086926460225068426355638845528933962251997127177580712497713415023384252029337673054445206605416281191402326743424203484650681866101808495757904703217543092959891232066979538925055629434520719666421953715682580569320517485930675185753191047857815601187377893874751937600389862885822179466225994262241140276675094026101883346801880038801065518883241031200467106764273531383236175378525229264980061530816980146983811626215957311071418855653564092178911166124692106460067593752074534286992830044111809655050708720774544247276388341469463119653407520107847125291444775075634734969411635548481972273468371332603713668880447663485692603043742078781884421469344565009055981511607694112739011011544092967314168324168510303425775878178928015935620209779696296635990997407228602904227480071225060037913006857105580325596451539174918112538245459298110972049445549598068132635153236188699597912564265318496754764410050769076757326230687874775188530351035135973978793855840197340981656347049764513012221563943926270955772513376230994844260562873007050228648298025092082062025243132188986229597491734688701705906801489907411770294279879734203974724628194104822339577915325606314385065641327102439361575188540729013761864873065072619208045525796512724310191760072929759923290583268515552144820932312171284174007533188930135422588473579824113288773709986264735099747646100552331456655448390209480280055345777744992472339518729574268807181347801592590688655320023257824165762268289052928726867008224454280181423099120166545486706919244350963671761546085386698984801979514107863923181215697882624800111435321477785238900317712321598720999061094867902459913759242527922184699963764354152377795591335354297770854372118995384084223265849582526822635598975744321417306130077472826620006627598509291451649755724563668160439271771774680782792228971415132946720330560058768443548622824279015248530854255836448900223715253838044339399381994897715663440727753160949763465398521297433984219197367869379971314028134967355672329564231898959072203728187789823097840375802902520846257579464645521212896067580196331875981538701562817840222363790757462184898828860282633277748916452617798625402598233956813031782477020251671118370287905531321673065791141688177054696809113699257723621286826238786879958756563127426801968887268496389173564017596231490882647785022620002109041892453050840346675246088038346734080003132660179889963635992893004277012333434373752145102122034095269887911711973392189160540333361323531004186174364507910041231128942491444805858820347047907263094671137478840964231567815122758159797590752322152080537478181784487736807119497941312719256099905762101643513683688825982108645914406631641131424506023244817469122173114496184803933059385087672814736531358070813284514964226013060664762951767983482888986853934775922482818979376236040926044333019652573338093471486026052068600524843615033525263819523827452022774915697612842387745732143506097357601522656091423691177090151491526997006466508958885591770723741778058560501823220902911347806871856756930865280640455099079862899632430185989552856277092445412584688365072675521025768963451554460587518327905619840087237761323830633223518446567244793118507799558844020131558806869929134549699512046683206509252295360984076394140375059767880725467764064860155281305441582696759122773948354239226039863847703922271662705276862200700547757491029092734088033944496531032161477784897873993655951495800469433140785810894339739525714160734033410395478026710767663557211939905029478196630399804594143925957440330333246213251778154227956428263217930020201293800519713399337935455575354483039187354449058690012742051595179986730200652119832790458254780548040479073047983141564412346368355162682388891449330175073184211189638791117415769164692648477138574970663218567003006538588878279574231036882215358589246134602725639434392548604775949625331855803869013402240441670247382472838117820951280979892746669204445107074527843064340603441848607720637815030077012023367075198852811246794879560824813676377627402756822432703572326586534857671861977793427522218402800851287975896817575382866681360331186145784082018458544413736522927979846526527719498649009389726160172964657994550440644616485774742342097371907529967194531831804060301084064892749126336860625738400531846658473614839712024196389449408459824677689720366552512257328187679486315064535441833514211460167608933409405752753461697930919330594983860583370072380691589023854960355536926606972725302804471137853528150602894601555334811529687234109552679727138216194774465268321918666900167841475176351628814197755114777277569167170655661469223696919719558929526878064957362408671710151952417748688251464496756123406352516308305557385244880489903232270481813484461736233922686085785581782739318496008641840899570036759740974989016996204740791981811125427823179409969372848760741606874530350560201715959364875619142799837038062581976924765717180514356237353953948085631833676935816666324698876718508344764028238918102705622389448920756891641075912591012414316115385455844576698391085611490822873219205770909954129480557628464286775430820378423096847667369891248194006700693793769908180400383592041858348057294888523623461335951061348640161958746020993492952935577332086120662898663880658870280585230459203114041533113347390421493138335788492599157310226076747951947009778506455704188010825514737949826988975217107736673023660097876093803068516276487337538122621715622538894126290910931457803917266347152026012447656054625308963952007698235910935170332843735196061361584810651902100937529661843795333336719793052947618886081309398570479502589643616993842274933338371992673218405922363542834260167912008245758799522839002123747958710126600029872233188688665042699320863070714346744841868828995023602166855274704199082540807650138997700678180122728572491088423012550059097679352662451125958856562806010233340585561717900126112448934326683380887391134127923073441383439630206782611659063290685819144712434423647174271004206560876030285456315429408341051474292147723278208308780495657628941909345087409238657698723905302600640084036107151951141506513395007076564322598799652785025009225066553665482294464950134497882014244631882550309826286573692128959097161106786973410719303696140966878554869864626012754407916332016625034464600483069960767743228833133703702675344497850789440388610745728347233435953913369848215349179285619135116872951987666217693062808042885496285280630635056064998331002529696301919070913821300791241908592215961758657904807759719504619035431156544637638057871912711239302501966366411855382954309044685932529117002526007740140292593013059399763589381019177632132213835521127041991999707864805850902307461337464680393134759554286805275380011324290592658657511295546833015500162901648759727323340418237003485586054781905780028424842293444400360496888099408661094725818559853365343691043766109207097303585539402605478476394833463476766896392403249957654313447082349353919829550544630282410060163624208543820490384824964500007590323921480526009574940231034191918319891287987987530798684548085324105860384330798444377120107073949986363767687571671687861493413534208905126765223018779889842746838550432752692915428829117864444464457263961701196260612094034615616227991091914671216081022617046662225262764540918020111056196877871944336155023509502332165662859435789187746157680906607352475687314962343005582570396271899172160566042897727613850995029528066325898538025304281430402363614970858934607332109644468667782321378338730964045018795604091632469282120728762876593370060708852716945377511357229354358801269280524295475478531333405794573006361328276793101187293085843095666343579933036924749285787759467678194964100062162111173584022348136500999768109938274731230541083722262895189145123571652574031445053077407582887348055648591070788605579290479066059935045057002305356635638916751250549640702591506078538401371390369971693951866114837581716716336508803723829104863690454692250865270719060993253532449027285144075726379523774601767824977399506925413555692920583432333260211080972990405012035275950510294634650413112312334346169267405452710533573348178768689262772975288184602396234256740141380502638130492704052121142162660249540103743763669875293552287672316072529366595791753417473031090036980376888282002251446866685163401543403773607362309554906774059202707624749167098897973617496979204472912041549470677919030670919676241312214128921009524002672492151427027761508432008689967741555799118967295300862546083447320601488260355620817329782328781124654340340228422843876316387572034421906136445967413526026775148368182528381895361281327892591650256238869677439330073474498312499174940855749742849989425440389701414633241777453893871693952475450885668865648267693816572553042250984724042960549463466654107053964320740923302957095511482755898003532977893546636994539539599267539704296974603837277658833182375720880800255892048259265614515618477767541662427308219034038596314208005007502346257505282576572566830045411739595086745217248282346480802265358161644199615683366152398709538647910114840690448528347247528516052419768032853028879027745558089588698754501842550765910046485594781189640509442484135251552843859258398231155264733869757271329977691631517705930534265326733583044140770566033752742525110956428986232665975947749043149188743474117108523637267284844650018530502494825341128395028879878077091438159780247842315282310981111260443015880118484900911060389451734568770081990337025201716401532937526842855883285175094140878230270977563216250919718609891556810723905527021904325062583381994367952509429316259535698301106511462883504151819259508011799944274911828395953326202445968757799649698621478674827032757293362839580971796591321705828746942019414434056142856326487666817319589450462474194980782133606487473829653445030839978134131688438114159787916716362576874507646892775092179236244573681218065423682147922758579933695638591313680438257148700370755182696436590673161324003743984390994547052972141514323724905569761303270917003023706142793419885905662510576927387918517473883287183019063124346231217109475316888051886252159375736363843223453099283130073016224928641875195931948436995363779748531276509617899966646943408208555404031073279302511381256911152293717293485833265173535883166873810779925088163618382743788020292350441930762486597828557567081947499763357810956206279062675327494363894936394359421729016022682679771005135835660211218772613255756211101769121626291183663618948051068139345880487224976858753017186220039162052651681689645665094718233616823677505761406944538455108386717156803219349022747033023600108039029965751227508520217474324446892363181001904005011788802801247457068892809960052437525427615997371644805587274816642942643152976680202176614294940520151174929804216648254455234141922150298308602671027146007169167058477627938215826230187402773449596935298217600052530715730178737421220028533769949353415937609740207941331336696696905809429877668394097543091570181996075046609549198192570669935053398865349951084649825403769822630187875284477811747281298917704022826724094875307922490078432601397611164656845121503315257253636864975001016082718458942038712273368615037525767638951704781170039512461209789102565592930576019689792841075932166746683863876553820265836975107065444328028775256414571948423492189097487530543210351168773936451480604413656233292997930968393617722341908188466331556689074079635207417054609468723979589781046984638818574863766947845419522988450667719885101858246773397228902828162681533010957518167167409160837356327045998012961621185012168425270773493383033795898837047265724082307376719573243232729832880062312586498209854582858338313761491839868142942855730422452369625943368488304470636648245560213108413470215500562961509453088948338302340799258867028553562807389592234869937293346016841717689425791622909959733235795647716972553120176006746271784455531190296568702123186266338901090090453006066732403429484008560322067205655307289963604793701904007738391365419811129285502850403540462330873010349834455954475680569935545422985771739641405807400566053787809808644315244378101472842980331577656507990954419109899075047891722071165700525308027815718503352862722630145961826949860800439181236487882884226227092471228908053383733117410707085334855247236888706172899678244209324989356869320566883706168399417154232586935014149886349453018515471962110919915507434432821034955308194308211335713788942729384011836429494077608749680391376887155067931678792481246977205999372564305177439073929302532039652991531395202683327450044456481524401502574461636721445069178463846460512891914279602851882456205010621472400357230147778336298947636488978297557745678572648392302453287672339427936700480139228218383326179993131307555372307670452019832942100889307871642344261510501415445669404126987381951902954962129219802304680753358500592474841796214555904848050771580812174963512845045022605002004265568720084409303947944796280024714564552701575159421908439380786835617936990423615201384923341495598386252384539021164939687737156968087017911723493964214177957251242069499908901872577347791361750738470405848527122497799650123713730209515866107513713635803974271774924105143436726179653907660466859868340447592715330798207474337339621236704863399322810038511598530110999778247305591978460704093978917456572378336504676949347435271431329761986772674819142410981515910178474812596469620846554054240314927598732520541535652106103134981852702278346798155247115573677598623445492883282254277424755884819778682774309376257641563318082596022996333244064534057008225518300772662897019133632480099579627846767238149869477500707608886396870761692509743121528795776262367215107753276494843308872034140087035112794679677679731406617160442553472027737576203826058823773412175834751627923537119687875322788219439528248350607804756609973603921901106460719949677890914911256163108322332300031408112422044982559428009820468940890706402667386489553149103034960283672189867726607796803108860995448374970768288043018015120798929144897123541307305266861664802857721148883887110777335155303591379848404290279745364052043904671064920644111268472733354804655766160027156049969574951863451686204514629719872797778329547982221886768542657040621689170501466003964692862155476047764278126585629957507659406992784249518701909863987998621999487796815682529704572862429795171374880927873482424058965529593214013094972792920729771327086838096316693208679828503686167232645952033591839115330504164171192501927323602590885576840051717118013407331243322223916956292258094332582752604484690750417174975489993122454455513039152187322819371425063021988153403231963870957284740549382806881496827559388729346650260479045488138236504261930749982232082379436112582992568599436166994877350572484042346745603723130828214226279873293748286628402767701724553308833273050964968440635890854010692067330014657542127198312877001921847205595242686309045674539692617686407041777241820778923899141329987781374584458255233496269961577042534841099910377928208631349885022042275651151111961885686329877284010358681834291194915159011174269247816992324566572826756398566305671197213735885455769571078554155934227014678176838352173947152586065664175892882744694834540458803723181394481435512339747900691176264195250714226862292061455034744246928004995450578479936767561075555306346254975812756299981653431030506319358374041954164514373694424323157477829681469942505188560637604530727647567747439713612886743327853120895337938918355780804550578843441887266368308078018279450183854111286503114397405721596949792190998544795852163484877725110197944573783700751779873710835637237589968397974389879944283975011791651160874398059013820932764864001033202295081252347950813879086911349889094139542966396722100839071851157295318990543495147250610724032108274210732541488071787503740421314222811151167320798697877577414903628100521819618719461353629283310509183380690647575137669897219185646766893486457552811645101164590855867452561018025955606587318990270810768790335497992348907945846119153943948620296740534602625216042711344934087470305610910452469172855169795838848108611517932153293326333028530756721765943607701613217919251833659578538040576416676879610086453005762272456628045921363945501214104905705870293202050997164674540694935857475161145342590698073902067054213104021095010109146164805697307172701065349106562163684654597386405419480837470978131291657209845529562790123046715037645033932861366049344102214340908653466866266429867021406530024704326193574549265246292330324871707985028494161247485135117170696805206784317311649669115314242719031233649824235848417653545097133358996279543883202225798389244863905748485678241806856344216327742476022080786879189825401172757210533687818687131582684338520856758005753497541506600050399104031178712855936716257272569572358524704804629761101215345016924018302092454725905194959979196018513074234298965169779505322004365096572794690561409866402267451422909770407925769646761509785610189908050634434568991676000319749335985615038152491070537362774343598809423847786040932557556107242257371948059928627051310286198920159105874342475102275965286366965743299504902120079292378138576810038799056846042494811899398302380950817114841971031140368629946648423242993119719434936779538537526454297477205785192046066472015695771459448082551686849205822062610067976097341255165069190655821308375132822975939587233542685533963766555727765023458394701831892661559604961654859677858946843058466854123570719527270949075152006302093879269643724027388967803114674855045523534661108388137754325764155672515999979895582527294790845009671156189719959081423126889525739606627406241745312195695086128145790812335484078114496314227009429930851761089850027571106151963471933261117509793346338031639565864856486172210942820815460216529927774208161019375307797582858925843833146959436316612594663446211762899187418200448818639643963061138961565560323656853696669911981532390878262993740093858765730073408167166235984193647572668118390783167587902893008397060634000830021001859582513027644310746112850420885890284378575767237273935540657537847982831574224726840497420463760896774507597690148819093593810604057509256456302840731659675061716487399026619771906445403108947692509623833757139112728544213588560421208007029140170202236158118619765469003910696569009007184760891010697401676145382857721560571672160040285417469865366103893567095413280589830558432667513600179920748189293520054631892347288906741818852846336121855275623121634158742797039706837223101957494569840987698266918417035005965153498814820498392518267771222107703080791531373568485322206589972724920372083029536762554327512155041970829762738642916317021722991040181005951910168681081496171294218890077546359001869349004007457177431686059731345681670955294389075822793630355939970366943360617266062301017135843453620540269836813196854948255972593475197051469791600580233462424095867395880385078721830565874664276154495236242279840698528949964943117911508089122685050147457006473564139474076972800001815520655672109402365502703609684762105791712224423339418646644609717652903096075085045061403950032135247625198519806623148573581238400178165630577114707527483977081784712136702617474947164827773633583747910365921985547135823577433121588896312709321797587128720662694393094471059241392919996561929823388361407561943803885565158790175727991762000674141798836473578529051129934926550123437010241178836467903303237880735234936941321656741110194041265665933151991641245982208801543002955705540958673651731617974636951064582457662897847549292789364148063076733870597552465680886939074101676522253482267539220001233072453807615938989136878188925149017273758214513580325772868928572869268926009132901464092458549830559548475580476508276562771998039873883436782837492114809455770554844818350305687892058573086547261547444762542895385836917136406191038868876844933867684296227053514740224671757975455367360553259641542655527620579840310339409575862913114242869897222591577710689352604919653312868103520848616329449322076665549716047376245909254976105393894973184345432733676003656543489813533807120667357385520559047498989511664262306338532005768866010245929556833447327224174144461840660020064935375556987526239243885394643794718984385210622543776844667552872485943549344809711914761375759444335036685056569725464598188578874292560410247420617502732301337190286216543509629423326040851253326664437126653965196687928205606897169021895110453308027573876006594041351374044856067258117207755587637775105020458029940318037527795638146851360127058726166437223607635734910027645626759579981675476634045031713951057358915339318777478593334307502202955695632226323330245668781041741070446541965458839181539808360230586545114298670338461292885028763624634337469358906163219349293630306174177745661888883452698033284255414942196891224640604194587497940585913915912428507177612967423468367829503004922404597467599915596740385179584811116069059891583347178761565943343300546359549612834554389271281304038833129671794762518815094151723954643907453515495143496382758397257551348638873202414023849780197602064531654166807673163411305389936550221440739145573094824387316249508442115263896725562017170150930049834174396816270669809749797231564264557722958281450427758487145889322427000915868959122022618185512228228409314639268767091095474315764779332589407451182358617341742716853716352757134840896532837191047440385999712825438977693450034979866801572429315136199146197455070434712646071751235586466351717725010810624390597958457224920793418266864200763993233016599629865804200680770901778723213943721827003129400823194365245487056987448277624221481254686024432683269248721936256171624330654667949505463084700565705874545622351319600934354996050120710932329559740165816378982497496733331232891689199267367026638625046046965596443181116282604993041390777404563730962231159723268465855858042527394603142564605009513408827293484951579663996785386491442496706167451975208683458968218815170144631312075602451616420907970313869679582380065613085311601963322302530893851442462868166490755975959081711818669209451703735159185506679215633978076300150114138116388761735477924650754761341437421193640521171030685673352411426879382549748941730373651506106166862044895221186631645642026413336967609801754173106183493813586122791256533371172766295674682612553465632652551399982331784194248440360785975314339654067063813733709127996304264650889111291323309674122026397270575009243602505885462860182622077983741079455396415898810751572799005424717913402086455778897934804667977312357378172360659992890496156411144181358963200437648656157525666680208427779269066493400106172987120120308568290014070160529443658963203177448247350698797028822817175551491575220859762799300525505695542390043560327965802139569421052420841574898966429351450906166281889470597341692371396996895601965345593261616903125961723278728470669283038349563291725769707325206018118092981906602455592530725625274584031760676219236715704304655431244570375819113270692897130075324776012273519246487808115731078847685248797267036448197599496307120937364746802238431210607863723888367856582527421045339682104458954631363599016462094561419375879303856317369666425155332525476229489839579637682889104947549917601453111147790566135115012080944313054236803855937302753880874156634688065144196947484647211816643442032278062069650228616763736770618002183084710217658282337572361617645398935244893905938150085301220355284337259672352728240741491921707632363316717403632575115601648405353126048847828811531058547673158043608290155037740166501309473217884038858726153276070116176010236550036794492973277187645121061985363225780440262722415455707360172782050025954864228112927783479321822764409594189097820736686082935529155019581418233767731220456602998659260895145816544152660200744071219670061765343534285716008213116129899245539944934230408928946197306545337123282672558318702242790380188637974526509449811921766787797382485817963341525431932812845956838191340300344446194954900841677257508388057549506972845452417891153442512322669468833819304989213941768238845906582210969038279553953759817508722901359241090867351949485924229142543508518989081466149114276277340197546082532375312348096570734992817514994319435688788571147105596652719187692061556428145359162337213522264447582563457010079572451675692839129450828623573036834386135780272022670643210785389113668218379285058739324969192919479310696484984555010949007527911565711431120708861449670031625428167789419844736770018366780436212819170070966178020628534122321701754062267737509695564574983695059270658992759437371569044810086993602220875617691562953802048891359062135500698865488536062646487666309033323236272288348879460386577322656938072698182100188100097592709979557415913992636516908306786040366883684505181545001737050808966001861628162077598198014355710065618706122492613793393133326526685133352167290880636550454265577697090669909667648150769460927129049819568679418985093762378037075567108218226609156234527095031298097010083746598263664510175085762444981435014141539014354834611388851310389260359829609355391555474873732829645177992530874566889513292034319851984068532969541693480409140938487005525666922352501872724494910466647833110128457782726015888119760757284260242654443825705617573947550794633876169091394073211565959446118885145915755154903121588482510241547059580562235691642196223663239557214849287432860664758815009322540977003915577541875960970794396136124020414510807678728557765612225516440923113349069021889291993967544153073005483403399083399493023308832532031357848291896548628869542299894717225505009322838513032730602861048346015783248268816213686693999128586099801805137347091277847724672553504016624863777206517899425786517200946771090084883046414710473425003224347340533642965978128137311722393191099623979329347152358225148962359773919339648689428587627095130313479305328647539321831953720490770362355611517839784878319638001046286816566071221676003998069808533120088965481290506987408328373598141422380789960119974543194550526496141547776497850682828245746714400116707333703354550989496906662543867006724670910855509033606666940238246265222346524413959245615164906996560093924242538406580152329583881854770217917535479785754699226841195141826572873139719267674427731478002355722056025799109833185548166810972702255315621872849571403602748475341487567198412823545950305248103359039089547755989708030488381081634742151456781840760962438165336664020676749910576869885641018912343022234340503233408164938165331999770981780177755722328622871103425503242338476320104347341268315529006704173273934008443051652704971615637907054486807905201963172689346126835412974171671884126419285738945006199525183451552221186137621829608118190525534551929169693723305483035156934914797488433934959713037392736815881923934026171269227989388219579365189902655758132369036509786120266001460935407160032602290184531571002239342940455043446049957147000730569738658491058822726061243830600614128383660322265065546133398262674072529916508690548009267172614085773839100900714546398364348600036475241762703049005257668597906925868756654946152200575626060566585207586522469313159311826893693736112774851352159027359841454100671470275900514111844731039200231463411197576479556528587664309794229630052421706410088066850076910502472533165480769061677786333817866406468126014054192973425943046870043493098637880348277565203372739969030455541918462522289933909028586898354662209497542990511407763314642621263345177298287779848013973972183509631801306831460538183470176134232459911808150641213865835190959518722533558312263002598337264915326828557135479937648509465326674702460000883461910170224760462779371100226571682028483031645148444773461971626675816760028745276112964428229560829261988719485741433397848396259054254826405798843009372249872480862339804980724255747050127662691622059715845992062262312265691717973565657744409507614220344522267642054363841721088944432214582949039408809976309713628163276287716622877175091306284344303365225634407059121483796440562611479014370096411931955504392079689915449356406789292061083695080572964535945935067441106953156348438818345789850364128119427869409781252713928544803111933074992117161930213807016842627705705595391682459373721993092587247248722608159708116437083071796631865627681348498056523527419194374256805762748157314912462038607682835797039842079496748827296525044138618297169189423308767268817876325827454975201878076250640618197659416941664962559215795934482395064360322790411883337021147140631154173391783334183984737422175147709454526447739768943587997085457782710850297043143452582410878243338071147240788827017556482265944580345232059140600398793098487232103536549830539002153073404172322243684810912743242249402758063111394259339999088388680077394070894763600161600121338762024149377777253768230592315654738927504744052995707160788045020694453378138276572360313657695764882836728635857048071790098868475291468284756744763978562400541796260173429988693655364678457102654248719082584440694051266342750084980166300327793676128216786595317609681354839076569060815898549270455929260653324300314969193625181719575168705779381955986758585106483327894632629655274047790430636714364757704155653117051340659466605325051854276731473331960433266363490841419482656938647731218968925129882100179096010242490539374484884178247829346605193631414593507970360575864717076597194459585551690718659081193196973961293930368451377035132233905828531505930101545553148895413554913482443117426011209962914208855171693495905416504409667342238260835355973104264616910598058535129064016693552356655115606252485797698841134008625724319566258453753963401542456497741847415005054290257169364931914733690857977171144197549185863171814523360060720786285986956481370391029752808495534346200899795464535460348463611998290349214503325187329931308070856936898884745471947067656879648336922555107191147278606485152211437756275492437462138123175912296266911394217588495436979295514886992569323803294398979053880535799824046398888873706921068333177647112563325452621835103425362957388728094353413439410383715783460358861814625914010702161459483895384312079753382734122823044348067255094132860289603970768600843586789768863270585710150327412131961573539662337671281238958082626892766222778901232354973914260216725076300433389052543995425228138463755823920991234749950284895936706303557916611005948730104783435924856459686058319147537400310673687639204402072290071315217728544349720649661237766153609925194934783733480708651943055611841093016726461268464021467170744751080733145004850813056823722144081655732585901016863658198240167202558678745225689116213049853849804748271046657237501059711304005509365404046511160172463951051012382755881685349469899384920650476950811617323919528438368848858273394370134079720420872669032611071757138899620291127113492128234164524339060788102202985573458341970414623806972664611487733101831768597421885934638110795779391787134083335928388044674402941079472036878471290085293391840462044168385128933636519381017186090888897309547293103279425068537443551607354165218547803111333299229095538180670117492275919950252833076070082569259335820635892120531370583886562874585203563180183649142806071345909310980552772760388134107749457037347088186878806893431656540918367928050034542908076349235575281829325378108830855356025836477717735737775374577432804047807717973029741455175531223329289395165089661251329035907341484244394702784299515727685476029513635802021622739929987951092769513191949575019702969477773054196605387459732664611666660880470667153179127943219068596671048059116217680804198860524610903929801515880686914871029820515137061806561672334849886502118591126418962975998446072820424948116468144497315912600854388378138974151822599906047758483008666960966869694777911445612936430699539701775001763661608785862559069612826444592957424046065075021766311220148443909025229409196254992614931313103032489482037159476768865145951153330407753805329639752630571141098948039089600524815234592742240410383066369554192102019711103865254657059382888736232082049484294324485791317379492019120476661512306363517860160627346152013175813618083914573415765678630120155398587165239469209457155984394485323306603235629428535440917252310338114247588462892349192766813315456522554800346773935089819599417568721930639082006838779558878879625134882601257510840471300975002389197846806843158559258716110698279531232836803981411106396946591159306869049594657648542470974330195979664001455463779162695602967624840766959559922034943888382674069449607256205432704510506398787732796718027472555600692962993581513010413509524979156141951470053249123391011342344736409223672003208794706867375610651166724331847389598112406861768558316287858482901386997720956392764239249979539798343833769758236583191891838950364799280804595189232525842885207204032520826837202357184822125581432973017786214152387957944915421111379111916474166301551260234562553194346537089887094913884992377875256861754294565536826866206018614148384357518428233880624903249907963971981689889151866746888055474627064194710739516731051623609506592201622347572635948790512680420306386853831921254224267896764162489704223745792962614552287233618834100373169355840373687025299346135184451028999866577605162190055938081449646025237866576906894504523444239059684275684712801820178360495076756618926028833660253925469626009954808710204600089511608686801499844723553609229566152700146778444641490004490848651157337438002091702796277629869314901379334170722495885826401503481089049676686448149783351637672989130353196501178107077541215199059266890092438184676853922265503799137501727844175910180808854251882674149018354020827423883929208098600574185234539701134911123749374349648616833411035540569094364402050953173924942880638439447637286682227172713531520156405157728561766657850471176136775243258348015319907333328665310914560053489727803231970375697705083586821423725927316986561460804768124467564442153474717635990128851038881147386357369090226138471647265370074231085041525783354001794017640630238589714947130907250678298282724694284440489141317008485372110194880898627699336985222678170938860312605051852437631038840270617027220555455979289309577804662520034199216260850516338946628999879452709055394072174026453153294159237548038292069695266079889314196069091027639445123614408310382304878618603657232818073180532854487113002730723056590974163167035329102924454593180479840800560443534703516384019706299756520001208955420261820846082145703063571517830782659175383559750729923033047802160955271908303435579844003094646955839752115893125863215693339521228844594462607942204224758846419443345054655997649931507145342712772318152794926573150050754820932581195045401271553617027527494949361199405955149982484563235799874192474946098972986253461490131158619520344388595700230581846316983380933580721041333047136419173674358929936408626498272910314771033333203003904575860217724907286833425884607435808089278725956687229818693448757232439060263610927977801801128682280694263003715979846980882021083749403130413457530940514308921660454743651226500975552933509225348165839758819924164253974433144983776907549425077831541053021250254114652374272152957286480051941653856409439015434497549971058663919020513427203227791611260926940250282590683400199221640780287766717888994118343914962584447577425690125260404177484747004717991750304426798789566277200777258440650005347996942875038479974546587488635180021496882568582708601985196471017328708134315021254402039363391505190760137168331626266530937433602093661576978274085125275134624384690019792110148278515224586582252889923875136333599636818017913055458926267686034371789021414385469255852049816959438969063128854947832319897979637021764294430568869680676183930731171430283651740876537563496615272294963748839606211271698303708284222896911142749710296908444584776925210888045478949636044949393814549303595603158237916902985483210852131554042723847625747562755172153328876512541605378814302178630328283123319624914974136465461492768730251145397914516462364162396690691982710907122386487833180248575175332307514131610789069421638016473393824349970732431231314246218528271824120273723951644370910527010452886136861876277498658601037617181016093132001740005535084470689809491655533823373687496137633588015890635995268054194869901057230653576565813537876235347402187929513205904345514385408791332947539719604870990478978069382224559542066348843814126468600031028356004107373443949454500542785580634275119974011297664558255238262514183623402367417983846457949941876402701276122273951167789811037992840405679201999191113413290406698395847215441029875062029857458095066625566758116988026855246321915438662236541084232580491611642132361662133779046054316715618309473295706781099281936564250335369892576089656111094865609948165258384345538701150082505346024869494983496457982186798933848475764020243720636368027269747957252741932016423486015444584813765152376131906771430520529878911335915594993826309890143159593562070652576264420432574133977510830248269509514059658391156786005538033490630641442563177708683520637376792942304636227025378688884918472475123498042968198259267135913587502009519517304253790190428282714115693548612701303542099282209139062915542776067363695893977446456360769889345332996476750149506201295982224975508152059658607511460981513169107194653834268778170057989759606653279992884851122407614145995340113071162463098254571657639218530939366730890374438633733008898208776489609932917539733397783584160174625182416037206748122492736193103755342636800658213917013795541926088977394376331774645279370182575898107898273261551274978801718825676454729883318955259339662688263840083664181381071280882695101886685362225089097805817439686702508297057802247809322879001256430588843251275795518028083063969013214118723121723331027385014421417440304901508645908171054155755906470320938134201093612723367735947298904702783525966058920563145507355800205259611917293228616701918201694732338183530077955683811187021587555530567033708316357092573428412657755696119472589700849919025597661243458645890504782517902197911230387338203742206246688059107783624737822739970194281795130708688671264788185759658234601385430846606279397393584364140473459915858653049270763438087412774349315245058707663947658579993480512281512849046084565730695122017783256374684058631561778283119540186088281632615672802220771945434513167848311266610389772621466914937146154129597483413532250090745058309329258582142678332040197751725412788313210156552239763534937684722945578127816300214541969555554262868082289937682843340899570529782628690878128659749904150661633792008742064010515819849286869811549577899312047404010517490431632779154635524040336276414391310504278963537196093076740943439691579179249896175208274817986232669793631172145848670716887800599008364179137186500547875877116034719920554861069259105339381767135295486012537429318933965957808042155878416738010486129206218355098485992321614035058363084434384703898191200667679341522092113537250692869793760306572903523531398838823202708032125111477114951015158547874936418475508865837800039839290927110043695241485164010320806557085229534082416420613195286702316765266016918785881910559879338561042870597596309316014712554811888828712637988243369246600478497599767560565309312738966766267043281345854148548559000176986147181502350646612080499580263430765884526075437750479774466748164303034999876377119611890172444981725403481156052581990652387145731677937644430776268254681661176033933256265393228721575361007680506390482752136947313592668070106074507265921780622458585148526056127984445766576435150276898292783424745824482133307630542280181019791745721768114792412699621656193305883274053094037331052377408425839429386559297300635533860444320453982851597621115230036118322057455155879788080645768446618975560815472416195088825960606711439782954015825159276755509242788128141869040917416972612929077870234226090691416955741168828385760445282475883740820734322901832721289620499811948510473076440145190660140094921740466275846622411458765021810058465178546405443696730065988796931168617442750921096353913721450262056799602921299304274459827979748899162133293511877216309981040126396941530608740076820257216150043684203131914702722970990431127789147550246734629384201624807781578018432057430544794867540459082288320793984370085574691651061705968801296880205295382564346227817614239622758307554943259632747979709513082921691924697966876108371146452366095186632830637955543713370145162653468962664753823985812463270610306236834397392172631615124356783134879301383062671260664527046133921967513184209950008075514964069592079938107225165249900492547121052491329638609801078275668323010703781679312267169252875246876043061843283860534546152792297613553299090485774727961493136108303563584262751948252505838170019880357905513467103107957328103829979038478305816760692172646876387116622750200079822877653036697955175002551376087981183894219528162263301086136787374602957262824513058658119118309238285027684645555184605046320648565504971658300639741362487956428385519436439495302290069304266379133913493284998754732344592806366338508257588908340059452681019208752719129412712078705955289236244735678219448832721178430556554125683789709616666994537305222927182700293679776822337156521688249412172619737225408990422771138903523956403026695218445896171869855900789150250142735018911799887032539863290442634556945063924807667771536070061536144024561479712460761541886506136442064004334132302465051303342606115635949415977641270125696193227919757448190491871616433980528705884786918872460539362989489921451749154500816934442024894224619959688472519253293984267981115742130470127460814001312813529380737448157726292621388906701292235914578038987173159072729350378957103482470931263701833974532001168149094191715003026163984702827535497737176346264312810375199734954877298925631802614890058759903032481562248002461059603134338739351042275963675871474149212384992406538576773355111124362759098157353609031765881276356388209358120238056296576458157629816431559005909047697617221654914898709483930318029600665237662812338835186273871439653292874389404015728649751748803133919382067416166697334895216329249346027986166866500247470804342332336606716637183529960914340575870666240340048461251107409551914238365201279880070363882065600053215221229246698767328667678087941180750578984681354239567343772192061447345421581990547430471726772308210352357306744469541899457297252607403229122633980136611080995648465016035316576774019441508235071355475576600075115041892530456967346111737510239319437152783116835265603745203408225810226556059673386118954477756524355332545493732695812367340589539257111453990509125764480155784649466952535220827779074070114152873746140424724077049482100732491195790821392405671000037376507377991847488291346971337378278118533465767437156015643576295521534905182623361335142796252750738974976082374437498361989305133864515107442546165259539599592354354609132385960458301548857576775701575437143397988588498507079637299832744706893350302959768906844693693605848205252981835079311043708137412880501353004317126465980912397869164610048120204084724983706850032465971973805936548760730741322347441161981544531094578862458968129978388576308983427679906020843594735335156577819855096342037733149778690286365073834386555148208118128479971926514337321052354880298881565532913344503144880453268269916428966440385329621813831663859293493519584578393913486486153299997482901817574754813049803769716749141351134766472918689172061140178471515664697846181161801143855449305651773230290299611048956076736116798347338924182816773587065594226472617999261383042797612874007471433827811247702755966662683219443734748126349844127124388478446421593179235615917207889072581293109424090185530185153577299616200573165795523736560930395856416684578931798934096051049498254915984759252055305443713581490307741939684756319757623688720212735898785115006694397747194496451648800122367500794575573772705991322356160803697000830369051510925919809914194948244019326983562793569939171628525369542638538945580661384804901248159951593111339635861315497991932914103663381778934799246735534661319353932355364529802053909001523307638259326067005499538437773235060742993020458420768178152071006483220286785084091083741370828014207269484613106552098904393386447349183632613617015549933602467179445888844402857638363015593473605938831946482613266460637268018697620426364192897453247291084440522036354477402199607177379459432200296924808941239156608039165088485676551797993501642307260909116715502938007194859499500506783803779793942120017734122752890290229246892824330570651072971451085481145086486509897163157941943091307700423743358247049362493144597320510315040729593532333650022206811815338715866576153788282140947503295086132519333501596279610523081754307056392231557551937071525037758832816462992813494837270492294880767807381856706796019584267697637722786292262265517791895932906685270314811923467436349456383317503049650245027073308567020213190647516678096737278162227365351631912387065253307042950945104829681061374989403152983738099535708911169025609300321218678087900969168639957179353548199904406773829804324164541142266699746095475906580362654055229722990827154352946383735076265629709743970603142011311631684542278895217259885970993788194102758891472646312877574676614522890984456054195652714077990053601602374823955147781155565886933688800969185263042795937155391564797674278191620804004834133211398191551080927569347966948651299255183875101731368975865007736588576230544102119348195731903109818650402088808603113177826240126297582935839185855431675340811134095169924956833741522321492009494530467639103212251828934555849340365171696743979032955470690544295471083499330064992511092438977434581853454510610655833776385484101185829851082882641808949566793237096188209421146371753251932025076321286744936724255517143783835371184286177071857021685915966405123495314715131923090348987430050679435949621387528886029361511561036310645496888125950624635664866044365819923709152459911770699440114028010507999806985470403435542383021931373502940639662802995684192112480166384106031222473987993317153649603270785285858777988450067140230123579283371550166018898302815838887913109233048432851853457090946679831187155106257948453840083391568816709207820287118812953082142350245720341666433664601705560490900569073827280925118807721014517294752247811305201801739170451931610680163220398324209698841727126595077359725390538260015238278875306415519750758931780098998983296986153433674167450305055158477800363974248339591007329466133659205326939273456164497122149846518743247696115492791584631114056223913568239907436170120336150121207156989380471235035648467362680805823394207091555609875537730963377910933354357844471610900050745412789907467531535438542626950215214918029958170326430113133215124450399316153678847519154117086762296412344843728025578275200365524323361359832195805080954998610230627337141327876197221683893773822692977169193612283348733103958788555048209062135500946879548900847119777004628402668328074385015937915753869648805259935562186643790163845285337766221046232916557872521261327781141961855862339300209907818039444496728143719313210144122659140939155214574527116125010101545189313366556250658264875634221477038812829544435930884365900209165108778208144621551842710343667404503569594636436249576099190191266073908777388986403698925680470566694634000961359659076623986530529654774946182710865228742821475095098007496390264864248877871366430430700835034951490681143028257996769795945202598286364660278419527273688628642925193526426750235040378937084746841819328467919417518862088575406031575280833916965301902081458812936401104158177768250130692523119630089783331884016991060400677895164950543342377817484616252445439522188283274529116408689361118978104893060436532998770021202774664819202948969821615776666390387590594981180454853960997040205537017107042148097130914376550259107774789696907540788659160637833814680659473308994699566974228731362344592886346430861477904656549598892646401420368087688099073372881054473465087687839422735599463302732225272963367259389409318502162825201076151764071113942161691150021984845904473037019099608676406291590617875055765707443169021942700301830266936034511786333119951194683400488061927033960406772816894384170001701748043750438097579550301609067455338951504118475895445817955432086502108838044480594154627259910628043748010478804592513241051775694492304849531190537962946187795231406927942743366025514791640547091711132826190407679866757402333372577067213203435864270725569118744431569142418150862180835733918747615742544569475064401092204540996082617774452527554672672388937292857585802961107792607334225622952353178943909798040242842109070737295752899904958846155115786463249594545894929725935655069017651370422526159476902966208322827356910706389250827592351737830642518076404472015260062659599702689972112188843628983260045765992696833085564353335876586104828278217941339828574570130624279879644738756936698012244026188232774113777239570975081684850683080692777047063600358761213358034093156694231605042868797271903342950336512438625486600081571738860573253665731058673192774404853502006884362123817188158418549684240544679386232546117132978537250676350810373194296070925688810601190687482178464131553396164270909334145443354391531900124335746728260161551107180097462276792053212413376178633028919711961528003061110652460579132993190356280362588290438879452845524236736429391701889136353461985352797586674060328046196829743008050648494850032904188134857594626596061931164694881256723995559466438528078167974999271792571366217149805644161290786998296719219703834077818923947172166738199927507472952602404146440648910432365135473360196454995153706386835957192018117325568649543534508304801728401646138606451376547656301952945265291474747713580980599018162151566125678150736743982328742116619249052497262677151420629974888124119374170111584679569148732181163941713556276198141351771903720922259770208839166101723052581845230560944273459315931336024619151018643116097837991080657415100788008640858693395325358249591724730284840137450545060363596489354603746482943418357690659304029061379195319022428158468486206093274908086384198488623202678776238672389559466812967942011811814240671734712926078657179962104518326337871687551658155148457900427965707449588253472613062877232730014278162577849607141441555553453480980778292619140430926082378505309274947648131677114630573187194061684295042843533083101629150797416177509722942800812038289396616230147198360558306068592257848114695902054511111797766190611833401326345689552476774106212115799375700378439283078877147952056245378380984399878670617838033993696915578880745852571726929924431262734736992833434219890244760434358526600230960026684709507309576769711921595109917061127605846973547540786864548040349590952015508774796210557788629668473139514619031695403030638001040852433613865193717464513262036059538250060925497991977658420891731515096269572303816061363269313363563871146421343094886725170256029647338936284636552512803204800858186925443068875617532615794873543063674669163631234938344959519454227620695841497945621178612033399872765926798384980735034680656650712304167677957641214215614859634334395237813790917801829257166065796231579097715298004718005204441401155614036252377972712350684314390022437827228528432378566499690967772607178101909972013766962536770477710833961375586086397083553415536771436393212756904672601253658616308442813005220966574565127231378193649151315680481502875920906995312261481854133479609269381499977502924880371242415359200530621684210323860460120184319921272379960828721916659890700461492141329390401032174469765281816386541080606708971562037401492896315298048893397656479013877009580531245521219087381016395011314672636425055461684808877514868646653493299659615052823201995490514988988225916491850773999643727067314697351045131144140167385456652876609691418406442816513299165602520232336003364419099474995866748196065148435289121802110698309184413439224536635937517023977789498806578009686480663198089220527308813884711941312216105954645391279710380485578745245810068165084049783173537086646077806661331627083959335928155462685238901743912893188314999302631384605898540247539620593644401615738696081196054909613562181227863896175622822305915232433155086102650601343624289311578813745513021845421632392210240725799512213852839056042157253953706141670753859397262301602532010990052369475335810308722645434900226292286536740716599011994219916174796676136387382348372840872625775948292731652385933507969146861085396827227186741953854060563613339303716302722231741545382376947739290146448362619688309567673879960880181134051652626811557578565958312994406877968568461441351403613032151158360850996659512746821322435757462996488401513834711948934945575477447331671645336530352723059688411989204737240969063539565260469386094061874936286065910362853029478352248957278620842929591150188161659928510400713596057329601688407495837818166674101745746907107564396431015743389407386317642112686896738303328156551275022883828292544715979621002844406832534179107238690163938084133832394357492546988729013810082573971622288984544761965048125537946363562144534039200916080120601021867862748695983720567259198605025967713753630138642622434849751636458908084689341351666417442249188651362310464863314081643522029786776315856090372227540337926881741956159575928985963629714357967218132662542323293689153301664138504331179066062627729172067825322639435011004992330937982848469760018307210993789039258079046809712579563513409874845364017107351420358851653190074670348870792604707909312174766918785061625772152629014202184212585144207066484955489714571122870478076100829612933279435733469837105187471548391428149308966237495907652735317272574778212054836819203991890800400778592030063554087188140743912018758296553762132367002411355217729459820400012498579368512202659924038074976700764182620723026780186481842344622607837812556446603295681420225231546873753496022671891539537449479916965371764688239199047512968066902558702824242879824439682013324558555281264117410446705580518240159489620060210788550550530870998024821369205460827693918805645521428849834759478832181747424709162438254695063737097288016044041347271142978534541839186010650920472067084614614377498959322871820254136780883597583649506980181507134933422865525022224732690728573181503033519991996256634937229299459778068486373388713878040422477705863165576127296885503203310714985782670263160983817257211330029603210197912800103689710029396366116310478189876721751574133863339976506053770395846726981621669193785651997892295354384576555715140978675849716126937676877541302310702406125463222452174210751345233860859304016946780788021719706235420106559970218553739462636704688588522498701031717006273220321301610885829485652847020477297992250835219707459995097460260982441514166389946192956954316475456376236248123466162731370625915283437361112168186427823970966221866082321932189777387860256724005602418000323261138073838167425663471589088709318323692414890211917216031833723079331153039654079347748875375342041867409087417281252257677940161060955759896909767771718494148414431236256611932892146047266567222159091543279375753666550548335701931373096682574854012973509525250424103877861292886705259411951476415273163177750880470822088958681128044398295147645336795681891798826142009878650794256156697529993614076950604161596610053069584259204040912673982724809569301353020076103744293663175414443480774258846525082517666502413087422227459391427068823467721054708704317612017884300113332572803025908359748696012281089267534419119688927986635965454270973029985534135948346552973258735358659800209594953261769358091545908317399570397859506112138192424612777386865246058243333430940952249834958991769490816564328876238118349809727651059493255241290038258032289735223105756343620678512863066660809053914703006117513767581079294575356458005782802174713576269826831209853150797269662999102308746972331031419657875697408629357874480589649299828612613354039445051549736751821486839362515030114515601858372669800452471556723806526131687450864667296932810650145169736233092404658223758902740145572825258011427924376492081128698525517660935598923537512299014566594993414438753028815531439292948851050179048300184482912338882507027310729947210974114858257272890644989127411499413148041928682953363041374293643095660088353246468445653025468466579752723461224181101700687196379239498174938986805065634460493695936803960764907454168473742493966547983235261951804676753338263639376409756861522709066406747683397081593991307514184477525391718813520852878092943979958765314916120897233186245736116623601562565721992897102257715442792277214138488190256468846295577458133385504307349683318659778104189789522254077274327227573218636937881565333995082960068451977394484143010240837947418122025977997203294351585964413889074866544589868125193803343544082624159032121174958063198090855856762791065019590864437377580589591525809756298873379782774131676785508670094039507913639528718686975957752213647500291423025297194586757752078793882451484076773612949714131771849208458433062103708003701385230854828348115482520563413110134816807733312985519020207882678964082463616831259039228214297381931660492846000110637627552787827446204008406569615511765475858238852422251056093884977070099473937668945366485874815326987741240754699750753553907240316501230528519053325144400488219574208487138358698253670189490734437434856772719617208876547691730217873107125389071744709770180889393129384962812390677752789158806465741922497959202093359618479222717478937342441274624863209358178130699399917893300675721090695383255210577380587874818147890032434036837931400894073630507457944193081318239182353837056525218437000693138534109210193467569720875792240587138792637278508945483259399383169529920442053110318013464105739523919514310178594481588854089635514219694439933483539154132401480368521999957646493353049377085553600352245430185371882397521165592016056638347015688002932810382339434701955187267558341348147827814786115285176127132853625743859785552016697278785369070059910791562954779923258013734447360736549568256971399436912928799212044495576764025358572554829930231037520983349844073903754953830249896913932519659170548795517181943971222555441302565329612201891647714362176082649133641142128228202187865734557378461248806240104865609546755599127082714101371665243134753923701572639787080525008651907592783874280155110299204242450959102641425423977388937399604416998438376709789090071387418224419952625788147592949476298171197454223952369920716178177514876047002962014599136015768003560567059882162708188693227545483059063830679752496690821989028137459690972167924299801210265590190212856187329500457297314622642733741443004437279393102965448366383599852559469007501494144030684857674480754300650616327245684600438027033353993826087861606750263016831535683306341669386683210774000524559758537954107986734135112362027546315686655072932108108422882566608012727390477651595245032442136497586373089853936912752744006391697956042874726344872487369898106047126293714125634623429721821357158601966135121811442124811126828753411075036479499462692803239190885802565233321759494796154291797476362162995585140198944575283915036188548424991268940978537036803506292662281088662909801511126067120277539135761595776935543906804352749931325741339810834006176122926147422021365768400413193339205908741508939620176968738578219517847027017909653627124852617017147430457167810087670643636576875119271389385010218177718480148820105978684927170360807464543870089177058631512040465267592460528824946904607015182734719300960511555828719161843047230770701137276581598969955478041481514244618223700038786184959953882631060555292168117922972020147549292486429335054206124573258331285870484300443080863543271233861206075304776780699558610457402739451071172109866508520519748651118674597167581807067451158922401916442029975637235121316931798471468799117853988174755033371305006176700325892027362084443908906138756204470368599256504114395146891063440833796317995092548899273381235833005719669321491698829928386306106809982354290985654390475118038718795556407862499580059039333875833710746849256788387689002725017897288054976909979370755504430758610169537866403079730603452934095546206091042665059726173007347858387758856030039897651202711848142241593888594171471115133073012552458827055067540273613908020843223300250368359331542402005052413410030803599162050778826765348308711114080141951718412940862579691231116798721406854106323263494629009685310947777527045668015137346959120475644948310597488158597860732665147668912350717897326526802775871364558524776015539055778399512541313068893147888956162523901190864851649031129878249979792749459094141320014887986029222538846557194290557295374784720014671366319420247646830858116581403042860907615515956027998690929198809705408761176725848905512122059437631621080841895528175077350061144612721472595432507168646946810722928535807809037691908921204741831695302859200746362090815613468983609863426292178560314165192788064321332931609228318364931257505393634578253299909668897481266309588428578533822227489683907255286467805927513539334776466273652484670320851813614311757256107802383183206360160703043907965086476588732158925888236215959656218701935948838913969902973282141876293326581800088153116513185407704345369420322329001626910604195739580111331691993976423306979672519833560828118904763795777824590538589086489852173229195821790272448722138993016548696351680379689736022040133533157552340058281330452929273442555940579388515251607880392950024667900289717784392048700489331159714060711048832144813402981448367270231416534483866382262174197303561888868637496226720870450358431314637191542590907837138481072455313527143960370203603752007188842514851227947821060178622809436276997997486184752173795385548830888684938659305200920539029618518827211819602645790133540839899982877570287305130577770204850387691297234679971311969289280468406774264636183399813686909460362549454199652897893673090951942461796775379816056403634218048901023553380808502360662180024056851957231879496922480634640281939923458247639178405513132736691220082764909401845355471098402531338319379873466490429609348335570735363353316035192812348045422983016013658190546656625460465803331770875904504086868850143190012288380161319510362688103985087610575388534834793611920268238062277869536508121497710353565008781639673894909066299050626480685198201728162548854490407112380831197421460017131748253203457678000498979327026402560047502614679044349544968900460042041896555585406203267866580518927338012761152838671312275503449690462722797064017339046776198314270940691618973107312983957065445380561032470979184279843762027973391514635482403159744856769669997670187422981418938805003700779448958315579857233528551176118409089759608274016545959758947153851223742115262207331907414391531308591393311924786420855019744913103225003109614266152687720285204653590823436943004831807010035952494226036946298649640235920326854788093270064937880856176132997478018018299430011614171674941896120597665336317414740327225392493557671032200870481811046935887776316287390625558394313116096004298452949505205685909690190940705923864048617780039119695520699845194938205968012736241083636010063494367223114165589080976398475982259688064818352661836531875841537134706428321859108197440744424915546928679839969613109717476209035978939088555663002282306779509525255388660207831048453946883906707026592594149486866235841408662926968018765568942553394934432780828274507267851906335714529941067912800222726767608511755803045560456524938900640624384936640802014586343244255611652363697699521292109444113938689932111019212547529982907357628735624756089568268753054806978472073232003586836735309500126517285019357078611512888663863479860942174814560083415929070984424799759713081188347128497544018111268986447867300127098361152556630675846700040977016717551793944753720562188280546176226261941530873119848464287058634947769740582798972178828957758934292140611439786933099349353240810375036987710685723470338833352958437970161117822239466476520408857168189626016394187746184175078370236394686391803330415403890110707555872108012675774182805878372719905336255924729709556205641605279531875957863351889183734237849623773269560952184532198325623243291570668600591526427277847190631974154165956437934167653271520552154701251558611350096024033528808969014464725835348835647279182500554866349327736122252902064648306413273899979516882746332567714398364645128600503671611936163507185823405462927407266869227653637884816721217162408653161750479377193312850311909446855651407777926876059336403569152893326676764271280185976631594494815236391726935176583566242416780274645340587774848501325061189184881634095041501155684141992062146092137078841050450376374347648007989368955845097846454384565434276763822287178638411013844470003994141557305358887527539904701690888665695090964932154663966396152978118367697832075848790482858739378289892518602615472102241252568895038356287798373362443731691372044735388548831532636077260082737642222385147471021185204398464383279952773559834947254219657961224197270423704575756728092640513434965139590521006223341929617968487800508852511792592177612680010185638885264946272723405495607843730303473119735123694687377329536460457478879705039220373531072208332608076555150092861932101215121233847918924117871802194130767040896086060917780410120327559076953150369980269103002541511872490576011897250184292503487617273994699659440251094257705999790756786560545871108889149385080329020614255736388373577582673412212020176605607890569949190835855876447909492918698587362718824783650616036669889713059425885625430637614707479206315847999456677822994634246986804241173528410315941053912578541256142090550252508655787424143436576766040886101897686198343824016908927074337415366141144245842023604187178015226016685108784675646062695078644394894060477911901245422400428625759421175141409843672796109999965359751061162728413203732861374629918766138786495396956473608961352105067781148536102998886490608973458099365816043123272827207286990917001130982621532579472617511391199891885929285292360370737675150036132497828531886363750190126270267594319099535003891494020801277690158287881636538799492249527568803750912672046865636895157834760033537909102420511214189546947251876239818257484570186968719198931840752015285027865907380525302851617163353123219890274928280659830330669173391298756561710537667258914407656975874613870262546480803617231096116586746234636667146221388319888486787420556430241193646679182535734311149676296349443816619270740794933026228585444672431719650271821409267082681693498293591731350163871144185865376240384753223029643887932617810216424298869581076740248899144135382515553550588477977881151345565744875067823733143132019906021109322285808720487130637629422758731796165503142173340536279292206287722538838215155908559707014248124918803016309185795042524752651066826773045106992015071745239915363373217862069836143668593846933901897636936832633620377536235720928619768629874266100841868693741832318963356085888893359767739514626264425030849668496285836050952925550857494369259936475972749803703923431404909079477267980007794491741307900658325368821108203747073104738066583921410844010565330843134775893662713178533644434641902232662672914724233158830561198976093848928728933133766262764453222106961518487525253986230942964202554164640255845733099654488718839682298623972699522665542399921901477322101227067034936040712973270879051460620032308471937080307441080831868437698500149753245098044543116332819742219433642466488106279291501289496389829103380727960407825007402982816560721386130421654124325726857507405472682892215368977107918164632578632054212025580402239503525134750768153154171118368564899293672804484182707509518999720392884441153038869365267732797057210820956388844589875538808821986976056563043536685394127908921514789283011866820896492788728836661922002490271329122174501836761098512082293471190151988420084813226666744317781650201750274596254844371250982659114277702201367502029437272426548572551144123085164274151641688317043490824104426780334121376245092602310699236005428221560408762492866187914056994034342907916456181604137442449471181127004245813911201201984468604919064960875899727408571179936267430443470542103546033934854670119512848877135733687725360422758735030891890258036116195174527765629040148592753187797533144997887740236001899704685207384477743826711734800848787301737681913341686432035266827232294593997874211324673502112469881991233623296833701491881152395900139329380437086994143317217404521853115456581898915639718488634683362822286820546550440594163148019787955621338057308967898804191666579223106620273785496936874717396356564395003381818786190900370950652374862433834113935896627302358236630052861766498148373218052101892556041153934587620710793872310453147911880276824583080301580925652117237991820084138839997043667000728482541065941231895310821246779479578548826453693249806089374206557273378949172438352165627337274860761081693884318801662765263744373527589338661866700110191291356005510709809541554967854034335208061464407089607793107000502600762375052022575201631689776691022653866068545863187574774873082187167373420141426767667076103557391483860137835064405006301525840970372366855212453484814346254871765048998604606480713780910322550602236083212547879560338890094417265495062051013388680643017798862346172247075096572224605246543136203026954217232677988302212134848919296588225726665390262016539677720490721982299924825187941372003542688087918705875244634680874609962076016720106286977572130206066790551480142862060507547526348828596486084285677787305227297008945613630030358961315400350632358388213791255942109054893702268079976617635966631828513019500933374574941910343121212544097310762617097549360818160154952891409849355738195202764310349503870259650020654619017069367478746892489818700179453261660735798513613696597644921831872881515372232404240291652135714547718104094574492032421180874331659244570183749672089362595698950208645616670642907698542569637022039830271798015528362952026588941150984933583552187788419035153210207136378687965981784672096548035746310687088294444153239848496608433406766708103615234278761818581691963244344435925661033343402231123873201390543199323690500228622049980170960452148669594846387459745423256252363957655525295366366488588948419936193706722312882284768804110210789957653135249437630118401531204223687693366272044058923526482093353387490168287124252708303842344135452781003417473099536053991728534796002597610684843060369623562051326740407847870913483466717559036375614715980731026366765984938206000541462042391352488622920797777436307354356780756514384400584364763784895457133018401166295201713269020028476362499878895809038715012488205424150817024921257525108211395988265983557838107339507069919665887102304256809777397938720934354324371091603496653810347592758602490491212677302477797350754256140691047845111377864923779024000891936270987723401073652255044963173346906460275246825886391916790808649678211266171133961077416830944983190824070361337887161180895576723177325151409068428328150390965476454473509228630511610756732270334110023422630937353284980197568997839485541419829132538021695302672136490887547250269050913646616559325011248878714629882864920026774369536212743039489054764431472156187077459293753208582518968246060684274012265392984275156980217672237768710896035639791197110261516640309653869732079301335107856922427137595643109477082734203323189166168826950472741443030389917936402032618118301615993693613221389771879833207468490163982169734375184841155421957838212038897388427314204127917214452181528891874112421001438561416488644967913542988884928747718255061795961256566298080440580276106082651196072445867503699630093628167046115551824407687859758003487241880595889004418002615634953418362998186210568231559564357355908674656752182641262461873442145526492909213094497663690984020146042978750178069230494374461119001879494950117033518110280030490497410219468288673535931735720876758133319390416296876402891684442681720110615069430352028219226345039916440872810316496239534740687275746511631573729952983348458720845609310709556999704933023745380737394133131417717577382088946925958904346664338363549513355222381840023146671972283609871416852708940855806838157049208101920971343845046653686731950152085410139559636103386276283346602581653584115011387291739895245764407018800633077601564039912051095994463087716276877507239855315408487424468640952152619314861600297158405427843207159158405892117151732866169137975892071106772402536023296164014231033196153718463419137210929935429267562871228534945274033156969514157509529313525313228959248104879190335541909433996209951130030692068714138303728850768774605904562440309107861974182202369689884372464999516792214048034227174803096921670798049949884497477214435680766023408755475752795286962572427787358811657981108185453380071800828305575088073336764725234630953248121653612015056619012980298263123455204541975537478643779514286925341775918585494580205823294316580143900943604362829409139821152104007570134553484587699487431432883362552350778551329023255606408054677037708295311305090021383733701996330790029230051688699800732757826409449195941103610137315219541555217727483297504355372325215323024095391878900226558633137631721263978929099706291987464344727532274935323190564461409915141344125464364875231599538043784897589552017891085569760720856401678684387383287658373646672993030278105201490325648537170559627376974740990976238861574798124898051380883710062441514153221677883532755576324286951374437800093709536130810161375571196397248273398672370518108601804227378203349928482722398712430729338346292148177186862337598631348682061043939745427553258744802448885543957289464806029509221363462331621395980847909066214083095198860846279178196305251409515257294153471229297485842371048936792479378087925706668564505657272421735311112101853922572780774477307827579389893166520042504013684989267616885459655152366760648988804280676684820006220127591157610647436789708941525189738462310143432540143634155032710202119953323716927319212703123271549753616822608967557974965364943657693687330781876490374498863587039724634962048455219786956981012580570801593309766872240044812439759873442750154025750852083803847168244925664960177295587112602293387694328694821573981165068924568937463392239028286735831937080339132473378276136713406979693522888180361794813762812162445237688378610632718053827931739945070957297518567096636727285390563975088880186440202696637447788346567006183034256996487717524327562371323117670030824045047583298394412411626209741235755606571005342095836199147824542443424404160989986473651043224744407330051677710385593107671767393645863417775683355215153520314276583101419839143146526889465759575543882805682954878166151761147112467238805291060211677154049324983999602302416664718039611315872034904037764084101512639159732342329593178060848750874584310448877663447298848980876470014354123006243668377675346535552940487213695249003659946483875388064173690631617934057802638828992659234798540684108243950504675353387995282200687786881617153294597232678544690517952267753700399093534710728325130584780330618506994661751413550181133103333346676318983296742633561172469490035818512487702078780022474089986844171071541035663818738340050302983076128452709678856687730755077574235513341836996549013020299298110940245190568184389604696828102561040820865050124486931349192940295936202072042100138462019225764740210032390809868807555394020860234647779965951368946523020759022232089145981728695286780673483964875948770592581710106298802948838241594164743136265551210617821096599036967892551038731395044158956661432159411379737020583940755070285589178610754916002592359628206339717441530046221307590318233065172014178380738802225197157304945553521875209403472362821780104426130229288354886453176969462536605403108128677602278361695270192778421290498177652135181484960097212867101616195356972257150081672614344823117788858112538157170354976998640007556289262060945589578174991234991468725880204829128370384069047059273286052662179841393754725283863545847347816629716728933699241321545832629172788130645568507423605491504663595417771942903062755932572351832851925764280019404767282952734571575354513605354022907788489913429478769962523061740574358996368412834703705962338765026084572471548071999195082307226122103775851022753280134028192518390688784916195076022963760003614343027092646911908860744983991973881642931294096932323970499841369956599756481273648836241685380126726088096089380786628441567862952335387206808585825712386176209762648787083353084146948547834289768910490728701191979585693673201617222552969525482977739002378946222208292638155548678003189224785759902923902923649211666359044843032307730322177346384063954219497923735540820002864118929159036403797002505316446025263371037712303674672763046295929758087934966396452757732393487538125524930113380910995923866190652037057589045573895671053391486200567358947799101833108650075491651805529134962954993251724512925662369158565359101113771206638284194819055010855461991774668388566153687898488663996322791986853119135378324034850750048199662075183768898189145107613368244305818145986551891710166016620238822762633436350352767062671216352760575491036441533865663684118889315109134130443235948540455999440908670103221605941619766887843866223587838795331701270002528309344141626344571314241220775584378721518310822840942053996232910530981292658694151570918712353060376396924153409109425772221390428734691896701688119200921876822962948219944333620714695653580730585660535085593654342088050605222957149743835511644877940289358154199372044615554906299076714537783339346370729495092079802696009537882049644199267340994160780824853231456827837680884723660682494429282573131847509682191273543003231913812767961500433625230463571557899517311438508757006414105368653165348215851754516242184789124595375243509297189410294505733652800992420585270207379519132640368431862734767729962696562048706742087262833804773058825226851941952871062069084787173777470966675980982412702271865986394571225163622616096203071616609218942645330992575652242850593418898293209074193477458134529796918359404324667245223615609026210783164150446938843329767496891538856705151207861462558235403531150195194268497126391264168448396604848822040319401714086364393548424544568512198873164046359940218240710889727235816023035881613157081919033241834018431755266473826900969392054137595463316690193134470555686262355095160765342819953314311424537996008786651463379061178939286354839669134530696168895115399576225128687977598222549040400033105251622798422508641410286571321976619376574540881423181783928311909336281308058711400174287520865059092034833415921390103675179277102833044898385662576060635421596954318961848010697348717673669257891468767878100079051544480394050286380515592485873286904026857924665114682876506060323098056039603659206345787211543368103038762597287552594947906387005648296420663348930582789245814904449305221277237232612130744707949446581860994410164752625977798322680010656892473554098838867898951278109996910573726652262748523249799332431878610758101216963247945681922463081985216927592855869968985515516863448356093122323669576523952892587040037351033499073616247368150216859696032966745005653223475783627446360974693825516704646682971788702857419502687628483187696422214897939222092510527437316819407638192470102427210929233974140420629831461708704507070592313426631574958862448919853402441679148532138343170761652452500456125237961085571168166039912568249969084413352588237160912247064275639990274463959426317529702808069506517827381765260749682607453342261331788132252995716585102801560976513476432559688711930962099519285466087682260950464872963744155043991151385493600722110402792680634855294644309245438152766269245532804531002260101295328779393241714080588153246606884417154516516594684876299824722833162614770895294248218521245341275435208704104224717425537848107535091461840713185787967377249459889675922834878893800210971665416609936723427797464022701002141573358074645794063189220521717912699393959419136029919656940565509157168635301831247459209282580306251652006260534211014078921957124674440829966682967972411783721877774765187082772363829463290792094282906105437247451977133810310127309067845067913254317368936496173257651621813757325753736156419653432088433566996461034046319627376160783413051345447513746805110702978193200281775390604815775639280512995980421673135989732078701735163960351398809704945147210128816986057180874699540018376508942929678646629658564707618038742673937557149502468006326112683795427629251828742655156084152353516829126516157202677299070994011098530690119497225992858870010827319657453679764146491371897337551166517960364547042782361935802561008166137212941576363275239917361184842112719613806062575688584461341657200076350599484225431902025942950782013162217691328378095692784761142081779445697468550778311553020967743210394510390744463542101216890809213452106199243646309339454532135818541851021927263845041404108733001788442996922413701022555579460227575821866841976307607599219034007986496161503955841389415998980969505248004947285973533614772143003232622618964547465250377367893153883392271135505253689090396556245532648351730575886320936345707524231323104660475964176755406501729950300977954798660979433706548131560132330888275358978751701932639892573825998709387184982031148562099034552417361254472343851093371961923979642836784238409287365493403394469717638922363036267196377051666674346172372319482144822038483839179867834249961710276125676132118525484244739750859493738826378671452042175486821996279969219112086016695368480413672980201988698950859276724706976097836765310971948598475606764504433257625588668630455485466370612562178283671784320899256012632723750132286093563756232374974495301213924144395664024234693109826663220881381889876171987409546708946480986300073296237951549659319820542869381421663825963967548902635820059870951056476477355381678306224391609180248900476749826584642580380831222922848468396883863946818467976286818965156101565984234630841693013154634279286294405869519192945206986262309815900498594820140300309051274933724002359982235726514409438501152876410301592561179790113193775444815703948627471258385516385011698675988487954037312916843183829577145059025458260204259409183612642355653804359727650329532217798073388103210929511651059642128662087155610588815080842777357167172085128747505265263304946169896440727339073075032648915495968080392355428197346614826279391371549013718177662027304135137069171105737613701495101124866561201296760093890932753137704630498192563303702555807375532975933670983607901216631135853072549601105709590940898523591433913740568926305715928442100035156115267119738484421530160482693676650113455069844666068780247187945335487211490300684406758424238911229359076689634662745271180017424039503622456404750970033458166582909493610523873022433887435849483971620747474174140757464067067849236152391598898058418276901441770399748935747131065793160841780435701252960832673988368661469259465780421161841637029433271446587269101871325925682263930067351000943225337641901631804630488519160539353526262375993402170246307106589873310484948459842236817400449159751208374897237541824052806793010646753274937148460721003210851994300652026787626814144509058192019480896284592272535677588856396551613264547372918999008843081660545298059823245338745925278622883420842704027584880843717538023344156265663360994461651002655352986721766442649520163568588007599957295688353999859518554057000265489607677564840674339391829311382404992795088872602920836432044325833681588679941183811692751726792975109763243547689847100544457636947143723237595196481271442900887582004620493238389240667752090662303142401662888295655653676575722204884252248135589043962526497300495178268123542238071119678981324005900667727987541585462589056388309655914259566516259924493450523501108193075749823291159085380122171648030515448977481276428300874678029448021418177290029284758465268245909388407806540194261514938964191753842265088643029547616550046950362761958883660941611446069851262739087981097087100419031319536384138884475603869954440062555813579999001621910169273243076932328297171754644500406411062235061751574734986556103253447694940506096937149506087849670764616696751506280861838978420722023155152763984393766188772814779569901241833295773776540393437516070560833106638436608216054222439561298208055187693335244457838573023007685522772645701428849677286749260896689055394122531384870384144133139699864301217190479904308168635833644832025587649965231826939342064954823762383353011713112100863589609134407679584781915378787252322321980445297536725471331399628145436697722579596995154856093384429248799185569197213758333068961340444290770819387010222922306263114018153328920217340139568116525072267436656584513726699125905997379719561728085831522340402680056155530286352653418943568280160061944581815289833029503907785966829899013142584280899158495413775586259296923762873706832071077296307422322727857317152434119511443878373893200326299246217363330235733909201343626988074397532179254045162268600491701406241870928456996729898140912012973124067128753614827503077198693546862502321144565837044274674994877112676276553140709068091986436914917806509943938344304194033206116439012405091592853374671624349022056321772504518005188034402519756252836956368694460843526641723664569951349393231361148111188661620053777615342747926350908125526185609159758568185310623288779267740697828168022991387604627725754398080543286994219110557411754452953272052038506368125816323121103395190626424473205860585138800623420064526833481199021336965670450232903953749418341411592196109348171459121643294664316644222880828341935430705553206059070604584215031251444129865144946324087722628110649713595837172757890629884500431454755639995452750891929771071535474915902943097891940851366846310016672038665099252947912782086600116647687174928635434315563255778545651445162444914994343465618769934070987831518860404114234724263188016170067038559600153274163340222415572027480850108193652027382430455364869009327219999271328802330034626363724285997408912067487116804557294669934594394209842365557955159707653062360119947578550437312974047016969324040269114226178919357492660173442331145157003964137083242014325679617660713853081868670130930638711595526256301411447027895950070184272695726384303965027386738619620040986854405238850224227622420137581610818253977146356348565888982490119978816209899584716164245886157466024369399027517772215962543415096507114114843101413477923129769453056033071816605865929644923869703306837518821545379972546537785375132293834895688837666193383218626150128628197083397947835314754060209246019349085668348105562956556915815744248248311776745848510256830688139024122667616166434854426537577301399168860309861598157727701049642985846335832626204154816921742315801351206925291991053357885817148791729806099934553520415307007621896383341652140982789380760561996473405830728021091278314311525483872724224483696603306470970063061861661543851910377305995554184766885814262538767806519540401950234527765744044368110026891030394596206972583656459383983036345092730616034937020708887889607733532777508559095012346980162299780025338279996739325169370663588423261592794461432114624546350480980707226248168843114287298010765042428382662727357731353708642349741816268501971043898421361154768444577323295090540991921728249033520477770853385660097971251412805516358893501890450769866540339992102180978476085156882892340707380804430071591732441849380772812707407637716616364949833499081831466475168699426085687252400298101776352933942769267485366917854310575042857949693782132084978362125361447894489868853937158469275060319786094337481087623354832654316199711593248704132363497361952377269097171267581550880452298009234017973276815197833047191088025366782727309468888547555329388116992870634281401986582287340442184990164260310507387170902282732119040362818593601659749389991105945935281696511973728975424202339660393882396010629320169052620136572841505915474617304044851156751479676907617977700769994807344239652665576610166359222023475611762089460573679975160670971228242443073596844616927615317636904106767453125632219269710802104508318431491529555247661116825263975123020965835688878971851387491560580773687935917801530958775322863998657761806585950553932340910631943626828304857754997004176045959785857847306080065798951169363530117496724842716038344642993584816473376911059143085465858247329492212693909419340491525240670663884082399026585720992906750887168984803991104865911487531096223034870517407342699865436835231687451342552384559731763890145526285095504536183939655487580076738498699291159980986251824060817982970267756428680301663653538005124167334604141348356036057583797979197230400739699193211128727168698888143847928194957477802137776708915895785966894408442955703470754226183522528099645541782960474630417369003837057755941425746061054182006514202180731446265034385176459903869811355006865584988316807525447215999598522293189876368038105095148747926583651465067326815775323072031047703816378257556256555843148336537041740337935435355792721493638262460393990998003341719476190176062452917408143187066601738045766753774189440231551051819897054277220870465277281148251217864128660779190036415053308448490134363054986577986424036630619684317737648170403286893743977547692127172153683532771428974064298972892885515831841242385906029412533090431455375568302595972402805327128276026817102499949859202782958957291174582731192660747467611572070177978258066505882490443526317723610640773402850709517138279130656242410295443482792182581321644883869142078075047676019807358482204523108640730175190254385632200816810850039057081018552191113647863337296413373246866944343717514698754289842405592277043330631295496494442383011367636062082567444037959898524414027476931813276298549427833879820110310976843047796346708756856821119541529452531607477588117659638636042004187220007727690489158916661589536687513694138230746584854782502394263563499153009072798507291487115291269222768308224641717592961268073537638952456984784149998616085500942989696721766606388576142096031273293097953459894455469473172017035768895820387598289118403657878858704719374374809876216307608159815321660925973885237485480947884872466050402417633030817721352224175493293220178340013760898527878005519572333493804670064977530339617532298666044695135921586562649227623996688187856252329534617372297660184460976969467901164456286709754128990193540400129632792431403442669055559426992942375553797760418727900370569663375839780329860836221017451267745342679292189105449981723717248858184197651714073062634572878445225334009668012954736914547596406193085114088016395775030165103097774729301817871137891810458262706178198342008482673263502823507523159749630202274466829211811272358664323813977326698692060254131678650686216756621251681233047316477039840476410674485952715774032124178949815995690980027233985659843667139668649278902455942309420666631494870242248042646332401086794652129009344791211738123253188736261235108631912910722682748605411128570461702957674718269876741321922232306264758499071896908001084849360275378557677411387322282907368781202348809622955905339721959815934714706710275777064358400277824233829093485537102495840067764542629424633924036038502291704507501030931329883477298169089848654399164118072362157196511920617423171306532242836397377669393282292502599986971187999332361514101824896449666293002137790102172247435108990534135474753761145046794990510720360315997653639441435717929901834390140096954766513456158381194863176054143669780917726738509917522454351866556950285775046787435095458788697457538139916659648307459004533958036022798037273652060770162871526787858953164101004666478449571331911172462851214589675847292731977954536178790933573217905180219297531021135662410247084838959946518319626365028537634590697675169317653450456860388844265457425735246187774569055075791599829307907154179347965480334640749104541692920442690804990407450061286961773781931621203107535923535187093276242184889455421768706918727798312828776838702542581428904591154206688521592980502108935472758098881313835750093608024170236202365732705779189190868802069878755649314737382677779423566854471868372444576037486633799473785144140065461938802604844464846987646636565318984803959812770810751854848291494776837226095210721616762945449492888127994461709507447135861094774307955757153307140906031441165998264806719333576018082596449345463565399016589005433542171130002175370982250991657717122464721972476531456408644721381111626552053603470834298482130557626641414266789254586410849929225168635398326092884320476286925296055977557740146394446838295391791801689680719699819284161918713569711349408446298565307581244941591478132919173447607735477264916930232151519291069873120338771968261063060320903780093216248696267224162137716663118373610824823264060201651119913950818445691248292564096861793646234219972100104503115934470357078552613290615672972288293320246401588506832561695849050226269886535334444036325218005979511280054396639564941637183966735920378340305836295924412832436693077309740918616415124226566317207355218060019834760083795685887931070643164116299965683949401384549002936458197669636939379194263980792454832696820157639317553358545733062533565339285154766047076108184812811365831919033935449880239236652792974643343487144386569473658560731625224143394127875442794196602554936022638016216371325185356022596784293549495173072412849322735008677103487709865692948658010757797473677257132496693541769145589360264027095482785360531309856959090194306882764362976242358155646667095016970443585448815066993710173814838161214062107815498420582961634112285444405868327872026151449527136530724491726783399526181379833137159615292312578896439752242370623717437443076079095764145402786139785869496458760057081920658066138641545529704470947972827445399047521038661065279597332690144182481592664314065313308044097372624470034157582770755946917562318228211803830922568280576835056806081330973648049650891730404155283528630291730069082725982645162836614586243969366963119174021436223842098692886012041667589421613162163891517200345163766677155502802419596909398791144522270241626879035916561611904448799580471595916820272514440368485888471265476942000657956204746512496341569630402649555660264629459890544983960548044095254277939030386818056893077729738610522941966551314567987627736835017755323992609950575400561868944760421392008721549232810739513368026536555525004170801004809993856487148007584236701764426663343229761411468257292059790038053962111043389188434422200355611196123105546751614664342038410170198354053248117392526967729286141259545274647819521457279076973117916876172778721182188556267205957348846158759786906075143700456891520376972921872855515747944807310190097844938364097141512152161008093357392167030999602949473092736119293661783374911890722896048058641741905919775173503407771133296524706370628102158738747308918478948645003655395256310798271203322425477409176914308028829063215401538332099627681890869708320609633133491870000594185505166890254038623403220423185608113398084477872157771459337211690370474911691375377397485213199534937716687887148724772197696811759646009122419559346352742858979549788692733089241417221026664000878276678919073958518634460031622411858481408628692081826593335431830967100142265807109110624494633936125526634747844272686108808882086717747753814659927402210706025646079522591970931338776970055530446878702222229246397475689821733405472242919999923977646102621071146113463648854420898636519474725839165981887952949567695658309850554568677539894890053146613957404471143609145412807443665197001185650305315001424517705142836419502990557892392288374335861876924518449873689993826225821818614600405765973157536900895719317126670128923579755886601235530608353977210119373188070183624836494667425492842867431224848096540588491580530121720788016599016547231137420374716236069011641551369576621115465543617259925560995207866589060967080052775435992577218101018168103853968296503337872163861231051407054296946025491991834666901116723419783004329635083876019457097503542051139590940025157873975337668028771572547790466561591901503693513419489903175143372845847445577181194542725602150719839154815503938656144512326270026291473337463058936657607553405698670543060548096894590563102500049847627616282030220571855100091088484496308943058287544277384446303347192554994053300195512204077229108558441345766140829581991948761274460991737997938778705526662212044958831328622772897766023391021415587636123825773715190368613214030619406994026247798903292238069709814277376637935394611429811785434402164800128940133094117558366180740421034735445832286777084127534448569802274571295895862115094448488012288626398876364886003372617853226751333932131417521587617758137709289058982268845013128681592855742568402046403238763254922972900096419325646148897064164856618435475717482337904030482609079696957545852467231566345407539829794870740073406338644924955624754162465736700857449345452644907915935931858792920281140634831265186439921320737438067846147909469919251133527933451452298982067403764815426222095902974909350141559384171382945182156540816738034082506848606690501664689264182797510103019275736385963678090669101769559368528706211554869276336620045110952317245950797053773032208757003288394370383753683355866239482969555336682254910890394156899733787693806592435413670961226210871265311070470024269289946137269172946903337563669625492772656429498595564939910366865371433975857279538434655465615348276650226376312679705646438983035610081510107587309877514840467520941973979716944609914343410441355592289249864820358817649746318638224744563107382820242066491433103881561793987160903028829406668775963370536667614111669490118070501844486274183700119547737338493831144154708785851351655469774050242452857531339748546698409181222961485949489694130665777373917011384046900215109928234635024760030585519465933035463594555490257745155474499101010532660625916040577046583303006365584935589571489581435197268412984869271629033715358442046121955481599532249855766892150256499488664008598866313466926062068823042472592526720736634944589258958844401756600038116445310005309214987565841437128181167461008567531566511064048504048631240727942260267239582117510599128924716176162518162267291187967148187392264678907611817682979805719151942891127203823655778970994774495537697152668731004839011868998238895703463325944151110042471574684900516928771619538385428831056083975887357476076066770740772854784255961797702422842079972419559124713765255951204186631325011267909024854978532527963117492804454478425038543705109980500387718239518651043377860955783496389905240009808914742023020282186011566572281464047825676619737732442296921951891162018856593318751265036530011537904658156757141276231104675080333907407715412819089887611689615884012714125818078352632205914912090214618600624381477768119502007824883500895086958865892525847803353621509345941827965029702018536698592093719366717685048320368467090550065093582485023322341261707852788917100783151216384580137595071924782701676967167274510240931720449692626523092466905803635353039618869957532392177897339863146437036932300046819515466553558823414362716043333297789359450938590302371120698794479408484562089590247334923351701294155590227992893926077939400075818769166721058913237733000391247844362672043953085619912544853389800810959777819326038776790522937217158042297118259717558786745261926299228850657417283879406494228054379768464230083669998270500299122958191929997499049010264388538403981645065782863497921361345179190826209222948767396938463494375366610171867339215590533111407535072533362112430576140082913079775607366377857696549033440791015660089202949736699433997550123692142741941278509302802671206572781558595759375390250757767340958764072319278054619946760638210806027317171142368118004070453598416828177810937300647663849488977962365129377895198923322214694662859610164610181402433082360342932712747176287012989700118455637669675596727913545277238015117382642866705625439365283854067530254101209085853596083085452231880205343125826360532206450339878867940267535492597426913645850913794370337282445373194209572034595493252188526212088292434004859225242601902402526163598411108839248764278991888086755758415268258349776893666794624082606177004751966170786245975924086969748961249955449236518769791522530757566190865199679087569060329342148207418532284766160677975024942567209026839051881747647101383342281555820563607727404951632582528245040363935050466214448372797337105994904955675093232681727895055276049245936377162023734117841524548049920957374978591021346498115185252680307062701119494665153922129482315602421866666771102321926010192491343348600130955555906990923336898955574370644840315970188468734070329331126923032708611992853896041893060683683198596071603070443864556212537212607414594251050576150301087827155411457503354108560464682155649586955525027526655797723992133435985120241595754268520969319907143813643885121777485790314904934266662651737541118837688239695938026408833884187958556472338244846468026054395541484410772049985609856990954798455065860178222918282762049841129415481488929690831004596663058040356258075696542362468775605505946788301113547805558594800369555144813718916793558523519298554473907868164646440787811031354924668480171640163416759383113730086023353015796376601015245753540905721968374105428825115606441329550171604833312608151589325203756349580783526239463959743389691104446008396145126521898237961104959284652870031354418520503036248563007054056234076950214987096394667616173850852518627916916350565976428139859358070061830077358809060369155033868435242615302318021180357890444560240577592508315081649489837239114862868802935568281087843682196832418875550086728537317509794576839113118142347963151402832853115655258070996476832742891929283361226632957843015918233334327985746568264859710073171866783495287848188159733954479463772308629472937456125123943570318492080915308150829683038463547924977395154092943902010496964595182825532402037552321339800781751227664039167956378017765148884326750500446112101534518661655771928143343524506582328484790627310892442752839921477720306668093714939053389341073160154060945757254934884978000449060941408472738321849726306941628823998224259935419341469542123165164968803650372175128913780959332283508427117825190204385870567697419129709135024406827360702944607525881278979363247640457267853134754683547105801568156337062932458339550901084613823249609663599998886976355132194560717788846035220634613684992092487109028537527111360102124575938338116160470373576541194128918167652792130370117291120658334839732717416296452019194202328689985140986754186121692390127225072334286004817368529210928988086205487325117264685254112710102773064421353593726308216691706506478874607945035751942257770000353917293813650643947297175608300373244207363487617247730391408624101360054065685944411495094552796912031946614407997967389256229244895617574406868630639791870001631715542649006437560439891629891791198030634048216531514507208938064132008955666052899687959493253524122348779795494143501085245440426200717887777958786004123786754047157766277566176695482443040733449997547651072944828627162102133029008788268237243462406777978807402058439412492734516795654629096479172339446461724642820073254390029755717098186277605092382869592384104069256912403577600659696248903232035048759316094656958388963161479108511147000064909107844904948193841852650914916463965577076732758963864989104819935676549989314627244203961476780058370170601459147757982099338290339254127973870396037582387145315577113029781575360567182225067327771469242966751757484297841233029090991965537879363519708480557361988881640942736334937634316428429504040921063515375902073620692282510696601063098304480674311765655910784718948479325894318991954802813158327135520418145732639362663426789702469071135669320566924746982940403741220291691009193845678685891286968672189941576127098913036318679214145559819236338282859931663410394862971539666851846598444267898327803609396865559836194042248880838905460087081291458079900286218699692783269726705582085228098292534485403989081831898882040759064421090584759554848236088240680978630721888450542565040595125973952693355234163304429186362034142977021621453338175504646530679823530546834870801636062837104164321142096715266030305057602693767548111408080547004112416646672296575857730914908859566310169053472841477100013340099703364876150906193537464040212228757659550121733834264715315021001071513776296800897404344252632159650080628497333197819026225198207176652784666753967590000018851112703332932465048852546128546394526648236335768618981050717143921851053505020962269349129144817881959211473521588289315964499382265880383654550809566113656570712434873119869895665781127005646489520417578562232996588178079535747342027484551141786571860128818915855007846516718918145026461057364712835617106579607364580381258997200241557888917530212156965812970547000812727754808871608484828180336438757853375794382913153584987632900528101465917309101234304932549846945627479636997372022760195132107153518802527519480163865806895803156190115724049613361972678239941411037210760991095738831065045100971540739525145813767875825499276156312100159708567025133983257267578113568448917058430740796202066687399351030239647172714323913657640634259284712654723162615084169244595825441067065023289561412956677050520314260791082935408489001793483467601067248092625888903798302309595614579773506979774014855901927114733219869681829237101423674342554225028787812510710699768862854124506544227778976154221338315162749461284532665133874116679071600463612193198563976687725186008571643596717560241332315782849273320378084785725894523850955347180190220156149058946533631124296573089245528530592302524306411926905668873736615927761079119735699418339122465349534733421771960908650287783256704075532038068233276711703634843071473926247899993036054201013046240607965960769370204849720858695986226357360151285176310355073301880895328312178261602780931918777970100946934768322239377970821191830379525461803927073891439722195417711235041341333396348927763867540631755057103109214468388441715176979801571843527010011155956122901801859375705147091520408735313195848115325309521797636701515803501811194830919436592583535469661771267308529958960176770099659502955280578458504853168390899754004343739622896684855855716438327085269062952097576677036567957455669010993002845223352917193280306299690213773916450140500394358929449433566807652731838732030589733850385403037919655710781027773836114148378014555535654631936309683796297046181146270893682730857471952770546897840494198252687294336019258522449211012928022907123943718737196336646657751219329018382368056136864022218230852731374229129530622992468809325809686719819796348203436775483095326196696606381431686434606564720601679329007714467046759706607091125491576815356292191580464542574005788947776549217377644081440233748322710019062791674490395115188855753250407221467333235379757718407292270560686464857366884048375421322455966689968570607366071215906691221784722907908141069605357569339058789768496106195345411118555899868751164467133079643008359388261498871091052962231985857199540641880748690972759329700368283855761845450200289727984146134624237979936346217421362625048165545056556961495868845017029796849542962518500280662639806285361276381377116181341287676525337486953018571542130823176282086715281318388427265871941967945260854889500132670556064389136836121628435032784215422546871458434255312188067184718354211900275949306794714599028182387490120513017330952285009585214300973350027237667927864967909198607292669681962271778131722665866543070281460385755171331272683822012808170303017006330750893096744742520715386172721318365574403375860585624017561378436133877705048630113406376112447307980845220589506790909309539995831786204637235110155145864636533967208123808795399430730271620607523638955539498468645163541909547400758169383648359501776428908829651412438088299167479805140143537392537624716532501992806387768066913843495403459794710166326767509259952333362758489082009814717181174541073977510303992569836531344237120991430400402728447489577832295215182894003520608654182479280487749162397825413754201260235006635303205630378762704551155333143681718224692314680182468241349607030826977951844405520297831153579591855762468328762242973058329817779517405486148352490987868808084335165463931702401218122610318043641235781365682633099577632204648028931727430972843536204189735371223316962010966670524294629822417509316306524045485647208396160882392198119510147113086996570831163498339506669891166124813000698076825239742085661403949124646645039366377066536511065440317096480759566254497408077377023893863633246572482340346936203215447935884232145035830097115131191979392198597267560665704959416853242365035318237618125679978594729614321759000556799309252725908597214604332937754977608290981608128849293457787790586327413694709219840352214351452990314228179035853498253809130739337690519860435596033996377307481152046154994451490237188385618544745874126897931194800053928112894869390306225172454590121748123876426250625363463066379458870277448664533908352634618068016342294217000331647718719847827645856554247454485005309645579028599919951926405106412319805858723195194803074248648791167504357051126643445209306204373108624100908995771390321852700710290550763224071668036944861420330979191208174027688870925441779842945942923907845239223019904422190741185972872753452648447171781236054064347328788351855658577428055980014939910960787588657202777815208889678657317259851791394554656342689356131537755129345076270618517729791965968719651659838206557866823212775090585925504115922620446182680832813701040592436588245724062536881144178406170014267120262819230025641201222957583240230826544763103616222778265955426431005933494266513580134260171865800044124421922291096226387374967491306186371930811282019566313678405051567954566033108471053754841784641370264169176055530619506088803323472638825637644618129075464580272228297913091502916241030722397754261886229773931159798751485546706872743047227745151101642822395729156205918743817579182404160571701798026636370959435906219398039603315273627545918092955007707492468512920905743818707340444642010638958012900672167162546263940343790332259231021727433294049905437500453199920447384198149024977686508286961856009481665297746751305396728966225710754362616708895614154133813534228052384124787713913191148694862264091909993633334147031480325231987447321353693976122276212503817125792126552960372638099737975639396991549668459833676959830286124080762052298967323950057885391864203288329303566912982590565663868595228983448723377517505279165579415251184989306297341715711199417095121260925103741287628986052396515654337938969127956265290598366782239316949913217065916136943975606426909341463748220557591483654929521053104056503269769340764847460925898300954795750329462424257089464717101911858975101479456706720969890739254066671813109986207889980806511045797192529334459614654928224427074176434192607370150451756592362664434227569802647497349693987713854127754776462058274180072200641255245160660902124970602661961344769370660881745701993218801136910285615620691273274716469603793967569162406470105117330881659549779134256557380908792393034125238987515984294583822315452145758923278856816886497528491529649554962626840945174856415296227524878103551161785970678974643439784343543589951054520273127138333003320471829865867158081836554450705832125592244439673411158279117651346463748716101894074134690291207652566801363867211210262860842489619130535676925147379290189683316218580991915437605732418780404078576805530389255250906790281144292326857402101082314226043436634551272453605236472031690984948231055498793515972486788653764230651298390957106948130805839383483093847816250883009419108510210869351942088139038267079340006420317679151768503941482510549526481609839290063231603960600796848593684749081638221244117066422861342579430713136328999284730302895413059309845424707361386007570618115769805861303830421453146692197413373598486481244877489638561164666685352258410828215149193586917617187667225289464061306579017207451155308282432154239302940055483015282414052310372606653821034298411578878754741159418026813572059264324253708027608022071451863937179593472942252918085835920376628741449469701780258964098283924081376549025826512903408710975495672469348992456712085214907376555142556067935276057297394098064912111281054472668782282294395154733348164964687656259473087167957987586156019096646366154019569877511791045088171463732294819624464450400022729980035930513558998815741364136717761696108034136984772953002058749433471055681564252570355988160007364332656420089659798624296883183863470848339844762155964752461317911230962750498904945923252445533889362040996616297259654340941423117769233185020164016246814934393375865596456916893286783757754074368251336260255610842033684571806933776528394166827758996127322041821948489524297131883491469989327429750173335196320279473818322887524087105673895893858251091428094119335083181244530251587219493882606857104748361526476921040835353077848575928259802331847958412861070127037533586880601049252508110377166544006414191665760187057349663713886603120634936584464820438881237234294311178004271065394748398725339706553482407620979609269637941221256033372726291070424228994376767365850397939788626949474601260481125848437821709311847347016559145098768150447912948450776447099005610101552107255257474548333982933484409265493774237667888095374375182281370200201551655671840198934764643323544008017178647954841968209067401921931828847397400395428379104842286443769213022726737018058205534729867380213839503613440551417393577157594922707405222015966724532445770984915226038327873298793203766049856718174636836004091961314239761835276778437701103148277129069665244883392708018698422474604510934585807930873274267065697707342460676467970653431537414963474258908594138981825956082990339865071866593128348928777699688927161897875187401245099479991347583694415351255260163323364114798550487664045977817117949771783884689945661349956723202041467765796079137177335872901994021626055164400579642393854692236211684140435359067536678850272974336032458663199509471627107533157422419647773749024969964531152081088534747940870885761417718040951075949104499228309227273814249089156814980299765112382651850275419143108241496327580292251022552970185452457393639520513265729049220308938572135605489151917308113414387113282157387657327636864947456008119242509445860034563396532537388463073436799729737197411331144167677842735158397209023245754619139005998845256690171376950606616867625489783407347954008385957779385175196540684227417145547782403560268356961931274793061226754877479243490877412659713872043002470570136684116822284697085478492377916012977964736894687208640559155726215050814909019874412998644411089457431771168425932704740549670914618576103387857966121927440873855323571551579849559294177422568848064700904716289278906542204794445376405988555948970401108788578021339051632740120187883189361794467337240668822156809256338010253494953219148033987459956136505327310733767384876339479003831977928071824900609612296546075510258803055575415623226708223221449368076901069617836330219121574554909776662797750618378647435165011715426991857372109787427737176128155282935724696469244184669115926006507586159594365441859011093482650098346886011164795198499632051504406754359613119029986755357568053986410019659899247098169229921303141663506292640170307477074789978833342006842599089992778652038056391824910716444296213095409937213055329576077987199759627452876796934596432072154179845088929933167722824719824471559127398854538265500910622077451029248592636767744721362295818656659483346869470981013312806340279164640347641997029246274580442563281914952802696307346347203365144848963124029406335049794466380835374882973351249890548045842487157918926929477657209468761297040681855635955371164597624055263477521854612342035801230592299254480942152620207413025126703058554714559992841533786149517122035975800924520128301562046977102905291554406878108027699432796929171354689989936137264712536396905357454419697576184460342643351957351615876732620955630340174732380519523545766457813720684642253207888131642288939100901767451258434223926543379179993235203433181205067601374585741140159068115118966984570826943284083303444176754315279334527414315342482456415948077033015350571270029548289527137918945862061346415288500167917642077131063069144934465686280876769325958554436753426048373510867542029979137893926480221838323995445885395524452542973730409181985710523055828150723302547569014486709220346019626249845852482790515062895626386736990393122770055284821551791880940651659926478517081537061557238415849031143641163653203152214204207247918477433871193782277801415855016346090073965333365288866991705991058259397845563529683666881946345093787329196496438620240486030435643644946850867638250227054501599852054075146132230989855237548718064122400323390193011567339972439461318337738408090416682772270419545084039504735288319550993249528479812347880185769791431795072637152438269997134820135388751792903337255510140182598213408454311887831156209659336343814451142325969511314428761659862816394375001884436186111890253836776452382594714405190734545564484300855515060665106359205623998464336298256668422785756048832779006688613364841068437217031172200695297010181357790444951230142337275017289989508902614408401414050531014805365191246976442230603506347115066838649618150225926247192844978534797760604629845028904035678323655179585637750782216288326713949293108176252784337475687141351160105206407926743588513481719610193881582246978949825754108495762972968189402413571961347838346074599153578746572986013901499478842401071704480589648635779328630954493488052268276981007283938249303907494361144361816185151242297231338797199147307812890252816151784098455735422045739739755324729160113407669908097003901254520967028225860910980624106065696272439607223459801580957566680527757989263630165610407026026935547442081203527247662584779847162134725279640652571928685507447319977230000978955136712374554373267214987741084919658929443281196669526125973726889272118562673241240072125174689141826206674509741967036336117101447644763774900965089527132313312608205913247324882976141010780976580566133492568368886611195795197440697443704437653680094485429212922489691424644065262319815974191632083748705450399792136406015320242862195741024506374286442716930848212482616024823772359971886490970601965194462724168396858695581091328121693346491501275275880136256935721154494057887156977337748290620935857914270122517126698945691830547894538295471300439689389779046647938886605039694443448857153268517345060506848778792897997339866697644502760068995297175692288264485950088332897076437802945399940813270479869286831596459112735135010706874347797503198814456144065727971506409198790932937461780279977121128581487838699550510188926620773218066779960371218737816561826121474417532796954128544621370785340150603499175915698276708796441963214210367459874481538881330399316496148431108452344222199057492987712872519585348045006487724540827253942781202407483906187058361974677999829709947581599051893587568981116650502173471642576291991192704155984845523067261061337215735230671536624508543065746307834226444645180116811098848081953845872437850241777977263655665579452684405214428642385973778546108131877565188532104153552740297877244486226165523216310203329311008809756164392708744786699977956610220966501161001674867775756888058602758654474350157127497838970919086177572311482854026736893741807137473243843472257922949570191761657030150435278596829121625683420005186694433791175983076786107618733176503689986489514054731270047902863996988448111208390350096128252562716448121161384098055424586358653000536823497999450205881358743004121242728464004036311540986372196895469329737969170426530980073317577307499040020059502151018013405852200127743446841328589896126339472057135220951721152932917690939284212227412479375109257147735421901695634047290342020004728412728356220803495595264234820521120742376345396753841631912599377465087842394715242953246588482199078475479023197860419223593427034266175469207104099965021148837240913610868275296925607533947554478018504760393987595401173652756977739581803060532245833321046130813087132136758693482370097965765372009203855111542134134930354741605555048956703236100644828144875083229193474244279635298344049665681165819500440273582747709771389640692595344982791764116930830319299368047118569125068322341840236943426731939051502332793462523309911440960798767130326378722219751953948555648688061777732063122876341798207657068042149291553931988363395914055576114469128076479036247626690130655427486297075109946177218936494366252080916767634939957891827201527969867706454247219040688335151127693650952872758118614154355850553958040279105017554175976719137118586369107165478637426771384563953358728822069669777285514670759447356016383526966537603609833935113799870643124278249916904629871814020593209585084747484448913390216667966614618587323367817653187171250125168501954717334566299543729216971910477163191532142286801414554520823204586591908038283654033838412251209709775570069550564728729316662910858531491522798193302631358503680481037613084243881165593286967236781858806993030060733862560654945185093691606923466120177849085484982784559383716738731350210932590414102782306965599330277807660636143603379150344056003184858603752902049756395813507439665500513749191810579790774129352161896369703556645210579749978503845816395319444307768523053804179156761016113826102448138711928521476430938323535757417034685879894099802568618642277725096585745809023849794084121406472192296075594596435524916681441674947594684471698520472241195161735775104162227370933601561710023096800980082063458653874285699046999629615286008774436813649977782261810283959957866947673136009516562490823033565674892903421272854272117074155036577481010645578493875035212847071129645235563788126789204496918673773002601140242427026039099409764144735384269180470244960530207630773412655031942420525726298334412180476604181913402144532776306604998382998130528277807911096809387033804058402596325448810247929839642020039799464375174407712152913954671028672557695853046281028823741684533075399013822095904923776484527354346227388549610192711630124633246870570399412748592347591468277336746889609698729794967605213482536869684102662978427660065707218799023827232793505518576899714198746123117893006154468408465079217849329857072710855661223229714006264743090526999642266199896925712478999456207277103385901221233943505908972087192579071447950767374015492965642209649794837592008594839107653915764236156046632506762240353867873398138944689270596403020650936954180947779915351253528457749901906370387047482949165065049227256924706761944335364634095291119988582590950231090653652677218990217207359205125620796077749653381090489090795023561497109540775875233515090947414802362735218307560210261595057318553802834089630894228116184884546678248710919280321083060387504488401897902640662630632969876121686000072289717622749645395003776281407696872348160688539263149474926908904312905691448567568822127950179976343894651638998369495917528172899375921639867885350516262826493349099904719134378636415243671939793674953594316276497207047602434053801466009223608812284240060186413459079046346680694973557963133397131236240888622715957509888430957462890240845874225993171907042250139518073815063744494351069442200963877038915306031692280957412654636015624818160949395870639114812785968719461808029269411924313516340318373219022719820192048790430150276317558606744592297027434314910239537977703003961957680487509070220274278858234670091613842065843183123908438371631503885640668908290157581195100485647423994922514148469794897417398282676176434837502778763951454160191447458061259899522309756923338033822687221631059419729161351361390698821690191684648874061893507918021681310450417031279534764809981696880620944673772565534398414398465595075001694333969393699999854147249503023108889648477106801781755764459341612329751101911013420876885234746372194115416514367861623233996999768071529991026223328112951928326985028154559617116045662491673123518291646035555118983240521642640387655510110095074305999840985917158296524814450726803836969359683146929150431942983629946386953978156944599640512986666310521943899455675778974007971554150797103851882643293913608055330578267091598240422685381300181717734084450724230603274314292312747459671301329056618962455095529632271897425583937590770045999697217042653893976418389404145223453448175380227533070320513722961441793442534121529853778125684884272533645494888030741960366100076332870056989966044676296867867303006791262232497349247271981231084209174772075681161689818321814218886660166040508784094850870043684957727051687273000414817004500015792075906905297728786839895836991157648373270693376962118028708776291535323043570547318493352934669517089361403839867847739818362518981151604623488513691975823368217698389047092304292940144014544239051581514051491372927757564080972865080166959254246506606530276532270956099053530193262626477668190099738318175083395170772084267022060610950165023914210089307959282502414985830545891591237521873897839943246123580761673734713103997571537719231498737780957142681081940866025085259504838149356294828919175304149279254276364608634637358052635478977263272721363387709180959477570218554887525305034917742588327353107794375031654710982448634586462704663538952669042510277839757370123359299775340417812384911410758530815647379470826875420974876872462567456603556940420240764227035187970636508681777793714373861733193578607234194756107729863063174817603597856225676964372415070954023176388480111868670775964463181148318136066572394211952794529510802563521718861512717762384173631869152242505091903336258584065780344774210252000769479449647328729690902999888633284337126151836607691076641543352989807326517795037203235267970594003476842226377857278793575391355438953497675568826891159770129557394871332088223184439948556895173934784337060713938270057789313981429555947137250134792829517163864795269949665766003194598110380582900383004832067597693294507460936995877814313828565777673245697824962959684189681863396569688718838533895051061685275381685322391411524677892265613746602291999592669753972273995771496353642436104517026218012640464753376708976304166292679777398223988325425301401181177633965105768752247981149114855045475393989481324336374248476197444694289314609868562627708539613687371715684622557739803445734235640708286997632188023949631187620454966434805311580638415806504829032293776006580913805996949444882649448149592278126725109157475086640557205231989925140284412682587395307389947805855865977152917713269808620282714797290050736163237716809301583616258542606543634795200526040164272067663887657708810114193215299050328069255731086310395107610958191999736347310254912098825307637588262229048836608329208789320829232192301766028148319855288116164133417477504570951156418050311637938424778301188471522557628617980634434583058584717859587981525015425516876910317185012188559942234675399990615195863070032687915051137099294630023601112694535130832900868283126378836898296428276813019425970138604020796698698765984641335599346181766709595787921645762977673080277355597534252594748487040141663231239005440739623276794364910636551197922061016041774625447496517257141391275284016881923910918845945181041896974185184420244661309755850940964415918728232834720765875849278376164667223277519114793957354889874705578813725247168138410858771235055940117023228905137121837032133887391575173586485733777441114647715110851512305534615051305162204313667835658445690405562034223774984017281379700293357576664140168967578615402413246011419141554248295968759500433768328914074682267971730727901711847724338308845857966994471517463334840833966534181118379017942284244639638806930212126760789959034086687366905119433514777040533594156233658143282852533417534084543488046270549348448495542968912799011648253783488799834300935995741807493584473514732414095469935952623953503113128303209237137333083332337651356319612579249873435770648064666992496213384129568560721114425286596988138289739780138715580713365047556379910982764661743142157895395660824876869711689644661433572051272482783515094427886268521405752716570827830191510856339351608185699569701776075589161283917475566686552105752960152290635167743946973777554458404677039056211872276718349459679370460765309274068151201640402549824973772258787606267502215135701150606904484284214016610808493104265461222299707785758130777530805435634951126855528020727033180864396281093794147509232763963228331159876525472090772827242991125589504359187475345727161102327106200555164703979430944766289778963821895746112268996532171110866022127494044666595125438527869611031193591098517598853757284938804339013353976256071175628443656796429169658307446910168131545800315360396711470681994376047060006723497830122922549292972591543707718272584617839677859157565723811890984715267949302609420007204094650276647694628163610180360440759688383666009986312243203967655722125491559028691117661855497587072274315933004318653833117074768832383756732926777201248988258064502141734662594254122078357321633784692570019968847628982573342007221278856556798937201496215597620756680070481603563579660036009714058084718757802557477978082161237344189333472375244853274326321966896248454936297646940699620850600461644854522644657852393942481218259840996652915093526950778353142827900031720885610767879645767595437216248512047811295255676036101498539753951451988198768995404166657768147217595992529593268288781735734616365602887029186266967817067258842817499176266578083273467309626665780161451009839687005367850275562608517682448252973729730189853252778154396320085005622722801799261993714891732333786087579233386265997702928985577222773426770866541045953665627808740411169223713459049466307209506855795500273506252172491680719339988044324265509419568192241029300845869098275799812073812730521534734485647743231057392720678862044638789355792107784220407849163735659784113233127860695320763518308835152900285042988439517067331629252215088526036548523820117256994337507257947260156496866755676462938732054170105829760324784836591317923639411433226810718008674094931930482208734699831196386672666202168108457272404783692142932638162131597322728056038943375858521663459063249254088275275030454185469054510262781487027309932038021659597852968110626352948079771978850867974101615359213636427763531854749140727106895426918799952500954484478618506297965611080652458616576511438403785426059009225507529724234537822162374567313346115490298690826647973228805070972845603193824235654899598085828661562612548491136790619546023115673682530414705638368730565173972609291761174983058214251868056153307281936905449047960776495605653650279007405816334442123484322588008976132817517544934349846671231684545227163732618817835853908321205046381973387283554311933736871584860755276377976129246576770619533210226827661111184032556928344353526401057148720255379941354668203709164389796750632048669391481770055084604799485676590552563850187486113131990974619495502083322807580360737038473825352728998343372936130042200975141455700845010969414393418751194856724408798157204379570517160691192205710742443184882675863522691413620182816510916055568213305413729540343994934174137564973080377842140373226592030829354343572993616304540368400456425688097272475745327885260291783216310809444718851642644588937915129135982202255647895805557593455191207875080610207465640574238167217446266965655362297582633612000912594484113453040088534626607536329353665166778214598657996126696663467602350309173083855489230494273610700616862770347592188027120456454423240657113945857185337151282354815014016814876551266344993539756748826057436644575005949809340675234016653434901180419598872159051728846901991782596461488181721893745420037529305431603004140416760893941728144617189468088732723580884507426295997965321739293177536578215563789823763923270291375186572749207992932361949783740967849519504826230478239521727133312218933393451689691908444304329232522240337650241636170825611975572020935903249318414391616929200903661834079471380264397798331996627695451898398404085313219734243597495235976819082769116275984469911175769851414745214506904492746624546375628017502991246911134110633309272336747665094088400393942585916413802051713528372398278741945536116305100150011470019893238925240232341996086735866582065678584760470068904755882930484991270739685894801434536796373146288491985449755302634099790761596477270706097512797294214141210000983877543832002055480278120303165329994646420014624438479591514748518236003575733411095887610060833252640008854384719988402258564677438106761032622737754590235998183423445643007028855360468672027468506610426423970261954371726661887777192367089609610311992231352278554915944426006924382215584589371428451562535263762910895008470863627269103888109623756986493037817926032801443608377315062827728696810172348402505946977125338479802209272241344465532049841371206286165057178895121304800599296617528432705705577171460308861368675668156460222931689596556169079614887732382138893968463863043659898078050817591932948547871758887340856932663746386188200973016750519168715056920258334211220433188778455498092672227813459817018371009168979608649367369909180315274280093007048688627238667524656102740813591445132814625126694902592976347258082076489846771873133656529311057327245111217924252391245429666935953852161150521830587455805419239529288856218322763611560640243478342850024677235022698395946107084689605684065079227241362098099497490641208393215994903468470022128434492417183147150063855443163789728208721529547051039812282518079384148565573799932095913590010416962277703964045947168203303551522157877468559418744191233100950339980275142080065989360369431288558061677556565860118406782562322933858778264239290960259038117260520090535977253380049053115063563143365344118695564959844037193845005928493420172614005388603190478656909719114959536871012487115538239998942840146655202839915555586917687271258140100135518960761401532875995675910657658641673127843465506013187894963300185182887474764290345388791084803464247416690507353305013769534186465044345669461210573159586699272558764426623606019790593749093939756574253959984509015082537807022962572113805391408236585118642396877587106381493338307598022306246665009288860210255742407399590087548995518165245049893069148012144068753418907620143465118590013834290565250655342637745542884597813748964026060932453669068542243213485012688641199624317605243059482475255722199259236644149940892092364543175491385173436249936292935188551350487284084385038483995915101511661814934666724190823060462578733904202833471898558538678409741993745680974882890262246406490250293124402027957302029846999518628442287006703117455928374167819147836701207014301849937716938650402689260433945238107892090485714277596481725285508188154374773074072611833098709155635998485071427674385250658876452633969093045922238408212386641663893127769908019976785004700077728496132150026686117271993646545613614646802036557834286363627332267963136319008565593796370614379881520439221945710920744787792182295471556114411809551558205483761805413722434507314940226811853222043954505649556479045214409971802893315607229958335384737189220515028150255794710482571095862906383282227376965370283193979971277613865989828162360468672017984318634663379789715651253452563708551130397675630132470291183247453829258838824854330760969930281593085623123220813404880068245402845653830691709189825548836556367399329397778658211976592863770542191765918401414083998198996710248561036788865889455868696723021239953968152188020987041584618651903468160408129989204900292451781916409824145549759414338579334027518823689330121577922384062382889327153174594501903565927524225165152660648792457025149739619496788172238737631023756351380912020443765476697125344029209188806020800778885009713088691527293454875686884412710122540213859987890863653103171206113015760858649259392088132889981855630272537351601191281892054051468215961083895273943256406859564372251411114999794056913854164692467630767441135953902194316013573103562821251028959570907499765131029577643621537890265389210496952657772164500352851437952779362218002172061491405397479046776807434451615246701002485492811001346446377327344693719538194037160317034405196594111790050373657417814184328968304335095469295448270109308421693754158659106918171977624068572250087597040342139904785886016772192923288571019813648936901653411982760912931658755173596711630448417391286519924361249685609572043490001972542407992776338607249716899653038069542038971450661066831209454399952333663953787022195479814458690855910155821800715744264127195070419736703460545326925323866829461295660712788303521462396520554017184545211419480996996149721839000292114513175551746759451261870322396104805335445870170975701242432044732624656891956280308082407411041482182097802925403132225074315547356915409831464209173830551564130967732649127130110849952971394823037527070615714843483116903550539744331444738068021012813790069985058216226247500498836014812240011155000171777229941761000950870253198544840593936883493810477254125225681852674079390059770009702065176336414030784630907826775596352477043375164517648662130652916106045409749524709070894278966472163808362535496776882897779337397075907159698030194382412995118469857659108370360747569581209582592331952483423451929455012381644113193372968421317619183373975396418885717156669862594579409863151006343963268534652897077655547226650160599009858495456918505126813392053943025542642108890846544704625274352879461188529529735824839977696954503019867150712390190716016629045694363186617497178845341510686149340424414960156654166402504036447237829219068432482475406454980069157610779009023297038884651856799843581462792621764452870448133951509212664003906373606917622327019411646880778855425471151699032134833137655999973008963949229830345328949210440358613236690367898276358318183504371018764423952266766980718771640249972436857042947801307110486491846274020678853238059711310851740416893612479418321610295512773607825976269851292118666667259241432271248258212965844635546553610768392798981459052128998329724904014496243394380443253761411743270646306034922256499080948686234335317094134875632906225640494518608303719027406780827713915126879155606493555218155510921471956329156054492186594211882167571980727766889568527974146886522721951236826220433916481180847417886694937034625663561061296161396715325923476602442952194811331685051715742492368512185319953090003081621930216742315706244099704825480390039246949710665794986920100289074640184792691701821959104722521544157503876101271936885195734852504871199946408090290950803557040675026130232968672136750942621683502246543481060802387268869709712355185101244211426890194104339332486968933130001570736740363899530106407684958928429257625109756888050178588280457534237082434897150637639714842284643186162232879635439203634850186060621795917841215403697529126378273400886645904658226701768879510725854456606605696767723966758712336857357335519485177763131265560020957039018322098386401900534670678196673133506358923863012354116837242994723478879205295828416370448049125418849770428208453987245053045447740689266912601313255939125675141146585614468001218741839023347993432334259484414209678130119029013123185180419452401755256834292451086451239683220577886292560479888669523201615086410687852084516987917327513140910173908280508986501534920436511340027202812935996592713388646896971536404309351175316415658770376800835392560519161127999003980616785819116923785899121624407720215698283582289329698326645042616901456235875389103155116151574619282428066464667895627227422460672105934664754664397864294809321725024340595226109882210821511520138549206605363088269988935442438367326403121440872576789192934287627586196142113253922081509729995537817868523521813950768723804909768790331842859671328305714096232406477060762616809381941910552932454575843616951944679891625831043461705280877254225185737118999517481888864920879534665755183890204254350518342256167672269661016060973121913654316235733473319228200560867356922598057611086164521022210466388120944663034313664779168530810900409518288320774883208860648478444444107531477395029129373377239870012311501810254652168401824082582795397128928407132904449963532030698775317886944419067245152613649362096724869569399468902383013912970988631591421289085372701493084420793580923582913431120742761458480935928015192446119564542678667601616223043515043674445706593057682160317596041819292736968921078069828291314232536645541278189906948609854987978016340576341716253443986746585021209791983981649746518273228791872235978086085214647232227496077069380693964707650547097166114218023738910035782466819651696063744626705849059693948011875691011484679381978741522765983314933317965124839106095347101288880244762661204668818608811069745306241184600510568724753934245746696328309434298721682128606189206021284971093268270791388938232475372294203845953989071425852444614786228432248269099646950619562645578388073324163380248818130990429278061655046314073455877287472709580372084810183629283281667385853225734101114148667432518771721010333015664551564383970889394000658316833067667759101483053553132588884970028240623416795608203689024819692379908413972852004711493087785779396414650011625308631315543928629125941249968839875116919358890522849883897012586352632737073907703136615391534848024035824391223912968061342444226829558617930745950334243137897213674122131145639060301111698637718924516722855854231377099220875209453139602041746328619376600916274412996715657806107988456592598753908709806551276140623748474904708249325596442091657688232644436198860558949891168641551375145280094126529352133237327964918587167228420933939897287558115957880467398532747062180750039831302946280471490091348823318697459174463346264065037807188315923262924996618371069549964369329984465573451366435936192724053502998912276387529475011810766156687058049441885779417823202721268620371052443708916297034863368276827359542018889488697927244382055513643814942963325866136869121050303368070615141517037931430049385084304311970664495042548392967664772662445494959064615501010150736789736163140664690991948008888225545214725709667361627293798115765502292957924563923420238764654371020100739916399703054298541017726749101267838172331333323001345192071066075021122184130337586207323349777930896069974746442481368553765892344151855811661776934596090666230224640982286636786722461821807764908728391429069417359176058875417010564371986530053012369248300431472185881675354280434136428198033632688223913587691667303520399546433514861353165329340265725288037790222091055401300730041287088581699654008927685603673747587915264126054419134188872892513960823391328038701865731981946102408517073331414693899387019926205093062054893292909155325659864077151146185987080478701775992963353361182111897396185953267519312937380670126481389294295938872066410728581873309926091305710375101613905122913952179106295433497159364220679633567096759556987451555124800695919831839925318273765604636727032148676860941465975458788349057301161147509589355927941803176619824683951183845597883508795154810831610581276313489416971210022559646212374749243575698383263321159733523338677974744579376383684257710127237721707415132402292363747629384508365556499685705281841241690850226180769268123794679474036609491938106485633722100000070445839547095125591379562572701896637187846240004534000136199863668598188186293269593744612578983658345891914338631269938224351246345647756341250569807629559418835567546307036765752249776130268014325480366904485821033261385217654821393052779635308740880282679597023662911761656035754253509247399683996849580866121741217878877015061695944084086882304127212949183015418120896301174762547605798873902057011797762428668605028140860260345381562935234793960141450970245402333094128755203657760641503890259796891784036515611231700158277511119803127018003558320935920524182893662483310552292167135666819314327782772439596340512492135393738805638130776536013179961539217569194305653825999442662136090658901201797426882806487988689255899785332074399507313100361364667438918785645567371300267004765023651072796463631299823560243573796224811661997248788491317107566582511437108025725749359961224358439427857441172145035443352205431109487131468305792812863038700496996391869913397097681683245662891508617122109222902550984291468412047374111405473944997993771209003167951317409135275162792946725304439143140221985413132489377455831775597293919271819674278005384850008607143468291825796276248158417413969401811411485366086580037977810043543838140473984791196208816218365532053296596953099818437913316293501611989429696832854178640553311040036517498741708966709496820561857564949718861370103359790498965375350983064647264095026565788044306439897562906201953289679212933897995753213291432833585610722199237881714026997120488056625314903298580460766146085601235138884977334074563147800818185697091779019466615515042181846322690093245687298084869958505722817045952765486175359747288301391708251533144532536926971526852788128567665109160939823778858356027589335349932133067435179308678124875707375857917212425316599739128254101081675218387327278677607413536701683663853822364726607250559259307998527784527367458016404474870843306659034296491373469160766007258655772349405139466877058242023130024109224407197511367963035320583180709455682563985506581347675392949470734915018420801497160905572609016485580690522562840869113950252016989680706223214719725024262313173321046898711853084453627824754383694027809418264682854527543531182820778140659159463922286276583614270761384396801633648601269005269275019231334176925728137925804096309190241759274085073711854639217118739499561787610861447244831289861133030384688469397056313437848237973291227933927132633354299586928427187284173960939880090307032933545148142840740442150210107366647808946748126484696392571668396915373259892202994143921506300706585065363679798792051681492885877855349006270077324388957759551903691466293230652072593061341532805468294817518718101758050075642713543100350926171712066055562728793071500496726962911864321526786007588006338524182873524717133896638665433535330450590453989857781775538544406407835941544004622841002956477606307605761300163211748351407441417576226612085746608686977508972634220050851120907083924319976660984107251703640584698261157382312817195228518648267522624478932419611621440931792600726930005093880779017088553501917633505309274504904083799328537816919980017587601876972917500759559764021234394644953222175447493507415916791151914142340895741011548745126082711016615662165009447553688757581427303141873677760338067458524985722989270455601595454149803257450390827915676621280523897973188573695766509067642646977041566956045687259508716256512153031474468032715135716870931138703515261197084229033866307057920646484586741976665263693002161084295505221785666388018685116539171233625461355937043721360012824246495887856668006709140156557942709016069385799463601394786510885190605426253749948359764112512500921859176158303534001450486586402495105349981507185232676630910772299073072581182720401173866866789870966303658715994137981405370029048249777419029640281997039517304364516401584709845350934272232973224681960614866006310679735639620836451073527678102264690772364866664293913462776682601459527407219236701805639590718504160626245451608647116827033428705677962971520977233764439023329735985860396642852382505033685233647705259452812386495362646932871274047201387247919101911620518338174662914344803033556061471139945968735227044034790074145868340104856482860330282839061975158107694778504977581231719037017657001373730955344543574444241834586433249905723254890317973758178123995127746112508699829594189508033412546414518931726762561771089965029950881762916213877960429803606780636279464656709709745717886682732761265618398142135301507412234267137797492472571040581806598460124115833279477234223576936043760302473039020198311277350308191053915615340111271101616075747393296827119484176626948853868006595206778144568588496461194680801416658090033951051601281236470992387327320692220372093943810326465630046951738741184784398161817295147475257153325475332352209006213788356659115509340578723310690094897693424456375545879888640784869791268950173775018882402994387182819720129447485001167417700691315917290272600323066550235193436498348276584997489042367304373907182427074458748659370465774627989750728982242663788711145163633520088101950639413976627662847428679307612159439921102710623612774095407287810931972151902876377789641904504869876885147392615571326318571325245823774889143508566470732427150929129508647561270465416098438631996624170489194658220880898507493440624891354777271646650908933977399158872933064742755429737364768186366085516622881621046517279551963790990586762511311796155299729425843486001572561399924018613486261571890686040512620586295198037288509532646814528337225221138010446200760346761502811828703808561549010061483958084099012135950561339319916718753682696637993492657806684083402788968713721108993102274229889695261891935096663919687810796807384496689498369144961483924943309343753628384088490685676522460163064642455182905921142857713061901351729809641192717236672516058934062855414267297458573872583179467182622784549656589642611064713450409590297845595613995395880220534167166749737677651750085257977351963169367280628819520318701304652498291402843108008639881702024302756151182409592927116611344252285813129268446394629227394823001569166651358156364625169180631625007470490870143775744352832477068106811297128786137985453514527737521113284602257525486942212388342718003818905537161050727313615606933140412285618813320220980458596812383237121075132908376139319245154289249761839602418979150868474466480764896008419914198827637520618502549659190335776073702334931458178684109231256361744944942604172735119366249211565038119141854921124576085828872135539524834679716106220302119937305227084757138979835683267866616543457817028219054065732952739519591494775106728027384325011184428469161510639253924564426936944214700130595215657731085845462847217835006992733278111278523521687181692666817616339500152093021389907200384523017207524348704868022029552607976406035659481899189445174217612429408375014513341627987999204559189564237874352439686078684667641292288631006366019972837358611510144926847850192213867156450744443086221950840797878859339110934766949823886527111833133127239781324297882452604179601959499824459408277409466965876493288215302406434086743522205714304732658411423596399962693885359551862811189810656593627686363030297621288899230774593185742058234295275313807192201014534607619254071098629196121306572818898393183034670570556498082216815078925941298057609495955718261763768326082995761213925326172934840108644664821384830119661365333843227427506191989701875436568529236067621433431841742168620364936126001883095228368652803805856175032840390744153541314330086273973743307900539679124582039189082542800413589690158210617223756976590663805153204899748582059645265523058903410590971186073787790718915442357201392176051859918047307896852736221266391201484397203007631777445885620165794022352148717522950727899703141646205084834607773270411683136243666547764034558539802888064019798968671992842766984650617916357522333248162085026794888714527291366996103891940802546951922510273696993092736905347916444315045593285247344148312618523703521742763662804036599577189976596725763947125728771202945884454177617449489562558792272994683064951215514804572296720066146135324882880653564571323982481450554962016788243550734867845235867460490841162061892284692457795779811654983937160728450681217597971362245176269564399926434785248345329437064214389205035163205418280606561050373492267184374545798580752691221920689381093721798151683665778383440598650083987570559662996945760138423022271931979964061143892021568762986484087154230006077641638820837456239660370031102466977857194208063201107638420147992277492687568251311687995799617243441912320031039090586767067209325937492679207277521708871353545814206203396801125763430685852654555765431945932608085644650551119627666821518553556102328954769533206702819575743697877320693021355268349750320305441263066901464969774289385378907380959253601789322359473636880838680554809808099697818188222022066548902677928733357736563356567155303829859497596788024382065742477397017448034345750133938643316434213024060086419626559198016016160582794481285356004308751661582892859721307696584266596617258560621333985017369641358954582383192506409340872678849856641154611365711782822585189533011620949032354137346596886230351482375603414149941604399062953384201812615079812316096077296327288427066824639280616556428229391662026082449538377803433034172703842561171736962413224998479237156071679392469017338571133914859851662290788642676758324219212944785520286748689816189400052667545365381501907391721163666422397349649194656167913553512729848460534843805484853532621089623938100295625062527441539281385459196123267146388640194223604278698450212314123332165015006330851585778388445136104941693504100416118165522715817149660339859813712445318902700368311419782341642277535555561365760438866897272378454506101856738587868429934808319749006400949847653904592493795622130927632870828202120386309457121595692588437479242982423987473182624657285734180221880603607260555006828328262323956563973933145746659893728771090510731419978686018304389553483678118461372222225899819381404328516432541786540426008006111062174139279166777227808272442347599381590706514486969858112607907572506939119358213483839447977291030832005191029796296848437626934963153391574900451816943896638507515190780771088210324892158140285971989880807187528900978125644674374061295813274194579175954372287684254002237334952171465116688028983801816484465202210918916260576143601701389922986473776860452068341272478134579147583376371095221856846080779628111926772028973137133826544247274473328596166126979639477428792355673396865088231211008215197670019063752429456150920480488580606603863339476051209871103973513761196932018564677433342104478465690428773620451073605369395462665276269940907359917478919139713920130127909583322012207821099299360881289845596726196142969061513163812203981342421676868936355459512913415120002897234038098875521920270740914681515927419802110999199673750842994041339277991541319037924586442545714362056370557602820469635467473897266549438156926060464984600655076934935563306397749799817602813641594121159018480312664887944084628753404676396751517290637238773487641033993829283256758198449498041726065442672184022775136305034348858976060176235915758195760032744551653747781010233654653758922807021139564819400095211761002008620390712812174558692441714106837334326359479367051097397173780476992346481236498684054789004974471438533898141804954602514002032838650480037496883837938251976074589618609548822708916829234900837394324692469304434517968525833416824345001808742271560172068769920831891890801993203332872614672600391419197227229911239209798780267977187503957029036330685702500423748104243992826464063650861118580626601278819922988500398697776841113114839221839353844347436389098497991068504101449814339668713592138030366083743189033834349388920416930866767857049817409802039099720716143738524626513205873319289792987205899879008590733602862753229381030210238912105473120516607516015060459228030752885696594903244807860394667654637921304012864387257633805030495456558009291134585427781315549165365207764220348238850454096730577077322848660386554243218737917405990268829164785601142480917357681905114577428604668588198939689273642726426719544513628107687964017487039458657887737617700570082732107883749575528552981753371075155420533043929103740715996546368063057898833056909188065431228431735719089745955456755453507203857233240686641594564746709491574399180100491557434095777028202211964725896529083776502803194757284900054497116660488269053638439519127023319305145024257581423272203650740000256908687343468688592863408204054787374006514600207627117145968807221484224249635276660800493296313162349769179860386811632356154230259775104536140575820206524954557769219410737194356493230842946021548399868000980796139927021238963180493128457348516921606211713774063408087652993837473881937993699616886461613352161472891563658735113646913030726822954086645607859034775214097328566840995771469565634252135276866605597767727860239758701409093208410226387051313180718156572768426942982120935348525747127456420462253893665119748546060383063638350671451062149875161867184220168212801727648304987213509287108637567228067504192073693264155007927539266692350148952336780983394189922264511547632181956938159119115065493720970069113651754339007453456327668187191027939014160302359747093822507477893358813396163051486120077914970700858657671890487278218160448358323942936793980487664646495193085318640930411069965441433969757246899227507892840375467903642437609676671004398097888723606252167283316935427255206605996108859926641503212762424591247652798159405870260309098641201741434069076152866947859797606758236777665791565445593190970222081756244576127489750974826978807928005131961058257995302251492521228952504865691473363502227089019961174726487796238710919024322106582486929803041248446364476567731003843495953541696275658177122328105468826294155548514552658722144410065282051709044290402065561376768653421771786638796429917639453923652813432576118424716067052017568198473204881757864416836682318246928519654771083702681976249870237726725914455757038119048673409617475157564754452299991320065453578083657609176606760434099603351370086739295174592748404280002650676913716490644576926775736160155782099430210354798632886698338297689765134510213499347594985688140252923238758939540379778605198245074503771826622207799703582173638528213318945247053045451828919688396349855119319828298662126968931012030055225345895001726575411520226354439633688760067502215384815680996850313309708709135438522606813170196067433000517216825299363263037098803541932531563854947972238312115592861376236737165910700839461048357868018492158260457694608289590601861661327675648477930184354415824698245975976738426372188933178758608428049698577230056260048444488777236859184451851107250731340371952198129601832043583863731047949170842721102185008488564062914097002286070085779719500243287523973624162103699177717570026693750872221343190239773278257518967610422910371992190761796656937386870490679466136353204903622421090466430776129500481990696184695970109922547586185471167390311870447399400446349998075300500332079491615114288081329785585961300931670036461004929258317682670233277840622380671355647437638193380547376815331331910031160339184109708841380898945721138188596311070449697975575515146505393497811898461481873697345192756870327364679591130006179133901592949831597795699685925809688161514746816170582235232261966875462115071681696397690238510826145669149217582634198760094515766641006391590740949726489932290779393756836777762390970073159030524268417442742562393208452515048335677399937530236873813423488670175382922255685737797734947177062178219064456461438866647384377725673153354911006790086465567745778036712388905716826642889759578554765530082644109811949248038173699216885419927623823916793530198333762221050265886709810186275628808689661638802718282431630517664999115526492010433388120704720698741160066071982805906193495656231235458007065764423333076206352746344263413753150697009472276746698464861868484830631821674154890287186761433031746347450891443495823588312869163392864281566384399390300872308487569839802756392478226298049929898142118971195723339581714111303582869614009901166344854570037777156023297363548290368481751851063858887626678378779892754737548120182703776058371520436908496922703060855266673427869952970417993983980521382833487125126375139906505040219046527774376957442741508165662783063243694172560150668860272288809743914067680165973179277428722932116905571283194594606728457325407095423395201245730412545281130295238973726906361503364220156942956423491813741509570365140389644745635823760700650363730296475682458360271929224906482908162590128252807890925125262701472760926204508716502905676238681055694513727787479917853437708393811852974061634907537733972049515415784366824643384884808619747600354680605723248389658536804275738292138871607342586331233543689411012660821528591249119742113552401882893111469875462963748475747298343799440280967971125896094234952153814017509407424788872909753880338327266626153315147350914225888921061715546258499060020148438138979296656267873798264177262728653930385496186299973318955997860766807434740156940403405791852763924488989130299960263567054812712704289233085216737392969260303095300487787957146567760862581888836104132059911885362538350813458994493059336236643947363631059964571935875036251917607766236414804864634070428789280573261528207098364315155353031491600929898729696725163254679577102263226546576193265777895907440041628201797130981202034772320938695846451629117034562661833676386323252106036924564056908999417579919069542585566622021971928208344004969296023836760607500936413446922599137839482004730448898976324397639204108652258476475677032368940528787853250681480739384920308457888713516034210401937676957884834293466050294830613229460439766344422724442670637348623523632109770278615699313029548329674488245409970914938723739530124341156028381897228787811971211494025889886236721818685921528240383259525874986116076959451362658916497608358197143085656047513349354739338450129732311680607989349977798851284081949752021488196505914095662483140029462566587175864356056357182158236525406323870351513547060682045532179198247923529671888566308983690407696645559286868018578213390248638694648895307948891537042949613192909485086975244169735349162781589866055315497217570169167989662262767601300881918950967548847091768283938916744304590953844681171337949323126448635704128698700929293793253688372516656084289272117141587251505362804342001572583843391896868185793731249707811185819677617204078232505208062193324941236514739509558941615920464941625013993052807584819640854647986965642993649813826939960457578230313277979723819174118989502470323093024223341351348597999696655909505594858217771921417786500912906259106672188284571779258268075541315366207487873511138694272108875290833003209147753282495943435319831525419943456834252695246993826941820326090958616009303667721741632486056166454962310733798655781205532467087107149486879701942345780470661258626848389758169234419997992619509124203417649424075192536039401223445659394056591910125658482260172691204293123554372520586518620076658585563706462198682457713602197779370011145012251367428991856284650555900616967290875873260741908845920626913098729649506515131134125677402628893329034131984483345391611816842044018349718832886197076175916282889854287816676394986559176518796186135068770034914893865523830991502129659549088506755852020396389390745832005039488213656392601159823486148417036271820601073806529127087817061555844543723215136796490167660858257499471174860622707929185166549460661282194901477928048219909001061575714232416614482963174637171923193757729554832899841771596423393761903835701770570522707865655624875354248442263113923236240822776979783095955119500274650592917120885833888490277294676970962149410942289078738937811391044661871018885065663370076918243817324302102745649198055613645712080238047461839796081173220258802162915974653949412941375228610698914447727398780159887768216642448974691548791656410794261911078672496899554103936980356903647366094470767088309466508220709800773797820349353951972254425704946664315726808260884609351619939614441520280910905860507705647601032223095200292234310470733840267247069084684696371132661054022745501478930567745782710428886441067333994632211682993800863174601926379143817379592116211859029713936378858745094859017413829727652655254410486450281772654977425727513159821652446380190527128408038855294003923728968298956824310049482899277989547890797818050432458940800726030181434585779778567399703700841768926275935661461800341575562624739330307210873139201966568273553134223453024293498813598164202288028528145520860201666650937010305259628685182791679013811211753894411249125870268608453874598009203904331621727948440841429507485326886480979399466256940331603307560565358177368828144835706052168527680516170949546952915812075705641539703482006008030214880137673473106032932808603217080426070157834345978092275510867000459839668609755009380200758325191679031892825939629302742503189971549446860267173208488864364747029153211687718758321374838473973969601402150073043099562566154783379016518607151280830845874685068570768350796521395635417018974473709855946000634972820403843582988092366562421280044212969228578540493686878195511115072282910267388239399668981817840618652121110544677093779781212721849768127945269438455807646615409860027760982767287127381079949565058456384098268608087154411522753783507962514229906568796818437874548899927733667553882813867730992670498112759811986615186422448402400889980251009635931587166408713152944233147354040626350088552431329880720042179343847450881253158537279563887933965594221262703258745093048664516919494401791970237892459185431586780668113249603939546585969660873547438875070558248817619103794697007177625624517719881924971344429796237536454839849540552199868254038222554400436338460517917236520924295422488266307774444336286232402575536847888031157177258051721440208431121994596760064865393050645385375873138553851803678326121638681262517174472231333963896887536689622587980986263395347909508091498164311646695775838308090969522050959610941858410654153306400770904481851130325122911690934888738437058922859426184354700428803510541859365642365001558783718280989469549959266908153062296019104552949846670217492859369308680216840836323992508304037270141599204634104580854827894655750141476425986098753480339886487840686824869563102382309133244543402474897768114310164042974442347978549388109624559781512929144550994618582627987796035493771960327478700223961368250894557268686209894963753725538372314288753328233453545199925721949811167085921292663981868282016119795813587395539311200079993606243044739866521726006986158571646450124542015928996095063559305200378256662575347677320941829419992547942396534464596328177097122518110033053834598655375251164865401547405346241716138717341658546802790515135486535292992818160055887821944044353618999005916026978279014942978655543488266906283573516721276985155667227328942602578084438789920392852118684831853775920025431369592331743198506785455964403661506158782501523535745698838608261128753707974089074036695260852805090889608287135164451072891463600800594471155106013805522787801244768755715342938326403424289197726910664794674179711252435282976524607071155342165134468597164778316959500283595560726773186607317707377097852938938785939102412856180100779546598452331337252244985461851028105568234318530723798157707469512290244366524847371484688473779526391885766169234949323304987664212314555050547525968467435712530208042464599840133391687207478633821243701955053731025299000907408820684405542920253576830917048249395988631615954360237644237923042925607661550679261859399858141150637946987579237490035013427730000450577272883823653221057032319165167508242844892265973894378220735559770049535189308735443594761690019237933473423100972791524850308449245159237136122768818847888108091685254365896507501591823210936140032392458610120378085825957242886936148426861323969897922597810797732467247002291127642440565874403030948745247747151451883513135402438084861727015887921023258704730373794342558229698887216143885431088236238398887901398194877030102619181695497557189466529479557961500878697417270357428866052851311580510442623944358760126650236684767056389536963030003216290589975585365368968482063743584191808957842102691397600148721690667219344224602512028677338143890219329350137571942996502008689154766660419270833132524247821790070152795846633257387212232116023221331315520049121714033384944401184853358300801517948450360804260618014813022004213231946556620845758070368399691746818085195739762635682581191171755346482840512445190879188913797472104316248300911076811558450370947734086490366953428072232932396092629807442179940620772670637231214212611620686864528885988476670246977718629102237153444344888120264380928285868723178317047026756713431724130828307031895556162976207848185217098125304515605991837078838154268063249472332237408931694641005214522298192393271159502982763878136884435260775935414497018965801741899988413253320769972283923329120763539731619107294915408009195759911702598587860928115697883732049090613430338957312540957137086848948326159272939576306766896293003106686299458257804872968819478431476799211890529288350584029595473986720303389424753491481466780618608370511693377129352055734699809858072063542358894089962047086770406249031801483599274311658925428356792204246355393019673770376593447656746043314862288863563592515211698759621708889766603955114153996549760908947568639393084080242564867213704543730221314364898453436859909051465576439352777109490399942706531929148602912497925422247221957152776274247048840524413733473174375773923824741017287686447591215263682427720650805156024884391446258340827108375447706610844867759331296216579965081748706753687391458244699059464665422195582795405973380281251466779215025047524024746996492238137199773885362626986362369627260449299990427781015853425003826100534055555207245797661760034615243815496111813062150535854655028383747592825467760301404041235045979703802330675442689975435486819108368095738230350699986410137498165721669637501572183416842918320860243770319732098493188473924300489836286646339619053546117239652134374363648259708103539091474637749720137232192667070509972830293889133819527854479010404964171235531300011621418076736612971355114080150197584598435029348139479363013162054378457950090814541649963764297781718632465579084995885564949478796415325169759031860657587939456170717775580058370331233331021131908222481823498231457400633157325141713815472254515555918321842213280306934020193000405226964790888318315118587080104254298953041065932084555027768566772885233654907340586255328606373540168845715505695121394831765099544942585625881975594608028227959186392514945207292421759981484062188856160290292984042000916848832792915255023224376101144488868186735195997976204063255324290614983150152826970475961370619716023543360574831258339116799528642461769592431566590102684518656180972692755085058112165914411235945385955388027154769069266208412755317896588642795306399260855882714901544689350915738666059607479862423029236447613402795185069707396249984873669861469696403862192318573515353854654298780614605314828115675211975433657495034910227894072397180424159498420890729454515284436521751164026601112125499800346731767173395513583036470988049980424445967256048008109493692101229770393607605698519041278940148171333864431547304264774376602684763471668757680594294767946668526148017537343033614381847425712738456889878908906590690883987646850788949467646431822043434121660965141048883257980637833953113902644732351741037739513310273831148423028756610032361122011520449368692037324460627994587197087237860833113410449205250981079873282926655896121320659907780509349968661172886107697686331271532543707521016824392894892009918999336067753222724217643365663448712701707466307653396217676088444231002701521524293464587362432699689016983355200354128737877897712943314137168788889456003288700097572327585145633011594362177111931384073968671019005846824032871699498763363165018039871951959590286684142876094268792360444839790459148778376919275462386495833796818208832950313519090855225507044111677403343603959144381260767768727808215360663294568578939848953744609763205780072687060376924649990524949736089500587195019625764419574509334547801445425173194075140372087677247926549660372953815365778596355291209471315637694748678418234974644773686731739110677779620347969348342121886026408813249363489382868296463936220465939813868065140229346447907416049938015049113582269656187346430726054768259429210265666314664732436838749363841788470520602240128653347070595491860650666151961029165388057546908903980215478598142744924357807890543526476999183279027155637061676199574021528249430146009391387329158925526890532455230864814730742735183061360724056947415678289713501429472247760051422190702505252323155854336086061390127290214890933574121172116348052768969263116070850270838823343339456511291121040195705457899113820640903353697609474510532586010808079359865712023273208703289797757486018421720519549000705661088121266893455277928768940034428840354689034592267822382271345902697727689728836238896559256635054350734433683535577338876893504079108364326881103818026399706400076647258077769491937487185078335479796834001478778641118485578012475927919105917994205781199440268387480335543520270187949393255909126903219706697042629481720170350448315776977980442999783003507905069474211391798962370461201108826508999148063544341198608195701652816944555494782505477579440428890653317880478893847789577029424352885528243788716102558113251442363996320736803808958071604124061447590330104700545341361883383563399758216055733851919971474234273266726269902646584735653055151766944420485893700763330947924909836350178778336928959859539826180635828402364415256176514284801238132261484157430719246902605419836149970997586063208725751983356965514800079299415853767838897194053490024880060590612763325726310201430433449677766877524621217252294308174726399523811118905993587853027051238310937959811391549202496069980727034121065709759979826019334650757634163395374588855336447177784110413869618850844436817488690648516389364828331486920618638409428708631548852734215088099864583716075305221757902296406073789480126021307178900505168498745583822298665126970392989085483221429899719580839534379487914811135550590454098707110921226749002281325745304226177701294074746568946686198180669595267775165485693446918954971677967087001183499354692282755187239563972708693665093589405133000192459314690223837440802683940352584418933394739415298366150854079646807048922537914424822886436934071229106052024205178209271656215010948732377692110479542661727220286838350456605095429168468853546628253373141483352767659539924071819682399671483959891378815864915102406121723963576538087941128648843384812115247434885475037006913591343230611786897950388862987676501175454014809837487497433940919144499548459720535125312516121232837303274392474311718190588504926400316668412598526346221144343274972838470851972025471349011347802959199985948313461346131047309126713600671278847734699535042295705185495459293563199690685956640557472584918257034147866561653480503163374375755207041855459549155907841222745335311791739020027229887302600141261932865779996911420107828149001359908048800234913616767412129649478520077451879188564554837668637720168778798804655436512137599973187292283124533782363723327745363579743630460137763321493374855610108133720420551938070268870198137389722993099278160314289786653259492622473575232344973407357770129471943027063867633586568113078127059440042721386278209942347280381731083610656082053309885940167181031685320901418430929350663167511910645600417307372480937199412722525290300795859305919334498371603618885498718785052531046605339653963752246835355533914716229272130904674284728881443129018454578899266657528294087482372066373183976806770310883909745070726275094218089287223226539347915109023420302793882452448151353815973449638064271890224836083912138732674208998668367859744283627436338829836391384149550502490389768408634110112293124499287512518876287055271880330663773521925720508159922541325204011239544859142507974406626992241919635483224945476561489826254311048400594863086902902822305360192671515968995971818177040484920974855053391116795869288026447466016441791210869850161794852255558995293851201360479031109767087162990585054751920130336100496917385880929121282580998779099111896521041492734486530745885187461380427166187329348721218244804526189758782679279953182787772514083902750040581245025546385357275235967095835298062552439595181090718454418147506169027077580551342910408660415419727864527476631673052284419306128761069603409036350632731663740090050110883741257137128610995446909366023908918931793305071642120216089859227645309514584312974465977354031205759461693849932709072501630551269351266845663276791356833826289277421494857667394596017356280641449289395214830809676977907425250804334508121583209484574434947447498227027169725469008456926559390331209586384093811990046743189917601541943248439623731801609855854320985399692716494327764489855503426910613446132544134740033582997414843673075772345143468761213091920577334751269613863562532172914939574070074821582868500109854191640262135590808758663935799917027410659132047496212966492349961992244421333326188276109992507590636277896881717346097348904400799497162189776725057779623783941481830325698549037576993485387273720094381826457821597551848065555935880458083659348335766611035528673388380378259155589998265197044612072782400418878536386731169384977033832719141781295051321869063031578865076573709290782131004361918401625432523912758864162702017605938519606671649719875301445119158929499836378997433798109874016810263312404696896674978023327627118403579975944345424020003048887023743791068983356205915072977085975096987944173043984653679055655613183974979407494870522642265481054614993959805372022515513915000339073244496767793778173316357494316580437679918191697942105187017100795006453039944841919082898912131250944350754578518759176488519614838489083455238480463257865879138428572990555464444456809152983894130379234225938900205632281964254334490699007050735703958144002804578112024543240917698621256136657902845573572919213793312725595090710253471329699458681307357964199090839633447026334455138022737693807092637870241979751327564777073551882640403139576119802911285961499758267811284181451325216367625440386481463636900470498031909536377436731825142570409768618343949056230298791228922936545212224515288266055455325664802607487441070289253596776163378390773077606392434444806744395433644573783175110752944028594003279139653665737553903186126857717706357612192475541422094123001553330701799343863373666730892858521781816386478124867056440112371698711538286293085872812245988179976369936978264794212073104618863380053487502054693726402820996929937220466860122134383111281029325500911222010853798547007329235628594058797273510925283057303957749000774957502955112650631277776320814263976918523383554927137137000715819020313360031379310247010125583571211250781888484327501361113349303062736263072757822379039888760646702513432878211427528613506520616195633690837059867992568984721815263615170222827758165488024367963955361912171455815329771614499572553037990547325166163622247611176170198691054398268520543737044703257461536775947762546137162886038540378354789100065366129386411685843163373774904869103116565541688978810694196277388452942843526732893526622527102112280752167253445647700871820455211026388012520915140560076904131376276668097136431886523328382676515392450951232597236370649312548464963315385527406666077778671414630705269626759229870779677303983280460682386858690668640181820333419367559820336993720157902725545504195695279167035389414058834251978763840616376394347060601155539793956220614556253475342419901112081239422749302862064869845375261057812810434954680879170382287061463492952190634915415704631809197226413745826046903449460609478960601418540872182326218669509122629200789038041046702316284382592990657203985817539273409255816561520611764705407027810686398674359247806808907732598791034738219291331676760560947409958425892759264847145880643354383324120456706907806288454606202668785729241772823788394958883697850287413129983042908292276330300444299550171897924596020813372499171085684941168464253589683623746197294429046175746226933078485781156654119685679875719995813940763761501970371972477011782544124100854690824294439572111093278735227971553312415074290916920711332836789810862294466365780057613947187772165562284610782165689556974314981839157245702408760329781150588505278024291901964822662379467530491868254204742569658189057618739410002006375798146432402730537859437817159516758415332379035755347040450659820317735122673542998565414864166214671518410217374861150945027923648937714770177539574238798874414716039300196848575750751903620182398988924669598543437041157887055836980733659757573910695919347121660534669559901293512445364644247449371149540849490410724551498675898478217765568979123889405477251921545554124243370166193845849966850254130016426215810670419207062798164943480272380803784169865209796084510698122389716787302846500785219123038625942333424717190042006178877552468389239737642432283008541977877698730463192281748038114435029860888333480026278743353988880715295595724475559170976808512696370578209707370328396606037254487005414636101055678592346743228021748366288010927650628283359208061930368274280871484330423907441169418191887308596294782744343945178736327327853957076675907953461639384080169080993120390647738910338832821191100095768020079564899359192569398869980888762409136836620138317536357635760985772307290393171307987276551632057862828894642183393441613357971377704291345207792221802390589775776332408420127693916906202430704293134731993034507256422474225424932011773461653061960139800813750566036127797380644298915912611553762326488857095344065883660643190524876763359259232324916572603541559874572406818159805018580791318426786653595932972459218231640338633977705861886706858423698689607882388145747925752095111959325791292888480985736996871193335684173022125210776229225423838076721197370973678263433709204711888645319894523431152828337174688070277572986656462997697126411103951559665289677770573251285948306354288475957874046740141363232720162164261992262571293048314414898261293026469079546439428716469959616699851288498524582452282836673161007722448541944683947719213771944916135151597155810324952017352331712668179873861455412613086852020576984606938046994814019928207304288066718208018796336701069685345536947362118530133365433820179429547542233390352392896385612998359996419407939948177916625000880794400034887353773204304760846534866422529341519071462249826427978507022318969934699499697132517877801333723534523697298804059417654212515085478895979955583788514180059907367397145660274273232908061581901675878201177527952971097860088049089884250863570750985625977158421897788895435137356628733400282235809458255688935583088558653350668525476808839322995990071617362154085879275370483033959233392089418385885970774445741349366884426697169872278424636102713596704145413651819639266082401992362921807420035948589426657373754981590673750705122326689752719820700150641033764179559798838103683083041822117589085209603084964678110565171564949932255894450460442091298553584972486419684988303130174936670266841539347073536231777546120981025265524113541563620755179572826845795044299092305026553173310110245690123387880632840159472225644466488115416815865014799458958278650971767400528715738449299334741982428783237191996535404682153598626212496234715393879430169210241298343165379066992199503347250364602226443104813871937331384792559110609589857410164066779583688415759207428956692438088371778887722804502961233627257987020720680488606040866748035716680713019289513090005276014771013261570134538745667642225596490848186412222755817889192904572586220121601836430532195258197191810620273840798724548856601684038571561133453037848858776053627848927038738717293184576933039746399956300515907434836232132598003225619875660900166455244360463380308244488468402288514768256298270963384787086595800900458945645594350268618127275520334901934109741276662174934448596454986269559870157863552009171884466332405913714517724160123632188974150179957540323235515246437990909984376341379889578927679469636294169020500538304669806969029929694652128918971507276424185038557327406369647397040118919103907256670045007046345409983743734663106740005194185205719532483541995231205329629641242362549942084069991685691778236068611071776153938169596293248552992189344930444566476867514383852260408933065966205098483147592082272575218433558590180957639482801363712279700151062014608583536169569027404105322326658560638412190698092181019205751810481812153838121990919469779434830776458673606605272579661892815911236288027463687988392030416598682774729600177627455456315921218858916027658619554168723505822218138316584515878107267394675212841286146350339207435646847364756243725839230250110481078214508082341220571326409893429495590221968635440802777984993337906701396444946602015640121094008198180838389203685551512492946651547236101063508544223178625909341164342655492753490354342020451901181989681674375866867945842650665056161283767944625904571971169801338460711323294542448469985579390426075215308244086006652119563195752714333911147285171938273340769711349191043327389970642790902010002543754758565609579304729535769421638679236387250073014403443566139510570406774870715127135454834940609332296190515746870372140320805172762673999513703734760464782608268158741084624472069162784360461654522863445176928074346178039563767249437585439671698170721815408413702572711894228261832979091307466901608927059871267387292489943846124887585000185946424156032938889129211935354175949800881355473608080885907978166644743656443410175888100391195365561340572543735598819906938935954536895869048470334141618647383657322385217497649798689982400327340583939962073749966707179912503684607567920472045530445036896651337860273768827639161898274960008098786542111748747485244022804407346749483961837087121688250293376374004176381775556754272039241575120212526352068556475970774818191003730145965106464171751274512710695653369880637094217966629417722456677327802824017194100525478197492160309718687650474164390846872603457832322481789412430945682735513766879885280239068049297838645555845889420923790092799390382835693301176692538558552791459454797598019921301328970140760284096077373659596621242127590769635385173903046289734953262173891990433686205211913641336997687843582259285667876765124552540395983612116597617439461917720270959965909951142223364942450352466424924403172645537520714435664190731557535743019500069434841951799407374502339300278108288090098845415401467061162181111231653045819854928122496272999707308311947650673441675749982359358418541564697485460950051127914659262955200650298886898628485073517779485394893679532619219036978047934672132922716374978941747419412480700121992355082837026844312604849138927155302690558958502813277497725813489928000337576772230768101974992162107456299681407982072981128295429567050116182202783760932976354685179490221327131473941468326776984341216886308139908803213813113765707511755049336013136724974186245789735803039365331229296341828955081233018186889527151996107918117130993400712270203985686716993136678650960683600132843285080629565830887731436014865125787816414547207984159540536332434529191566324544748254019204042634612055733871545377335426358453991017024387999627649913073005206792530773886177084520735631130708827051791327823962883205680772704598400786960339925768928931227806678270226116362003999548069514528528317897635515186984046399082333030065866408401432478072939421513170583604180183492570098206145044911106485555933321267542175124621021865427626508251304554370242678648286521814560704109352460624743426705899178215164659642333501415896561700701642464174655880063818534425037979635511166395846242782177657837822056776782208778293548727951892866736827004794144672762217052569352901908574218724491921931385868260177742649640959112016565738336477333136395949478908001520851720107638923503891828712892236822581151302268327024711582129512247705724959513203707958759627097077808413771481698733580833394659136878768847423702467839237511513085443724866561717602188478463017772904316332034062672664976238087070930971443126459569666357238221208103680941437433272064975092928939545340541270472901204013791948406970132128692507821751239063721796893292320219126401824406366743121360055282854301150063157959421838221485537771108928697310659859254357338722998556621871115593366734591538064661363695189265684613599121721691562505741730447258134040912264574665824470229010323999183686949165137491063617563189051450445455263737063607626702237960756433141236657078228631533527638110824472732372312483251271629127207806405977119450091008385841764615986767986891931513105329550615541450546244322857486007678742206463736054557133948926011332952092497352474288196834513358350389614827776831718301775358674904614958597301244492670379830490905691038220841423941334205783896907976403906852933199005247965666769037641990958097066528203512322265781199131535662253927494573171240543770592820198334360962590144043421160910607980413579873998245836042452571714662007129325506516409628338675128293710601908506976513510342247575276068118338329434470770108825825704537385681569743539586216875566946012058498950807438637024748770713059052336934066190771753611991458589878194969426384176667982796192011660668006587195243712721004718554183727276498765452959099272263088760344838927111025110613839306234114938628703725880213376414853281996843029719326719265714009178829221276686093615895905702483565031897827553727513196852492302033453042312345428101149837587010525176343918481881789617279359754406812817626454586707175251922734355699122165707803178995464691219432030634333296645365637430532276977185646832650392021868013526398144025760638166942810983215118962225185868193432367175857265303754767100884672369870473168342242421028321569397062576840111882164824197493164797944162404556785278744870687522062855901893949087653089505599162558530391808969834304928172581011748863910212062245555242424399894268960622098844137585650792314037538370328543196348603097678645121548530028479568188507588746700907661343362524505548355921036492406493827783814894184350199008255287752433823922479437432172285796263549525278992950344683914722284414352568390222361178061950955746732346023392316829354118813947578770801265552545249519649172734936474315938548283740913499226041847598451340847984708247837140255510446183485961314146517170698771855095925300983448331810855862206299122699854254009039581620957854695484684179627644782111481481775042123595043555121553432237659479890079814332805167529522239618543795014808856152814636621061598553437438500658620401328811639834964411879031251609655938449901307917430762444411244619672137727614310212919090508564603284218858456073731576844891692122343486735175452039355555983725736885001643183522402356626232905566573017280286310171026079115795636115447870947149452422297806445901788725533961714693411924520204173205261403719270057593923662334856859859655694741371671000221251329948745893994885511437828002394782843698533917140641024420384634560211976950365203746900464866674879871472804112058734646488922272442191984333602125993988394534283866174762827288808167833802531415937213236227947784856151253979273834027906766800331304558869825132893574083554851365135109870964973446939710929767398320867136399447356076411024611602903031381419106006194179594722930161661395017790483707817668910108142356746238041088075872689933810125866122283801224083671468743401141962483899038594222336477921124287127140497576583378419038037455945159651218807088204836541431219854606008410096105233851854687441217620235568480147028097681771711312606972233846669010703394457760433539536795315984486093069606695319327287345234100429870862278101704300918641423859189090634367396324430903491744574317878847090101894435332812897991038887065388827886594734695501002414900798750583287313458432311158387455354890304499968354208487803210747863973226331851632258203078965522175993018199912824382513662356241592593212309903367633670105250803594369963536347932744414032198851329853692028564229096460739934857579440819050253791031531719326261980932504859238327731007071124727365681293761746560982002793757462552052951848597839444620305442201571626744292911488961354239142362367582015053488600146620808180218108251876688019329027154973617118490255851229242555660408313644344170141164697885529158913361346259871825226346191787374199520393645602427665865058654006067972967411312070747914229980739037032079159664973378976008774228156366738481507068700560107509208125629111238013438023304338438872846733131898830747872098461316380381585106798821317290654511993522716474918207480360660070686352583463867590238749028131706261435194719530998111199514406586466641496773817682210528633726299241345416252379124247358691399816195883534122013430057565357032185134029047544656329768074791891062124228314888494743707314849483768240917621343335346254254651430004898146852772527986809510800142884646988219805456186233982680209089283850873358372408363805102209041438838266808544599341524426169183028044625273512640136942158117669975764072713896710732638258805771444308431785510661955359546916629600454853370192122819896905091949544546189035078927229857896287812105490195684137251958070335308299733140739173921627640339157737531766834088218056086562796307759272395653723842771545293915748070207652342243743282254206316614890370388040868324344408502632386262909552398861876347400407758158727172554729496640461413892869792065552785156696925672185365741989298706516453301904795825619623217276136813436176468283251469021651025729802057079578930265832520609604082371007398594737651294944081190483595095903379911042824907293488821340081145245826028673076880335766968306865728181530516396885926128159005506989387466282713509120920880378603559459556794175419259641401047642948462251702112374904368936883851441087751526406148073358538277216247980022029727716716203522978578429371726988261396776850124946406130190482988455479096042139164039435319883597497502253071565291547806444893803951482514903560652071516812281828877843270141116962201950320643908355029495891450124063031809312292124369189720129099061414018755108407817933835101383970489758660080050782768153556484796498965635304884562582176106504370469233624105020069842325962346539149931163638618485152142974018647014773339619518331762268761170805758829314315491770953857111788340686106538345078081371650760948670471438980679365531433179951819986608602628862546146925725011953843182435850605753141730199541301267714534327261931646503915107570831668986310949637110022998789160448845532916291286635681016500427157717852904605335666193886939958060353075223048177705896869135760414780649871056573212537276752752116734549558973275615666622870134355281253053089896536791793350175377799374886334563019104865679183455843606125223077683403901774557728668568795492527213560473630000488398454863124075677665625121784668068727669687380357650535422937406545400182323093144227802988673173727835243606317693947864323679768024113493283505692768810237271686757328076976505947557497580582969413986307212493813084149060187077399248995084233660117308022818644627697256285299803860653743834383414811237862625909744007627057580698735833870647019983928595051487083801602536634015928169076705512165868599126276910096237682581610325613484965032689694694766607545931758952826708126601750189684904604963474124975281577097742811334860936294737531980082625435071196261949829235160661326522602560254775126723441253322327451284561740110402902353840428393254948484400948367161115793130211102727394087052228423138840865161804089239951917452105736416720170541731029244994997896137954263281970058595618956598117569644600471967749323406101114359109690865044856364094897216982777003873260801019309925450272936197148698599429732585326585845730558273917371914451057255924711403561821804649350386381283076327710132988144816196330219881045300987479225658051277218233546894032297696369639271005291944958692803069247178000632451151215251325797581504430471305191215749579506960644865596330084631103158387348168597394870386496787384607759904864254882430101730462693060227306840365550000549909669498919472610504443423641780107499136261498625503349775244332623766259775550508881176605684246209281440470251685026240150026419483787970015962048235012830208139201047933458375551894936736898070251432481430408515075943870557744422995782635087202922193108993436142545487577458940229884647575335675272244039603614484348467347376176095164434468210599790702074279761548300712408803851182212650803536720631056988187569388083194613885722167312529272587225063401976531057421156060977348851239805712686530369992948126091220823771295455744720396128583531793653477741071728508138957353246160169112093747486480340602945839418818062024793315290354067354190393587736896618405501157050883721643605595238168725970183929753742894603148387958253399492114175460556110316821482576593833907147302696295496707877966669470835039809821925180788477815939097605115637395557425130146575109333159812393470116680263426165130096314504295437050503551676467071157750239928722882932851186241832686332255849411488838493879588343110039664959507911367988599628633258113100846246645460785608647442835317940290794795652732341379154935050656107044960977730448189683274278423149334524741223081362038664878445013144498920823490695504716261846657582192470891941017984232857520204489979078580686012537794292826981461087812876716288297026966097357836701976525029835462071206109039608723451327154305746414085647290765667832134637278502388983983925725271700820894047712795888438827329309718913000038574874191281791014809552785611471374253776135438003393786779189401400759341741370457306334992004983380022344181398320452558876872984370067496494937138650670757220050382420982679961685954300002484499455387291700000460123765805480415894717183452998600451720658058201829703347403039123220910340437701591980270640617755833580867546343980041365862780787126633504337134340682421961311166206325223790166615121224972772130847654738491040352874195788057818885413596344300941730598908515313884371115115159092121212469189389404099162469490160135967859819603805124924826575080318904458330515273692412853154172470868772107574076394133283349201796426489337688303319624129673073446877750765590704244737689071119942354941022915468253095206753147324843101780722778530049356393590148123158909376167601497119419186089182233580234801988907212212303612450705903461365691703647283479101057301005706894197828446044527784859073665722595424621496361158941845033386742433879676392920983880151357113970255021231364519192032392106176890210832770570420129399368951353684323603771949340519569512153939347505243408606058161134581915244977380931970713858647870989775454322367632288929693819777707165358955515666491330692773035080299229043789217582737122444749411332861115872849405946524381137568404332040749843973633925660155520636099230279166339620102147815344870572817708000026343920924332509232172110247158237694458832808499108495998443754519629394042466317092470075844628091223830926096264300524915577548020490079620667166855672998581818831447889813861674660218128207538626676759026823157437386689744889846146648355407532906004093655145608152508861174756803595849800421734321053703022782919339450122839224341935535740602133417486447619879153199657339401772011464699176319763618815106439901940627756679764345414383850400093514512792656720910220532010000197815096369868519120511697724808458236193588739082861093443905128796095971265887378352208073055895722948331506116464484923855500514781086168288715966066680019484402775434482898076803763504370414904290955788689480468090422553783990090929623928192380296413678476507419839872248698765751770529210608205680076668722531817678194721694938682547648143632670656111640583636388543800457887575733706273794232163846598360638489577939316282862306119569832476850425486765346147979630914928111694078755564429925808626295628214869592123003690441743008319265977331812854785824562874530214115813089289342337239868950048132706112881843014714243804163001268409406061785358510228282091229490938453939154906041922495596457526974333707335482947364731449967194443897535005282960196206953375532300079890644448070001448988396591091138038635262480849379597575610110142672717669079871060556084881579586645700862220368738074180959518304480711869437173578629125512816393004642448497486206368263635067694022069346000106243172465567683813617743912638732976894666097013317082426669278071895493528383063025850687160783036279769484100497675058524470116185704032078583528540071654096682844941271991956606420836872871662897234649605928610454905104461357278958775784500378053127783370260438981303396551416069671624358357282837717230222642778914350072155262546746725472952079550485186005888383726350241045215573560368805039330662207792452101980384455922535713636583300922602539461056475699325294745940405525675163060378192026849181741503094627060213897930282397412989687010986969364867480253786599777562073662038324152579894443705387712726756452129406867190641265341956087035370678597241059206144692789521256730817694478864648927723651798807704684636545941797616206497255836934309199886604677544194293948861246306558132788978584852790051898688132015524572717227465204864252187364472026212125174796785636717759426269016036958896979370417813249026967311022334764244902545329501059445665252390305934882800005281802068976851681801414394269936505579546252672589340276990557700940198070304703586042191583429186138894290023946096560574944873939125971720066253234739497581416627236484974394416060423621466802220175845557630653621381532385172791923436152532466618778108382624421606522812758876204957629278636063731550427884415562758920994658602680655676828989923872204943557908632387446984931654339470477282319726195807317430914651708496144448544630375645209117167229823855519986438812698746915864705872533133550226206879444119392268477732409158281413807952361219305789113510145759229435884500545926916598350830954346947795350237715187553490216674806747643899106071844042051228882367881081126237586397932167050470900851423478044412101504025072656153344205189351777189294595968190941074535666362311108291864912661954883931637863258651207368901300069179208525908883673441234577341571846959742895900525225775272914103532762679130539843423901489939651366233954530657431520755407971547703040017287433416001871667394407441756158634416702441784358486076556420752892756718146298659601961456224288730768045656022191149429626954171287502140417754837422672051378937226281217227925183799746697213413850585000700977086247596851105509180926391237346211773740843101701110632950730839454497105386683232502633456264286712340620751813358413807910045692950025817878782479741089638255642895675264283286029287706706114855251835318942427099538763289162700103209706862904145291470350035891729079659684400750098420350077603137660888055434643688157531261844111299251045385070929574617131107440630068596763241580554971747573150918726484535755557526754404026334906671779596404924931368292943761148112125126863552501758399402120165290284173116798696424171604849106220220798685505525031698325079289568832394035401859945520564823982397000559454897252190320223145329314133695799053987976166034681176271098730691565799990171738630546195198306086714616000764686933098371135324516880138925711435928323846844742976613712592168467000020199305469814900824216100469401214651923160384538912339090194226391479490715856047576743211467371028598707145417726112981312152399288326287364031328381978586344152152908522286757729591070566559636479546999751762213409759191280830006536913330179686947999588442083413027379806320592005745789124610403731817634298645020612503670322034201158613088483549339472573450928537615125112343388196456345969955888057028127995466871773715809682953760614464403172411038060539232855303283907314315026855622973568817167340182431593292670664845748287578887060426127204205453691778551333420404981900589987920337535357489812972201354960512264754691212556253558257736051463356894839759324296411583001402314852776394949490967667424379200532852540539564790181927716920327746139745036330819535178179166705972126900772095471388064676256393465167048101948987254522098885597250410945087964188583885186877770286348851261942038694520727448968433944104394595046341700284362509773064390424846607597904101808270157162085244366182520487677185295752039754582028359978521274045042739045288074426385582610098183746044546615922837250131819685009117532528080019043322920173094234637331287037046148262708505185629209570109706340192323740834822922250643888605569768291508155367058299868753907678937253275778670649166989184510344719851654167444284354533941674044249775795532655063954772976387306022229397305434923948020594175186990943234534183563011525751064993749092352552526259422759853449095992941077739437036644682538377285630534480924819265445200534179986665100477541772103258305103835681687009235980778007411591852245787003921542326917193324055156620851768087118214499569007224318278355240895551020263244495437854028142459700988228931293871398816162061037396880317760075381882382036535068441878298168186720418921891566250457563116222722273225041456543940055960126158083950787235233503719986260383039720954263341984254350498387211867842301788313611747282048495841409337149305788180305205618033438415896963515072519812608384142392580307521662069979857650393346227103867362054472836994116477333602474230659832337437599967271890577148797631912579465750657254155861290744020950737221685231516352565532700061856641764460976305434776683412855363887034363127287767024605876611495484902643250348638189529716064028390953459447098063432216919909369555888754182141518850714541540574925927080527617274022484324072000147762324060955112525073893741798143253757744825584824523586118829325990979401752558985744585842330686712537228961414646608836236206378317503973751705133517391041796132010151965424178736668900873321892786090431948354977214123709633113092694852946132937422954686836028182304276587937054049953167115934030247799000122803651787950393872582539282015009360445215219551449935103352426856392413823465448372245071811316616522866989775695669405544529692231163572594535162818241774180247217505390707893415676892070216327431620812188192309895967488291337432008440255234739356292319214094580336136976324143483955145509081921542671612195851744890749055533075260328961901610346269413243518113581925429695335636355181353775201904622050558118617993084914941084987508772847742205583263500579252114277150823596329651184039153440301037775399565125056318577061568662577298298619225901578819216717979654864782922620905144303604445011943535710789712473062082810010532844506957934707722644391044967063783846484265437032104543273328725240956335463844986954122144515668613132162212105433672423583204358404324429194471197032395250220539684124815636808928941313073661462330987888785850007134253703340499050730535569797178065696113078969071713550427822182018549049628692785626193232632943508741267540789315660587386988744051529091854171638181876865280363775055392828565233385644992877777177266482617367257194847940717432519296503098002643515856935950395167847332649329602122799471288454827650559151972447492336213024328201014035145369532937849646198211374984993606246405850901267064150859335516135961420631776673188169672833824388903664641475485352553073539325056593427001811689467945805031893796812078949023803615528551037198936811138599631982097493416220094562058517620364593865934597977849607575558313266054809128016142700627955502430078832590507229318162134469312553235351792389560147113379859814367827181819036816501825666409404599808124647963372128380908491989174020780630645156619318733874574779622276984438582854466691889614028929863774846694065247791196324421836423266991300593896651228139641229704781494097427076602413496151139976153990490795991793195347551351029903479400652290068889614732615026841311116764274570072590227784123984331493977082480945349946937315269845720951652858064305185085575418198070217952496802180548182908152258578153276393985238882529851944716146665537847286326142481927986269563046321021223723863266224679386400008679595702998025939305276806095633199113829995169436386803497808852744279249021748065959516782325115279296847892938325438095074559037532529332816438923627440552396838126620353725344451253346010142129892627200040102142345850541560405676141032578123323833471320541369226559586969025078948553191386163304204697619670708376396646146244639959959157686794329681637815984937218830042197345960320528311631490976203949062220721274253036522268299946046958728290796318080341192573415310576465685522573714029051998964018634066805579167488854748883096054147865323701932965764041259360234700050911387425954166664579583524225614228342849136740993422764596863181807735339858028344454904076081466957077272754734959945266253671349610008984784994460671779129074742943132577776282907971378335370782354971560050004578708771713921316987138072408707600380610529413891954177625842429485504511727600412241474374834839294365225736245540213353022295302553133954233460936665229954127432702606881835813404773268523265529595615336848768523028404703097694280892951860661905212934972368403375536876449644031435036478237375366429690935691152292619935247086984886752871378885513078131307355647820340869719116225786000691359412783977942299890560818141846197968087010944666982618901477823330440192571229095264024737477478712835847632035495951074500087543022246890043146260498928748587637151239805465957890322040079674754066715662687433409736726834470246044197721514300068427384500774222310641352502610833017455366773218741759261449921409810154295848115309637009719411276637823720866486618810445279198385637936445911707294031466475307336033255303041977042989512180514954236665125019188173243105045660445016655910797902952522343613592452642634356327132208083058306800810175273517985483991121803389083404146234719502650820242892391361146360695171668935892665629996457196392660346406777842641659141030460047070337908448301875657888086949503726725163325647933552904569209960002679645792941721472630924116922636354248237054468909869778096014550056835111776472795119681101150353166403648868259310931537711008063410840356710562458547376228211483227937440930088762385690188559767374707979940568111264956692592233363508053060487507658226989422474820156403706313783194089120612155364099908625299618852292026374559494852662155361757450457685101944058065432428275736050914874989627351090060219340131841655145752724192898461224067841237134240468477099196093377592530201505726504421927286657683090738623010589657438299518724752935349147766627971429971736777115741978120755422719026708407207508201517639862051980997869289813980727666158548181923024356015606997828606059152210868980386632822971168275495511347896662632134590474540432206553001107743740513466787372143755869861934112831405457490368451536831686551946245595204001123131558328896772894678837934391200226693200860310248932117814403748070473333865899763295379127343405318471431083231700212856311076344976917807303700197463571825619905753844942534179136505991639938977423875987100856826856557558833903469767317226545034723520810365546997096261232716310627414846667613092705170195164358803789632089532121565758062090823843229549019148649171589458338667332933601784886605444362894787231323607105610884046463458985876862777683518761075541023926331870968815471079613070287734133859010748161895550085383653994087483653266271625879422729942735694255911954176040150593621829493042565358171872181955194980085534316268203454131721395970492232334285147635463555500318882883828201255603515489458106225575025496993824752945440560715713162316205015636998046825997969305653761674395115281517939819779964507712720949625991873982346784105811224979448024590574949266739223910409144551576160131443532396246421296078414960738123366853033520323139489068330087665369913573662362859111776275938960732128922364726550814802050171080114027384354466265668371393325949412048289868097682746899441037449682299936593106118475701482427515338914574712848910781387566425389259236989237816798488784047804617520217186448835625594224985599106569124340899662921558202118023353153612885439985869847625878406008724370922888408150877655312865115342442322994757336184706685360711262932407931361330787688791283175778028833607527084590856991627428203556271297716568215089577472420786160384740322841934196629320451038057534856622234375317963651410127987614684330582772339911265012960068638500700559393494257498033715276506893331933055749945577098752951666252486061630269168178782531547407067787509259622523385695429646320316220373826403598205872934696824097838696018532650834564925658726706077634835785370234281825175969373830283361593257988742968072691090252056311273673518893597217263853146260459789531356086027943785222934474626264272301280071638098287422163565131050734748359016888615037086197446929169209247819635894718942891724423759144396587439216006170486936758576882748746195285920755358146421381526344271147436703956949782126480204120416107974272577413262933855878059178255778286149750513823168721305541244523630901076052040514037962994203469046075699735466015785874992021260695766659945575711875006087875885797128559715589175443674687449989614979872201551705938178585748892940475215314533791425939471831034345208319422454607471811665459647488413356524815110712427154523529739263950010638272412001222622331846216693173309469881344647883541932457640160464482612403032168776604594290903721200294267641839462631808493905602384300762856397610216309226282224926566991786974342213673325697855092347696788744415246756825829988510265520703277944053860328133299689904041172380716745496252913691322911575824412920936310296527282639204649518609208266445871584418564454199338709617771220831776776281431356356790411883811169888750208412709091499260974084403026235262527597430590311688190832886936487499599191688117783040938323459212557096596469422928643540013840960522294316871832267361127907945371369045909704612334948940677700889015774085190053747233601052591690007310901443841357195691725682407363016377875001269018587103730183995836367140783066216188757341269126645218081996367359607489878930431114992398005587463417309808886149858274924795683060378042834354524739415168635419749053573407528540794549793274271583736409331145159578468340801590711950523090984845476243332009981835112651626037906288845056450283902568399178930278424567695321287364083281044110801379408607338272511920495207841624181333394453366785578080749901566091746969009896768324321152404775952356533848354819694734411756151244212482423075158227454666034324424918773105066884752334668185704206665692124670647027129181652540819947151241562881142580550850677510774619531729827367038891711760667598281011591693665679169704520558110264628171814925814867385173870735982183521043581983374643443178624067677138578952133523642993076492485301476989735952167335511736223722646153570351118458690038676429385867449630714299009187426478581680965512756947889841634945772193991505611814827181013495075788075344791808848544704669497152448772402614197339981098159110111173569388053564847520671241351905568398288832101206015981846592637103229658291573255702848542774571952169211858657824043561564143873435316501267484007603072248988420322276889953098696701087949037235834587618873168457151233817268343625686677415678999772677694638443991827796291680322351355762006648811497943017652777055528708846137446375018011045817256551645291013803084090253230518693158221445182247887993942151881601030052827281323147750542952252164741051828065224748502624021272106713585518957490492231062637388076513868325428313710677236444351570290504925316964682185683139723915895684280387721727572412025299171778478518727277588960889171000444648450288317643674143231847479203646653553896338072133756788569422119762350506503112459557370630726588856786745683923250540061816159825572676199593572723571742048922499321585146543058798307637816357260740582925930029945404768892777224179899350088971808243348529252933726012915130645171530297055488855658738623421362089841364632741376403111937870890711423548736984610197750661089190791950021204138535747750271316580171501347870627320439349332173585068900264093002034674178246250101993044707821017227371919103573187276011430727429867989363273095901476500006860470849173484175344492865813937544106781314212017150867743799699505267675077965850982568753541480771787655099980005990700236689797858847963116809953296336830063133269576958488784873920730912589905087260853113659738001096209242391262392148132978528739931762245213924391092313301969527989728578676736768752858125029028302874468749679284784199043323457978029249569724538887476737451860875435405906167638232353258652474463548660525256774916441088167121617678929629271095787843230564790195479717646463524062948512090965906316890481732308495965519827601864606263344154059330435776781879589888404336582526068452062431560731011487852517216239827432514269882475672281999087195350322785376581023313646278968439678685669546615557044406671549449503515189200496491990510267799663884653665682194355372899271347943874932633407018971735129517963659440340821065606051453964813404622608311740631021941289365372482508212492453030136649774239926744793468326814128969132055019614071005650473350098486719989994489888957534505347623042310354291244884368012429926761383190843673732310136684140327998760585477754482437821946289533177796582224376460490782345522171157838714907337513103353118176860232475489574834831868526656322161142202020351779876836965465056987160630627044624238937408767174569827996384350292729397607635257634970878901423892307838540024635955943589297626349383366737769699966414558929331139506201712446588108199051684972434992990438075274877679777938012526216183090971237424957546154441533115175474054732236953022021381757692439955695678055591872912376603385766124606854966950651086961696444451378525457253802421465032629908865211072336888913274200381200342669921644255012562386073837736462931548485397690467016987378310216996091894735699629094472760616450987245753472404640677996283468824021938375090743945995884725239856905840671606870214129368549328274402562020121819286273772768832582741497784225236429065521052012570058350892676344723439850374129466148515398859286889991078338239273114356679955461521726931518579038371110912996361275036761038732608295068458913493616370600288180840281532906647084127152963831228435196486295860214855034314482557031090270394101788001855732332765993243428957063240868374178508244600343157477710733683903664135355109859903100003312510856189061765269845899262329597377834474362293336985556524655235939940344172334239359070441032628367683121907797088636290714398392566349398381086972117506159306180198986314208948902920945281503881732505944245916256064688112748416615617061183980692690398627480132937652455256049712026390470166507855820725627136595737927274459612757406781053940035793435503319582405360740740339655615541569823614542827665790653895106381693499695121743175151201154956147189454223531302669675568991805643180257229613440165785653134307527301536153246866049051571410936899509250182517150504717482328873950117573632774323548669380482352221720134139140726148918549412167399479675779571818730617977650572755821077559616965231345861589926709909259900944247115539079520022766884959699037037678273057683364596978977053437706399046054097850534253309664572142863045780318479923479810438114100617913329433519122425506117807085012365493468031694307853596236055129366653645618661697690180290850306346822992792564678663291486730022733760980757884187089754907805580604353144743888052623260519504554407081375864729451826264091996522565775103313923279302874555930906011713914132339416464578451593244324402109649357318910029545455566164044934493725398837369772399318885485703260015906026118004864522115589536950950500668894292061713477879659819548757454494831976740286047777599849808762505898824823577605670464420543920813557910458677231313874347463485269200082431742818314513910946672498397177571523952283198374443661517387419249990108811444186446133761184441405621017749247479840774652861055605714718016095858767867781342128600459399699244163534241053573243909814666990699673066872000615479535911675264499695640402860402768450380735545991037478907584876562333263230915967748462482102309048075536223564591706559504294572034953980981352143213055500543671210168530018733558123544803249512915165225537363054209412866492517811245094767219831557992318393966138937317370875577341523220018151050844283397264546224176076484098000799584336652631598365940588034865748531651191948211124489379162185431440327772107608248993932574584736951226151174871947513921049341815264352157658348900020809492212704040816136785440430067363941649490930762090650475732607443873915962573520818479459628786181728490552938451313153252587423681425349329117550170553834482265583811248815648469058542720976295926350848421364004669659295489453121742637423663186277202236853613156305385657545438304356212698598012523919078998636016497530011183963750827149208629432288673913805528064283550942723807776042782444256243267693504504244885622348452155386859459059746115705668643103847911945127002090456970723124181494581246738990061676075635348220094377970302562000094636266863969906118991007499070541393486332235283808956211592554064094388568881560677460071383672096126623030439714978547206958177734787700973447840332110734681827466119667099080212980505483141077197832264762540039890540879832886512348387801758804441964176990707791555137932757707393776483129346296261999651500859082824471332670129187360201618045780378196458628015680112539870914478730771596612728247376654032224472001732909655792762978032842466636959040558385243887592152909124357403791281299269547887415705305037451435370753841296476964091362537689250190329524857718265496911346695866054116334009438203523954274564783061675763285536302041787875629765370855802938434136840412739438418125188931407175777503176639019345683376794407279684243122280143004029579348027275484959303083641028287908830576686053805214642291543396322391953017679334301521135175058277136606837921965138583609009361322965202107372284398298087147442085566422514086859081948488970595117499620173192689576648734295242145351080382956248005803963228327465246678493273002624619626436529151003153914389571728173695611640246709101721475364422685311771290883514102945861651293880162558023379001513394086949925273979340129578900915996744972756991786725508412161136767683442937225491398379056339968833689168241580620761731688378909821940202188342770874846569749590135991693279672820289578079078515898641924288368788459666555283117105129976574598996018972312204765237230410501653287125564065749855101424036031591095380109567422729350374477405553357857135103462331287656714931031129412860596628765449345870487973515920008838586365876824411781745032315801379461573110241627953943179779756336863734116617816483398048789298871489836720216815695825508439727647318192297743424402232715778793089020782708276649139160803655605928648296597435728525231281541186396032848185902288319233270130310642172203151942696363628646334652022574125328432059903372660367912777277246475892158698725344013664520430139549125892024687389044259893904891992995280432848724317459930977609041683915597471788969516416319953937127046871826155832871342348371371855138313251450595574321534567002475828187243253141056729291982491894128489858725538857817648415526224783339075372847032380081013282003830299162927348432289735924876828749388424000391016525784590484899776931782843588529861555973350608600131971309705233820136327774160658470105232845160235924664997900602949717639314564926996706225449122373560648938340996397105042756529605869094841864471725060180700585347430708380046630686088116088519355560420560462504591971025840867816335589147825614928526323494652452192492797411218868765244813839353865992109426824033055835817459829296378917017273670942229148233377000654738204219320294452210640502840307931084434593189122410907645996766243091276358015608749903175937380703681663307929892158035041772660686342916852703087243995898945084108587774760224172976493084716339245456767538731479461694104310962304119529909688385852349654551482441741041959181980753639966725690025223413784482067228345366105578442836594842979150889570138495914596428744007130741908123961659190458980806927143103817155918658493948950268667735273914856115664997511771279291813898557458850389977444900644689079322425684984424573703880345019442135793543798503024310380432471500555446459713812037756385235442615817470376431172503771812186786524798122969447282754817211140008629334445917222199641105026113600369827064808709377595787337154349255489714777215228975344668578344431579831295458100523684026072702289073875985198425213583827144869270164826768651733943498360732044723643918555236769518995610424802458799561509333037626729535399229626095722500104669748661932500885683465524565511973297924607263201463323297438294831039617319353860340148772285688073151638651005810968138855989838629496921077584685390470564023781766372339652068223422347989386817093170183442164684779775109401885088925469912078670013078765301420908916184819990163507998850380700279743185542425423248728778182083881710197843754984279299827291969838990131045864653756494501639796177050430142915115966996699524269043746918395178185665962606468207519405588433043868491665175148977077907566139514110942706528838561391119747027015559962005206171967667592389890107119916006020568142731189776442057573941972866310006912929299884362587352476451423763081864534207482900540880890865221170517141569591013971959252468332169323287184936469981821624392609484368956712029853659774257493540958805084450765782736307434752981296685926251352865167610090883758926941428563472115327581705729957525176770479872110004115968361697133964841032227654792172884130556892833893001764343212065962885862064333926598555390684938109166305139082908864439277885999101747128087384451918068349101192420134765610509498645882954780736287338800370085855260749072619002748881428269041850925727991844892920638795560399249348660217342187675851583321063003275261826592541652715509267798027483307881254364658249976557193287967320188784840648228696842139265604840314220651297140022675192610960567470049263586600406392980843082268132193250632452874422024247948390447998641802877838028021162976313065487422931321647720200437115245645522673812047228032374870992627595532346163013450850100110254107552789620498769422673429477390054865987417118289989401050184432102966371873377701729157793680126250841274298844590119284021831978097917644764998642685845791520347509826850892975305831030219061760419726664157388496430356463438722099083764718296932912441535873678710475097651348364131327827973458496199092962124523316161797857206421439213225368559973790174454274601517488232917263426353427652878003807124315974668050271683343972828742409635578160168181776183177754604838599462412893428880880274105178400199388401548786695831769059641470198329776586933275349370873674693004928117937693629874714546262382292017507134147340963295863894903042708618972231457471608077554276235397975895112275587891328272014163348712297507607990103868320600824375644929760834922300868787485029128312611915763188681543507496233390377296423696751225445917547538325748193000553883852228784009259438634811127214008514705208585143315134040688917792821769358426216921510793080513056910419454091396804664980968180337665559523730453888927081048584370833747547753264720299083877754951527308070849340728548197327315685310081519152612737940158637503191524685402309622040776247425302433987024596417463569995606275954822632832278327971031763991396102756350033719390115322678798361103990224816310735828756036340131355370390250597919015920175031024786247770590999599371861049107718596422310594167000488415050258012790413905779127958219319305014144346270177186551961698517931789116274382448970779855808541322314039048287283895521189962929801932506813137834615640370565639584660223940693626806270196340742778936125080640413742327960656352462547471300463369747796356637412993862584041401973802041326584824768906931135187094338465388459068613343503147359831072967813456720991694884829608349797582613984084719894927641980867858013617077579991382296619291702610383988355392884054318201649667042295603246554552863615964185743780650937880097833953836279543997070689522580017858299908276641569265523085434828802005683221111496633462266868948577252810094564155075804711949820439004305240848536162628915058219968032890161668976407639877057121533494913967819693741344562395058841210105071982656345213861376962261903718714218398121514510578326154053656366800071005458192025064098526720156238039497260202884343702410744675817651830235182201650016988100631189817268785562460828264205878951066159978540353239814108027387640605879600472932267050028383869091113682206469222234800117530784408482585646545005744123630876775174112958429580376062510099533310592362414016828605106311612660574994767710306898773546253517038882953577475334533220036319769368628322601325098442833010374849441507949574129238998972459623741676569526165165806378746295543618373781790987983292967962342396228162153939047232062639134234567557848411076498959066289688050695042335309643238230828240147298082134337680865538040055261674678334814207673765328726502384058931785700974403825039790949248549073022407352184852064243519308271287352204427769779407492937979651202751530285600053158263060437699102327071721543304324954901130817243022268418258763082061181638014580087085472660184656030039666177564536954944508577659819950631056458725979333882150359974572220662185604627506510764534239161342984799187510580350292288872291782818522990140678226208634803825192608506868670686427584172819436995345985709841001190071076828253197051747722351291446306826900467474690676797929155358260511214613716508964452046298702020569159036033382698085774811424054029086245495399183044071276360028655234820209050749283205481819678424352484901633207110364085879312857118954888593859895640455177784304497874530677511335689017260698279358620743376188165038101270738898308873515446671348418238285574754036681089667161265287695705931268639117548177886859174344126724390353221320569991820852567163007629844583784139630520292590071523456322948243676006736308417763621243063354823640837663398722140809742096939205909165240667442159737544730803407093320629138581900304629773670004500100911498504981576744610025143194401648114768877128958695436411085981944868595389241900092143258791733348337215313020938382865395207984237918164493083801766950209770636866113818302574408684524367338964335202840257887371428171665974223451487834910971111763538737313738429646661528332563562135962626311581296336396263947039852316170864695293425150469163280944659328894316912685799487543564570449606125253182313640904183287050936843825748423193848435832076089779123732017075877345094049951397462392690182387674364398044899028426129477691273501531646964882594926298111861147629593506470303275287511317965944841400544438849804359188630789098291840836880527513855661209788240378909047679903536870288702542994847868886552170888631421337323594510798023108613755865664239744984456100778999855235493774923670973651495716703622059767435235966468224178146502191653399635123510187368070955805354721184903086933197126806540120543213147852040460131252439503918203350606294363201801666286838771200458375657665411218090295501295005633722707674845597811240774756561451621512849120298754480484977151175762304670814062137149131529322228295962014122166365130991117754184108885231556439368945435365337755377330067780558005377836489903047861457908807888554085516281629736776940478908188545451484175290086328090906409791416368960077187530704454080885654642095800657480541342486382528715644878158544285624540274017728993936748690928978016396798009048264813233092047979557136872570692301694742130197760564901708244216545569563998383938625256611472319287220253283759354328826827166889990174189216208414585284182961493688294216058105827595175891806977310611521658239359691642774968321625169460069853939951312761184173431675650964448996879066736587613961492341660249520933749220348531497929555459549546399023048757220454997442931318029826580341255239112562855626746223191241874004552391638627543570024069586000759340908905971456826096472727751445226534733263472060184426886004590472986689110459780385627039667787042238078559209878638269814169634444186813320645645280072053672553359316784101629529690911143677527034078719304973936247822238480669328245173433007709373649287447414161275437788992377838778470572696366289469497926038290193219543854566916435939869151566907148672345737666415351862329665488469783965915685609895415063184830891334692531510433234931801776091249092459700891101917305865512338485334069719691865158254440341526851228727634045775888562570892828481800610059314128796842009517592459949606642854093184285495046571532288784941763404192156433912301902710152723318604092514159235091948639826088555504710466930305711148842276831555886677151906157653158638783360394927405332776148860172374949790082241324322283860014237384906532717781330514461584678679058470742825196363955616453125960944486456049483988093145110108113519973005222634201025730997325729171789918243761904393229797067905581457349133720848584589616173310900241065410675191686565622692658113235924403481204291863114604856311363240569385152966025263992804338422509642121825091917062627580183324089544849401703613806265216249126961892866866840272273317872005717482542235694417355194720925206450277930276270467611031665397482938575931134886501952503120771367938680493369640088496551302990334587290154933882418261458757042840550645218028628518694976430118596820316505519224384493437520837704109051501764216094074379614694197436527338312059706218514631210673513528528642160777422193671461508733639130213865016886114861743886739716614164459512355890539478595278046434756577616541144556562009901594901879534660879535911124453649564951289266613896033263655131558543808885449284767758517826340816758056067571187415487033281551872469229062716203331922938560121459003952925098723472725643653932978126882718685452027676319835406982603513169661363357665571279742284240730307274560925923684183805909623391390027349990875556498828355854671720073866769867611796723089364365788176960080519997989460106303964418929194742637185742889882916225177356394322057285417585987533316906431347034617761522915376298779187204715947991147168231913248299884798614087240835154724250771640374461090343331381448937722379357125514302389123818044047887272334000351734320689871570528527061185644221483792121091403167608420371271716481221430036315406956388955246044128063766145465534364222204242495894297199101703588899077697510228202588555439921732884683301413984863316070496762986525030685394569415624916796087518331791815210508799438931923639758284932909796606307032578144529447119100361809321315433255121764559720746273858676643801399883897680041443875085332646235552932153072452491539250896920071160868921417434482708211209852394731212769361809182259624280301926430162691573091351369845206429597001297022309465468711804419326357446771925302093578636051871657603974323596497706104730450331545986057655351039903263587472279496157317899070731759433475121041508920566355165287742115943325032731189136654818796127992228371938181033809881475035808303438513508756058426881626653272878396581919974769924126128817543740347209148845446870992570380194026167535104857258910391193655196814421010272101716240746006504809321525959783178769211018360024324371773425048318158843772946496362339009618365796536032082143696418388583358115902928464218822683360515047346792866441835323133905869926269045246040577310756469517551353282804923625367184466704155852248441083100038239674630289218605844950722700493785855626886657914581687695370052971875558149817678720760046677221161909537846351292916848978014785261175837337183025792279674472745641081318748563711457877071761571549411454165709942474670818609538433019485325867516335587225153382741801255020321231836754946647791232749395129973112892254148770623401845831050129303454582422805139816324817111915852803150607008741854593603445685822325267748233875063104881337200565530961233903954940878863068467505750338604625803486865092922118231034488890333988746777586967271112867953672103477315475862249505454699349154874507291321077879944595350284299550967125283625652125214031116903057821929361123967057128252914390461340718310951397086038945032694256495776707271061651330438293369647383297611663004187642872107957735823175547367708775029892638368400529715208046664516312833118840838093505265001829227372732617743550675480051980223601312746241593711403975048765753942513762924382550793246836320447202907989904155839953801499332895769185930183488114459314271868611602000064340609524864261956653218370374345903054991025018104170651509881499105588654621501183293555255276552443555487030497591217330287999735364685647618854685733554315215614309480840430677770681017062662764380432060882425859434794484110034710689636594907554447307736244411950862254844610983568019655038722736741134387364672962869125001590168866109508955617485602613060048320559798461277231854107382674389020793163546165565377371311068783577998013596991813431722563466106876297362364580886152403570069170902952667927050575460909693451642067049679076168388308689022025011930100386302609743468263528864552808235312262428259378611641487536962548798003477222890610256001009431632164964894692116302353524051300043342065201528718735070218881263133140534931885504503188190978256747792524523817635137618095790092208187709872331478550057108589747258222488601274924582621473271792652695441468230207807024946422713645567422455556786853286083051342735920380070945315027952974692669493885056921517227321174929146019236070551190119114794729878317566891133626674612335752955044518317076501202533893821325477971689745037702215153215998764524919268528277760987264802539600693535147829501810823375126047960594176438772411588690552646198197654500007033642469274241070880349363045096831747288086310782534444836860508080625147522899576930282106375919144050532293664634979974177057923290402402210648722314882189994443586971497631301309194542860150932251912943383097757064504689563398423085957479691442894610363583527097539235643184786422164182768956698217261854294007850282074212938509379055165187283965448742635535368391042500286349565694159440240279274147226387482701209129870421848870289323482042635326668630748442939264437789658467689305710807781694555775641642666019010221861840840933463640808456062255760209696979270815796078378179992012087597271830173858251139648869534387303957427541868841222913235149110661020307052617213270897530840532990374394791095057967566185040000956907615504421891384024899358367122281531896186167574677674575306315907205106332193295188801925173882177399782704980974257979925782836086948288035009491631649076403337736734497458260227541241201305301210306862757127288833339192989206333729086757364495759391510082416387918658460124591101361750531838988907768156550881469721712043815554757363601966999224884420506141900922099692593243353180634030431270903384455544432666801235358056371936532592194558550429850250658767280706968649119208896502366916333802428476013233678014884145942904528110368244591593480266829647190389577622038202847520891582812151331183600589981857953650164045800408001875104595019968236693633578763952575932047515110287099075985077801660100436702289307630518792517832640067195539578642226592031224703859969488519490916626683635030594788941272865756617743716124268560058863070004050748221902267062757527489387547937485719214365502025993679086858887448793479898899086619504183835312376150700019235541664933474308047074469389051425974507137234392029624540659932174070842535997078636259282899966913985024053432466671060007469506079080310097441611077491314434632719707368253351405014713976592772439706711672358678670547587529000769293792163231831310293014309460772324209472454237268827278111971229566067549543617128963418041222995539496261122266886217691258913620756621597469879857477193880516263475605040056826398176573649970770586427990456770238680793423578222422737124523836097412817543792772389309305245598241821010685770037773654302536408452991230237905115799459986155597360578524100961245923870011029528731060314994539156291032079925380091349702965802656726042792123659425850239125517510500053649297144201776183609266450259984900393876186896849028961541358654201916517453211509320433706712720157098834196854835206376839036751831474237333953842071869608977929575263494686000448985622417454194941692458455657135620637452944131180181422842088615179916041713997220284264748085464585679070280186575428289412615025425892352192263439167849748625526031825263143730995088224284728590066699117638904269560697523669067023445168018205380745343732639587942221436267613001772920361806271280927045591978803603231477652490021712634507079033799746256746967621818279427409714685789202398415246640910436685389459260329988209901432006188556707330011427694731611207945103086818320797713124457853872738912734389027518349375431665170207707774050796257417637052726903416652776135775654600792957713142380504143474670442523561402347929601802355098723923286826252104418804239791028717199637405739166126323974783824935528856628269901629081984146882949653693080496470353180093124162841558099661283021587295267729103355638618018034063118423078192495806997218279290710385170253530201127372689950626942859679053706265146435361366701827857924348928402083294977179465015253641213454355813587841664467249036328559346356511276337714923799909900532545558665303241082701223634865195962938899863900555026814355999326962858263892330338950502998886227733838075630165239366287627126523626356021095886875583884571189323252449555481517493294135427878557992366794455197921075464785548008428218158988349171514134688092805619184770508463773715325654903352660633707066906835333164129813043442533483000297096604826355316591355241122668851287062337956303028095819019112473542820060815659862566075850695718302396564145726565444211482139175932723364722258714140176115417687299310959476407451240091812050574870922583183427285024441646476602097315164976671523822204496765649827634291648962774348403464875922056493089083554332757494019729892916025189949827312103397796854175322780017352534845977931860296309372539629393077472682706262054224249562106529724791612936500301416488151164713192010506410402234700937770396239259784783908642501738398202081449010447767623665783192426059362854648026916672824691597903660749265761355875332844806636953830369923530332491122489456128301755076021096880043986469660263343615691601245580725182241868078227717796861079291800624179446133715326728231780386839716323224190872836316874217599172232935453006579962224785817264705268466586741072031334386270813125574924430860131205498366177084918319256882220098333348871074691281981731980288306008102740495133607887563953733909672440576349591228937560342404255728612686235229833368097972801447594792395287263290199718937253548050058557115191235931584202422546086748123118623102947368263953038821228575084114821788440051758126917018666353172321563920970110291118079327109673286627452480949342044943709164384100481604438238436766785951543754053923712497909434995487657705999533920767526332233539573692466331854930912282469482169505488455265336109372768222820884321731618424096176701592820563040110014675464920925218827099408254289134065111673191592675810557078931037813796757292899090186240336744892118076024144833633717052698017190151503949039805879140548239207518277523106132015288344525693249073205523767723996675151763756797821071259359705922616970570520267201512245588970058416153313122538443158554627397611563594795223230867342253056213511045471702668981878501923219426083938224752626100772119319865332349697026197307733566531195818273255807551397381734220426781382148686160040950870769769842458148634323142964652750786987255849634764749359017008577161449367358170737197041134442851842690925370159876409518939318961636784727714987701182931193482560974889655000445593522613347582508675011434024987784140412650049077896695598952867200737096197767069656524540754487714877388047723696170464563314356900577984272242312126066557381079096997158083484222754189969610201579777564279226091604269337154113349679843186117803511573519082098908243432197666897280397066645196069654578946413909145106220359939174649060291272560629766753438045424127517119512260204196304080574903560532609972559156072785499366823685770498925497563408043379549440497212173945326427216363497329574351079624246118530892066112166546844405854133925375242532094817708418423578123053420939540743957852467133882481989358012845433777312091204230385870982922109207428881814882653844240600020413508354364896557085492492295045268749850860498535373450998617785814494641105313424810363997510717228983497960879101424675609095044506198824323886393643237190859750976636394290120504411681731666825415411261377579394761071288526518990481174388665836000749098714216533564857251329178523021038459421365020532099855262459070937944979034206181950304342277003965955212503384649028932683333818636548045630964946174068257103107344915031937088304235160306030527022259825898190430594938404432740907350645588355164653024035632786165421533868480923674365238570673474479504111176921413657126084045858093321965397494521746656594981138190240647063883398916114473087465489283687039380059532846496497651876353750056726500924956741380943165705028083823678910041067283241523604536219268364165795744013157829820981063858517306016614423089299277828658121497829819387801284648496743972328115302142524240402134291952119343796244970492506862246985803150463222784331512445178876181516778493926451202160170642057428014362595013010651657466799706714397588029292288389658257797697979547491735980403919469902531697121024416998230976462620103104093146283991773951646102806509372015777910986021426188491431175357511541136175878476477068913812767598652311134708132905122799856329988875102285492439825552404949197029679932215271490898973941635701372676795190933601777017871363124807216950375602761105055730996776987352492586588731744041848914659926482033690999624374854794376608309909101205153426238108678109812936619635378905822795326792772265298908314737444598385287224229474842119988033370746689613196071789573831913372480654099520740892308082319944304875614228002793415831404023589682343533542011235413716946851329536630884741061798735959752473180801233380364650168968332133516004708819559999779795201147582372245452553495561257911611949480454066980191942383303042306650921976305370391045750293504159498700896421218217872167776968789789907442440129585162400191123606632685668875956478284045899689595317937398379856270812581319057044299976004547527541322370646207041794277068266712160628362160440162967018212384816838777148783871624226195991775962109191330848351002560816889457535607124158920458615767796428099023398776954202446311627457453292921150424696393925229182279044942239440020597229480159223721985599717977069807871531169213872285949613409129909378290203926283124527332896170674306809783578567829009040604439939678254951856031611082501070237097682646928956688490521547823419303102168895408371003296098096160881979728995792848718202998658991564336659299846315156137185571686017702970538560354933110521889715467053638336698316894351836643265491133491660367952196277208035750244150501657112961803826064150492444516059879535941484493989003187416923447518488377964404313253183681315184880549197094622038154648114477230590513968592175816558085443693070932558670735295525523638732336015562205080807726691138898000752704997815559953745331946084980301999042374586440432950004516417841066391573065953193711671693701106117473202048546774972423577764578348113279410145918081583014950225899995411458476614929523323405672938081649360493872024120875127073326949817747390851217270245278763687016977457054514784109256523224583096843183455831308684664056970143566939818221551594868928767650439569347714219377948525110514178365319242861080744579778797977689673352457414717612576890874666555941276425596202891371080967636752862052264734335339537134350469529802187192567452443993046512937672428010059274143203007144933631777506810409479104642289846709946024148746782563231281201255360754901220341362554286841850503993059836870916698574287660134194310413290320485028047308062131904053326242052835816458743184917224197406330867531958883637037168876236609292980052487435256748518421367359267717461216164069704162753237628109286374368183085093326684914340412797683904370028418026943844859241665663487623511303629712776560482658638470149923491284150685109190368457353987452383351204572371005513265151590072941899591420474838797365965568297590535240586034670931959043731368827220345012333465149113733672271700062137248792720102104866817494810563303030521984230416309277004879811437272035998580008272808090315824724973086206698471633501076208977712730476775279101012586140637682462619902387396638581280079015306215910252804207432801464094924594403869479438404010163732031009207646604470333671555496663522948501974544065162882569916963889318985456316969260318163829850615212285963311511637929238386057803577243169071017935282163450148654646290759613225155929066817806703998838303432144103884822746161851255328198986392602282678684314355602785210848061308510658888421185968061516978667107788269913349878804042308756840503966919004671903522780961022225390923135908022431861959222344619667163893698548925181745647306815161193027025985157589594375482012660438801681105992399115130958854352125630566953106120654798309625753694857635749036054102356627279022438401794096765917082249212689752024893157202362733857666749598110025034443528942811494427242413163681772122603791375774006573079283460258042644593326480477698445502135260090982489392162178424279632842591899211837079683303311126744323871977470803918021037382363528885558908496146103872807177742915013331578621907891461791628149496613025604443574537567183554355865587304170056619764918133530795555619308093808606063951529780315756171049779017465516838352574552514109754297667879653336726513260253261746300164153321707880862287014350572868240652266361394038328443988298789948731784211577004957476778914386139410663372806568432356891437625985500604765665042475937579500693513360352058509281074017398425251836684587426251210449159046269966962738789946065892387979506546039658751316830411285811913544135497123308391036069603027099108488713314829720182804893717067367850950914714984748858974372890215875454504024212388772481569246109913215614429607059885581206576402220085269371743829779369762024098026676192709898354961444830426141471092680505037020210687472444808940573425600672791329402871201876895549061127448278586622404204141654044617639967085657472478670152576717246469451341753911715173834229224521878929702580272810355386602028552924506685094685707161196897078333778437384868684089389076003440380936643485777592360944506350808923703435314734417048451825750387194151091158306223254193003587204480771986849297087102296355248183781740531662579075050984183765983936516544415463026329971442122534444554483017339169816640407653253089098569103553683427916535559102590283254664585947298176246966656595073562439410773893448662971208091789166228870127348664796060321367796144365937891280486010824376185137119213095522727271983845104143640646367602031353666824582911791501948776134678022543298294722048394777033294343947951939601988550662709148860930923250364965335235859873129278830102982492452281007293505713562044672180001670585352832511292717824382420831362058054627767821587519233191358742461485748714503534132417545761152708072675135928195264042582489709178657298605926702525465222292871252844310797353047097348511426618444868124781847784793042446799618815878129159567003659284863073917161518906997772098375068097295005206341388702094547969132863758179230423774371359372946210584518695579785540554649142241096244982286456094253632887311538803087936910945496289329552586273576745729890124962085349890218553196095474537938363627531846927156684221054600252938291443025656167906573883591812053724609230028435784171789925834306007940575730036645257000734135343135461423817093140342524272106951956206749081176904238033859272245197289394136411742949472019079182535855583106840054944980861237904337576502673681261219691139444735099657742772807925842773383320449539241764091522451367369377993665100372783509301525993792469330941786525939598034862993765573001514467739436325327193629146206209434122930186480467528509079743804553614699097230615033718902634739732321499284302927101706436657391245678033947144740195265906415031015674462679445277169593459472056309288320663021054929230500977767247401249958965849614151671842119541878845394186888358840310091899221903734709428096729127556113265398967455409416398921888962960911324930417774112582844271209853079160071168556906870355384813583213505100526079394917656094531696912476294179405997759624859702398365303742121615495167858939456275186505927215872270782217933183251791653079290400963855227128796792184420573418437784502054630782911855283484321466362434792882821174125732369291657425545007500528318652314511289402566749418205505369208007151283064552135337829150098726701225648061728493260257690681474385689573703444263819811704495444244142893840954634359144941466217627118513373010481006136630151707094461316942358810492925537323184538991622751936341973197424542743383907148196331046735799277992858405662792690965890286556423615521947012621920981798906178387526275187914620291769705055743479738093838840920996011565374041875860656505983524973535662414617627332649044714146389985727105056382852143145327857960821146615309886311956790535294037315031835498431456985789823428946307076784937062060408546560021625294961602665450034831000584880680430172634749833751934185162721250376002189839636660787828108136615071237650378078204550800440403741778897255131770717030273888734696606648350887063051381460376866780783502200362490833155172201386801049032272968842653918834160709448330844456863180280798000349906364214885377624435361375257995248163351376279825267623392394936399312036647457378830398961954679004074802977959947570575259055153596007093505349040849317797880372052168566128099919244574709691775559030646042906475393225474672143621430275762695547364861873057496091869106050931023090283103830619348423130994498875092525432148308657958302521032986086931451002798232805163441979466711524313873807318860470054694442323580773130297375863423643876157991177211635958977310050289145459758888698270804850328904337009427657157778474263195034424180742221749598914511422159112569498501958422107505336230145393849459601550830916742752161614784679723260247926840446633883583879510346685153807519915695407621923665375479982007872942170912987517990697599442503374242215061902674643314100891063791903548048126035115600627128390449526945839532957554529847039096036828321081667669619088371521809632175557518049735847677786155627763107070795006878452380963763968412645411757283149169571432530933491361250083352741643262809140328467041815908998469846091101733036665055688918824507490025967089301373469264171679475202150885503410445536049069764523502000735283117960526447951053230406897367659077207793538225443149514434412517781549700474500063712014476474057402906495412931432445215398791963945646397504476910722745254518211229773964628753903191769771936930592830003145901005546875091203592469088418398285847891181079090594854002596157718441191389309748018842005155827919494031976202303388802757624093793940078590965890398706033257608325064623656238913309755317439413374875461476719362542505337151757164079059407518923406824945487825057741262666205480349662785167865157687712204053650296365851964931539245813289583198545352262655348768394706721997615126692292169972584746184318349821941584103474187098003054862872270322141675376927662197080464089267037946083418922894354975637826753514587067848807720753071453876483058097602101548194302561935806275082701679939484709120516617491183636738359525795688416549183005171867431766991373170603547079324081206162325770358618415236039073861521760336867170800306846645146918136258391498777491683482978043056224432734782594068825253792025495783775541061626487063336312198010345222682305434882740463053913196569636453823535679297483822678327531203088029260678243707141490451177656879709092154707117487862058744561858584202707815956094187631540613665579332812193237384498255596284123372539696354304510905734394686230578635938332048917483664216558683324153881886583367027826156689360482072532255833275232601211089811807504056025114616875561233821864534729405511029565410885471471533111727107426556207045163346224154367673498316595887795176775511576553940981801601523463735880509159439216134268619371925499943640699346121346154440449611349852864454393981850338332728101186532842627754318423125805301133580049095691362984893884150818365343386410898203903116373942625209760394414049574201495709355870676235573128249809131597538327856402213993147660702419740013559544340114408397289631968828074150502363648121124356446711484591007181460538839613729276364406508213100064494738190640117653811202970913330650502896278343769387132117970321218603564833358777116250054657674340285530030916957688333026066414297013454301897457529675806865841156350603104147002386460499010912169085131074661843820056214607326973053708579404765841002114035243036825816625729726810998688829591191879911255763013549631321796099942816828356699736896321440505710095564447400538540336297245585897790885759688605489665200581347062795597271544929808451577728802976601080647434683264620399578882580568120344791020611756311917624310506370209761711542037567703415329137618642867626951554511517871176532977235154017854402659213672162471621806313815950887607844522672478252209234332478458868065005497124644150478029920178350520118580816075019624507054109378662284620318570823231912399443212590687661723851967910155773700588045490324064022285866434351966039472057927042973658742838820470470302405991178992362598450921021195364079624286753791129457486342679383038654269136383204740650616935450555751263239936584717507446196772073505720739381840457133003799279743184011498714616539689029978491777386245724494102081167539693445525686661808097767739183274850544295011744249278130660151370513864089240677549390238697062920595638748593474417674602601166608550764140475344838137720145643801160021917728947101257688870608654015179307345947027328155040712947473176534704230702562668292098855515308927899307953880679772430508660625091368509907160504072480518711819207357846148800602021364387271514417477512359466708231864479200241661821274014104849175774694989580499426991878152393664859762050910556902452046145872277745659566754691821044965803648585216904242669245660101583834667279072983733861618339276255664781091243469496410185211773558208929797192473432763247799477954287174048664494059523218444183713433337335213875341863853435904822055146696558275603701775533895691136313959211117258386767367846766808259995122171563441004680160121048768735490919307281091888742388320741122711170786790840306132808554646960831776038577482032428885107039620057599269538151144275561097566895314665668002741899222855721615430223085374993389833481632224961408170319720970596701602322527786802913080671965702403464302160902661735512367286718290194264894045377174645822786261292674233369171464093904319558941043412891672994458331321800827578556228005968636426026984307841306352652534082851848164321023904674490359400917034227090398206228138686986003760759587188493405918473517791759336629311335174494656104958185081496780152169407030247269703419068994148699278333337779982598639873773034607690143960978091010472989400588547958649566651146375651625444576751332380769023530024652191410218521493445312837344768036221474685944428174542482480005705335170368364639331227044224776129751428171449547222286764804903475577653136000915752841108876356716759586668753767687772760837363457407590795132475738457246885931605520314539512805718309274217772223117030538991336290036822103970763178208887311587644737631908180439820126195099721140996807785553423767291004884888733225416989970836474772442326605885153761869735487735719166520609018190292354090729473259708337625053731935257613638008982701625060199359095590541791902383777030726682496206218134552845711811217358846445654820272319365245990493060083542009801493846333281076915669757958372457453753324547569674084051529650192424083144819596511305960847599165020373049036980483084360433374242497938193688104393631763381706014895540987358946834887552335356561247162774203251634883558468791058590575967083932302368518222360299369297324004295526785310788990904742315041881870531304328266156600271412269837796577430189837896339986611517924954455597494625590197073447715422910551113613209012206990344194020742222757378685677783881096246112416871417549959469888897810338988622873751783161025311033158779672373368557012750416998308348866001528399423399778263180077503498543238613952563417484943426721094590700632393155451958031413795499124182384385316302170207656824521148895197032365174846844727553774880852021001499647582108440999816726624638643390953875495610260013558010430758456843597533521184088902401346068157029993722641404663225785756021960487518130576856083480391180166330214098057478004778451145571603986859696281944906969016754499096442785816888984527328961387774003039344238608698576173621691625000967066215136348301945344377610273075667872294431768820929628732533108656669304318646468475767161645003722497924533072950125546576342113669108166508389835933121379480273892286773966226805172417667822201109167279366307294189396207590236373526628114867558833677833285306251503493921383731499767110361644575354506392728766065955732578061198846037626331154016465327250500081506170449470013534742167532355957513309676853779952475849342133419669043120206747314397401793767386267022851407049246136905455557190660553263845847468654770946477073712111363194762359743381987282650759210486316497707861627984669272089955589990631593479036762243121255579587018700102759881914645472984738784134506811146685982356413816481462573537910180717436410830564142713539667177501615904154570799130515199045715057781085489543383851061430315446647018545728421546002621095045402876822696210142890698211197428984498114518777700615569526291880654737075985322494559123394489205667426258658932264970188023504284290191540153976967556609850362215364478839757105613492113445289314777009156910501731216970220299415072198155945967639276665330211205561534417422297451177332992816910178524852324511139417096589435611499936538592091714370795241060345547036160397970969026177471377155723851364759128484161030835564605795665468696542456562188424863153798129888637612780520488939787594970360568962122745203363733619371358296776172439769212571824006170258124374497628497192973672587924380436363648676461338294560042989726791774847726622587927345845964155169672693833798633243920641509606632200330507201402121269546472145009540248791937252119932679929683400217531482519279467381230738400017107133641129523423231839351699739889544712457310849391990954456300836131163346332232788841834622541210443766633712865853135459252238588037302756783162422407484625225088439505449673958030919026815230979364144786961844115780895925671930722325494160132312814277876346972459858557106911358468199864095237894228500539972448413830352703587107644432703453294947533474450318631168207229383256835883371575133920703462299459530342468874936195220594400563085329856281976997098202778473004410838720650510616598178675283889693221956135802196209718522881317532725337350243846268563102248712258121012137930405090534691270784907075692800831024344388212428273689197072569311688527531130313338917671823196530675157664423979369616099497588301782716641977925954465621836815698180534099167113752688629985926458443868970150884292558757163535485956818371192456495841509466043876749833439567409196939528835785748498057844971867812732913104965922261139881290174589981454597486471549548303961667113679812390104699533364288661485026608774477134758602237411456765776813048710418109282185673709485402213844253102060335381042759277903398192401292955892724543960253485807202576443188953966151194847240476635798927889278507997460820622585904886099647694914782175399067628876710254643024307565220621490243457626100595164604429804451299739731011804331869654152891035058386154033255044760559273699819219466510921833784157119794945602988002299677046958611315339271871568423423417473763926805461796782875417645561965951273707142949822278985378454126816802426259943150568307116223886026018636040262514068686841906534093711260219170999731804168279700688078503922654739984171273523202000107818350084884695604865481329851013258644855191088651076140248066101679682752615929118868422494820579838706508493593588675161852524342105533298802353548142227160799066680253197934815039849384348734295034344784752702071638140681358723637886221565160737386876056582124333825300071991570359435220496249046021088487975218883704607531448039735028131310760845006312891388764016944017317134644949317210509178691893456059641967758788182389631264444969808127834186454656108430731516419983145242496540931680850508093856244942349336433621424253472201379417578055219228163071004721207836646918757524649548167796359844951273634174918236532348312715882346595075219152944511984394700427972565855240890101900113270710283281736767577151575490605807558617270725956959262414450195058178642526321458429467941197196730656388568764768358179377147852996268179682712633836515396949352477822117806177924103048022860002573665686313122519951341786559259413520610270327637260516676150339038296571497662264747323057157804808092430584035242456596310000722221839691960967646035176052562282477444948803676569316658795525898954482916266001707149513087336436684726924992012870305508234225214395177332106591431680767474360308330347030897852213264238313090642061795523393498626449189928097926532473168549259929909602161066835185877401264996068419165609164656993277030019782312644858297898982170651623351448431438855755768542165410584345135687286677801259798943013070317493481518473691572690866303973849572037870758329845799584651143993351376170391800102368034857311523115844277191865328292826864131735874266828096193768074448251512940437973798218985856146129453457316035320713093937086795925090201528859089501808144610701884287417888905045080502803180799359135057761838522788157816404170663165042079944053343626233539670240813524048250935582984409913971016594772731199666639243732789312029237961883456075374851502045499891993722679112613057749104473604216844326292073957780552410417927692316473903311966778719339701387829216124668371311500689078426514383185446373804750064116685209429945304871501584446765584911449804441212801211004589307236815554531225505817610237430504098345362780290984066988545564884644411599333024064886465009257277314609343446420278473769552591923896715367872373170631900943611646699755661949643675795502828965071638041429808170392509338810010743107447143444827935002363519756718489303442523070425108762465491116763310639344583726015189952625089744450085600851542362069521894460295150257408974790061067166258619830844813978082277318143169283576082543697635568956307764530094746702097762116337129546643744545330882549492191803445119275165803667236192031282229435846252722009702837050064015099022473489359505490052924325420936142196858218195078987737225890270131542244818453370747470976294649704249041390774800153745630484802442378590501360639992883887026528602322963442140037043787090984327881975550614737813227853050438880746113321975625049032130612987619574612846159555010035331937626081447805552578174823431507310367701139233698651872642675983104215475941219662662492242980010743511106307605087149557927658738072865640110106911317062984997585974216533439679427267847905319344112812856207049410555738158282497106429129430304893793907026112305134889721513921959569241015647413932003875679793973594389588782585050639429784073338142906079738893848361379155186741236893105277695232915609570071326472476322938085476754695876589085031885849532108489144142633051550822529744390717648151891576408104455009631614831940449432287144948378197017066004887163212732665419381918853354225475160596444246095769042232122230088622223576690600635336255145485316562117427279352871043094252597842594351703898342018979894892855247159928998404980168247450653267946429736363112233943193047247595864107789333571008252872393885590705161089190427577366802750561579407100613598599133119470035719946645548492278838705046064847282200441802820333049211703593473945795289133608209552199728354171316215888207927549769469595154029553194799898208709142900037180072492898771985099920077766844161175823130660664297665173870588829892367949760519095076263233851464345811768668352838966464339406378148185785183097369478677918776423512705035207667983534775776127232632299691171234902751713838177690748856743046485798095781036357117131220563438034647629989368746006948402593646271530011740430560668751219145030303248998587767323520461971546665550731591343068942390601513610678803500072442946523932671874987360998154449866538246576651441286901657979733364289426779774690558571792377181684306851921298632318198198171077076652546264541966559445367235061294206051964706233685016191130611138468597425345838130353026382224950374140474922994556458697704038087190034400983225853566818264934212473747573488383599893873351753183837226688288895078208872039506064089631328497292785294392418222659607017284650511683736454957759879118414355829221783904813422780528564139155296945686534382606636589165281789512284502728208886172188859497272490278546809626575315517672666434732727005892230322223112044061517322522565418430165551427812881474422533240591048340532281679828871325594728283004909287284738830489717817912766839387588535558607008412293172784990057037977095680359801122988903987636413659809217477590236539059456418691539269957264002153105546551615241397809957158489253880730273386033924308433845758151655406732834085764428959833885706201338023160769394924156038831377563868599703788425957897327879329546431118990721710977987411394703086842247916899453117121110866640105961650986850147522933435263691991106198286679674791227902363245000086532841549390018958205133905173970753513391189768995479140809378428387738802675396199184468286842699620918259487662376409770663736844813253914953016404332283636299686162139538351720366803563907325271436783169517133014824655414226050984412828280610575270941601243465704753243441521010478232051315847455911614780060798310573830382977380022301562389118983904721005269839845709323725424876563896259215080693395694658097602428417397439433374451536488884690533689511241031003866843191730969363640370691733851800525716397010099405363544521961033984193398497044293804364657967172083852003366318510719186574976952911587844668236569894405589448519350052282607725293542728191258887538287679482812352815263408929126531830730408538349743628603244050396145657339888126109867294758000099127638614738271801413155462014640386876611809132266015645818513029929997810593651383183622137498269066071472939314887640657164562647055663288521867820096664273390460140895043938692972816360270786812704235278053293030571577607363112663148094978790690640292290836833764284046878147722498241468745703661972504184915778953106822630461027813629902897824868598167309420363112022395619677819799091382937185009555462105197554459744665000740471458919409561581589990441051680087446099061561482006656576990190292985053115713075036949083304652968694162707808296013839377448174266227281666398691865349892761143837284514639730290058456798355712722614092857902278718510299561763989060074889890926363767085729812709095307816367204995126549311674310400327258836341319345209067809649823198578213982596796088726415575190300680560984021148793861589910955606741524257531656154025712468789817335341972190505420560101952704215796617898300265055476523568645113181884337730009120342323137713924529063885684868643306388131959796744152300164866789549721974426057580293893823373035227660433926712352230216231006297377724406380972335101774279807155930170294613703429189383091434407047334980558035815783618417284719236800949817621348286499568964620192238074646521434846649132956540495033539770855280520844464865768813578411248809873939421774298053453757303360049290434726089630165800086058621055304444110002017982382228774485957972115638579371999001219545813254658869960623945904101505093833150799756919279919972818423337823449106977416646237373592536445453247822903857619326920279748280867985714420178610899425166006705346094909196201754184853718215153873405897899775508855934096717195642179332031520959896704299520945798351048223243775001450623132633439016977128399399516398582164082727470565314715387793727716729446493606129739373288665523177646780230899987852587548109507055787124992496526736830087398752529377034418881992424495207411000258497492563136500937945314296450199343575576865645873784941125970640810580906314805208904056752397018700200459698173246117051017793294477356484462855104065172398987932577026211440784604924218004242273296454945061703684737280891092501006529028506614856932961345402869543053201271596945081718789143181825099086586427645130354854836419275130065047117769149841317985436864392013878913153973234330609191641702822215851852144065880548626520844782924370112775855342279575800865666687400949161074478449235224459365758981335739933513169792317616641976131815265135286389217989851664669624809220878204691513763662742593996749896974606192335742229953728127781385607461470486155517994979880362290148082652054138055123459078340502433233603618809805768295696211104676511988527366968326484889232902848229352181824004502504057249737391963503852256420187401650413864640935235602104330014840341805429084131681117103605810851126849446992491727260657041508791830530380438047025377844742762637467934254309481999466789930415093836810602832562264928329173404347748217652508805556767022709234685125706390923578618287430959741585045298348140567296990612694355635133949508569018903908175785289580422937842606894785827247666443504867689234207966077636579357417808465110107498015209212761450420866389574046030310928008494156920268052847132057803526876179890686294237087892771207178706369936974591706572236526247129596015846729451236215345729752852510650965374263809209310791032908864774499935244291211277420885291156756235491446013449603431258295282969096766638642275524853503657554397087463625677041111830520597792178885636228915987804756839984509052680416896796884499347020681278633191191125451813352514745330325487840779367478047688787186463836388883932003511958816706323671098520063353096891635823726794864172713815544455950413659709492527248082081307946488986786912428861605094158323430904558838854022699518747738388643328069278794151881650393181715876933192040913271574951314747840824514988415925422727318931266656627485758306905909273989052860083251690367736052119507990644973838175092169295053676465655793104836864300246646848611284684558546637179155178950203893495237666085511690972829616563521038425099531419037802742687719780118546768479155120835909605974183477948828727390976151460270742437094876157640279168428701645150859575336781859548643419130203105515957113310869732186570446275255084981742449538760638057772363967868001476716618756773428044578228517209812859782533179714375613857032827426669849709180304040335481921998502446546883872861360371437461100826018888333432666161524033853447042002337906794171346441193857167620349937174062788923980102731541629971720966733018959196704393069116136310633964673106987283630996444219170851897777594503471658808492232735976720773922300924917605932486285010435114333972931933988936750370448183328924254206856263265854696297505789769438149160102146480353693165392351982486418849575469715906604306672467641611735210130660394319863132160169097259233154437603303015244769878689085386984154738872530467224700786678576600295735234604670995408631630059931282341577283343534305550294108013029923957134626367163651993878752231687845109934315446321388588663985737721016981540416274438538770933097796349605279000778424248124452242034324087626101111985663963440579102990362322052767845741662175472989889385420134394833768214332062355973585716152278844826849476342949804848262337454390206399364123708036855583882355485789423469401955001708437287754515738857170712810162340043650264904760441356521364087440408114092584607603306568789116390341930553708027342058832954957727582646720109996342041458700977567995218326237202787089507481569563939549381092375433610157377552408741082621302261351837129023564934230238707038762037458858671433492096567175179262647392865320803224415782832415803362591222715677742018537790513814307663424379722381226831459194296196081012138396250442913568582587535432791144578460152426240713889408121848292923882318664106205698990954350881688926460340711736534116392581044017982333317245103691839911320260400555534605694981806416987353719208947541711340958668992957089937928512721190474896450536939102167873187515345837390710782144237781663043909160524376114618668421967052620029503034230524969012486139718884992784859357839162046756400979841278444387384744825613108932491640655801992073039029587254488651137164046624488022983107987384291380258562461870355065128884812259282658083776400060384354816286124112275264464304570519333300171782046719284792786240699282922474732448295053917680306875705132232656885636064141393439289307197100677884304903121182220307758654658174116716740227955807502010563619647971162544042673269213377450597660156488211812355404395183815248471518069090713389568439899047147239424792582073021134687901519085602082424630519168572396700940472704492631626185356246912936432117075296700910619442048105120986812327693097285123238189137561277679232001961674717371874459008268786422117367713833169012443988321599958918364064408319865065611324501223401988142402986253896918576547400943710966456654757773629496191688455259801562898053514537213169905636691855778509216708158203209075186036055763059220561409216897279188381752461505090424288237262420977421071289866778722386348109347588304616691268778098530068431261257306696837551625704082514547970185906938579217503259790278927265091239609167276191471481972344013476165552893137820999148588845525983470717803569614593396789391619228418772250806042350610307286028355602561698609719719214230094579005311195083584935452377690318806796001735947356883714612337634062681900568581048822908429201486730078492243183414128419847590895910477108968820502650387310526066225485323002748844231092162552052206891074554317822316566797826562459263741946527753891901096241488974295940226860284588937928473864652642360527760585838329458962319787300505625425740404209403382400304711484863976384170109105900510398143929152496546213783099063989754139744316276911733084295814289893486954538660810006864559169557899178820604772630905518949110169840545006087257709742957756221906467054590349364872521602612723907010749300491990878185421842574835650660654360975959727058777079499477450103501948931977750243214677795220778530949281067406365361792941468854913797741447994802914218157578241616376417939748631068866321629043251367663044813213319772826430074708919004682164159711934819805814995925179502281160667937276500943168738228014265396368586690564841547193014853676719812150385308876805270937099721459922875248969422514829620849655826058232034316344692122388143722828314942243236940716257087956729038480598829161024454033516589837061776689016952054652853140389333758746446198932970915342707850185462600692504323718789414015996069071320628906896503508611779742814225397532941415172231269812184395291299988710946949091219068915999507408190977152054047290048417960919830252192092561349484260755714303537518697466878964804986794079483535375115857322230150478703883537822193682303396635616304255388640643047880319023945177907264389826614761489812359249926082590118488815837213149168899964855985767882237186002309545342149766882850658898303532918846784728675635308350403218469153225249055666129239911419079197116738619093482934414143046976329129840933060595524865976376295741366575348581007212719057163261563942659514869158045637283340678641049249452547004133164433534624257678993203030809206924277810648996659164937118921778592746696358385351226779263723101623113981237122240572021787619243414491537748144240190355062048302201341512512751174108604091261427155595108380006506428476480102953105072496852413992264407610534591056811549301168422573794263384739630191482120416298923397312729957508550699461025839109861980364869925563562236538485391440370920721119696661197327036484762185515974340960282087636409882290413671124803062097324691543808044093738985262411826272955107189759818965076889762066271352868890197024218368975643003888323581682253036402150565276935518194201058094534782822312202086988723095017531423980329445619462312784646624191746934325700020930271011370353442079373088687748795409198157730074612530746972274941521884658169978738589411563521608787097826402756716352444152846357528926584161572502029956729146332398691364344205076242530030063914833357606222772091842920992714974053514153614367589353460099995598892250685574102757112971830927585611741056121002175133953351203668122359265192557664999314927551019348347193923381073461788554568712245619943236013216256463001808085684704718787802608770113393273204220056995415189994033116156796516658244637664651411502954400257242442232892102543553858899065840176377200360376091971040987652944826166317963085577078674283913945688119882215553171028231354110055649381900501249764562925097272017107051205791753246494719219983758244945367234316589116053211244232207882331018645432009617786402659059578399546514427943887570968034478537042082425234637850276383527589313763271235972848018177602499568170449539443626790809772004557038015679124079346537642134981705916909005047400669047285712463055373508331647382187240372806281572190248194844130331553721044912611400033615681828830826020010723361762901343989754267555590834886532865097475194127053588199783609755811504106013713460968727236728450226795189744976770959292849355903705051137845070073918160659243702934791988124630747245697584718267041635809394752407280976739363445432095859265454164876604006510188597120269644156978756862100008663076522625025769760071409619824738976281534675119343597055155828335336546945361307684062938176022159437848615296315052307387597221325987289676302514710867447433520915315357900054413824422895030759294267541863685846615643499308974716178656631693085052801957110768884482348505295710815208362834934869433035104771493128990744745961057393960508072152996959631288426352748464049526709873353246042944950238640505742419712433709629192714224517982102442116133827690984350857233013284436573476023479384803826069674817665377464990368356588814240301702075628498176843391654942451337476184589063287393086859604135189963825883244261692996214350116926665085862439416032210528454669622761216152058317984967255171906970152230966275490879523124678713024938138865703431131832814538810311999571573790782950762198989981845175151496965816823311758760189150877361921081392772266206533265456945655343689463423937331968089459306087612153945928107327183759484817271838761302146526296968514655299429814984852046246395319306928958914188433563348633368520631906691242781014684255531159138341608506707837978080583001603977394198440453918891785070078769716367974186526171736544483626859737350686590846548766828506681607954603534437843316620088081236693605996320724472894560673642667248929170201434033594231294131950793377163936152601467790389749284873420365958091749808364695270529431529950082908895526888999481858311060303981305201935112521675233006713250653137434809683752179183809853375545670922579133016460816038788050152037739978580178857998012946889258532043731653220778757955916975751096495154216750212822414135246853322736826377481539640057175050380749030390596238977745047455849777797937419992935892721976191704502206897885556360827282524657201099710055109196745198673341345223898102697612423941030316476381174764795991957488321039560096443948772522632182031879514406931702259268122400935781978810412484015975431523864961212716741124429870888450923810448736975535482026765932660975506140311892006874316706021076739310104133300376347099803662636439593548155975962184675599901425770737858323617679352319243136726819942030340381134677967603923153132539308880082480796114972522220077102547733990088208635787585183737896294316038076692696823415083564910454022218125197751904978573369076895341373514904299724938139839312940815158483253721101427523547870053368696090629617096857440241954336060924629068832095110373174704756508731252540104324083449066123299973241296047650961547058352984253242498466102950345110256128943200508215916952190036314932362608288931818320298445696930251896869631823526844811495775175279940369460336090691161973550648482632974883698131675753342192883764004822110864966172845789680220741166975790531524221410664190795668345289749531012433306484966886002330461169116446708959121610701442589973988824737283053488378943408605742015336554793356831978930656051853280752979609976087174762381620823021953881829653567292905405935309677823490492075344515635144885021092681486165874642179201781124499271437749839591512376951499708604663181387574424674635816013986956399548938380366664441095182727194395206055983085692796533098339378737155186637371436559728942159263672670541935749813981405528810045804581133485251382839503852846486334031284331632434717292312795178031558039528109647675593833983754984672633472439032118842911538355358224452267372853901821944717951958873652582343619949944225976751009409058276193176084529781199209896749861138526223698212500210313611306540548476092697261363836780194061538500650118462618220932780421111706830713577712676398707592491781002000745320842207073375130464818744855419692835737987052406196314818374082634761336639155047945201064842110759670414296467032451020995398716447354445127395689111957340898392606638178365597432180260911167853656963646450521192593416197987216157338947803697090386274543966444823399253027503089958905321203024562661984969521376203451303653417440927058025311260646064898811169369055500819837457349091190985075351743844711134501805049042941334774678923093018879099049958945273403361429725593972009745446152164336308802540734254105002215196455201572863688076263324174792664246616532167616258594758210744203999551654427016790203230129659972106457442438002130602249096080947847174530167678175819139128476995846151555608180028816918933776843265595569611608273503962529678487990067634796135479834950262039964214620697319496808568223503019712027596305084149452111655320816812582265589040728339121617757246424326535558554267951564605608961795867094184782813211998049415654601846375759115293467035143982022537057865654891022806340872328734550741277872430263801990687445383909379389787415101322863003325980048559933049375257052133414059992218354033919340460589611761416673369445512417995459139900833867449476868897083554816212137786264579855253427145096248363225852544934161209747477391373667536331544541049375051048083784918041241461115155850854912335087786447380616170827705048367807636345236617749416904853738772167116571170208014939162305337438984265903269424142161450493311835144855985930596874562668009683288920703991868554729319023284782441609358983582996274710733249325392725006805985227541056258866222542886760375381070211707699764478806948586648407112657388264311293418500389528455824502898081763029506979957294235778932469485966857381976796690008760578733590731550077635305941795354924583394430100308844324384306652475116938549592746759427693384907539434568746863140254595114483445866777495942652470250809040559891989176945276120307304227393612757684184689741694491316609238797417742301968168316500883037304698477893345205583548621610368889352654907610995203162947224038666071562878356762858315344573024603394402817692540849804888044080282245356503896921731108495359903403782569799535564959571122615221199939247366614344052817737868937515645181623953563463066053470229047073110980096368042210639736537281340080057189491716133045820552858154507977450737789633624421033616629443325859414686707566070268545345673730968371304393064926206697202323403455224036027821143496030627572247831461772772754686527147280360232405318197143170880685505505969959834618415050801505632255596298259224888188180133501190830441947180528884533630264309917162863310821846671350477391547201539195705740763172019425991783799950733538669137725955469618712815381965041749433434334397444248092104271024079566883506155222567176061739415983546477662311615782916946696362621580865730804341290299359243298316683158251486357960705417191738758375382446776785061335088376145159769311448323864338177021150564990261581710302502610082943797801019235082767696029187793688718467484002562386541494135568481546667967164149310177014355099472061909567881177940010173947330881443910716552991658993898794735000392975776540049410163617730977553886647536569655452793283219705686473361679485544184160391211130520495627575153271680684884231018441906384937147341623170020660911614715033777639062647034691677970314615072960733374104722347831991100552141393228174396044117454087277919143604157067117647138432672717197839423199605266186886248099554441174112832808879873011258201241593828307210205419467707351745051795131614727265674903186868461241182912162072128143290922643763539137215511552337072438569327907150338880473940062236224658943017822255047570734592117433677964790598055509522817060405124950711314016282929512384682212752468475019709810625223418708130048315225216827790771555883644142913921013240178658508929343750899226856822048651939653816060807091317540582346197025807631342531921741385105042405324536310474518858382207440622121029966785251764460654076486903889721833785524545884831428916919434919655414788738180456757406745533553333280796547280511291101595493019802898222989518283196619684344940532778640967539706442591601066954272874789614553331744295246448011807039686439144005706673121537546762283757719890560326837530948978168801757995954900693644226607348837686863461681879076695078298078997251233149235362815300004215967532084963209791652348540856925714165285033848550172225297941465920400937895672551555731934396998215831558656647911403992713608088904578570763862665755133519046507850946075716640811244514828893432942881034335499607004757670425817213414889944518947440573842038690252852248136901091005671415875546756283219369083542180303256477780119635402171483956123209474863173160981746313938184014104449380873777655242965245597430987431132038261470005209335517144658277860207303571712606076963860634667106675213955546564962412029614998531989246345844327172189178985886794793635027111176155612394490372997958008097121850907949621232510945511330039304108456080442745767118850339146368945976770420504008737636177371095257581925941124208676915428974295329803256680936349861125570468781237163423719529402707618526532838828667098149983296871670117910753210636483716279787573493660123423543490905012392137890734233201710874047685438038645928593763231929288348276545581646438823403790873502110473682821334318676771966314772115447226089486889537644673233462813576153679716228317589593286727816620941421275351006685499336696556972996488934977362706209739197968201903630304884132754108926418213307142916495727516407449314853451834329922742679064664117364412303438511859890984610429285420967249129884068329465607039796815252870834904648338778587286356217682275911716153413266977748213957122946849437500519073269257999382498654557050958139861094932486679328623012164403294423559707395031853682393946565722848951320342747003839438891455265372674068417958268449691829549002266364674467716569322349024162001700031373502952869435285444731274097715523448459018918442242718488638714667204491012457858456091745964248085144635010429009126229091168090278983019517097503166942037446367703516545249770002356294343691850666898914224599512396038038911649944114711618538049022234404693504866130085338970627988583675802591894661997852424591238654483371691417401981485168567806238177774965447366655563179011472533602687484124996599269515795144822346629840644177075465292189317065797022220571548201417710086284107281176295901330762198225281222525359406333454958274655886107794137550622621422497390688046627654642619184517995926290088294366379493567800618074160155711910710140594622621239173663604126483710813556147863155816694891707293143883192656140064426056670982728033536037989278213927374828401935620640417095513673500756542268846293316659088709688155645158680070201950718815292203417488850479596123199038269017067321931113105317953750188522974057582223731487664242372333319985853189133076855596245897577521756124497512810944440331477382536597371745831087296258902534060997430685424005525224888543042277911595237852202312176806858014760369912098279020739837998353617828999448594156181257781666103675394732543286005869316503018119792010253580696721475600362173519343254307956736299525967738323622695132837687730457817441879220521113384771149109555163594282153359929030881434127652532576152398150851618678618881545070208342405952633045651990724085008824036275886477681184309086307748483664484694368343778815893405976822990853078124797591218523654698270023370515827345660042510963231462935966518392587581951855391571930279706551071534925724493992133692746258093424971212213429162161406781171038215043358570001488683363452428327445483616668185116424697664498825192692270101959178285997988530614977013524916637855705995536845755698025803106912813394868903381618890804429717305702982767350903668976490076877647397853169051346414453762445723806493479010476501094929669025193978034572465635328486308134120844115587828715356543361229950523255578696354845072873341682180339695324448890217312677738121089631384920876807048500975594680472966559518154005869791155863476413943377312000737839704653624975918002451354572825380422463793806039404181009835088011029753706524364479974521139774217642875243739955311427723824653151195814215554608890060020407822282053282310008464642956519586225112949935571810587061438774026304832116882863264647881798535558302123428186941401670986812334105053363340238634400052276402872532953315061316342095214993920657001011079189901017782758284024331715679893210224578164042763244898574087262743099740894183733115169009622981744855097275749300227928094391255855152403106306546325477798559899742746243150393072031583140940316558111989448817752049887213776438193880482310400383529765015935642041226895238604218078756299137055732898723184869752280379533729626674816598804394955023918295541142206007555609169684011683167622929995779269502957522706425098965052434600900182432625923399085780475483246896379332123030199507119534280636677482332599505802379194451293170058500171519275003457426274152261844503378997358432215950551378296047795379375419229602420701255867378552573995496029019656730569407139785420016409177320751287298405418725024387935379560109004131844652895601354974912546000469103703551672124942589371862924334684078536309907732926946879425277468978573618340559867943890207104188616528648336501380306352108853953620241551784326454605214471462614629696697001930964626017476673673872665673088777380746817263735019092692103267738777504593865807933104387371640340100438630177983914251549333181888766037896847574252479126464781877506496104650373505244410874199340414471577521835952398059163909277100190387281509519732912031022267497428021609572529737757776289572652756358760967972081977064315850221049787555060887461862958897405540723753825865240467205761485431048675115667219526020094516656090234691731728988358989608254973675310056887769805930342517915159334554407863249790460776231435598135515449939532494471892635428826285980361075893015262465337287927507803658711821125791347816313528862501632445976284925543349563929964214324014663693746899874970890601491065271931914972381384288918267683154522646537186216416834519015061252182121346014661807677908075018089157783471791860801250132214128922039877464317935129616795887484516787498838789407301471431076530439396234652518486618547441662254304090971203053242418270169589056207888978974802228901003743333418354915656724049965911008306148622508518593091785232152361318930006568842337284282483147823781804695504774958353593175835868460159478814472119636324368132635118987437438556271450086273614743139188993334938633910032421723634609503016856635162642993374743459810615314962235278079695463536728442342782150364611547808577679035051154887755706469650877417495259244553381459116961096904416821153062158727137610526981353641595299441014302649611650132148025915551392333555382691434286031428167554437635896913386629290743962267967047749319663192717190252513378163119272013090252306784711707708646647189374581685242990196350251259945613356113820228364645483169900261796094074940340599668021959244556964060260109538943121793760081308729764464782386357296424177338591198533777592385156441374617608389315506746057209686176941043813372947540141725665326164051739696245680736538835654522301705215391191719599391706657925938039284492302035450493599491642223739115492237467283847846852939915944708148171621393449671141126330873129014100609814885927141160889530282843525648210321825487937197650228826855213858086396393548917235571552708553114607395114732194291087504810138801379854086724464548823759781981373529203593823670183925692378038318362279921685785322705808797562058750904972520039458360506056495455677966431866005225132499859938520278934349679303835531614183832082104137362892886513443040088752751940301485721972765853178838145453987926491069785280413157478948336052423226819458810467016963411084435667480715294426742070054798651956524641603062361020261562588163264338280879207787826564590310283971559464343479296256497995651588384015588467722401163978207406009314434723983142643964204242797238580548611886353057715951888074965884243336261906954571435147109004528106906011584604317720078709626073494787428886521556198825006207170526322189708987389763839935901871561304022227866474553049407363280064403744180679299503742960094025953592516143028578058396458069021157338751502445447708659379099596074873272397961966791962671935608158538285978179888730260004413006127810740069131943130974813772407689061177409703538866207586005340460098930959518305509957315213417492106573532980469306640970437196614173394142145799482633577381313683077046640475156913884125043121127971435230954471486900451478149073783308286575726253491551671506012523628672708061098230167899912825949684189690540278344446049870688154198301370736248361936624210501474047758038848670339073756485102455888476950721830737691123150184979175062628011984035566460357861044451035045685109462014129940026536544425369324441141450787932102318105923809252963894507629196410502652122926803405317222191705754138014066965512802450732041643545828820593244576668269849001261439380518365747311306057064532339542553756107258744954335325647595131896505128454341056109968414760567284526787319096732293970766752389436510895521342799638137358685687010082035007247245653750514567281218752466127696598331390014388070386178144001744514926412682121773091384773018963378708906558054648226423904448431415010399135652911112096130271366142960173209834375271461940903316554142660689606376268169228271325637156460854024700430630149211367164102361892976650729951594707446375640988767341660967356492408909306394131413864503524514641312011331854580518389511195854552850719773902291508894178791920768541792850758079597492357952816441705471907545479870653486667625088185328022619711765396148830647664171756444089990125755705167696330257744969668693439149027309181528368653036176654053881980995628582736810387989879560222871300928698039395531060240551089482454230472743991205704066199170116089482112820240674402870429499180525276965438426567901105694846344403823357256123507943594896191022433046017137388704062057387389217233791391178358974934890885990360182795413802202436828044913858722866190510521721296853902895652381640161016798999424664569196252664720707723883247376863209533902279206227038811962859385022901284708236898423414317771967553010839213848316105806195383741293428936601727466916180251292685451407857494489992554328998780589832672416477788178375881758780638558865128310561494530820304436448577102335848633896317661291174836580854573386335331659824967285682176747538192040050625596360447600538855046566156903698499466951539446618513132407678427265601642115667892891580440315265665302209411032293351485401721787669295954349534827746388755340835676694292552947159858455579871423594624528005548719356819950105347807255115587805738307985033526644727005457875684547077088909547431053789390568465419213418377902162378939578651875583160765829887719559303937765244254374371420891978344369668332504535495054064722337073036147749414878830767288696074138153517096971386820694240627311578319680428455897479601657600089288900877532877306797821356859566156086658225850130086228560569813882840364813406814301133577323926218365737903634121085928137520946987929904098575855128863210598181109442941847531907895267535526254483657610528022656642832655232577023199301791615415974365676359879136543452629828118934764663598207595075450256632597602134457678082301810603946516591860048052076917870036796137883922001518461030196289595197027705972085092274904491767984029885841131987277799533111575870764063682424640213356932637129672401704551074174237752047823440809541908725950337584840155778834415871623858284641749765386577757029869868756487685168195865605822260026659486862212540018231221934652743698764256002798114734790493398289300930512681745465030380404563782400933772582067258060396296195944929938235903756172854119740624191569900768990465823261184206099220313906336311669033761637603986015543795518271390835186719962951774810979349134637193950782902341326704524308701660322343315753539368401797987416132751905041695326386898545590112445906285724136797491388750745427568570689780291439295403677251823228744119613552820571009369157063446147371691459502151832842961422370623130448779719972918190156279435737407648532271384746133353767696600943426324645977804765953966494308517644732280881925142078387394206070053314522699303262391561951156977767191399667416591227567699074093337893932675833343639461057817989577756566042624171086116800980861953943551886581370630960848570912734343787861840786158078545862467370623508590535689041848641373997895054887610099148441831797143745498392793876796198301207686862437991556695734635948810486806586362975028859090752859582219359499132312112096485908349780218380815970190509581463200012727059478476454994399438299377716491333527299499075645475319481418350820577123975796551064019109058918244909168483969620211174875285474545300523242517961759613349157609226210758582905878641293501031999060334739300877356709483845630854161693438910578768441547470885739875007323382718858329472500190175804770634341002933177841013164403854426295850548254187868307752343298742854530718218832049531509343003999184236315150723059381207486445495449951587734707076796010431826315144431247868082702117683507554599478982376853416795240177239182240652238337515945027839233961557791948483307848781058405083522825186733067793775467066599750127660812623169284707821850038674350295004085213642177937101096993435227857896852342416155191544633233949158399081784634844610219322639623970707221077910326427900399927956755085627956025073087165916657694361459799167500512026869442607473835718670689146299304357636559032111477110326899052607230145962748587976077822030483854582689473834347916611799747787394144972786831675989737099885452400776847226085544117014646996270028876009906663544343096896091260612213150236155474775562079791212171338499969654376246352789634178565720872430824547599051308873253759315773184196860902845671218005547780176403741097112223014718676771502877466730910412127816313815259052963674369252428932261770284584248688054159777897478056097336168210113199603554566622664249919058303828951684594805591835628271208929652539998462840698868357256773535687312332076350590602686838160994877690422271597784226505172965283429233774542497552315068822350875208727676103915074550241870947086932951405976156904252799638723409994717037299018384282168996250297639919727276179736638482062484745281015333564541220111716430490407175577784355162585458105914867500131000553183324795318492848162677775154722235838314264299146839121923260304457285640786441508341857655568079409178017489532097194785982419731933312049333557423839242541954111403231492459056545321130634239240273712674458115296544451721429222001662327852764996879787517474685251113637517225459899734231372918197726066605111779761906690196595035253457506547564645867719918432341893884380807754208578811405096716312925667823633865695599899426506817745003973599039059653592671158414498689363063006733129943154292141279148099365370456496187182301110037836916961941754677988185780424894527737783022094702948577287140537703288711399826407456653281629535566313634291360007622862194380271127348442303895388652839494365893314469070810106229781907982768103076146707992679200432589416472533888500185264683250321885214087609724822832013521569542336258362048658049271608729911872215501736142628427887454545813318846603791156637193270828497115501168056305189540676008921265272386218374112091442970582873361816401513727443651775411993503702679088721451590986186300837484321970241916295868955778183683095491430481316549163203367583616294918013521463146287889862519014127678553382341920124419169864601667140111227570106053416042079631451449811843179752966782392165331250574772033540489331689947039690537528239357651784735717837608485554239293276293698263395127408985631088206310630267667865547267652966599413478014637729964168258343422217382615568867107621327123521400289191469795133572081180496220001291455323785175064817441800388406753993837291753444262673870302364280460480099818052578496656577045385985019975844227781547082111728685558536917428428368901727140707430680712652812831794074896002969171315890829322596087912486200205687122818567805964709336289286800362162043633750763938081143698346652666672746978711601154550646279572935216977190124238135781481048228436035305989205368446607950497007958311565722193910414053485475739593235994273531619280758846621925603075193617017741229041930156046401693938205484789964079737123364573481973136386640003145064918612204001748714550171807895356621390796768136449018430441810556567046661115602708793532618732795351259030043289823281516959932961914905627836901061387960413075448208973260515629043850473460711745814556020318338964644178220972317183233454029503491911409959240097307405020682153042622242381190873262168378126475377769855368693129808094729134423600825552735902743966717016510592236212030194554106629825515698630661113495867584969407817466554376885589126537933256117302920966928139139403338905036864452837459974861072376793708985111100611620320011924994756658482247553414089459098498096893254543279003128283816938415880860210197294394886917306152376150209637014331893883905565046041007138142911301632061805402515556378739516949254532485218580352902793100855394153646751823491904426831563120934108673162968014399310466528927100406739443649276570768373899411010973971649138585636292457013017527878342017695480120364389962165594223802851289972461972917748063759653175523908290851650641524374343541325102492221894451403355479344842365809712285728622189241165548835347033383932346916872720855069964318140088467180107678916465389967408131046858683589487599644634126345576685762191636115514066252237214076051898097135833254621264901896641330152612600808154691122767331487406983834620606779747020343907133431462047796023536729644817493986402864911135824369947498048358568537346453070960846609885369497589777353761620869000411631676515659816489527585193970825584084852070869236280672898175680450508850714948258554889018360641269078164791245691111279883807550550707484986048325677510862366280903715603739503443071595102293185340649981082119229049363307622803001797635069320891367600860819722807345349227764209410588223208701479011526099367435271680897909616460026569446838197245358400513800899302148225512491209540180940236979899777549334555048502854722414372275832506568775215122561357798235952603472988323281778497592457447694612105925800692846464278189803114712333872704032394574436832679511407416047084127780840569043234840830616648446885413640737239842023370010600309744620080864395095013935040223292676562964446966594743264908129996559521608587845438840161356485182663050805702332074501986809316789299157774453730560269198397840206947475315401070899799798319112825333503541542145287533723915098098468277768072643650751951861457877171688673910863693468758001422972042731797409144841254999426437367411410122359817214622683607818332504356026529288271794972333083910270863412535461029077439765682856714898582893512497017777659855715887895851635846706716966487776431744920925619013015177201773805152805079665453649546741945391219025889940274576468469597180887725269123605208577209212141652790388953812314152212623523484100366100796054447117362525732800703081666745157300024713920273850833033589178193829733900261154653124567098058839712193040971100883303863674291272510104153522311051678227304379439143025328320721368055051172690118036458942759059425213754415735497574705692807217164766875602594813638560178245407944702689879625740323438297726675308358994075163475751096906273078670734174409040262276449687559454503333518648208382727240398397791077595452463562962874512108838499262013517067301682450026502056305673367363646491062918327256636026929794657453761527068935709407527253658432818224686130122555107211164731511804912410935971999606959978348736431399330008950327532789515981640055711706604454385857585493690451845966717950163024393661352705745186902516837570023410527896426572875473648480895550040575057239463940503407520892749999382552729592257239188117066281501906441782669666213915114806676632470632923991037941667114551337895885770081256762939446499188078818257868839842505206400767939274456343377038126831999940403651284234282030219652578198757902161720012120779792877850995015913916000344557177754680166101290775661994668924982645102260675317118821498838237799370272225437239712232417836806212369050424796131774053180943688134306419990314011389822984657541140530616315929488450120614733548976222032625243691062221473560096494778718357201377658831471828273145088407450248093503193400691378194861805219437305462866990739556731740178511517793852389968298256211104102433767583264604305175777368094684385179309288510485942764665468352128364362229205420370256073071016246567263049047490459374154216856910705382930764498755832471509744647488998724517752398686855511378327793936165205117387204829003781450692928915585951528457141778569587745269076363454781631099734157351494779018048784114891301647886366794390505342594304686924132808783805299446331765582158939788520699286323254349930920965498270361834835397376200782950315686787198180308985376604645262123939340005935248483034628580307967304131847339072871626609978848797860617212680856498594030018489395091615685605747947325373893875278348594773810539906424883976459198130370735921842082353738130636432635226403650732128215119976403735184117331824879553707813091088339244810670635261008675447410950971868074428652699077583294422109022069989000411656923805752133231149350127991820325962042755490920267772506139595231615045980084802447358729728037796512331447633547910866047622717414496264153298593639759684453145922562445501984715522006676254620460802053766066306045607009784927407582921791947025878360377151879629957426855872026464526921380466672166591597629162374579939723525810643577161670712285346257738943622255327159859943394431389643346004148571993143278073391862689179616493143325272071997169653255226844530596595830371312799020951871244316640121140614357538717474679772578595977111774958161103079470644161824654364380599131106829807552198896338954997937596382898910100987810072536517858225669001193587361441707098228067049657614402705491148096764716754261812114152127468259825543813546659068962307536261890809834102148025436764707253126047971188126080604978205235974663302288483372492516632334184304742853658484938899828851132904421310217275553787037973645854553498424212035467954430404832747941067955735431412930240543605308163319955339701459572390697636529624934211202474620148493334460448944421041999910120248953900913944206543228664653735520179705897286790094600578601017085216205483094044794467642082181146943805687086924835217123042362460920959352006606364748745663624784227224313821994073711485535650095587980349054297423572637530329841025910035531370807819434626899054144438582234067680549213962294625915880908722488424742754511362407395784405405618790108772929158709984392737745180292674910075748482362664742492481783742462489962810221887177426256482833629000991151325708211522019353107981463863482928840138689749791025568517159561135593830034352407738499907496843722168845058628531583535969491200101818522434648165903069333014124679597101993933578811921886838084004467977988219096655099139505998822599775731151096394331727992531689461667202607204063258038484767978496944707084405885155275410425357282837162275477832845178626390994859826204258943506658134173136446065383602884454126798133110175196410376908989931593243770206752233866159908725307256278415049352163628061336148342321121657545710726295215524447999027471549827766117025718483666678126632244172666026329390708226712306558001510995887082072912686826495501206765694869851514139591736682972408534109231657873141626410860226798088690461439479172603032861638785024220555438172499783545701252204397464300942892356188381403751252490252035562193505478954980462313095588185090233877663272860626859230968267672392014112651742125650665056417238313744932407492018382633408959048701567884010575090230465125696349713215712401939185137787983506872695502823259044650717313880177775554073593478750463361480233640564058840198767195888597806332698834113046326747661122700854318059823775464151852473133638022194978139182350049832882761876747344350107569453531144899794739194809507562364851597366607285768394984763213097844387768139164710267542872176050018259191162748878087931364502835393091322542349816683272369038807488329015933957546000515935602497090778056616895474734207712988585320334916592652158899999741073920044407043620374249103534814841867208624081030375092412201614717921971834589791538717314097660952188553614896917743688120128976719677090313480761775447210368981158599823402492559773565344246932452851399338923332601081266117801839716172385791308013305151649573654212965399916849065898546103403841782428401676515079453860117927779507982509852542873063771630602758475516029631179205092445792167745839728212083105329446322679300349216880645809814275017351086721780981257727464686627072314235507886234487501673064222069018116652915849796087751256797442227400116448441421718925721858679210876708877627038444228263773513764131735073074956500120517897809945199354820204838928025258244489901427942959808470305478715765032223252785708905901460312580115677243701706044642121000314046345434823197886880383417326173093099504175959953086984406011317109296188888249309837556565870926661029123083865040219360650430645348501624350695386302508038478117905289602051368631853953362377901822631179026169495588008166401432139729214832717392242607586788884159538770128151841669845639335491167215487385760879820817601243214859062225142554339965509963496476970087770357244870446708687472098437546311165173155433203490076401583788635824768486303615781582039024963502807643485893647907153920448846709812994954574077258790383351174851782237782052249650503933157909725260922349777592308862229892942571182372051681958215742863812886261047293832467970109697793309999526938372863738480929638347445338642357824936768080221308772932808007306183659758165132382728270974262596512347703703521225026646862424146109538799545452715838190021358386622397043950888784239930879287183813905058096608172576957431704905454153483058381853443084894543368372476699474361879652088854310991313712784968510420892007350433915326777503190490646879486081461125606228818597563132153655052690300118097522268405971007774657319886685733472401021179859152913220069976262307507182843155106951861468741347303778977292089368296552573525842779601754828553429345724291049760749566321547289026786450648126524064554122402412438177542564553098243898942679297016956973421572612172886868268508459046402433776261483968918136319765815870093667075088218557411668829525706538674289847575872176457956087162071366052835604082575319661123101324918766485791793947984439337530806850221328827905201494897687063357157535053720989030926590804773820784925487252408150551372616773179584488869026902115386678732758570607660530883572085176291824674349792738887680070000905100699475255203393876941582162606240630135883440441867117719458184087965751278988163339157374497910013502070627582829486685372379643465792557690960719298936340129955291983515058236112728677124735864469131925078720610724265682438499856715284549794651023765032539887492636179535024654603399216189889135858533340471549114367947191011468283267044048865844158675968040888333918265502890619369693902187885694056481594741732887700884011231940039657663330898527826081296626617264763179286099750473876084088363411807055599915851703109160216649259111968159108557316359416916196274727399497775227970523800543878154739121236502519600260941216221938707098022546150719358623747479709813666199086364852008465534052087241645656453008913351795908569753728700871537264724303098733217791585651058912947614884244001302827413365983435210649175274285469989159876643164562081560951409250189993301516571781037118115149782307734851831643921998620190808667495760543358021442858198044137765882852032961934078892453815677205606490658029740160493607717530180258396271672471855880899061883179478899245314278135468108392937951674247482933319072379371715210627813021830418410634376251004497076768757016014861728187957992176983262501530777128092456416775673776654868073119114018627407688379832337014940495465849020292560342044362020031373657472315647597403597636911767970413588299579804455251404084657054056005177247097844581656711068573692822062472363954518927639327370262405690145055123627223561986332016653286795396915184038089392856684980931924086116432610857257207745421612213585608728708027138427514975762526749602526226441661731844515728592311591822814301006826760249611826123780472854998444872636900473911727099196390821853680841321895683323367523942089839991954107849115748355285407038242784226354115286286238383634993727026336247153968777924009476431177501178623218269639294691731178057311585125998269411403215332732582289643444119386402162424523736947462473462180243519438954581843938496426873437846717629430773361397517693581875910914945867386056714131528539157224766727905839683180423840361605324459375101244790682058929261934328170952065052280963077300815415097751268141040863772820238328934744874336327358870600088001338200225933851490409741670695429588255449361322358744823294539472357541881905739243444335053769305392234084654050269848389423822651126969495145030536068768931613612296114609250518917072053124295178682013753168818492079346964858304509723779285601499552146488823513462135490318978636287305583135230705030354014637479552236154524253740581631884043613754382398284752069583284110012169639872736935144924971558521588754057509572351789500861944282476459873492940691640388221495624202290126002950798259613718278416785090397651779529975448700793211244725317474261970085648391944871095379627817770732026419388663896007348385459360468703298708485940967887027291247530703377129635511951047817819303880620624972783916802965793914768555149047518078877267564447820088712683199204598806178043870040103379219884803292430777281321278013520765379932226036160435590558010797465416993972084715233995279345034222436106465462806757533475267043256488864224989302098136914950336535934345738534622401887554353242022606852722186454225241310120376108928685270978884705590596483941872222516566101189944710630666958302668722244864359107513241692448080066164226395610171961445691651036364503861223847195722684313164524984671749082764804534373947760180829864492526381275831647257589655160823092919821143775756974921630839650631518606788561538211960132966803113762156915526864375097683400145186103573619416265081790973685516307961165466565045772663559613694311948188627953974600038100370793072927941224047108937717388233658781584927365249392931188718376590110085745818646965494475434961563308254249916514158983909825993322137137367921889640548884464792587214291010794278444536051097682791804918264332768759490206963774769615309575743847963714224237177205365391606771142993817154492174954565296842066002076665579897563123572538624721712062344608108190356112045639022968583457429012135339034256074045535601238131690877297939595524975070040051438431990706170866307897766226304018927799333868228584703970738220251334206218257428304360761798323198612229049628732025033393036599167498748910861769898775738653105151784464268555184406433720804140864890567031345237488469692628631769049649700262926678677025662009671068353195376580504402473478318429392339089478421211875989649971114936457764940519555311191550319084530479639771933628648711602720554430977039834939627557557239274155650602947267140716577056515157229773061057882084494769734579651528704899516554484789561856964905272757629286609847778436290651687410602099807713487710038348382231374643015609766199981698204644047923143714718493691248154322611984916321398227422502476989139080866699214599287152760635285325306237605360947940271847612718721913504498977559467852630352049055893209416784851696539242707323937023666752656781482299180759810670157681331609385629049055963403213555850635857479442574981772928245738046898609703519693173160922976202339061696418391672336733419956416085547404827157478716516209141110505983310780190503814085711392518620633122368657955140633314193175750802702342827846042817346970239389956064352431513861313091062734517298184391395826385218502337403570212912902313390147144849994323637873112697984095782617263736705764790759023674861537713860666938927750669332675968296569830314621428352159846445724243766396385973666573815496573420138661234865191677571934298811785073762820975046901988815642677033092516975289601471339132505497653807063448917320706558642713562002506454257035132470523353395285581442439253003100371426703851112338922403937568781288904104271504721733964693313990266909166438200852633418001489375652684194584914316744740547787331918967611625072592322411142337847253928946550949806285500823718886602030018215235938860882079932026631535459845813871058886757796377914429658925359179752466288314784423777567892962600784124424654122441702747547804278875503140344180432106998919822400699280541597299819753157631926996228873707140449258220873883293614077557938391599456932263347495104917138226694160941891151799301296450084383830297899536239546820076514622993884796028873238903509102296186922807443557578733570483246287903443902974586698434540194275169207370767266722320238226458276874131659765097673387178835337196873146409006167149724230066941882274630894628450154358464036619432815495675116925629647067897508677934924800146314783196089823143475675122642248990933242442606356666234010235271524474435607005117110341472443587658603683061803406752002470381424430088776157644919807255482227611858327019798737722806082337432358076373764400389529554344512004444579403537917177386938871179199727055342654211473087798455322829827144155389464203546091576921188190031531826620218487740431443261681966426169933333415321455007910015209895305327898189993541688516244340677652285863450971902015692379036029385807091101079830785164960052991415562883498854099051824603807352987098930908929080151513439095285541076014340479755894918319662410774792529325124708291751483726496970156274013102401857280150183628170942180695825042928254008837518294701814499527456251976233908122985876120036492710846807631459225174181723218092373702098620708812621073066633301570185028972307995502240025106288978610632241365245609648851094549452572871810023775414006435964158903694552011409538395378783600298813067560528848798403157197925513608719051193498297730646508395198740176823892451009034708206269320367243687336550889419229528415117358600213026159445424060820702067934019198852291755451156599213218212346397225381952230478759816780742249085569034988965891547930170782920380709177952611594246982401549070830546789927437324492206932670321460339300132151725448556785574887510823262078065504465427470670170034512016843665430204352446716026757258974147432049289924377735290337584521406529710208298950175892065839829339323100780175080736171166920732021467553231263162857676397936610119648624218128561719288566378832317471867110517526118385617755353541475386109592456001521097625473865602933579499895956248876023926418406912074654728074463020684816829075156165300820810415182100538315947378538438518093290122708496256052493259273129744891228643956608201376928497140676715166265858932646691920432817439782204233229311176541809582280000238423475583985732745679524111460716364682297370495544287890401012359553299730949144033051874483955865914016155028061503078584546903041354302126312696049117618460287120124930276074099402147829122656608192491525020788111763219124119945443963642053069328575885553695244259219446609624349458771273498011823432787636989877022094175361516583603406551997167289650335693980335520262395217959059603796020241610194165124226460372249111402648793735235391538598334400935668662272791685472800456952328358372559464325207734659050524504591060987837566574304192631402972924143908378965215281776539842792107660900541748693078087200485474312597595679989556728242091272164348135873057070384323954693972907095633985390223684612552933441602517964454960248503176383607848450967919696273926028709750844143833549354144770056076196344464712234312245097908747436741052674959141127481124202234433837776996471769269870436915596994840263109515092013162399359932950273527447722182085816106527377844564580266640576958835333159501995573377765849986815861209579060023836991250068560279376966632166083936847125375925670020887972991276076592818159260566418526999671789562248916435344762191126066948651820441511148878516069785349642727426959614336927292869688525917275372151259771354815721975637979024640516815619471920811096613660670034136069109748055450135617908174001191068239788400625585176140225357293536172045129874861032476198512133060096494076014817437635267944424765380561406393296708587716631768186526114750305799631363566020180971106473618211927939602656786200365842039372814756305798201675224584632114738627039046794320636224522888152776703500326099761984009380611185792872254845568512695782019379073658963562799605443484356092729037865561468356861193169788081256195341208051792663892901789247840090221767662916815645205013926819245190769228061545208748347738741455766166115896934453518487767063008614459668988104484098043452304934729894585581819228644916549759956748362163482741935010437220186519310708101824143228367499733076237532251631780016652242767432728925438293311325550750345463512097625301832696133926876856482156610943575031120680021475077501536190645692595017177545091290107788961396242770165983903059617305175409829040784731425648396464720184024139395505568167032510674431358451196600356179945878274820254679320500266446927535987110389749888386496364618916534548593120122241475188296626523986745949390843683971332599679554238280407268434716258320579179132516587008160024792351287515110772268235822910794308865169660962561019976629977905898493932464327823376839573053205093564013209303431357031763247524534452150035682776565234739651864543809465788128262453682365880836630148307643797367494868503813705829288170933876002284751212016115907517899834425078672636645148897891307463362792269398130428417829734921883248543208086927156404595710676099023909702896842337980687614308339864537177153438904270880719312577427684979895720498214918384256641116311960354841250259201656736578584741217214043748835143576423989570734718674722423314437403540733398536068976748589375282505615787585463591900876603512414641420947898452062848176112763571084494671820407129365486176110169121634137442040650840623324213808423330684138351694615010708893644097603522765258264808184563263202520769598757748817641115185158644279069986566591223575284778999994282043662495035961864721382297422175626809940151505238568668002724038141061022118354623346518376835023201505730958816099422863825295610525690098762299228059804038687862629514568856773203714407397045720284058524712384366426056689993378398951422556669577920432394945191510372183794642788605533487280997456502028472086763391465294531656872897743292440034567219488070254070866351087567727446287713103258944461407712295069547072461475661233561364352922874471177826396806832406467620853562137977242522453610081291901928866050642677528047161555574626641354212559591033350208743448160710897225616497195721774409615835077735456957851775337109016593919361481465682914837518221065289593451944664940600383591838940828348857751348817478468067321537291484513137466687664052790124105690529921547721552392590198489884639715174181045362813668925484313700683541292459315523620286442714525721464301131921313217072625587934707074784028880027675399542629483794974898314894720592442059861730345355872919289569196704400864696708574454181600345011053215130880534493500886347547940932019963355945752017974913916720921658690012798547995213512954739556143439768510636573253806872563284288825145439151132417811018811274075971931409014963869432629001906239813587858913655135488063599215516715787302299133679368585990580707927032941550985251988919707475013049515030954013635022368496657967930880190637054715774066779665401014342327283387193185622941877426726438963340962401391874235163657403016547366209060560197356510512798356337916469676051005947585665133787399932499219400610962268442239888556006518265341671638590651712162588805359897081960764391358316037196246359189569396526424469730264872745149386658063477730167059146468696913438386917777228110679552470410330391838723138733862235694411451444411310236965221036240664417983992460974489692208196833399437838428383937961260116839707909649165571291678870994289879521516011186164013933346922282087785079294046997132700729063654798814505999522605017690963922654899713735562195293495773803679183513705206797869684609822152009702496976741327907687126485565212631269285743934150505569411931705874333943571697587497830340074785961999908647127537010187764527632417924858203742171919103471581300548933120724257175149170358653929065921870506040889179001560205532788018778027456276986086261497665473182760578442393178885907097305970259841242666940026644095794110921982111151024585587176683078499274228573981478446916035834692800156362023360683949367936679341821643885401984466120121406354221310448421695528234141396400296088195206668899090738684862375454458359048184741888625904845981503066460154876687934657980651034379896051787673200664252990412058862078890386818757235948426191064345984519187440246473054932345327098687610587797132750666288783129896679637108494694852539373780388621331647293473203071658989256452141324483540739431056887998895802575792597934930005636896735569202922335846107544067322697800065912321160980542884384802322003342939455729278156722169993041683182397136192110186073077759495114982195806422680001687049562184517886343414609808455717923425952843128638910743726366853195062546339268215380466406591567917361890866347897021370491611918060082224277485743649253252119741930827289400157101857421964352715542521237698864781137019778421436258153588953244718274954771340814333424750076803591547964894910299148676699495887996352705003962209291097237046737355163483658765558211701860428796027449856451264635466610073370813548356827879842152065095347210897885381701896020723740643874588222973838472878208489031124042856473300807771507765980904054286336081393371677002231659260889493829890324083144580711562817403695550677739760199186945565989947107263498806541755062015456760932529870056660209274974461291494109212005691409122221712355039133992484531054710501437563646919113052751508694003440489949013474881405695831224638374759528601141527828430850522065072147170834206265665670113359125864284946557565325784981576150808462102426931833606039449095482260120986654619694903401179947564122528039285145192496477766032576859418556725013551858495320564754514989870492241288431738861139542404159689367580103718169595834818573648798672223720206602943708840746753590215522301409485259839160351666939645919289230928148341818667984690667456294633437270052450360981022267807029887493698247806408027714494733235256394322688659778124520341949576743464358958853963883778374789567647120991777168080166633784037517024859504703374606151009458465416016468841978989273368462530502432197182778606449529729204128543483551349481609236256081690767997187610149564524640196425658852911139463427444131917041778901557411594841397618766862478910293716200079718610636457322327181388182975377898012277948841819772399558185240393604392133506611719920327974135921905850473660849583322506260614662856779356633075150420665109215262779162960344658807419260298856497415541004394821048656861659751232744547199853516707032301139389054631426221686439251828505894133907773164934196520493926355838659719656724397847152259960266359264302036308762644740896923732889812402872415854631760815763988681155743086370510178599896385046196591513863379577658302590133236132931038850520187208796127013766191544085617379236160830643561605433646446454374562580888478600290020274544611855384612294069393620484576653944421703640877134904451566753995455422477198983374827676969161420442426129007026080681594577778684682289644740122451848306232484133752731719494170110537393099934556622772574763799796099735655116635310000494347792721907223638870456763930338812624773557796581996272966801156071489323458761123435892668656872951246495358154405355770513871975691579285441895705833879938592978883470643700967069175089895502753977410053930459458689834632066968617265599522692419808457504003445094775465549048177226583156783586139731909395997712389055837299101030628877369287368467719750899483096788468138062513838049992558319359963551530441924852479593564518222230391655652306336221720737484933171689783443048110864142012589168388872651196155960398512900553306020446625047959686090712330491471600617024331467302826379237420574301972162624507143260082717735512055211954620702651541095515909190561000403915492617880658685440065618800091989866819409479953079856671114827894093666032751728082643263199693825258891918545742127201693286621978873457673495549527366046612959232970682509767818193385532863200323964491322793825357141346964363848923793469948933776839359634706225671879296785718485957100700995383377193734716194868551741151469294456112651287404299791164434257787245137557772848678879999785044196018338948506748463315308685542431416111247530834609812900964414204007858946500926167369144130593996616226837079547701182947085377035774802452909694049470314895379584023348133384332046600589372233720538743364876815544139808906168414812644691794310590322759055625281845736614619899665352085920516066609873345977732615178988318858584748597564205918954453838685927863129706624064476988917505183051578471102639835252069410809162466545132949245441365289410281122313649517394114478286336868807466450361403415125140619058303426612938864970044477893159382967452012538835002289596436758328899836915068471159374677462092875979905235115070539319932330320847790956985394314444501689406891490034328550352657431269345578476689831465051374955748722292303286272932362917196050206190529540528065570783142122205105567422608100949686913444389763085156007195383870282370301768895252623834410279484842723861537752970056797998199771766486883867879552530628494972870201058032224574357112988135312063737062082473293925471329162169962359515120862779417767824450404188987054920959214303795368929849029796331448128552908019721353179235683409576604929313850486030510925061689595850221649753982514172601975449205552257937770020782685552480431083864217495961009427249633020419204690925926014179662665970804968146435660976282122577534326944739538688398569052792695752977624584915149836705846296581324056020838252704897621201255717894163060266791823847675557739495087638208087641379370396372100260107334927370514077647631753087506898698635869220584686838100963728471003303535894210122340380659961836546588624662280101317553111155293688287540100420826054531961938695078078364668500221868909133155619315268720480849597266794612910728188018314348373677114533243190025038226875438036696398936071766277913191266134239708903284585792859930498488408636495861598771383866340977731435077869421719603602101344298574521795255621638233123989179063334735549636994155947396766374529652073340807840399828273015406718114648424477840858980721601325156649174884754691429672995720944335908724091135942964905107982779964181941069124148496848749883317238859853040268460613926015826048580928340030361598348121309384577607366699546918103566002546030200648768195087035556183834916429521122929399931685953505085815256835720149441008013390270707605376818201371557043348873689681186485648167754908462464980467840627881690664742053769913712329575328813591528119201121920983360648281684919679539858304813110456328955728608289629414189890802827007301706733546165442906381354281151063435954069400758371066614047187787040684295197710135323353263161897377367607118080362558893298147155420311250502603148473225070044035966495377696767810027013142798051438756436885445310415348287951541787081987353594058357486761830506666026484098423488022112973275230401976327650816261120684151959769402297015770620177130382160738269301931855355087901581380135702980704479561034808771086205875653025391072861568969385048558132387668109225325741178830355250469542365511528799517527852025133476288829268699010956792715853502558433337402371539938149212174276778660647877019701217471059391748236308199999377865682588783559312211357115953915400056576091628609154051786529485506372937245880385414459044968337796901291353828510052892833637316295878863647758262828116634531955137923248530648667542406553160262550359798220651381103959331015657653846242916498891268495213207234079013562739971345574138559711938260618829216065690691933408504968467410425723914355222731787279214441681748327475495366772770886478817134799494057261194667256301469324393961253622269679807743411113344912744917340878936048091931500047814320875192619767629612978898835381936119559867935426000928432362587289714694802402138514426009732378704488486751290044157273539771460756306031524888644542009901012587558629889327663611089130699778641554863811095482176543851057124729560184931057416312133037282376444834836910713097686881154455127697554659196355929538519927314497931698622330440868349893651906276571440815404512301171413228540315962721200467824903592929291003160942912313318370494874894239573759754993571778538271780632531433879904577851321116066741480558953685669703812679170701026248236315774880129187194497152102667597042115673647909262765587189667218827349248783368801234593359122001005908191196537869192802896783255617638245691955676467156629451016655070787739870076353150478858719767134662264795590746793611567338325981411830542504429231449641140217497660483576979046819003130507323512913957175900060318034212485441627477402259282229135081800829213591987702861266708029692383590307966846177521270533680410709295282979481330904948047687559134302523691807624220332060843748811453685352210288127123967734461077321500470938879157896669065993265444102432643738422705658872882576111632742913590358880432228423583633711697985746456426625294749471343560572196491703941658957440104390871580561637488227521586927147012378540590449936826927006024818270970106347971369799176132631780379739421983790257330468669928673880893936237305684686960816245192324304602217489626423899100237021393168776463369676085476787588409282552313900998905624454944250109347569221900050321775183557814467693095028005242528367079791349485343952156268036974612797771144659500638917873835448391543125559048511368111518890898759532569689141327794191484321621993750205383285663337741182089526995949241757824724018789472364781100586009820922685847960669602319278237706976104544182021403938670183024597845210825293144671438520852712377124291459353612347545293648033085421693925645260119445428613795870271950966247993722171834820251875725090316591011868829827365232513386844796769020883435074615288503415580229217716155022767041442593427801780156587547164127848636059495188787972550115195661368149470092691961035017211531857457992279538722227347002349494645425607545537332428242439617417345658080522032222260522471833162437503463833995764278744361104650803917081573225359846832182498487136164422159583466665613485052870390313230668525688048850370369689269477691952556802960132410416360524305784391277342785766095392341065805339839319634831300490611113006922837064339740319829492510177250827119501211303225344870857684008234138070300021125375752980115999262476005013560129675443607345145322520557186922688332232340065102682611570897964185693163886440937567517184099630927797130276709242203549126489595689403897045599405289312777286920850001610759248253611363502711745299772206634319670609313263351784067518621399937790682285603171332464419913844131372978606023345347411624708660231915012598338897929931152959965531272132878838421145621388989422055210845066300782671337464751132175575238051915673070333099433244719096802214321053350173100657483634338242971301231307273548873815210599683052281008916898232722498802863555078087271909711649095739016513271526570585520443463434013004892500397614709597785897751677941834503066457550626291286237884980317279657422344669276132952246830577667634717944537368469886473611426505448300019949812577228411405445066580966411571677678136381118321491841903957749028413854782621861062278278279349729554204342653153110138988395789274152012894585146228306018974276412650941385530405822981785009953872514971094619427580779734595529475901032781171512255175774784767597503891692261476885742346087492528570141317425756547831210746699504668982313817989533908650064852525659054350177319285506539074748305750998944985165241337628536118044656333407673421586171650821635785512687575639052559560299016740315696639214939196606830524160563070001049115274110603623639616629329021152863688142428438596691800747182762679539448559956964655101775105120447604148742101282843885467070812450994098921201970480305107005711759247977480583786867570133465767031983441710095349533792553384030158235643633755510216170266647903049146660119892946001347264332452870309302896954504717112150434618759215780005385948415694892448297097917885545229709228481433903020745923619216719277047824020433775110364432306170365825128614613380207020076216439870873958837237434345249635709961285479623078446431403164311758647539340115109405671537214820512846720038966081562772291072634947438675336751863324418761741688190836288825879442484366714932784644715279114521269476404419297104982614068947332044274984309841631062407086874048512184863241660603840221614362125526625932580916473334377722762691931713195538076415544208438646649106123589399611497063472030052750559232775698756250883655676478240169210070559485123522988942697207374171770426052707247465356741757248209494686536143537232929000784485791474305753662723297985283467560049064239943698062216478600116198148729758442019612122058799283471831528265372453010037402992632498477340071095320269177537942806967165214562440062731130735126952872402571573430979501959885411879876449588440031239664183019402092542621666936393053531424826602781053840737027380462326438389159473752948001283417068968544842467005133909857587954165443126276596127800298266126133310727716570428891606734233027287946000550554539273635735760103972299055831468833186152339693924027236968173738358782488270013012174958979837405611256612207425217270541962699677004018646845921794563093463732030743211591293601881795037232192081224481749389485890158654788024831234833753663641551538156748011537738075745994465099748353665171333178943412018077956861823296449817453675768651366247108649712774526920527789259412035365041451478591856748971347916977758996294090579254056311573923497771022043034756888196952529239023398782124761928694999443208726448917515146012697748037246236205808019188579770384333601027511480476429487813892375308721775324716987108812665798406602878416698511617612489475316923906219527183896428012059119503516555985856111405833332885475347506574371632006606656626060998873915417374996183636355154732240093547151288299507370305974842449239499195448027772051909024078675117608169912472615612224094517605501898628340065537520960966566864977064122231772534482039199207031350442787183192539486102397775105558949097812907470452662753305519238087492379474175984294025224947852166288545355056997430091932603052843094299556609918469266833671750701775586499217169953119155988761074735082997146047024422423671058362769740973261748124532889483119001202524029085753508065401906359454308618257907200580423877558094521625481748536065699522065486462460602496330759123268843368657379058444142970712178147538563211314647316205074562936415836893181647913112547886961416069784725404698803903462698073759906104593701163851491377034544133618777929593458240504823867917276274732254352741419166921196655811645500123504764827870401516457470272863985021118982441791439830513219377767271335758888435724603531854718232855158111454557053841206689440805455583575283573149375217800808260686137658527806758221193593668105743646280511581544504683692861995674278682645149597811355158017539495732956741950232251030269944771640790922956921627115925390924236444755760737205943747495370708040816853856281484344767493811120510781868009446345151280468093393204785785578294152927858328447330383361600546876210832369126959212694489735764708037215057956293494416564107283951069995030491914568385928163672200126939769537862470174595329996512615748032415336254422423333864318044745881538384626274633698653799577733321608189345729889356847451760402550019425555542967845250676341782900095680123451726138584388344411372821274516778324805489164987380307820996418737236369548943743817631733388572814352142894925087520213374116354513650434503936556503406857675606244705728933151823397623307169740779082416041057318883566364510995954570169149266658266046737079816009177429198217502915433824648966656385729704251241045157529861106145300186673188327604250216609844504632073256865176855146441837008282182272519100822356490928390580587398724872231357237573775725567593281851576392423784176119596983036020541448484825324752027928166617231048630538565203579871281383990921970135218080471883235264526816996714817821914125806520492328157177646625117816628241788686663150387376782550640787772239561398804616693996337428851962198582651138183256566779658678637282152081398531568629314141010512423181740845912333950353369369501378089347448882902718543819625100292398752318166863589622617879943011786076788180022910028821060137334612644279570182804519588992694143694233877200550009633823715847710043081483983862167240375926720845710916939038372157708104076890382894897263929625843712284291416062141675353396270697917333414450339075248309968662535672239888417389198970223685846563480565354266889870008359783315204986180834781348371563007727914264788546673039139208160082631703717385158413236220498203244595397120570083842890113920173377527539590631222589280417539802722386718021785487098784046479882356162658992712237618501463133422127721423762428025143077869804929158477104123772609099563885093160193136388119236902232545906382101342499965934225162613564756417533939064944991047579168322297254510569182701127180611414990916422629172815855571350818386116873179962659345928255606148490978056122998553719262101343046764263701038331891568510328219585737395135680741852953672887425662461128786694541840444709003863126059484182445294084636208753479155902283796608712863708113118123399740585493113377450523365369898913389290700491234350566585886966262848810170336552835741303221633981885104997030453252835899397296268712949550258484806108587966663701887946591604879515601598071007007942130310432193919782753103414262255823875778027074073567367237079794121224658462306020331288041532725183921153980640676818716324878653822499868971428660676340962535270994184263555114431672678965844735997393833739088503162211548046525122215890115623653087109193367735435786489089699766374103162551794750277831529680008396604318234185964323463208011278814896842621113502269647023718158882328922303842653097517094783677543520753765088548361464587376441283001233237430351877070561050445188261936483937162500909729633888265896283770093216609729842128055074279970944855477464512717642131036777737444841463818095792168665471071171499952655847908161266687838403810026266103876103149603494943352706380131129365069632761690999417131003482600004529556762725075562691177263941411371596117605284824094459770700508067437045001309672358169117587051622711263117519401941206279209091578875695518354309216491245590006996231552292335625829312416375604005818566601214880597897086069819088399670053353647582833039039528945287742923744955972728849793430960627209864287118973140668013263999109604139215663047992124011473026699298262451347326359352943153172231964744694410819326517823404624427008419521498708258621033671705730721028385388990035013013350976721069687683502908637922716352350430253574209736955243500843714030590233381409563175740483717750496276463203703470595092415158623397924178844919891219496434332377594490750474294594569855101149329892892082506871461950641299672193496236075906546403720071961990677947743258118501550531416096508523943746398188489290659954443269579502949839163151375346324865452634725484698284834744289350884814523858980863488744760311935542214005416974813779847110383015059559028060397379958887778627744796344321630639412353167065608057746763665708002211559584667818820357004550019506358562141943616520382770796040077950702759239949284075688382405993188471827775885719903880165465469594567427214665644723510598869215011609723082825876724044149755386151965415816110404966921376624439590875056301206012016599599880569931451239203880046958796467211974355207297083910414224094489940584693153732407069215909258837844363596631970299945833786779817417360459672116189575491574843496614362194235829494420724927637547484925774978422298546746640035541973085208360017833716326855923616075637553138059141477242959170086905790432704881213031829898570232699193218151233180457723402360373438620204691273538122971047532309595461032927839339759381767530745594076866182897306504601198041444067637794934740801875033276853897385523484666131111967260390126157320868366716030912931064950280653177479072466795858181953019165480739814100548879318405237113180270945137926259833531749717005108390602044708243277663625337019747863032456824532118077273716401761829655655468484679504095298033124975340528268865619593764080108215169281880568844466676622700673235197007390045714679584941233513436734708409445533357986168759358514828658406585787323919015016736882713292370110259918646452957343389613931363221025600613903761799607967469769256144349744789490739036349519202413774003365392508923468559549486338126074134815711104180448004537490998801847206303709145159937382066830165819651500106776664053207189364894427743565578772794228348163708981360681414682282670493752341756666258946880686046840345467113494492408530789448111338345947197088070564973499038566661187634954170235453935553592654885087571870857736486757766202909461057820413861754448783330683484147054834742581401896067371607370148223903263675482301970426786071352410785094421162109776597781688917945656922167463484784871111121572741972367564049878629298677329038226533603449707463084394898151387709969581114113105806294605898558566385656001385527399325920364385034520827894065650702215267404826058804878636370706109223575104766880939172384815726296914524644587365196696231751095850302117851873900256527328838934664785186509857896936677485422579772815141502378484691244402763942763105020972526691889057441535043796191246706148150777643129143608756576829137107216678475892447820144950121574346785323771978188572273008829126543260058297390347057550989494479002729837151245241601159407828363321735293109969962876317780055080959576708555704767526927123095741298093456844978018308760308950107497781466397571828361640716041877592958056681770935786598047063160009217586935980985820233747094281460899083329374414847234461682195168951692450038980598423319515848514448702370049549998350632530219366794631198136263433852856912637753207900369938126567902766894962494875189661393333436597240474613659818449405251701632507141467126478399294972126982352592118267385404396050464433634678504611843579508581773028747206493182288655110727694381570092580065247347467384143570229341333455518180995585194309846660752601807400802891655360152722937992985635152280320331458307152196194391508462347094033911897348904259919169930363926518905397881831150933345245263342335372931473041767032827219485187139428961274281070577008561650268786798682288802517830385528223632165044876433029598835936617772881244743530251241005119703561391344498405004804585771752001053003994785328670223569133856731274869353679075991773513745750250690774817124916789877643808614642514203939437457969813762488137478949429146313354034387130442944650693666527270859117647215597814223431246425972848059769221282048854277241761644913159486201427130346474692245231701844044915321839043594535279063576602340860265798728752448579929576514891423239383741141306595615376306909404395241975062065911293373827727063120170232738034100677749170826213516041958841886735604094996370367928572161629014398874831178359445828752363613177416915269215161214003994416503716708942258384316801451706035864325932544221907827612510091383991605822784655904632949565085716175079560395834866573502948236717043951380036768389114362083936730215816142408724788625854672860965999362759076512960968335600266858072159232013514422140300907844478475701929659265368082234950527764704878843289068970467077144789055358608234991689958694822610310112419468120880120363922510252773675210737370277629875300757359085632032904036259162453894399152868185653622632430266092452783988215130422812998993210548862137620721815972415921117265899739390858793257321161757540172024015638456200506368151955073375163223465371488463747417920367773808189028931760947079099545053260197342525868997703197048003658293791471331090772810403748312737753130346479099030815221878061873734669918420267510560901729065076724191580752344957324413127402335395247118282008003898664297099080237870562207759001098980678616619439824440281909715748049980148447084872558093470499180342865235642770213590635663141517694560769539999306219991867573533776556586727539763433155546665830134083971607585902736509206210080012488359318766953492077564903032691349669108987740385351169978037811892185756295922652197531601076441776342546564374461470473605783239482480463317752742590253837035246196753169393976687225123060939643863822501751291351507315065681832897935029282810051063540474040108562447526250780531972905932326299636732342178895446172874911748924778595051448777644152597935309019631841550176288870034508919116160363378890173979758025493627001911332514691779302152079368456887674781938402633911306722591628143334996929939395090932162680606877312363239840238157346635357830002742126406165778946484593597407096292324281350415117308286942375118811665689494633945111916776045848587678273414753224477282898394416758103700014347762149378775892704961786785698205510457105251767336850569579878566343812002678611539528942001598913601797281982966103112710881790813895266200171823062754810680166056228986750132566131285039153196489480192610409344491311292210686357256325581643514397360729721139372397367067643326543493885032792046356653067953764665636991175224956196388229982681086691120495524211544130472352485490250565536723239590279121605911536424503151246580652812568989122488994752439454765371303691428373448725309715750971442016751863908455837341722476224693059814524719780964166991471518007683501205920665758398769980308957029569295975254195423289470759765054530140266581240902030470602385930430235629345647819092002319238629773859106368766054162744262429821081972438017822090914275306168388585396016805109764466252690233755575400830723237940976831152863200460906932595402691866323722700164016993993902452528086015856914882657493301994606976525906440003784106571896838785023235739885992662295919615895292832769753267135782888313899260901871365428230447401198603890746719345862141457396460291901852262524731404289755833688549419282239731736695002897492716328138159461432951832475581110141246281416845129048121902985805936943375413438406966617657397970415892671636592436797845398810710437892766217692329312219138072934803093163012925996085319979636382884146772140682244647367668963294735464802021751574891055292692327321600810630878559482841294000286667596209789422604006297039896158269174779954046769804304401420261829940303392098352817060274919245232447120865495889160805450846609327835131966242260778703434691084659979702034628523338649459144508109545730490921722282944956203086193886359875156432802192822047194060123647294934910928920019787509074391175781282152587172309893218515549353805771689757907779657036098951216742816662030463335495964191433738635861815464398306536643965816500271928026101218767895926085810528060209848189814297405661374642229159632660575919650442285971670834796489394219502663430772828542909140391303360227178357955541260492138659982128959946984838123073326662801441965639908455518661473053193875945310210337368054944047800079897466764646906306846442480384170447294983292269443898003711073315983251479728412667785854544534625883530718669034661629068253367518879505546263252327608647087057659787007602754783867230074253954222095833613229555615016584374293243482446738030362135291038158283478641830741111740326981801370567508950769002494302615807323105217758252221071832119330959471900833140561480223651228983705819884212327655104703296018647650992837062303211373389100548644946753247839504964554886160764562412892019871497104601624461643048989282904414541378723896983103733623110722033408042169463290090650540434775069339854060015234866757247309946605080188727565025665666971829602372861183426387842326359263885001528795811364454794290826727993178727751571547691035670212015657711584295354402133227465098800875147145869693487148283067083602187820389520606277950730202160732099865788020363873018279384413210507990905075706207461016691540468700100476503848130109620627068467482177303637362703249924670350686196969095955434013554832820160544372242411208689163817375520422971261272012058488329260571967874884617662043212571312267990169844766144951799869192698703447986702034553499824555519364890916632598277135662759801465475276980775787683468982023502773374940408650615535763687442212396536660811343417661294505801290215033405629185568096339313263287420823538258244680386712541764656783287460650308441180154969913457245552563155095470607705299247830077445329652984840781003964301895940914322025439376876483980468230874311461178079938041511103908368997912442259109499008550018163034134907215725528941693284317096239064107456902165215144910644859338193845561555970185670423271499547251923717115860049256756351698416652537806173984941618032701601564043562052831634430361023819122654025420275173709671012860952338778992986559267053368701691925926449303631716710628054739456654236413598027377712397310203221553688312044830294902350214244306634608353658787455417077502570788068084712688459171469683448028148563869239731264682013685617629678677375102445170035308299291322874738789357883915561021028451928626250032997638273756671479810696144055439963173225815689326525679578552666033565690272736203918666439767783797266201256454810442286919512741205820952394068114917106750998199032680372635182110053032102341244375697494436996581187787849404644270310904932397002459493250141478471419873140881554625328929893460090644977621116360839746088475841858531064507126567027659510106367671708650972260566953238651374124603762418595356712601118165572357926153424040825911698761666609242077197161281752600020969653523200204134452240681542786696593385895360717001111405559367512996185147105591109010867621046339463194134311804575716466387502891930468104664389923126767868329799544271307118382821541961212603160758009112705592956362652429815831262512723366740816466398399081028995657026590609258343368698943838149657638716652834763176462249998666029661041780055197684814469745466689881466562987430034153690818603232164927043308929198240551650732897857195339632915297171318933910047816482290604200258769718761392561185082007302162775584081127507120273099432232506088832784059374102882362384619205094023287548260159442958178379683760027346801546716961482525630454100825202549017658527991236528188998342514241119546569970861988514021814991112912788066549921660797105031682173394359364579346288759176807699655628073366852309464983450523908990304139703978237113020623133829365736928735313852208831446164690053767413772647796374873397989468829604493938992813122059507654059067598894815091258911957277781350049574626042223205785586417748265616654450386152126629616575786377699284087199874158973501288990086900218691321332972984615122984223638003851237589209290922835425386860432271117531232101284529402512574296939884274752170211213675130285981065854458455203106043704215684969851596827679481344751411129280092080680815332438538142013059839142725076765746748050926147671137087888478450583003650253577573868268571891810394077768230196155450157146889999780510880420229355173675028837009361658607228047237888973552089458276803777989605589746945589503002566798039875959926286935719097189797479499887722910722440447786810952989530990876240010571358040005412943087337502461431423825641767442417341571684978649421077856708149661642460147958945912007785730731966717157151704634575627741300156478380781925809348116432031496022039423896523207661034539808145120694662742366796355890086056941139185889116287512179201922655753033096959324876842407129659298609142408171929796135295729271485224429586847634112092452631432212251463010650814497156277039774808325560183282926075890867752791040543349675562020731738969569811383626135427067817728895130296088852539875456176497605120582199559315694795370171652253523911448338605283289176286791854111461855081918509213982793534515407330959841004580580950585422482317986962434951808574046452978593059124526401408476797850225454486734882218491163120924845465371805358128091685844633623934499665135635136631573231710307064641159767383630053943588446100234252316838117883650386131638601023972163867936564181665322666321506781912029685417657153067791323936246066502498480323842871603661854698884594529120812932485303779583720615930312213360426651553716207179197853270467697227462587617613341309961586995293276544774745524063437764171848047968098413740926708544249282911489305498589007508634696648107711437828010888785850739554093152840035275170720337163914821589197206402033381891725102493104026145062014388465639001418245635172159720704310507266125763721653653826262270517276003476418211809547733883825457383832821201227495344860247172557125429391923334738640823795419360481769675953867317133452081085015675356639259103822206421667806589345565685658836009938690531469060131065212728905875277844406093283386279968393493132994754637459875588989484857340410889438882208415338494467003535143955852948158073029930750560877780796940210584568240724111553302481138656068424070249634910035964651981509372683930462750078918145928216962540695779586733369849032628343592316630637686959850853319987769808707126105060597428116545912796340320247178905899872646033634080345803256725582473152229285828830511710176232397584628081432441314178804342198673555710211266016096012761415113996243336521619913579917081473503488730882727861519295301756184465748515881440992354067018107480475551254993326225155861216108484304986940139100577443466493223533462117054966875168448184922856906577570696974751570084930917848104555467474837881244900846798813624819390173470892127359932851378654451482053930349197785295799605659967161265301675798376884041103599059080871389073933206184285815414369391510143030681736648962703037566448919230304028769257468178979945232081211021381654181606042687383158012285734027008541512690474120192226650588717370339698975595373091051589617729272281037001118650081602976554219103372242126226700532573895146543639105689904580194260602259081136294303487794929732502820183843571886212280070651371775554043846966147779380979806282374411791861749770942632602219317000504199800226943439678867822764926924902178462655737737788876058343823417664686658202809263125729251347634923458360844016059440573109858982869041697108678647436452141393021728666706927617741793635453440669425461612743491270678527817814470196598069569534296295409655101149922781542057113364726210144605375764282034642838314997790987461262095146977102634305113495047301855911431852799400093458358411743078474298629614314540259957442894201606391113268295505315045915536321642076712453092529823518087354763653887294547802980006634299519810746733067757486654479460500137961945650354026669886852869216903382507171761757401019128329205780593642765704924659265381546918980946838417681393583753445674123887896044838575688087372898872047910316789228323111369175248628741321886617328299177752415957272029917999150246550189724542647702303355221633837321657531841011202874704152726301359112523448806414583439137260426626323313876953496249445790151620639644671201566933644767237084541382790042021598104970957060854082398570433573304337165766302379376662210487817341784519651445024710009485177450712632291284782353817932950526852155205630613667270090144781589410113861056257373584323350463127207282957748968350725951696066194161258551722778631449066944542789839829171782145399688841845940075740880511366999563717553645967331322151578411955447752653222047821726881595905882705582478620458870242098852367642757016361822454096479501589385697289831479489336962801802941692883380130983264417205387237357083563927371966873774376529036119622901458562627818360476099516904631936964881059798367292030108223196779345766461459552024268272686295622845958355499403217624316120338986986007257517959921644481614713679323572251767376449899139719979548759607587675768174617392934036189543930045239126265117202972651754134981080248082046688449125428256827087548224159361052093297075408595316723818291259081106722117016609366260164746562519504756197206428521618444147078788815190963089722711081653692606369060205442274956056948446884836139489782337270675480956422303545558547882520673184123689794781604769230305151945815525714680655706945396111661898115612249754514613255022092355146131838381609721701314530769937487667555294055367409790485226335437104417085668460832168710115939076027345382555156179286544428675601690645094489762301349069336958883822612729531481960182956190879973110840702754663394816244786268820909458700303505469282757207439720591019671298475051562289622588394339704749276281825581154396804923701268333788333725770235506219188213316323095062573170314008456924677337436907459429106981505631532107677496304479163806033410861201837574723151974953949442194719914971665783293614219947057235028516366736923337124979070556313761977044619015804082516203584402579912031789414576503115797640557275442829479747456974571848111804264764930713268932680013176668017313320294973346522358487143560022599266275877375602406805746112274835146851596289796239512737314530261721930133016488763266740805689874932727937266824987305725042349686939656267624649752600740849514604808931584921372485058679631993845465545967815368986828710005304008482346924726245124465964322887740120759656722961515620989932893769154105267574278371062270663036098579199347501196333302265283290174161813602266687125469493254034773525773870995972559081066231107044740834635393286713341663383657453323548202394419546115536312338221717414701636207560924638573435168590902218142561312251772637803048692867831909909435379688889368780522437362584418817281816866425042317816771161672059573086264653070060216951769806479062727741150015528625386102166410278670470292167224039392982718664288675975663075634934506447506281536485485316941120156647170044828829485427876831663424792059909368677270537248155633728471386315173678264283943031054591818020965659604628859919425570800125281029058354437684015009641762804867723979821917039313820585384830013921866759515577368527442127379599387377171443391440224175818170057705683473224675131245606524627552382923041439619466272459932102544202453003353940411095136449695076030647428881193999146564388864812121144222478042924620371644401874161952429848223388093162182724039500290500367566285286738340263113969025607948946674765668646054068032705348206903149554091470223500503269818237568118789095710945911907423516772540224783745280023929473525388655303529763320502013366104144547422768182953611996804460793789303075815369163055415304033378573532125504733980722033873903031644414928519816896324813992336346603200823665054423845705746105171538069950911133720999952992117727518962742945976929634347680308010236270398020172959485874650739068515635111989459526340503604114756432704219818846069730680141650411019671410872744715095303692938387399665338076424655859202179037714548466428760055539004891071612403438717359272269328965219241999202738279864208587226905810918365725809467567036974310125551656984203150200088052019295088877233229721311534674379796690890365159995362134596109482510918954264991167913439752902843238660059623438229358094535020019447701926656508272936453787001919600464803470346663951260801987642808130729599620596877367938323984807241885331750243795081437039337826523149717425439494284693786338449057056661078458726942827416103053519070395764661856543871028358271144060303188330473369018621904872350329348625311892347927421506597154934326820357147285099731511584419402519226150018682909333549971140320821320823282249571627929209743600196914634361176566661869023259842275204164055153490845706904372507141826662110641645976975058896463433177760275215141731466619448480477743891842392175224272372798928455315025573042737122134609794348946631011254659592325216505130526243900612064020022358938111355614835635033976799595211687658992632644678065376412107298576104149341777343137226331014275156217809236549157418135282858593672034215170454528670015170871404175655503262436440257263888428505370447069500474004487291544040889512067171827141035580201154078025794268752376063197528691500618658214570332424725697917273136728909762388047047523818292801779602940508132770120550671342294193013379062518683111357618140819213130583541565042494217341091592053581014757152684408293944118935658289389879723930435709783065674463993144423272228911491889555447878647173081799722723788632484090445014192179804307659410510274560212265680904988053947641068766659109413807139896011861917413763729999547356283559120876956463706597711549653472729452533375525698550371051439727756995289334513936958289338970798044965884664657706580965942800108891485965491747834518785008724489302277650385836988412538197575432276271677135222912086696533051752556573655700066074955689648760075335642794807016628760466851364225121034194736498872792049463721808311414786361404242184909720620165607009607086909240124347205773550782807209317441291276810556681451332596143035435697016015471429162575939009723936187232005024378991636623556839442704873539942318386379585984410128454592188976596151643309679176707640339352788851717733132474991215292224976653990971732986914385993058139418102830693575853676847276946109174025052004230418477838595676838191401087362901220949511397918262498609231372231427230961415523018191870465444558502155710704911877189005662786429143059786836240786013834873010231031518012937816329282532210564670209594483550137686957260483027676786145238566968669204619085240752127821670268783596027666208671999175854489075898356381593112027610033812988803986563699563102744397656107059293819189815298655773323460046449200156181492079228148677048937576274131301196575145768362760103613997420821487131351436345431913705742611579450330856506685602011630409104874493476328987703588775383879837637068254309738590393177025524671112230059082374564282397777545229161701852681093311990385629917705898213682078277629311098927758825711314319043759294028776070846892665114649429493790505358369339655435173842957139155773823223004515081867230177387602822664949545710785230422084181480489410567441456127110115730708188024561539844579987944958501593609374854437814645114988441781248347575932759616986832290052924306576116494950651210305132038531433772051731238724970973874603758802042376155689230515205831804950385171437334889225128405188188634862592426586954267225264041083193318107554699286937558481917347886664937339914500227732936514699516234747749909457090344213886976534325653079195584056845949363388821521708305962846532174292217397640295617778759248920779633039939162746594236643193245906368528372252293725515235244572862344006370492088181086323259301088187047391758689505157756014231566691734989970089393901085383980033941956426688570716153081171630867566624183601960569480688293818967287563188122211668335461203476853028245374216212107878327041247224760287252935566176633730470365442090741255676674630722051024494954632313903777929903276810260010919523940226043137985302008870210565682763924938818401579139028309252309870306397002126420879528471051677309636435220239185782316045067561005573918466559606674010512153481532871958384935450667858966108122650991553628583287242780987037154035341516285611195198516087207146353334200636913032857877552607726690962537472554204506186062983641766878695323264898529956633443017540040703675101477560757636227354562754523830224646736310220956082703495627735940052730050947710834999815765885750954705676604419103968065639704639950408589077958510507369287074446866631326782954269703197599052560242346611337729447333757453712823503572180301771524549030612780354895533175214167337411119754319895378511387679245164500470822520703751590194908653705214783457360763999799921129111825680963092038022562830127290259893151656982153767016896915485463531516372735670680125801172238814732048983745184840632877145972582011001982279665649124238777086791404109044434664977404500281559787734481244391045381912161038881516167580710959802445516449383915141725709264633643036962177716002337034918609473116278123571823231332500788136375408894370814365237579804637139412446821953449471797349427770331448243263745579499175101321127637399689444475179697085365613309828215427638299347661425122087535979865493800787359724090851022737203037864679506546630256495397381881228383427963553388511922382612820943552475734152145369031251899321054635388490066338576088975821947997380853544535379345946335861809231884379599881019192850937185895624504288872272039372293509908351165065162538692715520847723729352140620445844163416719143480214183905428576532308611695160545850613119799150772618349058678816172420193499306964652939918549214892417811213487112761650012372178917602060980617495773339176446822405421803576809695145067681337418617251045396647699838639782843478166233472370229107316977008602976405588705437662318817886065052213184577915746435696477444474770515448417097107408226586484272639799107039036557234100239921485000856336391279071375340401751922404862720778532886067580675074033677449345618234373189765104524271358628596990919229044207768837020663968486999551654686267416750690369166509077395340477427494120035725115351852677602082729563068723159969856593038765299328418964501759689843526928207620402598474319072603688727298852475171434444332942850552411058090125905183543328532184348855104134845441435740579784627802049264872604477562987854619101275980326247733826846893375046981428862915239561278367762044754748475447438051016493217176266536906037688752501961795619152070696474186624088580175616239354403399699500127650259604553665080370647103532972473007671036506830118419433086856131978117390956991656190080041250393536343238158109490926761948725896313116071112189642342135705744160414131487090077303032654690991491185547662060771748225051581359851881205760151440228960499513512759106708888455838038587757752961837610481364172954280535987597968416867869866258303039687794245323505475389668013763925053544753388110941085127677690071670719320133768700771510723989478899135212493768241322504750384946811016850380977212745584104098727969047295857105067150512657341239945726962973033017429372905246182526817398896318123822330775794633169810936089475517049865293783392063713083568736771886843107704050584783918173342438053872614526197199660602619203979944184899879950195402312437421848677410934988250808516459370835146882682802759256807595785796637711367021281636952154879665016757978439688602098166014388907572550365186191091439462693779533497741602873162683026313592019617541022983753865095772406753860293234552172091281345053720633710354763784966403227197892912906980368560860555045648097398216389379384731876379989353735753822727868595030543164939815964842943227097445736936894095881065656276301866136099081996259869268108547842839497743046992024798058379885726765750732881376481087743106070345185333705724920778203611144931084717667555390107142876071377943288845941656413524165111098349485925553244720332250580317610883056599164220722304223721409444754123675734390424598726142267052724551008915556958124111726747442507991053181660254731879444530674233590810570600145555821926981294795240736724055805167444639966920980994158410523917644260458867650617489050215697078529765723896860481393117219850828396104013451169567812837076215750815336261951499128464913095280918276737594820337110611353151849817816145067726978698133680926120513634862787464951664740431988242573278232311827496365434586311875270412557157514137300833107539691927641501406354077109352658171242413713953180813197756539314797946976009012748625820619367437588971768114540797290318436398416398952579349866275312240959691069643088662937254990966514568740683278967238808887482428666228899135907538120975570585982177617565379541869105122099427360404005623632697094063521090269711393634733690804968297334766916782030610799220824887292919808025085365447185042358402681312498052985251071003815053977562621779596817411067952590085970361418693811936259532116414396770430338193304205761711283461073086652825299111436320774545088423238340934022668878016582229757913922095503300052638130677783645985695628174039063328771025566523768771112705208495680427505008420708754674914866048174738603880710811978945069633889001273833606377360381359287610396301422250061710541689363003768272513293889553761885219237466878178048007534236976058636120162911493449584318142008293841496134749495562102052310203820895243566357240817223486032891402585265356739957221580853601046910698761501561265647419648603004243928950105582216739522760174888810157109548168931562516532337534856889066240109297852904465117899856245242877173697069647092646487120738652866954315538643562779358150801275588193281805077698877224729859381102075461010526876180393378919461105028994602863054912189485767086464156522148270387989200225351878179468057662639590096437845320351988455195321713243066895088423834605475303601441839675024345515740020771572981343723399374979553543215809187047579582888799702524492429503990382371272093758660652254979972214442373588354922456785795111011307857024412324430431855773656135846667095680228753763674111158221838910808883466411577937527227748221869415011904704757908690333446373025938816293132633663168647365059837793505231062426192831435858190247701788217084709448921509143872972351568241170310310035804360113217205603548394695697630987576478668268521473769884897846538920739020800805593812053749708981509831990298452026369098509663547007272253485417037370881989106044758005384427708809265419573805757738414467031016576737422900091057406563071262858391688633868132355090790425959298643474612287334535714618038493171128993527450326201388462004301898667605967458194859727083103989970597315311539512536916345039054112223539124252661812124320601461988745574400165106222144767004086859803843319303518651509617501218675098126931539707917641854432929209923373972961910597038122481952724574224813384792154437093938857758681732276871571292071110198095062835357187385186900436107657356220425603368692981379146228107342848575963839555700891759398256728339564363355706955262284726548161481995580770921832883036231840905432269093990275413663484442336682096612950745663101856230325030063171703824035427857337819948098197206267099395891466169506789987821121057074422731067412428607927952566390358291731458269886171137271780915357995238596470871819922954243997592250357738878862771372125627365483131409476684513978935424839942544120186462605312658257355575454496190752499164160282121912188685511182245247009648277047504884538933962652767333503608721194338545302520174240661800554407040494796148727392189238065269225385663747769186773285292127358899150994423837771225144321151616022860537984896689924124132681129980581836279908005337149162363178942727120837541126064995274704638090829532013175783483810570082007676950228552556881053809125803353920974894202768347357891524718953420653282392928099281436014990174758907604997190885597720606191237443446693141939165454281709542694876785596061690193048277409856135564941120213424984249208666801838076432027034273472091223224065284829329101918440164175254389080993062500762279619869538221146581565076777844677373925999377216854922024274262107697287552267960596127964216112325464041670896472824424439648544381721115803012670937180468379722554150805208723286922609744559005381557084690723336841684032813044277932832157588285922769426772854160772596391209719222710494184200780715504132795445717539770405120416310494307972352243664005096657668582142290994998303396406602222433925395203268286193495647045971562706484464134671434011831896581230678849083988294653846941068696426190358116367023663257707123009018725620790122972828514529949516866808337345139310879165680187776908464388614350723542009994554466957302656312283121452514459439958114762867457255068888064133375781795495869232628519111407844966828174088600507766988710437148803616694868521966990456880360679142741253800660374068674582239186525756663069504759140777267347605815414414950456194066442538477561253976478700248484005587175511772383377896989774404524057927551955466577634479915827679191467970937708665766951864584175519595793761172946567055980974268010230817807462614759442747130788765093857231514517029327096787725301289722826775805984729025085116570983943211668417861889362692992804431210705116787613320692617118404403226561359835372841589852550401240878475964401818529050611706851199674157889796641940840480066343298598186659279573641711952172045070706722351448017456307063622617256893170859683768951389274846697002354311016091426514171007145031673387757759312414173322415773227087529998368211845187646820223164620978285136519323073685235976407574016993178153694587910763974459806234674016520056497447244549452529323409414646899843163641825911933848860312937576058576065138050423668657158484116482171976342690846049574918140957471040687993302111025698546761351826543558277032460080343158754270561497238406934269967902810315496387821068448687390258755756854071769195196167378910337342555995107170407374462457782218991295754661209739716297149138688494732446466360955749990794391852263233753569568655988480386726461100740722641745449990815006520122462265903819854287824334509248579105249300422821040829597421041709831526959670357999138451550925402707848962721885934461912159067521821255424401344716637587422317761523116997923685014759933705037011079479255571131588472971489025614222747490240133176032304219071727888523117402653592984746139549076634331495192544180802966289225220409729606573896749447486308311994425308394221042707257041554165771384527616450036016248976278881603451613950874704475563031807480027345256379230744107627882321156471916937271244457794688302388803199669901132988162025042833897755064610236742181415890098558759196071703751819269894849297625278231704211571264943568457642614468176889604913753428561017954979500579366655024552555199619858393531309187221289361502565004102408211769844166635271268847375747180962930412193357901462235521754640924735729411555293718011717488792121734546643649497955358901298590700811383604856473407303616858233308761903268085896629440851881135933673506272016520638051723120188866250290850310433074622704633734640743335964471528405164256293581964036977909618839690055182338422894803391470644329697378723929844993619684204956409050753635364148718955182674372508786162947403232410897969873867497796857146380266711432039362072288493005770827506740432573096254327569798491684802097699990655892887654891592415515428242859877914973195195450204527654329546643202564135994875536335665848923200361946485820445014598228973400104586332572008588987391080769638381870039397534254464811870260093596722076332261475377456806333133552601235108586232725649298370311620806580634561012416671338654023583539032977458088440071052618349326256951288487296470807466281058001075559019490537578552913494466310286614199778556770390587055891340432089575094604267198608016013904612155391391465960246887201915501952606298429877673775723956578614753827270773915698245504945101974619653484852931162298236224738390192291735566520813563306209993499447040582752002693293883224907497303182413985067660477387607392304112937123646013880916168303280614338426348913898654222316115816278210444942944229300042528374613025791333803118035020795532057746926681309799719439218082428072229500740511615095110362217516943127356309571586412933954537133855412511162482394567368692968178981611109172610887569103236916210940876782091056907906152312698120278579845744274324339378538586854564709912368897597375817555100245209243144549163835082444818420586362807599223954226972469568480808660647810699979647785877066708845073202626428809551159460623422552567390225745636478300271752424790734381001441796996930066903737179661313691682813356067544257380950943454219457414827446640504190678813051491977448857543575998888314737789506520678253262549599658562668081309238628832800090932295824001318641550524420018483980453601813653274329441641115287974099397208846443657992648851295042709557497224998772720908651412290006834634430609384551857149645899180755304553316257604151018077085572414904668248147112545498205555081224334251362540382847167849896499770520017560991231719220703565916821572368867843144501944796018725829893001001858796578831109384020582837182401908846415126105755323630253283834352106809582710349801037917925702029085237659712870755072844134424106989840522203267983323060105017788043401168644856527594447245745195802430660582785022348249196889659882904527722297857994979782386568511506800378349978381663483345008907978177632430438936620077078321816230815838927681995968430705374237188072836466817997344486628289701166987938626850471698882560064659648296699420256129551878681492590784327108740729157514715410540582760450052740817310868111569735628534769762599861062198668488033175302807244842738665280708987175874645803789438469867935837177070402790482358900701465609393035315138042808356294026441133764294937633077338139396888668126279767023020381025514381764587184011434251541158717954723033729431978803497640394960400000744949205939432047528372353453723200249642606975546712669691841363834246117747879493302327264113268038139318505013415920973128459001202298896326737347025493207230410380999344782828847719413662081634142780314756616418780946035942752179887639289830515439028488447602309987337520351099267402593432697253937982459848864667034534440646629389152820409803078540306861888014930997146404719516501209824145354994396030788097397718562978240056195482473733845884857535171528462331527902057794512784935406934096499595187925294346413149344034829118061403348244877570485617126015953968505554281568682370543530100785284893327029346662268473635763121834626727741937828369144453537885510233571742057156326442133359226237411194567707159341099564790181332580495691095806351936646833821090319555543355307528153432504414945419759033176791688901100024725750148893196888048024476549721126381191210153555404535547158345834271915529074017920437868741807130759089925665862625410551561727384838563605130410333837883970959452734951198206879283207183085107428519987194535226131298325715836800456644674136035242857999943386074147068392072222494882671604225110447726750168490239425117050913089745494649901654468863146759959208022444815455888997371365106689092974363562628944963875454105460950584021815377392416944247640299701527650941075201867762796323730400726858800755506461309201614232670248031120232142055971910532757611413319672815264583874117232704328202774890711036724476715658149160529921870818576315629082839673915783835331734037819340405509827536590251041646804314253645542594435636353320426505398083416262958792193118511689332775861904974596527341497285956056196377249725643824499557547746041293729512496789199977124225319084687413974777521636496308443837777762336560988537326164161981698804899152350432230653929022377001857304073050081753741977943164429173373078126372688414202008103363549894655547026106494076336660930629538752749514127064478151107317866650060512025799597395898248754507850126122573261745803020232274457468020787072038498318210119912574020012628496506884792459444698076329716323261883663910087484107575069961796397631622485776282948932448959821330252447441952009444904936976634961955324980739641188201861395599915205280937966681883359586437189314099992726048858490545838779969919561217678708601621568748717585358375831240602376607024488394437731206590659727584752914732439668616893472990446026710423839356819688406943130458599293399787111278704191017188515168015277793827974230818107996549801275384960682194017444420933884564996769890899572927605089748971475897454403489064766490877456023386279904874445538104256659244675739530842385936074355759662169147399006537406835011300287787619274549949054557015273743262746940927613958699573173871190806997696395832022103650597128438308288341478800220544995847762894249654530366833280471806898469204732446934105889338884351737388761184489030368984357266350709174692208959372004682592463593958566482461196197346648961347082007398265718947824313922145669490997099049143115551900513095769296305751107545857967977116029644635009921121152022533643550234537629099391337243124321165337946787689675958320952272369602106788539310092472242817125310271808043785628044575126646659856366700475082053945254474480721226699154851205723062846757787300604124241490526890096881466046560450688139313579660417656458580820937461059584489282539913677109556693010025924473478127804429093188033460386788187652717584807774264668483207003424897347453775507286627470107346719279142512454048113061983924502611097795251399282939049201358528146574480037331931260536694722974852813715617153587346121570229972378871934622625254994628072660783966822929580331680208837063935056320794989382651249399555394607315847734988522915943721317069019888422739987995091000489951805326056087925161078594851094032866417423261837306322334398768951240543993453330080959236015887181936109962952135562164450142906612863317770888478765419899674204370322080533303617486446762871610841949259001938518273043833682829696448650438014929510058569931726893369715085980174309676169765130026522185484100572449448512435084719129334594273274575903655742123170602858943913282242437549688426584756800512067676021349610471780439301653898192988861438521379791033534527185979182943044453428958985638396520482564519368925188289781690199818604570011570866741090067313775407033853240348115842264768875338880587448989948642567593574416176450549970909825720520633903958418218794700734243169804677485164124831014322730873520848177720735196496875641251543037542851393350403971169070529041362532222434941220484954799459392799487981042467785955995600911847646396850144956168557305342768295835603333419326022141419951867584659561404416806677663532594169071451962432763101019179621183142314525662933498728880237783479297204104190527254777734893088504202858625204355467916246224090687965535931721522398538067094426916530947529633473913040335155365431852885399844654696537482926963069368694630571628950139219246394931371773550688526595672925336622787947779861390716642607659486543306304113648906997010038203270629525282727625024958810823002856403710166494478386410558631386694591183742392999852880608511456875401720822102261635143021372236011473678171223803894614729262897771033844036616645874196923351409869039720020198058413774439694940754325411857060032377269452803430659087364876637588561050241942687053133732158821652754237285405476449689185784051033705156256746263783160258085658872987187889331607431287814208311402512225078820317491520931504422452620690036194184863748574010390793673588321281864587156017913397277222433019593383633841246027118378684450529133092618613612450325050745614090139725235123481300574561918159351165003149539205456730771144103616090318919883446293324100110205723448305838902123724610784534415420942961239007906044838815647213492125178130123477160588905123081161031950505535731963315755597933711066366395489635586555337304855894044534023422214480309937523346634474917282490347720978458926600545126665418998500121979072189153761336740858116348749755721541731215307135141830685484455778782571738586821789843786862098206192382602790056584542733952493220678200194141188477023488527556627876651191275128137762696656441365106148331914427064788485405352808128713404541823210407140089414596145669227604027738227310516957046949641603634195119449041295526916035024782166123392930662504556541766435541840604575917075954602176205579729711104055879203110292274815705007322929698771478402028091788498730463926268718376148569555150557323584033454124033135934157881419742708284737971467767073848942559741575333167641090156194487235355797532661313805875737419623965295689555341540648726255508875727279149062556507490398529027519848947587713419924458431746469532371604364131013749409112749939592803312431090804854742397050418552642782313659914013849858994871988133854494951618040497117037424309626078100016106899720538892907288395876305181656213301550325961999951373410028975125564531109226781202995507546234994050067502367978987168179967144029571280971619821921411288784883693639271970379926623462034144149336820035249708590708303947836141037772006291811526923388428408715696187422207715480291480641326854264775819545163626213139950756878109442681232413925284013854777482293670783091799819639085291155817109488226244623469947059744291175484659457194318630897277136404554455311088324734871456850203916166961578072464134408096666151927723035858005693810145860124144940039056860791071677881784629546771533678730925582161743941521920449928691611601533668851161053767314027102283327972770508768340383822288541415419169510331026827796182123704120927508220945474191429686804799521680395613479799245194045185435756116309874565049359852047843682920678812834144454588402111682758283290170842085275002414108600223940573098155864506693347869467039373572259822340293560390380224614897282859111870619007718501390602591994195493813877069600274607840734250279214149759729303896566537912550332812169675773225659414650955980594522711569054955524193007007541630609711266732070922704158879848055981951233364779867611226370410569415925866988742261998178185004984759970356679528007528506029736805108884117410010708982646142718037357702951041848842471038909733759260524650359506040756402607251033034718320161659880191772572815457160750045283302149035086506423648570780833292325425301087460912660560073418183955020707485727064263301212280551198512688209861698066590566082727855843710589580244750377926199477405204304158342081650564505491924172917007191504318419690976662189788360367278180742781548244013116386814462499537023088906564431500076223674456875042103389536472426495664780627566833196682416471876716807450883321173025730922535846933481289076415757164928335173690579291650911796591486862826449678294431757358291495902172993283229277084712922625965987791927589907531512696836469890754654132910209255030727446323745511376921146869811592436274940185241549429562154208773088548869206370957395705281526309269777547893016528114815860337552982724051388665316612677606920961014143583366087931341213411293996109458578192281312264927281555231139572098013768195374426934431886772135568203809231866090359172443662962590370058253340108589797688021593060288623092260869868972002789946951228335779435473529382648216976430374330551274095491925285575093410213928167112366979912195951289517241559444184850581448372204153337070166014652668195009762459603351657218322446795378451294866090931314490513183473335138925482666775311357103982883976944344359882938297645750560763904562887574420098275531025747471286584209393404165585383376266234546585893945198680479264486125731650139404183208207315395597673411891677094121130221535163903360136598029498484435903207431317558405179786329312928064819451030995779907161422373090267221064868003792070977867874300408705998747193514061172612677096346661011626840301305000337954367535771088699109522238709175613567617012644992134958644513343216206265772600787042259595396637165642427083093441494379494385642387247604732276036029082931526094697110505757381098675882321630876464162509239371253689944694031771604204751622415305345916423143103264529896544750542013223319343165834052936044391497440597831627297442688586928415234220229233449061461955692716858291652698810348867146502464630789175266451269042655558814844483178885757023839591765368860637604701238644422922202720923980487081798472125719648552056213676609780566973671250238483867159816376294337393530895022693844043479016674883238431258274828078392181778014304437938028188453364377850669444119304931713965205105948370534651083477803830994694889455898054453422082734613430797208512477318547484834229230869131914972374748773494613212545937609447434826532217582107124458540175163167525956828606834175396409705224969334482209468206600270664617566771404591596866042759095798301769158903928289944378416716746172141591197700696912545883135573871675560376452438870502476811405104880751077637079160764589508364292032315538404795801217761874660487341799267891987905981787401528118704802156363807527820069962675599339228241825316406602051999069277251748786879863987485749962368660366140359493844065548935484584341794863273415283803263511425769151271826779025022970272118932003875527655168106380263509858552331246437174653397206032825091299743653549874480320629593803914455639847594205685100385306328000312282848439225646964342582284297521333270869818304278276210401056226860444906733543686132158378690417923779825742314495756936560304877903330062922560903494510292880496167102200518236601007653123531531170033622652393066044015930122172889653888384197863869541860064035790970559459436759899281908821316086814506124609714851324663711038788468437812872506612617171406257810183244187992790194074715474583000490137344213993650375886530242374238566547638201136084529944187596833888098163775651912807717328769101187696950719689898316763591033660301502596634576929370354363865288582114985315176062550016187856371325944534898608382974576926428230940394412383848226076012415448755081358868249370178238920027213440158899938796096111536428823275176686086233831310825756200856432797667519539095238802769960915063291201120058253579680842732345577374661724323845891461519159214561636782826742479546084792360941662426190790646738409557670193716921738929071228943099335081003892881114271624014469432892033538981960780198845593852358724601864979612356526701168062359907784810517350231421868286944751161778832988985046421303665161779425930230767813479054813963167080144451400331886818639668565169931405436344096922391264400176042002827529129959714637506328421375808568986387760596279235703549703794248255087938556667700410568414387488530387487221259114138135348324137744792789280212299089611349802244913462027371550798984891225446768795702060493663160057017483689942225517309759862400527271565488021728543415164532049775173778540170827935097355600158321711135269923100763611855260593591106700510330539367586044690286835454563475249897663102832104108237790599748274000773218555486019149899660140914867766945189472019604287085624708914602067590694527289696041145124615991826975269621175639588964007165336049623659311629914885456868981163306720113098670245297542976338982709404358040861237997983747471248277644844648627597652574183854268894203290723174693770825064891368789196708417253550096498460504628431615329296040839439007980755189900325614239755437102257200815261476955978072692315610477727264857414152015163284895539770461713684740651736968754447771295188501322375314071740457163627015601633728943153851863307473277256721131017111376197004483553491135190551547927774443046190400135696969155269183648468163758219508285440361368022171626009466354333815617138948356042192287276528114817897631462047354523830925576511693245771997815223483316236552735421945120922786854831465045191663770957965295739171654711613780828122344583473868546443950907589778886281515984831410314720689074453068540841982999504659259146527907896694731318380107943487502055870583587352979051723834764536208460939808554507432339746231960481194984057080224847225679312397790360853778466822611000737072280383534687548361562951483988017038269975601389234462753177894320439241593704333800779247965862050164652964968130105312372080595602984329791256546843482782363581973239024696501567853473969555344542901454707797310376272091780934791724584515529592109297450469269326552798385045177131533816352086608701752931821472006235964037622396742591726414076041611920036934214809259364298681275474950981350813241688498043588586094981412308912830864605707274938561270818534894414903278670421993384651283926428336409920149165825271281162967775219935115121753820262631940232018228630146187892906668413764469435894738149772920739471100330331253553811042022046867766764237329867945805195301896433245202170440272857987359542507632248814328987368202940360531394338721444850616428572170825175682713219897346823381053387947812996788807963004287891389070712933008979815901757526518229465543976748466210326662755227411943801003810272799429309562231562630571579021762199388057266798211216863585596965554179723094229359377987267254144238185973994820463819726973803925315755998124535182704887243189762460711643684595891819887749444674001215523872493957858815920124805655099745362887421374928228961000837925443350162305272399561376162741355810030924878932623329659151341331128423663917629217819736919700607657880194033026675967868324926374261575550724730861669219129105786909651568106271004646901128966086371951089265198345213925497043531777858546063740188715012245778735912145768327734532647366568682269276281917023501840050845586941322946419695000933372930353295508645256931140039773494552519460954707445523762592529032897414191392626818461448586583848964622859577040934446048306270936700996514427219989030525766470799124629866017090262576662640485740440237669907912500931346795627081145697870714030861892766285248333879791117971657895548085582036347005892293940534338938622577024347268008945680404724811101855608822772339792180557941899273438589332890747824581637879482850530332883197405381115855495824111306727079483305132894664737712291127238084777852371171404077510102042436286873064947730384425978122456820211781545655737401458794595385106628674172824503247804995189317988705276751591546662204962970113471690912942278338959492486077407245121489308610002710336637591804289723655901683061442499503801590226037963618971601814898854783174223936478760231472051230769082027748233581731300908913751788732078775028021886955079460801351381128040269170943133770145745089764849427979808204173909817453385152538737161938435522958906135026160739038474658935313198537708861540866534869106452671906701330857345625951375640056078154177162045482755446676337305091063243001227288001510174320550020659503269171919025425222184125839608227000374180619354262628569313942900500144371558409531530738538553715151441563009000733630603095274875231001555411366499841719485020570894356536939134639424792472084841705578367723174809295295942100049429787050906116216115151979660552850355136638606390681124462874930268036401001017019566831336807011424379471734811657449760701073651948128958207675078629252112793133611262234297003464482881716920538098448498659632977318911668888965548811308894926577754709792000504063239291098344397715332726907049857139740586119831189951951623192794434547992070902793252554999976348510233532951645536561749020645958581939506507162596164808639201232970640746288191803863369900302534715731092330314433995028958175109783810373862687300745680730937351867212966697983559564226665370306259292707833608388481346450581523310025696110853429054502139932275376413303560287759677557352558647839751820221164460449795196199532468480786808075325946932928772592378256553386616031994423479531953464305488240932220738365899405792561708612307941496988858044371189290066736998521491874233726761592487466834939394260475424148858132883530044428574357717477892980969709323950690746898325188722735649307230274467151870268179478117053960479359258455860861978540761599157877197933605942110511051589169177023246503843185860279986507293245660551743378295605700042503007947588598098724504674335647126123118318992327963863836360311971184715407672128210129102774840299638181917075303583523726453112630544007691910092428251417427099270369893269141800190756135314967179874739830140285122126458646151600876936869578277439910704388737946312586145758809799770655885666614168091237550011273515543843331693964064210049765176958858622061965209641356693077315141259224636654903412134982927350690259473004378575946687024629634142193837787060062055054440328145903762172237927382949642457217634385168989159075723786648917112771467691514021606443766110150500640072601190806964473521407145422758636883498723843492190369384440639685028805360695613892057934083997362752186434937662828589589230730142972083560621342152779823713685826817908358437175603825500089539373609736842228166002298146837414020568115866496138840198034435649433828168058912664673762136166969833831694231282721199707220966669463689884753290297226169953685966420592462683696872795397455520848705557572447196859081069361528695507844300625023852594278026619452714827610812406292241506354933931794034863067682324375337119780011179391570366801949677022505773830662801208618376505495619252655335314044934347492134409799775918586586662890236079206118603917353085507907599052292208638400484716779912138730527674226087120343375749856544888274838512724262580198252967367624649337940414901019389914120208429107402946482707903747540014761669861785094709640010146826902683562062570546480266685607793176969272451404143313947627562784920581050411791588938527166117777499526139875680044684132252332619466889805025589037562082556928657012578619414215007570239062942200105708891339110710306286922071888582302320573682395515044211706839014407416013455330224307829795625124509777518042934905723296753382493466867976758334240073410851188076955144058146618169990407685471238235833766268701273985189197986117416045483394610695188975916231879402382371446651453201811159100767798876722372959231044223996160754760043451935233834240149258107264267408822554329133738479379836269465453370216111496606101510855646605019861920122779085740113250407137340648329747495083819565649941729147366857483857330019338278269071483964412116334818302145348531869408987873073534427745495785871856673210914478802548574915623647517422898207031851131285614928229642831361926843825557028428889283939673660604828236142731807598230133596581211151699897704173604959443353754714636868622644343733477664666765922969294992031645729976376759690322767607385397493438920457899952108169850891133585118873334230206386543828235255989834985604063247768887724838587322179242393478625884237768874727776001145812308160773723562913369253765474019390100739001196114959815194550729672950519093216719290728803216732928372330909574380197713973109872554279018321750900364757478409885648192416982878561188443124472531610574062761074365835502298395654595690771725258702724545207504272820970627532377433019375342604921236595357195632106145856950751204983353119264232981521198177437175759932939428839207508961644058942421678678596419744525967527840860264338917022760200661835086310249134631689583992723759932919046836679273117612090752072672412556858155210889898321720558425455139595278157989232996015672873307316803326410692051130218110993411963516106747266989307534674410479280763969403227000254354275566356271249492558302242649046560881401386170971768112759824515653284213113355378479290220900027074372045386162674473455158339789719530924626517688113699241552924865852719290494054130544089732532589759033118919221807206654519684133908214877633554727704873870357776810876534105341118223378587005273776471995571171476772192661119814342400333295024344383786674631386328028716102137949174651672939555621160078431121544363760730475169301002290671837784981263487390973434936849469437672080354784290388421036777210899498161512090509774917852250875427926378935188214900649928961062831219949176146593500695449236612507545703676940804243718365811620481075387762280371123449811650277836985773985510842459509047252385832816511875335628620628855293884396071992997703232605108942437388976764118327787566900731915611916931046128846796911303600428457663112633986983094874766262739960545963623966537612399315978541354473284859087162817754935862829944119798671172624224080147875777146738883873895175121568228118205805798008009984954555554756556795480169162913687843305962859467014010912337429805740119217032045472167479454727609319697600182516503598666497776389834430286320794901888093614784808847090224900516124625422291851481853988326825829183866840835379023818798120069211526831913889682221818200044904094601979822674551424237117893031714921726324766654600622696272335533500679897888496621265634410146918756181368188095969011431642160735296402527622225992372510760578585156310041730097208118081093946115005794654297527947599416161053309989014574355753479565537479031174094832752887493893680604747207606630192071246435227036948076365784541223707925143272116886785587412803511196527266583440197217491250407118350391107966223357082202410535389582538333403968858310215226288687932442428432304197266903722219215116270980025494373107211326982645996031185531371092805032708271670905612683307110381564170819325142011823626228425577650878161480556602497983050275914623350042575143565279033935479275527595576037597801506184679357210236636506675728920801830222897307296323222768939229698642178430913805727825537408576159348262537347927622224055394591042538456655826033146951845037200819958790826600213958960309109646850019492759721311266641865427496117975365178716172543550821693408139234567406117323133452771370657188140946362085198078399365386546949373433373094271810409498776348245698014695974406752085123615045338686454153533555410197976731861958530167013711571232654003769639839684857835117812235278404057581592565091548852022341316330228069615219555128303890146969208377673166149370830309551459728197097348653392976425041493356456779464322431520685994670180534643811330070668139186815723010157199888343118838153238745497568882724311922100197230586578776177455731088271379010981602658718580865407757602194589368017590654624375683785810345879048407351120277333155283509892131068289365632596353707501891781290110180688390876254581944542215390267163618691403465415680398010901857936775144985970681951052532566259769045202823454557170839096239970554791297643255222765151301774417366591286718211478994846329512125301743415371687846998600302733663993871126359440816660143899395689887493362879423438625407606398689503364538338275434410645389514536242219298788123484888685752391019217770334145231190211186087820183284995472422659890203079301124393910494624005861073968685621435557348752327601429619796608271789384339746504106072049729926132757959854136228970919022472466656427544890259915160335702874165247504914274463186913312766039859346175172185911393453252416675789587642315767073721122462917738469014528627903246774241092607944821312287646322434746783815821734019066863831182541499206433437451593370341135534411530910108573675468496146655491695212076726691327265280422348237763844426674194525307334384637040851876167865517149088591234513393627544945216417219929026505508925133336990159690802933779469579682325801101588553564087777044740478089409287272933273066703356721450793437037572185750842688203707593367626066756203863354791563651831985321609672577629484926941978639450014927772494868326108523204953483994891176527430055107652704875813526077532332581687051619048532397161565584666131574322947072040119298600721781630384137917456070795014992875221891058780497128953168009158887156372557915918091648447818704335589900729786760868307333935931294535286227573999383014379860179121625138906157643138161489741697910837869971539230702982459055940346697274136721264297374281785519388904428267549236320548773761297200828801070767274223057124636086341920586876632961980525793140563026042491669654810064230644295896887964387300321481120855323413865041834376198116466623367224188825670685344184885224643031336245844494589290092895358386356505362113432379358898444028159829206050686317211090583922157076575596387758909325553196965440101292704337285627117720054490617135099804340799082607645664043404824667423734441502178417757775140504972312099552165296482037373804872209281783522046956485655646121047123334752511482955837388665619797382232023841080508881512937931519976471693663001605516474048840175930244083871730750090526898113202490616576163853965552283745410849367517956795905133601822968581409729957025658400605779019982074401141196006603799770471884217984360600702728458917472750190001317524095402046989945201497033175986745488243685279486300780855300093137560436705142609827313360515540359067645366943078061326443621677517050665060742574531995374832263807946556540986861380533902232541463515627865838401105255128618648157720281969752633303722097821315164585900669780020657044923747015410267521260380363183581060405450961871704011653017998885368114566857030787664265138519042476455451707566701216652086194853802364118588872966560703991298359097024171625195182308717046207105266762851689123113108953526852171366527874127296232434469668700051872039676058674028350430003522800008295817331850947117581280424487692535528320497531672466466298274251822583336075801750712925540911954092959591075497390649685545095850012115348465243286916120233848413636096967430512228591086708914244633783623590956770891620322268870053553944848808901668082523701170847310814822634313203426970307349363326111422848003503544657080464627351624379073505355194315215800918238263573770460845691904716466623116930728814649937984467608409806978746622124111797526429016613342774582432870709763011947892665465863349732575264151864333622695337715854612146575362605465357409835166456356473915438409519462170723338884673346340744355914490159353355601867260011467979677066777713263953437051773098910622361963236231632156304823751581221523715882881674880394525689403617547820174767649292695919334931197751340095739402403275331040838408532873543412996597817692464529347268492581616992680352514269501894470721230656636644470955491153824738110808315810424888432827933116094463888156726380607758308718521817774799046441537873354982406319532037231165597667902138273734354399001411022776641626211742399807637548157367831605169671164639781842548691124373925236752670613548064574872166246030939292117751214338958764242152533316537364665581984038595033685383569676190281996807411585372080301437809206445993393052542128378664301489330330538758249104872352511678438834496727931291065016278582373538907598833660238382365793947656507082503390491290049832015816898402561107530280051765799986034569635933019329230629726521080767320805302341098587057010319712459116160279801134575704767469758502793722206129656154214082143472373191628957240722141277468076087522974729093706840242459425741636573183301234361898727524559971612908271511082141750381316344723369677469587146596104126106539125637069115613345106886526138391744465878667602535328209049912749626861393461403123720738312427046912517367544869133816063645262864241970216197717369293524095629626667860603593268416641213061223951743974415938879837146165658099394319563606354246244431737801482082630389198870917457489069310710914714216608674877438313148287264196530955577431930950238366472402242950115618645672062021359122964214349120947002654545124268382587216387087089852993583855180033388911108081812062203736580948040604053606110028488613962000692882568240484316665279583605339416785375498108874505579029948636608853676257779951742144426392507190065293901829856498475480466897096613359038355906580836535427220767588133629726327888960735248479135711276572099926262915364780345059257939549849784249609525690439999836054442607056862149838802228765057805014145259221819347852571020461153067616978747094974649263446450017957128666386263104893198120280805340251710892446755827071460688563628436838264597992380445572830201198147660116959807614665868736129755258205996629041106666392805563664493338079094980709769820968389474328450766149584063842556683403253790635165739471785226592225850718068689996251020326496834670778365046960409648638688446444863551070741511907263521483654108690402901068160386642404668496697219101106822026006457267482871200506125732676858620692088563413812379129590823952006162948835809392871167079878439787151282374726410400877709178152618961908072644615168422575413510709888873446056207138610461446023981629449354664013892025803397829117806423476768526322551478651243324094099150651132964163265957479723157533657733539387514505643560640213703787408862433043413132809518608902864038752575766854566239495080809716978574860808587416527039381538490642389995185307937491410874782251978011083858801929656472884005520932604036679556595088318107466197575374085724595293889554496166104667810373680283081415468167066794117302351401075678392611628290148721127839698276153437527374014907344887005297280617245439387484469946884029660622077735259141456998924207217613797240972542100365595198879653693258599330140159849994681728771196804673075035315813820595737549131074388865049902313279132647511534572165362830515342645049661736537583489422618599896118744956161742462405916423882223510602264971040148887520282591301899034789223782224070422446569235367229011385829279269639454786067999903759721275351995992873317291676396856229002952828788516021480952135559041196301837214282953442977608820885960971880819456815306223644177330061889863729696491477078712181242530445123008416311773653592149966850641569529725500780180946136369667116260208769483046830915921432903777051542263354143476255156308860974737583977245325437732052163004002185293957708556278518052753962387743214515196017613043043805875460680487947560575557616238744834855941351822975197636337865233116030580180277804350933576522055479603664270380908010386820758728512204054113316887775216941984042503051939095016067817480921866221718667088696256645405671849534876305517989604984150896423191657217991781518739903611272668994062491309365211763046924724792863067386697103756380303209747925942823161528566124651248167485553153728263598791876926727882816557436704864990807840985545948999219006476166073073884939543342306244965843164196444874577609491205986661135009212304069353219700616654836912719270737418112646201040146554581375467070549873138200326014423489272300458450015798486747952145438541287747078270178949013399226870787112590382032560383717173952077725705229692002908954087960299089342963250012354037809496270885037521649156373648348299276989189823799047802867953787612355721460480968530631697663470707217225519583684830214680150179388570681959951083865981154687845680588840133959234793347141482340701190402457121403795697897711214111548275382138846496338645554920262775570974787957826361430084885578487515978936917592616818615646178856500715243246379688146151615315591228952667082853792780240797055268296807825447611684771712959987091431310837805893855843676914309528682940379798210180774731188443152789245762995821463494946192245590599310601992181824551394818930944704481114241801915049549604783178722510473819475790415524790593774483930942163659171824639958276012623297672704897285311104156753585127662565218660627110195696329827091466277259409502541306425871822766900283748179776767340198436121663314203359068556201516202935273153797185705406033963487655843494781592538264376587864253010887256403309159795890579149342354005318016323435417419452067150754339418723674667484153221751310986165344330942170824959210773421568424441591204869291882719393483590578691204802466763879063121341832574234903321650955488909355572317791489919664256174128706014513067993364071311724928724304702679239810083785377979215655866637658231734193286633330407604686470833390475462154146844305793057286032478291801744428659230756482846750157677696187232414713266703246818348533141678047304660529819567879934204947761679787903246502964808644065039263182224209973971121575262324933272875083345555754693205261210568832870886215028795236060893116123270459902229428491932058548838021712884660919693097582856610044562895096542818389063034255676067475787165561566456352779139436383055962271375352307420899388107341085903929202363669920888912229824250432923779056332363053117305095650585028946449262495548778239861718021222632868516594581043712853679491873949054679935390037001086041684227343129761060929748202260273627628799311591721484804338826646216467553573362408427512909548375639381461144025203775091012843414459806605170534458425007601218933010415195114207728073234430549200893320082514741792820828391172329340986905984415634734838356073300731587020105770249052831004331827695699893631532427960463726162163182196644744688015455188346052487261073721150254190472210129384903884142099413487331267037962025079901957098726957596221651184105305468182559550352387551261807823968031406356551846143515572718577160115403385789504164838331806870875346550594809014169942599188056643694129678632513060034335400051975918276292320520567020391938086432873236045497475751805209042326555201758495474288671516268871834175916652468805239396159539460395139909704626783775263505829191565374818185150746176973772303317682121058224806307234591200072812632547799040130759487436151746045548633272807782539942247947421804998476795370518879572250132283774963482309593989182215769902796061983402533499906558903467591267048874803149089384551748668531825947523909935773414397390075308616083740231262167785310517268945164856550577908020738994425404219541623435922613745028058729766284149976477449120165797038569878372932791400842287478610609814789224535906583002762372610130689164903390552190623844687414977968839305505408785789291364101452684244356856519237586857496235041593700584800871596010515729042015383900630555115858704699001339697703532512145768215273784072792981631531715065676304741534763466169382497059754129111180026667606352791301354272797716845722174527964598211669206240183150286782313035348213405898250557881856168440406065610139416408281382758280301987063809466083272997773760221372272030885511528680786630330684955263850568587955183942929224377677607359416526071743926143300252702867325409623155621533410098560430577209989925986915027636125630441421511984594058564454265307338569900739981971595238748157334959429811496960784095917731372592776023190402519684821301722864844611420052198522848257953697293669075937293321759698560591735332419582398409221829044640074976195873407810275242280355955385485439536833947060206418408263508151429344457507937737703270731432385739759960187389841276822412824775901232561341494404790144473111462014284105518497570247984613839936742211646205773319162540891849271005331081902048963745770396612349153925824139068136404356970285303242186279988627184487149799742783439835964554657667714386320828703525116982193605194309652662651048005116613707905901067307405680701139896958041930197254748514468600755427844377121349793059372576047144488177220588847609295086718045174048837511465160367184825144901501081347072187420076646505800615273055446627351967725464192060331549177458018433577530865923282893741501941786444379982157043741635793089620598484473134019426522242999773673008010365979787609105776121867066259385996317473552306076162056183101606787544023503642454093385543745397773286658922320974989340363807389599955578521658495189298138200541950083506490460757606518295283265040853037539966285778706703973359062174720650550538441806478033530155155295302319959586788799817666138804857161878513107938002982483853609621747435395615019258901290544276248572737638667998721006510420293855966135497126070682632126920537147194087805448757047070525176812706042987146250188733995525753762611855676844771113526135362366979140479732053393342251054579840887524150288741531647491063421827243678864347529750139601595866455879703630035160789412042475633579891680977868735942316142506954719590169777315549453330345376154204269047999667298657032802655873578241346144788693114030295043982072315163941232772467390498470026004396440783251761276871245393157916071011222058562986993580144754732348829219827292182922042340021022352735191963146158271578748210473573956903528285661297847079598197817625978691178899109983930493994238211181400150553131851300119464126542315690465884993115769197215160396867197770995710428854913688169595310441831606792526877873636895845783159477247993443735667445248241516110011751003809101027746791900883676547801066952781600503326029589157523986280478681444026005710589969554963785170074598967325055946576913537407551770556133519462925159610781602340413855865982130405207015849423174826346455493425359945568334949965031242484434423522754943199702445399337701426809542261087577603005673907957506514918441258829676367298851640890960819479962084245556730877706662432712943209514324079144118286382944970970399956097235057483899221625134211667039726673733082225321416145638296285023970300174901939631330809020521037461193596334575468500391530661341660429285236832258560494703338591742593949395722617804214302206053109418456024066056545629751538644820291543984295745237768273073510420226515125583809670456164615173985446944526062745398382463192548438968289233636088303988004791239481530126219793364343932277482651247005714914193554508017790788610501018137872112804398070575149638892884740994201106032122058283002949435812942169512876497343551906273892734250885959584847942519645744721268143171095110636901516551814187229910334721200058123658708805063032839133631671801932544777254781507085314254654070768718331805269270635441225993673669777126132642485526228254669598226305984871427388500160756452565007605545897787246122762783191464920352738533625832746067278436269255250812022652951600331742119572555228663839009296361380778844792042155010475814628823515704845902846188465183637532778913839385020619897966465405792681400607814875275212935009978761378604229466601122553926255944991522605692809470031816316626730125661288820312540704782161684980382843459310352434188849471185139273769487068851059650491015853064115085757223383551190352295369094799460682389397720008103750009942495312047402088501135489327969386881079577523282257555986126720846164529812226811027422414276260189589365310837359626789995433795986327361446214275459718316665000363103613970665390003574206093314068229012722249141455924246951131550407714203133413904604978367042779107154723661179811384635292171439386443701762367820142878464045591043885165956823821467414388395115633551947451056665136292785915271899539037675169060879463678652924031884892509422072757084095978630593313188446817847282826316066742567384456384679674390741624161716513374357002909498695028831155756574618915638887070236537063827740853314150842513964258230765378506738511487166230189205899138235206990975136530783379461901565755608997311293767941298879136600011124403443675153638158726428690663527723004779288013335090101297932197123016935762309356554382734381332597955103044913493432067927643804999188725821460872581187627612248203344543341519058108229643992825587290451082537145602991425589018801506926894846847195945652273390236443287415374598081506392589452721600036768823185147640999544178662991957451264418307407242468964100064132819457414473688387685318762607222337543096343275168446284865392147480839710344552687401203627349303623454292614789002863757628358873331885631696652989722465230432175830451568396812096621205136706064152700965503948616605036673479971222176684548879886922990621207574912616388893907450003122693452437696459351276050892566051941631832795698595625370818480302936510955162167333337320307438160811604004214146088470585880868525645727574823109957835716170876915211557687390950042395710915410861349684148648886967647692364477274997593284416755319965307889759902683973287502821754098656969259092574418377517059555090767960323598995679328903104865877296512794185012116833342234226592288708435654263530583667151470975723314823169184023129100875392999707856477353037577814714475463586441425525548228465214131091981014272920652195042808850559396633912775487816327488336236403263200969464699705224869068466450686475270474856323174530153234039129413348982032515594132765394007509610088744094775446816970984345528804877606501658100315101675959403385402545853625779460615467724678838673543073096252538392976569947016274378752347696807682214154981274529429104562474080535298428828419387327193560762797583003570574638642961305960602970152977694826470581058528868661993592282661822068775314651714552451483738846038675004605656483592031831461741793286433294763086060768566401735037835466991270912748598042951294363696805669689491841156480301502108521895054886871062940242171875678606556416633510090250488951238914215741624008366714795627842438714093363903661704272870756284406153392409517360336238178948799535176012251422967685432175740366858396535999162573884059749224427995919227858595350357224641845404574786651917085013446859801204401633902708262851502358447094410047046334357478737610567057918751185354558110244761025345468115950315680197013982270026025270880371805111577045402432750414896596244051996334044061456956020436467500882347420794740086323004450384285732778434287200926754043546966097613689321937970557232802342089966501609450451440830634793642623216641843633841537094297578291521458086394201385283415555949586303623684401099373818041941294551338352635361720122928949413342740968516560300641681959481583000756827204338840769159989589180701948854163338576888749674355909871630504498101504242471212268567294346943394783633495835438052331460632773394892674627388582922438317984151951801972402163807808319268075679264748015685586388347366729698727733989941652433320132649775632390478863961272946218727117510184821385796657909513358718801915690554600221545131408750651855710134611137863720292952491091146155471291833937203510891388967373485703102707299605677286303444713452050392552717165361277770292465358304989986460859099919740882217111338249353974205245642895504669669681364768988444293320324845099792090421384141385988339480401190334308721356724182091220317918970460422686492054630296417283377545374607701761700555403118577081259111774099644083272611089691686156721551068117478263578648925821251406206929229862592994332846804037435043605935109094712312676169971407873335697653966746378507304405753286873869135216004001112938920035828811259985395224448753367979514448887098485940113381116236687813159359364794141563504491970562416972793060949964910386596525074647060558555415715649951058437023500118313977555655089467702928182538857816793560728495398325498232905802758271542791893269105723478821396431481894937935574876542009022180954350235063333132452360554358319160822314775962722624872271414134420235527996223518588153825938839487528511024924140109908094587501116237176994899033698609145755383763636829014808845056729425493032736108432210923040130972233905951524334047114282934656164032297258518843162392641756792365989297355092585072161723944121783363079059691654610293409699832169589278778397075458187064503028276377297688801509563065864650914315169632795409461682488649632824455842316856939407647553581983334725738671053149443263706738057717032183517371408180088902510542008694094482036744169323987229550923308432595232669890546550473394559877386832075585394000473102084721114041299945426929234156267649169825216862773491056088914981510438922920054910493877060413934515519949275664043059379157849125201617115476310618709211084621663763113465070986399106554719701706267831924392953839449634007666920314604054937903820494369530348507063733098964460087089758409419664110779696740505168643922365333210522165257718538526054937771169936241285875706105997373988942553460211342413574603456399950464401306815616761793440110745956397279281972495927147564134963525383442136408220491281662424684263997533841325804941704333792437117167360712266693597908633572218427934451792681835519052114285684227393231071718926763022231573314679703537928372462712838134326842954404505163715468960336966606702602944459118506628816368755164199510957714881354940776654831090568774360201190347266316234850951571304765944913538154095346423523013706961158253526210790441344099855474287723591088020346987223586543362482870642696747156912972750188924017424091069154297236514284351297275360342212869968041516356065632063683724320521996245931828211701305329270115676568609074253525628359854559426850705986109890859680718617953180356375001444122452919729254044990604048320611476330082511447746398340645119703890444691201510638443453777789191697894831060270840704546738663875441441939070162558555473910510773707657806411935019587672041283850104333843975972870148040360350895496174662003434093614792319326078896415542591770040933937648424043942159210777292273218563896182470496344201758768470301441434514560203356947465103888326593830619356133436220448784683056743309914374082917173939145393947521919238103599764930133850732625412951627455363555978683042211196381428892505965718455933901317709686030651872696792812504939623508534500635540767612361950328433985133626944146699069217510412761923669391358597386537272312498509708545709077549293871793307282389712031520705104070172883471776727212084080463750116398080914529193528503458072496067265424259679373436457450073094438756971040639017528982175067926939705068832957025670578754613718486222755603779357098532062951143083547570544123591855040484502759400914998675771561776387303382767200411477985671346694664626255904001006848365525021131986243248630022853007851304618979657900101030102016951428135533599910175124814514720940566299170978675020017302809397905343149541901239821664252785687053229344633879220018236452823522230904112760841313439069851262784821801123101258565966809380373317429702975867113059829534888275324955645548054949824206177842944168308183577550258527098080573970352940349730895457250179774383206610182116019451111993553528897040478611226423562112338583730739581812265352092478055203959136234010433866544906965027064664083949191536042051139818039054077942446907771370160209556493350531488991417988684813163717957963228919262200060325525425708230819115135323267855049007387156253403227993742455790767760766089203760036995354119782198502692455135416758549064865320795371002386852313530782238764492553821489398933115471578335215724064537861685466354503839586390823610530395255802553712518126962558760715654450936728385481149267202381140946357955901912366537528822742586747525003886680410598387558610858073466452394315232864977950072527643226892617122824091494600837296512398626207936645693098135715748819087395616102658980615787438466816867479020388753019506529886218136494775431593932892799171598115965053201843200496778198201246082570297248087371936259708883427159521251448761615201551189785689823240909113567644520961147739010555151072926164706929951600274409276305819489488759293102821238863766140853180039128222102498290969033884099580169386839742407209494391938130559824649325048154427896973356230446813217501442863221579469971888434595481909383152191157048248968645501375863750301777606004320756863857603902546391466557497026891762779324715285060933336651840071449358247203400394027766344595573871035963608141870727931026160122840492715607227528882942564686766729168792641987699614157071647943696677793195947572378353590875820659005402812325358261404752320573272202611352802739340139882031267176197096065235409219784172756712768019772461784638558690228156656629409889199631637543805189686022279514830735172521308843731941550457598311223550729614671390883490394321968628742515070318671409008282411284141054625504958819148908300678962533185896971217660417036293078287290753799853240236571772193390837222742269130136332030086759946096809622044917334419154903264334655438386063320659849134640186012955244095369057496288564948965652844594874961458532889920822106467749721279948212873489965646522191353308018792233256172768112966940344263381836806569401263869841487070685809482856573967677475370804212639479449206713668586564292004187894685607529788144484996066184672551707054913696166778599678029026208073961141169684987252079319468788857611027990936997744230918471695820650801092443500759176151994684804861183264023890428996332649044803786593946119366982979580700895087018442345525628799001456462584019370910035016009375643222757600513425201287389734485872510067447429955159336644728170953768854213130178890044301789534567675316224774010011455719761718165937396456965485744746803242369096287270824159461290282943698261793133041695570053131478281289711872597453392012731646558948857714295398442574676335140257889990995815090245554446158592240433801527844442446320735467221930370405794646151941336884358752305622010264576894077974901672426087827164580475799450434703636360448942311370108791125718983777629616050241948262725526891340752919907013260096398869599342437994157957177791192694479222820348457471005417581058042586809563837302680444045386124547818865014655305724588052938107273419161329615783593019667378065404571279794256635725349718308330500074527643929587806737410739540479466195853803388807759173776607603278714814681116604481363965271900569132615853880837854218162031017246071873383185618251207985945455989536092811645508141961150502671488236045938684611820541503800352033989432103809189231257856220959975289277301881350502123688674805677703349634495098421143320231381813943723971704112333236379950177023553128557025498693392685074614868356390938168750287080650685615108208690531750866367085784498233302900837799948695014877568930370513902974443631289300497740126828862415441392377855422224089206041095583578830436831141680595830936640498088264084031654713493843260729293708551006788486600522101808952592320966929949972173586208071202994820061921614066073506179739036401473250406114267088150337293145947119360332778829270820048404203287659266246887424422375592945798417373187385228135011805850519657115691342816836494647505444412642233904893709791667338072916659897552036336668272890270441018429136789884172648725325729995757009850388242398482680651599535149849271923441186309111082316795513320779868310014543578790035381535260566555455478729868890018903385878157929158236817205407619725085847577604470821766402479018920093695640115007198238554770234359222286861188972699409602995537520831794462197415386801010565493824051942811770922515994198657024933301510376246958853498040989410843746825436926384223949748090788296726957115874957575149018897241140789085554156687177006839610793207222436627561058787046586227283961326357492360766602754134248788398970990739967800817134221354500496763593245631811719745418703673986936263999351161272387799613226622883657803747881948917752364378010064174321060403317838797059471095867080965972808548191611399545158502429136395622164057992666978432385114596823912294806983950636879916706945849654628865056147624138753971508189081015611980939587469927430587556282484975203649841109659566674019493771333413875145548492244857311258302369167101574015980202863063628608973896407243766512313833724962563537087782466144081469425175001242289870300005048762699758742813803697215622868048256572956514383132916423589660607024678918684229172315717589073052545747194016066247483596147333328755217742823040188362773692763115947597616357892788197612790142163508802975382129013356425527599130195074485371829381876889367843958397396292644593259076886579297931977354719011103215083658900621399007887786292816930029352037585159996918396423665307429368486174044292026181489235062672625457934375922377118839326813036685158674710825668420496771170644780489353955864847327533738149184461320397485053387024777531641010477350248382772867376811453003107752418848613370633491471781063885945435998670402981171864118062746625253582526215053753938571563210959263470418854776450453427933296028328006776250385795604675785931313925587349650060635089176268453794434864440273037681257359777124082876161371318816142976745837661713739127976207978292494493578378512611720591957376426443572200434775149758970454519751156258261324455107192435574055542208136363573770429126152499496012730071269107238298789737601877447001756544169786691599885946858312780505490710495662471090532113806416159343790084799843652795404094395476055409442732759517643832248029413376143213464119576784204704687868433490277170562282610967872927973417712416628455776962547553505230842459373929509302405523508522634034549332740102468777087504794944739581780762190856165382104317877174026659570541401452280824970599917278073430769745081402377650642290194973296684131452060071677277696603691134295331563431169779584140407015080258442966975342792491806689553764305532095113316661257611335736708716967774433142255596892719590103058382282851993054369238189398445424801727517547190455192249513436250316376245911305267399599391252378261129889475823357342592595667461323623515310831765492419854387895774569447041048868558833112634049122086454844253702128396602872627204629711092058749874719815195752762510270037620333349674800068037793888611111112113219176734921467742965820076178102802576081527568164937741894341516512761845686068061492832553698410631867392867918166838581538164414293364360059742787721033909628275021959814874432838628950264258875542203646859213061302044988557082091721173199770271503602347148665900143077934835659851469611921177401415957684627612087765261255943373924397264907620421912630440309356408517372454514923343238655773979404299920672588203171644502125112070809511788435571097674876451415041474421475883309185304554025503414741075419064579109313499008594802910399307856735351616240836443055146063272316663149738342997091082903390704791552600180669982631650920593595180743919261512888972111061632492668926351731950611255452955478626529101622708430423429622370239542625523625840927956415270290392623137197455371995393309196827213206163566525042981094030023969467680994141141592853615492284962439626895825158232009815977786439791794920761080196512453491582697143836876150181028074924101983924593913606096438363235162958971679003713237229908252409626974487888094131813987532875286483688701278339909997617774310044257311450994341918482732896256877146565126424137679883304772652749944703311034618250886478868900347616685034220373311864747831181946225470967988381339175403260053553919832742925538095531244965216246787782840756309894571070299768806868851766148809861592000684496143383601121848951288497827671801167970634830261921281560914253103410858678806817295489643662616728247197757382353428343928583282668186564655354078063046243277008636056559484610630790256678404407483026407412638814506497280749265848009375252202483787269491462160281687394091563547643269684425980430501568316110008179064014961782443032390555257112208309109157985591533796210463940382500715893778596054099073171039764983942330762739387931948797815632786447389136876094523737967694455786010194164682788085998146557451999405940280218439118367835270753906192696922148391923276944054139469893650040784379231532632995986537429405693381661219662499284004268270110311354400276135438320003633935835296119279591132451028902034314028368649221028629152505066453898447767444801040217049925336104029008871810975683401555151102853701418182515913186071213165059022950421030320233390722210181500742044284543265747462820071198859416708843359561597265587159534903891293560777036613017907338873388826655188011986559667436481541378478169742889658915334124741722951418265777568865971884083388782386815332174229900201407463209582690781139870048523012305734166066656861181258828737585553084307365040740306650740948828341977974965977435063715506844390349825057386025677735302892618710163966804364202637689203116499014783384948868444838102367208847146627434422550330264839302000552423819129507346802813076807579588566777115972556463202847945951727108413328379261053114253373215631869391075268765191853428979545069955685579700786809303703561595463183938258118499423041090301423378860468855823728484064400839191026670292413117978419414468193447690624707053703544866653352792038964790030824561786778082064296392221419120688322616563661278332243902730314249161036972417536869691292621661699291395713713438868912831565621337938876202734840605821482563067197928743928863819241505529918186665638912717224076800829133764883703177696644541785490255820737203010884843901071998467478511491097404359762346400126317313488143289148349666182148569590229130513376407560077769305858682515254554436802488814341927234541282533690370980069343300279597990208959072806261810754912577586136262502751985154374863511370953477332265716798173981567169905996509955746515372145247215807952375250883248945289633724016320236845447866096756614029925907645780535654424458602591770782335815128993835438451157058862876705920422808135159786128413817862289465264668299968381758863974616538732666695597068310239506502843723332412997841507812219015618029873829211591355618316251465068317271917144845877757179385864834279930706560274423386553548644100052471113688606250246280407244362241129252117517024260234065429719207525410239084938300142270380559160309914734872274672559216970203397832298372935988156904168358906484649112583359086911267988794463643433474164920613960371868604973171048820222721481551172242677164190638602802847777625101185498218258003080124731299366566058707791990949834910961421008235513038499365280543823566909205679813394552750440025488409962398064077877731697320719087449138564931872713521736974331658357801738828858533670528395445016388045634417457070245631540507320470767969257515223131679804336548831330204309272938358458174779468133115639726376416118108000921576251296455570474949544398854413880282170920736971921607373761664423129856148811940666732543516564806961946417000964404123161714490035752357020209580939981318114348871151638052812600291373495006037081616733200738149067558745757207275682135625661277889927943688033721558811664955361927933090662717321979752694576620584241597608243846882315503513561281249887629489877250230413683942837266428337820908254603987404954702148369355691292504300592441354273566265769464467734920553333771897581599349722818324826053362046630697963435950333615603957583633658501665249907550270770403819996787019918134523499667577163854793266901707420468790772711178559918605045309572708404000515947205886284411921901816854509840741803063702967341936143480378509697165750013785197091263764758035201239594275429147953639034235429734920830988817288982195286421286693920981992627925942294198449334309295252892342053594254316060162764346194979472239911143042153979725833683845339962331811742079495624439651960729191206516373670161327421735164977469250798236817346466749275628803170898158697051055440234394869472287222290046882372088198715724292063530139027938556463017896526382566986213022288185600646125133823264599982333056974487104350703514851973301387659726204751076628373628183257101750158946202258438416101839831413984406963518006929617636097203782314498258657454457847002697173066701247512157660715231610571188733117558318231690981842902186111362281083375024006010504509073389223613261846538081260904414474790664036728549263065453308123408392734428951889997904499103097974707369619347994391979251758781773631222136379230800890262459626478815242099257177179101767838514796042745816438848972479094540029771263580625484950920244878984399052326465927744850455249757443030280094343406075067047147698078387302289719078549279328339651177820043028908226241726388928217843610995493224649098800825866530752628027105850879751371040957065564880118026135244936778087074804364738399747212817352768192938747488727075115474039578103855858114061127786190546279701749685958537349813104506741506953149627256008484284957279613215490858721211872025649338699554830077702927036164645665439908730472339290303363326536847388688833685703550370982018655387322028344496285798537905879220863376232710814974533356881757745184774424874457898212047386955149987648199741092611575975992588992802416139791931164266601612065166579432324851333842284456213530214917539912323479666339473985014969134007172538323097240064056272719177235405701209292658411260977066169587643084706348935631152874768009345190378721014069044441606641681243850481037902533202856329482786024605114841802915138184386805582920490704143323507859732820409834200507870343964383114313701293444537260302591459551719044142120456487077284735096302357607446261930008969455965571716028904962948698463883052137337834421251682275144163284510462791711837781383626119062829821570249173407889445612816864392062334818616928985335305841852111853398756377663757341326728592046624674968812638550632106251781629008193086049962098468127780805151799036798525311951928039265638310540658510926938923922099250889037953634612779343637031010126669824362464954428222369926498771172606407509339951372788998883789880492866701493077999088150355354618955823261269419998215058002939987806333430728495194919236745567146146594460368741329993917924153506172986148193784467138232257646351176386440838439610797165848891427183225079906594892257725121442439682149114672482880435131849954537044528462880594161126448316990206638458652387760241662850647585882032399688771029935898987785405276371250748854505608893729611704058280020801032781726630952302388108209091422057029055110646534022442879894333410086442195383679861102177459795516830832932499305672965557478159341405075083128488802757380303605403175098745028754313141872756153210584193976421554178641560121469515972581252753352498291795389785210926800381644559152899018222552580465194652991489958923322456937895453546680814067199737370752900784211234824262797938592633168070075369124950603166701210743560696024165702971563575432573787353669288599106091731254811374338434846268791034440407475150420468815297026254415805775965670589797362551176034451515025151154847045423187054606304880640918023706683103947537561515299227318061095521618344240906209227668744528787692673441055209050497731901903558240529485096729917761912532107610959415834185615584140698060268063359889847139328718735268320489936320844750597487192638745145876339685912074956208304242712841512560664572385665700011518770233664487114374637783424303268461696351055457222283450759479744637127103202635407389577131725229829199647517872337880018193130042543271248915157537435842842652803160386052922783280760214396138974342363954024411310964188635421754330453054466985454091474087213666096180835795619113197358036545821169630871306037590176796683657779331236783414202574117594574133724958225908573235460455476388867055850429249421237542655278028086602336272965490869665771204436896957635952923077030895636231606616847137246138344708297479599156641027821994807841885318062328722805391738752674853816286217020981791496010031506126228682568731230843628359698392611969490192570196516885617506160759917964332086928910223666252253927499623819751968756222478760087791731035010915576691032821441530066741902753815538419622296244985937506632973606860264603522358039800041256790766365967016295333091937609357490661121455660003389793455670647613712482184670464228899263454921086948023160030051772139506758854782328092025545601332751076742220476623858759514771786725348861904850602525162759984455289687667031746954598381102927032929224293472848004025761976148747994179875334111050964778392524731679848197294400370715760907553380141490513513276581667280367599962232265775351567770879726362979685935866415562565062956009703648298919023071089924561966074946171137701985060091882338418768289167141246643232004112215404682186656777555870557168608181360194206864228090448181967219812605952935229797860303913260105543461219508510397364089783462019487214986971599210440609602543825122945497795425745197707401859199207871189091717978639983330903482516836217077164579330403322057917657176987430387541212027773696687296189227212958235581981773873096950209203304483520522368194097722746144754669255157642596172953747381469428520581332097071842285533908368602289103380215848044102797689675999428666761212288575154264906758131216247254223261913374228365980788269240878030330339600635536823971846986309879466418938760190018637992456603235422196186098704132427032365684215328903606333802130237469644162322887723200592214282395399597497381915432987229358398610221643705634224817727758639667875930886647567950338361059384697815567561473790812756359123188788909686036854314528756347091584319683485344445553941281757534590712152630437927135608722860434760833816559245570370984711231462049048350738812568856705908278635456124507631026672921419262651059410805501401766760523993652676540467380569258955027006930936971605755602874908117183758750296959680810427737611335424705537532058256617992235016110920700180928867766804017301296528168544003616849901766179785584733197566424142140790264172262259113602990403561321300593273179288259966330168226253244663375325759694126741066375689300826757946406178825003319902562304978177298669040819699584345618420917874666284887808733308388705719732689158457075566114375678453712665363908745517758011555156339096492790030351738964092001467707335390628475844514801638889395501681257905113653374698971264952595889392962945993408052204556668342116451213769972210868176486042885857831337308987819626245316958531922532368550810164458690156250120945339619650073746144938632426854386123068893035547384341997851771203025200584789645012352900347677192396023928472500325202732888067163372157524177146287366471089752345319805123443504943093444763882974565923496594964691013489851247753392728062983658928600393915849236837535565159654173868448046319002369371557272777505257824378529331451265854598621087403030825396407168887650974997022927506718116082410488855051225396411782215864943428930121076329595546349741983176741522142795812041945924627518461868439271093352217792148524334982625488735869165991677689557992876169008588027114411217524938178799283853493433610948960520922880968460067651794274063053009345329764436653734656822562496200306614625242586898949426505754858410969148171506319236732028831738256333765593511157072391463098629974849306649833123759327181855521488545666028385180678095615665404731572799743109523409672675590920319844880413691640885481257155211885944143357711826404612488229630582821360312377524688305166757265876383878939917286551678993960310508171530494586352669518351983728081834373634603020511111608281790813048973176714363113645174480774599958518134229109548398184520987461602290829538759351325796933995323477865212226905577245173701263527254737453092696019505747064302806396923909193123934206467067788205939502963490208722086454986936872041849930361725755444642406010084431634837891637633803629145243193501347342790906787264477677833218241227826431277650996060202182408451537621496636612222203580479250606348504724794448596421254618148842847724865135723897798178208791714395276401474926834495978518237103869282250282898752309620588378407418884273384934953918048851314683413584514753979622327347348014159512342901628762952199064307579928103474104521831580003396649215717746994126151637359191751816147216720536079612504411612095187176190153482382417906767302755220798046387703000466853856254647328729155820721559906454098123597836801193762231919865302173711003651233653038931405515281454814763740905992341970611020808814390001625121087678152672705768899128960802203973157093239040605159225141384527414286107400145109869042013509251751683759767507039457790424316409807336977170443894752092245516005728065628898934682794971215839116279567274289952988771962019559348198853451538135695512477993716619576972703558035133599685468036795616010665663385776476013594421203127846891760880490037070922737775553937181116928240727690842860388318879294032666842209777221193845950729566207441137466443882312415342281994403938550652788524618085494718737619909704149924753816587193360561622548917039036152785790949317917973420052960860706573834461113666251979481581290835894292632388929605460837594595611587054141582987168773055885016118262393724572384514366513519005803756575415895876747310046364471600147013212554886481705972277652368204439183649958713573193061836236850993074286067723034747082986277361804167131707288168024627586920946075465810643903373201342670392148907888173319862093787067718688704435045819189220456538113053408282097678861919961933152924263989387566418764626854319533721658802315915803836749563708230364289017942577091545753634023889433368588342965959121290846747701173988363250183187033605427437011727398734392644414768843560189649108331458116533762249899647415359218058808474906981327217544950547111735605449520636615535598601505412548246021529336977435246316269991899966949332240829816614391334572085419888913499657392352645517990941668425805928275539541581049399928144464213709130929073988804730255143954292776379149232801145621800892080925225628222767667678601421781925600487101516091530536030089716529995389039747606729983191645377494710499449815757832493127751146487011724645574230812228321573329717891152260953528994596204975186557592452120740029042266234825522331697756179657254572098176942646128675814885445594484827453851494036188402186613697460021692499728643873803693503905396416443467003229752406880167462996932964792842708405183280648826258509872106626512750151522839428456283672980630770711696648670438022122221750504352295830020183525610792504637658659804769604261177871776967274730974353317853037429248073906398600343104262907263313377933334888075708599985172711597808477687144671033514892677943303455354400068016987470387105597212290600390470099984274058400501718546176877905509155459244647640200182736016712321614800543852833569342459003514388664292551029921114992996428801513300277466351710499358030003995966293269747656111501729362655075818765808603133681936598159818362983048774771117516808145446832775757433292779358134373315425204741653828514708630540089236094048866606891016958591353521990227948432822847435409542017091000169732346564831944734352307299534502581421695190631612142592414262065819321207914923190952725865066127995185465056809113179475102777958990022721412336406971776132635523606530448926988873526528900562054105794284312297643066758080007924061031260039633483142406359656419545838403931171824154873172205831990690539621681416357332510230279593434495657742912585452417104340078512027400082214978559493894272670683267787049945686251961808837556710030786596694906510477156027210837743360265498455479361923801228449917684116272558741424567151372451329114356525671912841049661907891138606820149717456837877458745691014134589713326856092545742583923316855690733517747437756670400759028134528697190904368168592668420799311671639030750934765657330120037301921656396913055973883425359084752870613407031640038087362295826207713065627289606751667914118927126952873987513787108471969340610821460636405315588465988473314496713153258538437949119829479839805831257386491892430528629035177964515274064081726211982116041788928110979295372435027951444918941071896144890698331383562051705851519828495224989509128436295783881318328114924515774484102473963137859241155698309112223734783783634066078755344849683205454421365795365281462041853172228144854759901315117975984450556085579002112533607786050392040187783947783796695905555356509992058373625357809621946222888873832254362017182704314838868167765762757884148209781055565105852885096510186345294722131558570985594486543622970852272716865586078159569677221333066714628686934990169592664347607724568171862362624147469133587185809749044786606210555915880778502161402643491516918979249514834558076071662967405378715211653754821908703885181117208315064648094292279985404779590127672837001784958933097686377513833894419222949005893496531332693918843646396055019943719526097262555606744186361509807994507761343569798669793431198549448604144591684347382347172791752980951319178084960061088234219868972864587386776143808783580789619776878679537214187542152487548093458395144939595419687377999496679867245918715583346842349206583671947936469020416645557226919032004927499260976937822195675943648090427271666843397095258918827494776890608483225291511831114228818278211897717382168117012600628396329301865003118737594063199088215171686317961114588670439022992402011613431558791231172039764982022108838063556715062580897095118961041028878415915709173813310753495307043569501101179652917946337005528793623884745913818482368004593718258527639797797712304928105856366808739203490193927314734169430553860218600465429752136823899634971499813678928682835148168963431541742472638565030235708278172555493190702269844208436768003444443555310487491558802632650475063228911840232843362620768464504987535966680318338252420248394147445744272277056771356683293012772343114923588857512163809115364009658578123427889530776017569722764259244087075683013946087033211624609189565385375163343915946144903086675446365515447158798703128111264695234432040700502302966120264334371313978760554139552599935891737816542487405657390834603941396801175671300985646967817462346301926010418227366360982916258605550209515330298638156734175948294234373079699985782590295332801873090912506657265604192737981562728803502361645576553705170154732002322577353010509206704649368813484774721699244173479072036223774367004274927944071061058252126988857019905701111715789596688347914503579368884341422242097657755896501796454921898101586792821757513841624833739915368865083274899516876776122899933885260628741439619610456696983982588411614796656815124266712696522748483403157080560268299677677971227504413585504347527536982359263727495937989266530651703524094932148382761812353038641601193435335259339972175955517861306682089874793960897064074568798132375258357440508192702830855188502328510587969385229285199028804491813224174771256681363669902209382778930441963812895329415047622744402580098182939940995064990439456396933554979938815889627694791534647301683035105049217635995353976817790509814723706093145969214957051752920345406099786741070621822488340068913140777349424494266085720769889806872495324569580406814521899347172034817059508932139365136955528789996950028039805819570092208457309951223984135146801204454867094364329958078177334727963950279012635271809938667790246456638072295469124856955345521659920843963853330377270752295005894614618834324730082807272662053257069478981420919029622525112796976591680495117627542573368555520811754707636059537479705548399612041273422640988592188945741550264533971815002787947327206746265129986710571094482069581770281890322622564769963513655783756946287902370880001529357867423944937556703756395657533233628491936358567753648229891802380505090519214251724392916836186250882947948478775066412889512829032546638149277587583558228010725839809495382843918564554014187607107956519100267518317533245052282959064581153714813660650564134169067839826743889705341697127588841901552282133246457343632182527789384604798700347483549205479424879720947451791769055236966450621210897790839953399035869164461541774676968392722743607809758555794935877642117227063126958122219355983459456243529153535824181092774487523843261727892709954513773536562579467392589878156491334165007798129676755360756004445282417863186755644583768255814038907661864459092112389007181390138525961896136819837289112013605525093250682921205154681165140373693394843866290877336749481760304920126947743697843607765910603446120569530861089089424662986881986242550487304318429581993365444379349992474931762344027404243561760146501832566640009845528023558239531070366242268537526739340438909843356152365150203872664978443878269882600244997334252033856067404913123051116352108395251770435306548261603434488944482635243252661388152011801969741669711532201413651388836460331175940627782718116071984250310908960695378144007457801431192990275947861972657529115734339352196138340032344627292636070970931691943776965233437859211127095121617832974367809255339753538781734078213229411007226942065456286029062422884341613220406371908513658241986163015729852252922331210030688459388557146456218503779410763201515246063380948217733556304970345361802159383331056190872356788712603887856097320817721101066302121316231332752216975770278822972516246495931546611506250262580782689694928762264982893530792613038029453503350304181340868842647059758074067695099578766727111936678908659241746143373162176077358752955517859108369884256931547014547308714054534965242897455456623040928119526099372263756740164463731259014816516833707955499012777391668658538883479386232830692561923930066439762734243663295662091045929003345642186628692955480472453620968821476101484005695387762272540272211182064994946822801572049604889586681116856421992430515816919335652458070750880131479218803677626671740907790447124144270858525416553598466544633741411192939981192179381756276645954035210824791815221532803471679176724591655127116168586451156725730592198036471320408538865121784423584593177665999812178053975466744125502692047598395728910182708015043121032054087633976312447384173144220055256133452681906921948007495905872110591967980149401539500588036313038759719174086034963987627663400413595508549705596514283861195846644929393796750470160308103201341420020963363130731983565510433914207950483161947058683187172821538766579701875320325969980759419300018651530317250435691611640692107889124331436563856475099113863705603775713549226605156037272497980212607488011124558385472423912009258503896898881618793470771612417401039567323451087922307613457799469738883370788199773820634308203149954140461765511307818918570493259978854322584081889372810110540650724952604148776286850258174884577352210999249151258507620080139744336545208073615075017316139036389635412589417028932861810508071275313497756814812245884314905768239881721910302192317329743018295892932941786655908148307746102404976093880438097458257311048955918409973140976874991410926489972661180292326249289591201060955815103364271936525329895227529587459250268844771046681471271861951460884028274899234795846660394486485866174817713433398557740016243461493397888242661614152824991344709410541654899347959033052095050503819866736567103742565120332855213402492071803093356630274474744995809716866548619175646252195222915081334752868015315384746473168790915252688513192882650950313044486725002721376196282259787164388509682438950961444860529019013379862470817528394782535087328505322858135884742866679068082244023966957373011978943890070810194307947589790121375040459841693615165130284230934681775766759483406961654526849949366696366641209104260746977484037007000540544782375392126353360740973186045395241402384237864545149785242152636481710832594264761571912134464978710003339993260352879196442639644062294968514723335128289564334472088419062590429634124862034540138392583130895230894979461616264530251656721676680372261580291598796704701441672286100048527878140412398120518719823265446386491669486480055524137959026061930644530446954076423381794499914222518799239026788026968037140571029547581242015166046971548311532346531333076271603261841546465870505489002022636902515549021307448376682029809792879966392724518353047226247267413166597496560988495984269291908391300720934222204850752040715211260368914189410140465345765685691547374348553365299558171700738517336242446116358748534016971918196898884323392419618890422100318545948056199323858408259938844341213509119159700075769468235027925069673507048308232758949758604411348703563381888987603603689618073159793898792744321961132051050403647197162379003992198547977965241684725138689385002141350628928905465094694489537573806319251015552904406774042198800585279583926887148645057743108933150356165770930906921935132593037437960955669583693382182839842246300303982255883315090377069623610792486758207158231710780464888035313113976965946418912364789048585849969614450453180268769976188909894862393975491306926907364102190383140698696116154478743189397338261378182954373161578975461526219451768500511334035104468329304554225673050860197339700192929311942644755237235916177810207983430391332197522206867647350952620491236844191614891905882211289368801471833067393137605167643700587424686412793562911394890446618900492195649474127360805565096556896531329478523253829137637838901811349105523834574846869080707905306587658756965447035568750745390777341546911046356953133692709108384289735523763486993925266843095033346396368864629173721721607308585383064405359180606690546924126819240139268673024918478594686137026214393812180169671642011872811298152686053374446141464864476064952472984225430006105410392772200869948311292399400953791891359353945944692298308471926109750227402586830252419708405150627304103154807871862174769825164687016713286346163290413320784004508277871920659263423925406571605197021589513893505784856540937809012972209209567303424805328987233413946573688834844200119089620041599280647924033299026471255242656728328541940189318492710432163560084426193331484365181640623249409201566068966404158587130345739179813254813364797882056457423958510111372569364234586252064579580961733587192010188770722831934100410480663656650791035994541668433394077895429045314570307244550938368941860506252837900029311472263945962944220215540719273535937444722953674623589437800800528004688192425089737191862911394736229189567041476788728054935534061266700643412378473419519602821567682270834658543617435500088730980612224641627925029395774912408555919287750055613978116198607010458481460353103063899418303999847165987788029413848844940275979787240075306518274312287511792252550044001714985335767275235109386593121004796882385513241464893876798758667191671935276555955911197053842449094380261757030679141690112939393183808561518564545378320208292695578575850517764233024322293322071161179584136008966390212800837678750693727420026714272331766294546625041230253320962665632985329492295267571393963017484200655747013417723703131060797155181170627194431670263392626596324888699238370299553637178286365911960195953653983386387830150492367333461508613067016394892448046515769159555529323641152357857457910553875728305876074388170253004775903155721956143226349779902827148716981537966117710869739770564974492573190335386647696189762149774797946410478970125171300674806945928949890331846408904978150588717943042799380850365168086395173128686496958914017908757050429428594804972211619609048977306697564377030085540859263487105598106655295635818436715238708005762317755553354519318302562316174661380263856425508295285031067940717101600874674115968912425821877950576919852979678769878858306773404475705476546535449120371073164393811311003864596091249005622519743895967720998223119515772548280146790011112045959962588838421768692866165037431537222390025979226186752530085952873053214443795722014631030035286343379405840795417756219058642698287115605524533729114994869747080254315389765653332071306617534201017423976168359996303775822801359270931656708886933103000630224718285346080558105562867095158894533948656344098310583859417693060969065561307637416788329500001787892813690916144877431440587363160226458792525461145325943352497250767148431034595421873040162366916289743852300337139051379470471010399482469155802406216323668626135043381570100489803696309557449134681255308561856588808621665835024451637924543528190491549295240330773255856148391805756262751902093700050191771567251644487648186908765521189545346645913785585326397802577487577440982365219175577467488987181275314989099171501988335084437442368669219043016335265439351667246905534532711707854707023273028945360647651990846395233944945574251522596457066080969540904896696093556867380266820597025526806484707774569669434594945307316209955132283249224074405451919463282492034343001222483733986731250696711962541345173877760289836016587267984586377842679136118981704866851130226736413790837105380591636244429971328367909717822069583514824791427223661856398818804611337132353287585977405720812980881591033027202497607541436658415263127827846875358255722478987016433276135538072837582198529401994864624698232091315265537691444082370535917014099561870378532125405331935392476513032286174252688897832966432988430226411266201248150233350356835734617529488182676665457520379010658771244017230153342387223784586767292149530501443886628437049306787801704857582083715873715707638634653767983456036474395233860300920524863972577508642896005026782574642724488532633309995076184997831368162969728758027615734259976241458494042832327618206704506060088861595185384368237312559480355315066129545178413997970066162246935316812910878219541060309563894545134247149064466339909924123569400890025949520356022082729890065521644391359580282816848889515254091336875028883848990516920606183704595536794870435678692938097318338301291946909878840328824909594283147928533488353249352815133420747640324733509145751723220238761821003241444699179348532870365324462884600746602927429203495114770315877014208182888767318582343146682625238787579364577300587496837909998128869435589470755113785954743933489087677665248013921726733717715946145536739060533209762126188511415937632162240416196130111384804890520048638873651927031948691343561580086207476638143583048772854299188393067149629736834882519508792164464394285509502666272883600286474032683670362106196408042455086973475150845236641890585970276837410542792778685236268308255647823272421138188368829084755454027364081516518199008135220301170121832444265310208103836795177138554336670335519560919019263139733326450254492763383158842302362576157205650659597734750443586936414098167331827470426920799153529745857581815099160853235618033676452928370132800970699536904178882977146984096087761996763123978169677295530991224653222347177464727060807413379263456253742965678559227957145809421043741112790762684961333018509368320477253439555888245903814455737874115517761424736334914459744604908603743354372417464022156014517941283432132738958587937270061649945224806849230446803884860223772924441374145680104254289175786682304053257137824552737341413620364380707128932166096303617866029556871752110997409287586083875586427892439223580083960590628826831447780700265785469553014162794616805637295785200089411525763839868669769851509083132696225289264974602518294715404677003336890414041656092835576116631397826623311085890281299773445610095353879828433072933437915516863796106080888292922368069410181296858066498169245487226669352370497629961526116807658598147034800911840174361045224280346045672899024364613405774768628265637717505856868325972725497548888882831836775411281725046319982354217429706886296960296012730705240997858156069239850293224366445387913473718189280518510857883696178522353586090014159197614907113068055556682853233173455610308154337316024037259663420990949865571900383083417298503976291860220058956426097048716653033818698437856861981595321792651878219873378300871760149319736432106326794547214671353865766499489817293749971573287156432622664095409378748370580219878707501109851608497227193162257416133028206692489267601680526243029931161481778727975321019210733232615873119729062986562836642309584356984882762001911504981020030224118592292530538135761937616152378247045842082046635952572119215376445721802427370232605143264712072791474093231295266914177182924698392121844508615112474527707680733605999584528723367906075624658614220768035541947402310378253358978224114169322237745612942287393643050696124231987332820617546303279626916986060414157310554230067174886450498473477824247087004429435253987393479750652904889054211435590250476470112921951442618747273217712294182317967316615230369484829796902081698193988653262406345774777222342301022990431196059540742286431303194022269000875977216738468600986779086369168410232510269679772945146534328039976697704494466144638965937481104701121643330373477008189741135752037798605524513714940272968149325794568314187031264074965296759637337366238606499294695511636911768210184509685387518916632437166764265533274601808171861406746890243724945078117980267623022614336647580110520332182317942032754212250484875779629830832726024228595459450137988600563939015041956414460413204895363593416986024675175187447957288267742451108868972882132724628359400148189553067775478265857572007325124396925362457334582665012775018341798156649083878639647096547037826110793250166981448625663258066902983965018544248917535776359396989473847981797929529863366446820418078249972761284203734119937160593357458550400838880039522794209600694102269628643421073593591113819217068362697967428330727304809714722308684521278561047855485681749596915200170760590438937405286590870470046985832737893387546527370502581424597603421204039099982599257382241058004251152914121968161697233286095220600675852440752211329575867337302063011312682846219761639644427608683884768780235139953242000454970401511807832277158184411172258732827624516644015917396854125376367114871933927913485247203228653012047029399087141080960994736508441635185104339215266844882353361714639093823370864518555364992306656093365771868666759580156931127408700937332627744492025761279689707872261582046553799780104066960255833547214120914221706978818940037416610790155127486834871495759520851071942004085417537362366975489373950685229237333469292258275634239186462510854110755267861304256706254648483171201437280754506258211259323049047743694365108581920818869159527608319982171682612071050679381397472756958200482139904609369876854290823272274302034764839367132466083782283679915909945851766995897229349118972749890822712453646046472163665239696526435910262595643450153192654117269811681731928332801091228349678911214854674939332392525832235777260064993540102705145435307038953448727876768645588446451267302323633604314687144510551846716230589401115705684533582618814963769308556681709823398960629675070623959458418003301093656570453312720379350867363742632159749713346612497062430931258520207294934328939338492632392589372654168581358698080963834887252968363029805169263962169849260472757929986224058517348247313686547295419716171019605475788571184652952435538364630355443510523256544276224467015437580043532547082525492930476438468671386588201786758191718876799711601987614316214337456920645371683647148263383750356645517062477248599604738557488676407348095156648244092456977173899722720489255717669257820774514956752216468055698914813068282423123144983930143648762912405318049470928452033157228501229816606703889426710591105225637288788212260375979362223292771786475298703055015011468237081375746839730725413136008471725252909913349793678277162046174764434612969256295002656096738575730894686094724184526043594373990425029736946954310454711906235306228663204707751564030348327171472728366641050776140610064981965942071708121544364007080670234418380482048637799804273111568961397257476812566217029879743283987006883279716138658955561344478810382829971046308797981253511379395659371994025427384940652752953073820851016387432043286699503849949042150782497584066745217044758777464446747884703445272957055693575504791330710218479888520472053569100107668631552270459594905813052836044151635647206629190325772432223378993500909254374182571058989626662280737478449131218111313539416642301950294787179796759229737267327937692211201045069051588507475265066490595805324964018699325735801128855106432597898210284806227402859716509553886846229634638687214401986178288978644929265124834022494193667419393533349560748344232846426401708952928001605439594458144648806642411864319978713130329737641664646287534419649697022750813837234679676607637737568046640836069844056174785936121850599495584541028946610936847705369981464891597709798333844119565910460505077927056925166321145640270980672320637133831787402464016893368849288120779598380451967264467405780462938795067807372044781313493228123047868948440719150149097517154408418303917642907263538099346390377318253184106141447842369951961088877843353406317116438005529783594277332161012511882980916776590819313423432772864426569452944866712590774762677051379309570261946433026357831628017981183752525693096749246404183156508372652934812680311369731255631639543361330194563077151712095641647926328048391616277401508502171269273665610068292842661195896156025046871234556442359130023567806689431489619410729464168597410302582536958201744673996508536292167652616550251034521787133296949180402115710886055322843686909542386161642028584455151524887402753429754683595701166541640804009051498062808623032991606862362242495101238930849974532840713519593564724509238318167649736522601485479308287727841486704759214462735022836156409665027760623978481522530346318523388536112352911418360644230020681291565518099130825541983352419607002700990940666656323799388718683673463069029390837114295631389377988138900358217903025480786348492108850330355426821563395829635045837138029432020963275175136889565334154360292132147856221729331585940812906740358051874440388200994294392305902987317186928923665659502144999800466980590679210839345066324222262033066695694490039827231611558964757162581467907573754711699304360797947122573240190957541541135507091695607194520849753792820882824907226434851613631631516475479055435704373013508029041655563167896941494890002043899220797596756292704129977926678900629027815989385129746120266396594786992391741380378044433427829635936566137379845798739507853486950424496843079846156033375869473337845668965048929036981721610236560170357239969950427971204001310628292539647729531706119889777179056489032823033076599960638466336780436118475606565658733707187859400519993831641118520965312048999016961562603621972570631769901960146618874835745963236328792565714199519657779883285139580079689099021739055849049782763014474561211800205095218116999756089083992993253878379358039267170688757567113527549102316313628179552551748266621103140700611009420879175497858609051776310432582277746383307889356218844941993813770390220521049527873607452932602556051372900299730837394595805754687690130672516685798957390269739689196042609881818217547315300262884309780164093471180698490784498183644355332883912405328188095797774569268125159423586539751730526936751606174568925114826625970039747114828494214046502985995417464073296457258728912245500880070817005874857447268835729718334736745861036032972386600612367385375025554537166021624512647099210334875758966581997271166271976195430502334140349056960658183320515030236377485248571827466732063531759560053682801086572515592743797033221921186388082583898218262566196550619333264102918660814271443783101838644965288331013578619527589332297129686440537766072537414353069685820295651192644915764646367174993511787708343289746115686346528463181645013266908655186040079778148544406798573427803193855984066138726305428115007054266413771493303687649703388606650680754788059442000929921992756904268244043974071675840025990326352276199741550776467922954523655128148116698598461805173652988426889197322721300577404218796239079205663194043065767197435488461948384179143147892927956651395108034304754715372142485684456393036346907271496969406959634031637257421577832173609861703110285985454300917372396360938809353804636654955392213780213611471113974035278230778935212799475953214118371120816533348462230973444035492287803921713122302801900143968809602783197833824575380919547040055870221101709733241747331652155330689439391851078642626601157188027504816350783544055418531243462521928951818428785655462058476239606613292585265008610363795954810457290328453318257145725359637645118983551000118565804316749008560031660453754675797278845580580622713482566714988792063151812247412261705966960385389441307983452717583064315701713794997273663573342083914173334889502439857188099045376989922291826842180472916637583873858462275036070376246034791363147104533189372410847562490984305037265610463322836479374619810480169246266256312571115607726041466776744360143320612163090329559254901701316484050581163152123120477090189392010661854503592151820528717466821501569573243822200609239746456640095632677245645388960818303707890693100921928231652351920808392545051536143580353348187037936919002522593553048769523028026741107225909167338864199214744874543569692266857528482185104893973675415747900109568264114756883166490834395334784474767528486701005711920748956626292273172956971563139311543572502846920187500507582651421495852997495882291876028781376635488601468030154276535408003119390117632363020651926891535890303983906278579792826671798254306050264654169313215701334291794267374535219843760929717812375467759664136133673134757331544172436195118634906374319187931419389939600719608362191283510313547123142739469467542746092148238515846521190640378596310284523859648261794719883525211867949816230446854743780933857963174130080920526105623453970274940114051604445513962969627214899422125219094923541608445020720254983709287455590921308771243145368713335460296192212536634873487712881572514726085143614809680605297820573373695205529229936603717486791855127573462832768663620638435506506230824734485990023330987136143689692477245612116910137229380702857226710312950626713644585282233329675060310460489312568850901910736104524636785082881953728018636975491072520393306570995668786078298435997625672745462555085670100424531953654008836415709164908610687910113488497424389106071220829210984978678500010585729502636262530083285330757960920857972217227177715997943126137628017221528712048590117755870488027619874518206520721302644105201577598214981875264557965804535771521242992585717993115069540949458236855445586246877528945377095637913226686143669036300159879641607277340555412434454158262870428499685350201965851229187632309185032660953618687862562131127934485639568837045529355067911263283184531552337393928658249381038497331988199157218841940882751071437907557878827751297780354891714255354460301485297756234559429926762339742430676856953252638712091385700428900710492926762416818098563544667317660508249904241744344603402643667179099737150224385668955597339571915648856124960543327444424041542673101552069935061490200476656614026893106081586205029235802125336580911183235573798297127317749484104783699423665216798746694625448405205803308361581881873585272948646090211840960329612255169214017159173960760760206037406773518907427447697713035364153154469884860383588796600191791773934213992846502326472432726847648211953676427940936690221574759340610503721556198916861451383837647398650954000083351761517867320472012284425514089286650153046472263469497829836899985201333597592609275399072748732358236020377393695683557898819563790589815907824443554701249361166002157912344429632759541940968343778837171643669634795419980519937837186808237920488952493435611586955931852841007632304071054565478256688455418153817547716696108287870961612004672032920608439142583424314735879572072180697757889862321065945434809986371916268788396032254188088933769461752199798056985802703459265036635771219555336774671381742718756012566453690076552922149699028008372865869159908200115223937467259884498961026123500848781324646133535811585199987822575701560902466141911784022912108707021750951311547912948778691013288178617659073476017997481909341913828798668501422891230193773371421640967178265841063455138449034466583080578508666177203115349500377761005462424155792204158172408862741535735216678516165163029347554099664151110331239298263716108280224440705831303388213013951498148537823794620158934961234037570656694629835075202248368489512181691982945517463812062121660782120844202319379612433564333743662424426179175236323945775899686082376185948143817499633688024514965472398510116195378349385749925862216689524411076720907922806601337753115484466167279237078105761526239947079169846716546349183990809180713865665355937931453846822549697692782704902692774372712859046786460363298433275850234793201591418143878537404740740255396553782027797679203087974632954491739107187258982530928970896841535926887987361764230640405190103337748437601646359736129876714781159921028594572539261912462280857404286846905628045891642634981095674602663435027069894364258517935948965819078355287920639200178601057628254485932726082361411492403877994204691716300601396227518778914835676525954807506284646233453260559777291515066911459273349562769623367411541843974943279303578458286467956217615023684177296710948580682174595133166858361443451990410530744008493919976683564718688750215514012715225770738040114842834943592533055801629953832609329266441672598691753540517045681433222624049667700076869936688769377243404980515424170285114726953837052562172412906943787493447007772434831811166657203022220756862994505755410649255392042631503242208841236505823375905744803953491827765527104059146674570636610904020677622894790721296579176555264627825376229532682895819696045660413292847148897348745531830073703093108811993356313349094628384187087815834859172482016089490196838140026589281686794325583147868958372173174271699008846431259268179405947142592983548374833563465021836961940921688645428978046843043016208340687841146051818083979996818597947472406839331680561154453996608185846095749009244604055378789504351480585487678249501287102636412446264700415225688301206945437760181286546780845100664036408298746533923421966233679392805602074969468908064541080001010477415984028338780004770066229672571859741073462808135812851850964621186809031488748923422606328700908669496034468832870348317274698625185516891796661681435828671049336245608698771657289362030813433193284768671272241043264427593254391111241759843979055209023055367700406150877233531985175344232843386243192277921253913707918528161625588797080285681963659472699794885951555603416431518032083363472318092564858259549539018360630556488531177075284095953428361844104833222967007526987063159054303826837932081176975429724734276800713002124569515842345685695132052233088259381925667933587594322000591948230269762963961725181181628451863581292478596349150808247197292678168212557574175230211405459413455735886252118258342268819442829271358771576811946996019111488467319238339284740480064526825470147788013617845537377882757869132730255615357057754486398223837709852354289707365063091374231440426180080636534692214043930809786043403452562180889637566913186361740968797052482092505236246238794796296954301872077219308324823844180747492525300297799175218480229421177554287661355832659123973917638131213718140246045499151866944870482012786863986632357965664447284639477358530180575978245590921632867275115407524901659678816420114197642729286658685848302309365980350641491009269705244864186076612777585650580054404744579336379751069614817268303872442155048833032730905312348481601392916089427095276471191168496017860539785266803516927170114793762572222318731978678687764768672063810185180665149442964951310580224674866145691341664684839892037946488065634069000326745190713910639521566815725554732149259151919425005168618327103775438697392737541852778006506308088781803527560329286176452996642472396457442024936089855946288670887117804870453032369048805712841884492589971185158937325764654224014750901908931911907736356324133731025057244003182550157767854558473690591266884313134712108020017053763618951378534839354020596820660623670386650220615781564453138281472757710646626565019855840585006107420297237341496127617429035288094670404829371233905095798157804703254240501681073201527698326420471083862030098023439775638283117367802095459260243719955963523485288842464053878672092630278080214902945409776505192197387389223031246172857291256919427823387712140146586691275522754330074161339332349151160004198951795801530881326885359948016990994908225355988118960428066172657268885562822858179605623088277525584013471576633973831270933920036245235945708757405870202715902869777343243018247039598226754989798279026219544929630843318653446735361419827675105242473347997837426240008663919054423543046204932740269412497547027231441783870041935632498934326627692028482622978656875488680724305757795885798398419669281619364025997867165510845482894568843593557507522848769418715074223295142465124522060675512913175955047477982882992366725371546808303193482339424886608217901766725890462435701003870479388218127821004401878583568383034750758688060468111925399718099296108562624434177118869508678150487765084741359625684488516651255702601576402379742107800838319593325864510884456527577247051091471776179812072325080257988632126878711521340368459673155833341840583110620708407192210772916534599451105561620334138415481052918740288599646980957777596578818620620186778720394408773581008007030342073154219912178768160424970722426899367137374967472784243358227120863339166091427870900521008027917061136040195745868640328191907175816789493688740986802646276463323492872426926542496852765082924497566914370909802273577061866554588758475933274608792949957817452132540448510057119390784809336426692717480147150524534695276459402570095095343711116792347428731775171825967027353987794186686456537747081097818167938991959525179956924073963514613005603874100634145876003940645692949092557600379718645767284874126524901205950947653073447286839434731052976705925558755573670452314530541225779967589932872320511847996695315399645196506601967141484915546643490543539470137500501806156414010136024998737608048185268248893788672452707092774510391501994363327992935320812955672480320753846916796556484180921610404918240628828042637799324699783437150776724625490644336686315072979052611912807693229065155144865248456379463838955743342868765985219709792092729189787812396011882739651710278511538012621550588599648905934483209623369997351462443537691581094503403470013926682921252223133463831209402395227866094131228911911284755166281884328031880564968604631102410736497628557206517171186908670183735405294546606660676856744576395633899898104824590293748944581866442173743636350050808562267645534963490439976929213637944837067409733964688315042445963076418493078641205816688971536407657585092446073622603382544129606442299908158308114834133655862508936092136965191283721794357041347916623881825880894376754318033048174798648680275382764052280866399893440727582049290990954947636931284224026732327872341688870608145134136854646340915535515195145000863552274216952627387422386551425938826993510986962036096122328931696508863520085677826473972524150108414236731487145097829102588089804694600750825202525901347505290446453386032910498076387143171199841805941957853312091055183272577307317288821022565989016295354079907975097660489525515629821096407371145927763792505581842582788666438442528720580177424154297003615057968569892117120139706729771962274185379075688983619543296336764090043431751908819859421312816273761778016621130599282228899282584031886285141357122210860446818324924703005782703781429295597446799667639203096231110883709501963744373743067215536929774220880550709427016858168381754572927482520075015640856277143755030496454518941390638328628764044736122152550146819544043614614767345143965311656021924656154542361897744676628336032990770367272750441174693645013742841048130809257034175332916979198359394854772579993039983221763208231848375000713821409025778578328493939323571233754861427167502885160201039139873822360947693803689669241484356339774255447158840579458401934005218475237241419403682725193889625361664210826935195706145431196578116023534465543837818185849963536330842956181981044355846539031678510144917051121908842145188710032485001743199893125956749772650831185995473446638473341780478824082875600624784343933085584144892249970653562261056907720944241613155228455167811290144878540611900320379697177246054703483834988127040900518448239738525036665565136455583782480925670376210372853189401028289665401315384273930522611072091007672843044895730229601527918052993602390117689701819489545183104380661371702981112886122919679641612376443046671151111648305209457985227107898450603324903934139713848777758218880642334853939651465587581292421246333340079284343409118160727030239762178135881478464166696617273932783990028712045298416893636514707944346047261748131362381691127248700634516094264887729295403266572049660755749601960346876626765112269539221216184358700260238708315896686411057481883927916025878272892566289761524414347486438286748703629298051390317925476081800984963859803505620057709484799220913776375520393489104808856538886483203730262307100979178169923075754904611462772841132854233632183414798363102689774851885909920750373850383671513136824769254162205021302359831864089606787975430961570958188252205725010274848548221205603762132010495140861258569515717091491194805469406355976693801522264167626281030697118102898442687075687572910813835623365051804890003898698575169280406637891545878885161839998033407968452046187898330223305222297244883640843194542162564475359790128218139605958615584623886656619984633117055335203365494373051901285421309833345962306459568262827535279323738043151852411321171953346287526600519993548159166990367470072977845614337176095186849493161105115666764882241370949280124244414667555373390761384393172329604565078472744694244074850377454450936067723293690391091102740495490583433544892411409763628203618797741137020753190588417991770484596857077035836695017327572758381834776272197748471066768223285963766911694069877651434797405140276063659099078121993538361182006684457344248368218901177296712289442782075775793992341084718645974440839358892238335645477845183750279806120860629065372660675237098358689395284964425176484664593718256849046751479716549324950030813030852512869620858733901639005833915134076836999083805480207793816685363692826264388517684564057651600578028062323927759638001574213382754473850899585915405929741340280234168542074614150309569306895423412252388207999371497733310693081958072798430597085384892745837054164120336124423018541200994779419083872175457759405984570950408780814904580448866771397152611312728207243275678803828331027192411816902752365683008177199257172867134407116438228963596522632546371088390299176073485586666128936001125925433409738453773931625114543049501694551423788590892847552468835009248404271083312138632255256779595051723701743706354498585056587144638961162585712364671450292977606468695412739882820039148880745239559083884811642318062174169285383391577293096357763989644195013031500022861697013228563586354832554724163412168184892555661890309998159714543875621927866583281307712147354754668171564963684200332101305883507960265086659962303680016610113719374282897005395172691814274442253957703906515268431985544644808173016506272276822447730283054376454309956206264869319577408621053969299557812057836617270251720468901938228877128369726802882733322507016528751547651637559550852786926280627706509305684052294704177579642778644844982450867413592694063848794982456508962391794415670538286431941387615959054996567218502257682291454572046442522372115773054144500996614932960747879240208042214768058997548963301781331292628179227813315993978658855304412487177967030997419037409324754996492269623327015246307556878433335335358200073151977414752740907647456210917798658655713476385122285034410741988780800231771143023921044695175390503482134994054746517846504279567505355213273163379483200068806677164292297771049782679549979811448771683351323171177359771099346646517998414690631861347157307435039080993798156329617990556314012299184106747134172289874882610975819550504125570910712831397568122796720065710381592851696870006850539281970686223897632327010560789515511462193458366180333147982157417464095784249895209114994163203504857260656333986208385336743601673207963920355100555668993254392645847615939822172584078281831538451311698343902320469037812457892021329737475787417261635512424246109071410838558980504889994155414070478872181808656478546805165680004165071674490163250512110369552103875166491873591016259515183514270919013697402188514037880799077035611210734739749989581555331097177316416359857727201486836605745009673043138918712140779257626801024428906433700306580479695949440847510508784908471014291902059704041395849624872302286856799072962503423016248942485998572366340564580023116034316106113316572352853320844887557437103614850815808767864007939718861010291848174699201354608912146992959974284429893684872853440444599153912501758469873377687706668273674698310903485726878760951436675713623914567741127759511246574043005331674241730014564264539048579470073978826063844382414762319246728586777870086637134747210833196255446001743937995199521917886930232408959848978770058325348686243506527745246682359095477937242208066310082930999278344809554615794545632868343939381429891856139555094065373919046153609744641120137386692542115285647403608417878298213946413933369476931308058784603893242722297251283468650414428740868907843987076539449154379108244153234529122229087082161204452089375332247097319516050956096565725906554507452262026349663178969245862569668748587744510189519484541829161010967484580994180399840595284816201766234404393812618079892867972521096712819817215945415605827651748233105714431094628579183545426318429295565504600129078861882277569988408946593679507198596360345793429145691460464823517358634760224002155719356663421086867579624942901084894590363621010062609849614759240602832617009853291632269438348065564691768014088441435299738876233128969719360768925667974422431684083149381376313864670214753786787994158861756012474830415355249283632186189846352537971507036968977178731581854439436476696321412145239581477907737991074679082281864196385775734030002647130688157412524170514376960826899080727340557805953358934713184517240382196715946867395094258325879520684778406739757570372735275825499551590613980749571912829151507380611058348012857945786522758507863993988969363266426482755509258503183678843328495171257350899404459836867389770132469066938362799398934200146916209657874890552946008674419636064739419793719333662211631612222926163678378824807993190139089454296990223022258374734388975884569643592144329479448411592021193051218915016872336784342892870399349008406631274768499111754935996934633445124272927148961525157756279781745749409513023223120507182528520498274984253853939522445405017494598474188876812166936472883793874907925920645966965870931636990237811952776167125108863623467230978983601061209062323850266852872432102306448334078053302935798247916712121002096723577403687804333029357307804238811513657144672677660445375366011868029112378684059977484910173419719491476400237836568639539226069229004655688759705406464745177662579312407410820341806268210925514251147620937722288897086449469303282410898757419765642843008074768305035474845429376980886076429515087604914496621522206395589662590166212066042724533546957456720574032448478193847301225936477638587204290489010362443009981892286192078367535519406958962076968681845590735654944931223481786244548630474831834536804788251547341715050079185240926014039960243486818923650543460916271629962928927220222729921987363286978827054515530023663208492434481486980078079959636977600731158758227310678563052083616296965181324321743292773651147634668803834100428153102814656552208628352124493050833769093560667594140851878173091793350988854674640084785502200994082387683742856362276692801490537517524751187098140179365013673896465298529441259799214224237950812063986902700465038552148937485867413083199888204883592275215276145798098993119644093596234285368154975813365464982134624810111654184152152756932748171672613127797105923712605044192593923959634347199977171675440826334702019920408180319188313410063411364769592812077511792164933761192515819674451359158870282991284884754683257856451662688166184853549716803650939106145765142005813153934506488702855090840410858054322502130737038913026296111698731962786384298364241238352452633470918310143189223141040572130743035727219374048597792185008058036687432534088150784231534135854575432500711249620815116819922157221629650316145001343552027369389054913356087030579444233197798109218598190392646772922877095769955701184185077057513616856870331191384352725496060326607427397124588368006915232466167569726399726695007191133290237768624695293581125065436072204115774387314241496924064546509421606810810778186983976305667310986970396498344010801845321441281556449236184624203569366344722262023972858932028605494880092014554161584062011306087564950022698100843652263611824546106541305136340239877957691749258794553744732877073775196288447457790414722427090432624120855064170615253978575612071902547075462361660048108159711629535575328559795782616369514730887104184329327821776195140320900787766187415318517838117698784918755291577202846726434976544836238336737376631009502242744112035075024212205629757498751948349074175904991433048760501854448206653726729796970514231817809140723423511025841031309148571346473685974753052446126237978739383091716955215559981060422276423971662837263874753375495037215166071505892191387844804303050535701102266312197163197595888547947886471025047333221113787117032904787705114697618143030465874097587600864417254675773265407159287262313737289797065784206991114997447539909457404031469962088896593296253006056509487055617020417858529321490322488556751109166982360342074344774916648455125030081200041596191135911163912629119986198973729974484634615241083416231594622559605587012652662508295029783536148054436221192726301059676442045696936792635266695652512017344107240794097403240591314594896916404123328797427850784661596064862340717600850175355592531250119958853784985441027766945214282224049082654965797906608098653604743247551212399382224339478676571070907685218891295038312795213186659857673757614476921131811824397362649073965920339564017074464256793426231253679681383874024838567540024546629901381463270665159002105653025955553573130279037045208733927240759089835808959639823478130928860902504001268092057706421518772245987800911045643062538581866782874804100566719222029655203767110242285319190307676159664406909235911444934682320951711616831597963684325737792628707385573283811701394168374170883717905454011318177074860094631669207035300998314156184712511794830547718443568677504891454455454962854857224225194965317782563034975714028660176195620340910047848267147890626525895415722602599170581871884004470572261056973430534763910531122165116726178198205386607109596488340608151724759882774798445442090384627811001459361102240253563484146552381726005423368484285305725945843566425267461535698967855458901244548928608235589401552055006550390096667275508768625389304075609775021684957101987428852686970301027130431147009565642538081154240731572129142615785682071808013327076344530082967774026979934378428621109595696008672206082911335544263197993431916847950116399330819639604638132661650746568685569821246116284173255180721721809820203230477641302860185814365785329137533342805614577629743800155850288534575135676823037496924524088708468154758792333099562916387599733861544395566309737906308559904377429737909865387068919020276728139066503101952803897729696268555878005538139417480214295576764405977797578446861113353502422285696123193504010036842566849444172661022442762360729066478339394341745386658962307840108058016872015422379770917217107239648956638372360967262314890543099452189756556519024447547613580534954398360933107046855357220740863708106891647314995306757212315193405920721395465980703484917376616987988536720421321844993736346578840380089913796304520992315835226063507900767551656075110314605371538515841970310844843321547008307004963484304499591579668566731404981026018345585046006983931425689069551093415667107901921467683972775277110473625553955605907544336156231001277186253182755716406014002994614092897521817025776324965332527896286009355642447181830332257142671895656343603701302784147635495685836163348374117092750581715954660901400027848697113888014144139232335462111525659324787037595765356452820954744163703399702030235917850067124124669513691632473214971825989169215774328751847629328508555234117743673347607181829420162795572791520889535515109200501392325203034125557682268820286045941906146892790620450873353645343045883122086673895868047234242355331297629698213891267902804277989219213936596691291642019584970849316566329049463723425234914132577026004233336050762757921003515609921216391690479912553257814483195423411332625536397930639432755708346200328692109706766062542562247449314615322269948598949269301985408097510909389042747138583193060618221072240917611130959995341234421630796370797136062256727292693368347474169566276843246948016473790979158275018992685567196516043121156229499646263638415344698793684035311656123820721266478607647213318401427045599545377819100457833593247274406192425751203895662625792315808938785732912861959570571104255023305183423039155311077727129595618012177517839233122020253696477320361647370045183114241857092080592104689328645314676142555053732624458643904699496258776107629492492474272717010073212933880720879004090623857644018612576887410302838011421428139700007354163592177086753925367550006589785448827183290222685729576990694842104039549117042842448505157286134332490146848518128399789215934043626389098754497372490286600243180058196453279438984417762496576924512466987967623321662804937522709347491833192726872459178404925905227623679207909985465846579326151513010429215342591938660945014709846598252584504870506853395032998175959495151579492044259745997671228195041512213809325977684819820443066915308599497739574520581047907852739200093534597145651056356349089789550601767680900747483865096597940220989726246411097356195772491084046999266222294665805969460480367089128753623655009261771885663435505875981344454652284833562595539563726414880300952519165347305174790379093423875584981171183110880125263499797192967332955096108494484429415705669044101046929581711540782323441601744374684125615135159766523324982316363547996104405046126654567617112855824539525972355170852868617871708884955125388428728845230001589409600586299087903597535314568261796212738847720719300768276296002370355984628829277034937437034865139272370860975941354133396686320730710497994805286701237486003933967229393288745496474967151472662343470185853176551391976509430397280982600565194837654344858912928742128581869450211421193606991777495824127424039550700010884104134147535602341562345428812652038694327543408534083457447847616951092015732441619657073707694906929223861552265692075951175243841727115443841162630682356169534180363971624889589164369617536767481844520124151170577187173376853667066038267573808438346241668617213622813118830200976806231286216025585248718462719619369850237848389540306295219634791958688591636057555907237950697740750151494346410580047939725922500266073971199595505217264244099324745835675165639159672550542484172557190760186038599105654877482929385869994338428243173301353601481621183908057206923808693898017698974551662613594704566674842275674417304080187017220115353348691226003962166116369586699999917044716417371567568104897350126759506292161669560123988785018037873755365002382825694525624665037987790051877197080906468174829083592235697671072930028814851296711427572042626385924649668006455859415045968946190964875787247650351928628657002147598381094338758921973580085393582248710214751475376081704602420911831199758565422236625541029196996730337465544532237324860404365100491105071253736580709507514448356405004360460129846616887242779141205402993593463466521105357660320589841947898206394211200457434908450596545822845804977201161005434054640050064904397028309317457501623402620597004954588395112668670524750599470564699838520663829992323955352823321653799573552484305184170126198616632448464714752061076241770944397967600727707027351371190661253557428823510356694383652403479944046800587796098199690004983778666552489011831386333825122958947359925077792542029302178916843701437148698995917362981154162847345947780088814038302755045206290268277333648187114908852733228988491818477713226305023916494448581741031771232206536520138837075028287825632166907709721502781070461260104816186962881428278042863151589677452609524838865267206073130260321742388950683814015359286947331266600431458191058764731486239414356906564472138459872144714207715311332966889323747607260760115145711933802428865141542229128257089850139344543852141570697695182418750739978549016540680034194095049439116327332299591830379090907246934205543653734507443977360326417152218404751441441317458973649482988078883918739791529086157196940770606823821689528949173231635624060674431952220861034105128850701063942715672507641990639509765390330116701325610299377564395379262169351438035264512970649453342226396629298394050498264729678035671654573711342207370871696645469175986235324132668184381195715789296872127650540831746498989982667499339955250284797157380174507499310496405737854071448089486124790866984827076609978277198629048539705736343820720654740648240097262618972646996451689026273507822804066396654374081858260214017733368822763828516784823057605211346053930884289013172195129947474950082136088641950248282488080325210668962828514515822488344201679256192780136458410895416919426868092041117053701250093736943463556646608272789271158709149805488986402395130505645856991450260151209917110931160177512529542157405975256823090750530636816807659151397520757034708238894300902041572702833216600524645842184644649229760601894643688439872199983551901914823049015319286954949532006080467076161327904565671468259061985848930598297695636248248258487733236906051143625634605726951225765175857760457075267263819667146609554622241100918432439590476862735975967345232914349479751325366003624014793030308241726046939855463767229209259184428022072506728359491635772714125232290656112656339860851206426400920498078387620312884215167453718261435509886407626018393547629931482876510623589421775347290275127515408132389636484519550436903979342004439814761176851876599885933325123971584184155121484867604545935087267884702055532002213430032423241905078531257951258228578525141089326344831902251647103809524624310460683026489119645657231711786941213722725955893280384308144376615510798573146565479016303625682134101290737751802497390205439972629736197087746906768347938702427144889749657471574192386502398874173685876067559647867594178111725415809101756275124993775503737121877609231922259772959195150643514374966965231148245511408877451424577636417085867542637281972573116116148716218842174428945540412114120541138302021771160734065343744225901217200007198350280498813368359406546266083869728983204485018682806732738177167140735777517637482699553041169184709082550976223175563741514046440889595313592208419882191523114376581429803004164862918059949660054378123681384068862947878754266575347754129689473427906405602380736528058082225402876045967059202375751050387236727087948136835709086185335630505166786510202708840144048487898474432156538472973159274286282100475431780848084936196146295580028211637941940745302341650404219413565521906443734877239027551004004992008208218289852064048503408831553212637744861593785412195121974821484012964844569430226277536951656685708877715049637749894365365013392612188198275382244159167364734503363738800581349827451658125394685745098404596253812338603589065220556979679483072969070001185459640999712568194888319391491555760898835026682386474988318097328723218814432103618168736269235822206828231399405505217330562372308254473934727207237855287416991710926298638555179253778691103643280825452613245303263425858845475593003246428978873120459040800508209463938693466692926464879107824757678542472088374563354463931910012770071996770091439783569388124461438142759572242333128742114157516099435032135004642843192195198767039499592931673035756581759820736932785679973906661945435297129045225906458396084984146090423536625620868108906816678539598989606839944024867817596228833949795502125234394271106377861360125987168653066265147667926867582188428159731561712503015038204597775912253134387876812059376058137545909116545155301918701736969530855528667182763304249106064334751131674585992259120321143260570418007836338162007888574161935602793631622952716212184699078990148676095843884385360811605082129507068105863481176735934187496716720356796307294897703299939176388920388645647465463437780889140403431720302554867876913917696281449826512218711957827878249672708713553477262150590059220468577710463849280296744814152911789081429890896638910853220860563745348278195982831972631264107790561896097260551777607799852720172010577540963087144119994207999926079370319506036824545002970176432018843507363149534330318904809151456538573371381940533287515988544868091818062061539333036354861908363488012175274069213366470305210823495896346084152883036163079594317775528276770230230808182624595480580999971891133238294520363429056809801061149128862982828313559890400125318631315374932410046752052996059014902886945328090490124460691744846063177677114631814568930999591206914132728312586983661901891305805106446660704797483692590040731486626173450593676624234425447739841779077564029526912623216660923272476827689440229379602026556185826022375649066134949780087604590304126780011313672849311369273687430649186958471300666409280349236012131978733698420036092086676781326266025673637046918015133198086567298742707845720817456270451203273625625598301553147631701018923015603561594159031617610851903582288175706096765427511732745777233054295598725650220849551912024024153025735934044062518390125060084553585513358158809225405368241487394582847085981996786701610151122067278752262741805448494103345488687332123987953967897038625715388061306316534137891975385200597300612962885768388478089608037451332227465858181222288236089273982438850822665940370658511018805012243497014938283520181361901410469914980670662122135840085300673421027089115038811604182814617769209339275343646843171882338204261493947247857127326604498715876420227560006990543802078803321892109415512384532535567115636504510123147096699030732353040001223675864153970168031989074561121634206237229603797127406648075762494351195640950241320987519219356042282893187909391331767429143373563428219274804915695624270253272025228457507244924777763990560501155776596380977158406151044813051344984871005891992616320103833227218998576009982313429006854695972698396099206042557450460677741705676458283994589527878559506751154621160898133598238034539508452654628115530763865372335537998590931561381500017299319789782501816769910574254346422391457700681097870362140042595671504124460251359937289825037295544769062047176184212862211277983131676351118500862157952303762334047938019899119934220024901370891618042632587688646734270025321424836350167340809048271747725997956024293474522046395022656555646514434096242590691118880100835998357379367634409975089842491653215678659572755488975308013606761557082720761911203610681862041359792411538688434609635371528339175636827742194517518391201082943163664315217663503861989926182943495568365735182633816829644862018728508761340826157515292371180524898564187379560846510272657739464084314427853439080899443493390817044112368482925765256656962668272685985644873648010998312534923156517159177646505294969551892875719668323370494568173165234013618247264860683561012351596511848315857513581764318390619223718967928350753191767758502072271111815248998725051479732305630299194611506301799732606018415900805499422564652625288647983038613646331981818035528266857797786574305546348350755258981261601570770776358202613782286186987709984327384785003054298520337330318303453976905224125906038905449887738497257408364023601890006284984192027787106050939442998212672061140100833303969195103814124454068359990522360727875648766394535521474127032895306442146244291478228114268889376210347589875247933161706547647283686390678013479865319477153236508960766574196337894835602647512533005852731295510960856199267857759174430353966927225808893229927866551274995184238699811086577762772472735334369233612351474367595656080411482406739017540757249786862429615907344803528940415266270717652895204591266430987371286051856793684360055604763997199720022877041150614919707362015922800899870727574685630333905757454664943677485258612745344508641377606546561235477061375794663551985522537453761625945501585603627068240658470855461532473512935497099736839309165902202424763178644841847640503040552350483904628564818938335269984052767963507530380890326688614274016819643992226523049543483832771727359285415517851850766058392496921463661733534778849727715001997168656155076859005877178334302796487445964675295658335191738681581164961210142242592994658358366696097265342029621886252786279672349489162314743494589621474180157297175596774359346971534085449676664775581779251912963701175558788966121546190727280421211850185874464325323880763218192683936360456466953694179305765583978867059500914528348116570259417330205268177832129873970609135551832574976895026155406650384325087316505210190925212321042146545207921870603117361454283575879468412857155316418713441321759633214740392019761561764189034566540402320640050168280236493077880864236684929499573155385015023073155500692618045206136232807909109060065869221145241734344964603936037900895621959292838350882898302153706239853002664616547152118181466045449858579647784810086861057259331793472247700446413403247847703046547566753588995642139733017640723487322383603810637014012149084329370668998302495936520527829610144824145741650187803462115378704980744299716605186360355213872929003163536732450099267197114940104383269395942152641510214283097759560854397280908215691374794928306298592892864039758635167398669589268651147844377714700896253449008247951779090482488728465305815426775906126412114285227862863325081457237245038930033549258273500217876368702753246452337503887950354445010164519821861413591374359728190138584609545855109723821281449066564992238919719665540343267157983553845145049088341620100874359955445049785558358423211721739654254381918601736162294206887264635676731173682957911240743354196223340521368489014010917768797194142666622180303123471805620933997814165090097586559811842472588438685093780458426075508883079840240533064950387138889275391966754039892315582028789017633945353464086912148219864165025071113202131153013326466574938109006807695607596469309372168762320809544544500058244357782179010061081033406620964422707435373444189647449962595987580570929203459150722190888088967822072695232585693187537135222040819037027846455354270823324933924712743852559006954549234064193282100574048866250389487481360027008841234402925306941571442551722333042613096780541845211589920250119949485692848752902845447149559114766354226856294282155325135888654807102991480552956806269600949975564340038466187990953233430508979146738580099639687930158269622432256384313136869467877816149191431585619079170657890839175600560901163364796422200358268098462889089059580828602569394306814195874623530287673635317915122878243598377162842629649227727680284186635883484147320388242123257588166279627656566156438920250852362267175170268865301046766852658619198315931634083915432086765907997634071706038971841259764476016200665987617117519342512661885708008466291112975601715026441940314067512473748610472779849096302160728111837550774644325021175478308945668387920046410142683906258450075507695609312869818562409294746716830409160340184353900681780035591747263832282014253356310508906372494248069180974412188189859228391602172422040170507078734974374744326146813968078697804400910472418804952121974396233762456502194085697628645193004365733106188396289491863492709822272497717834132148470630599802042580332125542006744549226628960347240852669599330968660926741509534536875626720807138480887718467675598482578671133709193351336041652808341630047815626183364136944016907279275814264462617613431040031950124839336209177599180942037964731819632192274113877667277560458070551823841080094202691247836676901343190478237569493183094221365897213588293566608774022282532313992119903300220856299792327249995621963110529525330074443547122858391352202783288879923105624152024823674344738889094420162720218241607829790238893616127828603867065357207193698556186806423031016703157797093421172688580278266602625491876762966263206936257350265434354015581103206267402671042571753101063135779815215958670060052872847987606047120357101128078961373278194973364060120505242676316973280433102896410016308838852715701827484137650360609080938950705377078514951564189696666156104761981361955732377700140113911175622108123083732222471427457134041145762207671999619453252350430006379699743181691770708888054574577253790919517985285137408617731688446784929388826019771850038850506779486844039188887677171020774971385575762339351761809142071989427247804737994117252251708480999471668303546628301470142388051025806797405723778902303385656832561635829145676666990088457609986757602768336175834320343420079872818943869320600366135570192114606168079913681575239921925627623032756793784898200067016496483027695357402811952643537015765995477016051233515831750301215883619263383731454589662908067487041835890004301277162697564221474676513876294659883713578036951267981035575215305726954812433309951634539826982262752968752788690459970459393686551418060001041576105084762682499463444532030184829921311262480628737346328104628180176145816998674744451162230547272651109779322018261419310238325057412542774445283333853953885733899193202900250286645371796875554053005715121951693109104201712730055926899345643726643031864834545579964262216415357338292445385650930408028674932735991400862372956985076206725175737119989138480064171115666635010155709255940866020585603794806977649381460960683926921878914877437987926719689873501566876995324157017339124474300101456712877576552084408247445987487163997449942146337736981439234138243278778516377644235700014751137132576496884110217259340800948092084896804193162077936096836241204577307668004360473910146592752763614128023334103537673742697664645593845414432527551502005888047021529222861328216287566544228410021844949822518238510326209582066137210284727882329540599020553357827156574191674786522783536403363222893183526468776866107017787765919296651242472322546654437135185418679777196032023706525310423350904236827667737636943363667325940496495440342229940548094312502929342528098007279646991254186521926886078966911996685458305440393671348880579192025545813432080549872366361249099511171965657338890750828979480269948486984540360605792642817572231654356083555059144435079749530253722546755421981603553133947772083621507399615931310613677698427149642284882385732123864173113127471356260513938382259955522265906523867538194212862928333701375161735539817522395865750394518544543349106801614569821838356496305257595938876979838713207749760587771374485794259523724838359939285967881046060705659049592453399474276275616232619159778929004912047691572112544218894375358843451735690040871721365236408614082432744517781699021441799176937849433514620473501471242744093195575331442648389396318782721039925470441993527127242670809148320222421128441214269911349037106810479187253345025382778545429530430009171723563605806853579685111789240616264362654267279151969645697719358368124382481006775811919722191808830602107762982909804918465897308558278355705400543013572364522076078327258822445396532456748482625638261708771110515432807510222212453634937640439844141516217858608351172162678056819801779731021054906903201554076956011933661187349452068751056759289407918817017879597527764597596660652378109360601283771418738708032096020745594696843951335924771473188132827525321111351571239627955608060014144036337195363075386139075445165306868718967422335939057580641966631053413155595651191015575639489108281669222150178394752373694441403543291495722573352823143507336519727038107031715713209017710090968081167638954784086366059592265083037015624177297269167825445591839686385632617655377736890235645008201317595704446902728020408815907681665464410820016201614795032661333636814108602939913646708425059630750192573192932853195202124514211314198415266000960354074705827841195515501345167042377567211464805720930619771965149258352528654010994742068921553316211668232264937037947314255941940600616248877272327027580131379580129075515164367066963652396402567517570701176392337046150177632384343595306040827881297915679791238350807942204602313410977955639483464145290579725746246627311975750296446206746554704007154746013382302563063861523789851582960313584211149882426421755744823923709497277226090265489819043217341449027853961558578107496036222543253592256761772011502006346057948436363855613426429228997518214198366146515968235851927025117502059133349974473501625281513891468833454227149514308025689492524329186951352647085078105524394629318234833200398695642188185204936765026653955526419733056208379480801758491439532015845672319762463569713158019849013509165840338562498666110407843976290774050743024232217260333956864623035270021611630277156488778250715429258069120309362218321627730974400493514752748989508867746985193087335354078601802163890132540168556785861322028642709628728222837621256037648058661077643629637053209524818133068161085391885852349135746182662994298919298790496494300298255961544789965028489956819841156731806031655335224255095739789117778730744112500477897109704574242718421049469276902201064684055852674356532766496379820030181995857359017925403815188429365606805019776553829768796472227587499820136405075108437289502521096627450690417896584351476858329279561960954957864219286248582561313565587645095807291381456907624448125232197513467099784591489144978387545247950134598588151891529404957246247404070816520006206829876503888979167719466617438559695314020593385284367248494505431073835218045456233146329905647896549094922851732668378093583520868461367900458742275656997916428594751933839330977361300494120565085440656087496366583731916586582495276416345683025719727608054205849282506536107526240872656765533829205318798213558773321056755171618159883110396373167399678604142563291772669557063773384759435925471434162801756331059027246951377510936218561523203877923588395146838906477629508673553920468931397009766833419020194364638077438964147573031960608135990818760941228982917517905191148958776653899964943252120298975276671744095432604007684786536534662359129762041453249004686040258010222267844207509911084553409384079144340543727891441860972365752422341232254460100997908163317536145258515395965994850856086648472677997568471836635918576753235699865607840076782384893970726568357195686698883192336105732399294020093485621429722532307488588933758549988523065611537758239862346951235425177140766149529020144193796317083385474785656930597418282629999616256383118383404330245490342404972734816073172161714132962817701708519290435269466745893651764149714435011541467740451562474064429539911204995228277704448067678202559321831249918100529758877400574503317146303858983333230994011832191553891571445117210223698336673291616998256368054238923805278971210020590812086543480196635167240343851249242198743527454938804266488268286783913880619039716120592106033073065323639203363493130805424659444339240298204394780379543462486076131456212701842170198049130603396932200026548327508380968364819146100020739859753594491854934662557025166193155778406200772788478198728945402336164227156970767364135995490566443212742501792630335691433806435897057560978742537503357218045557503740320760499890956775924326355207097008333190251405716556140716523385261471803211850880936690520936107153666404660319859242738323453350427881002238637675935086209652124755356445425516753173268960773956502745201010508182418632606661503190696632747411672816859334244960958180966650852737835350285803522671211129394385217244281833287930956305242483428442076892598828670291854463109846152516579328592415760052076769250675701192945671060066188778011591716008904813161031322247858097072305021561982067403196990484122921079963089084445340581484417705300263906028436518097032921065028011739788830714157840041646545924783662676565209023440056170949736361882090809276279120461372360188559425229300440660817724856248160104915063839046394287748765191860712656514932759070187560032940997517144309873686899957156602013176690338536215837108056715035940746960361333398414537002170531678835907750610252890836539791971770711488087173309483884812384907266736234729847675858010606501042243049758645893389186652272594577432454186894396830859865330862881647400259342607925042014336002021809694970419765191619498764008211898749542050629760098981943327495773484540542287937110628646375465039668436968193182922748954544523625486031821595457884183483288731458278159632031871525941325554941337547375044694414334845399199502509900011121843738209986514762917293059990241477100606232182485968441098796426225438939656481036785248089338637164872089759145783812186508347394101357890398719600302869786830749910895331303039992095905791751618787632446292015930929255181214792475154240241559935265749480849952857472232206374795514848956208099370246125665843528234481990289952491643579061651934530768289206664173991955502214419540479073278116820013960824866538899704242314520527165209559341107999323449223641302818214769764356290324268561773442594755007687682889952748772921868605023263851596349996910083243096634621305077823598764681947062124722367546022702624740834758376584453492732939579960582660861925062098202749309016238382583690640717475304662856070693918856861912484362611688649496603984411655336657394020261390629304782512977021433038911276820082731653551314172266128075895822713508279233654636768713867890313445821056926550343075531486645539852726174259221828461390486512599277668027861432191249500135484006537339175150127015077631529367769979764162521176490674001783383726957526624547690126794278664285791006064477110964721347518357046165957130709783930037029347391635582936297588149740720429773586891892324388044539729853923694790056804720688023916020473930846175830052709216649374044835509438900206056411622397261520443320546167566041724909094586924575950400686716168249212250569256874185656755675073119879621165960478741946798258867344954556127022161806771350194727150583620049202705484374618377830476369926073242783980816160141143792062639672710318231380338398037236873326068470239081040666895084399948023163760397348116954731403934981354434140200169861136398534820764602437599069686825878012321576051185838032859879011771045797283714085092940811998681439802557045036337933337493642998987061317580770156830363560853136686331963766717955754475125856317523965837332050144522405550629552596300042254998837645285558919868638291100452777733964930314251761166995706154458872486140558662927570854146725919509757854510985453966939603279153955808527824540213885546662861388600418608629714811488651348817699160492385136899236695074214913289505276076672130841379634604763847195332917964902913769309339130079040582822885750459083300143141227163606890897251555559137147146732525330040135739660065667996195363874355644253839879075623884740339142681916428905192304504973216741193461982549489130392849737855051917426678007758633693415598088837860379243553848776516275030845001440119256673438754214058192794499326657660821551741671187609999805964219344578485546364204493579889800908935786844646174864608434166822832264319567123750597588959802038238042799966459853473225851116562695484672763649282193271838491924029085326720503055474369279567542508421125764107321833563023190760683189896117282925504355146838717176927050501984270854879201841660147466469220655013552608799463028987655227545822958481224530577402829452976770553198505584536779469417076734802508403630270098558712959213018737990457936266859942618783701185851385536290742052795213044237723533603078619425270432586843541596116892271550303729838387248987574900657688181954234725350256441540921431428983072260963146012363122863070997527994027050099605700251451658904080337098048191702362989426599684413161902220690772735446906037110426272719550284947011487086303097779718220033873489318156758532994226923782995119328425593601444673702188341150161444427668831798139074270661824724201343367842918807499808818213500698107095946838135045137735435367809301886080796140589685246407468183364812623914542415551308042330236041332828263901195887339554574569867623396058089080570937830327976124386340046496780951527603558479542246753904563744630580300473209940342978915856160841498781739501497364100570464112454072688340337666115323496990292053166205233652815896136271799390768574081022399051341467819200721386977866137642536955214526769080524794583971841433785000906776977456055699553289766811688407799917990669175220603601510478914293427717105034034035944743780293140116380642417214032452384659057082430022960938757798832232184469307579283097419171861129110716795700595960896120055882034359299185403613914225087091563398168025303651074781460644581925522292504244659210740954290207836184686602019859561021262141745377663460536596864256714987590184962106773212606713919986625847620868779613863622268803235904493991381363895004353835744041030286512129781441971454042035072774439668138663763630717030752263192698774187292402144673531377430928361832564966565346921255423677829222790230130482602922821777771851969836944198693069469426811003353619798435758133634387287116137764548758053541385997959030944778250045016719709955183389998649289939179398051406984580596783491605370184960377510698883377432919282542250382670119995393577529366358712791673155749001047374283834729427498403487588968468903346861542365318108444474431566879594166456062313946386586289046838638393517294115755446635973312110954215356933132536862598197213886088074025017764907701389562374512942936428085304423692765160502797150455938460367057649436113557403766421731014260648268915928019593080068258934421477834758339359281476693828566363072052661833744882419241944926033322382495202924856076792666023244146789788930128617096887457463821837227914706999468289966903942834988024186015919192508778087232115315971391807863896852900932453826433420682100034885187342236679162885808968288794627248132483701552304546323870796093512475148767570650886963979502217012501637839806661704256331341011363004834063144767287918865653441132469491417806585263163187367621032579720631101339968944548754921629043087239243454739305565388742415994008637963458318190572047656352723233548907255565178150949223856788751725449858705928839265260558883755337571572126667719035465678118582605865686374199416994400274262188161899639648474791457815324870789506864714051216319800131361463674927607500672195354719805201444870810783162451033456672333285706938280134030447515617053613041077281507044410200922088571287669458903132977822949731988761962996586633079084262556963733631947309884363465984011350658826501743708237030882330964159093262613439910884877818615382924976632600231690420389681530178216985516627813870675597161523585398067228421048893242174115652675706905337564766745524387766385989644128640296763693254476366708345776347155701007214306491866232928559046477174835836336911645961751325540944720228554639697056209367954900165645411064870391659150069016749601414607639240526313193745784347252719896908295027030009493291335179630856119625585040934140898873893997938689282099941581071146399120953912944163286666327441760829426868932063988745493456753176183622168366638560072701515009391756286657002455124166786335216408666653464672848779592627925645435724593889808832839231054354036666849602434542534969954888847757328034983609422009708782240461607345445664047512686402571979457799947960745716476882761728270959360164828289093980437026117325765895463881210587213161844256429176116626880532758353421575042338980252301831977594080194343701499637678769223631286633104922187583708166259779049978325481245240756869207477106039036388293655384819721830604939946246396816996486911143462493724201587111941660503707957890826132340593100841135818098815186606613579591498243328868514808688088259477708242944601494466172799539956386254396380337330802682955259359239162257961132304861912504423924511491823056473656603091072215076441274820357255419536651878744954505832399193403322491378706658719520109191743987085996698010940081100837974266959397209906420696507828858650617217543957421573367079135113813791625448048468290453910232324141412830577057863241777817993013925407021036994994052869809387632528627918644806665821930430398342952004061998923378711869048323311072423186880039756988894681654899325974529117362361797935496250253567108183760565795663796766983069027614199155948860313942717838115141864092934838558643455204281170406291080909497138923045470281556393448794929100514015929483053032271045599098438050572390270143866240592980580080375020048845305371323140311799410009494069345256185703241042614836953245900047405406540745872821202938260168976761865468051763413482588712836301189571280290402293354922057259408552371324585344924891290748138857138975933551229107575868900926787198597831532515378121215182305788274326894271555110913192687474302195780030218963550043385366439438137562873531733668723918358240007943385023700444235382208331690276188779393418222507445560174171505215145687062612645540348845627577471686156186509257757238493864186006294438788840767645542956158696746424054120248857886053687632507668802494081668679942930973765218317480858545817974364031538158672471531777385628779753226486119829529166818642362314893035684794759664133327789169584933452641697787091224083349991537075248711203881144708776891533907462088737402855028736345009715532568145086138809534178622555336472603975567478198055969295992505672443519467121794631517469965741030155754560800624412986200147491912596526949114817642175898160018833983162113981292597561366640130796653426274279978008486057500176077207940414507171295804815598685852929589420763483182634685081209001094557367082990292343129646063604372509042168073770028088990282524481345464252860015827433074137566483856030211409466095590521477429412898754296415846659213281899895538081758246316221221153652390578857505437291331572056652601129887336689263926476301460451493390381986853731412122053323521968557971718458799075512572574477754304877069894778128747730661225420849320606688578529255995131715300248378522682883424657072814100672424610613524055636317185382707632104364344866585850288607076340904202823019412141545687542906951350789519256526366353801031717558476380865830797426993668821715773886305898400861464751923997282817797660630697069753283703743740176135045613030725537756940971562621797710182749269014589202916472540887638072780915361696155794712475736090286470278817212153492721551031277673746506016104632729942115183031123881269386491635686728782549802589263937544959508532881408868650517477630266636730493701513633740508398722842058788264139214073035692789059162131197159405913580954019149510531624711180177169605252286937025376832136743745012174527797088323994330706113991580274146518557525766067612564099642258723533369355472786382339675825026462200908418743854668997339870800388168086595683863053904174982552455498387949974113000481596291747676150373133206760757945768492085330001873361256830676368290931948040858261715538700869853976256753590032797967752265949068154096057834617671859733997942949476025868676040402100161316101547154664994155450431199968234835957872391453596708379688084231662715099415423023744549453108825843602442774509086384545103999601952927428776769793485102008171034355491200140169049933709718362577354958213925461372386918330425690355581766280238829083496941542947562322833530202534840811825789360383977438439375102651359167080347771466378678167801514138284944460806976059406414016170563199640942257031270217430463495620207432119827116054027299325040262883564802024099450853723523270955587744352401939253942032592548519343588826112747528534248399534043736743372984342644664181421109329819468767565922360710841995243066214348232919526221614559368642247904166267731179059521637499776835723139051282625515688642853918233511973556815425187920113702920833144666724887760868849154990254998732458570000810320184082537359227899306420942048802633898638012375087805159803334706187995201526534585194485586572382351609080120413447218424827910333674551676229367477983505185758396694205999841953315453588747313486725995453321903172428838199221299480078301516427061294626975603299281017321183784464631244267064610275454547810897151726527884589561893780168622870030326804425440804147002331504132330574904264530586374462487166858232983761841269340992350676072126105734748213980828600056633300470435847282216696154680331618000103491564531782293145528344341541715486062679879277616234703524817038133580259773415959912996293322486379279173323849470665959349199644460365898999982995917971199484844929136571818737516778446902498141121409970665190280403290042720861748156586251588231947788155957138665090066104010843005874684421732789671644917038478946249448305648231628206391393388528297565340547297650016732184599616407364854183854276147533318336911121915214657594459652218964608091664182568602576664201223986550944603256245233297376171138504167802130362873640429463434122266967277227395530933687718636950237972837657059107105621887828365298819649083331077449758864610531657185582733442373004140921062621160437161179770729125389317668433354211039415906224301038355626732374432187996818532903790929687264779934956174205131543509416670235308033001605930527491817085515233040771027675084791763289523941097893802753357593820966727228503721727188343641560625724367093577902089147054254524354316745906569144179225316614237500273739864533329088606279405668689468761235662309060279574778956863608385279666482217006647081009256079184530478143260635292507584649778039311192917719765349319468344608758575370645915148793165189763385949611582134461591944963850243200876427859682729569717836220249898275672468517387420357031314195187177714415265136215671864882404604733719211342585385638458476239571839982481581020727576617572569193240235767881823200399778063898768622940196678400958477052184500771757137098728279141390485097786720089047540311192728623107709330891974459768430663743220152952614699614123279465320085062859633940859054743966851880034993912780103474869312684641395290371788919759454219907745281244341267670319573003296545644214983119199799952200769071051413109667311121545619819931804050557604826813181380247706973036049092713156549437195389560892379048656454974052836043266126648379813059521519133143607832023258093490020209178788220728683576370086301851402397020760261243703326885914799871823826809485414891821821595839730943432473624302554440313339008138607163512941114241085573523342127080391672707432013760343117102955103837780628264056981693570596525758744915594857107218504032186593833254695973858524824689299701047238922772787655283764417801264063959000225724556662305626783312033184594835621379889778828590085389550861044513560353480399481502035346817680159925372892546657010767537070434066010307757932577553551444226235134335770817695846106771617935228635467330638026486951685317188836980432290748273575704088487383299964366908074134070656650112802087087121146662446127495594209751400702247927599230026565093498906498357382996718271835679162160468361538329899033785595955222031071359763864778954223293646207059706373392632298761486361292566157265040299704383068158924092842499908209710920269446543666799733373559283385441278654636011020408647545628603595916400687773066494545927704285741943751869971470004315437697436670773030924377604863382881715777149194956253962945410481958892609858238832763965298507381641995943191436571960411542994533703935748763778897433244705804966537434136948562240309522348691611969640377387246572940604308619738630041162924383621787769108361065946860367944274822218495105717846719256554276930480321355327801204823390938923945661166127094987646202778737939119330849617163283777342865109775554378813437485879146301846672601704685876595460701233160556658683684158232082674854916233576959261267684169559907280939433202248389577452178414268618310953619711841286668135477859055147302784738613772808958273777082061357049992743612071433625633057805697458728327720138831436773678330611191178270308394874176399775039624678304232962736339727776011240914332286179054955421656913328832666792842612830791769356052144265014483872762675929859902622808244613231164486654456306123664061105414552528912085068037728765961385974579325684304485119557128285419491864139232310136889560795109088011957948236472413321605844228519306719725863201937314686182626693898510986808484029319852450482993140523997584641344036395013087399892766304027778640541199189362414602007876969551929484033367328195687562188775439088718883633499658357149929308701378759086447534750458577433619896417820714467687255557493449531388903852270655532389252133744150005355559580493499547564650609783695219136123766481029599442239972065312880701613306978689870605784386450189543303695891349750580797626416027397851838722596193345357126549315649254801565213973093667995953900390620174457268960451075429339889966472947281832874955286019973187997758844603882886715520021854560880624460522119027238451719852768723835029083866056994327492965087728630590146121580842449229595678055636911995368799252599541651437590973638688036578421517763201362355105089832234864869393866733863971121747331763370263593324377563355924186177998849769602706470678150077590330997238966851361627171170443231054188175477155910090659639477033174538534039043543166780076248240107448861277676338396835553905915415842454209154266595893859405688435204082609269678417948692132224949994872703986950541068346170343199929057473452246446977189527175360232263746549193159804901348629595812850639582896079796917440144514433103558367793894788080675968336229079274709010195680549303206338610824593721990860825292009588849144800360069739972382392389223053107108446701852666460105722071353777529986237005341859848382196037900554545337742526758844092208136219997082039361370438506340098397063254670307550344728966209644953684693396137002452336625785433831828527395593941084174123328170203215768268348059847610684424980082338706721135275832109314955638784790155099140350603988803233671013555150369322749039986133473303332351893453688044796432676491706359802949096741320156208966956687122483190783892392069849267533261927953043399761638450254179441194175823267544861744966614651858932661860232712782744805865946198546007798764316321457324080318881471399782716631443518567511431904885504752377871106561902075628706880583518848251260706950950824664959163529717309717649068125462661098805633708564520876347318892068034246172963506649346242075790065721980084092143119341393413855492992286767679791676548129796046215679171631844058914803841500239415860205485114361491909892849332731099936318516627815625683016432996159818115122931043741906598759383421444232824362967904006535898572210263615810550416790209742495848868600758475827075092292049657066218137335325139009674531031509590022357769733197892036734801442986786860568563270592399026436757583074807361880498378608801424212349276009898175900543196086693592662856989636081175560785280250607651588114430709941524234093724128512445296982274930984105017816790964813980157604522561138345042873670955940843096500956737254305814056818812741732638956357873758612881773632782725612097332923037708418081229102321379619092178172902088538950108688586299667279632713304700777617965492209999783488255173602828446442080775397707418709949558618162309062340098007849136863680389536408578997148161376246395333796952840626618265617755021689435427473381629366533477000404692456088464533113543333161039115616386324489556266418545501241865458558583898352395711122113454210652290028873267996608871942409250863756966184894227581240698386587999728801446285242749963009676431185033521879135072862902850150141867505324098828954532605578813467291077274762238373818467699454111212703338059291780172032635507545094458007826125738923442603033259173014550929095169582209395388408747958278979105774773476062802253810317032442144276672094512672402300623587173996895771906210118485843134300071814823497022638100128965838324426502978179003863594192903656073184440205615284941854390983113876723816708368717541035895065470211964850193189662292047178636349131190892641094839255583772140684794841353875580441087679012303187209391821707233149771131447706702682713024272935255711282572804213062829346482528275593574159065630354917896826857791477721573438886969677363588572788656912840402397383494070276400109798629651252877094101148522339261606115059930679386803155557446527288863252422148218906285290461549156786814665779205464943013333015471452317642874099683386791371740395051554111314296736164434409273537825330181569062992770263829763479341118252086566974703390383507371427938104849048586177116182616376319516726674358663504246586647327606223286720567108463207028860754877383980624318040515157984800299759054479501997112877785742351671225759873019215620206095635601527871321477856507338409538545826532408955104891281822920948226448190964478105435720512003179051492364002426594642710898868594031220345679343519912856834015959935628410075543964261763235374339889691052666379414672005948115611561879208771590556076841419999376660020439427673102970139361360867512715851364656951232519822039218309560748676749899763315675364388990139160303231121968732298241427159805650287992026521873948762669504886408681670647002946214970842008007339733311563365629222118849548992803205866315440945736436592281564475077122871909277687144678850839987614371730526098375598360456541252845654781773889326585659324886995334470130217677305806571172126104240714732659511984459692089261393942520692692540481222031591716486403610405911065349542084197734370020934457237104308579567699563723962519135891526977107860684495993693136471407805067627392109083262605240289520981693443182462653276678596678786567790082466159009207445201806719386304991919510644533840541206994765152505900651359280604042229743999168703561910843845552069939039622567243482395979516232719224984242819998090120531227070084230009781939652122133593971618253647235134786656095341088878662077616445834136579027355951248467011712478908608983780950303074885348451563775521797765880831496633833178102576108489498201682002363703448783275009256152808068631460174562629746051031758033054049192663428519067429328786208725422997636609636544597047645057389669655385558079044410709281685994306428951027932979116021750564569400228145933457448831710882613462342106285551856015449449231545067958429508124010882236513231089273080777540710090969244970561882971411405396234346064956409889370846099421913820474551242308867495908117419955686704932605248042922913120404740717168539052098300244086983937446317911405974545777588341082481292003093327848697078528761096879980314369234672500129043819966399818291771166227287620873352743140441102107862399826770771259189074937184083354652969460811582568276779664788845257676481454567415479306641712058752873051450201700174820259131701461567464801919604045127958080840514238318879488753883547167173686073466849211999894950878814622331976103453164451136083195911805322417591934593893038102069223283365109145640223115391991197224865626355835337800616389972253598084928008954145411804854450208341518264315812151731691047653461043926080777604351284709139966598276999388648064618840980214181838568319401369330942441938558688219202290632467431496958460113905189673895844168613851166839138343906075473784459422233812737549531649145454861303037390960242184626960400258319567956190100811522520858805810195192882144922396398975744430063588080937431805671117639876068549087155659365606447247183623115779005038494121963714551988183024337663527214161879722211906968673365220668412911052466680953242374096004751097929296716776276391120666063231441408347871359865878025687992710045632337917803058112440275611131457160383374486437867677436495293705949667768843569070991935240098464729739987120644555409227167820211383021528736183904968689436116171716350225328329879008630831691101774362246838369337953535833025238648431664425725239144925659011571239349254025406628379143761589769518316290171997286689753048179744415963999507259096641758581200056287534083962509616980644095335270428105292148687887161891273189081525881872338241885382693141588679354920351786709508486606903176059897687636864451998051403382757225128880884167722307622099942495690661126033662764572921870417644579162039209210361912492850311172486806961622312823398342258703504897386579399731809000679950136982032687227578912604422441545262801129371177408210382231535427560930671264017088421883462238554140399214737986829346665233485711410575851366277595709783634206220973702438533392269964066408426691914483423307549348929591145677363801316577641652733878861490526992896903153692105314086749866768940261072491315199966043226025394079117810172703175446709862456683157448892214974169415887714042454508036409972116969331962285335548633374663927490764871346364979348784443662661803790404581830646377942218311437725902648767558010270601893467065320780641752863071241382902241290144343595828746367791744963279143615844568580143987954719186277005751202201426966898966691889555835182095328215286041698952477321486207008671705130259570956147661243100239032114764895770852428057081068961415666348190941697864240065630258146840352008469876155804046922368238122025978983732208006848767972190138626859162092392938985614117333784583862600652255081897585564660353950156556112042690276116075828247511246079471863613551756590017246116955218378345263577782147463850852911368682098327298413494659560188206422022002794239923787044319709385507207585555224328634611104985776035820450482626705470517260048254487895117405948370664420186205495033189309911499186201876873861656030993547190318910911107802769949172263890583428067689042232820316285119591701692676529838510862336359514518726701403191059363052230445794582654180411725662914859054574343805759632121938294491188863934571013166703392771985476390001978733407802313224015463137107449803246781365379987987353245193425229223356672387805368163233666794807863431297663878435054193925242393690085810843991415313945063973906045966132463465953396572260664481755746475965143742843108162790616609873357933016211449987072415383719069139220671518639170651912227853995384136564161227322579685476934983586020532164988432254386203140343733609943881447900987363685264729230037600054419440415480491849761337069399913749780755748618543789517872215110148014415841110434005743247989560646467707677672717838467831568151399646110330904378522238873262871247101985317605991007240384410592217729223013795725461114688603522666546641312722239591212340952687777259653295102515292480780097540189369623582108961018440358605715400840616692959360967645904284658458787416979063439961415934655654619637491587495492903953190691234950862887049276624182690779555622206963202469605215431296821393711148802368342319824099465914570696001502122797990168432146930293812369725300881230841279063115119866907721661899026967671344922922903398761592922322476374315610132434482745556368658874329048935254083788358923296889821964972857646426409041394127220233251125740150116229404122213174553957707739078802075373761039391201864769544076856015953897129343177849595719725927562113779199606651306076028926041835733354879999349371699827290204531074542049366854668817680492899395217764067701091559018289134264227261613310884422210682890350114097882750064292885494632019761338749802376834005964200278217430286248532951785653273305796911049342348883865276414986766818803050334483508374574743295363908984443217586585061052171894049849262113518618646238789275211955900286857989910815611211923393158302501406182366852600822676735768192371603509968937950323950364828731012690042090098148068292608055300744185848302799415085673038703274231702005506630084228730148267871958198875653578277527852274168441088297292135176031616212492092560814080018478765898082692811582649243709857160643659020367911583901877282968116967557227380241190905458610615846116284775001647996941780759067419933207112144564079818198412865311731113551963815320052381468060819025926984527913440024597048060548460005685220647368999574032040836064725770463978469789059082336579019254374755140302040062236147448308295418101656895641724044804597219008073630831086775363718289426677278845273086047769790750187319236290114702852897642069916632514119704121302144844977529647516394576659878429327312634806930607277928212843555020836226075554357751068935821539664183501066482197731586133929530738924729534641976735630888747314931246734418187508449567332010087782515933687466954503894218140099019761978616780041401314675444788258451692934704548623085489977190784507038811541014009348234564174294169600524623514592883742944169302620192981791273388585414184627774947250912491302387350248393631004731492776097336138052162682489088953069979051511939990807223909064334175532162508157325980603921680338049480203834921015322899380524221805500733882469064579906937869252111668399977562838163172623322693976338297183470925482155899186583326501587866318298092785320274626629736987482233520563023342015215509279847229854469172436301905900613720254272471246652577119817927918577160195066805165839674178265077829228742707322622651342081758916125519044307619685799963870091002874645439571367932419725826600655616949948854110555620023529694965859662206128817833620666735285140666935341576132767055467853542699901494142138344320502448161575828965394067546367717232070999049507796270879981506759839886800117873035116190847553559855106511283328968439940958100291826602122181634496089112877738517222034903896238518174427549465579127538593281350100634394479786026855023799290905831304962837095009120502315984811715416955247357237526101027350953376287060965953285234919940390794136395507932908616232631681811847121251157035021034145365439474481790051401123961208971227261692034505472885810124726180039128286532415018013055595260575189097008471452336694411506956076856410756694304528318162374065647927031009316909161921778014898598483022461098411918105230314743761832521492198676947465037061210168963996808758614713178926937278001275779121640039401121547645695661869153992178501993733274909747150013116331759613385771717848268436859733319130135385107979940770410706326992437481751771543138728045459152174471002397387928915554681304249068546947468025922868334536176653967762163675873381538084282778636610872679470627054566924757960404402082063033469952865659321657725351528875606137565012537503119983515162620597236828228158294652199041893526488809064249671012262791025275162499647339371715378486707643785897182316910620515573382782664544283887714651580047411456657537950711027398576214209342399325610768934686777435428397807470968307306577593740812518168603139286493096813625636058612788886745951561630993432223038579392590691050007584008390150045818959863248506468868092819239132451323093538254507851872167041458667633093775998612475042263248225262220470350129673969265415914856932932099926346367346874153090865061493386972571907903833575410738252994777663745139778062900632112521743038416091615802818115037542110984170467612875741431618894451608362597000955162227069990888681865188094563755967945358963548249519446720423920537252455501419104158749583340596146901417373596405073478673883295328552954150637529032065202564714583568043418546313237940538237278101320090560829617262512518491574108669604282992548147729102449296451157681008413285929672860060120451805798359610199564638576608065705062099243908374954479325777823451382269134835563652445504019514015704630488516350879061281957235928620019950750994746030610077369056876815851518942749735444777918764624147564632577087148454749985340370263162714860702579821886570625380626512763478355158535027144279486143988412607935555666422879610523092513134325142922895477578346755810530558543733138149821333247901161001438800551071051913453633750792929558242395730089805725236135935988409042557820848408748843080796548339288319183362076932470492362670628600009178910688629493489376388251798895926361688978808876041632802643703345342286160487281868433081428122994921503507781816631090641232394152974682409315080906031024680506667186394987480975023236358607438232548827502055951568312989252801537571618333445935482663242523483721762556584983512112061053849215644248822534902762539316628174712702706792051629291695473266387820750795573596580872343467763952055120215173253683088658712021320149088916926523696513156843933068261244807775721389523174887433879003789901770403365414075979073611372123332683849050667712176061561471135327343625036579705407850717107775830205420269685132599195354170108613505096151674468563707306055879310325355295486462005421487802529720928178542108768045181339701879081203766673286478727716934110734295151028507873028398642642795815327726623169007190255930292181592572865857616072523249720426547315186324855813088914472619932499154390920635689557079540788845923603831481736275686700864856873074826425362177174008782642033676725246529441435135477998547271476891147796054169430698084257308229167089973099155984518812100245549543000716778489865066104048915673737999478014730611094391877769275708191763007905548566134191694497407767785103961123778359264514175471565585024795160391331300929339921271752362680360653402470321167169861863232534247987638232325718949821600258861925818628462612745247709737473831268759042298319808992191473294022864673354490574963234015438036399096852684540611530667548976756724846901057540771974217033356223354218967460170094427596411903671394034283338223677808825816673924868372766407386444062189103528973298958360001036503430857426304064674840515043885754857096012466444684675187730279416771399145264047958218030203858732206199476464733741269793082378421326510677992560245119210361202550024713364519713242890069224858841615242778612166295427226768085731230844615224433807346116921991918597627020311080567285893171216158935006224654502869163844978530108507242164646243407452446696777879172980396873754592020685268834552069839696553886807572299901797193101073695740958232971398602660279354275342858472829141841446873382614537935241513146283326293488202863692790469813599501434075350156737250501032953331567463495595459902899025926012382983090896867574815788164557057041231225563916500846581723026250704596541635255883726106075972662405493895856760860868389729795926141080079784898472733972373040648887130781659569302451555644018151516699505384292500131600670235958889210931680760582722244761910848310780344871838798339133934085379515199107653511482190086019090493051919955122010914946896366573600273108158202116845396836146248680177037008600271743770889352619819558187163311193031292425205277559103476059248647930072651436650710207369947918706777450658485367908139590094937075495069988498750414662481567980720227738755036862027106893029107523101097595427824893330369081614988784139054620991734727371757347914578484323754248735661235943519357697015074756752978898143179490520812233239578967611918123485852444125246500780898567787623815850357561108957991143971657412956717448664772784259429379112063634305522914207064908483957391306119975039253758520627394161004218041112130056761662966970613096979866362968959673303709526979964301744083436243612138212646329688417242127361858349234329540493774649427173912922145776380013418406065654991528484340275158695169562845899324622639683128660451278115692600680991784599804112090855068678309559189414780990569979143340608883309468277898317530291433066626878715137873804558202043407344574865503775014913456460651459864513928520133162126885136892195864535057280069315292074137374502177022250528638486425813100681890537353920594253670810511583533292080795610062084827228493975721113645610688873432479650785207764547742419045683513423778782584391997787994464860799881133545060296285807922840548064025304149392054652926492234409263864432232117283777654088948773219469376300223340116261644178462640722633562449672562739604081816579487818155777286029212817162727784031876903529417133094114709226500316540158259977556435506988423122501752281220528052368490005951590904539152043365878125623377389616761522291478444213870635709530980720394028672634831557216577744982661326288466394930083220627595782672496516612394641299287763396335647584267209401739206579749152695852646813959708822420923280942596570097946206657638116076729127826473290717597280732916124293953010736731530648192924895774699268726949750929821106761218442418740747664324310091410773706900456615202155785329213795565421849308158487011211474404125021333174947805933961952764307945532093885267716186595062371625686450700268662994140445431448066958054829144410709868478531394871227569844135439816751742552410973402636769012029115946206389010364296616185827202350752057210002747586470796177972179099813115142235515428009417518381117782854683988359992742014486654853112779084882948612774275912061820112894224151343969658716246836223839506822558853143549610089325829515074164261797195349998052292488213549592983414724620966816410279847528424974506009418124279208306287837619384804803572589992133702074812110896250899489580724466464993460451737409427242629400257910645362316850937636517235773124160924332112886949059251227111795429978149936041478101844506720802020261685934786981210914105556134674210448703499407995166084949482786670335377926102355934603454292800645790525107969727220653042229789849045426378104432568055404998543590981707059977244252448949054654396314286336491554585738819572700619012539653336253429449628278869777091651616779151499143720991321474805337304894428392433249375956134051743645471025834149957270242833338309445743476122826642300349693194710180124850793183684816367207000636998499605658461303718073685924909794531732366907317953944650824183084367721251095047165886264177560508647924664508674401709618411582226863329807098969647600139509275773678347738031676222853358146575615901703640126796405546988783089982066810497002845628279827083073870579124848967781966901315109923525414387881415886212683293110235825274281317176956188406015621284723582674701330313892126244071169720882812378096254524512646146209311286025756699752990311311325094601723198034252491120147326751552419124372109068928515113607090201166030255883340097599929041875463956272152986371759727828659515097929243347376292643061296444607610227907817531905419868488426986458117287045554115298337649260453363195815469156179619750880386104472291281281708728959339272029429315630826407381362703390201437273653334689388207505078560109117673600107394138245237950579603019730431881420198372612030431024222229321886005932233124269575113166265899962857155546129540619147246686841972525239514018925524009310895881806739126274259683757953275001303330354919926858494779975518969475527498443681422868693639940121006081574171873644156498211710726136238674367776244336417930942198237593190593968492167036067820353197752993581014706398799868690078933185341561402505500565716358149218875003733556657202271366643002584959597480364480445612785930455200118887535181287391846226796986160437135599802643975390169534022344194377582932797263604004323838921778999376550236776701933456527118845683730287475536600168516548090699016322286540523693811077497297229534283590237076757477279091745808021918630121910330864548915839894043524435164174577832299512896735093967602190457946734639247536515125204676032543020630217127042719310446359174054398737417973706859536473329501263409883373590407488802594216390235859517595999243301690761751378506003440229070263332655839520336770269899284808839286070434417841748515814216944148779686658090097395220421013312204211745435163736814648309606617672460148390968594606347830854740711753318487948708181428941075478231019411479968059932373672504185894429145161382382481852561924922615245005044724336785003859888575367746973010815133784083263550708379274168453749467376442627486278561419254079655547222188973262160008103642022305143864189613372027262456574455008634383404128170529799121187879988741864390583756373456964598391858064757034644531667499524543351854988718761695172669040599929842132965093864843474004293358912155900006543343839667958749099801038298758352146038208182471893009067250970808911541146026281551287900207947040466070509862741983842371476150934338445668860730831248294820723721845176273197287246546898346661453212209332865492001128653320359804294719072182454879917562494543129954436835671747465292985667668613348114227546755988390492773799062759354167677376576421014764525551522510720189631994014784288981927604724978770227719630957478823431003722776210240123769981131822943326332308253955034076264749930109738416396140954786323525167111362919332847203593266943195231373562458579599423671768475524334075468785637533533558491760134541626122523619471905134612607797968850415347689575790586471968936180614976585034373972210761402619934042929312147614513089560836225388396295112626977731000293867487999195834066391680815275216546859981231216185281971645615056687269708193265650243979640652161143520124770132711602648706146637038225205324953031262400462005967337828624615696596021655487184222550823874872269848578548546552905015251581118315401130942906386971590006177345485618749734185077740453197174617780023294326154875288435338866397451398058346119284897806384277810983143547073279888275202191211414763625867345704063274125453274183045129308850990626726667207852822736125861375501815355897212406375384333883835164463946237690111218497573696630921205290432029835644289481837964291291234421904816586089745771441639252016690098174733050567306526074601214241119663090821077300991065808477379627129817587599562347696370191658604703781612647610112903578585759697655674563982606475625200353676033610269353566211525521481426522666702792994507183224589457484547946819564968605807646199294873415611757858877968007391919862037912548373958592179695251031060586895868510299150983057170027230471201939773197319313096500823238406343034492827555192094317991558891609159718932037977038745482075798730823981085244235865180916187178470721396552239012424710394105700934098301964295852627296090498369612121428455782797590755146400450264763046041081799767796587129813194919979976889785120651571861242020529629925646099224569884705854498011278315692845299064033216094872191938926969892021443599216105679447310249143677307118121197020690945252664419048527800880187073416511972942687975583133811586772391198414213552840160961544306704662846346543722027200361298522224308048997159531552925264040701546836336173265957521984363504626832089401706198606804298429227792766969824605379102921730823155397881475273191120740170889285670144220474474726550000102647851962064066347794133478982113707311441985561520730659133712404027875906931656484448314181044887823596325991127740970386642360438520242045486281083994855542358329417185897329674228227457014811754154412341390512553247662065417556224173188088355198797770952965025269104254979650897975131094994060465924679145336671935070064420253754892109964316457894252180734918843341296781881233322457725916064551040809318697113952803412222540245682520156226047208832050384644319671072531941959719791589776866164075329531483488164027728827564138287912523451998306426365187275288577490065370688097170121837622851477152459092292694383589032119794807492919511954676924656763335015284731488917886722777062132890338117849563277921718737924429102543875821480295122167740648046138579994792721265647790634657742327758038427687719989915488301697292269090702637136497098689890797831574765178562350571859312921252024446206159351897774450219019714182789780397567857125956188042807936445024838188115656801413223155089286175635467625114344375639531035086847254611544980730408992067802235967585485726424095873645601393523243536084441758568079879802003230532220677801847998422171570199616137866424849589661163831662773649731938312663691287695249429086799859876065049081881113611585689234971989718874593395696000777835487323372020545951249739518913459806327229996384602512684362633910794729903880771767300665331137350851842438365941920497618638944977115208386750692977331231928191611504215001286475260468486542985708918328949317828518168658097571187783335074090479549555647050114453412333867625525827410406122434891843447638272780302622873908645344814870970479470132273731946606326643775624069104898216365562806719912046262786850653316093553017066958037926113619773577849327562384397036301774041072243548270748326407490934632521974388099644555968236223481036448245102387538981439242114108917659409451072191317820798563081133922866547009699468039719854513701966554517979125070225913316843137505076039091013452521709494292534856896892203009175742652624542941343647323358589248221882382150823131576839805103146014851925581915309249759809592254952802118376439264189232623022327505003916765011103696182509184592149439240098374470931962631973107477913536708022313585203650069966825220982556284398818219576015984678932984098264983090026065449155727783688731360560644864250397958413911285443657812681572333701629356507201209675738475443481994471411114131846060092646297917701988507313714314433715254411517535027886491268693381790895473142395021303031303860618149469734455759305720098469640461109035952424632469867620982218852303599889085822734945350875354769712548184204657329220721688026702249066032562401092254751965531473869170486993844634196986580723857140180187829304124501630650450897819785131257693137001181567295152625307264387302550136179949201698477034256583621175439444203504256933548950777204259731601285773072939412557584687068692290655350371707810464589713395348937273275900629388087467094188374560780242220602916064867417496478544013551732886240830135671362785723910201992028908940050705183755982924396048101658461710079345567926695803866151879922837462345050170281805260418692818610444710120121440371155498524476129432524713417507952746756258434526964490789593916963778928788626053978326690738942927397628929381388101337343013702389606517088384950161596567740962652335595505932953043340952694577742594677037891804142203263877281655756843652238121914770348117225738487849993406072590158304388131019977933868966923172331088773147438865609050072271113595697231654264342058286583859879093890507125313915120108229027178948470428793614559691638480992166155206956730251148490759383505469231988429895352588337245997304432830772863479381116064873789621272378970144620420001280239794228976973330204361230684771250563199311144361324700706782847390654383982662613966549236435517193888519439027880092509521873871106683957302110215310308724126648787640074878230146247473399504460399825862038033981299935035499851864291837829978378412628277666989910810187957916767287236132956515254554180592128158657886875251061048341686332483844895531665231879849806227856004454027378589119770541507060722643438017463248758885674983358257401551767302690345312064585944988365294690828006870103861613619567818343466499441523168909184245494959777073714822523165483761599645767035570611065075064692164092142403970398085997005467802421678833988318869654626130567823310431777674244251716446983102981588079665953103886533797611622436337479807529383851160371321149522751187413938757703280948717255158461312130521398022616749412905530005795638528040358329367374461795708052558198200515680430394229891989137446066774806561931863022678782858301348774018421492017056831808193641558462471351018651148367954176519679305697790572048392104912009975548101120625173942944718088909893881448968083679381102328955298434635944072094571921745516512758049028057070708066967777815476753643556876078333754669866036005115701260838812753705733366285579797284798532008395233128979502544838619526529484039644898033788506080195204026123918791314420079241358490224207780732195127118027368043930401552613874209511517753323582095382390154222943978136090312719315488948456987735506360101894964213678285916150481359997867766761769918029220732348000755134049726811271182022177165208229382109556685705101434250496883508899856742868822058958115941770364566738396116109829281239685692495086869061909435062563449856773718084331445186734681212825713788894275598825394869305618653732392607488702368412578507184323445443240050705054217862558931419993241541427697163716336053146830149728088985181094658643418138088858319813366019842558115791575690709153036537979820975307140619024725187597322688196677142760699851045476211147263022053854554411940041394578947570772016374679977652494553187474681660046517468138041933883929568137634730221420301823909676340755781355769390121438396082909598481503478308594722196193551828196505507244801125979215394568879630546691428862448241799487512536073163508501982480993649007106659905502516117256086381337396310232517829553198601643137350038625888263074365192662509401512029434165854897154508497939890399064144845147779741623343995850225469275770709377946418232935550029571746578327562776171201600974489779928135237364744053953374417648618252697166003603046020419516308153922023758616863331356045285140158108055269034244385521733051415441809973275642829829740955637591055544306444689638776656516160852700222651621389630178692526297125990033370216644449787594056578469660310306987318843716289938855799550428023347298071466303993762490931040879969138106269393709281473689497189759425324432373864539151673452829923490861130193784458968628643235406489031399908552681941510879531965659154926910477362511140447233356721404296483780750260657858827821861822797242220303418838549089526816819455605527061789301015683687452597300419162530275806503352923225096454705045027936618209563800260745063487799828710010765165607735551316728098349255686618472567454843697640600514006850476265410413979310606782077096754359624168803560237793379403301040280192279650940724594235779217043923002186964543354628262372799235835678192409354070970180402233689366180446800998057349656785961935687734214530499293981456980941608790820914455343470184698573496214654336807445575469416488705884151263560653695714505429866547367554038099183689213634863539938955147031463079518931670654034449983680601235766838521977690787234287454445062845147069072493776115009570466119029056392783986772149134750028622290036032975214746889510467803022197880817151715582021113259161877761779234932013847689017111572925345596833476337463612469492689253175649162790485713407061294072433038820897367351569592110443569854993060992477343803915694113379831939268330407793900169047116624064590591673826069070574373934422350723178671502843597985182726977721117031360848642526510040296169905108533709272446203562448291124999930955161233424712425109693417976688804356016287829287355340951637253594097973623127535982079408869282255966476925370591541324978102500489392601289963954804891938316018540019730550943163864258769264722310195966342886475797258039680697920936892855777603221571634158062739315090615625399215637537038250903331213745763552817624571393532057178366051580648136459475511104749142731430340039670156187279240612771321944636500728430797036724356540952355446918164962767580110330641582558311766488333052421192195714120859346983344145517696415399977200688731054782413206933449490692561211968436186902945230368694136553524725396356129325484705763636338299572495250756456747622457939613247470778313836545792619379157957962171583834534203164917526912672995361576934773338931846295787239555181946089264118367210741882767523302354180708332674295593249093031482540761695945106503349590525956095181705708111079047106611243968921714899049196445958004341332710878796573827337798498916711979334121942555225395774939284548027736642945632196215523315412723508275290478514126134617018260322350121097960937045834009154833958994351276802437558544832605587177552063556115090794414597504672024951169967048154516931554722695530675968768391467302628043127468886843364056918038195199767289266718134159420795362317817482627124584930293136193463869763705872754898257338369011866514948190262135329278961003375434276210098616798394172269932565102065443123770839722290965678814987078648879706447327546560906741840733570423381084957784305241391029230402564341204474460315590389651205791227641572770411035831975937591573420826935137454203153174199302536040445829620028949195650233975261799327545341983393254330111201101414173722028319668969215301454229258095849286024110561840968347204074431345304376705313877422188057103367435667863411314013894018677308185660086721715787927557011197873757040295315481853553815496224606124175964950849352060507330085499552668414066924134500254644017476042373705743183078491347036644726810733693948574214634758650186712541300877033059260111749507201775212008226760342587253041119813391677169937294994177447769466426788682165827517423721477220742727831192313009579145930857519331377462487951810431951760316081151582272598531263199473152446324985163908083492054689861059601228555699148626983056704123478077862596396353939039055907335261156883148775548605340336291535479373066100267672127350861334663853455292132817053904856790629667163370199749013863322951575855123673058326689854865728203892639670450119744164608176716629409343534402079971934697633958520731441084610144861369748132351291397001859736845416471537740707186567404395119049464053665498153900019195896852752964808708047194272262889169602243326202995960894742205900959679275131642776009477190476962453637759687394516272210010575016195623825590114175495892966202207462608426007606374496896056026526280637232585472335992457030140975532721374115953068760110865355825986030314198739336703665041620812073453524209701034867937623907512120918162684740798440862312007758759064116209996775955976493742227041100012279250144532374685443482566772171347144945699878514926106330336072265428896659866949617805681149916564081036636743025490526359912057807362929830476136989673616654732327975619926333084405050789594708388193534589428288763670856474134060012546812720132427893583328896071155260511325937739316843007621120122746954874508976634671404155324600878980508443809463147469700301867837816017846174227917845416610171212459065734506940015236097217912407469287950567553453690563993261653517788837476683617636534454562603378410606887699268531244725296504818771833295679596206692648380277435285471488475884983955983694021390760789259662400057366939627049914173586448628728014343417574238613276377929336748810864236759828962498362413329618838280608676353516551940576538896865443265615169785775130597823845204251149852873926421543606892072774487742716962083683517303111012831800862020634453852512658322891373411435670937736988942221214864833390770672275108476070319247118069536507022949809200111904467571200625080707108524982887114624525167910317932243021470913073519015199513930278605263032892008238518545731338545755832512826891538082046515171727651260578472773354515837159956322096541730847286023395255086013616978244671507464218314618850431233222673429662469613975702315666127018217986461659979174277803834825551750493656523731608393394054226212096374633000660391389329391722288969606908541565225286535652566454941511231738641779280260218670874995971901573501561860406706621091951208300528236016788809597691781632119105010786285321705573658470022099473188664976816632297718911748969008455523007513299539540260347081310976508530936820489203368422050389249979238343141964274946673679465803213632979275273436590554622870541744421261928096511249715854768707905191674962844030783945040235327139341181339253031529808923614326951635535535348191162743475338578495278799411211518667198818604756418109697647416767937134555397600638975631416068185378283615370466408796436401346524601786716795932227061048451663963862619456044219394215153642001659655870945152436673740475077988558400580106940573744293904306062390707561280605443814561642968765200142843062990726415591561358455866104667123313859675803921745555799809882030551241529583677921164828741879523199481512221979456315484260298039867735398565215514039287258033876919521763969388713149595423765822567866652835878097214005865648117589479213130236800374496219812574138417837335633488342557849376409573512241888789183269593202402962712867560794962121750901646578914041045969492356573839098232863030230195158959301878145659867738650913550430147269236131399394961767368474757772024116583311135817313760031988977152539102723344976485434814060957122283869460509209319278970557160783397655994167620105499406600374344941883199694335749241651702309352135022124601492875118467614648825463822616305398720102279283113414729420262725242478640147289569755687948886813921522898490889545673483548165198547180880280995449397828612507922616038458431345306426109252688463273913431838727017042628455248708141985485325411602365559277154623027011823832102244759144861403937255761707360159311178281858465032256351792781875611413020009535525106227952775094027450905473978706029656211914126914081237467801884060837771965145937295428334290271433720693892119194705258477370103113526578989944152088142623057254718703924825785512664805859698974081927380979483449634040143360300884981610328002611153110086396286215414629692484545885316814062194838597596725789415222039612492727195607791430653341018472256779601721624767534670525896546720915970677437503940115150966770887471527427793411135590984029621464072307652898225020333462935312556033891362972907479656002924902658678631731801814244469607082530585824258750856920110559500856635754044358135488355915496531106008041132944480909642910335730350494826991789282079980095100915952584810530006012149758174245136008929571421429570605713340178784131747431267098650652931815970525092514345892540956122826819101978203101505160851854061928620350319754210520638903121621271225807723606139147852925555988192388433314782232034665539728871006581849592513750319311979376060466856877484634545059085473639104730538825393765288036461874128007435428278707732138043203934380463214478239145716142884619112888179489194299275797965101036875319420951630352232437105914712017444360912708976517449315726711257391347691902610682436507687785414595139621848605612074913556771830980692122841273511151307004962594277486235556368215299766348020486814533504942522753456658824030573783562849472689263637009983409577641648942170252396145891068703522132034241154461032191842574966144485109876623682433205342326169684038838139488617816325503141489270540017589109113148902461276382649693857388508551150427885623614608747607704263287848727886943239352484929744152956907165282703102809024449507379689430736079535804965174256583235364592028475433644967827207270471692843707262913615157436837308082877741607899977171926351953967612144603957346364281382004421354129241302511987433488763721317888048816387493395712682704184197058444492519352428479446478536034133124865241338360277432096315314622819704134034167582086036748808139340093174322721826703825514141530955811153417039009469117693484956038932534332953739754989122940707072277514600004388104824802887498489116097253713977572438444293497478531494390155295983234946512734181754017367338190037284882453788067521208325379158072142517351767927871599260923119682212130389699884819476052970387771612923390050289378407781306368886647567501740872560501738006033728930251801631971024485257668619752707789924588572445431878926982693829579331234101479222471529409767953877635512320011508503298218856625216049592357687594040997701009334755556346715213308838220343937713331384235579204272477836086802493203681970318604202109523143699885198809338968682040377162711083481933081945477031505216343147353985008753270373902753667166469121124586695920850848039751421208965441711530515179448922309185789510305391926857232993813996386087827183186178500006419908928314656334652623253242817708902804314898816837379190481815321044322895332826109526451110624455762750967529114184469297468541483476341423243448094733121589519360365178236090493151096996647963706111737684195024345552858154429193446044497574476612021861404647934568047254991013356194361347276831939360813176691626985251561474588911088902815451331126057633957511351794991098117953353311729710964121657809540593146219219842093677330495177060787833726855807982729582710739857442590358039621938790650731213884072019420518623784464774611358654223726425979691886438248502318982056625628391109680698443582135996052913985102245180681357985245912153287897737609804276971584186647299624127379356476510234826820201147384865493751689047525447045482700495641731256377613159297141038258832905237374925746545386930225967137591344669348807875172283768547043060055737125979333159442204314726365158440781953816449134667484212791226647769887052502432438367228287222534674617663024655292748776767235519738745233309685770965756865515857729635943815509264593893532186350672565461703661274138551364039164734279546074507172602583760399238536384343239730765268347625042186304759404155994973295038409743526231497412460699406070568548657695142631972832499878929159621744400889020325365019058631681402417782568534445916998379711445846975868500519293062703847832076973166661752602483772631634704656030668185028983727636967441920506302431036246593497199251890456056044361774164189165631931416022618630101002540087725167330075999672750973421414909672693066723761518133118660698939114756156396427226909097732380833565829079314261698296888103555879941810140519067936393501385062481737961822684954030567650885354445674495113956847514801284457909418327709239855367588676035459108647345921689269718372835816634573299247032854004874502307023102105255276247631197710257129960136084306894411058898161273108997610842976421482331543533639944706360283899187036203172789171151258334818511115234737456359997332024133616752244165677392695886591547397705168097352672553792111499899186066600625636193968726452605094179240884131664149646751527246961829261827311055526982424664931489606854180811736512750627199244478781697783396608441844717547077627772390594625366172530520818224664673443557335724488859950827918995511123002836662696065868749453970051864172935000529149105889802877267396358457029172897396718249417954819591179658784827133436361137624753808830669201772393435553209905497434700610392145288389866182066119701317689342376095293210553373516039181848437936799265476826742197121142691189425564212282171068353693304370427339292124974205079106372209558709071405996933804939165730854956244881564042535897196512239664787299625605285532885709442789193730940891147804460178071092437027431124648706194878596576959814854695399684491789903740982967461949809272712790354110041078138371176908590050795375105163048191922977585557729139694273629499153469437453949967160739869240327808442304330135614040015582422697718553507602483943690348556926608752296143340576127979203888446834364007787981977179622849513683374979597876119985736477034660304630762795507255775831086237219746587832659519763899605465288075390200724030281568139474470279204722786967280642510743628234909801507042659279937122831506966741979207349563826865950518179460561058565106918799003494617165028969896357490094332593745166283929169902065423737482185895924969059801745191190647141968452960444845049233341812785065285957430089161643089992000621966729092097142687377977902678236769276939017812510083492362241497015232240151039017538286569242036940786339327049198767575007105897924152214279440461278624776033537387167252092509102987254580088010832158057335553206210077489054450493306098661055964491334721908138021903773994753443144211413733373881964962891751283433388533260594008706486925849134926664852386046602384740294664848870691331595405590508517442040139168976831166608792152609013831163213584809875695534436755686632433163007764807795697177324874041540897140184077054475619426473956124589816312302836695984788305198632309821396919904230783945935215071164964908670253220887475230466804830673598904371770074116442663056103814185132260709176583022234093810600971764996717483890868738144466450285718666032965237025683920692187400986004806366525401194830103874355730094645629502913359937764307556677587685806027448593526683419533900848790931207484886106894911126200420250250030154694350161401724390709684141638067031006372278915154022287849815992214188835857743487038428345234266099353492527807869290691840734070656494113104092304133927087785590044618501264910858257591260046648758653156209270077466652572976515747671229151391013259338519101354907400546327511553886521231169114175071379264742816253641550221578895890939319438800817647651000106910641677157991278298701529271378460180233944400273267666819322539353875258426598755441640219879938319941773446347608739644107297416741920955753760170195320795106150753518207334016906434187927220619446953309412838824708612834598061092174603217480288241236336570611605104228681351911617239534806752316288098784060830609436089577035300030229671900908899635976727596940119563178531561262382418954754840086138307815415210582941215846035678917553970003673223693880889462639767550115707427593526384005693995627224026312113009363690409056684008244941929667955817872799066046721699279564673043167798777554863855057586799336739661097972298110924763369327988427217585329681231711682928026533482422634393959294913005631701799709509706173857213899931645273027731220852413251870006294978693002543307598888604127953055000819342230107246473615074612339794303874389686884221429807926862203932719805506899955244850053272347298633316723410837772825694971783259689882406267678924534173068004438957307411931638016547250772627952275071389093934744755181746854379019158858386606316474525319401446010419996490705014929475956295522309152082815909215081709363179573679744248465879505353667694567327409138043761884134100552457415966156308009977954410877358317222283986981865575131436855359770755390037191133773379450788911775922159852538998297289304815289859192386288014814027619480142968788551397163877810093999132596313659253627524130381066617972006596360889633235457487987065961223767248848416317124077178992814949474110135925185898234237076235476233648149597640453219259846940621826832622087065786922894565359397711335960663200330503487055122769154879271384907874479803592005278860153902572264647907195179480763054029588980382367322962681583223269830543716680439718637061785565812674996826719187700028293022103530052929142215238382912325578132630419170491947800628183947277153439250307449678574114033442471945923077023111481985889818982409558556519563783676685051834369920130235831152622218970128031864985433847094042798331506079018447564752368785362195471829252683100061749381697123750490320845861251030019917640350179695627438447903381405629012119422763589247158143809936508408629687863556989513274125893241809316818692308909223851200360379552509989607748286302611549726719779990130528433351119916182013846664870343436807672382428947260009534304577810488996704018319484679947974605718399541310109007783662392922044631813123466378186536465447716360293889605719148358551845753015432848298435599469914099605864816825260566599702200971696778896962952183283921962305619004322004983760271956610236259209634043507051036990385236695872455371225420425055548739834101903093238405153091796088313401910381347619851527164591505440906544040625214454444327890119424050511073649184019715628131484149254926971735186671357735840811022649104947166388191798904089204973924451426668362830779572975282177185096710752589107343345959595779809730456744849786444736733515705892575713559791186296808243518241184336017172929562095613848113119340105986116236401976224088403697302784999937237864323592857953030071710536753230956971315128659075115375163430719156444489159742696182621438529654820186930561774933042985724761812076618914460971923774938789275835730144330406265477341913592250871845354410989930647830418388886764191115398532777015963180005584869917380046559432678449225807755918266618546187018384719786318784825959798916801002685101981959984273233915837404562281130450618436970541805698766737885421030241454332166402953644315342027239674719717994119338767636326068179982755286222369207369215142442576845627828082625010555649487084828902834487043638761122287821710961595975406233129651819488258452195765528542595447581015866909795985485884238377974873195053694922984910814845476589789825997719372256877675707904011860870602443264257616842200472044974499687763935083100184033011821335031139060534384393876581701513169033475336900499670065924458804095052997479180729953258857253338733855184394589543270293002751495825576607468568051542421335794425377996641543911308692800390069444725821364667504616865445405374015971338760818031913837548983661237507948383390996895455333189753727565117774231668040176920891193229958561095874696264088319853420818408824696291018368455335272126379567730686840275342819569460376810603043953692305100524630264352169462678435392255375619485503510072055934991567828082191289911783452629284785106822776887302757419752708097492811467689829860195859159935708189116150842548497555648584087978519880385854674613384549013547393731194766944038204809976218608983421408868245289883634427133181206513293648398815490859719676222881395681376098211389122078179891669402933425363648425012961498204154871944444976442354756742652068531156362839148395175826545920886644719814667678651381573299920677440231134768542178964922551366863778074990182313713859229529348945584310119643902456280325702221910407319198153334900559574265001091700855047575501941878562925691983120881023099203839304047432032986056575613759294464265950754355037276539930338233458043552135784824235268030083335529208650943960110244329730591184485024734346711622899799081705254822838199915346072584870724935883069059800550619239162861451556392050810846720596456151400449269900386326663450137800489813109844672238162169691677724260723189984816964935028565738106457521476734564981635336070138996968159166339214205989742966909119208261009527020421519966028600735072674695412563676122044917697536518945668508685544504913256263969088817062612074551225407605517908290386138006198991091360574478872453348300708576970916365958489799319496291546705754767929291849956408227390149599753924581225302665688264417756381612833235422834988981995953139125666084678464919515754327222914013359084780088807949681565787878315577808918969074117300171021824422716187961835044090475956548938233981565181476753749514041780828451750667770247640473748653574525974531946746064527713614057021014782508954037216984827381265637213244620882444981904770382566484824684893888684772810130899321621303254080660060693085232542803301138264696815238486775046577998165463425249421093567420315333644135166784204221692465572998745650956919695665441434332587332973319534828926914602011940110191620531316807503911946300212452643515763618685171595992045620702035305812579720221250463618438542319047289704762124873682638812376466043348934408370353831649663260479782093427965943838695049495831715430344255451593981921096596550067863994402754743931840324874019580751761666348335995740114235280161403591185286418050410700035637668585506935016618163216846735394823015842996923285207196720364268274788600863523240206165509327296155215151414450532197845114420402660834522716368949141795329106572319619697867697030050416003653094612813897471517733305432149687198227720491345592597313503434209206441655780823244224987649939800253402840616423629531986108580278325013962853991309232384442253935485389577777649414202693109025157326799926736028611490153679881374533490421252334043371249505165474031590566953409130624350425580442955005512365832017031502015377503837164620156387660203418326060414313155524507998899142406023287935993696194748244282447502574758322359630714757918540587039331734841384845329210001487922265822574316342235323381989165068751138664628677329284895187469489306764158164442675242102529779936321657361058496217356491134283443605284361358967259743770084091786704056291487895446100508068960919816517265201076774272990166451077828668065211381946249328541078185785597025401197780365943487796745341863734589223043221341602861293367326153404590963493239837255244929583779584643188997958194068396398287233227826739643092862398496137176782525249124558564550258699607508311695140466417259057618711856228615320854770014718505243460374636909268222763370964072845913619969439494300462563311775947007954812744481942720959272506246766822996777085891858421628457743530876540969990290556599315585235035119797167968005711691910639892538657677267796223933897576992075313301289123120149636004786095139971966638717296783255273875617504529926465787296589705614678880364510840466645951853422589743555048514939484462352828509595943152148014260391912747871402093104503561074782075575158029551303026076467708784273888720872706327349051503947897146065205476748646040728004962857600517842648148084477623974646423099933355280453852706349036881414624558688296066561891029964630796242770682993580238688460950427551281034712980215000266203861932073550664579643880014271540917998265596790482725447017506153098583871600321051290404746463471364745576142292068895403329109699357758089133172992423171912228368619093611544443548668781538480724063174478320987554358484027704316229680165388332492234589339320845774172760445704153509209535444336403943731529521240004362406243275772832418401219883903532078118762496502529595743819731738352924505530290555735884093040707935329898602437145368057081586163122795649816370724137306036509437471683058134626599749724686997595029651060251488636053700086264290170906151380433451103500739174475414689658057268826378458084836954552496728488571218037043548014143702635580201739992853454861893170409986011835452021795000354927763444314172570249108202929379650260931445712377113037773449136064118216089043297434806868910629878116611083357110806792337673168974451648376609552178212280074573967517938663026078420774386795064394321071830063445113038885390443037510942540811370226552274795222966924196946097846019043354690540473009632134777161499796015891244292321565040984407551945237902144381330590496883243290642473354239984363508360609145860016086140209095837684142982565604719329198790130571263521370412367410382086193704795418763363079855305340982554649078136488988248533463597686478713589023257378043246049836277471276264789453835853155013346361677487509276106468437435422919604649666641338508597471628462659981141030546813228995364946491974451068687040030077344092470771335574747276669089060207941395629514834625137744261297778881044525129900584038792190653903256380549366629815965789846256369368899876448384058824095388437807596450030063250649161215179858429741701311414549099198336332055126359055795324347020726729407720665830868187339143270249271053927914379693624974767310288447271867471245678881368065149832881569771777382940218240847473277273791750654831357477130015323630512648751938130992308188777974674462547001434426631339511463384815834548578539414394770811465386845971341715666668498362970216896538743103532717772422162179754122592199306378260772493107258307852002236277562448740428636932081272513394253748533698553818503341095691154557763191938799066313013067723584622596583215644059479729350537589688933406435471209225783312004854426395534085923505196512139814685672739656098601563771428156817814383575864159078134107346640622052916861657770017634608263268123592243987775723791084090016250059851146363775797545474748291903774754651789702155065323545875053100809391682503056444672116274145889437715711221696165485690722004953650205870780473223260550745191389190470225176820405326428553793990680539718164825558705969101176064207567806117303410868871784895011044517425227411850629621135903660751782596430767174173613233230806625510170196588688305069590273736526102877022740106532759350546337356681126341859417466127632265539333879356326936237451033028889433443059266165801684759768947062420596892237158172972723726038583996825094702246923936163952888508198973934709232793922300306944376760331696196209700887358379999667774910428840403725971128112892236200688426671382895000898904275480933059361799263151223404289957263491542396020534490106096843812690229251914735444365839987779397924555554349861093909781410532786159822357581106142990523429463475162445905001918095020444265592614251437127455058344990518054432672120010485179879602529969429117184471310713982463585968081164386537344996979124019663895694325015576433249178347429995406415643496338264027039170372883411165470622683436455387456853600906985531240770720656510616681512686801265491159181052787735077133028109959199562767525439555778160095314363176102966525913454795301513931909409725371064173637772472940077609175318401027016546823306973756927249457496329476491839453530820175743785321329344517752068515154353758013887475401045776656626448988000754838170140674558880693890678497571346923775651366028718570678783983432353529501616140276177517494439815628804499400493927941487335435755590880218057073786365046795062216599947966235830734027921681786413849310337678791303653928712375030438691017683623458710411988498792256851257353197421131842005094645066045590862927399726325167657687299400024521492895782477167990788914739916990727727615983885206698467713385203550153886115063515837208056744722334905437009438271802742784536956741365172472853206028706382530868807091579245260669584275872976993606245900778659979788682689886958391979289344644494348405716656429599566276397051945736757319312296236782967719741006183205454517125507323333178668025704499791276400192625438238273403045838222377872303715338295006074442659718242267406070457971907375834292335985588673860951207918224060046138715079852275262866485994103755817674699073175871213219792779860565292831779197304470988756195957719682685344270688646957120744065313306479842029314153637216132790016808741105696047986031576925437134617061483592089215463023247047428428313802230981743109427441381992878411892212561427716490695228413424560024108610669894215096403155092695923598035364271497990925457862911595164056239407994182743340336202125442437720641329325433382768304843386551244337417122447160647152440088904831400605286774853845172265671488218072557972377180730042632731383284287171093924916761852580677804207538310659273778238905103181836046681935516038691663361886167210897934497928605952592985110444436203524948471932285979355140440544312387352557795169639250200307861045263741030049922065410833090690443208311473694123059587611701468477912393335478151883577957528039817353865236085317030052687520025579668308674610222773991901596971094567512502256091144809669723053642588646507304924368519044716694415153222519643106145545024282815246643140921931669623710606697764483857560205070710381591045899901575427293581534404305249464365627653915688242016608593472596404557972873757938693267800257262656676862493602856992218255307387510966716325010429145889377179514689024341372320741539097336082616536697724173544475163003499656046156250964723026023891533951017140537761921029833282788096157787930575654960760093298251450642259382384147861979433623007879129376968118270097111704056005057070809432579233943149390911163682710067829661233311933518977324196713581522234177138893247991808805493586376461172714635946277811624812003317448590554493611736177795837923079245004570668047353263834935920703489477169908773034402328020737251890817104694644289780761383686816156214009589874382728549952283860429457533552838482412063665895103988827024350469066583736387518963741272085076455765545592767308832131268739236020039363449617499232982227801601804652131834088943065947720708088744268885272257370291272664278425295058840178564382237402739885297571165225732273112095265966573820769365284481528764974202710544805439536135696638154921211522802016213328666959171224845933676633414954280765815906402456239394796247555457562889568136454315946969608246774959607983450735595582970502489705463154013893095550600261283541732023281718948290600483661192054540884230955436988702681053816574297570579132837456166432443102448958836829790248281958979534399702024826800248902919914722875291514510449012401594274068206321729261290412265112423171250590000022362906208877389661045842423647442050222419589952397150297551311233435504915198957525129453792084380440263741196945200451217537549143673464264485973004674510930986863590087530193359193993224109636257888370018694809787380632860253130209730988554744510940772307157164974082862102503750376680715734969107071671387472818685944095842322632646597123207433687375001771589464084250220050504795591317374612297683518635173037436162915109766927827889707765808533550631384115702097198766833974009340243135869816625664767515949553449600976338371520095650721343978460262989939841844642488855641362586856739694386000340467542710793917015494739680018504906811507368168391373360704955533617837999472640717831215068803462829180544491891886691272683852736673895007440587997163286173546319532419108529616414468752540068234281930799397946467498980669928118544859987844407002779896448090221965838531432409696372588602644942949531289649904531893046678098841193865817830168802700585207146169259061517482666858712143462024656469434626827786396055875202873685107777607282073036913062473723026648643868256276660428486156197556966505476426576862425076198251424540439369223642968595074819490180118626127003406488285859348831210166887271138886869874679564064548792642407327502050909310797246984179093557587722049399978328846020979562746034368910796225616054390085983941371906934243894056368003368091029211680348999449635953628771008520190105835410534739595388152390404721910426565427506939002208442556036884145980601830052491724761616084309950901220815542717479829539383990524244676039358695315868554185995641283304833529520706957389370737541088774214501406878016965978066663282993179014997440761097074485546408564979131344463958493848611679179048504433502770339570598138172696855046909553086710719803528166995265376621261755359026774841946220352014584430845632620631476589854386492540132319148015849465692204704331577764644224117134052977774406770565704758932517200923042783438579305885257913741211490236452529966030415227064863583551274477453092126991902291706028568293813332457729061619363035622206919859515455689602604341233909030476783947742268050649499541124218517238561097021478988479834205502403056869845027099845384974357107271025382968130671737701149564952328612377072708825969570336694374329983365501740770819811060129086450372952832270102239039095406935070193289278774501020636660206325946238678766301232294178051218241830008733591877167382841010410110821722085587348865957911076563779583242012578355974068798350672282817132974512896432825191657577951770347814269824471048995823813307081470624371736029995314999670967304628374340916881805905789221287280635474412416297605699488369378793051076406799861426465614383749636658774000154361068972702376434086445365661000125839045307333062516489345855821315966055077736007364937596850001598048659887463177550168977713172869887982286112124062992288787299809246998269770599657432392856238332838136999567074613277885077871964561726236419365248029296580612846205537312027029062338651025260713832961115380841120587930019573397521124868299082111731559940034819413276196069062502787808415879265268844954425417333662483035888246377521336626331112323864176824753949341001957070336427114262895835129383074749511053727400298369259036602698441814533977335633744605243192702102911281547522553122083723654248648345109509159448007083742999888861184019222970951326793046469553053674177982015286563022349187410639158830605107863285311617928021517025790235559694346538830734824487138321391986640125391986195293073573367654827957212643626880818600002082371665229210123115406273173710749213115794656900591607900572042758502116197284173009321555473350418718491152612374883340324688687667324669975996764443650115671790711115673816032145282238334151874171297391081881352537503427548098795424813884119639821040097731252748618671288221600042822861469806532935232864321879558219731781714134144082163582360387147443884826640743600593219897746498392292590399287733904636820808391912726211095053220906855849167404119662009072594347162170170498279655278775985336400360753399413289453245720694428982100638974809134167612357469684495395240882073406730461079116384310343607562922185384652767562170819846936998353905220340279937612145053196751104161002363796302511733269121108576456815560563148899479837921789910847629302103871695700014152055673124693067955237956691192334137338921185272892394804749296624827766686683745507666618393827682815386672369214949687369057841456753697479518500051963634893859767468364131801789016529450080878918245918944883882765314226204452377107149828422632585146757628222041888342398672983567729667374455343281498068916206767107087504653002185787357678601047882938813402788454138517148438655550481956339348604259321503023950132232313204194271563902087774358437724280143541902674719521415840901471847884302464069656978289908199420159854754315505656224852587221506471483612771688784696502152494085102081838068725225408039455747254386797340844720614447633003608603145672839023435131157127435842928543669690712501969700383655086497353448168625787023486853171688456386585399223774142883559985283869425063336342443752151122989886643616178343044665644296021711399792150361927476917238231789639689319484310763884107238649358296391435426756957802110251593938323825370525488491800517566712545579678878816706563755358649314557859844292923065964080725755681404959489228551759463597945385531695457978636672786633301967803837256467199676330449951744741415706105791254999095867101623155301333862423196400680191585849311316820571766876286068290198630061752099776292289682943351728541557280969214888652509665449271401141351896254373005797735551809640691404044511962998373282527384650594281650148904774968702178964534855985946058032435313082352660894259753496347685826707627525725604427004463192084965472333755824222819549609843016476314888897093786544586788221026779898837113028153744140347855788271939193430588583416365039966261420110897122494078032432947045457078082840760729453644181186974322590005786296230802312177314766984109510639881008171066584229211032465157063323469548950833835319238999235384283893826120349551493886693149262742499747553203935992797232310460673120420218284861920170940492407622572088482242512391873829594390622249557203902106957915525576803325961768270694147586566957619745309537603933029505654520640235759141777196554047470010811745914535506255611712789162914256303070397785722857322323284448132386921139257911380386141598827283939705086727489509163183113743730454958096643722941970042061111382822710774699953583907420758467956786178564031515151600858222769663006120287846149743988776280411576618919510892671711830599532417477581761519121626096233630230568293044915483715965882066221108838046131405788308934541152242529901086163170874550234648146637826549395383692355586293653681630301748392762665762316700414995776542844050585236360429527084108920734804608555051335181682667454176040515395322585113456039466883588171717096170257223079985595726731317243985469889970985725336277335022298753927061174081591291327299551041104113926765328176259785563166533412662957753281485448674400167893483595324149092730626720552784554119395706039662394001859991720996734823961985998217587395799191163891803525122700364794746606839899217174940609105717136299247381672580754591882372410254646169337810181303602591245269222563913572146483377518082607608924908741660748099094802972745209102745579265168893926942221710991582693983698123081035812826869362116080649949378886341693509016815164876909679918478158786837549935734499831353830767532097428773591571358868927969151568948144580984316400229824737135331914081487900615122752286191765010927296375731263657911433951760381582653756018255824528311948851134731252269607843994731888346032370362743563910686529930528323338900299281726498588936469792846503027624280809879731941053867907520131272812618417094230222922059520541423379435702876343659328706885308878557918690110949239671769996128614779218718002647386617077594015929478061919645861488189581851895653224542225568579816478972811233042495903687193162799327343950352942707621100066583029929470820970018395613469143885850727752984905716393569777910189816139757627596821695580627871202120652729647349464485142129573473405026562767983600733713003811378708796486991537104833730673555292853540651792959983145081989272291031066962022397090692550208178064266247424456366503980659981934410035670866359154346543021323825240069780503702555881443800693749396342451295737819280218166149250986992938012630722522902599668809684965484085472588506611142640471196452414287736919946794101788169937103582707617808459841785475658465992012955959944257711658863559861643536464906490142786196944013032122024673425385179353377113874344305219274778417304871132849619311900715965424007370502739675545335433922930893517722632887705149090288098471341248002049329162368523227978804987780318177558765885974433044649842976551949425830973375244907479538687234930325018983831954000269150869267884242102338442903557581240394509524760267431324020612042806947934518815314210729760983564751159536663787497862168070235781673133514356567526789426750561058035805642159284035079970495767997208808754517845267387135567675190925802342600145053696166113140040728721868681027675445237931816776946331576342924284760547531111507388820203426185256547719335348277587427696599267887542120787730779113725351745912333772098852844759567868969961626413422902296368808661014969946250851666404272281560872078266708713610356195856659694723526965261526118515111396994154311458749246791391462636321969590753591983016099169489751571262670168508509352942520450475752830589198302847724954741497199482793946132251267037030857717145876786821477152539189951836447565153623620949932571961034516175904457010262996439419947341294567149852782689213900409004892902608878094848908028915582970122458394328720314416972017964306355845316622658267539950032323471753658903124671067994321374472915403627301443731558514281056848723850767412355581718045992885872996954098986186640248685560975840930847249449643158569632617467196496326393716235485725383547011961183856203103766140589750869967689107411210228173494637841971155385727526973193311836150573148809240752182234615243582291378844456144310433966198518538608001087737221860475703444066575295326826941019427839062491142155361817657645150670497595324641676130136849574025384709461647597834954217532883076912017350753069472425508987965925379392886710286177899894258583205635637865305786285556017657363907384949046006261259784351931374687026125881105439030851423041530059613212795460234204445265706396893062161940364742369547383245520282841714918316885617115528953765644372931380454228883103755557398553903105461634980564970289566727264349744283388666195432828561642900331680021176158906333152894515587747305838289963682952469408086012713556496152396819891828096809948907514257840065890695174918933788713073678889257417258539282211927015000428363729133500981567960194470508989236758104405270891017378008228122930971516147290614346650124866442622059899398248022722257513337888352499124607452613784798134648101185297775475490915903964741824504536720696247750765658729479348821979219249111171019698761484707154752614363246773973204616532732232925138991032026174384517108228208561004184958656140648342939985207917975985589110503261057482780780001823279509224802469015747235959466420264849213664965450381592196213655042630377118404829437085337496263616631934690672192987953572459063724312306315629123902054216119744914302700712105509191239305333458585939964695550666279500558166172248738642990373537711351047516177699684156730695796184252888772636807121914768196789324182744547937458450931267609310314334360714147245014070889289991294253900153245332619525960505639652754017773830212333743555451128421212867324837189092706982914183113800186023687051556508644214896810648413829689341259568730235940695019053337715940733666657764558361982418833989398223864068443568414511852626653104743153643685785312769320288752920655420917252851060167412906349273375949542088174685235284254270177658362909335740236038229755015423517640290097731924674687792639067109785465889733315708238843869091426418409601314124470686157204807259373367190536964680293735344779201718152759579733310665051579096054689721742950337167039370761686825625848258321988808333452909615795517876507873883826201933604410829499768850313786003898255137949081329174854240214034950145390131471907581144975410410392577082486475082920845942539516463609072496999789703335035469706289670408580054298570910381313666219418208516753614864692504638839677411413677748945401938335893861477269282129051962272881021000712110560782033782345496692156793806548184456197116948682408598188042933360393422662176309596045293295653991697967903957099246145324642896976168235165778662809298913980310552160736994176825564481898967551908871555252133370243202624751309929880873390753595413662751561132347619195540332792935348109314927785387661380976922497822513042690433228548002288199541350195543812728848151669512522342122938666310976932567871639590222477615786690021165085476341498179505886094448906501208023766206346455973231352113112121189980594086009116580386335960342360205896575816046544001574813200431540946559940853103801659773182459978787719228074944190037611947108693842279589174780654878152377992955069306079236633378097336556927810671369656324242464294280308253129567584510818364190122963323752687398401581087634740904802600042819854633399189357539997399988901152695009641523621896361329584746275816826358416048154288902339181477090843132032199488306406098501923699070326398798420511498461149855558445344362828379738869539426032598558071518156224369122998210700112862005182085149860933753031950887400973308565718746807460494027121367026811736604499663359545774913356833790261318512634966331247456778127968040874925211662795392315616443122412451390262154535254138644191911469511342206390045539720320989824912700816957067566837052296542344267105735412847400267308216461693808150113353812775614046346622975271247361306556883636236027122117156071664204689219111854584656849336823171334094818972817088047816381579119511436083253964119724017019289811534221515660655977541244284564445482727139188208938725768943483792885278530272972150842902112120695156954045884823162147367958469069474987460035900541963500413823558773377465361059313229923232653238237307636932904149230934037131497847614787501975162224510398962619202227151168950076683635461957146057387543243886501988613489906457428740072491516986653037222956438811292162658078279308983224426800819147491008818531178776067358294244626718509778805593838712973385097664753611243486797697614070590130903256007102886244050610334000309469101149550697615511003574011852861491965835541461324763232458007086895716174066819626374099306571051431126197262382921066132512738846321804279623144611470738903538625493896254948526600420333239640093082722172362582712368942515711822713205999494605611464245921739222500636745541540891407729250151069178237401421521979419208787116206787433463126499605696554050208400475794234830837251938437118560107233284911210535173281521556434617905095151420435042673565622049014150236935805220261996733208061941428407910545846133688778993366301599156305783518986379493064850966007493556875362308084377105825123601836557666721219426695671635831204872635202160368442547543586086025803251216592567750649240338504360413507890624595351835710514324327208976830605074398782250565919430004616301969275614753599715798486828611522042987929681039653600468808311315829916602182205318748108523617862215920835295936752748249701586451093407775659386178755829321852727866535038266965096999926544672651792670798016800612107649509601594793022762208923510097449513341653314392890594823988765610173675365900009894067099171343200386784298338192279639854824963886016808781292214277404505631100464510603685705682976731916957009060685734799694622654421059010627003964404919215033735635726792548076478478191672517391952053896079688813012683956365890428745393254536174598570291532680966698699985375566171557115156687665845981289057244107043435975653260691213387340749973510877024307374862312044727960869505550327944769282816524514117807179868020130840527162598461448308725989756877797735424513840223644477303829862861697177508768708216229681088804512775625091651355717799642519186772972701384860386756377661919681750945963785722352766388630639764907220328582672604066634543473952756377205053598452048543085573571249517837742279599909759079825752687705004045038839843492109665473431814027165713797872002182019289829429104907784241684119830335566720399424619731915740281059564634625849175397486982871971171121108921996853962252402925524584257157729057498045304454866752739941427278631460338091676056105758637084152770622326973192817764473896654738071430126793427049249760215164061672852879053339030014875056252761978140174781056908560089512497291806225390055835963949212117665612611537733026547517553248938928030085509400761803736788200438033991116669628067772512502829794173201380654217165813656519536280222027301057754732918736758663546853936124709156051703564210997703951371374620924202484761300230679876340244268912851889052503504182008910886200736236739520486096368358995293008772595376559720055197013473248812130534651122995548198052576594566237611621258684930344218433991777806417947257431217158593513713520750151078456245477046128747884262784493548392351174389535253868009908492260463433151217881960786506335076008626355294198856309087755831774241548880783967030197482670966800033914537431464427596594387863225010961966560008066405256681465255813722700548670629815438448647255338955937649802058914229698279551490796176477838218146032039315650676333844611333292684871535236143646699986645731599077496773702341814867771740523502222305985259472680004665475865679359280228792318798911497523990511125296613709314902094323720409371925746437752803707718008113540853299901920129729117106474712973738773249603621268505573790263076457840000297525352428631963422406519956541789652700005583402944937050479956709760486809882058164153568474652197764488766352098585356238449616646846482398119353767071368093291905552785852102301588062453500779041898901983954666455954445997524641971955162967150930911290166123602803381667323298340806657647349493894146699309306433294452547162926998836546900158258544805994788832790658555381404507377126386073821135747121716354161083840510764248783210572918037577271981804643714472515469611097888727475585409966045361791207444327083312786701446734795572672319801675119074183014700137950622171641048948935482979374224010709184356898311318263740476152373769604965510824883636030880763766381105599050278199868179513000783385300033397516435175403284779257044730499182531568019164984549315172429741598071047303173343887258336659861760565832887267653323742353464762841875622684442372826153149038414319581889741793490748341908578639535092687155160864960947493355858979843362206665139300196466737212583826162760091996951326956363805315677278425069475960693862897223130235157573440035196261724436984882471664789755661186361529572629573931176077183516166900860850417544697016783639598639705060215202578575520910431187692516304072282473314234354582436010685866469008655832164307034592876318750808262497460594600153055915819479878921095005586392068483089535398217609845259978161179007601876867725868963907596505482270170960643380848200349483190626831251525142277262201359513621562454146884950669602877276731707703651770289848095107429457446218775386029140061694869331578438125525394227437990863078731251694630169140425913149099323608446925120943959007096935809225237584993654302243906804496733962296010344925110844343415656533421168325111080527134083568029944778733957741253745092787418214227778033933408320530508683499121380093380274523595454487260103196560122002746673271301650900019207602653205271323156084548514773435889703822682925971930110191137892570911595357387247683704013773226627491391392275551029653971955365748955892319471493629687431511180216238219053203530574069620520104188653257067980058043293064569615922384904626444366793806347267960813572758636730807151191502073495341608417857426225339283671540314443663163764666597918804737883425435460503582320300037658038492886179047208235452809672785216501509074264980905443780722321749997409540802458269069151181664725657461889617299781240735882576425577110757919468098280897257479975313082658821130914758090330527628322184149325414987385955591963151497379095637832895413931335841313894015890029827860477589196025560640700779714407667599229798593858493842355615132864667219513900480890953277897845732430046055098294815447381255326985152597559438472418668010473082176836296755310937100908867335812951842856204357549518370218093321338727566030025508771052958293216651046277477001876434495633324718094050648550633619163935398004755114979666379696791858398565715541970305647807451810290791731128925987739338572896041535762843045457374849161474720172784427509280757247003660277066806843421445630060032028072929696705095584237781920588508243932252069839670678202600906632129661685184604232556814158749812126816282115929927790046220188283221069802286545305282440855441296006388552806369329950282639487862887959584426927870442041192026339614162939606562475540614391870539199788691849409351954807983503140645232905817968494151478033903308621993284449519541070106422820185633698199947249017363907373152873136457801135742873528029663996138226128540286642912948125636975971520804121665468814040557477627716815364689612222844460107555443918691119917399728750278729440199146844255033000039891039916594912912344603811032269088478127806262466460990733574177412287871528240402834518275032313546864444666024689343668004177360676450099213864217582160010687320688447433311353285653087781000259995175364563580681481567654471336796641395275872165759299134893643292509111529953769193923444490458542551752055782582238186717514288855939155649373005140789563244470068947048811392876933695040274168210286756733777604298077467674170600655689252064086090154459462435470955131218445136175157613864562887445322621912050839162590753824290328891762289981599200054384132731698698746644091722984992008754636384128037933895391783569489366946659481292707162345392698936307234948511408050178551869608716708239091233541264913642486862124386781191632230008169453534871642191235087555234286129424122022599493598499434506873470163104532128543376788597712112175197375321107816438272254572026401313187888974360475282514732849103319409486919501098908723836877309870774156323962909670583298539894049630293634090297028045102949041450547298727885349083708034765261623120694623703447322085765950874820894680528909702202644946984275538399486880988277403385913973126221131650047628284550409131107605623628274229507390723529828875901478977448244791049854045416466082378229446196769178238710102383184547379375341541609889272551395195622941649064206121729903266019007754269321738504255835439098981134114080723717393758630030452453530986140723638925621817954130239923051523084554748962788596264870357394215937507446060894406694790092436368620209576365641015608858411777004717558577868464096135483261706400248603814019384940964203134576053962577893766667722426319367779147495514743319989996833817569845636753580433902000076418409291539343185817549566118578620805432636374904547180221107148946045167246973437122673264113024771719783465952318589252686949647936509874341760134802994575049108611305176465542023249901672796368464534903214341770170943776268056128588207402760452110769004485101179080024827497185438298888069177136331724910449285364003826945415749633225361053881732360800513873784945615706983592251511131262929187679614745712155885955929485873435238096401184709791275588379568306796751317233971266732971057433044565157462095665694298777110563088058801344929920035705441076093185199688433015872575440142145554358119358574328755169179728480112384223072237481765957000353512009837490646951578620428028652349795971378361247561379100065513512232888039022084136656239271846355176190336289841684329299660165733574362353988347364269776559162315623960892616009372962598244599283460730490905456356374093327159940463115942543354465559508103071985775238189084577153902855027948924255527177855597658630728599678983711666731625787174637835937211917317422297412854183462986219281755562834896217692793279298945412760012143085822662115836444469557638186839729969902395894778176217234011911260530590790338665420156824213837205083091398282473911708417069568935795663517430463441866424422078980433487157435356950607115682741327697263915906462296297463531687157414943776065021138016012374776638730448872701712275428145775405186647243300622436315406218464169084121642682024557957105399139267530830133379014556766063651908718543863569875841047856827732103685389510390353236840632544906746297580109683362324155723498132531194344972255724099391704973061040269742380686760635182031844652810968296599134601567627450317588948673059456193031760809151715931933241384960189213805730861929344104578121988330424638170198383189842876027443519190250846932150548465934069498748889762495443758269821990767584160774540198827883384190649707630931034371228496414027153877702969972596824945232839739001744620729169202347096066989358996232851056879767951189549437179674707393186022477615331105229527634850745710293063573742826985343519228366437001809702322144967359959760929499082606837001262642193581903667711801896005374940440192105183644122437826773543549930861709942585076406920614530362076170284469049429940238723780481329610567027888285707056537789310468247946770696973027977389877354592783993195055669903323420965302876965905021979936085986188406909737944273932328086318980436779321430857184096364332484094767918112033576489402629985531739038805109280903495155800331378829535065370536318569034177977178268499592797049227624030818738877534207253689703472969022800405307368151324894890820211977219551761199056245430808207743367974871232036269246828658427951857658332793703990059208724541994109705765042270955272590244194515270309693356224665613852709873925685882210844096629317582686346274729694014647672252345745338348762397007957470403257392107424880356339387461030105162193104967946394040775336640572627713803897543470446041198535172796164342359684605799002171071732426405452592274704187504987483473377546313313708986154519802054343567070392799620770901294206815775849282707597168461217567490783749616470424673839178806412886359406852761643825944163593831965275025065294501736087483266320126516271525794075407160446772078162779369103563097532398889062602099826599335868654053940852527942387939934474199134746783715250904709861401064239623459698411171444591490008635920825250660419251600175175988111862328529460725732679600060163771994194841838122295911133027339834887248678756620075373909263841765059281474484790266171816390369923103235026299036575401437434435230558188948645240870163533523884062734761824136726082486493525605260131672647854535419275879632362269134465966098174862670434884196214265995140385344507493047812930522456482161170127444599860276308581249817152175909187419909257925510842219601688394779801309996069325956473777433175768332340652406031647048662190876507614357845438179196214170032431371896466931888634325213703618355799334387222040834618780925952460981549507226501355904315437873089151969749063674094045272715416202736678259391826764017651006632107434450282283135926758971645294646277856926057668143372617439607349371006095029220129183895217882177209657028231293440197377409865742302138149474361756630628803196265425220824770210507023388699936939520700349194281535788609414687376245652135608235892989605516099704120500502684872441730481149337697850272982097363872425237763665459320314199707212477091118709154375128497980370529931267155162982460266938857683387045473717845536554742021941200359110414500268854422737255677341029136807956312356156730831271594779848404910581190683695327900319033659247604772168379078876793441256627716091659172288713070358653286793170687282353341167126147978387992588938751286374625178348838639690020729436091303155332715647628627745511679675398064271953726307247611669434107037190727365008455048137450093605485805589239586169711820511290708722095809629154724087497024626500250221888354982864975543191300387959958648118599190540342410929746509694916341980228553634583199871088936599634047882646992913880430278707899845308685426521554477904070672449656296782230465060618493637612870320494954211107861125878841831626422347666031149998596104803260430945327377221235557369796580500408336333104538225081856805379501690178989614661040379697216729214550941448917053271232504222711485847552536446876062296231439680918770736975745012429592269082470964905693101996096594386921486721155491429183243173108145492209645675947856266586361552026679573386523338688207944107256908169530747867196600177200121053392369273144991385080365934687399482425144127239833376773292212082102956136444861195934079972877858011611108124742680478567169167842075433689543672485291437269379058016130795294678485221303127846994034455196525233884584482736483235768397146703536554596999533071974442310054926813016352174200107079459633767952927617345827752171246855400366708450954672092572845238928996358056363846464441226788807136716791671858659552661983572118717487793004246455337524953938087733486505274631511096520801841049932644205535252143218760517163794619357949259823402104791554171364174491328495666451102033794982649262401711208375535289407496027851577756466781202599199877895451892311160889232592297418004569567740347111203486345007718051027922202268709075475491151127775022505631281852062285681607459979669597341724153283588911092577696771569395737420392996100986656827973598927245037138226522075903616522867619400890079014082485942724546067729697957813351207739692687599617944456419469012277759285698952099859772911534401968942495141739397441928674741939525609857926205897592548554217854539448613866175164768542289830792464699151860137186978023662196211560091266193941447872105246873593570006845946158741555751130607777347809229532431890793528173491473172774143604608652840783257812051472525180827769807357622608154204897196435528850546612878841145082351395582521855032374361662446766242587354726949659824508681662871011328896520075741368711766148270981605824772548451338231870101534642773982798971660164306567822518578886542195622184144822673033170077543745346937971895431515018573212126075355292330832475155269129357495171011104242071256720427495232149844033400345657307434413982725032250707629662134510641515115086280792016494852816174640020472564445168052171975460305488230896437469477652867694814909879414267994766273473480653065537490476119053303559295978393335845522823472906227305999639825090033212400761344123734845131974815385733379992632338844798611409071866532052399693415562867314430338080369194597160921621776854348389446917777526195303188324600450246899787031504651962196660509574277416292353472748890408610579811718996919760102256445408496193795748790711441137832760694782298776363609466751838430167504545794040861154556024578220789379117472511097616732534853113600190363858039836630275320398254393595876136736607113037672357528568112083149295770615547360424387883432057102942849150759630833589362738526611087092669535419195897731968920897421065365041382590622782074734380586024216781564093846339038055925817115191677048021237338029721318033772598751013857739736725680428828893472942820239680160210189961000637068740403626220176849224428978572261459338209939980836428856000040077206364436967523181835249433331376109790180495768913171859920182749035654846793771824073489496825442944265207169731538635153365928469129376150163750581429882035802870828596146999109568930742886175533230652578863662134950451231342937176118012974922054240024507534513077438245703779972078964871558530885340152536585638408927813622295454581063983422534552391493042306626493862929252681659951051908853211761509809038373410425956768695206782623740721957681721770574378600484603411428078718397989149604307058323499084921049257723982614498313454966105901356626018890274018045162453526451057471479185349614458081960697059124271562081861582353532119419773650779604886615969620473428728143773977371930030615627090771088969637078503409380906747219467351581302061559001027576580334151426535027457528593134629119362758263432633912188492219318339020647093954862708113192741433550210002048374430639739777614965185312098512189262311074818769213204635184203390366020835227368234732076787284712993673642603081953154241349471530906050311172287126561156634334610090565903046033664661882066247017825119855859495398452462337482840928299860362156943485380648438972074877615849062122833901509834946854390895277124575519756913135848180575950130291350808859486661465123146467640672591615338346726457060531855082068944374320641267194299877427819224476617317367930934589894547910405289652465985439315517067900527573847488646530586454560904767430834027659187104630083891072383640932938747719362471734700567563766913496276235476890850440799970127500696821112156724984572613460441267053591850713788404254382811635691377671263226955906195714777896369274152833130893459415206802054008822045928681543268404024575040715417415282859941002773083567770416092454031597241204372797814225271406285830446080177963658708789952055781754381009469351992092519378951401753542896359981565187868401409507505142580371365513464280457042630758335588686578276582851771982011070804811555279623093323993619297871374826932607999810002120769174380167187444482940896218608078665059757764909612182456260432126403742560623848332801045356434504496817658371502770395840027767337777150559487915342919353380495412147884282639024739807972622082463410760095278527681082326314462676300449562395425838033997341035234960726867212465085216105410646017800665707505611963790552772494206754363827924706917371913493122029241703664000658568336498641806149136916615309867843586602316872851810524292466698161737693499089305965427848718914608455800277922287418620992986886966000667150929669518210858629645734857803289629631363489737868103069706263488891893603694562624103167763323432546495086430205001083329284190021845452945840719124124553222016346782382574992850673162613123309448702724746721509723508157845859104666474103008785921317621712500252989320290618846930113486316440243057495214633376253004026531364071916731164977457231827417205979489781271757149645429267416467478230766667400915778341670251530376005204826246526122006892241754485334321324708935773357360254829650996344505311765374237120989745737171220913311709211962382243077381404835498777624020485280077193422023546403209610836758963690667306893232598500506199127820699063823719209354210727554773026628762281831000637679181434490769513033588445060031481890264121347968132425665704006589270110606366930152286275891151135482123098653212538827280139137955312175323215124513509140272542813919236904475362152124894508568251369226646890819157675615393654705157531161624615087650070355041769050740252036296587288767500690507527597896479323786547295301459394393469226471956875806495524524762786259160101615456461009809336031661681352388696966457355463533069784726503931033308498255824699642961332564948651302884946891783291045786974137663732888031993591444970498756384905011707078820030445941412249226521468103557748448845974917634623674027395638810014670647147665382527285048358007475539396880161293582499710964528832405768570971731189495005428561761186221368435395959051483458042809724450391120846894143088032395365515516854871559340607541067972581897995006056955572965677094013270558529669038835169469277320332461762165478680356983237429649517145903282507158536150039199916919011578720241696634575589002893139184000794782417660962557525846513392458510498971058034534736671294124033266065224742357419528870107963263838678683827873916851510260587056272309900432790108407104917208041666718811926594181449891128019511956696018653797500317051164445337138822627234913474552186103373350973762681679971643853400646555446577484720338336524915017792252029879715649706341875660512386078487746690943429922253429222980422394613432039350652013260489171184268482488659696081674327052155743897219090351455598031174251338145148520197835619600408314083585777607925659501637388122540746930092111919454598479066413368568760643705646425634705079838195682476271771063268533291086664851441794341990937254771843970458541261782106865981492730224862250246122971518124821146200943637479796040051391114498387898854850354839600914468940364635815867848307862391666169639839432334563889535765738834940944300189702532079672196822983597312446735546094485850047659613184249210558484448102427480309821386914432144663877407803450148997779855067605131888457680502864477713086036046084700730410112304742881949679993787911382501776150011833130808839797624345415039441159200443640860375809533196533249549803016216977089677149992000663082809797488539451591388790799810444903086932715090403427187366902776260302489929867778850060430833440745822107010953533791205016530078266692851586152662478220299661599865113857903086922424265738964772600511825672362680235002328122654274882408783931257509571949038048421236045967133659272731807523125093244541262055462097161380468346631450697652401949726462294969106365734168135872800381977464266350248261158403710336006991449739078466980384281357218444519113599426856272551726752095613529544050287904691607774698760496433981308071428202954290215590498172553392221727829120944392207947500942347570480455903615572488264597067219793557528376221715578151731041301065472549974361034535219801522379816033016079228477248802241162143933064086894816346740622674412518241826640851165585177609565572960843350406067008947927651552527702499607976005868148938237245701417666670625893473850650997372395409776874365269656290363076962736209744737782941032109468075993897185585941793589492808225478875294917296655917495386423588239920368659115069130944233800562795812742850354573553313903411402342468541619436852242744668882805010712702836949846378229941378682012701246397444735635404765297723731317360461252444957377077957448186077620803765379110278421327344618017988540342724922760991776903534334742653733041718497832262355134761199658947945732907370445170519886679992718657750316286934402568685549590406946465477976629349946574678455364415339726025002241765518327587186541722678257618383476379076877846204398916691019141030633712463611341433246506000571670524737314328120674923339615533836797154101896578423102975155379740228315446925429488877320493406088662104437364292256621701861822529952267373632014128122409752505857805160668278990135327344237080020177849041894000808373634893195889077780365685104783280917036817323231021645284263794246999499376443561230865917968344748447628129386855373277922816141512866063306089727700595822375149460294665904849351086215196592577395451307792995185908131346752106933038302603717776398374893906118790668875603566897175729033486477826562951745632218397482749635195400196193519841788650207476993344269899456724654898133063068364453660632372141115957292702710423607171870770210723040245363970432141086669655289167875800435705777045317439387077057436972801786261893879897723795380665399729467364598943372860243685167538686861322592326982768035967673279368378484131012056467631030640147783519342150306476481706850132732199340176441263429483438865778122812790640233167430191842198269480159109163426729909779497812846263816701874649211257265942601364141743486087034858722612382750437874777580870638947784823365895404077265337960472676379363957205197762964448672664966069586937776590878142877199648362601278279290423251668736830324150162000338681652847533097088168836798085800032478894003076766831050848983421691499784825039604149985229681612173880610460224172695513379153068255609738722392559231991564113744055796022511900233499069040905374654416727400040748272922926694174332307971030054065555388340189697381044193602612222937540567356486353635713817250932434967324873456467866257580257154031407335859158600285141820500096505324648794532913902933296730199912202304973865911231542227261488565649085845180544349438430872616193335892815602948108843374944306458128389231521224263528859516173725520852504075156545122078840278050327822128650100307519752214486050235433025514262361542327553093536762692747496484305961226872853762339813426642579877524052524575653698260853429107768441190244437824561337310830450293747756492175851393033367490607946516397236498116244515815140133272179616272994829496160879329248851756652756220828847795331607498939632129167852275960965988614591271653506125171319487054159310482739665775338270881194623512869019012992656501296609493785105317749393604125537037523266418098687251140061408600815433615040552174364766532601086709953410527808775308270394007917703227949636770966929110569380431377886081711830709663403015720046490324435258405082647659916934725148082085789253131555833751934274364962990784150245787931411061501924303031932231152527736436802704360024408105282362924191583105024043957922256313441016751872884393572600348008457597724263713885387704647483643905247100993492337892627604871080283966282787295188695785771379847914822220660538568570249834916286095119808233944965268119887309998414805446204589370021783392402136490652742617443963990545616001399469068310415488434811833151049658128766140700303877454204476677047010714210716710601293778776816020547306731736186948384876836203043857886917719151319940735622151863452479222142301794752221706735889532074916471228109115798094336505556396413685901380583706621806028931277710478188723138819547143125046011040158289890393664855464003442566147566586429925216325583606341833188624278757517728105179251989317396054364823977811562575613703812841436718572949601123386746897548388598402721417500077983108352074600986705448419010737373414855419418636000926520072306710684934192358613380181111487797676613048169647532936983328519102103215189729493500599406075829323870044619415433475408929044527310230236439911823660043157282028087509295108718754897067605152962373733465762383093173853082129760981028244264265213398526994410674115605036539545586070521171363904541405176304572413606369870160085223323639524165242589662840392192946889969416722403201662439042234081441004343677683486302492376225757274773337937292556798897561872243310076164852911115610408786470977303361174276224961141083927262091070039086116697324724233406915169268359105634181300092353422042239738308064584880522551235747889683955916248110954466136127674321211629737106690069290926230036362468490971668755797756447232016477168468034063918531967506954703942376560146573504914123266421113190750284084568410747577861906544851252265182148149038213690651329294897050957402866006054323053981731960872638999292962028468839002242524551803579442117079481038616949857313413546254107817631129261214371703904305521342567585180188928878952849273939733717601994320682055978741176909797922139909186670359780479753023462751961107365819007292671627135903482487068106399240342870206107941562877696736772651992046700362133864422276081762833287895872411908730182550164580952523873133273602608872468242394956654448245750261612132784481136978916012099757138589773656248755532845059356182276973514779456166182224494541072444776283182877154596914898444390931646214284205484484918432806405780066292398737525486892503808017729390459172767030060671867677295832813611800178955771270431590357238177292179641330768985440086713015509551071222706090717302289592788053346516958486432134662419534189146604746826436380352023447051700721414097831002892842901708051736804955975832442063807554799064569477052326867741307108413946085074825889780715032155933750593941382768363715646776156476584032825639397683775541504925738289491356143896828015370881120146655758352464422353845599486093620402170462901459037672331934766851360970295101030994798277623845085452619384754777191022071332223914138604564925522802007258982445532378106430716653934932738340143962775732797778485013032430572175934550095207552904682559303512832442028849548647343199078472174350644855141681180225259030898232489132039388507556445172915658212889043386769217519566346111097609258672794626324449564896112708694412804839370663577477592525505771881124922851652536819437441421131494768745828945170054901797913303624810991684597399144246289024119446390032061579961437153562469373015888323357549049058824317659173124405562014440863909289979625112531889513649122609642484237818448536221426849990302283528924364604101438221380028327766481781222999544895686893488263264632701385533013485007772761829536483471921282961244072841208532494832949744541242652973308850084175381459898011226576005838077980318191496895656061647003828256416252533178528676058163900316459150678344689129875695283083414397466238699542633734596583007047497324035963007244769715352417904077936964823511855191023597142550321549457144644411031373327217049820461347597927818760751713538544607431089676296057481771917309491382471738147685763068806808799614640079570912859430553172217867741009141200038218044811215110222568819687259495786360463707483565371307040384079004196025579371463513961291153588073897951142462413769002166472167618221205591995293281743743790616960221160695945639486317181431670866236754952157500756349872371829470298303678738687137779503470067530124897907137607207491335595611661669692432137243282864176349964379215932360563483587345676963245147190597383903329220120151982555927597334268442685319225919051191594114412352397889018134295791409041379532204025149837148126802518603370923168317129235252025292372940678939170705009032971128909130408722606114917615976388842405830165810454413090517763558836071607326707510965193700360561359458049198389905406466360958239799386405654374251884443946566381389019734615246971227317605719325908881729504284934100810270086318437246287634259979516298798058582497063557639571645592168985159655471610221012014114891877368486209708987811192042175344121325452474002658005058295744031374928423588750636382536907369473092200422880425147837508340513473394221571322345990556403545492818063608973429540149406700463414081398771062677036264153611949326312855101891949698880909351881384021186758546072750688741314464907162836986554231406769429206948696683040302330373304433371282921912937203532968282432041134300415338733002078248208882694649015705175580046073031020540608232030832584875758567983488767023518313827179288447111037097747863423909023239623342074343744444555798352133144371866038193197551397360593047208353707950870808082235655624839879449597898529786509187139201083977143507200163619023668724465294660097491908305047459331947688785987386583407063131357382887915279229961902363528922332321094181615480049569473702057038411249350783327249813363921330972905235787372566786151952487113924761692145397053107105825823040849937515338670833656361930416695635652321366971269997154846497279725037183632896479619902293216994647183850291032664250401227596680189038566420462817984398662392946303142960981811868017644335792804505641342285145049875572050186285960908328617744403625871460918367901465544062965587200222767352766922201900655700230501559553262984617315461372091698727244781325648467364512255967103726519233380689826197058505998547198584575211561793709253437209787676538084080376924407364078693461929297025284323287985540043388762239023179785858600161506308076723493270560379113089862554686458868105876775762612681143002374292504817128780385756428060586163590528919420899373813412531771790257956513010798194262868411524792584704764351156777615314981248111014308418559696806572633683750006965668812798585749335071272810994095580802464417330795161602966154852581769203400790037117366707095626692639494758420707846859777115913463714514328796342309685933616519587703009906543746621470063865769265594729067031028871681136007975834250125074738732479123291700992394332644793823824591350100978916987952972210640649525059026772534100035112709161149798105431834178903275110095776066550622095286142726055892748132656732269827723499843981667812176778394728752379113995026185432592799713194599549256927074728922119229838058199299296983537708883334397473023819426992149576170683567072183352788816131298030980948409120089748340585634702340913329703138888165395175718768686739888672742932402661666599454663095312935183536108152024337280517535053159939048417065695848300700417240719485359941932791565506800606731150731002311662612762115705298079776728937059436631576972430029090647581571797004504800862437529029622575745122339387528970034317691659651338363876327075782532264624465893643551254461310010063903266889890697830795004676221286501047923429309958257553055259535577259647012797204509744087591346502738101177425451791951710139358965376353242363352151196810490870710026338620048878624013683287923698494768737031541645935316036470428649323070671523060113171119917642122214986824289758088270818673125730458817586167654576605700722568994669033868915413307160064884189078537912336354824350120413648020166129223918325009524504240640825986949997010349562960533991637827032443737037058359461996581378602273186076227052656773193007430179726378010182308583601034401115747589543684462995744054150196802515548497763878564163199521038927813330089616644542686533343540110239400208017914879329735238559457668800611246227267123709996924794120750310587441859936285283831122344147321228250441717046988202220250331272124385813952456273601025513277100159426350213125718539209818539468242297431102951865146920505249466979798747742456282150891314326953368587028382858036424955550705825971532444946837056115926665646432363788663368297374127324450025751341847218406976087093276392603796559010136573647816149188624984015960577790320994085419722174148739399117172466446223576123316311387400794155151519942319006884343113072666581770229558370997675929512238684534312526361832434063563670825688374952134504790913875283130125178673414125552245682800722428762152246049117399328720848528984802375190623327507734475640014139869611622097434841305506464114172432711831285497059259958737048960294825131869825324114510392829520123581603415034470319671460740867148452733448279685271142662403187896366361432867943586384135396317824534236513248470039287306180387069190002732833213480037598401518411885197477715216466779276975978971732146416304012803247717951652010236401404144822104254263451651090745691141092982987508746347700148900260350771271325722002275791150664619636430547498566771463173648215820444040813992684196146390541030234008295345177943748643690012131618594968566303332589608428881225551388566151894388368627571096377985750731986132697799726248601876115415571702917792077787944231112883947285582889150329613147608399875060440642275265727971820241348253895191070165089681845140527477929014503445356285297350663091117816387662895507348930655463992576758810350204294205920719319165200353313700564316719678958944474268044588418759712451708991886108249763851106041720077433433447289099287892244111822826180444050418459119360450875607685788797035766604602776077887227100985795993129479714299953820657987313987123265834634928455927847779196505281891131912568669915978236679114815687665432552917241242431324181896014529406988522972906598207903919391572254529016717277516018653987894621623957895315724845788212042056095877226670986408299889499291908069582371380662601099111609117236012719775099830667157324852915797437198559409232397596869752488512316843652139491004204053006815702231482530427209693599880050039363284724229637816404834241238170110436304003772610635858153751500396444373272315185509267900412089113743982883285931963005926201288856411027052612598294137923570351890166731823568059350187616335354189772156375717563760548736733902128954874362752177469101621433516295390907419726003599678446554837947467094204559580611783621312423035573508245504743223925610147125117940406977667473543651117486839904819661035917991308827633211842002682919874194848783034381936498444529454551382036322003397436668613156983192658520607099251017898522423815946700484697886554094541767855966030200287340345178748003341120443528348387786888215599259184902502605271412034104117688971919527008461434813951615781234596923610417095829152853837893874799722486982159585805231304955362025054513249451369187515191865440786248250518833013061185800753250112737467016945208559642643625776202971754893890675451817441394239398642920018872648236725273760243225991532149880494812949780489857986761856902267559688978949106795811546781411740427444628895595543784241142260060634544965245046656373712853376247017493603754475678439024061497363716606312444811404854232398979318297102362490532527312543611445692907872099901563544733047254077514058438960974911313341096595408537757960127743935670665031555184515902461952159464654248425540560266578593642091818991181339314776156449554090690113512889406013958599713581408762585457559709193747034575249574784254149496602308605167576834503534305218645530685289433078149501565888196214892396515553513261443861415615361383223504882184358597328670496589414816478886348925144188790895284108387090520829519896466297925344739962684968774047430520269997541397112739088997670441799047197597073925764047868292126309384288607630714521829555878513252028669370084051565721885227206966081282205365304247180106847397139121227901036792366076345240119499378937316012860214374748226469719694845540871826258367297489253176610933109615733323436107494126689769454328427743876457945271148998068513949493778225198647168375802303712886338741858386146726428714738262039563380885522548552764240440880072825554143720385250693648172796072813570290692751224951331063932048256278451217767739797406626842072611950669562868137530479932913983125101194516573742796129385614676679313215275265555767802191644329125114085173953388609369972227810157112512787525690540211102658731510786391912289004643839657884623137313409629521971912300135118928487696029622215935581070658796700717817702748415781016053316907675317449510283386969035636204994491716636334179186473394523466519148158745176874208213603847222078714789951912601781109942325281556913297532369475706857809869905648462171956898379583767248933492575578566751184411379166208341011339270874830802530251807733060851788907728658105474333645613462847360518164388730889380831864134887430463809829041072760667913489895053171086421195684622850128387895305694612925784903453419659743916875525185301756057022117418343811388377199752947114489599453800375990476738033073485163193867760155636357182379529961390387591491465944653895285156956505977177903904824724170889807700907844023964580123806900088279081178698282080817669042514974061441233292440564614549564942708023602562186238365080812569656533015415764409082748022104958755615394043042709281076569196290171106208049625535576229948005195569527648176420103371656106067077305733883477198276428567917561918518020798404003329589213972640145373761488841630095988934651197298955782152209976444114310711797752062702892955394672279223697849247268792676838546160120000308647143027234233245084668135901687705527436768256317521322283812784626553367367287121683371716266834381995141279246493577627936202813139853737408803375437608428250742791321281643221220732846064656380013874230866957601147883956309793733991877064725158880627225910923796526857260106271804296748977731165786687402305047310663763262690323318974082161133836102631513719076592451392735007262931309421200344090321441952199596723114645656721849908576496145975932100303781558607933153805020748671794518303849626774926922762074088900456595415553948701570557033334507382103083359626416185548222458645202368980679405404316595071984812244761335930421146458608208485099499324615517438292180024334119463181527388629538555899972894975780903710163196909950582807714591173830959311284958355925840451560394936072711189903359648458766528456673595852564861676520386141960246932445365716595537565171911836684540937570360790784493755225405992493764863311931662364713955358509666740818428700544391068780057514241261683511147512920928644569591301674528117005120109392383288115253884974332675274455604813767887593298512869085906928901340692012100530987091063080265928966962321234784092016613915110839965483364915787580500890102589052585874000232678132916870416401469448064784277426579302301672355618903892888828282869567981322242677017788817005415714429500816312829714428523989209809549733287327149543730050290245282801344738761237776923484624988977937980969662739904068596837057193174696188976421953561972749914809098064475343929974857176606433291959600474183391838699528225478073868595399013189523282293534041107796815201604811028577210021559302519845763551133558143266596245772149259624721163710232774128176109669380535900731317130635150782060826651037681711139797010398506078402699921569042368919734617859453276735953089608495801995594520208597851031064970374403263885890960760769553193229913117657464417854473405534758092842180239718492368136311241565293958834356827644960615055469945339982404356193702174340532502047302504003388755725540606820081788528385806770010732720161944817049352347910778150265366112558395588499741610185316520019636393970474033183154797742527529660290622006187464700575831057696929097997092606274778130761683922355544534662051292267901474010314567009011152070175202704122019509486299690978764417523021475464912149530684469422555562078051736647385462507490342962880003609812408172724277461237649419433999577730824862545486332479051292815523959964963669162035134258500461183696184108174860786295043012139590843485552923183543808736712864862557726295142354646684257682578635719526713772932190974006670970479768860466070677699434230535372799070522947001774196242482877545456738111556226757677620002457738306839559339455771954059184397161547988227335321139575351520079428093570000105866002457383160348979915272643916025672113592380009143050847696904091873933373123474590641604380416349435479373071565575291018116099001797462148931575465931842712516100918216750766017545713158828591433047640775877259657516039359201949560836997778544033552499579318297043212883427116876484921041106372605155135527488274689838929164112636414623358853059679853438555224295920465980980084037299145998087103765574136584475506388522048444499835202406140656048776571733818479389201962207774439400572222289669923455172494510408860279126517199090585238591834556744335041236912239563183966101466934558090670088399422776306571818242113333412855277846180641661518112385384436013184851048961650082297996988045678980924077048777187819909210639464583152842693787340299952921809124147926184069294971162761311835140967996747892933688413541702847814915294164034547081747881625760326823135184587419047236058748943591395513805986837317219309705221366320177762413592115149128867744403199390454291774402734410749685468336772955325267221141863014232487121512664595509225403273301332766434180178469527670347426085527963915736944042664543834179662637239710363532561208032481204378425249810574137730348890112582915740222921485630179393669552410562887841600449941341137023873578036096117393667841467278123947895542200259414177974502259252565106748579850459225250551701770901778842763213325509368253965492346628538508231193501626772695011072383094986882973974977000563062094146997536519637321830034223967777456630463395837694357342177205389114239557820566992940175387484610277106125872024979453473376245145487566033680313521374863908029248726729628147665190297506606622143006492090214943003239765005874554426783472737639532414156829777311833649676848899661081998805281172493967537033522152482478117450275417300349938289865275162585860539325598122633758698853414095048882406299118699984312560308559092672684836502511646048639594605405898704866204236940768391654875479146609876512182107658075611197772146218131355907619749417024201661077265679845330888435161700368614131358797308764033080205093088556079724154799722706199912042143633363784682302559543471084766161402500072625576622828033334641693692099102466910028981479550572218733798605417342175889673740879860514723868570049046073928548281568536144059842336791972113994095948731794734102324151646796951719071095556158030180129305341251947680360118752388623876416415559488830726845099923849334865514761078715222174324413945556303299450191098411185673350407545246979596642920206727290203483311525731298081497564700374133703291781410295825256295904547353733868821691170170341715690730777693263525180237986463319227011914257644938522324532609874226647455865052620686701417195237452029792688826489457530949789748267978710466930549203537989154506136422265292602939993920862888974535403153579470141352615483059565721583379355033593457320699606544987632966045575248927616857839086956948284609460752084295414294083677956045910507854356987578746938394242449174403800738855618648583676737735840743567819415092801442646736288861883611430504099650693253944177398141291711233974159388461995041805653847207327063864937330001609980659794063680534246366266066727411563424542612155964009353248978983739695758218494258156954583315278723736156459980316786294457711445745041804913424221095374904068141914985703497654319916973131792836997579520128212678286176480482517983571585680647803382984504149252870525827101123533696067536126264371034925567517436230455048550147875550048991810647335206188318474930956447014138741386211898648926261141545755096255779349817281202789943742929585524308862057487004279159280836001008859738089328927533068677156052220737029749771339421055534918172950155075288371033822465974651088381098762103498943071961661919983158891201677574871596035851167214759167113959802775938630219532221294375938300908974767507712847070064212322918193005935208137818343057772614270105885785141871687172722852425615848971924075579147562709830054330907589958429786545233671391990057165212652804073900027583544408880227921173929586602213293724794547604393207697411117712306958997122263441563745663108887757773842107506307994963255860933551047024053373326871240435248722869282167793177628197096731829944931337396706264422213771968611994080801512390051303885022167255816333778482750537506802208226446130581920265303381822459453159741004746561364246020878681018641920735490610958912649094063136061168538945298743230731433648618656766850477487261009418875915620790433977040811383573506845811928382196638308710677050419713951336532984419688933969204532511799581840122017487152590077115329087171507559131750809981368880388619921494439988999685376338986819798214728170140035378995886302786795534598281357116837670912211792413323936812886301316157292960393249361412415869703995363307393004975044811716482533194580444653812898897181802442630209490055324379701616470339356343887376868414515152065425469153642604442612792659340897340170555443642874283991422120600889226885993655254013154786614027066518448600447482848912512809125229939393027800295840155171307308566582368962440005328662251113508971115407064875501884595705120158980821302874060279745999636365790661303666744727933739064243195685610028321776103362945755581146857124724099652202805961008345814761724973676603119222257940555453583785030101345640385155838088017852618209235738007732209993772109595642860226507472148853997599845884838099550933816693284158341723863791327095810789231560381066798235045454254848357812078144878842074543671272106026006572311836931418578875574649741248428504391748367829112269332199393473653946056282762261224135366738178147214114988467311186938893457819043454263145448395185174199673612173722464651024869144882864681241191431285622565692472202004180849015350346764704772676339049286633357607797356861214027995376304356407714278148575847801165584128840042243236553544011738114428454510738959244937055824626342318570942045774808219901542442190709861340860467714827931620819772718644660690092637903807685677091092792446049918908805085924871248169595887755119598659147834348059790599113485282678681262963090179741245451921563052614119981182308009031712053336060855333198173763918178657851549580366965567221994622005238412767057466893947432487137486492114762474333679217609320830708528363550307211871529593222271717123675516429120539270899849242150357857660926437400816000339754616502154921594975506469518622408304573360963199040615048317027674878003970937814122192687497500819403618367585038551560139695597108032891611655585353793048320916455417370505977714785259979984538024997568395038774825435246419370805198820798070848062161856029263044903983894747215407304860018323331545788668336264408094074285527942466435804446783596649884434881250986700144554729523483248136117662267390954774597023341673509949783078708485995573879305211834694272597740339177538752861131637615870790578426340399926312977866256632778565741275842806317175895174754123030256501148696840249678612672718475372949183774675339843991942710669977178517627135112824109609156090079230537702810396400974016855931030003636386484973335372166334350327309004370095626248739945797284906797912636150002301822507065528063643277846127488520559988748510994377207025829172038838588625667530865777091634111893630157152379880913673957295081776488398654201971069211719587227003127368924585004418134450208011002541241448169681461049660026098504456175693831067663488117532972338200345307622675308708052982818817215150813951611059233293528883440754929703027815543279482508367521808746014568776604481160567052499740825776490871381053458077933958004707470033905459063421975139368058929286992805073721345244941622256069738456854761337768964659037501586082323236367757419625350104390220009298750518721037827890481364542026699309331650326941902994315655989610698707941407964159616959490223890403207567239735059638539276125750343985552983505814994067257036867565489035040495560546364150276976899242093622879221101529287233805844304674426078482232862256642689304158003236544800211918758310125522874260895051261024692985471582237711544003151766790667316805935062872228704549927484537186098479892744094854512714548984887236291445581342173808775415940709652650105339989121474988475127073931913938378659391233285884241506290651831699515134075140855663780581430110599808382274986146187544447309739934248824469596480642318364705998747160539603710986025830604912180042091833339192600469555385077576364940761628738781767639233800680900739178594830709422152403686734842650961099357771938393728861356456542972877719117583889992162223568976840580232853109051594564526223367774335584810507517123669487975954878357649696544685441043079834730903058224104780031405963212919126298711096591748735812367117075887036380419247529247854600604272059430972960632799511374965913583823572849417972639579216709950787375876773744553593103427697175774453984812147928625811027337545107714329679112396750437055013455685587196085819966828749148248159731261684673651508434350911333319413269569099492155323323934163687209145798643063959257343696858112838763541790446463351741182217225272410878463698896164652326241075671709811039646855634597823881703529286042616869073948275683868029528245710997252281679854263203118369996828937581467807875655138322041839947726651863663420447568307911183999949295124471739713140697618355554754048451932551613895385157434203623472314190556733372965859593569153328991747663618830786432602426663876420357735745862171675043606684541544392268736664402665015579687437680729369881141670927264368491820614973109989652751384779627733544045725788161579604022162615387680634352973318700657153275118031748346729137783730518192748328172048891637687851637982159024054469382966672523848108873750820541030417245253929126857701758531770048521790805288389308339863671138040304458924545841966319922497378990103347645894433056709263131637303015640132622060716132458759675288168287509559467891687381577495073259381297165585009321969679099716271794362252471782430033295774005380113886026970239038864334899725984300665620958228477231333228980949359790768593969913166451194568077968885734655126034606277815213304688650482471183397855957449582408935652818928264212711300022833755371240923390943403674767136750213316304716405799807957786570796728520724854719861723025105505942382569995103406918005950678355015554675125164551179397714261855530149262757844997154243313257119059325268520184517772958730027613103378293764150787529310687418872316755401006993360728238670252290379127324515166562864685336410120764567458155703312479301598362204811190628140470471878972066798920326739099157539134057842326670145191903674164628567839090073169692227645055557476611959292819906594140937690190457739981284792128469605756631627309563938767930532072243004392311902049647289927287621506414482114254001506484839204360672996065094399596108700277175085408525964391550661520340762795740852448591180805452202595066544249771822487468504247117542658876916723882825288918468274337512556173464722762781315061114750125071928432003203679946972078519502116569928733382935400470899710862103448507953122535976749174187931277690101570944319894327183410886877466953379792285529104454963787778769937852176925529902625481849233269609468916123451969992888895760393972174892629454498408297505650846926442690215833521865605260629293851111792821607399541560439206671614950115800408150680920689040398782386976887678196206389614968193058565494834517527395979377513886796661017764769903402901445786229902406551320785618969697498073608142489626078871253538375985463136005010633952012588572390835913281497818845203392160799325731695317152699237961160971607792162600130889419185164954201650463058402277229671440953492500946049335767767570223943240130199133750165933800179314156069183163960712798653485884506977690457583376506226811313689421667972052834863289098687919687089374555601464995976102794952726332770267570087885045184042629216696905825636876909324919538393454070764235386087305493968280765323197781167792898590529716814316039029536553444285819647952240103512168152095381946277372282342003968150329090354762332737495849173523803851695236400654987648413767518710492531702010108765922467829167459964509421971639800840740618834573718464688552671978206343325640143770772061653413024992631191995199589120937113890150573688231102448339064882433692434897359609566938304450030587974426190108281534834679189425452728483840826809262409818339338766686442852519942575877430034200984228048229142494633507576920609077247228614607906055216346686551908192191951513920351204620926736158203817194245809123488842529843285649601894602715793315108288379762641082304362462900932872211039643087350079746359762187832233597038730852938921724228859056378148157593579821245600367456674961915678451923591490729850676803349884988405250363776783807773102770563891209726239140812941432426797159250146953116601518653419778391966096917933959427903661706698948744741052674565865484961682745914556115980595658916755701592982889663315897011942225047494740167220011108013697032355037115522062948582014152699899285036428647943540495635653674127525479429683526287461768934576178872676615655110333900059803984723779776507168152860930591692095819396976954198724525461370536783202772481594439937340352938532622923543701507580959994246843090138564486790306650766132450942890609025512590887224389982567504013383689386445706435460630220719846573709709976882904567054975365759482389235521949246436973332263486992824803703698682727463083538278604702169468684745978870703931291545279463580217586621327568507430659598347927334024010682075234652331142668953614231035017998843310566607469283221042065881355308577106253998846845633625285241506831762574831186541526804615415940369435134663747092548529397044071161735596408905846872087769855548865175152131343028300663238125016662360465733190672035626705725293785897716476445845429849249402167749824539769541783530329052539348566617225892168263660601935212216306902622297346288021783192745243582020207584931780625027896734380443879107274902930167292061017846816110726438146576727429223716557772917082803136151898205491205752967122446006560907961010298265056877572906440290963579462611111743959823386030826631222532289458162397351790106294304082691894123481283080467124736497730904660575892449436135104388399634786828216622063823078787201066941717493536919417609613152568672646081846249589160993063028198304161960638501932733452420101802670300591321006620630017703931617728342098096051042099028814619183532985204281344263471400212656392648033383398397384995102698049804966593392573221287615872887623145980011471219836167742578490089937771276416843857003243917196566913950904176689212650830635155513798447682424981354208082785895177302753789197796827775376160755219247530363958328475421274584723948842396313358966660907522297758957480902517588192753350377455790992087873655580741458676556445678432020629328919253282280938161238180912890873789230188549048316241327648516686158354433091373030783495363010435825881141718249249804374304887696663587007191513373637556287116220947055121237012437477931549117042562516720761996462530613053212337907176825854648881307511369344906779017827200464872082936641694184675187510601241122754166580684587253858748389427752357930136536036159537572675399857123633565580668487172282959664456066472877540904087705031524491179332667186510213262593130095511321018311925723079537166657989345302100684327486801334822366399942023509053961458360626530997389482158422179723379564142424706860257092589182121742046747515057687758843444284094187269353808664069030337092166174712072115034893965523502549629244627899414303886815566593772719935318448380305703274363958327305754996460593712559206152909738735445875135177243365418482960058451347368999229748859251961791386172540360342911919095830083877196870354005451413890420950190093948452619749375356833642858119437593482969296002031417079939813266143898577268489876464180563156341009815147047387109590804324931762996044474692132404623925994439218244815827175697994071407991419197764570896665061666441029115486821495085718774995525094104378286278884808984575513851045942853385245476274435751955400944410155429363976552004815852087609140151685382234635987693351316667684510237523163660703665124494681239765986213715851871123948081382017767576728358370748009022181734813784392323686166243118191905842084938896267073828515559968315374108187469801380676907300529627257677280396656240241842820459113778075218169452457635132252259784586749001322752133924570908406542639694255549865310449835763745478002580819749173868500779317802165049415369128597812900923899861800271080306004321830073725207297867220199162676202087933669356036913612966421023957739235856315142565617007641633328945663240835217238815339312253167805844768370599355241589679299534834711472997649834180853707448596832686278933683532732194404026959156409928685431105825940796109248644724432199430746343396191489253791277117010089103107252630372415933186573086739337526270915317388985826241128826371682959338951392123325195317250776984067908999769994838045943522679631478434217078318914253585243065919018000053301086916988163405784464779374851051999766687078693377398501810707861483234246724157471207426977839376239244117423779257686965493241899236301973946290199860319482298142699661319951838946888995267210817769058503105248061429260353102303868692751234482444774761123110026294008862354307777786024942026138069062210943422483920472379309130142309126330383722951837899837037482465535606519603875049404485493482276949329637490754067889871731490844873611498832334741474803866054295845366669628588759041938502648444558933733964116595578783737247822287943811921261518563138530539520291830881947298286316908871755761212855469420546263344877991219356992289870111471588279335793090706599555191570080013864186655384084512847370076792042094946809789862391876594505894742081218174795531657743509486013568042412215453492330798369714198363847195178457735927690222752545173241302680571291768918055527390439595766185829905607831099942258185723741066082984161246029058474887938472744768873444218589059526745360626249620435914084670187754613879253307749187641388452018734533232257781569985179146925913286318279048772351266743256329372368160238315283408594786819634191618809555812736877815812300974099657722875792959947667595444585428253035006497071489684563116881276373637817769006080713205814104798637797330410013413986384060472155126064776816071423295849347059371908280930944385339061954577407907323154898660659556893050152479675443518342128321454869682478978075950745632403436048585497468950710404296395986882342636205930150534374139918672961310553121682765712747430666264442307418149765622407224478435745921825195811193835904470771794589792019097044187105984143945717243078560538731290005734074480480250460562788949932971490643969383682461368942876490382959078771325998499834241284684267485609556050774985538202510809279052020648042898878062933021373821988690854349399914823983472902406295971863398115386614620493592021375181141750294875988590324857554422203047105644691274887979567068014231625897037525917305669564462677852538075190126082742767473216182945006146725708360389580172165411971057850956130645163771947117179746184178873086868137353187134809951097183617632570019783801236315231186587145352377276952193485647837765835137589875533387180233892690806296544437941175083785111569019450988641039665571322541889284578290899514644469937972299810488740716843506424294693689765968889321999942471790442272512193855928811992945572260997901048721525892406655140490408386006539424584675041430168687150340487079222071973044544956705322641410008275194696272320551153515210283601251456669937658327596534607371709416444718865091725664053711982969063008105565936003466723337691851469049972093655851637923906766566017356192295055003923140190070988303563948432723695108799572258589550166122635048321421481475473429597803813493712890940206958768020830988435969002381318633604189403100312107232357249763610677384032878824945424625672005221194556193799115981162767745167220820185451215591804095290070175364755577211776572494431001248987072624018880741664791278039587839735978676201253087619685649241026440412049575841870433287532474780651924623916354014442702308369526734131279704796324820832977679306178951920570980673410444213730432474295262985538728469187089412607044119998609836332816759894071550916974616922149239773057870339506536168543234442108146664542886052529904344367312624976705372942613721934329113539128076964352386481494545371982865027794921165729451000101463863205108149583370470047360373464041912224144984784918304734252088823552914783516316469717283030674031243305631390174224240632570495034540138610597631166273367878747994434851876162073400642142389213949964767803733651440301775992937921332984199846498337154775620139725324294860485773000625674971969237481198297840965420025909957854868107262360144725687374605479850482357482444620766458210998074414584205965817703727264169018283670394460112507791610490519348722313604054281916768147302366757679986764117004170071329751404866479140445971847554254421402279443212119974576245884207861276441972070948490481190274483718876717966784238028951817835866846130222818878998756953821683562009349973341061105920326762010863829887731699117778995929607998389068560609154355002440892477438963979572280700025990027166961952599726633698686322210142341196561945735499622882987369574383406383190811194763193370304221942318590448466294936357062037511625830953474456803684717643318163598149685920668509268446784889537976845584684693293261093414591263485956864590110496391303311862449444399656579581181517776686920008766485572572636954932571056873907004287975351177481269359785553681475991977115586264674964784133466241542834885730450818800226108978881384349439848658406258410699934309020821147110572912146162231039170237440369253281766779845730632968698946283764876143113528404295897476742858826038927780334223686394476166353227246437645444943217482089252186895792364991771049343701035353466560542429195835791905996900809016612118599408909631729814974457931640077260966438439388558118099510198656460841959373494572343323271361787804294216032751961354960170398019537509353281254993678886333418667736327379798826060345245624126795936144885823883324758887870816003327822386995710855002259257632241272483114600910852905951697787004561543885217809919403326291750502463383849774365401039010212093005134084886264590075316871898844995761627070777644307715163606117737892021828095230456852957333112533000143164591701415963383676291167265591365827231021088111471842322671649996909604740595433758715481974895259905194543797939149834551942265435032878382414997024877447811008038234964254528097080037169593400947885897544114515930646224434816742710332323548558699154090283838064982556885975368171367379392914335103650674271780240101446571077847736566084998692091026161039199264517344581173340302757614636115885806403097175983388110551568665552641424442820281369831191072506817618909156761043817555303119411766685923854452756705511236967870804951318982339413593427466504600287604821287358269001374810919482849569063623888178635101032456644251668436068537035096337832389962017965219324602088948061344852864421015811314171591114467218105301215019159238338659040159664769542929234708024314315014178730666952050529934439324744919223015884948183580452203801443850221596509304129732574657618983277095974949236900650150827127277334474290797250387699366040082786540456609331100097956751341790659726826067558257685435529523026768719849484300612796556112514117664003174697546401615778230480697988045594913278941921170990292967014102040400572154847230657749049239377373400320265482716252186685898550920665415134756160566709339395955409723691035214022141722529411143490487127833577087356033231808492020656317200451188343576502128200185286609248686997336858208562253370540046988080268034117771441322560943669011611617828467749019597498431989473714993653664881712223812514993609053635404444734200441885404516123717305557452851996347075938263947520697022985449862501526653660600414305706390821614500562663161513583313801570062786309496391842745474229602679348262202002576122223131915389135376004675198959258373622238459996997274178903323872386475442098801852344636163794450716397053847147934980820873093210679005377647899858791163139344835690522102294505888872511176101308485537863994263958525507558258595504236596950366432683536253234208804476136712968216301469014792720176808509678113914921291059993408408780231194269998438610386436040918465978203346266669137811920970687876396870057318052194077739976972316650783869690615484670980345088213632278147649211456645096868746975660162086965337538146985511944378340567453146370016739506941279299720364815625800301671261930370213166309375354995806084394449171989547760787396573052959244164012885073383363716055723223924083069362162016462858745502649796689736698141762759837035095031988318526355885198209838849187695016724724045888125896092918475929278863818707445645246021038830829062115800109666989483483446612294629112392869699682779328583844699768641034662961732935930780022587022814444412585548738367840146235063065338025202376072266862557143405466499993945890691666206611482211520377303169253766685953661956094437719085820023856855545076022496587898241762957060236620930702735991685541178048706787217204055627288662213839690283039188436425240490084485873824115956536606029863777190560949475925274751642202335448673666626218189087775185479985905878503654821096435482879525461193970602581079505406225592028445805167611320449932027278675883424440110059991536621572040872115235029694022401842948118450137346305793347509151460993068057495660411722644132648489874012584700082915759102415659205774947473111687871704946776010299876820869473449144182268124489199878610982865466469696790229569867931825154895972030812759152361729322523769092716597202083901385091355868238637287872477506055619228242395457752782220577674342063110310537646875694919844720151100789345042118410356041838525447925470666494697847146385771235744989171684657819761581015381497323755197152666524921691946988545593409304370965944599289515330210345841855470328073040721039818077284279834029451123288523997480665373766878306550316020732740242348370765974370620825023953350862866635262298814332719625972597486975404612818335520415100144382797978840026371536874059500667322368393189915888493508068891784917375385663740981163114781703478906700081120072387297623677292866223975626404308991907397810765986895454141067213521845277091304193299131533746350927143567804926118629093104940480386746256433489590759971494800831909500616597453022940449507645168131692145999244279077256427975503099520498258065108300148499062360145250547984205417538630800077995771037987393017873234143540740705766761487562517880445812034999928867086519219353021868038859666838609190237841465127959884028853280992789017352161459489170437393476824325492823387650430695350300555953942556375254779737058075461842711923277484246427494982338966638079100867163030817289494787675317345101584411074053623239519936003265322878201307196125840949094200701874689478890132661197612487235190713221291157133059383986542753647657572708369011553875727166817921633845630054657108083268872642217321579241908464972395853371575530908655240557047751804935817147768392733911032551794003439858155103524535033139391500457099489818265278525646766836000219040486063337172676124981933600269863663360361427100791839455235319799021970322452404087661298066416539307115428191489639607067156591208795639658271715463005606867150564103068305261034844324384268956875275640822357978316758941802291204832824353721403662328272781101148931522618240622348833136518057142551118558525212955313892067260900887308486357724605428271187830628940172408134801447738198293992056219630711625024627243852983386082497076273460063144038370912671818648760914798070067056256372142300019015676251180382867305544745608583913715045310003789591367042786531970439848826027642015151935536358340335670211205085321037438707852150058236064688522038437265884610439208357805305589626711962128944349148528666158327326279183826050532342940883982660344193891742106517183143452882839185120120434990483459002062087682335905670977319125701971849637213393811291674568211648589900847212846559752259733578490640971081578455418826727727639017452613725921103108109851214763452449670176828283966006270649966636276917923941657940544900996695046025749661992322606688099559402954028345461369800455406627590040554795042748074673162257655963916174427429282133220000846638018509449327027209028189483273155333619419748458118622077283425865801849804492008163455538557591129189563906355566905477209582526473238968160518156056913495869759781874372282075600042029491993543570368075734765086984002170758370999953674781052183188616449170448568811724906049882934357130920304220417508436129116915181324548600899732793338819246876534309388657204473802387778611836497997067757354759335641015734922055388159574214542474068441191119332211009404677349314418056611488732199578609877182728409974975892757788460143132038575295505668402393322576303156869615314432928103124160930396123592475085803565046584471980964409282614083327193519301861946393486796404760999710313925082125749114938606558354708213917539727124500939798555478069275702915766827314514059822389932174473566224727566014289286205105207636451748954259847800250295142573934336449454641284650696154991916259481022394509672202533189298164287223504053037238178770276883541933590849197947750638755128651109032516808464592782437263815556150640893827170950991298596786688700573827992692465224885267583013409768567691719881421761344912821876842737643266853288415375366089080134939439940250988724216799153342771626855451118305739987732163779314731835000070335467696356199005750795663279235368612224948699754041323757263720595623476625301209234079558973150095357239759247479677197587780825266955111151937527409092776025245977978789386385241201103549387105065199794938048405651466564359026242800761340706645089513179523135220516883625543702129443169339729693158613039041749424886008103040429503246205925856898388497701231091800781877843612672278007957025385985174384769059818290994543070231047956197869355660984066975366951827656433587655784295965530846209501740041169385656885308893185426051874903777102190057690059910949791773385847144229808245312236990880025398376710428501290682807046977806919821732721081205057739031519137190116946014813984920194046774116178345603609469110880256304166239748626050723323385979136457847683070812264996369436618542152470905465693713628629985501307941720658830441196818840985341860426365950997140129702696554534070312280503905154237797427027557654011753620554486143899269853318322350604687839916235898296377034586314002333289902632219259496584737914197504522654072060685540896553507495890954078343662243551183425638463298910016245428995921684247830348421514617951140837752336018198831506361048219842090938245202668870528854221678439351061090105715976512256706044469165599963568619313194374559264579897942358475862839836998824669021532261674059757433825358972287700379396772099426570405956109834457901863244911902866671174052716998313565924981429531474224112137115400234991364257153667691724863167794349856160318780017614476305648591193188276816542897155288980469790117146035906809761981993155889125905531238387003665588787920127798609433574990921678861191483038954536254754182374865759752962912304655112919191140481260702802109624283415190957364600649836790351951395132873675509262788940626374277739627144590600240114239709292969163119096739076648781986963272755639732904526980389670441896229857386810544624300851014879577259694639956881314372051685986353308453673337545138350591545781153329005762129750336920628649828778072840823343228842858225182388822849510284132076059743086430918052578266791867433720200045639838160198179521314915058141991731577467717437418988786894652848875957622078478382472696749962129028791479000756047262259181620182528198798196435017968497224234270554301427496225537100635803202280697444325926505134728444032202316036947905203051921267636425025130922934874355727682210238979901235712645996742158319623335282602424721840336973928165425553823411747393501667585626716297889551470419167111991092066570366725794530272509245371582814490853536904257817737769655769004336950200160042785174643989238754346576617720292503893735620006927634178611790069709170182847279776637180520978719128130628093465607292835600805387818712666186163024491899161574160672288147092038784440481341820144028026059269668795915601977471914623140800305962933073711085377165665170218087878986827227889419596763379678524308953015573134097934071391975729389669341170907191846589797711748115044238361012693981791312920228531718547901400459278178196616398528791424443134474387567197571798878343733340133904146252890903861043734079926276450238240783226843546201375903413305786667086599842947040759775769697199665035772606092338154994440370695014615653685105288647255286893275355946693322620751825317803265829146764164497757735590481367485411032288402603541306336967180398648748299618051235081374593851916871672399595968463918153086032153754318707068503595538935228888581308512728688886812850606708328281897230507354488934696502440436608702571049064980152588290194461471366890511161908169314292575802274302720260715330214780569107779728892066669009766348079166956599434812110331472482288414166314629241440341918028665341294684925840270685655010147141796126422689537287059763879412554590313416261047686791027769091391193386351846864627309904804820385226231222942113871998033985970621312621290952129412088804804095106358567051241311942873940250643627387084328231464174449243028545719018407526950483450386393976912993163135425553875153532013117802845001048631139719286791727620264024495858239632773352750493751401961901060895329405375223910617999005618326126950976652424895908891687804371887269723968057957144693136090005916638940421480479641827761516854290671614204756937539709233368951000363858051668613830771705650782228138260601978008093157978595390059063444537974781392951440603033132000951348842937713120366837090067278047981602290114837427879237390644192599782485394988647963545123879327654053736110781094198042091300592371346854385354347504262250163350453421013344597561324897531818481002177257740385950694324225946204101073149335494901454353909116268601821979739751565383757757124774978054771347765157938406374625990943185422044492522157146126356459558851769790012944562546499904556496842356460401227001205004183416429324939298609733761809712113359266299207108530786328455032106220509885666496325992766980727448443459195009528623158283404316869008635080148653480680620296639480727536710097673979582656326443730395601953559842610386880844154696744758311660742020012376499516860949635374031339203579863849331095615530638176381324402495256651522232843618887822190903065882448463646429783968558734970316517003096979892015537927889663244855184474790026284040448658927148247041287391924655733967757281442215893716633613223159442633477902608853255297341585096526738142515743544224093018174864348874414318664941381224901721122566029332143105097339566761724949349145183562654555237384926006233559950496891463165630785426999122742868459387873829610005458835544556365176812649730686479501570284131954760348260379029521416300544675680078849098721332895015369008088401803662124513264752250271548218185570911561362716171079510803496985638098733287874575939445338862416960094675552277374657980060416596669484558219589751478947112037855026722175276191459008093598169458280460264310361195051441414984921711072028841790638870510550728355984664486523439173544725803854781996519699230761425001783076180958349621543773318651650986208912137164430359954466958340355110566180268096009234418532277941039469644609653546235623754878626430536818194507793943211893909440588241993860938047976792329461465349431737635524239181366840257937751904521214435478047687613014440540375796366589609291327061992859363486105601538765241294474341305438603634671035286659046878901668776460472949295586959168857732147431667857379769674035193271419954771926064952760237568005596867955501655827856750580868118840011359507411247086008308233204701953837065186430141174677139474894007641132434816271425416874074540860892315900928105961508511347620795249657667242129666714022612230249341114363370851107594075763586896373215189640395694331534944563727728541911803072567128592668125213976891701864098938791026311763959601215075444330581090414789991849973201790768019191233857145345859893763650280420339356525945131991003605507507458564751418395032720178174982209300084868112392597379286004161310995872868592039930976387703583418547385019522403363838764308052575488788090072614569959641143129976771455638963425435165332577827583518229071413144682055615652654637080276052960771078022766516429379481762836389435958613310166425634598551356739017854877533692768726231862570633135702531379030753892869437260065476918668687498575067517276988656299041627800903526044759044757847421866545122703206829254559098848473619608019845267638128669610393392640477237530188306347573907472434704520981772637835758713520002565989691995049225468618247068899815673874086636489658506376363808080935499220023181284333386516199287432317348392691943764844618904017672448987225273840624784727968556028873244134948130705074893468698047851409636621115347315277273715966330276421631247813259181927753973128327159609349080949788584782373968385834621355793570796420781308362086529962260937401000534204274339496003262379452293385024392419621478824316858655689789037010260570921284014686813916769702456849846456410075410233282285617722388564484007313081609350342426175816361106900049842594109452719563895056627167142200990771592764813915031213080406125700791592900700451621200170013899133567227965504382519514173484684907903827416892484697607543413623452048167848900857347308034774648815932454888449415499276899248239147989914022735045299992538955125679358842260483683604378642389139155663528551440591529987469247840068471753355167376506360828152895430106207093542606464295875087327202321864910650003274070903397056180009643025882361168169761182938598263612528246345692030055548605518544172718737840679729014840524298398469914850090179874308470405304200881704660188205835898049820704501442223649002918031031463560309049748028894182963402738103016972161658046307951053878026407072651718651266252935902592327350012570562735807770868543015341935549790849652570187863873667155979030029275750588494903208876718748360414390239486099114961492710892383736017452024140536679385982425586252263415780255458427184719291817402115147923942522664971145109927839843031309546273796947778355585689145524721536337399843574364650683927656321878443787432472505923075327360815078753150011187224769259029970242570016871054457041039154415100789287320757536158676687961151614186395009763518887202303540674202689607427373827786074832375665584962557175436096025076635650853028078749882692485436464620050637593681681641046714247350901969469216712450578705365550055072374653993739066051765485157257398922047038129829354465787251884670311198911154179624293732678533588395457631781918944521545873672410612047001201865830699900540517665853785635799021357065486485402180313500826071400307689028210617635196065727617568170259606382954372395968748706569273575176396228620667011434422104339873384505170418245299947961360118434284820926113208981846943178120632165960715133308945442507111874490330057703483344214514561798694368138175951783288584686944857261041129607204739252515028581807025162871488612285765887091093069277595855147264951272643945710520247522749755959372103366715900472178135833357925950501919884298702337645068986756894352904986632750078877724067858427877248754736409544311384592591295369913884975993112204548894553535818651345131789414562904597090260002522331607665836321179369922904278596889586083168367989738307100066709345086146236407978869289254488648842527324347594546917433807869726981127117184453695921422631021232690635757181816123250539524486551916140550162165778000374230372903775273753873938883197163722696042608764028709522768529874046495843570791564576609916387441176009986496119825074055313659612581676419601445535667176675999612740082238257030382756299790455463732968345460691263411894761141085352730049408492419601779510885614311892889493570069568396366508174223867636748862693341821363283037280947684602069111623195108343307614825090758546915029926990677800821911715705420067243911798897637265067119031971888854960145603273072830481314719097062334998367795059401931391676746125556529080469955057113569288564478052139552986147170951485954189169914366397365759505869832099028446951526532555559985759909734866581918326767157539184136776307769759901142659136249554068588498330334007593265507897374722825213924474719616821991811588350154517199075929539387926388001129994214425115767946984616387210437074850410271838141786107167565743853415853373289969704369462387653467372323273469763415347289659069460393938249796692687891027485241997017163678649300439857609951262924503763346590910156510320477111898990797569651663165688868586540224703606140894175070524808812297428986238552536204969553491026760041952342713894690615390144560513637068281805637025506964660241271843077907420531835570306817569666926886897265802154262200798014670235443304237739388137114793229273182589748566659469055968877562883241535299034396218116560280080027328037595117336911853618084362871027112869468376409307696815635152655911179154129037704007702391325749770706118625443710513507969743640610262775564018878798274893243577923963004960570803381058682105494567262745575301787021445851040215838402707984057076817720661199697815772605897111574503418214588511602187911740823975252243451190223452777487159840387917850404014929325560256071359489291299263344724215178894819202924123423985468677473966580352490334590743608434008236918560632936104125697512341644037483398271342282109099117710422208122071351061510240410998002827322548579281941857257819446279822830570810864516276148435794257627369657147627846152925922960722695857354179004943365876235335963635840411473328650357517042271897024090869676734058549091472276630037026391731338857088661463905575010136599485029878373824401777999170633443501829073310408648930219764044858504230714394359907271601631158851008419820010047395363729877772119651881302507672292188842641855615854921658411961094872628565377029129338698209685182620623687558574978753011014619891651220209646970871765002523470554742098064393500890718811776357147011397043831119498861320600873362099290540543366177220337256526784186138493333029590086561576277720909746599328878460987040688294861324962041434616068620598738427678014754032956818088116924628288434227078962963498277958177438271851172074501895273600354798207355915040408539820357422082075928058485269499964889494227829887267581760971592916077803450994351868012124993732091046537672334223385723469450987407752213219844555473203029374598637023563573856772120077084604417981673747324657001384812540537045290165117720740186929796013018265361807972321829085361806272257608372657263570572932902522478375010282763446855149127336352023220408354705026628640906019948175402113465781827659056403458065277183772813360841805083665177707259547685103209849043996189493270270615963335786081990915555046828641369868853764335074956902574456069851361375384634438369066285523589221157421205016569737191985884533506559703239013140002222508505416868439956104810788483743090167344528356829619811800905666822701115545565429315833427326379411627475124616110084718168019581609341326678846088541432906314063625552690737640286769269412960349142099721863542035514415447338475060778299166248906242418706940473284239123205260195305067159101906379311049046272675763253338976810018248019417620069687411872515012426600049948792645855908967863840977781044616144937868295853714114103081630084677038057250858978122704238512688829958027538878905473331093201058615985614654462126451603887984228243555418814530275085587230074320863584216369006270410971800896735657792778113369969750635027101205727421290440406797826351030688524510669831991094306111905676556366734734343666673057907217125654678363309758839851912330764493141496030205180429898650810223483070644772453416813563944048215196854991113315035049822265508123319996146532389836443809448207193316059758608903080935036104891153551044714042181628067690398125850462203655537068771382961919895998998814272829789426917819418682774167702112051757777230997120960340333852020398995847213882138627647978787342011900897131498295027695986839481110375233055680319494293325117903765961468804374893178713349332277477381878107401459751294188295678511189374041053469390047303191217816696123691612374589615508643534596084257056275673873046576799338603828550301803618834351151857085159255898441524847159704664625514062208494075793050601184668776875840483305686543504618067188418416376192767178351001335217438576867192495390852578434199685712923996921274208644891597132483334318765257805314859687673026857793216582147165099877227019759981156583887281535528505676016134689801335718529561972028173331394768477743429835924437864755028763896284145368557449334643299574128478116667192051098703449647848297631821478015015702363274425477225419770096743048711579952171643973768982981063852961177870568294115790585191540665758927906963889160224562789837719071344597627994887657297518123548393007041267978307464994883803952973278583038484311343907153848152131664235401345104041867045417842201397338445664811700233043199098672039326065312963539693596710556577973411646146227721715634101698161175559839120027634989322150589267374635663927271260182044848455054731131515930771505791134651422115421541585658918939018022959646865505092167484396401535513471049226229202088561290040098922520317990571475334385576498028509716533155195471357822371627373061815814464320812007936226311730954790801594970434471293370230240038062871997736884234883708588892072997930292276011328602786312460235747190633352888019025080043836060675830417855450498136844107842427189923477234728373555443632731775097761173902335384146219595903561842068777753857364595300010477775934394651736031820059308501155946137821648563496710047714620126430493359346028676114192671917280271581202400261422205323819679976628829301459813285230827781447623047189322509270429364164964452642875343088932434949871886857993943539769406307155429309624720965795543289070503850118983277195636431269156199266290111879877927730112062574924141614588469183254798856725184595978344978666471547645224825297792401401171946565220151602973494446435812979727655420040981317491302731575684283014754742298818927311013210968506656664854584360310826755099967912787316556691890005265055630270884249079296893015067968949694282301719773190723559649271509469778197722030392256972565274234581263278035568949428862600901971834599553923554051103098255653443273683835880296341435575014030632104523860248323883793840009516051044581399569529663291556356643763571741482570333580090167007913344920418062621191096029307878901938339712055258886703851670856948280760927668538988843061427695042486668940704974353830936590791058818499064104372326524151461054309606828861823060018538249506255124361603931133899364542525941785412888098042198365145479966996098615361060632214942114172294420612262295138445201886632389962167538163697710304811901173414632559569313841245846786156667539406028233568330249257674784602877123787463068331546072219278094903597569999201148033973202732348962685961622982571134931147057720136167729858515802518635343281572498978420646996436304566646730045339715681915700714628762717689825732692694036966524289210184616853678556993892593978853994612370942262482870672356789127436309402591349028238243403837832570342577401136100259584014575805226483130742619993882062055485685191495759669984449050421940402120078714623424527747938885174763873271276744673489310773921391813939560720856658484496887331617286607229641917068734314359290785910214991562510153579686092975621117109922206916004158032522391246973120703937285453611029735506483434400833165472006209345884420354435551941653871548723409061213918020003094933580096674457171422264741726544861184884615169201809276650379464865051730053486793843375376975104524496874054712885910846524941808671380760025845152162120214866280334164927376329929412262506049219376115210708745002953939042520375693622642365318588876781348029168469346584566452249587276976753657643683406792384011246852391976420132862615750797319776697049114242163029592687217434063155285715308844250612333622023078479321742048998185090488145113099561427667153055745992221202243529122001473186116674329376196421131507235348539995093809404208545403891214027192492023101207570291980165160469167808753636391437045766730898507339608187051258853653175628261923183506732254229790858500045798274541731048440252368396867681633779212572693400717242554295325251197062447817761821754348371701739315496232331953844275935705576356469325154470101230336661536309172837178501854862002303978460092677454845326784074264119735054884885090027565542110593312985829341980533153285567528783889911261180795690158514532347485579585431195726662790779905381150715519281966968874900038448234526172147985965708488306297486468922428716303338967331735138968634156394687554020878925210121765779281231802323384712779174136361359849586886382284210882218203352808519097223491048643328472223847328971884763189901117475657410026064422519769994053141135556039879233546016336642008853336402430666877449254920379046635361740120601657199964562641552711341181157582251375090650128979426607356571583774343577410983215552875587746563000640292001883457954832388236965052619207926256046676942049011205184935810320582099107016970491295928249754636043853478274898545832608330070021944411996520309529730227579918529659151109936201375328327904019878946080190603634536672843571511577109832922463328564598193893792835409461526037279785020515313088116786276944619891354834710164442174195981232754581110377386916566889036755652122553217147483859917543283214788703202823269934382086879238722377815650055908755145268995306250823658114934514140507533849840293655742056551174111939264170161518938414660095452683157312617751782400814326262277442174494428622664397543044627878981625006226161089425427951463519555616001640829497242316017050148388517002129066857457564717763374834028742723361293902247335497394073861522142344641474977985583971302870744419836904399496929228551580127578019702011320446990508868024456880489344818806912601735324151324601484770273985426671135175869570183039121121622094514493884923216906328023734168198633835632582946768887191343903609791978769989716460052682303070193992891082819378933005404005346615060449258857964695071038049941209576162111317024694297734355614585013003545212368804817771658669141544914171832881394773906940741379775139671493955700316745217707045319309927234351808530738756087862563023197822410878656954742711399619991888022445175517243260903738932885226986143853312732904152297744430270857731958766444824080673688619335511494376619697064644163597551676373603799576846332539129501724982175417756376381962838333512026086056922789188659352527598107960933213246532707681578086918112913753287793481576305545331516755878949208978217964397994034684561670336533914781071498701217994041505171436386913674399400918356518124165761511202688847524365120317064932747217559525369039538219573914402266861174493199071910349663848000347292549279831192006260965025995107713586089664582818070163646169046515635035423820152251841359503941378246994321261317322562314458643636783025635329979069721242992915281072816520285109443583032544090323974071676399219933364266002821570322926151923209738732915275137384290726807692141721235492347681507838072980623208367005596879810909336873249611183135848917233211884200284378052845242810542356910094865595962328481474859658793186900822813231888757538177619029291400530910813732925997819630544410038500279230463932665343343715016583540651725963543090695123035936750229998175928167438281340301073267220712655116196793518165759314236276793148113232470909149982223697707484853238011110866089623467739472921313260790322228461127794104325214401702404787636051720268702370768048628511213411151309014576094858076410683501164778355140137183087122486272438200420996903242090607432841152738911701315485047659721866320244030603687682559773996524554579775972309913553701513836964494789810444938264460184992569227669356193971304620913832263168639723029337237191966580488030595466345601268675843806555011174316726692716640600225854613935204787139096173154762054257434982067326873040270248917478653568238867421174601994264259736604820013278625018580094975348260540348587892953330099056472640303606440213933666183455199282485183174182081851748004333268749054201539585824740035482133817814725147593552115106821124670836843231209099392347904028552613639948783128704117382876819024994060990570431958845560780305702354641908723575086475519598121650978168242944731050076795755293368891581540550405348239586456000635007951416155429967802832991646906919215229259441509515688968636350373624176993275004037825807087041800184032168546812801500062750867962057404869666349417714013913444911402625962538847960881415606289575037520246408069569757033019300655871875587887876375863836496345169998516310992882401661748404234966056465032775558952390630743347055746613930872693530465647058237264605259281973866970620036785977170201451289554329744096772898085514333526819784867506460199903355489433333432433231453250151637228843196686574013223060529417259044475259004602922531750845721932500259529337318342552713216749718634576796043471478989671281551727511037820385965836131922458649301225286381325259283654516034922108358235713772753684352946403562443513001998121290759221621400300657483159850001036826294187563261128508144956100078598847137009751676660188343329164547983497699046133456407707266468170033249835668367298037750603857350610325337720752929160805434018296514603592319045073898440960944996819474819893667985165409527249531518472849513656575076168638534088569032227931448151399129590882008042028774761270568629123339186706445092214729028479532033787583317449413962994316714601407169230448907758408105939985059193312394428531550999050147661035972995701173834308962962151764283688117443679014696221434432533633097339006456101295961535146869969298000528556300138471434211588109888929896099559827574932907407477250098395926672505088227480434549367083695460434391756105609207333390128804620115696223472301314689670990738829720191680462927942560859881964125005580397497758315035955139851422552921401677132275248742450770171240512548594151263527772995951912802119418281243635705650849928667922649768721499737749772309098068674493987672453708663215191351667502006146505044047944754937072632147875455647459577982072905587212355243731463915537605639437171067544558777277710653014766465739318487443603859954030665831457743255604705843270589749221611577063706988771465134043680601533149501772837877876346494790606393359421700937795712407061590997666165564944587854242746929332228467439767873566309052746249804328295830173581513261749821107400858835125310620758888583918291911582034806074396371747883210760190663100315894147613730158790278414295435296677952277069294425419275427602464582777823667549934215478532033683154169661657752681987009162091264979905978515166225872774450579795703498262308517836294274082419867362101988553361780189119945621291288692239144821708311312642206501357127551932748433701190336452302962338106496889305578765822114757018595366655398759040008225405485186094168923435970731474890552397910512915528458838103149358753612934784785853767573856635302829750623241122911962150127512750493057945529457671399326246176936731911234015205980261432919562533367771672696548117617334440660623763953301247895091385551043935650823257362371869807808928030778401405209837688603215556163806467474982546813102435779495154369827761332757173029973830000102704042396006546014520053806303136143125198404910957584630087816087412631904395361785962706159062180256666782645251821122142931605211249939340783880720445029912975086092736997203086553424563101115483851571180133660706385786169889641574333274760902854418684849343718127701331222398098981526465393539897693219049043095796592003056725094389267115679531465136830653487488993848550929738525759879446702341979137983047629598237130788024255130353581979887539384569608121252384273821941798276349194152516007712207804060515530262340072785496749191603511233661358589914885981792433099594243360685877044160696937226786697038377461395549563993771829699851568737642645853551015783209539310955709598607487132295590859236256120256885443853824501106639041180292488067597983712858212446682996267794405012816324702504694786022870898865523393096354004664310725360079442933403080515383040784602861002446093856711713602179716727071815821471844094001156123542984695124425147418171678641909176007059708540652296493073746521870297743739404612227879038768234962646304213252899881982222516686360460218818061870580773914829626115683158338880844964834545289838879633250704200912349335356993855680327025703588867797658239861396892066420627560352799885727853929617539123375791071720860245588116418546838179545628204090396160943982509346793731561783065827143070982237967809134210395584783427042874499322520130126158655494179586629712793111448763162441511571648951996458540627713093261196593149366800120060751883459790516418458947099099611460156377250756487792662603019799307235020932327963077210033240212676816088643345844262807743079578843422401720303025111600483082927076958336881886045724728465070764016685257430516752623572407152874612936426847766635256524585117548634353527241146201306907192511304965171466801260144219091591996750664096317441049110928536439716323666772329324369587855072011274655658959310323175383070864375573852263904484630632304939394616386033321168008441453846397160177169881696515086591402411781790792422760432940821057626097461363256098502784873611765470055577817750669074654920344133436505623458373058844391326532871228704936516327223321020195425491213486173800411572355474156909191434555115777435668962637728804127792013553468436418659491836285595334057185616762675712146048447997567385793750630837895953698030334508134179817652953223499580919798491304127658425639008732213553335711847553114137128964293376190075426045263876099610751144779839859347420720687494434246055580522772964069740417672513039324153584681496531234683481427282630374949678612123620020237267605172026520685563535251010978777095233198148048074815441313936737399374575562017721092625279474725836604584472971734113487113133117941712040203770891017560426716501593254314250584083084090423012097862116956508031428961507227313159663853639044194921354400314359997410576823146049878516982904602632847791162216400574575139711305442095014044259494789129987724567342621396131018018592528410636494884874058677987339615176574961544378731580760714462291732221218453873827183939439316616491970810082769603444535844636769125818598586439604812105204642987683577242091295034390931869588576895590699581487255945114326420900899545767328337628970249141093728731709439860868311056094441548588682927071632584350723463263760231331766772484174399221927684155969513619027331417615605260320021762187243393842966091116954818481240853064393421289984680470269129205408607901319520389679934193382578449338018799383619770110351381289407208837233267554467681846459067864655325979498301124417344539051366283979947375797126250672769568390137957616072549359601451143776359892786231311666822366162423290519831264918384827386595911984986305476587621676894598734036394507483436754998490624201362758785265278505575848314340833690899094540421748714071901970333954979691275598900886434185214904091492684436796224584567554251606048422122372902019489221512889756646285841704578563014746161704135377897470050570561010979939047347453150469723461217281153985276674279337341044294918017935690893776757546297472471107161524760553231019278775860983324348670338280286127156313435905545082516301697305393391549903260025944589336582318869809990909039929920935094941194364648159751336979251211159381481979340138147485525369884395023593408010968844699179754085530010257597212330989801376122986046511084396001457707514123364403434108338272216127933470677886399811067767805899801034439089106487309949614969478413281892374731623906318702732020323692543626749269369701881416087707222312586041178203963563103562022521221295546557653113078388546122033094335820738846103854763723832467550949571216460933396199282423408647580295222099912669887451198734328289399841692532304009874246373717670765938800094405803399494315370128444825978874972663656657927964705541779533969982237292175243201754014277833690406667277940525773556983574190016179199474307223858831239229806742889116576322995119612282099178902300040427275882857232483299403685771335579452239461338770374129456698022983609042250017494869388868141247697729881661226038792498342599882660741899277844832000944774814868562761052135727213137851034138080951468940667797957198228735379329407167740628618926550189628842088340920847336553571048397681498538637013680493158227241951558874966928493287855207611757238841822382168201540191626897712240127370774619465521112213642118207611044354904560398720300149785430081469899897860800636710201542919007861351838424235732499426277120516863131564332183393681663126702665391130928096865711795891281353316173119545769521140350842057282463059864118960329356224273006591413180230062480000334390608075673719186859570920326419811565996411027195039269291293498196670496994867464998013869024846252977037921829985322938086449291281844608129959034786501365249061163762841979214513188694062658126131093616035228958250562813701694242697846441148074315732257053315311567794021502193758190475444618050735354481577609732821855679827184074362399464731656505061568910951562089659151293135791944716754290826024644020219118107980252014595730557482159496565378645715531480381659337545156098157081860384552863717471968813125446659726269739832929541846680573483549911434940717390430037502396446482927828958835571099850640253335462653546544398746303078649516004893695597383533175917586540775904194912977271919981992272265667523764757260312657807360570675133232903168322313892130292059183144977720488899636020488511333393673057008605022053944492355065030819806700911755745446673559292195926680549643988374118930780903670879645667944009863901303778975729561974907594013696326535644503883722016062483842552568870841450504432988421439299289155344460679574500947118053822332475173995347757804148048638169295855172552703597447847658777604618980364376874626645005199888283021982067168387012757463187803330931438803334678152448825217407195284865823681357146207198641003999979383059325340155794207247748056119496213172838433033899946816093394720750339142222763756743029207239354181802172668802648658280584845160540686242750489550035738973132582500937618887887364676567393321796381303689689102534834129286876975994508821361844283804530683771694984047508838093417846806737361570260020720686099970587288069299421499339146734698441514705787202815815554304529958289197822902881215559189157289757606066290670806177675014070755960411555145457953692310705210687419605772722796419008032899661262040263287689013999126402352958301608996815892654941422332656689304247185840188589675349880862718933902128124713424129836469718379238529708174211748253389768250211835219942201660701299534638508853873014563610566849864076581996686300823509976926882190696702937897022968195777002439030734510109053247570411567071971929419503275708594927905711641049138044917456588323939973105189772102337213624459138461372924533839674509698988586194522970003790380403277806882051198126935274093474226267278733075172887619913149959673940256414032475071790399213775888830838333008933614621337464828292553492298885635946873380790277907108969830596060746744797796515769624369967287155173206183951139891075261149933759929679907170649418879521693932509611670967929638402025796131387608468586322231076038549847633649825712169212214822301635896906280249477545892714754099031335800053381029373594727120365966266355139475979363797842565651416001188514433236693965963875427688204390415401053084798286700214812566453971823747660395923260684551242056545640881238221101835596774926115774411688968746644150000849380121639939434957664683793907920612940283203282191190914183148356481853753225798359276984776237844954963648130587578293121534348243870365706074102128153124135485330973261956790033995467391495533039767927461688586130358218908871004933601120238592221127049030718395648931786284012378206216102206534709257926368703190244277183673098092476917089985230334441299454298825817184260500970675007058895710987886251169702854209036219239043094438328944958312698561630628217036905870030952081066106440173330940182894887265373338644598300989696889010763979668538496951715623107428773233134608824267603693910324699367161631641381015545697904458873004427884702557660749932393439491024480305909173628186428311510442742329990918779825816337416016876926267101537209302608970438017345468277443586347038711933011914649736750416672959359245795776079188041628925403979609264300744186052086907791599195112879990525330843463823470173021879436089439600574058305563100778384952296902063546964433193607182846195928345469696228961628770617564794527492346557597732144980749492102378414716771988569528449442123971807995413846213349048969504730631030623710278510751293806872609047653572837472600921674814707009301060516202782161528552628420802408526297215043360804753106857174931363332858055140153614873670387255919921477170564694281391697204081516884738715954040807072858588203118782967198863421441769363946823797914789717010595618601453911838902352599690271886957948383326182227151982877779622885013782141532123264911648863152001170268124378047818541894534600556225154864183663092613500818527359660774581042187867109395256387762191237319883629740587110927426488952544366327152069459735270539667141771031610565482219489197016323828931608325639804928979075979061868242876481911945842798770568089012493576278327950771001135926480528890176837301799999190132730153233677173718117275276207044941802977142833924169496616010302338300186400512752452510886468099893715541518146202312450878956094864706654401311136680839535592348257596394142757529216615743961013515084848630264481467957767913612057428362754481394091339268280957541641849350314029490983791846623441596248351184226588707952141953535161260022169093581940654467925891478578643566468860172079802223950564603197833735804580211895796565566618098615113291730397384883964037450081805068182022309659474306694394919654208987772645200176493205781430187437467670037186974655850423082553519289666077092538955411576695267394888009654341131718031050132233511979213607293310406249711310767860712304752337704666746878551590951930143770322652476410016758748222961476381806200813299456676216706659624597498726640732863862867610303552776854069309472426209678244676042262632551426000426339647841139394085671143561311821078612142737561737529739760057872784743194148765446604974702580697863817025046711778592610920356944072213515793807683571295826548679993986258271513599120003035645749758024865312570125976667872903890378152115484164167558472008176400294147750709468765398198709431368857860367987080796950705733665734003791656846167679076404493328231123187108259778801879084487275377538843705500770560500327771819829347651017615385632648191002502320936023676422621212550010098578613874129829026317150347336114885562424910379181379241694977596832040204462517113641705468344515290817306776295723004158451165540064657568433569574223425471370298692984442144450243940098907694125116950382504207238970644608105303770766526360035036161632743660901720614168357911046023496324992345226597662876910637020482961677468506454850430492762679383452729777283189646335053386100610153021786407561654993360999023486638042443413076108714383306721852324109400171105023925942757942763786448402793509848087046618692753267906988560902538771414834391037225153940235557578115946098787522150731165734058658497465954437033828312512779298961892903902091231669523330169560402325917403542436063737759268152875684412599281881232769310697341782850795797579268345717950397165616469008800449783487473508182798736925926726567569512366943461220792369577134513944377411727803334764807949450946395356709435555885749189378034434724330139859746677544320243167333629165730288511305589953650779811572018987985619965159418322803427343710876269424385045202460471244995108360300994296189230036840731620679733169179052540997780079239080393194939122784919409738641575741180176796104740644839954342297082424884296875263082647997865400371885041730600415038258937412196939262119896592805582830610141214791741493275822511291622094610526609649918934642229486095273199590722535541369581778335493425988734387253880795675476600632342249278220660704852969854960006588933588074873780094780405699167483864642383375747213043933349726600483235210858269184494482670718676556824791972111625481043544311120517199335935164229560240220798110435243177894503551247719638800168044639883750277117060017047870676017735169864344817017599612029393242749001577972168909124570009343588224166183888670971592854877528718436329071552849142496869450029567557404479513556773109405590999839840195065651767671461982027877161172279624444811616205085539010445150883432174878041719566689941246562819794111192719802710277701744386650678779829152696941030414210468027226012420794817088892600392066605857550952530858197369803064775462336634139205810439974969295551108955370052093093354948100375848241217851461456055091706383762879419616390743586296818599872594950633064140440195196832220165676749143878536876502516826470462203080320181528668034069076156271658432450626163672043548321227333359103467194504747907678118191167096108642065510987816539495298876991378507284375530734519118131061908750530308358333961253674732282080761325798645022213912817667085690996258935887334212707839199945519922772917391841908106363431460268886318486025845088560335114319758212865825962619975090126562130321660378217524374452371101288974048612774416206483930845519706012381339129852799344821027835646108997780466050345475600058933214099925072923903362944403257773352094793017187485350787987923373606674471170264286220605650664669821283868284942149277913988279774985912864095301265255962862764553092749557471953004991775946970664197233184245477204235043665564438522670139366357171696776695810324452954319848876479734697677929662883125719558900041153610643046059067532953173528895743741930883548621378672802667523366932043550105570127289648007616669152044054347465497415212485103993575201318275201921960507689513054607970024282147168592861756720787439961591185094506463526800292871399940405999722546629741052434414676436217335444530652509232747064818343879269266518944888666182144474275981809409139692631006558656429027378648697672514876581908655409840966147781602868801956399865059880284975863923456770385352469375410694761875796646139491641899367570819408341635122730977981562519883825833949833583480392380086374625401453299151778825188093126374472819323782667862827667691666077883405685540924521082716283853529635986691275590337018473217359316831989174650973019284947827723312491778807911365586003377587486906532064845458285786180093363675881932168933412722999464880429005420012764953574847766392056471554398886800858516045312558365491521698651130011861156611943590856953093595159059762828376906484767877845838391008817630257916328154318962644791961631384509556755302567252391186778036627529370708899485861316409926723118053433253662124124420409532941241422794235609087273422705774585997144386531096620695606586225478964913876254883596416528237556921726295827469662083319159140738902904173657535365241858739003174311910609362195747614166845335881961648480158154686645697831054233337763047196761182376586882860564992691412436611418028860591568883168240225053327475720111468497916118748163559985832940053005396198583039322239750809928652774670249660632312231155362466113260736915915549843576625364281902246078750497033462296263566107139079621722048302547384298984756509444473770281046126635044942758049475464386436562378917253312922618434191200722043282415332292837998793974842297482687113323398806390984855863932623369335244293126132888010821582668794054325738011367683483166121891240085080144083844217665490620873628941601821972219672492677650405487353632352397340615745460301986028821732811758599255922013809401850665984082019202098494116677991870080620755037038365916431449887622876633353998607591372388991418634865298535699708350728778480480755516613917398540214000680810684065672381741625617483997352938028363993198824518792840718612168676988710910552936481835632236841303576467996159576075208854922901969531124244519715801008345187891768291378458865651548639620159845145927162717309443214621208078246598175318120666709083951980566161177177463089562313589553499712869132353561087252270151915805992114533358561083974127733040508470199398379528984729071789169790306319783922520869171225231982055988740900084416684000196572441233448977050471525589022796196085124959878833284627596328446721935754076474178120790683899234873711623635901568954987618620152190839229038084633258977054405843698453561030393454526619904955297856095654340099040145980207179870387403926792215013394859873194546001158053609090201856418178806646459016243156187701536337740560424989852114881018214376284219494659026126688191308105302284266482910010352448469726472669438590942003527413032721003246995961143382768970699336893242828565622629797492766375496255068228726212350431620705745465477781188375025834443795912154605865555696222548163521004766896898162521492328311328140366093817122552515223951999215296649615420236297973323917943550471232027207408864804749191845961846091463299285253281445987944353181699270517015821344380760246506191252561225081461085247190885460830409726107629175569284102154529290822235156657970145911639433168915948977498597234802178119592848097060132785486346610600189509414115767894667512854655173735978756249361296756031667068910711359360264010294946647414905847491385219091449967554779538419348336413619442643631395820315936071916761849105924143048418933521288844325491630694941485434845377869401988159974726459087573825162983208765027255545085130474880182495973345436926521524831348337625747647462610294367830542419913755770465612915660811121302353733756501328250565826506862582932854471457939096001258804287567245476003663157751495002693329441803226812846340324867866296860692947077416843849009528698011999984292988065412063435787729228819175386110807379741010165007627427802420244182579566541895171169275934873515972640064531308758015633550452245292785259721888318189556100841577651675886328360732810857428738218221620000869049197517990897710984395727854742026625705546887371820082459681441032308064583160251159276453460754166548797028366919149636334426315172072188196246466456665157788145853596529808165673700452858271557606163851144830766763037927603675369977165266638788022273108971019220859554904215617993484453358331269462870509509328903194662629345226859000114323206235231401005842541410593986398547855222589934393285530287176793205773314526731251699174343500557175305010691979286696591902240568223495353452003017995818191761051202729676024704351051542839434033230339184215959125853077538553729688079391523941310293787428529345000688108534985279070047393432548062048056801993407355217579310864965095400690950617352932968546820936330918110944050114908120343080241503592169354943779078157500608956197874043495934980985376789312858708190127132145706624580604026669297569562001885718984051541866315253398146093309221764288392128087629321835061961940838517932249103982124628108116175522191291868805278177701034744169410854811112421028431600783061400107044673974581973034337185293707686656423733051852280270100181513083929113910581628881949100561541889983115988094580678396041820621972173031144021314653561011200206777452323595762371457554926044282879381147096443413826059729519560800647997785390609522352473639560518733713171283078975305051231923704752566917688396027943934135719877705652415699070747912886406311143798687185979381710571927234040335351708312150349271428490385188285624684840366151034847901072559148972909506140752291071513810804649723275859591213731258825231542764999904771398938187213965893843584340021782869077519431054293280098827994688115076964083841062181893295762969285237688948377504776569985240019991555337816527776916435509806310810309367544560932958867415196732440588966954362466949899339064355310640427273670687063994689201038860576858632027769628035506483136452107822517319964709939399420783971352153577702293153795302275987621665415992699371214539781738725952716384855048726215214414249532494828112303442283225607201682437453489201214714565992608331936813198603933250009728501058414818901693305927476601558413628431992431181920027554132095082408945538908299474861278101617712467270057114691770392276569839607553275219500182598801063862580617914138639899303278418407561066228786178241192281478710464994020260454805183505130975135504777371085683708759319968386537030828861731429780750898693072679067082931552793688151852542058060677296835657881576102194025296950350265640864825797661736700701382928139572085957276890942197344261574365927934514805470538814772767008324738005176570511875624121321181170023278135373216049080847573908142208599304345174431387913874268512049411013077475877553134074787251672424320933215935473778303044336951805497265222553578598213904617687192498139683551057987861944315071681617725723874750976660084143779246178914118750506732030764748200557639210539149733694647614161859695891115180266449467766063260928008434699675971490911366267029031690987071372998322523860739792750143476586529944405654794354927295582186190584905351605376282627717346969316683698241855661976810785823277062744561878417630570642170280571169691582931867950304987364382938052300548795124175625063950167124242019783778482316621809057795062100059819669308805502919872952029482477490379559052422609865020485912369442974670039497013999175848822568310774938756773462870426639959442624506040659996580650642907954588699626824416216022778049620415708418940436409577165288651314353962742437101382667917174559199846177731240406538498305458114582702550373408670546392138694131672057358381355151141846637754317513608587280876577441110784961296336190285753981735719510139189446658192060112521615403668179548215184877231356414874121932845103988038193737039650979999284944715961762347631193597945193784786177372164822683629407512994646121747973767946307322025806712414429805597305989374826489624246942716795402266779622303975436249179376476765288339926183408513508732596387053048850993927103392067219044330984387776738556711775248387957851214851328487164740665273234177142858191317404636548173970206631563602852852043015968978219081572093406069454825600783367015697323252634323961771401065101746899955705162319577768187387394191156916356748307878520094638313603317216334251815648056330602832490894446725763020592699521025501327793900580314057520219526952436832380683001000291558839348859132116357238382876631862069096720487369453075829640946809864296986653406288291759901758073707140386376979319310364983008683469937493719000584233867390247963772377053944430923840223727853512246483396168389759214511783619301954036184997829158281388238184686258943484785346037630381950511622139167962632902757339502496182915727948872911008307225664664251112441874241201603231608343418374973345978450599948418185323707712425051234372317590574043387769328145570244770242680134408425297657255893047677069504814626019039403359448456945905071845769190153631703175535304669340279180427972277875536392914015436808648285474907756978605761647550548166284821168483479374557597202871010422480438185468980186913981956201894521319578918763238886397527660170613292951034977205310436952430226089661548675059698403678786514004916467481473210696065510883349774057059841564178335544275755577767386289756508644867250567140611584489348534681114463773894996309032277514667816437453847491345707804852650378684619031385598470070712030437313825060159105573273609007785069479943279389815242706238149440761966342519038523331563081914511711345954812306155523837973182710560549763967314759285991339712374520393836402212204434720280831567125849270032455167766137928599543080098450478676418496452870863969348584229186757540820384326846146042045398404239880124978929006010953568998954543499588265801130895179690071096576720220186339471335721536162395591285671359444874500264935276450337563358618491414798916199317671652200575368334324444649967041334802657722026954222816333735782841670576425728314755067254460705165360982649703701552727395130354365295685650457267485181333622736879797946001764571287492622619406843206724522324706998328793183155964985380125188982145000812039084090185722136820502603833991775785199628514364689051885458893930661711415131784680527257296003863602602410087177104343541280930602995864324840584185439694024147233511987029182951097371266400087530172893082264350732930321548038198483770043768974637942254403388091328772025137920605818624057966325161496302923311150206117294675778083262596883162628566027823625094578680386421441358037194706120687258635288884111655206438392020087320413966828390440502520672767768922316125905123199066665008336457327884805888840429369951266007500643114262730697120585718695153087431150761416145883689237639986534920226767444975185837112631105564535199275440670255071738959011914504682338121824003002983197242245851996357701860454268287630042641131641831440887419268648695985461931828166562501923500876085136442525004020831300984005323402408308059570650767753453103920011636429559866334805696035818782410401753131313116694042387243182322745016248005094535470694512559168620385899981133816132733210022375360566869936997896129172864958126106534617141776557807272825782370833967415477370297166684658690051541721742442259964981158189620111298261924857028375106632719351602545993055094167546622170401347868806949383748106037140747336721334996024040665940858567203180135806702465701779430798947943866222311576581165684330312306964463276981815688321999400624377367161379335873586482424216591010678345797708453728458082739193183427275680619888216223384941694969319111368678308137641659375387434671086881096668198781071897623054905195769600328683661532972388899918664521581482345009239870274908581425145171105161241754146761346031670425802201168220729769542767651202910292350405444414213339974763745977399330495804952073261183674444586054650688473051160232353067140852762354589080618883039047818417346541461973955203097312163196998477099587061688329489352893700350131105697591207872757574119822391029747271631554204081518977686898960403454482051631526564517703284033999800935163671376834426496257567974884438499562637924855666335545638151637915896210006272840899204808661117008311186254228830137657388840499233950649539860684716991688119150111803627652492425123558074689472748536839977690981191339360316873120065121448694731900525215621515352008963701905292581094780943411378472722754642110584725054004295227145846851594700573316637768021793263154225463078516732099671668631732438164794096957863856852710177620224519446127820413975095218838770139163819022393181513476991121073608251471848412669390846448554817243662310187300446977769868742223521865313902676912571271787019147210314087366537823141654291754290966804130987200241495064701252844380679963749456123012441701310637949620298833484788303271171121887376968832599402523976182277479672218642846442064163497676029173200278101826056575662208160935360599834059391775516735521958455500446869553656743363753677937079301591325086907359120054689388356396575588984006990415669945347734449847860777027771071503065528618833409025788896328753353073673045959325724028593226816543236873217802704307023364263642121850337372041266668766419814008450278089247679847050979372505629253317146238513527810495270856120287332195150895333313494888765052785054966040380742927775313497838886965121676977816682190255216887639169793110078699277807901049359332725174277043806711589378590160426343447706357588869298303699439126356780879381881633361936564112545617584283412991915119360706710100248110438305466312269286601928453674535275727588929730311372225637750576293153091262106931862085495515941410338054769582121082023064344803933932912944185445955196306590325601453935574444803018541602333306910703025743154547879123989169508326030736690870787987593585931149433702530646591429258210826318172651550846134478542153791377026090484963691194738636368716065682800702156906869232474403156075999193578551844036177801142104971702989919509989003155073400868494968004188040324089686329164292202784168643336872865257542439777134401373100459636469810013270562670069289878379055639784312442852141089544513382988500371867302605918314260321006188646398195553052167165616550740339215776290718535845945526925683324818042938433358034541831839097462080480174611928616690919710594813964643418356081091912339137708279942799643625674902314574796087013189897425040534623286372516352387592568375581274721869716768143108827242144330706251178177162016647839486853953595957135056464115011164122630759113743200197017496720989279704075771330910329344378167656798570221066825836132999494240473698617064820544199416468238097655780696442368636916594687702453670926113444559478127478041075596364695397215121131103766751956228855390400769912833770932730399309902155463583919071655800036154333153973485301165254803257592227668283534377250181259240463195380377522712614505193911985083008043711734828268811870502546712170932156815789314010056313884793281082442498946824132063425965779079864974519716019064225983311335713780958481784998719707180456068793744392696946765407878503297683634894741855043474143249626098598093565661675796852347753772010545642786436044180179326145137564365328630022681393641707076837720493245867339883495055089328562343323800937097721704252988330234229554833086476652434002852966870603475944958121373879017481861963027405864459573155700772794591249818666477514722209425706993717491205243378384806240258626943984244081118585235376839482166156932240488078203390760921863436229067297528790969514078869177042386660369146065831153282481723297376709138244448241857632045804428918864215991697436234396128196823441691109439540341823807457355459120884268577575319524874102488203816790670109381789711943755502570390240941939873472113230894683308125904317401664868580666288277867122006477575501899406459921679064268397391926079347646797722704700308714202164553058809860817122469434409099551190465180744066088276194016563048511124548819426976566897367596896584591297400129900541517753418769510427844878452355708594988188063534925357128538642611150740944075710206248462338539114284036785040200851852546419661890018070289791957276078303005669595482679962925407262268572208572523026645251081466291808585320144389819599175389322399389055556370855145910369376942318974692932359831892073257697310547090966324786695773625606291085599648455201356917955037599980412705567873429422452475247089207391859960449512045027899762863302112917558897844325157456535502923420958178825262561234722789136970523078975910282178980269068113264775796250341628571327611582538820289236848300904963700200581798406993672697539066132447798568261028175891822312134668210746386567209263301021916696979116366249577419428708249313310820912445891438971276237082380372805637534620881089330464859258221101265145639558168827599849890812746507276993249375540268791470447596814344830400831149312968836348564212661694631616647356430262999120296156324444178147183487063012467078205189361820687044095972813208850191930190040122990535868352325336385188616918035996501953529806223804991025798638807341682322489307032570900608380114284154911884402576845658995715306404320158791825848797236591954693300987788523920575284829568228865658114572850975518583101069057521996871025948917628222585848479328802196138732730854843300762734438940678942484739995956195289090734630973956023172940302555526703179280730134005276534653517035079228243368815550649913286467747751312530007515371127857714988457847171027651779751695130605322002235691227807848285340262626564384573897903512818588235724622319524419809496932941493053881750428968094550089968689236642447644116325960691727356169345293491455080128017240510283437219247270362996235837189127902509017122774561729353364953308596870472518204523275899398532329661257850393013242300590233676905896035631207980296547445544846967196572155489528150573431181573012867331008269758748855403854739042322848109344525207121131992504650589644190644460052006279488901083216214417481451552154144152431427514234602085859737844910203074229608024478471640797767939131702867805801870713895726551605253191065735948972258060547718780833741750509518603088930467689743758720310830867717508507780313725292755021489755817064152062276137962887653683943772895482057401484825884942295720294120363522431288129177267104063553276250690382427159463534006941462155914416738090517635084075684955872812447239386439079749259418111952660111830671662543866188591837025986307110518668228395445577028176901333236345852556825144807073505569910608736011702653294601140493448367546493015891633778801603609386110478942024377577500765673113952209964479049040768793977539247150589898238618490321460894074727734969691478343419072780554002011971170142285373301649438904775167326021965783326843641908149637609765453093871053283524755811716778935473406133441140146590453181421048463632830573882083417941686550997184518687270363814861688088263902395459870755825946817310191680830076061963558373617688993361205055178816319758227379431670423255664985465230602327908128073624850078247178796987708185287954812512569871300675946501399626397779015389770106829010740336782579330989035729159851726939929405119612483886007731567450027580586565425983452691745548182998433082507763906411896707269982335953418956440697446899089094450077370860308230762508120682114234738493093386288896344200225057808858368661840512529228449909228368398411158517551315550199595058769864834468831005100220033829867826506921930136330391603767466480650746697027331691570138018549659743088582818288765286939110214350897070849755813370763476963429741711280505264180346794232468396884898326548646591491240456195629752984294051723394587660059912757244707331092319853135081945802354369106134432773775681405918488548418604388390577475486402014125755135393802821536866993506189574252792986504283736566652172689865502216009490153086697648670710068694774889596194378332500929818478213073177733989397513624914456230940064581971530930210973991045962342510395593094142719595270070998964607793726227768425044891462618838051858704483877381076384323349042661785632936782428975206413261009526287325638621007081228158637702635654252534867837592096424392078858984959440426063184568849902070259074834502270871066440378275147894248826960274062954905550070310130740738317182266492866863845927022047086628313484948481187029571498186580511014402975110376567471313841705253923461640537767655886528479173570032933927970531351181610254957955118636501127567753803931594427942388761124977321578500313958156699333506922794092606939337489975417400577153275072235184520695014622364690375411149036191910227302626389521018281255458292425262290770277212957342045489378677419340447108221180266233761468315758251608243916265318225892749543896845858014984658978253282715680795097967479326805668033357606512055330750499153823565861922058372844450072736172029941880594464899851934339257405538728362949871566006357518126106577448430771846595947117446204248502322632043142273368986089233967205126828481534433752725365962980763594459161721223636424734718219673414702300666188961045434069796933003233682414071945931435307310829061664696411564848665890098778478383157186220517363518781128145343251934858960012892261900444220858388350567067888102954771677112067046359704355241027312813225075942544339852546973214853523395758471661379001630161799035645617181032705710266419945424471065407125068158511605071022655875807219867079506438271528940570638664609398915468915822156493945247803218745964689190152136894012584558409861035833263408188988863784940386531354122799041065241173976764835852738308398798210595015448595812916857041063125193233300197146355451995939445698429409298974756415960247395403933906123637222728388383445183655077208283925110229329317704654856694957028185007928188445099930067949213708030446120072409571005853519120487733831315147449293606917164285484521416387861371899609141864507253063432649569365988888968910629786242201979177312332410480178061906351902502411698731568912271814016034578930811849088022667150153493559313781294114826886911042677621491166733474304152592504935159115495417509077079192135721059938339696939305897517303756415893432200970195542288418241102386806981432728898063816296514829715324441143713098040552028316795137795509976240397414686127468485920817388636672170688249883536076745458932372377732284356763170601801036916928902833695293000767326800097066167061852188070363572654188921681046203177549943753042016918854916168515793668139967556700661958931099822109008567516845457056394073526188969708196379924342957569701547657959799613199965579981507071443233274588115081450464614069479680446019881648434615199505720138838950194834567741377004238316189192715720774292897906085103672482349642785473536866602561700502442853353973850480301630120268247095664766876246574870908450061431052416999060492101785975775520619046996079857153032194778092499014049659141773563526064724804707533206390736446280663172702802438691668082977055324424917203057345815639762407141475205243595350481771240886775259281261039012804316212990174362328788728455267341853542614881984316868356314499869432323682053644484610800716613403825563529021005573054720325436329731326583558883698113430074225668983178432123677241711629928644314855510651006753910047964763519464351083139360889135365634072779861887733147201268625437372631579796787045188034434372267755612562289356428712718323932045059194229207312276219566553048468774803065980483771933833672253720056775061263919169233678215127577256323404481798799711571181324598580683049054462306665963507620779766639576567423015001060101239147365305513546115479246715397809664031443626335612248490435428613258793140939607618339188207435443072765981148827050389227244620287332109329084973537421564792261996317412147221201932696047057926654990344389995204416237496751165447531481530472427910799953619048305049573223223449537033519319199932225606069669748886166822291477637954923049230783128162836066817403495096620389114330435559683626787390233062091753859832002336304998559796574427002337199028390088597108356260276790331875119437118477613919247083115317931892544266209036192518318557792169351990267615665462365898896827270856013749881009179993920778647133969988124237148938362165084265964206886417311968214826373228183953743404075763597162890681140658235949062457225145992486641211571304529637475795758177843750858955535440285326173357655741692559546228900658604757139712327601353418378653089764818828242811105428741444967328525609491936424255762354253444609226475890647924771744267936387293240058059097828745467297659691530792680032292945024764620703820195560422236459693099523147810840659629212748243580507740522869826947729871479129464953519239118137478123633250173876258161755893301343165549083713490380920642654699860530351450478720599429537084241351298597206970813680866766244017387560311209291139307992433103085555549708106988628911647526276022712090734877951948894912457247337200461876030969523334342805533417971061377566557955007932717535815999173106015688648063499458677725549032012335339588027445233176773571037469029549923432487122887892259766592366752201977764637166904564512411449410203322512146194246176538345274517157846167538247834210206578445630502221784750938157074606524961296011750903304376989672272264159398497781816979700461407797116852276829954234181928503594815800611727384673220456095815765349912786239424391776362749892324762586022605287989353941461295666486367519849899244398967864970781208021044823614319400875037389854414451001383975925893276575050524519973534419086297622370505738633896769873690232842240982717887642478940906092967801328203708332708726540332242981483121077481472669950577985152034715886671605653958707078032984496536518310301060457042123735635234388312064725176958145306508212162673524320724504468707435840389313188400706288557002656035687396254347108225603249546585611137031823649205329397876693002484426010221208976531137462407835769676922463284870211213592406582668843757129188063067874390421349592369947281843650598280155059443738734597262478445048387008858960117361533445007193847190578561463535848993386874167449668116320966100344410513072056400752939575276831184137717321577742879770888079939063857403530816622548636973973507846062608274653292095031168993517237365342455957582790479158896838907814566242474834657513921418749284018516365833537310559808846425831917602510753969628560873570416291736610834027424724918228445310204325843910019510128775044549055238964590398326682223505344214038391053192157914833852691684951036506709681199396896606686932946939683364227905590598242243999504780721937147516749323650641641583361597219114254138764602663780326111456308850593846322965349858055014695266486418132006501624814327022602031457921580418861600080157177041316415817399545262714947978621942402679224433960238762679371691473946411216346429602760678002881025789048152603729921424394928672067068331524576922529166253919941268643363766957498197090477513210285214401652116747379753480268770337312257377694204943452272172364414063557403566424334980096991366315269829565488385583790822138865310297739209003135107141825083876448531738361044758767477997608994779434949682770189689253380743002931534651563291391822809984378676670849828166390918191462241566583170185124118378101931347570753518133971030931050554023961637169851236322470032594928132837830069202764845549470110672235376589933464053579419507450637199862341813394052690121923878953024662087506830847927383798704084684417264857296440898535556924344300354855920415071841753015907219068367276378983014207572789892408629513173602093165894535599336679942850067204604068701024779855310283682834170151085915697892758902090522500022236543132931625766838873820477014908484428368244199577680382022998264325574607818449715550421173345530329938383970978689634142460732234731839965265572366447912172589893743004959965149975144307312698157093547690706700412949716100491905038744769373023304504525011409848116360454248055623390668741876733686450280009620529780036809627386250272373852678775792153994837742147854694727407508369309487000002903175086732803734902258284883599445684904610881405794451078230546870008616161007213172235962604667634157996409656451040545419900180233097544620856376774236485627183529387728490024552322029246437976502244829255949408535326986416838705980085862930225068456160939321803859106010465770373433408712279712330455724207373490882830171077765283681452142876871511020376847502403308274292972536228693269848859163450234829605432095463887828656334505318649831731515216398259312367379033178374697398862314904789658961475348079885910669245002631805423513547412314808473498014926492796235276340517574343464888277829610966858963967765893668469454633317681655306444213350061998548691024215735826700526705015695105199910573394340314559266250650000573188641484439622432218528030437937141546042058689889635485339742767854900781215230681482140806996958046438770015922430421665693578433765492240780104748352862515166896696136270378452887874493129927687226119811316440712392269787683514281311956376266263441177889649841220214777126888439451887538640525940602620917897475359337247326463948090460593720868795761801448999680950219513243964808485363324445883604777997768682521871310361371290156612537326565323572776002210556109145385382546946972118694576554970886533044452559765318778227576408238279454575369759906950624782414576301874420519408521314393316630688171578792977186661943898085986473393637156625325812212114082528700495601481113215378843985955666342617929102861308848083133922425420309178261268781556376613178079419407857314409412036070117197058729448212209432058055198494730435925481115324648191994146343004620103704454687823570209789167427047512746823486295280925527305108506070195641646036991905589584702960189931335421730298675801918862508306344668417020572472011129682298125789700683307717471031956024567407167694220407877876472674994740020860108762091737174409987801519659228512712428036747237371698900212466235914176268387446254212435930870075323700464128740298001632161141067967081025518543157870605225369606319748407427993707383668269557496933835020934284079611627174877746338840764988068567411851980019550299650214391877511175000570864101356554697811253787401311092229502060860683817636487333041203972189655758694923099413932269957071513178025506669348975210504443605124937352686648900135143141867873384397314806170702831436577808651208920166436277398401722088222460479384634991081956900349462643802445706078888744010281880457537775884410761645592668411751511953617829171343728721459112118313340097445594038703896289242106055504873063705930794135254516941529041167777422821852579053575401187760437801904154396367175261719450919665500068644576470617563854172466529849100346165463933094114195828851912210188513568751141655451789827630238405147787032730192872267585265694488203322420535066651728958592927083028018322300212506582980866834380399453011329489286451076228811173637163783853585939684606525146116791806010385904364567238507328957762731967970185650720630786696375208207319377356200167811984655738422633684723937547027724534099456166773322315774621435011850908140603295051302027869659840682556696014187944842645290726800149345990587567747862909588937067251479349089843500098016614777869670020294525723641775067350949227835142150652014757520681064677250605081623316866610226223606617988686238796207576597741689904496446732684169963656902832342322209221541057293188612163331895690293319723395336694165443762521557856699744004536689299713613634720595965909680249122179105391661941435916010346834826351920613055938019113057716859084726987474853327514468073425878265443557607678774911808579033603682609123360273131789504834377024648379758161292603747525600351595774222742856101566935478077375150296125623392005380996265061846211460318350732227135766859130001879602144983906481419693648969754805900729349493677828116649832515625685734931529817299463430349182791777423734404888588288494317273112173161691013830099101505202817071300018019302109855020444534513379635023063226057339785978413536238375563774023704493966398077356875915531947209300408834381920130455337129612461565938102321180884439795204008298130469387200219228102705155039773543551462516031686996443114028181536229902066296121582989150879218688960365741034457628061263846312850961953405962975629158019083681172064952492887456680341973211356008942759877666589597559057421630440438433264435462315272228374581925042840692507859335174729894103244255936116370156646727922329534021835974360636625862183481414630473176523178815180876107436250940170986082841067797288915361768046036361845600696875795613922138716570774679165934377697410310593497836900029742856872402546081470979765971868451218648135454160267222059430058539884178458124905333396901223255653864318082013126144968104149919963187275509344499388089285239734633004616111197165704500981445816048994202045967025646464513952109307191033542007381752988217819459071167800260864832636914858499176762717718828463832319200263975819495123827209624570404355212710373969791747170030075823160444785822748684430015179885999654364812089073854609700605211041295993135858293532127995900490970282373036929838838880756364782532994713861749577580278078615213636345672470462567137107443528487601766739434007870454010275054965002032629423889129169651511196388146726933859042629183798445597658069911549118920170943585179239411248096301368309451976126109824640611155855440337970423913132656804432200179265326094878555001384237699613596277119131695133973571189980701512770685540206891436914485606503443123635486239821122221810542480578847813778744301273579833181952203052482387809658586619453166852122653747186105452453395572134526911589018887634819026556572288992779244168593224689898235907318583797623823569115753175770595783823875364570118106098052811438594018519583528845109725087552660695252420577306218108218069431480108885897668653552050757599265300185830854897664288328968839010403939587102968831487504197616224080972436306577146542317698729767704330344801828878595684368151475156117601400489959459809769401723601319390019867356318908329994580890626229167008244411324608110655246323779248768401608673111423105693348364200476809110611495686081096083274334064260662148770609758700367146911393526778373337596286589661182699613539129432633446665103895641373757634164129540219399372084520125630428209203951639079916931387115605170951609701680221059693510745974793712775706100013710927096425646599520557673758956736869461554643226902933495870073442272319071736176088977041842069042355591304807960818358422090728160877203138502375974400955430123212207899956113132774466598792639791178561305632215601182651441301171881422802190159879355742612687661708946561537601480355892689123370925734720078222238005569489738572587643849482485187628126864185163859682691881206390880027182914370014575736141504687072577515341119074159170334155201528363996843813815715280899303081178426911198785257498151027114049006671826087086728693326294323035307611928035859826106728791320443301326997975017934891927268034389576542064292564048367678958652708801496786152888439966313776330664698113051562807037152665060477389109668783393526862836755844951251936345222784913464935425183908081485202553051745856841761015543251389777348110273860225165604501564985881154504859408958817799196108621438959569798276987230615655249618208215007716034893199581241259948148690310326247809651831165090556212422539479841519900853533636482963801462458152491936822982753954515760960359450846626133025760070657142520483899929865322827851576715375457960402086399649419002821218996963592155389272319248552730996675290873758029426935540928583539145844206038170122443690644418725220538716409281688376522029520044830276538862848113542415583781745100105672860995933427858273569688671771897370594415740085230141513709267278752519285309088154703398261422413803065439802508365179700054684839667148461493764890617717306252581352088394447621866877737288773075383325592094692246079703878891903437044515051762302984533624881776649774049721000318243902427469804122405558983489592500437564374271164572787408840868280080281614012375280680891585538056230454265171787753126758717791633825116878176553554319466087634599655164094824953498237320883674019167825852150315024392224023408399702314419269557430613667815228275975198392694251914890480273853105504582858556520072716393384083957692009365459114381483064455683111794904866754871525026458308626285503839789753107891714476087932505504193630821637377641552218438493117255314659944701092576367460122798857123002156312433289934343478171222324078855881641010528425850515992711848194748409789295747965207079109855634274959300259998038750443972107091652281835220751079921478575291939105588874680458937878448318414462741995895455135203283589413994987290748487083464682935754395826823669657290581527852413027006360174921142414219416410033237210204070702602397825750949058860713620662230671933173051735584808622581846974068510608946457748391092750676112302452549058651197046351409137268166143617288368988058705481382618600299690739508270316215285637243014102044093779392871327535814153296463708999054299717176703473548800094023638080404903158574253402165601671731009931998324762262760729694597350121287335688204871708954255900575632204381764954125697892620775474967763278765647589577598623681215820470972029995560582207268912466434256264831944845980218337522106814015260851256098150733032341135014015499120777766900165696710088967225184521704686326089441680937690043994132726655788264186763174261582651740521702865676574150004481125794156549449155182274109008431398334199037656020884838170983699982825742387446624153839350720174070887860837026186352975110093201936293198167803498953351778852337345300211866272067021023066008518306651434523733625921728010207756068105677072674888684798911666706094712144492764915405470295776118171158515463067397128824317021083912280771897214021613885395725197607918723490622254158989880952766083810650326464804948653884874112195819036009512420335165639955377374280146350000979488629454236383289927092379236950842362085844490047589125414853260114895783225044379677927354560215010373594482878395286443745024899654533803277870307743435301962796246755252796392316235737807030477216119275003208185613220610950936715502852425890531974216371190086186331997383505845762282796558871001733488583404559011045455370880460222237511449206993868936143632120051035234727624317170799831725546596098121918562745119760832292785698295930017429959736021787743650012938295785917876716632630057982089722775551333620178850905517149605565647865144212659262249266469771757143700326609692961541341806011807071962959440779833693506446495984510914308298165226640398176510281324576391334797921525212485548247985309191608096064509568586487227953537287598312155525664680700821824461479073858387249990527282456764577681817948074598466874608383699945403829940909718767111082775015014605384701702977839687217734748318205103612204038941196367806512697981592897791377441222322668627555609982518014788604327463735072016135610135570515502120899974924709130309300031065652090834690587887972305363300319788257947878331043639892886659608038872138839389682714336691235697117800652658740900669633935425642073386719394048429473106575856532479548318673528566517261693094515098823347070205942435188846280346874539799706786136656594651177200491105186685203488962514294201647029056322004753820240733368973040645705575218697079000994141088761191164594933547499052279037729688321253650561068420540213615210541882935030645207529376319797626597297711546902635453349897723966315092948669698121864382690719920755431945334921652857292839845878230611150522669410948245363280287724461380757080112096247870717052091750098533471144866245737430959912508433980603339616355784266831791373766035128212486429136583369514998750558301136492613317456999427408523869187763122396569499259331781128345363761416087906809395326933471520834159375227298512904690461882520324311460867728994105052557287890176176687005245836097677667296475024128303713448032133267183554999589936113534009874670331323559346560384329059972406612747373376922168376813278562809752621245265287899201964839858878236855946348434409087652236347069908416115419740804112772175435585870846452334194256424539539035690585961056023023516771255372931329387811756932244251851883877854185469516488318490967974773072858458953382939722805467860974362960324056761790134615846953121669798427540881525278329362713816798935205360737684625190277057410305734703011723666563583174218290655682062948908633740142866275818842231450978176697081593147930562100612704392180227591933735246175090408853668368491530772704899593954126882820478679446871374474294993496325819331750810438109531027361536858641550319058005748758465087818916665869951425114665892822237252969427073095576580994133850715175188145788763009370619747506442944141005736867437562064620384948998585936309435497867779280308503531484317547504589965561341750655633378585823665252504835891585133191671309642585782833138909536084325446094598049148223217965404979193240498044237365369433031555659794962794415436861345517321758978779630595107782885646490000250091089640226202686193465187248811033835401347138832165636956104813756266951678629955071429948915945511588819153702026776864809653751688252595898264481819710292481510435304449781280697456255550951936323183595643373794238793774538034370972283573127164162753608489702260483505508190735983558089781106838783045282420012429446508221460132704281912989416433123509840454029977745827015460132162764378591107091362732782447868808620981337346574360447136103162937017315207683419642265086366943536476414878505008675839515470598819732081795656208544519217944417525890666034718020401018299499317399871277542158575377849649917814556898145552185988614344319372064047843568387050534031455306758074757879934688852502450460187671568938742946207856576626713580022633362445606745734994099260687816522262646997064164883790173652034153939824227746526888511964775721659662275839640474635188327340901514710789649526247236094462113788580568502300245321960279785451924137426124334026431792437479857597298099736931285796206032305238258181030078661387383118741018543003782225210293806653776108787460979825988995185378671898724639534769412326054502371534952230460568087427619290841883424899058834254498795462217483278819521968077722188069858093348641903151370385546236995463913970315993967414662583969040505709786024063714205838508437006189764240740562098812138022468860197307683088942332266188993792556574919829049312986627343437506842257756333936639106801476157787945388430443562359181264566913639899717555726839505959172050100433787047303447867566641773850450521253991153837559132075853735208693579989707135230436858471793443554688829263003402264823326011708514084067963773601941046701815961863237597256346584217589771192045369869497613830274670601412037014321473575946696126729363036805509207579223181677882125115523646816560562734390150736384613249113345712710256669252472140236735223858434590366389094513349841640186801276411618486916460395444777319368101034355547060075689222365465301447553887139021039656894722122291214237224163783869234407642911233543622103730225522253676620736695156643301958587708686950090564037310548165984418959972552359052455789486701654189078409651263888655055347806579143181032200650188081824891502233138927900019308683119877781614120918490521385974724894612536973851408167866538338219538225179745157668016598808584793303392329108807967351431045057243406368691934466654113779944516062500173077126734972483522458122045967284157758473355222249885998135811375740906237691662227093580807631508654373242753566135039638732819008490725752979999474206037958510952542364974259520795115745661201407075195585940511224111017851175387783572575186988380621444040242960383583200655226291057120487790127111923850081569772174443560282680897354795589353399778986076721684342899243945086247785351087949107454489535707930891333525250869688305850644942819611291186294941512161889124182519041849393584354878819843813598229640105875575640763630921664637671740053402602397853217559969377995900660767024083283138719636158785512592885715861007325635409846706691773382595206977495473659852179769461038860610498623790109214105446487147716401884304326588438451963039721720376560502153656083196544630517935928785250510816161460361924612741945734716639576247925965539233507781306941043522077978723257087235319310099758319838278278333043196416399935917144575530225343237373492750525550999343537568906624869187815572762413009218018112768078175756864867079138378811076318586918149757270381632735279873706563460749500642081116322508356438583293849232227566936121053576078835757897972619717990227213449914618616376769828710382441684380818249424037070974473046604878643579742877555113414500569691174463318095242931180398038785533684502425492234047518713050303180683512774758154310354455568181378991453113308113992014849581522518039984827224863853579913913875498541201628896828864201120652270872893975764026382949328542953273885007082968766543379771742398588603771894098641902976261964479970944291168693345875763469461310442219249851744783924386166048210720860344125108380462075770683992294802747908135299496098716803697769140940615836583695432216041487509458541932721877361576918210486658795848753295079485893166667942520244774580183827861992933881845154323954094789171152641285686449967680747153947702464767502429524368555782807854093617665920242269228833770158793399117607788797821351778063762167201578388387786767369108863681889829685815022443031008234215215914840766510502063690169893863002132905580207676987672442379686725980300828775499409122917378268933323464952153410357163814949074198591483140409411958945682838750048657568882480732003390583346914438483529405801599473570817411836073239768533032170589299985513924936361128675882315524255347179237130530198071062580826176123999469248233682272639751070098355828835837707982271036279211910414535801263605276980553681457066724267697261791266326827607446704703882950340401589375787372963436338038285709676237380600431004388890458967142548110951831335548116456007006554763717606633957093441609132997660776527344169631649582434456472932010644394231145529848724152022340351286567767393990424095089036966056150495470480141847150371511733613245913647829910688331156526863768721598729028779835815439950978442306913373087039112427983986977116366133035588785303573834553617566651024030353557727145773968410472177214122174553854687069095985339545708835717474418698440726085485334293124623096413615098655998490827819480497836913830262306681934666562859957930356288254846344945694120383835752879772436718623749840293527612423379649366366993023712423342311712684331236501088799770405010319818435417475385440194831166186997752759815488751353210286014714684010090733630513474515513503600238229780572914158601411215748870262032909961513513864761842810989146952375826764395501317148868341383739289781488453484070980171678494687336979747670447243097461180726084085427491578181292567195063001665579548321911538823448371248535785865445575033520409819366129831517592557172304324443185019698308869859837405971697777423547079104845556022139411654741016944694043362379268047842880517711288623404495836262709390095085091299037918721586324149656513382363881241181886775428352967029726188082687048257377080517556130583662507705597477518513541190124819311524915968899333439183068027741064380981959889669520102778310361876899620860743567402265622856866535097860229608320155714335342837161775227521312050483686021043455458003130311632219086939066378952241493940632760228143098882502664762186030653747309376742437221772577304184571348338725967770051934365540171666126791875304683391482214534094287820462050786047676853322225021954380837328865653658295427094622351564316450698780403623264342375456746348112533172363371090155042111386092151223921088755830198132490068897231057654064886341356598978553840880434614383043064845190858350403296059941745285488696202686673475897932091427209399827471438090228393433033700290537819974953318469439229274696107248203091100562848930313670830670595193393701939886076035008134617038902007256462358089525431615577541668146211601987710655207384841993231639843647578597671639918845162518433087109786346316321696292251801973651987329468314080742029129016808147052837998723744980951620495478466822919513782811588918219222337046639149921953628763593158674101693597859342546227478367635553257335045190644852878792949440438711122186841954419959076001680852696383491898092640541077599161705362014288519835569965043133789648814174929770320780386255086497010543791087407377457832477100618744625936147238209712068239678581924989357359963266845906066080619451781227287716766822416911037679848386403505154289567288741237300959383732277319021235971271054283965422316547075152671199196798305074194500725001864112045544863510661440816432800698295061017305643909239280661943646938852371443977828189914793937067776835035742419718372946955273643802306128941041094232932621979339657298535369655022977311000666385290044098003006445798021636561229234416957535189159863485646578191772620608128990277802987010605580160588099059575832831924327190773811942871283865543303142557274041686622805545805603133649556315262615141386489373210302695729340889589981518476380538978697856240689809396658179936355856633380355095236167478777544631614012817584573865371316760751785212047228448892487858919231884142795553836720986432923243725607739879728087403004399821994340086625376284393628632040005455558346610413316279488663174257679627114336270591935029109569971044877431116269192275445716764211492049298691060808863628175034718650123545108335029429623719451514597108709846638813067188079005927795109471235897156202201744074972245847173041957596423420777508405440355117542243911590873956866999824972703394761650259314083881269238543732906011996940881941458397042165497380177525428568094088946822066226406838375824077696866283045295229914034217561054917479214859366727554603525668123883124759285870598058807623864608932726581415473290599597752125555172995831113082022030439808743054459105297430118707700993642360423318309447058228084697071318161673803487576546933538296484931492856509731051250120647294937241130404721761337111367126545908067515273847554857890785386308191284074716484725687899635145471969676408142851702172481768662828074942571592163625951298842607924227018850314870394304051773545053762014534761091490686417528022319848749389050643951639127225078985753300287546059240116821691967371479347100519990319285764897394022730288854602489438034591492893680651392300854874224005808404605898578568256659321918153379487096111213446614726961600215953168112803293087462622672105403532752054631788304504977914705389420647216737949281550761958944738214189275386918687243858846630944496591212312843099844456340294669955675261585282319347795437523886771901567904456466405435607013178046896130794317141837444431713407581321532647188430691932090688232702738459599921672936888750058252413560648458882798650198967990831153352128115291654750975084176809612336385939767382503563617363063620083624899912674659182002896714232762186373143336625441349270258907744878776406051943603267428356159088624962019343832888430523411607632257728649933901470637804707719659488062233558668211772689246443461796867303476389389457469351706960383504903379652499472133072448111284011415129185928217883699935837515273671643968864090189082138696564656010893105402423195108377521125935434235961634708867568986023533305089643947409899134017206094161000262808422859516732599725670964963710147694618711747769484792108013426417365185235572380034501402200784938718368828462471568890364091340569002677215242726858015834023734430756307758597967345010295182994761618267495624270744336230988872936047701875934488928731579906323464976080680744763558692514778147547950731500672036876851332631599631088166254513410459569792938287656715421792567021790534122259878444354718415768740945113115853419936433202715520691432736885986561299040841151782286206713852184583053053700115936864990075388075238039416008470771771105762369424681390384279939334955760400499460374705514010268127521851539297737526912632507215551295703186954687447561330635775318620748597665166943691913757669398191895040017045467482424065518865703061487792566102058191575514120906252594812559804229072246135990763381829469808109419159524400417505891294065915613726798578539957570545533668959979118020134122236678126363443606268692071263926335690911009251745045986935666777171841535708052122950293783897074959126290108322954934285848214718366619516816692077544808711298861972695200788075431955115075085418334151719748436146654711243958201201097264893561476180983933073215437492058158884144235993939973200741961819093859701846775777776383803519619051423235392158721717529610761708985907647067221371624623479493947349129784364300854343897510256311005994266907685900799143637176259075797317923568956269794856356343960578133259666489958827393491124052476448633188120339594222695971440400215690244923334555968105300069628160995869162780051853361836200841456527697030785637115016614946142349059743123141235136679185728503412161623833533785435402413984095832711867373182355886853348995708213395612769154009718496625384627150394520354953682572251677527027172570299462150321382344255295687937515773428058770914858058721408802303032631451541727562807855125020727300173931746661047840047171311273014477330509952537561344978703885117900081040062353716095099926764890302033754225342276801693218384376380938209812138078142271997958651066854764276857630260791812383027263219230108983508073972934995432328891059016149777653242002711731464506171710253284132807940262619916377904938938075079394507439557855776358916862513231631242206764683854342454852752144475942605888273055940784317516915311387616448966406164664548139320277496364247009314245811395887377884131657530564350710682056536493699669107010533571023338471814751222802459389131658663557485566563937865178303399994647846618775200362789691046212118236514922548194939255725986175030732291985817498931086892456089807052012977490938937347532577149908362237879347442421439673399927702135379400254155594539871889088465609418811381505267561503071863846420128869911762926815874383235162312295771849669619329811170205497857146136943313526632891584963723226729656711145212189857118465942807101275636552079648243068595281936365666210184937535175932457431984715397158496956196718300856381238808768720484053671814845680974135017766992300270001522736934321493016751073732482320471950345417607054589636111394377953353656720834435162416676626633299954380035540253992162897577361745803646934176141338646892986833272668069587871165579150120765169219441682728075413075524000315145523729782343731505662131516628628147286111713634001566835039877597767916961379235984732839196750862813511809200534208197224090932871414743799231859549826395662223713007073424757413019617443953324996022653509726514746793141291586859564528677322859272693736931317723349034341050869585473859376817502611289090564300545650126500944171034794080106511729313517762475718099939876443615836978544239009448932439798054931642365642529402845433099882750866100985855592776024452097108842227965246528349256556284260037456081092168902703124008889902398759106317194478568573654326811691700449320664433549462932915423674322573669962885374548868986651540371420389915132432938546555236304118597596351437693436575418787040514137902208164234665507122797488364567959877244759380762718044638552642469892598540012499759654988707072775995821910152028701456607448555883056294241518813119240979575949896251197739028828005379934856739641108535224016177638981460167582173000920299585358668102530190908749299018843751116402820549623738783169852080391593978012919577451940355437042054202946730880359246238912068201959490987548814860756888495927495133303137709044987701056357148493731706176103788152951205805600015752565761746352444581828733386473131128310451952953320767074321285097016015512727876596576148545270752714249417040296816502589426530218657874801545942391240140611424052313802158823952836881488482266068012196534893609781118384529884968381524706156116398966101082731545303606469311942280145017070511379604170217843052273728880156178075904406916387744276038652836944185306249839927149376546005223505567076582668421294222922494864200651429750135637224087224443940478123710782234855788467789742535383745052330043075743833123135156664155711889387922980629257707054004219327628434660192274435255332899403426097498266570259384764791994991701306733762356086002444652107227964267365962238557263564325645554260090637282915423877976989020154438914037974551095947873344823453731811037587752226075128757467268878929496686432324858590192907262667101729408372408681213132997645595580973128798702306378316768347221089830855915468331520475384391240189838052869983593305075472521846634084263173467692761605749650236197009136708723614048912496535948293166752115550545777609646413491307790690460157033036515958410412039286430091388989168938417926667963484826870997022533122349550964835594322321935976140780931668161554069277257885854049411319826596798807575634151287587565370442206864257269890650242040659864967872293466695314700552360100953287906854385849588945540455620359602139929526483700401970341960788360380532305960078131744665554408724100639703211900802723942406273249865491065384197660488013178859586844790538853565728109774972538222749981424851372570249823977089428654349535723409495495689511626737455544477246532092825529650439646231024350074421755078576135422066612279875394965454918732193369937015238774538323873496468481045635244278713280376323673891696871466933224905142912024019758906660879709850133883297958909891059970897754445836278502748408974269492375180807336567835175907994114191848802954573005075910107149676302113561790487683069866442911287871871374801217759746929235992155025940880006949929557310861587970982603780586032999166334266401793425758154337900792172201765397133124812183205496997692758779393674700560984018472297682702716648488880392680247112483001102835478577583698265847682670587374161146202286406048906998934428793013010447872352073117846576642101463057641863707587662323037931547627937138848369720580682894830800828960446151438356679705472363178037259033226751103993491521887984274023793917802055343827512720608929147145350694506073289871382511613038527854981974386282525099424638201649962076088497923457111254423586581360922258108175564254625511165355879758319414889927291539374729027510621466914385033414277373768781798936599052464692917462445439311727412726354196234557944301490522209971649524841258211886196279404974951045276494554161547117980593255919170355819836937587167262357445813675735748594957634198231040872064933373318544422395556711024745662202435505018979419761432528989643564564289014759574374411493350286503066441899668325794580673990472575920095833287727480109044818877529058511258390381232863427311604370994275298615999866172562793895155782561362028304088829216367443422765176518287339390196413390885308995518759155995060737010832179485068551147487153397948325961884666647834489421005738413860855342722367648554715710676816606807816534394051287430620215061949340236858024701559262581499868662892797830662840264594757957943616541563036353266985084207328446617243465096818770291383693252211276805419674991904495591172517143467435513737926302928371130334463550201883634257497430847660691189848899154907005208315981302687535158332736732110288757398336290007058506009684713900770671712288615337492320601546349961345577800640424771887201990447950389145349356692647621130293606933087187693274802732876408219351340395736048617754289453677575733389321712065191032484640467249180681617179660231396368044178323067627484799922862631924896883963182920265840173467811254379217459990533327502193392550685072528067024783670510827596062393742737162365293331409449895412469113816972970494514604237389749606101101084463037669507859738944718912240163791411684881136709904259879688919305644987638026166280443815292173156009796927559604041950821233311627037113622688470240688932260478633492766904933445382521047402495263218365513158857212139319227343008858978806523196410769873839874100610882545622971767654112403797347440007928289934747154095979924715053278241442293035354641698068272437639283534589424388891005711306743656256791233263850148163551534408282402291703497624376293979942535145828135489085207317512951513844932099349132077150085843045969385309645370861983347288351496613053729722460126601415145896090292698276794060594949820160858893768475276698170438300740401460729950736212309451964712159733825502996270587583407044071057328615769933338724585036195961495909353330787176436847973817502616333743005634770795793764521815745991886936420926485344786849208751600863974265159548085388575471598623010189151686102361937693647615673605427066460016075795993816003434400720861074409914314888713537701784757133250018786817711948250668625285713719732237184855259979666576115033463810618397649593288757611169977153246497201314334744927979010055670638000456025784901908592562040678615122985655957430769393608488667502153853960980543361797338729117812499961355821407647344774609292121359772219948356260648308277764066707685559881733372041204308443346904094030695037980000317346721227292403456689631259215819767134153944141143858551118920437537070578158067477178608321858639662546146058796441379021661391665819755392845710423378751037246870455742613217942968820524010816462485326335544675262246710089627557870827046882049933854539648019655674569252597927059552088796328571561338094268126044370137434585028766697836562991678049901318005989576740631745916125230501018395359833396895402593772897570242124632937470797224274238583248232468619494670797802889869066149421893977402263435089822759106542874691426620814127552498936673260916705801345667166486396671672212347506086339494308055670375444640077655988938126081560156722732669390757455921605398024717913749891605959988752703488043753485343191338538687020359717075679861861099682251480634105598650873556621534938325862109158401807724958852923037979932174515742972273812683489526993086116929554490262118688783418176858199856457736876097013664010811796920746696589666413790059070276339706882955480089040556604299455050056807902772425525766027326641683907565015742870382157716076887689775281032224811761909044710062559729695482059646023946813851144118571011003100871485080790575322942436199853293598794933601364091754468595183397287999866605511478113350002787422887209753047256297919746966717153903444369440788608100329863526327494804814624672962022441909071538506523557117268646653490756672367015658779639869874419600947434746278683134683238746845244158837007395273708266563497717364878883180946518685907271669944608475565377247286674112927912993259786074989356582655210488437432551765788689476870006973559832672554339730471482455897227934800152381488174499285071120828446132621496989172671051250231856166285580522121974455881658572395907248344569378685816664830162192126719421954522090782863635524948921379619425746099460069279984368005043105204118942781723022214175839704260919891725840299170945133089601083501018735539355015176790642893651128328133936257315192058365005873501217663179424239743135314858835515624446342569926027708611500720418052687015690000664364320450417262889257832676903540634887061457929940397289873195043184572165762418553683803768868908891269767501279678301372441247590616101659618742617731363884223708958676867103973914758383779109534700135804677815058622579446094081493215156547117185954552860046754449369037974977700277390080238561620391832107052104936248988074513177697393077120348503416336440123533156794858263250549684326451811036408038058424052660893279718239019534640735375864713718502273822028434050557819766048383581488772343582128013929884757739036090742622516114651222790946520842192840993003002664764225798072847963898745125794871237302272745113304315165157206984933978472416863477476775263345033878064565656763849743447228854142795674583323785049587538976568542541831331781599059141628938270095115719743596177283926743029902421128429187749788611034369160575989277261183845125151887810004291529987631325529464204044921574726611548742811124590183350379620888241638312343033945472768357316576648362077533499827363042382560062182498155757487109081911530537782743058665328458145298429145450841880468791308366354671812980782606985503234294373287135203501521633227337508559357688750652247182546041813812625477916112651659760011782099751579484653281741704196422966285168818107076020975442309366890731875756848101231244897846212734357063800486181869320249419115208912316583328202224199106799222666273954497482891693765627763548932570918732186290337989908241702409891258160757507311868400411802373359404293659737984921099439607231318393856270313551750422994916749681466681400730672217878779925730930786636573586434128100514589151128803543930226270501468802714331194993706025752220043840352949536607605867040710380313900349788542975390865726328707707847263459739445590991187246358203060494130586409602774456363491168791971467719982072727188671937650689433055698749032530650985414798651189104643421405855938110411290124537467241989762388812794908106880026306639788872380050207470377325903402414854646747701377327483838241604354594899500634509934427157840269605094761976058813914954690474732338813438845938460552062517732599774175188677622732097404339831749754821314283320035015127966646170234429994139597849101997253719108564606113817614212080280417160800836162181656973892505580795076458033245105015383270559463362776904762038067663210443729363480284397951445254669045881474662704628472357841917390354588190835180852917327158467898991734925425647676000767181715596038674609316941060192287328083151461953749493655103926809114044809134298325850840500047549463026246516560973344104374486791259162151763363378880368953033969184183043641133522193709204894108391364067801968043121169868466392814254254355190986114326605270851617651163079617476614873734636304949846586402257456520134844491363986855113488412249347289314140402304540329474169839693411853150822830380645581011168631949008641809761307400408639762155586269095646052682938501923030964565339463825993426323533075896569513529936521290141178586317745563139682994460446344837607366626236658479736076451283446969989153591229956899385630616478973016471882305529651149484424595544788340300294750177710558785614805444847521741826787398734474377959246381023193976748818180268999012282368029235308521840691223190464110997626062768450071857870065316656132674296011116120797539201439918231371565274154288579173362565849053687920611396138631767712514367439355248568119629765912036517113973183132936650411084810364671841991141067921440435449561681002614434906572644404189980434025860779205786156007722673249646014333186359554874328701038548476296813596266928428307499223573850296950113271247185342511360581843074673240694588085260799978772023692344745962218113375843938650169494673083744178536995510454664942843109268869922114027215590097097522910600165031251129018517537491871928050411213726107268077036902486053053148097923494076088834539181005594195753003389679492524825962247949176032447072330617289897715617377401230543542605984847994625949647549309447102974541584954985665048431020265702179021198212744253757281964816837083007536163343245310535148460484336614343075810284188967148945223065214403406269250334782533385108821888182322275841399282750656040887313163102662740412612167195771119491280355989498849407188644068747063160256589704630813050900250464622881614339738398530377019933262063208591725580960908075329562778803117600750495468306447090113891325249687969566073595514903669678368603811764415856012999133821777400828293545129303411639000389436712340101114394011428403879815731851783729005533550028737916431430718459548717306678507455874851741619381127638228060457814462107012074690505387932612784162650460473102491995621951727799706511182027179356211231192808482695739375634756233159798322859935268075517751544457170993786995171895582314496886393457792357755812001410516138547692262231830129140904536936812692540384688433388572370208785835754603028401733971676859564836407477070636556222816943152061400773679410166583856934220001136348323199207656286063365024497256738202939524225478484447571291822564547919957041719838244760448552811144999111265498365160304184361799880465174259644528538528440477245882782929114686540698020626876491602722463709805979312137182957327524470475243294798878599314594540132018425691774487218282897635415849319525678388913234511369891519880543614185019039643802917760413322202102853267813552414095587223040214282143180443222016841929562531675811683596653664802583373522003057554796477261746090416787992922221104207275044850137309793385382589831074423348458598846315962860992476012721764476201717343967032481826256583770448812855269540607117283713443045253125725005016628397460840770112339235830803295003359618391538602301321874280199583382858970007356586132212859751820571361017033885540668148187443262931871151862176510393012099739082764940597689318425301945551518818382409020010378809940247030473442323325509693951124089471169051929144903033884685842547672539168021551779873175257415150547983553401825217193686477588466311525520128992563481144628436438909562998876494705022747853928683130916413617784536195613302533265043785925899112187471072828593788364214698594921039334501680189753434915349565301242384105370280958299813839283054780434701389567419173988377909916055616406486958722758715336987317880298255916569315352947798587268141542805006422981794205657813152921573041118923197242197157570073438369237154524591792104545062264961248966699601422749361677536511038974328840411254808908830614149120121788469612714916943089270811764518772826250156452598567206131562317776136442775537307124668352699576012716455716244666302747263223615834980419013904366605993999321711207597013013131607757521525745743814641831310992086012273792340027560784343057781225029076882467031885631797942809437244464111869052979477587611784083054221573288686296452114963997174199773764659412429542116220269439233344296545208626877513661165052445152055819649999242624319086062686482188020963701680033652215373883040220920256469973071479392097081429626457211136875824831162274632363251249521370706952868314466284130743112215268457564826798053495005682020744788586752840316777981206070010247482386411087508816252035171676784832490104420497810132693277968712306125135793472682291794793767122592775291204585718582901799879418488321329843120201244402722774419326656082162127646609576216551775502251265437568524090634802924259200048057609351712881076358313735568471606547358946019213533579338229866655464569405906663734904970447597500564559082757620095098499321736939647457400785122336440806312911603784856954812347410554812409281879487600137730782270222613415562485786391867907828514639510682831965408169951185601418168031193561864286612049434941052285495376147748129051405204481541130609719061201169852196641483942420181453724984337530589230837196386670354133587749000234099518666416438133384060200322897193380880001047539766133050834939581316744105058923095862270080079672058877143920254351183944996108944537084856639619002531222565785050441518582995926544862334725159336690330728674049913416991772925293347851461358610820463990266406907726546273859214509198967722939918881114240699025565497080833293141309224948815725844653625732659672103304459221131338329775117806774640527283023837511924148939240146697146600695768710314754498155716288971533928039701956824721029029683756674314348937288582076047955594825449621644740841939010081888498455030127201989857841628275877427170412280287239368918726972824869007681155890846081944254930766206465308662905272684309459891372343587095978188622845540247102075246024481191213810774566421825895847114870296655622166245381322669572534087854587926001359844942318354543664684308981246656694942268317736192825848900452366736582740238039433551326410320854549140169442008269305692556550179578695633492337871944817288205833193227400789880798110171957305403041103162616780487150189346792857278311353541988034317637128035442617215255291148771145399995141570447346448245202931759926130181644271373114885072264434899094143684307536027170664121497857828205454635194927921928034257275046594589463646257107682638170490601533033330154749962011043200597728252269682054043049938651108293629614131462380959813548930567886130174456266879638365548186251491889477669480032358629782581824706264378954139840433258392202806515851423418141323677425372844141681319561639077308842832615231975647824750199552555867267798003263639686581922070245574889464041290870728860999635976060529867350091923768920079932492305676532684261143967883144779734200609564872477298993466549620592060138181393719239817931464298830707203869921643981318847759470243770841916732520585755213903295497217320192671098580853357049843318422035988842450197550837727545206104712338689189859826569630471943622389656394282991675543964329666488023288775525451042274959494760012379684577043854790503807683846050623280445528021396730943081787976191904428188559899524729000030558816833468535689943489980094054656151130769793330785014386902518257646078403403833768520104259711253920409165336440266417104575349450347077955223160303840390324312452962850259279527028465780636183556386952002038597306799304503798055275040345819700915091872922105236389043290726099356357687418165496491426257921953411556119743484234679994657936404139210364319319400332376522347659496179428175990267129650525234050829792206630745716740303592373550025447214231863352364305004508034479018410693089242580965903445362253820615340033803054925418969001055287319762792059583597612196287525402636749994258695390588336183193808846438052622062701536928945630222833447312696903327263517020329646879341350040418453231203593808392616169270968912240262459854573276022339131614514706971212329750863809591622641767484879247666168646589296038593020759438172926044736584760856971156237024710173405672787223740196765395248564202192563561907974620721990782605705306243678857539379332351094452261098320129048598430611069246897985192469358568633620784982581252901541697964215020491795441746852080283555051640582099123934701391302878598668032801920937044326810789838417194938300690980775350461968274625267587406519154352726370076803586785458800597740139313908059102117868730767328966061997150399056528530922276261981687070783950063613137201091426018505704387803121422662675464102494398045979361324334915493445833698603560869104172779194092645854415357822640328514638044366540781132197861268678287571020506028934139615153449613775720142168030711999184718009888092367419713851305249271522227503814435876516196802196491121340255426179052082573188222697769890516689117756952547846535119399771556334392840739509338503104847285731201949428256821834856779541917437000685125348219604134954642839664352664940492726357374898760556939779482949174110038790499371090287791506550811411073230247435976769583150175566484603021331512487284445862712422804527571324858414137766288590748010104716579744814776614888966916617942506202338874846045671333477034575119764963699744137038197275784598832256631637979518539994879442983386144316926072120199306860260276510618542466678787573665083486933010607031430496719338102790372187008927848430156936278071027446981383060244522315590607658138643652749787028239611339173381262213158955695080308298194805157248329290429712007196349023309019917859763629524710089754815011196275601480147908651160419620579295993854235277409192905913029960155696876235290016080945401356611125851253951517755925462701477315307651366504233616658712398771802745640465388625532965462605907619511749509086358002617426953601686071462640543464787456705389804777808460146662379545139060790108828823290990674466978020182741701765618877329597933548551556019075626400432622515200718896706100387381872982357793599293479091411330344673360263866327225421978948119103622051287626683676904129243322343584986750687574629194884956352330992953737493355151070182562817748454257789157168077311125614424906259685221981202539786109013305027987160221128975593936202735475795574379540510346428389778574832569479581487090366392472715723645790594445435544085016034790200020601437924733564500636649111076295817010562085517052283352292279848818732183523003380372273951546396696437527419508164331569904225024531436211833384099160322359101440059530416039136621939462562038587190752369240944267658593299746277785464448489163912052593173652828782986750196938494173145110098931728049545005658700905200682277015557987219002128416545362739950611850168223797628093174351918624262036816235976344175015641609268515575992902425444506816818027530774139731761125533649952552632921014346805165352173454245566019738132448055215128118695194569211881082610738834381118830259515602669527381480693907258841054124439902769773862466987758237370318627058471725678178686560743190585672511418986341558230093152965585667859717844228334897359811429476063005999259786623273961477643511669259491298168309151456317905745443836847216421769713478909017775191751129729851246556588195171106817407788601771438153033579766810398398448415201678599731713836100267978313012888482450420722667546136367795071383340221283822110073576099246161086451524564388995079528035190498944702725633128765516694038338572367635151297749831860530311475077430644473745746411516249415539574528460993193456528925354091600623259154398396867287567052638033076872701142826268047020513697047821946400282760618801016426163036640799392690145554170577666657787084966915649492408798249269336405152118638569171191381596685040624053960050536500886524055442673884939731344023755846032557776083856423951073394001160536882231971299610587439743699891314907959697580573120533935094909670535639538896726572752468454995372839158807802777392269612856582311803562955422984951541975686328528441794301701542262661148537085721005647961885570243605276294476266842177459155203489129493803029518258264355214033397723808294384225676431338502063733574403554331617428286151113428211130727970274350924000672297842726301114817813608723896813493943928195403749664249141460324516498099206041190984836645919689318490440141516680811971415240626312591598382409655470234882202941936561987333518536253968696454258808904770153630934534575568643229469042144965221092857030807255906676731490642362568301645880025237887432085087812728883841774752447201706726804166948632919664797026589667424188940546549750870703371961061216902235358222569081758194142277128561251862611500554333748893888259534763419052697560763905700188488328529304389088729148371260025675687889862947329487972131835641645035548010354118223709465517387164300867937720441035752276123462844375856558974859799834280639077538785518892711941616436864023642749103197244370037689738511742668628835967061841855065791684467534115394719395792346644439069492591936778367857692840041308466807271942329743474461623804549036623136298357160820115655886699784145375779310743272386384553077392556489354116686792065760612066974286408793422977668999858184453389857085981307932269962954957794081943825971538842812263440562799099448775957957497678689961158716384238322292138391783204748169723993308765975979360336285671887766525655195919869855523977346279583285058162848501016368622698302675960651295547372489064782984738925803875444432334295968003157628976875204579897480456128984249663363691317634505081147620693461728994397951963715213869681752039286721303772908552961452080964707402924508299610497261505782921995159641946416209225428505358481991787836515486529452554184284016351153082805988709489426769212015199876217154200499087431686034594877739361790840171654225661589255792505263140746196064681061673684064779010941101919754634010001022781716041125039184060297646342805003619792109849169611605309528762938431836579539978441794381687269300940038959526534283747420689919376537082360625122787196373677689008906914858728756908384715170581899131921881986331407562240745607082564729931778481126238155215722286998172598594072153944568941069325231375852522574288941656656632365560695257733840990971002041016598152473933925594497488779122803473578126750151590912120172286624566474894772547924561116974872386933282174470062154241201270188592153526001154144366622171930355722341316061633548984844206300520645447713410224273084581273028173134004403985053310284380171534880276954891156574621775259225541182527108873582694290073942053285502448281629133560093165705442696495381544044835957831445498548708602569789762012189261145646497324518649810634083180775027514580520462603126274383272213292967934915802466213294183236538108545149932107822814296113900723609644198947806184020436337392077620345596029359032058914018377247484251035089242061453527120059953891390810051340866010709899827401146730421124530951182889018036795048147913165259459358328882852362572445492986923401891758655052718406614654075328759158275721563718234905051780684614391525139113523016948252194337570252086141597079393928183093595052506796621358517604874205185241357386928838624924570977489550806992707837477530995878927806430849935177392204037121360820172068417295352918760983543993063705694918343487367619767020637312347365921808336536000818169415993453995797102735757237362208397071336721283656647687328467753906208749549990075456933298663532981464334632075025752918379559296589660245082437621155666829327787806094489554379218346664366398386156187842433125121032306688635535450603308376924391281503090347161688191660607519496650029919057450727843281629403417185363472308580507271329153673515187314192358610921838136926500801033203367573690401044650221370253704508481719463373382853393041694380627298472469251997730931689283233200586991134345515908623845983440670743541775479474954079059040931019750741010904003232540673219013276467935865386566267034639506445231319420723378583379072738127274379044835339893904237587326217081865476467413529095286107782753737182643885481358449835674765147773314433078085938036063517226422438106847707177514277767302617459496936423696907117577667872153841666842033364610640884227369809325831998372914516036678176096634328296111314887246563210841835062106533138646897792904293940398130019280944659390461083095595721687829797213404567239027544439216178955420004652180769016096710604627814144222902005836806676773345418061482881888006010013895204811004989192654849562105369889444212369093666339005835396785172548370003679632677032076713084943313444860135417545508515936967534829901990367333084365227318144599666259546067133435249017582193254449313841837493058838927451957361983848577919263384071448995492374980010732793687131700371050840401544112809689044895820719101697529479987795885829962543110009395684761426569572910115857534856355607033222541157758578673614166871052498471816079954507800249424975790757140457873259603193866132126499618221503178315818561884103258148405301307260217698930987068039565472479061710424789816858232851492523894858415632087611060580902923339686693534521341085710228399937721657306776007931730345633463715079729036093542872307734852650486048734176144852691285064659505176897058681014196450741836227643700931095697108496691224267776830468651885758477442818712395211001103492443256116928954718451245395683026445184709226561364627565381173246765403699333451043058755623906337395961031123502956841196277596447309480405874187998223376489597907361269877603342084702192064350490374355576549310460228526116676613217288563052482317330765550184654431515635843017559255686456438125283231683443544643587898004881184265013423131408036525238017169669542307492801057452406841430440100736185739760874474380111927167353193193614391435473564568993615974984083617451935640831338794441082291610605365483550958611438465612649572470147019863725799513085206359180270795507416344565985791353520948998890785316804850281663163924801301128142606630700463102270224822845243254353123640648159788787508931179411673922504859884159636930255721678096909900611317070781859762831179707733971147357951116592594323497587497752902464229595231354440993282993024415551640347083431825920711998796535946177877853144852281842949951391789098489857914194809487034651156917769090618842528854334413547311954877847313001400700956911189626701495846607007916581942490084527237758011435306960972343651683526842212480399558163800927987446078539007166401994281825262371821609390266678968529625258473390396328469613948416718508106749258661145179523800753771418504523037697866947975952497518536942321720304210756292630420638088964046414157046549616934126371580567468751552067371452855765681730358074275109185090518215966952602811965325678802333225950877417218359120306148783157851573151771321414159606533817997172200004397903143476782084670138818892763453346187320069169548204968878639308216692823226230482610186989397684364900088461367248434667621518380827383028052062912369676372395951114812351243503201514809517333539734167643336382019930934795421154344308712213527867550866488426082975455767198674832325017299689915978693205478281289796614716591300810464416807023766989725662393215103138703837779384413098228980287613396210273508310650620321025262503855136981931058177264766397547793516890033118733648956066637876044922726431895995622495440556608264217667103278024847480647785216328870336025793589768114801556089681935139189934937423179270896464579524524370071916564667167431571677430647797296198251755246199730126583219976618818519476170369290622037495300591199230560720080607767124732315259677852857614685119939821603349532568767430192968363112003945023675370842407159615189331285557468400784658327827083663744507525462825721860919885054958055754588836475608933601387555264724159700487215400480977896442370866378200255451131367527680121223311522138648847318811418883828142034730650381571095252446261152440095365525525610814508716316933781443571125720963295863428665026921214227913041573031300659835367021488873755088742452976960208771308815865703296029440193968240227463548260445512796108713717329541662509643219735719022257534552394970942512331029978782008899280867710284664590473527970618985247375321036293417419921766838504947581190125362535878464363807345343262852723530936766028369227921498150379461699030477583171037080224574182917246314537997699746274309053479249045304654824420466755428211124489629875770751015553909430561771577778366482696299273424436581111834591543822302576732954333664097836327077657473781016817340951035682037934887835415723344874679298724156681854228250668906607430894877048804912317639244278921985363019258698925670349046665808457144678775769303167068193669795212675877872556760311157919923229226923075529547133605412724879698086770373772708728040793848530014593314342918306560926244155846576208238769557798019089281808945737011441710133429638264368083931220153376987818803729410047059563476363276955445083190097360403301990770627719214660910530121229878515386703466381537165170314759523524042587063367091386126555787918929028028627700198265678167883229536134189781762561523002779852595164255180057047198219432095386882209635912692137499972906904053151311308374305706364928461900445283078427364884693836021798885211978372404439408043031436249542275058531621694018633324328991697525670164355978488145913920485187935631007811157185197314165734540226383455884203437744814837161186573092831019662457856502648300531681610197134952281896182224670755147117820820561975780421737894635208307044768291527418697405296471728990167036292837373439707034661112684152109785019379243972816206847957069214337325720724342823122547678861931403178294647613667225502362287510328144953732776202607214966800630293978602077768217987710876127414772928215597110303321231121633350553551116710915257395346125827890843938596864369860654182737001304873902964243500392403614364674947984693674296676867064887999274687408417355087960587217121431086276400419363636161097408845243063066837296235832858786372485298381029266739803530463286311817750839101004857236444757256382180470987547853540448201559460125299361785669218225696316744076996642978789948651908819279853897584002668796755011204740384328213433447054761548440866768849328182915888572766615375681133083883247429358959154544220835638015539069120155660204944935406994296681639395747445675177688232901849027012133285318724716347694781285498459162260846162982994012663451677435679879180794000439275767424153961754419777619108007181522298418413081586762597169262956424286040832422578423159157246201497687328766420931651305949913287746462154717734230305027460072124102116992192157707986809821219040945054499927340796237266834951512227593776670689316550837827367985518975799378934506411010333917164954409754285599320638860793914110039138639338001957308536133442214336016312951655824022365434531634874774902898510394454746791206529077903873348832563384459386292041859783539593040496968652162330124894871619405085168680795155726033389231484468880099834131817791251472098284184660745104602141797526194254840582038970597899885792033382207946421584128538802399358837882298368469171823464086313411445731728540397094096362532557854884341838069893992356643923101377764645771734384773517829837069185284119083625029370023716112819357884394403304684899651537079315890721559586804291815806771837414084819171925058405312193492268170897957806967368212385981139250644242926640296511294835986068019436981396795837152596325438193109915663414073661813611512202569253574205430903121494738870017077304938285841539000121367099801388706487365896969183791279580558834846848574857009644560802839680759748824380708822665236852602668934243224451621362583900769868897348674098151463984476525476638397066582745155062085004395738344350373025423008072180161781392801158952032931568711959897176496624308494129894001593935803458435438041881482062974184349428872285130507637974541360867073779606459093731489187083728004355171774219506286006313624504333631027467339364804986601653618048825239838395397612912956929619625110208680406497524945750895629389855325330222769203957602909416179377732886265373840169360409455198529081991668516994129883149919386986520326226579404079547483288222932046015722390083788682498393161887809440094472767895502817753596696409282613183817095016873877766144694912418250500441610997131813997060092202999326720963603892759478776767763832041820522655107462280046907743516316502990339865024338810454976995184213381403274628644970908345555089464870299886219448258499831692199285081482114673735962703664711532726260364290487021749219489498407894892926905819783636083977295093088975294212490354111206636954688411422165252972717766038345542861017969641471136056803368154541474984814456701977219355669312856488295591008174932127014743347667665427198584794769978148283271949404625476891505328134434601545508645759857163765410101532086964308638839933797276699276854492027548945888284062941553148461890062990912613940488973293631163926890878567780016608199937377657766366392816552471409757056958417768649601067754610271959216092953242520767793904038728208837619510081695225417447323505578921901889682332371189579256232875923598045288026200357142809108470805297019765747330566022064804900877376901248716469507346596830469025332870466408685232905107400457772539243791246231145862428010528830086331852411150985817460038999000085821600090130848758997976062920069201872969235051303683226167740220580105146006775134497226005700659031617277657243653480985617908582803632695604450946117403598731019690474497446393176811262583513639492098564914278115843022322186572488332350302825148823222807679350225604248313992739887767990368876743019903752853116269328398440492243829845978954785002917124109697352710763047064642796308973704025934139306966688305315807606590608588009800857999461590390100702780419456916592605558310488871477712932559995182798762690085868357816951293572434755548603275311501220716126935706629901776917677643738662931442142784990317361624234298745007129314163914282958129643773455226657205176550763166404106466303646957404582759763084810488142879047117011350474479576988690533152007903967643013086162691050436263989407552510735490315143731468245485900014142320982428673503978913779267471271388060055070765212374459188960920225622624525659274265824694905079831168812380330698281797085797689447862578396427512395488057845849098027233194848004167185192341095081077089164966599715225223120777104946953515515408276949734736598256692731511295686810952949756995203818409004579828470594741061105342312802600256100306154017479629815947046413693654523897990107114293241879412877278578756245916061699445408860778543542093725923553396066503661075576274481129831725099512123641696053626474718101969229055152392712046948114913834637185605353200083760273257296165265302395452690528700586057537743049427965711658177660763244726975888134919423178265855162767011494526760990247946125129043862510949421992119241248231345058186876379453968104417973885560275042291895365029547185585314486928926116361024331018659321074301892771153857040088429318548663999099200035303297375983839019091393250656246116607478614443673711853782327100272453382810692480138450700880148703141552408206146739262541948492176688707685857679059999868784474402583090936018387791010763169628405412414078527665761795410709620911316298935689254903126900329490491021104880552075272787915709088208829166849037856867488785483483092850611057996902013991561084940563968461391350308505462274823372395574655187600384985457008904529101189720324685403895039080719639176715347018686457738701190163588828678684868208198954656675768629821224515267389117579801451176141527850168326301453082918565683649822034600423453995184447714910572997704451246256807793024983755434867659433934868368518361052120766260185063816709359484783693780377145180855908726691914981713423430899011891803100239636442299994380997119234267520250046730392708538619848569689244953406574671671255761904627839575028146305942008984524490634881351508081360534239989348642964884085578224851702815450235645783520566424085976334471841060074732997962726799980373046364326673149621951451704001158602609385763951916978187661865597955729759612452419641061937566248665171204917494977477027023635659978948366555277115376639553960135181561294045141516679519836701485503497247584141890428672182675402940159712051488287559403213665740094580307428143801450553499465344784904714398116062009309333062159192081444011758210577889749499962250055776289974843254421109657474896930676705241758270746703336128546240259214594586901383980093771345328082851039557175252806435681806677691710040266395497714794535956060905016605140971780235496369715039425604161599918024127766050704553061659721396060766203342668393564959199054400741093015565885973005054929847664937596668459681831700579818189207882253035898534260547045525064891405994762108382690559891697288590655869492799182766196749125673117895038197428547082677605930200906515629504775132491468867154920576153167978305851405214385330704228231223413433309190230694162624615207477920798475956204063039737451790975778085359626132906157183039167743764846967007307388015242476512560828803605863832388549009050160247626336168695573263037772200601337570919366774459021713487911141356712017685283459097464437080917182257986475262115467262876989564036736294811193128503460472160730258634636131306899463579182794175900874289996521888278060398698589583174529487309605550308998321046823714576984939686433051372852560804085352520389432242499772927544941206600679468674932225828163678497760161403084586210588853755234935284705280593058384164548317546510754661630875332858334815948050475423238416802398083673350122656499413160423636858041878626919280049817191200392432872386315937446632833470472603626830431262869053461200425652119652938832932096854706240317679665967033924870914938382365216442615207346852526789319115162327794171915868980752792597098730656412632137379435756713825864754046736388420400930507527023450653249451178645094128307439453310237959786186341340508929764853199446558393435454853418226423777652429440871485686184314150587719879583900810756045986864761206644217402321466069537194220510707016514167949454537219803107821450169182952762677216356032476763304547433093783651805977279023883487661534248120196750083116729546896538918066536066644728071247347228523125829053351179743235820026316721825039076307794806732105091298825388149413766506158064562150894684388929468530761855848148908325258331633926410014407862734685511948244998647815178104975083603299971418841729242427511085060817996968643999736974239861211318212845799986938797630522663328931752719781633379282320566681296790723263081431990252899948721021292713230138190974588886180048234752682555812878131800781238536069607317557047015660748083348085543002557930625254710780375030828090458456057330728276290109936724660616695759114399761625397116410842307471902405323990404771343753249379019878621794926241019111711912014170017852479931726336191970913902140197894428792094081319253357002429234519729910926594414021373050031593331794377571135099891238189179106685866528341236187066237628128983349757193214420019793289614357810991317381417191820564544629227179734775813345347062096313541844206869421212774575822180872193640494678606833806987700641360651500011344598484163213740501189218279056211757546352102191440610081097331949966359476319664644526620577441807487452859010539513440860679361272961175079404056292760833412126053459257263519739300271136534219473829302413619618540004586835917940138764988755816734667042483167424722097315091960806499599677514202251382880459133336879471195496830116876514359351935328841809863154762338114508788989760793377497051136065198776634049503716633617309687136139962903106895538383400054471248303575135710752054678564692602896874168430853257770809231255952574771888238499096475263323148015898909212003871338382102711026315420551248225395888626647384395591448603682111790524259085636025876728222853850694217246272074790621011090149258472837319225834091285624322037883460089638016691649180650374434674079534835722286759446765926969138095121174498117828853564507556678474883740859440859446304248016683612754549822792750716156458847769833181084766804819923132696181109453224644187329186468754897783468731086425389142037430049838029773628038055521645932898310186811840702867720376393098810811363208690142715728365576119112490858366132212537251146027908392011592786898178222839622596004195961806431945696562982302644776294710898427422471314267802732063434746244391367863674791138299577652598763879871425969310996156245338414276363518032357045437504589312100830880902751065877506623968339016563343650377841397869725793116823263172355044529785082027548481782357399408191801177525239043403337586063498583570803417953789572042094417220784229859258192799338239199297505251255466405789436677164729202102604644621363382528073601026150183926505686216741559324250486757096635451492937026563676438551417950551604943221200588918519627715125139188752654907344884547280771408355554180188031136004376649891048792280637912624802574524140863319901637650435429496325454611836030834975419328998297486762405608858394350284649529650479167491410200945726400561899224808043348042755174564050464716540323222757846225531409996361048122790434583263869575236334904642233933560149537078602179776464691041058137425305204712606061389664699210189800260397806049779679874688150399916986333416434238705348219722833978853284482829441814426868132600691455950051159810102046230044877831369702595475883221575807869419082596662324192247585240619585269546715688141925735217681702490810475368925503682277633900712243972953472050062662483303818765004798989859607212298933471525203017513993822218242151920505875019038541224313605444832904354374197248283589571169136004631947379666676602244507408467617188290586520417039049177729903684790328044885606218229302884043438817929080011040465321138838387474910835070212078141690506668324998243550764168846608163382590997355086224676579304065962603508985891977659369805176472604250066103177689451535258470309322459150637400557196671279924433124845861239383422036925131758781492775050459197237389272105430998354019350053813088855990349979239997736225407702318396804085342287080323583809845969197753382879948456321107836910830829317471348124784044909040466728692673232747664361721192911237359431724287799307620613948365735756781275773300283467476076090030035290420530443143975105779605407181425886283479289716285896104717681438410073406685689876082013002283809784856174185153740991942297314224670073632389596431902713701391622808368089681503905795472380982132662223250135242454813704735753918856757698003965387776011406290744099463939173684239110844202262127726111644016123277221079233114403337398021496125257595039210844347195130285974806590209686151825051781389349407782278709886249320700310000046419355566153577240461596728540143636933296136403371395709367286385135305499499177006841935264411443509005021266421863371566223812690048134168010104033896072250964750914710209770123288033580036449497373374066939791867421346588890116872984823290745271309804092570972715288180214188685074450903276618704316541069346949419790261579865844795858135694909936350903223847566135916555879542824676353684363158188259917650349106089044172708926476013983701555419013518545715919475772185744342455629097224328812199958550967127855664720391232173511100891989961787849124716540941602806525301044432333533579577528667282158851676529008080604977552156950795577101408175310346330345611487762855722041226952680930169583357229450757291028779139527825510944140666966870556888903470935637040541710324078622198518775046054236950413809920530873601770149892839105785073607112537597235641790933337930763072633619338196328927936905366851550922157831320032455699494890869286005189704801835049090067418252662050668824561720696374144640199478472717407338397513570915098158627852221544317740162915656704799006602008379955254602620668697403007869749280576925663199725732610697685978618210463512322214060589521145113913068650776986583316949715502104022365107997528228571378301740268843829362409843687779801335209200156578251082908416633104587600962143980867256682813796549469581918817930254314996173046404903448935823334717457604603331563582715296632238919349764623601199541169491682503334090244616903518664851946321564036999374426738525973017375386729290040767190913899367594141059952907790513197524611965658125034352065185797419882256507701859274564276448758232981366834360479149378495246117912274385424061999159086739140595103030451660417409056814794323596099553295836162811284011470619197214699877206396955278130536595072872430468441771340048396427885945994571227099827559447385755121211007970378811441407174427663811095671702103552146968844879558166101118990279462786564421247749295623045199706816792598553919232721827997216128565837962055259356896403715957978174577482735008576498911429399198055079154417677759755340778765004822998555890110741581251618335037013138681758591402412240528245859424673476366929538677614926927716843928664266482295286598422389838235084531409673370909105420742564182436523741196795598926279630724845963884635833474119130738824558582393643862882551113264578941384793007418692364875164996220618710376158162542180920031692350062887172759955399335118657931853077026144297026163859238550954650942119862422183754632090003138771793892983291543499596780493352923822757389155967432184119491645469617065516336315982510404752819384249540551564481655507556391528185433117637369403875832050523020101254213965352173587754947942145903216120445531248741404156684367205436055823554283214153118439108555204851775344883111256089490994589593887517924001016065000688509131644276461530289445630406195632782074652878324532959642486614215324394261204300049011799821958424859354076223267415798292855331422668549076476055275402829140936497603614627539583431283613868355619182996320290582177095721445964892757047952570129672681506851655569996584630056433787585399267077194320036993148345953493229966347246266683228446171485224904965009059423539642613392180260642142019741727871169448468499376588825135984908215034302616500852846603046090102792388716296442628223604975688317398162331345849458986128969927838820614448384430382688390784439648429399607531119249654918482638914264008260893225182697111940711312421785797764235392470317389859717857928815767083024398387991885727119546939048778638972339605682406244966782593961098063530448442804305288208841709328472282669970637215294607033814142323860688427186931423093470177223183959167385411738009599036311711041731783969601151194566258478399760073754022094236463135913011538988058956780102333299795633571747899588150354029208524220091814655277187482142548442264279330523478831822177024230013171973557575569262218838348647752901482834687179831882658695824821607524573347790861412654798696080171816275563754474629246980648410151491206782505571413218686452312632699972357970613733407184778957875304855829980202300957319871087716682461796993088943954294020627542604837414561930608309811362057598736950005028685926408207475107495056560851313243459102266079430796850449599405777909399527651480961037746902000383095998991661083853752929969262770654557748469697482910671759396380727527465052475822061126556266171028305535884078029154265124176362339809528975841597902832171782710946810278786718534282616061152379591913004904780787146246909685862254754958593261624151293946387521704730578751171702902684514781680138521157170528151515717451167861468972590474531195734114736007127766738003716055922738895979625715731410430384094991496314559142966077143949476436913228485078000286780137399326961712230756748550051185917873913626003563769758733296977500290303020691181144750500778668078327246334164851569502810359632299624675841497636766028853151408986269393828249770193246405525957102103950202010506202635721387427023496421770788516655595623212757180497862644103177255835746300641015528982771075170375164619853639214941292673290290013532353953999962724781573912178911580696670254614781659034790867728646114958955940093505623170756747550607561775765812786281963172993870870579846208292230432173421236783357864331360067422278985205620677460362741230156288171599664639730792360182450912945520764252761179434870313841190233313456767193837926235263366430164297574513881186747692458581269760927241759058869997552875118892817657139146255828246410838088458019322283030830875870288164457521443299406943832268298182962449757513281350379865259216055471303051905817556196793092016721847279791454596343016282115448981235614191204843212235467377216107814585040214807844589252363920878348512962461257781077249080410115242832450455885497226400988795799331031407120140037897387794890259075925008748691345669467463413746040052657682676049385748011138437478891619855229687946398584632570203065032388475377518246153223212140222272264510883209107904497324193256446297138775765496303002110401263278813712751001426257923004227153233810765463261673444299441452182008801977207098077945796976488177564756539129474210177791705959641897402658375864095914429472849725300737697350937763029242383899401893496012718055289642256615636021642586919019736372953586709997289187412040676111773776951291988328323762622294615113460230849130666030819652258241657081092761813752595788969293611975262235313763028741337934379207964839584363914254113100547689817459767376095768971050167071393849471526873491888049350514753568264073377002591592659876289735795966968842661709804419247921177225566394472118032792738410512538119802957392010982025005202556511316258482719295433676788244133183833090099295745796044374218596015870616354570725857402674793914060362408603737366513641150646607680927680821071825298057236771429913021800429177029661055797770805004274183109565181174736266315620493709638676250547853285674994867624033542672301884027361951494892793921531266713916875390404776861393326836847552352702821206083017408769297020038061666284845220946808447512144645720912737354648882377284037142666225867650482402068936358795242610317303788712853008062260245208692663752158658733228574899011672890057100654461527964322726964190954219745993813619356072032835990598082900165225245673638570431413595043089359697870778578036489590066424736030811652138172572438780655806975993914919703728554353002340826118740014170188172586793763915317534282299907396410771570590219000338694394128970298110431873130486129550392081355618154412371279312626641418563298010250853434820012765547651374083469472877724471987739128653621086484868022738332111072569230046218052635186985836994035095579079552199614642027930306904913163551984840497570244750314864287972895956235908596117135435170986270694172615435338513758814105316972940568987096423741482265004190453817739787622694339519964081568958643093716240581372438778050452710495554954901135044621599793441017893932021148921184445272900818027051694018128518527855172604498707547615649338677135287354392740270206042357895015252046823691748528910371176538343981746325617514085430120498343294198659744461818323202983099167364490682946257710170417508194621593192484095903277521921183414893144688569463508364606037183951184546993269407896017955136279491527361246370457899055916046690347395081667709167742596843603689572689302747138520441884928566911042301281487375365927230916414292269238437341530250505962192630900153361259043533590132423796515278233551078179981888837773771481650829747342101746794182091542422503985505653220320658320923611071231524855880967193872821078599414334106907148759925964839330804921399053242044792511763311554362350324170388296142513012667622932386149400633206741609701551859528278000595112121007909051640651366327973351755306609117676090160736324733931390818577721313610752884257404312956777273800175334007228035112816077809015404731644214559850353480076902721929488825358659961524450439537146931601672298444391089400663605527235438597863662927291067425806151686348524993746241414548372823934947042035648295798050150321478923797269809467878117168684427966197122097292833341938993871976563701945736425110898044591454765739607744367708521317302342693119755151408763813403797112572511392983942855084808305832818462783160856967580431462838236778458958380494795377623014000349527201547803901036089284603586899989144410869477882312416585802843699925473572464069563569388015281063602113965724367002614343160599496783853300056032682515965820963355851050620603879005445747376713784773275125130635691740940784176251077824922485948199657855653078701540618782700772007042778132698118190885795708486012925411911620515067923865773649639435273340487113974469291108326845702235891708227563340484318754307160204902490906361036892542255962049082549345601902167023080702503907018349978192269828958699110698950248496712113293788375838483321794899831279267349021608409089746997806993499089867084378546699603068939836257407837840303993581462813912040867172814400285109005856070567907944429457797329807338368819843020024509401143017998999334364513574571192991148314066922185502279423834118303018295778800077488496643899946716103188496312042064295876025130311385164323596276771660241140750492481313038630921280075568856874188470318842777744780512134431188235987759518529014731740835962365804520905605727202540084709109420632271100786906801439388814958090443358846948528719282327107809444817950766270020938740180852005951461481906315782057671810211856627579839570306126887524463884157676998545944681861940264787848135824300530077204454682805262397689439922389610610227735988388165236576115966470713807462389639374203776863396909712472766142689077108456749162677444718116555024611104033302458352103675092474243412462723402896285645284756060508757888042732407931733447862482754345982797770424358659733780597601751302128291692061851215368760148641027501503907733290786491996318036759206274411790204371454252184082071710776743880088751135447999339589549984817848934028953643684002793475556090836085772464397381674155573110226232032002714593227560297665723386668905585377150860446829426978547435575165712444313173622418757616180963953190028432488528271337910940211700482944204105443834682356116847737846716057886016577538564099383831595693956073137808213706327417041247501751499786733342061767298889549953576172954170992895340736053238994006482285923130495422502964069304497255884598302083415739292190397563425105936590250317287933780342527655470633722414957857224043008029975177896373809369318559877455403499150789558533414195109444643361754055048696089671930593011089704181199558996510863430198633920042322052856101157132881652856294219851749096001965717459031430878244977985211248880166812465900481700879706567915664450765325568565670692343553250981881040952068409581421458511440147554695051810834687978533032093524563091357466794690956975740833463830129660182963632186761528590374700155446265158297354811940962389530223088464244269943264836948455014813540308940173484535916775366880551894955946809964138125564031253305705414304411933343835489374776915548324894574013869222359452162844196639671666269382948761727910882685066440346297599111246286640254675473330876966022361668782431008452995804420367321118866978746529825533570235511245407490751933597301389867280980299564855386998131022910810388952693887017001820352333921651469533196012354059510681444732727882490469839348936514633355078378907856647953045680116912603896113043625061265429574684199389798672951824076700657054530250481682640164950035560761952938466654716803211352189640965180627594296096859381902402948342059683284293467597302389646955292677877129733974205167712161315978262707524733351385309603564610141910485319812206798417154991188387622554180830870526052350424156805710132322659046925516180158732250962415719078167445557943155770888847815668986550188447024884396923455959302157354541023823842894452508816536909141180235275895725986851782705330451507627488850987147317683835720821797953662531852770048200578879522514775207217338360757489537232643248316251212519534354048562902038137030969557700645727803507839347484902115174889653758955064753202810759730153297632464062958027724566990253250161870628280898784182844171639112516703221324618277278625318157311638493181954513520465537716169461422764394501041981086237692928754546379725308878300425189739547046760437492067285823117391743803534698911723582561367845911620815944009849513544661532413948612180190199642322362614082587064607790052792178528767023976778433871112345078905057965838368218445861760509479817786828023108138848470801322908653425302392416872870255413429523933024189794785240689291063557347968825516809894999391066355396691926682050788057643220061258627116685259212924131742742963001354826007726952581330408727949976507181086223667455494138373080691843862810603272254745858965564618341866381510589274044152064889358594068784061825112686890871496910902049598470682156272619304696970302964858612139973144724628865718603448234605723506591638034078222153253030360024233297972396495129615283420841672491995017781214139670862000283887022917247303160602071745701264827628914972557994350828942209508779969661010720501808799228008597561785742585598936078550517948749786909171905225400814111979928995421904219311881799892382645069488957147749420406126438393471020525489834085335154912282001526777211615966203185240945000039996503768664732840801999551328589118774380094083426212426868886666089772519020628052092245791705315923543611367266547002932359777763019523815161010599185949262854725931588321916729625638863609209519802765024937005042320046239684694868042013827570569068384336808216339942909834171167755966551553323819186138913383210157128066387416583363943023135589084491792781707659698658901345443215009215019357162727222258837385158349941822007786326595256949971837582141535514009134251620162652803338861186460495135996733394704232059159660324743810694544108321969629029932294630451528869034307698403171404747494574521690873868226365819919672791191549855481251473888004200888095721608195473481005300733242648442297912065040041682710416235699081073962568404707790062927356114485447029050923935812677468516756900069852339868636632474361414558611231489451779665171079087158334125315795177432811744796800938439443950781533791340222747514192463288296859243723818420064861335506323740435128718901921864957001140814724816768827520129831233509695421731319479259269528499813530691038122343623930285004842378387160956187184766680449574474363168719438465526959417478175466942702010523965114999431314049356061068842718463558030345888543290027439109506932549264992589379592074287378088228147884862780779242401219886274662023064219653119516885298859751574017275489214201489137484764394839837179638655454489724194820745263565238538551774850918953136017870811230772931164347189539179767863892657005262086682542829459125489915351034531477388584849514679206384880065635561059779531310247716491406711608529072273541993745456580696145946621871584823767533601163325827197708620770107719844788909381793772306714465177417702188042213183780407249516817935430874928466583062773738581109797293427563840429045889306059688771975873087221975572469446406511353464156820943193419013898522230900401437172072535598903983108524180157460815227315982506613753007976648694432717097136565438599139607689801482414511597571877168393878797422992199292675906606557459537496049347819265945430241977407395317887624793367709596494202582655945260001010523302213796975997063479049022510872065830429138916140844789662813669983228011669640891094746298627513894250996907415280270271535394313640822706158103987577120691480131253271787764972569637878541786571518530608283688566606303937704504054594631350040506503925130571093600168605368799967615036476651407894347518155002292088490896740849438522756177993108681775193094447928865631441376016043464081588314132782013901190418287767387451339930776646861959573115767949891659923995633928623957819160896921994950227943610261315997441642204857079411283414539019517829554475924801819546950844233532353790778884208650571945010207205959769820971418909947407836456882844292254933813344591296094835532253453742024104623844703750332862864909789728532116005969725838438164953349559399114277370333962132976015461595837469214005000845199992347602032920920174170551845978827630304882491183907934368739010548167444284583851873079592434991519894757500132420289272073607057186544030150272246491225274460845475562234964518668706043304408951077436214018880307144185509859602830538793832857765623191255085817680937294771941971853840077590435388630000283387592290802714369434857927297643061074647599770800847836603261266682346594353177782048561428499630119478498467011149872600524755859019962333244692396489209296048625857149775143809471529886413166510260253863246238808470190654601840183949318397498276540881055432992754542627049022423417184244283789189593226571611148633812186348220881479557611927259422197804444986343429772061250509204223604144920834608904653074948481993843309996056490969188737084733624785855508812894962031823403994820739664039699410514467573735302644567840954033656989707323888557450186290945039761555387435454160422690611136445489713290025932425933335257353890723699572721819656537941779901263468708671028081301532344546939280296177669654939457060932042069037995509863088910988247650215807705882627970218541525021136852267394515765461222702066691379642556382987661743802667931503897852465966292681273455691468200289588832235819161423844477388457690847100465391009543336098465878108221258922885997758242848518896976609620408750156650371434794812418094678703367740587276466989613070881286616905523432376707567499796315209189917633680914178725208353615210606731492888719151126805287759467486646000536464608234883199373230949037322518667726253574790234571243933969682712616501604538788867822987320628547762048704945939286257084523275965796832727857131802286447663433306841657467806797061839762007572443440366334940791111932247742230091960743258425121147930753033046155901152660170894748409258354996711375336562021835052007240672954206605399519023339945308839180133294164975767294422427529099886350669279749528422253921896949198139506724679087298019386058610848454667843602974205792858723437889155728892057398209817388279498351405025476207068463844688445330146222468910252150696753192824888147157753018019896925525892258079168166015164490880325241480776662580585015722582704881458385953791654405590485169347384205272401265250584152469904351024569568015848641729802961872790204396486949229368030495142930050574968651118779928052668518838571878654477888498093021432817360885062867215860176628905276452194140569668339783009502900628738230276802858459287444113969604964739388249218724985603483808009691108903785521756028427286576678917917942374874590595694315636500077203376375667089219511927466730489818446701444061498218310982394334154949652683072168089450414758391580176876160133184867120308219138478471330984644970346387562983410240102868876091441369194766351936025907661070649524543430107559237081691732966045779206107235294199502455239532533320910522243677457370920766903544303466077417794392503440843139000369891874318898987299530997237990343083549501998137610607167468483652960903880268198101719750781604900709532144278693799475199085989729518253751440465093149630770403056680597692189384183799314014682661692943094116745739638508689762000087142905012414597973598223506824883608363039673632502493179624014727455272704979045580924461023006948979813247636125274068604304399026990805342842382112697748513458707770991771917353655821733955404837178188392777616630544964612920324252647658516099468006848139581697010702079005602077371609714461890559042270824605641354986185346739187473572204758958316735147888764326355003253209654825814914410804610809327087566514380267650088688645809352454523410286061641564473467873734425680361407405974439685059784886661953453313190864534635392479424555585324501117053067540167845121766207894672811617662476802951196940760039401956191498275199736531722184063028424633140269630672356696499364451207141948738279348480065395479565318342251107292197808823414820221233578231641897462641170094460279021139100905168285407642659932823425551039767656463140545634595084863900928456491493769934686293474320636100920344395303499336400724444897284642967363791139866710873039260715109461190751416720041593762913333631978500291454826389552658842348930579450356374434060607054519557117780155937150683830207503714296967617810524721916558398881012090224962093566983802822418933836821104146663905280615738066072484062799571154720137778667176847648865532905121187792436057009918939076264777263891708609957091703492121794308733616619868457582373268202836772052327580688685526453117112610699203392169041296726433513995997754530383693564757858862942328167280940195150742765392289756976827448087547249065836172292324682018683793911102889750546058275858677217810636631400872748048026526448796112370322366818568154335766681386735479417805010099175535914842849817169547920106974215152341980905800783809132557037685844278662112889779691862685765556379628424985878573160452865789998486770611685179703163199940581022366625641123702389179284248589846890440860058862396955731447866819900321014362900243635809550403617466148435355407726736162750747301770228271727728303281396413257872586496323493250429495993534539172649316426798427976428095668028423330297582188676369214678604399562656309377867215818808672477385033001458519402085626776010172891109868484537195046399561766630582604835635103714226773935283587878173462459757300069385882548451674274934086142019046460680410210038880210569262926420970137600490834615022511841542901895820879088696996718246506548801721679972532767235029780770004107706408509379503155255507740456080914844146950854439713677355250141714122250411983025594824601932679704559094847065495589891146741699672251088008309438689181407981824449784800733340376388281869252626764091019971566497062691409673286396460537962828554053889770572661852700776689465713792406282356310738823715825673535932011513954342428390348258958394313763522715867207866783104112314307625278476628980666318544889375455626250987714940062745803662011814902918688783412750082596716492840781052126199887308314419146342142708067650858512124208716824333114641300457775540017475920758032181812559437837517731185723270717620513946728989539387198226946369350266387328108772014293607334839372532110400321388770246426037819224966766643061577183723169441779133694404165880160615021104611266519769439248998729739003351989365547460167399672538827705811241170323284700593849812391272892760665382165498325663713316973973499145533415324768471437559181196451675829703629943552514497408375273161950389629462115716907863070384919929372383885623180420070548039629295170939072288321529760196131853391606354389702345308222996782018127415620352187908665956446712740903816379584267726489925765308416122121324195138120447750838564232784679400694952797454255576669646272742373944317109060001883275374936375958383180465199570786662862883477436657889323216398832037365031208168623576239264361111677944661684824369537296684592649039609557948598791066696126302984330836441477655300425332100852895967919788095655475074957705165093990410361005055688530105342936228621011695014293478068568900658616090419485400691884190823688745612323419027857299161339554629780547169393943921327468259683280873314728674336126252378250375551140716156369703262976687099380891052411469797111709550521527311409817286323458533430108771503950187724545999388400119349706692903653265206010946460643173197720587370680941850988033863056374571215844080428606345740170267684625352553141715521023122372378983998877710461665025781551231683255591929900027955350343866417261440503505774214370588413548264387272164164682995337750017900965179023825832187982640557190373166549164891336111178802396672053350532016756271718402917603643712677808514227329141226408809968484439486554708919529015671932330313191501525484939604282300866315323945313506953854785707868418540954799641655044171847215151082827733054565011865531760539963973842599664018404988611508053060601653239879992312944969100396408487840262977294350954190293662534711476492462082422190879573947438817758293445286678870860584486855475724342425110639173194011702078621749216458861309994579627193569441050370201971343980127602491748490369002960008606759872134988582299146618209372326964390337563642035178192701060670845569045848447547631350873683425797596801908042135666456565484864922277441298414196124366573441215049339559830455704591505867541194085987914987721652310754903389492463083072300063743645551435835207709793251614116784256986998182598087076371578786697497721204320548354087720875001853724253873668513709034128722833310074328496446631909020097566579192935632345834507400336533858708193254832169805159640613149144106956320591230949643849337191046830628634858407224469296787467387055367218728661271757780595408474870698444391851027030683912305632931470708351040675992202827573337264866492982931627055605561555638060910525136888252873774289065534172026870191578830479029576233162932570896308405352595342170110257012816031183903934162802334891312754797347142951884798658377158163724086041525895979482722919737645299359646453257575749582268991605408962402817441314821274030516576083334006964295748778099083761984080192602114913750795014365854114227040064449899194701355426715400066694860056915666238349707448993800139186405613323918158428097046489067433073871279401639046163885872735003880375577538847056895011084583616345954029854893262361312402295756162069278108148252168301255009125776879331573523957958960468598719115558815550223889374902770617507566116203962081147070746684669566786110958876481593690147775593338864922714605847541944660448124086898907096461732005175264297446135750840753044703333003590401160290330336649249910010356617396430032392748334292602643918595109064375055014688191076632237144179547398408996746175282737696798292620132920132347401750454714370471724944314716830280522089772343452273828004365222575693911424524977536447075902272784992924686675771507411414177468198298789023331231132664122107296880822479430969428591938694068924770332517087313497718124935869261699900694398000701861768331839476181980060673601906714775293675990141983271611875525607984456297037008254687181679540660944470767396729472827851906781669814239046140070630080615867962091984368959887513139054095207679104902500176512525732494175915213445447277768759862734002727172869564656966165497078398546731244451485864255569094043041748766669538565221709898296758824996627520834667221230094777794704078703737879307973164326750477465691741117713402951246234543398694814320739949959637318786713696191210956348085356814364301595061949407025773634921998663526530973454269804415521513876519048774682953281615564467875441373193304557461458747059867010549642811370293993199176760926367273687153469134347173406132062731823994854374668361641739635348617188042528867868852080210416794154930748891318881637106311833824327461210139376183418837330943648744920159296146269542565477776990778501235293086103134309035003699982755717525787651641122226011256935191555111433945948448183087824055215352287315596389269120237318037172190296013007178026192355407168697847550145558018533646730829781292752420298202681932379941609395740809760362441580640362602668555331196737592775175875737721798338475922221385939976393550393064659707688781849006836751993122966679710411443721541166543164883451284522758458564932915622539115755725908678723452302586342750179693979710135049399854525795533745809729978728677577631327326526731468115847212134476707714875771799957342891678365736296689588055926404595003571164229220789582554692572603293675868703743822042786306719500375568618855655887498391036902306182113825511198238895914139542316966662060628330181440065029473670062822064463860829980262551707505938107979466159897289906965177957879534696356859711199225494166148357892133805957221068778513304067076045160420800844898127012150641675144218909686087736737475894550346853749102427434806757579302311523190324126058062812284999488637946106742139452603319292190981820869874718755053502431579406489527979813438240967488117665518943795796614014177740224377051402956157821262197128665224014289553844141216645454248602237038779824409661203246569860600953540186723559438516651436733701676877026239748226879787640343944873722098205092509295261169222880624326565641301439018006629836247469602982697381477423068083849670936432820270079630053161899316732620073072969534113487369475693986786505663095847128589949535966070286328423335575175611005676758670154304529652576278221677590066257465041076589704812459634915411805847398281756051796229124945720187517276820322672561634038837494059652227058522324237199567617973716753041784370348457663445792549927118867893922609684303059449206143645068565220147764480227604461896014947485028865007830396326892304356385645448592815078301229109313325216842097092792066487622463126695231625388718725963295897729965447713686642405195175582314876854910254097076361278385953989285386307192925594384727158606527642974059400130788879963168088849469095260764058669220043691864941668577182363465298206542797260519901151944666704189821469381194915458992595202871784435509445484397606325109090853059135137224838007945966888291332159358156884527597738190281510267180849011647365598369234701689587160114111473463176098152493430397862156325221070617984350226839331400642047658844549333791520740814245713025616519121859630449979312753364680358917297555738299734847329993499158379410735303278827550127296713722289256282934062126029415853736629824409241480223247207503655455161339405915240263811262479095372109834160178362481902270718621011887469817968236809930997584034611374042179435093507664076101909639890007701721135527762656168069397946361026465706529395555064628034691838341439348713773425391064237975326015171895242400978766562628992885386659813976247341211808032903622056509224355461471013512732753727140954436250024389308979115093098189362203598740794225894533806775370206327258483398955967294947928225114509692763107599963899387471337997904207693893235648773602242965413472268599502200248579219931560876960770628018620778812866069051902326192604639680715241607310569914485167922977836802951398245529499976435376523816709185466095513708518856235594484939753713980095191946936661730129822899220239569226734968764183747004431999449396458715073091754858384760477054715698614722627355615995677683225454808095940595907598843011458903784144307258791935771330953888081246829587586760296915400125278294842392103932264845155864708168767581985655978069218895128717153257925126636042830255088746720921729093033287610827377867706314765004495966522821671032782996380940438750753032097488766249803416043960941588015215715850715239681372305859525159452179873032937926421415609677805224140415603921354758205676436084331106329411189746933089689907460567339826849614287107934323273104871103274896884173015608245585148448705426577897571624598280546275588641624629581777526786960063960149095184818275316136173076279572295243692547452803581973607736101835597229623637538464525112544577454526648782502089091704060869524003909623278897791517319851138573751639528040194868265828557441338839445273798226488321713738158975931364906909866549713193965562891926659963843085560517378954870836552148123531114589955383993431684575487814365546514335436859316766855652165984593620026815088518480747270037274055252575621636261626279374025030009406416961811281499754593109752334606634402308777670514321552772400069932913430993919434206336453155862593544543508492753248976675643188962406457562030283982256305229826848217975416972830727541398239893964772209025656212928839719495551186138043570261431067251006564084923110323143879929761060520526242518300236650971178823105048407130664750424297947803319967554148929786895378102875605783996601416829023111921202775112113677645705834860123620693380509820079478981998678304180474838866755447236634307308982005737429853427665495235900519863187155235168269514886408741856846269691343574710847846160960430563336286459403715995092630738152351505571815401814878613802474075696550120347053573509497475449783807133063570010057120556622732023891314292372840533909539527003864875030290602237593830210487576492699173779850181089986132246817074459421100312153270425946867452319827854249177916482002517777615678150220051713091260323014576269717810417292760959966392395177337626461615474024379467296645359456281313258162179085543892035285035963589126764634274743298361829099396200403450406104229300372895883323350281225762140094994899388643270900571589906127101780687630108525277928209458712143018104872694241769182126540691420230512858706805778640549056168907525211990167085328617429029391775386524600078353931762984552466914205434185944148243572780684932329379040300498834556676777834012341089487433856001215385344357261520908584432112182457819006905810661037529068007311756061445299260073054267224134005844243296445725316945373896921343834325112539455719100018916745913953610768099030647786103441609813712434565983140482033577076451708508373943189899606764990497544048559295430541528950492608029081743823176992771511004385635921465761523370778748024605452687512028496494379587867483154100082121892889227568968083148980799098452687608785740519245135211042308958455312249997878400155270664514045006999983063499538230090539406754893142260349835068811208904949500782790440475492749716942968940734102296529088477067692852229798951741377027532861424303482890141702538209803195928767443556931685724746901828993116148356597842572871035053711081372094325693301063218742446380995931125626612686081255593417550990254153077515544554568362123773027660852735331041559755078544757205506372946076742934295457007229619093968477983602895391207055374395126964945137223321078800167364206022037416885805685299364281803004539658589837982353732993073930788393579565792226923942719400124637714254451216950681118199419275724141463073154807560407544312698133342848289958971270306664268490398779187473357556085251557644655562788976303036362931579098615415343527161679928858636104722821334865572332790695145496300605225752757239248408934578889981825921357738564499660584533197291770331458109589010758864650392136800663547690729055483453138898662363545456721379229177047151766965639769658458200857400211616277577551844385872301318152755254991534439441233237415611382454508310280036545900396671205571350869899496788626919860331228772247897257830141931118816437622602254599006223479573544363499250721230246580166459454171489601685888153351017504749326533199787538201760360057143483404548172105625913740869214050874815000366644435272569897488449118730742759597786863313154475196166882199871917194829343121999983983499112736896755357308357186734979400136996826620492201853597950970499133118785279257484332640763298962358571311052780183518293230649572251578252449937529644110278263915602197368787877699221137471420436646624906297688563890517698804309376513426278494232380459162245201472920684351321504783808594260443169985251770617589618701200230320217473615005449449520212159756324991379157327799330159545574372208092414511065632943445197239539190178028692777600908550248353953702491926896713538688496794116483229824231106846658131845895105978947661651340258631939671584446880668389437199098413845857761962713997453507301514457166569929198923670030898207396673731316462725008219501254370357304902559694046283332708800425631459790300371947817954206872763414456293177542649106882214078587832357220262418202189283293440590997375373388037051440051964220956392101125711329018319646944061177445562819730265440791191756223865215329486381789540934339699707142724096460116971075566049059942616813189086804022214006091777513269697890587941581585479679369995342047745632514246881093258358290378394146744391745498749958326157612300274381844379354512718421627997151941067599489720774601910783569479226461180542502818357075198711898178868851346224741725745519126318219800114626816356308405867876424498831605269720094193785463250803411094986101347274453811871951393454598706232547186902688314341373157623473369242069747413359549919932793117245191239839415545742403486679670455139306784429931530888111584896419029158686725771764091970546880835879132192364268088081637352002766953694901887329370312996915329215781610042461992252783851169569077480308210020039180724886663927242579096534293613268505448348994362820982693327469988509317879783250778045070869637843005313766870674224627212452954516072713881572648006416323509830957595138730255995142057043622798698039641220735476706694110071799581093990950439393316715032558396870144795959409869026311070319653133989556652698806944966544468466406207764676321580249089455488939177315455034284086333046635462084124843776240501801132320512923440265037187053311784693785863660300051128099207819618020044677883078977236390192538883620105743056975150659155238644405025405254006315001695368520495602287427721422139053075026966934758867577993023692060291520104075147712476872941568729776563434679885384241728860679112481161753993425908894941899474390181790498692286677308685298288973919872805497534163748645724831751427572033921167734875712145486946082505205519816750533830732611248438234863033050352797598714072887368065822174403474855723150466726858154697645244679433170584330008322052383833993192370886158777018556683549774599782823675208769697792547045006986659652872519163561146408967347147618018822746774945237774527659702793155976929730067167589915156349896152866172237255378929075948338001267097923290747135164454861696072997544939494405129961738490505442608345397669926620247026193580815678369245782799672734353824573471621222857108319170143708238230133277888661898063053211973998470531478931108286259171978224775090125452728827483594902956649673638468020257377160377863916802531077748473152355030656276297708205899411880042063446316752908268494317213147137374857932132141130306619393781978442600555072064465771191352825568590106239281295488942312550549167752175731108052715462325511777077470767777259306166845849003747955804399083625437351328524416870393663293009629665345283504745347076520862239704455799880292806356168762973940359389632099441692275160889050823040603087572760860887450260852509513797800504519726807661835630309733984759257380129973234808531951311744219349985662174038071345127627815696996548675166779521514027958563854265568229561862908866523053507902119768023413665116621921106693585174849067461555937085684215450772092671190291219633814734031253195964480610433499523281072548006813869565237872643443735251676547504925500169432430437596661006293536349053395256396940492078361820989719845331631400587676727336924859442092877717964970381600837101561978751538184273547850862806610425433500495779494713965028859048598902620397674131036120980929895752604095970355543483530161632881971518771799173353420625821005907775817614149222091076588080719780967735073803682251976685509687739781463217393258502173011076515285409658684406554082550334360893985286533854159766294103240124259293660577180730151151831592141679954981657732708868556290285036342850492804744959155627753317642374360458313808286844028164147366790897475874156487372129060529284517244496187285509484943061408715166888647177468445173669040856686296559928014971447898953529559427978801815726696947291565076029452044021601405448915965254250031032240514086472158807971917717796308953035101225364230155080406773188868114674237774982113118869976113008065851359866712436381574591666390119242921351985862487262831285857901778597037787056840238779829016533137288257667038342627572936885945415329010307973635459246347531864308198819416987832575734080720801142148215387166663547519354291093405838698894458097206616483852375584302322283805588375182063082592232105299504564439852248596610357406408042875318092835864664974947370348961683691179491791716657262827220973366335958485066680155897405416362696839542988966190428443191127813749066087433531317358202377449308063659593176037457261679383431582103534419022562004447581049114930678862238826648903179871206272298934173305334663302011869066274184989504231100466017138837687825684283513019423099572207690943288521752748251192678525942109571366946134248234295692350234461093200736538733057051775006366382546959350330493567900099660338798185331574069715621240026133685461263960806335061608115862564094512559047468368324535641274486859606299116670089029203501103962799190689585465482143333683055634204746273263921828428274389688007064432736415632864400298475796966781702456496019383415126067071523437539867968965472303266564345170893360118555309545586410534614991901320751999329401048881225104331272228848390194158757497449888966998334347460381722545127152657443355665267554117339832071126817761037836938961849531955584619064318213857306142587128369338867099804887906348856357212288608153972565088398184718055790524832351258593395915402548783197086393713434770818633634469864748424137112893104426989915270670300441389700620887755948750446862144202841101050695469025821447036191635883282868482436450597552308090320061512295264803795510015607320667037426241173486761470186026630916672334108408497140413521124052044106085141697405344656310722333525639651087763121944087019034234365248375002018421917513530979180656952483025440544372789442956673174622011557009040055559208062275277255794557149219152633847561308708491683578149392327099438086225945480732075165369774483154684296746484649641734823711527021344137948350259601425480537005000333687313811978017820966939501715308203022460263614180520325924990178497337779593673847323051028594240447625174076452771965487076212192217563065746852337298663006581361841339151894742305242640685463747161529957268441922187244217734697230090621118117612726958890597487406984157173599925326607436330588415861712438876194867928137900922443851241140507168026196778203388828816021288796790995647814690274962925045329096265965644260004121329634147254668889219016291071027531544794681036709912594635659247342687552195957723114797320154106756885295657420104758884716533265325598767557357468447404652743457820989847627285809933411441910585754670033492179583240275431700738016360436977793194775531640738305409361890223412950547568698787101960906365716799308485882546001533702501605986487404607576387893180837420902884721166736892928081007982275004535154675709603940579342710219592675231737551404112499297889400979223531739606599126014193444362328728901467150291920616520962900198174862817679050008434255925256570861686315092932896024177612850972171140208934340702185067599429597799021373191712174953637611078468788232971898898275666333554008740302988469201065892723506074960482988353562318378005265020759095634216738117058298677839652416771651909332470720725427221881559091459629606660217112761916827005362894809253206289505029782460793193327062296269246607423091326795686522843804449835592401616389168773199578782850902629498109387592639997840687485876363588585437922014127516576855072013120136396965099853009005747530166834085522234696671980787943794532569078709804839372185921555937040595411415248078466358122142562387048178663558230067884881763654884437415872086109189233816701316157864054471996747018085207736118769642541406693852738959130463478773977174410650309575005164362249997067039973683824853570514476993222204983068134258902709473966333322614199153746992439779481978131815444572883159052653851288085407757794506185997758824766945649627844385705213524424405316217969788844703117652470113403238491494933046400086325832794045713165034076139536435931546933321373583549356745866710781695753609452770543418724398167702688656468699968986814578502490287005826886316048953549384749664873827658575345981338804298147662966659294982675225189262155940068562137595037294461691501652773920838208329517847222475319938667660292843752236287292046312501918112034612110482520341163367579512650207918398097337806284427588277461412219500116281673382247217940343956271675155016862186814217806855438345867501911208298973317346025365603109641859453135302617596669775647388401531094346449804177604286409620719523026741283362152366501789491540031103642675558466577579091582388509449534089849207397590648974233760336780037921222040594422285571218754963398708715629438133451987499617220907758341569386111950677022937561998010554913778930330605406349751305764603583228946342493296963252972168274175311766732311749429821377480286590900245043364352671020951639529620670308025270176110577165414486536591934981462037536012819979062957949656212959566927436548364005216074521832893115027654059411266533070755897797259807756650074670799219931780777781387663648749115818323338421429491686920505988912340304875095742113891682607043916288508112318353918489032698995595128913202247509276960415325312005156258745621735361780095143298548036578655128732676643857289674387926104648378972718571220605484098685781364462050044726766599948456979436325208349195274706082195129952905878116083519620940058128187739174797826131479201196756017111859271671692548862573018767170890270114089553499588081453044086894805675849919703747749800686347058452787918165903826762975819138885467785828611034507710208867066225922209515209230029438834321416905908901184846659430177686805097237962219829099897130798359045309808967335921413912528320172862309241623025664623902536155183023376345749520779770959260352896835292785338958113735927691091798662187838994884808872477867488416297824839515415317758395347333570611858109239284465142134790484446919037404068127649142261013851564109959881453383489510476093066748165614916182229399621720753378343232736575697939025936135035929870831617647648035706389214210588774420506140728882187854885936985605300155417228386824297144234016842033541072389445457496945447123310031416096326693905268233148558293381852149786383271666959739566040366395025690799369980671042038641890291558853984519149570096136556740732967732425490009404475661605383948609354358690581648032201557524488903388448520416275249854673256073060746422558206466506192507121792685789281725395454822704541202448943197436278563620891069187831336560510646057421267450052196111938828420951537361032739738195074136425001476723562370353786842097245955124908946102547416127519130367673897093986146211008417763021422067972417817261802464090154735448358398191677219706437678712777052355447052507005963435802952865389614120419520012748743587286534751538910519600030814309794360214081436078032518757060484847704507354874969418460490904713914779523228842535647622542920173443735891073271828304509483630625356409903359152283640348305879994185657969889240605738513527632304599355296938119087970623946477729870708071928354900843257130772895964609057505926090160273008319431154216704369832650607121815943868735913609617962579494506390189996865427316604457080837478959246289278465539382130822738789556655087387948210772490427032146558569234623043084611134822312089434702870184401809886024747375881337211180766063457988212901902802801424430107533510867642343821560685511613484042009286841013835438967027270589411854459563041210011573913396279604170463689951929360490985296365050633518856945953175133772689819856481622607503827111459470094074195724163105953027237051368941486960856192389824941318722741404791464968415423852422429788444077280781861258531543227159279179858879844852209099307456980014571955238578334538417552857866206580866161888718897735547631975958263776489695766957322385367067939548209263024938224235261194569023649106194560212836283034584654473297034510352501423744154864058956693747509908853744257091001649246402542584112199303681035088127559847224695295056660506601315008005588327335306133948614890791401150988921985644089458448183544289342204181247864107458527381216167033141737292770708235393617238088201450100372866080603476846942689601913491000125120715841723432837506974664934195038157377626963469486042271005571250072733130489031052366580190455021080281114107794049662351289067220931749886908786482464572518420235243823879938522865290046199673017221844104738519950475675366037265490595738331203609247633641603118004830205866545286764993198249359642403512070028062902432095905505434932025297780325682634804792626660645470777291877173744247911100660470008423097479229252507890102241557609567284234658831329903772036088083269951366744305279002637608297976352431559066576149034399752088758917870727692259681982468423801378429898792571632765599092213114570930795989206092726156559302354130936753137132572735964448628072657686798517763543794607595468367056117717500775079150557982744950736018699502864063148859512583783166454038034506614606000261080476477444587081015373612284998885975218877401983729864867177984741758217740558392336870493756602146036984322237500448677634764688155994952503154452202653838613146323979460430221192058710592151009838782403720635599119758084993538110500956233401618340618343242304925242835031083516370619562941574840582854986483325111221614771921196808615945246214056774715787617653217571594302439794123352511878674693821532965808578156743962378674064681493314436723757210363706306907254605380049642244618294150335154766128345026080400944202349432054140595886544794441277264940897264934259100203164951440346754545284404969856550949066952799608801534132331389736831422641669515678717121266954866440117158148044004749457099764825099598667053322198548361220656716093571277335671582759417083852716494081253286983570114011661045295288406684221707763227438507630273029860682154599355959362878134259754839911263421350749302790717999566578588745317915066803135056811786427403825730492694487311155560709750655347564289226168411421897311744582577570527121303169144476493470979208681421364167951706124762462275586756129819536599727043488241982999385524261704739818562246849888519574352300787225750251930766112919487280680195582678499106778022726571056499936703585180040910076575509237073462394182054200346400394804254076741721936764163877414787545846189704291395332386298702410921406980128374705353066470972515666402651002273861579029502762329499759951826728949346154813343543386859335201426787410105583077602371543337744674901542470299007980320230128393095205357086440538374621824867493246516584793084710546429845515739575322718595119760555398812490704045905797347468662392213739101795348523232489263192035091964881339956005569714338232557498020473841179792859315835139787075338427268829823762581704805118534741253942003688910694123950047606234382689033518488414376507086897051140753752462452150184221391623530601810759981907407386683602572349577021643447137285987119097784592141898654631951251836482532801282913406017587246828381511720286954644154324268320263114370903964419635698095810807436661515988162964889541465247876071083349423330283074064709403921570763812592175892585689223507034685016152059817953231843738626536900846731489186546468031395367054424539092511826901934764215770440205173221619319702565827626614186100458578290449716167525761671474616479396059552418211580915590328486678892760249714379333692352844864189426255481587193211465369382539974514588716578346865989175878285829904303703779526435916034220012573550345599195373871455041259202108965386755363100692279709403535905986282093812950460475569791645846451056817703266718057940180730234762183681489250355780338890721091106768189290998062449895589810490980739406504618949775290480782689894536506871038810656307273345637153415079232014711082269392542645480783072084134813114253000382248160268235278351875094871124389062257195068166861455332651161526069610717123458421342918688139858850706520800477221289460610882585421812383150952715968715347357907595670458774615567048787279759641394018070520592981005916373176330560456067093465414476215672306405618892573844398509601480356026309276000390280865008149436715091300506717633720570403865359839181677874458772496984757521092346230666512648437467444995042536545071437617031435850452095076954878372905690226420393531391568090367715752997642630192578316434335088988692743948907502488997810501642113062019076424132931487708468682877201854286897625221055085672603515732728804947246050319908340469858412688746592355069219033771309495184914327413601456325869763085001259133137223847903137360340775093467109170378333311657889460769815297899659554690387772494868246710461959214350117704799090232963049037588355929697666817954884872678483807013826998709630011584065602164839564673244415506788970490574333659434785992762929746404693341157205019289299103357163153086446104410728850785843769164931020314278750992274620635661596743436305931838338660942475925598797899663738413894995679579107352172113842923282950929535083342758959974499589923943952926497891231878641777191237111717289152522341343381834848770829268062226975581863903041620670454583427676205295322030288359533046255787780157291255735818115344623111467688395686077953905103264692170303189940636347139405943790993506918634355758295815145561363662419487204495198094071658243410863500509947202830390495401630331245864223554890375670657294012518998092333182702939458058496076381545898136690085128974042654965221914957429970230382981432649483829870414981485278415207081453595424205076466397476482677825413894523816696184507860635216263986662932987449530608308049234862475901883857430418733933446101624710994097798748125452195369565228786479084823808352732727899137475620458692985566085375311222793680868804296132671715412094918893529336560578380766129994932604606408561231184166343078663982473885351815370842862225432820735352167963306420578396366022153355615269913032879609871615857668127524712678818028504666576605942135136260901334986294479601756981248892149498393779128132299111133054680772225225465519795939756467567598402833435789420704839969440646180944433609540448113085420023050898095077926750057358515022172789255328067759184219262810554248348728959273680283933103532216696138541653172671251937499847431484747793080129998116426206616613245336416337526880020363388241521687628829458430718388084588572694212840879682404969435909880641355354616885031493702079020920232234647063756558579867193013564197447555853023355802046605907418804025002254246616609627497636746825350442669847201139258922166493012720149547299321191746060334696981270717959813078069692339851524866025212461065333198693579778407934063023400232493182824367470021627345214558641492010299542340880108540194823865025226825639258589678716475826921479421132546110604353519587251042509536391035569677136142714549769688153059910247157552677799189975051640554839090691451040528798668190995230521954699841543353665047153335114354591005891241677864933795064880151712034579280488505485429625890519866240914292130566885128983490811441912427567248123438345949556336807605947947813515296049011021016703326983926831270346176623164318725237130922538213125896569073078552867486851789820846284700725274745530231987299284932512681342137692770715116185560909161366899572949123740583672957965334421796348947632300119963577528575045492951784609309517281053905014333043966082110821604290888756577193065971989218634472835882508711601381298398131744631738745355014457641331905588653707788020195374200794773620030946788877691242633135551567995185724267917268612955015654287376751662508097364374072048083095142130478990376562801874098936962794036883644289348312816099961830480795549495741902178332809497249469163535645169061213281351986883360961124955880269380463655731795965963927996972549174795579489072867177500177493747093387750425290860565121300989616154284903147417541136769995086441288404820511300726030376481212382273553698254948413626911494735858014025927871104520282755352469837410878885379511159473278312426602010674852773724418599276336183072646205634306219538577405142027453971140377178797706158211869923086003249355355846875022695364792493168660320963359841026924550974819309787348191351137224577083102941594523886560981513738159846295594426024916776201836855417296981797484097942925168293590373773165200766431129056897055883431629143522760237254764435047976931316191673880260557165950707611827849104906178592125138831539151202325123599221108515093528966002457741737525145326002107587734830860074889763332264368617323369890551051756730550015216437695215052710343197484762286930030452397739293624199574158924891971078172467746656052935190464682459631772761151456002756631770976397976578652884290832759354607708737323515576647470637589647741564386281303378830316181459957706683760745439779853173627780788813149445111533148579541415545417977596423603170323330632711309282699728091300867859365239933863812973411762976269943174111702612077381558622951638402996172460601033593274328070171585879224246196246186219886002892688869189638270621541563845869558623176078028284460189600304993304307023522187856800078765355246192087191027755096765488391321232365216083300534789909282581830867285894616695899227701893798461644091477388216097228528777974338031192681085644328120035263225393891611893121761862659139439305628830483556182850351902231340667154263562062855474922305725115308157928597341333099077537676465595273208556516284897803738156539055515632839539286158858759375811878454668262839557912467247176300909226953092147614628069242177425714569390587845887002479069312214173298468044815571593863423300540725421383538501254617571250459131040624777613693344668385283007524973349341122482093704325912244983559120871068975432679363130341046565125622131463254403447348484667528204452852591847285026985702182821873827714101169787474306129714699216689911795214183031948404002051534310044455038976059798317424115470882346835518488673411316121645007422593393422784401429475736161608062011218306528048698227852974050564653709498781572223422398140893479401188820650555730020192691919090171981128753089950498410799416151379627076411188085766054418687823548586769752726173044776636782645544901880109219610443681820880327618530368816652852847193591442024897773405219711875792159548769070078752717173041049924674987471898532463094660661022544831711091576080948802720648643368031310538944974795933238944657509103303179944073776880827119667939023488330233652519044476379707477185369948440102627247545772407400784038300411911305652462870524465760568763156873151989185743149413694383106899321567632039846326887362943950242741531661107521803556449673897337041589357306788796274729958087604316663952263177237552323858978266137741570875770538009629398537917861135711288391117880871364765356934470805710524232312262529160526868661751202828026227386951587055600612787450448173642390536754421930815819916305573531703940840664290504382298151815288280001040907320034829165346338703775104163095481748252575795517637922219638800804254898310536593609953722781834917670994168240930048305571952253152838598332227847304362396595481600273481846117222065845073844552915059936091715965309262513774916929309924392933882585318407462020897810671829916050137318537629755309869108199397862033670965736559270381634282200970471254064439630012322792601980548313298772531411549446912613151503778853217285289479449974941327641327459846463764127631426085960302583112948768238624474352002138951600283653827682877137202522553053521937863985192608716817677626852346898837653861737713321962100481136755600387662725804334460815593664217640311525805606848224174055674012660827169746358327296106632736845624904150205725578333902476411290727968210373379275143677222772840884760704235498558612129219314106161796520399353810236611252282605608880652004128917418819713693287299726098161267241442522186016094858035517609248647966692219581206551461761508406279718507181974676463015858782362771566329026178973100510244722199187429498325787900397229409779757281430397536919402364971252976162032023622880176598838465239993655840126287767457456459906382009487089432182624131854238634769734322477488752385671550073136688720168622558675668120338764934166850878457254490637344289913991673132733378429038186297337488410293175763471848990091303827833001105199241599703995965022524966283775863200464169534096487655710587153489962855229438059543774153804408903144817685903037038599825198047162946874355369342932384378441845971756901552579879279424345757227064595782193660942171136899235852673055514867196125187870304808776784681965864389921681349274657151012108188302564522048653073290063039506113414120961623116522944687908088604895420338486085910353996978863900338816798281245372372519630399952130245274307581066445489313490334867191885572599104845670173259166024571123556572972980088245816234481276300155657264393495837051674638833843147418347013978289030327109151536007157885345451518771804675563448947727047802387299499661517821344842893413722140596520680974690652495774232376618223548618182694124893774443967613014066527632465465603177452722626664772315516171513125209395616927809502936179986127327085922245332445146330847731901473088569839177962366469340360618353776525071751909552892626386594363339760839643905363204973252933101309732761065104725465235347350374041052169822275485647940866217170143784950803534612707768184177407667292548375634386445686273450591249063049925608116459554377343370805293311033835223744512939088550561198563586361032338531239232437425681179342862798078460378591379738740399725850384445869178495756304778145703737122989406362750496713956357636901282696165141940041201591480301928068085651161259735389631129746396661105893006621385380565224634761934486233054516990572373025258812333336516814022295891093485790093883726882698938549160985759199922997254722769910487634971264310846263531796401012137499312957451153155883158646771224625919802129807623313635570831089600726929447366959839691364988805255649845649314698569152624305599863161914114111760651389697555542870305717625855096106430303556423682065682465180170892882238103458167052737438831008601478105752405593428241893315166330786053490530818658486504695533029106287649640756438340733951153953718496171106192486492079147114212424097068065672867899888673202139713579912039279583653215789975684699146531867481028166084843419711238744776223620760329564837283589458322463335868664433424064106589721618043791801690342459414947522627376044098241070728834917773804679162159219070584115595924084252149066960340964183086066056506087070833779323429896980181543125060117757736807558468416353343836182609600001516203812016613080995743241583136994047008235691965201268062862976403018594314427836891765346846520660478090491278474301242246314405937560336801572990851670633306777596146821808879715103982767480392894882007371199158851080456185348547421303704317122689086237416462359877999520786451800766735450898042501091280149973500347044323204895325011916804071265953577592618957417992991503915670595239157409555387682154028557269950857687802807817550577841719961232730384264119316503900705718335527700479992195162326472374094186172720698034878148609916769198979757393915976846061401853368122168626315386935568154930485290874336782177330304314225271412803204662141541121565627352106644446724968243510109246912418343037797002334948087147423518194439288070356945494402461209014630784762499364663223717496097126297995849716501412017588013942376801707447566912112404058604090949995119595125934440617345754473666147583735543258663970806310403447914138192034932521386597467212637421175321269781638454871758548496991526018011857123697524371535553758113364136198301145080075720456984708293088141942184448331698027698356819999560481113531222383486756000985369102570682155521829410724137176189120165115254872855922199975161904211354321795182668202479427903704554637544389087696974955125884236756466101149392664200538713073493792090023427972718548653162249973316834152171251500858860328508840790892524836076442241075493913758220524803845895593116081708753191550153067370794949346250878927783768971423489268308703650139679484651292703647776244481950308704786417525284164712892051421957992871198849984802046660021584158588345992527992630226476204351413694261722122226691011651708975105504476373527823717328240867062316253710870431952312706807433804129953726105642741221658481798121058321341996998266881686854207196830734900167729092791277117266342023760296849873222651753218566314104103506042513257104375786742710184042848860961067099055600525700159209836754076643480724477986064913075973252421900815121602491293563106913456927318079921271867015880198622403573678063033265592862737002539369673306941861585388203738162412922160212988894193667131526043284010108352616276728258479957042115314453445495808349812713784208769935199676936735454466954784514070136600897878069010617595466269316334804413861435605545646694601304300450871383666291060129339942563203028156438983951705697684284306145499664339171428696476639316494563761778657769893994969691405185804844427041578257037627352981358330361456288798384501778292973228564713368137274038950324306715378104879220390159611550711048995140351999927653705837708215394670265075041140082010331773297724565927235854043664839619004094626954661796039191881533915665079497451580087997416680249206230409567470062207259310270175413763713815656248384498504025170436634079039384943090701006025592366474776902436227065688860816214414279574862644491233662273286942520544920018737620262324775007556242956938639664215719833785082060925463073832565565480268294576765459085297067286698216369688236021093227560808557398932728400286615137889035720453840757559018858452904046929533991897708820540667722924959231334611147980207332134752864993360539522609791071249809169875365642816305316653885948923288167332094418081971417949355583578592768738537098290747170502818185409415563586915854425201830297772185851890162419347985198884690259164515624351792184566736480766053472356084356208525367097537104691110790511845350210599300236806877959912218771053311364156154613701110753757543897464680390171055988863539186069973879673529799151414808242152255992596339845534375284049169334397932450555088384841975315025543999702045752979750745687925829703623481913552336127295433917412510904692875512128812884474123632248323103651998000601155191249794303238063173022768845401895203263823268081784715460019986898240647359155658385825204251867364615779152275788559732936354699130459821143332652218477691913547019352914130792435109663770410741290115415929987652300425423924166114315519774632430415786812304749933962996255569276818705411661422235379755044854529419574229914697313236302409357654561776367255954988565394578200533492672713347204780119995777720552563181008773552809319578602617071772007882307258894599284356868050407225095414961809260756102181011591032295352707561552350191864551795467131770425855422460027304772264963244298335577373362821679197504306644620654545502387229564078252602291338274128984766839805184412368245748587612568252302991739327894876392762921520840030026509809692535820394586084350745850709341089908279339779830653668537407966556220234260129308919343511838979685682950889021590637065905644486224684706046180937365406904272835139205341483232689489296883869863397936258768659721470170301645789722632079356743216110897566268386069137376531652791262590123721438143637599492399892024930351787333660569890954907307111843967905375313036749691017006937846683227664772912363286136062730251099353544476829787955097147359125852419290636651923931454030454011600491574371290056550553432250714666436928781585592505216323262727362079651868267409370546111042756225078233139524514442524663501589761610539970423614801171115604571784695168348177162408791972688674094464395107359796993300186546123014424435501652801067478545956263962166846092363671466392437550142234377273141050560445270250122270262791943040903183053816577844033938154311796604400120380230539296488591614763075707719542280102374235302691781321296801034802902186117276070474136833921855126222753605836138176753658835110837083018449799793916304325918449286015299491406575153903387577608649223257656039945970957812801549106861740491312514722038036877977995357018822340733115766345388310119477934253465659590306695876707436459602531432795792172153152416554729681904125852040196515267776430431670075075204042821516278749278463974199388877282820824521931145824553476836893274422706642485134678179482452736460216613770397803916851471559044096790050488522089701791612658197670964203206114974594697130966564817495223272469014396576005559585302968838383618695751978029202693965871423451897096619813128867324048405049971844358534652573172494241210014719654390303199082531056990552628996301164495256146421576432870445690566555117170033569299069084921146158888368069361711865127828773311007551459028226357653625302330065236108212602132894943149961951135686832334646504827626460245229159380506330328591669455869632963287776788226684433869511553584569857588679264690472941426577313785569811635861248685174992336043469911969760694874787156922203097253448124091225032412188682836941804189149279904494206131619892307021107568304981761956242237013256390509682472838118861881233160240383702098241972923037612523202903677982780330606449857725213669441333057364109264856128355129239622144636412059444182607798960734403088806248586870955786690784386207415324731312368483038652395277936832702883726959432054076953414632829370111696001694211577197058025265023122739128532953169821005925338710897332757724163630101941501753146251582044727629271007890420808449218362394986345431543320882501824655341985105992937996556479731147321179591729893494927509148408957414415610392483103975883651288133918155424572044477475631538036504559158247396393962855594923447114073127863926365283285344175842786432891347701080540172350310974978390845162762674915827215530663971788763814180472667365313885883329371111124935723124655012407615576446480050399657708030784205205555711727190438705143484106673711971021816309687906475799440556507815300937943726906429610898605268724111015689291998046562758114928842140404975266250444188887610261737683797340935336109873999443510464621803467003700347917301076713330351996938090929495485330234660803280294803590598222449328706512257900261396774127445646603081964426435363387112298675817516036996085853361960944686478371565893495500068178907841461124906871345140990623764208711293011552996835925845831128593001504188611610120535319475079479924348329746396451645343712336773664626424649066573109614236153858241901526924693938183722590103397179195846780851687276101323985679085300347995025281322865889277796116448792467727998098277148975973592275439833908961758984978797486987282598388321108247034165108028618254315758299993265275624872275624438875959677195972634185098508282323756529485306195247583328521420643909267236084944172112133407241721459806598421679705132653112397365694014668491720157864014659007680726413962408219396003964549455279496638151149540096443140531156093314695617022636029705036046709945755833390382812548093612739115058930597010804195159042382633987065721258980231648886672163057118226816047822174543053899839729953346322575403667874819357667358585255110821189125472806070305533581463292099421377813670295948858747245754581413132764294841882184261008101343255067175774339121912177337360181817151894067301057628802731341213059772660863840218563842445357221643227238648986965533447907390840610092412739517374639078451758898772775589302530359798061391603069525907024799928036922689447148109034396119829191158795112226885510649197105355706785369787627584366343715841972850378693116695259049589294059881279644660931676846473006274665948115151111102128074879318826369025278998309594628079641137582780140917840988239278623304258899309482007103173775891336450239729829814493719608166791571009367173916681974757573827794400359211939603161127810118977319603558407014195016576773869736174204815405721535868785113755114373490152441170593543423799309028030441286848796261288219563993158254945362843112822010729445530892633403067030257367023662018301448833611177548310374358232219722291029072485696250066485312505517140640050672920100302038709814831909088442509900324209633125123467105054425238759917567139503702135089884740898304557550940934416166327616444745817714483255306094887197460331722088538233114598694733301846117739181917884881487896102394846291698024918183212429753265754021056713490622072952313657282309476358284402389468048612919690797063481657730639325431497964235543870750553341033492439866900141799272596895262352823737632066887710595635630656518694229658813601028852760214192333345553877808562865485838832001200040516588917252900791738208097411789002678342179582236490496522208631516402134053250834159036227470719581756135442184117811440043311049541671636811010996455389667539930671859574475496460573101225216158141238575417307721457395134225864532716867470651335683969313189396428714359814254000117383188765010289962406047487297999497081773773083804989851154631553154379202595460443895209708209391765324974223428736500525425051629527724374078136449643590220638548298366192574764766452800700498464546592381627634675487426526181412078865018987429018123999100254396013604686187535320125676490862170330795135021691365750412333406954024060305242121970833721317769965540743427180771135531947439400996360207632040161620843197128248611977389595213011475045954444666450681070049424702682567452565788710574335838073107216671603306458063795355638287522122917740892021175135169387315153395991125161580301838880173326209783856662107726759803013878370462151089794041340565230119636911073011166982746623369044036661080810111888858900725244088604569069368678396905025661098070804428519267630284451580693262877525266845043258684739614408778962130325135092614285748073963054945001871148752166909367207456709263993626419494668474510329153048724302613609361729539461168550371922375646408807253018725774327413766823536065777735783165198022213120489239515001120252516674711883357049021189378925957957335245946037151427815582793307159777249814877732516015194595628151427816402083997032190037925754520537591215651813997566567368192973853044808280149870158524518518005924704072041154931470575606321114970484795480030222337239855996369099648595993322361744971949332001565704079385921633193336606805931190572455762039287843680690991351079169008330104641980451371219969363763068593085481580950282262020498902030979798988518156894814797705152545615566960967193876280946558392427203326004165605645038841109617619365767492236305551640030653823871908960890988177914477633672414970947383956181245041638242738116980082450554581662403780729978228056647749246645931863484093055206212121549319350077260435842086149089920787467572849415677700358768447248884352827769481254606029486673000298516003674679809042013945348056811593939532086195810766367196770425720929709771500261375512772472149342546077893395652619777046146752569422649663378888591526945096738651887450510001241256600142934167490609969918849330203045335228273816309811401145623662351038751011865956483367471104716093945461739458509585095176525921783848619991329965259952132210614896154866917747515344013312321388174866234284150541632086079036562037275860872293223598487638677714841682669622281457522742002902815991542575429593931153159090727640292520426112918423066693752038369153541475605343354412757232596696165172030179032273141539136194223482126354503166944800347815324249450275921117639787017427969843255570035901197939617097351512178810383609940030265276831493638889915146269440968840850666262695557932546928234976054831459527129268416288908736450579670266285258343511114894547868736563478937722406726626293558157082421515062536254673425051148505437400563364067488472626407322446729659461786903162400555119259187294121116781203068340369703172125068110449231202514444414824278451800798352280869772518269201756743325881557774171439663435745626338448604889274977092251187850272976195210241708770425830304091214870626589178420331730265838523192321960335541394009624281394209041712983786403430918569360211186455267140373360910697442758410718590377327359578255345426938943255302876394515801933912064526170015811053208539357123948919119949245457354418784157149594114080042250535710322427703784510196576138792839389287726448640908261852794507355713668475644161069205356489668452802665542906906744733519137372772222068239232996520173703337830306054785314494483973710891600638363609379770678177830134752308542375054271790489499453279934972322333507897816858956150946370425671087468179577480215561985013528156273259007668533652435721438659800773420215140331881051838811026937366269062958913625201908053049986019926901241963845532390714708554266432649067392408343497147204271007284163238218202514172079591983299971808261399922288273890451329811980218399685917307746990981526568313415770319475528362007177133793995339722939700885285834706129321546905483505840589487383886296530205276143446708638963157521319233557491075549817790957963183051464674395351735232088396512651973370419312622324199356500452869241694672023227630308618427328074974500393790108391470488934997636588756106845684952599335216195075593747997715842010675710917035027861281402602247730417755452054796784605886279352384631143761221818324630202253473651251643115085212430620065214362171696295072304571490046274893948378107545964861735937513185246509303477350582618644003213330462816910541627155832138297093083324934052426313677971178446458692313129898311721681990523964759774032948003036245553594964305344762350430595796833628621258698957700512654564022632352608486428566441136965825957962328591468188338391634446474101224606396783548670483728855305810909478499565915551878422570855436276060030500287803649897585350518728090968916409356135830347736672744194653436282386842188485314967116354855203266245511539157409387072775049146594126601199381474632421251790684165202290460944871926870243450035342856886036964082214071503859227596334214966608291606522173413879644490841977032483329838432751512611847818422367272551664285212373750913804956116634627986566269716541668944652185406335776956954732852093838677623007935525266569087744980130432788743488451800970481582679050710288169952161091499120557632661483727266672592047908286841742466894786717413074366805992422224206628451915421472506252058516562469310794404218582257988222996237371280456779445348257750637947322531901439585563296720531811967792479752302413120454467787631270836277696504963540112404877372605332561851539423005658321992188964637784123578875032493331242877922484177327518168652124696412360614649609878445523830803702792723149095970701032955184168540169268265338929700831980434598251638254286163685435943548067727029318416411330889374246181744053753102112297637720859880727776820175521572651958844088625054174743059312931679813134753650902432930710999847981337552539543492498270374855110659594093300136531106196435000027301315128127852951986038549368972020189507533583100456989336002455468433831648718837643711167318624070770765015450892235507276304701389493619626638609063088942210643563021672546390469698927016208337380388501252390825496955367701705626698649183957989579895566144491208586045606758723344029116643431580498587076298093644443179467552324307518773036096888575158097923240348624796394076593614297386440236040248967422529562464207255522125745432177934953345112403769411518855496751156214639195367736839005778101388635478565114868193331133705737308899550908481647412013658077299361001849111975379597754779608878152371543801757947455768874121179417925773801386008836422339775811419865381298101952122220489002408470576371183986682802508166242290060855033476367330919549150715886685447685122142111505734926588261815317313230380661324781468896330466388450553311570323139424397688182603966263947090349250713160825743751492234700817607045575843429716545418247362249522717940815434028441005598595046542245640256582993205687486580356248749717173706799970982844850975827285381662645001487347109706703877692562442217538081977354083637217274730167954229473862351615336152616414094801977796891700091620355794878156011896873265295621460742977407649449880504905217015998113767674509284402500180970000849455151778483767259188723760526281786744570419885422466206443409182709771645204528743768381529649539605259239994439186115586664824381470175989378301699493518416677067097582867488373229134204046542045433847902021949698100805295454369675058903355802333317000920715067451266467897449661096233969015586388510072468701546261140684036297102367476625838010997390042927162862378291103302530891479452486131496068035960072683641763942752546014187539482283917623513524367864790043155630901428481688857293528841559883745292507184273157203305884273256176961139202049496240400351906054263457327523966541358731755514451808823161593046154035383387552857250465392233108143146416746409785718707152641467048284048272718830458302915120291447891437871939873447303314363096104863580893111906109425181379379808932293670177319816590891750433734892193716119902399837247125098765670153872805976375552028638759781572751142650442464914339652732056045973522581424949335521084720252847247963769746777486525184943354999160166011436599941024612351881913952574855526641848361751806537330945837689919752918734492074198531986304565333979287342310881048506462616473516349867319235917677937732094307089134260544597796670494782744846775496168577419173385466734931286918509873439035542043203787718836452338951391088761838460415486036194529435504847955431405868756865809519858520866750791801318328538901327302651756438463012279632908653853366812291554229594053767868022843643874390608129742765058993035613350823749370914983557146953298145544283100573426171933201697721915631571927040072118448620210231243112624553915939787077818892156815063219992790960407714452475277076620738029344007906146008516438512464488912736922703112409114896052352174975387618021494678464291679284037563351226213125269935830413908954955097249622093769466236546828363934787419975059109985047802175182006820573838814609244116528284019736969480233617169710516639065565405925091217104502151273033055228197923001886721655487240840383718153233906505074221554256639221957871184942617939682725542176711354441593701846371811785596529752944404398072561664039388923296370058673182622856526622819644609868412000833927604820094756438591364984672899508552869015239064684283171469822803208451486029566125329560993630329581332952480778846974335959787373395653021812231046232352735474896893184486487075669538699351986146800392367045700499775325905539485074491431647458119861896674276501341744100730687024779571787809784831564970898356349748465612121840056599777696205444359783571467527947605908453604063831670993190335669996676067867582289767209206551095449107580185521919985946568274002498490857796013587137250831866611261374256467558727692069758453693767028551244806912180921102948327380933931299887555423850477481159357849171555192683234274185564902421666053927646371324393547888836840256478730411413162579328109557945019195880966391667502519253109168425369323975411087629589833963500714150175587046225108998635032687483623497298048040326565004831262240398216099631581790055255364412520717706394680550800131399898235849739388603360492304022148214350820806298169984901027977082125536195602568223990420755274393856969700358695222332702395678521633712704006605398319375277677259622359610384655275201535079287276274428934811320622323227041312900280089252871184640613114820797846989323543288187707145477819514844339097814617053882118174759983156164581693851933845284310232091923646127080236870505527127330820311000728900104025894829939188076016503606432706941231020639361000988777745210118366527361506439827152377564900051470985445782207750349594411719374336222257090722341960989955941133723984886313571591046245169471761696597223721404276283996280235689013329711033604263094702705329092816454649827871122294907273664984196600442676933353365648093374859415308828630590270622034232174504895271886209046536550965236901232994506207770660539317070072118933461846660636224237402136256537105573815211611050066131329214838059917397026554724549914595836692923681858197930077728520240447999237507881401246193650096306659765842337967121530368438249572082874681646234148605242719007434279279193573753744202318213800808255928836405363085889892984146507279739803704389290174266731120777742372847103707013137328301456369780126810052981157062987725183213718654649976606195165601733307829637043786432346920244611572001339887088139270046096210536132550686887386763374284361242742875394117754498057855854298126085167616427217030057053881134051243076147388440805960894775888256552738012989322356259958323285722721916260729020667911619034775520922715771152077549694771514345343839181065202438733695347072885156044346860980769771463084618041105836192881769517552184655924634156901549846799991442399015612668485116613337807387317321229434291270183542762511480725233134653052774803014178939938957632598518960793617751860897331093393922469256050884164035685080954653320755181350293966168332299796666668095244966392717202769707492407613614661365539008112766752840340084123559247021562145305246664830033974273974526808675042839882915024072173565997101443578091964041547162807618608386564957429258782593859030832757258518385384354801203772019027733790971121421040262603571914102508722475969396181643883925129816607626457888457780680502403297968493385430081839117853615568334050586707507247687966554386758565519965468925657805043732843438484119002669961224204962054869799704549555856042404625352584040188508611153637618678430291983479912168877645732584581200067430361739571580103666226004232813199941433073453782535323009533332615901444735404883264669760757379951013790267845592514857296846548711186478848652068792931234383109376572292970342600737606012473106468082273922476917971286455561684129291487785101144041120764012053786760372649325607288968505190354488086639610240288000307216236136776287120596674044476661569479841061089284939020731403954338205518171390035183761513975342243848782805689017989772301996746952793141839672983183764715784522818706221495568772298086642280922951451158632411471331933234319395390717356742540585667383849298919519786468364507865512804850262059037893273802788753991811458551393179959588654724729361275257962971942470026108241163096395618397914495162822027669188676916185393093169531385097496234888076140846612586269641804908598733850914984515707879866032936710456423952092174298721090372555591597299104366776644291169499925423877520943074800617011462323897718280656326331053793158712791641731800779454230606019808546484915875240934941997969934321821728411256751308445121417724821403078708126104854971558005734069245479263396390887143752136947586656206099997043144568338075990651069755271509622886188145750700299270596780665008172828465636705328996340500751548693674419826344657013451740983492067519222427029099043672541444786666299893268589849309552211500612977674250815314823724451188855798380982807003150504465817163956458125932854653295805466728439096101286571703387699524757234607120467686132193234606730455190314468761303026447916709591122545923586342294913426451749861256645095886955816396455820397704433623420076514700092069402728208645174298251307182112705726426599611795643104705234332200612636475086683998437247918441477409439430207516135124156801453122311667986259080326149172610102885454204713027135183222126105474553712983628718902538172412403686715507735353249499671042712950667447265444322364332435859556073373153509086546099303746422465659552934012794759381740642735545951929583869306646859265381563016379404931914267175309220741566527540912099909931621142787453574805105649445874897484373092151341784592485583189833795927515747079189613368645776315241762987663778582880317752481299814613488221082903777517986457051471972709914652007808580944868257924097803302146217140499471947266799486359718556866306284630495384278507351793244873935469377771560378645210459517327518892344245036543258701781780476384587890321833160326996850935661354634522000663304729610043017636153144263512668096915424510583223340070978420087234692606123962815124399052053394516869066260619074010499498490175035139449220808540583669856014589150023648747964928137543054239666169237939351020736436924432539663188791570865751733343144166890299063282584647959562903681072180821124158372099080674018714409962203504832109551314598787595299342775485905851826895373265472872563640458143979403346884689952692579838625018359132692745531615362216927242327824240678762523108691110246672400457645520245436553530967639932390021466810527014921574779715084175867217011604062435039578038753451720179965145763411363116793963186678114172366541869038748186832990293093203709691296928135228648400615739466083736454625500594286153312001549846330166729514959407537362390683836292222477406352008840652758379040393389761711986900159009987092309434436023558296861575326175149278565616892854009901275126750599828683494191655427567092273209375435843940053724472378036831822868405222174637396884692064587006244039360532432991221395807089805937350342324793340568743029089763431607635279314550868793429743247237098452568789113545434217038810533602903260721925768006216918957771782852861379077529657247289255678901409632252963520680294758632199541836651641187774749203150813680308223102896360335128805827405101452949496492395888445159120754587480482495623527153698121942277223134293002628799807500474787520888303384695032938701454603265984267056269805721667158354272011595805787933917885934986303647700829477287060163456534123989393600000014312431535190053642630168672672954764800413556400303229839693245623174489075157198708612138942458222914837603660383155661571156184730237035722107105842470066544788201489562144738114961297078049334089054437388175521804092589151810223969773102400320096477114824697795428225186984359804864810304163415534794713209231893010122368326704891120357594616599546883907051130365769950662259817136605582980357477290430748890652364542527568714547479291335853201148270386453344278438218310271238387264392177946193886201522771601776779026494935352588219233115154086740901405954450823470476075602676175712364539015314248920308121780348878109581342765779218884922186376123483397834769425072886715055347859094693524631721034242327141038137553835387210678220805372419864239409986806554877917628801053813763787415638491203833023020511126232222782252311763588093961540703663947045059760038994963068889932464494913115245040974717480685060291182703985013756712604625645118746864146201636630243399469167987205604578373563600363470727905263132907739553776469994165924089896697743416146821256455256325169148848577535046061424702245306590280293209180478432749694770129884172243658265771887949689600984507904428319778854328726642983203110739241946484020967415518373752266456092472499062337741364942414293575471332633872915991578984897657429621514715809107442022436153557542564450107360607726881848009202058275696893037736678613641326858478999728039432663391110723208133544512228501784156131957404647832797611889469097513097868133862550085704867931818072306956541147872370454974942608801330209044943517559880093629991524966544937866543469002476880744683208510257227698118701202050571449710175427228093245096647303878264980388787323512498046719539258256941367959225909806556812022180376353093993389419555910891324880083094791871170472469534364919207338800128805418520634386341469469482616543926027029730171645813989542690966003316176186059736710352536220668713646790536061667060425233576872127346970870377623765205536030822643922208663619777083107373465482254291829206536238678792862850839500602922701655946900342357130842656630979134800227619040983094285105761617584958144562721862764415130714837639147709582908340869557019850680063380625102249517275035060766635146302956159124083743404935105728499957873798591691029622643512266308696475971564956679939867527622653933639680219845243661325742174763936182945379455796829448131190148540774453291234948890716175986904463076250112993691440115015905252128269021923301059401179534149947768689074409894992233194411484322175113386555794634666969940400548824191319494339855596555780259441652430317187501253511755856417300050306641435273589346016463485248644771045087680292989761061639949307941714292250120889227440378000352815482201791562810904774167604374320342582741749776766102812259664191903157944107685333701059005293808642987639607898656692940241275599670693248112338758082902800404840863096783416875199430172341197565598107732434081792251732972905645781870843992932828918171093637646501171835260685818651800326299606740825904263816148155123694776307663551395576179160786111859361281298204225387490425910458946907365490301408073454317732356335861640721578705408682663865307072146252241366839019578977587435028919080710483238118189846485290244159034293143296469410254121604544990910439724149637681604245517805454506293699727072823751015797345373707611450257890568757510260737567509213555122509525011547546790772824291830390011940202313358741711863762864731707286754306413069610551846355213143610520847731254758398690915952914380529478143827687446179450786251612278827391778009748714059930274554525234097196823829119223427092808800943188191068763392909946763638178892245843088465739958701877110380503473476280765062836139583507158579220688974161301211542528833052811649090928173147701881526774154968947660881026759220258024032560080040875977966998800586709646173451536619314067604072475945528579911259628528189361285307740901208451796853915294983652534067014587325688027956199904662386286201344496552762533386806967208048942316785751798818221203448596905344689852187995978563607926223297765505821442030888832578177772577331387750618999112770388303298814947742685252534892270121138421364633778368323819771112865122547886827694289175853206799189421824829415009935036864671397462174183971406956963141188936863117523975741410650042367891367623073557772427576733634898220501590848411522418191142247422140351525962916316236668108889028477052887938063981480025333546676734189651796456139893869339922774177648751127646458649097404989038163773315914303500163432840585976486978433698192117705085171302976237549438988471693654006842534056082194661004488684046544145531261241091756830148186431994588551940688847131509849770660394302467301844450251422811034449390962328295072094419985057333536586025143886568121349901850964131732431099084951820178050907100380558345206797632708078137262268646411942420285377940161849007749219572792051531318778989854703406514358425900392223615718818533697976284353114279182774504074877959854309099118388575730494032218390698733598161721055910803040577935891985753082197648361247657563945537951597141648663213192088243706299099762324075268195395992274046450605681737698340290486897990195038549074498697676355283950402357177593554636432791327839326872985087253442004101495143727061429501549560784911384566506522285155526055912402900478743247475892290638149221417493292874794030852137891681221796433194794416200224534671802764148984851466626107191460665218328920347916373899095400148681356760134522983049766921098517140089559490611611891307701398162210367907261027360110241234144148830454187246163041195667653058001584681826036022306951026066847675055073800254177271755678591979927518633302807238400782641070100019069610054607390361945577470348737289456120922208938822580458821578154879312822611728885318775147731881407074395975555269327945092375047224467561972834924078245233991848584877175589834112139221383984768666643867327526704452560266254176028452782166372450181951654532509422114566261459483798803999535868672063715206251933036552626452952831958727159817265680450896961335373123204966083111707926477941815259328677206005759125402251480528872092061128559818026673296224482733023099995067969625563571521076644712228190143272501598866727938388346427121147298231415897162142618746077207207245113415045471200791034058543294652823929170235579261806927792775923759573857880713565879505112246996886659805768863879429515159552922668488954823597679612200029017232726718356831390913900116678673970746034856043638419665017409968915251835403365707230539406443491304348833819413183085229612713239541735911868705381623071158929098396872770819554952118513778722655984861605946956862564616883292947988534063109008704916102992290701572829401111144589113884541120847541956575348449823011622955137154778569731819187272820101253551059225027749926660842329074874703955764395278201655287809800994406595273803498670478903578132273793898659115048626476545082008954530864933870997491684595759640888953623052625658306408300239616688253382647037107838468852333305043572678904112252639568652345662315415389668705157035588013054294248443736180494725512931474139992054167349706813572311262376077316398334072936280374431672301922898421920407873870822601046032819604031762336369881276907846040070681112681936194025837529235055892034045877194422470940130814814721055581702596589878273808077135967380035777836350966959105221896458674440107782503767725137815428820346439893017914561323265415986843949948755882041198063131854296712276637662978167286521901428767201834071104291495372933280433565813092842085369094379336032915315550294697944202574104657759315276975202084437887664670240986794499146763913694863828057861163601892783703259153358449585231329381616412173229935176928133617965386065219271233571750312767323803450648431260331676554759305545615221953850017604041468775685253743504652195586648970333244116658070246134378661461327653971423270105585032392848344248693941416139071794754613114804564121144979212858058537397687421796795847984300500838092357739252657633837846672893318653345484634158651811325610031993951369989570329191193939444326490890426369980422895184448772715419929918201461688563174070177551084261345380047947853557669143911003910398794566803749090623011762829069622081610412823099634652746683724184551734401236049995651653865233514082449090262591306610331727155878686358539364639170459727629719690906904488293640749071886419811289714105932196680794650077446708358505139439228475139329878800043606722974015826363915252239615509236906451636542883450102336527439459627699985778095478649026450532665377627173145338673928181157946292122354898417911600397483038367898231301375313377802578745295633896201205412922826496411143963207847389900825490639139122835715784517634671320329151928693173907511501824683204988434851780249691090960433897440558223971502266112227643317041788231481531993768801634821754176813357555245663036467803949179879751663624131694994300733311488986702392779717069738112245358933662123100817263788899374292426215453423413563985847698338767651364034969410575606886306762081538972219919814130564842976259753175144434023644684679043236268027477246563209518290280817834492606026830877294333932382783715437358713976641034149850756120733198717102054609803889893517154207027141779886272516263547508406532298481325928016523040111049277053739169520225240439351016587419606033622219347553877571055559081427474095708341622960478159338599712530638951603593191299807322760666365023475498544110573734110125468029798236890512711166605203140176775704983206434309473413151683833269070219499692249721979070622857531395816008138440947849975898115174474231301602238847699078570843828186378808568128424469671046592414899970934400623241549651406928368238485065038620170229071439123767570731060797202509580314552188559357902740555769059901192838078156816163344667402524843197953508031536352527916384846726787570395277759147188486108298118536044474749962538297982094075287201684336765946406121025248712136531535415793143522657188150756817616926360349407155127455881526348565953217408239020927627902817096504029497660662593416822677678353893336977932127047733862593134491785599451039509417501401153057869319702205075480867586099631690837047298461888451610507518103299221993952890222565525219441119113492692101126631095812507642391476778828399547148730115004546649943130738815285375243158782054086997645750959781033063441841927488237175153467452002550286185825336062688712363382053353146385298536140697171610864392396425272955300390475212944174714110925361205018224165394699340922322880967920018616937530326045257125061154049108527242580183280956948659116061542981168587376383067881018961907152898990709538131624435509507344010017192388695609135426138769426374637463103900000214548209073301182701855082625638169221274831365716528472561363575689094740434897972959126280927111284017979413488034224502363819410492576436655658645716298272121251888191596897253814282215107214999892147588523809767528595186419069350553975746216174269711530171619547508890569737015473145850829832263267345289476759231063880298406723913001794353338627350322698628073462577103751271932189432225726509531092014430933822724141987610209556853237746441879977740236515352242784662958016490377200440519711777154701680879290316553293048235927903144593391492357860375342017740371481321618258855982819109383246904691805339793938855274426568441131126993190488266796749695505816110373671590287113501811982461863564481356362713526826009063540689962079596470232976310757640215511686897399416311975708170353429050390650617953994705478496038386776671262145062107927618175484253672991039059243173214165581213322632430961442114063430962191419976713441460142778235179828143408081728177279539185595817848637301404376792906318757806311317581158157587376231217747207318583976517563879532806754338564333847081116778348884399163720270649539244806789126611644933631925403532039664473380520357114355239216604621257478787631202818113726182459485986475578176958954745068432645708585428516130149556862874589600015596268776011401923944925246751079846286493383975583606017201603739468426694700912274608964616777386182573907196990608257243435159382914875735927151032924872432632668460960961993253550441739949491383283914418665710939024110596544530604337280789509272096503324991218185576022462492424282414647243205434913861162900728026442623533703553235154410106703441021923721160084438152119595651079382652745938938660210786036881832483341078903526866483627633383450410587023788546866697174317334055454691276342870582582482443517301979433517553259288724337314471249559912847271871923706531975446512360369733049052448703242344363156739552475495087952054722138032233201655743356884896756866177465368767503261918219477064973199346127010322729250726229525693400999796679368206950707411503160991799975864673684198917174480886931256608243170634625981375992180578916804727376799598439481178408466542024006215849093069725031936765417010315723798869329749409153213133320888633855304384458160513413547985370162180339610461028823357744756030264354339072312425023558622210658345384838792577812673449869887199059722620013496466796868746662658123183094780822574319866186666938170971123462291155122454610781256348703793278654902540384221596290090764024956014111917417213690275956697222988280437627668733814006641804748242082309085522764367491117332375574600344146166293852395948692975987999691501137253592986423764802093292125640231708569518139452960298843961482279055083129044323888330143242003323103354834809186969491913118367267753548913407131469722550739560275782137788097827454400505491488933317507164776156399340706599354719999174836464325515411275660628563122120377807854291287631322434248021437127800293889488072987048091999323554710990468886868792195084413616136270584496664081159289437664235170060198810963184869568792897860724073062390437309981766316559492014174489588358130044660990348035224121435173360280248518823615432023513359474625533763267589418969069095593019476455402542310105233141465215516287875884496573892706922580339704773456245153470183388655591924706316984129304866960530246207487295383097469996133629537732542524258493823045784825849014804642458637233487453534001221439205293172837662725980238319325926853420836812274656431842712424721963050007734241705760996580680403072196310650306609432995232623378431634282373237459197455470772849448112511994817994990968475003740006737114009135926429360297638105963941737325431780720741129543481922460879661309232175492367217729708133389457270380482702328427442515118867693508229123096568223602159632411316691120927090381824746930456653017967805453933919504316019251265006450138969116973927293623721211161999032098623938589146105879431272250023108589489510184770703222215872256631698456154644922133301202089029519402083328851403924183213392087539767627708208459858434043342992614397418717378376716817112382770429034441233339970970210995655761998305213767789048860179506029024733224429522255457635256219259823286641691952237540843406154696037579620826255261544168296344944543301443138448110238129591527241058233647707656596760192989559746487587501693055271500253808264701155915848512029513511711582440840558915241813374179936813083688201905033331620855099419794284713029422919402361894666399709843873567472548865359401395761155674027131236081772367005974051367156792660304499196746922681411784723101959989887407413499202675379230665116169769025393587864420457619559738803081062950002976699797926463026780421382106323492426401087562722918987036746016254871689058243687113653980051851768617468640381776236747858225671916930813759218244563217273823911573541411326427246470649784966452482236951487459235566746490284522212050054033789777486718906255905814106369741582749611438189189999927998610458323897614578988722513788019825553622808935976629278960478647717066329771572102009340210971094598381937719171527762641894725894628519130606263224626095494133063013084631182592970128424182606367522255730720281631904303334184918767919265500510199495866149135738623853298585954068751171712620569455266737189304287224267129165222768895660663527753661783617856478772176467698531330275685216861868087136806794050470026382310167899573048702782307944242996970977689165096749712139390595609649414202704072051156139427776124477854640926140769519142474246792710724395048091374741448731324964494138734359840070337566356267412028131730276653108596724397873618774011994543762412835389073803961306536250143919895704989700080678611873159983014266237450036937211184761534795017918134642612618213596765222083544350968567835382141411690917388190318080386230955416741554572799927768902461558478023205137672031037550692520376908006011789304822481092257502176184121735859865145512046694077777074445246346215002337213162728771381515714911131010762590042682813009572688895403527996804992572278876214998810965160327429106211707321862939618796248841804755963607233003014087411698818559668201123884676562323845300483154938295371651102886645577055894152048404626500422564699622444156249484340548991115527250988716829234077158230363705440100106278971018865979915752851393813553554346827338617824585408520024578257612889091214759538232485892084774316683661765969285721503382655023596442665760913292531811383011084784435344772329663810383089083234181247903794408425729440806638377856371937357031418888716733841641241659019700273788861261858048143955792681653841669247611816449762363136188194462748187498215165167152767859340920129075973543065511452106604912985466701831649912594323656266441742118265513135585256762491251729111074052208641518888692383117422867719509484817246078824870103460841707316628357486097314296372324650702960846003302303181028250928350374088599663909209499275433423257371517494924681090327521364944652850227768520966006344575933826131786452121022507326754719869610928816701634606456718251817232232724862817205666804204686239341770636668084028019573805133921229811292369302374549747582599966484604145555065683354230338744664177469609863849934354674791719191867222188659842522263992711450333094498419913203892204274615256545898633985893089600009609993942839337643703341821165472084263937914707002475481799618026814790228811292627289367153361304034289580209869904823948497956243452143212095058906153920000929529303270865538983008178504271063689996773688286663189043092499033563398831170214468537889243216585793316025108095779702494223686038987573868678735765357738724934609856409075035520845923764109860835675348583379885447025461023549006247484150548152322768987904003705416272815632512370703559005270943468361185419073492310163811877993625935710882765225960326595816239470716552475102175155244536067133660696485509509910183688853969513287876469626426828745992402516862423645555576729691969166403476475258276111208966213004148933778708884923380992616115142396770859050277841238286645038781897658426220446373060165302520913735333386251053850318998364574368680309702510187208737288608145732795243810138489091600293003469443673483930750381235935235100489385756714180395415770587818676465113499977921912170690677156100970619178063908868585983629617314619409929581798754557902867009421786169965437598937482388696208009063104859183059578193031519577882856892308439440675120132157281943449635727876354555714026046965843362070627730653172043618528677424397919175523606368090845791271386498839485665732792821256710440483988948683890572261009722685877236549624507344993578860380889506611059445794485218673179882218592038321646796636225930248382553898096224859839074738053344215204355746498136652046967693076835868797233510773726231314670092491080828331715242014490654471506555324703007138029114218516256173186989184666450905714882893901633729740693272002427828735989915901900576207637803556116048912612909684872344789163176915688844848598220710012445438818939422186057597690126994803471994768080652997640023083423831202050392118353135727079965337561691778258667114652970424919041003831431890168485157411774426448055506036147626275842228441965435446606321886120792806309503865901517548825246686743940691110004710253742862247969842796126364537502969131962867036012661548364983585778244622910850405254084668088216389263910588354673715634640620613280116458754070395188379268807838401614665796106050948492276630421254484563386544468548642276180107644411499828342110732391573574539692706639069128264951518230642039095145255624773667856374887841653820682396811541443205941293910732008199331569503976947123804095850216900696964405609824374214037578853648093833955492852361989381787643216330454050739456132217028071753441172019385694235462870706442799398257213306598310825222561230017649110435888624307674264898416152756590786030176771139218910216082648661952470804090071628397435521392286674058793451158441599142181590533178831876467771907357841174581297696874503507279659376675555821636665756809156432950649105437537798366436858321322433282843142376167679303448671337712815922371614991895754557897428523806628406418644179841766857341266387720791655144377122045465160263296518284585671270844987463782186807790449826735526509003382170904338380510374770239301175172423319037665029106167016475610831667585994366484778991067179576035973053605913268688470232306078595544676872793385609704030542689034699896098339328282549544083563913777950668148426868764151356997874275761500293540311485097145431505002830507642758565988054210620747013465842584599919750509585112043183865082547423912997340355303584097318388034550773694981512565761668869148842086451245290526508889440141771118689159675138935244097251812713146988087853401176668880722393141978738606153235533589227219099046931454997686749281453725572334592468143711672019106781451183842820874710557450428213745387008705608798229804704947547004174376231802521793763687319426836699467022242404992043747717545516748084880596960349287653859120433314180950044985932693697245307534894028343705574484104844095737446723894757901439923846460331078440621534055734742049852161202897085554998896653164409191697792614408606125540624045467206979859334876422031454807883923020643675092991781836446683907464818188025771860779758007899584843835268030327402968695842747895466723619496118676506484627343775272863381421186401467793682011437672272390210267437268181271304015089403881213358342512516087069506519468021382442625186697106418326019457727145333699789237381233233453457367969108857995237970552740937625293234891471040753819736380268981110212170301844266624489991801483640137859084325463780565337633923627857380962339301955724502973594738754472312023856817175851734627707502355941403152456844309106880312438379569690137996180599804096138523897527230728134222235635867134095746773588721877103957987692741762922633405610485020150345079688065496593616554574113671087356070101373160289702458146113425477839635439145703481950300254364604962850718761849520685069192041314528818286515954252080999399569807594230511921682076333383082652476607444880967525442102935152114422268812283939422681123562343604900204594453679572717020908318342960665217121352748216338681390058389841372496044832652860345041142800547198521588221416208573376167620039105030679788959378804651731904540399931613182525279044159208552317055294140388260774963841581089364265503589198461311241962359282277569349404450352639496849791858515568875881146251788233153056095032787421178203995399171353634902629709297785399950537305092981189044188356704382777824360423357832393854658734073531727502688396966532268705343574477504500238953487243275592713107186720610732790992153908294142734240591191705837529882051467533920250604809326360303011347818967227586600557679078515214471495680887849384729532893480619005093973104938914071598372191874294260359717480459140389821621976777913133651493767045023328862327979683138719084026509716461068152691071910440228031920541556470845903930829314905096291097696727625979515402789053697580874914360281686539959140085938836174025346475150919731438542421999185508864845661183438054757946817149066291355233227503668369526884880163736383437963565981235616243855065538844523370984171878514763631680297937542333487461524782159422576017331949308029898529631501889394081241936798025205265700121622982217990880159159771268776072613661329308930277955243632660135191533888720971492107717011769709897797860964230838216622231909259107536776381050059126667294266279204192070869791178698942059201689506373450704391715276938471096315791896974985050157195611632817090846523620101468517152470596095712943498455810813279216932231680044595441513583229655897411307153133639463212856164542950440657217813484397589142259625477320862149791621134458213012247845403423899936548242962033964601467256641530872906245628778392043262085635421552040748177249062129014548449642026651053062580035830927583961487507055620211889164114406270058783691861282777541918181737062459543514900604457529048627037447388336827476751521344448565088558719976665280800199195134535706577646206997448213840220071092648405612179249249499619118503563370418196024030950726569006993011883787231854816835502617876972542780390451476603955945933601029222069726093283796790870865947543096812774170253845647697288199585877591262508387297707825380621374926941458771246385113941434142010665737082693673141460962356673252469062070792754339567720406944526962789142712845635803333954778831417368607091981366598111125138476753483988787586221303474360078284009238014202002190685101568268069129805517355413917535282305401877540564141376123431423084845419008128572495094570296689518957616956511744720217034281630442771815331006976298619336757346687004831873840060606655153471205086433369575688132859011298033184307474474159786512573597552998835972837082222401468427846961780741036743479348224607734719954737727225116918643657379502131830646772264890832611997157757823176925163128545249307687755455329141388536962639291810977652599327322647204807764717636123248098902745993645633729868898530292148487067372417353483973271916426741822674213506134759632700909088122708536852534236418294388691581308175991361952103084154146311966173105643017092487631978959167582486876738325989540265658745835193634552714813291911210754066906663571298015442973727529713357109853591724335157357972693520259158301624613331918397309989315730059217403294353820677645707142872496421601957413133703478693071910615241399605443454298246990017320671374627279612792691782623729989738163522458665424061792257906682288424599483685533654494303472150603504143679180113247833993312150182238908590759343140534728799319377014667357032873941152683375169879357337329762413491632882274869476636092234622626686652993533876785103967242304975317036862605235142076331503127198740481747389466722398748148415584309277653337690497844320321743424207692846857526911127420752513273800824512516805593895683409282723028102718519365430083996432097572069750556014400345747921689306419642218686634005661018742819050220988023249246720147818664171938414115665795422920917467529051061559105965525388616638298565383925976737905105267544319713268220398697977948046843290653745887455050477028715583027127763363699967805015840108689589841817730294827546579138095392369080465519386582969793034040213765546344462375316352968368904914829748445832977419312485012085690137183183421216640979434246086199979244200581447041135663459577160226941354559793834944987492551732686473187361629299036422561944284946039328338028344047334144893571640002522689916147798289613200457241718365536941395149444268422388740476239289548311029063617198135456288953662486824823948521034626175092699779346033674473710965800775677895414951078515054981564980044508962158281662182766239746613527806793679571684160605549484390394284139788014734281713016451153274419852446406002881800308666537011625754267756545722139606411474741680554760916249189514848502031145883710604695980831374373852895765676074119134975614263364155187930367629463793999453686107068321002567867527804008399440765644535735631197768483751333387372868614787883854505925314192719732016553274571401173755361815604914599930768412336574039565679698662316397803860359018423585556455345286414386500197565555211524813246117304963997904003434181565457700502270698374883232507105466777051661248383031935293315467785814095360155621803424089482082126488171922322700094247650563844227859542165529606800763570427125521876537902486122072229111564022340074767229897917890840665864510611891017474961813307007972255669247006124240926159087867313545372112754990050409922483868569543446838092786439234457602001151946105566519199891829726360491466911306875479638773277753680040765919130824927321193327784080332148358682127199034229907301775182703816355377913133576459200089068033964346498477877820369849482161827877457094712730925804673008367671620935457974675584572428580140627055084611386020059227832487170559958906475770034915755782561877743321510627310001283314613600771698585362399446120013728551709619266926717062535706292037643727849299850589956971690994344885566304170524289772789437699897282090898351106059044037237840540698092034605159468667885652845401077355600012806842339398643474531139917199592503356004703118055820273023639738161584354316871891585601635128000548553438935949182905096182703653282468333953120825625254713446196449488626560819028705060384709772990034271218655075858884580720814389048964258675456939232015569391514289025861390275702434950273598668239442533762559456220146940926788672677496976885843937372075122111572352673912613373874484387141162380703776808713345907493409287591733203871344946500599916382158472712010132181879016739697300855499187806719788225030870577419351872633991878707282903771033313310624658040476005405343880720890925788035772256436581411760416758482002847833139154573510258920680470951157433856533959565470660293092287303013263310412824588318753871453754974594542382561257526785831056880653567795871175087862980485557195155826739440115938869846199145523318037367310450099306131747296653546604333625469905473983462831539226660527167209664497441680690175364143074533729879485510638946428358269090418796369467616133043858698514720517471575059402287266988713341641351267009128473277133325839688995994679334147213802466138355317475515406171387517676689586804980799138986595223616040697184669041317217407624544209073222155115523562720449706939604894946370372551508646830093658100935929598119010000853063361027481920067506042953825376282937896386182950630530060886940222328605414852609485475525898665885057405735108883002264621698805904795111516313008390805554183216367194771031190826129168584481703139994945056194575866768703150602870195816846627020102382140267599044993861264758101210103988065548020817226656002094795147767819439215525174902866515085257240956322000150609737447418638991981231644299508718915360427941912854856277298919419077869661903281643892522026963224951277913715780970162219813821674120740536406291284154208247704729510824830365092692200342939316357676074113961239860761520337411343531560577562234022152386877699931410633716870210758207092836063228629411154254632439509462038916677705300486158630588350758017986199795392795693869126159863954492243408740190165447906970877319733648032440652253751277434673824231444177972863367456288224553109052963202357017947875750862487968305318088711110731596430325718083205817900113510193595621085609704410943355386258323133866019384201160285271582555518454777180508646679054257736229765505067446206032478394287659541047394313662499144665269773844157974207998476532062159153267455715131185112507112915195028382872141839178027033255144110779697278622749770240483418863574901006889134198124776573713689153352560281497588301478404524001808827858268257790719328993282768088798021395709354045284475740882042355737751574160786988217280452615483547576683540638210133131209525400879045361422092770930380684689667639397517450965469486218112033970040012068986206558866729018426375867307419525036918237889923626465252438951516294313638271649535063667836407217743631504505780784712463373090658721801831477627375114546300940263975623128383652162062119952049512739747165152052335088937210328933946392760268261067855669657656412716361610772599178486153756163649427732227053032952642983042860420475266979130679262101697031324400822131937529325772684453094634715579872688371595917070834049109432176461677736865264044738252037605652030662056252656315533404316388672723388863696532859589452604353298077164486888487215238984789871076473753438304222819407533948030318817716180650730792528667277015151965053355720889458600720622408933710446423467870628057263650177260013512122144896124578244538688008530499520975653078462383986066714093854888336235361933234658274849528137562442827766621021612485740030477622023920431343720327440390140437517999859043914763049092668130009238610610127108259611605087316943340141274237487371610603082103411899993459766050294410651331704914558620501664536517451870170408974438148776920100305744897799671292375447999111700294005032710888912302068677439540535062297997240940809267449580308137754109095802315651172418498309969181592209317212487233135186800934211231376014740412463578815544432657645407559563628487656330979259765101644286707540308946958520735112663008167086494108775199178957535668744057172809944922365266669249128103683230788905108296966364685691519464625178637465455796109924469805375824151785574164692340653072599995206046941980815463206676999202610233871268657381525401851426781093994635377694500914729362216615640968287093159309325531718620201822226580103889998627629016179198773017316560846447686356656972731991643224894285632685075174037440765353311215541759126395779102553858479736959252447724918503607301597192543159768213855430134603235773371963561262364228476934520625948700137958833798253834255262535489754740716945305756272042289431498098323263512985123708165675194501618093569666511105947884832049800803538629863205118978903236794801042944330476339675162373363767039732943716435552594080888981890972455482242970661243769306328993197022586227416364240776392593692838147691030922050113974147123316548155164799072164855332233068795056160103686321358506961743291080733403720860896401941577431261560280551775101723078423817844095312498475655679194731286547457649807261727867773077184494223563937245146624314007018631435689023857569031112502409002743625002788677001344375654913803430031418474994768859911844561984363890337805659183646553800393523279810806458222030738907251057317622205152108718522510351261678402365055875614909860214571997456560478513567360062976983807951632089391280749630892084688296607683123216580472244579184612623310179302152155764004183045328024154141644360956798632380436078773410214100449321991774102433146206547121960734691720243416613390287568192099407469924007293471463361209667078939335463551794310094671358684752596832345225605070984534687110867311345577849850539575794630384399792414818577682031148332240842627252423377669861898706000506316450462028429262954241410950390079489609710229813068150243955451539258674970008674826751785656950678471112409814057569979665465245877549834704418419008865698370838156654037611735908381721719167857230152344792872353626684172867452333201498587595303815116721087922196374851157967303869475699487129753553653413613522191747303736796412385328771761116936661320036884964953573271039776291553343647096377976293530152918511058709457421801877272177109021058628831071026855793405162936575865796645448602967327695037688062090010934805708624907400041438518634250128566970519791145434600801396673281372192293049961126278948777579626380131976755606120977598744436612160120943074715870383189935594863238358454722742599584477674292358377077716795508197200722579982032748737190858019375759548903136002621616210815923683957532864548184177323303422390716556286721493518070563428112863590780851607367338057624711099428693910786234710337505663036068433085838574095886789333352597614572297823632525971781370096689249627899074511665291070363510557040505176299370470033683431700545540231753793582807044216372384576872259113740987054027869453175780538718496956336901185897291783357510952023822681051272895052041088918544684840246420864057845962256376325722950358078582725809016461784317597252668853667450210104350779701122081989874389437822667787320432854676839581524713913302724104153790285646994492521335057287030501513559740218223078877928874815275361755609112054753473959656037242498864309949452419059630200641087130291188019544309249641250634620864588092966331081675118264956651552247397834385718483244799515677492177020053106455649167773080075634461567434093427454883314410293124720808510524102373232725179142699103643723200822142268088642994155258872220126483201890832322953205372067148976932415114839800629181940521128598041594397022360069528730752475813137404592048364405444269972205544139318326484931524326398855726281162407605262066707872967089997922353557604397941970627464160301541114224914199018731291840811534666178544003571667108734032898703912773095702267714797306790777703029528895659392069357675425624800524433399102151639619228416426245691094459474526903650971481490667061509751033883054827468314164281738296584658183364664547215303513176603593979335193944286339370398477375083968162346926300853342638001552638046635807070713452726547151026539624533503374685166518371949577734007987178224486128964822747655199652710608886993224942446585906917836584985728210254225431044621779815695573309636040128309001701731863848061094063875917596189449685579615259560668450770891004858206887848508497767978912970862651617201218180133620882672566048226896849022689874412858462292581625509263995152120656567618478823272413736108820058170478642898713351312432859961277636091683907289836897675086890222436323823968951462953980982069342232214597127296912352656175073670962705870763787655241622208116930326706710434183579474525042781788699940559252159727661520120207946825454567651259352676684726437395168339160875387291408326098436374599339698838600797203837991796329396935574372269399679831135382427854025441017813406026381547914929635943767532211600224497089566582360537443489898995434378859250813455218377324551145166351313184169548130214384933182578084891084920180895930248132047795728416323408249368397706295340580543445905287174696122944655048188538609165940821697204565746550014513600718011072051614652208787116140025145025132587455122279764819954827744690466306341385145295649365038832893587551550234134354954429598497871859307840127694400986695388223321812105816527094626182735618037296388661065347151731061113494307472515774446682727979236290989661217702227623900413315418933169341990030337499793550423093317228584532622730444821900354477008819799315647366456765009623609069329203791592946991674279261628110144657271407846189413165168638861436270940143243008401201065960918490523689310901781551248312193733105956719124324164077132182752003249114206187814256080293468796977640207025564460145230167132382395839809177277083748467784804182189397892682423181419262270562227553322748936547786446780717992901672954361449664152110056707953515270311280755032198474353110993807584094896794946741841776462112396667839831724963003846101877021251358752326908504931235695748742380551717155672553716303775378253128448359243886527821869202808321244953128927017833224321612318115660205244549068235002977195901309128383755194684951097152463745228900935015743767262648613891769614486034981683670845587731396081237487557657506605947503003878042223307755085524090188865810712328316096561390717553299207715697100524636021938678289953801535150271025706490218518400054973264758413514430405832943502454589203433679806917200029129498029624157873421127225864614471060334146506857643679827070316041368416421211699039928595794140590176911001504137075281310104100634361534017595755803782684888482516890157268539582520220015667976819585323168303585400579903427393169688511718566510188978527244147882548827803456817375126873873004018105367317866186865810140604079667253057598960039454546817737091093901807947873390023387353600280553795320495604847158621091275189696022302178106374452011502515434063693674915611359196911330230778170755495674829148907503266043486949462288090657437669387753344767611439847899470014003788020810741277402167214962940262874365678359338176227341187541582053605695755699693527925235713228355874182541330224008964922947321191642674947214606669206901296844956630934515709092142254056987970779948677317407293498596438853541803257944734142156706950291227541366372259414538499558868499856360118580227137351315531471774638034523097446711640371183876559528624858147723555023124744489892810225611000176870738078661882079042142715686333239335598520153353373911216182163776525787963440093226358216869532620671444376040794584666608696890338282571386140515925972154311413626219632822302454830359343726699133786299668335804048520701580897391729201906426276956320883099851736471681100727318745339584083389377251567769511414212203882150102530025623283766915980019085218120603045336782121633454358328224079115981142006960538575148440430114023627900644578438095313727137993302437600950252689785802031105979298674070223912966855311421051283049562244318048709391487333896044099872256164167932902735886941002721993160754154799509715890768891443533391353152620228682827046703405846889703006281402646274846375427254746992881526591657656981222074274626953424736368357043646550958849834076174188264918090548827229876110859554526046014007079772874833437240637042654154382888913625093462623404558620450932040233543020049101017068446374789544913090171937779634180190094221666862442237885867325964203348103466047284539857985111429470813586910299529791006972287471226798136207733593533589057762423255672443208735279453609013036783084748222233966661231153992999887566526448372847423734798844260873208761217796743848165393204424379435444089654343517601829915324696273406508490443228595535315381614983655706057927344496194641019240371845750829008899444068073008637939687494626025021791092644883974371934298096881473183775524656362913699359384375776060842057548086693742282662793385878723615300054151765131951579616890482719740543678395455656571124464685166062623768826669333775950777147510928566769577113882273748780327611651365928287105158653020259760539001087422336624885256413501083495669762391114730588139928943306266690760117955641004678449714486858688034603313945996095322080461702078347156782334610388959103611121314340398732884677335392731409082351488016733575586771226210759167199442226058071265532400705017185945776335574075842984395477839721535190776783272527803152429605843621491133162836361632412749262649225213068084448838685794453581029479963318369657680830502369536645832370574573206607453547373998634397818659651354805831050203621270941389846682791361365577161452056486272696445828092943564825150473531837846044137465844784149068307719929947203333976900966751478601322303750380441973233896994773857492651031622887072692891379380785354932117854404064371957989667548477986979702624425857162844596629146580806514216013468371887130680275522299594057632572914710420791105213099582194833173827324844660713921737101473156024756977905695742211069635402501493859411393764323624142321317698623449796157387554209823725981827342725697790864647606265441126902042823167514767827666996361627522385327425090566912568154832752721330059393617539186971398858815661514451449574540968024547868700556168470299970521962631617974281237351061155597405219180863287280899151385148677820977512861750784880776619424186575272032863890704359824145041417455627776811808972684502270329904985904834513423718897945187034997254030297522864424736207564267089436029805108757479327516654733393860355451105428864575368887410282138900210742040804047775023508968997519499940431415802918833509987117408304623961923961642816859129852245987325677079060679585904316638116052232952441528489002355419866144160438925530716170678260553722327017812395205180199850235027306938001622254685452631219494208045387720385876164628982977655468459843265195371757754071532229117338467867644361848954328644351925931958220872477691578071911700899989669909493278167479180554983752876196272792392844728006282542785097272097960294408227864972094023112974171572235528292856150798998794642389410527328789539655078163376464592057257159298484035671357201157082386550706369158609705511471387579877579085945206775650309393740216687402592005990623507606580730934130349134874511203139966099770396050419774376209213027096394497353962485822704480105051505048244183144333259266400651716672409614488549894885174277811774042076480963235839552416413709429985212201515131954730130980337047407648225640994900451367953228659018759937107162484685581320937514514877119375544435257346711970839797520925750004921405492188656068950448461735946950615052184783547457411250971265748502547068924374365663897645677758553851589991517713145698841498142323900649119879293948883302854611314758696062225399035475606390695705527061642708213777207420319206629404978979376925091495535990372545316594533841197282400561849810211551375757651517767624630342926417907451896755429989320521618642689586813646395208965232027648399945318470591640387477529651535100712849476981342080794223518638203328930558615814369424574904994558600908199451886279163766184027637494337008106106795549136945801435910669613670924951514793726170913587313614305678491262723901091306136029942596833376444116600838756651456569579993720181855465762874204601989313573008497353668622369450761241147090639324447064726583502222653043367363592093522442053931693452418664809922327095936870520047148724424038066992352422125748918166932955466808784469124863606562499772223361952024167599263629939357628947115887005688781949709513955412885053513490757758853803144273823018478065995512032716818980539293971192486832208888799766189827008284368089610875121401501608998703225246820313907203476147135355602423935990699347666398366789763117497610330621935490629309807034222199967881472365421041556093321366811793718221320291636843222000001815889850501489754044277793560521989021223809989314840313876740172032654984983442110063325002482679411694394582605793018518919564626060547819322170285141539965382112004720985389770536860015484833609093025647265909129073950497106571034729995993921986026920943731534455033899057360607581682332635952782247352413985522618374598954732345944097349838583456859238948796436749106237285932745321039125469534568488593178634145386914088447492604782233247912955926287913005125609887746444267649527383884479280667088363649982895870996415450423651028369116051214180452520507543770787030976518336701139344742895296610152488643990661200031895000430397545933846159717377047786317920127730459944324840540064374828856892433844812398212101143563084044139160602099514275828196321258485188596072326011825157674758656893579316390577625161489958190621516033355370555171473715483834175298695965455060745645117645037475310365442560518724471733707256273935021508587124869673400584704129822878703961173248201230032881314301048607401617928416624041345433805970636024195804336744533834605403006622420314107922471920443502566830723272523917446332702458987570083062615595943412545706659846367219567796609104622549284261527356106747604415047014340611812489360467067777026085485951142234700426581700987439601475794116314984968917500121362941800768877073076494697201424597258778793461178238452202275248213504615381274465860457290845063274465651003830388091517323964048291356702310725052634300459389295332945072710648481941651483574228604147336345682247425955366831210220907176946531558956725777373789403946982892815945193709866654946641065705819358083410562858984207117313374218266234647892019327696131639065006497376318296251321597439302769018673883246683869811530161673527993548923799568341569753742334212028491100561259450286643984359751258350323531468601776859904094356010511325731945315531770578318392379055401616726767827716434274127227481477534361586754947975817928570119696451679243711671109149719849091259416063561261565221686681805136300956470685501508736759925041274959672252618959100219770416889346823274994564287135729928968219164046291605976305073025445907159333559957795774840011906666941481002498299925768052095799542305714062275559427517576694125394307198101066791928792927717919573594901125920655820006295683100496997222430087669838940318321782058762625059823752081602775718779994121422987700472787119141239820917983991394462432204533794458609464090374818055872779026380112010478028793879604577511116021502325207773137665921492247415654954390614525409544146127141620722950011818096599710229988443061666434857436168581904812910931862844696272729260650778199717792913217459259628756472943036102279211801578800380606497815388470180417520615284347031402847790926720204788248872274095580019542513417835012508117897126975804829850321416286127247153899039663433102312790757329963705064575866384712129284065051900397680502161776345666654623814889698390661846326187331479152926192257116204324280452728703922979388189370197911688448724528633656050687278174231835653394696325528560435249689637465000452780374060261201756701431739159379900067210231477916420130157707184857735403829970293745650000977609517420646232716193921074720986700445686593787070718666128729079881258861748218638407767102586729626634693555517453553487697940151485370495693799514630174101471605771535518256445594014466736647750024449677066112025383165344740527430156868393066698197994454747423275438865099671745810621981431015275151825678704458026362165902992342767141631700805723802343832985028455169687409633185832089421816393054240584817954769284062242940764331185347742265184048299379800578412689369994625031046789124938574985385707003400862908407303210296812403434890258681926907566239688454276834375289908559143422877565996055559267538908942876871677205008901138401126179671511653348365785272473980699067931988332295311027831187074130064302449911855397844430695393588506344277216929230271243434919085599579267489275828485521365017525113115231492935487695743531456270982836070723400449292059436024704334565012521160659841815954172802382100881748729249837423333824945166793469415862434574165256676632130899396206421727866620787127330351104198370807423766253779743061662059407204894688279361175187617120354250213091860497318473445236321723060707219866262923319413154726924621896810145529658374430371231876997519978097429599259142327548493945573663189545679573663962846411796559682923646929466979492435886010271292582839251774651784936345884738094807485076174279652121937906637500582671569363115248717485109265278560205654768431390289679217831043077812009472452723046166621258284383721802860095859644356783152109669941365895428361386151271161198867236303216422286992091535591059967484699465038189838219175741330930235750980461790080203512024484327936381628101509132212966864732779941737612681972007621765626015702527285864675921346576302073285972604780583633720732953101668958069986294358386991725624533650206867822804758770443386955411731628943512396648749514338947242434261811857173864985031276376134371926598461993440534075177519816458811699732326039449283459820778460005017379724696927078784855873712320519550524064528117225938712798284217943402344607027191687499039773997891265978786705151940166455892592353019841866331862145535988798761204767620740782521353285054807461120004093159622810622180579962374990111006662200762057101083909495120129703025144957511543488803513214141757228771070361422568475705123007872745475401048166102893686023075055410212351584562061155749200427968483700766888213343454721129622402901642318459666168910490099442469086490882407494883952478862551550637741082564342574939693322480925397650220373688625066202141397697738660634114200647696239755897339499305562734759666013573367062096493067135218169367326268221936431989369914277220118904937213467282153673479448791708574648954198510963294553988713208228430276690813010778888203426807356055118985267359699637909168149033652123787648807337895608153518956014116990621207101917610036369052353558030413216292614771200364570021652130900014786325989442860744918758286903276475431305875288856982791191438276907620939070232278097761200510462209668431544262997646045218852417087464285299527868236075112060090579273226323200967247843903124702562768046871101077598194343985957622622778900289043510479257723206926791758133382949396438180549711863851271622441181713737403238850963679303071805262065505073490785180224064646476541230354977914602558067042271018246692508099542600607607168602862387005784297351195416912086607041227019965191261817942730265649154145035010474590798648984693743481703199390801143581293219367396888241749977720361326388449092257062820992042945246924396106365140946694165262762434963578415152811159212626931167218547411410776884423088011945299371874924618207277485893971754887039953037743609332887183713058151313063781491324533771979103603135603597505268788641418679796126063277870772947441062278996301779275309670803965755090334062515390311844389909410202733317170076589073138684181354063709032024753211468028655456712032986441236571078587823169249058556902814324175090034680199534194273720711853018429339804074033985726760643250470839433456701288492661014332074838442329972790560070409088588845384106333017700370594502837985583594040847388724594966899397509648745216067714127175814245733937248059224548249158532609219258684525101686562064768396469630694224164012553830155253724309052647121484380038978684472482534149977809002750194265147989939412888120561493671603555288446345460132416022122155458486674226344752028744991670344420724879354405363308765278830331283418005885262342061229117979940465105093544946618884863761154688148162671409874297573946310603502418376755493148160069528024894165350002565254143735435326708017959489778591822863880831988633997140978347291936343068850006323067652994304672064982903717027677067598134951311724214899435432286988774489703582244888665402302894690154343685190639097641878112173775867808511330780422620171363978578339771279442870930562083088044844653507151369055727912431858730816482859170865200181378042272968507422547509072778118892194002689973915371850548630788625389010568717049088275793303297660323678781888300364773275190162447401901765479708876199830416182400162812730351057768400049992163069613255851732101456151082189947690780759879720856693206448146368288733471207729893790712475424310369711249584047650392429735705161220541639098150046235196398230921960620087343219262130831757192122962223707676473539352664695315993343325515583877639463745089763933305409909182489848242011408567871105957521881761668388414414519604043103661003329971610322041607848477275501039698877350268505170436630080267919609985797774946622252839184235218724211292791359581736090987738065873926423996604722203034745211118685582902932651233124097635748566825505447811031100776171635545843084589628673936049591612319133222684658862587846786396979453332889360127461816636234315402776478912456657038250350047883341741994013610240014487037279859425692844087337011812195884139136705306936187636391545339182820048534151113350346777856606106191941835930285434922086410228245824267588076456007050205018899236751772348658634504155886615167624165503548071019978053116750100366728303897219523840943504694663764525561197183779554573422899718851798617121454259827764143733129939274679698675760248971905027861165066909557327656493747237012333892399068742090538824304558152235630001977770719220910123661258234614717383482551126946991960586604283982333451946669621296521316272009791525487769436646143196792090315356323385780522015840730106237196390652743468039259284013222299077040623885481527890347643138807754647532262139924224812764545761116915386413798004131332577704048639308636976260062091681431342892737536357629940101657157624715830393086166604308480790522578392621506120179398570312427223669080880075567872660368414158853123842782547545171366027276030617200828732937603974977787303761692780173302722287833151521898776502928652820177272139802065481963624867452473004514905564188318204134001398496761066061121781130502452813803535137732480950417659360315328320184175982008445234342023215089811085764637219913295090740439143258956368638421709563344728236605870644459662303790574363997028275887396160347674582545842357116543093080749726656805690970281708819700379443597733740066991155968771679069715271897455010830138735838703785575552240933191996245796797012471039699203111700093201760591126540012071683205220885136555031540139891730876011686117173185978604996084737244927678171603844897580940690699317586476035437504803341167623085277865445598718721663943674798845236104961690327037117960095495520597607075472176361427274615809664851019441305523459855135775272904216133693206181849712863118476302237974222200315218800401027738937873706342398320416300562575778976970300068216733862459885082373854307652204221420857485797835714430615658777575412529050416785864624431245912702879572439256536431986094253934241283174158759012021081281175721520091437150853439303651969590490416796783961027977595429870926208583728013067133829190681233945598029043661619321236247166285023168661403810041944943098119231632100145289727022599838682980366626020036684356924036328924994019049834038411656187222359064794730447813129686392746757437180805672571654817480734119968517959306887657397412200242299834903849366988701555457186716635915959184197354795927461897454759367983754179022279008429344251311577277280181887829834683283733757597449720378445239743855147317010823256614884539590704988963921871597425288371769024049677951995130937299413616338205285575218318830517648766530374527526231695843469666275111341227099612723372939164864618392456287396635201200197705999806378382650534356240097222761443981738728673888989703830438999681878680843775346621681342625263154470647592598040420690132865588040748271816288833108869289022498007503753764550680211376099123742813849183485888302168346827224291162395068970117520035665594068594112263400851827937874090525164715118556952311851003284443389109045899446863412647167079066529848629904756448821140171716383925558414240462907062635065773143756724544125874231961815451383544489148717572320786053180306355373492260640932216181157101013633085468443713886138045530422345009338247304888224565963809130077393575043834787219087510634247550309889814309716550954857119860938550641830061558292465018482810876172881930409924738096517379322245603952329858908270579026752215385933801835377137650138025502611615119278798651422830139493525365850309750002458125149274590944227273798229082300057445943149591068725886959544916405876826533495664437013486422846696556087339258122417608072786081571311227620079907120130716684762985999938374933605517666505132545570637062179952329569808062970745319743856342709865479862472368641476282426793331863665015067412169003256196748804986310288379321103169120319275812013025007417507584323688410700270242024088690495294836147984288981342897173765107789538797620899001144178454543638876206121594556442792017347521083952872128682759062204302767320546810146684896737181667007733510202204839304467387331369532744723313651878581320067636008104901497861958612243122061629994164177061039517043987652342389909562174128935450340726579827671706559400150712765384950068355646626900292742184923869529616707557338241071029995444719388601757782999839407623067011579818196983893053150944790598184122017455261907243009194278023655316018870737059508622089971725984982918900693849534381460438569906631748068183705383516729034252209451092181893692328480960411159992048949175083321644432164626012151507962282322391201328212157241649142181620762664388792324080960119736525278440809076873956732139289052115561808622866389066549842320290632759432778459295060770801108117611547220223246984948828520445187304310300749324749190131411388742278697626214724235533805631190617053484796374989097952134350210753458704208313922378119129733960743193115785852294161356785217973093548128455215656499920161289274477328168531201536217788153237077346590878750594534555611197957922346979997195326948028951269014067545956169532226374522535819072271520631842099042103698902478639116836841577557706864774057863267143326772800967262832557815582769318739473943605532306314079265251076857088043532758405487814901522306230071116242304161636344077544425137196183098262385150760059171087068906636263261243384910105458749388823134217072620714411121176226676629942858556918021676087690621786561833464420286604427336473147365230012336932060606248944860750741184893707626139974818133578433985725594041205221090688584392385646961092436025509217179074805651271781484090267994778012603549235462801716428414624048525229054253444218317720358141165661869349373814392580601142347181828225932108858661069157186031532909550113063581569305302060490291145111409893431469706406557451462348703508134352917218421195279308942497611433038070863250906793284422649755044812627396964373856591857361762808136776604724116453987930499686020520626814799974207259314918794244437924955092218768836836361708479265839564932475577667776933814727182234125648175912991791877277391749593876666763339544187197867247056886247457215744841790344923798709768381010928736456777173816467222765808832314781978325864794287243631527245605477445725676840399350316493437633380783319003181846655550550860687762483547913980913738979228250263841184047451882495927749585328194786403658345614719215200370520879612126266162754628054104755389585692402453844722008741088986443652943506933720733214082902812002832689748547101941612034076905900322845797152731065338894940662726092787065685697983683883760281098328435272520981410153880801758426663185429819178435706820766541299644195119754902010419842702070251670625849566139315148901888677919543710673543894533565710476576588098158867208133724768514372142202630375090497230488571751248121466643652939620948845998022627955181175579193901693773621262753492548202548419586420080267616988162719166473373643813467243411006655002311824234038434975902836659891406510152958948989267472599045607677184297597898641708401882822638759433983937699946360058987952692478626084851384936374173405357877427153414596864811911341925080812034376003657651964358607815348335190194098182557998817241688033363366916106152793365415479612125974076167840070256002120994968143775241945376599759559254772158668876022828147553170526111009784113651019776012391544560740144477641114894411800039644888076986000131480618197299886565839292058380911217463487886821848927272133152026557173849906079652752742152325307082946338098640858095769853713837894749086374417044188540085231645239383086134885248787094082363893050924950208065303290308963097833651851320407702410353365602709422191707458962049124616453487933046834196911876979287942693802829720206492239698608913059992437490422981180551397711062288362914512476865138602439885933860175696465100859745514256148092608079942663618617115818053654254663266521749221747156927872745835508737705704998887055242245048944495375487828805698326451506158264372208920263405636465401866212441232285446402297017069910686071826981528854923635629237392666462748800134791658158792854191942471166530951868848017118416029075773420255066645789332199554019501593449803610015567540286006636875993646740252287208784050381535261980003275122725829945764899774429382633127753593495661936491692135037710178799888447802047324173319538768224398649700392220368174798358696639778747843598780018391586610912183767776251358824105813500169415240362687206443602644739167865982985326488159120014618118764808912862988381338253853141600735190209016909507588686239821719655439262739162026487795898290055753873804979230232657828227886206308388789286652680028601761556006698022977709144974741927149891314613631305050582779136695362091386541187363349019311451569381076970738149830645354092845656774969487858511141956388265331411149320708097292914780194487774990812502140172596171636110681515826942796269627227738881967623304380560507152812892853644049555403285792551017238359931950723502841510445804762526851438922268718775726412338314865988650305987615016833896317907671742220519124531624986164598758998835240564202886393687147177668468681245992702971312706394474602670402373351794699486806138064758958268062359044412349226668835968154865974631313324001073624749625195242196005221268721982728113390039604395717183790015524124216547388233989230299087525608773260148817895640947444657372500489994539569182112558699700002059962512308979224660278645895943983996775347037523172097532130315550937944178065046165263094857216135974347660572913662496026034569667611361546979703599346726776343687082340311378650593442858892953368033874402658096217735863962959590194196043714280535298580576548115031568909916189570014514367730410286584397489702432514117746817920723146711421245703557381703207515950138384547392578980298680823556392436285959089762649357818821579040201308171076654851216759604276182699850593937581336669355659930062843010099558689479146665736145672583468627587685650237344181331832183617990553339346685923146959924703365188646812549843793642043560075681984069576183019716511289181272615458561089725017222657574089637571441395179997185708823522027502717601729740459694522664291986221205451572710561281004535902613250446467448990570746207845066998005917534244919745674180266086508675764029305542916788717483891189441483585521936011737095990745320357846393248845552907709737287367894311667323128075000932701134593903458703401760834072777729816563912438637091025132118885722568140787100919873546383993854402498878848442092924852979960814636292989393381248725071785734394514886602071433119744058790696646299485896223240369462941595468510648805209527212075708878023850630792863773073700296834484156767320750185718840739017854894438591031461313063237840831401993998260890849901862962217110560825410127205588884436230931422059537436855578767198369780463250393199353593127487697197473526120203484494939903216381577965534582084353765990656531537709883972256311616038700257196947422849787323523129585095615111785866503127974862851281737244238889162324816348299187120726606950837368980660689605026720003534972234311749719075084127539632365783284986899539028208884287566133717250041687099703887865928438965922219248546932419902799758173819166323753009546865259029203255579702066596808472414252738101742767823910188480438212600845515078060745512641520461470462312410697604656033700228658825783914097239259233683345458766277508745572152326008770965452961576619202192396708903165173199675265003335020795145432742350722668705950131746656386160832400724490850718078979813305183386476592796075871463734340069289553337385822056335352087418254897351618604408423982475758590106530375884102325354587562110397203073460876522814775099999074196671201239946426958401021860237121707359864199540801006795933451232576345591173322407997740536928277848630965796226983934019918965486172824788558866865606955657213896123172077059965045708040483133002363127601192759076252585937582635205845021607241142142569495368409138852347745542225883968326009667092963829179762440446806194668482533805316914424578684009664017266901671067605731030447407431606571932978055073275009392247195123863362269821147435598793914473162327654293711763021536445306243833884268349942525181264215357951271735034438191817284786138620822844417346797575439883985582208682945878255386348967177405991917937913758147969931841015078307575810930043093268484473547155351251885233543782488636551545617739612853440938337110187543565694187175182615675777445984029991769041661561895419334351160001708893837202887119365712966246041410608829914639663194909007023023593962550868732925336423211799121600373955792686520253412312766355736946755487414096332049494910769192708797642502361293090843614063468859722792341425832562901262593646890995834509334452707638541089417727065094537825324814151104661230550029622884080139278148642282421223324477657626139311871183151698218991926300763524901042883828131097870075001575516733164986924963870636112583474995301703080849140891353954522343317254057513780329104978130678011474412106791641267197250894640381043725778580167682279451384181239136158357683640641417714078899978914227397329896764608051065718151204797538052674222550852324447703580647058424777528251037816012567520828726308186178191403341787261574652524914607986921018400129994364420746220556400081067696246628419494972846839978007820122656497339835551215249497570421337466940713735423286670241180128765529354677692887542825611716771822396974556368536832109113481010592435518768788174478981199641894324155043867642457041979802051660963463211079727513893839418642284931709558379726930277173083775337685086650701684888507955204427561002269206790315840359451490145955839866606834416205295649738973880887969818333010102799205548717040828019066553070223909826259380232765471278558550234557804337669567457182438561144503770074395679079004057109335705511880659555829142070101879369290447680778226966236751875122598625996594479875770758520530371500345638488966162732978308446174368594268019864005705840799544077466278875573787729396792959340512684812697246384207260776088855947649019939090472801126296265851989267592171408682052538653378073208288722639299317923563211601645799276373903510317785496157168517415857460443979518394250785660635494766446074757012080928868476562545427162420484669215403159048260975416132175150280394247564704628357977200449905912483068932366376456948704281933289698298399925212362103455120510572622498525566017860184553664234506412744556312326729952279234808657782533814133220761091366026108457340714843149191035589545285266103560795941038285885878886514156974380108667320710241016847235685537476528756461713492235897348134194459573784960535736586951726502484905839422238202542098025535861373164571032714243258367930835044398497441219599014436150129114742036691378126763887703893382803604953061307929965387074807126265955241321658749944702821223171965720425725100367558793139917667793069616001500995967140656797098802954047852553492257494448616353493354697532037430361442251543687925567032214082241306288848494533542740281295584176710274862501131432593448096077297916929529507326505955873648912074464255904616943583005516854056649300585087488301114990483652688274466238938838497976796506856253902990720207308313531148416601901552283177935620229090579179603668801583839659782711203989179178713714051170419697485753081830985184573670864209046254775655134086398022864712616296976087377187405010422047648642955861784802997180032519719774325279349321752046518677661762584353128502174015652660168500726679272681045139109870537887196965629713416071353092086339347869981716900283208473052706364274688281414668765714271165712284270670455173323261987852463120566982535993964568252893968227149069642203957450211546108007734222839828896901421204484356468226039153713217925902547996628172203616489956552920223545833239431658834486777197290189446859281885553092362893450385119887734112321544483968469148687381805768119591756723996187210637769894847298178620425009300392009879165863150515141005126156233921089588164243032235182012604103924550772211674101060767438085087901395691929772885002140807896056370730649237977350246264965364654145587019041593377019840290161103099915945138678215321680910945323641356117216793516333938586907758022215801859267943115461097182217429343621012298628456528822639907986844204442980134619061509941340177244004385974379592813498483763368672969081127816234589881269907712815294725183381757312831811240543572745196389309623853215167563926019550883575623841177436418212454317554952973202033010247876969476748423377413033770761817658605532674478475359226215777887053116656553716823321738877261117292907085530802786888302876612504607368079949651912914721492493352059423194086272711337576579305502911812243096482862209428004341685067993426718570378981602029284509183099231061384088112729941300963959436895180399408194472529557451798647149709037626616762568185291621752507430472005011295940336149528330929624178572785315508832449347874076771524970783312071982065346240200133842699380402743670901933523014060602211056407849533005994309898790650815894057097068106671594215058441938305543854836221803822174768677767719238038683952320149817332463081465575899015949856290252033958612503431569815704936668432075530185569606566266066838702492228268887731830605194212497985022875622408200614034521006932858843026920396308182280444477756253900482995743038181594963615385989145235912202842019851119805042884202823263352157140821069985849204730612612924402944264240257567301199079738387967567429268152761977356962626232592789586695351330365997462567245635465482831103321690837412027478834906304030819207499680997744506456814616437043437689693587622458515374933082251409415171968785531578093073039818268721417575643952543082268111761286072469004115531805626409195810632234858059228119133747595002647983184873696257896380152702272122640602570044188836668384322590397521141286187590082746750619781510716317005763825411212374953514827340516450310081361760111225036950041026325673473811281036932841234293488754066472501085153493641071691532382348736877014230509226795211778632174770701246212941407539435874018497492182773898760744429695260022892955303803057507223826239681861188854714602708471007927658661246522927416188696928891678859280585427357705631316155218064623635892435548941287305253046680894054507739328685877738509398110225208330449360239821485664327470863721684000142498169000342661909474045297201741007613290647469356522254924861812494089864971519979191193749303218469114756725106493945945642607580257099949138528364116308330361180306119336773016769008998759041209862128220870436211437944764041649029607413012699718875748563690590085511156369752537762153032927959210903151789930231520442837566290192295050068817950934830371995679722805019927986291314295650098849703586447450620372237970334467633013742626618549917944628851877140670277033448175738359853584143640407330579129698228057351181941967707197903217767100907016986690729828671081078957210315334241837110078632382354573168482646842372031352503902762386709997111195601298631183448142755128689513277268531715083667866108826575173187287993801057255434887250959654949483510406030601021880702350837294051596327619102243433916744055743275199447763915556261497274520409121495196051702289836220740175714998617383175702947478675663913180238538327883007310862849612694307562630930816612956983851177820153143792397001157773229802685506864569912954059933606184989242949495301740790743140370994037506906083581316729804853904716302348540405829654886334192910442796704087076084014349302274535646529137311085295708164014395805474794132779768561438829033157689765544385661871510004256264482394984344308462969338314213634687285259592104252028754806903590911927550780023124205685505095950917076476075345671502181516454557301715223922578811550304990390334991481863087306475359744779365860096991809545217470561250339743441130633463897521730792288064064270902302486744483661401255272662450904353832962918275563067655933090640822260099833464605886669243370455105543727320982729976760227310926474735177582442026948797641138453754890262760385932702699307544004463153865366357304502102161744930314138582224920289395719471164189891865068642001295907614722202141725703905491267144126203363638725476607302304112465200728963793924488416872668449955995081199708791205111857195853728328834680721139739398453908879464692954898389953452594813553242275678493969618852233881169610487166647055981596347479048492460532466535974366006693946531295348730188371187304310276044759508359857110237594986100571412265334147588679566386146305491891275306738743417905091451866832445469439218739746691718193471142790851277928295568124925680655416011531960462226406680679798705877150413032376077333833875752408303108811143941593101713578905922568329748871499743327813104289206646857372168035894950581564556677245941180579546515016175212747423613070588494687186025506831174067335714491137002090505043023431726841461370744985170892257077785023048731524937789289942841620879557729447316920097165422666515569724828940472877484756549451250606242435190246019426184263619642293990016729862824309629339079323759574669295210499706036393551566330325458313458940366016924098126361132801458523670408913627701762057158948023295049715959899052579121158996883179470860769526688813331730400680929398950716743718770620217356381711869798782067145054063976732438439820919746973223493784216576852982026466329359911361116887927255496715484446623383224761859436921954540678670022748754345523320752270392499258084978896421959857828772376621022794084802905613347361691646713924235305669167361781708424859160113182763606036030974684868388627637590543762478423379186912925496339914127795985269168238936507507815707097883933883623071786836437885982156984500938412939138718926800671231459949814237395122113965256546235979184173227870249679780292171934599489839463060604927743348280218301660882553336288285651807891679395794253708663223084029273476514639097140843010694904763723021538363292503642057615517226807191753337104088388576069960198292294127771754363478568102209731900012424757810688390521925610269833018705491289035122004313782323708341560803550426664781868788985458902275504351253925561072261307259034993225471476791071532589029461973869053395662891633666954193131448015984692282613591971902867912246672978454471407282568801556118802258956128619021761696836673536522802835997498985692054972811977235114364100309698165662071331400975176914177723992558025223491035599906003813740228381158848520337090529693035316191844012040041761351427166591895363582631966249364011637625706371881274287333384654851776027952333642534335665564232988203532901611550108305246522901595502353650442911952300779763548129605364946043579468394866518664432686447078828432541938165996414828057589264841668872461032515048227425461189677081314006075541907731056135640112726966796999524575309646452753517807326710344492224448393155759570911229557187851473345610004260712956099381473249058350165013005705016173323497116033575176266371952988440753186068754951411081986607471504950474431798447644924816855552044039941186379490551858236851435293936217189210067882423099885627164636944575457509605416487789705512558707756330330450083834602934770952025835722017623452055219373358998755322471323545014729754739260437155265260130560242652092733780735428677479543603776681229048685801840585696779732352524751594369664650038860590496090263435955929160294862763026414865118711513321764129099270207943741788261475920107093454949028573896507938573107068665904883897817961900291957164250152289837226462371488282956182708386733704037192936968732794672720393136208256582309646125221125580568755163683751408220739653870138763491424276418213901549451523018759070306227385561293393063412948407816612847241240103654844028778342453459528888452292620498641402647817787713191675255713594055473891182309748151646570796493097634524825931227668576631818605993574177146684124659498109942902190270314107331018795298216303072600158355325674745632746283966797006312659129671635971014328447858924001637317057743004231191213818090226550082577673490684092188144396523465085315519461616944229615422922237768187839106164122064436682834831059133934332095356379055747322916476196215121737543504918343067961390254059232553349072216249997164502644924863209576648148005922693611785948672620278703452135066567475584921398607392411455499823970152879508514525108520825326687190521670543789252963911980085299533808368179724003023774132475234991140741722853856519970404140226857017740473255923618921447492758605099859522179064029277546539329402040029833708801753105409407849153687927629906524076554764090375729451665718527534452889834510549019673291232935019254764163617559439208308750328312835421468048371276797511435639865310059773224142999404535932897617326797279237706359673029343196738927844421153921505293206880963779724275602923380732303041086539023842726623642482737773164396218038502646481781674921527158249623386531627565939643129425927187429248536428224972850597590762909194090061651698846130658121196405438993934768200995200864853884329072109007348644578905026233283688031448729265948615317779052388250365913175325043956549633185678670687087642039231597314884839240511021145500154331057990140999150375711928515613707483184255999096841909096001391039436134560584266637723851410330078579625497213054392545585945046475629404062008665772511742626898105903887766356117050138313329246581645447983802808096715979014242823430756631640012410266043862819811339578535154790099236606474402630716552036739196205679369038357867556190301264072377007002801224095800272189728120175349587439886521006010082583673068824249709896241894799665163705783713531299658074746108286472862422985448420384079385085205849866397694570325497137102570373438525941367637884901308944839743268837744483010815475511167276689878761652489846516900947737383200030333844443912771398701583290348226091862617239587410845349257083047068889111092369458532964659218689136802447293654273539459818847708857057536923125721054930623665822903144608856779851821470378599896467836942153067541810164399872649954021373115537557590515999130516493709083543882642747984531985000944202845445828908908410957412538109840853866241641881404367122900076105545323416316211782421842669267020473898266955983970654734680866293817509820721050907050051147944336681155274471428418627189957459474147881367080132774817040022725057498774185558925435026600984967659430546344102565761292255018703708515265268868397342814136769159562699039828644819561237959184885849509976858856343109542294346986747073839488938388785466445635311871480287964546738311470226168421224085229799779562118619202808308148009283450472604418845911908996840451649451213576588471733026581070012178014697916004155864942997472085344967439382605540399748702316213596413994032161711856653594825679097697360589087338220355976793934645235623586705258068750036001403288597712926794695718670398075084255367953331663048016486241791092546828238959168359705345730083548734988411267234652056135810247116514501958932683559424501532602142536000881420102733990376285194770675049431618617722965987468644877694034443093093589563836072687045791775402023365633879510073967294947999500038528804464288615649138806027040011905168576926945363739903106415346168294573722531706440816471370716358001836107409758388981034292207716574140277380535346274652459439519504785870661766340554988825391397356995298741604178126304600414133163664319563540799975736404735368684027828932275957015161782560649925021356733800702599310851578486038146324419300065034358494562729752879464752322902650417840162079939131115011182999205244226115412400979094210327100824021331753641670570119727448915362809498924398398179505698122201169979806965488200502788701073077131333774571006470927895400304500852959736320288788462774898351820505291687285661091484466722754374294926276091591317124018547444955467612080023344718595428216437995031109171004104347202726697144269419439204563855436122132549786476435685068613953139841849219851296005075324472500073772775695848299100175750192255761542494957347042031221863194424661437945155913737933981174180381116649492946733244097619280234741950060945564857156153384655100973074602752523223048025796986003689343771732483558834884960948100010599199764046704699102393784453706001032250706312983337934693544695986001557053649056194371850176858006332362489381191588429404889706604329154486194582000121350563576415241431919557410444382288010575416370800083609104027762343096822585475424025479371378985806086900824951225929237606475156532062157669249222255826000027766621166866278861672548795467672764225901336772977681293462911499335837320264652942881065716364989635655626434952293632444771716755916281030186155323624793747325292409084309040911713481163314287998775181415810963339083085011765720522496527748994333609934583978674322929999680304374004758832541612761605936126466408375625158661987251371289365002781932266013497014524452614993336347347133269010077699930949197722421630555594894705157230906579933115501422423627870332381979087287329826441560656475041316509691259752894042091359542971633473481378039102720421141440225172659487132913448269464715421086065412391263433721123321822770180012090249780702547993449467791814046947109243773854107044051377589932539862017897319803247200035781930889030498358418676720978223358064292702578376957345409032670259428310974790502636343789500599931022595602849664110722562745531873661122622233678440044412007670621298913608413000207877413132926110724833035268189081906760947997196046075633738998945888161149824193504632420631097303800149356630899224834867115600157155245802979336967973283161979064284274963817128646439695474330508679263833186074849591520439650452450401226188167149201257219191191928046624127326149203124409285206254909991457856035609551077090707637072720423589536458743834748950543182464530015480254661295527253738169688403502931011783343080428470959596546531605190940372962652216906844659854482914581407507250395730911182962298825344308254489847300385922829071702965982048886531193622761935400057668858000596256237658425250339302188441325030589812890438251172219745916018148742941293750920157032868168696073870613335889314798505682226034625473303762715907328090301245560192813578835752524151284812828135628682905738976860286860301767356947473284402569878586911042696096906771543130497384062781064510062745260486888098315029018523270970169056110877448053772694739219266105513534479047144804866710869014264053073739235296539651935945483931798000847176256374021174996596745825106438764639635226246443178423356605458001267950427241647440412819171109821127969280533496707656048247671545609315631983127464133571257692763041096605739128845450314193748959108856345880953985953186477916547022071401117031381941365969727844978254489967559787186594123524316795987962295563955269731497600151306244316931939467829610475000805738620435731965587191787538792399726336051393637812659151568061166505766713945935792678721096433845291015561816244203030927121556836998165973035020487835968415553223174777194959930441336800179483927207918935463911543680591065106701239451424695971982627518531080191865602567528643081940959391000616461091959014076681045013969659455322790529218535662879544781172868608592007207639170675445523542648524802489912093700823163858897804615725552009862127813783862556226177002620021780607968426865237649071757312947327943155904553488824307409269328960987082222671919291985359304748841530590613482329764264501658409012879435471393636391818630232879658377596540388037106315699197899983883759282460321055661230008850679818742946700638522267601288280158927238181128756926275076881808695061001078044618834651815758241306477146922623830486389986251021878715917110038626067390336627337639269414714314932875331028230823308224005464490489330284619107230173626162253148651339448182898120270412143289438113124554547221226786475307394335012963022190419503569288659463047324657976482146455632898313077243197582636118387043419560038916858643568747728996997815637625452411405266091966598964329945812332767409245407905832386339008768219028029459219393780229118184780326442408918559237713862092918106587900569900012385659094659781813611684000135528004077069750259742069153719916648204109345199876938814866632491240569066599109822451656189506042236450356834273516415918626084541014698635756664122844169896326843597578609025884264622946637468880526884841876295485332510221825267194141795651207800997368081135564852232227622524486877201842538354020359506742278986392817052214384295728754342490947295000750276728834266139204140856705400737905002545979891009257401194126828279835472865419996985294667625252568440130511223204308890873712562072229256698246643128393110134318312261899754497384857529914808676483946885087672516839405153560129196118580678943148474215600136131945410367188842908160191774855255505851193070376004195837540325378634326784306823681604673366881897061969841523200698251936071189305404041686583585646147310251481546365217304978192301590345338776989630111334631935218214878935558221320578411836880358629108146508040619459120076697534398772773108492016220782944417634256254558360487308715812562641516136917301971363169287236880339390993033106822748584273225612216948001844808734939623768538182849117608960756832879538736651475764480320630155380840157411358227870703235124866481191622041914667950443088287035079822697249630676687234119290360778314366276662813959147913661895080634158955691424721806265785184606585018597472906113256446196712362758684997869245799747569507795215317250985805843453732827807762350539052598118784588902901118918429304927142444675485693577430822969533997388581115997284513901214095792007894875407906165213182965639469104026719522176551603477003172428097413854811074773075066622270973301564917228329839014400551371904017173014081330909230947986139451964948288117646978488856479581791058695672256581204731143056622789884382043841618478111885897231436220724915641935757064671031649846830445896709621230079515981227886430492354234371410912891220050929731008026681717915934499615726140370488786864987955850676262267751723581042934983193127931511760055463200104506599353051133305069923297281162164201690038151817678812303027131359748927910222305096129559468974957596344853285596579521885056072962583440173235610248424489066955419593922695883257037787673830679880908387154642764014435029736528788352537611698874936602319745367428775066947704754320543965643490789118901048260478042518390451000847852231296226044924267403180955035789223631214799167371910716175314805049494800152453824330500960295315040833077022237476257525891541975112673748942824770983993270366976887750495570673462868973386232888682180479912533138720986040327687726665975534943448157427143422175182167969884995834693328739664572767820648189846694574367849312539271503324733571364051692391175697946263305763080681185241190688058760001338290767043807573841240442620239699303674949556382104503073570387999466869491292731428092955351077712606541288446413615402169956199795003983173996569692963626537687275327985447342176388584986243160629674490996925882893606066447421788616187673687615842767036070549833862947759611453819299263278106978549520718816219277197105377840034912623521916064162518763873358439161028435727552767664652687691313259236488598946387617087417374171340352122786532859883353264603165532067123521881419432075050793030521316103573731978808268154493320872145007564306140156605090500490243612992511946075507654208403071820929519754563494124652470149033223118560141133638777029748891083427351755155637367685568004308666995229907296739626738188006681157643784488635002409192695323940698080675689770531512158445232971141506684818222373611094973484843804692407826280209674556955189267398015453945053651282045225248441432262097103446275832130886653060825463057461762366274006678153256108848831233752070542753387425127132909940259305591765127922018539964058761499791080246793079041650781970517809760972101740315428540024389553549770288291786697316918474453760627537336069607861416633934538672745552043683911377123184742610437925166617841758390609205387765026698864784070363458925048340536046148867069507115373303953661950174387457528270266864863586116855323272522446084987412657312334583826399743182842448297706955223707872084375294240236033136241429149968828906661666544052807542339598587429694048658109250048871577410119214815821273704922056269244979453060713175046192854718173318969163372291350635132141772284795439479794200843674803967983435012414965011955657047192391023683774310794605534730806484078790134711954929599820289601221591574809862525546455714587459954884840539472544087402685743547604867828344229179639751904159507716232939880383352490684366037005641184695089555175457984995358831419401820706355349586079904250544318387571713643049625174558535807698333747274897650341872465060646785977149727689795281085977827971157718040370751429806447247897235887067607612461804946302291420613485198418115103888017589194927017136729006599517330842725441065614116503436522683115467003454686364147479899209895589540182737100878646966776322133460730225130077290980002957318797328778960574268587512025065688967513476531695832551687828412178210224493013316836189893180159889473300469066380139945351725079677684172865317642848051828947206308268159505648877883282125059390864365528427974514554898515476210274905623178067848935708797371369819418404560701708748241839023473780536545795037746581421480077577197846067214259423286031607390957433700262359128200967628910224117301871521509467152879035327465096400044699691903125193762258483625661356391049768365572621997052779841011233145255113920720802856031727071231512504552406605675953156585011320167376873781906329576445522384378874096548717809242899543368357988928211864569817969645770127010564674570358687438905561307331602247689235517003188652765570348259749334703375613843781916422654474624040546075009155673416569036352840777425378134850951259303807479155599349920899350313393934721038389790467311058089024508434330865586345153693063628670374770944393836974532300655461083129033868130730662114534705528622346761536083326256777207834652469204969992210768650978850145089131599437736503951551690688461937654960973794940554504543359246496387405230609545517873383058439697909749092294843018430315193152158207795755079671164472906974728075328069880030229003529230611452839538252702813270175334058858528506740502026485272169539501245656907731253429054434346546375786919969564775015330821257874702232460596387828545623076510204368151940965697312343473954779344855743323057892376567579372087943668228354126338871761196714631683550430807963372754399278654564040775897797073368450554631594076527094969811518670683166157020637012642960871167024635051902540792468313083972125810704634314888674634698921765492995093747543436524540212687947123811419516609449976012038405406345478760254683377000289470875329863725094246244048848289089215480216601736809424548590824001531745499125097358555649248777927525781706454681598118156169459615384073130764757794612037377016285001467657488226703104397105179261434719043543219694891217825162613836232063076032443518076545310357433141622087004576097637052618933522686022193578307094864035630902097146538599179101962947992876195734008740724729607021148854039865784397187818899610963322745646510011065107176612518070719010455622536976997933052796101211682561627993488136675372801803403407776243995660255366973056499493930718154378811561005265305846049415500445884753585220966286622342705733834724502780820304772988928570315909697826761237692210578550882568822539948162730375385174784655741057994184103401343969770998784418599117414176678155909597971557705143674390654161595226233617636499786468616548275114812522334121745809250097267194953924807388968854853608682433273652142041051435986754888244821651906936448809947669885396874918069283794158354948358589930615801402100631578089476844412328659279236868140864132578697170494963330822087611395730869701323425534247904900509429605553345251477271577083051133502005796121483471770370731633637199520792536259073519994307650179105536101307800344382658030694434235771972773983538860921775194094018181236418362853507939477325100548359218946121564195019320959804397436816619653849818878392603676204070696208016475359792983682024873154506533005688252004127367846291129314805048511440627687782330785925371607626522587723263070631412617043295087978643542234277359310113574490018207436576862656196769551078382870748420180898307737760445813749100827194353792278179476246402104965162589454154834574730592848566709595649667526383044422991280899891676972508187694296462056483724812026705142939452058452758752501899811088855143001108973752233566252529828275575294170343519873878863714324592334670716221728921558429272015622893397839883386244686896788161745739356449378730446798873426032073520408441437248402700178253619236228437528823432009456106113639481578070650239084280316813025310967866244733550902070999920141357516779082646501164024108303003134045234525015067474967299541977954802636946989036805203689660630368698105658816629559320598021693776052938102969754694609979946435497607034709096352164697540683728089745520075054023348734668946580602483098822171677505939368522871062269631908787254430273053818837062836375531024427484511187812512401342404354354682682263220786430034290659312017497808447558028832161902123652185532249840782089086957900968705700675390352533968393631982165350650755965194473761733532377628867513319322640644438221330814036919554245734256337859707866940484718443640089888180686797514400554963271535588991401966929801716701720632862086234217458056861966120953134654041227006153628097529634761085520536502614000354579305023977483086217855033261681037331646819439032371148367401752779868520886795820622445788163513822570756247282895957901680509937848836628401996919205123874954302398058610382849037751959816591738617199750074112922599691471373879840397060634813293715822333108502053987511015397423770108901722045230287769207445262302749265797246193664207638888210203070083771560814281066504043288630534255197736573747214817360830436338037924422322870909712706462532872149499728234757368391686571844074313402244815533321591326545954419031131181229084871957214002714603860133071915148851922023553585297969805381521196867523563558977469278282565635207891666568383270355817511284436051915396151990665811912799197267392333159381909207913143974418022550699830159206996521242744520562295140358701886590577069293612602085841883367209874221893574760021048094461607899006782801510455586130504983620636550778945500594816490909933411257273208367387999049911063812280434095289344110242017738181921709710477680029833474688989298049872385202707414764500845152047331929477268428365278389585496785375674768454476082081169388731961975685808048693051704593751054567533897087375785588335889015984504830777424672502018129630036161778908868680331848855488668151235846624385579724331749970853776229888115648471244646526077768531335286331739105146236736311814957647777514401303556078798987876991722731866886044892867507220343558611202901556096710276457458681392672195951801315380582382905744356395117330288591311414544055669247623855872192928614027375433324397428898030574752721267544149199879515274087880957462502048412768573194499790133269262016902725827225247332992781337540916589437365810687698137146555136710491577942886747647087845406273860327751038470961893042061868173442655638939038489147200945096641577004423858758201982996271489174087109676721659286465202532756802623174098927283101306870946597180594777753888771779556451786823611768851327087285885857061388948417156754804815528131352733874711713389736362503931262883093868152345852677805845915961395743935327803430736830250249238985516330194101519820635886777685354791288177341243302705051928967244006237753972842698861476391815410398901266116774693729500782704236941832594056937442268046634429226998269768672110706989170612866162092463002633795977287567537498704953331444612971074987119205492663221221282855093828433464061499907623096141353631289302586428568062190228967966954099742089332433862624293995215188396967663495198152992647054212744052342220652824295717294323168515469163765824408390263650065036025035276600379851352353841762479601221036333374846688308562798930492628552887620148112207763017966327086613771532513040796479124968866193986825598767544656653988962934808204777349384083285444418568668648887525944896790160209402617779105302336645259306699617032638298292071197210781315687649805636398126415749563379146478274788151504056333232789614085950363295374101634371765494579590211862753395588341190195341840210732077439828863375648324064023482858857677978030859215440774987900521277063516451871640205843391303740284661550720062301501578784295461311908150950424692805401269749928781171991629655989228853428823359831809520533182440923899623958908498457522192694507828821759152685594898170808722560815415437684120458956227748753732109457837109421270519144234768832672504048773936430534079748495300558761150440940449394715619610198338512828860605517103488553759931965023114775290569075187927518386033844471081570958707381043799806183260437735070282123810846158215132330338687535901951913732964977130681727769282216357352402733602842177623760868679852243361791611845737651159848377457187221649755027210466686129539757597314391888986925955164728271907478770758849396425546707710351811412502171077666981608712168651037538443234012705628069984372056046927767900714625873665152063985835708580125076410139947006347921218331130633717053101004839733416240523115987916933855589136657938261579524260866443407148002631564130216017672818558604613230810912481484052651466997035532773058895132829314426328661465312726472977587939578131202526101505756720048605648812994635368778579506980059861809072658682911013184162347754249270857467502476717199383608088472906673514972422970892404994193125867502817288786737415971910946838540471577789872865784440599604368921183884773977966249530347944049279047332637602584979435059352936803162888995832577312560593540913100954701025677749611993324212103086447826781931701992019713772418109424798985889117075788026612547736460950715668401200114885998089695678595559968572380964768227726239812009533333606054463671101997830255895170045163162420573222104959342790971071389965881978913250519354877950437132061168787898495113876575680259495071854526911460150529994543012953657656444936428840092056096123628269311664007132896716162903055195515283386301806744323457030203971638480482643638681523936662919887175917637461810918944144869741502660512045361987853754943252717209073977998111365859662972058775105504009452782139504775968266415297601174458493218202095242327809442539735861250290048591621700805721561058117763279717328788178895492900355948195865735792211363877787728732962830617831261150028164341482877962727501608792696227245490399714475464221232446597473895798816549965140935520113102666037177809635882383687970068779235250525511828201253345707156699643866748822968634707432706062209213756039153723245549400944128132944193598003887040205183102530668135967318211926987539410582320179094447238122976167829960142547568727307486008634910351637349667272390717708970583085302863140299368026396902190853471304141564886002663488812832180118261029758315103456541852331874275183160732762935210730654926811552832552554720957180376909601714558458331717921733627418483835209685900084929527142631064786433884106078995937061387013585501716880601123938172500085914341583668036878721523638278612888576898953779584479063355024110928442195702819828359509428534841429747293367421365609145107379859924189683626396547218749932084381988949712706591888873848781687301464572552441939692146403451528315420098470640094138385825280063490100229684572261622176564216117174327425853324557343301898446893391360244740630191689509224951279909573089560686909713695497573842674010094601179572279084706960840883686374342375744244962604025931366834990455206744787357532985383599816365273099281889330858162059582896827063383525854419842728618015663430637849549865780347349864008592835042077111511532643183891344004507972542262931056574752898053807746556386548232083562945256909168006132509549150575978403956572526415627968850646542581599267527725703650785465559722409450325979876750719257269832375590187815039338689612123434203248242357592122073779305410556154596115761253794720179124207870905738904200590104312734270612647034355401360111542576797619282721723451111274639231952931807605792208408819794076584871302508376782027790089467291041653443252673705513495476435135748382600355937507309249518357955791925152749299238245403961257167372302534047650988663226962554890957286389227266479510964370567203041077228505139402607200554986123517856073235334259961630347373889206045446885034252891565529219334330878510262582418026058740722048440147401598091782046461609143875014245004499375397195239495774964564148980407272146583723512998212713563209699000701804170680097675676872472931516826862293976056814704969953270754321285575669176087501202098515572164587946409702947974221837357181432454944902861656069051052297311694326268028753410713921957766344312590040180831212586049939510354126832484413420638875907303375548783563741229902235294538014460936035181961490573132541860700433009131693241473272907106360517859326454066820781272951573452492681782597557920138859766809763487453755989504650735175373124956434087328087847795607049923858946773943806084780347917289532195204752028659235318446808156743282266801711848801910276239400180108614606587553660525232624934083293888309362773097078555126713601602974516763373675240952404492299267465732438261563644105271453158017619047620683025174397214695295526058840842990859843277490967306118767749503645586877430200173807179343123012251436506563818076838214258527187314652392238545913362184964047943084451329915107172871883400602910145836554111055798480847636103336359757517152105634420077238272500714094950912575313636408580416909303159598615876445265256367735375924566629525895239567874606029784430590048008278839461695774245856314730169903164474269283654208561077598948502738021033658624440897011219001814815660020678965401360757384275268172152536181642794833852752755004821733017435560778251638591663596290604241140881709656461914034950683796738199995593697105633931059270101255831713754054260682195116468310279967197352549644957828509529256672025878757267668381782535780818806454906758257006239673982258701363313626868496957622848978879356264407394627488092434320215843024366347653587101846381160187843920807447642955328116956385476850435558977281350746913209562417131655686271049323544862990486126966074567903820642399416531986938891183729307655912336122495872652082237848505219818982175855973258433074126847254194170155611040401604618690232277246103277023211268199779444031025953588509417839016341255698387528548685582728793587439843236244153622462761173059251760007185982541714304232054189905268635863636964135869822677598201795129576600602584934637282159976175563103377409141095893274296071599520025518260658755445306006236779468405077636378799781721085131180560403263512082700101465873466854879408153165676412317230642022966583013695112858154523895192186731596623010686695857736275520353437803658338830828785553372355081829413019719804223851770427807897546474315892744763148801687483534372914661270436141820435390057106667113280745117255061660866393090200207885559633842798612245391356985135242349538243211187487652773474697359621232613411634060361563606017533949773000795825379644891696425273735489202940849299544877501806579766505354737496359118846931626252028735158142819195341214151722562827733915297585784780001700220304357944379000858309692511137388614969365744679950495330741298559315858378384602397190041583309040848643408842347193247590298301155025686410095857348193306159036173794053839596940431790333747254875412383904045537215076840887230328194176491886533572609399628801467416818562183676250792943142449069236747869998694229070713755960950464961039352608872164614977731767045581199538483634099218283821994487741729098623603461956147912690790176873044866428655926631293594106051659366073673643532540458583474147743245135952920816900519178395076375487328319461540286203617667877670941876056707101839961295577363499371738417492620110073204687281027730656630298446187540212843050075012593462320048505643319230556721258583748246311207732170704675129761801982445951322318158773857900325921939620813634152164164069381825338395648749867282618319636126418711540863925180331075739416749154200206395966140799914964806506878033741666554594533345016071263486798036561948660621712492750674349101996597351066439061589398122250793258965372713231685121165843712531689893557684748061365335180129356122900711246630817478927647190854670973541254973101524878676455732304941379261451819666086969032306052129479734869496082246384300008191202167986055466652184355002086401354776420080366329264527865407366641824401155817499381441995986940158959474980506882491230652717450444282141760325852910085052651396713707123484799352919154095708855823952070158328966928113224444632580659113695202084856310137688734297220018439485461869501313876087565418052550849405786033044201950785303564193336529995824026678803005749611903625258516283862486263875101273404512541904774812439684306873012059723835617309624896659609548800045932565231365845366547058959413023017071501253206414155049537933607719357577860096749004345358378734911834922203860318681676858910039364967627610992097675268526532393850703148467734786539663348000645128519237632213202410548680234832436442491549408246888120404433464972879801485734792912624090629487717875545779436892354330333443284055495701955211710853950648298850660240467345100145802016872911026516250840404832932388305888144462797051869253712393421191014163767820707543151562049208084409484244867911480066262604642081449779239983399203346233654760544227538375585899001445800291400569062877599950473316746832750512196475453343872483343384176477359625184744862180996623143869585350672306763351483320270829982144893668151519045213306464047538921202448426105351512816309784947348284116635954883968135530275787467702445733760042159214668900002043483572601821502951684612386709864329946268342480361791188951238979176881797002843036476684057248372875876423796726837033591244897416904063015495350340041208051398601676829523854608848212362309056778835633790742330106500418517658434730809587576817802400586752523312159387857514459948831448424093661878028881232612537557823235935519489282567346939723087425717072545589861646693218043279153218086812714368297227829865949548423841823156597477540127244085501374532537526023152224252367857531174974831645414866936835383799024137812536502356815666482365637978524715218915731709814610068454687608394155946684044191290211918565431522349923366138851900683263131171525284150243078013801904272935834244208160120815883537059189609977579828184747788772213418020743649517462033380783783563574486425812052349542888392829322740119611660034503096127341048127565532990341213247824287767968155570310974282893723548433877308653193482667246765749188823450991021663913372438313242679796433510985283580788083502018698260464253657959648934146696530167037339964876364059851987146620661847116617027854447912842723392384026861769573034971483482833668747134249697485048897655798711415829717062493041895809205886946546245579296069762939261337697522887370688732184461297062531289117212361898255466193458888779925796891724380759688640068669372251388231208269198050544101375085014874473893307380033042722757208570379760533335878359968431814894195465093037364639486128177050236816705626335851302910054774852083190118155791424587624792396950805598520431939541082771024350881536285453568380173848817473986343710909032853496051372190490139523957737805501968175725518225214647919575839972849939148078779871597989201326749682133632404446972769426422554047802863780951547396784500479921776918962223889314471449715619007792049679585247097580125855132415115927620178727268373592769444650796377433903385919543716702409439322655266147502697323563872579383185483767280210984836908194816826987148220912319789543388019053259936120837524126152748463696334544530117904598002424977835316044400563802424661811540561131632482863576979716073246825224738837430636362833858235511723435344954354618254881058304298642475405572038236415499080260012554218535289375971943100233001353553782429069916910886915630282494189913433830262015542767921557726336100063539949399516952477263255006245974703317286765267069434434380266428604030871375262733117868624471521763693304275818034739698218364425022141099928952280085372448627512873617305126313871070103168427390542329346809643507645901119745743218800765949024831001090860671097367992480985263621883711492865764139419178943242974194030591932141197718717741530370495551752866806924133936505331747573556402488576931123223080249521209407773904739633074627682475967483184631809481183245380579549526049718628838569065543363703813657804860934660179099130786244524621234836576089465702658992118196596191781611389301100437981391800941946457208790149427798771709990403764818645315167115199542804220782349549341314781229580026061446478908575312172684799023797651426919687199485173155902802585641238725287150021903703985274660517628103864472045053893254889819606423709845329133053390403897070104643476666978254501253954755959276762051318546543023617338268750832645825623947703384541587621178051758539575853848290211786937223738078363750467750980199410475870059112830060084384198874129049345494584862846285623930017175012341641365896841275802166087478970750133439290263906709593784639036661429905323181377337469254406449949135045067113721461395150831514290742622425611695226966966970160441278174474428747690717427034611769262681510229298538961229069330901825097491911113727612506574095129853186202446865410120284194695247241893371342324807753665420908890400169741978252509562978042333201366368649408236460107340380089564408281236113749355445263594630022581729522735876649412560169384482924568120833276354049350869052532704183199841966344144754553332284942263980677155561742069606671378525570673055306678731060492968232466055633036788536489466123116235786465446345164112501323184719243654608944907569242318092857187542686156708898840603475970765940978805026163492873727070367100230045796857619172011298845268647402118592863808245411008584381957636872784054191300061014502541217438702916369708161347413016528219901151899437987521418102696627659368437520169912064476821430951119554576968574814223842815694180888982616831714637818552123953734108905617416958149676032441282853108777021235791994038365883732992979516787037526482213421917282221470500049843897755587294188564409436114252672973076993837632967247616779376837688304338637378866091070918370671226957755383032906396397109995332762510012387701266459590448270097661800350248129690259503998855422937247418241482974139108085699366064512153779866668312084714952975562055546449565560308692352433244908043324176958219807526368132488726640647522553212375368226646712487860673630248354442355864188128526246552880509042626898923322464223930035254151432582081505319672995299384042907220292479888147693836407444523208506344546053304348867237981789630951235786799184853736951971619526388838575755063912397947610221278934079769453649096648143542889513078972127978282616113354905176320975007293647653799133645737602434374044505046390732158282568601647613170317056836908049621294503403089511692137905342801357107931744092225277000214521627268810626358917086545895585859171363407427348516339081993280140074362078077268954656324502434752462783240992738830202865625855806595272116314563995357577597001272229874278660989529025104022410384430989998826972391119952446356601570873722732345938424671050751843649759918722970344035961232565273990053302253820080224544678085559410224468514600016722088827447101057608766973698916562923471395182567055555034084316881703985018679099345520098008446897133448706658656006556631448780839484338285772017745873997256135605036134399652277878197324353423182906719841131571853569407032210982950444077386116977696298221257995721440008141238151007764582014084794877507689066324287368341958343907214919897096822942505268927470607661374791392666333428851786075717653728352277249578884802544725683868449514117020020476268227305253188747246917675244603551106206924019126304130177967309561708620969101598694740647640807904923100361175356580798603669106677517833049204761576137552346560722498202478838505557028575503539748013757144355259031277783647613966583501932370423878714703619439239131047124120515263119926906854976833154213222572314279391680850716811437793348936637022477496354903700143261694140584285750660005544760903220916408675612480720051819812988386058534854936131596925389236070445701656428318598060791738548563390369373538173294605731126566395022988916444534075539805749875589183287664046783706554927935687618888145554750684958050996364182833798667245974780231870993482719058172117974307046180187019005532737706055183111176433505575171914978719047452605693478090060609160249919253208684059151325336904709176522179517890119403016609509927557430776107169553653234925170521450589281672146206749429301275117811628902345924854984955120561828800196856936640520929201521593362722788986161872825609280075305755426598746020472428502522258458989879224907139363822033303242216631251519750029585732425470297498745974355306828936869621726782060673574585690677721669442070837252285305733222429505645389305037800849669189794915578807612751712487260747367536145808450687441405503998274248096520145751917341230097107038499422033029862293283457955626060231518457299542143362181385539215991052011375848318326272276709785651693000305280833452656211691788792559002368365066974899319215175617453291262781261419178631577274288816173446312538699271551931621381649203918281762078875153623687140026759279496680502793691901244817236053588162812892750472323652606614305899353035738480292495226437208216728754085922786984783211343197119048406391398368441839825910284773150861825744333413712818195846942435103978638355561330121192961077985371124345668891052534419225649992272060840470156741272092439119615292419396439237447554636187705877180850391766719470990866038496502156762526449445080212804627072683852360278439951572696834218914621146102533707219904141625215904726345187539718069735596582587397146432128747123378705651533151058976431364213560947463398784484879829108315463635044317718067797556682991269278413537135895453758853127910929577591558180696056120684326740274078608401260407413059127650881378821627649020629199728025443018523251624145456406992016481289634672367384059370701583005004207306827586508312871257680638994584835643900593975254332720632131173374980498191994428249145749420422451976240470585149521245001207267378480623425251665936593522716961864734576485193764759181944134938512097655096584870691435892933408361983185327529824752059514935548116064464157197679227368310404365759899498079358422592454301254109078293511895976315406383260431345627836661439745548902352718252210559449462499960559506737362620482154499884689888644285014092416755203234682612047596356293788776652396417813334213758654036559216848667234445937800090220253400424421241775281431428331008322388686796785208324149195820203735501535853139376205176381982257930866086937438427867642682815840273962843135536784672790834899795397268776016469201851639036095613346687864317446527352791743379294003427708361373061571678771877553977997388119604686534395321935988842436027902069372578974710454099947907261569210942750949364343152755559304611632277072691520791233651993490262136974888149980393770918577928076451084772044020558753238451082737393494956763973814928619332250625945132641678015385667603323168674745815824650658698261741367722175047618219576957411869394499175067585565029486867969682352901709356485065051848458105250385633113542640416623104106798297692398689406851091392840360000196581057811428827299309474695885708022761197896061704760789060290614712734240989266529862381068894700312641538096268029911749999262225801216809025356906519669098475340247132564271405680828388833844805025421809903554745864772904385494997775746598815254359896858175276908080836426234797943377177055523111523298773863095025927063667480645961299302914817083347715671705628918499694160687235382171415719166047290204946093739725993858083188200213964778171853989216479774059435036469561848190610167463616976590030248533390394763897094588587799741368668809045110010926612674420122780847772618264353254278911847596148925764987375560877671833040199207405562255564266724102445959769970167598138128501695612611567448593776986447838275056908308579050057993409696245233893016501888563715371157268902791877829700814195431796453186337528583480229092320937735822951159949559668463039681071266896107106632958054411383090539063411493369364257711468490883804426797270467585318126549364239220033297479747807838835967157706303438726157311711042745510181873711854963889915948044335642777143116781762813491438646364213999214063636251829343270746168557196155814631963179163163926741775269067802113451902837040756871078314729864941562919096106527507132260393468110172457063745649743121310660037619432571721639807792855329779912729925674473871052255995517979272379750116764300843879516147084493488703150245069865747265814243863743633384809140104522103209861691324963469067471242751894258788035672920923801229845744074737149288227242410886996186377128972267429140927083667898532839228191976203664325093252890456413069950945127933974033256300246132056365598438611952722992188902052558363626701487177344178226776011746001563636765222340350193953761174372304405073340976564763213898112337761680843679304245832587556881015366698462421554206394816590030086390920338152816106200761474983080136244009951972448755463000039037150904294921010890208849958495918655871327487637480982417375612124211188354753784447347934638985673701631878254741703541765562331520625442840124044773119332570668372169284268370933768383228718872218331489612922377982400409389939594398983929292813991337909200141365009368993429315846791675794166817497251732112371261234722398325478870320080416765867106320069962166682747089737534753037721103486707651499061536067259531901221866521699158340018217346805105504384295072827239991626708849350294421222655933142464827954316417587601510077044145110539310674823748206623162332057391627740837470676215709996929022549190008437140026127325303892554739624979237924422831188042232474019519206525398380353743926749756832777862118121669934086437184735579152138690718490642269596416846216702381759974990448862431949044169917842596447479188549791895471061567490769858730002785144545711520516010312719758424243935224802002450106544733878812050220239566325416163783696899662810872791581290744333759546357215766903217656856003198530349255773463703744874267226225130421802060249333185289757894222004066438907312779259583419672040264082225632476041543707819937696387551363474011386172497807638234548078503545233477268517175240019351673742742310432936391171698220179560445014554468452091044115488296924124626288706662863929988104784675874315099254118866138122305045009982022574493543309862388991950719316000585016063127098456179689836729209458875396737464510960366942675886300600059763498798847031291156084172507105131466995943132135208988481901283857710335540446893483277233061217563394144048296897605348210923780372129304477575780305767091854913579748396904071584357932992693198843183891648144011503953178665187495915565039829839840042203722473016347879801665712917215160667952584392529920302633298873906222401403247020074905237134210870980666889546169393829172872987286436545048468036584725851109203517308152014997291863481028463728011620000472433481761663797134512915921360075236453257773319962057607668587736665831057167651879705538059438965850540698709616803259271544303106968336923054444077264258275634331461992711758565735423777177060169597204829960816239656589581876780427184799793407975869847224060746917186989089911117126518146168596185208932956765792963306482110938841082325676485069876786612446822539000572265693553355086196854963154350437893920042687039839400136528397393011689457521828633710024252431717381817384924322165974522637920685025549539697404162751801937662048773373369796084404162291231221690495262331950142150595200679076081674289101207730571024429390126984066500978427533820503718264997698085490177081824958923276710228079058708917360250212977794094720101055514804678224945036778051301359904919785110608639820878749136663999761482217816057640857965475366001543597587572886731710398730160644992819289469964965526543187648583679650792292903160100021724730244287740739063444114414501041182002845838719129938179038685594898408126929198855975995457864313368885613215630956929150294666254641445958766666994364054129703678603402004944278190554273412761791846398738409736122404892946481735262239901316585428909348910856610127073226284150951479486872382935265878709133545893416610659181999255587168072346875251638772779948464630088288834528412261665361336540292967449655204740259982837078746633985033726425066816631011653390493814071047979852529138696593592330414977039516751119313744791060742019126976678170012831135734746930356220882350656723539979663997492955970421707064992176021974488796912412000992371019545883171845369225386432683641406750788415507415718051983852132553541863505099221631254622258066006240790529729181279036553324234527033546382027626301535236953139486983308304797568600533183725788266380066239946069670771978764445969695294844850669782392094118572732517957241628747062304984412485442142892263349514688210974812821057489470377033530624502611962538443039001075656938733494538193230064487303839984504145408507192781596295497717783142555968567680759003935933829822168120652746013199054781660149875157969277135897463738918268578090737372587182200324538091855529481249996424939600962152407574431003043519702702322156262214467838050454824170127451615935272664756097044605381124410127135401560428462164359433553185046187009783342278985083520922725367325258965307542525060289140978788292518467983202406340550780512790570354223967705630521006000512550424338046266870937108131113438917872251542992380582779677365105762455698721608090874599865084595170202289744036413573494598012529515205602351473155029475213197278176219527573239152973045834525013231593693689625060916731264492450667690517630577837207197037506061048926512230691038263729967158782671649751296374203161590460944653110476785005709967400873195318629094080004821490275713694856196289200034317794843580900606717212993973802091902921442925945990291035970146160447576893353946416613218574065037444219779278440030344628640083119407538819101873131396767036375107455072863956430466039966266294931024383990860594957985188796903146760449370958369068132905311616931838159818546724566352866475969419086482427583813297817293201025131184373806338466502274159700648438946574375821518731323157312057603584138501228923338055536175631328138329115941758339300788327263252722533688268899831752859772384022897263673884157033090114371164527261445932441715395248742562051806608310488648950471475865156121241037594616001497903242143989147568962626903337782361719208548938869357719230297620113642467442410935891610694997075806240858366805592425431188585533756261628500969401377675574343605945258863470730142680448984824139694254801843502226421830866332740372382972442159982174304877922183777267684577480403309931345505649590748809334734780168991640324621216470895444857173828778990023781033183428316727575721549687287758347630119415602283717407443384369669209534275623738831699425861387535734609027579339348703463933939238806518435999566434447478787437846247490773680313567639454341788219269527956339446507469868846098648057948407958362057054496799272292877964407688783675997201044607403030283332896464323573809036506852894682447371684889536186234355996431640055352756497083496573796740467988360527192133696170323230386903805719250904287997804491934291745513637605351965170749563673834035577421300204466256550812935829416473068756481118591147415057174593732705467975053363702231684801796330770711370435361133937953822421019342582293913000915430321258252203307498584911140490773485608821768796087330885747086307104296344737711370536226479115783036122631296503560436534838615153326464439021116765278908402917742079896825178638448029352428574234020457863442925036699923049635549587757786370215717687507731849342925824493757798901464418228039192305645889498467593476700301090591570067303983523673854261681418960832791516815096696469900171337479597426260676613346039199726215519835312487362356822314077513904988993898375917269561424811688851243224444261461809956288498670225667395361981496129100263230231183393850405044268723949356943436402507621850634732471629745788795534533067646277492766328290747517844407506148402247645178045675250904412700425718878570394940311050433216057357225643590996820100661310881000754911242021786377631623773849771526839473165091028040852835723731224574095101400321031203312277291152905486446874328495874031962307487577374952709935326792802502171110996571111191727740779277612570486944028863935569774947390172697132309712943143489589742957925902927155114321897832661696209136194366295061916506087905261586180524722605425594541970168376657285111211526441395648866400607888073969862404123609950946167314443505975098761410650269391488041617971280667158223321821840991076930622999332334097361624029854810965590359027731073706670332829425873223118550535836347280580243205451472543704147609368582990175753790628862194590737445062208311165491776538814810678354557660927299351144564300174046106434550020682123434207356845432245429069293858680254482167900520509444231310062442063903279051333187350669112923594734539602442129277965135783477154033969010639848218272680160418566347367087125706701766219065632601999632088548206566095255319588611047941070286611469239141636921891808792379484210954900400316233083476313453332928128091522865787366612521650240657879736321662984482226170476417397086988406671275507028012726766686757674095205176161669966559413123820913840078997078892578397093874015480862106576848999699900830654612215868075747253074088540807271059535691455767035623337255612621608671083838546097802528381189166070217334759567529765823444303311240802146812793780011020582515175990056207643048735910435876276198539951246800203994041845360140438462069017732148669079902585723930609091267666966685557128119105696037763520420827096517445343133084453306330473709800798251975695881630519376751960941952830937021234714491602828986657065507369222447810257839811894662567218437867628126279862505790258663227861970853978184137663783780218335896228751286926085901986337405469030955245028561407918131002914295164574311143571102098452433227849599187022675676388511373111615956619528081706017634696186033506469419207309616515021630236999338793765763371188860383565186273531691075087710491487589497932269036444835186770987261480867520475508302529887226238824698000561919182337852586302859173618264908314608754988235961569292433364644399430946820174783351531119862754138901867376295965194414731295880224074265159368786439585373016953280848836968564543348814847591284982178068197210525454103886712659450557602606922614456004757537850541291699462060964742289466257625206478681312015364978380630849013113247112823773105829202932211442335687851365731290739143339411934710493236382676638302245738247539122856473414528893161700128463195412060382685618821618299816175682507662862541479016888672519384069843277507577265183669648365815602767923691023974811188869532884322744526464132010048421900267684835915869311147531963266135558012381948410579334196573632667955835304557573484849699310159505198880830744822583999585892583517264655831127784883386629894323800795811747762366761782775269164013722756729027831470321571130018966315216695180715414323361263470183968475544112236030826186951258490526873259238988398832559683379558884131370904452532695267582044277452867482022183977250571246923812380512086410511339879368998792214844559630682240094154758163845429633215489081749185586105712006786113512042126564489937097046029160076614330654682094916333483296423205304787513627877862379648835697076055388820715860472247476420284831512062686102847850497323477756074901234254666562111689931848254457033283540767030524602012448672738280763808372873183539285002007656616164079182995974659623918788274076110034407633626821252106576873222296258969111800318265318660729346404324074995790876327786555605110327019304405045652095409849256059147188743797530808684546557338552874378595358153698841010526935561002532758569550983097531619922987768216479124494908015129497415079590763471209571606370028535091240519584606630398553262300307883547830433273469694886827425738578147058555346956355011067337524688111995802762582350476769428899879569409285547346698000584716206288091405159056738528519129286026658220759205086326928950523794975170492785930157404191464856785177676425282715036285765044278381520450474353442209653091033155049822868627153961865760646050758217092783030914379667584996485241061071162760506218935385496964157533501353037053630021853014801977640942588350682595391542298559355755140343495504602339015827308409035720219769899119917154137831588810279243933893425522913462889454371186144424480296726964716007615465740991656147299288102526011333331566631663930914731458968694849570371630090810655144887047194241991129595755281147303650034798853954279280028734197951293751940813621950734682141457716858544660308745184343990329574437524675568903211432540717694656000991196317921022833526930606613040576804367717190582592242918167704960711705703493679152965017243559867435080161422167962768150533176406340627753810142814182108263204406755736262125834984110359195500547365098965971844007083075491667720849281671050653035641778337612095108532955545646832537402142005536771457960247790151829005731622983608697554773542523158795887807778706872944867591932098667404628321597878717012416382413544470214411385109764444302994339116708198996805233201346749832001899975762126435909030544454138707638951274021259387452798248326547349058236172657535466709654243918373785845451813820296511194425543809417707964094754405691803586840266847196300545886037317960067994945850280298933960795948190655732893485407821943521194549706890113930022538511155837001073058093979886524912538286515695521431747859449631503437165300447506401891986262152185451964913885786602153505657046148358420528580713225452698520645800955323710293545747083955457889764224442542646454135602858875677718434395204666726644346568755369293963955605534173474337005270109088200031896801272522270078851890505862281556217991051624715797558716139296963853927824728103456968462997376124754849324031244822751944191339417958017062294758170691119284805153381405141433964341890457164487462289538571279137750273588051700171645572664504542826127711185023731338960417494129571344559906657393039256582620701790189739472020783858134874858301322018929933646813453773770015026457417045467395267790587350379870305509446619771311701814157091768378595681060156651983206714576335240349938738331214919365882761355003273609125136977034264667418873986069457580495875095895436974049669817151295607846242879091276681522112496687228603749234979001535758928788777483871574582318941941153224786074461843081645875286878488725862324049943741517825458628421411955969416215753573368921269896309442719139630295892110599145247400077569480465955498037570684138528885596193866665033312538711269547040311536774589199722360684518517106132305590762646424886917583105498633603507428170944807670805804616897861804694371684018633710493063034874888521945084928337279503994104172018041645716158926325123690269045741334555557896655658906194235166326922180853667484641809534652839425196930783125278932281556576222312259696621547973811657543772489367494045500180509846391676221409411941510620132563449258654034876273081946600062209690435137626768338608069545045987604712713896705447988154354378807397063513017265434143599367077435212721983525891275864496488604090265386422001066784517266147000798551379183686606635378698201467156730999223522555120175544857354690428270200807304639060677606539812444381909907969901115794303368635371927299769952407319589346909237398135777147006229216006287368222808612405847108505520819511601540102877320314164029079027034226270823699372448908987411490071529741355078583165112172175197982051992304509228442267816140165231636841558322030664531995343162455807516380152832036862373923005444664164925193751814356799433458895358995466797563211975912183838664546789772439925184125791584022825407323037474446894790094307998703932607815097246879351384712446279610475959554651498620230669211767659146716845431872245948939199387360012319386370967030689918177535708033758782075860203711521816888473293248255710096763353187189749845051123188595751574326195566919646005448351181759867788375143257001755550666103786424951173458305779812810594784173045550884051109051864084386281627881599075019049674182293720719678498907990657840492684343848298583609196932519750148690851065876619903189486141860875113442483285997215637412477150813127441808499474625916301664641740948911681805245282511611189606567071583855379597241451782067614330102345054906546422440303128526815083083226763961289231400765485837164943266884046065950533973844221325644779208273711938844660166061346886188465482954669157554956723772483238300546492318280042445085640763413519586535623829770043701599192667388745618804723479401905655510942321543594807763539256527211754691468344617038289236988676545658482341576126884392424211271492614882140521983861382084439968190796090993784022529142930472064614785917036359641846397553241190307941838118312402621084600988894718576160815225191160979698452687269881650874343239493824135198844538990221348208009835680823276599355840511561929862116993421893624268242949271893171833179194967872111811408301185483152180813317067529690729815985008364011200546797763411802127844482448958992397352467308017147906925599792867653713242788989095562767776058740958191452496175202870657748659750577516308360760815224823905196425653872801724429050440512608917582758301990432996760855734051954928078086056688142430578398168526721984235843639809368981533824957247076252731475514153933514636177041179130624935500491877096555364940128001992573862462411190971977897519959045329935215587729276492382787718934232044770902988744732474354737947594359619547279884834699486766716796052857767588981060022395250846356345062241150797114104032286200157338024295363628526166751920185949443507576593571951263498067526297457979183449821001740027510925459395156159130780069590353259768951042172630751806643328276126535413539078984890254265118894945700821883560304853131840785056927248807248079189395120381503502890570436160947289996062907472889944298763733201022917224397699202251877011574323679866182334615155174154444867111888553946241245869154280410101581449796060166440460084002443238961261624485357223602541465458164409884321763758247578230926537082067625999437180996978203423560179688998131453518258877087414697237743996523601470995847911658963126175056746666631187176534474220717869433574739247069406123974233158239684814923377820574016516964479098589510827114666232761723361093091528189742185845744695444489296406225888615031452378963393305359901662751397090174994426080550216733419858434313847397421838847317562490671609330562260628975610836910473041255777064517838900853618286795047994851001247507737456380977710410938985980639583716085246713197887981807189163616243377762744464938524214553341459659892938613654430737290778124728154123983228850353212107769762167476378353237588428350166907596182252814826760442955824651145998901837495876415127240897769625522852022538827823891255797855753443045067115111792210600023078789179185124953125232225343940770902301876199998912543994317413966794151206155285145002458834702948442225734281056999861988909736972067764280192713710215834012587468425343855986241830058362903965729703333513708575959904396581578480482631790601611940771321362618825042370284634401106087549391505701411231008912026783353121597489262951271093652720961361088048531934161217743450569159049532241898550944236938940951656722216705224884634071899894237473806689736107415520610117196567060028992780099976254942311195207782690950865786916552552901574131832066600992768162668924598603386090720295958969565072665804011103211927848120405895616036624607295200727376533897626281534796797680219536759754257020478583183837165269402401397937054778822801540271860447907099319168158156293409915765086746416742174713222953408616963536536324793008933371490602132234135757796423435380294038311571464285025860210288021785017921998842091295417799152894956373758066184766781491377011928560332236544765357617554958721252968342198141050599364455424669530217220143492025977940297455798156096783096267874227304406156196581402539279312561905444700824752943098305910992375147685205982293226917468069610161232534393995083128396758131502348816974887672899508125885101266605358014182819256449532502528057708851292888424477792237101523333932129868540877255897416389685642871898676775494974062202817719286739820788517908441611890297681440646950246253597526996854410646237725287377543153773259335386975584130437267494020848435854905803451596418346589909910044432349296983424089690526759496297386344693232379439026492847354023291144146286325911073048608836483331525145591275760852938849393595732699563587470812686314399644872274176776860980159316195756081856148197144564513842729322249834608349481574894602228155831385946746711431665263536880800062613562536617438743433756591895700803906122926379557029581912278883464355867395021542977053757918508117968108446308859180184870013647173457847017008974097001909840798211368444251951963218914057075213542465441355595828074997507261200509576260799536910702936122604772603928955073437643494974318337829728131162949212823915326085120943411459916529649718155617740366205695766129956934748752651061375322616331484181387021740287163185877662375363723159660303458590638214578139556041761880865101338776457804317404324268595814225272910192121396380051582209121435787224688361072499498971416281824131671298916637748428118800601279660313169216308839740884769515167622031810945696667378911719369757230808747116275973697693215246771967790221271550882393794266160766927239751795930172267643243470116058510671802425276573311986331226178273980912167751131375696039078370234934270919686257837612403869335009746715133197093447157535863171996029098568205149619399183349072209437914390702376301175876798134919715027536113887906400756243807768456431404530713896363005254758995463266936748479797586730380119472351767454574742978028817106649653842176580487741319699025563016059781080064989156903929932073780195033585412716725159350413193312627686532627340681573988984964951546914110759975461944266828505967193850011431055435342003959773008946702351315471227281105475585491912542437105684046727453920606243853042660830700369757208926266124897759199288560231505882607722555308135456178104323617160304706570157573072243469149559870810631344711960664553400445726750627673513006000392544034238712484937632089065277539557438290698040029925793193686252676749976984244142221005774976661417675849449645434538859756193320420581699118479770473039022517574015128259788287053125696836151745164165684673421481079441799729225084770120103979038183918005956903745282350470247388594329115956804937544788514058381271265363506894981899292584652219648285951846504445988767311087809922117170578667780793514500917823463827919300337269986651268237089188984827076514930444214747387402780399768559233106550321040628250904531958966788304979970478986816733835235579480968280220003489248158956604775656921344563793615917813273309420490943208434679545752942279026666031565284259005044049992949453793088278646708108106210323923829667513603572478591037313858131749703637390518977669916073900563981001734058362536732608014942461686756489492132146032025584639178775834295000925359094414020495783019661916763977116613024686932996988948400153313550659936750735620197773393017258057265513777757025118641310252327055274721050102500806807826530491308088285341583842685306001295980248044250500968658795318810668118183616463389758470275004747645856617808266974487097154411344728539414551558114894110789191893408064041552948194004730134613463253947033959234746539204537249995939602332738770465812815258952669023895908472179138238499714478048925243361969588932332302580963017841533296775521258229006600144006727976075023283402538421265641767564546915973433593716838699541378255925653697362641219109482235822307368160332573149883497053615206667957747408038744404921131628367128644996479334361908913488673940653541750922289321190358610008376734741437726766350004764807223051255154582995508438814681618741023215745578344450143576998114697918432535856331342563747943749802977527803067022133349777507777309271731419591912379106124016498688278297451842022762330951550489350077122244926735498006922757361065595031043983654321145803666768288738945421342532495952252003380044287600361999297509630049392086275725736489055371028011701721594279537099368875377391674017321769469146736485349555449943265269642085064618959627436381085606867847285408039429178261786033506108241096809619507634202670731920908511130414363525711555194046734073547023752913348037399523633065210687006369539384442791541179801601614276687300474235744041346532561464541927923521152864704960936059090955971348687823405410631603695134195197583041907622185370084602741842961733842094981797336167837351367560490990704035654527914190125092716979124948751096862684695840035475472247204854724448754541154282276506994928186232202707121736384218942644478950804758655017942444023159535712051615297620477802402268152627967931530113879039881522559957895992351283521060582860983238453706351072075909604012492870484997573604697424229520522830393349158688651003972570220067334415050375631804213284991590222132067362210373013107526994295411282808166608809087354412770673292849067156048396466748118898675826848811771559967851839303900037646658919841587338723075178469008012978899999216201571084087031489419560027377805259564353691181476203250780794896049792211470640857507523469750669639757119243641758299845549358078920256455899175444243434307172184398752660430353903460754697726371576600013418585410030971260385598738002387863233494040912776434437757481323865620698922975495711018131178650793550196002150884038508203272111802254482833093959180739821498384730265690624071145752736493097312981175596252091292659705930265162896752088215362139020123104554567299729368053306767993669575776558552974196394911225197692477808709257188652852205131443426295107465884256676662251038801809935945289974239968299879392007524804387251561853160298423457504423403036008758285675769254249177693070445979581739186044820568620354456036755422286345644326000380827894352965966347407051259279632439743852025931823296001872856722054193991685004456071551334348337289564300562331804219084395336058569371213283836164180397138610623771864021633893294132570319811448213802412231679965126411968673652457797209423089283925474838662586746536746516647521654521646066110359219915294413313227100807852266541384351320918523128746774199822781897795930058054502583225098817619305752211175263205009610441360987567051685175323795211983977328441176348741292035019614948328502446304934410268349934744867082440982280470360087610505880068812916789311349264540384851909252308970216597201401552186285776775153136852498539355907753302167836061572094684083055111080290440021421983669991057241499800302879687082577572140853190770248930195274786852239701594681528378009386575096540410808016652295976731100082001668052180548367553302638833121981042678811056781689372002942233925778480061998684156946476202208075735001757591651124064579688253577659734795068239110411817705088048594334751286411341645152139241869580596251118846936516460814707997815655243730104786981675715488417671474074955687281953771479858295815526537171181625979017485740757515630327310017231453003428684832678471628594467089649151176292363307742198895995306948647568992028651326787169567860199563213384814938635957522968316552507516625401214072149584345622266838730190443214623608391931704487900235889331189367112071488722042333009260907588790041511742410095945104667464638849987901816571675110640434525785104404183700000972402395665110904140128286042077046854869492745180016705101835391413258266569679476896308989837726897248285152469342586481157283914281123330778899007779678437830396437759963894524039683423496830858505468427621341864216005285600412470859154155136888042328877222540520686323405480842185250627802370626198303540884894221286538094398488247568814249947181646233062716376338600710877545689898230859221641940897661046930653611051207445229037004014352177128605092296893081131398536234235005242969841632792912196662781033813502431977008308855590638068781794870972548580620121420210266948355228251886504366238504544970079134495349731836514456702853669123732714394358162840969056342785307402770142178028502974250903943295959973078739759677325086554948852984945904862729764709588814511255853945197087350340515946176229277527327322623621980562678697739999639947789460686727181090289700218328949739768970496007166177397034446175645271039540149210600632887165773844947785465414178028594820712426519895652988602776097109346279204986695819807845965846611543904220940978081531874742402819062193294208783734174610496855317636253844950927051387568104826459952831873737178245983378360920206900467532531928412778151616640586677012466896929702712321648680585147022923135967870948908826975787550414921664880613091474986804325637049236495353816025148670428566320690500935357068309723681536136099292647429726746043604712148392656867437679514403084512600997902500827334341170227215065781887020758789426596934973912524720799265484075678509318108092136330436182865908567993653652884493825161100778109949280122964381319569611009335449632202967451971968504603249303362506365404728431212364165313922147980512033803965085833725450912740063755849665186993740896295035439812283200062817319735757674996380737582532453469107865763260928678497211927290615762434236661615514893909577911174972693100014399407743322178005770848804741578335399054908446057807630927611234479890684152715679786664150858298108938121593283620372223529816360658910958134612315775757608305657544442680156840400628278365092559888985433898056700873627641535494668770116234956473675607771362325088326439593006301954546620406529442194613544076695854548903437446967772473517994587705233716520387579372330165301188193261064172929165536777742433300397528672651572619744563959149753380519116038422244226128148304442098709777276730436292077825434318952991356455708330200096667265724161623659208594984859708877128415383154514799606609218852889426998573645692787615658366474980645308210564156506843589382237961705641459228729800665592043080267486540631380418213909299745952727603577397269311629440867197616843662853374622948154356972235530372194209083681955979247514337150582909672640912657287538108136725796797572748528743995233934136636285690372400562122408630236697706600033171947880774232806770328016131966553771989209430413394042015151987948668785488577656154327949529375398923887819089319907203845114501030130155549385058148206894283452292925770910978094853403739229452443173096621511950896474157581401216294562529463527061210078843140666303004510773403142458046812182813261317722956482483430068694668544772000931617966028050157344541852718086540869722361147543986165979784920621009028962764416712744254723564423697225875812138106515409431584715878432324389114501275461547254965058982894996391097525213702521101791390719067919431485400347874519290748389976917522215440375911152147499755882062861030189690908330119774427738769680528106100098462937293125711664056747491149255136869756503078379653996151569420481626088871068951069951246962051630559866877323036404360551145136280466012720725415977619392351451083630731028525508829013346512918217024794481082102105029369223136866543340742962005232372319563793131486165706182414648066945768502714802556510966147175130477431898952954015291309435193309815458961740130969180346477002507364617259976768327020498435246665702412624041716419676698628118364781912225514656575456385485641105997062394694933214541939294961849125320242873086830453791883668580030845996260609514979443992951788297189169560575979347924227063993462012269571305725763353565792500559536470788849734692007587757251687626541903733642174508336862570716106836670906183081562991490617075816434479842246460844048117203479487972476564335180301917217948582938135036013901328818432436835912566486813496328455954645151974327781642703180722804684371844875727609082944826921730360803200033832931731324220959812958912508918940489668052953226220225417536045057217866440783212992080232737445545649507109399471581222498128810742076703292340185301197286848548517611815865261253829170065520375926182308291716244190504081705224638490076245707088800858638442827106680468830461269857985760599783185948316539631924519264044627908019806699922012009227994157158316104389834767884692871919318767209586734691370588505852505663244417790573722079992657057067134192296100979563682083668669844236458837136673314533965748372246991138304092317692344268200982851368567944658868508688671561148893630718010570882933168333837234432144764863546022179146840919678477175095479927233135615674762028275807274720910553502692505244286074289174015000193185146277760196804347353099519826905586270537230338792364089579355699160031348744131161927349515005752792763598678759280991989425387579517311108173477144593500355485435144256166881180769289024772393909968704558874287726947078598705816872533715174966480489594295998013250380865630807035602071286416312120222248877004590810375792536970378036563119594594393504929090241020785801967397264899925227795035600772027741078374714480100509082991014411197466426310440668232436990685894840790698133411632053040810540625506225730844682989496118753900823894666917509132749811129935019004174024899199598138967049491998124007334974809160386649741880169286044093332822312545203396852354257345114869923917543382745320942488815764087026058683326694096833033077632518657306660718438875684017279868207964775306574138637113543873163068970212672100931923336672009376885554054905301256995374506581808264300579338584126285356259653533584107112135591725325118505025332370637722504232355956307641467479763081646398408992550233262806166722510914966361973320080316840071748763746327647978352092451729551610922400992670394615979518476792604069803627587677544415393876048364706174299968026130196263022107265266788204433312319341600189065140803401508213195168261718966870056791023762148924492364664859642250431611729046668433025173160199987365173861121546250112714446014019993299794920803751765244269839561017411983820973429597496609531530487225777523310285187284192673170784159557789696794922353593841340528668985958137522484653708299529096489327499232132458274409463163085207902031851357010983830564910831841883823783343110220615045210721880591722140428484330076131079784656177767792217867469882412247590276946067510635057861999890095224144838780329085026052180507502204369094387109065950121276628519263352965489349188036167293965894781687840556888966348629408351654837916077042489227802844098262738710549138609084561782526323727777671489325517138173410189212848436720159791127267711424187785550713046321100015205374472095592552343280251214618028219530074742196691336492550620022126390715503187852753084072933796452327081094054597375759877537085099290587624140014796856603274730922817207076265136072064360987468415202445944743306040545184257256499213187774468981581335163325353534272331974648783012444436128919282345683129229652873448551278825427708086580585092755992788750218023875611877613337930054620794356479938778316864065987979629014414366146108526042921669586067922325945154770183442076456369901411848983362089821635635361970452158692914028913844441914647186913884599252239803336471339853799230639533683645484423563688621663440381426555817051673467417056379696742006884759721350532201547663866467872400053183421069164491727370469700082289996999621138222005349588205717462355128778162459693203701633198901260200799776909767825377533984586038619131142368587419511015966309080270179854310195320869665324300314874703387512395564029190761975067851098099758314072354916273486500114446866144353049918906470791754533826455960271881941921649642708685213318621770129565155364098987217821789302645354764664324666165280810606110422546831128349131245178835791773977406611640476788912291351644549671389171120068377255504661369719997677859142152675564223290852926530608907348706845076726932153908296497267662912761643934248957581911726273619656612054201353226855160681471518112883957876345888602834115608688366583597758781702813324799527453514592103748768337083679850231823409259076327112957971160616556560356912277561167924543176578300712791930609165489744687162752032412488359011660040514779353317085973167144701426716532780366472021614098093002143105126177095997694776201947461684100025380169179011847933043828279323689946785026711079654871167213844378834361433884007602446491282136889262255878318787803800770540954981240427546875100941961433835848984757713260409556113583829769285648156241182095283338765632085734062730822725078728032324735829472197658753497110270740504107769787248060429283154969209265677922198507514863381311295703451742710625121447903982301268674072761646352015967179091601355297987120771096938003444144332563952872466513695172533778786763956711625527528656510977511138351459779582098824553506028807833875537677664091143224840825154340036774548627146883685324184902628639827807081790263898515193273314789049485427657693297060645716428048595744896542519951407129467873129576526138357677465665981592376288347308574582613791178862181367808880311695320625762173856518314559167371074231176773690771235242687372612870653729206309010098327330379570240932818394710725622991391464778876393996589045412428626685941213144697794441787392588917193007002503296969912032689167039998241165654360001016400267489267317417171031845400223947513304106781872870613959530608684616061497269732723175841525701207543301677823901226919279991943071861584460817991174302665946107653747676503658538420851370652661681463994857585432330225921357924503533569997791753076656071681985580144742272655961712427115231614328946484434765154714020530984494630303686146265173534461662896727186879852439902522950243306601483395469135825298068396049367022364771809325285893792215252630144145006292261298132442596482085681411366031691411321697816725304447314578076811642688311099294977639569632927498199046367111381856296666771713739640212224962032589436421706460280368031935792460330126161006635919309258763561907453817143947905296897685476756363400002971917028361164207444099377506166650204202519128941093709679759201159717351225413564270858179302460097493503974329076076946119736209108095589789671017706267119020754413293379341323284007131834698906640925040330169515623530082560650133993247906009600283025026534918785302481574758962238633375348231961655067576411012629211338438504412756290378711239369767681810424642483172148260050091788846799883327366720872905834155829876734469402460371027096946071641909758234055380222666850425116224796196648418458067132599694565704698708143188503665718037984306687428646315194452472702677081767264857502087170332850846959522991209174201462165768606704803162546789272120252256371640922389422585652795336183016639816123520113684174350154535182243988805606667633685617790184442152493697398619380249230106119922982874388263297649844410570148425190458272511704273616389435535221782263853756747505169940039446692328675472256720132739949293352778742282130064874020536223124787759965881701331997828843330225980582982163580257085846106452285958468076447688069373138478073003430025658117039077259853966497075636591704442358190715028010861195890856147800811116744050848488683630655092091534552109822635339017506247954258139086875182131964398803073194839378730118720066883323545106446946683339028627529146472962065338449748428049202856594658453652325351301393942011647576742056814213702045580941891429155592368418334511335179004157927784885131646070430759732677680026754748536105125250356213414267917165600402213729870322369787639567382119320966380443517706002044500860670525274756210447830599320003054367850831258397261152345780475563204626265495879491199538689333331988213175636480498631274595359191460717230158564068416571600263402343118450260706972682872544839788030903563309714356681248337814011214093492669933961636586278978849918660716449588282053985220305938029394920684759593747044984641971005394160100896026867042043303145896189223190832151237231329557875282355001801547632452531431247642422649734055376550806736042166045332231645177038327166711404715880930910985666059874369397338985707484435327334543899985893461773160148502924654333404183034270265382321263623422396953431827433626863786880967204808628146775187564598770689457301997047485202224695479397442400546412174915301443300287937785268941205716526034420515071495974591301975759470103425466573510803634983141192405281101960857339519898352165722767429668611156110065463998880398252768202030542777893363126554377611787057942151701781207032209327519464497472788632097133414696156774910596891848255438012058227088912672501933520756832899893833903301372028736635114475766073497527179795491370204167987730116591375934864800757084532375510765822293711102542895987081333505910534887547710795297902427909661541068891238184426037354694632588288062664298967714054981907627818754293761020382217393961284969146854150266282630005136121541855206766029121300054005796600161151883091341185887663785283941592460878594433391577640478788274754680461984325781966722697074075328001553252237189377954917230729325202144680799309453005261742028156803628318905277065104261507648376155519348756374211241488259853435156273768834319428972942003282705051431250214787047621636678623684399645857444023080889936052506170701121192492135382146165775041935710402570277465840850589440739237631411085988245819601822510408437464365630435825031256674787498985802205904964058965503240153223078441608962961745149863614044712984205140308184181118746585013818562197424396102389036258242121404562096956000883040299418199803036677750673142176513016536196340400434465934850358007594796612641180770932692127556423656828301098824740465254440805295866308023094884620026343701752448287898120202822869691343508467559946719254935065106725865869673265851676911084296128622123101175947591018095269090561793061456943583241117349835704093538455305459904430267615846215063089076270739058613486073106665900642231496594119221042499626699074504606878621566725641228602128876955611069321636173902214754025027511489135182837992574516632657335971671087091615863563883770365730687158511019518700198183490300118924673223896708325183090601037160876653663194117388176909829421253176696291649014357950869008349527015094043249630996587211001538342679294859607711327528140681529103065415975781801868955185319897154332521564773846980795892558024197561632091658441021906665806030053796640177670016020766298782646657575644160576454568467051033339428548894739732123533415767326504202977599646357617888797315740061579290064579570331873276516250461774847766657531849579189517374350707128194596800706124156356067771193792455346197334384467137062048543556532948259365630336563817604571680347158036698290927410485669741113956842122272990182080258084540647879724163294026059217952372106637464087971969683142485850177738725981539651629196248298030709140435408914911422934753740174456553741911766737787743676413958078967695441069048868875614505798899810842781939664904400641851635704012140825322973405525146348299083033066563993272022138516079208985026905451398429732616376107161611837052698062332269180584784903444192192280711210208970339170808669007820227127525310288377883144746829809094056332722461688303650466566183921332577138927543193731774301399690692469739276029633425372518698802300902593595364850580834667415270245875611178007661724112307960949031926364569353698948854906584428581510115218644159892897349687040395709785083921102868619587751827459186891250750954913432187802488545903084978537972145716585972710042009942399642122676320965255985722801401698624018689166441439632562395070137839531313958027892256192951182710718373625831121000148123143545001040467173076944424431448456429817574834189959995074267169330855238504753324356833725137719714661100686067720137929143121249000529072727226857247981532809721923191574701898980540717347208044105702781478584953948614010008414109324482032005703473712927802071385954154419123429220241847249908821113595870969571159574615592553428823700537121793299468312004594293270101785010834418869619411049425461093429339130067335210033539390945987354011432806906929401507049199520407743750824311098600727970025057548459145172593505540101384438388215159206582915738952156902025746901160147999968190453290028739118871637517110891259330298194170325691449514899221574233329563925545336871711957188947441254070208542186230363797037965593780194833701540987900587981195969471217306061792116811201365872631056337820551622132877822886700077822908647675102518228182006394554944225967868796794659911108583177303963496876440764012385762971089301750585046630966821088643016178579543532579936310113797673575904018539618931923583423238993683382678275030151385551946527930061867299144996854720792714482655906416751086063917089069087279817661037349913079862585529891526999032384489632943987709306559397446828612460058204193345879471569939463386342649510821439080739321571240573695480764819672503239445353446599743593202957467230114653879706509971000615745514384663121903973550063968329373652135314678420139525975028549634174251352044298796958208625306893566643817116078459195360150288593171902981101739732498238333687905085010723904389024422760461237336718032852056311934558885081977618710085346496243501890477125886066263373107706121927767466160753486932054117002550537153792753292491234936346848677665114313571531506864690604504586471390670543480757154840975969717666261403092502417268834829567608003852586740399793421024464220763506219429938654050437905074552540143962336515097482887603781611408199883350908754216950684823478183129032707002049537796809390580560348066604653279903990709511861919942241263568587210669211962636243322240948367104830584168668830041730536329488778060374430956928411944738385600727090611953896102381228926325453463147490424374885472986289220798132915580877842606817343123396260671314585980565445602449465554281621370333345696093340017080642554995794613654180035292540253489847889262610804995471347857230419480415445730240791353657619847574553622860814511291963609601357508606254194900292687673048052749343674931358148622389696560549537202677731629809886609580637319011237740620142117257401582117570899654055596196919609998980904185115965200495668452504942945643687129859066983778553062787360453414961797692582564236391775611541292099953848424958164099662332203542103795629472149862287664875108915822327209952581693210279751822121459811602209007373120608432681320183902156435466066230863795011201925137510853246757852719879776110498504393942324702885087156911663223063640114522454592135355304114392779150338201751246773376752211985060780519691186170361287117466042523921014531045757087217808179391405903946953659056322787421941978810314321044042599506366866897514807263385769380676832078976775949209942327622900325667896719893779155273204818170820667987433439794098127448094589524147896740286361548344700958813815688586725751628665797063892694661007792633225477482260298904406886407046969400631306640796256542534886747214498295569089373348104942329974320914192868008315352569025244910079160489390446997539763823528143236418452161858428715317282138612152335736408723928081134961549655754047747480997765811442296747149551549579320922104510022039452589002652904045512539705576218055388814889805478167270263621672383083213129064813496173699942913442838159148317768832136417797088702151722335864302816502805277618683134393321285972644247390051085472115395360230080699921356225385933070149382841866931656236882090128051898342781043999095746569378802847736298347704059308793098878735163407813605417021664269832761194083932174757703059698313847097492061052207222669399847107562503666262094357670273959911850108909628750006129400837758078381469418916334369613471093141241981423172119952976583390252109128827017572271869622596116726086681952577516225870441849066653560639387254149456035027339322838144817523414761496878824199919243602358021556984015254647893441468471497345850808015225908569103526386287605403664068521014425694722670992293474412545704451861096720310516356393140576568270630981228537636079070737285175754859239566060910371241131967415440403035802621912173225753816739885765768478021423008691816032703605467183646598980281769807749784665364125909427430309110289264114517033515394596653788258853134005503416365396864237857631021832728994485396517262531114713901176201234978557069820977023306814756123654147051025211573655334004857464271049660532389406441424972226659205075283056574677493829243516566060637787841834282572881180317381566840285147364620577573799818880403683475017239890608848209349908766435270447925369672845251979706445845750874283683376787172023440870159568847278375510683909611819648835132350364152679513036851989152503845577006298355269046156375564426726595339203004807901369979957620354964349007104664518301325004912705317286957242103148845459140713947279245922509318413046904149376625092852321929172220918201780534117133460889213241801297286061942316867774153038922523893171046828725974475855489483735449991899084081407511482511473736989583677913465576364078805432782061712526865667968361737283370743139328233012973633611413692154688362814747892503525865949357862661942764282009548000568212599253645363536346026433559054895810413518956441212438876208262747387171863651059637025287703801333659613682944320522773988562626393871714938713764764910651264695238517504486591255632480984176373835945933804710498113660367430608282698827968699604557595105066503411088998745928156847178150783453859140141290951057828771706850196311813901423894624087245665249222945838293446909274150631386467017261009377183567240767615317327418538354266500110135914571497965012189918549315641708126272869428488000722706348542935763569516029248996268274875944535972767138867365241608037722728000900983712148315672375968041089226558189034204667751182165451115050045690190018822715358825696871517607549831262386441666075581942234568826594177095909339089359523649730970867982145760976085919232408085674299512662093279728302605589504769719780705922309888086643289198444660669240992041353459346341726026365021979035942789702070528686247758648895880190365520948302272927446710142032820672494695899970054325501301119093133515204071115661630797586664217972713219118568181891613527075635013948799117214765041655443679851541822251770451745900937407906168132085300080526088112022048582040792922666702172959040538710671250416750369242347837336413118690939986815491115716875250649526248775020685263489184385573463902085934442901856584361773338552182599412933241885353375853631223824580275713476508807188366334861020676704451502273175455602271970608849599337031237511748639096277691878362141397326582346328517989915490099773561460780844595751874931171212869621366706045381463451138151027329932316508985693449752777734550915741742499512241406199870942826803765215239227404669321135959767009673803404160263799773420602563688383303771704493807052182230586342252175176826155284516374631700786860606537443379328277909474840435472667988234644887703588703589241882126098187561816789300303745398865827076856963925963832656308298256312724442722739237806353178562239023773487072769456191087809294365944276478831040696492540688308620119974200194264259248325847259625495628185550453773771908197755860408655657327874307734765224750709711075243567984749056885005448342784604885109455422152734408236752588124172840800292572924265246276597336890558456463759612927913278100527860458875348685706732430107584153789054971463424509895238155096820445799439322359959555989262419963751737103725365855214829431255755598606478486567985634861844916954233752631900857929027248839809388428183118802199338963790801200959090671553911829201076412075145913450933688066744079060478889613030808435355848395548834353963520337938109879830179805984532610248923962132663013565052793004914139010407496087864027513827189120814243363643613675025038774416092913600746677877764004323474792884633116166656707464968263857336391408658223077845964681510365328837045140118691159344379523268908132346089121466947864161943612608469187244124881443348673894572527740016229574227895554658675199305508170307792058979674084741019370091679882874366912793265060420505544359014337232891741787144634044750713002754284930148444608226819314107358532119783927411337184741160333066092583987624894276337513103653195955522527088026008150998738475902357151243312419142275964806131733455553462094897922682041317383348918390345309047016112837984151376879345190062454414910312777655624673626966954220714746982760289523284936681391145062267939368255540229984363529599736390802233625156920179847266965190069943703948542288723722808518371531737637665708898759320780817660328364773345202936451327919816852376129591998453409022465661785261627771975746055630393464466588855941218267765206639726963537449772185009001942692223451582163674284564605242701707522547942002302424798122258334455370879360004978172378967589045132269679884716281495545579777014245158299058565175575175132113048320188107802068721447459483247698396899133154432896991808531676078201325084843885011784125170901767701583183166370370264391492244075284730665852850304794714639071480147195578438587551686123760229527390223338503644120279660226334469164880787066342939293243835605119149038010870446716765174118129762228993755062841231100586455388738360722910136678358281296060743899792093907107032824543928145545914929689654286592652551802669605066897963652456405709306656486595361653436558259871251667012264550934024687617282194383632510954000307076159125640113990616966595618212353491679342324355147385373109377407998393859608217185548685650297516878172278563018905499369491868171865753812180185474041408406920092420424967337378694423446029067545407792117851157090391043182930886990800953062810336520916849305899377386323306450582844402706583947539636950112252174801987435070362886540204113660546879071833763748006533859236831176110113185094593531501807109840517655775482823060559144963140646160017231487094621133436617932043143589293896314295024118789797945464463178089478884528233821279329723809322975487233935400998580558403381906006101029985973050816982940084675522950692532577168150473418230102403979255990074028596308236188757303096928728414401438718578323100724798885087121149973997547529184635282605915630632503822754775806940699673321422654921105789387395908734165428316702811530281164141075980900076438315270683839876242284352673715731750834935961016779168089213920934199354605801747053148462740750480016670680902293048252504553350019715139129724968269608819242891648547088953458573418728588251429790578111211792541058714935457689563417855794124206715902259528549889289998374821140754121222988594214406378576196920214631263473749563479706743157656395735040064990519259246428310590230594938141665235187107334655681523838817726495064198714148734835459897106311084375681425477561986120595123256723512266656243605971767215224716856556004872111911183665888074389694191482931467322524995007107008637270668376036309833890643284764081887222173535361003390150506620390211818451420938567943752420472991191590483533218656650141538852082766600661464910555998273639855427735626925023102466236830554601143258131297264086840518203574029496064052479968435125367201070445958440325659518296802765602211376582248610836401525506395077019037223785659819369348103420389673915048685511750906839418692730261600126567108722384056909847926484115067076012844244611748635964367248854880888410377960242721766800715850927301431638719823347551406487170849726411315473037437627942499359154054689771702494014287927990630420174194201653277030091610183700278642916814675044458516129271918523294618332456840080205471171874267647585784773677867713350469405748025840791797544776689118526091899370263697975517406906720955891420456864483929875329150408391082297017179527537460898111873194670197202568612772905149801609167705213682953500738345235478615294817646592533371809311354510500219027089308058940075705921616153944022520477098585507938782607235664816525973941433155032140353552569210452120776357583862341523486336962027525491642516390249968948817231374854246536721910377200570741747537421166558316679281850803822089763875943853081753424826201623202685426575000510393908729296087137552669615006035499505369675982704877620251785027172009130990703996773484408352410365334775740745980402651527640306033080320575149492597972747953520738829182416263940904295413482521799219784822879234918068650664554562281583480914411557031170293601837726189835914989448934684392403460505990220418412929832006717500308945597903292919560915729747103118395497116203285231839869465470644715158104919594254550781130684505995348472452959865062214201095558586569556299859318547517522509517894675885676698373627969012677546159448228410527035248724101428732932005701769887121001792439761954351882284772211556231139983808286594262508630867930126323193879401220707468418753266532431781618070174126814584912603825339814152732863543296153094704833611018909391796662963820152551697811021794044803134530283758350850064266130033530320695274046620263002722175637352615070116359958895308749701885283363167040442230604237593949211285243925637757451708363941088040620531355255563191595547819822301848632128035014238092483876261473072775288704362795545704225724996802376333941989802923784164016415283784382348259278428907857526204658994948057440302554461794310656181201054463592879639344089157440062559648181536556119317077568556113559379390113197905871960388591111946753635639788746010034283544890095753403976514014961367226508346492170363994185851805472915875821680489782705720754803476098975386896076967253181077544797893204911655264125355448610566369205112653247857367521789384823294692939954217766672561274313542833212384239129073881440428359295904705142047364935899645476049427111884792939581184090920641150756016564663810729870450367757355119993902549741432883054626321445672487835798292217223779984965747943598405304201028430736680303694328592655002836955095426707203867294192347001743127555954101217447267381689122306094356616086528207819459301307323012474944624475288699013116261263467711969345277371572705499438183672151620023299176537140500639227407051517418282581967760235711302230321810043133009237936584478224895094960535218165943850021808842826169984190519644908148360806199941937702310600282874200654582689468155089154849358792500821564215506418817165845905375593201967314727146467060305488517868353581212396196080424475349215174247974375148848817660711034430414063474089163332616565470412513735741406791537997921969571978606234360664488947401880288341300951560104772745765948697818720325013889516136952661761005984759856638685533220554679512470933525304632852154944761450529342105969377050186736933120775173976672551950096886572938429146763922927958278016961483874273549631208101455560340839515706273080256030728302652239390078167503487505963797065273210186806683138209877910862813470896716579277340560155656833111397953815137054124580560770431467789231586064467124249592363093607970343735077447450627232200713420507526075416681550238411282030162580866057485824736940387915771944027862826708287006581019993897279440751795777435188006073585923465022001879958364850862559585675724293910122186429029268496232138784253996133693751610870959442642066324525670185916497527458790445766518554924787750149148417273856504971329071383112949780211923989338737801483711713997564348522437939447433976475340546315939551155268644134551223011539795035091568077586861920508339523036009968658351247054685067336311326583808674174045950429394501674887810997186922421417410557009413423573409554294480404983871952489256743375717391383159943065447183384185008885621056448276532490289199518159159581405662508626606128551332455132888329155914571222093552309256168934007336398791582044842323170724596227114282741256641820940418716938216193375135345021424968058026075767121831665609617439644391613358593080309650072954867352808756325411728324331436905253998292337200487195560137773022158719202840366113374391150503545536500694708237921966112810148242468927171131052814152159349114366330287597430899983649381936371581874084493898356155361978805381170242289527860744539047031027008080891214790146106358890648348615473074170166167538038142947722483959501291080511567139946468046877175038478189797233070718924881207090344992506235557974034255134292457868313411640209020764942376626304914617948237955844655330209466205012458364255212855289385804619818503514862143733354867824111968117174217657772881932151464368969531302568035129288878665886241233599397072794774050533085615931160975932591022384134324500472167214840953491578679187491380588375853195314619581812972611097114499204348640143238480833864481844059686812877129657735520857693997609675194869226495788604231970761027509351167960335964915246413624355771435642499809919098627483281864317693803109983693821995910105203756422778224340898029350694892282746173260944561520407183691477112684724747720072424633708407935361705593666013313271027494142176999472002294053517104691469703094576327861388587906356472211115045904564051361686793847474850337151617553866483410158613213983781066839832224059938689006902460956873131139638157458595081509778545561912058945599700260105402993524753698933123887238144689252090341058674174926330642104828305243183966462600382958271085932549411692927442551777124238119927388113763541961676589955150161001340541960802948013060664091541002337251345382666639757247403111801113089284531574003275771214303325512227353647179924207615441447839000804137958189378132106629869218109524521633256101424496463915231429776383451773414197430931961382830201687745914256698846277298170367411928514604945583594853566811153507864079362179984563585756607191874953627305639606067999543788839832843739764003612429333523563833272748076328851663947272634511280007009617701364813388822792526134511099514236979095519360681113837346503771417235089706806668657611755836728195638183932818129748737763873852482175514567215875336488315750688217585098407693267544804041580631571300247836354346212615655767420159997703137873053444261884445610871918537271515872061450967133064559537497765679438293417376882820303014020484501946012969663042691008967073700994694538199753793324883228258130225639985623824287600754627737098151486558240441644150656011599237993718115627524873143965993999054013357558660633159517463223811744025350541693448464461333734859746487781507171759115736258685798214586720076032105196641497730007020411805616243154236026993325747846405605624652653952097996764874617556487496441189311943434194889114682500293891726591153728570651492421156735194090143294175316459533676774451567569242882811905742059490382552331918317698492367741069074155756313812678104867835913982843739904672523156624033279076103057444343152817271511450449307111941145533030874259376376388062685540755075733733648181597388496707593573365546475878233130219394878797043281362398817148501556372285663792966193635546602012056271420690777984947056619361000563871675812410320739787731164154635569550828587949288130199720993877879198268807684396910038970611272062882689703480849039646103884634289444839140171289222685006111048813898359782134851778463009390273400397293581496966878364969034268689237817692554192855580751240677701351981481336790377708697651002983904481033160784460909023016700549945432954823718719011909431150412225065304141825238688490713562500796118694709480212717413288085891097893098873844299787056567687883301358119320818374033762510115304752475500139985066527773663749946767787647249575001368237597527337844392760725863509974700474111909133350390669098562267452601075446979887418612591370966521995074922718010879629765360076209104181660040302225463438791947243441567855775354036681424018310834077105385132478543148260857363318811462208403066953134608408262711077824354290893908013618890848479333385980416288968448473980015816515653158429365323116487565826989721912154904919861769254551957891818966369305257309486600443241435939915236092428207469692042973377223905496884845805199267958478612844301321851578194296507452297353512087278828345828359317509942264213974307550066138111457672633366162060466021865836191529479266393861834675980169300590556643113887496733676883444939855546803843842021862649882627978956261278577079871534253864353822527273085414562727317527666859215401251582013231010876619490302483224123985596018720153500109844568950787015705138975084972024237879903482180859954771904587989613150123274587513033338544121598147518631366585727882794086817144725874279972942105279769608926960656697016666450971019049178007237247602730529539186418514461313705994954716328951865133725718369092259033413352493191069688029583600694274462961194715172461358725484856407160135902067436441163585006361968592988972353417685949596170636126751910419264513598295109427158413010881434392314432721320658120567661234982201040718454577079862647646716375843342965546152947458116321926349296612365628716622310454265987078110674669218449563194679581737142788180903175140730473518476552532409984171556249360344362497452250628615396364094118550231475985818812616414660467709705701663829461724268810363164722025514943626773159473804859546168426147894581190000139546848070854608962378354132641255879026759009834100775599088642778337458619786731467960497197343562399335130086639557076146121462445854539664551239629146603766036880307546218831162986286119936537640776162854790497058482053375175162986434565270532396160540197788468558773180277141445380537400673713782628593103043354274169699853775226210677666365547683572327382240188863665202500121884227354362673365383245669819880614162423656808306206168079511543589942752452577193947096386026848329197323949631398465395696900779468294057284415002299315218948829525908734310619683616694097011938157622469229777475780918930104009873087492711107579829205176659048558326388514756889296386811394099092736675013712531133749363823053489829681921389444574704339522942417302288040507041386412964011903403926900735391075427267613572856615951337370292974659545183286616419894086356849550290555637601664977547591515649273099645720480056729067687675111509187292810952861710815884345850543290675270177958734446989633089334313254835311913583409145317905664494333422088245010113859632215661795545913214049375005134743720281791287268688684739448330260830094100629633165936525913487436460175965480362789123678879745893658025613482327078862908705170103329133299981460129852445730662355403907616310899791507426657590599917468512767401038134756286879402375081396340961421268727951152165566291235200947106801972242485216212157330519542972777468047483639071547359619067097777407553673868639797293008182263317958931115855823090451922704468877125521721275683367961746700083020204711579758294575724363664644723632217817770126422456727264355809800470519329398921556286171688873242330715066470614514504295988931351499901886143028808082134902943158540044686910653594757711331283352640311166539503057254992914504415397540486816170252044768361136756698517123503970964571131089284497019021769961387457935099816162517469817905826096154774762937535854315803935996721867249870454330319743629370184577659938581255919324520951820550337153993422606055615926235193712152303944059049221397698026458413595340006970927808993663967736319157698303971790247715715975763994233121284542674055294381036576616282678845502557677696405082916275889258421460770482355400665948270474407343425836414722918074076470120015115978468027678470408287270386544886658557144268900946448448501714861010436739073159964490196059504260921952667035011665890445137685873337315398121597075135669076238088833279386048559221366015579368719070412384561828102939590710062584745133064904975848734378314064164779531013030851398248734955613238557283151464513563229699717008487825294996230536564845196912841773752116463923035484003042782239679102928082953628995111937229215033629301619319418939910987960886769755210261846817885048586599566938105013037475818987024209303445735502629727107508926123356080611679874751214895447468035536495032513266943861432062115488885867449782651095114882117384187071257021739983173773931586161911449150649972997109494745540078452109917838100461144865906116548071837449945249732338652037797881974061980536351448854313346179781893186806565004821005783034159833881224650229575488565365796071572787602065476004257765914167752115990298590464935561017775963009655898798407741742925872913513136038593824533648602616978467023179732822765590413537648542196407265256714047115383369833814950504936601242678139639428699948744079975621825090228730176224516271346452768435282312593026687072808556117582094458137385386864136008381703078264117468471803392936495369552564104746954695837379553199715783161753972908537103705894019463723292565641606596036309191299761845977850857418859872201615569024297841685558874772289846928744903505188939868194687904805758568824439416493926631556127512292797783887268733054987890273953256462952323789972999086986634062510785122900790500415184905926370802129241578614584464877317156403877164789105999766221450259137911228832027459146631639730550186853027758718531863301975087727943809097431895979644475759732451057394284898993743536615317326405240956706709969771103118612136162495680679818683627860090618973965887841913099264573023708792016868633405674588602599733048334145202146116295851286285575632929117747178577477978651676240039178231940461525489282822184683783187384261453919987348193452777059925488170855461056580249024000381605691531204267260366958329485632550478654313151530553836166675310726695224070686041078756646915493609638229887341317787771773252719169102885480547269346263418820828412375283738894497812331772584427653136904854917972157563445957492751421524892936923948317830225276834570402145033492783150361746818147028354906952706049893591006269347704934440011218273706233252227653617526037709291841155611569955145196996119849231304904152855584199000685867455168885578485960437265048342219113756541211423543621726881198900434974283692171825651152717473203951663825749060276750942896576537937378716025323873333265333808985683556774934045639100447994606207951946167811035645134439647812570348498969104891715318095552102522821215224395571622046860699157448354679637588288458296298464194398802376484677977689048327629620227864080662874506202578867559400784544707386519683035644854437533112286510575215058623926652115724359159765645093170963412986534612102102374127469544449847403429605732904496327910218338558067806689914036735170167451435458355995978742765366342575540115850384631964333190103674571620385056334840152964109993932016852960182167753597067116013418277614659153912647247314340547796515763530673862007596005298085445269277635004036570051906909573124760638725690676764471184304547759436489288465548340842463839340438089241346754011515779451084786230984404641246432323433827883946088634955634341644524381109829808621966797494667717805584339996886964931504483542169359002063664036492696300366059924506004641652310065879702416192223764476086333711845081889385343661936273603092201373625745032433714269324568210401285497980108233255023924105264533208694284309615450509389771412695164886452744334374913532748318308165268167344818178566371512714375423843740447966021126253375447204117059174333472842821818066339739709045747899652111331888819896177953896700107400378012356644813162858906001526799302398018866210269317712277723419080752824503306820903838763131904547714674654582996520315465845688863230711094393640675604108401833420622227389983010967048536382374756563663259097065173697145289539206040562146104439710571650103025123277337760780806677262249895559450292743240781751532167216498212929810160527734722090914336253009048250684015938607138543282855952583975940420071175948338232722181147462804677052895985298762157106624681770967777783478693450594321598875726403271965010585147523288900009354391355439263413815322790856157197150307400606907317804370726416243103807776176950436894753380719907378597815700783992293259329988066520929463542645600066482062407249240812088693663373755439499099138354070895504026882363845239947796842034560901513108762271404649770585183249429450809218432210448677820702210491190043422295283712608382077999394069407030221075215314924616186352866076172086532020337971412391964287565012712398831658662171887970767726747269991585553990836034469260996200914235686156070342481999642823442193442759566222447228755847088811431170198564534863998638988639919194579652592450074988705944802986247244196024504378068307019581793710467633995989656199061071920807103418105516405234999405042665341363729921122719018507768816787781114726299498123608925328153786871789526643023767809589873763060107243873498900285606495156726905284866013456719450196014255275517197096574383127339394319350867167297788423323102228048933680202115564048427461258469872319092467026568480221617610354526333394252049394142939048143097459192033300144323591283736123673421884112774065526406945980220805191738534244056624730183439153654640238674601631536280108075728360917698346972483792504345530273770771599049951148490012469407476450551943895148963184300104272513802414493950604535072176796110281251233481178030383067556488048923521486808929988478154421595431537991097651263302717215128976780543653484568227788695856921232593368414190970203011211391383368295386940460678969555536081185279752168750932764413146889429933308048578500676803167795819819162009074028615409494113129823304789463150561272187538410044479625236903434677203793271803655004600863926365763534883112698500608323339491978838597581185747408987094487570850771274166399116355488159754051488951954697074462004590800453093549594806100366249984220130689244217665683763262486854987338906884890438264806308424170722132246119929150348701665756752533107443717493327209081241151531557689449302542581739861713687314259168770690944341054978840623561601127630991493965016201370502394280615867057083572461093446161672991328275442224847050635780857027043541355273521120029263350231582904739028625507777794279061375206719073421732579586207576406902100569231017036800791856622943636752215278831780648065998528799901593165257190577719396610131036780680924246844567115139239210335432595002621385239358803580858549038178203288780121199193826264909599335400379439206476641796709611356315411146763679289559722042679509434070362402944130234326540451232502403131091919529061461234780829411580648775125069635316259699010843560855698936935714361936820412148403832826668059959300468670465299535168451439393563295470068104028881906639631082062226075573921420117997508167011190654393365777603184742622921840179386390279972514781730305257261192283045996497729195331042454085663317185151249649483134937101787625839090495587457881019603938582600951852624339349067124012987808241333307471851855372735558589157573361043223626598303469992046618813302994192396623049128391943984177398150501588830088383717254865696163933117436998819077877228059369738174761838455919019178615489401246941523357161259523935948959300590444360960337026078431524050887366259392875843942435422168967279192980245657121673015058333114134069219676690589514841652476251854645824165978839632655543819634101143570968331194036630907814667240822280183343929333777611788664168885408684088638296827079726982716796047537018767573121335422462050629277685469168036676334282500472166455297275094831638991420113627818833901025073843304787691116736538886519861205961892080273530051991506859003172420282203731908728727110746940846537617348664657365985285851206989549843366642197358695265245837420741451260764934513630447051031607237640676534369959425172662547148831806697564572633874456137335317974134397251854341923269687620799880105123614069660515924108489342889721862443350823809277969341013199282925050708329152970093363991381533215972104459989068574693564489369530769800254396442488553325507078566793074931864138570314261827270010338780036971534244179762098694624719556504359268876457733892413292584361994813471396067101579690330520437853557769993582400507645930159204149899550224041229074629506083432469652258165598433182901690536529997736753996832460885000949725261108576784324289632166981851143194312486427938630384434452947019870411631143621334572174790586693285399874436507776969788201545149133015102852797828666168232800109729276040284834572242682111757112145778562522673046402114503939904039643801528748572239557976123717668192734300430210508153761265985871996462346009291828668020549129023492494447706982982566446335668802692345709307451110864198050335399243944565772352592456978489971293932994045359453688317864855862864719247883784144163491412261252185974340713056344610798735168615775951671245024452652073514529971803097077549929820539885588171790999941561266047916535281800905839983011472792439591878761782823333539801282563320436393345163385127457192039585056742984669430185307785762976221027674103082659411854265439401126203455703318328872689641727161761993441590022777318952998375590828363581626952026441512071158371868863936838595635969583292081876820849628332766470827339701490670369420056580399619942505776231034591616994206782434766512178215606128414555591280304127281800299845794479699213424232157156306057042430838271643755238979975104195300612324169888052355358256046150412759232906287123143873660312172474825924527669443541611059384321838499116468348422270256191434623175021934010325308551112144075499185392718760811764500571203807651619386031099263015999006476759360115245385346639841276020980911803403019223399515755295987945652610536476972950823402322115844907242729031984216940236592570510577571479746200542764030716011158962359106915561700611599147898100073264203673086491942503171852903320664833897674034335346349791231266095079003075388206415879684654198168818106077380055347280079131988310432956886481466293427886081949774971814483971234796555327600595365248846033565100486345305770918329412743665490313778330234256946285434869578370232448076414325502082924874196425801654828670438562099583566510542471618961191646856327759827067217748675313972890942794786238314313356002456946145300823893932849411227457984454027059222775653709442408416954723745775155167335288827532171251373708894171864328832167658245864560074011651235772720048313768160116433762709963452149621015339320603180257975272187835773045088403257087433994327794385129103770693923845729874285990766181874336482128630425580442625787888908887220235873603276240624056026153667380016628642189918759583659717263971026785230814266849706225236887121896257715350646644484996192327452953584504938536461292869712131149990769506258652236197473407967777577652307974419706216491309979290234192550160088982963293849443296604121970683306284418928740116586061332862734070183685540510217598552002905367385843660069619351428103287546968696338215720501181822420688785721850892021107784263542613347811857958488087504727265897696682311946471674898952420358660192407043089137066966304851575531329457348624963575395215696837907836432578644538852989622972587519218217615219992984206582575065507541131606440124716480126510419076647225300851895802914113530928141710448670197194636770700222976478319961068840136110587750380618184658035154709623144373486845714261436529189916708684703194301184491070514935005867848347989825612065835731527342677171124158043254797709125236265136020107440636766025210442481255021557648495241878070658921756400498702354525908035500426272299754236095174686142283616820463277797433242240293293074233743939655566591310984801448860198811826997009765139890222543295717996545642344000112639699860042968910632695314107401549477413918635254792549044548706888988429711360020560588863045817827960881620432137756491568954467517064104013532756740213781606515744913278675741596435612895421521883045532201671309029560520149392441403675334988705893448394618424148959777084383681841431305144103410712954934245759889776216350743969869614380349431029969669696881905178755698515474200495082736712491362430795309860549243627150028071082080329422722909964647627542288560701045467047789805716173745585074313271245509289748971104379459150264788981957043688376414120466276043322734851756840566867650821303705244411383927505824452754814663542525828108922949865937285133954092562043097760277130302603783104304120073600775836043128201684652000701721368441175855384943832718157603060839673103004754654519988284085674134814058812158828797809197108476446772512230911385691003027601298797229722783890970271926865609443124102449725191700300962754611832423982659203606243405075846471721250662775458184539258344030947184875080021824412861644164605261412504660701927999219441802572427138095179001306660548480216670610901313905194082650369255913998094954527814461670749308067453335787682558923451603303826914706652298114989015193913392764141071189149766347061022901728040436308797209270603476000807671631197234973603014784998725603045827769239751098891064206544086854167419568088434086823500149699328283127891419652342004847432879498111128629854153827931926273621128412635685359010215830064116555671616655056944686604105039791054057997985360917491468009779128909445053141773994142090787344903162485584221884210368176443001187249667022253717294145261561899738095391674011022868964780018067975705871900209096775646895325729451228334550076028884752714722479716833728260842997570156872949067476236132367693440076947671520154916804609106019990590828247858921818010061573562736372671794934026545406472326666590488358857866011709574064308519586796024463712429500884846357799695677183294941754779973559109343048647901824025388818919939438365369811040852682440072167924674536991067182338484812159931956628420248606874855597656897840770520839804129180386216341624173189705495543263419099470620034437239354467890097018378059479026434966618986450501124324944328720509060280214404001750361782218587705123323832815847283312485450384682436576186717424822244170174818170825298865194406264509173025608208445190746874819497869423235192738312263629502741068554484243728198072496846938012273669184491969008520828649331015785678019737229678231532340561267117922834914563347454322473828336739546807809707425419596581838304901556052240415113770543333337359776543474544866590559873329380131420759384501400432007846958385936056098126647248324239712329010950016051319729764459479661288454032592604205311759480645111168916269824285818628679870057993880099508340262784280295481123125627140301482348929695856082956528201034019814900120289156778038914676150851638392121102928949684596473453869393354825005647599225816062972264367522841015019318211829542993542061514602747221275969158081425240598370251598774375338054534200861156876035359382800552360036704601568219725048126058108776630164166019973900211814219525163777105115661784767521588414097801457354150790366224844632901607795478489767144105032080820771344309329804446841003318606137106554119446921463685504004437183669359839699609245594064103415672478321759115646727768418341122054605377373504338481027286909670814668797411657966370573481274798064622432449808416728360929834447882450411690741489293594306468294457693489667726891852714020239367399816316186522326492088232374326500656768415417620834207418199184793855753957303530334726698304677861283537528266821633786213445433984276182755407695969751652059035589897681541774939264787567421198071483430231196555566834642257002735452736647016363982592792648021749692239464268427525059140389658596965005849679806951924780763619441775057927816269343289258847945232250509919716612561321220750229667527270377971795503520541793325099124600973986429444423664480510260997413512095411408722729684206396781659203813534841961080472662575210115177592917981095453377069458484489746190430456344657542779478276542625567133811411895063498763777985056970520680421280223528536849035502522849667652348903540457108359166577525845696128009194396438339931369549222220243595414595963206048648443153490954130282507205098394343160867793498798674312547330105950643345435192309062547224150968150113190646058349418694635009418818935930842015315049388108373209566840074146186223079240947843767235427742328517707851523935931978872564406962004104874026527310757246734449909664801152987150516372359931064678805752233208103474206613755265406724047231289404978662967912111805364139468036210224432075666939408953736244905178479367725239816847482537349566670224620765190530581498634821133993487451614499507886638116316616591800091527142090214179570413692788922739074639775161844733914874108755227907058945454446606265844515423878490957654901119851097324103685851911751826920197755684141179779272670719929931382431183121070146197411247918350720105866995480160288902946032238574634938741620071363347407430081933097265590552859139369706524692825797448459852133456688945048210886344972042251390546055442223930951210904468569363214679131562171492764707061231077674834879534437866886665760533720219791926539515987858076786127239004820264872824615563678356218598841906024562391587228019893523955913566353923426203593517643529583218094109581151437501388684286474554726329593765791274625547015935291949131826911782937530308823819205965705208794464135089352168682963296634074934947733375376172824299484220600757716182545522837854619063023606197066188398530091859075688896368802501589120086775678934056197709951279421682633172519465616365340809106243494508143703777871359201486566914200068628830674640911010410458789407774296563550769210560909197896281227933472550389134799491417088331654367260179888961330899729636590851829244356961070245517735701811498760703497800036952159103461797487473582202014835065944680593144806848073403801834476253676229734225241873922415820158956405106630500460035189667725040339788588481371742575182083273493659219900533443472982539064887882637435722074357168809941008028068282159163967691706449286446648641145498093667183449868128865447706217479786851401368877620633789564714918843652590760216531487515529396164828088845446665169133059428516229246676654321186084663160952843801016889493450869122016874217075779560597908539085031821786267822320782155702518447617517165938360205123837366935175400893180321132016083055372359051856712698307434478658994111419935394116650046471670428620800834553339378668635013567445071638090799698838135367305230883395567524004072164645620759320562892460632712315541030721555490018548548134965181893217108415038093804090936754161353044151547320444357369413204369204658392459868807749607308093607910634880337489629640394067014702333643044240838874659652915266438745168710353189817053804719582073791329610205679381062370995496673513149353340384039898960197650306208394256383146995095206141495821394815667930746168451939631938562892220252465055964873074524489420958326095804569221113891006543943850760676949017256217017567860744488221147832031300704802653204770455525191744855986671074993328485256407293299422042390474143605002816486554677275185265223633497983150364143924755750903463651695624687528089048118288914638321955675498523484243230467214925463893775273581505642644942815333329569660179671830131918638234767505760379622467726504180465113242862977529034580449376346977000895771329830533694109390103944234505230760561270633366793712500629861082149450391117371187352315941351329940259071873427823193753699338199438201448286820973083973223331858217244821319912231529537595423559487099659196390078743063187321617301673266401578380702455219068048487750771471578015284177874399741201007919317480934431603504093816961174739657052296159571755095822390570532407790296434519172038865842663234014885743602706669915270712360621406410214372214289142925379412203208974650264871026090082689160269875062736389868300587332383290171467322171653840030102058750511088134415956091457898014448127421560272180097357738570051482768043006486301299425553086004898490848778173425887132041215125950477534619433876229277597574595648439059031664461328926870225437812330700078757515653275717080170135302758892829713279061617092819847122617511178282209353917643502942058115615091504181552038152472083516645449265443339530496621859967776290581722272562758652360257569661193021838660668128062875728911396216622608988542135012277535835139196525204076558533439688140210096527980401084689224305114394853566985223912536403389152003490404089301621484167826223943710547078020000495414460346640113419497013179780579377490390902762042231768407134585365308568699715557343993841626231019857012656306753939726499586213100543740362028689570975864933960943656772114893068249641601771797813605390388508794002166014085016906184525141383576210213150137802435819542417501556001922456426182761324416783866136115457949855301748545218239264072887444228366258179272865611013414861907809343311773953255182168798497676209099993547132274969436182566800401614410942573827455645271711769502373648553068406439567292861002756830185680843489042804375484239967239080989856906043021520231216656490724138559500463168144627498132367612967545772935836530351766876433765310677460301309516400092077390537395954557837358908201073717235408902089864645085559475650829225930093995541499896851967695552920609906610735085043050019417335012459953477076946357272133693685382248389481701895892841979447068671370901906308081103860327109447192360715607749114060254130408466151307788041076649573754940752573109352333684589637673187487329302003236003276336926127078504728507794400489386953868218681438103425973331692979905327218045046684132348862252587758316484171483602400787848202171825564805561761224820404539855007404454067383026383771818171518619367457142966147759401647949181441020515903545892405280908160554129074589619018352944839708580717322494906688965682466766340619715441563233299185505898722546371554108322620440602760116393701749384043576219766403394200088861013027633036800396251844615613281630974912810677825960595080284059992443076513029080182339796242513926170366732393199952951116243176497169423490236652824591503865426581901182320059423469885501271128430138690372115302802477052800243340605347121925972885114948976266422477152267897800102249211248000328968345697681893637668869513882146814412811991234192144533953926565860635925864819266738369559505450492434194862447953373501477263238113457426060579100029053490513361652189291766594369430562818590710511858535298129279890414690503647432034288933189115533766915099709540104259988162302091442232828908636179723813963983836366672974328537579370059453269516473685205244582427627934433945437450083130706112420912734897669474808569210857214663564446410081091371811966580361989547129812491785728425916213463321896921616165274874252316604110460159659719040016833980674056347916944734567314822979579499783688711389341912650029302008159391148488477637323623436615136381203396468534342237649592587403228376973732420716039969984535935851590640914909984148686022789473242300692444911041368355056761279263101623754086665225832520693545120107069067210032004826347835746188436969460084300528035460506383382348908789250750437975904676159413726087440174103794514192400752713008932944381940910908395403184988052751660701815191923911793828231182354597144447779699533623829329395203093746302337768466921540780495092348334641810142356196516233590581893646372005799287316958549181796613596541678617414335225607650748930716379663112823956105348891169619835574942872467056347591065698129134538913952774747992455139079960085042042406052617031303937306532245063738610727922121760117723496579712963690494605049406466766048977333519308604133275054778986877905334482511597406970954800200220593162111468104413326388272191584335347978861619594236175630509547062864631601016661709535117996434353072493313595107981531865120810106936462875397666100796203848241887489591421877687282577281947028511380489751989579115509313461474914583844126146766378493899480564834706556319185170968780440660778554049007525590731992082939308821239209816371152688099515951239588411752975082074515373248643937673019321885408638129257635113042547918129163129724975214821109962304774776653408963677945474159114731990064478950130442482629007446645358804383651295989709701866575105371249009572970206094134743957550760225442965973093540028409883178588059973114846274876440586269815806392529141537704499704351361679328502591557932860643464474561687915981116911026537031020707844584121533394771515126964397616085111974985795818986303991704705227952290418399018197689987804160309606083573048859459456969660421759915537714792760820504435947769779610736575294195416170163225345175191909157036349327569081180025893914471637390990524507810265158597864170276261993672374906280810535770515623042384225792469150550325830158725531528753850084470746512304280187520968415254121586415343002555534958898150109695483822158288936963861598826521422783492288946809575778976570934831993146268860216786507860964955924690334811839992344196856987696946112386601214960205710654530871381923193955967238763795846547410849832046901745308947308517491062986244872823778520180262115105180454910668701921677258322371297970726593626789396193689374089620875050047795764764893239626607592279071029891548994775118750773859118398183203598898708487122689176256781432058166212107152739523563177067697922189638637779892480713683398438599332572083559482207226198331600544182161636128516024362695599333554427867012025188394485864675763440277487724721567199803100071797217840584887626763940369632104391598023274578846545322467312168184363480581920697643089894489064871837125106958812966044540412650336021121433928286114043720558902586566070359530632835364641453869243595121217869234185212358018837157736655963478728323443671817019309537016866581312462488287269356809510685179020583145506347814699646548943030452091422140882626420864328342423788636967168051069806633260923669189803754542855749619559121117185452162914590270322349696505635060924445575468863443659210166808289757558585423475579419447664408102706376654467189598689511666028529121805952603498477384436707096955236608063181693182555164788238490568098113778432175787576524136856770732512725509016540483236401341384585455904173374325923772135095831365457632703424746722781198646814417885358671063992583203660403352925771477493447313208629256756061494355657918919233981950642522965480636435150620041529988179498329002376838610037393420293153395407409596502329267664257201299462178240997975147638458807892365433091575228293135863699275960386597576996762101741100959526561454183521132768090944587739841173228133483148476311114212239803645662661514236271991350787953252192677862655226789743972862665289909729724667886884829831667719265269352756351913474250937884610485896057205794946881401937215570920990259327590695576433581321689876551177299712752481781315741725200732088500033379200719386402175777163114883673905248587104069857505622583978638865810065265300871241381824205250790992268010475494105692056716617390495358389938165272349055437527290901607573863611899384597228107291701643815374585766776831298089011826860695113570420970308659007742489442609231281128815541808833379046255478967859644205898144870995516747729654291435492746752733635229347614037146520543902600584503224584607028042763492201907889693148572498531204687028344484868316790056609728617191351640270662164720245041347405980082077371130676373521666440530169027466651597046549991385503689573013473773924342175964730358523477969161283282881672005402982234423395818507426417973561380989648007665033661465681026631359357263613129390755162538991270313295291512761229543221068317333662322280143918907091714008467030332084874446947253643823381894820677711948420108751784689565197531932589966225968985499190881109829254436786355424508340577638823447842328256878950256226590271952473629488889744475678508490053334603154068668821929301563659336988549591865689105151149878109831457708683071761015378246677164452886350698513710958722161759535188514602029867051662885343428359409599523888225434585621126394859826746405652292656210702872595372351706499045147038357371254137196249345197941237207061468576388343572213324725184330797863277537253679323787046376545838244120022969979498263030661731393372404166350294638652237797622133428887629984103410278544425881427320572720351423176668800040823132849466046194364130374596524068099583469687695477101475422242726247382367255685200822564085173272358236905184396419628049420325279104276567592184601213880347966970859883394875783144154745802762959608991465710948758432812481398729176310746939440763646863097940295638958422802291065454683754523116163799546325359574961823366030672889576070765840168827813196756556861286767229249388076714116203279205574039719384701004447105494852263117275228425972273848472075248702971268514476086610514875111971148316664846229742971365411092782045185227891400879956935442998011368492783202860574428008604081857280934907051521140029883590356806868348580532623434263702389779766331583840622220945597520884137869801115094919227329357516693403570066531370518794159005099086681896724318070116477739897768413734674364844027739746481849749072485494158505443520342062171012777052065470954278534878669591965469312170332571176697669717561983970815295888714631839604264048307544570581354232136642476034743354228574560152610402202870572242635642512083695219489164754959985475899843358682451730498991928422317037405788315403261837850021311601269905623087708684227118628752541780092070329869707919071352947078032894189430435902565612970868432870693039302596820183835956038189442226706055908927809262563846678669359168258961612230036084595598763057268369195504901122065655222422616482895615690765827662064376873741310152681321143471624029397630626241760448116843998339246639700394055366851859823402136985660811904653015919586087228186019134485603167271501453847826151222880249391167695736200375592125568147367750935091722388051028200807100024049091627597790945202362334938063832797133595259628729648890676849213347780381901396454703843638609663590128830503785563327687118359078048975460979185761871597590147623877271316309326297703728293597756370236300848284153403520070315476720558162600048654921173624341710026522950021963784489375768047691432795899304810760300873573070892577709818047996550171954983134810918613537603479254839516404412775795248558113712456266887767123595363313870578074737087368053924941226808156437378034176683654121529543907371619747025653184212420726549615553576687772635763875657278848549845603445347498480538575356935525488223862368184770065677417230470247210957554210101105702331766305495924920797690842910631863394039096584423620172963533162745333302338976138460542566428442525560572923003349026282749210841409433387138620639488996698595428874271836139212388357746915987146758587952050460087908450852258950939353461343291553071364079744594199337873278037213226119902921446957011353675889326387799718391627086407558778653699187593163002532298386590538321915093245617677823981406950541513731871545379708006990388138687551255607884715380850219708192077979264144728656678789954725714335631798041429558501011712383895795906051377745760021979936480563948882877697994024220043615729463423276764714959804818164058298342415995099627551396794977831793646796040632726655957082099575553589206552641638236475222414933316901932249901858924672062060628630918342441157496927619425369059499095119155800418832043572388266096718013748178514504982696471614188710656006826756030206641470904606892640386382194462534577339944359994183650636195006410752448465711397016791765452849709133674476014543582949507731867688426480599103483158721851168633831183539967112676382508233456772843310099395924017548959695349532150095049759702798388336110247381655165299964381546382028149093889866048798179614106844044118663236392694686167710748021508005706773821175599699408892592737907882209415721593537288895441619223904154274654497904963281845205925876792941134205522576161231235012189811183528347738084123557604279180085674428078578620161404504796313883253971692293380778882972997878007234596436246474744617093355915244423154227433048765692769636413407196105869740515346040804912467051227609451103593827118169269498808538110707183491508820701728840366280460277278714987391436750200095870869852495650688722039984993472741260890604282136100411341391389030499448663825209853716018720912414685685264838357751884621530541329931143068982814773540111372855064229748131792762527413160933016215374220673455394607443627669254688619908325281438074587532599236081627152229847120368873191986365231491537923887689754830643897343123978295142166773860368175171257366369151406689873727099588604819988813132929882383523638370396571852078988717565038955611807656760761177264161185292797124428400515933288864765869895647079131758622982287804486629860829060079372022469686741046799846981185606778923719170809513500659197384053667203734814486445592144323942694938558788397648083228604883915063203946187170928459162642563177808701393309920345419627684206827679443417757829304168621012064461167372327046302206579764313893812299783746185903393082544809140702072719348712433159844171135614950281154217001296050810375265628227391638994584417138054977792524824248194469133844915594865642760939424298655613512515868950368768079260040326910650860052657443900711889785132139109564004201785096566115979509346423161179091711881301909918005086099611037292791848787917615244311423747503146766390849529926967293853148079629483703362557187227960166187551922602922657428023698730421116148289052368374444714443659071833420519405171360467461220483715878242767198456126556613473456786212002601366514726926798633463351808383082008396793210184127959845092351042843067561181990099255804621418774899943780486953986927821276955537108793033406398140640473458978407701332993589232225295906414715154079287441539807207308029926534186933866037694780832764166180245469882615899451328031153949203415866412545620169214472276477990940364187859654396707100628914397839436466875563120127801842251648926846824954699170309230211309211346711754160039843992912304337422312953889846182929317601042260592452377177764860591636828136494552014125870330312439293326129250767150803641517634497819703170510071414610119038266351939502183846380514410951433017125893417664711717881932987635072752324870916584500538466508372343305330760166045037603700321646526300993152303313307945000124481912808951073676774353540390520413655718036059185310427841495010182993604933587877884332377283642798680286590430826381738926569132097969501034721392459466056738616581667718606831746757278520917711016452775931038093944803132457056622387128533671329261572908162696477453855648952419812083815777705725843505120766705486961129238097234234127390362221383743902506680233714443262600653383105059471388644796566887246072617354079480833233609922960435891856378280858484209182653081998328426073889905384348650758223563630826510435304947122797787833812470274584904885320879661169197281394146200780710721377612898710702857091737498429075408470511361351216706618771419826938642816672952858082971551485489569431516570860823202441550960149950557497259806528383469725603825353867890361023572865330338555283460637740978189684607560374684490304665940299318707245303452319394703345880899092395591826447173451311687605350904823992341535764677916930053769527334943661155476594137377487572347164268633964365127776136161883982585999897614619840639128544532091798245046616772647852633250055870255640929620512383314421767042410292846255697033216736470735492918644314407884837939530152735197773450893152271376069270221673667040656338318442868736484842770223757969499016340893986813221649882355210251057107829458426466583525621823529157728188100384242096536685788542570115620172742198143377176141468738208501065781276867193157661892249519208869153325823626860531830325762269113373719752804818884015077565217294794889697431421070091576063790266117393634148518388267885376103610996918709817721244114153218522749760624404595195730932693085008587723678559701490195078421318585152295523212078109529860475016288437861267440310642812203724803099918787204970692758488664290228841221600054636391349324640547798697378127764022105965055732350776361063946349540879263032430727792805253820975614546487187901729205024963281839095411279879948801589960275340743643216535627058583647429440674348564020326792463305497137793587720267279141884076622887398024071451628073714918751106172886332072205202484851133443399207831384776489067595967129958895345587551081339322090320969592999471699818213026684858714094252064240618593011503067010229062033666769039591240340836834270028514161856935552939697985180286034720033822850860947715951737995372343693890267524853146524265246007083745283685607795618652569461400727834094364351418505266829311104809550749726459402470609998455583908991101590136889951257553499542120137620296392102201487574580624625083426196445271053201952576380464657496135781257896676321387690000799860579146077550610337732101605321560166114557892753863847484194430796588979839380544248758556474816722284993285622001664916129428440520114206238399260579343732501132692324417689898509148473637532382014279986109307246195904511174662696838455916952320467791590099491739647630986982122643024545217069556493306117690076015969354249376325405012041015472242581409012274249300896481527390982448090813248889166011599120659867566224651174186154211829196529063477645049433811983770843359833517734537923918414838326943856159477018514957580885076118611884205324191027455333245309000062864544030233118632954849284331790764293196787511481221836387161613227379538413983661970899129135848308082181413462101273197058487487498105715299033914928475817669140244862556278020971453169442820638466445067436427223263654353152329999111470763124430587141342451709757474404258395233004165516144019036962901368423328503059172614264865871177784888957423002791986549724683036828300961361172026550245382007681822068346184624437558731879232284267625310999443386921356434527094303772929214649731791584107707751329702907394949399281646299468334801105575811664099131845313544179246945184376252256944665960902820357768566163075170411709799040273035032001236958615178522721320492187479451545983625165327754246802469025046912015285892345378225476204583840669042094073397012073289369394482226747975096431403782158783794503515410730426003257867910553953994082527735173345419684143441871243844544580859891559801025156724309955841829030997297865484804522961561775680650083433390742741552495199056357181101971807177882584115555090599317798289345109726320746364605716614227942532281627464709885317480509598139333989165878714860112626001776985842666219186229622100415007256859352206232321219979663599329741063058245399291902783522951210229187343904544059004077520711354516366618730471012955064623479129227342504519808163063621571777896749379600099983592030917673196771911102610329078007025111516481205185755624965079972156123389748525549520812989624607252872501653664798696922171165021811399780216896002585175315258185098283502961690777273820947279192241468050327970276151212628741391164248306511664615941786324128765070665906715777799629912610759817974183158572758736566293906062041497766264213423708339363064073252623675517404126628958727436067510220608723126132059410510911142762027595412305324828813483880614912177888025015580274255773483042552668334395190760583870691048536272640838673609422136528986112402153366333380942092500992381798327082770308629495265610087524604831018524066007597553321591571629693899616394308120129381439858929465013364407784771367141668814046629056633131932836334777327542353067554238650726432936547483052340794677753344997744219178560894295408483228068436473883341355139101159430287839663487711902699193999130853541760005829663126735878883221566221213929963243506162467943731196246288667356051020451626019986700961366318225243483753156013223833707228862962114055828765320651557192822207968692256871781033067091401279591768111743456538733856643005519925880604774585368287516826332130870446152344110672494724405875993138491637153952636877348859548925412997303399081365608691304712749467879382996898402907722417502373416476481921748211962596327072094098732344228103498861573790112491260222168043433653754482480687902491096739434757747508310415082579745191085570568721712734693537726350290569058583215697053498215674275238688452599813022392939206198504632273058338733237850574400961564767952674564830004945490700411479438338657143157608162109252197367688164612595727977865576724195310277056904758858148231978244966023080479304079108922025499974571364656233280577760831442829596143768571462251287806646773789226565402195926715258896499505419458517268362859168348483424930152177748468011626435188150305235579217033065630940566537802967506937985809955302559437883603957116952242133981266673141786677962162323954441083604218605793030321377697641377613986290877308807334114500745010559107895744093985222958394846398494153866798331937566948397097673119142431680325038575988206240469023421992994248567288716236373853981799050824925709206326641211960610591514912552496544467098498629751846328516759308709651658327845475152723656735307322540704033669616687266144984775374440887954295107830483390427493281699528256896955741271688344599015855359570672703074613334670141720012350865843060876283781485470780818609834900314607169943526230118546855716787517346005045403421980807211542367251274837020085688608636229598055295512495895483347782340871340141634540920852881371742456229499881822798420125952081384316176670262326393308070701298905157092708839915449532089136223429737767731107146528847302897549062474138008814479629083642979067216925593125074290259901400103995202147680545427590007838192782987101145702026446458276586704122282058909638264107707569992075408721041869614393490573020386273831337709551202262820981613047050456858223860206371646706913937632355092557998780160135367630908429685310007980078009622011954891923981111941690162507579900026393757189473390685476107644072156805267998987779025444153277681939863836478226695835272911511462348274632307737937555771868421470052434973612421035279285451231886014225128309963900951735490425686154995672682064707187386326511392438195730169932747163917374803598650815038497616527830217367749428480119661547439043862909078415857964522539201007253712466941809940744166175625191933087754609738715993406931918483762704046072207598766756885609604601947901216341220348825405813621346506320271909650267500895642322818726985221548881594361158270065656757996367746903094717358252508384647663597050021793758474186900030129005866912241762621767551085294063298254205991859066850355425667253295255275749744825255720437870209997975942454623768501445387747906998156740285780815649984985184273353438279569967831422593959758416349892799621663250779715839202911497367742538596802322834384985110555768578987877529809090660567697394857546620554542954669443405866828998612858189934936372510725321814533623073545540168633916161142927268725895904396831542755005009823648249136047107052143469371691188666439831872300300954045378583952281809641336002838880738788732130385449760233799003574014396961593178357125576888913724280977255074410527143900294112911734995226318265133889709806171001183743107563205197777427035447359147917149355812923149070682906627650972047947371160544808243075165672501420948185364358556597375927288309751207531724187700574519960179337385701507371165097714325228643900804569229348293589882886177632431436031440890263086000510390035419603256697394756328746703082495038473138992781140232976497243170417822046612157964923990321659131978892096790860782198419128079859601453171622598582490105446114736123704596078850036671380703572200435720791813821776623573987760952900662754313987931300114133319010011813809435162335496065997246224746856071576765964883323784143975663429060507189904227701873045780821673659169039606202740196195822259052419911764559643663383049464305652965460975553475445665095060977051938787999995601253811245492501810534965361639109538592497606558077984657437127551815174505934545846037095526277414011850224535679830078688459702854765346404900007398555579728298233652482031394664755477230261348034802159657047593559679657659842598159475453603610285018592068012958421214929050288849416757453243797668975996238373319998559292581807608274968700219181100441538124918410820741276515271441882518471166013592587845748131599148838882189465113831506563392239177131010728043463509527932880212065593008886358651440212937496491926002297176647978555553246695513902815311563993457592305571596179199221416256453151072412682344949583869769168489001228396221357456985157752994375178939401661415145455412611274369571677488500285783575185005140076972302150357663424875552372730838767559871553596981471006425432955714306142000096458971728918604611504880608085385472724781970201320717785251866959302647363679641640513175278870174817592767998360307138144579987372850724890127944697926210748321792889609935837276574314942341060636020992766959110309398686193988623403877426670136011109622664723670757416588247976353376080625305441204379404337641133662814698877045725640677574009501821983090676318654616249644365890787320346827758521292988261854400257764392374279468882811686004107959062408085370609313945459912255868355351620995796395896827597798451837054257554208630653815105433298655725492854098811062290130890073304693815386249434464352372020702093034367658803216667668186685494020324220485290386094618475139088249058276937925219266520961104828897153741626066105180676215289171304275088926313370994681097181765620579527582606286757761104744981496088707991335590432622157636866836397549917641198636941429298974599480045994854913303022819898417761875280101847672349675809184255426391026625344228651094676038498250776772171879387135227598866427831758333848598790051768555441803258995476671688938045223117756113926828476920430803902275357665933723567814542957564576635270984541162219670324489333989773297057988840551664608461187311529278470113516949242845412862809704722634565950016524898019366079000664735943653372618303329590516099386262603117945878637017788253524159701719182058219501488394827518419625187631200068824235736619269896500118421692701891067930375585177294555025621946430579805934670902442093856754983008948726395031390640960304654514092386447763113965207736155518081483347415516786658433380309497690406278642481729731669531497507171349598104827484963477429145408797558956123631637336566184472271732366785495470290824685569368033804414966906984078308226247342932201191753661648036589333005668642630644954572655928688465531899397129697269491600147014461460734088342128539735043415895754074294961827020806570418002291459505502811996427098882090566962807342152382297001141250843666935012091639953943890547311063623689146896983346054439454744425951287188278677100883152277707316158979598164499390518713177819191997017336651718215735970120964112203856805438434252049511002997153721303727158777975109638658762321837796888583558822802104017912631642730289418923281542699142772539822191546526751644213242470191449516710445347848339342334928399795097948290063279704387193493877338843766322511338437383756343132031033252868864968227036083827238419349141559094306140861867375754924639501734242766673419712139277443564659961358049949831614109207599550276020758530740286725859358283756913148435293853178496478495460166705886500430557620958543432523496525237998586660818533553310299828889207636692061584631365656784300963089178267823536129696744529809672237841507358131757808384958107253506769933181250761471547097504220371560616047313031782166941475414394951856409777000787446462695034283995085424867494865955237809989484692360514964897279951210179617655097993176454469709328049357895137295728722707400650434193368499611943547988469389294071444855129036883416546674408024669976786448834606502712743157760348899231845200420180567326368676063018536422409610563126312464501082694448291030991780881612865116452006320375334951577282913240590693539476465039466132480962542931535627061515719415465965512076584951033675594517011355467903714350451416333985739227178893098345757539068810698278045685010171138202424129964405582414955082587238779512656567530149103998313258902074808100014932647651183402520273182950373712095325079518626306769068004037377601153769346097327351967662842082320619287492301822635602363163997525985472929314386549345565916209688127213652626574433646198185305704838336684755424805954478352736682825264832226435361389880316698671810184921935138898739048119709768165042318143623409931321835466344349337088772533023537598524201997018334841055383033569329399045932815219017433534016863856283600055737664666010985319717408823792382227867226944158910910740022488804978159483435050239131187076581016755064293764236314850526021452051415042179826690031323768544970162780486870695804496570491073062513701283249602533053443626875204733953484677800097041985137203539516672428785774181913516863349001016580371775572332364608365895020858663854143421320609146802563744172313904118467709756932773418866218190561579975592982855527072818686996116166479650332423010455788911860941777496060674392677571342243000121150869164441549847753309461252643551160102536516717540536630007155813734223440065110895663299131786755531173687467888920317711258667768150728629167128589618524806797070572139997288521458064372010365140872185507087385287701001465512502660631493130616262709419285103474478087858005068111822622475461308096543028493953979697227315338334196630440397471921010333185447389422609065788448674023786269726895935573218807233098293249140306547733251636979201000172874986937977521825902948767981789867081614297785569637572095139532997221652681071264888891837497102069006458786959859919548919108049218787595244394344432819149101598792043802740874571215085762017197160055647540277378095256993551161305862381575271556945068636548073526125599667117111642354727041377627762726059393079958844065583269757216977714448195714168918064554678587093060001927106433381771506058319304881077946559800334971553746634545820515248238345329694900258521010678816123794055711413347414684985294894268979566073153352728170058137169154837655381952032371029517519382791539235837992969684982833244809688709412765792253733012620261402561987661716518543916011942557700787277979207251516000776061720294749953352840300287032127165135638199102401349310290518906438221936052433427088853622437510798806326033687118705632484433944785232700161589294453471577006696906006136505325740430117480133363326111936152532138572078314741370936783944615632759583340354786044802458059156219331967219598980896152793826693521491299337049504750702781877918075360056407272042869028911039802552944793678231946239445733280440375887210756980750488460456501889256955161770500170151245870880969533517332734692861029164850338118856829651922302703668396042125277304898535577035641075754304636981563655839502190322636212891053149046330260371610481659890113829120549751527598797695144854788289931898599897971709429621258287431932108858320054631936332117844421434269301703968057584799220969581254453165410179726702418648747249568740146600083829411116063391008712398913031469056224622834575793482703783855008584490020374794066992810909036159554399940963016453553241193303278188920803791938506258854849522377017028537017608580734723717530210688470457219851837732869898750221764792630843685809924626402563989783916460402202167263168904414381548070413125722128523252544199158690827324410002420064940930978681682520298548431494143280811374499145679570444064116562959069366197864235059610429438541453957246719411177623611424510496597142717604505808495328072218185282016746246973475701427144179178351212349931503132772641393438060523944110576932631638822384304388168445982984383000835633360977157623232364111149711516944694874331773581515116513024544332273009093643880507868645872901455884950016903585272432024763003164343923339783694762300279441482200505852487376566215472466291557036555679711255985970905226337398396256088706401253137894263456523227610557771083182362480001885588428614979128114293055977090461422757851913810153124354874448647053344517766615260670990599472522571064231293180610518780917065185746361488856717283115900052188250560408511033070000277772921778286392322727151865283126553168412251949982648528237363640584391316662346292856676713752748988799970899696380461125254181644554763734918912615493622264392685411745898733101228604507001821621659637323490811896198639404454974583112935961755484331989926302958538597977508694859423728837179813442876618238849482333319736303576155329010439623721146959327783745873554345072013551134361270604197741324654140966915010473540865073575413853749609244591409344409808651925730364783040661285543284193261063906125397200802154818157310682034239917654214963014919256172567082809484803863203499791339360199391865607800167672068752958472548044279745744329523443368004932321418469263304029007759413229513771617355533190415683255388213620423005893139218423273199750951409585652806803294997678774991607702651438680665625983220683549505033082525131857333464824849116539095174379461368512385850539818123575166274841193418772305267989070816954987556236525421204655331530931510302491485088084269506744419127275361945486046689986673405129183674111876738065066894986846139434588572767396031993490741889335483472590257332090253286691892071958416442180027913591939882530536945105666216403077760940119069909378866946231259013347869018673715105481717025235834555974431038809988930750243348294542661339357900810905705320873303474699938880282018414643582996735688980797792273408216630654140170685178932619551087300358753205704624047826556311558287211716445310008666729663791644702962675361541645090046553998772421487741692221464835723635247185840220082724266230841745681836650545434241189017521193199249349643729402027673723561943979036228858152257965958786585869725451735739875054295555142770137645780575147474888726481817100437289061510165621310879354402231476704797701749421893382536173396081851141204473913486609822439066843296424813839379594320447690055025012634644537221319675331263076109967425622928048481751467777336588953398401717572520845526299514758887194700913951000208307209476887853205237229320281209191763114270979765482890488039399779318978050798833476305151812095888517433027772442355076382953968701386768807371096307875304646460671166700743225935295791916318143666170855821037491653833089748144966169973293051422721416805660274849743950332623126324661445121603220270719667439292665264342045809389825776141894873584346170958073115513895897389371150400805809372138598208344426322488987262894161750298085083209474100412960534560541364554212131757041682000459895461170700628541967154410718704086103342521928912845129919118223543245737461795353230802801538644771718705955367798645126275106719583979860445694180958102980272475347122311217753010460312273673450320707084184894721941915398704198782606870872658637136731530330131772576432317852724116518733366128881266632402438925937877516750780215016077856575465559685594060634185211423983008049621693203661140447313083156302574530089756636947635369660365281361654232862636993000444698830836617984043725030556219711259130443155607708592253388503807665549662107899352455948153498557303211136632987379699780447711531725903606455150527703891319972739341174995394100571707577497691781766505791134092164368568368458321948881810312742202807977145646387242522822200195369398602181726033302649011682018801756508131769507869110984481287153552449415207789513900054108684846749919892877705821706641671500012219562661629836420603369892026467379486277150964475233321792195409428485317744239749277734555181186771376544347644786036821743365463737198926087414361459322876924900447657903532443610117507596846857644061863171345269770123560892787913360436024836795562595643257952608945973035827482340829829451835011439202170449145936261104834797679461561940229436749983691809062936829657970424666276113480782410893936704983049314326808820002584827950966321152023493022212766879996611125296420761976411946413348586760044076494785080271678617599337356744132126394492340993179325529152241177875945710805424947153658220107379414482213016761493706942932223508427051454840899096014696480723280625947991613036874306388439948197211663988031789972467006034835706978591842606916566442285879995110516288487163944043427380836576985210216068311385012028385845409094166197506602412388780026771039420253822645252793519900148761963380171975669903200537653681584232805103367893222666908859375317907904495429580673544964302025769522744869032041056753300472921623429061434718489954007548234698264376250606767012719967816143545329293453130652386303362977113205180927531112939153501936033663591081672245850863469992624951629386769542600597389868984530703757360708475297858743757789403014369162175043627070555411213710527053129229517741290656620334925069510693424835774667295821618106391425881002919835207079468689185488571173160854073816777528304407295743062683847605493860007661301348441209898123996552028730494711351161305893458200881490478354560653666331693198188767123205616773530982506146046803643724780427012342709861261406116521957025271814733085486756080438038180238813578174329708497961063408428028035297536355357423387663395354162751170091933752545461664612736980783217247244866603034156832446857730438598356378168908072059606193366631886844131808067243332542603808849596700786436383546472148961405627978176483970863985017731245676526788247528299174995639185867924902067734230519809690106313552423277359490439195771113674614521347214604744372269274358529961743022124087648413200756656808571494915193660983087368763712816381090669197100640636270210110584202986911747061732173465322366363617745170475480732063755187007272320764562935705374062350288511732691785087316146171288224917449556308047539963055614834084929857182604225746665780727988085389418971041328584191592937964076086179643838678644667016456366988587164296632871442489809711857844771601457167888564220848062199047492631732572739354600208536250789733962746325337930943890542900295011966656321649498781570775025285572987583781365855794132286664498851951699219289863694629933881956089277901264365769975623487253959218709870917057152500162869282858893366529838928029748596767994703217466028784674402513239762550130289166087742759664310358260677865925749647795589900524340686258871291227632013553447089474230645600726275830957499148192159315594029222470163569715624167394932150222310281383142391789007570782455493856084590912348178927317742381899647393798480830547908492957995272999744886219093074622959948120282318934381025783718288036972618914958575397924646126597691985569155955762457495997581733819241565790794233002316307684797841176280780449345766868495806304587978605110505356148308354878525094144616548902016391836326951551977591744624752670474768036476742743867913511181611101454953236868906700340497542039665234108292487220081419261219924367334314304782954505107898823574077927968375062368593931533391748244825147180673550351882537540692932921719673951810556286939812340600158348125602994730272011657342634490313478653781392485947070185075285713225712057624751908132913568219606969599254695622733356914647322380110737708281654729177837628716831264325316685902036486564545387337925716197922847579791067103889873090208815288911117736428298390501999968963480437824950740437111149746190724844559462702726486496184498861830297727706660432010120947730679749871081425076811306498861422880183925276877297208552268441047747764284500721081650540223477267137470540795723602373860933746427852469505664441650025974566369434346885256859786957647489214978879375520549147014928812637501061087080423268621421061960071541019408656389421921943067952184310554613270711827412849215969926871335395644282753922553529349729521768098864059157819519982264722804800044268168492399600140633366057387586525654636777198147667154834607364530840880852083627519405814502446779666711394613027310002099631687366531713954931311611910020825983290049099067192347352788644223098258812198982090736515899411362313524555076713009460128505780731464588046341850195874784800204333644940558139510344558785075847425112777978484818219148600036333155589671576783530975178069077410207341407472894666362035949825489580950095170679521008106144323874098487826458397636713313389948250282401701877600409253893005690621181484064338239025239468429936731295057788670190505093528152291208733973446036328108507180291691549416372395165718969522150473862453276197653740544500918640712310014138809584958523330179477165136934827673918090449349357327650773120955904879698046686377891540376096259237227640006606236537608672026223399894898480752794515799565216746700088847177662619626792447202379554388102146663503939638390134057015192977249460615170489774353460757004855371655502085032273579817928352314118126446658942493095998443315939916420753676638469952784536696135163552944774142802279475263107086422763149727402942391281282372546078184948742015643985524610810720740719112108342608492771028675022297755179576258197615897125391323231865933473209900995365023640001963626392231618069888541502145350310217978237205928230207562169391275910035035356544288326686349174385524935015055020312447534866544351983152035058912189164073770833263668470647928561027307960156214422222175339276752010943272646334917224199533370554276275778418923996493139811918858528125381565408204685385962205017235600137418937487308826048897423556626820413422502992796608203553019518098320794459814824889793873811541561403345662311974251816365420178302334471521591769313403326509698986028032626017612305124233823166365402862847931711815931895744902884146455644647280339974830246199484027810944118157296649813395546055006916296859752948497863741265386498613277250960165907267987292373081126449853420819304999255381340008504166752052438675373480448485752264173771055001599548987662071900374289394757389859972166182247171882460488710847944919425495311314301569746048469443404560391207491782667973200366019403250202998025948909101985641687155567205751962187176470267497130513393662100497177343778533397483947166164135506433459769173845912362269031339675137797287493186964629330005399785891859641708499605888821112462499096015758355665077647976111841018557596844829017994624492991029702477276865530198704950315426091519556334511711555896254343987677702395442106393194198659244267876738434963799051645465930737660638110004158302483711820298809615965464320481674451245384795071559387634371307491725133803483811824118461891690994776138774659115918574963738228979257374907437151598612126702933225172671207458158511191593162754171121316111369464030083730004748189866151709521959203158137512293882254068981578137400698514789089364268392349906795341923095417686552167726134340188316617811425274882060042364341919241028591395440299628275898056809616249892242517770079652237939258592952247500433724765590884927499130763726049589366075879534941282821245032374698568654100508877326946919142244645473858673242617170782849601333366047657048895525312452409589174162318134338463114745113988438919620502872782312039832535536671700656619977836351360340678834980179282827050392690697746125252512990774849705057523033634835978214628899856936116209418663258409690487293262005529373728008304594932317091177764448869681778079881869727742054554330251956221778041789509975036540507327751645207612227703702918247789108416465380568038250964772666660360931893846440062129705651471980732920568478612129593455745649000147818793601168865848417742311844662073698938971120840180996660016741657901664217144898013818650477198139489303596188411754807218516949469995774930329297556071600718593954434926832637214283415413445320390722795420305025149267991440166243761558192713197129249658634093944856996729133151458758323261176569577245287406975233327555352027319061263243333720842770708772488844033767670699640133150287006075094549342549456081198775555510687506377840542627343527316365844921361586386451778296586794961859522437242628893601680205409357641925234523418360092377938582005749723342817567230775231957429665626426171497131964751336611766365406770882591652706224937278140121910506775838580531678887522493465930052238951606691395088137252710192110196931040025036222139868072054936951361299603235782734056503551440623248580534451783483787124830198034542547639733243170409566400859554398742597900145187220499128492114403889446348771353539768612955229287369632581274658722680969860983479030711328891845096772520716897477554246465399480720182260071980881004231519479128324536645805136173497426368913804762206589741214333380054770565887708075843459621287868499456860358934817511519945962877985707288023377943641657511596606678243020755105605401575220929554497745999226872357775573279775524709685651785133301327598666069928822102284391484101384610394621423681509505287675937263622713025263391828874763976117583301933163429556090791377505496320642216819126745606919904267714572931963148637342062612216979592280111966486711858240793034615999572596974269837304509471590681940272759006093458877758857749130562123895491291228444124260922740455468228586896204534752967555975199533841709611653012553452896476490442302174466680616051536512131891256020055685326740109832491386546165037972639998955916249160533169341163414462450650440455369275656552295198044343597889387349698712129343813238289570169351752520973589349311262596416160263374848538112402117876781787363818698937189861287407132884713047154830559641979436855803134518631188210386702683911996066190303009699488709256933628789882433045275497173560484152596916330515028929285695855507799333746988355707341534766318745232065987676325848998973612592638734679973275558067085765334123748878769762316650010996827440234806073138207532274513022127112541682025922003262960259959245121093862919043708299414406293486703320168211979331373165300092140369003899208035415375244655161788496296120842451080284404823399513809440146523747160310807810116050117598364100284733317712144758844373197107113196473798458942839650014975134684538628363741804494431669862469226633852214792234756578480723210566893512131280082490508695858073415077202159094462765933155132514714333704035439406176040357464195692010378054871581918989903722942103225833103991256948136557273307757762856093707699895593028762086063761368746901018863517859768094329755513848849545502409345043659893557937207928466684038015202513611001618340476027850217932980022338110895841011615787879534121336877396250667062474518715768316568430507982041386224121271730825366805338923194168679557039400288094974903007744749337061616915152685615657587578814946728417142503441839193005025612439098669609346817050637731651803198687750984866242790956298785417690674270126854146125108211527877493973317463302327183861476263840394195361322255306433189048924834123913297890230347879658434366720235162941118135287471078883668446041137748570635755744439755407179627614829945629987301663672202516430731166695535140626819631006549846291982193506560286491744192783378301455504119351106198710336721940899150584736850582271543378336480768294600564084828219604793219440757980399615285694906551155015310892159493088328740749037458669905785746474799701257742064970856433365030162843164697212339377575258625342000952113870552016624017579820487270110197943451984314622299566000934362589248696981000389243658239018007431066518728796769172109086634045956127563480276204948065565824849332531296521861012968065857639278497945516390597073188096344214028600099386961597119640075880728279656405075652048947747772480510123101996997070162121511224733465974788534668842186483080754686290446872864987144673825638915106684490404056683522339990797296864554747086057837755131519802565704582069370458522480393858338924541733285640748284001639799456617821285482247922433339837245359346012912367542748581169948490156777994077716843611293890491374346108516365508497372010925250405553109850476095985356469082295352202851251612247570119963069281064185523119951784560191659350732217645242631621783876888526197361906860721933535973189215995001490516712979048604866831314902912764986037880729483024436206111165063024323436773427124843235635828572170934204318192849597242300027506357421835744379605872677118421123680877151876869461517230472655065561627048021995886734015942233649546656688551544630589984630102699633600691150732043168310814564330201821712744946799351651038521808074605965818979641721505758071809017477180830700300291789434564074196581056704050390601517589680286632958740885559186693445968552120880244434672379495392879587087964857293448152518817342972911047824737983319757385175472464183647982143242989511972370529529416523299763122667889134137037995453785340653821924899922844086774821722024772580107057797920985093498453523997078336447384306853437695558432320940333495287151175760272534956416690192183268510425530258385424489485731789874006518051294841720968958021449681086941582889009343497187078598429474362952433537175131691434278887439019349373186298477379177478075614176873990537767651361945769834088768589262761322486053294498390485123041915294575502121853697922456902082089039884720114192723873421840004458202062975602057903562161057264113912511345764632100481971928965657897943248049425899418288088899069147055015882874167431183413453446308697809593803652662754371091637481831233349177703597947186427993365025967011417461885857233205143063085668481132393451803538720006995128547173780081782387506370451853974577205937506090201969331280048782134102898872760223872475280184934216945735516846191395626983439340620399955878654398980029262343381581695712495793666909914602504485145516283816080539708184636169121792130333749629298559362109098393236586421667416364918008818001751225792318148063298223517892224782082558038143989170403227153430942340033493154882467672102259235999295131430471463594504605577550906390190146710693209671935060276539462269782020918496115980396847778761598755063029024433724308793007517868098402845816193631380818194346051951483602163839029360249146345185572512128785667943172017852137524821885922107843928535177364983642683776762757692312378455866173549187043784260698896508698909933002731553129585564594252847391240404643643359994129558521309070007227520439845588228417565672803622316083022764380962338358320416275607356412258033862208538007183911522441313176781302348717765374600060735270483685667992785025203434884261935049176424298318601283330037086692082579719884496398495328301943457511249327258127184349140194928543065536065147286072249047740595754247833383096826875518022432364513347730132682567060048205119498027303650135374665411468931072489229877652941348583148002952016296472992205058873171452148573703050078402016608004290950385534149152375336350054786766039501364503952244264406648251839737783812598825751830144075532509561245699788530487779367196127227733550888252280671144088122474779188550713354021087936193429505880603045475090871487989099508996660642807041454699943043423076352069185793515099736584431683018785222351030382433713417654934674686429007194977277779511454990252146139821161474953478033724294053605958278217078532805288402727313604127596004933408731573270889942257530712248939994295895130270236489279678766279122359281277786199924964438000480852825064420909666007511208980730695659487635591074312553307949515408446886147866904090594819720808959015449424033673934089903155374594075670804247037985694673715736281935021374801802250473692301968367387083384025800909328837367090871057331244396208166399197502562731574928216150471335981056520516534826731143564504828739545222074143167388151271118771742181162202825097676665807079076492047742562511466701169740148327014634843829764883805932547595477190557386510151301816253602668357532672266131544334960324087214769504441485656152443868264733760949585594788489024526111403227072782326465237850093008909807416037367187635616130800635904776098399647338321489091724083618158403160461177559949904140613179212806448974038921097328039694006817125168069419933334819424925594471709256757149307004156659564550894358041700349071194012781827031821364565420981779377352545490305415211297553319106017190389270549052870111436894875851886046662544456971832211649664038517105866512396714403701106860273002209671940652127511614561989165742988771701483754718097622619487197075191368669734128970255565740706155781223951020522079659998556554498662486877722136948209862063834985170073079877053334868398957715162207517322140137671775088749757305063408746065344257613166390168335785437380138216329296523226245603577212046409331008609784136544776014171256477339298545255479360508786303082182056584907444622467015482434163389208812471001269855272215640254788594918700737319618165146312438003294149961662377238367978111175155245335345523117555959328908565329962518074157811098562201906510502672062264022931998189186372046754774175870803761113165115429451656852130431888328951309383769371433167855654913014289394565411608013700996848835014654924206679809628696659880407638126913465220745384557025067925895639128330281441065099480933172214452217265825546152871830146269395444900691574134857565302043626935872797085817252042815414557947310894596915415959050072578082706734364513610339355632651982957454749500311685594417425401547369045054598127164939606221110778089191707021242783670495170623400655719513748044069662938225642794238784417270720508563431042885916892993632694353774637004181829783547568763381910831605728251462475381928943212741747755102791042404721142211363679566726094028531224863524524732939212188820639998981832379676588685375098386627458098375529070516128628531845834512025222958545265999570988164008639242350700096834810476361990398572363182955245957692855120900985545392779772467420549113773921457806216172109282083385952036794403015763643260522520716651493702340135922392870965061533459796600299923139194344701946086414219806241559185987107772731441831584761794510044062701098551209577049914190297661394119815819222071323108074746683105499153222574937234161560177570079377613295985202143520140555111510125113443581128754667266734600105165602527759015425077704493527182999671825832025969443132505106181711338809481868312673048025063617019003702538403704422147899034026612867003886041349130520248714431177837585904002188646503288751474785940379759359512235429726932774631858954376733745218890299005150100482580605247888108548885365068875595678294326430005309961669209714272920824423471113935773539593392798226813273325896499854897985469381912483021191212208118616219746243071485508766543667325861704138823572886208377235969370143605812260956754165110279391718812934189800513168829029629470407973692831876577500997443607537021346626020315314745865311106383158768180321820838864336355707036930186960553534635381057084664961559879203461654156929837712112270028382350101292789341123268196130457539792373805253443711892272563685825373026505827121537271348315690775101704826837614541245291381924530373243875657379216736063735320287292729557280678790796499596535267672455159784063073899168247503944264759603640728287242899913277307754068219016576762729984806366746215478462356636874528561125043733798635966742192059209219280731203185256809443679391188325089168113612940043551592418442484384590454919031191635315570360403134250370712690656391611290459825790461370392071677091658861979159239188781227080726051831997880876100881863928681739941785421749972036045549478632037316490712900030101835806759996029229282463288724639016619188159332454571885202675283452345628147772915156205694647554395587225290666805895315872243053212255095378066585357503496524702697174804004281403035158494029023346145861101021821937158306393042805817088020536721782950880305261135323418120017728149455229044388252023580542135062809871279825471482013335888407033421698536673805614730617406739262699478068552383830256628987933430502642288444188244799753541205045858776849457863330171909473122821073207718532063208056002192410028628447829088987882522934935240581440062790838680935298681422008433115659019762853791046819032984871257175869179304707513467751857308813399976825229171144981349366894094387274097869452757300257287732860449807144070057994438290591997982567108204896064268143164280732724490183007542448537690661695810030381728883331400552212155794010194056237498602038871214022657198964788588221969505900551934263610175049297654148387203485706600353971590723324687618581122698820737164634615574412524807977614393493139159081858412024242118329514829210077555014861764254694487471716404075181853060045882948112789516430383793815447151026014993904774593903013844268567714363347922406937328864008374554719144731028896742558413090916716988272057048292688505471145937358276248469891311414443114921998460672806984073998132642414886479536401408001738662563911326778006294749559579429179032909248864801144632729873340480866191012876013142115059188000735961970335184281355396481542668673269356829333251040086091625011752136697217174102996046249110093798199336857685357879219663325909940725504377432289099961852553472895364845574959375135845562844872114719853024773196337163663874671785706081483661982315392058055974210925678091960125610314106736940055951840918225204055974480115682353575338566796355852608166391431730414311816003862476601878478561093142389797105480994034244541120989411452224201059580637324184524594517956607022808284085234258009691561575700973058567284886513171201097980479475035738362344809127091896485469565579964112760184594298980592868795599622149463773524622930100438342000990245455774558999350780491379169477703519269370327787431780988958200620525461564137584129750197627968044028081557769573259295662567758684309712141448637314328653334753716781958066184766255920264355044657579418229486464562895095829409233157702398264212732571439715302715157970655846876816427861442211383697345496258073708572496975915958957078769935859000525472335982955256131508657351742509271544606859982459078251155658297142115136296509048248567739565820840882955207070538853792775362006933970327059038639925388510657218414592099663273198332839279462754980262448251095187232547984015577978974745882910341037575455164870702538573187411924379797687456329317273783932063699862695847835778907705103831879413973537202526345695490962097583823779813597727860814100181816286180065469733708409427533815509571329793551054943523276853524103922504226272326162729558215956037304918968737907815232563874576660258879750560411122968989480892793673497355757002558589119341967312701175166600554374211397230470125891165424017056120470172212589478842835120384366310608746672060018848956022451395647139071325821212457225247128454123757086420326424312334625794990826522883449904428411825916635024988579972000659350007180512035852077523190882892532775943003955047762081601617822527145405723990555542322249351268842793433170906301005960450717635435308640043085286766827518266568712052003353349805992846218187859734762637488104626305158672556220477131424185630383662478638608092287422336684751136614118669058443125879596062139836326976357156545212884755327472409079369991973461945319275535597374465401808496246660669094640132148634340581215366723870481528212073850035070760802011889851367590836138179202604177990350455822334649653806466024511030793618242331328966160895413947578423723994878007883313755036457283747195325332283667920716356032660156339513321293920867387998878295773006689430458694694640779571135388580536357567968892339156251944097382906590797229035997954226515667109874914136851129971854131591514821795298247384904857512413134247174467938473997410760732894454453633232408385782792025306502692031925728675677164328358862355019576057080288662089173602754371325382728206330133474020076784209426028500109362833043338160549707757463548896646642543947328037645681453051474189001290113660217802535199253268166207880075315177363904950323589639910920833566600748424774909048930380543869594393082797781812081269847706988985598093985171272409165343258690238302438262348391799626144543649824402136448618856125709317686082676186778350143436216279561278480034618720017088313608327619833312282286200724394732501413367369776831106767578749653577994683827600042840170910736992055921724775864024993690240458192411120019705076990700021758774026974692113830466613270137571427342061949310146547630519641069242241234678683408704286617254741932894752602600227808473342346093113192303025998742542437001330176482864781724326989750301831286991486143853648767567413766988032951011336907301965399200053320143697650022328475281693563020131022522932972605277143636166386548357039922894982171309724529931701487836892734129202028027091540329045202500823934291673895590436720867493464164391323456561104761010432364048660738109518571275255692192787509135820596707473887771082750537095989064607192711969621827503298094775201491152913778756758796237065619390336700591990134740203831347320717127573644186865341775447315029994203443534682062521187723724745540950366854250919567409371948940216274292341022699040851480091818372732408927412549115999331201595040240081058242438031878865143105783987187941215614119089860189610067109971638902948131120626633099936444600804492575731386702218864961166011913168787732589388984734666599140084210312455405527568748508141755951890789187259890353116120515864199819495188369282370405822394148382673674951547918842534602215024620275367202003135680583061754036998449436870324520217505679994953408486965264835035152738199587284721255868999077980070660124169871697010470351334988154393638329699721940814757929588616141719969732917384704295327154764867770565533821455382892919067476679863587500093370020991556564191932760153092681454393484488214099271463193791222750652168784456806218635653497064302853507982477834146130086404904279368617405376997988100704319424828237121447279252678568602428458365358226872468805240008856806081618130933357944946404822412220294509454645439486383100620138899126810715213622930491116375944925369649816967141087497061229416897334771441443457171041447338438066502192373074862661052551637631915145384545304276514273700345447576270910560674113799992898558000805099804180981628226630481234573264063588143648383257395825284996963553923142561056873400125637972234562272292374156855549690405958979359124344549281394161503924911282763641448194130067682229265928300524769699113148253684028237162525508057554956269245757422323165471390017231042778453995516952556047236499075732188757737346615130058853553070672611544249159794990562301648910626331323506447369693277442199715953961327021507212937573884375940367414801524478684590404183124174343479634995530797218955657972651080793801957703432473938852460423182162104796502718038511017267310669694036076968905141285353477781766635334465648098553688211683737230512480519256507585994156620777364040095176657930036317921909954960108283081322513422953230888147078471201715454899507313827385652470657680346391105810090905260897658803175937556645069128438510907134078611469563245846795496119620920759722633970842653574192394481761187306974371357380136006649757517034541512365679656879016121415743614106617615706124013776248602001094313106305924818036701410743240539037417356516662412145897679921899641688594879518938202054530921017113405548582917253027631547332460425471030523731054044381197919149083583544353836183287515663044823361221202604967937386441141888979283092183880155218512557198655046592500891053950641962712639285746775519408608934726033690951472785422758785204663526500945134431996399246507041112291223874750793388254433233478199237310886982031032307117964973774801305234343526680987368839340329373463265963291184838540748961236313531098320104092409571306016066449218349485141417641969340447665600016182800137268430792693983836904256236026461099893682725973655131844385201608888061109799933352164693943768657471139280844428442674329123185728644420482661265337076753800462274881760812199672068285817084996807099593320553582963615464285075093926247978168392263290541395347063500892343108770604031486482411972880462840698374348299631012914553510416993114413114231017994209736009835495071862924663598644125514925126077468604312001624540985853072395096344779836791389027586272388843774486227501548338968928268269625956212719337485458036617810889588363506051435790236912820249909932721996260187702399289843888037008687499343342925446695370259408258287960107689245292635512532802143245435274958968409450001912288064147082946893271468333645828277121647102236291824835413388605821712423326149030903778065244188016366863315964190033059882930370310890968686205748793774006960830850511945495277573596016450274892187246782594423826094673027764353071680095021601933805362543929583132040126366819219373237990284122941879771050258498784906125245198082625953684902620055213862600200809192363758518774365996462399827356039944239000298710390618895815481871269016404758609780629235473948546185405168221140042117531324331385149980562149411503901177685539181686882444218763834767675726677719118035826086137889453105430911746397319438475436445606920039776857904499881004930561705428009903141010015862582475215116933026292277564700550111757418605524821236707849331831135058701951559623701253225528001744092549574145897767454925402365522379689925903781669942605810240870555635454001904612068211581605062649909431259833601098487632804075387239702368530672287963124603423541586749341040071007073904675759747315778181966928620864865500592422810340915491956349446738760482993138462095982610038069674750212305227497493892824219628227378026622828394091580416909210374951818607288117770957449936985507258128614390260831132285275915185527652205884991869012996252287733337770273343200036667638314762284834323645121251260756610039988008686566976978791731558625876189500223664021088481744344459081731631223172572636066483201158004239423393555861170613327937758271622317689745338321736139361498572683041387738904392312252829310403616946466960259878455639517592441388270464623947641867905584909397227494122120239616776237842637489937062247329832467896240849837433246392240212495062376937823371589775708005986643823684191507988159786029149789813748920533632158250501345920882418672601080780324928185245202924048223648842776761040775614226917300384851814383295317062207693147418233222005976892555126578418072698520637966051397651729819537526595727315543115159955272315785717663059504400592017458535645663179185083270011644502998398068777687057117357578585577405687293610627483881693552046928747752418373276565181109526007814720779452509199349694353622649575747509810051396111319845972369116785137844161456861035842097453603920067413686081846709350126614548330803119990753347691618940127165407402043558993096594950292237326677113532712662781341642225497560610694647600733680760717169047861251500971824462249644420427789403646835308133278919850811543120347004541548654728557841294201720919916231610445252960410223107888857687978472892536657233942295754289251528327116000562267359225272887914685220043810001703341279531848100578002381722832596913396471754165100784457608526650923258563539810327456969068484742445367790182647266124249863143484299823944426403337262090327705878571591168369559687306399331890851517659403917910812352123478230014146471910370362472151888927129319931542491926312783593548515114506654399566438568729152858253770157977814127207072063482298526083359270259722001818682347580108395880162576137066269902475324205042590537484777525301520409215630968900404521884377347132048133429247311299628291668618927314958270022589963633350702251697858034893520392583566038487086201363621447519477374474504738875534480850891308886444734862317301785111029525490444226729429951616006161779311646044738676667429447701469513216675198527909027079847470487254021464384664867200908328778091671205937369935803124275993966298876167055117021966568097496326266162878119497912947860065711268922030596545007656364322442683992436678306996323174875125538145625421546764760846236456224406187074141939332678056293300526598302123152320748397806641972412486464153378770533373936901895903962833759772025457807649613169985963299371610745422324352870849028205845671807396060118614282006052105486723382375386610582272824951956411812726604659352360816202626258820554383329956496090760968485814595691167341185808295459899278347969344143215861934294006711008060727665946170020312308933024802774743277682692748543757135880393236523729021433574988133572582515210299691229698179115645179164183739507879116107105716571472675751847701530146021462641805034341208477817487244333906830499093846264765228037806435337926572492586418971530852328764906447091336268371281715410340219075039393527559937316238962879121300169913612476637341485659649416562899431211267082471506271666795333514286758090398269581453113414642586418040927968118583934417593836930456037204944154013684369606288552369331924691223599922385031356087757695012706356966671573458977710854617025626450895868833775140801241226702964719926206182717541651310646555965876263218891902733462264798878296423773319904859352230668081909876294009896620011680133868697356140128381501165087953150719935123841727129800891390794696258117700651534911033821144046421002608861169402030354166236751936479483741423384520041749470943816177811380155870616865083441356856067946288957437967450425686849142694019606415914465096869814861453739155557409801686573236156282839443445563764783888304830927963849063108659607431192547165975892902760717769105446361427599896801193283424684183385549969156980239463749201612010059964968883295189761611117823252618874556954122177333728200154588440200529054224759138061633455207202344343166424521915645629180154256939084903363995745337718846142452155090718152722050778809536034871157176975171794499794625210975092344375036837187604493207791090638089269487887712846777157795495721657539717769499281081103232068646500588734875122723530299052867331881129191045090834315716051291087930859898603390847728535317321157053387782048710337841594601419091332003284515142986156168555846443267621384312680268813717432804769293039912213293963193663969571762514593368723310385534517476165486195232346196169316103219379542664561977609303983312733752404189630331491619129299062697539249677989376075107971260023415688989538099256146896255557274926696137042036169246760628835445436738626608510427150568978663760607104576801939772037272617943154626307771303568311127765857699740539053653038349947473623075131108168683363627251216120268769056603859010878211966413880182880855934499579496003650538332730900905716636691357900138269924612968524310170181418812032797792453122655109511981768980809115417939097308905249930178891419603709554760198186475919011579935214286519945689463716483440211815759083193654110954712894875091441016382019662909486394858549476227879275909459172651808545385575051963625697341936097235194974196278123120574798780961624703995911506370054844860885673924244317073575645693276843457717390665893933709824015435970259001229506278262789906544109282746732596108533424799768051378210039630273356343721238476929533561633372360586355927896887267879073439122900977274248106225359558997184574101671416727568998673515002334310598290494011526981970695334539865834294288372472579998770610317138500177424278627068498741549423205242093274716453834647207839353755455681196816784286186249444923811388265508031727036574652441086632575351645129630827959286698288004214327507299857987583122812592133153834554117897608709508440277286909900465436028810808163427189160466718705138123127472877269203243960789960696236919941873402685175648672111376833456579859574272247981861532064211475950336279739492518602576717797528102897247445923161973091080686441100325936996192193383831363638834488835174302602682498599312616966278848771345451101454021511381249337611566289243402379159415223448818901982280010270934627933027636702237575635729328720038709063329889670107027589250138040396712898248601640481567325468857081133689917482198765629711691073140870343228778757276935129358482921569817498115924954607839187723012091805126743463048143730968374148494926079444363365615861530990546375438718187659083156134858048396354812244324393954624763145876129234803229216095682116378365332205567402708935101768987911209246105851795445436653729930592092022416241526874748479864563096576528676412242519055487361795835539478734639327425292817152356004448559980107124836416134133511492715987791425636231335350399576410547333819632014658264503871809646159043556655551266294177985196682128440941043469804687262590484180950563002284999888624823698255124727507957577668714218567317321757096236630250564527040815892131610347086651577084319092436223936151287023384883793233279298082587530058962477545425949842186736583503212498803285818871114950187596650628022217966397057502555700987155658500997646031841768899511401469577242157020811043203110780770959675408315313857617065948610362998456035074386005356490770923224916807059015367645287563030208181216864130222786380244637767082098069118442019474705742574659665816278793114034025057457142455310093637725756641240004362484445786652668848083716928114898597097338000518666470139347198119561081025019081158508933584153529166190487332096175099698187614380101292920202189880473082554161454800593853008883930861349927912667081409716457667443772505682493833603745962457365053089855074532798556421041772188398859366634250545497289840341940963744769784525967275448126640527090866312173054582823355978328310027835244568126669341999891539210650916917287625307338746003355443447826039012508588857775767290372212335198576452739522980615683272564917505431916185511140786192022186612492384222642154973367060621691600089508304128058785614947032423492424213346431936454250716851889330983047895753504018292081501856216509535507139750751990579560181259771193667009200058714940214726657203784088479272507414114971199018961102092861839062397299414942539664018986091687880980330280400411315662183435116524771673568265185079454453939060812522187035394244005685209667555390589726887863754988709636529909615796344362566345808307935207819529261319984361725910808143604137042777442525796133245213884813574111082773989239975038969824774570676804541962747002569722968737032642433478561991263144687847371246457639981562619881198143486246042701126347857610165318999675800436081737404387642761954210394532180424932154707541860052540038864282146661095432001806078965850330584932578510639833613834583959090754253993447227305967864097482670276649340152492695017712965036560323502909341165709845884231331516626027813200086739565492403301933891557492639724171435901420413938861169257918602048589375572380586107258474450817365488330502261547339533965920500535620276123933113399157041116484978414858924892203665360396099380878703898326291963820647693851926186703341606236027955948757625778341550513091722182703925668879660306557837276567032218919349751396798354518873116788165262571028389016864208835100647952993762292941587203137511640018482058258250764729531124024609876373309718062963163825319556221007259969091105061384558417304381346079982048946779142633730087539211893776133603874592508179258825470861910140700563819040114366947292878436778719158401574303698744720359595989955546408175705110203249456804510457026993048947326625806803929296168880875630949842858956621358935398582595349764352610561197902814337045409519031537717310335328523053711716566767549482443862976138809554955086669455575874328557499103017579309842733700232924692226110811834894570293900540154123385352488380699478190660657600046117127834768252657514875945375197387289551652973684332130428685567286168496076981234728894730399349730371321990558172462597237713253092283205936260121580760322568655287091426182921940374458811539159785672666672293173681138917875528577330069982635061473543838340476227918864349695251516113085848744428751296515759134605638900089378711956752474746060492652010285150428534661184478325999422994234275876265038043546560571921554305311094416277274064689802563932325076673541501721202434875258968873035188646871636732932586944937526307515323025540928923900434435214727505566353044631042264431564860110231447337611416022534597300787972509524162057893552178542540196664055375917592784494857110505097816075233895873249890396551166736075951495332228331569502553899356293523302869013054913970334763337682655802786581271895537612761702227350199291376489904453498707030393220266003670115944507681977385791384043791194772312173907451846778113294010412856726099991999259649886917906578361510959418782899277987956817161363110326003761202153135856646557536871517618859237012495443162438728897441810359877550670211177886811481743766714825123031102166686293708098085651711527270612777774547807982293518701822558714992464067365385739721768281640163795474812087105058118370379361857392180448540732841125688709490723531885770512375756950091630177605032708472849470548204655356016631057636194238780747897088185515094173206252789090559913741689725384719030848736500663737865021676878457614902481596622062497091187461993243055689800083020396003966705711444709082411626653170577724783013036936660045759760667691475491213343645682738899901148984730406582317162348288642237623532418854454991919435486238726536588928021620840206585071337565134431908280387810196173553309548290161656286932699562757527090151168658700364095102274489569520661287096758112935029588550611977603822876123152089364429138826612538551465316905280472371338304537898767513402759714148329805874427671930211390677452944678583164792980999197517629845219620357664982458797867095608724763814598122818494272731640191345186525807803866825834289048758618979030840702699217727807441101449941622033192216452817259331226996951121999571490196421862169253173844378565414986884844995546359149921051453496809150790058553900191536113535095160227116015943100555900473271894411660529792815036745291721490200993922602658224249062819195163270777540875844817587199356662809004684071233820121400715428641297828085373128692108995795030516836979379436994416202261472875120908151490033876806099612356993884640914012883368947064666340810944694747065493896142960343580002129699674575162692742745923299993313553040965394623067748740674202273600687936033346747833797842851940229956555241336632881142199837994657050099538010908491955472938437658825444798264754845238290399722868936827678864477136378791460144191334192110190597039951966720612037789388688991774473266061279053528923584095634791273996144430737943628498685660645107783502570556793349005140794948697499601704834656882885125817740354266953724439777392644743662843455082921065024072223045137227497993114904005269231013624492183600707871420210027978469303169951994310026573479885644663208144822608845697014875685181076242911258349873704351282505507644981148226532591283676480575284467611793982940662027171486823784839365008138347100172004364724636813011422161474608313978825257833612740551390012397593857983206629101859940367518266392592427971692248035151905420082119432925792136159581253392916196532753822206577438316802908590395654002928960794960929823376830334039647215888044164693706592474137310280609443586925465803130527807710333137275149982793404482605394536993860393279920132170353944436949496069287825458732734380195404117835397443047384133699250046409445420024836446831372435859652253056225966046287995051979281882084082125008558033145293164750881805765829811649210257516563768114099217434909358635442969558506388702991178967470990155548674963587872932158175910221887606188554041580774840125085021736749510817194943659024222166153392404752443486891602343566902643500801103665788068408062729868632801738255403030452520941921862592189493968023584219824386138186435811066056874684758561500274487863069923790533068208319627134565674838865249706216222822159712508166404388629845966161378840973499325357992131203232972095038124558162680988878170553756907703808669210184316851095152210311828437364904354775366996801649422496390154767772151486755451923601816568718543309110633727511057037122911983697100943355294822620006234754338458022985566076670241432830080919310270983431237136467253068835644357239297246732783504345515080772638001565820740695234847734111843489194301382948541020626990962213008676133003624443928183918515310718745228753314678781793575823581417417089665247241552686216585136468526628390433680953193545209695992980433319523870161296046472955096679479362646434609264817234694620568863338280590803792049773210351900921476893543395282823023181323095617991967827608494138008547786330610858415737943947519874645927225316847163234491369973734345133189376165995290828582616225405803793873979112465611852067064752393294604564313273275878900269383061685908556055743180089080870843655870230823986849780570402067104649922445708662722570405798661639672768070960163139524360572304551125055725622159738793439320210094000649638146611171271504620203158938378365775509734153836408889001488617874797841216214943446855466714152896156632209092641650212979042375055866979782875160233618047493811220172718487400897280518597412228381154543741144154543431917068855912950288066820344779164847106133470263545702708826418938789857411999860033719412511187129324879022956962866914379917061147672068733098324345671894526266148696157666700260368905188165751734436672440793603536362991627849309088668458649015938456021526975688578446050622880469828461055149399595220689338633536806419624718199476480542824897221954630161699506474362412825069954280589982119574622925095340283533001387527882773944772132273603849972474571523333949375838923796999410397810388339998624546761099818328980888207956781915819448183817108372882151130280253703358536992332626981264171556376130544380901399590290731274990442922859473161826721343941737650887266613366224243160259494613547745348037439193970864060486138191512118775930892451783975997207305415820188727556907476648523807878556121213698064749730470214728522214413505427521064059612043012534430853397232080542669399874148473726040543388258662067911133711058028685831136955381906305789761138396561716976254451150078521871309986270087589505878207486922528123691058075015794516669721335562905709279468579924221782040134843848879831149794879413716331313516159825486475012337495372972194066853000610575371112907554942835443883074951903677220247399681065036254053033151672054083471927950261084376904528571607796393710187909052204817160017326195193464602270644149066559409661507202719452332105898530950091026368761373240698884972799057228882425571685494135165142287320976509518029605580325396219508542946461769768699822940111887046558167228994472519657468415093157060204612872450377518385019050740014502527105651682383949931422158105094620751150197379331543034760604205960033064835389557215983801301886144417158202818344025745478465044770713806634904055021889908476507534113586688378671334634210941534951405114103218456647970636734918261917173954404547036204925271674634765894812330100104553093058399995644422451548224851060742888369865730922382408914834516606446878258633059314900156373107965284144913609607760372716508084119393062025333973700936555395767031268252227247554483482031890931951711413336713344177752297620637534578627069298273433219197505561696159227855301692877034972492039320500047753593657936876655732814052755294362829869035943401701532478011515596788550664220254446338596452491701611780831818749862083919305806972101319593186583938868253730349516244609496537343981303673647346292606164443638605182030922429908795105945807963789526694026602258840263636530011519142396302520873722498724989270003795684940760450388012060617909754496005961019953306731378441823595355519691846695647202300573381851438176251957402321781369959710599970211806267814016857589659372493428862069008535842606965149496736261209367903189374892655775715316486856944192934406206409534014970098965652388677433713481863174781065863913831975612049427568244087365610151508630736310371989310801451614694025162204694103041979586247130041931952408088948412538804341061412299139361579214592831602067970802328605978933017461262012138948164855656107381555898262498699993122748963744388447483312040859614036463680412757095331210516766815530325208720769176775385368194691081864523317060564641064341598809124120611655951258615014177722326451148326495665835979755896727998452253057415929646348220411999678937395169721010282404708782849670317884773882315033592800516659568167152706817020371183458987999257804551218593459516875625292907990361938480368354842168153335275003516039483120079426166163615254258398994582705240566920192130342537381285070685919470630459444481535462434492950241979346979350397007463509220194502647453686679187892277829022556356368717829003354415899398010099516306977669312508256320530968695136922690315983845106961207088941671112983620692678756665253780285720794953257137002810759945341996740731987043676557191312377934795159560951496537145321559116062492203809951361833357365317942816254151052635778339519650602232733373474972213634586414095027480669569931363323854450711560907162415665804786876590538615245764740432149428762591901313532847754620641467397585489988111279063413053309835583470778888949586505296435979298486390444950615235421303358135395640277567262720857611122661002548994812083439286038591443300304957333644279066535715203387044179364237670742241771385951456525649768134029908255038858539903793593947441643225373670620007784180555253726806656993779538578971186009956453440569741233222133188165728558761787137330945640301755614536265459011501365136006557309580070521564629852312707662646697858669494178352661985620411701702758352784088406418186993668315933679847549594625959116081771645499105049848962096341992369697697499754032721163024133363727344073700307949180093274830007427957517401725571165125123009018507154369137061131055430270171517547703903010280821331443758299892359339587638561402189466363191626989104570779160591731021473469934590622257798318348936025443638212216219917256291288370846110272591215228146400896035836257809252332588697243038776437431298448542426864548688458332204484176385458831936634459284406120220952955048618568165913831951279661606182535301331348436858442325536914442011749635367988872584016609759143000907240567695424009656433495605966903188232101887206126660542910397543724312737391268416334797953218719208248508999477004855262751264637158123884710023153192062520282289984805307056086182151415516594557435358000539556926685168808152514915876369250610651013141859195393109772889639282769070637521026506509189105245494755656915105286152312330794791568484812573946266321171342104928441445104860390163465282086335678913153339500806900011237411542623999206158405911962744194317730758982072727705248109005614101570523845642754660510973652754549379687869433011046201764324728768556388216576036809386617630481643975220871615385957035023409540401422337205146761488991109111193199925318521725021718037913337605757481288494934330611682094305915631681130386962750171058413292675318491865853068859876276210179110829468867908410216374695340417071128555455773958023338454649885746123922093333207440607879489257040264641186740455027958178779306491346735693466810102574997186420664281510592122916790972647042239286545410767410905948450678769912694379145340667365667903642296095863998574428292965586736923845403718633215139630521150776282124341316314316080132880227094658700308376199747125215336728183681929038015930570325681240146670718297657473610656402280933795222738245614638266361417324491156593880321770258262841758555408280127403287502333347876946528241195619563579031409335950682636175356074323645074804969684108891637393007977699464522434172446296904049618037324302536806338862913696100764654852819817243311587612648965220629378351904616179118790134163845404040096838361499736118939321103466207599150504641726929204642872721756139055183748041332591569110233718759864264210688608707360294595583456257558419214734053885904274812614823149682072863079654905643050760222159588963051471074982717746743535133969872100667478111081513185985593149604305265463109409425540789371694549632148070803113125912976628452357967907872821312975768415384747355443382859317701428850173066073530958385460123084941047954467880890821553573799104326292185285960392721599590079771647605364947665555323439952600369007593914150884368323770212217592439489649492401502191694422989764955831847116581297726571696808894766235913452149257927371979935432601133315866096821461625826383232529396663731858230799184650607991665403332552121483209920138081265362564057739620056863655585365418821445230944408446788576824087272534813324818624991768029843924679755859645239198853765577597242931637259056769426999018458213388317902490291747539382919581397957152632372121812084941344366469339405800525149462138373952679781590574865435637449086554335667363743313354604080547773809835777269237472833389298993313800084829417075509196385600045293201320615744798906406104806393527182920545615446733571073962593243366465485648624610095210491536214958932663284954917293806374720125572481702698194025826725132904336789221647662653361858355544240250126110542134768189398516935875013288283532149336898346849937119159263293623257246295305777272439881656719754230900820303565944149395275623493339026456410021807492461482943610363292634010303283815897136259908037595018020437896053205448205934604658789698117075865197796297289934269987261290794156001490753462826653876938750354987425581847813939435577633729578073909327091104333435336671457127146315931135283712797631562521721946657285548160858226432498092968181148547089624831043140769703528360090925792642209056832601922180990004248151095112053388089217308224790300439691860373509978781754566551061426272018322769498336478646584276065435865274193247069369331784553550232158309638777860134804476492664184985770043794466439252848564510709387771418926479912957123356117630420608187790626160001546937412367041872174821429008792724561762134347666378516264906691846208776517395955292544557835816659097903877066127915380641198655674162465863690578249650532357142765451955720522144243137642400440093759825996993469848544363639400237205627102182712091855103814080307466831803130444084757308450098580281814916378796297681887663835697964790513739894434345183779614399770763189757564428047696864337460135489044598804787192053986445859787113962498749578486692867751186422484560750288673750403941773233877984170218798296977323161447967880260692186037395853420408510383708534429915620003490612523065711688312304088621776134126742013784930677948879823496254406029356651018477100437849246460699072091066918947998432980868704789416027582206020041783933235963734719079033763620912123138196890628814096211517111360248396021970267551338668441785523075340864296042016128181396483592971703061419952380145950916085958713337755685312199377928465004687743963335989394601372210282095103368263979872188713186806094109647105985161326606288626909825934227454573975093079678130230610548699865281449009457034864970394187946763867764889129322742677037938688050570226574240205592195717229196566051625805808187618235274434593149791212690636959763751913809212865865284627052968557253802915576272711633405840419323559563031407279055944131335489878418229495217481188929717421581247905038560218660310644529032309169603083089285805930179284115824060927519776827837191412383198103964259731132734874602543028303117285559305872645107074867419653767015048858387528712774481236876942679026149531887585344662514223736107229424917759079319029541818497784345270800941425895601713477876098820104282353438413994062646176080290845017624610417984169044418044677598815514836071937785164631753727171222414547623952979068322569010836666736156811727759561540594815057497987295381336250440560664549555711379003735692028431138665258746505946165156460811440346051782799457493101072010541039392295494589806557160386450299888869524962078374396028234691413794631530801348180222568592124373064504919712282646882856867886554428770363232390151275559723586570156647330064779605800882616103899633053031783003558842668071612031847335528819723872049887540664149046309965706566029280752214247029913226420718603155538059766258081267368504713958211282379687061351655225298799479636546596870962155496447433027825853218688021375817463800205966832089158970371033993616446629243793712680372212475663965061949770575910011307939058837445962244792832651017618031687405032499640157441496869343145108496652028734688348163875904389709052248168303411529651137033575186951224922621740964194839880926964273647129894698551099214046918838033493591418176306709535480420422633939643965480042409806845526184343834805673382736225726549976416089142992955956779759516599140160772459653155549925912380121101824273670991062996679643077584232014362668580510931781273602789263191379936106670693531091525466635542586719381331042256682424410716333964112042738442930803217194165512659053744799379511398140513706626401706993902048844838871806294705688695372446926979209768712523926898964802021936440645735696334094979805437219168300226585517088758467802172272105198960744785774940134308556345884689702538200919862733903882946952263411954047699433650874529832246466554202072230942029574362478221012805696564944742958247132166426558708135053170905306163158598768421262195575494383644848236934330149596527764116476619566837787693305946831102690545547737920397950071574975717488962104249964640513898667470055254730448534664687906618849922844085291616243546245199122650578554840821804013567720059840219409911081091068661542140365065936989141156848765607252219444349461989880453022225245405817908417557481922449829692991637505123531799698050634364710980348178075744307518846747504782643832765747449609266998192020186191387689949979945039225715508583826732738021440834377219240970521138405613955984516574889945259233171546585459565485748217533363437194508105325834876843804268874193364957807267664241432430554374971647402033166087785028885501938760313985746248409331204104470417300029139360487597003012506620871382716916415216896210458064977696096411416385494890123513840332808282252019396999069268727303636646161004789661134810733458065964168685276360562510870405497431967492161255425086889231956693010141736987001765871677740635852091159640350760211073947264962436687961311638411343961248815705512778531731764119109779861794219523108742780284100945865035716848898261918837717416364941462112167879069580955708976037843960075012543837163017686303142505667504020667349348061002355946839350529741436132942792178886353722130960969859409653473167359952147653961831599429748809071418335737470368352024104042692548579137456246262157941013609737988682049599690576992955192600420589342770347523183485867040671308973622851958470148311289160687672834592761647365665501531866779113977822698233893316962475057830614804126442038771724290881542198136649740858627855330695667256574198220942612411152615115979285924048846402770008226565784313496175572219859025937039692382203912555608829103228515827999925418073291563319990757171958575539330576994551195225983843742810732577665907037719740037812375450390356393123469290971330511255363746846559410231896245427336876260342615976278867664730272996836781616284946279922476135214713863756007560882974436548445399921979582295674707075000818082978942916078988661564242874735775183817747852986248560469305226212194241042084660376168400604003066573694821199453422065937759021820963305144074696674339485399601642580716050374429309632616269570905118515857451459596539980290378166388615147799924752127122275318888464949780501962265783398194133746649737387485649245581142976314594154203580927956286436016078108990531352004814595350564918317022532280842863248505009807826668587496778094650098381943949565517596419708841493234445377076671227768526172614900998439067283520435571567696793539127972229877850180617854973204716470865741408452475690252089988043169709764001669527360165074981129968861919242857181912553483962639835848524464083981685832059707451606876391481090481925002230371932342050538242200903035521918258505190657051941454663817165955035203996835064835512591409530708820437045067758646629770707767994653107585396338232851734250866379250554538397526164435765789712456540697772397021328972677603828444573076192991201717321496586985136909278238236349151004845235231659439303353269886631950998435727922489182200686604889798654070039798805128967125445982080267748494560870300930247621217666890905768680894279859181224875489720187058833507544964628648366650718266123225776176263228808588657758241692675951298991728270523394679072495583660102974846931447340599818746402417965410623439983743877227751140599883383191305797292207481615556176570300786355328145766430730295795760173294853435741044543511858120109617101346924657175955553520353792824570289346540371747226085729608408698318335487073233871747120811232774279189795636557102755114301237803275703871920080035290641441187822255639348694652332737263768861764513661675492670672970145465940113575186109596600764319348065324385228970774004276485398414992007677819658017516206673032201613124140116648952638581120928428905682596261301551514690723347131699271094167710258082130530436152601463305036084869319828092832764024791840066008370705971477771927561772583932481598364448384617631865894243754082419790195585175581196602242646604219985160969068769657841526312557406763746004220042910263554900092818477247802411075091201588343560374194837196294764082886744728441524415931021605864784409834562626673776201249670223877657164334433654587611164654110982429752759505888391870761526395512443461072429925707460592944226661620551234098945302523806296166607616806814927476887550300511956084780423624961844986230732184369646706390832944769642051434279797022301567721738365408434855683046425146629298048865568782466867999410450323941540763900269862277206545810296363659109148446519071062789412342487667203423412356909499759670207900587670216333315175559635682552922188611444021821912719288366966719674572907143809054981384686104501966603433320736200143788793421491355244908992407821676366779655624709953749688288786025093500567529339036927228810392318087598028445134425513803007399386583728468566654428120828803064209109998671051278011211084148803503898071520652765304004133479164401406830452724008841995987801948084819641703459426206165626541140659302744976919098690498138892231563632838205057955649978859432464204265256588754982692126368833777259522736885237699899384592888660164736617889627799768000566632871964463293956581420004179925418459326448678222560760410539510869098037150871535416651066795018427019147631669677846962987453782656982037448933499720865117752267408768479699391749615630329276824266209745812167971244858017711227280369192449393537749836288168304782743384720162721288242947995825289645757282635991070846366686718193770685485123990627638528520209491882406406906052471377990882747482897191809552074227485430864305263127389387336431154398870628773810596594732962502973149897906150363859131755732330244074771281799679679195396948940264864782277951572695257818167299694332402960557480790623158472339215757591045108893978206585066832418961922936773926440575681019217697891143591785553077086079513684954309637739985853585049656161478307341892822244283545358865931971571997351829965092349626524373392223675793618343039326168370204381603195503241933930362029591194982138129488063541830320941451523695073682615125818721071189414482574195084681063112379877143278206302695999116132979063846067931968730422256021914188019782250509002685599500139745048607519292771179900319779276674473332368168187795629890379487786640200769479051945985296924276119823959917663393177351628000214136591468954974610499436799975449058907161410581382475603578658675520499899446176620655775860235015397681658974057312295177426902230988483760937889791136380752199495074930382771743320919212968497457080427200833348600905444341297846297572195071853541783267108160343825620412067852746718223982044395538103854715695867655270753362780549084048060771454040208355412663396492924525291806577866307095148948287643851030233947484803270465858751623241068402158898335098973882472564321631038767283498191976367660550739002571626773537054566861445166488600795572339837583363258099994291380531689800446279016591036791388930704624334259452239615548083822353337041208973483184156336916993787801960071665171071182299240838969680954869713103917265026016453551225208961649593666816563812175901470353373719371923569554687201790075246137500467909095517131352743554118113296298272210621162676580654041104112892183344698116004603956056987874719680873731000233858923348536412473874949984143480733793602650615227627118519309864049685532828249815538657092375631362068601879161948185271284477330847816649247523439400260775022191696572124880146661925576804672924024883349065800860769616443588995994748169875246828004001782713261386210647954255369421954912598551356374521610546612867768117444642484431187006357897961534254866208372521489637533942705080450729982821531515058621820081263684874258959547635523388418585100099271564249365379995356433586501169775051253517015829924884773124096996885002943608951632641561132938676069602168839347628471628626888316869409450603972075734648800704429908074345839578050220318797170843103902537927494999229091130841477239915583408872022580302080728297752134538351287290700200695199288879759452031760433620431830678707336681358261338442444656157858283201098381152607448735086373887102626760867179248899384887630720595584539413900998988446096428704144878282862056966117727415475676813157199967995719306982324850024681033698278179898400283556990115978956135187246569942423895898960550408881357356006931822468673631065711788008690593192179133785110839590919721040198599018535154929577621122243306910801734548631655568970702381382002214833149259970063286664814966168516636026716746705245565668979264557014233816849928203076461780537073464154164889124578883539142608590291338841133249142606392205274943375177717426577313729057366275074973304745643416525637504668538246863530790598550326427456285192705020531982556879290373658198607810885779425295093746702886500512913712036633078108932752308231714496812556354223555443521190331745580727756125473972384256656864485373500691075843183603049011747572109327902613213916248525442170572519703606758090525288932234444029890786596901248985074331625203675849289622574127229042243454734804875809743105527363006738969448564277217974346159611932232076161969589197260270303044678541083978729745817316430960223296371629101290592070662027656917499647572913263198358187066034824334223418566052438175711952977799497326343675551090978914373212410096321300010509968186656235747789120320890486772088897431278736144285179577899762897898952395177119177315070585665294325628661946796207751036832184298853928985495476542262198133455529880370089546968401305455476771097099047376064732026095525921364692369682921310225604389034815919549406884502129842882750263353949547015746274149108852460059735794892547745897253882300100330694408923983731269910960663015213400053409141679501253087856122742707357599285136995952484327079308947777154860244923223417581715779443202960830320827203639554662077418079852680193960441236034107377753363689247541111183244396093267956320456397345067168933394329314497663936852042044813982402946018395680562264199719717274775917432645866997023037894747889938475679463080580017893964462830277378009175816039307637232218253987659114330009034985534739982294654046036708159008597119354065783851499212741293277024432250074613052234423670155137025080428941242891388711528840360911883995832651818764397713818887524504154806397064330165720685629915827621261484380204303794455346798821670388672212183448002653900857481293292627078249629743810049599850513490535704345822600701273323269787946902962972805552025066332941930446035046712764399440880702523170387632004978880327996246408149536732595491108497316654002813210232280350339489134637226042662078523127367619073860232297935712509645017452815482811850441185262197242140481584904264304311266867716521927272844787140859579013581438120759577468171409958001100639179655842146615737565442209064780912301751890126461709435286937850280861324875424056236043147508835524868683360167168047142712995326323083004599275236352704260615435924345172218820336062028088994865712131422120972717315993245060654387453721902204830521160789381050449352658264564491752533825384978269960462525353012167677632318925680005571587852920160962958288452872851821300572611494626506726620888351523354560317801555531669709657534536047823553621907774473054474897573741076302261959578858791883408676473965354873242890415637976343797588305093505112155126427974504029568011962103520710286416721428604091385006945946871859233470942778300961642055934816938260893413874914061165571269378873527863640370774468076348079767100362740833476023409173277892991039750282718231515661155553963028193775987670864781347740812277138459601292232106845529720495529804588721028513867472083533632117026432597195897102305254353258598866244918552135594845037523208895623072344373498663407845910310286992632404572295657379026025272897731654737429253080747793636742173314752959768865293636032445023058881185599059618049383127667272916690680098922715121785151781521286698927428149551688017945366301399764596200837830475144964281962137015297027952788160707116364335511681676655379220302091978947498755168693717765750662063063321955956609578676559377521778018530970305017638605324323236036537387935073180505729461772171388557477614700759127498018181354138257245070309859369742222767963195224545513926345552489757371300458632741221598692800027339955682717815619637534074338346126952340825869137980129442831952329426717070008784100016736753689665781224609821728496569405679000418135353462000503071211073921006743282933296904146802857944726055825738968054070934293499044210909486866153743535440431568725263436662536203677023581795321481248286060298961457233490192520038336415593905168879189705989587985850007844952098182035329619784474998056950468065357486056484158013025146502851672014985289454045356226768234884159920930015444069590250367373646924385431506246365860448830004409782044098559906619826017195593105505357458990333506847433544503054492590954874099312123624583771615892244904068857895931702773662331200992341101872383852024844361094816683877485405146081031689223104871076110225907376566996633095199150623360824191660902746571060063915855056422956497646048588707299122955368936596254650545280102385582719831446603405316271404833646896019296992040891483128307648432780770785030799870269864910011335240182798889833781337443514649245054543020959129110016425522446216102708169690633878629660295450940564939171669809167860559320647617457202991892321589387335293022948944294664379313071535575409192643235222152572503431685485191748337134492477506447577282323458511000007935502878219883337964320437576480131339566218689575777603515355356517535166521471252941740840363151635009285771139228548349995259598713184605159557665054143602665676514411903372227258568607526249101476207669796464925772514111462038369870712834539014678459818842276091706848394897462326886429218836388564547208490986509350822098906321838888344782779893763321789340702368641224846946547291013255035978562850382792835926341767131585658865862010266516952837321741105186232795129595619523690980445225440245173710244374873548727999466466237352100531760351930375826068275458824745969749885758033153422774402979805745548818218360283179175446989255990626459351613880380850046660074596947944208265265521011630212746137243978222996312833832085473318940167875318408019714978758508657230377729246011573082508349513966205797034990333229791817346335691188344453848444747756625570054404552303249866803454730390974889652805114128469034910370101791334316794151112112726702684722469445372406568395969777231184633581798740635428758850215967068578109418730327419120469302992560782764916024976185790066659251161988660702226495201072541410009516774503671212790081203024865225674830341086277075415535245403099845693907704603602682483221063572096356164074964600561646699915608787647655829276816240154911926926851270504061078949436770801314283052556843953632871471673851503185103477016958687280216372218067983943780977255800722740145283316208420538525848901282401749678223656458763762026370436846737924033501493775073461618084456772301161177966429809616683023205628845111731141724437531667556284041797228839419198869648499714091389493031370320976589875979493298685761143794236506552553667650607762708946496468152549025200999834394148938951784330826277730780211938186410526666306716916330145665093311980869193579333557677180520170359615715875206436704415492919762368158018698607489229181472404545580906802621043466714548538983530207646423000047300523372630853690345659361697298483241263571557612950701488950279156547035383817555832094945195803081365988204229447276786882769973168895823459027314103378270676176206451729049269843119176205017035725304782376577024683422407835205534876374194483705451320710956733313824118782234542968199196966780015867078870167836419976088700131948826696696766696875160180031536324450281823816362193516338627091280747392439454988649376595057737468822745107512490539179823609892083510136137805615378873992141989130058567958075732323175058361897636923519510526102555985859135454116253562540238499228976288596726931285034320684706100423173143430131800339102089867302948625383788435657216536738701562177368406505570796841268453054712312729402067152011425356141838666238876297225450161247322955561093061815040671560703890284514624353080095337279517293229765677693285532055830071311837266195174253624976265696764386110839763670162512308146741567294788880464814711479729767530368227191105706591698870123399511462131972118180574802350802478236086085525894918052558841467567005742971981975441040983509872354790758863199536595147583416440689344939857170051979757719870676907668456591821748704680905060133560802598318442911644593321025740935199758999468472992981414414836653537937185431519741477545070584944674080020587977695630911656827118268439840500140680923181020829079730155202766080535961280729042153654032921475502411736270185565062133027277307901387431436338169899147851777415294592846999317006253417992855578673808173984069911925239202534040050940308350064081203487061646961508372645591244268892332215330954787054585140048012681541014008220699589311792089482427178696604287343283533165539944852911293299375047340262897085844927689101662342002200301241541619741767071528769945581511108724850852389898424922309069140835073490846047483539608947244496969249694197189986881457011161748099959491958226518361634262596392845228680275060002514854229182160625961423216592881693962600553013886486067146614787250738332034032830475657681389346945521454990266239217074050132915447627155537741128273032823851285637016105909970870829083576586352150087786879372010995957613694847211854766381003293113029440568303791687761058626262671321193519831135820336557737414148976001715837625438545033978168478169276944210109343337250242518853050765894677705335527492201980106889713680074757662063109205114544773086880466073062041728413643781333465431414825087062991168733095406731172128995031163265274045521134586809531230032976842383130349198187622309437520986762339161890676543899430825412529493386311887307523747574742448867034624943492195056245669746602707135724745660526417902953204535574989311703667735967558309527870328618143295416342975545452564486864682612182533907833112937666716411729829622461872575688300327595363392263452799993239042097418793598254019751785517248434665567335953713325558841715276852179845924315339145323797969042461902353755503534289392006758558857400710442860082756229977904845696828700219892979755708712686422901058681415904473087309416844102834477235362140680158977566505108110395257570965608279432107193631528715639874893778749096572981670918683435908614043941860996416378388076063948646509305534092556450157252582012317341210915656718162179232042097874118068517693670603483839695708759856685546558170312332628643752922801146764370919535042656886244423507596804558073603295134966606969757250644084731765364572208436328099813710034112217341513090589867741752495347560039761085236468923109544031551385922936706767670203289365399885312338461050790135408612477355032711603173604871647495045030186988397054837425589641498495313538743473756461014862421780495073756365034004437216133062641468102503890255716865609904447893851202332036950245166177499999038651077306695129969489759154035719271195066379631681514131845854002861704601789904311620548890776720691904375820686023153954829815238666565986956178791043354431510125757912653084502130550848897630570980543649749264634527923164365543817857802735177126592549794265491859887873702545066678484602456174356131912921620246891459557317845521012732229637553989756672055340959188299650231820166228546535909927805841153315987360826962415947944151748958175418393469572195740389203777256522731070571848950242705905190333071509971310222037168734706998780694755743510448103047749890351317900089410817881938856483593131779343747613817761480411728583280785968301257125140763616416744883463132936471236257061914601315865056577677039371187863081686078774898166091747639242912691119155560703307901959157254989196642325454227283732726578238495481316534718300899216438297375890871907103674853760972733894729253814137289978796856394266196008906361878157420405549902249889698298907631585441049551996764694191929825562143480918337757207409034756479818934866265904109307435506127533709451668198430897520526170403094007490966726914483831001191035452067878507850650393480400144262139193287947611718207479853278299900108508887111538226398441018045446048541081804092410108357625975811942565812626053490621465045506215633667237413730349812346783607810891550340739944507104082431336668481337381601818128684075627279733979904657220468139023214794744847400922395043121416447796853458369690775694242705714346047689043511949659418495328779308126010418953274283205466044746082844761037409768645673476270099394255749609921740962005751574862155103722282421413736382662922030866286981541696102949554640350598463764745372433048899006019508640737863305645663487894050232769299970635921519437234366441074922536208157620818264591436915567722437285849190266186055549062160014823343653257259591746459213054803528847359847152245815980903399618133629956622180835848092155138798556775501393624253725914332747244783677833240557544249883246102622386042218007333157158990784322446205782225369007686891601149441349460732733961092534665369884973290940562715904044519557048694155563239718599990115966871022275069282056847781972115511488001908823939335677624921842514501068932948417463200495378629970615597004739784120336858874729082748286338449763723015645127469679130677193666015861224044791517730494240583156243167618017368239835254996964893444708720381465061869598279471321327922728695941851995336710869483147572369544079844398885217414511654885938138062844900198692515836997653312172947759699381305368130330933588683316672303700511238134837538978793099046193623616578981575342694495226247524155099874899256704316667237050315607187239844038134809171952685828459186177235294599304714994302882370094734828871962709726026012164668130237814219245860312202574177531999257835814810585365033817202231610821779555376445899178084773159624244767236840535784283902060186158580288170359224875622889636562851849858679361399690812098851144242956859772653347093228741461132947539845728151111839713851744870487479583577307865957735867724223471885408509397244718920843897646203676787541463860130662116034205675722262654930038796396377831141834258547424518425185957252026070921741946525954209172474869355797874670556601870149183205831281009390250082655122769406380576942680086461763274494234006866873623505040828110089003026029010426001260915029896719897154181005556558547683500557683379264074619439297503781062830199902905964596355120508874970620893433884773075683950814579829621532185493544290333100085179483934982252800736206092683420689566301607997539808794619067971404832257366175895646710386374028994998847250464122814212617796034155503264365077849716011206022715278631325292771243899063803614526283971143968933009094693135209543429057932766312348697307919104803083397777249965647732342529174012487514353514855321435828860564477519963997436920563119661053033855174070361272105921229207121452768201445485949576035219432765432305610133148439517182563589201415697484843927257367690248339146344978843017321430669028181728256929937010394139434444155683107543738805576767009233263721966659602629656447136248983693726762286204265869242487178409229460378680311002674140810686857494171796053619171619974242040385332515328729614651001111755074161186507697207784804645693263438470356974699360092679843201970880985310879780205767433178478799024743515290776906759251192459404779402804454906839843010946646392428566405403747437099651591055355136180075024063117027965540539442510864465508617529326935321981342161275568755941903292919469131329523404386927357363581885309848248346820812491789686921864522205547248202143216975393076194112649041101364390565202275843100361522099101865732171174982111691620035221701653371705552750562934446401970898120191339899919567323748214104513460935325370546758252582724663477916673502355693353586655269013619051330558793156592103771506747043397420356690639045908700335463612175435224124663181723462103838055974443063200363918518066795185885346310484994099415529075779546963894163418220398628581013984967762929126919412596727993661161714791858975196471175901174143836630576674909347799092039317142694674380471087696830374764904643576685153210364398832893104443536016074485983706245786991038586592708721883742268008098168994347035736054005329417579393128110031283256349715872548200490783112729268327210678024982033257559292740137865187495083016016638095620556215682921597107154759463238255102414997014694771661457017259404472821177910280415747227078967487171462259619027277085645419032136351817395964707504780918004013741187975935675351972901935519094372161476386701550962182247494556134613394369502414444907949459397655814829188892148517437524113706594905399840860104420347976984337227583796695215696004074258787755511313709482370941529705365545229966033109154082921900501874238039480416184656827347975900581856700697292688368732522669332879870617295799685132813926456503564141465373528908669070391105752769994815767830894833549633256944835695877030834105486759815190016545847171692035457733249419261891884882977775292823593081289460230791474805278868739290817782208498036834120241909488445435797462636855699326546535352582419929772978525248557725481573040324100698017265256434152489668269481294123353697529661685780687954879312356010986547569949434353264451110085308584126779615093544476195591044937050367447259828762668510928435928744394760636559701629901465258336450714446982378897211084560243172272319373852261946569741696330267344497389334837454385415327575191878244682012200745411731364951276218364593583382941862047270018184032366264040680704592227645015406020347441296641519114254581995103743926851064858128327808924295764135820832963967851375870434800650119317409812164420200242880856364308594848264893336085570810941534627712809023167390899816991226409382860840132024033941510370516587741057886468524397721201568821602549249359756808394991410222582172431502969129053407120887532524583468417116675661891967513033375320949431224610026798167847161113229099410907931150122338522967151639871967771770994123070490262905787822264348050269700903521233699266050105953846657904853773617982788863979344646047605934597855569713027453127534266117386920014276699072670736286521306719706500265508647260057006002368046825961154572755753074601602491467284649803686008667075569933321205817864853128742951082870880080914347887343992587994092658273782599175293590813784027554948000842295208836273050962949433253068549340313933317932094338647642645380041309642582222644823992022673891091256489103637145425730484749309049769466188049658341111281541810024259596893963236565527827858551231215816100236900904727666647757794336909585232583935574747246688835587011407703777436297378401971063270576019308023039998430898393945924562421284400595761738506949195984502807835451768975450516244303727696090922241040405492009446481487012645459810670805431178524103614086067607838942773142938560072679801149654857375358606062811526000508597864699550407657679959322433874504637770423955716030461600196329937684030998891337373061336833087487675856296854325257138947127308245678552776169033931605480765439847284072735585888425637626411258896019519916013786780432389001338671378887956993266683886726191162246862845550649986312721922543828083513696767794046101188453044376142990972693759054917851477593669913474316004811883481212880688771389739462115466393205250628007171558378584631238375510238529176671678616311163177727488912895590866137300213537294346496036474783612083291356134477432598819908300917386840906456203626497538053472057820972860559049836148712389728554367123314085528976511988351657504037298987017295470858177999083897053583354037288709386348298409701191536994770395032850815110131847620778260836626937418209224542205823717989815365447428165666481143098647752220004186230625586606425938367190805839207299320601609664141597978482467042596820359628463682156549023991249397220738726682834174341896929275871959057733852832211678690757985169749031450473009317763726423137279337994196668603983620464642933677903685567985329462738888969213637532696305726097022991897313324124556518635127658063248535701524782997526095824497819142027116852247859833587737253222364299234872117996438036833786281672954329604552950785226931278604642083259243827930103793038165512229556370057949348475516117789878381964787945369046916350171437606012510752618621118853071565312398278631429833536459803131923151705375092827048735890424805282881082135026680301759603816354798500438798489241020617615463808899256777577695833304678464992641175297896350060615584070112305298893168120712021756302913771288562368131565509886440810828508143899116953067813997368050373820235422866550584428727975710774202804293530335854949400271006321016274983397310372926514936292079976705978814046410622387952523724105417526610822128949264868344055311932128054937018536917983231978814664450003869826126204065529142044148002437733664575110523211243762613982339866110283918941696196629870283365419589750105924476366535877426043924039503851524658647349851466277951407172159974548071775106374281037010621003401742223314090753483111452824774960481188180707645070904720038287610072759212305647451554009217435518414514209247369144409711510981131767618058819218260133255801294457389838688820479291557045503059522665811163601907198921467575946545776757549129707476171017370313315700080467949580246860079471855141075484605209788479139148822355535617647456160981081656784463172778340145452706261921291129066568628456899549540239343820965955548686362658460287845537996615936656066822157548790306033064183438653328425568529726839829045161437777376276203790749098009151550291190272874184503654177858661942920343061287821042203780599598781125082756837000245796198343024745711991674552065716816610266414070880986136901741643068326361055650379036243166296671916198549182533990074354497271357663370549117533783423041799517787537006815386721086475503309749016288502033154380951062645062079540179816964598965448755973247965350442996266136085492204519565255978743110815361321024101262221223594737127951347308185214707674424014753917934819539448333723802855333865249190139608255152975892165384390203632893814009599974365200247664596509142678801247139294913579502106023633070006426952408242311583150579524168855554266090020913278208199830896237854865645529988863548346431442068496641053257306882265263054741326765158469328228155311716927098926334181158392805929795091600674054645342043200593438379090788539032407439278132444581625364218410198934749314540778825869703430160994246435941749322214937074566175763469585496719023123855853486149216037228404559692541979081805585303915002254871528312057935379141868690352926926224805167457863468958469694029126626367594145986304658407915278379629782870122181927883813805566548915269664835235662769292490375000856099936132334359291793400602967254091252268037865922146322961266764241171163857552099495404545447822576081720994656731006529307314747072523536028344286371930511949929943631576589252657669110515692221624712873352996302773534654510695599351791279928748091202258575783292873188270600003045539361832657352192610671249478854451274905653554682211537959154206636914157229138558548042466375767418348662464617386439011302289410068345604791058659553995303302632552320198294220162174291200480513414939060268435374134945834918668721452929363484721361313573644446729720347536745494315114598196021594459029082405310813070307167637675578806981525700700648658831300613732481666667887409411727777810277135918597897325948657901117389512467084852639002891926731938784098444115868106313765650080351804005553087301765054937631256446441314983968604669184427285033960793179286676538283162085694311427676607135757652853426899938497571331789866759028743097907913057099518580463363551828084441851008615131144342051221612972647886007662654761335649188636056819567712561168447976733377139975577663036078576731127756786976043304191169186042196870314565152991510844832149241676366670577964516821268510019587044878376295017777272135886380313612237642374736213863246931355369038951688487837483563302230248632019066119301528161151672483627960097987585380035494004598360813178739567939526249512908461296031612561786685057736441006496603008608923497051600656624324966878673334056928632105767968934523099888246973008674549099409463214280478428601831744090969957860567555805001086035087605045537399230434248600061019246895700751250369690781490062453468634961739005848846620439772883818352532921819027421900320417437158282652311234139179942031246792805346520645171303134656722383718349525122226320125521607413687161211722616049223097283325530106265268757841328595421655672456169732344272759048531960683484350183709557905217076650244611855241235636088845035665322795981160269572881494993777000537933121269107434028617118201166405338136198790104257303683100565288051793927231843090688843354710985587349674698835794665443462868071856602856269148352316560332331301255580386654290560267647018105185325651349471341537438567783025707419264357861262484516330112778970025904540292404101800310877987877858310671896183847917281676297298796321351905180237772247654503526173084798398798342011581474574499489535914658303318214342699474939509049325896376299223117770599070105137032077201588927797413169985023297641877028479878406379342301238894615140296450136875006878379893769563399688506626806637594139417508299769056438986475874051288373719242418284588867005763943048431613584848988965651206178427848759604987400714652632912710318914701850556158160364399193429187681013988114937449478704758109273560994468547069336752189627979681261041231775976648811205447461415125278959324578423404426533448125184049370883999833876416625408750853567641005665604796148994054953231497275929574420886023267662722162170224843512391914523559022977271080466459210536179975161745087301103042378624137162802625460905479451048573319962955437260835116048605359591797948070629944119757029481677907594125503249924561334917312469229433535922157799880577168985600792082126231841244658465003134488857843485377984036621084735402914755466808986833192567231822063020640629188285886593545039088829528650395705870884092740036036666712864582522416619077006507455459272161828414675321919947779396570038796778974536276091872691832384702984741552900392533500861115206458247788026599526802388235517401347668140591575521231245318905939424025819813207782203760605240814817466686954538770088988613823726498803734730088126827498653053279131638272346089072679497336531029283862933315198618927551755965623230810382710441380551722724726796656814242689317165862728598247827101011775807285084273032401668335055956001229236289690386057739839990809281505451782451446412979678735674169256291749576599286291133807140818403682627727425299066772567465459389361936919636775902580637992544419935667916982321967286359329295258370270219619945182102528093792728367035960198124859893104122912610140617324168905892210161238834746281301335471997708177133268456437139589749091705524023373359960743581757731943663537499662191738922389936289184136050577883779670322492911480772133372075561741910513081225839534885922864511726126243535946206168664003116788104880817509411414974784761904893836928417092187853990271541817880456823389080272844297275226268781571952373531022985573565200995004032663826533181438126948594099939828906377182680223815201571799006724427314193530972176023666625875580450575502599986834547182216420859826093882184759979391798490906595284113133697675433347912509446934819282450490985318243194452399171818995394859680070116653520166086621454887843072501046128758917958107195629708078964979770856135968806549154835081667185352839537743629830570672473345381248532735421214053439571527471264912231055896921267446493146904349811320153139610666413130304329818503978725507851886772551185260779145668146545045379724149953148757834541061227122380802818102914501195256427831559336129184445331447950925602171261445086378109606961418828390930584240199824707114449650230200412266658783089027097096786146961981978805297546001511238297304908558272323781362101579240373487601134673795840089428134573496106558217167353696508606217283993832933263559138199875601904520468651445068402706922519253690491322824560533399309259088939257560839599799077969622894957756271697727533067404272197422818188382246866686122261290968454754449574673747309743671789543663132286858293776839325609485698144204178413941197322574183178532269634917747924596169233471199992197914613951636439657326678184700729451025103370624247722486652688347508499594782270154802739564410569804929900367507304867615009619890927237707595082513808016998295541302187442402466883924674541782613388082879327167959253045523296138868879965473965981263448004227042079174280479752904316785981237644008332950767436068204812066462919538970550365946087579497830920799578111444546024037026959393896390025123619921470618073029371218992802956870670018416643443592567646409459636065961029664315018748220566401614606987488018559945444382659212606167565061255350854548289203261132182428050756979217774771197186488283367524827634496853433532467487062338500001611917607808838691282833043753232468199696629617180842039264808058791629891640599937411784575409756392265047409597194681399075259223958768964370239756512910710079803266975820537023317834485860431372163305407922396019229916938367030196764908412210369284803969813991095516870406937156446984180189531681738875331846115956361595818631076659918146958564322845566575061075400883534396630644984730161691667163683366100537047192460503053600004284020397177127319645129759564182814905288540791935457270701368290625826948320679055777322958282686873695686255195783712155761115117741876452754029625964342431758340779145673363771862796237313554112809216282025396767151585806819718899968663784975109614329323422942158182268982131041877173800743609753700030187079558397521485767010696075579943780945002418233007755392680631674098381801169214617085784877261096454105861888047567160357113050482496506208540866995683237950255624675131263062424453101722891167756436368975558659145381242319326627754387414919991480650945535935670213521751737548242207582356917985004433366264693351308587670997920523299109166350572637320287657000241205346313802078872082280782321796613858442396386790750656864114297396161315396131786039512439634519462309040787072537154914258228306530354360908183083258488822732471223727741351502664609203977383776882421838737975054300635774500002609068436956250623059209116499031569217573890498941520089936764624771976455987856550111563219286929012078825450830497856404601394922454381734483375592743791870732852256332091947467271306547236415531539655800506257918287835917363259348383647101801323360887634030009199327785970408176476118739326179161629662208282213770892946915554000940497589666314685136435110535900102941530353903272549905066980725328951406382060787569677780530256645501596970248270791393527874016892510785753387383073818318787723104229258323866618875530471606744794411094133153132632890142876220896643719696294680119981778402984970473347315992909929048958966695702402625069921022027040257005581651632673633857006795122276623661363991675091706063384101103562616978180584635262353397035579631900101022999661749847843587785267269553138768751124786877475914951871364563853749325240028575702821197668060716983414829170215674396505945685718029293320809885771296037909282044342607284122322385484066353705407961144156912760875021866466261760866784365921186371564457399433758041654599109319612736883767364848546526768942466346913248151469395463816992146314732183326854551485429935326773369180389914278894163106234958064372409181791715580069640158548005172084021563652507977718256009089542756314216827202496991796457156758767201809567773504918144285903471576320597031116048410242989002310481879890983945815645754350508718844318711394162269843524674746107892492447617326059472825328320495774709792082741031356548032914974935296594881373466953792399092258869636814430063692282101570214644353896958653231232426927473127663249693591970655681210958930933881208981130312945270734935951080291953533060116920445183466287127777600041504880486848690084128278142410327306444777191765872420079929657997783108299243063699330231759896467673130721812256775574519775235396459709364461747424193648447543340881804871620071991122162814791162967291366723575520233770142053006310750754321958596942231710658945033350072806517970095636047829519720956231574601782383994824293258349637077241685454361894490033266803171296818541285097920505024374256465625400961584701906940031497583001088831090564647480206486767758319969271534536764732368428896623655666104562180093492413569804652458641081061861689158456562792188306637866730066006395174613487951274867484338565615787222676944439343274544107591857976839478672294880716172918538675644042050288806180737992860819867870470481257493315541019923696178989906358404525145095315394604041229046699108468781377565655616281769549934523673560253246238283357094537051097576278852303782009622643414723992546099969314295840482715288290461473081817902688445276221725494190236674846717414368754871999866188187949614306145641654377016140882667968893641577545345059078494782190838323626432559047106178742809154261038368378246139806893918498408039011166848242181512398638680096440951698277957894558373284472811162767517608600971664628249832719334440096101325148529186714937035101660981838065693981144964044864941993628186014641355545157017868715151665963211649891012214760400749721736386210131727752072914008788318133619265191234683658004901553335399585473233939478797803404530050579239189886662212334699475582351089414930532696574916734719144530378562692077702339010854054378669447865524941831013420581673378306779640085392993432541073003651718677521061614328907218274315605979364931057565880144824713988912368246447322118237496852180010765473196685363416771312635226063068531028292849431236191900794310251824844772766758514084648737353529422157343265937638483048977707257177551542573881828024801957188140388974229153662724296740306919138959043903637209917447237145702133976745814247068518734723677587582633557661268312664990039353606209301585337775051228248465650789171823217782233016154471795608725952403656959563171001638974299721284462365859761320546447864415839494186163534846051843475498325874753555812806421126242077494349079237037995053604094190277472450652021635741199202566007252671838333950801957110068952166246991083834880544424533263030144712953931799693110495699890417800825329887701584930032893957688212109335372136423238325292309978516412668797840261966726467134103367384042368852628618429276843531276622949185763940467241496126175249813307330834019869661737524902883534570085803870259036242864160652176274529884254314298638616658908176810531524865887505848738250043596317568608311484271748787940756310674902308080243568211221870334935492569389324509241866948798744717487026906406499589273769948381068687472394298374947562608154113505958297334300785706481763058730411423498957344020786407846707653842331865604306019527609239694854213147780082310045476896997042869347688436740167300967727959032290085220267715136815778962324943313314589115263022788577347706683833506859139747008344599086012512768263437397962731470021630805715174046919281349333520346538498725461113089450211706083199478045513446747836613387614416844802848198202740133806739649595689973487711012503693485326704788707902229464438356471125805166511016356154798704471377537226185868790331301806936502427715572407719957947526420169617732969291996355914217732076672841796000288513051417249607306699381490048690139699326308629715814207051807264721056632925647171247227004709182570383102216153863705050282429634564424297563042296007513896813243179071630729120105487428250561535814051161343969900223452554821602848642382073328623287023437172106360754841253185419191515540299908922420558173117676233060097815540793150971111620698929497627850372971270179954276395002495821031203362328123673411581171062549283183208959558577079056008749271644908852111648818142844975297626646418644557943365672840957721873134569411092694182125215344688880067955370707222753193528006808490217074793761645633587177040303101462921104617663107073179066440903743353230912700138417785778046936417278981038405471615438745823912448951748083566266315534610303351057662344954599782407695712439091932776968235695318633040683514807643530926966018688524578638272542928411791565477026082077851357417037545505553937978873323203567090270560876653094652970768477083029394975002563139945771455685413809816248053366425285012750152403230447413019911334014784632221423710423724282392591193620702712635431895868320969388577920808317692039966211162280126425502685841858777546397966038046405482063458321233400422674288975016969244040872318554086099867822710861817381260691952314908086952375192911235212578430444221668358895473872144072633041423207641632291355980719329803321324351728929990297813400763695701222618495742944102699499978986029452591993782189112487598192887305975952589393511771966063072983642401581695097186713817081229177383568998787645984784910110899356689883027018025277374221205169701878220720349717811893088510682072124825632641723381742101905313014613308883737431069621516327358969012623933120933687538620116348521692773192541821602223965121216835364885515369153025176454998727234855006953990691559777488332678744620977507474313056951788535846357902643217869191469267219385848833858918395016197215333207061893901262312838684911236728498465094757851108857884569851843493820357836973849565427276945658965136688986918538566808928143705343413810024494357621983458867930800251376792009639488220288812977612602365025191915815450842071935729856550275284975224521560983525204562385110462472367197967163477495435310531662937245953161212613929810063653484290870736864751467896159436241934188826550546899952776233928700565829504379683323744046888359363509325317092127214024146160233766054128079871147605803677451101637728536708975452507022185943000955437855392771411491490919010669995191201900903632227881829433141254686658967553792017755592939275431487627834116919410905226853916940031891116796275274782816239757125180495816780390291513468280263951801172709359377658991996464291809604657963400112497958603233973358867305959219755693283806558620617946570741716669784247094472398047980316237681810114539743582029469207777827429680193736854082893251641697600718927477287144706135180293967217883140817842586377573883773660975855654181272636877760280988748086926588920713669775894063325228716495319845155491272615262971231609372389547379275766745923704172408035048070907768004961117426159682903795051764460142331746711632762151977443039566954080056078829175662813590894307134023831171487037226604119124164550536322182443671169599989804840825184903760664204372055955988643851754510390109090546725457244206498347294899978425207766790426075470021224048866534237799943307542330053281635666095732869555211638869105989504002126875245046385422477874966556134763897940890236201583912087456832826903176224305873272154947809460158544757729694306821903320039082133391640826415804931989757711473071747312505077432062301330040123022252146316788538696491277510501716757588645474399417600543546561022818587102858763869650719484342502594349485147225617382447910568119485491245444748286083736247992590512468705836973336395708184480922321246254326118659458469452069389924562283319772979260506326666700739544717547318848099748249879855243362816602314093309910536755676416910601552338965620814012415759161609537280061532373184192376494976483072398842242291283127435469770524592356688505769220357757971252633064169861090178603991137981587106587210206705563843247494603957522489162763872800899082787455498810504394979373043393392873243207398529516789150354329317865172921639920601975694318015888781901685425213829255739769367889709623861115410883333803630966159850493734559936954196794152078673672771338718249021070595989681558022039981755288129824710197240330840164441589103711900501659177775112077075194778117064997794130393986469606218677191918408927748801197401760419694871713488302708711854528863902790331116614737951267325988635721528584348066168526487615553835896431489657361545615231952689946614619998093139071893535678501592395507715429001958832931155956443916215465010081234527044769527424772495276905357691663600425478783985947360345620032988744534888272567780318524983505792389921326070728173490641017021085686349449629929850981977094111626383712743116607855223145353364314097570193195910705896796423038326882629712515750909379683565782620913183055608837878463646027129868228693042625440507170478447529171124267214124157893053525888284871814174605582983632645968881345661659948327292890747986994915063025226002372868957338819888074769028329616196679333390768111832760966175257351987090624705412061769353435866374428446802133767768969983224331400344909787982826130566729370198700114037538503646622952100245770967077789078451217561117077790292928650435280823540528447919630043022566681907566406236798690441920816218048370418850799849113672643455595783810512948392386743343765100756698336424130877650834529906440594502480380605083662088664302954533983624956583523802330089130563882344181999707146606961407762371832607433850977516893466838243228260318020423150491961622573127346187910456739512180473718570745367219526968683400684799304551856800824382000525179995846138438122886931715622048889179157396859481235088810417801203736524906816495456953271080679663338644425848312551397047410893383819312868848748223046282820373781437356157758960107591200352187028200850186743590686276511878573814063699756098121263281151605182530467112832673731291018279186818554143883116398738042626858014920182507556470939352054752235066231286137012375622198915782122749917845958631082708283943337369122247913791591668717864482622069793236659117698312449968821366707941372966222619927708400071433365883786577193214740287989209923508823832237396645222518757831221147573512811306027782004007484317259171044844094595724232305583295071563865048657248747246861643631123810009023062162291106096713859224934869297967966097976834120820729950948034421423771823792281249791795932612585962130276603498875883623250195063885882474834055324727819617157510565255149230915233387749726613073495319888244558646913294307035548494857800364092078815432387939736502324000197159751631897690920376980109192877509518960208658872570015307546266952705417916160912681410870379909941938538679889061028365574333535465918502815094537530709631249019870417614002862051319334014861888383019214140278284630070541518594719440543837224933947149569412932729504022980722273482108761585092898948483048977331012965956315784353702636167489472384905352063461235400382625836985843301275237890943355900955334210904239661209633530549605128475184202448229089884478427364964350392638071077195069300142205759571542840244132924002616497154789618236902732610726279004029618637238142796540249525775649902031326486387850504497292854169974068801341101585893109971110508248791049213599876435983502669444408120310689616169357941939059310729985452681974722535779187218767075478448804030381259400333267906612529440662619607733174990995845804978184833126245908763714946116307923461478760411085304139116943439318222077526061912022243537384320326291823774653470987511077203938898737029652529011428705216578348731609871252035415304101890872229795477438296176835963981686082048486510352768840098533301638140995813682309894663279615350020978418512838476337723408028370926559020736777097775451970885876319674035806214695611762886397471753398004134515130459255498938736005135722738617799654522717253002203005234204692864474899085612962533844386657630921062294391856235894369061689970697964315152138300168381348881073192596168401049804020017617260426466767520964798354565631122376856508348036637474348830289022651077460386326535814444017638615626865092709893805456834746226058786749742383482873571710891303108928704462644778871344504730573383050115345692050114412259955900093875358325830107421968788625968986728571028754099011016745230431305824269255145906056093108772493863664217103656130932619439237790850196239130386826475085154702453804741379213585915058535181647460436748840495438528969716721034375132325040949743793286315429043363014825998328476466253705822652573599362858282129368886816380922162735048380876178134595326873384792201929159692981140669034238444936668536619495609423023306894502949004368830946530528394762595630429273771260278328319213357956014277594497455784272366112170610100779246103505138173207581495277160476787610043850855546191698271741669974187187630398416666333933297525300256626177524730462058367358179456267926731397743192926913631218597946603604064564672898213785500251652762992739666878570502591231074423968268830539784608145658764120326579860238146029614285922352600980982561068735385094903098756211972295482366090686726362889511664184225438119354781471842912045249674716087226997240303732169101537252409064698979579484381567758511769841265860662335612353675262703625716241518866322014006842084541904906982017894914359502996662382281525213499413540507470786747555898913131652049883133249356044049373676759288096695751797473740196463791257269346554622498856713991459317728862392741052120495849585801639047818915976191821045456615501574537062683192755754117283639413306604782776264056119031105530948303464943359132573534698230384447738388616175110163687699206738314572910516319755512356170044907448529380662730226684919032521733553868752494788028653192414312013780342343201983250312272220030588058083554842589648079620783775480508209193683550690012115068027192136420995346674633220128382625543730671832262668877211845271208832568234521099889364533649327924572021435076571850333818155869808440006786388738042005327529216016602056301590861836460858376371398194514375347480177432412210988475634423376218667769956279583508115612741180958000893226089109957899558629161563316905404384560232681782414944151580995578890939313347552129058652808512753073821259881751392289027148705676238130294276563068812520748945234301814870815674836473413446769508390955206137121041621408353494495793455419866563739184092672219622411932530596297246054608187425018001563461189727363778654019855055334169216259349370772980528473603832184523375346325292345638181970349733936281326184146176267730032119596107281902088231410864734505689472618089625209128592351814642674323506896577465681352830426035892220281539665812987658307830857529496884697617068152197554618171601471613449950198232052941744656943679134514174265247033785123639882932613708619003808494759476956264295083375329652347786940699341048407025362160399303497316447944298374019507955593615532455711709613106175199162756160278141840175990108512344564644141328716904614229702375352999270803883045853576717612178565441418717937862933331506235171620307223750387674437613906097874638594927384474396254265020380540323509162046844410350863262444573783069086781156027918190112197200728145271373566771063851495659474531997505099505312407841491112109911042618295520570475443150645241520598573265058021180785138750421917825166917343646159293638197476334346010982306224684244319382738956699902140833615998197426374682103024048571146247056064401816508595418198423723670629723756242597523937967962161147041270161013676965121197559897048504858823957015299595607190952913140791103376508527434866385398450644894442866080901377801304461742665760477662992884221545948760403993426262131514601186236346611491358853882729207200202137989738558615842354461299543962187774981397548888228066263384351928875327142888194903231080007774186606870262882723800707940128014856435520181671300842388398129202034546434800502322076134018395024939326582403963271598649000246431098075232175320131984157102570589772950100196913887021614675901467303833414353041747990655134806653604771906420970129441758424289925163140420344145817067601281952441643360780624325045790893482167562739373090411252151491067340260153120936885725636632870124094351431479133169730318415155703135608110276546419980691091058356784592049688280949669554783246858788839090000036781907252250142424752142825479677825245522304282481183200154229849114430630384537765103805473993484563173281475982151249814791584705061364245135168452983313690632508370314920385588611118285937846920146759237820682089884908834118772606546588792010804249227199633235059906151914925134103642007077038026348002635993443969608691881640379363421506023958706320913304629239803405215232185545726442432785660047720409615238461739338816075839370222579766391994489745606176592793481319994874061390660099344634049418650715887097756342368215476219052737663847268504738907329426184954205954432105378234125955495454676940854806522303850693022647834224852415040806316209523713213843014094514946474495631491735087770297186142292636227669561165915319407839125178760207305242087121634118507138651047717918536453466119255001913088936065484550714393553248900882711464692594373211453752570024334491674837134399094978307860125473206679789034396627750554833979691649173599910083025314707666153259094829760241903809666273683320667407704125352415511004238452192571675589027890912135899286016789920071794404739631150453204371952664847333886986944757998422482237282525129650483062510644496887509153771676906657020341296580912702911864762894045382470006236642816735741900670336499716858235204502031969797461071327389569192979308987444728200507132928084955661692726951516135397897655582679981085412498577181319726458503800100472509094867591915176506768584388994448076595855576232123390599830561220616860293416501607950194160234970575477003309133716314730084648317178432174779822635680604313728884321791576332647419354875281294580692582689745067209990735065423779002433360390192111449263557319637750448572826767346966950873146552071458784630895453081631565117914405770893936870724083707456083550309946812288244430579992243355447259662358752784471977018210315835897829966207813421705261277574592864820013962594788049642774971746228458451643599780412500711598289273589756282671701603874810605986610570960725110437684843231333361719561307381954189101067836924396132039444124832875886084852666786404132529497917263229423554255204041463734819371275987023929270251737538817646665252503315225104330728796802118252629848328368239811501586679322059112530662559185114465996445091136462423975129499046866475735500740309063985873430078452010695684034458184694562642028924066049134066230937383111554426987985894790705726661811078557802834752777958399697974162780071853404405293588141368382846193147912937763605628104116222588324186299119582590737735837593398713935535201664755405614078955838379334778337471519612249685472717047488610434546144051811141499271345220357761044297453779830275360769610677589490569155166008526575490435284477624817442378093586187271116878116822157086696262967268798367198504156755846546848180797791237980755314730479932590013484095935241947272622588502883050568944047530803260942412345569490722327948980892740777110736443574041979437093449229404086896898133741397687219073782809468664670772354515325713398864769089199001631946781061915753947362766688454144502267350764381363428211661866108756573005066640428315970158461443569222162674359965087965574837563080302806043609830080318178877909887709240189115015168803983613551596359567901893950816398315541905762023774240168688673648388061692639166035284934681186502112077237924238677820745487269204087609468188160447118450616785266177877612421216359173861117896599435363925460667677143898775879946256220357784744588881329304425630642452005843118506740822098448173572170904818850777238589038732730635338998956666389493293586820902057693251605800430339561202841495494408917093558343402318105421465075922618855821533735909291244537222174742609271408541509470701249833049295814384234332422690751564643165904604873250161496594213977431261595973243850111690217908129950613553102840003926782769881663465818186931746148618406162884220021636503369369723977666635097850135603795035647597958665521438262758185797340970592485258007933106121603258877241334939167114057924579738506935239647200670055071161389883929098930757578837703027064650771567385887292849147276374535247959871820160195859892493953911370363838192930738093635673942370210966287487551750681879393108073349391026630363324085079699128414389392196061971279738617841320185679848867023962682619310618948744313268108095631026250747281582171767316246337974101305667271268159574985256598174269324511380081413977090235861497227147058679448614832362170608282304218272996197005756738730122464768318342914124605865091331429005381512223887469690196095013097938852142304140671287598589822017190600473941159786824672793032890404818287228681749224442660375909888663822537536908115988158539403962881035212281171928164124815247129995793431576992794050901563500322646080558954466167888221245773116527906135696449500669045961717287081552178792926097954003768265290946510190174999711341377660511204594353971249812149166233923325253580760419641213178622310925782099773739806759355608098270995728891803193917113769635965755189143966275330137775087955275700818012996880087403135383673291575979807606210219902834672764043645533078567135585904875758674652856913930866951393441995430889343437768627014464127888815390676391652756412513539766026136297487950548274201250065756007750609872189940926109606555503879771297153191938690503698022996012322528869194350234592224769011273503239533136556831331560990445593364528652536601810274563030181531131479918240011185937490711429113579087698592257371695859542342232645423861025819367772508920620063268945362122926704035444263894554930573041595322083986388085733214693920546262521648542534494696182626413699125096856649108557937778095052835720264285098042964598200982169481834171173259551957328184005680207948190535490114646032546796080637390631775896124740050617570184815897364376423586312917237065786937395536242870021571048550160265226670357312432008510481631888082242721685891028167296021126904528572870935283484334651704746927556011196513390738306904384573287105547328931006120507029048941809899639902958148123514960395639243075331044435294638628708610810835098319110537934085554774338584390563065491603615745754331942303359880939820619998997740186042165012220782689801809984603562953213875896543842644249509452937698279248596880989360270004510361269804604140566125368132112905745629953043621625810820175965031507258397417855395939117371778537458720914914141284881426910617545438701699289310565858314086120550545692481522024740488879346241411870251862759506892250023961354920763035367343118503375670232800061263217062966112850511004489897385793598049301432209597265275383958523732089760448860578160591574475945770682998851524411723816756950938228141875043678471267814006609017511676952332277276799646032995871895940497541664268990434307077524925757173619503094457080989460166953483182863993966622380365625753825257463977233912163077827454889840362503820322284220749197893356336730606090751065377631358495271683421765289038163889453322366401738777756180428098586335540230610942044187963087415863008696302219281894572654387266181361129577937299837153109389412513102627977331621549805416222627512802552180858956931831397358190609230684065816290467791865898673849608767829324674021179013527158607254349709790267065883979032291535811025088096770114333601203011002086493663087885316113768768504832519951822916025797778666993989214089084573261318961676919306367100928672567757512827354292957532684038853391631143932345946051643356196724512129169609674043640651585881555518422527647795907636357868079748886061929853711452105753153568243090305930126889949852509536332497504282299131257971414320656947747379176646724694669069794001146119970311954555940729932525843683230169861063568457703370070843968446595160000959252120057640645358296387846823710483321881550989692752540975446329459027357066335726960249438021185318538347999060214873344206993584394302862374188875913314715797601555970306794961772710266159333777701637930166184023040324355896879320005420947025504656231039923822714235490416054527771917571173359508687270957211555402603224456822456955786425668227165433239827916987859677931345389174709854648159150763278488725453768045252302328700522383648234636127670311153195691874832282183898042663861846761878914241467111800281211254406112584474489943793779039825760024875825492592463794208348966191782372308974530277546030550359543434516925869803666284111164085247364114410727160016608727671720151080724413238546784376974397911945435421204163764810280221418895280087811478537474160372767636470324934593686595144048846932496561796047713030904885597034778562569205456235574657011998248629162394523469987028301341897104527172012477519752876180396919085706504762544353941644257493194314685458630220584947242675170805838570817948997188689151993117412138538267370217982607642153711438875798878510649287430075612204962204984019757034309485764054872034660475701470051900851577720803094204353612609167905302416972472255097253057189188676511215877103056667389430292935907479440456625268230875200437790382850634840267216069873236691739137647638476752737215971750150213782654977670248900364569888551824858932869508832846580742050656833343329978299433309251748516489500956664502728269376829792031152870748683098312467338954202967473744042093569915264079589973380060133547572485768418853616792766289305795424132996389732656079259973351786848064717535019739845010830794206174035774833198556943729703209184507979853176190747214340749063483356406707944430950628510472325315088360250181115008956335128485398893697928379180449933489165669009910624073685814968566071579103384690571731821841128627340054269893887616685562017111858918860061482066746948503027947233941839654708847984670268762295648385876448708592168114735547608369857484377346674118464096897009907763230741616857784815862175825439680435184256252337172939550548968639248932042678469493877033644257540331381891153724316476367107418481232459143353464145155565079093418931138274797717608837216680863815656220626514812861447093625223954457299713670778263576719053919649162083963052941607897306128917525019293864339415404147431153328778468397897653794764597615418214484611134958309887070060680653151628457343647317784396387671535844642641141397616459492336899025926204133180834027611983298969355096553950417278102722279123364372541475837718298299186375043940665613877526254829887221522455620884480611048452432057690831585829287234786731424116382641823248370894001644722357324797479156971438477634090129143838063744904579238794206423613672939977224238805685573169561666970995269740461889908031252628203945181026542093597510380986270062741089378288983758335547041728755302100718745327075478095477475421416136678839303582113428637927390942365316507443140385487169312659003172112276582079683911509017414215720963886065362472488959512757152817603386052642806704133911722991028427191254482143139825987045778461097729620685479868621252620635086853927598136779619147159111526945513020323083658881108884134565974074661963969260203419288628957382275963347358011764509590630470665579621759513965504898061603498884840359841564823734500738489765419269104092275163933314904836772156061324651693208495215260442911014749694710178621416650392147524810338820529319711151560972369398944204268414746146721148395107105008565259402730637431737676116448490855402398827075145912688269024725048049698178218539530660132829101836527959786164155471231130630663364529561391703550526984956737682490047636203535237563923225228992106961830898283188316185642323754849662250222104416728427253505474677516707527247326648924125529744733677236773757963418190043995496217288602642854624536500292177870181672505180509252580873732690131392989251481420480902638493859166250545165029558879961415656905302494235588410959409382808076196577155785884650801745135200214044937052471122644168636616567293769453936100525343645741364869932903152120059897779820356795122167773983736122689304661873093579402241869326912315597777422026950653495785024072588491935345865466990677239586935049134185490630012157919609002583204017948804705733909788376491407311440399162056538407876334859274635789403519590057929180982830656214605819858631716749823187280749849678193376434468019912889769915128738513521390398917341941572249998736291050752662974070249105651563059941651605053879851438955879136765224350705211193624266116446409176138108217615028265034753022423095213702930119812755128111039734360616679357746235388709558633004327306204903599133588302342693158823701098340946687664329688668063518043249286674718841423881959574030072612815895220443467061300575388824037497926481901405239973847738485964693901332509960002286890049247479964363363280121129006609902514119063661077381399090702115749276583170555761617181565744791913676278842592114939498594534863049437781958886414989932525014706735397641803796186265936709884992347976623979027609413777316897526924760844945376366296113349872718505312726367226664175121694538520806174902635930963093647736661661490056405387339727127387822247676010397501779406718279233632452839513932839416662581452630059799583311119960085788621757605431353262874401713706454186702410315753581157291642248979993134892506381374135791562338516765562758260359219511504427413775103853076025028153289860712350405698191260349119950394262841129359233674400618894895048776695091243746405550292431922926228620618134197732013438050379087094631997895924410969300397621451200405069928832080921257562936137590082819574042285011866964352659025795964978135978176917115431875552520823508178042574349797078063424707394065439967391388753068704777800423209816856169370127741449465279320464549497539808590643405047943890709944793604316215998209703588126864203461591702520368872061386228655363924064342985616245858319285238956558054294727137601071044648972964994479321756720117622475577732259720506028648727630681507536680475473991799973069670199558005119315527370317746472505240891628629947920741776164477517550904004142516706959115879827339851161365667779103814079220757731403702026319933493476395102446001977040883124163833998219910369428300646308109592438608264336670837130631383492414906481392613457747231146860031293633696281412965375878934275597402156712679827224658835012897675297154560226612105093718645309670163605165659327696965712217557513037345364512247675047287661223713232441554347485287291283218285861451305803713709548986942668951531662937009595764634156144320416775295390599830309865607056130820481728648760201230113681735551496208559349557934300223286234606085307144132770300620786257001162436181776015396137647240387586142895309788541856028911744621446794362978489823350237047917948244267687928839198483859825841991983362122662827498964994619013843744791614428143037298664282344877408785210468111030167368335907830907745200599758135180942128998071821282860074005656887598847883432026940054599268142646457118703699697353603582524990425356076027396023577138283008408953131439896672604224614010854063441378647285756476636259915699212056970610610329613779511058604065149558342164368187250412651303175294530563168846311283292458582410817002167704136525081501331417238355697591299076249881516666500849605107887988187594637503264665057399612857142769337752047441281929363763934076460397269136935379320718134501544850303692577367031721297320554183321909290006762366975570160300679803885014175752720362018507648257326604487197542708234357591380098332936582344366235160257432240706949235437048723028159058002055877782028498380611399244388335549325056595017068927557918918904377212134042764914769539522070551132663868449144246234075396558320281326853565077130939977390118069093552836170602911778584601637474756231860232145066545666387361271395378479178301404173846914346460406461625350370822375167207451534749581552451490888603166351754470933176739594848598028513518022227285684306509086560011859785319884815348738095142885959627765261212199566583559262438266005791855451256821552724012686919134608494550683438603715376092147610192848542490649982264347994382679500453441862613999719190220216383528576401168672275433543493486240900137809437873682396840905017950908519076375828976009386781649347160021678877838069446388219017738155531153110978662896321097007383788929539687369941921038693116913335853106738400792483023878705085046548629919561880185012524271124446910246490728974681305263012052917702574379452087652903423841814965619037275448799368321005924868317801578048406205223383858667606999346197909658170887278359057795645401103667948915570636118616496899717327698885351744950078412262861756296165895628881473061743802144630049871640424831591590767616226058285401031168790295863016571914881839321426645268037025739065336539278329507124117005994462107602671523582665118478203643264195783444297123734976634814759436853628223608925978255519390079492104332408587509822750352153618448530972867511336841224279172677632893390395680743865488518192674468013359184131578387659659469195038941005266362090284035328690196609502277801362647998968288604428047190454574170463124145088759393806903938488771970890709542335479117714258690628636585171164907670716963305184468705139651988328367124275641524396871433001871201067622887064989702568980917536355958438276731992759378544779423403249966786929974563531498998719852795808574681832761883199249592476275772834042232423742428875380433449492505872697199388026662247387950160377712377172271546627939069544216831427017538979783113228582300010840808289409275990810411897119779938769111988130930505433066957751152007304366371873748957602798238200377837676357819389420710003268162078331642993780574823986850344090881902620669819126472669955142715597438845996116282454201979291041478652980686702275245208303211762396367104895417589262607143049870134645245543712730579712098270422184409000707613923092099391809116448090591019250660270783890118095983418171865874215682038928355791838969335357829877410408347787247617340755845945547538314877062229620126168304197340770769200356431706794866352849659218370293666694401152187883962658239011218748345260502011841527818851557899634669936944393019762734994353074245225489048731474185172964913754633682353454346786859178899958833096204636188068140088036607870444705109136521030198874880513335217079268593786728000355716260914984486560265190945098743088830677238124695339124337092716327648817946382962997780677909601104374706297717780817283248900762865873765433566003983197768424064491284675044491897359694669036053049058699821597328244046311754025330253019773473291164837215665226111945419255214133404710291941632622476474366308942866444494618569456545982324122657706680761476706826702193120379228852796837833307413101362048093248400294709401947705719301990080950033608504404482454151623528046921237118577084190260923999855839338462611418551016618585726111127842020293323505494306648113100831739552150678804852040574552611507473574980360725305682812427245053404499720105322791308784999586510483064162473445255952295731652866112713495318871142891931553037080819075174071032036188054144690151641394558089931945788887176361379900089982365945844631023097825560602745535046542704888799668803958145788367498740840029169018622350251667670397155145212497466928405915723964724777468725387635449530474086684770952387518268188456277701180396127165730303605363054911798237631135601143499294915481968082530254660687058479125300496573628866730952355070172998017780776072338480888357950741895748647166590967257800274145629419625580828447185920186104885481005448971108337930816157817011901922203412644898949617198524830258645447695857143951937823091933660073069536226380360213377663225740143885100173352647604335450581822715815005076244882989492278470958720092450391919992662916680007814453918050679591204222079632285859923222214501698190712639714683746784382009798362741830113377200902308192136477164247020326129352351681808237495414707919329948252365274904321145136330587910611275095784087458455850134458076277073375467331317912595630835071714222804853789933253183370654982337855057789741694210125341948948690490357586734362829328878001618915502754800435859766539298272252296609245464176640587390307326695609640487933587500180507435334344632264287339448660264685611706561579020471142211895996645936789809555277915129488448052266100187090110368795401217455934647535649103885129123312488809633562113836539984571034297658141199641495742027937392891834207730143673134246781233859947052975837371618365477456041593930244695158514036926803282082637034471561813533304248091265915508646324593903569022650573374507826677432817647133144269871787629222490248573901857664546367386861902551005956713745719876741220004856948163216111174371172745328825305745497324809810063373101861316145146192581796175201804719949158938905133785608544157392592252199417850114660719439943356369696571613111040400724674480561598264538544601100050107535766690345238168772356943469831719881534990555036473229843577754717393894268763720279228089714873581819108200720459316611044764990310515163266708710951571483644627398237907042087703075546589875993095261502657849984708260387996469832054597058700731829327327691932817957882446825843693710814252092821536496259162030091381439300244121692553459408140933344618637882687943290604185616392015958365401160242011251565396118999531836881183228587659581567623050036500602338970459583827598272692689291136059249045095508130447070284354236120220990843202914489603342927119447839923453561683811014168321816811534874837452542096466388310187000153895094122507698779350671811733506163521340366062614837984252034638426094087509055279482758456616254839635258233614974374278284727945351654921336222285094735306796571316763606961747212550654224506129445235397853667210764835855859196520442733719320272768115964643332335281146195333947824214158013105053323199570266691783301405548317363767250629862719481219586123141674805205051719167774973480477360383359309987918960703037713809666714660392841075889077939913277596538978086430633474219215874749548125914718280809993532140826228692224560966488986014896340586805712361133828733195595147887138230613382366692096495563998759787740848464367659301969984035518782434881389597910999364720720282297538470005165934452769864558327550749188520738477800976566196234892325470790771522442476286645282348941140328869115838938573408855855612618414302723351707521757911825275713740844591748563054739840782503995500263149846905513876443155435015593682895381013356690972965164682754671752516911324248328002349358697716743935996878931595752594946363519189689600402648714878222125466550893815808681713520168522176766928971421962794459165307084378704144778359844857241600471960247036086428277230066526018193224196605806999959872433233321949719504608385501949829760661720596254289246002855189383445013538920549647859213313125650184008717985797223954525920415060150091953287039783341920942826513602512114323982097034417801557096060016819978805855620822901087044670877353827457177993821617920850992301808919258600057390344906666697603685323739257563338370916306466405818208044843386990430830475385076329183655780513097098636608318106933237632256310668901023316917335634303643494406957476412838197015157040683995698746892953006723014139024020603205462079109038130247913208030094119333604746019764846690851806938213721855388213584463573322064896580804940081165287352440584055497372492249860805593679303675442309918871594722203155963868074594535291284745627837368010382541149687189733392294373587660997498896848784359562844944267783873917369573360883303085212436476555089617753171952226714793680939683393762392868137269940934741195941784611207289171728499096647623501745202513946036066658344780284694953172702768191527217936017817085491556928943021032450908304567163310898132515397668841981782894891746211223046404937016710728148836541887514108776481838298283103307091914428965045099187705756985024421675770450754507937489203960103216465202906289782246539360543712199769236426536440384769429652403153278095724166596836759458149770740975619968391941659992120663847136981407889812266166834350689961069812562895531141764598652887919521306308347902966870283012741733801029304011665025820283299757766372500613587116123523962618619742021620265607980961216538591963562745192359809955977494745831666944318728249726929718639234348807941050204598261617389971375248357837709801434574204741624739274995979677669764681273049530932159285369492930564688831349363590288049011122143334160824415164672846741503373299382714004459877250597355961062144367958080667180421054838163716611595823388008822752572517929965415047917991275597732575170746575389042518122897179264020053438306186266173981329821387204754991608848506593634862384190319266881599537508410829095344503678136091831890575459953806893060658684022076652142679444938134513751960060029306065490952940413945824223127155237254519000712823895394662290910337037298772890527798681852326452526290424210571976705059035436390581868812628164928230673033424137626747939672593009706459748162983815845277556261738007493520664877519908536511849443810230816760546597931838082616903032332217815726710230461543516955694184565949277326877724405856375985034416242996584275937761863598963193299358324638077015959067563766994935110159789638169601029082458403308308977807210984671845769804561410675802622902738586809516026954773781492418010150898767373973851184094199657552001809693154226184337182965178384172929015218806202855317591211871518682395275793676171778336726670000133517966108228666020731315522479401755483161082153567735437760369429005072472802065720941672366988289162610684310033408288756430709486450314298055385133334650783634550773688021926935451477684060212341806241043141828383530710611291847809199321328876186433316893872736305925731230493319934688104118785153513006228428629814895171723276725458210305898710043399661553131243326832241129150187194701896841417160098194572974925800692815864942134143749583821204924153605640843699464178439878958942487813593554730576648742966175758456350775200218693520118093097164969550065772807459347343858442597872006219125918750818265741376111361078157025049154399489226609815304039028707668149556926010992346313032267409747631127204717491265649216650549229933700640716364030071772743095659981724579688900711836590245642975383658922695050134523031429307197589975850297128372565881223987101868337921084184911736956332286085424594876994010460603610302726301507227961882838021853552613807245121265029324456136700583422680883310757348859233814397402248551182810488111122631152277339871536174986586189045218009430239896394619651254089324548838604320157387424362306561895305850442144726090899912192035069377015913564290154140870195858287752721519639191994720231321280765297633938118864470876765401366678387274292591425360254718228151306396307630072571123930847363090324712393543697110762346952866969695065069882738980827142487922684637768584889205317517472371447272792742769937842449028375838149869505050003552311021157637777835364309946744338297932712459942373647831149233141657290377115367823478516573602929429532746373662025845909327091488012536290108393831577758725098076717854279962761919691859241872331528234566115410990263593809529358418181012957047350377944305578308343556057451127789968219891465839073253396289895337755701138352397496773387052208183263220765978110036621981132903270093583112282253299008996929686103079606518833574810269185369446485824255257385384250741036694320428041331494134109343449631228758234122846284901172398191619746824745421902263177667318247451751436002967656299105796100791722591498783747851442135150138896979845930903963704430300466892606944729732308926897718143581248435291802441793270621085422454149644538890466997353273816755853508620831599566106427577617856773764184027597451047634527232793563354914085090239788822399910713578414928530252158259699707729768328963696953328124577525764820290138774562848433338006526987777309135925578026563098015154954292008576442656058118445784012766318404167231083755848318711976117293167452592162750298752767824724186239297024442569571116162518508206040169979201973420634861144013130843400719182561772467222954157017069980264297409630986315709572724437646900137130740634575881980594711197940924643309962473440996425949590825615230352730464787379021810263530378677923673159504035687472157813520712227109571436471454952316182413344259132469542366691144305675585558239792943386323935894746047998551836338863174348323708021434970097069917661979558312714112456867252645725409791056614118420697675155310354521406806307794065831459057232104758382687435806471922851900557081755726571369045503867160828153966401194804294435753404680101929279343178903215195436139661260963876282699768880956487944934104001596016310787895127253690893550079230815682813510694129127810240455968020283921084771154455656072629817340725020926688428747508103337609860665206405681056327822373615420993413620360889824116759395494872776861451224610912953101731802427469040158054893313459114017177984242540502982789202079433940688470541031838442452066867063541748791100018983000668484763002076899924651740681437055240267307794504836426730651715052156580854056387633856492298437634379453616050271432126903315637474596392051152886638235813204268977922497898101324960457674823700557878681659873831491093339556322064838075732040264251216318322801774189264950984989459233580458410555518165504752556067071270397284109911650766328344837856795195098693153825418250221193511712550444534555597862224310240474055903012711693401209285417793852771419931651238132736532114570891132568466001457664547973992390959234419735582821156921438432148482355794862542554378747279887171593807127594631507705104038253349421422108405145823889864099416356360496247788609802896766819376181732538465170455627993631777971891857891989571522155556226375777272040119594121073187137812230963968537238832301294220155273219361746179000404921693693015709597839993577786945701215184152370794732084562354377570189550122796542167897647273938350585774926589767167875787269840624503653944700716843094130973004106710053739677940035249031824314531122487074717260842333280419193621915016751375839900766977599557638089426989196666338713984240885099503736155049183305715732874945577081925154866474293795494451192429724827457325357638468723041586749406720939870314061470264271324557810823118724101480368173917813502434618655579362866629571597141467268939651039276184810243637221144419518355543841279642753850982559539366718247349885689264563566223662077144458793450640072919497449601015287917135216225429637632426305683632278480675854367294628472690684609632572957928842360281226292507345322418047249574721624392098268771628009237339426881692318249483540978835454511570081161289870814134520512117288844916362520361449649266195669189599484716023224980856772894910414845400082917700005313421049420660602527241037723156067020964669884345506096143873944742147269229836469469314520461682796010676206522235526457018299804620986418990836775806186682318319810048145892923499464157332582728740943597248598945789196213786565649478987924761129778527174978648038622313278556872448192162718689509560703923934836196904686876581555963511111765310600699944684136298758658638635837603144454933331136776888319000874766690760835732960213833016121518250495061678008813818699371276468850674009488954261610428541415294579488308061727612669619796142246343249554044542096152825637867757965146378283363315226529395446250615970400642741336956764656315703699356255787689544383900844061951074804115632019778638962766954514678592877373037343359566830418357643485427472523915684843187802277580377285549921960617346317657360641448357363522156784045116264768344268823124785840616080517007096049850588844601371723959040013924772596606753581287223802092948728503137183757625919019600706687715715921311931861816527222412024537781366511921268693418276636110252364542641892907149453737446227510171812880073362614952588377525166527552235440714620138349852942656927390676761667049140752400406024370465531403404891524581612347789345986444500282405386991372626703646363530710716718519509414247713868107425942874144723397162240585497325548623990797916179193453142587597038120532251318614977209046767183080649889655331042320787308613045090765874197928492462099261785214574090945802124800214415409788941440001268072068792359052025105374544177922508623668734696988025416232811132003159310828816889540496823437796599836769016073375541064682279572180686561406347584832383631900861638832184071610296959584960076278896338165179665154973877030473978974679024842919175483525640608638230833545554467082476336947243038057294437662189524648920776437010297421615212683902581934957711494470188340645384785270642342558063600866081960804800450654145388990174782241947040395486282526941887270256935174457415388828848791082828861754615351209038981021711804996593198509113636261330913114247847195674754091054469738052428026241645417547715848285147762206916463018098776266589668719059904961386178168673745891829492930182897848653690310037657189967119374253536250675598378478257514009232181358501891236250928879891617556252163189979808329625640415582659933500696517647932951090755146435821639518418602267354233460857676039951745803242241793824804416087716112544680733274449904977251499052434850979221968120052538934285562796282771973385729366150851332327250832605716338900373452580905879560952693856410231720677130354075996132842901056997775108703433519306536119463850558232112788948454004983682825230634232191198236550840157883169701826453601953831123830200393685138718115263885477058922153147917843629743437462645735198843534993146515192187071169472846643951615827931548707440645192755302945465983742648235580371179300930809513542978883000737457293465706142334886366102748813132256670635180204921486444021625104342418242742285696071405758880251610651626239858966340883218648395488244523065588424241699101446720040515900337131684204734779215100196406882852467971799695124179632872427877992851080040957580372697502437969623531443597490919346371192606183700100436432674921511522550595562590224460153055379841802376252229195837007107664632751423949636571798936401686530117598607846453116197791864774252963686553854767486756924753583712083963652299763656315031903476873431707802388862687500556732186800944320883055991087511519281226893574868335198529286172246949976992223474680839508971851555401338595582350794100187734015851566689643797610500398823947944469787723557173761372557796225399551423712518910587391503360767848911590385114390161041195250380335018903819969074913673996737925045743594922672870681767127051385742824703245459053600527683826894527260855379869930940787624434879776996578742552105641407976191724636211637647955262495765482901296030817799056639075400115123679108415524038318992813337166626375051857315717553326703714238596749635048572006273387044890640180100573878291101766819930170342001078085161486260702487510408680361308464127313915252685112696995105724559332701413073090546104763762646489964313348530432704633480031211745952830562735859286639349397059042314434280106604345572647779048854051209485808991746341989187079043706114814762929509021421402887841835561866201524729718396586203000816474155370701368102711006147062034952891420170990673033717696117034900090770006256224244931195514439853597030744149186521041645021217668527153874716090613627867320419204739991844656803609837485435642453763034784037556810537056400579561373279786238489605067028247002587680206264655768090619183463341370563201737392380774461033210097087465574519780894049640696600953096081441190532620577498925571103400316131418584915751623108083674523117114209671614425245258671840339379922055749229793897388151023500893179902121959318849037469797392799524613004458242747760812874429691067148883267468411508382107122625833518570882318362180274451278005644008806809410577613462396313326995394843588967184650147310595725463129006975628579245591977700445669713909348488384531101708190367800945916702380385557010160716097954474825417857459667097802560201771221803636950252218675001607331800800444748096647148133030398629830283843189596340052853141034869424280714294081798232729113940328479204077017343237787758953098792300325183321248417784003994105133822828912583636367665415558375820318758737125673923498296735872705680630423696690752832113020284690944758885972837298361418174280011386668622382813640057531197968842451133225954967777536238986127220960232713787642104634845813786480184742550106400450971423090091374369552009994486823010783243656355999981436472832484751558516745423515336889173328016707466073294791905703834608889846228117603178973213931218702460658724569218567330861573198040869188801868021309918418377851432540794944340198186546387107526749901650893942183284812671321461998986029447952603553019443364513049064775097492732002283552626930455909114461778626766140260865565791730300096585200072373232376328276543144727199786671399679496494468502838973573234915742749157209654723590166393850390269010172454388477252562588457272808888124228241899154653841826034865884220549242263719319245306470810294306451044977831347520029078654079511894395007136209298440175446892578602529549605997191778903669210623598645623371558490742139849476507606166028882009293857201649052864308975626263912538728798361407494496145162074727693473060069655495735806649457626951174198695946870461470544147096567141844150684599443108590307491614025699995328449190034231427119273885805118579586888412617951184876679855045975233988380656047681453056226004833249380360091376171591338592475198986253615350316866667348491727023130835164451268658849224985235553385433683070429912868464721412882135548025052457892193792647393736630436508090421665316896851542577412100119969008378598863545735470768574840935181554436761142133036585853664853133614084273526562323550994834261697107419913204113228985274532586114604394211670157575484604061779899909406774225057729498184901114718723222203532881308356434347556505800621364865784334085254121663074411907037655698226087955910201823179498675141482821437700506359784384506508674121748597626017713975730786413820807674902982995950041944524239928959244738744146274345625255439752190025057331254682265407455381609746695791415221683197321394325525985652064075356071602337580681056560428375300189618152298667476648610690413236311727661767867356866604247662324076807436831018174274880142676200525860791117746484187132400961066192594140507673035034701269178490135101490457693079328400649624208761821384775370877460721979012831621920359663788439298175738985798223373494097640586036193123655358670375495415121613556646695148107204047579316517543198761609381709820406741225984265979980363132232601174739100391226314754509795548499251141756552745251276405862220430043790284402040765347007230551071241209463197911947285222555920047614123885518274700529712303172305503749170986049050657127944089634333206593876925637271832862406322920778057815500572388278937554495453849723054823918466178840181418286029875688933955253226935913046667961776645948920119260267512690610788225568448709037521275249375650334157962582284256405925269270704303772015245014638278853547333414732668321806510230092036288573352591840024164200004711644792891436433896412075430071171957657261667073703367483676047313928867803872219786944519282593809211867822744082638699645921764427983529996844870795389113471421027987103489863908506164471099297317709287871796918157455400804333393104319333234010001298174245160299357861657942575622820138526902528667143209611874140612677087087954895456558776425780607422926623187073858672102203092110286222251969320092414738605139656052169541719327003531886766870410931976790927660777282734199280433723035384419452148086964126025942281375469297135864396562687949397340900079123022063591436034497846546858385531296186079177495433206380127649754905425224811208480000784162528230002861188882552761387028227301721227600947512961781260156549304829923388393496768501819552493750787248418518671689371353061114243867148664432862981308541319750356481607129852561581545375928740519639948135272779259743474269057393699189651147177942368747460960020798697914755489023298191760231054832051904853199873091077540715198728782889565304545994235171018328917380024786987466388873302578301139805942478844710797661731419981018387172169219846718750648495220556348300577680734664420204477328175247166027441500391477484019356509755656642707859509384951247419004959308771576102908424368457465439432542063480661579695419242933279169510818095177016319179927141997744025069797405002215880742117584722546165494187039441405242922363430195813273617593360565204724547350470608018178010581478129599756778385739949726455240115600000999312166358676235786151236984258869213534455737501467436124504603060475886149593458759344313788437170579994070344641174732648114384386973752021677686950460666866258555962501343998810070756011312358014431932530169449420736364851003283333155706784660409199066125391628538847798845017203042209705781272300017154431081897527423080712795097854154620127133413007343230275426619353528174341173475604279547630413658668685925785670317167868670511939758834817677949200621583025997650479201570449618616683944275585478855737254758976330420682896018530171687281410850504114606783366506377933792352665078677777237763047700342560291419776445462989888444802804939246220409783096592444669262772270727670386726958099072356543455757551148642128301971938719493502599177771006687998847768356694600753937170097494623502835409568156252080892238571016500462602439521208205909631952317536539322262182680538768414315526066305922990257216665074640741466322966544040661905723540024209182141747699635597759830827392405115281807950710532342702392258534085538706577502971846942341723893980806206944663051283149741371211828102487349662561265620152782093343433243531143007418513614286655506576383996382254887119992663428474768685108756504290016309453029314154352739550203809515003520442787132510904959807027635010499060004740937149931617337256300162802756357997239558841260935404742933208237787511710584433839371463001302133802200544110639461898995425342732897567181833839395140609495624855418101986047483690391046813380728725547871972509499319376378081013843484216070430565245648645298382904465516088443885233781666862672069642551027227709677230551108908820744413008615362211613047844070466279917100441546744314821173321278808144541980238138826498223310381845243091809929111782115334783955678994666913357143549122170604379834468887188230923396012506951921956123186789949680369407420525931105427129803380339257039084450221185725095000397797603854018436573889001979944324265958076011267899348042082979279760485413537936042421793892024897229836736273332453606398539720019966352618891189727353347128683852479853051432169723782569117275133179980105875019693393358386839752803976664076301698157468220563538268174215263537879535281451268093525040761766578524198955828513217517576984893114887224680390032119813992628599419111546848051565074850393708422798465756203798673698486867567580216847575870489893275273195422093502642301860755082895072098855852513136123005190161537832974292357720048850206569073360806001090296647559453833750309829764053469376079035667322514481554676727266713940937192506762890175615591592819570987760780395188402182871680814945461531828869221830919242087443601989026482623391504597251949276739356240161742081089807629675756804325250995541961862389834197138855808104732547172583306164605558985259595683398849538069654308863398098025793870563251809973494052396595997033380306416603183025108490290756197056697230930602172595024282462170727431137926211807223372650634108676367723179196612121808599212909655024248505728513488924791449755664832503002116731045745612656459822171816371354387825201799136069403705989902053925292622727458138647187988656887866466382295572021497841592817247230285963770165422426025867486262915835239782934298083659703861800110455874655336646776573714458240010286067902335646148719611791431828244933442750822298321951438307232823289407707929625979988630102334825319017741378880620725837422223954168534005446640554727138127814997739879871352226782365113638815183001879090978926558709575081805824828962683334517878379629538107480882534244707371220903453973413042523999448552857900278762107276281527811898148296904708433008361699469560039251015362543646786143590551566457762944922621790424223851792789040788749861702689129607979990116598072818905956892445621838401733771403230129416249032505359981385058826416045577339224729098684624604599410861798630996668992938433049108672790040020873154219135826117916574689581282365239654344821751594497286978356715523699596210062221037106432814396215126254624917926384520260155001000070491012690528726135650082329431051942254938323149263322817388935915653410981373855130577509030984174263136068355876079944971239422818023873958763163690476679932864773418706143803841608498155123181760566556364528173764732931833446638813697048040998100700892983713694965219921260525849201110684871705609294171542178771245506470924403288193932892928443727939394993546029675387612875749430392843253693469431083758307857457903909217245666320499821490262754193509861676761425274612244580696886793831504575052069887344057165507450046660089995082890218184673953905004519851806008571168293254703419655249452179715669217531456209568161636188435200028596062905442732352023141891269140347456930426941292012473642137908230024871796450080743902035834045092182154802979118440318426994642626585467200520358163097941022824952217542815172417930435543908611386340132977560396787552347771394694277553845607441135119642440675467474506362545514101920825114562817073962817267402760012683200358273181067688526394338985408951124194858928228437433686574732769058332877533521038264519760143716968456501180255338763424332703571789620308661191140036210726834097026360182448102327374600187740151902798803129135751254599554504803287908869012902512013771743878703694456689174201391327024929597933203179198633910205527569387398711572056635545314137125489687108390459042195258739931572181647007320886043776903234992431257849272340593818225221263494283697270329421205114980764950984975419387103766767335793682914387941379612859427144256521342010978811585868928570409487988597764206749430845866530159647855614086076422011161828708598727932318684383078155188703510577181292974599236337720151307701303710520826491501721478477510326400104279809050066155755615025316595667766090579798072531374253019194216074218437779566355744659383369941631466202874482586519081864350162063944428989193092315554993196292889893253636913571219511385786759941353207752762386682758279118413646852787126866308525084057492796262747391891380985610473736213971154513743552734120917103203866144183741676474527584087966053032981693210970293197676585551493320881885979586385998690615415055675937455742735545332134270335943222205759028044050854467906997191026775679813691912980785195175302138836886394558765699487864338184696779068268206973737887758763424191770091895380164034198102092204110308342567040653977449031403402577673266790095443950292462177725681345063153794040904993551739145311049932683021928365677042997814172367369449198225909436245227553610773331346634750676133702855896248974912050012552626844371929969949966387270356194166600031345637801671276452978897166729597665343997430880018559003031687183216913539965382800636400215013345194414793835665946712444932375313978759168390668066712340087229208748339234769581021039946109895466982162977426441396084687398576589858452663551115007871423459568029138331216595883748691383231850092757073056336860404236116481855666281570316536555828472858076821783656255793283814662264957997398205471078117080776791256633177716685652167787385660185740669759297906832081954686618682889916681202073859257971534081707523389144197375570251605976433748929063753673057577152224279906072879557529371885908890571310164650146260160925280667611310904507661599516318994811650227383657862976349646701558080415738322564182969973287873468488045721864567507208276444927482479451953314646617435367008929820631395066399522124417612874293781921154437007935011349167701349413298598928824746905996705236472251806307788424716544276643796358617243239168066567150978675508596727442213913663686202228750188595164954222525766749764217556557261600247264041068466135723553043912781952794926448266483517345058492788999003205343512900756035718952345417982554309790348824181524783554589761015044807905571457198512037958423764277849283891501637830583262553712480993319379050438983392027690968116994757691346424414507418411498766492357658460338724145954432475722042980671621514073950984532417132190074294387431595315564177842757325879358697861853348039826261091195994405944995214100664610693346696021517712150231635149116613426614181023734706846193167102135066238433676035875725675723196698862529949857789546291554912461381547533698034331377768145528489982865294070854591330205602813685259175038462421057087879088687507716206666780538751107663011235186924621182238154360975486064170475813020825558601461194561140111584950604794647692890353467106495938421986199237592073771762378515694545254186404441771749623003935741453590866344130202425856095042247212387525479973133206771244384267612193314894145938545612581591396306860205024331844898090675298494936821125844869187018806496612147746463343847314159857081340236563849669944586074746069325043554155791756282088198857390338998450395207808467224428436243236486642666048319274934685049495347508721221206848989817904570555514505359637066958749667685691801248215808912984487629824600617340117014891618545784870624653128853197018504287158454215878189402584425954723621162422187726153122146656805380234882007228049181823404353273966397952292635445915242586571205451042676277258543898153993936677915398699952928020241876719498199807117826618319849403311043295783236344608519427625628761290196892382788862520392424418320084206980347555395995792978917467144877798118765579286161086392087436531255214763306860114487611244213742756695441565029333497060827262942955818048753270249607440138994095231377769657562812930271259600679140666855598394437219240727221784451704361276981048656574391192204089442573925411023773463570910656904057603420078082321402673009768406072174437438202344600621760118958712462429248554447719025635279744150544340132631841165986276980856835547973319249824568643889780786216167581949190125665957989277112590922408677366181750260187268661257165037957220126906072926506309046070861029943365741949344931305533468489910584683813841311427624870681883136238040647533476781247984672333175616294884619862586963476195596300114303213829809717227337095531302103520415381508912634891850859788788586409133172834288512704717534191434699265847119246068187475636480942972855676368377901000921931904187980100582705289396988984876058801948719699450215084840249421388817879245217605321430344847179099716874660584149753360889958634111082969833248486948798532811760598269878550676108887346370108636115967159988877456297197093329685931884106441956025754771267519948445181321912930442226758588966042168608806083972533799554300880972497951782501642872093643817572125438894175886842858765926964497366344999191093036683802266204155097914249955152906499529412152322805889868707771515413296642346827183675809421104098531029621152041562648549571372662894331587830333429256921505955017872882616424462428260214398770200506019553899655555662011518700142155912149458071611092031976028464659883902075179248175721824477595899901188226058314584602593186506225233954039730971174584647291088678021310270023128139065093899033565583790224953414680328715941892726693391978391239964151266112987310167638590561514504257110230513025084140412579136689308236211177881703228773001318172539470476051863897470501115922654631138546554113059643308339262544387705416439588492825433575359903380638371738720546390707141148668336140850212747556295446760676452930727380874086417274539699305733880470362745525653907288870310164007749452469870153032438757406278332589796025678313593125423806245174150517542138727981870858172755010792637214436448199764799071718951481644469863072587535406116539171372369608774368149708057141171580304907760980550643623616975063211561352572213980303792602246242512048368851468320032014219224406203363420821905430112176963880573515958401771149842840521219621955930269701593766079132562542985746127603403223663722962234555322263848225113883953203200271505474302040579700183259066319169306918695180908188953819465171695322460232724656029819260372156925352839883544849016383102852384148902772686020286390396045008525875685630518054432730604684533422882055570587066891356637047832259168196096412980897656594450822499335574916646436697572422649322782418808942128718070263396833494210210118334089467623759937567852301828682428453296110843285347692920554946668629501872155101823606622685987371258006717304782036611185052977389744322555017641410592055653145852763375308667813478166543627588606699769290909783024540967450645083658418096117368762082688076972830885132882455805614168518819146646576879294243073442578285842746091731165786281207090317320869736818380738546677603766174930940530604581522739447860866986398177757016133668858344208627536526337903485774293681615739774323529160612457289815286737223611232892874099834699009622330436722428052521191938760317036948594043341583521309357127523189479417574264676894915794835877162089951480709398606764537128881589170869772520534584619267161795328852742921792181139477844162405957954443864640399109226823621264683568791974491669872677857685316824754656249940662837908410463402663577430199653539497714057272304043535613371162369980694232552947741002499064792595122346588986887929177509815130908939861728185396748678273450224784727289584640158456699094313220808594507890107573364688735535254614068508441443695329973879528412779584879798940882920671589290887966080272364859972089307839638679087107078339704418726528211230593618005543489419731485069732460533654640013983502604394568840553431535720078108273831774847452133251676370243490781350946139046938364672238667673908585599032777379889613273651950219610252951580227245596542855874459367530653902234400440919502004154710827611260196615878497293741961653710875273236517072783028916490589324111204320870145969241426776420642225040114239593585735298429808007479712452098714651537558735605680288432132906178881343161755624428815337249151128369114112166487399031266410038350791532716093752273092671055061140730295731285926931046163232777645577162829923923715987721577303668012686494833353632018253595999390432572799581077419378739698992737276495871340421703643166270725562170639437220300195163954565914092186353276841921274297892032438457673440881231299671414612513125837076070506369200908439982577498210353956700923925143212158452072169867898731007430727692003587256950833952925875233521016992496716490450676583780654811975268258097957199849054414899013644498042342213463029223013018149717007271449553845072630320683892506694032419186900477853478545753877580879372913112407439216869544226615059556946494419831417534232988099070561901651593291114922081463159751836207067448827236725462426026559292747442737498046047465775509226260748647981180873445949092020710041645889382131197895581005573463013310157406525995589762896178542055855268778630356379598352887948572729245089140605339587222892267489389120692958053609381263732614906432387697785746803561335831588899051607267720379474750090802242473058305689066051661665502445820250632803155754291328190634630546719261579630728230673645226022985486105584280399503133595170055917491735709128720951947174903243023244217475228345779154988854961101454462046756992138442700180943303425166480383225958477724514238590940979175124924801404733998027047951778605079043759259162305504407854115431292776762277202176859490426923911806786244059615190678703463902980533381616241823702492520665534928013543176824040809588711874997505401667744271115210512663010433928776153372212996992321096971988856222788092687438984768244011265871088183742380269339163698232542024944325960687764865930383907762169533021729027798177717911915853444754973775529534890532808578393442643720184682653678769577152476531550084201640020725199777363871151809575119007717465790033389072553903745509121521657037468600712885407025416044948945796590210499256053491210803194777469201158090874781877016366350494601341251645647904660002696801776570725748088106439263059262771804304583216801233579372969423653779517749039611601173719929562298626893202240109608912067474712870602609178600523850717424020502341938345045846058833374879891941754240778285537336653334682108232702864496816011821119131047003165424275818689898286768557987547982941421174288630394907951355016122047423210489891379881428593778998557100540002020982969444326257135694416974100687681222705026429406989022130446660598134896225906512415206787143586263702035739037267957064918200396911626054048211345912976484364752514344291828202609505795896185842982909867747352676297423564817072831852172453055005355132798961064067737105704896257523487380008540903346799037537057774775216648973258220737244461530710461694149999887487716870817956129821219009733768465243616262358343046785138338257290165542057456672090033993776451477323513732533821831835508984819766957267440355279439698375807531700485618587011832516648096628901256557122775111330456507433439112163258587316550224076356994795731846611206315022338762325442667121333535721180985473427559097293013503261823845421441383094052376044575648970898807459237910200114786637383501522876470477676959903088502667214805921129319821369234870847165269216205060966273363242462645374427826234169513361699610655961841448229047600445121982860527225509258346215975040839719663376549526190397770164983980963339031184725865800210085985061310470052695888144655135911558193206066344354207294629621310617143893943447200945669463474664714560580143057054783300022340300277033939154205173452703499684121275778583960710048457466790085134545734808063950906525720819489313736479118835139229262814623041519023842445885250561970815808394274953262481414840493661686487983242945169580063966977634492910591732033627648454743735223612241634552868341342927779494218970875242051699511478377711557438622092057531962480606106016273717474418891054093953657804236562763653882086853812366317808587068626033185824636885851777415430845282016605372406757209691647442987135521370222592990751437355038065804533652353042219803948952861926294946960927019677877892329582490498548209515806921156219119070765462242424654820764842088657077604761150308150751045633649043696578265593912879745312118395536228049501574740268916110752510987006056264860503403805683556860277440701469364589798077091387055050379177388712524433916187264290264628921257926200683135149386959074924540729858796960358109985761198655768827494867006802080119398357167733315817279567676034719814984175210755628618195756747170130620875430250951967520891386275381371137055664378097607130050215281278753981870172094477451209237546569486646408045376578250443546150224828259211775740254116381241422421614184667277046470395441093574501649284835661241340273521141845773345127683665926089055132601606903947224328959140427486243227884736170216383461708025733989429967622731426500212421995193048177638496133833887133866455606003037221744949757370730991443017898586845965671686903673667751382471510249315657701049891365542147817839746409552754454236529901746005135472026266945630454768091379845118802722230859457465232819558141894682820803967952913531403276610402234117532378531914401206274232278577570898307901130066915266381841786680552906589114794072523258750283200673058243248083552325403204122523107840542404845565082810982310659192327169845361310176100165487528546349250984696334662454165936970718364853765130137732954674637221365921840500926406673360566282800530624692569400939184137547754947522082032085924775517975451810311624831914386844841065845834887683697004155977940715887991742494463033129315704886531514080851607089855236159993567027278318211401160110121989796601442825539154900646961434751482170682909925818039569617349428177826326110704915252395268391416715700079827474825700979624675221603104773712337464199366663205975445936727595825262950686266850231460339834466072252566883430281682706395478344155946330445963369697841581087507842058423916587569565297617628330165028314724451634584456078630016937670532556008021165141599136461376488447530491911157164167835912867172198154706643189500624033676029489927266898446157573399686767715985604228010321357551838595623214639260397490042223966376395602951838365131931096748607464000746560641453951990519256378569528346899127736197052978983823159718599769203476042442929886121651874040534383977194703141388405535061573428950750353391764963706708596144213669771613497645083325040910338094248723588031648276082626571469297777369404285720985725698077866442113790304719880172434242357100028299129980956610333352134053578404446180811920996422657294625659968371874908758653892307180477491292039645147952770503155902683040107891782943869498745025640991674337759390212633770427211757650251707310074554465093077739185071448254239962264138300390001768210799899328740546044111834999255383925883074460495291599821766204520534863381961684560273770372189673287217922825905709453425931668204289166276970744955506839057891841770834906112570938772407005575575859013193273618511830200384149865351269976290666802166882931572097031740145670411217414511153833617239646445016919455134017312521244518381180873148763279008582387999053031204342506740629945631346641997211682983098450339493112815894160246789365440901791866795280142633913091133284385254759986710200573894601974319869364255866904393850255084521538604254324431819926302243443906455353022500274190650151608387034282622946099710217547172870980995127687689031178981929787505530596259387708547312142104837170061127794759848255919280900440130328923561059711956178884353473099983173680429710847257322760733221957519491563629272865951689241350979880375848403433774614811198617123830736937318178985756124576221381002840370284287069462259345453266640528361239148019019160242211556371494553678105357240250847546855521699320686784069064384589152828202148409284933390549802140707617309597087175203014396604611979886771135319877728977098389616612270616413339771454120183626990433524631419804587347156377394546881488938263642564552368448249219545741057770599929712011883189825554991680017384960828859580365454110134903693271631642926692686664045236729715041324484405343027501135414980311378958011004047139123645567657807259388993923470056906058702186711450656303337506818323750148610558103787982582759275291568150942190240629084878479306424001778794280850933165188707315174518977775829134921105462139914732542967300815412183211276132164786291705008282096872035910965389304574208388932493992040008153914349132247308663837125417375991374998301107821103161603287026045339838263644369390103164921138069646055603206160140411317329609248514052611155078155038152436013946204795916510280383583945892710381075932018902776821821302744939857649629323112751967296485574610696182349729248323156266466145742382153834328117975894819719716849584820377676315300763679396684125392829514916978548582076674780457873569551004361119864751875799190078708600710853523739446261220590427889494896314762911797756691814868423124789360879138427676431653341653946447197548102040288437420400119151767551998085688898246662659422696156923052333736632648458486818791660014109140884279056222504192681670588708179922459334329588668375698388328118079179991744116885136177909149410349120699656370681171347290321647571435354901004529706927261679503874118426024560530669027353561402851923315731657791952662993316861338677066790372576141475153911659194396810564591905309962474595317341282022519366079371261540513828960748723041305706153041129321558188674068845136537016193607305660664171857486461066189337295342539001628754816589071812132086603398833007574047295890814444845367158244220354598030290224211391934368618856746334032386665079551198552223047223073920570245931428246949111951439761525054625021197235519010010307535240319347188122538238669759211204162112173662413865644168508936526109246107172954651345095728697625072679258991177529836370464837592548344718850071420456243710561892901452435120910783208099668964373920143116453585173541953315632216989537430923940802907866953844504945178999666418242867022780853197777485058551542055958716627001478604093477723888838399829813507334278222364747569313215089051134328868305016397167964499930357357380095441821343490623964357287724108572250883065512612312214104305702075495909879887736074605042959194496516120102853718896620732733558132783535498223767477334735036372805854937596259601173817568679352515623213529887846078996665571835176341972072372359373131499986353584498011567347435071972327707083042583196878695216248944090341904470079464584779388823417104447600576453750016067953554876411398413875215508866383556623339136065702236586689472363886144345025131060011385615956241714328007934245794326122884606207529746588404637752459830033353729436109092110925654738552744940689824451475613675132245440639389386106537914885283892929564336247660082720072724333838820940260935938186115157819785807717583381418637073102354708746638090526249056778141702722908775722689406954080741443540293156745768916249952869931212518305053977332711502622994009447742472830833281483234192310634901097898809895928263901439362884795750890315763631633802363277309218140655764731455321860831983787965310075240508597995757085608788594132636609812794056141796028075068308369639884498059655840185081274763518663964795207450520227893426953762639785380363117574325000165097924916090963319744699577856813557453993636700814066928032909725101297175063599970823408834809211027240756825582419764772763398271500832297059549457081929339760932257746560520451696417525593913809533528557096691816088570960280434300051530374957408871566188370417735740949808949239728101415044908898679993102520823829687894586208279804064673871501193083688850225141355355948933015335294636822723555596931546997194952509506124026232695278551393092877013610089327221327420555643737742546323552336874751571465385294762617958202108718506335668833007234416568575277489989405110175102692326362455311354742119088281228452264278992479225338327012985979491210706022792906228021788212051046020842249629287459909717026500654269507625815952260747386959728637986417565781261978397826322590053194683138802455635345715881886488724578364356913145224385138196749729840040096427039070839126082266991728666322920477945540592042836795892017976456679434687724883271274883154532351631829384159720034950777401619127476346805061450198649288704066443194503645484250023749203190621782454247718205803204728641935653040969554012461274482659474738870909576158184010904850836796025236509370220910256710904837923925137410623075273495767563651835116268550035187810798476757753321344335210358592454948285228702588287218063937281917237233652488487376602113214678679098320907052401696606604831715237093267499389146271391550163582086653949920524514561641010586238114662373939407319979152793601018420901606201661925349135713776321308206874598977798863729387713879032648852691244161608943205797884755418273452448844525675867194828247282214769337786150175297313930750061138497276946158462081836607952174306236479871993367706929328421170573918072350415007024742852239959156719933992021778214873416408135133087094888276817152998214009857498329117440817256941119181513170811680851628706160526573880632780893041700445038199303461612463560074670822554449448270297486385614527989078218655790731488628134038884851519311587306017514590625517119446652755036716895355927149478247670289823151730510785237897877985913454592043554831864417270996370190545770710924596664672480322277344672447688628658124579261407524311361194000600802430091063326888273167287725941582441881080772880728013666451264593598882784413697338840220520200090782562133331336773454241452254141638389567945404302226729808828283298706953210712116926925845243332502349409978072723309073784482492484505961521315452038941191071792909350404270929038824495442731548639243339393208654524711698893345581543703514904715285307486855270137380717837543450671092344678616891588449467652597017309581116091124134339447516492964077479420408977604303346098127681959872471096374486842755136683921975323113159276837479013195142591273957984949630516416400726392971175787603848410691884899890838979228972991698521287680141476998216820536458370940642640521996685940328964657501859384082596049008529386524956415873159253146686806288149822585821599628245183030436029738644127144671961470147825413039727912110040961833722701336682555618896978658562981373869453848139838615570182331889458054647020774669589289041082956644536609585549538921159547650068047358171841070898211658283462766882986865709585394251771313856333953351011909384673601432932987521365622610207690199292855888233340373372638082008453159826502072406497421610892353797476855539423103675167888804192759535208269734907226386598412395779662623214031413028636194064879402880586479319311202625945129822873606691827149218332017340592025449761146394292047632958650546591500806822901682199813262346061994457256514574035825857804378247230274652013577340149013808118927965592314488374061364631178124780461295188355685332922041999964807350381776515479241722899626059603370979007679537459580170649425479227300020095855199521961894009739672660143485036418995660255087637089317169771155889183839635651545990128984469085372037829848297814317279762775999576592475122787870101310567555848983955253448487828078892410490761009207857802123394706147044863282515163083887652421322611054719388264986442781201764553718474347357007381985673187103673734094549120171462043923509930825236459434851663810765035664019013455604056187949751514526259464522183079148230195337339067420691570030371447758592890307997081814887206408226811253347776814118774576217497099625731219978094733992095268768052753686658344555182828421199416755112892250574413894684757348069857903486229091658880157374901551856714019598341124859557886968204951492519006767059910811949009174753816997572366634916277928040907952532619722550123115046142498226624145100285774294570339494783563630450217526563403345527868864168656742993586110126815819933136705109691128213661312387696903673194620615500137839610019577672863572056609315460595379832641002381492443075548789986011036500323644931134220392569652074789979447314732327623541380147964274554465254089710388038399127593650615951979760004115867552916561666787870423299762273420356788735458482548264854981936356837347987703726527410318798984321142567038651721879132427503619052005654497931941084972480071620439973169336122231615949910598486127890781782102217492965687815785338113661682601109113875476169091773347692542503693120023851586315668953623526265119456837385951827157285464129119779733067203135781794689306697500066438898009079851420829845260682718083567717698106495624263540907744089704325194112568863827692060643291698136839691113452734170745993180680137040540861839492825836796197855911575510316108725752293088926405522419755522058301763640755284480413416249141301629193282084102296144474620051219207220751585826176781849212054510894140839207854582281681485156786659588853581356696648448350839107791302269184280008165907292973707794500941971948365994643955136739973042323884645128589368120384997534015432085735479294429034421012062498555877803031373621540925894763442290729678299523696249697215737219654660173789836642424810726725275995407721759617135458641781801919995920459838391655652088045288913609920119490070320240127516089968702555316069702079300141285016019454173223709977040240539795753581946797200852073981752126270288272564770192973496129230077548266477507773784035095666927932503489849077888331470902114672597714856342195004105293601129711829558222885055885611732179086036149624942945270678017556731493200456164258336673293182338152140584501249801261803532257766715715562806384590450737609416101061220890238962587001557798671046473289038018726088310703446807902789113576900657403974136827831423618176323540374767706786413715571471177822073881411700780486466285554593323603802143676460371939346907245796013714739862632706808013264572874944601358920190303980422864582548760033426253587298225227222425481253002246344154313621975394439009209630904458829584138477724420550017034021803788940051058239884775944080506798551780854871702363315344142946019700660943770708188394464754014256866753498054562208081203027337958933909709294049913655773184827678242115340839138617571381763975524875414791361170823436489969087769186077474856552658085643976874366836947990599138838627200314256594253996572315301265841865580416453226724068272237084115352056104840702206103239357176598303567703939415751231501963271939231789872485356981679966549450058719784027387346400935250710199118953394744687755183665192109846143016061583231616448057772772934966611596341512916263491456742839074246797717317788281202452332605030455846477431471267711256615060085123049853264528399088726840403040821412306624092684241449573763458885748831199853157404799010377974209949293399575962742689771457415573217385574264843018949348910111037288500420175677934577274174866040703335112728309987147091042495015163431868499452317004276415796791205866574199527737895316019149606797861113870209343918714164055137449547501621143949641881550797329924669714573336711218343499938345847056620605616215329288262257468199885815345698658959245715372503044158261075194903827908807846297299555305286673753070531431566962278926111658804328714977395998589240444900422813244982553159450481663321442931221090782358635755327459551466519361450017257044350125358878226990936886072877379790485579403867136178901735547541913631804916808274362858985764013845064191004814417476718153066705110906564710136227947245169004973466264626169672121493544911565533008240766849327745524747178910058753203924484602369411635265180509806090335599954621613096822036162347751590271089661807388990318637076035256590567084084458498100170239309719687267380406350689959273468624316991086139142328551133966454160654277416501838914184015847157334444256690819546551358516463334088504853701775677504381239677952947566843857105341397439467625932128062934171396277333702235385088783448422623239959650979663466703601708397646643171689103310123382235867714984914766977346657107548505458247362573034606415446858054683632122132595995012216115635960057975880740712463156136755277557352727694833844237355620500205251624837948108315101173738854034987382856704932878373835921958040183648271032513256964129008166672462254527356739769907301903074893421936009705784244120947062034717337608844558315016746516434811015245287481045202982139506016423297091193878083465909922090141707140570905406851770152518329874353686942125230396448245626381115731309699205115635059847648460615440378819179234489932529166445438029335125145430790081222362001795107522492352872323891837173940483260254027293988150911342626874227811989026185856291727790919306434713261235494373314034367753026809201376773603482832024880811310931630530820628447239384578570393015011098910211880389386046856317099998246863899714563626909872665906722880213597333421721152212398698568366069008433851526735730337782657803644851712733226825958321473737777295707658483416218024129799601462165410428857590545690848021448135360622870869747092762836712896819102304354162352684466062726721418654145913623191412795616437832046755634993221363988735667606016749217652080517901796878360747799243212498065672737804848519048982415055045620459707439702651179262624714468317520851814523300153914111230933571994716767718281335643890738570468339066286718567122414179310547158797851611750396551875882260736231397531266370239399979467744037727521774961470503937817099111818200342045811612434986075625166517734279141802367121638134365997805974686143583489645643778192009368807707304699531967164140141472108958919464531123278073864616914712691178069835322444409077726111761213431594113184619449359744183829418755710086129807301095323254556416187592194681267582591910566273659416899030012123285105303552731137827081335951563327439074774655968419708971729271901044651436542965860920948752724381786075583323916781049393549522637488975873937444590877936505595264228515871486110089991765614630559015796545491930673393789972209958330587718713341726495088356706975468212980677135807722057679506389097758742280581571401387082138889559363725695642387043822358812106832355474228437718348982668136603871566531928000174272254745521984541499436085659835623483781541845794423877880221548438525118288054660102664404041322630221199863724268029510344583957915870552850733110236414437283061139425210740124561209426610960190906778652035351332416011348204813336696501544929692083213218618785462704658299974359912621905879768973246829030644793744487874231726445745904363614743677127836652289995251078322851014468658179051215176281003171316960803760333492133939467021654440213748096395668222816272167565975073494288369264969319742471412594696874272929393871974082403365406343978017916584215396679679761417132764623548498729028826524480196224956189975574699629953468465180770260184931363790068539250163082404972617287137980987485493616216300546193536124874205772043612634334469229886119320666626006183306999382946516342044255811191539800374255079324993691245033773895508749646639209683389385701751972355287440028557081275878549172669146917987483487657102810500913321850687988492782536809818570304057086329667357499851141252848025471989736823928669353213384320503677249408787962572597827767901800142782024128932290165676096900847882481019092282936891294929283529735316825711076854405786448934996437263741899405653426770543641367140022772331753115533363099956896963032191498788224559690145878157936385653412580819186659025159100159113484530902687876003182761256673552455551957973494711403556346358432857029282365823808537106136694022372902425089576586279300202223685951475135195016476086997730348360004720910407958062306394838932345270833805108841005311888089779858982763649430412178298641871398854382314560682531307298791926818287872603197536449500670887980763173454454104719735565867180986845821878120551154851775636961405094203860744290951590218809804720042581156336571841927069758346821104594505948659268280068288449821333066782749032924438209854309228237705862243401159868955965195074224307145286939259330255328618271568148739866903647275440241193253814022552704659278698074273046436513884024631602021471005843634741573702162152231641915038976825888284445307523791059480165601398274727879190139966631459682151081548221737373069400730061076768276952122114981297840724623116440640048809818602796906764650037313406609815250837664959457951765408327122825491261655526556681256533017364252233594616629439333133721552421983001354575096748155169251213285345994450809749410636088885723729990930061809219677182897056494879263438125805581357546711761857339890300663787999950852323140331400005670576870658834531572384372781885207331725905798307956253888136401676641716219323325063599669795026505888742743209979287497933362878817383520887911188747361666657768553159968724303608767287295487384046136218774491159172654991772840118813374012790992100259963282987427090573900024321565343275650330800438941129216079265174251590671223522186817103748732054979235803248275906774333473353900406086405532901690154783159021145527678517358258655036003304047924691855960252469148848295972551182595297315061967923072066384242010263750383348643666509501340366880471944034620426443950981138390709864821331493914778716110208153134529463725116209307284625588412399093371040702992458354160664180671483420141255138518258361071268289129292854908894057836114846373029946218233369308458981867442781706626535722094884244161937767180767111698948353777999981464804240898126984606381411905086041036429633281663667574467805328443272464866141036668954406308265581003236448410944016125352082555099713194312136155502044376354136084980678560637872212427669688123016226144357321955925895505247459077002096054326484556486581307444141979524297850682880700474529344213093617515044407324593308072099547681912774130786081342206772741544679598055454059860087233134668081591683684693181008522836194538602536608048496342162492376712706558600568533173554075431409922241807832236142289097649031112947531616995540365297712706180255667302785701325606060419031801206797857617685721319174952292839100265723822104723707036723722122984361090521333835277410778891736823673321978843142930686912595945813661421774495256531884874793196153100898451245701961653320940368766030719173836690260592917601597392535381547291389867546277310910592086471615689290525274911137146409532567376043118171492818849663521279372685378582101226803651570381878432617583844552345391775997900362343025327487820577899444935132805776447198723409592560283985140138764516148462514230680318291006241686166763788974677594229294486789046257736840729931887279018336278933737238356868316409713518545422978816483673432442378557161612073240311830842107530651500226425088286710490148451754278720365873207094236968597360937198790056429479066493595728429658881794591701187900177605150765195052637087827244360177488119008134610739813608384404998290747797665354525398114073964745086500020803303058246409655875126087146285048777220615957876793946118379153198337836352412096140961204505995585446228347591777598267091651147911468779810617322178401021955885176992668262092499124164633541261447669452772894350424409518733631712593984719153223868232254346444261385545306392677214492454111536538882365400279002501322049173099061844747275435292848380884857740450962161624197389754128318148860442612293745066155233286669119744105412463394846142884384080347576736252738507031105100260680803042158470670029423503455501234443175576230109012350055924838458542746203988961812664134330725664914015418006078161258935103948007598113332445857098153528428795358006886655272923827182412195017751145177180925262522473655578491192412369986260897496507874109634315515490545041022259466647672598614933401298602985446688641584542651794202252994649359963126103235570111146733757008265476203008754305811800283894272937324296761489858780858665060880428366531802107390378984859809450293038106175867316426998458079137028583100214702053932401588678394480049828903362370352659131907293881209562103481411341557540636267839800960656693344604258138178929716588788830992991453698564612887623626319161603058257261968826275597366579128491720870710990305337697179822956332190050960205919437375618508534738177243972677745819940168360755753967482505955602170527024102696838131177241493009389962205297262965524593173453074307869897764942074650756139272709960966257411071823314923573219315034677759737544892045124473746723315735866528829181176900134910116915365439909403983840970518340590743948728976305096932847427868799187322285341937269356215082566743897698906955496971465419918227932619220528054687336386537872117403888642443730017286316019976966399567907235677662338274650650651144222208342162280731103667124964639492258586514474408634538556100502219829836523516229652948845476616916723226972910558902843587274344871992254931246769077119668809638088044854913641098186501373575802047506075225194408834227554555906313408386808934479630283702613665236418353101428727965890311961688907366366795499610217143708942596198509097075378589904730232338337058781904928784351856625739506698859386618809367192712159478480288544325840250921654166535629107539873761896028167476942312202679665382422299830391015390495311042671072424987338608138577818185309803846617994433247054763518422628615424476435671119096945283816682932447753169429816265945443842640195623180847388333559924181345771057126626484938758109878772386340213105576376734729663006162377081845362697939259543946384955799537572503899011010099669199688143680766118702122670854329099143826325642365702676540955771491771889883269805614333274232966636477604416551712960674361787918821075304475546095433435701999954524668229297461216163581115906392516768012211368909307108519207469597519298275044344059903130291814620897043654541868898596585305176177995731831141110886477882036651238102863387415195053510743664146058647071245978565051895547295603225337125178564741240467430982038486591223356744626889264268059517186674755462898437029702840074678697268642511556434776718990481620058546268294016795458843660582688038244202628705397015113458620609857198074548538030294257434441554678839861564893764181413043656390317736103706497088881493312604697063019058204448249034172669483838024318838066080875903365459942867776853586098946548306266456857042565150867258277465949924653201371502139493485244661220297771405781482905999492161052231940331129127912598052180953777344303608342788408169053969638962281237571872204793323208290008338342248003939864800446194983196670404854540771954980657318045923969094775299346577848986862565589745822121995278224757580459070310450671648672589749457268387235990628864823115328292080447194243483600375264263056293451559336680476803172841303167215116375287628678403074698664572310360472121273280514170137571140829697585023016910848627005034615534113166405865953373988953583195222102311948027973476697293963649825522829481538582633429772325258236397354451784431139874140126085174134431267038291406563886186949886843618365866952994146353568855028956480310978321744584554871474003815777207878580370681162897199136152180572450105537632972215591199331094233470019878576365811051739644814077460749387554145529728680239306436422710549192890038831588888465990180116758539467970430399510401242687314063097983550699506119808259458005487004468166497436440922779886239530523327549792597343868106253422154409762841354338809044109237629487098453119664376305857761797878644005172277322072041483247724002826201467219658221550149775791528950004441422689352414714053249170544133878913854309175886378694188687489103233479549606857149951237248528748236254536056973879264756477999720235979754980888742344900580789429852935208917653132486342948811169161670580303480164494754229014726516271200243902612274746300231284926748993836403565940852497151634066735816351973056264102914290796502680189000226406677436809730077781200470787835777204490120965077942133087524701049848477262507632627606747554763944295755920147880931391273852047651221670123663071616833992873920474719706181349468575130475008286244318992225984165244382999643030759320571855934755102366441873338454445647201119195582141194656642352251026257213622517579843493963957132690433494411672832632612666819872820473636631935686652329266912301923820689242333335414048321412447335817143432262927088657525108590102360898280858158671472454629827189531918432734000715865720929383974446385806808936679627980178625139620628233814367293086399813300826905223979280266816169478163084188771379110325380528319605943448069186163029639868844035109758459881082128584705560895335684821458340523825753438041335812535526894642921727505880940511699684265581130725409542136670651365671428572383459195820255062799242382277850659811423599555287933039978939272337629954124302999579273044037843509665463307298446551297932801862264048511366127532584869288139188856612493723416442771890260235794511012661875640000131047653809551842046880548174660183184547647097109301312056356944486562789531908066614028121654241048130144195445922609942628022771619164716627177111787511694138709114818730256935093436088579045609813429121938840884490757960154195333211877398061100072181415771535627412025234041606563666248805022946108498379638964708046250148514440649236508675241280183989001561171203831438859883970690777818448528624556883920011341727525357509601978660645135894535388577385743217035626632379720259023488685100384230739991666073583752729158029284546489073646324165496779846052765621918125438244378566659780715278837900176606547824874492288786457169843896912625620890427356950857927347973321401677172916030043081557750599099795843095617873063205158639703039930298510359268015577716571815855639447969712641034556970513542988002556927148617626380569343740996883362678287770346940813258115005609099985064056633479176430126347002149997642357741647133053508396368649116504382671639798306829509621389931281588539683176788429936015862131220842651345706292961841208100302634042778436704662508041022445250962954557471178542651025787480499653159778123595556005945316450706036508352621259127075733958808536992045255582008846722744139864416866967387375838364939256490532774868244433540007736288198926182041306907960890855953588397673876592258983387288547717088709886173561017929402277705336658379086279726007888244041025072467447805806020981753984147274568807331635579205146314089806536503243985785623251224040207267356740848306221489277893653712905864556691327511748340325980859582905782547025681785961104746017480955528418066222654693644741324511565500371399431654996385250872603629148799302469243044742993795234381122322176782767151268834392187081542336480453809482565107795702531444497209303357801652846328051995688158134680220089877818554132969443597868945901218289588706276828750488718781867097593682016112321203867393180066666161326903827022752410125858843289770023089123612125864442518723779195635843214280001852424121012618454994417641229360336301713233343305577325398914647170528803487607076787624224306712454703499648826098127934168329965345542211474971335234689272840911679348839320310912624846601249490485183475832821638327117647713687532361615620681827463423567692983403401884512480364848409865154674734417774515615340950468911696869691729843505354040367977276220912993512048869687147383404783202325368260943344464019268448239363101957503230885354100085572849369308326212652332857300375348801846440808467405548233917420014639748948141463744240207562871045943725771345455212672684372605741012623562929086000959751177914817616777952021613687898425090647921232514922332370281871253650945305153256842464123088012470376741347178753540873096724901955612916466704964704565851977212488895618709964223101212788403754022898102483394557991129304375999008667612338900040322556859571107713516755446717283641433677434111414321546906413677434871129565043500193422976154146502002862672437666144382457285786517995051291147973079129100928259301196322563678512804904427706615078396375575589987616618196449656669392400462720548069578332160958937081816274207266395251856266605390976318455986738456804224117121046896366364964357791795910357574327653696371682519512607877780792627290223430189905537207818011662504692444508266756507056589545491099558811146601213237227474702506498732909682859334262442559880324012877928598036768776831713538725478207600943944021360058386312147022751400673631393347131049923563285755019635749558520605565891809635471618479762361890863842168249483899621127785197579678910063756136688910929957513834802723564202873556100666158077267785723789578235619435644930719287693787995915849641672685823061040587646945664961074759192467256528959751431813946937746006475240559783518524564817671789465821913655636262328043640378018912985148103704494757709527809650273768317993585889186587770488802766826698744596283957668067440024635309397303558598738055671564234875347670273089887600971611887206537066804387595736817422180333054712660427064232143841677807290302939538221287026112719048216932522835112501688398512905221162189902889874260985060389195136715037193698982112610360601783843743694592082691311752823630642969321746309182125553622714963699372873502231295039398324192953713845669270594736060978094295888535117497407882669658012759246535815160246867295743389577037505853797193584337600913666751295748434540687407596421068794831307143186858719879687102455621130731219975111900821884255843242729952936912161416062980416688528528390493782561977508587716525040980746333530213719968030531796930305914091376485181856400507451064754260763671074470360659166330943731798798665170742917238509121512415943624454040121371396022590791847654667961703398677669743294220354992459371741578660323902656279921270752958827584528327494786102401606427464538302398015576049969108101921276074759921644440374071277199098709250616666016866397039182730952872193419209228539827379162167610876103581700612586315806252751126233198835038605218343228357203078724437999973468255757956006866437816206833630215975379928341093640621460246449286442198846145060239497589349395983736730606340789067688857327458963364548335626447268264144163236217094547090810552786272612746291782575869303717272885988206562431109045378918192686626965497712574009761720347772625173342188369767211327859451340256627364556904000716661985953870136475943112878845849659293800020788497878133689587984914541209423019369499407358311926910933172724357835070076103359008584432872315785688782411479567644795189480746847561684188656125258993466916919675059182950063971107316231387495689626216007579124432683724415617875857573465284373133463079344217052808207309253421765360993346132749769166443196733949028725717964758086049678957029401560703182355973644573973376547480174916619800244909478486168805457399588974491131797826404827150387196432373448224296097978928456048525314532171920770203377411647049058266782259980224256574444563734634772652224617073203331428329038203925255576211059695748611765194571954747845492059383216233503466838262639917592585128505206561161246896075668766209309468018378783385909915541207997254911695978008836701819966417220792842434651519096148030322157591593669138342089554697657233889625458747482686616130498484102095758427273035033454568059417185588797173391164857206492687509351587854386432564845194125478028674713532303655861157299481864677111047807369744666026862793991869331649908949931031076899471604303534912944814423946265468870044797219528700495587285725212168179558082899247852165253271166417491199587051334829176508170243909917671982810272772541863843903311785425354784593736175087964477554341314546758300640685199116053201685405745197592869036614359384827392428774156177576411462665191246011805933880876382863795177823852448480905565224243431564836044188778959741208576831741022451260772481221622725501032980832813045188752026934327254696853227109193045156949727807882480916714261703373781811531092701850439330388269631388065943076420971581504785534458009959754225429496492719783497843526322867105442967172625317621967964830035139223722838451935644276511895780766270050465632247054505221105644482253555017077846153983770038200028646000876450098596952086780598492700370572768292021732580529143363448862551463691231035274490512241842500418266712009600323036039405805530753808440416559205169913153613561440103072098265389436866820795734822877990157008714947957016119935046869732965133873043295919396951505462653988286379752735403397499539295281322670412580630692611314034316753710609624487850985284174688291744822169400098074269024248228272115139165366990729523997756189860851362869585947381889609779470870370964246199983315649133199915654216721621859668268698418393110323239991827993436350429904584953033104289966675355463010537555442064237685977162890264739347920312107099743031193869571635587707508821770841326276578342806934915056574835483051648346525465433568919650912183121927951463240312055076795409039081930755326997787275629064323078050303263497176322056153194669831863532805566455220361850849359657550950970519912543879281750724458023227816311307423355043572086340783588735255185900563051193805224978120918725690087706328502114623057882952646069592738448416440785550987479627275813463425511885101269505994793979796747687078112280008558757235046845683006737425521113358802290495026841376734684426940352380228529873636760766349555785003007370984791532017486684983399098916604027978235071469833894461521667564824616945635113163318242263909000268992564959280304682831294329191172923923901023605257927873728634289136699079323646786197070816789798472638425774617203426541472255012312021327096829553673377566988357505365311643833861559980368852768723744585163311833145791684861439604634601467972537595112391151301568935132349149764643922670691728720186183178969717259494453680992551025499878006086142409692432696441804393620625803901709756042188291055029326087645393395703028384200256088232233764293215615109109836795987942667883243069343579994502726570273306928419944244436679049834331242372215421984484543526211318419654201385948351444196025312800138708311518273404745752996748081505966952210436813163847839433939224691262948324673190188052307756157434479841300381540889299751155487153286032442811880558268792743368703923542679313828258682038255289728694305513889293798197290120610723365786607379988629860058708624283524155606090958381628207411886644220344958833168139659958485256578343077595684095016847491551909591927876719523131473304319632208632204125218416611368078758448210214606921914174989342652899487523152534236337877352842609475585594653630647121499476815820953833329727591465373828503266197808685254864323412746124818363518178842519821705139012450465597072318161278604100995486111965159796638331212206251332977785952915474477845936789582254931574770681111052805084676169669736799931493236588379375567667538323118929227138248634704577340304464008895903182056977528901227177381981539462655210852846192292374024392372295913745944300379545502385901310506205394137107191817556176984838465336519202423835119565732644731512544393874665689835074473265039899895129656656722845879948107708424770509379682718993096550471933886345563988782507246815631771239266220027668386954244063309938583410127215429626254302617973216868175361780375777581931859029486112070385816102131587023009598023511703387467313293231563726669928328960522145940775681951105163100118222887603023305150302942243711040613323768242730181556354385177059087673950150678279908641569417004334746217071842077141118992591456513609449545103947756474944909238980409313079350900236288324274213029415706511352375128671225926340733360847181493894001867214478088059475687056712977851462292432556773632393269106395008260281468422426845816711656611907200239607206658784637198715495910180661073224804001548009459666818123890184754514170324065792189519903480400180642395795608633158362747503885023817388624821303607548953061431624927840283762990345965219468660073310714136780734460812357351534741833159609720793473098575517889007383756059429379192336067868204080077834509420320672887190250750344793252769606857847365112581218391495828975963118538018363208569291229897855000651965748524968497948726752667506715957156596712650264805223932680896714638087216856624823385946857789602709342651531109132750340018400648043738683213678992025323439843659281876211567062957333936919409790020343488443295778842306204730452579860469497451496127055632730194937828854181418991290900487724599683303181076628056123356469509047692936297084949020202439003583929179097993868480466160473148996130249977729221914062728389411428047545674063626475696801060816003304730492474798817296050667370107247747320083328710062077748706959922430018509476940991843297462224919349279902755133889534085938360740028320410402271366996953220518233802452143883124813197890776706522080515285511999255239797014990469975198978147367134770741464074698217764573653349652810654824674235856136205414108423141755522331931612306974251381862643638164232453638430318469416865246391502282433075629128845973440954747794445565822175139526653040120554973983607225449768083266797447499540516036564700518225744736856433409275651724826803855808357522564512008269828324561455107996390853019236483062340796812685513505484931175096291069345737991892098595975295345454043139650142183316293228030932986565519311610192416633620995566398378255206464627005577864358909363789859317458275755809416670501666298102325622155278233150685795690093911224966195605446417817733858080549619612921129268373534245742555721317525828044295039832707442589192214634068276861571195197681131854621038114770039756679712329991756160586201013914388944447168076863677922363351565917636594434429331886739676923724298499570634840940914767704258236717545006305070446902076673830525947590725315280497402013012860246359780095868273124623350957563595525807645094861616604978843967401762911420909693993805959883108561147100473739022822927802068551809423536643293204666067497116774536971604753193344733984377020730126542744963980236481970166145206743042077234329110226618152964801809270858196307969918588975120781726947491704685841613312473265101883931311023426601938105729196793494708990488709323273960501099628843310996842834996199464110756434560142956336074824653591969938621505513624178885487710560410965413240630411845054658876576145507399489194199675080057292912419160865197527652784150598303107743039399588600048042985303492240682710706012001621903314807040708545993840693291319197933782119924322791528543410503154658003603830855393295997467841988816384828458652437437417006227024682992234725079291558986739252273366801054406090456012176733188470147125105918307651323579812423633966628481371913661075122290062802078675808931283864700465089400642224929766010745172020775816668671153483760179423705567431008809879112447211256102815661781286064072252868431898263795521511730146202010718273610094935623536515442878100877737066372693356459471102832167448365729127137785568921736731245920750967608106854737753376494409762134881727386475023425536085359856421567660174625493206930392046998034673091929240744298081988794873587064629053547538163565405297988765463341247330947694488268070476094934717821554240667452226222911091291111788674388565450208098737399870312642005151289325584369013635811224277958134534468422852690689713903779824503339681367627494205553795419816907389538127724566347259964081441555600120905505781148295223599781546107436022822363891036094113901054174926278877273481565780062606106318325447478969863097686909304209508482174767786914880464713270051196017606791300864294862231704779479784281749226281516305887113033556482557533703402651714319286764538511775693101800052173115233723953614221956128402168488440538077453481929165126744326950351282335255743398674912328479236292129470738961124635945699861737576091394581426906358198757760720391320886472272219528077879903760453662133357611699883396761793080928248508897270861857464697537916184394215096083415452647983318010742426843269705413490474221062801199659699375840678718664786147923837163231785879055496097131652749607144007169616114150535810496119968744049351549521847092135345471328125257764497347099811044723710447591982261788834289990550366331302659881256720150161807366908175721415517840062236350769911546815707192208702198304038740413041563302686776670832276972759307410421091360928675353053669533002423444634744922870982310720724004796027696686418722995717058320540845812371789766833951209482364661846260938857746031323104870027468195473056468545184999041414529926248251198847878531931315892711780238976383776337689505404619444055576542325842551157744582695082034721367325600558283123202278169514016694822717188981575842669016303271173350178056382692496186505697722682733180391717799697497412403104151479307034741444213818164507361584164793509134353676292238031714020793280313536237772863695079359686168805816545992605039432851221763215953687061609695140895615825082061651280421570365459832244969048102810672543355813175370598653000343190969688592165044133373983343408347931911265969047304202599348477577291766086753883577237190627916221868141251887608429191224484595012735031004238175756594185543597641540345711531442298905509637623594357095291731807409580991771893086181947512476077397794429701165004683521193201076131755043153739180348770780931555061235758111547190635625274110659956157137424095417474682888829739354620884979192695553226242398970536171829301001077032503812708356907519060809124459558405323815368137613440988362780618024220923611414039182256741953642164575868060464672673731605431854235816737785572830354738250171845582875828469778676348154158873576580464766691019836682166937956330385637870294248145564894728985748891786893275768838218063575509054335884697119469229408239795414394505730966797843813051478991302641143631759359040853121306337096166625829811293890329072546736529199902000989450855347728239151676575682910911718838952616798259220878005232528616529465966591785445004164445552628839533797159141012036267050173787610375480718154353155526399179603053656317873267984009748909881456735608777011904821084759331942226181474528024857886050086862190732934732040320467137902887245168201170146916043347343336823038294631072281305590616705403140825938556468731071564561737149828818824667466389461729076628439830220227293677405724178175922067099274054842065047047085533248178958177872112951826921584207683270310493626798203854190128890705111958067898641364947475924815985043721430492808365638557185084636257757826959762230754625627863969689226761522832608144354640557114679762638953349087728654033638820905661683396623740106200798571761679981261433050564872985954000409267456356205015804679145888111234784641076755140497815941453735716843127158650746142737562748219145258057621847990592931033777165140120039887742252974342256545933193531435614742238511951285637845805907407560509095860194204795932614603396582455102896352861522972070432946149046055841561737833418637584335028984271045911776597490562823316146698326338157645936368189737747839659677314509117734448975191281179175268785793060989438162284911789884284795227230006422074524214481860444578556625183099656991254856871380376777957660447946187356697103984884518852102325689313346576514810860194612972376963921549394761568021404166997686299816247094674303504371882948991809488815168864224616741615705838435296117877738396215046857242321086567338910802647502265699972667021326334487708528176517170182501262501773550501178098435522901012355083906502203859285749469177587255380394089826529766245260576666632418408620284101001779531903764054296183216358106696202380395822131227535562593246283798440986787224138398799943068091193343388053302069401005903796314238330354494053319634067058405582916318445570615252104234321798347856032738478851398705226690501098859347023062632137205696577081325793438894413913460448296833858874536625340810319056098876005913221586263492568701536307449495310964713050049957385767775932353980339966636357993992425588226213315073728050469988182245064014534027185035466310379922161928014857061944111543581530815298473216935207512465374327353852985083949775177547906302073133827436534553263087975852425424419713381817954152311144702429457552487103443662163136120145712252268979735852837993491548640958227731720690497692005942627242593159128360793580049713234133915429067784935479036320194601788992719795787672795079076562289711782487587648357405244615716113705727331697300171194530397861076830963251168014643176488503326670713872144707866147465310031870166300096083565301777049312467203247388134170981131581885775048038428639138985938611554107586451097508811938070039462264730817630639251356993776432019984919858822483274289433811311069179916677497508451265042012045338998824744936566377393036761910601647184877168722345804524185953440404901935629706229930175569036633792552184571773304407225539970331269076237994835087779560346635763812779359199124277543264807672966628945268477236487569043439370901682061186440617419119512248034311446772332749843757214502354367507556993863910953626944206718760744859188208433561423473077610017668879749584492985772958775815233780085605534016808440726862910128682146318416349895841666241146081548569212519235554975031847206868809998057698326690410098467321049574594744192476712873323372541143589232777464873161402820575897622282311236058430444800020288841056361531544216423001448190478562976420446903553691292673146321992126051608127182334569229619041432260511897788512155884679405107304494573133075767055415015448042042044826187206201202239698284899909951635352099229404215809035580933611651740723621312576385492719247764059479093033000986955021600433367561032786929019614035619230681632724312880096925835737896719034027019752925844751946140587781968994295184128069926417945178947000555983338589203585884827529238836686570016099340098671958200450122121342793394985426360714931757523732915539473427852081776512890475684448879975909695383819297715043922006397210932785361622422485141041088212386076672040125491927063944200619684793696524773749776800085592728190783051429975403299960555676214389760708073524844177796457281418136606474638996316452311607335334992222657369182386308394835328948490322970286577745890958544609054573828330240736955143489598891076603432436521085148924758500286516070047970481659155279718944824879832668840543537538749245219030923426804461042341203989002860757374214895428407767166400727034808612526373273508125670151981668228876045289048730282123792639083830416749112241302439705866873827323795319329313403482222364936983007609855963525572357338363323645013802191160889775138103113313401004627540989341659966608674494619937677051861028544748967006885963047455611139151066794745748820371578697120380773703973321033509216769881436211107977338924893493565517175365975329068439589013648391043499957159705119937136984990644201557390735828273322986197384129627281601802846464399690270718250243531960464000133712724454911223835176521629695750394972894191483252661685345763650348899961887643495720676157595872072350309300943773385855359010190126167465521384863747873194623221585257874735854118334290675354228126047491027267337456432656527642228807630510219566250395372838364671352080527548895485235296175201945433490296348084015421767449844746308550197712735896917379806050769313683047755847686931002672087806866872402262080304949672272107674101526543268959466482513760860395892661936088502957214271831165629041865889287561188452661145677391929239594821736667105837753765984097921484221833636394126832712927076889593120963288730526074559893474232705641409364285666084089816305576847007146144595900319820178140572246153827919846913621848237087218869400298702738099828695902172787393563043074478165411218352690328393113293588362816203757514736964965381900998630750804128681955768626649470479735546750850274420170879400917695586747321131245190355499612093724547719636447520958470593694403518343791424318963909781208982488558995752729330533918262677284897682310974938810210125897569085823914360654577105480942753925013733469340767484673227728542134143033354005858273977849414184408763806900588091509817404665324633464026917402005737260293912974804200861969801304630111078186128363714686459663216280896973207836834226948833676427822787879767206863653361913570739951167383535106382055638279067107180813172538229972014071149669132691662543736266847873236610160823367195262317730999065201408025495368944433628313777991054861914857222948511316024922583227105122804166189794303069123671522169986294056438724155239251208374508161083232554738260052115749550817575849035800912590158767696811922815199964640241380759183036992392734731163487188538052034854103535423642564080245755658292132444800038496057914901238867816289337581661271299373337177034041560851423293890011771511156100578808700973236089107547398057785840701011006242704050888604455818810803832945291439336865302902966258108322217010351524538281998769884509253462338851486454441136730030889883043644900772930773079020643464689099922849543584653548392934566839833005513597881086524224498431321293482314868086112209326552866060190337163322259477707748478558557080209517049806556988947414348330175352379193307888612772508353342906667259998036593930221061351896042821579739400228254734957597833611740494050157567013969028222308396179667625148497924562127643047119316155161455108818589915864681490865890542808999105056254975062508774816054025323468078737058496698021882661479748927307005850884786261733987467198966334768742655903755237592878339628617137300821312338884631804570539993649419606400436330618108556666191408345080725293885709423007233680693420480801195341885946655652417183504063423511481305620315339038243120237903549209636352019096110917090900310441669693376094244371304333736307178592814182774233069789228748578516440540194999827816983734112078091943862992804664973129383858651661335613922949190762302497546548788781457080749455061963376833952634002074987053619122014215881671749306231465994976184096911272508338179996217705492932094940998478607581814384482813485996531688760221472952105706321871173253956890437465012793374647165002098443332206126284600746180612815132838609867188793279239369109354467227613084188394069385112529371047849243145186039518875700259509023140866692384765416900856534632826367936957673866029513998546232784209729774132001204953622912454956952917021936718012744195584151497723938470353740561538204805260834978606174624769251918637975244768738456330945750629361125478140904868763926402660202622096238198594844120715738353753450189232294421825835732483834664128313775793344417565660771381805761686199691980599051187601116318212539008952484212771634504296377311760488172257105033769265239652313176401816020763115471609420886132255243148270441812475829003328045232014593923981677563554770259496425482446530083906204242475090919304964491262061002171376310838532840257966435628817136487700530880061965538723541818470507132446514032667866038274447547485741720267360368075486127752979785685705018827378161997134819749990160639121290655051917822822023972160503316522310434112717914562477472161869979981556003626120211532928151641718297430311907314848913183368070297481674285835588576231641470140641847075907882518481364323258827095443461194890390193345182380252196333156785949850151743872328158469329106736257612611801837195187007561875007319644029665950450197057814839099654805431526966273005158035884992011353876195313556842982296899497966017727546305451744671136490420021131661894925196804178167605507120130718718565998606596861712270428423077975168731885174126354434190771503848198855559563845222575207756288607645677656491667514218331613162504899055128017304129515963952006378088781196858181759553893827298897781090705865506403743895759197651653043035552075706355447717565982613215232866938176892221412655499460414033309184101629506877224457530751346503039853431923465106433225909752157461129724433876068669984102636809670964105535994737007615815921211034553262068055477694411900616984550498108900745705960426219954859026623605466543505211293701941351485897818464705469342564458478285527822330684298880585631085562768838521668996412939287433805790759506281283173007839342818784618746628389139883385197401498812235451842057685606644895099620414379434827789719087550184662323934511919849551437305101366114096778672144758417949584345712339470443399800099385444866581341382042095467314809007264324849373254666492321801791252016609009107448918430981212765382826204444505856446557708651441507434347628690251205794876942917660569387322716922399777701547183242764491438890068561592578394168731588190000081150898167630101278180921301602814039714411344682828845962330145134531101139285659464837381429116293065540122475953489830616658565241882814028579703950421908645692379780850431101012123639931833314530027352925731814472965265307154012605815295427582498171023494038627707090527029159806044069605213397264227453941539130793243646009992237874909930905577821104434417079152060153467955612717605281758566592304344795379099648304635242546100880335543931697752540349096118539028900982699190654115453292951300215410938907491012292317018062801780118749072730019635391685674178387428626784189634995395716880916447620975680789271051927564072230231143664728409825290960835626363674071150768437437855151015703210236204956789259777652516060501448432771787845105551167178351861853282915844940878690510550720788570328941560860404754302368902905118251040163756516093950242552333309147561052102362825940949223932179689806111060134585912803281600544392481970062567727461038064987822351997808005635159450107506806468558999173110136611494621890621025217593846716859853676866220920347975400651122053361165856744456983733042303815108369862879207500967475829221512595936877435910620816462752107408806872503182495091925171502875012017963210733618910667576400670088572861857773151932010013317996262182048629994580196792418660377545531829456912663081581199939065740738553105215225671105644611409969987494467178453349161565550165687149277792964041337211824212413873250199125416407429372253760013829768529225468152254887821529030394653850044031836713190282739897751759263144632197802338406007481639763736744062275943003420985871120065224498404342164360068395896678909902829354240901158624269206165848935014908109044096756074593197046929343320443550390993566887419403750465880683346646341970137558044560128970621242625934295845340233138831061903932798163740183608748691493479827987324525663897532984892351225928856520789017150291024861328246915076558653286453447498011755491684532433428044668592871194736065680970051879146206458127186502229584999978149264267320864659076813266136142537879611668038493331970200854066161920263378612551441019912887133142371421289269197732505536804185950295783155587570806428490036749352028907690972828809210084405313231892779715943697179897249661587507601920965306586778257346752280697513733189264947568005994182716617478061715847380988906877391944117236575751712571492513292952459074453012977282105728411258599915263132014989600870058420673992801553343717026240845293328392982057673979122894804896700664885689287736976153839620317390322963118562741122020345170118247294731787665325010970613582345791964495185167060639999775286399326616519058293451237640450764529798547943197908685929157921450943667394640317308362342032493505778339927047100449605975155995517041043127128924626640238475774308733828312982186342350733817991995414812399888907457979379619039872454861489674380673542847564348669397126234529127119793406862520895258608867750655869153602901460346125229317000020196908217821223315755069139065420663788365411777524507853172666998318700540239323495866331087328402443162263916452870212629967031796761162341488938928544705361464191278940238080080550565859857048869875602141623242304009716931004099606794677925646483457913509109932193199723773554868446439623100803007171868060531662857832688734976898619651637319665345502831112557766538514514872328279502632770254802178695487163599849928609934736503310354200391165071771540505426115376175654921867930454662632613702506859356978696059237141468811558241942293523968489311949869238078248975950585064420984314522387887254146215360083782114929434478876770253755712169837630287135831949358434933684276775033353380410160586528983714036905970329128427313906061794495125607900550334740661946619625321390865508778377944050182933484629889542052921793924949517373880103075731554490075784785794488037317145154072579909929561806353412921747225691853191521139424081880765154806597555888012444244445059937644421001075744076018588199132673696096499203908378564959719701051814881497641375443743245737139278671235873246883390316135943786132143915347966356243822615986616582393097383137241557812440670305056267868342225139767207760049525663334864427678671277276635962758502114147276095987474799774322292352737900200499632949706338729366635285621065928817880635998873286372191168949336507556570583230814367421727567089551446336929902063743212083749154036696951443332804266731997749585968602447597833069495644711269728115803684431353802842470963857619850394459026254777096124706911263550746665652871677978423637347467586595458687785034559443174224918036405481387021213785492397680084027371614308837136272078494415643153932333490411210586599039552863081070876223683924919181993647965842907380319779591885661230317232278744373084812059082704412837763251741783680590321469963855771998731162014066924785696696852357425859848823390323726426235009808501727909141280613278890966490337413218070615177081599740781544439183700255473743819619622510409109375090733468757122184100208031977638775919725867142251013085894967186351879394772912296105969645581841353794190727463706510161665611366812811335402822133138557101869845101985260298534382429948567964576400622882586004059241911054144219744872845918506598977117099896706995490944333632651721226800441404340183286300611647748681606279239504424125530903328844719997419143461785683309515145473055342890796895700364488338580924624213880512334345493700618110499749811271873680760859285171661832238678147958924695955753412608617230329778617011623362794620335760677458198212601239638685651844235675506676793189114060150821013782313820089826599401669231744115214571918236842585807081163453136082695616368187118035636905465436830477808764394570142873423540216076113595245402688421630772097845910244591378763218244378333046489688016866181835380271263743522308557405468532906685347989659090334685203512992464241376442083570904435771526089225585731554224837020338429286032228594608103817790390539437634575145127646241793703251010035240809288769466762212978485660695853976463924602882628408938618195938266486519827997097465537378992731389740739783747572605616102347509069973640402215607770142263188491301416694198884567269197262978227788121756030058977037243378997147898189288554004723860267334883896501769856269409986115174854032744224136460494938478618886482246272942958208143836931509871921020212277391930561064266627661730112421545759525471665476758422264658014196025128844219786137160570040450166468834181662373212631681856405673796066163949263633777719914047191452923052136839401673794768182428009899083374420632379899813877384245361602789159109753313313504333471193770547231134507458507952901620679110597391133701320644980751659859650584694848028808329050743648294898239092008755611554181215004948455691326110433091365700842626217546480909609323714373844658008906202723314822270663647644598816350456037873227482775904171983120007945368695340902599013680510856544657828789466510168097334889469614259716089973915521620763533029266735555454517039218293900860450922639682783041811019886579592495044414510776822093320511102107676112901015086666279164384135031247771929771121012761060219734950080003898346897389336174926958448893563507727647722478149320211019063823077913014337267987892408980504953671130602421808135965921888814779138562533528299863953134858216773455748610695045767480201364843017794595681479542818175914572386078223715697838830346738476225552494539937637472462548156244451248385679065671850966540119289109438593872865025098175484936326789035728289692011670009221511401758474431988472739670374750347038028355366525273307714369235402600714989611184225721911084420814713803477022665753601452754000299778952623475428729083602154305274821753734862754615950624836834410320709020038337490748146481688550189587546246971346864715294378006317171909080332062827656728069756898636559359786137040984019261583527229150710132654184686253625164519794892252025445160637858556105657777492057857737152446249447406641432321315834129135048439337038721877433066698374474090173672413738548229257019685747346372959809766613492118608177240820708041575383880248329306582563682068404343021011709279629374529123652911382964653944166160623279216794933282895221721425642911076349348364065684543522457599192297377647805209575465010392825241827994639477424977194369604141462648423507130486248078335541946117495555488986174316517256443767621849720821255990079199928896292937146207726509676177236778209234006509586247444907405336655326751439734381433633249241748927872892472489009856721836252036965185307455814689623244566774789061481939752456599735533191587832547609954506861684643024971830010243872964820515121619982437931145685157092552582388879685176788861964943809252436911425212315870606951028059872316462223932067107048875522439174974795896625441697394176594025466364644030945294249460244806722519615071493887322827257023740719037079137785240148248660170155314432609431421360708827306204230940800652938863684511335847740446175014132438929745892829358254018146484976488597859051945077633959572766089254270641043022097523323491175003391145220520813496258029037603183864891166487724059848787014228993056494769899151328068890362439359480393785902733447390653944726029659192024039390178599601413871089799247908151796368743022525931927836028140907672182775433907279537953552207184589879446065514208873803651801788323651588584374798426985899868932444366978514367862678567175985802087634477321462363925745694984975801952579841621724247309741608755076241987712456879637262934191056808392559033500833693798876770589884939205743656213012368608720341930497623622691496677911210859422613379245312190244777419291950920495286380093621397542246022441922776499694677703433728322644173868657202481625033025780794709201440587539289289437894660049075938328012824985971793773224490665249836796724281973751969817171965740881328849739734168891824891421452506119669220132458709090291507908321830093097586071719717811327617186650961371090898173770204104581833372540610170985754604594145501166630903611781087724096507498148553307331307084362690175429027158805293083858614157457632057135333796891363142955588127919244690784204466695412731664291658959636227716885698552002769746632900978923876626956070494644742021051480908912365042238162136535160674241059728230700431646833155264625160233635941179666733980924484440548876491835112057845685512563012179381593191941114964547862972334403540494939306530774130044081885743142693976983513299191092516454001643850240112379540895923246382768094436582577675305577878759952599001780294083627422502194846314511181094840889826309258525851418835298383477523492076676323140233314171935982070315606457252150821975629487481616130193300879853290514333667538954162471551675439845894894922670258094610645078761363105338423520100366102472714026031740030391142172506670095093992413156294102563544972203630318982484691125325066054939265146110210734172387460897617680708003178475579140179285852971552910563123813817838525465585288413841675169643719582279740452244117790643931536255632021912866247170700423045827574323227486782421439395983759563095975000637779790159551374326975706140800277035867333069218460447171139699203493828738567485777199688152212649155422268192076006686061091232740639776510719217926704916018791892547328424316850165387086705678832984477516333200424675679150162815638902939311419746012008214059352296515126104978988660071900442985023231511674672859885048021954424202024219723171399390892701024143959280232472732960941359095559040484683511659011304068487356315450377591925927562511987024939507248569170778277090896094705062308497810640613019181297007328322870079726641190982947081341161859492910047544030587872813793118842849648010867297977262082075724780545037546671681296108727483921285471664149184598404816822557673304851158873644765315432618703669602101707679423670339997925647019820793561987154470639656042421307183142128363724622232573319855451084855429742510377638771966846021288688018967066820103739841259020382587752521587354564424499104575441670408895466193705992711745986238117442989924410540850159551701799119481088427431673888787622752233315351997047433907047221664260143398249890412100901455904113819990397731838809047318840662589015982569538654257204872862444492807125670752319466226779682298872625931445143801633596528266415344761483153016141409716606429625168314041153366847674789856142388006718134727041454153265170959280925967515788531263311866766372552958789391355718904386528297517663694964969559092441855032872807985595787042007494359300621491909666437199330464611328293182640430074358725119573717380328410783341414994154400497774821808544622983345608476018425853134204088538688800343086565930580999135857509814138306207196498847113039511299211140109448907104225900488700255813039006291771326874988761805515398668086677408007241777134470346937802432437889007586538611215651088528746276648337795858256520407651329501644922054420461160069570368752660615066099208487743534061411380376852837807157005429138782167015474971828342853239834184200570094817122959973438588833286134690869274897929916659149312747325699473291668383450006932773442141256001614010502952368015039585205950859224612452233831390254805167324020220432642344130171741412050082610776486660561148305541216771772341228857841717187088764485732715209363459934083616474008098469239023890649918413902752908577500696184529770403082936756211220298385545478122635850432047551891388769218402535691924971018549521246315093044775096963737566762992504525616051980176537171734929789827309376870049603966510025626353864258035577460562707966046988631745050868341223485104528396640713609092971856761958329995873001108240352986043653066026036912165377491319590203662823383251176315830874524517350631393106688199896329893803174370142502812861623236276303745952224176584341118509161263435571979554851162691842805014975857527176562832307970316867503320713564850003510803675641139706956688444837074688285613466464219304166765538447675972621611658730919457146969624216077002641004888781406549673340905704753008109550847464856730563651707308696312962820620536357635920104368219916874565656415363851725866553453845632869055310718044627538773495377147214554672889543321058639338859892694310993536165877049505932682337668903620033159666061587219730197366645448960958558793983808625640631442086786006658479600903858955885138081950376672567086379635570393444081035392040605309901787826991872665301121483644025649966673828022282130804880156030890077690570672778984906243846135161406220040653258508081512897164016561549974769033017584932946116865292347700757626412648981876065323562507667343407711750365094844872574453950403636597534253505601753246641796081130295392967789503272849427452486451216570354542253879853570342305259019710473451391686185601506061119439413768811571179966134384468732345682645802988160394352782447220414286308562668868879865705189516025732787928097529695331274647356114971161230591289701582038537207131721723217975012556202384607298880589734339308555126174259299719199078962583642914614075527036326556059196250144407700445566614047923475565127448054310982625934995411591657360960983359811072987886487592246242528477902409466414986856518776658140066895197254743845389903490504446394534685932905253901907893009794400104482519351823992770480186159013513391459112944086282642880784497808813797089731912579203114191393568202909265935984513710757549023890150027849602882785379724410597234512867023253310829248102360223330997779398858643841970506519258982782980494848547816382768431419523433256524130868324905095636324949694536160806294253366720653170454209115691613835276920970306013433681154464601795528741470868664678998936279844128751247037662455821923956374106594783593880007450433765225583847039087661838010630326144985581690790419920397289459463997836759042888243748810818187061798014183152286526556819378410015072180951231807052020829429604004934672498191493538196696484673615085783699261214648541132502305408752717840674390315975437030027783118790610699217849452301064763089344607495439612585782956017868585767648010606579931423131886283752899580188090493001453679382367255943101301021595391761994615003169889320544820555159604664979120245008653036372059939156491135989110271559257560715312532248534391200255117387405727768235806780116811064679158397608755165707559072666621868703558725909784637520952408619214804696860502477865424275387097872944406525098467311181724162144782248550400524463577934630255253679966645638318896819317725212958263064025223001991814677243047774484590115254779895473942083337968602320946615306582885450462479661290879250310487109500390955301125282949706204356457148911325526969035431399619241445250124975640436638496097352004266623781834349259420152393116079110908345074291182218316996763994892433541653446847629073660495764186038003839413338153790749366715405785569284589516273087992386834820905598871453372061539691615134768967498178669116425412529562727668984731601971426755174656566031280473210820583206259638748066596170883761959021960946069167676939345550588004297045120634248830651233749355644725993634473773501578498302245778418351635384212240490325308859530514341247772381229567849213258995540347731045502005942403279182969429218749469480510890361165118151085014962034824802931547880204054281546219578600672344646309889595606465803873976056163980594908700513633345908131405863026158623508004207315469113447583848767325427807106069421269748562165508826895715366054533313535058392829654457870998903960374421871977691496762563793472491146433012777787687178420175726888924897824983741007802709003182720301179465548488963433151291198304471015557217938803787013497648299231866447208577399543573559199578548692241510362122279582012926935456498237417697687104901513852079999232554104556224327997581856058107467598682670816687304054249937860463396908928534684488334071246312598566832945165415883103819487804255709554237538041630956194926500161819194431889626081030192219284727222902005093018916550357940445090234812493635819570492695928960606540556204051442535403337156688751469518018288823659551506875836356996674478525482767911666316659688385237997375169431460505107997401746146939881323609750222671432425901953165304356638601717035921930449820020978095491438216065396470092547576753407149665572980519196014889284369710830033856058233106325446954792582798342916143396340222966302757034435833846467501994000237720001100819577758208265045501742549911262886769225573528719933635562389000093880224132586272089086960454918863401365445576283368891335961865483435725955044354378770984623798679063985868697165477255316767844613039874188289743849112291519226455146030854826096800483663575761117127319161659279673088827995277679098302285199852666392049286452307566343637433983172496929554167459082458661653225264334367740948318070285417887586730500244851780605340004774364298078630590892107601524640760736079387723358752161863048511256246835410621528432477965500387784733431044159339931774737258719657282981385687677463231313947144874200810615328653320184594031714016140370027725268230313975433453658014844567537737364143780541098429992297356835126282617489403916375424395721734952040252957433969753800347273119700135001130981605000442438377943596885298297917058108531415613587948437895172382294516586429224629849854391295990192289644284567865390277509398382229447213736871700801658871156749492053616776276492146991761553339311312280374548888418830532701393562141394279898546407502558410173706558124897555822839818318156845360023235069416350907782447679308317807135995427647684981195225333839478756848419824397182581509261613551312856198525459778912179064913885930058157036339787190500309061663708729325881991005191856478127188264159302183067570368671738627125620244233417926667552439222200160294680487954155621690151474641819105708725258206166273928459018421978459707493052896826126150233751824212414047529725582972063904165152676767523795998027814678430967298940808574796150077229994464936226886608646990102803880329297484885832604380785741750239018495864534541751890988443353419291173482578387015596716449179460479230893906668736704871938725696940023048418897611192923740039714806797596161337518319504651487932862809006993058733473609213258160613870259315222473825229405704341569603003487746239217725403388324386718114981665499988041642785494768186094982496517186353045161006189799979199856786197223978476195357096862326064381911726906344629810747628647647867601714642284381453672652193492538414572626047487667268040218665496179978266431738849284291438469563660331865139300461228973610617847190546230593944240129428388356911312517871946345348731515129828190872660810893763307391365365578646048188375435969394910747352296044751566382220959897968188758711878587505371210155787450391675617616857636939676198400650113289789882054743741876757276354843097426365155898523491754128584986473777924484971655008945681602923563570017047851821233133009591530486671393983846660991077409812290557196789352346984751639906943580394714088588288981596126996217967207237940137343732067741193184989157054600208855963089189479168639644706985846462761415665343691799511944844849336593425924735308915260768931945922395923345312319879105104183490664509095182136828528054706428934930746654230502674076397479712398191384790659778830250391312854142204417290482112013554219524209563317665908904004075751078186656118757079707327782794998941469368513662271739153679337512410764892979451994752408249879061601834709456303986839246106098010842281312505615074830833023110907021762100834562345820322184511069298357976934748978263936404914701140586318784550389437812874292037444756275252399228741269737546982767528075512247798084076059851892799417090663975858654872417900060630145940782882221610432573734942196219919856536983243058291667118407770599604711496930106146228899201459643224345681258450130481823399171281171669148047915163666653672109898697076890880762083650685024162896922541715937939783748601516928174909290100439017538333163664410434186499378093437902988582830670832444857050415285967368656523972005642602223287010927296268798175982450748748878995859413928820789749025409887764701740511993329921522061655596046145214168060977398341839431715377279742380438938904900049286903706036136457747373900833615646800789262894219765486639053734397618542334430959318620616454426460954644803710405694782530916434870312074210234032251411603367219649846046161645260452442495666519608712214139180409227228367979518712714602903230598819932475067426717756874238476065631255400799553746720529552903270681711774679384656615572779181295486950399054715299671777443422890911576989454149930123497622244923573870599892836605542937711366474086262860717414182980850712912839315371878245518795175604505501119390789155300881608485249012504645270874309682739434538331316157262467916083282166439024150102322997798088407060978080456282733134214271677831280404034956620940511030419428874360930052052906193746690152773586998904852932204225032047303007418860699342076167407898674948910083446308089662086855643363047199140160433373155081837295552745777272979073359126376204488023938992069266992145160687082627624351540150471926228741411093537460902125867343749493061076388380713989839563437864166943345586944519310294565187580656736144001648640239736916405591452546384299081113380270599040411472596881597472342121297421379096462257254202670957295827069234755846701823729733408100383884016126408381237430396608703301765628283583063242913064534770996999693382214573593713760734646968396612510710101016806648022812280042132706115990851861696403094445081089153649499987562909266813366915156126978526868647799917323267453517083455185426846523669538846420841454055690681882998553557292391458180104053985868486788113563624524328163380463239315236812133399334008379542025314609559693094776301465659938184982343474430873685112761307856998186221713149167498274371115956000387970320078162919085575831433985981858875093666356324658429525530062413145683668226148507265793895414275289978604014421066106992880626737910147531632488082660240779236103900067046763449570398099722259728088665867008894178565377835534163323061522130118258162185089778989394086393274925918591947685854772824780415449376197967744418356235035542293699970763022135992843921085528312443019375534920670379990173879655372334932590469879563007075167907876884559514691034342065740872041474838564047647425851764495917743376812362476188867878393763213125937553797802467564853216067696101117579797671394002534859544564114068627779653854992190560216395712856382734934293219297361061393141797415371856658934698877656476648153344907918003670076017551915403443877556533528077030702129223951643613870075092404137419693212928850252226921899052081174104800974464823455564776049701121083742234521940966326119208308572497476111601633468458327631008420721079610869855815458611685932209862517928474234890953409668622904951483778925116630774626637225853072666862251007735812946887717791755284364231073547242601696441343749314110417971743241818704001295432407972301888845152300114124109886906258196885572536909891665035124095911196265925977784130737999711248900953202398281655798388083732120854077808566099214188844898083953077826675728636594153540829956927800024337315083704218860462516516887830822895795764365747589398263448890454997582227519888126333671696029528275723330845811091894685660630180023390706613938778873900648147012816673616763118514771679355407003224313324878514707548299997155629883987306374569168846793167127988932017801370905598199348735848368735799294017764039816282813812887959681617200262764724951646135730097854759721448870013607269245696574171155652287906516246073725393728131638062726523293650153739345261303938012254884921934996889950822510813846397108374248518723580183608382427107665670632031286387730783418728971101759304995352445681206411359856078552519085520017526256568367272820270279870535021118676954192992960620552879160216497078362860560595065291132353836633013842886318849891094671104372211488039921013714128844364424713519459194385564214663887116593353604848832108221674335203647615302180454053606755754625863694934686633054219410694566647174365089458949480148207189375250442254141155861905527332583415455201727226664935166344867869880009932029662334490961604254961464307170396810139834634753923958779295554690375513175464636711661824637443117282978281287623377916174381970230659661845978149912480440548684671562948028180244705387623108368590987093311243378684408303475755699717437599820437699909092109176604565532443922303677869828009298680570412761463070623172924782906811108093352469110247720499476202713025675313802398276386058738957990021814106767307992707477185193113833083809634163485045786885667161085542716224914524373097976431885248353243021401858055162948927188932259485348753455389825572195596423189335009907015918038797853951193687093230335094098589318148356758183859751749099251749239655607690337677105115037110387696945308031557604805371224539237898661176605384111479118268331761382505660703280403398575803461123244610555848919774449163266105802580770094684434366227103270090265172269209911518757318982336551411676216414045981098302320648858439310628193502962582514391651556800527583963049879004063509271250772091140818244408906052129831817266919566078733221159234443572421013720410370119307853770825480317396270676563494490693502654669135793692953302231797054018637537339610869666963972638040248696982829742721322936432781623680035000328008058874604755748258032453048398952748998244465563414529208819626938696739389009242661780915267291740697331194220673794439159494766153133232860955002920731311076673370772274238826329962655953739848868627800920278985222850707998656664087664766408133420395359101745865872894523059761960773980870737393839720635050683151014397098943922890298669488523003163728251367979215183109823832763276157200721052416192656869098122097873864800736909038277496372423365984089506725211261873355508017052197462849824798702221024308512969210105397434437311824349485084142971449240109242928404697365543238622408430401957055930783438681553661451299507704155209244518396143085908647648791259638564775134323629831221075326676315725692202914284031252221942347579005249270873490921037966204174847603428576703235723036135122378921233542488526376279464780502192427338201403154658934765447139739395019890368197513190765583574383546187733319816891408494672824930668571911526736188439348170012189707615361053189799179125646305969158420131358439952747131905600541713016413694435680359248785578113961457493336498158632090046150585944918629668832730584671933646863237623003312847627966317087417067538777419004131406298460518230717819748996153058155745857501931601970895490844958199423525704284627428748378076617763755933879186126995633913152843755170000523622207976651393402241824903217650971319727817070545710406432276577691002715977083119670230030918743562285998785905625427056016842037586566908195877366204502614409360974906963406558944371090279166761986755479211734266634982852372690891357965966191095327328372132626641542050123425410430151882017302608568867007025234182536204093600404061352370943377374286024021705041882411171984337968303044902512914879323611197583150768940733648311261059506752768997510925344354566722482141685324070352260834867938717763342150483884572012799241018866799288546413471564128987119672122389368390531175944185861935641547365297818536272562487581078419110723619541131439015480263223345310047009879310438954759557733231006472194025273386649167814635325608052087373113040579655447730434417148350930808528176239688711481618229727460016125830039083552254841963066213039656353764776626335777217084315624581834056352997742890843098768544135118981201172279347766463958182927846687103861245215817885974315731226690323496293018014905444417376053533030122011853813494498788712456172374436522628701074043372918368053131349024748863620531487285334531069172581062987460172373728660643401654162948345310154771572529686956358219797372291422113572010751081841817928244091236522440826522616858392268581815930048716079722537387537900742401117593119004580212898193147243934187166691852635213860623358975441189779371529512901327462388259437289483834306037737621521637504603764853498776053631656235214459402206727390963866144595718580948508887518131994385340536088038757542262860874014597275777787908395116522632071664850768665718606059200642217903632069786270401802539031020584102154021692101192815671652967725836460040528348719822458924593699063310689649337807291879773227622573838852166030890137845814626917231866972115179815315385467648131439421758724583542358229986766094275994452321909713239501085023581261392677821624536685426616571615445444014441472792033811090792181474747210045119913276552888021783665416933098931965482261377700901277320924543476171079084056775208435227100416519295584719645990408711100638712421415376177287580863057185797856493817147490115600785401876146228929380366861716207390664060983869379344599295661521428179740580139662209956083453941366312863870528818973647487302626035999812473976271714646545542326317507594169603129307974195004763192267576948259071949354660071249803415361009669579530308444993916671919281834919300252730666080558519369334037720717428710886235629147085587782755522500822365081804091921422766152457618652799340557346791566643167031615945210880126772364627720412873503182382993312728658849584943953919260902195953928514727507505460815942021971862016901049067249298801757141017441032420801100157931453387434649391220557441903496656500179783098790291881425361618461762130286501141945218595679106472386835723044007316817936669094312360470398778937280985024229751398153668250009140795534305150522663830456876758015948416919297594714359974545962003768041771308592982494251973132674093699116518700043456244764742132388788010657343071198890158926166924631236967598631073587244289163831123725513322171818061717472204589292919196104707867440329002198837026940650010095033219339987091105308874074168048313439693415725030139469893707005196001980383448266892112236494745625518594802341785201889311653985569878100981955020104250346714094289512702483082195547160313371377913384664842996968657767586913347225477656272422913759864220130678502560766559024971912897922361062480853113152214454041502634419306374789398430713340719424002993103422857945367298893573476951315311443177562288999715595884613162069692281770488559036028291032326203729063766171234469851178742407810490577416099562927823720864672849569094971908088266686228817583502961043483895921386104301672419017426731507823652473983074428664019621253372005679278898446133574632139574630158124931584050866481011582529280020351618204386243135396226257111239185016181380600605872267697831830425137828437508148618481857708488355755527094969877237152693799128672688324361691058479656212773559871607679969628391535574890378014007649406091217437337968437192649378629880991012348541926538496738157639897761094510251961274589562539564953545582548973427618820422688815343023007482971033843032028542077374267777740630258907383964072354259561561165900475375243236754654725740759255568049806437653417779560228365239695103195932012869685318388499937218900013644264182516883063887086228422921031634752906687350541531230412466804332101702944185331242038404622008256276769104232663094778350070515065226747814173847609861680628155330800414779030379403673446378278793077929577460852477341680312253788318962457746281751656998395357498021099592966757814141819054826978795227670439189483902334595126680597309804909950970749865155396453251714988207584075623342634721144629392948015529604826996473660899995361653936706824828165795034811334721946095323843411232690462357828116236305594452544786146165385226968916090959403342289919645123234379987254421899915609535639447422323856033811738292656191195537636893325472983842682933091737860804441383055447284135621793672564582113598937215952522999775965140782019093280532211981493884807887263038067139954127299035151074107634768520430993415969703150390268587511009149716738689822181691859045230313468287951677406035740686755870138524350005834425080352290199812670814995805322951441197509275876279366221815924351912473542340940639752701992447253752581028490627925295325648532127987865729837850295387327952093805961000347802846047119314302178340062239568478328580792280453189225098982755955488143661922116618016213757190552494943555819744754412583286566528067556023228024074585953201752795166392722888880196309428207739605233135414726229776261135271546645718641061390257509312520914048749898432690487529116848834109228179304113047183044749276306559345432066117047987089272867165144611811260442798338968378315247394104952187512719228104655553319712203772941766539063504306963767008417534589899809052937253276093854444236566806976583828674745451643851180522493227050093163594809958263572676247375110059749177311627858211931775396647744002450562813049484364134487961708200654479131377951270418424509778612150998769582326208626779813429652856049739768505134718188202542500370591737856284632447032858261438617716877660512059798015556659402969656290231175518229065903354840017173262635640788701464083872271631064165556749076893266631133337693505109192921143904052981279070763960725533089431577269490998265605282579580452702914339472969804148681714561282353462356620738096102812920321323491475247241378982644049166610269294924879691461766708138364899354003103376445558881786571103559847491063159018097631619705812314720510169985215523874564243771553465251436632301684834127790944858453910174240640822974596600291042767791375516650729028447323507183006990806300269306649251282182629241032979570417842720875958299046709342902758270155392814277265613657762524727731955662485907142777038433543258372298077289476354056619409086192023708454205654658698751288962791587048561774530816448042811231732594173832158220166870264652307466816337093494446433982798638541351350686574083875827389432772812501312643506552118173305298972265670120387107528877613946258579065925704663545788754370859325265974043825308631005712638132527577358701127033599973733645029260726365264542521281104077527479821235748588345162416699102330593973488273308488810597620494292046362594037316583532772429684459679552951357915164937455176928385010134203465789880647628742993312938054616597569302554109961713217487925351927037164277192069307221969765088084112045369025432878402608344607008315400765114139050348632159798492934962493085082203137018878200006035076079958618469094751475163485129652229223483795312607778964051590873287451389006387005839378782343122740682003410739569911205945406540499007516329572188057966783892568894744731524249206275247529702966428998428720504949261647165960916721810619255905827321862827129740888991464008420995973079767854363019751123647754323992415220605344211945146141690788540730878654419991475205488766059424688026691332619863461755711118021386126084755955016034970609908225451283494980263173059537389089652974555861942113795973790090826598469606130153555695332477391158583097787795327852789757015408201164883783677292761687040682809691219414592128342299415987505114126756665625056837152634678667761141953715737809745461903390053534199495812534670447648631292344555641038197633580240267829548264584608290006103694126139249870957935522642117987057282195536292248177272882236774553647332825413692615085083850081736545388301442400860242676233479236869789172882989211991629642717668241333994135864680416856814364535007148070702144419077080201795446301887999660747243947317998585373290116225723167980994430565542675016696787950658448172908833755793086235470924186998561502325699110694098904193867023419204214151706439267986574005644789690061541870905953645340208034552839549762475658961829716150929274728706385148121267812826343236172848997560828197852945224133189082447201545078904350374760424410900819681997042120516313619324071599829966071686232676544720148841424149522997174671331317392508464833489536925768218155149209213485441048565323323602876955367415324182577312931532455642218689064820478767281696940072012361631022039185821964153434803809187188795717184909161603337695064494128718229211256264262926399063076999062700408633256576662224049031927812719306839892917380339425622736698495507510950805451834062309323896257220178685083958297057630603928914181504892577330135765384718121036216307985885330147117913483892323298740249096464211291103946289261943074839746106131924055112141212253646727383791025172996463185574124042488630209288479911213174940147917394635798765517931275162326304000798793353288404624275585657402118476815738651261547508276432393861548763089994863497178391212781181369920164504321789798728044209861928680666557776062518106681002137200852296696157475580374991004726048669029292945114392570321468659097326256109581244336815838478873022332424359785197809853760635504950752714089928350886546410834301775668968134189684132819898981383927876477183782754538764318463284810541624094198077561205594647667657873997911095214946346557549791380899474971650925738334462916484457553208794460184942490055193368777301425594685663224703121844288492848176991953160127376026326237856977729450234460266973616593342985138705893706333641068287713336569255652421733493082011718191150294434146006718504964287570079124691054922177540878464720459454744358030656237590749420880682675055272563796995187697407533066721697543513912372959217879084121190028619167381308503507159037758032417843002484746479181291702224273761377462735748054512547140098015226556891259930187807801519012184447076095367181823357486351356755464266084277599165846419463057552054072048671290238041358792885158950914802982250067694346346754021538265248951080774687838653336295037992163962447995131830690770860368395061912741964157903723434926565900650287589170959828426084796217609828025348389025647286849176839444944878217591898833875907938408345310887656802053259150896624419292585820914195372439019780231597070904135945757873266696890170986061191800600156622795089268903090295666857635352644905929096808852218917904038950781539099780282800196398323316539044432070639061921303106798621436383228232663865849740187280321490521121292161761989804495080574865128710569015178850395235961060625012278237051708912055267322439859657502903668773939509810773228801023225533161417043765131213906092791878475655001983497169615414543940742779666525385565603580550833901829227208005976045062163930994954635774726355092100355804035023323338949635978607975069828041740578643460985813537431289050166083229253191839225983922130187253037597518875808056776327293744495680094439686158318333361852115866265813624656767754499139537276036205405960095356311483547297241103011804604469230166017839836275980607406292596328402330147043281056452390223009124057073898726841309172777053906255505402743359355802661667485953695377989194496041362688912728049552015238784268599269798544324558413904743858709966317557059138952843993982219399214704929123053020330267821925824150952048805698492122261673043004336055932246734549411601175598868444154326518466490773623058461473932387695887589109018107750375489042910425133274719905667953601068003303501990516979510501154881185132271218935296504058305591818976032247746887733503342307079939377356599658262285520733179806838092371122435882546752506618207066367192333356273821897228481944937608212653895118634868238447457429974729921248128450853016194176341914963554925295347692883490857178814209396096307700498214157273810774187061090513768409375077885438309172893791204724205684786728849090954810436543464009302015182328745320851072073833982004326550325514576789945602125755760125139651692349230214253065893830269442793549210905967039334571260166393575699627484244614102114095809022939118621381616389938735980814026052808980113127629601093732810090785391479542451706845505168327547917599145994000690967176457511638362971339162294947037448483608999040695063561856190113632105073683920807186601772785904491138840478928114825053103226220248700142796756720126258760150840097623219457517975550985941642727410938253180037631791563501981974213329746141391023529912102112580630850338360015372706216067588100020740856305681522420344897299883751045064954054786983264120378236794137205009258222860944407757721720403096570813759748788376247365020739380419449994703643731809774207919847905352981857096213455862282229758282655563341181733807878519239512671889607773790046372487048799589430432595263703747963597443178688337196219745640008373086786760731176208364858605416019343165262497142571872317092226704013110357970708765816163921844541838501340740039140565759082704253916982019951302812364740154575733990367424047197250168247172243592326924667629659972767038994216808542112668414080909929739534738629513139683008292291094563620069117227666921900602406202307554979906808371768289711195408760427921303660787205814456136107556712464082714663598128006628956708388783632233463651964917360573529930179612882825899014044372477776831707523920645202579674842750004260059468698910000468494369513679013442103916836844401334797393265233056419898642930117887768114903000591066911070282442200157171971229227316765487732836438418864006513104264767850499316541262153933266997813841798795105392198134492748552288568922408009970602059503593607539684761911201996570566130181423752585045023733088365306220569716148417424743024419169741981692819416844006645010638321861590871751414030686181055999058057621029791602606447251747228951445931081746122596861718970924145205690321685038968248528132594311384936993582388877650923557556981220155126855813722828673933466524589286911521899814832338238831902913946609323090402475412798306027518079747439843542932346814186940499203159463473915129469174773566608163189987512370365241325420180127326224376259874247208180261460361210194319649351115491935458087364610165871807152598071507602907201815948818592183852216284884212122334534662762623797730520870559918055722555020090989160508342793753836870302847207462062371535459084353578302865947811971366260023411009736212014213565671769330223529518961776795475140816848886732470701866650908734555516766577547436125503046354516590695925249134963139717313118578823633649385957736090624741299203838170176846229740600619238184327899851451355087211257989650351942055979410969327837042180341199766231807665169079821565882990373718882993408341960478453601114075665811751578177022673991008337814363639974324124324649632347407329960240401247218861655149176631360176404036993055771495972534016759672818478906585564008803073634693892473938743526215380794249494174110191079577514245931099896429531407809183066008487118716506777310760418598062167963780015782109683585462257896678159272015683286239811489371869621136992742676162283337649259729300556851586496213720112311180909953528325885119405153731316810622467664597444591230197589083591557580413294397320437837525619762643825390179728640925112217480364311049886699690865939475875087707089266070640504375085963515495417804301455343784819404544108961477120072066667287588644214379874899768769762424099998275333351380972049432991735533717880411773902240524690572617215024722484132478731773896403522220187719210272205281759520397967636609641999578700940336089014037091044325345599274783670255713089926266813755163166343169688390995457243114083572027001682164551449399544926033414453162482509687993667871503898551178905352261699299635864028212830094602914316494062717455186127758641327595480558974192058095873760347016642357340074574932497744417424736296210887828249778083240240346997106116035201657668186265857358749203204870610323093825124163082130989618023812462188728077016109842710605267992426576741491667075941313684132030353369137467497096061350823914262276735576481412679377593821897370249947597364847936718566996553915201824239173655821170497516377675734715093613659117027204099119691383921426599153351886278081007415994974924162049897051785808101233832926073391256317294558823919312238665742799178639571038736700077305633769621671185401070297126068559582227126365544924244977414405989080102485685691195001386778241152799637806118153833145719998678298574404439985053680320658832840291861328854836316052895816683870909731234849325952580075434760538862547027116072456295726917561826514926588333426117298036273680974722692233448163223124715216043014910191826479595768615502656186838457605189102067746518183544052530126604812222474400484716858360514226159834050162044686559298482217216802166788161423191859656402093423777285148919132627886670420277143357154490741459223052598585896170374943258832421683460339428528633259561602560710926190725443064984115268714824574530748765298122275090722765298102557444898355870466037035434519178728450165178152811734452969413679182905789856273288692624332824798361533305359207157143096129813639895918731059189665942983707118729402025267838221646526230007850431295088075781188300955602929041153071616454058167458754590091547576196663491977159206846915443694820563322744429453023205789499526850389658314749022790331920616406762282859913054074065422580181386744388190784254558502167244198686527013866398590126413837587513590071009674299681615575425744035646590978211490379079292628190253774584556918703231632892472117758853415556147888638991937795094186087902741427075412126494091344697383284165700531945682315622602565655468707359139865790205994389184961110802765527142417044267847912054777962456593364633340118714829754531784027984931013907891992897422914666583791453719379893918128973987606586921224923735790341364789586036767339059286526235257250012199254481895280971468847725972043529957538855633366234853364027186651399292271027900023938805918516643461015189236457737705722621288746835287917029687630161779626625025570735065313542317122833709604739391933443670759261449671725115820262145412680367945737844867386335424256007039658984299117007730499087417630093100635483442151149337216861789771890208938969831142545587968874949453438857869146859129718509467413402556412901004278401669501739792810774843399787698736708930101450876351664098067915486374933229428507441229148853150505297842916220724395849573901934298375464394461328916734313930188889572384183895761153100552973946513141347732670696251153943304300391397855475354366197529591995778521757277993154213835290176185179548451491523250481415478067664508202931510174311787909893923297150382236270175106112507907603555332260673350638979610846562672813157998560573746161466845971448743393674714952477872851019031159693236443096127318390684345226579163269419106923331895331212459239303041209586381980799406362426645035639366046214192637171129450219311043637904404207524737001333039225274338617101998163637853124716707354622123863507437159603763098101112485450490143850466722077224901830336556449595202898159650330001031754490538548802032261251820797392994314373157034625005327978676851177579631253682230130126059706153710667996512562211975810141510633490446262419465501360698448278115540673749528414291560289318891428068779211527743265576791313808702640827103257482191571277903448725299287728654861434285450831660121210725778716633339689866360280953673122473407999120277562449405896557307623018881925436302961500386119749980751043275315430638599613856807899806920262555953866287597420360166910112648406995687612468656249139213375363826513790221134960298089067738365739713212629021465626349667004929061192661841752896891439096336282583357719863214765779812559756015488482195397563552498109029042581084224251548256233562705817740143576487468633119609220866170715040029682869333389095450494360989282433920282448302980828442001861453224375544929494491296394141375430319615493008257326175551321534856481173405119293571561010067376251174292141132878140247621906400099384356432352094408027838980633281900884885058274852111568350284005137267092136979441514012540899358739909007471635390674328664654722086036394073161712797340646530875955505350339431991196244850606433260963338440211150738444236635620876373847478578678769639059623719165333367859377403984079800063673340702521777208256880138224391732185588582062284515000417123768651054424465305444324221272358255137104513308743133660216213685197951849368238156225261353938388643319053278050869110075941076919029653997793009866122376246400651596191345526048884365903196488751735719028257479616265638222777113730116296063614408167137767343083044190055305252363331156279609041464171489181159824847175091415298998150870776229281263454759761636047286131612777717415198484096467053876721415738299059074991631943339176657612642942802678579797882738692694874068277479326673258694349715453840293350461730992530956888710599548162912992066842396144735256347281350337890701198532237894380629848102937832886076286891164987658340946737018682480980351668118535755041363444483764408481026969471025307560670269256799714980209100450675744570386240314799514958578245904366202469931168729223864021198648696541537246235315115067268617706442394761463123231722820821949004243407693535725327876793002458641858214946716208602931819293212134132862689335213676982311798082375157994949212033478962938439166358923744276424837833726110487861980411541222734302533005556194417025657070032294645239147448871143055064982821726267588411948646257049550909074524981350244262643914948256552746160975567534441490829588356871476924180035088511430911527723271675081384168279735317841828113930127195555042445667325354621380973338552888811802297807012641091385688628933828627914387759775386075860969473101433185924338553253168054913284839967312487745101826045996459470054629699442768705889482893864181533735513836591189073332442570614893181807641334404732262667583534697982310249449743063955521976930052109255734008222955089452213434198480591836283831941495456547496671631845218224870579319841610976223418937173584563879947386029014693734210064327960844854623353843144840163845976105329040052899436514990901775500554740696169644649396332761585974140172093881303800286770960574448163388547767192018015639597845861325265768900732225929537928262819996468332970087451657930710304075768962203276566384358396327671750312515080012040322552761089207464269426248981427715905012132467789588247112228539074176476001661857185998226513053269474174116331056153231646749808068610691336826377935460120741605162161849854447443188971261350398982574771658325810661126352913647822708405590411277530608524668568025138873696744608688387808592396795284955338671429372943063263557839252203816790339846536328526069949453815660807364818490427680928047042333295921932199330829547111399553511545390608566615195175250041459697342138440803606940109414770367768710234488265554874277823137944338404621334547993655528008430856964488636086466224603077691192405180230984170562811757797286929040828155085811048734590383612423214654905787287069715870627553717922118283377226822045650265469295793510784657777124855018233116599884810995371249161268583648887785038047884734974349717514510688139331233195352987788600048412297398688852170465582269553786015796517310456077786276387751204982940988963300826080044540917806066854531784654511769758627762564055601010982599829122027914330128881509266805860007242616419307588176305439071876318332666159805311868229858311638631827144261791937404657817465949989370350418216725328779020072047378006178489950051852452036141934647036841696834596124942312346376499669883173702598821731103413594850848073834502947280408685392625686164544917537388539107995698078004571270671674003709077219766416031011712539887335083171565078248616655208992995033106532511741911205242869180769326098939490980571758633144266071767580506098006003972759395477102995610173183619805233012467674976376624762882238930750520176164670099605537082671543073968288051006578063891841363645846168897058370279845059104325644156910166475200731913857447875801341727756348798792638187436391962125569719764615888242798911928055915910039740057905965622033021998394165281194295177083593354815096361975456980357760151911472204106543254393104381068782082432214322885935342256377609248236955580104645856709658689841149462177099488572328227045715572386537664275715711013533701438627989412102839700263669606814580402557321315922431634011308804030855798126086566147622383400523613974957326452951452420639762255149501068994405500546439469427534908666836807106582900673316773565623434702689428037329790849993724232552408904043446736332238310938239366094052594477531919339737159675028448308402815922408343586702044561215274722966219769690889547671084643292878759299309021475316778150114205563105764677612653103268534976618284258401016850579943111139526792359090679366316571679271026705973455611167624102935345758568801273009412055829239431354749093061631310815822839411938050699800389654868083623754821604478539067979547994445184299231133198624859645634931601017948523420525295729463005256869331835478782888320024729100471169922466654458638560922811730802675180454761193854476992780163410261058910952492644476493964179938787834298362588195680274764346468059725415178067909850716860311505228305887586899794948778732281062995791955631144757672302436388975591036358764479880331346447176912848550442047181862626196084934085041877560462675312267291626359639745130514396884609883583757985006875788634868302685848058645597977480515004220320432138816418498949189222825582379029544526640563871560191473248434981518977637216160269328180129304365069277246704033002130346757348627832603396767798545285337203009909962920915729823890145933889138120646775187892478118099604172918449587359304923127863644746336648480392676376769263160595646358543725192341428771292481228901635196011493840853596514491791024096032496408692682849762490343674084466887914594604408311911677899209401779190757775468178247086874700160781756807736030571647371441348486264029303511966303691306469398486613168312553960254983403325614833350993191293092686868040374576148554052675269860632654674913411056670063243949983717229513855004092492327387040260635270028762857339751789915372921406217578191097946281960033556395074439603899268176613151355028468439218509060635889702208183086087942619496095466840289654412862201017716896158959967011718490248974666987059244424117990731485917969771814378290716230888681257508623847950877289652891176233154880558434938710304834614392400666031121079645619678233426773009966211220858634468697854210441667063373209078327613656811791113359826564812602738042679721243885394823156351649567004524367762403271689073606278372929923897688646735102338636226312989129763587696397098542961084593395333896464632522462523243755886643322336080857352605100285719358430345277698661018260606314368431499692222339852328247471863887528004841543550397222557692391149640044973472026148468916051293315481958083608211589099498284977475849739358219991629559104957482039722556417808005934415120486588799999977774146091910354291383193995093553897861070993139731645325868331397174791929361851503243253458005570923432687076848829233765227632319074154514427375574239035490549879839618241612291689932015375331989331526684095262710284483501344424202709455055129897557639595875539803419244484160069955428205711119113161749005607417714861584102675876974475537858305742052310304208320896236179062771272757287729659980785917822227696773334568753134525629775579042061301412333915236771588490684700009768640678921368028278653719134964990683599581772540589765164222581079757471084796486052966025491051289014366579960771133710162398711825139333393323748079030866573741917015949994861270783654608025970985572863431152316709665234376265279815542691379436276129571565853299328230625467576831268775311287951758697244149175156015046750270033720538085138163861523983218034369734836244757876505662720675206906844642326209479003477476065460594473372789631231592855330770371023018520895150492177086288924515896086873326299780518157889520176216479873740581112886576628392711519959424655091864909713348222368757248051599515011975088713181687113539391929405391184368885567228783338754583525633332106571095308061310076734938936153838383983199028836775411593036119670611280707652248626655346659041940007913633223760867159915153677308397480446325199659104631737369079196298842582594154802219604301735603622726062581970245964434749800390452928410725773553155224805043314700879352721039528235924553106378674921870231705190000423242566412065877849790970921717060844832781936081794839188598594613715919529358567648437385108214790960854135545881356955122001938580243029594611027772206856180843510078126161369992688945726467679529944587257953375409922582754785417705690502415750747242807603417402851969806595344583296715527472682237345597613699014264443656985451905582417138333906410314868982346993784402502092562533912477235697631241051821862115847264714720855487270182232545039895275361985886675909017746748145884599586178597989631975281794126324665704030092244036071037088984519112082934519128286084531857320154398028159682457614078424640464500220682307268905180078446003389438865595119876448725501500844923608273630187512789722950033219164267260230237539947551161966443010856461238995434202606623969586865971955853006051067752433249215404031479566551330588034743427365596583025969369955163931021122045795316330599605931928886561944105523807429156008903348888741658730463435569428432736091081191773929430618577342230574010515469628045424263742792266554942279214217213847754331234172651351175704129982289575018786247794619703377370384863472492862814407860145113962694840308121437456193539606738431305371697946025843397295037330337496257942500094955909181372549273058287620068175724909316945448085381593749809710529214775732936825028962711572574045453681109821075070870910205841474208200248725522614944748405258377069367017629318051619742690334901488909205984100156815077266165348269813823630498580881999983995409169765838177678226279162004807663926102172021768411015389364892102346873007238854464613687388446181566110826954836420632626143687888596283992912999009405034493790735944069469758096899462256318643115022426514942032429943009673315919646170942231215859242311289688803754725316010493700368989657924651556446977795813043932641405410362936827113445232790285532309877119141268176734820121758660296047839844293428995405346309365498530771857020433324120817621221936713177391050971318177714989730259288168341279607565237021328505494308473132024023656282580865563606630826059008444767076127304740909533576386370379988243165385475053245899710191998724260352641367390626303022328931119047997271691556633983183723544397930164200661046584886496577085962506845670860601435894008794225387183824697879388928012177368523517149265154170442686523518440855150884054455616114625311365620208650271129746303801019694226837535503033699488030052678876872601256169500490282412870434274398438184029173485631544139330655427425259022557318684673882572714430695253146522373185972140179259567454964091464880845851891572499210165882564272716892839864983334880340759261526324851666951221747640341555643356021201445538106290214873903385045997571050716255382117012281599433819950532273964679042099688368988297859687471258349038141010370942819704338185224948494152324508635098991381772459699783729211211652334762419622117912182185215324456425193103383955717762406750667771657502137987807276710315244249885677431996712174671973122046708858825231359004427217782154539871781446235187670677678787990754716249873528945767039153677572511892571072750223462921106939828483936485527355160510367302121185897890749263421339869985932773126482626289268309230194254610014670562154534021411471331710543482370087426169572619808735255210610118233639499995187649923667193435456088026314505905578896367972883229965973767898555178238578511145711104496952300000117859042872080957419793173164258701938184452846762401412217213491196895454914362450077904079918366207094967934572183326507197789279863292666556761366708541278347815597380674580343901547295944090782471738453816538261291942886437982800795010556271944215795845240095144946287557431795713769587663547872588747783393053480187851097712286401698818642136496039068441001244290401295540351499438057530376932500680432235492184480758885473403459581252574889271461475282514120692599019449657060568875021444941111061826588788519206862096936377124231004535887652646449816075642667794494828041915497825494802363385042372471931752137598225157981608904470179826661474843009366202626040476964340953432676253970418977425676878493110251223530744949225172397226422876607711438452675339920823824650093645521343144749367857897935958360687607705480462873325413432428355906376827574091416736366672899724036001218348338982781071880827246581562091821151273070705663662527058193429218747939942384077143257588784412608679439435852358696150256480076648098671679542607134028615288398841136973798525847374775128242668694804184590784319807615218577446054779710305016379430592530777015572011155782478875184949540981858960731116289415152683788936174978506451886664042801578350411344101484786411211356287422222175724248383017649063529031800917316241790742437500676284245402690795534397169537007706203678270051215770637747634179319171158729247875834286374373172983741018073366124049160872234887473032001543622079491467330632187925843259564523416843153538142461718928841146558433406713856200553444424449817327497598944158988144807968165853095067912124516507598609436070561896198566682791710020241929696331873730375811330019530868848276842094252740269591193452607540587285009833835160750610995336878287585556185574178403213542944915520018459333732605735871011505129936453629199962058679335089224479030751711745636683325653523245153762588981080796102316365496822413034998151012438410008534909307866707777080898120774114750531045151936166402673526502871722419819101835586373181946013097049609982152676214189205894344149564675522345424687616650680099970302641621820452736136093168870361746060320180859775620428892239153962882044708489031224416404867493602838428829856714700410141969310059075484941916101956688387326651788749417451191024813617411285696250788074709543939670204668152515332874435528747440376444754984344208075769263869581527744684771556125298577062266385031162330904946884858203138900384747186915503301679677921408941580299759223593474090807325098054093489049176187363902257959397236568633124522155668558071744245757821768900197629493542509217165963898241130300995465671950957446867255861237099383837892317128469482463815408472472922075913498076256759636111100192788398616921674122917370305219060811844694176029556618713513173925529398046518779267799779904043575035684657682070529886661954333317649040266852198284184173845847690319394295986101173047245072826438435082954101329776772124056130312578269799045203176144319737341748395590088780470049645330748345701798030865585765273268882592937349053247466872753953126697105049871081481813541368709326505140163853096634654871122906650714999791913006162477180842267720162729120138997731296451070545382578417175788567369718675526516969230384698115540004071381398892122629517267035147620069427048230241402357761104066434431154101127390591547422954615531895113595925541115787989025671554853371293539103613871887938464601100571253526047734819162802227513870032294681740757253717160903864495072958999066526471592548555048318868786799020841522304517022663281016880268406154465972863996036388671934829998707240252590315326084325860599236366688124496781608752082281827470799188386240165677835121960450763410910475929177018674011065229555581365915083257511151904604252847601799269259465846090053588761076532644560005340386033768173761813905097380546731807633940786445231476906971259078125171820200859613635151762877185270041492654678100948246822674394034413306926388444417865475357043658616737546350443417923479730616937001091880328025768821666754651966179454873047818565720916598740023165892666334928776221892493091798147065346455722400646025637290511436653879084025239152321896580259689275598640147450945697675200629161661588317674555258333662784407186270652458547703602699985929453955985946111909658665442897134754935165686479760393265674235828384032644828153920932104036663909366652902482863125961205211216718333851303249860697270717521261816811777324029815951544419814252904638161749457971981211376198655018756670586397650443802617960519133717547059436618549249494196899465033575900844055962135608159031314108423369325662022410954864156927679002734655785528241937260237461052436283415575518393160500785395447994574637284860876880072747792242111365178617782342974942999305370671705680082091874795987828893360253113589749214425382544552978000787376795865920966518616912592730837253000194836499459166638789771690572960084782740117332267772280956603149744441279765581671912537463186793872359262759917903683927433753037424116920300815165305013908755040499843246309919479499286039438680583065764357718163467154894206525519689800945387879514991701469225054272588399223463329143627887613804024703576213682452871421895402001612997342922480112753511904480966521123383974781131860533598560478073205365593928062520621600588519217589100713801179415447285380534202015302536102084237620517420079197228963705151053648677773256541666494904569658397116118879074924784661579280782434975820806734460177009364013168606297610160269330339376149620474353197007508182183742074491734821346914465969232143167048279466101940645915580975851452325220521785409106223281422810455640957608199312774085505179208461225850112683351676428289957929187850497193373341455011679537298746445429103523741222873044302078599362489889913796396959096085280972647516634776492748430188521977825569579782102874276086749714795435168140797976344674244772549167528325791794317278365317857036505014304674138259711807843014450829975819323388081805171233554407011807976166286729343699787743213054506703944014333296619151105282174639504938918766347928669153941961964696700068528785257746233866777702383303436134025917290278752236127746000132052915916311786065038705261751391989200012950590822883669325771600992391125689662956002385365456916909144489587518907607551840719271521084178090246720084059465729373403638540426912667198637015275696300920890128926081046863094167872824386667189171193518963036672631075670841878370655566681595018104462269037505230401702099070387610516284484568479806223298247861492168000460998252081505062943680607173949013608674006909637556060069604094101376030588903206302665799386137805843958815052172222459878020537022766633911896028468526621596235076709794995529782179671050977560234210331423472482418154027792583157823461069486388794532120805188231167506038406245847250319304058250273595878086989346544155902492975514205917704533545875352634356807396391082879203392337509154300868533171336362742173108305506552636063387136582799731898217958837087320966493913677787450037242573210457473167079235130242091786033011126740516105154279491892141036375340522427298373277682781717459525636093384765575312323935400455223213310110729356616334000010010769394301964369128870313850101882942349957255481647288414341163042671114269490581989830206587624366493495784080116934259665555959081041637362760589203086818902958023874320212575917441017676032854744121414580034448178764380506411621063882216290795294595001464733489789216500399417109951233955754652933341910001954380228706302854066505978911788621387112881252004898953762739164011523862752160659301008203169107182294144785990422335649050809405611297582143262442381950850516984954410051716275152647931978915597788700125273584449299375496628808388499551106527816445720106240657162957730734150225207937872777540499612149707059690263894214157923616543881474190368701291239967233544326931622680661824667319860137787515455744911589439958877606043411490500629040163530545579448952727197193463305182578169723935432450150808727285605852204060588132215150720010858686334082171600186456483417212102837616696153737538532941022653277783587981139774437662934630960291580702146587276671397870880282745045597075488314083570158915644325743083494235405205861127339023659646129624933524029797962114124351613305175651565489727509807197704532149360195982551813283344609305665944891541328827688175420101074408442989453222469370200231896348098113262789315728515135000778999834693904158557096574771920353984748209199618702937406244818092692986760455482818590872325558094937724733185775075914725956217327677032082123136878593165300465606514171474722138317599026729949431125175789381357663331314988237969263226106467362466704690551674725054942550251641085249930392360111065884141790621882414698693185489131584381221310334373022033482461323145679293917434397173486451028042755651596005514572233649798990870572069162670680122055408609857051259469064046965597903329712059256304175818956310248657636560196402958956073179785263976754714710818471934681373688095853742654453146594875394664195512561358976664136454901171765518623642304068200068921749834100504846680996959406754434215399675189786610382520946963491112207316177002417690417057157289818374700796970403510671531031531031549639569652579194884457288943487380776129873356319679075050404482742419334422761290149369281537324168468416400012195489061312148353316424037075977958375476400442182320114423987369817271661545310860168398427677345393978227600045432822914171455151250431915020985736378032009694695782506165150279846124893325293155931153118638561833822915158161407402326016786875517655824379573299937546564540801034463469698004302545065200476685767878600341271476925137244426984114825957814113653269037815212525592431417162020145269459629006529387883089629723235443202214061401869259143774305530238677771192960112887099854399419283855285067583917055680010862746805565971577598710406687939048625152855842475856978635324241703869824257514566701088578479200884520323856657577688319272688576500954480105284243283008527132216277191504738802447808961748910360365444197425147674981147582543500049224894239571547514892002137831034035322648177139056447245232691403280948984006992796694430980390939963309174760149496611977093510013126551064002764404943689911665501978473445940748030152784969208503928888213153913837784226093895535422816613449739404164022494195770208876639478038387045754114139188057209801255729212038225882066793211568705902337995549473146997629393068626446883820945639953240035563312367152789316873813329610926510769656230165035179521869198251892070955357394151709710992795069086573825259024151283231293162462622378369141317675335891531294078152962502865499406802036897076886914521486000921824594111598890521001044653182013525424661232566207478401244608965426927679300519029617024443760138491220682849622656286577319569803313773131317699356339744270400249883233201383405839882062677590471782588762037131631906778834598950725878296923093931055835371512566438261424990602073677672643431478619435186773602156028747599541492789620899199046814727908987402710181390384967972907487715957753399461477745291451017189529502611056113118389579978410880195585243045182830399905144779880300039247330047593406190200667219602703675558742352674057354964812906801387431561097362524452393384436363570654342466385088080436429613845404209350979298716613533954785988541996735213821744776918303594208315354599009176543937008842203630058179716259762279142208500335274532107226472408732206106089162077792257192144364984399164525329209231549564655639996035260854925215156535018732902919997614533397039731693711564317534261157364947905910027797832853546734234086300282988571010378667552042771622994126375647408075638348658807149840087473974940670369032885216968357009079058775670214393754004700787047279694020911195214039610643990790080368557861216349159962309867876887740109256007262577197261448665003760896318162319637529389282238481445501612682367842205717944311347879105894263088490957801373862295362370607792503704274134607378278154925388437982548306838351449953868629492043907955773627665113033473431087280717013249252853852856773655484327202759155927516034666644872820707629053202471126223488373411324097679596511379210437476544075792075758250298931633874596207938935671040945691621093771283205324934963653987034923540541920233288232061643456291211733927246716282618392848746415447752271387209309575066769972809726889383051139715357449719635342059260334896401744087509221603196320144625562508525408640286931853516500499792027982624884228128846984653508457733059474624108991893416075036385174330317891074271661249767614304796748249905824065228428506545122665399945029558023326597762778882003448760881591949888684752562920067528878553908515480105125597726789773652059649114122124115189935278755465134157624615401528970754395159186685143861577898015921151185208258984945377625112481763532940944901646792899371637931522688003483782342004219803987433526993091417929436144699577240692471290406380800623872357429877036652305036315080488893199410169255550880024293173959842334251504521287798281539257626832189935604725963890334321587714997155687504489212623645524111899842330599087871114439108411609229349313878732466171209565953528788599757775168238122998165159042459704135102342635233457214774881156080317382617041637816661373813172902293702688212370435099450380343691486934138898770192406628271970692293887751497470048343810409568457262967522451625219673842115123068409073983083851828927522295939210153214730399576924251688962192282823722888962171617209128478622894541799921311741995661719598503687134780016680176680951966485533988658023366024468381839744065396307831926409723700576001280172474212344952614436285924754940670337050750871726517100175214159381801204013942264772127347112365059674914704141578076039201517542180891804739370944978921524824259864914944787394693663300821576552726354079044704923831289462627208513740691247926923310540163632120622681933340468092598664028167013800972546520636761830849229204829503597363750983842934780268515286446373483847941419192712496717638437736239563124496853885879722440097475164120798188960122203460765175904758994711950535958011750131053779804753191060681614396532327326293360955872804002189310907758336270790749063593862245907870816393192635630811592179569436073914302570913047545557565671997315254916326097323133549097324294553615063082613888835242451970854365561868415745460482992395686900276962223468774370894636132562066728923475782152951352583279673847722116211485399713882441273766939053338791674796901581669879739525946771390589571627060506583991807833081446731334900129316990647187939636207946527787369780680683722861459321096220369157659488959976592626992666907669572729598973302164473785537843404349644876929641676692968899404519392916142863388456306977519583876008650842480566552170663086822544278850727113665670782879247130223343083288140283109214598194306305784475463848601150323984142363592001486648628379856387262394694072850963158280896178394882467832770352480383689563398433767570488431421663575774401546397748467526393121623447651100488514389512999564636313334961260420113929381944168147336874564891258306717719709317090895205595881700290843763541339759519144910207674766019831387300758774110205600473522346082043406392703481387115212580758418817736183244100128355264710072124109051124597734446694845226874457151581420654505958469775283652453687445970071843763223514687905245210343131224889349292807087904903759971406351666886483811731392175885160868769656730504916943217853000623458296688226249001535937469815359802103344972645735058195622226592583952096770317091979588064123290537957025221876642872524584170491259170025343484818771038064540012841535288579311371856732810405411572884042040516619408051603117944204139494498287395183679383814004735472858218086672230979183180728439316916658939299384542893517543497197880960049031177347076368429267476984858413486054516349927297416908508561941044412877937482636179691800188300354522791717010202882906953719672280165094139732906430796161862656139700613589263915000790784285682557483193684737151645728896203192086744918825396905486953505102779284931157408782126546600978404952753364355495688389865660429756749813154969498514110035323323124694353249199583256236603461544104345242328703643127080399697571500821060968570941698648193827259340572563363491993875179738803033707977393401901714104963507424333353756177901086208542164643553454619510527235695124475617418462074585707265739136484510690118318602529496662564661664824556782129708216189769294440831588222625385149667784395516468017973980120420425894627111989316276522627983729943937061001280355129958646817159424907417582148826372159552440502998952403072410925742094224200478629244405439919225123117960852788763194369590915094738223087675559214888050495958626278074920321468000897790371532394078795081150059238255534468678710298605364144939521435192377147131152746904247246729600752310156037482973003514836464419938819684342411715932469216116782642841064157700499470366309979199265358993523414526130306968100453792998864360873341313443518831490793278071308421476411593866947433401336430949546286318483542191081990444606790260961224494205184371930020192933976375828546975085061299775844094113711484646458667606350544902783069730616677935091771414207608117046242035460833793466001721699956317207460383756412426556818869381646245719545913585336826558500204806150315700618587282398457061863230356056929148674583095740658087854893430250437746570525461108491167698872276854241555791868897622714581321054746420472789585402153234768425031673636074399641104125181484251832271458137813786490066713930774924329842353956285851242395017892698667576345988938681553404395570817547881869600242357355688606886976149320938931156172383285037956880453229339061095635498395724572202909523732433363895879727595815441437550794173435008930763756944483998921994032865180428480386759142373393904435813030652726117078027696769295197468199162294919470636768830853368595055508719661354181256748950076371681903421934639152417444800404328764715460473550845019511671972873352432968480595027120974479659691539229554575134741705592436044491480246198322245548940971702503695009693481275584306440690876719036876273790421405187001321666849193068290047301379021188249704810833196284341261685455496899551192660571526562022135202619944056496995824054113838722741320024727439380922324820511071218186413627792150080713385800335838938411266360975347547204648523721592400068623133317331673510805906365345976996044432865404208221824115283093180835996548231616530370454205616495302289321501530004989561439285839913252739830732859510042356606805255456880783449919279102610840584534190487433572642419783968210595544350420607477695304768397231300266385605970207410451959554811572449825671328939207827634697963328455650176382944811792934654258287945796720302945188916119033081568881863384928381408751154882614105406724124580212880401704953815026004857630406860825068752537253195211405844549702264065784815344466782195421801275288014327665792821070334533624077961159239396320492021172189653040150912962416200241788293128025623143171381911593130731997052159859146917445877606528333005807984756592806199837080537242642414979931294992137369545486702750763729003639174926003856734300888692315403288458920781938450568906476009090876899762028270102574655350209390951803197297297630679444896950590172326593752177263421237566328434419650262590085999681472363374154243978423355404818045421180870169610448197251176044722126717062442881431866680151995452393886591241841500107363202562192111199983965402911807129119025382288837397466199680126781217321460822614262561001055138578355764186062171203704123922821643247837241299889737540510804994274114082502902173104351195716835991057086616052033503685822769191971744903370185926609670836042733747330957162689176867798781479784719733872177740702022196620213731411442934278616640201648133665222572981471263890423989953210964907985497020262464831345245972009302149836392397819326222737344128296269959558959883400067055090224871901467729900323619051502036425475562148366566074189863197981965961840047054914907167888975718195389933481288233556129486254528762483861422639017202570569999548934410745333600554833319599582712520320114056174342436009059488809346135768612647729782822527487478886663330413821502984562649272476227236091724192467793043148191516886954268469428850540898747481465371398313404640685838377822742326181410775174579148372607719968660531394206138182088903427826611959589397324590015668710053504135174795178478186101452256950981810054748500918425068009631754899410120311526780046585550776580979233289127277521920683846435548585906833180428691621451636618261412657076008295739315937704709310582221220763672578647292180337944587567715206748811499696033165164905519113858300864159625818121228334179236770828187098046532315945165789635710197991328559118616362741755591841919242701173268976431479011319180991053880439585638305352316038913017823005775968539472966874463336203552826818757426896954236429300997510669578006922261882337871717917141039723093970174626435611966978623951208125322500252361634749516691353080881603790371528101797178501948222790812476382987309702789765460580492684933570515253688404728454437343870069229019934926704074596202034430782109878405170760809840892268720429662126105218919972893631509894181777319843182409331784877732358993466818941251089653636746104836721304014522283938510651380063523885305491435742179052834152198536456713817653910326988329649432033207871835563531469035184254858534187299247697915136271574453792452130486262260654919119844738846713372631829088950145803537432647692467084702612478805327310798807956795160895439695388475668999091040212455551366013766066141949495845077075572182841688296557166356845397237919806044835463107122774948549970442556947689712621431278334952081260663087218555973734296752207017764997783650834882412344357191614599535708629808392848860943749512858260987150045730494813269533035359855129388768185591531422338272037050427989685417933253526493399913004403200864658017084838257014624147300660482448588992912310485238362252532755403627138344560202090913081463296159142068919013699057360254048151403008348904082623840451990712700566774991251027394652038568347482623112020036509938946787495943461947728824876652302151433720966392196339401377193018382566244710867921947720390762655498317968577015636686184668261371942308891559830568573910686811463862338442438527137816614580483315982161386135678462524545397515163437975296177424406757262706739719896542198714918674848314868734377391132757019232336245565001089560977477092444511331190953286249929300798862673035705089245019805919732482248404637407308192400471086734732010166577070248813723196454536964572907236254481634173510795653237422098732348143891024982198885463660504812603810326799262550598462313153583195125495363211098734872126713819258787677067108663116357610979617341096576990605650964314825527055060495184256685411039699638268655923104180131298813718497220734506791516366886450434525095007946898484217013762458100760539061793431264791434694041912287111283853560455703590234845698199778504611547168143301497042248368721376437250015941817357649273008850990037858127925523499285588589633640862149324793921946279953173324643229886879081262190222465836205604725451166720548124077481875871321542819384288213422090661644294340838447841289358542124050153584157603660570680710105799092207352013394699832403168959639200568397663213238473594840628651743334076829979184737728894751605766325149599155477620328345478529178934987572283258481282667649318622656924851874672256270362271434374279447778506754008886118028669212535268493782238010854033587212051320203760396164930351708804972285190669215417307853577325778628332195882147374308099434503876285785611657874346387051608601108173042596855978947517422909030468995037520603529256146333694425413009297784227111725875523299791098489035354955900085201506144108055218695289707796467390643555167567064059823427728656061487386590894979096413448425391563007466627644071990109941935050760038025899881974759900649799515078857438299431649948760894145573314072963764206863768845722933090007596688253684055322914660341795229104152798914827494547956967228433723960845298455858333656347894088549234363274996191699464491936625823080793761645850552985050976422085407087438781556530896364100751216846967671732098492088593075458677438986733328304329769644950168298396836986741949791558452870693459587418765653094888652604065304108951775360681275578756638751395220025263473304043011930587058547709660668195549002356069424210471670622022930356290468447003714454616873135399402287389224443149674557783125864666082839112567893538869273627020809193543064257927635907279734742391613103556584050831295882191470477966868949118427821027094206767466816145529758159332474768200184083070288198156605830095349904091771237989491173747107642540077628284147457446583828416667358607842181906122264477147454598684376556128582090197006422755509691923704377646027894079940235778012267124029441356808412772166978097117779212330334129180025458929395872513993908017918471577748272746795709212847461959154620660041827837821824513138248847798309660612257780284905915601130201824976744834733947800564355539348236029221075681806832374872612053535040518881400956457227702794039177302541206422693609466547325258135762967488395064786623815967756550933963779699109531759186593830678961722664925154540421682196650523724365849617103158812434063066856061000255266304829536510582382622109242462452876143883346275643179436066637073260655694093091151682246403063456940589964297991275073315137814910251326787668811379516575664619918796819928857132702172350387008841990318618303040810876316497377646384285947104624660237151163064414438941284519801315405705571185056837123736589311967319633593956379648389721551560407534880909090441968806613302113909386962585289945875144789010627007910484974244627602202618097375266831612684084351164043445750695090276125265511941446007733789097364434924293553563733945100590976096663467252465083542277795805918677191420552209912356065441153097126758281232479398355270522450545700838945072892736702539571398141382577181246697594106160180646943968960204099514170040738105705054006414272455834351378686465695357047503644646171499293067241456162105699622650596526452728308419096788218013330891745502546785104041675797588419419601335286980124370269377752893981316760112746970251918483210643108109464701216969956532241789257986842631408969329223383736370601701325399029187067745086318156387432807016704694301797594119437088844439663126169421248035022533037040981596196916924969740977160517628904159020005314108667129747232483238657631944008543959777413232827348736535242513438063656965156736298088527991778402555331266034224654912703864246283152012670067089586776687849512834306318481341592374839064551345919064251070951349806481108942428608743014780167808998009057235589395795532387413425359492689883597637346347446735133277855002628426064140091539574917370488987423237159632351509877765815112119182688905270656806634708070083481590912689558099568070577529173867774852274805725068405242207642638294050428484346284973998205984989078304462632620632097827751219565736715390671988119284630403745446364320353772075848768569124423993935438808108021840467097754874929203685495603979440479716784008391183906546424135677600924606323146803477541346501396908159580486698269558238094503370537686106876311238846007966159336808089035391667096492165995329172902939363041298687890643156144232358065300541055895087485099957351146457238884096115125996472079673156593908492600180051106538911682140744395412864190355292719554986274766725265414792986560216441579182536526585711720124514066966406273607335394752460908081605195324535188168301296721128578470934719871052949610668161614554682959514206556788018942587531976322755902590806137838038751430907205895093338908783357067373426671195731460484498403050802454258785838803482000954863768179960662565840461636002407795850846719829138906126689697758045936539645867049242967149882305722048920443802900673247686953340860450981299016168061974348495028358425559835446422806943410994858076138869899008506356324835780033044009996268059625541287704173024403822421941815533007665701396941018220406995877001015855237508966566550139365207212384696364976856925560488864270862303074004347268686749975936620210490244208870257320834322848224400394936346179657021474755622102103712895628654417578909629237666607926417661057704209341226419575503604946024812187402551816263590661487710244199730804937657510639647943124486559697355860214793828658390224863221384410918949959762480013895206693902964136122022354174642373432840542938978082087916047268398311199984236304049659354373530401205571499345363620327150021178888417571180023770713969238116771394574373369302163774457043857851089650769971928048270009339644324397826455029474858313626586041025744730545447085859150655737055784796098013641557552501332728531378051527796364958300217394789788031350700494690276059578974426862871845106684009251437069582464251869775793130235360804930464505985513609195757728277109268545239519879679398273556229710236156183752890820134583484840382100839225140819372334177397488125247921101579431009153159333841991905205345333063507478664109753310798248793408760205172963208181388907870298035729613664376608762191496586182910095836758407659127244178280250128435275404822752282786475141933957514466434328396297829973153882428782589647817883423223385407378762645576196221127822049889985328259813045450603299351157112134203695120012696448240386367489435619128937753517076105494240040629880875463287776981175579307302301050285152814910857926448002373853372083436047314661321260784630361412827978454667330009619400781168662474390666011394083430302875516470963407599665152076490756471091902426483098292573253282312420761194698379189186166132657720863775100200621960996623151443029259201336439532776912811453688184458499598341473918659532142989726093596893994076710417842732452436673249070121530197953118281631278363780418528044561323300350369854953118174184572872262576628558270912196891452090884610889132706109796768777605656007304272375114804540435035258705748032385457489311604444218358010046489009382102338109110177505087635825501313203791641887268499253896890239325118054203389052225800454872406558734247427619722603844647553656010406203815714659291426547840622791843750317921827514525327052523185817668902379311052058864374288816223281034142354028907587109568584875379094619096354874472140251152566213016080725349753965173761808535276196452138576655153938111189881201359103554406491768107416384014673044004026977974642627256026071154315444318614995620608454267614139656013260024290352504132818419406429032067610258190508247101276161162951613723595124803809366939684695402953766387038983038261590488455122769305176853920467695140587703864548810139427689230394029853333593686046103749478999847130026700677725493426617846400623841867049812760066361170476697162116119255107935977522984272443912603156934308504879247390047083703010528410899945178224806562729706253548611650443915711497236754140862052892673201181489534374517474204655430505402908422883477780383093089834711030065566865865912981180208128804525067162655164450249971034389298171848406038083191746505855291770588079469378562769128326882356498230012430991021619415025991901635929839887763959201329170014507407205133239089183119039363358865110571048366732136238170562205543968039869844707458205399330772411791448672143742526872492330504210078526709494343216485221514841956220176965115072627061612055482006258684488843784750341437622927416577332596419764888556376037811346308154856930371219741567428922962459458984956145839060213321406169541376509932574233385124315548714148408183011685356375650255030328852915926206784287649146486167404545317340034931194173854535106376742395022593252141704846276449282616244393749144471675365204862628164277913034162756378622469954294394972910146895190386291334509559284218351640096972745980600528840293092883450140728372564923145464406761702766636484352112286663324019232808061353599927362223231287225367375929935649394918756739257813178120553952166142079175624904514857550989533484629201986959055851922000622872365931217234991723882242975278450758657564115659904983305030461005429447363154106929915608546440374109012709140267164039645567723894671694864014580433056809938349491255012072925242735017803043012258727640734702519809724094906357823802652631000264421752754102428643359800460775676187921333606883646354768790967830328482767272984389856150743826402996644771493520361392604586349552352648851546371644537570450577159506101332121907361971474985448230604466365192195096664936608814063855576730959251124738415386635480486473198777059927243978003342843380312268534751425234784135718847531635436146730620608515832759936605626630300452102962875292420956721855778077199349151474555742191590274368552099650750671066355412541141896429613341977842541606455999172772368060862804150020631447944003238794829040763738603120698090169817779439911282104624032157934896200614657774324176381251679004347124965267572405582567908108967885600833089745632615790507087545976280785580397474312103998500804911972960309362687843631078520287409288020473531395727796813475705176572922734210197478129625666243935769918440675302554501168045826352123385139104799454906429804102076795654938550481861996249257931083551396191870071058624473277541920684981820094071840592198587507312232202592025298934127101275280600291301876242665003840093908471430896736842926074550335114197918492002633203818905966547221626241764057973240167265550913072271856397405781112165334282461076139678996196731423096461363708967356356570689198031617353786334853092200587232895289263559040860975095235297154004532345641665733558827716186849021031720462386128871920739190655339210524778115122897848395323580239621270647914850153101522600607875159446082559431170496020468006950554425485081275502680676043920623168235024474386859957403386338580781176283851798079824329472414578963780064538083319036212791471281085816467617991580349950720702581924253757873693894831002594926481771914964936008516971418682345489591255757484435714238853249334181158388499385541586453455926521236860083759746401269007273486343481368673103406574509103439058460696061858602294997930809900047919366870860301287362179775440583877499576462764888329120060618677700708459214684080183211164429888129868172499306478000700240355201968422327677816655857763574699987907351870449535410460819730643932001473650954494774129775030371594430676544937602402800038422185811183325909066921731177505418659901726811256108314813702047828791948271616460944284750497042443276315590739496468188099291008754175468722346765083293551796935079726800345442723686926207805322308505748795897135825603040688609128861516617854727184475451791170289223222525420958194989499560296335881211350921531275093510196161923522029197213310909098823237957568223291217745595368304028641977635256324866931717248338731788761908561429972151086856442431738075641331123546089786978515667276815752861310818851507937976319177164678966639593889758817441660247525678045956594602571587473210289569345266139539788238375880538646229168226122426257523172084633917088516714197058381052189420416050651850625909023672367801152605307572604445914087708212121675820924214224551712912895541769144143060056778750563820608739844069526846123359272800202232444707883376079403693567251763654496855416092079725119658562790223393545162231011800599625555272882705519422325644516242964904047308506036707772616505048701649093964659110674504919398910143313343076604657504873088120805658863197146862783086499748068675157572952611380624672683310249411883537562868282007897642189953348863888475019749685562647415672897539102782776391658064574449657520138303798965158935139822105944487195860229120332182839623945991388091863868280806959613525439008504964126460113338466892420760718924135560815021049410289865189400446951275028077609654577771994178134395681587257835760879006553278660373247206762416907838463209346568670096620564226817994614554395894026735027937443473084754820251002388529844646687985802168319040758325815295520543150362134361446845877981449533801717460066377443224413906680082705904115604184924451623518839132490873054213542981776649821965608933226444711620754076743343386804073356322626211264968539350417216673962105843661702941332098266062726307533800878601973387802298742705602011069308670918549140494143604981190164771465238582657961380169952783485794359513309833017800758989822089416829802538849499143433692786439045854272114927852620870629996646514496866150482699705412734878088427978062628942092515709612111173121600704917628366944636603806733295633566614814003506168524736428618691378379974188393181561976293329532075347723592274187848840779324766962623922719891267535982250563167767685757856692228195190108294596407231842708190016338115976206613977976785491084840354071122707660305718130607822513905838046669090429052598162024973251371545372737370904491582021605565662834103684531906620021920639218753351043364831861267639915296695120239821300664698299507897566916940381173388695558341421370650685417430421471546666082468611056734179060814551235700737677607594233870823368394100054998513866466569321813450453442621385219078525064862173279500699611462175178171685222717414742074100435364345783450644883024992215150024768671299712286476800970685113823254605018627848519593731615161236726026496076068160123068859500478881342109310750731406020470567838710393573599362888330407256709488078941468789411183457306565293465085232500398358499487665891397083814903160028226562648959690836735015006848637037343020333812301923120211138717838201139823492236624543495795708487040587586523488099978513471134453507487778694271088935276187240797177121920564734368059900912328481813662378918563233068065222460423438177260799720556117366145041409454469317181611735947068110125203274735678001889300758687781909567393824208006083723227231422540120098235301879183710890002479092000211133299548907482165983661001882704483847019924586942035380195225912502582234601640775585128277986492857511995406021580585881891025964737818679115003439889814208602490321449115196925155421098590134492850021029186082274030197528604446247117522877788253633155156579900204913878151068989199608698398821295741762681056229347921277261901049882252751432307224370900055080819388618897413492145063010171567036930476140517597623335801013953289558986612405040707973261008154846423360211134691652136012208664878008061694895843146126018879329165899234867216367806396848774155322178212841131321588377658860250295608178813651150458975862608276645927805250434908554504756618681106610443613387386219046585489369506109902146144780032424876779765042786669749806277513528388099958463710427141296630231550117507587209544150614418999518346254412208293464864191145151410344709814480873382526157306440269346162822155286737276456984631812764643805402866874260061124744870134270645147095523167223227335383352638793623140362511832481442632507744801513596660013042511400739693991987976162766667856125823812190689953303629123076883665625916843686883716989925458939998542818535352246709152515772991615907856103147964737246642574833081245370582546623379985256800222306741114190760640640357549111723096293205783234833044171420244829737834968001661493574308117250524968854857485831392905174195614767175971085835425319955807346268064536267754981606215858844910905880515406907090520023248908995480577430609813075489832345182733072991847699675505606613415600692370140647041764759784362726041133216747093177818010403449357170181402700438750958875640394015196505189582665237396315669574089720557772051116283915401019342480139182618563473020797234358778682451344022705270412074376281483534900417422197437420885434976848233151273814892926718390865688351938858730555101562189899600162071062992052818952521172928280572037484210582145230221373500936331426803506786725264618974402359367185147499869682399402508614447476542532486637925579812931383529273691842486498467009909397497756221064828621199921711535641232826710797083985236665547870285152987895890170620354237306951603392697061148445444841367158694220251102009229942456639232894551355199356175566218053693249258315206384017461919911021822503575821194860913563243116201428608638038482151191492460914594489148364225468194111312771747068411044801123580716076426741309762266286678383305773345389295778761223369411208018282506947441706823325758037120191786216854365187530184508875377715705157662620651995844985207654068281844771447574338984758032723574948709917174920342512702721227068688814991050895044913153725001671356373375008458971327538678777816083849350434945739192338238909324254261478939840894391365780411467803255828022829103451188396565506712525534164469292869169750563684404588532162826915449274512090026546103672181643677862628596744794147713620006661966166106227868862687089491104124264632961926502490613824510424997128918702727226166000760477350642731043194303347708555564992778535550911310532579277492818732242925056780522132862153766981342029155369520682927437931803620713911192259408418566615376232249948810978956690409992638317633557682087332222587548639989586948322643451140052565254811436571524556211409148794979658968075153494573492730045483858470944652810664278570884809833017511096929938840693160186308699643962971332827093916060275227171310863937495955600622241194134145658959924428203950778481588079965253572630052169591880779479186793254746603549111066918540306971247828578685013591909484958943945478397123879182625204172205194800673346607198359065476508784716212013605936868211742383072172022756031824785707864367663534985037524907856221423026080549856199627930223366306462255076115618295428632611452035532539702776222476279372757556951267396720370456546939085307008099685720681147366007475395695331877161319012742127777925412908752469824169428208811795599667738907141084290919417035956689582425021167449346708775580678653738451570405774282179786238461627966241973518590124571179498170052005055581079838503437725352210770948693971985095899627804830304861809014633677436995053847010191282259579408252142425680483814412863285933894660269234800858304878893994582740323112864377688611893905638482940053264195271155141834154630506117440801456916470479232288451898489060520739918223301218080299357561662822527148850813587238086575331564538857209245622385881434920894805065654352408035543910348032402153958280602953613756865577583836798869239874073124969237270211644262328863321351691130069632522198340088960965195678756857222464761278478332036633757609083802065988325761837796707136826485172571004360754743976579903504316906604865674833308409178591109650922769365604614047563793354366625479515988529766782372385268478156726991565985407499747545313300416729075494010767656467815993269410129927644729972044899468552632454781687454412407983046278772909364070470270518118900258273484273381320387261880331900216392175097351669341260675478782804867307595449900818838452235536328196834981131239432124681689740167424229328418678441568853768660471443160161912636798419555610575834557848143578918460530797099627773407586663008730584044082127669115419715819650995929120326161590129620913378299562776210305232623528276866694940676099751288553886244895205215151213023349343965949495937165389963079884341726744469277657109944072897652085390537293702287010494661033820412605906760398936118980930886446294671253442566692543305474988447208887706462449055297359483523496377828807526160490241605732408318578842825294416527433478851781661496390702482757222745143319228383224841997406915075111403104786852823713546139243468472671248923972247883687898890171612518348432768634393281558837484945869306567579753582046510064888664707644832770209669109880534744383097516862227552379612162793803835741854349253193609297120585258116784021883077978952323039089361673110797637695123755744581857544922419755212493421243711850151145528880871262049935155178395968035338822590338432198503637261084023213544178105457002210710256427902924355807268079779941365693530711010308655330057302628365496283970557110514921061678464358947559072291383825041254431933075744472427215229031968022072468327668120601298453078889396297767701805274840647048499839434183221325018361799265416162339284385239579383012647716157767326093658892371559698217954086640107221342690731123625056601811509589025222917966581262617870510530010558565254958037705221489268167430245848616420989810653607829985751052345493615379976260367105832864722844802706433819958031964501048480186123380558207933245937091912975528882158146784482953106930414719252436034696593387177267321803967010720752535048374591914951292339949242007742356613926556105295785881014808515022188647308637959249593248718720138694677362944305361371206902522677804418916478594622643940836578775302149282565701028107099401207699887638892094052533955552391278496679664854642018590692206611464457189411383061385774440417008324602294423387290393810624235395794329469362667246323694495155493309719555962191275678803207471145539323624409540771755788735302432997465814314896540603078723871190670986675134099717605441543751659489684872580507441367602678441360173451762795986394003173947594077486618226976552833870096282719770775839662764534862561513032366447058535965581659720489804506175742005882224545212335856615168241602126517569722642025980647616608962767438167050964511426551062274417238469356242170555558637202843073394402330715485621774023507152535634238436847865434710981588226182340046267067071060074074894936391572612007917433158055210482723990289454256141011917326771413469412073359047671341298976626001252875144381535691142001725418220545313504457056638547143718944677415630786965438558018812860256473615227602339763161301372008986389084249213242500257160941232407741038425310595030014314410423958972552416297916213088041649797140647601231031117933402965877920692539889458729096355723402005823784394060102474730466524741077636306558631761653401322457873983925525066537724872115262309546644207348520650332485707034510456099459800650920658587781936144828886647368180964329473790260204023113290965391296598044042863105411959107050692794090589955590950375930680033977166921554132625886167165892338115609209946938680064760133320642517454286987813393219532765854905802831550731917139486381123971213065054064166010955409722401196000837567475876226359537771600573161407000857884882678125451038618536982463461851421642686353910368828503598507029673231814582120411236778690232008944219618790690504428244733181429159654503545871072155433037100505643326593451431935331114880957196042752762580016570487064471488794128510803707491336066344202349170343419133296571299163295937314513652589717385417064916438539746032975816399129734964517453168416821256766856092294930097662437362110313564640804436799728173293420310283373254998729559778862056231308112509222461545828450910111313003909024280016224265551778417402504705061306883487774252709313029113457175216699947009726205769799934033422909428307876804585452050296588120787436351731210503034005750140201017844521994131650250307775812240761912549384490386218043651082521456827809649810010770650083438608103515516244148050364030597535500364636804271487652030835441613563514513740224470944717148371651366927489214471189821347885886686925906613952661795992394487210955818833316421888903034895697672091412839839070683867767889649595188602974835245791927191674554252879258558578601704342709559098308957786087032075672587804433746597002368308799621472827842950344238450593071312519281991452221425419562084033116330606122350094614010030964054352877298886006187446779461167680302684988210299749531112580340319980442266944601267055951684692777678837707618049292005660153881911966614998777740048453081900727028424236283729627088874302415773865245676165829525348413796266555926308607727040887062920717651236816196037210193811397867696935027316205324465227273695810385288579072484916821439012278811332845025494633888768850079948155578970234084968260637149200196630160675713735704449603122345535012959309468583210851730006741392068364076675398750046321749824595625644343448691918419728395745584044010643373709561160565538299735514597653975014491418230469416120758711042284968030072203807816108193174944338034300223769722036733248715355128643511623159535827327137132058346299582345814535558919432618496117233528631059114083552702937463114398842352817838366444879972025111838890708861638832848540213283013237521041368177849199563586302487868257114036650516339112200796020963701877078761034918787767066253979293097775169730971674959585348306611374375838233299403476782406151510474244110100958673120445891592696661656990111441509519453679078130715050776589207741829186702301863667192404039365376491264401405833850294009854890016600915452022428163390886836500657307819950519917680018699899119593656232570877498237229388678838324613224550724765686082007218999463199905971872584670359433734999743104733616912413483405797707167605493120024224921126133513542388471297578220538189137884034709411480963582959938879969280984764943765890420875862961614239862780163448324316710431953483945649772006798483159068958222701952175212270162067522257895412861156826713121274263504526911535235779937331569620869641793076413374434516595628752716080417200974666700706119615936943832472772978784714028764288834455098151277187262975146295516456904584623272883296276769148187442739511348650456244146799579451279811321494257152144373171349146746242443003761728776318672567101096358447690200105775903390176155510291925347550657262392214654262495303280591882708727946376792353471828265586540869266056831367942862820208549333144878570938340811370564220266767450568275743347525262855180261003414541518248611902973181177077335879202696708915565982262832576965497508266391426046704209178205017849394957706411034312636680809536408919239175258544172570890426358246192148814828667026659333562445849836421698498911586957085084050254716429700863354420655030705786822243716569266409120277335647749741537337828761238002924244291855547768243706291510375293228491248078625600497230058559706743414545423948735239841994211997538889736853043974189832353086542108847848150829239423803175527428302455640765778195105236453392915449885684921456249767320129318392044969290805397580768931359966206938592042365297880129132262950229224373529343213892613579568131789078323463154644324800308521349437931912178874123776102627345598392673751141248786434492864847819402403263371075338949742744101455907497392543674609299597767378449009303503336052908218219817092382247095592220762062413876303657379658109321146405264758488626095100216234231994409453949587230490855486686303092590122543105561620735742040086248940031179998536883017843305255335958942169385850288932797096825593153293456249592853647754069815950802253444828577492827654536325475344507436508984643101931479947204508603966353587610369143854290871837586471655164037804822764251554974274968106923004186909786662878123969644111496667259615556679992207602215150049906066289778786388763884895711174652886249074240769932878208195243981816081387730364631723841572283486098021524297848786974955843914538995233113307726075348055627245191930640749909560580785433802078570880057824100257055714088254066031018505541928580564971044881967851717648183883191831456497642851456943346691292243687793681798328920069273039246220686031438644076914606503214634037177200319605167462982076834803298652223921249060772823432094626433617009847740678601240032297358105504814825739736165467229517819781321329908240598230245195948421443981557870284277857994423107695972975884677414780596735234908680759311750019023773871048732359088835044418839468731233973837326934204544027681536153240385492014632499858645940840572708645411109696362023703702103322483711762190340940077230547227315408291996544946847837086101647156519625367643608015109583313947190392229619550014438292975558121127835951377063610571165582414523099590940457617844533974323193889065405403686883508877174997517851397050633166759549654129853892229001119374561963521404627909730815501408756430013752425778145298655191105587142372415634682399450280749872946193955362994866572481939980562105462146031284640317525954990188858217483744670797817051386518252485275824511397123396720618789607696748541577633023604658542994337542000606050757001027634127078845406975837877674780969255910424580480167364031752426574647100906593777130201993348241237942853507103110939335345763018833347325982235305626337977550812628625998701474664437292263568605510884368415801375203839537033505375787926036690633873458722709971926170478930832846748971025152818977943379659691791946606138842446363454072346940309268279390499094746025031544033133564204245900480337278237634038324111861379296207207679715701367872275081489760593372070002235140876243786669239632256273199490107548294395125378613934277352383429918861181153683303204872233521258052747831706358400190565672267725392725825088866420200676089088055450130087137845064456022954737278736721792454739832121127126425703932887805914001292797167182099526352093191481743438909516251484158262799335490593908044571204015465011452623472556949538767653572453667578196038321955594668349117895050763019900659816019215549541628220109160397420181812295300184085726910100417571299483891951162912859709141391602656695039290706438167126910833943451670787949159694797707679682867248592926789871564412106835378735953214769607284923815839454007771962557732949440570226496903119561199393767307291377505531375578929725174195156278567397044989226208168942250081872601738173639033568294586028118094119847611346536759853726443074893480468470558621110616447684012656171822775066264947344261196352206503569342297154744220791236888397316400632617573177004301054356932520143808835714336749801483979428634604245861580188349203587333115624492133894901671553287008277680597139419726816499934790383019003734878673031808985843193944389985923047968687480874090514811712513460895490200253145422322870256817029162098703876327801193278865275854751115128010717636563252507043100845095670763137229890458504778838617258201720495625352952829484078132359815602906091655041728154380290860096040812650864771583708832078078682926606875269861419910801609043092424512662942748762753720830145859279175236577939770920294280448714499682885103262674304244984268920660440432445198523919567808447959879916274823611508233821262402256769289630743405546373882511313535194642059406395796458776970296806811981160616127777750474994969958209234246118130125156629973971817206352083448029142189961698461957903525709126487563851984885904253681682669491874090567099182366422504818222435400936708051301290555887543778503299185203171468136467278289622560551578357654318194237196664293689722934286656738377013392551284304417661058635599102886189177301356353248758244891920639520986533200838838128149806615082243295368583950110861749998877716884400957226037188274580242420754786937493322465381153505682356715072499654765289393966996095672173549850171864016019254747761902741517045051003182871043277629528677059920975927920375937531377932237029030218186106111955955629174897004453345411731592445395903639974230441846916209333189086298859112039462654086090979490208228142003522094066486463568973473303165375745904897446703901633800817872603069178451210339840012572578989257923794343900471069175099260539538565268285527200300786751620701506696997330257130055624335712385736583790149625528022885354147759411208511763732528696835673245245937097769465866638876394524443110461152789879127222012960392623158421903396504538205977274819514749410282052538685075104226692366661027530738884393949771147669852660843443187829456610672383369297553180738199962772489591877558515499764055883038277836075656166745315382891080609638836535615633099030602758764395445609569502772062556940799329378639564126371272612296451308338452610995520080373352610824300600601936494549051296133271234867849574449387366659697281063690339925540583140577192920463886359676845022502719240078294553376234847327282455024432598098364044916462198866903318219072405567369024843690848099533683604511454452190989916788066697725035161869096419716909127273504006069709020600113161913631502505365130280641638219559959457673610653008761715742120322551991132824078617497039567381632195722774848232002245653142891121613624409065864184781490019137209287149706683760797698718796332782151071001610608705082974619333859496851924860939299320904380181730115478379496572242253858942355317460392472061191502318614563573799312604535342642401148392589956212243295996617909109450714541194558050912207209189106648908084409261348116812619629382492181806976841802233077154410426529635185086706402356070526418200305735433737901059326272907745344865904222040268908476480741392939109981262304919674987736491433609887209943115389833979962059247185233989922789038388819232835277946823364223357556433039909024833150532216916210196735072342908987720621724566731859645037636821041587420069436796946794463571785794282722345606218280497575499506519742170785815395037299081830204094421879027549333696625388695500651129234622229365899314615421135460686107689221962690770559198842131418398810603728824847575252347136293183375558862640131621924089781034731418460588956360013353777415525598863579861569946950493530999734810398675550420627709341162759739380155060605286897788542402388050718363731289572001378257034302517965716091328763392035230915454662786028864871969239027971994507343994248592898905853832439359180481741048498985244028388673990565006405055323504989521359184903066364593331270543485861934585083671330888880736339588748835599573326998310180118098545573007727430491334926205902833481546665164970367617797024739943098384751863912580226101162546914345708141131369448134627633585177587961578654836289066109298536429987987257982355284486849819154167195459999353438983296853769992928072055833636940903036671785956138599147644976064259614038033017325291873653854646128912979897870411151271060065698132836667846261013100616714128251030180449044634903503412730534432168644480197439837418707161223608390866854173487482000988073426983120102142562026189164244453372588450408982198460603672423514081158716929784878002272895344140572379793827878945528043491112274258030557408278833091748885882929182833373772180141601310566547347466232076596635598095187778380702173504807819487985294792077749178357462848755959526430166741369408784715775139220871128552724758376261063448207079126324152317883036965532399562330059015776023969369939374262222277898774789574300407800246740267862747791590922127771555844625727421551943328032496194720381255120761327050014223435999372292374666528696597048093196923675255883135429431571570995169848479361725029928225479633990850062859778542969650145647747678925478679470847023510089902406210407094833610962514989032702936578472081732755629499299360708648104696093812029706386279553328285861024776015962487703068671498060772957437604652450034316808138375792150634820129052868563162996707395280367912159960837795359110064699208328673423854776613571724720211328190497576786412632686371439014999181111564973213328654503922301874770825051384573237016777138263437069622542787171438889787525098149223437784517863087647059067494489773221827239730147656043827158027149267081757092483943500451820862077871406572607407869238145790708820924845139609245833357157769207341574653630174426349807133886843801322789600959827235761475815402328384321927196142816032735464760223726698157740194011089222897239209102507098818733153604738919606564339731148167680221840431489844621578552998327224066331880388904194793395362535374569812940000404409634659885718388867108805293755007341892928914527810825872912301455464065155186290721701758522806273796684858357614522760615577044872644527095037977791540856202042023911185209242593965955107085745944824516031213576548060320945242156332141827712858251181909150487795301252119556058232635028260084884631172178017082188212074588708525871614743901921767798290576322775101199638526146728388601069414057314135529835502543054178465518862797992048713507914911194625049171710184395887622053933687270474178597801727429023763947211052720888897884529326748421622499502047413059973118328021852232203626752468016717735139764692038631619393612318403266112625215753817793638205023117096353998356828494917816187950015399293527872414982343947955660370292600425188803847116574949019145809360906538566176786177516185884716860606420189226244929645300317395228360351792030065778200092075199760184964329812505631563820558286257620450307443903150862091343129731750277128888922828383463610524747965297186430194217577702088748903812701009065922931033678650091611368619483782787655888061650486683004110654431232297934579316214199057983492568071557700963540170659962722663281968731319318916804107403304465871457564720724788843091089942547795657448265944301576972804100240579730321841216473600426616365680944357003288324551452081822501159232118248485254208995603212321598223340927753300398400753953182079266268219399600869057633540853537142876689100252342964180678306486675320968944770370321870441097043843964133968909688930399022656834727096739808337621866336744057508177823225376141120620267421700632996815095553641651431134919607710363872473544396901426557142603004217790845613493446059047532493480281025565174054762387296270251147169274817579685688024263753753173802843568029940813783408565619259140591176858141023625993888536351390677305826465381300198319665885907301241430986100075780022071639647392619658286158467856350962774015324852143667933273061581136955015803572106369467907336106484577908258495505761148393816858220232273713408387185488023378315399068646607196132672503687295336181494389148417763106259674935100237624163539212595205023618421876693304945641144722152143832493815294646461278695574616848352986690839140438342119662321354740065819293646771608376006475612026818656638286423988089026967645218291554086156470181374838417290791137374706889817513567125532263552132552478674503158035053163690006214569844722991421977515413340629705636800826868723387534587884001398323052693277994940059688584739163326370705929224487315372313853672918616108818865215747574791204314391420319283759172122244189541222679898463465901864941357099018640532159635402315312125604607645464142390182424732692343969834437336228979819964845152099105745052900246734764889501827372341282350225339531541352579841645591135866521054898528347135148259153669826706915211313884121871359519420348188832705942677531257630862456875331102585272310175511212875501014893148899070457271848872023192931669788808715710835260338917495930626538685140229901168061426397447953754987755932743995434620806433161963160590638133792134457760902062347897306924082735835819329500776330139635384536950260452590414746639861969308408511450515122582857272945370016658111563989493811718277087728281876399838525388648595506744706827185788772162331616104009412770296269232864932486184633444443390521789555681515740640169293217668319047349436462747317042470001963270272062269389939456753185528594266938348401789964838529633983999793450965685687643829960338956296327243002725587325440129385211175296310680416615370427960342619474758112591113410857188745077286062517288771405851136020565806584935701305996041862990494881983355715149871011658643014365807295724039479414724511674860764723134308020708821185084891375051041976418368671322383073167922758810973472635072878896314540137603056564407633644899016618483771190896624539039577429810063001895935699469438679573399727343143663660630653183211910803004920227831604253322088918886853783764505638955725681324322155512531626776218543220659060575979233635217740158971283650030413653802178571103649155976954074212111647838423592685295296293206242608053396986803423232817890017242413964068479872794278699370607216842371302418849564965445439994506529305877112605816706777863135907463639280127815490887059697234957645521658041318385633177254161841705132180982605929843500031784870219067113035524141340838543967611609304634840921263264357913375799746007630333001521885976049377253367316945325397884552651205175256962709377931579953984656770805443397348802630845725514474756187392433407723526152287328392452177684410772347321257715273535922980391254222345481752412809918740213556273515597299411370717520317982520327603058795277699069588981805508800824563011150150862598803308230561740043670640885749058828303475876175595797184099050559188220985648218924824580808515518305152622919983480262851537306489730704800898137148481783613218586927688478754063469244964736821600162767913206160656998785496840247057833047107789908778389675411033669177446650791700958639910742261326740474724134931632992944011139009072524988781805713636656597045180918416426747263561533068827462636785456161442664868071758348203013460263704229825641295844886229271647908947508705546966696219135309402987631209743099865175083694432231953732850138879945007609146568220957607883460866439027363275772572735942797366312913975089803318582220559019833156485424501426485849088798095225084549213069608600012970091505446047893198016407630289086991217614952868766913805791399543170601936587629507941703941544541117001872880961594550536112509537243100607582533133627854216681499215079464699202962891197412914487701173815621682982169552002879138079435519107784183899703749460943084177904622635137970989618781469244764875487759369729975913430960675519858202672530844909737637614001196704836679431261810017546354149062839301497443088450991474980345284099285925714612461284122435854118740838430220519104962862521962159862047898539442157089688814362703987493299136824893085469886438641074575706981862218636472258177149954118789947506736451630808787572725731028570956060599245400876965683003400021876193918792992277328780859758914084474430857399771058433073216252019365478916434229294582025820769644022977842260159713074613438139359329009116125562727683457603103616208527306130493557848059834574379224749650592232014478478871575393143585707098921653518059974422044221796465314772177563022642099972059635341410419524341711145425728353802407579567899654008447438581972636696300972135663927196622565431654909267810598902250878725469915105001389123580757208742529199666897488414106781509976274987490428498832353658544637023389871023668869248291914501432903967127120198693297633979811302690947610684989763233653662301111493127346272634967839691146501207648830566678355630601582135084128963885773352466879390177970214887937266357351853370227610047497788290886719262487241430251950988355607788645503846979505164639700253336611221072709205481094783895435921640554799933707250911325823804406373004070393651387220715769121737440382626000156315094729205728527309059660350781169442367382667272147866916563210688318889301983442984550074469526433216018557014193645713188360399650278316065782550651512575937721437328595990159904731853159650162955720780082630222052465238387848079307632670352711029911763853899992075291854125683493823562075388663386980468314048278368327603764363159998282637465504823624583239173200561228817831037820439611681204570264776864983669781826745759931264311035129268427089605946889945171661325680276926494035541968612755172693334840045052675162943590664572287867906578851012697335839628512191700346420226675495749990603600438476845287223644964397866919447647144698182433728055932977672929767002762443517012190746535269161483371449370647283133500818387426345682050561820756270031414077470304110639183970796414046500575626938017419652963335188517282665869319506651759682862215761285683639318849924473846937630450183922754951252856129358446184475510891710925668844820245258603077880317686035699018072869054702291484637520096153694338696568276913239308661864312444711954563568631970098227485333055511214550227994385830423546545813764178488158847482355839664731520651082691570525934385832199782226435076426403586805807858999278887389816375909548180495101668317537385070520322899614894922335740419324936433676372716204269062806866716790552507581815048958755371273369376937162155547492521978040934094132333304518136730291141191419258346224995804222410202345380613994421020818463035945538999094135620996690551899612284600120422805901366155990684898328337448168929637542440623823294310114343110028096965136951238910554371775088732709529265113827407100253592654269290147248181754379595141626000994680404870555965113974831364768515585102553734803169518228148199442922530918527762629990545575470593111522917828624220848105848348867718919552727901684390053493256121361291347082664349159389358180263881290132170212754587415966284253942329987275860259354711322128141111403250722925533239603634868917526412020570868000144069773162028263328655365145517644545357230448723047844922768567016742343095826401471486153492319506550317688147698795750888828785344629572249991533957841516493124557800759598122711862746547209452170523598632386223282033616810520017396264979266083093863727820149536301059679082647941261980592222523253140063231078195223597884937329773872257276910406796786705374509290019591385529359946373855458666986997925561162033423639739431684921510719836227873020966873522053595816951345983487881052497770831738536519368787844879816706740625630293427738163474414137133803338164061456051430999372146171062404908681180251443077441382551495098885230933604282676339370617528853016387193233591367771513720693847462347875146586680398253614357205455478709348251890820758539800119445747250412988342606684709294059224176042233509995523736846284524599140754614987335276827124383386644381508846346816540723190924507387611608252894239063508714722050166065138086684192977453468913955059837906759566885571435092237500703223553872455247228062810393829608904387806557584164822963289556724752856258129239045043613491532657511075376922646930926789060213470027812835465318804319484553686658619130398221859431910583496254345823190290672770473701629663161877105479639289141697886876083082384208278601828158404120482286914629053070497527569882299136245103133527109263165283175574863077528264778444255800398177244764811320798121902134720324583374871495868516337982284569056119699754682450804076825366927446961025483617792496953749044653368661302161027191949230589308046376760393497344115875786732980959441962895834749981049714811068580651017954229973331944031380849000409541050941652622901305471688981918407067567510899701659623141318227330625236301139342432786919498458822044563414082477931056815168039690014257050221965191122097997363510058749370394617744179862968836867780313453139509197932871741113341417075441291284401113018724265280780662407857202689215897077922914841111979576544640129122909710263226886136903059300620848600149028067103268813219753259099581095562507109239685886446698834952809221301929056548451149159866755487670620738481038884227329231067210463672352392418860298973397195116880317420129611447089553740530162498643079857588213165022771331286652653662710035127976881756509855796981389054909981895722938540496953357789992705878859946054910797592190783839866343400936500598688628868024184596549495586145336413045925685756415064904469698831897955822415806646631583915508432389568193760626478507839895771155982744480508021018725352800349050088438284407560152916262460209651953150763576997329239106361424089195305901235274276346967003787170909493177334152881189497603202108883752557164179855320536952504213434430246866652253592989830364143878425519285950433748340190582349889873768516002028750116798168471325547808451432446556780007337492737750433043344160784961037573685935600705696828720499074208625360975223440264060759709865793484519475356359896062089733797894764507778313925693190986750979738711471578060656793706366694803144814033324446557839204822495620093952909225115995610008105678220156690882247600149348619337709797960699334908851034310288994785492495324947973283143286933303944493783330845521292098114397820285451121791102809692527043526635424427594055711669724986318215605684744550070315722255868291879300666556245736086430468561842794349881213268189618529493681902810030768776992881045311071839804496634710731628852140879220196961455420802754268837101058222947988698511455355890129626806166996891221223620194524996204683572762678626268008345043591654630915981656924840796841060128388987258805033435596794658110151512358704889146941410564270922008755452146004957327991344699667915192109790563366525941399672744331797159568307433842372146818394111356775589339238271505804203536361676116075155599998572073498590973468522548621228991392030291772206538939012734666919291791240272672688461120224529251273770135279851312714586181903151133630015827189008719312028961153020233794112324418907562943284475222832132495952094847877493003385726857422901973658387226998362451303654838440223847723590626640573892823453607752588347268089412909058549685811525548900432714647981421748901108328902902965205233958878826591183785119206883139575665318056975132405928715222019515823582882046375542712350286804270462199627579946588446753482026156159645161679170835536296066808253825910255901303096385375703582457085704686630453559125183054915105665312171077760232700994571644356444752521964096909772465379577111484731168868840665047203580856076383431948598237964357956302946935221338010510842274337968644351159199690903016841026409945816239307957973948013254552565250366208172754380273888078802334794744604746621690381143405990714244057876118736657743773189747714991010869718373924416866308466305942470189023163700238157907385221819133092918951375053332634629057381919984800298886283883256036529482511841066726689060620799038988340286546724508595494385335567849049149447690570108746958448535466673551003779276841473260588904817450551783966212811623870252728629337507385598413945860941721720240327428003273493377808858596138568844031208501878349825714271657686203477201910747063608376956884622940739977559475139223908111443040814795017743854979692931515448952320897372447886435755948026924059329270285797891131638694546195889204200033722266965024238749490190858854817218498207365932469985251708908567861748127257398342583506698699157245112092484414637417191453804875161628927451366859808706408988976049060555906468482273303492014895357326299086033017101368996175776689355268936603983148483370824151771587563368661517544014746261336433959986758025696980297456185242400124965487218277247260167971734351453647229030454868493699957065397995252193109642906078759885040793846270059835443011092536521517602603270361912792264075532874337085536498133827344815534631918776997023363748423561571062373180266425355268762514736408337698402062773586071061230363280575079146713303903270039636514889569464159206447774930425628791897857061680740220339394029280551122346360583069046946573342474206189896276425208646129570996825664996023617754605296076965396863936470431731526632981286960489676216175625614600540957023406117304849260988093696604471325065682907039769380217009548593191132483636049175324622778369414065322392358753003788683327603875556882016730010445930551680479649011332438952260667428354004502436610684642555587688776200168277562227307198512617820651418574962971191467271085541167544927461101243979741027255149760104938463089001876551959899942176737469732634642469467769607082716317902630512228207850669573708101457034615413394360507530430789292277649370494820138074819645293340559634831574255065363568259824677434493485725517871364995906146279111703856046522849810880126086881660582009449558863462391699885927691040601847432489915098286702298504809823915149689264126321426945326080677709462060073386694775485745575791830273730766580247346268155680980433259365296453921390003719831056589884745757343955462454589436206807153481344798466665445780047387686898186065779635496509991390342368171486201362859684381935483770992679382483286459862746454013041433887946018539982372550190357224309785883008272376907667788592277241700346315596666427336685064233909373344050297109402834994209745652097099581444341478583584885505218720012655951331776543744978641242125645369291978302089706769276999716560043952514855887867323768360324093415866750132907668701720903723196210103880731071521477191087260987208190975482755428088599800028676297482377667513926347555020257687110229731183329805717803849653294567548499987349409981605267134068912565770876965549064819513579773056588769707218546449757912312585933013540264453025433030961553599100034413499975537357171801354050548716254325103721036540612693860790731457081973899858223476313263404406138642993880334608908460002235139573667369592103109135304673900390967699754542119572459671493807819289169128551710566511853249412375026819238736417903083725807781178283816796448345590117553832813349046026817734985466775886606395767417680521172394428278570721435533239362539178691767667194044978872752758381822029301385408369157385259122373825433974916713669081034672341959235486256245722587813117841861874034144419196610440236640837199294354527506246104415751015137283090434071660136815609067225840162183658103521281228757674633297581737492944232373833356525127706382309322469445764501863195146205143103365981141747694940528152757973780530136885305914583621011486731087853942827450815806740828550499484539088145547305336187802026694617459300397307440361734881816267237160558394776313388916745338838861534505369600355511645039904595105112021963114017310205853734996313287559849538113883257123994130833770165992758673359741911750013321907987666317792101518577938458225503854601057297947326082076604357844144867777865616695376420368260134582716878496454060852868066600485921376622070753765700370223653263424104300024053487546151815273828570238222794244147028769917107004572860508170294140629729839061214022194785518935875362445067962036464165476220888071229269401493077544723603213830570307402254453037204772777475160094918855734238008230158727514504967337878128746094523805028748099630752184639640767437856738370748365718795347542733516753408691127214166637522700820571378645287926032994267389922035961184360739019794795758054053900667456504970377934070470447451228490747191092914086217757188600250169330570449372436129845017079304297437204966160903247561081913135200580039715695871073094466179910171582986822653346177299794887070179908929383699031349444193669851504823416957043648117127026640215731458270005573432246987882673182642170025675822657584919102156683774825335839874265184505671828726039201454976093103617323300558746404736815077488559030781952559357687887165632042043330258414722478077314831521000513585855869611205687750493462002465072564962523446742296369496443859848972229276436952889594154751945801040963575702144440454671090973360913633367477129094757002907185540893215617746120448719809348176545144075121011708124946229637592081047207918325347169284955062070651302685115966058255532043152893486956816063650173965257565664636722296620226125375827810403519577111849957392120621957870610541860456022389330228144862775369095616912709364729800116994260246996439051190032278873431225431175786841407433829678163431136938687137218218587708182328234632805852100763363209132059113350329299588677095329091587643855145501394415616446540329686041078342267053957816987040192929803954681960691521382581055518584044634902578896926915678612965300729509985763540466159775821394350180058374481005325666125750450938562017060949908414594294884909290912290695810479253157615360678642939512801911843983564416025458073239769759413250695804431538308346266687244692920574139085084068896666342285210255355961575654279960513307606857106048803469852456755322983948695914950785550314376611299164402699298108505510989703379143736369628359739464299205230728396289258084004366806909787187872400327474276505766847999194833695483185182791422506396458303346400828358616108797144391146561228947582155601895631790601052159680817421859213090801030686696233707872684309641901653255957614357424862178325694789352665054586818684034773616032902916176847019306168239806193533227170736368410463883829008127536577122700999761520753275909319028694584185192014584201108082102826809263112120438173738977306696096087740669605820881295039172070029810758955791496521237292832233014772763695762321784792948969751225542378134038542274707860419717399612925167354460571739139911873273746436985523215779762956551374651008380529388755114705219474068241454815501584525161805948377623765552387769013309589327998987361064869930058888643537545910464689033654032456094014659086640449270932899734004552278717796410906499662065486346027871882145289580330037030651948303817242459839397960759979792509922001242326420623101054068113575562520407618807343307270651396480363032772648690624791693320938126316534473752676885938380598270249637005625857437927983686260726707034347808429421922866968445267416146410201738502577315314985499288780919461846308577293100014768586849042961818530695679521464008569848244065796377089084552206330098649603459792312784277924203691814503526635711086404374027271539598266744686395496283453295219748609119755527547866537133615111554613455721208586137364574732732578773032340311311515818645677843288549595837548955447243067313617210774517012463888481610700098941482143648093671158445488454217869843914770107006307078266893045023942925318710348191680574330601326128644816879624622343088991812773158400432494038465123079253446319290444799964084763261808478286056522215180950214863316520969430120737656184198466011618105909675197683187636895169411621971928616213625682213129336586350887011607247356054701013409606189625853398178532060623565466615896717276249799019044424453988815922212134362018318077905866079592809632116193180781166527602299278834727709956117920558709747804662986810794950655698400262382688246633826199001658217432021230700851438798942251442139194224963691013051946518858079180048334025684216703059908368065776964730604877879363706359541768814032418449977847031965294917325191987232759102024989526905579530237845270570546587199317546436214817897850580017389640533445243812730572449037743053531507317447766736912832274429229975563728319031300734255135476503483661117539805744081788259619983463748304773540375717566384371675316307335876722721126436341224709341369130764016319364659006844831057345677267338658409705046931723262172941477906390078068477521777528122620937384878775853081160793379643683312360370923119583406792947365883759435590340481735915135579803673444543565637205154466830899477266241098615062870098156295410944687886040874704262524174377888238801550511342262094317938972445441050881643213561152685149199221084157933532557806233830894176477316090850917488221990970451225332886642342326291973739187645622666518398147578974437490326343044269743413226932414319919962540554848037884650823359603197321536990817010085401367060967669548062370043606078657825902304368455841702813319723848742004560121197960215524325978516864526097182659677559709112956810056629120976798721415737878681789416120305273354802305719629367176378918053072757623748781539774214490065578318717602948913990392072002408947846634621973334153037437200962300937780921830230649022123741516580941990258562980543098481486746857514107623118058096932990218130721841747979854911697659868950165268201728280620746210934525572647763509082866030763213247733014541984939507638217030682568676744399919497904416636403671201101843788381100290921075583698147930743135123724042120443356299845979876385068614891229666733543232129057368558045192804663777731535185257768093662544326692746776352946568074635402028394982452249955953621030271579715639678284940087632837695816139456777841820165171639025702658941379291563571954694862293507088396543888717256165748555508191439781234914972093983470649914704245608262755092414218786333988592137022917983090146908553981816711316537640352948051831237957094831964147372437228718707187970422416083213991238326244749248950966622182782673498644096557956174379473787554153340401488136310371334883653442795011533218932693384636128075860038864824518160481116280543634523588352873857242232273183006630370298810906991386294797560595087136270733318471841838940572226890335200546293599844845853385590695636074925561635814021999931384604837897520348171159867120783523440675103269504337063921962747601065796726414146090533855219591044224370155857401583015691449878203277160700134783083017885494955866831605756313046959582340204650384495033077915400547802077086785946721559123705158694554654256476723211131469586359149589928365192770959979453872880319259185589513606569996115444485607144385555588863370439947842867613240254548317887633790060816753641842555622986746330091533847461956905830603536984703564055720876918339383230800882154859693248997863359404856644264172418361118990447723352816310966626997003585112472495819322714114263309136529192702443777730937823004474840748706933558647630345330078228348871161952732036480161677267498228492945966900042107562191498398058393086040056488163224037778190110813360699699743078746044281329063809763653071932700979766117030119815873758478611544464958831058404622763363938261474593467553030333699148127381118279577668447484996731403973503346433576977874003590294548427063780327695610734261979776216717631136986878587380365135893345866547347802333572234711506542323171223509003969501518306430618425897163372667090317237896767189788819708324800967382862482080630082486132507589070009125572220903677038049376227399037857638567195341437453079528497508089407535130214144046023432683034383251740599375910611625403678723309537989191512245482048108248038904719482662742426053644038335020588438052493854163063399649332253368537465346501203541662623337130284722033140054338826758772984011372652051911549912953428979345159868616607504522814503108166357595087433705899436674001319878265641197702124746725188431371152839495454526201102756756113502651547753748759883127502706505482260317813583879355018644195953632639706817885854181808790046867863138528371178889831986580226236340106189556818232970223828188771852848390909043477162489177558889931481649099578817709492539442040620083584726010157330486155453730992752511996566541285428773088447150970323951518129335537787954260442731396849277815189101802081972416791406635423259207157937857446948633148229198315446234592944378488146282982004389809155349011527818857494947504505327122983102260181137646756538645554131198204250454882022726484028568635611378669450469155008917189675058104836104015437569656373328148641356488726968436479252065285816121895977873180437928686613634046690425424842069958016446891628208157243128830694958058209796842717197518421306730243550269274038507843372433371975517381263025775127523413008442509607317805641657307727250997008603677421518994751041038182493538485353962617303435572633311351267092557536345066797641915149903213407008645913613552907429974179224716117218153532299649968630363268583318400611408163536067063781886167204044497190892542972338260467985468365906156111680017919745781698129564818253620289986121215767106610765060565039628752550848685252543093151623508214620783298020839428254020178680605045289465518146652562474866143801647971241371778042639919630753874463841066096654486694888973391633432695395531564646017918948536111177798263282143023909370222146678384754565290986530109580716237864245418152225114590976327320374337814740446684882524668114505470446380520318804757871722248777241827806106301701308482475305781052835905778026249517100536123782556495704560005459921048108100777413196021316558244707748351770887385312740006323875338105627626482620251998902664195455676124779117531653929489977520085592365247612290489141287856486493522011736855931373398061997876692562935232853455459041859054211692390940791475103231299456868013593360707986754265414378814006726545565384912816078165801547298981323016189350988596241890420092554550334626540850113435816533499402365160637975109746362485290171644844734868198750676057082336898720785656810285363795428435920357222642976285211552367242123390607213570087595849233674217365030918926365371859961091420841738142433607083180042671360792683629518233780541455240091692575441946352290089837912731871961302862129903550908637054760791665611509021420674868830740350402104986897912310936153772652347474081069054024276961298929371826794132348774551183043456942275719789853255024958814284110645876255735100645204902625177384711248174121666154643744040351398479046725682396036150708215100710812512220737876739467178004506949569208005245724268771463780086027197847310565617235121891503769229172912138115813300725901539727589951789120437184098553548342690507228556767449980100364352548000371425101594873437809901065376340797297724190162218294766824897370864148174809165783235209199560724314996503169912712921967405420875111469517183768939722381850789107934157259202922613186720859976419420927195551579481712383441462144008093247083538837865636241760276610193253408672987392786356642389588125084397982614081828585660667579459793504397164870809024567299654271277598949769215471505671366966949845463365562813328440174918317434983318657800300478009862054452476257301050303046684762571114693229906466560902240459903451109240108781058540074561434624594939156076919989801603371373065898953954270095596418535724442121047903928007084085871014023473788969681522389257106836209459997330805736672374704175482332607045109010305012840260017853454534250252579060014648400362756827249137643030032238593192688878738183400843897175724754878210842217646623405659526971008337563745632546929904757347852708017585557626653778373663398568521525630427452416879758551479956284771203035705746165979589025658323009512827296033903946831700915950923553872766592361638382628939233824257898986089853936552568521226700614341477417859173129988140220620162639439921087677068325581354441811974155192037157034808343305033316873899587690253775302589096750035699558826365987716434106542104856287338496201700555667794914346660299363607071567394836737281505657624261318234397057409300461283414142953365269613737687208597836692408132632423837348171252257686657479337506689579599340022918450421680252062742907946610763111716048598503536120400637370737824730580378526371345622309417440529884348677306896931206462560398591670941533160855200981584485961613737646686659188798653999376681995081959172899423094738242767983920411612180153972344883838113115354449850876883610378790921415544357187287104064297278980189470539142514228896935791421546709763450393488676543524281991364261270890242166341673285883129584289663065012098458164932584830733409205573652608378440760737960781558921169875926007240637952290236352389635700127428988352632427909081556578137830330495486152375358899607269359159871503362795369622082470010398839270639046546358010579655103210864845427977209432659962791112452964009318734822491769679477403327511990072293290684282017667998788866021481618999129110036593640843869671994632417053254808281735718087267924194556610210964617412102182583036741165956260314559070068106930631084321198269056760205522609843992694450835330387997340709811996420801522337753619118692385250198137577281015089622671802347967519122064329327300390230756130990945543896133285516438856998994454500820402171653159173424075032280905834641920160205958880817109804499614691867626692153542054162490688788338618776900282892974342630600059469416903172123351720179886021246694441799468182490609426493370455482443821501717152179441703276232436843713005807081286763210805697793943179851575354040967463172775437293872392124538325548843160564793318438651118201894578866609009156963858025275697676987248300560411294628251929844824812207415718340622713762430135461084792588027426428169898025194332489695794373461865428375290813470058865189857757522341747878672600369765880453624906958770275882748115690560719419345503533176311524397916481020676074754008162600305265369424287481599471985212739565567183146583471896032200169243139175301809188933131421344142030078537981338088980196289788921656508531204430506162114121430822801101097819925922781250972885511390283582951351600172305619699700111027537754967490599003005943242164341126874939035724750507219742754692807819696459279767449490325698711229984146881201786181900078562975421973202553161595798708850471844813383858682738636176654451861970420098594972810341667435374345871815640107390115184438753073634064947989403935601727029284963346332139890535895870238912126268862306206797293544075189667645066367516718576755665792541678772921362568714804629474284933825488151611820234970999447951169068893107258977842208949314913091647600740220590791769120209687797646701083613897503559821901307696378802434112210340780178692273921159239247204953221850692649235461709483873347312022955646858174517136546544888998109234199239759555094277483730864942993822338454874324407527179516572306016855151497302457960296786450796107492869581351240081229321389662434093889407625511331534045911729115436268647118747272779675881871119728205710218924317825079908781135553756575880847702895405527223241793957472456092149090362020621815272877499058271512419031023884651263432828924472343220834156006231442772151267092394895391567256458059567913063451954200873622311589729573256484330470911437350240782857003995731327496073930854200738128843314673042508335350736221975923658481741367632427757745186331649060831829740469637977082558540599914936364181617539242699608455549942645428657871681042388354093718871111111381354550559326653157999734058996164741222232710318992972034724956569803324590746403015577279769356539875860994295116868074398829521064493712397678122915983188032544006419575487885577019597838330163783718761699135122956647345196375870051016803996076989796903460681675141280307442613613347103279357109471369024143362643378649161810320421483506249883053230388352309968265674962527775795548937436608646095202613930544005469850145045377079710188180775299421215705199220211643302634672316257358673596239606899016802887636873645280356591859575581942190203333387052555670897812117644663807869916130445986421706497364556181673494675801957089801206984594320038957405752974041980492714507566917825616146499887897254831756323560086761863267516124353141588241357254600018973515482005812110300414076111719723858283756553470244911491982903109553527523148249593550197572566930692223690270303179370671163762116284925423397943392423082299487321875152103119091977392486381400180080810339169195062249194736161125377295007681305452373593620943932952285818010054604620154717884708752162957968944537379178433338071927807988164763423658911799026970853271567986575570197620902569129098898736819588743279134902653292395407281646580591600717833531601508772966326706140626291559558648905428778078578410271075563139724108282470308335640353399073345112163730361417522181405250015434058122509644268061930434562585806627382853597470619964458723422787332245083445460230419421277496641237604830159341545315656251337138112722782912366118242722216959638535456168159797161821726474699413306416372638243385681882387382024815329777071379822855202015556895434074827471527118417681700799164792817624932921547430632179977629039225628262190118930363941490725459309395636653007072997589608607939016517985674030888031187096364756064064046446685853710997022824982642363709133834306853177178351234928482253856026460360081212280280939465375437192161236102505500761685007598018617027780466471522252001973008115666686997930905273034746797099956195800141195553872956826276425168754871093161967654940358393990670147747843091597201953207265698220579766913853153199116204632349085729854091928453811923020475181377931055238999194884934585638010019695913892510890609103211472017630794791054055312846974302688770636128241842565477828704599676425245273070991255446161085862995163718847121196009054495736707759501401817747011624557330893768504190903493673795643968526810698947584877495174845230286232358627335751073098923870360674244409141240446388253438405032661289259313458707337085536062314910503189901119936482299527300718591376277863315452887661171561371534235026626615688055492800273997257939854983916708813399533754252151301177133278277475906316096992596261791392115436485765599615715311845809621097470152117962866776197847510384279165624543394227690432533110392022924160646999126978317493102690711708941167912776351602619199383227076307262606822654551165602212273197612788969583181090653433943082613443213322013539977193041629968689977813515579380490614734209012575436064266005908998523365103491317523419621910152146304601870573630200588596073234690813308543218918194064188386911042892987982016905426382433210611242590007781966629778856336044846853151714680875926674322968273747205170412411277322795727323740244204390321068202247095971928300529613101075062654893969782683086497603135253784926878562722451895273776134843322636410004191722589663313408790082003912944050424342891651639640648758789214437579263698620908660771564763549427107941504486320564016353143118002384335884655601411124731885620956505224147317021427910808827639722446744108002840014939632529387810629385662291870576703429040831233165993947822501382982602998181006292231994484600481582694850616263917007457626860190756216144267454159825519389729618154422475519251517117869201560369615042301016084070463235172759878964019805884008706200416058028745310098145453312352783893668764878805125369972411832891453103090605844927627949866188022615606873019011377842620344376002446846907932002371260981067088845015345689442351295467567373912185691919839934260297793678666111954602317533183978036590810478596315664032873559809579751157904477857479713902433493255251008641653124682649978729069867453770457550812561073424113279558658322398971900921242122642018148382945791653003924004089655814360182565254734200126216750565890310520386009442507831492473623342944908702547590525191677008681573212954368250805999374149041586145987974539022710581122242294133717564507301109979775099933333750243519713872875346253918761809133083333505258176568426658513167403120697259713321130327870639074420966129099957430320164491365188298509703135876109432963173305461562391732028258834492621863637108874945301113657373226944397718299998729165565870661878597340863636624307421631538666713443772149904297576675720574811057662129493903659057214128957011177486961740915180326689513832555241930417864001791502997686576735084263092953289601653725768363663353854284526278019352273481190169627820064546858473318083817993311467574541524791724105693134737482938959846314814842406830828280760159532596959285482202855028186032661912224516719594053215358026788129476299693003743715890817651131041003362018802587084232928045914301081552288426463096470183217364512160662199222820097066832753714484102114906649968467088613973589690843801388908375817119935545874019975908448808568463952572079853973254148017534074148329815501834182077192688993496628642313779112189014567422448096491010355073773300950716566406576462897318071240021862280434275786392512642063529368649829181145775835449845821214127641304601484757668794308027579745729018628095776869017844843241477178088521154769183497810595221340165132740483335083870891582079401435021873623106398183359342219879210899603763048050554709795337159048395717863186362182610986785511630790253209612391687336226784608820584490004869439034676142395770249194962183652963300591626664254385878673323535098890780116739286751007036831550486850903611702598850705718507736919720990956775701944347141969117740380288015247339523724089744185915338450765313473103942118493611685247127048361053063624959836326749237677675335244364657942878398290417393430332485056029956297815434514247911299256244816087390703329008838853414334457305237752323649967861585897380973572361073820971817361336846997299046156285379760325072252249601242834720344367937919646449489027354668218998430932038872901433823309833178628890040646700859780576138857774625045287303507966731908665995871692242731359997500106657882485552642385313314444942614092481501013626898889903116845235128312679260149199481160438374213521044265732784211264582098922483026432332020175335426292593396691520958959148590330866058853892143293028977719098100871262193018855210719592413061394997233698017767127304550779515280460756378002543802357964768102756247442346700546434785314144305887217968220680201401257324727835667317672968068693848373610584580219206755256365131751609098013066543818131280669122662483463664409535999216976567869768145747427237091078087917307577631624872268047558155122898881793716307919560412845137835709682304536453675502201774362928239326981539812542444507811149808747241200948127020032578215405060580299596321277821759195512485260504058666472421269054785238006720725330534560480673673614834511553087204446857128273610400300969822223153660562735847987694067456178541602532788915803044216178924396715583331565844876138697463592406193140647631732135016232234097589176887153660927007357184649110131982521201825881709339428525486365048802508502814143133318554563494260196222614052167329421588993201071411354054488590324295518266672701850570358410025312344950689084829399507991774264625492699198890846899148622093596757598226357650462803900908226938804018360097185081742422913084489811091445692249440013058042289931980227971067780093662621693981280745584328773568104768244217348637221236607651496002820447262010533891270542257590487810773803584389807064815783961621503068095972322568395599414269113483639561372061119978524713206416284679728285874320890135564842475556994014095792645459120104005554620431373255645391001611610615906673339413619840930532766737013093478025934423715095596480533568066257973719476804386098893032675826109945979481033213874602349626689210084383787892030763000460375855256677691607836263182262587983756340698643264115100029349302636076680565336809480818949524359596521791799374281781348430921098923763792005890837003070887726377292426144217504062575351657585750609272449210163149516699530950290219437590153436792642229624806870499715534036267141396479472671766290026277660335452172378828520199741101758917728036932371267964595380294085464998125397712095665132032073364421529313503519095244265181840070227595033608561588809281067753036838795664025898247850549038546314676547948408056968625650322853209399444672862511219331267692061243999381628163569176895521024809045965033828964478120502445721564013987146170687567209685789894668302914392528163859234397671105546409608546942584110626151839750450679700787908445951297754484571035481653827505176089533586706299748384578620721449663344820164563039628442915514523202546508676799712663136224388055954845239149578453914162188640292863473346579901471980809837035045868462149905026560819721811972391796773718564701009233428237478260556148634135391306179535986990369423649391376072570025412848503905676488751007873288898350942485489282702477201039188934853904937461286378541547375598555332122610703313805109373976778682457340014641693518007058380126745456271023399207740625896566397021476997262635226244260533300390554740976418387055295945666624393478624106584835229394524002905124551352325382143787937415056031159331954439067881273492997224785416996507710559881382518727063466445879657503501929915219108410914096947648351782517991031511970334030966536547581176709512502510533544337641289953966443434161775192913213864287948145991300435039545816193459216513247117955116306828462994366349513314430460266466555556261550276561734853245168637932050766685919435754229651037764738300495240446014062606998674280315923447721726658143678442471013052911368174186153326508638541471742755849256284434203042446459000723760152038261608059945035843382824906231327072651599828959906273541523116170927547987456813932942266943858858342765800584922628632560665521453135133084761374228641384009791136536048622672553949867387154610359103020511560234852157710348515987368221292213438144495010768186934332429718019384827012075836729073278236433301304261585259170304320369805574393937508554018937769584505528343845975898124144885300497903242880729192381020338743602054529630216267844801135698635701128925020662299491639537971746427051048775568574045551670408434153266413344545365777840122252608250069566492921649252587538522885886353614775699976104219837687302136037059721883023693370417879750361271917523753059146851525593195651464632197347700170947534030596271055783553977543590380661672684867948874364919190110948969660264836791000965270930819155798046576415893781868965983890176659181450328996914903783503967279619149822514835112118168636829716743312567085359661201096409414530241489958104550122688711329534804001061838437617017854532655895925536430871026924544885583287204993320594288551973745748031992472738667188229868055890659755793073400998003366665144658813497327812227972603865493439982481226616781542478260369343117545994290082403296561810653740598569277361284890676124283423090866774354653541955735915167135317068003602958348185003104431832004118645261833535037741579567108591491459372817519458804318892578109725135842066248906036484265817249096346191408191865722583472415743465394785799900241067675161736631735815962587437422316724569256055630177115098726628739792215817473122389057846292719672277955258624225298499394066172395852836505203432966901041903459602306116705654117490952970850779704475315997330644344399654634761464811023246732384141140860190755967918157122105256489019402231352009446279215358346276399144140231350733394205437213030654931769230857625084914402700424506299109713172830263683419426649776168478926441787722252279748743300035617407204108436367193546263194870707547896915308498327121712423890035290117367305124569591082316537453980021901130319463774176486715176755299677564651236293230527639382754895669020680336384044737541476293402021481712709276829777524111703827343204848211560034210420252955828176479349110839261558054624225953674509370383564533716493397326734427904732729539602356111201907423982420658098941512581998227074841954587322080120452786344706578570315309006842685212394524336854019149370900237251899999855649048340155321561827130244075713179568813078135122694422569161552594374149891284532987572347577016916810522669886461182286181906955570638947196252645286904609576595118202962054912731486720467751771674800096831244502881001343804371376887701608270027316326584642262688392696276683424433264359729331304318913778475903138605743886644724783538911353399417682220776642506149701302513926728896411196748418869824326364507231100245254554827440956066197517697248643711364104827709289200185208751659631770531417868831302232080798219544399181184806433313517703500529146615674008115303972897212176063219277072868687440801922128215407926609730791179667629884511846573963344127511230414773403748920039261162574061772795021266206715716310698636700353596859061964381590580224779329092843828045966822575303232549709480956404519014851900506628690176097092508452177740546735735256009964350484972847988090778545474666345717121357067011120093291189235226535421384676666166405882719459024688976846295507511510763440002217232342339848859636966769352868389357821862508325127229687980276134877083803709681599112400070114900085050463612045551170316731310734571772694880403511352733677091232386607083139471604171477515216795838342237247296975742116755060419404172372991466015402602745087012700355834963473778481108188546223458982352502876683896383272921188045691118928539161973750525830888003072787340938898309554598090088800747359995082591170885526558230835619900284175360489063174131821238885981883829601525307898263301950740173727682681422402482859730498950481177455291603231725346446196784157872824084955973931846133752260645757018156852923730155330173052161806654876875767545593800062970435478346455099799656559307509683726708311651780924511149824774713735718474385775023640494369840014220463604405147871954909257145454963685467234290160796013802206497167735377025676011204709953586902281593844676504808224681689450350345354746034560940375425625396688901218692015082325946713198738543657167639242635075079530707678115009053962266927716070911861794018687508112795777018356762205487345443812756329322748815256611663066312518104457091510299063262160485265936051621625365035710035791211142157228314955545122552211570492380219426631111721214008477317358843716725262180663043746784087445051025638853889186411955713480364691258519125391573072454082559202687057966848607543829091037909979149682059502206184618306101396843528175977020504679462042125355740743670386147350755240774541728236254980068554593827923575316720973832889831378633438557299309001409529208278179910407094980017137795505417771445975208086931145453402124851542394563761883962989806574720896236308005995936343251256366672714305883395175896350990950733170596389558715659570855751255003877137100872639106035718991968526091671862698329993026102746074683338300772359979826007361729461947165120895316249255621405041800627537749788602327332586499314171632997934051200069680350173569265433702287783224818294646383371355953731630965152572255507224432978718112117179009880351801682585913481068233492687279557522829754629204048724723956393068236173139106258715147139531739929718787522934454933131986711988660787752132074876536897548826731263099990654706066135867068290629597826386514478015625243541066986404052873763511083480108255068808597289024768433305830143596840308665046224037100175206850150395051394139610512463246038263551276922032747225310893005968143480863838766386083133124963308909995192619249228498430077417232479859298487473897333399608199966262530434466241132233455877373703745217264729861665732428480819934515294018633943586213143584083951406578986091471103653092646489328775824647268018173820356571756032383169553664592917292755286194034330087540474664043031684881807216521480426778796080385500785937699490470458616385542299760068880798735456302007608678102713141807521551525788689385114883480467428577254337184191723507087916767287509380097069326423360997328362141997723474082642030251342354978630988480095502157776296368037746761793403632713511827797204915400596986254362037386566421067568416636673566391024429892850236448206496457639161062291255959975319439644588549116796696381415217952572127695006976067273253046959682299608471243435819622034734223130547565152270018095359283203121945412775782214134613742442137262720868646057044938932792119711121077526629118086826628948071860178217371189351853976623484084688296632206248914863474805497185178033497890068715797021610650370391881925475909737438638600360172963180139686374310401521777383635389986021516935672079815614134708889549612987308050843764779602619528126656386226680965486890657454855145040136167903601789239984244662668036438483509811116698631201499961877690756151683444742792521840987885143932890439102099707598351468293219778676022917492016942356865964111724798197793440072866344040047694362614049024778812704755123909134622165488987399844452610547920827086672187251326289188315089472250528608841491578884127309607724772878701594890266940654955274192425560817840670249033728144739169547887731364454834882084205326595557546247573255221710371008290692704651509597116153486836370865252114337445438805690050620028226566432323513533032848076113235317108575760833213437896167150806902396157191834567155503569642991106383889643143947997355531188142517675005050130546660036569210898884698196870140528886307663233934032167099596398637103849480009953916685660970628216191425748459306391417321875329493354863231570584871730532030864487961555772578355357436530420120756114462590941777716664108097933875393471688097982986270482476027784590281679612768985280038082771785042611080816915787008422717772723120382867210158718614914532318844874574774887114624222522092311482232172380990224075929039866651709985309186560196663591032054995701818873086299783764680171714735263089552865228389439431411973906372437393902028586422076623865722865755891963811163946655206704626514248303982599175769190816333228856997889191337773617623254632772878941855972161996405387883290498763693052453553456230768900329037769244796701561331529658104299519634179446653412559304738889709798221080795831304430174142540327796503763587567758266942079265269913644670379336509699426604816450458147198639333322347668140426230793636481027087831852160609963350096261160647824680679203882799040210375774744602034245347938458441259505669711444509551404963333472938472315497663483761995650817746589252615973417414778019479763766655205416510446893716691761900775311052657240501855514450939102954874381333552714416794205758241613673435737053636941295027254418684366742023926740203629181735781071662053916403978403620936108766720805960302756067000341577321038676876821335117545377333263257427609173789773376548435494068005858074377704492171373343208898230303628661080996933724612330720575904734548284752215801625271784698812669781777414215841642726985658780878427905321239004962279170614339499424730933761016858924202907055637370901745608318836251600415257655796853134084188503942784314869776392102971233211495739821864952252031673345077113137775356786885830538456253540840884017273761331930216529121245553976569535929951657777924675436006352940579208617812539987532931455099763809203195186781404185664384908642091977814021977244615735668468456122419673395135320853825221565205525218124191654323497799528566457029655123114566782157496799701940279170360899623437682703263435103764196792157210060654705939638236382622826440002806591714384825487990584039455761812219467144137472605594765785957928639778628927291975835369024553286939089080248101949235172118198788799554210395390224908802313409151770633477378751174573510803447604967450834543775491791398520288312503649703558094992505179655232179026835531954230399856407573456596061172417083971008285151868252606120733615594629250138383573078510926156932259417301331003195179100099606179656464752402437854248586972756347391781030150908722115919385026428590378490655767832866912119829469724604961566808893675128407323284375008885221028309869650358244728871243878210434973712172599267021372637345601514960897742360932124845218651648926404006575697060364681848709358088698955873213071455542328839830058292758959484307124937286469934517084555440924267928680650427328299237646986640516235046730131642553518461239978902400380521015242399705172693913343331782661602977765283059038921760434254003507400563026440671773882577057672554416230259241189273930850294662034703593499954761755816407942107872230327046312279658122455033785080166074329839623248320440501302005973635090102485879058319456407362339487956730575133064000958095758837935759258862766602494600369698826748355128317323806161493128914533959252560123428548223614823537607715475660200653640782783707001797737832380665428383475733928571718697717286293542103882332971152522497422982472933320392928190760124191417143234124199311665083236985744429365919666627745171768425021661567450918878876634104582908685894228190410776167653779201550194852173024012535770478826608857918406370506708693163551655929064903368636954934313556925881583617796589007098032720737729280417276307714493579815061037168161050321812567352028631187798118105706091834969043475190574586811067439291063594076398484467010115102711722828748222944710409828678469489922141964202292377497136058920945796836702813352975437055841968497951358360865705871961951692395591643622377052622117319903732729422253025280514891298943849957329921928859951230566815885994553592694523446832019084340856960184186731918597848027638500710322247269657396276854445264041228765480831313944472021535095841817206400460574961307701963898538851368863555314355620983696603836731082068649883979883547343740887528322976420817737505896530699760389409037702080096771229655732719686365538466397652918356053964958981032634479557729263297919700119920870945656467808963158665731211887537076756387235718280515391427597381520658310141737045553045438129312079376928717586019241562906842541458063865294395779635890390319310680079290394385337152271440960877927371777983006688118101068744115320102382547260934726716179260471156229736130874628450976244007038524035277368332281852906803625191907769372750692249759121213273586870606590346695245688259667578387086262793230677250455821580294201508333438622345474664177996074500760033007581946498237049644622121052934082724513275313651346732290072324196473407053462826799804075748606478590457621353872588533329425683195543032843000100629699569343930802377868442574360242852715295351834175461821396086812897800393075409555405774148029742580111203066526062364032586692011559540533336221174011324857860256722624589363352332852013577520642519059134765806714176672404219648003122118602960169469549100640736674221626762951542408266792891746321857092451032061496803735744648896397345454853745164455114901776173253113948455869711012813539306021447892280487745637693812411456129323872825787192090468803068839916383433955687237009064619457432504610595711406448265367407871715891986570075355529035634607616282146696397696562522920748154545352681596920200702875634223554669840285290292427975534240891647868785019271281330791000756506899061265820508625321573247751951732477907581060206590312384479514920856354281684095790667976241852016134454601207578457791202554433700597633653629164999565801706115190251380258389339228651987193701539050877383822436317361171388234890987146541797357850362187571109003147153742503397548639350727125792828689252237918496322272870179875778177413707064120877137038624104133711096093765443294463124408401581330524054580412040590754568672023981612457180017300869787820021767456338587821481397688011072506137312533232009922449118272442208277684376023197715351134302441122352489501641925265754874413267694946214250958302369361164587122376336829263492317647128788835906407505624261247578910045025293019437045840136853918088225987089666785937347634721846003371898690121104707126451154539490057758908749378331821340201908334834425766961961691212957852408325098188594926746581822719178433663933473022869202070452894955011646435066186608376473625131880016001494275383528197923096386880534952434056804675361435806826079610921395722165823620431297993529748824414161863337670696543960095807769836000752704733910018517680346331220313256527959594983151331423924529480602033115638331622789752185452735107425403182253356531220972571365286878237824644360030233986089253735199472860894132860159733104702721617287057958872391608600611415703766060903312937653186647938989314968076752577417913982610241620838216875607622831527036937061404803423926220067028462605166211348652957896771298546403048945562748962500287035906193686691832186552844900413335502565516221157091980449678918601815764293443178421549079898711548624517428654366485706575867459051823384733184727011450868672529667735950829145753876903142197119418461731816408799624238398672926424226209433045210134424991600219622976354838596661367624735251623618032215887863939867169292166626256334558194328837486122991294408066659791681532351583526950757128679959037164560867304604332808459151743425763271284477966146491701116701393252384312783697338707121131252174642569308266634054017091166595414789376916484531058769835176140227414255133480423740642557087669485069002460946258950732134069247227330451722439250669953985609763792682643191969326978702437160883792640279931537229818819504398229859039305347130963510651288438383339786823163947603699126399607737047302364792025592796527715372820202009489462397155265368789191708354129961298347381472142383622706114422339981924175458805809266913837386002262224910730398325300716274196354083826085705998660832015957703872534201843161842880976066912854014780087650427907576818988171467803115334979836738261194428056763494373939902778687120010725171423986689669119809930707848537915333162106472469114244695706681512937605074578653538986707913207458917664237029993217237597238255492031395274945381376595072887281698096085879099380824014532541587901580788461237436770024270707844257517177567996551943822343715582351970301710403320860940039318888864524454285447681752180659168172718551001114684746346988028899165075359152509160489342937465257900289747718608467323478563668890526653290439420572017555411969900893935238348973617951934643284141107118550185863574787636036020580972786375258834692605347814078561355263378942001205523320070809164970671973590528015338184067849290540068907899076553141203090000482760649438860909619598714670346757035364124636758059181749310444647574551394522878678102164382016012500408342914855952441688746486315306585100176892466708752271249434236102056366557108409161665750964207695556439892529218323715724292040305930395120639996813551643876469657613647271731182274630744007292980702346364994312372879768486107021069507222128467975289187043118554054884470174947388176402909017337815498263447042571132811974001842945026324609514121673610814279254080996019733958521493347045671460506269755428416673785934728895218532738906898216332602686216747194273255306096023790712372316828292186942911617403845182365034058543781059702733898787180235257738844285091335094655623756951451188982126560239039752614302401441032806534093818623392781131225622647159431063592317015722802861932412395945158531356492277281769661096600143420947835029454621958587327346972021535295349248455409549293822470291635076252830448040490266677058845198650569765152946249337750669887141586782564005746141964519228600023618360563060487986387859406728169366332905199529118169238999528684828260412978375909413924509963533905524267062179395028254123400381973647405070919799229321646569581660885757524197626546311178192565175837529827165434726632821733614670486460888129541225556087809027563315332795176841782079587514805144569570817598332701527336029595280275777547913289943878897406852664549016903330171627221735565534126253077718351965025165232890995826063156863444619443437722100175949983336917831025807107030728543999922629738010252047384443597670031471654247673726886244956916650126655909867432775791922510975085009927017820388957230083816959205224428552807378888547239094009662612344043344422756571905562793084037891170409058820593317303848037911318700838962020555043586616691823161433734518309675026586736083024948012717375600246695757181416401293650399203244205130624666212614442895550234750265660152727734317393820574808540594589372085367767717802450912563944411666951190543044384199278532387785446433051124110785772948241974661230735915446970200467158568301705938367539501090574432435227906685513143246141491092934183160277492575420634661521401882822195689987384929104701240897022500805497839463169768373549370965318890999723776875390850413526502119472381522385501507426101604414940827173939771332513552654461243001916360727646398543469569929352605999195998081771054095690001754911333278196424311996357990725286484365090678655973725696823088549668182862244637744381925286299412716793413985182597907651032499256213087464460317580680618342626426884998055924656886194762523080086459637684742067244128467093469483778478699426315180764925617151367447995913960218275062613030564426789642673311727699694589259545820102408735159031316901887892657239758661057521701618963832883649544328887780605630334629300254257411029524087264018361226318713094295996624207856770503351197286028326515190339117772710417617336675972207753694424754467093710174025204504080662178515287907108514025980738024099723778317312172600544882407583073008690342783022494974079127476249838420839029085108865304903210982235474796223230021864509244874201470846838923701919140583240706316747566675657729340512190610578157067293798454143075160593205143836983953842054103936346193582962483631866199606207737314639040409583045576271049618270723757317428085005496912642638687257890080574000121311905575467795258000108886280196407326295414953476571867430898392324627152488106305674769147403932949147697870201405832656911176996449321395730034009486917663225722308941317086189648815518109820872769045550208676015419527891776057554093398016525304555634745861120429782661816811667837659420365038690105722729646904352028805286491549592359821559633259852935973336407989660213705170819490165783953257434277118627681171806473364231338792921667250017677254650833985981230178775436574453573967779846436675019700360411820810056756389846038424488090800792784508381216269236464081763705187470182636561510641432674682506946209438570090614421160365905804769119617292133633498246390998240218375343410175601031048102579161499350046146439944063154912028765531955002246990547858480068346900109804728559635814467232573589126789093804394700301052811594043946245066082064048791712250885638530059366790960456584530389639539500570255801362861970905857545576768253565401457169973804986256817699723415025910217930150635636311536729318678050501290652837995710163848466756895861975384146095911857986857599351016626860222538552347769279354429862336354937579034877498233640557862956867853427294269338608653536627372782828461938758795160524254136474035151907982522222284425447176139433101444486407244065565461219105427637272765010073418384476563472225350094089983572999291878758387305368632461775075095633760315328959594195061306642206353458709371262490995033899866142347459960040081767046035757932837910013850742398977411390522403968391614850072936081452473425088219795576313380937702817541544002248378732096806378225500601736974768319540504875883319183856418792194546437102892561675070978748722256863558839838486698602142936760384821507514759378393547694676895788231922718488775834453234540620695215882623149349321942384450890387489498690044187622669290549898441822094131775690536243251124829762067001452748125550544443169566980583843060261465451750930190950746411557105525323395334688791223427985824962861721404048852551212200470951444353931150142527833083685603651619821080936555960160727834389052175574158520140502356764607834555549927190101614585501759913769427787601954875629913212587742772950854311611244992062019007756663591640580291794838275501272099422990892164606373869455319811600413152112241219953081660448257046880147475286692691048692359791505866303543307963956199928780651612498356990789342211846012205419369116864508823549070191080341237978265971799441717129548188308764041888511460797142969580539705377494263131613699781065893567550313653532070777805454785239992744697955858342433602834748067904301549566228911000766081151817110753964458012047790367176705418435354556459718762033400149012995678792526133497219614249394246269397328791312687501414946690948705022156272620662556463426577950592506635165948852162667712622373773358554331714716524502536961253103840158612391473650168803931227655701370288927299376542734422715065325821232837510636883120816125314342741431499487686210248678699861123911133356795729981832051989715329330839973586900401427257053083239080297185062614267608261712440919010217586196244234306841822022969781244312139834360042734480277576031376582143245530180872436801339941418008022752626447323850514472733367562459804722601395965743953019813204899365894825028464474503916381946987275740592985941602400784594007540949555646473341679990587799880194295910306377865310673771223938303857526347056423172906459278543381926699695698806203863515031636047434336551167749555388936421748742533862005248613048797516211456125041312493858294558121524438764516482427915967662435071949159679339112707243689212135396356717470222694621457301584361833778913115496191988295980520180460769432542124010251924278453314546732940284114354940979367665951251322625272112595044888849778034972626186449896861538548074725465820971693901147169569880241641201544197000155371424534420102571296310706917442532393613180370813623807339789921306287911754872919751277512104648141006667586828294990059450534311410779108648801098872762871292842194132430999898123296059988051000426976304252048085869706895610638192164026283743836534891286052815801381105127158605879309838236582102580001001102057124854252928208297133733776343150299747400036721865692748709401312451147597503971922674741385830134802679549743658957059218747054538109905769566768607805822183117563581712178539278093285030511498393661591993323041424510241613783811808966995926163087679631240017864986630875562520905683400847903536292924394950656152890183569411905821630497693227329048765873553586581948916827935228706445949579451030739903270814324048032570551873387043973504094142478577487529859817089916571757135179818249905970881129824733674320968700359508428132186668476000878357241001596761764267758220022017806749789772772595025509279010048557607830796265787964027799074727155694262002568795861725691678740486190442185431867728517930442738347251826193475972831879955328096315145598458308239578092515861998578900417957924425466146178483049952226831852953226884951579747716698515087312158171207686030090499535364153413068344142216009605729279817858549121526067937177424324820411125308168595113444710102074983747436294143242114507628351721019823782142649380044330951203253840281119607605631249893517407679420120484003092182722459325484959884311275910341227633981901705046482769002736488318469605788988971033042899757350291729765642645029199419556387525164483989441304283900505594590206469715131326987094464637807689700266620725456864012288655436500056334667954293412346937372328981282368434215434086235655331251462695431235351194732180286574664166625050777883385485696732183681088159872734924985176003512269646089394801489153333771287121832607720829344420890512115238287808318397539276280497585868611802223164052077893730250590829880720992122101179031855526799861395038721360739476544251345857487269135250343767262998684746883256299188500181152186791431976514761586611361492951177784779107454922687787576451658587197023216893430900589137396352036284952416631987603037771575661805792181755332129528069378114142350814464487265591372617840209969039809274423410420126105792498855055323315471640400971044169363150764340353642002710994640874506909988030318617995343551384370200411278684787765540513514629837942111053023965093696973535934682525920381549756861800943349319090247853292832451119079573140902078536287109028153233446156487514359344417194974426466600462768985702075374991166355171389637676374818348323288000845096722986097209049744285056305754734553864169540741409985976321210127279269844221007343180266396741620246711667384501371417900768294332090693210400114087285122758800509755991379069601054863586624208325485160645058303474996487620550525640042989671013717019012302954243503098122673662319586647137428968775141650121632403664110724120407734800310469641008381753885164319943238626527958583229155281919657489040700223179058539892808320353756661980885710540693107298156284072709862698581019242380518759268173598007355387272693750019614278977853001211737481516658639076738221274786123011705186339555323211615836535476926325967279112390567961358535037826823418250109585056775515710894359990557420853646071026189316489870112355575948977465011467150655269774383242357757037759035004719815827714507090928808769081081411644599948916081765453053257761366808026750932580429942461891666736119925378255551998885140885857616988337927275180289206663577341560684594750055234377551404672673585210551261328518762523036482790877642414594017525759105153292851452250375354731173761941041922415788114525534216716964534656547835521258527353265276414379602988678136403724574231895076182818441716368425805791933871084082593486610978488773145800396016283235930121552953779318091380797651696199599242905924485983645776167381169354732400033045680367090916347960469308469957314995232510275492856371503367419181681265624264894543424569716655932051344868718578488894997947567762108527497822186070769799473445790727776168900531471995499284468305709730514204543419285628807490066753228491728455125769332894534891871251226962973345177603588390750709826455329346938414792504446780827863128128607111102333830301191951029432809180586560362704367291260175399194926637748888328846241805573324701716397824456171422292923369568996127157730624223489337315348775436157733174324173329650125793573904164150804086604923063547539154167170901975753352971100385898343208311186092183018659497639767926625549415570351814930709907116648195451959805032020571893984740019184118499464982277088498563438348367504729803061921320396781838550358613346143926992596663692924791743741018396886378777902954263634032674680913396033296701805009329488894119356645733629726102854843179091281763140543773849605785145026022494212576467922412576466507507563072737618886728465089847306571525236717867699125387495891735109833012032992806875161710755956614402714945124860244170346209868736207815903021070659815788494629458280272989761776172393134485356303245764889655161645357895511257869545642516636420427728318844246386727371257735999273804307464511565670165114213720078555412079458401096643551401784054576786156479488637164939898679385822317128357995134177277335878554931675008720518944532423458008212537152628921169838651274545203496452029229311991138736440820708525824731575047895593562608775194708348156848631847869206752414171352635038993828859856631245561061952572416697840047240129683490791324535548144422560886602124722693170272587068569639845995139199743963665231363510845564485427861290440092320880281405580579909137243770669432416293799075197524396871318439976149374523468166746919112419951705539016930716855449389967535059704654133949950107086634868220614189890850113931359053462944485343396890123010703163250313027625492363691635192306696957958459012963406442059081716163018725491467877375917010253690823539943118755180344954824750705216532247263474149025565622957731352034072557358564942795246101221605248956200699985695167325716052553812952867459973892221469076061267581214703619278202762596288308572161313512761259723265574916037924802335767920571720410171303223363805010544909269714168260732188537229174931094145670619748795884747061209577771957141686103183674613986053239459504477309178394435656681840811076222571125632084715400441116529065943692878701289038744523092109539612756124363190515367792663965692556146863176633053818978475870282428120090574992970759746245632620955627117789088661773418161439020553304621625134876405069082057122751772887420195090319636284480703927137498012338650794079986111173746129230254971172487610818742538769466294329355977614043799373570435591148617081485990335352304795164393738658074833117610310952946947478014236028236174776936088651521515795596191993605841073742905160063589603271123291084179368136133342405755501481610645083664615630080299601035102324816821259410353693916181487298474654476481489670612122004452764844607736783265919489780633201657876648087348057038062918346822408108332347412226993949077833655015516236415236863065745021627632505648867103070683486172097346734434894383063242523576988169584915505934245286403553880805539487663424427996965643894341894103640816176160899605173460444324939731730954645733662720670148443370786103805075913866244705823494289876408731264931848340086426350440148438967709190516308791982078269973664971671173500482744399646131588256966993778417699505268674313814478980854621075890103175031897460542646114322970906373477993720445574090800774443277200390905536570594297717233141573726550920182621679811391638456592562823573118870408306777619777922336839769545960869141162210982786728993639854290508603785019746018647183088522942955576322917377657361969773901793545728463827187126226290116294825122604271101424482331839229383793608773972154368751226467423192856894529593281084810097790080933081317048469399484001335305344995045675120468003187147597519532668549358756821511745842665253060561568338025400839280763035681819697851159215158091339329229064787377408454907051982018532197874804430663396168278320351443479132573582067211212766811702083096854221656424799250256779371322806966153660648444759595153623147106224420624766053638116731021684675354558722076417708189788112207444254198064835650004065817432596538121960590741926664351703424706821997219235891640583292370495769634969858058954092364246842249421857862639292114759312213405592423092147227235488011345485795001189978414420665776450656672006586064920174295355244409239097257311079628650694630797516717600636702043754102064932120907428903104352174441523994059286884461234113752940419230600377992315710111351556994222346477417315102623485329834777451449728870827555657354821129905801130949215959668050574573659304953452370945567038773174862717309886017443568395589148222966795605037833374058092429062929536679268717322538326026489575173045645850723634379584884574436905176830954168090130020807485375892913007336474490177281905956453186701973331796303281595577650740642452171087525627941314900945341984886194744559572043062311693300560002225852406505851311138510873869441353843395347016480870822121383852509615828152456516388835483928132066542909360064208783912542729341555954224024705118493007800381134330658997285328882279813430483006769044216844928004231772272852471827921299385396784662030122632197658040273356023249732935928546925100232128255497715950505207765029979991971575506111956831233114133624047160055338958497413570353446761244015621836331037951108722524583018022557090741200383160515383015783920865500736545307912990378359787324897757479256682236151799037801145134582597486260764724441376884195473110487488208162088144464777842582763982852822663451722840826653328836225219656885216919345349360199997336797538506269882798408677820175629125245029508768487880336602965290496326504898968446371307074146262351484779839801741646286759796867458147934472588510604402222715841029139741133241949362549656143082582499639510340847788010260959259097998908342749602253996500326270332803891053559916068915942101705112593771259212895509083488867731771657709390667611730034034331444382730426335771142997377674594184484462751753863994274491970669284761353927909578807313177302005885378148091024292652464216109617864630685671226529100001968563909218438001290563288934661539051359955952331867005680455361265758579808518152066335264803981517644823810044180623989018448992580878950497264582801584833321905953509188342248384329898451577992959778121881642430451991493081990969836108649230714271869882362026158393507762191560691312692932984700555472184829790733690345858009200271101070689323925307536307581969207069226177021793727374631249014998348818231923161204950450598447727294567027845450808706728418124390930402873519279914328470402685641792334275240482801275553392953598637110325403134069532004708722966989162365003020319993627176759937809258265793725786403505289783908681704509732398280554316119996967664255550337702338265449668850916027285994185988574114795390333735677242503736074261722496560130032480788208681094464164803317037481241239900425584863778987577798456943861083444612553344575977620151162652440259661655131205546470600460116294049438047711303747310933333584256033279690751999220028928872792901412097076841204019390093627913927162533145736590928475081579282569296303703397579743124039454419749577035637185323570948976716634714198930485957371733861282146573613080368368202980572723840434348548828190237082113987021985151489395222827632583788510964596619902377162170758490536295176965368995884637929874309866696763726279625338773976699372204578304999916053895905363614264973002236171211747838561860920106907925951999991121259561103980202250859683155770425581703235424325946121095579834887778316619885807076779422066243645126284238954665037040763506266368661598601703665842220265768106620518245314305016499665327817050454347942518633448062648822606816887486523252826601618055884135904776339910294335714149211423969247244983613372624370026003981616379841623920971347120036259968959616279374534327765806031542978013417455386663682652278527477398615007979625795645473269039728883740379140506629893136428016134343938178390137749137106403295183645413161778817077446025418977678095378615792808615960947197747716720880714906402817784046693164992930347271349026214496963166040819608248862180744578210538053636088322407634994158542614682298220151937875712392032606652011611073498031733713451956703499479825268245004812856728100955923653886150852742406231406148322746164691946735525366046828491978029672688039442402181560500935828347157990998896096873658480756951938423800642910559790028208426163330920186211828969378755982189508122866671532949667461994145565602299509197580366840331326625541414538518782959786025842626367096059960856271839050746346097414930132027526048815816245371913540693386699951697813729875140130110578401456490249254088130334242431563008085715527905454368250235018558059423112513131940035094081194385803562425187576628413919587168187523598896811944324183452639031756365854556797853611246131922256824998601677953286666367965814414015595438821386164723117410782849845216602314586918275464198577942282678571566209934838485299708618778162847944888849464670712098213966019637980289973492933369678106677653221514219549436798917147664130822669544497678788471775211946631770231966796732612968520858361014954764308037444010425663694679646264436803519028116878584092495571524323398498883337746213536132161771340598926974615807631223450387953596004083896684885988838941930835648401203909488230524854757650284414945810211643746712029838083706032057543049914795248930275799797317218592350293221792337267196314127196668574918691852008287504870255096997195076938985474195805423157737776003498034026202286948171772582988034789698178491006661628752116449424032749051151003857464863515025515834815747862509671865720748001646514495697976975434147449743586009413702497954836459316855512147140905882378879727653287745067120333912239844183555563105317222311564486581798785653417960447324025256256876458056412042338152807277423740039383761728912334017746889093326550039933727980410826899982815201539468438565779922389835511634400464233158174140366736829262091042248226265979725541215529673486385429779653651580759920028358150764381681091509550032411712162343572490172778876368936878391470655406237067735354631226859309451535135559601241364338057772501822539518027462151954842559314442186578537925516815017410343860744417245444460403420543380137476713537061761251432195067294646544351536114580243178499905254266482065421945061787819368715332286462560225320457136816059418510093809040712502194601222844563396508659571897865192424335209033755319860929403132340799361684725393446629097550325035525149609896746463928017831939789075733487176752832501394074008652097585035707532687310287485082263210315571447390220142832244183485700808436524390462321167306328656366668277865371368166905337893552546065559401414168717708056658885633315313638874836458852115414176103210265870655065818673628724153658726494490114012036894976150299770551966105842180968984963725787481522075679405745028884542881187504100647982084081575348958305530547390894222787950364450851799131231207853438962349901089857324550604201387526211711221530633188758267468433809859376594105793205771732386183147561716796173640443439337630681422635288541294212081134160467727484088865812277572020341953958901375142172653080054996048207670770836058197842837347425351330286522838183017062692298301795855200715309739837642561115595566327759469644626890083767309126193076177083905602441633303789076255088203375038865505143639451132265699708384985675869268142719282833136102051880415191716618116748619370106856379256151440614899566134038182018184167477101500535340590005463711926568024828221870978997582524918397872906921097194815781448774958142915809077694060632433709615774197553804802691783343793433619106786135666141907127698241229256640696329504611057389952710830350322690691519223641364257848971283171009718755055948346350157903943872575101653095298172063415274214353291505287947775657148135888224200917007526903058176676263962254221229602101410382898621507563235364185043450768348042591558665589141251252853791140215464396947505279902327876306258814282170284563384449008145719358718974349510083356414359510790661746246931723287227747429908229100596876486983920304505325296763175667390291237084103630115192513991124947478177937358774457509288777875818551470608561650051118587117698636498847984120182661143940421041411567794866690640611185195526695817916338820877129657878822832724531746210971307001816079930372206729932302034211119346269336938209289074431682874721162649736492537634659394779613998399399751249332652565993619489637565549068184191953943900151974059462100924864991478418740604382751199821503667663421239640764184835217741298258821490576133927420428077233238464125715950960094577139539871649239910426523077017892653064324637304292923364729480076017922599573962959100669451772226175883891368648810378805480665323308785823555640897660075357847722248497505020393550776521836543827615400244825805956006181088272248914077582351271815282272911659051924401458015667114447555500612358706997033093799047768938479061784872637434549945371345887700892451655807338180100700527156806187789434964108806219693347453020973364894611196077308836388931376844586625685557455822489289194033381766692333682080547012718976305857097015433445751781728061864405036178469144226934353872832906686035936226639283434825204604441931495798681682107642536213046753873329554906597071713767088729901869324417767710890293845923477512582694135080948162682065703818999024015406616919860957436039645545625156804476896564709127469682554706934677500649334877301510796967398817521472086548814045486104459616405847259822970501488034447999222725159474388496431625423094045699424990999049727392386652208095883323283995491364144323613242606595996778603519973138911137335316601234879706955891453975990585256360616041614483492941814645600190564418994425104397335868117417637072904158644312134554310233973015372465067095991542622744385650240484194583678512214508542688736104870588263803309234441819659408883786038216434250806732794780233789502652033370238786479786888712478636987029361982125048888589426789525176067857318146781121851234804900922398430685409392839642734385352462304917756682137981883291456623233401053114578452837168445074582893457683753391467996379318647620943414054880252335500537636636255260491187232109341174174305105127489970445029927237743029118012583979855943505623149419704069245923128639534070344621870985296902975764614043197510588782058919808561899483429018835320736640358916775152537831210247224886476998462216116255536035552034039082815738962433074200627848307669379898020278041973605298871432897064266095877425434404678883443562940063792814665291127947683687764927687874707584463953771421988936085214066566513155523589424221418146362204128231168888292240451510649850950005101205709113064549138779107258883994024657033118823017571995644019885618746335850229159226392629741258298950748513454169242129981401188599978853743057606957755191214221631294745081681569628727860184595445287423017640379917851202970786237228147360018897201149640296692520293749334752042668662340198719366503312128713997338588692079654545233328019563506651405245909333677075793584174462937377056661120960618743187167273633762705022806009031769849342122351932404681990530959050520424377194699679686636965794648571729715824632496016092371143746073709374531755564501075443469722190030591080312851701780595253329678226261202149392149416000616017910843272089491595461145911616215826777497284566532057540150334308316802841389289566253697030266138171532341595208607390335062588162408316753833194413485635886173102295740308178079712447052168446852798089115526974940619627825471369716500279002967107263260414793189258644609302125316947355898727471947024076997059615802517536647467411981067751467494770324490073537709049768425556719211436266692287694347902003046812948766841576154021749838522769620400504716260454989424669759104559561127644873257076002066498835524286507257285090652350837441789412867641581453660939247414517339700662621695727093935047074707459259067610451957999794416237442647876838480576837761675394186556917719567980776855727433765452456233618054836455264333278986991936112809635367441336158177480158449976410525142704994937162365164045827813024431648368247303475093352750313548806564124279495812151253430215460374812422825288931192199142492397266193506736871865920904234640776920761469393538515018218680705188210917612794018888362043510735504883780423855914043956868967295633487415947877307603742830806374338064259914092377566971476436409086041456541421562550968225457677455138355665894415843351036108526834457559042903518668214129629946418258181911903878969331268629582723148717098573101261085756558011542827652844209578251378649585724108547411663784738096386253000065826279926280333015400293201904394852599322423161906613893288685306878729216162794402630102916194263953240500675821098099734225006460537682673509686291063247526141324964043057378378577343978867360836231183821395672866805039809168189545421140645779560637030663625114804677464995561661931068609887308205359575714099244873362583431879648388014558097407373967839604313358139438272317027604055169473717292344561883874924769896043049177877517603177247469522726896270781874184913037609339180906471169311098753338384438758406173988905014749218343718527833353251962174435175394853282335485845565352353035654323018737795387232589035538349860436298026341785844749173243987206295214798097550592110870086242944329303763629892400214892237410141215417870757062216982978517896154240356119114692162167740390950927037491996416492527179079303408021228987008844427325876040358885916372827106311127374367414432983010362657190441727201614285292318836726701914476348377228069967697904426655025948026347280246009822902568550890433945575924893961877399160980875757802065587885894664730046073354806270416613307008141702543643058562500882332170884733082068769993592413789741476260100260516243272040782944135065203786608351369109729439697878394587271686101960686567413494489055523139728947056856240785143835485227991695201953099747792514256779350709604299944747465240551355297542866873952742720644630309192238517493560254466241254445979532961955596156397615527864665735872042924131767467634754447256120235974838274269239737560531254945557411809677406312008373297199276364853304255332984125553452600694468670872155253198021214784184186475071266363119467617431916709376985533150585322066489952796469782495625514827873062084175517532900153510361773450972219466227407463164906780933516411821174408773719569477571363865182125941975372144729263416681842336906487837740026181893829341614832044358652075785220954931881171346253585244968286430867672653050340712607877890234184930463500418571094825151746813455674124272839313558799416435435193041419621300426444306821832121939463825775743710017290462590538956315273785310877791999303202791963857663441927119819478850367232113819816814678050447285046826508355008817146500331928985969874391286885074816117592114923634436218168599498113765429692682844724319834783048437749028077405256281005908684580463620447796334075997967492370578695229487206478570115318664522613272817385811056765262398374196958929766773536698903857627096982042318618622722713410839571941027126502413410726277485946770959653673156295826689980094949125619953800659220547502863904684828871026132334351618222654816627029069737848660842919818313682317412178648583500417893324214289850852624636533325547735647862150602702355808296269518277180800658206257156220589504369814194790470389530558540905780420285419891420524347023676205947516529216720473701306504893938781973289580810853612513580162853260114790554049903854184523586498023287159188568014218304401639881883947089055467318934602769890230530155974852657434987004638746817937442553172093546604832172538610387731525297477601955116821804543174266256635574450318268307031671864355259196906397371707636252530407934567066147198212846757237481929832371665344990053849073846274790440707363903407039959430789619288260019915318348967534702211097590337325815851244598709255586747612731416916883044349586140337242746325197575565059527090905956540604162235196605919123464918232944550618211076283076156537961898882465818288910456700483856989977883110849981239897739324251411943888486259141504813050192788018547661801900340044772709570249739236646995976615995682889935521303612191413408703344770650273069665384601986759648117270265187933034096140572389671244319519559917517852745602850726730162230972925121098783987678193355046571165205896913409187508939990757028691464186364352979221607829448523617396968978543410965579868634841222839866694704194579242843230334635747280070797601268268117266316341616138373871299352059616556927288607954226623851541587832357945136064085804135823366601824191389635943210417529107821224585550180846660634563054584557531690826638563396651978096107710133443692435386295679698438938090504161900191568443095016703085297854815267835601464828604018762900907341011426219005412209016038152322156542596319148080512656728994706895725684042933740010731092385725223151318073257680597390666796499685209233070463817744812754564013641477350414270135474903229396782601928148072990975341257881651809341683944929776224166862583588707778072225424781536357176060140852258166564379578864303938856407957002012084295399281641428049447143312450891183028148294878419942126992303815394890990794554798635256295561863015176900655425731206411709553758151640719780234445266751349370272469634163524008265892254009075683977775585551853266463770331975109223153897202355424013518470581703335163688413608395988749030472941072440055663680191642398281583007823401662531237324468570079824636156300177833929317822870634341079645242920406643297587157879882902450933582331354271402456050525547088780350771167990095546616531066056640854764450344008734622684086711773067129428785333303942709591198599457958084338271940578745359379368135633646184156838775277756147109153726956576025610816389314628804474856080465685633293192090816238448420483317643878076913623342868856811458368581367962931958836217128872335791453120651682969077438256925536212550335519788742707153194551047978440463542833592295233633765707233066212173799712004112782523238933639575600784924067346635145898059286128189280313336143541516083029234495828731825489023970975452212878221728279321083436976700471237537550407464723485984862263343254155816816662904174611193888479977005257216136660510766517069020512906291712642491581617807343988510927911258318231158547561951731562978201850631307206570129194907207879652361118971331285969303491254859835872556149636326349666575851593828705023964446116902401414539309348475280354295212562798168646858330745026500286000784094025821761868081605542093155852540892307535178213649534701272322562681658028387412232947075350101221618786861052503177595025386879684665654119628448062893156619598412967327289743248844064692861933360414752091284540018372222256718329546078582712805095948143895280504047039860994738476977892303135524136131972227091793206161363501019908037770250547503527244427473836300681197603372622657822709954814027302245272305660971472415310760573327280498478767269599346846305750341919119608744828365171417311033917637898546833922014606449080628329249063497152313180375555003788663667906899096814291260493213270393567067185973423358431915030690353096431891340187966490014585452945815933483326668172144444262541454946702671565155292981453370213122857899746164653996818929216756329863741953849834433173231970023261057192544396703699912896315061637913079658357573784182292999583178156756940656056979243429418860199502069761499070672879790885221224455137000025819445573756961594296632431942844632525635152172666067693537113664062234404957802694265211467391238107553390165229827216890663792162621220877787673487747759893291090043704931823984745006992025297970021255045896273048500104209467320347432977524064103209774720539215321382164466762106299977209990578263328935257386043262185060916052056647514472797169318269599491632984542267361596204093122241781345460473272922929008049051940774605418748146111241192885667834099483827920057523467021568880883924804093167126644419102695398974340957244384062710010632006825957633813423357975689483741889768832942172761482177681145121346753632598010332494797623608918998156437790522121087931319279723141065199192914968242179658917686804027518960649358463492672530359607132928359504996499331460576547739017274124009654740130677730565796353227210595229024053498326724185820055293500012169166633361556742662649221530494725389885662451989180500283187979460292580334917119847141847175722874664301204001126104723014758223012834718471194288014481372949551359302331507011768039488123866485743811541477496368157576862954045490028859728846807144919396338750449623243641863170119493279826715143107427272988106645422804995316607869937885245600007338220403923647623992276881153436552675808104878563418758305069447374287438439679652698849891467940600348355946773341264803989387208868166922642629824611699658578322158669279590089529897997235815359555143655196808148219801120021527454091832041991109346094967990527947883527062729442332186488644198029734596231701430407798865556760850633500570966881478597958976220753956882413429296963008307416552089615366766296657895951396169047021600098199104086885063380211261723812854996138074472061028480482659782052210621050484039621102001235224577726605802607537034195916274538774149567290244174103878489957194899351315411193635718659042839699119597733768388630432993226508152018163180886511052699002960221748037139774665966267186927416649138115972940417799243196541246323729825102297000800437699063100496800011033253583556414505002157899847102757187894628533442019239811176140339947621115928753881434126996782398330588147661556522542635511069929870313011238747391066420480988547918490076702689389281396692436197534465170186300220156547515271270050335210828069355840864617167177991956396790323877661720886390149909551711284129192970779214576417830777852975679262806986950094572269875868888828770949854703264619442599357430451397126903659868338957618959727284134565900499675771717156739919065192211654655303485346203873984829366831138925918517941178544656426417157699898731397911177108257148819359314909695795788012863243092432787563807641611673774448264744004632349623017118726326008927526422283764994225820064340131983639285183884448967831219177223198282579714775094677694976117772937087234075096984783848592448655053067003230069861638762635922677392608887829122290494564227147231672484025485598794626950003503946580012756160907305309994650251593396998875239145331599421072112116731788260186362290756076110105917808752819188128434858174693030708252540493568990550843374341577272214928239539779960430112908070003696376429974021838903455794220085076870862578931166091095210683357865847574841019454175484416147609154968555460237952066764643892387823681643003455934484029587445906892260998085463943867950583094992079690551797144907187308066279755100108493288127943504953793504306015189552315601192711359415877759797496430953126482118361013938066392905716590977714325511189167158767747049745432187940455697996080689976118615821952729303780189456939129074418972634347633007921847329418149141198288491478701763897328008076107792500411862136004378154161271161514242810401634129604385618734345317063483646483142339059926234723170359515934863726084777739493393603787128295395348044555534484644265435711351830525841485894011677423009411679706302359266917091470696285998498916207027149211847840983769974785249755896139143302277574736568741656475899073154916333978847210713264709919685315005839147412797951522094399618310563430595867790544030304665096507399034149424650813467230975151765088417482494803800532522361803528308420808884954057847777471610252091205961169906986392676715967728329115861456996129830895179574029424575780456399787469982364541271957535050273743471103603313852184484522534162057839820706565569054712918114871179702649091162251632421779806764526341052054039929608004025698127261824371788631389603028429747291299534383460446597985297604271751156346010826124507164738493665529467440339094817952409944504415823303638150145646079680065298001272251918903275701778475939617059111407632273152376316105082754973984435841070075595825214404684909328765749415651151527408004477838603460700430598265176319098351128124751378581096276190779564873870662987433277375805001374284371476241931905390477029898607045201431622722497828320303785559532608223795029328905149408950968486594658573352267633667109295804162640828902841320443358346030085076434369904012302360098598605142468477199471111813877449759198495613762722279169511386168711207444585285129323182007523553026581617860580304717284550203098377131492721696738558184336339376571229503665945934406590952947743622122319077318805522058940297375043718485396265239869989114034876923037534764571308087543737498489185810952501268455831924998523182354851430025912582560303061559595743700307433346770675741439741084351234172287980734361471764466868227787419451141008666456595850885169139292455983100089946261618074693073902828363898870500828466016567999441585534925967432239354790047230879928492473153582963161957485329490896849383320014552420519077347604461169630028247539890592047172286073649292274423167951252390932015132214271848127699105866112695340888101332266834109348664738666043880696178854306390350197577244850377872419851776156760049712781140278916644744989293376465110767184414285494434345502766316698270304391721361098405767174601124457110132845094668518413371668656167294288779989606742326561056924012848874750537940210485022540064351829158149917188817605847894985023179713046140881290896735131140413737900260431176717311663874735691154544036855430100629964423858734029007645573253820629246054254131013244130779084134929897587423165413628063854806283445382582727923720930852092450659594609188394725291612247012564801567190468292358952263705681195093987047856935852990490958854091567419960396766952471552876206866943436575605998187883783821979091190451305196226848839484323710580329228059433041052735237228937262901757656416947782240013864858146703480410836463594274554187181741509932288131505993850231740799712021826654693826761197740292805633759543215793344918488967530714305641103776332485010892478539889310954615139048776446789873993505227545261067663868700439613429393340860003355589132824105849863152746934854971160478510938509359821638009695694061592853064716777269484838452733490821472920762118934211486009077590411378357816559529097488358683897385913926627510047019786341706391440949697789451553751007042912439853896806475829516165105747940021481234411131400107564464751972553978665154590277042110284147678396616429890591715582077219680208221627843954486194145524333786872005308287794086816519741521453105973414954109170176549461265937235271593575408139227729000267001115941159478836452251812096301741188026608271745336603237112836502994957895780655778817926146202730948937343793447819829890808105821802242462732531042008586136348619379710933012582432537453765819454161052554579228981105323206576160390144218923211242392870679610832218988057060100905951756040431944595185778819638436951469344169321943695006596553613247566292227710522018393898729663405339663643366412136167763615354026406669452827575547206600557430117724925948739903271461457712046538467273557218647001614643826884370362363865945126117857708968706791655181480762880940080968066882484508125470708727234128655630850598034957072458205025463508053145931522096997625454638439523084038618986193972696419527000129128153984311226255831882352788158623368573792250736984683279721195015868358907391722366269369968510933417168358400750717675931842269166415500885547310395979709575018825625302046170331868744337978870906344851584827378610178647972089768792007774601570644023725594852600282615689354306782951743567951894173505017634555081572181443048029184410342192539060094466354057603803600024163138613720069315219415716635986755103196572004502811330965510137236071048345720505424200922845937759475537879642736848378819138451769740679106395615529287036073705101017944722822801796613706623060893631769683658407030664618766500046737780653414129324954044751719699289991570174540419375761413387404066641987184242329671974320779555504757354735584497521879564245322375412655391302954992976279427217897062589865433893356215362827414445129583250668566536153162486339461860495088364922284486510782415162803500357941331048262029392902416620673038760336876592264138068600421368792879421306560198011158938318412432174262750803752103895914209026336349989084466015744464721498191530760805924708279249593090745159522418614437301156500350914431921228416435692038181330145679544536070695536932539485698906757579999749554105669486189084619749246871474337800952405952659110706299955609527910968352002810103357277158877394003818114474161236180978279027485836253048994658819766204542740599599846931576775054443109377809632471905578572639196455196334551583261862194185669842079508418413594238104614675861443301211242885871928466521836322817640407976110325759285728375294075950622047645338865666155042467938038904421837136733730762213698586561727258911547061874600159600341974387059079486904831823414723031598268698334443576480456126170686972500437152195942396773958004895457496701190279446447829029617973594622524461820511399752372148473786351490310677368870887674461538308352688987813469522049967758395117378387903821017712740075479195248298375133665840555487980254789949358764782517039350599279029751925050977543031453969059747978112140378601468761634519460474441859270256747222702043168870724985462181410371606919100889277405218007002244979258156591734912414651772172657338725600922173618308739499257444239057155931295163208105239414593903271352213910784332679131433108583832509750669620764913267749063265183612430169054549196788152304531686956666211820416697468729158317620668540257488262804276268737300015715144920112088999073378868714786921226200319937721202320261106039714075441246278494357021022912141192371831549328990244888462475419902667512381514200973745898686212397986156420977555441413329137298843133403637500708270646709994110277863231113232230209014234324931155153630106347913431728113975223483594049861397715516850451147565761785892820561544223992610475664790454648465302345286167013403464073265099720449010439362393942690281464310774331198395970259735528450347657876890119476631968943067634739356353224096447907185405760286278594758421736709813189239738292921638304307246598835214864699258488774489562363167531249142312255599649882328767427632832377476852694806888104007893314856105177483220084193017210142636620019344386364484281864813856136287693346845450556136608202937826652037499587072295920286669962538275254457053459829041430763279610373512163683319508971290188357640037756292974740060160616865635301748291193967789577800863406141094581203527140780812999392636209905369384731202817244889032072099079608828069932052760392673143346967244425910828418131120620792709057360261044447371102564373609703149393745007810857868058857801686446113601278818521045314547226988202941223069512836220980214500180750441812381354597829507755352615714400947941152979357403251006969223677817743934704477873323028403451849330075444603471994292546774037667981407532522255531569215513283135958514064069856246856068662043719190438545220013302159955595503331416995653771181320676434151400158386318676974360556138666801747920199336106374866657341498142208653884842213713193545112788859186758215916918941937329466060492526765154520558140618652481516988579219682191676948123802399297931829514023635561612503277763671124773771633940377716879235497261516243320046215809596752304845199862274782972600841454252290109648927183885791280597688911569889414078634289462962949414456020699819135002194183772023584825867321025553283684539750475457743720259663330109837540339624324796745207466433130130274988091151386343398367855506690748693330717837644487991232883520948503283431815135329841760715656399093883786962941887925729410479053432272791558819027537264700796693608469243348618842900905412575053828536284571130174338348490621148424953819678880210234288327894134023866898432022340982608213523592278177527300546159742636907982589047198737616319084947127761397623112983625366092580821709021382128013845529763380714248763138771962258637982268285607423747030469317968709345211795135485533033285372059456873018293745899926289618073612818884284977566386553383712932896842267117602666836377904098627936299178755554921841874730428234552009145385963434323048072160720488258666722866553928523978480240549628410866648132079193220082306180663305970422549730166284448936726366581899141274975909349814940387785166015605883396092133869416800470330041719069050524189422280748800040794701344381543879552531732639760242324307278980001166814559377829590013484181815878564714239792410987124166951027798826184979404182153470654849100347891107834632810860146268293214794736060892963913108726411690282449231137793786696764254087505730237246258731644953731855517765951645512203984623804696080775412931933963266012595313268283449296244472799242543240075145423972798755986614785791886091245543131795391265298921884350520626342645184608474250668173937369587550868084989035956332568828900870984737572243357983986461595602504337950072328893377236390936683525774995641096656169609689386569198137584145557262546151027515853971661790346104910827525973142732532238189188703551437692908174339341072374275702318579292018566702214634742095591416005980544623116377145194789278258075436954358499180657663583212421573440512182462014350489004245096003778297536991234090986817850494016297372914093766269856950922476160560348604138937569223742642028783221336373377521054780094473752674937653817398074649081774317434855108098504620488513106023196945733013550426700536860515404884069095521944629968076762329458658309230748384547789005100090546261755231052753784999668422054601009146012157634955073137009629486311250323393302166908720070690374794992194123412547343209435673268622314479809988374001135779619528779316282073273064479131699481329851483131726988867548805198671056157024859256908645622765589000920040810525092787357799245624441872862113833908862903611521325928733488838351502199715486308009611750599861647386441988247409286336106362304890845260460406708837713916081723736569365496444031216108563778010272753437224067717508244374076657095518338153600332215439681502130417200553208381411099756305060956329303251378780496821731164422337569153431195369377383510841639858428044895132547330170163364616376664597885279406196430019502665615933762294766339124615356132266612142192153086540146953887586190312850803885907482578114818310250981227444494202301129606623858607656711556729981847523287943507363956284682210722616298090293747656569888775763667466480417037166876903930505811828598102820556205639810907521346309714221500302180793494312320063260012976161465034521478477961509450492843134241297539587584411437905500907797372089148634754769521276167278598733865298014396544144455243189914399494207539241179197383386927384462652785418940052004956839751618104386988945089006299468488895324182043706824698235976936193312966339525953748646333409643361548175082801751358774513988207720501158146135730799338221451945638427088737171863231731868838809654158619025271235553011932243661133271537536776715904743132753976332582986554313205671547807039056694125805192793919231327707918687866905075091730258791266776140162187737860048033729434686152125049749899594395050015148761338284115453276411325235569532283781982347963672451808986942406330698802661625244076277622129014685851056452763640615464237403580940982353035634364904930599956083157627206194246262749260444228512036238846069398706183457326141596834888911402586814474959116909477564929644536459117813174657869225684595164797855174852657054884727648192638289825424346498023175752262684446709206284869883025428824738172069747406114218779947772832956128206905608017564164830510295461871454629827473430989861715918907985728502370187195298171123457348039547693602017289644766221430544535939999274849861995275437395109489748397193595989829951733850346920797443688589573567536434898443575000939855098238361998362141278083018718218780460900602393077815697744413777306363858266666558930603130978463415887079877743607254972297371709774793349219133480687776298393550762966725466524218785882345256930363487691398849372278773136354682499513112229748168405133382035087242604734944513781510584790863159260454302343402074424509009163087457434912056853322560123058968946497106676671525848586488665399056112367764872562257166993809762635574630202997920924445568375901901605209700187516950202294565620065677175883651593522415752946960427663406224455266839631881776624003330564756643208632445315625578448840454121331206554396510865262406685332123496256069001483518400899533452114034152585899946170780513309051370444778671633902963151730258760543236971340211381187911908889012067822173593143934844322766070634273603498094434407260662426156583386544848672470000635603957041604864316543667359922574612505877613405507239810264309729658646911040683677464296636547794468887231155069263152919480971472020151874510631075820868180677627091810550338763350686493381456206865468604040587395894462285228554340601176104364930017872536591979780497969109479626866796746260699450472458711286124828236363813542323750001857426584892033667041428815347632057446184559250865841823250273687162590364965505112777065475359490916288606783856338106100763283385235453937876408988104012464290723306684438815451276959956243876494292997868634280086641593521741134600188054172701028657527563557405929028108543123782242612488470892816669106294277770206564638787541016701620282320515701580246255134001032280341424307327354920274657020273724692318931001305786388597498316552245025798728831572345977547360455207074397775246320131499683856829645529165049289587573448528124613455793796711689843613507356540575948099296757235448861197403797790742243886498255895122328437497090358933677647770454121530978023301041090858398616059387556047638027415412567600100670230743618422285945656723785049868773456153358596875913554539503971304307526055913048647270893397256236713448598176376918204138860445815693216642888078496217933425814627754414397878358796862115871203103677734022095821705268226116210534902718904771572858475992546343546592236602074594816577087759940613875324338290576525807063508360390682119870275211599997686087979556051946352965913291658572708899703741057621734953092640689853708931152552004548533567774772351033438706724656338545286420395851045176282432020059642806369920063485010610797045274701248445271571980944203264977293677167178157118009192622961843147241174599916711445659675037414505196447836298115897921475771645362022058383067923425069986540738749863193224505272935089263282066615951932185021579553484564577143315437690193266342549918429846244463383610211396819862050640291798571456207581794450400676701981153316936112242805250373493655593060348394318455485406946818021347362820607688653525104608349635760964162758995307746014961562581241449675194304930964458641521951472528200189435882761019256767783678618171668858356058309481028609864095303943268448868901778377467929330994747320629483729433146327533131996288261004656496770086362988199484768250273946045290156298183015910734387056371466596902992710541228103336869451750458136821511975819872237886202711649421711041939191454400720385797724571746804443464790623416150998135808613109987946271977766318892803764257888996325215794385957629641663753396060258059617621554706408004059177287482036754679455962765291105969360750852838359457718651372481488789960147886473833707514952162657111042141954165651861083729857562898032692727399388912926906864982751820004488011338855984255044216337170813782566321434257443033086353308931675332949226448213042819921906631127089345096096840915628000671067438532620953632535417967141324417169487436509070918790376765942641306361322076990595017669123366340627068679574834440302517581517294507836510602502751456819341688479481200562699083431439325830353325699015411968374047677151623820988800746913507293702369889828181571558139420247971213549082391050949722769740610817813147176015991629212532037042715710893692435305152887492048076940609813339224623340083469605288737348588184751577433159510550520109147539429276056841435618752063983287906586197652314713904133786890686660242032284739506413301456600333753943752618137446882740148861726973081956883715815126088697507706254823165731890118492074494147025881233328508911765869488396602059852255825693606343341883341499370962871954319121287078576744805723115925909580458385669675126538376441758863703143402310509297466207563599202263982349990032697825220978501822003230350339956465353432593898545781469140662162960814208596669703741876562950043174413761242414279942125602398358649732253404688485820424676898662878533393156939731240392840919181314094510216234588635219596894271541373136235396182936167855115537546400009497822765268744025058315716257142469594682934519521501396275265854466419192456831989375808811905404632080109000959059737236729069585501064181354269224428053555426093478979418125185347469303105927204595609261341028806285475971761165157268288232186197465096940281999190654915292917017941580496473175543596329515601028185204259736071014244576065231370378085600134985608640326436290139017464324633166201453275468815992289035761612338182846793420076289343460796141347863421586008206968049932436154329239437572945205472903765141133948394646076000393807257309619956029404184505692326009087618912311469777075536113893776296787277115345431467936019457301802507999651353340006203805493816828293660834416501942228477689493693950549928393555184612510339185175871904146706901205578422284626042633394041609789707525536434692864039700259092955812396575181875001889319852273981568540331302055224294733016942833294226969654820913443389108513368035244981287313319973416473801553342142080260805094610318830013709475071217609470404741202392665548647446729815685242324741511710530152323996448728856383573080572781816716957063169620173081842072116092864904629964677684240425696196158459924220615145079974408880711975788709003750747829985995475828294881424873093392504761598691380822499404492530208208360873289175024781486573417769305852170428390411100485935046969015336667312033068459393730355862494162756611163910719431657299790677178241071937033035074708701688755183748958019698549303573341709290727349698858920941748224016838543043893705785741873373341493644392234719475065887086124771203200095751425844341517177921874894136886004428366041148922825138287322944452889797896049486725472680527304223485871187145328286625173981108514909823578014620848038504493255450977512072207422423027542373491243961722201644827322536252915732403672601993799425228876707249092022817996401703023669416531385005490851992056790737684331669112497759945699896523827854629778504386555568163307878889667099435769702425401473027612132042100056910371008962585034356083322500420470151197313954754959511308569122325125805546819878712842876254720655304627533217442961464389942167451294948946546476977287545961012415470590272934209559612986886275800378544885633698769799143038624600355413158374945606687888238531446158078612948283966269268321178718882157276147553896228442666395690799730887835110115446532815919491894649636389146707516889741766524278833097571654107778149303245542376886170703990501568613128256951178942840356349504475477641563445689902784018481989209781839870242971047145873997619338110719107275413699877960266105706884701906315170746289816537881691358922059931613407898613144339957854307990624898600636793010619922652625316458014192201428318622372127897428841496923091619143722861138607204325437836496378874632320153047544766332292961063439300845675578524757005715846433036753727984624166242049569956776413655230362469875096856677865812643982304407347937264181987264734250601892789066903023221021530615964774247786279728950747629039268189687627713085685760166127459609971465827986876178471689205298745792662200528822134567419343408171100801391282381209738863881040389525269150709354861203486031145811871649219953941064046162926376071438730675450223695388756356687616079636981208539855487499077840239494854613698459594558938936521861957376408288449426216706995243717655416657202056892872044092136582442009718697528020411670117886328604930396963992192956371093520556620562949383539224884783132607895113853604107112716077026696745659036952287460290863732878345973506709328662024774197780600622112802368199752838746643225017535966718260215360671491603206084449848205336125959304955006310455283888104452639204342436981325472130205161716649842904142311744943839074321297063170923681190580119247409134911169544430138836284928485739483319899229857814610920156337328746254395959693627147816750921031251488882193440384075317147433083133688643873362938252031946225041033450373457975650849919727379450325040696211285491788776254400745470820092112565241636489725072819717732310135247008995311575947434845609088673266948025397611933632558018362277102562588328687951284146129814109656241781740064390856155906510266970395104470813611759827971652860049300256808216356138561963741819913042298390000320831670791505406857560919452293774550694067010615579950770486394261370351516930444984489534558853655136112338252950846111876616021165443824266809571505524439658402992618323969192360075530338771552974621650688517364737494244929671753715235709500534086282874423975308375044633626233352139405973331699281447168750765531845711727952284430878898810292299299427497702218234752205064808049063600213362199248843697492502468195777399895048280407072004943264358416627466481871176661989888753741564294630592007889807238797478397629085002044816000041468635253162210333139205417799110533868236763823669295417786168395655810837488867506772193205334136348097722509796086920333177148782891041914618477791498449285188713752002372071177042720688288011040301122293627651259778987014566125684179687754626205082457144924904213735941239722781382405508065530912023037720874381651187821731354194160886684481952523527137589968122908040862171381326100813071357760134121563044200157861647286803317928650318480237542837841020138247391716694482497261262818804630435959267867305532524959265209169018869980963670344079376438450377838945594917716163984980113746786815242482904804296681063051797203841272488337574059778479118446619864430687022006432839933158017319873539283119177534964272110196311281359175421355813715146262291276252004596955650655447146764144140982674197561519937233208392356560145390917323829934111756975162194154434494544816724998312488221150387131179296030379043996806623406260460518988710704620489111547239488187370648166108743606402055273337435694424895723905471842113692978311764985761307860659455911826016693620336039030505975222868334767041409724408018428380707183546965268941860446942992542689776864332863293134879945598638154385655736143960479644246582596215936885347457298135981885114530029837231540222562167635942079380187793186442612706631254532172027135244219959723945144901361796789976821000306359435373608098462550107631434665261573894113163096782662152371020266404736585847355470243279630533758765197218946383550536668434048223298421265886251055352006905576734788501949273414743379170842937736011843440347300618038386195852708078359937860064101342676701748940020651060467322330892519219547641776639010244162818650669781498086733555240142000780494137740295492840121411647208331403325741029456717883548894258284758476728395586100525098111160350737424942908485783761660236972433107680821136871615029415080212541964964392323294780637446836413958678532774767670543930127680958335058478860496863281330608576342844492293671385210510446552811023956009606344363596487694700353111422241915287325762060574726956121010588236931492896882718611539057310024234027797134692838734843101447697816768228896182501013650828072865913961804055070040490542234453031429369515023113628174555454523991990092496054259474673964779893576795124221479077942992724092390712147397314677906998908674009241559948872473788990493734747134587315660670536555054174960704017097207547213337360717932300283412521992697903597638167315896594945543529264507724880796029681277381343001429165808403363549202792191976364336293258847447211719938813857956147900711551357388492513439349285141903890544267773215107220125018221931629077276415999414998743832851762446822236624430354481205133623579211134869796205706057296433187437586824080067256709463097939070312953610841645051019119958672072105452922155959751247892309322857672347826546073980644237717915565244395103027267982416477453938456441832713781356597609223529577872301749194248876312984024728710413523287639872490201441347931374125263272545788158939218370433320458470053016388500378430989572605691338927438958157929295160005896752410124195922232629402285747961121077635485930364508309434339966418199164319061897375323867183345302251074714152053779755495469904760952179720879857036783232843849384262542153975011304564997178259159089962183446279395355804189496466768627422998498713138402882927277613533368765065428329149220658301017793056907916714004634175758106159418877343035555908440927561836606594985704754289268944033690622065953550912988759540535087643998868524204407521802185452146551908781784627955904967137329317664120865976732544081085181751745049245622855917836658315620127221554226110764003615299945141264161047922231606725461274976518988555466547016551266239453118703068045992272051095354047976860331606200302627964090065958842664240415148355668095945982479648331056465115879239714218164119789965228869420936379685693256697379791379574708820054501374941528095608252663990496098406575845411336518666239053682061900463696175381762849061457216264944549516708822453637446222557072620846336436069551919122881628662555999513883004699392429120537086781246577470671551019858807377812862649541791514814065094906871020300435144038961463909666731827589928546287771045271030825974209081527038642531307813998489056485128033449951646490659238430017625316652182584310200674777321900735291477830145480689945079885094421177413602188881006903788696313874209495482960449104205249417345122324232008941223254300108402650386572571520535986332553542399414287610158812887870641075636616075714018066132459740699329382398622629276827741368240572605885859417427723904685550965269131762444674317563509502392975913190856532147714990525534390096737553223484082234785101457944537428475715225606278282008026743846313905675024424083419231161719941280856633980485176257295346541188382350287580436425548876594440432947919423688451966316083428239401239330637585683444486705688581583829816984821872282663348960933415382361853167376491647158716412689175597543321181294796939869374488601021883423194916826743285409078316883515312543587209256368862863389850143938960705898042634554541491193338042027595413982144215076024854775624288674403153789527810761482136390707108273959721658330770494485415217213653957964192048272506570611244378519883271160752671937817566999939168058232061472872238444851947671229775305182274809417054829005105507261236614802893989430445981006279897462670790595255243479758249740893355430769667814943122140021411082677802586750606127497712164433284620171267038917568964515379615880621182206265402325185586746026481291158430959922399152896810297945510968774217238139729310840054876750622769801526245949185879934648404671043799164144361877072917942792684958831615456001921366700370270063823727584507130799223001495701085594842005226074788421523445243471023445127235153408458505943159344581058850787471748368552045316686777330456786269443355264261487625820838738115891428590584938243883966489510226434059223901662414396608115883027081523802420441223476818302615194293353280991464622714907972595576320774579378393070813964177668783870921113585039713756294436862832778940645662386837575790348996614623063543968738744942461830105627869981450688303351533189683805969106176683904033642686024827128367729994033985132539486410727728952931285215334679039970701346253159758523398109386835275429797055571381300859650425722181371850207640369406366264707525505763584195469698774211651765436616439796776617973883747874335642205762792333006982703410083074626958101822294030285850431344741255036555652976091056696033638012656093673607189722056491102231257830365635393942389609966081897089219004233048796599351766185917591447866503737073925966945278378853637655683998018659535295856160224551342116046277901078409463959356728168323923133328340779287312093492634283952489327099256195909137837087723285218887833750576540313650308981598061425381443765955658300750696150447550737047215763945794970099828543422790093963475299835034351611036906146431995500792099016205428894970039319805585721345048633325842025629774959928739333965798629958192688561113391605581594369260969680875059335964143007493102552446709608429781491002284590616322485585824045712171575868343570045873277820646312721869344165159544530171303342353706880638389917870445377056229090595363408956122743393876347974528448081719427280799487081376861159639526191336576703755487282751808238385925484537328711495908402735131754874287759084805052903408910926281184371355883753047706740812115534418831680082436219369509713674775902269369463693847844856297683284560590520383387969539894966812700972574677975152940220387944152730122048515535897392086343444684296474610276281079061603730565527784128134927207365328074498898477147679252934321166296561471236077800893217842359382086683066940829419828957541250204727606181242859693200057578925355294246953352946964699825620482900902499952130204956941949286274141869987378237886035104557633528291764331321720841926358670038217873089104100625095889163161783547345473872728413703107289212066929202940731066838957965543050709166302739308822913609581372543859129850790351896313521783759439379764849601771093748523009611954345547319328468079065093083528234457114893216501461764661077630404313691706902376840504890822925263810155131372742893619671079024535928980272063135064929579558323038561905345524822687233405980388819367742618876028794498094991712911947146234891925037688619562955468541203495651993243188249979399099806718920743342011511483119399218413361835717323246419047219251097679796941899730357386846722000056863209017387869563934609547171502376049273568045272494254018029588968517775090449447366848087882212199120617392753287254573536056232401669328538697849210353797019645525094727630862455978507297631807778425764654832263636356293552843857631430129895919279229902653667910007867286719466426152671074899587128544320051928867484234142565133934860070541416235352653170027961480615807199781869269847242481196151303365023002576632656394374937357811271036720579900685684620529577228801906217831318887283040726213712228097979081176923732753808580425316787402004005409589216234804234460275256191292544823326161293421026277542574348445172320417037036568597981048910860004892365132610334624498857564537523605451275966260082704318594913439570719217683070962311024466345667124314427224197005411613072777447306479232295883391007719001493549240983351235713856136715491919612411451446401012496496392433854716674452484642598707380121344577391530369416409038071129391879221988726449701603678309242970609707316442446761487935212285205464638358149781922542595705753723046409796117591783037886882923969842525398900249714797291494041230001283972460647461356257171366995088970852310487392491750864147805643518072480197126027468151444640667463235540187654238463176348132643613413368452440975584639409631566225871369677050705780013452198992840180699845342259711424449163181449692077984741660133830766528007106416539061532288788017654931274727570291106387394931872121571074278950097186794978451259662536475421310689635187893404816136361194627452174934260993063383355243234931275850844095332732951358457797706706086125216306296683811890582045690327599447415508720018888754970437687356832773493849988382580109022585861263531789588178651528586025195728553918054048010122314288391252495182435546355613760570423032783825009776419455271324230624620495013326520019086494223095966141354830271560356849931527360933990405197924927683185401285161028745047678174802383137101363904973826055414692463130195894200543876133863287084890429057699892069527021689962267886864196682260913239724053854073788895375065317020558254577992037529414967257987256228066742534649109273587346107558089140392879253838883344774697173026636463046926107550825817348256009390096530680231035593862704417827549645194373845058110172940849727314436842998010177702354300412599460610887255298228432038663105544621394593144505112256984925774318097093626686762921733986794116245514021326816904216506332414883969692773705273305298849101563919790075714881675505073082118933431137180853180477576248666617548477891258807993536490368526315677893533211982038922201189961905736079795280550789406989849671237553900257455734337825761471722838260482799147370126806574705291432541764908325888310578454990454189090664176712821940553917908162355826980150353668941815431776432162799197027692405446186616536601283515406883541920946698211952979758436401394024424749297607839299659804622060362802222744671072358793115464502762258767845143550267000134787991220390580865929757193156577966441432015109586300058188502169767228664832501592383782245583160835647701928838326054618272151207043948977346082442823240956294680097725301043247981078393572443434665301728571418618209924636058798671969585872897507378089098431942635946567543596570291499143778230104874743323560025851791493139524738611163155605475571424428185518725414834551387256904702260153202659444596193212401332675228290539566979671851914509161147765900045517950765878210139936577920506103343130182902722722573079059526346457145357906601321477823597574773513970519499088722809562971264274919862141444119507095467825012502927718852737241417466858454911058383135238310868306560097386317355551787722068902717608244095492116347191212000727760566246948398376248101149873907458888284959028865349494080442870047956541560699801848005935013282220623626139267544116130663928654566301524428201898845837425035809816661935702943537902607929669799195289274589061322567514018883037437642817655823727084243491923196562054790410739086790752720189310389691814310182201632488954583278313708030564832198976540980284057776813398983046205952309611537258974303711487357808991487949788432890318269838060715437017102796769988116468353067072541259333064798890786194795555021650777562062954723728881224037727841229370115191186854640275189859852266632587314941215211149242432076575540026952406280146149167324228244089873930863597078816601246038954720120789365108973391578691754636862354943527106255776876528851087577556384147136168367625552896402599514417481562112396254032737704892525180494127381231254941578672109034547573358810811952108188776576415811921285791791781441272933269970168813187542604298038443662120194934643167314583544037613327382019359575404479086124138493225706129749188665019837701152603046573900160904851027863315508363939827456942405469118948849362356482963910029078518053051587706974410110629827926402021618787134720683946142503051584010701354077278068313497401635373927407297807441044505226667575846599222120709526435401477097427741953836623080558928317709027883830357751470724686058509834244503625332703167368848683105311359824121325923138362019850691110200928033352739683783564277139099191000735439044439858417684500587994442209597761780553716792283951440355453151314689629879454089746511465819415947249524616692342926953391104691087955614420417928366715369153287642281335184812024057178332906751512304530576523884892817920694791419967113702248697448705000817916661993031952037103206804989054531723197979647317533759622169664075653537206111589572534722013241359679019709066469528778042018701094034570638835796851799407161375323129707196534289884213482572351612536888867998708493006236932532761758779333099484866506233912689410993471740173067914010938271697623084552055092536240032247223696276736511396245313874916648019293581426549144645805990187598705690630463879949516187069124724272299178174616611299496459899227819411798136402903603586708457704018475189995977945977610802887827200193399019542358588500078182085172477315202124508040937863623788894616569468430433811820612441380014996408751654077447772652350072997622294303680444590066507294490842247774670124220391569494376284924923375274250316152820846447512289533707465866868615812509156802339223184532725642987515992571712099325796151835238091496236821540900823130513933525036391244703007636055710385611177280533896543258734431762261608727454256199356817785508439659158257941431850706862197256010686914240310538852287553156431678690339110583724167644427354229366112659146874867937823839407892844638309785018392009409681527607327346900473489627535340553785494186919019870155346407935042068069112345112710047934267650846606300420316260865917853859252942601952454332676753403623896358010385556916799938300699299954108961337008902791797025853012029408377353473617219665835886156129051567973023969526223745368254719675981870698491558159726141494371579230992076450161648556810117206005804651228856172622154148061996192246496599651022687580484429393496985826459256595421465220555374399967939205481227496367840674521410971777803191344267456532325757627397623327331800649140691354420655998151679758949613551823161556376205959977291316151100782614897972664683295674044095741575632442849631812068114301519907771488120285442861245339864158131358733556517546840646252282957060815652635699842364158487126368298781571557135359655895180883761432548583281507927339167625311116594273594644152881130197818440116995932227029430207568116386801214073494248074816195203587902664712318599205374660504159762332609657541112700563149792183226548082897398235386227247263564274312462556587723302520413367289269586252317542195504421700350802668582362197526408225208802365922379318625743246660939015652969228089777958551167677048815100296393812120060536290723229841417079010905561473765187715910245408222602515955865260782408019627134708830263376779090557327675132424203261818883358622942334193474952894633253136344650426176984717666617494838826444430675094667158295673137320717027650318713763346129121993160942023674128680198948399881700994144250134696713619113969256937212091143714860091602884405773766368064550457311132676285030210549642991056736858148236652169822242914181022285298888359935136037722040102707461595974635806266467556495951266197127878385506737577678726833382666745483473158588600496660759279340236951168590005107636428165415843862855242384526687464760788056305806656451299974767311568922604932950359936282236869702008317538295901995217637724960518775454389866497603869498417024241582795489656932099577748444654451916156104339980732385729516142622785869126357862164050852744227162193540860223008875541919180874009032181722037633846185707683174685877113076582272864736138533789948551315046412827114432287989163943701529137297662558326733699056772394789269241284416179584369735379327367066169954880640238351522735266973310996765123338833594255283856922727816550560923404216302804810958091007672955480505437418889245645967818213035747688422378527265141640469235959693341576552762353283720722183464654919343144070325499919481933301022838016565005786986095904742619097526374456676610450505654311629413079586523760513179618675523292964737865891382607406271199874871200366153913253877883722112323972653127089693859572632897728462212488568543922426581463912289973031040528294755139342247877803551896431456475016065148306798306320968455634688133079120894043668787401873115017228641992801025003494929233377818964011422991568461619108530062606103133630510422251684784962835864905035140291264680939430286604316008130717423630042746536122443533809139516392308385242369325694606946384138958314433418674706336456673570776240581111555176420201004142893614865276511288518664310009423943782155073665694636812170809053864329698825177143063450451947500743594050045073783543936567867914400107274734019799438431558076549268960689126016776010595655921453202525635763887728940350384371852827545908201235420872016228211930135846299628884846820267652046516406205264342261675079188980675608974325363234561787870200990476144496647874133580821545021459222038099781678056261503426032230345208889849625601234146970238452743944290021998872655583205702463886854489216572020296169243932516222544218959081967477209008416023070631042815831722195505986858267605628907481380457419265184369808616594282207506955920124050036245930798245761747264164847101254163576942033557083959971359243384738313910361904805301422679814922885146692364544481651630611916122325732796618106554099556703236072378814398697462650950190060105321683136697367430531997774036164442713595636854479183411733117797831026533627410182863364174415166948013880469828278089098659792945343911773194139981684642880544896706942653696789211384171111900018665045689617487678706427206827812337701988403315765654207513763012286344316325648150323452756595474985887775543773330257175862521807022207549518631253535516387019514231947373195460168464255575366992418821003073304001704428343850049144742222519982268535728067386291996149065110498689457223908569818892548404024056205229150199991741711831922513815143061059619134154713187001274374413858226634107324378054321083081567378462124004905306386957773407574824784576348849602531015586229269815045338860043407827324609185215765126858195898821682652869577520308459600839104508702920549073691264154380198523837054396198189329362916098563307683390881424901486763087442541452093570729856760251205666765301428402269656832975472164656848755772120611904677875603007287957685541358968347936130277582092138406943840013877756259275449194839276701617164417326481023377659286644770298939825460356258321342984969055181030730451165802850788642057419947321657265075210697460516000588108683344976730340456456308372776029443774697389409651490211666831181178781766597736864849256218529035168330047308005484779008609839418499701098852424654000659905348222613199128283161854329105328904693404261727663748713631523123247768548664784843397605554063972636589527483137132202709016702428041391438367694851061217487239657901851791459538740443057236330560763524796092887651581388567248282362569562664152634645635171463878586429958623402334917559262348393822485561013423603467948642505171392246130845394622992600961293022848190609078232720341158636768773535531769525491223647904595592389696957396369998763021703324287977274288289341693063392375579437049126190035125223264112265416637727708436464331620087023773179063357635233936893534695357020578963654562059976202286414592732557329229410527739468362983983528765154856086550047745769930576133334332704344386370516252323326355702857593358838532429992441437182168826362894674354556795722587421580927349583413556979104383680899968470434094630203766186692164344187010672051416565550989355146337026747396760504410366670365653646567793819120702379470979939299070201239365398166859822149454591509516017003837566161776165653367529064557259810547842101628716698485723292968638135686235736108341664507086919160994757302310899408620297246981853256045522203756676907269857245839129907077714879847031862230651966945625591465546584593464534047210459484955774242989069115535443545318253938222752932030677967223838464406644209375313278725358716647397243772488593585365114842568279923218322657959125142337559531449026910992988458249813716170629613919024122224234602514950930188279542347159429571763770228351482684850082315687971787694813116013635917731660872729170551076410793937444440320866183277782878018755563192198952023422830113418413623101181496889377884640663344651652474752890360669489179917874133465444825247042847394410416021940440323594844708938364922164714739823382024579951387362372846043084766911728432482015918109016831399321894415830918938225696140993579966871969187121161862493934509787449211261515029837754307537327948101610092334619403251759476071526537443344154685174932804567886794090302827459863570860319818237453312184554982197452117146061961726156681372617204498857746099880833177029745217539495659554917259363006430896766794211074846287412491134937895481928838026530597988364129305951563842540180225002409875412707826128608805627521111114993963794064925897175189897719674084680990273313357335133534429250411174814401544429119135828460834997550248774693875734890604985444226103416227623985200137602815449369608411630941630245878386989620286968630361510336235119778639494068528308823717032501847662493588675973823842746427827799060858234709358771266265512207311151344322308652143170006123030305407979576989512340189792521531825556843827718821907763773873834169602704698359387173675760027441723398389209269951009742467572561348253644395862196833573040227201565553931013118566822860581483005648731533669865171125534776546348860201970524136643779531234295205720501359600559363008409039628730125013470912937246047234471797265133689727653010845474912872706385845530188430636770225001748409034165093363374643596640242811005648921951851646507565965228078001896804998809210519635805416303580506360105855618616967164839446944626652729277864632544558691151623487588277488886073352588640230263739791925608413501190259320215178796369334900638676207606568816300282810786250369844484123879845752537627857400693264627869775203673586351106351827334743282401869234039940795553120067189991293569742693315943892104001692282323563391121063331359463336425149296676364898225681467561245398358041671751720260610777465241068303939932218460120388903978776115065419256610157379023848273671919408676310003418581890616414071498996144260003325191029477998065443552153709239649029520454850767861828490520750038421306185882201190042188262869001174936491172561293645347676016847709642462010197421708007266601873328197896555229404364221644033257201608308529091461796904673820383192960742247519919626104358847015813509623183585096986892209454313375469738636765794705164053333198904277915478899650914511735806900590180542934683563764040505571328139311577255016565450994312038420905129185014208917212695419527063733333065913066336471265044977256472422022356178886638151910040132967383278402983330475113185326230557673291830801585181835983531718636460254825392908706125398543609098043765268148772974012934549837902895160392425743888966122181129058926036816555796872646194028213649526197460506935605904789228201147935562486119540670888695285750381822430870020213348921947702101054820004143071629149518256330874949537839230927412027270662571118373877742836254426959012098320288219224068323390628343039083494985057885574081459973050132362925603201009820866490761470251494598863029523104122298071032817010421131416168789513689014248321346051128794308990271033422267551982129255559897756861305927269407057002007330420876406219892949625931745327737746423174582076480099925211415058070695380345553340226274388282232945165714492577444307530378385965686245878874700883157741146490296040854058070847057432746331145810872885946993680424864733028920018156440763614254445491913173125435322469611673649884493983541305167487721967566409439690487996364719392270750519137056513500502037170338365249007345022234307009502240821148877665870773936510828411309456474962902443417681386914897485281960729239955354154842557870311919055931810165383107150519784349656430405076066152699638724759432478630045381757606967374871351738601394837500343074343310564347984431643627181866875169241664462511753698920115039099849325436621739200032735026631847382260558533291711813260441408011684054264982532380059221087277789286836287974950552783057988808258485208641243114908008454763793831315917679739243154546122009287865502137519475647089505518627930454126144109422254106025440922404507331149047595339067547894486647273665856208581340179843753914609650755923522022537482659558384889597023202531187911642622683675823029873583945353577860183937813338509162784555897388465847338180818778893736651082521533249185160764420349786702412241948851294452897653537489258323184090232597869598622489642509012976823824670700954605675213354519628416286732388263380680379009669149324548246925372992062963577693166292300482688309574961567732121383436938728888421090162247585554706846243501045663278837094427157362264583109291166423930240257265231137015966645643344098396266678970357047763677599507342863668466954402689052057191641974799539580475325047352370111670613599886879679632334116648303957284332102920120833134655979098298054606768580554338773649164197290800936861239419207713318315465609292184816428857215526380739438573702760190644440587529821669186832551694096663259177280487603209611289733086435227787785194196650602921643754312124167776155642176203895565851922357229676134427081704580283477965960867195997841006448608951830860616410584143780436978385001379535998122559032169371781070728091146869187976703382068520038592814363259014469163638529715665251430739145691254336236508460437670467587645709316419123396590160748500179983855115242312374018793053080101716771960722218453731119294901687759997920981658114570836808544322875437244682378789865070214595357530542136676596620489087794631244664550362597426710039638924958114879082720083684946239250657385587057067896510079127474057806137655823276037861677607890922562517068590733340203333244379254371371330196234280742869358627053337953509743674299344767034576623086692193072704260593258121172972101713337535073679917285648494629276355030483181475792284955224427576898148797483695241834439860088390033006264265681683756546138631777356678399065276779990224897960741155819191887289198914056243522130842532672457546329898231894164049773730918133054134989475835393123158526936840221608639021590456738008235167659393050149208609814857163510024334559002933535626704049213949291410273350019501656596145521933526764971226676256601471309146705886908061693804895211297046188665081545541287772254063895033030952575658763460908509866408740605115588161660369757311053537097841583507418408718352495312258620380646791500246203281501710800365891709084430992873196200978722318387600118963164923117933187797410022247940018419327032151694235000326871787007151811009989807772442999516130782211539419862558112727563841656360748313854815196731482370097866854506085052919590088872146628550712217113189450127232328115419448519010446429518713893878451862554133410567222377334511336700237634221130078988773502504021680471690617877708843997134685533506532099769912673671751807907565180467311962910365865824897779488630028895865850818834817279491201089939716138716045389480287894108223042695280241622835221602970698026078651629259542316006752844279005383930748845854147518134377004887440455528380061142052961175532928484406283769592067566427116489895294731178229253368092928062975677051425471399010768940969961237063815566350455035298597108917319511256604471233221423609430111420632494173132626135362249744154219126185293395380718501654718117345718670927816241167189332715253732182475295372671679166446703339384207530686755752924378268449175438159576542250476625324494557750913913590304307744640280236745536551375567016049107135024098990539830665607285640632160651776033554884628796639055940044660675656966927441668100704156499803640023334626718550875310861886811326330549275732774821555557577289282658189828122882871811156911308789661866179617650531453679560897327100361553275396220813938761050631393310718751580118962300591234324473340843372563567385326200431949186985893345705507093859960053493648134859433767148250770525837024714209569577670736790579961641493217820526826173266687724673496391758499467064763431808420626914933579673388438306449476880189202799844528948398211713324645522209388696820192585954179496216518979371209447618291300214051335702325635728390873124880073268755229482542669583535217723032830347522827738805397539443254516887017848633647392555988700960427414342949123514726697038502654000807465514777653019868299097568035294119573732516416279034240837996287529366810527922375420509207450857879737213468055793970468474332187472259287865801170258955848046232589628724185065193582852066844350775161999815332102314315907198756048502216157495559124918171778471028461994711477543427832259978627009699302304448791270143984546430540359919840035758333437243694145032300781389552444808510985652419256009208276702432244470227394108153451076062482647596006094442818319506526103136998982747948047725498400666652627628453803596821840023046330369117012648433748309764566228133693427459792545189955035893248959192421529751981327078652415307866811182130398851689971894778124519128475905668199946665185355769082912573281777173923803168973840854707684200487458059003794584517900197170413464964575788881201003312902800291095815861463789919645619860993929533988704981127808932500148755765357690193920429943513652982044686399611063393330420462008504208253133241530735705421934149455088880680463553239611063711045147410856954618240560032314603985582178714250796834750376848960978636497475373313409655893490259510473821515929273691578771939907095179263751598429338293966378704358258529262598907014716394590758868910835284089789436358477793864066414680000345490337571306353375421768587273695199780972005970427601999886107155050622896161639494790940050084234343379076473034267524530856114727444285656050121399883479572644187597932321865461341920835244879295419261175559634565529516659083334000884449442181896279697549983044897612356950776539066049341796257252540911971375061711409415588347865556052575524793945752286069691169282409041670430267192797770143749647885066517092762124744291487644684163542945332683205416674823945552734549573224061151274565519549669050872409376921286038896704425008873105865098957622237381569966926238744296677812183915761081833689312277219325932728643687807739226856852792573558757351565239545160607421734884060833274035023842619792737705697653165923953445348649479528415388698184006493966231125411276818212746167882826519445352484756116476618275354201665685409558615546570317387717849184683721603445072677875037936524907099540019974996709243445069075244160304065945772250403531585367736396981072348368143044061888199997029074005812266154243253165238439685455636733555709114259374280117768964823933538497581707456153492706518553177077483247521889876502700259991876717255633924422264938184954041352329028347601922564683869601498386107337785380574074074068028030438982290849409347784951392545194747164245359419169790702539212019323657866287935752528848831754038873647077007488400567675425148915025458829359937002042356871138584585931239803532854421794794724561652048488730334301589695611466944728874694666910124934366381521155316657099257942369255433552404360272478672593566196518160096668539396567061599610197668879912766004616323452669716996636359712492238266278922651618909632453927126190869628527987780227444479775055825292199297909797965577705033862271058562089031761442230028689169756067749984109000803444933610709070998112290019052867490451493297598655842360530387549758512499482333388472275051180143870725801947442689725727459810695574966752368645422575018816779552768625404862229308289831221968794381136953307254435611036390307543283397268130645536677488455521553802880016449092641183710530158425659723028023370452451914398642078883174424730622083378211975907988436634419761045124151330065790812536925812780593605430698573980054798626968350896188325318353149321146936351473866633965317727555079952247058827228257363240072851608238824556334628830981390214675206855182561678814107775549603955015212270574591104441469027324327195410866857447567478753946568351676001503317338281140942069204046200415003331702091158711906960460493036355492956834414287611744222502110401554405337013176739839628362121042512978793258844525428175566831204820888774025964128330315415305280173211667314862825243737803373158386389874766905528194222587467539019198141925914819214014762734682050738706655428997248292881368943732294897964813851774068281113564201168227729718827967639462797195487380638953788848100607962073783234137050472808773648786517863854804146169509031972653330070792364970651581474731034810271388964120411037372007357760775734782368211565948011745886841989995103361614081589862934291054634923551988645527442655046861000012387909401078829013639486142835481131228913702816836282987489980808078389284869114168308463080668516013565819380431521233329444665401932681485032281444317029556240004962016095814598983615761421147672429011818276148149466017509784521484931619600067839271163367396747617222285980762088855023618953238110445955980345124913080466040331482353736799585696252349868214974135632858615124792816667076605623560530956624132156115913045968263750585310940827095374479190966867769733945248753658027351837408553974719761729929509440202325019450695963978911728537290892424612487304351848935737769191981033470720529012084342976040537442333616578343986280342672827092545125642106748446191337284552246898539850121487617703216441181793594632510394007651616556522980429668349408923516523902762785633886862150636877841523500491898152473069534847011696062973862492850332802548517669763670335543160394992616875045304305327719897410803510184829177757944701981702572106316212061325733210500377116505331591713020634861904208561134398812687119589511659605424090822124212969165515521729896952458321647094218063609478910366674851572735125309926092422033437296011434950045641892318276746651877513837337515670191604925964410971289640418667110217021713551651738186974385331963761976944095293007555806828275012359059170577935131809357632482053480515060334296310325185288181066125208133410582976039304576831134837022244994318209632699422563719153347168670718724305329324081798628067891628662875541708863973147991014592053477078128451418849586050251751551963557813274124967308807890008534718802580762423669724940456813709192873215868576296885383453202133701435325190903116337981343616725316813191805519347625415555678982591901167146245142164295194878693570288216506676486171933754187494634089548917767941022266894175631811303999511944487140405318792308398567756709004245256872559918521638365248105294960002001250718961550270140952391541236443913730588072084541030975168123925298929822780344786012588384283002013285260322039910736325251126285187728901289321931931254918775037239726533746130113551184794844027411928247747812165838262969703756103629141464154383170705381840624799937631038641702268345546512268533214649176944378117069469140413253127051354241794377472591893021918666893313891901032149136108928227145564313242539720907889899296357757879003926457692513712208445804865132589783094470932941991329596051509804048008651605150609830245337534891763701622904957549063722217445180319206379121796232217624701236244380833739297425429606398857169042530064621466564474625100611518168971031432637218689615488891460463300919117937571699680344874107849022619093006701736832908334420863452763611699909893774785292895349443325712790009949061221255393586986856851091380862712254302970264631854948474198177835202726891809366222722669440921274560669376458406188841634205477907160093280634667900946104242222421861885600215079479586934978786369594410309385450341167434715483322562831352632023026836168872211164957082999463546580419933204241960758416105428796948728382328436799283870842608109698658064136711917408941467396168349309471267510935506410158123483809896010653413237629422171649320189415794766472367160097454703878932798082028628602517859006521500086368454862836765993414648657380743021432896747615631249458418776406617681378291900876229251039839643256117771730168288078364912407968896286844720236173959331283774843086089840602280964408145003782212795638135872678210617548768242650334591200875552411170249862625133617278074443457740392265989576936801006632323167220529047601679387189061215381032553718336510738318081888902595277643527461647822446644450609434533166619912726108633103307376327195579349737881600165522896096834292427608173682321704987596026678744405637134635753229400221736833481317401785580180825415896535262795335663967820154732449297554809582251178855863798088113275478999293052229481977786361686491232585341963847449868181737069451660818101829152421305145190026787970030357955639089830797681839234541003276069991279986494004649031171107448127633121745240014930000300732882187482242087798764713494010424659830398442989473143134212535429042812542656090591071624362659983654260090358195122969825464021774822063132564239328878382146993307419805337331357839051304927213655342832566608324681318928977359554989751385527584609407254338833543061573758598778227314086797281114018818913477032703720407216798868268722295587636904816588591842976933523259002234739802536787488074892638647919132259457638300373800044333838319321561351699002705166167872623708526361356593765302652862520694522917420851390900731314169254202313941044147012087392696805143308229685428627830960746474811667882272743164274009682298145506883842909502001478010892773480126531962236382153917690531920121760416058711858380467401034347896942923004837484753722640411684851088608204316119294006159868327196042258874671595734966154627758915279094811038344192862176539070285208829002626125335556749501308997724111862213381261227525333580456098344558933380845923513521131852842159998909238244016940766646402039013702103750596380623868840659983691087006121141299595721268654563628066132194631477808514065766217825699570127821979738005120670606161252973943124953900636701499925757295550536769373027644597694674325207417273325411839885156875303898158817875097794778941447064214217827430235494505793291550574247360694237455260989002281698134576651042701196154781205892941897601439791910563985332911388656944392705475455856218156615297435171471092972682844703998245850921022298431886381409617722180916929003536533840679594113462001510715373681040254953311178403198038037479135318594132911304697443201138761821189693950236933467848529206615375965352467480595943149973683908357367234496222815369659645871092745897464865337138124464144592730622812771060138779479107986805930944267193124267507082519513061960161754829552918702453114835027433191998435831881406199257574546761146017978736980668559511221078515168319313670287865814235822482296505861865662327430351083403108817874302640274308003657451137298384643662355408246913359904938336481604274379530847842729580688858039115465493744651654091483651008777702164622531945148673808754750556659941657391592160518935804569884326015114786046549217258885191539372479832961407311426113092019228560824416775178506808131061433945890291323886730586725331691569541007973494056630651652325876662808945989997167682722852013493586575102122466378128263355288212081600814027673285599647524041689295136099992143499330761523277690903747654550426263763094035182145442256241481516358782517802193485127912302559167558201465732417408023089820438564033826235261344695613396550597654861584362225535439075273332494570321069657543455913285504599254504644293553143407467979580086274835105966366007538412645308778100661223015913284550753448920165200108990597287384102748168491827053769810783957114069205997068793630698231964477336615297963079915534750104073638139546829556779544652002747041985001316916260240841842708002599662930850299844445252877330984583007831805617144828721963275702216215367790768362160157595885132747712669457673461963929452982268818843629384941711187591797744687368203313757952370076495264804007047690242766008632029625161689948209610281966222854874321499962875326217484936464040211679040354051647771639046631174895699733971123756444504304178910707214271271710800607701222141595418125562400242115190696153653904719237965956300216326893015443065998750798792542767268819526120102750192024530767343310429496066650189167652882309698369900622212650238688592784169680994702786742482218367546153941193630591574820805223390091619260990576761374687741443573433698073836925180064057793649900154809251462959420522095202188313923947889468721767902825485344140471074678906987046270151544391401825202423181047926644579097533635604559762966866515302820283143493197767139317520056590788095424749967404678046971414827958655865443492320667819723720039244926205126820618680946685604059083475265292137221091441915313043317884910198544098523676849187831884719931782865514262895852519849284715790607354139743348024705250400737376057530367045036070513085131415941295182029444527231754776534192112855567755679021286949870907216008332552109594194930963324971334346142625924572199583297253583836485600982356028356276658362184257253210539162408375223914299566584588783622665130495933157513348490207204878867421035675619202297660383136517935865266343416699723623753511788532829731335693153976591199878659013071187483894732822764805638843857388008473317092590967648417726393976537936158511726635203492570099701513782751043134736067524908425516423539099988742949523722880630085596597153757850130436352061839220648936850252108126212964283208349033875037281211985802000720148166698805142394488379190540827065614147194892151576495985782549196371845821053454249183425236322613445562242911865494878938643335768481500046308114257016828930658435471947004258624951492524254776193249707297654479069567014810862200213358253675564209688344908227199416883549850787170139586857622114745562256402411330063290999197865549437565514693615533238287844172942606003175312985589373942061913011161539051448254753812327927736036872650681618843144708007746782825510844523846644303854321274003449431122268939520427488427320613150015444274447132893725743258375583858447192955429989174226885970996140571112785699647283725232058433949489391820892869630847490826648220410725389058463030785625893692928274986431350403051215175743993205324906074444857689029046781595950005841972568185549338531291868105331079268038008023933829673205800614848305762412216585118066341254917253237688967792657243030412988187572873277100687085026082918165688536609665833506616661302663528043593480790807056285444438437553543019542182380179273463890700570897820123074610479640341606876808285928893684988129545306668531466591500000887922003345605496196229213624517160437074515138220459320539763535373762272020287157318803449056008754846033951176746911548996628603606012897450377100744643887021632060437268695072753470391028258415299375945037084044900604069038162672548885548194039446197762896251409741186226750134547612796645143856963086051173599604874126915887032621374506382054600219285859135725711759910606293606008982422220873895336091366327242637962182316101381044503576677204700567699951848151864741892018220881194746176002170764462398196965290346836195368102444261992534177479915830951549059715860923397841715106919828949057795807904721537945280828902237354735181645466118903731947163617111954484147891348093835559854452373267787163986212699935725299747880143390759466413520527564286676473234861752358321193198998388668700108074026954604967759820337984009370223610754358967448169887884519286331468304045696786754778775432121227454633515000978289375555751333679159548287266429167808728067483999902230910240744562262911915032157283937557363800584081794237265427536274224918267783686334188923243145368165581340820718882013336828879080522946019714056344488285084794944531512055471888564893178132445161780184073496484920250635125363091649677049525687470957177684297887443952129269351013863879416981816018082944180840298453942713320771088050231720333749218349415951422104031921194763570988804467274221698701050907928168264268218599910679429147847369804888368461250292795604445325390788245488686817493879794623185194943122464353742609004495382423591286782388821522360029568045144920889077936443904934166308111117701464072662405874788331586777392981844275169180126003315167200331089055966339744352325250937029960849582723175860565871448033379154785865939086933310546805485787007634400298652372822650462778034576718293051278865641279394546199744542039110039984293689098209656712773008377408725941509084316418672940996857944723599503402847851129348770046745446995322780865450683482372492449469002711492538061054126102457657161744417369636401865884157147846690753387807328216351034519187983715844001980468948304194910234544654834823041798095469916538188685650331228219694246731716623987513078162270260672782339062889531199686503765169469432328497449462028675107270313149985459917066627662735915747564536814439990748603072445556058436662134802173359092176091372775237544613180616560920761509793650602082907629670596816801484060189480764284844635463847167914792583073637587681724633397295497087926034987049784917664126983271072545446362433831411598847617377923144391509739374649527514590221100424890057258119553724341161653820431836368609142834012327588635187943019525192309624065424591174194248893355415878828434320764896074660429075517917760930462609385193705471442912806438261861960201699605310640601683365924460064909244326143590685376706591088296134089513249122630664425946942203967457468839631332412648027783357942334216803071780290714761233077693367438572572790053332898598736742424690600593201197795014936663615550675809847065729491762541557787567820034730242869777448349445052081945527174371444633292029427589135804353192460236066738515034644813300251835079921076198581721957326599848875969313821599860397214570822439561773095147056255342968387112336524492960746461255761771278518402570003205021993161597411706184103741936034445329814562658509506170365909227164023722336953476172774081846086577045844735113787651316932800633715573425011687395846356613508019444457417804969084435651089140018544327794193822448254036328315140159237758255796809561058265379490109737598333183541478024311081586466926255662644905796433263821278486003171823489334510657032283563799615867689634708602958236056824355380416673090315617970348651131261509807691011969378560399363172072088871883727172620595918483510272055086712119270252130988949482613474558608486199308996886886380949761578096593651228435230100295923242282612953739867511753479182474875054953288233305469623693265441155273359729614451807689723886955649805826546229532642258980129847264495968265634306709179271526831791809947679839208522065580260493278219512539943211050919049489756785684526872163715485458148779622834813902446402770266986192751649229295522430983390126587895597958900236396511698224556782928176200620102296129189288598479697112657346000008224887271167523755037113967116769077313888592846782600080248659840290179007316373820406980689358384739813679382161871216115507083180065029248604967087725659670806281142094551131901062583958765669468132060397064961690539373021110433357345341286512110500366790557366364966511547306963114160088060440282639550681011499779122362442172158073801715166835277276843317560478280035871751512011427092359820521314620555023787766181585270275447081593580534116457371690175961855563396864841366968796447347199462198775639599310836611364432681047319887307772762569183954283141218452127461375537984568987572664391825408822514472839343524248052356052249647542180340687804515635008933114207303297238957209833110712403319624043946864830112194613280658402343361354780378610757858192726857907981814598077428187973026482572589771102875844053803434471471737543613735389007749230904866605465243175999338916574404323969121316169535283563598519318116946952570280897036297207543208655314276091428122546392246799905587272732661680641271577169665552200667940004300710937501201459586696062958749042163096951446171347295477731482303362654939792285141377208950984475191570286794911375390842017848244179743820053260022995618702417065611872676243984067799064165558101954090877042121816671888147942601185703430637910717298137507697488270370964464900444643758809466107165829623628435348093897331647880662291824404486535644834326067100841682978894545259692067660698225741513831226131232658880666261024948241473231152118132326165313245309407288624057800307908895758672015484733047210135942089220854559790420086617831526046480143983005308866921933960002390531626160776956273712586767213699134137808053795160775455832687564443329926201333927112773583175242179130338787643336488601434060242015126067322937706159001225307841298788001846493549277581161454780116318784693649785625069994961815552568250797946881214853730214450442468799937958814615644882855673024145598356339952635845840318751573745452645388590840661289600571508800093590597072982954977484071246686371373104433578356928323041934916400012169086134820390258108383305992380296145775871314969090305892112282068042489935738649852158188552600651881099401764698922105782478413830245260539181244595076059698254932109506770891954908124073007477197591382687712285679182355261668617640109842562852721348478701017240619680844815723667956155298794677259054018507667810512585277274215211016370657382932111075225088353839899471213645946905430431880527372173246155271250399131240132580812648005347834889585642773370472165872904766005523362898767057972729622295721255712844591717081139450461050744969752818154656454522294636088980570117953187975999472711401141188975643257800976086772550113401694911578004891617888201029923195330375452825548083494729257825063483033491919950679296610878892318393848477132023409759023733592355674878104158269261284066268970773813308400244794255132870232141105014150808167231162697671850547992001041414182397122847892232289344934429963321960417132243795160840553643315554254220947743659614334673417501378791872677017858445133184678862030960307164739699852999560443955349896748485986975613878885078650759768018635964879724549016489361150594027078291580981944989307163555234358326570994374084925455078503001737464952300143951992220245564416889242506069504698174623337560661160771904852578002028882234617152313056902359127161635953355860788357182587319086473718343326992523510170003521259657942703040149494635598958997631955373912320550555839699406164846424451968153482458804856686101848372339618538986617634516149414069882398147194065004603172655497568023086492259611189570531339042744285502533665911525969164220907332279075832057361316727971487658853996277892185011254532538543057467626084076268072231053741052515011406784595643165694654380701622127565367558884105350728212207151646066674892286507546539597216998350350173027529986932555077565806578817521130575151655640973053081260195386649687143216515831473252637802225872373641961272108943269600383035233062184959533692215836899983987909082655219020598957656766864303319237151844441898207152354655310085578765375464040766311950029298134828221913144363304130962978556774565520846768667072713280895517621801424507035907752337751023592101699441655867747608884655444328342017231811932103602672416656918537522507262863697574303639678148534471001218919121407037182334284976917725659755071640631564893495387556120342180371199298361458838869053128203558955400629005499828867701831836408468369551846618721181648128990837174290730560224234019820663955850116000686944821066623551560061352467745352286329821737656784265507984238992824395153022084826041584846590969255076456086395623039965456773705297145606848234872229516027565850183441151787991063764541799680190792327237953333634480908329225945462288242754435842934240488224485346850184074770075699765273921477174582605160306913311910590402870120506545854821305559055623336167494901801045079929119704888773446609306329927547176914829260909913655037236223773306038101343875804712407287829246166461471342906290811593655282371181603979595527007672348291631169052122149884673148796355342820827234930150152273243530317849230534711249328383278872581630644611251842087560300768012855863855095032674545884264032621829854170102786171602936929631487268762308972623123100154887593514384492466937297598332691966662493596822025550811242698438611019447154486782330750474326062335584915709899962003330406153125762669798232502031998134176912950360462146977211388208275170807013133949519177148731506017436404423858442706356681833624882561433187167609751804047138735529866868841036295347165229039133696299957336611550502485138397876166588393322827056168417999967937385942989202425035375811304556224691694927148029174707207511902846497169006698669495161829020368326894007305756455328065173170829310940441154639417869548523236373740702867748663004849492813899690975489679026391674166930315093356709235428814994871390886023207791429597590907147189064163398561779646637104921073760732208165667472236404228799268296801588887869737911428763648032438122869209264341448704247857742867504547986357330789151601299747097039971201379712461900164198792200297955135667007905877032893846869440384579909075216203511541443999495794598185203054143567991094437467747637191245284945029554744428451513404169810712896461454982609114250534595617125453181942913127873959812500509107145774566107894953114879926174336070893434802931789821570978216860362338010968396617576899136000203750879060516522866605865532445564006333563846924121351135564765412250143687631717408417300167198074150195749827702738392385270774819670987413979671197473288298835706075218251738383075303770241709731560583683825805464435149519476730299762643402717207652511665461765777558287580915654108200103291484263590341198282069959139940870889971768648311506714797402599729178568720567399767390722957478276449727044850224368486201729009347378428056493646187258309316808109483218661501112753644882438538185398472159774516647794046889634729945495234693386868685577452177872181007380533219764485073579706002993248530874884215658554574634099522155401888632783062154126412659647601427853841141315717065891951024094568156816062426607353514293970817493192159205419606770699631820204602507925810826805754515900522161338635325019306654804748454618410008193668219288150269843324616295204292635033145220622663913804915247898516716328755520377606910134381891301471352509183746836910019990312189032525184541086080612496612915677187991845756232484375212024243213885031723905331174306851405593965664852434039885574138725883266714033017307081979149350045075529250805139052662415086073290803569608992427445660376054115001235707733089987345721100131104476756674586360808062418631516049396551139918363546463400034619607433311662715441738344727190679441572644831213900218592516516616018262685101839911539790092523095600507994885459035954611852866758184352216932507238166166788167483976016310510239587534859535613644836363031515524827489599404792820497519860603859841715772027179338021530455133795956905790679961167727221637189415934420859881865788891831480536933121646319930249277561261238476351147343126826006050194060045440225607202681910547030317337897971098405035656341449557505353448345070804201127559262930537050299035985285933662759309170197404059182884051935127345846788765103037514190265848962490295832973172523375066913862323217638224233318822820903957174080896553970734693523098799632111565836285195189126729667411918429280411522829276913995681920203121701440083021824233184992283571772474516151065319462430539066117381340514213920783988913833275281003774776193722687196830584508206001769940049020400994934901269964367228709966730219681895538637750083215939320925345292441422762382066043033042742878749937514044863293380422169272781341628422581505369347120589530923851167847482472999557534456445894313682091404450743006240423133800143649009718082088808393314434935176665549827728837410777032713657627171661336042642763636596888960116669870288838062365066687189440883738038748334867950469277458724751905549450878408127546760381225558864214776331480196484617210244689766027947196081794076382802244853627981074486393750679832004389601055270059673033331831176570842056262326434249130043824088149897970267504475301818248164432735976897593559615252117511705003511432062570888346309145194987134418273637946309313019241697480361155809923074787980805461229406077162815759465046451688177107699814762757876203721501892602486655486854515282034136328462116243944285986083448408336485804853367595540254367074385195381944687189144497536260698227637298198717857620948049085744280206170634417236585666031812647250424380801523212898519918896415759198506829955422148131961067614657330676248952691452468281177883042631043757224053540511145550978784158894571707831409478360376650812234608921116208597443548967807117495066370748216960216806167593527248585842673278199149571469168210462836061194496677682941195274905746938490596716676281228972582222735580976525963555880397560992010662409040805227884249120733531487603254698320094753327189098699275575188262380009338167360199947302302403543341909285299098959419432538218271904384546465982232903948577197801685200507201155307729487780681747144851699193813659612384081800455167239432842432540750016321890291859353684220369013410258511372730084474720402811622268852681714074346047619812784426164849576229036525649622861582934139378792531468242531253703196325442078139570918149110411521175687566220743696988174095804574696271833742697062844008710520228478448192244854119171611767282375834468006860562521374959491244512578552981318675845185820499473081080260388336588603713201939652714827580391628831901394616735576755195061890318901579564277521442417772354772500350448661872318815138394828789422046514663353299485576579048626278729854556143687826944777374843793135549403658259298885333542050756368216882974598811464787334157946387065731872986566664115720663154634736133129055212911800409406845466266619751190533501379330677772863436052838454949256428836835559526620652308573416830056113938252650004318871559173808343461377870571392877083804324856306778050098669489036892568879765823509470177499346030573832379110128401579675008710930046622090172825474829358308381000534743033753101169233296387102225100717522237819805732186696767626091466679076149306341844175968523392258626259306665625307589533037069479865339511497862894984072771756159324364948498333484797721365893567755252050403080802036251914341456799892620066853915993551520831574970808591806542708020463813499147140837007886092922927632336639829984368204665223825427789546847416902671116110549843149794059968249801825267952362350577680758132904739089445361489928827013940045183828008327792286465662250152151206272775502641976978979040786241793424599209515959527172773726771036207227821702330005146732334923916461483400389994979951582472111351423790393130762534930506923636032892359699943316063180175168801041013010651606611474854952233431024434207881713783715875517570141846339058477021365818969089939224067442509171375925341618240980060722221927115563388000436508753439791674093850495144057900133949476536162129785699416215660651329061219485668382720923198958496719351139807829730691350106371306817721673129618336658287248917522688689401072131110551283774892851347586610193461437003993675394705378705847014984175457188564575345584694555562899867294854217999454898537602302056984530055992185293167634761804896550931983883769351916773491126767282488621647267731625103192040928625082036161997974433277992806679607476517646776897800571657423996578558617218809187644321404866911391694056444013377596809223749878717402484584965848385470587259882883606523819976870370125920047095877786015406259222615589072913262007505650558523333598520768276448825867554830027207891967498741017456843778947838286241041024830122455233956391693487837816471069503203987803338042975934728538381752594824497514396728224283927660756379224214845570335217926351395183268954532265576880008196425840435904347724247072249883333062202214000906946088943298150443951158601257189118586667979826254568841391793560724522665126074638376352873687836778422523998021376406464966567151930579130388240323179056691508527567133071441560921956314114766729706086921046512328394796248978103617362849137041386140306405208293796981915364146895276230941235536940772040945501355217281206877992300374580976274774807828153756243519254991316858282296550404373938875402178988728555162316416985856726846935314601186330833081251092305787109110124549990018362447668510540335767053594749997204787068496405341596065275041288323347471988541001876756944275907278207049656959840013226446616336853024847163237381142088091175276887637841617462420763658178743606095912243304998093730894133868127365668362560255496360627932140054588786707138734638363038494794947782126258969165254741178589422263035507276566141961505607012040534584953685348812006390356053454602169640697082770684731524897345724639536410821471676923570197886868207240147494670827098538439625488016325689438801355121414342637198132941606400653528319182112073663524006343536332197718266066297190587414716903205349919991873705615292067085674139074042608629785798265782605843961045247458369797767077774375648588840936130568018715742320527800904120853530339276865114706266413788377803694140098957459363438983451222214533053018624244351256075132688876178203384287760855949877988644677004420655588681194791145946681553786697727676030485262184989621114900741549595104567628545313662209848573390301387076908483185707740476132556378484232443920197249089004489985558046998239692329206088534708975031610999935763878969210551896930441863581685767399848259511128715506700906955396161807344276577191249799559472525925519517267678285593406971816148142833006188511010515729407271999714521781990288188076170230280480255720310556801282905475070460943190273165227123085798649434184976811314187476303815983885680147363448319772186423244291480610134888610769370269814008822709820146960216177723756441341679000850304325351239944097024820494923033212197688259973112218892928467257657895836426190769700781796202822580041157353067648812186293001567825213039320417306754718199188122002975676411185678828954245430191678567062063008589888130621666332402312592423898763943334876316265586919767059725161374794728537338108186894791141371252736440537763771674587728436262606337229413281753618178482405381750909104726948027001707052360174119966171235934707127914426590363151907832114492934561360216120403989505350173623561419184856448076104998116559604783018127653334453898202872931186566480954147226111719327674321690592929874687595714429178311785259618640287102482466353001828241177164472790546249640586317475875758850866150534788105803256072916338136684259830278077511218996410988356590572799362173788959496900555446973297409081357417956428761099261736905440531060607836256171273435474729544858964965588240526705705215350584443906408940112194852339913961572441783182920995334373755367667534021382939583967894635251569098115566456372155733466639101370023200206145585885909743459718240182716136481087233111165976277059017208727665224520059697792007534670977571636258348137835483114305703184371963312657712976948553823008094707892952978133759405832269156230417928275688501072664486232787397525028262984081938708553602834417770663118797992300763466842539369507383040461875778545207360022100331584529479458411964200012775512865532669355676636373187072472257691504377260324067164039962436542658936139923539801555628852042303159642926554805168342873918030203020904331918051776088249935004818437985760713778648885905532007169596239246004556008118257519729793169602843324955845227613829560103387790653262104702455990888794497355228051691643657752640416230233442961230977063503746934755524708236892636959277271945027271702192317484275503681161074074147723433183070728692148639481082228544431017537484197631088601563158241662219436475220385232996537117187472498002663567017423642984029805853089369428207926256428949409237100553597552482217524823819158091870765364217798580402852664504284959345870917854504386651602471765193555859696107191048821500393778528483475908394090279609231492487052221406441851423001461844699284185447321182207098586933103230747638450777077658655767727092049834347062547921731733891726307240450965035479766225015325187540250539248681275177475284690138490270945660287990169099218493249961588132665510343510078408545027693771213295311752397997449266686260586619944129019752366917998183827776583748205983775418484537772245618123862203576155873551008260696367397411109999832856002263657882152285700992764802683710360309595599910508772307038514734520615930274225145899699810221476758377530450985289934803323785392592793030644439855040892390871909584275806966616796881872993411475069522612839730819777052971678110050702326526270408651378089217969290918587186121956044841752116923953988332578365202805234331543234474543284357059124672432384553382786456123483109155705683275786091998207228304594003431530403240777501006163708761094792722885956182303762442458928794611540844782424044668140041584035695637508342510452123425339685873667546140312209866849746351182949177840842378972002577759913380231043415692008956151846314986769222603496208195414198754892999659268507233571438641906511689510033808571730820011176300451355191705816820550586567925111573422954916965255322595795567311852683245039002058241969044148474994389620133634899038713168813463306119567318607314006517499821398786738915417073459770774681936980730264359641899234589300644739986132911882169937783752637674930938478532254687617331232314457806341141519701494786835886763686733764265207707668892274062402754764306842632103335986250675860065442616272327252442689875997551353781437545086662774291073232424086163931010760334682067954597493981641228348577193334892885650218684878091028656773329653049428706505856534727311590901777674492349439453851695162297590080588672642304429153076504363345129393103549731269311369108324940841848115381882340750250518305931476581196214615721632580114241552572968591933301379396336579608282245572031467032914944990972202068928017147463303749970673315691301221994639016231629347684114028483154022548757121047092169519609702908578553036341895083678836260120789783018034329797888888547232978598464724992913909253652970006862411251973357569703112196557350488682464989045738091551951909314385189937019906706656818927907115766338986403025678931741372414142909512569498065845569737131085542840341944511017717042524808802172641476491427023931498399401382966872063007587274549844040161040376775758499582856512875273948658441019172921375475161733323476104279055154337903591562002370566042079230707428804177208163369458294387295412094849070147571337168751872807334315741509565903225106558227394587269919828339839793404847885941816638247692757492750151617414068834793113209772851541459037479145211185048550172940751805246905459575770844908240989902200096719927222134409429059860183011341350015874620251472321111764693433079753294194622422554784250978806055932934325793993250489463764748916287971643913103119864307608135053553933237876730107441030169956316473990900483459707100786991179106740981698579735323423476991681165074103098377718146487220952756703771959289696191363285402693082084583367070160955334166264179651815089334082908505472009727829169177298379963403593959648902037115169586552521164499609852023002799178741618562729515041310378853063838128415195469123304251686011189270497705652889462324629437093429694359850365652192881392108137715164390724489179113025000070872797739965190103190848951852293618179225876103101999818750657646465490951470102134791284627910294440374333820829597158833713601869887420314323030048451918280026284798294655853885998255489835315825914455883764674487389825255962953983039607760631001435226332042659996091757585932729790218512621687387049579306741801507400571831182467844423205140435703211649839926256810357848740620926301415190436437068436872199171707850327555508241632376040747525422292440046939699123700968191068721516927912606210046845538654692042918213671896106284981177108915292313619095007555456715953519035712051909260566195275941014836025593717775347629306067005919436929905277741129864404164976047286526088667647778083110566446226496819783624176675700353054686583398373686882906571028860340338115255163044384360101612172892699686324566758789794419967867985559766401166125764033437116328482989863889667174345919864770966394492898878838823726028854667795586203649909764196125428228331224826976223212684537837650765053803962898689884303154345820470744460829694935991995988903053073411387914122424526642671904581162425874695809416505136417557983401852895404666156321553308832343514200113396353771233165215047648554689764749639109664160325524464193917850454423760396491378290347548454160197604441586004208780179430483127678894818373530210385758525637327731076696537002622550212905315111301918066798906879344517668797867347766970138525780032322702315831812905971902864842042120299473704775105058987803634174692903074262132893972491301282175295920321410409647739758803077328579691674114233587059998832139495939700135328176898820283752478119750246349848343220890755977380518756994836319461999667345088584007995665274689495099874448690714237795965140551445392292035923444553388210005239616449361553961261764863284772755486919538058175191064113880663302315495584970742959699803084454831367478515063229611371666034462278959303546505088499577179713271418449458427975125194622475054987802064528001751103359426702724419746046461602307416819266640157767764250772218849144925561562397151469163957822154670273392949401354165176822556923173236191535569420861077317855900782909490844076246521941021955722095349325701604876521208185001601747162008183721613906488390903450019099072159877457714138414542429266674285966551050778507416029492917337551983530245825384428413425797582477364594036583102169611223980187851611255636206834899902969706311769931187820510481343753531245267366570893391489636053945186388878061086534604924942254170094249482525562517239521909448776872272099742171262911206425540793204571627704915169587473127238475787331022542073618583364758662414982078777773626086925825716819200780877064496547814790796579724213023432121581371320408932185764102439244565598243322896214740525191656385017269137091669583158829450154163615772245814317170331583778434515672490692732795270346577122965414968821985822934810201792352296981159210886834099693588406247517524129653949420504209489166322631051403461817134107466152846312511440237880930591382303703291361668262383791318605203861010026139165732872766694099919613758431498644466724993362587502259993407873667370316975701210544650820298723552994684603229478861931547920140243376925695120076335052161977792503789122286481365164337394427474603736918064062834416962321561708652249763290394191755392010278750043465844176432460920931299573229626397006527856382449280911280577446608999795843311328230640448235103741374580751361271388233199154275723963904140197007802267269539589309854190302446119689527975119266376004208667447194633814444312074351337291936523976658619740349920598904767390453444082135976266630147795089597429252269815357675973063690823881832042917664041186547470146717997768371963405728075554094974954612770387036413734595586129050027794809584376738252992906657746472150455657217089926329995285041044764077354007231967808561380566017780136524592872156832083189177640002035705111601407581660249119635526026134984889116597029836062359458624089683765067258488579794595401001769711002894003013866279298213810234061767766596193178883024706933796685967979141162753336967963771990921905399437259937725267429852008494260614737571956772923535744915734873626251921306016108595140622834158952925640786579668441036571217343909756291169499407976998421437328408771585683551966986577980473854246178181686444743968537580946549734176748234342668544730315319042851986320917569465572369744846441645879235155268103307026163483238089485189247247004247820814907166948255804284770679531217890993090624135211342683963757532739765744996609550397581521007773048072636637000884192641440749252823110961240824864149518173122593691681907881793935527274408460487861767601536110718456876871056698585268434115351177793889771535391371501700395298053147583611681109857994032156281908255567164358737496155629145510445874701223407300096401887753340965494138014676526104804955594525865135019795608202806590926210465825064449821815561757261059608012342607321407403814628018041660790206850414880811433913745384539601968520816662902732669485216660070829533211168063402314640458054863313746275382897704852753899190081134062510716051139396967552264416933472252351050207980743635127324088021345323615403350646810869093030308050812010391258858670419626445775737079725383219150122905084983399574038252705972041558379480368680481364408334047103461870471664651887552900181517348360232592490040005930754676396119508743323016951814891369667899804731339732100081423230213172523382646571362658484696155825533805311745047413177297137116984728021977539237050083269913053588779386044756654239170396298872897704607168267288808430577722265101048279092046003004771277476965306616980274685046423640557184743159336113103543816243941254375814544690533372270465292861301740596961713642552553468052970969549668110610691502269983949397196895451998201177496598653447504135346767867404496861658439702985004523975358917240831858143432138708778420519456885095599542546007106152332116567474555434152486657270924950720866174933052949893537563082276425855362885034335083795985186150180804159101812618785675012011174414883561475925882845183228104191742816302728145164179484301194923804773339492785519997942828743439391034204615298077060280480448954967844893063967006075572768669090944397049172332321661954243389763844046864283085182334940356470936659942743250884764131215047115689347784528041533777505071765658103786217283187809060474064275188186970066779231340337460038952765125428701128847970153583022376816127899702634004491068542336586822012740430282515313908625913710928936953366213310151214920715878087987922358423055558828197862287429694149432996102366596814614277237309983291341702534150356140931537752273068571213285898904177348399970883439014675401835958395941135618746874799494180412986161273273636258545869254917053983439273106904447811011931072658672115510098599200677915426235476405957074214482523345970813981503076098830474910954724396624239190940098967706336450937009830497737309491256083990716671758958856936216911305522388786502391208573631641610194257250916207692216966869249828709037124462845651014074054625909195491611091985670083882284171987455072761958791294618883617332061563335046478598290601324983993846463709987707774127421194303435645362755912177527449524679126461445181245922376479911546216957744309170732315981562358795097317772532463614578068096050023882771213309873545158656087074654200450034134868506345939804772549742043229262371472128597906857032872666594904111787696690648835018973721103461289800288092348192925180523583356302377550472263973219955196448611704354816731378813278136481880540005586269944454980727267117840948404175538449602583175203302951858217817031167315295082491986775175898261587410187431795641705681842767579797652991822599949240921626566167426485091912668813010019246180427725430887099789219630570733262220769246142128523879852393815337978822813816959229534039114104599130265173509996595470457883010280416583765048118459134112052164201335239916573184322031771203603317797338619072223820262237156253787768802584480885814174414878544981873876551195601745053585495813272719127894777560193287282948276004840020978329133863920804338260694080460837563279102150519050085761945750340887770265349388800466908925797634860747134174887648380738870771723842928414171891331781065880119339320407562185092583559516958250571590853380780839520911339199416227378148439838229122102894488285179214239845974158238498064533459304292466996699692535893509880380904268689682464951177442632595311996749184880888523575127307224657625783450504320768017213677582811945736412564537702876020366381360062599954774364654749002251693058132287516079651404603219999031979548668966408520876422342914071639976885304880664065134765171077133329098785029856384390058731937777908075397608225245282900018179701558285258646954105001979906448672059214711751646100251100418163732202150400665581314625039984473881734412539457156509279637454074587523244810080224657216548525779538606024917747292577110787341744813500231289057921901350103798103905903513731300530674382222286211527013919704083955016045824548532006961157652572417306425499888668726079736903746467596840380715999231039614397538865742682052608595585466530764341823338004388163091727053153188397648999251317587325031418577103262233220513805471538092615100373008689721728450970565751785805480726748584744666600264600659203143770048549070565784111179325845403279132694861689053687409332524282141555674656082930991115366664691001856714085636239954431023207687088373028744436586860991630468475616282499994379454986775504974776739985971475089005740042092385292440808053748223631306701632430746829487129386265549246294608492103071632283170807947863796553966076050877328506750105667201931696147367738386428368929617623061669475698259473448393933593083591065075712705826926811282033651949583953646187407011675339265318846178477977184047075268715465188014967490493550266548146192005524491642310391712956089365934336864965079055970615169790269238588809109526817052610405729181314955241449341752497588847582470608958195953137387893613312609068005877360096935092913959997572218172041024593240944705148984812145407598405475029015536693545362235195203216662448580596810729559810380358355796945691591863740484519286134974845449515025459139413194643125783531203842230599426023685648741443732207486132854291393333659691617081299966983059290977106261373853476419246298065032293596381654634853269101845977173044348458170791643759000761128607378826693070497121555555503819667877720164801684135955610614370945361095533085945449692950913234466571309375776295444112131461175038273690707338724852409385742711964332779193486005517086163130764404355430911848282385810295896427662391848881293950638223648211987376332531694227947692905335603301167979484724136041017620028302952862672284376821155505874624490921482496857198264650968864879467886344889874055186220129765860651842911247983942423949087369634055385582724311274147664001999123736097559190834319462486055011652499632671166597062853381866442744350959729713535949872911568040396277387083287138195342147431319011125458806855685151815189011830013977636451972395933923881852653050026334458385201597578844728311964703229192147287329006141818728011301558480520962723674105796585582427722885684456756228316188189819522766703840445385216818640617179326331608057739024413501553610669716885301268842828545915513644782498765984531283009381802114054980958729163389628396516980453941971900031809337929727868081603735070909349266061176580913921364381016421309917526435751001820098711173909802322811105742097005823095576473762655868638971890801626225694526542089840822910220246511051082635006919507234455871243003709972749133668984836281393101990369161697398103476262769824075254164421457251232569765002067974514900985570933294887498075165646949929178471664465161025925562599682337297659391477602617294491142701906804148479311420072191544442429731404862887643025102823803923617784198039772348841934814754932545605621249186101336463215983771928914015000463935137249653320006658076231687787120690151814010424770258095505865424469626832555092127787514630164180508306927007652371350256451022887084290680424704510967581508260359736705542508532218516333133810611916986599470145931583780621345931312185528506265512335131208365362073172911171766448455961531174160691698540398297358125212127464139879818193908144231077372288951431386289699951424621916926485181736021555314003273730859793358294047770444672760656273056485829063704210150622948079786975123204664819106379725043988471473979205679395932570707198957698984011778676820937981980007087992221405170635796683887471815761957912145336456252321866856339122213336585867211327232634543834449681082165641169178674271066359145137477791788348584389699577004539546302246716211996303519601574216760294818208241617974635832019578038843622237286643437112450886422325256706259569560923119086299292220770603687020397906603642477120345466135421138695956522944166817028118430107341999575997150433442699571563864503519918942388475757802630212140923383518145330951592089383870389756456625234045136076820565171039425916794559996017556032212570140181771061573922603651268374945564008583492997066564609419174645168632545545596032237710060222422305305109908428819211170824168198498421345014367730672817555481184908832244077775378499630748550216665337786177079216379488637405585120572764515756221335602619617379088564628149860292916985210698601945394657221562027439177293982135631491749002647721936916100107934684201037125187225403702004105188732926475716049351890069608528651569231482544122321756004496314885177370991262932726497510532970809750776914713964711313261196447049297403652398238830758420615394212363347974272797720263670015717281561437941100267982006098062302026030191198639137339359549390273307146274812330928211351440028225674712635547482023359432872111216483955313365650362132913639382087965912576754271538677665848214654028998048066943166129493417906014098871420658127775056054711238003970340285621636131430801497649060958623672630128521628297420226565906270426937975580094030155085726677548482533442201333639896308838798290797112517961103413192356689976666526336265204136085313159674967844311906056936601255037643255645069676073910910397018973721359518099623300692913012868013152640220135377001853924285096173888714621929953279842954956004796431987466877388874092760505380395821384099188584866021030537105474539106566103036212885918044631039356661139482381869874837442055624551179048173694942472786272547477877951465889095003848603157179649395171618249490905710101795423213022030586795856011782236190939675293068983510519240097167461641497680660666454634591555719206081629477953114863921889427480966164442742208430191628636530059505458170566944265871105753852179920696326668868844682143564444603009110126282640560988931338055280931483230612566040126018067602353060229589884131010201599613261462235264388645807172570032294220523565075129940475683677165407646777842838025942341493926611087328119426715366320464360669520850636724087507295019045909657351432688592491353995878463543471670031769519761330180409270284172535594581663496196472797599211768195471719598639070281436595206052651196641201077038619146241868091514312026798503483258348709511633691487325791616436796371507467418353251051163315776346993061703003930914923296790264853978667026310787673000365439527038730901401527436403789685894630191874027400646873871345939744636298052953037972654387422323195550509086552349593773069087129015752024333067850985321663008821811960147752831006302122150407475909910516473857366815101610720225021811596844986407176048378892014100740836309516569292356059245438988668406926845745748957469158482824807108286148598809200888323786047325097952443957510726396837853693327772975501967083961135068436582218336640779241668146056440041687329767426423428628596022322708470945198339117680809681051270806128537199361381638666748677425434805794262584197794045969396869509951140453855043379168414936984044332615610935380441808074670834715699400559194491351218683876256744288190250323412350093556436228751446662734916613446189767687858521637015600219046098357724231754715834539468496063044498196955130287058450122561284824548898963328396470611311043981609455277553460721121749758562824064389949526557549656737236138221576293830881696287977838659735737700169227274106579756701887487717276578779532885648181316164963585189900771365471984945727248253475507712266604506183127984303119229626191805886830297861355999601176580963535064219126152164832786058864521593541926414890412337779012414086374996051551224620633970257665895774218085409549909463720860737454045861119934230796808494747559652779894921721204062963231244259534071985500371623652378063552566035568192178229475264296824496072122706574032677584372993897594886574293912133176177693999309683655825336497647292780317412963071927065828323135983991184217642779474173081402607222753276463533971673020736240241397245061342180064984986361044452884699914315212990144783885857690894241844140089601413369135245395829879720122001509719930933955639774206259967115922056264456310332798265305475905616375491191992557277834610115292472563886455614732690588269968088957851007973390366448344185821041023054984814533607310912150571373844561757833332542577200628432253262923016722256794340368708105566979276337507105514037736722060253206319056705723324341497565131087563762672460406876328493078115834181042177741565543744315079932336465185902430307798734136249140785952771827388465924641625504438493185748163457643424065937594227986861826443402037511087067394096272482699876030953785299738067757499309222251336417820085623933062029925313329941982428553110985953640930688537222618073472285429531641651329946773064583159614520577729041840873242170639535538147101002064533045230245654005651377612770277322691865908321518279864615950920051310847560875569411218247617633503967218339817659511948543343183426384440101066884809341877712487569553779004781826987094784732291882554009403471363184488686812612310114602955742354696759861120329701938538355329206245416104244794763840202281221916837249313270533879544049276675973598845078227247903524807141344395481484474774986460494046835780823886230969341161058112035910664214866305711945753822979400918671728063354380108854635443847491807369579032116658303035494411754106783945157197263794862485517975942328434210951993144967542752596549691657603506459512649528860801660322234425702193152425004104016190907812087002722267948309718971572193422442448943952483090632508659701220125093303471042684406264227286098601015512877783560494813829730135421402252305399157143359654633342820882812615139850220330966879778122562922602952132587276245991936901335353009585534850702951451314311150378387886494178727824112348223713072996494844649383878707083862391075297603546768113301012115201556179753005774258239866585554343418460063682337956097059163508458259884869204848436953345420727799430724916670197643069547894938107716074625422045223849386185405258501795081755178844156167217366659292437937295176872279412201249579791320795375196878441325531611402760840781930770724850409358683501770985518622044471158968929446567888647318126548080063562102794930571151963591525522643987567857184020005896514346014498368797978111316085478404480463696549491544241228161985643819646471239013330742446360334528035204069659876693123392601719439868552671046283751118765172663231987153211666887505509187654168703756496269577505824714340921153124430077335531916143813876382769869700979820902380529485562021452496125742460395184930265991113405455029622927745580450205400903435225153244091745126316754719829557449830089058352311261352930616623525889537153849256417150939811439159179045041434703661852566470015990272693182244955075609576347238460410080775256078415840614151451639095582519271059515010047498450841536293668523126181587190826682167093276616237724282241482265258680690353563364245203628973368617956018540033555387353476686258399991945040493259917368048239693450922723287082673532645585095606434406111091289819371131619421688361799937993927249846836091651632142065617926168104668419878481697884681515390122179477844027299392782989282256484810711064274631542207604128453295011409311223383878922639014671521185522915477295320396902710757997803054704238640818043105120845365819403723174476507439159373810852024613771066717578556731136979194226543671365286242288072222014165193008561413526189195245920492119690036768561135706504539345277555762933978159258109014831500985334248722915782324380897640369214212926665060677183870425658896819723806251930354203766984960039995424820660886625972506572745591881940787858726865079818758807752041322090276290526131644047228164154390845208710021684412415760414245339586284132125212487913529577690414620902955851832412224972191715458069496331001097554399877836451318600308701215958388823914386126911448305874189398496829751005255135385918556523581238472184448066189649988457926236396947818875013423277912931118051933298594177572077827262392122373605874227332921326907895255251653566144319106220518231381686854299895693504546347170291724291537549335611722739808771673639237067375755806781939114150554582442938421681832436798560582537888477947940687293891641810071438439173565590578797690968322630314489151090918701047726155648705667376937190616139353331128373188631494722145838611140456773669287695838822822436107987367549299071181837786937408921111018476497925968409617193790075217948217482233193948062594114840558636050404563514956485681375906143716991508583100479272515902597402659281566637935924350374832836324090612120997985182391628360265624994024907922823049175915211184315026124868245354771581619885171939410101953474947720943040052388255269574409792508733762164488275742616016335257169363583849737720019456482270642087487613543093787384829880170104656182295012592509397941857876153640670082407567776644037811366047013856734858518044658358415923739046043490653225409439235972067574286141828894272237925100306694681608125286574645741998886601526213880170815992283469683557056862302694024413824352786991656110608266055749765307273978008307682043200132864118736357279231338836326252144915173436506524390852843785749023350336639280042259034471794607017124816056765148798287812572433158272652657254794068028446251084731541451933138355537628413320885529513837992974676294165934618822827604442400046473219964571100173775170213007321069990469871810985752393229423339514595627588010455317442862200854459957620600983223352658346194961843944937112815608326471079759576683780741348671644246775253758960654064818894541621220988402891027900910987851728720081773073333172151438271015321121096456497696594972463273531745058254191685238509465152392611400123907243204948130876018139936508857436732840407871233021872932183746753529420709385687767791689925072496667964621064592998898355387092621837692277154311309005784163677820019556103118372236459517298802259466417209987688212842363198943237708048299773819713384782576955445780957925116096847146511995938136895941438546928081148194829240113584959333247529251115305139023148837304508991485784334344389778767822464209608462692338906386736273398047036198715518338809140723399454715337298601276571372791118720077336005300876447356896283078300016819837567265460762763230923646169965829688771950353532250123725147071275535885131937801552678602365436268417807828305872416114169238172020354229730664370362912227319743602555421108039938163312956351421507137138262347135318897178810259593861698734402849163869220893955370693478164863677079048889530288533294924658979502408432478062036204563092103724534321744889237423661074849124197326051753889301730933212431259389217543111539499827801046998554925265221371741062510361467301624425021742496665291826367578034754654101718656333398381494844753100247840300108675904893342637408462003884471337061782916441578963334109254986802463387802217433359321234746411080148452291658681416675102060740227690564956516090269494042198826487956442568655344488690037125838910445330372479475391286477714433919834932962355490132325471052088551276287225910234726621186542758086173691404084320425280088258009130566535092990721304986511447123730181194209584036681339828262193074127007181974187281774784409043379876428250612529026501277419439486441416022230198354954445461568783671219932717197337269902673196520145147454400312352752378423295558103595489005386233054406239502244671606162216783177043644332389786679588668082484653282579990686200537034702578441487431675910221161671439498336693765484392543877829550577060769934633392908000876348479162283859781999856004170389296203625093323188447857916390135285849287988319488400975272436980750953828303801216338109058099678536218701883149082294393216234165257180543761131949078678627980618592623341662637070838700111957827199194341104028629438810301292573515099142047189540334663122188298884178355664578458647529273092387148870309931926194245245555893353171381963154960059299336845594951609830980483628192575339156186544065483169398403125135802353754032216348691601130183695239429633952710165383728589077016438782255664354812099967658447574287268705240200114487792657285527897222715687111213445246624400185722824177352734572291163017394653220381564013077112813648422155349513639055430157274660689669527235956762377823317786366631026792695055460490709245391333667735304259477449346755046429652706289091176611064558198566681770347363936697944728794273886214974537748302534607844147902363040948672211736812658331720210118351069976172663674825164813973097791845150870372048459886301601737713331156114107375476957531029869825332158949958847703870025253669766606799949973923782296247421028878640243318423251687063071219532128627105114423518935607917811766461309119342828373013748381464215703443949520917088880208845337505533542400231743025386400415203861069669966164168655742856532753238515174294080362797998038137409886448252246687693851481036762562799641747960443722605223895426988346642843446008450245685718482960542277953021768900809398456560291140228139890415493348427545451700989666511677940995070360473650900029888013295035835183317686060167163708059589774125841822150460773304538282785391057557640571551333751261658070276629549608262468944732265965282081406407774463549303624558437299795983630154523925339512028598879010473267972989237252639902889864858526060176376828584314392120253867570545841134451288479296617228875486424276783381240333771666226868979567462495333795287193109997250283181348079365905902850761385575524564035821883980625333753824796064105903445139731793890949769953694079486239225004780855849883747611443136310789940128069986276287231210771189994373670130028845750594868021713019508407566106306363080130511204864281063820210244167841452140600572731279117353073595643487014702236772209057502279794281236518629283725852330318839782116158146813882500538212044682263797004346386284156734565650222381164377746949377245017731467329491755879940989819668764951786129730990441677570076672910563093653037393124255905226511694161632072318366861859802444713936709185883780407468139697967122179289768519503033438129519288920828536184546579219295651930874897131368520242851595687187962795980005170017420571434693034897793598604854362492515079655401344841248688937579168633310585570366390426117382239611785098024479596720479699334544379539194634774380849424170013161486172340671030241996513857965511647096182172142218997215559550299683017031480730576402506023880078309364680740910967247093017179642816529750581627424578269754058858017642883722772901642817603566030793266268392580409256712825835907225137664647613593458039037779822256762184529830770112806348192337936094199842139173781668297818069324476997575441886484731653736393047687226260610590108053640383690973375431040448679437166285202760689662516204371015386621267824618020826144339408204787468730635406880205588732373408350417682257039172820446012862270358284258057126150350754431120675040403712111408025981603628982846156579179863299940323978488018084046168667538841180033627472751000303984892447986451181840883269086071032211545636563914008453137468090106392867225893308548005673100949405241101736936819319892477658775860209174128222319107182892537117573280027260508503582189439592762952950216750549164089508432906586364236467300890973860762135096223102392630773951819043043162152293656664582219963958338730087168459647101079720393179121642023328005745743352709658665109962609426326212908784796244325045128924583556587842455756231283819254667156022688105039735938419009267872886760134001802935463608901450892680034943561731006629636296042623062391968113028270114162152419921694835863117470285201705307429159144480812501170373258548628197050575649127641699269761901790471482683831207958672120002828728168844810023820863328651617722977708704002323719658238692715229071178932115903772404993378810813989862086286270546221569813768107753091718537092810722043278704149247345747193187686142371302427102135114094451694506493454471909774692844868506796704161881672084522579651899517132145381053944558140590198940474579712636441559010523419321411619305545426475765031584126615306790187362882436895383900091928005350163424647939640836048348751222277160311309613190727517556091504361736191549363826813676839949222990597403116340792255674147733212679034338672711849571758211455910512690416804265494571123102338419299594963527556570472733687826241819659111558757457659231075465768875860888870369427802931744336558645570692748443423582386554534693963670176006497007550959706999671267248782864774535387563003138483870704468816511546605061318250289796022009752578078341350382254526755546799283715322875364420409806670119773444580921276112038086882875326938348229171910356100557321934934011738665598017028364870491361520536343156984720420095203970724539142659979992792820054444020579168439093390636451020291675595987780614232924785795230764754231955461733042617248734235401569823487322477558331069287621225172352713710071085315376585917178705731033503946080631533581950920215534239567655434853982810163544814330203507161184034897946858345738214903749721700193457770085839940612736572806096803461105559907037690586595850848068014869898957557191226047184327450227146306934542860647294221370313713374771774472553793669228632209586105425240433456355819472654645596572477809031813151371765307062611715736541668944360882382973279041744483927451782106580238230755861563675801018758923716731040919693183427088227585645455957418777971715393784615028666435646181417026122132508673194214507780303536953144808787576829268765396382621782137878381279822589233051249194809126814529220670793166512548048504343863061743694091430278968209379257018589805053543530493530316780968628017645034709825023031597304743651522710682782709820410336106303594610381824473589995225321081549504538163162307864954635733885422993719168673150382480793666139420703921612926149870362221751301149405996604731416357318556119561782690713738728875472651801656850141351869654042286312811270938700256251471222498647854751044133795515727068455715105598580379341530200532831408861294770658807330084722165844734635106003443993451786332054160277918952850893517485129705763673564191890128701378212079914347975836844138740860314579920323041695630268123282476271634302126702590785126689467907563551708895530967145635345089967968385360935222751565238688144185375048193037896100850879288906612176655461533252410896839835865637800472982795583515385809454642908675434724578196994705818718214045117979392492372287280676637802784016787670578282175950471620771369836829097432426069484116856971176301298791590199565336118052364884109924370963644542420349470549426124115808422489822525212851995910095112096022548665434205839244471044683719348747668418929343347941020713632325131781809215158638427375562651939855505927748929283574133337471304141403008584676805559014224752313764611283608491278125067592989794485672784093914418926773705594702071314742576480935366035390634251830547141291774986974613021371540362087459147707339307265769758294476787325014930519395757810525746202178217066165820179083562729209557690711461459244597028388605486033014812248285734881168697906878883039889422483350322616314310776481086884400188282784499775172737961705448632271496898706668397105076445563973752572381473635068258607123667748664682423997203867372937018899366013525201602609001302450898836899910916561309529352939201566964672799963514999439567706544201475503581198210872042605735551905600168738389614272302245006145111145897110514558298426709069715768720482419622054788054447423772802091708803813982702974660445224988075442074388847769805529351817919478685766454776157144488692164921110288895092247826853253365964462848678763083332052804957302120494385818380191482674646995332740843930671699057556954414707077553885766549941777618126444335608614051885008723218207803429379218731921167459523697858618631571794863459515688406086980392913193171105868685399703340511403897086768858517011720437952627716784130141490633291954975928173034449419471654623814713427409289677897931716730986562736303396424193601257624075751332092271380412179556675470537022495236053829481124186565969286567205806745753793372621121588384100666088220005184348922519316250102910814990433365406752015113741904452443686247405791894560921736806684814675679604909780848788490695885890177961362135243327992571469062459374901821371336000685419543143953836614071369483314013439819584433186733426222212563681830711614096693633446408397837766446072386861756889438391292240503698484087723437394470808038032464817264613694946615497247793363905804506539191884573311136085436950711724397038987364496299133998469698476781591252348035313047869625047202637818886007640848839004512185612096358298867842233884554699067423482362509381085746908304400596336675814986014106526594894254028380380066309096890202764960019741902069997719636899960224187696021967422086147758131676880375548331718627941803760512630419872967625214494240537316721578182014876807412544654829575072359702425193087882649236599360914577422703761325311731698221512771817089185775467016052520002578584608777232243740721882735685201800150285656967056236924548764865739917205726847273857507049347140399125119483522570580042929998468601909312687997848743170640959487821879075390127702528347181459697184732910996032053375016822749958669329452897417804618515186032864194818702389624895834487149811563121593040437074546134380258413047070448296911090593340592100828824809584492099889079371649633078528859096205477972918234188265088710372354377969059967712747107848381984213067326849949458152298657306724049351179717903507561850266693047297880660246569748279408053877170495002745908940901604725847853426712992858054856667104827348672400110072635757968876893803702872559093212307002836517409579171509182346965920710841524314548000523579206530645731854590991056269881119181907389587916750038207422212817445258486378412449581852294588540024550024406132080590678096813940510056286141366578740678699961548964455433262573410903868952036307382741041979904803348021932951019260216785538565654388021915365421035840396499022380447976801156801759648248033699768580422383097034673026170156380723148189175237605507568341175495979662617338808575161784767282988213859607515068136139301433819762199002073428875086072948198689424774698780691893590145631306281003878247615465336541763743698608591849242934801063466538044562511952957254352853818576220857895797867771820081469284082143228180383707929479503280536886421435780520063429828129710719351324037535534202095411297974145750443738058700008356011392408487908064298013530199494695819671166928985033971953127212536378789233792426072891585863426079793029706054868798605039361460969405661401776159722001134308257631458023155490953850974001219591022577775803608077324579573992877020212015422067967961503900744689719424772118666906024721612241731166006811683787985247597619057395098634334289469768297006274220100080155562659851801452682138905525302997212918055420599271914085761809747342911927694572395266820304766404407069425452026057647739348244312532423644531468176211379145731300012063093129199528589913840755389930024914000904212171790972850058001469550217110590646879832335623372078651421178356864597674053515119308267336835723664207144326311547626829364250857339921350438103605413957636153524873292075270618022772085901643420420533392123988881866360552048319693403223594240290441322487304782808765692529574316297471791801591170196837708920359869226422273645249816567528848006075731844308596092503314483800331725665301627934921725894227792137998725033807455449090905872119391547373374488093917520321000485030633213886322898083781638325994677709644379419931985582656607589512921651905051456825482834614847883864041892947350772649739330844952897365817368217420506367577560392669117538679657288023757642006169994120483475684071059502661201747423747133092774921968913150778397979085903162534146552701599309972668653252850064916358556166442739163991059662816049302904475969191306655811721210877623315715480003283622155738436664861654104095175597369194390701359944152968986549623090379127880817456140645098512991816372849487816924774577409020629466307087092642407122415494466589907718244576981082048936569575222717440486347522622513526923517660120141217547285582309192058716854683370843700996290008149461923910206344079673665100277819325100550000049915001881357304228131300677205662408175852889791609299325288236713065752853568308848729780298202813831285897621379811114373652536848442871535987833762328133141751402630918810937444290426615304385273489208909633461248547035293180130001715416252404796373869958718953876777962754884846029520132455296758286041196987088876252073664245747133025021269152589041533958228507910486844087892690313339232371448285406634819676262662941112975879561378844422010461708301400011134539602559245071752956302866308139756222356292203768550088886102888096259853289204285845366782451927656113966249991970238152181522645563899906213535540299125471842464437141387786661263590264708918759199743210007591575172213334532757886246570333552396561739880022068433873317676355712299313138062990134676733003231002333400079243600793814624268064831144406650277649551988551768878654288903911040510190114856560761731458291053948992918254717177762409938043636088531670989623426506140124081128311322564613605063028713087310783516538819150467594711605666174821793119838206288937493407275529084808401346008068772202494554083322851750242339495302808755593589027221827648980276749837619972494834238214644933631385632681958422826641962620414034400080411564706176081459971072283191736640036650243477939443785563847919792610010400473292762794512089121024633171812871042098346973548722176433576203959947947792903558570394668854518009545850807924373782859944343761297760966768129424931174958727015317819232737717273886647328398728319354630747701360799797057207466453511822156287733435718089691065520614747329732767480376560086400897764466273921037607510484159730530207587092801829388168283813953417750265003815919414256644336709105737479070570298835929262329959719036930659196112454866439660990520693417524977808737578155085616521108783221816643665397801144240336059505803382548921941733211929905876769378032135021635259323275443346964634065032587667717824170395085300953347013809750198719390016663269823968619307589215740949256252022578038862001814547131252942006551934659811765750106384583353016870905801193035466545503172333282889252776805205331112928890459786352580717148641380492168823806030029590904429582745356174778434271159149231486508360287123481704363842622302217242831594648965371187804986388626267687656471627552654009589701584580370710527713795869624540951427625502319486302054016861563805655651303690895045670033346467353047205687353851819126194404187657007227293925150642891002913506753565222650177133687048737354310587177135894315016749698303932303695587405631452586731142010249579218670965561155494216759517242260314734228159424911636204768843019271706369568508628635580280902236657309025442201688444852825297018672575338724524443428863882182702029208741408111406027332871577499034857479925894324584892001794245353589113141699064367466197552894195239585301352253039191149701118989837188487389493702395262987570618969756387572432855366205992227129595606465502109554703623164115042994142995135699915687461234417002990564293207909647116884027288633786849505912519538511239405576286255169777192833659302654029834468762652641832716850167675077065411471247312900930643038343431947444437130834474033116634498977208712129455242143857101864223606781291381111085050597422870607906795057344439202023015011716322949761594661824553097345356139342400509418169749213556598445236841058032357997880525751253191591975160896802990919838212118051635024393420385102480667929186364554496170584627551392952558319935507625491097492826357871967662131337575838172513872782597942241161341159165605072293799278272719440849068424084520769088212954813932824300234013890936432411288288673988249432869869186459098623333522585860550974321637932114943540831002303601640952917102940996201137394259192030387642449141472304212952163163429439337784267227891652308021481252126903419171590196301793642830764057766392611753372024859430555086677894818819995024497684940323618169765372369385246072077205383665401980989594314360600074688603957563979523678715227171590892924108242025013896651864754897207110864140257757418558954779578717575535568734123098952403170921742059567753770926717703988538024150424345478787608525828890697340308944404612963123797582302180087338761587428504352295317779872452022306404877762941678109670800190291398081686509548136928309167735056164133319002175404222134298211670227904420977854610256764046027718470836831094252495654485068072725975449460618824997994421675905580466126303255224674919283888555698364637556504899769305071020696827371621319743059526037796464874585234919571632205282706056811274220025638982901186448297714579211779370106667188516524695395803555965769971733652027149322034845267435620618440752628330223548196689971894470752796971498662417156217123724061288467566511255251599726388441821003695653357581633367145612316446694881022988737238152006436824450492127854767412210512795384989977967961544383140342189846062080914452799535615213883287543679600959871727394718540236670956473154535846043212975685368334426409236895723315198641002053575697668438512498094010166446820716343534649031661827682009808553622728469090354858965634952765011290284885766485213102656721200446506638621873126373089333118391469199846989039323519413285529128765346112230867491641721988246997464320499858580958953980004466582212903436594241695783701812457873849917171437213116506910826062630111820565494754630291007295875779725674936759095377769750797322545389327055275670015158625214646459258275199643274001823994912032195220045867896442097127508553716263471105150371734283853571041965843583279405514804488045924533747322879113813727680876751338060609517725352910467423751211178427946227408583813510257628104869500152375780133066925283104870862660289672181702317819814737842141224603851779106779747667223940472636839283618598644789192945393597362054366790272955737083411242080550065649012876626024104566698054320085781448140297533908802506572438573849338358560632294481320790468278128698016387014903599795123976737156284937534068341799761008140332442081732489147782561716039944571112417089715645261528025777503798637538076429117295843051770387153474447012741161064419417435085413592967644413917636555925709784378630600211826255875368326013097766741072153999833097428277581061898576645354510408175224010740562512691525082966132036270247250760018462876071617661613558041296280442084042832632311896681432308026091156209529843737050780967792192565429509171922911693179105329956365151890614032292748191182955960617954797649401689606000729663175811665263704224160201955222570253350082153509656871998708439967215918089762103486684564345534095257293305922262408556604362169102715827059924581247987600747721110632715110506319210897313950376157937508482166476319767433930975383381349613550410347845235108220701191699304533971558448367237054715074187650090291482574447138032306953139523599141886981916719081484134762852043421173373769155503118479110520422999455247813860174754409675202449493443242871683392219821175330181244704972395613324114993392344744651276678837472289590094734835734318970348221192060601016612986227879331762677866926184930684863303520093543407882551569279004839898717343131597107841825386820058438189104716706206646359517026794730377632207951659637651799799720704707537504798148546013583632842049368089908529521710138969791185852606298401129967765620147177313354603233114304604772856773941561109780127253127557200870618129751982167074013445749292519521718183154289547804315543843213482413494187547569924891128620699712665897693340114595088066413694606790644586736122809692287381103413479189747057252654268662664956687678500748393564854401593491439805168836143643109439610017260017730359292909893365429885708654988513851446254509291108499989912597207524074523786454633622456361395878296648045725857803453553890066881924429700357478820209721590060087013760675736944626779916063848514480018564904680679366252776758757517289540292394391560769896214118233696933616575910538956679292415068616764663876830944933501067671786747068320319757851090013084156102119848603526341395246832399575496267717421192025462152605551521142918472844732033078675322925129290175328682087323921401200241908905559249671942241546216144872863407012786949721144107762567036036074550413672304107023392802410289446975975466169988228479186308480262825354841890829285301620577102956438278224197557073103822749937377080290543625001211893266704945568460134036710031259653408628072461249272479632845294413837564405737425426510457219184356921978529370276216748127630697562236367645714830369406330106107632457482947408466146497650382452353006061476556054957478215814328367581676692063983058979845813920036436239409778207802939448979797898667598555704535058718575935245129632796679299174055891378847295213721760461970089466866079357999966074469207549379711762079431204076008088179724451273352478938645849160303599516055677361782039359391850551703011158868884082420500852654111069650800776545503709679159739176009686278035751131439822928480900473415807967447280299981167807350651976518573751217627102757008895296574954606865121267921352760214991500832648719454171374883968337262043905626991363688460768428304958484921550137793778300508603276333242500648622159295746506539941958043826054036274926108761062894247839267903031770043365433448650114486551088897498603084653980771504158911919789417258038304809196423123911234289133443596396796710093627854252817491719676291126026922481383030749427504261680133962390489092950969624241987205127574697041080070898870797224595797690504094962521662222621698329427424150200600067569129208785896288598585605507800238456111230816652290013653013198430483798197829913757946854574994069962933309024916966770556365125967836520340018322134761956336034574106597018110374047883651251140626397292598614961001452603898240366167317180816226887583551233203165044293618943707678993802948411612583572880530524754567076400135608250521702155649877312026367009409586610978261243806719099286246264877356402166890124895015274398935293318593172396204672732562473983074431772890408086372167880047012018051342704682513579045917571961397614702731313388923858652046941882266721635335416049732500667604807474674617563752445872129055645042226839069173367861419040414119988321439240448870590389529110297672190165064791394008666189900692712131916228850599937836694147386953306542237692555755772924614435270373200560516556738672593970617676995171174552112550110654339130438398764269581687250326884728500131803479453728130177215527829141035308106298667904149152712506039761105095225594487779881689586340733884975170530583176710024649623218165609263561776667992432812236534245363295357504391015023883225825139425352242969378701037572537672579967136516393643043308270140612743809967477062977916377605319914748867559621518312970758082416291407292742923764327164754879902948789533669417055590669423317852926062452193383324608897514577428052213375250586388078992584875692038828063889488331336413647488099643774619338952779658651119409008797275033402687150891132969342019194362940436284121403369835863628330059528002182266305592545035606113393337787797872965258421776483880288563405953763612115757424691404585141471401569603689955800294985326043607071252237279463403810588721377436448664495639464078393243038737074946627781376607067869645077627873087242085274880815925042639422822369956139980465239992556382310857039807361645994629712546248124068157850445125407096786496028785867820340078573525441696619918654213653946731118754418684559969231245736167368905763791764493693045504205418313285554512544656760313036119504167823555414781741154539522633701640593208164247643705919244897950379274426128810763102242411517915508250643469554211672655871052476976265216588889205950935150094361607960011342172443196156162905225643630161148265568032393226087802001724053731784816827557110426844543247152355849567415770671490101996059199547997543034563734863579190390347983703005892871861698801981157348420351117409563230448065834124928522055702554125603559933096669690654135245430038040080066242607905079584908526931660887014908588230209729163277889456492876980865969794385364529178867930580737629866665402140187059876782921409621115019056853372664972766978621096259248890086279374269029260329149444492206972383916611116752738041510391852954522621718912117463539784794246099503597301057655438791869344182432188845926108408955349510407357996176843352954047363208704823986463879047892328927089587025568393570306909778802448757621527594722496094612344890657997268635690296495008600377590591997132814890173640457797204748323566132762627312928412084399588125215919833595898458937271965119031755093406243252859836401510267853367067612498072169344106649093207540147355372383207591613095900997767344458996282608634592954533456261270709855325740377477406928656158042817743550618847026372601450805174492215948198827613693093852431233716669670417167788770888453333661349270416485000395059955572423657812699349070954903732105131106672541722916672018121809839647937369935064361008297866852834754036201663988835400356367106722257246689313836160523445973873423407501946235002021345645088104163999964883407198386061977694350883327384260694365843746227204662112485690388954340180555907172863553162058754768463006973021447530746926031550951866415472852482723344307789558549714793730182400073858061146836204122249523536811240116061284756456899490954805637218969244055957493761798514727830128669141281439120566402282970051031324719281816523648581198016419489810279516916382114501318308530299071601451878860474095453317437682644669216829697709280479603000579889927535652704500628781859408620407889511803469619034952927036049755513063388618837218571983852739876669654967067142491239926530365863560814920481139919422088881526522180142705883652949471219524287402877053395195495545768825190150024216705772762814038330240262908640715967443012005302533648923618115982569493367932666794240918464472999484145399180352149938570064781671332461136973306513162689361043783043701458884867820479821561722475911024574111382346383120369571686032873093306088247615502813441493837065871613879808955977921176183452624869689715005921617428674653096107353423833427238538541473197851575869232841441023328832211398335061982697944526442139753656111031219582680451776369039949045438598597968107715898859812480211174830881442148234572878665018970465134214316367214673203980377040335080717506158140281286198250533180890386208921747109780212682975746518676810492562778613912865181307287002413716764420159539490549785781206408807586444341617002745522063087627776024811902471330337603149951525340181719195195766669711215695614523355394460857269060191621219063165057905000106573245414190054110062154320752853233924686542060643422900857235392825097007235651946081127107920279869032261691349767406052390434833067486090897184062412828619679772903151740832624512352284857240127615341377902698167924282257711851969496762931494656164595377275857715245351211386519258780998324020667504816679919073516607063547021963921283776697280952751122665317966541126554014159457864729627565405731367176285748386957497050592029776377431577797393677543923710249970482652531678252211467167999912609300794155223034596391820408807886391768211033475402919355198506432129241176812984888595029739236141914605644740548939294223063717645694548568828663951047529093693689128451170645765725643789881165906186299774283279221318708686738379823556772879611498221101307006603432056496083660325848492942168764243896640873940632074145610988993640088336145395262760018712377734924342795130629302222309290327630909958616323350911265164629039781438929426355729701090196856134864540691393829752738349895925004312255210875224624783130816220837222940106743319410187319117429377749720499018064685242758563059999755784226797977854166876115598081045278710946512333543029139915404643171454781215143159922940177097057829049226869136546735587236497171943675944702014109218177652163646767407691614714297651856854184851852026644361872998103912372903722438247359648788269480820538718017773789698158270985547723228024155297217300070818611236332929653987962230696631629016590040274008221018760190699978655682551065062699630213605987966935620126920149403751862652281623968167418852321817205405127222618544101451473028768885940332993591201407080829592882532504888263468312837169052193145770182731920243442331821094505592516403506577039637089368404362824047832906303996200963588422723781558717166572320374541975684957774074186504390831546153459748779664891809158848521235523714095316932124395629637158760779780111900537096953203363828268010612833275412265615112231212469616036138727397955164843710245287758577179244401429940222452527329409457327336718206398360620436362892857126965425761068260124082322415331333030859404423262778451560299988734388869433308474894356854036228954801385411426292914657959401467369594718227989566081073974199919412543838208120630872884862640922988183528228546652729809224386476036923879786735173890205297099263783857153487566565221643881348599751233271888590230888202355756770602031470667822713915818330353703046720275751617734886756181308743912108564274022686122790637176442983705681333058676757218692050066150447331985953039013679140977952084070205939425344763689918991689648190733618922469493369823879879715940261171852359818635608875744159536489248224909861479509993093320658796761605341823052465549998348896659586522190112034397053655488219667834812372512088302644796541455055387928863694282704555729152199335386431809749796057116807877482659032370769538090662984780040886450662408197162015288513988979595482050115684903278720743589029692464161080084837787447047772904689403442283640759501182605360413385482574128229775722614247149184400519104415876100078369422596968704918333619674765481472835572356400260514094790444991340244356862938297532498385313459374498149395132468614528336840201126429773023587856542841096433361391455515192113148914148854325592216027495212172258123800668437291867159296849044649167615328396814167331316514507161716784107105175100968312419936156103409544020541125573719068491941163538618320513599024567247684149073378805419483409148223541852127469394947742999512027803924101248645675095372654660472165000969158945348627668767135732527218712279213476217770584221256210593618950886625035414503591155725714132605918561658587615234411436110459795340982059869116828336066530221281939067263877518925332810209029014490226859971386936338167487250489286931398787735725751558027224462102367526013380108045323613660850112586785804918364355854124070745577777541501059502204917971243485328981015697938044448559865155589655377097572876467728270066290812887451197566273184855079833974118253524495888303265443226141039720271599622063685212679783263066020766735598988583086596777543778623773847154793660951221225002810909804118523604682785041441706687216399642533535579686453168888091096265265019133507488089583768422258042213213601552921262609331688951330513148246282718835007149122558736771908896192341391638093478477094093397380407506279883053737689121898136497818834286208809771413488631884551184827252274578007624493516011281784298954028670836018071142995549744507874161457645413747055891102432884386952553073113199793589807289496187970432306773549015223248441259074275194225519942781464173578455855367442056000867348388895560112004471112202516473596917702772855685200727585590321833107184093676578060717530091958748998420647691269709559496261265668275756227038034867236274409283533807855299918005488860334322050826490793766871657369070588238792581728176142646242544835810680514284671846640638544369504727570629038651064903060339930157770312349791706698029459121574786057553927645317854284899191955618920410906344693143195149785582288697521490297359933754340732104206417749409932225420428775213695422587593982144220279430157968286216931851156290908342970217506695704015984205175118214693683890982130502307357967427229543569533580823091783952440738911247361719090701362205852363319400506418224208232670043804437002769766332644150278680941909129110531408492346948717895926844403848935332094304290267189488305721194055206127958757211179544816323366537411765377821811475409121224852348380437622933369704137813205765630025494040951007003619334450019912824571718730406349274920745165315459524345863626862920224774026432359813588771213473178490046521392563786531426369916474595549462514665376218990689069304159912716435558342027340245109243860519514028528867713696403640915871097062257465066563425092695660861080206206512890501426276861551725385736931801539804294298731577986650566514675804737720442971440788298641045464169484554436792784979917843468935111160313460973982344919358663127853464390426477843453607264610785756759228541647500265152132204121687539383320579749586601661610885109055192291065794938433670995954445553073299711233227101052607211370531423670836165869132923955768374001031420179737750691929398562387006349428038525050089474519850025290431888354480941684362530212807734610561043531004161566368832592211816975734236039021185902775798675833225778065262198704351694835371670895719267447523456999803548245400944566336154562907911055243345326705139401261418802857959240873478004161735600109879861992321031234655107177300069945423217520614451943887616594172751938960542624741967966863112548468732427122424936918100418801395163283538273344433804831220266186005782273246465749531533249447484244342034696681151132416378217048194371758029448704264601112948071730935438357143001433752593802337730750645283559937469974171411456966807428519954381115501488580488781284335892051090255446699918101469700261233373171647658720783199555998450369266023159824636242722157683492669118865286014795656787451957255924586595260941508084478771488328871814710112414691401190490362391949280217318002534180051001570956478097926824078684867171408110541949441543484477330406007364683645166560466475266949102884923743051360790467631811813795381850113562773448498035386774511526273057565156713618873994041687128203763003476205980075424278784535582982335974372101105992741794362202961925861709084525810300723533557134328847874522408366664447401609167990920401616600838998977494101012488558437043710960195843361890562056426699591526278171102293319643240604399801132948392078680916307980567931637948081850430967438134071499028989114624012302202946831726703600759248984381194507826388439450557113848758680754220651658605250937083710015071343433904020622624795567638932012959875309756583623112409494094081061027209390726823165662649264349776267564100170624571724508175263815448773580835180904463425268773250686803752773485103502051650137725064305575180788807798845857890510019767378730754563421502439202460650612457649195117359578992275321575263034949385762130318633516130303768974013434413412391180173019808031075554371673500288765183338383798410203695907891889997394273109906053686168383169645082388872530477899430912503253768588134921847930751973614264987836768519424704768082930685503804643093691044498360130569172475263542366447256523874064388117829879956815851242038046104510876513687325938313388660161928928446430760223427014146601023509445032607891164497743847363755786828730814315382318514883587387552459812098859424090751509435860334013766780657613689332373866519846307611299719973486372214684550401465678973887459712239503163753901100031570417383197271985477794220186169182912948298338953362696862634383744987178979852848616695261317098640488380392772786017538072167858348879718105769679822972043047779110539865231887426619596440839886102552554701995762563881398530342936502501971103743966146800732419563084566509464285912011379061213486590496193816939289895988196327193406095833182177230438421476353319353422835830738881107245844506722793482072618736898694344654865949211347721878431931539345500577350570033456841777589543192807184722035014049283382295481628187817119043991166755485772146360046465737527113544110408717540869654685026344838819159913999245332379663755174724994396384242903219092505113224960912688400783855083698258523906589361462547009700392337186643003830257489858589164884821022750044484118167763367866589117092238425646767503923151637063435917675481013921668765530499880832406732592003348711332700863374009276210956881168479214172787960251871148266171690196837632261201756504028743786178656217561511295360121902706392638414334319989861156769264559403445567039242120043210779909768359466529958920617602320138899008104345667838482096170969762599882335037300569162262768231328065971487150304622027036509556573085980786259109864672181298734921829571097091338120588923289484100034176446283440435378342105914053133669915762699809651705521237786145643232568807054075992800183402338407953894807116507647032469700801814645689331360435966314746153411739384961659700574143563748976584758947024058429992130670644461162491694065690205714738914246174913052344996394272666626611517577952389701674525838515811414542994001595460915950653651088056321403123789941884816772507234856167824290578750109382383535969131080686415340471220869081663460222482859936577250129910497317644167816542134592745863504433203782399661553260224285276137477377179817131266000897700392558304677938977237050608629748167212313452914317114922206500907680098352756110942913820247111538936093995990536857628327811816237334910542831626799892202510101655208161686024560119231779733558502314721744333354100398332899987843245021764896467424695535494070699191747219793126788405117822672891483764587198516188420941376448558290177476907461253832384541051733177834990692714890513190566430966403350455907068590337872061845858484036099309650696493386265308683027063038297815242725701614048825261374546717326227639804675108274236023012422240492554374846499668157852156083014143945798496881504337518615399583301156479901049367116672144313629562220697694531136283345427425882565735190860729247707816610731956509998464915019195636558686750161766686289383378397277409157760948137692071551728167878288640041207444821558387900426532510584927426105711773333575363076677973602323071905882477164880101106727335273609397894590199198529614644866560720714493693189137924798374842188922473245478047946888655768734289697873877128008111950533246255264119989710976754078764084974359764498285669680635519959168296684180444454002043829441004825770171098250136323943912825525575191275691006011820562055635687262030596331307676794539678047711422866188382431437831631640862846235150720637845965910042006564689884580523827846069461255734842948322942435523075287575030363556448584361879369925824052534566211437875483039873356602257210876144023511140061181089746397920936295069553510843510748598507528476701227438572064783214780704398480047883584668079945999135321390452781501725402204602943296805330401036318407957471913825485159918145505751108261578601701020289343529005775414627370908463160100027660267341409297251427645421029981714605864115132773316061537086222304839715407802733246715600388899030263831104408204308763179644897760028032623182373349145805825464261092182273590283538392513748921192903963405759074104210542028691439652463628689135527735369037685915796977785353580526260316592409508450667092500760552003188776116638907241298865818484433075668803750915269648462662968296818557587197121152385889380280493469668086242073008936090825924702135661583702157497544054125427478268168760938184442243759079931757141759482528137899648348650424512758229710025671399276527992222824363931995482402162456645741812615264791841055334971734151161062883072887713380719276294065399114440263277272316146949861173309206828012959890940998919454848480679796638220176862828012046547802402592776423495358175854829577194262999586891771727577654704459084605044349788564261637602744929237517039700071823844600242034085720135530375892364690196138266435058801286023036808618784843674910077529594193973153061944914811907421209688797498489310339380794593408586857519615333122264486471134796369237067237994083176727318380908274914495815618120716906495745332927827286536494023588336282935872052669521147897262415944952819562698282815791620020408693772110584908381797070287711917047468498745559305952776737031654521953755858315966146415409861752592752666416711491154570300836446250303388319488473728804892336977759163255480371414594133046891659922418788979582068861382656804779544998273892581671421922930507663945804310632899961832770981744878421677798499786138817960946235303762958084907067405900168247274601472763871197978542098142112693733446092302502259626071988066942765202463328076025253151487541328661903325913298211279081265057075670745570106814933336711991159222283563209082116500028105899181994035306320011302794032717907984200047447059303692368055996743981917287953712893779069670321345833212442076123542693895371349576625499139007983855524152758725067769029129559711376697955058295780335479415291154951833481954924532657126220266954015357456748739786766114935482072447343708692011481290130172196882686675247358073230343903079704873782791882178803737914529538909628960568031283899169790464426941175855637759013430076704549341913679033549893363814138535221705121873837340767214452292044086822981463821221209703492981591751122097374723409931752100654403872645208110883253877497479378321129623886224450829486202623476933527541480224378082213558483472330042218392002926865804650017149351560981179139710279399719419552572426917957611410151725855667803561367788305756204969403540825794223904990669865768114706692774533778581299923382158837683090945970004025038560522145797248086767397860846405800336284666673618348107937166688877791710448325828556890572842788745746251250578019142320997621145315077540465174843367906056582054262588752034278028052322546672268961169296755884241308670005691990985099345571639811800267425357197764415471661452714160807406582869923323709765227916114193247459324206928962404941388444303047526688835152159178654608723553038731772455334294016692390008797497376216979966966865584815154470031126147836923222124397476015110655890057037550504854929356938763816642679172054948629827977711891319125551264848538890549029049368573015250984525752424175344336350146920571746380494191451193180430005690583525726286395196181626004663654146320177701871693464010490772701464036786795414308684444022388539654808211026132424821525509078072224467019745842991141130135344167743366417042255378743494864144146028361510662883907462408664832619318739951661643202301911039771406030300726033443941399413088282425375222039160199535048198468428264881991000135166600170974484653814365839653528084836851679571745437600469758207625684330357004314206397111674843834707629506710043123513261208858614625120671686859577972792136928916534073241825242618461526229895344329496019924669734175945962858402150161812085922323896239183612470945014461718644626547017495419872996186458596494997294030405630262100593266370387998182826665407959072797876953347451579542903863060850248589466994153459449577078668473155544903018737404892702969743653310640931348318122977996273844810557018454810007181085689700696766697591710362398924731787440731052696848462229369310521427825468294793676386085112087518698297040698334713690100055727774434709886039045122782140326501155848574758231061474546575321505967602694752210053437743852012761822285047289948429854299464204358365439867305495771474153118604898874691462433629266746122481853778992377198926518552361715457469671689997102022546075019193961986313104024462947807614229758894500301437397930526235457989281797454947724960627678931131255402068793735399363748692759224092521214870291916272774166834852732713528414647735317526737834142447802787364718879924567627257643169452389294297748906482093804761750962158381967398842100851527784218652957234047830675572151539108431809897888050729690608491258088856424069264681900673294389232215231111419176206078618066932608075263722624936924564783259558625854428528285748644642539717353452885707319082537457562580236738787252435732937271717637123703426647243511915324073490276702435765524801256108794837861637178663952171159074084410344242107873078238504907177419050104067218459386788648532582594793755983144853401115251667776940928346234090321060367351930848118200355554761590843658963984456637428930237459120757308280039776112981004128419524393398299873630633879819140851016804257690558235171600189565243685723181952956489096699323699866595477768784530967268169120005609418488004850644494255967930975548493041848492606328406964296137940414366350671939967033664958971722319046823465956907929196987457975897571549588139882431054893181602318504225233956798793631659774807399213952969180728294379273825329736970618608996050562206647259215953898966480107555724675830754000383838637616257297742398665647606958642755249381543205311680449306191957562768057218895538669086966727048175097713627381750571394899799816324837054810960964339758238132751962739965091876285001041666599046211527737416253655361288923811896033676005444636919939722293902797512450465821555482505498963907607989278346670974951771224957968379860412076724239717471449901473881938578073402590915664526597568821861211807633145165600149348192578881964822492917457754761124637615087810987913615403360492615937336245147041276200324502386633481446175721601629119069030158222530396293280680308585744197274540524285606358863907695552824705068373704715346751927245385381659479683332092502492153024188943879729422667748679075362291479354248655025112405199401100201136424697796809463125394855937539987797193840686995399736669944639904220413860413352364872168344825026915240146363556383863868905402550826664510235600929311726606628427928688862610301413987285584968580103019151819284922319817317924981579343071457589521504836546870009139695011285473406378566360662412688356846427297839582958667643294061446863135844263087100742132802514855134997144964944815645199116228094928818248268615563766047128322958334805063157918545407243170206112414195418030032560271506701773871430915498019716871526024596090334385627744940334799704478058146499020377015674547961489629542145441725168498553493286809165535033774356279078046598619067046424280276051124309032187617443560580228083771268065880984511384474228144502142815290625534485580516709722289566133943840022146471507840875725252170528920687343064829729185352794089035313490031634289693407165100151789084360977012067473588729031207608859743970799687178124272872171177596562317047264913467569263235909061729584784119957593441173150393149545732551263549302755697585379543084357577852552592693074935914114768420354844315998355404737767197702627396795138659394426207352451312626371511451089702352410147561310619617564355026980487154292186049487614754473631398824018178085790935600227402070028231976239858642003806928604536984549287182361049316934041450221884873104759168293102832476711107652216121756121847649460735041949656612333324177214605732766140868206439169609831471801380987314181600556633743214731719268199509881012172206979090735912629694014366521633900571032821553896871871585522308986450190010106692957212762406419451265674382834996606943960622524375170531420454150063238120700481538842570729860884903404594193384378068906784246581196493258695472451017914333808629343481030920152288223086661416043420092618183115315140497348271175059464335498470147947089671465850947156135392759343368375451814949591381335231047598955617134645790538639264091028445562347979638412129582366369118869160246269333760305312793030048579157644409726313456357474134780613924913861594417442849753905203932246986279051773351821034895337738832413521282876273727128490918864631424424424318346640298579332524116993886430480908293201432099650170451298333437035972188220838725197287360967513546646066853002594403415593450543578865973433020889086269359094807873844751453186374631107921939749982911976277923057174608115569114987741091397553383895085333416069166869587091913435255793961646684237012791146919682995032919386650265450386981212050368005253383561469888274360517368512089643637050874164945673442462137479211359350922483228129095765080367617964687635495047469832434020801782062384430041215241353282692555289640958576360588957358959329824831009310735331928218105578779543045390363308545209518232185244426215819331855859109022610286959102443102454617183539181417382824459952162491790762431218702236086392845790910824966921762113086169142591102884798941417628939668431087387120571644769032399349689669616320625145812088368447432820630532134267875526479951820923043042046897947962600348349354447006439704504076379995849443452255049308358677894878300060739306938206392225193904249854963136158234927130707414235954210385767113773869682232143937193851301918947341679051934557517697892021700147358592512597382987753899917130643651324297336803090401267189146012507339963237990738997205833946091658457957071404793763404418808671373497481056402376773040815698401102578716742629779718928361037145229252542612008164127492315629363159068176634919037181612486713093041556562921634756439597317818901593374743756446568054996630167693467594469194414641453733736573132058044567151607955467615628114284523468160983970579119535616015697229654174880952303861205350245181639495001261972352480000272911542103852090097644211906566008196616853006318136440403365483900029734048892971996866305958136456125731165675461169367508728221278902481032344279597272356148728523532595028410736279652841555260118180155429868287609711142983904449240006521656819796076975036506475207112458094761827281316609818505281905331071888440799814816535689293574439215605802150207853161970854822859667816679598211920155852068604557499889955791479635690137232261693036556510023484570373589893417542602964783147366132637226019024379719092121975913391589819799137347909680813944753070572728668171360698045643036482238618167218809453710392713652392297409681367342658328417653957870034104415691891903888852594044238439384005455026243299303871705740966595491184982196781297914445719311172814058741140221089834183232159764779896750201826910915899440758062689443540012773674073638364357935011032890305295710005962950553707611178120324585808307651075093208645448928889607358635615917630262561169409216406114540811622831962446063614782869111526955274431614965023100154274508737185179679725320281248508083289248661326786422707210814443525434633665843119629959866917336354432677506380883574145016140197071337463945777366288852336065207892925892876454315206089486405401708996203938927759417375252281431421206769167218873661365607351833854264398286774203699108148506806470029037846377985173419210603306690962086869432875316116414454732213606819091617282255396996035224180310861453582606896541114993787645872575026391302923223470868054492812663890970858548543252146780650577519137805687427153227670371984163948316344920439424693531114634443676683099197748282181685456690801676469993545752916573703346929721010761162736848505208374929682090641005304672147754958105316646819533212518122369701974519383871306152189878843766589090180652487503330031959292976656932337681136438976719235549063524690077416826784656695715758305400723103989667044049234461567377842556155049272309188207801252027914600215304977940498250752369658796347620386171106374095775373688858706271966476094820855076843393099815687747871705909327483163248124393615544295696290063611757377152790836268646624206236537444541035812575885390222917515563968432821655914580501494411956076811348372726436137449309248970234023013553716931288878406314699706788966725783761799304558381210443578102770048512660917367922522696375189534257050523618686993318933015412158692218193344030285990302414355377897525005266200838628143527732032979564897641677430700510820968056937611423093267088684747437390464979741717286204744890052359495871731401844317890931203308003940881293930198153790494142229405449215233915348850352639990850508962726335399609196816518262798644523827958865258189870440692271486953851570273054744592131952149348736654154655303013588424479455952899468902146540777924330125472789249337757651897375131906878149095669001529161691348940750562590055387913398291563646730099591473600083804776334876339428422224607150361044014744182731004838184056171534628920355557229870365593671920706256579199096080289230372670790475306623478130673496457050503248560043273204788306456165082893494518434617198815938886960753306395013235438085108507515608732314452938399660335692587255265933750374570246914628049115794095172388312819936276396254079065815600234567680770265415756909267386129931895616877523684041592430221766985629315515344534962493756512038194360276706478991199793739367479640222574714378281558573920629833100653589205458157441231786950282244367005894995203556354299574709439049663720019910152588701959746602872546348841322938230002161682396791473425401288028945894371023513355793630249862490138986812596914369985530290566513970117147487686560067382157567323934586859250449786325986793471409831039110173485331380596485977263806468648159106632061159752056449308423519029125492732916404433857022238615277104379965965159054975451738602132261007422904520564804525433890162427312855076174803588937022530032577775935429697531416071552403711086774123225578061089205269422577504249820323498883340618351605356452817160326936626011929937133446642869013132844920517145581794522848854029973506748276154011853427528093360613181324613798154484835003093326157822306321700822245668264214692181596785548890244957243549413897805979185992916297207789109875305380160281340412638741359530879687105079821817094082218108165676722283233917879819309181231126397574149108122660123723140213351992442524253196437755893327692686583537848762291975605917331939861873423188588287628672691674366818500573717239883499726618431528364180512535826647718157375959445100242797627089351668567601537941248534626471799960754072472498762926307435548839072218006774747107943397883363735662500339329323998961845224509942446657177664064465637540453096901351325227182035300559565477123496537578437234822297672094447510710818340154711270473959418574247908003526620226580713214896413755528773614652937656658701863587997356363763909262107936286835186086766148582290614432272867350149841369058255039094773039092298961050639605040116299465118272960045979907489710360635709631967645334376426521972394166452488902042258296030173387710099550204440439079589689158317701204624839090753754255111883216029106663888615753950860131963023687859568913419695265949645726059885272827571415815259570976190211661113406320549610082070523553668654877999736930704925243184786795755233101820572899973147423168137984374565612651207462260178391258516199710955493350659467494547015175910872448405504173211553303458105728739110747011209456752835403506107510676218032160301412263170041126512031777007322055780187372243528695608950901656861792719295069258282541099275151588640220317094284115570872484518227601597575970443748331105587710300350039906870793001864018680681491929505550816430176701496232343084173674851178754498502205391180285113280575262443031838990624727432629491243652611236805355185820977577843974743657354648406003343511319533773663821897845548914479341965540756203145106689016761067475549330077249116942527908045245880439827588330429505223176686945667355134740273310091031752242402500460189598741142640482146270778901487686173178222745668906614403078081099875807073870370356354618494214147973984289848718842000822753071294249709651716270517237234545978424885399597708837713297889303859739162307251381915858754155071029829508895294969737004938440007344579491704788248987188850159979534669591647416569326821203714817212719688876258080747488293215938686341219485508667763718840019169521098354999365358714474799208527250116301381201831455109183608939107383914954426807220793011842768399227102121397907217548633055786905532421602323592551442922550951091559195419792819108272108593706083076526627427484925413442322301685996140391433614287031701049774891699999812887575967085676501014445527515335981079288133720338879900802039072740221741353294394197518549737916081559226748823962822047983807473847598340018215589022342347791293140701710955652094978203779435045975313785078404835196669989954290235222096406330470409324372066786702108628005915705686182583370014372631420712640711488807322665125944630300893370118950407320914968211669428055419890981401053222093987416544194925007772808379200898322323241730518775447543379963168650355220331846109975462794731414530374430811057906463312371985361566544871302536519324337641726462663001703342896048268523813338970542529626739276132756044194103943876610905248979734416462282587438209429599592393154237391456351053395671852997525214794623418664995554085713450457105010776346717981365378734696928790683965927842686684467373900950938806561024042242960555815203423985743784201135229519787062186487083114154721805038867022036630596585168876487691500826344764975316278137573405188115770340681661075279049159020850010423761351198576263604901264341113633803872098921689231848369557243552933062026097789359373402388567499593895346999860370703328044803576609964548712727617973251342975247667548531796436677051856200902146915805124140099213695926771404763539481394390057629708048301997997719245907135349236600717265965217062277794813219552085221054071358012651735207496759831993335267989219666784107870540947322314530505416306036267394471449050875379500530129681656426634949947603974625422710641970639395967532262241344760176582412954073499606467233344890887623566675204818450280833799584526213067829587173276533106126115073827425634716863336889769553493811830719327759271424913656775131893905435176263401908465161698655222604932504457500606338842432220782868567908215224549005529771307164535638184168262714833576550954185650372157919054173720335449894764603139149257752139839113601917571315274509536310675495707202138581882060831138453575159936371342934132082214406210343750796880381703156085544744356453697164136903982452206402096313117780469572984758772596599501721908375124149802441139807839807006382049757578374069068706988596538187485434642173220906259486258850093449733010215081485997691712153142554779697674658083361462863223098156712496671127516765109354462962346045758016551119559093725392375758583061477332201119189499577696988235908740225063174631005559098840002648205176869007580666490995283183331137521533737656487705392173268269136213106992918237998778212383981016142507545457058621892430190761271922839659251547847605943907596147652118306591733070310677359174851727149138746142163475616852157153464945591375966223638536479455708933586235327502321455308022977137281413034365935731628032047036457421240475156952326366552305330156384033853468272543509572243186790856805993276898093754724270426716302316098207672127211043653375557443842123318796616714702753114936550513079713586164035758627795253223157518337200999118472035139853966359459726115534264768300429183947069240660743478185785746686884812691544132324728287124294990680179413442131537005076748221699089466003208199149413216406271552782271736381395589210327857763491836249967412544798810313563033227939256223014946723048665384417833525591557250189680303925363216143791750301007215986706322041371319601424463240699588152503468622553860786158890903209090632364337978876062392659314121062239062272445333956586586783106620277510128512191175610063649765012422249035830012729420786755263966378357512569971691290024721428710350480855966258813253893920696497872186814073613147239717088276181781748771594765701284878039395141974431185341239747857000843062185487770761304676524906773972122148562123345519106529198372618189525165620472003843889451864260700605261706555591295627055756318210933819821290846141045855814321325530933562641891029534186611542818917870629307469710098140374651116561334818944603061311004997864569770461646791801139213945324689500322596523916142012889658789098269039745807107284657267496146564921737519995763371428243197133429336301221268654571279776279665946320315653124638737614346405653292032146773618210967345916742238274286915660735420620309995362402660694946307213221596648932762893558527208527098713520259721097478970538622507198966556484774163488586630065696277218385950763760602830167534378727895794293667357453058982445449292353995633319915579375716615695486296948029015070110459835946979484130405097408411689989241343840134756266498894672554879924551981043313770713647144409545423686783032501532184687628845247000093691747683759573103895345791338904775539913797674001098365418395900081509246678556366892215049772568965339788922972143622833898611086482980753417719256269896267517387350213446498873870558244124923983151006634788311334043635382315685048058485660682368527293903043016785181832585356509426701845590599400822004527907434481134006851311289715057664142773195108246863887982588143993368252902939075897682379908634576012939654109370792029718073666662744151869735402455185462633550247345500435431574667450087042085684358070140112900959248368591327297628671313246576562634205551143073568584694762607021906662000880125611027974738927524938206825227140111833009077846863088351119813213522284513409319519804805706006233678688410237639794218222907141885335987360216886858103185919753558623000567402065947233372806421418085948708448428884727585550986946496430124728248187394643793730093682664219532211206549096003142852710225604571572058889206422612060168726610600896902788256486857087302976511666498251077981183099213274984039441462682514200255574650005824959548603400685706714172686381647790646924939337488789250790699897485360076387145595366449592806114468777950995331649406721549753747826515274261254602638879205218051677287434081631640849476677412330713934515746737316109443083511595383911810084743226351095214037594858560979198251225865867140658919680601468229697295267127814443451627936254967300275152277128470899343564880852111108470450593135540035866025360390500798407556044320820693919363949211249263992696439499303967271290855941698622841907882466141200756856703507529991300656110979507325567830692199811161311022513642637819629606782732674985922261198342548135491109050712488035800599959843463900827786690347317416917127727671945774619295325004693019905961802991471062587839274947169073224581446412448035398422573337496986521592026600114758415656763076738735558558456737258891568256507872662778933077292792050457109883257372864084236450139172880380306931658159363799365148731335690618868468899916296757366718856245290116515840300558390210149417819485405243063909253862602917868961465394443883456201175086856588314212036661728358274555193459171660080339570242085291253140159411449214853355203530246010376839015514310360208949419870963080207747622437376600868393907626529657400471093926239142040403106750855529529711288668648729031393611758045620208962723648507744715616718470933739352721243215980299059014277659748075568967584672579207235452424461319472864878724402774947040079942060879148077083443496620986728679130146243537759269019969544913131117653054575565211226363960085415633324472469960489815326994007156163847434207116289935864985787657421080080416049644904617013101617648400605151892581974337030808340654921335143400340704493327612144489126412817194613015575805091672129205223868272785476765293350879872662627417543325969758514504891208637136852965160052546126941092027621213494151225240875819581535209896160137543638038295416853401477029271579748209306224378168611750827988468577111593184883310411702726679792565027669804150294137137933497853364852464400787135687476843129105403190134066142606872123013610790801964905356592287281163503228458319937384737807592990518303387902642577419622653280937734402835620861240501966795846530186185039443407745213163678871841492689981513092468331600346374206093010402639333014179282369754243913395485689188692703690081193168433166718785380359032044021633574108476195588527511223606006501162353171830103740651026135982686197568541610487890912322027393309994417026814150568492076075394018148170199283353683574698421302261723422704896036988445505862292737724111496604545196030458141724837024790518052064559536648770208371939084605043327959041821167813809100030226033684261488050114409105611859072280726336790526851853556886434463150533242667794714636655293901642136416258118571974698579992559072297802605562506136726583235809666077974690836578734455167833341306641330444688341335276735659458709188469062710247577601765988929927925666890410029480194243070586130515587550965622768364970096954593903330566228959607337898851634375841078976476371164399600848166796284046198328862352057740700144816877869880002300197004601407761516827029759269187544429491614228878975850865157846017430654482237186616278573291783746711354455436034899866045164470904978626449050370298332879428783156662889019207945492237689646197837989502475875559358253589979640468726325509595606315923313186189451258061598870358939202252668469776773339251611484081657110792815230851940416331742355093723700897601317091027409948459105356069467496770778987849537942169264760865275814295199648658546734420603756947203117946380711194993402709219062399919815940483527739475199055750437687597650834470665274573313880900454740903571177945549403309616033344520797644493648701838795263129271911039062777037215368158234581209024521150376940127290551649026668834940943117171433672131243126897919430862231011340758728542210210187473722183889953984063250239084286225922210763739807833868876493365258838124948635633355367579053105395543236809806670686576626594800159825083512768893893386321250062202512289004023786730582001742687759782185081025454653480648022895514415924362012667510973113032133796936727043860861357444957213730669468327072880332427976986534637376838237171496364867955769475139084941792238314984472192738064687900243199146911796916154665493380067041716997132049002904200813790132869847169967200663537610666967975498882706437089041970532381244416070733723639224698419856042478644973642710841303457953127483165519420915074898848683294433949865594933780253535261554884535378492272802434597648866733862760792895963280201015943930037472195584321375955330148122982545557939399855620377977855843334912665743503457841565548493344250777125857004649703477671664736024062863152990748062364043402273741865671924183623697439114312453724394824854317808441227805583144103171572083164797662611138025372917357393454829107461667953531707083849870722074192604791191196058751436928853660381894633235374339914196093564749664552584298453658978707664430099173393358730425691756382566221211176998415255368070439776534504417988386669909959972586126360537978801298342960560019654296942975237968587328980388381814757782366637255674054188533054613222275263526318357724855380917205196141880754007426666809274390135204762364475395339172705049527738555891778084813363260864944759194773858265243118977140400824086031358433123690819527932057716292617464691339363994686481954621128802068230024484238592868548102921025236348446657642302060144577744154207905387720315472376568299996152228100089577131024329810576429649830842291789595268607641580662510911950867148877286466084793329730913104114404363767111085707448026693313487441843864976614465770807777187062737328803194046767258294725105172931526574686321867075366128255081360544162551938486765564596972684374672191927171425322552071200461003615931316361793523811109044276155394458470484112323766500654413896886712182823569143508408043078485720071836776906445616149565362506737906825799177911715531061273261674836647778912884014213945835490655992820456602311007040676833654367951810703989479195498953110436365176538878586544032982626184643421981317090175212154349149345242013980718672862306342053258788143165019300080272814848587752143251389791247155527122655709942474313882564332933197012785669270466421147603049747773797916234928563848558501839171145273876403161081094940385720658911262927120357190257654909461543063147713422175086467592552702143774745130871697705099938383271260827371151669070635937720837776405625439464950710201523916906171552339108757977471290584467868525446002370860184089394497257980003377424964278053286543073150179754061696185882874877052853762358815569720969498946827369970862477606596458872695932331209975102539539827884164393196777004236745284233042629894756449365402888698388070993368752362386774094220415780660974027748155889945437334132590127462534946866241039123438404124785880704836834478072611715346977755029495543641030323276269714369694719824178565400714754469135193967946855841490478860180661460380168351421411494700628187138692485704364192902133953048435171494505405754463679320834712463973247183843488889942527471503927163632254143040709670577072689089559176930954122265368216609579829567792352006782707185999266650073695684649196481226714006340400328898840367727691713118390389827211278304613022091765734928736870299680277243566071160611316118111882064354369863236200625794570882893423561386439806272815877882174998988542104444173150535342852662845348885796855303045130067715380792108978304927098542925085242836816832748014033569616118930154675042155057438812846154145799960085743053470943418279066869586888191837055609949975871385685721057592052370122943097382273326725511690263663682777450145815782010237035215138771122026621542181648533286978539312724318634343402465867728024325371319208026048744665941223946983953389570120066031687434012029414259158727904061882066297520728582340265588477840582224096513105495316668239714606232233001438003362397790357553988084484715522818285846130992372197364006964524974687562635772839075088164123247795744990342687004727708757034716500307599057847384604327107660525422865452029368236475937197443218775449428957817231677194951194958644917886565078473612563860214855202937563103945987329246652649356626921202647348525599313594904023135990159827693412570599115241794260173242530650612616556123070853652664622132969561074433635548503122246362816088975893968237033633790676648976956633250801993377077558007477729047742117417082916315142669305158856284094191567728643641807990485347137863759558169853915022632595637077073236955400087180351301786248438145222280640794501239824175824521401423245656493874633803913970929290616482042700091373864875085397158601529388833477983088524761133731741764027765091620439154937759995876794965580863228816920347276331460480483666186689930712705337653096825530245929793950144243970090239845488272191256862041918117401716232579367185447104289120195240069181513943071825749880285170365222935211230013637649644665994944074510014506418429646008029495458880112666050773667484139449584724659224302638435801158018022406544776996794921778097166572352018646285662599966758115546840208132006188409959943686947872044685473283347005168995130124986754813258576427570377123958541810532968213675696761855252729333783961586056670940247171531489475430156429092248289252224845281772329270480043141089001331985887646744876010429724186615742865932019260726991638662963439631622664806706470290419471707479718446969354034267747426923052303052508615067066807496519165267256587041653895800257903749641260269458894232976248755631632503392541669927168049574786784303947001176110522046940539681787152639800531756729076532659720693814551170026644936216733567635765769851427836473017889321923697801964040960888638594865518441025181258831736165246222412963333682936131098055619118555434032554100278222472495182269191978575749950434007502687738680656191161871925441283895974130544223857667657861039762210988752102446112862908696344478714849091188699021231880431445312278387078072774191289831951902372364526553039649713002415760272894235722628921838917779951174687057018539759059382392023850394039300240482711168476840938458971494870172189204390065599882004416087768020311045485908030498723130768171978424421209433902574278829518750845775840374332541312430787169364445866130671003415548177080061051008411491108172904255822852709841089106158622305135462397169994340620383258787386034219164301550112466331167283572759041136756733939623991182217798624446303734577506441951903454182128143278679395441428952363426041106817557686939108696188919276766177461306078696573473443611433046883669395234515009340404218838363032983949995954687984230718089453667422736727134235732067225975557221744453384559757129544336492222887153058295813605574620049333567196949649749052104781172801563994558596647164244361310972474507775840280538296561216130935192386080832430880904716390722157626158891907852949347926681397648709602598348919727881197650152903249584403236417532262906550850223611642680887775543709733780885091096230867252764526633997944643671582785884154963513741261437735927941078435916894764777135499892021377408612713757923982318454354535632578650835652035932233013265928174427676309035317105334682708080336114281283675501401439696060032627315783945129408168245754251476526436047303053798338087234405869283379565733852655300166627329688473324776086895264701218618273497716561681882551793276824249353081483171895205348758333662563790171038457290295638577991047210307721792617776141526118855760166576806982192156074536412797371096183113167655960241024602571464940028071239225628120443500794868847832420084671258333340294256379110748668024701256773930951164369047749422846402089481669995583370194629016606560228448668180207731443576822890089748628836933493196118117158763367194821683553732348056140602373116448352214927231643389007677295714847361437226309321126266925209040797698293277586128143321041883473164046434351770373055605802229672413902059910307246999389557679310459758707257977201468676213672040758379156790928454956355812346108528662062385429472801050937408612944053008261516431552598848909192580045144404394331592930954933973406880944290934922680246678230014069833938585526653296600345964932418927478920035381224256581911163128745980879257682463087040656966093437290467197669220042243381545825808289030319899052197134431851869714329866637242111334025216992691185573308922441089891110996241923197783450691475293548443664890374360766365884238802364804648693799840159947077273787896357126092823268234591044219198463898566985642931547023801664117953172570252449176172415517740930156818567802441403758720382082964406992644378544289699547822399189608903010137796026333384430708978351283981882144026570309931562092135432003772217532973943134657931868406359431012102525261827746760344163393338732121890942562870096467540411722516840787679426061322047162926236944491280113810681040970053656287141207796149297244143289098008958086757812170072339745710305983714457406495367807696306661212602790447922522914237594115174581231638529904565446674891911004746367360394878067707759969387612047176124725420594253505609108547491655238273003868918075396110096138354770922564706917213061570666869563304536534594814888565398960765652967786564048377622010922528016378837213210844074668133954269871988435467868238763543578080398020167390979109764232684714018034700981157304798192519229894061776828919011134274596812639890468979421594400443228830488513658557613908681743405790820212123855568576078980687803019989306102913354896234966142831012493789683237408981215631396879726381970436031106623840284044818276927743973855692497852085684373584755361783585059264557349593882462500789071751990668799150050945827906847496574482454027038527169700618321451783997369166513968440146038638096873273344770774838969142518346496590112194753223127232545334271055991830471787614470525323823869115908305578521074842486445428910372537260348867956382204461716883469132607000440525887031096931842369044502524033470346072184485064151539172536402679236189788896064645433580261112000399173188013009885373261509836322421890026835663171999865732771736722871532689269050968678109719650168630754680644820368095158510697790511349423498824938060802314896160842086292809692491801752715437492419945932150075524044365990690302480626135137665256041640237692413836395522240646364192896885571587937335343153874109561532386923829985270860701329345249106876348217189147512076782876984630164291427283553797427370522845921291108197437019358483504225142052054797885700537879997616420421934022268917646997705133190484034936848043861848812239744636173533054274425163454197998093428894324194456109280106892703008677703124922693730554694745697940917547080551779948633498188360594753321816461984141723646250012145957197230639482992914170890760711284316018063897143064775925939291820421929175164487019866398893625260854507906611065501568337584183357003493091580858240854174910243487882113793175129444855290592459901223934958057417299175116065916005477813802408550744441979692991040406544988878608337994826156610360525329494355948959767833203059929259998488541888911091867370819313630473107022130603956252793110883526277604160019697569400495021608821613048329469505975641733027791566416328798882815428155668677411701017559847248816057701614005541979865376374568264095318164580932958443971234063153916163879852996138602216125829796179446754560843114944859127006886090908258929532876145373787288416187562527196907827107893600731240045751115694163963238867484414032206861480820516116570564138896041721947190552717222962252111142286460425480373468299612319901441645491466564819326701760725285721422867818694736011235728671660744958650938815251305345029373043051877723195077680680813996139174621728832641981544773997315711112332021415044056157957830762250384070598686841000633918029827419677777692400121123246944946075434621151847938151630159476141042933227220322884930010241541686801266532626666088787706304861103661778428365588982895168250041156991882541095135308981889399033822769597095897291171266919927549003132054220484518218463941142671462420534255632801793960694732687063852540026466826340790651789092368921549327116354999069489719412302043106273238474561861465742972343886289389870797957877320318464728200077205368928106392843998775350182759483467001930872656350663922593824009120210626742612101190788102839907231395400961166494807252123920847540326938966920223952558137246132442132473340999101465480395143480685686701250130781175594492801769481930893329832555108808751447558534934842632532575592521117775356460318268251582406152691049188675375518426548878403874309174086718823121604611572298011514888987926113701123211408121583569872730794161122650124933747664862381758884179738142133573743283556041837646407414656463830857506811682741220060005029667127294226969778977961320962363578205929850968889218437630059167149422783286553823381719560142035439503696190022656329496444355347982790069895222779843408946859760683911877189312345022213963502544917736352655998918482845793414870435116793638869166364831006396257733962969433264459162393392105350944117213261000604573300857498915377868431621653408508815824957113266404997888502972502075392821050027492082422471383969751572090206801986742456460639659020648554216205177367670329392350817870610708927410067293035147075458082880163997016308715345216432711152184192335717347370679837280019299213993494638732223146683894578596615685628285060850240682608162342333822599291228366760882492779096329140645956348653260738479234348632751392371950264735348756025822140900341846772665651594351441993642612633630341880704704209411767560609805865654984704297122352346966575724264438203906388433947049563823414162231021638606231814156503160162997224770008992644975220160975927451600544428411319533560038525060365284248690426176353751060803158609258012760243701569376134396092169443511482274695904572563303504813996313733733901851863337547416983637480504639938035482009266611900776692047501304613726300553272608704459527931926190507162189421782843891465099478707301521979138116170125045174246440552738839775856325506987350919775952105538972318149688107076604264429169683817293968809402159182387230414256507503607877369819925788647125892791265849057992702994895037009152393665579596088820505628933055998151841378457272152544471414729496932382407904008733079020862840702021421081011244253105271237934209757995333962238205327583718624457552909357498461598697506064221158408704233720347871619935871359329407705828573798628045529558353987435891290787882716648624643231295250883733312191913817401790739608299647408048499067552414706875171910094724404382116506223441644013300232561376458711990104521019765289090467289816518949996413323984385109492497046621672810035805690846619593932744301126334065344109605861677057124559795157622211093344277291473011646694308458753725273311790171288729011971600372379989163795923641106043745090394097630270727879040315487627873695144751935189407470793774681223292788134853515794556421615309212949930279927580325227681905836163861489506462459482307475317737194779953981097298314092466681443526163475426464516987762781799827295336465860850143642378884742999651843089768267602514893217637895464633351134900709666834247206019205272733004531258024392552043552190197436490536039258469289552899314377312329496853652083905556398403189269388014007979452447783520328086137704809483023681595816194482289676788469457199216874075390543531122680368918995240709379157541532253421290978891166498394682402261323571759995138180790900915930280855004296647586217059301641879608556681926648898249849153190129529360763391626561327757013262091828384173745152014572202384806686009811746655516579918087217933407018118858437429092460249704971686852687111288648206498131339712441944410871319303316866526491019934797406578833442191719691141496935458507783043451407594212414546854386225022861198254073639190914820252713303865609489480915137170867383410665087480444480070902122448430192537106718328066041474579196493564733722186845188995735884685916488610356850548869053702852862867740328152095232810826482316156087335979293562601886433545165967441754861682236940159930896964291343478663857054080129233175015457905966627668859018457154151858529955664933347767690748470557702300966246914546899822345663679134442454141073218103928868139200097750117060240291186017392185327937110378691659114064539836599836078899554306832663478722637538460681733765404221627791157167836372619885298350063289801868264458306530551088565562135093346463974931715825342490473486510130669315057329205907663073938569386205211880547178359298538384650045996804498037692813462085361372848724480680054782104061440777755389488371710638415081319401076885789356697440587807445986944073219282025211394233391148782329872962512253028459830048170164707373349779220465350446168470893517153805322444494952946702213466773741826939377798009162016800320775414447957293239257282519898809587569251963536348074198731181977372470547203106482218634029886291612413779376415170414816308059644237157916871903210695418710690569137722998884445026473315883480772479407074623263870210231094253462136437143720731595642374990463879592232065648715964394243298604906003888129292707461137228555955611558335187823977340221703527213573416822259118602817485226005247507735119062017366264515298454061553993716874135176085704634492091179171334910180458326649083979591592739890491509920387667845717572622831369677522980566771125952010840654491971438119478323027229595993645820073744093290486086970615574658948913911412033573604796925095784201256568659893825062931382669215323934713789213101514042250072633908571822385510049464676896016828385815525628052278472350282430120358268370341481994175831565175234959636310211408372513747743661126805625458957718589448107450277027528487583677838154319987226901614098448315315666588537763660978926741203036279112439593129246026326366563809940623285158911513514745417168619131533759921552910577236643832693666485483482402645208221456053467232572669598146831142594386172837479287115651918845737375510605864011284093529083198691876857484482285375419612775847509645789554516663916253224930618704073750414026166542059188342877935881824970099223141467080774408879551123964609910630493742195543310304902025442219463472912529029654924877456601294311042849364279552725160624489787813741205257773169208680436633270575933398204640535347119821359792870746468939891132669743170570634062861410884584545461306192756686616075053326468789971512706355913671057607819192016748207355964656984914597103675559037461385080775712150454391228800920934162132382545975308706498211321974183626945303381849608782352408015208140010278935320516085221676171941946234324075870831991870812616274426731467161213372840249855762280014125013089361532769196621383710856513925722358753074366569210203491068555884510809767068590298432047413887908844383581434884379621801695938101309800360656703600478794885896064836195803889303544581826232133340352090813242643750178619707504323630970940780491251552148742604426074240902454116469600440387753347845643521582196896107780325065513076641541657002677409750049085554937021800827901447237851837529921092236342869491109319434515766486195718645582702616958403355236587058640219737501858313438184767522966031283505890408423673473228484955139989903216093720404893438558288156954244781205926121995041909045938651449879079930641067930034688113419863979252434551374687914214969206821020207133150264509861574958531290357259729053493191865762778468346146181714183584630922469669663643598745970934839551544831228216592127515864532776479139654767272592261190033851645240518434859689646173216272190450362548811941567870533763093540042406487408565260488321585421266872434591931537822464397038093825033686498623604877512877309510296329807600350122001629172545135788297400990697061983936516002938059967119322127620146200372042376061158947102396527801248718497897744369679980443888897110561823737415509725298051150777318632208727812126115263076838703717866060597603670820488736085645955220410080825892274255658937731616275688849667990378653396921000633602517787958781490176309978606391951084452221154102494714200347633141664118425209944661736094124962736025392611530449196131292151259628035609645440520502419704600203618441505683041550674849402689605956230128374925819586018443783739254934488483605226316809907367060046127433698413034871376979343115723127753198578154347501151642221439018109194341117274509790308868898806689733998637376180022870224670387480288663319799570660235017636901459069757624553762123559891545245718482661799993187025722619469205095776039196080606590371232615766696461533210818963478983611296639785908662656204242626260100569578578841805086177054027315317859492241052060806326154532290951599308717416649000258598445120679831716651687973519937510086397376026190763964338304476211654466303073522891588287167172230348792990617602873003146197407180871050071186732519947486108941381814567450188425040652937808351192007308828063393881971678379027008737580543460073676595904901016757042832228336829882297114953750695503324358069051014169911383046741142622362466180269645448481609991776188040683640529834128963081276258293665728562227422230037737259284340765025852757483771985226739110303081599749343763763005413806655319738900502852162193104673575064970144959026509949549058824125466377527701650587038682486470991738546660055814536063657158452516057569689556287988047146927636310157333689520696362110256741161214676336437527835778377006445443102572709716876664143546700192108419212010610338606472392291086499915385859150219088043275987935295571257346204408918786940216880250173537534461364938095373267065697082420970164258462656472138301263683877803383600446888724069800849383711143264614343317337244322550635605000337021102546299086004179670912644315660070172448691053059837572769958669090076010305876805875512246829555396325761233464528663414772567417202722331556228296037541470372159786666958726807413452740837851833541769211148754067429226178215742857374748176425926847844708009742865457697883877019625703594108796700032282859516336722056505234956996460310677268220893866656747035769031392415240816475620853646800805668923481185223431272172530614568324663646333034814337208811264627433675582337460551909203232500067621630941152243634944394960149686632099155077261774463315272650124001429556214165075511439648773331210039325837551299900099895728836361227614414265349407112603393123769491661784672318275716398943580676007951239203435329938776532856555758792473483321760001056131654414048354807724749262316174931557823090312963229339280123990923848004804186978535808370796843128102234871228233035387727294889679850118076430270394171055561160146648841151609961727889904746244337915357774720747712481906602731971489278895933035974125394272703167688421930576813708431267790899654156066116967575795630076397473887483429540911583781863016621588454691544977800805561437983134276145505800788502679258919459252729362976427725166389540835637754518193064460125755193937678237910658064052418386909687706421497831303014374603595547423943362112926882586989318012263031769537442752400915289693379749811141188650106843644280681585535333913783002327712585381022966516540540353858266213056910809056104983569696943743565613461070465498770942115481115280992868698343895200891632124646802923846760291767358097339273234769810008846025789007076999388999081440274711343152983872608804915714475745753499698168657702586558211557823626403285225047104165768829196848495322173143518223466806965621102449506456934283227349663128294359174121090468433581251563948278874599684255880034796799743230097803444217956194201138884648354952837404949670773461831382417785163237663324463950001807367901469129453067282764363982953799474318535939647255190358948842287719385802656356947678193622229190182075185079246904628475008382420323329967557223441026576390490588222449984907118696888219203333680523865357673383423360037916811801976148107561469783317639591010336011289606861700509818615505350676268072889696481814362651963032181706798272514852348298212651016419691421196537746120062427360806021601078146188998345682268973657647956392238537360933533334551380687826988375562279325459736032624642087390093063966885044451266696366152628381428117002740475780014599329318127939198153503522502292520108326188024135013872310586901984039363028854773558531813042761775860167925641516323803095786972558782590365394823922696266701567844133309947958939259690063403777539909616054117140859514283042788382028077624504328177741049462492710916959708514929910325325791033150024226337710580905625486558180574148833084642957935162895313914921784826869656526473443872383078373878402842626110902885613045822616969120970906076922407778875029893667894887458231060849969889178156203310817438342454793359387045747903532904743207653459720855630254163265828885594774431783199196259067594502220017235509072444984849958058043529191869479163402973547256095844312188343875697500745283715784693344663017158246865500455371142316414478975947073360211741113590842338294722167679229141624699090651919135293717974741772328770661995160220774056275604894401808432568381580114262435005103984751327563270312088001779509243475494581716981419360145115485142360979605198999227374131276933506995030438001528716672083516624979741561764718983220760648423965511973633305735564157170010728862393789419129030353312016636131184869403134510521140684990580160996949893603413252193831667185905398611620939620124954519100845978737995655001789041160857949526266312818925254961895437278250336227343534155261177349338621589553176876109757671453395268511361922123982650603497627685720313120599170257789473971396921126140999212160136162197964268396974414479501818397814506931773928455521396275201068516697229991164334583301171714901610128976267741924688491999928850905896630163724946910184119013765564006740299097560521265278307641995178598943914752531801691599537533290327002120852988481930299881603542453185164100032913681774636750814776215920044948142921741946873657399629087250766936483614308988830991677999512804768142548283879797224264086196403815086325148068131811551211192927218869392564447091242623355400896616282898925981660767587222022808645385246683909085288762541143738238038613377628569513545446183952614719512078862025598530298036616447084268209158543829222028883023650187989012485392224206300785822807423752051005141757017945200545721781586539754739438160333078855619210276896291656191878026432336547299528330632809300858305615080702823558400120070176837246039509261032406557842487293672104698589461521829913029498756863225761676442793454059493743232098295389190533275216009449077152255302030847053808056871585298558354923086732612202459859982459862893844215604262348397793260013494146844730867374440790711757524693005009388706553231187094081732775827957649830725076944686650175076050175254553243920413792569034421229149963722060717089136751499157228018735531014770375447171750170606262632924317264580966986362415529517488603112832183699220745226866226995249397578020017704152393545172644564024510876714311143259328552227275346738985296432982088413915148216401777059346074213998335786319695482044309298136192502089778860800519386200158413289841774814267443599878923901820954727922718872304991826776526975839431185694797333474227225695324810191278341275708330888709519181814465890498410665234925700647269034643920591034021787827176956816031259939909195350106380589927581558659571186413619207096404029763362828270393106693553934447622200685330003637532993941364728536592993212870916675274105552810945508793701547356993886962254546676066141832166895204911077383368998014408711109003128219289356252310104248799245314999847194803767144778523014280108987503798907187765510206109768105842019469083725022581294432942936241241463218043925786540343974218451777004858606439577573023806804004563846116967562372445556643987203716092025236309077792498807807006804299751193130562596469223567011000927269096148071399426080968085654504769862937048993060202480973611040039365978950020296533418759792969195178575239097579677118163875025221874062834378141796079751710576934674863019369865687081132709208764559995989956022920314114418094614734311172730427725212864343385073193315569495870450530831335832799790416144152548040479154316256906842910989984906990394493702483942788616125670154511068103557503091131668281813689781053482703109601582990369776249415355727153197091308471347589207817132900175123993926075051055430618462792202780391413388848775424869357172069977766353591636162834320402462075150389561746664555637205860993568274217463033197802312317918705384937994075577191310933304087804072911227687561239715824822115404360706173715375764674723744344226011774456252747612056360367582382338105019664277727359371426015657234749858707585994981699522505559450047232024149239973908917337412212616284994170833589644159721649002556538551294197064645742059835339968114694676280491052849629806572260763461505468889352144739607550386537537180635404415678785094197064134823260149987176596755949455968196785300425198438615013870915775956624477810519136331898015017479523278590421240403857380535025399343101276642887612226176931306545880049038587841565782138315671917636161467409765058693617048444951761677369016995905904843917716364795978831706816971532921005595684929403887140288630761410761086136642632848529808334482871217353581108027238044556189002893454248930967098934784545273665993936856184609338058256200485387202852817138260266578423763765355436777633564630401200589608637705183059829349975697903429182738462154435293763238725721591602899099361824952078153029519200303929852291951567749320805893618588437898728611005995465975093144159537181201081419720442428685231338920642651589591854312423703686692126563885332869835803396166448153531676876117972408643262053282080331355856634765711899914931645884726773966131028450381455233755717904619739405638238600602042495053257215427647030644489949677596302576811392827051324770271818856975380776830785507991044590746322206373811222667028311779215250401474810580365251853698927031636528217878545871090650764375501948097420340882669441032128420349272778640384214331639646838478237546339984139438660786760741317417842655357623234798122693361647008057874360791389152860989734805250642568583302212983567566452805455310214749567733655200110914702875008790631644179658003041410273698898511485994480606307158765542154419246454449198951328658496753347054935419683908044224754623872382036604805190452160178024785539227630128736326840582628602069630634990580410067382810730903404149468949568458694084685459300419291650753948534698784709838694950205919300421425910993095116502415154954671807037970332567497797142212496956227580005142190902494298407186003215582125824997329668902732062470546234831659745406749511269801881044615019358023892675779966495050303095390389456139211699317576473291605738973763700700353001883453269164772035502366287067775649416393151167011506854714252575447648429235968048546660131310243630757480331997293789112356204179026421537483320371607384459481889499916169116769885303361989426142702295563929110132898604329077613320114307623223207625952238639404503021155322175031910015926721289800463572723079918942524805036719617186310069401137032889901740659129930551074602046490749156299335554056370442889321722609406580689579145458622190401662790407047089891957807789500880772126454426518298417093409405237308463275926864469740759695095046171693459705165079306241890915177022620297743073144619790831295621700097066480469223682512876879060588795810995656639271114781631362088716018401698725166013011262677154082899490424803223842330335706679427217432016547196799642178186526232071289491577535176005078744647252131287304090878698053958959471964827243923529477545251425342724893131479201694022079669651510348103737901846036696124132777378847254267116702253172827842774024613005691451802999156249365438289072368825709534360255656558267102940811543805969936076422508442469885959775116459293785439687023342438235485934484609320668923925736620074318947809825217609607281072322672067307909177165273262294916524774945937238533544355426269804457078364811693114728797983085639124454069954097344730844155973544236819708100044315470251093685212735374440487705973825960498502481223581989061253162678158228871175282762532240621622387020781941575295424284259830408165453857343395251002330909702786532114948006659194646168560490957705629599851229073743803051106406973060434718956754998352474240861550097155168895394815745330472511363073095151001969995351533661819997364457349514797502544847359232071095698858767664095890150096862166738331398986438426745621948255813656110981785452009639615665262064832094448387886481979192026838761007093910638912929575875849239275471900859434901460694988823019696521442960123712415602331935659572823122995866623712562220992974185156905086007155127365723002363624578051216973585124922553592090161001183915578909143835475017929763128222086399356777134261588982960689051550326964989185452668406043106957537645697840902130551696476418685094956667943581963873901404624630658618038921531276282950560907367205509107306593102939186336664084475112176937266703730462717329084233869272670740021145802997029753717251318626834793063292019733088299842390339761884335923956223046681276862627585661680787221866310937885476862569778306338810008589000558466905605217123540311381699338825004380942795289955398791796066369097378496823699241327498422249514854379144806730142001750149982592807159945574769072843566254733465934410727036072800036230566351542216041367248205118204898847315461965701462766557117071280416261860382375881683409807895620759274774332021360431479397611682413306162386891866641430407630635729256413019056292562489563493239189989135839723449678300841152296738969612370245717425026846026967662991769455318653796151168378506633542230651306736661719057846690107815598613734711516945453183996385857758575443824499378358392130151280836974403657204217389286025730153061890454185785572497612594665805748003409156909927449885581299858121722939905941836515809391668281188409591125839424523448304433493609699954332934803422897024386501512954745507475602199755328145007342111435785056417288262125940739640110144121064023932847880027138589520605155981986941462335676522647358290604423585586389442045254116208871797124608177390653130210377674096671544677293248369981452254359151812384792672477456897171298218056322970217297165051258290948674648604412598654584713455385589885982812586916205759165456071457988737526036085467979904346519639042334651126255837544079851965774236445686661695593287028835225089909339803274975809624176349115275128724087577657059720960482362958480432940420025600628943986469432174791444377002591405724827609112515747614581450676363169253515672552413413968981846684368760940126457023836295096183798840541639475508786715710609317218256575785573653343487326818909317447573576297122695738290206286707327655590354233018521200095561467130189697978947269406043754575507111931952793712207778290755717432641275829975910468652610863287903722170389958854246007600374922376169622347597289358568704966190620863906030054979370794144251354109472763199116085817031196337213428940481549775095852821449246399708348647494490938188644756777810852323080071160337505150543195223005745751347968024391287161429547469082741795268030683455912153306989841278029004104356354715530424008123964560777184195138029785846709375374809930163317457154550248803191871589432463041899131949714630439930380086672462379533378370555529219333937104859760787945710884795877570567377174573206148296328113335121088667224137496401516545065282649977215222884090801741533112504914385979084358541148506875789719126933512810669922025500346542032658477647543033033149980287770202962294508184553933391406542634133706459021123320412104637928493292798971752208643465034078918403345685664152236699140881380351289350548670433741873877322412996779792655220176692615465800742322756376629811935071035275494553026090409146076154104435635404002358862333891887600193062801867904621079269616041793170058378883785115887440108970689544434237363172088672647224849906364971346539838591744721213452167189075146765047333726103605912323017326892874363222206906604217187785012619230054793822872399549283332102052429789648900798911729848677145033931596166334478906727843849636717276167609365324872863714489840496149212100272989136352905008351703668091129420325196918192296715256857855983542443350047740201703328976475708645156175033336797486416959382101668469154390519684827441494322308676962202892464161034556054814347191288996693376440068226303792367992314059666231973958623181543134022025954467101904739276286514296601957480500332453842215063411632891073657110227656266902361921734410225064621316877825121132167732130943998659328806583425565827629569183676582061804165466057083638512751575405500320069179332571325893481042420638243409218417848830187268225716621309667131982955649807336387981942424789412236469213972374360016450175573888936796845985167120272633004581552068601139303793841561917948287935427366503618146225161779340576331363923407539654247519270042187874776296465232583579300919393280053533961169318574190597971947797499663285552083589358442145890372273308548908166778446458372077104191187221078952215757721722131802649931294681794905708885439091969658210115948759121014348915258765733848922545536188052655869903506592233196196024346564791948064693036523241266411927370755003751887410953862523578279095339272960979661442200026095102469907189657038734909684974098103865363755805775122169298091898486078517330851570198641522649218146473328410598242776473172699271144531427487841471915050400160298582514006798069825844408783880265865041682562255402844949631560767654068736241111165072826413215935616384828383147069989747288137211147199267495780539692815799133363560467221673598023383342896755529857779313183480486043226690139267496961462810096844773511269982945666147503138477803683642222427823533748387219020472343200789197372961498988817249035754854618106090154980020539701962883740687885186240361544471122073070695112302415160387113777975270550833283345330877277927423874909748707709066500394597639433269782853421468350428215273479057534964058330268804080560025834538793761302080526321129786669957064641675240016681340750447129295758700308848733041754048129869933020742266299963999924437779349430074886904314712750388321434661452811445085886480278503566909368688323339486910294763854667707646182985582119980549545546162288409233692917430930793571521037864331437115388731412966111982214053621851628478605955987280781042297462163050754538218064097090350224931058407841576419701096121171401425812173787090764730579869273970968859356293819341473497869425250300434754966543380320273057177272304352983189240953759597821668815182697581160928874285984071953871264671850818251307071367673683609412255697264259309689573325195405599918971560535715042351448400326169051135555893598051354715437807327092167663430950325771272891120713465976395981574887448254705015512076240989289714862446075595327633852110029173616438729543996175612504191120791823897133552424684940365516571078065374670354117230186124625232763247821047266633522294251717463496255612173245953015231195266975232345880123946085901543355842735477863676489127681594297598037890276814923460481754318193568376781760427160407400398260722700055228871274265213791569540462501774456884760187565935881274984712401701439170789646248504016878042749056950776024848732606916384990861624790752598892713935580765733286838843825230513611230484769101643590352263609571095944977868062640391472432844921646517664541978865327750418216830479461916575449479091640762545497612975756934989282404784474687799206287490647468975787061177061972229920524260175614460865639068738662165611692269025033420071717086408282737912050935498858460154939077523280469609288315862994359101611649701495622302407502277189943033595201149081163738971814375642313332853589156711289707376872621905681408418676978512708808989776500853780905171509867097077919167280983388311595057084947067164957017172440428273457405321783554388262504134977723697358870927543484586676699000724931477651339072313288233494462614328440125405949062564127393546935218207639629368086234150672819884075406479145424432738163573073615199086833928559916932383647093079697978780855642732126778927802321989713647480586971528036021323196303763007562426225182509431260127718942893851286274111205235251515658082890325546601831581722929247122274041182927462924212785021763682867636741429122254249917211287589933660227269076695439741600873737843989286356385398332767897725604812628973847461789216698639937295318019132632928637681449115400308520106251691746965899447018110758081434241048411629710971737126884721854785283313256178148071959277727138909166934438737902128411077431823949251251924079444996413397666130798373791433502277709157147620606356350611364586406744152802374834155287750580066538231626951788277029666254979582681991763068411643104353811260760762078943759554862680129948149732099694305977650317972335324150064706475005507290398038578648196533186675612409851235209354159593831832877321809625630476934258408518545508549865760049014725936699255423503333833105071233065381253967465876962700794680891170337155543455549782315794123095819704915376164006513430206916423120743491709461590842290040235395576679735162116096020449506155616454800282841920804573350317383216967190152375126381466727367757987696660653544478083648803554304179504189422910729857873284421776597258832781366687827827728504478612018622392800634501673150917435324465160704691084785756970325184712792942047619866592049801712609372026063373863309579145619177781958931948443839471231918312439998208657027340458480296268767428392683231523422972948130571855286198672469433609219045735722718058561964027477323480085537329062451743019636790177194284957626129474899007204018446576256637595829656499752749652682496030149001322153514086227989587068783835104385946840411854281741691064527153815528207326270031121768664624134218319275068452518355207065972202969589655919063176333663726062367939857883968746453255151655349275193068767515488023921627778033641881809927639781762748678413504130876125488133889284104336875353528030140338861628350373200754443984321628778504813162944847415829851071134216297860069738579253711284986273321074306308343428959558322630365952034949922503872701480095203576011516127033537886802076882866843242677317440464042442753108310049533370998529636891159669956396087653402426416437021814977870113407061771901015116905880692626759021919094329671248639917798384679167421989134377212170995905745765403777083763570713044122889410124738714892862852516847318663679332324601065456846039455547052950477777896351701511023807667531036012110130376111867647624892491437655472785415046122266013056058454379970337177002871357197713306050461032113488742524800684281052329361748028537637669069744606843015095921701686946821331068285236006614903263032581600282059173389711788196350020933870354868973481320440150998984546036827816425342314769995958615596192989401594678458938873576471150332607314069251898808754591316995853233861792594380247137979549639099311224171109010720447302733021594316705974665544170942067693414358777700815460572929379336628835915578152373792925866017396016468890106660679818408864841273674584359873465786315649128823410916354622674157161554822575192300459267032293837223639645425870989046913951403623662573403260551656523872963539704193306289788552456481867552159843935661649587193168067144942761316697708853668757247215313664115157558619478450855200954980407977322334319546084269413876979643480562336135269772166183323694946034193615902404720310572385827636660829412512995681168662514817055343110068705632317061525745831995546798306354567487621286591440973378590094574155046234084494614989910339626405015083747839750299820934224747850121652143894276952586140576678162242689004616361556345296430053151223524347513578224870265530124531005770495054686148510991215661791505799155228124428454842142721009309047241301462403412850864969622222876490864090982469976651419375459746454977012911527233346303937516281420632710115286491778721339270329859566868422627281480425389378172473720466841344699265193868199788464656459354830731370765583738840090520446530918428219769217775261323380967774692967185889646544122025765973938404631033899620546185713871637516713466467647187426130288265091863924883222279195144241193590219982064401617320034276845011971354792875611713019185157088725798092918270763819847629462867075766766401077238354219369421693995700303564318195876953481437429041861703391937433154504393693904594763008066791352593667187418621315814655684954972127955144667056123427051070691125722117861354609781148857015030047623789772269142196306893640635705679425301318584355877076367587962019600455793311602003656150524862373729788475750828831017200671847254867431662958903753646705989737567783467418232398825373167483675845095606477429032301032011530819724320759954310288609055331251707070817742638075726034911514629163531906919465532156753266061158755831303359791803688860598435099014950819940196137143112797315338553703501817676694260832867193747518012597925102291465668632039404125389184694673340284074495421044691329816807235219131523498519868302683471938012010223306305070579991318568423818485082335037458472340545929373674188964741891472023451457985069062094577653301189435475711827693812515134800098010426461522564202118358265834464972450184376826505301804469170349068733605867235895001412454872009784864006790491098915784070596553000297959266688576115759355998788537668453174184859961951985870042850314414929733681460380950405410176162831910054070193460726179872760604456868894209289616602559165773120519894758879962811379390552783634071059799166720899965434742465228972212196315312575039314341101732059701040658139273817761663390225955283214725906736847547803058401063498718502015320525301934540327505181233366323140159383749071593032144884871644656109698061396322113385468370524030775138276275935540989914386908878031179427300021291806638305097989964660466562554447631312090514356580401033815336865572094762527148021614721302957593128364090694490900128957307678762694810431522303932176620870005854861199733528752652762533403555037554996420137687243040271532432827778694748944089026388492435909372510047747683824415630674298932179285457657876216763935955525196771069391505171070401626447256882164372806483489232605605236808197778740324438591312987961725502814626295467504559462985091248089563534515096006209502716671122893643486876821225672784870286415172864471898702713192784313446460482211615460104483598146228283296017204721287035387520566484663617978149301355488782162181165017119397575980206131099492243882248251048731941582392406264761432888885157431164178929381049597443922814684413594711106019763713145495135841216736949414464666553869828384281936529139171016246899062682437321993286286046240187793357666540629483882666812415983433456419345267985806790382665537681407484916755862017136162411113931011511990177795984838099069111072035397034262357755564724713545709594555714442263951608165185741341367000937598965187969476195416776371811607782983532967047111073867602766987645353968285879625544291116336080957859524694412905195426533126094412612218169911258073379506368138554406155725362949171815696523526286814641956889409704343127554964778632667534754610465380745014426359789974704224176172030821956292712348960586036053815431445621508214968894687928508783506231833153237810181126368953509566817168999749954472045056344034732641601591851637399672143163063602081517612049879374829945008567637848846387466782022564079892741947487938729415325682665994509814429867324562698163605056474724245036223076577507460734400238482318479160832362310511324019729733232924363165334745125098944214284049442528784458795948785665950887151054118748326347390458324219502730234553474818714418736082720251626051156358140920633249812791711873324266620459483938987069909969381844174601565745134136745025870586931623455333294968442954544505930488135067912551220211874511918360358221755597121626054783025263242846762583318919315579818757560567629867760723651853941423250147095547885805426819152924110391378536744712359892739587267428164801521618179349584019051962976493400016590227253795390813627359158467311111737725352897806054847498304050066217353208845972528016685204106400958078060171766781705751940500509285873177907886643737207099357404164805004828391702243334680316184134222148259503942918022027063837672363694061472154579221170903164848610807779039765095496532275253458388451435219866620207405424937641180020655588573595063019805859393360639648659622432364955025414973735624750611252891029812117808180705807361915280058832760593580963249547194119475763905778024437735036177473739091523035076058653173107155965881669834612633993522375582583646803917879265466906418397106247558506321042881062026498752072257695020281769034379673508909091540174403453957911903529665087224409227234096536358341089806268021122919021602664098937617432150024496944901658981590952254515699640419124615625703766814481113394757506434474215121661891060461485860097387652322033653076277244149285299858497663745838635292341790090285686189880190941390378601222182486361445854860926005629826011185638813380493221745306858695662226609217051397181419934800254132833469176967732833934163933321323713071350149178405782467715111322197662245862838761054076446274536052305492256409703385374355830359665483757573156067354815031952045973229899120899677990786900609129959758869309434765209472575659718956078411861451540634381787341127833200834787586336383113916274824882463928594821539777235740750467329733884943137595035228932283638307494870978766317635202049836758578380343996416539910916069227088676722299786314733831431534193687815071777620726139369018285636869046614035751213491704204516901622168374763625518289586548828989133964181358613994384226310972747697176200014710469759670669686213485114477321951345958370618752183818581041336827148004865042783416958856291768323527551917768389589347664100978887872150486539431815961978582282591843656356401281520011412597474363874575389795539722633796613825264694367405238011009927769090355354603718783169805329205253129725815263271884297668096131377186009712332303055516050692168670697708548221749865411957712026760014805085121385790643496895841987189045426131433045651978571498578731478303706807577735876630345979821775661769256213183036076592844712165583687412388342885400797763727492690398222806164889239456128610326419563046819047466789533896620565919490512602922948808147596227072609725563290369973883424683753646065957513402438735699314162547395460156810381947141642265400602775514974329361965959193753357827496479695216152969162713399845326309062949745761499593114944775003101733724576057754097302054318908950127585805668590288381291274085920003416261369953846314208139998366923953041982726202607148321418123251168049172892780311203816538438652429040831494954784336032202193778269113635032001453518730222254415942843209264993809190963788817200815631430563023073919715637506694098967587114132319326566757095878667991016760335632931181800529136358676534386759076632205022552400086218698501777786066061643932691601801245028909378298687402140983555568412336597807756928258082783668286273262707366759215948082893382699162237325907980183878837701691249164043676338792642240071605018632993237934325687516795078659274050994390962124152889887242174486765555460052394814992214138614315337974444851584002932966109029215335276079649783732199741224905525632580269885545864220259961323306173494567258680316252447762924258659667840527178101549649662137009920429676530994396235253281586094691833581678590053603311573766588325715646688777647568693250328351428253373938742396657850733205048703931145149695912818472880364002327870147184440236226051112331675976655300935384696981761134365100479604964019565768118983177258153898451064362441203546408487155534356807489500195486635420107290218438436307522520206856929393141157687211465109579418220404706870158685166259353364037299124159252449864711211761526183248944074267891360445806227257750990284132529634993196233356456236482361837277649300749067772059148643254645769047505756275379143554904858832913503112452507360524009172746742214107768970608808860377610870325057180510985700214540809394087563694539145701855016764519177466909121573469459571194151556819852293112097815591356985692591147586329699103144510710820123386500176440902815625859082913048322466689946143700068854565851182065092888840744740890368331926624176424603763349705430826676139771504617400575009820996571472052455382724458161234609324550516687193636893640826339077280728026742170644516445330052478008029459659698147574126722070813525655538478404797926787590498761385613608670982054203910014538886142837034043373551869564165038594551860368576175567840374050607770230212366664347385614969318000058902106155937209330532663681539496962532298569508308862565058561279745143602561861766036274906039122539256531340905256510343368404237556857479551783377884288685436821232032135117657380540793438008571804624699102614736910051160801190819375625644312054873108643439196201710443586235214081932848916819222988063798762373178425215651363241852695697336655332886437575148950719829590256524763325100127413893747620149862759253058109294234308870431366509670944121554119528816010792773277264081524604098775970945570178406054810045152303801297844045270097215912174976845625201022548246160376025761958273791891163142244509431678828329447915446846981517960952057942274356288191403114592039315417129096581343995434917003375730361083525618662359074388392331694627571468681735442746148174778504830819291260433055417967712897206012660501610982426294078502026260338702129418858404800251256483978154659162419281181222878533875924626843549331246255518169286960372101953060014006167260099665908636712310430360845995706544785129722361987987834752393843523152520703817233796813152256454696608134681647078106241032999217118210422498039252766986758640537351138550592093435584133624328497917774639111816475110591070024626505455883638449522120962714968406775587304219240323698630430248056111946302369268271185516068667837955903339712659047511377960611796852217211932718440259309746949762573324960642283626788388196245736196747843505655750756462830436833886836537083820014996448861713383392967603587710306158876264133421591990225718258807243193233400384050913501401879215115044893189259999584771572352245483886696991577787035852899498218676370951294286056208053392774110862139436811158709882246454973224471402061548576130575677624723789085404421664947572595628830786389287196196863072696342917002697509795446212060893569096450319801459013849237282007453292099846514601190280650099937656238851072722606192329546344470715462468066891321503872903939299893691975602509566879149199001090528687442124402597279968231629264348403114397149505157874933342748828045361642625105863348570463536693443141047784133308798330610282785531754334766933415862745701291308362612431991028701570961134542205924022526734773412420811655455303882280535362961242148113114477392721350159719670938996725448766521560827022983348114252777650189023499703033213586990276664997372352288243776145422639694801873843734391078970569254123354329410469407561680985334086209490716480941001982224296376797172876820492621117700818873684824316196777824800458659526030010351264520334376027164604261486891243860451349717744049948301949796378126230883727563441676368187775832882186403536145200381311846846928269073723969376437798567756026206723039882347466882478480369712905107452790406391305521001916378688050525704144900982427390407294194906448234701325643366053222975555180491703858160230138584514757186135612598579889536340181957490478093528965758287379108039535804955040502964027953580789339311072441506100493887073858948575503244320977715963029738675835731804492568575693708543548200934260982582595391923995685285222166588998412487869521598185504118087184139842004916916411834048927084542648131911319175093490327152362876602046530257591711949548554912216212653548423108436194587861532107440912760443384300252979122038697957334951997203149506107371539802994101065573280068450362057344670322981405141699292303199457727443182764719923197012802715515122468126395842194717212893325958880058948254713806461150972465256576785099658525177462020259313440052219312841931738716667344464670354346692824497207589473039368738114449548916589763048300683906485397113031990302674697127156889533834987470130929321798362505486473280457852948954284025273979017124456637284881506402744077762124903877937780638147044355425941884123877179428027063243492326331141518215187688065072472994055266904555080250117855798011564299890340328516251762158946379367079672855099660815981376188576866072005991772145514270527788838547004926101282467530707810571264579458708655892258279858363970238095049464420418360838825430268594365627792520083504874894065689972203931677829633335868171493785517137193824706504089705362013085072623569067199156956484270072485927031512848754823089098556194334243181734597474970258764160096469821769649351144834239661167860780978257325152257160452932301636903920758013571413009230518866748290000864066160224879617578564289213528421898225393636429131806889076642660944100774958671321504701213904031050272656063459734907594742699669274409570179879508752172070978573211007200148499880171104202161517354539924429811604230805293527927619723190047694892816680878036199519525085893316108432226044145644678364848817696809342693662938977735944407164618674124503636632714050658343185284261046684032818602237833901467876991321746465625035502930775800715602236245671483505731256949606067848001572886686993671530453089381102774927546263766526125881368703714262967306064166782354065071271553225739981781320895966452784969778601834350870722586454261325800879533774939121339039590683270579256709117634650709932550627624069852612481724604838132914815337603858966813230706351861004550159763287237870108677578065580555250828225352616390338676303669675164816566027877166186594328225476979146145004729390403894734454503459520492463173392951061380892727877277811930119443797689582274786677144987325039545568715879266536867744651906639365237754979445956856268705497561979561900750168344453706791151897975087617381145550245555605096128842030888661946584365475436320834436624424607938143004200131256177613451546693024088810128838699501762844194819604235813729058649272842788243181692857234428700041610622561952283149275763941778785993937970717649725114379697537517516339466888714830661134450661390333697499673306095819882550413698108475000779520242422468643618947007274916779391978612061596290199017613600503414936167279741740872671525059904866627863280289793376784619964163307645249189983164373120111616405867200437908829703762186794883266533046650423334993341759456536136221155061875825122662610221237046975709608347858187051433816412194924316078431241380411446092949312443663982499691784314476674704703715952234793279320342024796669861225058331612237516234670599609005304424753650383465054853558799572887529660982501634407649632662210549095024697700085990893317331998185594298051066864140290099578449216707037937350190150895918455440081710463535992961684584038014077013212357914459687998343484079040996895791068394773746364811173474648089037909883627754642839012179057688269433903979218669991310367566680516963309304983125248742456534252008264903323434528104498157070865064274244891769009170361920960284246261265001386037309756525304548509917468193930580229362943668079214480407543785414507334140755916693960222484995581200970819163288242498261288008686944708061630512317736043875392362363370073630705538707741800259104376268218564425322647653771942480844385812588272893067651700355633974988383974678741339941962186687196684070731189904676322115556005127802382151742959951246860640969783773580785103300658506441236587372550826995694058442943482404433145000982372954907368449919615696197151843462987216673901602681833677210302099056768154805436544874213832046028088850586734127333255329247368935213604185422369005618721230429284588747560633938643976046225567158569728823626290388024022481558612554864494861494150024315604994850666176618409364835947933115748229002447528251596509162252094388638813352325500058733054880570753129972260556685014120711582942110793216464286896324815142320566528531663782178744881041719259978555927405561506328614154930730964326411462164417011940236006668827893948656078079905082825698396533580077538438460115889601570029477554154749422652753769232546912670216121122506630010973128636632091600249646262099428562026537036915327872502816699109631051467225409335212476993050432487136933599581522578775867828745755068326404076636190662788105370822380279028026448328476480918878859687301627034412943991436719998421236591955894577661459001852925636223171762126636015150672997568693220259347936804083801515368022491090680532866924482014205748378037189172729293989226094651685566879422926908164555500215482546840851711168137218048370024085490817437095469521387802021848613495123241530586389903846662651314404950486809316453741318438792215918890218895564128950670589663010032906975912749932989360319466256804137202522440086946938683502431186282509412109497176116180997538707762505968819258123088548116355287142594760479947597765841460190952687032432177371057600124732283217916724425036389042866241572860853934138870836005542575445130536388562697742686568157516038694802951312828535701813491822192401908275225608352860277819036159783047082691949945674661848524487964548493369134623631221297154491007653494883590427877372905238062593063769513424163081870571688304634550386136341300856524255201625124541489149568960230585125687027487346357287772252314299818981860701044330269977143146884226497441245252607341977148433015189086209085470165385074417272080325366756689018762943716965511293903991233470896085382435853673221421273972385929195797707873052541507611672940956966501228225867410931808465250162724281215919882739290066513259724886453007690766510653846967948582257449058735827720873677402397947530848752642315666149108243720013405389222240108103972166759555292914147029063201551281469842280659121771491000695229645623028276038227859082532293620590232055932357065066655908573588050236662565010453426460017426684971430807756902036532435023352964617641417520611204781690508386136532375386802094553125545540476032697922384268757155235900552676067046600773917063986583710927404879734800722748658422055948561475664664503519836953802574885136994639859018210961836738987677989883206460246197167432459160155773410990745691961623163041055133991648222736251866845472400453970080458393368796238709440943119104332327359965335488642288033277272587448201584426250481816687021231787943612687259651307188602268670527739803652217151392917731026292762000483058373600116968706627719440666375405084170603607442094855934421910832965234158936143600725208368446480287725905827399857034575178393153463708974529246693283499043205501631780966499353470788657173009653123955196753620647251143861147136395076473908862292377485713397047744219293813861673331787673608777356194115944024832032540360721045155596165191300663711033008088234983231791172524077658441238299389076852715489900832529527289494597114323626621379681943337421212586450018977169769765448075961182381398409247776703263985785018464222699753511465997676298734288951643004326925373532352186095531895337833827373093953098290135148571095040684800143876881691862487621918669647665573591318866718491354294141882603862410245422722260105633915466634072065145083208988335140973402660999454176050166580534686273861056654812379627821311593754880228541484878893416170145645244280236284695647990463930092322956241791835017794916861769892702886810142293889796375841756775708684937271757936354270514723548293300869661336710916110615633165927281531560310498558999869987554054990459120179110137347512392245987493118439735316486268141976292476601652936008306299144270223784779403228289536143601765401286391935784696763632953005622651480898544265139949514401687188940560926151112114893205808236468997450891418298732114819186465746931062559608142953161110178639294284177353069006412765982070981195754310780595857484563051186411629802009512565348596717356884516194750030880109816843645604405257428064229110388136604592071332737073580526574702912749459124060024968229214611494119569552111023655270654081535021798501004240024219839483079435475986277455558234646973734854531408362236146443314047490298724565531653643188465086564104462291270401910057761227132584126747488972476945549233674860294364577171878428683091321858393010750627863779264333336639284351237833357612452359257055549831422962584195123961869744150730693354397533830252868093613455267804757475820296457445812979304617417738866666634137018097984786604540451274865131118606614042099300864594516881061727746727902502594602214288679602944086871369902166750859603728842876242813258855760066532039756403393152672430500453329111721120133679480485517804676655773528642180136000693766243978521953247942015243636032866499057905367538003609057609527680636179399936119553776226294447499966251697371593532944969204760999567721931773356575323884501246473453999260838656525258097644225677652174295349662923446383903498046243006945509507106030750953238775924548035278515552394675697844835254506098824929804333167998744203920816165143628445307136429747234835501327589399126866644537792702996509544721019286299251044381559126738760946188128226668391994617675754935487690003802401514573049391250307359964822115268301225387083828228350798624831829832264560771439336394141783279065935722065294634216888414824513007167888855805257494120984434032311027040200421087738688873238126377056361360450839809244084846332437507952077622414356678408059327184238144385706022118324538070971694799126548617501473088954729721206905306385498859335943962614372596525764421295364305053114766742920554142996696707233947986636823591382396753193562496308734286062639973185689821330660221086693119454698857450249556550908348292243735596983339096514069526655115586356469403034303215687254110561062429298434436225627799603226672576896923117653192274500625130727580169770480711753915036039019139184112522602611996300149594048640603482722578780744559337376786612544011295311311221182290542291177028851950642932759675694310963521554786429328814600702269793615265628831934499999925325979058415118497069552822610727798491790879541503533722195399526634978990260640180573323018651123626585532429222508325646302758655555969531921397221651093768373891546286268721560496704737041133335080111976351032876382382855765780111421412403693603342859776086856149752700967144556205416373878734550727240214016442146886759962667287294571546899288074190938741446415048705683684263668671570013739492891926930596558949943987291631982763540804147369732870914107491357230026266922647738334257027874465480203553584249747373628633850245591988376424389881454678923460856615528816205141522177313021706456918088907388154738014737275675938586040990432376530015849435124869878370340659361272011141989609359973914846240847376427376042535264923650932356343821818950905557187029720884086505092679783012010684573341931423197188552565030824458018399662790514753247974110819226042911806405694830540539094035081401488366648365518720290386609847258713157671093299116198874737275253807828658993179054727300788531380491848080204458079582611909240649529592317820285927448375662243742660528290315161571013539939055182498840180137222081356212650520837164610441382790796567436784149657570734506436217059653000263957250110535822417088000379401178458300494173657794461003872445350437685979784201991705449826045908331962485067870478708809253056224912322491163937948409975246534822335192505548100882789708873238717712569115324525039056765652500852210649892611261464228835453517387241716653745785775285124712034317173823928642977542721821597719703600379624910995643287445208916399182865943695565993999044133306713227971925625222736296449568808146249286549329604399182444375088138333728301064232879873373297795717936926823528416172440386367052069495663050879761159637030685810752373472243198868325934584750607618730902484757067657444934636548414312743665945197523575185948184849392681055207852244941702083153750030636311808103164877728792220667835447589401861588077503034251545111742713481643676010011301196782216299308981020875859883600164184658622201539748383093075740430828530530757273265541552606280183417276399662188758981803219439919858059478828826461905204448877598163786489262253960848377667663273665019162923885576226741676057194407770772658806589660165758916294285979654510220957598359729026511609919107398867961107187054490247593978907383241037791837882135170001423506063518251683097498202375544348915174064131600923123825907917324203247831300591929959763907122748315908303522558244113218718637198865106829264015695074554910843981106382601154375607858250861350680963209681050829806262346678698733372014896836811956472368540599804726208675004354288318735443480096233953235753744137627135403858355113306102764525507936495646953921893508094357401912229681471608021482825341738865400274772353584428838217426463805883178309374632914939507057495836970684934461573944483374284430318317393692565148484476277774390250684035815911956493959266604755351881968689112546971254207203715012527554280331123525227130413142886919702095562486799164253533985809154584098280604652688803933418570977345206791506045279139979483524359139804847546726050786409102656517386104461465060177141079882089494872953555578729942834116329602393356831070152942471334066997132977470273612658458425843611402731556653030164793088542181397298433160813948693611466464956069398613279352674855024780809900863571811414260585155190329366636527088973226754107511196537936632386338794094577801987452816809856963683681801798697139406505278697683613325706037728656762246363408775218979679721609664530791352315286525603104608659799025042184034174865634879026196432515911131810727727213691964595121936696101393090593211701859470680536668697420005409889222959711214330127406081883300795597572359332474829594385752447824719738677634058498341467483392226725371393301177637467436082390838583428089139605431454665574092093325281043507031166251663134506054771590251501614957810854173148384247430232232424358738260570300058744849892523981987389575463544073285717579526086893204059408769018051248541424358894774377405470111984020713290222009166988709762016943019411964659521425192011984089069018527013969341651660959552117005388146527063858022975441339865337135587324201832514532772502186421701251127845376112213339857750524540449558586572616346896276634035851119639745636842924691507322095803830980692288301326737319314967142473051285808471183116124468631134414738400652576787401273964779354942915212662940870128458252964250050162950019238018264737081105998124508610751862351752542009240476359536324939271318403059496865740197008242896970239429440940296199882082233398183560600664831252415929275808841082875890483003064499897950422733621200312536003442507221816767849182354828325561278858804951699927179783399713379938891225334941963752338680603364964270733112041379178239109736175224563600589727533061311199360177321782385241593524452968708994007122566635690154485764286740854993134276427386490609728772882497996384739432375938079001170926788055859893074484102657920350858970639666170437194212889004793175912689256143112887164366225548434609981376062700180324210509310592117782013334806399946936388869632319725071870337398639990427306882952598576199814448509935492834019343437564689405189385920838740741248130595268512725183486531427213154828483969935035549491045236560200243986258270275507831635259894109198009643998872605615238309587894677213225548945264445435829676636272241094663176800498336508928307719479712161059845707486696208905996074375012744702432688808182252865110190183998273196979883726948193881645343692171723043159054099981673664634296281623650601274219567854610926411944680684406737439205412680742872848937605842843155758614622080083313248305011598971652561547008813371106498763682783438245632101623267973399950296874908367591556352606871916014611882270758052530195583963185531779465345551024129068504795209060357918007347518769163839886047163098296370476963707377633468775210345754936236972732141221561191854215267713467958020475347766079499984168449836731247166986431085607895251769627527407468933244130818369755572670857456972384371348769579382842376162705553296393234471873966538818365017218187006060937305466469856530519635715095987202897186426867242100719849623828510789968896120270389530878934378088736855223767330524753149620614140426529539971593115781707532028832677402521104578979369877193759395959728091699204474436564657607537758301361495645315328748523080830057036679029228868383795747986904978968320789379291594043945502459524456235642577272849423872085827790583176683123161345067636878110244505737257550053564067748909004273629304622001469260368098725067850422126566915111743617908829528132863482583129149498124562489349098279940436655376020220879889259614713470810074592659196417184290453728136797958658745561073705789962618360969367124141709342799749357202101114348014261423954665765678737406593570997334526106287583328702191212772656382043103031395167990279360415229290137840727887924433054990097203295566719640476528375231774660060875006385865264099182980441809056711905212615005150547324084573401199997155828228869330139782883866607935280051570677117686203281899363989866504019317605359218439707570903599759039842221174830386394071640394836347058193091949926643669924076784119564019361278298040215486592026523287277825943996315711079173406906445406018753669592351426863838812796720129279472923925667895462824902817889041383036535088912890359626967209926983126210881984505448892883933805300899666418515675125389473399207519155273334130236808772540421093828724439340863955653226916461062057703201177879243884381412926077172446232095951779843155625803891912798401735659565317671790004747372457455088965073421074789542875773925641960372658075648311818003371418906884643811352933692457604269883709095809711794149638575041216262952458343023372209778469102276712289281473401569711891986130975559550976574576434012180927676307749444162059834923682369649170614909980723520236106346625338735469673211992057782281305547723706004873160690894720571264595128570897969130672481684199400060586262080325761027512500488584945059040825401380809795476687476959536612293333266749133000300372529146076258531405791265514511401671184468882575065107093162531761681886419129431145709926988878507675316589356723634223793688605931252503393198772402712684996241232001534319042631751512670674961611108356284367104264979290286510722815128059569147524525800156965063464495281133807891203376936262243838645965769375717516792215592404974732781136027956223516226997092690072461106899235910611831803502657709312589850324329067994484142001843131783258892947730294456467596215106643056137573573388965954946126016511360637532424953487375630324877949509852407878018049686770470662427479647250004666243304100605548980639968220825919319749422639731586136497939580551954601480865757008491458040415459812997924212623176241945062878982345413664271374274947985524147727349412865775129598221083558683886001059181983419584825313184933525411347139514837722118365292262553087988139663479136570932131341827474630537289381494906612873177335146416004530138552564869091428973588564645502786946460409002220935397545110477720189013019438775166843215001725304387825346199061489912230128409487267901080153146322101697400503511522201150136227735636375112558974091427214389600815647283193469696537951167258217967049945422434411374278114641334275218382113868033044280890109332623039172158576210462630196632646328334916701153656044267294152726292591283402360942563418490493290813535968003853981971086594702611426230393076276754953122853241203660547959300487821291146244246648344526341190942006301787305439833865726916015518068603376547091027359723897150086730820924072754479385334371662583423198314324443510250472322959368546018789979210360901806710512228800105501760478165636966233109278272679503011664192305500076206681111528300082205508162504361076340131514555889439302255923523142993621323396173333820556413903879246850204507666196783836591089269814598600691071950846028803994436864245132102354332461503344600249757238300717886270890644857922338601679174579959898109365411633759583023245993777844401201857087631071910101713152703898877104744199054909397933032318863587839916950685237301918048380674053199375257753079443630527513714383696679183485137702429634287308465261108545896578106421552567623039761563979887665797938095719842345994998598461978872252256244577025844625387202747146113508142046572190524285453261760173998043246867363754591791150602886045980638871195746847563382569057656472442470821329374734046990643088088863852150041496441719404821525798495725272053921699056717424982076070160037351750481972140717519799696515495078873243333048487680766912880147036817771802576562642777658881721692185765007067900686482691956621101024095146223728690984053984933379141162935316467382188983495237526116112048383656403046143303232252614633130902475889358645018640337787995267798677731944760314510698834263443070285631364850512197071249462989801045576739487241845483787716703197131612693906897652754452338339374129996206903270769681739474647468237532098323169773795537650824550163094104387677254812900857960166753847073009889011841467122149442870627293854702401693764516600166681653802141891520965048186755692098799515847043391965923575655905275938452827719694441021747748144494821312223847263751095745995318702557499305966010213162531383624842368409006987933173006784078853616659719150702465640463290355580074932478464186847226461052892005100561375065832201425079629422445594963763049193749990422743853477951831403469025120382954356540235009305438213851993722094419798582455391250375136136367015645412885983781621829256443176720117703526785003151462498316468379386382172103605044387570133296413952201100998676548269614514499810692486220362806424412428304420549982782478398585058477408506587343497310929868957601017695968820628513626259545240913605946778563255625914862348652717176201381328293707661268008043606572781352437646238925798264674484179672306498174248606127136981957374525097036533485481317869509922527781836203747146801361408586297476053405545163470100626065556166064963243067818100762912080976885964627519516982829284995511989544369037159492210315338627846645936766135232899502066530835040924267549718835317320887166558387206387899438530000666838219092480220216515024554364957449595484357469379847644361803553697043969125164550800244208481563346569699188169770527538246531512210967723659529459888690492657435267663325374440774214387122375064229040663674970697737859272160957830666462183879783887334475924267012702403715583355394958282538782387858640563504314509369315604757655527127070564223527608737909807798932083557723343925010652850046098258217255949141474880917140314509582400083387849577602366367169157349701052597554438859910272873601154589640946244387414791832842332206050062910175664409545857308325874836719069804253636605087562224451710828416903283840538675316090283008934029215712188203889743193037272734956697611163312598531041273050246206496656134378695431882388400968200310267760423104683123823256029672484132358140116466797492818473315871752936347028343452714645832164761604955136147978818424116892160177309598342480114958142136258886945296043872368934271864790491161745770235425723419383628613998107108411239162164414283939308035772184753046139703625264013973945327817589203545334951815218412386073275025232889081335605091874050193487442552938401336385166981620450398694431554327312491733065035003483138498199892506462719917464866738690067371140325610558682235632115213799794066834565876152375578903891244281734929823401964873382906192570912052325335581421372768376484621197846417863383573086893043511635809008930396655399330798973404781055879585126185943949060134600930791103646348265282585944111911766923348486217119140558962044191943552279694128571164170593519613145186495510922235217491166016735797596949818410161896460283798458963842381825841268462344483789090918292104718462026730971048405252103488866411779292376663599789378243495153500359269291003256896686527974534070846478943129276622980609216728318330675259998636863011537488242933110536474917687990529067379393386397107637646129289472867680801041103222708690925046404216363250348650867023677379706938313805079592436985678082247907875664860151985600050971722910630319730079925891086395614740391176237343316005130731917127427669265557026926802625922908754846232424035715868340179130366440690836350388184123171449316260815378934903703463947552370532106755854587746260489275662308095798859234108094972754012143073513315577037175893671057757642859542600064003299663600020326638312362567377064052651618035140160991921934542270571645965182217072498326825277025406005768593786496034225771011669214818494818218002826862449763367324580915529359907904097976215074888745256025427916331735362401914772283812355495811321116677675935387948655829379556331151960624472345368626118160413884791857489649522069792882945637283797253910216707360874928110440709419431691384112727350608719818315974148135388219858935298003404587454019057497222571301436408973094526490742408491119104865478500749285627182484308391522594284976595839798932896350253773900746652861784433160711345135973012618519780591344257731976636245455418968349040575088485615783042980850704382187829493744577448126975014077625145391682165623246869071875244609756259077021585356597837592754952058485270684900136631302384331734896252941641404970498447279385679743116236693012775189485312626948074723356164158103445018629907403895133691349109995108590902959518350039128174402656589831816346845097157309797895873463988014821495007810181974781195719012009246647565629368419037680916365405948529327802136856600005400400467604754858911427511859168713841700841325817560042146779692095535404543153483942378464161828835569902824182740864751538697234264439246178405937446873841806168765317408517706015352489978183646663127178227898610501588404013657102949757613908257635729564742482694880163793695534928124597580453871422236922649541657362628548933349954997646530504506937471395579839315934652630195672417751065381583298454077875549607667805045049435109160966438514541432396076673323658769707488502322786013823094122790491743409571390615099796486392981483801547292437896016098094372224592578158855556502495129242657505413070886573365140458276439515199413650837042348354593518530579207704415362939654332113886991619369561976166025506353468561676243207421420899833895102491304520842445405578680836191880016432635104110515619212279422376417842558064949638649955035126148316028479968597576995281574627561652232076728578451450626331036682278407762657030706535583590950277078332339187330430191871317006472875182848523525491737602657557931894624681450019984449280129215051300565072360817339208927630536843525308829553814643862845449066084099591697204874783941955446615639599573917840448524999379573510571256796555755728423835179574373006528366802749859327501982429440237009591097570476937063607154196654712138219482115723682478615660919715411279797182209310075786313339805557228503023864226218327881893291259586373097487499635836914510749989968259274215099302727317124580955395273700326592849293198142001558280944935548484984708230837615545475582311658683505223395951376914263322953145029085404105285517952785999772587854284289243992819758500122091585096124515882350979774819053004497242364801574598903775981732807195706468510750572852528026078977778198955530198726836701487484127374900332894883687481837324458684612995809451251244164311835310913169633563062152066865101604577528955755952928580215240663162740709953447246249883904253789767652215331763373242613120882666591742380542866627113311316276507643545232948902975208511728257184412948199495570173957296271708310899251305781274091200622700792287514562222891204340501291856133508816425624011996689765281578874697231710967536240576779881427155968735224760988443547808609210685559988699881883136224941409394655368714408430451260112603996675755720382674150226457084730225296315993491998519628377956854230321253598455774243814423475691464766413156648691223253890126072252746912886441006041372137138748125259563657996894060983133443000430644005214367683707267356084377469968371907471012753031810693118984780542653506085415736399392931381610403726417151050490765401296166249770183346907045441628035896452721338458922005190789363856364176625427556323030374742731539337875812995330001171055331957357241427188030414983790275862533322517981601757930908681285260650411330029866925187672641868001579935751607732596578868884501335988134758627258265944034834534850868486749214685724602443653803164867685955248018256382167437817505490891121628106844384997206035098738222353042902961297203710899087124809161191005409843392709972268880779815533465307832136737197161274878390771746950687781072335678531449215207244041107375649401548036307527168270362014901680966766765214439922520245792333505426891964200853584052262485678224370189570841785274000813953241440223521829376482866005950852624919154285701262137093592192929186630656981037550518121537108426048007531147044262496088002770702127968765815538363606465873918437157733282538593505177788944276049589621681051669467642867993031911614877149397126717284426839182732582792023371189742863010255297001199178165570918052484218556094889815967478761322144173051980780265988221397202171016701903714860295156429976015288965010864581410799130100329654645935930780655534242391876886907589316294270355218257614429680505729072060183551026111091217983170247358891143504945687344853763687281906915918024085146011737058671100148323442376297042246059220180432570259725909885547586173136235203498008844959324306751806388996471760916094982142816707527160620533339773775166681931180858281917979529225174425238334822978919956197606202326676714756757076621948684827532992545047221736232729617154145885724492216242037788337393691203123913188156812751909609022651857991660648481939596239372349620226548249272782880038802570088500114716042835267344996888702561045239786631533260189057762587824950374950153095943014115141128450619473151342455985422466026475786650558191983143900668792058177854272792617989647656577519188527760066327767591842722102854450747494617394726670142038724484641780565655433038132497966689131067148584724330885174516777826933928062750250382572765553671988737772805210401632594616042619747339559554630430536933398510345413709574617632181949986199230521011629396030414394995759310545742145249029784641359241191614098120022755999434520380708923986145746967749080477823718103319547528905751455755765579729272363597417851760182630414720852492851156392247552632660460099721347900851255341357207557518332159714377903018000131534354974835584106412464559426018100579557073081991177809012454341409907200667349258883106715158828505886087344955541741783392414751026145186697853542679764321416388714965287787141173930576673324147263367478175004390082712569239091077880594890565868820361038555420890406586312501318995703410237267631668280980247954546323539376990871117361212447907612898968593947674520261853042206699378147999936655374075940601969992081460898128206163108439648682053597024652000318725001504514315694806827720758104674828398592779745036046969412410473813333726571689932468937091159495711646243243841331550940012167077697459238194176432158971382177037020678989440934335388339609793765399687517188350817867677994199257757093947441165502824853838574638401350056618838333442042633149834112272979167268763118636960040034850380966042882891404323439625512140462124576179117676753955388692139036773170648152294750322403816153669329630477457145293916748488444731155021473829856807118885958817249152498048793321123485759534630381835179504479236560487464147173322945637883725170300584606971971502649158969421220245443056560580341664719767131137664743250172504878700920604229354051058665761518495209584941420588806585614320517007791599785631994011063909234845215395475251354960665155263052197473281825092031062964399686678715304151619722424036212061177138557702133598721083865613666641344569283491899125007499517393590116171078698749816436294880543037356730987312908542366127275234886332919773402247803403443878594990448846497697856427040557739547610741520241255909955750080904145528291064656792024147952234232060392965585745145310022872627032377669577147991662114553804470220156930096559142790224331364992601581858188481019073084764733145244277426538579201139154923767708691622208256338977540405998686219570660329082938306947607205264461562427166629345869471694389383334612006649387806499298077680712508338370489979266652884927229850470922968508948579280098862265115948108116665921821398947522009898002167596317941530718867055960940244267610198968341221868071196710718955217833794872785375488092608711275816470949093027704217656608718410850813375778272244244468886980104825454603819410294913391609369389370701070413984508865361985791204358691968410510749457405970787204361625287171810293092561975527114023117369337928489561025050439157061892514139667770679759949204887986121496840951591294091894318072145360334268198837058253921846757716596658404810758661872133232028500315337844479814814466426657675377566653185906610661614877528346299329064385312452259379925953810959768045986708212610726868352107812314325138689516994571457724686186347384096357711714562993646517347873013505362029183515961670144522287999117577215342262901634574116534366467027045163600720877519258099156152026649301595275027273324065801209674682753931822247481160986470946125948204858574333658288812760240395849193451876228078919964493409862404032846287677727291537108310272659083661825090088800857583512896013313806067131876431490269723210438855887087810503527474905412553460934269387519439040975225381165205124380491307109950249845462864949667677171650671496177922344684539451457345656758883134086275817647565341883349635190131793799936625692120886544317820269849319695660827065155886428676737027272903235878264905950383380426218125328935392547357533347710285178298545742507790895669004931373106587623103425824530934304985528128688476767317340896106125759549322693778211803016858922380875990198871600620455705707003011521477709109194502918786536613922506085007973908863684879274622592588160274332036889666301084002663629443109549689788538036532894725279384155095820680560372594499287808668885686816832606041106032383153987561028318538297803766481628094810884507075637529344392307052870444253017928936737480642875330782649509219566271833658525740720341390530099004123666225786736596144061624361889233031353641181249958468678764981116592437381273911404064782290949726830253427090777727993763104595055046380944701339817361152306168305786412124221641098043828669605393158820114362225792410805467630222712919158992091672516933788670727778580791403519822793910412343346850487497392103387998270328607563938645547287587752203685905891535806279168423475702697910801683727571438290990281516215659790562943473527180421253319578675105773609962701516493433343695565377284047067694874014555690358628194463436931523705525486920021982537280010028424403551128968640829452204533969373039181782688720950822160122551479652570886549883440357140470848082240213291474236756978747791653378522064308786233872947317334680013022007468543127016958348233562961432417066388589637849541056098895480275546282920147153052965721571275424934303943431231645797657735409199679907168714365987523793314241834424466948405990444451174864876530196997201380829381079762226743558492731718137870138071760782427047558705660704984703675049315176073255836277245800674370267228091681808731630819316195972231020436680745174418382770461980285832742505056635848365541865735894706735664125036815177482691325035949482989893397629658065570785672711783994839338551677034102360983810322960044335688372262977052500824008730679909761280613294811570125526316503450636151156743763255643931023871581585894629428332083233026843825300901227558897097800579761358002396122573213793205523734160933158459296582076820441085144198694529406495132545019964238634783363480514241704256419675019462832967107745785267540006804609513724001921098784789900740809314812894731828964773051184375825677259989927275668849963153691574552032587373624408806383212907811347075521457837332670095880843096093629782005379358628067772546735221272006826041321745940319898985531375961738520899682007608192510785655482307730840926548270848281442174459503955778725965055808682757198215202521444944577101829869899231951911426679094889509065240393194810030224319162435482806309563642720081634336171999734695651038429197103029383827437590942153883477588325133731466813187999408829585976662427456662333415041370769142747596232909669877624461710273793804119153794511179515751478284656876880416952549193698899671636388159134546850749592383910704791285773680077379754118318820522390708842378169264423596097180746400756135305308650213001266793838380234840301484892647819052882053219631061218957317902267695553085877404065530729528499488044080363113977633428417604630445056304110346461092913369857947231086023185191163235336978994910576093295283981225153008315421551017641258582429792627600986002843474211216512465105539093724786944138107731760953812316557014022868519610748701993930767989104099172326899304903581938857713387752335341705854053347462157608030665788390823159230980420809094051362753145676890387955956404500544620591838783042843992202645132506058769705306586194920864724847936682669467640259196646940185380225588728496868263982741974498826886525814063062997690126387692492140713381718671447656336941872704258239949137445734685158043725054214148114506531711052873601573497968605548809590059568888635139763605430665212699569115014002824916644199187776228511082084489556874712096568179172621934588251544837512663950755808972591876995332265040308241415957333311443844307060881045030573360269065855256573429284885483853450280236805853325455454223743969713925368797815448079695399081109172072826913023716284929521202064387045081216703646901518803662035838057225799619730059876583026641892900511204692553809441324825224418918851386650865545637475943817569996342878949802329841927404783518864017851949079044074601718921942650256647620025383182621100721415542242151932786035164725270653245778892089674862080414778334547893283891048301262793044730130740655929311911772431424819469840293490214604195648799617452611326099217337929780110465174331234153760835031849801589396805118829891206083993870235814676107155808207475584752320215638519322556324617547034070481586051443822119224118934107513712358114391435220200296440876743295632956102291993120265200745587383132942068312712694634365822024819023393466940781231323258206075916350924744023291062888763135124643275493230692292834242554073669848612470105666424478140733380375205369224392376036506371129325259403288699195332656560706950853387638117306803072925494290191295511524615243599186718514091653971187057057673884134246639767409425965079510645174536176655778093121903717832209346136988865374260941615588068995417272675208437163997588790491072394148083945211892255693566927503713370635241673432491347485347695081502146499409248808782412182283432458132730279584098979925223819393343909287165349657469408681697631649911772476850703769605565678446457074648230784619084116925861512994595028974178320861673383054749193187279615874953985483975130540866527787358100104748527153327408207338096477036246446886650890394914461217589786455078432973964054276403263356931190456210886407489323555604465958180820238357451131162796259577391557715441246837643232427481506276823975296542554641856106218291019001208212977241251810032100843288277766204672732266326205633188728531953589867905107642255471097624456686245744307496760228024165309222376321937957107046403136630677308297815983213296414128296324993404708321551277221207725090017749949419668439188141850360742483916315229995848510307582322852787486818476948595734433603206106719636516895582928758811792112156011169626396514365815711262527772207392206844577730782568168025073430154869843285866184804891350592940028157566125012209667380182324500923275152981929026199960656030253978066344440142465817958349227689293659183327530967349858814314438967582191994515208489258412945260716481685524322146803129557977004109228941155999485704999440721761026063968778205080910711070095652769200546761241003421184185042159071313545432495995624849138101877645740940260050775182232983138043996674814398682289605472273776818164790852598073107291229189900558722341199520517675363966249023724629803225306419224260321897735211017661443550887312716312338765794060765867628641690423355121361485751403723333810010823945085429526584687662576648999002661479109014056915671496564244045806566441331112501844276863917942277120104974571251175460306928527782866033686992987496313622579686199154348525767718673429673846517442841835960638675386159003534436951780037336387895548438861095180568891989353896858072606182769740550630192434998147566027806247174787192368217242057281424940084589263442049381314884041225319598603623600696545151452669128581016802628499882823299033179682002049490701367803629684578549626839187079321372459275580581747624772664676775609152324235553800767103492943337823695565191484910232076793668795481821415423628142758838955753999328887158388307552657934401368206405509963102040288793473544909605246097705984786134245245363510659511234667829952101371396703037094069149516553867782755553293021235428881836677572749598223506927497692049253010530215469292931343752130738638883664643174695477901640803728553663891463732729905448884536131474923315506342277659160673734611342437763550304120127074750734873373755220689073852826807450776744956351015089491558163537709074477838933345817219881823268449606350149489140149929504722437514363064575481903450004606546352755957266182712932070172178361334293154276155438099104388731249338309271203154757600218977408226385366771524245173524455553048474197570084642045030868776730452999766113014984898110221627776855876925971296044812950154281610831134230344935028419610349201637055751278781543096613175391443895414137309340638047204747001595818226253423098462298691338625447123145048051499511440116510128650035539602531160464538748019998071334931507927744127494021844224276502173684179707777346579196898292226605126310771911892417720049689494204762658667446584112001641483303834223595168071645673298670190696801406925429234806163935797842664552296014926907171733157124936767173576343910637184072908585320219011100434621335965498943081839191953646057051960785947727123495707261524419015463528729569558996614441476243007510948154332465543280244984486101880515886264962721313286787443284861289179132785290692914021277940910034327513564286159094174956063591807283160302101286008105789009559414644624755157538667699605174943243469757032822673749879107450918586407696913224571691216841077944858013162840897641551048393700753090727448026701372651727772885554351440851049313501717497835219120656454001024687110099100442102438851019198311846635021359332247631745891965770464126336488710626652195034077284933155171730570519742160315222510209994240993277446651803190894629845546956147923586004874692732794514195343829438129867916832326093991945232413964528027925032999624344440409264020158565101912640691904218707941979424229048171123871426303555856392440202402543482904121730813771757290915825258853322866546469185170284009773711441280037812332791325106421001786543962183733750805514264088623310470324049524742895289233319428277097488823602556598944992108602279282366129748818893386184599274870238818647455223083646233781281069712999026193573308323683703872407914952017733401491990715479951504445971567589782728335754208042990956651204041759784609068848880280330469005694597975663962826214899489079451105443106817303971589303880330102586090021341052778766741283699396121081827279054473982330385324101472090420114624240199134527443255515277905462032233899800345740118616480565741672711581116311221487613924310939554479600802986089695853354463531785232483467413491316791828315530883986579531869952406077692376272473221240119845512236290034822039754699251048418217346075996954224733474274944406424875776145896406919515591457118774678340660933874656962500753859439787269949152401072305154243608021153665910152721531621333497800814169636853797507591992260729992269378782477038505270214341291054687952972562637471087790720731847379766796388383810443809424519999402695000572001250257228944323276660471409305950303586058945110443731745450168690671754930662384723831294717419273717855426537090467370519709734728651506319285188917818615950080776108412277819449001311874259574896979888291325363594086752886510638986079942083936877699763894156458660550498951468700129760844771835468822144916712563187446011787038139766371297011866148176795179688808543451902112847071373745327513258760443189301339916949004338354324197756895982080867492555285980623868158093345404239580421592041284098163171881882048603307264024863028348399367590653269654933979717056202807115932377592198165271592133906417573190553834345111264669333717712816370631062325889661385309829954661649423700842409788081706237291246819584796182490441816272554508306957372561480400098620154566697320707056182805341736640669086535720194760771875674530883185743480835147241486665687461907634945733575303701420124516691408209775046151003839264797797048518858932404666101538770111100471530281410723378790697622016441204478695119836082027234819240641457910099770645651171058058408626160875131498344132653181319540974405513053464488424019899357453145789441232216346190264177554545127717554370703394996634110122780773692451375684647122563315227196254556345032026942218015088902306558485357670909374462071945066141758549252440965106917670087578690007035748550950502257703760117812249537763279783271278087529808269541676679920112865828660339320024412689007698336532366810734690872427137793438900571450393261595816252262335717005885357396216923337469210397963456979628586000627624829998086414344697888588347207511034594788587361205258277792231015716097390825027146718078561207725524422283100217123332643104889054315459229717239311416312383363351082243672715498837847539419996108719363149086012278075803883143518302796053565308620927309494340829922688303684197373040638874848571549249680016767970938991545619928433615281418780651549178967247263507016079378925839445526761311609380288388084870368215784274317697967916486930680850406800721190726669143326737215018954169241994677618524151458760584180814626122561772912464621590264275170902588469834849682469566773386962643148287641649381435241046956384293232860113554819753041600575979441271464329675236438087443270707935229915373795983684573537259370720225548309943248546033778459757671230020250559721666969885711351348965659295801327455166521838670489540780602166683957188877740198983676399161625494897435570543466652275611111028797672955623807333442154013024265664362117611345700137067702413686041014913386245007051697252565451539337165729852193106668296030694002608767300221412922371383462467693756091221518915708747165262531231985628283963140016213743653013841102492278493190505802412114059004693755626129944834350057580549004828140212854354773143638000060677736733311400759562976902971021539461030379262034153514951242229744258173919154976886239682065258757446144042886539897733920134557594679151233148060378280504405694788643619817660195077711576973637410224820667789608445077784245061611224468297269763005499050333925604284998372873374685628795122160689168847527445896957647435047587697722121142379788429713169224049667442181687688912701360698044915041522425510913872404811382942155490553034244746177235518084444941669703072154673637094522794689336362301972166094870154568074902415669930282151328618829498103061564342378536797816360071097286961198532888373859299057099502308081127639782497427522315145954253954939274731303812743624661999812497703745395519881599275478634728477206725157520245911096594131397861989588650257065255738405553954022642207787829179315500123859088277000315303548643789292536702005141016391393844111421759452128645933389422138022845740397445034688637707375987528150390350132022699333118323075402505150283104715294985540239196728331314309744412284468028302910436524242595166095241011574321299401406230952938878781958792626208709714292555116851898597278685426763010563697956396447735529707271742168637001185718225917256818126569990671339977975358780501943654978760444172864413785376471243011821074011527135061555853108349518269288531815067652770410781041633120049429921699914893904937989381290014724569343412506466566810410556291695922332446388457882867901209568399154730188388624424793577214552320628642957589136721611918874862982519700846713109017055411808439977101868179214858153494846958553641329494473230358417368687204547095708618100056999718136892847021534265869265883135448154203282956626332078831630923420019098490399714104864869296379618484531906748974353189389132404611619875788043950055467862755266057400577079367282311224225342341207021046233749162399790888322581479333716666798782258400278604418871445649840172111185362276726290275565346230001823026783542526117656675153954819001491859110132846917340581621765904664389803129215020051574584224633069756752502736647883361374651898770829010676894624055667009944790719131266221148460467659114009379887855982119900285677884187849633130585990371667398451706237129147964464157579175770947751142601906954363536741261646819393215968543258747633939010473541877185183780327861286273037669096889617235989040845602816325510158336638218529091025937936224485259605859139175202907080335173508904096618857547560049887931678410511863258898040508220196765784120750549001707558828827413562005138807505460080500307608668617201073599185250524516383012023366750580376654817261873682017521877825260470953568209813407483164187018214173841652420053281586976640657649582364884537342947228364608827254146160761217745944304377101449455153750391916852952455633453492012993819615193679696825107923063997272264541857872306559327056639531546243578693155079342857118193373155378170260560293854296279077012434484594709434298032475033952537471888705315350515320447774751088533631527037746916597084953687543173646157697729280573700016323378763716644455778297833569725663780905647964689862184754532478292162863555395051840269373499336768970248155174989008332656956942000150091005020649034971572839969326562983496964011815974999183835895090130423342791553214304066182955313764770335309238369108127241325215219411368847648949637645970537777597343737847942927956067403195786950124846381630180756012390547830957780682904101891636077377330721348178312262241220476635559617337235931220777106101627263622927135470794280010000104069177503856301586778526475544575388393435173510534801764661739456833421005996709015330839723159906352020685095343853287476576133934817391163612414535383672380518147838787511611788458356283909241765683489268582653957024269091528295283060732307798842571780197172042162821608355569727499477465297754109361827995365157233367213110271778700109252495442871628806612309436552220934201155452324773776720101165827703249005457108162768259763943936148873482818852533556135678855096287317512581124112844545377693139972437456023556881240579890678041436698693641071003890741706065794389417003705264999857058547985817434049263863577260228956146054253664386426856030434234464915416942550728921863069568768466096002908580742066728982407545553937592771178401560487818171895820390862300400257018086714212716709814411871031347928013313613374255992028047860353889553790917534279221964836568783504012925317349121497714780285725319172527121705337543246683247247821595127412581216410097780829620425192202761677932889870304958313681046193051384670307877884447581677465672824847354775190987617769538538310214304984598624488598350662902988617434473347859485732197326189692214233871249176699157764470713815704400514760382190184311728965992558115859013143247831926145753877350526052580025581535295684533445830814028575160514570277209403060069874130451531536411201155753718701026734557379288067318480926438420989918497146916823185395946072729359709258657274712541181476999305478847670548803597292809541126857325747286751726739507997432384857149900281907614974685908606599016977060724275331394038135237481089208352442352902979673837609697124813353276323644456330567126207089986904780168052852743680122446620194415581882174498388959753134400412197769964256967255686694123985745372306434685575862570930289717886470808522942976345590860057734075025864057948024284060950344379844574242755159578560479620810188048541799564203086315314226155285423006320228777964717603658373353788894139277238291643980688329353656152779968095210521766989296576039863418433594552715987606625578330406242410419094403735898721419070161346178360582765437717792899378963919278789543522412462874866686686606527957029321399366974247499279407021268866778058425363798056796108128425157379081883378037313664749778939023914762386796704185405466490703834492800905499118191491549154127647914374487038530922306614307335037068993883666963491635674521687380945226161452477286681939614761428992953827611378656396243187681369311349490982191662981514965091041478379860565175474877161929831647486918680095652960916998968180647456862147143742606236226749561663269091838424553741849207270939585908587582158926460665074807611315786800455182786777023626486650603044021752051800380994174077023221759403762458272222691277326872194801768321105373691898844636584211410704106772577103024015131687036373150326698498981027554835824502277421222133236244743998533662095266391762017770862078720512384341680540815835277308896573954095168155552152470037218998922481801173003000902719922612499566834695329665615321418914061645754542194896433831899338192245546455287722729372470847403794032168918671615421319034858417530299435830346938282087186257569444006558383364371875441957044283604935015483774835815295200227772451259186728189892909322920901553354244949372371089312323913466220939227595059089242373119994313205004303661347060486997230576754338307312267758501054679533035987021071763737768909803967646756289344736015376459399024865664250219667157744658209135954780845524606195764378581762971762991129647490148426850924367884708351075647619558209393776287844485256933899819192451125385494838803152357775668755679390082896171374459820968977205716432039659817726453182046723814181901106499823510470704932736153262518886697493771789978536400921357522537391777728318551195397720034326368569097613892477688135569788346453957285272640431423649733863603922830308867098745502915250718831245877517961844777264982329648549576946659070001182405276289257079249266113643405002478817488257565642420942203180698866243464776815152561511695834071913469099532056262505867697805809865748825384180990104505525960954106709190750466704610266567288207644816521608568422608900598101347704169927926737997143745708589077734762261084199577619936868654476802876303620603188894788625833939892124156121010282947932529649124273208204796858709775929161937261893142250392074956281638075927688855269518669568495312995910885827251439826454675845224860849008935860698017961231495493636140865190022552576701205854675605311922399816459034976696307313543569187038179484289335232810729144866045769960413077071395815151729075625743882565645008573919435548397798550254675519912885926534366726958244689342875518974707219176736819484061880609062339873713385882644954430027421893358574267285398451347496681300236175234092714305184521720993958961453768613057972844046668908007535589613693600319365268758644017105373417762622134803357338705544187732841569523506394250831311500715506805249166180762729196664364347093846782798174480562641931389159505488026126758868471542880206898718939211494158012988378071820213383979605136057288013855783884838490780631457068045178239396387065507717970334243728739111758030505198176853136459934545672708081458926544386238257739793042018867432081971305359698348968162932664262876748121233165685475747543809245503988475000886194384187980526082852870508056414306002500830665743554379552808796441429324543849220309305030730736304698305909914357314633234246650295164002130174766498497469425692235491151690416018969385207637008814026551422978807145824920241457920711968244273299964739782605879346370445866169342601978202021230878575653288462313101440733163269246980848390814644763108198693399892568326073790888617312638833272510836056145508766225844785660317818000747674716182755994563523554555294539558611384432163056436506785618638430742309552671853930005919992858899409831985344048283192008174005343004452845474344575496899555143919917643844474870941489928538595027993359285626004675832704427391904886607096230132928254806150995744803560993990566136573848383750529598798533446138745997481285076709530219808043490360338506220795693816723121549373852022064666276913360457349258350366373686786007151144354665458648614506753876830287741094930203160713868218714837380873785832139893023882894087840307347227937179392334514165391817142771344653716772102629312944658948028819624485463760024895550703548713975883368463969872292758828600889146901522463741247601462732063423846809528625595750266973844310287533623020803151571863088724077853754809645289109499949246862524331947595523997110080671129167868514322264026872366097539292535904619892713140700627065253762170161003271650494879531196601727302036911887195615821296600668037150333061967201574633555628708634304962780976976430128872526641867439978943730971326375099920470679088170265964668965326161239409822384613141774862378662043591444746494813695210152297713536078373243634254459087128490475026939215793060420896551130441877928173183032159398772819142295178161883290455540025065173961167438009806745525042093929130918115909608595466364891258770481318602288782918487908398021377783919163663589760175921799855050350418371647855247080387157162495507455846064047779705582816485047262322416668554368067813788735385556022812054681940963318651443157430986154831811918103232586812833523005052235235833483391371095256451487655471494176969751860943795515173689687810803352152796470236623994853098434540732023651130990828471183246622284695952689246479752193932524562997753632733365135101896044652282076645782203574494395681807918478906807405358269681354984655690014374599668975963017441153035354726798857582685597248342463911485054818683947212123067646156393342577802075516547566596913949836547482057350963109781915974362828945864350961181134980689470592772324882490465737557701105194628979231068066238851595513552460094718084980729562356369787519615047895860884829749888165431418110415939991469530321930317683312441373020682442713855447475358305339557885311786330753740928311153212504842737516132440459931854827201357877173634419252660976107671722666509473040198619882652547290420371393544875064037562056611427020110568593165925838385336291830254606786107809734063418614887438063458337040040743733536733947210911306774914206510003316216104203387858889852421296991777680201642096320162897499321200147682327778348500080568430625372292704825885963472523928879975010638422838909476696195092077434397528372641496635943029945806101280648201188904983675068639833607720500784505169157009769354372583756253395740025807563166538694059712768169078564064722909815844704940123632479108034087585095392985367004702586489850609733148359790920153150507619123827200637765225882703858785892893055894326818347212504035882415141116570232279478311668351164070944429025616431375647119222169381301056730298282294320685025287228639769236937852926360595781607750863355924576955294309882916378535578605862658036736482495089068840287458836122167785542354824697498686109226117075700450903431544820980744292424576183584947887979058636854512377786864033156287105994073568334455916622480639543640498362850808188976583315119085331851646289560476293515073386491236408952538630492296104276020259099119424354851178184780420379904594977436904892435366988902768899103270340146197901171316019405519680357159299946607422319643745834405929436285881369252777894759845152743610063019378256156617041141586833068358522945150661629944716315168494303594599324751134274215995399206624545239867645913904617463565757245426682523192465445207436837640532658080128538475694318100249832198669472565452706911827004752589335165440835317815431388504323130765500921775750567910830887949321542841071022216643080282422095975695258793748946587628854547278919905412171577905129930700645954019726210434019958197946089246761722946299579847275581408242866304385292908924382245467697486719474473013341914421057566815479821809635505202477471390349586994486654087302552500662450634607156088901834080122655789289055861921480179429122013498370157254479632090211815288085049163262813732314668728588404482612918061383512441850770214413999298524458160571664042500143278823102919092101643501217430066125013221943519968262262194678406176284765930972773145581038966236989688099331692133816467811491205996818618524236708859606856955535984705213397790586494685922985640584110294978463946616701898287978820540361360209447925225481882744406685156999176575218485869913733943723997740596595965313226056638163654794532346285548136373919387974461391366396486304969514956385422232628838812407049503162953754974341228115334496581944352168128748285795429700336792869078955945479119077496711518692750953939593317167790805107901453585597957407163473774476467895435376688046635895753704038106690492561632231878657882594358105915687690508749187182551977731231205834518054397110312528628827008197138829814457352132685527930743764148212104763137092341928416823154543058029386996381426811717015115834519042650095997090212077598839877620326316841313076251301104281834927735298471039364689351231615871803327928793134312380960585243160431632389350511105775879267186439552374812380445094726150250329612023617769635425469674050805253193194098535337468325410573710875305082782743563431297591092135226122064039352465142653247810204697179697645980621535649004262869725197695785733710111277234271160675340984923091469465591100478099846654766571836297746234210441047977313800440210921247281601207642431642196470777908427695359059067952737456256620551886565248162718238514657012497623893816630055409645825031465413141656762155185639276903385942058919418355982350254881611961767133172783213000391822537402335409512410693502329033105090262094239263111351478350182678771852490714955023842201147160530276624921575007837699682416697632008026117288634246076866576879429273439556574967534582415701957141811154540666022042414317076301386082107465036986192757845701461819102203587361730409739389547031714684871404809686173334790765739854486546296412057937981234284474697942120769261888943024107065117704068331480965766857451422248631304765453690278624273010394605902325631995163137303489231026856487966144474918582835015198488223306249131109979189614462803930187300134721882837467811557501290784171446860022219493227731784338925873536228008283430724650628480175454382346611753373401535805886478901026702268671780789121524822719277738376445257574236235577975856129252883276367603413369379726217912587102911480878937172107565653607483868659402405390338361086776698119569090048546195515715333790580048372990090277341154034893829874301418567409723377089087007001299884990032422282448150955509072454825088888945733301439568940967169760241319808143549815102143545562253279043555660856022960116954229157304021721215697805450337160884083438972792935837921557319309688324607641018724614846041005225050645312447621430377301802426380247512559398232768084282928858133387374279718152962555641252569678666025713847077900911556319834872244137727560981790212982873685569392063553034739364653067381815549452226960125144946423825872578600876589010059872349459437689536779649332279266493176804100263574345433489101828904345022111593168704659768578224922571465331566290672005395180776023741336528960786293101730129048658551872576325021201966398377072797952776412820598633295902026202130589989383015361880052811906587370196593613820768797183331045485861919877288974281131015309725058643181733785651653959229166547153286493014943717553357810778909012886073907455625503428411382050798734057779260412666039569133729067511435169158068920719552874740245550542704001575175049960185791786348440407599722233712162620745217273525387893806961980949552418978269049136416766021624656235902892509021777679908206931639543879230034465372266012722096042787984499717554459190325761313897522604443793588593529604322222323357994985934718361760818371528935134700964503695974707232935852989266032730088357997912781630432761257343619673693084782429938128610406618325755968712582781459174752535180040593876490027907329797089931209595601038180375823690037189200759288756345358876585042462776391738538281970987518948626348320844159749180945331009892035549464666565824700391065870469130147973520927092743055963258155658143767187150374494817637812694151916492512697597726613504562102571443392603673865898909502250403721161740159322856961676877263264279538796598418673075118102719494687697189511762562647042584784906477680192018165633146318594796991823973947409087106892362316619614213822965523937002966967259888026054733556188431933781112318492374109419461003908930088018618058610440878771752869700521948156490164304762871913039591604151298719903930325776225378334606703105399552703818197145218944082780184505208212972378073433237252834101405159266876918736317993601452282954905510244989518451391592730696155923456709597564672721995679780391364185158124983412160288822044467162125783671102853772427147464915619072714733943385204513449690578438293337001445649253369625827102505425515630388077058488450144141277326607840146044247358361130924270191432088841339722835380789854343324239435811067299823976728320463780194281087470631269552006647115663868644663995855716218827163551482217105836707533203692582769909537631901594675489339585417387790168906561067194241000280881707434380844777223464797089597403652476661893864106292297781762449166017189439334468210003894354435822214091451039309773139272783877143441170070034451900481257453109648489739751391992708317976573873834424385938963252621466533751695015844169858511321421739285071828898191991209731007759073834879186844542825368928983969727981195749544358897533164877433582278201940992101707972314047221841626534318247951773531746594857462101133471505577895947729686584640662025924547855474493311920734354075047024604981789928244988060267599972234891289818356624554426107970315011886169863386400426919504096834431374191678112424976405175324104776497465825064903234668693189106518214579189947576067862746396982256884787904132917139505625992381483225523102559403126617843837413832265632983903249381820816449941329031004988126005038792221007032289434061342196491473117807711993527644359882609748077489687984040238567542186251395034579665978371437049888895065770881015533993727261489577670688514044977601313139416625177470270673706311113701032067445442400400753134990225408547386294634791474852668734285362641506043587044792920531109802679259906573688451762190686936070517772658398532282323518742539871725602316995438387477657247639690093831368012354689108288916599873599250068309971306317916759056425704197796964194722022083277980371564638441702595403596334477786304528115192205512204686190515752486955820486999801869796512335314451698865664139529757452157850750572802781473793948602728330858272323955788821892093909166471609791706561866742447629047554264024745029532241899773031983616753409096202437568542004910004013216890840526034509404382992598445219854079704572032828375933477869258168378099303204488047042248807165192276854525080190946386638585707100529398947597846901444991336130728471396715985003797637267213150165740193519745720793894116814769014237397637506719712177071839674645216661650107325530653968662927318872592691129799486852226632733929305351597808105019787010770470597172765231292438405366506635891425458118872961912316882496753145385876589869178714371168848371206912626417276815838890568764584232387004190635408466939594119666531991094907371423256577557241034827959668991383849090438508915220514104749828090379350086121252519811607970228657750056149703353268355111170361779298730860742953287665241705615780946911217178648579722950235114694097009706627013495150786930653024373715296249221201912523652002483089186357902354205290694900826960190161145791495537259028211458955858743106727495265121497123293547009143364967875271086149899064427783248699729491833563863682504211072650449615362448111326263177423781424774473209563454790110230773035526581623535167463199769090833900556446459501490454146185097970185387999043313361136208566982080370256425015006959666163223103898158968525844283001073515273830311975448275159993410352309664383512329010914828813621390090347085076953681855123076262786613180845568367970751581529056268536258625442985701574872800989102441474773620461916446802665183103000271159954216859832409829664202277890561601335004103344816471737730787058863141081731991257648077749105571124008730290633568545141764166454316145169255798096140157627191319658407627975215208840629804570127724971383403701504306866747311700841064393354535849576491951889588119593473348666030444169677984674638104970993226614884912183174983515875465927790058241217369093126556367475421465004937139238625026969791484863366934816474002016707488435616488497841879225730058259293397503880793459523481842709558309501750605514739049289438899607192547701653898108290576949053552296605075569467185921497262788241827439482716395946495166369485074061355823481528027592179788389755775662109286611915705714767271153488030626232217443375826529798851302940530198591256664121044002805324999137996331006281639206603401251134218313111417021863793495014778741725714379413617020768711799936114388846571915633348290677294956562829076767317754837058658003482150132092874852393893526072640993868076144258779676358464243114379094093845058830359732434198534650705568970546975705237916544191709809160136733575052434333012435850503489969318260281349446030223191229029523922558345636739232323190978506775365149319903647260600834341557608030596413828043683242814891905557922288317224765726928936244486207705282971666621865733135642738721128652540798665611715128866179534986411270364180127234777027445607373177316393845861308667560261845700925610160976868130109323871376821205504241109646910359312802359521259299668970304989590402877270981562340004988063450981653944098535426490203539779396011170670892081605548176345277828447083098769683721960163728824456411227607051028923249090000082578864019598283116934476206751372694782245374979086105785437467358421081282716883880091554025745565716398666929825761169287306544488416768057270413439785933431211312353814690466033646032046833068705915387790770965056775159102078764594524732434028017280072220244231847976334695735685997679120966165671484915198231960893933289687504952556257940705578018920239203656229458495512290230492686885500000167318322192619845407079672525214894610989364359727191315609721494381863646700039755829425718553852586195395293849332119611976739345686182917999533760221360330408393377548790965310302555616864513461600731182593645016645223303444665608531385388574725018776754331163030234352881978184173186888849815060773092645476399118690187519315680182403389091183743335044063312090479557123444880411352305577280251312706486349489892422597698408697811078945554014343986799316571135989513032343198999853658827120799956646418066102954864060679909811537289639968081691013305911023499798404693333908489282878644750881879401758592348339623077688935564370419921580676323986047517043793466414597831232963988164846030372919438509302681860280050684116879958951310960608531488571734230558223067620151361701035941800151993216962581124570132609666424496644980714133668978544523073697028273946577488917041207306650387242598018222183886007508482949803071178384413901697772223936488975130119738314909995308614696237616649776118347217679052429367235184486096309967918214540687250154432672203506714799929341094805188164491521618816661217691389927527797559892409286121211280024188786032004609454524554236667376603448260712846256989121853674341695283288761476668175293221948138370082228634516008271240592158899994398039817698826892412162402521749456472784095722186653071873329074559857509308479458229431133153986710605752730642675506491095168876568890336465895293176635742240939768475842886783407217618885362995687264588255106760933720520852969814920027502428202860748824673185218162421835822341399612610367409918056988962079268991236400496882562774086750606053841340314878297067423263096545866400436242807708252952322396417743437998510181744627581967198503822727189776874357721459139056380555111308068259707488088577841136568342571504191564170668386684590954334008734750869342713388479335189965651836422545016684500222300044998130764170325155644946337689037660329013257779156694592128495734660335411424076810029643759023761321691724152085522534239713853458162981818230674944544553522190265134248590623181039689912448377530440551662097620324780019487580863360538967063256584479934761390293612510442919815884727663279129062014348747155147604471714026666016693882965247302747322291728677815318153117834607789209780175843956570127599046481124521251262444667715594248776258788499272973306942078982518544390440762633355439682397470023611155632625870445245708239710688859474320237199173451227950670770197662800458167199936062070307677063266531352146615563595277787747963326891666349837314954345339412163632446357448090862593770520696767570832629792189264615805328015830650168059694567813920046647113369509702319268748251724255702086348719827898908287108224425986869198403809984907615661048685520865813955691165715274846587596619214620542610706151148204680591034675637515956384449271920610559826362803317162633811124963886853535037627690419112606364685236928185231510068411106253235365167336576851125928692677799642255944547972620883755344978045008059068837181754001780340300164925340179672093062372501708415087447064011420906227680986531190782476353733831713847058877407479268669621789844580196580615691247926368412754417639765166982384089783692803718071509661185886233513834508701101714417848299839730222000896029520151975465744206734260625700870064675507694814357958401936586696471127066516199768276150865085268985075440079419478764705271176044659178851340082554107378389309490110407128754908448913839048705638674970485423916283361909470516949121046938382862809724587149147127197760056086540183395867307752509618686015757048397091016259697922456982064533447472234991045159573164208842716176817479671000610265503141214104606461863698666369725977253343818619711754392574400482001932096679932267863792790724874527940999855264900689387431295546488070607695765799110329991734971984956730990806800922719590632818489215366048592624941770508866686633106500287384698590379367063032969895128167537028959674523652356834328138359551132389001684630674506599889339931766356195578682377560231299230881555963550074594184953673011872736609840557457064718313238403524148145208962618532563222442117285378287280240704709394429843871206411557433463580679150495557570475738066916928834997780146282500209299142361176085707504337312933424397176375803064108086633758271717293639747592458351295957958151499950317017455540544338803583556038369406241110540256266931218717627366792965168431995947957181547466319084948999485716612928430753287883714626638458880498327706616356341752946040104779436556040175116152032982361858361566182792762891538935210683837956609491042385299877564580376861771685957716418826249595032085971424988745461936753220175779780859939725283317168368976397160491340159377300691714728013124558822286083414051886034983303437077480278827382762965132095458833893185647324969102964872847484017291646191379833691453280579301860345104625090024185307416294836221251329884211029774677925131525503121335333192163214620935306532343562423090280247516421620294598974831654282098545904064880491922359856151119512498055120740287371866994438055330373785785796924949814369138192849366836316888588994580877963768046553609908461571569357289538815950032500734596941437221072873647672753903473492578971997043370128938422138590780590906880284667984180691689381868577396376543262799310140673278785454678756025518556130661824530785042843536876275529262611693797346198731698883106794828052307199000701785472374501478110487420709649019454598651431163538856653401148204146639846249703005559641268696071919260088041547297418643743590463762432930071961376328856401669635120342262512959044752216769421116820879643729525380656004736826598988727205298620961289595772553661434183408311808051066375497904882872839355174914262762007197065708159647881238263803442347386138394556495542337684001116671788277539860496237636998834235389199771374093685461737238968331649374267658176501386505453233052578670284117470312244347040286924483348537049443905213697416895155153702916637749515369587063269145764937361204867277598739073557426232389666450335581723381275829343719395311955188909293336207064069160092376942427345013875827608189087283673260367290498695176488487314399181436322001704634015729171527248790110773427477269481784331089850800116134116794428343183800719054778153035647863782308253268236339788419032382178227012789030558820343244399400917828801194095714975508374129955726775458775747143421215733942525269116019564804605463284617969190611557095149662324757438107241856240388208073975908965563236204958671096834716929661834438835156250290712599794530062376769319292661493598550218730127601298837986192515806261302513154153656258378514006187141827809694669123673869934600860563986339391319503395250527329852301633515099427002258325531060088000221279534804013871759931645826332969449886279557139363656211409642256339473539686099343189809885217005404129807976103630378471347467588673894538059373911691722468842018514795036174240561711918661203677144074530782496880627940650266165997998316259672241616027823589646427478393873767497093164055508665958505526492770107669220839216741644587566015676197691247585994369772348864723613050281838737053614145747611607754239228642561086939452741390116864836737557635997343821299280137816272426092949193340077548701325810384909592579434475463585131580069487609358982274497702093939578322089489998705867338600136015494891998859179227729487820268955347853683979177463748455406551614853647940296809143400474606460085767170873201644544743595702761015055368894369886645985285382114641790905977979049799884326552493920778752891749223825142453134196089619293223432489283789948121489964166408077974398201751522945206883310596089050905198042225348542835994388638830337969055683192192771295669303608737186364556429380449452898158064018752192321342225973754936452291829297957023862312869377454751094583509488993204391550397445826973898580145046060723272217736767912390783753929517200143642552832769482053492249896489905880961741375526260378261719745001707713785475743306453592569642804403653033231424509853256927015194250939379843380135490944641900166996586823899778358016681467743052198853347496519259706350569898845150418433789017496009005457831819478039011501178537746818611423802044019802934414349460168064882686006492763844022515257689595935748015419894404179019717604316965679581260410450387862734588023001604641349855207924270002668078663154008695034676832461265231655744530423556960432365847922939487834240920082289144080609523041556854055292825560327237500649239254240712025688312533203632878113948685754838544672933271045293557807636976078977080502033970137802734670387439949346499295220314994672552733405091262170498252354011556334925595155164082942569265849199856502654563680133240074947259059676701745063053306648796990450237798720420415553358086647552165316119009747076745988683936274691633533933053347328109610314448220900584748572323472702469427574421982133641184779518211532273033864865204466163829795756546299475710615358629828944714455870981000473717213330766750747959723829933472077507864642092793244282129998168380318568500731852576855662468644265287749551547306760110514506796490378579661605413462884368750028053776195374206396867917346309778638527458293131349572852293533973017148237992326614990180729147589274225164488226052111358561967108453213206849490563878980576028617926215834543420126539323518875920289018969606061873313103118885446901483127548111270811327065849489643412808762157131679472690668798725775843847099617947714362573818488409417230922527566529054596766479269838732809468914523774409567097902869234806602167685840310990458174788030754944371089994227458093254514697218197309000882166770893788840425095120528259649337537492632340232881829951825017647673925379415947363076983472917475934256562782466917200990002763531223051959524935515581556701097570592679911124383674286275891654057796493131500406964420067004361006932722214610053821794599225798447216607742918283815432973724434851293476240804753611422083306680306397458874688040468811277689475811698656511782157067368843027929358593357866376154350344398169802652804562435518376048990911289056425734437049812117525624603780114340099250381047151285492027801292848529839075578118458675918907034001671821680737672508212653721615334153767642673570863837924450835782920857415324429646309778604220150157475413943367642215699840593860564072153567893384764080804007678321196251800451752666652070860921358331842230391243617207901545683449884043578598246971934936748851808097792640199722476684625603185307122366359839629117084976426453634478479766938931449756179496242590730967939390615197451156155850463461856201987902226051237429934356915649599932439402462165772069400620194186791387426879446741182789751568791383088492668841481989518891905487978531054853746907828119346259556325779783727756747935877245886078145095975931063778350336425335899393445293911614239694967838796951406726844932699073464941143726296258828503386351290887577097193767798266991765910118046347275227725807871710985352919224587357321251244185455505539251946264923974516478797671957640367764715754394781400245987979850293614621585106596109231801347686840153491723847592381982556566676373622174980500224909899378733726293431630993294549460414437091384616483661925443710444291262149756754221119640295525642934454257875478534044250672634499059105777865080222006641086577726072955924805273731807501107724968443939562498810499321827951719206453480107370568409564712602882348474661065726637372354807952475815455387985860724321635678667938385389830986547312747189730934187359625881675408893760428868263307272031616992891516830824659788892896816683371249565945078320848660578076823488512189948884617698457488212266389759037572837436430301044971280835330063778257617577741376147437213503642889156256777764248158969231448468944220828943067753408442724742214693319294748780893088166644605266179483305401336380772686822417829127866746423227027693368068686702620540518123557347526316642692535484755710757110040692888356748646200057992634915944362511458780185571877892090995060354461449054616693876298991050545233723742116980245993760224314094910440696565345383501220045139474468172117770926288400526755663647824370674424242894582428213532729491103610071582137831691964323479378151437152241119528207843736914505724328630406279777687511413165785757317033437418365152096174277810825615696736319834271874401793068692191222913666131177339283844731025164060396470561411334545269291106342829175818142766745512730653641406218985478070271993949582546124544178110376106259144815035937253575095677820330731703731114895345783877564851533080412107676730322160873689975545931500646681273183923035062986327617244756578475253079701981230656531652785514169202790475627746523960839606635723415357179144758825766482443933768380254103546814180644088317186874453972875446665485507211017855410889198364121275037199824070910410807639943669914383519694640787308521562038696132671397286004380977061738075382049126912596619867559050722463272992902182595816568575240008469636876768976316744764224077808609040875205616720482177766213630315646869008909253817360879436597974202822732207190396280780154670208885516461183729325711990243261105955955676939403724739919971332431872218034979600833823974287741443076616787494291318715846598606348397098094836847777115643307322897333343338224079343240448852394150797984864858000060274322591430447396943062574644750625209243342842396210042937618687626242029538210919365625488957959474425766768815346049201006910304788370101589804995859241818876641653035251740847287244231719876208711897178995617668513777358299570760318362618687269668699977481352602465671350046081818332233004551210001916708162092252835575347328839761816634528586019991296967707992586627795286667262379030487834066937335057514346792695421629111437923764722184911805115640818996048781263424250945058729573053017399224241891639367437784320896158503169409284959171829476181436988447196591711900699133315726929493541344184156927808534325919453881579957473007423585003505373169665720092551780328161684864674756407889511356414508744115159657186593194547938196750445561856408031697910872106628541074408765720100067783145939881796627401086254361484245014153754052515993834877895728014185818033811201134006053179018860811503690153599883957766008684583585520672382822468537021123266385679293939388195077795504663635296583409764224142055825469424574860974421562451507490084299633903514650412070109049359852535874269854846976061137684883436613646341759621650740054244840590384635744303770052796685891551176645085597628796291381556898090534892292370703732896764195710859375703141029027795172615739629342924955351478853747367689841877656412640145291431756545097529393687067287945734926844292655417997768832289932013053124624864442296650180164208339501165849142795268323402044556192384893518893928572153619952107056188202208552796449475243160619628078789447807423760623538769786626253273560403393449244535465214763774849263743587089846860232415278102111581794832639945139103093932500752039866647933624329459957749953330879458216691252289453665638022002189797607452562309527489219740836185010034172921602834682584987010865487480362597744783772936623460662581745879919950950289065942798059320201164886230650021960305933709915100089408530692697099109529459815069573773782892625831723702593687422956667940896702884101444649776292826797903747615217698662708230163706471519223472884175878437610604912158927147205396059009578792684797727177756052128228207192167944507017217526281910245403503399424966353700467904692006460705160838735390930454108915740048386801783176709899171827365183586444702533940549456062690496030056602399698041870249014647388864298160284847391475533765581612120836091885434664710301747747620258966694086027687571770602897390066081710199869659771372170143670917028825870017950539625295976635761534320011711531602082403078599672108202852507552371256023030919656519659480446119873838957112429218657203170903306078787988684488800789775547495684188979979357400570257324501284766489338774419418408855500891262187264205465779586990406906496732979648515643341966357794496026188021707600797939230932596674717571219303213146103387954619112875098220220290785040442195492970362883947440906095680032072739533781036387026439033508002935354846942699517957130598432591896757430820071901435600974003063275472215088605873365113804231437440445403006355819021402171657226713739514487026897016558292496900245815561078331072717194735784669855524606920033082014104490762192834228743255477955223402235539728370521872328473195774027697297094701599080491978063670570604591216194112151213055347370396631545241299721136234818946474908426843129957865026428909221443912368944491103093793262688714853701139518066115183928094303465379804085759383825394074891018895809017347823662300218140889124047633111419622958797828814965484604911642438413767229024830712636117409194438803770294623414209632538539114190641224422168384797383654569708687476599374500522297519110936214777270432981128455506957681255801716229131480131157977718037041646792729561545805239563017282361413057259450101020058925489103687620332253847210665966429556961540770316991528021761232025190319759305710016394464962606430262020943336992104415721931143101721113417051244634407034487567388393727169269160278016248034293763846576552900177393008551676351621204453113119021876349888179574960112442238947200884313482764889154998861499844009126618140031101229851518621726413813078775613228774279891500763113426387318862176071250602177640807181822582018717547344069829443460392856716458672036666909162550784046782082559746940575763738643534348494870852407680362033781623740406751621554720624137151741882073800644393635363257168178171828755441329790185081162583590736987066555172673543989829607878662577539210233499847053873457213190689982542741091392793947520855426455012907789906285479377275031403526471759135344032690598157471720979259511225512663017969662508195016433393245912444368358670746146274770507596765065027924963135808012363256699060733864373324043869716939659964263025668750272889359936474663457339914774346984416934291919487047979333973111279469841924032041587927578131302075137703745370526262628178681562205201419526517829688432955393073777038115067037020196660826128636361302833352664403785830863021431042962176777648574914787467652211769842527429501143359437351655486806991029483256219939205369137949645518240445534115040134400147830435152484781565872400012738597233813762692005767821219987243296543619105794915034224907786094206163211254624598419337374125688955002826536358311656506808559039875065435265226615092089873309233183495872564966491566539038741134457627949498975632361950479020929406541906057592124895460791558509830217583671694505332026994612177227869398267905360993846462921616494618507901954709589159783766102114590134614810910325130767172257505325610189845100216584612015589571472409695432524458736281400603153762147420820613154753051345882849016577082917355549107263653660813008718004500809392707507573243554321187964380140453909024223659542235389867843541818783515266295224682048924386917555131529252798645886130661554507608462525776275988557779686541191853506407199712060210264434337952097574438710702322340196081259116942487329875988110875324249496705124931684835709354530280264870253237216064334294790738579100371001012246651620827711547504808049116976234495840706632002884945830589980406781688423297052293737603178132108082053685618609901508984340897525356716960618302315104100647810178668411463522030570590529004730668620716317922379833937567588847599251988780948091984326764310363213376309514333406164775865752447649160737617194352183837655006936721472042133048033838475605926604406725273686498083022560293586933561352918689138028873678391766911795525392423673739250629768091013170781296669799289217246991078732848658885192354069947936350884589900938182964819738720565443904504368620149454909994474770734390931126745112824611059524823604310816116744208862611690635156047532293238301868213952642310501378168529577158522049878185214285209601679393768183689999516489685480677904050247341488813712288038600271438293324071917983886199038837653637522269448908424696860548930568008412064637256664433979888204206431342878691013773057609263306649210013832315917317193896887683529085512670934744147158904179198675202871489436237185952932988706528338279651067005257398596372859810280112893789096789360747941761129692001930753105455241721636263399907003224964339240318210762412815048443822425404934052780326495765883932570868819212317406878721097949552184210950761751079800474781610592506325120479649846124242143444838901072076635039102301003413485542777878832541567826264922961026808134875495455299659676243849192541320751526440001876364501335606193433979019440996759273019402722063023679086401745715858584530762000001107673824398488331885286385866007059952923107696971175440181228991879978716883311097261702390245543914671328270911796030729843880062882610254660317506510374385326391540289872827884795195837472804042227320885000324296837725572004466995531853492059328927868323994839016564668074054884480049177799400250691654791859534632799918267591491268157990312355509678842160452293627954641189183854410871768462596326446662628790961623616489173820366718080876340762751502551438299892260940357565886046484056552684554686991879455204094177617782181667725994162529272889712663606216821032329376993334213263486809354167538070821602391181000487093839166403374142870926514685928908619023664778782550983125913304926612361258067353379584068764211865323949948531894715285964035554744134183050995080505713739322635440114949709858676427251298702845311691168286265094137818135657893304758738713510757364485212539460305369615389015607622321625619269242371888087091508615459167829740434594787099453729359820833915472916125106463626147412064244368403981699104288633000078789469904362121824781532923645820234978866628789574322703318518912089875392387050106343636080122641599804943648911901090101419409583795430320068064571255723354849951224247945640388465217378235233344805982387816778104639746404147633639853600945521110430075809531063137489661332019082241489555840581032659188143645743278066932391905790185593292419604507860981989469226813911776346547749195681324329814061580625360885945646255575474167762738581070417478541462905976274949975062463418893639101239179646916402847773904309123399044440125918122778324653485326452229769329304999224887385674015839573347891653542991354069032362185698501608317632347265470526000516955974382169589052618124135093375573854798106666352865337219616108637231831536458871144450433281715448266874993666942035744870762517413709661298899292231989028473068711191725966121519891909658782991459193362277887562241577807269949837025860792720683549890587973140456543036351245019398645043359703024883816735558219158338995330268285536471202924775213971606051696098771247951747782767799880612776741193455189497137140157895480526490610745337478542951058055962471628123991309886660634133610601237123982857908831856116691913764134837124747287567360612920372501875704766815089714230019395741118973425677752282428137906286895713354626804219684093679437009244027534860936394662281175827384818169429030779566394526735189176714397110203272807153864559225484140904697691246409487087252606363017721503801137277474856703870309284750682843465154853970205717005743896404229079272217194331401762784040524531036876732243585077484230063739405214780776019444502872278463136932167049610978204313413964111510528420985113941237950421621775318139249787353282918796646143786822409649683367367104121696903305963726156915042516794059783927684735975546047906003604642830376621446561686082450603811219183567472544670752551531602867620496904857039923906702821194484350141445959506253317187078675702947518252089210319658477554641075832089969396068661582606268112408179704089657752143943861138720444987113623562611148761538319581525991488036334001007710336378476406326736706834451340891290431595515480543638376637041402371374827487304771992285554019176809450764977669209298260655769205949784846621756370059639292621872086131599015828178051312879000443159659278886326725547808505472088806474202403021384707016279357291801644446119404047824491096830915852316015414499297169079560494176580870009929289186070602387133228255596962524511847891637367098084350665533319942552466749775887611449849427155751238049718522491921349655835622586461941386839304354046519548993482250828789286869175746941185818184745153617299892039354799262456079447564383787280808525697022221059950907882377900671457353697426753357400044114767252059903944576189656296260587754668343506185336913134569537171943093311918827433193371963721897313516637740517597525127112947706030590392078936360663433419717048860290530997582399540403797182795763493681210681841534492208002148733054631963322829811514079020247693496152280579372874983565587528320805590560850779439739711500854430146125147105346269768755382423414942460270444832008378454234189160519897227927957967091747890452440144818451937531967329588925885148883418055500035568710130878319931684141524013056260928925008351270081005705700744330337346348824633524311832375085125754689754634190566603912981992561295297949026174702167384592772655840667703518624949741779206384013525540332983011941769896475550105396198987197417498440429543656785807276041210386089194904036846994802277302293259657114897260787191274054177528238604584710897573695306931312804156607083276775447166096837006866114007529498440272670791067729646200438532596646961847834767464766798849812077983871469223450917772653862877952163030923489856048429138335221250404728129545395426335806713355923848035606111275642234453576619708982841731088894502300033354436552770589017571085152061408065966042278240503188618049085029583218997054893164859930062005211645912605738597590067040374976196907830800121658623511899756311541920526699191625006396008532891470323807797921330652060101413695377243236903866027683725025311027014574510515074305213953924301653998954122843816384218778667643761750507256370818575689802274631594281384857180437018620084841102893103426202831167591341985552528317422576048472648488796204302138664727161436263281320143638561136608003833528671016491032879108726138005432483090915169191402053597008772758374822696078556844940889782492754903154519124379185058597153052538933582798058241749633283498235790075805009592744447141184894533776636321641880919955472374813150000118162330657021113009771841329451740308326040509389251405464332470068144835003423086827573443017317461187453195190680938812892968441562413369434056472784716247129239831516211588896234951543710337763478516108815532094316619756216364632497348787427667810011958983173330382772257381553250723638828119227324373760359618713751350330437192171335624285709321089047294389453602520656009946201902614856982498386021707982279363166284419363850248718756725318774721546409510713262605324304236279255123771174139136959489269586126102826115249786956928583588806964927937793468721739410683885047093585802663219366722357030735976115914062989324710555242355769555004356278893437142196173660410097870268233448174900080577438975711713254577880675511468074635581559892397707805117463439645456073075958371852238863220671099823486534170119712902286546209433432459518478604755417759879777641510587287917221477238603524291811705589721700788408856524483025462138175710409298585739312875030796279893298035192764528367243388964618958766356266276892118964311415478296020599827320446516757827122457597471555879294508452726495407473712260917863305197032231203429275666327960734817828372236154215915701534588501411034561471304165077870221853146642305972992524530153604507016935496622964784155471124112521184568737469315526962911928424250886253992570302730753341804279653872256803890493757106272288615257625216987401810367325745837056974201061062783515806834790093400411988719664904800935632073279616118923094890813611744009054617583743639892527255020399733415325675671051593206286282414916036290281655138248719541028155715351593506196882782891123356825896050747607976476678209366614695062704892004225080598972185122821338433176556175664844774455440314498925739494016282915556041572799807361265949278826959597616718095643280338022915648109130757550212257980516943195138262838305184185927588666246039452021069064167263182992756785102478241239794175325669203158813636489164931198320396390834278638248527883793810640831626144424786421071211011801198887257969901289655584770236950999526923267362734821240228387093816841862599644678765193692898401424260610844731970393651039271265951294469631813337991892503740357688504372959755325129253313276231760935684226776235620262585287287383870413023943560286309410042766990937409615397416437183171990883921911095958615013781576898580105045459928970915067617645497201928041424253828842599824250049313748444238040788428498342311842070216721896523064508367485739566564731317131792798799560975502463225213728927119440577958184665189590175018675632803269943575183380633557580493913279734184531649318743409762391226787592632223632401445080595337765167337108991619049398225377851886196188576241271988125387234460757104005525366896820734191732896652786317342021041537820947467562752200051955654768137337455685091319417765503562389897456350593950678845569541775927173243606343399349413515797352916706495801006492893255163414800018403051397301070365273298715091269969666621696758352509815771216105825070622423254400321215164368993787065970996013048261360677331203706703012760869023996008926254116123455238142270415676247460741098823172559783330224635183326835407963191866809817130092767818312109304060020493613841186590639822120411237621740813634395523745113470169283700982563864377359567448195386145202143328788740290350176892121791176530276505346216507420164396792156017563801769551777657913509493540546428244145303498585455496641406976260709668128917125695289132712485772923721305500136333798801104729903719511845242216186222317535892781423202765656384963078878826514543249928445933832455454544139464980077737690558017448517761634995243556717964967109542059032959297030403127428950295140314112732399071208843010183381633987983975860188675205310745124645550291064473017277071854580553212882992695309395709057279238569755265475374379943053597188270935354712039165790543537128732628408365473688379335165544079110258408288556692052573508313523351780785120152606418787227051039414554093257016873780631854008355035463420461973588892812180463745979853582473460515395518398411812706302308245510582261719500396047028153215780887049658453671180000574959110455185654506916151109903335095103525321850324067862121697295059711833558378258733848324345445566143165279643656622432139421200752586317039478175099441307847929741535800867852278657039963687275779922619204963286923875712051348726327516784574272390471210561225577836257227512707823650395682788660401699839763389512700234352430657311401863211674643560687403963946203361755728039211623992545227741311267123467989895752117520451772410080992434206852143345425073093457116358788141752484794937583800494453377416031090683025474417758912796897797866179616644357192748700840503046268561652279310803718681500377937334894267013156522039401497024492795914488225348535988700189188063184181488669285565908201808430765066516466001603893814858965656089669195310895123539912890489640401473120005735753511440953008407374989865732053562815731845751700541705008976267996515989686537397507453770036104106222661275188574425760097817969269731937642573845458234153267467675331819088745588759681238324206093244522018811553753336585269370693017435280899190293667076058754658611783287850211230785752400555674519792322854524975181327208005167536739238986712841352952995340408550930090208515475182140611929557596920626968925252391302764283784374088005258576604113973981920428609390235111014256196576363135906021354463766118980276832785873255888577690729469398452211939465353991547094778254030116390430348807696767794492161497020577038806484542372376204755302234506863201779326245879089147759490843714206746076441446088856372860216010919093462781019058739108591159618255618416992723318899887973425945727199475213868276417787399859254672488225959346226684690494396283208589676694271179157775242695666059879694480204696203666044192272348893088642070779810529944667062816335805957164863086042421083654166998516168381002421281280138698247959134688314707694275605507309484004312567082116894183254112755830008235758299635825218408663818483810049448359871537585155614779415274845584436699495556251902300855875085978020331112084130574678883086754131784055855403670671307427146106048970170147740790422471889489594377146522968172847480000795647458270725481564133539664517100398679101062063413848045988076875636030312470043364160370794633457075415436011358314096437527083935734045208269582675801905512193461185596671476860742651934183910386596547369413648043507319397455507453424700048573668493217016393264225936192448156805086366593219986464414036432943828323575096329259530442460634429562464771151527335923994552173653707345010198423650145869636305299237109300042668133653789394812222827304665081682181986949084183777436811212706016036101362802280320885366607156570849972443979417847742192596915514469850838589769331338379801388466102692410874697883175804787861919423876919137926737832311455346037735388790631261968159050623367168970709479850100283285815145872462232373455024992450152519197789606090782277403574781035907170652134337591732309800315761789509262937040608961955030370264481076730066353591023042730786824980342458492961871014464102615333662457791648700190324416027375019388831539573151729159432699550208284244188386473399920251676718913845607727827352890212822558420284231296487673499299196925011833888210899010673715211159112934498021861307943246052877842050263871210737462279052374363717182905244703512481172317729917259427320415934525184514773983670985348545328432743868443716662479989922868005446108737270067375490268092951383748354069416078895994376341524991915405072011359739939776035392246018830754839172500598896444563978716602128925358519773862792648543145026343246533705127720136330849176937499394938939183867475410369847130845539839542564363068979241688504095015057994915536861350547891558243878161392357118864394365664790530852375811907051916770010343435757225231082531959083969707209964958517559866792264380643273015579813224198802486107414355509592772841416858517044293609772503062263101701605718565120083480509899010166663439837845178775934453818820805710699696655999778623391503271691663031369834215050817975392750766061723924635571952924195822269178016331503834220630137101836991816952668325217776581751139238770659349123938876782383008919509826319375189727986498656297712931159520421720899926448557915845928362189891666308785913276945504806129411738941736657459574126270323724566608679251178277629294283096308086082706132442222192147452369729802070141435235199083317180153807882004188458405563884839758158994594126871312623632237556788403795357776674571547820256457734222868014375206324801032444060228266678958590248863101993508209022811398382801223349594523044710869046399110580124411644589735324423618960541961693007534211252417386315560295526491215935932094466767017528730572617985980540922243530199415543397781072955631082613959397444972349349599299785797424544054100040995722325545621167173410026076606391639154535068237277230805656066350234578958934388226769565150382112925935002059642620043154105190193787183350536542660764723127925376530227182613458642827543571020634049058806861375097376254628035088371384644210021006546244417296069487512524284561667188512476388829724546212595053602357486048733472956279896058282274685800705790239249916115629316840607743150616023288990901041927131539395398891140694510353395151051327193913771560959090409464829398988415804089747474574835734057368674276433990321971462707768247956086833122230263935775981430578930412503610029999900661738684036951155200840869041084782062367336928940381388964246115064387860906299461549796428773595757022315947389883898123039335668145392492925543777016617971968470104021780343905204563067630016353498235881630110796535270867885011695767198925645546726906421198812160744756024838627274229347172647447601210222458090226088455591335435525565147666542770820206738031355920352995938932134897337926493733083474825966802845778214989130416938185395573949258085986867792200053412556098428759698546349252675195274486447806830651071157501029233628794199443782714459411697259001167780252437073858960524088460720830573685966639462157373929058847759683217748547086483999698109455691729771882828715822017855042723407354261825344678131970166245892243190987490685620502094948081348638172468849640709909267447307346823989720054592854081390172824811718727381728864846415965747593202710106378762587708966610063324076541564062658615855059580054904423152829663908148434052021624975424520099102647346502073400126553829654847142802408500693397447553283705918060926923243804511340129754521248856774091565406268988532183141294253394887739606333150324277508126532657102167203338616776723065231293219889167421703155586269762435787432429456284282847816292117152322455773136488007569369442008000263820433078103866890664584175395276440466239310675508389168750086659388150526393637531206287667725134669102397170111863978880851041895012785256327599098864758132589991742905603005155811220654481599657716092495154787899190725571548239150592775062948196501956503157455140701596010677819169750500511083073752188038632569507413290857828327182346710021165635159101571999752737684805932216318766099725247552180445275159027920254366871243493190333417413498563210978839082122083838016060834678919328902863760440846800993724204485006817370271291259006119499759622830498896806342568811158385001987396820886075481297004269808971209778681289626481221035977067741922779545461298175162856231781869547194515896674743684387616241555407214239070024684144737488928353239728780128570971889960007038121573070794067521741343469412684365317239187972988378696647366375902261345380505978373424497623756881185964444453060902198906158689916363680783657928406577187105957252792399655790091669800854038616286840099030307260422995322539239486889028371948618999067682523061620320590112813981996716090375260754217063922148154638019515350933434130884583854183156885024162074353005853361234030278405144220451254254231196952379358178174497303512695997955535249281020926314632805605386597209746445355074891709899817242300650081338419839782217262129995792460483994771146645266846492078159763699495344249276932595674132114129860496281894682767788163771423018116540351980211167258164375677784043406232018403643917736856014474562752740339302962652575335885618928284366675056823084295281099149188768221800350496137189202318928488396455646660856564536310365971910830696906341448678564744461206802503556527372492755305564641250212221254811274641687176127036583861908878063676470638004921255424555719721011762654782414737694746458771371971069396966683377360457197715938704887713505922988461131241670581794570207534695631016353742711046592338642982559904153842260915131612180936007302410777922802733237868207577852664523688386604093650763680566801217846380089354190368851341353580854635425616056645424806719937828118486016155973199479823056942008002506797280153468230793347724365510264572761213521647934613528049125317822490475838590717485279658908565111308034681911798382700176626200779077347092221693090141328297093409885911477799870801234896280709041897823899184128380194710847774917732927559267025637350306540985944156840221410110187540274585106934149244823581325778254869662220569151229645114376483349459214127177903815801995566935128696530502155091137474969534259629046906464766494604652405074824435476229877644660609569040807750573988387691623711698598055196330996206242726330588598012877643805114799583516766052007756761244971768700337413729149634936521280916912592553583869273199816236605683116718905290203615029975744265110509950905814437938419575284013332374741641908962954045775466882057666643034596825272273183471371158655356128254430565976575481140190678648568748196480770308637287864797554981359881626735383859186264208120842773248346825767118466827200637834811154659237685613374383149398481381457188200455798193809337243864384051195890136458193764514286083626033626100683808822966954658335688337723322615148473992985293832609261258835594147398488208171151183443282706101608802900751626676954884428532006090770997772536363471879516697034901291663931339115775110162221840148139821657605732030169180949526432461018565614131221501470641899054783756202139431143125968322308203913676827164115705317277754991094230370710204571055335599332555652436461778528893573953798995094471217283908641799743514249407582969615109305295864298170795580114225063712515855738486398020285779538370250862554856282717202733696423697396339842739255324988738106045138157958585389672658806222254199789628508382581720040419724990923169527251895811086903596430787820433267867365686655634808673911729948529861856037611745305712350019227903128585466504195162453223383488780495582790768056027884797011118573969256274238565740178116793438011548001870300123440200359087617661954654556099889430312624584690782466553313676318917700433983653302759387847190438897898846926824935456150815076354232587103309732057463738052967297907407704859813383646233767323135686698409761610247246826814801789677645960954817389438877938763296226021362903783300507861100870996794080459818073755536066185357646953769757419091899824171237945251996717784896923532855793036720234380336672432799025571875529850305743672029604598848395922688274209683289190235028236663957779005056045340563954391133373395443438773215421531929512725601147163708226893114145194953681957122769144069263082666964331922624457533557160283129425343456513839018517956579985568140824992389445005945992000552660666339329049930636890374000497987445383052909187025613396069598307615370459958703535581242708731833991092450900786442434102896205836792214900289549341434666277676494682278970430453850923895944538725103711250604350487991370199280234049447067726456071380457326379131423142489497828724208354147875126272422342303838871003790625662214569617684244816433852186224797053010359170973061766259291829110741954547274453289708189698542430655300606979543659503310387811680961382748350356347441721047377812561706450443850245019432898692575102625163469981294509751491528318212096683247316979334686051210488750722627002892267839623854672364756109150242838488256123932610743710395782927032140324853570025168772859512930982764262649151682702303457927564991837047486347841455079308505589248640621493463887836527595135223525895398493081428943963036606533461562890679747230275162699627909080678327862977603366406283417576233713555377443430654556698359078667850005955715421194754458125583667190176467924883990835667921952578594690683821256314918748183596519578376629838856150507956306959452909552149437499093524129212016236865900914074796422373025539504702088483865756660559871534199413069227916573581031264140839972848718361950101047625967270191799223069799020696990880375228349335305746098243029463746640451606693876495922635708235707674839220325884684248621432718507415231101962162529214810255652947664617672838185769017048774094736688560454160570291262749273925413303524667634669248989020857655329921348088848113046510476113734107771142543152438560594126180722413048944657837242939450291010000859135046908807501281742292309017847788743198444675642751664369115575372351828979520258524997506115183065362007089231890870522121860088730057795357440877321818359223394380889768787847711820012318209838085948579071816781126506142653144296454533433449171339489494841642198333172863936804348231427794379738586565790550985343766639291156123833004201491263150328542940154284087548572002071730405672105697469664723706427800195498642185334993488486746481716856966329541316464238292291175678682771603696961619938744940793483037052910338216836151940334472570253799964131496179699239835723735952773787311944477284045614311176332067713074818402014819851753480830540720170027589142993480686641129936146265608640196266430485382377905233250316487629100038291402628966974204469295859426210245975452861992634226189674553352714406798068414005393321138263438352600433340823689991947210125982779687548507165081982200395722590190672931831453780630267518250181152748372151216528708217137809075879060441351159368883953953250865647983929101688673219301532922113451825163073163044798560422896490235670933714270484487326546017399666181576444230572435931893222264441647163962315032200166574922007775769876895926145926313869343040181843285817180636583438435581901229212607186341266197205645061492808837082320510078738155379290659668585406460305945010802715856982276407312219025149891147991222687946389434438038905977635769548660476151008692798295913610451904626321538282464761630077763490821508956023067195623751104539908557617973010013329518986620193957723409990996171187527921465235715922685290742252022279949812913359228482504341414914760005799426551297052175136965613630554224555813772675934286169538223652057136425743342110598583615949575450286661217576459253366565668753073672604958098032170821572999440851457267466464460430558230105549230073538421225705583918971074042421361660165506632146066530205523624113126046654303765830622661037850029843168890962733704764746516709966713214875254661147180585944424144404490077326027189027102492295609999233193583287452485990846937038462315186264119819039264964373739831979059227776766890267787957035884536269047180210837984524675479756617258321477368275178343671623890773062311744756927152377891561150129566120395906968114345455678069154870401999431460070826918345714092705550289036208884320065058441124475539843185891347744527998839793056419967587143784919426533282367142919573106198109474136894671797636813188644619830428133788098784924571254204241643689296316067665744851472932694943650614255212626407869993239011985929578839461181816158831506077093955409812611533625279455099688267782734848527977516918334067516838944431164659850786629676031812650562653775632104014230136721709695280908177298799240022160274435904732135191735654165363841353330527777986701475381639831907070848913285677825088207788014153899921902947668187084655029890654736845009569997942614685753351005342874874299830498244048912166155661813343369664916954433889999823470917646545685532759993785607948350203476556787524701226471611113733071013444270821448003010268209164047502183180078711461968891068193372421515515404263415026674518162299233244981898828106856055276145977630815592049089170431988868816603465915827211350391652952601062354990965189287388867854305275970422778509245611909941407185765421571809413821676782146262765787712432117153656991425801616052957679411197079076150143448685231096022022680427843674394831834130885502040695469065560576459030439912573579206248127083710783919105289911681057292974587628195166583869218847584483794333964336432342035030917715015661251937189261614526228812866546627397970935822149949996791040665003282992155354620969159682181891243186708075161283603492653094323463772361419510759140070751692836722040917069681498006449061175341582620396643235973010929533517365993096298174544395618231810449171590224374016784579748759876091843568829426979216844968289863705637139631711943519747340968444217212116711088665745265477929286490537577547802971658478178336636511277487534708578862364562763645997601064034880774406027383746249656015418699425341219920955811256494923697397001846989891155025771017761774119079146707385522389515446944422287155517139754624225880838795363604658786919337976334176460394693632845999887884962557926083125528976068297680827311155852584926166832569645351423514641259654513206671932720698624670354902076462630499717174900473634293621966239437107559279170574895485778810542986440636179704900361800335757459241552454123137274155830101230588812454111448220816138111011276763862331434263196952026312922378613983577389492638458365598810857512679754521161606777486432280405760056720209545604834130451380932405399981811764708047883309535854786256194518886632448570942529479777699107858828791554260572540551453362072936101506867884924801255113342231819874747545673565493954259283926193161915025421537753565248407815760292355465471225427679661305368372422131531109425836622910236313346542187704328121930347499245252915055868812073689299049245327765142132013674173243816379462206840901883291257501722715326862048876836190626467504875779718943642222708735608700295025568475676596851534122708869075895141541900423462819233771269116932373526033952351621254012021398862590786133670643904867624910347696760349863035679625774974854729418293937626156444743965888641451599548149669494561930822885702485161516426971534591479496329038988173257743318275544584304600481248183076276064418042698019766841661032868906464720300610689932277970969824891463377159152286454198552905295068441679523604842797805914165533387173279892375643990380412718725661741300626037224646177892101180256540013156817766720197895070803117840089973055101097703788544350304712235746399505973226011330546050474815924748897647245089679989687684232249650240188451186507993292070255146541317533093302042037742975269809795548067184153533794297812558949351754066122870775479604564381864359041791753475955515590407774511039044493048420661826305021066320772669100574800016653636206061282480181938943556598084057677058688845448322558079398886297323325685354823642033633145469799915280530325388046368473787069686267016735593448197802903550043617634452448551009464612489832250386975858411838909302257825174509458739440159836834325729394342055750770410874495561570174993949258594047855572031999229946141115389777774211842273281630720192645959421765628821407698414353811903724628315461215675609567099949905399289800416114835922822442557769046992877903072549472733128516594206753223489753267648814405349697393840079837924628787956205710865776105060894007366498159971038085000449280615356980454068267873732524632767604357796764078388398021838722100533027689668107768923182544043728960169007263744060385811389994397047101429067795115046813431732255240806638497603302009203343230498672231105053843578065343138483502846262714795445768959326325382237961191918904098182469561830314465165909394085911484025424449285596466959169351597528020660720484746500882756095406261672798682394284985294212150577621955786985334761393184179663480769805387992378089134945638628262075774518846737535659180758875802867400746853116751695724715891731946708712418982684853893879399212980590218349001621802675762872250714586289243140704912496025502324622236043885215422238171768378955867155318342702081405523781092120154198401058263602664269770660834644496367777548665993948958729423167823976765841043965892681786832996182996489362953072296609694309954680767937091870668876384333944205812898234707111403429911183687474586821134774018955858307113319841451368743199171861531900453114679392019220029826305823953533480874176467544714606469826645272570946044312102714249751037589464832597171156591380006249429399081639935495175629241075574695207388511075916043252401919646909236077787759975199478128581931824470555799837991589550683205821092840252619460987646731020708034120265930940415736178508718121962670768608717988756493578350318075542081692047150991456687268401706646536934145147388938038203857376653447246146950187573835554266657875455501049647851096998223078824105442811351440953639348417340407067839672791934810142185497447481105985974694084273223451417095241372735439787060307659100618412788934808218277611602725289841377354976320835178588912361638821358771239088549013776173153950852597838137173464004355829804103004529735799686516453134953978910464410403524705313400332436051127567860484660129901661919423548236637333501593670125357705448295120223835890430839219109915112729450598885189432990885543107063175913968959378233355501915085357480997610065891439386690244546942935768249405791617458693581017685201646504926937706333853160102862786905139108702851487420603236680841042477503987760171311614604192787713770249414719651662952153711260897584506948393505297079500135688844286324226675122226398984798855474231451483218490958332033003176025720553241348340048109010484410534328278302915345068073803171750354398487790037904970488269108628452211233001145356125126329854644775042066614909480620909692256981289561522284589794668818333349990097834797593330307992380696351240848891423698197432021139892911551931306565983131790843630561062656477705253099993176987000254345329654618369578035785965986311761221856443893312631589473386423248439316413935685254219459154595123662522007451678233846985610285716082516141519137470931100537105310812176947317231447988490804271902871695739865137731785986615851928665122814324250652832778691766055045470873073561374869859079464150582008845404187845434770832446816974946009567017258980894354062330885556760629308337004241317231483980106337894925609580368886497346287884670658934945535317258992321585559121981203327427543346040542689382974895279185542470015023664544614356113556441903733831073382264561195784254715635946122263073265387989834048545390125245334518021899112866389096791540588330609243118083639517880681111509582787560067259004486414961803218539046109342531806826413941510060856175774647338907997523050989751401576939822935915378043346579485990844463965338245928052836882349212255328928153628722333581238191387154196113662581700345701664179100628755498211300859187386843619001178639805444591876413873055596616953485398883099023574233527258735796247900099764727021661021520981082432544000769833844558470789304947701595539734703693537663804454715930552536185429738499474559477828729466791057166277702497759169492103591597759306676841940276626808381173607217286724954222033705180932626808094558536920570636679515555899019392120105080641654769132949714311680515604166035128282953345926494012045869041490728615980063933507381020043093412835916736304708809154263687835762084222121344934612447790631561819243282052217421511742961770329362438823562889840857317923781061308444254734502604146133551933561438789963270966518260917803055182795226794408784383528980420872431940366106559549772290485575152526664899139366021153602967760495180761969485954319734523587848918052764300807311514692624605406536064496874613541515725094354748831593614164926982501254888377874941360007717513351025289247427888711371744991837758256643630021742460419148900081740350967170168603909688242194496591592145719276229379981519083280642471119314025873091983022181480627649023778120324966223196983871557526057277126393745668244464595354205277813184816056595013111500155825014174611534105368622640278768370703491134606573095848933351577160717391899883080048081704222867078289390303354243822617435192140852122509310138139377821350069888743148653889628864112441628014812524974386436604882652446321039822545254052301747435955262697694790820495926623384640212951942135060235468190175712578300138296957486143259147228801448079603857481493055048850242658243844325067763378258781116852553113652407206076348232715997675196606544150110430604023227807753710895978666321603826844078624737703687535943286704282701863081606121359295429188552509531719031917253096779467192596220386429181289129285821751531690610838745707400220200653385957499519428077754943532020991819799852433368636357478476549962390101328738387100465833169283056341594410195883374384695052223631904492766886138253014376395822873822034217792619732777067033657507735238086183968411864860676571015736475496633975784940206101269558639506445984229956279706954203342732212704785113803714369017992567662151699738653183923480187574945755002479742661357159846720136751905341717467517456097567238025953005627651732306290266022018070888888458056328368707575715186197729355538610118808275797412131979897942024130165957468132201997868585355812652294507959843982869574961479716690768888677585113773212045672565180963166557764012713382851165942684406179189423136946331871598948702925259598526133150073500088037284144940538484532916119677801828381896851361704924221710397289200516902462153489637688425785693486675938152497664126185116134871597100642281682941923380530471765038535972857528572011430558713623976187682165751222411751146354839864086301567096228083036199242162458122903135804253280641289460255181730210342881844554768836347868703315195099996565057842432102119513488330947728272394503017708042167508379411862356068852960572193931745318614426629848744486953814536225768369404247617884008940270239347951325155144413421569966521101236902237343657807921061255719230084918667793494715656307445812937746595882060017735116750559391785072531671615555153093951430977322125503932586695195447872902024220167907807299616340441478107078726630596848769816521286431250574734993093986361057583244131660667813145080400852526215136054802253370587045851864582914664372967407746249476698887187685985348998947254967511226043115333573239027162067633412847381994760225287762617156946975466502267152687331645825857814504703027765216065762081596423965788508971307014641686799438867344028652309496955422651699225341019878809167684944751792879438592308908115563525047546778100315536832567971343426517154799387620443594414543624702529084459031916951947133665368189416149194742887861926657292930510413468003664015077859284836083656179115533023108409540089304133925390802100282467107916079959038960968121589871139237319622751896494642051925670768066584894945619896082473714176423559998223763553399403716195697629387466699033526876740906561759576968526435855322273156668163514648285714605292129195849789934351898957322507861395011549675115085346785214065984058983662256048367937201522471454051686386438379143168647890588908102126495149031910872573118234596394004166005185477816400831479837004851221950689607326091473180477808777112699743153805694977485969287500669273711534823289087419015008636241845039578827328763637600707999110242796199516446517672432701149547755693859776226750477136722668499856697546898257774377297271163342274733809281048834997425215610811306312707283126798527818808342524750676934523804846276532927356128427207653002846975344388281822207345722601804853039892369275351195624749128362912317608254679431712725390321876142349722047446222945449546183596738825788594295586293399871044248043179296648680412511110010753167249953745621329516184444313643993106963565700201074834599589604266810777709432044148107636627188527597617317965313055846088417209219528110031758608205279954548369088248905656775585755526209618368731944199126798404467455919995205206773137007793214068953418301863367220281404640417467929826719909983994553520765518101818197090017137479182846901511049588132204140640645622417738418000458004004944151015496200406978374070369974810531333993131453325612459260665775095889433840641082983200086515563002509247074425656106023626372563071287374197924622386032836374375533088832818574031903069177052998260475925187180050000615009074622354980714320024348509182597460932171353848422795286419694048654234440345081463511682613650246916388179722918644930634046833000030715099429153791636559400124314623059956948091146218525049381869215216612950144745186826814078898813702255892155921906336531924364924845817558392003711945671937148962024554093345909681733501104266821961702994190322664955899406735738984732076046514546763734776591050943223194450892769717685889015320786978341661856470765275877434887840846760205776899712457624393605496579499950858941290108146378028432582741481476585166404856788915030114335998665523730253536693953750082690720230085826008687101451478951610379341772605090343814534451789746385919980902535611526165117062666654949572523113726951184518586832182033183145571656400037171104459021279174362729396454201593054770064323528218295924862486229113327620821183660277836158411198917362167255523435062432839610922145286452713976708589560581860637569122334876701989163665459038905980822122045223212677643075243250297990141429786014423016750880846163975754617043834895588735648948840951319870661042244134671371932677192081498183218379271419470012830428842261076826242468879178886676171155172807002098578379057697019921166816427320501593004342971823189908512300491241897584713502398741377469184039196885076913371002083756361007773100232081878701023282403683964571477705172233617248191022103958772372728063625449406605203059332088717834519506344631299386800816887013055078037948919275618286433871590013564101431866114650251728483563013430412560810115993161562886652964520646985621206466480420490320720990332494921786119440106246693208155332042623421251570808443690831983566620053803511577278310186571174414743865790900917706587609572731425054127006214613809907286436439833485206196135311189384192597776163309630862076503175449888955480876798581733516500051769223960631275060414247024700156088948295259833331267275148453505820149267503725034290938204826273647564384688281110991579455868050593827906456526740218749069322419494471759393499578939747563314162642209367867822394721997234354670390366110356034215524916532725309253919373647504050445627562705783340272509277210200918810154587383646640333147561033968232788972797247130759644187181803059772516418304356480200851131667320352496689468291092220510843191948808591371512881794572556052630221759513792854772350621703015975921163511406660162124972005133721955202212658539337729649212573729344636037050164662271438063270121342074930160762925871973610637986792342678157722487993777571698625575443227343801529176512813688583815719305781906169640179951967186930655087817179601799048921898967757573488215455319674227710696101501396284401106884629771213475415292272505800918315979955091664176749881720432851195667691498565231944630407676497361451667004265103953212774211785028152049940180625622685268727977491740206194898025620841584909500356316900068869667813836248852464390776800783499327511788230357511429368754435716928647423835536091914469464200129541426825563880994767630255048963463805310250044462772010409724260973978401307870584373200653433861074135601220202478202198014825586782864704417291998092127304567657399339933799082428823108995747120167478369213505468414610093007185061088116154445061946303168704831736688268244775398684728042577887059337783555906614396516986884989153883099779755354966178419242173816488368719742188330207449423784790194719119300780360647318804863152945585706091287322603224026611962418490173533097596912015729095414473813655425880409427979202945141779370824942577331232043205280227318473635640030762411614979861228406388573282947599247306102518218363283300197156518130873376545149228062898545311412197770892592735191042596999593626846377988153619846589588995321700393761949989522663252857044723590558803029487620001558514412826656392230356058855095041138313769003231186499494827575275845375710511226906264852737811288307768704633586354634343662636797162224364613638796272084742509234558534462803234490403529753326724991148858591086468451761779480791482539765886232422331239225602935300384418873032401909080458310272276436935211226189715951136676062824370811497964210178756899762119693797601075917496728517213350592622814579237163267325174843438141445815522486342993237006668790840724386537124155728784570960261657663450097716969474430270341715323467298704063629948079276531315235796182985642176066501175498239258765954364378173037922695057582846184981643482240581895294159704661407130565155318574101828368257048602297471680464929164046260368892069461137297550010901068460932276234219538847301617130360982682222155480797099787868505078691714846377226061471808088608495374002493504096083596002147514625659390323521674144964302455202061347042570494575339121389959933095390669398509776943134842739524103520772817427004329068485092866744049516287405210989234622242517236562337780316056758994730810193962611763492834100999829936510275719071296950548564215221275665724438671085152593758927792943714881504306081842488333840984525431402912323718413970003310406213699839813283875848169923806078308036043192699070829971346908312566461112200140612984885191175198240657052819286172452818465898465884830760783122416954887965456189065252333315960703251310385285556633718320948320461030820935464393406399423020273946492723885691957627513986355708414623948227194539616608709017351863590083025435812265592161532448813023789635614422782577072366893718462719848720965919496090255475597492701270313591643629912368309660019725062837663541922996499754365910163676734667846831413571089441718215239011511122082668705277063723028060582850857140836904316932428232411423510306487219152087718400327717091100556903990136507987245514289266214856592279535435508815766524397767531652799165770964975363470829431720642024669377529867225553720993407265492652239917770025170915483405322350172328362826416849468230523242657857623003916267120082016253622053214206216531828798209266708882874334097029866374683905346780136598788118882313316898571565843065299008684463065050945933368245814084250174179327831997610763666197257599308897648370623223278646021261280190850283398099457695670798997382437345579510543071234245270598104526848225878098164508042753457533573403213717181292636747792559232779414726643170366868869766946252597650226028432151755793091813202910226470654209462279242529785463940569101937893308297709219239577641874301472143134515334394015734048783794851668038175795252215997021379768713583777043957424797356351604449401818107414111865851238477929467222214581304199926449951802861497690842950437759248344068234188958055957206241270810975120369337867768384174402727591873067013717181307991781678431217668843148315985574017741434160229110898650785999948553770871608399036359126998157101369012132833209627065221772155484819014664733306769737914937733349818650602532853013793713227067130447713935712934845249393904643491139966290084679118561394431611364076806792795985049809106670101874842250693542707544703995824108378215875661539222269755703613191733719414233789757024369229100922695009411976695899710984791805648455000245268657797458458565299345903769417549977439684897364338124058226588261550911829904323522373512906176548270845099374174805996799622474962478576727319270774129189163085084475604170778950862884641913767596416431049218169069785358502330901874364247087152122807671175172434239504625812722495026610636545785658572431840909873937303241852513260920855522257409975657241079479608087593566454386199408413486619135984578656074933495111309649239674609361360121857757938272223647998985331319901271504433248217556738120443530521241889855859155308554184764236817908836316162712474516061966233602410196128697027945843977020579549704019754218358445905134233181707182569065701869477189331584539239380732838795818105653829417354101888245170789779495992837017451792990900684719332929591060658514878038928495429062291452697442228682686477860034229285691356939941163848725562436086010726578420466807379276290494249859894451473348350419933527831142263115726734315705740534276676667258371401168091876542325903772964859184026114292841431139724426790655122520060332823598670696634404630514366069318668193153837161250588732639089491121396630030566767172643999185516010680575471602012104489944221516471916743641069055260351431130999411717233689630671706583854215307740726409893444706224544683793409820188434327164943535824249277827175851904768566079012075659058211399985122681626262879675723000486148803904379091928292018209094479195435772608474376714675579600038439334661473418450769662314891130882280691394768766941688859218666465995974397459156636836546375776289047685347629568909242666943711535927875044776136572086806754660525821881221797610612456872146657878985924093470351415033494352229458505400853215767366382538656719440516665062833044310050205560078114434518926570796952599100389586068665664064373780925728326189100970712030312710766921768292088864591621813394582126728554126611229702509429799767056755202123289189976029450354522081917227676305966631495031158051795735871949096112367582252501269456723136546393862305534133581096074409517109284045338062527953085544627795701475193623987971490458761977702018976474306572866782110269005888789220341096014598938885488079836510889625730192906381012647386871043938604575870203056815475799155239606012156750126624223303656559836079762969880939564439920560711176877973428169225858305375249841443316751766946774991506078731405678156381329811785290298731915236061543707601619115836490372640272827265613863719925871569651021227202675168896286760570301546436103314206361339477895928176062457182438593751003753577129680064893868019084912219176701990164372376221609960005216699810717099857000522987212553180196515601535063083270944598892203231895141671874814495836521507932101500956088401344705917570328197093223274424092205141021672159122882408999312512249785854652377480005957128276138802634832119118996390640145305986489548239152987871492877061762262377088489125885120777693448569105999246452473733127085516568925863189720268996654583940287929093124678188537486660604668867260320493686214768239628061848140958066973607905702320491483750199190146976781010414825538698331711755523719190022471418958145022584874392938006167778556475789768806234526660649929548534999643304303021226692502534116189835601303291713341835459478047809111884549220750009196074142133259166824571065459297838747376550783904929984529568324341271412423031240997683982214197928994560546378397500905022704024795023435653257453658016983215611595777355639243836035602353923737008109282214697470478865879863500637374517833546637331519868296256607595059747600597641600129734275091767426024708722120586803628263135895743595160556722180138647780266644164889694314193776361230317937764052164790744898856342567908451838522275189143879851406659249118334817663250494481979776923759683257025608720440075788412983166630940295510967154504751764256647871601082119604845380391382024744793677314299357162488876058527470941560388373719515870615965591714905169024049938583660418725336161139728184315699002294202361013796196121534678444610538254190981448282776062059893040907438153740980306541906375302643641745822298867485270273956972864346046451093189839683551132262895072530974537356799614594055044730848679245872512976424580322302874095377978490065654217600140624872586117544206665053380903784202289076000985945493729519126935205452297256272673613287108463490413476104792900515754203376625240036156119931759450154267835162264465052286187908335808699847287786563899108713271134166748712728289655360096901653623590173660388316314698951577862013815537353142044002058245142016880673730247583545016237854773107792293527994381714019530191671054796624512446278265112903841264678830826329804732646702480406169608568465168772968851704127408773858076357016826321441515797941547865081680639354937354656418792307632348669726092946249006157745195781877042012829059525157256565106251209084815775578213547450250667898208884416099527777788863364866029472071196016927770304172044588531201944577506248236125065431158258787934631629277942288659403354977029671366577095495030469331949224208501580704403488688524882752000270855310968689360862748372092876565922757279354586423378749229829430551408105923186442163799236530462443195982197657248122942621178451474294820840659582651405779206302200042503700583084819116120102669390296226094908898828828057427690817697744207124203919065256169216412283289121342498754276531157303762345169061177725860437399468812733025062326908215970106232747863583867618781658370603007822882686134240839161874422619877083331455893456779808558870235288029514291305972099226350094997463285602293535443731113912003068511523757126180228004051402326763770512868784274567484001791060694914281937663156945497778387955434650853494961164532284862870899945079984537126623499346638409925229835248018464237623040439356935537733990963502585414937206108992575958946917354795639130710700034118974254411428642343863602054303389102675263613650926285021887517364662211002744722005580956283277817099159707499070984046331094774852617942840164989500184537225747010241237100956775928589009612136760956419042950710758767305853265882872802855710394005183163268426321326843577016319898684475725679658075571764727465881714545863673829751131515571957387409425329088907150269755134142493690231776513287510031834517791968248450719436642362837095304584550081154791781518225674270267034523772294718679476684836926031667414300310537088463425949033211242709111830174890367344375545778903706453407883123325320792086137234167274700926491866752634641667642576953845783583766435215671775817012476592813337688610472100277720405421515399350158337082821368950093319926988559922554666781040795208061866581807605763768588444421277389781209970559062726920909405960402522482847343889203215343590922633979866577700463256290230037728747052211901324895277478023521068033901399970320786687872739395416825527401806148469345717672333184074810562674853348350173161245015704761238577992328410301159220657966488755168040503692879571572147422055114641288498551606873046534327064443341992505479386794957122287996774404641224506466968380172975759811292327587784848308162318843640091329037761576560829611526515566495375406038756495079853518210120199697265016767422680907360312729259183494890340785332019951707193510814150981753041481975767080995777308543938086450602305642062851682670488763344699373029556315644554060548390291065912103236263166332670857660238794799032331637936292146274099194621062773916737766427654925200429092909918710832505667045814679265933672752646405083849156347862997263572613735823797564473136525575806710368322547253607256253212501777349193690558049246030082418117101611294387678723030604560599768656912399422101275172023311221086356246772532875982703690441934828463865381394063012205474997892410227354657081398151542244076409223655110678929588377593074486515026763557233816462673007747114583932757979715973645886372412224328510689146139280424914531117134330550053165328287254664825380819959282463238310367858738464186275271551927645602346019927535062524095169864071598770364587319331178030579875508223532688737080934018927821247401910268449813109538803433900981188167873468379152136090190487350153632781447883373764383211643816662992457999175573077729049191884140423128266352198347024767173504698504675760587359328564270179627353392649984456298270493896761100848253664908486259306958592854608666350716733887623906924810279366660724420068234845951042800997698832689547761874875064463090370077063487140636843018422970319589201851485110711660390877979504937193985746747309807734337909462501615330629901067641795946046737874394399820275453840954450433573123856976699605276766980537834956368602321427460458412795714868977827354515068389512981695188448464990763239975343095347432964232058563291062975136036261818476179262503314639524989150221934208283229771821222026957065855097664816270366363394035391601392966001860212694784001899066421799324843013698724449563128114075557805760475475028543884543029482029034535870810818597000511075815295437835008570672152617224318455310355278778481864966334552068049520027090576460302330298415195952529865006794809454684442824943045001674011843622034526273603226954176857418708750707058185526237521951418289950853830974161372872240702293159924332397811355187753384907979004146771649672479556510905191104275643977818498165288954724385572120840112481636709249176556813476650890877397897777433067524142171827191038080228058090286322908572065598326313254855737851412688420059956489826560258441246551644651063493182672933719330841329891270719089262535375536078294394472265402593329248175132510653887203538796835601133993164742870566976563923888638820545068013595629607664213756374999705358041519052192758995285094571480490296240631064947482077763557218878358450836840301897568072445274085030266027526502473144733999299294470061281383812403113355598128128012314743829560564228282856252486918982374171903723311910678409218590486048998469372969759810314712368206208743474263222400125724624934089727499102551284324001629644081778427167006958302873547033014465967758975413321377559752034968625697788107015325247557137669205030800544296244038666833663208527995706714079883016978295295807244006169162253204592932881800847627680217676753527930032679827410907418507784308398851150282430286207072753673912566112308268104149192966904515432432119930978293497798578799517118764350173521586765312234370954108058283650095466213044361080258252618836278058726279257170798168045155214544985515222611667043068114598811322678535878278296557702759488350020444931147519548408851176482542086669297969970556836952169851783043508103509898730344550058260483939640187153647139422426959099112417190956815523029643478251425218750571776204775276326682455769788750685696585464008178071620161285212078552467979434808463288289961810013621565194068311446856105370090482560734384947186978010809158092719028255323266675506728667304765063537651260968439315617113934449478155697504915850586173751606529807410005091640514818339150864678291547356434435067173866919656025011904649493511931350814028806953332828541812773338666909585089278420993765217292882294048978944768422427385163613217362134554343844699876863889034653619090779720172665602415127568530183187057818425082055567772813599291847170897243031129873486547234999620976668939886776802045494674767637273309251845492177802655169155363476606952217401174149722658923811252619339688593499595153142485276673977109142174956615347237652474123679208705361040731985540978839326452783110753506159416270772885329787573616247999612132110574629664023662195543820428786236464597508577809498123498724292654529414335358611252916612156943221563192988251861418495894997728947709991810663031769163327754355973040825527046791252947874225898514977371742206630636746966551601506647928457031120415124414758675249300187283987387788004072020907566642785878347340639966646978738787763168235306003740402096677937967940982444224386429795734088453708528055753066226556054980784914298105638177645520364722835790075808154585950894592140172281962731380988394443615278821565911249859042850475839481981120851557022671145616953748169543332117593329867144294424712872121206031674720052147438715797984398443414981703307193409959216278480563386178010822311735163968608832983130591629506582206646475853785658121668884139278076817489994878815071284584549301693442064685877975333131312561058311304815178527018394007702344362904189361367450673219557191178999101232113792842516512887666588079283405891672422378397036327492423731055447258519969662966947205459170954899251698348567052556037376505724891054821233639376957788232869848378228291610004418946199464310305202194674851221574729240421732651607398847956105881328803445942117036796606899880097057374661400594841278794206547672644135421018117934994636182505959714327216602027610905254565624343113765933309849353344441303134069670169801160319369904582547535613964969074187287531951645122030395462803403218606694386359840404256310236643996430955428543447883662322699088810108826695849689424307129041462586600449247545845234340944647157771482344131799685839070957650643058404841851118533913282058524642953455208288197335942650053730869213320285810125025899711001442862310273270002977518577512429489964567068068850736865156584747552836853081815670644507037859242225142196746035420105929203579904875817192460989073336663250619488141158332193873425991415726596077800026068490180584308359037362777111690021138548300535809447568842477500021086468968489426902135383345810605088536371884269704198295671091734570299018513992964109321969344766935120458051264848073663348389517461549152585830754379327620842179633598521523761657003041102868960962434919467866772676126870007335809458592260445358109053005797784186693903167046164634550845608572117488431614972376038678388560771004666653166437014855277995302186039393949974457967616910638042095544998479424336660622701637367721492985444534636221632884446514049177686947915793987792385643130078317655225761412787627092978938578486802414145622526663212329990863547920219670860137453460920508950810046813977455581560287213848811667624135075742878477322730905677576754773838090248397954595225979633901199014036146669414953684969308593572863855803832788796545147189428010824108802162611214399280364426355304172554277422243550203944225819334546166204159211521178593424457759052544758795857678563695499404300484321426366610966936754334786322602279903202960103243066094545765451563426085230441234679558703804195533392909065170476732904636532825725552541414695070898597878018669688576372325798692887656408983668954337947178726398127915540425148269015190270004118711865474958879072237521858982134153887151452478561504484793546302754781163811080973853815353714075092971690154487529282586870753477090968133461993324428307600770910046493443067599983815409583171127453103841007862843528234643478813772673544324516317440371630026040685197045555040616138323680331186024397549258840474728229141297399696555028662399900928716683611480112183048845798886397832192567200373361462616228641766122963225489474809696825688030387741232212403011436998994302582844960068480663142111398502939992111306799823444626426861973351817660081098952351435878563143113417130320581678897656224136349495829843075299476394617574895787305116719231994368264113038601152268042690572300178831362645857024616175383001947000514073415799258687975937488053962127215922208652759071669794225834513284752216885114540371666683263961444679850479258854140613674020760061818804858386259760148361248112742399198591182632827078513531703760421668074672359881371055493590576670430779588023030344504246535791246778937916658716175523769627715954481235740783850981287419708070170790002488142611061505989895966244161276685247939212248603315308865599416410609697395342697100407420074539614075375561443927408238251850071611014596322417971203010454646413015773986942301076382431960033321937798884415739370130285291066005675553427989278416370594328352423341913377757272074556351734472521135460641118996772479418576919618830116000342932289260272019562787363813492306133556249274507015483507140458302577795019866138045916838446723979149053231526354324511176276243846368806238652541696519799303923609396474525734886782578744702361286752755207310844202233431544370338732602053848654259205581489764622900613281338745424138193048292030611202210576214099373050555593792948871520182666110268436630291220195471271882031252127585769530121246029881960256018892918770664894049083450124318562082065084838614894172852469873939988612768122982302929747198288010999398318997480709364070182053951283405175567135957214152181698419756201754258065841993398000425629725338308705926343676460835672103332511078248386748048470089141449886181747700198344601848378204477826582020010754144701038669206506247298968623428325516083199188549318444604849374507391330858338702912960909052578421826808720763075317035931919158341817892406109833744522266974738684687463537697381700828863482048977210340712593443593115550594792409622652405381411445327079449212426149908996098401226573263575509640090184165585637422845842945132908262025612050226604817872876499402588635935020468075489626668247085818546022059401191452577733105152376010902528431112003072100945405765508147194527262510670728885418818793284778079406930883807385917647147704023080456368645240774312355949937828974859866580063341942128986576569519037092965815208610272626558580444924120831483878671636962923611127834486977645185312556860105942028609926597398228199731184393870726524760922592120046478459135290081125834777862632442916703005646055759969289453044117755337895931934006897529906349752020142723863372038330224897970970884932179619320818549088148460239718464516358012771554459086106748466439388569220325055414372512295563492211871531258657343277349644058924820817017761835982725113193897349347621391735374002883225070214035046264103961323379301026652508873574027508926172151913462152894427512232288340213112505024294427606826525670408380480214917508264792618739838480173846956458673905635667207092653562067393336368067267519478303846500793441729980167216112609160212465963468776605975371839831135710516341227204318432676275110495073416203185967759354245488201932092301335027808939770348536325657863730969886410976871963667387240550682638201890466002496926496659875066012230440932495290219094989331048368709493499125575712827811949324332360114535936965856809943511214958437454548070861783604632843825795054863975429996270415834572453741363291217369032591926911327414039845217246896614252509600150218734141644861895695227469563883301135034459467197624236504931092184587975047211504064986231875617280539834440392932938291367242430002392903642825018303830203541806412124206476406906940995581388976960801727068525691219145912523077826455661106865583285954870549324936463720216631501793310077595593140453328198328767118263221306734259571007016959946768609990521169526161638663514705879797111913244067621882413733311857739901630094244526903931388809945870578583413480643221785118353164562741247102501588080464744919929644809021284888881210298739671666475755093133102319129151782863589556659422384955241534406983899336710208963624422209433955265167364995159343694848490551088602732807427197394075838817970803796048956739336940908958658824495181000968676195697447685143260837589961217702553093910620069826357964413150524007459586922551409703631688155223126372691309796094828759410878320103739551310753422905641592820149023934814745394322561964212286157738599697819326321691802677632627840269633498072551772721991674563018696737749184831506654737622765742064029966434535506413227632761140028445306041090208245628027742844229591457566899285607651781669154308066024585434038909631335081044464745207332322355385354316547735017598329259424346508778126887697587404262530373635999227389899543094314619730409226021043789058166457972961501723611530227595159740839189549152905204764651498135391410327264004158618242386120212607303484323458882975770335541147327131271274196540666586194928923438007023675643747479090265180427965163006014567208594279313168250948453297113827196788268066741994983611186994245385891274284887791717097520178794199488634756776407395215042870593692998442483645062849332517273623200575399539492752113725073577686220994399682831552379836528745721715774118391541049796216060660646939735491880619394349850866324672631674633674949084867465196620335395973133410267957562885929844880342495520065440616128369874244704960940377992332237137070695998382702934316207421282504074231682866493570086676585812913587798225238380104586150479282907598764941300114522307639527824498623267352827213211740886512789003080534156658707387603845513276345525751190352781812828201841795464276567647796513406999698903238022370496826918574548205689401541575903814626312622901452020450717207673546540040456180184107451047282905096504759272846510254802468069041865377971754821760659661280215276119956155526635871385780472409497469555925426517353346138925022149183227243914566279767481480898570431706671793355833891270836468838483576370977734782524637580038353677385501886132169681449190245643667627433345960673221028721868038984720082327763044661765902339060811356755921891055658786449364444760935601059316047873177507584921531164546801951802804883457424392653634876803893407343182143782040287555766830785684119150364075119193667883274310133159329574688105021093364482229351612459710029257314256507824306265696257053294443646119558367494311863405838596144179841403636811511742385188470964843611687029929068930897191262571214776785206296752661355646687723007193132544473839716171727790809014430581251499566323263768819945032647015271124971360640726166468683918347617761685907668225667292180072754348239169502045068774666486108492502123564774807249269331368517692419487201111552695392355289575919794536632470851303573304695541878877698088486171315900248650012664656206694841228506040424924780423788696962178930343894387910731095836896526385997700047302627478526433399601667832256657231534456404655406090017105762137622191677961765817906675742734419818256591237465727182904081700339462515582647996591798296593382960407519094184905237471664110550316642778778912509141649783263955797987404337248356268667771368084241348552068817664452607221650396976844478267905834330503269342036309135449946802680636850313456500613956342483833550861146615664170612556412215372483164992096371447289321980075179596986176652401798271388746381635200807815821677253591792977876049829707859144719077714407419865146920963061559004006410972952023820651298566939194372474235238184746305737405436392590820017746358075908485597166354647541679383312521039184045345235258183166526564600098869818800262267365214170717659971836486593716458837678855722357939572086751235509552447171682701423050915246270858434878223542191145102174278317901701244290087937511139924228807819362538836501046436207195756188876022741586732540142722027993994377654740067797273014763577302233946520809632619012069734463107678457761693637205981299973767223269198096213873659006474736499888683891781076436969338851900217000563520227033118073951607379391885023331486292037906548138667049821821110314168410757426407217990059543517966613369719629972228576005253869406581803492761394562693861552103644468898851528428659623501834308392990419255463075637488276288441973086733883372684414226958448419694461626074279977407093334219387643890131103539336827286743939148648577773973662228453125142771207532481141042356306340947960252697960759719201985575689762699548222439244511095641084598316647431736579542891169021289739878413709338004509256023044646402853140308697632665195055743703404409241415793510018018109909524989553686591527392828851514123950477600388463234997771568581928089486831787474417992235937174780962112961080931866212084844920388975856258422559870497342408840653064866818108617591793284320640960400567443033751552092766580245867330169419043342936022687387261924956664562523135908823057834512839729735336627341648161292600738560655891563733699799689170551508932482713808362929714950756123581694912146960668605450050188617624699860458837964197527938714307389477789334534220084558714494133332767723927110153700138100013410755160947023720923975227200453717682104267185021382182965548442614259268600862216320017684383255517416328630296765337019329677780988031111062335971697840975785907373507941581545051406111335424980793040505125269106717066193956999944879148063406264077117826577916881553560237528785566417781508410832313516920862076084733624270823000446382155849953025224440945906889247995990858748991607944617578838117934135850191002394572930980339728201715710919533114050127606245639360116807255399850807834110594003765394592375483498763484324292385434991895565160267428972155965148989171619930499119736406762728936924385568093886632233039261496416049114140439436471098930423779622840849921422839316657376445745026320138226990952625521963717301245820325180420301024060693666576762857060459870905782865004504316788678136087391323075767833484400557174728749587690755178259098101654728838336387282166724783674513082242727185174544982651708401263665324100993424275705836174925013681757989177331078917002736439387171428452179167022955117308093892304266321223617845796122807354527466197870033571595898587565168657515842503023872425905741142897458118799096584338083203026647252016833559963495445550350143768664733562326769759652192230273848794278925473841261508503358917181282821666533669930563718513299337261394654998201243486960481786692868549395662447964436409229772137902165288892056974117283870510452722272850069258232152992686025344783442755719952765472920252446059171896206585256863223989147212137122082408674010900130769569425501275364535873791986352884057458077667100658892030249502421688735403226561977816890149274754487438360105717835979478719293644188201473556516323930619300952560158406068010373398022798869442757779110077992090550653966838657314089224683243332438684616266169591031473763332119901155259025162985646914352105746127167745496517209503895041447744805569713635189420325980450030595582070766488849558823306083994359204672539705504932999514899813076511903580735266507221268046138410475619966819148366925578406333205342449929213924997918873664744545501687683435124578540933555643595442975094640475659486492598437631065450522500614171449218732588433749908213202861044127241817795621032534732027066155619203240446543093538433937005233877160763453359992919441444019769516167551346300548571928902509923702428071211872392029812872932696006663333001724600157318768818516203442696293289771927590225158135961669330582659606243919365212225412274872854328370724315697018406631164218158404367765766399436024063447029064817781467763586031278144698138434221886596666661328179123958114239011064841940853628362909633718376725915074738774370504565525665724190486028096539671412906128352994338219146284694321378785521767134349100269790766212148826106455423286779213972704639591504637396046912447233592535171312962104191487154972568025624967596604282920913588465353280357927065269135164024492903407988712404397382427793069006622674711288518340540206125746767571313394739675495554337878025666826811448440972131280576589373547015616165723456500631804714390076823495841525407347215381348949787606166253202926693363703692534750352976790451117269691940695793531339658947608809404980725131353324321561502989645618248563314063368353268233365709112014709588126139153966550631196648031488893152088741889639369040757913509189144020653677606948122552636641429929914873191800359548327172470414334362117397540126460575175712415664597013203669448200426628114996992199493130511000411374400300179014985614550998793090106535426582268704004197204768572156181980322960844319317861949325068930558959946059182340970277642640730114068865099396493604443175633020907507392628953823385108572551721019013718743589003255139380339258268930377081365189383463012184316536450863008744317939739398800061819983465496720217602104155323839243812231322887795963278526880867356760834488957633395104674483011948297922552475921368282571707914118276697743817047572997471252845798584631714716527830091672564982220699081137238643749251882471163063139095180607085192295617463323601542542594298264364393819552203300894982308328420775302281432376025788329681908234729737970144572100546898081277193186996741094291311228354828611451758542059443177071378464352356576602386749968954645590630423719542990460857326899221017068253412947487485108066058165430547652893365857921137300179118918473685567702330705307624039214545360002992187703677840087245433212839993304576493214919829233622731822024976798985653416302916653123579167741782825393740752188686797691612761793515327844892686775360299981452837652640296242625804598992335906099060394913985255604430546202819945004425670334337553492035169321690892622471425446662092648380836877527857661234597576724742786271266777842518196292512295453731366356709508295931157324222055165985165681034885455513818004451795158136735260448562141676736681657162431998406403525838189510432226910914492621907438194470744802785847789252039469996104749458482736493344467298800580029159312364034866228603326248655920375173056996709041136442020173784316498117334933610190445065432936565406673739203447899682562757192757607507453756021288992049670495546583381964463819157503075924545393862643336343170796729325742155675547836439189217438477771010268398825159943199394340432822609146102773717586856396896228858967131404389973571753651358980709065715811598592427239521284437997129569070803469257806069168325895045051316435214266664026557410680246650877220930338402064015486702664252222542740644218641280326527432610942574624653564104343130181894595062267968058306456447569455157714257243253029018477326961100299526877315210891989814138947532764984968552095648316907698782248919183583411908777414867940963396510593938382524757934336370745689706220039073503486837344043701508933993621140540695830376157309531829608240163696095050769719545975009179984589014655857686496193399297357888903204220994845583157440792532054117865003604569705617674018904157227333691712191881759619352610185642156298452635999749660665142588374551596531059402077241891164006695016575307576496057714593124878637971032304814740111782638272766934386299554097265580052408008100942485686493760774073938522347191547939432323690368843219028111409561379192057018770517463162161909459616542464691582958734649382423141236303400563423250017694760028364886957661368774254913432858845675459510904450904408300547114047217518501943682202366281826033128966826322478415182605594757020175828447003256260173948468902099681610014538722115504373150604948614724062745813376964440716043299423205415425874708595982935094049509273456798037885755113570131386755238542669580066498914438478037377827124225179057375671983046349574447767825524453308224966318591477508502687786713949068653561560496863132442597502053779941140065712754809455858700644571071033223820739916414889193545066613579010239008663112792946953458848016324147719883470560290904503447143700412369738430442982629776525496748335635912035975460267440873865068157202945296556081222506627498969660869639649412633820438795822918615353061469153952290756375635798868724909810468418579365727059136299098624547983995771703963291627208288029367878660820289127141448668982474398252118390010624250491841459829713325360190718412666128704222684393519593228935199174216343958432841021845394176675707955806917766817992951726758186315704061345152040593707980763939238515676452958953355417462117675736936666567590406468995611417784275615956860729188504880069384963373479068498279451986260018399068160923995966090162249160187233995245825254826698095272748850689186571878909042628830194801456315990002464646571278427054411808836941338488588185563168142577724338122315317373848575979071190916491527169692365148628903432407686922640584517648261864611444841273669207682867704590453903689292340757568632979867165094922451978257190849298417612118817143703068443116129447071888484584845379408822349152217270276574262796292948886252316985034761103226845759800533506081718451637440767116415213478292672159948811144502791595316798326231028074319622672239536376642652833516700655447894811652510212163902001419307963573127572914316874604517617785523091687004345161654604990048551656607270092561790951867993189164067281672857534184372214386111864335868422223726041165538608187055126308218525841804549018846215734320185655186593483556512918874474725324316477051591511591737511204784678108254834161911453567119493776968441699929614028437502256082758171558079383324546077375531967991158391975251927842916239676446891989574967342718926420186723404053960726022027537997273083322464916856657460982468815901957330387754117840833771746775528818477689736180704721236061667673745129769917149433082551185582998926714989214332878264361689198735484533191493890342523179787148140382908251280664495634136547611531337041415255032251778090388343015705871329252400961782227489574429834651356363754387860262096250334212842160070848313134227400553364552491584866322021805057215338656045239838774246996325166623610125272142008467105563931592264056036698820794500230209276803348423272534136982654583576324090917312746678683116475334850274287035238986545442900048617806139909683697204955383371369081380597695040581610055014360941906059397620510786864773614307635229535448420426756165441541042058889468779665667534162792877826476029136895739088715481871245808349609195456041852102066073964300827277525985223049968871847795438081606600069970697207940861759220572050726993431727648936152372262804732122162769919339943307152199505081300923955911399537292511211420106875429873978374867680145494286926979504036781848892163768760696898094144220558456419701399025393303806212087326323481835947060312935627638282663808007016395689093857425954586571402332338959148392759143172292704488640512970028671092459165435201184783585348013117816739721139856560591372961256773110696060263000111077634923102055701785273750914801822942303615625273630963617095516276208589205632218599829067833179662261325313227932080826567064269471277425446180754954754417575859082150265420552188964734384765070471832094354034850075781858424074706305303268204112445004547528530184346642646638423231712777315971813474630262287913852636851338221882661115683104261357221331060615885925893162989192643220815799545515746223118418680809359027712608411990667553767394377794839526355558796192266181308097207088279198222287534443961814080262753599761975766198806957232473043346730356573155417168298294980851176534945356095507913602068904449856287673497589106638670097271036831700220113151369779221945390315470263014390458326520620188557697667425004382045676291148255747719846797666639008294738931261727177397375340373681465948276483726625617191247838063983728718763182776378795474636704888822146097615307337238664339902367624108174350108116195707230159404241401083694919352358961172974191572197642117196043993249030006662685702590065656512769191237536894442894467186012046707507332033326480105644917937398168378676186507869489960237916392886877175244581448482449492811782472608486143955306937573525390013639966319392488409184827902946319486697913784123255859246332802609044956290881842283207519985186167300330753444182087402255015364081848819443629359592161588825113210868910068800985106091044763327544216339814275998503220863301307144816733585034226521799584577038430514515065742463523604580948737475301881227764865235255632733525167340784826138564407265341984117724233033106920264124177265793811487482147041119359858993157779120837107268609055703660738394278708319323903384069690807474193044581146067684525722889585502653143032896158075630959202621641358480304403745577155961010919304033466667396588229854413662555152340271057964841922094885623483967742874524597323864465942559757494670611046263509567144282074679321480453658948704242093703115076006237168062449899106447190867532843895304744676022285285396703757808004674480387979922788131522433437901383382304202217282876709914916009583088569070885775428333839782941310432797090898851604857664468643326971151810551078206332582122025868482221651188397207055856774946212592053209723780296714183801734526084681451063605698434675151946688074157392030823731304796722943566557870332914158289136628755448496909436402475934168153223186567309522939567830924828154450635280229309485124816840359975560960882181047639969368146008620797395319278204543623300214473483793653718204043882350022840526834215206903581679853990156606315317770464750926229288019323247932299089499673640237326982824137184981433598270711795648861947360713835048973129236040830900513371175954037771743572843068025705972722373356406474217469737053735518753014601227412727910915984309028086612073364496046870847830889815657298310017589045154219256738644304205879919136030252173337601157792947575527357535797342432034461636977605099940106655913610188330473846672059734731591663313473165763860963219199342602714781361288604207275670395503836059774906722620947891095459031768651477615731860725971328917659306388090259441427136633374995787920444779028362554251877940715485407398544113396824397853748083012699204611289070899339817211741493284422979631945601451698925244166391411316913322727059129175143226573229442178912804795132920808171476992824531951082516080032771189156397922994929300285237786864887525913902705205280729599593946353766448113913893833532337575170091530086896666104406867892937659022312258979272717713889803944175651763376884890041302675703696196332114862611974098264991674311719282004129220070988528205701720192037390482858686301334589534914562146848527779410311534980096220265106694884898693014864323503919525007535582081780640406842097076758985080306165656738450765391122952568689892991902533981729563413834519382320014413155048559852214924638988471908783212171976616216662953207912604856911547773881265889533962817714061849496050452392932452545525889105638347362734221636053058905540423178089541036991646643155132220986463470213054716532675006234730213903832748043991568235634163369032682782111679298794539296840529278225433608321317644357793554838358583589366648659663142717590445227925669947152504039097943962001170067191829577049138255724816401173778139349769146890110269325923337276002449556662580889053296244819151015365481159827896769693928549522346819823705100768000713289312086133269320207845718853914220430082217570696759064045231564297863431652229564376575444468794710636823245499216091714011951412453852706581090666180694454251877676693755382061962555955618838561450284055845829753373359136817907558014999794768332935552375057418365805626484473408649117483532690458315872745750471978730464719949738547470144016929946813944724222711060153900328719920500219838822914226615887236040523896577972293740634020090435325676331293731713032327419619008598321200967667651180230269001847327423062979792236678555605387751448138197737411963216776107624996565749734877255778919684701613385241384817709733383914215856172837950921135385250020486230319060989325555697649067882600192325567184446775976664138343911057280490696933787212161114602278027245280932405234490860660872412620498191672918368008563118051164178374426065418154981887314844641550309749351401314172754182029316749698721446435694282830086629214734280941289660256176482042055763847577082263031538964522643040652100211105967773869974894145303652590696134211309065063920793091201656101767513975864479497202796234300822726233675414158328840970842174841710615328649673148090206435212465526842574337339679786139584455800627683113543711134913793965374584860756568935300581812175969586855063771745242837288545116335614244143084051731608009511594546814319695795263106809421080495571690880881602916046651212828557755795078838071226456245000915709379434243436400369940760759271591006323024967440287341201922441562439211189893705981438356202320370049105424773571976498349891791745070053255616336952983267676118010727740811015081261188651257482906270380378215034190359283874847787735627437484100209415355666026426710277401663909693213924016850631507796001369322555911408061761754835282573673394655714352675482021108889635273731075216367230783262640105195352527527122283315511035152739914011890989785069553916209816272420895729635186622479111214475082265234738268569053857996097161734987204192069600107599538132670797237515191615497133843473432907476086127574475698836060291464881505745653356229993219801548162015958736468459761642741630592697043868275893690810157742206384417171309256363869757685313698093771123524377075577956509804897825457950888239081528580034682395677121928448318666238085686336465112141846283478768307661285840407449688008515252771150045944717841283909810091681979862172233737431852671527689781751385110289712742931589126314716069749813644600640272701919100601179862270808240733499504270244812578335244445630638498031591043533653582248417480579966922344822506619398402288277974388196700969554148638709718668601880839771551775658591679799154282136655195055609891568547138182890427177231709607813568883166993391462600561749484823541660991862244503070345699775278908325349662048949597462037288721036186704449919289165630135405226440973682621078304484744446773333396727237018978843283225502271722058529579167672625501671474891849070988714732830004649905608551204249649139649970273995906200937720655626279440714476182866008091001973226125130554348561882078879109721401603795355034149348296954328436039502797365607067360190111877518720079866171767130411156741961634171685004290298716801688537765622432590114525288650086356602675457060907486988766351730715387277371246376195842897177461922937136822340004658516884975191618721216663563083844869925688819855085089329229049506428812459498136045044414054365221500781174626082672572347761897705436003434486187072941719828671814544261272552058733094644479651632081236591000563285784379098781727919565487315617509124494715339002829921841228154890535374668211633423285832837856344226216739213769267875351070979530880951030267842086585492329618789620538566499718305631945863408971664582990171335159787054666388560924432620181086754009925131079533290327342713974821719834821573405914400421719672719444348204106710982468265482994591610492679137900041019133759093316661871294851389097046230328549486665961360007801886373841946428321050608623950723622315083485604352287172534092289146249953996968130019349440222015671217227138268987478881465071266608606911093799372675034251745512576815417623120584456632347013825680566163968288754104663292199002581748183083144952037754336548376745723412590746950732660299246715964332669238940203890506732163032121909425727074083566877775177995644908082901488717875322895830389361315272169164330416256442971165417791067250287677376757281124056583662941380554130049882222742071427937963073790500025921829994879189366239551412704325524584977030392290368350663616226971130235154524680179132255868368875874089248949366874383372702489822222532021636116666438360136312004258849903002938746695957577380322189430014340380062964485576975975521867855885740509004641100315253704480253578404784025457173787709742380992503196821610669469962810470241194668055753230103552686435746553194473326133961444843816968158417793394695812774119631401992094972863747227302304861374689876638180400805079792676004536910019589712801862917223003175752389193941021584070997612437752267583300521864087147555379555277209557263789906959867958151137755359250950789648404995842124512922403399506984413710389188206259607649773553985376520900232676814987324155919022168155142322107604903820277422668559031109617048186248858465081260398742108315063977355279431018741692695418994791136783211750688912975565065323468327869716300844478965573057005291341921326694970869061138687767328698781037446816532798946810097972431519194657569528451942235320752883119915482578975378565916080862750760947819579125388267033460250033011328788461685480371622617526018744152009299209934628223161417494540642519302528666011954363602697524467084045087640038445967906256354227795848277362104811851999156447409742904879325591608618944989818590980654753974687128205071292904646144053202534265228266391319631177142283610679360212858133742528802778830378732163107185339446515139921384829536381946341617039599003226391154877407038985515810722024280083801173004101117327802158683058281189010084245101887190195566344195570399415476412736885680511264614377644587526015045618769969271665283418314073406003552281770779102830019249606843507411947250873394751822242902983194545358652652590388782798345400423175818020991750191123039600384102730113903827180417429141626020605847133928024810115669846945886842295338059274839584769069458953336872726129931641498705762606833183368411346827405951084567483087792393129427653540798618072022924228955058554620657969153403849696963664925019195122154456561607138131590036405380184308215930281557263337447234581272518418362857051414564143871463172987261787323850921094412433226914907350183572521713499922742196720817011433713387945067926922736754284082381129497167967566611312038165600048558918139254945940121043255929352934242202496274336191562062669475899409637123437900873734143023876348268370602595430669921286472563817275838011679640558853103580880337159370205483409855842326437579502298803277515640919251267940378394664388350096644729735961582150323364704120761549781903771519010421342340228541883833814687393451624563459714354269246404781655238986425404864036667931350651056421557660769847216541017468571979230721200793462084922803271049796801044827174729604296042450796645298950327340636231540180971250104831456020424569087045614607257804453714495135159749239791553907039370254119424648892738141739536463221716790742367194861480985525561252670984375106294909764927652111552922366464571727612687467201216121406879201219976339388493608925937406933229271132789891040078532366952169594608343632089768638136142201003671806095325944170011388580215040061652311956117767685672267356162771512079026137587578646747921133442843693670108706619107697942098542060676249280918119959856945816550812037208094374606715207948972945370031555969172194590453805630716274874943671574441031729804594257948572570806023410927075728607887121501259193496665824952592658096322311337977696412161491622097991047279519840219122338691438733313443249477827699138796499264730930691783953980644117052281181169852067189677501658759184216977914588490968799133890988534874970816939954848874926710881994547917065911428927028472748301254923402850276316901087548263678519793366140261321422056979576096973929134021104725211393577091842370611277365347400056026904262976749708913462802415212809253410013463109579663584312734947639266592760390508971119473902928812316513617011030068640856923293122633076785879242181516393935565086400623362516406846521827942319267513712952151794831122455346176026139093218849890510645555138131236434419320169454715215832728174958803342150974700247644173588557818922992648827668586817689069185558853543261994038024226902164623857932903080084969292001983512321220976895705797143445008720732262284089714165055391721416669849127684624219461757449557796258703971199677127508491640829229665067953723775213189847304079933277004947452974471767176723964314240368561169782703218407438862419094260113661372235945757962513757875992823623768427821913517835097540700194913885604494548489885985354215283412990244659639670619668342291634843031451552799898878314402358245030004731087634415809858229792674142521238926849946743473301089582206652346600150667359784315603825411220913018996285758810997283476272671464238749704759467610595534024924905454216921646834387426577399886983338626529561837350797884070474027893457796298246173809230827094258867952207346155767830374301657408137541035372003247075578797008681362637868060561212633236886222853859723136235926968318750191158291344907295077779074148717035388316961780754377752727534354183095354087366482885578863615199753758932412557132944445877848597985088337739451682316260658020081082255200268761590106943760427743779132687063385589711791451483742211268306394150558241694880684160991868313644427311668287142034304732605184825327786398273930374746696151382979244005243516641808088876068770947682251161662978398188060465963689729069842651543392144603125300179374598880616092123270561213623780921866964002241706840016744102030271870248152425934772857662290722839017775692462755702694752983232706556974441373264013176855861426689517492522735004112178472757632285554839848528539247613450887956966592208607362726253474369490874287561933492372966508195836840430918460935619402548402296502911278090261619834863581187781845305963088428685559451460498697214252845535387573528245048939567414750302590548190404114157648937814465688206761986668290268145699500129765852817660565378256994143556352661561464735546573522471280900226496185057977451841178144818309519033565314566136560564112592574954974232355802555426613987398826160370829696336305066711641908543507321189685930786190574393225403761566495593110831695685140075091148201958743467014473638290857444051471554642017926565465584306634962693780433556483218847328154457070301353457003892792086763910536248146156089841114770196521397740383258745477674472878774096637282630970557181813400588927322675159812265926784647169395007249691277244951378129767439526469183025037173962850596300781723029405267901639725682944667374666614786550754981477899167670503932092227181793107456999084205343487243100468999165926496007785529981999113336777695885415258762777764313893305354577749103259591767821295583057803970379984404810115949300422521378297078340894345802166074987968253935233791301969092737339855706196909806154135247733851673122019430641761836920466407667722585885638875718049858031710355737130317254376423393514702550611274727287693657485920249510387232145958091515531964954320679089143690919140941223441281015213901952286705895882262636779201412005913050450663927871644345062373684426153031284088439652383723207159991146201347972086690684101238245113768312091673247011914393254800513317932963402432074412895490335264043531365694233931237414761702828342803323259468308215961726888427131690255149103825256385227993335688232875510613992997096340753421078384320530672919396492916509554204909687582788979747950641729662570521756203490806684037849707920501563014547381021241024740187280429594303124823428636442302209597206449474253784192358945428667912210137335762022136316672413235785892934438283093969165427951600634728504513042262230285836756283757440826668978363643206462345519871349707847791274144681626959493692296719701099813326733000739613980246187781822530637553841988080264537182027706647271209305119835439827856814444050030624382766111141406403747669316826940644061131130307090031865687599518370948749049276154734084637489190959307474763935055118371483885367043627043200205627157752705272634573730343755552221398379774844577080975622350283623213198186330732486822075321735808116043935530683565885060597222726686967428636507138603992953589847237128662449432581120702571605423583857379596289663059999465669575852405593040342049663839369343299108382649493926393616444696281777832174849991391807067113012956931023982330371762098742196354921496903540095714319205660939035023822704070409046112153736589578272603676867416135312657928065447664037550426654841838434613424652241826323105128638150941705933916425127213016715521322016287762794516782828565371640300248306046517044223424835529401047386470897309252321621004916489011722165973269963772305617090662495561299909730603287152887148590932263311751093167783641387825726636530393618908365460332975713880029812277466765889483507199176959869709323837388626230957515783209562487317988793973933564115254541397165623900057844397791670427730503155893036272897403982763087180126437500141359083255982708895935838237863223171559357481875249716193677683038121750122893825954959642041967897830938186016500156752357507412705343093182215695278622287105038398241205958196326993574223503347601716506480709043676188896688237310449598772774430109451180311935414211212237575629348219886770812772422526159125781180098185034452275746023285886174614950934572428875903175757117422040101655747496979022365874553449093703813668273154641639790536337956717945209675071013541561351286027187804573542890544436835534510935074763445009308052069071819096043538181793384165331428587429258184061070194420850208851873624092398726014457880069440684646344651869517144205798682695555351531892489663868367652879054650309423260161823662576220904329146580282063644722061214362531461898454133035889243195437402660370043252834759550784443018273262254720261666008326308544397506960554495995579701434031287241005589487439226202936638981450524993813737016833092049418463578310098122563802530424012316078891560669731206767899002260485682462116348084632402923918758638811120784753450398856547473154675946676534622307435836024811734911318477906685958002968284481224998614348612820575099465035508160834977917190154786864795712746970453704835899837885166816101304657447098684742260008923038984536668895695667654980139031611929103390034347009606061927869339951736434734376475144588965216941781779479858187867398107166592938852111622314284695251100064630389223100935058920325001245525833631054798942918046850218142008585139761814058589341420304903067331909865866222674585624031992192232955558587917630010917039719498390368257868163772484362626242491676856327784241797300485146753981171485356904976243035960087010328582123915701916176260991453889928208749235189008209232114282179070568434056775496308027614903268586281890381261463237109920584336250256101829274712739591112891664235671909045153848118410418164949900250519035803799821816306401964125902456823037055427760299178999759234000692581090502833736802830443757926756975121786592469581003434180433812368788769833960822612663750081369898151308431566469863236665588634133533756677919722926177287641509864660828118722572038082176802988397025584805268190211703371618208151428611309290304778978592224427580100563128747753504935556697203682623302296877647282824680176639006076892644142784997227637451335868723893980195425117163054704498778921407519418687506848194747027622199388527207814055135388462406720992493396239278435169047568797067330468360089351072041883429450673865250884113372450207716460162831915565190551787331580876458611331930124728526936406758081923410371528403136953385856543518821558789774831579500144852646382927184412117054506544137431069875478558804313332620857561886755110458402100578627675691390952476146492882247986891261328393212133466370572370979158824915262799791398787040198130931964787637274213412130701905215587359545216007240108803595314187974326616986811886554308071269800528538358904927425950260746185848560727740173712192315436099778194291950232931260455287250220762732253064715480074526304238051033763584002180823605697524382584505672616466183894589301601887918031107608189313754804803039452130200191428059974481130147223873774484828705928874068419977269776302785567103112740643717131708861511669837644793548177004894276020771280362593390418903248142606823161768063346874824786554363846568776306434558012802507006100868348209932977515300094950450512897466110327563111254291584861034184588098067892958518038522218404050917856664199979973443900816177839141289367629105621555191065023283642193294441915497856459420359879878013285785983317856379079903700350796913239223737408360653049293490884086143223031188149803746142682182312439837607863190367996506420816728299089546128950510873650322209854829384540127194901172565745948969056253633260830964492669993209159992896616267108673769975890257849034907880336488556588086351771438329438343558846700029926450528294532441291618508203648535002977425479164349564287694896691462434203070219344900702114639412744323240896281200819395302307366909877249043009995510486247630020715241876473775767821357218183794759213760911058559835723000348746238572086432712135763718878928467900888676204528654596287998799849476353760984469960429632368648976991445836458205288895544308409919048623217336404234819372044175023038060035669157911644800720389107945575589033346219084543441122133679139671004716406949478970336782621086546243005721260457590558186538750120432970676079028282995003688954886324114011494035641258701941431870332493466900009109731278890321851810748244253439598364632935524137779805560514709685090579670940307584395103651018054956261266740406111559588763352628476605414304380276003030548837990942822715765462004686774765082024918075143094293986130780431058555197515629789859639232734900735625651883360249331560931791808869998689573596248594902889771523046348946647925785367706435481087311707915298142028041665821191701747328674890590744056545090615292254051235153322821484941942036109658079215980750678805311920098276707164335141641651203156160741596789755827911543703382647558395574821520402296047919394692772088062155886334013457622067984512435321431058646327888427195071933688021886807436293293487372267301152113951236143227550773951297977483215217959599875683926256058401046372013702708154066722624157471913563690511441673068369548033373635303172853089208979007476677766824413309967022397103143954057370347697012979352496971708530116181036516205935643331581468825737562124469134675040203543081397535007573059437516885874706704584063605857671863212049410084643248465511413152697652507559464674644795071357322211249144952758417042662096083351112254277336604644404564921921980599596331374999277849707691165472520065853932066879247198221389985384951454496466273453381932648002589016904506207686565946130276909863251385648748351865460217648750441321548963818894343358943356084052790421479497193730599655765712350465352893888142515347214364399742357341546927189191019647469021813050599900292683065749406347647197399787241297754380144723905103134594921866294638370819155591130710324297756849795492788649219943565789417847591615082762939276896887120232309629466609323305940661816099521883679654919990360550684479178937780596862018633764363368176417336467702292443475637132701918075933385414747531683708593637255105096847841473465278169014746177841521187334609051902531796249851313646270834357827224535061374365322962131814643917939191598256737110365033878399909141032745824362931596814412857679829422790943181992703610928938508301818973775272846277966915509505428169134900710309350984717568304566752988100245133043871379457891798230564431363122522089008523531281076604890073849159909042866598687079756113815834365123427282293255638389100194486392676830764980307977740035563899089744182362047707471750150739898410180964345908813968533849346830107598818623001518788390502577178132567087322183442435988294126893019457439460136281918015363422230252548273393072113093173960513926983246699798644514728451245169770482632600536174195677165947973881335361128336001721207463069572945345092988907226305204419641528001372513380187580135168927629035273852408869040476612745884101665058703953194824741963496824235364806556974067834808886049528828383910798495488714205502194651936139240004525055142186108578483296507891589788300750496007257936117368804509448721852618326606274490271853643685220402897668590960856908571084800507420526774486392518467795256531819496096465159439135078710199544555235076562076409649973278305127442897908033233589630923112688900092494294833547083327915690138692179889057667376929724745153607079637694426736019951101188856931802612161868831563669440653813507290209130924595229156776046751332367638985442961549744568254176406091526429934709298659065953124440625435890683274328099455097969596987190080529469349743177817126629440197927706877558514889601362682031437999322503654094076689150936973127879290507123509327645743480941801451888775749943200047676317712558693917137214006945510430000940521680157339338505127163462494992404141965013800064518579258783375789796909372692247222413729246741803908504832321157662477241761120169989160303625430094064826175384899628113789121576286509923797327302920650489139466073993916957111156229160996142209917477095725262597581890572005257270262073619117552093765739361340937228009347889736849836009701931770099229393766788587876516495479444810555534296887563882287691388012456826731151344636733129549501821431397265978615263856791732194990414733920509288133923740980215654171119912355704275668608333014091136279352627295813929676300376063375338610927536619019006044434520679061051242088874999293900928913517071849237041707042275330247586644642428796369507031161526423622635341163054120335965365431958028249705920759424968809738857399331373087802316379274628541752354823249678207960257919088320974086281067128152605989757585671139596034039323324059663831868482852521549115284058562793210584481145240164093792350748135753840884670076723828773149959459770471845319835473906835239622202785094612840371315312408063171564930493039380024837604090666160273682651612615606610003484156167404859973992696155607246735696415470082989295926571468484006953842664943921010668099953092484885719026381447903499383882770759445181085338400557030979039797228393635162656640644625641868691741821100008198130239688681934995536271153799162755249058871425625473091665442866713258342586303052369721493760517793459237350527750458053096089370461104397922932464663218862612608477708859364817853551373419789117310869541621566073531977607994204947389497459922978564932033170901342644905570239934369282694551320336417628837504487158403060833232645385457973450996540784768146977355723888093025022091759364416951874079741578396511093567964083178880392376329595490375689780883973120807411752579178130892372632689089417280372415335277163519596579846139204148767383785267082768143494574649798223653231896316770535850939890774146884817618109424008663824658179618549520142451599237855590815419484625389809475856698727282022026328097246031750111524476652738228354636499966436952434566302323511319606158611075113116251040135144560604765356445464845459163320420327350909186682959196783305389785447836528124876862137549234640512753096784534816249618053728643578042707538479492548805226285573999868704964668060648770155947935780469555302954630293961304572028724582618938828780451851940815778522172615560339230295771252860178022538331597197312125373813876021961474137896948947256697519736075023823513181186909181688032458169420082888098934955802903913155379744725834220482393325717139957738843998615373808773747134918800684407128654452555027768417250883079735390177959683712864760499259223425000844035341245672681943624953866855800304613321410591522158345658688575331318821929869568935332865456079627676732709593484858289325981123143434450848887138286580654027680178937857627845945141515919630804990667764370791222075843686738642827469911263607387719912121111135050569930983651646549145966716031439207422347543773918972891626608102507699086781578422063620356857991979786331181570481443819035639615670425895630600669313980413920906801645054807535140924656246263489825216347840152014881658844014021845358641890331933761020114783575120404840037671487733402061199643755241478292493844982644684709971838234007253594051411068858613915512302869594271604035635513486510746662930005188742224318964410563905592627537132904695563491707720419051069696463973177782617297721719785520784219055697299214143734365200427643948495236688895599832003128959708124566055422242402556969424745726076084404795731569540438205886804620525600932253854969802260652291419125700136225849182476696700542871618610601831788512197377949414671559898171030196108160736056816153184627317921759929744154817461162807479332767764252329278569107450910614293920958589482727345838583276034727429266593455858926793685893309422654498810591717797583691547420161802675899229883473406799598029439261304869649592307923125613441235677256284374533115991706229159814694240874536349402582178803660733090113582764855979905857887945274091435247049322961148938543985036264630032509229391128578468449292990600823134885197070311901336794543794711910622005702343802573804884536954084094330209952394200720298528589702324454205642010933557305112566494768784132708357167849291578766647848826319697484213865711958192663320495638114107613644069186121301073685798325665094361273514913789596398940612383945589347432341309648240748613897774467260132231756128134536144630059590662356696675913884360152652975306498902929075013040366543047883462015674921376201893140799224637874972737984335490281858318848730400789169202363323892368077996357852462107373320162246719577834266952278216866751771777065450582414492214103338230084199753535021968638745903697404874792810410957575109290364580264049664403452043572122828135726704068459012453958715245720675817086594696120813246855147817172629520131119480608543620847735074435290539589532819485107854524902691039895495823615106158076613993294468754395850168897525278756202426048773668390487732060670622913412699947043157025101830190940718124355415305616151496224182188992988384226151557322358128043367926446337735923132170937824154949202749594865579945758567855467351320723273344443268819219887431944700485740784565425152969132617764540375968223702262556619211228686808870521089781584728859552268418191646907439370234819014243082827074523017936868723215486244296044263116761268399821086509493958122989837363122343733853453671619617090633431882461419534342060563110095562574150888332727523832267093790987586766052316673504718059652736654561189235680429001948747695704678969170489449975286193179495541385824940738039012441701741257471263860607649005153486903600736767273734873258206046737553362701317433140081702847953517164448817762235308759358262451900946551890200650041952666050530899160191549935983130409685496887483739861677246548220500404696390957783711197712596263996718387143990814870162593755912890158279783467852739178171925524346025436343894619658753187923512151289609861011895181295881590864630944039669669942291854506073097011458344839718709554622169295798245734939205331232198318652217863318947766429742590205999108324691732726171606494686910833280295743361677279765640032309752756008783862226682668795795052727209360549543653499602993137837959861750756583140886333974703505269094034398492976100171976252612776431964449862115717894367943148410313914525185455840221140459732693549916366304920145639880831132507144292848217763127874437267078943924686699375187563681991199712540816743912107090660848051830664772474945062487040047024940024173486986264551446400712839546832852690555516567276033339643839879877444707617681736215246190623765198420047418390073872472299570019295806951027644419160645004641538302840358019245957608611087205253666009182803211125397791250418241810605895157931287197988763416789033918424809424302305171847102603876960119603392456404165881519011176139939096664255290206954737339023488695366391399246521983882952093673282244425152363258506708151406903059672670232025977246214209875693081617456829308868005525313043735903678896652645123472355013676144122521300148883942297864578967128687200751120923423246999096500814273679772853266408061931929212316619908291648215244883293654616213932214463735872241208562530129030078776047720221746727597443370903756995696887603918939443054991483362650151671233777254056142207029537928653083615738429511608543722939017480383815163345784945292711693646763294030144053452461768459715624863993688783643084977029674011474170534032310525619655580023938208555798586502616314215085013663148781332447783916333349676034458037006318442146962332909474183635711090212063139659942504804520065318545944906072376994485755085041389316760757415205158822047964035657511086605210482986357967957871792809399070972420948820202783719235780707503218620497585351739875306206163421577059177531684331199978733210477108895380842733671152791754351750680230675315987178515207080232174536828523896604369531584902853050542553017820388724825265874744184385017831431765653170790165754432515569662827577225234824720591676632609340651125286615381328633234879381960543808095767255170457920891118912783663486819903594805050575205276812606596995803355564058039532622867880686793979563545575927823213678539650523838726825662299813671728592015826650568530229785905306330076823971397995756861037458754587846025771970641051311737336427094762609175537116285722984670647685704586842791306380603038474466260653072759635318298536146107057324139770235433171278796675678203341191128963020030220536507906268981044724494243466117916905676664404358579914087321595587438770436815138372113122699627314976856457867686683263261714310547151622447297156153839756575943236367191573633467822168183058924170146033703190147413055859587520089198436588508224033526203883249348888050922954537058954146785390014426330132944225273605245253912178791784486899564820775115325613027088908479449104246864857051784261622543462047443630358720489446841988712982298863800226570522362666961660282662489052331933397274916280980731791509626556335561397227682291239764111784208051793855558756640882263957938038153750436430499599680609442432907712664184006066464191039421337523489687240806859835515278012983634765731165037774731197026358000019430926121654499777080831223676858867619170248320619685315294053881565156041581137371207988132321650757328764419961428516093171834582930986894530850357839835710398358878267675093137256630705546055937632958937776329342736245674115696842186189676166677770603895212972937509935587112658197034934840041815673647842773538232910985114853025276184563053899702195125418296948452147222912526695788090086848893734746536529316953174594626381088984244983787078516029767354828347560030751845422588172144599029885017676456271583035462418225545362457351056103328758815253083151794697360208248693224064711863824580824656551343405070683198084315951721702377818472759721979379130599962322207696246502451288307926455505586788931983947272384354089471282525765228523022299111302051857174431384654671928497132989559858677671500312591052417500247069859701481684046080524192231050925531710983240977516528508380015684802540991107398880970620647368241080682196763110320010435113510203551334219312530242103669451110215883250980907844415031488648957061912133969582117738552777038178828321644062476968889490709247295900119719422629990710347024085064923891799576006493821775389153856929205909291166597414998564118532682056586672732952382172183694544628722126890061801848405828895948704797661991105024016507519996615509641937622479756443649282569954653744833376345797600549372298806296341082397223717940007952775490663594752778192562118284725847122682106060842531520543330648758717390213962258655278290517279108702909167640500726596715308807341518888788569678038018800192872074201149650006960014041780580505000695252707341444068110331519050824425847253383725554477457062046692623051028782082542132407466376499882553607234232868177798184909773912182517276499046593254990384719947568010736353501892223503095942886888366046496461727162191115968938484736890574682253392375307107709330343643019300022333748135866040065539918691052265720261409002222044016076624104775753441474692925505708467352917030272026540251012990511597834116837526689261985796031535827681564245582453507312784296821764798669995483100824149392569370935332002658626739107586467148563302004017821308826432466560632641609322230235106116735613965723863569993728495549271899889325280571101215336789410524122129803633047954110198728936734305530655179138451990474355889370321429563254265493615814685990194414856062597040811844032701637828489649227649099926504694644429542464186166366429745973528144640323826874020693731396287766124465020574617227280362496313527944747737118442858851330940465484052736970865608320253356574465853402066185682377194396721728364406342087507254335359592785529400295093091075507596518199784108477083467478230929225155060847106664862508548314239923720835580471275310407481988911222480724245597785529612977523888521158879723108126360676221225627566921139767335426759936721067823674109463597020218065689009812862561332599426756673928460937350873568562089782913999372944973916612439435021368572851589812656655271081959715078677615606023360010531795969901125311915800005082003600313155365789339362382674682803745890829400508004180132513924168470491390122028199869078177891548158302250270752697703198630725743913828539747394564948276811305003761753164032578791531986417893505510213848725144406160868943840343391782062164138681764955405864030634870381681460607332509902328977945614729148285598789834152336883209980844546522719344064367661546187381636456113286363301447505868545859271997868719948326076978423053466168441122287435849212328532889016719734242977700440329337031882548813893820632166751486287736205404248729126235083979261813067156129343064038595350263307165418102910839135071221430744109891694133629826677429563923186299782307271143337858125105222754166260217341921369075549300808817493301251112100360805967056185889331435941935647896026097108726288799828613745269586977520177908304204322960628959789840109107245901215756276302245364221973018124309647442555931475961955428751941700117648171379149227962919345809669867251112179420048864800209315086099153626397179061434847980010810165845868033825266288081984771568300402121297544783120485901374972376224846397890107609557028087629001085751826248531431133798812649000675850291328127112215507832932004032286697047427372830962486635479097762169769638284465601065938945120629777611141516263825322781644390613420522944001385945627910137083134355982059540648585107074618687674683212719148809890123773925229801077139156411765602693939416939109290519120210887031994597907581952582495409101373342992942436130501569989746962480251229368178585111801446720865683447943418961716975480547163963190415021321210162518890966354749905494288938752108783988466215315120618925990821101161098250156813334433966388838559012197826940109445314350865368438259239811231302690455830741207999667443502720798297824779308788258161033339089891158844336662556970823981233898661181740745036451761640711681847257496839383218672376741848609447564404808012222704937398589012434753847629011864367004268937521894455906662789964598894436682206481770746734007737688964182251587707036474544490568937924581565184303283243672065591120179979154815539362846127096022157841739059783256690605469792703764909354642242652155360126738344618863540511322413282571382832664394778060009775824860625710861491314623717605830569139628053628196787557687295149488346626128391076266558203922968014260390692017142751222409476938733954610824203665597849541943972511588977461815978985912234897274700185626130638958401793496108520983232042322648894733472582733311197606130301241015791989507291230593616702294612038918517644658036347930650363162913984431402797310931520478230026718611219408386584727451764339448302293034651543724257808293791394096294221601976893113608338710488318315055003465105243268174274525287210380621332846484288274754366554839928671290086856908051409466767383622479923213709892701464144475946119314489495818560585842546187540063077836115041356898491571930670713671923777431515405578224838819525576140730110068749469318941203237846565623855638256169447503722241018463357832943836736154912065620475049973023410511607847232886724071342286035091366702098885388591470415439265826208472373537719478537503304123903162597991732848995761809458776289565078855467924677404340805181466419589273651979767841027341008515097232832392340623197192571424207209933927589669194265527494248652101589827540005193010369244061426693435336769981074404033677258675989370575440517937416646031055242041044459637123648028012047083733471011083744684789532602787680818223345691944417426002552214872862183918665474971013346568707985807730842469628447377150144337129152185411073830681048425317372519421791773175547788271818276571922613699798864212370354736696737473866905315829614987568943227356273555213548795809718713492858567844681858560466039255793532541311486100621173166761398949737841780777011244414451344446129530440495241415595197827592054645005103022986232648723040484589172590222322637752502312820655342286841867917469363437122672388428291752561683284712902673829624264068542804369452952708273835851230945058076097578377353001647688414663775303741316542180227267363894920337366942014264341944127215363743185717503049415808681272228217869965626197177784931882216803657300590586692929653191588203814198800995209094929831441364238551278626336914599300014555223456348164125478727725374818827478387568181249326703770773560845268945895081154680831934978880846708107288171946639442292382037780669495000526354962965127358948230176762347277377358510198810979917484099666911332730715936591514099623544639690357106361267757239736435553897696169475342693593969165785451410754916717816554850022651601607346959849268940770181861848388063816306895230258249285363498407795942734155145274985459609688332048099433967306219619358178306873764070552448958228978280737631616241248084873173593947806247340961705152135402877086761128568565285713863928254975619257006077808131522222954125044069979716584769735393955580927040610514456216411098224413936006378896467430805593303019637882773993902148125879341561459806589104501605209752141316647773090852756470772727129236476894798587573996608784578650090638952577787646608232085986653057181736753091483390745284457871111515389408940286418085244316166521399249945630492203885691133027618210020315535563006543535019615913917514893565645224620057122116494158413848385091052691511658971189871079002204454085355618231389275986739396037040914672429379735935720900999551331867697887152891995910912669732612401191782775286129625987953461028865251794603158659892686290107734430414622249239185104267500299143234332508297191048293736027282767001044793305694942290988275712441220229310229446755527216987305659537032618578317883698872243601864081635635265880209216171586012519462286720527539711377832297487411739746177108202943962672798755579268293323498883483136616591029603525310083712323940425703830839475752701882451698442693199792757982663067570960159309480356738598002483318765636372536733623663798690544680737323450751909785530695239872122972489172235097383109884224828310383845583332956384245729445626304400342958681870575524584091884934052784294948034770397851899842502387336681951437908929454572751446629587109679768903744566354413916499924245013089337477307823729984769973029418961130308909228594449988716737092432683194384022268415709485117920271919178644509080483959417380230970091615869362397892854137579073604151656854132552381255304394803652166995606977785464005074425240919181553777091605056549815359851647435705204617762843557963563507834031738928640047511033484286520155967309950051068510513565356169223766339962486562838456741853165718164376407619447285483341070044703063175837023935678893170986652106418345163446242214481552417857074709464817091533348027460625263447502886418711864909489189547199072662724410415733530215414643442144667850550926363527773966301526043730200750439653607942111408874197965457660901652581943217682963053278205625983110923530432360926392597384059396873215377552837738771328092672729335225756940380717184909132382037100908542541369585491364095795146674232888309073975225191614836042744535425973948949900403601674094278635208801418108699296619608722651128391334831355894262716488639363353157462119010958552202459249106187697297157368059660056524464383739769601230085805455884857738436570983931099799237905849002397622344008974253413039752642499707808103456568237308198991294874949111373342793652225024203627711014933561274073669328404862175845282998197249257280952861077307061747816862906834334661051693007488282871175666307651385833295105403819718522386542198819992541846831356818132650601299559800577391984277316095562362195923408822659190897898956835422014846937960126707210519997044770747267396011139526860760591551535463389715946943717388767284297805519092441124775845119179027244653022385567154677691154033011170607548144195633723999740513056158762352124613998660634141729714966153218948903555637056056896759959263916955993541361247528024576377309809007952860316782326098757846315531367526826677152153634209363164253449602161881770407004321554928369759578136752114264786638670382665443339680148630499375360696325907956725201119352218111549270140777383596925614891040207428109715728540706220566285241785847120373782614891999306796725330599090505988449284270529331360688683826970242564865557438211578797024829108996028503919707765633074034526360655176982321048714599414999162535982530738827507982484158823272448005329925449753844048268699281225028268591780140738417339219295410493059233960759419161301304380105485274909929136978808467952523654953428919817469155181522778370344018199342263538279989496721436665283314558274815521764524251082983356240719201634692253873816337895763111687568444458500967163210984805978173413639172156269254196456308601985230745561532943229619471239352482357962438657943647870300233763151436445112870899330715870378702986023115788380381366271965059387460388036006368343051713241648433858643897975266167617060719496083971637579706822549910042781217961211537790563685206678193121264227467353132006020894805247716206550848916943576394086398761795114154184049128026525111112828959868251065218150024396291641632548997758046191257692047356352991778844602064503816062557724171782360649000162455663019689967735914758219793406773371332226196162730486068506997717993857518464692978658205051781610748751877393057699532031714513476528775259469860637404156675768114867262336003745938135335551190634323880360016184016784390629824149191649920091416462284967293241933911040200004378245303286905523875304489560678480823580656655606836543976600877120394959016624834070503414904991199866479676220307969821375026339666804940119634456521344357977532463917506133576152136010911886123965599829487590171779322370852233313168362725042933251059487196919875573109012639628417489132833518548752602103100555880661409115449816310861540183735815645847837405424499415320434097739208431189426799479144375202823780953256754948152152259822918011424346353164205059641899543427501928145090151116796113059921331885774076902889819145907275790002898649836814581049728527398370641977678674700538894949549861111913732299098206521448624944107570836535479223610978337743329831080875357562465834427622531087738498125693090577825129271229750446806398686030441868656634696683295673801510462659926777864793908712520876208596312762804853454790252522403934338782020289176119569233347470894903439579395377248811331816356668217978962926100136284398031712913605627047646118054728492294746497587985910280256049956802478871592081942389588944627088136716867291682825477796624620427477322663407996507296366506234067343961924556235539728521848176312633597986771535525120740932187595746770760562192239421711488236804600520206184680862469247346901187643049672424606127539066020873309307690418678840774381743567464578412130239190061610796197976440271172043335849702169291752949442994308091644424587783450574616167377451266132117668935805954644170121722894717924496575137673383730330869063025625093737421810689282803529064986593177147719525696238443300995743694085501195960983169490935210107157596454949639213067435113589560776259774727241487740816490441321794794558711356054396259136577001470427823532293086393993817392712074040919328853482658440885880943842329435407144211576816093141821608866357840290594485358500412651571253466298844052856920908810234627166125330198537858754114623821774682904182515783139358909810393376209276246849806894251984537954355658876283210738139325160305753776918995416056586488578965105665264928459461413834937372397711840663267380262929424753503872509208434090998630917902308809727183409212943281081407823191613721714494669903707361974150275911929567819011373639366172613792402655201420388337816403189300047260929554680842644778144796037792504173472149442976724054808496396220137575749784717881823126375310527674819899541669955415017757922667868387269231588169024949513559026485276977585430927374275625364549645166712374743881239292707941729827323875229749438971035424610142364645661975473088893364016692211989902606170120743057269222481050874522176597527820834517434165991730346669907459128711887152974253367401644190595801229940590829296078126890943536730201402302337674470633645740829339768109407800760703322543508789340001852553103416308299201957567600060960356332668419720699999332832966241839419538496168032163277026369075850812164555162688082264502198032869105446143759326092430749285051270638017732023235768651993881723585714536635963290762255889567139742772410241404405689952750763681932661591278963273149534928194663169802843823725937888244199537586274810736888771558936508410494651793083873394281170238119473755322761335595878186471555295057275245872085003083003166938226987115984907544032389208598677403555016097289487703687010291167110662712992729636514443278604053974430607815853287834576428723249402447055090709985211825910193926834019530559619726945250690036967356560332298961098101139407889860427230297020054288622103815299198052077031293289324842429308960975380298956552251599256311389197044058142420474211440261480204420534320189307486607369831991169521693593460652128584430759341610264590059668886787306932039303456374437720275516190305492783270231547444684459001615689764715401795999419942346283611109641703634303241397224428726212102245582039744421145048439403244972214279330194459327813127107105825207460684519714223969807799856416623473191154966159226196749668936445422308432617644401256188634429643981471561484285660761383500708585278958693957416179452542279172127696171671645534644810495484629919245293178974601465979371840267089090521541935893578378496295576869805881589133315081469634220223362859875843492750876695390682935234431551001618226313008469321209317783480066829773290452138396929497529011147430642745262098488418149346219356162022450516968426956015116682869562640998229295019388622099256976531060035332121103284569457069774333226806975830174792368381923648446131788777315863578230252806400617505011975650337607752970232835386731911584251234696362213090831745354411281419497446408897482092271109834856473425931471977260116743604861170537163310731105865608240734437465449971729057691765966102108664600113368036297524026828184175069671107327252345034018260826114385414500856102756874974390085886274662369408005500155334960709779113436933084112496799370863133748691573590197066680149837312165809500903558283489638242792037363449823446544742821873053002424492503698966959929236233952419373171367010504927568939140259171737263814625411804511600893660156477648493140095837989949120507337982712595556013756908377896017368992201842805147813320510198154241981993133197303048771966224441589686670179112075279359302217084197879455382254788892921111579719527016843365545705065198127092346252822223873275517823398106136648096105082804293099947095638908660416777768272486771752681245837385537843832575863079478370048786469914455689843397043404105077555937870961375798659784294395712777104870554278528837417978644627667743349488393140447141063664103365429976980790897022187122185520542270299837527217268374257333876430750856123525022773929925962075045568618222230724831638766110630931635677910978768806912712750979053227926719294199643201089426886414764108065237128043762217755200886040505158061539629100250224734275669198463616714999046233796817277220459241329444023249356895571332227139268834369475215103648284671374224781894058704096205989148607673044333340002617052498583287018125556709584035910446567574004948477390850092103828556765087088060699004881878669827766125346019095974056422955612314433554192771544444878451336661898471951044419459884236483914316605768773495435754702044730370906415367399213792688001666948333709587748661052859196598803855576770938580719944554697701222452487996582178072007022385580074069846172545565592542780969200022180347820592685113255676277091648484746055594942401737782684272361988749789859205953480040544779226061218352836887506521402871194593445096442601537656419132479055479218872177921186244733634018784517996950429559980424207069613204419541061161112133489899701736221732301084061812412580403616023277220849773508719858417195968794927035372081768282763821698865732575117866120488182823533837184699209949778094537874656275203928678286229139115796545863709296258241080188861883089506086127919547778793870119965535948283475081894968866997435808746599184488550317267783396394933990502712229544229588608902688409929447966712094353407319071840866890215012778118358327871169884237938694732960909582695228825609118377613852435292017099084259615375297294335725079988258908634208288754321981952159847257226365730726444383527241754304941670453431688344613568320496896273731923843708644494609220594067257518581977218931164464969374376510924160235552657048957759871214577221329003762852559500363891918080486475784704178517464859130409844053945226019255411837903301390079352272956971996786276699021292344020494655544896340917341522687899159318809238968356328321331090797972639152530186004358223868972336042203947483891739880015366788879219462758052299547473543842355171706363671790605002630966366274133560178413111573205342352994689977253345459291139525846142368526731905172549218439139179789093629165518717121792240971365685577052322110156636546106690854707848515949104089551676741064056509522212665240624372487584524675049889962243377093307403258250225584351307475496387397641177673131598756559204144389654219547681435332343499141727570289509131618331743637438197864440027287358978957139588992347777684659759837476990982708976528335838567271685145873486007076799391888980274016561508861671995790219049521133292339909132084009849312786340590273419949055775365041858886068928550808979755462306035715333806308424382585510618523826882597390626479269056769721598831858699632952719011638644652762646028699099047175666037194076221567277413907262235291238416358657497233247743339350480632959649548079468203727012170737227505962567989426845383537712159810217512916711728034710746346498935464772255532048450544751478291414720172054908503771765912513608486450755853280192643683034725477924088916005335816145989460684470840643866153333507876388387920957763824304168755737095051555639205061555611100873823282240208794522227002359333925921639363082531764257223208780031304503107238081905412728204256623579457726078579427610525597651719950460263577444677013079328712399754674378358458343950263191474808762463423741841891162792866060354600118156442933427276224630038699274817062175659929654745668988364976236198124838674281271603020043664488638559106815150434967768313362378363606450912490410318968515768641514476563503398116512658491795065846181395164407637511315795248807777795784826521680088081148242628165029617708434134663804596317324334570095459468876255107508895490800777211327115249365103411917257390524988519022197870245837478911890850503759917879855819490357614557932121170357006114834654099092526785232264920609775199541878152899794139932972074124605184029847998897721923185938885909037436211153855976708341264285478714482602042412171888070911746499768919351688411834139760318465094118207462743297253956904925477136686231281643254452989637951247922058252517548491641566412610801619838869307521981057250894159240362804402676696434972427479225429641909337855373825062110539646913670110500503485878437628679710963539482527908419847988033308026106432185582779048182328295343445746715958787792788703633843453362282316563831931152238427747163269596522706492995133023248606937630401110823793823233866575820570734614624206092544508053308174100202786555609778572471603306672721915313216450868934577974685811509014558949501735895879433176530032982764156146684043428453034401836903936064990179603263501435958163298465383951036145759921367937081007960591353243160554568753897542015761556671761620077320267645036167329565160736268190397242973908831735224158112833903404670759967372700343681083047362721328446936510671016981017894507351262031896104537175729926866726041558040764983319137909235009063851962368117901077786621306293120454869426706474270949480145024325627205342624753399686680153473188872532628676676497840384636038740626044809219390139274586205607409609482941651581423834334187338553242497871452239622981215715496739886550129594545669562048961078390583570642106365826067509963403004532152177358799273165651012714380255152420572306020310354778883856280454225330413420463106774442330253653531423320694159018498626735364925370377764689172985145664294611841787487488601686413628904775344128135619453841201590647694269337196477535714530421220181766350055409380524048985953094872307991067249127603535559384092547274507773181627816039960207571792947048881157328325524213665586794357545001460161197488872157172589157243603707572249931750245101587112304376623077984749653087640378016067867073006608912472086003744215588947443576428751401446443784220600314610919548626270584583792742469961381895199850752142056642040936459995003128226464839541245722341050142182386601387962750600984820075104354509613044628962687923631129440707415691307389225735845204533643533065352731245185474164053928442683099542372806463574601314655126538401660845726299740206372381197263227326373309082539951933338387957446808026955553637578036121288610022681236380804355405922341503544871949625770264049775085929854760253779757099411586575947509864753651561713853022723918768487476777570079117257908016951734616659070322194915748017615077800070280214802691931650340411626664395545110674162814787839791436234136020126628908125122085027091055709777286265602211760935957146611626985124499767789360098694958897022877229638600606016263174734717667063464164539218084541926247091499909649361589970269291357764892735621225983997287310314564165111469158939421218035455490521935383738780891615493756316798011485487037680233356472937851840741573174244649867104961954145001304402985836358254887557216570982030071058894122933948303531829084373478432589788466208341504580484000004530549377059511384900828369451325821107820383692378673126793161779391812954214335576293408199744987862349631676118235997564504083734626572420661435755130914882149630907392151704410117811954732512764122427119686525530986803280352717403563252587787726628662689028955227420482715557146292397981672597619135607619401413680879823928855999938474660212196892418644822248615147957878135701933509774691029781676603124403620429846937801634966342202219286176074758812962995200795268457340976515484740979345134208894082186609715351815853684505751666759688392017172514757294000447584155634911996214848573014993409157006944998349928322449160614199783897822643289545783517804630278135263071781208751783930867163568870071440661926894684325688244072825796028798256924259421971753542727286016727677504041156755535192464212660589370226021787849320980922561932927612358539412884264853226176748917006376757896445688441930862659743977498973857054115343958838022851428686834383390189998757005875297613493843795270377360109066518033689852703859136738106333339534466055916037065311479731401883693523549592823025172861311414090404268266099570201042612791022286807789845920414597894996376369271175235093067536391084128739466989097301082535033271396135781410335558192716129332145498891754380762689106793112984948344908580661037761031358944705352531088198586397552988744585140586235086361345080479188724285648656810614510440669749189155487581176233820282963835740396347142521357712501345317297037893890317759182372075990054339957031762080916746034936359982929075845610648616804869899226020065360479397087029671015174283063617313134280774003151322962342730347632798809593917227564950058113687668529829108819581492397801306808839745776468160348584286080770371124017971428223745936200851330383716882052973830125039929973434944853331610509281864101145190889103287359535543794045591928581425009813849472389370623529604502581083887058117908084815616715411903384777449970188520306505328796813875917365137446392968161821714052329478809844693375855183473157687026031209763816862192924843002262209048106375529512272484085200909153178644954419649372752491017350078658713684347286114622201981673714654870200775197820955726618203803992657226281185652382433387389520083832822961473779266822901905599569651284431829795629825013526853845630312442498683357560485223238646568350134294435045209297648450885380171283957346528045370640738302676332732570837139483423905904869703515886375310810824826569857156407774827125326077100322463825958308973016715523188753650973067250269633430118023247361677619145101749760664639018395023649501986636080999421567435748059809339878514742954079293747371823822116015206975291118936462130735646447763052943041762413849477011315559148916370017592667923806273426075955854213525617995192640245767482581238604223598412651459945984029118762954264960568108290730512245313768140233506401314206732942228171946975063100936053178298802148066914177848890242144997775425100782689317376369509542354097326637402447177190378573690432936584432308749134736224648352065188287956746651389847725124272707674140144636615924957015442536574577030170974024998046966512624260735743680411395760993926650326362579539741855424818898454030698136459840511897589543906761130147991773262026762068637554210036143474919918408926811574610474622170343596925839206460239325079298781967464767117331734135937200945110507935033889806374770870237623117527750460361287351350347952850104439655009861163195105315026737552375702372943928646648517098345234765019441627262716780639979284741836928452337536367856355822677409761311785917977715147488168013613091358728481530778670609981682187284400157787887814879471688824972397959405891764179897933879911667242791635423929759565992456352764896047547986562671411840695646810386508150175849571426140445775553478671530299792639420422120719330168859269246316341114894909418957617709542899754366370666660387633513106540933487484946146599956010273416386838060940210969184960415495151687668159275053107662482917475720042853663938623943512870435940729370130044353333709003500646861475390750856076880719437796450477027648306040301333534494988450991341683820495306286811719322175757288365158702113700353217711133988610802056647341807657705960952799133059098989303952235027721051158309978239620331448664718936038029166454888405326623340048778191606370621965533716126554580805955891764788239279667431810743886782498494279838859774653311274042739145441273271318625630866352511106258123979770664950114206130913837406812221212624888206667905897893670093004319404317759873889222021550932371241847578764010474047797412809215897706421127615598917906923653107196839380697818447933860469942246725795188921902709031282800258187083519643234339342535943955923786854842769450425414975164102961869467026541096218489044757549194883606930405039453749825293117871348584524467908943016246619418698030770411223966710768749921136169140769892485909768112801487938350533100040324757290695713707234506130855015598393297998641113430188408345245372013910461713872689547101827674170829519766073013526551377114104976829348120696341555571583288796943673014135839625751808578319069439468044512683308158539852978533092668509147573361305275370090286208413512573381996663832476052627234408054433253038685329208617639001853213988655168739627599001455960964338762723286294353010903664309272665932432864604941028683096048187671013454183617270060590326420044217402188257367315458689413794753675395404491909707306817886707771061881516473960687834676514241906403003739916614767750907570494521924410671628228502407441907450641222527538192529431273385806665206215105167278200628099684080304164773880288835638902112566178439143370142182654071465937083308275753907149086536311069358352239965894307578499367088747895187055109590422746747442448830476689562083587108674682477754150577425748439884807640587050310205217120556021396592491163774063306959944446241384977780893221004408673403041378324216502479783833400485435024009017663319075468870798189648369185577510386499848340521688393890164550474070174381847429384457274511013046521608973144323547915920849935425620403839895216273219583097151754150704288670920263497020572979603434785878106343024398032132976663517474734230194972033571659039479307486396249382458874396468740254108421010712674561027747810988073444787163490885963168237856587151372580830927524954412050854629169659706890033010984232904146848396300506604937075885449956059649493694699974288232512974244984494228375542785266527217818912556480795047834579002214200953748735526465634142505710075819028756431647392739439868957737946101748599091332673518353757829345979074423976687946394422901806508053133711612938261125045527215059102146049865940675818650716851971116967214390342921519177089101898395625968800402024014743531598270378706998292809462808928962495926255289917761819477634142265595240473125483598338731301066483972845031106400865587877229491259473207937626293454350919084029601921542328577706544374668740078439339511164839765805227233121991063302051871100054534745865795924295782057698519602188472867576481688376386105045351752819412009971596023396787131757418624292541540142908104094212088379173930105931656555445314311578634803414862776241588273470847015403521547171975795031480347316519681429744691099728584441311254396661085007177286229983184886113107291723840624633409809735228566294469354086200979020643022295824085828895813954793114190330986980805767293155646513375635317925423269221344527870330382924320738935831125302971802444819440503929160304078460583119419749128957534312626847282950616101362496358761571348032288772013746239686105840132068584254356889402504985325898908328226703981651599277794583135118840962661003809237794511100225026752928127718736124781532816194727579206890678647823619158671585095963277623363309120050625121012813378160120578187665426802280024921870053509404458033812511075399176980555858755471423565313844835630103250443649487760678868954098825517894371860806579399143923624062958644029131433297087594072337018188920750512814549051732204295505435624348595728544378801115685717750340110753931245424387151275866285967782115931220328602989910371973804510128021823646699137021885589952938064795443167531224957489602969988286427886276612205065417219104501236003032932776703058993220907127962264655618992582033650656014833767463717341889717618611735562109609332657436921105352303009272732014526031566468975270974237176308790680009721238427270539730440788154826575631406003870956795589601938503120887086117109705749169377968358251615707054913448231622006696744776094296747064939565674402041089559857247453090439181434612663992380243047017200922495974772825399942012156992726655336924513198537449150684819433609987077524528895428297375630448671957701768913478195297289953450391744470512641928803629442254774619487611281912674346453185639039693079404920987258863563241364620669451210179547125837044431479958402509998367269727526879139458777454847971821061971116199843509673531214731308053156869534016870619797883664065918615844194639277701412543909617863139631353690187414041785918729003684524757310484284473987863319307878582271745765184331887619757310176779567448007644798116561227880124680685479460300220659488950003304267319809119007891301738955414241783716783859185377290378772598880494212146406753234653911492687904041883676406496845256886433265737058875397284604696769054591225152237960098633520571310719852014319957272087283646326610892533781172175440522193543932962739291595764018660861223164818514525423976254679511608124245491984004472214878108944567054635561887031234591967138905777622756210230258452547643870737129631507566472119703529099920953391532495105817099805708299548621307569824677718038907162070218573563401995442971116620109089824143694506745879990198563026653910635288043988291919059980242780117320000365702148271413827957768284589698969190513755660667330236650189464886767210539511536105985546919752119807657349818179001054034824604981804244511287627578020508948398538437560132450291697820116068025804999821188801736502186486962443422087572057989138742652532896342687770085721027632163682904214798811554095837544113368259232411202696539963220459101673800559652598418742712000947025294257164888129327294841495762344338467208565685393622156638157099942557962757903747020494673933040144042252731170329383013586767054067737042863893741943826799868294233344681184963998051142105941917130741032991697746535120499176540256503532620916425872139273935966305863623048591144417563198502061838713888541077235302343587786748449105902602255916323502167199981232327537378024748879053268005186098410796732254731552548262463005998247747007143610828307265343449447225282931798750441182240615807754160160905865898330747387487539867675489720370236552124969454080452948353330865421314271921897153385350038727089165147615129992393403432260217340182534864552836406913084511620019486782903797889834411815635419607702621444331211838150309945180879126175649714584923593140212883703297572772060248906695789657371591449244405043724372772603339486919476854336214796513878973889490881499824551092230970811177766817968256828733137022359152073772749096683428298425393837182600620139459620177616255896304168754672483038865919096252967037978671349858217882829046098183007464933171705547193969553698555967980489830951379974903502500435199019045415646022426153170547821003233863384212286978728055862988859994501106367291714220244649043081714139700277886742004744417685784872536375497788225110019761430523948964877621635124027874770063073294117956021361387075025860660666481415819037505957021236508804739207941679592528062082430472984943290339373740527410959683976056099253721225099848319373775690350772139954548715438831693020459279246803431102900568513237886075747327885615802425277873891653826611327198576722515126779672294558707642179444302908429111512580946934654809650280675710538623930577081151665411505347952780784236806179816861326896979913584857048057132266028407731720378567126468807198816861897391697693801380817525160517903554764657606580485193364263870065994232048630034309378041793399963853638084765771520638505160291824132420906680108208409934634923207784119796343605731095460841301953382025820631116903148886340422492632745956752443362492763985991201653296971472763432279874821090267855424431403619134002852391891368387032114411684574769140540916875953406330233854331513213380369245823821253258694087739701443028453939049117318208718520760161757181861464650213318506197515488246301744431226101627573082512085886868474297453194155790070879608567414280365219823312951236954625470980283875471116641932074305463218003580810448012391024511916891609447963021472101774573113040585749878626645173189136372475603944265843048118983498253048794705205258222735526285455094387384442782766864069929972043330367745734349276660513743855423185207519889019415629729732035773080835804831899261124114132677741264410917990714645430143097015494890475106160620591112142144246459262568942388342172795988140572580945191651420244189333460735046873978309600383606133479677127237514956532105346977729248737306041617404010942857803512308033624367314888560716572102595415512682454806503350654255836045844577964302942087099500608018085221939849603546429987621356618881720499290014059237396387533932902807002178710434878288046070193324372165988466458100122917382142978700176556342515032671889988580910497477341341064458239238534605976762351436890611702373314699683581285824649135084207816593528588034852642120499801501792051199705831056799143541842356290793253408185529123504351917547901990761137656049242327608202633894521040299465988064603335530585795808330896082649672953737256810347376422368394971592113963345170407240436004027749497276098742243742309145314214261192089594956756089841273937917192765202615676227936970709997934266347162522077597470193939825101149461147667383975814925651690087809248807600594132243515909465982635016155047549612878052065428309779363607011992197923166886934014288289886908539221877421385037439888197225619099146104721830565466161122431809259739041442439884662472014191205924836149381684834266433945203339034188845579573350140507833684399327632302260973766275913914762493929672943199553817027615365982645783676372336945860477560170208003375192332548982021354633944953526797625361198343268514781684715808878100858867521322723089913550629676275434174400165178820256308233219866004039240025645190682831818252860620609833654745460891179566834151208173988677732732864600980166839232767438602378433983190629221292715902207238273877218123174373503034020876431132762148086261027035924252904316315088149490151628748324917415713136366309586120268647775930597402824635961712986998168579978814496467746945273506472795228564885180023454722741151038697523527638984211582998775868150668780084650000030191798136991137606229100957572076350785300872946171960589993453729450820892642642300197396626170013092478764145714382607959444091521155849319054718043240534492316086578522138174125512700406352477850684634605240577168431921135223273386851013662254773593398815431550972983948923392343540176540770913014785057519654100754579240849584504926440601763140312175570065603968404897807684815259595570970127280029633392847801766780277477363952177717668473937891925376876527585491322812656829988512574265037493831537179076540166937035080857343703933465189609379353676250249601243423205709421472595764117262121479034860769133390307337833028580581179966168146309819185727741125624665808563914675330541280121247936214476115836020902785657668444839716656126034626184185583504636625520220510754150393562779594606635664586681161422643644733843889805605236972756907608895671286610348185419129118781731574152230121225268104288517758420307728157029274579018809292861703499970200186272294660241855357527817976611899964641634873971807129502768962028692951721813873457234883963500088324857400277668531570885033660718865069829245604553714634687972789749587576634315353923464738513208195066308822260495175178566683925126640935494293219632942006826430932092956445263184812683979487245556657059139722629020620494386319339383885003004876593799151816354955465392919336085524121444123296177369605538348605273888033854828357778313603512971489620986326329731998577077247709276929162475584104485508744321104696024272064504085463683150628488194880937475127421871178174073970862659206130611356143632142931745854691356139863997990306381052810452547456936565479644935152215368371702590269006575101354289662273873093420059355601353921215016857019930482140043633724517006844867199414433291372443817883093159086661384936768247387425921387014756357204495407607651938308131262070587361953205998567200026317555411993956223923716873829389575802103303465543260164149688206825814072802605679710156390211539778893796229571971173989475952750548181568284069449790290120330226513740161671288743140005950583603387368151195925014453777404983007107890602534292758632355026151755710286712977649039581056359739940157942842186886917312741214830663564568175710377425360449232363667064644880860304679117710572130800771187600235635933032563443113889449519394205009916576676941548912956323896434814506405419115644625140674051569632265199312359984590301329441224500289513239570925658279863289786796952075099749475566415593538711128981431230720319565660255494308130490205022559349175889522554871291160018916539449382238739430986709940760147019190437827213707768952001987647984182998866250461783142835370674572625455426459719641851978783647304011493587487236409629867627521442703300066908574447600294431420985870399104922375945510485072847386198223458924481498587260251614087895379448866489863655892306942125326408960810655742961225382056508076585462658868401796499483125351307368584043595142578560374632482132832585297502402594579636171722509497640027437463606266046259083837984386083919025934018556945028944805609858487513872833304552485040937169556540138949850100727436730000602840785975623710898686562139438267544236443901200055250661287019965689486616827723461994487758843783443438325460165083193564356294395907788533766693759865486049823777356392680815746404544946518657160192517276467712447012597750048298658543090940871078842540054136804168958889398793957771094653889681526831558252137694108876829042687699659099320118354290851539997261545126677464101125612312456238336847389665716779653278435405894134034285948663104647161547003231641808771914240223376616324872267896191627737323185367064410106066101368804277272736038988394297433221091045570177953487403208342632838284318841817920933801415258845267699141642233627673514880617916894416293654411429676742724035612636166890747309205734327229063211947833235799938433534952294412798820638328820700496925248252083487691316578300269860200407283727139576453297244633426810421650631904999320164107628902027796623963140608011416808666457548814251105790656151252361257198667227300139896577856916744243384473785486729802727156455236018304270605843255034202735605343630645964625756450199345474575697094505090070720319848775251011306474638085727256742549150345470042914402097918614584386004202821925456870530193600493827565596820580707741404173032541119687401634063388257992169677213616160441322632642168183903498301167677304835917424902722564065373001325346912770438975714392590108431132950640690324726774886232205166364866954092023097188435251636518052921532555193450811656121105573344326008884926374174010521648529799703293515738219754814400431635533868373530287374452169573141568335415362771378352564841050483505921868066593111725304347522341310731531494586577764301257872016911595489180369352526256044998311005530161875116449428599102220569598839273400399402792238627528469760557268021503874459110292778894145522763202223646350920315958237705140117322809525547704315837465055144284629030956779360694404216915684216127549112780549217137479399170391430610673149448393120347381485144371463672165389272205044775697054390557114817300977501139768218049993702758992046546270838914505682627131852317938378319281569714977018444984881816570477843434749269976583866108022065130165838659827387074052656287213744466254606887935255984074567789812704833986292154435827211091818686271148782298280134205631684639730394195738642425840694072035095371591694464174339835860048237501304524099425805965765390127566596325013324716668480573570697292779200044731623585408509774114093377291423705319550407758575324669215518422186242466824136558404796114687210385606420022990939554825233830342225892424022159681267506723181275883110649759245875535001778431531478891356860103616653181251119797361296196507898966865730296543162905383720344737445529008682363010872286784366685963702016550744409491593135852599169837095220514537626770638314045127538794769635632189675425377896261585632975791462989814194377183055543756967642136095263358586376288830445683688616181548899193791471805667504229465186698429036205938793769033498166506283700941077057324236605123938772146895193590382180201580698510416308241555626032473337036502668314877539433047052879071298727418250635966129917870298537777144431294667234083782668893478075478580446436016723066149101584433421387385255179159215805333458605882332560349847713588735668852824235623204488841970187048795502774961533283780237744553731891571268059444040896010029868664046075834198387520987811180705423955333673307071719355152812157622767866001805078611263937978930158659304165745457613515843676882921628765428500737291711002298847187644301541048034377447966634531034488935103572708893337683381879581338935244394992965676297065502466667813230898249196307823877268902965759338007742644335725952596292225999793854956344389768446615430833125069835657974456756446818262331996953166846355438762711197644892309036661020195431970909669221181623995055103605221470096371474775601925184040461344592614039802183374665075879116052111608511796421327178308943233271223885110760743870593206694779068603809941281477675541094665977947536782203165605999733587730760020550211015052272968093816295886101365345654246447820495673214218256338208317297415053049403349634200179669450728598110794763686653552498090809227916379181756862607888458057154679005795051567358959124082195820141875025766111736110199647215766410540991698930436565616852641002220550132078445227032945011220493301854872561574685880534161304801448825080224965328947533143059256542412197311973047667164496237973360584334014475227405251517082542174238818437330477992461082518965548426617627857279314063059091422419292739733461137836459541667757778846826809324793146078058210275004477494656399366005238059649553108587218100394687345754209086024953441903970591734556183634413725595526823028717736686201019865528662781966221586216530458975537829209130224792280380635666448759014024469260346043412044222312469224420223737088636308570541981223473477429310539202849642553149138502433340094261143107006627867583316012553400586356579533922242900575288515169457406052257960655223048562506625168935045835547509421626880980152016455763008576683334104971298399195925921311525827478099620405875691671525119862028957203386426871012233699117772200795468370717784201011518971917912695106201636334661796984850496907600891032960592509313096218162927315691565704132204055018639518692345161019619922021952676645145895839533868539481637705492707710449229978019118146477049366843962310978869480191429609330311257323232149423061088556697455626435249119744772987329912115883831964647150752660586327187738189909942917764032587121027923348471409259446970163171401459132282683727867551623158505539502527646516660076229377597961640728057214016745082651142307863622278593296745195555972295057640276752058850901985119690392151254802721573635874938125311843308283308242656661317018536999475249779208162495441817132338422798558627874256254842241869544446262132525851005597848811257227375363898083555158603275988300740501413661966614539317088171747711402293135455303661181779397404466725634510469229257248297904028597000215933000326665454369178832443878734363625798882432039441569986664466896431475110461969759400411900987633318217116377467216095876646826903577392837849083544507953935776340858122196316909541471151909322871209881944630799463098333396655427856968171038629027027488584733125292151638870464429392888274487604568585157786802952837101001597394960630780183762793111960798367516179223593680130627099762744343148721953886766850015548177921990406953570175325455771393037995527865865489129736582394575407818583498694721811456116210780348884779023116332724972409220664043096433172626633399164637261714318011595447706632591639023750612623418388171979511611776711629641039496601612580385837038248575697675878577871509650735124411075090594762050488605940824235282698976908318381145930539589759522313618017998354187483910677857119698602736550795913508535617598357486817886248435498527256908424498697423603125601105409375963799811873556650824894059421720237378768178895397294996483102512005195348164381886707753532000064447521823644841410870415317387247688564446666772866247283293006969855319688949541037906076169511067363698071942262449305919603219287594981621308080794737170412663939933700149138301990568111726372552981522884339366914583541753357449683212712545091843253585805599786799993486675425705620832555052110215997695616899193631785721164512854358930128777965249372857955393535431174712154939268332398238724584795094606399689143414974902171718406101540022237757722180699402654501472584872198212377943379436151421483308490444704956992617997451845801805939337858019857638391666444979327421562015149572116713475553924130863931028458314096829690808435321482071482403085165189299638324937602885948794523269660327976238171613321641916968628060336924013974888652106269645859247850867499683714675437905477509717907925769600182800287900679788793230932479187632667258674789084687155293452781450796744109868688798881873228265208004089661427218093123893928150999428740111778202631652065133306463903399187829881292440173129527302881199423781439183796222802721981017267714168996471737997607958209286115863178890195904294305089708390076070120536593118791954818898014883942330037110559075506986837930271481485356347165545740553802718871989532711467321743220585777641211518754208345431006661751574781869337821473573359999870892315250583493794090563394252210741311394799566957484104808230584376701678443397394552250510503755829769379984338883393985185704726723622077177733267169473724705377321258236251035981305608565665305951310387878854446125306302339755553624895794763424383384813591890537411754341194600115330408456886662517849466020058405334667171719995343261512069206726705059061716849681406093657669884750697674949198546494738727247840358701339965482202787042065692939828092907439459657335476169464152892956311780981866896576685342636820325723526079518915945762990888839559380165512545475265645245099877131346989456466022614317641379847263678885006886028348166472966245100571592627195814203423484777544517311629161268407538054363385004889996359405567296649393004322022020009644869829712422266627400310527860352203988807804357384948584158049059054037893195625803733786836081700031724053117247802526773597956549025757915966447804402655953764952472548344595638596946770190318308626620928953338502466331074209106336444360051802579243238778620775891909230104455570090957673726799930877228894288572573738591387286427549667689167093558270671940233738069147324414366220839180876313441629997293199045743167193063210943172500581498131013206985285619461095699000668740603169548217511503188095511657361588946979578002232546240839312177071414447979989278206413190399744908670392916136591047439201717256167589520511231986823255996358347671875045779509697061429440767524713115379651382446445313227388599982632457206133681377543267112818684396403697932271598149746691735137193359016510045857148299226184976804578529962117266470307481500156516518619680294155140053775499887291266338280204027816478267452165558771388001941041790973140495508339753504206696639820148107875832011718371434768604239364169682567638850887917431909132695243435755018940500678085280914554442875813588565970262033181847324267974332890988120894323001923263395624040787510427234953014337444136933513421755176801477006485093980240225405867308855660849824207616251292846808733462482459548490953717465928023658851857602034553170623511197771951231395052442602356609835978939491944540686245026189483702727798375058965637533060377753428329390833230158131430770652038780227749451797245707103525382113949532461643378817567523629397131868042966455549224551505902105635174861588633867342725593378469720784937818203549831401228154973915853764614710071933063515899810680395958629936629761462523945841109850587218688191670242279172045916018487583324179876826911311929826891958605166186769607965274341161006732276282904904127324454878138719912407849309223985354781013039902872835738014571653267121510535272626132806871673662147133452507977989008558275879134858166251599270578294009050175438666505558487895426751909269749269649679162719405402188833788954212983970757658568001210302732498835901940655361993078813011262767317313741760853933922841918812369833866254352625669476760921995066506780470376636475815599609019297538281924795569927380865342844964223971502426237235679458788863821344162978086478914270158760030729256427040646079789319868703630179318632901195418595174856073984128325358691885130330850716578599522058547467636154032155837415138489051248813956098074503218129249431420858045449007793818357310331566858280761225412938215691205091030549874776033221281298657199947017966505249781473393515847194375606523873005927675997624351907520419477426961964528747653790925707307631362551369571294241581760460470743233658977756961502387704664030590068879735187928550307305108342061004732279321285373145994397167373439580677066424447627859479077836995068250203914813494743401491148223210122247637966902871960941717729714871900690840213676929908777358715044868833295684585694713429238563933206893002763681821829981253023532172437860424406304447366991703530906530094715697368113924381962792572362466272165945597328731361418929326282443039978438283003370717628976249193706455236664621288118869461285621257443509750227617728080033747451600582559072689691389984533414076750897512336501565875534719069915342237123793202564447787343290936589943581801230324070864068722382197457650749788095515027851288758840142351073659422862205117285543990263721643550117291405545015120184243366834237388447927430251838467475900101920352118812939757264663293128353681723084290659166583826716225606699790772330931835732453175020226343217908220405499398409322645027163086865155540360441712995215425458146879232695514672458432574246828738592950427461087297450123908471808430030357769736855822402928111624682682412848077783115048969355793758566037945461103056754739550043913386498472166322342054188347631296520530347625896619923691228306500329044854258689681610251472742109719044486647982832612721525676292345464377374659012541432319685500961949656446855421667314562235901198307925143014063610915330588173955469979698354201829205008727700432353292447486703585584921401344939061025468477540569293548165609739558171616331238792536919598617834703649571787244940981514699496738551026362183931396773843278247695610592814751870286630532082294459527159630276219243976660353825148125623649783029560563245698054144043490617562961531646440030617528991076541202614247059324459300226047929200859229082949505758424973167201516714807234098287694967511375858123452915302622889193240670144881508861017402200246236573720911889279484809685771176282922505109054922926199031267467635632277985794289658495521951329001812744094633500864589436092731037518806223845832394119131066585142948502295552719160350325497753148527015634868843033718120931290459865022848050556498769334108457300687211537750955364762040242745085079256847125541364600417374097076786333267029674674015328904531210447153396456191614682642360734102805655462437802183035858535254729300175152934243769935010914074116124852310173941517022595211873524645767464397239130339395130986255530740214441659492104847436494477885331924874704128937547111298749711626176073946747538828627621191374530019448662574124262249061928474189213550662219421819513791647181011835907693898249749103477767463783016769204996378324594392200182520696670619028845911224967734690873004835463990540690236051908911562231481691340687385886997537132293471030054120065603254834107687276704166997952303873388562599031177725345710552355871299998243448704545057256965446974261257337157082686370249049050643026010854131449059027514956615363120137028674744402176741019427909891989746047143524480601420796221572620273761256173020945821754209086236725533821738496672939800275281885674438929182671151614223616599057374640575838026042406111586212563885167360809491751596379718030907246678689093368724653371217762030185334142644378545106135372705148833363332572060481610841933387887072660105478472377170027131848444434156923276443905237259126534901926448018509578150787816221926883554404144602904528726234379509573979375951778106259398830954763524072589327582144771606760854789078993683884074565206122429657637445716280585367420489326934606647042369325716193320833745969392434532866227446159259626955564300730767890625942860955047581207067151580343280937032108500308439340056738689521943492900649120419268658367917794787240059338661679316178278741875602591554828039618255863752591098550119211247587608520754332022376822526815624265918940010005140177553449437634998970988421137574873065336055772288880569119515018615240903699389049162877439333914390342949074658402542259289533820377131950534374577985435364005980969904937822595254651378642923843820719892361789159281311867390293133048008143838234700453110098562494806220335876044956775413658084747240576733981814173769921697470534539432477899602028852770432317029596635234370677806738707456578294515299804137523120291820099522068113672152492076138299242718664944579258858657088909669386282424843848592876465187499210829812373081573180213796616759508506112334795756327331044333856814931419385384441145844035431275534348499423733193017561741900707940107824474240416544703528050958479933315594061474496496630225022065221001076163592230062089634808495567960137498948581447867116746082891014560795264106055256521335686209909107207061339568957952358119705110768307556260530064666402325219083633367266874227448550842647248412731784528023105167649770879615572843929484052310624498857093867198690558576316842450386122961919873766655750920366832447467610535869603191252947816009221502333716824588257206887378082171292964545128702191279936131805186477588020645208855135016541969479925200879917533268713357723376500833790738931713452287445783275097833777389688604486961936316001429614918390483258834771398707105807194060032204309179062655004591498807695330406201175615896145275383658801215060054332538820312637300134453275589453683125166626976628105086592044280669521312218631048756511486677304899343669368401724429096552003334613760192193630347756008633009113908498735370106038250550035360706604084809816201771401568843212495766975505194041401480457432977674791535145296223041476052659711319023680800082403377246066180474712280257202612135824767127168289848429787021537302019986782380411374621631428811833785612831508094167631493868810780587517897616019753906296907376688119730225089995678776771403928352194453582219648367252624354630679148328332605855155064370499705189196859752195605619339237841843119155570498995620000207164156957203416472358825954693178306262550392093421227947212797107801521555903438655149509271033170231601605835335839102691108613559742227145201299787368087457784171855839598892773631519555220630570496641080804702686124764191878888684556407261020150801653829677417793691862961282733261755701344375364811418353971268375302107724725922817272261542908013794805574977784645121755401152137439505609601015137506225558516945085135799740325202756327549302364600411432034309961579562945292357929902799324222013990144750959499109901149013336219176871459709831079364747173809505218060748973556387907977977920535343909050598769663947603177097368958732418316667176873515951592514679103494937289075820699404510273698825652841029936239438804050070109622103005176310574371564506377291579295341726092956375765743967971405468100340629194098909650740984349454947128132978010778539459771822356349618944032655940091857277422138963645145479140730436290209573445717323174234770523165278314423777093026919221645185429659193747344949424896075067356743501571104122719414799669220636043894998717229948038105937236119675301689417877469322581796630501791207973772185617669806260770978179951934736460693421083516161351628256548442019753534951821926998056582121717744071790036422760846138825135050575345485530659294613179984813283237097239114251159072557907967761236576300815594512090054210938402530219253814787172320972099358527321986744578143872499840586857937519094765717756908889243579843971973364380882460961604607283169984291252710193641770201802258786618822493475159055728621026332432273876651973844395721231805934946510740874752614641506673264713013892799491622003903461449513498528855152231732899297389263429132461807638284098665733236960628433186612048907731467507277138683949087175877711581905285444546770098548295486271190521392355832954103790986024063247633939389675122391867075350975842505889772826261231149766527630423799782946767340671779588936971124304080205655502560440387545832643784531798464226713481666367071224108326984032639582498063154183346977396206170193822567570616601982744915727616226155308935387986916913516051627110360945505212539984560727473021405520103721975842327642212955083271551215267681212398703640974849607240144367353519718993871120737100714615137964862003907302304142392421159041491564918598496033961412601454883069311876665952542102342974463901943181795297305531289582867647538718700334460138258566465524174636332314209067497966604281792454691733962023893363200829210424755137107075034136176637804649591554447299696473637886785364116381532486861143900820781064193800589534428638571217155590692985241638373137881733972053206117518920386966421814968379749370967263704273295167943519803774279032633733977262981451184653639714823507665993102481168517413187406747453735823315656865204860839460715553866882434616703554084711838654253270581684223546712159965880821585185987460759436804713407398837477467832599708988136393943117051195520316541274760624118595328210267882667637742082359661797536722114238776815189540669012341738364655696967630348461681846873471255148434134632511096780618427145616870207994645059232482932584374102107572831159516402929022693604664053427527759506581055753775554245893412292598468943882034807433665821680017927750905790869325215495468998704917818855930617650050187620376384720324349776618843389242521332286438877812301222230293502461284122344297300300190893128131971694044875681521630066416488136644862676005212922611016344517480303584797904545007448686991410811936135817864712194914759829187546923816470541355490001468846218108028697292173565947170319764451448653031616284780504721074853986203781877711376230944390773185376267326736517597150771610675101090141499737338907097947060099725604288371185874380902044114551313058991115155597543777370293845487604976500639484054343721209935327267934853557640340865637571530793919191013582917181502494215887173027134839917869967418212906541794169687738768032893983835470142383121918182131249647086307713617246889508729761922811667644767944658833158729766320640746739970737781352763972442358928124108117452536239653191114543066058214950760696757491321180050429100313125942494907541760805437618348944634283530250180330954710931074046224651346153081511600303133497504861299448898628840423519510649715001640782999108122278744892977828105341523934807490839229943022941204765553383778151476225932666471360872431103416019736000190387182866942582074731996694311106339170025915536076325116682648183213165640543530212584967990343129964642480312555299153141070188416226854062353934773877762601271251315876319112571758694935820438332381471863972119225737036987469683803505979244198889824796909527755299511618995673153080556483582926873748203544696631292257815287469338260279527171851948341824402600977946768516569645507831155979104706787742058617076624821379762635213281730003777740242946186049377425090807181068501979577968582645029743650236771572162865158469791613105180775387147123267128845822884164280850548202920595181667701496765012885780971803638298175005126995707047121103947315317289123266109037705492216062139746627451801868332789870480162140602670545738763017340874963642193862303874371474943195853369432956580625400759071746430909923241341629108236452900731808595494240582154753353992357286465472520651572707828830684649714328618838513129346314691093531225580802063188192357952516723370472564054146977149160829939036971972943838483994653755838006461911518879625047487621613554222040809659295943626887916514172302766470540402493623253015677977658379428301471418323289996396991463939189563058359377963397552972702111954996745449044803850836899564128607712068687071220941652578119688301612069503332758943314245862194611329066187857075515362407873912263106011220172799841434245987736222375667152512572539073938745455473625065600209462782183504372174623151094890484603131328256168721807352443576878473411847650432178449279908729343874059388195978816335820552091146993774200615534926342842521451421242989313946120220694358898188168137443653067836005109601204914561139842622370233263090350807065317716896775414533293935453623848353269550341150301438797531589775111435901308711542505180645874772795955179691448854967801110319695247299203014407563336679638379259521219024070634521650093882633139667851150916484227436669921526569039838977504087894453565531266760842494717295521501820387308869365349294571554914179356637206353883225029002828549443884567991398072154711092726157409184778986892516871395827522100726898701139404400168121907030604157191837965203761477500370316401496829596558043818524770091008749857885151423656492869047207594997167432874661186157223067547217206076545877155085519112095232025882966086459286240518217049037517182304906606456534561238087232283813288870744299384831888916635903544074676966306480503757494514183109536207932129726939883994119364415346988451429431085117233241093119640807745644024317869106172539077316003724251079408767626371145633652010599298328088399255639358889521598530084554489679826995442645706379255475492840537637110266271858838497372582033612397304701790556888826246484478206844444747041952942393315152365790828186943125479896447667169881912263767928443346303191218169278649595087336646952819459476153045053212491079589071034394909456389990759670281326694610327035974395634527819518884934851280763435099329484116642197836925112900726570573662865314734688075881129114772269845943910164235361598898940357650218787004620528471094654003867929737442511462151658738044101038159602711600759975595311198604950289412237376037578762900344940825407519930826773238637533020376973315247835868229852423514561618318095802604703804332212727605608929719271725742849696203877022716821806795660644675572855793958733993438790304461306023960261688178498209616590518124216002928987488652699123052313062993314465505932955839476141038506012390987644040372380262348519940557305923395900257882822038827612461798386709254616924599165980871188342285286656048212845129449613367464229190964209591230218096074212856313379746140399950112134365081181011939817152662804675908067612346593887153291220483377624426961978196605602296434227586917163369571103671018406592857529909725004734401890601865539371555948735354124511005529545944316877673269003817761641661834896345636465208559636249663248643129597966539536932182955548861351237948888674335889853890312684377229338985180062379566363307674041433620787716333775518635435714614373143389398934503678163710675561535275342156280602152638034035443745939233770989586121947795508467422670021522534713455414698066243762130583496675882634465527478674417254794101383900982662178660202894426654901403811757500907454327955750953739028868380193361009676454075831046396019548119064426904314061943662497226324289854066487480968085130965155732982095420127202764074189709236492743141844050117797984534453710360027294262637474156879310581505498606156074888599404388731799217312212366972731304366299463743552331419779693055227149350236663959434514489843741577399454809934235591304375993923252356536255605537410834527602703525721152178177229728004290510247743377243903718573437358261992020724152998988863773698082532434050740493806774757502680206310202884296880473054140157708298038624030267803698058606929724907912311883216859255653657735006058073675485966926652492442770390017460189790474616355713933725550347520175721818160614270648796277348120642335935204404882817628084337957589365695443249345998872402710263596895676377535492992977556039551621911306979417536338083885460269353232672793268801598730851684146457224665608893772269650997249320488948327030158017054003265415182455390642228450220075205514062744691431842303332309449641456032377017343450557131423100948144244727100789460756045093468752245754419141203570147081703669164133392031949179910358091957616678537115934620044370743154282843715841589302610864849679631162461082182181208485874930520343517399022493427483799350969257162774760063359630871772276365348800329806119321593100029145660815141928261413030826261276304082988111387690157017890708953204834414753833861666625296354181857554074312269488596219660088013599193264948567345906289951735456432997050874322781153505072949877487756274130114479844114943571000895897048994459644752984891691866772108191315734803006578820598868595634880567381379906918362096158153792353748513942319294843384198269258313498580692123519256755221367086529164374977983154282985510844687629509962094989727835153111616328063625303217263455398657317334012853559843009531145947509644593797716500990152701470314781087962595602772320917834118828377629875383116965733132957175303691275614769854639162559675494184859473866287515666193647087769596381676032307100219099348228608645779378849337690166985045455243396842582366355476550310076316096561796735128762617662470764787783724329122354818656383056201202612494000175352019362193255968891455056077440252433600849491000164196615805045807364330732567663530986356831901619099533674725164878947477654595007809978882635855704238726694701369509307766439127947412064012717817836886482030979006685443805291717130887566746550213198843616185168282296399950945082616678969953707454287738442925875467635724185028641498175303316331326029716879512156689682525836572905302982239885714766203480062717478463603653342967361655810138624192785400112932451997140503760705426845429008828313053475959517577753698911701903846071566970950541626607416973687233208203865511738917594886822760904223809473212845132576089640903686049510831137468970665905822709201567655247885091374292660068761366835651325799519969311578872417396625795533341367529931171771690265911046191891827925612898710793298786109894043614528710053348090219606122510463766281637440386591722247422592228630298835519975556975946633391351435948770103892486129341001253023466862301183636799204329674480965135698831025031262959690805903093215991104492937383137293265346837042313912219900507348224242850644724982565974444795416263268495338687161946980713381559576897458587906434308073154164255654996717161516400975261062382463800497030576278844419739042833699151222615965329804435639668124893257911174325408557694797255631305117119814694738784180385859618012805939752057677364473678053339491117749042089495855780558114815384822819221555327634366303887312526974392145056833660233951662231688375782986305410733706238356653478611214530547187267385353847852079747288950171911867254446048182080400837579464262865737381981605955842046313113362257085538838332156598536288421518649647753368393448384568709250203694942050778291788916357565395736795487529161355059102263376916578916655608059904613013383985737135618102932234435243403583866056353735801609492243139410681676492492073150651148226002161257845913029534909458616104214656250861592268794777223683378048263059655599287672935325061003491886933816531372572743390877774610545650995151229705557460945286836275169024113689622347935859878433094878007978271653602442711362932910951171064423987598890765281814765498394334348640413401577599591216761809851942144687004200638694742764860419811061356582848301562686687181022047177461752325830375063517762499089505520656324601904830578319907042876247121444222838806835016677739155917304582256402593360455052446986234235717540816355748658630189306852453065481838254500130284772499434868052436295041837445714103276930455253452048594877243921586187041645156402055582277529373157122527718323927044450943215867987101656543181918426866641418796794770193073003256195670863960323724071525663212895661910671134117143141991077249712919021424163303804464612045479626195927428919345592201378342863607278304906609497384810579084275347864188478160984981506325489637800802725335846266833240251536769945820484714728778008446696269834218348022554117409024123205637614714297660099522299106489095928383326229693408184814350235347007494289669023837583250226730805821760264166905970881115464633811022151294002742027230804408174613834310195789781448789192396219240652189847078390867122069710035859414829685008044118770855277626685649876858784727274308954246054883676238627128796224195789694813980515636666989855840713305846912086124542107710088376538697283687050390476174004770174039895942629418382998583222084807041805559653595111440308169153972850373769441809477255889965454943952312278649087056662922507036925108120658129125534813649581418674674499984518216106575013093660941776412895707993831476955732223121324593349383005687228827417860218619340206532716816627612140816415665316618114359106724953116271855132605183207702093200281157078689553522426137118575095597446296339062771948930966057916047512145316034510791405486417198325955229840122958740049075664681277498975032875250737240316682711742309208871519848446010394349887371226393227289589116452591172839340109582559683171075318546013254376876378506834650179356103931507399559583716297958076628139397481853352575117446681007788508210926687516965604288944045205747896376212488070596651089757050586573564125622875590395355188331496659837786785891123472855774488653877704362304618898855519525629309449626932727621748500658884845369869053321252594971532881808682454370885415715804130603517135293368851157633441523520744793355183976246353365688847203514549408974313092859111659164901566159055972372063222045330835632590385398816878570425637256169323127128083698388231152536473276614112248005795024308463283190893693952460862870693344290841479606853708888291099806667089924885553546252468066455679713410534526826819643886532764459819998666491762916470457142904980422665596837103888609483918629909296858367309931067362012182469418588407619227544517009513122113172652148751617832025418225073116914846246537786283560666003095651199143206044370850235557426087596522652571079746656652503705570561409072103779330549858083641413765009853831907248227707016853312882843525797537202662540928978144254753155073208355090748340794901272885294918480682092989717424122139294901553007132255814052864629562860083823762949069059095035546099735329124514661841631332259545899016048829664117778657254768043488364274835726097617761173227288876092327454392412875403669141204015933558103223863492271487515295149431597310268793458136279787468636242534805737643315624032065547783381418967002299715799030150359043598471648197861478780065991620943326028834045329785827864002312128917742268586763971273636453623111260002538234364553194795988849165039296861053299756851330796735461114540280072026651359188229420238877604114694264430821347759928550408129260435372271517271311011553909183886899736268930753725956895683220586586400334453889161877576802925128688378071950334700024564700653448518887703305768570070921184245065343279983455010568736803100571076115749723831812491085838257178250331133540274353018989232377761569141535291431345207713410918352560706204296649296368571762643041235714172663481645232131717931180635911862169279081065666052805234372038847775558120322457194360845621504763671344727459821546032845552942460291780053334317650785654600054520622262609189115817487130292269706270805313326069369954038928193605042905753209171290446318511060800988069453342808340781347076461772560593989228209120282937292240003782409960921584411639765348052200054853288032106461035716615902167858709276947123195070466008628647865760206392572091068504077620865153825094293403591038761840143125497683897479703828128360080297179905174049806399795291889629324620698637901168585894944766000520404601234708726557374381903284231935478515980563721735337024575525061474739440412575557652773461667706214156345679660194491786083014508835723647404665853704660712208097485185965435566873161479710245078288031264779858494170608678327276549473356306275033034273589225932562274886280924434119253924018705628892491828898928172863608469143787572272519834535701399016899848479891474230797537837786697108006692383255669228814986588031689945438627809489149396647025404990765704110659426149631167402183414871405772792492875957087947059700687257641102179960707090939427019851703759181222224491684925892732761363619874681560982763914544756450509327434139099985913630182955575824024886051142568461140195245436615084995528788746107077848352361827125300320178574406991884713849230595371483855704311557907414540657745158013968101998688082736859276166659944111282507415984701861907369496272013110310091956217819911215615706472188832855882035004989413586474745807149897339856780169236005311781231784656464490218085059290806840811356965628758355394112834967592775768807648267835579623870312323035233313564928341295822772131594074781886493232402933290554934126207117091582047819403310200685163162069525654552177442431996096533453507117386652804525820579810360701563563777456094559494512967885667038319715950527263262969249314004668142915532700641430732941682318792201705025375918380945779421022499084251459692344888434673597404330964632113772705782981284040943283941969115389661286145826762811156575398219160012950184698740016498718262736611616406596971096825013581107080358981820157474382889397442048270406473272263902352592866103307700228630832091274336503640138085508175949219539051366707855401739478379774536149583984222487385361918634387108413587306976181390787024141821488651506196389562720218742295900050952238405242861231973967251469483408409025156952739789915226906399940295865416790346974302835986574542626634122040655006360329118623109328472853948135403398786320850849755219240616068989420320673762447526311685220556330167478924986002965541127761795373541336784747948916686317719786474644142753597211757565110793474803631147334727158554410906212488111491217133148650688074242511587990647999151826159700698225033168705231218997261562037801012283840410967348507064890400150920945789741658196941472732596237246864498549853824784497969202816887771198277430247801813640201007699983611042333489313555592758532615732179413014048826188124594745949255086555318504094213730492418871953003821478032729622137273688589682157806497581273765726741173682742575429389524877221661878258663397483725874588154041818276605636503246928635355850042045634904807508162110685447377316904200848966317080474181913439167908182406791058663516283823069213846394042644466369561812208549372325094062728575754616076577990942289756177792024083982225802453555969917302985633370819468041429818253418512355954902280653712622333784268342938475264722301833926030249690300904812230485834808616826379524690950454970523662339453148460383771296512574540476664987947113428528873060145839336425018810584608215014039373478159957333218855240677812644864438455686871320237650216072903926605763556494295270494998522378054142454794143531070905256781302381671485305028066717186205575804809448661651964872728557909440952590753571990347589276062924089027524162567807675833641962322975261637120787548871446036585370171365177568126869368398268123936271073589453955052635993018118683238236074573220970237517003351945771871697890679763117566890811401021560687212416731120597987732046329621075614152993950760226383370605844451620118682400892551768789459864412776293501891991251558022568707308767495095182887261522598234003232726481021393261538718985205528536845369137278810089846467734007111878297093833632619576559364443413093495656335906028085545877897610296401837790574425988951382566073865822408276202763352640739124562617988540592810011067524860707912791713530838560375778841520949269075626340389095554105398804783608720648393399631761864888117293870544947738543379934693297111069249971863583118420401051421482523547725152868478253667750309852900999710163766034590271728005691360020209949840084586053300906825291014067323569012786032267781677554782483110194294954866880838727296217275612515131154659466431624585776979419688708119269245847929347783294546203836619680215418238034855078067583611759768438532901896570326202550239288831341721460184828164870157203794973318885783420142788771392857990308368673762552214092971470148968509811852447571048277214553666029323647158166999905793504123052482118945858090864696653654322473542730584519942971033141838552947417529005897167725422520651868439767312940019665538228453661698171858070997759294131446810274989335540261568415420589744682594832268836113728764790185825294085602030685258972280435874547928916096787231957419244301075700731533586605655938451409093093420785638077877616934757650887644959996199489684202568358228985512936259746288142832530195563146965967051407703482494741932604882589068959184256215210197282993289156348818133278626085688724592370316396620430063316113503479567086959360044066150343023246164352795431056049963305341838228399484535815721682148713632633093636967550541336921878482148076601900501140443425212851263397533406827332764329115368167590871743202965797090831807157361764844310020481076778889332823795963702945923283253648889213308251313512639423951680549924661190590896627022095235623457241111350253946033069893954419304940580114488359144708893399914637516344116385709489303360608356586323793214183368297322463416342635184503358967254564241870916475191842289851950819627955506551557765483620421448343114463244329188570847861624808656230017733816486225791003062234623616936849020665109546344550025152058631871100612259454467221220784110078787402277482312562043329025205553590512934191865571130315665039289685116735230353090094915863905692385038411234825431169367005223375584540182227798826601757255693111850322843105939800352572176590606191438251565687237166409808066932591571865850537148552453853476724347561512805240225692472172492847960622090278744784464831164532678508714533262975662072645847148074073359061412289092414952257055111602820435395232884450577639274653514266831144727297235217805048266438600135838556125938263463993355075879627439128432683632777361457545498423687912934555094029738732290007913958733610046542859955591011991889633109363495475254550946267015226562831431745829723731655260951653030450867086729018423853958416345641863481774773148748930602953390849747651664003447484441151116833114576207479904775590570361603734592936775185435741947364773488596710900198327515286163044508743408201934577709995754982419900426422599512769588492114514724153599922962667836100333163127974368510726122212936645593814938787607143323327358305098373795767076227987130195691571494360526109728466033305626311673638150854836750941968465665703346738242395869483683025089320793525547425874455343838584518270914289838990141739802194709624442707406571252572162825856689229661773340199652313763149022464072535988708066891639617147352933088221286161400319896389860882984375249788419443175686195723617972627691560852555723259011528401508552184243826397132355623307650697563584904444839363717532798929339023195694397260589536946606549678945882341331862721232498004592151848480430456544359634532623651248219258659897426796713420729276010262753162070339614354888930599654169620189598126696705363326743422680646104834642150775099288652425483899748866327657237145205333493185833265527812752371344388695437341089017880150766154274824354257421420028622873063391555343095907781551146864380965562493205871860901597141613003524576847190638761256262531158941878032962936994333732660113719804928870295697973362088825417656093046701615788857519625194172444770566542622950051542758533061123373199509712715182789731409119733368230112357207968307223922480883409393688497950388003687161446409729825572254794642936831227040753568709394385668563068432156091566702581912217429681156139598911199104207955284010564184676418531935703143461740387625908305230846425457172961020094694179997871535192525546031192235539978048026633410818557673633041636300789628306946034117090867929145657353894256816331305718267696252565919495403603844769112200530969702838582069512484619330590626836859402539677670781692502243813273027832446832237832132678936809640457945537081599217176364743746719866565883876515546007734093519279825954439795654565228299502035186552144479768207033936256739297396082900563455888686359331900660506748857768088446111797443228447823229887066281488505210487804883337978727127985872819663580842281411967334801907728688703306627862027821863552959426460130286678755145867328663364569675785469268174441467484591534690874161238024223469408214928779413615472359237623942454338959555922231833904224743964437985504842932064967554239968008736693294742902208668086959728168160325939886974124504396189457894242819468025450143220959246807222409640518407812465731924392308834470992844471450467998076161569689515767795945499300513129349558233511937086159255737664425669271170004946921353233997829324635725073106277161481145478935418200371188486003113684717781605577328429332540037035524813214715938971089753002155383898463856817918183512870450534378787329052301373069442447381540636735076203136149490138941968685601454671597467424927921671940444617264156568949279994383436495602200227053865960151101333844176486237553910824136192182508289690488861422831952358085392800269109803892206344709878284302213930745981885253104017335686508510788289690543558760480496768687670070256036756352198081495605222999982115858069374561819094003192644943431869106513155187193571787584124745062776603620635208265269979805931196258618241887268569982620969621055623658160838060427143516291504606064879001285046580584370424355677935686843570515823971203458733886487210741711387380902835171717667880018056697971253205298122648392964131112294526682989073494513726783790955473517179275276006746017429158307155210356868799776548231437189304488435808606241941872747403614619682641454193988052674839121513166329470043133795031717099277742272510919387035441891283372680238296391136760304822326946422045444378154214835811264190507757667961524985074634941756648138805795325101897564495088398491856417805940208059795895489962274683275083973059011569655778340549977696881691344605995903371269353822650143019658929837175695501520178199085512662196626400114710431887197217954176095876159835237914020866637694280616385612440511236390773797757454101845466853165617607564694933042534878254367710188905409728871229427083913715496297054864133077221120697747176004171071325252000269548941179108021915007519431610838093034652518397512193842616936539247224805068720822264352321959222815374354774485443817375582111809434821700336310013679680974490743106328741052912582330724428217119365483375569584371314693401694092757764899541233164307780236585592381396708013252624394100385129439026671528972652527808935302808127227188921888032647764832079863477392580731028269010365642706525772047275490733677203365431724923574056563642831493613258696747811568850138126945038872833920439847785221622475566284581744154063549590915799173238756077563778637487685302353838697883486975586279189904203886427665239434063591214720914087037533275388934795872631844512894666111001769953289519760069023239718084912244543516960867723029543833257315947563507528403993198010788874620490068004596701837495989477715126921806467508665487096838341433482019827517291242154382907155939057842945824018218349454165770302207761836335828586532313357842011360923440642784836215315043221400995204978292461556195179562960903914438947629112106426474034874792445941555848947615000862975334219664251843783700472497001372934479790995980359581250426518115073239477082820603766709607682987010119637584283532036513791042410514711533296013370386998178878045183404200142308142236401174390079621511377007839728699586780063279169304524345630973034498604541135800385917572453337913811311028610309468135209958421110491386496574174168011414242210990112040245870604364464115342229367378855874559603052783082851350215652808621300144496299250649402796629916394054036697547941751540977124498843577067948671832589748869275975615148073676159227606055518931066004377773896311016399075254396783628586628952477662351887592084471878407029404974324259728259208956030667812951288348683925901673359810102136243243838101841286058386728991277980769313793875143096548626059512124543753695846749680695663469533463876653926554324352257501203404003586005690478770861285946335177789801525702639587950173987288534341632905260967059866797479466997454401297133647660342409888382572598775512733989084600441229408693014515071661602893062560303348640258890423906859347938407940236152756107949075093825241468191917775439149783593670185272527882067261254872747715872081593111424353787321028938207530086469926288806379124563294493087607478252623399526664712477569073041276936997651305902013849805730708843777443512153176239664453883777543848398497072355619701541002146619123888116353941175585415857257033888111818986291747577526507798260936491676967567130440099580632062641849122130375223450674296309031571806750788882031595195247481270074187010060411701465651933794896985724084373642756500944460709920948934803880824275642961840151120744013054616485858253559166919371397983525300347897654990210535672223660517439036740319112053531020422025287240466492994075642722100637692733610266239239629934798993067058501332298916318109891235139016163060487368195322589872434850627074897626588571142331289226527712954877160679217129987665642968358897109709636863342809913388241828385359734889784584765959607615558415729902057339290732477478085380482736381449663034131734266374962502970577886775706233494413525082313881783319825884345026852105318074605240354821578111523896659233831517314574244519943485856762411709258495201080482154556854727659309602545223344742003744579772173796871665035959623016103484085712955815603636305519911178873804108256049624614256803202378790458861091408622347661775097397035830243490355921971650458957940048581354644328825603856855187420974929557061513645097100836709989695026748811546618536901526181742279236458872781900879397353180286086438670325679063502917783598532812587313030032884908880930132528045643306442452930226364271607318210304207988108914593660654169817397586039452531777959033000380301310885462235379305970850423960586369305434835144351932973528030321571499015498366449163274892186715887688033917065826606736163080709900974531226775504174498731537929770917375919551805292379065809153798124481639808012732720848110778951178201946683781685908450314689990894638379228665299986195749595874737253374768909408548810110735017237219436492092676698427365346868018495886077505903163411305990998993633125718755830191369510619376587782552951565508920678264645510130904274004415685687927712783525038029456994693306284504742619818628409302860792567656910007725396608519461891875382698931888891582572119450328805078420146456140956055766610253725640029824663164456437928434775479673737184765778648165740365517425768050695261623034239230480106589141549842082979273039816620858957119734104950549374623471225538078899884520566558772582617889408668894423525915908024154384282192140029939004209593063061783778006299636813587439269247762453731274345013789736285037712026883283414335612736310991740786086524197142860777773599965103404071791275824117186195622806675955890911508476359936885678837489911192871751213332287220380151661590202576411869563994446735058860334080688010483324555023454999909080105909104705380146320499367402425221513248778633315237529206782507349561982723856295295358400942078206211947085229950082994666376532863783640185704808586640673700036167255100744109729829241389639341534113961985191502364242387988067018829513397506782667028495178860561113128970403781708436206964854947888187225368243149043340478791600073458677003400255272446659714950192730126914972184994599520935385353699445584632049408871954262304808735269069213336937402897103089259558231153372146819577621993052721254914646181919301309629148903645386918880121150825287691204023877560839328148370919403681573360499340835421648837511530276250839873137282229893088768343418319408220974188644146205793045697780200597060549765288744805721956866764416193403341125485833277616523904011294118061796323969583105677835677304403372131314998283877668248355109117614300718940832016172403341095889437599738838259463733904969434740827187164614324066858061905536139803147754793928212193505423604839897050829543010474587519483271051585597696271763789238387555626467649024406482052269447218508873765683966895671282417137659297421304588983398227000939394143410470427694953383602607860612112449834894280031697616048077150323462004062514829185721753516465697188632843779007615190801304140341807018516255191176177795473448401436261737143626459572090902206484250495208279833449292163056965997545638704519381230949410400758681409195632293174297638974632879853832217363741945916391458359953922447136582708151643862150671409379295216559758030587829439302229414155115233579865940109055057540997936791275150140791545245368131510682855345045915202388018479970264849514598911178754433623194531296177173833041473402720868663695216551689553586429334344415245998690477503892075853922317796303357230337055425035469866462637039808421219458429089422888459496823585007892699869047124337451165339774539277237408229429473751099478498952314965667067313149820344244991882397106338087127681469817170517418333984012891413741006469704088527841297625279326324272092834652848674048326052664587962448350711624093259459557436691703648879707365110977669313272622701324762006294832837707957995776325424973656209343723374768956530734932502460679607615342023561223171228168701896275209706551380262237105711348793993790922734953549360180935895651338357457683762722344025701205665531227605432983626508283085586074435473555456676631400472779181557504817458305031689085456217441657744745638048522181795849814091396956411875035460922348609886262628328757484318598373712661083647348066102104815668608943459537894563139073028195937307699178458221259256649735322419746248411360814936812020699537455287062239123106696921373515936131097461631772224074753860911866548408627804411701138343314157202969019051401232868569474198720817231064806953974834388352498321136630439020772106236830866115835902289829548632377572841325634532275009719188566002157824439793975499350817881186696646584103644313808696912123472036793408380301070315443426187705558482138276621695730744466947203765172319450351247470803644240215163410992431283169694311441184673561692599084196213804083401452608975703992901999625087376468050070748619304207402854038277010654663028278037396666140510794412767099027819283245987299939326452503609312610324816416373615921504969074421178484698087565541941473890100074938145972916849561290971958154313660969568726477250776782810910034983075452824793814274336561300544396222846612282883988286807710151354967578826044916255808469433395503367840395444431195905335297940493123190686828256189048647966522092585293508188865475049679277967107153210202395507845652518595792718055694617397709737232037706192971171760341162920214688935529506718028833106171123618174444995426605455010238634846676844281848956184036124707179669281561597603824262309350723355069263697183644707815708668397980332689548576862194929409520229104776783935674735942199944293321274253018903657122640027713292287422415456331899649999814276959635246411801480306230404335065952351566273706264499204826468254321018636823261175363302425073276652313198854997027193470748817589744400929925972354490029189620983333722036944450475489228918121937399544710603235093374010038804976438674245309400118506017367100502994085809690125237638793802339688392161928554155770730283534209622118157127660136906517548790443416761757948342197792199949630338412078700099385070401950795417101549588668942954301950323684403174072871061688036864902312610720099692652447939974665840586060784446188558713274048325980368190376307222672317725343941673068303766980058784092116907096105442291432488292900544352279599827865166906928207053369000812192582775983521308762711411914521550068284606635582651579677671267077135919063645378814838547402359313060109971391763809346267154679943107349009306921285156706019439452919565953939951376117298261820912072837506632253036604634046855172344042885757565284599600547324541540177390172672633802280694959822999389089569113153532149225406742516291365066681864751155381588432282972218182983518602534423842724262806984306089136853151288689015948779546783306076274270641990329489656996988305539986894746425136033270363286697442407075116704765442859774398897976230931207676743536696256733456099052689538800308066353606383969480965601144684443078471680085292051013178724777544030477114943155056066356039230891820143346093839143443575678163213159126141440292727863591752167094815761917273013730675152495299141502489462891660500909452089341876813263898794490860383362078564882300966557558037809013186410662229579841040597316746542763324834646602362971024814467069252992301636103279022172149404496024301145967864227711020804494430855510951965758992117388638565163544448427945555412527462342643593143846581706448167794728080605594104586075371582919102665707435286192481020036385323348543968339920648269568252760605512149765389649542905486526076203512268857115773782172814159047387262733765485862582157750360834422697666135802374746879667095774003370954127113672818863362706023746508160740339717246408999934219039963461354460613975680634050945840193896289572719461029989456886267004442928261067641117727621771414390555418576057241160121979825570772682963711192153324527667987685715397003246591571595374689432296470590149413474559768174610822218345708020449576443983272777186255944590187533264554188980025033354664249419294938785933405618796345120987896907670675944094780476898088788185903799782183571079243951797026901562976341118534335284302218860951345844212621488091340790345034832684233131164399299089444415810152114949484657096736308243369747543685159694009899181908782116683816630840663597166082137565623977373817706727775842724238757131343508068035518328264701520076321482734873550035226295865899112889708219883884622188091051140317696371958809310727455754230411285476102323224398518266040001453052693569960468717249193323551913784601753128505755026499348262969938958178480275915173315263613194207152838939350474426639990760845716413586856559831796418533227667666317058873186733987342261864009779304303616717564936096044695550880279836355396567021724803429905204805428306003788593958405079294767769735885728256295839365156557114376169366809822428170759087066942605131806289065577970645388455377088636535483464604188526303844146363439616020750744567335617096275910389567326351989401881522279415722091643020204007116807848589615152598706686856605760276877137202848216736446137436939689622821023193267029319572162575498638293886706364734607702227193774949983290295849423065985796044913055831502533385771108024174060195138484296105630485997456850264707519020168335284935432415391287659370874226837470351144692295787633128410497797131092837726422682193122684854773401890955230716468707913673971690947504315280758854550039633326695032708994060211466771607977791837835431662748988179843150749160005063695791489693093118325058960630437262556143263131541204577099906209992993524521731396709663276959792709574818242777542491373697522216920533531739778378786076221620878312218589835179610988938355601344988919243673383130893492005518478979495965200297291352057466500743118412916451155833488363801512435486908130272739500355110268155981458062140236121731495306878518554163633310053767234300572091511801417218592160965884645311872044212121985017896037318556427786779653127841304068718849955267121059749969430950413884018547691322603694508222795499118519857294549551291837064789152437737374059011147616652268135736884062008858428153057999838788598123404770095664832978949061420592956766739812314912013778244977007760463994368256434270602366269394915147235401752161406253568870223474303862971633733843324040908884142939628373680868642687880559528122338431470601071355708133495691500622208655903700416677050685334904025378841474889394112429070438641102239113918103861407687657817298767550611698163822558225984871612020283267552116699348698324093341839989623236502054100832289235263145636030230136557249819038594324925630837379394736640185405975778536913930769795044408636603170949089479188530122786055744934324855912195335955613577021240537335687358840614196654768400753806920851653193355638987928020644398188816747762730068651995827301810712120855998220383144328651976297459508663571981399006849837258744256021076003757456176433994391804875529027654632786409318471358583115540057859265461427275646610472870951396211165820199022475279929526673003918254468275960341802281317995994024672525417954522871248808548810492765937817647507420287710004960987448226411174044183234514052044630883647171012037480412571728475596548834999427565821326344586878525719427089591542965265605483840870838655824772382046400940677066008246274298645975349268168833933508558605912417333751328851887465378740688163180617906653217372182820360041145548573594365077953739158980126974185921730812466452363179156187540707012401024008778711886660449522928563601271767794779567184837398003475342517987971531590767739512988442090762850759921139622892380273416956942886314207685914750861731355620513111854890459178072772853222073227472476534388068872295187232714209684781878317139949966837360003483449856810131753179451523052007475502157567057708611235344141980173461972666825335099739559207774098627759567181971736223220004119029058927673964693998002152046871721562127690973768516431831500117081509766440236948239427796741843285919531224998349335281488456991270297048459876318082776031197080684802081532575486473364603140167813107343550617083071343977906499812573234919323817612889707766369897441414826700003912943907971403371942353264449396675780770252140946173479869059040413405460283657397583081911257050483290404359783250017872601023824321014275723232980998767697818217497685280555544356718434464848971092360084979636578385819469997983772074856395939487836587847280547625939202106161076861570464217263281758346916802904594386048626688851879245772537336000396576653596828918419740312767608388968387495875454593720929746964676344748093413928165160912957932369600636824721821837768765098813086484906437515496891110808920038181472813272049967510262708182666562453923818501867952589514190255836068626749498031425180240154901097056436279732139748065460180252016417330528752963375582387000624848193288243754325916476109162676932946819595978925086869710008444797517659879527563809833318291833232858671916475037881867974331772958628467299811247043055916064174775523337180133674374329500844878679579612786368975427351293774594569964452599529575593217382228021241309382604782767458399404738349038822082334863033926238664479577124397956027946386244624876564632646294042378884832434603492290747918400181245367801351625528835975378883478861908339505992877744606088597651903897908782972089285264774008315863866747329270612345987309031076514646101547947355935695058384571461609846517871265125047306566912039757730016485198493056309811340056188106929928919296635645198777576187265975654425227408695397884624883555813045498435478623390141489240377306722093584617881948694290766905289004283050908055727210888356119210594751706139462442205730712208997340058533560481863697275923136588585564626082945862795829808187060741186042579421504876395754284233073046901308422413051321046912806921786691961919825304866665423015807974476227159092615647700539803260482731218779826671614994075096713479775859825945559749791298270643375970528083992092667807883351231355367561595449716720395055546662272791772441654186604812997322772437100466344747122705006976016522424401480345736456955788527760653995443363500404290200146166876637743679963585341096221238490751073495239894276611797309956998570961287787413025149740846806824418390338337653011530533039617519000098713693342780101291084200466287751144264644595129541011262641928513333901085095938259807296485801604632575469525686044797976638319665703810013500229538269695364261393898694466684110295090825390674007919546758453979340472428456510032341852364937021496620767999200868574267101602357872029463804841218825366466250953080505911684207378975240142306147796809944775665052323244520965966979649345650013777971699161100586061190326031629126502866111426889722353061630771829393685099244372493504539457776898100287289358111425161018231338375807231537397632652810517841548946097239553105015758683774486755210447868834778499376935837510310912889954706760304465061742252555797473652430720922866937185186309894923056585858110000822314360327398315480099283649984905396110666916491241928469464891210972836369135216586355394265610829955030616042360343772461310334899316971808574209802343887386570422333960712346756746538033196653487940571893163633766087080251208166428792495095552377292415362127236940140731511258669194682998620120654288156049934470732106076392371079613367585135460041999761506814558981939293383602629106524322007538473073083235048971575398385418288726675666050149488617674439070891094012055273478609648496446297452327020446890361632298039374076344585274903172446442877741149679286145612302995008306727072590162945994956075215247356417314686153565256251872136677610786260747599609827520132827949042276845598906387225517632031464642755917872356779469793913326372232869248167545796638297533670544231052018550856998750966326986196666766170491165609736043843828442141254062395084079465016768893887377075300763786306919071505616724138333365286522797627318163440753071130421990516813672499675972346500083586441225571615233817282626715240901224105042674333051160296540206332166629809510769482930094700575748388512708731158334099215720079856307428656056071378338181216874981378654400994196732891682795359413699231372054202701657599930209500302322738000571347228447330102399529081708324977262385802583265472532500030408422170914357417627715839720802544993594061233877721853090988661419164327434625716170959118014084196986901225505831113570752505358445535976982338383176354575069294452742824035582487391133003640191321944895492846846537006176099668106380093928980343700067660079501609066874635252867963946664994599413162295037565894083270114930079803547865552469980014167037170204895733916193385290267745996855654414335048892889784863340222109365646863783214527124768796255071101591284533089142376809069647597767766598770916833949449960337352846192111515590568113196784914265891516914097297370546559404364225942554297457250628530747267261367223146086448271750419699775988121486356309055428683045155980883644481583616005146422115542788710235420968975434622679718926079891129970371269915447883444373947023070867243686278611683975708340498142034568420831514351021844837775279819878055586675851299566869255956372058004405679191828298196556546474964786490969060763538562897571138898083892525559670899374291505934406554402580739815183470623499251726809017446006426388660378548769755143695174908368975908076450190794893201306328656285914389637386294430047419912693724914644093142913279348321968519999704166955991739469482399497150058273911272968614571003045165487878823264498444663029610249807737913489735348355651304984706387338038134834923601295680103429961154501695573089408456013801242146504978362119657707923208077679487616433946306427642594795098221087272380086921285340331023593341551106977968854193228176768053357614314795010500817222816217330383173357576748667029053352464537898472802985257283576815126110376859403555372087359142585886085622673951927125025550352953694417716016578803195122055223339811554268145038167790115484323609313279259288368122438963198209519439390731424523144829017171460992754489679188215319894069337397505437617607380285233059483851565911337218841767139863559122197035698678136752523772809665560244036277922286697769122423755641694449257417081215200197794176407501266906750654765797367241551154616820824675041495338101653014245746041051429284534204957712281077253554314066669411885433018358440307476950467582997382934073009962668017518796488877047026919819570183921191267490842320079024736943612081256598590793257931084535546907215953850599459706226519349329364507433317333933267210602346522731558956164549157552596663464297625010419245313849160498908713655285509190600445582532980394170384839298685480261059777600682273838269940016782852828354102301472214776396573702999608873831627316325002488458811518418134251103519228824867950365350339277687235719844735463088919254564385466827145018848378971796332682991679535912764656880974076666773237027243444439453045934765196425206265353646121297259052387095609041413470705915035050429639776411322987852817621997915300322441987718767543747581712065563425597613815590511624536661579393691756871188269523162508774581148516364933409494541870837373120588489658607712340928651572748175532205280462663742780255128916082003762592179625011262184622155473205112732643699860222087156894206791873259782996958806605212617152338031344137235416264163896821204722683906189725589544841536602944129612252727970311100933042501612979714825661061073365186391781984555215183645233978248352664736367003591862180028219425367367013047924253587731578467357917248189323643041707496291371083394065203373869525887613074466139923391126825655979384299490991812843327939678569882673462189594313929457801516857257393021542014928496892671103442299504112783782098826900119263564457939342575050289390016207741386093740872721524833005344447440922390510403717371004226414114336300075577087857474987479213834857341059963385497377481024809558893259097307810648410115509846185899940390326247118681340851604189879735681730133078489171620824315815041887021542582133022401147333783482824316405840473979798025009850569462889832710521286306926905460225679300771275247719813478624522419954340385798764752939716287137142954070148062200482638459462828054987010335613375471655738604583987567269051182105028075618057760946839883802039389306531315466698599109263424812323093219649448834321710820648357910945313932685395973022704640858033760633823885466433440559738141020624484687516172900410590167504490507250873936644947534574422626816640977416728267066074416034788846102333538762523564142837920274258058405438077437624159680392787318977712572571419669799870035667684259713004213268584652903665149983934631318728885274496983415955603202876597506404844338358540627932181822000847864828273761547085072798685991809737143793375045926803937124438106414867498474162442622166139834654294970106520365248439162641203117516593543200469566059208129014181160065180471600094327652635214962820975067644675700302797816243675237307316266104885060522500109974054959838815188186491763228613136100437846076135934602829447056915712856306068033127634223006445969251570971476961781593807286914211688768721087953495908066975680515031133935436569922187526482606189089465844602031648803785355275695621930340978170206759662683352639454734784513959851457765374632437938840348842669519325423987472432189283579691864575765337280973241897809111600218396636279033872048076469727608239376322521630355155478739909371754179322358864376696163460065403659818372948242815963558656626845928486016254452232659856919927199606056965829409526361783585056202905596866017538511133399082505079220434423551175033497432431251531755697693214527481754827104041801148912190589845077422612140127033937432691077087979999726117153807639388980533397226396640222540491593758262887072230373815785604587858128251039859246332933327915111075932819751518889441843926515981465969053854876991695636380181248181357299364334477195940552331521853598718054155828451922738156525047696233556710261415033190203005180509767414179053671088502808277789321628530314879194252254573635250137131327188759751113261428109166872537533868222922406354019356263280824220497640566961665523651138849485373791603328012072051611654308847028208700225149220803293640608188325015436643894536297202817282892725545699100339721783300427144406318234864473441202833580115675115532622610633267603740610219211084323998255788761019738098144557415427232069449444528694649666998826624109403086971840279186086161548534485706923873147691331350362428606347280563760115829361286367359254367129067920982368548457858822937536574571436920129961814961866059945350917413381158285331310054270080102830509852421895014064341767525533936476739947698813497263223221594711135863566587211082866212889459153548336128470737256206741009254558264206278702617320508318884484658450072154727289895993965505849326176312680661510217141404501610660444204749011992017090237756482758289972464548090831100971367301485115960032080477672706101059882967792454429533715912440294048118641104578876530766920271553839347021806522904066226699768684908430587738607264844266634530495501433190689762131365090509250209661218028678431566847729369631834678237930113432654369747300868118833988374193907017910465066834859396538499078241158380693378252778958941963099459344887812053378614207833832924029800578528112390025839253027853067699233125711402550498668264581760352718053295821028301214413587275492952955249537791139863779942636700960714256909579355510024822237919029573258748055610227820178265756997351306254193224660784148062184777679082200797451043874805957948555461863243538227198337114373048270712506747974763863448888704262219798742749061716267922648309024149812122390206111946788230973872127758959068512944947465321762849589075626672441697651574984767965100040628403402487749541849000866772955928983404336001389253657362003352208826377398082541054045041616357859130516962776913113395466131350139822651807869504844678491470822439962206960109795962979027431478265887448811653230907715572851369105599890714453242172293396210328458745026488106673935881629860732127452448640322297189401290285389350815423972964467709724292138995906126359483514940054717696845747560044022292647317980512636112411258541930421084832616569146177213236326598766772789218384147348173095297687382195448678639946294350435836531851598250888281645430711370662877698562368896027965688928512085786766815752124866364610922861305239889848800955212280689660265898596057825115353394019171449537469646260556791769486132956983156957207236691802372614415400068386667939965243566684485158600206249568961839769688761360176488742193138999733316174369533948040657811195410645046552942272202187096098073292877706638085117121713804969774100618529448064601809895264695556897574483555259838223137654376660744224353650207790987840055416633944471904470096214395118181207988941015910732183130342697962327910513582809559162917896406153442320875903976439858847730458599224156200349843217804010903471641836141011041854808094806912105099462153299825189137153832594302929872934016166327102875812657526035071626471527176449148840624051654961907197981796476758072242148603642261116002292253197278497583792583899688335446751886997765679376133894199366497412475198716357450614478037821278904985552698863446939147532255349581705296937251241384848484768186658589651721137695240158739172564193347065942887788289323879306198639438571784529847551945056447655321009455056657251434546532970117271457881053669673180624550872398029923398939797070883762000803456460464871725539600764584265737153866507066043297434270430024303634290503594908720996027376007915462813003131728439031257151732822465126623808171808934322520412392482106858650096155746941405205542749589676226299859675935412664080863252773618589940655662198081276467063575520987692194578331581279419533016328817817603553580589947654157969054077942877050261507221471213048033962812643892407896192915566495952873125322397786908048796562189299272308965928012307249317783218253221660063099803307622977072902009045433786065098691183653577878854071609976970655263028522045025996230287209652522053159918000161411093444919407784979498289929722384054564066387885525054679407204832787318379230226583192130295627654633595140446767877850423723789459698170066272645253625130480163853817702462380778754481226766656823963391838085060243833595913448027676931887088989258752918181533649301062557166743489101652833100497772231460764607193683660929225405824255888125079572007417604777105662342223606950926192862110728304601504498659678780089629338057321313444407695144560606064641360289230507944652598603396988178896277822272063358745681644430032139334028910620850264564435452371275149030329715303677119842484000226682621462705500022372243865963525921254449781985592867511704007910779006601771118299462757263069509503139130259405348502166421743930240666757052307482330917749573651993527974451226233036318551803298372149831812144253107465072860504926355069696860418462383185661899323888281363605330295874122488232021845419311436640377309141116429274946663995491099260153047778932008974516386354777923357786429481445157718632272856420131523702501844720221937731743169455471378898553499975560484527749726799743616742254854808840737690995908370106266787996969050158657955401524288611841678664662246519669916442213197699962387008312667237808208021775439883278534050352242744981737381834307493359156688030984766308968723072061345146711789592481204409214338549010558808095562995074442565882181077904789668085906452652421693236844550497831737204953360085086257209215453006675920422478171154504802810023562021019314179166703223024372285991712886503378333164881332353129727348884788310703108918629197931000201148786346441925108669936890867367405600771544522111232151159997480397207699692800816189838797405622043806469991528082643914203031296337173527591853760307126652902765080287177918831534937306490304835691806092943397949402517805419504073427073462585597844660763793718839706918342555576138125999632193426603641898448419755904765725270494136660453234160635238952153483146016786091272873909364549536731341029846597518149632696158565442684974588136992370210088237697596686088884480547008446596398963225970201673556197870958750473923239260788730337572396391479482235074378960139220319748579344043541727706305697005990422900999547139946637786728914364196523250801881443346431112200223922538646365627584218333204030955721993177153327071433336055719667138409121185783419122701251526737907847243202088893012520487824198870640289926555979347937226176165003879777333777157486700719142333735574652525954040847245636321993537271572154801453033717889593769564707398411808525845245736816964160304887266428655583815364415346428524805618328942047608779728060232054034742546297590921324186667664540430140146736957291872437121705219795674893638743666028148838706494547459696405083983123184087449260999818631916261414358594161202322287924575449493872616673061623342598095536185675397493824535839798082082528089338572938385474639650613459550557908844426938042142991155476247245219994544033185778852542352538569177192146574075192743038164699700119523912194536952943450777103654542522696586252291248244099705589034044325663441206299777245026457030399341434153477638614181636691467282384875111916640949262300125482574243329737669372794319693127278070503522998185927212037674818566347719808749733538199775026184889127447053372497396475177306037587463335839704016842424643918770919744270347065054985370722316638563046985374971148282096941052921548975295570078157012987977818012206144484307602934917722627897781508900452359974148307135820793866798084942489407347870487262431885026447063838693767859670841644959752731067992376413359154231025303523353912484483950121928430567795942870927316063743103471005781360900344257402584723993881084970718542020839583073512411677098504969767865912409114735581447934837557640383452315498332870004622135300415983313585468461983276467540053778133780656279583208393654821256021824934148615967577336981838642863852153633812825698111888837624990626629122809952948631743647911536692401712824331995633449743421021093503801773096838656394941837249136968495205152872557142293068165901853660974339534146541298454748290088768864327923833592686230492803155712672326139679737106281639299019009101681742412948516001263362461882841560970093246251740393277513381000907430979405581682733622862843820921233734161146834390517609073395680163582581881222573043127503158939446465299084752484785501610098733229654906534518664732710631705511356400041754567707489704266726045259497686159479094285482665933411868522837791523579836421914056558590835693087400014790450370078689134392016467724435475045526053323985946426473897281454616569431637102272521903532380973154748736199202293325495508580916043786424266862942189843952420723326151706333899757775501193962405035409685350030792408715865148485809615147355890505324547507300730996219953188574316457985008311299745870940537320828168331181773825579128606470045276269352445371000971043694305035105857091146751142514982793804651221853443465360978996575219737495501423604452043140816873567579948177938158334497122948959670416611067448271052208904267224518030731768317351743031998257363284435342113164215310764956014954919273009830089188730364380616693332774033661699545137644440530454808401847657351990593187077211570463301404686727103786145390651866933741764543921577530706065286872467993357321766085115126862741252425536996625847962791768266028807551330964209837785078396039692503259202828073391164441722661533482446957782465847700778693354046748078358281952024140746461200256237781844862403867226900686040274297309374924624923673259929501737807224806814985434279393755653589518631824582532850693381175439538107788940065017601599025572066367631368744381825098369717001250616193188433346804340656069956407378956841362398691574565631140555341412513959214585084519479096444252080890438363412697628993276330908080723960541910288638036994204988680092107866591534493090191831528080881185917040569993208460953796960542879372914790341352535127449569459838815642728536034683739256304497101739061707051480384671046940161583647943663214793331616974368706844673126176956560781831201334255484517670817416309698987492188007033198896378482773018207540597969151705956523082690637829300913621471990148533597663677390308928583339237217906452565998395938479389149353309596696160904506978767699934842238668249410309742581029134074688064677556214776675909208550604616719687086347020997703380344279374882152846187070018546584130667913865806426311550065736904367414353952759744667755485230078911657547102635041315821107492203338939034613987606273187247213213435005335705776754246359954930597972125102494539660348742054117227006896001540424780053015690731137466643850901097722010667695268028230511124604883652824373972177723323298530513910346008908902260426058827349508734167539671181234218058961429066080793271898040709348433990580441297450046924359861671505260429984304636047253184814663031583892721954788512830479405545973206209486855346136560258168589190816499839123438160013093533458372587592112828721239177478731948826572725752029929709767783687334623316405263145485366760391402018230754450655411077279039620477279540636807788597751993144280153176183812865728944467099569499065898034406159470022177818648355082952555318696694069105549764852853619212281513977053623842938705923920432057182990631019119610415103875616683372643217407227509521406729275105241417826756063607560171130573197596249064701322141705009380674048680818897501398063226462463247815608112268800581730571678270507458874197971841261482106613693580879011440335908376289503859833631690796805463518155925616989322731760622654443917716023323762105672092823912405839499776378086697821615658504593243689646825651790696873819995689785963248983915723657711508164723618037090519664865163085326692283152077566845453806510084167633417277526646839494342228945369457982239674882121318931787324833692102950598382673247970528747449935861718057670043852463616227195490999593780762417915676173337714135637397500153531866167666633996322427417786846787285912135362864717483025743799311162054407986076123646682206529642105171337658565534275194033458416562832441409096904123006915411899812795899455413336949866438365669505000200195442545140420898208999214470215328076829693886366812524427914742292584685037946025398353345276316198815110321569190457876881692566455888826416279486604202423715841634616764127741549991080715391146337190922987790136824156642196552387442573974695064904339530755896798365833132200199304751869139879434081715116771557489698824625552669320520485660160943569635318405371349427736506540737894974276491263196068171825638899098768906148663760264190247038191571657144871481614164619890103186682482084890766618858448381410585461198638289981261466469920734845728824767933729143357940516517510338861230512607849148315400115054714502341653790615828195135038396576187822544031764646216862535534608863995715487352080920920096358598279291892357015750025677817724863744771060638060698248628241022351540222130499233618413974889059669223195717659613281934975948936490209370532890440360406618916424592579016140764867133048983290471713314105606905087414949352703780556832634803767571740275091210005114259031352447682802845568377347506724321069853668957337909382587967581350642643466387573056389072454384802798700620263648455834458543951891771950602527781020099290688831759028592160672923067755409863228649323815112182215705549023893736921514032822678283421688170423015237484701025061274547981514807415772486119359613210054970072371014039458113196725145924383551068490792158318507654640264453463230578606447623504197275218889613682513217503343780197264804295233073877767848767577342132930818604613008263506199517518881427941378174978469527594621635183257741223740137879469184835862516154172853869078762558913339564120296881628300396175299522135429405291034529393039411444113578671417112298578676240153589935624889998376022235378731073893555473109762687407211892968282993744948246364801962559625354849529066231851929931333528855637879149888747955834694513315273039007123641608458812284534143656367223225315962303756369439972769236164247748009559155671747222658272014917678397023976061226233438773807250732413030016720050829514348212244997201275214573699486992070644592927569190488363177282160028422971963620150834070908073898044140006554569890812878800459824929072666967303294768016933106604501957270333367203870167536245298265508063634370468447738798836841855292102649549009169973662845732048426425754527210757232683560846939858691846929354113307710831850262590645302931252374597741167905437687835018278531115130888481952651608120325172480381608858136479329052280664105697304761412510051502035503046491674340577195325120023026069537975241932532127399387967763445835833272482635801480734845497864184488084958920854352938722370156716237260459144536842641612406563835277369682501247090928801514781022038132868196735999740775985183197074194460401504924990853632218884353866810638581648003832216506956186478627590592136230089922960351539953480628117597188383206777398772479415249388047015903215419399333852593111931301151853943209311018779446362809195052459870279680794529087804711342867276587474385812056633737859107775721701055525751605215936828705765860505283070950130543611852279587156865291160242034985675499954525445590058356852272549827667239720574423543515286439827301811321090673933107935028803651424260430513399887332565145883369109122711960842885957578893337104035333331785926039167485334987743779160144309996777526019926478231914773211787716727078335306471516365841850437746465150352238295243289407675056586493524604462541363687398823292806459697152572640521054565459516531585915627981942013714419092050325653111063139275294011989782151453173977713656565737918584029412132555812690978544663778216956374054682922186711600386486110001164582946642536877559493127143254674413043068734753958279682313524631559153492925789110210510858077486475168017329984531876082002891784564638469085641930029682312321219117981155988235578338188320328979585971396184888115969768393651269982572727285263704781783566182165957057199600993048864428336982044016535844669058811035649515985861324802069177675137052157321296457163422086618952183444870614599063839365180610024070219710718555745910110478510782774207995526990016513403946586490467211860823674576180511408818757841278912760295006495089772471462071022169926907099155653693299340746214323050633272865407845116321515961960860049148099665560633224747620948236430028742108909779083173716322643448646403713839881517910065771067706384260713170040233953591033212401707378864620225714467916761044580377455964104467930108409500441733866403475178480256930299446549788946133323789752089538991638019712746603968423512817706560809512887767091020714896543435934736047693894680608652545377918432719960619767661048055101055966372986971360231464805474322333130885993307299634399343014197446668105773812489703833427037514381529844289920933841829956041281508646202313680174293710711325114633340025634376695150802398789125946451255716804265020751033648187884562144506005484131407125191704879868068736877073948051214551790271755704204511274738247348889081899012143767268615849228978206484529282419640526441071643100644543635348579678394467168774975031183757687259876025711440541287377750032405897455298296436093543463914437877173332885728664456039185259109464497689605850252568707135612331410802150275905277122359046757746639436570621006137729241189959814390757160759866552130634312713067430901738684434263717422666660735231958805304855194131391376789482147985640144267192244945848715986621599820307598560219192480998249320267717530016020456193861587577603479340441792626808709246872844101225796337103540747450322836022538238372170626544590064148391400888006699177344955874610584347915511850894479710509126827255744207437940555077098939627751838921840197070188065050144497766428509946799962093115882047171190831926846072190696552168501843034005081684427953601814459126959690711093090429137233099975280103718726000511868999848733221714907876199421939380059662817186372531029164700431229955116446125418461380490799794407604253918145360813725212111137751098973473251819395012394109353936302323774744863770620192904682271459353827350744909604350314821817829327501311521418960224063648096963518311117104889242471327528680855164185895275841715632681891684269582251785131707729247045489956079755288955187349263084685352986179635822848119615991916259019474767198915719097633333368817798420659293586365022253074984835700097336197558204015674337589038570090426876749836690291634648179243481597252505066933503720824741022986935734503217126827998970440179594070070069705112762669875629438413135484007579579018764957748636398781499280746641470649306667906147708194537865548888938075747385126723506405844921227574145019533759845918121549877162010828578187046173871819479796538894455553472640313806131912175853281341308365083500476622572795656203772429648546713361012610723327282135985214575894350174772860731406673266170606557383869855343635108021386377864414343115259640114486860768419583639503434442458030168857409228884055851891342673753845836952971823311489888893657601000488280998970249883176039066144443910515427202664418505266173951972817286042024203772800866760010247525146505682958045202567220040837936818515769761183963023879161141108704537079877167888102968788494258134375652186846864816528282423099433315021147918887800811019427165518910741235808170462076148437987906004317464208833412621603878033131352756393248781134816163252769916143089681329708497617687956202138433776486265590064011013873673419963082478707217211416958717551853231355255942545647297746261356770795204061102507007044844905646583509594325595333814615665354641189308150573046334248292570598091596913302939624421860158141444901883233510179716710156047444599918691724822348104996951139966689016008160969819837595815543967681892196356735994031770608075590765107315827594303869070675186267766870639826548917672943210169144545380628242465448066380614981324049578520381777530816876436288063202227392173937678476367756920677641374389156228527313847747802525313463842190832282369831305322822725264052436892131139640160799599354130304207688144942639019867512875501658673631944457545871159491228568327129986073220984901281093943082406116556833683856126382080030144281801656445312828144126577116778150536789860974155178879334179448567634907689886066283498346598496836791781064738755305161368278316264406390829277556564016477034402114887275421991640752496619634005094529337654097406169166094239558902086364539295666720029775158959476256259712825764601715588129695701143603392603246604247812019191256742958468303077173906335930967259801367105808155468481493566240686997228635379147114149082417627757747293640399431019582206059189472542498446054511483949122952947033470848593972450523890423176313698544611793762934026052047784411923181611644844014526875276664091206411983245747700372849725228409196758524259004257445751669378306612757819610742240125307462916242802336434006337279867014788547968719056359877348296945421818026519981090850978612839635095604193540772200533608310455508100779233604793120213058693321768559269252878079721598514237897896792724453079534812498348180205708983116349579474608180069169944199029009739928471680490099169145732805297688419252414514094530414973732434215983193277297587929592387968754607400501944203171176861125149081268514143482385278691408600044572219278939708803497800160006291607769074845679492046830366909022269284928634067006090192635112390879749364582488048077132818775225854848590559768601049781232327929934915732969120781782834299900447717763587305072756569032731596293073673138253668752755226939853808800711121645962670571056574054701876916030038896957828760694179239601972040401798496068472730114184367445661875844446296412965143078562653082205020177269767575227803491034233774440446352635506043178084385998213616531396219774977863077995148263652161535017035364996015129740337113390749293706670967190609586559030044961863266143402701074245287955276565146529409033785769194417626572039382524885445689937705962597971719785591154164995454536424102475801956893727500873303841969819583883554315055988411049798936653797829224272441657588550269201441403811460703352474917460420172674673280055863117268517989209303762533780007106629354129080209916818546277422086881558741580360093848251932809265927275778119932904662356125490256995988387715680152325921701131079561010022828007375101757161218645168770490418561367056985161868981054695330027739185521287552356186219065867488332016770350836968877286528619115670360299695593377715625888156759690856339302193666884564707280032862739940816624993544838309310205498657455844868359022184657851636839555119575016214308549889261442183026857069319615240025437374704312172051715146481761231527783121182724892201060424046788588337457873931842861798719272568764417320381072913123979316695834943646554477057378007127158096383030290614375458643070093976120466736876485351859598432482341727067502248217397026517376909181947147853021784476019430315914462820605968263121464256256587071502357206205914220969055268297469534817029982324536558593184529019308773348898622412804971695512579580725463317726476443463578766232340297566066577874393853867774034477165800286265240538091074711525411990986127840234641035853009591675768475075142903439326434333193812188365704330942866881840692741471309074336514377913713694454105195937995425276257721141535790939693379808947023657489745274200667528772184146461452908389380601784014148690823035451781833493344315144693697547339051691635465904646879419030604441894061398106971086314092053027205312101638648779831907003601191139520485001916539652895579744108238248890325997309122893747469796134582116993165454184524604316043843987944675642072267402883096707732157155351315093373822208573335187973057765244059699748415549862312087891930479555218107862735246194800885408188153685427082403690653682127866434189848257178890863664077393070439125758132518365274306033789951113161425220626502236704469345852128320509741308237617366079997425651376242110338061714209137638358687915152915122995447347869926374485073910474797252237368858533391568103108777637925184878184540945479751561640952252682547217332384076003142205296342847929270889070005481471992776827182892918122002516115230435570303623537281491443696862976831330557018636907528141734596737329016286664294553687378934437457950715042967844555549827935704450109786582538882474743557904008022093056443358410016318916294775006694065255879097338915564578744726139608294375509468943564667038701024695442485854172127990925357967795832665845215244432697520329959289949505063873173035959657670484444960552735062029253506309686313718297195397407932301357920472698086041786592805248468020360381945012715361268439137871954996534027929837106237445697025502417088260086790767911354075695267899146198438703584655042027266124563969088702721674974145476293193768801247878060652412131137665916294324737265826184399562128133819757647475939295986102638059278465961958571874136417454270794089166445202563574584219140763747237428444694875905578741902842677626230012951395951952819966490982829511022934410586106146494411543758504032134122321999160951078958578396461101349767174006392089634276590374087060007073508688838800959602946836060246331688517904871202771156842603207271612978839402057916542015805561566216723952358762271836962088799069848591966660383336891469498101783201417336204263113081485753582571550343138838656115551730140593564002088624926319412578045204062991278942050921443332555742747665321376436238696955077109921193847933114884525137510313306387535781948239469853670137273031600462409306051693163578362845330150678900684866660048623251693049996260877499230414068901666177058095290503285840748688757856413815260861466726930993814292228196614853687455234993037441550757937670424337250097523855699243072250278372106738210944305680521814623114633371415344575431742655702142309338146331502796564868166635830003110725411089216107344034784682494279705407233394341393875962170902999764183067542116575008366424544867749987245747424846004760473337132423131744966442159969825036070547212683961326199592230115035724500260440491675701214242389330672358893256537723366964151471272552821198145789233339213328203176767295188909261001467936599302116020806833416019200804360762480409341184791106995254406946283314670743650825719934408839276640769911533600114620095199581995841987938333544012694310968618064013449997489491263915090396662021718299058185463838272442296353739815449436965524657256127026320942301415910020511060888923121444053447993198693248087692455213228252234670107359024050582232791204808444950224811813843897049161362452076115635067607055483780946216292318196948161706361388180686850694779372534091603476708988830285733312071270936982053293552268433900690284708140164152378489646690699258478832669906824772669624340082828969645121715465382399290587062130382124622238475158712846033462175259700144230783105620746133885664728814155479026064521034943388470405111831276264827620700574647616789977818914688168312360085993101091134611760690931117224897610861816712209454140774677604821455114925882220432482413062942286001628410508277439316452487139819937941667515963883200997687256208032801590149698269851566287516086793405995719731605496228761908525374628744642035141392226798805744514031788528750763078343820876149321005375227022034224735119563499035362486609646264791790075169718374250747139266647149289193099951198384714528407336300540492429177237551532792757780638636428268595736438553222650052114631896648649878245756038648380874302914405889876988097956914356899685039482771166565020969338568576368048693508685158161169869227706409203600057020212844723890351956645571136211814652605450602669312845343379499310696373784912184432924925226847346754234797537130092674371600440799812461562965996732093880332651503090557286273407397661347970859010565006819714723125135611384504357129254781846925502524267630866978983195047673168132450960080358333466824469695895612192581614691231737705420274240406151818330581660248827915879374862170065297103976335028644195128865918548095475629376342026349780967935324924105776957997566940496262046143338765579832777556880774846589811942129957791476490156185535520845217057333283956834549093322550442974881122465388497300082755870550305585720245539305722907077226232886192307559914140448109103748555856376829256813865502899449944232896913169080661397571789660422866653715790607944014148464006773581366730364429907524954355824120852044992756842062821209102337243296860610146619452111154379390329891696830252196185523469746266798574311037156203083921589514261141100295346838188293684326231695632197912515834668987057399049332153117758290872669659396552449326149678664333625728612942057176923396370734749626933221584636419391558371380113519033607252280035246379686743815608281834021681074854534834319937717855776013487685403018495765918064045568050254885308493655578334938128040961166754022198279715009815438681332968849396799753194002434256387393449664205712541676650084044023253528856356996742888886087004547639481577802818291261186627536077498100691184152378038413483602313291287585943634189547858965749520561425735806223615449835999432578808530388240091223596605798161493823920665790327667086233116734492161675310263260969034165807438274398450265629133859981184397624746493896028236707927921219775779849159754924835569339843293617533856701704602041362433082999936897241816294681185893963815215201117952918366358192686011321375894883824497442666093610225739182131546228235798979043667267547425512778448303099917780398298545968695101842932207481532353161748662858668579457416461700318157998716648787056847410337129244382721220447303855736808191453241228599176470990847877268811749562240305617249324242196924431192757820284666520683251437905647285022254548092748602742877284342383104119949552279109027401795150433386818420609788241923835463158392247795170974453794117881363910785714298192306362679500484220954993576877814421605847483758810489857468309090587693021510707801584872034080737185925315485528308193512805985855446045609020774041121108879296927039330292457789956951103503429581167964102313417236950729016028180084644230075028749733592444838002789122522725215782185564294251374165132176957102696154058100617750581910843286458426594688726028820910435029286275362888833233139404435050286223924230761815341628605683424287033643021256907806191490674321099814702169420909842671854678732222294807108703770983123224126003554227567653315912050976867356108488394921238618993608834814817387458517245481827716753639157306099574905014761268667512968429852492963160652062794812296855594587643028154135579804830735559572075870404312423829980523020479181786545562896465879588086064425057142672678155251067744309633783633888772929270917935710836469921214107560977424319865503163943709305415647240861756473431311561939763990992460853365312234588810194380914027781211206140102200039452722932237797868979520393135063896922211012240236178362171266842337408531551766258548409926445518934307813113634500905832709803277107524423323058143265402831716499144104988410913087420742510266041608741948128498145324217747330555148323692245362764667654345391693746781956142737945829347102403755762646860192359184008898979140358556460167425036718106022766798023955019848631816315419911261306027571968432205829712859953415365123521371340729605228489693632655260130784605608956206277138165199796655379231943130922413155452101825940622664189179018904462999530880569477399139877047575679012991800966268057233410337097943934854682194935112605702525831969190848127074734086777332004303146615662290435538933159342729941151639760466323127921434023963595404246264028399613051302480318994680021922949277326864738894863952520294453366598151020514489492162457054837284311580261247652338803173746044476137832816926394331507508852557549570304346363609766789132850611082809267020875480567398516794474073113262612701821091314848211530030691472797203627582661827673121727492514073775918454869302072909763450546858009069470838581669864562585048254947642512511288498974153359755401677852807644271282444889175713021342373228453676804010883873726183354571078922657506949956581077549621129191947397509448675548444437783321037627413761411964510405960026079641369679629467613525101580113002053527344053554583835176782813168482803763551291814381538926599251072260944262819576966951114051137338308512670605372247746685463407405566901348672119187938364637821461010460746343839145376859671211229815278138614439882954717002815570377985752767140095342354613168512481424472856198370478288409305689907541612478143920287675612884429090171034901794233900932277792812892256235986909098517267979088119532173907572922847326484104284574669024935733805689981643184273772764356857511081101438725206920682855960350322441211343514846074293443757422721227637001825625852112354258370220044957374808561268592654109564072019238878460322632591797145551300702971491393782069106515524577487179688119431839475402480670393785295253626424502944105574570373921572535148483740114935029659743248065940721546523026118785505211041387051327879419937516173301909835032289848055486158860364339713481389163029359437077039106920480559678216002469727527481999225976530245315769193595284703754475051875113052038088699844861435571615725797119361729316834244472112040354125240503352968555700984814692363139197187947834412695174181087186674783910914509493761373096833984770119908789198187059698384984023050865093265430319757190242994226841570519834450609467954925720496223530172527953767808449710117381601950338848753466571774431524947505374042186012224157546217773502661628611887850587148281095146194713453064257773302680256953437505632533182236265123459982400588450653271044794044373179366774507920068441785986311735824102238723284125495203038216422461294275811614513383816325898667218172566767565548680146059411902510203746266964267074397831843342644063095887933829691554321986216083389821467024443646118293027486235454927222131789182397162873390199032135399529999056779222533858358713175658262441066247290736028577232891626375611276057899857397017824038851480676579473124655371856258988991158585404259211643788114195287210701106220671082177628979006739049451192074470539385647633253228604998441601628025657486550571664616741422640149974863705002027862751196926384634953761216242265071714143305611875192976869083191943524608432427119273857341270982274456862459452838416669442690773778384781763755492179468023104954960700927891446692158650588277308377927875294468618892746437788920133674736564884506304815384480171649039562215128151971990470854608075113678182333491284199522709677447923905054047409032818348600686473443925737663478357616255500357489898954300082222348857763751795201968473616047449527531917952953508446766530115197029893624923640042219606363161676535302475368781456880626933965248966713130520126271933586235277246379165356104279310106554081332341223118602838075366640717298216393227364841791570049249344391369499684105686756440120839977381368339978787053915544563158387447711264643961498215892620951674043708544332995445149262678385625489508191402233717864676950331374784512474930941266556117041965782215081411557686235413243772770239866723136400542218862153729312354049893582060600052593269617742320682840186482123344208950338002058676571100874258538586287131375575549639933717470974778031318147361637975808504466688005746063758187256378296013717389756566071857810399427061738532346130354162230359519975670279296428635484399941538994680408972873589449030294501927405488933516914472986964414960216754941652029227897919581914198520415112606293467742605041920208286097042322126410200000275637019052030953035468684306790034260782633825933812034217697008195638241897252854375410398045542017937927665235584872605686996125953962990098925323502686529356195046014751676980298732329741088475232001067040728061334148889808264669190643853205539987734902659398526348572839341710956566573073747174432990029734030335575474824131807938387723164749080217180222902222998634147373018518475899843693395353592921779889811181520107169244276568805549944180335416322671801670643328938894252727600778630174413575773557333781282811866830404759752394739727138060226658864023843933486722189000545495297979627316768726642719125836402104351351116093247738748919535006086123834652294309224256871741780718460496856066000618283036941736276176460045444854366622420518471787484148957695889808941894555021249008364032124373238586734281383549280351273959018036807792596944194169571586596039598589395661032421018706886769136830814117650243256680658456073364020734591041601238362383194684485057921325505726436218841224992966791105158637753762729918343737628431577926645295572248560751523713667571021526839793866978425810024627271815580235756477118217933192667518092902977138633825717550579101214142482910762685543536877721585968669059588368718721965637944012377902254719187221380620665216950744420368363774909649236183164804619759193087892378506356628503367556313229143758172676413554636334864883370534415726105128105116615048926922505394190301169856362913720588009716549250632538694635637579651155394996818482518615843230974024428924978988774982515550873186653627439155446737306930802883952317590562125446283982756366450359095312373281435877259131376399274288213052401273406776419274469800998366303766705109811721828132700159995770501839545771485661614473522492372852755932818194962672758170945225820904551198786798183633183719191925369881393846548548300982913627100584296111401325239263323824337925072990557938241564875219363215340468577629315638422191152476937361147985465483346364608112208016761720570982211381978123068103152729295246008789380592590325799656085501678965241546225100672190593831519072279653181084531762948009314738091614154759432174539884867019249803471982993020557182079035253129458005034342093548874275040798955174543281769694780092375518793848061082453396777830204870228400159892415660095918989545314909252327060449038718508888550272466423231307567304359622934169787781229015214033005315443641296568358962972883896136505219440542752530112846100805354938368458773716952337915537810942193757772072843886887283487578132576918774268854231412276671964530743782572827472803312989525477482963097054847732863103086443767090609998521500347264980984855837468355978032905055673630489006318017812210284680664730331409136802261112117194084243692434805577715389650176037103260973416079705860715859786216831637481645712212821891070254818776096100384767591321217677700115930246661875247692855371876399922155523352196783297189248384194625037105733479596959401070462865426284756276529022069929594880327312547131956981401334189239881200913215359476875155461457163756891225207217991813033959046227704946851991018403306296132936787335558277556434734038061432176638742635494605334781680645743607065352327334647888651922698720586253423575353165554096866115326255253683940931318347827080005802249351949837618262630836720356631373698052591788692871219247857249533372798865952134552322710667968709056802875500676023492502185875256352070436655897739938310009174235594379795120635036269727890141948055982633516823187897903784238040968353446496943774689741657464405031302779515481372633365781995163509529701542969452595072154199368163175220291695957386261184942779385071144557968340304591066630424250734325800212523604085672965697518194278921170297380079884451964391434518483248631521372078894766564109059541621706399119528942191823644983463030432549704538768689208863924891921419380152467118018521176695965085021571120145749357052876462432018379241409577102390124029339739764679727555896215735355349747083093104520290285282617185186392136858156133930124647945147031389911011282367431267264240172030119948508570794523151905411763903823399090114456945270163732024869892865040595052434511679801360233300475070945791329860241718988428239916046867902036803793611058435606879807603574077727972423285275987721085367954315526747004544168245530731979593087791631932983779344240916868142123258777485553773362741479991810528764336615203212229356220476501734762901700319233204263138204790453317750399109382316855218915207099444939583744723478138593726214174326016091133810523649362321397908717023274957334841394505772115822984540159184564412061276343971735974390924603937681144029340021899505708083803081926460032697431483278422611905435627189416420035943061775046257230382783604429635363155226833839245025570619929375092673927992268913214524615653289070735957856721204180324640982442341266629315015308723994088336474972503067815656351693758764868599151903269920748484902207894693826486033334301119972627800887658824277391348585723251211014066903920133763538945236610279243270953893081607376416823303485745593572232592392222259026893079189940767430900547353382188137529868954279503572156430794729853248414247237949361746641786341165855640059333190987637207325836924605342648585367589692645085623479663070319485453640462416470268663354494726979110486276561196390052075397488902128438013201950324259402690819381588024478088700290295622237582947395317431767739269037083365100069808306693160062374151907873361397256519228169975433403507979218261975158322416512293870504585014748902960871444021046781756640081482613594971693919963306079482754947809150675569344132959084779505352400011081491800273831349997334657627653580321384660038691301879685859272097364280348619035539292281971344674361353894535828559058085433360988641813604772294773817281503467445366102419728482579755262470644995372761882425710823875034527599794291497881500090365643080933462030475496624001950932470975704451270208522124011326774639644465302472947843327334626055199484871211774566361110240269683364362555438206514709222675481765507692045452459727496045164901647315562597495215892064339163337164736210482901498240950745098596243191196923683455524309641119142934445010621855652893336910375322781166840835252818145076745458938636019537849760090585600662397134955033733621599734719111634263753670127483377679703627940403243098662025005457264731869386746662179654754502841742704618396734453126460640184596391066080913016202511050150731725080588944384482290868597600781982647172206384989396597311459292698273435160228923493414896035662193203757050932008692553828431950572705340907481242300329046169285632823500316316665010591824335700521893091049583894485751579621001245549684623585818633823857004121582956013476961122570191452553979379165000600979292171608201777540784249731147906765447922834679197217331344949111487171697338848569559103679287453961816715027194476633342021303803626933547404158950035890574224563710309045400333902413853796053530141335732401129895665744318925619597164541737569965911834432484256572019776642647246570322244843597346058996356107176822639616324941590012308605539125807777280698261828418139107681378415521950195233843646395051543503216632572964325472240701323244575406142120695654213330206886855318458968575681168287103050626507145154299229321239722860364564676666709200086316167970036219700722375408116565495893461584057519212978516300625315481777725061083038100054351992948577439073479249215451146138478959230751037920851614048608543018143738182637466632314647960458286272875064411927541250217271789515796110144418737634845262652284562611913743054438430634077639377013422143315144941215653242505704752152063797551030021517556876434213608737145686980480800120381906749453814682889714477710764809004389783340800578546313468343748899823022952153832519221358942995198567626754284143036306391519344308342407682186138884097508370308994580389330130935895386314557495906749478046257160173840554247308083509654670882273235380729981302936386921525168117376362547827979264003011600027170872985832828029393325204294926072309892549331321666088377714585081727014619460554926498464735664463927352575643664181303914002500995663365837647261269598043976419040220318260787610376141020952570137930586121024016551795416883461975287471589498492015294118958393669501106317226648025781428567559002779258809689852387354014920550030388142881119283336180139317549089558032452478010405922053289973896253293123115730936284209259798718215119685475933164344671249550138399473485896659195634877849761817537979748612666109026505140657101377038233366779447520496349791401322721389917326364809436308661860233095311081314864397649117495439074191961471235778126961466564972809653326721455239724279855751234007738461965521126215292897969694931212960630659196623302186619821166326979371648030105497532290801147771281407178647416509004871856535389646364973037893309060717649794787899410935539388020022793932643186828759530127837267887018534890123538060602606925693457232763970552756244042623075322008957455121734077465679837664268746690308246729814818614147223167902293772643556464118516534232325242188746198491096316262775470379498256967661745022139105218482898058728170995023342867030890377348877939560664052767105423543463701820300361890878405028497056343240832284545829770411358747070404100213858161138384046595238663268642589006599559325051251922544178738703677113214073187920147437749928053351141140296038440693490422973375820654312803747603244218676156728551587238837449839917448401510935236842752226574929793015817356429591607460282364373909684250432533262504684306273998331698827354922923328832164654031390281046454142094918420795893909717672155016013499781914459702974425479447861384900038584515367596297572391836963778821431884853987305623174441716021881410900765066891455581731677730477238322334382620641399444398784530285599406707522135374026946755381892448890204293688852573864199252976366365568386345092961825123947997972269445789465683227909790911574244476200502786564164092320222005061347064511031144486205234028403036227102240171046656281239511253824123413478163557214084230289640460693174068168709271421999819005882911113571759799864875461114736166855466726039654775749542203672448812981758921932441563283798565276160133223266373617358579806600280522807764085282479231489822305137674027369452890562251227608467901199512146134095559741762863720451538996264667114689303405256623852431348353819988395168645442550049431623977921062680797337667289616617874142567980407369432436777838475753404245904446285746765144684957988597323864314851575904502529328876354519553778891497644355883589044693674551875556567534292074340153605672234594217899865082020260726911467633853633790401548912608744554008205465490576044606943809739159658951943303115609075361596774772479610675773410467427921772744892958859475786391907075507800945550377198010267334239733046215307196559328634809153100808544546032583794226788204205938128979083906621189232114558235222176489273728870942437419994302888608526420947887610629591266405879273576612367662125335954200520855969646111305097290811403618668595193577006611385528993637283512290315489828401450394853897239046551325929256013807701281180149925728403070404961174100610072692904367921545127631469841832523771922158311186924949046615210200290016874298593613075982129076146224721460707111545142602925981693960032315316980288975402528064347008760852242834067140426720963259448316359225087510467162865198137220538213433988465420951839469160394707240734914647739671671005122818979131688598301971297633818375685330194062970441246286137494046107161610386377062688053559132928807583415673363720747225386815639463719499658909985868804805192777587957475962151130621000992264151004711154400228718826493397607837754580773602052492485204286651310086224776053241225143675950641987274273839648688815901776494719131775208419473910265175954494519698771980769717113540643937002761105652798326657112878339035093742941820251258129146888025578038726433866933121114651347996852455392177788749592251968865809340246007854273263007422460794306603254060231540630931156657578102787009145942881472159607228552291276147434665726479228647864876669881879940953638481809472872824194982450164124260453786588255278669732424086315539528222424617912166572175277046040259562358303841847096917538979622104039572687336715324425913676112111489662062657906457236898117278032066448597589537532024610836152617525603387476955908258713223815957863618779023842296424463023019091859569311446982611994102585686588469839392975649789050301931555679304463567509141497478164630611676433491203502314580991959224705884399695653230075570882228602603079899816854505444923057627681106245647156165481644115700915912004854018964625886342473043282127664158820948560266273781271086806573372038178211072727246779968458822142928610375844389289684084867262148185540906694022836603262041241450456975052276943776964263940627550955122784246002138097766914578390592385596820233016643716178563358925870047807964042438125814996104559593501009492628553568896118413738765490681952283247296465703722806529477377805761848760920724315191016334304317917684422500509621890293677504038283470891337443943205690011515350656959550650015364835875461477586680061504384325500841606547253874558068285034272193615576788638943190348980101097429721308215277884003912458353899962130693828914631512452738074020274922667724204441347169870355665430862474608806009121613950675594457777990179615673996801796249751429735988184016427514088508194656008933460259293266595989416816353697843134747498068043462968147123796401009503785709821043952470629513175178706405956940868998697961048918344970457383701419992194440284098740677284770325050575612597536390486422918162531845818006549985104827496197563272257667771697809621098270301757069889923172939225381082210200413089198015906933171821391831833932532423696632072255581063116218993619585758196931897497931721901665810230060071862718854367042618539634081770211596556573594701704538418373938615263429279631976848864005830633202329601092540467931776260810375086407340314473672411206676031576394573770154265637362521704141418301087133407370140455781785684433140768600086383754735277675291385174387849839960203400984323404013242472418706890357754437712860427010197880501175395599161906467417627922369909135037314297880966682433352488840791795869172499803808144728657721852270379617295534069488363085507111540233564182379640815929875942812713828330534068847545499858356384567097565817214790424508771250963825187582044090246513487516361959310608203277494900650096865174946085700738457481328668276976471018555570365422901498927097820457705508011997977212409666443542378339747394345899700165194888462455677464652835379269590123819070022042497462315607687776375056850292915537562554957220495075814575671889593783454982338166041376258695152495851737445091471047510316087180076153886507724279450317166764517884720584000651337090336635013967267244239560238414008538361986700803503293525920229084546865136783561878160788999752339784553871614285671752083158340476516751675245044144321873434891285429692444113657097760538489402913107364828088475569424326696451993474795615249627255809609905533349536491367309958434775380989266744593559319065975383498982423142506187912616646516167257498235623524283256012422193808876237733551865616837231184354672823632153508561125064969245853527738736520990956963894207969008783880600652299976201901203076822136127274835166583776246461657316959758573488703295879370500287362145637550145209851149091816225859885697002417569320787827794957025294357723533165700885193507260965210345980461827841451332765422570783900814085993930753179369319691371604020447233368138612602708347647098642034765126052010828061451773544466090531657976299326126167204850946306253223923528085370839671664706764368659480420082462431187943049819148537630464811528744278551587289624393655989693567428031976351304692631727157249403024184699577685681583956154925172670949458536130439627859408217648823853659341909477201136624746359546881111447482565696330551182528131682195522836537536559629774730347201609844184231813253199450669631235466452399931422741093082065920217305473065287207465442659257082536960451158239200081863878006660304634016602378076862421548305918812246183636721600802882396237710224930007968086266778046170079459044743473498580198783733812671189788963114194706478376860703237964907451004901792923543743872697492347713740555361368815549336977234087934655730043667682762482663896157848113799013777731933016017941994746982225938687769349822156501762457895510834005135052828150465951045787922806022249090632440025444408301475402347904562184244952070919334653408199662500836423060773381737774737206683757651325518472977011005906751247353710585225543433389218644998618692424056335181813754764437676000928746471887428152287584433511358098271980308440387449066539290679624342711504283376516254153000939203098055383804971721909829686432590343802431618279018628923444618401604101791975683962258537708116711749569388072517950381568386669878585290851498681358647439787235487853587432553766401940095675785076333291280681202860294355246162782761082976673328437980966914198234985227537453005429622977413731737162761918016234030284671303324056310580247960251049156561136678846274722959039180146072779571858983421170488206573991173485834467764715743408321534636402716962347826116499816773890464449819915570622660892325546191612580763171410474218251283254751518052158582918341162434357136372404324973431289594650308967271693507784581592662389336769973711044277241779770160053769511373117271334264828039004614193932683737871742879290499596901298632866642972301955668183135173809285872710667439860838696020515105084325257548701499630408413488559943188997353472947880489284125748639538242527215325744585747842145036033797364103367157122430331826091917450714398802535430787677989590271687618285732767814008905658754545855282570779184459272762679328029450920311447387955700649275966046622686463799582650749608475983538205762981080913549064148773185150769637030748926808490886967963038347413194033914745575287726910454092814570289054135120226692585457833854908150070949467313060553702917465815243413989411230297383112163044257502564170157962780447318403673716143229620474191315251325863709517766632222486406466258283924253145603898580954738030467071799408852119307400315210497724528140030563699782366973574695999465230093101539749823850366309901343643700394721061471011281430333743657941069479708857991380294563661392387438620473690978627208008496988886430934063835985782894214394992226040563740072432680975076736289833847978394477362286265868961563113568625990996940680554660834742454270392908959562681639039553230529450885004862665096859861558664177744683212743182239272919115928697923451748123215644701645495739008350099854245982346074682725699424784005305358423044126697315056514196774394336822836007047257091207064010568482178601951824957720484624571215730009565633426481348834675686518679670878050494230878863605111490444234043837147846010060318549887023084871069542059769767801407306985351549550128657289160635112509478750175158551360216891764645814517865301479127946959752025334645550357247603185335398834677666552755418769354065541450317193588920856521633204545282853465274005123294881481682081540401278089906152497099373723102676979951838622107865965837854075433123330115615712532738577043512772830073279685898604068018857716536664075738564280932724687899346553729637380876298893714953924026514572706445244987258201064263676923357938749618416496895835189290263763707144437071343951913590448717055581680725887328256097692681256706128141327389138251895313689737765500459596106873289539985854518694608801945110016929347554780155546858902436931163691468397167410464448927828071249723952710548815841034943527831827224139178490485439850353805810441530769952604868753035382348877395175944703499603854218721031489500838805786985302517697776126844492468500246928060583933948747544986662118190113568774723147036889261666439525956547260977929593096805299470346547205137132724262873916846030997081137614497389639717155175681044802515414731229150374674663378794187672976189868678249536593997546426096635075781756078923996733836720036010922223864545319834638393883682867509256649007001195265061320569191852950082612806470319553307522054220814499019087620163373016372841704607150567463046498228470084527208633476360995329297502421179071663159974595789766894677091835404337284869825592683698650163354742564814159465354883277107843350576916663649137714490511344011422123547061840689360655224366359129139102791834782896329136392091106067289341639760957023641003742509349519076275731881312174132511769643028535824603654696106386521923241090849906023532962255577911140289651789667846538161942444048517877468411287520675505628137458834815190007576511932813283732600973843337067423856280009427895414375334463872954982676692561700254325708266232439529805128170387114597178008231062966615627143003006066896120189009145832955305330324610288274841324262514950440711175897276251701580709271957415569516791985411180424315316366436616395187682457216499422569420841968508189089388719281139643719684321659023856677185601219425815551742952756406878591251684701129300728543942046424895735349723089817421259453985872794175222171405651596279543028545734413179144086740598141818432383800102339816001614277079652147811790283639615320398935685078515664602311226821112486021902172725822617783719409869392448526145705711499059939442838424689266190274248494733534406580694652115748226427128905029353629154761943104060002819781295339041843492316299447238780142659539374437583521295246466489523831981437650187694748368059645323576167740480447501585514666100029046249636331989137861614894494814823831653399296813623862538737840507695018699499158563835098819905213516895186266041591926057495366092700575713304189098715556498332130629051208939480602126639618484900156781447135306379457165634158746632656279523812628083524719440565485675218683543227274314407251219632573867250410036316904938475044864329875838014325473241709182716178931956943652013751215165033370439345045346401090584497525363029459673427711354445532397448236306162094377619975845734024766103416813065640073340961022890129724373782985093859263786147771511265411200288066164978785894047636239166329847824031289148697528242841891551190948981719715572931808507161625759775122277209120223878822890731594991405764671539602506837208469990083976047412785736139265331118764085093470237627298454599922742963790684155713616466491375365834887810143750871131266715414786414831226681093154384377272832583007057728841657337069669229584897122656808015874293234733894647889035968705352557388150115085606357895072862889336723950063021493891175289255376326429415247739749207812035934556147497077652651466644531235831024432024831795040944485589067891736536012892496977351974485795417964448259628437083104984122146317226057014755735300751141807368945788330971416803422255036446676185524275328646947643847550863810691894308702330839212334039665939838019726253389646148792032882501490205067723271909128186037950335068713340772384772350670740393560596391945563193288033431492037026205911563872953869175233188337018037091443445420260638901673099544035748763089549147994701994001254390106567438976448092713832731503840688902679444827673794936589639284970066048815468613051074688668000880222729108300269360978108320499679157226217154111732087291100282397340235184963637494533725858761763349842762177744053718149493969799230806970410712269937041332782001422089181368157636422758774635188820340633828255551002013176702709074703080982295628629870464242013141201017272681477430860372653860533227374024118783167360172454228169628869908605975610998065896997854142466170710671502142153928293602800307186079034466479733722495016718169081050512557874305444626508724833271432440763628790943516654687822819656158230937694123986951423304486379695624810724770932900342577583714936678977146684076809594804021261121923877032329051294129367811434923363181479892496386213487422523397287995611547826233414141790345321763103407226123472103865947557236996956425275571749248259692661035661636086279500544579452358808822370960798169799069470854432563054224069022863185126574325395145482094800206409640911989719824024169036779362459117179832851858704110498641589873274903421396503800532529611719354232070965994597832152247611324303861722091709802340461788106845900974909425644483547783404261047799016540744932812393918564556527975755071877977677813839876348269973284143737393745454022345009573131000437167413338890843494620847668719077716343799229517411297487965814045579277839630915381766545415800024385244608057576640064716272698362578758603975145672381596030424153787210517565192560120889154120533252135852803311909814377496315158281612717470958837125218716703853460495896699400447707086956588138249048696909869840302506708194041095218183676222438425078453892276830313424303128390243816117528605132493573984558726416667723923764578107273181490217744526176424719432697064214075845216712538261452618214570077489646253834330976359021362335478212132167225442695485985692780702324731959850923303962185842540189272237160186391180020581969712996465809238403361132304763099459293342656704690644870758569623711562119674415312997101250259965942010215262778739047438227535654653048845026295505008194309632413521652257834062424699626662026584750003015717653715109938716152477703852569405792039842606177394894905334184886216396410683600261390817258770756198915648890437700043188617243757707167414511724583005584383722819658768434131324377981211534941220236974311187242097759809631737956126886961054907095851332223061098124275125198548598961354832986154235218730710161860123351228838608826905305593096954265623567424768637170125997465989357790036189505520880794011059230057831390707470745704675380264193606620271314009470170151539559550874418837606795729001017740550046278243536379376003708746119963496246038839632810974097460069978533250217454562081294135386603895785064899234932395502387998604701355968103009941419454956441408815594345474002065762769687954152415097549007708296238126566890531707978048706518256868445253553303665013085319569565333855948486808671312774929614128109090454513605236243605223112259071923611146274831728536677356361698598354087099419741919339784123367716477782710096056259476212975658612182395286944038365006336890905969850839305972931968349291183267856336015885692455823863099697553430732868201474081128105480738587437958973479155553878066936822279749169973347107647619423632032559769435241119709926375575017727405808501386456973968905805194923477910317660390282894455893993697764425056757180559066377951333140343799101375439027995218686586098763198171950889096509548020730109183836449775175381788207884126461781960550706255110572848484154237949328654488269271574955488574840216327882764044116765147362274133268873967806349575973458783091735024806356793296572294607179455298536831446853315108520171272854064193276328623278607651740530032841517262169644559013604927244320712066734875614541650697745606027399905825988006502197040809299758068553452313664061860445179346768280499421473953252739696179766000053949230080631575808074858618480178577867577861634994841631684331227805075060065030977145238136071723163131954736751394184249476375987466792347133514466487373609712566873821405932458527401043245697318823890666582076777596800495543529588745816998193937196363493101168302688100083694008671668737961271519687210309701324356937107227906126800605391214169821967530212630831584825178006185367719093971599360560648883836291601829424464378351913770117941525592036752208163856534977943865152830598963611258319268170422680276547491992808841802779694867450666318404775233450912258341608400797908902455381055298773611670153367856340360966123972617348081108989895417081983471480657388398335278762120431073422591118961193807974377513510166143309623665166666828824444827896843136830489535908087821773893624539772616103542310948988072259677993797836804797332080246540385393639193917479191934551132973086200113747872984902247449404618582761975644783883347052490271622576153428079925130736742272999570511457248321601924447306651648895353306859456132890465432458926069339534351540956321838177783422428546649410626979919530076043486070578991832752932556740184681103957512321588931847805385447963974174250757657586053836416310904686718282122223741786184375775428994242612788055854777811740981409711894157532869613130294555464616224396744986642943397159184449994147974050873826335003602729109483186735608314366710674327238851168298674547091119938018606335049207797584542857461060149301563872960229312551250637372696905339672092685216533753921380552315200762724192188259211304737255360564869701555114072022852803740903351007661079034115896925484042105228592287098042526972797997348942668791082990711619603021174259983204031075446961865223984646552853768248243043062261384600150160748595517238130026914442771670053133214546210759798367733167967528503852399285801222615268697991988877218218099056237418655661257346559579772862526718554177478181333801732708563114073016570237479029901974271980475250038991421532484576984840502004999995494595746162471789716557425964028217876758588297732147007920260195608663796140552976226715272095238424864087445303798749162341310312100037826438832156691875881691800036552629464016406559472648405088502854589826467428069505716704048591741399760241307510649551268348219675229046152091712880411009008155112712206893130846311000174152316775234971487671304766905499843056107875773580414372956546051470105471370632685576179959972817936109483059514531025059215147346487534530580351383284941001136989040637035263900271948217452331181283933983876023685178494215422891085318966685513116812574941039031922246454739576509457110000242674148318825518568587678820715795376487135252599391497795487467534050815144914862367453843379020161594173295878804540144797176693296844996661888264168421070525878199092307636389982509735024806820087335663759371567808573504060034891396951971363114993013452817698219759879473805843734438677667311598758331664012082551912598110606319530657600968168995690443037569424935411775037091157644629418159424180661641828862971417180418725199539953104861350431295484472076246470645499785095404898424002957583402202183277106717877338411478315425170045939748819172951442903530082620001592158195218056368429638242238629384044879115202146450783367783986237799990290105634756546068389031070314400295018170346399731810394770966405677949656749908433829729376181786297906473829296086931889039725684878627284655598052216302758011225139124409583745922406210994639726684940784305285256495781713822477955524245169737751695830488611988041342947875776349248211069368513933162523485013487866746493771449025933266595196714519196549482730016964762824785283186411078308073747019293689078503868163210091999122574050804158821926192830397187252559783893398802594484239908633002687787372280122633518675236884148152106877965881590143915277250648567355499657663316943392018915038345909402472417683090393066910499474695037224644904508522356290722987255494507531865536367690308911837144116318949921375915562923783567320858467237445371838363091528963883478459569567068805802500082802632919207640504557823842715126154255799238954878061163130259159229886741857134335277724300791941292175250903188880080343116742164911644250181361118331902301720799413859811235703562160755500265261326902572961406604741929878865910139264822506867809241437544716556003345849089611520085176775410097331987113244236572864301251505338913174819350254306471480257689985844289483659488294998833158227450776120651466917729217995125801301498430043603056498871856905843340126795249682385271212336165395294813842359465778627971905471128379341125434904375616970564385981432001038557149621185612601945552421261047913468467623756600328877225889602699557003464635431416323919083508371103624768599996461419352164083628084263877502766575059853568095255423591223382531008454829389432056430834977787759746102442921864522658594585337497383409608322462111596087150808437792213724553637165959676580150568085104186772598882328025341850469803300955884194602790051828519942228564141456347879389674752382278811013017063730643686126473065309526988587997736048260637122203907655598131363555898201937187804419767433795466331968218446207003095117765552675579673437394786757633762175479433921909265965794129851621910151331719509679740627150766892135182670082921104180292545890870153486518693171183244926325558912043201500898771635567224010333657832841094441708017898197268743949230787360356210281526158696785997442425287381066370593338836714988739206243920159640028816935027557651761717466267769134041594287001372402732601934565673659473303575252493251262844811104090435579978834288774430060774531491559669751227890598541308376213356082569532767377557444865600527191338316061626342248461374258882514065128022851725420330033069088279228776223353391142027625776166597863233336080966299627774089320032966866315203295599587919535181420619386506649301416756834008369153714347607842829013390846423749115655842958398537376011067319363198570238115351116593964549016517651970751759588391437782335352049101165031223790976372401175149967600042653717403905040929613546109624694198437033554533032864448404109632277399129191847968583928416356311490947843712754481226231309763638276463212313078934666392476776789898907749205143714430550879957567586968360343737026859170692430013042986547802160490990173351570825916209124169269608920847994251216862600280102483368966658185669704563558033781521513673458061756751121639977701756371160576299104956752360220670980279247307947637518921873117026150109936694702046727826076682337932855387701767852508209950578343454704541005510616072102048941079156797773398858082847878223621962907837089722894184000567222191955112480396402631312212955977919419182067191648065603735499068936446326503235591398015212916730969530701444271319737511095200508751995449064419027433033606184123463822877738804453650811963076795912144803571160168468297606843051742532988561364346931914800107063800208924951761461021053339390408108263807684082205323507981531039208815548082817163743336449289834953744688300882821779952498098342364377557440866062437486076497350102410473057394087659768427923129320340739886648274076117010238867049452773482621559643721707865502850763101979011004997339814291846832393698342091366092840267172146715583031836647978666795256424774743333559757645092371598987123598231308482301317428778050893457039501696524950466844232832162736826221227414434763196413627551418876335785401057162859175737955176423775121682782166666918263397489060441406448666961787505779467745444216003525419489956197248084090435802944978409920842610302665372874789505166349872406866792609049981672839153680598345999255829880141385435674137737898921446130239320984695266903306121747769239901877434833179744905635962651317447561218041443779444116553516001129439357459970091078015319166687423481422545515758018543261280264043132089938361673575486940894564327311952462902814085918433409428855566982085243319508906948180011762233518272811585348033132382982226783144426912854742137646028238144925689914042951234803712825712049417181864406467510517495604512957434735301118115443687985047108038712466741202236258618733239548103410477891748235557448510257177606682108745906705865113666004073104379203453835573234991250907930539362683675469691368546997647780465590245488188913012882318958938364905028759484476249341855721909161044282908267814012099650702891253315913968778979495675666502170676163357579867994457190252725068851003633497400572592121317056747924227734586966219131418232472011951907610009332455807610722100612227805234606025825891750337609191768709860586603697694608289154830279280670559326323311367400418354400451608027986462047173260711767988960813545367408401222516870351029998854272852253038949249761205256298883769658213546201039787472079489594396331547173963280844905270974960704206647719698563637817372409743300090506527083881665384512876372829132865891884118867481579508834953684206992082006965267043593708705617109124880857288241721548856537785533741404027257584358116208691234322734585244649923267844802558086776114616024731182935159697073104724951414214897481940423759575608455470471728873760699705944980594743220243015813434541286861417775459920584180824691809664561737890159059914130310141804751923147939511595361519086100996332288783844422792866677895926396014543090599033027578822774595292139836427140780673596216582039896261484306647527741243034637050490685102890301997072471796880373051746862394912819714274913906471828089884775973538771020951228420213469410583071863225919101479535682139342586932993002545116637814490966758165595022900639637986275540299718195763579197827610775595077511444378438023255728039861087410391291399315401362211737352275232157208942415381136238611292662536711915066972614019110561400582486953888131607801280111969786052885017424177111614320290990470356705180081170582962025302783480371070961522030552300305556616418830182390529110096807961589336468013508807849970770864128822601804565350861569429540826343298180940786358149736503411767706621891970596904681811224835988998581943986160421723726146698726666982020415928080483999948920132437431873533195774980338328541244586715788677945819843528407247395154540803342531977692190293474195197856514512273355969890135142696782365322935030126264791780716289440506275790944996482389860023251975436298956123545246830472622597416634607918610165965541565539696577523564577907633270983383047581032442695261842332390914987364015403566463049559786918519638356097788054595756766337395650923649471230752889114651004564452602724288225338796713576622521968227101760825110483248580449540323849162312259882830728237385130721090244739612027864334630667223572904580798090238996111379767237447681820947823532642882412489710149265673921899262352468631126150159267197357529040710739605912272735832893897124877685736699917396585533690923755166090146425546141400472919457370097573935899098746296328199703721353065527823341819118809452092410960359384013855898168191195511413184122140890474220032142950146161918667374365562574392454367058552764742025909847015895667379182875245553873641366636449731413854559465026443207637239950096743364768506116703703029721443039762834964816404271840311334170272657024194109233944560498825825535644322386833447503019366577859241678450340936969490454427724664253153309983084715785238316319131197778843702572088787724443140811755221960827800269786893797956370839262740042933691024542935926650586801281507119475384821824448113966100295686770406628680214672592915948077741107929418722887362871434385691277152974753417539277055459125675635138825278892419386868291890209087207952429280411170037143507165481537458433125056667290337131165269912172703696908090130926155784860090625494624317918513459631241774651780594772483782260708722947236379133819941381898683979852851737756084020284499419872157527231125133457058964964186830091344796351637196645084108029860645395845734848393620179912511642777564202100568615720695858846867770760514032125181875818749324877559885839822243903216559198967809460355120271316323166744971233144376717905914279805657123925367606770998772671769207693295828134926448327598571717507024038488420088388435226349755202900585377034816313788732715303500478180592202644715983516375976394625657187538422584316690203202916694031281470624134070288917198153616854788958929314367257549286041191475521049033360479027764638859692531465270406493514865986591509631234801103096155345342319499229745815769847799406738712085732741644256012453052171166389243266785445559239762652813393001699846732197668464435102475163321669878716034994369607911489724362088070540499290197740414235687140899334822092245667068160309272611244654515330207673229539393035523799614429441839478889697967817762967779229072339161297580763625729473496274316261328135472333426778588061532060525885163543828511746502906639992993890904142901964223665398220857677655407096140819801084024320046018514798747784300565778398757649780303552817664403782682780145497569925303104899196705390028518920174313921754624679639852530671392060476407251203896478496345011897321277970915747497539185181343466161924056739303499838558149284085101242794136447959802503241479718430958026391932352274984912091284220822165589836973771338448166942697440672183887154369616941648048937723463344869944689052855915916411190837900436820745792513296786467073127748021995909661158784529453539599125772173533264906955354877008205797719834174741062706943169724725610937973384854759932893356206610494959863430011201731301480879303828635786689620558147141023266494601980131886084409809092608850403746485958092196409390239777998501052313616707292509665594562880327795652925440432950070239124104723712326079553027314893975679113753053655951201533017923092021822011393973826542826344168167105894401300931152289047586016753037504596699452948860959771495154108064046456844393914499563456602339946457338261684985455029884680291057711610835894950702544970338258957086462025893600170928836542716379043654261869727935204323963629361203429020534565850748401282549356971752897803582149121510480722014723838481262566850260410044686631149762086449291169548905615781043827199605652628650285997186712911841274762980494813445349504503708485636269273647907526066829510385832398712708525883042898954197266904130522327646279031139704819952469645700626594594852685338994319990457975085241153764090716686930305269094752192223281411873745953417694628785007464869687704295961401921454860344305659193713625449087915241798679973018479482195507611744896420387118046752305259436634344803981995411217748442549802224902829580643823341073264855147983672295155699597572768561917042976152056828195344591377260735461342194537033284956582101332776723482362680000683172503897074027727506253776587401347828875765134383957286181547396203663642344233306711778146043950821986956296442987717176116366449548114006317203035412301548766532990530028734547714870735023867329052834332634086982451798223277061122239162664609677397317237983008765510990491299671039785798031883464673048932992142567136089200766496832926430114006728582434107450935604675687207909200858707886623968224121122666393594962775572992598461545955332821384303148035371557251591394881655847649612127041931371406641817855162570561487001315051935312949387707001969487433970499205810945053575937314956618270817971920950255791953689002592131032869129015149549145799550693621568372291780287742225035332576577401460090564843052713103255515038258999588616695684027374912712897864369546788550558207045464463366420239516106207756147644469944995514505356086596315915184736868861219310239528736578858451714402535954529189329319250926038188667515251607378329728625643783174072509500946881860428563248696671838561685033573510839245177788593010992989844965962450876982839942191699634272783478070007525247587899431893555266272405629337686391930634574713848807486937469963090619973971386489825185874983060278111597795435221795138383979206062605608410886690373618137591525421931164213715783839044208143233387756771845651999691253335745840873287623522112280603114880311165504361412949537470626499852903486582987222334127583843342776090044382345480142477777402827678473277745047286830884950648815893823374842786518230887802007622096257039247728961335163310564370880853116889273460782360554304903123359392869045648286803841373024189625853262401407461219187960910119839258615922825328941218613238919088801728418767800060453645804492573544068425655321856210295173432504297692896196029711847710354444570500835586092884944312146127701612855677914444519168300491918625533646552691365094652298697993273831745413756516611953785188597175369391360411544590550060387183907432279988703281536445609375800218291655778683985825808969887019467197417528927140799539429937481423741701779041633951061230564667375093154163396985376581550630811015302137872117373359513036441689929083447027130705649389661151160939094595144238111612089696869201863035852505150928974675215715802006459749028100165446723175957594472921952184824071558953777017786294519154135055596296225213458961225314616667489588134991910675743629272557022712273853287945255284641961653463202412139547973576177886476377670393177301452020604492452947638832675697117192707856961055522033211065808704907330911348963019543441595167722908910736185730521746932859117976623416398574532766411824984656995957793345752900765829004971533690030993863640436483417838586116800260169052385404406104916510775670112523783137256121824439989712668435604815696519973819571860042311476708954368172411637666604261771139351204041639941238902989391187569852307536312964782170289074751732084363443668662441647292092079330955482644740638827025789143465185069748185439719695352047222077220321407706436699021386225915586488212231157962082566733795087100383121922111235466244727364921726574919574794812053778817678936081763569077322139521914868456061655066486906308336231479078739374266210779494736780812513163874127703224098872733320832273522966147712446719201206362983412914900614357401739049290896931029256328800032664319247471063630438785523643602444120926493119319120878545838922475143588684233240984742148058755041232891924306327155040244998197256725783414925902832103866375719093842702003968376487757616284890520516701777942702837726106298532495922777002282988815229982244810774682813635134684897009292798668219712061257560801267634019057922279503770278821752673668757659719423024368654668956878268700053953809068683342580728352678285999980317897864683846476542460315264718810483590413077600143940209611015911136389104472309977120575183687473588015347584322250279327579439128795714076102115301263094098855422960049342395794151248607107068762347768616537893420998182095609118308543720117902835658565527815851104517065085908068151554881498418982405527310668550486753958075458053248525087842126684296216442418654849251077000734817615283054676945474817420559801481739862402245167929770911987755234429197691225668426793006400896651236119248255475178544040277535178704578054975288301867402144134785184008004781714061135168492831883385462867325568235754142536498481725456451636806022214741525015211725226485457476485543460562693231751049787522750031595684051264687763696088296210341832653912132808529889662195914704813104731830099585371723797461469834150436913265391408153768854308217427247673570573424555721040458337066073690207089214170801848045695226575356717988351824531718139367999537360265659396357624319142256002521502805110635285044056508723706442641020486082422348572968140434100784140097389711939784851665559935046810423249925765130545291561417062266449114065075619986653283807136503900155502018066740973986172249288286176002125017878545080588911273122400993765785503455033712721702702345223322645773398129922049646494819519088241893083605626168693652726081016935677445795104203339050787394873259592368841238569677292333755357386885229658834914218089590332932649191779690668272128642861134270884184684155428204472735272077563221000449213476391969030207628349596430527233428258657539439754060652922898639351098525700593640486177751444627781905651667067266066638217021521179836730221640673443533152079265311705117645210603886144927110909148687164796462131822198939794105406110005889337934060575342367228654089317572697198275928134940156311638599873049796758584013498767896531993167894910723808101696409777928017122226035887428959233128307035955000819643360187550165980961139332942519986149460076168181528119130433799167390982739778811691022915230478666252292752964044949598662460394576178017851897596116639135450757332244854580162198097071561036544397297820886100627469073851460332189398226075907371466128093522789931078652921551901697592778212643247861621686559845470663918168290255147805102967060414458872120659125210850484853784410597997243985247218432859547688494824900415437354928168965451460259102985527843871519640963867165393762380067903720740216193769196317478047115738235746294576311190005708595551543264627544857469528317600407151908223256942777302733175202315402290454469866874827294065514521616022371125503325271831087879834160842697633809031997883693563344801288185363331083712418810405655676098265625560854240422074038606528369863839787862144661483745143739384138227403958567462893347275755780926950950700980075103651720029054423829668692558451119569060984692286407529604627799268764578166271002661709564374115470827866103402550279115902927191709376221698261965717921152201784000985500964711436242038786407972419986219195491704183363116737461203966175997421065278538303737697967403362637804817863619412272408687857126609143472012241704892997167594836376524000720091550222138635358638824433649267579586882017497439793479009641212334771534646644283172213826274672567002696113546785197529080370230497307308629888983882317107756110337881105014495731775379491687146408486841958280619093942340826687008084640181894494127562040301437179396422147327182914755703727515728323067066581740297294914100340446254067306878409628510732980119026932637945669212265561212511294259836581894193935183871784529090807040121679995562484185884332719123473806206338581589119005864670862412302299542838077785664356778064081630328338603399747775554363283768773207893575437068929122817072193081027983078784097258128330712196001625881410187090930241092291340760975453017628574332200397344346740046880147969317937440063363250844363103891397038669642065499811384787194506781873728822079945335999605198894706848875898503315025798060136824305228541393281981900286589998008886362049440505105067545027957744358386406951609827210483114432703466645245514664315793182613492842124968011331081681375445449326020145926883512746512155933317080249202541294343496080402324623574626477442945407900265647771513327275365403267010927155968733157623829804525080206010708567684096443461892593904440680331607247268875704659497665835687518687596546908229145851423499565826888331605651332374851762062070598565129064621341128026409498221670883632709715036684580181185889775884990151366662130698093474429791118383906093249508336405944080430270487448844040165859565069911067172105796853192424456468090212308656358620526294449750307366376671176062234004746326739035654775729533296631198251839304474928081843268801509820717693684588779956553911429879266102195728164257807838650203941244557651787993154584993663765176940173317852328854392924382838037504830265484896079207335147687020028856835837733311801124658913797948693559384615096833822030525134721870187729094487787176248821682902792147013834283732746753268718572371473474623087744256686368164231679328994753853667193407458725920882078105545072735042810887781515622267522591811666144179222275973314760462842522699081957576036885476861943843054303171306430652995872723373004297986472349578562814567918699442666829950989732692804202468999195898708804540848678308227300190910395902047999793755164431261352459474421822186383489007301499074622355185985765466348894377282723510878926564773544669185460481156714292384243399761310139614710944238430481987659166449360676991210708219723354339943493612056527874115557854686318548086796504177935520365949552635814828951271121128596166980618091791193028878301155162405280150457922951301639270335744780681082968139375276391912001646974275267075666161604747337259780193048082476588004548162575413713376923648075155770289487740274583519953329100556992601481006784905012199783685328114265226142491221290788254505757365804698937052303121373314008042615717714415329366104615782074518939576916657096093216319244590627369311072655754277306925799747138360234414356314706414424358066211911865008594983098870475344039281229435200683244035002077844315730613233767995543179581774570917710275480999619572490536152028788725000399189961166750882755075456034415838111905601538682710270092946625370923337321786766988493773867938941655833675395471539015809508895832026266326588020076963609593657296423115625546338152355293081014491856859378659020983620274956425371049942685804650897170432541195830736859008354389212565898792315571680491071418270800431395172561782070432712161218307924982254884417659199776228529299253472338745791323889350924033374316773270325634096442101513606576235955828633226733629340537279163493203339851893002448605871024639726847162342993485322119754160102376695203215321386590566907808565916526678166090939865870499731462545837804011317491364450526612122851066192854089446628771319257664628750671961294635312694797435895604041925925806733883437306351867164841777849968995022605085496713492296998846527454113075045001011831296791180722378209098006311747038088988702362875538314134224838041100989646417139994131841335100984482074135383645063430800980866505813691770801445789877737435492190341545378761094472032803257971511051681311142021930965239530417025181520092787477853675891751154239797211452309230935562662532875680700479861803999113771338007215654707314092284565665989953454377689364780219972071102651378918819524163135950030665940651837978700457713346219783001576295847698084056625909245592833864171346718300915800363015695199729763609165663624795146730089890833170845942004332360783348044111907969746180202260532035885649356637036553125098718520985597360798433663297599413636770682005285555868638110898526348460395863606206579967104576435460251049624696356211686253991041137583931036888654029030738669114284431484508934620483110402446499979554158278810956162566001533900362711244439555402367387836862166857916913231119092273538589484748271635739426365340143254775706326132195849663525581945442100313946532865931688481193778332722003263852804356663254489259636250263209788242312667966791533982969582138039015181938430098668537195949767583370815892746857647079310840548549324380776070706533116242621217026424619333282854695708711969432028652041674958201361070558432078491906312050283766775382727705504282601026133797722998565710493163737385367104917296113614764999958114283204882218087811468404758405747684426136772638877566242181235234553836707709256515985259845643031875583243887556356961684640410907660297399604723563096364476294081271275609113592386096553925139258655634824028447562960434846790476415899539772499921461508832477080889083797681492291587404067946505549631843141864205283988652386321879572345787336434236160064558962968561645124083782842741726074805615590679699858219067652667767402912709892929077917620415032626384623405108353628031157516620519061486813142311243630070793762337918616013414214970251279706465664867752978692190809472098419088532190527430627725605490505900815148661337649755451951930331722428486463693445781948709306928027240055008691909560064214023270831790021658017269748350674557064839467617699733589943329561512207298751170943671491105491772380411563517956719363320529511237768847590859637133806675628726898496574084033279852213685755350124017636068813661736867776842076699257604233980441069026336357493079385997240627467315540691852511451958300476872595845885632597990522938613331354241210163017840530810337501315603432499992610338885564356854886917874219731633544318269254399047587984483838325393574275827379059099110956902028532561272768976118951943990579570731628065970740838852275310336251539855279444386096419484032349017882872294829970076244419025014436699202687608073186692878484019260535374393711341547045112123276318623038002255845118008684844419075192903369280864588953428048155883769037236354468590985783173317533032439569907903365759315557737041862109266407522768607097551173852296136736649182777299878892562436554524538122430372080687872733788303015408710449835013081168510820424837314887049615654311283947459569752647274764676686537914356312690470636768232530691034386765560643935107236745120769138777669195226221973459047149054402075774148629789028983170715272564018994461611251838738790303962656386654738832350875454939547696648394123208538700847882838618304928339257748274039380624363347046498050355997012006577558744713967787453615863822649856032163380287323149238129524804937587204226328419056799664616452103318121008352545622653939616050025328234662759989338708367797050971110304719197493807198295919358102785634722780970997295706941139241674493126651018674586728114194425108064906836293156064813294005911113859627067832669563046821986507435894445962660877351815875014127187874638359407271240833971254516237827353008768729104837656354523204067866270492288532067000939509869935020374675776673569573911093400134402607869504164217633271476930579455076525549726761681643508128344188342506796147117286782035862545332222708148358303538567065369910477839552448830953361563625732549354954926492536809622688906387880920894518401062125737443837345391212005403772793397007765126056417839963690333931372886090514086798457414817937422327259676794872386275732492854264053424683202514756649506399271970520305464484187224504879671415440491131205421218708527288625597301480741355536869197754532668363266450634642250265788657549877102458924163550637915120778404504948226513492459999661380244794854797157619750157850668808409492073339388081051255290864889769681792660811420589627602853660222901837321337803335521688225177216276952726757960993833170651188974806724161859862971673629719950963763337952253952623328151400907556874667691658365919678662313499923079723961282340578426289515389316758438171651307458703423404163941059742855668869140309004469132348362117388576726751260348946826936793207745016866518649430309164485209300079993602824184612354922161305641746757296066496079495939180033287317872100367921437156008005732108585381583099974761515328395517376155669674297919232215374176546457900000011756800506938846819783205321258487249005724065847960129313367277599974500140614339905763999201431834205726235571515881455532861598441155175306531184393996536429924914218462241939354239069971923775982393339907497017024655014071251542213497139131202605328782408313546040080169843530065313150574355666489376070761418581147664542588993548515699467468405373803918155227863186570012702547657786977159586917664530553721746108859087976849956686403817817731056175476433421541046938134292680084666918900032044000876128487736593110477765529003849901817045902263872642151474612275063561670627182650481644340443477912866824724995561378052076075396976698535873567217672193563800365286448334737395330357549643236362025001139050420459895702308885416957395425127370516637843406949344438590264975689400786856182776288689421572465617699448262665056959679891897697823928018431826346036950652193133340232926927259312996376965238917149434039757136243091462485818221592466517885950662017800882241249581853209876591727083581848404922758456495300248054819356367035506787690706423379943915339146585017350776126953108937383433086192648636318778689694031402949079040681583179090950848459209572893480813868838008076602696580138925391632755050427186730834239513711381720559585170445880428719736115082580858876413354388822952454684701187769692662665021474024144338001391911924235802435427757654414933249031474532279894551182366678436342814564597417352180366043971443974321465593859533213497853226839176118363873311555689503960969073200291816051598158279615364953628925642289168923724983639449756825048616578333412268808044260899516911364623715147382619515728352029119727163504212245436213274196923696533539240438202743894136881419218308060156338638641919554700716940664810065775218911860334947421328101430034138300796860208279556276342379256949538506019110662085668884420169837550335108897334961983319925122399257076218801664284970689470322465005140113586619082928178832716872597818604417479125983359390687301754733615664334203528645750718348811600229790461632295702675791787211868224557849895916847758801058010920631647401088999049749702813796518636713198548928812023443946766959016882651473470048796261092747341106258092351168716149816965165401496497784470374767654115561345483336244384319651834805139372696697524121970011908230887753513344156156244243812748491442498728653076128102102827237590369466741910000378519371771825632002428636262890231511156748344008357069910424910593406757001719769160485840376543686751524250949411523496692305791226059699254629147800997037527004047451231353346348505351678677830476005805373478892000781340623428464628600618831565127422661042458974024952451317983949594724933845137339036544583552682457694797251931882193453937618111746848210097469985948996168998508381669343533985932346077158507850700175510597299913699654456607302178305107357079232122577020860399071798625323113857511302562744084545589645998762003200339634595675797239360407058843046499135503639677020488460983262987435861719605222013277962503996901358509728465871958599690374670110904885744439764563387336449995719169652565962753290694928734719134051596216767811767628916515957312908346760803133360890721408402470589018492608416725772439697445020164597352543093686336182160977725070820463294567173922449553922573641937838235692397419063174699562307179520704466028387142594659347936441677203774771466432509776185326619321612218011742158177861010707787380704383226818461341239558152506430399447767594056146181701084902000819204090304968534571593643118459213815506417646849438658743054787362089099907055039642356136702589654655596851195231295828213206216101308817363008770690518474946769670986116858924755513620470570206342855848285789463412060475227168208764595983098352517911709685149079363497604496877037927222446498217952347825530331941326323506090271656354845443652494605345113361213902018519250604566955493998961261409405057181664019863931040004239356966546261590478091111459962098558367871811200368822589132065248870815291364367929810145746888961946912536546410529297924829214997206245724573850140038778142313850419911284191417718361846067074719169793565470004904727954627072521378069620920753716682902294003196327938542716398806568227207927515492998513673414772408424752359332100218508062126682817100640969099966081692094651474807073604529876812969034787637296544362196075737535702929394797937769411439963866044434887210499279698933845152459500241332012620369190603160661319652178289213912778458334612690964706259824544157475762257076626308928947382008683472503148456219095239291418422179299160253210388415346806894925836680603840212729314712140305492569658116509826672711996300171407849080291498745832881344408763509150253649588553505140378031240494220244601537298507037526823191294695537198356609902522434138486046520430685895006215463487742662130567418534509912034989569399534464133102532156384438376698789165695463024117686765795006954471892832631926308238929523592180267461384166486096490902138996339336947932323807028942568948545161734882235980994401128834873374047008352745127582666582065813383735462650331610900526780409626874085535213220181108843932799772628421599850733723981973396354428187191995908926823623259485019140979551213262904888151106963317413015067991981395588456823203479465288463131495445930292741799988770356826863170748680800689953556139303218304736354374948253550611922119222109112190207018605559221790517263440084987592443095687383210568201979667552273240661843149066694021836044877273092950375339266798133379032988302756108204679007282813293109960372862929377224530275504111003161341452306835534472756097750821804450549796715952636409585736396204049738924017698891032070000512381137467504388707832043213710377632454427679832877853756304629087547043828452850299559061878115920134581934169582775030911431335417616960610613181234407540222440968942169228798667193655004634417418674503736615904861892108353094055853794261277408581459646801095427073904949069166771073295945717965261823369188346153929732945019775972524454960327787835918895951489016369493637535511170833583020017883561024189064204511125226481332023785979382589053130220752357396068866479081289185390061104185740649870754988044408767366837515798075064986464259517013996622567548159005312170289633291008985136091923756860088448792516641072431651655561457098780944557506559956031419373983078568474676421128044907536236879762393928044714620411482336758119185296553816452884400828068201971881255898621653335733678248001234802609571897896645550790534760951851207234269198307429352217132679552441276233930745657149651467858603761938455299082874115008664664988555334727756647395547412556776964652053008994538462389306616607516171503638559726520117587762636103053673191400317116898773965014209826318224347034539309854131649081628696939737800942950627468389574983001436660687550508542669061917503858095576591880724130670391008186206739134607307216980823736452119122016177586139571197500678511027200477113925140935303974287060354925588383028391604658724840052284873800317991517810605689109134712535407806216329634521014511910922582294719697614132241820349712131796085021143292296740198648882462871648933979342729888742232355872752611567671117292540341451457477269547593286363990842355890005598641357335552720262801006434928039285543191433322250186102272564529405701489510895717644917368819389429891856715315550917643376900411965740783447259104239140709300736530131365585724789299322332396276331093030663127394520734022747176764579420195702801457406649048254746443341928871919425395151628897451063682002814376331750813753567469749705985687140843005443477721442521286851617534349223628289280719964081773447607926894641877468885112883709865352699105934184168385621300684735328867583766416353236919359933939586395044820404724267668517354483328703362340747419591022909840076937893526782174493041343790372455277094915923897083566456135695075163652510689632820018647946009656242637017247862799561154547342627618600214790461804390836686163665843723579995042444339426559467856885144839787482344373713414617971881780597959555199470721303034679219407097024238043430375524510086728610590335841692174307411539463439732665590283894055758807453108021061980129909537625733574608251455595939407654715478144898334204951043691374571646395119807487972195006342051630452192068000808519056917039188035796966689625898476613159793133818481350247715639676552330320201940679900502627512542248114651216607685838326713684086937173731334550490305959408105733629789081233570961953220070414112823882628470865640844638461097561117416944510540438600859701581503567023942862918943598346031573264179137214048802995658835007647833538404977652955938177167181908843883648867744380321553926113920394351950822712778999808905987806177063270055197525170953324202600173143421164250982187100828674897127414092526034427126293679882217424966937748630725979013261738268577991118688472521512708572452260745535830329913937417553391260650351508827572744869632028837972458160268767859914632974162495365616598608362745972639156114199541816703884915957761257137646534614854250930484940156293721584274445956215788009038213772696041884095546129500915320596159293855727913057639231411329131345882775494903237281008688038184500241053164246030452602778027491526702817573746276751695994736360809627833463716012877059097779961483275302363327304641198948869973559999644364549661201713705913498426135246067785236078032605466990060610935566006438581767825371406216701143166361340328083493540594290931577438226597532492290808615313007855341617714410529155645872210654676763545627702728768959731331315373946461163739471811444554825093113159537783522584058262474662647470553118603875380416835939301872063591367021936357370536043555253150982617607743328911546575724901513434556164928110066869355562569229192859015275901993656654100663373652083138206136266914671203909562749020617063848080187933443065678057308484512311841739101781632306219356884190373032922861927798324660949137269948858758681312508472386826699352749586307992020123196416941414754682152610762310149235093291453766962993726083425093992997363991551955889955876925912269246360630085757718377835632927616917501574837928982511800769647867983216780079050343897702311402206379599014605744322235709519114253937321444931679548248932494990392610868705924408981340043454271600652110834586735424269513513690204799616669893972067865753916286188548402396075016872215319020990535809745808051081065784121634305385701702230267886111492230359874222683784977090243657756516385294405964264526790023747699255336133844227489510276556605103979181264942446989738064660901758444972393878329393359736045647630500721278335115553711077916152957453852634545978301546419797870513253065515968910163595721423312734531130676463926266837381557706554994754470714844404629275825006283276833447844017857740893762615328713716277286487301050420808536346186856473880007739483488237392766878975400234086988171573618626602267869670160666610633901834107198277967681732175569889795344477680881760180762069522503681568467761407436550096697757637396971556807240798775454478977241998401113770287312556036844037775239428368642951118813769961975872306141870586081867218607096426478747354904131887177984651869340131127954351200143142549969960053881475223953686357855439473364465499375261908001465246157135636203504630469268366166056441009834298078149732347783798501521159019539491292462976403760606776268008780272588662115736214549124088974135565945480209887527384986918327622357257764104147144611257869526285013763915448028863323675980939073028117554697534329691753811427338278309633851162015483176756276804619212477736018843876495568477346913513497218287883806512352073287878390806369258006037732909452831940540116478317909377431993744963592931186061691512752138815876909295384554514720532147943349724228612779591978939126822256595052737764479337009078300124154442240899470161923280452940853690361404035344994786850294185109794934424046375794565742148201956702836475983676440138742708347528746038892239664145649568085549782706082903138433944573799868779362905918497522823248078448396808156465023193373733741164371534026159012601572687764279602429775033595018857697338470979424185612819503239130463980737706190390309821844215655234563161532693181802575122371500979453747050053466674366618361650464105379133766638494171630034980439491460005640629846952320931232162465620217857057089802864204434860001505426379337917761519152007746223700664555781472811489938005006049323379764822771572247350689887777519146587633939358522652233473651438560322348873602278558473653482777884150962412182888723423085175846094520867526404544095048768570843236724802567592634934990823616862241797627334715370468405654951614381818497209882263177463617897122146880178268470460015095856670747580621172990631926387749207258420655680573513044284182801826239656342796667353767558081102714741999718370891118175722286719784533648464627959791149724850076503893142005727687732018282939698350355337272119236866551921341405327391200071553636318789369201923380494930047470679291670933129148865524640685832127733713161460640639871003475870931384801628263793577546870799752247646063799019508300462373418519238454639987587797082271062514438353536659184215580876684254241455589828850036233373116381690904934360771452948115234956942707527682564913078364690490366705841273746427328608448563074392108891448355854374980925310745595601684268831335433483017775101726583601947268953961972230879702706942066551228336721223625594194490084208466144338546000808813345982386126207264884015842766486629847466561606578482649860467654164641536561121492540113516747118967574587662099720401782112109675604661029332889679631288738477349506223656282097338636054664712441701682216622128057314668025058255450517864502126267251188907351825269411518350239661462750146192379992923973382799333463374090159218419441173047116047316913095197679010285346816275772014430596019582465897219650749184155657367831809748542592148011397959978291229261481972188656478086349188227544955604546780831748883473258730384912319198387531599139797557160198894590889425750669480642258086041824925086508642462429468798475690732716777925254164134527672787489831646409422296391325609444621995461466172539908103376412344516923186510553646943654157375276161959390457017716538295756322438327834476584673359399427692996357511595390422337160816660355836036779178070065826605194168342485256674836106442838007485024954881058884006393265534008662476274263952585343740000619580256549062352355517585416500197093379583836388493963289970136663969026993798389746765776589069464279916128808325111526675919021637183787125930319277143044284342262638206824883122542915230088471631544070867695931878416910590633492305856344764030565534312674143895115081311414952365340640837136489858362080689395785643539724189865872085974761447788861581630013091642325554053819271676535721060782551404453926435515182657137796654634177062132057612676069940446804260560500764041429204841348924700826322010516930338296808200888622967775763774108757250217266186908307276594831356493790130965329313894956718621548547146340092566594342968105422692300355459103297761410650746941381880306054611770401216191955021054893746921599494956601575955169663125287736111809740976696535296943330523011897050973787399450804210355700171063236336900209736397932765963201821441239395546526827478230793136810722979956313040319703703545748167146178375110415203502634145440605117301926225302654362652350949312659365451861337529072932757394507730037511370238573494031360227981266218248780706055062637144839287636279312507461985853235682759181683728680419546340996784209468235276686732600833457047349227974217873184814465238569942369369944446382543956377274803109347566872585233168972436073305845853954049615954758622889141776022867267380692368210736210664684888760783426425895624726950857970678208895984740091773308567180800666962947039997718398060437011455714428382916377797732715519970670421482993799811881369321770789855236162264759567350582353647084650648891373024006275739267710801767303476724181185454297845446674262176236890956179943554713434312862048402389821583758506090767571363798074452001195173603682638575997401876070011963835936066982550573530017517269544956127786599550121240748731151441713103171732691927071252267197848352804643517346871549511384525312429803281328918229408985318371079897552288304470250804859838894431022288678367393172639916871874986416889141422207197796752891392084977511484282285555145924334815684020765874543132688139040889789260744518163988744402700005088236807261429086062442213370709589050248234117909845283921365824872710556526203348639726002940428934356893562632352177380965876686684831281226154108908967325346046230969069716282958863284946064076747842862812839521784890844642908787445054248112085808613469934531607816170489234877313825779591535190011277784929665209290589291451961774589467315181482248619286405057284350875582609346122538019395427161290192668745894973363903100780743671528723780519727199218722608233246148731077163083296545670554986299168523727841429156597611079447828095793546968066037228609127011740890015494197061572205834281531583742113660318059469981303261200656972590098899614628416306043695908920061364034363367103987237751675765110017026971226167146666887504891456158725019217226669856023818678115050540082928894142429827982684259752888838652507136566813518622948915725757154429892005039001445057346955366347552191000515365841696649998375181293622940515652293369858258403832473657109089518958266932084123969389102735607609744257378948559579657625020665715982520322217218935985596894853825550858634505439174977845976971540344481937959330536467476210194588142157787231888387758680956098749150217015382799587582148180715591926403292871170009910133947209535344525379605868935684950509829232911194887299858696226941007594915708324705667445367695977805001689595658449250358224613592712280188587607990204493214557417902721560036652515542272294481938092182052366729171241492967681943028286828721307424349829321765727771632426807102661841145736080421003963999995143422859134434693758277911817694319570335680576222865848339049926935231408030150339580609392378393197059843847848262521750381567565579355706493477364004096497392512218780803544647996376873160158720224539852296992975986775817635140523560588933052846772554617334694783642984347686605304260877662801122606109249757079191266484872377812438374943270788976492760345038190619050939754458262522629968930631581255650992341549077991279271589103358854435662733983827613081778860899771964329130807659289053980086884323663022376006539860607848727035949475240811884672690551259008683570073300755152330919115691025816755898895031991267443188464557326338533273151134878040050722990426943375888948763793033107831927042214595334987886314357992760391759249099227421320698852620470073167328584741820362829675439986475689256013860297772390783228962101992113362458431017386086759202618590682014259240367199226253675622259030778799480022551053957080270785423424600122969758253184470785493729690296630688890496372266163592344024510761326273015709618962400278294940769261145383514079839675800176024000834816828371774703569157648147561527402747610841250075919139361238945071208213143911020878740565270337097136928184071476658019434545840060409914700351017163293257105343243271032518817901964387476061428144592989106143818547331131079872513524856984342658033243184427003349160661917533242149460390414816331029997622009616333207130455301419930217000431767834539507387697909334994333429659824515602569155903287854518575405826030086898654351428504002114212598113507550141400648160164403322269998064911335774871761184574686289543053756423576386508022113293277011193320808662089401274264384833984664231647933904715096617608681315097468691916869979976174322478234285394348243977827349437010134834590294947257088559666244982029525749521988993454736242806680053993847530534261984852430424630177581257233762892528227865184151628776151334086293631954983211444029148625463040398196828092920890177938075378561078101932513463445997741023577513432878192283318024650717014546553879317429754775635359784042197699224579107004982425178685205413850502200278131293956989263949185762663325879110943688328164373646808072293520191046558203076141666475299644020386851022639366957481077551465014629775061188560217164388397877313628191845205397568028973393892948879534080805080230239184187557296766707850492531474758998521377484689105165134041231836840647599312314668147089297553621107536413320529784054422004536536880875211478645331091446060498709578281884531562568136757081233186515398106725006345312336077039565504082039330500104572048911945317474785485463753179901459884572137663251885578314430798047633647607203887175519763981703463635011387854007213657889344348155841474930024453294631485414280014627026396237608832128032412708786554894680735916283491578751877558872362100691257941408795230312267542037234173551031784228918908890715170616420549952937159832320393077170510212469287670666993073907706844917625376272140867911914871812868425651412182827490565907377124569045393250650545593933755329748995752310383561182492937052104255056337745030703971995191104098322161171509294075439505484422758331228334926936005179268532899024056598930121756505578259048234883346289522691516037167307190910797819565678558711955462049863773845278331746639902698887722489072755227024055189025267801599949319846031955365889828228146066144887296521606420300190439516048173842285806544883010207650778922917474612942896068066292492167759019643501097188266460081860703123712932365980837780292143985038376752249901355899395821631314139861438221182281243041638375790734312963550108947230935529489477931512792201305511893851217532395147231788875129230801262269464449679044976128769103905408785941047087794981533562881942979528036580114522048045122328502706435364945150660215510394569151259314815605313128793402657307251317326937771191507168165303206634674025392399123563952715896101185143729607473143139882647922177321020019745789895822645564698086536763793275892448318769690994895742423114519187358449468544942834261557249440859331035081192057651344641843243546091753700443408514115607745867849213603106575937631922150044433688001108223157441702294508935827145424604738798410992215497432294413213866233997057813604346776095767332164564431584570953470804048460652390300535147636278607587884197389003016491868143012298833283587827078195209234342577557681905778428447943709809817940764896169419599450409697344990561940647614248116676374740235657997484302116463574073600193543995158959118943219432999471593143242191456865265437807197603979837551410910444733483467287033756858726094063239363974210400046553666838738536241072704482447784103175451095670890256458804637370178071140169764529705990287536301154639985616929770728760389880494585904551586593004231740809119866712439114180780811960899195982858968082073287552387799873409815928161895791458615145746542571958497672128974957750056586370192528763878805501795802654773054763138662670023152629299446143727345398701741286155807207715804341119376819517191579174923042148099853268806790347425668062159615472194716109873593260042732984921469941205210369971572270144374378785027884220780504134172289476979803549422736999457841547715857835521710011215467197015101781320041234791187521507848855436473496312702251382504421961590549370345404095017296442234192858935070128176472903870110960491167402910149184001333612545152725490240900602714619168004094301732034569828728120929647193594855307155321985702668926676591510428349385785991190750260415727321616667380539440263683225056591445665225081314167021973924830901019947465392498918818035197172422059736013356129256524605767565099883721746031674158918063926508120521597517716416445871510171065982959629883377047525475904439802487187877649581842182219724818576272174084437696156155744186871838619690471628463816288189762043312442250814975531617428066846060730391439466574846402457456369194155529627396541956344544818810968215407624278732657175295616210601548785018731459320025223203330723007686886148234671535945494649298640651395366947293334335352258934878053141016301390074072248491724473177462276033189103223472846463787616111968530485838777888165974981800487638120316917675977977107136115282013002933621004707772768421021860398512414321570964543736988943833396724223520721105196221913565756506773160463819165817699666995068767724881795220106662721217644797703945825413290242768042670719852753404251059882016726568010530320204304561554882864919414253217784452473321279685941071276686168760156407879343318023399777747645692549580815289049372495164234157237047561472253439211940755933262949565197384545859583532832498645203438253746734659338725492367204379757267320310756233239003020491620801229073829242108987558422500512091457709951161577171619657230671397943668055175950273850453900134922236587420170016103473797384255731419356111392532472218583127942735435471635968034854411532150246547468136508639731010373425309995855520464775514704999360589763976658581732645714992021774126763269446812222948048657668907288563990656430788222944777902254638478412651875799903414750753859477076058526001923425987383508155978793931200888675852580058692635718508399074806130515140093398645417464149503957702777604541025749021094874998842642909080112524179075578077500373248152655598374858320465769892538343425277705874675846386943548309736318997513335745553208275760699254519414911122302416146132086228484741184412021984020718610296190512277183005860391047356076571787835739844562168956125791136104866594014823510673984507383662074941612848401677568333823145613180881341677361790542723681083356482238852922091766746486127201108293418068817433247006506725291861527793048346028583853646070128371256481243537225417855632869390612188759998090263046268426816746203029286449501991250051630082232282284840414843953416938635212685519270845424121566076003260621980941986387041580905402077439741268011240553117644875954788219266929194946188573886186989888855285781860137126967569553515319903425394807350381156920199687277692802397044216657737796556190353241578127227240221806068449166456432370649333521407195059605658585783178830245305956448168248522938779216577853894186834006712272605664374650695418778528056719438849049857778552486437940086597850249027923053768653947125096935533745179756680430547336704513446515230333362845121172457684722486143459928935326261790437263043855664414198444313883772333107360768450573630003594341788981428507265817580084103986089452947191903884377938205761522923645684790229961902707781136968417586962135035980696350277950477148027742052911960979434514349305588222829446328212278199045497624370238721184285316373566006812797868217324635751516472552909750560032863536872601312948130522316765680642014141236308499889227828178078213174701981314282861389248682370915756038726655390844460402150609746256754627161220866657577334622088015408506161711549282950336280564973669750627325174746497371597267784950162736076153647678571793772990915037696566740473898827993692662781347647781922730936935074180963536205790814385150663061782670858563381115448133982060522417585993087610793081144001630166931603393976604152097117148556819315401385298648541202125266951880638973232553742872599051670555960086351674038222618650782028266082888543490541924053988646228075133209323754688533328227344046496288909348351441035495916370011821782032487771633417374976910606340184379418171306854325287089063961101427085471442142857256557036716090223994330981870292974633983313718507522753935596681945144429246752718138791262127953049031152304055894139578559092002030914327689475630304464900892965793954248344548409050349423973206581257030350811985286111266516639029309432437350785358730157959302756542519085588734884280621631008721431692519328119496307965558351611236816266989654439724922975897178046797464362209944717196779781740554791829834701712627848560533391926865431396263161967831117800483309370874645292307282678092947901037373490597812183087659597244760544597178909466796429459398389339847570578510207579353068830179041942349480714454943306162142130882610838240431340395127569242610941193266141714746190099037494866376608543505890081351373724844953288889487476804313212616311354375512569554478395243031344094944321180193869457221627080027134122307117468692458799114546971079143956513004619380815947263179884080272117049133154897338724143965100185420870164722301108525172863120022159600922541511361013174583437735807519618481040412473436941418521644587873478395682613621349129026619078907951671676116877784917704180951763425094793357301495642194846833542709891502798581347629707398162653189453193606155297366406960324901194002773170451981147658040502398379334661894514702431223364555049929017703276640488579716777227664569741930947284423646184299190637712747909374476828159970841448232244606635843145635596879246471387790610724766905480693710087939677369857420291917009300454423859420735156282897586126758613308488783224419473986786124124437468224852263959343300799613649404126849053154189622523294273393213563089486105912386581626097023274504438001818778389761160749268284286565451370063802443726039675048120044829270159925524834739732237788497635725543964061560600211009802406398367446540467472944268261001297489772892477033084602450260427134320055728190596604034773844892587277605055225452663548168249475022430727384694442289911118630967328239553571011249416864541831930720136993815086930984751676703867926529815381378959902515326787220714874867008639387660886730695501866738576223940378721774858707335442178873333440674589287810825548597971429378926331836103002096229037295350652266988512999167239624257699258304732628456754213003353397443484113744110507744587104971938826753002677009778922786443753751405545549226173349291293780820032617983756937975112349803086204526960992261578405236744897485814287921714146832573812619853451079663552368074507042340211853790487494413994572915260761650687733084342648665991075017813673281369143667060744803447884083603772150332628541891441090559393149898760918252557310931078738571027548028211726174220007863769200540617820921747757374759856791252240426280454224211559557522582852895440602539073774078952482431356116376840304521300961278879476744592812171581039946398305974575858439382757625320317147122993334054776218053130402010066016624778958757320096906232104560122319048113227857305038672510695387914705091682542896173291253450513166567455607468713764098576583636658543970928362011761441563852076962630549648614300433783167512689877035911380537798873646860987290300503596025190448279155116489783485778839726712934980966759662231935345032251279561822555240091500919337924457082205936719837077489427216776545569300194703635311606510159576388891706594434605312473434304219465834679516803177651622102962375826921293715423095409765052231676866768411775188371231343198859137885775382476430141088793701025346944006391866943598622598654420850241104390135840294197818116280281480746270597682204230286811016194763893348409877714796672436855101814454951838390806341789117041110016395467909137305097632004273649203693713125482548602440765178631145511026681927509115329984027714961755071210598752588623144460434035497095306652001052710006851082998899989066020602165190499242777819853161383146468278228159851805193878698353726898083066505568800950271157400130104007517874874823816329849778196237361274216199318911997532500639952573854935062392653783976245883489106798838655641139180642945580868921423127598590639549386555209480793129978091724011678956021293201907468575959199003037064964199127511169048633445556612876626041272945424696563202584142330397404302014766357692356898846059615363333030880525461633996482225354462671655395816098067984758211275927590115139057894156165528674383821542109987734876973429086460770752816064413456144854103077066130670874367658628632191816143072201236781875501985045278019496542615223494389012351021781985044016910612339872893605612728802421902593860005425618268341257215875712602032994863254800618214979802705925945334285221377917003006540779027484962351052502978114346507249866590889547646063844740666048292873298925047726963267721008164499214189704965486429785202612646759641779645967734097712495322372126618615777350218688473023306547734955007554288695520223760023784029119245582426014142491936518887378666405023538548178139705591163409199481569209389889579540488140541586760840667935747165213134041417295333308620399529994965843862518917402116278784593268457209970720629422256867602848414182687403581166051644610217941529842542949473201153903696652137671825659648375479818297226050399421902746870063971222987162214025505081263301793514766997828019844411300265778982937863469642213882701203512926142488708801223901328479055242682384857705451344653161979374776666050594822956718749153245664283794815597646751663586472882762357890347150668829569711702223738249773691658447494470849152116271481601706499673618171924925915031420092563061065467134118759929908679487533025652004471614778604956293225839121164935610787741200426737388228409151555590118663244334456488829130810894438901082371897689186242531520186125043682742980035766428739952790496802736284125802920462734764682293914776574329931611429951160944345276971918870810370344857141903252288803999728931816193374780529519717959590231599471602084346482170851568712360511128976889429178824073636070118702131693505052422056953552458644770179487728039954177891722434283953002195975584160926620594439543740078337137624843769570346057811357604040276691384674491376112524460822004511791669717551525620435030955846008870734467722641963631984396091450660720063577875518800290221031946022845879411281293091887492582586063711458708360313196374083451287056807724491105029870067811806619876691583439746855073554964132990870576778088591455610160032526331141488220864838816401429668141204612339972240358477975079529098146618125283336325561830891965121997626942737381962050293731424626257902005327974072467120591055468221837455806202602753786011697553640383211353342345864496128805995946572161175574836477576866595651770805428663245785994824384963338841257291323997928845593448963498782391708143070213000286461993381171184801664489610758459529411321878814493772589874906008379412834279207875973936158280723566503251102756683831122068082094656877608235677198161318988396940891138595760746075481890305579015657399696327553404538029845980770830034232414608413099770621865965700633444274314671926644800908949840036146440909786426245250665370977422605782207754244688189868673474040567196966225496336307592941951160532090207728686400608025450680601159361369017490328564477967370703520826877404588979224806553801132928781796412776980460845910917964165922170280769183782641748198782082153704627647136212765395949836897229540246895995018902935078142270767236783612661938575592810994054399276376600021607804232410976014716220710136130365472896377241894902023876461368821388190152165230617732919741485129450856058632378522223669931608898950809853205137518884093065714176780632389424135863457858557985871528401768916133806160732880426388142752085253424926337227028370236327644018384750148550087933626375241570461621566293268135184415814250169930725011712230821421896976824746788364843116056080546924233083260435664714271819702071001072020772449023971069885232881731205595047996476349370834237530943998467351425434034459812254927280376859576344735004830916483722821755023214746526278240423800880896127051311686379937155401896613150033966877599001516588424054883987971198399537144439992981182033572688776824433044355420694165501298689576919474484458259330248058605094770503763123221443972129428701317873318857278392591817881661324443588769938035696995925045810455887468494764767743660989042357075689087496756186220533185171941758655981941476261043101339060586499659492297086484903055589352063221983463708382751664206135875622151490433968666134064508582687701658440551695081126456848693585761543688234140653965828561848154023935833043202074348068205695032853780425255393459381986709683171166835957982671325831732261764522553923078286547745093645945510405202560515935147056833602414379169796727051813206830922420852505664679419602162639351482747435646675647279271689188399714911640004947320032303689423925658631287920354948605103372841775089362904307525796762475651087987374534288030572958469002324086149832048258286101593904918632465500359386412677945967564395247605889708898435547921854776117347959691703691121799422803894780742480521120451910029685772023639724779887913238744356455446922006533598772099273462161527355001738309926487992169877703671751078612068149616672887842807913546229868447121337850257980976752183381555827631071965654777629022190638877527312843843136044420542552468822127107098631127028612987261887940427944318365524814555844240705211109826054044789001873278411731297990830128235686490257849095985001479855873809998154133123813206244739326618481684364795871993863496035002558469832219690183847044974767301102812861648961634311190401154275408826057837844127104169045853400786630411481590539922811889489739392061129187685397134913303065420371253599047426978151084274119495728152014254216183227318763481055045805857318102464311509549687506749915748763142299713498299472835737109914852043370632439369396410873315966108150035168311501724451827743050809607739420467498874688804516354112533018222088014849172891886534020236944809368573909367054849574886138100753233082977725492351670167113034757301239251223156674716020196951197567101356615589612630278558344855988373595959412824578206932610768438466796768765870102416438489812641055010271393756551998840501536569017495206476250390035334762929064654480068774945971706109510405239888068004858986845490366618199872454321552040212430946344523416707007894391908712450676485210010935360112521413068610911258294945170946986853676796033320631362855106780352254131139346233381576087860577061417686775049266561342982815029587812677218343818794745110058994773298278358009288632459915194172535544684600618537816981223681965952871153164138157741612325555309531043999116407659341205222594411428333567050069846933099225996852461705360341463331063653509367565271165349039330416127399822489827353242255211879189952017862305110200531436970718443866256695916820656096396212834038427141879342225068526774815097284740035094542172810961648891044720843166637564443377329660892288907626174898793478341585179646606025395902917450884094500163610113619311495534402767104658927383797456885660646272623220280051854942067991407914823102331250618346778366989704167012911425819547957758547819309209705331436420922724509684632191401300629636159917681504690594636758406056841465118131723643079196984922423484715169535833696578213611286244198015056684901291048884326159386093308393946183814750809876368021927624025875978327779367051826422149098274468408037064807767272332808918941884993927511690047107471232730504868106550141936103425194749006097355583473593257039850993403516542107764080002454254828817528504818773273710899908206405880369438700612594480632004544282182910696400436501268440394757083204305575345996180073655690883534526925620945659635309236907347657010775925569866452643260683968266824930777288455090587771114571680226806922978442501706755206570849107340696169329001452115140345776952232447580976170711592894929268311633508406750546312885436459454577278483491011172106893689503571691628780250792304424440907966624735325339512623823477236629163402594221486262126672788883716813778950101593172869308746307253387170167062980013192816306666906260598857722134823344019639720046009559899605771642241610238693066323071115467270486500780247604395793270774137055397419998555778389541592606650386899207118991281276891990627779261491075658605308210748345792033574608665391792749929275100020265542738210801526272277768316913040543556782975999859966102955685726282717236522893126373651700716654423810132050370646678181084197525380889625093118805449260955225489562950875250845590265533881021181051705125001413326801550655446377722252809669048770220441334398190751940736968197718192383301165446462328775901595433035315111238313974375243672916934520990401497015687781522903117902466985432246897969957704678995429501270093865688898680955045400030430653924018756431044151947846390824072237723269464242847333602343750902057995557507692825226399183031326467773502433634859471290963394119229181183326049550832089746261037384008978254768491806850260913072521068585111425187622701321427289365326498230025298269548360815537658093779334220750044431736536784279931391698867617577453689518467425172655695184096999360821209820628788982823642810984461352182440038694717318400378539533329296851430243710238644655568067841876537261891968122527003326153654265199254871508629364269832355169387201353225537518635054990563827635692687611039692919240447340793315711717471702150415752044507144040036424649288724170110897954424605616721193324601239457854446217346893754116549204713414457550996443162594472403293150533389524504469716396314090408612654598784049917649889953210816925216238466953402015754264381043626743789166009161285205721695868530818762168027770117417978920536866401121573885550407683384810546182303660798163554130992711054616207336578310309695136517411456678654876121514969141477824714380050023280547835539634606795861335115851346635778283383243999287148892119872250040792232177917633294872945487922856319711905383081206250473485320960179752602417419539585274477475147465504232580189389151002245088697850670099096474641107264504446812269113133500202360929346576121964141881411548456278011071153816830736018215587936217808308602726681568845093915261839986233306783371892327970330838451803883566244145789532897728988504705032884441140199637883966103376617243219496553092513879070988435970504789607769849942208414986598631797532066139339334401410301057286278673656561555341364817178490936273287583169258818536379655525123093350234901010904618422895363976535103274820416560340432551201093120191897423431371114010117636812858291354116768273194014455367636166792591688509551770520531118175464741340248922039578061536222423700949640234270089607642127805134271869903024006018414456726376928580674071340533561288738584730581417548747597560346957432134547687669701965704361443970498362695318121297796560325824251241703988878690594051292594484435128570909581547181905549080542488687411260039630036322290326479985453461078350984960512250410153755955809868288827639005247375997967561517310473532520859244357855176127287338100270394218659365979150264751003244704745441261480938470292660074109705983461126230086457806274500957519347671848012570742119201091979031307691416585861728290763339440501540130935197642138894771312515054698603378335883703499000856986299259402789226357105889973962382319984115422434830939818860328774573994670091298294918696828680725422140564612621337048370678873925366294282105617497855371716836238855018834980833661483509660665847803261284992078769154815784763117054143468807947490052436043933703466244036009970998880677641577309811657309251160975338112034384253803428765484487265234132677519965482884848186433009682835038373457499300849747090559031646245938136507976860342215117990643389814148547096304474065548138926168286239440598403324027996416206151281369392923328394062131000214316273488192018901092625105550587805749823078385709809638397402630930838659715441976592332651987873112599043572092966608700305194179205775809130723716177621978917029767410551304799690923838506948165491411612268139052178622611834642094838425688698503570794254147300410174123754457620700853564233492649844301657786863257522665261380781501875581184901788226421441484854266046389143012242419950968282992599321276735051197766604424344606978895079409511257022519074421106715482433018118416809998341387909339261951619038754218891797865470901961296360552464195413214270187656759655758760002015199319120802004512690793135857475342873237771943162778906498701470617445722166191340259056489838740567174419713294154760469699530506508705381584945729611459856241719682558662290970746195006231460502199866803779227841112598132419424158778257741956832513706171188144985589868466235312587269666910963388149220763757034921267473005255169936632832656074716191733015777177524659080435748409837405705208909597014288291538655436833549713964010172047351235805710458134450602331390698967155101609802519196727468436847977732937684593809597584660582642666035284283094316001699970469903569223055177448199969730579691059242775934243870452465965266557778153623912271392351279909837975684561802258656487548705054034643718853245421310588934713745110663824160283046413991901549699621770874715056684457006820710573180726702567332441530958504013571163201034722379475640547412480684278979154984577390897598718573539006875471293182286049019973134619701360779012229631523845374830638386385933474657549313696976115524641175392690728883099659815186394234776569184664033174637674360881469678054710823817296261512184795333669847241434228210824646150559511723436384802141627024856101918328821398642079707098692130285436122809919965527122391675365868340760534493550517357724629950243200241998137455374487867326968852319795068965450125568077210172024986494628633301410050428879954292475406520197701288739661915185443976730155667278585829290932521869407732604821832090823735515046611948047837724246372835327803543108839426513349405847980712408662697248781808602023849233480756090661853277086697464567310896334205292929402492328991554302729189790920699061892093679872776529696159169466065904997551968167664391124441843737002638116780039378193845449134549552941987166391735106109856958780607479251743609538187223871602708381707384685803978084823083416035691623374475587241718202669230869585467667818230225439360082427719713120776577257740035099348119348604038966770117264857669951702801056052464192416195084745814203701840243012999177472011522048333132994496861364436872077681374230015275385360824384239464258058415847282149315598781517669693802827838267322917902995567947997634768253288176422571627964656741027488648536872978712711826685130388889840699943109249941089895879932333170225087249647351632105302343293570800690958881291372414252630822404629465467188427012005623545927008756188541866297536389497513402831672826580013220317700382008697339394017232402502195707485052324058373640198921036271707874839445536031014597504504261724997825959154453830785368278732277544979903102479259798359882139693297684958565055303243728134463585801852958174236680085154811070743574676482232876417029183768164943300846447209858131056187855416443065493050737200518497936788546092734035182273028903298622911125741548018722319628908990819969025393284094902242658054834358573779985761408190588820092645754133444180183121513917696335987385994665637279831802520943452884671235139720070172921886668527015382204264563984885218552489275394518919603532676399493256541879948695596581438346290567225254103471454622222593862538577030398802623906001585641721681404396434403486806968883054925688174333922934419133892572932927356592309619693527947341810795268940721881946326321300891269743603612997083665286448147924654964643398568136644481412226373969665407251718656828112733013787739480397839311445881537837652501633067225860182743446353949472739100598070692776965091561520034236479946519642616739124343006916642324588765479382071957485988035962263234515390018313638153040344273266412157124513219073658321516157178557004292855602530214824121029221830616202534317951037618918532244010346358794198485128580499283168726289419783886744580940917493045386246878622358359636200935121661209046403445725181646545345423787320069193880206862009817150514301150231775978803806720073717684434263940743013966368440904998735440212901037491239550425476829300715954913589736659600354105442711168851671912823226282226941678468502109365811729302602744787570930519626986260176559967264461715580700484850904221620650374768392455272793965326747421856857736645449931951107370877686246317053783222777081196564152077933680922052541458178669151176368258840934565284533369813497295063702128415420594502547183826617954989741648986161902144186742544128389593146580081955433740144811004219659574088292716158332434366450141198993718276546582061885286584803687056485653133222695627027444439648759159957219159046778911656068316956302154654866087901528947089140212039123777839281914412288704204150348910650604163123277091231400259186651886645427851625536202062335621297022957222619736427398451200083535515981165600147671801044636579598469578368991286977735647619063121177152397538459401088498390316545950943252077296255883803926259924941681321362066584913627338554006070600403513576994663482813377656262247548757105514661478434680437880800704280948843889793781740861111079701470912166790884867687866908874267832251759835353629850161078266291291974668439587341218687885486149957088326757661174484371646500618645495046154771730656044463352809134058874906786969223953937746902703068265433876071637548249054039151725034365355738419221881844950493260750344959460369333219821188749489930545852311513621319887150447644758290906836053537749278754985012564772557509635699440651043918425289356985329482315568338086439947737037302627543134541678250506501265114846032304101700818694185949837112309741902049864590102609803054688031441978783326995549862474577785512587607406847872549663931190339511680254760942547416473272586631800486114529213105511597486206045174098708744168532462298540190733724404662266363680747962308998344597395594881748624182860313513242865863147235358197336327136774975098878243998795135550325056639428809528168586649580210338909711019676683497274584309316273542506527554674087103294808832348506950792924140956315897368060984603851980504480705596909080609055964431286975734743075070757967423135445208419055350735541356753576461769848898396442337187310730663478335449365454273994006675614695406591080217192637171949555463099168202376258346578075819454573924052858032805244912145423238210812925056976915510050129909931913173303880835302859643490738079285035260320030659012321674412236427926886683642514133182383431672957619111481827891501078702270528024619514015509607828905355483245936357337097669331557641273269455678900412995323783797711884407081686419849344470613671786614935752468521401305798540763920643167816864731374485276053183174768818276778935019266413025004068336133436542340078499678017921730779241414712522679891858650136912425372449141137965552899352583729289357961303527632647245783204982643305914348948945225613096575344827961296684853988369640636264675593144285736822547861487636282835162452820673293856768316528167552306812010661077612131956428411486050544335918835054898396656261395231004457832733036613038307758709567824997752669484160877183163103228584879342926071282710418446941282276327904946353649406850956595458784049730730081241796566227677242765760959381248436890038415314962418962898464250446469900538925962161717761820085710634096348732345827378073979882126577461743628542927727282646485151673075814533905249196959937726226938018446439168861685764121840511510632465590005853061234837950760463012239131308178765039793510411634534891223087717646288349887994892236912847533096089769878871290860322205827183761257203039397405854837701818615957076035947955692704032500209726858927542062233208430725581478324904505747401699207811110472862852562185527002235355287515100561062587879087830233705363397712951883713889654963694769496027281963048268306945114162885180499580371907241771431008505079268447880515135448189304954195933053600642843116327618114464583820232629212672266116737464766157379857397880618390277361416168943415058102326246920278301659685393291091378643085772102376607511056213893953547415541776006405361469095447023205597736008792215590023024136435777037391355501286501882973321455955230548998952454692825310939937333292070076754794648900644014867664023972504979648753650262036997974178389741746322361193764073353675908844899163035627139521558216140220254288208876619360943261389991633073438973682040422524246358372570037681885734044443829989089781455210710170133433741682306477888984851419694707669525929979700268230066043771323444179680869947285778298010365911128465707017818315140955203923948811429117212495418715164238501354472271342482475915907825302758965315823983091054805460601044439317877358396408521792535560043204661420422777682499331966403331312845254720902509083654353515198029612869015841785155086468059414688813276417704012366252313775489976724788966053912382547364427719267044549931091778680485996423115423432634533381881392429818962714372995517500549256331618993378716569453067231236776473781634179217822361520210743710030688019078619991325189347179017292162670840284951817290860071365392792409387363658890077433278547294911697231303012632491679495080539763663409827997999536968694524078950958478206550603850362071638645537154300653298359316175096914709459918104693597727978311539937779675430797499413455245417827759463773422372751139310259769133763845465230376027058396912182765818093247018453256150848575103792225390525614230695996846810468831150657155369536916247897796998303337695434526409218114277421719427653176986429973760780125470556833823187040114101222688240248984169684402280124000969191106279018592628335534976923508023231934126458131923090840722668835003730497963287176283547390681320081814150435075639447541605548857045719583563655901616272358898509890086354848821735942806782459838463416214752031566089027803626385491262034534356831219172873689625203631640066531358349124046299715955897489738153374701171326947733923547166246272341419359433214851923550928702742197185792252342461116908150429314374148976514084582200106905809841904777401114683597637837492375892092958113988381212112706528996529277986250132837665848144029067298336746011139199835875226961549550455047032377505563365546579919769105953090498110545398734226398190425105184847462443944356020828686345024389779723613969301798800373180917447564285706807036421729836038212976485853981556135666281900934906771495245738143192042730135495698608389950069487263765447515117290328581451122045287415924065521281203900685037970099839937916265805684159709652346417888054799500478701925722530572525962535834483937237412889332483473419809858678261139998802300587893695578405563235110117835562648601166303768331465145984016485643486278788865110405726467771353172291925126048982032390695253738395828811899002151860203253404505583209579978849508282980470424243967729130577326802524710591920024265282560098153694619898390827833840136399477553699212091670161035313660442939211784094896427885228868721189216601462360719902715923295922867144775831912654030770252642222426826120343561929622865021723900023640934366749078191492932313650266769416487694748938116047978125550436366086674409469010643287518360273532598223399608534550829596514855808101684214423133675263602228592323040408966169275524454503284043010817217445079844854637716153372369413215435702085148871640012858572866140024957893565874033099197347402502735271304523149200413514193378994196086305867614045100041014305386937663631037675024896120902394474402505104815608729437479525667540044956303771804692022661660798936214820308442422427075137005853739623631608393939188219520453952965219000022624214407670817217882544453574920490880503424625053759505678716879584670826515185554562701618879295760624002006942837264070070062873758185079720715910238376878142401681843057374546414571971650339653629248345558869814360427550754954194031462709678027007267060350957319252233436056613999434624486672721843675316562393752422180817399531944671484285068532040051398277490427270020421888785513765123303380864186216119579696944440422208415680841595677259789953093300279839434131577671339844571982979641775852228314626565868211303919996430250537588077866209208655387677947970699368758359824293497171471866860251966905541078304489246368358446623634644771063162744242515671983481691018238290164346753186730512801002388174384936817425097838309373012709200510972508017860986875122835052327135065667696191731812296035423182472591590149143853237012445030308946346525020969402751639121744837849887812949092246349528216428727973352647154929562854417550386805805685286540779286997518566397138017117659670799977251725014905835038873929305879376324930305270841826967359924835364235054917458386347436304139536262333406553078448962903815620991962955233305015301510286309026833815021445670878094954777765899771695315316040323958803490479716544851124535595881254575953043524514109332219315035682932654096170030570486490711807228738385474334375248677044049246587988256928399213543780101519677383821158506590940082887269634013102087307534007308712601936011530128939866737458493217743283287524174513378456744953918084377375430271763713085809070185368242654213248546725774932932636702983527126401577393642771752300463468621618951993704738621494658483958969017071219793736194286369426433717786425891092129361894413633637867881251243799344636530056114145619496316752810808010093096474176217350892527870323785937327002468201497529238126453268079342139757442298748670794943042620482971623441314041284452510751353457617791913154543091147223438740674568208958535086347493302977257504719817314609101327587234671249383695394790805393186127981110233920077490747084835005213654064193612048008308499489598974044170878429810314801722569206908658811777225519209115200814383268153299169647149718678362635065693851894485784049319076754975120793861968667427185568125350428963790855958074466115546288338064861813088107366624643357953479901007565910169099402200968874529964400166878288870254972529859018246175298743540579898613159349023143204838560414819678350390120120551344154444152139036253535125273229639470311237693218133166899487783848943416272225115755406769929935782002047552714809918839297279462027639614878686763907272696292594183543659377985944703682556182656900135999827025373867148046658113648395162887153254022213796044489244149106736524054846083611198041704183383906878458798951969503551580538791978163362616852376901867535260656539088723266959606280028901735295044344114960424772334339303528421239788857726662013909912889373163331696767001533453628104728504429441099153719651607965480947029384162071333541233456414091073357319180254999206798934127506516156610368932601924621207072110317635431511170883839626503599706116882371335698100444603487649832585649644987333432949613034777853078693539527507160834975501800132058117521016231590850530815575454990074634920899133678803387287383433966563769982669615837337208293075465775534689157672326276260512099971444461592272783939081033825688698900622483270763238491936180510894455219860930909407138455388758906739771989178592418103981769411601735080971809175293505933048921919555774366456709134590988440544059390908457079296224987686435008895956337344002238274539338185017228026512665730828291623634859905951580839732812957744050171972295509840487614495927734529355139161555823299385941645737322172011490931415806516494431748226331081749173232901574363948269912639200659667362733618143559353026924422742643396958000900970548772881978719871393364106015619234969711893550368364578451071454897644150891523523028783338799274485693321929343435662619372041786468449685658153413650057918055438842106595118569054286516520768526730296729517672021764558823579992177765946342116614447263070491977595438525767540048189003691030726292863787195546431744536582134622378252681778689802215320573866782210288751968967606191828070629016662908581379304537908666440553357175408380840441779445428033807820325973169855853440157728930089626389303965462427989258003132826081904364732583342383359944361952942320475329066011895866341804431760635650945361270045717342912786352669141267274242005003885132480766459090304154148259916974202948958920435175927774554897235385250487827361859833082541658027593661103519862871870674617629642477720321552011275024000579667405931937040076334325090476765273555038499140311442171773766156499675629458831239984908386627258124264931531612835768566829864486838498634221266953292875407525928699750981274205577547327788731913966213654115054636877856555163376676129690612391980234679085879671397476373250707702495055007510482877788600552122177163828644840957897615518349459260103013634916781247536462250422013012746902606356673826878538756681568059687136269310873571760506464893247052852582410314779256085211564273210327677156909715058309858513405324329084040079809275400255218493383365328391549134546890320114982057966367011879554269943968729595431211757393351677423864518080696476341978607197196509694439426959925362981039370558054065435942558489077153202433548059881153621512344239891546751699023713301866921050925798895527823871211293500933446620488869365913718819466971941162638091925432790031463353370652799049313630891058098814613761626133781431015246890399765419239251499614462160780977281277128979595387045485143892494394129744658308079997369525817446805505442401181411996078570066766772725442658124674106150546467103001056620343524237863634927329388958131666547651053813778680631748818159430671855510025219896656214077797362787043448590627823166307408753267147565020224381490020766835944074729437267395175887547405383690366301786944660409750311770872596221791627314415334836858583275944551909222929421046285838037816678069755451851679155887972184033270292687722310436500120445592141907547748896052810923531169474869788428209149630954753677392196291049637536992265766154464452565757430875122765971192105484916944753386358051483072070969305585633718545135062563073490445077426944046223350438931906194992882754032545169550533676702066276146615441783310624586757250652656409545029642182090494231332032142631608729578012154686952974462319374117819983768006039189586903859052115759053264634869790769519151344495239656721257880884204520620266827834833212715419534120595553196504402051562080202624528690132473697272999677814113644169589200234291206024786956966364141050029338858966377839508312059506070054098052784236152972131054939309673622995486961426987595975352349039445578395125743790470137232813953621054918800063099731816039709322110301931947470043713585230939729297784957888407196751276447750638176057081281698806234410448558465177818853420216053636414232551923593182511320550957758323942657876495409883891969686766870138410121007429082209190177627286926486392851300135590838509508316990901686637454284726417532049480583067195561599617514158760311868230887963442869244217436761872023187375785413339559499107499539270247228933566088446374515739608109692575403148812287760340054687685542150740786408697430663746742046287889184639537282322669596671897745914182155153236549008173814572230573682114812685046862700883078675419476097730044125751529591937509955723983970007506937401028340106581162103422027643682829575814415687154358977169545797208146645801087434370629628449448618351262158680878388955671686359839026413877630669975995430026506308735529613068298708863792599881612318463675801897908891778785835775514719458442329320975563794003737450886471847192879395615415901418614852537044696625460794528153654780038405605380420792784418259060273087731911538689898936892133098083498410677537928815611059728130266789815043084141430048754759654554050539436811760002866752592925826391983511478652211807820347543797695750933411453684114488624123703432569884361312599448064020220368200502199208984332873821703199539547454138811798672162871194839116281584015858902472877395806780051614792476063834133696754076466466511544768546990803236640487959078217280085214453065691583543178186647016347468107894849073248355840540621254209752004861187048168029140741943081576699164936264481062047242821503001504597904521841783547543745579223788559604270105822281411217013252354577131997323454183724808643692262134603774571795572679159975270568116534855563328563752888752353269542781549852422807416628456524826195769471686584479670696590325006427542680535031417218325304678141991143400613902843646946635246809640475281789909608531231243192438501972133026566948330611585109946287952806441860041584013283494875819332810433954277942966765820665892607536908170131175162300615169796802891231932116427968594686719845345863463527901703714571535891225707911695279250574179888019194441000338910310075510532818206483599997500187606822934933719947299917365054876977274253105751408015739156900347944423549787253853766013997435949163295049691583496983008793477066472738317545577341909339093889025939187046727137856542540136866255702667222418318526365778695859748038368265553432248800271229360314704288079487202315014183820203951845397137337729818438761321369865428098199068766315525392428414390003664357525768639213562403840166428382343923882478191558842242083676716016777806175040653402437873763823478960184692818755505252667221875212059387094758079052211610120395363056125959680986875660906891014299815057938703452832119114603172271415462149969597110290556818510070228043107177662826257420541382050265226954273868353563599052587484161458794331698555745619123521522194071618250365693681103272168544839763353658845533711350340497669046862624220908399727947389941968024331027468506963497392343923008093084332898769716139245205965828956450708772665897165551383524752932192382402713274561355108293249191354752438330026282940166879877032475839087099125725345435601880661808512875913499826693403322394806822742026984024371718791622109655876608093105535689468648638934126099009979336016026595834276834296941737468885233802404791865393974846219759518225803360598319730248943576048239730934191896989203272276288340723237040173772587264504817958694919485298774576813606832183091171073709075174949787649647251636933224888497542390754134532168405457711840951701584856628896761736236464648653125035622489096933446531580737862006850739054672769736274362484623655899587660183361471871388972986723167997371054495047701583361738690965517122309625375444369982380205897124330958705279057508543127674419943594867242326507112826061778137760532839408234131472899957440393367746402776635155332299048395377400817531952709284837759248493737641368958829531265265677321469313961318255905020878084943298142679394642628731840105658346024690987183053074530225961729602373551270825492692897464588730071282388879055971554894639120865657549705751803258140523590524955503125679249925194656414270333755423653350068951196135325677769162699336155502912490422616365562627647547659291150897720123991099408964856850493760349541306413103134534394781945837344973771948188802404567183683706332690622234870469464348461744576089721654287385187690510922530315366055365833423994401012973108219878616325323189332374668252282256123626333130894505159837999462182861842925972188126260093008752837292336548722745331428725302797939022270646967400166469158120021665630603873033712938747140779858640349697634939472404304112055988085278859966438764508524387518093524802426222104684382446502365726268559357660799319068392637751422595012707431693723037876618312964736312527875148205597203746641424228640154026178525926899096287523412944693193411380495237176055080503279166633949413162982331749579263507558979204046622884288053921651096527923909224390285834644995534388977630787483501048110931665244938778471731223778127493570874957355925586238380968126942438169823105271862086243812719156833382243470635672454385936366032138231473985539354709681660700359914646045857245163949265091560955687792924336613893885224347849637030438633872100586027498661233307317240034907653167275759687449165246116801966887555158032450686108451996095010979805274276017667767397388237879794148498233280416151752989623625706696229823045607808998558258952263584997274864717952141867061259130804199825169947328144176433217081802564975920155446351361045940339156173770979910131041122619318606171766006870660837063675144638670820897193526781188564935199122082633712008731932285058801299552645877048102340695297433936867007545971279764395570195233473982180279621829119852538574917037188337655696956900709627558942319119465560923929105186210340765850045674334476431843184597335344655273223784072843752807376069340904332959717049844089644865748592834421719899677845610870553768647917876573427261985495413847891260821188306600334424131814890774806978064309528290979414210647632352871865562336419289840194756801934493815491250432144128298987251610186615148533902662740763953857803529783663491417311219460923259950948462370059575445243774819247510262253232920843266475071990802120424716930698748780255583424316439478446520852565065664342397395033993120940477781300318425004776557615969307647391226463916902259166045484578769491678277224425895628461079502741028885843971173311582734658531826634605081866992174515937560974559866531497225919798838099069691974815484209005643911752873793748939395182253649317618150934517179742112782862247692351110031100599230012707738086071505898076009919824932685317391183528510980546635356016368808085280676424650760417397033554785966359603347956955863078342105076843397847785126888153304664233214410159833401944856401576179657497847854969458587134664715913471192600600485712088501810696724504573760298673707678412505702248510765405300972067660035537780093186352214856444750200697552821981741285687346482025195293636552721801887326108779870224738795766817546583435013756331430675103733916311263363886502215708669900506109860716471699624534923308678955038990273365868630712560857908315655366775129925513181546443744459365150425793851131555484113333893205794008429125022112074437512568035333201960050385082289174146085841508732493582564276171747275165202444278748124155537560494413369552110466169361575556196548665700468600007048707007279153025553852072713587610309099936778909704460784711193619576221806638621748175965782035225409096541785567846951344582715046612881533154384306737134789580847546320360648485525241179613156554992806114470018099303728008800809876180434914449269462287140842104330948487500077948133282984130913973569343318189810537777392392748186230415869790591519571559662319473220725530408972321761652445944509596555877769226114813827390090326749613175650081325990559196296879182950612684068222871006496184625642815643961010160929988673403337734642735180319990654997453339219679757837192292901377590915435282267122987662447260010032790940972603692573685404571902339410752749196871425318209423125443319929020903853163108033343162134159820017293338246909578927040497568418929181067102038559793701157420205596834779778454642352818104784141860180752787186491860086679007127689116250671909816767926100193841040801774246929818029609882257759038728061652757011931513083830096409513331607490159077894523254526864390940239656115339703361234884130222932288732779384793638291453475810215455290281635945708235305192245345556482905599820697534326459078087264861302833167384848997773548984022416812756227498279194072029822136244988281292150568153558579944573037525334619727196199472007209283606136541140702502744581038925191526062987558227307089558385795543849053054027304523357849136163470291609671730679262036708825465229857780505477329510626592859617686228466052947074240377038407031991064402085543277822307978507756936920075311638926793316748061886563631659270149675007976782319096441652276650711264361146723443278164981230559999880813511352185343271942002665682633889863919607746975380279551246064677539650948975736727626219403511999899506611513693645974902122928293864357709773562140017211346355671560031378274977481824464898150026412175150656266266638844541058015643322537001509642218761993499812641014029555249466390068230081130034527318986150542786714985640233101795569821022180154792700098008235077739412364433402281579001818767499724923387999796182553838780744735773798090504949251878605205822984003437293246970375543701903659540250059579537410103836031439311569315878718714489317252892744676690047658753303954292153111511251637287162445376322076366534594802166761306895247672090792325230703276650014006233698971444082415002642517643002929224120554950872139969767414140877240835393023437091005980241787719465499650960980840307271872959125335404509321054914774534003340395329327854180743346536338157454698492758548119307579977746546658838004348221970526258780522272909226682847055545876649906438842363923173003684558255577601649029643657625519975016412410851765442388441312287593138742487610744619190435842758945030590329768132333017892007228662675198316072231836054328198649616084114264757378374171404752389187070827862240200095332799755698606399893313965330102065699224582674935911616347707614138290062353968126394869427067628420115448132621436690116484427321655438879682384892117044518338709056699856097654091884910919252880431274850618994987468302357156374091674947360145974817141266676294284869341927634966882468032012235645008092539003256171002679857263606514182396005177533820582365778335579279615718139753217300734507324642368150200674569565649972639448833482866296812106167122007143625238043033102569543964948466004149828167547077053276331563056165294946533481259927062757287495319632492364930726541806358339215048186323763549746764892140949064256938909851003128939066106078302287559487428152092385744801346142003420497739917812497525536330467922112618353240979113898199433932593747547170542086180050420318804522069265668521837115401527055526959292641854792758565657297852850334244777977823062332207280490393130761427281790900975679181861812688243783992106712037419560386540592848627153122592016258887261924936790023403281193915889885144586697743025043128717595311810493461764631541321157706035391018387528273078833107517470005962744258588584820341907906847952864319732475213999419597835428347150988463867995688792623493593902546143662220753043360213393145366494297503376087008678136923517772698575792735108591615559490143108244332339113068466464905443978668384759983913694272807436213181695864288370178524061398556962326232218827774412965239878883674031423569472206927624305049252274694950904270144393223654535509254657682499301641483384205262958093592739482356766711384119247780539759047944693390699038769783724705608388742735942971732130669046248936157587981755561890693281575987869070307143102659754228026632897426794002769410003879321524000680141825450781866399158020984577763083083260255013557585721710929931983903605379231531093013622634037463972870215831067736327027843958520270392198771772858891458934510142265804698226324490051167791208128666943142352760573796479528215468837637904260365559386254739947191540929889006147005996698088645345557701251824427544196177272865778994010954824040385154818911230081835800946833249647438967042572264855611462099690542390780577408591764269387881802299927004140972500775323090713218855285575356074123872014325949620595667206400075448587477094019650374850637339968077159459115516843097712598560223855953074749697724553569857246433793961667346707647056281145085022132715584432086031352422122460442029973920234862970063334254124468519126988739505146592091025882515496510849118729653458741387730071781739698710374895073453928408869952659116283774428613721786651379705629458305724597368452352947799312864740385158831388854039538718375133872520457953065103004741130604610232576699335391332425194455808922172625262640337746662220299567350202717868391380688768658553175819993547272538303598248055331967272836825055949130150104780864665615750510277744899698715369659885022350375777593742249902874991076467823220808828991890748510371269671101003132670267790596248392755418552875232050881272751973318866843094872042663376144652399089246399392392810896434522380984249141064987337916614118945018835795895501464000913902412834579129144781658286936729334800050155608226957714908682082780167538059163595423801711080416908865549672056004463901004871114732644848054908673206753463091968501771237618291475248636904020358095781050593850275287941060519036359857275100397146010273469139037109586134466537137804495671178340707452587467036779763354932357941746976542650369062639180396271906925557154734973624703321754979668941536375633699940413643082444436274430998524248773507600043073230122154008014471514962699235365069575186171796424944205827844266731983398437549898570686464799809254616324621497819939827418432388037690737108751234000928815630917994989680610527314085260690529542928677142710197599228341441164594558274961961685660354851369543378160296547985269747298892754722683351872294048453862612290788271227233849766841671770828690243897831409996468855028864955854327752876508996325156752310190587658242378514212197943651661733965288384343055766687124639690030458712965263245600889691114028736344429437299681771088718391089500753151230079812608391466201345290822718559931624642072692641513348542124588420640114381763883059286043700032420528954973493766224794926265046398846867303054023796341141323391022307510399352351119118023201905828648176456976229205577882959393411668494569737737366580534749054752521955800862679342700670156551774688068026194306246804909055475640909613750509692953496806438202398905374289445780008382086268572372158198489561000235126513115472278024828410861197062996417221663999631622140118093811897813383770183045504089301249994564189695641743006272104392510900336283832504421936654386019984181581586871280383393842539830976876049698345242163306608358619079210554702371267147163133181285405545605918478726089575149751578708232811151103794169471771976531616235694492110287349871285898525991635299680787554234503909238397041942740773704794004664614687927630857504653850768737835319011948968313792486654808757104412254407419503155670667384496527654263829122805422175129067654394706378179303702609454852519084892727931914651344230434473105624818811076788500716025205593363894835735896990269839542532805814171191395139107837604120312986462470126039709917427126033133930877320130793108930022457739918727211910559705219603167465402595997977217372218144171093309340596965275462976546175983017069783749632680247069199905262452401912158716123605491587047969018430520416170008857167611755293937378157812351186924444208230293035625615575288414054929337423287517641064137933970411126157358513534037528931154162303814019674456813434761515450016189843508963680955763231695990315592838865116680586718252231773777544527509405362264619341554438658606922594509149454015226023307541747311475502185220941605490175388433558088733865350662685402679394462242082415267024241320256886745174280525188479711506932472424649198253145331336768820698247689024916926963966206945232354782729339989033961803919993761036895369787219337645739514214819922407674076412681267051636729767908165199270756719698609023985408326670524444950762049003893437274349098914554377060704093865077469304739137576050367502490282020264563153234003091622664621078299027663064192358002636240470963609312869549570042723588659276807951032544508470520459264555669647085293824991083578973755923284044799725432035705436969519960005614507907197727130143456021085776361829250563975007766016007937781752736491874004091436656764407373575694415113605010732431993507445199749996277151977060237300173200769333081154751022469032745372437705570912520027003833998942335763922049613636571619143313611393443294966821474545987120367193836520452735371968743140020197841236652512194371441814987732899737057584392950825385167683875954772469553173737017303319520835364255862843641790483839815303812127433494977795935020816605678016833932141267719846068296478318440459211099886935361809108607459012224576842643147308880475332902939653075223246607003693324108838690339466586177605468838784549696420815554876310160676581654121528817470027664134138621591631762098327022149590240711048672705727471399947622282907931584171020113092335794278419471586618539589553217377194268516149598798613269195252056316953718314250676404880615992484249210960505396461248044453948308948534678056501958354024556780878634666638965141127044840624151048961593687496728485845482682419161992398788293593434671840148144037184631177904133885053632819896926340154005121906947587361001716232080810400259646524442197578536357742602422112150826611758775947097375174020069164445276918245845659973924392065256608575964008351061883188861280526448935766196774090062673619912956411749119152985596093056506529229374589623922676249075651293028920459299083526707624576953704607134996587764220282111949773374899476143255892325538109788040205838474332440005168804935299335959899149135013743670880789608926120146821554827947587326440758338907219276041910874013771836254648717022564058306352601429966900016528689171963819777221909638257566137549565480006721929291573391409595832049887082517613918447609708191320549694965309148219616142692095491459144093008239225573038262368091740605166131163223589392720919918387127418895943115478722449165390739781002670306648362103064283686215682005941153127165569338309513415979276832386746934118134710156151500975055504057441512434089714727686983793171764402891252254089172972872928261030047989814097837857533557669551234768321227874445071177330032618113724561506649962181819972509154805561640374856961562673903814644994944326382964430512415568099470876272183015140749969677783551728143762404882175076295355978450253910367522154894660517643047003620497284622568559745854339385206854350622326109364591252266331465272030551284033872579555351884032734719179086304278884175783221605133129210036631676973667210180876816844542713354066532384866916210556123367170828092057634918320345099362067998034504732234604738511184529424628446073738005582385808645599270656171813021176497849592278700089940702115051870649766607835541907036390726354087928047562888583202477733596324343751682762007031252295136585482323231384482272493189150802271771001646329310965735750671611790846073253932227099961040816688210499086836146414771040530598037391123803566776452690413005336056066279805897761357646871401067693764313712475084013980370570365565613659905123360391937301424594965202411833946729188983790000385925661023712927607474455467736539921079527693194591652789416877261225199412001167860176247974718002041340949731113861430891486903969631014168161423058101634795247323948703239544628256550245028957592674174808885977730274343739060976577141461967703928015706124778231578429262034030974659532131797110365582269640781575253953395917011922783987154241501571039611680064031544818945713740043113591114261443996179683621041666435334171918045694416719986089666093690381625680641892987809689052671739590501560133851368936407823132544031906666525293324258806792125304347708100465378886037457689150429336832355407941758722058955225182311868600159506809564465582204600340758017897191540816409887655111159737201495476229380724005920934895961183699150757479963954985351309266407892880225341586811499127699905695067585562984261395559630943278880567772577747206450065147760269707359713164474468324695071777516174541900750268913229404676682623957241618275053471002746321938840787409768052047295181280365998253718011094710592338792218876769971687446237740709785427543572706345603234433133026909249979472779167661407409850324413122528497474104911413149811789040177140642630701909751676573269291359681553506306502050638573376127211316518924539736420513872978424069228429599292090860033117524766311318906061226651608581746631948463239592918530737210350662636595214503809144357625398802033082159416373733843923974752040091984321732198335856489476273943419079398331390350941423815770791823144258066373309729863942996008975796512867684148201640216396461317627200159708443972938405316345797794672773100770155539598773893863531706029241165748084817231585536525159033029839126942388131381570787838755953614931690702133227180756796653116156248275870631183255706069945696719564828008529325452402677892279199631516595981443135456744803544239980604421016559452589172001525817011929915649267585514129732944367903208082178834897944905767638052373376992158578666376108621278169584946972933148340233373563293444851549595602880471779348010766986682716616201743698092152457609592531591439476042251837363866699699795217814901595940944361587190556631343755123709777602393133925735829290061811822202163638791491930844797018843011254754532300107538834927782373727808549334365277905322162019297794669936034211904933690958035090273156967708802467950902183039040542200887162756965727627040318700881720409688015033708468338534032730393049249539946633233332072245769254556033409299832079634094183268855989045026653142511831178632726037040178998078376669313564715129123767057471321612763482277394025660810503690952144060283826995634407150195930383265985957058863424309635867204813011166568111894782709416665915046897489455283672066250831077784990264544736146433916395260149013355290499357977021179874035193909589079188295492775576890334812318356220904580965847898549086472339302087343584359098150154987213866331884561078879457825068916932282596488286615043091886121897078684740849132451828475160970809626959905133971900606131042139944304542387808715211346255697456098719424747170989029707250802702518390908075211937675600519005553313834392069671095548331515157162187749339038846387974596893990403553343240257470335751699238550880915218766491208721405697914773227722362403027929383767506561407796091645059311987577710091409557096919758538151712088227544725593402777481715796435742155095212954346505436672918048417646865517133479009718166309296847020473827482051305900819235486082135451897379134773837905604412558710721643646916624737876052464861374229271442922138836188977262721100783203462710630421855620192603533990419791586572937721105504748563546735829212366476809633988138302740721327227213520748581889101389286989123261596622235367783343129300185304108059432873897903943360675143952512266209912976575404326896914860269378347495310449518562171131246675261128060691651980346385074900921585991951145443758119412911655444080641363830472484145152551516402889344511776930692336408495072499062824123930024553867783180708811009229552087820726290168022390662276688972672622122663720458126070031695772560388902686005161554985173696315125816677109444246092985323606897490817403657129321682831019377507438147819446040688558834953765885416607653879503837675846844686122378735983854961806902501893726536372994107587042919980374787893362909625175954034772953479275541742449084425173484549118138662698361778442135561327948340958275163942747860341266904230252534403236845272705367913804048944832000339428348867280554892006663245858112712130581674691189030190791000511867866760447286480103126907847455771326961445949632423473013732960065518134270808859734996650837802847619652501659371680507313146011555037057125114811313337335694173967464827698598603044950842047689652070762824918629066737897244881686428792083402295480773344298494092850223641950304447974646757209490880114300978750669054423936810238944161080030164187500966086810944910501794029403658507464191161965658570130848998883441360992459119742678554433088737212994887778079116850485278829002041788138384378534628130967479778283996712297051463907588745147620124092244006012747013148867304972415392367508650726220602850621221625215270114729529806820461275947194832670704565680530995196841644696359997720702681565507038411909959240730238101047933979177584864922932088355049648878688626341757115317773878227847600074176849346272244611268917926470424749858262683501591129263983334486542174120697454741608145996414817510607463693871832296703211045974653046904270079609956139586635152318008659679911565909776056971862668594366100148711275514115413080949574235435217412452523951064712671326803574457732710053361391435968347156793374481985438822393094123580927142228983509780628613702940246734680795395374118234532051329198844008170916919492941005812877910088930179360318536009385333902398119451637168577783757602015715901005393839208889319006902311140267601629885862328563165027642006575700973055770208778045478529215962815707480249280134255618865368568927601859563442899130377924927838166115008931753913075726646973600304846298401517608978536186962905842680987775094818499016660762446722140922258254798483003526653853099542661643951421638865996175212361767853613175046324996350647497428866542925175386388633231096191913568268287670813380894743964334507257370161202576196829297354762953655050124011601320991642102865010338818474479868456686723185156914433149613733860145048752615800282569243630486025046353400233406207406086167913127752264976719252178408174295942377140011739460012409549903539508557251566160123577823292675376292426983692164796233440638032075941907579761979318802504502142216049626688309489237007405850921530017670556722088339596536424730984009583751457941758721439677660880361809976286566397921923352968164489775623756673720585249713584449052743957220133042930119106662240529614746104666003345968880475731896776362075744062943889579968703451556396308080667391363960297739819446817093242410927065452771044701777642590984158809445468116926408505703449332459671944786700435852659809613627568390036988992776633402448667877386622631071691034175301207580298669654688908634205978653902168759207493614816230577015356764304445662849963086219357244078595252643304831570833018408340463950347904044276811367204402213749199191596070256891166373843529376231478614448653308372333420573817043535623408052915662220722932588491872962582327488742586176114032039022076795204109419569658347255149728133570501523042183010417181365406344243950238205941958840076012487245264587000870572171165466507231876419462805111696749787277208415356437527684992770628021618072791629424114577469060209854235562406247841669638086556280039964734241730564814057165105662039897521872996126161843277002241601427248761358692020118858166783210917044983459972443549376777492656281438492062451608675473658692345622734052679790027274473154433843627162568820142525240203636222348942118890840142374968281237859084477924135886437703069200706318986759979508816521434360634395005293176621028814915860743011882749803039961814914962747710037698595772504201285128333907419433733148318457346553924345673579333038653411139415815476098896286341093413872304313259433105494315404393078425397203715841614435884605669754824216750140608283730274129869206627027204746713401600498870056200277173960376606787073701028567312498329348501617818817842983073849745854649836853272529927325729169266096533970810478328543401668497202678036629827862611554500363358641548483552062478227289770658641884654046525616824764426979416728644511963354248846747939965084809291555555044083274779629152675788644891316162063871333205368932663633020737892644590608574978555920597292922572471133137687328058998440321235362573206038795200898162779959777283525827791961422290696148310061243059913001649863751018480601359621990564000718184153589228435143317596759645282483499678068709893828235919670135624216559723604595250011822381796821442749844837635396796472576346079597598740273783716687714245185732249681228087069568431443824642904036878550660744279884494304687921203191361760885520475385217896264524507747929388300103949333469297368714878045283285996042226652038329130464616675762330504083221541312566556719732645649665280766215303210384901263306714063267619169201830533554397873324963799402172635506599492458855618591381115856294523318122839823805939912053858253742214995879819589176454030374255173134034398635796239407783165499844605010078271317040369727814225330127847817045388040508239691456921363420668968346164356407319807511869632863612394870398949611223422946264964261807253321650085621498991278187569491535068596101881558208386639656587549620990790884754708343013173465210396306978337995302788094012816601371601578262024603220601135041481200951873485642648481463125254036394723368155830558288849881920042163868391039211856475122995182771507296677930815791616791405973904373379122067143737492115792087293390864041309806530479376900168698481819354334811232890448706361174157605376506561584728969520588260387114765295960104980268540325208781550433096323325613243252566753484959934398256902439748756673210111933494738344402747379134224236319509153723837748629970498656941053078319942686991093236486246729763699098248125925932498903892694322116338234332210907254108774495271947990163912411592983211711469300047061419619901879253328656389411070736361949996809681197185603667641230721658564014591997065608234146798944264652373447151350897651926409137897098571962901230634602358384610298634797310735039098036329518769539991231669934869189810012439663007774018443492329593763802340914294292930639427188959924464392590625519412514973246740669649801268161319399002503251274021859591384055890215310412531657759225930473735569218724043847593841076347353769640537244423445724626742676023361200224244933960694896238674098671501989763446211833470237157132154443090135890298129980907014461103674704439716341116253700502104870033770136824957471412066237460407494877700149711321864576335089788105830258872232475578290794970223194911450509350214721653073172734751753988881297559214753228215650025693043974754113962669398038020382897642835668335050760518570068632069415441452820369171152493155881913787519439577018053083478336669168605058381105092231865231044254264741128490770146666111720921482113637229901758097237446745131067812286262069516514696310291257401372675163873851917231474098229783201067605041935044654330705002823635332763727931664046310038639620115409210195212300708374499839000719864229847303886988173213896017035670742739591139694741695551150298247193331641620098975749860050949601110853433233849077240051979172758345679627172144351878103682252799147853457043066395420003488955017767630533672104415030848597534377241720580973317316677041475411742487557707308263795475936035407547396881489349088401502230887549937878286326970678623688979307000897767397938329141362612140740004394593988272165834092921041137510517475426856692571304014957619420834836237252012023156407976877911775399398198673487210345467940206185340105850032101282933799058530689519792370612389506627186332275093921926616829124754319611592837983738716363054783593446756635256994556191303515983355499905997030267657502298307641547802096719358551271889508502110094050241593820331895458906243898367842463630982711701413236233534095779323303944186010879465533694128953998758241925643656381980725159642194021912856693202844655310452642818808864301477918941952636649083524330149140740775391895346528261859968908337251860378047381646262130650814959093089261400552080968815405364926653425934998455046182063454575680437786143744320631684865533484378115901025456994088996701708499014246350344820104836697037600362290161914208824387840516430277910783257364395034771297382772749856237572081429032062558366583080699688831625848700970974597081588365431577145162862331170057406536565268042543655734165930058090842704989666870089274714086169109788007367702086531316109926761675251103470848165540667329322183742693829685668341706046289907810958247666357078833817118072784458563127196784527973930051587725842733116209575455129557846939132039534590706239301715176017657916544030081404008286569992457789442882134947201030437094685636438382299996723834086269478158895380073547545878976431867097891943451527061360890027044121589732748054451554693481497604401496994732289533563150405714527090332775434481467513689491477109652947877494304813069807413753199545757796983008051620705061473001679466070187144250700553810435140037316455104074263392444178815275461348470067985975763619254120077025033812398538549367331766657921596880080610056174740539598378085597650107254619242241020099157753595584143205597643986414150625485991193739460449101935533113114768845955585272654584533630161282300404368086640020181347918547554145697465409212671124512352088658854313305731720074397972430320894172223050482807514885061734497760214809589454394539048391938056328457810891264737953973776073854802543268880489745877781078178117994349290505554167025385554488642778629401903856730011470164624889831216727582031102855090356333136640046982030914442815179016549884705965470436566490303313751570974030985314640038577376711716982659803556837434275028862958080601294395938582602822151135724825247121939960451059260337717970255150417906433313513687113662945638940028169992511336590419913039344214793505931048347527409314305696950572650566866511044457757443024096902178735968866888729922106711618769225984875837110696820516248656626517846276298877233810033301057781001343363187900493563065326071524550244607614962152291630584291720251905381393707498004369247708099819721954004504870479487670818717659674917067007983263376532421693438306759208416077649287747601578174806797537962062879084192565928614030227929638451171385277038786338338343226045090431550419096121764589309781821028777557500662829251520954213111060811641245835872608112337949477855497629375076509240746944838503037972851737391711611888679316475241100308912518956775800457809643609706053538798810505974307223236823711179195689540120130671407191984070609717792021648964151682526235142123133794729357697896872773424688824372664304942254462695894665408344233854262044477420519451768844339881211643254802706904173582721313863674203761301091158488611256145229181896089026071506992316005546111118852480372336736428804003365534869622467616929956381309244775506363613166853566518391219599093252449233059219929334884383215232855816492158655576765713489569008138300670188303125953379473864283534270301475215186916757744435661949695022383877630432770543207610699697793740461193742788898154876503621818571290474399904672925754795464406886417509486522604123209542977809450783348601522428382047528878914447455286787172114384551919279107117269885178119373189084997826238795866223566299257412998496545012123451374080079393924045794978193976940851198094374435520419469364446396331697716231824659942271435961383983737777997750345838684393687933712605211881961218596176085172015296604216543988810992097998273895447295959531747400268758579810814319418805668562866655419484163900676828403611873505505643687620016134100158862639275505189051809261526995643838470263098820007344921816203235560231343581118526094736715974252376080199635207544881628994082180926087622840340972798315352924024763081270431851111772434837455299842955380848660870624891511740251827592971519086744111836192176866704217760294133785997911377996571886112698824056597981510401520729225956292252027205606607355420613074613931487272064165494295136142359189333862620886794751861763393337353402739096545353866932621101820546337143313613258713498021575092041124384745217050794682205196883879976864190564753591733210618636807163617512940526355178724941245000469707915341509727160321122293549905747110758228491087064410254515396693607776936336487050558675104145273321632397745051670414720860929733506421618871677410070250680540191059771757977681454338093555845467583513022524531608757551656419982355696928472897277478021133562553606356381248793594774840690442028542540164454137603259963467740908780853081505757874706813338660187941861292359001106962779460607853976276812355645703717761822055488500319780995537093322324239188639214998044224312705986501448839368225911382261195026222514562793284444821063193048476214540927055917421661533473278897439104070670772106751613250692470235001238968334630123432371844567032716549936320635193694070081127506173511216313672155670080667230003858528853559904751071753262104085461407069488004093211026275586307305851977091396353811009726134588219992582749305515680691868816604819807348103694335017532116721519167312297268991227751621345717222350448432979782585097880694016636938020280647625192409378410397170097721437551386906155236855021968693436399801205693361823507286334810667235853740443362336377209940135993880845453616895661008707525263594209451103607817841498446901525068453063553739070088445548007324016643972487899818640442402603941487216537247974609650549625080296618991461767825419085222068462097923745351506888132576531876752292404739682988861596099997012530899266980334216780741649915708669075666920915603480043050041724628417310639388948733539130205210781898429876254232193935258610374049536747055352570720547156640011784038772768851374094923066523338471972351849458960389085783925839195314754824610485193586502054351308512027235538635548832643357559991160608102278820430572743911663806685274434568162359133725971385551823534958405837923914478356032557648184959355902898968311264650686141276022619791050709655939726811367303445726756931223995694693403485986917898868408282537010929366201175588195344384658498976984602533080449904499978081564366099296316335318038912213461563750341074735978680909964018271274880792165135599370225347603137299523782507258356364416197657460452767450673108893368050821990457007844099488729379858092926693279011212886149846422575966976055089053211664116932157719557849453406542537824353150827163397384066563468335437345675086314822572005131147941575737697695160304909315359433162562519933415478480024584347526153393078267929369076129258159721298118687155867690705964775692359280404977460211613692581528138527139361337143586951785057483665559363288303364396847358644188000795161114380830995665030449760440365839900484037445160812850524075013654314311375927373402574937579092221260497196949829724385470014139852498962739019215013202086692403815156578492781257082773793340343003189336672509842824817582886355576069506888082379322554615456717808456888902699696070678945563662191290108889195320397776001709881107355589167715762478341284299446106432476852634074183341620050390583416666658206635335844311845135785086983547978960647790290897356638799021049628172221558252104663198315602000938164590542288997542672235283055676372767688166601255334074565063252925699973799651745524027500171253056846127687450049166767736490582592440355885498795474513039635344942319866895304269218344866698579524377316890063858634910067322887007538692902561676574985182857205326272780258243756546808784712631436108657825346202987641263201884342681866994993955320438928235151591605333828421580558952022116307606578330561359933231536857893238192224454614833466406676183212044130198010089364806356883269167982183412311592984491919054356656673802729226934910636609993169929752062532061639025808133910704935119237336824118265257870697234209557130978401217493422799006495413955767927113221736474281412629447351374525292416591739656742777087275794511175443763340271572765614659799144933289172328904769074479175717788488502478284502942051654449891658995926199218231606127515165660849415007876697813466162244050426588069400756977017329159305287900683465614273538720920712626706515749476107769097301788281083667156530867117300109102245467051153085495925129923824132093658961315444859228377699529799425367391762921603803669942541360891059218027036010272498269762443535363305404034349026260721923133438975596310953324018847497210924877475893962037582299417028716171025488790476606991849563944338974042793989831016593449897105585461396868993170407675798861778459758693559992836743694275097523248796181005279471393281026456672591209523170977925667523231309923770066870021674993989272546034548081320915180653432484075705532731298998302794070747275356656817191149174074220372933364158359170337153299572430850187275199884494065082001590469163474010710358641159390233296545744206594324000765766627082071387106869387948609014061360067971676257623203886589610619986437314899675024255305247658193203438210881021619376892406058309843994421800956818063587126463855990736165359302961171319971095860989081201424134981536852924994761091554875472441751300808698239552246552748083026141708037397464560941292151149219952990566444957150701589026629489529665835597226844691935920985416261244146366127673462401201741891401491225619533464188303717312111820969458909582436824315612215898973754650549314839056486296115133094778656572905665751661051734633279864314661555415510795173063518145412787956333395147448395822119779555408122455546863932878900399862328775364553985511039747636331004978699300835600664947852628850097997726701692654886735243216366814467170124359652286491756085957953218317835028545308333387358535834451082738309114687744070719212509322810653881778608623890710311347708176798334484085817846722386586438061852779508763435045657267192624404619616929149588537035979524989849527809431950024054274973677658321016290069998824177546245987939651883325680829610290205000330321503369113591933879812826969647005748660711582522328095665430858241595148573250600881899624992683429388740600716615402249676979604875950672033290529401261933860353150580238673186632499971429522555601161794774476848856624309983368689431997818540003513181838373617469202133811560195879926274766217964773495946479228909460499259690837793504051236322894844004305970620598862085895568338762058426936771946818294002686809674312253944269387029906824482314531928366925673804730354841169560230218316740329746072198523425087736978121661172443684792215955909404185185321105702567577004219192319276142212587773458854613057122494262449677853958300364793993476861116024812196744734690061248343452589217551363692868433131291173687336134138629616916173888539368906700830418442960703238855519078809373492746438307499509506942751925991705160085605222715530776881387066128790440347382027834559846674304720658831047545541272261904480911528763867129040633996352025824646166667109926467719803993473264221948628990703956451482867919248838766783535233502214164790940234508358959615586700342737834891807175922379513563413256246383139800966632622428596750137933247421137139846659388928484640929663083414166173682279664849603382235279846537486886652590697960467455126302314667288477681778316749320108062893806788118927136106493228121412352747947442800210128522918100527235765141251128164749311217139869953315725202616815529974798182340719425038318959416800219468091981730303524406866516303572338497855912238645779716777971400011965100532127307265142476570340878124527208998534719738575888482522773620313965176257633154982438109386509395313675012804894196788439451846838606564606468520727569863094881257106912390003180829840791874221870728065218711048829038328673001395621422538669717131801723936165161086165082543378417304244318377096739572351941783366707939469549613077318866142870059514040073375405668805427100957138354362282588893135331924548600533391018350681736870296437352187696361034408674769086940448061201584697919174824582043330379947763475764609595742982101918175113014563720006876615665789442101199337967957562421250998590447244853294629717600829582167367498511612522009739509819870573289873701626394485750120866699803949738311103388911926722767587434332100678745940943519496333377548251322042061079754488898143719910743745938928455925836119024827127449082451874824335956374165259861261353907146826292603791782014599916147020238573663894544451016192669420177564008451097060068579275478872938520343900873739908846865835111801517382580143874611648350126157297569414188250381636982199537846809501042354280056688572913979527758964009470171347530131118436195657631503003040852972532103077276368122546084040567800036277474437642368259746402754059405676256550908924540446556580155355651472118202147280796800436771674591049616044153230473389824308590840247719960114362714523396152740909902006471830190139566455218838283447543095424676636106030348738654248695857294206818018524736047277988840871818491534564593710285251244544987811554593942160243990450107440459945778732854158164271220754715236236626232264851625091290330198629342074676962852340227370466275057941479978439626227191325227970191108836889403109521934025851994929427803974359841838312514283358043267921402708276238116077800421103786268204725642378241701785162921519527052814035992624923175096926694714827809140687768163007618878455867096833787960544769593717586117414302633169689139817531223313884815972523544734973863539277628035356649101653397332123472737619817751358621277786483505386836967721962198353171029350978183618978571602592110810315634201329222333087482978065816041860166222376732309092268419046857442687101712314620671412125742491935268856642094639696944707275953135324498464583674673279115637688556641053728628571784149020795618503313488888941189501750943742721974004033993385989597193005816467322496525564710605241342359754003060680965870711003074441652037780931911945916970197173564229570842559473264759248561314027968430263361843558427031546757787330087976851706033430494057483386075257156032982406273055356221969513115686205785417649697363523666285772056780526434663362361804277123973556662985334556232162980840625833571235862443903362468337657866753531033939777390523312156952428442192586312532115709085107485848539096670085801040398941267170579905645672437726328797891863716138004585513029532647444327707770445765387250928001378967226144834018724465059606999276106177362024372780495797279936597478736261129589938681716342170884206753307618338110745247111882954366546033881073679572112101097250348516190267602986516687607606869763030288823617376973898690666913582887053886195992770512699606834542518074489443807787108621993376535280577170751800688580839316066273106688550853096734115203443656826419660837475308392540219157788897784225969263633228263744147552034903639754136690440980562362095707914136016925228693523918505471748814781382513106067370241559628399249451222309627984617853097097073530503728538109989326129554343701255383250586517261538609878973681829861124398555322078021327937906407900970012708695785370036105610228879718808288503085442157595474924470150366628452507432207904019403505544933221424178358776844190982178620068067298218380557968602254655350167145255726222223845824593127712014772610557672209939090190799065678162396529362979147934361550252672209029217423810629732373448274726576293214470552183126690210155736359489174921961029133709312136029810514632854511354657246775775921860877597142575908148736228300775034842514119335107333367059224380716384145971881720159481927369281830235169741104597000007037306671741011753994791042347401906436478948756972928219390301650923142427642804255874587056895337531515927231278545269927270790552882046402161555214085739735237905506689275964232323140213946447140375845592084433297927719129391763774732261909277450729293364461286800630713514150472269555305899183467058126236162021989084480328521923570711446335946720561982227443806591234090709466258902791532831008478222202789934741929678610245652030220520888357313233248783146889494325649289778395176543411113414548808923151764601137371758641575531945229129303611289878153076071971694496809026978771483794557813186406725213537981190494496699118893003392552043176114332595609291655862900089986364746394543104786320449406520367865639590463827114019823205503814870667313807533748952580679072421175501047757248833006315660382388721484267187622969979331722125138083882010381863066614684012559044087799465762265091073884629301007111381737474412699942018456827400362985007271267345073059100933235087368828887548913399929675489724295682271024139020691271173742874967792855487644690405827329192995859098603144550645810276918211911730625471529101772503663864818689710926378869128594089101905867307734232469806501735376982812512199115897548555452075398339720836458276278313642931817005387688969214824154307129356648971910575140369949043212143731693309821206733488544045393318547282317639705900505527613838432937688479473282017569961829339365887911948709739540559578351881562721819188640597970838819259993106229075845378695855454754743628069340056744777259432843081580207560487614884111146016132440823348866715361427374413206523980471745976118919838819117795936565144898936954593026750922099503327203821344622241279928509942504430021708619302447023007488673092167573154092883082119983738660234128356368432556364605806264345266473181156702418441090498154940979059286036350576373836536799173832802192873689520726426392319773580183069225950916590826238869809767081555470959432680663645402932054121217292133572662761052598331322356576820408588262711069020879495727472840539617783227694967872458019501917179400752053153053321157060236531538345934058623595335785482032147693500322645601842511571536326016870135503159268497217341843571708624201151321706441584229986548579582055957676061984563602753889604814399946281030716870567462429286162146389670530243602544236321527840423185193065759702194338347040530692456476225953898066164096531587177836405990646875430412936774715888218098372062314678846190438854899611595562205461325576003965584678247136925989425254194417333667417510308528994650176955382015972827517826175441776996302271427381470188324204520778888053121764390795782808725835681054946168509900346649272170259910755198231282029580474733361493141606866157149483996831440023886070083182238684277094738492263589603107334075147244114984040415885612259500036552214539518476998405064484703057724390477848480526573586969501226939076009783950738103127570318237407669671335191435711875531334866919011086703334921854320965480494255638287961197078164486861253233812865310483573218802344185219828074071999007546363514455736332204655783360744880224809736543731258127730265029502528148985207136882202585587637258120504463758084596212419635809262261917544707782825245273696313516963050158730271719197126897883827051982042066231675684978421165800294189611654073061888075186018962624862262080533146491768062184149712832085417762667751411961708383756029593397161009415024432301749505675258483353176425793116008896700094854104724487784931400174006260327486615904343182477302383235770027379894476771037973517159721741817001477444212448376067942463275025139186438628637219292253675771418635459393635647025591399478365583661076733780238319667759118552217429119884329960592687317675689881338097452428208255163436419141854268584518196850210169167839201598569495139844426692260898428569473576086149095750686227862226320024474192647516015487586330482847018049044975732134087809005910931296464006267716305104818305463295448588353158657008973019090970540652950618544206802999475255502226495269130253163047527616155219629160407453576022028203530066521218269826874760619300840675921708427860168593615076630995841758907910192975450625883986780895208738815328329969224859725431399061950429786073958377561285108191074924203887471661183305338263333450582932033958198316440943475922461530861341778520184310151839257871007448735378252851533164364571378215472758148978566936572259721969337630589706799128351111547229946130811263663166724661893781044940834193376338868280846313167578580354360893010021493288958880697055421881159704983318058691110121198599823085737556528090473360011108152431099761575534946879632552905468123566545887556976993338645095834723865581515754437497755122820596136943314913323547590687753065450771898145982146918953621422428826787206990688145763980374958954148165609049245038630410957609534859292276191850046105373425891388211623184885897520136693741772353426292443224059444256307580181859673059740444885665264507784526338064030622539262768260090574450059384381846135379091125344421074401277250446283248783063789131860678310880388499590539136690390493792310196303391629970131555155303674561948745780642474858780656617015723218202462073011750631938514727773496159519002413267867641836445700669313517453586628670464514507236826465511045785853995235276525794825670767135430600316789067282360842860887043607245689093541124124265791320722146517360158114764460206783734281254541236675880141088096241469595311282679717529312747632885967541565826447018765293699738871168604258607617645374918370495893255139113958998263136534622451551267340368453490045668311818725695589901398431556927604900608025930704053798468006494818359823303217167537285241568820462670463365940710141021466575159965667575514317783513061083327029221049204316863881968964534708531073067221518130988125944045122012915110954284603288097910035600744787169432773114744922951110519447116028621588712103843087812398328540387216704204201136131573769368721544066521352015717796540165895748688297304060133883679423990823232379534986405998350725778265110502615836896783008365797486973049477709684881871616453263939791481417490552679037833798409416597799772713040768760868210938109312934894476432065305395950759519516984430824227481861632782165560091077189613895636334073918894890244962765205218552431453037197702107440178228759660209286814870675737214566006061798874032912422496979982971569324918176568073672847654562592936959238656179694167915187842600293069678605735725637093433238572459184600818344834225668702968524731834260415446307893636513877357226013845334111976941877794137302274879168292210081601242513649243056472416492496296648328235700608225480822806560870729860747377935165494085911671828395854077831251063790517383719938103385479041577381658099944332966132118040539643328741453925150458348756040442078642407580276952059134975279863600299575121448398409379102496470035883879128224900952222815506026891726433374381107225653039172241005342286304851760195521730192104027649838059331602052942703990981409714684988181987407207774015219373277484516652644899170709975847657759377355681007335102010631851827056398355266542297007389402444096392773789247697055400320554170760898504605186960212736337214288603277227409255749911944051022243329406889137271053119053690100374877241258738651641820357995918263878244676414473744807412169850789683489942839984103833310757735537234809059704919238529553737006557943870492739031554663995283920070046722511081107625465302800001635834789827541490726907695238711659358475335287484550591926006300752699031653462064891671844637495168439506951102049649072117270304216625637450943925307152551112214912358184360782043453632983707832023817793942892310859143021892356535223844533818841978987463783168286343078945335946252092200517849617186568914591632994482058381937794412140385631154629354117822794759652807429168055480272734696669441442230019763804359634917435624595975260253665362271519126750775837508721711931005714248859909744138838456796359708063072992617017509605328515168473004764435004718948595268481024661294437803434871688461138597796002926920759851531860096822312215902495528250423179122068473933807085093322688477228481186509364708687747387880916040142781690423469977366321161496914488596704743967213001177974737830205689949078969957290053455110758961431514893823477330036997313897891246558963797196219409808276205496417096435727877172745423013594896315212346444654420633806533517807090127770613800658586139913197232707450074440125020925753176347198104269596269822445778616011666881867629008773983020552873855898295365516515647644795065393873581926213745884209090079148695105000043306817848263101564338780279514360972852451887117358105228525959377919735436222557224372415672104949288180983216107911791062878295167262742802415468994971709458301567961144590566709188116530006575772527476666021307450766064840969873224834011578287156237420564618411183819340449391707770802737269553150763261451543147044071246074430428575332030238132827167210600773134163460581670800973990433693833298849125969899115179275798266881962816081521184533442272962777530468128837064265382878700973315567577750818062887378523733439774493006564489936226242894246878532355903470928416356635738905593125484813812303835897890443238054549163022631876676089654756341569868007326897299885773586716063828590692799052615000391604166121178811722241855345334171824624397495109548404363929532115309891323545952008402849553326604338826658381279439817785559183042486456834555937117138146158204275321584793161395372307317649215911344520071358364746368983260687574475059488836037352080880234429933807710291378285652482143235492585394833243418359886134705293464288676886118675819195019765399240928199926509549239629288638509901912735531151805990995508004971442037206308582501381322069456258523968150845909034683633282684700944170595213256099502310500677678837895858171384433839350433411946654071122415510134629759290473253537033239414416790274185463649627065731458670501875406053957878570060799352053547287611926439061950185691250925359659191402365547065591346091032873646260799656673859777402982996682363420709354449238094084384362964224885639260962238418678951207420499879834663166353455168626814558237487978669910643175054927459659624827358196356462506540866714084924613094145140134659291142879038648102016076223443194478561837036193882415685820629072058923870218653698383242475903858687648834060050622747452581780829403666176729345849844428557519276611412450856620584275343619841315482735150730879170285803102477840965366404854900833205215217696853940267821629991091421434738895886160590000412986798608918005578370562428874789919459571337678467855506791512931855920969681093317055536466684591550345457676537443476696390054262121793260258354426161061722690397845028247707197314746950916780584175048330516268877083417785195367107638746541236913089837042705795329754262551744821678141894045298745276369023696994272587541841307446928355980638055172090373082205206798137333714558163905703137975736786845697522948201259601058431824110836366184011376790923020713096887922300603590255981918855149915605931602877973603850755631522014012305751066773817912995842805600219689876110200092738869349122907492346413694545469297950186500678119783186701540945619568354591821935850935301307795451350762872411229351754040718623520549278406737952317120607412736404929067424714319138184840578854376313384962635402620686380114230236082216872232151688112985382999194029802990931734353557872778388701460101549818307212325866407188085194764815335543204376418115043016245125546727795654985145511202630900953188468446791233565976893465073300730082262407586728476456478365910771086228023237332210117309686587956637258509226153980161679263818749978120732372180129942563269083286873495425794955721069857240977133224121330492378270584862227814285565765023498612989460181496702879966361170273813433132450458964584546532394123176618027657962044142226658168424744473122345770739330753900374583054644771768766629512176658568126175703389585639651621695102696064924420901060806736091460268315951437512226104271111518953448740461767568643798376489997328041075209749528714848781438045238866702791756453140762291953385428394580694146250115941275459550199048689125673930163222026539881299805383343449221928505382579821258346021418346713911003307538812392304659854717840543736171998357866472048864473268087866843846328434070128507453499750120272844357420511301169502693423890035696418654952476963936770444597565902464680883287969718218169365630825166686502818063206633877200674734444418999006010382150654259426454003327463462005845614179937334713183662156709675128548283651798310293387342755917682971206118315359914276230211001637801405927862397382081488240789870026635773788175571257963434407951250816678235045470860173633996355808681011975222556324419482890992105642209409156393211910892494111136271471259298877335155567669201516856596266870845700387402382684812523813129801465954239671629078007084223446255089001339863191650927370783005885413525188273749166561586486391750212429297273229808405821191348512148951618878379248489698852862833147006255905594574351113896291005859139310282404450037745391551799906599298661316201764417364455234590747496740837915300193361056394627542309600287627044438553307624260042131496235107484870027669674039316541858235366325810673771539961529751525179543780057242681672774970516901096335477897298403284491912679864372077819968011540394804842326815092954522111896914219664010520120005405415442319389862789605662281518549053412930629083227297246827535589157903568531684744311142147243085136539239559904038178380565122495907521030361288104633438493178559728139374875771312487014228167388233547057674612523205778913183229632486329554777498983662969616742042607657792538625953867351453113032815080364521340530304014116738614891479463290313658962956465154313959946183676863379303904453725148821349996986248079142027173138218539544867535995941659049382650683196374087195813830786278186957997218044142825316870683332427735975404547221770410854418102631031394190687420670349985544019327771467606612112741636421962175742116541922110129012132171448668016360496409875758937175176323400305828892900492145783271689914007899082819023247490800022019842179584989752320973059911805595675337048725815557235413379075695388573600686425927262251462061183194694527757526225034390862690297256887281980476754686625834492263663883610950699854023367516011732373070435898064539029206630778822828848367469357268112879529584411221382143036160835356700559090507280201826984379754240904376687548689600179804785380209001450289189843785900577324461845451936479736278757120857274365878431318229472938371435128242567440700438924765138842630095810870241117314133167782273719473538971311415696402383772479146744621435905565536816995513199565462994407050437807109035331762271412145978661671015423394437065824066452581756575070718140617635888062834631113009110050464596975594068831591276534070833957334825003694768396847869650887657804359558818518156425216955956555476878763881480641035115581239247279371442577255760411610515256321179447302676243779382254586287886738811145692278867132662667425222254795634113712066940313260962594362292342595825741184358417470730272862938356921267655316016469969350464260157460918073763785172814736199255745677088665010006284451701384943938518031987065649930676615289527100558832210231060718133875469541625913787582725920618008751975253659494073707527424423955717036488488628365109599181531982639259340453134722363343711171799985532677060269509953241155353589624764462392261587744839493327938106042346759717948336374199875393380026470541143375382916579750642327143586631446245763198471422347691643997621756029663116458779162931117114965155763595320728914248902023824541361528719286284755389452746148352999426324376164925438235222153895678866200422671015843859826644152016222751894451522128779050485236583311738369114778443616193324464627096359917149599415147706548811139045765471362069264596389583329656900456478075240639452354929111748607778921681008524112016161164501852260610802225550794217608568176757673305287442704525546523983063680296242674030656956556171676779343781100621106442498353629419826016948255645634426668149363738333505148594286442217104846650720282342221782942324665009899586615297507743577502422835998295875399411634294291202111497738906099339814588969201140151744123055287785055832564459142773245983453067583527623676307942705566490432615753189048643473065320041431952547189204987078689948562100734985035640495601791692082006923970342794772044406063278302988764644130387062587130368154568373842495484668711048468933042504041634529378293006553558637600793868102929940477634510792123561220318110643290602388593526961330577444336937864311201459049178133236415165652731977957685989435177165854365673667716757730545282900352803025495818874505442540741483269851474865486324785400242176669915546402044966569180306454343488653179874725741196006397391731387574500230406627978633275892489930868829010564398808439760069777019186212533964017226976223847412275395451872294354899010410054476120366066581879149344790643061364806009242167650022994018968171852124839420568550412318904021248795332401272789890864961151661604695165856254756753302579676151025143477427122640082768523321194114724209864697323516150263795454000227738192393127226462226341564651248896792429985362475881079197622614953711095284496149725098436300594951035079260613420936640015236186377973714529329686519706614980770605836836195858711717690277149807186437785290499145116152172572148151881361458122503712370477205635373935511490118215537893491175820286041127034135812846214112173041632810583242589244272031401858097401822773818025476422747355946090092152178079474176274971767257301069813603442090274082355307159178773717956326482214776881521873603620102333445202468469126769039896021529551859765613905962164894042113770875018520948608063940333292880613219942077184741232104503704134177264978078151953892302522000539684329434275696554324723161111628465597765566281003083302809891356071346921297590597535173035385362231699895600110457899924778345256696523265446267732330535270584127361364864274751199005611969430605849394944194939881895859399227352989540878616793392339294989095054252513845995026210879823544701548966046964839699615979844728340586589450297386778208820737980879304073000185237388351927400599746753844758013633584059139745996130809444995805523629002554261508296143853112196618305113786463394700171297706732058458889885930792040752618822864489207758225872148120211606740568356699253835980505584645588077305472288744244515827291059939981138629238629173996050435110253394194023918270881335603696392060705829671759939630139523734483937506163028940157218250917839893776449836546437959938152081642068772193249713558055555849302660678788293380057221586752669284162523658270766965378264539180186900360503742119970772262212559984997554212414832864428701167982610364532946737000488993424371786707047721076530661386071038249154665702568071045930774593488469621916848418703836550182093779314019822077425891924631950122329787189378677455734970922686875032708084711161616224424084859262612812756232955113627235331923352138081255151505784686228640109518068273201722454713493307141240521609213172427963046588496533469003623455101028810689809957718552945194587440138530862118613562459284513837091658678502117730201922514560226269248802327871576911411193523776875503166262592861626199779296434136795430101865224396005508795143443668201814053613504496217863096499735759746392961503775247116638316767937130880739252163872681360353590847543413933162709275999461853488630278508754052099631738537546481430153464958961122956276574341428032915120165104482620065123677084611192029745354918123243550892683753629712216274492719116134314841211955263359911012268278254516530365251118660911203104121534496289675740585565956665509527566827970689026861969106415117125156173191533283490587164553675409801895919209538642274521354632860976119245948692309585399958982630287458135683121972784263752696592199171383168777948839958976163563933479079467287550363225252733514094007793047495578382070163589697702096953659778677152228148152378231452431464125387551171701919636042132918019977519514096049363413139765514861406776297335998782666059885816981719485707824956494850032819435626711238549544180581173900582823327307291299632220166474561523309730187542095209863788978640672047899273597350752502267721060323620803539018716555411666847429977301828541382326653108248109345098338152644769651002822813446631790750433828972357453639229958212662489079046207050756398055941165810314613140071105383262851953592055110006385352418591965168436081181143403195276629806457193875209145795630764497738670628126948821135772900714370479683721352225610068017900516386677612136743074907173980879534915363356598008839729471933531305773394177112433674205458311235010244284926635293245362341305234945989808344051473799600818138190016586778711391940361784327943711902107494384732145998065868260075624296396297142963929783973920207885993720548593314549525574869013097567557439350734303862594852825575564706707415389699371802910932726921562390535849997213771375789548370542097866732483135473321414624913588233206356355995859187397558416566449330052402509866361517961920092819164791216246847752588645066842181841827238334645343928306877332294869060225127887835959034000006099007590282699544716448028990946749572373911902088074349038809770228734431061258178367037212866632515414714924743406918707435607503005274737237738635962014000428183219552409170576525267913782125117922758989470851886662233454153513735270344103351492575072397339642095762293197624553058674009303527346252927168427499782413138849704507985990321260375345688100567894949310267228988613891005593660597095229327744658999459410745948136781675552769447948568252152873429180030844506712202671324700553769521292589526668324689653043551568896105431154941978139519943936837047946939509718634987955577726117262677840569519628388521959329929679387015841215291339917247009242517667484201968539691858285021317853467087913430960727321967395947408093458854083823186228661703983310751771401520620395798768582968160745927345328154011401578201350941075962401677004901886023061339173975027834587892971480885706024508877927081708720128824774823493740790497517092584308389477728431338314100828634562800398181004323136845406226213198804044473680702066044374580732239477369371293985153628400262299689587856871951988079019725812188053061412931130630927854330003377834883010354015362333898536128378367324880929316974573714652822018345185151277077189396848055544343889165463354609824140339746612567652157341235037606209004152262201876883012907258507233834102732419574398464816141574501427893950686137459007877464813069692682211041636135135503272439545551003765125349294146918659406526762867771734914837034100969300359684419513904895658545686032689149958382950798837334127251408270483540582472276165706044117142277907302368394510365582791957984792234640761775547921528519988737016627793278618044420295400497740265108907625010022649591712928892025832496044255366874395940278753915593475030853437658652918436939991961121615621589423115832709842213527236623523653439742183506439509137526614423175312421845327180408035599574945745076329181881115906408508207116567616593641880302317631037149595400653310074092730251716842042562625661437914184651000012768228742409748074751239914324329515012720873513365286407374995356925546478836405774793789957623341467814119568995060012053513059770516525387733190483802822654150349773602822361139190208069531171070369673947393551229768354125626254947540426890200934839870923781278754366380330995836109726598015953171029304135120725525852241375872400845494248602548869879182175128696964374891797081697388170827724567399487177906527429921872237677232495529813533137787473461896691288372072101050103756486442270389774236096098948745576689025792133567066691120095862723763654381897700732080535899543017960935021286690543678664163144424458326368827832437977676392908123263114184970655574321175850502598136389427601963049027615167313140499049335061158276678138253113992156209868444463518820198819192211616705911496549389045601103077786420347681955288353411525388797023585065490549638983398229067794430399660756815254946766645996806398490349514852434683082896175715975693139438000935469036417846728856619338628149845373329417081073814210524337118615131646697693928676718965962194101662336884559518695808216579593787330409722792729939541180790852536702184947288574129827077398541948148500772165813638845608555046755282436830313214821323714505877500818643814402759786195622873572599033441694985741138854457986080386340133431619354922210497672050389327650392000319161669855850010146853094118939519651345491733682506751585398370481798605182592029124586148030724409564261214103334586149539493338596571158251652460515952318534653797945616000969322725404163336554383170642892964233856819146687114061070684626971298946266374356274832109922644253648563669263064624159036881022795574899238625197723158027807414499875751106616006347879591399935621494071264100127640172031795853702526860972695501774128717609496170246396096821238345540487173909600244542913613824926114850902872595372492774248126955073891396089620202496322213115433334450987774630672664598788858532766832708247917922298308911544391064763318492301115719416119096695897517300821308208979121214691686444532553854809799349006861635815538918345440444480008364699156502880454642251043294040566116346587443782485194162724975752714739111533005315303100098877315548678504053319804616755873559703954319009625192300551278616726204489222531058770862865528191921960771728669484443299956377115669643688416521188980523625375534782478838505281071271189511287359789126919515435279656481297871861233689107776818729534318721413207117343033670986148652978566582726485138130066650242483612750267631345727615459769862712813372630561380281500143442957928760157354084058921126226381777698474858924924977793779741291101457166652618549705458805666156670472266144694146215225243773642654320592952845328932130059294715527444498270663059207596973376947992327625586957438473902061699483383469043304615594595462506393562084377250864316613164360002905802572583275848949463411499040457696950787007651460167322375732511342035914505989954299102431679819434738925809645482819822678284958375461876230131013781565329957204419129847649709940682996338813903104843789482440074209262710776310091886806179162747457985471984508458791103897697832375114585308409642450491719137061405414678964724476693845661051863773142984266837388367621398074705907780552400468583044166419609394823430676802660788235578580184137753770326055066948529992605351459645076354507932758866130403324217659545471898965540286777188971288111661051148851101008741157689310707047702210403744248804759321354938435597513878215478522605820461685015621485826199556967836353298586398960228418812498432980372766691417722433530946643439783315334504212341852991165444851668609048620784520342077759572955915311856309143138869892229696537545579728030853976890809296286815267614566295221923511757403482539202726000949285054452057682111007707192914077105762442136548622492211917712132831884264036232731646690781705058830191791391954912833139887965699781451304208637417655485222873883953156621963530765023396999717325316545018479501824657051972276652766651987653208310142595705879416037230749558392194398957284171171481505009580377245578020598306683704247373716436453284431040283907354868259480042867503137236032840415545604634290881617693447627765951179385844523520994949919245420655815862871192342539524783606716994820761522715554598403618531496962931767415618372178692856773640616709037151625840368892485368224264851436444554712697881658560678189084857473521299343661308490002438532681745341540478977816948197700565010470391816908368234931973451948190276551691275553880448882124568931897790181050996335640877007595160198330760259465774743738765407083687556675194448823863648161546465029324472144071003210436760232079464693772006491113420975421604082631793653957495732468567577171597996637870755350202691349159581325279152130002174699305328444271719242138196323641198050943500287560101799667894594468833281436371719852474173482221579739362928693502592955203006590925394763817938481104065587905084438544613311289680427483165245782076215001084201788752624707801688815425076628260782306130609713773209762228474765022978740457829202660556938748340307665302984615449332884704082171748339800857468920269505774507528403003658519927179500851244608598134204053747730487159648109745817970392374064107188783808902387108691603717565640065117281106149677450005398791474916588086958322625526664658670148108424605935945903754376506203891922750986319592346012787943033053397941023887141239130715985365935074794400082612342361581920744489252908773090046485476102071463316018539606603267511101226287922586911300403552666044257678921780679870027276885842892310089804389786860209761024483676329219717870152286319121713052133219306011171268150956139225953185523408974536352410533700962984885245578088480653609358884295800302730059907812723575685345573479017856040128883746041492640700488330991187888550641234978721695768910694142991416917694580759207420518807173028245172987836336396805586703957983672064446080513158986569200192805628562795646408765328696176051072740118384469018077290467281255667711316937164577838105317511590853087471807424828805692500792176310403677234883162382083760394377360881147433313363961736002524985417454615572598579996964983347175856388563850083108181421510893269109977357476685321702153600417573868626934875933134955070830596283869630969507574258724824616948981804195299790795537132120478606265541062218342450744171869176549973706792453385251917482202248078192920952139869744432834634238196850881969000056552199141873840699213223692475299467369804924761129993586898075879804668497331246464330753944233739725855684580830352802065765122029161683699252723922285481738059128053730901995751820086064164846050714615102429449581837354190133932361598161169424793120152862719517874603280144354270807175642711208376631972485702448676052305943437889278149044749552158312575836150261704128773684715105374091789343964843333822402465985337667089285476018681018146809136557678360002138409902046432540360414137643206410961588250943506365543095475716925586974160185890025986639983412208993593095783499021388779520464315922210348095410293132451303705105791588273241253565269516486595425354458564159279773368872236844664121328942999871915527431862613649136070831410442650404217158746333065549333629650360686349140934139860970782347079294688351348231401575934518626994337300458649788505382814103656444480267501358086040526063153903928055958629513307589765579734273754747366364539761248164620464344945059774529465753682172640798184587656578799878456845840112217946112118882840257533921731755456840003261367399072447096365438804996096911035270998576614023823942350334430123779702303595356950057350091945721610910682358815150149013108939013440147766693676404961213392297386244410091076436247512913384338597071830735915118132377351039502426552452335193808214273092767068662444625036673365494163525961149033029076418953568088305585615635711818604971201621884952119466513467984330919276782515915768675182712116347529506578670748039120726213328401614489106589566275344754074022167687377100797458061064894624427945179928052903281278398422696237803683227450079709493626187949302613809808351590966119351431000652643894508412323025288353149518840580901776252755916679212168503091597818023466559859345153616257323762453382219357688605066262758822661280012972645986806414930602715933887853296554843372929007811242613427877159916457235040888489477604754317851191182137062947386904794510741794663757054039953084745296533158280783878703032411947135959791899271544772452630757139722866914423471557678392712100556409175744951326736262664833328954611838165016964139076556790157709594741182095749933924330290796523501491346805319928082816513523496840607896897350519696410755222896161522583229073567758385619763397123193722144302957435944262382917161130652777837182533866870077948232848167089262051958048207354078841905960330707710931890481214720193457507375043289260455493799276862332671717944233706930751353780231601751265893438967649643382071930851260091337595177810718359034297651280803198969165106979336646047098114305213407491467208286158687366734211058168628657787486181876093306142279000969186980390666407248560587028072554610345836101150526785118270008381695377723511813270027138585936860525510316258377420261950783188314457906035581117412554068724054753801566312068882107603625724799059142763643066349783946149236785624569101362531740268952503437371873053461578144950698288904115635405915166175037210439375336918517036064912808304204339262468758963071461791427365262676684024630333266415384069581109579271886133295830684346505879785839030722175974638038990450775775963309462706127207704142416954803050954515327024215945680876666437285821571435208524648377398815594906609878703735918623454758175451616469842593701151965576535512711544661473709557659455421442530304916405199520399021039474517494095997981042653134128076436386376842338569822701385088709799196456488884931377061759469514248197687073623592458532067651656154447702501180982405683073893333166001326663464953869377701711566371903956171043212356871364464995238469213586588905508175126172611846351837126161360041961579815688548373178105697389145347083880092507633882158115905607599646478180072991734675021887939482891590999742927966681142545110746376976401153044626623934492418591442209843291465666961445084054734252724183412355272277464950129350556869270427532998139073868602813930283964811195677446639524211006851815521531535215656951782756142739247218751102853893462652228276140967804146045427149525757933640522925781203858951001154544341741215858405802594223918723665216272184836434097728282756613911712864333288664709054197564796736581052500015241594892722986282803895458242560036910953199764010793106887192619809448979589265684607694835281961495341604316001106131620057278670927040084790763585361867508881253206918828514753203696286561588193035190582745622170273414821482742929803985497746911392493242029114532265112283284139857374106565026797476763446492748098157902551689882007809680302704749499390187169272597376966531571319669035541361785719883116094159663514794666706289438610668672597977174841478227327066018750388667012338064843758454305335693129576062013165295536044669602245088882674156579456760100296501700943185951132833344995439135983871171823533858102133312236498064830939266448061146508682276734924654295211103208370245099230681746099058675880300641668934043968764098765025239023036392618564410645587699305975392567942079807155657047406234880867269310877457000902593951478157962029124437776864343208579934847706834284388250267188478843552410548691013456490389473930389012557565270176763412624955346928044669733538482345172398223903385097601917725969859260109884294892159996334686609902619946465596128080115238406825759566889483074871267693619390408343783383996665738455526276809578413009389737643534477808655068629940149518779922550096587255085825717289573990819951692643118729249531533601075750943360740063886106733879472972550676807629230331711549774757029267224570214501479031602434281055646569930326390602798824674261400893862796808936567264233996437315038334322037434151159037454742055289842363040598465951646264194511497959049140121811597725245430877780225383780519604774555015822690370325896986635503059972746516727463111829144055861552938376694536586077241211482693237110000252416835883839618030573343886680923765530026146771450468427400962109858014071147512226732920800844638778615512096407388750254677706389938319459505036056693184310340357320875215252682424822445749507530444317889431311723161655909555330305171846824232444332985099418106601995606827986888829954752396306418995539176471329074015854504645037054265500425726707195708431862977123363516618212120213980478699947391902083335154016578806541437770725307010302456659814726391136408143143747387105434214645810984901868372031619417597748149151787448380815680739317294322644379383075781190701259541707939289672280455966602030854675006747046140179268622831295011121762232404532954355755200225975847123947812853361072667781639558604422929172989368917572742275224918853664259653986151718976108319208117284169630240311778529790378306301371385757118072354771073671332561243171468447863357086041076531509900962051185459190444314647729686150892040680949422419016320379465542989425195848301658974316123223415479472222766857972154225403241620317523936519897047674242789350435308148237384846050442968508200332642289299840291932924802005736152418929568491194026995599701457161552338453206041770315081379283717607183175887085265114086460794908546488429307440754920932020526921271581510891404702088277485810398997475036598129925187356561311572320360047122393562380749923941881860049012739298894685435572466566805224794812214584548156451297623517520476337394419376946191430604967991249971267436717288724785616531035925982668079253217610893520568438408917094121174036522168523001875992539545663085896055908807835760031432111856670783726504931690557456986088662150017104219087636993323105591770418029485511726378173945632695374144112905982320677525604100404076144189356090026464591098460364530113651506541624455382559563834620733687512912153451448254092739404507672519718449056909031359783949511380826013722589394928643045461340392987758194416089529373085236428384421648996143870560467052177996201968796689220334905106426326232488509884538066339119925023152864600054520388798416407630703597710801566409769218512746898740486805713106984283652646770040651929871626755430725273978459221332707535230553413851840562569852613818569298852065462411294677055336881809671075578683684345049322618055332609954303365435189557507835602781935684055220533889690359412914109655843536427587378329369985427363881459997060035596731699495503190144638267532181970686856135650705226019905881212617587225215302058999933204125915932533197134785876639691320999922990303425084415687850477631692276621711192565027810257074820576530753343864489849248784625944665588279376009450327565928725299808603604259387504548091318226725121665518043488042923378126800341215553640851414737630141048043024706804054511148533962520021558171640683913991225716617297683073715401373097654756471035112744127331144626874015140730867768049052709015208548206657995718974585671406158185363089060863357808043830768102393838367099959395566090768837071009678943517417246800927306543468873732611962769441299295083934146697212567499273762284703350117701989853146828952082703729804986965234539148566560961742415524315014096783938799341914179591914729465217794693843974577351021594037641724270339763043517927469300366583563248573853109148646845366277361422165833470600913797603625549918460425940092399486509326565492051651943126795340095221061672780358406147625800266172947565432541379785731728280953335472919669196913087975940188794688709637887452608150954085801461663066367334141843359156392303776807645492394868614257041398807377359739124492599979183154783814359407603763889537404660828172158894784493848018732452009823874106854908087917789166032126365455529767805381864030320663952523442464220831090164658520284396257327514248229515904848331805594336721228750304239789686596971095781108463210639121940278134127986865903416523396975033782902281944448880834819481453571799141352609561837211019810471052868828996213254860866524861323215524636728007630856827794623715268743887315821303953388792539794585837666037832353950756636282779337362853226641750801907447666741978549137718073664237215148733461109481240502483304605514545634782429424635513173322824213272828383055671726979597676409254137332311400858951200748443901108327234233888851961275404648336559340121384171148576346622079463893343211628091459863392008204894702092087737152921861063780077954985300597997966430884556927420692717520838287660815212753561556169176887601201678519625579995170454773614793932247184367596525570957088284158439780012523236773966151256304034212208356289370093133217396031901821427616864843465375783540712665877585344111675848784356089058320924751968551051625467410549809832668619826727438135696505446241151993462067110461707648601309602495592303606225189495481198962932605634209365128083890235890004800742368443296638727534417723717659943022887039967849826834475197611813671874878433142190301155950761574665571341558736234890286494396806457026116613045288263893031145717044879351515713821799078197183828946513267082207241976758829546030479670214302843228997301822610406950584902827550403446861443756904487244555857690897735969372179285597659203472214355420691119381946546513414490124175885128414245697028091272768523681869517336074224739617573037476365665251922213592069225067899421318180446831789446652889491803143446693157031516377129384744542824699280412935273029102461139193856758146264114135553576880179361418630537330186066152447177422884417978603639399757792578938547796516103314623871328479727678778162047999001427075361065043290967032628117184145931853379629250586600410616911952519200688632562897218790627913312837350955735241296953608750130567948187979621781463616776132525155233105150283596929052180828974394055595853702521505459902485567982511291443837617462955547083226029621716206263592197509408351159987171707221908685760678382109482114157595518763553226741704204502372234602836739901459378570739010621298396316422861362769443455185111663440202186453266062909503276374443497761866697688489290497992709838774263986926044868798305736056373358427497201707537641905903816286378757827531953123238339347983096782219389961097812701472510621367110291418981696592004516735642802491371012170297336876918183140671777732863728509241117930593800366789785190872726503963356607734259274253772813551393071445049580831653785194436264157858117351003728939332046063845923263296460521548651934405498098868430281697424578700392591510063288644302014459827122469819018486076106834987095535114322739917741574109101726197836955632267192846539616452809714410593659936527304082319190592615513361764705805320626205598404342711841567856774426314426350375294362476147784054153708682250391113492939295926716799828722710240101435727356556038603917870032899912074871607662415310934785101940262726241198538471422538853750457433509519905596997659604043343790884978021017308083906078874229908540375151868355635506364360012914925289938856082926811857384074014604330419846017325320815064504176592907511943671710967597817943650608443824747462392095555115021850723208476907567701265829557959022507709651011828891106088427320601120450612933559260292626786937475442224138168613299046333544169313413636157256327983666328107984623060534341898208090119737743967288410338612672004215325381741316845557054679172513961826032051640960705007471521474799945745934209232578734784049307407757935428220676226444867158143565757195213690580303658371802370651589268022086877487226163497713627142483603384495713927284344738684485399656704328183897214290509287415117676321820192171706705417866309771383270727627175783836755266019948638446350574674610648113749444053552376952427622364157027435325239767810416498893108313647460381575713234783743004180307909438149221008284335561510753156016609425476164119792413647205331173720146063561663043649476341620816137080965515134033156085543400841442956713420792402241467772482209184027318700625087205003831982893200462586796521199309146966741021355608453595867616807789246661555764041112069684606785297834462259957741126567952768744386703689306715711206155807985328925443054044935008265177039111052876399251223963353973415293236674581363185267849704979834148892069752776253216790925293849568163723035061280384567822797763548994663911077639243982905106215596115528562135519124827183994774849439032140069117591207423562594716983908160720098275685005800285930479000454484650201346288104065111723483956948798277659112134159003889467241072800626456121120800351770970047820523348801494840689671079271831503615801297864585427854575840544549253573327197964006026114088284456919897556991540974438411381965082827100860021979971620777880171361898395122485347133507882732576334586435199166736981980376984027907058315529875622407845796939079048807177492757954146265665459758640428132231996489940119472217205228133262679707234268378940446529123749230174459060429865413166749232769049422148417039098971278209408823023072443538281374380019400576755588852704840299257179956937112688102968003826609261922807186256986900348052961283228857124553373178759949162099031545216726534763213983307086756882790293630516352570102281855107759870351088087870232581714930128417871354583442549931798746385036823229256867592303926453712574432110312266020763610477425278174498167748133853103703711096130150322875460958755728846539958740799502069924318927868047470807216305827313577440639446454875233444149633186063038992810913929310810488848190019581725207710770551797224150244064295260814254663223230218526091656131178265834720830104858124455485435855394691758729090878421214494676541033272885578009170300069885311961163481042567836101792674662931594079438356286080478186204565444952392329461830486420113192399804547609874937046601034815790807788542895133366546112263005007000349930956978414556427942577754757498505600406185816431135488302012448353798592450764295122471107057356598876039308816171629777803117942027838698498568509544407089663443618055376946206412409911667240323921772275329223559470140169145409894162714176184580061043410821504568229083370839954859427860369022759491622921791538231520469676051404037361545365357935488628573776634685581608574597515771364405109995475039665760382570259833122735576764311711739945632655352325529300774456487563670779140042479364161324667480835200624490182026513612377564849029957407057733093216620983957104476428460751831005227868677963832372376979390435057998504187179266717925758696719968122461574133646427459085076216325835559043546679298454505446830544889746904170034341801903112871416938456680158987796597245785481445209916922932318259207394030810166870134542003386962308868123827326532105501539609944165598757288932159076336250853183095782510216827831921457610424925337520283992984089247981158747492160682117224381588527732147209301999106384204191341162934501911580094084280229062185277114191001331312877697375875261237673117487593986877985882838459756971578427627858674511448196001911385420419599817232629011447939699873464804531011105102557650831635603828449705998465953751325561310105111941542087812894622237055729416751666483424601750433442652282301236964421499491836905086541420253003967278955104020937064330166811427114718325753685912729411595542613954602040894962249774381531866334193047055153262845137074741297685041958618628222735577630140829826780150417695977532569543900844915475933298189124062839685923592150251368441757047417917041190258133492937413115119037500211149179350058205452040184942722281062975048925616900046125147141419235156914730131157269396003720655001428984593981874611542769369356672496592437798865419692208229320233657041633918762640412202516293957471632659870246542792731061955924341542633891633191151705784385835198475151086792275256896833241536243553532124216348715779090110048662895621235671749445717293886333973845913595115579070374528568137774216492408319502043709510159183947078483256080956662200098554680371405877579519614102410053732332061368756336642091197398472959307938376612411171686694839534155677144597001671886460181307919318587913790530344232297928351723576802715967045756029656766953495859696333442736330925607633273803124293345910937506529299170438391093284500243433141291924658068190445927430800139096386644040611496860137979558048968280987217712246359161753535556838534655413023239506715877167236846347142144854456746941881889264744277045144477128651916942476074118554378372521534611332121571405923780974055008518901472238775060767934215498229448235214054465524027675717951959311810560473589502570726623211876602480302956019188596006707964208742854519393416812928412864334908642853634596950444591127414334427750610795170905414024976005607733291446775186477750388405256715737623834218892506810157379062803889977585648499829732077085056871296673662517540563395189593694243357582299258308939059405956846878334072432095232355355453890995503409570128812147608339276195816962801561290852357192346561776687069917611457211408404691094220239547987392136185220961001791128406306795821931590973575697425215296519494564851114749953414240500625362001895717383257295141094715108441931604633725665866348658930777516006024473307356226830190181867446227309442221882961833710414300247296686150597255217362124107910220630528168064181403160877378896185963671986609964417806754884077773725565798765452489971697138579182813014147805816273276748636298333257421030693422831888731323521649620671970084445103323680705044528905772799864199764890233926599468359735701263852800625769834490491667775832255224387608758183677856833909568840401282675055259216049096947813662903352986338310840922818786195307936115487121407337318362704866889547477540502181679877241714827325733588389611612712417251149127691176182291599569570471820585859331437322444155820800135319926038356882827978134099672986564509952640461355279549753765609679587231256229196438475805980231761213161884026094123277988533299105592550869292390953559940868629977311255322726620303295327765135199775573586229078796262912281176085395481276515332974840968469986739971737839843881876100751734289758506168849927832955775393373957295053997939152825287733042232991108869990204715341144375585404266588934705440820584876428331948253520380821589442526258606359064706530078705241447964934652586721611872616538510515109481489469941686637874372879015163787571054549977189631245010032142638517156134801720924213553012042580745374178445490331618467022610813634508229979294928157172991459931350798949037199839666595227169850458974985837944070540489449379497890043892067266358966289651986878198333228867041431028538348194396790703294940634960925540985400371424250949851410043938839401423539007518384411686278361130999479799898911353473018225365172276797973629083091308244064269455667408131544663707167699819387844263991758294770441955262324895824608639942055023770524203812357099240104603246754199365327164424962242073384298367746359537231999665323087396129020554790942895927718377615323277374816374457413315654189594115045639063710818740310508721031447001447526056319910048257226145814152180851145081237453581267024582864012966448755958020065164583302785439271691079531123679214145754562780077635744386172478330872942493281714046154395104366207949907395064094743552000908890714498892767158859553036037749742178423308949212848319094812709256740452692216604974734516673407235779918259254004541196447825142810461756052396462889190852895391214781840603651808730323622678383171675335383768603286295021863196450438117619808646981241137395513917274399361821372548477963687889772330382346697387123595485377062227036567010588770304234483247126644261078620921951622846542926073051134570123225863196083023120667295050504536468716416901239332100509531906831639596630186320733685833478973859064266194951100280969704778134329636852273926626860605187537361670323494293604972352921465438566819825850142617756277254866357180775633782474619652842630601848778676973408777806638293271850623344268811874374590696366979129839287240884685797054380622261307661127103773610371477412570229147039836301019492677037020243010628149941145818141514956587253665767616799958849862693809333317022426211853709737551344584873094079060968687273755903406344381691982061040441877653289212596341628723034626625343391702025140797903573312273619652603369627967149645397750936530515545838260543974895844702096180745122187823202823702490941663792838793458817147050577883474919324555255652584420942066229968038146729826614190717620906765116008349207664796490727615667782262380180991166766884714017778148927048944628938372031918591384278418287546260968538419976113194388626790901763233667713912207857049823138516935818257924551478216531697444298844715629366063890916583523915288986421520264072771117326742602590160856403636602218217615816011176221310279604731390889522861343514342491203213851029433067052961104678775574495282560943631015939463886965350111839807613304922147403055454828396574319498604531155866614950604317012234866244814952413509765710468885958270464982656660471635955709338056193359562033012370996696786815947071223074224294162260485183579124540444379171791754488343078279095727139937727591049533717664867117832180647957544924373470253591286813989056814819147622040820596096936979680029490256177311589573236090085336012440301821169530996098744357727496960697708562808267533324398574495981585289694843630590374373044394546995121908282476617087744084092379945473590310023468757419944613705436010247215824468321348852519790396641656366567000336139275726128508675912644011923444132080478002431712460997933664040690746681564328976450039129598798078569695540278952008192513349092832021572557524912914947477639986554764100746488371971571139020146155454653806094023073734373910985802361506467714046211317585307387103390398920275326372754616465758995499629071009803935003072842280506615363913446436947686558639539108610133642127241546715264749811719038404088223295049207027741010225106590424028073268716567164686466768194953417304085643131071651065983623458113711165595206804337345484411089217506748609747222712507350672646065270237465648799942098734051274482302864956068467292316340513274165558161554137968309569201273571514615566815236365490726199130060983745685172845394325599275047141553687142573276832370456142588186947358849798451398817251344882483187873392502735558199837569111378373518104512540878827689292938002351704233937099039003237658787764734648204026810014974792092642447600016447044329745256121029635292334214520478358104400620132947265893414041794972661657733268282577233575792010391442440529104640873754207918081932231449910606026883363569102883367173886583403518265573401626986461844132349568449314491905290707366498743837103541956951688860561763309761450559717595518875375802568745592931934453613146376972845833832439054622542259739886314445801703563261110557696719536462686452988793535502858316196759199132229991021690191989752659102774587716799113774741726380547667617763989740594288709045091508123802616696717707491115312518071194047408145605920235159381409575659571303279766946798003015723907995324992560516188852049538570986775546873864712447002074991787771683036299994999372167003139395295643639552524238837314704385131383058318095865523225457724895617582343224393813628180501887832348023440030845067910557501444027315501960861953401122786515689025483568035092642903746689427650070647285763956254724363329202467607238070164610271426015215047285239920133331081358160930171356031264976775267017923019295096366784889045531290986173868586610440530431700148525171325375341319607140253856125500055997875168071331173495498010232208630242901753690464911227226198836558499649585821056303137047597064630942707176934943307310608359260570352665475685532607932348756377035187850763831042728705691980340692337894225191534513061896527108918460339166219409692259191713225950745066344018821255860504412723143174324589033388382669211786405989854210275600172033727379356830167748750742243175351954706580770223388898012792377104014949292542638078693976745911537790726678154436152690096577776220695139587539334226042807146534249066653122730600977624876082494733965316442316671212749964062609104752780221876056334836789651303610779868173258327326907544369282093806335307811189279207525983083814173860115248666283052828697162522739622134750422451149865959024628417308240269078251287482316617701602190769879889743216933977017632631916277680627443125080238639119375263007293992674202397373386660017522632714497477237347418690616993744721475020094825604476685231565866348263629844647970249815295959719922645438254277593150829712894164229533360838017567504712547255634446684081939475338158435609502705581791050273689739349879521550592207426448842020298842646739164453658963240231297181474065399250510169973286638607229302278560957546799856933318607006413021058171757969233470436274340104719475438636959946580651529348141929791468350396534478563084369848014354996480017189939761756066708376209381187377129881021883605445799233461075861110622597619339264503923277266841152507935768360150021892753090861099473092649457670994275563643536125980718524283388876101784946848083023891411229120646969785379332112542001157896026472055226047773312800917156635775043612647256131494730162517926827623680820464831194260157198290525645975872653054135648948078571314418717721535060693571581208631267652351869080353917368127270849930148719198757105101551964632056792629344324646565305505034447403706193152285132792759177095121981422209440903926358170452206815856977025389769369848469787211990239866017490488351547096791540664309417813111451917325392776576342643528100343001383126654990475590037824660151125462009130275440289254813280733832532833938472233900880150576827723076125996416288975565623702946310271740545236199157129213279237546098508037320549711078139773535297028460323101778604562881644483003415384697533512010153718201293990239702385065240549954908181471204942321320107985839127991706541110390442924724536620414906373121889025105480084417360942986848896204175845997942441555914393787087816988035571664988589543681956418744524130435171667634598027902144649987429151901823371007719458902472357240624256324394885449273224588850955789707081876542119482453202295191979840997549125380753388009667898810952444955422480674852198819758402253866618073678246978231265769380635946911611609849350847783224647167971902838909714217546014235013133316661462796784548946656983721074114732397349957117260985247304186117151565331196620696416996162402275473062429786933650383642510560319258831275298039334536450109609335192526266809774453249430799329103718583920471133564857488193719391871687104869056464176464910954129741520143781704609684402067287315414966172915220697041811614806775982767578268838075289211450193251376081959624079136928334165956076089198617806182741938438543723791961815490002221954863298191754783395456900745264988714053924308472711465197229697999116678830189284798702553534410257966962383875872280963609248866961987112499257090527633981216322754455890583801267110670715366853513365189062544224075840980906470035089219051099407396366596111168976866279461965004434167843593977563051373686138359538665252010379051408375559836529607044253230768852275097963777437193148912440829717975376634448005206599086449409918211151710667572240287420759126375752950900928736601993918320051840801554608164290955607884442610553439707176743855100596002104132075750149726921269119326557721078088236430453843018727532916568851870819399973065800563317460036423798993938710488639237439118960303583122994876976804902429969274343976824297129807930321290458641041882144367003188856283967204115518100915650773095364075344969248136449777997819633207913308740970205523148146521404103847407784852095979581721236865364016058521533259966470244396321803504762592964277808921129212300315989861099568479163009641264891470125359899981794400929337871257581610090648347541243989096375524435128190768462349506551800302314076138790548970984713122259272183146579782202800117254376791963732040810717421699821208789192891233796419643486244391441903597028569752207303704897838010615316137447508115823228790019240867921179313909456808861208422102662958619323625674450395811577766592529336751409364926098841633629353823404949474965610782491811246990068522050012524981530537299407232455726566609039828591134770720973875575507676835022555807856477822482548453483187626882622118714378794747372307084750733076779480673360857582834377943914160682332066743889860649805409384025684642608694268316996166210104631059604182714783210860102830744464098460354860630180540812362100396670220492031119684172744294767450856888309179832311707663367196904106544028660044973725061037098902290072615933786938582567778788737543752894921613312789775642029859929518219981462353646466829586184773883100983886424249929592462241687864863891818461867996753594520469873945553668419626816003044973119996945365038871004757439162411766242435862398127241441300739810948729464002354543858636610132005399403721993820832896572346505141347048486467927350008648521588464144371762460669457865591446995800860728057226162199887426082626613009248544508522236428324577008233393267559181987062551077712212646527233732456041941848846871822055600939797683144990759329396668159323805671951218145459647383130664757593765957089731128865746941629167501962770216304139132676890541248928573953094197834084964049054358768306778536587706483001863451365788199476476879031453770977987008221253322519677682938458938479613503350444223782982612139137346870197857610887609990585876695112739950939258426726500405744990451997685505599724894540893899877125043072056491214047157905900284110664206846685353791336569433298572952097094023247638028942502029277019443160183430879583137311575524326847716424278141505295797699970912260106968793484871088666354508105213698837611161538557797681740671356198665947498403354147816067594066307674640772047855647814555144784301889907603662505452728128512042474601830282369677525421351456259723596907690716407101978522439869718777334056255894049721823390495479413685698853905922946709898487541518780310844114795861644157568149550542158291984655915905689584470927673788802500146655677134543888866397558446555015254951533485056668762353717192471540722070804020670447170197419322739303844532038169178589535449597424203556708872316088614855854214482599247383953576829218458662539610538709472342206137211061386345599381837475908776328583844978053652206460836969802620745864910314624080829270943687734860226927420371429289088511020005694523859877683310948531163511761705054779245796686529421446683060883483058852276758454351664169472380107918720456994530211529960302263821029668190850160600289522559818926972747909070318445615838685595375747364443913875648358477222709120235200193105136300196716666313211224256746560584638845822272536493942185622642496472762686918464587946565956113648221181537468063942722498628956955020005788200476863850875459636626438118703120676924452082053605735615936228102998005065508970808082396160503517612166529896686045112550913631155450053952355325670847979551737244432065243473782178797784609170510654789796217863713746524572549652889024820107085050618486642405677957980930883842732893327341674587242680830835934704190332394802612754915195305019659431284565995922615782773544481589959197554025201299358475926867431086298540232371086105297147625785379074011187827217679573218273363305464122075538875117017599403643797473822420628575815354658701449232336979770131828954455344564243119455504120127937527125082508993785412851482202952700964707834535198653070134028232688052168996645969969543077580438793494684050309186768454937838447842232962105226214075738388154670505648667635775771179165204068474354010208730357173352447828586440359884301846922513365995434233155244651731756707570239326719438993268565431973123477909119485377344267883059472478098798176284409866007034631905188168189526565217238803621237695485710657462969531458516493087278029587876660195142778316408366445268885678137579166068306661837756278790561441642434109101645807477411542516448293992386653663903689463800112247422677380372559042005913549901598823531822715532226349062164676185280795080096680844654687534822547085475266916187692062190311893195632977158250658370320269169179400382931306946860982267348650617656493161346535548345950566394264253737762719187787047177665110835667069591090708986408843349567842517361155023797601753194734468445417323536830616495526455896707658456998371336423567948634061057133272855076823180291731084964064286272852537725858440040725352854578153423548383734297032550084142948473776638694138101401092289114814507847008165473224432522587286931999808182829756298011370587496001886477811433551003706922720438441126963708684976003076643882512846246559124161556536239423601595026660554816558243733025840774438062446932600231870189947993743361885260811508691367709544386896232426706367687006598148472616469026273445268673048941851235118997358306145389888878370300715280273833845812520418358778595815612072711597923752319562058937906626707842586842597368150561150788852936044329256557229411491011446031807086713273346575165157884631089333027091475228073909980144080539074631114164530330301062838294452577319001437004952711157367188752652707668544975376992049175931041058290323575688516930882619810742911917835010770104515815911880217745210715255717547168615081524938035460659082894083734978868942087614976057800572199992258394165097384914102962142420728422468450038286167242635549878444177563038544952998604169397354454895445572281297135890175503956029497596111585826132615315156103407054223174897142040391981358335865149450463064144372415809552582503567719991214093824629486953349378883919599567701953363901331455965291614215916460905078550990253276086464762767657846850769732837815972774911057443869567858405323346529211052868948002591134454857727908537233355622530842377953886699163011355810049079932022456603581979103391658843319094427811898656462908253842172044113030925170375976179791559956514852361316735905078234880668911909771079724421199475946416100045659084634649340204922589339591181493934407988217520304466722149739098370283373326266463424625911004855570437506777399480058578186157344154327394725569304524010525474682609084666797590095013772037698259353109376653786199642739444869390335375470376336034889255837646904918513527075215265142061355001759237505271563779987755215366559501019883039088597242474672809694492684107875161420192143779192214896648617202888985065245093293239376218349961575064486994383624256910451041495311590110332011125169227785362903378462390935225295982753159772524415413012676315907606691099519644834449597253676484094146590853140129881883075664375284811732576312031241159762649125671072131002265878099563945563331763126903932146579252381320153896166812201527594222525612694033279854395615872266506361265457949127948993888569368008180604271718353662655039222306712319702536178013463770052703405670382001851179346561717105324059877197611329836224846126565033827276746681770154876111498349481623943510930601584039917993867933228623156292042053047863064588130178295121102766409410848932603365080718982381454520923911587847876040584694928712676813720195985621055454313141929511148542968507462305794801626169475443521078818845065251254402918088027199889770261033078015444994215403409428679948051850528081052648617693746880541950175262919307998471040461055294033383134715316776233756442319341420352207694439802953312631798482576352081199652604905871958868469706419846380673752980458600852304084374410856015919350296022164725139631384566394507470034561170066222887465360466196858909486241898075761339630382678501195975383694714203497328176908845072405899398550272174183956217578330042650767030953553869778000465006825775380593570474115177289140710755783913530314196081930627561891361694362431612818912937702905361528995579484949192898022682289498842659248536151899909633573181270933755886194556768066716117285635454192422555615507682801065660896216973835957020735463834345931191054144676684342526281379878598456303993771530450616957922885502936117671498536882817444743697769018333010294070994375542877151419000767205740056918330197198359257821516755361188915945231835974017117494405895674724542603837823675404219338858088490801776901158255248790209518315004021574379252986165586749577460733842777488348215267947327070010473020323462705295839582597774143260894142227633671942020063920909666122937162591763052660288176360530622366658323407201980741367638314162735061847063691315199839354549165210818590906775219873409695156707639362889022263126448552386320523822959690421164305203999051832227830967009311627018425162421837480196378119997767826071708834654379860662106516524586353373305348001788838226726943866899152847235385177076908420667437057484158932710018441597267760453590226147823698613012046664455361877463084444269605604182617913135217790850618303876489013537830300066131329652130528481764968973839751617839071687716071677849615336889380637776484440647576428060338328194408539251389680703664571025320752663332318470560783031956470698530792552301177759689959582251800436815488407980574183389006908828608070444527653624357294357410656423694714332149074867466358309051964985815460955286042263372555776940140939045542164697423927554559810186752264084179609461720074971893043168723526548617578049787164418125384524597828980689587296400503693212695021090311568788803004895628154632315226510473795402138248487438962601885286733365202091920291400813645950015119385354090256913331728728254409868833942347893864153723558655456220133153057426044463752386688308108494481919406787359670508826708523732246330584959430903853885701049709478153674752699076618572353547308709939885549578162286753891140353167258765867513131670834506821832657832497803973018305452074541159272545229565466399172863001978104933699203316681544138761530544337312068033373672888993791626402612529124133955960082461645025460966945718801616309336789490182304235214402393771116989543351818692374073818021278409167619532083243247673864669475604570945970583949720955362314510045219150665073778855161899972119176932195754943395722489825438790620664780027934672709785819584968634770535698772631224461058832408567690033120568939552575710482130659375672923878806326423856259115654981134918407169116054390301417147685563466407012336076728534026179911252480189986205759786126755022320147243955411432695726955153702183925098056367305865224962758655461529385143368271985942592736008450957345681427763969974508489077666959867317710149148812526477030411717058912282474058760890649968050736872060339041418976354412492606432325198875144350848482595303108621927852713853350456536683630116667037748807538999672335152458666598985264397305391152390042521590089773837899079993172467744395830808396581001509980685434644221714270690191399805491945087686444476921710364130053952500924528470506988772918007234601596807777013260960030186339098868649890172789355110875786618773408072006906882135712712668589813831561946738630365187867369248592073326543324652949141885081351136591763452731257158402490588557702083088470935032033426337570631812667919954103922010211780904016311649249206009560180410050524227833916411067345958447827841445554878218815741763955887439962843475109644388996440213937923811819236443225369008067852467920891901265413318015745613976073423403670472417342638151892263131164521955871828199306910995227529186935870623265313443257277305254667904427316639055201956372611393530537433798418991085120743218050730096582107045769583592706702826463474872046214547670186234877435098024636943614990298305096020574152882549053648375976901247399898262406033800144927492713540644188718216628444668064255874554025221239710803218265063716828165320048603154418307407905905029951096844029158387248435752001335651612251604215311219101822045792309264944938592976035837645674095469512837411600229808337019260046477664788894931230902901301365445919493731758986166401632893889162633403282454157961988574754429395972290699190741596635535468274744209963078034539012220760987897871254323585521895388057866867977882755374700818790050880178829775657217996776589623679880868345906808323643469001354894852411565543898798569031076855372448005558059616885011215250915755391873720982453392529785521419303539736058461166859465666639493762241479879801750040624545164153631694040277263028628778738492548833945543303665215500245578064045939271987717898750175996888536468583027592320183251229307952456310005676827632421602288112540196335154992910889185342665232374335350000904896027455291722703485535013767513681122847721313561553495983107047341333084683719229430920397496883514907406690423964089649197534384206950535770896003977476990090236987898685776491984699837587314806290110239262370411621677325537624368246569926270595886582957594084520450922136394833393079390002755156124150347932872676041005272464543874323779436717361134018844712469414328839559933177865520738488457181020500040396537253783610214833851344089969816482563713426518764289311043267777209343134309090154923210496291428352722454490271577369195253284306405225771956475971512761450615969472992433715298338282478326303925121627136247516359084673079074930005198881105549513848924478100808620816727288066052024297178090755868658932898681281651741589163775202576106134806267348873834721680665292014713789606863410366555594903634965364719168757171957843072347683410627307136309187400333186249558296256704097700744507780453283536846684688336429328329094199881458116729069842287451633317370011327522547136090702892719751840755794665515177379994915291809091101122133211159399909787909112819319130783402247087618755934352326733079933975256368726138880541718584206373795487542488075259372858775060872949102711245273983254535374511698551307683444855342690781450380138061981565311447981079840494306258069972061361170486612727474363202669001952227578593410103083062522155695967370839144371144978392047313976668451986041760438699720062641668663323383264267545246300142864663177553564051128617083805821521629686494051047106883803332893012359339704596385624065329467145696947090849857523757203935517776098837561144095199755765961807565608580551109287746529548996655973796567808704991144698690416493814313950191629102577528986571558490160416771408560513500496830470369532325944464501640821697055048429396489231269431725762558812216278406498329251728472299099238990153138704684623740732935395729651913864668313981242195446217238417238274741927814123264853157013076591435930781730130687779755737271958768754095467650634916055871019363965087714618707132522565638229554013846605600379586768264257374068965460644446110376806778185293827577249129816635555719966819553479772022936202355844357858295891257340038652587475663483378263754109191979521186093620131480225728871525379435877583219611579461854732094723848875649453695869605050896769557681418558394866433491114156156563976166835173790202870857120622284801339156026606970234505628827996888208200134400299646707958867751909134586216588722881585015856704277047831318930984985938026370391693200048365971861728363086434684722520902213373417526020457650437409687866074412370583148739158542939574937357759376518919435039622215190505776748674651043854453465677298723882488211004845966552790057465832739976779372117622183067132074345346583554972272363566018325788182923733729151498420102250269516857901385844640676695627503136107307299850037686210953857317829852878960627474313041721950943348895839249097038393529203025581710149421820319478840162926099227687566810019446927162338937113323849417665842270365376428521380837693017541769175765049763153775132001660064997530400536546697817926446195094486770286745805731202631932965876166828922770497370756438910912419558782516495516975251529173484359117956603739744139452474356015874743837153458444314799038386147594689124467022672326154025768779539213564623078000919574947314657439433010774705432763328694251920070894805672237620675017320505878029783042169927318798106656163251321510892329235810715054074019016847747122526561383416592004160111938580931884383096123724707166673018476680545000794949999071385221937023807347699069374246325861562184325981254584779603943355801561958886440085909932372240613361870655432919600887733825035589321309130409803502388603965004290545468411568928240728858566539270170963826007638266514437224111527223151492295810662991652385435748374723784104442017687071696646751625908624351372521370236232110647084663279695197382681592818989141645777185714000718537303274124724300099018274515299317533111219112807245031018379590133565820907112071250927754549849215972102088518756776907005033590567269332399325941806596595354938134225833494255812879676755228090449060175660395473960456055018222682645713958484928060627003700690864791834133188803345444101025099367330972346442054221589946174527798515591081113072363615006802565324354488674432862178207476181862051907407568418028172057304837269745082684492646695929247960804387832021611163216520611458224495342345939586112096358525811791989285381794785965494823178178470628757273243268185763660681222372015989883803017103911253215116758883873569129979440266644744127457430226392205450611771522748867117854762518759602606453274024651466704182700826925410186518938392851458371499924227855790057209523212175114785947653413107074868238108283117105637467178049015354548628901424425154568026329180885531044487966468226988542110446054600044359487792731787830695571502628079466286907323060162891803309996374401514905544987856932014979497819063326328206225996350630840581090864615166527977330045689265087297514173295626233758256595603180662299478296517337205201510041934554297399587673932583328749045127447697328588908794118636850557296080935634780124543353350673251033139716067646571416036756211744949715817262167333753918969991289588023080975829702586767401096643589043369393028128936217105147103497912038925915246498837263690637753656869118914432433810401862599229771686003872367238799149674394902372315395428150344312165659858999326489624300631205731760435861137525644343447992121156001965696242462752380285507204733911369216095972073585547877995127397471315948987513678684551182528573169758890744694720288929973487665317293501681099366057277649340166872370690686586804582174706949210309607211000917842111683660223956678950352518331919621984754329969371728548631218608623999880387333341358498830429935447105733974355988565298313179876783349499246200864301800776592807629803946552646005763117790022787121605622993668801856331786919653555262015391515895265414239315198412462953726113779385429771034541512727619396089754082900736572455151478776901990279907833594794027101602584317743171896097796819262176954463590931581108344759591085847749156835230898426122273287251864074695143828280165131288665022000858715856565101230464871510262174209330224848487902606358135745201691488320325431190200706187565051744254989224159510724681777188044888237935985793224846432827854161225859145091746681272716546752706345503486413793818948018912594699768545317936693910083959955949128484782584486211918672509339568476532120967405264446092430008043989567085161871192134184858224940124098586572908296337471673184710214722740537394938284947448164215888677783947327963029254956503089009481256369593512979035269172267354211396640265978453365243803519730453380620612984015206121677041724971715523422809363617989841605817784670866564722561230373161391788768806829887199736077810338587768202981911254296638622758962841798046075278880477724235737208876581521686258587783144060483492199666924815176032113343955974614498646327557998388033775423844725467025652117147020513803765995085750894806146029777189181777711445350650845299097482292947536769469658151804311039871954775167450520167464073596548929501826792940737209177176334889134037828301001705103615957942407381659639450634129995297376869392334209822500672548810347019020451397828032481920229311416477791788326351199636638459676147885030779552529128354515021281997522300128447127169497799863340469097765309688177888317064279069666760896955367868699905580004326624944857084436903162887743796158270082505779416251023075143051190077665358903204830697067723281695485294535963078513260267014658655730784492021937147561185936358972758588054627787964177493639494824477207177739332551132216400255294855295092125124843431092965549869323710072499385160113897258313631900770217070105901659505849833966626630291875679228072677583193196734678523850501125795612216798247828200301501607916660832607144488350939531648482481064111972665447267004107472712471135259384052314498879495390290577071771065694493298094935901197485364651412534046231988697923886507515133948862551809236253569029274911840076408568487676544668421506248631098287464739024359481519190219637145551784699743796528629073166865951056402993255172160570106751030763364396806495132909993079314221205003860130807268413684701856652822589284538238423243975351687861067221485077481720106749210374077836924107025453585862390476893084588088995091937870623103020196975697074983526105164748903656921399825689719382959876842829046601293586335150644880971498400238996780092931310304168158987756009211835010665283373086504540333754667695077150987807529489351912921545976344402078050410717322757206895116567169699438097543757330627817022922541848063053793572514540369957965224235935570001532045386817851546776981726374247463650252442501960425068569167031007493599314352940403443127835593820784024573479380840198362581278600534399238447565939923697420518554786564340937998553867131066778537965100500570803021273671567744086240398094972858074255470470033739663979916294600846327535780159686940873506839994254843426728368587874980003214087957021237345198340317729275443419173024218864981857836659979006607772485980509764605187160062481929470943635152592848717031569074415248811788026462969868697580841790108145413236651454321427758439165978932472662130993473358820580631793136295775273278990091887058136300208846289854565399102634819630842858527417049823307625630357130689788178944099869706280125848337489386585230796300097356738797879138645884614464258176049030931979773105002481299664386829520323326408413795184008427549006358356111605981584496741988966881513040846345421308329797794057402877915763906670221800735650271885265986337320487489586594030460435029949043802369846198341313672650150213458992371049063529866677534617840817996255430274172027634934978880319295715619027960518765080767582258144048359769636219321850834687490670432244490022423590003304839318721473902193455739741645244652814244012814875587266539528035150239468562184971789278362436693494419358869894193370106259549956964935781380851532608036225419568020378981805104853920672024693659560178566084900736795274571857263990270381094150897195290420678078795456294759529316331920016569045355357327383014191800069176293578190702065948903256047099192012194913627565952308563996200496167140439198644429740110186964211548743897130372883258149814199834413440153675061494808918365509882855483740662951657145867731007391772586771382883073661626002873323071629303286030318052840514910418191297035780009703927568484698242601144671064891149533790941005053805364862771593228700072601426863982477516591096791426361253329479363571382786954574005598352053806003510146491446928596392880169608990172903524616748689102021543272319876113698275389243511508266101707881850784229579216983534232066504241931845117212367305019901179630266018156711123250808054054139518148646380782816702546049493171353521548313101678351307809006936259056104525602864130985153390241780262815138314992495183522305658197549030306582602277301765585398461474170708423728674153681356617263763839835902929569916029607290719663286082229487759948671003326887587762482034972885794558425909508420981837083488748246033019148121510438216588702594047308943695095945832025862374465320756498913952554779220249891767255691891843632290465496467514005255108635708628435396582128338894728126117698942985375197451401055723343515886414844247546947535631167897347964306395609578748231875524832201031357494441087631143637405376860510647592222281614934177445465309346278826958588199214249301086147682570473378693289459525437262586375070736935461712528626892422281718770979365742683249503229773023949441424922734425174987227332371317237015828767116864318112725162295448854835543917820231479614106992908138639092642497458051659099027971604947345972966849929083855737122225859910101795720262655178281985606845863455857696898139631743975794602834893251638645646537197472772141998005823354211093510616258575194988828027466646472450708266955778853177544112822295011078691388627411224594798302581037617342261709566057240737636103117130258699160069924335472970983866671262737271350878730177771889702499747626188519426913829042763430132526646562598142790622129068767919863648929928843030343219799909837780359819487415727490824661640200939238719672650978952962496070271155563350707704325792725669724828226564651465469131208528379741125307346394010344271097810298741944025624033748791153654038115108574459027059538688669871957379563465160800874272799052475544520123469578987602371697784221936158238631304910840148577690700769000333836769366347109407892861282247728751756091260099868618699980689340752835177486119532157599161747598614886514876540781242626149864545390079959651250410433313110277066972462175378161245430303392958041669570808591370667947427640204688965940183551478724629380723444118283897930345402337293544577014936214869282554786641801288861652704505499396914486411403077096362457153126880509355966318983610402791238577670641979107280670254270684089523308604969855549562686588796724271472677964408443824357059642889729660540789142129977850281220065967721705326663533374361658307406293633130504773141682072263524146284749520971195701386688407052853688601895721701468548870533340586300950996175242547231244367034139099265330916118667775189270329246879079852366422266339355933498595130299077481046357948064605264052106911238268761442459382420713157122343668985467592720236311644061478459433304238247841773088959522431934723779054678204363295790457113162813111259146142273272603343389624998304922572104100110233611981618945188172803053856613297215605606595067658550619185353995180110950473575129628919317578802340140563287909970974627492449301982000796658147105824796870938022830696662406800879615297154195330091869659514610501569115454731635978515390764290399608624290314112881500039058470963881369077597142540506584219759840760385121914828275444963498307911067806199999551579778151011454970091475856858738386728717120851258790335710612022551682710163868131009364046172364816317235914590275890295151521942128705079260638516368564491783638000314074080852516935680092939870826681733900660510895471982591496192922688244003369693408370292859855002024166171553618349301720840435944317491957035047223690488790418649508611107787263808027785281489978422930948860087777651393545335213798014418671573263243118534669011143913516099444411844520517802684025579810522747435994088223681887763407922590940279413708258466762379602711819109563257233601028122874116736365780626349507431364930995164298261177480033889885757463440911655508781767338092606529021086784429836054859383714096785887329462756205695369509901446195222240973748114883951382168542868094248593359108116602719464611255625591040317780222337158123467388075213503339650736874357613821843558698125868866112755271622001140177873978999848494345067999568231542368758126076058722271167269644549375773075897445139148816957971980215433238224488736482669014276937093754542586814297335669367963713726245706506590910062891486115882949116121627221604542349949535665497664572868085412995632474298976707217464042589816102163464797117787373218794222867312140483635394487502861232820867854675522538650945757324475718604303373904428091060346877348998228712525933418246277840179118963442345373998372532417632019512880175489277550287612589828672471273185711116889390235690009738790557894156970364253492495065427016150171974174811796951790134986387310778709708535987451740490669020062057120597552977412250332994831709416507875118343905555491886011696841164593555220824100231749956830977962405679075788925823109843819687416409637634173218976267289709584775250303929912054059362456658077275439714591527735622670126230641708703468551012508436008292067963194819293998129247918283172981767438252124344432872069577414999966094080346010470127695593204839547991213175824444092681803895565472656622013162437788297086900982082594713202840140976939751864939899195698364258411206501755300841228250808801320588901612305404438665600526097144839707857028492543701664949036209487489178685286782938784661968685199533364637740132374328791458524807286020149918620303604800638663505860014553024647066438704875357097287486297352027344679351239164032614556895848420632964794639071661042250925088573765938381357970280306661795903796414682902460506373880089112224558197588229571725410076012258005207221077029792545810081082803648503951752903432998274661815787423956171681536064698612640645196687316170320814194904910526675286481809899804935404492630950850467862010293212804718647333168382726431941302250913579008707450202887210683201972138609614086913920736626833854164901447664230834142641682103674457148142812098115198959333996262041367200047444221043461668762206481028198042624413632194204858621020952917965302484788097200703611175810700898318974102571215976707506624485535819497581618851164896534694386840716468138148413414055543967437963523851475877818981682727120147688975632539147994236519112752166565299076684880994465526369126845183316139292005352742095872851782037971157118629667259127615315251554110101690091108431802724913021784641369430560983133306886036060373664329105449166227442440476697739288895618753031377528926406486472184745266577493101044372266216210911749347473949308052508423171123833648947619485078844327134202768054002332851425353060496326189759400491979650622043598081976211484175344514216199199424618433708124899431675858113038587041956042033205079412206251628689970546378507060642858047622478426355037304133397790634855753926856979828357278511675011680882608294549371311932937066302557286292258317502391116704459387426936459273209921453520435463923742879818110874185256582590545611420422639740150850256834562855678967174568407580311030728773101434682105049342947814300736117184741070444057435468865651513562609898293221584889902760243867856818998119794100763031245895387427591574916680260909840998989717385788833981777350666066229274028533489988309018945036672720545537747251724926722609543888735576417134908788792353229497766911993840869718271107424084174705168230947952653103509271659853663113741289810825966703983904477831355996949899239036048139936105660472970069948059791602152765957894059080821082758707103023107254120735974725985009123584369945204850756272484588384463452106649644648755426510547271290417123604270637215172435812864169482037984148184467140032377343469541070034962654792306953711758312027278677542533900809204958630264092293416621354567338975805414169382760408894445413527211609870841634155044626581955614291598899690422259395109899900228607199739841291578635443272068233980520193774293712624553674626321093888931958835587167938687801648484946812337843699627761600866659401476140521246720788416870455797736330776138045016205660864581928438200268771678158673756669063112352045687830963285180871644304938543611741372447588747997504207415652708693576816772804325998662343054369140965704929314904854426669544328764284335280483578909580935458249389992900884815064739842447852215263531527344420715824748621820137801291026108606994427051696783197692506116299032680669397377692408990121543696947795348045806172392547712567977415125840647125095334298329567406523062717688795085491823734114832351665909863504918959594168417298646310920586588097232841231738726421020035945957124318999771202712107979742366168917179633881401647549829595419772186911052802553708243367223099040258973712654389127378643436640618173958030499662090660680002876795783202247607324747473948545399430729145650973021746477899704678331232319284725106164449262068561394285765572422542941098481078448596911329459553072993251481679312155105276906962110340413229673941238409634144429512526381726639066718863701100631952495491312631438396970983049001886416481918778794839838987867322221215944679264597354354480167336631158225559043514093997917289953801033250446319916149258415242909714499909004484326722504215014111166367257806851817563439867134265727818684607910944281544679180730057327304350569744075380685189385517587921660368693518518920784031493355366270537741905604785725276358338763956100331243377678638364821802716329223354741554233746482371189771718854577925094180257064460765894143043700932442667401751178445514830480045487958560203058641218497367422026713329462041582833297582319143072280663118203704735258195355359074347803626210882016947605863446471027206597376448638379935295117269777387594579490238181879860886324194502917820870196458065172367742631235222381545349402856476559492486085648078615451927557889290106334154604658798529162423550436848594553419368345470349320558858187087945179254414566448482965481243709450435048441002551714547456431411034452119540523694850125832806339096607427744454602619843487235908998198306493467910891947802856415883224595656521160660728440030636035879712298613790131723148590950588991593330683752485163928796763728951182236901443895778330515830492530813455824395441158444203769164706368482386096079781201075603329027495664639679360415711476844046120354727046062001631956692855971437697235548886888001175724973885505838528308490858958426233493708026665122692300631940297181000975843510076562309154140470269361352475060595270795730993821820564642822748800136233311577770206716122359364988177353501205624694091722727470866276083144081394016646241718460494132575706418484894358060357523395159103378261125454153128049026079245173218455489188846245265616242416807110496359036998701632785575900052145969735836853842680052846549525585388277502807214986127567851299397639661298361016397840161070835222673859255156424242994320721449226125994317885926454824053193035738740551532767687081025663526306138082347469215292006807033353978243498435796254530558932903264021028383294891065922828966160230944724934078091816388457329276832314096763800353412668216554876382058219151211554911508349648848071581757875970800698175247830497413725271409946123757883339863572671455846044418189354602733886052953593572128560789431030360597441539158654195947210190963467472276074326770719124563643468038443282113898247225914522566943550590124056310651575706808910659010005284265681687394678786425060200344626378716620479403350072761899575867062508830983347334015895675559590753091788825940324396094075994750348432361389032637479672908913483658127656739382990366740997431512179685630695313751651436200198791372279948650407145314980545046316238849521573170205958201395937362355513886610550462087831264910886144223883887301186638153628911244547935475195446802558247621642595152808269007581567195343258590163779990703687972503119615272049075720468814224945097073103466256901663783820490434935733814990282546972876912496778201159394225852040610029046097064841607150883640758000472512922687286692998661431070582751999635649276637828567428270879410038812326193168266583656051043871659935990668480055232999942061245730074150588080341879601332450866175472088343612901740376588341510934776011267303883282605043622918155345399419964394938468071632080291741260305966971626196413892187278161715491118094650235911625770382157212506358683622786250147902778973023467903807833633403771396444066183591380013990629049705110209999295065361862460866340119919957428887494024963232650021751512472200239835390485554498518154236025534621104097400618367510118836092263564004988251368484651779202847942617535263452158448554105485785911251424358169944061411459321304335602193130652554298004203438277891481442826797678058323965773987954607135128327207325096425953865738895815720496368177671926840155866193646640035801257524030191471110411625946068852363715238717748435549662608249129329703025453352247300670360151789186951145981702675685295007000658532099979991931325334072471942362012274701299177691358554036168351671726821578519072951145286173358775919479037112103860925784012940871041732176012996062998307975271296372122009110568579751093665105211876148693402896157915383917219322669456348138953136044630323482894428165829563719375562332872402296287413227456333686656736157016801887404167091248836866477825548322057610811463974511200904391864239406516258788146754513086905169446069115142598091364748057328871494460765042810348783850841753892297737000102060196832366081933857856893052698906275198254099172090470671802815724549134428978498011832708582464895352529341867076936731139447804895753121289693788249366160111141191891638431523259428827270142703559636193663857009611385264258244109524460030097455442159362009280140501301907100019029937618097070183556250290131362150149124396906025753840678738948848503479939311876203998399975261765629330867779935996160410309739949660186825389132555885229846690736710698261529432651987308170283435428722469577649208378798070130010971202242414110501453980359194219213158879893212355437096112311290939244470124762862347475703283653835488004951406724804674975917450612416188745161779220677549194829138309183887564402359999299596125801254833212008760121968599802036824518027360623477806892807601060528352636509347327776704566967117352282342479341950964161305457014432150724978614833863031390603918862964848140792218985665448309349987855698965935823636732825535549417982370255460110282033508059800985045506582867675529693941428635405424012459476144300923307960412580658071304677691961050272700478543573063567403192724781567487098318145659345624733106403003195236539344104236739848894115797431163032493195679871737360686973938850495389798046348825056931663615948487613400189424625032157810762629362968712040990042055956690460255363666358540192036165734696899301850031330969849940386167922383819069098985691028277416293943973056588588705211709093340583297306880814115069901062972353331499780227230504241730968401538963954293686956067857511073142868935225007901511146386102873580067999310899908923834453541567977445613666121985048215808512277975526412075500713551752031292059584256423326839891007744695027408596772995564526235564256448167093955505059980432260399980610437800637467168166866376437705192257291838942885805506480710780411434248309412810713768275678847660621658184270947669675094509893221968926467094532458208512056363050244434903952419716747740415121601960276348630432999042654609664538939921096235800110046899830316626374732552496243627377285250243987599767702264782507849477909261602610234463657349076850845753608655859958721862615851225547780928769315015395426503836169480092055093204311369118071570428952344336018340046160609245960528808460533290887554429359239641616589434955949470236772588187839478441592341623213594760270426580479727625717811567574780895933778728679117282249947293134350018485148961206406930666450491971451917888857097580211122830514781704362161114276561004941812114792354661278464636502622596884521183185136922209486708283571051475505593974195141316771511411291387589492936481336087359199577886689119511300237404964451669348943612448782334693904307336521081040910629742925178023940344354386255364485901837934187167900947628529028992061593701587602024047372887044407672942071649891928249646440760789853844928680744128039301043532025659130685090503749326659185006862099725310185083925470042244240898459642840578955280682939212995427014305600676692642772661930467456816334486919601850418736112705058156195084575257480534306971012536906914445914140319930751418422674593900217219745869507405216686419607524966030051001757205833807696390659835008121375323534738145161528915853846872301053843258334047045657410663046658232541166119308019535608641287398117243452948816443159510696450203407464298881529704222511136937065407290754652411574073496490099235324652511669667205515254919626597458019517002324414572111319837613115919474500746973710043768696721248989138253708990580303332612286060974984306940278430523015216316027389120407111864415937033199286275205857561190155055483509448004674087322287557898586054940089245465490453115421890905829602675585037410178380655783139630430738611126833736273116655944647207248025271998253040740745174344159642916655814018967828027670594417964123526288560282909253647449126442070811264024307554897652245786575282031657706918414970805348558556778617903031022788298480340709284412776119649414152800375886702655960481551504973930370881826731585164063143177498041500983198664362292453008891737367857403821009171956180456015032917182045842133122019391448231732459723180232555191489630325936253676554092692648541067981136912789696724794776024981795832142862929174099603989936842265347823941365840687687602652904409716517471689955430432195692617045927470990542487372020126408817159772721340862019226277205735979599442259166012280850465887674594620990830833773036096130481116341825290528555915340674299532682964885306470360413639799280651523740077413406886097098265373468510108073777362494971577938813637925129335811699641939186325420736696344928741674487354231586950196492970128146214780607212012945733645091238896697744415946051565293914240291699325513686730318042061969708664933846394862975749990095978713941763609938518916643522296997158667379095970779746666203877136111115499087119588535980045071403776234900826184194107430547617975751839765474291114068532550534886715196341365356490798612117656637456155025512319304769376808346699605274694425464282586185202803629199261805253618705081349025066060037296385414154678942313245789853074134063185200229761969202974479666733933479173068814641792774178931947303253874125826311184759197903395094509854690218509447488673850398363826178552714431599662866278164114480998049616022424298878887341106068794922235688087990755129982029876042593799667181049323013097724094321607443398847359516127212931486717354206474537883897613079768320745194840361177507490959005197379254224851391353904666511372802661654631064613591417818862792885660658423451687019121977492929128962879543900570734605455086668045305872462744271564225911654603852450753562587024020350743409281785785372681958566015648358716635170681774586942521207954792178772176498041256810008259001314886147912177649069142803693285228670505008763001459182621451069387161288239104127916010095452228798234065517765518148498661157513220694984930486642976943757310956295404142427104650603981750294843084126743187306422128286460963370461170731002105162223325838926581348297259408242581910906236083083812044076123507325897723150544424826852369918809362816275758273424877104736710256094415264117215074001446183068747766318458206801687983607199056125272760898278843562087178315780194750471230249193850650129142322674592235723163195600887674563032689134091100415956090323636434025210669885948895393421782527976442449652700090393661897702331669147833759160220958861731167024225462498263898758599892417028170782227804071800802693408796716500058630526388356780457377730991898578561305317725511873057075605941518598190320951058287831768091185973606608317154642142769972753799502043791250227246371988220845583040567736140976574088686168030088750109263375178702879507297413405221573283040047761964733558703496829949172930704156689446119410411394080664357293965482625332858887599034860761900510930391117248406242242061720531465571586081453460229993729707485434280764236189030806470438553245154129931613600713750329366116054135940689546933327232302213808037958678310313403944783789993261060917560472140999192273762507033667681295533391415858741437955663272209769458693950021222376459276087241989094762376045081671689317743760625008967193512905939712172290709807067086024136276319217975837765994933778115595791737562831260761136822741513376647906816782117392261248928447436070486515095087399426386328706270239701653207674644304005186787790706820748139151005281280732540648944499788139430944788327573153862287268291667915527991655751642825558212844382816313112811550402006438567955698738209104822591076083842870002072981710691597160834821311478077427431874186559602987001369643206775911125137087497766659540147514678894744607105307105105922858281401480743267530076595701948193085846806670984822870375125339418874723493481937123627516981304598895912592691213733701199665152696276596021220905175983013236368146910108548342084259655198578003848566405130774345694866150817873863440544400108597589120971873011003673666542263812411668724912175985884749276185936264784004240941212932049320413142622959955356772769625732935052817109239802006858049182765330044582298904332996397733443906150851658211558343773457453860554254010513364711193928013472162553661068390212589136347816177438618900778934021520137524827718374203817585534765992017567322458119824052996267034993541787923580245754500483625118818306308230111044289112558933942154653762260209049665939929390556064883175983427149614887273654246909407238569957857652461324518673392603857841951178708593886623107225621344516862903143264135176365900023115949089564742680523745590719867241580358894971117978193908328377525956530002289682000912494846334652441127058381703877788653634380575130218344667049640146731238967952855557071731109022939473528844301959609873292420720737272460748988819645440071333798738246395088951893258522487526439443056985107896651126321482938647883468270790241505783047354867651105071510424251331433609501398363495200253603147014291641368541451327938230447550223118477645601254132071881920659547644817974131918153188098071721402068021508167556334428616351835494934494199816500532852806393884531094161272621937851273134729805797455468131326181415764381072520223132623176511844776632459587292622902556337048262165673652018077998059752675647477395972570116556615910186719057712360647002658281421703165417077744551788900048500916526174184700946128844716269315049087601151333194917517277567925846358179829155004437356066956975427916610168307419716819941895393933008954057036480644492664584280234107226748935721181592318050440135918674257111039671937736925613048675211856627308662293940395236877182381983365537472543936943794603417531804435604368047287634695920546155579649743619296914558248942805456327397341330244606794779524255975017498139566911851673390312444536561415056489715950325066563147529869821559024793888648539643605110566845754750869020558880701309162677391359666854787258216333650449414709347122704370465122308623692215011354538880374420677016843036948200541279929475459165262707807036825874946141086138513018010983734171767887822438235171912649675532303402680643511613222202090349811911925800236917549484089698094605359283165752654990636216530370056232805280972268379528717498062102378632368735889194870963140803098713401277391578621717901912314586702874860073463147777410104506445071637021236300565608933602244387116001646402288004350581936945186218969844281182005827844153831333396955468060755812429191972392705912703441859689544171217910640050769827070671045086322419933501977639846234282317087909101150469895782948986554883932470192776782204067997545027864377432977197688792935632463961698675153010439276821725939888917407179262326062077722486681046299270792538339733161503279865411153130700891848586142353919565892307415486302981089487751739065336683013397241386651660994582451319586576602221989782408303861581745536937383766398148816392251062100128756905095484700442750351132102157260483443684619236943259968584959148445797025415543857271602813262190755786760318169214944715434645839041128118881084845367315226413217356004036461640001589009779373902636539187474777182833545156997367208809295495453100649680475048694355620697940311940665179319671901915814990727963338798041148415350901586865060394665383041987275514492919547819485954746742291454894194409361109459008455426517294921569899768545943060456073493627111246132104398462124051262366870223480191838024869686448396531574407038194504890839551625544953237081591601072458249904517651647701010063432131724520592554112069262597103710431476586819017256266516987067408754734459620145683183102029720820937993504907507822863498770000643230076984392109758388856974429408331827743996399599432315690933711152608506535149348674301045727704877175065023833629852305636908983435391593480212388527471646612921852483812708854512120956630226147025279802887136327952789005551117431750566757945016653082931005345353152172149730807886549564367190929843044831396785013765489157344849762760336642019442018876357515513232435653059821456750950953529042949555641583633098481028580828301968312073944379399040764350478592160658839777290849145128190114698634907467159928770372400245382073374365369525655908083337922832240110619603811153372390277258888311564106691338977700719783435482100029979592666312557596620870219672101621950235950316581156269284240845792468313281302231829636991390527544785429106561749276840606679588761827789595873860391047094546644576188398082805883340916786368640933215957951100951465734929885686257627518149842471930967619215233405909480455035797728378042647410811877675471294257841665168997938766788379299346095377554243086781716246167501340070140476190973909719262579947478724203818800998217059577272799018075191003844637511313901519757376372137100388358522246362107374301874536607496967537332324524007038298295962822269273641760388586494727210359821290713833973281801221786215758245580878631975453174129048657184820241459198636074724217332863426669869552483601973336365663334302859246178846644538038996240215846238282016067028488558611148480703868834258444065016484356954168877474649294040120640948197688389770248126327175021970529629504393761934908386283178947942110983358422175296957618729401119443998062183644598315097856809407546285065251163885243453749133633863874328333504100091947550256344226192826340403502791627041500101297221813170586245856978801959620646577638673074689259159105554166074053676847276280626224625173726258633302106250809939978489136932366667750752418321079729982785325553626156712813107196704892662809555860565251963691914365348350042613939755006369518975452453011220940062732676943114820353124122185017194447343391240121369917111980522838349493460634038449136307981077909348442707332676465818877590086214456376556661122985803432149688526473388175833680224476130128320847455695991322373132240766789856404611337427197862536804645377332804345144803771760210235801362792284705941828080169779552696450432207404429830052700399387030003260151070203468636850755296748321082432220732855885403968034326270592095605351614417930098138602941966606913064131839471198889660496939500932215227551068069080816939881636388774376922700189360057156755407778596150004989093008597518133650167782250473456922338612313705336596441255696939395328262221085985522508726042741495493205071463089581666881602461013986507586741315090829761195886253616988505282135397990456157761797613947257584470698528968891817447672150900826005761186092344622607398774113203812855092025706855929995507199583421633629789228785141310586946274646981516103317137693092006725277917169792499650359168503028684895380619111722406469932146493601592756565549266313143628143017885521006951516094637405691372323320389057074704348802334724765268778910683885872263957363863959286789710598563743376066135741414504038700347656041816369899537365633001282969610526746541341964571409522887994496531592449710424089281999519330931675711764164607999727225635231548484712720883005591095800818662065887375981352116077170535917093734232690495694005454972445414953133977498301915393270672103866500673690980970541326904442909954500212263674912916299983286970473329006938679514643434730037066858471817232614151708845120737546666134971574893567420590221335480891241514717782765797252576276687193572897529317312855968812365664302065518303079249862349005395662326601486904958711984492676435416034743030192852360120965947025004435665094769082229899389653938051590961586631148029558430415660391368729265706324221903121069534050994146184064057163297380493403403430982261265364768261598381992467758864676196172923369866060091980044929181290189924177796840659046789113220018489887948495679162450216381399811771622839330489072660048903334312509578821216952839866883556913583272629554740096910199258002238478696113593760954043208091125947679836784318417050562041890067555426047093659219497822580573032397842861776976004157378203287271129043434459229830917799178979756917642163331016411851979923886132238818150185782251864747171256339079184263994371755705468390805583568524235494470507413535926808167028668750954257169706585576110139641775170471497181945688644640003159875250335726413104699846825244155662733126384867437767115231963974867572317280554476203493502007071832145702217686961203066521987327654236889105632815494927270400381494747715702713754930395054408559543348011605198480290351257375186859090602316287147415930585321126660391383573234852731931322642516133473277118892086177340876006622244295835645280967918200708931858937864650120482077872775012851968887485784799868199250503474382604090268184698055145710890889096741333353411587543391198174608558712029979091418225040177779165328199763669581659740633804638702778944068601979019984806149754078086912880631364667642668055908261635510698515283873154480507225103705517740760747543125958428689966740084906332724694557847553395096806598927145509962136939023908686764341621896273951345479382898850803139566673089985458026842218396762285374259941288344946894718556200363384122398205007046159595957675803504070834847139474231997064185283491570138001584454299661917182966644678839464260039052309669227396148840973653468110107695315869783276862019093817773889848042563155776559266808866634566692468416696054549811140230928910490570335263049529650188664076059736074562923488733220114509236399813611318986653427884676791818279368754896007986486212531839010500729846146862370241493459680175017958932060601188032246680073342372899134632962527285832485618261947798222206935874605410667280065607569524004736970264611234064503642066063896399141866307581507054292861796764446940756731922032982246123287286402105292092097889915164875343490015891347290170324523932646505487825110697933360457138872671169988001395642589571572914274603778652024947531802993401727559474808336140233277935114088197377393915975290612433657660392396903512529595869215778547813236361327564865297238616332533429905987096043749786565188052877595014978036937934339747896401902254830998491748003199453712754834456595822622598292782563647186507027264296385850762364915937994970349859449229383192587032113912617722723767289728742446132521967247576662234478856954017751887430996998662785371945148926855027026058085525931089128476687938671108260221018620796568571334703468421387204070770069914714373894806799452399310051290947379014765013162687266213677521586521819240418382633321920455717449014411673648930590822623665186410764210266260267929679479748533847256661497445476794881713573599717078831080467141710799130253254045322274595382906341429673007693166228820660980126955291675714607253691763880856333404918836250521354866663378591261306347657423352798608821664390265921260529060747679021206199874020411760129328721671990790111555592063858039592927310746269987561232232993153809012839959651053558123594423839427230216342284237986233809310855992992475783369741884044748697505957766827888232225400988942975056227100215009936773636464421163213637111580776120122861130514834566291296815435110162926211780420801351502530493288453167826161227678486277217621255695185209033913486499346033512086780627365034889547727213841575655146234261661107167593709421522603566481627806517535467695310085547550858629851666356821926183364471171507650478745740079323781163332617498383311300162027932821412681649249698211814415639381333469153995562250595638541713940714299347283449005160271011876477807588747402828495393114858891518930546056970410074410674401245756246317075305546216778225713256961113522552993313751720529161088634010485464857974042045075680740300810307232362349639859241215651221133907898529716131530113707903031210331032888401473281117799392593959531708971311715225382667823274980950824315597261164125857970622920158869770756647189138142231501636778519949145392972324245720125124433579790793174688871029466865913336319298595841447649452707734913785987141937382350722117909855393617079674977612230447447772689762315253514044259005614654239532909365529203506749869597209799706589161786138709095744996959046881593591953424286521195054612304986438916339850092889112965893603855442810765793465177205232704810893834756996475981388028574646488294520657129428492989482035771499993032691290948335423913489578017216084827272624711153373637765464463571618244729436673496870288092768763665295968441944240115165220756078732518952821949922040067481629447055270077885987213910406672465319841516295884408660183980177897735877332407958940313913535584590617968271472249625843228842032350282487894123275854831885028591487086463418610237495736758778118323795704488933341076134807785669430776699332904232187433518464223391385554323851878874029083458547230390242292177560239489500362796704996586846086385940010232897143335782511003762359454644774225205628595294099079147549664840337140953015172006465651904947249787202219641061480275096624083191516359250016013902427065647282872514192334199440329446564725867267534353784122235046830825611295121004618601572786248556602658521641963413963450606077738741021256920238552915376218314611261466006364986077174989647269278490938844450232155284193691106844726649178286993503356840850644580232307783224477440982554695617291315878797616530386190548560464326794534957556122152313842260282375013602548902066408541597107715850405006103669299673240489884557067328913576698438791788660265171157240291321428802087241981211392271786751022664840532894788650778799841419993453291668906626100366051981384794091068094790532681921621216115385970031728760687402039899529236243385529444451099398202702667934111976757817318711078797877944610643406390700100191748161925829978985009624201489106868559858283439728893209950507559525517528548818890291785111719064310759358068877118660890123902154584368920233844801969050663792805056748489082733890782667326235681685653340128084617308119792643674871694962889706910507219639767577313611409550522065506733625067042924727683059410814653425746468015721121280288841356292357203298099695413545810720930472482891733209662752846985768169792684681381935984457660069535999028420175664878769549465122804220560360670003786011635786152652453882319775847460688018176420023916437673462196804017508038504990411681313530127484706658803617421034928264969334768040306921114374189212406312873591460159381436031810118236767801569026228061906899995568774989286496391018555926377456395786992792291786783243942207407566582739807731747938672838269980261568288172235956645693536058926499082557360804649074249230801075111860261069601974504746646998996541639645051952785707279933486318827911563043535481387314107517508413567506561440970190754858589641256686746555439544456778252432480391980811115494228799898221714226364815394014196971617402972965082804218391583626796262461146432731694830288414653303314959274690155775161722279290234762948391718688911817191674964833352758944883123569392742732055051758123482618880950676381210183610639553871985793684303121480713332266411131702744945496222835750942127252153686269468022870202400519758113563750319395632282575291270814562157901456123129930703136249314713411316999476976528656599160455389948654709922840824747410277457289716477765494127189281032834555039952499774087657585474208558157968461394077971101555276078699329270592958931340319109447352834329109775166133203453079019509303096941303319266227743901316893199852798733741419533172129110739850303102215358187877479299884406055620483969780894908098432331811898655420651533638090698185865511740780406946834549921580951820778751371721942610392285038756478471357759383000729652570985786036159715766986038048516759060290159996255284999126107367488807762691026696334689649115435964345576318817075432880144847444293265304589684489337196195762379163211261509835752089192399479142895571222006683465927728668565936518990885546512139809821306673567404218165274585641396191960484324062551137267265260945900987661973097403228937352010372441253507238427336765616647089799497544983303490955849432080245485041667615771931121739409740866020447512213908583805388448276708280777737641479392588960711841283873622050859934313468646620167468204473413706281190643642351756749620637594219112922014822648465632984650514606837637011696434062657457847191163639151065462283173812893574120657791751315437107960061156176297907936865159798612945772861356507243310978876811021945725631768912507499720559248147018623045884268762447386772746069144360161347665665678672321302937490723465926313833218620972977515587381647206828143247600352901518841788352478995855580339817232883577031440786396424334694348141093853769637198861288716779900614258718953867240627812560197103548968108055516979052207478448560444693981396308816991090465505519962917071058122903957055302037262144684676817114762782795329354827163919390338276962638174796451949358217975106639205432464119963551630703143331183732399995332220741376872420760696372490564277283525660462635012619206449866061263711093305447400122725061683815089406264192519023388878066958496791434738005617325000926056002938430308110556406729219097813172426724397929245512373603345405180813314574044984306253802407162751089655038160505319385243492977570991447206859125509942235488985311044347409073394284513824257567664938121956308305436909508039267817210400326155694150735524135812743541735994834350057917778317769328071336932729841593693481944884537469538930772502992284938364151831340822304772124306188843329310052259611976591822738651770178382987506831242893002528378984245229507065994579120088544630483643419611186396322358662671699920551379276108501631852844026705794639383628878486788766223883588563083072880157795314968451921734504924130328716960271825081246447481012862719866288846012391996774837640461591655923588175557116743005545085814577103653152417276111034774638121096942192724027868910646177897900799619167782526272616727780326052929481473497990055430227398194794878290818037889473082081574132143898610363342606061027702181486699433429904945873738496216107636401089381529549771828699603034958575645392006140638932749618888267769860463741481703014127034683818744211696794833948472374631994997609657288900099052495486558622878137131946523683581090722857794026046786061527799148029444527713140945952761753974726458761698559381897024253522352552536333748670532475919680884071416833641557696896470051080748869462720311596237282829511617063175875455493093377075294135043017524072968027821713089733498038268192793233937111634341434480673076571938837749326964678031151436440385397626242012805211566372258305804229006457393504497905575656282558307027044357103786160612946792094160812845950612439259575835977439278156198189375208390780377713529858072239464923096165400004062624328855110614392768339160816712583917923193786014822561975538369228977323778639087567527946460427088651286003359839268018656127644217615511766995379094002831877641139329815696462796556694525744335510627519586877087818480411476473200633237724276842808817342334283270370538068499838435100871653510326136005047915759273106681764374313839097094674767607382612564256372029830828795684810669765385127418736210053122604319857493093660432136978736499522024672053582978642193689768827327581271622245969869847281618875578835377143646587849669615474993764588246974839659112755605516985058169333610933062002712626948179799379591092969656426146049708571407224207280199123174625192908385245964713522205473553889156025441124366962294899951564289468438413965989311297132470924791287020598155194470000002272430073047735833136186566219899400082157154367236017066166125743083451599099609620944241649526677538826409962312450746622405591552417117154407582947828648265506172075976858362001438537899400920061021760216986983078954136779160161746390708310147535051635884938832645466348959122712267435073184787148062362724016253396622031372708725819739421571111097103007063569892910869955225473628878481000320181573291950770922808174019622172689276616959535537475365310605485068951055205160196786177315744183864209244106191156369192045090095650817692794233363899295536626018608806828683606840989185329457208318415381089364579838412938879563311394305012132167354247132290343563733302143103080506159895655206361379174110885242364003905264492841447491078393915301334548144315729554620207079293937809667028021820547423251505838490464616860046603998004732709554906249243329868459521845710231959709830791007474627600889117355414907663361719273631523581169661670330340627361688531351111272575594760122382778268241981782070029736371264432434021396988576913937614517739777691432514593248693484390810989225247805467974663769489733802346862403775510826294359315743969176167428908809862232839717447586980322632756596282363642258266791446809098894763057454609002418622559953192901466239831849606855950473731909867437624231614301950718742309978588197958223064644126559403191890197217258057890773507531148803167293707951093171309571207613333868614038077593219815279004342720780180743561474258177909024008398305816966616821683600494186754668159591224759685439084910796361075738275810028915207192830659503682040517979039263739130925758565430655692763413769146471453497840928653797672237748192229995475647405201978523826300853426937170226014970946504058118037298486118942414565342187415340762690155717001187393223930268529739617707221219570763284149232510912002400919015487734426313515931001234911125829360633218369036662728503316626291421192709006084931988152820873042627407442562380725448613782919313848581918829389721795870568496512088310367864488780800241694235453541355221390856771317938059424054532302110934017640728371517477021880804993391474610218882334890500265353991890932457126069590617293653127613435259995557851842648288496861630068245517995684173006678419145504553914812335543210125513578054732720654760299160027535121395339200263878235896565020777001720563805518849114138815042516800519580087260120121366063664715322007988208553373389478166219542930013958172529108538827899791784861730782914825512287056997117005889898521827392150178660861250205075318701062405604304064726370084304829274311346335993242542490065385999343434480965531196778578191457679095683911361722245161010768690886241077135503730032135089933398073746423279992204457872605843343777069642054274199431107333474113928484050302928925889725010153574202143444520053946003088246745852987666580207558894671503461488488058884664563105537621527046330841388990822073181778222545095677991584863579571767661684149253419125017663944366831071628931933951222938767666412575302485481064889306912662854024578574751931255993947126994200020393121666685422708489864247011938351611342191296909072214217102239086440661775504975677197563225818762831482189238620147094681542990634841072618698062364020921814634655665087624879556939159001931590787375686926904295493172222183592791095933203291314849292942955387828125939107248913060965589284057528502049757634146012461357290404004874535705958865738507343158813269016008710051247664679383219246480327733720855769810596793865627610837808208993875494861386629292753928815053652960069068839856428209258596809714257542360893683872084944188518504801130621578022555142162999497702113331941368487543588061563656494135305866436581130026193380466568113703779232615831845591525442152798384224497898155070172905663675122171410130783811769970471767833972045380654441035899506205250882148300974005373833345808545429726593270505419836350988946579472726377790464311755498490393245957307431410696195655497653201760920033455760150758763988345618585902796324508644527216078906396250615364152103172719617159147668166523097533785544863133395512030510654546396859734420980700740544368819888509772405858575109741553976631420360566133276535270760564296293893494306958198411544624832410183981446616039808096933368300174817241152367571550747106229559005136637407815322048547854514704410691134970708530210637512224950361591162645065035348261084240137567952318964960765395945386323188986248170838797058193199177289811906339588703002344079887342612050802591142225738789845735218760614801957137562613731000911645668448283118548342810001353758926173417762463911917493092515625343150620075208556245812887371241795257332378087883229058855797284130149336910115662970483363702628598730488058694632442211751736369076203124817106388186486191711720854160490852715830328708311722797103808782085495901786323433865814570150728123587819200313884236770173986504388259485723113574490434948521527141386259325919024028377491364995389829014393403376385244787187581203297585227676799251353867670135092612872882985939660539990998790833691835675195384751553090510082419087098755634314256168559877071649834875106593972102149295461477028902692576065335200712426418718604402156284619439097783489410673088951377002642995882374300748508577383016113678244450405019060269968622984329100209883891676906326998114423491831821035276193851176252960365040571220128187852393189654140766598179098483029614165660274672690508483973412307849668788926750409964324955391270744646329697919500966263834519600750687030193451611452427386486883929064160206812002240059574970285472501761651999313999599710699706341824166951445671141156266224520165327841687135266209598639510647095561988038215400400156181854146970025199062277704486561439060247831316198562140804328995842987882144320370127017063633885505824430365500183421647660307513046796411590260225902344339828846031726228383913240329697425737165904392513873804916506756233849874173899579956080659397384361036545830558930023508786094297079680064227169402803463895498534803237557541126078214003878885847375413462459749344423429823715892095589217825000458872208854342816316881325572727227343474609686053984775275828956016757242865986512171755851923719641256417594811446361041565203352160671888701844727143995097029446195757424920843403778725546189664304917827267485414790909252707695091820888313244236901224554626432899245401590523801925609836675815078365187322885208005437696445114258385884813953224321716178038437742754384617512848223402607231220834607845093324703498783209607901454263773072296147946648222588951979277573374468223648841683793976369145197015754510017297061807597190040708943597732225602577141965830911006646986982617168149501541731636548799378259571886414023659645807918648988715920703990628821661837454657448926889688902927528150657397049767410701861540699597408034203316332231555101922410577501754444846671560103920432013533620963007539837568750189220265002855876918049113796675998072543882495333572647015420135742878824055886197576188192913417866642537384262908631194793537968956320526259951101911680393342074548708924755990486784841451723216934935499288608525914992047294083531513430262705944057593914812565545943527772970033308730346964634418858807724731870926537055375820251902776865043960319915253686214223260598200733041818912127558524172729456500404867221511860279476093183163107253368166288774626299195186614701257834786227408187680780172365778803293508054624915022004185047083785676521203361584273820430973029641698111286582357943687246357023400360180293784598558843410791040409128498995842679624665664221600924630198924160940676698305942994777420591544197279095438335109386661252080035844100989766321003283170306343918564678028218250116545662694733453400545416160940716311011713357467947240775575923531703017393347211146630265863977933862461951613946301013470042057914222789835469878316105259482329416733480253207068542278542251764081114177522752125585840078518773387611829584019758804673521168315520321123502229762693742242858931608919358808840425068725257623089515904513377135737588849888103720313876694904504798996092463276116283022094881276652528058039591767211684992812487589346540747802025502307716887390885238101267761719423301071607485613180993676076053053480118273060563107984220377722643391250262002128249681705122197648335928267260228770129902716836404313637002677449178914442198229171956966161015629325285684164377026552321260030825764870172855353520385797333568508444928276218421771982422262459134001001656029810443550217403392142555346824006492944311112729529907224372160932037805426625928166665475685089958925800483418710829689231360045937372921172671321616882945038729970085876467907986059532718808845444089008026230183179307190421229268278827389819962822716305431954192703395340327301090325559584236224096186253666690327816820377283795277140866516900566111762460746947716388016068718290722418344473278270185443382318033000220953024720365774080979836896361107171556045126631955139272389239733458068938618335760342274136680148586173309389482250207797463497645597081528496812118535339012406651333226102994811964594866270883576716337223481693102214455367892720586640508391277836720622263535319736755444045873388234698253957637874706956916151375887877460160036523895439426618168660773644433067885979853402423814930532976474834794495721611381369303345316708468493641063947478794443440863268258318803960738797329340723172977071084975968654937325448048246732880707730356957076499775338280123603472956508132155520889539478920423782996590440315817584127613977727915513275766407632286520388286249446610514509209981710236539494302420527954536150352365677167065160723327245899186354505885032223798758708069966063056228302931552800643614715914071746349517550652525886530194739752538355521404546119845964052020360957792535166785077961289714901866250591053766172849694146549579308103099884639529043674161613107408175380771635267939548465697846588756702002649404218113087662284440082432192967048199330771460481461626378488733995485400898989913934686966232505594623643719172503606179472355384245233891608675698165029880340649791121485711644367124259994325674874202245884534295739068689075882070046455333844711494965127819649287434086350264763330994369935508016113261528300931001480528038288593236070954834698864498938816225565850217358185391550252469472056353517158001426954769634541919364436245570641133137384810112983389475209172115636904077378757820927624305574359549596074612450569800639762291355617043976708977342766016247727375121703186107738057086121957964339802815627961210134905287231911242189323290734176158101235467246469731678907042462276223250473309599906074934501875226677121042647482296234281967381134646110778542204816744442016786767457682837790429068789623599247846738606384470571300847916159232366009060834803301492643404330025001382376738321666335108865468231461271907014058603382452298117532273737446652794784082996965540249197773705723312236133192325531189602669176836080801185166090075203027200002823761616044840008881201328285700296404128305031243693111021927597966369486714875759032105899527862675121146596263420903390364790182537647107319802967600852856459770828218134637882621227701118531151234787625489664999598792518229956928095445834087173703613691063072461164507902701756560206305825452376519207336900635587438597301768797931626434112053584604649653063512380570319926181455891106555284884834171053898512206386087067608274295153259571917283671266433401353961239217662894483171032596964623950260416170216089671914113639527679775796226020591692988491881849755167788859116196591066600125127017163002461752422382278828302957605340632104390874605905677523111545049965064508682594618331881572299482400716020515523038530475508369929347181490147954803514287031232028066291377191795717913692023996383934998761258543303728525001259894569491298465071500743338839036295488232360200088555222492200901556720211125233955836544464953251700551392789495911066714736959879560659459065262161711550962492984617343163093070984255269228118425939946888357579373543079486263904400842758760743249109384762977593498703717928016505861072196298903657345140009605851666871595495565325055647545637455216640236220292562095853067908486226011557925870812615598805164514634524336788461660282589418217705553235452467048407858339081933485014067350103806996881614690984143481397348276035600516904871765720527824070227622878455228831844355115461915001407725745596446471449153342659598635809451451005033062630419571893681691609296053600629154107743231081878017393454791072824167786438391286124884707419804843502497925409845247772174106875977244726023033825217309659507218934799226647011864362563831270166355039145160599813604460260824841991042727185125964290209009015838805221421544866175682242170388561028205819148409126118957360919008969565371636440956091029674130353180332083770145545269171895735181483572385171180280321119303849730070009448352722922800662361835580215405701270416551686242755430753251358031523248094544388915689953590790452766481361115247372361666006708708048825156107292316572547121343666076413779418783490414368932517331532732324556055591656862784775893873581394214359120370046733230518076439792662509379234136161627608808103193249056868521321380115595419443345683220688515851106082852800882625422639925682758328612220371567331985882804782868150738650191163424995898509748721133293146874395456818841068637091734988320859142394588351892444004171483096357797941618732311037773145154747902294114125023024612546342621408077842092614136714190075461619369330137804681692166954092202326345645066656543279337552931921925438733910712941578068132019169502305426179145643167596130178988952601101368467267117144018102112580044815062156278842079691253522196993379481000796614311453971566556260747485038503873822270945609659624080491376725243426815588994200371955551446426119060945549608137999606276090672710568417967993795339875740636653337281381265460731963833976711494969908052900788773412551491229752917195557301911175954519139494636906941316659921858509486582507619008766389628912923260358899123924514731036016464947174246706047137432367639401105072167566369441180984028745617103858812880908990041791459994058681387506232212947615007227566715206992435742712001030259510600975872075198509572359248998019140309217960689509628480307008360941264214372740094169354518388882765065204600731932526548897720718925157888225604867125646159769108683920209150056714048019571254928978164511016871661001225008709456418574507093454885223832057347108784785860541384094851394278179460121852241438887336840403261795580974876444440035037720837971506359353235388896123296591495995513900112821650796634703088687275319480913037641083650945312752169892258460261303448599178469167427612828026373588577208788146536178514050619159546315385798197143453391762335075189830486976792237885915906385687007930601896086000916129902794481593130014687935619412668750377668854863030469317043150427312422713091853127125614580145808584914606981082543729003472489649045111502695153722339211260042599533020491207142445656344626171743685951867535663782908532129414980484255556224327654019225022821581732943978957801378334748485577531787794035390117681404441064622137982189008636739900301250008924484498394841833639661077055971894712158585151637596912641485183923649261774889860521844176776199827758300118902540964869926987788301202631926017280582663905848828072986552165264846923983923733560758506200517044605032006305132650694098455937040340565076426359909179293302628140507357957149918811267961984200632686378514383067340164733583180067432705115778295386077970826392344266018970983745917046996447393804991798516514643683371923116107983202219190898614676796090140526037788992300857390003145133375063910791583756540296872724349309662026205058079835672544158758876620789012511636804278706141472599758700595038987966061427077888461730292202578165200036436002627920310894137404305193326285364235718896346420037055385534548800724283060612178820736997557714807725636645942681698395453185035130181705965813865101700628570336352666548630136133861271611816469383818324030940658449516366870671213057655272861682117497098759484884839045230584418561186758197148521850003428316020147079986135502398935410262788753009250881000171789894540542003773368562542630225568230775364991177343253641919698553410790605707233480163997074731285550722882608657154848259079327036087529304694466773550820470630035955446928455483776363034610869685991324153967538609186225211729879910005031998229232896525168250499706256059212937565507026775931738865542129888890795088854771647175909618648617205889628060037091161296453547165584820107413686656854236109094447117484846682808681083690198364735126120278093461807318942936070718410853703733213888989769049152072960574393606217979363175565239250010134061570434929412900977816563380442041311383427040410679866064307661948858690909477297841540081636142172336382844155518249277684196386954199697460739556997450203639532094576373869013066909304341873034591785199684495673671426357044127497323116113375803475305833926111726232373827635565540789691106079010688779333372653646650015632065782745256400783465328486640825051541170792273793153588272296262295706018108892864628469080277347301790478594275696154700518843147092890648759374701481644478243236487643736139482704773914104270072032817933461770295025296372120708133884235653793165762286668333014437145272569871168721893047509545601566268080711132550803604970759440594794683307941799158041692339504861337287218081902362930010417395818728195367959402517940604409750924809938928193042105497570301930185072839335625332319311994278858525041642390610258760582105802175965991516577005375900552670329694207164578848327722951061576416157622314512216283332226090897398958145368174619589499809660365732196210001866183787891323198543152995077650162759962451904019370536305327160700356616395965273895415701834584320658224691277400551270201116072649307379213803180687967795439912236387651818531794102892816156169288065846949309588964354450075159510751192754832061180621271044809122601300276865569224442018614046492550970448427191534280943324133851453661607908236753400383182039648150021394981460362511488935834762444264275920173863974141967638231256489142243507681595653175995785469182357043007041903953317795882230170053041374550939349136073011177175775802875103977783507005658386174530604769374619662734943612180101693355612168350090043983582811737783108297065426223457193711052040410645273988715165526008953237099941569136569075468839642525487305634237373507216981244970688462794551020897232051246717436533110854891242293550725316987686455187801300783155212911931026459018741750700152777554350336732685103722879832062701501040772667217800957681656374125449310629319554987260983413698841755638524364864649203347062180774510487003851456707599811757844450216564130100030794617745252849416170153969551995136494541411066057258863580697118750751562313148268142601329016354580117183649700147586930638730227783246013288612577937352585984373394713815270290655899466948054145080982939554041052880938677111398317847912015352863915433198189518696182582895459245272988871192429076798689935442957977758734388209767541584059044230534317966879415641059833120069813027022068137346731811817737040614189746921636298631674042230729446374298301023336547051070810978462745648469922543482366174933246080220163177852774326849309853824999446212437341164572850141188340267214359407614736065780131371189086670751105013862711763297767423166465252055146884626506646700951720573215215187830531372076329502804158290130096978111472909876597416269385734943230056800102029182156029285377749848348673912391138277863702079454233045044112545766927334572273729169127014562091592784059955238769302349945740725560566449662811413829971597991647270712846472716543639211952799675040197987915740364665669507553687521226828099470474073358676806686974928452045278731615201870216201567905658269124260573915400699940069555363148009348881624824551498331011025457608614762631088676305375730555199399251303461093185074583294756940121315356306888307986791396765174455452664828970122773247923287032387066743009887287585894750985904156236758150923799953454117367295309435236510160287133461240803548686811662227193075868878354943148370367692362147313414125635845212183168588705050406287976360497166105417375307702172450990649477056966672684686975839034430570189725340626993991688832919235854272643448962250032796120940655434919581771521665295615039307155238076199602581883220294560339560248711622015787826057232607159835211445022897052105243900564248869884160309835613434393416994841645862405741594753475038485311818484226497581140764169026863923921250132378135815540225630015776031518267920290195839077028103071685345994043589266871485270787441862078993109730361002189856201731092816541257392305848127035450530886501699782736535913871611272891784095935572121827915301293188436042813974006087175518883948596823715347878950299743837303946449638004113339990379234689035464448644431951170743402388942409609800702386762603173308536727888266788192317117459666499155478012530425526120539486978984752910382575392356775208952415394257358408551640846101349784034410853336229088932269145690239502001928489017791852242984536591722189776178379325107306114907303242311780228691129336787466873195697764870598207002529874294968247025581644258782850257173540180547092138332839395129310821433972995888705728335509557120959024245679815274745364606510880157312484653515482296925983980181596326696803482345807411356154725193932827337247635718278538656166809658416425885384590725848529692796895255059586636575588894462230829097453434846811469809537622085308145174009143654996516586472191907333856052457990306672809094209751940263354745192992634319789616693563952075913794716915293634695763661591155317936136286696248203289810463342097063998161781813268648920386362324290850300190327702050797611271002023013743190131164157242941541586146758393717372581138840292775124554209093498686418787706081099710247172915367675901834899568378044414590507084408193335255259344320022369310867171002192104883094823428851708090864747551232971569535528188319021208956402636388830443507347030999490616872897666538962819761496111412775367662361129035083850915073745248711522921637644440697606077758810146645465086208065198254109076817760467925534910310553469616381442974624651706406973123651349549114073244373581635325113097088506914396686255061904097187140799906376370513946414312693162449011845347663092381978037056398656296830853190277105796070100464574633563736157742464767535769234826307591717715371543245290127581213449192391293725807334982748643913739602043937842531043306904807552676932838614332180664691099775667426329559879813558324811076650056476860348659815238992508845869082963448517890655324062304174730489753103159587267965517179188727572375655575961518192653936541160983921174792813993017213356869600849644584252885839356010907715922408281668210748349778039670369052895194280525563761929777460040706696532204684832051910331137997991756587241096824402974012501838141585964749560765052733073066550616068340995054004981723302839921612962500909901809602005429372335281073685392240230281036485748842632127897313835655217855877021693195639183132142602681805076275088337389978804703052498300261852356608514454979733867300875793178901235223624278480825229981284972909050881892242640240169805100186515409711811167177883695574852828831859165872714943158302350058043527202444257821968535150557232850068678699417631712506144276778987420063502560578290223712088412726125499551772511768699042956628241377526322942160339727583581781368815839972834344412332480770222165052293309616428862996235126704528932748462944362085199178777265318991575699056600708030571676031577832141829535356562852747517664526683671857048786585848780127481466254656322396287302268672697396561529553965702798245640684393881002858113142473082185478274307476321356831746029942951889260884784736914772022600285547643006317036880540662483545035375590418385094200954053006298920882441868492249753023926519746411332580275485606846477121210253352610363648193221901215827929991043746375854220334215216887544240038481284728228450770430870598388208899746892041082939127071161376677614432208079048161532912159499359294756477626651367049579440244557184224098016857285157210490963655694424665780356697021712777096603258398972177615684217213100183341589564839947710059389551457673123472369515580370523512047348845838332681595877705197207476092171144653379949540812671663848035550677439325106422060510230601339965934459680851100213413764645143147838342588941590999699961406070969463254825022949861749239517280809536903727906422236553178024630842536045035738602639667706080751810806778435702366919056185253023867028058722391419543282596065605228197028227353530681384782905496844435746562230140784776669150920089901719685157245411718615594267985109773106041341487411293578029079134368360926040538766392762413925103192439642973153188316615271614798492330702582696556091556056203556830094900793266971612298181158181165462507052281403120080183632932110898290598895604396921628208244540270862037887542363240257883142758486832629716274588025532863559938977382052948941836754185088753976675895138196009750654606261515934990937042593782140642844254432967935646191784952864179219120278964699096424023009305876995563353037639953314015677626656500111732309398470391261632068665582210923089921367260751400220192661349214885696314163718021557782183447733181241020726171684033385658516160737998250887889690019521554424614097275516268742792078403902122500493210035172227753954771268057986764052714980794305882732882901820446286197102074051149070755859632272664970624115244612947865598018450677337045403571641002301359400168109139729196045388405369923608666175006046685986028832062162172662435630149460546434460567118752970091668360906194569377082191510910365651140423813990406065346766103000090823131610418514112163828656193105151973404352293511496958028535465831136395964714532872737692899699298096750417471504786281844116267348488836809576580287509708897614255165412145920930500439560537290900948997387329323863207818585989626324050232767375341041515528033272613541600518619501306866623674318109044364688045992753514112853284718305841978627096761658164611781085940254991675035441290898953711089141746197550638889400057972309667274783468978577730097262439375165927602858326306468483872822205457911626648588670163518562794505545927378083734901010080534195438445283188682025544669307775325928480338898653793441532822682316403573213123219999431217979128488531042011609923779525917648142176043016354588502408034607421117336338611714123835399500309156594442407172307671734702981562648736738988654344184009603923611298609177371336281630702603004175498731686214114284395341969121560435045507883371373568932952447704978763473012976793733288307877290559296389189033750646813076176424947778203891309904360787369928702551485405702895758316441293246323812532493066591225037797390418487249876424310065770221306493450245124940212050409217119257981666551945515423896122811930648264977848834551337200964941738011398406496203908370162766531371949887522448425029960448273288375034571661470940281896609760820682258571695378703800348147996346886277044957816427183741794146214676310521678586049546797073899748583144584608059553226223711442684706598780785940332210149128643664109937367487717166582458313746068908754343989167514835278874430506636366194266783549039675322493590778855999003947501300510334744497237901303214720572940971571869086548006131409875662110769349452716000349130324301414877426390669562401447990822886065995499501896642824765940452606506590836319855230534684652437806462047250037167171468027112820050233767757602254391564402254578216052967834539680118103908352541431205771840473225738081504879209878053076250145904291665053536796765388250550691770079366284383201400074746628324255729201312553088622337887228611074582987035523400215103746303205436186642045328502521697862420421843032476604449890744067327877647372915529318024679367872533029425909461817212289289261694082357399785534701973749660809280420481080687838455886643431636875637419945754563735737598462001420938077712232464868370546860725254913361272977065993576253603247058396714565353581870245015262414204961513742762878749139914491371433420086476134015146104481636987596796694613876197838150844959646894168397565645951970090959364285603800835173559145838413626426925288173993091675222920101838426306212086502548512857065423447999729184168841140334243437813045110240013984774885116516270759599115440156414538684360433782579472306614151586717018802633821659847813996920031743161760250397143908660164832709258524069315831082447935311871231638159473232280751097649333457315724081644882026008322418950264958594921720831831963099320452295789487227301355747370773571188591506033333305984795458988783111299757851261864948325279306332309128791600416871900552475190515542894467017955579991654622253411138719464703472765692822516430884311836166759805495625477244341122886837722989607578920828835645369526729546384102000677754614459507645319831996103880459604349513051603911423443635759205228131233929833939904258082728091422418583358518946392512658954925998388516594853108933315023760506346272541223126032710152968455538969176516699705013112987370386127586574142136946032779710777932782116225523413990869043173097288287054156023170678674521878488403232295218174258707501383041724648296613989029682617208438297323099912356395398571255167832597345060423272434795337503384593462349907606137772212170938390259856114176274024092041462755618660415816609320994778739942186985024648070830019263002211955140362187391804598710091943362804550490167834796773114882271397055238855063581715845819877505931991034873185265733062510601673515244213646619843307380997920943762885775323201559709673024558890590323380978122420137990386030320258263440769801491741638906539017686503999190371885866157659904345922801723776396727669622970275445897990682345284812259867374461478324046932629125482362953965121220599998075402498702577928235747550875832933708329796796772226066309353537196719027996311940021393491744468372068078143512305970654218008994102574977733701883749085215788362034699173746146973907176469563108322421342460664534103720073444086926110905876100383926052876580207267669356227011956987661803401610386674827381774771449680018905132750348990605881907559656575743919727797935057576548615483675241666281539976004913842142424623599624049581438909456442370965451023361672277253684110024079699292497987020967895358865141626753408942498762692362062531215450670384294250595975967504665145348828536083763556294913146560009501871375295335533384673713063354623916601794628646540846591696996317814322146610042443368429456408713242583426442232974927085827289310372223840062222101858367745701940761240910819825804836373908854098987196297739722032746461032643465904920612319599268663598637032807807081959848097747535353919972020312447108651199801068969432574527131113548331934696403568135653275055993431141080362173682553405640884531551128035311338953430286614537497795841846581208382623941408801695503515273235376549744120352088320647263107924366670750446664335251138843546744812350838587035439595081461193029264558124040983424690254917964973210219512475324537558785695557696775176131691251436380192404553963190108713973777426122900480863793545236255875198217275003613228044481318637134661392662835968807074495385814200373510282746592836069172675284407512477510564550362282622398083349324901662248211773350412843555893376652750584579081121607655575477428052593425553836694627346235670119037810473004084647885835596919553401094996932534106527408740684003751635998840313786252741543784753327339668393785170644641533856065215754439186003081535973028141825602470333317737632298973413496329633156624327721641380401203270101835678895641355155167400624254575341523593145957322157371900746064117063135389801457081895901400117175732884915004165852079414495741744122899721866206144174839096389190877137548534117392523243287885014317976270693199294911538806361979250880922186443228724240593266119214242178427062631431790435923364304054184998279680160890105778461659883297605208467931358449573225735463436719352664444059869814583786656169772638238230918557170403858085280325369909545974461622653014257041519785534975948211833844981344277108839810399685986825832897638762066960087458384386523172385887044992013108887786501440116259526008729977792843219752483726901801238948352396727632398337292913288484306595985504005174319645915085576581660335363996844924528601833076913895460067337385781572701284934947087048299494467505499610465811086638964076044112051322255151524490576980636926472085809413371975829437555157324794912622122893823632989440311215398129605441497898623689967760051960002084446623289504782608230766545688613573728212279781888361745370208246208740385387331059533240316042588841111289064340837204022495087967359771109283167560434612858189431322788379339335699656224549573738575106807750868542517538156900247735211216190071126398159153099024560965671330766630059664706271940764581310403947733256181209584523326678445257214648016934806259485757597065985135810286022597533183978583340046501654392248184070163535241920438549971770142647844884320037567186102527755822098859906883833696715716184423656168321499372344677563820122229198749357099795264111786843967673427883390750371214090576921950038312573654997832660885520289975440401068522069985362218888191665195571477513166600800729581216292513667169423361712585286836038625418879527318883754778834682124069034962136124920490425921975800965854165032277760339471964074197341017114899657345563588463674854487872650545458888468755658747629351255043911095475646357031945040003158673309405830216670303136386722885513483342909326693886880711567190071735956884043906897415756841709986496516647271386022333472178166436390971588997733514644034645378536360939439314588024706965164996567825808747318867649264957672849390495574734756724928893537860538131481291523864284993103368805538312124609353946460118621939607648292519583756649326637544657175076010793849461834298399619006255761803286205467707471133186999630484687984520320393461088234053913528035592545248693986771556950858346012262835743933297483472003187275151364464406669818231255919635668408097885965655355196681736617659681364789649344206435970897854985583108916500841376178172661874225695986638634960747815752980003029377002543736685783842973566845531109119438063832576652492288380245587613494424950668583416568151388725772685988006432951102948442096624817778315821272552771344301496863997780465715081042854096198280353603487880336687041061977658541108106907739368606085405668281780096968014268007624025647217753448198034286057663461458253706196168973960347148262418041121680606476608922287394386556948112685472422353890648327364292563115104097687973233637998270698788360782952406903001890007996149303779549331115590942258880561245885521624318913892859574216281765317549379184286676961368366368968761728403957467944268032984591849164091501523115817144929257770158797891873607810531466372101048222925991331705652647545154426325497754039491377129569958815620189801929355017723566857347618651209443118317677143681122606168393956009354590863354051020016341920165740793627999634990060795829762685574745379624818712228967641867175387066493012642946788136691919788002854933925759412118444141663089112672633060829037377854634315681143744910483704252094928311656718058598780219000699575893013482365507922891030162250160376805284983043000296074798577788135447017663155349617042312557440660627963554665664146208247117693109114695318954254809722823702204556062761901065521693577267866359008441305295349746870466476298250942010896773583778065696526937620811075753553794048506225458256657414440180649354979189773265094997356901592374805558016174208228988464082831281710041283408234479461477173906904589066277441637181704220370466969132402600427663409550102579542697202930918549596061842326924200093429132072836966016160162534612608619641882045255441019196967521391366124668341388271981508767179341686656737915034855858106553286299452278679457695007881395262417486915530179691097499128635418040752866850325450312300723312874296667630044538506388641042120052751563215282938790109448471116082057038830572818709594574651973727671949509728624259896890601301056135190653533139922934881933490175379323022278305197874245463452902466140762419952671593834173011914285127316195809064950804544656304700809109628885320631254780748074332139602642304918915723669727519423148046527666734681055095452877214703506125944644938566884811627763177378042338405666283306089830620613437573128356824851298441561476849646166640750467264571648927083472097223161092850846205761949513330692080348419032247282686641486322113441047151163639489123040298812362240746659730869679087968170576401132130398143300082777524955357712537840212972763531467483870449718988586924222832279211582806871950375269652282998343295520392603679478446914285872569510493291044727773951307284305231835791413147584493532048585399854638378261855673049114334342844858457066956163724738693910947083175762544325122285859464023194123083608798475518373535455514445734343461184340039378165996520506152844703857634231678112391086842396536101726296052717480440871352307241251821121265494818676771779638421830315397786802256635780158213913717579951278668201501951542651293393205242179955145060464255255257188692737333078271150763910238397697974026024019322713066403447459524348231901303445079696280001728513579247327089028973345893917282958629826253178723438143799743158171081626451789507818681488328372272147846471572123411131965562489655958957930326201346231974361045956665471021976065078850908158252851882463324393508615299520315314647789012560813084254052095716999267384792453398617581441291472544147563534459612031691901489795682730559839931464772162359650565907943224668829343775831577795383599694550058763870333003501831246944077005838064866567675379211381972608149467272391189028596022669703308941541343299075773015878313590323414339441339402560764968964623080285400233399192197457083585745669603229796382528340081126398676790408874706699594236728904271319037357499791517371263201872008563794249115199960180131066577973017050492192400210197603778864190403322462881498288761255391090961193401452308782877885838557896582964291765185375286821922193578033209719747529833211841801674374300387438216256132901587814362704423351713886544427932245450844707765877417834765664077960285473619997940314647662756078421077596135110461266009463587196748984579862903647819866691190427815029449048077215349655375270877944758434156886514783310845299208205351430466869842261504603617835485202702221493179789426461274657295060826836031136963259147100144902818930241255380411208946635387802101205753736290850695930283871406072482243786635774831430232750457364142845934564945422576357750277125662879709039030789030643741485603248348538892589078531429409555240809275035895585588462462708664753148009234902495791064010804288717557097438740842538124565051494116248130496954240723553201222533987990355424784952944464742145525881695339598505845403008790998916236102599277968864074791129630688638223004661665633503247735926106209533515202428706967328251486068420919881405691600931572960724645207447411645917003990130396040490172486244082662357511140753367989883865690314422705364873277199593621838126227826035306599753303043097756486878834804895135101993191743058504614805491707920806531729803428833767678368478486108828015407845530954164537843909290463060921503433944251448616802041879577016215216580899654556418662762928325934330620688276399552117378878004616483207350561632267835937453195425386577549571243394176200681325306553497892693210114960828176536847210509062678025417693366327817832199145011503510389632557243631789410896173190443077873112246933206845169404923350182894092222754473804259068033953924636087413485690456862762372347130581580400472775197635687321179762373586214334874274585060766746852570459101549989984600205100935687209370073379802527168431507042564887829617230427033125155815101231180249846648486583654502949223462411447093928388297784963751686030569934083716628747763053849306584019521837150754016261418769392366585401067693638896670956224360670616005169633653627629556308190240585272388328791975660067675976025098322241796519369674649355152276106116476058202056388371431059700510098258491618391956519935825685750014194775473432705859813042411145741155649211691333272950917933493289828226858346978724223884156395161648673947997968593726229875245750666416782099203617273392902439315228013607635394283129531299474763626903067356158083253450722767091704145732851293485935434791588344940126369623205660519669857576355460592342863305264023709711986777960274894183330278530476001565164793469901773538293415959155113511199353963006947212536933209460712545970068456014503421019307595307174518138589399407161036234544272554436848956533911130551831834140081270263702775389325723612296855755099712326170350323605138994738122025766003356368053753470492814409066506370244474078022406113884075221968015499803942756817927074195324852975998313724948867909743867597331969004605930762644792471879129306997007731287414228501756564497694587712564883034756860025463807846654361140059638392354106808294977267841556563634819580154444547620091801986206710649695724777376345190815664560493011851810669356336630822724597230793465026555437026973172040179053201790179899026607994348142990207714414570969030007868159235903312681505669464887064459961388935527574111820033699265093292866046311015816410382033823023491772863562181366506639551628687452476576995456914216265611985876487891787946485834284264306601351444824555408773860216675181063585455592133903855639161895018136057882161527673432404428859191270089663357053989400048325774198000033359165611788655882249176646902476627191199859091497418770562938791850327580772566770940003234808886273779642418197635675447444952683802066834466607838302452054131905767684325483461367772372956694656016503790551645351170615931496435643921911133391723585944399021000548168092676127239863215542448645281603036444848099317434660055238704747368844813702463565608317137006379585399803440471973339576458484446408470664113892345833666723130474343515325683358788909750856810145739694084952968957847080027861661073382164648453587783612764229141157682044450044789874862398654616882273375566447595049738044102365933009162008785145227364136412406437931758784767715690392317731369572607088553030746507762764810472253157617723837890252709886212429885438177686951514130068502458560380750096424360082653332423654634659606423133546458386942331611568476357218267303986133133309776468377719718772730490837308187889601042711892049545990455916751390202939444813382998581305217808598768795177254340782420542918388303347598362412343610236822840810519248023991285151302606871623329499307984228070470015806538308519703448645776524518418224216860374860142142023860606219708239190472610442807828034824826462921050925617235485230125526308245104537578917931456149531265471158489618675477928124968432636200016040457433405022887886031656177930643450903546097059388130356978316575893220478108791595603715587014998846670396322819474495214352946513525052770737863826722389236886876356221381823563401445219665020448983356403316397804443657813834072000664531589482100408951675685466966656639152192618921267396418125753983530318943124407096324285636213341109471616807087672001861850381975979678622000370115212028115395709308891835159530395570420663050615618309961925158707898862220515438762766385739613045235114111698232645250717513166614427566375557945467830114066783300851891961079775077504920678697623754487830264215582234332560325803212927802676759929754170540404311546552817466904843103671373845326163523688026805128278605509437745016875871569303354237100986336770310873115161239804425145318031406543018266747741017522100826629434504739315971575491193561778476367355494431139620469610048876074215896236101351988418361181850330197775539227719748451644750284822791819790092540077570806857927240106209056997913529700879012810385553912407340473809831142901147730636177644916921852841931878977593430806812118786086095704143852443645523602204394904408537656160669116652282798121959313998953080962271425184993489687854864577168697881214259754463010888577669818948346444332846292228754247834900783221457411395846390729419123247444972430185140788286673838549147512810424353718239908254301615957338099060530494374316705713918964197153470244242461947624368064302504368831456014143159411397910500540740165525150647476369659431953819459786578882866152121987797200046019793944347989421990515658504652505600512610228551892506941499711041497820499260356951671320310863194037441985626828107034460290802011603838786915596785532115250417575680489536025957782574707883797752063475406727667172421241548486469142493594871355165033597280716789475184745475610762600891051555327618178080545524096671747684268442611080889333698033863117743607009622453394496852410570702552641970664599872462350832231760637348432035988356602396749057955977529045600129458962864252600110330998598388242057641465333503090381722910653339887667133352030215911566323117609602624560068861189455098754432649499164856446441485965944330134169348234900384577966203124591112914269066286370684547242036588527459298843370908934321851285131492184866048013903010376793971018485614320425190710502482840967431259659979307166290138949774226170187363838664243960438170758880388333859517173438008296086955152044732579195113849113218952797444167865853281588490818648939769632292039166500937722347621061910350671441652775150190646976266146735783551547804986005564056850436098797935441735253653582949292857325489937083132121534834350704448594369581151843848383672784059284756945510066439594960788722501284035743381796647444663722026615129640878772912822210972268771885031616157711486532389398995094152496656506951184978187309194386713595648204597346738016863149705437030889066249300032249200768094842659525936552070646661773475386608485300213246938614204430981999703356293889504711363115018388990748025701961240017686237656502029943766272506969903084238714972946152062786138027930785063573531202909822347994371504123314563226017247211962630299475530722632941865548574250826664495574369541512336358816360604149693745304385191182279731278110716351983755702631942161624391782125356015690868238085757152730463935715427578746548284660384529388600001001539869217220461201110952697738140955805428928975312390711516801493975070062922036393550980663372624801174538560607646437416659468192167387707558487354734557863560312463827030586788152902918560252828162566807489577699915177959132413882181578308845171785174419767268580067218509436047118824940286786915764008222728170109297266342312388454749702705569256756890056384093160298208306908889429665178151541392710877508329040935471375363452208123641952939889607085732972819222875337226623194137735637001055594381334404978470312978486239830643858652883759421226838520938384776094009439926172844257196297236042466516996764745437769216454150816387228829706614327883474311338739576178872984775582680609821211399654119678860707002281270815014440835718981956423082154570209347315117849694121834317007077876727858598446812880291375612769169970910384741551293951996417996367848675891241213956072638856560994859019890145237672799470677735033776324859647223811477240699623722955092258467675102944546753208546767405493764256181665090093022463614085779057923533967582834551275633309482886895894925324697766032482201579935059929698895271882515796482582865128745448490355102904499428009933179012546890178288732927961431656202360650793506957366224475032363616654646382942985280217008257169804517021224786613036867060879413559321594225382398205510357433172690323881553147630346294904143734870225247662418212814307772135578577748552011581789956292237740393270986785384264778277033106541062274946233263625062958220135144987826698419066685298262948753550000530558945355072241866200620213535756003574960915621141830466168220560157704821360238188139248218237632529513971747841918347429849428397317041606181383314454617798174092399844831519705062932887438684724937297505676596683387950314913427201013524769671427423599506049248757947084114184287542426165749241494397710319537821779733489016089190989310438690157532667296218439078948006421221777174642403663388234472488081153685213892632760633548856581604714457476032256044870050480601860870095445740104469434681614683507487493723875829332115446112239159929290481350273653955978553035119180232650837595089044210991779840890429660714161379776065165962659964481326381824554492235598589842109561165551146084343252633010820969580646340148249332356372969780110711030180531580267961816259553104258987875201080135566508419790346303416575551712031832202653103424776487930161720698118827584154404668337758790741112226986144927535006119087999023341977039920322848015382063732735429567588973491896786358324712943301965756692672884467413310295569203677713362603515140186856725478671330156278447164797434649360733533945452073198262273385879290715974290954921501333369969040099230234494493463809524533721141217826522948579520598451340570864385646523198479361851607179123075099092466110631170468385900977272696627820605960167442560932218000010823457348258660291207656282638207029528477521470329395800636616205495136445592938718760633530820941372782582862208083570588346684090801032740363092915329859199303931821556491466802645839101069210023022097492481240304010442763722037058234847310264018991249570679765013136892313491063279919020695798417254021743142990243008229545473543102906250702143098607526109729145625235453779365023220218994129923262012684213708812976610915908988381388659908334362687827332392790135966766955283215983112197895765066228343443395583440781645592710866556928851299495220512344348578401412913649718365712362357377599272562248574827690882762548154740152110826492299973098724873773683628198049809548363891590261038545904984805588422988935658407688107153311494983835298075264491554963739070302580221721257201713456807926191949329232349414284590878534796229081430174124688326318117663606721395143307904890118480225315829782270445127582977584811695724889573277894492685038296650843243865963631018254096224027619861700483193605897896129796866659307582635835053920988842218329481336345574379146100568699053769370276314141284141811219729611600579653787424435316557522787186741866063406201753190545650572514410363233338526866626240091996777013747374466276000197688382649393224027511403378216066624200387586046690071332033138820975860549317212207779197784559849642070687329379435647700465251236830123412657451180389227272985183844130411983887661634856253384724804711254433835096622909383494897656522835539246212311687604310616045311377603300352061359831421017515907603270957197016656711501287131457859011182056119295615883205612995589009206939898683802477262754750020486022034923006402077007551641452623486151863932012177731728904008817884081410197670837628942206806425035675192126937907805420853165609703656934730833703650384132920704795346238172530625784195583081316392646774295354160666306187739662778783802087010871347328750792160893687206376674095289683975808196511001872848884813957278971488334789485006399715669729584014050792588657658034108869755046054917401509258449592913227567265135451663931769109993232430649060478249862029413583516871569503474293009257228704642456989252427021645717407950083327755926472495253051882542054930106221625202678494230834969958319297671743033876805380718242446174651573870210456202036596673633657908432940307086901530211861466389410027272912392393457866533364971280448927817986469566933186202994424509121071426105915476893463014358309568627729387332090637510256189025847974562908540351523128186718784875680625456262880024545548993462524378494311192973844682799970151875416227780108200775894202101046918870476089117849969463842443021445769222151636885914211055799229527617323059795660153966724814012166030686450188919288265451122443281099239366418112361471140899549391336519731209704880892975316263102910490919962470244651448938372372361172534669006396359744176216189068993740408883992751074828890461438582628605749856549055841228943554180571277924545536502326881050304657208900666622365355702162522371970102473304197573759322842504093610681941640585356424967440538914103012022056433976219374488843611887286276743321565384532723522847041223867743995843920696347294931104012030577143460091536155271450461041572592470154175617742297947183862018668629904565133999114127459321441560665840874733275022055912993325720200118099043656997840035113049935115701301169244106976658198397374347117528978777038769685331542541173138002749543447747589115896064984382302846326053668221574941950336039065382018022379726947021738506596374524275631608448554082035408597993629117781292949091559114049565930620255098251387671133306720368502640468732257584560624067914004389311584451877522641023235090842198308970099039670250448523329138686717488035325423822124862233375867105835224882903010452313110739783601335680498526045531463468549045581338298106760078217670494999714883078704015346786965319957558120951808638490913430400827783958084953010205691671654429904217735027446349099539799176322094434191981748615424420558218192564014739056604949125173372684272019900013327804164601603524235209273333148432207432764006636972648906404601235401476707330311047281774285356433054795080305119755307933000899653113460346383301330974196919606787734517483778867550352115744168281340513345983432953397180799975475837085176621150240038274989380331708201630649033598023865069349211970489040924186029880629954395982873469513161874229394777849327089113745581559203334525293668248896708603004898880825312527463011334706051929820662446174453773481003374968044592943896005522769431703179772089465801750005089976246124668731710661908834332979523415136669943263366484493209557280706127048107417762389341313818257231809311411481843234199800835812625084482871128173879592646292393138671961601326200140654225856622230834864205160132354757899570233322367382114112805901789056659192445745030842799124076966319231029522160468131843698341571749966122203909558781335967781079337766755630641969065371889705899425050729469522004116400445614895289126632527056319063618729141299608135186050465948836180939963758511293246013271582941660261334577466237947686822399666415754595637041336073724455869014277300342280773422111799453082912145451373416850004766362415621508768848444859852133361220960876775355856168321724344926465685501657099154598666558664435601042152218695217556720759355745068414074399884867378858585849429014911884530994589072417080727883105011423085355379075565588898821576293385727747387367300498190770495451307906967348025536155268887655559334832693919516200070908757347676927508888206879531633066652953769017741057424229820605881201415487252407207526080716533276383600968071560887802465973996340061522339492520963880630077456561822236588354291968239833296165312709990342922650385241023347317254676725133242072136152329535259377624278435394337813215003257177380707717372965121517181288561069183732935960598419341043585372053817302009612571623051833146368007281443048238266272401864638181483267846799292462009210687560254477628564681349740727265152231063095000745751216894389376632043513258483852199722649162200299697432167988532543566874394607504725169821185597150041791703354834520012768960257713676484337693533840163735725678465169979743622098412651307697428818056387490734959061897987806319758967320514814658624951339172489794027012578050801326421157391677550424114670085240255116913718295532050073610248523933961367179014783023856892302023770249058630408827580821553547907760988518004308207361940554569078158335569162809170590708730730763064674432083059160211787794214963081724602696606423292526415089993765608317734633418479720735555536555535558708978012110567353081687367148484072800028210340822156766074534946600211664538899903351171927899385768101699708776469872747825584478761206448483179531981804332614803797002149119497232377457878273333320122372116551074680876575215508271892123572351837747674355797170324924694678869350853815481016956865366857967563174716126169126970092666919042504890171657559272476584168292647842940137697777863750792644910166788687508979045614939970788843712858736176079190623564910060076994100461780404682951153147355961708659093262527845932867373808731918346293546996472740728671105858216804189837347427491160626723860584886357903430730248281266037789162182354042536875873816163815607733899361886670438023771111022149751665841849377146304209578571484789569356630898752333347836112333463423757755801594394544551271606990466694529486692015987452216120642654681302231865665454821361391983064880282844445002428886978000260685672309553261844592480348427102817935664576474333310223187138419300717887367654303267031392898321474634793491702105920873838826853046419974682681227926473122646419232781546130154397175382200368749143008494280066901099836156699776226178661545926354164397178496020170223088563470895372564098714610522952024470939244063579913084891953350271114542809958605132922251639007808989554122156017201020164550241976261787759473705413633875463733442256718983449224594917569071658192011851880551226921456756722179263389458761611322134425644429030730550178529401266198881209014957191757527535826632064023470942389992689889849206498483811952455703691998455476299736467181460290661291202845723655478770832660599776253402719132045700693264164082768349353539413170073516932726414237834541829735262620712849676341290590021174452260024393237871044216193210549062207417324696082952432502642445524478583384043531941767448984136901475103214924382697503187479733029199016894876776080152964901610986097815000698212566311710055868446029411680774474491082765207356341153869710507980384642802290136223905784282571576207949578421215648293495374171375182148803088819925463048798094121986396654008106295082132131345844480700837688031731981046445891490009542881886435236446121865027294331646900089034568843321248030491503216688811003540547497275641959942328130550264296988466028944217451081871916814622515309095687814974775480190130107858756433504140984242113121711689462280081567145141112021828979518093264081299432410816386948297318303024006891087939837961230076190177883234781142313743341410650190339814936879091444014834838218280955712233687336286864140009946969745857272725326373916707894581936396942325947249618577022696777320404694593498173611574953223690556549684859409521794290807550005761638647533206626481361217033529297484318392521383163152120398549646447778165664401913277936065267777643267219164045726910458433673928208593629242765883789477961863555597278461246328620734977682857321179594307983802273520358046069200721680762228666518583453022992610481143508104734640828053206995492817569937590523517899317170316192479608383405248080909643330676397422592125991025077706738581096837374020522568938186611821651589227478550741302190955547150946741395039269780226637522938413056299489255737166337448069803052729163040928692927053263977251217964810889568339794548177725210490032130286782309507380621632679705875113147554946469255958928903479979607949651225315308051189928298841383232655416525045240159350874832080229571489519182471293601353434244276219371616275372723923290879400802190997031657716398025617463024272353284603751745527783886028751091797414481439019769058297425130292860023185919617808714696006922555989620584336260133725745374688226370483871361740969850717874712919932609091701206351038279788087324120989399123127212874116660254154787305790363613206595912785341567019759504237687827440301086222554413468746863208128308188794464180740128511605419308455194914016635500562860405573354099484154674985640948559754875736808706391449277594990453933940147839925760368343042904992775676618429332592409852101653334388725358780951032862489250386732442313723818904401778422257775896305486804330162950639563115177093587303148055976106278993479405118375941113278919162783515267406263710988826322047568091928622060322246027479296709091312972052323163138291975094535672601391788714567073431874841864497817801934407202329748504067534671579221784746112480592084813503535712536397859181852099724633650653973096825785924461762060027066071213397758656782836248900348826805646837852794929246208214792643635859107727706889411197863950026842551098745879772186538480305770321102384576491287640420175923448851876514006473116791231036501634002485398958639249472673768000609721410133064441624031360886471249663839448945191807672177076859276183492304919087056450212770476256910778015308057372277121874339444375927648082706600545830995690445821083958727027249336674597148322959312338493637942023285264387190404977985458135049932850220066302747471562118035433552194663033864928228300645029090654723035809592142427103238531479968946970581521324069720837121995390287630641538074286651450569265880551920469087975550860044227032961251065249960915536461193808601785064523828917314371820349657303348255110420150287580149239035706759130799776616817176281226490370330054973557085907229303124937918970892043046114228002659297823833841916969705051274635414603506233166997744826608592395331054787788645712935034040631833322353257476878247167412965512472873894130074153166390548880400253125027363952813054745349342391821979929987400324164085968455546956841170308121124177920368640036023780908749880755860736787425203942380841833785117728375302253889285245206950817637597432042383594123889642917159939732874424733631175363864869772299301658441960891313099408508038043062867780580242861393880954161325555697679939302522141045821138655298318837287348793613240946164729125295307465809388555858290511385750131347470980565166636193165358052384799686655223887055896786400974762721406536509579737438231628166412889572480903510325955487921778391521220169117828519425824788236152998194657068604472084795907623290209075110480225306715544602906186033204680325223864400631101003559356062814011501834644969714669366651725684581194416262262161718822575347853180324002490999569936949672108072699317393861425572662101229042410011827721791234821160894966038537390376881839200623196203875221160721735673131465630838530327659020294801444400649585222648618493645352732682893966309713059808919634087990557881600799544353616540160469825252380030596421058414959725161729022777442146535924192312758428295752110668086002660939803963920217212236629353447513253464041092115129808300105580066594517696706303022364669374935401407327529249344997474388325042864064568099316752330692864860219959823514759864367696039850853163599656255721486389951923130744632279972009811728664069455502166783744279450366054854248232894194841594302511406295715250450784458956365431409334652371750708862489510729534934350077250697086200753892281767828953429598265291239939713350743400183952317474745305015021456798813657985488674470865884651527139034130668999880605906585738987628418806659344313407765645383359460633338538614892976635635634830329341687505099564314346394177582987861145054530907658546597718535275051290820685876356326977496516966719896103147399615529844268232358941449090495154964522467890227910961516265320827138578478117372459789378189554522525557745890203303947018154287932927734137582424865797472774028470947910095972537161436958635672492932028221678102965785832440893265232880339049130111538165009188368008111763412713578661502597584155840990239634948668363926598186739346247858653580410887153381199819901251019658485604287597846706874663709957826281353242420390546099085036949335376713229837345083291853264055800457726434605143746975804994770100549090356552851378057993321404212611157117323880110535823930574582115814585842520102472154523988297101013291835548997802928353524183493788151490576264930675125913960748403812446789059571920743253385888337320647608411739686510643484293135157320616990273595530383718305572153879766230445174433616282560713023652794757615065946586441664765437316386244037441254936014930771313060907521554544116112494294752383823988189159494719821296177434784468320310381292885686168457926246726845190552593438935963046867771345375843893514629777355779012536259200075966777718622441213059633504073687792873671243494692923046342610191625928406754644310060136692682214048252605535864527794747272878158470470133080325295038946688622351803065730097255794941298006309125982124382054938714917511801874898508500527139962012779769905475834654143723493609093049891365187376213780095555073926970856989580797951419725099289746730588924306369245705750421684423255473488376586276803616059784344842026572899831089109196690367546191944818397480327157457772271077680431226069474912289953205108942069180745973680330149361731151219737983146500846965153464989163783003026584644034058433578879554708536626221094498505016735223890580896683285794708437412194650995305480181402956034049239756982591611581051741147550087436682213283605636093776358447135608312475303796044494361728656118505126512864334136850662783982474689989027677772752672105339718363242216404379510948513112628835285082134569462358104957410971998999292829133992125564516512409566524026222967420290950291780703852390156194308981384021188151426993334540388221752256418648921137786941238410258459038319219052835020337736847560215563230365065842920259581413977332904864816321428653879714791137386011313371674875395050181098618942951806627256634055502850840462333542563932382252977372537127061320858323406874607126354720042461153670357262567599572693827645134822897121382822446113022646924341267626818505338261049609416956168347700660059946948851477167492049100796806732610590057310241785267909135411306706414562779204277676546635519798346461204401027732355807364688986625577086671067704331537840312236360745536502607561337117504670769027309897933540486990840367404886579282856014840689960674397458841682279699161189974109568767681858007632418787047578603853594085765751426379425415982065076899136405783231533984780109027432331591417509928006213427182377633459699132597248117868040288165368698880837019921842756369990459519281314993019447894940185340672847291685242639798842436537339549448802546491606058963906467051238632979662478973032257132365034130585693871164245285887900270168713425849778110279033368347462717822162244359981129595138881321046729795086749842600407522428952207353523736426726414671538637133907495253815004929033488240730985427264739309196882290084471359160468803445926706695468154016494517278820754704057767053238262157793322240698123092676016834151017737868510962840881993055329789626303230536932186358892923560100824502068620455063004776246493437314355582168422859522890190106291477190605678949788620539523503353945900779539747682956183761924258409199941588720910212694505334428277473777385828595350096959448394396717792745578178536641068734006852117073036800542188367928270192434497765054298010560625617273124404565718261712461047337936098157934146775253946975489721684629511821166737698629095451649130119435602903182123129756802126294910435446058384379371567697854430331992964618645610193412557883495948959918449161631454494884244280376822650762989393943912228111936713919202245274412742743309310158304321351238452963223519221428660003557173746876075780912164262888421541686407058446202349946689582131164462155673673948186455076769461871664606820140389622532085503281142175840665921325837021697034831159606272450892532183043072739868982650166242071252825037617882551314011905929436800515965328200049004533212333363737480790219288979420397732329826382210239134100816149053567136831959956025018573757190392583616791490720329541364278109837350019905180292470247005013679176453315387842398164812461546406528818128268307728442417081053356115697069591595908431631478743159012532063607310037373722362792441161619180362230462454192240832759371892828579494598838835008169773009804245115850520285124011592155877784125319767767768259489384913355020955195825409319955550968244213027645402766887190826738463505099814275098147858930587184521763064272550946881601778563446892260071709998784127408442217580880129527596903494058882000221793737429612051192248841167558469794783460479733723084940843597069087350823182664286644791449193388926035580091354192874783162057250633818649124961619848144251566432513162085126937664266500373428217020331668574304325428302122031307407335201403711595467646626157133079673476365997005758942299573896463478703990425245155176533174785072791573685329182846103917644451412275385202210276494729136522797162904944496166605544543937538897866066798468631575337694599719931155804782057657210999715799029630853820388620192822516392755038579385224328641502723248785614271703765264520684462480484654480258134328068280378115698469440770719218849527006270734437292707354127931035985062669709981616627938711363286924315510626591776630507089163293592922102140037087558365240202099185929094907935069744431962458536093912363248543040766091656798466056850980232070379297603728564537823629083242401926632435928500900382436033296563545659584119911391641309198891738965034141139257541889686015759449536303146293488831801956249130503257437488344057890572339355402851100777904250147738336271251302677238527842761774020212152187321034010431439250481246772711467340519231848238166342835833113322608503168961650905758958357278700928390900448635111497874009480592128743947563920121867856292127607924587999948397061461305946861405610911896768166347740162707219033911498346507032559837737659838605398918122368761126717868615172784552595960730190084920245192898786830655252343564840482736770963208095701076483540336049021532070174232590875475262566327018600574923343168033327896531354010676739985487809382184140681088253190306177687842281764589786976023535371528624095658412599212624032863273444405816582052296063201144194161924701052482791447865624986399970422097936070378929613169177573792377283008110135005154533367688845089231683906661740030636907945124853102784339331271652806687942631221978054335335976591043591047995444738442678778585176536199065134808136163355498182318684679814601978050564164825121160771461846649668507721724171407499933663104139378834998685825317732412097747255375863910431679201143696685281761677297975160182670712737602148244954226690024159744373738817575168034427600802474636198410563701312566981344789148566856220170906793477890056900422912295522051083200678028044257594556288606436062475146878435734282481590980222508254110426908604778254399080866142312565373458994153780339428360437714446260587773846826032527719402878386981317568622506416058038308652538205692289166776139641701529512629893869399794298635111796482792394780882099192357053413943878353099196241380337042151184492167497287720540823159360415846054714845135309879179940966421304283720262175907338806731822071284511782323969106758399763302568724749165822463032138695353300149637646872359704074412197960132913998310121138131957089470240127562587831426530401119611807515761972761390490580437488205835518064940985831297811326748603423262730236068213148867443407221593974038306070063272625677535477468648740517722748823341175921273816891328432393375552966859417934670867529401297075852345259687206999512020247678033447698106628317152543437826816346634200265314340240597938818823258723399832879701307992221034563241284841236530207374799103688275699044225924832018861403300333631112215938536264217253041687176634508328748560241289474690951765666148664688571970936432081807781889518011977997868834733476604842866135848905120591304705285984572683978296273614782902055445295900976210529416139882319781440899664186752548673324258935153210095725293971492697546411672275755298259920389230058789129124674562030126651870671308917753480074878869887589957535613530867612002596685823681158198345707957716157830920275124878606830185788320424949761798607797528002754379860034840298183274431167120168144100345452036994194198590175542730831626141595536839436608495952072478779105323686176257999870270171376512401562100280669653029176551155365930413398355120528882233483447715940689876146943635280933492199940666026583995162990679137471074253410402532755852349137039365268101369965098939650085893451352174533176564110332814705395071402297070138667932065629736168612497875873125715916273632812193703348914883728061092956820306586087188220557064817028767760325622034225405949678744805571876142780983266972044479046574457816601079847519413868041437132757579009151285928951013068875581371075666739790777866516627749114450170588932954077109628743417791520161436686453064977503174518852275247167439738392829795579570075620526893098989952574600907745253322539741129832914992543875613522509551916904030917130508989242047384269306392136336451422108112662861343251537475840142872854722175961510940166310058961957630312587629492861904606966326510945383682263151933134597159580233270646081155777269819981363492337870309988366842000940513537456145417541120498160182485323028578920046057207109040870630498963685495559678463588912339106012061077743087539813584622433534483390106893574399893304199952254890046897600036084941546873999001823643292465735139853711488725515558907874036221996372093244138674679784119683077453917973803161551105454554145404851750387452860195820679467240991118473498805374926955457362760849554726131822822002256583626958172816680315352140878588855973525163412814917979959351964353371207245801442046912833865095832602465656948646370067517950275529099795496135784323225261119895542970574074554291556906734421824806550295920748200468358060550192063576201819256070724365552093063180328810565841447650685959783987758874711225170095166014147763433638103198907799361369118553263584740366811763105321200411424402108046021997114571070205585772049739631673602088132532439405860122941283822466524762667965279367882483943713698517551885067005206563102013590595675546807569399087752864109196184023023491165621370128421071467121063990891010041774127764344513983280302315983715141461418421385168512906307157944474443647781621836188761648441832290984215231263602101756949357119163368723084910229013644313540530338403143090481816663593288875502661682356725357571637948110829932930307315806082246438835809573088081792552872426338046470822483850141375131183130319286867280824151685126935305482677099079131288526508367258023536987554598816734263787685510126858455868378833825054149817432303448642197298098852689272152779154722751447162514242943340236502826209226929923848234184000122609041751770299640383212516250382192074479901682079643996718370684092633554820267463954917397586041994208089907722348952115834277591545706669770855349086929501239001866863198118088780685996690769660980094958657761595142690328025000393316829784419777215339123650686658564339710619838503005194619892473815359515943185224298451405088934374910825848554091557544401605362305070593122997140129009124875994370257780065506707290595604752287279661424325435760164354853344521231334838229468310624271655748898082081824155525701099963893260635096091319436899562896756688037942403958848560237133716740005168340893533031042476963610991286764088542401843648510364043904042047727329352996070527310145417197088232271170794706457916586687713543037374985466936758683539174014191661332914022656969626268955366869513905311088659089792505863073531333874171868337113286118313190657421767220449656642262853032671438398783525168384784960880111560762416612101387021757908329532197148350388849005928909302981322292065526738977525037196945226182564658907139029258724187387437915381411375937688715233016549282309480804436476762354066815927453481212558468875965960451497603227411052344009323010457623636229386161555896928672952096738751111859617375355290256081158431203337209245899466756734431348902880601200841224162909253215305176873581538887645645262154457627942038810252253885346720330480188833889506298357832079054829669942031856685916442761001314595234494029547460386755137640376593771231639131256965009907302853537881929076208043066958303863751180273092053187598651515512023433351994404087113817094386917068114991952856107539696762379314872538478422606690936723581506324173841995913107534979065846982600198033747344314109827508387286153846663238180462651826201407359055694516278917949832749491590228845646770678784392970355560174003661911430525871916321256729530578289460693268035500735385823796850003725576409409020259830391292304822584237146988299896902274958838503552230333757115356682116400464801125651943541576462669502133151563943779105880588106887941332462295016527348400601007730788140791243732953365506788898394924605107651462713539916020732112612876746922930442980369630324920328776057432922354469738236822736955572498537295271037657601516103310277538903375017968313398482950605282002057858253081430043843439058047112711253127251977752916117988015844327869628553636526809780399537046768639059343831227034217081447933336765202682825222725414546294312237419600740265187996545130768905700701461631387973431066609685529198365112881436807768726553938390388956320203943900669256914880440562663941312393358001544528802331498884196233072096857350771187800755512327129834523809386567702783093047485636845463511761050799590125454508159762631299017468225096737619946794923409259451115170686154656569863871237153178551370892788567321207000047762975655351841906821973812674484745168794937587548185230289384316186316199919866771520330898242398915199773971471775158672528119939573757608985595778837173154624663501379447828110408757905679780601464156054169446737362925341141057311314069285585233324781607569768532971367944018587930282058559959765351593305612579660441888102687363476689501732576283096756020271538797991850717159977027233459218893883013989408249326169944611287871795468198467368406057641814967663061468175716011660633750763288909545998146763585032989001136118682581129612363534717963052187466192084843954373506544391876077376084332975161818053431760577730707351368349870997641567328059447538782147989386965989323671056760230369067364960769909899110304480942570704046725933725110319643677238017402619918828401210462095644390276696466325563757247320428014388164955007380919037618372070261286824985448503150981776292979337225529042495653660603738016229080918543400630995975038748829701973219338195975423465227253284815886595438048894630791890933848411234825378973905022300512773949618521800008821888396777346876471410280722357244545009120853679932131913853358975125902878144880515558111254947225753262505095374585309227145690494944563507784999430482964790707686238531685675308694122662881491900661436207512031210872435056292535480057640404926332924509899872675241339103827889626156392720994112200325506293537021204756078565403974262435291929471377863797015012957259696395151339247273086232952809183856521210529837986750243629944147166448964527573503415551306818893483470690280563541451349541479706531099734728038638703465297356044260707226349942531743522724126389361980954703857940349378767775566109460280906100449573212194203585530469479470099991890869997908333438821313103961066544147512360214873418726909228126520883987714685636496237788417929445383226278827360878391424565129605341952743318928715469288627083665379566016523933589175886644981896964749555970105435508514141139156686828523143819864243695508982156169066483294936979110956950348368344732326012932414031877391830155448250783200678130947824099900069385014557277598582339091326692902126542265362053362701638404646622185216315826563885905058599468668770302697761799192606490195426549819031867118201314052975709873411820043675178342608607815265659370489432203054398494741543280826318444368888632662410202190814871912694836201894905887347079622613221879561653097105536686749380061708075968416947518777645990061402415678186379159787290155739254674465106809105863752492090458858241907247880640957321516628186188082060117086367526121438612257338374438959555700563780575925706588172855957522432746911490771244585352610020511125909351737484539579481098303838059637368466390549046401220475099524635044564480152758555717622354454108759042461195633685243589203125702942383577604389302007107214295268859597160564061734935793252935340858443046418783610124207598298542853247352511328489245363644830293618384936849421532630498483619775201438645121989957579377877922036705358017353305191117826954346787543857346964655795256325494414060499232525178182072836079383948192172399321163673151226815591699333393386367570797717048166364473237288514731637728304871889904804970007899006994281319718509657072819089953976666763345267533430428441477705246972634764708528110330595750252222597569886640758801709024622669082891185438365626279508395615902084577627450266301354679915735869010096005550996759598956117158520769791775692165166123599458249033000857234409593591320120855577875902858178675494328792450513536712929683936728689528363247714683399261335268167887731323146099713372241133244286131270226099801875193526591691679939071967717177117873557452341591091884205009076039642561450179864537948676671144158468570037272621441949117921468198210470170944840223624681553575136673701073212519012448249419304913544247719963457132852637477839264937980076079014725258667251204192284018538078218950994350314229950093790672076826727747569969026814623297640990674338368539252928068499965562655192502643976694501917016417269884628426227983707930184079157279124812371143801686873548278785115077838385142253160157644727275023258634671221638699437602696747474017914742079533789594802418900699450230566164634507764745911737962619808761649999645144894709797049246507887313873954893069455604381647258493607723431667804175165468581043752285364309842776298440647079399498315735184028761401983926636630086220198787804243653657037036284387034436439092213719074635027158000597531495566050113322396931384236879467954961748247113261918608730857391154077102305977840837995650163658163912924471972471944422170332202934288077795020705338770673353806809879596248194411437253305114982264332943382133003866789084901333520005470166850783135211067350710939561704563474587168595773097350400311744474460735845895838752946498622552270593343144515176948886008661186837786642567862562724878707686178447265772671652682976723463860100583311921372401666916631657244819201071151804005816464081358083601239624650423605904045408083363109900751571399229870788999733008762222690580729640460986959938507444409895504413350145325284884792374849355034919029482544280249307274009576499281202633176343182178509115147633191386769782563081265223600696569343770308747363000247771203374269150222226148203276407300882553143064278198518346966008029858467073000514175224073745634380360211145541375466076336500475240374415873362926909430241224781280493312671661841828026248599422543888535279406383826244365684856743880645351814259635982111100203599396679852501297723620526143669019161740955372854294734791485940366760672815604120058011180479840823569525773415701000155738028776131947127637699595568235820668521254104122812436396925271862014551669669535979004663308657480776158822150359643143513052780240311755935512633891799628854652231696306288707449232393834498602543559833515943698358341315259831168683619414940376622088695329587962210342998667486205498254466545101346788547316950117186234507972747724640370803570005061584719577984739323989422923302249203396800070399429968145317475564174985898167317033775361266572322872403220599239462597025030989286508424609428832921407235173013714054314650824564833423459475978333715795531700405120994090297782505272441036180876738392646935012928252063522207516627900063949694047233774324188170092205757156338064972201833517005499325578882192813335856034436465924318069631865796693018031280287932109282179003026362442320935350024042047548083307618611455183956879239067610163208462637719456040650023780449400457970359069893678167535719160491220422173022398271443022167434605492419084798063213908541357133695323283729364260562601391933234840631145079062408596081080832949808343724312922570190144391939628420601089067655355871682423951735890246243761343701366822191837598537288381573590225879431868489569408726185998715496020360887752694360759882175854034654137275626328064429201977504843564584061201827088943009108009835599428749830219768029899059536502038537999693952836674494350154981321281893834803749120000105603589220908330684346731181800071479297056918171983974197809661399280520890479182669459620491748412106952929206417685773794654748712009693480184780782393260446700956566532758457491371469197559383034438251759593703520068123235364098121405554937420407744428331899244518214957359029357166400836577903619131311999636015903558337605597290779444771974906078917551231467438078144583936070643493449105426988696074901979831707011644918413322048450434590372316438562715581594162771052773779729120755363448020265012366011271870353899392068237246681671162083235284553762132169212365490872815896867900795626624513482306200870198738495150681424951138152668319129204696031882993742256921756591034510697670100560435746386862567896304461515107213422053579564252496017545546726459016632904788180544031139818320489185034232947225823949497998275236301415128606029281242079188923945841782723669160042495355917117315667100635765378419680717045040952509369866086231346399720324966101569603956283443859574722456029515411693104613599143505975924929015799699089670772008055926669392053043526941950642593571881040909009791193467367150970556215803175925598742209817479665427252037421296807973787576216202941636567308064778557470886302523789090760332718700229213937127935124701277848986397601212226479169625434636488972356229473043049736707910701342284469916557555151734695843270301834321162393007444394922221040229538921344601243256110344774557648729339634341246619508264667720657182803002612859972523323544601102609038706064414538438637975531100918086028726677998186580656223196738838376044389840593454047585627201204074704953198056863505984021805586794015947220911848458086234733177016542528450749405440720700174913497910765172865089499322269984886612976256506329637864707863670929530828659385929171059219177900524308370003878127989126035548992195219665319319632582891941677217052074415163432546794682267266300597063081185145096230176067068228012381288739528471649161433326113640469767386649409364863373013522176470186628633132087025245238623235973607046142527370188385955903121427424523901452774826202682119475060974122324003167630947216727631966979914401002024552213125819740826034651192638625018685275120390526582644813780193477727020219250459055411370287304341869615814414609065523327632994231434125914761317127523369017544369268076868624253103661271227007238341614925831989914183435743985695689476966220024753740507941293924503412527233502844393770630054870877279118130396292766669619562563514077396770586981272271094465227232144994794585966108800684189151361156960754955374070076196168423255539918603533476891743670890675436542041263153725179178344760442382112647498696476123704964684268214140798804443297818672453409554666069338812284367826731469309211507451767121269833561320934954024940097193661998153099108704469859802876915241924226388542046549198433781701931549959785355599182612978968360102464724309914244495337003505129361937212664180400042176786743361679037756939859053876721622811547377146946735661467809048896928394504475281740679823397560606402222003085717047066782628944538361604930946112841212944378967714937425815870321079327399547528007049388901010392253815325653749979247986710666129378053208210755653594805611294269193564514677712969967498496706767818160825277164411627554734151312163317117342257233887292564378911614544026224024933656588043212976538089395910228122640758265031957632403952943724254054238562086192003596063396097095951236822221015536607889444903809218970935677579804039672537535563795360439677760389335953530823428785366389042587595183086695848061441684876478325498022099741825678991249261488931069738928408241038091810565986428621222735087868309417241386954898843062575869073728165410320667358133131410431977324366249614931822646131314338301313148149443923156969340830633660238516055766625480756531788148295266161006819967963620317565109332027730989163148790566657600398398708882591875495996425733942601219367741363246021177805780387454063541182528817817603827806778588974875467990550897150734317443259785057082160947337491365873555119078409182318649583082384431074416884546761662839083048757879222265003695723859852613068514302807421389598073448156798040709649556701397389046727644760453158397292264389649231099543025643710610063179444603641934893628688880691206310026122453832491579203933242541663868510142139522317044161165654802901338997838170406562160522584878260124690548188023988239199402533517182338668101087647774348488404088190372485044822615267050746402509425336977642112713618308923873663674021457005569447545846579529699301257401954625770553976723112720269794793337242322288356328297370229862774292124355269319745033602223808205444319275969829867652492162827346539442943023836334091790195027412669220203069978881042793494531089360489044831527388379918761101856695235905566562091969490331660852964402487051369549144707458180650021228183423891874388569606969753129110013161865525048870231195425884324661311011312645301900995887825546190937410236500967585837709585104220027871141571324148369016458359463484382474207029341502571856664783542380133656715591268991376828401339656761468115888942584294177540721947252126019648588637794535497636179396317008854555841199895320937103154037068924022722662816904896542114908258374485764815148819132713682522479852779068540255351522692772477880271861450706945622978178381567689144576801654153315815961247261516486783953429421397617727865504195854979235852701456241665617122366552763288277033904769222853770521282612756632391509471353646225622889769392109603508228749806173178645591094959738698664757388305357573732486623622493791568174048921811854794681650733406700321153666296884331467811349013094049225499145819823327167426182057560190044861769495509251744762235972964827208699249054070320292733562176361647627375152706688349126455437833809035817143156480816832982061639605087151498405733470385718780752345908815848495942417291450083100600700305508744015795318242792430665987484508502126754171084456548881692511691725125630208482814174947822750152880031167612210487895155900047022149437689212557531989469312258361562873410425623862569672004656682863071845629903770869283593044450675570156337864391001580948408775446847569504464029065455297618835635475036202351193860103376910283189557894570195963295918629648873992746273377781824964680779042712147067997598801087840798139430055180194377283575908704991595627819633974229730003283594280988546068925963559594742814049008863229998765989784277455649375496446265178659057111018682034564545177426550680872946252108912295048215034919733773189920038718143062010777733384565776643483130753341681892073066056151014547019240313315293322923899223682539713951450135965071832331956330070631962808123560243291778804216044197015918802555652052950585391357154988257374883674593470882943526763757213211557563655060279659125913492867056248172503651699677825951135681601879321287390867047396179566619799526887212859906045566012206103532484853330315544048694721923417469544226817456469246734161571250402184411494678510095545756726609327387059939278513410228397225188405631386915022145356588360888170068223866519990503941386889921836283536519430043114996908361457333260817778971294580518765100618392990394994750938913919114243466660566515864258917806633563688056204583300468267868593646655125472839338501528932370872264308937145231903698905719490237466829772329090285741251987987501277992866061408798337159637826821199121013725397525797555639757021076152212528566728036554451409135177484807263415464077737954584717558449050908136232668990638466132487068436505794496599669413948976592793611295022406744169712497921074254899113983898721465374683052751953857383688709383814762880960171712230465407596195271968609836490052618872873333717625443860400971334629277847758755547872646531583018812683334704953561170623944253140478591159500042158152681158583985505968573598197856348780129458199784134981747807949017212737561848071744467723054946048589179887723492540733679193990066092384892311162608752926808530865830684100081846581176946110180922564927582077276893669829700788888874789884339028406084992946770818245039528909164828735457544117483793470211464734202624210540602407135696022463061507389112149543929668874664904992912390416030852352181537122666788646361744638320617864567964205395850645272606432432628765786624546919614711134453710389510181002667867370378299566437942258864910394474596800963465178725166911439005688625233264624833399315317964725355358477727963370496323848892367205037927011371179951361671488854868904635244584462702757726013916701639000871369306753023896474573777010345728806837628204484519939170855362615046950391162915615949901796779174056230854173646991024434351455297655302135495678754574317537352097972641668908574881757560034033066006587030742409930820077320559629857009769914169800711771343815478234327394984875456057337769684009556037773599585563657985227226507552727482860981721591398794765280094000771390488573482190756632923853708828089738336546524955617793045110189273482582427445010370032968013039707878924732501038360770613540190911140148891446331340204989325855069997432188624668179990923434592731784079988362078750477500978390881031114939948816515443480435983853635066305371384241024284696436091023981692097090808349654018858501306431753375051749856398345849880226806956785524493963196256172712347410476644945957524660253875583305111204920920595537309619782154499026541469825679850021617382807187721235613170893533918856707074258220506885850223184258375470988466489721570148598410743004047840890506278727104061258882185857558885250796760095674832609740543203138402212179077991394212164917820662263972309231886324439577177735301740916491696326694199960237220172491309689345167790392353407502637239143643525065362560680736931533430882949461417379428141565691187000684250930525471288622394017181589784882292586559436146962063163238172949877547573905610595561024418367890316126900232472666399500761561791060703669944342689753504764087174852691500002505255530293344288937879963983753373103341880901217249489188504569371931517277017993689395280238520409897532372763005450884251843421271026666904840105051763911227030209274134290282202841437180202211911208525798917196117602628505669421377221607715462601173606621424595931613878893825879914157389438002019927873955804731792110805728263075197463924398304498639145269196800456672695257824648140502231032769751921937220801745961478008921862384682294716480042314478324707421712346743947740751992569928385396930660293748334240863258211361428379419728887700712729442251935235812541955816084247643335106856584275581359083953412795947755239574369237132004449609094608640959095854268229673575344716892987067954514267825386572584837489444999678227927941205317070629412911826467933950409672246797518637888858013501301102373303059238547823728912454139916867855631190953183009724679065600772399044125567576113884809719648992870759992787295219296662218783172924440947373775167605531785197448238738431961658653038665743330540617781786480681440585510331069957903478308336851728018766396192329931378635113532496273353530845783983091522528419038954694893449330677996154925964476704491760677475854847222700275792468249755097767512076115376910218471859450193119747024797974781751795399579599116057392774366346571918319693412412808289001697036594374746269505808134128144741284016896875876624543325037018514802823321158065664899118597897496881065634710882799627836500309333457780831661753354895375489662809029408176631514827041925772960458724076924121170393428654052246252577750179351925059418260444389325922332615189910410515419209408770738567250739966901871682807841576199868036301106411975712673747459135031680317193062547788496991092158365998486899207173650235504596654779773947133207278878528234317855543562464230388400819250299551683876272978138119757176288380771369989295976807921555806413398049106044891094047936577833080797981195033848041111921477362418874557598366316787500852987312408372059776061323220755624732248197636483950206543278913182077833966490926944521086866263383133402570089339429566948627432308827695559845872267281777303016955094281025104686892911384178305012116365570891178451027796046132889218573807570339461737003743789501117603168660378860690337871631347976636916767983388240221387209463143583604264581062893104174765670881825257858511928079951321453767675665249739086574847485976752814686651532403516941138258899413554901310639407601904004696774851141981233124612437785009030214046210684938397172481705428643890313699061623370812873252425753218720642821018247424643503608596939574673517587429967501905598881298207112153172798495114018773495836798977426571075128548714691297155007606529893334770757399365220327088006514829470439703488649682613106344707569092025217229337620189100661000264590687721680949823498745235851803966952464187024127502180705307827903416776374447191112185900391684677626001480523890845386860684973958640730660844105690134764072246436752399487101647341737504521817169248779989710558276997497001233795429892939499620287066544494868355662770036827912671537541156293511800691175813668911979431506292761134229726436260304585437757313365689176513530883215350944769796786690302177329427526170919374413700970967954830051153301821335995506481996672056390600533153546394473197470378781579667381567253444683329929201783002595499397658994510151490047106482022439476212177568545050052631756920855953612725962729152850990505310436693071326642819537568064100388870338306898901019003488803167640366174568807339557357950090977155549957062221546688882276526214696510963106763080341501859701894417423514839731575985253523803171795406594407516585349133122699594842631205757331713409648113356778229391900564162676384330541350599166083591841093379475790082251714843316125000464129872432129736510552734770243046594144902344463192332273818580784762175690734430504873218877921362651847183626819228641403053273608735614181616378262937784114454841610621140210817576485551679016251865005642916636954074030060377871668013312506622046803038346473059724639477721090804679049620335984786096123772590556723301969560881501867323760863635617332391749900279697845227234839522119015666355154723475005742679782857228945993813559441352216130682333015152091389389069626833307106868437174176136810407029725688467781329777299337817883453689601324298612257036196914287797113422240283333554629825824319830828496773914856877226989190806589747141323936630906400031082086527846283024524743958691912336834628080412278376130501307915564226610553237076467727364265216768636755854690229159121916277190313766793063578294391058400867432986218184493834989487979102604178855311084584086326775722275398819762764605609825191673423266620065177355307410677033108649948365636830996078848114063062275470794091883679872941304136685631040190493679189765744374924502191212807842796060705644075287302465719273557579696275461070836125712744446925400952711239240135356607125124999975495966152100131343431687652328851665524803462864790564761317807134948121357558176003113025654915807063167582934633077017555597507110076777222549495939865915916520656639512352185874082502397839496569197502943846023451326721096129662806786876054234947654345658506986108508174534847381789912157652270807708071541476812339959980668853091590011601461105189876801543059210740670458635060118443540647665771562838797611396483404869620695117851174093701916244816909908323863384767740746988236213895331355049438557576010111667284910009915241698123706310348169977939888997468342614121707101998509278246620377496333764649190327815377249427456274423285987884185543516344795007642937294975535477887361247808945548854855330570511719865756824018475321664417888412824482657568650623358424502942838336080271626513336803082013109876669686697348400264405036874213534310448610590749571822667249088180720782349319920041977890911528609260160047166304974037578814428680493254361179296658214187763194400096822648623318167590707885884495867113222032963433457987924810616764677058075333264164910340027727897428477831956350882870580489134155273308152270811847792069500296093297850135103004721142011539523006289330616558248305731758851810752882431887453400843529467976178673039556033113951721729856257075377535688586350249555490876193771046024287546928494849381214973005099558203362160603416344771956381586455525226008237654011213779430120605870609970099090457522951576885710795045751236452382898819312192501020091925696244003097072010419269334935596964474320232088909460196705527765886709653563792049603629966732364157451957941405575342016982744449123794553167304925667629910347553727880547651538496625847665687455498357804713997345153862784189048434561722485179801661152140555970397636314996540337984888361112329323808268071939056721435089845831814911703081368846491796606557234205948298406958095958371457077929799706797992479330919244946492655907157864773770523828382128985416288767306053381872443108113439964570925046079823879077775864756715223294691346021689268680465929347942272258363438940102573254781043762160090972690946740959685099887099541668615212968555686040914459852589180842187962515220632877575508825280876815119699895115556837325914492058688187506709694339829441659870114822869470301600711652827150605054838494722768775727662362619692806868490451295095532580764435154372020256123130458331161221440185383460389204129224315022565560841171259643001129459409922707746447075601454924739837675752602986951479940574815650914083578480304739752741688199933872594403296994663095892275586220607641264492675067909117407689674386687286880403520938936286578486111055415093738649427800388415535492499724035565486354905218969941373339936528540052024440283947127716159412291837138253049613615888869072258527993020852335111325155764235630612932274679903215286279771081865322140709443044045410251831285697352012001987151765077535113931179533054803612846743739315163677601267880075337286806785395226668257956227314463614664522583240948358033756918475785067539454354686489377188380415734082373909660394424355123715777571354784100606666234564627240934095788593962745582210490080443583270566248163342951272268439070888736587225784788932929042921539036593722914502315924752991267358627066593385880678633115620547445393151254245808894254170899034016913050570557457153188283732272717434334376529372998622045358439712373593208901484770931029166402554769774244026752084820535676762694363851434958000487360201032710901050666083971251748316551213445836291772665678751536324871612578821897485611644718566152626271116245714819377868839985348524563231986136165826404299058867617188052371151165238635958657380540841721950940273520430206175193415969575259749393648963980914541291562748205028560046237449851138311065840252605890730814768857825085496395866085931589779293346333680786712299840751520531279408315512232151429224662193279651439888095178911266343691044035058808385189449494072940131219973048367523535351135344056723302970246187092332281080074983703493569552928479500424814095422203083630198211019285995753074456582696637673160575550447036217495482816886236181872271068636167585376282360462946193960992733649693055699895655659758765955249693433938878741863772344028271261511189921478775009673675053883322559606341883502880956472864778613798060767464719874460738274824942286409632672349125601207421179099785145416659388320344945597631036780882940060175931802457826523735638117554165356526032463132312155939305075595518882603795349877481846585005813483924207691688857039054374617742414096412866443316093762072484862337598822093348397060470036082176737635155767416413685959188420026497748787124514713573763135860349377461858798853451931100641333583584269773115310074894852249619013004189563138700866743672765878327644545846833100599124094626982262113441313442210959369841907432551199843732049838316471433812467449725043706099729921114111899064760008294054616653479997960868313671453552792822608500468089206234383981695468715487607983386549468831007214552529568527457746248412321756659809586145310108610935162633941570702889215261906587832685798048189129269883938072520692145109625009554725847298542402476047286588634836279422371699386763383734228933367421235975928784770017387090645231459952350996668092143461316562058689878021851238993293165156516765456173939317301981686891189085034740186235653729006617506548426341968068015785278916002984944676134038026056116717127323318609297962222269898009669109914366182547727838658780269780019702469431100822206704883721535214789174072315679047508095032973117580010798998793556617888377756305708564481832892710330037533805730636898172798187112017763627446293338742834655845845566713328947824457074435890172501576320608426850361737246134927089554366780481063002609514412974374873748374703766591365320756933257819328265994180760934228416406638555679537636972506429629263010434542518128578190898956824197864753864837130857558236347328338328174184738191536272680671637026523662415146604615541675766272055182093996917846823595924349681797111490357555039499963597475998739904732673219359697248907174571694511698858442521783467155694023530330222015107862535225265369237475032314248279523654134495294930347004952684881125080863090356227463293177579806974610479215565349418239200675192153064938743246616554568333046633784116348690027767990409405950294277237655123510391547097238118734112718014401643638266147036624186113603778186516698280241022471283707047902724548757847729541890366756774228990996157468995390327961848507210528720927410585251822207415073446645529005381534469401370106471053463316975032861306503524171018681336930901174779648735821582224665261873861841442880176939770929432506570002992624982772398435429289054258478468125968907225090863471537700563010878511375878142697393030186133012374794856865336280898661820775278204394130704755717641535157362685161485342286190125976403898564936422852737693592213793600969229832518617151984956481953592326941549890458620199875696914480127567696616375086781983732844533265552487435631864650718676611382415028626330870036778917775427925520391549858998624554924519700571661429202446052517036765393653652150648051770126878016314928559655084535318366233617073555311140464142402041325038373095103675059319369857700039701493231554027093367126387995912324254408864500171113998785233072343970362159130597542854245309578461720814630971066280282588582268934791791111499977481000375262235650483581628763228864302668576101731341425449606255004808354199214290776489958479364674456684415663937476839638879951936070074894583744749062158615286150511010336243441573121907696993875747824474151558440427430055315090879589899499907570877952295963591140193837800375708551704890751320811281449126888060180259952998764735604127541057625629554844476244602547626956959859608031041860505094254291468103939533261727358511589877802448288987134781119848375317011190467523107701853837154588814722505637141469356972383561705020666503803230644448172343639931538742837922790199093738702910772197291226054934443856603375313068604932369306353673623358331904653479471765915944861846975359525726189673768699203825714965008371951088247341660067537328709517626078429605541471188548891880068223853036149747556522698094826925448041366114408760185135464157836324806324575670246438169541329546430144710086424286874686092864275120891221331088790363424424511423143479737391496896359747686003668943209245353346348791433795810514249776558350837034642753561669271664792280304034960810210963577375338020754912521860994752946596832818228479261867678604752298627880144602518676283006437218930768975521790974014281862791177143535769756023780750148512945159998445614652490606234537019724631210290362713059686466536031242802377464716091371271000447365720829772424023617424973512390553604622376477182520152516612629626535949746796646327656750962184811564270593512075201931217541497863475856122751756957666031346338255196761273841177953751390164009119715727574141376181262967733156834307355227388443564570943267315578074197885267561010826583366413637619059570769107517017380457365940116046427299515437615052409688086593152252836488557535390899357501716794010621485736092820576974307894040880582355561082088334479364431878310644382596000131599021537909636529245926226490198982603859397359439462555111142436051456976832811978882069653299469657316041564062129630694416932822703190865863737796148003674234931207817192151483226427647095906052102309665179312950412199037602738529459468235083242424718748546056019839009632748180947732175953283845109089189722781679123219060596773010534764434629734263148257037877607732657894541353826042218411784085537785726065954824439736236437392000506941492267498682424465842316193114546029131719288698392773934533493897970235017315081187031026755126812466219928971519754718504721597133440731835456790348015588708889734313981900490118131016266357340535801501639034530117666313690999668604808048548488464780164651928184107964808888566608688454525640245478228020356463945677656402650400861850926557740259009654165458945573438321987097301035138058266142532999271980193894644624234369012797053704366345458103681859878640902634669082967285865496707929356383990535170216931714695224897262496919348482394530202120034822423188295853814266909214655675208575633578432214530032089252380314088757265509533085005695279677110570204097958528537232852164590879537501546141800459478606065895302066982793960590723704913262401747284410778915191081787299516637729074124004116451653566279466447843431911773476653908584691601051531524260166448987962554809644846460279346061720711562206852214311340298510074289488850558558465580500394604691436073397318869722915596664782430156009149488439549428074681843877628997000273146943381223934030465958241392147433475292314420768958121432093176236329352077578422769822455649871696136225867246213388205191615110989813709602782960814889982706227826507713156405579275274001297746041681121103699854369753020158124020211652545378358439146379014203987891759539718955023314824673050832681870199831092613789476564024762373803929243672042246712798231675721119747045024678369623848866235458382181775348100198900762940223961363278768106712093699887103332409527452427939973515172458133900436530941338226017601376519305643052153422709465213402128953156725295069330731435009185096282531269606997890268463855928047017580003929425257768188514886568732545548435585896972719101433891150796015285680065364959038157966921773050625984145799407414204647953376588905765814667669395701909469087588664540532939348872122685755742503140059660142766833917578472936233464254801593893726898558838283855779813926992618617582109103142875614562680319379329435763307622850513079259709355019572034921396093367462476174091761460451258688435380142057706815381390641642201584548473270037713334778772003893796774283837410747031563285199332420470233708283257961325101496989939979304371041043174290652368069525246797060424979119636334644829669869219587406120414771462990577192074003732653842434719567027139972763730698480076726599376418612126390861234203542840899093269875872558813591660564278551020033341730765424406715477787687670240187625284554231567002319683729152695718253419232058528504901957531906281672006552274911177325432302924822402529092817138772354319216167701039162233289640330786778775721808502351288436372715249454246798555782515144189843032486075956341277931185458567965845751390432758364297065194518521864738328870546402945610872775806052431192147188755393943294078273936399738091600911769085422183930933381367074569211381023507465709618640304998102741511426193443557282515048953463605676891563206699837837211841527419340875146142680100484363397141820286860144610054789051546385633436316209681020257511431319125101645450035884726673405983832201906921272732539366239412681932292005786523037309625761269974128548572223424905656531893573987324643462131464331773441768512551831265635128149973850195862799022398077742688238472301575176561533325004350180844198435999016519496144907382474327631832926865308579851854626109764900484363980568934685897770388072632292998409729308227670662032004838599256222841734060429712792723367630278786104843832987068897484517060951251663593301811292862992854962185704129002693293146935015973922223572328608388315133027982242596491468313617150803789794161998867080115894278149342314234214039010647945633945426792018223148565053455515555963499477753079165756471939646555650853583867613954532178354890598890739074228597397362082178826827544880408433677152590913038790114054088340842115198407446882343930487773969995300791317824788620960418313666420757387658499578882422126923073507287287057082927728618792177294454870462776626627512095261533818956291752443589087521372397381883246587098554926583592725798401533139276841504695110829599759374762099924473928762320844868389837601191569498499534813140222450200418326857308187149160930874923122808791863776672457312617072455871670791080113226560794090206705877673110616361786125090780947335244720842347649498247277494406513296287769510169545681782207095116393629897083839271707453192873163972470186977913614372335780244150059963619841733411474976162476898875537739539310079786985661384362332641467457441011144719933305469536695350313243639993466555223846170924765011109911187499311576096707379678606900703143531780144968424325512359510054077586321130600664638023399834114430045742054351864393594857581000351603666245401243815305825575015584426723435701666239655403331943381963987074305853600759982088342548758686136148003567379791549054158450836864881547245568259832830848177997198122772113390645640599705247085640051617065627926888240471297354251083875361779234272893926079428886392844458365114813765062457203539063193853544730817927855749422683569820223819610258085147305548136367513970547869993521549046055231381513077012390231109075091623694708948781814961490325073182578368411252628464803890377182132879627573173688013653768412708497166959754350903192109887918053785236461574079941796409368851198270765245583979710229259040204399389201359228603218473551311264724887865658391117932945616482064790560773839887401031497080780271524174767107940291889513942548842911891189845428840791338454420109992567074605683792185048615094079550183901916284479667993505398781615058062195420637053699057629919633436131405779157893177193874627770836972911770659116543682007723438855693092223282437389346259129434794503872749325856853969599039594412831316920975138913565346348754199152605462645931319000406951145308371368088003109263519104770944939329774426201644244284521575419931474283439911093422109141587110331703395387786413118641026435859105137501361019175537903372572658058582102828470310768044302228621981453177952476837353210037038188026056344142185327020381310769790720487137091088276995209716201181102954304063510570555187561525380287362657364972794644776659894267363232256149121883433964985015859282510596962565020240409945958221597222816971324760238215691718598665895592943477126264444375639183709826295556859759789183878926354558293512453016315877314461026556678912417214934407212310517702789873406867838449808300776288016901422171127299098971883324089695212051089056342884134061021564196879544227489676402738827780959885461845215463555154971256475298069692872396646003007876012338639327502662549403605253416205556670741617257706350900198706683865691889511336958887015059889847744500925247491984682467368931058054683123224329191102343767154771521135738853582376767578628309589057539560122115017234443543435811584615946532181290714408391971135379411195701265656142674399377177331271503366828798149330317939720991889881231114105410885874478851654239561410502779071306152742010465438942817287716355666527756706459407924447586232576652182493783214422272396124869568195431238879881472870497374503316874398404457143965672068853569091937378643019951786678168858611760464405646793723907273294758207975159483263216968478381717060833689975839727531975829696776633773157518400458435073265201687873729418056272728570980122935772028966624665836540369873010267714042145304315247435734127277833190345454052149434367002561036111666282796512990062042793006281790759110283854309961602105115221465171793128702805377739255609007262817310068660982328403014038928092451678032399485752249715311877008667333796933694760103411476820674218764322867725429680487772012290899149929624131320048599235295651591166391494073901617859837065254359703252378305987813623561730074052984553403869226364008731799709171657098755170922121394531503424565864162354620914907661670871985066201062791005487724626113333425490144683795674795606199199581358596530140069607553241121533886412988990794555555671137489785790365095411200071591714178979196569312074161122396254143333960531646355188708636134335781768544981940597160886251284454677539260749777112167204287092115893343413412083292623761940535479653353136697345233046023685091501718114532562057148801109015210365186944346397575114790576731797365875910065295625166404383811839891057315403123662123046344470924706102920011814007582253004396411124653247000502647051052686297547203338684062051412355528490929099894946306540238757349277614068654842528455180676785978039394987716681611816957458663208059797336273355645601876654217363960113708443881042897140486528163476280329842344049329682450026733551008581690453554605251638530570209242919922537103325620563407633835296572582040702086724600132584152054407894725239739019130128943152357232464480628996264155578030486141269104086321840427112958911312163635867999619710578352908283625040308389657212932610669365954313791544935732258680499769477580013303946907758890585448148965353889764830016525861311405330996459732580833132525165173113247802789673711297888003874957239210668281774259139938492134586724006422518731633923290911001058788694272883148863970795757157268472063157609009455209062371529054407438870512119388023650626837900404093774611551792580968382101168876212171493289779298585520495914975697034309993474846655842585686634573864121116615296194735429488001040777752825812167923968083235601764346793094483469781906867045392760634065472769215146901740579606180496279917647942816572563485463395571444075782084150439312697840449465909576845646044742808184207198742596328594749916171966035545678669410122501343542350440164033169835778969252040819956473865620800971658359319388776408159718787141877278383331514662584681731045720024864874265165047697148484199895628855165264783162738421913830287427681522746875261836218857630613051566536354500649927840238777072155012074576691786975893365090589780069302753053455328835024193987038847903343431525680145297568523075108786138554535807931495241712268876177409142033520218449863580655910204643864819264434825890114678784315671781793701944822171152596975809048039070934598916849895058990570353241680203063710081211101693259891336238849247276960157583905989890337457427629638575008185430056815248817247678111773314868886260061996943423821009622563565185924391717198664146222025882256647095478248311763100209369641384940393715440484865511824566382440753128592335652099024830762801026567979237330631857816717512620059636556449472832600042254410348054024694238931915288948774193046720225133446166219689760049712937360012208855009919058273101888916665661408055859375834392698233056625673688293073968925641082642862757507493789850192260368161611795474308286162348750426779129543127900570759187771999985245907203045304815416768212362280292526807206405389531918614972559329404866663067812475180334588993776007708078025276744465109573516415869935507214247402625546172908669874460812500504317450383047138070325731034355179455238973334113287565716061062775738940308139235061440110110479705996626815620774695519983169486987031075169492109559200168273418207291820860222462056627263847305856842364674777960221953051107097113801978161148117801556079150854602885301866523085248102768077850735644488297882936217342990454237005525534076417588791613856998429380403713434721107613037271036769860693544259120973956786041345995905328229659839143684688975568883202820285786298043149875165766122765361747472112583718896948808330667735780750814827059729577926565778505463309859822320981691549615205061426335532462224335553143950359678695221273005394984078010026564771600237536157257895271437142016365011460762015962758658334660104263684582708521504577619799054432383294789351313139992551017122707097283411113666485792749037043367021085531564138472655266124997111309602107804528510668967550441999192938120614494269987754865567124525393517247072342792078916149400873772619892288731552175595375753203071162673959440158912820216163878610428279539232073955322948154270188732754194692893250776722627390972796478673447024963173628142925304825881900153160460013977964753927838431313596753623269611858875305095920047850607884060648460597019992558013572393924551861694282121229802796516737832811276672817192251138112173649771445558378056525829369621449810505042099898380895751496961358306983068365105010909599984226881378147242225744622687755977129214083651913666932011900672319385709297780959634237553935683631046774274889093247729831152704713504831588166709924293397031561173635749304833239003901635164693064997670835364231945307314333328664793640271918354193606408530010240114573323981704696473011852632266933311526359733647456374659256744121199047102438588614036206635073147262711599547886710682077195947195191379735550039273386072988117421428507239761981379446779452956953633323276767240851835854214306427046157283806283483714624464445781998355693436524166149711397643077490551364995154652509822380975604386307992146863942774390827172231394003369876362490177554951635247766080302425640986275977451127706682640039361042977813358842950089896779617807375970987875554735268655384249653916159921562541679437505554325735998581844774081084454884448726103174651871160909556337576288846406710968595084046732160990402727204285515598174909544359225987560037271538254810912608138470188414862348627851421911633771456075551131350739942680112258954099310025001376503770987776913832712009301429088234181249004603531995183724683155996292399646983453416893936422919709374954718216800459177294949812002389952067119336015274379851234971374037691622904912869900578440285481462564543052034166471928708367037047620091227033071199680076594665388983318731186381834453580080463175569234975297952324742084031360033789794164580131763298612376656966694612729216311077294239886412044737944345820398039948071359310300794446964757806186936107329442548685552838193865105797723744352015596227167198259709172953136274829815325919398567661940277584669269811758179287867111721999555272771308854385730788214555649141489738462043602995127817424034258868440631707244047159886595250477894072691318849471061504142398860750321290715253395173675150387497787202900485414911258135143094492225721441884303316787361706744586377369066550604888950830402246319827012648027194750790387533991720317349374258012440859012408527428784012652223203746606405493980510204483942601822354626304379095886041189588552659506675117456019670362305838662462490469942596383362816983678049823304844325219626045827031006837951066770812166756908251324342804608030252719904024487918486143547984360914365759971156959215874953032137350604762053444740292156589254139021360425261108981626047515335757044408812615720143646947901007124788744650272490654189536857474124721828559971062669371991516982275182259226623593072421321426008246687403047865505307623542077380717424482630129140265267676334864024421084292146828985124138563071952299531882165258547884659886147500706784806775693961396408501181606200227592596243926840876878721216141588113708511277095440248655810987956365967235479067028658242790203586312049020874278036118525838574391885586731702938385016912022186134796440434976934670934630284103293981365773653152845856236467952028897024425173329809278123412048820817643118059630767780794138734333574404212214403721691010120306865720478011782364818701059516869138323743848018352870445971411847006830712607356442266241660558186626488574401159125403764483543311587270601181588000244458266755007152970785124149831721449037682018180441111847750982599708903762461688592498779765743694045530106883490755943689400297581894665962937447797367413825800240683630329656976676814196298705342779891836677808192108783841491853949570271682874172434231963236647650164786438369829702855125617815246021929394018520453119675940332924299051624173055717137917012514398693470779083171874401789048297112930440202624394884519086812605361500268418612619653633737727775039576669781126485065255492524584298290493539615562138183237682930659684067306379513580512079648249400523838863268753583293681544406988232307338675159838000373537052413733300437801656754103935329748131376334620549523646411912361768518039816851838023929814724484408843117324502293165028603329519169409498413006155598918866482774411198606148535812201000002518098572482394794219605609700010910425856134169116460536526469019120046915827703834194328174750118746574312946405032701011667949525338650514452204725945423166480465309390729083590947431640920224930664352238834614423830068074541158255499663005463148189171364586949763050512540963431297119078703028530220444603649930319715865206156777279177118658116558928777774466061555272107843223482235104680800055534801717570267553793711185097926452847676102775248578800499545338081248383390794344467692418557794293573846808854679716197454913322889182439187486835854552287001453764284617568895792493804416450682029519881617009350091211404613363212375222181245445890675663845817404948588213303211200499993512633803679091084907145909851426257203194205412192653648816127564970191994284165554846104181258777430341442907845850290894469370709749303515699404506277827956150043468092718327665261752981995562550343123150341024582080744689718016152300298401047686034709217611045989528071527331948027440262786148336401160523828356276700835812300270595869706601512010452803500001330727457003132423734256687675981586255398937074743197147692653893873710630687783850272127861216836400940458412543308080450916502510130643059419327077369785257987160976212487429035872595626222104061690856241564902210273641595015492398399865173670293977835789957586549095043130902742166791872001589746297548617388052063109242102766022529090101422710742322917050878998281026575572372812494872203151789002010967295547871428425094503597125304061722461356814150295887802521383641211891738977669416753601044872026062900580300596087142339204001660102288521740614851027527117128931035796628334745337788837750424775534637581189913055681964542775472003586984215613198291746879393975739610391963856331454844074503928994046740804240240212716883569376531201645140674607778387605245966834259148790914579114479448444926472491942027908914636535512392926370962364138667557439765630082485667776294531731253822587522981483865020668883969365481013390961089824566848988880728604942993675894907634408932168085488301428706417418259505801766821313636108959009765920326343416400775538125091554614535276459294550712619175830651833237872234803430852541199068729710269013053600172619241217469336828655638672907669794242876664817727640815015707686225048415164773493444749422693856042806535929991210788328461666987196568618709602627150745850213498568501156048961592727045483195354209171767930628796386102492386550990023936784538487641213238327413725911019015258483747767491156680853528943446026824261355446469242157148955427538489046773023011213767874227613399092504031625379511528351363731085569153133592063144862782972241710059568051466053072365140966766760942756383069161045084080249019329911237533070018972949772896567854577059783377201835503221168357483381924644875251768239592999313135539311972098943479959732456441758698472783185519353940466301500897803983218903750155994407775085738615199473737819015638733813815782693201555053019671371477075233450471121663358079286808182403557703255658458607804417623306255863461371795806433264480149820007447844545680207435824499706207548324054865171509761090871007903341788862016621933737422342712964095556259195155585757089224023530921617146767023226405597391389091829793099176508942207578518458379930622252408457473318789177759333113554584856761090419298819423498273784489961640535788663680270301922724078351243870434018440170048659855900837334482016234482975034123630628442479493928025459604326902658369947126064105228219404187386537950857920299501135156236501960042092092379740182186281023051227224473229068544474609102917343324712141182665817777601883690096346755067154834109116132387215459310214754162463718638997277204780333198992644569933779120332661555443645359066984060941972986076773094368733551510543529711953382898533836014589958534034289522382969858245160274123458736007610047441001862586752883529748457324107974632648265378477397874598249467986161837108917144944542355946690764272454235843805190418741249704611256957239731316489484065503847007994241867607074648987776267718339701662825003991241654356777016372465300267923008392586402751724819525974834985603321505464326946339864856469241628300451302387725717385662761806800608364130134338737696095548056570745696769651154359834083669939984478327824372732961501465269146483702601882945835664460442415160294178916183466292935342036196190493602515270758593144590743265500754800217516711112058822016808869996252799662409915510739921861350762708511755720643668803342970406168369764429367391411396331129681861487872893402637770577937305085087342647507935415274169253729667974155197984854863375136430320745851895204093225918620910537098684310535767072694410303934523868961673303734492086465856318384101078436733352963355818830557127509054186023849922002460685220124520917576072646937178172356018422848025826642781304735567891171138384532144281057189789689501778653082987294151942875618820115485652446284786449166543920846673662928631544628888467367039144035739115386042370746433421624740721761185185523967161712480369125011203884005560094602732787154631543314945091528029480502964844754762103560512166447812822651103424215281787081537410802205172345304552747041757876733517669811356810511170125295406789233680369414830125288038291590654334470976222732845391930492952150276166165480707688706704127305682846812657229740719120957595657871665390472711672926402294996302132791880708301701548921907646683528214544885845218492544417270915517236468723840235534874235180012009475684641402911820427213424923394338025171057340587532908954126389443968096858812788076742304198068810175113389739054000474735417340299356401099454807957817568975502768206510359636340520073352500329459591076449716669884054859451380054166488810318301690611369263391394361129645463466880358492086209216224053149916019229490613510942517697078336773108469967713272905988710549146251987497012476308424056595881323339837776241872343458043960462667703613065898473801210063079180436471176631109620432184980567448810736058086862921357382460311234414483786498815805563156617030036048404319869594895028470142333344701692048238285487280917819843923826151640359336344563799259291588130258614785535565912442108766857063860681237644418842102973235605546876268539574025966230027659696468990846294751205273501817824656539317900365131841189682977501026040052888430454990614635248274616988457165666970502529688602992615904555145638977154463021176769047969696758749016418284278566698814365092677378501185177207293100314557531618256493090037298286134079469109858417622366024287421682291507616698380616740292585129055576856326946374694977830243491238876459861715093334842282454028107637639709829874364100772666569562506469487020145665325256685842836515234368492010030844864103391348852946169035955456178969301511344075486126776838451281427670505117118942559156220749345155831378970916924790357623619721173481961691964416311316598081718188614391402901332155854377791937118302261270897151527107058077666762425949909217926452896204478741667404157143022125550364220542486716385865120842175375567731631282970953705564684491991424499588121251870423969229999310425875642444399130186408783218876807775482987351606071770709490109416347186617222251019315058207187786060769448227893602688856867976845026860255567685698264515632260137298490276124350941376289832017719564000508275584687179253576762220869210662002826986786255117902973180648773533967655997642237843741336481997043485761028597787648415741621336145381820844110888586430902505617360045568133337410214901040821443845934888589736117665587811269490398164758134348530142213365380066058500695667550127677779980737854701816169117417448182646261782513168948790159744557526668576973941444513696454625122425047789298252257174275401775138898532713713791381051844379376618211709249341135076296713405992584020525697264793707180626860894453945176989522520037947236156009224520057050214860930837806460867199137050579668705203113262991010012753958570600114851708029718164157637026126409195035192275211655109809739016343331103289543250245659145569858210228512551701670965720927752452190486562367130864648489186568997084081791826164935626856055250837708919188037418421859069725911920255610482867712342255884165337837220633094159247703382731122731851664620789271915093335257172139886143828521816646444982095221005355129788947732527191916218149523472037824965010342764492444535205187285891585033569769799227271380329866065026556089004099744731488955688211408190224767760777310895773254031539319214870471909072394717814340567199148635626239997864321433847736728262977764276514216431522234533237598150881816778472299034842082225479344038874997479088937462232122920849019848075309335985488533843410835881300849464550486761354984648799065873194025869363296016309140611119521837021423177679870637266666799642297947588672859188278516105337546951393174504816624251751959437996204652782658993139206306936539789545553181126881043844843258522179066602017249493365760422640937110855769212507650372238871095961618095546211721537443528410067555552543536231945549534168734774364068723144567131861456501609582069146970172389683177677674182277864250982653216694839000457272234247281621755057941778570845603601562093133374204612211085436705639376840018845498398659921754651872687767105746501791500202154069784168172619230829683937649436691154260857542051721280226070804326999849985548698225484448696077216970265405547576769449144524400847342770388584741090769870221396860625749209242746347780476646859796123989446951109505049637648170901905984516117866709265538315021740316942868204584684169567829223681857410368489956209255119443865413415855596649512253121120339041564585618228983400457525976956744341080694384499805299752411271718191546961448068170385596429293590237192030010585602814512007557431990718061735616104911024143593121367135133957393937924542520358850471556982429158218935568977267290813650182876523065980196330552664712842310827368091246335516334824799591913486101861067766579359822550297546857015958352312888149696573749561231247831473932319240398815721867345438944696332123558342451639264640930433713877387914032795355889269708125041063132821350329168621743594974320442101744010500214135537148286134353687709830837765430194373465558617398824574885697806106724518892289018710524925295375321508154775165901665229049535634797737338239729263998071553705852416303261028551405579598722037682345692119670110847960583165168353563623834325684090295708821089454097678706916937520715852504500040182411589972522126553802091411575897590995670430172126669131402279887401847769833530519042989803959468679199666430611029477607219183329690193507629250687763388469528036883660666279858705677300094123693973819626742182373162805208623711625343797362825936128662626645181413932375437439676747362381606610163948643436840801416145407521669257955445037068292238871253597738785180035100016932287368669496843079347055930272888007572431097268044386005500344856632798715212260390612621635426491139330670271475419464152865624101105672376848465351215334861806845679373241001763173426440684941788215101606458786897636041756905187627978055759464359460951983540417849245766256706967026148502772580051253210125490088173495954101292398692506089687783366087942137695176598740386525594934884726617388724316391959276958978340362191004584012126846515282222779451525361627122190619048221060665233534909301487291054185702644065763344135712827082932807728153678186343259693751229836463358894222206310535727500446820946867382587753705797753295507489372796154832293478662408812758132060304829471096292263679635737757441912787276763186560736328297782085556537400061894046623018439079699799914830931669049197074039352419615596315366262222584393421509010097744616166825008526009912099705363062256022862016174666657443038835131273535906125124457337769006789678684184834338793235258172279751286758226161075470641009328147130530208785626692391541305508914283744853746249725341437152520176727934168074073019133682653444161700967536937355040021142709423465578542991043841725879868460610622873945893210153653487570126523582745690227999435582883620528165731036702492490553403228425865385783157611630205156864156853619853287682324043811069432083754417136460921440934265905919948735960090103331797866198734197199430041185285769502562322945389981415873348402787470854932343579335652683287582036959237510495257234933154431037639840763036932728086110321257620273339585228829984070759041692247219541885939355619739856683100547913181056794222631835980078785376214448803682530445686362276348568699473340188182279640641739248067076529018852917385945948983550964458265999881822037711504279846573110301602643105618874096109418061030237865109750703553409953030216115019794801495286059184797760250389266791420175939044130641023166664311324831107140202567893761506963417435048255233112141766988305105731816737663868697769211106360406428755507370223238196258548772725028953418014712138667658370233493513372993948601349293272750826930628622248465876213859362209466571419050975316719708146071901142734163752350031084815360604571293869794397564389108452351832015027061393953216212451351138232963940631062942108725526775711839246239993333783309907590346499718019687175818506149185758916966387626375848918421259273506160593694296530227587014129202807218693682013282472298818727520995389084990996187571124347920524865689284613071479080715658521608431202765154338431815656967683044245825914435528009753170621160706538584940617339916945998627328279656054230882374957624129365064460547614184943758356272843208225930011596546129357976582900421005383178099322187220083109054976240301831802369100565645757246637644014922690394567658687183848233186542043099131654701193120855759461872112925938539191054249778784659525071752134692333763850853079998485248024493658302963325757783636929066017882567141306264582980012965638625713775117237114431188104751252402120805743291411007454585768297209313593046673987481123555110211495971732114117313203701251835504873162285415750779498048605559341305110492929129863943956576979634763602151688792121858746373394486755155171452756865119701203815513854069006960772633715811347037803875542468407876759763168729206962057776178653919218107646502300073660530504071451976660638205734730459124725799764898054176495887127527052356852310232112753206986212668328375634644890430870562006524310525853243745328793895463806960970873110868354421511225884977004013914613434138855431970082833737291065074218097845458303808450442532897474273598193243022334564536184721865321878399183919238696946542782261074000957566522018189569587708183351576338752635935758574334620809865536558847513269913177673496012834814339822963098696150824339100349126936209928766907749192590976212799239324819171747283608470505560257671696238770061008342075359695282900538746292932956232902896056083589232913387803997895961543747107536193861287409666596299454113830869280187392919414287041386356512334377606001100715824915837913728327081903689094449241716267829605635963222805030550247016445204282988275026057643457861811163210317204042997545893366476400275993257542850794903038440822100025720509822281444237507639804668369787882594393703556756768192181892370561833452504002767042854804650773887457617262303449539486919492818478475189225927503346818607466451263080919271184561432670109736514451289051771218535159674872462710150637698525746922169430126595852682857930543137090405228616110369500776260277556716916855176240391655267671089658511101561355266515145240020239635462054081412002005131211146286187122576842145749142591670766261741971493384733587058605938236305838855520263078695594749667343372797335468721234325358618585718231636218195252923855978250295086591811473081005934870108007735543761782036075992708670292345824692285418386375847835862132114933098833506091462993777363952292134219561451592110971949830403935697010121020791628184196051548207705244216705081187515704221029005964372394169209984148095325051972101542030208553101378976185429533848050670055753854851026937682632308763275253643205254115708073636439995558876298103368789738706962108772290075858311350628239325250769159942499560171181221437131281272230630128651718294717086660242810711000841702912895027501095929031211395230439384149942200960487045956893157723142460385621179206923558526661799026060081788837980057916370322247553516763887534902065730345874443153701225618100073762705222764529647968318625773992392481575386919013013893370274067315825981792916284968709726740182446234678821132957316011809086631437492034553717191040713274772724175580324417683095549021628064375352629510488960369067907886674013717874376350762064414585697536804578104418501699892404987027046981285768715524741822660878164799413997765449544569555133708806870262054836288384810918126430039714214116144225437753785394753137772026092746366797315917851747203443602009420233631400368376095876644747173554320613021278486983143395374746894540928732870619082562701635053888012387261007041042163195655695090453556753908194546709615019124613903232347391431208256593570671149108012180589461726470244186732567503856354279728232004336865270935923999563808239014705873321888435812303381113040866291641493857709771054674256124251772456954904303728320891545747741609907638089570020524557697789376759420540002917611617404013658915430842120798384618046389443197137540971803918686210636040608244342162584543868399700887533469939258265116704264504330628027950505741350459851701957112671413278958230640057665827867294554674952983447912666299289290263481171115592070427834942785405659738986619864071960941886547758039529434216564668343052712052478856779275245946184241116789084520405246690754285371693456642287693949307750755217201915937295706489373237698691149294683308923103345928036470545606617935280787833964571771257321955705907671741948716460753868422867815552951924617714670475283123296284968632550228009026965296312144710302305864848319674979992507371987814765843542112845065330485236020915651968235595263709785492906531474654752945677909525536148959187690701126357432617547383842871057391800834213913548545655547285194647383651214853490628892157398441547759974260933210711507812793818960990544396362665139060209404511919438294243529787353459321804291650082423605665175360898589791638988001172349899848583592070326016541316039982369765451767753416229562917718277330677950463818489212598443183538995170756418488123718703239728836105726040989774464202663512709933697278903219203210339504067007383636719492809360404263716667680376836653617250938092114424710253815767781389589583499845939410326565642215908632986053031886073864721780761165723502309559570098147483394164090414504516836179274780159025875646850922043031814779655395773670447731200761878128938892065361046331558536938515244393754129329478074514352252894806460959955396569552664987864411383980019642031221004761563926774312343563933393867146096087106014796625313234482871781245942419125371750829875443816393459761603455941592321513105695114006418303564594575166957839110137139078305433288685576021590441975189843716397431795374719039144957790471932836837012901812075543329511739886336648815277159007143702564642732176805524071190258077856698700890426143787191668720932140155771467409592228147917210122788073128590308009161800648828270648074547586205718294195170955459840134269206834964807235095801841776046713606917924663630712772279350581358272011022753157577832232731979337299943016529720790899954530430718513114121180648815873910400901420456782789319033463171313076213529852046561142150937298210425133485505864888144250206256056316619029428548951778344336518379606404559690951702724225300807753650230797931129059657150072733680942472214591710270414533190547441253685366802104576093215731348360980404407089143902089419586914166660375065720692266317400606874057817183761685605566215699615587410486731020491944496718402632555289646339090227886603409542900879404618533703874179789060870338240597174061390152122661833981541895904231276628889625033329734795816608878066251998731681032771511173424463726198935035074012660031218686157642895064305278307405411305473010666723723960475689081478278461538330818301130687770789225530870076150721186933341217112486419736572623850877837261993418678137824981124661396866271270781336496842291082436516903855517378425614133511872715392149669506114520872284937085002300245209210240700961958621637753733583958901121187743896188088570233579824202426285751889671802973790125311320899775945754725597810295294410695359475471306989108886074046532940366426855579063589695065822409134490622792433210351149689465486169097813617587143582468483222905759072804531138566143409763896619074946071797974126743879542324314117250136874102597079412530057735549365352306456683026094568475134443422269330408897100416655319778059105976143050819685961394521848180562346507681020878592514736697763546981822797936831392805239495823989860504494846228649166490440445389902063241603632762099091114472561084367537823451623660351826113309193742040909011036628758702760194234769513638113449453673734261024448678971669767010011127471649694558669486353190269377336795619588260657354973288898421382647639414528783632508107109029509827279025933612235615345198592560317037263796210125053453580893661359793977119280263980030392999013117011619504895333770950651000756892602082449014318741047023940672763501902921657916458758897376016561007264919051834145383901047083609386427520357017079334794316381169858434340016567576091954060280128876571841688657734999606794731610183603506268349170823311029043398010928940179208352883459562334424683467480970820948141852075321421109251594850881022058254136746256215184084151606819272166584293699669368018328381738127627890331014563260245420742347968776250404782427675665172831692167289866902668193855313957848593487991771051603536631429139452445693611546102448239041497952410767810325774182658484968859071503771954653522911969469894689624523993088992685594721613976917976300225755848392006944424903280737352368375267277514498535074858370263950375874824893000579318878065146598041461174276010544272658064613090489611839083712780588738668273547803440745550911017820767382083606405821802413700136328565861212739998811144476488826445586304533209954202160290640555717611140173965491247262102518379339189724832480824434479597754011767260635928422982043898455861630121745463011712104947320132509504338788596785394141139665423244945580880923628414346601638414212488705543569077217726064838713645632276198579304340141579339374895368579970491196024848581699013000498241934100635390551857594279184569200246322223737361095022204317144983635896621955194040509214392703102796014997849775939993167277206643580183002962094312114607943099955116933624846672310216369732796153412723406751190679990843359230376983365311665475964308079306889156793140681972368281451068431885779178060046664540862166974805691364228663302361253428181268449215329607110270326241465181644516189974606676300555949970169664257618788745523937923658488831558022649235727416387710591240777235944281087104674685281564511164408266662650279151019490917506279382674713240766004400109080016382931182767217427230561806600873044015808987804147977826933349847002523024860282122807468473723628054444960188026864821461393467933728919525109540639620319445596086482527723795898618008254607798410783328459070058185951707740731117450746259245823332752086000214725587503147136935245124325051665880658330770351897397238776902219846757807332789214219005591701501485776441466880662697289179837406326897002606023033200903978788133836325289502367407215083776433188575237334818690451534948473358756502267999164684855501057011897241643565046909285099234427695254616529149016159772939577746012402822524137878309023560928616501257266470535312855880689434738199482797894533294112158419407317873994121194771649148032967319841678369483462872082662014883392875913490429132848808681915879152413534194315743858028621988642736367545530860923970169835334495722117613574816389730563515657379560484901301348727519954992317401349606569390631295525038169830615620522885734968960635174944080919012860929865471424855490070868778052556376750478924312802548198114812121089611988801068407510367083363009195351728200728090886146453974364164718370240912559634960727470309228861353570744596901574495643050598185199044161965238220318927140465671018435779154848648409316184179565763836109566234461623538301596138575419598443408953213547280351565284862934015729414783584328324903378938851744080251419085021915598430796962407441789033818705224946250815926411577836179860565815156605033199475100059919838787046247715446992260578818466273874465508044503237533558213516366948480118708948592085005845331997909104810483934306175118825865207037534290801828031792278391337183230270841258809794259661021793084752836023317233329949846306690348641231925190619903114825366201695299879964022656055644676914096694988572869671051918046501238829510294935589676440938601830095471757247524132323782231659083303943675346275067768257848974223678066695197749710582564304437612735385811739744935072397558516987483003883346232835838212471183312454753872945496636937420783009531747515598418280822706399934633277196875374973144293939573964356927333457936596222914949052443164182533491174633192578424302659661864844837051126227620126687153063539581361196293689924447256546143147439824451291046909218885776105458968892034729336131802944805567879891885524794961834888856320548531964392156938067998976832782384211552657513515628681703603052833632918141835674503539773342954765396138383741416534251640284483879903943868940968835883552747788109102461180833419999229219527241677625300994903599265443147759523980163573570935674880653860999032870023744958516281307217487733960248692477980028547063627179203054897074930753357408173363521779651560739156014472007486785914114430917044443769865799211824906267544988468303197654821766152823072115837332182067807902854967044546581307793977036641178023010279432525091103408578930146280150278136217048793832443701642683517482793214401764778817635756374205869122024122411228138551938822973364157071915679735293024872076338717673184019117264911463198168726394329341656740299197056230955182441293310176158252721587611260913219702859782667173252687768867143208221136102290318218580576240860446330277242374600605579906792594063748909713813173108603797181585283971289157329894113656357401805186222429083398188224332720479536880078645541448018760841483749549258440889317243138194314642710450686192357298742563563179071372302810306225498481713656043874829897185569880624152409065337639449019815220450444010069014095899920452880319881712228588071271274192952383858604112207762862699743952279108574958087164564588720069727671303326083334791724669465346028725404936955437534529407489524389534772353414601664899851384230837760508107607680749103504080988281410134136550311875568050396317683111743852102547305730526056776958209935582352923549300554727560309397991135569326677747977205646582006760520848888412411557692498319380775893483821066320267133959502845694971098740484278231209430888459847299893368105229782954066730691351133398092916528566073671129163345141743879950549840253907058822613693789992345840399426369853827445050406794175607936166253500690138109255657521887532927674196072700445101901921654504745602917337067841885636014104763070802501284288589947086152900844770442500527191484858004184050145330799627174584164249738071544549385196580552364648258522606527499743335672238938103507274690331145166736233547609897952330909798044962294334824205334252060876515670317381304825199221534039796820841215904276660843085981985160127024795523099877109278021406278832347104163981477181757075618766477363334986240974975928482581049496528876706495282997877029197100981002660816318713664034717148169329153726840796535530385370273906462674530644850283478077337758264544691663366154737197017907884948037718110247514604493750422299383310825474422052231150521815385101765167567577455955332621129013448203697924178976639700014797837610266489341499001524209159196400836806004689884275652352732447850809790926100953781462256167808250180903841552056127328641419777787717910695799055677653074643645320315124627137500267197788523009213539518136133249337456212773271018976271973373824594448147647395092053764193049641878294950953545858148129081407589943207840126307829140152705568613619173843103055466055206875429062377697985331261079911702738495180507958946248483043131850031877373898317147607829830940502708680465613340168079411504441696284826758542656454151015654831815742914502451447688722129148219508444412497760729302478945717565304580505817073846657214983914370434923545007771095011161886813137725512377033272931164827539000720320061486538692779424121737879029847843491241598833699302204074077379875212959113200933644439509552242678081908947112424318103112423908275423606333261409049853546196349973147230248465555347244239725075638011916198972605207877381110240986754710635041941756640272082736938764115377544616788134731898328940747628600431952447121124159512496903206053628861199964514010164128501202109461429464795398664766638345047918395380675612177365026363110237974907515844197119342018533810038109515773873687480596741933190188907692501803561143425404674118291359677434126262007502154472593605406476269277463006977443293863606416908335596207782407886027545652859076016656293431296230660778999610531591609609014799013982574407001052732397786056251256154943890046821588910945504471171155763899980145831737805197803553765336785988296948052423547855883927749559473756940431433117290481715287507803982245873886387251284159341669783038422601595834296305356891161251687856678516107022456749292714588172438261939301813030878163574054987878077570116304328760604664626487699880300925392568004701952146814032493248364571483824065131141206430989343407059236484378094967151929489599064727554080392782951395290264966404056521234277777130033394632215019868385729062771324298718405743110415756516637736416045476438213596162208722638999361478164634798025297654928116061762124134796171838325569811804245924625480744055661942567022319914025195460919418773428675939846010412420660658240340047311447392215721229598791245778531872512116556906326806696239434747441917927649847633347327871525586117803380099332026746889150027388155569839577475563613041854224088881072291471656896985489694832032616370050741278779820925510350738734374012392339326825868426147441884454274351583908980239290138096675508550080183495778908844041779105500831639851463020014904302079272531191192293336959239356249089093585597671140203656379058680193367918768082068109275711804914806201752876365214149148255585210319558727242877984753168509507103249574878884028029195964913187977746220038775149863285896736431151869588840845132140880990016366014756918585208763201589219270554052343870213395102158039313840971597040415928588523721521429990436224414999707993936732177762529195766488159852337248652392019182970089135824694564648960102236643021963013725837468241463959012087231028687184894708833758939483752780315099988600913677465141822450805036623395714580696805164282919251252771998837796580082727059080572003143444204509978997701148619186814656454506610475397316314852707587551977444704431601294219685960809214068031463464134466197082900714120191800253072251397507144523303417505677822192196729292541580002410137286761764698395062295196833317677715846574780452612028231032201412539954646678727270633758301050431206484413230489822823106993754512090129580850112535966674306312896084441621908770725462563301858113756572619668561105620849375732060413999463560172371571988620891848534121907245052057064802346674446826001587840846304045273396322410968618722841692553455547446300847644525015496955851000774822257884273525771848780262555958130020591805402100613078826503318907074332972896848698917867635789839725883923083743059570046329076714290684034786153522824072305846805905062689242738431033279416877353830769532408604586895293469837128978808702002095200223456735191731124664884652265124471063863078196480792455102810675541227823072927563793667492285549374237610172538729458978528595883884864047450785278265184817955182819071119239555085648832804856923224414052379935717866278009421922947086894442897750008838494320086501188699662625408242159382528538574117715406465167554639908412718875834671769848429339523014547927754911813148384174539913031805301038476258736260257240294176013236468778383205036168453640717940764645526301351093035156850242284667041205595674595572829770690326193541622268994717432691615865604140998368767476047271411005683422697246250599984281601226159086535814531756086216275967711122644659203325665137723583744682971346948074263491099249320131371614823404619278888172830106719290760297209325504930354423524595661159903163511100436698986851322958585490980250414218680359956999319672072291868172001672085941480990929703283637207982187831713577469062443985884214916495417777007148949600351100867304782916965313604825521670367142905158791525615427730106071041069535227822784982666209745028499455794217023883456891271315682786542671363609447616489077763746685324330118733145668107189811377968155309596729805880827204068640766781024524162717964605721421271937198986915261919693336584915415356303323683017687231507353198313332286489679176482646373041086225047358948979828358627374725633465642036433573336149570304473363416339096492275428452624894827543501883753786161789124909421056087950387023752502700771880300072894986900866936974884969760551877437627629779946050582804507994931371380195416593094254255394415845016797224883276154544140798687129680350683766450402303688464791420732560621762994146315213159800810865351748235007353684962780668448029076319217076132667033547253587435608133916389851607908637161585133536341956461565042202113893434613496317884915474080858776830441584124605739343333719980803785352533625255403797107477478585082486419205912808684723625551773255635300081834352912057008108739000978897274995561942519343857217294574480281213650175574644697340742823551764176970665173557915958952782082722965884356881904007650084162974785539080397405759528576917980902870565777673835761962571750540055697083718615396791778670769912035688108515302117090419358640239211484717361763558667027342902729129882699477842139889639178495109972996046334964054398223825040193892566298331696204883748016928924768703363588189325591948487935162873272726649897911742474566954812578079709110422523787452693558063274845179402251751557542344679690447851367713138251804834813950733721265942032833843202737708580408370802151279303257949216762473151288796925560189513143014060626320053269219987716400206902880234069818934699785874695533785464727891914013618953442001098689282232854339914891343897530588406484292104855773468173429964701305750564011642337055122619469361313197031310290102357418647194302382010646459548608761007810820727446994459504241098704437442136691202711169536196848027243980198259674625922202286617236606638202916518844064951697139981699417430372963221834775993858799957879321759478693710993356165815553436835211594877597127574699511688871391736604969964774459856242314547866894159673000661955095041695536541181174559950079450486649348685144063092184252123605151037703923962106463171439691146419558851250385304231320019305434062469743073603937259096474864426491861738092943982822414997929210897493324461061310645775495992939643673867950567971029388453850837135466725422719358496894562982658277119965913959005115907851100038085935698545397990161216835153719786720465349734977985144430656339194977186350694189547738446394514742189819413604767855725440125796415572286871385169864579431214181311358478328209129516304623436207592260855609208014372673423662565872773660346310612089875872297455109182622583261167691569567551558373692413088464218997452164269715200314745996833773491702976045783366026590954691989285547847712329685689063711720215882825020617641214787594330144592580859913110292725131963048248406188784118741165529146093562249055463170234566300102679869094225877591201303730055004284690442819282233181753612940096533278104683118117941390871296423330842089980389579527957292598054408837257302940068294574788030046951035292353616858312901109098931529127454825317193528573444912116619172286661265854908992766361669426962244855269847439069802041196753658826653473101966144962800529473710702475882087596405587925996431040510633988641474569197408069128050464418071334285689887297626074362848190165145506556149962703586620787669369048307300819541872427879364345254843787913959542226375132617291230250136743223359980467715108856700454612658811159570340814924713652528634760435232397246610960486277453209565453410954790493953977569555301694807870695499093623025755381392973570290327126596867812609868382944323358937150592549012450033621028898190512000273048271714264254173820139809015116669175873406889497756847466628510979124281820492822241984736132370077259909525203259634269771625746649625472407716423660649157837780000843081670345194121064195824477634676566490085838210739357586228722347043619940946259355813329522388669648104749594826399767355978988864939263512525380204757651624118207750253394607106725427397457322275700669568212718244735610561195039939203598920281007055004987564561232418659054320756479271161515714950025115911173539857701748998015293619871229208885142755274149381515950417162619540741651504948763003029536813939694107105489219796755692651518753768114518585991940041613736367622295181730687361194315030475671113226758709248507477712887186950948105016611567568229053350808314678910130541916236998514473620776810178764397000728485995590754733540507266386484711024399340188983322325334676034189384045945149433143903838781821577861458228315658692190767846821349937556423890976546881776075385972474683729079733659763489539140543054948309747243835450446012520916682423779911964797410222076091494200632619654423717908223269411878669773170284184884738421263416393483743683207875007631590573585784754165052316240319951683612904451850040248119676315057008886488845472874974282955257035423675379615004842602785761767428617035538920017950122914013759237194665211095034529164369960427054095719711997867145586316753357713397313420367799849682741153514360344509376505907259213727373057260496611242236885142062837605001900749524203198925406840376024495717173690900818944350315014343464409514300351570667899775805028945144112057916242270912788188797370854650035966724880480890797974205878770131825944408483018141667710671746259183266708527590278113088336492135705875005469155547859006393173088475196134563728961961424561006091574464520731712377155752346711108931719037669637023749869663343630609142794903128135769213504386745960821320722628342702947619093820274984969618603872148694877046668567705717621862398055473062866509118921542424788885443208073147660897959677504937279998326035444516549134640090708987651366975150142877521985976547362893558222332789231681716455368363268446199987997070693888947915936797815927731932291341887622291388576829974545086704045320732719234119773639475505142118664442450518363011684971405435723978606732518397175592433092528786336957675086252467014358903644278388985072597780403869265653907918139737396553871512005268327636271906124344724216430774862338022940007670421316619450350711346958421671826330056943043745406618655298786152087512691708416619766464044357483124659547957634506343250383563582120625599016071506524978746092943969182962960718966344572998743039230990102557858761276161864973707053499665787094894652472003731762092175339513520556617931467028234553283462805045488600561452317737637372368828886460342275225658558154966138827822492468230149656649480662472729166593516040124180561437047756243079240501792056329856537402002504428612054435010493026193642227230648297612825956126940343887676228375745481783253267164686394946626947932693003450259724774533858835940251786782428797541611380773997805397909945590142735723133693569182882211253381672073830565412435361958588871193175711641164924594367097771266643365445517729589658418134869893225183329012072872258989505450791011565014910539671386305625253794007674217934759038698405038046182731503118840987143194316685277828581806258144404169173554430167372323591042901341641350489157353856996437265946075160338420858322033080309055609747770570917402154600035850294165489251491270462743472891181857665310459946814479065462115015480796062857117484738322894042864562391360532783292785666121174871204406557557845517977619476270760286777784899342667586115910439710344800935715786592498942941971981064563211062100837882469917750854350773734706269644506586436936256612812772465759598400273943941362757138843013831420537183520835960868769831756506517764573578552090507794294246946271162680731280135724938725538636458111948524419207493929052044992304244014529225300515777682908700342460088495925564892301503878006524257477066434344962901151664429446044820925887013708329286170245591765342732023586390029878191036611261100925446023300620710481190464975367865572066635212239942163206107071269493992981267212223305655501892189616334392727112698851812386194496929333604653959223884076188213328635153826662389814324434867617938918554384790209252339792253624299636264849260989606580299230012784357112316537120922774220647012489670470362419043567555367310382395114344123160530442491492448355364005047944952718341074478762776918423614642475301265657450307553548964850211065226389308738649392165523609301893323211472606621797230435669324283422426420481054714052373086520670791667205003129830625629980012410223376458038167753749737945272418725806398198850555298008004612489141075667331191729929859389389188747668788136524299386257616685987081291930504274090052967231195399612607686894291385399150795689698236550483501755862631143632604377804479429414753985981504962191887599274495096347908904095630231298020121706247879602441241838467608244489294380857046055015743490680359299809605369357824503037420180261606846373118532561051787994596867798340504843596315013221328491051769193884075219766166479111175568108163967954452600545667581286732060604480105341621906843112903866195938045318834230552189649528360951445030080257062669204551221009955596859731230590980631687212105489051494318200355679414498504954586977478594654983114939035939054141456090205461025368306254157767759291757165768272140240684774376501011640070695299579082957076330138698468463841948967613527018966220571506759921716197885241892683607064527481963683476196722088652626702858351869998953297096105213212279135120829346819542697137227114329165610112052275136219361589900384568372558404936092434740011070368230136185644062168812940437210917786846472421925636620047145269067538201614561248646400920649325309508491638213362573186206729084029742230370030580338313403133075265467537956120692148162123902563354325466430309084646464353063148562366755223869708958923890495993850946279266657571376420647897776487813895443702357491082964174803047294827740997095859771611066634105231803410465662651335129269023514499467793608542374611567722843262130079297606132780598607446602510143942044056665978980302399518559372003898607506245439200943547664153611024914951363131033176781750268256637599702507987718452623531839266595974348643058832344236984854980331122265476643914351910481776040029343710798332824709473286145120949690891141238020347331757587490036639885977486838226736366060912788669826244273635187207418194369198244656207152831499745704076835524240068488613339570916623674741020977648599110977466983320802418677323786210211765580281947995031594248600134256382421591540591789669445954246377638428834101061669612108325124983119383904517543139540123961119910817178494108845620237134882712676745212397007124841781588796752836947343822754435789040887295334211712736321130145232681833619539744904484274856504284026165298864066142279708110317945340720292025768780467746935970513512490513889079703564228411040357032672125818991614072527228414130433117916442841374876783435008840602067823021604358950297271219607701979101830501044593968260849777020243989626706917337742208686171169270136745655132466924433502504373491537738345368291401642224725620007612734935869675397105543195759159705056497093732994716620167882938666191298485786949366991720265090844123823629979553974927733497727118747506951111983131850173440021909072505167829851008987364325600717623577293908363912392570546551725614634803830477471742554412884802240819732519383003385937476308906489838429822235903089902381887775495937439917743602689143313743941018811805875395122746910776984047378708197335185547826102761421106880471120250029758307832399434692809167507456514155883758563478985955576715379774449681851999045876444726428769582020391896145259415141121682293870479299968916660954773309926233280192389279587116939950812828981081202168425404564459976035015851708026023943311079604719243942921195790583010341266106005535989474653152565425484805059361554978011150826666676093646164317710040599136840721989889754158154547847366910876840707588712818040869078165666788873068545652102913819392891616279585496394657138927216088089862015278505362207868069061983238290874747437477093485469985032822717251067465668948222533903290554707700508884448109118061316084709547164595042567023044084371072688935564259368649360615033082605770798802360459803444699398775921283363334582052543007455884197158163497523637801403696530631613678164622180150736620150319174839463811901341284861752708699030417144455550521790217058222450449443747161053822071012192200675030936706192856718006093921626741156619855703849849281742790443055710181454677262533844430013721394092273772623702716310816181275360017592130060610102110290406630718563849093986041607664588823203364177878048890453128815059501848945980733068724918404760087091167436214296492782762897291597865267578201029839896620552444731340896681815023163119091564452528530698936540740883257777192680086283113260979492020801806838338264727544971836466207445489975665903052960133118125693693776783932245353207351938165985012456713109867618123457081804562137738670416893888855864898293603953093598025383341754214755315180552573026000318975234932463902401263236704877747316527231895012582036636609166549107202063086896309890892727452471955914126846050246401502912359862670689632260669313151949496773193967380252964563675599019338900686816631579251350225362897253799119672291633089053402293613719669995505937807944258287900234317816120015398755023171662591926385803238675273219499878369365272249898603844316274415739083854437583565197029522950871933590879124337561834349281900417555478422618257004283499484111396858577057589553624146082147715087646648858167793892099210149000659160835768700690151466406823275906422793119744154025147417804302147756371294619917314996729044484609089729048499688365110204007097591633438359229122370547511918810836922257187097696333920737523715404079375454323943351840438734225938418013123270339158277364809233422625887027343873033343174341645083124423967056730547113233048874525069719514617796194253232558218779864521846166553900308826463035937884533674270771771676813805138053268811755934405325040989678800808155313977295620637050167924582308428683820551629043694929850489022813735539772952016790912394738455250713014042722513869212512104670904345748351008344837473534113953939626352990533302344235519252167392180453295922675148488320441949157911516533091016797689236999771856583742283216178912966877948188664108631601842324299141376287842866815031034994122282234732537735677231384545717616330181646740734733890642133200928101360109881973327375787979832262516121883822029262251102435959362449804447002158761621701998221551270023262191993920974927607653610732650267876592310656780809503471087149495836363335227280125576631429732751876568457452079542274200099898514297653734209854761403420037961363488180226324673118139768404942529651723496952067274951534552453478923182243190523537149808006477561182195313615121613411769231457118102104015835962300855617108150013766683176771429237893595412056578812427870661159442833523925319923479909209861072702251064882904082069177206545774116193079937769504547324709778977260694980357387962559994551947779099605715437226634999542707374209075469358170361036867383233397486616509978935576828711758664208795674138664037084560281857148789100482693867015478605811140410677537322695835096223217576576229541002977562223364825631804256210330187628109662762239109628870872699277319105238062811668640073262722120296318835247804494706286347970086313143717688661795197245192051788851136929894985279014664322050387939933599850858001685082079657914579617012124873695946690176482121491688018886769999826878930571987345059432825453881247110887941050707198332391987614546306353523536979801157060728515885393484437517042120515811419698191361195558071450814074606875221194262936508645880789957530198717384171230562327408181165538674020326772974272986515880670403272805769256610311042218159403978522182152968705124911971058231797345089016855186377472375312039563267152561797127179480039110397587821894523654199830158529715713558104910591439220346902969870050482432266082872315813376254670646549994084165414537421140553695917968970293491093406314520793088566335369098691944103699864304834577348822061804180324915467697642337835531654790094942259153631552171737677217803362884407561741258161562899522464368932792645149294877444778712572671349424841039356739715134335601999571114912554884915551008582771674176479839973075815096508577369229580297409669757963871047534020467378192227436911530400542004464642624023821385609910054987456024467010729096051048357317149699574489537284197599987353066559820709566847838931798775973372545033136451565603293683622371411100311006623093719753731133645202262826104465408747301851446646144099405550489043748321566386010172645473663397751048805695161089369712344766916000917349964282884718702808940683830403334048238338841807322841240357982272363739749112355243559072440278709869616224762430095105215546308287004371844015187205003517891533149029428401561747894677197512784401163119042242672572306562394242182179108157008966963875482806402091819914220823042408317858001134068601434688143448006699430697029342861256074509211065033283225137697098222337298332987601386425308656168840638829378245134550419756560222460112374925693140506226283920027872097344613344884383314018015521507941400625585668728022634111777375518053402557084550154057235869610537535979874342444208192994186003834911756702546592758979021071870357153266907981406981461006040978040121515119756001165556923071541799452239636777766003675260934399655906714353231414289341359506282429070831602580204985879790381842575424173610520701814338744714811294447027182602607826561246039712482703547545158410187870541370098299061202419737534362238842752536446026813848131018678739967659685051668282594332925059557685996347777975522688442662292651235151215946364978066785176381018766253450848968313308505039915421032580586818325318066537413957353680768836627399060600829442107641807190644275000869687895729860998232774693660863767579688035039871374011380996921049911772192065963355507401653621533884866209980646686659070795358367242431480731804530823231107667434941168447730099241240310211718351848660041346428901171582385556163697132664703624376218450977274291780795421355439527212831887498754775337313131953625251328058486779055553257899668567721212372030366914094802498481963377879943733284247032514562826906161451013961097624187065058541889292731686397087984915642255449864058090288609627278556606168186211166779332113565642340732391845455770145999390921983562245468450456802575281184173332527760567632760151311952748505427583121558099626477691354838078034217266281811830507091461031415032606881002013868024866435089336571780581272328188579769899149774027779300557137933703969617152899229541338275839452662296440904470842445900434163396959867147154750192862348649637710308978049563099901741904014062588669540608456787087846631621949023576512703966724862672208180035097430852823141477062699473466308631474774321513364020442615006655424351997087615403001407270973705793360664511095416370099501319484280122427971195832195582301341357943889588434293426107182490092753087021920356646427293564414511559797296519674998902761330872624296945652549606314304984264734477394566452023103590740981739693619374051601189989316039203323920819147310541758574460885993338606285883507864911023563881416652402071962141076284977376851845118226697574437947193247268017220565139462299123475750564878095284222096482984965233485718369516597674663395376409200354548701051456131378379231554211539432012827238220676176371944797561761638795841656563791208398859235275647296568703127334014259249464274193665082301451209177703099119522823910691051349945522668253806848432779287045677320713305328802258129843187786561587776742393952299270454895313069427366818588552114426956907057472861729530039505718525470910238225713808551196448483160812201218395641664702063267898769775085586290062099065295715524533618295709405147035096913749908446994338490643843391233879455527031548787774360766218649608449857399341858990124280750319991328640378265298741079589161396232966743577086583619592446541654725442547828616837492528918337800652670872407151955047392230627483036880541161171350485048926379641031724816869895063881007875173816045358234435074016801759196361923293549196093110653804501724194083319075368857225661238459862683464566755532640151798160236430358737260494591062280643628292551685772245198284809351624408101835292015990120207503815846246835928818470739285565312924966679998675881389249971128640685207581527850492379795643379394170064009050253583325753697942305838225857855998612954118456804258502457720847255268142279539466540114885726362144258976617233341701425670372698362881337464631782787751671272969104976462655632560500151531154772473267424363709538469506212801763527643597107934334401076050180641927949287141795492824118382303601194966818143621287870505202052533542422527636650467588378526552556252280080809687698684192428575503671551515483565256669561987900979328289822437991193840637478134920991635917483132278832452740062554002960069291353374276649378877543692028002816460003996552352507525065475037414029273064182656056973186156209279488303549831111494266220840669618961453548501488864543667972181383093402451106818512871460388133868798308527938933468762707702553602405432347439812914579920407811547557861090582804217475503200669130037799444517137212631868396783398369571203816375372119577275687325597948413676322605833914851617526426968814515616688710430319435637794024337393269236977315906610899816517062235545032412620777098094548827046676675918764824754258336062097922166900405085412594042633845636904490586935936476844081431708899439036700231312554566517012610342290740066675399415192682642287972294051717881444183307317109448930066972681212409820620555742653258667966185434260076689826266196765102738854891086686244307303319215177389264319199035804909169754044169080215908332066821963773180196628170736496754537724618308827759900644498356986919314194165370155515679595927425856466698294683272905606815346935231761581780436835320227218982046816186917645216715114172919958368991376255980012500054780423840539021099512293355805000997132666922133938634387251713024226839172564895369742273754857734239466787527759037942191250413390337776487903169156329015449886474145842637173295884816050182712628891275661317288405286513238761226225991873696329814493735156682156828380773049368227641879894796245449399208745341937242940677720880663594290710813282062119250015159603901151845961647068470985848576825061124912427688432304850523503505007108127255249470077412404401137548313522843449403265607025931838149713938733627047724150084704218443410695514891297226592543826552375000968015178536749444431314972451393491524133115988899042794070074801195617267254400621965866387151910782408961356265136497280740294907301897666324227937760208565630408647272758411925257185154743303219758838972152632084421771775852968013399312000078902608156229395531044187143753805073520477802794572803140001444482327694624612138870467044655862227222618528461273066002689729267324486537716280442379098577214896531151140968183767122875511141944355451744310609616337311216073731850089571182297097484468772866480506209337714987747485271316317949101474419056759899830716379641020010292189713303742685657032353981947144558518651881706684580444975817913341850265511345176446654376604103922780247302846737892974656621084498718367388070215393488188446657729474411380433108230479712621015982873358262613734927733793828710486707370592074815081373061137411617861498974826038270783406976145681296736540373659218446043285020727711390481742769590578214739373791651505063582651779734872435314896277014459503290948297654247417253188971713989261545866455893661128666037312194577517746693613133670139193677336049613683802758030401441920297216833444169028612986702229393250943114652174713058547212552500542225653142594152760858440919015722828864565067441512437585754224100024175841736272968897401212130124710526354776379046938912275796304803394108572996446425493400850260959837184000796742840100542869930088251999435589382193697154187263329070492677372430862679685931653252348192521190239713490489891226820191215877006653380730472985240740682240883518018427286292480992797555264912873391335743603922348470859163202239267284041659341830901221240492406238526677670477763566962953814950638095087769701570884285111041290960775439618751500770784135380513735786179800220408312212928518683739521999064113731375248305352752438932490836977748681623007668699363849531113317252703185857580247704749546564289867004484828037281030614372368393348041451077902939367832669391063845924173574726693034668124844495190087524129859069069693346281177338233820046152515337748668196737936502213726467688248377967603507711320613834241804007802846546051024973024745449288132496040963585437987499157497395665891790111166943791169275412609624386826255776999348438607536779933436255192781360659464276424020484486805010954270325318777759026681400755744668440731703912323778852644897182882697226355848991028499595119415322415694564068418030192007511192599821162283904991179993666786757164195942935748532942933115409989186751263401901738747219244699412807060494907417074294010582864021726145924648163798095119660772468613579920627529692462028721002949219207672202748768111499392664206139094477602646259029091880526547206871655503691395360243596910868133900009231529484344470777030323850256753855307038517660463253777095376533685257325928024075075839808930217442589936846432543897724012981556376494851728558011029929335009740244614957239920056142942954986646428130354544033114103306444737069697158348594168341857016672028529311090435994218476059740767930601055996961903958982105412381307583757296015570760133462272790724327788013340329143452621444043943612787925570224633002005113888526851176720377917371704228967212784052415058669453561821710196443082324020842662156170123451663388532613351927390876959692642911431305501249362903376106758478712136325400889096756826753562177897369442539250804762636262604875591742381332293550912010954188533710835040066192692587028167922495581602232223483945723854619686887161141745566440329171126262992614138356404288883465811768113018192533030100858330599031586111132597160899912040028866227954256111678967297538220910862828995592307522842761323454852275860654599194494431412740953003721689620608944356087749878036500175412520884340782441313105397882869474443357362755802594071402725362422182442989014232085453181391718964672309131344999374607801595963231481850639939718497804223350290309930970318397993158099270859497587915061736877878042887974720320225421144154417161156656446135262884649430488180850750386141208904110218693229911850488965106249239807723519643304285488196430552651802387844222001161144340192381524847865025950977367127789114230139188118794131949098838948121241429189854730980890198916179227760148357783867889169725996558917666443139587472970882366228348996224109770919121205848967969069022774023819941004490871394489212060718284546873744499438789080864261459369232268640247144665732170224871222958391537939508853935243920625998347727759095453898246056492624298590236009634402839706573553966081205747058950125989615245718145122143293291636710186247627068701703529458766690079971225274381006261859274228898118101722824283794503676775132601053371411805112758669363277866238236843866116547656070444318842636931830954194579971206371452103189572991720253700738139713946496076605108198375248566456041260494098334338944239487693797681591095064095346533462696981596327693860125211871345255492156289948560400014852021299646324419749681683050887904597702950674601543802185452510350702557079881573131377773008782166442820585121284637518600856959550735101176959950652695461191884951651384308746434133716473124313549117599099442205247531470310853961596354872865352926918720744740909798225138483770230191785950275021523224497404963118741152004766397583825938388875311911946098881732975697553245294889700636969613544549408122386311701019914632217795351026522014894151813802311262705295015017259335989609311425100834556351520328820219772355570064947301334338621574130340358741964286115795676191496270285332252536586664325822129464539633496512425277968604419253898800829568490350018413347991045212722955282663349940146611007872832117926005806639505049953565025255752584469324776472707957401149220572653730200218125225838935831061414773434990126588603015349293918116898692484016710812743942225168276037710615122006561726340348157987675566526629919707981666809899647218653143691734823692014172327726160430043257356651968730053785986420383256987612995649430691038418590025151621954369674868013525042548858974927830640359785915163637226611678589503411494656761613801670617961056651499800398997773830459840804045742525843551279211146328786548273021843303376466041515059879190036029281858160557609288304612871195012094371870630033035849080065186326669573572362391936437910012827213493557286128226412812166985380686347389776294869891431980826913996334132184757109796293719771856571061954109495555507063939477610896427459913864165897245864141051164957423236949483522184090909143392911695456299755467941812438418949219541716857973472388097817205672224702094857444923799121967791263880098161539684934008011993357741175089014907393646416617587937702261652035305113558620614999732132969794064755212907545698199207584416242758598667310970502029939041827260586394052498829968661694374780317534327026028211807388515799247929538418611565851259339957210300364534225240996493831148517852968552224352670448927323333702749068406459928230912839934197734827558663093377809021880405574118458109181412112293325596245404308489394242995623186260587108314782386865093759603073766024490550459527387217508083946722822439858201631187593115020272391473575655169466612760304973393677244706930085364551189005095451223421963274430416737938812273541825233259311364041049520890919712086374527652480276527039570595474703770426345959631749403637543088617209263915250079853339746681735314394156588231268133451120067094456738882633193608666836456894365425704853190004580932232355797701950117771810348778861133653058878168670850116605768336347023270405662777097127790444917221711448875219121466925413611814184048678630429349030558591025179885759004702241174983326065355282604860737366334754355135639546516443223224721627186906052922396784524516267545109248181598091190272987288604919114122085315664651741239407619274102711870348349704752264396882940677474905603769643843401066495779634560628775035924053192991188072511349663965204650951243093580637840399292228181658951290220267536137952800066807553624147340377864373830722567556830194656614880306837227004380380185475752096645792597006967906124783683675110231178933429105583224114709093812278759659120225078792743299348071401243702456305871858095471388507865870462220046661283256366865350931021974078710312029070915076375129752471024506152959206918236653320050265640359022026590333133009182243821935067575202593298508163045605919641869301881817988293384295263826589940025793371151149279627440466647110309146694263961033075801257361824791114035669312439509940170778936005453967661319176363121278035699841119975969371526607177308546808186826152466788328446628759796013761694968596808092993451319421231217503678415613074628671455373641838549869343241993226222487782856009927103826515007101819488471929623475311064934338774225861281556592573338071541729962085844887388896960988915925677760594568700422099415261708281835312161654698833939753989418808350669472333502999886754360281612913975738957200140003252148035601419062756857983508780334640153178250671342902688849006436822318531781311174789598083327249196381616692158115032609773355545385499044122796146389907161688374918150427364623729793595250250701648557161513386828545041570083802891699440561260586556744884130091637173408477967976368650536829627783448390013733863555582248103195681725797374839606400486477213342859661737004266985088736942931109153612595028409753852943009608523954817393236644540411701947048641647037425227559907402311218255964556407173275793136563207899519766287917193547397834408655592971847746793066319417181134297087895505912288571130056380365144842117515854693068982991330634818690240417222048834184216453655779934632322858546151756674230356351010159591239549050986623601380090361778386585076287364432133833178183353064480556094337191123454281832224263601696248781450052971750575655798490864780624819092270842291631223067791599612743966651751246973755796594238261809974392222800606500326413430285712963744593005099677132795502965291325330859211662007315338951477481419802638288378568561134538387768889957966904185709652898835713145024672645752197832553877081096924562114618663294291071100194760940443917873207569763146491118727726059311833794329769150648791695022104102502457124004017972251041067878981457527636175572773759109632620884112649314744312268183082002364719141959589701262353529626638931556080240387028031168762580269926533486072427360602401402435247179248329081518888618063925006233348235463799662135352381361875398513407900502706986143793687170157233567063568781639453856594054240421710105460687100614280839605152672822838515296035159323275753231147480952076088708133093515291453878675804674735607665120287338087714803411239410652002237899862749558804823255055184374901956616621251141371364669069129280111145983357088044879357160618566062921548474885274506262774703617579966677696281586548295042279633433419960302236641239033991771354041912125165526903063067551189481283979470686520217634226897065536773704507196202681157992394234748017020927063710018591317364632828597308775041333959829254409131237135767457007883123117846745467551070089028845553576111166334325212679705264506532139489808845862551669053564247393581370954993132990597443152800415847457305530561336990575465532089363221163226554775007711823743547937781624832712407770846674708013891561742456257027568871558360007638470450481839518602451660312102739279867601242954719703385833291403883054629439347950640404852506209229361249146900669194791956184017524395584021776225668411303828128374735016611922291181439992915507272402619541456425726744489424959444747928532376890792399593823569331402046937585867256070277748578926911816233610583746606902108523857550439748798026064477693298347895601368629690955047877417582070721992460352073589906429625977992136762989420354200854892506127176561038768338427323300175777498639460341730115584074416903361630664313645442090010441563890082286430285231044270657577333087316229388076382656526880181253201593122478575325889047522533199030098686533106864035698528027026847480405664493959402272271208734872231795863502132222725772938707774736568660391089539003636280542181258068131404276984853519195590988769843040141676076585380079731075637143526261252579908792641951051506410717180758754512729939853174159493631629162039854352038001154736147681449128740772640240586115667840116126226491390906651735982609458653593771704469866344501438128003933971591849919225882805398536315114670714531780375712547182587398136759167591449783963272810254388905966385461593187553730988406604581677383568027497366885207259675098724226546012267901674159125511898484390032581470176740099857198184078187290876594780117557624476845489660870462242419942633950167911065910907436664264087691740300053030517089307845432823355123308290182132072864865877423267334851449234335686309094769816495101537501467575575272221804353398465081943698211115592680689430565759185669777076936028160138543487071122016952649550665705661479932502336847276254364901534447384380038352889280876582746122009825032571349123666135987936940072871272289089695219340221428025684121736437325638593003482209105703859390690186450724230528637386314904694556143954412185009582974961514683729539280581309823388054134874856638378617568070651590499649664543403972126243734855557269950321854003007679290731932723667963637429963670556427111179930810230376294809190306286789681498889674742717611697500617717624353942084671162034312577185567163999813427527620573622613230021333249638242935325865033328975549659980042750831426952061989810698674016491547612058212653263509552781084428204791913466698911344454473393279755445534932354397646007030373188011268695045931323826146186103399060045185515108276850615485069344001784261076293240400624044326012273528186085759096680339277952349119543498173686198207994664028325341132705234568375952158244539133120763468889772773239497071093470799669692385547514217047110164554699814462192132314045484015254655614255183260111584188608320887439882883894197291229770890085842806691844659259117882907320922290362816615248998870474958194234218908728599183861062194552595970940950893962244862392833262260916294646536543777441153236338958192292024676038354100369544227981055264174105668184804558932481209653746770848588019901602999681321015013463812663359537783083940468447760040125498772280540067030738324053151183003270673407311562351446217053687789560920630304557196280210657235128289514358919961375805276664410151053029096195099608301541686830982284652864612928158566799789262883864029103389243151133706338977009642704878131778619125334836282938614664104634300839189448947076113735380014607275418624924784987144959029790965003444142450617559211500512825067285737170691552266742312437854580257028959442847118255963267499039342972950480061837007501063446758729844327862702522148597807517391777371239963893622027157952401332210563636084483432270299279057342732633473809401658055184605039873783980009308476075276149075651011502520516793023818956710808162623279647625674652847696469310825561874544224707750436941074347645507703243729794726841248502124177786855243682423456891313033570202059573767002991076086342228206560807889043719654811001186915046947575558639329146375028039201755780889123429014392496327051910986672430153176978764531106395542587223731068186573570026946885639700414379359748800493899090117783809825321717553652201239158444455214515902918658541777379764775403354394645544605039245735902186547701527378867816254860609708046156502364495045142689749718432965009921154759943576012130984943279916830440658975338791799037556101638610890476282748857618337249121709412861301774581173375422793249534537248644318287768334477334291143413420992286583194952314046334732637442604770766882909370433858379879330588270772519393672217722913621920205323831213029274419385122057278690256072657198647472447301337771220463541173239556109896886666763944447104576882702688846862082891760835608046758034340503154631444931729349536268701598628312785988518983411396565453132778785270129985970835690103709428446310947963198798249542942405640114480078640865556868299109123420627596976470633490716927769591070855233079934480636400142041994714461055305110048364660651001005147412197255618162356913408537199292387861323078185847052075486865142420610739337604564520377013057275886600653373288252747530159434684223152653226298034136840222132251298529475152182217577012513117460366686876760029059964797763663916698036101139809704491052428346871680366442492341150262439102838546435262309147628480568716709949931022888987697415362112484778576109525541436904611814536826632017731079415520621281424464969185425561090292318914185083552992029982555116521985896204155364576160337023955607814594456016726749704395061687120316449340492613071284990478209629141102246543760693076171335073212532749313152343927722095709163454408667024129018353362734510567035528736646868557512129532402326543898955220773356610493113948651776252777604795441704466788884570819060047600715713650809328605791540549283328592585676260170163714890554020775461523492777117253503381719840501724043249853458510754101974994479865518236356351804736726214013285714202609756994208558042028436063789281176822700865855663167231929013155462104827339227587801401936571757843527164698881084692289298714284430579360231359443954973773652128095115946576520147755502977786644580358560654433333170605108099203453478676236927920190686386229467001384776594374202474354849704046882853344374787930922645999160190263597858772562217765291444868284519580790947369687365161648239292460160095612371928363952889096644149487495627609283908951804238148520482472896698330457631730030260572013588050617739208396265826141213881494230276864446181292934460363161731953120158260956974663924769258421547944863778883336502401797844355202006032951863316273436041081739786988699670405471672749870461368645115737126074926924715859202858769064201059104618488759822628902997522021782593045468186027894349009466755052945884856026962624830402700285966941927947532780845284808392447755569728375119918620383750164166625832818581729155258419912472378934363304048764925981352893856395010080107375219066496815437624309128560218871309790240794267466494387813382187746781387357888493407560846462512585871278803899973705486408351924279957639325186168726281027671973779281931892587319871979131270694696568235115221028667885605062304744425017556910602517739089905758106844032606473686436272916416114856948963558123563893981417972708862147371047781605774175779186741236004244039243031656343036390784698825881709534733402082978851971957508689693746437975387827323469398202112500065037203173141976220953544931799924828574037529412748194766498300664289336948047284298543165591377606366151111025465619059725732766651006540412591123558835188853251198832429901029490937159737032578595567410871085200129509526131675486687687746299460770282498561411219949348471018079841736061170347719920014901534751972482909546578991352581231435185895207400697358720291627791362456991770195459067743355706207620260203836744391482219581893697157842130812190989917395552226640847145260365010912558250789790509566951013405871075474969962442284902040441367817557400698840392574226146039015851346694975373302504948340918273331522046061297122531170358631348849189804295212973815001843439134139548998859341102149919089670664060155048698574675247678027083599558000927520423379238749318316249512911554495674125482604451210740872957241057554966901976988559090970134651556093830211168939029847801128202121884300117492126964432394964423958544361658679175477117245374436913111326745606485765763213296975770585008651979947878846810518798371463777570587979531021820019214038391828273637311582333346713696180192326168194192152166480097462806799850480788248968069790969680880888814351100663669080818939182645790338073295279329910816969410024331826664795099483746850152272548246297117250650705491392637508319873292612767127725384846703606875151933468938344330115592797221094083187664263597193047091834606423329374879317238666946671406890478971198469264521708135093041509160727341325855226999371609130789276104585220784262273065888835126807281795321857231906676932162061614350051692068055805515063438035474648856103464631727486360094450127598590862851118658630293982539884744268604998540047021995225118463983764212878247827110950667236462643571850282143085128872651424697631389538846535920592303418694424170308877476781950575695455365462613165385006173255237219357346493150937237428249387982332496526964981553370696124950219506466963518161869591677715216746857576738602754941575024630108766100982769519464193360104942160435164445769525584430505402024217416316316695765808687088142247985894027411300511747143943138338485886799498701630418703232912853141122016852596429361680830023560226667979695718400687696983784022328372075413703711614006197100984328941351917812202067164130919672202595343098760682707592739742782281916846270440204714323673814093219989427516224425796217822815601158775939279607263854342880708436076407174378002661068585685593631545053358814542968492815482493403914145035542584488616113586358224080838296011703311836504838806332414030847583477976753781844998995673170708380513263359059149088827494386112249553639342555872075117562332469235725685808471226004986651855468942103769192315783265420872289468355554086475297080041303238482395264305412159757902619220184590347712896609004603729047609991313670521156615001854159940054061267151576687318225405053404548479758026241734667595407148779944546479060449150490686724015473690890783410663955881646335707052439768528108764262684516885638362416588258258785852920730335864671942237215613039561576141997216860163994613474577590704581714439210205855402837360073647397922640092440721316926016926930773657054513467098506340199493113709771079186721168052948095646859619277343120314271791388239014176317148200331645636188271122684809427391890613431859022660980374725157008379523780966969537792703610493936683452124147096575198206779747184655261975327615642488099370719039534532730361530876643694369567776503482555181173095643203292662111035453360445810703005305930057236958652103868489952211696663837891527138361907031037429101078534300721444768674682618844748222765008288324811377602180643691557902356529151649642746105128551468146153268242166226115920871910304149922268685087333363839651099840458085552025762971437160266916894870652432107817945512196181777206420556952236254273268976969103123478482103960369987529762748205394415094780918022249806423664482899761351260030763330293237710829003092510920264650806726315423638896388924770659462360701357358270720589521773737445957390102395039352783829089245833824347075683691682786230657828052706116987758977579363212596294012317037715013975899167634007198495655414340221178318691282876747758318485939782218581503587771095523053724013600139008489321148533031947405690722986248627564442507928105021349715858081269403999542873514691571322322023566662397224958693067209114360740096320843549274571129026247576500180257020069785950460430238916540366364109569568615110536277394111084689514594731794614800383800650271894302009419642736657840664828346905377919629306290434925761766574292323805238492595157725620586421007718574449301775629972115145662463564967933356560584537271165081565016143876103223555380766016166929246353081156034816198101741503365788562020882879084375825298009545009440840111596502091324099843385309649382186180884364376796164136840889477701136100353424290941252489896180630656664516255824286520022194215173997919193315741066979060597815981754196773288753885055105627053178912847356098073510050378692771216850745708099686167852480812579658461678656829368616326551222288683527557253817769703938098096680309121257429849563814672601780050111599224082008494384086847734208266354505291179672374312549465207954348989921018254936571250352090435265167359084689113450799596043002406399262923785282118111479683064691241052638505503322838829309715089374120033763604736252639458299264688256727701436238959856861933277636058446172397546055063404517874568014902929510617713014547982446034586158761203490317134574781500696359081461450156441781670091505218588642742300009197525661037774388174020868610840691615141058507306949531808734231903259163907983084218258070240477159096052915772559827105579121875707478724817082281288712329294672123713086704406912921060444013531221472588423260275407947007694016754726107120844476127692041942554255778568314699937604390228326889261447604574088724358671019683252761632921528617273268204946288965098108227230243674386463254983684161255843443195445700041802337842524473742757284666134736259340443258933990949720485856571539582561753384452868697229179058744514333364948115431980167859431402938020504615779616129823208100611926079415875493806342299634408721185919921525639600442264998132166436529726124205077508592730660255476959648721943946908364270428611030220665408294783054028965224515930667619280548910929700850666359749560217126580122883501228809422916150547918032678411582953218425317743773917974897795250899905019499377856916177287511315076480871979525378227223118340816585234329471704273508261520273213393136248069583331375132402381108049467567600449325860600942288963782107520450237114542613123716257563266451493598740066170843740959699983941149603160510422320038890083052262594625498993445387002341533650985693636033900790332136609532111609103765041634757783653954028924270643901474259566778540481171322730175926912493926748498886723585169492798039586306283679469095926023580146600349875663514043987078364726833001715509784293073521941015083800771129248470263431739723672333490531553357255873820578524912871683428219443907402909470728028016846422783959996091824707578776877535958684225012367937762208146163194764602006731394987360364992931815211844962041659490591313216169375004283818359618626028314100030147152354309267873796223522909194090832949827787103014638129082017459575837863429039177206073353868787401919046956016068868293294228896560662511864311904638549470560791922578963680160344172772704013180655264212864851575447104169014380939396824094142994926852548321765884275905041631753804442035179200865784542729951717163586907803821167239130770461380530536941383492148597915629527509831600622850747200240056409164815659416916790255492181209123678489863815943352738910427961324405485815290665791877736984889492489652356245752730396649546600708231265042596432255123858380218228953474338319926135013525699680936173278620262458579203328406257050988570481012225819903919290052912844999469750210566194778772813185981557542812716082296697319560936492359620517891441310154931117755700361315752141462692102848028208583266721450352117010725565346330023506581700172384824165811579365749299599633050507348922704348970166111753184868587315953370974737611981681054858878511094238151847832898903828338442968841642627306974672500423583064104208231784312675763396591792895929929470003040223784444302637899650115198550471329324042744181460766472105560450276289723772914144588549600315654482399040860159559238600472217916282127939559539254265114483796659052481570464932482812735512314311471940676395061851239859323003388555602332771521070328120915311797696847345848431583676138762845968247531055063579109132485167023939070933513117003788727136514323337863221276622933492891419118445384531493264834534614451112124229432083480419151569435512421260385359772789297241560041425483059046785771452319078611840272255763409323538778843570312086118946445181999227866403841610821624822135013685500027532877121828704868540608491317479077811376594632692221429197243430158647180034569056724004502478223201901980632715104230825142976819552953345195263809845782351388738653079672405692073594337588492975132889414001237750135080732137604198184897503999225932470372793652295278961754138123652699071708574421802823849984295377763484522284563858135079086613556502470970206934598935977493070559227170758344416090560756541477734784105676343665905944087304930768263437798952721367352910647580416601499633405555844669537260843204892853602032148747479888153436678151726199723575128353674257505938519806789704529459217394194537665129339548716375531826729614044037674541541818070062875408667782117403597709334096599296296561161442173231806065049787574369986507931321560886540225354395493087283326264949495466237831789346243593168040800331066168327700255945744456562471734148147057277720281319379037505512411211814944647469153915097741243816818146249179600833422488753573359771316689421408222258700784121800031435780767855181110886281419323229753239666959461846678638251651449243734815073369945528665575645310457334831916302935442723330129786446902057722088329241307424818480523213364273466041235960367841632151040549240465990189375039406823444154944181270197813344467950903863399535518350028413722773373985576437053326099908407702887018558515037819897472787535027094076803709715544809987053824990712689684225612663603890702280757616828101600404520104562848936749784251412175121487206022912851476163605763391986916549575618670168058987699995840129881413222667353412157627459341322923659708212390307835880141743578933839790047157154097986769923589703826804445936233973798897726358578908482486706131745971436444209711320625796086692872091852618774529451722815285140446393004728122199177900116924218739013989438543627421112275544841919497691415255484240089603451812041619490543022696695458749512413821251173743491126942035144436596083231237029913790042673961355275279534728249509861814286516175512306700051879061118602595045158890556455488862223822923793525563360691414599985252801955652156001481087121766783275106552643296696229972118497997475441278896082883369065147318181343720129486096834732699867912477695090844099356425797783888237957640982026206086570834187512422251849291822233432340374767993510071703580472597775265850495307322139423265285277890153864985349552256711028540926109685813375428601299758218592738566426591672841862389877311712480020613502071992222187799918066581740523643570801306321747569635542601813512098513678520879486033255182892862730699099693721555365989332346762566116113362058379421017605496415494639078127522382263954199347319548701468935257368751441596843415829382232317082853825701069220449906451559970222516515504317242854602579214956162270170797607437012603080334769306805828934217148135524584406862465945328271789589939014837938602858934712169309907040541599852693590379626244732166455673705119883525678761826902947756543389090320129397104409486470894130143375910720928902126118256241906772803418758220284927479261961086065617607148053813050146624775514056865332297997740280521436210033428162518103033356698453653280002056500450919222566078052873137510974594304230815588894144152064428071683912329195837815013471138915449481161707457125337298416981524992424519865526658990029716976742448464258493915772701636980483424854348348577992771593352232134559044277184619984928984885050633588232718667585068758944612603117555723242298674069850922527528478255795904799937465960929364657543580830175301001692631289471535369342615838931051217804021137283248215564646958479638839214286021098647012665853323573594546715478385932493709940687285317501766462151175173185712272312595088814881754691788332347414874562088700066360320950400158203050683047480023043255433463265949907388473602743190627355190494529604265336572192474405891269340767742842096636173698089693122444038498600295584887931176806624217442173940942440630502253325199884749642138144904242631224689182399710443561196133151786915654960335572907675284588507099781676542449100684027531876783450088937349229773441719936884071464695742145679344176664427333247659261835820718053577580021486938055217851695472110496108189120400713818323450121355180310998737913938665896487194294170376981549613718759098040728499690728449989191777870808037768312320865292262723777643158316056688638785013637119606193725687381986533640483854344945328296260765640352040273066211468619703888213262882724919615631079950040302894366285935452790795198866186675957179453742708971528319580527064534324329457713490681783644452373235569339801405356056398529649645403313068741133015187363279067651008480079533706927957454247829188161651106444147800204146255549138688144059965369358919149362871542614588706579528904032052013366399316337088973528488232401221039560713497674006444254079127636263841145028323970481322057348775161617399923192035866442919356462893327303584512036365990788297185171385754791660624641677144317830271528536019747774561789398970594655145439250177961774880575804810826267793645375186815710127029997641884148231230539136248213200963026037311975176284731813754172128928561265999388762514007197296708192808291684138715189084398552008149079301460597093291165476193449908731543565094437519164140830186282909781536713604453161328823229718288232086185383380149449535101535237701049164859980310122181755745489595404340757887603039829416450601250088732668725835849048667808633716637363825871694652269830091412291623153760858865979933425704317931270945202686130934311956043028614451408303385387262926046863289286816911289096204623247933644133483369268596998132463211495378011862562590636772220772017417012053266046138206960902088264592504508181461221022825363740461971407197193867843221362001662201672699786459214217447091251453031280112194708448047051631430167249637662715293079253081017975069577400033286339784889881608668327507877096839074560151292307768403824204858669995239256428506092032157920061092720577026840799975120108153363694166053748850107918672719248829093130916613080499172243573478183006966731933117249315377639569175883316066780720170128747366879606328899232070144185600274955741654403152220144582728870513320049806321781289096180454392121383265787693703097593724294397357177142945442611690231171186487641660819771911445620918385704005136620868289001610010349870214763442680679750872123603911009881013620785148894651163200770761214281878629975192170671487050083844269423756995957791008404530519870366042234825438001322201331267498064879570695840305355692581428549107541172267783432254158055874885281457602901587950974957718006644280829623033168591448934896214618432184771141391603208713457206690077053778123273455377745151611899812169201220729592988255414872632929989178462736294457960717154647311356545409199064813658667096773988273450377189669494645011258428518791692767969227243245081587961861485413761763324029352508812807604703639344232998899225846683897146412656498321960639971864077252891471939121840895514515751548292531302261394346479045401349408638059470282689430175531838604377596740033515496964356712254827503462344596003324934540713500186866438381806526559243533278341690933048320132026857403407146526921274770475372918474321348691501319487228871837552666926712145293947273278185052358013868177680793267379529175148454623283484890394297434206769099025058761154566545299226087051324448477449591758054087465110027499087068590288368625883536040672939648132508171036568957151377879926314501356283938340354249236418121011076307788563566691613364315621146480225590858253326347225821181300340664538890148927909592125369192192311664296467243949196014136797897402155834408532544778360552301370538757136792894380768575175473674756280095896503570024797576524960001740951439048260251903181684399674661467804934950348551932513056711105165515917575359286798942713245416267027460599862635048419626593261514424855715449271685520570834561639517446651603194547960761673622196280992754999440937230322515110065122592981924101180466699135831985900823577797052793230722110008561300503244602374330617943917159474323212370038208600134502971634555044477364328110384832522038730019856662839959590892201639984836055032154653121597254079870465704927989970700603348264531217609314861850732156536185084996085806195324086120189420763127311012089023644710306246379217472337096966788871468215554281947426431896832806628467127577510529382436951164686381723733474449737834063213982006868327783081462412049210390654571389792850368741477240819744762701798786511866351572611847111368635379322988968546027756207696049264625821510277423021545589954184208948353926789636521946747743015800280253831375858099515377440186716693793994788980462045791981307331012448918383914854066926237789624754947522651284362414315272308967223866270328256677234153407030805280608032963807646297577788241144288051366135804943482366356708870319735190971232627743238558499310744937962356263731418411486344896073226679766451272263322586819365990387829406901066875439975955390249307797161251285458273840249981784998693489006596580535000391900372820066543521874878002768362638647460952303318702424987196933012804035729443416045659926321341192486951833544258810541198154638996275930120212273872124558605886788397728089879167333759386424139098319960456446579277123387493721680642955059303927117088816079551675937954758370439750669665018899425232167708100663021290215530567412716490974471792457238002658110767402220232635696296484383942116110733872727447473495231378617590484946437405368044013242643075410157452971500734189882394572071904362873108659552049959876142058031526650614674074230075199413620212186473305159390251447071230040649589983400576244538251208139380068784230611620707350820173016397507254099179593145183429053372688587520260843311738757529977433681041553167455956621430636500219931378060720810229206419191977447418794646472043163789813473417032732420344658213050157373734398186920841689201313668538422310761546874191288136303540799103177022557056985748306527822095871504775947626770141264868656590394188082135613115216280077919817562532978396445499181621041347118041292002145995416736157586102647629600093129505600349182670625719127315714637086066505873578520081474991286764143817630245156880061132342011047489193503015103919575232354549770589978464811190397842295614226141758482321024413511304606022060584926135016038220179353341495775784178168967704228017999454735064825068747794315896903671667946872654890354232488452825301910076790894354682690409101447060494162061631975384106806376244347317046652122239314977362322609114872443637512330328306213007721357974515928673867789853500101812372429786185770529497420181317690174461198717863895873709893482125224899038634917798359819986303748598920045169511549353777045350937696229006953608390399923597332953473222734838841129566833964285830639808568408606273439801361802223846634502752601910201927868199380123515260173514792581490740710543981724717993404300151265205102863083693496365572944818079657211917296515224921255021384272122612461463970758459665977317516287743026199381353481637705229348855771506122947460479529140478430070337661176553125393772253199766711792273434114552014154586523342767354410204898921080780311162211216559998604960676346120854588519129227358115648364530932396032913773974512797123465109424930479471133096640208600834661249176128268892815268465586624835694526805789297446764829751981287888380655539685060170053365953704638146330346310175348695276582770711631440195756081099709948867680567199781331302542241102180194072926714569246910533401316617152319998734575621820629497437716303942940127886561167260975807026730057704369294769734199471318275875775588801355088011375558838306690486823416837954927462007882177087411517639448649440409838409025619096562703152250996059582365968632455862107208468775557503254170789361389878005846892300980310064256165085540468046202999501192380641506617998025323072020011255662051708486193730082510822672313509099384311346495164555194994796585899624932636905468743228409799719473302138005590580072659161145193332911238906213767321009808190230222595024252931697979285464428944904843635164490741899786105298539898964604514068965132835475362650403647369766886907210674810936839105389992665382843547103033229723424020272047115705377592744136829953916336032971939603177231929582833267664926606259086541554244965087131337419073924606853859944144716616582117991369750283574587563980380643034609651248987138415445015100803007562687372914428953005058761642729622030747682582603467177695606052260234265914389197719184780550437424677712320533425395452831733938341129059432221862431176673765736657773618238130391591149809599392671947218029276691611583660982203785292658656043947361092669963831699582859102843650365639085575454779362904950890238893189354715187668313001468194289465596726370585980399512061262925674053781850156513070208710533089696620086634024139893826046091378679569535247512063089427014440825677152682849681547429981430261391167356806749465838166654491553869115648716830368372859211819207639808199015744736584770559169953790869905411845846713695435903172361830189348028528649944036476470923263265281069158131005708684479205761685061724720404149020354844757693010585502776093034955399956545163072405633914357195668532211790773050923978454927598275128405918835043661919276577742732553320441096362933809973065513727587406320623496205400525009540551877450302947693634352659169575594059768912041462281106688102318898371963253770222310412840918980988106820231043700764674945492801382351216444032110822074068337207155223811182307125299653663416796592975817577286854561448024153354727031375887509347523374995889877681623500194337687961854460274271821087709362308856864103588985104890253502231269852553444734724949934000625125607737997833842072429912591131966199892419407377917380388731376642809061957340133660158346842896847863516256629813254012756414763205290960159250955091840783263081620728331810784862171689565778726804062664227860955053975667515281919418446029539146446919059011237739050951150302024806374280680316188596390599024024608451498261527532661282540145268060823345867936449363229729928487075628469145603414338584618895324304392673445168226272424103903166312161028261534906344088939875354581395832723797605538331985278704685767104046744686528981990173164549095175620349772422970674947755073415136830341963625505476884302226080112758899725238386471207238183841353123066178623569287818484431681360881189982974715643577618694648173206337112253835437133257866736468796484429596053733708123414154747535158102277192211462171653908481537899308801282097489734149970483587447106080880659611848187845888677536914150269893351781962124457962858129171929315146618072620911460193787133222543898439127007963246943856785278653237749593909346580494541790317169605982112547580123188058690828447608522794913319111363205215586286615458194709544371044091774869354713910878591295963243692099118836221933592567075734765517228032841107298179228846332801101314229578271577032799656717757070617520317506134493729719212037593087277556860682319695278950897152510347121157628956756759445728765037377214493337343166731039710925154424600574664955143896863709432295340140144209224820717171999852077097042842150305005840917468793072597575537500380636583869242638807724587457917875099420937452461074062772154480746062489855698520346253330877488729226851816572431080335781060949083291324687892523885868190305599306393718217857220212789808823135459172065116679823703052788694423815487023092007310189056032973929728180208138190574805469138641631628245190226141111176958278628908481141896970976877942095108151090950975795271578284491680085164730090925163271574314901501831017421253617180815845932916768125490151616681604928912115793579430294470940475750548290869441430136488055815618226747965385624427310683427720002552082023163058103351151284479055375092374206312341559516680544757999150479251697052870495026228695260910787380627711134329289729020419071833313377228692334148559990765137153843052296396706323350551282409948366444049294446967453206947673643262100616388786860585061630343727052720380539986765843031579427503550844329015696328995234277515875810093097850256772152993638892730881420574913420483157798016552006134338451059432026204225628524868606914077348657275327995916677380040444118825297445846077904466097717950218225511094782552393649653734467622658865662612685015936418342613968937369110135412331555116297525957001646723916962792730741536272712116425302226652932943945542487654335717855141600363570621426289660449457430967630492998376407985858206707192999097062931224669880048712264438963377803062423678598940443735116508470123481358892386140171082534841775035746327093164429646158778658431203351261823802510540047424373500712596196626989616107848988372185802972496758062856994955466158861621794512390768167208468950415750478676551406037830417644584860331856062082816702530402715142073911104921866141174431485260573677998612968106480717727979178717837256064300743008998292630082246198926613545023552588942821081143266791284682486545210587427793101857845721296218915356285154577224567147662051540063913285943183105819118418967908303337924236909403659943342297194163832896126091191486596163338800007958962414008184330079818781322127537364679415190150867477132855941979182674336793407067270065843729915877441868836983643997007153677715211152864097000548712317648703376064817882222581788979464754334756873077892423364431436690902705775005334540849459327063062402293193033325101992216774661936314555047859349364954857363830002440222724104413975529749785828698861861022416879381953872436551957382821409157675716516035605760777629305657984394921996115321695422237258769350084618254166783079843530383822454135782867037482868531511458841739463235189096313797623409072318536172369145715970499352290606106630027180849475893324620645286293598228048200289993739816356367244817267877963238456380442042262071653905536801696290952899364138673385656116972982796642071219447321924951712413156819827717039241570049141161040052543612231354529703205529109498515304889146676762276062197818707488250046086092078055373596068708103122288603283524525547872409576106896518404434333077566374756982783261321028092199541014888720523856692489141360653072744146701972956470159212487066239860189522039945067827688435278084722906193306347865838829597078286142221283460069148847740178784985485978935241584744942721095923988624386854407178917437567630097429289508596377978026094968790235664665509857190099812492620806098014541019449559873547245918594247955397346252040247447914952845491004802914457259872792223889550904493717378197476478589342583925965100527860737164521700211372122748837205682035255495899345418006000616469082900262567224793327697465257903440776716328955346927550013399497890048999151154243959680999596067114316633132599026603534121035574985911809324495130062379974208271692781026290468485318636806602007359503164924872222793501414963911856267041486719977657070487691951222941577780340410705374730149037349268029593738032123944214068605995943028079083573692886535353043766949140269940255980724948665275967904806895191737793071534880052516867857156457841618011694053446511289335869786490803951580186847780967551176232243619325643168206067248218844649443099258218086896513044307644449491251305766487653828760646824282529511406478550409219263963253638153892121867869734814193482955004265998080586031673916478386340514340099367073887977875503490726001496308961702063656568075096495857551302657544791721628621067107566941907210919078830623663960614393818211700325892260931900345336910357457321909700969147648605184239412429811379469507184442874309906610235618446418469472848341304525608024160427538948141992079319232427190569954866131496022318551722789220840878198277733535871660642227859712540292195519823698539708937911774297181481749013923401721523605051854958067393917030810996301737651776856402693653299749701621994714425628657361423724695383161035413445492938741584164038465339725146852502302359387413466702379681904172497017305115812505907270591172764835822855603867067367097859354043715771417727568813898687901191531880877835703263096612561048117463592099978159315913214581371305815276117953937699389759743715346673002311591704835331003792794775570563167364783138593101689245688197412535543221054738008295553566567557223046234900752461507446081064888986399329654865143479341861574071695841856304038379113519609015370362274600226061817735821908198726307518531101810897820784067048428720362500476470827634949765110284896592600296503154525362934905585308834931797244617596081100897525362566257028701102615427331227925754155389129338051815037667031201332378191558687120232234096001213394456679046039306089091484809169692560677547383896375767642657837954529650485548640430654307962855803873350148204992141828692867515209367463772678015050124350342104654273009945648888436653987531399024125143295927226508759980332116846565122701635521881345260289705260036849098487283897822241299448529653437366444551525279252063722906928101315900274238630336935459038101109774573478557914454811712012812362051564737388868675883777111413560745853771902101095190708998904251910074986156862648606794070851367624010898969034389986925547972818003084592734554281298974807948174857338778428061521434695889273135938490580815236973464108155183778560348072778873944750919933105620734566919002643187569358936776570161253590194266982975382269782851248807285711692129143613219490167983314977060820421074508954256144518910177155590536750042645180341093824817683815766744319532435455890998968391506261415301769587895158090628185491395067564897666440183611062975159895920261138130892118323920017720900728527326882894497510096728771367100631208864266906032998748117641053193986547282288176647100651517732026181687390767101877523629962973662017581671758624711957925686595392236907838447297681765754153877570507358674052622630952079464875125321029654212357784445291345847982672881877527117222577263764287367670962869539763488456886638036523366685106020138983327370866726567227014252023109027913859064319011159626873572767289134507955820644882306044261173851233652514356400890343582828510635984752100862187300520917022561387824764109103877733640848604696573234467848767784512032112630738566246002330333517638799846143229847470982763004691968824068065780540220424044773301395227271146399174041887500363917897538568150949652260672450044105130755374813642661649071189332972544024394599943559429634160282363743103370705246795778680396867402409059989834628888459024061722526311796093494553513847609960704434245344332955063100570305702071122799329832703851962843643612524884424015315812376804216202533565971698716338554019430759620777821937384269976280528009738156495117688515724467907918854046840716620415527848439578671888744915654845892313259588135311312227897287646795637313919155901315828695927288642731746039069642733095178921398893039583603044479416105544561760887352894889182487598387987756940969288093045607660693095574311803181676254154296373758045817628826833751447901818252197669326218758625240564768432765426166297922859094112875139494213194908008586614976987931519324039483703711695863896838031999969946974153545638708722596475948153908499467054249257591144248937927057131306146358625362177074570755246464602807401124274602421688062922430680456883494769930092339232777820564460041702722605480233293654856613284359690842750471178841351364890896348874364943043664734820769750027370950756936166986123767271505095513596766358032351263719779239148928758621913285350792486351236181885873151346418880619702739898043425849112422522997493718514537593050373151290821464997994873216735706872241714729366783999208536685656379780320173632303699511153287141304229902496986993831420366411450078140075845942661915911095300949148565073305643295277843169581233811294577869323171254563346472852378334722438810061373838069477416609716761906622342496009702282676221491871220831147183694349760338734330961918225836098192447507653383662154015177226780846763985136008814868679669534416184882866743594124636527446115788788512899063123810369285138984594724254282325111204609121346452630882233896294140123179319439475389205292588587574630552158408048856280717392490892227303952767914855883646177010844157040799267528498924739958121685912064771707299459741105494209092315203353670907659401147970529738902895804301999217611625621252570351455362727746891540499279405974404533268380396585142408937876034377271397715078927610099949375052705118189863641092623495237580947641601266868700866299804469603119516479733165763266083491667322155926234088986743073982562172218501378598466266442622867638047225367165821822915075513631648079724465956268373850493335102174700310052483823409572511602798195135585216251930371368850403350611736733993075249263032901067270624888690996193424163217315564108177893982729182091567500126844353610488344685314786549937342178378126509502018415061616252959130711485326428733268787258723189933819226959553778093555839072644388365284301179355312122761073595737974041895608237185457029513276987570459865147590398997396543851367543187211567557879419303940615803266873920450670274451647024365709804466028618441786552689566634326392080492112983516078669576212594437175555811037980723315938842383034664038927710360076076959455957662898402823442127933642063475687851107248430121904306722452690884556860389418070986028708889482146819497865560958014015039381427022481778824730872177501688490286028263475684184744533568574760136172926091044503409269088842380271405100701260351719013819701641736309404145390446281630602709887831255224258915297520159120743714266138248093412289391249558696583595325484606683668127001400556877660348115669917402250036927937663251228703347580805206265783176100443588808576200059690297099218451978717388604108397892417273317529727212068100320341612134844007356226714257765510523946831813111323101344908798475304179907223804862825428116461759346040114868458628913626461113747088392145729902346543638416236860848612960878910697683882912994734508143035639765134282901881684949988788324103526725134355772556335906270426135185615810175670462178025386305290357223471606913834236426057690696860942759245505449292748918569207034862118146632248385592173912536925031737980076053975244347930865106235807188953505660484385060254041298079282384956678670659642947796598558619934754058733061152620354618169947852604673418559678538060600120371199207187464395642145270759117113138698422199911484129571284756724860125266136125000349387990407649881358882568224523141529114408778010742214316704272663074219919001872363170189552481103716573162376279841895336734854248954113434502052787183995282657120323111241549690477255847655927821487543905202670580164911052632444779634185473564097860602662161535866044233444401365753346697330126681027032913081829420807648607681490697623959477927863893544537284891561517389316863709601330103766767116065382394848151404922874099286669242503064807716077862322176735686357387825859081744392545063312156795700177347017125561466478260460311887854601053865556362142753460762240813597973396536863773096510501865542254984330224252917966484597679268058235387556026035813796215314381038364097183764190712816182611472396924600659393230705905721692481302450638954791055874099209259186497132029972063799589983132756287078742871528050608934379711722256972015739645319227502220077197204167090738106324900762715550856672427205178792067758001354253697286627224042140103324817870610966810962906029465044926527646437622154174037439562834592062909363331228212158142178380715021153903171378491374660213396563395254005695019730832718575865717029948129504032065920464827483513036169832577395266352334140913573309737508650702999890979563195186831993859533931238763301345971294336293466713192989013605436638631739148605560589999227839328633140933690089534260488356181528382870307299121139906179352276681108164516033455549723317793343710609063910229213106784929997340756233104510105839475767564990533591216475368426949693693327843545522594140326147839617438604559341463679838335901376829621681352187440099863827805523686116165681209601075803758213532811461636937256295901494675168117325798071334127954222205450438244823305174824863266345245991433898009136381493698225013345036809681007929149946565412521658520850724041585525871922855809124604093404034940463213608637422007562157484015357575782437147998792734968031086067612795551195367018754513451920479850714421850415406649968938442628934012530613398648758622155246590297552404844939519289101014684500469366783794506899687503830109484872654543639571129208574479718577121517838743764657146354296402034170156765610206117438865037391869224204049942199703507125195205334566342814743006187729576178427070854979239367895144996923280785607011069363019160487459114727344099590257036811153848168729693294360425574328786768635508708872923402043202862659895304515881497636406839715286336615138806252177853311057212463978211578979796595781731849021485949965569047556378471149672619011367695750130854449489254535965536679831572826937348654309070696334542509465991948860686043385248185358088696603713983711429184823997326125271691703234549435539635579484832598610093536950232372427459632743238693460911029519398373245840908676869836985682755035806682227131571116710061692375974341789903885232359503145458849586741451198276768806252113465573404204199942989546893984329395477243808935731394220932403780169667310748070107595572300643167846452536620967118627038329662569251762737428724311502726080586196312734792192370609275297899540243287670413242116496517004356397414148409994004230413327042285990542971807796330059788189893503028930253746046522291724181250675816037932605328012681346680392458629229391966857716543183813882135828703319806598818356512941377277125030119982683749088871063766658418176792369035285123870561014718024537513669598401204795065541604690957750182073602883416244768302828885691509833613223166984618606883290515399511090976350967394617805196911428460716520580897914786846528227945496921198609684117826203173052700332609511470905292048873329523343188690476039888432218983352591279581794062764650744902700829368964845023695649921363685307168726481915762013416524135015355303902549979560754109408084300971220485422103653117582523852587082435947446758687287267724280856845510622399107748124835407553972884229927912730823305780217804032548287560730851833588731121065883901739493669070970218057936008344893705105342133930836733413203579269033439217877613885329247591393590781000501231530086173451221826917426165236759051857019701474478452907632475324140134319075601678660069426911569559978179964926587948931815617500205100135881287062991709936068309594261769640394377165393367580356307793939574927037404799090451824503620481789923733057453563733679681004222096097578903597923930344845042040455400679125976745704209742915511406843570772965526772916139542964316138450727206368187979166570632931235478885519276928476370316326584350087387747622194100497770721862440378655217336570446914581197632586004336919247402196774232204457847170873510895814964223698968399779251807861824505610214890078135911130553973173271528937981343999784747128391429305692234978940663359279683152824552115400272333528080312120159911549587804922585588431371433673390400000984653603372040662995652206030204918723586407939760929463697359878595685322121881558308206597376284755235478140367070581416600284453793644822479398331811430011461506147744818276901814015102988496205728295413438494260943799163559730336864030355599653139909821228903862823400039375574866237142712743923865117093224543455976125467452860221004214056973183994664279399826955723117431756779467254702427018781102799898414138286432052773658358571620360107026578133359282205583263588789674750131487270930967545761289863224810264762533074505821278027582481797689996631196122682468796874729788095861733456517770749664116535665128224465070950137291841450728509638930021613900689800133713330658530706390973722571130226225548524144960969382551267440639728522893119679302890127800426472557174848814336514707744958141553174585251023923608817850183423922916079409332141553470680562524538069463154407009191066690695707566773743767860311309138549552723262373575403642521378660281873399852308230406764939936270628836068516423991935547817882337591000009633321772185236873214949655760267696093503962732136592890294416984375320631591889028968669744061121318798056545097067793687176317058969738335853810760679107796334092853138084892687535096989062938994987425475350023681617333971029796817925849216345858441394708155931459162991314078697805503591002688263058171981894446168826218058365527520091208585297619758885004797887843924733273947464649077791605561864566062073774561948137983104299390627743329912711065799825189129230097389849853464891982185973249859578766566950147032098044446046237293693563411435725829303356810310278308771581807198626995495311180367336049234268919180435106667535726719667350674671344420940695332704778373674874069007093403671528278121674619326492858287126280502354895565853495634976892026313414951007254879552188410183087447455172860677977802569587804448140212542385806173541405808246243629088728748205561424325601812331562853650729462821992485037107128135993574558739814636360454996788468429203002504031217690764664859384013396084360575417457780858828782754321495985927901619107696049460760438140258095033934888573201521581624786307009953028561376332521716464818550546873868009156484797578224230702745547116204615567875044592437239087007887030794390324022776020489272299270850562142046775680712195005008826940658953518680923083031888888916255078102561249194492985530650482432559262541480646211096500753905742786234067931128206640403701546375162872262028357160395256814551590297097016241467674606128582651082283170484531522122296396800416511255990684499217766600841018420800734487206630847587923404258052379833212229085517977368108911037896882745253430799582368930635739324033690870654170244197821665467708175816479721277982031101469324012587525225157396090251105927578166384989655205617111821602556560886188876971305469497121768752785716051847732105626683094254130825152849654134151838177734041007071163963102236773062827488771681574861460360012600001564255109833547007133268062638813145310123133677008928224795327452945180970414770170925556527882071378913401607341259558565070780235930129134321866915281528490322460496235375917906555896832379851627893554490269251377403034539794903254946435820857809582653610714492338681093749954632334091000744485048516862723453700046583075551232578772482089590494958360377022092010601764575871309684938006943277423489214684942731653888151898096895404961418287104020422370222047022560966568469594248099630876560610290422906908335090231652137334146373925372412190756167696488833077404536000968464834374070642604791907850049487023885051749465906115070990137081583427651744124128133101728602825921023184973811844486304322250262516656524232198617055007745822497902400369243406405721371647719736417913565992190651511554420398132475316503309742703906103446385003536759798338983557237688402907183206803799737198436128097688902729256833907499945647772589075226707677970728506624933569668362370643962863137426099762844874603318808593584862892506589803197045871492414323941114575251482495129317499000305059978713430446833967749101237052054794642006449568702965265864225806831261867442863586689346779777877388830206926189154895069068865448394187281063073496544525230079388137868121602418647443525554661697673270181923080144954444156978150893656296163000132190206945562340810887645573488133321463321506098117024962537542632980326718906596302504302805557803375029179437062213300448621634349857606538049756010346685522627010694025727573874365221166835290256637535769755400713961404816451905027894285271797987322980232041674135817295111781230297058210316425903538685825377939470307042616284859927941121917017707292621141284157576119886741667925950290394562144414088201315333369726569213043475140404410410567247292467497291373219710592190365516387074576575943718522707761533958979675448367802778984255936086661528167323222737342625373913081557194318140071469024636378587645437127579881845272692983094808184299061916097604083569437600562635637656095765486257752209196224253162166581098491982459877860777272521533106917956271577154637794684545440355898911484373927577061922577009807915033455570354661683659281250948804747279510000924191200716063129223336375172959588175468950506771341918610313548232134000021765907882780203587828710389451400060064962727943547045407647122958976344512947504981521000076287954474605037166255494553675209249156516025392718754445810046289230587339932738205123318883366874952352406666756656002959088630384308777233543720207902078583343797025635944528527325901724428390739877468518331798647159810680430358122144987802656548076846449264612302236501574124853186098959718873935131603281821668171986000883798337625000867986330997867995612894842956216839642583488126975820772146934918507194352780204326158230843835213099933716296014437667326404816593546771107256216902327997135007279026568217327878730379085513662353359960171631755617325653926041323427172854066714313746598808025047819240129446692084680496278569441205942186181537205946679555485989600971016887739925800650957496407664063737223845501112919806054848413059214988945016194067460485674871109614410871604148553402367850503511652023101233077298763873980070716137764035266247266731853627311564958759957261709698902754885986064965073691319105918350356316984430765498252480188770143028181773258188406995609778961091485106008513147218618050082538795113066489111103819050264819936390075731580854971360017680974424911568611114724963781452272170232903959114127036042421182751276507104346490102311241809144715153717788771633100523908983397685897328349294900292701459845531577715672873237068484511568336379795180164467357907495704435362809398131639481365863714892470304294536969997653383094046251740761082778722365328194424853581765070562507146598463746005264327450751536612267429744942023665663128578446691278570865255651589737061661881970762749791685567668936654795322039132570479199809983772940656899021810438204779211796255647373810244011945903621365364504612557789591425286780954149213545713415703307887746113058485623703937266385352959764958521344304475232290120925517688366350535240782388557870948393539239515797803108534074664210999898733482407003354134255708181312246486802518764979011547061317739297707953903030987446882129782359594179703854596061577807302859561287620686332980248202991373324231769115685019763457130901484107817278389856306315190298705601382300984883111386705763712285241065350703285942411347514989606960337689064069708034873280891931276863655841757599355118988540135194403876190154950382773078594714761891166698413998606488895488279019078968944989037986779771486633443348942172123140307587665703285009853253104097775731129285209393892929124124363376238783269487151899657213911487012076744020657397290561971112515002931189094345530904817155965324369735186552516116712266881297165441026003323762772058034662936992433476497790470644199952424174129766936540347958127429017283677249390285558280638603167867093502800561458928620528837815510063108164177591318380061223121476079355976287562260327986330299963860845710394360528192503417449561303427907064794339272419008366940125996891848557747651318116763288123092979880242803144187536933195023084582346606823946120776243238731815570042801660217882088852466409242415394802773560192820331008584325100431654720936714335053160526855833119082374944463210520792722702434543675447995336728059213217551785979232480610265323690727259121059981831568900883577963125942861926428448427862770667369776850919190983013730029163271916635680687355083377766250768388979372110835497914222058222685098679312556891017855944667239249513471189973947375549246917379586589014136966731892640140436138413975805913056573212619297264697264517198258617330289835003896899242362194729646563883635022193900549069992805527150210767241182741206819542920608848771533773122866272721828578062943996950975158197526296291173912678484698414572129236738560537556688124619661910467358718613451579478213339411094651858354502391253947663690167640464970924994616386301999340016353829242438118066067446396303668300529856285936576989255584032789453233565981949674754360052491970688419848777243408568499908849445614860535120837314664178579966302212342234918585622646023353311519084117864334064769445041769926629242333789204746336020236414766713267957864218993746397689313711937230673928856967913830756870087129098619956440591001397940431061135133374600016638617710388541693954599137622777711169150669221659046044944570156763910576691984150084302916034870145486049332843041798366489807773471327466180133329327855037003390218192560471757316195299976506972358827944256384916805059245599820428836360211770102475110877449131326899550986013969893816135488515470485752846421230036504440475516401695839262998520015552151080550642731263466848533498919461562454931572340847445791896614297451170103306680943963829537961848991278147049128663077584874039460318514865262276821893314238756046543578275915742275831131466476190928736858877420112895526962916920456930266706326820612764042490530508914170650923074786079818278747318187930404180452135388619531293631488477017534420831252493834376637431679954221008111620625861790666440541295460016150166547586181656775670783982038237856331788313045162358305849301536191094508858225152765914042671856106388724895778567749941605326760766972700753672796908055540359695336616395772227050877410162592833016677473359569598547347655525240826756393096120323306614186654016655292872738567235121038861687166077769442611484883950248802648782500410647614492954866718590317535671552877247030140668672245312412708043968163877790836541078550366234634571536215537715449706264979707685540203515384949929103254890210232894555678549456400220025111926988728227489186015668400290101984427230137031721574326157559736687814389405512946388151068913356204436676609787619180967170295671824090052076592729249062364070414076314124144546319102675282388550842215807066483372123235297275380721151288943911677856129966313473078486847504675633829484544882723019349310133078205507928490758864866209490534859852952468785177054909422311007410838406694060017619854750868502148377422767999838451658112162750402345964437975984468079686616215289153293715833657230424157736460198706230056328868123332849861326354959610873240041261520691261032641580021111715788267267340134086180874904224087797087713846979864328350152887227866376524480345164011958275561900278408652159051063551060880145970192509549577615479389475161900382354516266788870450530716771216943222616146427377843592101145018896671694012949009639473671909919836065437258139267846333588590196609481639952343262988244185357634953337250834750932554218705556985746097806730442060316474142431722785660287331139016114007292349422403646199706132313764080758143228054175939846488753908441352968839190639927739547299509943670236631417831145080024552048927768477002851395202591554311220560144350720659655613656124796941491869699189547275779034835183156444138981194238973546480164882863736966182200243250417243788410282393863383362571809618681138394496326998546805152026344611542463666524927288157043248905360425421663553437180784988122557575017443942902590449586455179939500243306551148377855239983760478838468418094270583385932223825559708307711503692196230590718517723574157340916203776519592459480479059970925951462564026024082397767616798456741652764843616555301822705927381922134230505208243650846398820360110120618092251939250411781387517334123576232357321352581079174576779762324485320730284061972583310237634240943440694356021004954660114636822488835157162247432691796660244887555947136456875237473040334305805499099810054502215500844955439288524551645235153974432977218973871620531898824086041975782535411852217095792577739601421246110911382199271373382558653708296819354742241843333945502882073754318866153053129625551379683030544615882129017193438248257895026387347188917027824108188191944871860981529332319706485491952815271421625892867220103185509350680413825117799593237014225777418150917957872693937724188303467777913059108713050298841318124655889729339695006883902522141689273445199738374828947070659539099830346053866749300383854002479822470232033360504539538650090747235410209129600511985163225721688068233828950492270712043841563912641414871447204089935610033643853516853080071448378033525754229188095809280659330315432131996341930034461043017088217189632998155064766155413543878354799794286368442761428016587809383549279397665321643312180565190143497043722597383841281962428623949681591202386027439983889029269092907353661463590538193199812561852911564935508179551407707927725052449050558498410163664869419833679326631141359262537749283988974184830096700333071094467899099390233353662688190693309920425969815793978406891180874153036813531281518422929147418078334746052028282059608272237807986939467695712211620946021751509372277028665203945514571960395385281325347880952823373777175701702446240894156416354046863300010046307287469403361387153914177177793838722954257072456393037731329394964547089099848938862891061348622842557271405107709735869123657893363272031964895803909084724042360174150388586682789527962066550067447757008423615386242439400741920226655952532199842879272241994994442842737134430036245312223874050366396143532716278338578372990932625351398479800040634001229883770960632581339356635697708005063629325688788621832361347591620711721007204994531601516179407741424079928192413596174841146960969179967045552863109579579384300238255517159122239581389101460411627937041378555502200260388549895484403192707126881529076283674240992906154877075741503652853922071568479517580381485264426696064065512599353622611557750431661888042930374308477472939204138577032349273074032868500054877469806250848178178077840130405823914450718135579767733548988839906151986968901306064474674353460129097504405928976985742391833455706426148609716859389728708895394122392705542731323000226937121504278066232966560937989071462091456302847592187458370083286343882298277907089074334940367440134220760118568001128467312383123799793573009789041687748711593523289928692134274438272645299531022308742234659952406771946879370305952754454915073086420430529832134023367437355783690999786302261976949600428519196496145369098336722333109008098237804982452823893045893199864496546134646604147844460709911437053113302960960302246472049443552387914175987613202498437272260139515629615668414381264993356862273454921982382831149191324705776718349247184002092533084916579130624127204188806640569690512314882985251512525618352743924306749303291269957830380600619140643162228314415798418216572367670440154330340321238251958787886585597745569326730595401097223169000100349394483677288956831947558214728775995314619599316651017177196254960257188586603369209678116899625918507102554979390569904988918078927403939814977023177069772275774549809558019705477881561967152778079180263205177211612919058367854845397580743581653861413480661339586592539416623711986185520581949391525165859876401617656749273765310047949657144141452073611713424056675973757692110942434190722665407176223481051579748890630450166840558241239001876196509318731630964023582638991866006271406818602388361743046176090359054018108682995079086923632518840840109625908292364520655135387632505998480643904926471432815880851462324667131542314669427549321064629596064268467270181615583152599702076557351354201383199004185851027680121413350823413930610051485438139754587001228146127860414474578041187254176363675928434852970459894916307929613155245081726078156673169469904741960085935104629687554408401195936576734057968042109338452368887913049022877579164505775470881374829627182880069014262318159118700506411348358718665998426601428917326064085410431654850203792282269209026691382414645636458853096922078793997111858658679204876783680101108837929117444763787555207438966846833899227490182483580197487709333223727306758409539045173081375378756309048971179672580602234676916863322793346933413295894962684633231438023349556581444949307417860573163368048826355484022626042010411705273186323869542696975604308589464135936203268377207712578130111464531785382938737352248913514254750611414425451896409364829634163183941953151889859799440136067297883845386961187166379964818482950260427474150939434146650008263840816513339892994357485581111659973580394037108230937658569439461842178419564126558329996732624135125310768352429078265824612064771229426064255352063106336658973330083042127554386450488658655053292332509945632640335233090889239866746730145637558738403709691160744510700100115998585883269121239675975334886463035336109369378460908869949094651522222693895405086522063465046240610673654319632236222952402458058675554371636025501253875973572947693186767288907700963804999932779969281427634264529206230374401718833322499079983397536192271241275036814761710566504431036292802585111904720524444692798240931988537014758121204145300335444860720694937740019495054953336346747187901883677457525505058875694001870911835137289273031425420967544550277030513435914900610902254138186442116544734572031950467808898947880228815216543242907693031153189840759412441897500806543077637352971132350054714321694462030537204101137624569256701146010427982952966311892563412807875684823425838318663463074939345486092816882370908426006861284074130183081590567998489954573298964327478976017952889947540908064860215782567102123749772229076057181426122946155823415924585753166171486584983167356189103439747417137022041139421494076970278843499829785500165056207086048207921819562133061430301895107242574484418714633762584182550270134804175177870022780262768374597944835507613549785608620176863258681336890306111051829472064172105376973338618101523370255592964630084981411489572302093634257851787208832896192192980025105474727610790555639715567965334462270258097925647074289689005796954534540565545618392439661538833555281869557856271534433853556304023673353690506109039851014196046199918418648924038880888215757570856989332676430911444700799591895150373717838937968593062356076516056441393527599900328175787746897164044802322734755248104524009333020328337807267202322208990448305203750852031096417522391772982206725860185696973288720359439509906463015506781983408994741912521763631229196577932951165202417520411137639858027084763057223046089877484712770809900383840101145782574198669238412949845409762348197283100820579927969867486519369780640202037671284963399872113945831556768038753582710745448201199969785962427480764208960520425348580071209190752582772718420311333776583883580030035132847422771981143975694120908553090340897169072126627388717040854645839096102747918127299181646643029604996950604787381669950824024353208757148570526876155389360634763440679778594190212799276192739632505257400659677913548568029621021909740527263206593386770287760526316409416408584196083251424445751070552614168611709308500585064235034511612673826492984989209330830399119084500777282102344677758300338793468534735471887891426264932394598125291230094080929893433446643119861563554930308706733281791730869410367063238547059269754189528943022558731197868833595633520362922278091469441971464650092343271553496636932437339643075708580885814425933752130414792309061947035144389879721692669280807600634256649402814025489784246735670604764634747139120799392393368950262284919479641090515788979929315192953413855462898629215596732464812061021232161014434387190834519353916089330390838431787776709131166267336099039287589640870283340992682812696762439574039050833149470779507090766767567866507098841728476993303258342251787765694951978298138904904256001826603497651331782295952280161462388806255473748647834960048825645070947637180953110982454734321582831537231448076740671954830173399834552520999254959797744918984808234805882262157841692809641755125903106743032075780341518688244931488550544255975883765079445796697162162400515705006202955326613065018153884936239434181008605334672680949716628331693058646478858975317733262309607503393337637936051068417308378243821867647734472240886528112400894793323551716393013425017517019677910315603554911056177564650115308739643566729550963167661353273894422816762160066598626304067258440771492492297881102093899010406678750327716334611479408005172452563228277655316107903869844343441363770482282666309219305798343726884462754874157858353631940801456928336273502564359611533612808492897200316655299824343194684846899534692282985723538724718134096243567695838789606800315550359020917782899301958283978604716481128981120144988858995929893724122543803704089601100402319490519504533193243335538440921334532482304095275894687996637442407891544326030835216344743351649220678088019408333240897771780825242916688591378339448349984581484257279218462141866019184922288037121452979863773453496005706158044933881652948517729248115254576458385801238775410996576586485032121770143940850361488851892523993540901262225320973356109818346843075918020030680405175940830990840208576195964875715786339156859040414871624980132478561670507499376747383671006216516652187224229473969694515546941317193480383224182491276386862147435245429694744480493706179728816918883574651712462400796979640144980418322754074239557225962056805499345743247662563096131295675177843571977395211299499305820922037099921486036937018808469354377655220556078328595058813880186078160450334234057237726440543268801951359779744322140736093411263949997677586638444751056244670021786319517115656081789667094295708999169167144283668494952474217252546311670608814328145949519021696076833995425737177982000640346412439280064630250844302838135078681919951950116722317986844977448591658280364202652611333155295375633161726372527605206411542959580081363757459813125918415084963595554978927836722584890660660613824274248605479748330131598596495052342839936923744597828081002971322325806248021042406916381094229067960022362979461767766066532793767724077751618455194689096792192667022005310080155292712302221638193767447707412730622699084685438879862366026189894463377653357788064386663875970765467701383490282764693482771139378261401300636011413956143130689261767862783288840344384731408468754183450859202438192216998559436333253692120822443714373363620910345455575216224483889624874484238132369132346598157999017143289375053450405030821505790554684328987472133179744127204891572993073780453785698705628541030522291940395597025699029914498018670877244886705172894975648334673933130716628782504757667982253505776721272429920520890448083975091771036192937448405258814309212143973159063210386535538338474797668013684047976150957719993826988763955455631961330552859179968573445452670089987189742636579790037025241839235599076010477555270798432543071021441032026111421501628878754081594655866076085582407067725865464927899972667768690987571770765971379071429471883790504502963239748495150906396818856476848807121837802638023461663759083093735209402948708369045187802039937108440644787425902060806491675781544792452833638673686379208979352809807630804159366394782514815822627303890898472661954572469919843800897351902143591546285947193843930275915523596901024705362826765363194148011422305219873329961355567008985638874519940970082588355865397692882424799448327947661479924319453287852708517177134428844533261960201552482963884438568419849856609995638519315457061116594567685931590760018133526143947642763111827107499863833868482384737190896430925214659027258605148300774663173494240463384195456288160018091804563509488201540297682642726961733792455232172275772322400816066692049697610179987568363209311158265882151979261301523468357330796052907598560728911174125188335829209954927032474333750991971013108361138448488731118935424073785505877639132560390885938831652680319998124750950478668396307960027922933601189612168115071540651065974528282745259680911225549866120664809642144203726349963756594722940323235877061710316324381306529074198684111189366641184115051761542869648160716477743900047808243075728159649197834421892829143556418824420568684738302416804391497468669165589115065395824228519159302712449384309089805764941094365552041743131642816879702786593563899929914812366071568303407196904319004588753483155401553925828273787581078482512496580575600677085245989790883387769396776077700605044013867504906860003659180074087296061907217703943406577686741141992265640220956433445732802494586708116644450902042654388744492950817763671201039394051008109243363387660254419553883608081347090442211356621056168525026088762088001226729143034810402494050058215360346072825429316241271052717841614156540903515749251231833275717629405201408945738773573736840529997565216698303571069888368433029220130327533350249859888883083757073754252572889171215997538751581753713138564283440927596442262255769713333471519186237004597487937951286459603770326288492369171318389825744545220540943792052788018839727270432080285318596701572061316277677854170486080009262591785176033593518067885427071510553229451115045986184788995658468416230136465454176479866935908242871375996318204600207952892021420997980774087789823489655098876413445414828640643372880940263938566752525731416083259387524648040675327687099269780202107882298458713016516183295216241951501488779734820615826610430514444642099888028705104349871798303774446687067714885374641760284255320124315267861290048782664361333462838291716815596882282266184594991387680705486621781871949273358243439783807081766277400396127722016326563185525536802186317098594404456127334990401149246318403757013267109743316529896140424794971749924901136652522893744153140661840805766050177169187117800007293045002055820633054281906546136877722501985259914328981884515608556532258942882155707280624496734954839917396983981787162626383527722141710266042522272674210700443373391142870159705894283966951323754051066746755616450261658436718250281369248021295515536962436001759405206175403736207238801130509187152902627311845776359574066553188093282364624171819998172282274305681616864504737314661892723712882769353831237267882893659390379405866610664843162131870706440608124473536636388414069669625591353326865726296382314905107519577419557013206214826833430555639197100787774965381082880196504787229966043715471721702662128788344664404448028227805314259973130109231226037520773629182287089093381070119181478539470171613673570168478676410235668151842396459292276800693376618469502805939007570457620719426645172134819888356549034648353100778531039413238928820500188991464215666562574877850004770014594343850064519538434230840672328783615229847419156462650698938808996978178372730982103010177598150872474359747800673379554457684016885952778443700894338355762224941419214010969299106421051981160467958179806427517348625505450040119491402940358212880546154410741541108446712991364529172208320146887844528880829132195916851098963170179680366253437614641397142503558084611162179076334033918619702382786715636508249117419202525501369476707403994361117486187713656121349066671790164112967678210366018295181146948737267909958938350370742917060208883899868884441422147118792717398105611380556730281033467731914586511916700291814949158607685573967568073999648710601265895666879278683403683948238222769263479229356496859099087829650697489390936786864476450810778983573687014229353316753783097140970913442200068866692274570422523191857003103974960017305092636046310325380825559832138824840581559783074164778689806040701196888472254835434556927292640792324298770850342026496743648111901545136315482561002771831280595456938669002143472097195884967436535693305222738234686724697405769766927535252746373607908247579936022599672089843834026745003962379160705771259650090360589268179825017996386388619230069235762483826169717668867239814264419919885441580052893677786360859437220395729955852135212019956117232862956709617756923574315399342818672019950401435201565884126258838712013986834658191221869465078314294676890197362370684768469358958508598225392091271234489527062552513078481197993536832583997709447529981912443808349528100594617454286581106560304888043261784091325997669037180469355736152095753075457198933566523058798935989255733816415192697608375552612286859019168970294251986698399753336215652136365215865103958996532986231002346638019488765672577542289375194997855101685533667201232848346967382796450785292828252536782707756228221344603257420423079872976978563426174402269537835243978530201714964166142102980383078704440716685496912392520589454104478960656206155161575785585694222403770550756941939556471820384115780160838498036677549449787888629259279380035009781418303450688800988609681395915774012136066086878235106723421447412261571056669164275485495573420675189745625242414383689206347613487597145326949552937484562611611569372487692061881085913690474527442093776167584322555819414612722731372984700781676766835358094614865902899302040631901139481658239322613479423401006794909035230400245162873208564666418658868890965783833811359596647426503541173109918339511452560915907575963440051659475880312441108198248562944462606231938439720196648765857997180993995366403320624243931743220095072304364843753877150191221560400571814686325902591713619883484854158596688600598764157543173000878191544010285063634542496497801736784504789822377296055812421321418129200149403225041353596489666128964463887856614711960965670453210414725640881476300467463208791017894770490101188155333704857204110325723417989060724512443643056775621869880938698020937713134279460556488401985032011760291584715352659757215857215918997919683010901825271429198788950301916279357864493065561525530572947093843360866312218860506475516290673928233629699741555861447638788439525226133988717237695049780614893271550111453138875254012826494377749768238981534288909518597586814374465045143903956854720511807100529802813590912139620988587464088324201999393552479267494235467295904390503988287568567933054431147876087312979253520172001756185774372970273441479644399358203061970224136044096459082652011537610928307288113403031269870494930904159161630141675704559816667262406242116248033108287127044292719509605555339194128397962415699418997346434093287477001653088334415014490870739199546811320916881757415255656931528380516778489694569636043926804163355606846777370004224412538931201552238060295004270007422743569077613187699898792141463764334082528324065048350074824404938711992865553003421169794617244301232479616177835271862830512971046764442676425530464831356314395790092894797001930369903404447616102191029889111765314586804777187580399679816589739775947892373122951721542554973057650481025360638231531337415624827497407976945497014040019474495216797647366384470447313874008900469133660546260076285354571292175965359440039992180805243797742545460599030083018794087050089588306025414301388298885462185860413471848835198979840096050248416493874016145161669150350277216800337406221392666616656305325627423674698266293687366053203131115339723024377425382444733638783242395942191708890403936586473456716368372973514913953652676387656836162380836146881051516993768319585549725585280299914976143058255847120278988937909904401127119456166431569105893973677649702891755832458422043899665641923676738063051463864817523161958677582493129014033811937004294657685602246633948530772865365314737031018727495918052778998065715307819162043576045585031460911843528410540995014060627085887320847509192663597809470944872314492055614143589711465176779797726607074345512458249667267828371714488205731681648832569200167814532677809537418860800816133061775242972525583592231708940614525865431701787025558064082243243782920657386012134071067830081781709936357813427492489204127077129790133939384071706123823997562926049116335946945294979525802675248398287643990810660995221315300834860481002298076906152723727143001787689588738478183576417721190403981350811030966117713626359158571288837032474583885002239428251411852349189399870036106369475262589517546958931852077799883387138192573009135457888086086947121800957521213552271695036152343454366723654900494441361521304535272397376889438593233028895423346867558236163922470847031963462085867649294025714922493722205224404508464937441357705839657210133852361191088832926913430379890224717833330865250966498463220621535664597331959649629321961360569564849011355037576141379538107593326433442604640410377730989699386537533295605224503309538109898646678487416791900226359674933554787361585915342814635178353004015977309419625089095603339872394521988429158473789102707603830864629594308529917028366152370754023109913925978245865089614237526264684301826275921345314770648775186515577339481705566970036708902312530827664864483560657285298094386672808123878840697063706052810996386258100557410408307020584685353519790905191562944477893664837672426854030399706381105471107786879100116171044389698362950728591311343778798979681301848767281380718901397866135984430211501363129801787697699156057184902825962702807200197969266004877853043146128339762365491807809578040209847435742123056140251424991674602545077590968868964523104630296075679275729169117093722324145751107439079044956347490997450226685874847182464837343774113284938306306492167027321722179025284375547792624717646824851140085728359321556493889185295737004340181784513614001588894374445217114746649648510323030136198503597642674027678458378181182530938105499088031575091501272455373950793827049349752210859305886737962391043360610483652396405418712325775330723556346883148375834978583347123953651329731750343165052878625246715780480517746688738297765724119220349357222397412435464801458532629411568818640794922041201980913946033278480687072445501514830085903098782914617001348020799257613491263341950316339790885268982372973187097144408777097630133428444741097513245835340645601392335121876886283572330682019369952209474808976558965369619104120272902659809059589856764966228021643972319361040191749993966486099080910140917922655180388881983977763027389404701116970243898490411177979537942177464758657721378173309762452652123483371173538033130365339600874543316405949168600518264010294195553850986366833531620164350962270677754777856980026401477185731957824256163135551159067042514234984135836680344485783913391466517293748331787953750207302528113529506868671102942445454275326883334567259777325636979922110310375520040248131496216311236778120783796478769945802925339374329468112798387310348302917887370914453328166731082780890628438244758156283237128657790965879732635072703735414717731309625380547115345883908271270242703482475647530268667697995127442929553152268529751097917272510158381945496135446873793649943050940764001337162175583303735100848965251081680750933483900680644776367153748802030086967973098093021419591839142426765625214150455659229092091395439008274069213671600267757211405375093702885261447748980139961636293161488266300989570185240863787891513020164968244013168451380304039249606218270204814006828757737734345516788774937348682390065791926953654673475692416180927818748905092470842449172021495499447346025321223353861731615768919986457088180243040856128946221375704751600133356576300896856630999922111730973691984224396813250942086595696011483162209170911384401132991786415236788301284103812147587104133600210772136444364535783129430123903052659242530276024622310196689682481720148103172883138862982123664084249490624700381875393242302641344004531585065742153388271755021451726196749168108087229417887293737489719770717419111877251051236438957109407228411731748640199872088059269317020821425877633796656007605065882141880340206404002550154815211786096470653316249868557046189311880724600607151254461820100744122696000529042810475145946158053749789307443104500859830751393943225926014097723566124064284532795140676500939974695986957129586321817694213893367298487997295657315552635981142872764709230810033376216913607161065416512598448369022073667816577778897576630892199959830632256859572354590708433567058022031662671349711098471579733824151090193197529113643628184739593098094410203195942478524761427333760061675010924060880219916454695171177104105089978205068759338427608668469946917432352958012761759462588249791199687102036404095924563301531539513036779623416012378824714736464735399834389356527623411672654869166917409350475847512741727611007379020400299752192113755531224495243799625256111381429163623134353942756318196299487384357463183602228324112492995321593114675389371326414235571453963846304892085218617235211978592649088659224124496460808941686900826828426126327821598716930586794330670878336269904928575216681523402058215709814827223529524534520841178577740343029610415388644953549130145823073639015408322826937958192633817494324488004351690013972494024353754353189147142481464719990484048715304718736690530988606334588790465339131248164932473960022170368545746758058533113596320788121648158255465307843116076299340477280563180873657319034647622154714121510739371560084523452936624260328151689128518473837965631251512363118823102443498474842428605664176495987616450730593273029842363135562217022249798796540170244725385920164950801826769888385444058762301019790454439991846994943884955440166838399240999981300885878957859057517016203841655823757550918757867836326126902314932980435839907177842460985837487062544306615066851585940292753125224809547336159887754012878602209910448487699100930540637897354300914271509927307482862299374552049202184273781019619091038327560022155407216600374025467013387751252535177406208836900029784915024941893283139821863183734213462653505161063650303432134670354697365824011281803069562312725613364965023193274752033181814777012742010992148133019147400645989684671447332676981704022625446466687288249507941245926103885607201484500495740036169513073273058230123028102028479056363165969648585885927627062832149884464217580329034364896754452008190202764497434510696448855535322308826956763816125211714931464535650835090095315716849898648509030429495450837117583464807382020272507584307334002087650476434927862281058087685455000755110164796361858741875342842064265861259004894745507928857812669343654316365382153311375912791007971971396494258822612817022084127497862040035265481234045206250875882750555218424500756505059749409304943732830817291286983105779344184604282536944625614465053669424299447341846085612424311630277591916172570922566030472250455487356830500855598976243899540536306483044281618578768923281134087848900109323741700426557151432867615004715704860920167455345997116123388984305632484963422570016615781997997037899732380462142873637045200440638263411037508602580106578669580487969920856314796597064444834441143646812244165328499445579216005486293093048696487487288099258960590311201543185263023429353716708312650235183278518121484165165601013337550776334288629391418104513050050216687920783024151767431075987173914744949337557702205915543213269937153314022266635145434200753567354402647812267762164049286941980805179165111859929517129054832309330971214549807944471637834236609735045492660639999557699609742574666491844544485385922474132370218678180740183119347476021508236529029060286477700804115877547323144552600774507985581934235654363202732025113645264179310494652597128378860283506270809256337679263611415543685100433927053557406734593973244065793719871750458321658885964110552642018185291795241972004936086720902178140218642727442567037981664190629139563296270323456134058650392178837246465802059677291867738460140770499222367864572702837220256831603451018961250638387365776985029554608819080730223963260683022476961489099016830195972963087901891583898293015840539290463589754617350665458672316300636797191120555266800149017996225461118611251662035237969696422763128135387503207970256320072589403608965475805373630613306143242385858214094543743576949491368378197197712195261415416528968954991150170971132920951556818982348982744501044715871129987949195583706187037343718334077826990817929144777380287438535500912512526247870239769924752215810407744352067844404907592793443385958301222207101518292411282267173235137658679140240949224893476249671248349009885660276224504524318083327539371224342644856088221215402804166528643660882799025806447134129789702618175688315168231150023646281946768448640719228649926015617310474261108721480803322433251706196567480213773903541780548665527238383926140853806824182637212291818332909558908088596762944736604947963048497742223541584086111625109279097520224544155162568072022486250055734775555255893823466687618388847623837307330482048536533309478452830916833895923649094686073494829296682373152059089195195672324855784932654510557689810090464151681636287798007007189183366927782183463789120261456650503815149822448445209908073825770323761875373975114287434355363868280558899838452402651276209345960201020593798923564858097587386583521651837206358714550549078862849900990279349326241292441797367471537820179563385704488957744231093419078216165963797651264505650585431211774729536937620397622451865833757963343999622613572276657496094691564773347825330138555778991458731522473827034659912571905049144502963542270326204384645556597424889157742658317720850495022342450485798758906272239775445506266184426072374466656557291517288471709749352143248516802215336017786362668993941077042977880972217066574627988711520637686500674057785217787383040970558873597128721700184690120595659700567699216343024162996925065772469495920154712343321938632117289502205683920448944016068710572833735158022776170345331145317699297396070275353284542833547902460553978137232207687568369731797883614961504819301495616566039004233040252257220251838002929819613864368989590253292744868258523493731575014613077408358976954443949047019165286827549081924521579267319451758474461757065139375831475115857672572977520248535167000319110374518680128009696835399428714113422026408594881661542893226572847425392352682637821716196426892702122813833393548166883131055443224809976172104815275151274667244657675130195451670902020213092628191670186788938179855511607067321281255347728766908250015574844575512322130801655392772950750178207883643107293065541553750734700831306598056585187239609715038822020817467299672454788275256420433572086383076204522902948662907455810506109518585674806988922745639940509938782540524125174865785130791606507469470800779392856674349134356283242342599784242745756859045003099318076531936179141041147385994172817956260935219045262855651924287138141664219438089373799181822488128198199082367803553806685218664404427703796180279610139639985242548777758638992276801691071953222276895683767328686316413083522277229337878636824081859082347244206024075428411140958439199628162233146894952169086165881468656407775429441340016552538379790691057730976277022394710178999458229404229932044897741132488836402204421846670439008019683117344336136069020649768814341710355292738113845340074610821501666682945161513899893817294201393953423471346785916635069771338478821075643765193805675176658770754021369131238542411803757229605124332708192726410926562017842315860075021794749214425389768570128224143131891584860211074031880585373975660582206713472972811536404913643666746225678717173339505280108067173863480241676414738811850348420573878549802687418384612813320147286743115987113742335942488139140497638530589838711207333515359382556851862832080434057762486493501105970306510313419936297590974490250065012530920539072446208188254706645622171798874467058839248436293663356026455504414759582257495025474532072281893094837483241272155122447549499449993509360752629428739869149574379957708320939831054728445991878616776425180724258821642792192994384518676607536026280709249751717081052823462957790640185617593985839137024204426356074165603194466304525788852764645408293317434921884831397702825622680268338448023112663218381707424561525974785509886115788164845582331212755853664674700910469346357562786454985119656311927388531473380785824679964371092327004851672467562535825652666614058388113212758757690188243130974326099221883027974856441868701769558731923219562307670146652053767880330657256944604399194062778827708163825945552079056753374898805667855057963524742803608602247815467439625031865235553765122321382018333143163757572437253431457422555060591456072759593768774032649902821934468933580603843743092151951272567150745991276112831687001699177897465103327374816030273732902253233949213806594500031601509085837071601698798449594698721317767499926325516356246073405664937416498239572471715142298730489235765194548930187522646071098504658227232007516053444219896082549279721701378019490056702318276614838873481751808002438134591216648299215380119760390840484182150753474336825159624133189483592737317542259692892549385184155591347396156902219714208291565399646200214688559663663148025910011030237824352454167061182397890760891095101683326442994040634753581538594143592173436642120554526912653373643815663083857111985592537946372498719433247612581741896499133216136302950689122659246403390030508295381472423222865844566887633351882240084762100173254525397678336061573596795255740420852880258031145434061553004443071653041732466986563417578028762705734740871143889918777808978235549122331159177057179649832061459192113476997745420906472900258650553548035695895532483272241003253447024945206149817165415526507094264010580841934014251416683975762663240184889056597656217677544150982176395733119137790803058095732434222940448316620900960458191826384012226096452352917745821789403565478331517387369976858226053851673511704574639611560456789057713833015564817437292682559002313672157252591224226691936854571109205867874329523633099041969289211628863350110222055060587909988181160988886927289753413124499539740194094862030768488310951880318415202036658562738797322185881079973597912804102165599655876620776731082250664680526569753995899353197670090386740408004238844336362126109511017227265826121850585039793628757772144856245498341630838760942635951234297716071190858262151495477857772060657854464720391665270858113507997254465881555609833638019842185850470050276590127217618192280590256585769460710042402507205675245653755887042597365107907363951159365640619188127037463512150367519350886457266820039377144867797326597823967258439039010933859700112455221445749059219206121665956630447986663741565619719856284649438093212110417930792240007019751674474067212937178706873789051017233254266999706127547001310081576248348398475383064274418840096134363371319007665521303414981471141628064575249070875930567125817614140144261456102271906864633072214309346439496199432079528869238346902317919291270526436694875799615168001490807262742487402055839371536171078619525852126515110770070621740294265540470233542957900725453035138892271530928810407862695791259906410645577164946534589401262758824956415181557165058186961286311467208721538838757841822420852000206520815694914844960211511633125555353993544705996736933748802982256975502932152171103650077129580541173350367840786640526734593118677741739495146975222766361633637411912467027251484431347538253394867453857025866703801657564698533833756121524596527855989309114231723132785982107928611709407041162784562248634852810408513771183631119628534804107929557879068817432823171969824861974057779272724947553819034267484724629583947884234466664760679988177842166159704641667133902603600770152548139949869652277865598208032876512097978013322261000835504029169148253150622747080807943343545407671796873921466048720915839684704696902534202835178252016295033472927212908628941175466322110207861113297938715502129586105934471816166531518513399083768312295101512031233954696903243230755551667548949189289555439316847269014095510513352691603499045735514993554598716814816226920775058597291606612743000428593650087637153878110326898787847815179117628686785707047138534136783816887226100996710669509129220278007573775749264945111770728321423143187120533910998323181524843997322859416681265733393489624583788917715207785045622341379045004971983290559385084457266937742250078083099141325276646234116357457874454374655339354903685952208247327124041154613611644122375040856140361848737505636791186466757884235178149813511978770819124253731839986792549824473999631517534099054553970344344585996459179108488705041071058838777059010009285704262331406508649500549517600841228072797774510250983080768054214134747585570928148720361579516023683562710206823649699104977118215635699641459329969416323433215532166138802198531777659001802265518681981519055023650654483487691949586096883651032751227395104571950039981642347293962226643423463709733497384512222921023324180441121129892921005527983232397034793625183372319292875246196664312987652880941884963287404024170094083296966069745941698314578750790820305593350792453139843174965005293158692787079682465563321622323769939829618464140826106706897320546748706019258662053893303328219656950746482760308769542144381608949356224808424709407448006997356802969152138195739457111946732360054392555431579789046175596270673246100151162346557238835036833886262724706943427787525024785559978336747281116048515746190101257496630731862942214982692055087266756883075909977120545205800920166418652640734349858466265419848102690791137676495426611889261769925495251636599129080469834964464348535090093891269355503114087353493441251427645771779883611222915956504830287561336576355404103244931813379180117320435468305796540495978938825304406784967886217108920396471526876271910285514433791055490395858834301849985401868005657309638461233667159656183284137057040522210649129765731488824469012651834368015422496056975138017249560646723371841414667774322284817725032921359408653668221223759791045527976150102626377245274731025219011770531339764698325092325970513615862037189363810416950847055256978642365889129294870303173375244454319880360058041138503979955838814214285742317955747749484336454432955851888153029222616197034379290353243737701027259003357521495549030879423736214623522549833740614136254193395768054340942695960839962496126538445898574582398860308172199507524148229251139192033240884006037164796947581489082623777522352225481426066052619157842553666641056834180707797389930395298473519785250522392604812080317130768071582176886701556998872715722749673406058658587440039276922976974972466471396463879405581250043264375934122340549745974386578777060306861554727782226548074455466242091576948438356011009478344135192372704558984471058030311820041890418371851430788564581428940479727418302864478293706544831376881550347125275055397648785329879832189914358767581013440076970791807128548301035595060429674031940377965658520346343886368174034546997417732576728260552578209106613131308900872365114034265272686644430228880655993575610695048358745548586019824187490431318573094697906457916113012642119596496242068718003129072739844310336193520399497435434136136639180786864218368830277520706834153538242362381251517762411172895712207122445481321916434109043084982774413382548486358398272998963641636188861622309731632248963063564182504583429037070646262148472910970946667928791134015413736568775980765465402189352264424050477073801551143113572790052815698621115636931953572567277174005823929382405736959605169643542064815182715745420789278699837391031922610867669024396331594187014563317176687968991100986988105733181831997405574091837326099239014969737787697197684773965855614154071131119385158570654482318703325382253303919058468525264007392938382186613743295569079789543847223602908758502644794461703025250844762762792275038431318169706000707199089683071892579427408071767742094109974767403925192515186592931224965771615655369118118118423002976739205210016254196915286854896423961602696421623947490231981838197615546999295574234693057450809841474818362611366497394017341083053557932224699526210662685045502376063047467670608707733680401325056776079216696216316764644091519910578316705732590317358602453065722125839301176057489949631029249437482301334940214184058517395451715234766096912939302318872264048474918502266259251803448241561931841991247812311210100651958698704415211229939095350704201512971913167423958667175347275997946756872161866232441164378402788590008546486311548942543634668157137568901707400167160795904198013826696474317103948979529666638360213067533444340895319316759837859809394820752101620497947709695536003465439660309211949962520175998193576500555380641621605236824290400124515499800948787574688009593151546365517947685725350170984804855524168927954401854953837730803506126820534516402801919123039810621179176968550605161837480057662090135666096879164128964848729684519953761494108418744318985492037083790323911455693794122455939652054988370551081256919184458335619663233263926998764648122226297423758744921897221099742852249309279200627208555067703075119712889996099021161030713156523393072458007225016331051151079106968305861509335179908615996895278567788877784371751066349422143761236026520687041884547207207127572143415424925435411127003540976279666577785130761098930421934715629461417244631550133679451392545008361548458833418196671573041039310168582078974631753057314449317031609923432032766026841187948945046730055927894822579940417632499051481985589220457712834909163255464083718726775000165535711906353237851634867515592390177795991802608889798633071931370922483089937044632053543672459749721529005880208908997607363134443900591565811864485352324033337801722378136951162199537402334811281530137895812026519496588436508152380654485888035182424647345980763475017006088371137117735021977227307785067008516906933661117596518803927773395955704332606273515252296914612823917206275174630631101054795261669941318316262466690194847756564218572959460059068349884269407566306713709224060412333580043762725889290522323393663692440065723431523717494151235935797619354260566430722210782448847562543943472596332356773998791113349545649929650921974791046857595626092648783355816182637311725670581321019171479483039192362299417183437245708256979788837890486348347892810436467715561588612279153318395370224321884048457008203420122516582470222068927812651232765592227018407318930079681952468387693718632373747947904465224161038977695819052707784872046525727984886785184766746068247594596268396321323547734423806631260820595242185513321641987990008651639495522640952507508770852997813954094327941753575606368495601511037442308986140203934257759077225914247798551255397417712698952803295321251049835571368456778493180689919863641943959478230571826304853033592998307479074869074900635035298793007913979450053161691409269550906565924028239698003416141945585683279558288668694155717440844409543511141484184623079866864032972904247476523475063965601229337857766982058369206960498021778336429586218118134299931107960271164988445708537847517433257086095639352566226479345486704451225369597069187149074751241743485929636783710082860322230369256133446509235897597650834768430215221603588467676444080263655340738499218276092660050136702320379050543899732133241536120896163940764963380250505965083261837053349657413856684692076354990391286167484753414076858454481005765198883910326772202660899769754073716809144842064888109358468818888491293285527023565036572335138639338392244464564034090133949593742083813079479517675276189815692640009502943078130849029671273221926705751074344399549005092357408351619458453655219968968323083879537776732197944026753013973358882138189861493675098145679128078568507955576797462823606106515754662845074016683561732506883722072270938248282718585922511559670841298975942760800673731509410762514915631836532212598426384707368834187464228231233480580751262621604025065535203583547030147955123773120861015832009215896039866496531971503816213923411516236440311191707986626933430365885339953624599500718194861972966175925674823501546152975869039788808093731004749419889823837610477933937946723986953618337456485211862267093584874014015664327450559567736346379339325215197738263747403869544942125679290531995570240319684016563625135240095467903147575898708223362287113707884864868454791267701894474381523089615868732523697377127564655385601086927964290144799971106562067477709198611794746159034960062637677751796779997554339886410398894977816611832216149419810168995861852429552434703881899854172158360457078561288872027394193886593985028381253485865828716064712885199009938340122283312855590270169446107272597170146770153717809139885299657242908854839184956833256243472887026848054552347349217920093993437225705862265995269570497328932913967883243866794284840099841250702991711344804174329120991244599497536133570699815045413836295486798448815380682260956478192990720980763734002253427552954065405707088564235551349618539871178916311206669477689021200163224924517521426732589162979512183566647999582579016915105403336539701832518735325660269807994459126383146310678188325315987135505526554787354910847392494196863232954441610641977588082763801483856643150825210807900892557652915000950438238828901474583988461758190336068019427081349537843863393367974900390106670001771204076673322319851867335157623410276260194482171170771448947105532699894458038338098397426705289002230156281951259993823446476015590302332813982736793612479718652246872748644123852136016186596220915082335227310232923003261281492045395478818529589880277509908446790852929257625365771329544973804664273900514352974959228083320903799314056714052750817427225612337016833049078957439926708319814679674892320833389425623943530406126837751387457602867703476938676780957261386142007815249536018508298114280692669570171586245483301147101052350531693698282650923759993279552753248072726538951176129586992688552590698998715350308539787572488461526305729019765528271136818587824035651770462867824447921062731110310508760917997046497596942707396757974849118237002945149994966829170089852080090358594427731758827032123952003718185674965531582119742424865609479507422573242343900057237024310469285006013135831240137694029476877829856136073882685150392901080016494409399726818998819071154994112692110040945049903629017017258881635245945724084652711967808011630223737472711184900607868769408106903177668839006101017075079203452198853380328426854570905166717432551720683231404524478205885296056812727478312780273173446179047402542777874085652212804523591092257367896488875139159612857907319723343941345685584258769445222092707278134916291392216176673989069382222330168204971958218973085258314876759684027938410537979784252698469897580273049215074818583713966740240300342836585026340776699559275415719671585212962181534088945391854168318811381664389814636057681435412295846297919765401203650506807616389832035704811480640118302524924782063088846324511862222541790977375812119232176236246666856739927286270775023974486894137189378459579227027595534055542639850201312186239187260000536399910720882540453492824898663640561743187858277226999355507346663459916899126646786127438705847198036788028845011164387866201176912968976849591408444240300592699820171014023715267413941794039061576116386092531227151527738719794257890216165882018524284596670549760799602858473077877748652155118513835693756652321306779088052108355661969591245144121504699470551890536828862740863453091762873075948590730143742491548202415720544811421190106625398798981789743875045733962794314593585739550491853609869907090318507144021593631894963378601390985276563981885777673595427459582498718790559592309275547137102888752650674732041674205986215081686040411206520336369137158126135411991854660120140616203654571142594050775237977920606892681555673969242356236034755331496920217569066865862810840478785068447717783843278909486038943093889125731104921493908287047898113743812236138995213711419918487311100599110086876895971104460361596041808158017467632733167483320250742361315646922966888033133748423794261986871001828710606186126939932696946973466611792164040427777010666889892710968339437692028381317787866028885574338037005416467547669413977311020936993025516927413938653781912781024302063927909649166629737630585001832180704934290664277319070425486330276691595712687471067093278332455720474503182245998619622850139714274073701185780325291199306741522069621871095134711670076241354688734842015770713856033876837375981662941298802643410754344093036564476524358722911838237175304359352361297310366479079521841599728337648503646322165732624357542126415889441600635932870212224636360549467496797802744107372613155447925961266836947581627784604111277280987874514782286739973780415705727015002299021338102244224205026861257412382820440197873235688485427136328845048288130719889780321445353154748258063831002552264997428336216147630166516248224898774387055671484571916395468042059988272385206763868796079937577192401328269736108329737811224337137939917801329878516979312696887537329929849381166184700545115174023580831394549205023616088916929354219853654311086320243857347216520483734539429213319342068171683357722951618775862963810167389849487716180813993000570668209333766526019853244697577978540886764818905515598362579136516890408641481872947627318578899523946690871359617729838200330433773589998354102257651453680557365475528085652008077361781429484988279261537519424164437606477389888711219547623778309060291381507724523723562803076034660116134444363256314771750384699403328649165899037594737154022016107196066811208755981431816382672311529653996247005618147291775533214684024179196246563698034019780035081875852409779397892285134905543329889094162802503014618516095337943968988574630638765478669984513835048335053855745163355243191337049327165174652572353319251310476760557278408826777374068080122576218752797214599438388561528458900046495209601211035990671057979275712272536966889782073756008070356588579690453078298526368218639881913353788543001382842502467208747793235769000343270349210896094292890961619714956573859900097503686932622165252635532717375150281539047120254288764783183030901909875760917720962238730317639673446663584439215275112759105490357855567645332521421404082347765183089380986999550490048219711741617212396876919843317074542221755797665248331689998202999248633397748711386353195381742309358847547092896511470676245180991578158653114291997112940434200478905118911615547684325138494437109255410773256109384677038246535073409943358710818069463099482452957505191185525828516702715966086184398312843859367653196520494065656890579589016985812447267515333019128690633306539057043050513807277107934411445285553297976569860999637465584863880089265703081664146096059118223265822558184345169707933981432378695628001225036903101237759173544776446248652404932548685132383129071531424057024829060560410659031800825969705028593341286160466853583911249779072381663144923048465330253719856865415918912128574014667596550868941076815511870712685519533702567017125078828845075211353326453688472344658137204969524646203616328235403170779843918379461788894356603233970005248717195244085211527889761670021507308406173869264121598833476514712431212042939769679485612806401340129922654828303292559095560617262294507319536644936827429974409847813439610366507561453614702385558084137802570112923692662904619618306939449994688973377838818183788246864454165085617259642114873274372442492404015605061515109172649797819924014702719736190572346151549573497697108774313703128991698458957444550813469203060036101484191779076971618879682064320934058056108879382213385721838102220679687816737241308642453090198167241267646533687318026444348488854421060711617948769647561463187135902155148135996523871050627803239686893127414022147557186276390829172185200517921261260538938425766884633542352199262874107188338819038014211348684048969924306252769065822885733063843431775234552314078450075587141590067146313558388355211999767189212239059804240572131384909741084108759013491086750525538783058643996856844229961758414479819768182037300308228899376398761326251571778694694436245276742837927475797387560462558067029051685272255406972597555130333823236578411374605638577049956391265203496744541978243941335775487709330133534191977627212987821056855425113941124131711002136949700994701026254936940713602020098207409866841192922846978810794278806507495750251556681137620540547146936470442078452553784765120427791363845891420717575100443816730651255462812081368210898253616814201900126790420509264474005449951347892052690061676777057547885140418662781433501046424450490830249153894990230088586400833080177580023083887554911790279808041237059010888574566926085541449300114278719625738461556026474721200330646872352343509058749552421182968739924133657787794148361775835494667444342598741018637248262004868097917068455720012850437797927976451893578121808691854593967614828659443051128547511294036319723302728909627745695219957893387181424720764265411393211185383000113143390917516512615593242502398881820839017668203758700515495872146521976749349498568069791179316298010949915961096899874810106419182534451500961395288186611872970941146872530189247411671912684641337620374113919261147723268887805241894490827496294849019410331002645965559051047404338107057629303263621916901754145797262714378313083829038163143529691383121409893089572776570906095296644468134065701366637947592996403059825596793770932271920205953603859826274883668304248567511800976812750919849985263637597638134857724723333335082132892450799178710643746657892021565639913290143950733997604301851692690321319093501425941977638442458192979794464595291453374899166795744123596868972564772242252768623187054925807177726998289572765794813513661904558182869505952249381116363318827284344685322586786755921460688965409299725252928306516261562681739397182548509797874927138073903364474147205146374591449327453740679088768014885143965513195174076908732530387723346768042113679706844246914244398361336661095240496959961940798572809718509929463697241164391016910572364131550133378265228700491926643814582397192904481998014214204002151300954721900617514439438316646662187243451927042389781844529902213225019576300938964951334058544706132175827131587307211889973982871734536388868221139507260087609155151433934363263984950074359699962042359771358463956466777206201106595658228255375558427530261784072657327276056429320540694474401856266083250874683167190541174140219859781856685622169111251085937411502074394480442853278325823427843124686404339572172106259647037207061684819603824920419101327214066135435579371338120261775659693720548447531321493544815570533588084022325731125821816900940790644762701489367858222746216712619190377896500384911078519393238512443010673964090550820976621294988317980653677522350231320342207556595979771604031076685513921559700927551800103744327841070458331414972145835492643680074855836348633647320864713064206853644588601279512412662655327601481490427602105296667366552860048106685885643217870826787917301843734582091656272540300229596626917919946560339231788719180229180968725740566016823471584554577859155857440208652863233443350567527478474418908124182261865149324250477983212818623210896864272186875941347413619368660806609184317485029975598734506215475743984467392722929692404806824321367480677916828746979582818068172873689272237697102330197446752373802283456511932453011052075226507167827835980748969990717064558402913654332813076955102053235529727872000323906804902350418248714888055974235997413696443559975773193491324002587758642881944937127511431333144460333727164166872654139112322119269858913208107619137147384719239805445120474689743748982264927259382593702773274765262937282466046990398687531671136189468838533877472841150504622634360171361537121693384111773598835486302496705113986943802110070739210808638692758627347533579596272895505112713363892448695679950682903094866946721642292520330893124025400602635384884505242820838035316728549843668934866053254659674905773381572146110047155230711646023934277089839579775800942371502411956980784369756690030390843071464558713006801128871402357736030145110701903007308328552868170965214363296615648769087032534873381399639690356719978769541869444240049628131268519994919753523051612294731315674836665368768025081950116790323635744858993822701832846107035043789539976415267765038753098152765945439497152651747081170085388966915523138362345907700096404830898899939930225475462959325240892002607699103796763081274585833745318952575782644686139137371461605025604691208803202944899894175895347195535443906373613858290295514891622574494334113077956392645182085340254303798572647079461136110741637447541023626697335607444491237807119107107010878729055969790142299733162268884056314797330761498970344213219513180128990174483255793081767005688699536730206215326880556358792394735792543835885860384426269945094325794553696772793404584732045411536012896827695723082682587975996795352102957456955641418165096336054186814475037954019976422329162481238392069648340557659270727818962987155343717024500616226199316936584747423693126045864023105916867542151355762540893516715009713051481973790847559696654153934538708291376687443077567343211124876907536337857322185650839152230609441463207735178814974571573774756686823562162214977634696039765027911478384382497503822136653204744165922096789478930956441936083461697147215590224524450177918860561865540469062103563093820322364811079274490931193287117744605504442245713784541039179243656672074920068077210033150353338184791511446998399677604088499924457042447699771122258829476111596462549343328194410885402842425465083115128289138809143490832107836528445544232456025682004241306761576298907946071297426659410676147124810981457782221246390848343472679772569034968535059649057214225163316832841625953079756893367841279747748108265113443749735073340665111860283388588472807232322778449152954281935380221602980394558711913806666861845225919341270847146738093030119480603350324572527563539038911593066154881328841097674801166462299186224177847694287235258819972602254952369681999912790666515215087129919282264065322447000978670401587803491394011280356940902929663814334075532536632774526906572762142086825789362821364281855810318482758801834807411371283517823751822210891892618764708200341226877534484368892120746415891295882792294113175586231165425509904940773511685435591632095310135221082565597949628091648937582767403880987430068820621275541422110499053453720585945695682554196834504594851673187144818372513571398919397594075328537637536195192664549782182088580322083215982109273604539657899752202819504414164616889674612547009851949940587889839326545426438620160176508692446093305973597038389726046901406371112794887538048502936711570364067068781794227306412066010293302545261072585648007143433339753412293147077178742410531876779704581585514045501268879066768141553526332443299485398995916412361054751822672081224526312077305506906034165075108630221073923766574744341917913233632754631186950329450540688551944521618218188688694132473794957192520509621086381744792991256995087450257964969727284329167833512294085222523071877975418356504606229873104834663895668169927560919305587191811816611062733990124671913000021383240055745698256833826060445521108354099463354941335305161174048530705042648590614147701052982797582967657341866496655622047666493943699591551551287502853552650660948981274594564755767145836166789291407080057064899577091490018005135849065011394333416561041130388394684835075642592329599267646131247156905008950260199730909053453503135278016723758763519605419836703508211726594369725955603686974715623071893591509199814217326059484193497678378503704671571697172434300346232673200945515625373567630484453521566457665337796421585387188866596700772606467325922809069722305519673014414142636410320974443253176298439483176610560731945416589792718575923074450811283225751766862226582296070340147827953764624435606010985716508480218505207007891016287480689055656125062739677024283394532295642230382191179876389429511471489624832706468155025824537172076098132849888284681666791334626313199624870527276935783759515133753983065902072513056856712892640817933353760384113027209368627483270403591611782393183436326161400997129084615064843084001307779374399337177385787355887801853850194134113725629329669762344139388806372162661299625319491309051878932236510172378405560971377779900788978393959729972714220718736406795807309593538446521348407021909648058840611383872739801752864287607417396202672898095414908939647885530261684153121772940330415346287946141802888477970005704703873120607129028202051739611852257778337098302163417439041991607854421569199782443363764353462307900021388477565529943191132238621193772108872690816347713245051638948222748315813892352762323752382737415104967180549644061218831088387240443185470681881250397649041995280650530927586696434537491142622293145978319589178645887029516684648639426310648463933939113781637785238818170583521589185513161105159179579422890006902358592209831310019317571368979592850848842627711703793052578571648545289810517281296562198480924790833771101952591815978213044117343508302967112314329253812665897737824745582198349857286556967273757925442649189326558896218363143181736492571998579302329474137654586006267491810628343372340457748302315791450937892996154062980698926688625693319460094021725871050366359673571117141069907040907717176216566012406507141218956801289924330933740438307556818923816225359503548745176060242004626603171056687572213840629496725158258866950293834455607164506803328814075285567634656949710076933129581440093652533035290756018135777972997784248265474720279978654440466043669320730428738667099743924869886079108878973919410296381419868154782114129244326338018864037650984140918878470714726198582129374421996348736494320922175423386593083293626617320811383599787778702847773412515932349524695763150248047738511868285825512987889097928233072514193449248970089424605934754362065053670894978354411607407666209727297712857211457383395654590168633911208751983290263235610366843720331613375325558112219673991087863642080022063909215794375187827455411946194797047539569819654997048111981230735471440202223663559735290129833145614870137694758028898688161491079225753919223380542535146957968863736493221401382365254949328089717042150069592373810084121341025876077172967206446736018271097275341896921103940906555363415551473198149949054608735215255770970963389652832146327240508196160673358200177992427025313571848892736081674167287671223971762371210166709964688831345722576084457158409899352381845954360793764590756998884133040156590930486748890538137946344113545941814182160268637023987047048256029786413387552993396350445369236358761986811097501425168533578510602151279771562436329943597504461175533066048190318709099344964509189319889090134774998934628312959163911232573025622451106510320488855480574408926494007479420802763196981636770580510676597038441423186661206385755816541668931698394507839739481416682616628881004981939544743775807910181299954183239655856288432626858761959109330692816904629590087115651882206266593471984303905756972598327430117056656620568021817601038594274485913755307051110291118630655943012164325062823816978804806200196206062435724170405448667895146164964209911232696033378214764704041753742901219128598486522060399363353687457050528152824297716338165303598936894579016445456580752069004305483880048111714181645476110764648883191633085363450456270586759776841194118721970400205176878639214823507375044734200298839441311304687231806670833968338965162813881827631397852093324510267597443771322845027926232652977765498551463539955742954496890310651226481508741696388622999294425508022756450046062218381083980200511563490224332266791774079341864527252382722288216225989645555251516756354129037443940872439810377333982723426550134166571516447105388533212735742488738137016722788968067067071374031741077247694314790871878424684265938989054233431156994149436599992091795258946147970413560254149782465783313203991633931877028613118175042408099367621139462549700153635446753895890849987310546833563952125413715485476550944773601466451346628656345105405762702758064029268553399719239277464690190428024261553876040898407412441991478391513361187739579880341328639856029095065598439655642578385325203995503486154728110147989607376845989968886036504507122097980072633785657257264344078114233197875554808685158766635622590303764241288148803509106072810281038581807375510835894171294038644088411543192727841113048663058899307807430705361711037620821861679511071135927076262963471719976516314738457763455379026614357613266065398529620875817952637295397546228021222577476590471842523450996167767983393014548550280809375313908903559841051267880908190378793783103613034504111524355007779233144394034979927837008750384118619999789158221352227507483670546221580756995201283421579923850765103669220726039716753129952348905569784940574105587003017655040104283222217014504725356938192316235724035926633544000082826382609954954423922696122086388956816395453162143366400472304264730699784063740337685304982622467413471167009006852168488552452740053730622445346992292062177308092791079494043915588561013714657724602475970301064524326770224093819736844753998606554556179043133393415982368069879756075411459849256570317979461262864405117591119389347963919728038122465122264120251739774001760425509846209999895606307576942387946153814016899649572473322289259616083786258810729487335994048683489268863642980265998398453972949777359385965334103228993897469841390270247069642731369059314432136118432299749014948771930832813923176674802596912244547946446407242802662470187101081037991654806095602340685749590545130366685942249169125694120613874664189792741827383543032637806343502671975490770472296399315206599658978235492173675824630972099297702310278884364129162007157675691206616547005357364078236055653546622359950365851756301395200626951966368288452459214867386342523364366166232514994518528553187284915484190999746522884323245826275438780025637110650885482162393901868787521134252100694418481341099887311194562623841513907724143924403444842820686830745561151139209964344149838059893979230218554628385032376079901769855836436013253750888901003533318870868471375398551071854094128950774978451936443750252703661206242814555953406527607848202644559239218720896666283056396901867638934330353691967712891961384377100273713738971283625317683855061282954941021218382270306127763523856543550065707957978309359036208387096469517603511472082527058336248879952903489209957866863729052584852187075450925884201946610393403548151241511226518391329784217682727124560121018575370483250916619525716770923184931952469089715377341407250121644225837262264372009613818427883707362932920457226825063714610618638180443891115376096423390243436065045111845848205938319729484249612964105999144501297783416249960402566040462711779362584907335899052410733293787634061354064731126374289195295186955184919333770331263559071650449062874907489460814875129278847734875690388243583715422415669292021230963379597325239501051602570833038768856063222598910555916073614724751869610527596469231977474724673574874381434433841628128774111617520858412799714904498251489581817558239467824932012582125137256351764957360072427358649308629336264683122171404049907929315086821176266093948105925073021759490968533262305960639848647907214222076479125746299306216345680975839619888790467904214497639396964727033495241663674733542534201829096307353656248087403422663999011187539968243646055979014954628150300106323491513459476258989470877597258015706296283297278728977771760436452970480442079090358037252762646191966214029060945624337944856735389852615108576051822933888138666195403819817419516753769786036383851745561553791526258980111279929526569193058363838649939774892320224654163373969001579187875243477137113722837306882577269019995182962393049731908572991411562333831165329334359541493779408960089648056791504798787537489356326507339430935304582709653790716222807085137988473214390034545858610478616307640192700545422540085025369761213420684242820942842620021002852586435548858610490679680352456669860118285155680994985204610928663494590363392240603260372897127266960722868786461377947191792632454457442892725654030646730113910953817585605583002335481551204882753465176269778484666982355173656914907373687907879026255326415346211580964708534229781488958204368234987045669388337030606962944050994451552757471708930518086986291931296916443674499131865695894612360978090862966468626792604063611436094881366920527679405979013787120426628706095667834119701324479025004355353948231982857888276229202043652658837946584384851807281073351688406871799803023014813396307931636756406496198354077138327139758708445100986832570751957758965233099954753245485995673638718238308152239521857756811782323557864462835806285568489181521551656171537480995746072732422570935714778499203137937717905460197830717228978555099022246618647968915846515916288899225808173826712443916225143369237017010443806602375631002693244255316971099154627355802209033149658205444399940989266232047122392148746574014955341195604507870676696015325958145141582909531268136731889777642927293721471899466380923538814419665092628651497449136082127568920628390207688653500136930308626926109839511643546306222814127840904103594708371244468087698402949592582364841216848149582372603207646291270700678460549759864202347353401912864191344228538674500849601015960120362261228102717675109264019777688669312544706861895222809243072715631231984674987461897847657770725514365532754646305365569948592600382853731492409975842675952724472324079995039440432348920752126689906825131870648773392775188851699659161998085515608106140899187261346798783819449672538494652339392990446412310412358656496186748849555820840504509786790443199963274799162985931602029690388623477248147648297344990051951926763059595859143416945029466001168102449118954664495882500400992107233721956736788331832073806763488233873407030705842110160152528218411384323946903222903286548042997275790568129984883961748341934396406479990949947641709236165066352959159582511789317973456122792064079981127814101192168410901813649400452008654008694222652027039642026401329692178304099326643135213041324236184371678025066443739519262399245660423849532975454666135098432438168106390396651253713255915859154319532185800814889813264322061250548965936948667349274033091321215984652312461913256887325758912121089304870459047402117337014715118203164135726875438307260256547322434316554092513954242840174513929232538163432567339265932470296329882613504648227863879512744336649211749487764920276284616781991747903317819236110852536865777028606265026049943720442368792399107237229787166339609337094978860211616305123008773562733865453176320298532549647786707050007697303413286621601483582061854678868695815959719029428674826047742656209265721717691081033052011786268634093085120700653503618666965154428995408367590568642202231065901705619279054178648496704344021318837921714023551909998752547278669329007365580995632704222114583365098432295418447024005838675227721030947659703568752486288291491493501856012700221061652676210095369447433696662391042505830265346099749257686618583331885595639586869501606132737228313857261977570589398346556304311765112592582544811466545226105694792953118776777081726203462747362910825937136902073782069873904189673701865892998534284775181565161218000259265397557563380491935362009636417840265903244428818179979871774571384135867546059471686921766799461288720352015580322973451679597659239413244450385338503241355703368645721457581304592903076663999892685719667152463583236328083765091575470010538973853897708925242798781007622813542906225195666582464880103760560909917322958601186999906820959064118379629281058687140395412677291399181867550111694650950874586402764603678093642209441587186630656924002586762500873354975567318285420600682121901156172042582650163606688345501844547355830978294608042484422899535452305502615532070175405359447856626531043042841153277058360153597894520495354480887958844003557425453222745680393101465696190865440291028282627030395817505319898882715245306019823119293747486042079033607226014557538657007244249179913776471560565563705275183771946735613532682590145362007190894501570525244205762430312134612236508160565283945880244404376490921154741316856284280789495043557708551270327367549846982059980845120718589402712766670886822195950719898169305199445894630034386683426560315974156786551187561506943538448233143001222684506664376527074302366653910180664881821010595529783470283447886742431811901483054233280528814993810263340018640528803362460780728788386540109065290436427200152106117478868668651053931135211263479137272791797847745166997705837039167415108915946537942500861726776527536087221968083653155331841481056236778831168307095357939175736807890685008730777912002733453322229104198707833105911359992189333313933685974629218750054557877112307505522382810876595877137347807246130928941999067899789718115443710900992129858772143573162877890519769765883916267901103437214066591956978856635731621220721955852236249859738600822731478959600501533545647355834991417794614951265393770149473558881940577308124399930405556078186578698261841292914721335578875317074315089561219224396482279111750021581516373758824495449054205440849113966407949067193100146662197012850007342763415940787799577542644617275041434656389631414331132159162979512783068555897780182028831957554182913793027922952609846874904717463671485418019123083624737166489277468852791582986369518766683243568340897732484959978712804476018976619154034961950382499722655517157394931329707501628506508111711302249503036573989892853847787473827461632514052221433656963506708182909053765674524264862633650957185539424367273490068535410240403932702490085124061565019656380246952454730635480588858407740339407690061563101197288701413112117187559260995564481095009590684590595480011808462443560939852117834637294420812384369824216040542971670743927803612830678675625213493595931021708693588471613758802279830169329261961216496459004229682964092696990527921447050422670053931005806495414201493782201640452674814965963013550144252063430027527785639958621878934586249823534669562974033792389191319351576962694498369674684556986467062583667977319184003922727388853582397164740025439912736352813135357323928618976989344079103349108259284742645816939046312854697741395002111141591146876823030481124876746037261983573903229053091406919052138399719726623279197587215775322417503065945813859147279561439936903142970369167438218875371409849007934460259926029003543263664629037862920315460353812993021715975003535135200819487626145375330449756977328446814423878416558547316588340391483298532719755346109334757968583205664685963661063727631052187161605868445663096219367213477357386287016032320388004477236953514023673549195684417248367286054021215444188075373093401591567685949723058227676528457160771719636115820719259730488250174740986284084912221434435241883453805967240587691215832863652576353895395223745366651832164611309477264517161792746398875567729853257692830999463134056864662958858092558263627617163344956694196828779192984815777956115644649399171395528552833214039462481266414984805261190945661490892754585674058109257038721801414718889292493586008063384837909909181132166863140194272082829427280092144725702458033919011269196004991349068352881179000485936004129087917068165703269580763906839068029587509594239989478081728705328220129131538372928193447541343358001837077055193768630684927067031496005739242583359690752482392020613253965577122652222229193988453868106549437514184035059569741384346255510440512948105029967070814759621730286235574958094449158487869655368419302532836049079859811362895118211950791710356415459116782885093562904514560714266093031176961497310345583109077486410912100061544769210607702232631771927764909414180572811496239929736247102694533558440972865858523799594575860164929854103212214299026406931018822642674633311106862207378944822110515147109034014889627464173729248651563855883372891739991915924224206685489669578992193099916671968210401905223713307747118489062121682337750069171525712945044674099502204770731479636677140184791735028052479130375275895930223322086016819948483222316284629836220843242614279667317334316145524354109653531254164788408453125008089359587630301825621134122335614788628834814867062552803522887672025407568037092189076280239151175485403286611724693680276194481154055524902162013133939130098841757651667889794667605433688456957951801026395086162200185611553056847652897544893287901238957123361340892865373565457531533418534570137514177449389362480384063718687033045066295422737445585971784015178885514643458419014936143730947883090676642377121504031845372254498246443728021492148185817424590520632497073221622021205087502832759763398799337040862085942380838458949910245629685798458927056256023129811227615683120815479318434252549616002011594399803920218743490268335308414052763409069689721312025911623040223727990078181025602346889153665484363848719772228255068647853461003772341828561841602276917266562162489308147511621808480924749245574608536896840673847093970567991152180891895607206830747535821946015725742576034059110989309543623516893050283247350811148501207814433010419403237600546436615588942506054048430590403896215143679054085594060471245059698439851541204724657740543037712344244450439324381450563090415445547125281621921991627611993152593632559235479836417536012721198103674220658891686884075072856208976888895840412677312038341017159914266338220643354218155274662698720403967140178191484645086063356668722878599438498801623818726962880520299990381845500736521734045989003397293114007231372989242580352841546786600133664001187568481966988345608505962008303586085679672556036127058423899845189340880806268031606788604608693348648037263907959719855938204113282851519924227346475688281684837894376327522393961780690638798133655785952538352772465761548251208354635485741459346123085138560970461780949451002768027672891682414560544173663201342842867245314327264240425658554555613697981238539719535418993619321066527038187196498385316845329342921513865671551914248304215357663593325774955912487093623964810620741548516781617716464893118100295286799063192779292359107083559392281086192917866798842002593976731021001479751520565243868082820958619627061912393175850873586312318158619695048085930117405421822135660534851393371541764079264946244812906953527529316315542626207086248240582410204222159922986647663265885243787710718695269807508123341188339028589848561908508237822910971332995623231645056631499634432686862305875068215490246014455708973425845450195381848904647112786626193611018258492936745593741696398024478176239576136467149155193819443153155515969743922589656266485200485049075561089909098468794618465655750955194806920135912432616126864219851952742951055652939889305085174825564367519424181990048869667696859755121260597559102970397256711510160144171866081586157763903931405558347327942953483520899341622528264674503517429235918856135953029995778418208902235088476878668249046038788973324440515403710221840883176518279271556431786459681703602079014392711199324296312783293513964017094497958568806692759752123322095232554493228032989972373470106108589036597928863773179638850136683642245928112517128689030191055498581587779435928297787538046710622081851084423080584317799755812880255305086730056274487263180926707485878324111808656037210884994280127485474701060490561524825125265536048261737347554975835437409870291865817024690751161900665628564200266286703922149537359126150563208787405830099447889196109181738074018584832951348710066122457451522777618196201690131436896636566076752276185179368159121613498723530234062393097853328454733407789937730642547494516040330098745176361067479551153723817589005651715129558195644369017709560334126891311715985227871654452634278189334919286514633383605221889246260808530021655061685654493705449660444920719506735029940795243486072466304454289065776141077203872849343867476254201539909782045367670252065653314912326186048717623622502876067301386349056499155836607761482804143058664251318591718423433691491724883506869534536324845040412663314610561771319601988603702072508082570225269164988466558481045763205616293929529001492732654924643596396548546278526389173740455881159588222301671936632793195969637994635168886424254720727448648699999635275636851056297937966083674849859859200276959303734132152082064467110461672804498370813219199939526658211996729212755023735450291154947910040357097325650420506037552165984925084788583536169440783269742870069043124255731485712897561843254687815463380398202336814771646258010925631368134170376692584301236897929684100435798609673880803438373173862013440259770744478895569847069187725275861409579300542873577295180864636544116839811198402726090566898250778777736095820862429026205723225850629896340257984274329380589379587848688626656784793933085711309396110910365468714310751253161130717762978557657714295158188025309295415967853039495553595296011232408037413397214948199945168348713918162235892582419458048940576359997129702061047479241497734477541258802904882505989945272460103613291288727416402054051175969068202655915988176308224382269386380282959040584538532203167455777826777234698494461997105631404160201434315569145067115495207383123681351481755134116018525376929263757881945816027676289788568783616399536318620545126081574529043257399526772066670568213471799563530055299990676185064111067265754791922325281927428083855237697812875576588650420648386342988138212974640900333395229353084688106800584849570187309227318228980935235477533631151806377791648499125700194876182158126653208690961452605593137098353031829046610197856165038845076224020555773401434321209766219380896416576756826421762119590962691404315606409688724282580381901993174696586378087874466803053139850658896213903306354191670038939427565143272282152934034286761954801106503965088802520714259240051076666064366241888549052024148806246679287501145453835784439022033321864149266157736698516369389718645689510108914912195092452130343007003418145207775348652694686670702954443829841258467199040316476316558655451527037959044109568151599457900676662716831905516435081804769074751448960077854474623072659890020009441565509576042012929147057663298415890913732716784599616554652187259104520235665014406304421004853028975296019491613197197261248994565232346084503418497975562776684036839666915369436104568343469585053720984474585362005572892131261011729206789475781744455974668586033150952622188866408512891801821838838072921131007737551438422023907967317424552022709738235677205282965100667883015853400912558674134896092593776600325500120137970240179351451147307127606736868689325513451643620877555558486907493378127023412806523725040691020578259982488856440739887642389525849104652467558666305626652899704437026196016411348405328781246188073187556863345714719105606917793349348786794661958898757285984621422073910593659775082064698234682950776273776980804584023973429166217861480565288481957014824584180189142089513375354971997097661180356327068547445757997595955057666957028949197793853475509813168841306960256892671656475237790285388045017948238329479764840515230350178904562378260687126612970049946305371918640670387461329703994367753360476176657156314701568457657389617301513631620451999193260818343117004529828068426124998222216516397109062006645147522894074586680889906225471797088568947163804585903183835254096364382323152231120348856582571650814764214263308036795291191773985059126860950058545045179244487556011162530962633251885544014453593376508673251590302852901271850533121304623369322678628707629047530829158454693584678287113627392063318516316410466953025897153912581509542328977121539681032841842781450519498134637288398039242753824241963018008525979784982736749513304779579755583544965577298701915747151870044841870883222165158196953600016357584079294188926173986540091481247724046880760360768503567832228067419582172300469968879062308545921526849614815470925012579855626182645443934574012432931205674415820939386924388078149339118640203904338257908558109401706319055702629844286561179982070386653847173035222480451096733238457289754296436744865730370999788922848217806904089338986426919139615306612638241773549848080255273481410706667376691885339374261388074079144436057373657222395891533657710328042222510738146063745586195435750801531991778500794101062161492614942526660039607348737072428624393486680955031016470047492309614557253533266229461138801340976356038731601614276391437340859436908408042793333877013736990786558259769785345567402781564829044289993724149059753994001614933527014655176296214557160316317098576264553760747940149484852777512203666737553663164171439654988157938274742740750456336619286463832776856566002493298444139819516833279176139088772195867275958172602473843670197742304991639436756545034577163623744837174852677642085820527254740009323238107130676723764195077315095915519420262786393508761764450679282193975583179316527938590187182561750011425791059748588039674484759153071227452817372051743636095199808823860583499259920280790820676821304709659780510707851161727524786088832549428912501461531646563758655449954525324544847400146269103016812733121078729697027889005325732399806042191676355719687666216219740042032332706536210232735336264937159851323536749125696916190620463843346664219746952769721499756453202178991387013951874920156844648452718469276563389320289593251620777844451921172352155555647880072382833016284863977858060456516318238727127610379787816386629232760095453312568307326746619014520527436832798975437692264116985446321812919746691310095383203517697276922816357297977617424750550137012032369445834489462099432339635799032406720838878498180600654985588010739809866748860561379980780483113645725525588097313980831980325739088000574160042877666615070783727747573210806988972540931949701288318126592664075593498549688420347352721699633226935753925088953569427251605252694333350600486222534268813638562065009567881824536246323084094380104970808909842348143613765670420732737633331042027216670276338037659120408208256315445473972698172892009812059146832186681871812795090693160023886963504323000839053731612483519305962629312845878758692660114296683167455564014252869822995546081577231519878548299888093086142163028671672533721710432972866216995422479030802946851124571774285480814063223631669328142635772271817794583265985776247454116036890646021085230639358839978280456042843636715707430526903598706953470548547016216390692916389134705968252601939154403855517192654501114791701830541166914677715757919640158664616853514767912852724865464252022526243901475645771028415721338400721249999986602195209343025660789238551841115011848740332438432614717363428693777952824356076282903046983517604590439922766397589590166886255663573381566188046611507887400512855376710000150035184701767715650890808914467002280426224631218203150615703303624043398765515824929179351568314207226595989324560103681368035964174002576240208911803125346522879061656455662147019337029188173751503255089727452113679934782440371441229206642800139371057227272420919973897806030705494571034380110217870617580616417939499305014185845326725926691219745200719817538793751894400984977289997618245734228341311227976844516823505372600795775251200291298912443596986848219462704517608284459074594793640354326716832989227349803311473031714699925442917487755661627761774157144111871329992145821356965385976013933518938602259529044954084699224565498480244721927808392802379292295513606108026589250976716984772746300710491941407621072984928603171017751270080244535413746687727470880516893159234500083909520876428304072767619999508350833443012310767738369266407123595836508310565208241182019546594848878840799948133403459485861291573919444127008920216393829251138038775872131511708924020760150691101014245937013465915665569147942314686459158167659490161686542762437949092579104886847518920074208403706638487097859756392478936667791935959737361583151051380089865683634523691358250345301883271455354774021480324844515062700188330928070521958974376179297697895117009037135097773548337457427537305331436352074716066185076454595644317068463474120220576787347435153196252800869168580212520238575362435376044680777857410374869794042920836469225853576302927674158584676693936212260681862629572628844191788224369461978322770712354994377795096370812383203481248812950515283778327344075267683327163912751701029707058135735244907503644203864082556852743822663591915619048291480957169168508710176721384817693059755953882213643353500167797256381138031138763351447876203763497651072022805423335965826351752417317100893187788111243564085917828048931481452553523409531639309053577187700672128790942843706576742520775534456801202749386352100644382780621852032891952744884749570861777184466877408053408222333468983627766197464629525626959805116577901309922776484394696400007835382817989351573346877491187702662746629396344950114719285844381125697971282945352806955168842151144289781900958923665373293016796529311209325068440897766900086478739650361483875419439557763401082779236118328430109687214411829492204225090719976407097083920426865752782827088372422893059349618940004644240321538130422398870986548779408854633763986545239684763592600799803288132697578983636182954236902642701570973989135967897386998940838393711357886147407011955558243780196260667102986706186685839579226130786678922786291446584659927779986021537885958694797027039417228167052482538877426017234730421743510662002144377299876657831029916440624943031282975160510032374424806575092230151876007696717473347561020567519974409095449171683643932217711149622887595211459480154509813141934591464711654269065226370402179416562921160241010647321988726448019049801765312393197208394517273434719460661649897455394979133194103680777512752159073095192035117872643961835894589133216372339032888680644673139220764939396468971696091019909216010280140584958806079945335275578572684833439016403008238227423378812092118900258043012688644834289745411332163288295654355984915813250115266829209506877607490347243206347220937697808732214529494203380184049224419511482306169701954952714883629986960912131376713219460043816733085308421054017178847053380866734742875754606857600282054618769295877979169142784175926859365838057513191330237378919881087098172576817749478376886584205528215539327463158977468353916094239894689136859451563376480979966243703218369140270448842358191050967205937180661154200974099973860206736414157101161005581331295180660437149003745713887023070208904045316348175497507720334955694047394026229134211336223345333718845453940008220764992153674008481638929672630290076987260778169078492510126865687758858510017344583280931080105865160566663782446328325604631385227926676077138267792811843294006432906459104359681385853977868619262955635431207194772400644890991256767645399076454424222231995584752721302390215219397420032081640924320459288786563428440369665550022375785483816358488830728480632156690792366370293242191394250179397065926294139812896371713210689148634000689611824943622205087944671082064323457295991010332412017474051481429120697081826136820696888145618281641029044554840167480611655766210335938855580788694441446710742121232591715280205510531925370055024844759112721782921940220883872073838625793411716248597534286185646961250227560284155005624186752817250308449102376878182299123084463653209703825125659053564943542334081704934585150655553901840305291520797023719826496440564069230032614335339773859433581238577430587984874573798879194557966494671477430131809998936170111171740259604859984181508158876943905274978355984426361870320231739732320267467130198643318866403060371450672403974491209190738109239757182491635617699403292721668335168070520163671721601711446214629383480469948969095960339797870997400047620143007214648163204988250840749734617008640964538877432787744854233102466551005129366005588706109654968033661917515254085556794555365812900051756113635660734101967258516815659106288911852819496178908431373624661325225670821322476747080793032153083971488575559014306073049664528769871372941560153938464464357032809965567102469366584828079194020708565374413480024168949763073080687732812226343183294074847680924325168624707538245238416512347536903087638762708991593762451129600142304641918326186084244694608350435331583476466272742682110029052123325631672026039434492384907222610535661881127173316138693986337376912453194879830115207141128447432562673776207575359120941893875901057576496727378858953022314664127324222569178434954955145566686269214079842877720721298201593412847214199441987900079756093593791649661077338435611893443626033974869198767811501714680907637984651445734520052087200200097801684934236280791836147429504825765672360315437225353137195076749993973489468946055561806469159056807388041234972989239437362001079072588589834942974998850466908364565054079224785772133238198356643684624044865350262604325754692146827939565895718618100357481321850860150228873740089330367969594363687947680272048349403337300239814667450963124962482661337765921496684330630350242054149783320509334628536664513510197346620229749789516773710438357775179727494139205314950500960421585692204394603790462702439717248794767763427613632449601654568236340563549388651352052130420884084723143817499388879845600693985283013879397395917431420521897893275141074791044181641222876151676990552151871370446910608933900662758795651022906968748572862540601648874099135509003663416122976153441446918547105262416584182694732505701216596680670276949054730090327058677235112034297710506593392931783632164000220392735356090529937829660817313375902070939956515019070163144878447929522372867329880016201564435345063054684150172608758598065977063186753104992107866008724306119209803961255412855823794234920180582321938026451224657670170575625103165308748417911356922968362720578284394667611825898042510614641961604925597190694175789789983774053102905291529496955210043898666473061955630267401289382225022644428388498229061811876359576659054699669597775119180100712168037499939014809367063574105301759482585603317172878251932069995098658741597061785344435366185726454750626546747637765975892496145038155167392099822910296367617857793647635191947634394522576947555775323367615623829785547875998526055201252936309120297770743805871014613287873492453099598278813706393752241613221321430615350871711589159248730526677097262013096717821535163846036360937931876013078519955028974515627135353144762151600906530875790376915891584717834938573206958189969057374471912694684548907703080775492556186781800483256013042317074466829764373140833954525205606100935622477267562650890976622395403972189918620775138537941567305585984632695427901195207209812049992167631622564029839254469003088708722039196269967336001851354457695729586136157498778802503987054164751508860885668535093533680597434341988426242514198662169564151682041399555508367009223828820181412163502641864241720875493074967147694862347419899762709344818041205142959423794574134498449857261036150558752152796603011333999329589748791963399472851366949706263864071322747029127545751657927729016583817761473532996523575496360482691797327912914252429878880246094468107520291890250570815804460872587454185951474419006641190916283456247214143694308977313739996917521223481417627468182637684360906291310765125377733072890668233653328512739970099582653654465581814378127314526325527592885630595054311735502157756709521219580678376286986756883356039769601373403256389573730905711241771156009954120629895961777935717148822364567417611057509201615019493230442997767481282576854859823659265898523477184182674714325884246356595622368253259264695582672237067462088320259412538024852894830687488632046506503975683457920533485615165447132895276551236435018974674302224961130536954407141559895104619603770518948070579465089691469366234246397058188149325100341994896996561999530182481827956649695224730924098498714034806270384451501269849541891906149251964686871496262997560386662603154762186942535583209298461185176932768200364111236999339631190375058322703043706549186800161245500757642194610077833802913484747328951766588297780671733253339534929233564622684141053250059387966346939656620137292761291087612774769228906373705512814763689566614764591372928998289069097912412458315441793485152111455800460359652435524051680087477854209952880997332607070380736326647272698589634670861001056124122091115928716032606767664053240351093730672910011841382334084008147429603638807641811959636712586976951503970149473405117940326008067853832747820564794277015829823225501566093586271586550338162159234136946945863217138811192024720404312607665377717972407329351971926642492088699808394777905637770596553779789122897167772521568605503495023568847484769255614608176260428302121291966520801195750176858713011498424545749431685538903173051092469616932563817378040723332075920346522807941859473338778569127646475097941039707520535240633015784176558363274437912612423359768571928868593150599608579056512398713776561336282497673437238245978779826065923356947888635292042214239672482875385825812227821746175165529109466136284280656434654077618168741460743554089347758313858150542515519223962086028913196567612130218425690162029768286495798300733351149506800726833010059638947974413609494085450198634786310070593523433962066096225187041091012620403577146381107977128057056841635453135389031199351038275462515216257008438824686277502957202053590030816052428929029402994808579699980465896818785876014613343567048959569406111005110812253781953749378203695460306656470663029429268489443329607041899114166202226064937772457839472404432135667796377966455370073510178489332751183957035277869462889004893174343813669377468751989002214481802580169449564813819482871586469456274216467716964293507959358226750663739313339121977792756862769402683253913734451207055081902199139391625488231007130830737007164031379830375047810981005732715488091968512471370907662861303636009618721984260735362218474107402877843413197983144816109514507971044688762002769547790488071256534811440255205726213306921344621928383754390834776780229182805207733203259363591484411565576648741780907866464164863222978463787322550327170741107709936399164438149877902621645644077419226662243159287398779061213599551381805655064171059465888225646312771759693420249443291817259809167762140312347464991251701007255208090728345873671989861380700413238315928169205647820316970833650768556571029842064101048758854852310653671290213528495120622723600270449434590756910857061522012318049898625307810153228263996947458168381101013442271217409660813493679444868901322201317038976633739792854031383179224204303108960565877534377948226573636409332076683992209151081620675054556078327854129625899843670662967817611594178752337896924386984757661375034517949990203469370146051210062120529214986523812243367714895278585594351048557442719961639883571452275008974608333047837596311853954503749342782890048396919576868469249026793681782698210921683291269878714568919355165558262346989676655109397471720655206048642038214964901529477142233833132863067196673032337611140851502334164208349104947895665441233003002303749498890136372792137757511615025776501992716724284133179287654472761363386205056125575536031214070496715210347853792678068642395908662578067283152431385440185265269938618545326194604298416926955174555938435184176906394254542760854441705707020324626825585947519133711693055433699797356885343492565357067685881247706425642784045219207814773895139455285477058129364942603460104883922657672785705289518104275174651935426761022253940521915066904679214579472625891969753251512516029363851260309048865622277087354821516724657489145952862061100650417573393131336722157314015133789152437962185240506388247364367772968841693648130458107244536282799064538412790807029782864341623421677902049261481258460830805696854270753433562576203742274677232660092442935148322065755678287203653557101123338060489860309334006564447366782093328506933461690235771043278395181417174202826401641641128664420367216774553655663072039461304247562060285862821892467850867800580390435061989691731172045101509232027455473087937787137264432543230630553166245781418596154473284377404149157072088460986200524783175474582385435368497419827994191306894251302647704973440940574524247785750712967036249140410280613065299325357011792604126377093836996531300350124843512770816424512032048812867343965777498634069573110876383836329157648581571982385473361180160352149716639779230377688779715808894978530200339083906880689225343957386591285018574029314516093835400852103619749751385221990364209100597236508317046005325667388486777072846176881478068835220262500818196045376156207074107880555580252903324784855625523756199971974570305268746014050743050275359823021796027633351584785478214653435271130706285727106638653394251817175114917876164080725137423145028664197409839389122499124183373595146296623078390990113293614864004128030588450932041797323695038452958955762672324780411547207076021675963766883635717136804286421526149441356953525438705388994976325851137204689293840896419843227040565527237472509136126606134931323031544191257035188377437852111528179738552235914043863654176488803017364221923785101628674702576695428868816295646188491393468013364461645935028330528365935998720462954241634895412274573330580513306405590670319295177508495742440078586025973793843983088026558287229608637837118357289941294454656927893502783406304049844922985464372729770672614762957635772576353013463964533262431873697263595917663773863028775388526829272959647772478401449200712513808102785554459088022468395464733702788939955060865548760729662652470113990780080952227698512217145750026560749874485827812147830177541543056854155678158332815228410481193960901137457561055150331267690374824287187155694542017753158066541086259331063490764539851121645676200996264470239867358892424475403503230954661516623932756249258080335231444014107680623414155798349245626415183128896676016541727261813223024221209876083159827403257188304599026609181176820697883382521190726913658670983392585565275305620371790083025860375166638051840219166115097390094275605322376737113995692772090697323722093589413790023724501039485382393461198509828550241696361515917714186603066217893942175292779131622891765061013242946478654174227839808751905551921471859024931511739231539536906652748181894388631491160104997604681272219588213522851907401944283641716236948459988841243823792618857459940708643312168876378007903164141695734865754796207056447323284947664685086523095575144084688120057058866218916755329126619148126546796461184247270815701342665593929222954629446446190473631893386435914426185888273534003002153014673333953367203724664846978648954072612086415059979928036867601416060042487312604233587332053191634091673803127392317942350038854438680862077214987981546223804718293829295949378070012343822297737529940111205557633053866101048030756671502526402462483405065223891095277131941863880962060543188661108509856246376176815985118691164118729194610340251948842132912494414538627538265780156457427459820433682271333075829507740904152364317268574309795546375033047598364438832007240734695642879148615320963938970104404472912404812062332541117378261048367890627585478841990885218221336773941246405207115842530906168517117803764528533075818895020761413411535761965007566921070007873010399357605973714879586926178410242208099283741647140854128191048742597990528416574951208821798187027775994111423665977184301112115800595595851831078921855047480945319814940354413487553896988659660302967466366598803652109087577068573294309427700422134499865511887212914885771290091274857258614393877298771677012752605507851144690438701787425430102953652993065833443386906350833052205237994397465426394772501401735861688475609034588246535139830805017521275684024810957475434713203243230777279895695455940423414771139388826955314487355696945131193422296475769966375745587689322373348500541500133185315091180432072796884755577988079309522715963642785933328170899110617359387441187880303825412904307405663403661990271663536080703710721193793765273026184814965839942309494673077730638309694757995826560720608991536216836030395665058950726752795673594981115000894776715716498480475197924975395168056865109412187904358318291975308941006583702266946836040060310137935148259459398459628243424479728606782286653468051049750726549640057132516391857291161275681403112939255509085946444340072898599412873398674595071500846353452670445483836055355933645062126100404666481893887399141489994543744177852358127220889964400815883036228171180219998335805539021085204031638485312955472185649361369846074811587038534044000654097700757654153306790028969332798763816029323306431739908794835365161788916600707425135963080150563323012991795259775474841213878828242615523690497370827693737118255465121876643340352863417825433832509194205080101349915897637404932078711113261282183228968356239756273065615043872998670329824673968832752753998186400978365643607883855432423538327427922597741873729174518869035219388195925957488458534793333517252140592986814476111536993390026280094870020400443085945175257350393541374200787112785507865171832523362877168873575653956841731596184079002026054030059111137000849162380397286953511087603942422102687764144131171187561706169589078993693107720586057398851262588165532523386599326482049032014097546993843153097794439347287496151575949043436785110882467739091805427818799601944184480013579236206146875027675829428414665432648893574988408359130218933795879119982445185529967859073291986175387702884467041243858030165822324108465278523049012057585888434445025033698211486600338956958689714680315922784125467788950429410585057282604601650613389823426689747923459450599840687295269153513105856597265199276969599649240414891087927036228144460127275286799001006070816410754414128017372030437424039652345795500000546432308249945610598904036935019630459626458707632485916840224326884074242640820548446775888246212283226094820986466000116353269487856700398069368718939272995445390619706328274543273424794907408903033210564739692596037851812047107786096038169612034604381137248778350298019114130001514657340155734200123691453357399292473348025138472303614478286082773536408491311267446530800992558002925288352179912021473522227839619656124253273528321970418465371914062590880822573304065916293782931615065160081746504497205307535502137261142498268842113351497965894606129138250395905278372659708431008663531444227710381289937296866348924587276222115448906870454648653939820069441530261478346714253491335280353443638059321654886451804839078955086117497652812587426329594638881595392799985977181489701081226077516802393045254512311669149676707129169447462160675897118069080805558042641009922413525727778338905280222376483091890254264136738780610369957792919679145112132896262277148732977495950482912816695205462421049367505782088821441756717288825514603678742321822728938626655342454978004511301441659250511272109393732992122257509088846268130312827208652797612628956536073584869061611379755143846840707335362324889609089268922648414699111805247805293916293646964323259229823218904024530993417559341946785360279979317337866101124710437496264083289743975287693902742315783744418986971545070183613197180546931400503167823011693509875748757099084931076896622859789955084914621251267939146157754405665162969283704170276305534984804287694496962543893844623662901992659925484554959727988037750236766422236402482269291390093577743269553871618395434332477486109270634028438509274021982681753925861286747959069146331368346877915900809856418013542259567325756747623697566934119688198038267730149844428461759742344812122806592160247847431602032200489892143567269269327281357427913613862812165929167862275767141429979161776455325938753683233160600895816981570587539282929210758512972118977617794733698028271928083901443927721565007100616021590372335020992495201045609379422820803309830266405022949302489995691141392522996315935834873573435932809378460597985108664218711808958862448438709878739159448330678159723550091076583375034521341293434816268562288761342031422313971593246404568113553623998406463887086684484091082794159441200670174069144248855096095518266466502638519448616328380102363747333943479045218963860634877752303457936475591507729653231422630820994114586174940150894856725299997085649644150491777430380738745113845905641116361572865120332105501591890025325730529999896559529040437339626854593656467471094695345475942008016919207868934148576973754024669471586050570505496018619172228464454611840971633073392192424077604334656312487124441368248624535028397610816748140078175550453678516256709268514807392438685380868949720140007452160374747814217349575687885563108012229105175269153901099541848585887528068596581896039801981700419709512886113942169069414734390267909078292602337896338890742880325766955729214761917132980925944706076112564642308134148103687268529359430819537264272611045371470291626881917997823343643480597592349412191344882156282040811669979149642579646544180580854253117975561887904840777790369663811715680772765696585710758128220266247948972688177352232882427327172884786942248821463704388116992229656625088486688496509813923626979842295048648577516181434822618759755629669595464061536404056893428193468980415963505103731816893538543925774357733276050225652692761433811512351430881842595648732266059924393083909668212047434153676029339101768520604356310307723459064313393649704353633819969558591114000336410731956039961465343313141376810321643993658716428411364315846702554168951141788664474630510416610185211653412739921333189308317177431188479222832104145140617954095749521281332673095725373133491129069128880427757208076370608751823947924475267539758276150317189959100534998443276832979246994179618696571104407881921959516793216452153396031209324541948128075219924878951314575185366086645078016454929642452039682773385525111504980539338216923487958629377975969387713041625593454326904710333762936749388276236508054568300399332670477842548403592512084206209024162900650920650802094186215023874888093407716734938105691267474604961112451141618048882902130567703242604121297671720240326742455524510570989421979573145330774869337684561414656513947932010077250167671467378624857716536732977601936572666195985429931058656133939012335204089340564787898603255529334342262748301035195478605619056684219680575438319984728956317607301149187835800480912077449339354495064549931222337491990698687444346516278788010667916646823518485980294433276589550392792612406952175244926646625582359273259407188027888752319088695081976311768182290464442086084154655918551656458644126669164580961616142240455643512318466835270835014106637082013571810355041852674881766879430298261217226357262595162174702969599353308592175110630439566847688532955508372222496868598014685756853568750000048752495608017372615532314680356702131266741358341660295709791751945971659146702185468381765182824884185308131838092654748633851791706472196962601525721271432638098985232392995606188993964541339049185545844676304774253736475748416253668986817511160795660917128446303340358580771832068925499916535292273865562114420189160420955384728925721259254679770323659448104389822262141260655649157869452316472226589567036657989451347921398932473788196154143057221373502840570240730379341170008171013459937176540107733066637318191642096956689127218438543529454893114807206769859235294894474664973181222823345021507346993712050756771535446415587124821856640996549859808683134742894490619386259275711591739896962106048397108172502448851009801392107249234171440982192281320723904304278434139320193973077984664306065697373819939872016980010552003163253953387946454870738811734441302466262281552905983637083565801583028235727667472610725777281734970019903623632684543557020869610915997136116752292540543087138766968778541678286200932223903779782052543401903776754384992687035522310494021256675535448310556380850484193029038312296856048113890216497565355483577769277470399872147981600484909973604207133612499286522116264620852174418675655744793748263416127106218856591072807286230784728838076080706925028121970209409614613159129304142676123194436263201046743037762191679606264860816788645826557537803916092563707373725102695077200643263024096700673984233067536673417145660701147818831051355521207147945033740233215967833802000301406701245577412796621558597581855169670789154559099615307394651231435963630037435896243560757621915501222465707404695746729942552113444600009034168168630445296630980143586337547255946868289609617818691882619334085120327153414741244458403030753762259861504087049646847150949616163673024778079656819253333270825940540172676054275793918620319919630352057776298142666144554404830419502085467816755601217202715679889448505435703667023527523318571923109527751698947107747284824306495881232288694586004924669465846266570643834798600971760334815007390452060768284767647286149058823804225756149494345682015086615209588295617399444324704063557657145236164863310266846506269516965896935925311284851816230814562371593102940386015670883542094850910464229538814142938056983849673866087015690034983937089059686514625647310150372909759172531405367438703467439150314757521657685201934798254092945284962310406686796098548019615683375629505563318212615347208372857129188636308893470152308469324803806617787085158262241952278250781671594549058155344524833724523067595277528033577008058570080568453542877833074566288190662694298723190158823975668336774485884551825010452003621103495953385176553691558005529969556104900995590084435120344134022244228207919826791918752066709631445722225874414722199328710614623351586923796169233323380149460473798588720989725211642831762702752335647008362960974817624258849134711505113892909624920459381000339018796806274493583238596110743871044959741216989354147411518482484653085111256223901061388624502153954179808620681113016041505279897000753941354191723624895589517371315022785954961892315714591477504480992122537085812503172344731612989899448140875268056424874121917014603564219035996559967363247170940245897402884677920807783573161417834664492456423266082765339127735558880474541362169919987989481783566565601933312019909135455710513446991075833351268111320816402782213737275457199859038495819028842036085656076722924990319677011904465900230237544416030099156301156281484701337727129499951186892147153238065314081638920709002788018668937223370310400477397068935711599555318048781113512323143309844378324862556598903183277948847327038729197998445847143276935953418591090790155921383518336481919314197941770733892141721823287862851940566973738507377395517643179312147088244753966177709986198274527463458955392891270534003889227829728815883200116162174813551002971405224642363930717733819352744630591227754924771305094454202716113057582394168520391319264167720665732042657218765393232032245391981531111287725302679501088434752170230625652355730311124834739097882986860730802045594367305291569177954248004486354952503041860074890193248299941471865483502471861033328972896139698701063777522507701531344875074523192140627198207244412272537591158511133155099886765692296406942842445127800492013422761369845681582462810329301383375199514853423987210231396015916476982283574960727611463353412350239868941249770907379710780833295409569359859240235549842828754951446893345299229511146796117416502638294044647833909912172912963317747992012538380804045148232767628106288575964466702263681799556751691321853063487380069635330803647487497324158333302132085406903415553066842969822508623611789529617178314534975461915374585036176491134086682190130617093020123385003435562789647037365718243217769656800239010096339743311748519011162218337797248319893171712005526363239922228698587672470953262043887538789882904528984388080184540240173058806025819558053316116765389132928362807130155742183479259233613092667785298175033850041513399292029443398741266060307805171907494236876217204223309887938614899062180008691733809583290061002942187775636638137525789852603969664332416733346036499858250526996377657349738907427687042467099774842288964980884266374261220355402692249799931664001009250920452706770378405932275128356625069030800122674151552163448022109238002315369713937024376531157900283560105097695766935848109779828355168094680305141064643518316691993243501805196443092790418677153302386561643753921212478024627716491238482066435408187110683601350769735367044104013602276445481498080643656006998903341713902217968483941668295305085561913957421566391849362513361682893294432622399326496645545918108184699567484380657540362897561618354211571488757769343212729732870554064680218184536929370659893132006728188901329583949733085854189293877757461884385072040306886548197684858027402359593564298269557072312586335003287313008731512144176146705380019491326933328467855312108345929571597455935534671245829361491641338421139789325264298227252968818437986995682722501033899115447734848540525927896462039296997055526794449935912731255509530906146165352077975309076847487980748638458417449565429915847408466084891463923300961988939758971148555774771259482936830939329641892547769615663135819850252293133725855347690157227935846607026712642482616656687786824240498809202694779097205311245606743851863384655085886260274669300776512008248301562383324525558381192229676097734241387772893956677866974398643486646827605662412638698328551765300492593025597811329231703302663308542357640150325885391957178962028475318875129649936211473950187464739122130488264638104679525667201631824104938833098902367556989879973779671457513601247050411895799484686732918729677031717018793924388632110937511453848960200168607808938585153669908963227451687078152741661595429767183492947344260041762843449202437743767233952121743473109471727301667432420255848092640165890210375915145044710630516040164412074781526433826044515840821084710088822047757843855732548756918622065479389490088010365302036366281738701823343577492475810181946629711155011579774207608782248892551894429229150255144576892008504522651086201880900287783923925854539602670868489693742742823577984065192630847630953227912405859861069997912660149845171165883748072352649668197324055352578092164554224128812155587910879014610312057886490421879783313568867851372054797156282475395481281387693163654341857520351861198903907843217727289448844843829240998039584304238582002559294649518759443789374816412714617276973427109326755042020796902643530330812512886212072948042201723567087152578390303467928010640580678024141571315302814041964111521374556757203207195332195610025312496813696227419170601358399185467121968069014228064202171558136555330180534574848312302168296901213133625259895038153515318682912703659933714785199600048428010194236500095034841690626939507307452859549059000634108224135155876706143787418044313872683409826214187880915174789576056832430408431191671353751043413622961222564676362120865070443579297899567873930972027149669019990569867609535955936988127735280137388968064836384252920702179053450529614349858747794784574493685412420898212771073641975335700014825875959610639436588711252936363423832388188495319899320042929716633513302696818074223218128423790634697747568276833949317932081797287084450443711322565127141543447717356520111807533859592558005991125230952328298663593745034701160100690141017076277308994652809226624149814492429728933965210612736226683994408753002629331018890089737952164013331642567624500624614801385516742009479841572375899422869036777005488412381543458521143177836938211881640228613195722255719953114252934753675650835581060804649979281652714463664821962566478372474305034913633868734476116586813926442220552041183737325915196267022863143768414257366033618331705962970174664505346637561025057485858277315430653908092175397242644209173975198888326001500147841080876420165144183251866480046223975410781192465668656610666678169029873373491981841150990744025829547045498506654249920687775771881069705139294308332580656959146345084943192206785705395060880832210035235801822861289083257193451362994262109645302532818620676258940255829093727479298149015692978634549914257765864358628926335151780621877825293190042794839234833042163159290963559537942730728787856705008172467597858051544647883229528165152966212549675136431428090389824257821581676513690833421112363239040361815687294218115156783847643398091691275963311935028119974040497394936892052259733053701397911976814539334221367769885385154519291425452369637457397961024210872474158206524193580202303500938844124791738938165198748550929087191634368595292085787856856229079394718694473392974158771726605471466468647921222685141295203564598605952033745178437708007048357581885180211693412235914879246350135876827866447092169778670299191361200205936870022582325225603736093216806644926692739566102473694117899144031424116964167325609694296616086879095853299821138146677891544789436079784274957806171908862514498861922301018330850639516684864044099586151461396767107641346528689884229677256317734218659024016067147039753333554165683743559907319589614851259679650553257081088390883163717318764430888271863967031097009031265479232487964346295804234871218507042768690379364705368196528248364095217954623405646661321076553752822652019322980617800571953878726215391257625279912580396367085919819598283638808875120742829511238496462572884757817853365014818837003895980385742050538619300877316166923489318087729691311998165748833035007511772718104932739147506928673765098512904856190219532896246120124135516171673694823046036115769503889133386473502706129720802816421364603689288347375577346271995426365102871801761896959533564332266307812967317692634291474064561803474649779481963812075485000527112941219797190374235314633066280359910555885784775307484000883616575115173605973713550194481830267550684968040445707256573478126176543436051257873657868378688009050011935918572530065894665072912340854690883799697300288758746043131328149390494092266057806225943846213114466783292485038310715095990255735280506490513946069003050292249754988406154993936209241744604081601174816918950761046830217949374009696871063456423618378416504792568997250441363267425955707938007056031261928682179445707962887551425767707047790282595783373598342602702801268839313615372446149407698992696895867653562651421772909294924737569455057313728651743955355162975108815901203469938935056585848291423683124644864040272840610292805425164707477938003446125452779032952413808022147152146963623630666811335813622088714996823631247421753953723753713788679738204352167185706614019605636855403217166710378678130320449240449160883751973844277679356381770496816496874415432393329741611874889799978388124586601854243294299694903885711573476408055010210751659900142950179961101879402501247438243246894609166368389717332883234823112832020732384037944806168502960819716548623891514012402552343936233936963360188144284005109666127010530226067430127947385650020136856289903104232708497434118164258912411871168126303653277015855815550576203919730935625253745819069445962208752782955430664523839303831614303604249723651274934976489602503907099778043143167204638256138965493950289227441192714582941149384009085396771997387347529081187068452757307443659061141207307840905089326243545441791737466338164806142838832905846264598472699448427879519661191357859548325860100676730776903099447154981666087519207841081513578824717691678513896399532268989074390790969462713044697896139956003691750920097731252285987575806438583490355737907316768667450828230658254620923570254899483871262131595506503712448452438853476536232836686958568232816114008398765231678996794187047206987995710963937602637625577236707900123771687979979785512460029863884099080193527808204297790628708372081111096881231000325902811034944246161593153042757680323552216149657463064469827333059130486526436095213974525291894634984089388980579294433447127148825412615380323753515052818656789418477948186558905796017166280440841855293630997330983932592338037598253312872137204405109172569570767940396970207795365428627667506141740534508143622792201636810281514476252806590265569451042470601429341518774899407139918135417084992882706599578090943790258040217772994927283499499213692514438864496628627225721418477719018263291781163251501856586079019691532667723776762434109160081715952357988220746246238665054891165836086517356066925598220782168920894310533640440413844758781458222395977749449073685478392744607811310217504526627862558259280511150718745905191737017469588157199767892419956267667438616194247888679724068279313933250881047976244037301780536675042168317771716032681144089970619039148333014349507949897179134881076587363088909945512421408355140246576954230307691722756277469846562479608010523806175900985043318205540579349848853957626576103093288978666347715841725360582245888301452612821049916110588575878558287876887777624427476640732652862602093666430190786440450463555029433321508186376098223547594574374721984308692370527480331605928067049367078246143408063043915241520813076964524116423019917453376191652632454115764392442244200627418949884703735713307903971231983967004716230833952361400984924594304384950920754499871379434111049136248904302166593480789223738641369864018550530436813302966217398002329531408209982244330660192716026539663761221251253648501868252170377145310003570733207236413218541728093564466229557429077348241118752310877108879247712807496323350667357251834472151984309976501138072279674964179931701486302287460753421619987006895736393806600602462370651304068254365960945420211548482089105113166863456990948713089927876424869280042295184823507232856796156526164123012468283825903036500620836806028114393402113139678163686338574450874891561088313438563914581234659890064519941251719657766371890148582754069933444272951536637415224300251318309103336609505750672337609246990131222792620027896567394451189517493540905703564928735035909810821905432905690059603859568744690843836031631877751869090022652161155400241068209272636867377257320636122376787638633403289306514556687530354310673917281530691679112498149118427713488522673850783447794892857221262847032543720598568337692169524371194292583613702520529477414087245567433651454662909989476965948215162520275032747812837073887611630189824960851207225972545962257242463570396189560972618745895275768029705432202301133477316977391900592731478795816835115807019973877037174453909898444083643613804158311447398081751569540763670883897581922619117641209022468926745055652013598097028480078463361114412309285392703539070552377199606628584511610345541072322398434654174909074346977046938039930492067887488435138161842834454792041737113212407053572647490617285676160730470331069946616565807705927243472226435593385234618010309093964247755097697666874722411971237477068838132148055987667491555536199181772450899142971233284608838969401320637516035312945078120914088382165551462002637911818012284426846140933823035035352384157120344614031104918104958605863111489609027056023623178688551225752141673990368575104724846725003129711153811045150691713237759455898499729262656833717990619169134287690096656613720569858473238558790330557634316803258108060256161547595324039312752569245803438761087274582967011760114219704354947914904810863080374518582408337756625375194330058636184440831267381725991201254250519442855832657600243448599037637759073732204967568645423275044973845509580325273162842846551535738180377447376704364493473497108258856482630965891342131349090344736020826652250437821715297057531841964767473274486304789688849814125970275014764165506012740312513015311407831270148000612844089344053911356800261213733883519075512719634767785469657954089539938961408753148265718313615721860538928212185285593255998375924981474307960881991207203628688852922933586101486356697155304040540300843604457612355124582730233774312567863003453779152975092839356736141998023947930017154207958764478108829914377518431842889656960644374073352593537409334894745958319828275557886251517599174598164050940463043181481263480845117851129943590874170684817013106111188225815870050265416185857243048527336143632657946403812919393333804285022621904439389852958097892590518809576202050768136934146138609585299441084766504604332073057234620595989812215154065572113763379367390105679944489306955686750011483765998426230017456388883553722910610537926080227055625911465389103633532393591812167612423861899139935634419057736660753326867816192008492995977071627818705241978789829016691319154065950846170701741791331008247092123766996419156657375206708474405519791661728957512867074959162445949950306882951680505212150079897351427937094206713340631139234313357664952953828510771593936983452903950080151719414399280507538659703477767718642526913361170871261848884345768541908991599705660474426445292437876212904395770225982788851627950736999837271889335194460491346358941433067168397183994426818353241617408051419943400109150342651976074604483325580298719001073872231315110515592857101619940798122957454336683107441252433329020419440488663014715742838778363054324967736760595862097852490914219322503170559598824405395798202874389429231672580788216218152830467733363575881364328356932483989265957195730367289428989891001617839542332723006426146645505852394163435857724460701035753916220369683452525414845314239909174213905357679763226739862130369508832344817095674018088674327284244744521259498474703884630571660897473824497861555120820631482225829761657762724942730277161512571461898195750532518654958297653335959355558409676828677316263741523681415434153588328058398633565031791089065330130864572143253574931392815525596067588896722161219604446935526377425207703187319860884138777708724121581663237704483004898621584370168560857047875390197825385492312625074243408410530082267803750894402001465072107688122513320673461896563817314975723210666814539863124341599144818015592191123478363786967844814351485202420802016746792721127238343034582942369419395797949789641385019885038737470152973426455081533464503298700655219641852086830440419479586767915184493444957278533792207352765262348039570474270630532925818972441755153240769526645819204464972521589514115281815359913534608209066646190062884839084447548499110185703516936699962195208829508357723863855162865383882665848840614078518741619019952420397538503832542580863864652796138151344598441574690565734811642580366507082430374591988059154434603306628938777968163042323591160189382906146719898027953493692929733532953960872206181772051761833428481074122863277447172548924938985663722391275641248001764491983146072130776468727769493285719354578139864082990491168140536917208423904685660940428310021203937546572028636559851269367427085940323009709978929434792575393986088198315290607176864155846617232195536734013332108640765742141864868686896966255149164089320774914962028435075503531281464976572946572774550710441067328500311179713506770369827042434013633595211162897152771742762831203115584116374723767008845043097409960592467115091905351535963966435998318157591021606349998644485974250601833380525958471380550480208421060739722467899650644985657334830385119298997927682317696443449828937824560332130449999445723597674813610952115715038109658256548264493492017773652694527379969637562395534746390042380003467952935578428363173105845625204824560828071674102246271526581190574123698128411491561612418833166503444007675770665749956691949491379899380479234440527040986037557863487711575855885428763847930459526981018259279273735769486855138478975534800099563581476275511114210002959583408482644010093397128983965819459479000051445503987079955207196111271951617040815873119926882301910340065398938611610543696525988385590001719346151841708121563302270344065188765326568784083134580045086126046045889781156138254523211530974085787977650566436179743383110494882325170257195645831007250665467534479886608599873814773604412084162429998213702404670742189378029070989792882251881522705205462764105456278088077806066522738482974882820465086750208124149534268439922480616151289959814072237304212515645710096447748805163583292936886113600627765267617442719471917899272145932194887120538462992571294488551940833228139325589375377982020429607531096802582898773132134444608947753871537671933206322419575049319351689976382884488681175849671179306564729350828392341816359109488914957421165345507290841427156404449139969147728767665915451333319461163349308898301372641103158274142454844813305822266145923437966530645280610409876869608901338116075190587045710598004825063384954201205518118730594641767772853950679007838693373759796021479898450160465587843467478089800244469797904758064414971556323128991260906155174166187936666606539945805856622542440581364819158080667140486465036852037378209120357956757844202222381278536184977255591409462964428913513136173918969734405969425486048074397712293089923398603445352743177800590265237345109789901910304670725995692194830397211835553347142324159713406686437446084636908156972196084773565732806314328286328865675722871862701780900876432042431842282381639406414846090779299938040149240270280746683681786531084332808939426173636664876336290979841947939515100141439965327935421479378816179986054156469847432575789632226054182931516696856326715779783769776755581847175421682793667439980424391450857495939890028996653621699162845083177595610892121615987169319135547093881424293472557411476670111961844814567560927147472772734800389169014613365478985360622523755629893325435518821193008365911249516791924343074347664728450210486584399454057564550520972213190246940688343975617088141976406102669974557112194656616571148743430783056902897068599506735516223443905175137081012272184365097085982839077677672244153513322646389650721037234346513808221563019734989575152101047797011626276218153024330157978685869143659924387077311794647917546549513383563404994993426848533387465466840642534961862008648702770219365259762926368892522383634475820534902327868453772298534900485236422125131486645247993093424490994548874409018956749164643378165741026866850480797712844054112302106992881433703075153698434464955855715257471581504254496882391706279442338424226856775156703320581188834771729635100741359065643571478766872760336364679843415772369183035569143345207250626183726605077397382315452878935440774924417832451468552808642776729351393380616810403890874439375072138790014330727489397253160466807120970335477595231822327164283244221405124675827065351986767289924095515978855512490482606484434492000614805905758751948149675032176619123308633236219062303453995868793431312988107277833731080376142407349236754520243398654140020483105983971442591660281650999574752867194033763876861200872976594107264557102937409058048684215332404453864501974349761855668610014414749218600383162048098426872368989328869024571600304983599187501516331398569411765278542017906944342548518494013455053751731269552435972947854011588209848753792689015572888872053862637152488263037513258235768151862385861480804708220855687098256944603499302893175550830314540030287739142513014298263376139358247071997301961705671695220476830698099230748516775076701469922146427237651847161908761381541078102206953963628630816536665000718084446500766969736698027528585185392113195881630903048423642119809761163550290671727989892008554772853940526705976907432553721763504540586220618409964125473796021163945818039524428460643943006590722444975382182014521284906749944046776932971712649962272987744448276984121357696819591969624938987449540991941127254560604101231042342878474726353045122506632144452987851938525125229365008599362420439081629437860733376970823360551217940079295546949639291099021164660097910487236166656958326094598824466900806546569421891978665666053059104817224413847188742137242136545388746657545137636537549733220372921690068214364467014721730552302659472677422788641931375260582435942628202631123408242178672253385416934358013516742585435411125608633945318218316122813048468900677003435775989509988662171906620960905067686532143349383443516891446965528513970759464241643224112726934263678189113317398767931274766701634297402790837117504790273405084829499872365832993926291923951464190888272177836085144537117910732256113694441665307282886231260269121437702492216449625662530330804617167402518915621541220889601341075184649380292743093342583848362031239154109933139948306149347854504129126017847749118788455099599294361845964352809013957777220148848045960937814401380442304335197957395007203161096424995118902944127147153645014675642031810481944149955056475788570773602755279764767524324452125010056057304692477874463511312778613813163015424274158041427165049905727678747281846292237138165751762117683653253100123562942037179273992481640669296065812893684064667494351265042432609038692326712803163899415369451368643709919815162932444459502274297559881227402967247359245566887085905810721475584064423031477217216239901729758338410635885314568539671702946543485362110985588297807932881806644141796245034689859923119856014472355448779194989032432553238911527669503636484976676982035089384312092032141848009769019328335605108959782983151050478470736516556884896115143728929949068441458625728323024454070498376473884936027506238684356271480772629364389849054268140031111424605836631068850036166873004429387991027659529995050347564438972321198299459855859988394527668099561503284108109626624328607183007359245246307342044067044912573014514974215828117769922176652380462892003681562710461104485941349323131943603687101051908369183864813111575740414868047312046205361350082240990861482030411138230808028976051955267661566837448384759526880858985745167152754948355900095861406297568636846607252050830499919313745125605791347063196507486484669383484966247423908563742292099299282905377386376164963425339296494242576408655527538219385776369726555448554663392344198078241194285597601897735060926200879812878668852370805633441161487988271178182551489078744660063942965035274819302758828635101638648724206923642520756523703322375307917833695866614659186989749232638717015309060379539976460208251112517101717520745984401132256245856283776568343434402438151423264571464092967770653496788295992827049733028175999617027671621209586235964219647059819067406454051542077616017134695313628777930323107692659866645588211862458334900989420202704132334333719594032765217656080984391888715224323678734963017640703865547788982024680600693127089449001181667703827514527065953734648213445943981544752573574880900892722762287925226672083320072941656891130298937761191799690688511092532779981518831360203177741341009061246639713578357323453467308825373403165818278946742004910214015373834432057020334226376854292572309085299608827409322232594695384304295209362974880564472130820623983868509672528274109272930234448208375721684287765549390297899682463741837518832849155010709734745910073180750333311520779290153500953098745671745195369836930485816440128980507069115153905805724617822548210122023627631418169539255109400077586665653252202538007687992785281209290410887353445088305869910125491325512274574171323037153511509830646009224291655824183711496380037329182924489045595389821311247575726872461876324651750200831965891871018209771576264326288774561430254249803138261417278352523799986787478283410810996246147988660186265252470963697159403144729426896127172325332540010049607152158042820069486636151048911108625878708423134763403490215078494503519927530977507871370575440773366900878271933560794556916399957906433578602311058700069955020954849411011869955819905415110521576858987081858916968355926758765026230652470138116578446579122716225080720975757464745351451342615030570200029400113723136572350413081584347944086349421697658530463901732756284282041530290033758647259076660291969641862357195570017551259283730523590656150862285497049362350923800502928198899679694304497213926587071387495685521659643197597625244766855835719522918585398881620034013558661105930694701351888653606488827456240282395107093457592570765762649862956906109641462356083037946022928885302847630187712319503168159065003587001460864119153850024915743395156038553395679265077634371970651204510385893745413854156051344540813729238618306999742437630850874530356015326164896664704974379991392557072192006906278017764899749205403322176826511479675937732847631415746114869007940468871101636286072835324785723289148196367867567096343055364679903739305180345794880052228519165523938198659894875822223162650006591847564128264077920533048728553660549772941330086553903538742902327993998086744864347422462186877178671340610095626185238377755039861117731412760022441279823711679889252444335507865475586885883251079868518667003314941812908446671203354783968962141309828908785062823106940075321001344335240920199704123557137939943016275314105806243685199808851253596939318488794157541815635542118793240797771818354034707435347488084922533230713035398894774767256555260490149317453558524447585729830771559827432851104279752727145915761956773222826385741599566458712751663766394277391180602347175025444325937744415555916564869002620565585649846021551905724641327348693588250665626405925350054759209519389783029348741595814939044412952208680176338177710011168929526354445548280848135165404296069010595502158811893877793211485326664631628320455909292290270703511209665067033543627968452001188181951344750703782250734736689570956859172554913783297265221821373076818261280167791232360349917240511244258956338296063945877313649852935436443401162547921175452719907275173979350596098613592143447390845420388692549358536289945896528058747624433721296644012395940258690211872472231961341267907522273203527649789233044982087934409475268973431144198289881115247896056190950748908091117921936038536444342864560760016333692363053362416460456619970221988113487934547639278727284229981390831431848309541564505961906827080782040832819669169935814074785237339296813718853254471935229204087624578331648794833619717274846568096071958162017146412976761474579470424651730237266704825801183951110812008896498084569425451557538839618357414826490097745327215111255159117268133109561388826741962884840709356394927255508436898943401391837705221559761405709305644656934799586272231309876427024803620638923354445754731392050951000092740486066099109527228302865484577242879242449266090410603272281321032609814931094293459652119405501870887272953338324948555616124916443651474647164667472062676137023049601870783872839582251555082664298797086221389450016901736427720600539949601775568157889003637330994967038270070496814572570455552012695268788333803535168907996812609722429185871619227118146491098777268443007481649129022154203849363502222398780031413675382501059847892140704661340910920037716468882254151679572777120442681378987037326029141593001639770347251685049010274161988984403547862962390140057376612552591607861995157413697402027266505396782967252420675205017808936369202431902567119004971680364085323693629485844806585998055509452663899942669304830307383021756616324866187211151857140031895746991138767737594138220290685757057754897480690598457865611114866561849846180727819843370152503526424570305513340945733162398336750357095544220477969311784980444490997477769694490903349850616055448920419697765277423628084218827934440577147027278460053747251323730828976538421301380472652072968725616495046948699735645174285945019113790500745533865245531541894856957335030813262319390761433215153842900859992542494239621510549185973338453393162443511117377426909534024461124037095055255660716569143949242228282921397002072857634657468039723126392017989325771674926413994308726082798878223816216016751214036078368790921903011772216273162155948573069735995958503121909443914675859207227742515460910077421168857672230118080389417039863229535275351298644039088958791837502928004614943505243574356900779749366514685869792072482606461471999028938280890885258116240825390484647741284650179327486637041333781722196226344469228445332914934376813768959179045292201312408390393071627209385222607523889008080123490325658603755912268373201588106358785225187145316822204877186790154815658562201405836827667782658150379847633289849980907043396497008235192003715451632031904197145319305192719640247123938526533376616889947818821717237539234372123419085067790027983062163248180449434723697816897741478475483070854143503246970779401288072150814937495292059499149178471123921667371441791560569273761715161209206192383159088151309306491462969778011124370495448384354020098690861404658690278839179218560606026193885087815043905660452664944291809064072350963490112308893265649890304938785143172256445017989646193404067077945844441721549133986267385610339164429800241333591249073530336758126661690749379581610560141215383205978722980615172507422235520356829533664904858527719527552331657953483475670246973652766388686771732935392405492910951016200423063642390633877752632908373251615696659011698582265080619667848560248477691555049668534054601934206048521246334204254665267063076140692943451522048447385907790228067264690980484964733752396435012303166111915671587608759730738093873991897423694716978781058214157912937154825929392789273005864362377013010712371800099506153522163220290751570073743222791875358890815765811153763811638978811404906089043589869352011167061409340160608810541912405988976434341942015896126993784766204164372908402099403450028700196709493764621670727905081758387969248236447286412077364610169151819391022567866346980527895892666128861868386904319344227929749231069828223597374592392469388318757594451790872871636456675978768118590556270165337870255037820860384660806896968270495656318260114372411543124519583229657669403238284261857616326307804845471682477407588604264870498665536340842911195033626477052402364234221393787862725322660792003862599568259367202657347353372720226631287446022047772714852611604558382756474800340151244939021750386606965141995733564884774042906071794758368327227831393261507026374314002931884577157505566352199916787518518557080115987602844819370053435216244696910569098191113891483134159715450130068303882781608627552101326214548336309602086185591518190700309191176991686616625399246448152860306871686287015546052635351567517107521216291426657299533704582275041008131022932552369676203935414779359641340919223746180522218611275989993165522591439501489665279088790397098095203388184424391579711491761030679249826127049658703125655607409696899348154008353900415472398567444581391135463221506183899645785423328130253575388659323851496451476669462237245666866110299688851995288237368034426534787870380114124836261689603091409250447549021533483073308511833110309255852211522312355469546744124930830378590976326424657245647429945613211468925606582104909276162136479847167512880581823229834253311462268146082412238709883198971646413000395030747663979547118749579094709775331245740222458690222743743192794057408515097040839137604935445348619606782137394913539636371632568335239089120190139590786217818738004753539410866449129767671015690960365298879806550067695051546742742897630154881742872120306490777829312838932935511481400879711584126820461268696094763754885774153447630213118472650372201161186783177004382190530223515602422196412272466233212121709400713913973795486303441987539119119076377649082527841347239754711280947266839227496000578813522877069626563738506149733248241553179627664861000140657915586786177265984457572477041657212007387261169015665179730996981670803166663965315488380126669371740556408966160257425418599833919602071195936063492379595464332487135389555077070880710647120366724290454571406894306628644487559672776665918496026845802053945721263966418140917063389898063604657226821779045388589104934403289900413432330676131084396215740989540934306884546788770488769038912666162418598169773361303098967325340012300733331464225640640092582044178656726858180779112822281660520739244636323923927957261114328794332271821556080882647009125885500500674530134253496253887328452481167321109869606646132657590844029789225311852899449807347845863006086817268494904497304075291947998124271416842819568743399905816487773253925135876785980691276669208682403033069805789001624757914434475120395922321205911696624621388352319144852526410898920935782071038552338539118720909910741485968913765965288924482319130527768394109965622932890418356422057943913054246550775045256962153865735485620437875463380617072785869245765113647478544929532220466871764251679144556949085695338539903255620143660703776073539351974901206961235044728914567498796626287189788859674434141343683398808469477317806576663537541294687756286276992515550211013645043213782114661241113668959936585753353687777273603182004300403650985819661959947738208625802352063685976175497338984257595503342156473191597404008167605104938277672194024160280554136060027790739551303323202084161658634084040130912152991233767632766636286750540173400671957110853244127919241112349689156580244959524664319974780992552699577330023948870297297326944720877955827136108656422137112827772617204393662324724431457319479412501079028083219257044963742514788924520713988869282585970837535026731482848652371950499881686407664134790732995577570993539921086708362524868276477582990667878919265243533590165178013878402987471480234830176923372673609117142260460303320706796620409459139724706200824557027762719510657930833804548250959423002208399331847527762158591709969917553922130361353462890421375205088309266818211542278919837055370643269218040822377671067356926210757391687102893685888279121249715187676604460769005886252077701820137737152574372038957053717808885428440097740031940721591628096119303385366640748084514076174256991489047656419820503769714270274740838968637833373312795703229417810298306373143253587186453345159003799515396539043306914081033945150600525895880711547313904754214444783004152188612054633776300701842425556811383678463589272455410356193931345525781024952430038244453646791360174952530946084498360850324316200210859535513972832416077462787216663222986654590260288652986488576472980647739004776856480971476364586943410463718386224266062435021134036275635386017383951054056293793349202026679720222198527690623466569897238188461377559051546840696446341142090163800267111297899742407043695021544426437701839819867376106024096554457679657031452411866213334030260677214280951626022138532361254355407989519660334285306871919601245385331976562523819927757817033408994790619037370691716093819149367141163960837733322971065018941469583343539829624089627108591899195671610531201859635889956725900004757619651806998382895214476607241798149561768213670676183080791020398090954356467059246403563280861078237997578757876568750647318951169203352606781539474091539705080161069002962381244495874974647689270573005455146252788328554329995686200993518697305214720575781206591264460576321610346692950698739567628293919619512755352884229925012855056471262881113811776408116104729330781525509980685044183220833529861422554886193967826379376723836900835574331880273794585150249310492909112809290237104975522834554011210577627389841755966351511063231257848144202860798253137771486997751234841999185851422165877107114737919826501720904119940620522913915778519350402869906610764405852562746412361211606998266064359858199359771616390769526765648611909975898963754142783173490963671844145536640217687681649327700559850857403031695022623825786006569350166974802221826373227690812206606299558521882063465237941554382741846286838131853389100899939838337449126922013604336880662290808315028093747725817610412792481453130367217411825925189069233710214259720941141932250273882569080542549366075477141916093763466472803815317789704916766348915329062992809891984866868869353596065074703060973419269835398630895551050192457674396436801742558082860187200309427248345846263173945861328847347855298804427896534734351555084980591520917828005681647874129780846354748866084630841156023333225940193988529824824116210859640900525907598503268562678528709227412593524049153481862610026901644847932319706292211020603400092229127548528669681791393241872759012802084515738772950287053495614331199028979099910159413898263790572095948917717264233118701307905463443769888025165898073012296150489281079219477828725719102238753399164911192679548470802011760141829980928205941205334530973614848049460476081006903892566108144185715598245761386208960538337775076408879997803176855998846628170636611416814738309844917064677535507598003328250267396057946938359570680482977804556733862405194457945533096612543206823148500851940850645258655532325402823289334968898801031553274009752247939198546823805091255975944389985754345297843862331270769037882989783483449048764211278657371274995330358046873897436597699329172823115562159893203922983560721791390154837439251792952979591236038024501065179303159963476247064545710445414658753892631048234230589658719541484282928053873490429843042973589794826762792347777166140404315250386641174075351837006873807684526322236143577024569058228778680815085182400324367883632845785882455328284605638227957018615886502671581384093336933288683371120591866412358386166259495549352417973081307822746490518264869113162232709278744526711443713037711097011917592221654333445045299958519039242161766008134241399148851341366765469718768305664749726262190715867711918383505877043021180075191345613784994846309818927243994799179934015655376066011279034501815496299740967118963180451007356297709253282947969904276202658868497055490458065593312658024845813709692517312801916149184741200978858667897968842438249967785245292359295972439936653037826550690276920082202298268701958424417764643266485504126159173226722902476729102102888930591527988832148604064942598917382895215126695000186168787868209658814885135778695462356699678455470023401071838244850759784552602792128482514829659753193728929823331950747056928409791110137571195441294188320092723308246437578054046299765464160501671591139663916050092905669547190108281261798094556361033471213648803020774758448222953678956984500080551963585836212706130269652509725380037426233186012075118523923156043577021037461326526136339222807843645610049940050206034798763770038201052334847233978748376375961905415018734937143666979299315590688219715673792766159022660165494578703197880734353138280835353400752420358041975553568101769578651627508143854547814458293667915647290617877213081857878809854206835355224274594236716438120837570279976833920902928846204579340544782801553333324450214613285101913961670928622944268814155700072603591835158604363922826179245258900292850669794302965192957632497104484366537936165534272287969285787459187556384969631218311369977644770328234989916703032861491793716214860231077550367506345990307950225644128895147238946802068502326597155840893810931099265381544501576651069150654322333325995592678921205774278797533645804636833433882328956657701493467725811487377628707181219190826050417697653974291891228357347087177135864127149686945381284081732306075536726596542621231290699339910562773792919161543457203484720470741820398302110966756888203251003324343500132876245205650894884036756287858059405179731660178553868114254569815984004364057936569554918606194438843429940144817470275554879259264916713796126595322027790604017006352663911818354439374992776807829985345631121765670474962455716769007923060383886811499460199982985828482306349412956850089794514448730590342580581447629607506784805289254441309150388256089995595882428441493294158345351372729796251350287515259684517083493751295692421068469003183514406707314049086304264450148604544776910016904767996701263074977546115489939205465591033941380374500235620519727230284707890724864111772913392225122104952548127308127796018906812813812881764992133026967564440914079511271431193236493679389577477642972422242185142265101609529695384641509520536406997390142951835131320539724243510911546289250957908814794040306954405131739653726078564918956000685375283892293003632251340918390183301419853651611916253775044486604878430570370335077505548654150000657370404614510835160442173034376622633911497478527104011287263356691063449000380947328453438498010552248903097440758769117623802603873668076195524375938217105552788516023249197387964793932372345625967220992527027789633433518700881243110305849020300077061075584676120323600458201314555193674769656607901668241338702976949348282087065232047946704369628621369826233596251692326161356066111554822387638737395906650467106232156101379367212613428605813111855208472177504239701672604016574200311601929922418520601453761502903908883089452055053324228744028128259469600759531504161297634258009057381445246003463400442816198906468099796233454283619493942409705951757149582492661674998503701379391251679446702985835955491442887908941704930347374209703488279721919194521936751105483790086016514363292018172768044976629998764610736613266457355543834938172729163829668152077143823052002101911205336413205874534423357445007314916454873179559523672260004644904452957825755350772594094188163159529403474467761007716761515675079037779778238522136113170346025704506328196701102217888122296216961169026707246292262480226614727661863180848824665797245167996656246683824553488934421081103440274069915496285142133241354424435992292893642245909900325801475678899172240308891667825397423155589557044550393922397421277771930003745885263853010249291012986739058952499596020682635610044031799573595675331610098772551834912548151583841454824931801502873450116226350257723560407943130274248391480232115519572429065997601657314138243756907452484714497370094175806478499479568788909050923664295097812602658208199061240921372169028960819271589605334262956595340308748780574301666527904194625575926075298037841601989206081501848435350370996627990471106393103837594974007628670891400139251459700386786462925322876244031631850681794424773327205413225452343376807839856044611656257686648508567656597200611768345439020318258116736006088299753463203599460073622961740640169738621193044312333367371352312407712216591161215431061174778126959633039516910379854710879000838574304581952614611211549410799893832308392520767053659189831222265654233569068509439691363587463765264452766988200914532080574576247920898168675215729889358533533988283785668186591770720243958152728050132487723899408881849535195375757536582051362143248386998834344315605433393301124535866524709606232463160466649860823209361953554309572548452411892373937242722917212405462288743463497523395413607136605335406862244243703036072857052891202090927186158199065244468571508999279074259500579493952352495577826193392353208044958365138045795313004449033169552594443681310141262840176626719038171155839901519635165411621007763662175595639138030699819730804343308507097370390332800896976178176884128037869732395854060606021056326178552764950518904464344201790390646068988186255312739462480616123909930591873443654288034923869051915161930700102639607434585024075949668690104899361599202167005206522897684298762190535924421363846924952420277959694353061478314414413814835581398494750838393401598592042221049813376312560108457321408753424674644676126729226872763001142365302077381014308723687369679405256893631463481429357047035117340952935497749036683823136058994724251804512354151515345550039087344922012579934094804729221978105106062280873596897448742502962668819511602264699106948162113719767360967500765914330297013574074938036328738090549789299621924750277551511393930073013329395553680043706951539978598380410010501045313382675540028878817768466493116319265953058248102587189354867001455858854364642360422058416422735884514176705189642226739587459006032875243195863960489355881448379219424239662021990343614967066807187986497198759846192959375071378241794506031308155653846449946336789380293948106015839174798482744933376063148405341145431517387753182221016616060999290768104913281908546893317893199526951366757564369371764003086931602388069419167797714707033120904019324926411512875666308981200581021471601628696778039532990590388404124751890092477324469769918873039012945272169686269903263165655440685486286358099659700340950767436752750297833056163151854158423356861773300859930602186881614265489716854835498071789624248589091784120223367361327032917038412359531161805969670836219193072482920488773114955314387549527555441626495675106260816307979797444550224934037967446829777049876931878446861111839653288243250362602587615410713151060830624661069498260876931201216221552057127910941227402230358016715619002295256395688263010489934403094958351914585730228932259964271254922162771148165295629910590461562886917687008881252714875490655627752916912358568914019355768790124508296493235054766532014470156389715155441331103972632211542558025016169000552576368225152332882107056194582240134927391258585271553981970438736456293164417167635737424000679664022920589091522013350914148359939864420532662401987216866769919748574696063362842500626674401165417896113748520709045805228575008670383813216135960067239922454486866650994706318046004328301997633817683599909731689851443585609356435805275881089640200511904659873147105876410950621795449514160967041385949575795182218601729386731874212184022088610853657535576950950640739028468971252774588431797677764250911606513017302250054055446638989601295466931277704502369842764538832257801386082818260677111498361631924663641128638224790041437775634518224665680609279679238570858443343762921867781663812418062649824104583061283113640693050698134895160493762298221688934964969673194478558198142615562307894682554890468587816234837167610031849294374954689929597000878893539763961256046673437838859533804057625499817103080530262118449388053938359319496050967356465665649629505210987516321134010250419358968897730787960936075541660507153919275436771002570626398528648831363385443505564235405798617689631261294261479404732740124560260471677466060677770921780836174002536311082486493555007156382459244232687553616130555995140330468370862846951280049560710874413164760255016696693910618846763692673056550731470497804452131222875677559583010569743290621598366987871516961146033005556867392083281524091907260125233903077173737192244971542400041186152977476323800889714601273648810162934493602622259226296184488862925978000450256499159057866390039829546413425239056525392914086603651371745823774311389978635499045899980989863319356035043928452332522281728772845068993237240881235775135703872706747695465677501167546344977477127712830404018812971771868266727267764655713298520163857184922176054213896226079923552908761659512302744191864110532804295214092254554144782417318913948341056694976310224897805580423211565099245417799560624563680414211648537605939454126298875700716779532292104080408387952666613296109367054943138530507999043577217803809711580969501618620446344210600948437221549822285677416828600587602485530495790169083670794097157066814624150710287023754064894496220410796764339982722856064411554757982476595501852626215121481843572531431629056831900956901309805903427286986862792335511509688371809986909283156935945734300754750285790780093051154117595564305486483116025958252349788529358876588401514689927247667372739801211705058025332371062080025016964246092967056101248331669455885392543542916364664202957400170543071310441425008225739546300663169779001716051907146702428049323678691041692539485811316032992227069455158782862060697238210623778637049698254651758646846537928497272882224466370009386514893986163554555916455574879138079658730572793890801206145501620009110715944689946849710970481579578983445224321289183356068941148530869421252928966752917923824914937057871426339230440565695435196588100561265319740455303742394751793400420477738311843366206599430130818665618892517656504474141879686502336658512335811720161403798137306541991773908900064315042127104565159780324101325190212225551919293765772740580943101241842251055097352141469941545674982279425867938460187392703456385663761289433769427487506746554714489523700153243679306325423415106648199480468823770574347118095701247074866164263558504298524579301969137207033333927790721347943378401738500345803511803166480902251577473155717385974273748855954688475420389691489141950496254631342306107525334625683912647861856904459990874088195888745132673321347995165145668106468229817635562875804898128840176388459299490284473002751164197481847225466512190901759414221240296291993804817109492131231048075323117537941297205064109755221866988109256219196309369253676929542371851607361470929278342701376669376332340106221119436475360502024387008313674201389400879907485810266287229658848750023433741368917526331090539465946077219171393354583875259427388096397195536695512060647867090915917050316347547877928740086536719451931225858544969651470084290775861391353384916042039435980319631667647000623028797828945442320657493333485523596551565105673182907934731337545835032879318922184779214555925487428436435292334274069641303227808049325909536103720321372360157161249556086206110904683894050119935948976926411450819145488341482363458125452647003215468831926286598586966993831399195904451138740716970494056292042558984270276734232201434558902099489244200338341266111368066120370069824457466696606625231781923739231193578157222703086129671704451001023651691778035270866520900898886263324101395010141007266625569552651162292937201211221939748089874818015280723517452144713539833607427286188374546307275614134112868355770669000397035546520052317411218192498815403507141120006441402951173080426565838296735704661210641291582986394032383104246090820044417374494441721218411036960250066366538545556331099081867569521382540258858797975750925799893635758166019828725766098343322949753921180457846540790553448733187359477191209459163261881815491467999527401269417733688986186730497081360516373514294266270321865488176930272052240302023802322363711679635030812554631387807477014933204884769529770572685528336389769595735612991180356843002590748149315888152380249753427560226805346458667301318957516230333963373869007403805096357319965529563604551719559994282514258279713789548079981324472842771361614446972050207021996659391987312847974281070757664830819640280887645058393284867609945606735977407711632826458000252641169098606363896189936225063376686630061899597654470759802832789145213392027901354912857217015090133072291677202632246701556001643784699726458694353916845403905466904669819341613787167158407930113372545173707158603401586615791081885234987753587997055850203982372632050253892392660540779233154464074149002762071048859246302388531113518296967479303449338067476130164292032455321142767233062684914137856676821435658779313128670279984327923204634884524856220195531684521539843929678719246091167442282459440982677598789113740074801901706201067194057892600127366879604500874433601580910701710718632051619456268543146687970949043902368415382556067220024325939315849152753018829855639468414395483711325335824833023299321735822147182283118896374791524193116771657383123730164936262879279155954871765325344229288995609619301679127027633122286980333883563065601522596696675873833032047656315064377232751155476740548890360056781112958407122633386443549005486610547426209510099869255111582502246602562739779755947454952296970096642255546688886690900041833045652485412170740049790722306351327470260767710191280766909163590152696896832066190967272844820411017152624274735420374934758085701454577458680003758949618465252577364135318300506369711824081645721047704872795288379841804205696379973179420318826243628843302727415866486508771966859068162368834194450126275085102684262394980995882470072967136010188019328468623069969459222457506015577064086283114854718505015787927352141373305355635458395237053097595897156959896457108186331752489222306684500219195001286245666832256135069204852603735517607376121367700486241770765288902840448747464480238442825759100280601627183094658610535432473761975125539237261521211053764241632550829267139808995086796016665389429352281875871988661869803131266316650389338746907410456962909725957376384698072162972821314860352885664601521357476130261019364872861351641171582685087170527064257628826785102883382083381739066273777951413393532511624877614800477840323046652939148212889412352933079036579077757237959783883677168088778781008479682688162297453591085957327539162364925424702304096523848904597512834652360004998418706612382463089334420313165295153650944371982756034115456451986649868386617355908355098446454207014369296441680783759466471159697821226404851227424026301082696090296653010548805942954900048701535010913648871688755568813765522899312544608520457895402995619913016874970585771411208780588931906893521813817009175399850096375245023025655240114051251601233331882927102609316165349267412126589798932092095138376552242255548471425889308853658961691762981153686583398575198900429114925981672858799697595857217886177254955995607100411738059869891574469591309367515304921600810512106145107418792015106189658562939746294284749193961671794212650227426071917336843170265181669712540877588401051428892988926363124099307724189072021796595819495259389148573455613278351178142709408847847244030169677027999442736523311555804412888298813819085192941799949426620739350043202659889443325318386135090785023929341824719894760758405254410799430122905925869284042080490935787076621456534988562188624994859690890176814887886427809797024196543607857480389251619465630076693297482194289879862752027953126181254523595653701975194465193805451409258589848797154463633242690543635878855114079409094272307702812363256040841381827641510673240478225113317052362891045304987906677677100924741802529575065206642135234131157336860612723620315908112134109468597626361039048473194976142587155851544237989999648552017249310504780075682433117984988653567509838485427110370858486921735051105643968068016865902179289193911283576743004664595833814930324168479171254636490189674059911099990730007513168340220663994366499659384381382351381320896653440272576044921923154983729424048315548816978460254669423731146446201292035351592935655340226720128014835136547112662405182436819491251952447817707491790042231948783733426556064647756103820997740259722581076856211348325672413053222527495463585433517284711641281065824565233309602707046752746800321171473860035986271025283364668241428607285583951189384716367476831822146517534267059418243610959844922855551685209485023288655341329355313475742395320281227663466617775581141513633946595897629982933225809279081819094263601510724538156385035828413120499138509827355249841060096402781008182523938051871183700749687165922397690864473086359480560950187468950371568037413703309836794394397346144047838579880651362944769276087350479799780116002314169458683511919806832518771118526656449439394688002694727029160438595704357158390030943381717828692887741998311944748999622928149288206031096565505270496929474775157599942056599253944934764707701662955034715436961234925917595049548444902427205621412036087754082552074543006591520744198757659028422891435790838406856575971174339807091597017978306769701193467017061703298054476170713085128431737427382309747030105920053172467089771089642386119296260032770906538465399993162279159524802992325603773541969819275642260174634865901831273446076231736660328131540568059719019057770492820028681448921642530326984420571369803566743770589413160218639231017138360808339312804790307205955126714607728969798986799624476345525893624451563318397544670753939725659331385268894266186902013790344129598379192142838319597283081030463078387173133392980076975685153236071891615618325127780316071432652122212702092615516275772033125130606613917673489016471100169281989870571622444912211432816043987664331775788415872778612268898150899454559888127286552887905554876228131120509627486458648199582696132937866858013360035454639541796961310614675029697977236199367433089603489464266143181536638289544012870014235832739703382722252839433937847073140165928655006020792485218553630467437913106413587204522393522836132142219340277218382505505702275862642680181455367336627993210972682503912206637979742754208640320053535369040842756296067237235766093450289113838065807714943283258663910024350545218808427502151859475627611540107530628496632502869164090527792695465890897443965140254573983595015850251897707440613373658826812600319922078043357276134687412481023781112235620920945576769108958704835872441905572338926876177070014821608765187641875277588406051121823329889485629630218376399845546531506484420401616471189384234245300305725661311053362269918053556761037353602971042508682041403026720730593122455757505205636211964900403519387235528448597787401236313933984008753670100915616013616236448753222493432377053910468682313870707541790511516868703338388521238821253256651537746398024506991918094551108935377733845069782382291577906801570849964158130170921273388114835722967937434855571473125767436794487203692536142697897622610934555161663152446462455528699640571445369535163513273595712152665416269659524357506366312548841463154642916277410267529906285505078684659132649771102725292517983815101679615852026689987232837522578195668566317142178434571689878481088151466358687522165759907424392942673705342108681796791352285214745128621755751164999774474707711065623042404939566903401050397109565388575818905249790388569990566601168104953534562459134716986533802757730479525927880839424431359981290503098469211526530430193439670202271455897456776252117086676597267057757717651657330424864087050546598770435708305172191081410327865645782960264344515152237647571230141701601614616669552786907533938502806909602001399857459637035442482551995884160240225928818667184152089857434543899375937031326831626922064406897727724308383424863179545384420869800266511627799437508779789499475409997612917445762542558188725320662710543942617356282957910084879649472041515429594749641725398263394565147606640746365561695285448766971485571339391586723547694019719106103966644345608638313614724095529334524403225947994462955071803533700685190074081115537473819385098189286089561286064517190864061466182469681337762454670444488936587174836696692661706523500078685012658316348537004682522543352260406742949516507446516637198982342767426471737622384333845942175615212846223884331677596398673380115172794091379512099859511793598127664094433345083266544458061413746495698542343930770271152182099083637647753920203710118626446695426252525342098732578227360752267767614185241028030713980544183891324019932276802622045218346809878422054021272231639449042031293885634788050853282473917156062171366806246809367785568305748765810906039776035153231952604505867672352194964077170943443290220297364860243348732205873150746070137107189790539975408751445698120202393737139968102590842663829787377644161389848073579308793297437361230031077865707497015834897600986826474609195100195150394038656044303046107809661352931556967408948400742209133797894898743542847165672786250488711660244958915787274086092279462706592882866633204928836614751734788977218006607841324668290647480526561453601450730776505099343413572678930477465077001197953564763129485399142878738001577802841479356831337557732937938920062383972417693060086156038481650508155893744512374351800967292435588177240152704781322818984231359700779151877625523179451061645955387746105919433367199752483031041470266970716683861938962913051122067728786535484824571828370650730380325789427630764312729391861192282197173997216610972452106236767452273225142874893974496028223590810957399768191460582468520894263483460351638908116999768468748812743295984459620780975863041335106572070067012744782677496012653073385643927103126521476908895244345071317186524538134160584889155351533540183387679017608097890213386901928495237215105659964292814320208030107672484513138088468518018129319710758618923512765625580210439597538443645451919888470454276183467850420706194928782413161022174569000897814480465084128563567634033523144688842659053659826755720024372542868510405739191303161976265420344238286639892450848311557518052057383597996081663037224494675255972377367560480886444344930029297467502606338228552807269212290295858218598881974408238094318770518815746904003274704436089019416932686404403869078831868550548353897880681177996343122628537528426912157080813241589919702379906495828935585041196686963261798855045597496933465033338192841186401664156276610214841645300711293054478729501279919309441235277180684870274206609030041461325424120679863605234607303846885559248266895128920803614126813460378732051888493285626709413511399408338198354468944325286801769595951638477854105696805473882448235784117006559252639318102370565876080545304522650264476516292160196670103208221038047451212603989316417141749958280141979956209596688805932845692235309723808988640768725380425971782716726123766114923675390605610142316207753530391750349450025519569333607862747645113313177958046892554917748918239306917302955948181106316550143277356150012445245697586366713222350525401531158903402126993485458514447250181418478401359756682374265014991413869488281733658544598264461771672598922867690634805080486618906168284501294784916660072862948280935366249830506590891300022163565374924206812485597962960358492924103548181619176596492436763396419440014071666822382235741729735599753291420513069617511083785284578134869195111699900136835592055586329454275538467950474813168039661363746171582661966575059905517562944067910269138726933235182051329985322587098643875225238154169129927267266326192686415767993285215534666205140461359577755064867793635372705443046749302115997473485747361174857020202184016966561868660676703706128117507730062892580057928170364700251969261724874668618242538315671556532080156823755923796534491967504012446250223189406886981819013965963749016890842524173438225920426052689781189790888806016522344345671863653983205132906418258517640530619239577285550270798890456465161812115171837287496872320613284389565413982417265956700870267820662817898697389469728218925860619475924120703812437966688308449767002878915217682644118533262365185072337869725189396564567247671212969213928250993014197398593539854982219795094574693691793018162999369182144806265125357909407842604598904724606556632179529437407722578998529493651872804006568170960940004775113808288524046098081912071911143282752195228621628849604283267177393584943863989042458693832553601268629295637950640387168890870731735348844818287452302307539655969828865465637237403863549742092698281374137025311112228522730697864105596648194242873317126225847691081291013155065002337747090307991614927287642592122315860126628838310132404728099453355502123680222225593569134445703748007899519197587414041119120967238425329062569429342317225673865766179489693284069773878662753778193972629379487414832073040459949437991400252576034597244286799373241383708247078012556301791735959516970772212690999615696806114450055034263951716446085544769065328072653944651027873078457759940577369605573953964252566606086218434225676271391960945523509195122249105955160074618400209305969053390470332082765682183247540054216688859507487750017180400702440555460541301914518480086726556335512666887940222871610533172576490729323514488951222327876735671419504429936726974745313894628690918174628723631055716642581160524914901802757736984955054306208620790266366878150390464610430293088813118549174895147904818543694773156385069879905023233188605452936317091405503381897310477903873304664323137099622928395812506950914307082557402782602112017962997673452518067114293494919047423544277684110386227061940335595663857071613211153738289455662514836849489368491715877263506549145793018137039552410312418621079682262439961854080038656003235475325892803790782685343894419788843127377689590860780848249479103056780654118118194274602776944333816394945415351837906767595499387582200628490130833214769856090505843389216728395645310986519833896408102425840974467848964546672596409394593805789938673568803353076978091388141049942207250222363356556884074553303703260722284083621589963443210717021996006557082613384264285630914974292104056991885524914824283730410461666572498085858875839282422225455422860907441813246025882830132317002551607836404768239649834337519549012164315366521459013322454096776062662499303696546407817258843534164035769031978035212915955540727304175270078035654250566762646707192598678627846480490751430622544897431604361238963302992596136908862341907432749896424944820131883727487585228496477112563638197610305996593229524538999721606491864675790886040050146631972535651619816365920612576123555051298634274283266214513962713201910616220352833033201480184858218714515070982581518395974091205562424882045168020555362624376904725625032820975197872727972757664378213736576565676226942966130400822793303137482652294017755224563004888873650517840551357571751757016537096570903864098469254726715430428727025329939577849195839629009844477876712016846263393200597730691116259694466591209927849668262765863055886541847187590231181543393119708702058648034852086465876242779542732763905260213335535554794717939043299480834440502292587855783798574332357416978374121524826024642104815025715439080346376741446574236404577025110335332043985102481228650669330575967184191061344797663915659105691435985707951030695642495330452821277702636935146214498064119389242901151071205522436755442436615769067541709736687734710718205180281416712757141389788564635229886824297451221059141638438035601138710793728791011709505378111252912563036756209725320078743355051992137378387641684924263614214574656490124671120715692688007000978108006900799699392599324628759288609672785331796492886905509648233466230603678511469205062385565348339643224171365917486954977250384945411689106858126621376974411045125420489025503428135759932354478741972415498567370022049771257350533189409488923651279074454245415537025269314757013150611374903897336278695267452474581932409045380221766423525659200777822478568108919483188997786064214666472959076993865670864830251565533120519311976760888872154939434605633341272455234583975345622379136670684877452948184655337745773234711400132859708904780278483349775536417800007239991907959739203583059312054919296280454873400074213968355814036820077275641241698944338894210348519000097088870291437409609251851819584618512395751607159862948897456548114014540610778402015161334852051721052164617923026408687731782615080562505950779903298889219875699649687851636876980140993795692448598495296613495566450363012438162853959346895808059197957838420603388303707240477902048086708624743112046854253053825842650965618937598593573446877792608157110311522577801879816954355815674227837827970526787714659893278877181955429028888434663979643358020987738911819459886839524108951859226455473739700642485314122140760883424701175431178202316816358606531833771512711019606447005260561001682304518477327158767198081397848762713913751675863182050493504359986235999296831732425510030680119335757690013047108682452926197622657629454473283682233221407385518971009112922137603624487903927009526648888545104774092279283657441980541217579518107489473330387557488757723859909889417674446479720749372630469834789045580856220343912769359363324556396468868341496274666730591636656256318414494131477276418921908609086963840856144712055025630603863564513968873183985672495513481196732127293079818302992256712553952316818973974526199710439439773036763103045860973145686206021866429680399560385981438458688027380518985193897584471198920253199279187281381310615816364913864042347538368985321186980231354820948343565097294880646685464670425383479681822445971386070670538192920620778803352479766476621148557149208057193835007076883208053536226199746155504077073648059554125032859651034928522563721448082386355100987292976474535075670632016042179567797873815447075149095692712859924142781852435096655043874010650819828971295061886347927852362679192614825046463626174334333519411186413839934538342175743348335245399136125589656831814745107384656570964919606814133699620108348458803466148177427338580856290442883852183857776898572660535662833011130929876817557760608723108405395112051962396826252727193818391295579482406154652224696451351148554004430833443480828214509701352925374582660598773033575361999293802503497323949286847118622093736922956580969504943722126701958271500218124171644338670644196149696594885547899637127716857072922648075602216811670263277693868367988063276409349517498114005893427318752286929226302318185147993036638676000675177853017337305309374623117909396904260382361789823547714941797914394853727948614557125216594069779182430091118134127803140839775948084470221836914998965025967248130320157744670675981132611197537040980264770855364373795327342744007149942221650375191271387243866062876612911990467569477927000727144337077159206137578513224616401677245572367014473439002583366375590060721146062797062475762567612863565003307309006201464658230531008099611346465633390305658212094412433366939503900295438956718670891265466939290570366841753126977683651250344119994575480692581001526959202183224702852760670675686456609801478423918186513480333326948057383783289510086108801054689564613112389790817859464108690244331747654658591492171992079732481450754365785843100903966262871870106051744589965522975484425140759762979968129845266742829258417385536267960516324253969400084465835886444641120277873262697351435532404532979328958266604082088050463673417562349974527218206689322383731351429666635396802849014964336669958657245171845434430234060405054734069440234269279751553689672305035570834979469138502627000231546064881738358933168075218539861400380178091772199033736120159353397359643656182284178504111606111567645446618172152800048281773236332184907504696900274974704128314928918109522985901945563198344961334679763375853288497397874677590545348918988920464791175144495484093133102839000895449061293030184526130557148967459628929165118916819798872897925879345983103474372836837471204389039367248387975443735748566528928470112849036362195165557661085014587226405475716934927756438284883536985184367072497701240955163699457300810409883607469168565490211434566023887374874784765608724123254011352174623016116462805786325898751855382222468894340308136660220513523982255726353541251235476843388870084893653653921103736793448030112717142884164718579498215284134464493667225025028255873331373026682477925814565258291358177399750481570703127040323330584529769506935998230481272090935599963940701507043171658302118117577518307441186417095905817232633430889958822052258410567503675650430066066766668459661283427732865301820920611385003725059477641689881621827913484925551315944368950674592462368288682422969918216089173613913555292182671733298480639197347861239276714233703301410572290174130580450132466889977667152415615905514102154842440096956905440082397529750124951322170442884944068544813410391158104855127443901044234973083833468643372806137967936334736188819041241637994115141106636120986556594734188981075874019835679806398377139544658012573471500135703091700965062873786227182272591189468814273712189642957711115119982165239332555120786477994434397407398649763526178570168928003204879649660330538081786193965844214161344859607768585596261141998293463739356603552496019996767221117320079469014256940289537482245949592533394298230400148933676864572998632864157252853552976043879211210941741774134880436527804552990040257056603617235571588623650835271876198515212732171383946110314432790984954790102477369925663313202019099812260263879463673238955795577461244782053804625418952762449190250775217542265773232442478869688787997649179531474235902503675645159217006219368983159298869449393021030585450556911062005144331109827380384876347499574483211063144149352150234793692167184109544995078474658258402402818145644067186820406294062543428989691264092037741272394187890177184912427635839331242410887502659381303854561205465400945954622898868375083823504202509926620349435254274955550906273590141753386637044156706009351576531859059624909522702168755398512397170182933088129249323242418529175445566189369140924971515662731296701570263233667195114871597068267094761088058322778653979148368810337417641145658213805893231246181442199503071886881523086541433277119814043698837175244930820485347469632300197582022573088522907479127972884081800055220178626700786681396059386856369683308504413892069527707780416816331309464268818699594909859617793134343370392150135981212803198031375174383097825678868582884650362003159675156215084124702848724864815605632401861897891976057093895341900373629698656695055822452397032845877053083782925075473577235054653455481617427662430902783312257968303813588551789405958501112639884644968744280388229821261495537624576996342228677282210121216209921478725464000176563926276749748069360776323946457205193661385673719285046818524728215635540293534320966433841380495671385207021613873463786654576311218223552678122210684145152559048697898596082764456351133885873813457167072368243693053442237641051385449911911225457175950059071329301202224703979408534894051559420794258214199083300888233854718078571873579002620538098567322826783505302968054541287380997313335267238197022027146262482198129636239896266298950211808728469134036654489817834164037885322054743787567096352010999396185444046940392517278346157575193643812997882848103786973090078712195293805884908162998001663396323934464869804893262880898528341608322020911878855307688620187921759752426728022254499087559820480691211352193388966834907665175623368675596369853576398538891616055799888998988019389660197201583288827047129758398368775817294178249873345704536578374692633518781021205714149073378169198176231656691692806765474456633864578151176656125740385848266516523744082250021281039076352102553157791623626556293644614602466148371295208342356586289341458425132620575683879073889641559478388683086219380851242971390490070636967164380014127922295600988040944233482713459514403316438249620880684302300407215872378820304791745100837728809005770948097499484960996093654157539519094429715323136842491098187798627055506685405149900509307687031236892257019635734052506532605674653251694662040799893700762716569583814365757542244393786568357648925531128460463797264825427244143094363957856979977655048269134986446198603651387145351066052391620586323317170986241966609315123393496803057803017461865246740746371193750486568905388564747180045693650427745451443278793268775489572654959518416875039001996274036980303451259187648734579375240917966792538107574935212287028050753185642913480853436372415212307388877167075701446626428857566541298875963975790624439066839493281414655111386143344977472761014758819004562141105913200779449486976280318542026434242374254301428191273485819893275973045974693941065358302098022601058027029547523085821687332866421561549266047963326622466979912153251213889033938946641515302041926912676138309316605878608462766573623929351233784082602597720500407604154129277690228365426869399948031944023015254331631327772281912301438084776810730786946884407600948952075705164212468422230214285271964171573516520154535489859491723807636205535978918925540384555008841579654572367229441360010203161625359881816028003731401137867222160774769317934980033951069462270542948857446704443264185834099740747890585625814664475602862979297294383932542781311445889467413739998917527645237145051837789857719649290832575860414430559507892609928263926032615962926849870098710364867788999934495167094755745496243079789516378672473639076009121732036106253884598541646736393237645487441742450532966292953019664683972191851172343230358945296533916522629148894634776848924733687270433324792225756058616141372799275620951690416796128736866803366493386759151644260304881177159186905990690099365669580397783768644080485524808768979455385367269979182489532218331442634428274094311892221748372203246616328241223747844130776150010133436933310294708159721934680244737983548154394238920747157382965055191217249325323828107462936022552852826031148643368235218864913561521402445835011266671623544720419153924367413496319165485906789307637472644947053593663603489387877512848024846055770166655685636323586098732400880563425535572008643560937294252930926733647568862843887248068593798002993791867882158063719151231513762779356894197116844366724478672324921592177120722151955301460774231807797725027000482002432944069230901682804082309510900390180938785848139590195022483486321312104892452933445906113777945537426777391417493207432073328526010132840311411692856745154395614157040425267226736032144457690043463586108524217488562977819218146186523417666729747082487231927302182256101602052432544136908204797817042235733194361199557631390251367970148392063795578987065836923007738383474162317009908776549630076499942689134657873089357874710836616869106427196997007443098293669364630174244791951518373241437357996216166422308236121239479529789495539217872471883747481817119206230524793516495046774838145144671411328530645874691584666986599108570913248801891425736919874500542461038051723110576656527566789961352052644825478359974048115781345482697264758184805733878535063854666034473393929267409678042568822953525664311921262463585640834550969559365552452383875872716811597885303332785669060479857865514176031448655394002069860624598167489716815535304226736277161767763011081796908251424952110686718797941001827884003067300501065110462357831726637376348899969124141558423776513717971410699811074608075816573412707229984632183722037979975038152225828224957643042116718203995054162745249319264438875849684206166870077639176514349250050267555685933034078289541530828948418130480868836098627311340400638962503723913717915462137668876973376439439250336679706562209521026193169507873665901368123509608772962849425557263780405573600824470777697204026412992614850305704176642493806059106356827336782758346323615705342546623042790799818476890885449185777864648985561908688154373881464387189059086988726604142648980063449185079642516322824343448352241442447190235179862794157240732411965833036653877269818762580538898279539634864498218817570664220853005524157508216234916595571897839485025398504361582826335976487570904402785266568067351719969360477463415464535766683490811185838050807022681321524570062940783904790422338515180350583057396950317863597592889268758855554322088964174470300677708190973485979996884385966807897164949763391976723329078254586586200005571626740992038410518384436684375096599408532335566631274405528897748938847904287048527349446210930224175000141865445557517475499203654253574930284704674251863904921048323753737653946251169509503983029280890303109778578047326415354620727199050086119402573694100065469413974009152861093309391767867896532426289366510893407341248153972988335366131492889594833786353250085550762423258964077898060963161495401332835039906283138526133628851015122665358730586160739623643233204003747563690766020471567687356023168412638066219197316243585625336717937113134381448937372632747276335609058935015193141657022171876814922747596218213205725992949938368424176347317201566945631676735368491030370036290609124155853954122564652334830426139608827687629888573912406169512286212282117848551165648071298548161075672840277143798630037177549859048102640029931664955750931235595344074738118035429519698090374132659877498459722079358840193670389910874111683550866418696017494846890989320325090030899097061527327539467138680243762572365180861800074096798101982513782264575055984759438243080182636629150248203983083302057739964495107213608091975218325907545062514569297107526733346030899684169604186378457609408262318381777415611905503423925868158680627130248315048476307795359083365537419990630421798845972203438245065305122877539703023779295087550405621519263881605349017693462105850301874547063121080781817403178070265623709731385846958335653880640754764464821487412078272648910433249766612339208606428051687444577374260703727246330469047797702628212128281703342942012832150380665013685666778719684191809693719061076434357001672969865580526461617211341126476257573029479525616673989167026371873138495780482304362433912057169667567773921227164122423854323270746976973177517861437583892043501357372698660511874675479441588374752371840189398783805355283812722962217737959586452081061833745303969062749466098337380987845879934029422422883584736549916538020047864366589495191136136285816132388974513676073202454214768516983324336373007545486783416638598545133003719416371870828373985195519349190578600592415665773878131883748102095087653337808640046702498771780120157921633472137977546350542346737794841830200117927018391837208514498072268213017440023303338906061850622897825600358247361179363351891856201946846164915899225924682757373306671398640817890186994574840412566488699252791216149439591048473013341057304119012268964869992559474671036521989680847316043405123122856426783964407182911288639364905282903027137220236958881707113989910376899686920039338767240305858686085967851620362811443138995089692054562754364900192745430686782999407159707109081217271782434305631929873043820843988879643125117123535816553716593881474844954135755344286122928480629762008397644433179939164793069175373772173988614584806077391277657751681900163973089154837428939407150680878059903075856230171378309076530925096806262380634114510416093893991023608175482965387277232757149099786332571296449368657691817792723472481794164657576899709521047054812408849327000731228355115518095446675783632156118937469148616458112686998113475601972304110741196741457139973340809023880211435499143405037509931949823935978857174205389776229768473317739079893423963822204470570116713853126062648057154948622332896197117594010019882567088891269193181032704336813781940736528513591666092002494247155204927589570993356707810622888504471428723941481414811404864975799899006283156941201424151554791251700773913846825670778062005476152183829774016269317254688336071181641511122885098274434303056866614233144842168863589940201217748805608441843902522458223890124344950934173001701904629706091234528653076914968715411906145446686717167059817100493968805228814277058078372672403941037735025039655226962982720349774320139945561596329029313458493124273957472747196815874184526255998223255808943322992023805319302200247331035906099012881905667401418863976068057380857524394996945056697968429279118565120671732973327059225704620241056779092176252260574237632875524265306673335801319303878782704513361270645779941896047814068774971993814013974680374133954443139692960562538852303662203776315179048972894113370442710282611093437738127393824309730381817416508818200615008294655525547810975942290074351837403765692551412509752539808778002020135403460774503662617327033453879707610251129530001835890460045861048169724728823855347985662553402732109232474916739815815580949555443730267802419129241140865192924984427386015746698168259325475212833538834154799742485031661612749933882167834777833190763229162992547216606394805432406689297700275661243512889323432739357108146091209577241891406860105750507128064618715308451976860105603486975594432431230136732488147896028517066072828554865337640765126080667086266889892084802005202419657220161300087858211592013886599621860702695266223384306933250604280971250167855500618792105712009556870981383330977126159816542788266132181716459589040886372061114206983527547624288605925497702261834378361207089852714352079359915560231963197325727428804787913787805141710172027741191863233135922969502861235853715068462971671330093660954748905248034158702931622506706777246148322765665699656136304125616846773885544019900651181982076425564376985418600289577276023663739577296042438990094121022060812815610322027369341796922012046048678289946637184824479346934227802610638217355675064274194399240365458536543130446776311252058160690449614499766997550706600439757202053296665178386277208217212009866717755274154155170231721932328301155738066439577685110028871393074328172861128001505222276341467709344155765351412994989924189366577041942939750801425838247627775010236427471125316969074353501326350535498656897432107838025582612088014993037835201031213438822781213442439208592830984454759061047600181414334040847859029857093734276381790935582697459964848567303818168732255524725018767225660389185611497381780973529582689624900653618801514790856417678100588315237225127064660993530589445430587544371480877639769930966012983348637843182772648442759976981215701786768479669002809277317605753294341349483888020342007382500814973871658301060988774471378299478768971013337545816424124949448138136456880612374820440504326809713299113669673035946237774562769641587530757058581054319783705642536294032952183679222022957123173577383950971881374469780896049478075944464702123029516810661623308439482244062628675143243790518097034549782762881324719847465301603734538558302582336753572682482557420281959473885438038952369785799563491577435962725771650523841922180384607973177572533537311333119177039596593002827749546295092882024103203782553652124618378125100643621942375595046234443642684611300302439297647021927474851659036872763799581573201818883052949074466715270058596674384774513899848060037978752156051557976357833763233176133611225229945669011638704207767759472239200972605835895984191907651107215759220721735588627951897073793808304198179296441880212681606165763775872719056716071848676248627250981070812472650813787773112740029772048822921081434860618701455039623470291635071933629881648722649616631893199526651038862408329807769174859181108581891160099854075027396757945057089087028312216457449596540028861904003575322776852970416428262838356925113635421121884731274674282254269524653284129591810917215225230228409345282343128662496322126297935635694421594952649495350263865243770494335684042895894780437385010684535765898616205437957584674405521986281356944248488234913556744683980453677341928958754574485291866190135344890794122333525325987333807961351993870294890786565390787530024161888360542737997244007755446681681577838774391688435218906676961718150116148102304855016770541645399036905029082458023656755012209081802924119545670792133025808702645344463667917521669030653551171915391166802515392029658213310801416162692699616790133921204199904830800781135478653867808580608305606969155662989645329673812125420900318954647946484522811711010495206595932267880190667565240240232832880178333913582100489514288481881751221642309890616770535445905172874544216599072737677449027778448852269338938993125047529007904766694073543674663505525055814091056837674640830322663549043587158858783619188380164059072512632067919661582604595127143323471660752615825586674008059606371320954800808460612813354321298398122313145907642328731500683081732451824377841108379049883928834921830684448456778176491591767496822093460531499976239567959336136192589840186698966081299863045176327091372403983395642432415665362327385691948263859622772249797603014897450722845345219347038462903619369378370285343813700956196402569610618415057572925060767847128233690002050531715883964492182823880997822621517024068922279168841764165750166066344337980346471170900468908280231417015575465154193275111976097961676275923174473853407504341099575779511819511738169624295534391595612493511090668179328065173182820492522461953004720775671003669847057274081502372017814944765169541256913566050422194619533902274900273470879023530767551495445316024303353501788156497489747988956693997024650238122360307041146134338343522347149933985227697596231465037910493106327988451329442558477016659645867438132093248645293176032476374836700565117245269461308885639027286662570411644329855837701440211134889994153863777513653718737024319783901956192843821294809738191595925449259495138062388118778557914751905416494913455614813915601401118767611104394976037703974848847875149924007396538594551736700842776636560444886727765638594810622158633427130177098927386124814351110678217051009197389178400060101111781144205595192352796417556465243615867074233198755341714339427568814326899764995240927575435847007908228990476760163980381615846393503795565092685150082904085475447609395586644415484025899793718151509018158936478576641222203711290668677707850788177369711710112822944287054546646019101835991425325843400324157971513302030518700130887997797807130423998517313820443566010370149873287000588076529245263865796174295063688499558737293985475613782631440359069408219407830017478858287624864513762435605244430824981177027772361278104352918591786317586385664002148915096345576643828525229462195442065500324086043098750000862953728709654270318625761944162656398847743364065628876044292665625358298925131319176286948941819974948230507427430674642732693861989230608341138752350775180718592375043502179359975461818176990208165987761545947294521508186151590590559067587617418882797941064639801653368952265132060240235143091032850602113157854579979975693006390021887140040606964816118316826319034207868977901546551822724836323321971434979811997349117671242720499315982673730402508946856199751171744369687242675379761447759142711432805372901041360234083041886748472306576283670711147027042608115239862885327100332917935144299288271620629357246640234023958375388289696368629878429697648575672300738254934116103439724007786630343181362913328721421168049997022180562518847754619393915189913771752568494777880525039054561966388586615329213977060451922851286061643628425199861076420138480744951257866945689836116654906366815693702322470771471003688547235158921383967859489558206437736238181289550059486809744058549158162433170294271994706241799765549298329402217874385484870108079537955292242007045920427969987946612533965350918273179537581947089447458852461521162122558525836201056612798162490549264120262593600082584343584754278861066683813541049361587113177075804581995541650178154138058790115456042628542553718745742378130838945397068884253520696946780349923789258233793273393539851306442415263712658283065854960399651939513461811818128021203938634776175884216522488885631711398094732576790075083893257967799879157572532775339188155563217806552356073750769063552653390712170299322996898751553300854316814290813691930935018273714454953825699795770875390049546932874295918979526418581724050077479739236468827909965597099031717278423426713275369260023366263280785947372056541374945485537979803276031519939263179293867870034938543983186294825657592118454740622002219292914072890700157398499788406821819281654489252863450614123444490895904426090758045953400720437750832788099639932371973278521560971928929482423353333115329967556379648946455575588066112630067712271592059815626956089678634320787554894064817016996015057754977752966091355598764380901182676139230100629444935330439321278832711810648262921585779517612794996286445369898343517221313910685863744209143515416120027708281806782423858396076777996606832560586099144872127158153050729589785694368567316745183764531976869786607969963480507672547738822547821624269267037019767183681364679456039490431553834974943819643179908374177050677257683711447258295605429953176850391778021682198509064808049819249353481821765380914018782988676469379276348141462511132760941038292894379140913423157901050356549415991617724107581368311562068293045536067310840544105009810455869312354938171060831871728497428331419893426857723434109892281227529342694149763631511585951654972420876427558800371701253828559560741023533741733194838116494301080713845455905340357018305534569864780723093836909346461111884296581540551057279341318597425377573638039751602546179017013657879215309979361419433534388702371584520718796087776064863009746953594936499295986607113024975148694653625774581649391316681739209559241287133402749861955176228087621924938743441308123945221266885506747762082550711182077548554303380885809743013582661911712262814336128003487894159443902889123572516263757499431865139952755954626247949816695369704823450572404706884841971648574196635873057423756086456555289767310384366272545155921416978759955665274183974972074601777023765189057115740195554069163595189401881934697536815137750827531764077213274843424629027934455322856990525897858126592059574816212814394598702504057349015652841244044417552788767988896233973774849156557686595643399220260262944606277880739167399971923218109412804656450345746909182161515297563972511502282906455540008470338503866434523592767788888822373746647854997325232135635977774277854823586478790714401434896484473366365177559867291813864915851035723580288881806572811475293565098036474917685293426536413623629188836201281620031026636593027036917073590554231422276958730270850047165745898019586081815755638788690979442882877620794416727933150684617227854602214467424236401477170743911022147202874464458686012277224719166904859055691066446652918519783088648388990161837715655572957747636680705252905736616153408642886743653801152878200739273658152713170538936719714490209456970031920167429369146424923173743637888355304331105460168196927699294582927151643883669511414163917998663330962645722988266275093108261775420105732449625939790882135602861106276447047429215967218991671471121522778458249223873524449953369398446306591818688254076881221331387012060813581127673168651130684633837588535395439233398123655284233112824592927698702396282123610430812600133218477785760062281493134279170220162241390549044376980533475186585356798530100927547928564719777683191540325281118090321703049983237411025601861444336527397703729154050566115536263251739133871392701255323803632877266651515574294095551656624991119094917885823482368490256030879997447908148500307072400424874430182165713092245788146430564861526393240923555086830772188902146821616767948948962288897044128219696371463564245169430753981848485553017690580702553707984548031074373868048646728308780155359043073421563006930591287627422161831005409901411789182630446306121793979456611986233448288435744215663650079595896836880132593690557155819351675498203693738650006044460128251725546099890023220314448874865371057490117233418537495487776968600931505144987802367218853414841438490345482767321247036330761949403851511432736466777910312079512045982646991012630440322953998814859926180865539334986367034281851355111008549481549033259066331932749347823348575286020893407746077204960273145461551492548213943101658720371881932525768566741624597383389358930811614279586853471235375055226992786231315295136683729947839402280880974517214221620946590255467023787224497421667112844709894627301255632305672268207421574191978233133905738119495879645052681681093119241767793355073793877942592560636711572660461762202251100572273730118802546295592960585578810162178482521002008757920965908599454904811992786816599648234444528448001319088799919657214780446284453785819782946103118354913597395403983776303931655706450823908138245752436881400288531493511617815503808969891691811537057430551501782938721338408138940968435289301934240665659890953693434749801937660105927566358317556944910340126521238122330185755636923027104233850460277030206231251087127992767816889252340336427329613083954279516707563419978030270190367154453675581304838458443697609578277111493516705950012074809385893859234908787630135223349623611113371740167706421619257106318352212846587102338214658236608789563212395752184899123362812869908029044053503144888486065598162531382005826556088310899938874726658033472363356651581048261360454697728702241486393054926855648148296583183745204761449119875102397730485649315379641566161713570036008400770417858094137720082557622284857534401983385625194221643099663590511046119831041482366371993595135210099184467442096062682697412818796683581424027982554521693372395136127743810471928233766766442846795883864375848313650169760220964879105777288154203619220421597950659937218238626747604615688959614932286971694782598118300211654161929308654557246351951580822820003193060943196118525991274902784315387956698741056495055533941620551915569460956116423257906862440842017573121950047979674221138280012012495489901281546913493323133210464499931826632484659329472647043715568347263575964398038516673324808647628782576053319269182644876688931440471602020720039146349570328721734271112599343420377210887980840457330944274994938815387015767558326383460521669330512065065143599062199904667670485379797375517203604965259887864112779281528002669856824262948444872171845614989951885139747879444493416084747752903634984427500249822911193596253198114673060094649171311557837211619759202205835280015152884850289334202156677043225697639601921731795071180018280704923963426439220170438464364895640039325821993527013278438827678888281563285607552906034483309991687844311505562104577741906420183470072618761299709223675061311810732010286850991566229733387739143355864684412416855501019725792104308474493796889521726122825311821061268454515291983455847244694710250174751262415354193492448753070795458908519780443364974882241292016638305071951504113203624481444305624314832836911079830595395119145387080852390593935547110997387527824836607476638859290659876697532590477159433582322789452207051846680436166393106039373551961683231886830679549373184544965513815744460748628275703941042773143861959668941424217587889266761257844422664109762013214908183060211194098671981154375735330640786024948631428126148532551573366694706161834281987406486393656528708867617852269648944408645292670977778993517408775317005622419997201002728558498624995098211679085332935591851943497366128413367126934965528412266899922642320802733468450470287278876359782844264077239500857073792404699951976632278035421587310020069714365040728336441235030541850294124526920772009183543542515815753785337633772238424530308763075589725174386285379064652822829724994208442076252486928575398490484114070274548301387379462003631659028556120356096325424145701317263330158730044831769190041096188078790915507037756182269484984331876161087457662575815253020920116605084085592192405385872735318276685082534230440191919460274703103916744189461067232335957347319113341546492063645958605963437214955694445880194484600457570060211771751153921579264741311570323366348574746040077089763290215243100333932943110204648134926874242883140174077090515108126718690775451552753415338719619984599487600415111244923979547096603550062852372024800539316469001406455368154538450040951259282423243932581402166387526499848509853365771383286413552365799532374965172829049347540869023598142280254323780132140570913379783592936166706287291331220429970492703064643870895910570007575069020067445718047364988044017777903841222848489225390439874417955633570027597520162522821948903701633280095242569018134980661109144120546723811998200983199277273615423729425364249050625020690812688390784009775968117270052436387823508171771563459610914856874402841701192885203911372989952312585631631158471561331740956176829227383217507392677221549918347045112842317517798031953852138527189286082208923551404018793960959109705754527711109697795018343091669643255742608101476994101934181218086368341615434232848232418725748628266882628884953691392858646202819218963589702748474337134229656988977321362661780101500640532670474273467123493377022488344389220606983354458932988379448176283187792935293408002446943847363107773952842461909029757936183047525464801897619585116583417991949926635375123417055501174023534269236424875484269012175776952964821335315854686671842788452871836633944560602404344063431264216681232166915397559858527227379568814275552484363075111452247661134520432700010292522893442172286403086540759153630132803267090709220894139689693341797309227448333502775869399884871236849700953823093405854946067358777080380482419558702083772487350667832594768981968219315952305625136045060928986585964644768576753333429701897647673560874823442982892455445044248823612280900541218045397226305552464812307625550051293821749094029081648917664318766664139063110421949979581049744680374993156322295902110177264105768811281372060835161045157357594246129118440422439073424365715101128157875582831066134289458673561112021665678537097274919480445358982726157913169558022559762286368981708979938347408584928831466081252609114141660467211389607989508891549866127929558121562154045329823097145899569441904960683296206747234189129293694951620055882525446807872422800224397901422274391809805236688141839929875890264932885421304555065822038540646756890939906290632220670612049899049687288253543682722762522150504405543760277425016355417545514905010594416970806073531430527515846445852435369671583578711696410870219491388952897901202590279903512472334222894306681095819405381485450294590112324394638417066808149582265833339552151663946805254824245308845057976595754312349018601689630298362364724998206263213356652051976444985334895656230101557454532424002846429088758924624736935479279692758710999895710646590713059814402930834700709599684299729461365623302480036100134663923346005193026097445265425187398274250388800692998958995591140512701247731793248439482630859759352741700352768020258543963379413709642964409573485330089258926171058849175763862894143784850979033337960363428480578396593813946234189863098112757546865226918445487599687794965761437038447725708126914060938938858255424316352662589207112976860484493956701296176959356866373554900425549301210397512889629989676704898904858932596944152447379146456457162333674613418199481926307824552152152938486121157691335842243668408455206635380147855871040108151835655885522376082102519385085541375088768716887115850960999758577444714956699083793642451697634652888758280552255747891163191210968870812512079400057557172652271656334060943297490626547268959378964344123115056171770028788556576062274480917870136738844611310967831334888742891713098691040371543772519372699006133459386336612993150827175226147811778784868834865933516428278202993943284507518305601820801002787231392747494093694423565067781005036801726474280949667399794451905407869469562738927041145859151516405887021342924728824776498996840891509555677253732677877105712999372438568386283388784095000389305463224585923369610104884077503677720521190825098005802153685543335347461721308563047980062269939820922940731379607355270796431475756138370429912300147770785762309450727684709758390862813493229754917457963975384346477582448588915244489086383078298870480821158037727525107244648204727040082653675824104818124302375784477618559617018259103474779078802937243239281363533524352653800311197532631536447675396220357459777407585932969391091331968848263992761774963440762962928380057221938818923352724939651412592756035023757361144520681655219096255897427683720944720931303023583503509561033841223027474408579194663568578477548846129924129351175451846924648350533602205999913838928611237212191882165813336294240033648334417112366844759231984658788207310311455099390402719714578145066535425702187745157013860151066337004155740781439206718559969649205108258150691861011288944862315532875763812679937938820081581789807675731850686272856353235711806812964708074454756309276001744083359519192860719656613469450208197265167261630747633297239836895613852093296456098290702621403099654721030909047194714973018022921417122048524850290948524505514584177709407256254703423062623466925336393280607348682112146382083664251330719669096227435435958120509150060178615995759399822136803693042222610863113969379510926737669769329769392505378793727859136198321189341982312232410465655517895587495277225885540533033344068412638679119656263146867392253926467010623582801081475170125686691191037175735898177154784553656402467747179145738224285193314878798931045134616055294059091122169884301062590952898229759296325957925820994505530627989132450458470968384215727945935727185740299418544541041363629094627040486893974957543735363936173855454333503514632905981042684033962652496409424605482891159796043248233287658452527878647373445446981583019618566972291230566405699730339771257289467169441118320518104190488390675785774857675881684178526302880419504409090738807925680646772903591254121314900020513286457395592004169343751567435170085876245242845753650495483314066281688119965195171227705290699154478806233797669110603316847390796983098917586994500079494958652476381955838939895923869579469324769763047885669230275167525619380224170177674690313620820875219097840990441959670474906539557953676847276102260368604678780317893573419826653619762460500717690016842356021615846131217050056249571584321197294557131712467925546450115033851838867252566878947756078243720986729740962577392899520261297930552546368717524691047767895976310685078407575824018483151248891054991869821352488302433890877489805012415116747624466469090217873954164098810627662813027784555699879927401199935144486328583066944600457777051452404921406346248102593884845346396786202590075457541982533160375135159985436062220961307572950935426738713558806246066043025985479765336847024548029998028070571980445972930378717091744725064902465653448791098070280788918451631277353236462365473469366226205952879857397190396493476882049714722572365033422218297460407991991523943037118694178139298110501001063381388024395767028928915016148957161763667617348003067488179928418471584001010835142105848411302708352474789564499680028136994018388352133425886956410862352603395888661840655362681644355231678201396679623878660119033736156511460259659467365989231929046030196319943272999914055720988344476308292973412669920798799501262776416772269114591328209975671734388032794135983561639040571434732674833199540783345167821544388787095419399558279368668377021140536664382977651270722121103408920253491084352074501522708147228735825081210593462648232170342710938324820015316835490983487379955792847251883897454149098388076517736314369362336936375500654256038440763185604750291292171796872347780061025329651161023748747926144906685291151685145852573901947537701661233507938012963513749997741179485428623391212808579885903748464383552377051120438112939048944691406772023938865670497073560663513914092175263120407097370083858749206852508628367080958827917853102989117474640384323702031661115083726513576451842510185587357728795139287766773778052133913429858528697046609087691487667249536763314516322550378524051981230702429984181413396126513417091225873424645507137516797679818229276444738948934033445283915525606409646632632948536233333448166347898167014008311415215573201244212435818643424285208613795637938875033834984519078404977272914828985179722142272885863780079379108922331565872478509626352866900407770257515824583683317010577081231836477928340991569277241653428941876545098284375089292260785692401680783560186501043352714172760686123351216173571736303615199858925439933620516952618247634877327578356784781232096937401783254898633513328575385183015642506666725954427953782485807384995248155954691721134257816217713514517155781880080992528011774748582882109751273633998173658094548124839363983864495295660058889481676744195355682248586192942729889415271921853843086951845016802396153935540034493085379300276279819165617865088222597783175164675823541873466922967506976490672142653538136418695354237325515573682251789240988533337217034230529094645490404179915348164313564917684742192081297038827466900173450006802184079509343941551419954152352101921207899236249720155468536788849030914688091273544473595538417488418079618436496673946086554469472199373675383306121741497407504853477901448461038604811833636630888631240073323631506115736738077845710885291075187588488950942428422516805698269885394870252587418475995274511875995971887061609003956698276150868561011080215988626807052408904153499377171996385134682835308447811670677419312367612947626126806189309638750711900774061815026320641444704727126820424288916741361946440020873328758739325223003441611880475851775589386018113849142607795302337834392137891441094724657814345274414897050609577721265768449507096602870775527231031938155316958219861525255742331048790996878824187825872614915152283344918093963333342072174031234901930897046581379800126087209494679339388065910797331034932220575565777743069949194950290013369882338146556987202492505524184943124279586636604263915356001736495887442051608573142944251462647402218880477010270763510600879680264725093337614074497207717562159760928724446677444315645491808182258729972769590486388610211331760267051339009007773111095795168106601813084418812976596736206411278543624754448327492398316055715157038640472444409651770707329720942867419944850514794949129929618810098355067607725370978633846662311163145672218398255007956970150570542683881752620380091377926438818164685691262323912522795539648050525120758582201569144541232356389558772624130091228152787596543674929752233548203078348123539562868043192604820651774602761944122817857890509160360408985777947654648906764743414176166002484026399313382993301120938407887078364303180461554982085618850339559411447385438946299775530136444941982198019821791974426734712044176089358562149427013530535954251451849395280526914492731252874290254829668538893406715807199303309142273612515478171237304456165410961769536251435333783586359063507591880168873455845502614848740510890704913631868956054440258950071486407136589865161775106928764398886775249139031629977984848124970386499847079840355646913579872132341107470027680947368239441504823106232584744653332811900977983835679046082221284251019782508488618699524582986142209308481292274121970073908651655018561339213975516113502530254055616681037846640020457863117773729501123849192242109016670395250856340862835563197516833126852533284595338193842275777028011947480644765353272800297563383817968240450465975516540237208476696901407281872602044309019307290326307862200718391987208426809405830377563574869235943304139870924663977787724010895244688876662336123142241234949959381881474104767594634583763946774176916360514331476580989251818122650860335361420562116861845811230517627970266494632811916274377273304535295161937958201399547516805345408240602289864358826600641033765495739144200810333876198236032621620380448790805051107284866497286486110360594142743337885658343944400240058593339106028194299880524462817925778497431589091469429214454171096356095350253420056083098396415647327580894301456281013579702111353350304261624844773396285529908159608598434122061569745085019424338773251193165315465892617178619024618631033511926152741108459093729618081294890473589906836453498311178514428345305613751013958387906298471765276600591223678344416052651777972251784706660912119229120340940167870788101020183035735433844433098683347723300836032702536759198521505463347886569592922512959086057363960838613827617693103614414988320495010619470410067403521022144176526019848501644985591634665718538780355342641664591453568344597764999392566845964430918987784178539520169760069634435613301649524631918851341732343254174279013315337324137629876444971408746491692541444686064863055667436928511614441487012076162839650971643448110561222171713931200898010659737294290796232686410808030163857696825052530662546546724552642933260034637479462657759332304470289501078598733113070128207383456408425367314068830846377169855626494402782331814016531341048626716341048209343424799027742972887130159715751995833615338456841195499245692281872237253418678389750567040763994120359343583207692274135544820619604923281106667876642065627396361835849461892256975047148117825707006322469042536333910294142659085083697468666325552903720317913700437936127852735802844359052307432111421176000836485856695706849159112613913896018245171801309164379584155006333689607648838989390992105452722092717172392426800263208185068914363808875632460313167884610401592586969502014577929602594238631283190704415075884389270849429468059390743138075386134008508001616992653028797533195296993851191365833812736340231924168661406680740650200703695444841960867648201459703588208029302296878257535045216153238623913701484226581160068445596950182410332096342210545354068883151426614313373086796071825936887306268937252405673563403903121045832556944773868109827959021065124917651460274791469734192824636701029138512476519111820595929945808980454693476876022241692086704801154201075782349215427527840440342894305780127334716344361259966121400703957796484428496280107177839607886632529191092512049897825576759479593736042077614052535440639208620647671382303437226153083375764489411366934275269653217341758849681843945169213800098359171041903792231122154359687847270296573968040533565974597815343109846356959216977526113900342633213835601585598940253921964078394895614736339646977440715801135773238270725443978511736928603912328669015814185425089650473116014560656483543989997183198237423050299424341190048021708716327956643054910574168652107526992134607411932439434782517935850143323740074924775913807580252985730451415821195272087710661888808266146104575056051830450620935900343547566772559554993152653429154934122541857868748974618765035131938309726089737732841654576835399266686405730386581650029044773477322242865853888289518492985243686658031137585742014205029761087207232736079842118662292439353308509726776527006766384536764334976950906138742882122891657914216065062021327405122168712820705305860956665812999369501323053314560015845254666950115371446614659974450423095336608129130244523396807700917289273187848011402122340353976178780921049116390503134657004518668754580661300712970074839724786805635293587085392868246642596785298276789671254939766147157651726985190152312049465048555922092102425306740871409298090721715559381726168190040471311879265568186370595342086736907138912738149135621105286393705294033157208687773929226470060750968796016966307141548502533699385856980493978746052676032090751267487479046908846119032515238815390182831191747038524388806779613484935188444755454757029315758612129837161925899931080787886869117211875705946359493821698522217881499502839594387085808882844522676327740565204704198725967306994628789404404662930069065735790252265202009383973736986158188126878304139054565881425358708374312170039322620932778437401241536151215584982602528295863131730233466287962814362802694047530055704741219304354809647260249656695821188617616526527218048208175584992584182166416098081687420462417698240574758941921104020419634112081406344789408373300347532583451176202047716435160046741797746955212643580744325026894000212827472962685532004914743410107608835105933433928812200335060717962080580089784358459465361466638585276987148590111279212612911979777255254565677750008877481524524118951965947502894711097838453394883792208497999408198131833950860129705184422982465991188794739420978815221906579588764996887984549141214332175564473542112936612660308926016046910445288549981665267322184202088115365392518089651118083125881717465628258062413638623747839091401574284274908072308418593551726331579815788353438423027412706086316281875832121344185675630360169951076298246243904746196057586422927651982046188590953611430966877926799993330095723906525036049061982470328470874106399427248715070964293938703320316796762029687808082635086784218464584387276838041004614716938338713093100350275664742468362204937582086903577454887689722732441715268648334092636423394320163473392344201939401345600266201900296006971915273203444108838139519490593867045158111695059972662971465413844981077068619079644129859346097958797601870310088057515709495774737898240748066824430730584749142441811608005479388004624856375540559973010871436583589788498058212832996482798660637322813792349208908652477365879859347069937074301234777967881002550158117977853363264426200231425070374645314226898559471626075419584590223557121047151719344177580983664471161726765179897862737486632230837923838731930165494621724675220105844920384594552666009378134161824030470616803175075247067884920401546935739805218610306954174168395778605818297067788155517358182992760749446140507504280899031855374264511979815938354198315310588025255780710954683035716422137417052171557714773382323358430128187774404482609278687241034029019133451998749524332817249946861168850375459361194858339953001211700694230526368230704798729253208366847506193952862787725096578449768948033663620555903828813510318559604082133540427154736173224649259049243644000660072034396379408232936637100969579998594122383329503057952625389735135264228048764738218381546175755197018956838650959590995477832183310040711652812919241880634788652524848852546480983291051146349368246796803893549426384451718419690893261936566786502160911321607566790822966851194482539363755234857427912602200803379069972184348759309291154202684192784491225392435258842067558116817938808708291868948511706623889277652353589387187316151967317067579620697872712749357682862691428861920922225628576588668715459412525426453821990773911215779970583047101755378387677992266444129334562156904836708896798670467791906345053377422074923788770712008931664208155940436140383651871447780826678351979949952102506986564857478392100428799061378424382543654125390472483006553772244273083935539365473038137960002789309312488666249357811982257069736263529650779050336470360819033757305138273212272836436336579001959602993561579464239752119264190835429201578445525466834976723212109911697220213377540607930275075973094225831450890752082423842415631067668034056414574168194391879890549303610305435669224653366120880556221331543461771601229509857478676406499859863275765419483004893181710540539185682002866430216631197178632337217419763536938808388629506309600662227144340821029161629114999832623566377977265839451084938492943506132758404070789129028637160393108111675991382398652971980472217738152915662015377173165832792987541007048598311706327755073664241598411141977333091081888260885142735082169922215429001004850735385882663043571306375581999008000690543398306663260437526878408510219742023164459312333596000814316023321366160537835303387784146958458482092672470386687002659258393969493229858268161992439966710157502159573480598491702759138444724698297662270305900639028733839225651707677647369006725151984798269001303547978188704102812084755130843482669023628388361487274832248232731169094169888286925089509197681017449529336662613887950515058508406841746728107616471748122369139361885974357770020740337357858376325653324366887499033967543925603893549519856499335889576737485534344677111013428084644792372378935554769885130539017947222414240385835538554747045513720507736758130473398401063227329031480949962369486341488427180356500672234986381698010460750128299916668374120512886293604635789056545189207090804555110730113337394851101069360216916573830042118114896751029854459257023378626787645170708420507278724613446825676185418613165091106907479867401537195624527977215775917439397863183892476109187736566496014444385423044785432708789711844548669287644512584191709961914035853301394587057963544148462231666546721313987521226276894076543765332619633071148032148344998049405537551938102120096217389555714018465990536280735310628084582655601934092190804923870973092457711169998234033218088121936225460647489742422690501440181383755601822450297351521335150497077121707073151767217649764742094424084804682525244158400149971496974681652435095556739417963356704100783013443392474398721509423493259405044979907108050167314560895689794173380930382723625529713496141856262525988592425382995853450956582935219692453610711509284250432652324276895908129078448756877459673406442285694763233264683928391853780787955224195744858910970468893735053420788158255489504970699158610918523827586225135012496335128762216020087043478474767004185759502459616899833110178730021199697212908604917865035670580786087148490737260514286569506135484699541145349586700507584278110221680090103376995128765273605451783156010239828860516685864472138125723856960427204784686622418996650248437074572358079101450263433174221992874344209140582888571193161431385258238038371018516460580301553263490845873167772016595616967693071632229812262243250757141028235384193625993625381280528502845421575404994773639457174877521904419503104284913381200309162949261570334764627612455121627929027352037190376910716412501732148911377065865579243094188697297301622015719077578182042138373920028785530727318722573098355258399100140321520853294950524399123548570598086113869649249423916158776699918473262846275023260790522781030139901712298789877792230068949530628764078671442132758294273654109664884605751349617110478291720883404406842740927703173608266928396276921212672008873013644662553630843590781470232898276551472201013851376642698486277925932815821126693607071394174958170191863840667433236607921803554631162450631909905699605024025505165519734963638729277057642110618166009037328366900852141998977497754612677388742536869891296488809439263699026949834892758796998986406740619848612875289769815412187569343771253321865926019836316160961848093256315783449995291153489186025959577867161220836667534755513478900632787144016155683567234028215819853026420337840673153409627754893962611722495800072509022601335237836199596018511451793206761770098202300080949251372586817163403156797433251897850786324775161873137450990877968051342100728525387441301880872436101117758901243750340747649205752471720323327867708982002000220026410532103093495476937402442326968969962399285109461027564390784134396578945069367546508285853196572771949437051945165865822507617164701773128124021696111318350091686719326142045435152483268025695882131489749580267762012499334790173073515011518270862601309224000473105093675647544117047402080527090842344958937064348500054565070352001768082829252353753688860609289743883398740544327602739801663198112246101530621809710319240328792999895117921608002381898295619916322651706101133277813397216061366351331737663334416203957917922928400102113608148334698568344260519025607592953646094344771349219544094920836815207678608230751449541834353208999061911735742454061328775876008677889911328224623845142960515060768799951419824147875696637181281367970800236768609176135440104717707637558193220757848663911817166944253533059710114787216095806956726690926094854605539338365403031095147322883446272948699759022721998422902409217643482696122853105644472227006341370342542406645314272717075793497578629617262782031282880420122058701480784631298861690544834798868930948185067207572777056350833278089750698415934197560611913652095825353014048906967244244203244942583595412314315509325292777489312780535196297786952954259549285811763119142757491089790138933326605095674319632520937761872276316377499545567413002089222331900541538497485648782401280690204726889050602757478160096378586449060957110059394975037009024850678490058529450055052007910473248713148367758649844403815967305357285934976561647240835724485807761589576476727746475893688068763098939155968372126060412782784471351573635128075983660203180326613265286335754556074269446848131489177822775256964528199320295137559185252423960676799334414136953130701670906738091272477089743984345655288462286393253561254479992650219001281127430815072869470147247365723031437064357942190588039205573891506188009145769580839079657848282448495797850533569358825866003528211702476157062119139656354314930006827327432511413942929636413912413021083657770373707580464607295561243342378977103179360402589432157361294301861811973166734095278760729709717732997728370045845040535668104470299752504401334052087056496783249334519844097241424705070683290809939612665924701210932121628273013424035810862836028611230485366559539103457550664711992816131293874172314204675550408464514133513691017839388168170814232139306037483764013284218971884319868169923618679194990000919620355294907322027579783789081636574692322044395546226022064386000824404146809784572009795859552296869639803978572990287820513697990022902560142770484711665260087108236423125766243484665830713635971649912137670273141059958748586440994957071049733900327240543757044136640889997914513208324942669072572809056299562426308286872558340426890932832677929727092633749606745633852867475972283508516009371022149868506498766433218456996713082149134510994855330182858583878203086024575989177756385206944023338479223543354714101618474549266385526336631331037511205212701463703494764483969479237931797685087240598631642941396530669418264549126102955903384394629330923956973350377283939020323398729807720173780408447621890068459023501928294980700536058020900939042892851270282635852841759895837458451847486469872671511214633906479840596435873826009187768883007631228020541568608178234569097927211279135604637092017612124528579305358525667524638662736605864474095303146282365377879697789910021946006989760827716064844093821705473905400602965406394159439093892424278235798394339308477544801825582807314598916165024231254969917230699910385968837806245171320855330292444138025555423578086608660178072150740474216843021356687224981065172571488709590211798503905193482423342304947179151498356197239691839622304140791620535609682299182524174414747796441639380083654974655883947571771932424750995894763872978429743689085105034539448372012675079978583274385428761690639952431400213252842657084343474860779835988044747700433709088805889062194217724875734716757554953455510987044504599354655141978880440454676474792805915534384131292536405643496241670481421672644063439956377815251837798830993708423002232432136970207480549331105614802013946987675690832612647870410592747276417695945220437136222430661832548584615993598095404150083028506784245298629896905762361861454467462022442079023783737560963598538354555508725607714113966909601524525078725571735219427539347698717519548807465308655945331041091541177040237479216542233772725900655891096972421660819158908632789180340564331972715169153903109482893025944034089281129978836586860508917349246397240462395562029921873489046259647091645189490811439121349304191378535425953023606858477610125984962973104231055883357789568091138932822461364757770839726901768797521710105077582480875391003282441424939255916668814196096397438746065726679834569727129085385653261249083914806289848676414588344604343722732929994931961515821089692346752285437695301422540370989869022431116760521050393835107611556459921940505299719785641120025007886001022938540894355805160274719499777143013680960420664962594550589386491911483065245463802837311514016480722579335576310017987264532249478965783782664992762853682869817307410192334551535231626281895426634483685971782494620429188105871151793332869776299776737830720504646404297805458256247924305894803731416288767796070192460077072586999861627597956497585898567665188823690763216566498446247623311460571123184580422669479811987457203839201469248060523790549108947224263590706361128635758990524865868014619643713171040968828635319198213612217784672830290144424739918326152353743607339534233866954163155296943128514273915437657314512970224269448370348448302164145729750962617678039402977174946638306708840585908308395289991423958352066599445266971111091621787639472569957049110129629324537786422446080764666296983284507671464862774834440582282690768155414186705631539579744536703131030622741383915457953702454568870197974586112784416180875954411208120992829306772454022082612536213437434715534164048002380875603278992633235422421229316179493530337691899298520080399127073823567263113525817323632596045369342134187657311517645996069765241811217389929414464560469888886195944664398629634948600018177996774237440772216942181573070560516004520443485954810182971252749316649516359166504408356580284156170285111547565369710358320789723142782998909982611356897405426608068208295034945306154578751065755089424320641875935524894840067851291649125839435242191826982013524236415397736870929099161043697401375693973480108605290691499448718861123156777337026516514352105190052925800143349409625840163361239353705237276135737322615267769941392035411758411315957752787318818054114458411931962866820591055280556322867612474715293446182166712866062094588715186726461366367469523592480658851473276257201700935224512340715914093639468241993394060018225533212245191725768582176516372621479396872063731134380166777148329920214600108537879532132410227644697012893144485996913405596556460491979259545396877393279765546133779379164576050595627119388610226328987407055163340737001847700409102868915140142620383132213094934709236596583850246232569963902184725951667584793732099168781815190697433720088656788117725282031211016238956425909436122931078794723153895147241443378353672238181032477438192775155915880442276173716387315106229047554310855084709705484789333900317267020761052278352151547723724628589588093018147284137194325793868738407021732278483516118296909951026143061950529227159198673599947983759206724180963024652326829178724961926489080379064138147528971573414324719218405600854410774679297125631906510128998662968307810597125508406714080781132343906847291625342721472458992931771558590592767231268418743588530079658649694195444216487713791493917725358974555224489035377350750214928138340709977940247773914950349669097213389163854012215584194030769115440595989926026995904749297482468332954035323831785064794383115514291750030906583650449275064523619105257641094394399688527726049759911663666393368453955200023289623865967344035031371266127623764849946040858400573653378498887744610672822288318478120620630553614587220564306985261737760276008613522297153970978241590377716239826218748200613241271636678657589171591493447908789009809620013433053476039319331771291632647926854040652607437368442402100133821280237980532843651752009060889850904651097375176218474321903721774155648516562986648063102246953280813070941446169808903490703206987535924037746417936005403924814621348580514546082813863916931991238711072121240441866792787172319935695574256395041193960928197465186752067004459206571446587354853421876212771801127095712032243381640933401742580067985452090619483188587444286813577157381898494296103646984615179068432399640889579845684827777625947213823413369858188599277572880644607137316229107125555730856030374693645453750264617615472188852645313979492814574057499943969324983764026740718252987587343579915767954439213690059192552114182964767986114488572719534081846816821218947844762831350935550244106909948443396617116788179515624992737650826583711127871218776895721835842710203255345996928588988149133088679759613430342637636904063183434593581391592321015089588109086297288521711722367134135230360029305452226643348972712084152582426203338772571494790756257697212260255437251363477483187658389603412548941695845897421599100569894596476694336652012253940012344924918442906455813966470642614261578044336929898450907970993708426135594209068506719405870475840105308590867496212691140328838267227097060459657265780343224504420469768965741534503203109371706939596345150564192208442980038534471347764041512549169021402544215890421902902389464189375276246099708097241970685728175850351723522664871319799175540474641747130498979794486429736958478933660436071063582064213625167639170396842613987116714031722961763653337837153684124582499385035510670706409923213046441937662135053466885740808046958609608149395382539420689495145739955230615452387696002408740313032957793090959892412399130819465417537140811152917341188989207236852969449634185222656113334559592211514990498282407336171530759125461182853421465878216385017956113550131022849668087719500394631908278635206914029331297630451092626258305778765250801030203902942778604702537276253927911387511371420814449166830381317286049974569752997073519599505949397387878896752233155414882857069134869411365064951411359668486422269221457882677703239778576020576737509558611560835121935290477759923608159761646400332810520623128436654132526860809905405219411570455598903919217499612076926303058990163204409415823507418190321718266030353842925201331281029443302616370186417378666392787346179488923944943947279433276780510098012202538760702482842863192609503614934691172070092262097789166541021360316542607776898290638645449227286630389974813632965035231306787783060040613338811254481257725134342537431147942577337839185243551815102605564107697755399274319304390838563887068763518778109027257097794764527701788581164558845867363353020578651611706841425685148677107304530777619439969966329115744241504952617790295827088877682886384435973445461473535915630401115271612947895419166471775958225889668493003725021132892257395721344855852710818340058434292745246881321521865618416595861322420263623757017102449419002754790709932102771279561200366109246119709559255082317091397737071450734740891063843647564740228245823987801260025642792749733545320789128425529580975670630829477667254172297469282916186686961622417679958960868013228757899545929981833898356299650774170665852400734843963968483226252485023906707534405525936433958463703873408519879920407863119578223434922063443858587733130367232136418455634389701768862722173509970009732835400503822987515577346012674478359009792573414943837857342833370467714167719414553961770110676682924545748101712370321116607404670979734322587244872132466733434870948572246993942653452487858401740161747602802505714863219541227502713328073788755526044815568152745622242833076714901006207914777823922183133166816727160481045691684701485865032327450285050437185981555467011243343560121727859627817485788598238656590743311255037929473202247063397528573049440890812918018623910306189633428984118630926298067179656203431221327680455759331280698661441019621087187618329133448749415163869035666149637799321512807253388345190746080288571418410836343385519559851780393258535988047062880802945799470980876245151178558935281569684864194193635183478313786367346856284980751771783504605631609064338866681442171260321882623605226946399834416812147284607325450333857624736982193864461346814277007990138725331113568542232975784441248267787978078019975719370719409029285368093444870945286007762875278466422148237863932491113079760561888353766033713043131616745306790708990784781367264672126338358690001845995544392233111166803761854356838303893785387848545655556712379720579111598788921408480390391038859733137974549257714947048663019580370746152287649393032843251263848053807285873276018944900729130643416118018751815628124950771422605779367248198512170685908644445210916514985503678016339221810243092243228411484137684984413541019712343595325871727749518123178726769252641628193563832749712042010232129780978751536171695890316751887278078111324034445813537833355870555686219983415052302970392763379668975196152140792705475613925345686935982820859409387676123609063457040761828422480357789746316455553776084243472239843789425780994044333791493187055929027875424281633603595640119305470309472674646659292656899466376733845954870751456592085465779573309253202402872088502606715163484049688687646714392978346412962401081050383788954477796300833909073099613771680403716627154882118778434948859297849677992535142744373492419093760959549332002651300501803278934823002552555923242472103474546651320131932908569464865756403165499711236295244936630725100608128264295410212006293719513117735214999427863798371836746959852944866504043874395385225307886466103323752193224661013909836690830094423156938000732655922838609497663326595300671513823904539046565623102370648190385280406133721024290842736761210719060338215181945303458125477219006397923667443956039829061571366605890879914355503757968992045520321101399479083874550015948482732045470432057226339126195702767112647481751584343742069753057716463235495662697724643824798135379078072365769628416296455121313213562469881074977289822462635611314807373796251620461566798298969707385935592871258417766797251831321857726200198326610247047957906385045545299009667842172244695005678213444465356522961912808269235051543615053402409867394052506797335954036097548349208762874501885706063938973675483116345754762936584740712688561235353278566669004788276752124488184244388869850667115812972274040055388163004500611674648802023633827035087439885573751817491791430069218506348488483578317314780526353868803791600194587321712578128421028787366406163778435389366686540920142875500935736077284456109938357243239369985563899051053211839739693322116756689483505068269120346899148507487559842131818129684843758606995483887773996840686842412406172894797830738573856281998729596356445387310499103174814951017607129837501017025666654320988334867088345009633555472643952827792402856939182726558234922272950269647518791500996296770328699505041320521556400561045909564817130619144286078560059877447670524457792852867174891185463600019823724544467748296149327964219274998551356480404142912097898240483355373157807213965695241658378226257083728877747035588607664935516070657611126000770034857356886130763281922122017531882873367132943092403066581017857251296925213755441321299928591211693149526252499793573132250454612039985983037977084134186033571827583540439581679092472657321530702954310413702039259984873069295320211699070978067184346154432275135094225927931497271747405777321870519708064433593114773046512018088003551480345579508027552151931772540294047771297871441902201836425772791155016123731084723740510458433943296903692235191149934480746122483738737486350701890440651839788451286926710766092348918360632774238721817252482787435289761129846483383588105388053086735647778013233621894055507127279962054370665591388320725683520240695182506226693512832225936040339065108898461626950873053588327854132573495997338290334383388545131718098541314087029018135726143563151208810231763181065962586897612499267255288185767184137928028976308056457620369236837715603871334506705454734959259409331520935333814467311245801475608744396983416786111830625991894729696941604777311253830801094198488219651823672961320129830409501281478924059868883998850500838007939911623911115067746837021470880862787434170029079644324934410595026173781788707336621367702438441714280522490958339105723770836525344191782569959997949222009599882041497142439131022905253130849656536263386296048591015775398685716098061799319684325453973309006241462159820236330616262453289669925184150479440371728904772518502970452643990097295503455266458874668241105055055608207842860798926076195892465625030561824141002540976176108139730860462472600168246702540132174654513965557782914292640575129014712091219133516694185488794134388766119558134925084784328401593429413257509492010744090344901274834457235847453493098395162135458739069034099221090145749248094859731834704133432733695247573777876447079972478185546273069139063506206555208561321014016745006786906214312612215476556455242278618498257592648705810394378531331094301139398373106972839869214709785179434581376285598664091783306274474472457080151505535812862992338513473721851163309308089066101907475166052663282628419092588966491538717045036198953839632082307816053219144613281466581425743495824315092062444591270556104830533672649419047864612641712243155763722959322738552767206421009151830621963227079368932811660229151101090244850575926976077490861265160022177922360720232047985314839322266818646521704044556431479593329292636704774851723450048011979542428453705773327163437936741807037174258951567475662686058280286660464751718167959438322292642160788050451098684130839162401677949595539678118987978628413803667630154383943658203149419352853459314702382067121070570782679949389459270632180627524612516759927157125416852461726752417152502653384307978988126514897495343126084298124937633214546715503271348421697149179879630422892693639304770897292824373211350372861342651401912010497868405448203345605354361611309440444954373139805759510163286709539807077619368791506902848876324453083877324842918202662955716021689674990447588339644636665666181615690236240836058792631408429132075620456647392379677608229125894189103184242534098468967099026637276212424094959282924471385688259349337854159497083859817111422123523170862529904699445921069142949994804074202877288452916174539962196140114501838654239029957307304210979116206935542545199176948605149190196911790302002589189031394937155126813187239896616603305786726817620545406487780455204659975885425836196200650007480213231718542146621095955465163831049950866812874011112746364145414376312284620347045225934725820511801493758484687859567111413894855359673960166513883305535035560884915789272088393253524799648468031618623645792640916947221240621501458659262641173683628162632109739700424487576525778811109366713181586122305513597507630841443268383097381967473106466371096292516999079289943256245797816897683205167968855374523763996310850925633942670742739727697455467412327569254392793104736477708543926568471363585758073485960109888602194453250419258964792043095840903170925887093486002239451125738311126479169421761622204888053125280503989849471968026630590146365574243149275809981160565235875855602138401710401030373019200245463761688869120569066928361940844651716049267066855459582399862307772160838212474901918643100054233707660635615824388979654374063133615360112182956892778316955409036646100933382017189301485150925565211573291413191644985241541038097322695078478132999772589821554634384372367807612369387880357841536005372160659611561600181658137573282218722053559971923542556452134816944644821046576849986103996746026671523896634615164990382451659266119599781354584835602018740248373838239721510833980543941084933673865650424086070660335451341746268935185616647428842885215376782307253560370809395557409759822166555966549711040328353554518472426179645603317829024623323087740741788948268082024568001733414870448173044325355694474007282440678033363379546082402816521415698436523607609266544199648458843527934997879259381166642795386946659310012921104429253980054790003704111751607084068360863333950003202739887225304904018317381648188701992821603710893610797209056970615099693667572300825506835146172571320376292323079649100285360336301326397480964828905374273134193582632211737016257231675522618535541686544181745330235584850332640889208749772605611152828031527994923389711100713314187364081376354831279614154284775724394749292319601855503233933140084149985481989068094981687636655513121150349637368795924460078616318644799002616084684407301811433438483652800482857982998431091771958681532360752991163183582222223999060499382262523215469139364558970415619394546600495706845996726402680322277614975568334702846356655768962895325522234744683204760639450845304476147086268844391572341103131285577041917880709464851226347808361889866336408882381041199427766956636837826901544112609062058132967718523189546994067863160688044524352941884794778189091068688722013195384786866265788903612947391099721938850607955560932009449943187750822507143275773691989738921899278901712657712439588953196273885514824392244368546557409544403225223960897146815294238323770991751859461567412044561480225668108031043140586060707972169628910321128686346775514563153747167389734382306721606654499141581546764205452206478434435584426002464426826481883711624548996790918176224790257645435671115637486387939567740301778890638928407937480783829469673783177849280805579166725535921063771566171748725262530093319928013894364116008791173300171434253801899528917125091220177649088032290388999486090962669664657491028006586592499102811156134688378701560607837531605680937845863386516265890957323044081006947892964948108224400333074255032947725637037507720682178137280082844342635892407568962846223880291629268696309533970111946622527962705755624849241861951392318974138832744054788856594325535499799828074544819488928998374806370357936669645523677229814817844523593165004571689841757896968089906325380522856395122913847521355145927743577781555524336739049669651580857840831112996311334068766274958697371305543593438368734267641416441442762786583215415026828397853776881717374394609151920202337148410564738193754500444566729034045178542612905057368206349885151890021021529584078731232825449330966443295033895688345688568271869071657825350028167836818176832465044472179217393513054994564889060017634444790103093917794280393299200512032920088425120393777428891924960444682369269410719843716929054506057486074012927193537352068176159273084645942225339051990724772275029701900568132905010008894617786801176218889614409237208209705835586194558105907857586849201469124811534606461545380893773972824528679503595312652979631504751999903305030198644736507376311038932000368965063102805499093439365168835862487556533219229890475941353174129081853796553204254484264963279191647409220295975000115331566088343447100936182641427983043536762641905033600860489706870270718043262136711667669719256021534781913750819533955065693889428830578413197450692241108123247470081706741495385420254569912580192164440360833114119757777801181082937930659168487184958262651182891144813404632137713984387766436417015743403863165924894955613373785908305523857561063871130547221675811834691889850773655631371803003753509629028853988061296728524027647682865749323332960278289727645040010554532781818189142701863141040518151318809434448167900748625053883658480354392012848499467095919489816101750137786493891083400720775123853475125150963485370190472291571345370141148555019703732926748109961917315477072009720475690389940290356096965747216201136311366218122770980943693161545622101041711118109282065762310031076542210772609754119593397258321045287591874080455668672655300726463277774388991134727169861773278237771403472063254743205493349626475689150257538261668752400545415611019636204398834781441071744644436661284259543470929235459800783598753139507904412259675907984759047420370839363653078134216012629987664262924860109081798096342637778449055079975586522739128553840779676976428251624899149401016349522285563454519344804558059863447609114159141419558031263026423946252030694172177688717083322252525155234410027192941463997647633618174743855455971430588601008694959513451397294711271374401487876881554688258298694074964692104959319899822029502520093167830099018640612744656650532567760262905700107868677433518323000892941374036215167557054563457525059974715167859489010174449652942270456283281682339292461147296837556356485835165664167089122633429194976912419094350398241585856490176654160929870918548703110661831822665305381295611023281717681666544621475039350243018577910993191992080782698509860403048004777595157851773236592959465928751942555359272025863647441851777136025280529593157133841078563957935032442816989552416553157122083346434983411102621834591242159989841835521110953751220796787168799142903409167068468641166791920857317419416587169893042456268407208474848402301688904778691100529658408015055009263644026666202788619334646210605778941903564785857802091386238681275680439985307996207558707606540374402074573143372460109775443344821299325126792573036758827717695553745663482608193293314554719381272355640876447988016507201968569504849497379470042943908860784158888451242862744729808739680079889515935787125543734640801865155634854209594042012517844443524278323743185882921640249460542208208219799489708652410188148805530198538650361411373125505612866809051289603046049281121075801048631109250987770861875162593426055018727754640629542091757106085353375907920031475137523013753700298809371959352848366382709020865297101152642318477577457820498132920500472231192307293042072946642996443747205397330031699901874186992999946963618595421718436587541795543724902584211840598069225810336966021303745377106147643780142192170126421767453188757508099208635495458095468769326292554379627590286327274974159348516199729026951282010952698164398861958946094139068330208402075726468192576796435808112160481997806212770515881820696762177862076851203137288369802977137251365748900277937026544315975755918675503895558532636822988509506497809136661624118458060901398619225291991660006015346823212255085385649805662814387915871871094410827290136527677582101523135467985234829712822511536842730020403934378527268242591480974436977316014739981797813872478159710965696979078160355168499493434031197887851884348482828196858047098431367124061224871326645367525353502367777566001089763969277056164511548484884003904865906058669215448657438552585470615027387072177157396652404869308398203556680268786652030512230178457448123024191027600222558875890269576690198646191977996041908484950489210026659074894716867621769659156418262302009300820871471000327397305702036402620429715394377909006017317732895287495206703040273699312582528021786292835201110410718715481898919707852089554561789260419696999921591965438426514480141591361760147943534109338488395871507834979276241112681372180396387410197762726626806062791520088292476484623780817892637843266367678174874882499625423087841186079221788642621299418094079718783923393856903044584520717077587046022733121263990658369400026110795181132332374224149434490605948885984197356506375233062896859485913590997259728386840322737738100549098207262038565720017843208463386525045527863865619597669474074682840128565001966205805476680698104417642180801421627391111192843597652273234713174897325828377695283816169009690524785048507779283301911086764806380139281428159824823464484814677331681901236670782257290899695646909924476701582976892762078708197806334667915723022246838161218076267178756013979817255393352259075970396583444008057472091113605566540840600121741264003548019966107454045967264233290498469052301751858557284232755807382902432020946164072224246439662279122350710199503216592910306323887461174414664702866034253438136677177360113368295723363942235771827369865533812760131714493955498477449201218560359935013301534956354439954783649312782635097116180340553139403506851419209591043255227208908054362814424288133507437238706883468074962150272326919301296529538487794183691823825829576541634868844501673865781610439874630636639034564162705799251933682118091473497344824180978152344296498895044789021794036508820138641156409075070456264223549883093712047427054532396264565258526916122998274775480165203058124955815927381299917216924555138361588304974659964001474435622292459082151064815227802918800701172105057082733714998566057910821968911376266498759501572705865420864292047777478732401793516509929223575264181999978804977774185998951976370819141603809829826052938476056185080504065093316764559141107432725497616947025368086331524779912943419259976283452709248817456139724751138765605329347182327333968775212670217708001957017048126641303142408441622069715734482701158066939610057105128667166626768592580424715532983288124954437580327724954167855933220892632055902932750930204986920013898283048247399192164873811635091847576417044585132864409714560939873464218319484352681742398270287410311687132585082188620831310013959938463097820837982099770206909744024778788615243028697373836475240559344681253195565925473690267907476757241072243387012862365415308986115798026120672557478545317866476769269008810160584561723340109052940482479652591401250993278263444459843062471649692114267182670236566124914939759873504911389851130832216137226632663039496215583667681986062118622780832621236810455778600744952674952089944988193952386944906576827847373759485287221478461221322977144618637795837205850094816265439545323285735156411569087302897199779522466871364634983353337196889355520839719065245667329638620203725368136612045071756304884603595352894499321177525056849387404858422673068592119756859480018046847313031328745142580380382788624397163740610901958098875928264462448509113143521916495661282959951726483717047505468073801315529026971731399797342076255493396238586277507215411715736642169619946045405751844239738794832993591380110089563943783163488391436871497908066867486042888954379983978072222696131641559024148251627215955088045298971554912669297692720952221545638685796704556764612590720436034686419999649334544017492484778186388453877790853824729859149730696170513480320625146326825904138810711690138781451100183367535559699139800988783803622757787989306585775226200908166401626491690990503675608124394303175041731000624117248381867171656566202848027738955021028977640046941780616576084499725206881298567554686706972093664664917302034401599659016569394236943368521347337952888488755644975767038874477727936161616384617688586620951448209931576242284618287098244911149764943295405891801604419969948017535733681405262417445028242074674538642413843415442109664004781385897214517087250659797786256295716570791299662443611035554725574099960143738667860992073354924186660525662471368940163559559422337002481378270653841309587101796193130739771767262327072013908121465505160253539477936104499252145788082284942159993841448404762013206303337727850685206388947724119299746058369551144022611616369800495210828965554634041259059982494539616112869347751858475005777417100452177135544520340973735791965657813875811656788240404860948130732338929581621169125374904655078427470022094427355245375025980907670645259589153935594864264937569504422854438335663731542614561287451805854462065796743051650374182519269508224423309902279444192533977664206945365748320509759885824827080752796905020188940564506669568465603844447528183170260438938119084468397187167326524727398497126920379262077139182411187572644717401520763641195325112037236473023513573203438500703095392523606294537764861969882829537193904509082092126801661202807324930122661138533865649860852322211253344046805782098498083513657789482973444595424693372465873525339530271226628292750878837673593987597906913294213245717327864504130345470547673776334558090739348253962367353958787714521385422503461652497211557707315333517448604874395025148027577137528910437238030856909130947520336704011468252349179875479804964380538880621561579117276471728215628947430735419925584297871470249132281843403580096338285467307461926861750991746033751790823302855106480070127831585557047591803918853494605066121126265941875073757118300867921098658715866331939956193795146646543863294648509761774309008626167091219829609151248447688040730111881512584475537131958620469655844187769767488811309409526700788110685152089400539583121006966235740138801187164300241159362109380707406026710042145052161954927748870072313005723494723399430305896247770935292586452493884154806645398580621889564017351081559857798783641791661080524022511071348052281174488035304116562943340423555686732869661144250614635467004424097653950453911091160836047738673065342231975986630185380712087556418682300711462091459429291258783692441639901949340587029041857319775413264151319491089591723497181238385106242404618653631445569337795801110420902112083821572081259771821147353171122169863691813378294178336325741217831353262111345562238914310387011865637311576410764954489733002523857912767782493298697448374301016910505903450173438773974684847997223336195057586813782533608808976517928126200682583753868045982879227168695227862292814514070793928135467906481998642471119685001352744117440000607963909128602493872860235892454530611245454610578595652038770019134144657685966414492481644141682602868016300464073368271667916650944801195577738302103167108723387590926340302480713465750815502409823035106468642136474553393575195321695302400915153519623001296814836689265008316114451053544213221311968188641413691551761422456551122736858652090366853469972401038405196529248395628760142853680948197174817645488857903284931991006634476093577069192712797965276290045873505342311233260447291241875892959373979333305542359477870532413028483544104935349650487882806463314046800212217653669684119624543086737945853345778345031844286560732440965180330676504456009772997447509385798869366606941039001892217481514278582337408732998073146279730284958998800844540980441729499803859657903263344483095518285052486425460009690028291256580404746095449798099107107645952542786425842795282537287016617039514536856189800418723099253136909982736964025970660335542800427144720575546340586035482136649922077640555679584256955615642623620744446174819723503075211154494219563467739586914240690592366573059022499940468254148449262552706655041019614507427685054738773722653330432175741774543347866547676431955385075516908736578679106632905595714734861677621975597004846740745603134014966450180561972323742054455115855497502333599047010660075289996484904338124432354058539253059545352585824484970492614771217444245021434400630528296469574022150268252984658196835664810374256413717208080143426977170350999638555832396673550463293907515114749643053675544279483302089922248063997946244667525576358344981600408638113610661123655466125139046337461054497383539457549831116921527133337492606509422081146152599868081319300302200907742346149658191759107341769384100325209785495393609968325445515705657370043476416689204925484179870092279811541393095399920326002550313656100263937116175777937767268231332215348634585910056125042178426563698557784356976964093674496774136412312402536266760489891612631988523511862450860481855598086573226955467369360242225864163912813822502602125194216403618086078943873289556806356699208528656249370605674494930335145731911681775168355167655388326295219047946408835380792485604198733527590247895592074682700988981648057179903155710093052518199557723248751021288741837650932689147052793921414428893546931268450203764528536287896326025559874133764317859776209884837085345143467773169759031572795844482556054843507255407921181725561838775257743336227762565224412284121726182691413737031251005583455667950394208348062902863271176516933918711131068278775634731179272510721265781201541606362710052850807859851241929778500444811492055491629463612728679274714802899164464367333702038665860107120568577575743444074834168193163096053941982140898289959712136211221139437307028241657752660404222222762422039348594979175541835991309236803032946958261100969848342007717862712185901587412624153615915638970995616914776694293358512241699073192632617583985084792548899220392183161128735490961951171669455190770688518107651986809307560987740524333446867201201098039962024536695270666040205437509179245268764248424114166922598629050343912041778983860405745680595204752819717007394376606942456529202968034853669081704308843940975269200551884752783708493869266466737551966261358460274408959417207753207391070104485547441744295183550335450377414023957236855395288736695515314580749284690212499948121667861137125736901743900739867963159091227094868180058635805084492868335669582481829671977460655341223835996970636904212526976816157008188710253834394489957233495488186701297763244005251756545165969877698205838660500559126364483547501651316885683863688785639154156434836071434128222194764678193498005248159870919914222613893085401975582634878806140351334784921868007666316714044495379984709716130962514015568739572806792080622598358619652194103974447049792383229721913822658859041129106411521680067268323473613829391389960202792072447019440208997366720583442795108042216172044929011619999638924418132202507037072462125236322540766182656930441772265879805452310281271341673250779288621981019216586978244837887208394633062483646603184193747091535629506563293250135513988457290336757170517867057770195637554957473103995866985877207495099871861719106530085996547278543347654732258206335418462260452511053543674078674062877979099422004992530641804896867303708546937564258422262767107364373750191600161056913657798233945952438108932171293700458553902371197480089213811550996836651922830244355101758506444005358774633173618762359074911398535326714329103112674322427519589818836213569617850490676444345000834533218959936074870734544392857932676823129960181512382173960365167403850808049383670670344470330548090227272914772866143595690808420265613845069718270766604445108285831848838594434619762422181142270758672995422410855121663304668334081292542408009261321744240653635560465080747386468175199950609091663334498664964931665674568788360081601561465168285314704846618622200335484325436755876734286003339332448657996854660346375101649719947115992002451481217290191784634508246483530352059458349278617537964560092860990424792537605188121353892324361167720336479950071630786101962203536101624108198632287353326509127074981608632818485336021149803257080936724937893286943780133880130903941899787200724837261583486542210370947738675954072465852623913169383871184573921150383707357736948118800289938353622323825772654277599318920761221192367497431868916035048511712391142554150177280921725549548035278077092318721622964703646098233788973194218594636097051645205030497673656761459387108054062447456986055622635569897685071410672157115169304220316830916239130770661541402284907069615478319386858480125794828977733389119990706435347153726786463996187346669189917721359300372118121942369305816757080704151076569651397370301442996834860795944829626301948769050697408645935782210347132541482637310875363085518081494909044470248888416553728127638755624079471432229380185988792662287537658443556214364885008646224138140937823227195205714819962456138668047754049310826656169991530424557733988662754351549501126942225350985385430070957152858589574074479392888403921598959689856949592649460176035123069343940823496161863235775377214983999334819244735077740554230489935935154308460996144925480052972709030901637860057153627130051204768506381378516812131428410944706297943234689456829437821038993497002795338494560087395921214012187033261319397959926704656030570647687452787524518744924116318234790579198612526460156203437327625952146028783716877025349075871201379611950662471475184075104284887938967130174401828536902169102884811992647655071573294001833688096345232612533633968068592320657024789536865730917891071016412470951739788432983379769840350316759234971819716085190584966421039651547541048640344678830460612826524791279910781274878754027119891405639462197232371883906635289437715330735050698284950292481156531919933172483229520550117910440408082295161525293125972712754193177920709755185284582128236655631347960539487752496423239332110655417185446731114172920593995886396453730080667232836440577724550469962755504206835237117462537067077000811962861215468781721844087821447620252118260356515491674567618943863202499404732387321672006899088317032739874839128631224625504788869077871550607671301538051447145214451147962801005058598825792012797920536181843523952853973087721723602278820108227487144608530523778128909775953446253988431302081851194980012029783517644328719194201496292803772243586461303840178227217665386683173471931782036906383354342476497450205833277433188794779217647158346007518547504639534381224225754422683791325257762119268898216188509883577497337062089371258786640162544926180298349277455211917076868923541101065768593105385408386915204930439859520879974030402870201344402164165179385637765395667717038581305372576822708913556314436293946972249604285291047491878688339220830143467271094086438672207600096535984004644591080829426647226850084521223446675966935314238434154915441304587579379859724415473219683218949056274804670950552801806476611164464689064512378375896172752941974574110973534544348352313697503708806251524882174850905402967756136320171493282921787364401528413645750568536619166673895858181241653129073208928535002215085170417509345521646480225485128338198859757697080424224699774850704553888106595874946974279368887959877639181420494337717513935435407166363880725221586827608078735624777331783425975355827039545884461304373416836285449680573877641505711183573547661451001272993052721857597634201824112453506217520223351651676320660851455860814583323750845000398245847679553284371075777620170625172418975460664341350543193760934266124789436308998059514847708468693248993223881120025988992844827441705299395631416094557788015364407693646890958085517183583517523538804497717726220959275705790833303587043920327687071694533248518165218539103121845605617945154765681057003359948338722432194321077575750179902502016835185938215466876168899392903925367000717191472667269587358426083685239664647588398668515604529074437670531294127694543026259859728181842518941327360022044633607317607579688255747502006927143809599686061895840116795585338063002001765017966582256571754484660854428234919556548494373690394231993241399983661019368489580033439544492391018052463478921653126093075600963698173436129181564684371770733175864023514344078292611928279728803169902102973670892471940997826074619500457142967129645009223324337638903497836367124968123086355075220844150168447395952836983522819472938672498042567602972692349202398130422027707498094224132543410631627016889274298607269801501705286289757461659428234507041595725009520754147458753951100618544118350874515420608247809626751739618463045752214244044672286172200330399500723693119818542475671571665868666099373188150477082576302391057981573450219405216887490422292143933440633228576222623471751924246980608851615232825862920256723045463397782964366376431668830571709257557651417432236452742005998096738596209697629450374191481343426148809012686046690868515083979688724117274796798030071128614443568617798661952605990385760169463917596975342850473209728242916211549761015910997107665798988954427639003878468003587233521451446831682589772956446835548151287737546939207874160508697008371490823427592582036540786940054454778618148991370583691212846494601343623376722929699799910433253020408991483651678619191787656899766174343568371987474964491032452497069298502838156669636731149647173842654649862152225960738246063682695156741353091209894265429485933880130079799441643508876601135409748819284567301351212743031819315549738061493185445375413162852751963093399758429937286166717951142847461591925190370713710666435196037461178691140118250590448420605352644255411451224266631995938934019080681559972154966072967749883794410000096811482227831992678988863208904995150737280157246480654561178062343733343977946928094988413641262214996002529748470018972451616154219002214867381667331908084933056637164837553108758831316776751794989188068686999055888342501920637978721460370407897220284379011415447779761238185932382600634510413863507711624724101213991125215806111119093231561916588358148602748480665228360405881030945905280449415200505530488271782540016821736307831858105441835963203842317468519215931870913940418281208241689364256315546734992867590103090768028973687701233954218662569267430857258546236362310064447069824834674375469003952726106574633462904025810380249927933848316077655857042634284915659643931202574343898391775387126274183815355968628461076501181915209215370486681884850739637450027590257086649336512856865755377677389256716015056023752083900401380452295106020768608441381376777786371153788642320499798526576589843125733771064490297240356708380660631798961665423625199628179524912895245183508827518995485243274285074833597490536601656327504241921367966790138230803124200078718831598411989510480051782187749543193956883953551193228001117141197256766687485942695721121588703067110296634682882724136637568201007468091601451830385088351835851456879347326526833515256983454070108064205518734417845553711076986297790554498216242465089505372815860388646828396102606786691993562862481072721114765755219827444655659581557426019771418590642657833206611853890532462410168766224366939983391396683711017273952031669412577004169183444170060001994481823482046462001598526751235990622736002893695475932869800719601326985963140239427333976691982849657128031150205617570942481821499054871224945445042338573426519627051972830606012504950173120624398068262106977067714824065606505339425641814654415479294624704974687558099217587835340869242607896894856125585996881376170180203714110939343498664324056201493831871024042806002021308386871325230707462347708135279576450431421553728887891561444823983253990684030551617612360117088834064239133664344498083633436421758594345662976765903315766522348230163769254470740011830561131334282780760534146128334174431496378899033824992843042022254226842596205873103509858692215321602468434513396241521282097296970914470277531536279366433576864551027383767990230598635694983806269965750913357324841797749866381736360779543206578510699307134366595750317419629376867225506295809976070925270543828460910805915885772938231380795205965949896370318798722704004616195623886769547474328659892624410163551296198288672504631167646548071770773411663129195751880029492230666170265370630610445899303037610098448070247235036460065173586006648109986181534959751748941597517610259180344545038728259950925881252878300431306065744190209569394559965224747562340859905876025707858463985821843431012841382399803671963182097599261489221752740290498583779719335964733504201933377103667817729199519301844874774400599949715473190210478824126536131383934092061537657114305508041598900255117947838019036312072724572130738755184449244102027125238173634307845510058429686900389253508797870677217095733755795537590911976851649796981717442840340213194564522186585238703494679891263868593740160455373707605908976991493356833429762689138707032263295052372300325465077499636040233934427859775574803283955972806995961673311366309137268316556099290243535229498118689074708047980678582374850372316029952609349047053329067988546714378741597054919587276888108215014009884212807913176164995093737759151719114645113157067348984566504130081414797926677472245624229880437804357408957325455943439917420587449903370565684698373877834207127301091747662116973990027119486769302934276655949813406647911711898365501483914680001820287760704435087865238973974466324854768383664301990416333674684248181203027518394557926171813132207403998183257257898253574551570586188445750259223803880372658634462099261410641778021141355406960546901576592744212068557874679233428463880682390609795695032220264667649989672240438648254338865514408288701786270560774323416017033134808651637924337494258546143385002879262845472904802077023556073678854861676973530834688966609847984355693200206252264351361710801688960531278398094461606933657198981519164876778869797028644686966059183359327842595511345787507044301623285279873161701884589871107697889066636844702354919109020169614447021815986509816511267244092865455542461330410497160647177376803956545887105089953975161395982061420408985411650936431062638901635700601031187225257081567274028345086763709741241236750989385361122448483908363534885216523642688848576127394613056642717546604778919237166148092853100286003113259085945529918183123424163922883044899536674173580028005070644370746849261033421278561566971687735148674684030921664944455073159076559787794575043403501989167884734992232973696213896823609232488429404290261530255705021981486149071153492330637315116155762568014349399081797752669937419457977348734709839384394438220021302856699450691649096438867169708305966731667502034224837357080552883221104902827596698456278912801917492182905441831965649595850604192158928326649936480785203387183375453492830742895867761139377298014650625815288467577709053488667657904036553604709157736869685039105784842474832517710967928195478176545667334373506120679042641961212932471709102254877925705565418024091541013523416173883288175078952913134947518412391137809505261934378712837581719164625557736824955685184477275473335851096182120338364031534050732450893344447616313459252804394473366446464156165065442737176287798823099104064278619412549734098997879981951474046862002933005510530065915387633014836684140652021979436609588055558147913470557963304940451086706581998741436024673881232100472851791009764546440142760757485098579729695520905702135063295184931643491812428138150706144855003099963001771940153403771244247730595972413060845538472297259357716661133326766572023680696214372747304324991826290985798368721380371097407878735195194487025963011717564667230227909953327917305052386326925119690430471982869174929874033349010253739669451438404345281069700942396938359939061784768707023346631797864291821654205905807676613988602274329402462671628770494542925633474334763125657649325965090139236323132184353524103083287958207625574834996625650645694120847826133684209217823902425350519315672560952599719584930824337279536401282049696703733782085154463996897571728559301936871636718001862742513642679788742077685933710771572526080807116590029466945570323055235400554861003234320177495350567013117088605285503383859885837630549136316368845482705652685570416689097521374932045943482321145055749711037896079447702394911607705950518644320645683999959736476207721337742946052936350727283917433918649448425016898867810483643354438811953220081926609077676635839704535899872753433016057081227849940128483878414255061331031024950321873714207242003431614306971458586468740470430508206379434645576360279666295125239928276078102477350021711928377017186787564525217835052407739405299963571139600222980799255186735678855744473934233105802286383616298226134074483075821878024966122497905548086884594554929956711257580812661987238921761123985217842219246633145442618783699320183129537502649581809367812506699480162216489954445135922774651593436650556187080733449556797961543811063840664332971480011724080438548215983100156090515718472029827643765887371013252824318407643833862768276300532292647532771959963001904270992198388004322430746682267843622455821703892745857004676741221093769439813608001108702831880943546528598745616759347114768152563202507116723946616584548590487070681920963260423374587024773843609358541780550453156835070630158390567467161056245183243148584860071355987653349095120815113903401222606389631733909106516532610826967611992770897154973970492858734751857310094371823382483718440695285820489537626483322977270292775143274133068127859829652479406485656916427290270653437310115259501482611998174538171340803199152653510072097174208587961458286256127304155439139483992273419912524284025867559933027088024075811756784662072430186998714499485195987975792164631683587009476918193565911480376293856190062561001207587343339114919047173259322498681526309939190651364164611775883166893043258141299147433729415382172578662195311425206657449939103470248271469464595909926664219253384469164554346504818547609359360113745138152577606842026334619461078101067298010663561664519034243838483724153771755258935820675414467862375207021660068853208639459523335750272568644227056512731404264751502033968889524328107755435709829426787884171253136672076866807358114095813018772663387622066621752548325103217387896640130429450581332358053098579764496158262635042033041561934415098579332276676220394599540517835425917646944336753673633515218384367551605515031423412536548867008242657268660408230949752160517315015527370585721527330660969141538908312516032721692210105112000926176424007022925537860133821152191110963456730099880797318364241964485390902965226519174924602182238586730854350354553531970844432009875261215244707523505930777170585783475383579209715814482129801622281366443062587903891863944314352081628711365951793639707317955452110673884642831816850456213619041774566658911966171094509027359718072901697913543426546648897274982678453701356253288744627912806724238048275887826230674068607889768365593870851043840607305510440938846039549334703830599904801130528382994705630040993769096079630305629835931528448517560926335341638113037641474399198817121670409324802138974652707662347947547456946548845784948071305343002893134174616342210053491493364501491660708902733378366400891352072343369871406696371306716915220505525814033513268882632757608901578666984741922254714147743856374529636196935408725541743328787366538188624919966090684784331357003484202940037938174226013232233739396676874034132530266658176596464673108302456128458962879370769869470949251181487099430102367605916856882294807923671388178677622065585019421876741787951140393623670572196788446796628168059244996518075440090313868908663646487047305345178261170452417733004724803097613414086786237468815225129876749763222939972715674298036370725765551375510071953924173593316674502183819355562503795481906073088030573890375006822029167275905335149485488936125119881735692540966231220470887898121430120513005147090411062345815610222907148421413871082645685870663315740045182481362792271096123192583149984583519886809492801502365599535625808937675095555744296072077882979526880100651196452008233003828438340027887574589752753879588527303980503239393640793744011468535663400564941650927317788033250879402500075274657844965618867251381782708884248501563735918268502536333114990535534409237478404463190760783269310539704711212016574480390234991744680283542217179697610489037763325252624389023756249841233839026653099747749158322432372867005762679803928463342416877853198650243565725384333764490590298111617635208201060447815328848380293784417562882583507280210356498300241694153248846427600893678433623809524581966884254391546932914166415806146713042419118312426426460123124091964013624781608150779182200253737000441962089166695001067132672803296939678348241297954100313007596016397420390771628785013680861682510527790883153364979248426198989317629429701434838815558538076985049040385242436802836347670818432897359730154578867104171976007016402440814509752615351998740155717132359291728237523880856378973406557368691562405415193729207873002316763289937505281102253690527170642952459022695264461877159783641887467001224003614589703709577884506700866167249083705119444407865901415561183194918099244009317837060037420637894040702250715567215191719312286632518834213818794921462161678627303173745057626149911081848023642192092204940821496202416979463980555395012001820573450646352178015187150480658453037443977529141249787989789180042565505902211568654540152173548085266986093735423922528980574845704967370106512674234162724031083259001482348935445072391652103878186930027413593477410532090712172033765819784003951697474015947354854269525373741214058867790441731305675437353487911366117387442770619095446448067176702850006517450731437457456300284856902397081589266296317981495400458678427898729045333488905333503706842634071851713626395529854815375336482576599683403149222553359724479081003815002965857157131670117083061214298020433282181779374077298578913975732129985648131296360686307044034896168866887374374701628163349141908297220178187700179468087198851650927953332024776125565953624634911141573013967507886928063918269712468165738848553857395393566292893703780879162868468996495295707174449372860793871022731039160025855779630142747689643984333851265796896211715593597856004941363870743582576517595466776323485834471755837817699021901116386916068913836925086788633733284308375649573907890194411030329976057957477764215525374964538078283710161145920316628162456645191036706151843765412359508944781349692094191873993498229183070605302738147746189888801828631597287383502363599454280236085730107733011832165331078551925732925317898999374390844634474715660848603345320540258147636287841857092862363064548794190798373111314170527374043209337700421186448048758088903178763785631019015113907205271898483064461311859441326745194081287827308245073351568560728570897705223549792137977858855298732613378436630039474443835904809171703777696014532435851256466199389720479191909705326618265805495109135255298789895174255109131407728939117340477097400323335021039856379705863287131458303340910941572062727737950804218283092838772428849396423254645269695907265381335171252118441348781510753882613635307898151794294025250324965555211459336243691542768121270231979822355294441990175759552289862822712414898577744395249285255363346269393362609838684562563783474224022158467270450641719998268729895393931049654161591767489058385516307300091618877526085723967366094387607321017581346063821485049856062888117536031326116974602766082696542893931191416150161870438998582732708659159256514867132467168917425191991874057164434891965260125344312043160283394693638034562637336361504204723731804175015750281010392090986384256891564337046658170118643210438852959009445322153037690445444284277196219081342681012345428813290238661327998475519226495949190958394326054523370875998932491565280504083605900622951437369507999851985404642774348180624233846908045124183835899946425065460211146041696704037687438808760416351481244420524900390596295634565498332347339738773338995106631190399802930795595865895608905885319485789548602540053920597452318013955370125802590905729059450026420641410872343154405699596259396849621318792835056856397427331718770947775402521611165564988285646650707673594781086164285066803989216100081762727972584633910674596520205650729776024992071560761014942225013270151886531831118060798268436186649702132500376644316165864550149370129417389366984400995292375138575683858482095594346000411489934871898316717820845571418068022112603984546707647344136325014498596661220013833529651450764523512647268370054693786604096671279321952772363032394162880567478378888556752615220401208545272924208974325608491369318579291142195447643723879220254246337094589347971991129223198864831364619806570529983879425265428468750226938954813715696463645806074543547182666356591874583680378143478458637228679400661145872538649160233704755118329409436342558233595951574730715546266499287732412482201182998399148712390620131228752369771997489115422599837223706169696280549950686495759311933773321941538711306258150931874397038179869260932681176116566814776242109883498492934890047235123346111520083801125922517462491934643332133485113104395789431592031850507248710320818801189566655694098225042495754062455347962061980982714086122938163122951261351764413298224672482461060731250002648715533074732822904106425137721406837530285022278271859220266319242600278686923507979525884317892847493592355096361692153832477732834441116264079126753545951491268028119935271465730212741921021603995091353776689645880669737306546877915041126660994381167346808794804014516105603160065575866803943886152248411907751728128458630100565757764353448775107232335374753066587246265657162603288901406237345842218344675286313229387571357585812094110452172311928056485516645528350184819352950112555815796022501792273806465613299949043566994040928881101901645677366963935825241549101977582995454121123628280312845087831610593957480586158167799969075393826801018645986900955112012339485366414411856721272995097493163503223037423764511261194727840655128939714507449100765072290956148889463536369502242841668253113756395534638349902469779393475532534639610235832333140977124592252359101465580167130729385381415212049408156410794428313813257620703911279562608595353208024555358631551432032050676470535618873530822535727856846581332311026318721778620183052357941306796556305841814557915449996016219977816938676856448747886461746711199290275522303538798476641123689969262602003360776062313603823534164306186185918159640853351866326721459855454942118544663014876677771029993459857581939807088193607398009517817011493728178567730818971852522147054941960334490332498027494504138728779994387553197491772913803386841962444112254366783263658912151787609846599504507545099998108496839270528603331972902304331017067995860138272294811142525169010235375327737599324553192153491590609455262229883829122934243433654478958943052646396224049483636562846629787792674923423399524652935707198363097376701338986785890639632863549849995707335531787210697223328865708144755206218044478908750625193946747248697312181363472626870099125600944914063956168725727113335658217093924489068297821168636009293888643612144530331993730072431565404790328114875730284680105255123349460385115914453319572199535839184086335449368957835840558525274686847573132990816760844556802630414810220735099658138569317511127995756496244776277447146915810369847678142769793757197280776143814593726855873521289549394713209672050425695512764072551854709160709085357538109052691351652179113838960623725465773934507862035869196659008830397690349726309446250812790216020339937960103440749341698400933908982360293706524749737573702730497338121852388739590448348095449517991280254580683785445597878038186629005007780142188869941865090944747390023247245814891518665487342339873277016315415514254565847088327588232031195807864841800080998551069479389448739914547507105968653146166060181385654647361413058883242701886808315851951350497290916856288782599012412639403959741385101360297897472452233350918410175227812260791853109982429793815992882552323700206380380668102238677608647303868527015881921371201119646348562416687820241193677087180299405509611103119803595822472801288499891231287054379099221050529233414416299024907161672064796604730051758358230463060562300112807263920176069527088701857756347256010432449969633939322023113760973924617261444080553419364913405459485394410797627568742953718212229433607722505119475464348639866297432580579272234127833711456414504112241106762536433380157480773574522025022194692721392189150620361749822564704946778023414668867767235683622091537979544340832348721147250648624791201389909381034142907051534379454481331596172745924885350094354328443031254325549538090062712429007420453617828416073838524190801189980650426908407812681162320459842847374107192734996397035786036391276676189374582881337212291098939672092636703382807372283613172214424857005142911036207167234886920989136915310142318785448429056476296499877318255227762355492625497866411206770651282054457355465347144009180407541009256025904800939687243388836405995042703872352348195203484005119732081498326637839868906025368905072809143092457577636001965156386383475889736652095867026360262467850927539980603711505551860616366510230918365144953184617756054428220041944949214661822028290009327754534593702114483884442499276987384601130101041651037812446167848613706138658161817142046462945261180634939917091623278478935329628503330285296919901870771148454814588044566756634612906937570570056272584279148983286072248518167512163029991290874077283550357075238711737651884858074238165056357239796254408690432908615197918695296136826678088334829768606181890717786212968560831762930791839577299952254732588854011727401211781486096424240228190725835630717970618793721679091228566531826395633004536992310013575529142843685286807097718301619540255692950575389609833258589008665701547481579972684579456039286039826362913135782667849087894549558444168370913431721091362275859231933279252497323604266418817353317532252414803277718145709340059962013838984861004906849089715972864807415284381163662185811034127337873045128712462405193202477784889204559042303310753287448217262800629537582671107555682407470701734499664907023393347583560917927169722228621550560686663681615216508743873184604294289998346213919642219873116660735846228980317762817251452081574282813530886939568721188392021681574661157871067662712641643153417722180904430301553036683479451881547932576367580942311879056103792963981215623980888435232584201119594072046895809800454974203387809264903752825719337558755294437856718779395058055742603379692374296872529478722878475197005237301204042090196296432310754353394301507585669480698363124850373869086241695141532074290854910588767510730150157157352126053580099426326878810916204247127159130208771588930205961472064357557739222695125316896774464848656718030083240747522998556610481344298696331003001727195544705030735326916823203317084295183379692232538647107202168653133732058402336076435490152987529289592593514124796977420831624304233224978275948022406610076146848779806899056583159334042759188456176219860574340434675739382727210380921468160052997294785059768476129952291053926512299596837451228353857991773045061699485069111700881464324821559352892451373642514046721130484048220870609630712609460732983359939680261211106234624389715534268395781659893304468475495432941197441132220119852794533426188012239663586351137380822786359328843222598844671859812276362616935629828990545733084062549837908431050523765568380128706678998009642124023493656254181873947274225244196361724642211473947557127328035204537730696498738331111086815244829199736357349799665704374563510142659389128523001714162084833516126139332912529764396195221403262539833099426848156538094882272287343618552390587567043895844528507507313942098768584034309507757191366916784264066575015884560399760434280023931094891500942828741188977419584169083558676035735251332044877748644012224811363524245714965055643126968192799747298205758521984810026082888170821653392014561204563933987906293352425733849413958602674527546349612085707624651122521870813448350878321656967500196636327366619057930747519820852025400984158925576140934711897684580722592199592546423231904530481627607106084018697758029973696124571887875658875730714150728177221924176701409694879720047369605870092306897514656319135489606683815410874702612307308841882858639684112829532290135199197195998456224809889319835672557155908245406420866007144781973277773426872282555296425395190210440436107150128068051847601715592640542073299437815817134897322258474442281770324196339015859775264183607690450683801701929461072340159169681141994598370391343371609007044537853765290540864680569044838183276983189685017495961839005846992141070037150356511921472077649818614219485983696562696636937664198272213437319217306173067852400603969984359443005161223174327509032388326347441662494040640556578613420758647320439579989295419675117752753002917693502688081118865951925249781342953626302503679580593806253821574236336597066413053477509613254177219706060801150471287562779085993954299257625701503526674309041603610196462044217972903531225934921589219042788894125207236526109549629555341980099418586765210030741206779364977716640827822615979345505949925406209086294160574339945017636720953600879390148872313036983246366310670913888832574894197782259875702013178374258861133402969311985690634007194365888994207935256715135043707599092164751926328812438178706464004945077668207884450575795234991370566566897191932659884854020610120386936530366832991166597305218106121658915908032577028667515144580282947830754059754983124824822082017918841745556755798444649142071457754090025093367850084932970684014698537234831958839762588603783389640007798466023853186869781438498375816279862499262243306369553004602217775054591687639333666570480410399021548328661000598348052695800816608735174486891496431470122092834873821824467965357778748079272967634662620967714888065830574190599583154470124429623471789297692129746671546954500274969953241803989994362652243381270290861888785337513952125802354550171664304968754325921930244125538665757680168156877104821905333936807265081789908761420067064825285751409985595503644078569815185629383603264456861729640577360690783689622889012374135235855950902199243344176816316640232799787624295483901444887423108468169151269471261784249024820629925019801339686022117344115794428721179080556274969038533722319269507684157316336874690800767750435795016700196547062562739791857630487591514469391704753362064089635267986212441445285290658760864687025486245560143574961443660303975670224188287577521438532859487878638250046889404599816816713985494009935068812097207333430595834703384875144689429765760131546562367568795717410173206758564033752424133637475548003361971537999404314693559231220651015191917008731805352422911097980291317333666994666654137327227536844193217745221514277621934731418997123377576015776543453866834005321803668741210105360977508309570539398312743711945289894570360221451119524278026688074889691105975394479756518502452321376776173741869860869469530042933012114271330207263949210608814275442304991490421120291735330227931981949087934815526409684401873538857559255047535905398453441495185841275530041576014440951585795075584677463714322510357310395058671666661920733229816914767378263233536644183218676814103724398018311129535199753809925559047815116366017916270915810506107304434795124764918708333126257294457433113958983473425206307608433895898553403514435200912613766619555043822104875714775678558988795604365848224385419718007446128377626783577754871037038114457315530651288218977514032943707143622833882829734757858399696950819649423222827148545358858701852707761907733432270722709111180904946220059823094344299772201737718974107213074377266103822082045941498756391622284362704944463000263935263921291740254108321096178620943673970447291300130339856078067233649580764370183801521642986696534522264026418847345301779379943582414430418397240809710485346172922565697023074715162839224488076381725309351598740687448678873702653116625394022488506119921241405889370900499247189793841916954007118850957423736737863669853423845516251063980771441018466762181334829025426064675043267638575271056132288159135896728348871887666980376627197589760103801567915186064268581352881297152967603402269033060037775930723794353338484194979983885358803930305088881823541405895670596738322719143173011762763386791597713557349061657788671264014577308642747813723434304790643590009708177834399399875083175958797025955342937994262123271176874890527226215981583862083192252644997200881134172722066316834185045152994593261948513980071508198042345313686221296742073858212942794956976321279671075363186116426866599878479688332599944558106472208106440478005185410887672817437346874700136805856610191787091454924606842883839878430174638888785006687939916480979550595948775088645816896678524643596785880208389274260608437099159053068624132127689462530983678361623480649080487033347697611205879393684590782290498416410224958935785103157694078936697318517756411978627436230268510620658723711301656299615581326696662573178688167797551048863847734034532862095329146058223100848217905710103238787721352266329742737576612687929197023645561072346803373552396283608313337907462004821288070218111988743538289394025695820875181169519222343263136698412221414867985810510042871818928205158766343803390756362477483158256996331102673001490898575335889786392021478780557619295484873333390255674663213346056504998217885681635415409024793588193343849988636752195031486679426974005455483410007648211032441309259417671002809235691967148559900040081835054846593551260627576613102632515743403482614649972686583395076821455499214894347950155312455578173754617031059166109096015125398606851105269201504281469775313618739645407437800550021880526864685955443525668723412002440809481794932271432983104966332579052216346526987179224061719449579481741103338637439588698540251078313213722911091589113328159942215395466907840441135448327016471901855742726186985918607203792375645871674293662718402239949758117402467484389062108500973334988981708595782580410265153170550103641659606695702563407793043924422394086835420474458357256741215553023024813382236417418955989975619141837075279012894480986287716286770327804193768125931169452245932641307966718837833220690696065735466186936048701270736342893393293739531499830114493909725419462869858557173011482725857145388495919105474729725239391570163454899092792978733821874380597746264691261567326330295108249358804005816109152013225529576610042566099819661147995686104170282477863578923867717530840193584502036892098234272626980295980193878093762077215646658360237430930611027065775923132947817098259629415817393926879643824357892015252016818718227882030181822563773618711055395097475773555917190213292181500550713038735072419405311899825528508364912201714019932524824649512656409716927347190945866175250142407401031068367112204186590048046563933651221846369485602849351170814622825111611248736818370985342133081021405647778722131251537030757383366172931554209819662556053124797711235039764460988932481465897640651903629890118007686757468620555902067137915969980681611138143544411838601306108524797169817451279900262629522217485703212557490704083402480209554999227625104214504921882422311220952710623634388348421771794706364310621004754043360665244497750557905829397937129271263950889726438894673288310966476388804261507618202929755630502579306238681086660823689082146774214380592439045361762090627245020014642974734051643640972226215671578867097571492504588518428348596223824570942519755949533363762261838642244760703673037668744366658436922750952914111879760262886300519858397957287964974826234895756426474415782874306841683583141670761242957538252684643458148973395184306429812695301032249545433896263302071659665229950030765900698851518006645621955067503793788566644593528968344743093465400957688892931908140021177020261117075569001078416175660228172395659932245225295409854851892509885252928822061714031962013696586545922429661526310331988105256508068862984711652008294012107243736030143545418230562914606792665942929048090080726466485600166554675082995142901890426836656084311115788016770852120699710081668363742399026497646975133471601356448017164953763760493535154600626600021213562064126669186471386364815255156036846239242417456170404639285149617248326191069814266286881721730232077142223033220243088996400110421251375845022877726824068986006998092504890919235426383514309271230387383337413820598189044581847422652740792653090036100306230295410190614245748514031383728524723434271196468257297813267295696577190654516339654103746804410119022323816010253058753169930747482225801684892030628570892759296217353045457927306260465058583924131516556040616799447593637452023647447787165099630806893125787380377452658301568697510338887750335397974699903590313992824664222568662670486388111544673357698298582992076549130138111331200133054926877327627058321958615218654392734457257440453408426341136396563700681763243246184052109624621015283601569718146846161909380975397230712916620236616229849018394234852617687275829943236943022468059976653392403187857014801917796736818043671594880406477225781874792655444971889228883688478353848916972620066154033006582846792524450257356279397107411949323867199003258087348619582446606219654040139053924414933929837168415776909903372006930086324075330218239703083393482390529772585914590603538056028304192643421084289969875199481256339864891395763920033367201405508665989239748425125761440831489938852416585408965146901513657130727450553184964984991257664902022801551387557313577386524471552091158458410297870529810391084430809954916702978822664328352528184543839072435288797661597494787649284722916519432611970340619681277521816492408435657906077528510738061947664768346186760227734902844785194826343026434177017779326374315418374403569386062560348626505616433412702328830848246234882176706311602896022420786822799227442976098629680260912456365161001313866779151200993338008385425404566429766272385176264252492423426266810110725514362564099149191875981380841482190412156743528222797704742796320850452215934231563689456851231420925797515294680340726033268960063147447640130982437978843320003592985314370339044885876396158731661526809017788475420101689344827938181439888571496347307663606043782193873960362744229917335354446059238376106009371765330048698653551974676814714959768035267603996102244332963252099320503523707448975607448683421146998194070113191634473715150493076624927331121102530131652315714684095995816819755173730574755998506788405461877353912454875039251635203163347217906323684998810277611010382942081552834753630416099520789481666379061106568924152188196122299894047923135797717865944810604900777457980512787965771861364407254135339195699684131045031403586626319192119544244565843990167947512850313279015969864342778646452912086010090226976145182348960947875720640728366590633037409513305640152562898978990258388973229503831474372192815341295689534234160135601336443279102679742192594142572111036870456789830638051113178188739235105081950341200747195633751109043731989940483933127369011904089222798117108249792008388103035487339566684193197880841347836764970855231465368036258870269303735894539675811189157176220466994746599577163632076779009248359568914717371962450350978351965928557259342253810090469629052197703388443663300721325595058010547088643475563831656366763332556749423697303247044018644789924461087305162020148995184946393500938020059768477697698079065191902458107599089022618446445871352503279679326651950541065562209682911499479140259309669355802137034977553148252727931089075250009214710857009908750093250826851557189617455170802350146979461638838010652442970292734724577071322022975347013222891564347180331520486505025084889180707622861504770521417424296184992599606323773010878660316573252537241454566721825550477115196150420958597415565558021635728264757014745415122959597688412433512534850274890758980527658380761129507326534538425868638894597623227172385274323158401656362908815108098581900622633432396470371054118423992524330192134304060625477190498848975828774799543604481439657031783943395693352928026198593687005052401221861950522172579433720368813932677126514519464360726359588777883662657307399625990795959465659043034217421177252798121589981544322445034778623524007161166273860942797120536376593797843827228484451582015185053482176079306123847201824899042589275915549299365777382062900172569814887153203606342819827810661201591405149149238647367930975142207205468572358250955057905521970017256803682947144170802309047184728888110741464056295582502215108420491039129677274334842727501332307704863724917260018106438192621598998645190327048937239426415709791551636576670720677822891055796088556331141253787982180127978885980706208132188700775638175801081070496760468559145600019793120016800809380367036704768344356862759613877803471896532772971915290305258496049673045814272391162105080321751235977559183478584047734950023427860608249575558399503120795332557853730844790220465259735801162287787559657147318089369313062419146882402635315472242216488086522858633516437880192512178683120322150496903697865265152668122886751086222034916354056628276844002258443501354089097749106634670464811261235951628430293696934372823653259213294179863658573679932043763995516363113735574710383617446096298400908363905854933690299097149283981194707174593156233902652811212960498482239399604383825644550551249426923707948892570054204717087079301890846624187230409369619188052854612729017972813765187519252990237782886475658067426026211591543104249700684567328249149748296795270607155007815903320960520045203219739672284696142562773190006499200729518683778900062310374850235631870199342864183564101340551524938243005705396327572356730508656339357106330238731823569232853777704804823628402325979455834062445405548257967558496266632418782678576409202000922425698501914543181168688312619114781029756315532159306565188194483595766419773850237397996125382266172460533958548653018099863062058655032337231135501573637225394262300622641441406275324639100295555280599838917496665508729796519739065227131177740207262076740185175703286225786316617423644230652013037431880876724522380521985502366318068359205585191214659139787529411262390399918831210531775024245307905123708924635348615996812777376888490992453929177470194105216452673879826633553846697946780255529327274028080166597136915932111968496553412547201903463233851971082695114876440702568776470600448028975537142595219090047167743396962726119789481626346674796196246665039044778053276248127459225388074116193009024616687500296703280096451066811891122698350143867360461827747133195575336364992972893935010188300304410843293689464541879428382639459273228937836135325500811679952603106111543320255051848630793382427099483621227766225164323547939137149647858494278653045196506370142465469348921687502322093071994406529420040258870836874895395359008655320934717791911135158789169195958567340745941161884915311263525344315105676889681128420258778353694902561122647684950084416964944319920022654958816949698761525458539952016741246270261241085689104874690710455057829877218977388010688201858081826919670705308576205056449053272383757600188321249471849110069167541715138282855511605913328089908149088781546346776228286351394059794954978645869456745315025545622058268474959858677321767683330748728806835505481376887902290737217255081108242555133666386619806377079936029962484354042160166327708174730225167090131433780433789391954037957445598136024514873134933081258723314396136826398772934909454264705328934115967123783714719239902868912666645201700936952079315174917936821396841288285502125093702855540667152417645695113179854883438321554939049273774586074460041040408341647824644143483816457408599056887945214798872887467001620897758217964151503466920142608901670492928372226669328748098783586382228920789799534413649457890333574482999061636905547042012202701430456130137032730617613565446179161908301307391684308052474593905870913408580280914711310788478560143837939888743998497501984203887514532072880205282912616476385222537253186621949710442601605982007459219259591494847672114638854388725773552843370673025844817896100936312645175096761755620081895783508019044856128384125362480911744019708099050517892513299200046010059815959383996438219721534744904970797524297246918840941470114362857803879138487335037907011521526693388127308331553628199194013987075368590812202915160287132400206219295458676098789816606819966563317436346286556330096001996670208983956049095340643091634218915011850119814961533353323755196893386249443388701255308015695208638050568604303214582196325856576240643405649217545210592091408234768146213048293052527279710815453939992750650534747799667620473669659676688117248572167476750313759368422883514990047112071812625434571940050328255121899662139061699370162303778642967885262197517186642675486352521295859505058395769103290482996037901742259955378947368815730244773521413553383049603841914929340828794551072504149018397404789450156696686181413289189062776650358287530116058586959625344882928403108348385749214176159039550461607305467885553546497478125540531646632663668387688743859538158058463729238559717680717124253638866098446014483466944765584558848970433834203956707779682240781639216802504379554761394625050939604673441542140842483194729246154002611008419209724201618586419128110061226901518416206329838814022467380841475605724979454349470061940712329506858304209222229206107631923702234347570767278825798684836929446851155596058972186791029815440195726357171762670423284039000309058353133406970836477836587846565624213023999328501486543712407233522930874168952767651752423776632294722507180863596373104637576417267349214502893817436771934620655857063583718698042932799436890263897879564610972220220926166665647788422862368191580968439050702085495069059421658324399165873678319513229434724466959479062600388066494923337714261546195621708887975787183875132784407460095161723820587014902351559724548942086663839299665574121787249724281501820031514626313130872621948631077625462450021672450277817117297472111326227127809267500874991014868311427772367006009553062931757219676419803670213370313277735044518974204986615513662070680188269722173385516239930539834904885023096882159571976309724770320710001621608018570312371894520858698840400782987112417177770108507241852508062236569002174990032205577074707108639438375707813596364988503749972486192876229310908461803779374853482601806406043338202068289936386027938285678772766169624902066920520502670228979031334015347395835330064719095982354483327410418732403181899243569451580547702675826453091666662938487481725133915476326501432680109780878779507663210539221268625202594656903442824479618242555011118769306384450559825098009200881380321092325622318805220618965466425598407555979995660497267048266391003169569950378357496515300305868005555403084762958776231089704943462813246641234139217131499067766888355942983833344904821182143071454415425295856911690423715931594055827198352283588359755033783529907080121070223127857928473226652685714326227241103975082726085507728396109272124525432985887207687423958562031029440989978359345441165442209730941325123211629736087178983757254914657570501000864419851913941058838221322687158051492252373501267347689960004895339488804010786489972288135932737463242431472298303373583502803317595728129621717223853040862449235080047349882818390527966469931455144349718655779569532600143813645837862850260869329999763094753297892761350166333690556716259085310992849414066127756571600882919536078341551150005312177517609687269433779654451925721420477252276157306450075257565462751067124731367637179044002839015478907646964716650654334288659888535436808691531041056918435088722014846659889598885907788188734882531336649183008696625462094311407480047846794894262385103891426520404042248145583883362591177467515307386964093142952360152274031412806605052432773622879061250007299651218401895221992087767959762330681052141198763931954751292235692346875007332959269791586754212830051903542040397876237027848894771822966669922203629616149070160296533840418331765895529125211026127362108444043960019944628583210857831378906294338375602964258517162044285601453095580831030598871721812566048365971958751697067354857970580729787260561781490700865108694407029735239893798751832856640458183018040893840818126494126892061004248048945021686130259091250837587587988470042835392582845935054738696724917703592992164042573344104551919932810374476309253888386107739088808043131046108816634934381662181289909476126883391258521513751672214345718189458479016337570053990850382861414715602296159007767307921597109967275333802217864084851400301722686088309687175132339846676644762113243346076651768764000817303539542513244667795933179163029612832808519814304382453469727063185845165582210558793942523678278463052152323209886771123273946238831978175604337017355283921291236124341595892829236837183621577367913741836771903876349452829027078100825137237607692717320626373523839202038007524465327777315515045274214229196014266350210344250805942009441362848158207500920795425653326030084060526960387383029079561619371237735867307828088086571985493737182566964447108920182031086769204038778206814935854429305655938362937566915049182440421636827378694274665877190820413672110725965449804888299211200039428384183480220870165388131844076371905471878330777338715164005488135787153118879239500545988942779183790052459298824081412330657424071210213445298264347893651094136478059916815102200240641407412203059940648751576041884140720337243758917324402049513792301174654757124689246831823455757569602719393650183354469714846823722328546694833062412459321280415942811850876647261773776716924459270149093360482175683898191602441955765960171035110841742610706668640793291104969621865819750856868955173692255199965258137647533279715980075851154419881377006548856226210441329647563914314796428165333945485739674483572877462818371073668087968403740664036531593801825960344018055011484051641964238505647951162164166640916802168831495438628647009567253010357309210517194808993977398744252023309118533485496509425528178331845726824967505090929877213242502750201120118252674122461711180879308490126041971492987151432284888063112180720020386122819304742640559054423973498943967573814598527250139248593909929043713480086954401649764134882439241921332356358854488749673068751303373273486188692432761780796112953299216223531160861138328299276151739748546391043624873514042362950614783679784760349011797115846098807767777297113834513268544744866080281308544916814164258451958046414372968003024137591864910373973673961661260439088381233224105260449694126150688652180492949670269719137204077987258887426579481184624688851995555189106551147843405197307150123357175780237326201225000747424636620382498696718222331792651979586572905261656529718858003588458050799830833484448172714380911687018581676495069262163054300257010682161925377104217867476868710006425128687852405788536650719832867972852573397648787195630927306508359994086040674792606984621012933476140831300893975860010070507073747928456627377603221910322637429549485670835717781145775896050652207739964319123470527192100760533099758470153468761793416763628871960257827074996669948918546373008036156872723740422975883866676468475917599305458847049605811978332971500330600041039077426347368996419943333228531450050213556913860019628986451688692343720242658618309306679013950617454202758084411671944792091166698989054373435466639494087299383748917121640724185961588610465757799143852084985909687504712064744085898981726866870744134595249295917388100507095104511962621157835780133027052610955054602984911734276702136898560679305664086042173584983550948024269042559420689056976643293344637569048314485662795063900077061080932628895871250317373809059469423144215147101995906284259494259653720893349003131906261262837651318022497424198838928051260047414435732037975524632162786066978673648068020119513248696865322169930253812842341993622780145277654172983245972328590481136201176463839890482502871210529969599412897570294360347596969008460738378120929770578194208896026265313087470359496220208102622852648988918615657529557931561581445680220295854192553933117138646079577965036267026360445979580725002359698016398578885176632680452151808714204088358743614371221220842772797514504125862298022709802290742444711059341433016993607287584493688434788154747144123871901206653821957135959105689010941152381640748996977513492117430477437383046108235731506189099629605690321488893555653852955904122757005157296515441740456129773492997246016275420264205674901526739037699915097591452413864945861386584807789893851711320268099190961711224457385698506059250633967579792664859049574185819501460121629914940868913423037202191790308773001346514835078865836295093880401991735870158786297568787832019305892768874420017071140213524145455920556511888124609854773579649014547526170023986294537716164652366834339623060859181550698937857596439347694176728525605000275233537678232376390584545654642042700516577038098999594014572452484917304433239338236036226608587722863224417717122127817645604342737170611837948290286717028680560362287401266035507188928358265425079262188552148285261157379186568134545462721878691438762661080641507580918553355149570376589271033112857991569432830668862622232765373027852424388271576058141336558379589814547170625026231170113933331963621917094055986462101093268482325879541970975651113470238922433544442104850098713123243202349771394089318633748363804500445413546860308886271842413660749574634178257933893764905187831541051960014171449879165849393659901861739731171688842344160070111836956506277026235166249298239639429683308796618072179155547645752011255102085572228587522489281100331925741291836791717133040727023401536216404915128412946028432794686800271055570131814686694254934782059673379134277247102054275738766598978929511087677708203209229565659191303461140109997786945561505782521884352424703162659187779177950967065223099417165336461397494613316545263375391568588895002922920484167888560752789525571240229844320597069511057665275800618079348106055732186899453841998096402964080150843766664365097069301044738664626091973846192629579906034597263408442202611154433408126445778440663110210379628648490081941849997677898160307777312539270678470207104190956840026236251842294933702310714965471770994636324528756353259488390979975247268909381452176827261577963846757209899829904344186009658833647543052651667830516719937631764396485139918334423908145044508317681356609599701389407456924439065985222077475500210600160513581370952406879453204212894567649351697326844705666759399910425456472358375971517454764111110117523457094130952580053967684705740251182278526666584948932013191095202013257284028719141464164431611889525856032460489086723367696978125119765806702389661274637721832840292354058466922839822182309221920270744855109090511979407824490360198840730199288577336090667670705568057916613842802139329129428560191583329258008652445598936176069365419398313247145299862103474799461444075655693073541568429962367845317957763257339965805029599993710656298569425124675671106894646701790311206037011803322165017520011506560450676523750227929099311427848770318549756851489247378159762644005169613967150416899099416300922110684814462414599572071908774618856657979061439661746938850320360365649646314389169324418652550312991379466504467930694624894862897146694276002720575555142532350624677424125257692299196029991324823705530473669193915747780198869699997895194531509101156817017943484751114039871078174108563476362550418647016312605803858398956733886843662715375563481266921509105968736029936276469701733185040182408552027053817106873659948948605984751099661285635352454876814036677595686704764433292474290162729681769487837604572685174886136481021029832707775531908736739427577657893392362699469163181978196186615117815308118709971032846382766039662542222043195617142621003503677576977307901541597460054574288051156602737550014272805315116112497231470823368249064531273802488239621431538775985301643605578971113162545418070760250511755912618056697347644879361364287726918003042923333788709145656403690466890763562980552496821816915913523471587572091974770805021639899919119233219321554818431033870032311184616524930080645768063617675375685908089710889759000249944651812311849411995042977007998021344614878545972414633395598762329070929378340302108688385325306537995524524593132077182921478457943966869093755119699013253615635613646474699264989710857589457849719423906701094108540368275769737750044805428787787195316002791178339814959417771323848798830847676804817806460028037315201610059108332429357386055965482812448391585162618821985181407018337156553465548271211058222888196751939161821570669839048080389606853983226111267710870098762351500675517149772065865452194616892518802927892729797186190214824012499014151499289175355442355168118976275521472146827314561779357369619751930532718703695553607161914251999720088973185571409047534175317027147245340301803451822160040899870794398915585799578209445325414813837496683082024025971161360983463029231625098289251694061774264714419991196478277791134624819781274551550054077543099735529558707772417958877193113344808645015659368342350433522726565998970322633051518148511091242432354077533582112170827953525663418300543145970815826221351680616264240805403725144941078765025712211490999618752932607797471921706939717717808170039712150291710307326934711803512986461805436221515132141103863856397340599409364472020017071270373186770893624914194783024945531217029244946716470009374016306873725225525137043753384757216572019986831735033351666866628920048406539523871879719633760005188486894303198690976463371007662601876884965439434733538177866086282879094343492780135967053950300082109524045459319616818585611588917259595755237792889539419547353673003014077454369551057662161333950685177675774061869939476129669098560996010575552561121080885594572869824196022566415934096172995448725528714172435066062221965492477639197055292259218550652734783388541278171479529666525144838065587607194952069567794854274652135341978140471621210025796225698692804828904174979389198635686966381941026069266788783389003124720295528127585347278393384233848898119981563497595422600518198900160471226706330775591480897716887699361096601567160814402500342158715117295297108383445829425265618142048118874262877588487116354302460260944045533029818389728684470248331194816837193870109543177676441582274044330915213469016764958887736069323491344137810385549716779077050290673645032751206635656376533336888131385124156984797424730296532606471474640071087401176732332127215401614088704655572302922633694052974802874856538985005079692091513007080307040509766822846190733984928137013442557328926574968509700641982501441108408119982412716792820753610244674592187697789544173945029494980768698998583331514910158139789372088172525064953900379145288973044408171414544218979868747629395680557336007942095877231847011129589607537754228143069997996686832044807319241130530383535190027923864185090287627034017007424312523852227605855582550492342655862401304004887655094106514690066717827484385502918723348155817375278034727910099944705596018975220319870688269712918349370303377446503176895632803314269419897357961388186178932654452659452719005815557507931988540403128229017889692993384295577199426147893118323437766623010610755536007415917052108025179713385125660880992411065128445649043305295519242878134325260570953468599654939747395877965272700885422301964415008606663893270352129094634522968216679004510462414844451092000008298045699199806077061565994171111747241082513145685984189592861794579031697416306929444968171547568232018634493318712828011341190673363060217395882973619525763419933473465614358172509993536207220004057941014111081606392271236983696022827497265104727615721187307833391614229422026947637383926809387242845700084511419691753549344396140409963219335878596600698582637952452701779110380542894709778747330754499048991962176288153708578072575190362453470897818295663854329089759389498242931897582174518192055770433665288152927220584492263862520428748937443716696995696252950872354295591833031214179044117073355532613261968810641650721770068318089233956709359902527300903876685229256277617772510515238915677155188581128463312025267928274119817311170843617557505752403906579468375462433706058895868853055716845835019773026828388130666995576742605023826122418963128863107128973393438989481543864198068885906996675657110337919917312129560177019213113722750251862104207777977256643401414017042780510005608093009821343944517379183462791213219099017548356376648350127526150178017159751299294696599660141284775068999952013356973395135316899286148689520423810972888711211351632731934671563401790133908415372466551135833240616898355988487132647196412473216142415009324147029843586764776493573209706124542704342734149717887496329820736558408200063161432840269914658491382146019939994885222967523780607566342704888156106580975681452029614089269628653896827205484796740643714804303260858363837821339069838379994102007029838144822890587605139663816012323368744634224414719349655993145213818195876339271409869692627998749859351092071365365063422730987081538849668312331972362930060226629676253944713353366148056291916497496080649021026728953769768608856455359452846638762854609343456639273759115841658491095894205663865923006909121332381763190120653056325183127152638445847319410607755103647522200871265783702833266128565375780672330921834283329775151592661075692050757131688936443415002151532046411388837892479344091369519401061579897445788013722407252205330365615993655493897633412522718225461109929904022839017939080980426668357548632696235621037689036369942861097108813179016585514764289383624229902789450024241291540716700555116618994135172900368289055913292626243420662316791991508822917577099905102996323795632761595684323125492066844573160129692396793977076035558273460656673113384403033008682234000580025074565188974877639813199446640611106867948133689972747383165891404997740961367640225212500119338009368013592586500695622428059498603067663762728303255545486537288639497503671496636307564381542338808418616840965159698550535153525650126343424717350653013406949171853644633795808177309351673634100095323185607431803912405664341545344952669132331349442064796471626425587424622604609658360745169086079213373914207000037101195413808787181142197519879485819494383221983158450075409458864031884332892186428480245435038860578101899387907194154300374842197037171468487741551624940940841666993952999384435332961371909649132105144394060968444419704197071992266299869471310846569855753953656031991117960274907328559620286186152238484448772542609065818742400664235137782807959479670626887423118591345859697939011905903480721062725348844585981656860418624476464860925519208054412004319953764159826323041788439940437204391287253951939874726636146223685607631842860798033405606794677454694665046628829613785979408424733968776647056533087031691562107566861993373682196274006439527960419957729772790152838605392270518952677088844924227079838879489312622527735757559247110306665238641588944785779037868519091513269704462171159403323971575847209379520663034385153202710533861069279553808175893245358327491561967604177524095309706369399214966796756262493515697194021838828803524777728861454556136709861855168546962563875004698963133870000575257459767405075779969976073040288322472124945090036251319036154914190546602855895196681802621471905014355054713497994014880162071041445543168658234643733508711582856238934001624723216988735089171657479153811306962830196575042881221944111564420636365423304571781352851680951633673367610546085706549761882177332155516712365589507529270871866948191863121465591952200470479049417622296795997373363843363583429898272494377223087108358849749695243810127174384508508603914623170215944678590235881044022167670890797022464558051577084439935691617758152418530823937984435191717885903163023627243317568274587876311659725776861632410659828487000255752310767387872209508462425170483840884286724841892268396239768048313021474333047103269884842298041685646133093538916562795090926687211745897166359483269367718557110290968821431177871471506684992393104351971387235981968055877236331869514824941801970185046831209105264989495775632810478454337974883133799990307248615825854704592426752804195735139562176105031132237492746645165272371260290762358136551211664030966725144775640597690168128835930991535451003783528059212844544877347352976939089732598325571538035542070730551123388001998880065305383981015795587993723903038018784754829666494991555751159105722210276380526413119980375848665981163804367503787321336691981800686404319131189034916315906629201171618191436336416457297666958637826217887438787043833390286716545549544976193504612526117090846798258485569742910540173886721076992732198398950609323939229589879611030085312904806526899016787921397466373741311153712542324565416992270327195056261839650155437426083687654164927901275984383486272571367886865595649346789350651076787869091060079536579689283361571882228830475676245779231760078163784845856338442480971479911841475959511216870109991889163734005216887257169502373956342538175499918169267842698821413362570554716784861016638656461333674371864231640914701610088455285361836775961109123778295191753419794147775241713388145307992340938335209428115017207384173277692677017675302281389012172113463013507210147766803512785975078944147890691981457190721430834515732149262812649796221036967808316439539536291360832556717806453654219355026121640984326861894791297654433810654798157756984880068242247258935307535887718706618838516854497170211414889413925885449558230257434408352504257233788815374401212763179876677810443865921564368399406493622663842741718266892257608160519857030691606238810534193087538701443493063225965670739508659336811899567062662564901580713367660722005557917063496500117893852370798024356479334455444969420860798739581653552655627179414332634163458704540016336828612358555829278363927711973124256471893541560784948105842442166160443565911233481465574032882554539370641122837286988886928822938364964153660144446554921713567112996354893631108154152841613621284615937176691564602068999321685637613143702312893180597337797334244520594912341676916547932719119001964005945709206628552231412654811889724344811504313213328025634415164626648527509133759228056183433727808393159794955133532193530504156089997589311069019194721097429491834568065608715782392341822101532889136691489900089324863929426140159531232088593787767177624397470828965258901582464754705246869178506517112644617568012268935768429306022808543883511977860394433204503705761445009838075187346949506376896936118844024877594550315340901112877487794675562912967325133920165286348343000207808143122252624252467696535489432909618825106801739079565257979098799509159442909756321128589120773223663135771089324874884699515019744990228943831453799163826955084319902183946690961617267420944818119959185543975987917599299923374970716564575236539148442713418636863666674918555154170695020805173311219212782985956453847236715797829425331301045951826762374466653157424162567623884851276709792520268130119660506245367750950472570373049299567376296204870071685375282261372907241042019412503222952425001710038555375619955731911737681923098815755007076077448060947969078251999570438090145931921452817215681892123865845297066092621160130159288141362144818761236236740711626165919831158003256332121468422042961358461083650892520487121273536458521809307018335764148396748542998553309145338634620695456634552451739191189438420938043166026331873579966932363908276397331307980449958508714253461502405973464529742353869323524031853399363679293749088719623340937798017067289350344570486668177578597317880661720283241510415422180257091910179447065653292560144474546158790925664599478473799882432340630754576207813518943026074333630764965664928028323643164020982028159682752777329820139413431110336387382547470917394383437836126787483550552709197969028346299440747774454869741614196923816252895134229646764342182155219378334990338134340710823705775731102821154744787385403516396379579100456901049582558033680353928726354085835345100913114078946381821948766898642758827756375468784976233171301753186307482246329198876275637856970706024946244266472976240037016352122606659198890978257653138973598719552904945328281074534040851628304848676191903650949987114482913661509950412837173598919132804016977488768157139188285256242835130306836013704224102117916599421974335914402858671467026430933894171209990276273471944708709943889963840717071409935228215330458275026315429203677178424511167673333201673041632963519011867306318145992720774404969501412470061438674929814202283055780621751502703019214838826791642986753147569972971543904301763968577528425019015824097837601991586093752846203383700563505912710864740181962187934698187760763100877843354987650855650267206539185896769883172519716696001300511844113645975086854516889588839945249112559916058588438165537205602464473659892436076589236820353831804378151587115631854832132868140871084190007968885072765733228547882207743442263445512490586471774941467710957725093753073092984226283875234356844170002993001077187849276768018553134694272560160128184851936225017815193862497107688243445478556462471755856254917153562837391524045027947882372423266770889874600955743610720569635629821179235141993008204467867648651716080743230826500587978487115323861915939424015428648356429431883028815017647351241089241728559368952724503723544480165001332299390279430595872994751514327189817039334799170090837028796297661206566588286640591104712471344844589725957326105055800451169988068464041580244539659839548461953906295642541024424059329131701413172768208516110060530993733951386219661070503922396351606027365312806955574220718512678757077456045273131860629530098172856855216991094020940334304229278236224191746230687237765821053572594322612289813150373722674037105139224911450374165543849907416615622217693507224899518071956687805956659558563073628664654501963119896347019151022045323945348649850166929888009250734893237132516497833585461758445489713401979811433226065266719657537797384757416332371784688877608621132220231245080965840537088517339625718309446252550072513106505491810315011385385969896332608867031999711876859050650723611417667817685089114285050249395064177783809316941612588439371717179271568892018177135518387062357257394355628624953681563243947458794210253171647103751736519071336322523256184015552413703535500069831697435510890638548641323593362861680711026730985223904779923464833374307631856377855912533030270834526964676635462337274088333381031438221707308255680101415853678609350604777598063391136032006397301376559172958527629723380807680617589366275105263991934210630542447351385119053252110339414109804142679567858671138749965246849151176825574026163429636580673868014147075437962221870455370428759315656104033073314789269022464513124069078998048212863508978888268590849072011866921690112888771016512067919539766413144731781924054495453916422824453161014925247440593319252268290150527663196985340087785721043180073210543122209718932620594817090229616933198693244114526513561034314215427117086137430139169775459305529519505158422830696745565302817887645540555783203784726630672379204503169675488868986955724659248990259181288434354375044769519468082400954775436393019850630135531051546744369871360023299702645461042577420996467324477711908058307229683595490133703300618243342452577985282842490811815443635952328798849171478402440108414786158676188726298937035364601041593906221591360026542440806569172915825836892914351349943938731028789771832944588363527306028168855465707708233036932784896739875137481374860065300704494510862664424594552217768789660717976755920137100275253526626357395380683085331810624429169012421159636344297400710881934779291239176787113261899829457338891781661103091317064053466710894880964315997703238045631903298681638664796334245275402883133379029209903164303033059796317483373776054366152969961551913958632659166845513275489477555003104095381842183369123287552791350753458883139814392301484266500047873215486145987179289410838876416339611231788543855706441631743446746701631242099076532980895858092734139245635025867139358074389237559876046390812844135542260756122540242727706360349295417704480847227543047785696739976905282718810299584763339363663210819474447292313192265280128166918527742992747685882630756731579930396127465403232493691787782417899754347331455600555129947220977252184876452096006184296413616654719499997933251261593427579252918608602378860179496141667839039524958649878103699533140357696340947734251806197301089525813948071882232474274792570347447931895558265364228835746448067150776774042086044937558607380634566365283524557748196789312427893792026468157764712820780168817625927957034538673043609619178330476068999967109760938680805537657962147110593654663584831542894563919040123954259702157929853250644048607708364386282844728889415035352665200150168296480321675064261993961479091366335398364324876466953869662212335728009750888214292216084296508246176221542486379934500515191347470707843892105266325640432532500432225690365848666148180453282511351757185424390222300070831521366618133153272641959239528635165502770257110018547468107444651548738335302873633209456443907239108349170671045179575942748701576407448959517210415884082901059654552003711300059081896934174263893755306031040223352679523176188831883528684839230158460664853731587417362284245506350154135422194087217271191982740920264605628568037524173133805489602678990740545780348939543581924988940222565043863246439743285555558177874970980524082508294279909352827448424710936638671535501614821152114483687507121908918340935946518826564918252823967305954280082489343815375169969547192311086953096255773824237922820163076811437847768643881032009344095827937735613646033712210978640663938400955937308710469068464894609855812873990005229765686645767659593716057693411950255447138472892642243229386052949361820338714657288374352947305291934498171585614269337698228059858710819125880628409024798433552454413887739259650321356643516397490483066598840456085005742894842627050900605872644317566000902096681990500700055317971257982587634083375542337031496702012611421171676933074523237395320825217228086249403606624222151751288622344588194671612402492180440978412946242310600967094065322202948162870066171302166347935037687486651998688745078719429777736256465171452426081699283092789651587833784034427859938530820985228795886642486297158532086699753568800615948458563419497046324513587943901819674619936996248087556734362514064969623089252037796298808299432902604735270898554588596214492908878621016157126723268052058158195919920746240643164943830986245059565072698691895306470499201376018267352183885276376606291764138043248314956516873301292366596044148225816103919923000827230532027127421017559351836959876479448778413229225919891414315324850350393946112315979632197611548250081916235636102951475009971010934544456684003797173021576266687530097756486417012448464582750582394349187040918763029653342166721098894507702707839290208718393192930686207028239686214247564564459216476731678191329068115664474337232663234460928739671168721268448754975154087336962219084247599033593725995091615191216627014819966837272941562338572356642614860902019098861610387260217871444879923384575439443681037473679741659610004923698828596161442771760454749686434190144932294603275178294405097814282663137951624917212621877722552841116589208984452318546387696739048275763411529634684998289823667997488729964814793502664718466476689255055379397275352609360705834780256622784039206095574589382876197617173753726547273225279238538428747839635784438762613179066907487703740680131063545975174357583606589776796593607555398444043393424630012676989212104482040225848574782825884195700795137276952463027635828068880384672857799655875731068462015775113514841005710423765056289318618976063880097883318315019028312424922494525645156071490817184885317580559551234796371497870636912346206143629216211545686800614219172633293974789276299334754305954529291509682091363249270519533013565259653325322722433608675372896358554438349601782183410012250248781497345248316679747203023019050368255863590871582614690546030931533623307903469745947750049121861998534772160676183064461023435333948114661094900353142594026448979150384257368609922372159395551181135807921434046473421853807821910744516529921702920048134559071230829521094721748211717191423241577696424866998112577946178533296142133960734843858537074503807224596714708003922077466642315991411796873867930105200238871090798099853003224895421284189523696500954883675154392375861468499683749029108187539746151523860265056338065895986559602915270746658739579222015287695739371186026017551047166632873794857156834535095440177787414281382950217842767067896608614882283926599939614966000541735986095257418219124540389748235612004592420567623348079269473075595757935278847141652685878222952370311842735429511068822741538457417617572798799596905692942498901664566448948996521560914952052914966945882877662808990907916385569702561379861203970534122995673457327927320421938353953300596999716134571655303983132586145855409537695816596967405695506377520682722758597904068199365884707854079749107029897513882543134034884851219601403939719196965562368401419299034039196528802559587182071606991605952609339539355115447545439273126557534264926888053658972455728226803037260417598551744745710864452504595754704146858212718985433976299656242547108135279546791241619953438966036575724185195508972168378519989605914907160760203522754726985431679004150248059304189044256111098817582017298491869820433441829457419174854489299575411321204836126739500657114521228957400859305068877497193382745731759106016357715398710254524080127008446078582890719751358936261456856205626212978050167647375975710103487543841245377768764657497968379901223760852433314296371331104525233533861605520933148448875329743977074426279151198867988149867059301147092821185134182514517941086260371486796639756005938104678870964429287937763294472507267384884864549841906896308901347670648019548165793620832232716682076504854237805260351624180324294950356613701050856131023519392248813039195397268131160331523050191957090963486747515794512552611902491735474298021514158919300864230794567307081002119678415984337877501930578937412753000947768019812705731445677623847426516055123571933241297002454454528865447420704606262815359697338163120057078190717374223788902949420511411507851437097061236419709905851009864913767449235623388022254339496991063558247522508403524641882054955127728358692690591979798247568153664581825224433331637848311091950139930901249226821616238345802014171639566825390459305216172186265302684434456473900279140461176346261735804711186857683757537684299297933339900127671792306886306790197152288088823257377346352985055484411446782843620779887010489754735414118939836694588824169641830964086273009353066004094436040860049116037124338742590875360258218036718866775166705986142325955704659854698475080048659104602262260317807396446456759924231874317326202692797210287376729595680009969051914657814596784829391885208311900899015777010745483662150552657925181332481392027639527768655657906153400999960934659676039319549032717520742367018061727977809004487969629467597638567509954961489259881794261582632205493987198233555883559436074381048119622182579328316147064383657210877211278469516871344678823262185399679716544568811423913262372100966244418516101993346534854412506941165044445576460232681034633925409790209825512306904350827916254088096440383269759450925706915554090301483864538423450666617010181882231961442625910321974751233268472328847154754167356501695237847728807439639614966453200615767819969140947104191528814274195653001124515876661550209887028114176721410789117815687918223902149774211950368838039692359011607825903194022387018117367375293655120852559138526115876491404373672525692807371719368551677232877107465394979009522604935337983215438818537856045325476735478384270916433727416930459296798299876197123039596697800537405455448543417937509685625218288284859688618597038062670403411060356692314814532337438641666714646844232550221836472476500900963019386492816085422418747568141451108542354771331593207358124815818764059307570329079922030277517279166681352901000085285818010238068201418561452954132592623580587707538924755142511779703219505979408257903423376583851057381853472540648360904326843215908544720717633747528129239542340403145936457082510066304081737991387961137329915293548919174158405144790556889496716723210025463568457314356237061055765404771050347551054544843706517695545418256097559214859820868864383421984580615951342664361756200858081416761599398568638039963227738283619895559145463321490935168282216514694129406604281107334939178090792852059542772871868455389982404532572882986250890930311206441416256480279883442654942230493136824073715668280304508352063561566810683563695027112055459184836233127192303538681470859955903768017469105422551502803916362095556805972481677758690449875790036133831442981600990009017425636843192056369719432790048384028535318085824339070770967527887341104306959696735889339811740150848822585962605984407245319411458546964219696072563858726844283128330883602819184987512882473655302942211118526060176215350723116841614560945972745263304021221506991418886741573515655560000941029681872614477662034624345971901510018388356446130256735582382265001007799269983181515384194089987541252764316442396445131100705384238616497047139916107682029281007032400907492782964735464786268411958681972714425760505603659642968289889706356542434679165699993180971896467779453823914608888969307934453932663769483122847201353113593973825082915427877720501745528448376101385361823728350511929595695302662548912145209038012675678035228063382458385028253294366562775105685187740070758014311817828759255200541077852594359036711617067104933545378264344554535160748022000782767732757530036717612607165136006192453983657167384744658239096811120460777186454044726038040282733064666214348700074783870034598060959535796846605156220917204040721364317321115471248160394494196926173277383713864210952751651253493318233076472872007259563744560440020747691180674516202483248701724223195632089047721373749767915340777429894898814000723797386134215826820786278538034384173656959551142300758386469303549567112454088217654526215966874155731026934352778826913355118124072070555915500165704943647883789271011677592277167554322396402656081130434115130297461829695540282406355454586849763085431680014273283290212137969848743832697357162416434806524770360245868526616194898562321715194312915457162525572012641291685544029497178690630574291245749292225269203665994464716907996149536960058682349917810241137232882379526375612977273020988606848707673169281167558147343166886232838392384128142379297508041259544708414302434254303014972774090923186747871800112744965679921493224707864800460665155100704227606520266154877136435681433182166372439414118987186490609467356547187208928773973006559053788149217387708993140009626496546633926213402580820759482402883706979625449994505209209752308288848994469284878316327138325777870402858974940808048832459347335525290531705211035080638716894718641461684849796577007936772308000445034227834052677993573577527982462983248571638671048542776045908057702444606718532550042513233216346966460785492873256723978140547737910158627244985484838133346098351501521973204388045983503958113810336840474554065313943526557526445475594068239476464539296021495339281538147417072455704219899227693760386839749915095015060444392638070308280317145325444545661936827644934606694394528068606047233950889824298624348673427262609689785105317757186641901535702726096147412213849895403157738789405343166102858900611915373585356744670969393193482550691703388854399841281210870561837949956095668617095183381887781508292996551026141502406632647077387521865680280919415922490105040333682870107890194567258489219109815271695662626744649692133655390078914512070346344295997096083705941596787704842290942806542964611400117981659152285239749946657434512714113130473438282379810808207498339192738712535819197359588370695550893860810162029113723666114741636222710219133987278533416597155250892859780278893582816070717919864278130862410449060936852708546891954834611751483142129136665711999799663159017506598602174196204882148473513302995160822552162349497953903714299424435354871659214976306078766963704931325476281957060752105299964829897814462552351228992124363665071171380453749046300026329149031896692522045182780154960884227957211973601854386724439362330099460556885659513847340670322141131823977730779955928055047014319472179220224888690324582126455416336021817414325735905606173441504979843366890303767749230601334461772096732269843436152516277660109002448433369475517765091168135459602595425191476397792107714143579542094482459039692877385192187895320638084191300114100124913880380142657728314216351208218919823282015445077450263308268710450714661105136418759252436563652224054096945741652301640377926421969770326005947420913879737249200629587600361784198080158329572450647193706520244285044632808250891941167920699353349104870350349923757301886699402365924871071902642360440369475846201770147923959185961314385744082337135348896960033779594343889574800735172948526483298682344090062365688225190765410577237948206663455688652994139639173294494776089251567069038746928611018007503444370096825840165091005115605666334485216407437994743263933826537753014934258031055605495701484118356234108313162059974372094090815186151664971734631643356302038264931774237308736530227311622272296539094961512912443132338298320717473505037011017933351966932712512022599104074062624983764560053265555069663911350809644711832718659588138338496924262785624599786182238451380107267552780241260940128234126694504857369978196546799959254863695517359275185876243952318688848475626292585030649768614276108684448094028026775332834230429607673210832352038998871923238461362862884174997970439780757370510773624895457142466231856380167242539843022956240363871092549455901357082102094911544600227716443639015414597272383975328619027889968153615871128658163254378400230010115124093280129429469871663691553165928278042194731277575874531889474579703810147345722537973004955719698837738357637855852095518566455214675734707390471211793301140198584729810484634801627677108414963675227326064809112091211504561781183277528123882867357436659190587029040079810876136056682412885190628811266930834243104035462366743135183163993909281493358223144725370205888638191801898610787215761554679953945918150955351317721788022730892318584981310146195982229419194494253711399114942587760613960615467342857891149420649602264485269138670372703859618448699185621323150775175345305604902663959438748104733743803028764805365903958552942770468633445829986334472024545749249912675194328757063528610269233826366073800111549284772972961884931924824059611728599047969867547563426882952423584604110899814690970588143720084131181569571030290105748554272966908516254229344096305585003827752867803248353241670748361317327673567204920541834430872550823119318968379198582209779643047053197242735318426266519141806566893880264809964200043771058962799889651184040827887560446986584514497173734491214424350870232995818014417187154184057689137030020572111777114873269079835855750197857035461193832702681372390796851906805540262400849893407741529337838474424996313875450914749966904441731203705874892851385615502087384392678871152292710514071421466275020529597764240671618485642245984253368920458657106200093602319833225779905841790806518458418169187652630990479235653653704531205259933721390669358544677522316497481855325455544417428279031356842111043654538788378674777550898010672946350248756606780020742831994539544410862811509710163402848438326792180324533564822835554875398276183714182982277518357695468134697697029740381985734021774848219346503269454276017539864864377207356506124521715764424699809978888800730183637642806983727746258713720246105889362715508158242791220994146214382540368664941237253233093394454431624062357906164189930047958005560457064251007867974051653017927382409526083936753602504934247370561613174046989851423202082533243154152273080032383064107120485230616078657980303011527243148041630825498609127185578702714036097944574227039091725507859040514621801862723039637634790138343356158483494147603102230494878931762230192329699576161421952650450727699461878195018140531941793069056185298717771464339289498461267294279336566499937924181357650873047911000103825130218520277063989180690157389268645884784458975847355027168320158174374798140052017936396984645787004193121257328478107357308952675380125137355959933191740695442020232100341923087025518437565532786927265692812332382551549265462887107255959609546066343893175756683872552830384164152254430586367232644702344528689065269129851592893971383670107583571494683875258185896608070930372629587051518065286973085255651696065178048085123958809679136230388059223318361761663691234477687059510918465752985599834121574939873955141874448349753028570982472786528822989666780655409727324194960368812022570851554490249293364152124135558963243236453070612742298506667101926403504118388724741852614871656207837772723080586764701425892403331538163551998516419175374515476185443471349111788151539908647633953431579998789936563087803910853414483720532927525368239653419628627613725200766011986020040774638945747124929289850576383085836498897743104209791115223556351744356376028528549079071378617055401208451479717574871417399697414148157737369190822038535825687928216516598822773993783798586280816365097497605732254498808555288659713746020324509858636915487330654329522673587711177651052457950646852217039707184454128111836864298538201743407001340592967553401723204991342139114941106999012785689110887088754748597997470746337789529841101874960481489528783425494376687676762387620090749923814187530953569318172496742076011431307867198703454140289047463337404057068054247084874404964267258413395520573377288313774874736324679097480178636863135305188696238315286226908673496684909369115038357338235874609686422537840757331411625059423037971124085320712700089121546768878660155824911675103057082508743196240046171830876373104888764026206380016608222991764398387320189943294946117970538299463582278765577147399612153988684145582341327085812840772927106918378814684406089626769622550707514585219785053157214109946094981115195275926016429612088660618920741586357022007188818243999774343132387568981563589511600385538835599327492145632970034703556162585127627003549892990990710040387326760457792765208758490275907004700078831864342373954569457264488785017305609142924962084983450343626039052461320074488940142336402111374035822360434546313954269142130490457661453845876909602646232018966264172695101443738164302117542193087720878755747462043364449451802698783031002354165938400218449752632228530284154345729636005056709465829551022465021389299233064160903833592207002409895470713264891034218443476120370363514283843171199290013516445382454932523915138402990817842516074795705518791665336029664551192441576298564597260545105679440141707095497173102487841089943111897081228772315771361392630724623160420641214885315481074079344220309716900311868764708168910027530899132621700327964939716651690975887843005497604640171945638302669962705967919348518900786792509590183117895468046196770547972860583870387620611892569054413574954460454648381403822028052007329892779281444147080350114709084703684999765877402683840689036125743448445285368661615718299955163491432994001427028233095820398736938018952803423198054436843775636238342861879124860451180058122344936101546284052374624768686711552931005593135641745105891449637723186132881265414206324996487391775164002052971561990255932039909221841037328008652473155831983586949580805524119463639065992957805210815747664128195119769954950720845463746457966132293851100312977863096430280365041069599192942785948720838896982738597786069596898123775660975693271944278016290371996226607701429539349979301724719518542399160785493677534606756816456239360664907392761347469187381078090768889220967576984855067990984366308244665018130327308879936156894308275728276652935832705391603788329312837135586767331274990235387198110536295221213281935092736121739519537424186980565657142984579289767806325739914741923470632207827271319055446026928540114678908159138661081246249910326383655821311402984602639375191639076089769573691293528663436624584391038453772660742113608363527545871553324142338600841061238385560885839206678474895492572766653476225394037668448999451803107006006642435150093614179159175367850138130151375591519393763778476118753041070861444193708134772416636322719202829979436707244186586686720103291586702128993416457217307389263240562131595222942777245527067657939216530612852536115978737677565202941829969466130608312658541390016049183012311305801229026239910415031648564312383431314852586435314306164511086625255910630741379479855148864105265889070600506276787592399659896187584203380364370545716014514859051929895167017134582405863423115294476187339684283974901959022910430380624390884261025411000985072092791975089799238860261169788366683708944333846056190120866648530314026610813666844202001382904915240518452856841171635779730607292400090987973151018729576435693586377600957739335105239129482856207690171134788440927640710978846251067879750851378403336419527142694226255092253102799963702936167024710240150767286482684155228025336901687735464164410618252270999434008766515371685841306998589413253878635365068342486649139657746645587498470956185917029537670831157198038039174814825173983435141490740662242231405344184621311584367368927499722041460777755995029284431708925163020767778488193818650606609149872421894018174660615585225531201623991935375262166314047087325706018173130051077322773156877240487248675967347552677822529008915694204669162965935651319876067046563171473709931703710045131024734183362898266940265978772518353601005707681699215680261532577161779180770693120911004163611728930916527759187127800874948839408419338344565421033357612698429782372744834309234358671647820759003567758056235619412278331712986712241869700251133999133212990658807962974198730803705349168199762447799222122073597577749068539360285786220176530989766249448068044796620364953453024391675955695585708407488725110309575174615791165180990701519948140137796954811949898513264380631681702349125745243676225713755005236116349052578389904493210211523243298540592285419060799703071031232073394084577583300514219877131329193001070732633490138747342636646766815492175089884589868068517887675227146428138986704142008572987531662835982769951424169986242891288625121315995255361712981821415457229320668807873612707205632551437867123404546212948626133771383949199448243339165698278001344528929612254603357925443483148986364989585920860780392688088945849365488087420200164194066928444853605327634709199111228276953287493005020775838780567322257612196824070554118660186946067003697616959730104351634490641080948507406226905472401715862010072701469732733040701996569888645684523023757788503455281818162080735010167841698766679813021210098818872554687364806601052665617239005008801565143659671316753130569205171015404143667001785878482884301740571238552501377507363487270397421704264675896352917510035345142193910673963447532270933232235520221759722696917696537298565421081599739040833902167945955796465237898062413309116110720635273205079880858997757352628427812116268751601101397376113115956253698786567133370097116976010785185213198968076956067155238028618246370827148252635299742468039921671112381534704832597439360706041735657781587945134603373195594752263189936969021206162501839354814560590347255788263543296046600555490469480071078669808610635057853096938864056483474871389833779632433437726361929769431950251648870532819709715004198880244357592016378695239605325247827718062944728242007490035685639047334061225210705040960390641320795546109663276754908600018835036733211640458293377680815522181666885121707429271168913724303296535831842939165159720829313687124519879237006254190586856515022821339378095318885312325480230011588587278952285853083775035509973348629591010729978208269922501205072697747159643448317938966412510325023050826966887530255182225907411118211218461659844852646881134813536440930484191890211309966820520203887967476885080969052900198383699174972357852726356450270399022209886951378244727096924786459909646035129794131431203712438424777612609172579931135382650531290186554987639137043935312273594267157969041793114431240590087278099063558336943401296518582708916936656656463577004410727065712575114662179848183833084544468103224658855972257450041343860745390399309155300008100844177740386391789956007095257348242523602426891792719273028809646684484411578708267102563638395740356098757282482854424586028629119145835963572536259750398293604294693967165375738464706692654558874487788494287097676430046004557890924282476001015490651085972655815058865861209093112517259594802891220397021424086857472787461986833216201090800466838550636995343629027833959997460297369962310510771927402403714644254422182869251620840377786331371293992614489452150220782558334544898261311102129422999292819798368374030166730387940647393872078634531509558002846094191273876586270978388860788078747554049168559799714644768690108679037309703250322621888528644434700520094286929149691805669728187074348986046151055426251382519433495354643649011408640896073747616666625133836915334763070877214749249634365889072291559371719912416049689826413473578958066080509827843175856301187604889886837924610261196608978551852722857722685987820042685669203244971374798654517161472552722473873487383659801788148229307436674080346097062746439157235953276881702364871241985162766101629815915622117447929107303504157361194412161865223229808694006681192200955964936661070680831879345035204386113467821416533892434088334965279797218928023661830535491177575731710184160938051736100320031364757194366772463503256822858356984016104070432528416049194349174430327266925726274550890833179023206359080232543425035965935428402974272879740519234985981930644893042204356119143208776703791656384590338727277729047326222597371928501966417787628008426458326122278692280632015524217355975264104453644712127119768778329770746453600223427770622093906214290924264505043947054426984497408660927808483845240552807830280315779952257262324784679132759967083210896147463707867487668583347883978118106081442923163121424411905096547395933051980167623245369284152450137540906038467833817135281594102070461604678384601734358733399577793958557924074960926911252935193973778060889924125370066446643268622300760473139289778855987710384869085349104973123195455448157172727207770897398939460409388557102502847196621392576070658601492231258051163276464728328542480783358520647660157119112692862668703489063825423187159845088130825073190188526665564035707973182947190314511717582889926111002999182471075127412511716609793208398582513446142656687755742661482434170976839324409647640061709315124792333453583798074909500632106246758792288393265326003135605898658722864445605230136148967001678961567119456766866823232635842916690556053839558793229839108306894896810318790152987407355571066581757714918950066072921057708837965511414429871800609899441658233889303195006449495439658846992555587080729403499098134653967964441874305436564611610993178466440724408384431667819804739455633745556903468762671777393208608100654695919534806039405232461151114472126436951069157956587065463315602436724968108546058865917719229248207887037752922588715860409097024641637063057379181528606022845258083685038412609295435815673838191936969976722715540180047156843568754438450274463544830691323309738530502079237717208977620300822559077134753530757087915830932423086902300675283863620393473772049850935637548430472241663126482201759406746873393755420341968702233249872246986465478860799185314823210854685247818117552727585508227288936871507382575288691064283020995073822357582810133762933785016455055792368726692862019946130531400951028315337493003771136963498369930117011897531832743328818597080298367544574426120380781340547197651239026723326469283765461362052374482072810083446131336318789012455069366363701515512962716266356410652787198409377307997827653751865765640604200211395747775711756799199973841859451792258047712067888237289265344665314261905440430354660445710812251000949234934644158029086784192221377094045118973954545378997026836055540369778027930828197257118156683631721192322170874913625938242257397821907365179536613292517852631055319325052456657582136664439623150990037866699425293861430832871073567105464719125002707833657859208992984557421950591856531915352009669706805382944934652716089337262746277322741256904252604452761792319717786410618846406777012683290897219993994826376822342947699972939090433103570119878511298818064458564509834086059296036809696478171489975855897871596781423004625025901020079671591754655107198683966344847183121208147849871748602661955490302736250747710648248064836023005191420256452104547506497815197939121413202281584189156025152398097156568518473743053797047887956625204792291129785439170404982681971611165800598064274650426029086973524936293698837991991280908519369894643004621566631459958538244007560170033997843511699825541551434977684537733411655660158243193831477691095647193858400361543042781229129023443554079821217092413532265733983648683489713072477669206354324997139469554208370133177034430066758645153175455042835972283395390648027145751570943551295088742846273409057915487147277943852477158931775244021379351395405618626549764536284738473258550441809635600165666661819217963639925672469230954758244187203139364470120044399508946972369482320743106150398540312594834248185214417326424175210902685434566966513632423609937974851034720152123248696565373302941326847165637234155525880651016791375666466935475757835733741998996827648449461697610982324519135268466469031227635597130103905863708445932735605111893462905086327365265790800110515612048040907040996267979651922452023948435954905675051629494413222746164547241742525135811912416904956559493517454601399458252919287695300048553803798075627981244929199523099315850735512789815238935755123130640474672380281668924846678694972377856740891606251472518401537131789614794957508244498558216688590831470796673358826396314062089764670795345537655749747656751396131423741946661277745651423251299389312938397670404276212319178060162915458557777559176693894016899600691778792439210884230561979850281737201279944750522852921770007308739283529232171719622160446755616240412107602760602932152942121936740885649607386764070532192919936366582239480173304985659592087191033860843778226485556596416370643943097266171209705930048820413972216928028169767660466631581599619385473285777860239763760915523271050946445976502083984668020979077276988055209045989208734413455823988525724791409772441594227306827995892074476231250719649986801826669669483080415722762873070831075234867603561195315628285768899199688495942750265317310951429521824047652711388029428630374698577837793036327106028103353038428376224402984824133257238193226255257388201462199239542410538248029068234545267062136247156177319557506780049641434720904883657942841195714339450348164847131912553051966189977214268485907069669586720842507425748503459947306210567317196131453588869505657424935142268734860981104109736798728779902045168355317170430232024581743210864250246815058771008665569524421563444347487449889155104880059740253981891299533120831905691947574382586375854492086288205602942199228158357003611782261396825122924617051510901116856364036541002545470199843376346955723082163722543904867865950154122010646282383647122172169422200153456450540723089463204446404906167067396371836526231419975914273719186293610514086942867764766446377584566753353291238626893064684721644339176721643060593362055887953923914611654068348609352774589387858179862964006130740669315541172327221292052998539550157846328411569739556537256054795608537923955593427787654829615578625682757669379993055946320461997405682311781135196128122456447802038189178532346697651056292229711179784347848655924892315311357007020508312484397169264202342304880022857152731367656704858018079752437694557093232531249923595593219210524283071192068104243453645797973631519368588143786538239686907310505385541647388006442155126570568697630237030594570348946081600325961575943044717438365709312378878038301838911709347796984587389129643817704924162904977480365445533866925971881981283316663943440210069624259156385493491743582639686096811790941231771598580789638042618465512960457490634821526981538990593408187726112725950715909664899155368395159742580893551105576918564579587742628401868924916099078664659448945220686723875450922318138592908455446824016175828724272410487622369525691255792077562685824312758586219935970819689591491139101374792740175399411632832480449648441387432430506907881554901391968716586313165739010480547561460984801583318731385594062286665211955913051931496507447374847071394212109696368277235856727863387978699295556292027908293091662553772071172902183240423961158321376161752497685640421692097702968237354272201839081931556774700449360097161343666732213892781863774886714740589597839129368679856577589791315502175302982170315548909232026335881220095222749371817354347865317680279440655379322084339769006671456149196916209473817829163172234101987649117923717641970656498511464984827852368843521015418237472829012569505943561632843267788987649371291352572551976895366081951479564855557230527394167702274811450243993206009677626092540945157337425816793708225853432447894418364688896996553375735558905183803644883535500764026393713603792124021566850590813956169348628410273791120758632292253226028686007720915124455486101122190426061563839916661880644907492908258912447190397575473238252785394996247084921049906825948799080238916042244264572379004952882195455206199005601896511050982770395951097966586383145565023079372371598518268020120269334000976218150495678931106488477619670283869322606758622594760502402483306690853633897278829246278454675858287310826037364025477282272577050852145904725423010704513859015819807792331784645921213562707896019415420533040859996112070434327616820347482651279515557159591782812779851237077599591687716997427868017473664093712147484446384411537212176906760166565265179109623090681676235363038192082834233830849261183028272350013926674411414482577542489910073705079581215829886113040158889114518179928688261393387246919992041894736929578380270957930859548134186802183340091019376756961781308017395209970694415245073991832148645414609629552689665193483492408168994049816515595299102266848872845951188760377182488264592028503536358059666878756836431100831275664743258710728682686459502675415442187757603520007311445546997584763827120318067268113226954888947876934903733551700419868643600678324964735994239578685349088479070472770237223869979042000837925537229387792985119186189850538566641908765643193594034419881192879322423959368373067455436381897171634511161598244423457415643548336293832184109137255760487707470212371449880029992573776738970454099637376429588679524730244116733718887849293190782531846020210458144390604529812559566299944983078290285635115104468482887032752089863670337907735646982469787424956019196029766110443160331831849537186044973756167089986365114846921810224350467245910908264373897859681476749506535744181898504903422443744604948263663198746442336322022103527184942836285066926366820992815195259220296661898374158872348737758516244757604186049371575937848250081885004577359490039076046331524754569050383290592166628225029142333279918775636350584837201336394215783740473307407608813621102123653446497007118378281394793744961522571534723630000986268525089584248648250912137122118220961352457214142209772108186335571591304810573947678508670922960050905371252505533935822743372756686421617604402000727983559853483720228456881254168094304762934292685577627811905426990526331167105601698196923666337321103954907129990017810831784838032077540249716933020029625583448749735012575884994470140208263092623301664444326362789108892615856333714554927066613568567507221323514993201783440359905685458090563133165525845477344201450929577146335409903598389457918152406213518995361426233828740711600259424151767637014304148491763120075272966177625718542809031042314509199696104097962212110739501942874779696988254508218208434416059304426919816571635249284980296399248095986990153967152076544882092807309872349574301741506250544799551450962234118454064496963710132147037528747262726660304705823074120139581010799229455473315897653977985111092849350856482153705419807828348214071419061188088698384609863684395246988604216058261916512920972223852519938857540519139536834568914214406522919523174403916251255946659068831929001930500438575578695487319191750921115309384323062509861145246004597248937511840851665875372524838159295537611775150894525301980728815174580099240984290792072021043246047176566015686990040919568225782318975282366339529328430939892182294464281673420566469045104133821664448280201852425239273512836334019795020020060973384713322978085545291520040166044719025918937599994680411973652678576452436727764886236916554749708514217477294277730969221386942157212126609685922585576984455964798687767083956971708322829968134626174054393062141181948426201305052488519486288843044107491347348094630695854467065694160690737861149682305823182062820719311056518820252770045536430501285668950413250822599097186232536800705558451667436344051702762752611954657173985523497867764994449086005446309130332202187564032903583491029049593364563411115879142454912949382680935552176289685101350907286842672950054783107003414058501641197603482657159375150447224349555787737298941949305622522238460812669365720950198762177368780778407411045299341404644114766812660248879005850391917002966179894710041543364641883008791126055647868658496025444773678872879996103344179212088646168072276663328659914716893644791531249157949133515273029234340524131700634601233823815252373513239294737418610468616825717953543865173829242952506759830316169564489806479086859930604310994124234426515328627016823972510285791502944716396108491408227402765709023415815862381412539260919780625004508260203110181805850016836754177315067193190581422372036422627996079064035984103155824602146330525318094935379764758773131716475190544912940054017339492035193729407782585854144473390040741132480812133054436037776058779548707743102355880137956093959260112183529325574099305187707040527113495972001622547072049090053647993953151718349922187726564160768748232151839935194889038902618919150906591547172299956028198258905871168897224705139920319039344068710125499768378067672277469430865237079585196355525672366017888383530752870562475952961669589569369775863848994081899800528207217771620128405844517446546770868009829821237901895237627465500616698528566796703243987586122617122157784121858959206723182060574182949135835981977284258781917095103476825169516172517685470384018980650461416773032427102040755061609785426136519337030832020927334032024148728922653325904709340491527218450526784194282947035433908370279307473156543597418058062698357134859460959538964382491103810777614222155301000585860081876792205071540950037822571339460682517239286192905459830393220785315077387845601141967841331863299278662956113686081048679391762752748479750649982215857109705674333896699637672917532274909288394567398693660467695240069691757924308863816252067776616163651626619630136888336886915900643578275944346274794498694942104023365997519941699714030896509350187185176356842242171731168265482166407939280824534312116048869174848155178506539949878773154206013765012243674300828745628231841660094320342793384734499923819123705033336616836950053946753752279192355840051567955463581605566063074940914638930532858063221364965645964442175834344848117220707749155965469980741707160416077054172809123253614781458158741836893816272290396652343177234947132423455420717194120920599386502934583918764585236625970292705153921148446233687925805789538272366620057285710961651046344998432612372475635881784004167208369050842862961239888790557174229962421154549748555972518122878924211913666969954730427236064429001451138674077381861033103189810665045767466861674904623779492417036251412084839682926310268409215062042307470352113517041430377908211121430246551316542868525765433425198565664219691882218758410787498320182623176099272465169751005986376751914296982501913756110328002920124653750812616564717497560530127669857818811879510009595002645698282914613698401579899817160952941320315682275646195175375143156740446287810340710453973734592786891849201039464409178968382524676509172306970260240246483795721727068616746482810363600295856957687494825980727341632046907986963182157493857797773706845490529041430242496851144080986217151963158667154561644345847001031086632702640912289660639925654632505709327820406852976850437672291375722658698523604930897917089473307920163819681860200937841113547832221298186845638921980489097176568024047780988619048937507524051257127494353249809351196542066262907212421996160879775111501030204783221178588057044912135556872237208033152652404082799867920374670481650584250399193088985168251293954156768046353400954008157615754207675174010763973986831001656646343188198208125606697797477880800276399896479399130906613357887671099793903573635023208165938936734275964426887510519370205697849424583857000657020053718213459450071525202638654766756659963935767244035214304086045118609043154068188685770700060335467957616393594842245403119319544352553438456232094137009847609828748289371469325761103633431454546003410272964257884859996863119256260043663428420003185708203443160545582286748712043971111688258866583109796566588696607683122236732020129885767472248762855877814993720160659639601850761629833104627958701974137937045248431250919492876966293864388547528137622427163900865965081882367279003023649722938453830388573576923618634110528422545871272778834254140009502294508052423122369864944638220972685840219701381437439319095321192705235662804810492504055475953914126248292797966082206130956733785467357466719303093900394707321665986821145605038234554631993198625368718723785575950688991327723239462338862151400851757308392857534564388234862982548477186700271965676561281965441206893922858456801816205074327184264693460655981276768990599821267521357787482299415905029639371291519994688253520773181678417865234536029491001564658546985901579700868225272933974590420335950132221624511250794244586467539322656221377779466281301900599279208816688401006270188746030371121393715444123222890950834240783036232339230486695850442916225315800325837705540779108280317065602445157147597071533041142378759583444358634943679732791102239232104192955670194167192912718610544049532759277836706616222832005552363061985193860286162081010295541646821942994098002785368411955265779430618060294942737116442539332373806736869212116307711774949974359002059222673769652722750232900764484237980913600480821883097323276085156510899848718995775590684561169647809041565308363367133956767861427092469100041569890477285438987968055882558790157179619682280744251268949544062975186866649919154503840580783328933224144210467725230573481721369576787445879834991550934336963542716530345051736008670720991116978973760792396773465515590098448145538625750195336847369603928610196687136265181942359807651129595478649498244213911561836924638584960755320762303888201384280578398095092252218643661919210594821181307897189929073283850232948431971326865684334518754593575006924223132621442969520425342427316471767619152854718991695959574648671954728193206455538596033419259768233723472130743453378997945695999517416527147538917542300813754389343505345040804351410956955166475152136906366040917932360183885525046186197143882177200977596850560206399436192148077472125796586188054419393052488146993348237134923050042824127917002349068211420688771725703441814922708167531201647223047987475335097600279550135081976896077119783655274951313174625626390467195697800296070973000476679777956271728659092161517481089482909763456898063022739701730284733789643304809101186652291356506190720724061389236634909597433021401634444882392324061701555028807710956573178177793153205022364741827302872216318673859201310866116808535912153869838251135164260193190684710759125529351810139377110800818325020741355200714963115617318225327530834047198097734073669907729743375077576180998056303469294748875990555906769292398503128643394152837587681874566112689419068871547132480825296700628426430081123520674864975634508079663883718148580359835153921306970534394105747128168404395431014881892850356805914770438548534886739898876021779027625591864581191020626989336690228346893732440298107555468817479961006762018822228672236723675736778497636617947536830644811477080340573792913148507940765141828329133177088524624293795886724301090431180793402122687507933805056191736987888927979590211222799508877413532458770035283065802557702374022099581451184269036663028126192994025144307956964324254853211350052842922283996047662256767934160196106671663140403281133447473368812387802162570553219996432271925040611045091384139304448690498285083720789338404654174589970031541319179398882811781902330173574270702507831482035172802622368757076495027368739449066972914271370825760087432083117405056484639137452596314182441015980707449742946888793763444819395062132451791111100285191912454507830910821682677400362455438121585642752098129640450178056300344095268958279290182650483951593271033338867485926611918105889232692948282567762253391518635859737830652143774307227514617199838392092276420997762944545316257939198392335431170720435656276270202771390470066004666935596601374333383095649730576562773409911743811850505434911264207321925374377960899894270739814003838473281692028280032654016023812492056657540894994169051996770538571938762439524861091498516470265333164072338942935548212164979994708273140363805565048537484601666080044048013787863740030985580353759533963116909512637875965663263396796627231291743331723587857488712151753617336004020523256392680310137474886154187779626254363928612712970162469332002947980649594464464474754773403460455289785457901101729022839145735474261868763210831760896410152865184029285137781523609740561198041706050178330336602733000017700509406981841861926581322570479883830935553979341676113435403259476985515939290980409122616966042923108073774145041704882628156568035119360035749204269150127353197778999374888737164983844339810115507576043911587785524452567493176982479126716058978896311359208126877551180303931246747351897993141052753957542481749321183143804385757965263428851357006038554780907640833572406678049992929934543378220506398693512871332083592919939871177728478499845835116116906404987781662212685243947708956377720633466338922363517117332070712235472127456431335627465319562569892003169580928039684146072272714547475031216674080472650341718437293808664572095159392973304866283772137647086165404111900282785554847705771592249688705178080301645053155029243481696332898112866534378224355478120550631115231755358820678191067160190543489299532139503451938137834197328809771062158682398150142183167679369575128990633944866950454297845361042658300994214038634195944907853607149221010680592320852158980211432164592897218951460151343316870839697975356733318018453799749906018555296614453042705791716953630849508035766966124049326102666844550137508128765377372102373913703227490778855050779729644737418347242473904527818030195892852186035606753757480538053114738118445270764839052013839769478970357093280342437849049244041094560320346118622486739947391319902606208695578503567716413216688481664925168126397341775627834343678849044042699431566138175405755828908813423286508690727537282056075196435812790979040090811666012079513091010105725531050645443008307838239726251542816035351563378093919294262218089398447948804118065884074053256490617064629045368260742898792159455102985210957683229750839329427447271854513234582533351720128013590895990312178043759641608449991773157562157900091075942868721535945902068131500404925669637950827905666123138958258837015902610329078596902944827207135367427613467087546208016993180320882953463676978902150070097071134994434142485460453430102325168927439538808436599660992731563418239402708022728808655003654707242988299319289081632521890978278826321384927376392270211112503365083972768911132201232000640889432492595255985307201459364239519341243155524160517310326995155777110378775689510723542258801734539337093769977358173038658905927296240477649240200131998846377876899603294232671832144757333932441247554150292468710038090404131193606538519786076112415159455431487503534266134689931749407913144326849867988507484964665004048245405903809055382216987730845907768397179878395687613725759960420128417143776787824105991034698975421314143049968570444557840171562367794596426802986129075239952200229863764768698324375722952401428586490260054135823322945320658021723434624536940064230566971627593576259053297701157190421196984656881312703056629748063929680482931733640953558155410115608887378545497411646236535062611208783638423168389067455548359680091449059837469791192103720355473377496850313390294905455873792234210026721098601403903576725715365194455837923923013931148584721487852970756262773264566777954675731274510071902068710813325012517905544097990707092495775635536556990573347908404642270326312377044590214020095015480824191612321626658358610230897348519124724601560895848980487804179284145690779504477362948381296761497069448427222948732612809943848806423000268842458572343117595147192425276557104207547009434093632294767249072997345373168986096993129511634143007375350514495882780005926228998004680570635888607942451990789181037649342819099998988541247361280257097348938351837506962771583339497699215893668624627248802503108836174597255974937701651227703966213965645768322496393968885855144570688720142573332516119339992868885316391429063973939853221869194841868393400890782673879965615813726543306996358321085457217017646663277750024532251528705949146996298345589672656039911636652246980600965754603086073700828556066547753512162711379054812224695691135863107215348523693139474683229219763029632184882645376131009380927012995012685525686627007278022688792048881339400051534685359936447286252040620427063726214499021187483969305631810840413291017113039885279481909746716780978372549292174846425387483491503336200692522141937609587229148273513263136200976212371176378065991386511188971492981203301906206315444888519556105847423832719440139249431163620386931117744365056439895696984579354818941337784449606803409960166968824730140064553073684219406518756878060984669400559066312348346941837848773158524043955540613979758572522426161932745703923422902415017093383194265633968943447936841458444378586332983384305478841727046198386591660809002401339495643684199809183856779321633647552960744138038988294232835367969083946411286571216724049653674623140034994111300498797405933854737112823863244203796698194132757810811740241955119024641116000602566495335673482779697591455737573946734140699736735120763937331526261355539239578385843123431289680861850163851905557262437212232953037199953095179173772916278878649564503324462905345800254132312398631600433459152543433179915301404930075754088786095590192843698525131554009313954863229805874377024417875940314367629804947962363399940223672907843224409474895484594032229811989947413144568836929747594461434862808936795185722120571103549637403828150824785872545429189772244153168707548317281401699915146527544504954912467498515398102134423725333307718891584725132616776237839533217914151816555078178466147222925129221317618820395662144586643687569499403839893795939260595541417339038441483936899753924558513722011559920028959296883414603747871370313625789691886827562518595150734768011514328933893320102946501502885601446094030669190374753358072573540775693627257125264232793319970732104658142024666779334748648916446735232393977889667443611197722676209041371935118470814805436239120107582643439694834032729992209571946996829969429956598984788758564086039890786162665206776747563378308662621445745642866323231919206842206230116150792622888274650567031063046530758179160331859409629504750792999405688810669586387428791390645375757225169037099886734862872480737481528709805894751563392580017828830556062028111977755237487903624056949684728616661756917102940660640294146702195236851807465797693092419825537790599312120634266854308576327552570613261368315342851279990571103716490512005661024244430639368461965355721473137458889686056061376319114951231252522475558326229683654924204211644126613098862570275264817236016296486924526523831166087526868904558826126734597410243284001256334776458239024968988625796719215481375048546112048995716190867346887368070894036266833993872326451800646122488101743031399854003896519177852046348421684324602568094032550434808909257121277137812095494384317265470633053038111332701206728304233431487026947979307290216035651271689693062376664379866863420423792431689481000987896705753282145533454844091638396385645952107076047871718852979095816061712194236918977024522870570953479382130058664097216676987555471657537800649741746837448822234357150861031678397443917384361057435965540148711520414564777073714505403151391648594951163589027140633185225362627415636884874430322686154676201874446860229320825760708060219479881587161405657193705328748909069096897534598595487373615703401431748729438956376396323256815635986746810460181559636880005987670703781852400462739260016129805467895647323000270157608909055362003096831437075287686909571844780746326869207094155383328446648755740878698363931432843554496648232824724894232180313590420294066783789085182705733188208123102745631632253020573425549445132591927062002865665822984992631620318465562602732944777479197006521991384067003531758725706685727318107048890752180856337712012038491897506980293277726509713481291852286471572245332581909083868013344499091699261332091603606362685443662850024158301894158797212372512928262351451498283828744752134957747597875972623545727447326012439288855751431579407871226538644726792175774289458785591037366954463109850121595294268564378218627894876291824293496524823467374548932417473823324447242391077242807116432661781524721384502945021896113386073314367891621895663866867390136894708806932035804676638194604055615664319728193843419061451765773322268635384204272819009799640137501989632969501125166122529988667348714689874811843606632306712207632452590499498339418173252086796028049367000492515826744832332142445279347284193649867434632951957235650598835590422172284478108689191365386441762384242800264069997067522087057637052941421883615482994552774496547528343669833513524552058749193256379677723595615802949150138475718710201746242742410578327811662358464506248020190509472291757769495856345956283706190682520642201569935768380814416924458275095844617291848396740893488053565496039918686827868286753185629946348247970244305012534800533742604175307811984341576496616211054608792089326666837551007374058763892106367582232314830927883377305764618532594622908374789910513401502621665559197426949934747821599176071771602501661685514735776954866008572680054503153926035829285701430366427786423927204533824691564480815719483042620375336762147036164174037213546229298459943476053356760608382738303471528953922091539385783449158740355159704824612229179184815661146070975020775395228324882586737271216228255833586482439450722974121164230798754301920835163573889731994201874847019420733153205845118160734892095781679064128539657760066083907650818252051603187580010433098452200844022701598484023439223254867175243758823123729691047476879445038431463339778036429157940088109438313803920069977532058607418440602677735468899120454968587185393066792592510928294390998982962752510079585337403183045332721199438056700452981036071096166538098670160499168742761567347359264123437556357868494445949485655334934153789677856195054084770249884668979912236774460381412845371343644760384583316163004731324471659726663428577919230920727978228904637205421017315373150260467996474280815336237730057386371589795409368992790177300064600529901789943202363184390682564596193992476867925792674430812569722722715632883468139690424350146272813488958427875031307269560339333343810579109989980877138240533204459022329356886541740028739054514819874937490737152102956384284476276472072514951654855663521289443041118589257349370127520521854837829233085356700281923014022107792175756494949996678129960992663818259754860275327779667430327403383639989374001076524894448039258349998593545475042669752835821071088260757016152626948244863687080029316719198901002293767826638193935578612896564245120338995572875167535696794868049949735196405342817298272448230171136307838878327392164483866985956607980796549184128958224454456041151807164699134823582932928409585213619025302568221459895233146968687208062957395416978231191324384430386008011859290189521758662215256109328186679526300178655526182444149567203288869426595508889994332928001535535405955667420229238169505091733625444177328101887609293240844728914367763354094573669911629583963823237028975270538473827501501409911163713629833200316894146603298712499557087263765225001159797263127618421397689626781075689695059970721170996162360168625070849238997482223346018633213061188827981626000881780954569615862917329695216597760258772367154503471521486231896201961393106518665884506279297552096833960807610617613919097176405426081252141188801803287262043872678016220945436317000162968356793515433366259396636243815997728949475109758551414004768900621147724345699884299421150514882091279339014587142468992925972902643424713772007730894291823473469803469898882935035246640124732081012078004332032654538269607262884392401868064321192013940615769663171628782981229389561995958597937262115512840639131550708424953424053653061307073732548694234890041637408410231265419865093332403756994549252932044597622502189365464895712792164060719997087290171097550225520360094747299498141825652274423451387010610782589465683064912607811097543067312539565960506414044608579215202367220892436795689492893398687882407368762624395633956500470056724750755493263919112806599085740467309005768228366603011667761206284834066823768351035056358224808734539845679419691186676147197063853082434521671493266120432081585734621214685900650150475416642118382415434743853267390763993301868308099153922079032012222240249869611524991024110045537898105614805684303612036690099713801967871475258177311907011066617875957136875645546805890447418167896214162197523078198002868158974743052986549669647193798633475005941423704712980546392609910537173620670009501727268389537614166862002712252159501797780899386583149927424738958423374271131792172714221126945258564938117096514981440737444215739231231703656638181402702827376843226183837557680324130791879734870651333603322144882937505860742740777209657708561628182885050065411025385224141060804469160076401862829266776145409445256345119176725316587600404002888217935281966346230978466865945718377656737503736879923830158870699601301285128435452357518381890669868320500466638954444015626347660181564154584394135117148212908538486377619920023663240293582145585475892517619546386251438189611230557274242255673577837087250654337238239720169692141325986443245657718627491226882097756036285977372807482847409159298042384938024064203013943508521583743007287502312643941476323116170603121427217455058133929291398471357248532974311470166712702019163420160983887807290728046765059379766678818519564739130177211473438643400875458763326498049848228266721837507932557034061054578129641383221810904728794634596706425761779548293761362930158696606478746289249406021151669319278466692572670578109197538952119382058614945394324918595516193886068578713333140464129542130688471434666931511898565022952270300170904043804162601847718304666506128642589326708689733146407601632498539098206928870823867242521102022167693648788884250038417505546524529209095919049384667514931477110826708895253749316899307492898984022025798162119601719776607645342741984714548876444311532518857384754732049800619452409030781333593885486634554237038629831441305840938707464652924143365740236243126977223398411554495701926134560160011018701063514544609171775981184074618423123022368094845246691631439552085796826557858722600339563425614555629038927728096825321204992070565340068688149633535803448714792261930642160194742615348709222031292943403527435552319216104725905835803624666230908540167726667760498338574691261974193396033514222640547203461439769677715763981022585620268178894200397441484979700568122868344186251057320094143618031551496637723478378296508419916785111021449600627217546160200947474892095238465981836338522006016476432622906339248370047292408766008762472202798629528592886223094198716309397873710744953902703478021622643538099096176412759646838127534786896849767715912680779242185384958449539948872728016001076469185759280450099451227276850764990606727097303054275945762908973889187407055794106650094738649282582361224651127948938275554750400601152168394447060328302988480459291930101217222262983739286565544674172385436696811232856427803220769077874658863388269028293002754354797690364428516704043803507877725889711608503754542411357340357539218256487027445324056323213171553752194570384794239336469037465795970425768114666818351868101728607324759594057675915715271341296243277921286623115750848672343125852304695857455265982227200684057096169316755853536646019141449822620789340412408063916771464367204860198020635476941754588682126962353820530154059068434280012326340296849254235295013593702113317598360118286651748267494764381928360184107032606495030344493756202350656338417502992084528234756992517703708645161183646323166062471678404876315141749184480966369872504476977233189231634703359303956209384897357793563817264114546092443522393127062594698092664414569970452970181750787568303558393677825604978951814695711655623226086619314308298048669827515628385944635104241588300443192999115690953548363638163013434896985795899210890812674253324350014308657581046304006209750987745369946958808454136962508057105808224996274995783122546283343282128088126098572297600346936603227422482385123100238396784531545165946046989431013263701550631838769496265794762198432671658569649809667504567601748657043557781809473520372930741977113498674465954532795330578015977704856478244817243035266473842303785892219303942487395435897271940428158294805481088383302368674736993862962230644395878273889441175746239199259240012462415647095155685408677293880539959780336348222842520808524879624227537729706992959617820638383935882282457136524325679941290029649123101001235478375524443395604769909554958501184096939333795897947939658890737190611599234263448022617671605457362163080341457999856167799630461769144008194650169812088162480901299203909108443615068057873761188249303230941690154646992282970061592000943386000058132673704090672359431882474696639461100797000311561295198721460410193190491530989318415634506005154739253144180222045465862901773986720715194005112068539190515843210184896250465793882044880379576451698364868913886707633575726666416312438961048472282588830296251133084770359456617604587123838362804618804728474879144446422708510868537813321793637413972111319619904726599957049571249113493817759877959958019543640481615244684013749541066468325230350598466204614487827189007971574831524859427246999044452849153206695391422995211231589518080234973513980340552026991191016122268776545211561298868693672241728045514616266898310687956261357129080310305194949876620774080027615596354005276401163144041719733334865256701198341023730368729617916093977440068091670509016585564994019357065682392862228080145976721092049386921951458163118133338738203989503497640039768235276076484809937189564362995275738475628572330115773867038625949380854995759822368004457460942556939460549111904185099567930607132523844406721897955569733332320290141395027598937346609768733845806822877695606469669779817669609200554588579755580337187803005738109856864847689898153050058724826703573383970854254136742801563608782102493193129205646567347898879061435551226132919182222108795345354645915219294254602785216361941011235523764316222930048830939438915842128288363968401379164451562540873422865547774876411425344789621602186277216306110014578916123976021502302526393731599976756178255775202476926915999739579584409723328916337220399482667981503416366230888229550644901899817085139261735358563774669034960092202034186242619342851398521294592712657770478945084297825174814559011292131083808962333230953846150102055508163374121669806451802841022913438216353070074483051013347061035106754047939593659043132121466864159859984937411081958407985899858089303858807431802495704265409837670235984218497578842464202856139285803742561421642586501794427308801472395678249046289850262847086064804687651929131585728957670644286804554520978706002752527921951512544828802506982124222780754477190465939857405010220612115668716384048146527503619991108086895596956038868339990437944431433374308526244569456759601032827644718914684312984448636648668089569446485081147316583338402358366333084961924666667281719848241533378670680526412331169245456891319580989691507140658193752048552835061137062503784392878626072943890661459088261401317438712945677782907264230235565057791348506596905879220823438174691172023227163788635749632741004493087304490330806367332386756382545675137300953777861255098490351823861845840254156875246232997733202423039988345422497640304332401882943934656991158512813385265900511261967902171771551872689673590241551385095478188801931216485871957232141152713958635435523317038045571181479825890423338634651002174721275028754847080490556663936527977907285190098081674037458831781196537239491982880275619381811167107776055891246491610471908841426335451186942727195860057287998241206573367768914627664010339130111051696916075491084006306921807343411818921798054274477412977766008901744052571755679543676776316842564527712051970077856770470802159390314287825219165933675300077567687255067333914143430215690736473387459632281668150834969260646706615277688140574444288100008082561182482054256039590742808977472217898823488362481243953200650711441178815839959228097238744501635287272819762885448802132805366868484416272369975820578028199071827415094391357852582809785006210447066494965772072707184199571825738940649863612031956775957180790984896167642733026341596824235602968064664055655299702483121765686428822233885082151870884595769966520803637222416777262900704728630483306018423104283303215689722120746859551030412924671113535792980301672607780002475706307822901657256903459684379204910913612012104183803775759447066640267207964016511862336093830588449792502554228461758859377978846461999851752225049668214087552771126422055001353914699491437418075272349539000666783932875859281801027807959209809563434074239468089846701535799889057644365373211940984733169942074206320429065689368187667343237134502728206381142831340918147831453724962942566717750399524343815227372041478557509395031149353649435593878155645009577220541083534573938337998039028314726556296928964370174923074758617518733170980118602821786144174000714598583713666257621368457056770198074530353328511782595372781830408603018197255627039834467768955191528750320638909998065035574659492131365897398178221357736429052416650320815692300599531525678053337926941351420398308577557449598420439794438728441884058693398898272599768594631138765188937632272469515556448309423731403925221576593859445466951391926616668529692455111170872997359942444014343999298296255852195751228693358172576874327238814632275262899194737343482360739159311895183764737370317384050736696303012328907955498258225705543950731262663837509313320883406504398274565928250192329973949515299367232249537316366226049449244354353860163586959459075375911182504429599257991728864027141772816053354653146056576638220853529388914838643059388471711828906277425784340973256859026251043753297470463991437204703408781377062314213166182495398588975662259270892382047424527606469669756946672218390999323576115013092446579347997172960928571525452402509513890401085218473577827743907565822224857704349162101082486454461740087432396458400803325579917206539598058718050791499124892188831166965797037126696797567238840283466859632929228330555508864605752670876860248277486801463289527840503118983357635964372860828182017227064743637093800748367951210493272862030773528592275269893770299480049735590608358898432350326054464018131163948653576836442292231757440998291628408821964960644321295187017657043183882361440922534489353357909935939421434726393884943077847613296420997934281950341223200520651977796471272208042486787536417986693589046450548953470278996012210818302454002798936086185623578932463683963257715185768293178074800377004914064570409058412546096647149098676231397127468514068983259453799186274076987845464691909846561919870372478072600472325428813167037186323536384147939250494779773861611592609980437385847052906333561293656801826297999970375425451714972534700765247416103394071841058567492516727005135809799424940262349676963872899275206368107964516239973391601293676807386088358065044080163630623094358109327052286861910572490367011988652286356618153839578445744685561395437898522216383221045160244690623773271927248394369248196025107199177846158098907094006238599060916539212646826962355704684516742954754831208741565902191576014284866815729701429112314706147959686650556850525269816840407193938285768399307856304465823254620842337461367699863303342643424692720648405555043788340791626459180964841527684127403247059453012556551773349208997821587225601331416240085041787249191731593090350506701254820293688743141578445662794223181576312516925106678241067293450284859623530236831610763097298974013820669697049631625107184311271460991046026556453863923370787075515917355524755551525925846956343195762062924396747773189105014914835862874793865292700753254059521022668997391537743551848474397439482992005111417334835660680346939556066402151063684757808860434504918316420268871935272466394249984428696811578980768881432402208929440203098200802521465006705982357750185989150442918433378288640928876863180851157685881050698064542280248310081058413810658369784726912516916119932620173055358970204762495127767398639611942899060900225606830850434007987877927680834554782480485008618558841539847271707874278756176152048233991677732686640720106839849591098029694278679293158978884703651739470601293641245499245436257296425817639768736753339615763907283045641726799728337625100185474438700675842166315203368173099527654967506534604861194937021163675284037598304905023499161502668571404089333739236369005660557391783672290849306177108473199443682810327250813930276766531985740279131670129664395355770010498491026436312369298180178553326093606212165187700654055963603182528676029376380836837410983509799807061367375639492563896490087510394977262104253472648332029887828857249363950594056047123054541893069049094435902221665626707040429151123697188588992443597003096806330638675521774120004590976803192710070933457364420750704233053496885640188548581949407268802158542832169504654616995249494758366768412091179742455362574122550697445067394086101868824524743030681905969081950893770971557489597316645604212971315586340682199039311625002541292059044545993634658686131121533427429548335122304145142484964931867250134036099864283381684625076740658508883159519961631675739509133970534751383309733287906894239672715547989200069555554880657794403062267479704785687221964896383908652566528547701355388207842178450093308873182414948381546296860693412708389905218264209369261968497180260105345469377350363543615222545139089369659601582795501839970320516073941418139479193013238791405232871721648719220982067832656358374836052778872366586553323647377736974448732645600425968533059623091345302032525925780204908617143724351183928775519415917664256346401373167581805777025625187313987718431856592637336388649066049847529966496628738035781092214313559973286213856766462632522567273936176074189067179433571421003687259344250281290755250659964013044836594714135162872525466217751088044777890441560520259231254760203309805989256620160909772733970363256848717377213158740515495546206996616879976941399184305060562227700806393031697816938817021285911650691532235694006337517357234184029253025916781970768316968916443706055340706780768874081134249829245999643698924234334044480178612177077539511680130335360397072601798900234040578831092965396539948224291722133102294176252171998791908084486435383186289890298602363491030308654121533078929951400333348825378444582741648349564319951988931097614439581135870354415600513865789003993293075197167385176321652881165394186045380457350548328406964392565409193253556975711650717305048050796825950617800817484170715242137351974192440578047591026820332287060118887523726330149369871024079493628106834630424207272597707361549958067672240083169807689715303214456275053716773240721305463442962572559406537115122261407420759602750077759344863476356284274560471137129104444893387807743595596651961744348747219687767575219783379222192374678558274136590193905825232025668568962099151847108327151244720156587064288781387161855999860879471234305989126738468828744367452377340069611705950197332832575457329157294525750477171665978110530449359529978409947303514017477815928924935360973602483614389812340615866547685603624242257086835765655400763292639021042246697561012914399399894166424973634574011218542038158519991591435337449126346166725327981657047240508846158454884909408806009603383972289642302435698052013997333354903941439757002687125100943436282496028078223907878732789834069956139535635603303813702447369085859794136439541763503195197721426393719294761626394484581151188529975726137090713753382730278283462585051860910086295034973076337445451734485079923798739181758608888477768951522872240298192482832128458648858756803708570687834853101529501252654686466485180816527746045682745065116792293493020258999427720528149693293575610757525187352845610794046121964366327721355821998506977033769117372188904772153178427398006843422393872859383929249698058200684999361220596729581044616393794748609198023543609938628887840258975931172874919572732677772585117822700491710360765677127131291434642477014225010843470675379784532809392879794146202931127723770308270357478403696346651251293196718755384459048996399895446315765140105905096502289584937771379464137611235093805181826841197877306594647555007693460898072007756972795279637948956668378882301004696687442227762659144119770124260994298787549691400064641595356061044095465094606095760966612210018428016109819707113011098945323065941310284706202693969713888937912877610015191053388584090460255827955879670294601769424703130361312791603644267683800179622441663866875584202213812228166485282581321060869035389259371220900631707194173824756634407371949003324645680790962122284093414916402224674163287807468670445103039458119309190817517312534579579025119251160916594783132873112665932618436790150026556594557637319638843700375192722092052759168693622595974276083649008611213796310681388779096376518251095702542999539953104115209317489259644573769618994109274772662171347206448631855016106412288367476647855305383946554778884196933052465949324429540792475142542488613445591425135242028417253128447214236932199583591990832166917409071063958462728508049128491726377180732747592120360100987232196455824255140041558625007568707167112054948613854188060823194203106215594216924389556594227112039013601521361410692794938790542145017962391270663109801233183774400723588041530047284347119463994021284684506895241855611683745080509204752744850112737605345948983183581439558178669663678391745467065958717420057620029769467902380306034437235931311270292719323638697487353773166534019839465472961566705252199682943115158457192077306287653146491547463848424241963938457316681149932957659743081864039167844735712526917424580102874087368252935782280192147022163498369672233826543191130579241649244525655171788568093613239122521360291587546945073164948346361712667554537668297720496809099535899492334881268894831932087818519281608923485537783593739348001683999228312366895143535603562672735377538915983891479233852421352083325623903929525044969792919362857623123832975725464056191991878158665344615217631278234077310837158077302411281254947808245634981337905284935349259130333269905280616913046750592888525887829399815536812414330824351879987616369106026686695546337421240989511186228726064946388451563283550214716527177659201372157860574841652987114151853562512707610958896951088180348393027881486416213052560822685114360839707296233699655564452159858389577693608316769324084466035025452314720318993232774125380988570176280395538936696567290053354763394301456079584110104276181522310669192252715908227797168608931478193730474377084121124833318347828380317696071780774097390032653755142207215180090890744343006477401609596937056840214217213018959441959004862178815561161933450258371103677520967945122705134312708080743682521811429990393502049523735751914347461738271993694393871340196257901221551131175204741379501103507380714166862501516391417934316847164043760415453148903813993613512757862232805535452938808023532378353090791259665832189370748502293225914406546931173501876076192427086853286598435206620871871853170039495791635332712504259683297249606382128474005466032429422696518262138233235305024326289789395483494000848925966738827266903578556061191462954854844953355082996510592571766177622842653390815401641568078916884529980292270773161617287088285570459871651595604640031842842727027709412303670325798310325946479812066909145262366772455029343095589868265347185870133213906875329383507954077110910523992180594242898731391961253250362741868647979428402708213779257611548720433188889205857572345634388549369372171195387941597750240485901619564228471128599919086884582485074038186443056799885817432398515828779144086809328236033651618155656128527470125609559097378559005860786822122575608684314981723427399783815435961959126264135512881523696533736823163338689827282557689095381007934068995862956128270652869409500058293431887180891249059737076251322147869919982638461762657955035734172658900700707654113248435511956222979718587366845125521894649758093073493473247601976419757839503048928525909110673852492207819798545756916185634470197911248061670162249956475346026365292307122049637288861478274402082924198779869952158173430714531691185744102772345612979548648719724449216267795374998477034514886176046917365751302545118521125387202387293996011418926485595073283735277239649374784999197275641379566222289969685706825443377950934957413762946810143039277136596201495463240104208878492150598777031084090728496816051219787197833151629111480535484408225302005187283867330140605836530503628898353366779821541709182769170014773943971084770805136023238451112923708295124363980764080953011220325500973673534831808777509174889038980444707458319418661111317650690524172011293081064927318341234227862983054193683029806679912006900804612208814235300341388082702693299604429998018297023083842786484606473365970168075621722324511741863822626389408836255939224634991585314526341521298345579587958034385435328382425320140893275640111173946516659855436176894711512925226389252448410029395713530852769803276597872070234383873776950351795411244162197248630999154338916211975115514431988087905299100176091513912083388724992065760056838436381924325591770093868558934102970985559010580292145091248682547008533173094280942217204867582036698810755089144308180415742243965737518374414283792673996327298810134810319333301980644927771150432678736837934165394157488596841612224742651759620500219266446814952232901075112119518695270514329804813586449344499679370154445171743411688786149518378034588116475902007553518805692972272146910999153424670961134743025765339507849114572150554292786395501120488755042624239616059769467308745428801539341164508153594618908477450129465936286967862208141367275272916566893683574662093297803478085223703134858217156375324429108056780068291386765116167833559379398770629078708416802588510682102388206256745884330563270784915865105932418373459315903960359640948772669004386121964694214915562374056884965769855721020646451628202876041733129894238939600869862504840895404166994464080310455305483220571421127017027806115166303630818690215265768316916720151901273103132341232768985570487888150348041631517882158903177166642495870465112902131760395588397228131643677263710375594845620475804297371124159893133727748074011260914206584694608856105523147524994150279653892229507867696476298695685320405733698257702633464619325851765662335112005243377958681401615174218793457662760282407142205571383008436630497784811985026283415393933165239933027065657846763227607724441628592943410904266932711356757322946766053987076059489820499975732061182566613847786802375314470374429537192494787469487636936362938037980068005143947042397505378226245039999924860901523027549200087349722057187206719992642092543563774825581474785359737870015318784346691048869293410201782585546357943448432145198200409419375682495394203167035112122175983442680523134339723893026392357631861527296850674294078542749485121362264091008422569971897207075735313882844282947501321915536508557532780143115068201988404735227682946750449596970495351399298596821233030793037302167095387466575149563830294989549239649112888441137468571672809734013554257340493657077470117330980047001281491019683437515364663340327753484049645884167150099841190949906920618166680324886360506214908630727665387602868955077254628567894146958703107919998049376778500903251525386628728071738427161581052794048907816959143590033881588581981194178407490606953571205788921601985366348355408686466137295789788456989549537661897135955861550549635922841168366187550304232531380266962430669651569022015905567590367120592962092809922341892323979760319731761393615662743505457557112697189761492210643859694966766608639281034265562320825213034545262273763510969387641591680200078201052468855438437807291310838298714699991467640309553327954290865302240747452838448990377421832538724928807208543315975827396006006343888258715339903639597545959008799573457340461157537650959743710398969000044784498052406456687703350878970775168232493458942782824929011359213655139772981824471628106327717804213504045286252822786031016284917091822023874600390679958660922215954274677257433100036164616148029429674289979384793488012059100144174892872193879923178454332554110230827437806688959834996965663731076056379235589417572281813087273008746511409116078093768367219616751617192597976293542308838623460584939691642202261252211036733416666902681754123490392561338854446097012815651065743395532152285087790677415671291684705100593557034168221687170663541301790492910199284722356056109501456368396579566728549286427146852713939617316313185758930361999625240971173850852437076710376767133163949551300817743179042953376946985014063784487944033712709304270092109161184133946545052222787197353205371902848449379081742415336504942939167736445707376450652093073272064598780433248762497710378555015947031439257526415467844868359923307844567076211830243210108098403960541870551394844074516090160087463015153135103959724101410878267941957041266619987558054449684110283479726507935982708610323706618032337804007828778750742690080570647612576857135274507775038423548290473562283164323626425498199371607563450238007472274589086574048019089301683018003703872899906918355966199613108833160552796077871088216324039365460650517901013536237776021918380894679769042132915046758954593179557633787806573439119014002784724816511735382784210246556656646120606015113985379184237453260217330469964133819307501250589824403177409894725445633339171780408886212916671425262161342329041249539870994807805780750694201402103504724828967165623435584409692015618146061140252466609748538682649654903293932626100557230071378695088144053737516153740389633885362619532850808825316660499395782927761160643813745661010160286040807084254521987193781689763884586837199203660956727100118908834852323149349602178665656278193001979518789132803361094592108009792933406123106058519236120898233269046682324666336939353321058139103497287428076384945582826423088337969980283570716333681459839659955656400763829490011553353561513980976987649355796794519353572116966963911687749039153688727095911016748819545045688110744638986010003580324896396019216036721154434216852011462402766591800141356933711483451301068021680683040229413193942216667781614425269989199386363491085839654414639441177527711380908203133484832606355091126808811158732971357309677902762562244145852002843550701109193907875569917500765982240109933460585685688471430145457746443980906289058932491657828414426244540136260275599632771389179248460119715953655123365954091295268180668626139628296624822018831627138918580765562056205352972919211055015071883493538637653862567130941849366911346855728279635923754228876932341546858545567927023352441089988693849897886536144971975251945287584573048505872469287314546702124013451915740715373753843007069675273924474087994047047785620820107353367815623639651160169560442976402294416214015332348920640284214230505029515058155254459745072383742100535352903484970009151396520950447269859434148702951298486997479674705090394503384456353972359183217151991790572249668877050946025538236819143475491197469032171504057999054524365441498277727417386670261035245292161906435739118936281782437867352057262139829222067294729285582070279624043419465629004691047204122223349556942459858729527682741784189557380645069336473764249202127072526560411097228886908405571840902474917850474233162142884946056827054470664447936267746407061233982429758471415384104711382265328828329633864546876434991741866360476513644450392602217169688417268770106063693599044677432633831613941907350944303439568062621190815938985253744981248121677896034902002890962923634386527531990544361384855948615864905044633555686432450441975292078410312858769754166778476830878812439225005361340503734881675182644010479970618334052354470542213141863993592738656714568199348615555215499921098841697774761268901473864478221917792502348405380228689334738172429135819008724877758487361870572260973681803700178313863845901102072091654708977526907552308527008112926643583400594069657831857263947678735034456521016255576983498549614997345183076697691386713576168701743721914168689394358855467599407157940269315457373423239024547902099447231452835691514691069698724524759016238581264181021339424311506751389048742605070399429853431270513784259030183656553953759637265963889062840593213806769033556219762894143910715718644604139902937280490382713564885650974326272700296224342527019617456775564318245105643293403026956188428196109537882000753256319182586958878697994874951317337525535964893696027934009478881268149129967926476724475462612735078713024915388118284914392880695017029864696234847058714910090272506492443087318745437289596743330367058997873046619410400962624497137225669173645239952699464465966284597052953464417078975819452321125783994386038875151483709874474578878855109405926748667349696518820963505264254287862384701735780156097186959109253851136624849150387085715002009760205362296684665487568744761498134823834552603334896620906805407140986348514393375768392516210810629358978801688063734170623204840642169998465237783816338057044069557442399496318879920330903591292010728435255822024813247006542241428106508995863111377351439433957659977846631538356005088329697131863474647353062854812368585109301483784158386967441721977367602925635926917560638408269266896484072015766830225208424207618810346575135434099932724448191028093410106406892464184321111098801464765795774578503340103278422918855159639485672523749802225174955228467499742443655740907945961166501610506238876516531644495321133751881480074512365023367664772509517020920039528206366614401956737240230693492985195517668852917042483557177413732519383154932035140360591547187826819559819205099003749670488229330573239102761790663469497611928619748347802109011662399969542830247016206231716197722934651337505996419962288541009729379216013453063041579290420514284184818681399210721142217851230241997543841192295157632540887581177377854464237129973581221827030054989816814014170954395586006789707693596680407500687307402574309802277260939604431191090417809557547583564663975307981621882474899761183850617570501312619407509746090158245248052713577086574060370135718625792838371647567980951512671812780881333182868339627006159010283610769110158998234730695345798929762912873687543923393941824365431485680120637318890573859974140171303231515395037074060724634776228794643795387299151205143949606501897556947763569836593748250143551130822426131849302459956908861816759592900063515333674080212714643010650121274493305602208971197607918020622645422092398140971117388651892092023207479812328972609487892535598498408547824727652528800208318334090204381206489939736330181134934507781568735610762556626591692039381852172172715848277031394130236056712204980419058019589783369435488327179524190221660420385923794854847665557126754714871941873471920365221999366814024787523223729905191550052552349466697696931694712250573063483759819824222453289465639004809678637513555979948841900385934218071814779941702812813472549497267879633958960637137475847038022173977142147097153480629771723776386353665236897177353392784911986929110019289095815329530492365123323278782620941811466208796436483373805993641872085588749593002962751349573035599156160096549667871133920024812503773742956246306972746444890646871176573336298533240295482217203632999566212978617813754662285840206859912395356427049393633843665573045198828909763276602450831880770522364501990445542510293860190275656931373982528103787678441007108207946754572172700461420982185298771911830553207134810159942432116110216602174472162357766487521027619318110896631195503498482079295537280684476694034001976524502396439050114362735940250910384732923654623527247037750096527389449304049450852440219576730829732096724430952263290596142171284155243692797209927167715795479968855238841934509399397315949753316042012429507023481003397332975280513202029897865076010214714347371197405296667000629539604058525670317767171605274795706209829089099602115460837971825284791931235996196577735922494783795167744107063224647556806702186386911281243607798158593024137021445905601599737955870437215902137730628655547914362328862880782547307203617476702491282513850499501396262752347119624804683874621114526643354564282140497486123160732732205981672961675062102024602976430963088010613651203734320972977535469890305525391399693172603170177125980330216526858701658383756120419301016560836085662331242500306912192961109504805590261559178729636885469140946442585237546799150858377916609013812373541626616702174054900671752497808988942212269145806164884322889528563505336971687553651597376322552619476265226413211856746568828250758033320210331890907827783508501845253810264655557060567331084717704029501403999404236438314983574667739989094638144374647029056770822585714507992806657577438188321840136270165011684815574037444355902282633317635814952900632281090903656453215841409135577241120861752860696607539597333320856208983486434273138575821063896746291776898078176210330302872904596398875760608653254318141273524926951929347416925179999365202992131580333760176227135556430014540917219016313496755876935849924970164938916212447351197799809340248112324608601383275155908084349127151072836442524853176947291699675624009449773051988451088946874169817794711172182295585920609122831981930021548358706403297500774957574820013594513008602813290570488228705400197046789783635656327986050245390179226978342661038417831697035637201229217841409647940672716171884488862286545224128582532814557895047920128381367801142450505353040132123631156163999684053508342196012944642036533919770472254364291205848009632756408905785426983617376133714176516953303209302000514278871314870897874498264223749828733809060495690644280501307022964766509107487728736290967789917095815057224395405880592036051181165625605083288544410263042613578985708260229066678597438434038264083083013839542114634347363742280114726005348531972571692971679018302122589556509708465912258481884368106756760551434035831047550496596714143538763783854950319193836555468652056175281618882140413885117509580476568400137036698604864004166383904384082659280123539341485526893305491394533398631194561936728808025354888263814364843970990747429432005475451640074321282541924889725661628307910605726045378342158232376483523007383954186486516185685264679263358942953963556946002303535843321559066207162109027843004464767484781879088182142130992102227402598499822971745006960581720358982764004888195319745803447935751843508087924122703097239942396929668505143513800293099594935654889347876396988513786804944028738985795563215531758415872306293802433358856002329636304140241746747772473342434712538653155785350923126224884873983080616142247259119777268724275351260047145846964799691486353810704834682146024638895347907349794255756369662550112707671552485247334997036428970630000344900070630671729448609965551491740626154359706905278701219800508380258112847230538874101863595727644915805462192991037142261695702783980114634977646068863517867955978770861502525060914557050751536379401725099683202364040283291584354492574452387991128321325348832233493048574022892001620881828107595536476845122313379331888357838040716601901711039704511446514601021974584528461801817726376730509930977116841547358376147325150544644036891030842359354061125801854161481368083088551952514471466342662429803823977729754536193860655421276193876076800100941517973325287468507707790851572036574908246301584531213896720971845597565524952063555568894354199672994483307745610980060046523360292837304461087421316601253259287867666077940911409078169499209688464682952140276171437245324224565722635091379419437887367060955987928173279353224868246804696848513019677962543956440412689283306611368796635215289321489562666651978189798510908291069625417937702525944788156448154849706125145315055790332827159872569430383385700665730522908216507278144913026240809919433033092020540392976142357927511988263166327755976697849245320734904163416593443228825239583377458326060959479537994660892250972633350126627671871091720404657726549055805140186243746035984475413115274812772466837496935515777947535984793370355700472877295018727564123605644320287076453033697793522743781952532290043274195844031957523151343526790913442837002592339120737811494367984136604224974647953668669879784424566485582042644461305114732362636328117015143998850324116940525875841583778666219316073980424906815779994874366449625850707234781241561993783240440102968336726857153860741909942501818643092072841756038429590798588203600780358232313977003121811954811733900180714243028318422262710518513931663706096161916587989354198178286405230747387743742260308250407127608908070871275246666433257488273164954469560330043257557726282377160461223216436019134834565012293309604175075728841919883767543458224022495087363819911359726473731343563534466107373950978482340378437938885310949830174026827104904224980955393027987694040920111923233412238263397427354329274721878309421807067474474555313934566563214064002564075426289153771874117554150686794150947714611129910562594028850029538367132307273903956495974776792033449920475584753521640303750412285630266294088610473753964858500754577158639510764242225031455958509517381838249381098078953779230401471109312438760167925702827227369484286261005223668802165285004095300581507065826377307592451175064366373641236169985910077070431798158938517920199544132615348242542831541707494830432071708482643870754536490161343111001246639312440602635503909989278210104741834998685068575258336689697057291080169222049241478941589353268551610506767223367746024549501102535219921878344691019629738321011625172842562659690984657156033095676150321738173926782268641338249883635748755920819669201310115561577048311868201369035463669790206805896281843911750502895562915885901594365018580913689946164429487424576233678205583896551617913331550119756682044435194057968442854772522762704513959995235114598318176352353253307902997540944651541090399802602983855274167062086338437831050620088163254123990125560565930172626686404474495828953117221501099082339368861942841926784391341765590877526331081774742434451414402507099267543149921174398647429581221308906892785739355198904616544135852130221482567312894036431183261029132870509122361743313764086195963727062789579078907692813117024565470178351119224370192617229702076877088158269220387834544702466027791837815061691407442458611049252863740213404071111146503989681281224260008546379758275028578832936842128461820693103259625515219824806617759862210609749896652484655338545662482424273986772947638084779951047359327559717642573041400157162433157069278255625867232779803147003870517267253925286413406253333305176355612330979700452594486293165825350432390490345424913933220089523167635924793788055572109823197546879866920478169813180298579985809225251491384747148474522002383333225740017625453992341607578793790827361932539043348483264778277806827852506248183373207053718836274328613539308661351989192212093842327140269132383656775816597537502818851937084344593145143595568929425854123320271737382926747012227632011131413883712929936863048669438286166583094107418359849934402994173358303656376443165489286160976389892387540958010738780269476588627864514584272309307671358085108246329793472801299460083006490291542185851415841706607433802534272994379900917588902659522219578736777893020089340513869261381679421848121726463466749369124937877638162748113472941055968231196565666856218161819060940846760135490516554551421146857948331875288405719729738470832489531647591429088830221956318827276156049111086776944424345599770518890991977840161880966163085263579602659702826789172477229026126927273508129260475849491909536069831402306956670492639810131862353624788204265626190649421493853030391453657646850618370687265249331761658614723753142089454825303396728755984402966235709232594682007263916159402384363351517938795897888724713694878213073093971722876715722321926400329113702727144503416660998140555071057165952224002456893586377602120919568673418976687955134808288072819903847250349935563770217768451386561714077884873444171629353152440931804789153574951856395815095796461874979748299421581151813419189361200744966027582134027642686944996036384030769209573696786544685367604665990276313217475633036089476027749878454810585974974469543584712868389304035031372727919431096132866983926594600632863210429856746450896174151666571633176111338604258197288739599655296258025248750389617866697655675911368725348776083690966294888793080540558169399784174256819122233937704962672449341856130120907683675897887256528328830307562590232735367783324271879552574317795785784445711097637136559020791262446343837680852681205173990981884060618375513401541040166375737734148109338876210218942066669441972014359295655226725746329511624492751373433419279884138336390870318799612269123962294860606034275419893376894105201207254149590662134974593753933154173581540084230243157056931242974884631345333920572500411133851266700280754470009431094071840758047192238270963272478034475227018305853148271385305815991423633416443699649997596701444008693820012605497023692261478011622520569383641294204537125557476784535707430745212159141674674695149138737499506503022113997116813070548651737746460069731138734654478410715614350228078394569559737316540065572260294301527693022520665245870747797885514262925953214598760641119741738887132642669427560393950773668572042407612412800259862261922672511873578426054840067811883637223612609219966120232738013013385217934737063268894949843458071749163492279535655899610896945492282267183389010063750948114086727106241555909391909607350672174981284212093016541560874853206152054288523298051591193640510580594946576804343416864042369622798001002567828773354372601189274504938647355870219876054852797928980606727505596419465461861536349926657184842367717507060643798080998806902448599160116000489459438780933935767413359383085531615016752924426895210185660453737100276185189206876527105654181124371963109990197722053724301046978325635677963472214700899445956532781329163980054770141213916679714518125317244998323728555802824897279260165000502320911655783764255891507842685599090443019659776966221324092624294147523625072028058125053950960073900080210345022896695625558884291012636164839436316010133009352716493446215391823734218149097952919080735242819076442882021269585743413666610421069344748253795021693554762899296569952246387534997975850183342042457688996603316691951504567531700561715421748345717592287690475289535248706807148285982445883448440641394561910769068915746925178369086378950133269665920834164198058012951574662933012165598544266769191482781143825444901750819414324989040796398696052580855854421495382477849178017468380592325454458105544054579240764519763928291310652143103046253299450686157793427678798196686447739247649095450843011653929097622105024124846660358182668804004385815676295066411550535588709698358205956530895230599268327446529157321535556920034290285846661879032870412288505682587918361946537930447738729070820807132905938756073342174973959610370318221309441774460614466487339593364190017689097543968193871598974026648122522652956195391110117147568513680598340944285816037110439293055753009209682381912691126201772315703973425641858321998665856578081781372788884711634173457191883188715718579346815865712219775414569518607069330735923925763060367028586375864640381043439886697454858093017989726607045473402854508086673134038927794239135077006142734434254006890264433247991443416884844018207522245429719181520144833086296536618714516274160428971097454053626915208071607480579892094786553304394024817150507954133875308813486226117903233949887606957752026951099162574929130795574081415557365251035275646168958819777912393058298227057923731027874780521073572929325713789354091403956165426797033260035386168000863074721541230592839191264774652438057421242971694759553620279907312646299263265594748691306615294374323798806708061956579279948349610882755908301094131176617966237692213969167194926920337568730164059570985328606463500648834069354906892924012211215481267281338595315280303854739089570414230046111256767555136592606695770594314639945733633615559606701130290599386041790254778591544862255272589622166868961406976985618219072559947389876268794429762441269896674186031050141295482807700513911506209428559008876763850343396864090390589911348217188933265781734438358698935920460329943045495949879842719714033856878593092133724087225837175763119231475620530213069221920320613745048631706082291748164049691385783901081894163202416124251330366318663996072911744381927070001354145180554735935933082277207229418501099215694145887281101842090753528167271809774794061473869856845331828331996812777341532682318900022307110433486894522614468707770013598793166034905878643660795975072579373656873261181137466028548447754950566569080483200782282788845430853103059263181993813158063902757097568840114553331696127436000434484870224087223744956880495335786464133445196054303114269803862989816988327358847102424964403907583713592375036454820660927092003976034779368011381062777815657326598476698190735706276111778601728347504324171707218666924972828430442642200496187179700232385482627816306370321282045269792033163986753031503515290296272450436893423031052414517639840133350045813059557676546319518063523472512530042771195622588308646761053079726526542081952787556232375784380465595258307509313653269002916391167363717430345759308308981477145074391500248865840735558451854720481353833411569754980356374876002883307679015930563424344311353827693367701616851079692324733754282938131436621018000900659430480973101710740757027587245947198742032426209624234083938879828020163553370743208135499676357011690991484824069742530758046021573720826749626202765892748953813275066231968739010260646397803655332676891513192256436381981273334927982240555663640081233101679682806104080282000335769149890145414190126545418056039195199700976520297358961146523098496499930866034048398646070517805308183774086781935681433486231909790358311798930391307713251901695857387678236529512223304840569607437110994703885011065015812918090762651195203331585893590802947803145307657705620873855169987554184796426263697311427084426587805607447512665327690187378464227367427266283982984528942422240482440095643267933628167285646747632727066231409471036140320732346741224716581610082502940692378141315760468567931953011160703134385654856971956589674346540155192630992786130774165435956794306426440472771933621371289751280858614604553817340166989507403184178677574554398982403863166588492839223471195358018302421099549550723215057439470121686629303459242757605456530236597930224290160677727785253069317147100223226346078095391193904085741375998602684842209586705391333064492645627702831066439084064982266771201714166850249435310956120619842040227908778222053616117444502786277900798264864515876718595733359360539294474402359726152564434559273403664236887279897411289120940113541346216164035362101422312383613752568954488270981574536998278982459243930452659364878992149940886077774531461848768288062073143869460625848204112918662359827226324840107257122022302787683662812129283389448128973179756580788341696247652547407383535059922453609863635742077401021266596196653592967682153919301924942476503621006806193506066424845042675303426394437637974996805229934939738162646149487284530658434989336852160949814443537118478486087405932220225010650047288232008880807977516822127891756448302345490196767172659757477998093643597553096636404318040813693301269196193309498105312449939791149828217738067875001888203874930964934045122013091807623377453646219370032105552902556645331016078684927546633102577316999734352697754033308934199903146343867267210201447163436639454194275175612229494384179424613075653713897625411129662107858544183693723158877185284633036339561959176251073676322955059144310246724306903943792673258622024013995012486752950097817436113367720907041434715160316872619367975749084535819774617069314313252103786957773149818923769014336467936013489316098664855599380091753842819881998179497176841656588125187737422455157840106017053463785892147312397145992066065409075866691233191175805333640081865106910426521375971770845046396558466568480138234657097538541603063145428338979640235337505707716599430487341664667844603177318579796455386857796067364250367797511156089616263691229520218567541590695738092177791201236268585206697288358143399542604102350549153791732448012646783310755418485523661830880094254803473774135399313370719902491687753141833397349124562788609283998957682098216341322926063839361133371209882660748706080319476073845944737346025713482646648912183897539851084358165253725700073204716309128262591456655020114834157847443445029036037735722991057917605805009196411086449764238419173316969612718038290797005737255009370747291592290756620181549667292480288184603906399366876662896680598563283468943901575897295449886375986643918814868007198283155221429548050875739852011708584677945144282358310463705019932399521285480162184992421734223662049911203934467654127767629514208738145414049006770030685283978354393986779108778684347728346760609914450893724733723564744303237941611237568912784312195747497483580788202417391617692286548696337417574782441383593233556032431142287803888962242738040631874729325620709153172899012454171471546982090645212129828794444534691157318499773623916933248635769300366114521376400102949019731388804078247652392620540707114252671727558554459128688616534015292012855977761904193848010451140218369508029333778351352932404277858541180677580178516716894184064207493864271294647035955032563933374154173900985687054562601661876361695740015234305724211435024340871815999620564467961691091773915934255204088454425923545474394384884050483534651168176003503704291887268584208471751935241487703415964923036030883459161003873858004792848264871419389643665632934734681571819409946053792188019869367189475152082896451381912953843231612987134597301930770977143817476253058547449791876280985654122908362862334576019268829711711450237585445598565414984784084104361533872838179291689659748727936170982106242041786970966037462918142617084025235793386276675440435507546230694880460663472532316463970967832737841211491488844099346601121292053243615099239813871453799180030764911253976638144280417986051349665410054287763535054296374035614368886558930037080908151585874948664118567441364622064266541936702869288758597359878106059243178290007714345236122812434998959104777863081717240832524788634198542801472088979033393361867507555695265289766500247815117895962462635766417057227819556491716643520075741349324879641531259999739849270394534545353167824422812193439734018283757027681161344121068002522778513073184979891114405840494476298763716181646767880783195787775024128434014797304387702520926488239254618586482619573532013270665548972391902580187428817483954341945749449772452211293724660478489985520870968543468325700997869097012937383799908474629805476484807324523170747517563984953260829636234928990978762196259248769147771812503858105770669990572995786748863960987107687773143436875229153625939768625657216835662815720744393183814822679333710166685649328226818232209763822311481267469919879085930621262090033556579648338263426063932070895551057940729417361511893709129151552195973569635205684598398520270555195137747763838704167970683905246534585772853714434839093176255602891987322874862320041529015518372940253439482338335912407826929427118231679990244319404386301503777204750859676543792717678198456527172658501469947970112588395560060736452474672140572903127809565111220545453184599410806250665889261072337753407377673386324057966254302098930277128657136727991848527499126409995418595750187616587213299342593848672626129804481702116454459634729956235535316112344785358744574275150445907287321639644243367129958835497064975192354985241311118903248037844333390476180101060332684343981588922587215864994277502923468582742979982379662483855424339070406543193051954150549692469658727946103185346455212236076767767685346752497405874878368995272281246743963379645181148829789542187052451245258324081726662071371737669280288216182940307357472654480029364671901404057004069697265150664276776124810759951676512483872531442509316709086373637546965218872882198132456442983854039543203494178336611151657046449666540330626899252221284664693400813680968466007173597153125160799660642358738492532907149229540163988540060643881590232781872967048438597434894130832070530002965737618573301677607466242807684296560846975739733378071402374385140547560178003465944137344605593376181046383255563438045150454984348023962456402061944573966862943404811043087436021643705983871110613191222844554515781687053586366237869543977299156219647397600266122972250697128379339856260267618077482856433011231022145352763587199774379833843451463881624866158792263961683983549943260577526946325127475945560377720154251570012245779425968404686762317012207093404157602556374527807502274607475478967992225414436493925767197016181552050601059217709834739174794778559226471413186008155623062008762006199119427560652117327500056793203200170707854004273877142772616260373923799670864829870339893015051370539815600748065105837263331395684203968940751770425226125870942436848772933290753466834053793252324722922205065317799036359287542402948448675554692853483197352665149975941813134207321032958552133549812731306668738799024237710212412730963532863127212542628112850023727703013489294597263979622931850651163596047732096748888579516445709754292319657787536668278272637334413826752064122612681758915612604990457785000810935745855793966296834190748306439958401705438062503288165043675161336985651797605103058072981422444061368672470336863118428103053011703128994242344032752667061958444364199679716012570124406905281063697547690044772047307867617582309856010428933577291448398554911037314713841015813276351513617932420368808061192773548807058660682036588698840894369387614091671405390937893971350092238657852704019508730774138262777916926471002863457163922909405682358201671841050571209883883423119119841238886566583065620764486787036619295582809463028720397953965791102682637615715765822263155684800347471125080289988453560449805869955362269961074834520173291568419250076597738159533363169446466557785271585853920967784300586401332097553035770125078665136723774519767709719030847229931058967915252997007786219889902397306275784133595011676004785965785237388290751209219995161907371198878122895315181594341972268378781934853533252765495989762810401113422490703078470133843465233750235931521388568246025467651002032743061487236089739305730245373847108144059131478192027348109078823623507014882340775011787717937907067554777007847285473222905646040144891950972625343434335375190226147124121033822220487535792008086615338125363957565703767407260709803761245817913547477446326087124422088316621442854858192526582588351606341902353474551747628240696766538153922421518774316005996461497369405348349737577623814632891243998927029550956750141276117485607880662803503596726557683078296872654902288614349779642994462944956718231383972291369230355444376365794097308753572524981670316996712642126381550833336977919578725777776090696504513498886085025157483372833936088003578960905437862836365780664037770606162575354594127598625865557933489999239508112964728983158288824061415309859004510787630494289289448526252804563362017582870371609727201520537992316669921696057377489934476622504182208611708231699310225843481299071751810222622479664829110373534012055051471003810229084783513907380163980909704460004164936725847038212608997471282291142883122417856730796121714637468143212266067097778457649490906803804783541682781487547984141656382746752789020328447833457350161679178837626658403191507094513342905293278545884384366481743795602519028982771168145083133152158691326564549380555414230358001849762641157194018955707436543015028386071410976742159005213498211912779980618269359928728175689731295306142718235632539908876737503346766853587854992026701246461543359915436024825025247261022713054336591731936146748607955102826405648050308975582205930563845718406702674031723586837623756263909276292541805502495107735574912310043867906176256339134694211539510469152575695488783288343531570240474740213076944350642879668269340123760929702735755908221859458211256190664313518605199797952394717584567679780288796171534106274916274560290717063335632818111296893296688280487499329114222584617035682464074388416487246312395870327425724841541571574931498040049848578147213345194635444007175713601083529895846323354234968260022352240346167596601629499284427381252578140952530123788381969183481813066022697239315839918766778130789176214700807260542028977462381782223175490526063632240580574262649824017037558190316251744320175811338328905826542815912365331160699884105819055546048419321178353458111081854679287429067391928510215777487089111071760335997939708736302602478727750226605910683144367207554500912103526394913259095669379958506410327890903277654218309374111424300980957890780241822626530627220752570600446062762023852535331060256820202216459332909375396957930654408853054705113425446379249085506528346893404482953130526219425400861980008213950694545727725758063858707972502271072615883409083696828710391708161333906351611243316432523210543901980994496213103763861566226999816276341365569191748564808414918489894519678013823608854436529999843225266832592802894321797634785178153916836795787423782718272178777326178405040123842760412457774182578197455957741502192870316938379906840068980537282300628934304242285418721577587357735356349047636859921728546961206595332300924160441843890622824966419305720577766918319530461652856427775576260466905240585178007917322006031996524162066880933425393233244516926566960904960168958969646782957467936147219544206490044440956730248846574699327743418270799846991195143190254617019497112797665792052735924421040247585401086694280003317183334900103457154690268697799085326208181359348027945107652226972505881444625213566947585573641253598649454008267065915299465764427811230933265882668017007497431326245297455146087242022082284433788178918408391342551015520002394118605320207557793295096616870983373264229740179304731512448928133013703993544676724509135009010166970696531948015992629243316916852496408647536355442292212228369478240302047797345311499300571692831894997660104870599336489998937301040699392974660487101799656707755022024058375811506925183811946817433024325316241860310308151848905728680326545185531399076417065273050094784153090033443716957151784817151250823753175555729901965228074579566138743810963572198373099761832502493045574451020192156674870591375454415182465137587528387218678017210054144596890916103334323047189098918890628479928135615484405298644301082686305314045719925419279345865817030291433465276744986970288140275787848945237425085114399344560852884787195867963898162599942659511576021327994597448278981242854137941630905167804433080267899025051532480209842133933730846122837612499854647728403884156919438367485134059817170294496442484625266018517235111122169126377699792805230294050238452966688927728690743682954616653197628115266675527650662024385195412839383123696777355318196283527925890856391151184469489658967865910700026559302458631106232725162324129346544158539971083640872551767194562445970480640155569006189581469511014188495736233556954631647741437704796769244673127133897786971185030331809678010176453841573775992807258988667242840605229314673261662747078530573634781619034342768413404101517888757421262197033787021834330726456365685967774026968053882125933851381037419764399934071959275492086773726571598767776593743033473738693469888730779279367796669699785983729671312958425205264017942935400805947506063667561585107036672082948557611942045528181211524635994060584266973306035091072855192668043516799849331883570506582118463380234193661807797979863209104358094619792404571077468985848285063164333262727305880538063806188433264584364196625521098671518803130168977064909996654203171428397468347335971431899815916085146814478660115282840392091332178234583156276648073797165455210038398938048595568825674719355429400443527086721834827990181189638316279257363722091859931912354248778172309703904226643782613053181538365271537324193900528209230592059224033578665063168822212259729867419875246433792844871324542126802378982173137119868737296524667323120342014836107940653276428077515938575939912042113147285710613954844778320403433261778595970996184059513448975023359024868101307501564201026925013551917457334202505679800735262256667715864602008866990759419658174519764390042614959989152359791952791823055318027897204323071516886350338176940120349208505068895435329130923378473560509019222012956153751563388511146636555335439269152233055529444024987263213951748471871918823969985111341785128630916854837288649889784029280193947783141627183259047777573678845581901951676599289260194288735475148935283604449759527124773608326667549542571087414684143158024701571123798735810964412422122461309372702423074192372255457215834556070711299361287513283023934475191661351809340403504979052250121838025526345789269240045457870998269196732616855355918391526276483921891692392132915288398687741341276614352859237905698576903090714309902859922866305149169634676302779205668046229447096704621619735290761616528885922403924421333944563836006154473512692949124746787319691362733427215090838549523715059709165017766198453168860949054498036254806557556165061206069200253701119850030155300018714075425044894131357497522195430924087409702155935783913431894060725332327777571283552719961044114542188468857468666893262929529533675674876227344165279473850975769885751097829403956114554389129670837315157850760135232264129381296300429835151651013189366399556216784013849368708327036117541236741584789592618285062762593997929449258803068532020258288379453016137445629146082043834783546157516345482338970084889489392770442424479334505178990588040533434305962519807440632670681715168376867098331861316476668843829702377516566365402387141133215729380146449387034667171339832913644878031843341739944577125056348727416380375194426915186223193247589097212992774263801154512594812279460586602964042911223928796835516578826346588630366532515819925422807730185735928991183650090695504761222257822537361277182076573424371533639035542659945030828101896754732474015368229293164192281923720920293943293694716255776696795559946121823071946468246645697823610373490528880572180676159238914074449657392449953030741231237087183855120367651015007732321233760686970010185201003988213768877775568007704906016022932646495248356861595550254737586465889172819148037638198900366188632290062811499213603970479624368619603170785529824454658331852674883409585822888401790366686024027935305830116147230129449675249559969223959356441159574623630739862487329966135717863734372239058992626366302916678862195416681216663030731074703686574664138719229403611527162477669576418089265247342833340126880143206393253144497903269084397153362657011273787284154047264532013135732999758962931790347235828104402951815165418703902469577613159018922246123581565476524309885195671877392318969189993533961258652076587652628154050739754091043409405210129120736835499125635932407038740492227634757297154170377745790875682373634372954229486965715978346107955984473945171190079882465440494903151916851105777628100079745320112732274458344572925249103499732160509365314341921218245592772341927182645280726443670335327637303834765920094113342100936608341631427335218292124060946059991517343932923505274332611560704320261298342971025552680212952863908832988449608100915996322145588143778284140909318654894598583244807882959940628561218241190819089312322809577948658781271377645279345098791662504841734985914041902698308512134134231171884692624699849870595766745401405249981195478025504921528038489243764219955224810242655642958186423258929583477466316839640949711206679906872914326041324030464256673992585945214208082770454980486144964335657626609446929417340347253079887224831674854165485183459263249089759684621744579901328540495001575621713838351802258112698856448954812360938523130077451031622294691772371104916863100256298440005461124317647781359856522017494590206494031330386291034446114177820619498799608095413115974301234066275767392442029473620684630488669150935004710619164852519073361838479971102729542816798928498928084997644372431102634164191445049840999589385258958330584361312185394248527150573575468369895608190833503479970764965535688933232982395790840486049949068257326619224111639858545502898570906768889080602393704352258109734259791191593023237346004591103879300689690956219726417719829464431861524266042395768515458599744701121880591715612843056539716960196602013899341854954526392088518867768578804250080017815321884354873598295756797528201338229741417846253767898369758123659465276794121546162124867982556329123448441982940519724735411265455601875438868981035959135921054863754960779016019817256416108593028533713719264366218540988450297938069621451787003849952622824060850615997989101926319062511783063086253610584381338354695010213002552249517024031717586644125769727165959840047902041476531612622724211975125818595223833666117130773746949203105607300053752707075442593328368116657614771893958897961795767816437938052868738733129680573725386368323348052803809975133510701933350777538781993866010642521824439393002483971078831894768976670143428520250464251163102789831966829111379652519785304358082842294068217851678290064692070459161200099310417385344711624905172999703582750382432947262335543733877082651794823444169970988016889241824789463475587912668461842330375194795290615520381287795320367317086576034340482847955769353167688191373459231310742087013974093387448796206428672850926266289818562834408237311873890743633780089643877494993585311282334543294610934958598938096216291516944836564616702515109521712088166028392655388430313744104264715025329002658632124050958284777684438913181917645384397977802756049662965438272369332407735308596653854168532016009957422610915650415485604625122666301048709650489960803761564885831822149770920012468099002745481327272375104562458287486751874309698078125586597887285573349232046025866549634453508329243131488281686482436624279704876568722113785868553041955388916754020348553747547715518471280969779232427620432504846237436080774447018347716607509582168817567926585730014469037773361717919659446404052046005693497879109374042945363591575689963655455854881100383971495477251161771196638872348890582128196378135807787982195349223364359180486064405639827606931125972219269026237896166258176994168532186384966243302867857856894450268003182693322473198118162583562902753475041122186403487545572762033639335088630305020439692555857567888950131424739761180105254293472249068271128195499363849419558822323788052334851040310083327704320576474202023370736078082815467035145200045934802483521937641402750688082533938502331152707516029552877475236457256309176266235061781685928503842171193082694053128579285887660707040507238872618176231195953685692483532183464525789727149120026221491055330922151182866118817315205219027775670922861246266109092556554514566787068645159731404620240673991751957158529139887805041914618331941368856369031890129218073482594462126188096173280599892159291862701068814695172204917655340983582104076486789693572244280589950615357130977504082312890116162697385196125477138296845874924805465126620945811792243561774095501476130088230458240985844545111142202842148769592674976994294462741166153815252884767254292720024083058389795599179507772325339905796500574975566825686407836154482066220367732257655238179241401203605799501999474658740854682350238781645186831263881194429937763180930128701928193102361937629042663865934282389660312922264983331442274262786180996603697434262879709321373474715842250686928368611180812831274296988214335995051568672414541704887952892111283589428122124348287014577034701767403313413127536490206939864463263381653450798655178643559339377719938935081196428756197568112020198830667750943182134433045994708663569629366452731427101804575887561395328033497462724908608773654785863148105590486699912740168336362393800537014438617765696305513995614651005962039505026632354925050822349462857239067093320319142250888932702823409837701821606694222265058677621948272749042633835916372239981249608377609043487845492448326403600733856495418321958558964155750012300047084172271767853988029476644520475967755642894136309274507193989840366770169870022022872863786802773940620655955643101076164713619644412500629050058193480929641500702048388955874324025442099030441632268367953778011228695654343901462112754817213527226760915271715641078421524120692092116561129839900372621328998503620195975926388051102011406388875840312574655018235175866026057699960898412959132408321655691297998122584555650572282509159595480249109846048251956480476542500561694086736668533578145329272503028523632704021353680415243796914212550920785973317120007343655186847213749015716798754249217296559317352839669136325963089551668277982835079611028413014571155829331606217106169040394240146939376463410537386382855746852101428148995740312919693807750431946643938405572157916536655404522608514648480602526552704559523778062981080029987028265567314566179112122233683847659054670368762092369812492255162375821083409225226483220432366061261216529392740194494335701947093302613253240665094457343353042799837977948313096277370080465885998930256189428591693126202320244090980073010773873428241646537358997396556215139634572106730894909683378895124294356496321515391776384360833439251609121072011373616736493289697004009471006330750895317122028141705370172172653054113199788684953959248436961147691381028671258938838652957073615187266769155094304341534833020380849743850829394845955197263333994942310092628617681619452890122402568611775236023783285836073873666413199757249435006379457914576565139635965624382144935722845658834130068296446221402134492618970562522847590552715749536123781946823715256049343524222740083057651319381239179435689100351322872793269756503588564184427430325863994169903774289571403770188605034347873943817519962890333507179593238925575374893957790567101759220102366384316589036904690467682978376775737623453119257353786881977236485169774253963711191309682524941015431648485818364331792654850729467008096471428679278865697366267988395432885797482522584033438115448998401444744192071555613627675434076265631249367596467263202504119764792072242488234847029538745002970789782184250198218497101540845397173797629537725116854439948646114754634564715364984797118444561352578199062888265283694038284485451233681454562255368343586880969194274881264325571855258078455860153928853292398932062927045342372413185506852539933592679250295670905960734162244092165666071247431178273539691992103746089077217372036085848544690815801773935425755072936552263879122675042799331370879283140975843376518838605299671012948397848559676430444315311643294484712466111621572665067929184216840850844898037570186229955376297324066762297570568319892925776059129358030850052945808078550063955805587136997315499888740548020162818466750600826971107856980676522572190783895849011797746150086636539006265952408534006694362409184096692164962449511727211510994428576252456367511546008655677497847330970927001436738094934008691331076693627801524721023410433900002301720411845440677653534512246486384231294331682210140611653605937193815789606977198629344074681163547833629749593483993296763670134015008392799030954923833193174224826310842529833622009480361769779551011433731073670254143152596436161663226792199245206619463309693313579275855662293870835955332981387683550217753608674575412399855493200250041077772007169153939099279439958513519191679258075700467709580645672611081887107466682225776693029130664896245525394420701073714004750032611887293490418138562918654060878709179513358085245712911599573181625851252922714462118506074837912601635524260010132899844982029070767029384573223837666369787396537185001854025939467424896135237304540114878037541087299407524250828872403905045466765760294717842313331691192134708127917878265367865867322365529860942442118788624075454530122095496417792182807520657854676300815586790236409974646555531454796295887914185379872502641799366458529462805285214970313664062008708870099610247347319094157577078345262098512348866318729855708408255607287036592408771281002413410308920164116390424926572575587704538237205915562965640107348684787461153188941227229565519367708339075476659284872000353276081973772751688753118369304239399227414489586378001962054878241115414327640823768342950954957982959867974074231649372914339753585719670378431397136404137129836475587963121416899591870701006527679266309274331615875374694830640849224675362594444777426380549391035324315465952599940102108840755225100557839831413174812413015933381996797997804490563613526571078771088038850889078661915600035050338700493402246091687121704527429652543749281110897534849506673171091401115102238693553703924547404657421836392184090339185028310403479087261599996392217125378510094091648914367862380375652528119316785659057710900325087097912024705736166302609329390363938032066323725380571460940007876449620349215809825319325805555098872639144135243022806032238551891117939140352398368977373558658944644824607485386197659429948780173370544007486355807227304872492481267167762432759879004103945131382258300766066108238904370009507691657015970529957091061243651108473378224389637671410830084767442349606924543867509858523539830053747222995233946793527338703773835070333674663819937701209915270676391232108955451263935289481253086747488112432457236774308498754049258453034866138990921476309973191896610906162211372666477270912243953037150983185662020196197483186429900195763727270975102854088591126726876118194019398331593752874649071270963442371262070649155566050273129383785117567683107695540937834544923209404246279632972554367532839138406131286053579040558870879482210853348406937245733769195241998837505303020104045307547751355623675036550869528223800567397720853104591629458587191421613098811998227286584334266355414535196435149030750193781773015650562575955768821546657922391832109877811375442942004289114735636679595940254217023656973036797050576425818332609969791839602283124506262533395320999403596259270272224073452604741865034550516129060860591836668471719486112233279379208357155866082062289370475368469811168583026285475256565433910658765425974134268916049872554083671228508283804991583594595112906666502289691020203562410702281472173517131213365685408846002038673352059579582351756142575682288053442685204801876706656045386240631372415733623470342547911336694843435170746935386891851093938612683632800976733257592422566769702940501950611555077519206787573869647789366220114754425005591622730751099747908429217121454511661084707353911897169135847050030621721376363923307836765526675779954734086752760378704005875871568353178954044897987185510138751247070914222173545453930680189570007939651360688918337335939410820948408603041963829454232715888958734634456992195901205964748307757263140895685061566909347552356609251503328095076439868331524611998765503513856910867900651639111090157536413485117525277182428640997691447270662848303474182889377523219429090228622466025264885406466147268300236674357741133313604540712184220016630510560239464836250352755898398202230137123605436227911149888263137292247055799462309782998070318404219775697613153788186063275966541776870209384049569579466969511276993946378214272584412152700865744745761481955552145934256120143429242462416004589952185908875962279212479296548906582992070078512457880576127157280262298857831411412807171681978688265719943549230023863638688980222520376539793654995358458446433462515988208477715482242421680207520371314875376335209220776539555960483269638907165303531125718621768697646497798682926955893371549632181109985755847442672174880714054243147926546344087459731347041213494875525262748499002531580864081393223477838732359371096812851263039803662967049703951990061999341399240075572974845084175184325558163023771773120325806034053598213657011825434107900290042130099760632868234791418848672852675852679214511098011557005150542654163533933645359936602472193849343265286892179927187382616458913408182651653447567761501718500165622475257843859719625180523179578895016587757743343109769968326437401666685877782436671342087273681925740876977924134536265898995783099780162185430420191353476585436733367451334508764669457186168086507012920003302817628314961555324412869427999524346963187806421077680962518273173026006081154046052574583008937517056061069691873399506314769703897932022324650348032098144172073285494606612482347375033585144383975842411134210886797135811745546568334433941290036442679909332229651218004777823640086991367300447749874686977329429819021893778114447895629058489850416020559968641897638450861855758577181912680266495803489693102020596199033458869539567556506715127285214357787825806380902562640334887573593315500434848260978595754344080225974778687288280513201256086342584793169453049990856711948578687846381972357668347009339825107635040769017556053439609790818552845297420180400875091692040254301781517597253550835593916687912220703565974992395092353353247364032465613940744613994040547592227495839015735007334974928300080247986286194019884632518469273328320982180251456925137378816632354567552109458173184395966458673413512493914588270528059217055655309214694080481038387171820007771033214066980107231971582387808646224989583034270615493376852550935115667798676258669104468855667409879458456576575631692798687117389025024274906249099720100128747964362939732486189734984420955437121165115821031891465680774205871722956197959031337672676707557794175970478146047600256164204920440150857708129565120476190600432584256882933768438293413791963512523856169303992592186455323519983394388546537692125839195257291496558541088227691573375686198854162810824889668550211495845797233786262716875967112636249790740437115910399983372037992141911293635534279416762870610883150792227342567223260619884347134642712757431100718652749315138961442264835149373965274267412257164905934404053102681818367730552862366203422583798389914325486686670662583458749561106414436296323093057391371813613555406694504653553164508898129552078741655735137956187768948895027563712328959977806355227178603750748437600939943486995626896647513184785402657622747626363146637654306494893179965239767053571192034397509602688386816886041515367172510776014503110164466309549692403409431908086229464681619603856095889435937426664315958488431221112990109103194379988410691647295109027352263830326544240548896363867228879793465034019682588423469012515202187997473624514675182083358357220146024890868084880349148764171078319077312909028035605835354870232001628239373853048358298282794781507544705352308678426471509953089579657907300183286175485372048092054421648986763066484341762099586701469290921876307271018411632085676541894707065716813906918954615694310386109335923119086052198056941826077880834800688573583140624609754220678443806693196360214034236718917791329066155510661196012071259543566312980382005549538952893130986946305846818900017610545367161031566534628115475290072234737902069368368337432223667740564291240483748632769583960984242532078777123833187828705272276894919281720569324782742270215184164952865669013199239408868736409873965338446979014082562319829545725759740082076155435855248435529377759199657693329024418351724802590358925556301765148982295217048418093611688557313122859339886889051797628943613025237590848031684503448382764310075168312946217853091807142021624387059589584190284080133831983905885362672023024026537545883405996808938068836340674341796478962662658176227481178620150300071188738337828160947651759266074643418948234746156688974022459169623872207198779682795966281079931975750211664838595581510355945049866384541434015630029985547127925058976515045390158989766607402217852320945208523393953428164286887954873404022681555224874970775198630818539578286006391514089067453049357958457210161697561214205986748303128481441475876627113465150622686236338253938468050248047533302397127855018157825473073670963599138520265237504918283011037675213474237854241238335682116221793543130236686599081702357915346858046249926331223498177588185444431971818059486608572192025312958209666182374173899660394349680205437803642378920538429121543810283789171053925887921869362220119792134736681754375239500642983194895166307523528874291872889615456754842245322641178839222162695576535284328466954882031925695673684880158246430436274258570736100639195641882102191078602174781562179909547009721783104842591716837692135044463664098942870593921726119065056333080098614818920730804418546174075631707788949236176089987249620135124526636138701058948186377607495893012602622673437531182537230367451511396691465197907772215605069213201821989340951822491364493949946765446076534070501033845913005174035278370692505144333381221038264891066097017219943762872077408759089521319159552443882151550248161666003833454124637138385992723248432670203286058013889717842601427572986772103741956960588574985069200982343376919386125819730636019107042578039630510747781899437675014279286077236391116580383183098736070870142471306361197255586474289955205095196014975865830018405393613410084143960519433453428962768302901563599016265643478099056418342961117345107882634699524329276177233422544640421693291391162947991794095961299836215989206832858294758532190653779056902851686973220608046125033803222674816982927744044668184175018815286929031094457171372750045570497135026721535970991756939926668049664193211622998778092957231458038233947756196212314865776326342930294833148525548887141663658790575139571022602118510046539036250965268000710554968883880286097648584177063870627344050201712641799302306872730878898391888339640080712080746246846338473454561058139443568615731151119325952162668068843765311122754715832878573961767928283998235907985986238768507213488141434302164141607871342311503223537448939325065048242212696083371280550968005554263661229251812428948099904616941168920533291120096150529437582235162135815791889459860003539456287427858396146879577999558691120128261873567368227475113404161461875532406159089131397960062579323203032799199920106700909431229205169968405410359436952354671877186645423047991352755588662329780601206511287815532258886604969973187440222620659165370057659849413968944866767374786202693457329117764870978928497231479766389684502371624228448424912288140329173631387314479051001418003699238487326108687065867779794297242064798165750296415449472431248267654482615131790193547424709709568913197975802280525679801134240725983240338002258896547524229931249063343202101326889173377934171920665637107724217750250852394036556366297661151367311548096653122134597791954145333587377656349555804860675585909572911002396995463816908826030154361949376039985828737462256511980844435190778295998242926554529908434374549799053083031846725662919585472704065912726608578295552508288895687229726016025993841948113319575962761409447350310685488236477028656498980278023199739057743841039659323447906055372440519897137740101264018915416709628353996584016299691825582449456423747764148885984777570234638360262695875115967465114755882398166534893778529794884427157596146248925175451858657751799454997147559281249170177365724771758556458696379754706387429950540983744418640829580997282317892317049469033101317145297019174883455494266188177869528499611826973961059007471084356067472200477633969827800124484776920458325220008946525905965770154837480747998349053025877686309406996179409115982945335239469686484404570734863204700689964151328678108875699957821329658631106440936114359287247822936984240293766751798856486658930412285168031282445386917889719481995931016872075226806519666516924793486777646740600066578277039021985114240948033904770283303948406183344536387188237671667412743926975108556743045755228018946258797103171965378492782396152644677269826956760788619118343411840695560544894869347148282560458774190922157727198872566224500653241746826466732720153067427672592285601863733331683991306000700202793709336060390716860536378800817332562719452844919365732966199964717205127395829741306547476130863205940240271049933518579138878005853788873245873434922464941080579757916310343700975141092157822450684818798323946373249340043886249965407565961620219853189749866508923640755432846537071663490658858707838194500291163856707287673491333898322931119623631822329426070090159878813327142785658012531723977329491726146720129474023823750645684141982142394334121255435999536704368821598830751668863504808032774464437809669698321611503577854686064230289850232786493731878767554003062312663431674618376778137006944012437783685959155307159691965839103987272859785278469104019454201206931689097054883280628392928486885910138068474982472840233040822833777105280492120188128747220759223669844727439741668261467677932391541591123267790457480446152873307968545486144337023039671528910821967021799823445872343027168355118773788539604938272128193871532743918858932865218433482080085858407264706443728301268670781986606863498883006722166746541968305498264308250643294564413862758127428509431953834447342483841051759686830001747966828819936854344185777234066202904607557051449433669707560814488181667005366781848406879800591250549503389279012458221148238693690997176966902894465446100799452326511241974279707225748131646279076552162894134585507577021040545047601926770224606935212355217246109746233314618857883766404570160308871422334521007927783843888804140295179713649260740576896213314641604564726259983230062969006642586846221467732221126043564128958273172855978788076683503892590665557094608861898020651508525635668588359465858599026561803875052862821434062396940534916863367110931450129223659977904313783806220316241067431507714377113888954481378471333728016748575312837479127660271405668129313418687213071253925978905816441061234641423612953989760886091938113024244446485252785532029961362440925696992500699388757345080678876033596135316884932901207026205625842900532311875408403844074194865674192179321992398150114158210057220145059742943506520423594525206453766269459772430202740260232609132505157271605104828686275321688136058563527443018014465937030879531772569009400036696138576129597189464087991198296700583274887783809110230978469611571234831689440156853365490885315951595098993918290260450604363535893782616050763644942355227147699359650015246793100217743434989878837281747613256840698293499963169221612731046662641893217292625895786210343795237897227989248735054136062076735479256319028378864662946150270643293101290244357399858503893736808805506860475698134729267167243765330393837330048013161682415694338773684140481254003106671404592641296764750336498605634417513896461482951731662318501305288973500082858900349890806013326432104121417114740051203158381240036513170838618228842992616152157755154006411173985165067275130869016381297631657078256503813262618813880042391917386672926313953743329363169200092297162301502098839374998651907716096275832054142150424598039602477575212269242534445252726047722218925493542205153476908211855797389044078054677702020257591073687405421948803389146090051793871360039629929248190734191673055967493733353965630650833216169196009046749412507190243626440860285811297619071526023273867758019060518940185691626232299240294365019181622545088005251306051249656294792878349935578550206076483808031669259715258003370491732440663828305637198298685105535956384530098160996698306747151006167003386301936862395731830366347170246398473295399949330913880599654910953153063910615963514547048865156894438520090509325134701303611924948506432470163762714788890223853140085948610301393185838286875015508477343718613630710640836486386804246753658118480405928043457085689001995084350584250610464075817805729925648775031358048768568318818894578922533451393956500048932492645233921717481236818834497743562718007510349152005369111262743715239792309985303286813538154194459529031608635246003911314062886581792534977038740195354382694207073072145299698760504530082266964549764945974893466771189709261131219171705575872909795234590414103684121249426592670143389574816951894648052361888345441772427537095964242479525628483373538337391671766568210183567749302772169552014124989196911798112227702035726492193228005054015397889839462762701279428474633973468468375321075873723832963977274357413587520601829804189928421496186320274309496489481867183531504033776541701755000771003121526990394204822622768824784612245717999457060074509651752636812328010613474880784925190198599077446333477473796843877435263113724973359028203519452035192487453680679701493914197130625040675979968496104724447497917571386932792160173738685814003329500921937031885437547714610823915910294671431377575895895871112096282116645162847890705746301495916664139697471755684408950996640550529909178170921316287403678066794354281438278500118893555880714497834219616069276218214736188189601336386481087469108571869587444293867146978406593281665290747139304532642432061572471829532604416636754070626494344433478624317012013492008936049434784889003449196153605896666326612838156760042923019695708372394532412803623480548810359499098083855743266011421125959254667823564803254015658897907481079893269826087856805865156722431848756591793515271249076514528233789150622359913216487792975767759161011845926746009137156508144767441298469353725366726123464446773231699726866551105053500410065287607237522911082926454950278825759319944897513565994884062628286795036612846326422988604671191301711973828502135260258923965999050968815908067005410152632191207088786205882416153301681865600971503102046252669092722848225633003713832989243532102103233906021975986580603725453064780014303998982080678182764123204962006127069493522524802474691033907607038970742311351634486382741809157461247544609731435124732645555706593627338224702989514295725395934585652136369437947575914385504882352925208275436024047098871413269734147630627010730866968922875956796009024009696411153045727574730109342452977965439855554245546191969269933389117099125521149224750972328102261311698901195058059363462481327964762326566246962506031323142323088902456255386737689844332021102615813910869907794658003108067938700955994480793098480133074038405511248095585229271130371582612910863872582261770976543385753631538986816951543920930524795144053707308822341505007241026740564112635118742596710428812034718591279187324780120121457392398589255271966850453090957984125886790317749186863418337135618548694669188282471819362293751940967831256706743598916791990673715411243415214939978744443631853738346177180446796481681474032387599020812043134759786520002636720434652489784767676717737683022762613909163190482859301610608285137182381474364717668303188052318893622574432721395560558213851996334045455464264820501924456799875628736086585816799144729339808075129047396913632252037982556999065969628453105919645154662462549891202908651021538895585455140298943096850178869861260674533587956817398853881702095168776247050713912187831779953807959808203240171654272631503735920538449764061423125746750405461131266273905802892316396422529225384844420017769040725344269651985505364981537222933857886872543523795016504218651762093035835315412088597899793297157497114522564447877018736724283320510996393788794713962823835756166080697367694155418883854962224953042579735520876515355719680084446786238249893015946890874244272560134006634090707586852934843137880966024240217967103610530579567526674738091026634308733745975916138630930604366796762550870875114225958426273939390736145105531703087056220307926228770256980671303177655687319443560912691229270395374752995100010949385086491728016980957365145543153998635109881024340412384634493572947250983979344955231833787315017489021701190872195470756185589589854712293454787106134174895848730697305825842374284954233142282205423647247950081888818935814260428927280592005670487345311241301405438938093433253959745883630592943869183578363202195216164173017105340206293814085276696026842376381146847300548735656084899979393143519773449819862292836231821564942689815926421133638588092969722213143631032569588615948370979768295963688692371342770678957608954329006333310656671492811215661427028428207884937634942870917593810708022692098886370513878914666106248604836124551104337553349872080896316927990439558627067242619052162233799693231967717050967727740901398751023244629253698950445578327102835267703107820837771520347152038759417973065315126981480906484179801510069356300532774284871674663092960949861270884986370499696772327089426576727991570365112366793966145099098847743730619439434292705886890451408313938818981805095050296673059659345892923358585348244788883738695315790787285991870010606386709202398834596017735103038851504218575353121513369050283206926562501655526716896220947014306352252293273963873610186631081367812611548551244185331903374875656971232480258058369757544132886360959074017673064266246329866066516687191251297163967790595801066938754588043761807356754720921519101396781719057476989844279198276647153744105907375458635935396113283401320943765649093666349861467678345641217479529942075674003170985660667105269394858013390116484885478799287449907824966758115975181566687384294904492138880767849650239051013765212779461247599770589744504517386203220725871724583718940823856269327717519641998456676709469641332044755914702888868530239923658907053414878160947937235381297905685069953247454228163678930924738707073800521093252494328161662555364329118919944813461587500410071599948329397371340098543639202959081421828280423531926976727026141076978230886390401401246187698973343888521627201250599126772672084996137207235385173821002704285986065839078596668326330610601170350131612694389289206475308607160109595316423576337599936914837650197709630531142461465656234055795409741124314486418576224333433824537496830500039710571142128589990213820599474677035556180116910150882133218102854362105581082119218905011342383280233671636870890467477489740050118218748475685518149043758834151302053327639508347811180825930523129408429480830438803877910243986860331447407177201061884535622373234485029438063408620455624003172285999489619848720416049431878852891197548342084945801640824756111738248255302287430055793630280583089405475174866045166464371912612541540389336699572536801945954988194821327713125342329593771186846385689665622452877284324807624637223349625454528331471872985146837487329641716418772616317204125578108310014448911290955916227258496105320010664634731472008269020045388031594268865800919224218227167338315544545990813757449819764309141080525820055887152629858840237465390040642477863978684354754238826937870443831979645143767987825740867909692518519339899528090980735727136705556968890506278648264949896630541516897658458404152286294484679243260667543768697485186405433959623079013108741107974239238516227979057070170364307018401999269138428400842997878524313066697537146563621154586935359198077428376285355883152753634787558401434390009969370141150806024284186822388535616708106752967315089971373621814555836435433688527405290236579234858273069930945402693636723638171458517771038592661373739815234048193659775491957462111527446701349233449556811373424109289248489076989679590996507580782711829020078066277615124898204887024998294481381853043394841594896220369012422390568605901716635657344592048031169535482471969488169123471687352136940241434267293202040610473926320188492164307953801264873566149630653684708695376284026007605531796553218732898059874187848082687110110743555724514945823704256930613470488162150915632323944763724058540999485424793489887334333212484125172925358916570970222529402243301410919479329955786112482509074410341298731037135528105547787378813714982058995467186200766817147312513808250213848188591375308126177855960283396071187351640780597932037346179441356584320093659851795339471719057630161942043391583298063224592342039073517986394310804968967806827013491302489925916923613160317962705410505613661044124573208544059384345620174131959308241281046136661922295107748161646782616311589468885177329321792230577903119454172989641158713247708017496427411307017161536439975848736337942937932343722038036205392810677655331503025377176733234746666131411781989336736143523124488160231092708492108831440684909502890359680434468475613975082845205474319151232220197914305629627043550201274131833627547541741905991278142780848057532305814219506291933142643591318435716396507220155796406423012336279859003743826721445612059385574639521871046700297682881480477246179086199090654840201994646641534861779680733045590171963922964155317574115953472745036440201686280309374846913869461183537368369678569785578227105676948797603736421710302943576746370645334456667788426217066104199293461918532437310894722827703483686243263355723050827185950328913878414904303296162539017775989904996920319938104273764882937578530564422308258677576559432446708127434339365164603723353100043819182810249974365173794193739559411784570503576455829532880613496916549686990121495946572236502437666271169107063478088424708079898888243145204383266006813670139628150931943181861746388124492135599045332824590415999345819717494544006183623150099409090378055507937697718113393541070901165015025111334240152911155438439962726362601309970627889049901620832634478745279259707447702569236733583883212042296575683537626923859447767794237679730427570146946822716930841239112571683184469186510885584501310182740808468277759562204607373429751046898825585249281770254206552518417778223469181586657621286302324336928821197739561108797894937101121476163993437889166890709764201615799966978343511646479126722458383368677107384899594638928202873920069703370153876595853571718294259983643381527548607266980507499665197587207414230182759164137990875501027603250957163334445812223191497064831960149971239064519669437919963926946379169531034382867162964149509387916480128337817712044845100805421058232146701893118889349017324776869815538441328486024239293427730715169664638891085519988815298315392836000731575227104399156171772563185606521651975083667771770671520383714995693158316532535384147263263425622364249590509834773840310951604887807358107373399526841497122981366713036867541397676148399939226226538129086045487337900684247235276702658428568001298022114936069268277032769866303784391248890888798775573443904700516962761245408832141427578791027994504931015796302368410808147670116494716147136239263565739226189741828895347009723783020863715829530730327861750778966198312894960186685849234494987667137450794366502464873373651834881822754701486448621257831678123106920717344021378583384227655811158378159016520145259848648650291744897823794446056942323663415131944589645967166147108298817029580114340711337406164919438034884279657966195143676709062133210594210265829036913580573732011148296263685982668810572959527108945264498069596481769018432751679664335137013872182518533264383999534334630723269698404579204521663844832177530979455131237460063121772721267754239353234969360805033850958442933221431822969070644316594190750233143285200277003934401733284355217044952756822916033774457190811564122571058511814915688839485351664653358707062012978412174187560172349487642500301319977124156910649446392105896626501271176103004218355842002966656235246034929005329967065285878760712137723970461059057264348777315289175803439419466478008581773970373288106802577951749859356943866403123000283186098978585207692637073311562640340464501812852460269869576354945465542110622415534210431234183474839228162548626388101322431504942836687939024570152657281075195532425523794801848148869357748050068994142115698921356868487068257559310588537268818164910549111424177403957587386385924016183800011635831640575376457772910909752852215115776455050988082529997788956844326562834912804741632743308971505243376140752337185358404157145756275760165106361106566466982939580629545660725752972930957901926236675757707941508771574387998151082020716591641128655369460239100847325139449089154800082718157091058411004954172938359988726938490939269503975888641350299607426034714209869024872303303223976717779413499487286319140827611429388007414228027583740237434651945064349529438606002230813531077236153577737584423704720161427378200567887685882460686203219707576753869884521221889390858916558856240342593795121926617262926013240684609856975186462514165454494842176216292106883091404603833741660108717133258047987487740145915744285319517682818721272541819890302789628496381307210828405317078686794906251432832556617440773422809902659372051327769956853114161240559447629446726970601523519230310056602422511433744826189731259895438316825190132370408647159215655960156492269004059574487218120371327533670009505775711863220075564653807298338152188903609595059315990799499340087654297997386194729509012330734636801815906874268238676345141818199646894165009240240818539105675721222380963973869810710073868609163794107138686543850045154676568104342813396924781438181613866375333679339727513006813913072380619963159052247024085858971859613394712694802016686611970780493300564154634677039636888819561076665414509625196454242840723722455345609157095512011629787218097312728231615577999418519195497725847075091241981334007488222364793366754639759413374474735235389088534659617869078445068243533571753849194002840477607103239650023374626649428011433322590913119227044811808065016547930004317312662827291809351216515369908837302371459208252448410469026770074593296678594237574161193150170605787614991054875274633769292420135590639774834889690670351016031041983852138028653981690873912111028836918872688561720030722943664580044871493134707777298923668949121747900663791992986599056316932470167156519792097022372009723722492523332229681840188784735648250911320717866994389286418739041271152324379435668380247231492357499030210541911655331793441950611830135621787194225023042704187502778422066767279911600556308378202227328729272895797021469056496796862880655169938376713116089833901699259740182837064903127612952001806732088152556542042681425803750168966559862899379680346859481872624589220367059677531341295915939235333630140947627897986591173628843064121258715703258753398303286143917638678193488351400304263923009487941170494392889051723951693566927494725329180877307151612873795457747567386753929004656748351857302653866191363454498427697066282182907687762923924919856906249897506273359650690408408219422657695699901002833097888336631476040666510075214795028560066649762341513250541436883877575312837936156142051734246841924609326197803121786723009304400462511614205220622621517251392875755879232129420385787858193096267667153784173449272668029612764475463823731906274663354866725506963365777018919963383546104083555909032734197560616059720111517027943482231485389139162238048911568523877523535498111643366492022180361441127299004825866537633090410085236540161396226353801109317206064053563977641532306482590828664054814927174248104657115391554675113361837692331469426014098177925432026046493806001938392646799474966532922840534472654957050937713841626510510505075422244210271429387161284406500692321327380719352235417709055007510962709973264231161108074127563265933242418688674206854356755564789998686174398823604177380960869926274222799976446395443390228939262772396313308704318582989208022095222821508725171295740688760630833450349266095411061564495154500859526098647598083422446955590235422263217499501098274700373455254256353094589317612219171658758408252012013948516255986897235350495164022801303049472407876405513957985928624270347820243921982008671852125902815184903971280177445434921377550314741024627311591563721634023327756965263965943937912841688354197190345746398908495632197357406893051260594986980338614363050212816338187710594820665364207044137430240833262334687483744100983325845144805795866244654064882602817395104632710525321258846856632555469496816403852435099516966378251611365024619569338967138718394687605407134281691355312086813154505355515528375049133298269711664617136002494644692637205416467684924780008258123285430988639680030212209083825415657890880132658896572420473211752126283820186108986532238262600774607583627267028657370855829191448069122883201974812555274431558842256362859050431326551692633589312031892171900229316020793394323032141008895314578792909331768345943700674956463003539736726162006187855343252343261944643824379655055003153425944337402570841428556410432463361740975160329761159160262847482704954418991024659439223050720173190163662201828904841999127796906963452724032559038304058642621825698474933309456455201844466048913627146747274634420920512174239947186863517418035277614043675392843586625416106457288297217284128006300766778154649229676933125597038383505129628715611311278204211481487609267462495220298234858242820153733342955988951213145494794507176909663519498223379358138970396212792228269915456631961185402466818350196308277192367023072153124141546452325703052554970823249348959657914459084711732991807723921768802021078435517900695801973382848934277867875329219528560443274370027827007615252391002443344291648972202489216754929520415778593806674241262481580819170544959875979984810248731737755812332067029706218174357873486685124528362904487636356648051909794776068115629301686663345311452394943194975139052678378209794268597636943118605237221402748921067108101893649361523915230885281018663666631157254996972158029576796751115838373775084328214609234170983681723040521335201261718160474881933649759531924601497794658000256058545634657108126587078932640405326286582107085080280248396002997922234982375436210445912104729523730159381111849429023693074096012872319407605827584753574166741891188587561124805645719494049131080651867833429675225682290911666215622334058784171526872649059699759075722756569753604563253337589499784919511768821476877325366294560087861946053285719920950605609057243179143060323900495354778361109011804241894569887259826517083498545240911032795755375016303967725923008555934338596370759574051529261960194452383593295370150934102399598534041717723454184430778844782576609594329787058124427223186424924386003590542571401639492586140345797426090239514355820170021362162087682226984542926016172254681285324496065251659711526743512733380820736844701942004394229535662992433868265933104073853530598342681956692567553166781042408499112752083359071240815176905351521511452124970360007486278599951692166092799875192729774730033412668193550206525370911036833342920867461447662249514064692824500402206206862177720648229276593222826191094590454763825967019052044037334784361690443506603893620865970201534148358404583532827856639156593925422642337548811399670464195403237045228833689690989403601302906875535451520879157208502678398718222010152497297942510240953102729021304185010960176160672777258021761076235469048031124513558134204735166681313092022379736627902094189829594753264961679928843536820183280835906971398988759431410089844443651845195085787155401847851717169184348081613259903647726761767302442398572861328880016122881571443694798289986446444552330647418612999995229314304090886293125952978660589712423408914305350389186438135419067427369548003137789215827594274489505327294254840501102343352104844006993806673083330322587673632856021872583628442543790932014667971571929662709212165023453264064774195672419762706887466354784491289928504206713876930367277350614500365307862168179577154595401303697112789051656034800799703392833821775792599832803424987387408024442784710150300601935822696250030892554086793197648944746911655779278313169183596999135147940171483429969160569522952992857469487283674047921248538231786777235864354223075219237845502748265815470484487029949574943703817703368423520352842626883975354728107120909981556720459367203976661223375352857276195522275911900112336160375618055488945310736148213294041570249745277249720980275041718904900985363258397365624005070051256111072052495698561907526479985063385933466121732315337768374096667466011287378164168617875452682220738433400421470936195818801705496833000874334669484590600710451547498024244068018019965944287727782899627091404239641076937933119764243425378982476292779374611483962786996200703044972642167693257632444296711878128279301168705646994949458971498180656713677414884299855928974843495970169860884750075135659491769754487755998570457425799588682131947618197178456697184024880034679795135296460951892156024382907195005884094167215287524780895771571192037369068577863526710001077825897249443983792719879825607081204141108993522257675219159567419119548010563638539768012212783023903049341138523259376354767144861140673032606451747017049789414436601762365601077487552805775231247425467927499806286827254994986076187932261290447535104320828244357709188559749769941992682106296431795469643216839172418186859722085611398318355253420762802205919699547458628319338101028372503993504744664712000669676124850166090292426872186130732529373432510024193271461466858788922643252836046678365285980661247264890084235874401696432572389270651435537196626133735667171653371922572084244423073507626285922305166418403748709537782040615169005557114911239244072942030828669018274213996190716590659680078212671202463491531039329405113800028233951555635491846385868298383089968155162060097619873716853843782412255343107636425675260774019275831086799977044800800129746869361094605056953936927644800954682816885349511013014922749551787607988597725533598300250965651057888176552854796562458580686904169035987610409624599793545713099768260323230508287346346663438079787699526832962043985395950518293951878363149892654764869611985037584871150737691336627526515153419127317344296597041639595148114879551362429441440398314616209085104725902685301021070535356165701256437218114172300080478619024556362415567965461143653777687386341740518394676804813362399984385470299860586612524592568406180112568626807852315569414238822743451173456833875522008300828753033284119293582835752871858117461888519421288705550548575272829982045644793094515334964083911237682160556694058511741939337974707666199362407298205322298881655363253573215359318428568786655846761117170869759072218077557897250141696927694316321522126721249169917212104033342418516579456027957432498605171423446007915940433633683826001245327960474665164236681485963253050700284998581541605749719383696409137156961974638685169999485589665467347816912419604449281199234147145404140639000016683341325290015832642909119136722119056155162146524778146749740172496853846584653039143889772547845998289165521991044207260372668792666361235935745031269727999113704553292075136953927285962934363962948127491145429219557972604534786478690960986400837400543072985773764688883604711344021552866129206821907861235784851835158227142711331533934264348387845414665817232248702004073752993677023939737244276782327612579988867029034301286454002569463668194740002527887496690217896493632800262121124547887329408021747614325714019290510816520087012057282599531942289437564375384957716871541217731433388944398315890765260868392070897896613273080137089493223728501773521970683761992743413671098951575456254541522131388918986368378210377746985691172905461130211438054865626733100758956994423727763844567709978031324776978200021210142024429649995978708734354738809541201394383715399780355896062978043858602879626158223927394706371769430137245539395003634891159637586427406728110876647381501485623029475479605144166571780852051758639781538841186422193762941101954768507217962011605831808544958549356555014918537715553128027078059322708629205337973899452612230282251133296338189400082385796045749520186996563315443281415859480143624058590248157123391168128728765522174905301747867994259466483188586133358620500085733381416014466120146706274118151592218613756422354913127441039666149508194265017196715626946334366958218072523069779310113923021099426680115450054391797537365124445531603453289008082506220336867913588125527855196435429610450231590500193997948671216490292076368351398935271875972426828497333417499436897245607036280605230616543525309342942851947016136828136297397987517057925193549272548597886237835198520150026491448271797048400605318182002810618707070270088377690428532953771691353428166125965059883151709379517654457339726937011589390631021744630754525000868858285106722786474761615402179996248499381074042054645312244265219831297390550307186740981048579776943491842222418423369933783569347090075798379911311735063303110975292816860317722558617523950439874153854866451492062441381602055899053519021394994703448166753471060819360023437587300927556759227569458119272055794257800514337426814459784702186556042545873579201408555043282918717259101410391754687004142872147475331221910464351683985030708238673251687014096116226945007992336710480755362956863732385018790549756838262498548714910574650116699052715724553995354218291484186438159601761974527276228667417587873133947860821432029623848291145645800712334769174414800599459330192413576358084617620739882955888066384883372030640010450889000165207710590660154829888764783681995491306134178701233231335423302073293874835255337027127744585870369926915349463556775073711566144208056802430478321725836397528502474979465430625490548547095727744247103772851087858114992867411568187758826892158656848221326834868623456320237085610270126142697970366625933776632803918132476786730640248444423755694442948149972787713556443373175015699001486072086378229621402663357336299662563927867969451082012851807690633941645986090763888143106001429884216364057924881108784343557971084359343381972563172776252898168793701202393368239547133588550027140436350390829036720427709612413334239869812770786207363305778051517767171512571617235850862043019666117289593364541600604797432953499058631870637892102861804233229175327194575488437331407559772916560781487182095630885100359213230941826970393976031188468700728146800174707704303692469491460003700592094817784337928050149021418694480264764978979108416490582293940729993532784980043561304133035654981642815582799203268639038220688996124708532825194968915113924546847609833485666545145328810692417888226994541899997513672671831780907179393322255204118601829404886436006350266127817159809255613209369452845499170972600133211816395870981185243594533046912680913994048210545799908462586589070007384171746713399653547336938745319038866456574990243000049260441211901151950655092325423201304762133360758717242995661257363801618658095354020680214802205554699842661500471024644350173484159527063199410689136718036331852569863919027145472603489616354938071953259741422436864618210695194758944511123781946811073166239368439330610230159449093841308881823345588256211768111253293067680856977935517962180324937601376729544636034475624401873498931880269806010096884142611678723368057594092275355057968903042770086501679196111161026219819300430149583855953239911850019258723335227853356940608860017258515583944322663605555466588669424643055538352294490258378557487193510129339988382018490636613631363120020002058129281286650226124479523850717207036563554865697078311795847387588214889600116625441484575012786179052616650792037708019688613518917786509877877438985759542700289816637127493272682042870752023041486816458469891308599295627664275734424273266408149164287809907968095044031191417042518554772100535040673664357360525264877672372242340170116494911362669945602188619232031246804668289567790575687159569627030212387861974101379313074267262176398284842782960761613932330192434809282466672922714710976851980427174738065754289773580869192546412961932645261353240312717387269330533542855143064997749128004491813809991491396860603116834291358894599361608684287436765005145259386625627279259934906377160882251088298255772701459907870081108988434711906197518300543681059106625647450904614533316822397608782473093586806327618943430867689627898487319667228260298396629825433698974528320940916437995885429203985927447731136638587686038110044809000302476766362848800221176506732776476117693129586956457120775088627784870542575515164003098139246148618222635574439481765488805059757065330040069487780867722161497385234759552807354405517348066867984168128113544670367409121709931901502080710183326469761135850270588445021208499067365810988316884242891677834945433514558879685605712071826024592593362371850944161820713527495589975964722419695109603705365351696493191119992232719742007652507437292419294716400199333927725554642946885683118607377280503551024889691963493899891561585021759130332446265044085886049337320626390040728714052646438714647412179692068310300524276533822838512992088224241631157691584306921342458773179002227956489255072430063162731014235480806126010372841218208869164895423627870448119899983832322037633882255199086349810740418128425900307355665127267563193162839226637017324928919659638530849672790597602234175177800167284893897494510101878637810472531259472968069349330860024704726666621758207353461428217019050069442296627559505261627013628829500823266866279926850524583068828033099415975911406744678408510302978460242479558148575113025486233923514389071740338909910467446277889828351481532609779290598533005510848476883607777698765005631513342201635455122764729169715342994910652803739165196847260921274129258488938135533391376641566518800844658906793202832503927567302612127365653120624974576427005752050603865055153803057604135807739563755761683073148728374398579629953333910481894617974539142599054603362212697006234394131608697642623521165001004521476636636062157984756583956732534052054726586238899319514210487225328781166248241482500268523522365221690868989429997940541466078056606761826303237331420364984215598169941229670507304977679555712992986338633823852041643013224489178702662191210747549465592423837259460060246517199397153700308051648139272878978981760958813165334649315146194894580897183860343848497896780898675031297975043970597854089558565164427278350735238154394820874937530328285061837262597996237154420175407160487287093043172402950078867453240250976925328206147157428683598480458752838196896740692923465787444744655249262231536072913244641683781498085600385955940845767423929635033898686061364619151642453213760398326961648422894497016678132543330676699271936425443231514160771026117285875832210382688970250396430113931786476166578825982819019707773373046010371116954568286739634586605290008325002074441243809023173260004716430474136018485774251165782020834386992569366565893789790841040005551705892269546269937701802631158137519339254675022334596593588663069650337843081954000792121290008723056292795013628296756815343589218453361293145769530816369355712931266426104310089017123762182457055266053605411936689855131932978382303444435899350942690191468518248464582838645077027244089396960464790335047261016467072704165793294519935570836366225921792332831815432243573435492766274790353827899878799320778545698964195771871761702213787778465367308019899889023339070492738150768063089591217795738302873057421191787515129022732094846593983828634326331113094866318388342528735231520065904868499583399820507825017687116919533020022740745082813649334363060401175545119811472492541315049433868814417120657723184567998522414762959779127585297214983634397233439326606496358642020356394090920769853760461601718978632297914323939590278184595677851970204296278477214102957063869276070816631337352662075477595739656398115405137403495941454828416389444145354740651345500293027865306546588998250888658834325789522454959924687280161018985957655443559943699400960193176342663619109035878293505293847030130069312593616428188975066383845699040366045878422223773864424566232468188101167051874215627683504841866334250408464131571575645092830896567332041766276383456582159543258013106772770425152688361370025914402578641225833600042318769869971544703388908059140716360751241514792410403276580723688774033003866231858576935273269464533795415103429701336559731253397246332199844225555333532130411993655917554859802146895675390073295526607581246956954834384415378393382084301079655990126836760816809653997904482445799901777531048784113408914479248798673231938971929225131352807431317844250763732073959360205610202021226458838796829637946124780363022954609929286809543663834376040846318260928665646883237462125243272751267670513754792311212775187403327943407244159890541173065261887485398756893581209988274245883954993805120841633097256551650874265505393373195446592468736276501247187066354104802340675700544146435671857330075767182137930408693512113664351494082212662699411589611150402753105234318961095218718357040219572071924078645079918816263553800044175493455131470886376715730513448621641068327968007939195606347220062855195692389698985640474611130376410285244187456326952363290566270277593533395354207351447351863848405239979269019476708965763462326656540911490679337198255232001909516419408242510373668423041888074864397195732400088977661668518707962408239491714044818378483202099099537658003381718760982184683317625088571304282343609627263240678130133972640121309178075012401059048078073384002188289306549771735131290362456126294361480475924532877219419400304072796241283669690473834707323063218143870438502478686072520719616965881063222505172371204306922413088985628033121569310950569300483657135382588920931911433878962777976837665654222807389359074249108531124330176877085892629271035828096741914832713347536367064448178245532469888206109973207432586650408194005776102670084935924261698063739100162284595033080398150143127276721508597637892664571115402440008474121381031837668829581982527617949096605996910721826588935715057909565409689687864777086845376052329567473102470261135152301038313140093111636536060651759726132518017145015697203652405250097926454863006837792530746075648828079181994940345943138721587316494970544203856362671981456023938737499182558524938172909034776167232142651474108103466718128679382862061072208752730355307557955277919932717149832524798812486869697471318470512056769468186338166382937612213352094454539194049987455439293110149916979126675870726158205045516754837376167255787494312300517354330109707994955577182944686729105006187575070230174155255170730281491462102805795050866808917542159620825754569108789972040886592057364861636022332771997018463146918201236408253136007954749849509693461769487558032025769885875194551425184920497889082636589291198269759074968388315059291365588408467158279928148989571944331102763024226506100481945172300195579031015186724795266825957655013823775726888476665420902454876150555189324661783463483997336506934229581015373731125156937815828555521760249003746084873020885616968707527559772077033202331287603370491590580156749963190424047665865919925277347365587190120775997538529113814096889703779554377369889741696295428964002154091046373779144878116921329338738130436333128383314717296675399442765445173528607119517027293703229159296069925347264666591257199696234977594629166243048555910009847101757692759098671245681503751471723603197861463525504981749100355210724478616723666702750016178848919452397917086933040667527359566183875002479580208559547643920338377623489992280357188042090807524925268988370611282040569509890488748756809373534944965772591961751832084507831848042096708626309640243667455110485586756644530086480122956566550218663613856434368434214457121065221983185057712567990387415724720930166832052924920511063293528828476156616063495256889144168098690435289333706618362684568117637312537552685826479580032075616509025863849854089473070012862289731812683617896085205934815357814413172434632705840442878187669064760450352081358350720460489156444818102445554947668954144972642532186895031424705976806774465759123934068756788668902376985844975266563732248037814832514963020325053536103905327851921713036944744753876872475188360176239431101464301652293851590151978094981313780872904821813424679183881420785524739391143276474954202435973837478917018719888704708472602024834350733446776058112283211857259401320126381491639858351639030397348567362816692176957761251268462376611558721861876508812733972858947522705922621152974559292023483050619683227700343464597620963663045726973056542628330155676807865616216956938697648798725645868251864220499456922576846528571756418591763315781102289964775401362454140671770738235916494132969457879584784776808548245070249789372308320444432409176139748187574436944159843025805565332524862884868000636432710294705684311058407800360755164831184323575516850947516399932220185260123876897644775982759568349548597148184300918468886394305412728482089322505152294067111174336353108946601006937856598702101891289388111273714262869959959204720436494975699237194232504820523137974346108098996670194004542456189948780869761234334552750292064854000970946178163088469326192690396107812364139444210424660856144126979135233160468488802562894589805725097778111318245892192531450866175431003753494397442680715430824628999773026930264145352579369747883856565167981489385203010527693606440210005649702411950808751674559603757295634911532487182109075804677224325201152253712211413455332115448098308977325256789451092003890479559930637906840749507679902785763867806279351952215565484247537758074206338843049294895111116669454853937888603153016032839580766498268557852347883058577753777923343641919056849670049310204452030447378362291249153412137573531927930595697967796173782255675051152554740520905258858503235342769495710706880671743950886883200559553606493153905261680466217793050106253575410545706113299951726359236162695671899726100778943218812346911721201664746784087057031578751426433474644498028577377726213664602920495422168402327451893738654551852377349834871454534677275414275097149480328155704302852453367078078568644202906939940628330623187003734268200742403849484402568900492258586920802655240355509355309238458835819714196687796116391496246285094501780218277261371002671474611663116173764617430455201436308910519934157957128891617185559858240159714487832234180930150226733523974496350307003643783635278773613826312522482332152904230818999451568090658773012529548071832834913250962846545942744020799535011717971309626814780042625446500061943949083402975750427097731820298762823406690761329498234642988530898615753835607782637086403958487349191874439665485772563591276601129920853371355787383673181666660730190941628425222114993788073163200291035651753011482803303250206829454816185354927718764797521567853550330447065935809685623538224470414920622539377363009454967899368590175668582122190935939646902298365248188021172710034181504980725196647363213987877627002308520789677319369994679399719737360662846659663297747761551878411165321981056402916570281738480010958673221131020235135692059326186969761708333403183610776399239986216553494504386768780228218361485493021527964584241158441735693613166154797615934303132501461957870995543395180475498127391147877830692382442074706673302464307460362179052181916459665128397026601802093477675733086748123526210582210473922374828794187184363965689679979827953605176994568247715404076500038365526711107499645065154669653151298767694526744927950428918803619163174546610390069324913478692046424354385119071376062035354622841030439334843295220800967675225174623220843040178911880609565105596533641187716862232231611732110944699119046519350558079648714696825532022264317071730539507745101606628913117288079934653172698762965813758192824247828052195462494019269725046842362855000904122519901606152381049307056396364498243215097392769719198323189376373812585307731744246215967431996058817181832513910394974417072824602729448594270385380968316699423506898250508069487439187470758119841213337505903688998789731346049015495323302121974424904972192340195068084838412035720784598986760257635476719605069956323386343277481632167200330903824376579541046003552261168946118762618164405332976140324352967997432698288036634956614057545568804072021826276607535272335008883481590737791983111854545311049811048134261274612429742221651361886655598662590103338253980830066692045747305301188583808957105703891167612344635317104126481094161348443571811322887242191429918376255800131605642255143476087106026271293913328986497040748035854986968753153857337331978029942087759863455585860917523281549995813320330156639590324727799412876200462668791868865684791050052817972770899176205370683991401648254660020953968690146330894899498425904939047236676847160986562278697024396544860319261721250171866326480201667226916058989323484603447334619453974855478636391941648020507135355342336996657037393663260191261091458485042945881798787563569693063134766611846129015358685944422143772487049941293383773416910629061040616777068673533287099982945791728640395372111938702052111473074302879454662899276206377498458690410534726357016805067464799534184716669286540937963451814418547827109721809352637995537299050353321129316864375593755514222748460805999600156387005019696248421437254862105943177557123156997125488060061502555913894709859243724680854557103300575629758468787518914782756638586813423112420091321883462583060893143246359388906875799986235126479890932053077806950821241429371725825752490070552770351523113554768794456459590872875475664372920647413010373186849755359446920367202626699372188156852954765623727716600869118745350993539843150790432792543188282830074921072184896794728756035457690852296374858017026634271056288009887764464788116047878954810276724531486008133150588640891613180841486658313823799708151731046039939560527627030792077258477149365198540750281189138299386098987679351702314057429614717853998261324538471794690192256645520360475677289561152071702331210084412325139234227633528386791428142463835618883151939401609726318231102033513843825561737630288871441600608328298877760600664371279857216153451822692450878378250052408322930019424317892722327014908140597483952534474610704015000505745229545616539561975194482827364020019247074644336521368679170160486349220442476226999363692247297479808390900329255844908192074477750738881475763953744923813284874590915321826958387035852789819264287554087452935219304543470515175168374983330913031609943730817968912569141846099967107226243485470255331679450652828389520071510746208784360617214033729409684490331438012570631238629832444035186322509683693900960737514754596323606769152218293412345920104563620364132275733654214349001868883280882641922984799805804352176540622844502100543108535615317090302238708614160947689702404942437536138047826947170654456669949891224662120333222920263538604600528770902552239330389382074956752049947565182033581503881100744504080136235948281559676575278124102388451732274224351304832102062016783593048106219503311304148011624299760320355835052945989759460919555978225693240691408613865404442433760524157570393377931139727459002794381066251083355803511231641847024427211240001650771172485164368780710259009537919457989201161344548286803573793537887669363897674833348476313071561952924365861623896806577131362004735121534351455174260883790641204773123491926017624087655504149204189581596426000018113051833548308375572515929465986031553250561154709025509110227066313482065442847299073939863071772980949270983905731400191208662285888631592937396768322492113486875882052628241199092962996710710274693620039702927945957065560961068386428741310629563897498462288072947963831881978417732705005613757608550414644678225925561239920398539993071410727489012537548002717719711690228256417762964014771548710310074686368003675618615300021006300104689634008890612237254060459368540044783133420980133974214041217369969920980133994891661548369465198438795065314500735628455540831490433454538644413924718394168723517760904761973586249768228943240441511417895404277424729785439753396783272147688015957824042714349448454197324205081129952064229479286606670235754664187530818187405136244314821690443981964888935117535791211644193181801999865046090109352830327429741517116894220623532784615027507102359610557414584271782297225150709619804784846719724240702638338461403299938317880002147196614672296208878109677728033436208528043006205684338514392346466318113260685879262074183579542790026580743393494689909904556689068257788858709736834203687653351235534702446378582945322774626861399540392169534288949395705767152720363117432044270554720272804075189293543558533609793829957960297840340092349018279476935315261598166715467364720673924777923101037569257668781767765431801705684294092438203031597210397075751852968886101279407328778131938712909543386507131225056057394388277405042417735625480499520703114372325497509854445039979950583534050612179675372107749880174377478646583177796803353462279274782577154706214972414422734966917268133284237283441681864713848189633119087217275567517478507956716148711890514221465903043153420147067559699257637928519960614775125438230595555865124728537200291784295347139215171586188025639305668548381145092629366112170757546050398667208594074553421102052136884977911180503787097052567144587875993807521090768208120225150946456838279177254173586972275124939700996782038196372564069390645426534582610602149738276880395128816497228486384043920119478987524734672029062776085207484138722737411952766985453205344712494776065057849065092703233054259845590005893337557932771003854733971248715199146900471020704843431244167647541613360117275915594249570243514820167493068765749492186659085336001728054143508186145995184398036339343472310496495194967476100892483332821201592748081230507387707901211503242849986587577796987060750080643105361991682193238108181055973496124316782919017949128705214784149582569247011892739802253812027121610409305317145485490400112675923062716386705525243546826011070119913919698600376154964455209097110806017312729601702878737676153536314174027161829644752902176326431413462354534806235862885851197484526304744951952222062868623224054167045911205995403078407806557711096625672966484288213378616628254103949261763259323140200218539476638204828369713008938429151269944856945576654448756051611277876673843031689094821738430801121301275519154754034771288249384001054453860758149865841406295473147179309473475568701142397121038655732493680851944964283527968763458107607917211025118547727319995923792751345182244004009310136332423640014544125651077338747525294337016434825599181962381094192506329543474100338144306890598872979723562731136671511520430477181798561431398737209615317505546169773500324796964782028334895426950204320475715725713203532947521221943581814001218137990465010527500911672535447625382861172260180109926831609743426977846579838447632907201946692421693842871525705166864668260671676255668235220715706139519319945736635644856372619965224069616691843552421180928310501515332734856246309901702305986023655483983826562043201861382563315781895066770395111316365771136166904594558145100228718032353528530149063834985976185702721166109895317414759620883668149663513114722322761651046527561138400821011704991397853281479098038796522876669231582633657471729153984506274673933175749923680276092786930202723496582982164846095501966345214604828073351477958583457902856062355754249015620986358222270269877951380912693633622457384957732243452537330167395240148608946108289275429180849904636376714649188156140009803105289045669419371607617414711880860333935912592091387023629251485674937341318145675791481419715282643283873445237684721399520503606257777613013813847732773053457807933059005147679483809261626474576950081800052419407735462233577849217989521157480993904399408045269929479474048025479110235763289416895647848115761066537446169241412310827559935659279052326584690570371916153945411737248395179296943895656239970761905965357769115333778419446085731088465200688956919754065809254285161286786751394635260976333921219917101685700803018044773290688418859070158879722652398273794977175238429203979354497866778795584660237349722515756276463752056829529584231927302188717371808280624302407488328277635444063953048310655487589429270610893016788848656722020143169011568993787046891588769629648270260360159355566585649222854683687997533284856636544426372216430863459562239843610270058947086251510958105882790905458768882495957644358185743422831358818808148331414322996237214169903919535719198781389649287535051903828909750946290729309172691093290917886997879699442421347453383167169003525282445981615609405571443492930634213185221989885412984398901125187348868851146878505457689141104529908726578974552750001978737750014810372632534920806571019135549450537798164502205566992498711530434819366346036454955636230110151806685324943763681798478545177146805008849130443208527240233625690241236138266433184452802640063242736491212577805054276405278933401652354633592048475576422674896059089048983900795686020751429442710140899071629259557800843019798292351855606350319832710992185937485799255833630711854166138666739054283803224305875974501390339999228487763497746557254471372983504410422005077139963818638618039357030135460944766488546054939004420159285777758059338668466639804871874738022579573787042022990149974562201848523502082033266074245964762113028100577871584753949085917013952707227788186905147074356701399051711630778531463468852024162126471489670711750174109271701674947191437611502901477233269136752551632189461980997736059499220012059137611454887662599874337375744597788673060211957463263465660669342124941760425711090252570849446971827257274052361565346079132415532080682959412724003675631779005247079005737652877316889271310308296403605866479248757437018967890532611055712843028058612214229495393650628642724458827542569969435347986351573227474589699297839414272070870698702076253171569254718239194952341606759142578836742196890911176972317084066880226457284867549149456701169805852924820137399777531222524078330397974189375009160847960505151891135799948784193827973710525281517150336487722274182739621574611832892290867019334470860485552612022167555889337288721847120667802421573614871512234368589055839955795734927218686718974953757919385153827705504462091179931219459210896381164574645419613599736955859541964644238423729169396886836934102232241941609687782856363649476913413300628591620459157499878649380899700126629056827312787410094052404329965836366272158308268380285889672918522235368803869266225551225976367400883085596584982665868477753034609875252916634107777919800818284102948668597487097749916378343563304464786189328466185043424115926991593210733794919043721775676771509456136231529912400980534633830273883810528015736731430141663071550903089748939211412510009761966649712166344078932549425727178827411684660541022842107683849035410479827036289053582799995915476242164994155290206253813053787443679765231291945952887820490132038992211544399341836943990939103564196129562291222104783129170833657647967666214078764317395224650843142620449869505573878334510876074701222488174350366025702565297255778695081409770752176097912909948257206114900319200947056994614913479793116918450017269853385623844279743824816617959495499031179493846744446254478969163353983498884213782822660539528696159741029012871090737434423982766224088692829124120636425317453010772694026613223005982766865433598869075065638791136457640564204124971770446551949722495020720383125618695517048557377513657068843828077365411551385637814803573830416738173186360141646354682890255108231697220751131105370840622977449229987001468482525758581970720553708580129927334821780865739329240428415264201559492461781759937425175199805049968837280393964127408597388621903371532321995462336217090965980132134857471943718410516426614569237283831080890489578951943257964262175036118548377835479272203655346330408393969809416493757580967390803349824498872527107861199641352449339696437067283592952419506450635611837347433203891435740129878279283351975948054114900548475037491096473444421763700674236776019420450680099484336165627544885236357629291447297447787722185219157490139209343782071521290576249774093241277940477346220575074963612843100329628076007688716709148509559121784030368626895758389541086795878900355280114422358663474429976035845496653686725031372396328970702138777515070564597850106427667970680912163060447290795112132592058701512791035620951009322108594415183473266647239818450495929724413613153560750281926258199240417592623408207326783227749060896502096027310551995201875528660763942208760688162300054144267280602759475469797086357872836011435123453004827866709194838581313111115407335191430530444066376112903061261578578577839214799289532311312295101877792143147332330660290095880288958143475082808013331298270041544776457688500737151775204878439955393881225551653085193853678438606242985852482505776650959807342515732013226492635771639419428063050808454222576076299926625640301001512172402635567535106286424288574048412956400101221055231894410696911171941846856467868050842139642434028994411134904181458106532435237385519648336271177480068916831502873429872384993708194727384671228570831128270101547994782555811847559222349497772130706789999232567559502924223068352997878439518464034366465815321728503891636742473068102456823121044609813709417574238660610912636133433348876837758716720456370188619580978686955016229835033662103343697372713599879746907326903471306999714394074553595259547033823685962262301296892054469095045043946800286949566456141499471263208673335523039509130763864772057042248616980163360027257265324481498017233289838690746459119714872924813253329763845789518471806556305831870368080079426239033127328457346698815362403515835968364331798439032530590031340233701992986501033354338431879256254005789692837356721170447053502518745357435850910509471133067021229388392833853721413498568186859514749739642033928437585236453457632944409216077187368246443951149088819693910797160344183756807277995073940386118804488171972312728435737297298598861034506347901194513158514005819846415196608603455272296187164981935854507429105777649728600966910165937724551863361531159783478425425564395919386748171334789800082728665315494275242527431051980197748138503530225647144406542003118515952274251370187400995468375620412441884560767726240235381653744699940534240467795391764120380439816782280082056737868540039944030268367365619455396068404210884136796207728468063809867803569731013259270514835057869821823259495844212256803716353163183237712320311033658745604817265864616581316135077502684371729468203713214603301082619097601146346269060033327842745440769641872006623033346351367616158569345763860585712924952136384454994798509849468423145126966884162961964857619506106575028586826456556213203782714354092667195290716531890968046411250001870570054093691052379983807938708285040777574569679885572332273814262598349827809796713660583591600290494073481446381014940324053656650745437113672952672878668177166332035328644824304502338064335370780792148771746319437462395597140191325335508696833284635039886355210302127048137974125315893299073709402519336824764837884767457446440260562271555361298494650334325819763945706922657446269159050014110897956324956076507934348086366649818210749295895144736170910493447127807350567314088318896944074706936735566328198483834927660964484093658749483125600618694037900544816529110947331649442549232839003231998373632230512977332941143466715683726191628341571710561232196875040060091506181667708484345525720554645440213589026200222003333185254293256221818808210517382887143221883477261035175624823802372889837267147361995186914324628752126017529527952078702185022167248855284577895873906391054278482436180414138745943607019050274068975002315973683973612539216437934633206192759510231249903153981908759113669262978838475999979862680066387259538147972633436007002165771989173792406238465380114531583138037024161783288971255621221179992405441866347309313278863476618442518999991457546097967199127628797490832454547005843880034644108881967914795531210948958489389431076818139676937228303234214252358382677572675542655709838161249262410377210661093055160443722890262515776998362194797952670701326101793798264015846827871686409828175800336171740574975683445195059129398029440669962336085281818409349359039561216108052211181474635819263272578545214987976842210900671900347738380608899046951679183543411481872736320786224473254938755279504043721850233255565977817131270603267300974504764574952744261696841098559363992967885094937106490537941868623344153931234237999981988367230730843160297224648925005400875027423070725273128142890677650436590607146058929087003772357125868891195149643967768474352653042103157959446406668686137591896359358551142331527722665863205086281922032333888333957556565985585514501814329162360028606620221143293566939301427040244170337595894420802126893630669996968812462192351481348562079798569040564235098710191488161982437390464217624111890043654537887645624721081691377381144475202848614405578638859221313538855489308847960111507045605058338223589876337995084205534007156138065111242529510399713794167116857809575969310758709315454036830755850969342857133558554589143344568732693429871439072667986019744072745560682302548893592608961678776176426498914216173132634490843590785831584418934410835744790449766717291169700617500994765530537536129083630727768177456744979594915953567430723226333355546118949497086353870362539647911086520263845284787049125675423869511600255398993302155098593999776633364832944254550033969171296757438458355097368532896041425083242546485281830654254860134630962869721758897536172207182526182567509908052845772079272701757548509375939081844149477111618660134633904459411676049616857086121612847763072025515694800298603719557582794819803756716137642414844826251760011147456642527365908462769956006519295769640353169825740410943803244995987506505169024107558907297052618368039208750529095031959553700300008731511129808347041284413505985667159053870690804842419085355024606925864409754134232468836862171618895043079912384749710526591451192975937931114432912471102607630513933389298457171170424542066691905846082562578109011230474824846145112953749268275948361400218314563955592305830446926568770287231933102556745113599078137824032893869255142794247901504031897201671066978568987293109897284986704875509100977908249980930684232539503314439385268361384094360077405693771623501013075325219475533185854240941366274133491736324691391737788203554192068918474525424300226938042538566665862371135669678354625194534396805713401871487788568343775189002080463556003585028541378433126581506863575055878625460497508061248870729303990610582826310318270615727758204947579216335479848198673151758230298272761962811483988743623212502953963350454764690140170910118345792114193830845316279295468640268871185060693872122260237212697809788117623881913516690141572356339071019411749027623050496728823909403153467938598436490812745414738613688083412672040337330899328882383191718132512331338281153096242214818422385081821106292124641705659665253948648081150086646952330464717543734428830843375365071154184167898231542234238835969116269814091290934958087600345962967749060741014606465372398857239581701723987136528096696639286474429916360776481477694596240191055105513928074082063903861666059733174085371637818560489543725989667778894900295779775475147575582107004740986880694667739736704841659527364516015453903815344228522072060008035903181202842925551710029462949662979476811419523802281555889179044609337899254471713375433128439781051010659070203734728010694286809891934845935052058183381422160095730298817034138265721375347241512146642368790058617819856816238078445926843002377366104434393581469259668222616806914497372769950552005105422878315668581938112110514035292339834693160614859132856822907051749467215786135064318595118465208248967630858039301901931223192343710788288472676336175154323529470936019959592397773439660608323955778732934823441503399029170695471808987251226600186706614815113902068413783884217839663476472936916634284485627250847618698279584110257016066190890911942407329026682551232863019307704031966620945591669146644690137198796303941668656817467055713829766091727219676543020761415135590117741584107050062585094624153130077178505564044246127430182821050406737462593165214498871125913541271894452065577414684888883436150633956633773928602140154417256529111579674871096452087191276902178116748242257313153405787061166312695813678733998526742195899422678407909415087900189131282744643356364001144979467721353213908626124444384653115796149346784517552290910563865187133521393424698614224709880334597678781700056760488059578087898903028432950388165557016530272850260730035836026180656011369355550283466203324057959577699435180973541971489103202238165499468591718390913870415872726247109077618742927350071580495454261410013077042032498455234256368063250563872199444066384913456577143110125096447331650461829502120982649766300593393643185925728192372236223858294326030292737932736263373287388486693222366726837378355401539005429386106419972041753696581553210650511428209524718635156719772150268654922815357232318105811999533532510196559303074083250812337724842993236519988092697980316101471338811437844645881876975909915071100340186700719961275142548493590738920589560506632974499438093205359024948785018904516554573390802781579114986312953402215069364056666730147843289745147668330115764621431154608279080707711839675004549013969578201767673040486964614960099437587785535696244845034147151036165336448718941401631477791002321546353502735999920215013918750556967070471538958880128364549630156591821201077072312039282970025585529570744475260256563601909632544510034372253307868276098393916390783044916657782100016314418783822066360956379396318873727401115934904789604980919254535972815823924276032396170170324299233290888625931918939138479430488324172803729350151308625158740784070762385276382180733744511951558989990627027706904564455389052569171003480491388753341180754921511895581634326945451592672607157777886253436035557027178112047560133183222778140658227547980316218956840623557937109298781470564258644490047612706625423893443122788991084296418598518519369287751580787744797496281567430214375410017658289077931861900716934616337473708213283633292482231491462122542459134101478916997729016103597489090959780466286998531822106607687370355772540912174697439607098781687247032702166829896959725448850240916234174493402176440814588093510117920250516932749025573428011807035339912865740682159927696068873924778953328099664798689930537623100566936414428378428081571534880297014292071715864889518503528761407180100341133843009790513373585823305414663176507119120904782895081045085520484501565486354419383289760002141699061370794432052325102912980001768580096062459117781617439228202277299512020558947131654159651973895827448203443321035502350958072164722748126239443504852239087175199533871259406782703211822082286588544665018150579860026257870622610373108940862546091556485557714404622575858457279484025337118616405398767720820801682121227612657906390171010697964408054800964794028931253548404350141662946524783315143088200404449064003608799684130509383433464617788210080795220902265482319648247243989371999558012427873179336215283243515675869025144218299908060578307326749210929851883800814791108118198103407494630142858533231574764392080911810069248398793581400337387871799765013929874429650064118752247271974534056062757645703703132057111518580455799383462199447616895418234295655332789815035650408558441605908295575384576745216807115850646956695125596477179360168021020697231722521516017260271826429780896575498556269904976973001652244313528659865520529934844506790950860132738505436540839545858414211806869247153814874228258018508128645548286498060064187938773889265535189962425484014169212601472190051692961291197711461252386049276659268902903608614710912527678443907203492149721734449894088168176925292904927007933506940057215211180146976911748507711125873861562245167350585720818926560230938539987032778164805049336942921574756935820920232615244966152080254163555673742718976287288143495792269417381752268613292533702131688081486396006418903737735895813972146128583226391527284351450518307028425999492688272440287113197654942183441716768416601186263025426436312904165155309395197766337098747900092642142513254932471679062678160100801970479797626942859133132235739037954716828175601356782654346804285244779082751146456530008079042313169889541779218856656054135796458267479796164352035578296048717448115221842115409976412540288952742504681824700357283122623926998462664420001352913463730739640463145206832489623004168961273353382500082310454221859537028222831242906877040816083345508479546550508619075462391526941844117230901193462386862295128504961904652554281605316942990071549245566398383127483605085417435993920630259596852476113902320228316200124725572389040316787697500255070739904934093011605286358841399240851717129424567024452530463545509411206272086315379056378392337492296491785389160928693599045586388730559030072004182223032872162951998732138760167930284411389159900416794580703268278082429850039071357398269766333099543074238571409172907980197822146001356670554957103393596594796277604014857157106126119549481467509530855747045719800157346011428819308628324153466150517244694197250538612297903749767768335733397758980192931989835533145775364215858957662100309695481994818229138711922793847091204105691130381886222641074317340700114231305070404346466570063233035106524627187869472338762752300594478343688580457264427782942001755103558957504375439725812436516607602731471532844324099227262665311491534039602407095687910469867798324260421178202000061597151732823459237063783390265466034337460475294231718646473475473221684706270944739128105349429705139021664533379167312470374159282762067335383170639111975026602087014324142492516549956213307319468778432602102715262524515797453268103279315921563711086762039752448130159182248245326159204800056651829412217980213407007660777453911862166438044233385810267234730801855191473848640505443074496470958834421353971467535897022939003236905170897427350379439497580642017472133378965968604505521251053349301547787878513832565625217784696507216858061721733293958623032426726477229272115999274574461053303373816942715054510752557110127144480023537200401879828760885451013847790633150582483606105663120939024203795388494849454342940067451331698920182622002551372480416011913958375984056548149305498675877192004227789676531239518959679897369290765717594781589849914857041793741384282745261887244979045273682831794016628671785919129842212312963080744914992080235300738831989353494296732173682902487319776782414515477149356954136427789977030709456227312036830045863814063285835681188087917919785060819510940879892201968378649822128570537973918287885297692670886268015331575378799113167045067852141316715996090095531078596171899221746177634316931516779979797171663562711128495400396217910302435508857978751063438393315721986148738253161517472686121667739343034538358330994197647254438930274218801997212815408248833530023356399243765589195996614016639882071788674235895646667591232704702043867120997824973854231074474753026211603545174751795576645031148156830329842540839816595437535826606484468519635695056698746024785026878999902426561297082751464436582580358885370458094245648730850160435474506872766913808475362312598522062610964599437475222103356945792541661060976204009017473687458239210720336264660587660510319716289282299180101258754036775108205179401511836678755608166492924397582808975730257249257766644079495961952455777360085694945433218559571393468404201806647437510849833823617872129049265262204457231314237971852791160457450693651776958366898646187212842299044255770056852681524889580452915253798067748028667334816414041418863093118484996534283552163962413406739618543397116070470723616991609923697909390697189330643493079375275517678322542711808532871166236353391786567156622120296430097448809076345187106277900493948435926063471925792906421145987872376467975581992662756171155134357305575137876738384505302407120856164681666746930230292857751653303492835448138645925712521205624628372609804669958870414629024378558157464661355162873960804843752792701290458952087944566525376005734164801781728663663996740150627873246748813645764411675546382347012633967710559817053997383132236521186136472408146287079118226427723151123369943613585046520091318867852236050661969902789410866922113704651612750180486527933080049431259937138111642810223870509162029612158520516868085999076508401651122831408012962808412368842014695587127414680178171728685471762424543186789507016789369268770814863247133682594027837600914822148331274679207151851967987750594542899608837308971734596505685747692718918677712909634557258771405334629831604260449415757866432234744042256072435206478998309610191278786394634649735588952818907639555993055588959305971142825870415072441898154633664063743941136007354645620500345995663846139325139323285182533706911189338572527179698234707313702721912373754933396768689770069201906230572078662969421859351419400310850239129780390089447810312098808596290873003991062014344753358549800333925258199378466400464345399351642164268851523974702385354090161569298758815292785405230351855516047733952039724169299488883686006193495567120907780504869860234057693955807711433671807360651091032332808380410579295760666528945128504741121434047615722527464690624357849403920513935863471212160305548165650358667413135152715730816939400228484086646539465999399288882278692995801163841219150700937774060745980527304464232006084266835465110970202723548636041554204571091005504397008064726244408757422610959930534435660722126988876338609811999392816701461934446853852042893217768660105165185959885316354024259488515379966612129092891018704063304683612153936439862060977235332064339843035332704419915715080198931242930889265430947579492269006643926601970103254426648736736896477876390722536613464863007129202932154704271506613912500586765848231598556597290084831304431694666866914509096782852856104586549264799624090132606565149830027403250872474500208204736500661874427396888855054877313074229412152020797146290322432057343656553941110466623689971993282415971694095538802272052762243453886136073595482157170535447410283874493015944685545717639876989811787891880595731155730516584518007293590819175919576659924067140035313863860757206828819962702025389087938296806637955582483854200256011033969907311011487097682749496477615645843979707682891542680032342212586210096362076445772919829035867142997179877796092006092590165769511589224482425235879876650978623974641032773478582622968705470349400258515247623763919957397191724969447716280120882193935087675629683049974266624182798184201740850426090838762674711679384798396516459434774131489197100335457109598131286064183516320661496846348815324961605806005131262564146851205101506186182317525086191722420732830313469288928499850227245238817012031845833612363914276224002632888222355570729186092808443355799664925684389002387028895173602572964405193950158126622228881925108061883200100765924878563514135821415955850630682945432301705308533047964556594995188840947086076928571532011847709110426345690120435304102378186981346718327078779031171704463381983622030115804673618603132559031650568531116732619374690545723581990282276074514620684878503277025734845611915671663474861143420740167650024302109732506429015876964480400574581530752337162346924178759131404261600553501785534306104933364732452330356376954075349414837207738142562355100535109706667416104709415236281740928387097744737710496454629414004765005095342107305670081896226870686202827596397961650271257473153862721396183727292090240724018651297337489439434720067249959745240774624494797486473468707490912685310197276814795236549123206326567563738493887441470094382198807026961781825853312583862454617803291643356503698186846656246084149461169005893861158491485329776320355695471385869056429016035353552184697960856744768067059473388533083963222705838132264545566947549695260251467941252387713602070244946418393992163443231098531724725880744174102099795813408167882623453632742244725755792535569814825680804153673738028480052966312533820273555989763477125008582722865830186712424918849242675741050070564245787605603884046020822388656215241713001510377504189975995434671928884495482722965259132446675880331838817535622869580464595264096056240150183545261083578134110794416499122727159488585102075065312551818095206284166626376784707806486254673566442498330167603302575040351522220787503700040221044465181212110979953742743583188508715983002756012508772914517089653372076335473514306510140556688537204578939615884322712238196899089902485101359464978823820520747655652354109708147374466139541344922085457119664046517930925189176796285423717758784691475865521779393197328773271875700934536976747306948941378099647636161232072779702275149447020781226153316521079231323513074757888135011801053389347425321005209419796325036864588566947681167326728915829824818829242538780515037828207950799553768517625461024211827297079299365268927168990443883771555636855744361259643737896972690417297121279231545064956640473424493093873276286748877593248404984375488069624398028506141125215324848280608821922410233629168895528301866724678345804824901105012442148909989742520028969423541231000024784506297616466880191399402354675839571904274465094520895480341334773545790096688467959879152205413901881557231053374617743576473178941305773444918925712351710700051783407895902131122006383194715820349357523182355471366313951054552258485999484954381657310883373779385788678328581022366985269696539170219756295940121221117485280084382097499716186511709739698595309902626373865812334436239910628383039698674028890504949391996048804892911666321476125886156358765663971923301937172900150849617348110846845554569049872058598083490952054072883153644840779416303417608154162561029185680368916222188104571639254084042459035055351500703561810758827486815859191119757840390436122017616755948785483476223984685123498321210122628515925965070010636601460751500361021043530842174192168648040848086934566207330191763467904565915756233401118938814110705131791411837939473249969617771906624277171102879868969384681108572431591999568491046021554059032314320358933653632465617828242401435187529828153907157906993518181060143613187205979834089549370071850938907163601985256232659360501204897157203589072922263820841744140843591055691014136455695323438388232831897235529879152216028377542198961779392992223751920603318182727078766724737032838548391907090889004207362910424436883032041655695954448201199188905152570239062639749816022465762791169041011711739069399187614200930437717566156236500155673657981430789517157425351587283654223095313041418343721749694579991012147415015574051276117400243902933844587017896002160658463561085807532806877845801732250751267175771092508421535816214789845639317747575382926808244792433909582233600626094682968672923942973860559487058167556025183405615872986797756938445818217162788322144622322215807418435460866344668652969171858175843887944417517969665395113723758649093234978234813417271350480351980012935882166614630623821505940125126935252732698609912758839246066545269026295490803249098515717820111620209256330304590337449809664748971623458731414195832090742941316842500837129468234549326794089141185800616860263940674698883044760199195497724424393043103677551661387841829124085233690368639671806959031605253990530083526088810706466490169481924986928729056651719138461212219327982505718298203336258546176738130061985287602953416612676953148558418323895855876838523326422677361184963382866608070849314906948472280156385216998942307446655852571423911236538215288350489710974175209089098001507218202765116935675296086644498394757199887330820838106031640581510818926956326277422098873574955255319734485204760936281864692271544440048277284328328077804840186866196190287975344027710468085030888074227588613317268881932259212337668665422382500333394201330170726839193765076509146270001762513829376804811083646772772119790458076612581573658878527174325123542734496551290742797390150375439500174835466661073392374842023514201409710283188697480371692913570845756826587509060452311585538747466062366165316652383002733923832229192717867974939051817518071555327437936848364434852786302170707894558373164770763920263701956727035962713017094253280513231896589650711969148387011568557969129989731777180597428840747291474154744932371073911501457451375364324958178364686553347057700257671072564322535048069266306531925746144568887754009921705133811415852074753883051865157233052852304160231582001958780109468493506431378800098039639247745700669893354993943538043516333203526673071981108952518408032316681527609134868169059169211973930127771179119051513240789645204294873642774348170913952181143179347413110791373267519997644203144939594915774771292468476008111065551450257837460840057872962027870544419365228178150592260961641051454256767063493441805836285847234665950222265959995451931494225172100645673988564850571495794535279031251366659546562912517333112540661979736866860908479224878970393780093622930045871097135975626464650455605720817667446949281702543739768272311884180779934767687639565834549616570380167217577258202677218603889249791818240443584072963075088512880334292374456989519917850378647999634252524098897199018089222953465176493887841435291565255915206061114083179725802968761385376401148202790569562498197277108330429951001695499070655213503585245029975345289911735320722364881409413978211142263135483725422291229842024508917406849012178291112749582539241411980092701040499369671507929063112588117943066208068426571522617221598310777681227296614349851061241004697337032024045423793911930265968734922919384208775663080723004566914047046410570641329036704296959555169639953160730195897458499338639724532540363793493266763036354351043636592882008666523704319340601287813002537596160265569152850045305884514387458986792299137645269897619133787200790704388686849723325924568619396580960693695409294778353314530826743194163446723292931664115817092748699314962636983009899408635604278563401431678891261418513855849398265840314394189330899469627192937697212028167770675017612011248847897846232806838424190956751791908275294549055287467256713155635361084766313828378021336158603177198770562742324950902044936273430935599922108225061346629785168006671223264632610210446425638154828272952910292635634680387870235923273500903432917548915011955574949393283349843190620823991720223900685205487888594221887201277636405680570608178084342853395873449087431156963313422251392849366602848850506557373898711849000427982253005085531059570948006207188446186605590306419191697740712278518294863122536745135327600192829339413301574938817833281358555352478746130788499587111430701983331751261075350284980830112060798703211860296000387627042867139069796856291754868155259248920368114337720401887662585074464291248339596299784037005549816357623246750665799384347248386600781874397058889128123707740044723031785436396206051440635874351595684086942108127869538079430563153701302419812938259468351001976617012733518862261468921834204769517075944354909789822998043770743111038465405628022713263999299457739675728745756339297189402676501361367877592744801845044913363365626353418029698239401665707037169975260200834904684130497036710209333506433165598724816348217990176557296536392542857737691166150618796004716242037150204920835126933836138400271777825539942294721422460866625299252677763422903930046979406060868877437373387713575377816101555052321365452620634884269470642621028468040978810485337840141136329433558807610972603416117904312940098668467401014614483039797036644446884819251268560790937658781887511402041144743487350743872542119054907361252858241383844788748237227189862825918339864962795328148378336143265588343492068378604898738683141718305321554287738565109476012915100336901249596281159925573216908667265196655869422812312222289563806599822809295108047399836464928484859198417543359715968646970608408159404536483231999652508990272782860160392664644946698675130373661180580723852439709248101760524172385838248918605929840149956051689301498213808277365377247583738403642875991116909983239903842362727037495732157936481165203139936965520548006834334689377780216597345428671172879907836326734256584702673300032865169238951218199281447984933703950906244428246671117206471248614433850746003411981904932463902660247525906125980622941504617186086384616651522183457743490400462210561504741440422255256482611176352986892170010738635647509827639109388068646712145822360002174160017694441554257211841411750469779464473930406234913289741033769726006403557142626408064185993884129214815643581309608169845384409135597633035424213970107569537590921997991364443596112191000405786573944421561842683722862816854931778464975837517227353914803344697224836854178842860226028053009559849645553870611186855339780415647436378242613868519480404164942440648873504288892878303684210463849370014480622138796958080949191018445039658838563936878615584331751563500282461952971078546244495167839934258633060989767806187721259488751546212200525703665924222613566675845013496825709117626635642793329844941949903972782549235041329847457813829989307229387396580682096836194001507886270942799262631693374939182123400829928077015028692413056377104014118951860755155667187192491160873786657427091735377863814613615286307298532698370709817197406340935415981014222209868995355201513806477933609035580622477875530774018478833218913136933573698226785836669065628598028121197044498966073088162750275078048635223263674384652342644520218890389327505909465191985048026217973866775522558720678964951746524759859448263149023867930894438665798108623214969581891469238056517069813213396005422321904386270628908555483864915091221278122601041460184890382323039285747882217612748298775869966942857778919677439781149949961582195251730502023285904008028544129306857235862324730918218602253371325549741298039240591043889482007417413833797555450185962400204005882325653908165280186705878100584651904938004865067943024839822191138730194273932111842867380991125227183612527322215191742858762107560464628250931235098143191123800409354747185033918427344852010690933754932081358882748468470866929917832822480458060861672935799055549174170711311954057432312593132051140661291764640325817794409766880444365405358355717701986429444755149936942465036021257996253940916589790597753351400426196870359977292730966874190265896401426251084201862948833612908187297001854815596547875845470335416229631442451131464955992451827399848159801210412967578424826006636359848522235842152850159945836722938067122387053125059761880272643512332244021574395835085491829069270256893765864731646416042844087929930037462424585476743674890798430248715862686679301015574081272689936427025098651668015683737188684361080346130679437401717823179965007711361834278167964906167525454732576944146760813036848924340172122571697511387336884254818558456895715596035587686006150700174688990851468828478353160896139654740730309936477138412044781694183961259784691617269019475601474351987014416559841628746512666998789693485962393194574126887940233890863002203724085053863648358480532606371586567758291682482306014374814325600772433936737994848848084118738226925089001990577939005201393360613461878062259592152725382368477926327785224315647779778138957793516207018340544020112310645894092042954802405628425966692197957665289859469479057320195804491557826916564713394656028693578304427379183434276893454511978641820138106124202004054727909548135915874359668739435489585337302703156791358407083114094176329270377475969283139043214281615059960073711332880484074007980211935155146910020446837651291004762414730946780931200763021933264729090456315933949226281826601183868086072359947313228867213835249411280464638102398567316162404298522642513594187986854709816264292847452869275884353314895640714726888519557666295601978751596738445071017479537077934534122453057523852499340434540306757112736093527397587815267581683181088837364773518007490727880794747164820537195149972821458859685008497601988164346397705727075606753695237660985802310040471525316573436151679750174754703034366146381574503491746047006915857122688828579582295163320398399256575512149898464778969445204479557529098073176012650702484446157093356343069368899764170314181331822452329813601739902939501250978227384945300131813173846723278505662913682965368509943888373157005741241237967081950388089609580849143432597625109623527269740160000439190050342989206506790393025286744025074178616811319715459551908642451049912248066316903934811276460968712229962448826369050787695151950107987196083566700700108422557162174248750201688187226169036364198317947417345526596937102499146670495301741060304700652217493347522007838501086852793140459818304842489973949333647390961028492969941567787099531585782362195618279029418240747624921649910320696734967069650179479305219401925028508038502462298335017433506540408362676726374042219043397517610482195559929954436740182005101827258611540909934296542206384035753104296900192779289896382006204649156140370218611144905392902197234235383944645850189198362556876209423071124086161702843340482988457402435112731201092750658511919750448909991392986781547543032750899705411892920468234100516672665517091049088302772674927900705857815688974951295447314158716403967237524933419200257869808108854071147790755986892461487422780552017717947497322205021969767913943040221093774762140499534682265674683669933130152190693514466138328571324384181567913372483802751495664013297475657680009834565898758368462006238200332559030775051551485817733707749400671012554446549725474198976058464811489407244623823295583069512725615378661777596419715327941434413986370711762909096212488922888428936943111945695483740381506805224881427652040595436745957615617874687035404892724851899818806784216277715416571329717080108687304885190288529983495154951041068035062069418644439767639866124821024191838428316291057778586347649800237627312289902722693827446892848273537328631396198860984839898828568715227269613107625517451648389246766952404726537973468123025147331607031167127947186978741485737372355584722787688483008318967602160906162216161213960255254989180455290730287649745429736990139788908540837752732106738683110962996157127114361512288494913095210989865157100028846910803604718417206676949641788831537929102401885764731508088043096529868456525947412206857645734278792116895157245586212489278850783960474430494760610171029163073741294394865853740680177003650514318278242477538160536922674418380452023037009096886957034512001285232606095970059507584131835170415664335087341469380039314060239516337437189025466157005218294213198927516160038120902961517130435128979042161372349987035727272873220672500980555854162054462675936224257362671975586885248188855792521570290870447260851783016651144483931139292850675215395278857801400145897737674246425841154256627876777890518941749988474641060129547389276697283941101583612353429663855786404992625689554767896053898377090166984349697349269600549176807874008764516295907862053980512963909339324415057365472158356759017668371584727926906233942628985044603173112233215744951608926143247298015640154209798813438757234115849406187162083018686985756691256479512089139917748465592309168829616077568648208005674942370286777593492840220534346767211086608640278369776625823224828421469137196862004198418870543291746033025958745275242286907204769847314442307652595387957788578986079966635716818229026834438373995783934573414475760344287300496967372975963883145430013347955277420711408848727319766682149458771494756792278731627039280955991815732830997334305167474688594666395708063283596610788191980325992326277675093468810154018533990885121460590744583992258796155213767116248767604260252080114567042599166720747960522165081664044663887884155191922977758618295945507971992283440009658805502175487216700222350313673212002780848189474699072213850307242789550115724737067252464854229707897837160489312856599861392589061371248071555165481742225075194165889782387458846941771555887893856030192628784992288841146810702681086660028211015270521663004321158746608205010713427310339655284179838712493625142424969071656006322490279534348448013049197931736105302645528317348445257421295613415533977886321720209209679732221624875857030548315790502292297850793884168573906597337075332970136554237457406729469412099709941587678309040150062338046215262858595196419668005133679835665627705756901079783894058953422017974510775995459987015167035624381908679131050046793611091655069615659533466365617919756732817930820177307357814551781942109555218004730742687151810144288941041285831266285116608589415730913749852847107895783162586851961385380343932563422149143182981851719280835469558273118235329640828284096224236869905779309403323095125245296343076800461041941988348699880789035981034586887520357295679950395170604237582195490334323739843743844472721485166608405164641617136604519875243437724570132261886538125497455943350259986720891974172776049507729923533390472487300462117088971038526830504802530652830913481181059668634688266128255420787637305963601508128990916131151173587651359558009402616615479856683624434373420480539774488426359676252749057122110047860530921177274658197552253402030687650717017939496980531445680446107380973163230709696736926454738057997557169707224368605179090526421014076662715024198149615775861222991186601879378777402878701395049917400298253687862254033145599308617825433684050945707984340610869753774071900001410652915617262845612956991959090902911789012524017887204160201182027154420569636793735525850579168563598059387747342206855847182330478142715529543784181467496986148840906701501332889527342881312413821350147900042698060883940625359898929827746793068968695052662722807898648112331956710151340019552964438187470461913053629654876661051954808015392843611185280229123147835821354037035373194810423088057864753357878311751793981514382111464335241369006268418738555069237080333135518125037296944178744672087376376634257589756914235366945768528033788644172323669168206851693996409063883930945840139077232373363763696305358887671477170274121499733282217572529693292974735985234856316808331337251712868732612583320936922159977909214153804506774560663301582078444120204596919737813162388625401983546155316379183118905256536014084312960613826112488921278410484964869681068105875883781414006688977786101684012609760183087730335261947137565133896173015324675836749164308670849397825415474709607006220940549619219858316864617223124064689700730799504896838186734216490917607892058156761999026206626583975919833779478900149926044879966111966330470355256491351972488302381397210953359456812368019691137659470909627611236625811693972283978510379027718555646228983786717949375019546443933848519992586103162753817128234234456881882520015040753010034116438417107566941771572041417498776413352901606481360704020444591268594197818740967153479239190518726078939277794118600467531581585135397459435120851129282435883499441331574576972208950850719576603872685452890959446703379544092965649655170351384779847568177269549332343673754649264386883857838250473043659536607804445364022387359647838144053399527465585312487695683499325633172473886400747244659113267428826567722061034721382679889532666678469859087425729967164995772544306784099779605982040179900653962910066966790898005007648873280665578129859196410798376989587399099416083600682882014201261527107054852194104334921464923719722085529189272856734284811163714344005337495268535482745572557411103114088503308164228546945011132313060672110020485201147373536389681723232782493147011042795062644629131038073782863054102690898128337916891208546703406548787312248392059320985938795149001385793147814261125530617232018543264771359184637412353206492600308441444113702504916620239827002361500730093991842135105299851925686032760210967761882336792011833384036112519594706775777869043887559054931112957863394505444179482867547059323128272893213209315034771147129436804506197532157317391918288071532901932520252457054505287661543071539761666893989206713464176760134165766518037714946758695371087051237317628848320957191860709754745972056881879117215979285040568315674046678386561010176415148690871423559332682039870911547505344085798335605306535797401445142671868275856078623573598770365748107944162172274754532533295267043276295204016459459567553858881546937577943463366275407271504731311643028495388981830830007586832414069945629545811874932901645779508009791343494437816811795094903198351350569596726309509354411568407976220291929912080902258253866089779628919825076330027403793845778200837360630923530425896490964794247998575387708514608787123260947989434645960801579947647118913778475465206024436692305685333263644004526610399912904190573183214625912832961338557190234811642714448142284522416101274133806910522253033984203542822269608578714530714479498772522471790799148050487589707355486091265158090112088967514579136172075154698086474290961481064479620580071674344178157911537693145142087070657966414533227759849833285047615779469590170486296995525579116766434668904225092523568217386135249366497818320053758392391035812042679256327166701929462840476676033706084228140701135185196275005794269276538337417934077459613797307450266927921977009458751058286819518713151878354984668873655315169951391868866180018480054425006889146502844766636220497714784010632909655711731402632869144984064648988917891110860517710767107684034796427539919330601298727961468741536047053738500968754076337088425185921603182472863924399298068088685674966366756296652164346245828076871205362268289919979954557171808389304576184146763978657562898126754801090640271073114199349189371394557575512866753904383466204730840695724779356349097376375826246154512176648959438014207238965748905157020967870009868567065075034309387281183234889467583503497673826628703845271024238758003578833548418289968678136996351613485114965568839589819362690020849904009941527485605046799977844882238066706340151842348959999735244053899520264201370971662709327306152711202790429647298495484360030768667400384014734145475436612343057120563459212930335460960649786829710000003931622883216472717872953621410979168194534336195189947770858691930189010075890132477545038127014556157335232092085561908333053701928497491334965947411731856037840178204185966008176984621753786088152849755821839023217334514226779449423879529844371798928812315832564612264341485692947358816923700872654221367148191890950408634108489140902743580403854094920498403566589687877995418524926102838457195817590147153270537991105733520961498179415609426154680313841237255157068016456320356306900462286216395200282742842762284873786298588193838510483286029465290708045159336359579685354575893964612231488539074582189890020774453322075821085616941765807460245981177671995426283482269137600522495150313140757744996073347579537907005480428428553502109676300396235444143821495103882895781448919178327848222439614980542459571894323108792756615846753198899828017642786655157930326512281024944206996694592375635458684283626806482425949582215936055762797604845008069122991420322048193357132945401311822053392204495390031938863678021680102335732426966956534927177040174508858175707490349082261969062757492427878221228080424904866615769993134050676351547129220561128089294426025856950263621436813554020475347413406811174161368347792822666040086384543018846146658625865791613123432248116027506013811396885109814383951482388941184279731232398609109887240725501117602117697494564640850690507229125672132074613433701101992903888288194807415285264259845597001605073673619558897834071421487392435823301208218512891334862726647486316686470400408686779541046184911832690149918514307161195740160321391988427438263181819352003777166913744733708067870794873242094216724455471815978340070514237658861695868244012117954350099227627018664445090260404944778647389586082169630170566882308758404568511622785921739406099821415213273979993561300042380395824366075951411847043601447935273050702951725997799956673996056364673309854288280569968377580429093774808716399599595955830518102601216019804027788918057752753420301623370338521666639014583778303856809791372726452418701301311018425595546173982529361032174089377968025215448428486743969982341644051059736963833645073000448834044227796272961358540638509135911700133768580464037519384896090857035200233964156237205245118062866671267147105273063408840065587180396481292222219773453561952220383144206886546905969163988671444382817992718346884222289526220751344174384796522379377636731518913993906602754103494781526533478909576702725500182548051379199172131417228963199784225590968574913663923616399528393316209709750847378947854751962255010536243087248063578736234518604572972134069958392161867756143350901217409579815612192183092722912155761999205517388691795030059237654198184021709571179258547860352912092424344788770995470990533470816249138080328112491951550039232078727383790779753759746514068854320105596325160261505150250085490032808671152353215248814908820563907230952710367851926106686287106643064834458399708239390911084071670380441488931434967422780227828210449546249395220831317102602763627267705499208693070469850042851231780655369425391368489416604992262530293092844326504689365966864739621138246902144332004829161628034115269263275222521052840898560508377328608112231592564591089119188067409922716643186411284640112529718392820978857664000636890124593515792967242554173402858122503194186742703342590245558176488982957737157310200401664123777761759974023959607298320710207374233475006615110885401232843493094602397659250071574161540053849707726715150027379188352320487974747143526790530158702250075859474027328147177747298106304867971951434492554537470648534459802204345193852127263526031789814056609577421584920719563189883210890585408335000077940811237694934595798705133859956352154583158095633714112108711050485540589780043506358816829400083590038287828582144490528860148714603390408964887927088852467662697277738581181359476980832633282949176384351227036486426086877640542261387201465765690906775032011573574917351052008680889373582406716485746310790114834909575700092627872805879353045896607017484423954547034787863019992525001014977693051862807478169977948703641075395502093779742658585261929100107378883407918983954399808099601928251453374432473056411655508867499885802528184479453941006884275089312304277756831532504852377330074662022969458771321576388347290932489338431956528212423562613165916197812433251565082701738884039322791510109548738519852045039230817630017317949664474861173249666697206200065484326450114083760467476756218354944268445776578589102982676512713932039126468919093113889647006919479510762790611610525041844979242202691490607734373453029274049124777681115873928498709587800477014529130053930030761412058694914350575025112331473079187026138173556603800144229740790548918918061309446121615870093288580363345464091209051677110604718672618323403692373660028734689056460230904288595169493710736502137365891393303780653444291238910165740795087651663421202129478947095211209539067434505322575178813428667067020745608520935805034122424105331172080215112254899584696112920978985521592861209417314404313775101478324946819681026015729514804816193386734140034196545379505993601860436975108872321795984455743931704509423697699056425111717832195444861556209215512004207744460487108965179900315688976250684100283465125611798503687838096777932965471294773202162429616373146256759396284786505641450554514594677239848640796667802838680322164323429565152918106256074624135442183376358186738791110651230584287371138335698789613029785822931425639421831111818904258867227739531322717094409968534576609835058416405298798097192287647354505752539887140705420927112089982591077908961197822239862321830981989207988835650123202142228151017780367173637159068143950841150035546785873752993508311057297853941482623409952680837391035611866436413383743589298990225907774556146505211098523926149940138907844460763286919437683820565020601435656198800655340868937493766246608766889821671252644017620972290353099133101595124638236492014918450206917127192948556657329024613919764490033491684281160485615208475471739076996352046295069329533804310849494715941209579468214207368348858510994435856091557295232227487803674397380356293086841855790291143854605438990105229628346385674117286988665007397485830445201676376397052118590545013609073545837131566647631102678058506965121915349287710172343804465480176947618506421909071296062230802753934702454920203001758127758672190466659196171353125758032748026520777483986815355044277741202901453532953918905668164684248379735640627086802292917767758593073585276425024535877816999046846304336020898507590230176219443684591725393189705870758071961829029386161631107776900963259692566530697367873259418404973468621014157059704867330968711451924268352891939812495636147675450081078805296874416786125882081880726657997832088536008305527967188408732313035614356305582639941368504604244429597828906930131809039801727877427462854903116885794077739432994478042837993214415843587780158516232353200868053736763119529846868992607974275114419239712839276017820493515127710305958144569198057177441413806030265370907197939765098869745354962669301555011263168874050230136224026581359826808124461533120641799217796492523226080089064519532492933328507644951044794756825890551693039522094251196380524419393739211915781819599707856921585678951365832949191933427754365139440615681329606224481912871111936211605836288686815652707180740715511859077379005873827854488830731662621553241643008282917413789552645550008491362929796664850772153662450426025974866575203504729283264775395596562330943371269230494464107573575476320844369221426659370164344705232575274509392617206657339735882855534494827385983647388625079997659975409935574046383723221354030517090559837868652048188660144981655534081064243506383766373206107739453812064721994539341943645020319763436304338373976441633954056409287879782761909233001301309435681419244987734344022144164264872798419159113495465628004799045746267759823338553602532484467232586166195132503403265244709991697315019877221238869531780325046827652300966826432325101535274788142071837296458938263271391581079751071105556457474629229128255657836890265530666304692401828502441047896550223371642000738531458082942314492032827975291418658341957167347426281701621876247454225965368590553158066809823948680582790017208736770520331510461476634719804291309362510750604694261776508913067637781794733257690555729916309468664647262977589328860571325399178124419082855641115104299506031193692959070418576266710412333230328681021676032431605805158833137316088684135157399258086640374357841036943820920880802679651623798913798142054495573814728154893854316317921861398737384098618688408523588330435113089112796528541683805753599181225267454499718882405436815512051049753074544141431455669309857480407993087967484917510231741649998391861170537477839834524135013938004362185021149757460432774143899858615999258207506117371202622897988065409609020443964364284060767293428220456690794650100855957537853330393863412079132107400250713251958589196444654498903069281763083601213138687042936658499928466307585697439296490768565565079559693849915967562823716275207258341202396882844218443803610672460601953393658620879905283103616315957768148144551168741116624185289099180308082337411542115875438262903553123590190357064642162100128363546243851365294125270672235220111004065631247621034701739360692941567703354039105525119655662231113665068093233408897133413471140937459591036652706588152098430540630245235160879022243402729272900362008959093217276291528108910684997049132679400742246610665150239941820703802061902850377783433206454744856498054025819734689499128164483037172604991010177196836766884971053939874667479358943077092338215356087709746602713037127493572110912771863767458203684793172317678750139540927588754109656938265323104955009869120133344364149280528149275447165916869286667443578766509390072781601522505852151966058997630159874084738588613138996568677190801180745887309010724678182878369155088315432828305681932033333949609435584870170983001116938224975153210300582506695750960822833566136684437512774048325295464567224836495264310672115015280689529596234605590520019878445488452172686697288805286253376404150118524574444398465535157753114954722977875728687007429368276516858153259528647602199528350651802798877305486860547868041531891221654731430297807426457810149002054216383087318000107473119587410096260023308559091263225561765852643329006463536518566983503705045303288784390513721034183886286937179221579319545201378484614889388071250156420383659310835625515395266649292231043938321307841506007973721667557503863085000893946345871799517423592231662789125829122828172721399078446377738057492752557683960093538833393997796313978118470247358736211880696979543654968456050601606907313568808696191147594396931371211864625242813688326451868165016264552602149001951137637220436653942177373077278823156002624050103225407056686740272757510740589664886671128131159135751740342936884486517868470083794054161862964111379362905736525564747860999251129450987105765214754879306626724018669603031405719163838855506709479156369211710294732335652628093052187334103747938675596760432940663228892250249033689276881306938614636001518302185067366728586772371641275807957018598934206364457176380406006430868805135975181526468903086428588895001454968950612940198560961817251456382127776286469741521077726841681623060394450084952034441930681607364812900404757451236714840495002614767112810665412059715364394845058359004925918850385576282445197628513046402410464543318332571803763451725627122266391450979837564118573559976417368365282682091219328917493723888446630064737636431193831327477899926876036935569487762439499934519356145482443450419057060661811730701611897309153406069289428245766763575603712067461702971286213484773732785219161742656512100993595625910450540418064699238044444486240535047645594998762064363449736289184189892708158316366045393256095497639247364942516690168757172188500153172246895743590321027836588408343155559747631937015097071614259837018818323576894888612912955147080650345340422199842423681683721000732205695258816023433943799417320451851161704168220535177388152090714813231097004018261569718349860264728374093772063058799680316088859382731408926085884636726019637875800166451234395990800529341598176869096776163455787191797836093236697404959063694602313363272068226410369498438784001431410657453636965718425125939456275860141323082610528598146318045996816206907416297796749778942585934915950767641882671698961974840182138086633214947397061391036693478244155782810542768929276993086086450313798470970603209031131252414935325872134439972316367615009091293313608415767398647570369156829284603816938028832261622410557077572485345518444854352696525682124771268341439343488498520501234404453501463002894849980402385065311470343979380645655007466062758570774440458720913165633224218076159810556446814648232226307264944259993238839471343351161785192787609023057284941524723955642108547991417327169233462145099727928383691877385296010000923455675340130434393639315030721309969243728103598045126700641086912117087737689273490539259333855655965078178670147439961978115975256437696297179271063589487852420216729291160785787969498408852670045428022505447970540911184185596945626902586969153957387648352733188973115158460710206150315244922975286428605289124502692072660044313176848829095366460326149188928931828289930751772441027059573983831101993615094654486622320871632409492068412610568041432672014546243957898729580478444687074482805641169146231771001730844969626722854945546272253206158157940744874885419772132271918732328921992043508507908817155321797106206452263380506154765251110997154665559068144711709473900042977505869949087976918528090401442085666485924028278184036984579213210102096462909223643310926224752740852412078172026237783148321098817282806295725547295068214781222059102863317867975028100755512314997892403486664704612290297235216891223301085393295506901552795590214311295934242129134124880975156285593099214481220920618285088044674357752228940205136183451985953556483802651873025668869634260323243563758955398861197942802259297324222995917369850323432071998972445747865460652520221002890401735938032343551585085960259419022855410755121916939110918686716888350409923590382495685830791944225873982928887811033299291623490841454301329462085143124462105868472206431122110337980387782558985070059393486301252305684252984667884296353795102190953013234655094391001027026122727445283193526324721748674593332942932204756885729378039871987090350747072926426813791182089784972262282096922259517204893150613904910546096795205538845655027055383870689636286466255551182025843241177540033614203654268414159121765171062993968162954021580961531526007369069085344314730638299984383636035345530743867501268947565513886071429087185356065091988376956120529421898984736120721357586261225468378338831194183650167593683973132062678224191455197612845130452649289861365577455143146188150680069199823690139816927988735869967968352549316436561560128744172352966009269242347721131902202445384344315397530237914566545592097329065378081609370841859338652825982817992957777636143510980707547015930137870281953021418659354438424343682716168754657066033536851851566286516111954411972203568587313800417649524937395505909921328991504864989222463898793019958498380348576591934845055291795396677130733132053584939240394414481185038206084419827021440651895158712249976635799144211966807759888654454372741337832143551846913666838738119453095251246864855661435528456024140761638702232005923182047031974530316470722809079344159774356064592645033643613732479763488802799274283040402788935232382945806120817986137299667489017360317291428062580345228952873666964636814915374850436345931757921067174136341600982362057059858778226417305014220295254401397311512658369673206225531709138766640279358591268244875083585404025049554833731498442502972383212370556073137216235309834553917238114033384595413250268739095863555230325226499975995423403427070977717329006075838095413898895644556534359260181573013404399733140899970706594752867743061060307893541325849792064675062451209950470653860229713644128042624721364129346297710562659837764604753321847718244787631751432207915614137037951205994037035413706297060673427304387941026361213026864702159726653258850405286408091378167614094834752655851941102330599453248929360637850308589612576323541928327427062520978221920924366784012786596235934013295763268456916469711188446062523906705000151677783121162687525857678224433675876798443489974729257703640155255336919501232024470300944290375664028137244998926760235844710470754813633208855458970988612884301027548763690873652582461988379809334735933288591751979918489665710300324344672424276195021653927317986758169333074463873099804304536636000384735685138524411034744103270036888302099317304087321281836486389320963783879880104712160923599327766129531432133398834506135356107265863614760805830092542474868252308147169566348357870913217170163650520003770311738322863006517356233034416391706341321954627331371929868844204057675583594421773550773155054588314340013358768168568880082219179856834419386736929604511369901932334046766832616472787398246627584669354965840774957753185091417887746503688554266926910943357454957393843029162316916968487123964601895730145293803951232720448416757123546901258101418591532353166508032060190260589451894908816541943507719574887801286247559582007502426646970210787603633099024113969241981389729637089086595908090882518256694959448369947764009858638827676377848085886936018813389026048003301095734060651873753036700831085222994466254412266752797834617610153578279703876591600854488564050379492669738118367226866001355159419652312702281536730709057731500454117858663492011274827734772597829793347823571776030409832440496584437553078191998574370367077292445853415288398836656559493844520149620611433889170236816230887434259634657939374159187186714357475368686699120426327902815670179046640111748102923739990991448011822939510072038218343768437586570129846744243885363609815117548707064268237480253947308649980120636789854603497152311249922488018823503736111703535351523916548277773377405507535141554833341433484843084615381759404199082556362430308757918062422114707707197366217022347760803531218291122172002890722350830936897129015410493732558549847407566492441444524941117796666271445224728010604863779089884719171781641676742509500137521527276669720461062919155900806059271004414915379205702905107489537461624238328713860512045057439494026715288824787596912061355055493585991364181952386413155429101901195472117485614603565574298966249070253388855182943286019161242488349507136296778959031022754696877727655616230728963783255777992471844353631259736649638040718298027496341645981183587099614853439457332255080023899940644883828170802130552147085055421026843310129017688884204794809202029941488829695651958391185385007288529438835297549123448758535690896201013764180062008681885196939878805483913096701351280287916256335085693795788717726831983179513464709762837669344298422734526194498896953381068457973191986913314022085232897751475240790692109464628487087275536203099168083478642673830518148442578691683792282758123001829731910828228866428185604904924161031461835866231952635908498563205912808193728772948456079370184285028286016087975180365144343920494148482550713614785458620592507402612139933807885833034637042061707361119242729911404143850359306853527769099734743519591218760540253198218516706639851622614691639037810751428691906263116058350014762453477689408047731702997604959297223771559440575212812461405434826123294794876546760556465662637690037929833050993176013995888608931101347485659359955406013395306768289970101732714460405586700492413747817891787162215659754019904325478444201887173753036136770389073435664685070896205447794764670560002720619540626942759432651434182636012805435612856124699935671439324242699254773068714010403977809823349821956369117577284443580097642568812137331590528966254901198440742224409690665420350738142765763429988924076591728313904554694475343613984075847342561183261229845381620697737842048583052872535852045130546443868750496368176703484406339465510591062170486101826089920191867989866832288374127517070044624721432740727844066867023590694357495687948799318231391148764382383995264179491975964204946585827600928836648829727773583277386275052676361572874907040460299284648997073665672009292787624130528333424016777126743577754489937510478984025643007715725013341096196324397831127472680618266956228236575083451957419575325677011395907307291435035861991634521933006842331005509975598349083376645160832422433208634567677646690033628878811922186352733162670587678518771711970931676714863164718500719707588055088102853479955758986294758488471791150367609305397276018128213518262876562803751094842788481682270430428512918720541854578357815826313649200379605132446638712194505668135366376067547704712857796437031370730936380165603696452232641897209132693472937912589442329577035471018626075486526355682248314123042676556706213783932372504009166302380806926725855212592113145156939165812759164727815310634015773629463072542054621578666488268715372662015295906705878657676144025471071150358244423795949093784983115842435093547538221295407558609324708160138360753602283848181007150936676213554904246999084895153915943257752395574668024873002665574774894036367923693989701955996347684962923508925424902085466291853460641143197833001399666986604532593469728301458952169751292008111139979251532081131727166839074960093951002387595218023470662349520997897413898888103190118304526090195364234946916651173854387139542371386281425020321957204266509644285734419778636058561106344302855176066756143829886717182847396729620145773473741340231774340318711013808475917327590924540064355259274192828523264466555624032406189452160303460880797053107996385773443045719857855090674194894089822375378836523685267556773999817510358536536105457134724239230750930741629271418178835692111940319022481512181308090296470982034593386797521157332707764839397417396950980230475711160881191785446058184657591272086253635765732890162377985480251808847217847296104823864149942514484897314257055672534693955410662324428437694308587656073152281578343031105375422637147711431336608660342833466113286232440124451097842486328688872064099142873249004226527786965774435893130073614644460803010891538437387053533532621137170653985405525863905141540429083517876764270386563367778274090004088971237143169854430723004142838978351755248832059270782852708802891946473356236108853435030642795608623862693071497126215896815615969214989879707037199408714377933656246443853565980135828562191204280131332299775389570396834182272713862458220180382030252021609308190214663709398810526392940376200581073785328376329866203827387810933294595967271469247752054288969269126408601744881427679076661746225886958462957604526387874814229350392403748281228794209381725361202052554683373220641943430690527090550913920888019239193688776169404556128024956645372282677506216038604439924496738555843517448225872276470214182426951535844506286905839538760476836082925975318754852098265419020449627522243366153843555641513225389084804491843285829935425630285911327233150396235265884629367945854235051808696580134582313999626219308300680149493770440321339007258033500793058101969575570626872522841679703659929317602668215621035624309566279630653115057589988851023623340227508324068618033550688850470558835433776429750137710864869000055615225796819213658043758006845349707871412118309818520016659353192285921724464820933981297361860304338470236574429555129298218449426734575954988713682517688114111479473773229248128642971741567979110627408678560191143597931563115212650115101756865135527313507370767244510821971686493431439563483798451874763431704165606706743306749911231835572195284055643856700310461307378574925706168904165937335952266534027271744463251759475467772727441403248856726419744785486410920061266194626174187271367245730537681892786907416835026885767573855456580248815882584125011269692169958039020636423668250727285472044553461813727842353766057719964784324161029620285810926120356091097099625540910178134502658946669194125640887833852579180667528721561912859906740747412444493964739214658656819909166525639211469875873257149370381402628321018763314480898652980214297782951617197709211966101423521855293083140431316666252388289120485438938294206046067744580564220285853561212463948659352512193259203512138912122970191411094033912138083701849506329851929288974586975756568459515753836441555293592221576683661572566073307935674158762744327651509021680291335894137496799992196361950844071689206791105597137730493294771409358184536957143501327000444076495456715139289759328011244928759024796279352567976071969065236801996791489703870277446745251892669833027144869630214906067696071484026899401151295724693868335261384010159093916102489172302055807428140453052726173993684304849944303738791123534865879693970261088876370584230748533046998805172237086195136098162879929543288816367548761657016702720369291634122647648561510162543503821549225062165070321051567575074174885579783741462361964475370847093458659510937021890903668912035685169016699030596118410140456098916386714119708813309721032751180695018741998042654291949689767212601365563008696049382809864151105038401728547746445735426631387467338103526453069513040456469138633349774552744806104265244929627756310045117444392976408235437508132319320462976890744674489018891301421476143775739259149474946653908335918309758562337487699947175407097728388474844346748919598026140432966928649138825125129667193961665145014959122077795226901517356023059623564321106097021883087223813615374949265123532397188265335397221923125740057811647646547030791031705298580140909483056055586530678585750440027207255459175435411552045242748748110081865096824812990233116745872345253406632667016637422223773772651957215403436246537408869443085964543977077049535219260459523880331721418659322548996836314626746067341424612535150213669633000946429483744191029587395158230292778480615149168340055536093811295124766195038592375800881449021647488750822311892803786879365184665013830221214790111589129685707114041456299253873939131855798944126422579483093393073419732672364087867263572779854671910724872115022539899973083743745529446714392086818541426709143710561185799126278933636493895821042670982877032149247962739258803598313912647723475193860716993247212238327050523023628832057536592254681033550870067419217237452646854141907426232777273862526983294640139095489413457911138257087759182624740107748424370923804267264815470805546021162344343232486217257881936671950541492254730753419120870499790203907157663331959785813227979123948467331608713762872065468085593932706926363008107065744687957161697060550498617369382305904531367959639919641256672224423892362388683875168767906380910683640761684092490016474085914408447964957106343635548166903387600963570595987432932906361928506133228664055570780118923671414369564974580036978812605960196554200651695838711157931798888628521849946294506205256112554416877098622105854673495699415478769571464634534524989710032004512629318908093052925306353159960451206853517234854777015878353155155092792399507965966132517768065503670893343266514154337375159729693658778224771830765487714202997186127544188369327029438902392899338150566016476947168350732738089609128127701981591517376166796681951773939261480544894762604125351068433162419277835314770282619287335757428397972113196951904712387707802891041386847308560805293844619330595867628454006865589477530156158244172320873098086928845620704095746190227717487561229246540045810311670886357741549792259283307449284773196250750660952739837152359052220656088763222103107542434299736664240160049723792614363961118235860050597026560457051582820828525009645541806547332764415098738737175875489260179969185755785177375198624409278750298385531021924253426238244839816537609145995152433303096817052476081105139060270315915974152038962267761661473075008890103605902393999769508707265839050034026995963981675900876517019048715543813427550939094188997199535573289206899917084426459679286982804790081459616442348073713091913865102922155155869396544268275430997770701848427941839855118020608764443935964109747648401502525748735672494989904263002029203289154475661457163757484638673288750278311527944193321602869554533298400085773290831483836764448608588729574873415811754653882571443799132713500367796251904210106882331125473373375467787887707912241648350959044426857153268254225217201347903715529971200979931572147979258508335112143955050551740862130500534799308839319063046931659227041708793060185200256522672857785584660482733545598191825818293422188954605222746894306036787804740985709379777774790819306109152861662913665752680497408990314557019036407546801103483104818702100535393843078347769716848644387744748186920630672210869400424726098073179223691038232186368593828346997751190627729148978314865542703282179896471265399951123483497424079678754826937152723686264669569352339320704947139978360963512022657112761117526434167068880659473125672588748218078928011228665042230861350544569425284447253380817582356673056343082744795308038076742973255529761265779323414254502995703388272640369859758408424807110542900027931806980496957002516755986470714707499732379301517360795045505863965672604069301354092416723464097377641103125820506187564223611193285782146771443927753742954644777246564367059328627391767935419876572788995207597531745177205208055304258875439559266905971657125780544510394712966956834310913672407106012094447430139705245723866375731814102836324528107757644499679363572810680299182547157957471106469569284670627834143066492979755052920758751346060040823694925606210657856064867234944089019384458445724831826668077915674652370537246438146558148181929684999383390483678441632903955144520458120235748704894053545231979992021738335295390205575839127304374985011946096819576409462668722222523147103530644401873488793173799676531334782498916440791821783257880229432254930653796461851291353911922034100430325753545760652010337065394143955931379945665592809125483377695162164200654084303742095565814452386701832011848788178848603623368591407624834452995435984130490466320077861712391418722340221858898948679965467694212041569542321602483698228610320582790074414026689310911230694686335984777994791084013138826573797135557217512539511515309830054561162105524554302602545036088459519725658625728359228220095947400010747768599873232389867276338677820728621537998831526660399244998574021168007531204487272712273220386241100491580768479680163655817059584851118028316080609968668317114955588146861215577415556078099658731781583426596067818380854814765824575669316411662574413916009687632479617274836234819396218861720855786529770020285673767008533833666110517528522282399417872472148312791540841413181680654373717905093221451619050035646904851727852586412678844227693471173982281808883296222797353287695861471559372089274528938507364664659633209438726935027194624316465744742776032271490963650560892540474803199012564518313846236758664674783731794547403920089191653527130417244185049089008189396754535315356636202363051445374204306875842867793506487698181445661532882922747057999630462128781344512944323041194661701393752998914465495284092416564215182660371451139728520741266467859836618122250041369319761718397660571575868198148682580181988369911457800567282502360313151903338864208178052275098302154511600513059922757217519780039318624192595122360546439659170026848637779213842260958294519367425046396438185213357345841855930330690456132113967081321747979657838678964426978833780585644108927346148905495140389392914821281452105021231433234050478891436111707435776822535553155486121167531424701851649421939496785423225130066933680392170925691109258467055101762582583913954613201843902334755779021387758037658346387266363816569552580730994517441845339172371802491803872323777960780149770353553438390968735235468500822978803125892363724840535032892207914579663452631230517622809877391136410253788836649409868069174132939029408154563963048873047391322604612710722480446360163687811532571025875014550558589441136762175646743187915399696375239185353870683435476616286352070348014441857341442368782758637930220812981979570681662247988149122394787958458498115065692107815919372992147502974234451282618097798137509213070939635096320391629513832700232868056424701892646870090156460283191052898371455391996815289024498755046784411640311511104882523029829594937249526646478740311373570449934505910756131311146553787264255781414333835744873977861535370268360959414273871540339757685669606615933789773994934715770554577787665071623269488182696425586123680345928156679180219837012442519970625226624390188895355249786837750137615600191752674600942324513478153353994437309015315885571414650288113519302467622824992990540558276137918767402818610305261799534491141795641823513692325342578275257673746496656923437833709402725390157169451957925385700536956457359421404968392465933237057361471308488744377267926859546111916438919021913589362245721882535639202904163500140472443272350535855534342102406822110573239402072656941987317292932118434562104951382066862095809970393543382778087861544926555570881338513601395023905516612664654277503065679503181972153597626117437748783454238999334399492007590766280039970851322431594553551610004468692169246425853870513062316921116910343880453000425424303512829839954107260309706404645079123855053155110750408574117505420620982120531257319900082897811692061542040604024195708522076245698238069679879333969075226985255318788232828754285236377442722630624156026376340107654103623395973950522251409187299952432242225162591565847489314311590180889810561093134556198403203388384397499362813791999961251585908626080362994028758320597625935375421188922534745669821255483650496161226023756780243604434823342183313431453022089628670010289692771251477640164344927093067873034049203849841033216991838407078783413559583499877506065445420004035961679790235965679796391699693252526597181391546858984518481476707448143204085144443434257019437447298201316276656358957521889406284098921122707843077119303565417167154391339123181868939664897998418421095310746831326918691700978519140023633030921041040779971224354844824104951312636800260264438076882045300768991874714859169518388674854752971327145489089512010813403010141238471800114728470042090980816204831391117530690272799899486263066021106212335771253100095759785189628966140373773561846908895057235129322568622258535968377842368573257832451601482797487580346217899583180922489639815807871759372404495055206990693733669035673811247808569113454617549571291983948627986839735301073227266524091194254295406713822107789995802051598057284644713183466424434742722537080763012838204847440021686608867859125676764933427645934784230069850100373084918178121576728171372327484084868329349335581010367780364993421973577685066819667483426821713199398306531870878613738446622512790208761425359579084660840244675287184314219930589817202968665484490139824002968041063335401577808570090737061758652390971336725732806347978437440910904143316784845115148864977245982165645550638280999060965090382908447106587635132187464152221855273633232830739662555701237906188951906019340626782632465761037090611213507489653701858039469172635415809888787955409178504837403385141170614221283805088049502302874545192990130020097346600296745334414620645157726118109713061719438825702299200691769519345948637560566886327081575742418933249465256902387333494662398649062302890065800345902450474576906482481404949035057857724692466639117138230993868679819753456655169331339119019387524054514186252813519209130306691716727851382625340119017715929427978959449639956070088338413448432811498297930441910578863916858815140257443512893780862856079134481157717715432222134191534642822449586933834157128074058703024855242303390033301259625001978082890741290207624687621741972875788140172171257217336488761027269894406517380915823943537327289929907493179287953356896409614924879316404183352485708870963213093375453433164980869946911678200175580606840750928374137008250031322126910469140664868440877311054209161012002174019726772961656245491337898168424387268149877555339706776509013031440578209605007976338865833118315259214495588969276973897685747095302772570319303244811686249355590329761982433523169448374474214568824358356331009213841778379950705581693131012993334345744827403239071071706510362928394561085960012721605929146979775987973922992098141854002512717611957189713976771931654406991222340676442165817083797803070895727588189324622133908336958788601968450206681586345431612490431271091543652754798847443196467247515283855086331397829939954575131958224999308757196095824582954803296039544544733336478199846877531687192715603756258877681661829619232472348700289889833329058371323372502639604508933195914588708578793242884082793145845742520246181344206179947438135293453163964295224110013136828861454233340999585885664627285072977473900705813580663701682749680418189808588744154750121439059439702578508380749831696697365171994125662391497929104490698086632336114367351291728648781146695955323977194930017743920249032154229165478141673383285147277978905869492742345945813430432018937850112759015622789767325190135807979870573836997052285971099015618516103691546276236815240318455148269012275802819606421444596582546608765457204770714527866022922457212082737457201665074966217702298970374628677352947261040077164848569237792762343220793089123995678255277167084713054964382498629939767793386099404892132847326503254392241460828174952639163268490083448263953144833989702418150370678552709101107722827580163280526950444591048243533984029389988961965420690603468278111818890655537721214318295990788436777266639678713608159371832732229687619520591379567798172718653329562931124076060938348735966955044609725742885089580657240317769759871974281305271347919348291810199528925218639468634993974066675958523573815189638279204264095330421639590400759024500855091136827478113560127676312158507602054333440840217449426797377264211816958504047240166336549103461137850018354862851830201928291113271036694715620595518009258890124029965924012656742188209648001017877717225819433981342266311409419276080947523290290828443439309460575365147271850873546150482239243187501856495546528957300651202099291251357145284570113987148089149195194830939620944273934278245161250372002874486303827967723373170543029439974049655108033629164261912974506315511805670917845447680640889168331598131950484647126206326367811461078811803741106488782646087910999546183515812126518802547803723253074074290270095618215966681350774945220863892134897911169795436927682446094607000788418378858465026949272950034260863635481164091637183929898626919552550991874796529220440328177774421023130900838558080216199573724557186508848994780558125017356780726847867701677204018476080654938700948770891353730462709582714128949887338146368559924160650748693148088093287801399711499839089242631945020814492922331432371218324348906758056125124629943486177151908417081545916281701042223672026680242525303601173912173334749370566575685762493951654840360170500374839381286418169599366880467472769674760972539892075606754022196218454805905438339454672972065841797450082353836902282429097387676931818575298936548074434189765961015238658808784230130135863382034049709931183443029757398633340142241388621890489657079899249948769096002470526191952673585493106367811079552381419541122432944439621301624554877844076997337371667664501879945948281280696854161085066699130529915853322122196073982664944179072687778549815984080525937489358470704867851457370904359268188656292978810372510204043676201776779100137904054252667545051368549980109270582553967455817259309055221930654476215170476081587390340225591063327004054628117616554440745620922110623311332459317315603673903990862895332312024525658036166557039921013694206857825907739969889239827431773971424042700663872517789013914504809297292563760933240343889989610828093901445577243631158077100482274004646574838934318671467218496339919372729965903577134411624147280470103626903661578644646694839751706165382418127104695208638030225034103001350168969874563862681297444522896802909557393458283285063859887232954735783360278647377210040547371145155401109508226274773222843838681968936802352319875115285818109854455238180344570555224877246595512720946457188781163807371352971153479729176364687245510274309988487154509168619387780404972822280609381330163825573130283809676678348273293934267093447134252145424847133518170557581871303078597630323945712418857785960493876136228607582695216969856335007394404453359509778000442296934456211664394540686896238181750257720981812987712503893236571615095564479011552490245153297531105991772327350885930676363762539172927778237277551551395519360241734463031817941611142937805551933070037778661329622410252096808157779054494618379505929370211979171195327801070344220079395187372829167127354752900624167032118360205727220878912787858873393021640170523159155368995617740991516390781438940836161773561285844079001400211041549043487595134756576727629972590948969101911109053409735969914405836354159405243035468049538074907121840279531689017213621711058339731777991281922783254522744981336496343483518029386011534767583158746763930954134300367657428652933224334544937891060188006328094400700261858910221915037643673712891503728319648899599446965163163961905349707306534563830515925360056334604446346535062977237106579486133964008274795935032073264778232256193228888863397083736796721184957172556936627257815618802047397126700822177676691131169423025460573169453366704680805466285866478844223069966561448718244511345460523312301423287159608896651772822474786318117479640355544217758639222782775380281210949010441289412223484620825734618430271172269197321236044836425185874821539107410603040715992325565822699207410080749318039662599646764454392132300159493574448591447164449461391796783609369148903557197887732589156224589085698873932748150396947002701818323713549476071715105895493302561072792913624151732819605702776944998728128159219556472469333574806609539815092714040782127401304564965280830977885893904158374001876596630667455619874748559987595038763949659469333951344819081254496931801737237859135368874728037828008534074436842309623671037245371533188367731651881994023263295686356995137234063547046130871619217757841026289534121290702766137949017462235691267826880992538521073469228520300069558071750856482422299592246047837947477958240391396092665174678001124110680943075705961015058750232789077456274601180964482854255008262473026271281476574301368619837511534236264160837583272887699003455796586215986692797347984249231977248658361877209770964195761620936284532566894784337390785219817463492932982126219453917375645591265788299939774428431733480856173366454629429171912336697534797990996070550339029838636003462836501635102386139410409560099285638327922812688195544998532595455338167400666568314331536378358897145741023665996289469333413357101953606483869242690840387552835409847122543720945888067518071291009746113119656879963811681922428001381073337440481114318512345690590262233875472146148304079120626583964300923325241376136045464364799025625579747560461674758610269490878242718182357029532762834511411203914607075331452446217368867212653090133297269374241585543811563608196770464117333734674826322561279822708985457626551215358315479019200677127292714559452986344119851745427155478413199731578607799472922546745389079613878182869612644343625602024487974800741992676302790584187228542443013276040488088567099211600955474323022303546837740697745249184440592371898406279249619111311887915846308430140999806757867924715891648385741175258055004506411159960769585891566273793849285712983628084397793473338274798569261819418492718357251940728418086382867408429024366593064342036644400513227217692751833384521171548371738372001972861402906702708492195950011108267305716725444003013819349668406621358119747724381364458392025348132230715820374362643720032930219229172623372639350591686287449422900407467067884517663058207292962444262780958106658000735798647756633624616161038410458339781768584464141836729494601264072100226052505899773319008003737255922384389086725135780578813383927323820740204289707097386228856130509288586300256390436525015277536760652779237015001328429770882586028040350219553092706332792002081483189234601800539321823108407575711712559703782397221441873120765121385403821405790567509231453989288082138850801064632847074806541604985171920009681941450364733179743345490087282529115517825998498484919877588786332876368625475825654869173226434809193428718635101032419859931221170452691018878952957760762679433566138931953535945880640800417560744128031700498657957020173866451708144563255965000599256173243353230058096096199109812531489364388357338226057648442210341709241167110107778862520941955421536566978126279880712082732320841671082847766633005115764902850303918070226352489391160224451566069838911821982250563649535291589287326762452134701451348472168795492810581842586894272827613958170019493724316598944315482896071089609674151173686919662801800181502741985637038156000025777292721386873939537302085223066229914580484992605401366576435934765717314349279625853088283603561627184548770459485045177458579067321927829132311024370655303412292589598812188652359146868078994155415721937508611414058879449083180853011128527993662596687218953987895377627563729837201360730263385314035367335466660556742112641253260583299651692104951416721345175289317934883900740337589725293072965284426220582325812707777799846464269521823999416438598727125705379786560825920152079244683673473507775922491307682089652915440826475649425283979655733152471173079255543745647544577454493257702659093185719175682002139078247579140171813494909724022444123231125371080829244650103823015366341107628298875109153800496718823801232856536994116272111750749463592885330444002898610810410787447268135191070099496091652674961831794740408533030556613490358282142944433286326895890591813879666023914717594787742937030003993084449016611943593905786749397489150631839488750159769520538367127512305987950690939632271718871836813591737921406511493557800352356277899816094081808481849903598482917592257153737135891633245676664832307124684135603794850176182678425828027514148480814366634296331558595047353036687636705717624998074134945938572766112883012167842478623269575676954263484211247690691323605579324489971070738749713268840299764955788514528174147606009183550454565375787888149947534123204705233629331565812380200003668721644511128917211928773891065612941711037795566135215425354434407953677604555116734063633205569962718929886133432487602264631913298894290274827222350074688097904277945107262950628601720130048962594834395138577541198290182864202769779298447437675164230773800226253358322602925910134286591856342709956127104546882009368499459315197332072699405848774870178901848280416463440499166990009520239417487072449851220836270408786213307380434905559905984213322476848910723977472921442061612553689750758720774218801148806883397507580918401430045504847734092193498323692907335300003030829196287395941600859020328157391031042728923535517284966685309883819524191746000667930161436614154564794003467391111002609619422107783584788119860415153965712092096176666367051236969412725192618770040928294608482120487981540067782158548223673210270676282825185751587465934254190061581509075638277782800112536131376204565946105223787113832253370301720391469233795643377229974469147414990021434504678964647704143200400857698176666791883498907162278314319948690008162806070411515999778294225505880731513976367213790006278478144221808777020581728060074448460675956952310035902927634878054065847169774386484090695425781910457613229421782237896262117559534341687805639774731300625617588495368548054198959560713988080242206292060290214253570973712618311063288150614946117648805738189721975689298030418397321327735017495006538310932595073801393499490972209344661638193619072291832912859958045659448709011596541546496321498417786174233367528525292144373596775319205995967094657330225225532089302243051996393843114152226319457411198367419338029659316941779907576735921571155144681968173012799113764750488153362151909505428439897914689134920236465367251866006982475342580207821929769445032361951620795119362953993508086676336778436097817332867493441643032391457989954225022599765396570545090855114381284465829594872594006874215995568975664959187950617326175338482904152395883775201000098478677537145818795878127631980715909558742601113416591890550042107866013774989059017329492032655874900881457857660196034643220788143083064769486472133142493905376543310760563779527620712818025144154511762287763586041126704899937114700276179381740701352259642345336502833975320613453567635547975186868303604396803142397126207087911570324850479756532340258399219553996686462579529344710457499946072406774073559069368820977494260844502556126854130562234008415579646022450065838884286450714871732747621413529458870882469324573323887482750374443218746974087935071507599325675206900110239879005289487299522804500758088508214521151518500583888288759786828317785824667835521538150782720627813161839622775947000930276430402234450099026067666710685728855806184012582098048899325156337387858713559033608626439983059299834927741648005184511228887849601461199164245050921528687146823681787561441023451008784580518614985589027355064184871183356270963488974391917961981995488681145287483903616591981602444106364902590623565690621339431138849488282421541596291659695395742329836419388811777741174830740845473592319069359914476242068028644028867585978663388523829599532379054610545652928705657511796133142959250877234406873647475512886605484876438527381019829223900216216978360577982143541759997334035769543452615665781015260471537304319897882567245866046601266078135250502867696197996679706181285650055451596352390594307321820616447745802655906663486952507708657994625560352379306720563258922188634278301732245156658165144636282114659436853946328620897107456826181662984436495831746953923319320113267910476124112880738265780451513342150689705532199550859571917805697978010416912472171623824027581929823025697129652241452487170482810036437255669767296240210392232099449663613922889210302449719694716022496220365168181968525544157027884920292728287710812421038316689292320462273600723401347691615802022789579145618155480952083930325282938143087338802001064613264205771908631461955770352894604852623119459682837004332685235191936751091074210373106348257091832436261028681131448139328575762914271471251823879833966446632411089170314962919142962562346402118595945978426697548390903288430210108781492121504080257658842676474742429265260676243542981406369151925039440474518195654961217527662098814591652098894392904504521495646619535881308909692463127143603913355287127758515363339628097760176218074480954676123144750780463848261230931857970544173615962319007545913001054728097996767575530686000219487125434050128608120370782080694099857024556216376422412352059981781034901927663386608859644111232360602287263606849876433187347958992444206638096056687868918140445311323359597439905471738187405827669144961936514825675717364403201689063078665142903182355524458972720593397089809946587271027256857469765827194483136409825180148742528001331331420111591639831274450332985266578260807787144989680175694499279269453031567806955641276078716702895194111481642717891336163304934587904069735653498287738133243245604873078264054574016481953486729225611140667001050733475383890004492735959008434895452003331956474772769784793512733844233468662217980759282294136019187165091683425908691263564522633606050972000807195897205874090418472690052902612903464786573317781242140927451905020414541916373049474006281230925839255095704750117450478371510225535683413758790773787582492596088647962719759577178429229222920380199575353517043367869400563546352686046826204707965580124537084515331444679124876716522635738977275059390243717416540704145950242705340513340460508042683848031152971459665445444544062464610665616973386225079088817937153217316659480662959200151082862717131403787781875305949988634304961694156974160629311946209860347611400686401210769585148998265093767852902818804774504846239609810999485991383630060751613953116171259598202581150896094859419656316105243985174643530231556778793101463698557997036261788232127697840330406618926182251318365581279151609322649631881470469738977492559401445508449105385061113115502322196069390862315982854844839733200342696250602667523531027060965804780497450477163785101479084229988526684536781110221009901009468440945040606063420383731261645722288263939180397098478947271461796300758188151481761560811337662238132194505696922548816176979180544166586725469899033715986540116989542999719441984806126515508880545788561052893252085743579931721460963723512788113280532170054534178061696272389164566688255126000562784459647252006994721797966948632693585714554372168084927511239842144083958230125381104681815790313556701575133956409278100505318538431123037186493026865969449571291587215893241773379846923054162092570472028691829318673049837239516068568327478097753584359914790654668570422782287652174636012818415701696686025451984007354936462740453457556241328566009322575615652235838512133853985520748292443178900360921867507263594857594145768659067970199352144789302697372127614342371223158668329640484461592176490289499420054885102862018963788778912433817918463241326597075034833227679741720528940116243491548121074134733846716984543717360319098675650044151116641559114181419890914135677190446406966369899561863871901356198185999046958345030267427668400277186756057340709881377564409962384834101675347948867582027433470489045934891933159931487514268629253728225029966212141177666106782703507038146039041830472187460044409471510739482633955189619389337815532935339223190516934443999128857183461007302021379371600856844491380845904649890388507710468656725063439037886345132672418812596798565855789598591304946105492193599176888094912515043317662145819230255141380352159501784537019635102499386084470652843746470371905004365453143063448166710818724841746957928054639993485301050972468198745064798216590530235379829378435155175737111527810771996348879354991364560694200130445091311811738375911357046930733168924597780706826501400264728474860080544390676644198137396587607332409458077232671459698572423331613024858714577024980979369854482913149247593158221938892352090208037509991165488994591523804320967115458487066574311679890352559651739842570685001588049211017039212548792316036982057168309713815763783208840259511066120606482441959925102584502792113956752154477066332521517274710012872520078867473014868145582290512972872741337323916040482812113413855034467680101759945392393153323003710471101257981678254697512873390833188676765320922843765206823346670460322180382020551440002041359178806033487811560684503827995397946981045299115530081442524136003060119317458359923499272012768578097747685463209881599764862640034592108954694309464065718260617517065301284842265299690553093375207197854808682875859680309933932145260704690294902392043648558578905955049403431623365999110380919787672236337540988455054344880899973387076015056917397066302616269294052719099422076596354710744777953675968202550347136639100147058889281379287482569955956251119381404910069360182282997875214233643623462177999260630095355946648449783699888987149190773710543578725809974363325284908216359163548081626334325188218719392179810693582957502933439958821385362216747672865955500668223314053287264633929459909931138053474155150261556270562520507548870155989095473508686384017403415840683496477724816129372741045841073443971840028433962471334347012597620721721024238289939652637718523007211560694679689241480471112387059107245956025808734050950009134166493508265650964336912853982467791068292205412448133133018536111611675993307197431071806921649339176846673885308878587116657094273644527529664684234813849098906099605986332316993733419691628285853782790566493178125427366494245456733368950482214947960205541177133931047920094673832109137552842002404473234811594279143907852232981200325667479902194176056733257128284074885604780393605754832355494758385227759763908039572091821560969473012523789448397563169134548544840359827181022910378374655894613580588385947851037059450958464905996424936767555869029083419434631804308746153456580487008753784052428058899113070732973977597455211946187258194542376214514145052238916677895252455295298670812424288397575566070944193724928775196187560314061805584502695670118873889871733228128274349615450751809781161316340804720768718312892509236121456070449600293589821645281988935550489955601396856360687446510591902954667275918735655810838241696858560076983488958595163279405846376690279670044064049489631044995333698832832120358416808809308742843966323936220476137994685838131680704961063949425350695600075002845060108055626941005598454273357589812464677518163828910323558687259689423342935937812006502780880860820604459486154567970633595680414433061583856787845087380277149109628620208931587673977890091096569103570473811368696346584480820146723614557984944975419421518373924135562535114917659156207064036747037607089754507859201921232769161612738471926639767441244865437520086226825900118701988190495962480427958459527039449964389247860893377962250678526673204800526825178350685485890918626386261606583193582530753788445950180468320969137098491804575158689789749301892260192389093802571623704029533212203174324371996787459797898326213989983010593698088091387791915616759206013876944785747425777728714839101286282531845229463658787778347951454490153322375934887522356921256370301321415484198500240132026802454451328870311457508675567126892220509697030843712423291001071849085103145419236842445534848638952678567372701142558939962968747448791421570860071203915088607603629186944160049292915758805947395024853283495868766977352326195919404772410216570171685230227648435630676304893900946871307647478848694347020695793306647775187322917773238568054550073988995031135609032071805524945491203440318269177545929699730889626387334168854433659287903759772391408649644048459234301405351330184356797313710568380877594828165731690293251109124149550409887744514104986178425562167436668916951095706628962553341715052346392540402020568856202931448197821683460631452927852936129909192267900872603432280082052346432452315223059303882657071374638644716627503178034618742085560825811940044263623284767802568361918027847952941563288159865116373838362504509191087529422823909830590530364364496983453635340522388882285092349693441934762567705910585655836769681200195128559065889312896427360350538379200798975855278096551118468359881621594030948170206650377173730435442282284527512859739808927554134531003285339442989528454910304400345900154064737549426470831008289025791595932663181208910096034179168468864216809404413566816048435196475433116424305850561611652559479765943631527883642048414293330021720070323258277769323982073490914560417710824708126721746061616194857268437086974710851778447972409909173515912606071589878736412505455408870890514302721248813432431182844186050071967383980109703250572663131889600342536366709382345111141387341997008298859762404829393362474988102999352026620462758504868888785269943078523386049238915731859713381059772062014297248098845313794454311967004674749893019539191846728628361939633634953670847928373665563081639447567675578197922638748354586194181695056738064846119366557750876674348595663138850394220736651545644770170791269585916083169659873217236412752852834524591058581926522273389346175607153559158211079714405140273355829942214598046522633488352913273005960779166589915491937507173258897062360633522402709498824672622172556816504374640459900834878228104689441057524705181720473517247278678400955025373169659472237833598815040368020495764733340806894479754695586267006957004047362947687840216630094540572334919210935452687645850758341893955290967793187492044773167846615574473314650185542110999416622768194692500027850177946677495831277207440952168775433997011252064468084593852532258538335415317818429403564502162052467949503061299160900625684793760404505349811673314391137368560285274211370334917329642581083167932043998864418092902144750692320355280972682994145528078053206254969097565530757807635310171560260990627737046561387943093866620227667551934317921473358951891836132293699408576695947169330044006840155571267740295538729247413508016163154081531388326926003974092575538909216899997531603664297232715357256771512169530730891501756443005415314411767738764492555240874017505259994259312587002257652513156991956400747624717698511074969722773094222094364154069548828623473382330604349186621899317678047213484677220766911115256047359497914395840564037381300922807011044830230737910380378125943452851171528409633566486913404078981833520968231998063052044632910082512226388226231841172178315966863680201658619149548652740139487868689632752030816808725189381399512259030820915329714122095421283790617745437419786941612051169481652508022485899740822348096543117143416707829380502811198611553158447956850498280675049642592994681296252175080064381017015944592795454641731201056730736681015243254443892310888233754662624074622844757079690754194987090352230176345594879441493647931555920364058890756519071384771718323764097266933047860864896138962355202980617135637209392685138476307056680919318485247040069988672328442596539430966275204532404478279198376505913041329606795580904623452776919827534722162300045678684980848773463497894222304704767742494547514031556814460404154253186803666828465622973329692855062113599185961399062147767900028185596880844957559610467779784420591130776134957614241756970992524335004988463422660157290645519903770228344803393891403174005043098577643920394865059450272597506404264724272803414536847146379159298678516192496636803803001377273090638883546817982632806117595063982765738078643850494594911910830236010406747233776961468230929385066735914329476064629318166314138555385835099569266967641248035701981854713237838019287121739852991449652609149697387887534700235904866342854987948566457705030106553265502492220805088371780502694996733486826263523964311834614050851499830807601894199813414213491251567951131888116521372456175664742827868897851040982352272267740108329367349286470038905251242526778736027536946251692914425031180859449040481350223386974598316503425013827340131394327479922568778087861260237717230606510852075323028782171820458516887377315351799587241536724360816713537522656187124948041776854833319235762359519588774173922412620060296129969235280536454963693135081463599404388100824133641986540000502627289422990785838005559505230032001796404604526286076638164762929575325618292404309192394342523087202803291377004644801941560753209864493322173307712457454449180855691256323265634620190935338064542121665952462040792114308985486497273920687467736698064783403467754548044344682528175696982658169338423814069700969142431924936490911878430689318432325597082299883861493279261791368835164642427397590746927025021574396685315612378971593818282902777295786853226674227005272508695013584674150403228540683192930030484774078884096235674740187484863616896786833064221429153305967342222488928162836327730150075636819899286957499966705263742325836606456584563231203876896431688285685367513856673771612148893641287756098085535845049384698525678987235121165487926758086406708809475721456297748210307326101177845119070149206447947960659428459200791589978627896031109169421521713931617281881461199703065149619466412605786408548923496709099049384660612116653004465763237865436721273352836118900360584848719012958068738794911670344753166531682428686739034914381564561366521097358994288506043601861076909950915349340680151295570006143459207058865195372451385996115471832366651215071460526157578745527196981111001999300516239513675339120984317379910388228928361987937275827048344959536886855934103792726817770216852714363774825259854055617385660332709778053816421452746111256185320947337137706717043055193612289793707526163759356635106525644185816689851036431315365897028572230873777688693127391912392080342897600175061660401516989366620683745075399179696823857778406902474448166898385122022459471754193999945330423000398153283652635429609048509039397138271540068696586071985922425213070253609987917629226903518766552499028036495368458592585359616413745922920756933014365184173350248028830713171400584238508846013267337005697618161532396965785424978485072714823814900202225545335732565094357937683112301854925196815360652066134421730690087632265892443255311541791552514646355192380111218198896236465621890531618252063941068546978632627922890796603425732551584576187158661220114520830442584075376365186322232100015784438582880647733817943416569742889597317783489906579992945728421577642963699754383110570531161090742445691303416722730564756177892332051305275062612475278075225978995698017636950061683493786497680248395477838873569651851509896103593931346127326105994218543313740628578939697242237744963729364485390686276970450562459167203103048164585705071482726259521103106150407120017302196389296520760618092765299058077912069638518040415642822188783166251986506782980583269566694329502495359852314676168577191612094170976396425244245527788142052779244036318929097403603387903110363637799766889188025915666910451682584194534622659406475228779968022023855492548291146538938740423169593815104257755203776778129579712528014318201737034916125164837468786178720345190876559375746993105221906934729130171600966369386489584854071632643028776553681264539587383067993965455596381168744600625781284765673629974962820393893088478377335326278252929540340309237224054757673489990445772068156414244473646436815965137669197054220953843167782244541408614419976368878083167081265566903812430323290744302805723576218362575952449689210360808452583537562131500638482548428432387568887391395345769944401602097730510265844073455562711500616570536366102329423270118534952527136097651993701721942271118973537954272375004540433669581605014554134096041228838488091771762451720859217012344691215920341144009082048815561687617478364443836496991733689701602625714125908902598253208444630392896991976826902702442440898731627245973070352262035438288997686651905821411610219134459824321130568722350043740842407046915930146828302977568761450602712973495210662956135789178569564370891031843237041016607678250455027589884711811319414190159539834808466792801407841270349226468014430500528413765277596601691771711177035776293381275594580183128415424370802056087239272238779063427998645456793722134397685708161649807368731812193481146058677676436682637713018754241799189181848672191310524249534527229406651632685465426831311074582600026282875245245175822432436356832221817042590883647560449453561778856857701139897435093789531283661847601190279460926603644912414788888287485787934117795027186877773512990380155351440861176478683481486619618469705199261618380791842161947619968745409105924686526474925273094121480355422304426718562402051182961156876563546553139244441715344338042223441310224530966246731975624977548334531004874324697857999368817897350247133209990306908122362402494438825632566527314525574045181065989306682765502844792867712999917982515412484541342362966916133969996515413302131050623534619780879989481397573397524462656962290666035219071802110813021726765870161560959982942751791727244556635072202551115196368857325990879851465999329182429532878488196205222001135820624033905339598974508490991508204559084721220405165226624887562696265613659910952512818051514239286659434445452140662768685286806526719923581250944687952057762419453885801839888165291805110147826863059783930196096275871449843274363293284682347482865660699744216290222885980001621395421379125801656861617553613606777470662230772031671849742313108467131798878319701537788550121713564601662607600253884136285636536729491321217871631975955934198019667900197861919821456445201919288387929746407244126256497574779162333261494223397386679301898094093321776775674791619330437391977627527758394391185523238908962978719034709437328931931605014815964886037676472578705406603797181160692731599259427796089622047408067831660638501787868229931610182397862963260406538297323147588951763616515477281237906253482944633563369974742149762631459608676247436634092092303950159681899126827943923766310680137258289928944563784190518441056602814165880699211936526293476588759417363571472596792668977589466026488116857826326576965046146164870333802733871181237149186923570025267073938510002750095348078935281513721934430547452469144217140304457395686147472726624170465852266649966882155748074997029083337673893815026964529085408261596553523562374067984964003282849911920765264391677221880916349111439778338078432751304614826094447380285537798378683972536545249197193005569084642437574572318905536614946554488059402489757036836179267174781494172710269184075165413480187811706883838821503217327049507145518724414331137462899773395139520917964217666086643160484782267647070065060277551546572043484325525239097891594079063758272885296008083503283195035575464681939154007352286930180580245422527369889913649077390957801099110331388349276047848571474979465939625450262443091129956429090839105055871818741377822934498310184972171080938335956984339702815256977396787885681264575097051106410216967408674897169863802140122293723936510854884369348590835514061784613496415859323226180758172663676212691591251761244581033761447306165694962261800600308312851381087839505442061078607755945354363752401211132687902912433727305476564394731903718404044308291334586793462996462979552851956575765294888022013593902662626801826292216476165394812253653886413813468843736666545395013753636440663551154690959703119955211608333045437208815211402509006896587098491601640058394136393164266003909064577025371856435251545211452013724231240116129856602069340925939469984878849303130225063739713272539436883159136062627896853516682357633152186259479218146148483992163433036418556871990560523799145481570054004877868437093891193784371015024750156463102010180085896418138288271918143778425974475411528492054051299506298902336110876155793878809421844808652744419980700540758998508423502121342597750074539311932746329096360275793593577751443293458720945292879351215208519751540998510026028811349212662044688217062583258323076518916523429110696494826435337870144619354335315936616407750236611485596130293820213995357747572150551529748682189448039469316772198747203645782713845990219704400016795094103009302340979626568125067152587195457714290333331111439452496429698597130534525462234872599997012062223276597835921522531953988133317048892665662506776615905842647558091430669480705909755527472610908272193448356967517889517949269388530410405901180969195311046569836333915028840767385382258446953355976316890649830078306296775746669146230527726795785949636292104390280392306457990164394354612443674474550292133483848656039099415388011680624086271113856635390150423929485844052467884199482485880356636298730438136784970475096863332082359451010585766956482174483944801602989087782563356767398318839730448338714410011561024792031023341129801109267377124686475867359212875003501018273864960446013360500899543612716275806441362900290508354305760199567856344445505881900574704420911071138632587138836755270308051836802091683965827022851288901543982138112081015301008918781059690423441021693783816758695917563780177138858239910769499778494015060210761090125274285919766900116776298850382447278357355331519809874250841958666895304960086784428241851236309265105910425151922351330345494845367551343530914117837269204091423998533279832185243782103521244038424418000030527219183675583957293053094650370717433513964242560417640288511814545763904865396412613444660078268888348201345910018922020106338604937936250202987222674139266687531663484737267888166127606924020490373651761577301848970014127425204957042001992651889439969308862812764841395397813601352780343191738501585792745051431358756567911113491559160989054799440526263936835659529761181685898906585066735038541975561019431499997176633818518691598050091639451946992613094145440225622280705135059439362843834445673522228241055246290976278442191721050560736882887366780868596951592152148604843431782656405647841442301335371381338903489365341850606336136455142246173884461995394192145091430901095241251021387447522812703775435077058317272336538463588951613336164917947050810402782589941262991186188731201040161690654230766061700846258699349354819728455947008298653892308452550949047013269303345687726142239588724492555342011880801898972837851182607128281354101622014295872760778102366518932441781479992109543957175922598645616890798504266792934310293729159924773729558814889190493329955467112749322279425977851062475830966174990950603853342207661517075484507318770630207703038043588504766496356013670930333507798884172301330971860769040589953718914381708736643862148518358460754885742825015282832248779721992539617358928060268918487001502834280422054204708024907375877157884125090805472640572209989883149791594889175168044057312552011397302051178872828608509350239631638688507103494846014926201070258678506997501011624486908962844351352021968645025226888220621305475792267195937660669410796664450591137368399472286066653868942052554079249589363812449942042469982642360383800910338446468895557900785163096076951813619560278920524595084720080684128815743805087337637771103035019037265856428045393592670002906156668113057799246134296044735980086503032522276637555803458860001054108278517908518218064050228336137414702109527613833193404954784568351353024659312516186653394429201824643745919264753449563140895913350839439295333122204396906481506267583186354932319807395106472696630346075704423693584159195614085248913610433632484750188267240423202324161272986092218366720173512542652154980728005537138183189105482181583411899981451209921404303408043390279202616950578591308917855702791755945735430345847630093710843195864889307870447259366997636985083973460623237684667206587831851297753089777307936148041059965187755541166250824445957249240636043688536456865258472767449595817846918552805728633845990003508118864880014253029456769893099735436334472858573553247378008855675195817865420514382252306576594447710023036302880648237261962428360819205099620648681920242018791210367993249324880662782147917947189434782255814812457837435867968116301161200757440636356518356656717828942136966822556863304699211153933601047098233917732838245310340243902797987367922366238183876440318343823946362228752012180103380909537802626030127577939624750596703844141929112824334863896650100478884295547541193942035777470509764775628116226478585142067512433636438594872538178801024859145895970904695821139403167562326956273807667389901137382610698509561202938025301446428669224621338483412624708613558982654434570726085546274547766266418184288059932809489651844335740717044792600980909457376570949639395386273837505353351773284044727885724311242487366518349243683174109608518513439122613449671979217623158577241601632836522785404467456399476077325294958851152761362746882483730963223108292909492417361220005337789929445264775348767162203763154273946433225097148900033489546010181752618421101725606979535460742165491800441981032564502133533914749702881295175998160925210117416512541377297935918833305140808162879873163635079547384026147803455441060568300360750215580939455934308650084332666591434122475582503529215948607566974820929864950281942038667445758523946520302826829205894419606054389451789174682560816019915253130309345671942318247318884345362499315431519945976618379667360158007016667389243721242325166123220899265159822173996216737590388460028447807297304239552277316086545560172177390907523334871863416241074811669161311048073856433441790706525538840604938887548069288837517655899037640159309521375296013270677545306660636469134967964615580508121460731585617427857446206499406711708503608252247033661321847906276091395633501016924188180407656179196749775495256855037908318848849305949932005674340782269752194123018945383296772264346694222352995865819017058025777159581829552505339099755768188470272319775175058917506697588594855419405691521673334135452901725218831005623680580577511620094211126110639174947571366875728490228505787857447299250039352209730130633653972775640577845957795458462670942852223476318172173082961974835327086969016710106195137494063031896934738672673067614999467902918740165801325789019704354828265219904562854276050887358719323889053849796102014257971907601575537102717840994022309912518490058437390711345664829556579111199711545276309382310921447244627457594594360111410292950059381748588551475454279472187178580194360971044102454704683339569142838531794803511321145139418721516048608732793284465753723987545708721018868090967291016208445441658944756110192840354176297837755298462882007615097619927007435804713196160401123668589562208480356384674023773665804167584874832231176379109212407566838074675054193620390014750394289704449130193733273352422186975452914778558576149750122527788513781657368079063372692551063239795700445475393445696438086062823408537836886992033935983655462215564294622553852638444601478843742303189607090465577529060112974812133264736933618477163686652810260815232527203854073998975192753169783953755649571281819042795038471153882329101003264274470022816577007495830480842940390051331161889059584666031893648541451697096494024702513614924789588823152793935684922884302979034759363663161369280875168695978469278945262892025305949964864751186838521093704151917381493973004430952960717115128697676307187177683359577355941349303315939201948439538164383205427409229475548113521907087535403526034678811093712187144205763048382017847053598945907206272676623028710629865395018528427101005834445435736846959539094589717537015070076578755161779039771450630218134233152326372956021928123717029552386328873101583865708888095571937671069022118207527147454537940611947521203017276258941350554983517471995207413584326969094058668813276870200381652655711942620539883122697921239025101329026276781292988918259583537403562189080999617755802653615952743471977214108978616496579114274580085838514555602521956006501076424632287898679846462419202402679022372113341448320761389967420371649187410906834253320301991836606472401280591922992952624266211104737610936742511547420096472548689890616090025055717426471257799516463562853941797208674528791703501700497288047875114487124661338088480792718026566412731381233036755154164947922689639871354693354923694046640706531882839170660532756268904815450812349631879471848840651435675911293205910474607306264083406238286121028233578770346724987293206944979678207247158396558415720285514358020534048491578180003730898882606555325186315652187992309480463740376558328575276751379122564511566603579193899868151076235485353632037007800301224378644864767830428138513108832114037642150054517532928365586434902932468808818719737541695331484831327141343357857605213965270882356711828890022575459299910865032599585804983114857234731885349007150642996914968200081322458518034841826086836611367393250773915168372185081157747076755722826344560695049366969009516484259496606708862051004385277975198612572400577769495273813862320311556864975260929055157046952356564819677349877851193077061009389115505584006992640137801829555849258604631052547014320460192789681360174284345671902129215658307678710296610715556279847904246588959939894327444344341674595481140993601856159710323804597693278210971048281378858326257922345260183349116775741120420073302487648579042620761862165771274608822249414810221247931779314133303587576681537647473249031806627529272870367685685825229673144354353073806146125077997008651489404632241882189804934795395296639943348420944173617545705022759802340099688983402025284173752217027968378561939624058550153865736646254432959457671348864259217684033784988167002926120114144155753661285235870181568832373291290460621096932335373646203027294093206821168171211667523112675219792946767202898273021185919399939774524619054465320516272877037769780497927166778290785447725622125052021531408444303641283350324333065540299382337008238234237280183127826549013466998647253520126098097436689838817554825977209747338438086552961665676912574887833214430794965440891842256954468048718468615355000839510722124925445015742912065692637674018669072985882654517478084292696491686372671497054712561825065419387446470854989265514874511058361622091089372517217454709944403782136637258543817524179984239710532542978704831473565324143346523000105228685885084751751386497278369074751849426474454477093097881409999117679567611621533009606717372862692483144754592313921155743292955398140683028936476666745211031048434256874630873442812077484884220427747586915156920584638116827985326804835531583516408365848914449433046923845964621105249807771897397309555957301895090524682387332645829585809740794886623992538589288148530136927009864790310720511791544480599966458705676269670292592845384372802503281649288948784015875923591217456821507166115427819656547728860998210031766072060939149977206688749625794211045985861047662215393819194925322144267220562363645821467982899477060411483476083594952361780157656278780520068408578925879366641081237866716062988020367965882455227878871199508123815381121114398935940887920524264517035021651597687343702477701009131533552401862491088867651477005426209928084935036479440851501656649288396905702667990509389531831764240221806725064361958896403091165049687000494719888055157583905290638915038893049640471535074005189254243174894982802345151199848921099136969806395374621096540014334409065201755842228542367990193726166387844052968754915056676935372723599698141163295961989728798120083224469561840842729287665417495464988913606398064843918813910182192750602604459951299609688970536380812961991758964425654854585622797454567953532251649194493714252633584154059293066339340398925759797409332815167417948887348317241561484300933453173408380122756428187538573884151850779212085954096633727901634074375084723015965356857264484475424654000436491718917204870069936522855991453208330657159788351170417030621761683988975668456839576101640367412624249233934248171530072523989257819278512456559345314215020412408493315100622599782078136705765382662187074085286870069869579756517993905290858380774666254612503368907012910834792859140217374052689822691641510003416745425675972126119454280195413374401702304062288982184765974561449579290299949300251399925450882099635704321665157284266855324535520906813869227576963511794347320584602902142526805612690732868650867980744551495692250628680906534432388547004259530241493517802015615598706271209033568076545277354214210777209417119630309433376707185053989604494660445100654720819359732159539152469836857192543607612561283353553058105559057364010643992337085607148523234162054296632736862452364556419290872044699603868539514347468676989179296387735460290665923133288885093244081742216569230407887187552125386251899110938907334864632003396667842183144709667000077120174400146818106674542312330718705045122173981419669610210852208394272598321489029140286453958268350698288290931156503695524562239396466229895423384072572441707538372303102198304770234620464968780633878714428315770552695707042360285449360997522423933189635262782953578693990091772308519145890954482192440595034614729576718750918602974962508868914344665867471268908733573264402454284111620594560509847603998614747330130547301335596835495433959108778521040457251261531710050545300606696589389598706816543987670326940401088822489271157591566663551094223477467195523049451799693810229371420645882193847853842284375028922161908927709419802720936158136771454350905116972100878950723742851495823230879900212597896863462788966824480022118579097525281642558268659743857745356902001445951742418222377921635878366609341196920666204576024789084912590810550984040176430231653608056514932284224338245482021042949044554770441728268912877858094857547411083416629281140208301446993401583544258987627330730696912797344900558444225708790418242361226827629604425871768551451570137623840700239747858531639740258489232137295328242324081211942601297192692926542222526318579191643226686639958304495838576422920105308659361689023372542832388058461524349132337140003419178372711874145178054357639715927646303856911975367162785922720572691771249679956163704544779208043791264542214271900756602793447606131376149474483391809314993512585608479369817214236103048164307259186785730383241504241259307378132450310956932126826020460087171873931624337033516328132343359353892840507001474543760530908821849356111735522284268744551291369257185965837285723700559435077057035764334083633856955417144858608961575517039015384039225809389035706001277971467038387184812487932196311823853822092771485842002102260791548981667540864668476696974886364223108585740367134462103584223120400748647660550562653130041446604185759784047438138381305761145028339514517613977806087536814533309341283627715681982030750861195653712152316209507752778226639195763307871451342584915985797858490818366776953779154606793353051249022173216085342702878505722461538079393617034735454400873510050514893532809577040303226679100470655185480677929663752968590146454739109165416945941176715645222724557329153327770420949316752584863985771259905726732387675629039935895817488169173358206626531891742010677902908312602039149793994010278803480228737000582526777195247689910945089109681981687894344443674698080685218114285370218106236931750601882432071546223349677746308326281212883246468469902387212650726850271863896902014971639214354320887676665730696999406460674048632487511780995604491187246477446416622125502676465116581787862395012936772715480831448275659621921517262071634371570567368780756102125847211284921357109841686308428045898169046147400729420344696662289508416193311180579076857776392309287100802175166304054002763106410758553154826623379772567149846114439631500796572051423427539161036168485907710173413477346700460290461175828918283929815835059973044703278015616026067772243561977564975319976025051134784164985988169323061293699469165746804083785142992660643815251001648120575827942353189544397396165606036623311503067902022913199779775224082196245836342337249180744887560541333557029746050697947326438124020484681975759165305885001682475425377429306202811354816168976230329183870444344213141326006827478959169766205860372717516250510724047387580811285607536346176753558861241296009902779629372238778083817236781481429772281630688133070187760466356626378800900636765802990740950143806886441788805159322390482765597208693589305327887327651992346844730840765955398420608622933981051777876879899346446829424763824752016686160952859696722639248842799680436553976038667350169584796793679328925308288292622694560534349175566603600272364948725558539022573918141701061659740954392471027856778011989411380001060533278041470781752564470054917548681502835797791592229515277872251176700311036597530816361526254789700401921034110669651632632981089506174153077268101096109163261462210064971055838326232777656999818757211268503585343942014821797339489142671816768643930894234414273331096084689693262150037631721629881087652521912215143230864540286762812631813181912428227379682116142344503206459113977328693424892854789186252386945253809814656961909267693193381556105280352216977661707920720405580464641969745851229549423132121926568104578100384573569001307079551995344137157084165596447284198521615035720267824289645441063010618614537060398163042768432900780332467244324220884071280672036303444773754937046125853002042023687902173285070948367976308565904530555488395302358894390780886859284958296554465531990904478115916420728786976742456075190644741340914508682585391422687148263293337259015315973516420892174160962223362990752884417113823558991700976053702768619534268792278583059596465664484917436243407191533638384304455692000200456751444243351587634682568739987035680113843557560696708760618777642858429631487623482106622035768581158283775107007816190129611592498574811559283056414088757116029714821494803980769718669746928936679680813250979020328464298122058309778858920255918565857627577630914613066925968594185103406088135035417729193370320849605269421442315147905894522930290326896275454991067931957433236366528343276759375048695145626570251036408975583921899818951486159074521486660807488403285259583353959551750071467454980827376020422379157424602485021697775076043562852612831294089761700676261115921577177006192194302653236530200048322439499862475119209031756387820076217336356464790894908085108816570494484421583118359133450384037861866269265851602413508743205596992670424784276066017936406706167401770968583493665823574162450445721467646009483174094531288058857106609987949864920465679112483304292463136850155281478158382223769739928342586247748945069451882458095419344763034787494476659543542833328900077373447107909221351090561451995742091482910416028885176890891864349412898889972802085225980425059753321520480306827116642321248003146505242397426299651270469306730427187363347323778921224605671499569251226603813716282253684661767619184094581228178252105364267188797226960520012674885975125854203921957924037136532361821853176921336999621817230551953647384384450252982570292308415059645022093827229003046698451674936566341398923961043193260914768181409373113927898908892221786558743601084208978420676689075984243894180584880664018724919204641133512601062635558952377335309979720441765647077042611928059682941762386307430058780849851054695084354201209033405374885176407968074015057661868354711368685412643197699454503894428300026325599787389270258387329651404599364051860312687404143195282590600552199249985168100890427713449557705646681721929010257237189172402576991240957407631776302369723660072717963570379031852129486910937299056184011686995668600620998231636280586358971519937884045232969437752575544052975245532785697533270625125190077518793857163536866522476396786344262460584074539585102633807054251431247723324451174487767615912698136551223093022779074360419938026697726536695855471297536214089999281169971861979051392711986799958487022596418419103563863920488607957588063572698349858609729812960342111977285020571882417875188596262576946181744758220635165444816288614605366632385772574732425209607159451598805830985888915524031568745491205960840418480104234849231728494142246089870435226509438529870021671774138409380666567342467607445202424070336423193342363427559261192396322273894803742005136201605701705394049047427318014785078101476578177257404527940263287819484164035596684376978594812070480309080847035789681783476295196180313376310640309644325970237004839834009003698872974473543155451919862495601100680103207121378680361740280145996991803739243181882338870827491575571591222702149676601015878747437595216885194388749279461942266234736479888061956593464860251653863413207451517425659659216059977142888003365767861834634618366159769133424199250174918386819683651792958716842864804645508417656970003387719476957356736140030832192381937776348977198627368218308592733305969307917124179848714178424502502866289364310208518062525496332392983521843440981578629028865485933730870253239423407384672485435859508159445036859371654850582026961851414431365711151785034105750039097619732221901868791706790992262526179044722349504558997529257021340397234047024324544119575854690835774673313905670637868401103756570151961341334879117856616098640395149641500844485325274488189889311780579512492817179706026647170822165058993846415371082779392485313955555558956126755648499575114820691699206458739375234565120286790750507529763182355080097267087532570442482838033635575315193885715783664619475725858178668524376383878926354674996199642845813066140515765319539484648370751550556482409513362347649616174822653710185237242094107581712997941827546301279178463788156314059047044733353570604375367657318080227196894380379992445571641994676530231505336415707504289264565286639009439178868386117382198712765659616557931746082026577588969494101651482251221055454697231707104374761333878172652380315694519990729710376478316707195536229003430283833377444900253533821580520664020288192681258047434083805514669877878469423626495257920439261665481969401674935047057239754217828394726268627209097950719351679441713126790461505764677928325307414911558822133102116845987741409750653425859758556402512766455152816207066470300709801132145944963406150803465335339453138423340201012861072360270775353035032677445758975465277855388710523463761204119448234209514147163320540912541110223784598136100326618514423147572358883587969329054507735872860181139601482818496794358176231813836020268324110556192176329622993240084986654143903950272096653611715871981209425403619874478596153378365182991972755379637636154374530377684062145761937814242135697001278163382264144040708487774489740470697706016345256105743111952595951903136954838685426957453568036917874948275041881740253239392106088577349246239052773210972513810684071587508642654713626115636876128996143696915312346206611392268465038136537855462871400887038590052360521646344287897491237713125915421449790819584303713788922945620692907194095695868458558411623206915301445991643126456989075197647990840828137841526791416852529361460734854591365446910670192040088073161861000514452862644788145872944377153319242585412283418798258777259419762958932587710188125184496771785470875757485584388313724388125190787274591418427353419354815086484729501735192390842962906467962283521099513874737494728283206358740917356488593609576078519751686467643020905449973258240759939160641688951040163527958909962894387544978328501222692683594963907296124761779690844865771923189853172973864820686268284998159126454981821661711045068310141572759119602419098074407037760374070689205346023890164531763913384066352465514063897750462960039162060048099754066798680194472240680069372699953715442203099822732107093126334699710161628042331439237938320049060514763388180828747918971189335717622773912433404440557727049005461423090908922345318225811418851988989463472525584708497595451875208734374717041586968450654493393270125212575274341753480071280904463939492864406723247884279882134682939262515344607552935471345309250446237370345756551183287839724571686717656146247744716614084666185005812014298191166918413793758542524987515277224686261462897757473656546699994448816367141687464524901567816799178434568493166819833474310782637297853121008614034057587595119487154344182334097024023309102026426759601170137630563262567139380457789694352457196089145021142275444479647267601150026868572375805640916557915173935991647227912161536166475537648766250401595941114605436207809017051740106807913991944514110641647718927384592802443905782302468620048204680926140550468966116212964554101005568688179811997533831499929806637728729087772684089919808400339701267952985144909750851382189627488158472430611408253349479646645840466469076761457170241237438089826999105319085500243797820529266246829609769131265413329596528820511510513920248686878183528129133076855955056935573299632202653700248464907151081923484951659949368790901087898289453744828555855245552047113803151615598105074881390471064175409982307233642960530912295177821635325522036313341655727331019346947207215114231308803351498391213475115756543916503533973323459793364833647240556538252856036846208247555375563239776005577914323397267694266702433817195109711199534024693523961789214512147039242010886567529054264802080813679501829142658222632706137169903720620408694993006263605020055265620025183495128833147596590951331706202034841262437512877096335559331081926944395061094500286524365913445367114735150380823556247012075031737298186553517066185806390017884033749640962316213399252769868327805767850737159133549706557720269130247315919910310321502375052327945523677202789724426491440392927800139287127334595772181695439890668600670857588860168533459508894160532592019482391791246956565316046665258326033099531521888597946805252858191925078551993164019880516140701688828983516280191066700147003764211608348513013849062436233354411576201510297103758210459185097787171769109605999936646110816091491702833051486633373282616530128617749552207333275594376253184707380745434378964487952739651052095134253002295774842998807186043258169952624458954499071045749488314143840208366959685308464748642560796729189723553556861983307628984164902345907140351169577231395424204930099810805161215566779087888347066686157388767279686207704540752053771533937505950117796951328329311094152064315747336871924694209238563767678865477843607673995811891209141573201179509203343358341876665506983508690492068339854651756141503365872805907568277438697369240325380843443652192179608027322337291535138576144270663218884436900951614405352470431092405836046173908640895476184966988942031022350513498833082637562228963332428549709873483937962936747877028921385448589787584365367648990680403501944691572418492509592875716794552054767245420236059774990336741255128235708219835417573824748156911921802562758847976580005266997678385741944713616880365367636138412569268397659020657158525133975124127400665566896261365884961880452306627452298113136921260958539783442578150378153304632248641978281182273674375225660717272085479455952311933777622091140629876090411773561756056864451434189630611180717962013904459962785248922600687291453679588822554524274015385886076034496919474358958963550260977001858752251569312623089925714833093010199259595556896323553562612849785896881473547959994476195815197373456279763217162787897400712666416775565730454513357079371574465820531971099447512933820402466839006846542795073380416839610702758919599001656238111564975108244376376383523588038764395063578490401239817076413429979873625843869598282439640575983878442584953138848808191900698425227819644565963796044139961119635702929777646109733407899003261666895433527128643085068807129708429481209804187605299284570194851267349305668915773341245973851802588664531675963485806058603219235860023009452217013153834250526609964853876051835860519874976601440622771344857102347927947169729002180643583161458884142762431540907483842716822699603465545331287488524853157078790005925549265560881955812564981013562173965380518891668932699641316471266717065254457605646944734347988713324986679841089771163661056566306131210583846807907079830813687954458064998602718757776277846481463893468172032921751188347538895253687093964387135463760127301283185696501555028887553764588508563916536068493974046699476493033190952531518889268068938468896975309698587890713747089798359359047644269267911475530395569916534273768112714577790246918435318572075458089499197017616640740132904796215757001152380192584221804662989319034999929573411875458448928406432689923457076564305768989585256963341236979655803462561802140775106818668436581768651952794895603456989778172921826193995000362777306974819345734302223983324357863756621790734038928260442164322343098982027193205323743639867430143212383027133442880518960542792600936165516568536880712301990799629942946481080999268388216098985812407089542011336267544143702957524399838408299454140799021961733166660850528352364906714963742483209328494550395931581252983079755698558337065095363248123707831986556656228232263991531773757319927425068723571439265020244130027065372945619166586289423065923587847127602445303669571095643012469596040831573334636455166563942849428813368382745709817029517703474292833494562210180255673220211836369902362421271047710214687914133541043150599152838451909505496015776734124248404236979702147540177518599385381277570527102615050180197615589289453064229983162575871985872404740139042823840674068457198203672484770771238818646877389672595871682906848316045840625658821842648166850937772227628881154541531377423377348677163698789478788913400236883970081295118880257420344194341492205468943378454024771154796343089456019210177863040104997939754474237798742936150963241761562190600599170006699136670840948720372440004013944747975865401365342960454526127482884544093676146614436168766091466301358515419185064722821664957665684320584192643482514319621230146689912541429810974053498938009414722501749470923516502519378342924978538299536385921332653135662202546357263209741470959451164040119778235516862913311194961357305557364347149356079553564915016694634478455292771183289678016063262569625941404358346422302460846720636834759626082803294779236694337290078837603812754314768907185083449050219350558570402188201683569884656659458373782702995193258132571975599127962860139035074213154657320148343566373486858116644349049987297631380661756757671055844889221309926829771465282064366424373960396692886420642925508546065410549166915740114778228050900153595334495161493353560239156811751193097605994498653621525994906801742278092242896508050706541140354679822315779724447991615557465416940252846727958211694894690087534772529024911279123529873606721341267040142451995753627502973304192067281850371977573907706226621952126777836987613772686611082443572653100157694757080119542224895151662126263544087544025074078272718704259584379094025119138813945147807389525174973559764209861451923740468706692532839191751607097390788368797998234920240047545957360421011759112623498285844859967725765862763816940227214066604721144229580774230232286006650053682877841215092262844825726326235849986772971127192118143883399366778783066357944788147919849515038716100208330326036336921639890247830945954699793796376698669774947781176495714087557820157198999939764013313586787814434598787352802445118718755328938849767857860934321594826634422883033984801517959204020337896417503632499312206029237044549851011045875918879212869258314440450391285005831295482685646114259298835851988456858287774756733222344763502065791911137412980463851418653354168591226707703834487289327436610074394748691535579580664371570347462608553523224161219283002238653430083232530662691256252259969515066283416036310031754955021938499682879251217329756484235534774978686121316429935931374137648910981998228710247868560074210845031939731567765398125990343757386983700515301143786778223037307938054926264039537769492190012794384813231946843773852310368480646802004344951753412384267733456638126236388668311045454256866520331620939482736083162702750040184379293461225657704030710601837128461298853094398374642105735995058851854800857495699808118956579557476739581625753459760646761898844761820923102577716061734255925213223073671267666600538193090013248588064491801467962668133362894302495661240193714437980520696993034925334246931582084135401552268795772712965278223606721585624780399176936498688068305842589635983351382178850651638589314823892368437514368015145614392998605801070787870675769541292337898825894096725424279785839367012022903244409358585052758075347608951455795052288375495082225493508179665431557997859885841547957778993436047574543771820329068497963502210938443118378182130574063821355247917278337067345134512406830100665826732221988644438016427208760754403893988575985199627206608286314593555218635622243485649372667423697175098539345747943860786787546268429403490754593556324628536530180682686174485871828392307553905951164294864936603490072994970777644212443145432416023916496694849948079055070490851134133367508370175088517929342557595709706059846376397776068674721445185397345597217545976809134200874641518667447854236530650832090166623082441779944638075359734460861818357041853569917579172962394760623760635407803415828603532176478321731926298751716845827311758436057714866794254221894660144160512032003035923442578560186472661076069177078882207268779460243136172381620641599665660625660837399236890027729011800437759770103338239506078798264071195390945256518549918780279904400916647368042748636644985774231690485742619690418125551626731541309060377771441686502869413722180791438937605300620914446694166877696340967133904409282149546617119887811043654824283399548337163087703301699729582024630131211069234981874442528258288536497749409081629699407225211927198285424287175069712151796595028056925782957708133549461803073512398264274257808747410856729282759913638714623791320620853179172306831487187887375093189499323361662884775272930552717863361351558349356098953612660716503137810404514790531983718588865786916683217960710145711278882825468389167318559277792893660113281271295865163683131149656130811003111794624577346104541868093062186372226633653111389669365695838268111523020744630888817853097274524737874961115383785873954062238786816327414610729920290609895595978866676480997770479756216348907527137671885816803534258404082784952429980134105839499745502171848968424006834170858415669300349652274898270328341908053748032060213531566549973591803631043698434801342179397592573615400633261143967650754523335469650929522542438476740022793828559736614093620328520992161972940138558014313876282300718974467235574568057142645465040320909775764057286367653826524022214481594158053566620545692883941280856930030368841214758460335203270307930340837327670811288445439179611649039721968149226499734794694337689463078637101943185056390590607637600132134215337231834516903009178302384768678191198102581517495478078087314068982210861508404708292616823814460952522381958077553059537798926221238152362033589356432017331499927854319860185601867680579849865558328669328579897046866552532124760051396138266151836655377743021140622073239822572746633963369564204165567534113553246474121012656088316347537582057994949176483944424951789099405625951186494300716943342883758233871538649037158149699052418987909299567757648746623743004549565914199743088845397189182155518121044077251855558258882329535015914478025107848692823444569063583519651165604091273664766777714206047423050837339751436917911761249465517747755811922118852470871396459951674856121691729055677412423319266549829146323298326045265452591362944894413418900814792521710369728623500834094162775214963905077754758214980045994937926569470359221822978257161594229701846203393876783607198087002016446879047538646635800602737633223394981536488551009224184907031919645157711634474970277928723405287534847231955109397014045983104067697702247348408609236365939509766863344880213707596051171105518523869606941170308518137606546301080014173564908941052852219999873887584193554705174985648478742680979924908223605693414057992910939491058347236673799602575486995968040397279814819441588261514497824132170106436929208237866169181675356447393562314949922946425044049265388380062945015225789514755950589925546668254312947507665275806181783778125660186765250628024437032644625497319177846206478373088035317121218680301855934781994491275925100203498546146970725336361750820788328676240624448417239033687893148420952879836712141540469510591808723153571996779427314368157573509666861166398886964624215124320180287298833824000320842981038290611095370546592290903515684213872310934403697796499093968960481420183450832779417766664180638216920934511058908888658683490750869884777326019629479239042912714497426696705473783109545635699259406793122718789187155999271136919589577470859440471632963545756386567231932586183718770107776288706497788668226987667793238649125175989064413102119108523806021132135984561029670865554899924031298904455922171569802721951757990732281067622153261315605880004136495913018938280287837918224843510477141973717093904583020237739768362033301145081047287002168819344573071235566523065386047330694213285568810035520925214278398556135480317779361787568525465262818891134390791676648293464757470143168905188111651735527383085930521860478426886983336851667990446772693108105223224418378345571732419051706090387046208625330191886961985729752334411016230304296502759896411589370451627421511752985072042756773179163518457783200088499182966554402070941281743363286154149343262560350369299670169489507617392924705168363021887925779152123503537676706788665985311203345549026988782416045678061658586101845542711848075726648094227175791315229850002369383901494336660297906030877198410432576941334209004241621090491385224798301556744875471993445612510939789137789846537102445311403788804628062979584135612331210117505635835417748467581368127949388909031773214056207486994414410434767864955008183482431434721687685779022460066134957174661710594609076363987333337987472705024229425580541052299435242976674143483405967594716761740660694004394518884595063163305423381951679377194468886596014122386565138901293468073469596825687223469819927892912904800819660003744789582287885322978200884546480603909193436110514360347654780466045526905300422721438404839338389625989645190381067200107504786299747749471036014854630518460076286145420568295526910042748590101472149572702048332985465265007367773773116963897215728756704647950577347305747364678360053094470383169583234870770436046392317118144176815949256538427259555362562837938163413527235907582918666439990059167692006908643426606339924439483480291136352818658081249059294258887243339260399379132734058320263751335534513789342401884566796807725486290299124366414641548677666497368355413804245163580559119675311683038011139531554659395448459332947285822041160226552506338018475851474569866098351744950321639532222376656140122722786712746202944793409809052225207697344277827427078547859396427456716528194510658974162356566116523070566771436546755745920357424031561779600490346772557050633502789412176442552102929227946846519975589713459519873909474774506919536782389467234864945845124761853808389128683123482518637250077358168301390222084470039619290308031171575256321555288555649537770533334448062571105708345933884867313345519208000604672707667525270630874595839704356747597959564441862221949018029800350695079792487122086690955261911567440977496272908590977267336900022649050177418334061422997494797308753972252484145366758446839788806551475229813414791249448293257000245778712365753939448462002059728065895150220926601130531334679215292627496434470737082290938385737113357328857248798457680791545184061923395857709865685984940975590749185462573628250638507934819364750667923507026015043640138913589965799703758493496853550097568870624697380638290081386383444712020086711645575952091588232151806499511591472728015062624711823796590266981549752947017972022730677500604432141526407235549161129506639445956296563430777606487954157593185724379966759243841533835281231565106869144372851092170276331642429111462395858685042863424972908130565878865725005230643659558872960433157761889756611384656492493398588695620312778694107324445051362265402214492754127338215345315277174032167685590224739249798115805274258524256721350055691286126901350991173812746986602493257814194101572058400421539253106735155169656253823717504191360937114311050356302506523742253890050661092188676158099173193364205222967913097904626604828890059579343763559778007203002862691555303658624920092575765542874938060123028899010988506508970374108724557305370645276833923226236300681391307990111443357392811540116558428033588045509982664506560333392353937722658656409951956400125416716242910407677181618850446425992356429148768007424562828704142575693884153716727121945514888084696579665771920630120857319431608287750997392009934323633820447553353091235914686655856207538330481252738970451142320425570027651522326428018252308583037775922439684235343575407674616737222700708978627943881035706485783365524016407097682464529570068840774907237350398078631070103041261675592704752864156906015603888834946472482310004488282691594912878041556670776394583925762486312699535745966980726912812341904537855579343080899579105717683620969906288966971511892795345273870562040307984295263200703999969575856333522892616942870330202439582904162243162529976828867495630788062902532881345579156550374307259534610437975588786402390366473124467764063399319988565954144291008492687331155754863677017156899459725976528678747683584473474732493645716212606793426142033196273111089753694045588577315615208153016600408294388020264635322993634244758449522477508057552101749743765192546371130027266337960706849796646482510501118992755041564809873903453977651249891464976844093080299418939667618618784728812277565165049152369457631983216440558546847815214027062242272591503488245484725965563588870996875775073704339002824322991738178485259461386475487606435632221331440181079449437184555045799133911610524768170214980045986195331021893389655979820274903353792662956689484917782658404027264226284816983533100783161612694881627979453975401415819431534897501666112691644640503364761920799312238429304998621764364572489485747988790045520911652573641306982705021780240766399918551376422677501086249042069879590436002105899254045392930684192954459757343687373511927169987138757882478470534344512830267997669851112152572507199325615474118690930359225146245708977665194469586301811556463637273405742655962044859644571780924753413471751274989988295920073563377758845315414032364431795068166862837298523523775566083318151515231419210403748499697236745969553805997535965652999476534057082685590878170312107912718743198067393429134052458936582537776173055437391975231082715047828891577891193985668802018277387351859831355775242737243295051024992033997214100769162146297441723544814451165181482070862608303453519664643901480453346305252522802430169761916903555593493796148540663914050636012026418704741034239259974606491788187397165130597960115416182545110394267280657622555874820332494904177518119237969523812088929074830882527366482686978957410797582777844335826718261420002793886918606462903371943802336921020267888693912304473675842331932745290105673222954625282196355279480030742858381488687924662809420758827966637736338163312719705385456108830473211484752965424475140950523032842836482034118091872370168513851186786605316518082038702093494168612136998517536474418094656648643122198676197062420894937219601122646295543238162123803611093678931569680124403079125850153470106968884516528447971496951008297912137753778664433366432091319388470635253799513077816889088543612491239364825313265734035356778971472431125583520199643412774864534066842016170498842522878203333468097365071989025291361546499584523721753292362575045922077110190880542935430111937671123218310371265760306596392529112344541086182918709301107745001571614993956174415455595083177736353175850540900668678935266800580180801668524519988610802674470757607684766851826826368593222330323940212319221898973561054688032124833242609742646984290082162491719549255067413466497823879519344211295831418321371560847297426765641126407415245682655268971196394011196213984419206718217377298461295747582614835474000202276998814301996543144941664916720517383017963156961851052021920914198715903115554776777239795085679457559528269541473515981692823242738672772459891963852416020052146011246594064162943682545198704439552171860632557599679347352950490400875077655436369492060399507213393106230329870306820005398443512112136957663740562937967044964595221433477677004733890500179064422443794479343443900691295905880827993286251363905900909294773824680323850628099296546204114979073108141939831599382123879605413868781689179821308299800670047794515468439699089733547698357684456905372392625770608395163338223651941621705063081955141059451588151522473805115710704001401791406672997102880016049673538728224782873220424316084102511898368430558352965778931800061202470646921001364908832707217701462059979383049795318581479505659168733316195663110620824314881168853539956751633601185132974596200265079238750601459573212099009389793408201316947469738208478743580564169998306084779718278334335054824964092946433302967774878886428560465237239139550804862797551811693227736240511603431159483798513663636989711499683860451519060236644695137385777690988783448196301512258311173033370201535769974747330226305049695249082008716920797238481880359067234795948925354005887853649041899858404932035014024236379738294532995459184758243910645702636586436577065441437720691672408840303266268251452752401071867519840514529307561691218679313911003800383844956353737602948947778740648432715460350618028938139730055733330306122262211378935294298209547892270081196482746981892459262727765738675918783795282667393648060278794438674299323878013792619280820792082607244392582456743761791701271777124250757717960931853068242404516813308431073033256489652896374104834444709984976434016183733446641969865535607892407242605212012245372207307633568820040220378511652302603947388835632622670571096123974626382346174397904844369626920141253033565066927132967335601380201776982366378883144545678600172249619872364098816143718743063228398294904759338888752149236498085146257731931443346089629541306961277975708398943550597246018456886125149709863669842098701027196532465132642982109914820751276371472943905783623488613162670842637801882761081879119876380328937965245104029170538927088794008365142472988222078782007352827078875223977332738578861172778069157238079087522745770847087021984321792071548382031794869289599958538664628717481433929442514595178862795360947144495390191592024633126771292538676202184120139737943535868215597315685196986821865358164447766288859949195353954972249484490783248553800540984462460879315400111178559538499999751531609728830195500444365960593318564923753141507087967559100243634103144816512984157186551106988662137711440007496773037635937759002676515771911997365225361626166550397624840709147488887065151826682755743462720149624421500044648762941289166177180505969155071916020058738775047753888916188018319302658689406210352483356213305243738835855920267986757494823989297101021771348698018055325570932958719587699404044598750294217779440142027353933518322766949684762978783857736146912600194107784599555339344901962536263116593931486580577129979137691070827381959897515953280466636916924108857814943494137936239224792747272678629185473423635481708940841370804389813921323039291491715911825987757589492096495458107085716767162852755046051736178212869431334549889035268451973832316890255986687348613443622776157084883641081410450847763988857307569266095708336292345170145580764411105181886063447584926796800286673045180738739238961147113545059065046341699174920778212458951667402273357125396242350364811845139181197969038442078538420812847028376763882220974861432568869933302694469477818526726679528953799635782363188313599529774416470123240222545138952331518217234306625264779474013423181670727618137457215228669970515919963915195200469694477409663856994672656179592582399439516215339689777369666244374078481424249325008527839381343680726535907574317957553272246424613979359628856001048273527779606469814430861966539680471970464879630663695800673032452635301881352187892799169531606067516777940575038009378175633516883588872868459282164219676992185397581978250283700871157618691758700935601653236169488460193400595235048332956329755908670796329110944251173252332119945608920248668024767583617831971791843621982781551900242420894154594709688004526190192028957973447982360033163165885373730648774476252699324272711163900691331442504764846512803169856980259652658203992438776933292141626586685358831665801988847540867687924314441711094198259562356207356617071688198162672908063574491580007093682603849559105931547983289533659625614806876940650156587180678273127809421264232915704218969710877595583615883669483152154397744978955520797390114285900936335317757301583358016665929200904026818374825548277438849683995947303371111818965012531759204456603265220497055678759231929391853129616469027803056954768470049895585465457078882457106375335239797768635890902290590136069291189635774646243072202636312136645539140792209590248603399653773249171467295853321368612647673930970641956815708917843470666477697235868372304856053339938106042598722511057435453795774765152697412708760337772690110139379490754215675924126859608565164072542455680095681197910727330785503912234084653860760556135487766922639258914333466872592031480327623198654594574360879588314963945215802286907094187377870118852834879635048848238751280952348716244923078614794852991723951385225160694045048867431022101876776130977515436251786554149111835104902330950489505881128201749473185669878170257438162341446494006805945099055163293940613827633229899759029737233890708689398875435017060337142991871534343723322565739809317846982111793187668039877992479904811478995570668209757324592568990439160541152105486390934621964892211739786500744856210646881598378069241156897149236350197070069489737015300673363476986422955845497909856948950771588468174320306361082081459344369111530930373346392764372984697931473387557790472813196929615941625277698142225087049277087992060034111521258197264306182536527473350838391792670521667351203891341408144654115130294472154595439760504734654298527693028757881010874248512540611503479956782714206484909421231200744302840154853267614922209340538967845802852894518291818402254428223348987938757883373333511297998626072116655860701288306429175205610877194047037311697791168979116387373074006378817082091997150721035745075892485690188667133617334854873878020047425968899273464967582199722940390866797744858269583812423318297657793357993957768701692827350278720830325296867785782288914129845612912149498600820442867901104362600730795236940923294771608402153360173560433499083155227926746251667422545194507478387939964045428877908900962430575375733051895984759491787819441139286467825613818468772561815646920021475914810953676202497354312291370976055017800194287208159806053365281198992531295158994188271655714280308460848906685534038749876240443172199588614371933620392212145070795025318940211572984413816162446415870090090473059721620907270201563340127970624306452819517966668643581443180390539212598523863198358336347497100954789768073640837218422436469970529386252005408908553990637082491383283821105742029020939255804317619127546909181660870211804345329878489449523766889871043767582542739537161767668528354531778229498044735620790983955082338703419598030688309535813887592857140219514442920010026128297278502907928060933414343879051498945995527110206503120251128341886834232928771913678115591151330646970849101302605821294698632550144277208121513546000167560164084513754442184709255933841539924301266680228812045537517491683995815404855443473609002774716343787473711072759152718896138693696392243771647698601009826395242970737302066720350877623930653475031671000604943911491077696480557524295056050121428025967048226911551815885752743125563107770806388824587156871940742888159300336637835388308099833292005333639353009852050526474629011603931120830118867151466351878306998389820615556471708540608203322607564692642381823687872502780161707888704840214018203977654036434813971795930082770666647884017768396973439745872676625452262098571015643464630287905765424043153765298374151001666565946574662878901471272184165332399108945765271058122592856527301560258712745696840769223911160518886592923440810840854360345860737312558037952809584809236453543381094222699844698408140103538089469743678024301471824974976070842250698588494072142560583503254867967966982058126898095822877166590186505195745939157476567815714286773782112937888463298800007021846089515113409389183577201660638082241914342748567618792268605354783260635166517350733423587021165619633075827470676927225018043213501120895641023329987435806092610620301475037540618916133963497179837095838183980372011249605446683907820088584403575977668075353333872913420816437429560233834292134211136205444053552854030722022820747471374263776490628358581546906579826699147493052298099907854607326212832980167892024797005612224164555986343197480586312352152962024368443712564316630299748903345406508515426413341138755127565547145739206870731605960945815076071504719108508309190718355068155660901649255881716923126853347946545472465165212073590762068721707944330266242618805505014447987062348241752951514674525973018026367225013117154258437750681870003746941032408741750076788323146981824467640784257284722001885718422529477266054649116016088405780068014761501441168982987074760782419163624260039170761254696734292797113687820066975086485086032071369327919124177666010058183310713636763041870498040141497833540836760960996898740083855635064691865338184236802792981741544080973519500221938548633824432842665601379036465984635204955638796106023448316406222213972277732412162623935755985751133302759859842700508218023568626901551135976521571315769329027680440933835402670819704463923850336663208099135606536189273469244185930875401478221226898463846972789508195794938611996238201237488740786044303811127536766769827536759244094225015178646942180331902204641136843440182452436980761444113688491939189152128785329073839900983332578036879580886584552680642346928223382408861306330253134829320268435420741882543167918887884038920306419994251658450272599921416383568281021568406682778235512987303080930368176899979340349191248901317268434326556840146841050183059705337570380482401063642681843667465046036025092500884929042245052349973680022003507804655270175385198375041459017062252811370917898670038359311535941917647004323035691356286133850753807018939812067654407635605947905360792798785329345218502611067346648622214216365699062061051146072914421391809363502134382831241161762155126524113002952313392249734967387738408232162678751673064081689622621650988747665124881338151781264405491905980347261258216352125950498209827020264750469880735778274960581500785514425529827395440286520578859834873537921377439074683013655742876775250849700881321852647896467425297217217469345893968545591607172484243582275719638093169277905814793243022531265798662159582717961569496431725849314259175152031598213861188666235041096721556337289377186109944205337725609602889809736734000985229724373274097664009370772834787000307599152440611180108197938370831208641194655415972763738939614629917401633342461913701319990696128282728595690369826674266014831429165516595904850518019097944050066953542911762428767236840579985327238829032998045538619888511638118871737503273866752935164100589067084597290372625067343858976404448412974555736462909983792309061791076388081657315695915376020498729688094058312680293430395337607657299093358511934916391813237595271164014317278223678124506315422374722136644166132354001279227135346062345300605609990029392133117655138990425824375838744906218027819954195773138097771806519888522769671365332083753145474456542065251504306406841231054223954536787271589193148857612618497960369850245440152681459009398572661090799856616905293937351181433844534478503324112801949934529387581162633940180840872448773295699551434856785307455800842661795458241878584822791950052717643848552501315142519587479497540586165976336526915982428786826252251599522965824702674067259033300932868054304074502532890966868562048431276968191249367350820774467909425899095871195805400689786211458603702217514855048745829431104029670135765229189613845983841451671230767351894002516235886005520330472264775042904479425246434506254763044903398973204826681463820705739835459117873578669865507350045791460098056816494887729176034909291184320208275587302184793864348143632821041231742538367231246999225455588389394738132061694362166979676751121539431920076588585541491145006553451459066140655953746679529742609242397229298295862047906972857611092292196083846753647428470072708729554755305481167734387394835333808270561251630631593917550771256242502383198559118986786252353011585824846331001411654981016624017111902455440682516148348961443851342800329104848105469397247435922748545547800510918940546681552885227340394013428480212589217805387614712828547558855981775870862087433318293733260177798556967941554282041172313253918620135310168605372424341286124676363004754533631019280722691985327862281316594218062649319137812509413750936128003704167168711928762865444987531215750677198307446335246001287475730607941476572685023228427028720480691583301039850378466871407699021521369058619986523133733995872720763633154489140307194408177369450621804964668390175289171077758147198737856108982675551663466755586888087505868342641460321256071457552001844853751032262542280873643413920030143415687176208585567686263821501307279686715070758820493586438378927100900753489634621255653587281984792444296275044084132441643397676758424837815068662608404930119047728896590382547379404428899825147457323156315505684947891943767389568255176885858029035993500298509902443302537980535888276848719624936680875106825444032008272692827038663519850566286396207434659999572890033203755699040916832564183096263872273653046431790567912459260233159540843319655507520659001464606150314577545860371643990825454218902057643074141522047781254827677400239198777265696697545097995654898316745952615631923046655122906873687974093748383065499092716557794022241209051240586409632204566269760781092625818647079374073555661391674662385017101044370023918633890192421811474197005576225717499730124980012794418335803759020256785246844536964330582886847078834452486794538356947171956729095211683563832271272094496504975782511712225513871470589961268361158566447992421329149981863494166125733820767311271333918993243027384159040758012659579411468048928556601133272523040390639891813654200840332866583992057155015871053053383833321448709098181271574372586075460346644398440156084371178723821767593156694549474856392054843252165679631634598201041919788052793497715059599996961508717010347728056701502686076155808589035770289994358740418207536133190207084537460395448767394699301521823810494308159013173015819357086655342239784018345696692940545814045852233124813968598735037033303340075531707868382948226173935579352819272465575544073330042138494929316466883826555592694389025720463683182730834991725170260601053338513583723087431147698690741242143859447425126486109128431722303464126837001918387455743548402822702190264682747324115086966747163422229341158517548602310275982230215379484484516847733086310655468501338029896608208353574630122797728906271883516519423243426644365896649601759895368555010379204893606430152428319014635588683191569951210046454322366645113663420036113299203687839663002594830237634104089948127615289599696481596618754417922619653595407862405182959238029737623272801908384804129239910951035209141591036556626091717882041508335010015921789305225039257648208352428325453769021393886603659349858426208194207788775357970375290841332467489658863844977226216009543250396057003860502319991876030015226160032989381912138741244859157413946199202707723528248007906132416059811531895086090429706413316690355762322612633316094275024701364178648829400102468009054712112356584972684481303588772795034253891232645187846575574185690412921338370917000877452294252390841055775955206344093741735066704363067738897250731845852333498085831067158020429300756483401876586371331925267891549449064082906424666780690150299719716831714723526640408044812364251450549107821380550903087177732535069659098234801774039110347792490747840856734298455363805284822870392956850192705023246554610478421757217800501861237916249950993871838826871082545897672736981612926022645978793385382105599154934783645090250504508433286762880357266766676702837853712017367437020512149626050886688795078429685547015757568143780102534741144248901906297348845095125771001095232839668447242874599079868728113097502736346375906857678420528985997358276081223665119902326673479848143763277361078711446350880391381321153505635429856523882834212224780734192336637845206226092935524023000865715912935519522258272651860711078895711405677560857178909202676542819697466405112689590664475801313434298589431596148287134156471975230436497007663923454147138164179766224311851327393300402742298546986133050359789994137263120627216682995155675646501436802868769673414808462794505884593472432834882135570738764119323666847701477722477383479297964602818362692116816391095154850828374812098181461844785580716402488425928557837983696375636761427231906739087637695003020833864398912073473094786196708221821701399537006805089623889105603844236762629955948023625769372680341294829357333037613335629464198422450430487474278776487333718277754625974330528166317563883509737252573359731579127299085574320925122749630036357448889187866425732215741689601369704159522149952657224118092307221857769268285225069040762255879067610788422587936375157214012682424960656315817035716330505503214799025925308328095685659349014700770239926641754344163061413889105771783729582808159366485758852408214714173386392933019571117807404469731046612549854144532501277352524062577570091687286947502130853520819322652671883561120447221430669273959277515703550465032400413230750874439328574665618666125196438895822659376109466369883562437864192438086338006420678460112743416711946846044969134512803976087668290657890770814008913926514065273724430069730946967531822104410175018091713447426986542621842432354960271090737853592011998239264562266799645635273657516744257611892403082867586808220144298436252088364669995455476913171993965208499216846139728814366083036988367898350851996651641412497841268385638854770451750026967437009873052291594974783003261223148468088226203830651652441966542677688405421616695684332244992736776351603028747575020684549209722025394249756557725549471393236146032884620140308548285718298062873047001921139237908592471085928592451496571884337134170022176156190701353502197140231835755161254309187350366431741397011655652039035920779147678291922125998590721727954566661337706156559957333506004111061659031106862471454431082061743681123081271339385396993534235573764622665085378960579910077594091733356128121947457953453653002801666676358703266254424638701716909630991138105109938099791161747767196418675565077066261518945664207523095759213984487592503727303068022484216261780946671850230975467057419188537878092507704277362043887540476087662826346930856550744175871373498451549816640673318986619489266724368619434757648404403992860331168876757071736673969915087999092931780027889502772904076604775800518423254331994854638157938585606085068576537562140188225184239427443147557448521072310109459721157732458170993284800893764965172814939761241753752164096176345129336533466041677625155734557559970570070168758580168064317115186099670311663461659663387662289982242047418066873261305643268565103798199401168091869659471044347110300051282950776124085054432927461571489849422271917847802383423584984245235637778623283943726814959117931646662174695908378509541773441318397222727797888266415737957947582556428552880302335788092228725853535597453228767134350289707623958964518587245704197555411352431827160561786088482046130925384332635351961396723095533375854621368495990580472773085439369888773532637514799234243117099318724362927692750860794415902810880909129708064004874199372066505932174772967292207009858827801503686423076042747391461832140058771021639395843407052420086172327399510232677898123647483533751427817503662167561230664565200410364872513453570008494047639967223870745825913382433692079088785643234252735023330164992418427554475577455362364270787412875765925593852744690881009912297546774554451078477681810161262341577653570753145307667680822623363365631522230792855961174842602303787595769156872414445351718221328221413797687516575684274580125518090081976436546162646623689064166290144068713255201802328977148929742716199647852775507486182744972157592545368304730837096257425504708779707239338112195661015412796671525813362411726828589013122613289010231985567778177480440376516583873684167041544578278722594348060573446786121602312473152437670058970834239426453243692274748187069316210998423472646499551226941228501862663381278139933220040884576996512081756538783729011799967322949051508703346723763643372341853021731154519713967274571556251578715544765714906325578418305830985209513647878160381625020870167010080030736901593504473403729599425203873032901883960081913356198289569243493517055285065121853935415630110636176075800090583828670864648189240450509784954514500399668690893443849766011679896629553323977131700809655635036447117822970614559743568655542625371130122258723555801639975412014995400250472480157963909667131722323072387713597225253253400834773179934916982308160016961233795053452329725202734719344682624107304183268748609872775770741760546738466939519518344994897563289950668072444240406361799052334474760355665288507064345206227944448330228974172425976863635613520530471023677201606775715286535317048212245221081953206483889330192240434090424565249661525269665952661724940657631958622981980041834915252314968823220909469354340443323863950640923893181987020502791425919568687141341458881875118815900172230112505019327194484547190603829987101458144436076556735803997700291433262204190595911190051752734755064470913630519907639782349925815319067928683941905154358348890365158035413609190846960687220560892400609191479410969387810477307532148638916736890160206248707632413461081686533521898920758099792976486599007970902429000933088140885321403084824004434474198079910064341158949870653534356361109007568244136526997088913420094179912862841041933374395243432764570863263729655252203176571670576569881958770715349929015833430806761986592033248058095675476654890248908754185084511076187959267910582281041013244420028644990728583281112244329748990292486070808481774363993413827992838068457798429680531789675872474629101616062170183214157746188908073673976326377914966168117320576039986444440226868284679743863377735821406911335219969297115591261997336258371981369979620395269574606896551945643998988240994225976666880594626389952602023372920921916108266942422552421957749419225932741316426795838670908354725818738231845034343899285609548342372427334126792726231625481512917906492975497048422322603643407135947001316450505195228395240923925392537295457229058856222257097811620522784479682929923892526730924364154704064418582384497240906950191728187334702781083804018050019596190729701967383784972066446130531194413992264126451412595099798273413439909503229291772679886580868621609126134111228429763305570748435662668206291534960580254836004790311787963905592385954255264916158590742352314322025513029365462092251542181606145344196264916668235506033293405235488723083039077909799189834652062898120872894919312661758523381972972054221187902018581969512458566749088128924767663439555260741919527051319480285479535555683636653934237071397970438905504622342127561465046700861435000406076707097997182149858893056579932728412449057580617469044216230279815658770386293637083600536461610802034315469657718673498780582855204817149635852230451511082905530939376125402465340048407214071832217199168077765636572679587321030600598816924059479437960011792115233344396774025154843419614024641489103458061978347846684975516120845284991564148867504719977463256891191853408885825386962529021971576067296131547739733631894690634899266574650600328113694104820791824944541669026004389879673064785495296031022892317706982739324713928826511781202535709850819208322463125348185346932165042814737823187793951552506620238098009693428343680366516551292254456664739408267017407703300693998386832717232102812269423167430729719281121765325053930320450684153449579516929593904265570745980159709163259025625374008461640328430382536968998728776913760559640405143477239969909286855173798863548877921619913789883725629655286597042654018159924555581217663622142798415791785620249564824119271949638552178028462336368432378818669292813217571948741257929045290674771057687363578848656636432644671673454460836899259316383182668661853489857839181129273175213371985485373869982186037372495490530921688311364626941141475729355908585323125897255702882079099330920260555733923576795041954570242776957805602931674510301677471759490919589144011841548927172622537556882427020727697469654575759690788154905746845748686050803479570972221648872091302300899526870786595463709167636815402133147494661941417481591072459478859756613444389639097364108855853147391791933972972954697371551647203633750948151670939394371254082183059229075102393519542851408060261151781157067457806968427108833906305556197877537777352099769197411282490217521890344379067924079644994016594962189675159304709270285654871078475673546527242131500559913596824246834449423212119446181112107703200138486001909160762899545017444205158446381845435118817940730274626068046114122940912905293340352031224108287941079838440887654478179032076727084184007159511479303892325969292227183430680360250902544874906153681576514950828359578878566279860037270113652515876378002960569098872357773340870829246553369795988677195305360787706500716447436726604400109455387161026555316684106469865221202378419865181078962954576123623679965124933533268548685614227961259558194338464867568277418644133811045026437019751686959885462523844801251056582359643060493489017260619671890729405772570809397333919545126172082915178631142993362595010159752253867442670029604148480544112777474941844136308920573382936463201730980179554920558018882470601919259983519332254299312537954338490661512172667833247086289882009979774059283107017587127572882977233761456795714906060479601712622264671069608263933675977699359209226508687274780720269406086311308242555936201962155261481049165797407608511033752010819885782591874157744977818138603100622794742818083532208320048499096118824500463051789323789531503955629909445527950034086227287527018940143866635137484231097726583092538487395296293376880420633287240650221073759670448886339754015537477339680108443282686624780714944756450133086794408100971317529860725046904282090064584826379969823280702788420470792480493035495487525425516167097340352313270170251028138081205904850356197550631610628748114005226660187607304594903810474017768256177732167770242812846946265469100142233765871922880168099302587563057388804606690416868583331319332221913917244435094875819793720605419453942412362462284722737712261469964117386744384313787846204666800653731058418258493236386275736873419700772912030015889573846866818948861199625832790241630051811021823434941072950287162548321958733924456995153238474208428899971759471117981841499145309004072452005681140409810368614064715197276604140443611967054256052329551434184533973588340303228761725626619096420353893152966310858261687518382994387600723955128082666631269901151121515194333344490762259160962172790863426515128155334863955236012647081877439542771706465301938667874798030572819621856096092861874534843355400365859327444864712285951004324776988991791912495925233194714642267574114152531798863133565289411779834423964855806278553642431448790209585680276059151484525627356031675204099837363832619276256275858491117982544784818069874122540433769777884131676276913268368890157092226394662102946525873798517197686286501740915125195000306924600939963256383138703762043813921244828372736660570400041833944058047029960831678441150171817538024793281893317003561351420138323173083151562776291394088602571397883034057684741979127979719831291225817878867974684883375719480951401219000285924808487541485912778368869901884234696856662541109363850121688820060206506100840376982664018983999183998558907720551553223967189850094348706628387192099762167660721839461692871148243855107147438024654923966301773173784346532999506243812900991031371086704598926053548988508089704384583461830904436913566297326712253788259694275402229733023762418262164638208842640489125552381777112297097030023030863668798777503318785037274151137539369835514863035860426783489194274898649594844625170023829110298118099346157768580257923931772970858369607632954544079500699688965685888944440579872515031826511058710859523466025525215299165010387171483632572274698930435532008840695746005041955603675113215087552711613627906827411342282280467104293066780775783019865770136501335119593537967888711541967969656675852717858198517456520312866968983587177218175405722303675273346231611143711024472278521387672252054929037683631335663851998407299040356093798899076906499434145407864419018748865861001211263696970621971562285930733158679280145336493872994189313635044989371619409225181312787084188749109462455297786148000144353821743902842737456794528868083550754246897755118373839464118533287949823920808099654879498535943535143238278082409279852029367427806965838565335520339428081157117256925215998903156039711459773752291925738566229981781697464074494168558363053937542073053834676125058388809009858324043683640657226521000508694223331795276139594306427382414830378961130819167138654923164938703804721922843318358594025151332842731254967238886069633256129268428699244391870543790407075334221948521834285557170013017831853196648111191356307074283934624121179343087067585135732509866691177009251740510392029650569042564432575677462689546166601394261719404993441012236667543674478244836110200766177768305957464875418893918607096489112487858606687139144111952097322856106610789942489238218700642196920401983170532780745169646388790605335599194799682270841784561256086460340865488319921099543682827148829441136570503480088468409986102474469404697112532139153661564637150817354435097606792001697533022905693371368011725971549254199744903351152644009513346945857033166469721609658157025760541345768293891576384803128550108339411091450635316638096909340917989639062630876481409271843123060320807967511880337428298329454629434498531407912418200778936184013732878860881996471323433096357145275109878725345659989580702981269069898453927039144075112347376501925070812399356770083169435003415529248917667019466508490506337548978083012692357968264391126726366393223301871121512750669270083954181359224606171128791347000799193974897047284200901108577631784873218349874411000382087158822769290784785659096275668872076422941013530560556914432971108917715503417456880579241214019300558720486706344110517765067484811430984986867030380605562921867723373377939139593672687192278191860531647994512914350366096334920233161773801199619837798590760213609242587032066109242950189850711576352179822655030818394273360739148561988088717633307716395853608768545969518406288872829943878093481856736244680917371088947478662570229319106286810490524663787719777153871234165564206806445815569776475513969376272717626321559396801448792404874143013772173962313435872136396893224172073005474135832044223195214829692905472711441981453607240324018768970153593685397327778588320417961432733290524659566487277157496867989606677604149239973658367357392218928513078001292818300850810648183433168740879796183451769018109620745121142754327720333903351975158142513737605577996250102795251624638051868187543954430123457302165825329287280072185676056939499483736017828824991115399259001651486607693433152057056170593049221449269419946338700988467021872724191358976490379045846914170633777386007416261805353071175947324912403993098312764585471096134262287171991982452887858981725879796316189449531772051001818109808667667311037600341127791291833467068110253700338203499205043982743550522346958839209163674144697566078258575629818241975883532770483336840705614567983337705884874691797896108027148119983794746929184518154441591770253332778941191231842230340086216019357855183839449501354669455084205351060929883268259153055229267491386771963348037306134359353143829775904457434151623263100204846713641914720070378610684064122605303292890365230785782605414248416341207557061359722557221622179177179745595159406092081247943112137646951029539201531345146321676180133161130531710295980379275999587187135730349897621344484750570876600763712078555437177407540402598947145161527340718286823946612181228500391689191843699561885439943456916318874277463502805239759803543569980102564346752461587751085295615301971225069393492947687446140764119303059844724553988818768404769333948852840894216493668701844831980745584344904227898200107575548581561020473261451347444301429939152878967027143893763878942943103408833563616682374737874661802304216746148280686542144452448689144498654546383850349749843061982309074428882314075302759011238168873490254292436928740088606440536688749449626137234763684450673889696699265070705325331192803251894321458522085438562416927268964753150298910804272649715060083655150279694964701618198765431194382757055753007294267115723227205351926203198107743783249162973787038260382657975774408402052262497190457941873012314214081039635308269452939576190722171520842471696210610115445609978409975203961427632606308135488076152894550594702275318856224451973056581745551267131354381063372937635798239175463387067056309800656370767991261514190288628922757036056385154030033944036415060026280746400774329558747299026227804997824883476969244860664192050994061244612974869641246760912394780268540041258280946033637260167671434367117998954009303535994143927048532228965621922741122471901240271067749916975587962204595687150247569738917992473992293604553133590468712267683665396499843058339706262157176085913274318835549708728101354469003049294959022077045277874044170762932158143468099493064666165008269093909884482885497517850615597958564536931386375550789690624020128843163981698517827981401062224387186387451001711621089132370971151474011036752105542500063141103994359228333326368245989344896504729934772916004575248578776182493111777515361809986136339626508710770909020415462108408880148421502850623710599847633587344754600263779238271733224192169257502254523543425744377015386310058675633849087938920320103042866983508159997987235527149950848910988249672745088022920517912107480034050773840997392499476080940832520022927002715187194614950019541310136102673553288207992347749899858693133737440592356509438906825116450716342800879566157163939148485256658351743590185067167279996493834716652756394154671232546266920676099027581845604425388893643110644838851148144107894452340129809528419030853903069939742079629183365721039613979070279650353880424444905109602548295734816362604808795652077152888585009297857368331738522686488682366231747134865604936292870215813833398071403420755719995312083900009505172154497552683544929752860359969292317301799610757490096010260247294474915365320373174823206192007047387566274139414427966559025949141858813711333310537770538664748940377375706502980547284658580876972330512666088164941245274179925334397123276923465706460415908658720044642260959228922790716035384278832258888792613349267896613802399490624680934372703264702065078727983222439642677556826255996973516082515977399594026197973855693979371712312184392732955125641015581318204048051847178753131496144085501858023829611582837155875216401464158875228946472739204009750644883891705562215543116946837649498911548077150055411573528494922683766641417938852314158867114881032626283355245379357959026423496221706098651793639714267723142162961021526478085105171197199924791829452616936651273551839462838252791516995817054227633262296758051701342616458305655484253358907286394662989191245021110512174989857658940545519963380261540927357760793358769178898665978443362737951693818464378972212090644765173094017139486174524382295934180626691676237778062291233632143519112627536329077836217342594612134714446690921145534728550570834957007617073408192220341527216733584497771704649775728869572441655327302022682684865921450221748542183263570023577513236667407396887399524112685122080065571427454575277944141616964688724621816798208623598128726722907038998194706608206806935384593226191958561815638167371013988208843832624875566023317321705576730079599330289547817010129018187595905480845111037643931306288984947298904962070353717579587579054133449566291740382443334040183088292719344325434420244511302193697986685556501688479846797834779883300133252161511982741345652686802136189183461391299539797751261627688195955588164855780800276623823361899882516251072372375879264206094556217100998822031249656898581600358430787208359128724101232238589207411184213324871281792217675819461010270697565545705710205289907197223705903827284091708721669725968608476277382715289100319403942011522948383966168048340587676245277323870608307494690498560335441872176101935741808967988495497072917715394096037293689477066383044022092093424571038814786239231477841401637098764216041026884893756506585248166030395659090999502632478461804369638462120881322502495013342666193776340525828868611327877194683972371471681006856015520108972536678055851185819576713122751551596316960573158141018048791073367255155251186746546223037838307893166786981643660629361305558722084704304661092848102144629928111558782859703765796403083115914307079790307617784290280210409676541251604598304581350572129729557269915297381622921124545292891692135540490090999436237485040862400388482839182942750613035149293290761174582314176343809075762514341206334155049249784303838170271579793940808987807629470334776588098531224246485216590006596420237265729965128414105200415707936018692556719492692153030264683192676579429807916890062207458423489703590801645890100952531129069955714931458255454769138300580022080616321008531252747924467844244123682732693276414878008804007983597027786301197319955829298371590071528611914023922556841932520483715056330153577578470149925922087984357252475113999176797099924580345141525509325773583569853942983919283572708051940974704704592462011363028437982554493062698486217607805836280523010239096739383278537256360061820545601405562169898839329371930440604393127515226144705964938977631842374717739586159687124060171287280182210359282186100059221388885308086092334909987643502937311097321087350462596124536058316583621445499628122389660589371447446755178229044158293109444250728910100534621238425709736862021570282187393662711652844912184559719619450437791532249249102834037865180599566265526770277551488244280415452273251007087011839596297094199707020088893510620237781894158347475376446269899153303909898041274572494361951618801124685932724045010692079165133888508525593255553046421972713640301446017047967544016771373133448541740779569014491723687972944451187042367603743049379898760906055392399503245362630425234191916302193087178168412401920659666875486074030402805961875384025352674807448910361742520296583209234859233095196546084184807845784425592159416821793994589934639669513357867809780658582430492514845674361347270849121913811338469361827692065986561628411058381490643277342605724980015543393016368551613690233499643331707961279689827792024561326205984730839321878753370071895177463639447751012912225191593204706292768629876233751132030792225123710916980713770451718704056017970068772252349848223498100422216061540402808620287401765449644250025942023470979048460641685448200089994236849923268085348670742957410784055788947299059837822375440844779141319706603485649730537934281633411306390336073310249247317837231850773375790015976661341714477880775119829470166922240285601987810575842549163733735164427250597705202333952311132665228334107804916160270148715151309202498623076845269488244000143020295970975937672798280350334382191208001480248679249198437290186778774754747233836982391563082134569757881045735741137389638109405456102935814428742843779672511369443037936771544936887152295188880115970473583504980431299129871005715329527125071668943465770944860957521285862916059150952962266457139753696311131195166661334215486546332286115659300907572702878933790123803185976074398226092636443622507803408756306946606766135017219318600071712128819768774522255504236931006040413488302628190641588761617966651615467031963754082434236899070008965399681865798271007057658805527945551567898582217065619742508387436512499160252413656586134244569192912084222449267833275105686535418673807943163378330874986535490823955632128146858837696196578857970827844508325326826024862195350446238260088707598401113430405410532522476160887502435795972790506064025677786303386709925066119039090060373123428976390332610802048064507075410431681252072824498660453090729146292473051229063857587606207926029852616212159054360788225363108040660040205219779750763896976031487976969210944313015661854138418303811807871263888979448100892200455701975787082448054925999492632954339856664566371795676471440607487338983093062553945943294673001926240963832304629959851202960819712558491643948251409636913568393965546005791774072853781796875909186062492504396827280171001843430152138566593792747231464283423520437993080870179038545074711677063564149682691935003410891278759213180424111384757805714420592011311627572324403040032752972576496749511984926329926872604698195216351136058936373620628075910190652304737924884655825807347919380464985598682199368887339464247835237278074746137101963840950659022451965090708575575192003195095345390323809458680484002066466715257595720628996757307059925631196801943550576741999519009866217148181377254239536567435855954836237919097689872179794437964797952501526146539100977830836047584983907550805616376294774908924348181661489251411992527769414488214480617150022168248700970238168608275895922350063691808853453506308425995067135845882796309263437209759863671590200650478781779541098014368585716814384042571882396761915752733772279512959455786101391219685272040282490459459631840481024893485760602718895667845303381368516753612826596741019948300351287878298518157340849948222675468068880401470497430237309023266908557851072000300881933386912060023622446575851601640226227237731214033721343449842483694906474406991638202639037834530933374698239842127845562354174151639836936778020928211493063677204969628324832205718949897338783320154130924844678898101691984759952321408630348411256939443919953605972882737575897633586317460596984875309076922759422165880563088795956442454075128991818177477236393767359302251135499446822378961586989769820603158813338776742632569270863610332585235974467101003242380760607510321433195755389191572893908821924617568318126848578439328817520929652744103569210766377334563596426421215087237601239113757208747810885459255704766980763490369219223783554920979179617574227158813095292451114196875388781019614763244915199881059818915895785651321622943788661640646766956597624246137510794342677503117816919344126212186250061771128401899029176905698234217865992204684642940960673351630303873663188030106259956978885576655047731205048807823156627040637003906729072698133552608881896392315471187606518800788417442753577976873968869594115080398548771346948175785678026829395635981117443106162962629953720794062570785295955226310357712784690242163979215925321546376459870025301356413305503478173399000208651158134817992274739803023377946306889258629492997652272417768304318144226526614661186269509212421923355183541536726964299325929858238375067247405171453081416263046215676199916180676428208507429430259433123493486129148588205586614228606014662008312163291237938198784688578056233772909348249762718898788459815228569201645035005974883141066264300874706108801839560448647082172874256626463465318577992368699410978676028550747804033560827664167862163747685023299336113346489001963759310635458937799654703721089676129992889791477773016463856677117965615227925469474583163585530020867568006778286454152707852380564472079058095380639090696271420452682880735911734805961200325845805080173902394389597178971803450296026505491853259045957129004439964766097810383711466824380099347879575620821824598676927396490566793266914834028019530707023509794431559997153655751626423627548432847369005854700046353627410327571547009658584147055757414079452305616089167753741931642305160222513377305029933118036055966377067912380205439864044585774953768366757140091599115846077318124146411958116868086510296167533446561332487820446491797540154680919573858551268105742924411307821745584538195220757590288857652859241197020417988576402886146057457862082850069632444625079067590159327198577771157093567633509169180541688764994230700047099251346885850882824352332658173805198915564102368162390308235007758564031324398389800672215504972358010438841325967602623083399413395995941298819031417260640723013981226371453044205924950144062062156969400912937051050147500186433819160027846122782036743386677323468530577689188411774880568868323431962168571808471070612245692820255650433717191705837843602124189129268087021548574088946611857601154269866950910563800504296768827067626301586114623821483150360030739833580249583939305260812989254810476376434214591807798460483214724432514502501809807912066204523032612559054364838725752885457269362965937938250269326690074879266464507173056775684262770811939305831719404346224812339662397442996599119863107308616560394100651588398173901282780542980458830667728390403261156159969916619598834301917612091486517707800412974801615346842221709331660826830788899231188351261382649627199056629829400692417347909795507614613985093960840637037716630087023693861813745239252619062957879549696644096383881351325185235224851083019271764886796919911888802898955958420598339367274071042237812654295210710694142569289404528232356742447218887910754012356808007270270623506632847865316088147245007249026598461778333907708802571592197291980865817944952487108563597902610138658459315075299955775302328600918377099222639463596945318262222623394306271464388261272997266766100944214196040229346886011144848018710874204358806728624530158427188789824849654439980487907406940990731550815912293527562681642847498519225896211457936557755235375228202368050759373394530250971339495697405261798776129152237298167903790040214363760200551506575324134193569799680677804263572236510058470043536631737195168232061847511950017582470837808940532129531392092492773943349619290983512271827454549620462716874644154910693300688118362768890296347284076350070040934563214647198184352091176973245074940444725540123353353582249700982082605018068241470269576000909607122389644347016437862256030358967556910559766610497043699645396018387837690982947019257452895639733150264497722025422035205141631231661569912217406736826271109654576352182306433911155916044079371104776516083310999739504564101036740823303465531946730993979275417839022646459869839690027875766262309428531414064179778518080294750729957532092865623612277194648930592180067532115611979834658020332102902438220504991676336655589311535431275937385015353826066527406469498417704405755398134563705814683751232734388110018964390524148356368440757777409827598225848250501320744130710010261412793604792430848631713760879535798104618589085686601466938916642694203204269358380900326766907170360502582398747630365104027927796575544243020060591996396634640785209024600984083895049707569429347973493244223942815144495686767868831944748206026334645660319419680710190349495344263464727186903175315189107589722261326034694600603086504135095710807643487517933737759308952657030297392675685500620444396119076951220625543277232381776999868199136436951883686220225751849693098204479964102577580834765226346766092831592966161573488889944324287754091380923129621190661525977290357522345661763969525743699929508950529647533377453599453449832378240855346601224835622945662810931116063857098106991937976373554920335909205403743263795854274597463803882341116196418911487944642021198949022707270538992282752982401053113162690203355177580464952530736786732378507588890476590380703423234854069568223264929910921890448101888458394219338720000340309806851067449054689364814853836322998908183318993118421983137660510377972140321724889260883209015715179441415054102403645692960209889351134918533662218434941594768020516373093218008489539209012405130071179417369836926871920248659478434486725749530414844863981731276612563672587368949497847301603926423494213906977845072923596647579719988473256199870988058913476584613920399521974550680268331503147621253366153749642597836925880533086197646090740757805927364829460490869349528740907921033962471000935866116453092069145028935465545166169379579269400416807950276246423572677997899691026029087535243755962411189606606138810235750341013085516818803103952212173551825674975427622054527084124301814007872994095216392097778319610200989204716555043626300459226829455382073018231050233354873095958345670825609589228859737231388964856196319502506534921493719030696799082796326707794354410416733363037329047918292248260709489219358546115379824822048987952377796146849136637760843003563810458749705911222505384467616328064965855888046285187768378041337262634509663548653861049278381697530749604224800065278938587522462840895218981236423626865510620713218382219497997578647949927684134615684175871612596354837268716879884617353390242832352420050164428459911490200022096314013797305834392427611834814208907276475892608591514590222527424223668947816749433129115265739542960795137032619592416654479006331350210767786912062818653013282890093248285252878390178713019529571743701105155986760485750000578490617130055094723274484375106512586478662138763221054954914451087926833726409485177187005394285697450165793530802738148671764350804860445083123495485429373159550642763199278269826429462092880172870474929572784468299605783784137078056500835746306445999236942161860908009457522225431619954492093285088617362755260657754514620514035346383656071866217844504257130731269023361919791156790343233265402718929958612464801173174715391991161084055307117170282774476961409880547424527523840640634115667663100003376007988255725973947992533374090532995025805176134231244532065507934155231359775711112647104147237252653419386012057221492567800336243782687100815845271505306077316037809123515701953500462278620826921242073614737322762287409119804344621385026772320562380521077597207826461299220066631681611267022247487441335138004395621141533505776609842787394012407828114629822391077190359844649325138581475896023183272368697902042531382222505979192521235580663663347134754592470873399028272670758971981083483869070326903894777242421940043409631304685339003264794453634974904321191584512882149142449015493981879255574316691709839967028565883001615719643378371634438882852815009796217498195364696109407692542337915137557159514365364684256403634140455604356150986098581366938010209147599097917256443496074690071911360073486741058752370500784582547723289734993144006311832284191653742539505850112777540025814642164492828602342752200294042695738714604272241084713731791800119667912549101186348895572289893837119134869223107505597251376202950384073780218888497353316810201589677002177307494955655206870685702822691945050633755539360588288604711866067412221681344899587664949731859330062230552599045673403630789862676911476722189087129572059120799634422285905849207984867249729951785681346859126470482323130542107171448888766002476399820339059754467714548192268219314864480297681295611697909226646449678091153366147652042426301598615969490010817033635921962843794137590259796134920224756972450224259329974865894501820932593492743763298219639690683965737764331941316068221993538634427872918125343682911797906832627493627846017815677463451814892133036673021512757928936276085451571332435737033785338705816360109156546436927547314878922250218910750293817128979819055531348003975990578557749871112577138371776028491568132014943308357718062042533332644733267060637667740738315430612917894321168724469219786694484759275414165630430484996870864571925116362384471692061675777454587254629174602888847384221985811291577392228657745674721523829520459219701409696813368033798711135767070063886907218604158554803143441639815420169917775646364059314493948353533503864266568115812773260818560453691301667192349674584514362295884777941566892495629371576088823887140164479966985689028694320798863930712474379427553383923066063353270007676191881512637100813920484825289862980041709243365413872156692504778492238393256734462550115955657534607588201172745300399444749290764645270371027339957894946041811991134049185157119898193744137625787716572009100500669261133816549604691037165279392598877671821123956924919576279393725998792408918744126557668199796141939383458312882246291130291416755853236382169600437811362870441490793528263840840863134535038074994662219793661492199770132149066609889369110745326878509477374611203646697584837332638744697052151484900777050268758130915665469215315688336010925561456230803316586048860147837701323210143356227545532021215817394517820961681861679695321035520412106568612606301569407293344375316832869037677770772387681251004763410717273956126953117328567261256937066959290793471200879003901207284456427618552292242509339230808326185545356259761300855922978908039042872500587957916814849218579959023955816270913545855499032616142044496388256545017285084190959868165834153908252265173445281589739731149830802020022968162339443733270560169671849163067305282516666175738739656357211941297693084857855538827213277516533871843006071412339690758199019666373396391817756383617765735494092117436547362706522357121168732984998150828468262822026432143147763180884127638695052721422758788429767426375459744342078280569456592848235624017912508706971942661664537050782010445154389201476683419602850109944738429186652903102072211523055216558998001257752934948947916861051115845199635030319989033118948799993116695956665367805102636493049323327472630283814149378589362035339486508481285413192682041678367540666821364065309176600323586263315268731009496038798624693241322636987832136630902869650522353997413185570025082053423756016428123312719397464170230780147679562876759353133977320397769632849923463300662566485028109443719746833897235444275595786326439191357503274156128851826122898047932381339866823939155859726921937878507019139650887321741865248033674997950219699036491834548611788761243617256862339888507785476838577498790193787991232095868101688401527120860646886167223253553196824828787211275371800842988303824204379275703609109345217522281825611308322556369555507258018445401114741552085009435925470246955441165066122180438699040104447468319079196794329078482235237687073025594633381310869896707753013129121070691861239165486959510285377464669867489934766876610356113575252910535483969995774337726163583712168542169439230842009011818666456476947111820244195630675083619472240537338229156728546124352263597045321041754196830942132121874995301847847719887085379748164175592238617521083011886641194344584140905076544893479197762723891837235217660564759174852220277872344909135201173801860955802435117466205592935620365708081175888972576717332215695764505263612208810746068432506107043807940262211727710451459974256084764763272381679880943280883993900261520612144759714201907192699680513049160098731312958900055715529995543282874708760603635972935552045791535763626656918122370685481553782276907210279104275362279028639409857908602454627126944106945012305838909000216219086429507679412920763642657896035996354869875285720347404319162729313230390576849621484579775736966394286842527976124207038258392879314693526420555399563281482619879454621115207814872665107443752904173917740238422831559078624314551640434335190777566778309754527330284675681677694212600841697007468067908487895481579204730966330528765365780270990767086344138422772347310701153427832740749926726928104770677549430989568669175522573408177738759613861285389478371377179286124352360578588289367113166546565343289937148784761443303352098320161026864701787808581686148750554908831454503186441461566490774603171055315971453011878411798796473319361137588079801967738938249726960361281723659690222360586639917512443715463817925394125405242737393292675101026232433857138591517822485478478259561073306189479381572904434215765204909053917370198591861617890140796031896418087027316025420870575960253101280566463137778078092749303413919140344666037738286501639247048403520812947378541455497343042680682735549786930049951886451872037987315461184486954241460841161335709592479626246749999595283910234538426034173593299538099494675991095575139251946418658887614282284092670047877116225404067828349122569022946026117741269356237908015943717933954666731667804059114873094056527489412899305859536020581181963559699442082305781585526574497755981178069912059877021003421164509821261043061055726625783698982270271845424324832634169558518372563495014082783011770069704474773006860593881802248017318809355905552547158300611080542618740753419221791279580723897156307272113266323595934578710826234356026139705470264552363484888898524985121061768674949500448179385110270214910087073021201612648883681440916787879324083146341264639647074074975248496384162302554189585781250852555603856285542021284330806786759105729880133461249683522135082639654445399720978956460105020860187617659270409946048835504317885543618697824740806907446451831623796461044184722743234335044671354100439456348737274154904046395396065100473308407029380759442281419935703222696719218691877064253133163160219530783914697556382312881874771458563136769670952483154147815459106691763943386257496368145994095643739961466049294900193720165262980984677089878502628656360680676991381122440109324798464292547775434004893373685770260682787643558223922717009983364358884647715501965405420682094105364289591067165443903115945805547503870235546271210558006282390264157032630259247334525091671041694050219052631102738937208062381608253986450044322485790319901019219893072558454439217042255830766072142418843770119001289178176877346994268813103718209795126576348642881347931742494950508157431630566116320423678473129511865017685205473426421662118386092422844612299751829636852489075653460853059399775345128016046395358131994930644743274330655344573047147739511299495765002373117828470852619230854632760383739457933508276809323641176879375585748449422023491216448163928408852808163642653881352930395906080199561532568646032052725955466611463299088986954360644369347445178807561684035460875578654254278145944007958974807544827394384296059877107482413792273257577177124618786124641054604068727039210897437378414832154317528800876835662205295537240620518353016382355881562969505811828707321997249258239894619768514542025299152437235192147882534299366122647213386695331709760765722779911198322873290657482153644780026944225250279132021470221135381309627174166915094186302176218587803479370368340053793656149441772738225954295320790219982377514813212046179520651693099879044461688964384504284094615077673313128612746670970948866012361949031698704671424378828248880209512224975474352840690769419798118577286622687211486231536785509303794812736663806732983040045862633809712790105335751661332853353325595321567137160052124094246894455624706070349399831158388735745181033771007173846051907163082080076431078053338483007848800223712853583549456274054338512734933762043840329022906451820900303088205589669151317463696599548743402795396743095035576308967373996541812579690766957725165247844046846190624646065176236085257820184386764734814488386777348286105514869228650846362689625023341811668190073630398765528403822959749964357328960670811583556689747505277099357838190758628521377891923647358638437542218606514381647597442222583184436020126587469742988720428928649692339735521454702234742428377152318248687162195238421284745874170601589808464886738562836879324056072651731304189088233445455888177011416020462219075261435572470348791124186892051655690017474399509709183485765866662893398224501650839859460153694441421750736828948946761333486738210708908083622726434752729222975604043654526517957139159504867958970648709368306051033320611555571017198947821927794611234720820275685843489294835325754557005435434840973085734077585669662570668675845728698476457554134080115874809303478916155429666734171769534245362969414844439398301451534886330969192544634510657387905674352385481800619257433492492796061148899300543663950041672912224351132928288285927190192690139283868977875575037164651626576279629249575386591824248565211450614990453852042761332333996131385260555283890144568993387095985777564540264609509460631750207980275259765248532744541331632441455089546284148191983500097316992345225403074903839695059185994180235094966847680401269305947444652625741460414512787385992113462236491710804203763963419248396611993086752754404499235338391805010773624634801352925042763323303430280363510877559761904373768457125258368938231517822462118060698422811905094540991301092392252911873763259560444925130925584827634878669680659217626077343784556998646723224381242613087981781704225817299522314244892486697552890527286495967749840734454993573227726757325701270195925655383578007688596669612130379024672970359101789590219917057494240085588065486860770860310259196099343410403760768212849939494655659673743311190634187315126509464308866213214859434701499915647132398222931424727793867042151164225336486005785266693166335646203593443861617174240046356448161599734245244789642831677219992068247277441744117498016042288260765648295965189856184911612075944219111804840782676381307233009403203927836192568824044883160218275051637757887687838654622104989075867959509174279327255528081893632826262851146488490823267708371733686950670536650859046104506984713640637196931324979162757403006120514534067424682698026326289043881929308765814400595791054248314336609752558220502839630566028432148496262237663638714312255055478650463450741326990441098171996670739113487826675806586155679672204796052367051481732135851458242374422752139419199174675731080650221287338714151098042376354473118110583469386551983944638248930477145521052410867728860346721156874820107507222590578047302290354306171492139571158729188770719268952712066426333784137595270353067904985388644678337649485387768199437764398034775729200693535391616819425949164584798600946760505374371769690338306391643191954820244574594082849352901607651212535969566142213127908874884466185434893116332747291788132262790709427393672061284816225885614939016090552953622789712088966302074730914891882313068288585293511661542176923535486611025280359791576355061434589756899900588702204731797353214410639120276961501051960771834749523850656218484665547385931535112420014660462230618648916100945097874771701254514172287098437565911665175876319550778417844368664412281780114897372475683534656150467194092989461909103590431764050805853495340187035318509562675975611308231809103646628105100284582663170941589298650999143427212184830496732734723981065399807855655729121219493307115789733678657329461762868775345455959444298080423250756314381298491426473605483327378928672565747231873490030000916183325393490049903397604961604705479441363797179251345680839661760356040334579631594732252368027382014351780449046074615878254498709908043003952541504043593992321239516455029867798096142069794076820766991183637660478403995188610616626164271240136811408885765823501603672173029177254741318999023138772510000184020492532531534599748350317122888425422898306416967898846686151173393566349829768634037402753979055285297394842816080173690499420809306044509461874093936300248954801348751019303475546355634488841059967083251670844266750965333429702126358951828260007474789853020795702458327723879622702719176372255708964313816819249392610073254144175904904835761473172420546752170706182311604913192198570506726980717443927386384443548635863352001019382527107133665871039809525045524718435386247263311104846413537142412780707944317961355279933172993734481984840588348012500575966439154827353366347940129016640548166041135349543847464537760432483521900519387367464918803788021082865431659122349694137083745039088886058410615311192303388562855895636243310035221475949952263788063282520199726866865094578735398686370166178380860535700636334103520676808843243887405093831491186527109615287452107483300924073072893641412167509654560094643931785097935572061159121241183952001762679945704715435505032964270129085772128668871816276362738089218669761123854304580867060293147604785581419158576668869816036655284654138646320777018604742426998441405022768675326670189401429866735757759049720106519666479981107864644927137716368032390598565696539106701447782897168530449129641853953991920846046537202108250763970088253113285281102526494451786030890308777872579354964176169448868665457871501848098175962474371699327552663673313947617547930053055370725444157267625235244637218021255838864467634207169793253841826533348158282705936530601515626420444543580082238317534206291210807011081598690868800320810017006804625759671229273296397901921819860405466850106436958172189316902081184561567434914412122836994062853339999596200473519487452491605365120642174629539407855827895404966464701994346740708957618384209953499293274411557925061459352603108181038978596606425677223503128026950889850155983665129912414436224224382190271023709504121120922627341198748484730811740670512209559603858722240001648501308874382099198489210550329408901807041078526364443172395207005991260277125799023274322404305866973286172478590813050691723995072200374048310921389071625403513702351167179175627249657152024291046178679883715900281848620898465389797014631980253303835710325978882613736892739292729474794306724034343676621286920606966311875922828083127761791017937296298278428887029586276301511263998090954876911821961672865903840326791400308453165548918993861111177550884117324596738152566634623335192251564413879367174384390190954753146451045377270087966085558164088760168952176509366868843998389064811124270837977326633194718010634720443300989152982126816223489321851796475262139107739858446575705194831406133739627766564711091226473151723581353050808304063714969513951871880505079743215888167323448675377829445501444226080214305649884505158687264011664053193015753639150232683881130275387092791986018638638203815063016278211210706170097431856074111390454915053854462489734263277370195160834957960137968686578289500954829833939419653001656546385118726321707761269185391908926725390169805472954195165780236527692044509955306629790175408607274048806914208148975707524817385243213029198864170740416559688819250825183447166710188093178322201019033906511241505412342613906068158102330312202404937525290813575547883986403856519928143504065683667043240716530183096238636953369320633874550481471410530383092696882804486148005842404440776500872680449135395635381468548390636665214955610291763583862667854317064134252846007690199084939781028819052329457268851521123748535633060821213115667309720784743898017556820588043979020360236964955376446743007820039754006060066966876651584089307649881191177409510305529598287049161455053832413804869069917933908473512253735900151809422171580523516290563846722403290147713835162650091526197738158304050510224568131626645650950085221905291740428972820548391803072251186246433242801225049411111012379838573468808088521770848101387727856892774345051589074346656386217922089861509946239459895769913509104046647724233223557616111226834030398376507035137559656567065910703118647987413636208941727594255449862526631424650552691235017252941814550209674135299258080018403504435707610747960290681943066418352752776759194160902707094473564740215763175579267514100518888064013438608503723950898376780630184252865908830602485682981196871529660285805145828616173616594910716952150415223030642503946363361822156705347287429821619322605561877788831328953082881760563133963561938188174258560381441727009582793966168329489465954778759119477924910561683273530551302580329953909961281509579225716712938318160664751345320914279431514555142262125222607996226724133933416028681369693688312928315698023568053827423456921548063023952716706487352645773158571422869950333978334432979722934623577472196608040526893024979321315347611867249281961531450433540002866331031362802505519519322146357443337621761117646303060028236955605745259005254181280187299286137318261725467739097407369124673554129879642831662850373183386963376276335816834222780157202689456785432932475708133410249693299986522733657022968876801581122937468045133589508884300615816097051912684117265758055035849820305373625780912404058783876061790915338053447742228758513501175371688307796808650225409442265459785362432050969483292216896018349497331014368064236881659878428770581382745308650250541868106683172573137720568213454520291920865132742448196429044965903786115300800008867496706351829272774778314699469107339838764571735806451007122228869086344122170012954228080764415950631997195424178930136416877909308893664182839750980969680676448235947201945176773619661495298263940516564731202466681335350226188638839015197255757564154227007522589026585306613214040750693737624360785910112941780421444180075516698986432631931227581871141850884777020254638571293659202278401025456826988704430922582325662304471173484430827672827590093291180707278814624385556450369571958543146200501313359445292036733009958881528957397147117775830290994945777379479844212316309442233665182696635628220031042497783016691576658218334130540112569775202581619063059536534170326121448093386920608152812570213865490233996926441706343573526149912352361866350065552701641823816982308676155178363872085990043878823434500221642011829881249908864485931220056128951555458698545052225623394478133019850823749941122054679862929624254835687424081579693534036189584626745231830518853342786018981908959487007787011741682183267824942225467088516054746201902175232894075555512017788886680747447225213787785143141820490832843334016413333257983287982745685993298369016485242096144558223459858130941428897672550984121565628238792177943167936598269990403619388571888761425369724587779390826741262741937292637681663387209583715358105151656197128406646860262296641640633166081706953005951304484048890876745428240214029398209332616552348081415902036920607891867523418775544055150563216738595003619807753253045205374042228911391639447345582234779504090815868116774857233575936491300806910588502870244151751756846411690601391063678493667891843293186384072017271634807105862706003973340204567500684899178427059767079573607427276596676690994660201361561968798022613748465026371378222553376576500964270114534567145102830336291714376549962041221625881061615261819960888068595249194824217605775305636116667957843508993421391029238201342595159928488863394389650278882381200716359956435652725707907599160239298828542093188950054475882406424853792196550770563207509892423046196979334716012709121612334164910234917066320358183049750022855575645709286062664274877687259143846586817835039606508080153680320239476947753046821081904695470799772954456705413563941143078942018302660944344694914158068131166849863416204355081032560977656559813111399850712313263266091057037539833071200794094412821523228028757671495168126355942377430598563372281191599855346576329742301589313123403685778637491338895835656534333779055781149260236588230564025767212560609542624256742043778143375044840496630656018421518500584928670107224294628978950930884941402988853005447047999201939341218421435851420695904656420729401305944376858733068914049830126886247489660461122996297629760915673604958076213724324724894253119550762806188283118775500829734729202998196970164501520987586212783186180404181470169838140636258084884640440496007985171812373694671185362339818804018594407518528214116092999990941246188302566162167407668755786208160741013793684508884645355026554904579682061369604209667765690926429862633146821087153716282280657219967282741750205429228900699752332839630336318111311024577620963699500070688138915129529024813925457652736973305939147962930288045339052493675801162252089505665800165872470361066488792838913561913762601450057590734097505306487417785772839072695604141064009454789919337955281639770167063141239785105524071455999877326664719425844376919465184188526388299080990511746832186572699331262144081315369739002749990545602695293030105102052847617003316487200124807698001992868847277677499258903318843205126293188396261182508986207512179008739015247744707766934751890379481050824556163346547891816781178415654271092636959553191316891316761867890190675293191808909458419507857087564279072300202597405644108996196972745318780984177893885323177844962399423834816638294384402953983503774269381729551405410944123807771177994247977959495888419022952788266645262582560585677263232716373147122986388667120019464236566130556654250425098877207688652587768553085592598586624907553561137771937520486212378004504271709853683616827301092565176057395552798631340043116272070893545834176208972868681722552475207328081851453190619808023452320769947297948755383383143906154241519944863548347220321988101451644953907824302009333901646492994239729885308877256853217204289184223750013842023760276289350151969404931284798149916238645845961223992508134514870854255083514830267667993867601193356853441122673883452093900188372924650351371833843683870959647294345544274814561368570537582424275784469527428462626429024861041052310333612840174189887017930673919139462540150020657659445063280316619671523377542139338708430863578671736801498741462503309441980488420397483388425326476126317361625417618131479089061398379030393762591927452530964474450273540145373320621887020945081575559302084188139672054408918891373962284526044935906488679831474240707249772070979002344773345639728754220091936686202118316366592367283812429612985101714231229630758625899298383783492712983331715324886984954630423936562560312709498659035571800452773053959241849079258346898516664385739541566648945196275451692301797795814794434629629532118000755857713967650248103552031965427100068695093278301322447205405875261988897791283692153160255232109489330795416078192055228373672530894757737166047005873115646197487327989126065062251610892966398592001441821443340653888611348662209253188617928835866005836602985449477919279653648711740285646447329788675557568009652006748533472389096662729220817230016278595626200230779992345200172799409191189667199300779935510315910482962445254419310333237467630943445241916577540955942192717295428325260803692719108831907646895621513198140058361893041250129292813962568569086162016475295002148677735766138389670007020583080194565971432742651826702854519109014269678163313278098838703534035719216003347313378474019390799845498198816240327264592976798324440051440921204897178007534775575689757358323434509626711965673453642818341254234633594643656047502064911626211342104001253562023020344979594665823457291162469202694783408423080074439576432178681917818977713012880255088599002147617078653050708378413123252771264397839833191145470800071950154664239735010724976877825965729334344807377888915903449961419815968945808856744671324514073279593197533966865517260705358709719110068424899928201747863999047665327796052076650337471497591861476097478852768211555773686397533036558822296116914681997316398615252817754332862624747626291993643979153337753453921045679108248142174792957139682422901714832091001963331487812397750370845219178478050443231162325164594866893664608627327081299116560886165366765074419063326151521665257454191302732193533692889338960330611644316827967250188211856380286676145839526325550108837064388856714447628562166155483223068394712943019689797207461634286814275848424529919181993567920693922390359323852500564380234234872277204372852934232134572737114583858300788423269849881159258647483953412715919455128875566228220931384177152522740441947498531838131404465036421677479760194606993933040798818854678568449573648342743117927077779796855308902456042746781462497093890870808304738443731800162202644552038856650554763648990203857566171226395553247974291998228405550060500931269771877267135476621441175069617399346192566503083907068143071041933034563805464574992688691306496184988529094737425296223384476653018161752626356176656144759806052298270917328625368269162947207495238653625069720296157315402337507377257323268479690867218258559691626093311396329210781849573730750247723756982856100563926258622863146943920190170569962632683099932109552896843809851747815908702124957576958786289975336387075577248248164039808880234783489356612878319791079355018136725448086936724876597548198063067269459408508741420850488554834306008043142171588469896641294532047872643178923294417164528227205719696785801406727769376175261666396106155973671346738106722388748914846449087005993279195441933964227417604172138192836178623311583174623056057584149725638232114973552078508420988207182523749138537398256316460643287563762539013145910467685632868635040777342531301539728364569946407746021467500852979395324727341913065856916419493489879695347502163167994296376114030696215090212109952171485227475912816792557282155116767103292063521200193543744766518992635273553872807971501962360025361032038362278776631413022195164587483152251580354163321683743105120485162826988329061590018052104621010595519535150203052449032827856236853758764230449446182294334862727908596358352413627170360017539111414600079099503597177350861948831926280313655343956548820129930451361015086212895925381890170462304541689529001758174296266301106004425735032977864278224443565266486431367563033799856391016741540816483798466478062613736853950639692805940960148137916436240661798414111300870988483596986180686593650772308982842861339787260482343192204554870534154604983835917789212821370926244393958016967269464950392859423315986538714843727153519260054087937718784219834868153370778591434283655555537905726268705599596695124098021892471109483774492742948819966864448283221555657145046380800538551279650070058856073314256068963631571829308676483944466994813446247325443978735255991569649154523876936751442528451135200244326644219051157122250482615454359650993288340845590983582971178198779222296776679262170694001135936141359536958180681768779907637415205267402163486258970164754363150959374451378562093423198216594653822466474811820587777475327816940560213812017841311644424265573640019554666335505754615094330963753969995660421194691418212414121633125587578582645405583090774834651113661051865679812305362459683225875523958153049944046174816935875871582870985818431439731837122827606128691248378042163183806432056715813957360727668254375522312952050328318699690579186954123508747732761323439127381550750134237044447909588442110896276395523137617406101013682996726207316458221414457364419030350022547234586019035842701314098385188258317497632277063688562493350905371564670753548179428139617066598412872174851006039173923177404224858852970327479883515356717049948458309480619296000424286819256543139636312057693999874188865387333058818646539263473046969383745009645235712613479696094065875617955849396901954881581814816060216516197839905529040790830068505652543652060483496275554727026954670615358497153988482856718327087890408088087051879369272077017379769170923917226878105792610971198372331599910051328940456871824129204482987066984665561465860002132742098342746666195218744656376883518462502717200039797023212754530467007104414841602553289614619386193224643947075242623455376448919466686934446735491119743979337033452417533172507963988220408600715926373384382226737265111857252043423638376342595052565643584954604534273688325431108101120538022596225240174820986266234313353680227250996139359795443551493909982190794911972803675727545303983849250010225733784356100036784087159772708573537067247685291271421027689778483104067615902523436745587790425582346638638399427966267468032646669447167424374622062729477514241472214625785643387580641001953929299689470030483982711680468811568369990715844222209606119184465261654928470636453256298804709582276327065148790105717543377307693364627204354501396157723736278455050965931298985673351822615032629062788393878520092568510592306861856240793162001870043788451104467427481389765517214302073335424464401056733598402408343615375295267006757381806241580648474584100848721404279821147310118008876295760270087018885894647256498204216262660168219527245365577443545157933006897570944830791251799790262518992265385158630683467489875643046302457676624510851821790895888650716902144250506650925588759747686205265677507474779219844940721808992465770093007915472784573078673535170102829865948352490043739187021224614821862435927207231754799806059888729374115777022752948095363398702669661777647073503225984557171873663857402301445497982543807648408828808521229090231086209442835834778890725049452094011196230104456833756388808228120331665743534058512128255293421660535954710872468192446078403525182136865183559312096712830172392982874477911852947911184085551936302795799378347520957132883699121837362112438935470868914963334401243042753853704058363868974242579265898264705944407911445931963263336962713448854349773514611795529396342183700504236923222914807981364170480384444536464804718186596377375847795683635253321171368868236912556686200356713154852363699316908436104452808826671141471415634367590086421313947443115275087313575094379287111359961159686909808590177744680831724320416995094822292373889577673495248520452012928210806670254653687785901114689218106336752370248106935440589082795560674387166933438631840235701206889783146521852141333173084192287259427940234747693491285714639189662569310400547491960252506091257703069515694639317621134697237322188675999740884986072985437851509040747295114525983612396442655365312615586600360249874595498317643543738192578588737088201386565348902357979166124131683335308354073967197201072238508015940243256731187776573924490346338171369475042048373712274425429066692805162706089399491844351465916256251895915651542756210569754669432177541223259155854312351477369594100009412530477556753608450325779754879926938052769904304578453641377056478124626361664612010874729385787991360595277765111036732315934594095396097952306610865620209757931061251118879137994545846657784916149396152977445778210694455412708072681602702271122373543297388727967171702117976268707790839181705948051355595739147552079437698804490113164275966942091296124341998133869860781782640916750671916312596638543830572213775150041856865963264530859114079486885054974532552384565978227325644992500231304531681511461012044536125474722683870881011378425279857653893791091550203918313116696408464554491323572448251999082509167068208417207170741453301276803401293941697096838297323963120235615252231244448303079142504827713123310191350996121266684045742510511983276226232597141766430779213454140383111723301644321106314166768196434410864485850145274949738698367488146363976964226340850225539527053653723107095388281439460316251377892654940011828658655138886836652515816732442929217058394614859155627594286050240535783918251984524633121818262809650870290907404668466031572316820069998374028125448880278936811024159417455266475573589688069429881182283846330340783961977013923716891761218213520823708282019438761547469862284579751995114592309868211011593416803666458306154432181661885445830912885801617280413265442634278409839456551002398649421683050072051897448011205948093446810741002229297362796679621872719861765494861028193978487373820840850168059255814093266108569420265884870545902376225804259830671840605892321049375303568183348023493686295001391215556657319980721359624952462612689734610751547340521685207141167385181346429823421595132619838815864658447953689848289881217889212526970388330373142778072811960313401193164077432124764347350580233149280546137943313763565810902297935960673964084999568562341511756946917460950623997483541410795659972028115722285271714075820112490614425229242244752620094209059895258384753541120539513510091992479109622714386947253367852876718514438204375842355495736382130676382550051849999963800899413896386774567396334029306078694056612972532390627240052987472267742427518839945415909057761536030098721720955730229064751775586889744318956832419654072774886844485694150118911063678190726212629971577731220529660181352069307507185928313355224277098783702013487475995196357736998265686899571519836954492082186446780054648853368238160953308727598180330354555069964301124497681956629099975695251941653560381088775484519361807040781288352444403989314022723440925294148669915424921112409469587607425282160047604011508754128688142990884833746143937987035529094314448724604359799474093516629200029645509876339817810297329396822938606833038680300896605609135907824363630902444571048637886700070783778541756758624289909593561853520932570380537214146542854708166183771873509546252653601677653928183078093330651092256520120884084508751614969511495400509527505342477277550969652423899146744171873286498402720932780926734496976478255935667213894611118226567546615768550292738178423790294511243361495767222935883679023444113977364369781418086554014645634431109820131576405308906944531636153695635687262087055532885000317741311188068005587089984798273311611995694071638620496678610291294335748289888797708566323366326387361495845022688912034338882374820303961882137902483667083328205327946297654481767617392240160269355530841932622969348095838331524092953116062612632685877442309015694826888262843146566623821855695463944308831574511642921283844236122609970022127904688829025872359251872775395730026677244733153805190706789174430876968386237549945570849875714974905951327583326336187020204830754620429971690860356124911791135835030050870360520174592310847257708442529134251072443847531485494559569125542404690174540449777723440540477809521089031409299356011104846701224200157471680241740180550894857154064946923013241566020675103599027302697406119964838112961224801531447347484566150468525759027339348166908116923486594071486693887432994604513342675171957091915938293031521109295489587376913190533331610054187472943112054449289562393863526875946235682515313591263223137457549835441531804468465098952914980879639276504844563106016683682093643083811648550414060539027340709370663086009681408585026099140256876592450273230668331375600463354229758814118562270386771542570306164727060917672939529192033316042236527186817368592773620109332912481353813386697162988471915436376002798333853476517000636390156133204927603665729725506929341216164980976821791480492369625505274396473483951884374948449436048415972558391746062815073719212670028243167340932539000866432250005144570116436299918231846289533382548913945197425549583603396922367688054178671519346003084802672005793030320361553878292868659282101317614143776497941128695654686658199787597258705488088298724953968260519460794187863245649976176650243582328191239669626948734464178642015663954839049575869400448857412118884451944481048634525166416216560817011412992271612773646609080829965357772729920989653634990508568605599408597899311887905851187414915863924867366868655777421732997667886535569870410125785739671188415576604239759801091074304277322561312154180109123435827348849760738132973634642030142882391434889416520024091092135170263726191040072929298724543675931505955574999601721448934626364285342262448187934196743737635291767459812396257709414008397723694833689121475262705008764172310522041214859683575489459435655496259676621318913236882748714588785962005273598078504434243298471495903552047245579309260584637466192134643419579540246109590586355559878943818395185438133109272738386172956366238880204038212741791481911462539123541797785707453582187413190473955748352656704377608911576141964085857183915281629616579873181363279230180213455570484632686335597820300867472145464057732894589373746789336632660787957653776567909096943951413287419347642781600447599007325715865904158560034572511063525223294777950949524066961896197784179299314820371843795978618886446137227486218875964766842763199594802289875480249824364712929849676721441382694984710468778011929439131598158806805648922164790903249601170935937870843948361401008538877483470070613906514544785334973038045012824945214442272752360709543223058521074113091983223856155543660887121297546747777667175391835623910463930679517088213000487564643469399074956481888137607792660388433297407553366294262898995147178132153419735705127821436462742220951538242251781300294762161347024393961127822727851638127567575464065236217501017070769914124741503418302447495911391711235379939186559580149468688206160681773877494731487500950737044986636369365474015566971996343965355973647966837109139488442344788335889556545124911158476200173357282231489285795825691494104287639866698055411104362459474078243160445863642615335402559822803564365633597469929089258394548186640945685825308616492896153547442909429960355278575543511908664038641275411832189967035111663441372909747368810528717739971088334385658415622460367256653318947561731100128551363390920447662639232271389000684910348967333975042532872247257446983791786459414049869791160693704917034511732516345057851449092564466630280660688690712488306173228390421875974692414463285479330682697772526612774328353602677630717972708933392753746050374894376997643541633027305489418607928725464325133067193594063864550022635508316605844204372527890974786646667479368200193192216255739321221943748476193932778948879666851283921346909578399576119331050483316957400696554042501847056754349001667364163828613120761663391275153661079974508381034552179774483541101749271871516474013350191352279062559333529981971508613261055744642469270057056378745761963957754747968843084567878105468588214414379852867579573183334325793562003835974834872242119723032396258189041956267030021580352046034675579432668876252543749241092106131123240703649136256821232517009857429272458317643481201347342939742273888704119261530954259682149711699103498159600881140340624569958835019029251854300200876224267555424594910206503111893552335211594011250268131662677502813298742413506226482724835821360244921719170025649323110649224460937979266190041955211251182033984572883305495750933102707997940979497197327502385596970987865571211488214910603233905228709319033896735824017361590426378758205827686895654683509615533260375860906736802968766448902562860131050589759666372508008122502639659657494358740835419915635982619456420628580059980335739604905279461274635983270518705014856567583616268630004175140832863498086044229454728625358433160574481709816669953638317340692674280577242178533936417051841128151463851190443722700963928705141624804680673757672107509291980863088649282239420627351688111549009072287827732077554709022607080748384036721989984507075823001347377054366891071799508861537459191689447737692268199373668041764073543916337657649516309139220746359964069767271414241735331555824524528760371470486544837994430353471097635562296599834592222040638898194488041748445587706586109757949944719967812824382706767515016216611214534189015322597965410948102567107108043598492057478117265381422999837878785316566620689060539624641491945786859411494845291749598394075993937644805320452983358308154991022572485639692366591521937219163303027113908467784935990774539318802090425097725209328820947245591867972654734059485138165724904946231910293941947522244144583073784368495099165854737026793161807288419677503814371758628604570183884721310586860266461495171489286075793630787738276678312831703323364865001632184055264317295104321227374606785656124775788027053865065674399162456150960303860579659446725641567185680700906083133429594624416091730669556493102021052343020802007827813516600759637775660002044693094259583729143703069748797312637810537041108811782746435806723296186971446994833023695018317913845954028897223607873208841783729200753353449826127851188530036425458069771914443716450842785449939942301026609009754162043334464698371097419326808970423134452408960033705442054044913925443987029203858072450755417058424681158902021103983102089852336123616473758228310124232306142928266954819999577614140497201831614651719092858727561403256623051625910352737990323334840360037112998063289389839711031894877789891217564473013065228884295413324926878422519738311604971332316810945439553211203619173540397001171287497522203997742303304678000311261855911491035484476759540842767028753481504741473364945232507911660537747253422745543168457020424890622298398598531071403132811117296135983056956674333637879746987233972469978536013136414811098138992145921641416207126938274048463523790266302249796158698289229841689346893299074811353876373621302728322924073214358538678481937359606719034589345298005943072791164440351527450258503451722831616156005681130661635382003815628705639367774559665202036510797289361679609345685090210722241819786952174233650061456408421529571825262133219950569188696732139398109572426239133063171221667896143121227191556772370380461770994084783327107328421916723515409188873719500751944221892341804707738180168499528866076271991489530714239337060549523701792582464548841583386176147541248522700773938634897456517350763465564407720843125143761384801199505404157966110906735666468596598576320865183576373252426250715428799091684779035492163862510030919099050204720055579313068894968830646997890836620376703029285862607410902948158158283774687646211522859755769852042951442535966719143312999900664247836427888199019886567845354252931170576039078238562878098263214599781430996692161654788733088008898364464521467278143529371611067298031795147924167628960819334945280648799523270633214122444004903281088251601838999941789752611599973678780051437732626213601427475236753607007279392292315839104868645097680892138680485832502503641741549856146713785066147600803959244257674155897797109358467781700421667418501470171409150138724702961613871609029828695611202750834962944274509032986748944548092695469272993572113577017942442381169831674654991289935580584231314308448634452430820096675928317083957073515964531870651070565046600539648629958769552850418908693132789756197543563658534382986106027760256310209717755149779578291108241518227233660738352201355085078765703643505503115523640290119572688552873634572906367314863173030693568064858816081003086642997799350491632504575352851633213494898815737049070597814086907888739803706715567283939923233549992013659479614017080547010926677616786629962186885376613899355929994817529585686299483383993217360958869892363256855592651519810474414278239054759845821504015750844819300515245202201321337474416837422316256289199185947915243779222693427390816808119613650400871376364107855148213210683788544143211320295591153754566375329435645231894348188264330456205990477657565838753259079960064883493031933488213704846692496108923756280201009852646724851886236333910072380654485328171954069493173479228643037138393012634016997183736592678272848019824202076748419886999526401903889300264077129889657834241194296628898164342619245461246124216425287079334183311144125832861044178865324418195743410446647477801262014085099351762501478657894391094953718388119111172576598373489921456936578695914067556344102816120988459456021621404889633682575589546486003025158251910856651097857858826649740083881780552929255453177261686463846241840608927500576551534032012957908819087114430072504691007416300236191380189949201203680295968656637411596033490479141007867261617316858975753931640344212856179241306564161467794205708937234061323722554722093281906550771872309743692842263117060554536982568780442087825221042310954642239819284994159318313481761029533038261302112130836994229704206900636656383346510071548847938850491016732970704471067194241452392473422586760049229662824892983571750925173289740447317001516905452212598375285387054159776035262203228869932990021648457206372272908537345912879815677816686750488028041996688276588769842077049997124983392653150852323638587243404977535229058824819136625044959012878590461226983674402715023445219915536378127995880591725128132135796807237391444150078232526215459983608621096147217013403526922295547219497135080698150644922658744727203413525311597203422487055209344899791386988359046678828657670594843840270578232533466080040072981584127607872738175944933402282220663129298772744590804533576504840585791670800571535043979029719127792808235223472923728385236530762676326895827569025289977833997158477036655296535209852068441795723259199662331125090550921931745128464404736471231905214421582948695377425697126585172026027354664200371738670410032622958825087011122006005534313935434733158742205368033399843148955530693452412431442211424431744173644080577593101741789576607255827694338209500688075433304529661276933613938745350285238792631053539404452199859249421548821098833944778884243758672366323904387550135765251287597421257709503970696740588681951980207097338053955870774913006809786802803287994199481131880381293134835748822357807854523882304441409074624528294800891526332199141651699648221194214770275235067147735266644522238187649721019285739183260235988128525025558682341098176396630370478523525238372001334918839596551136695002244446060538584902080310730725001018848475813599844260045374768932650819981200487806591272005671356764734413416078354447599830661786846850485787612314236892812612523965827808410389969412182789647427033410230029870537954784350228815835283422088324512381349421329544393475485045811394884052800505221718544492470650922947906804355497328561381065505507999916783916403308818820895846751026983501041093737756871185443313505185675453905696463746430843676746046770734872541078730073813280535895102891310349195869898985123873785833862987226613540617557370093517921402624467307366632779170104142218418409201581911397958062886237815024495937858073454523005420009160578576442074840923717742454122574856740972341256885802637014630180175424983130136028415032320194524566294278182119675937972121918221239206158844096659286781085073191720625385897964120569474940267972688419693544846459655684475132161523422404643623347443410511534006673738281913697258521489960471287213859551170963948427588375734812329301587247937504658666116289260922293927675680564031469009799237735306351456211644353716469874809293066514673994375813056305524497697664844727406896446758483530261985980212216490617666217120970102180776257868958214457252671873806291807119584598796773249096950575893456660995088438061967260294448273718460623819629683166422223598359512627762726064337811812084333102604337548380364045848236113738915816639251438101072307629175984446831434519821904568758734288236070103234221478672169364038283201977645468336662050658600771769181503849261758045061007884590128337743352888080201606060612564315759109176501505533102132873716060606066608302209475194382093139192984690077743801516549885157935236528868547205228635302830198516479982460268836328828797049068999860901638806752741894182861684532617386569752011396879342024115716785618787263088140084803604882925398500308982721196223882054700310671146217284037543866801067311617376769443400441989022380384244203073318815467204936566860531003730460518841254157856530084034907423063724292817913337695853243605865736662055946465115169450224644169168455698532855468787131597857522752304444628192405358697225917921663041627623821207124589888827139744005624000877932211227425147664990384752806788423320947519585471533273484719546540067909423259856488819548699310759367986416974592870615521954790493326334819409970472169082117686867383156504561659764331872614639455867169302835311806433805437403258763893421599672867461421976704071528700027330764425763669905125081971169200225734814776160894579354839146974894838300918778061521114084559856615521233171460468732684346634925987830593155626563592772025171820614927741048178298274489858966686508893871374069042809731446468874718997843592471066560606029405533154785553973832717476214460996549584567368827550475098807570138637371861009904866686275551110404996424383254220782090230339434783324763636325320183715626087209236594483587461043109735157458336037613346152951420259679126657811516460431515578662219557616939448232771794127195325848321484437142716802030302131982025042230842570349827060495323653900138670374189949128266968250894060691770245173308164456902507914827031579723081594360876214460983094885293942658519957116435361471831871240926380226658972498139085446316194169674224523308613230012759608770530336215610110574373636992295263339752040729688105397481648135250475989698374656147859441827847285524757419205768733734262747635047959508900040240041736851451209029014853775245122824405763650223460128394315702200333609331917026935995418926528151272103094760599368053354412742663762798472080658710620796450651617552398149353535835391735849585389044272640202661751599413030500263841619112806775855616290990481190667493670933614516921124856991604099329385804585688175446947860156259405004961286487447048520431928805987828347558742847954222127680867248149137468281379629244529672621901320044286745659724850275324602238482263750493805310237279136069873356002918609915381554971541653353759564547526842517823662305467043294300234600469484599260543183237714524864043789431056438626461479556518989227267792183405181400143040438172582807396489866587630009239229397828125496235124976966439523447241985697877468627572020559387033459693990724336907619969098722927330592467836608163174820908565914154206752517066695545531312740357154094751709334466086259182028832741525412021475378862631807627746008032716004214922673760796709525737612325558221967154777517874825989136498259128769926998859018082999797910396177615405547030381060234879647038157354375008162935643125130338599548525664696943107118610254138160534212203006387184640767783105317010677465663245446230042111365785609096047869877857796956518990164979545449079575972274120066425135872352054772112864943079004669843730453428324509711800249770209029754581168593200284547452851041883379203379234497907104271318138556023843789084920218701947550768468000115820404060239157762868022295364182144960541489618243810484326812489447819812782656668851892489508935290372418181766321680403857251345788131796011967932067378167146345180051568676216278267637061674775646753473837848300337229661976383218452679923571343636350923490082396868103169529347412133437916068321889099163971053586139898184881903337607967909085753655672002392287921740121379592368724661165806034790761477997362287891948090357869370423998590203712495338368168974845811264894201108141688437160457243579156957174827450232382532763222618919702669553508068393088575816173463737067058484898596076743529053283986045358195686389775994552930356418387341620710417381702527749143664535552951402850723571995070678211571798124119586484372459224357230414431923365493848863898209452901706935952748893558618999771304269159088161573695789900501062858006338715960008247500167651909405200637539909259226062672347890252749887902092979756417302018553239860846373396321968353124662176718691805744219040938476216703577695094008729942080700792780475397880258331658717934134261350039729482906377642165777377642776027980363192668932804218425876385728665749256923998951496487220875384126812608879894111928436277152893575600998151568300634756500404684326815059194219471714149255011202727740348298902375266447339020963131133634713442012413526004134983946888103482270993779898089717587529993418324177137782907632857915579039716965759491084197629518012805265498990630933939052566821631849381850898994041961901977861694203475799324229221149154781679859122461500217757624915338260870883016903630993932047621798422567453616010970418665240763688505791009010448700027700728600340486636127557879445480260292167097350547649007921968255548336118137097086163181631086913355878037377310238334209690458697527405522873636798954721150384576541128241980094254362995411757709132325673748552278300100445481254273101234390290645931146004230247581259685773014484079917190680002156389076214828316697212455059202637579484287028073063087372554787064577476205346852001813910054357231265010098390086110942687443626724322254568653142135842018693351682431619901610416824220339481588918997944897437334104901664855186717313081496314775686204812893396198492687240232366664000325982745803472062325170387929036616424791966661002420470154164115435376915734984654974425125660532881243270043952538474887909342039870012580493073783004969287164414713228494813852730940617348264899414742707833412581010815549813272878718515124147219508592803306470346140262381271917628382354727859324332334857105739854760523425656669872613295961301008667973662476049699891902673042149389039648471912110329208889376036641131175798605547704414245969599135523609793416051654493520141681707899819676487315954380243413583909438645123671169581892171578812881650919377050327118301363326706501177875494254939905374177489123277439269546069599641498469147171624032348112768718436071124852421901639684408661323549343294691731219248461136645623871480318666587627170575982331464443188788714165293442708690902191939373006343636811181820420146734089239877895247023072142890175562852379510945144221080480680058963840388527292326726895527312342156246829522879364226892020663241953940636812052270427334170043433907786717189464295163133748121298050328822191585082950172931196419250716945469968991843439616768875712158320491681269827746700554519207690449519269080720619277785738900346122750323577969814726422319089222537264395026663340995980421811844525546615030260433802929932788449908512449068975310834538495501679648670425978975422785438901976368931373166436153459549637867078337768897107620568487272993297904184209730445924542914522423833547058693351453872835090126864573628744358161031780597382957496527453450072037520319330311659143282585799776127048268220321369131061331293800965958871855082126799462062886223563862812096745711235898311607340418160533310159425666072724024348472790812213021387343200664493922048012607157182610020110093145479540838775484335851646579245162600587914703684071002700361569082924078285712949023264668250251111899896917922050878058031164572367370735003242978798682963675381685432534499697908900662421397153911585103291793229736455242193943270469254271077302521447316136317306170514254487700593599946960857265080056000370034183969382409971150204927175002023023379356071653795796957204160769562179558785631526709848680960495699316191416567759077770162128002232215254094435671363909221024972144606508164080386694066927402293782087050124981595144054079860712250036970320694395297467375845239500360309327623959172259155000490469530558871941926191608438163606828608594706625656136999388993178057971744729030896759469337822233574675270183332074405802027757901349603101582409898149097323399619388762039138438722270955616860004200693738603299212861111446050145461125570646205005053362762258139613485774191616711909790476389451422039505535754864630717263798655110149988651953343363545558443701777007285321737243146180586795571053926706062044567287594811908991414055910306283994356393904083736296013994905333079721842428672045264011186391071623398308191070653594653147958610929711477438519512242413475191429598149149390502884465748542567295166717171563866915900471731672164767408735641741367858093914252485902601684834802031285862551016840650380987806629193264020245888528242618078464673563664448462467789055223202432216579066316607390144442154038599769842933760835513043510398964355143081383139617072141688769042173480168473938999283985919532718984025354428981307374971388643092564828693448469620214407604807623996362762622871260503517668542819142885137174303677483804921394070942531048393071127848610631320738679589845090220479288896629935091784380096205745509418515114899273086096928399560992700608779862318998919959314768682740405634030228443496332647799223457675189268919857269297788542351651203445532011639402260807350474157227259245947029393392662165566935579433762454229555573348064786853023710311854073424228854024611868255616389259324224699374400383075133751385367888957399132225594498607204168138313333656323977579464606029525737158097322512296173348479496863809124835235686532434294128998819441207300572556454006629904800722984839111621483604338011363740911447239201357475067598562941378529077581694973169292320074421203690238341883872244187565259842670253318872163830183333031109200842338838956501175790830815484520660721931597427241486663909475666637242886449955330957052517207269758765211430886672827468961431934853905691875357832483959779846901968852635386926951813572719274339896981334450568105209484909145995022726588712345259686589457335100838429265822457794155402492171970560092995601072730773563032885496928006310812537910224026261222963206757838830470948465068785218863181851958340500593607648813991639813717027364031197966112175918026899757295600697811467140496369038159763307664795150210202454620576049539544789003071751581829090858912779472917687729511944161440765661741660426894410052986235953837313587829745386758523550632890531769830688569061373651395104399141895696434594260956676618711985448811783622380095631906218947446891409056607212836066119297953707538473269555066839253287116460106204834305153964009829638864320580291843689021788597136074089598728132165381006163354528481223207998883886987894101877583501353268207426425727488476363006263789990442525764038406959921113117865410787429721500562570908265505440160545489643811964136521228187899208728721187333401233641315101789751929050005889107792701046468469486906416605280909686515251675850224572543317662580920777709244070932630230659892291059386602684514299771349501032299300655918043537810687020215711503529638852694391290107373857249508316003444502797302838660576014981390407235685395522371570754416291291045784444450555710336608564909459921868433067040752439467178514408363957923463757128229737311898919824934253072085126847792464610449044871095037654131581131362467601552741526169842853849458896454153121005728363281036530859127793987519838408781470003081949877821566850026780859737368235575906397258079712705158520865437135272708346421336702025055944558730120921547056228090005323658086369980492574084259699605120122480745037128243645969519451803072245802228845938520915791478624304514815111880675500630357691522289131404947022970340237679125929629462369145454873472942067909503497729588654420686318015511762032379539660160713676974281499215711155054318190039988351536626603666448768218342512137735086391935372281531221173434096661570899087165607963564844081591571216261032571486353340088675535703303485623501868897520115470249297695145182855364013288607473027895333236810497939472103978794622295843849937008391297249215857137432272840159181462890284966668245151245541638597983296898915457126742113803596583042507853682940528259603678399372853207028914096324781399322729675851196193758909840415027835047549842317385211357457442236154059562696604482459379291303364028418186368325226142546670301455496111732903365968090337120560374134498722651516965977006791477698905056758135362038820249320018416894976295549385266743470275751729220108728326173981082638304761953335504144743838713154537557298504861267286027820551667928070306523138921623141238111946266061544021727418244031151962950008489663360320070766067805255668398342286969853590587983631271865084584443944476818221782293978441830798441586185509449738611140825135308684276209485412941328834212854607593464877550994455528341567519968104813346322625651287977446498731228875046598196404216181166042677318600106022940994558936175060880098054292845149111716119885198361276365704033146981956217851800616274278599231507965661205845910273289257943610633883393996880692464352136701605549726761228564330688338137572610122919203802295505483125516949693950876397001770287775212117088401473233537789624405723459414862547772807525175690841358265406547303747457249332639238917601752623798404972887700909157358649700703533680379812476134314912503288391341758014373093982889695638768283546371000319265104268937490322170206315084116383676604499644639026701524235823636783064840693355825138414697451714793457859135298353764538079604428955252415339027193510467740153110744305273273111089895746321808952577568574716072415135864887089962620159283366734853090346069208637926518383744565414100553986084377215118135601078750429352279597585209800954648015414666584595412526548236207835414176020012492037103362599627381763138564131654614828876153557234252382686980244320233928218502230663207672949136667716691742648114304206703563604017747714758773540991472175942657802138377817573749240768623845240175156443751714930230581246210202637984975021144259034347568565252726364620268555480542037101904296096091688493288921119128879726327900275566200299068376857226919839605376537903240663712197433697771487555433137662141920473600771328660671105263053269618871681883875150491873986630515046871849770674575719529615074936810583719035925508521799101614704068825721576757093433671557118000579929306679459207997626272137601089270926797936496615750145270804470233677741898404855008380479674083409797543370023158578506899499785627402868939511379948727882266078755882553320366175600359936973476336577517629142956356792596894541332374492914367727684908777016738212753851662212589697362982102931750775863597176295038424797138546839560864292480945285282017104820018273865692229634880254038277594175962694794986880155562858589201969160476328789969072988284947989908878020301307329627414227456360550291126925931636699639512640063078497509291768830471931040304590105330691995230350452198624608356734884311521787661426002249266213034326721822605508918965190695255534195612120569785984507983349236272593555332803472063701365995243866636627265996917410468805161900276377001890876300732161688027774333697262733468881919325232968557476360405181905825441772932384686012625131022284799583223950531225863103110847616361607660616820051444724451766380151467264194083730723785212915554145166915743218100765132366003551917964400832214554085303853093251922068291574593955439493279654271104605638833890197991693086025000416430986239800510403670562537355370515992189484981726136776721291581164057020610730953524967351730157334531179304120691362226756419711254761132029099457683252926267054592159231316120223359501668386180521857022473143909984811109983569721136762806737536502231876613596074773934610949057783332614348605767091871167336968938934500953151885868069783922509268363632183614804817972632992686914230130495648084592737487734362332514023798712696229059139186057208986533187855798839447856002963224722285583341628897898020891053775219517718890414591524983406130432628207944789585141172662592360495082316600120181235021345102876540371676149273185522828253393728319825243440005204098711618302788720668950095458277725614203258261069564921522769450127330490326024033624439424462378196510993604998683194188080275743635953990030688057360649142411646561935918003570362856187290258399947635099524039128306834693538251342668945872677628832075302617175918865230103273645536323634147245424651489730238729793101004633018892686543165262432389161651533895894223760116882146569609070710504260733842446739641573261013575432385536631717629299536228035522644809734539814962230906873009492704298151043516552624976703744955436633176573786581028471895053350799943090669104514578367807033110223021295777194566972232769601259509617104066291141353320234075308233975616253908724656647770476816141066119872033688958414324020087947980489101718664184249423641190099589977192901667757166257426644258047821985715273557214125208872204287576687921238441855986416446593735793742506951778907423358978819032702866542839950759338846003499260772684897241727517697904665284214695178622978410577905708275037743212983154093013331377251924292715200539802281189696946132519266045303150699769428377395043492817412601099806835404525880304844666183004381378817220004521667727940590416193726751535752200524111429948739224692892322909284639583813039229183588620119041226644785835572065122910000915991451742069494976313702700200096953970852428818382415773354180295261709139768544431071196654349212566597804935318845579548530927995407938894300219993682494664083663906877057014582766189936546198338072908521539543867887209167121636990787565854484012086401594387472764378066717323417365147214315235062607432627747613556014489658232981211574518120986723145629910220252470471225983889709130973715927538630033039352408743481189902665874585660379750832446306366183171826090716506923388869841327909367743052829713321708710587637912894995992694101635404702359860702248142984778539118572790331805506190803910813707772047788069203462790196802964749848613082874762823913826824902404449318296088660699268758895998366827763781411306912864854664464173288064015379983145759394309227159174833410546365406781345901881212457270907338541697550235164879638824837459014541438458911640723288801689946872148556866784508517384496207274945829360387291744803344353943217385092951798444737041794907339973234122845082531400139833553637635607507346589562018587629549794970672136317225153189336383188197626049141146584444263348011008629868233181312092443063490510849069558746103217375433633837291598567322450975368624927744106394111093532770403340798681419303642026631173873212100878162158655870701688883991055682286808538006377172816936900479472314969746210975692599685237297783132786705952150344142794788118195082372786406938503560257102121188234214975532091824956899318170422549477329965200462082622327111038591965429807003084163674306571704650992150365624759814723929173575739014653183825902663927731594518755791306196897116233264311325960282454598249950238096689259492290815310142741382886760632398345068412809168265855841647362095545435614642166449821799145478264402084958366540702357821728414057820347094466454445097230267966228612326697114319568532671462704983658320590145754954813515299640246182510105400204056260780086126439972827301734090924600012482512080854690484417942286254439535689456495948394684172908475462754306980949689151901214522868663794820332924194483088706988788814967671377656593800385666957434704455019006646158997135725759140617573213538620477374350564989248981393854651729737969418513190798289354204147123165826477797048974172824072442462743771227154607832466472483417042040856386081178128808203038761126613210223837629341811871984953037077186405741680957061553544184878926850881897067543507206727005009776590073918030380669350935679822337223869979547757780550210856824155236756361721149371064421256452450699530742526168501405438541027269412049456289510920064821406363364606330469559605651188113138918453083230779382730776073487586585794922612490899444427854282783848232197819074856887009454103940769428319023636041824430321540238167136606185050980527582024201034797752585994473556160575490846392000581601724251865347452493765981780381927341861943184817003713485623243969895084062364533381468045520910000406430012203386023551642312163572222587824914508155766785608842703561955412215365461685405600981188766428783822067204468800149040038602486255701844138860170982961720666864841097447883878322047209080545701780608654436497803316255075211053605356921241692245567106053032324037059752190687552533356550819418909516507142930646064575431052047388949147280381068852771784170338971709137709918174118468358771647532754066904397010538011705676065962786085586330260682887921063382171424620033882998157859233411914318724967510213508742405194923920368237806278862348910738975475752919647681441015976887956891789729038772944720531498178577867007801955667492727235230553442729784113914116745700975223904620822222451694491337311501920516912677836191354003899078860954246403021090019115998908866341085449079072060797943747224980296759313897684763133527395731429224641038651867612805457724557622547454995256305462787170060328270243152170861470321878109030452784365849419901326757360178114743538275891557702171281381667546633849681820641564628659773040379832187286560016036518693155204631907861005321319073373872431337413167767958094969235637712103550450441278563565370555111774236765603275405564573096353680880461376040698425141831140151503644483504123017527929438785745223680326076690550059326096782598338471388601334644106031935687231790815406048917405175459365741871454635045842835681175486952907036648125954530503206096543363345304362424689995970967453841768089862053851308908321994223914258753107445489007085125507481932052716025384387688702998720733632958224919415980280312199714142010196338626537686998765840712662900623734627788742700324225345606344493372796645293545328967841481042235695030886546557527158261747967316805766239786490732358555126700994849756830648575624986476820272776636329267296502292967538263518349846698543606888857773866124657945701280625428418851264265160694645310000858331178783387050213211327503721367809952821606269729480922761766598574624582268722212100018174477377463375838632573486540369309956614392581482695291872351229209546349979325020113021102278346424124865747024689564562605383131326317121932877602401484183972651139315030767783450876717025171058077733014360716293561647927501615149187367351924468072485166501395401755857948496278695332570069357232904288288463409502813291080183733296224500653344855744001854059835603284328535648252390596118250323275899978618087340214952664980558566547912825991384980658960636285766759388073364600279008361310218200258734377087220499159377306464584558139246061472772542177343842616138821317313037012489639295596087054077919761732601842153589249818595613321401475099526929621233742055236650017913882271011770183563555032125194209324574963218707849172847459563988618332004958903978437798036710338714817426741990845980310300507592727843764881283252459639034815769958843507159035586822879070796647833368885375691733577250752732327455980075901851346583384823106387646034691607510383438866562009515806327108473130320264958766144414599421042480436578446739850625817293113611233799080419894886374340721360861582172173238758166556852174108447727445784841844372873528029949907522527960069009523017152689182291250654510886250410085345257339117389138187439203297159013253965626905363594112911142127495736558517843928181002160384410054418076622797823005256358962028504608634972831422882419021318852748474859337331228868135570795046657908593653845012324509926150720405158337012981195009220080202978522220530722756496508253920861702686688553508069301636617750389413033896421801689321095710508268153818124790374350873097045288062128751149620906114603275101072475503111901277483946687244995939087847228863608829922132701957225860923603249676344938610399821818897675502811170358459426902882108599703336574185934696649150217190410164201295679112145142329674390262832727532711528147907127587857210743244197944190023608208732476368091442742199664459200847922790503323551230085737403653907786107888734218395356779829504380627415339591319921626911992334708796191003872116145360634207779323300091099106760408340976615100202999888036006892557379103350996675514433091863053957444769972590548493539745093212456240008578068554283045141357023779312073020938952000881691608382361753835488262575850552643636896128640001774341604949383231060923430041214306453948177555372595418071889495883930026345081956781153749473922875263938272187204037928023765100797616703195221977666738833481378803276995230647930354097644140476719787382529996218116995097913228123831837791259765368383468874730118858821309628291559942758414224361099682091528486956641615719513566391389723791921823727854796154271070915194993206375825742392948431441045547990377399131760023552477060995988502134032737473955342044510226835607098959775353272917161798860352705567343284031960494073828125773534040998194365359244313352615534904696986205665510415618711227563337465113622942852784513272908774350674934402786220712186594149649434348680826732426134458640585033525182619980056569585884852401302658121603154394149434993678868350283624803029361062487507382096375220027530646705095714964816672677175999747069339011589338509724311289014224066648277740136951589481928106605771564414922437831391992894339572199735165315312569285848810035618841506314299237584602301189200886117818992182436723370114378429429081976574006677369661642547382815350183373560255494668020486772186779393989608136510837250563833150164876968155379714707648850233886872522873559928536325063902138159891062858936486273007125420183899679714507909765085714960870577308002622689437072886917172771649061232928347984124521540766332780079414066131840263807337142606103226903592672822459128144972310851644073379594981545752249618471112656839245789414580588494015221528165060002423433320601034447565471279528111139078579089234076452882265861968223290468596745610743226620981834381659571933674782961378508900962822540949572560221965428217627307634135055949073715259720227823040089240727212017954686590542472043266446055394087253703318651819920379615252855092269623899835651052058755639976796547428014473913400159137922342793856293995113792504832677266826190955722033555453292859467434878730218155747160085384699051071798406180600647175913928011956887918418764239966953277191661540276314973001380025363072825484711581588033402925567403375799601418571377570295252626269274949780486433274489740482038894497691058171750332483017380130530316331443433082524731186268013587090867492426451557705508816425496106252885949934973329115582381539271947511324649345492596684884656886546094057286192834853866650438464303535715989761610076516339242812532755974113473980357422973995638214119129621003839021831272481606680655300002262471935254346380964113284048793530574753595296608774269093552493154638257331741282445027370122627295667006191804305030063465564703216016377515572672782441346564733345090664588674876525608796201459899512964687114308808854329327161518097122630841645227490256550581008986848433172594676885758542869389840499002052681465588255426604201222258282323009483499900496592576853717116823366791599900883516475768830615564841373101099935941125302499162887847794821748592916473855479719996943319418939899648541874173510519627380532755132242507239014781265117275298705520739187248297403566794559157096736073489519162607710790101488144514418736130324001134404404652187333632132873116118408107972775649919812285677245276423823318134684055512637412091120605122658285457360584283927381190934486992794327281342844210141475309036754290401822152226763958413398002992967466004086569696751725251916947697178725009665284845219735273115644515951967980811125089919764210010888839053887311627518719460011805064708497053148273762384639496446161832819226587101782829856836881125554568645365714947192673801791693266955551922519152083102343374859907318466241618218275341269464893719240172559009502338587888500678876030931212371422728040920170617486654475845991647015725214526524117738428120373811246754035285423843734037002721180674867836674977755480250283958352169681332645845797718814630457839820287991283678543372666250503102231561207621322546464106343043094426335425593681271729419198272371300349736718663473617822423608139339840744734808353957642209626646363518049876307628470486559370713216027837049853269766508020609774942005216503398563115415672705836311598524199167180386799535829397415194618840879490594023884613246055128192007503886649111439518542299476982861403419729464786779006714931476275329970082358685696776938074409167330652608546007463014001162215478580826242583952601110087795881956939200422003162747293987656151837321813866451796637413476178896443720567820139331156894135866723025348313951758878271089386558933856338836109946644156736206544063620387706576923455609872876644524996762628751151047244902828696614188478058469676483262209384208555139176640245697018220512201111469939976491269039188487694286161160601425760388331890143914070929449587862631638962524558994561979774403732183346710794327588499426286460038294823742255207471556162282145029516853674191420757600210201094231625546853570835895712757170450214236272584543206514759561365530880436703293964789517030747081822995141245579241417684148465947369512192393414166437662584696051147698566586680317716062916398984337604440842948126504238645430887341566628499299955047028710917751751842967992843340861340307493112273614763034682776373667629365011387220819932846756876057451022834845739417295278397559289924936765004658725121313368477137349535780771096267553487012069390424404857278092304861273388720788519785875072649729453589019353933683287622006454600264975818555321627051294135579126827904158525298334115658583332216256702540870783633435197336172527615450795816017978397769517941599212415130239564542654317187536347967177041138393893851160375496551278771520532743908658926745682796128600200326230347954777643877583994691396591161025591372335918280091853430840470209658743805306388332269175569917873200020559043135815199704954917296906588582840759626348806174955314734997567673809646691769312411118232525142425638269242034599244009485808409279456640142199704366210074082454652313155681416060420017763265326750456017699299452904093416185725633593933345473259098850465490474297343641566867845518244535704416014249120658828097311002689248903433640940925917639176975694354975003964196469078154694785252889786640057616956732266396024594616718794286916542229046041599172145992495824104013061496426619797568646494443377026428062360395366243198304567655625120448211290004406793819092230132080964148442767537786821363990443732094666632797476026937210057812964022795317283924412267151928689874191925205307969376528704442181812097708736568969943480425954332219854163043896187904904572922498768477437962059919078732848804723132651916705246170443297757297913104860560685825156387918061880046689834460105742921959553039531152823974087483981978180816846919844895115797868987714481411917925841217791875614488592978326501485279111180119359373301787303230534932260449576518214180142932463018068439746069285009246403622567944776001240548334410537813870235633299115574242427559265788478005333564458379017316218042106875676118505552145218825952513421483054041228262447408760598529094669413737594807671578217877698391213599253454445224984514189738023860380669944096962211160939043751587641834604857787940258422081117945044640845744144962812373913469816391850812766326975084629319948762085505762594064598061168788974570606913892302779908433534389907893771668946156996765162389061848296821387825632398727066464040259124462781386272545558621170252625793542930618983914628102385851789750260742533915259110129100827467791407281545120719014484645801901948940746228357239042715561666249807924935247024034373376770256911699598647337671731177152282851809802470885589507222422951392955459217960692100026165955127657306375361237059047778152112411966855010354674360604462338068321142628711836235688336455531024110694547140366202570541007426716900493241805537211896650154961706394621839202973960353260981311197642177474664464368039013309286955309623439248759086436795936344457536053439782551674167358342120571224793976134967296477185641819498462874170643615662015076570766757543379837857729220117196152558854510534579294882198096260006901434132633976484128453243376472794933023565603837251287022387666052329013121317569899151048372982076335438674018892922350656739396842318026990161304130907659303760219043808638131958490745718039034055364254418176123177563548950422507322392334849039005303625160358440856744751667769752553836541174525108307894400086392140847159492035968763308888129998945171932499944275973062215739940040552889314868080031281677344398659689951057939108717819954248926205097956869977935982829650817862634516108767814177739071400921829678982642835930422684042461147596985996265559100490667318212797362518706016063299102441678255648078539761659610127727575087477694052247221867404338705014404295520772589753474274261521064710299252917720248041346677395936413495064078150057630868903554233606509085265092821627745683869596050313875322910557876540488802155841795606537741796857529627347496576179637419338532513839678305079382015224007529729814890075088467635229612224315004420921989489161629512476408343269421404896910112393815334611859705572919550591057491463184285490085725213226697629840798735536681756336040391620187082881363351592039510194994081117715066213353170077599579701913820428426224243610022364269807643535390184155435401690027412933572828985314108209351944073073143428882167735007338628328300128509812010677865500323265787069563988363183028858677921205069310919023768702190590755618217024683419559352472259295138159339454552037955630117088992329738140879022229256251588076163473190337569487651772236059612551675195786185534459320376254976055602303467822151464463554471037431857466158101997860143694637350396108522445764709940440637258072655166350472555515818303575720163472376845776095018299902333730575670169058224871651250317283100016129705445759519754811143345497711524080727688355200563797620648029964552825238214888517833734292582927958357710884063598939329631455705727956361731364013615131001782845992114147187821201091689038298608303172090125998540071806747101199400387526749670562380499358738017691267705386861270575029195644148400346854201819872489517410588110780970671760057839731609320503264416496303300145995638997320459505810743915499655723380733749843924652215159791330596081380009392202332065283127459930034472119660952692655147646045976483684155423134379395133331374968731334506799084782865205370648178371104500518579198970877357033228542456774500124221189308178882059465485855503402410156353312693266437806924328144909761501759687915458137812609103448488175035065229692158812257436072312234871904092169203441503556164061407668590982357903768894188962718928780989454141800743884111379283543876924628623544983682496883313860402374920238222876991335673028175419869428425176716028692259477478053732347675853321229237338049337003728477944745900640174367100544964764351933918123512325473722377440509959195837877786645804695243171893013837304451119860597291081369718671252249421179691713404347940205746890197453331642612631451084601160668426308486742421934257230946773338672961541055359697478758768769502765784630671513207305906222106993804114435398318661757476728366839757216516234962103349796270582811851875970295227676012451141379607979594890720539997911551743745773146286971991427880462016159117776012275849048188348362809371775136644102450595548198546234814713281819882343477263172871086730579274094773271828463158141902130545116379557183189421619244163234165842603764915399665282853254347573335212852702993595915306186206527908551995904654626356326686807271822835306632207938637395339173491020650228028590755825904515501313358252464341151684169181217723667760851238863256244707587094954135636977268297209962102996499150120957573226012000692559551350913915682155979905492445131698314608124113762738377386057476038803861467728642389597572879798372178647767680268125161353352106498861921100873434205646439280520499510898971745074027757968701311850770669355335919032521796621731491668225147763504705374832217987002011884229760425200003153833762204271098581922602806646762501366498868423214620371450877588897127091184337037865229794533716959336183853893156531802495759106034776311759786030494208909355794944396157460938459988292051936062010723655243364680336808852013580767583713569957744738052879254654785956995226305862025828304591077588478010695338727939119529924650119628714439535210278890596292417553401229354323820369208415525679339245335940541170691684320297422324511421060209517936513571516578128252274157412986064987746092982945966553918009706439949085343846326322436059116949633470234950946385951543098910469271704506061063967214592708251609115218255702996290507121382436084703655705048918550641547656420029710143571966143720697749107129384748099527666150097886499930368449575890326114269587287699681832793251726530823004927685686492564890773871691607786718856629038755176973156419155088045033305547643154187280337612820945366812170751272890785544118079202252645501785308442084842346825075258966282535285988177897034184440680668495535511612496188504994788228468397140383345555240536171083481412845815215100921349838526628027271224264005538094439227693508658229046263214040626985935254055358273078837606052090908388144175965923474009052371628128826956092150074966815560927858723381900273355532957535559386436203717877217772618148916725549443885121687510404816218847725758548365804948608298701528584029625934775638661856897100551841962269579864886861982478901710039096646025087033771150074027424793340211061011293794575545304056987109244254433973971649081999931868024923565999497327654252890134443586453659136377984827533382592414185006247882296039656708975538493307796545709978283780747114676685804380305298237796403406231276020880970404780361661352858100175819357747970916001210284124341423264273654808016150337492301048922983238681599177596340060105870228066586423198180226976273383208989031694425333785050457527415621785494360803123312160456635279223243150747510430911009359797925508368175474333262209635346579577980924153097989513053170467988879116202068015614216078305759080096890646895506808894342535224369883791771798403856753761086256830292402068790949876311721445218931265888364481709384887391766655732853700962072814179449927956162154616204519216615765424721710639898218821831291752625399466422180589014538679427925302300121485710896518213839278144376771976997777713474046549629940350916214073032155669753321085215422896827849069688414225563567704730669385273837937295376469324185561288281641783064899369870471224458643555528798226271367130611993180106158574336503645919448665319493697524676414654012538499198539095278189919325278557603445838076339273356043838492885219313119210756047828504618031641742963962980954865579541253362548734278267638789057531422401560059864094587175855382355705988670081841441598084632728231673890557733838384754214179191955504016178109474370136983264196657562277745448466228103695837911851645440217896866862050337150764165496678554283661706205077294685826920872603169400797886858402643420387062438547628539462356450640640590806932977252948915375128740920764019309301094913069370268019313625936292078213076896498032959646473699377986210956824638560155688616367327169684994007803867876606725490106544276719337304993298216697314506502015013612277516213904520910643776163560035921086492966945907527277437133850168435801610254164148542744225641236424318807251883570710111424319476938211481354440621041839872560933145859088973636506611255929758567082537306608657276891801690447122546651986944946598092070562126910298936054583586146219627867677223470589001583016273922529959418218651455668664974967667992202805920763161172011350550783028833811189319387846940693594309462638513650102438556517253339876316987856645570774415525205929827542042460192067550893001924686789711944016133780508679343920821934000127494888165528963403621834184630975675190712321514027281841090781884632858011428101719382173820803655089475975714277928121091418005755535691555445404266556016728219852614671878722741812683598245537618305458809412699676981544753768045515514969296528066892774025890398393941497505091409920792675938145051783736873295008947205853209755188089799008353170636390061139332935538808427315583343472498195383104411137153975376319266461105549926358466971822313402823787424943755991047782929982622201151185168840824251723017538248780915146385652510059490054637721705248877668392265289067718134444502938775144583774238615826317060232326807742224662491487813068576715537097778227058721455914822522841384290780053000451008352047605713990483040127228598681991742529199753943724559557267601215390691589106095189592433183856684988009821118949631784980880836328324670308706137016677639405108663174248973338203526512790031880310420459501976063630169961951879419256010296638246996173052859926889624669745366429834963735895897417849765787779605770080834430543057337315159163838754224746518497344896038384929125201945888409982744124832105475848819715914789540712274127811212439660822723776901591801076067054743924584950940329694678231055217546897590297846828530649238279354422416237568111922726998454741573064229637498187616019047043907955669961488854035165357103381447777556194239283492851691865877433785043898500585198347753162456513113176895082670689691423307527927353925361141769267066891957647878367579015164277170433329177957647016123080793393884319221077762434056740171763038869392492357991359493039897822733068765024631142644398669197532251912884672408697799141380040400802747382121016283799999565837406885574946300346980786922432521916178285065926661629284897291579122290975015082580051625597214924142114678738931688063788594473047636762749782282797662006017286369268419107801879843580756864190263802425599459450188141873789223394336994764558712147937447289732165138999957467725648038012202917844592573582092073231506552447025114155528698184241443366923039921329268076456458838077709903552441719199235170132057090354303968199978823788856644157072996250380963963666221089709351755347743976100860780351610601949816224807306666446629954453451076782673854496812225517570667600887484779070849510444695852706766469025453872429567587206608201543366701090463958062865808271109734718973791094442901329014254232316193159457755881381638234482967468446525663180581489808649328316424153204298937447775416501916786525383151996774310907939027848005574139026076456282194360286511620302880648744078192522692671648706101081304586969543706462734853148832422249084497523287428384513914313690362915184905670142044137969487425823217285801666025280721550054507309053349780201052403052948468426619654787693570949581994518042394086152471829923374498496724408311403571351187296493720614498006766709539394052142675685409555298259683051131456885208046103526692643236994971747442637557160147150662819869741776993729418122662454541715760279527463161941717535212026087383443814494762518175383726878809656828203294948802021886465542755646053467130113593121804485231633612334359720719160155461945262589607347982524244215476897325868285664461766723555503343634892653157806241360343089581402320966446327003664848633675659344264777423254634978544333156196580292246511433028550182259776721156687102809045290249623668285634831116959910126796623303753990577862247643326764564478051533091243206908987673944241487263926521020614836602963209857819348575887293653659771506332751006054600804834723888331789442945218614113473224071575358857352329914941309512624824785759892376346564118097748453847617079777370431531763255367752603044976603718288864899084478626329449459022453163769668897778454271172702590166864874583682415351079592838811429262156013009195901421519166511727152218923975232201216034978585491486383839942193644178441146336223669675150713886840616887799749298746246158245323897918858693124023779482462371409835365235644708515260113003909157621221976221401939145933049567216326306557778392694072069775392721315029922477023469048069036221043069971022822550918974096563624608970750442405091555056194753467425673230893506935908985302246148594358109243665937955123168215789291707276510133441063394285773739355844455083071084380767934198374511694401632710950870316701328646540428505644315085514773773810963679889708732408729194038521380354278739356072934311658984546116618291193136888128583848794588618723650834753224542983741912588401974113124957125292857631222120472781660072669084946545682523870848547838642886616868371610484210562207555217505005460499621222592756598888862759258891417562747376386087099441065465092958656496826968140436013535598090778093065846544421101962520682484913284540426407546948007092484571382500645131116038965384663279769810947537526727835647249684313512120513353004287644231253748174866698587118633754059517940451361298317887323425598214953348838555067067597929885351599579182936488589303165264249234981785585715868627536489023756198033868371023913768297125341249482334197492022223319054513364004927326693490496027200672099945919901019139633536057971510564828016502865551234211626449855116440905543502574623891029083973747367266640097510296028224063394504473295249545106827778085008852156912357590726911291508122546306570180381251756013830937175415282505724557626029073485057893140486426715813453959564463875613091364585211373522859788639417804762577086008687062714745329892980980731425256657639617575122476611046449381515625081952852250880908551401296032451298546645131723439870142845844794976622916428906396526711889755599127058258231985776253724983944639019360310857365594006467741122158961930433295088598877120504368325152245331772653443458795501605105447209057484885416548543355476705804486795840190556854140953492002748346000300360141947672587471801173092164310616030905837445045987898898981825573403810318957861318324165572821238740071137123667679259476388542105771203292703463424326417721746648717491142080006594429145035265166013226700932632687437967324724354196390354817825681901145210585340143029877028880548439358576395493066287037058163180342755910510282788610103290169755253096015299993217890807457958570932565055187684784027778956064793677160617418641897626595319669936363573254927885548269394987040972287722095684717073235716090024786383285283090739198454113803123439290133556772141025487644303581038731299757995399929159770590914507285541008876268942082847801690967174247392049384726867272157777550916871188961039117655845127802516486357569325761468128024240554154193917689886800828112993369195481091573771729356606178913185513229558352086998516841282511621734048173080108140380680963745395853383575121758915304987149339954918352185334892440333535215392414982292425039359112638562378408038281556051806471720082299838187605634449649660867138703046530265418192722128329055613218780555172135585635721646951234044228747676602662219478187170015638738960328790831582181419528122107200630437677609569603235443860540867077299157376082397736011360975735849406430548389298003383845217836247457734041059476379370400545978837830865239214841813519059778490069280226587078309712044106234385791085831417584492009980088269107977750432815128945837359379578287892828631884504233789368944052652412617120363052713269804318295324199561879556728521011070080323077783678922338130891308090904450189208466286823311524773834560971093276264823708206933111386058821163120252432717492305385991860897773474089894829281858426135240443869621660288577024139863757741546833738524061809310947713727654676936676779134392435859644654350524589415095430397349608430828120339113150022201337734957048069120817027608102667485465845423392411842049026372458741939379616884881604623757791620765627325415048399017134378249466272213470842149558102854507408739069122174891269615954594845814368441478216184745758640123670754120907805324121747944937529446516836438462873659460818931335654579541775434358154462954721861834002023632137728805029494803570147659917756671386989724917304893476173740398871905721027928934659619725305186788981744303448113150500905340221660965042788216714469218168241898345903915387900195586264483046213442165724275550664189860867935067149235978104260583179416443656826001242797139867863240916531891918876760846873389182821304844480075126869441416545786598681805500241715187273046288976016818484125617946200725425153904885273322869378936568056372219677069980064826440300163902788412224972246315782973946879327702706938276476309789817921541872566371681051157279295185226250700136886573554004508877482371488925115812641588847312894266022178848891367316657965591950983304433239687826803729575140013579956545184719458353265877562472075663215288848613677158281052338215265658075184079599623580669011258543879117745272018616797111451913557939606270666473551395948136690613901086044721092968604828197823656879337143120981738052274531003835311413055512821982444882800233710794977843780842249351545601501810867128435027400999579786287632296784152816020103574433203897419102258498878807521537115563524738968976427530451551446078254983173525672190031260040401779832015081335051849926495046714274578483459789521079495372667141539619665530551477885441330334246045979681130708503355703877178434817944586831310846546100588175735278655034118132328184826884768982401658321851402821195699931071523202274783266215848791865679535679411152649021434417987559891383139053120433558188818517057166698860576936006438206777540852809993242039537518500498515428449628563796693904719838054149523493166157181681451379820764535047733631415254084216478025340752433226304916123299338372007776253697919197636109949273569182216820081873333244664885273106430602239014693855493238401343804453654174777241554193845645306478574750280333577465975817554743390527793417065409086665254826004335735478397133270934848906797396330713380152170742993963235152553100168480230830596913867366972809127684115521450845687265694690640124294062113879866131188036661214470191383160433887536714061891900584792023172733371552680131667246898793626715950915779933145545053015522323460018482619515003634453196707938659832389127242058602291803400956471560873338753780596834181831985333266515826066271596676880952900762038672775408013447451482554077993609726293934999101097168628126524188054312420516041408646772787398582887376905119218641772220179624470135131505253976694275161799677279552687270385783958981782730901841840097077550242500257259546766705934806611058052471709089364039860358343268423233656910364516968286042257043426940140234841813221345910120967129046792055427032954417187237497456384631376823079434483202310187449530095138312618469234687888641307908886000954852793558203380149672402723185549940508905291753316470476693918338519447797616965425383600965175443896998146112049217364049142938900052324253061565358087944107754820560117550869570495203627240775759590157148487648277547323442271217747165297181944141209661893003517842008403502817157889754855776784728445209369024356678751284285364611721203498543933731918984961661704847033747464349232038601359699190564011301689729678676259435965962836196943519084936047598137173782302809273245470965379333800434774303916618786955890569289725946755527653557815377671488251337224728898373252163165750500543001051128692752871459080586771957793609587706520965043719671129846112223970863407016427307370617344526832385966961365653926252139987629101864182325456510268120621890630094257901507178378908779587315568500411228556300576435768992553756332788913500860200963446728445586102865237991359965574547564745727632420649868478731086469492222717900090576430718415616053536633509392217150588592843051962588712131936921847128808739644619273633852429678894849704936340892052415409474981012554670767404033104734556291804890660601904106227139579927567456770924241622924782790492026522251807602579127243444050119221432012916379052825565657454777338512165288950133305605972718004892698483502365081926234954394127750517890105114277062281449049453329551790699387201598257791084411291336767168126072861021894232913112132536437126156469485246851016192610618686128628002967919581939068099287144448784899633905200163455560575171524452054393313206673583833289592751422024354799392022467480942647802211669277846200829421494400350733726875930630382016721062719238665945598101410476889532771776705715152761698210764549755786228852621158743952577276733754019694491683393812590263773746169044327164527633505024600238423121624262821104955681232771780752587348660785863056357580442524116827686182588052275516389740455840603553378607485123869990840784746047915238657610754207741902792885931599784619952295955525333503093469532524636890398711123766556500020579922005199850216005336306654062307425373295036686699446980027246556045754850866290816881573383694365191450505174640424034516953617201780403533730149389665270709199400184437464997474479133458357613360452909774542501752936882848988281129730338959207199387334567255432821066326702621337563936244077494700651542172637941754349415679367694608223333130705853649393438835624094279020099459194617170847453830184266057481625158792894003214054422957075580251342942362587198496758601461619704956557049053454526053488945023367508401744860484131768722194433262920899658751657756742551961883386838419609096863556179133981748886884267136464121035679387564948784764746693848363757360229233148536528528754834555582355947920192231083820144307701865701483730902268074730061419135574475115595515003766552655140608541414317022240506065303883236126912296846376498984035164187629822384135175944443953233246167450767327521282598594564980710505550382528504231707746413299889679480118946640753337402807430199026732405277878457832372589953351385547544768679470218182930883620995913127400955027156919096210184643626201881614386114087937574388483302304632305793026328181380754055211361225323842434373302462830278013143928401894433677034203885885647974335861159413553213884847308881342311894234899723846906572754322568513199170465346479278484882084707923533700036382415105217711756891350905257692652780329930565508873920046503014120712276433244905675977947937083527305194199150281338281708518408431959724099665438486520473592880805979618467753216782714183187737305147749759514887912475460946631368785622045930187922959646600173241384279779972649827905517824830760146801249889543754796196721834671394904471993870251385236099224381666990274883641994617450075980902782111138682473130256501593248732829223640493283206749899121392553469278421656275408747646049909886121337003028400252052738751011843033847879542572695726310700280720048471936599178142185874196412843235689443785458587101848479624220645908852984645693697571515634342983882185444385053085622984183735822397192000640572699754375489415942517006607348344285512096398953772098163114100469688384359393919488548955480601174766898150504569813612275373571731007377403332216578074821606116987334581021536534417134647117985624508717465056549562775051906165003020016390144645600176069366907172216713017641898259380848148711981310162445002163407547128303072601624471714846418985397721206044537936212661968886407060959628475908134184103081361633872759522984194405832553440238394420496422483648751755159579579062256731170312013348590779763541082760698717435019681234709867538986423909689240170019275787075897510475967955962107547777871676770192989802954800770813874729600672582083683205582830032497263128249462531318174113109893880260719402045683009274072222377506873165303974556438132967425103631970385931468540412919037436037765193357928128611456850845197906791475874401122574524967248519714201940606651064998386859291117325600438244727495544323444191940580607434554307071900296354399172459040175143841639932112709086439688102001900150949580801915053090247915872154513488597781936059258038199303065176580667879905820191636567465448437386083095870503411946514385877506160961171754225118126718243593619517273030074643513340994708720546109814925878547786781474853925599950128885424883174052788095552575567608160837813096622693669151024187321828522369222479058724160982940694941190325550800506052792567678861003111276083149392433788723299952840752355208744470027328871273117563416149427733456578415427103744270030760399730181534514412708004202725273686742559634353989192527067182793706176054364615738725064360790128447666954114579252534136797290855695954809690453090997299446266195100070912337121205426717722841524611251520392093189194762584527558413913280277007537158692582333371993777402213200609417994822346472789710321548091487778124856173711627777035225374517304164045744440420267170167569886164615394997488843585224512675544225934287655176105750918225096282764910474651364377531164425368140055531716057622540273279873618365757303848903816703230240539333706558309798618070337855701337945253506040719994347433409490483019893355036865565464880108064167639024620602624999388393696768585331037277957514089650468303574129977710551476606912445263948564981493962112433793598800587674032435367914244717053553090163099255708796023519908496233158186023851618579845041306206432436217455070828324813083183123081306034355899860502970750962146439834162580497344513895259964396962648293050185375095214279215799765583532240629623695642042034008469639578800127251168803212510278155656134759329580288763342893682853931637407644018924408219917776022389818524205914339331232588007650845075872279338901719779537641688008200119312160098482208733071186270719308533651655309159277982880617134330079106768785335386488029918752307905178787258985986101892767708034053011901946229592457336138251953339873174011253341717684088675297618924531907209912632737607947549713310923659214593644789352039027345774093107585813950317393614132420701505997498276306731266178757076547544639049948943504734582837008680849085798164637560568241181477737066540270853303076706113871289172410566184517430884186128718705560232298632939164512156297261670763013228503398107201130633596258471295957919365525713042246141316318881429189313457630510970462141878900939740807339513840123092646010778717412019352088637238873147568794576018208917790902873834077701405965888357009494077640053448730819737336365955864626425445815104469253667936761081629248041040263816628321576383480847729400002565050663420398664659048317272358555414742550141261392474980582934141525600656548571617653105183029419350800934023853944645492470230065452815920402140311575464758960335875669892332246242995041950983333525338805998809176520192142223605783396522017183192911107115327339891189569502496256284880846397374598219942616032999239584669726363420335216891219555035139088009471215852853968247555477539394270014284388960517804545105932021797852851507930440122792681082192492099564794144807801538550538860886870772065342074221543628640617478842359564207466137902134814471963214990288572899088310370924058219072039631825466598959954771495640083294676926916732708262020221233582876918679314111429683010762964423332326849927247177513412128612952919393568359584274540799755243702144352368073538428422392187230443924480711779088076550047373910274019513809080603500157728824754277722916038538159367586794856790804869019871221129223718551023376433384548489681883157457684424203455629801516311205023437914173805624239145296491300863174720839788012541904881851486315577532334913367990047194440819899717164580440071845795844890396404088036741828557499285604524832282719817814827234835482259018997841679143816799561213721569102369746739882591393441875572743353197130998010403057836704398419834165627448326802468348760189178060462149361292428850576885904094111751452950772794369400785937888376071599486465510551320967020657852676200246430253429123574344276654032734221645050778626738620897900010173326943584180298908175211744402271858270015452159996197487548090653293747881317293754172091810245686320915206441577434252512236084918289804239919105205174216127893733922529977244775091134438601207782598273340259025157719189310901929131509661451209162780421450374212130791251105922156746969292456888379070016362815956918516214248027634256023824618647712712725142114732343396149674043737215028956660854835838185468273253534910564084925028525059807494501059324168009914052802250577738743971214906886652355921229965048609755717072523783560894873894320315628604619564162270289790782919217041190438158573017587245469186523551877382634412419027969252495941329442642420261082334309299786909122403572781379888578658520596783562397692755419376550790433218088172918775744154585935372936945610524971236359693588877494802183550177731129489373656816912273800790841271893404916550847252349977969237622908823160173328282187686449080759554158729840938897768382292685326805593483075385372207543225510519138653841612723856855599880824055387008421210053337481694443079457470777664796725004693845094018827077919418647510218009144653814308433544107998985424708793282963138235016145961424421425759479749411351639148122198646120982744932939886428796278952180936595976288932302269050400757648571678746227841142365517549525586985069538806326246324270306542769357830922196531728998347492376602967394850959348641796871300612697827715191751107352832667807649321350673433866926340835742631953073337902802223740021481936966578742755256218409486733269077166185482747034512601614048192752401598170534344685816783917983653431853408753293075969593142206781666659960764600427883053907604549806960873202507018697214708174333666654658874290223041921961914110593396178701094608607720023929234986815936989922481219180349754506255433930049229639130670113129511513715729466506571522773564050278679124216635606916717986972393583504857730953875624599375993402887815761144770616942875791731222875195775383058381738507916627439181313040653972261163217315981340452549137825362148129756900397292334450992656657987562466489631755901711856090773666190215300480903020142165889377356438421352498193448782110183531649966671776606666849688456511701482838340810066265702827307959662166470170332187453073094572567129005726707076779552924642764664551394917899155394194555009959424252249198675417292817447571737358597404474646693265168352415706617243964839206682212081947178691539765628708740378358633091595638615475644795362917311743506224226075914379409582291566855142744523349507927571194293507375803130328061427096301067265563721923473394201712641811285422163145262744764350261321126706591974143912611532298736970735405644754001946468586147471481937100294465324857296703553504034135444324754788312847460372829941787584648726907320631005137220742662278415810108688152091490864434730478201997185969904270737051182348220655099588480181531105018176233494236733422042384586489985873618550608185799858548080046052784110912177226834186839838473785973609703654746559886442668585384841477688310395362647772316746655696757030254285835226367358751513318547391715418247196055932360884108391188444959277520036800381097852013497590486913697629518849863764463818693230160054770439895752049715582934174638139333858507674842089318489081184844238831710062658440305807221367820727438478807714349045440588550788408252598696695060313443578540262307256607337037570660552870692207333884945069149453267778748217891764064988498152664731664064223401887213216447759901571559132416132190783736573766333670473158370654998184368390375220852067480261938326395849277299475749508488804991165613579304316151488921219818852645651189790811668001916941618505044559390376831679037949063091333426482954006092178082015668199906736974838383364353432883277220908234669155502170636342189311330088659955572529850961205729726234004857728578082507275768784789478920989088988023809312163608540655395279196279043220172751764621673959849592546902360386540592791107275984883899389288400681819021642651971619620558662489824427290157763268788032940090287325174324593136305427392551136948498496559615674617941392807302075922328574664970795521617448858766337304525736186724643623623064444072555832602881882287477647547157124200791647762383317602858670967613595476013407028582086388266190600927160542838273695252758701134919391554258216327678781746637627934119924108234752832865941632679609298316088123316510216051378265968841667763244468634622980974583037753894526480014667084005646414018762719066139059560620051441396052240804411811694485558779498534369301809517436323993263387787377589609416226751231929517198659406189615878953420299944874577293928848100900677942227633652612230786833864360971883014676198369819460903352566494494795895945519394252487315459216229741711454680454064544471902665636753063877999616197957597183241723342543498611834118634972263697270669466220679543294739004059465864112918483600915914353703099510759286838938271534833943487223410034690199076632846670619934085400528839098577322560101873697743491403101153476329394208138394536202362575928346245613949914363471822748094704046554806476872639907437234205154387820044918672687572213153682949126400234199549234790538196505414322047740712306760258118922244258393751321517194654657853359101451478155838405275945354621001542551864455642203064411317676225107983777780674324276732493909753597338053363429667120092091177869102065386251063021574148893980365014677183449738022025538492459281615238806731180625967193378292624830079075917292550956503330567630126976559110879949171346875410034301184728253283397931904742577417772233858016378226296758196854153891127407000494249362443696918224531309555832092466222945009411050534062534310097379690359408451758814538136832727795779591811268384437083077891283536930831975679869638769042149855436903641833903756586113961965360513438587826167688794753946993162442788678513525463137681235540471174190466727120756030337637594775381534580214875418111645558123969420398626388191092058603398508152258256876309448288799942078029226295263386461795461531122016819127475886149909365902221268729162793517820416434359290693959178088084113249322887299524262495282286442685281748832793098717608652562179064310251254899116310435121251860258494015036081861948550592835602270985137479542205415348806931513650917527255960808005820905603788904395514000680274098754522758169298619005558506350019805131020553595929951222228526182010732277570063840147096774041801387720781143362798851348600254646155211033933174592936128984557361036079737643304170943702997262664504445385521651853679762712363786118004583829392434448354465777521404872073809037927055321480903299010170027712221260373381635736280542138080653021703808013724816569506033779372076751933365870524396733336623978768469236080078653268409687405322360836844419624775553524391607351177872515818172604817610856084807865770123612682538957896970106075548708728693734196317627998972650404439535687707195444059387377635239535580937553230874799224075924046356130112748276614359709057784539407898808009062473858227799961951858823425942617769884454820480483066564397475434967280027948406447459054348177519942466944451304494915753070916385128731470560917620832364236902168389489105846758450576893693643940892689915077290106186759720804527869778461909668877924327413131125332049594865583994998621548462777551888012844193905876665834955780103991798955587024887832670225741310373839363248602107935433229851489184724958307049376594185416701665092143095993409681223485293612458553717139352573820307423375877173798534000691867022377081174090430551459091426927780461937150588419246442576489803683275586247073443472767047140755914645238508215675790911323305293227885222990396041217510112089809257329248709700758875916585002121967894290308178104837722069677445799375437024553042271265796506637006530589430575161145146630978073307716534001176629713579148102068954670315371902395307987097154738232043130122990206106694765128365455691452057080527051877820519276215568795250395811487014960972886397100978428931137826330959509642803773116894245039246723165243199648178454797749175081263537548602482729472206202905331944726008254385648006476429732700874505240991737088206108456954711010143167860223041633448913364758281835128132331194445894336750330944418349661414637874825962077156106745042462915707142949450678649025474997202315380453417923927080676628050833318785724935466653176576235129945999694584525974239996243963297669157919177693010960427202612832994529532580702461366296917613866368856093510955156222371998606484816648126661609771194728293585286538695357859514410204967913296247513886594849216251032888488804330881746055689708183074362593577412450841309766439901783171142368011731356397776184566873556997237200199936477020265389573194562679752871587810600598643841323410487422946692051724402366125427411595272521997129083284709269053164747585900072015485491673184665187965888700938769424284914285228108238742082219595000000165759665086182872264950389012702928609588900398362527788141289263362312333655053311843174771705924069018916647355554115178335714900823146985190294024283747756873659623436846169925085988793736639815813499645880911459588591940478358506387147594672161265910492939992758960073863289186455392605914050796264184468061065397118517782114475014584354693514757779444466209872233829520602276726661254191341913001594834452251046035369314977318473689273734531102645907111120762919034064345176619382560449179349775615444685172399581605858213650505772645434561114714413848939939968555708451088982611976056392819232950060173892787448557183598996427350657816427053969654609215522426393294336893668376098402699802703890974282054391322806813606017094063157788743125318253120693793910948498373631753123850963204922114472654043638266677497533872830924482691171869246626242103209535277507332804450064239874361013381231482053179032448171208283995545217574409464276100519044759604062162759781926884158069669159898426841153512822369317471016263321360147331437150664527726868599144769900047715859331895225964684658204524451092112521596407051115833819962673558731548833270224923535703887628362617906633245934326691809101613989314427641594434204191983358369632580474994285567079241665252210098909842463094073288207291245692237931782155143117388971102662217124301820324982587012207268270772256881780764293364780487169511810750074042586233866463899244500315493288358088332269476739061248786322965298329100660306477507667766757640293337154900279739421365710607011286107268986394180003883219572484011270542446018196692154523720958614091996426604760251938498853962668815456837929784945381020101072826587063058625994469548044068147856757638242397583668202104243972426234876737973216660070742846940621183301469094387886538289905371885442142835724415865791693814662174501844014037653029769471408087915536106206670862277646381469482707040262541199018985417048849101805459622948678648822121367281813851006918766320450620253698658639565480539404048799925360443364596086576671958927763922099052869351687674207756651374208130200305073142634245016598491730775123799207587703001717811494158287568015358617904897203584195029313084326263842323091891599018364163823905357920839583860929555457278293253601574806958974015432514535971616883549872733634148018530133391471979857368850292335998138444368928220298584539574610182811022269325991755319772963512490375641729312627200958762334896768217306021215585961514565840336572651466849768091419968725218977880935540419994964563378536929690317450508054325507115337589980966866236282233261904993001194774643387288190376827383021839326958063109917729682147543593230245521143961919501288396371982916585607566433817871574905149316092437059172367336671000885419912958880485352481494096562391364754972184481052343822503348355742065661948588017805002312689902508438692460983493723625064721476063937027613140257005682372201775752034974096573209303815323990300056168035735767452169504494842433801316911558172754373222383531332318298346402359735372339809480409941693254596622077916077302022005025816570290327084257427225761641166325211741814510761239142418825316377243551863553039151315751419520264052372440096309827885207119957988915670839216719918356726819180088375232220912554338641233520441731757593721019619302987951441876674500899668964262545833785930807189242150620707909065393619052544949117397479297139188390950018964415773905753991531574653874132678556258097139627535774726803123671244013925194743791104350293248091160032319540298331542455986085110201013674969997787228532798605732261042661059167596068406050818467244853912137782962193081390557824547936129718046876282044274389063055963946953703682670200511811450438644430802222799793225603658950381133295774309223156505946913730943253030330024379976521643167781574483335154471270309542660978212891321190652635455103202336686024578806198777404416341505765066643144733700239513985284037795359955287067303157665895058485498519811499044523691590330136197399753742195092221689118520090263980085210239657269552279439918918824011725779587471171877114372890759845902455490323712901907643458261890100300782404343943223982448509722037320106162985801341670459929757764278961556739246198691392688157302438929803288952851161844092407072616471731504359232985112104940109202086210080407877814994317837403509666741338829090598968412795756335114985072263145823967496851589585395435581932523823106050611697741504744471358498776127584960580993121177519684236725652224450034799405009271298160669261227964386709232450388600170191072986445435104518700634545897145086921566815287878135644616210386712702135009797864445353658164392273265256355145860681714644618544783220922165698254036787872125068062668287767191453346344421830902043087272256992749329716665074119027026451000224331828677635794359154684707930093063119477725818559136239847478528568710274128849343120293656270419453752363723195331558219863467293297006085469805745654947159388015018190076981298855335825349048547842500851270852686632432427985981534155393955374549833283884551991981015024413562099893061948392117549932011633533298852076292333462006067747700230295767213560875876929092334795431566876896088522553584545284471442439125178599520255514847067227111752437776204426954350969041822315591727684780391092706182860168629808488112261065844558128760191552820348567267731205142840781517999199969901526169284436075214076677996015272632309819359840568801297199272840934475868539405174035353370401917480750024263640868364269160461386505302336675102538802176990728207038404474911657473643601293110575235393440395441335743099364120318598492310111176941684062528625812505891282164251610305486168931691606687794955121498012883517804988483540236389048357939643872195085904378694980563876871233351278460965120819564791529035927358166945414424859806153741846043598561419958924862985858040878991621307906221404526694755946070424013534935241966125708708980284273324336939232936118566992406381370811109849164712008829312275505943354062252860518296940938551650172733059765261004935529950247037325654789982149641268881421430998022073100145428848284984911479568428923915332205852156547809623145686632671172639600939879685600411189984104211524601159878281779284879663708877050151339283556081480700058495338190154358199196035815350463197007700728289549765472718232850752831616121675513221214032481318013596758469406027689802113850433684853486490870006918603053872579588230789299699504681742395392122380700964679881824104292642085499195237655783647532187899508496313840492057987787692435334064754664341825658663663892801271867709330195347864073094908508979323998091115358258788243013062317496980490961924562645896102631221462799177043702289350107954899347260950349726902504774774239355802225861217165308959707611396373488848443698431503258298431259919533151069033697413859048592305826030098797859071369843515912488509131898611534674349772121916025549760985426809907901840662644123227071374009513984323906377480186512834713826600707032644595812211776613816428476072099171072484737851948559562380721714067513083085243259649823456524533760876273515105851616857658045899107336576967256646842267788772184816781772841354489338412928840280223682926918795582978499595654174584829727883131381768514079335895194660152673663288296702487038920778433449243066638322779915053000762860266538546855851786837638870880916047219626506446296130117255343608288010802984806521397005306153067452707446292333186097670135810882631216880321228775134622765641707043400482834560392842447641934782762927738648818522108495311551904033376221283757954403919218497453694178748996207127023210591414391854550212670876962404388187118861915007315358853531338165981589392299259223553420355925012570119230140431323499402472081084804984890396113086311136589553232102980090396149475802502707403620331785663833585161537094927588352753747521712122293538665557970462191065401325259716679614518997514057196526048791685272182052764738521215369731827077222530158599090739583757451503454412637408389874893939298090337979415754609928348541562435554765930844180502619107944564878746865420255597825951399973635181519602673453186777518843524366101515543436358558624340514441914012032616955386916733013387849455064839509740388337517315101514492181675612786090965764837481315708738265437568317968975852292918488539236939991632900887448173269805790075309605319103878961795402912916608863946537794724111244351691098440282447497446212430470443056584281153728890309033730530947603271945068344079346659976643936287774375881807050257502119452689276820722595416198380807606893732989331923898803943176547386475471756457063808576143756106963606041109597876872704437579626726611856237824889392564235891405378247028270514602386451571464689804695971972826018868166110894396611540477088125217728733445830082788976943927903324676912909605658606541588903758169069376330104548191564148713191285974878828316033140478410613519107530281220346020989908571717654544982943950442425859807293410561512116832254697186046793373304933711941801570368778615875860437148143186563987284829839748589100278209859410065580824044627663532739078790732149847553658432066626177021046948406677639858106753702628153223874831234754960966054390725965343292357670862809918676843280225936863334258368609265530527661574681862801987120285572181276521664559332910736702410938207600535640612875803421561975127932791720660949547760702449909104022355391289213377825215950577508511771777651709811116658721757234665417731870487426468810857432779506687992216593865127018384833209973494649375564196900209654847026596209348599038366867386075901608585764288214797137334525218622112843493771420012039362713088786839179785231528489041389411486606438042711647874053442526662744703393457230886056445213155904204314185054856660388796110405809276334461802260571874137673105104833336366320501533065374941930983880131353641844176654141064572024029793619294952267213261695545469310614088932334278048158084286485766356585600005328644436638256489842386334835957067038855674114962231686959015190541349928549495884325855611900438637326995989182763941699529124413975233719785803441434543079516340297782306368332006387655480228926305687856103659920846506249524537694296632597001492671152396281015927280361917297142777304755330062313243624858712822341417079349958550612943322285809132671389849071625626223189303973964789525231670617866582456937246303534206248929216937662150270657465825557717757453368526712726039049093004115021324987561977115798418565538883693422046859232257933605758767590150743193506804374956929787194543515523261774996508465893364924371429282240225054981170888213863352227280418676002513100592636920262993063343764258373810040998906581982421227356451096039142328362945314083452715860967486379302362343671144911815570732560532798539740235850018327732739148739437143691970436425674504491549508907507661876594260861578108008402852533097785843941495644176964259473079953119289266134990700455600615506838380160980659940234911073896843412009804588108697350097685743646617579985178305828941819036366348236782888705445426166841109958673112036010876649138297370692254119557617377631982034897276302893684477507218893304092225801120929656752363301366461637169739752846340028037775012980432572389271639348511138132972104779690317360170551884618341275323874354072812539293623030358633303908608621916866013017553938566861214797561019921582112884977863590188825524350391922004357513691169256069822675191620514994268690196956954578263102005929116571728031102750660158594775398099289190299286550495898462012998238276216892461592022916504206998493894051316384138762118428343970786960472378562234250425027182833306476990230347453218252656099033590890294202641337604688273531759600108012405178559602835779308011289253451043815997338010915921736286374056085164869543922408573937865397439957158779260333565746917490781497661084621540719442685398002457730050807911503855165960437475204179951894945382283828769960556703035974937667692794140421812039508094995862177962238331980697213281545308098267749239285531904302856178457522846614233881131690397662293328805515848767782485040391090133105660911641368054449648775419624979114016048865486211933016736024856059163516488557245249660026975526713040405343098145996206183454494626849866805896619194962315138004680453267995102470911958569551241182004379684509781621739726320856237651595189783939236129607578046248586897827941941747998860614322045230342645010475841943915920324557601597218778561195235325058191214011608523458995969936687929309258710725267235721576224724032404180967640331025122163054464994392534675676657079419521111293345761885396272052182199261723198092186052241870163703726812609614675959635546707284620308604891569375418922165831945657826498702369261286741804266369845286660184573453431013340090020976953064751009229179505825277658311065605817692203277703400446045026670803735961747416171459733323524228501653338970388016620841714293227348086634016349757723265794116246215814570430902777936733490993396863688049778425587888496250476588824042042465321011433601864801992506128531685211413765360654145353872106129512280122092371908999767838399522887705202989432964378196175928290022153812980198838551961637253161669795798476049956306628116051533512460675193597507866518292086876518353763216896793781038077991350811128128235727570418771350032576906184305144413913189765916918072136729295617191849349283426084997013954525524415992797793763599479238545339790550925179628406248594689104960901897931827924606462744683290311400602379732784827393078997959858351248709464882682247268123466532756790857567484988159604150244804971583797426093212416973045244478242264969932780366472819875541764203619605084861881788919203530593143792568598142365661582793511752393199013820255132983132212136039616974506268548066291772476567285938607675145276091608826705893811388344046459305649713973534475437953369200834996913397827067408380762280392837477987214489079954682783682648783829905797411246028006615893326460138378160842625604677239791600009045245961150498793806381791718648144847126833460438142945684051418179701330511416034465471113848977355449555711904509280336951254296423712265185021391790176532200714378389407619199072405738342856729181875751382566300056235291466356329605485159543441449814937316971808525957517143920149921260154126267907032546006436567541719948370554274946340347848508962064371018631503433734678394969409082252813378603890590913565190803911229330079791275011967546834551540035536778225355382023085833626819713231802453070601117124156229070644332393341969343788716726268915206756184467402222685349573403163429874942246350591377520980313586262810419660674616567192147706776298785544860165949883243220964129376013220141996481599919719584470541960178714387952927496661391399385052759290025873035000400437634547658618986764353411877242460499684035699274471248348416418847183692154282745336145218981046893551181678958872893834635749002236475691887420093884384439035096727169546247476993505042438069947001429437380972984457334191351408149589164965947074817532570207785828501878559677642172729474228217352233592736716899931627436896996943733931780897724052080309509314749435310524302046885623141348916496515012236691547530557608226052915211763699598015504412651964390889965925974940545544438873139574701641194496177881338534827457921696463093082417785363740707902163215751875525202447749484349912129957856303755727447872497901483689689160519852128518737644416528470931557118287719142336880639486400884187474532563112843790210792488594825448255220070155790742773931951557719576641000959484493046459073243424743507186065935984823485704964945352727234412850671671384723948660911644237882405543310388258143328136266554705964071123755479171760225096436758329533252451013368605784480384056884090018623684544642703532830239432115251575576460885820175276228598873742838521028877619335363426084986960509353027287073873544447686259118369585182692465665452662398895186351176083560000653504764958200707374372054412091054692472099078777621890038458960645575518935615096158145265451839046455049251874759023146052898281051713516514770058728101683629173357363084294249388815797774886074934342265821423773951844649453754337687871785997938481196677108956064776409934711231547853960022367604601134733757461285946751077934245489530012427607101623707781338871715470668714708690135688058296652249362195675971820098828764686043843976956345559427748001276731304614456647483883393301572668905749201818375077699150603269036615891566556452658224868344145351323067315354096798568540190455759241148973506800349009424381462293768665600122441757452726445639570539498237814429335852367884605650275237428272682206085427761834266239385211389796524399004014780422388569149615207496868413559647516677615484939897356126707995576931873510258047022253159847048794856493072985889901723198968673446517001344987060140304055843333925084071997531008882235322732650640508749467353720286744830343480054509665533833738190753873709154674755608612411494839852416591700525041003602513144492643821722622964191461824916661630768668452302604856502317715818502024664741943043844964109558627873418552234026058433640423886324549342263359351667014754273439928299828124056862560608149910008455879212563388840014108633557189231697885159355805919146281807762971539278665120744552028983034689609833688497540094275994923327899139782288667397508792663474406711067447931634735175869933948228134648731612360206638149529696285590931165939052244247784991857449842140793167694766994328799464744046927600227843048032810886003748813509448188851857264695230187102325610242873471331317992929709411779213730867588486580934427470022729480718762537619278300494789478656992565280689704898451125396601833504091404924029191671265381479920273167769285312931339814972331024933934755363426708478386457805259271376624240887067415544358209043011315800302000442322650491573240229731305113116147580076033708443230070416246752382131536900178201334853552031412657768301883001183817792465891181996187573426441473916000795828977974553572166362826104653250587081767856502176276222259941744361743077790460071689605679798520880250779776859829226044992284697559534487693722453814053246825772129152755948597331880449587813508886133411484353469730185999857550957854482858714448597969302787916118152952599740589912277334759702542793755516916699733877616861834654517918902314291978128129576728439738714906355560738170274329062239719114307018177261941587922018457959155666323842988882527656671584578451818706878868580216068569769957027895633659918139646799502039386728884729881037035539612100001689044543777480308151980865228515056135351981477397654887682286791208120384862645927530877473921999733501319403980646450699795932651523238448925715706643715842243786487166091425565347840823483135797351589172681152281975559626736694190048187822554139487566306605155262096179966014343493073159033221285341462672329233887058558461367057611691459340092699685700062143932044233237259622675544979196094152979668439451671376887785927614259663590862920996735877865708425098974450541284531154328965835813695028943740923989059041938541739284725340069164807062054924321791130428805432488249661960988681646854760069692806104912296614781913980867269981666345109211925936173855438551727780699611172537407130980836775486030790943150421252965990135543748345619799909865836319107399889832368876169437326469934143237104375544548103369593766554699163498463090777107479036408994382407257733449625535817887951510187232562056000502700568209098010227096576711800849937612940460427173087918900526903090123419401652285339635036699940730979030222896016652568935658753457907762485644257043254014646408341450484156942378002117702011562730428408564525979683963088997939028046639962502126466742034593041674286914046542776910065077148762226754004302006753941839882532996883059676085092069514760840383866985626824229850454244644367195032742293690706280325860067674992456037348850276881101681559556538887503810961544710866256561496551628859709434443781486585503148137615165163672329688301352259326121836868769327744208116869339232474671060178420418326111031665391297583030638815320209171355650332055604779375550068194803751686533936400132583757903167478544978931145889148824121354133290493028442079555814165870750579734165598545105203529681981344352402341408147569599598009619751063208206210686718557182395889336123298339941673143789022780110190937943031080312293742704096359109431547247342984965190267700153339461064551582700777865022745909510911449652246782435494605751568985768994179022290380888371292397880031310131433148228933376385662997808385172797083707240283469391360655112812669315074814749115008816315918041908809951103422534849770141927839494116643588157898848147910978820322534282850402365003765885855956018656435717481664456049894993364343043265709070183108016423185475378926036209960420917619360837615821598894208086992882183675383115142998033221167957149188816554237928295080442383219187585331680742271056252250097658988816281906604096164163675448857891643680211804292004467541308120007066813507892168426150810539554728840991146819687412489881320308603035084649734584950854043453843147365487112881418218021869692831203065656160273733263788663107209136181098472008249581675603872571729349100162328954183233526226083009457285057623195353219578374375792188499364627200933061575950768527404295891297336146022187650028435954626238946732333547654358060048252146284936522468952802565801295152648322087080326491291910865947947243088049408512919812386340599415907039295631710357359608717905743010860811267459347462550980384350048509420826003584318749153968347881553155383679908726680332882737964246477086522381649895386516441588479738012735039227039703522133486739061439038720127004892611717023109761080727636733694817620607318272061486051486092537374993556175337786069051706331053591579251788453208153448422958400125376391399468371587420546417405846976033794812735916134465200667328449246877889379477230907770512217816243317853456020792334748564500534719622204273172859503495234398638282422826087987849239066660914443180236779376302305624192878485671495349678914582102816456160385861091333601886541129015098436341271004852903376350657180893120359547631706673404241591730654026165768739370408951531294492307560940013885460992124059317065946165472669827134107442320899332161872474023380195049018571077217664533699064820380813526730651687194463843877105429783265771247294410783101550735869217317354267364435007763726857818223096418304013201784977800234623993403996445698775411428649780742689346557469336571036353490309881281214860957222629784767390774620253220432052136507645242060308126050302463621992664254215534084366012335889207008732367440361744481276971507351483540547423758930291420818755531426473774048638723260058412389797995274348857184258341496775021665537423211303079041532858181287870448211702711326535360252367835719148859928911781034170840479055604279058464484313345964032503240198182079439147655443971555176712890178448543772218850148749268569605879938322031343570756965199768338804972796578080971921268604588893732543749613495739634587668874345498582214838235545094355891299427738049189368156290148005654811937763852423477127891946613509752047556004833095380872595992081906253249187331417537733389824493646416299246792713811012444049705008908591285135424775780581418934680497892806101426404069964440263480138112753614224340723492240060752447654696155629958700486209997317973034326644935207519795284261552834008198114551221783973619841828787349608493446045108908947898600461090280500801062000885848260721843858733842757889410704142432160314763445562885948902635831680092884601361230288044315108839121700721242022344474674923380782594170842456699056547460862279013782027367283117470768491943068173017317122470863216502809262708221137648405607617971489800959359417219277162285951237218376714219628733892368775525453348750846776309316916209062557671612237685855730478433756137097777818548805226710185086943661343806175419617521717392612726130115194793801691147971100376140019544648306558352755714056271824463276487895217838853302226085644333379592038433723515479522094986274411700772970481349688298317007028114235459585512866125742047451163291438694682722951729428024985617132748383908645336593251546311757518669829918451366222045725586798585679046332324443148274887309837739378287016235711140737182002588776666437394096172200884493555064096937328518813276860344703873024931914465643120191406763291603119884085303489428689093982298121887625494725241343406727187229451720646524241364528704159209551965290563603448859844251546430153104194370033867616838789073373263236940938805548479218595262131324912679367348937236151225278691417774739860797112118224871399605898411619543677792478141547904939515783062872979463449572292759434653433439904899263716372078853306985474735553511153984882399600551743026902713355253780635259289404088102509020909796781341503575620928135191830655178615656043805313995507640334244500748969993839499636602211887547927012320295185622516181258016810760953841474077974017756022019516339927138647150088406467465259067242757010276551839181891428339821168967354826178114448686414609370862718954228265975388415874479508091598116769514006671924773228669746363198666827382401305647574034886912281137363055659308291211075445293807143218757068109444723431702485490345400168697618480812308475311962227643260140266395699536764480042686122558017829869348664145148383273219947774382101297732142107448769349713720960257631665320212034545596010091251616901481032710662159676052090791880851961552073489957327143732319627809374448335243043534581620722399305288277023829336123837763688874425842704661406423601743525365224305215991106300932802070461590077792790370285828005311416747228310156518679824501231558608476208759357460643765240899144040568232721747884224495860203620085826777919241755516293391464195019213092672693776414679530223902918872237818579515623105190023028933827218659238504196322521622716417441919398878751625243308119642789553481662155597678102963466083828768777450443280755663751057733522741363106778285252544013478012647530169282236926727513713807397534455651671096918155473763235299049420309214320514741679077240737664128177655352745722890897205479667351205712165456932051714051110162094094963021158961376663060374836525622509870826314690027559344216670136116303406840734962907859740712826158186263825036837646460683779881491950218301614269644612221342329219990818585301675447911731491334555048649552876191479675580399989591740458755101314944503068768060751511733719531431173786540854397217286755083158748362864382493858298003072336529728915771361176444779180099940749548762091670983319944910187897987993897209699711712866344096177783635847537887299140869648821834665991774524580812180972545981107611061118911976940317859897548287413842159706420629344511479195267216995601890383613496294193730788525891803726219961879425057190695175405018551591420257672424517405867882480638326024743124768163973495996109848613324027922316245441233239821399328571851725043878754916470648110732277789505156074137690307857753395051028771045921585382572034078611974446442881919964176155134327290357361704831469737148564106538450166794482065753542906754279069082153462423456815093376565161787452308831984631006482690103958861142040683530585403438143100297183484615880137529248599401712314646720388271506034261279076792949143965902402437638627010655507194964904492152449995959793693937831038938029844605472153407635654495552266215793777692556515918919254959619031273019396913185787916154589322272425008948082909432952174610192372799622136460134150446321317008055085170401297438077842534388718731709716122640238748222436260683342971096959860528917717553017598696705349195611367934040337030951793369144280467152884916434788150371398912167833375714161030548525115427437477348635064489317703497648472252075020254697723307648890385119203569108471181815726449189036672477299978897190616114818840668568607144765478529152309077131540342381200363827984008612173822965298219643419073751549261821391077725335371737682678241558290692534335816913880284885020377659857118235527902720814340676037811515791257081940047289074037912287649254820504236617424571183481402932920778968430130045405634545897709673039765314845504319967576630524179471759321457319035597790299381779494115371087053971911027030801927860619922623628342284366766273755385981986165150707185998426263443758046825406332516367984177485026787632505414497165710285939275834909848481097389388673889801531295484596827646914439732959347292539491127381522315086192746212682999091334234553685296879267896180431488660244392409626468966116503584194545518525125360322425455885665113316340529830149983124038081942770314809850889699085585724347852971744561195351163184053870185680573490863540148575493937025334074770106532896494250170977918569695568142562267547747867236385081567886651503175072374062490005932357817791764047628955714733695668163638108812068073355956678411663456235552828867495418431042522306675719174638400648499537591183041563361747627467547567190991678877706998643081532398703505471214038185382053212993832003390118727211720778163649041565857090490395567431954994589881151804584863980004817953903706789637394083186458695991760537237987433165524112455797368821046698558760614522808945482011333965795120262753050771033732653976838681540567057742492806424570980557106429909301769428480180544830227463882603260469206129259353426544031290020563898386459740210773733705724555765608464478756766457720835793123011476259816551406602193987710335364849829148457260428525749134548466907237529504686520241383095705066620438371813748652743780065150355740064403820043087818430233623012263083138900609711205512324347924584904660984493430605165710337551009884795252326426183770920368208355373531500656263410206972661388607171016253787890394827554746608897156230822366373446420497084982320700325312027051567500492721909571518268094441687668180019418308109081753652194711491135795180500714283311094381891095203013751538714827757457319554362680344747791577554048766074041089624828182016945938541909195458544967645831323925641950811372177718067712678198972492495717669352303471089595563946024403743999541426340023272657251197523716666172693627055007527541242553980840271528893699505801995110118220409792426659233550276368112657514350675039605513345988944318615576157308380514046992102609334701032052266203448180054112798147881218236695796141189026520022572411410344722060455435563807427186620210012451295578235171499381473295271641634934739346502736089658919398618680320862437104323482707083541039926444168106972857918205897723406716729071894749114917458497642327811714276615594080458358650377245084142928459486121177024911417132501864902743895505849811826673210855554064998879644469982593799946879433720039786273522146050030897452576573749749810614105587041922303970532147847574956838068853764652243938160626273393534498964825510051585215457431290375170222210861693925264473192651585141263657761857247948701481440438696222845474521497539431826448626507987402591262381869517826236625184735072530891614768470017609750009823742508932070392938118674864318651865955778455639562371508091157776196369433926857529152305207727807593378433155656283597355879911231212347635310948733535421069788597894685292204228989294329677245620019189670230724444813538688851928159206274030510254907936936895023944501953597228096320954484384138810313784025075884414111569369910470368274250974501393637836788262516674949961265428039684721515950667397390433698550655075149064049609163282367934962398916939374588984528661680148087101735078939419727764819210667644041061068479524234961968084978170222602159675414306905607894757374335293027005002141606417894314932240953022334337068334601554186636676155250049525549313369502483453801226486687346502263370359700133778695270641373420641916139275949892967798457313989641601790223905675847542789904961560199664318391099190982440639870977360557549198347989306744281360565268417941899461930408995396205615526956175726322015970648975833755166906947513166025095067059089766688942932338771257455770371748721023435845156047294330288900121865976398193579032266691203135219963598325017949991430907430115503670850574573193897802019756992602834241957246687530987646794306262209507778749048582321668227967940122549759242028026439828218377083454117725073725918106044572590610726358906700049731987388407633290278391283741216116304547540530287574394355687181277785042191577713091369182807026577748789526839693810077779538064020372625585633452856268968881688929297917697963304832012961372664383235270856367538319771362366860109578577510859232461310451793514615744346863840530264672163973694125941233019868747807634372065306172034596903551876411865029906895449315811221706160276768050248868427135566121549516031193017300770906937850273994585825956027914913744711057711256478168770536701668119913592694398295628633655675853973662990365600103299876362172146431797845706034823277837008083253769798598606861467305008668100500302885722659978533139213243467626172160861364579363405478151288547950123643988186923152907555576625136094401769204724700083528433795345252685455897403739360401220950736472511784594373780455242330904095099530377987812467280745811044331711211799143391478159982437598989736169921121500080140821464144481336148399205859007263652823670559855833258718765892790195722789124384344710736411445881058758783689603040046909598753714747225041527844706025675048467884053974075389639714129357852584563145805149334191567190241485905616539913083373188564151248233970093816726698672463291306754831098191718034420125961006839277527542646139382776066184123967124827797705135986289609116943963056412650696106780080224444922861599016602299019715926727962156599382831923817416367744392845541007590688364774763227915855133612458240072186356570013647937827284561599137889926077522992861206026884882119785716719544019550337616407835187795978251003694549230223578104936558531207229732124239257072369492724578012584939336876465753095407633882320831448676314928925862145704642075088838487187023420184985475119192995115236527922428522575296088649323474325060880033545455926126492929680382980474598150120792911210359564140027082444108661880537172975763296400385111941582940437633943176373143462483922288580375174501081479088944945738057930757703026135812717289979240146849915716967521043460784573713510496967673291698886933833588851287396174616512671711197206375463896315162106479842739415914276223873538187591152904056361409077183456683735081697036134416973821289226910780892571675561383567954234229329050711127456018565410691691796358849045686000033354862355104484927414698606977044639355534094702895028696183878004629050341825907603723413610498127056382221154284676964796668269134439644959921815880650436361875497713351683836381089894701700160648282593619040262866612326533801009834885600878933641656304362624808640349559854471091956874238963502607680028734504692850668094329507306374072180614220799807529147568016006745271124409164595228084719060880716773020680257139260977843560112108351628378548102958066808524009088416306811782502647172004457415511561476211273900919913369069866672021138697960048915061825824635320875536182136884386835912352115829686081185608018220079085440477541186904873563118215900884607692462738449421752116343858011683420563926307803962041421087685907662823601093263654370521432524392246921209347315276854159343803043462983451089056531710720550946209636213714077724603833924357594173520404701247333469886192559190598500746014266541617747847610491075164513166869538177486577467996705596409198580647158770853263823101836577387934557449604648074627162932257460166743804616581138374638068866121109321451533055662971267913927113284731649834319295969443235023462673611024416598192165217784845804048492721010472211686279619173638588443711750767314505568110704118743323835537164070512101636289394123103949487856776624128159078304440123878453697990798237735852997974036914400351325069673547103775014512586716528505461665776803440559008239064271193266481018996760956693735450093403099619736416232489207871295807935742053181022326147875420016695967081067020226414919845841962577149562805080050398334479360873384544948724690534941980425504405432569902881887287883137485571876318535951846317304641968696813306639372256427797287102279881933649941646920665665290531711793964857020554294738600375187579690445224792160498748919708082776508849242777932669202990519690621185237951758252063861789040480815902965829058083078151318846253034303859666325333013006088318245422389018140558256138163509104876103311372232034922004196878070715188320523003105223244682497214555631596005704945659278878423639356125265321597529768539527014465027520421325394912194028187779447627033998930830466147152763285109583393917591369783870160060216804721900930296603386443505073009200783094100144071496804248648470026642314464226406923537053065504237817721415130602320149803856864718404394997311299420745644290420640549512257803991898417722486803953056937531773280345923992005646095229263938957762607809773939223925020650966445360020362540795551225642803707766311723002437133042855758472996919260609415990951194154996432775849603237498595476387802061900501810721019894597667047548805586872103449765211296312478422900310468766873418612195338119477991599390511920737509901030996966502666045780122611532366014897700991407997456042716928979139366697350858736527097417489837278096161586516590609573882326027101688324761680802047631467770133184357257902011208519359984333396779776916907978768360910147713133824378965202496374677099379894800641847137690570931841202330925098343488807525881447958348056380656433444977874411857052142165335937139958192694604618852214964253347308706137679223911575103124777483018286028879875054775199126763549616018850967282344381568242663650680483178806158989034823083856156116580527744717604677691389319891423749460520637558423903220798442744616022165967205552016864415392163988936616692072256105024304902914155392026259069224544646110763944139392170674108722997134571100433369095804648200293616557601839510986780078316924928777635962741751715450431091396140195923464522962577039207263547389267107253209016507679092301311927489790014915818662112923405469647317904337358161981076488235304137336411192285521232014369928190611477601749653623184503823817945059729479162138528336081302051552584602483693027164057902769445507675302112431141421995567550429919378183064694339873784258191195133884203541003585670107632597079018567400634080624414284111811599124592465937684905176486706740658212105187850692388039138148573662388610664342226375884018946613101173662116181756550019399787593806882626482031132376913124556090507457382976537843318954413376196730771868319069890757381293630067302267872832684864715536837457976949816516381208483321294503017783318932531908632467360933672038883119923257526950191256236660751473377258913584193468294083944355774321729547373356976660179981911372518160670809294260318070661846997286146559831498434603508827955726599617743081627342331231781901949578374270326541584092388255711949937386499447684600071395982670241010361754446307381057929755762448476957281284194848759451135274728953602846506238745812516042433309093237137685861777925217467423165480172159036990336759667873001194574559796929585691611831152081648562993829903585004014237679774661744857588396726128467405560812973621036396039314833415872261329932307265591717636262466258861087891995138536580876483482356796989277026608850074812329759557811300239488222846632939553456569840676173175460388263623705981462305763077084806414927388332840478962693482953313315731570385254873820048793406042929136453957507886269960149669391607099186725566997575200327581854562127380903797239442144153414368847167483875253070454956492502571960861221858152945916183579878678071098324564820993991553642126534889669166705951793262839910370277069475013488675378678909114751603696627849355890934811420856441073947444558126597684331996397433057704188587914807124096457819439123551429359467604620225972447142600641293642713687116822632620390892814850016897334021465684545836686746553991678517257545386910959553802565033850191450883101677015120110283028026262554855181953505637886497602972224552545005054834066480041224238811992194441641961006487372701382407186577091527472143935684903974546503632084441729338989322850706168990314172073717801139247740190581799811695187646489950040817051175665475750232673124714409447686170308023795742492655322291742424300077549596521759894261019792864775050302520681087592784656009574818616273133644648367354625573217710537631335383265217666932088972864278823070557042811152061745895008370412044746937192889417062848319866362436132754063068205015575473043775723609794994865437507983504141122484750634782689026597591098754659670760140497026451382377726852813673694634236381028701437724517002471730625571466056877449049926732726948517066959779853616767073943562873898782525916645500440296473161743055368734761852651552543718635152044192274888869564791689382173673898113582755387468053195889887034163393669706750522907203801209876216267190667926854788336149158976080630548418564197898870620568290825924185149101978483204499976240792000502740759012282665520446772643719412147102991844520564015462622749778365981432325585022242276966967527160355025918222600465668637537578557036247203105805578028879150462176141501451204698620547962168162363642761584240110272182180239322376273664046752638677314554920457847687475021761009290999384018714928980739824321528023574132694397731944868326101394248901396417698987133028677706964841545631430515042033406163843216797272747550118145335708679634319160996541230012194947332516678923827412672807344410085836219313916745833614148905980269828786983608247636543444262222674095985130227575041445112607345561960846227430304865140296961717606807960577392603663606315743066852449004609670031424160709675910338279454255846221112179591842841671938902702471486399967601916687322228547254506444651423234352682273255230196489167665494470664767619129944483100545156901377088667913713223737883775873551806565845757237785511829474740898897248519589065010329500775258494570495307151064362258606798645755182539207558837872826217135653875850884230564883193606554166751664152220061910393895305531171104300104309179438904964189203859007591048373763733006404904785268136548414789467529343459648272366885798604613034906254076775093194438145476455437315250564502004088877935789164720498694547226847198508814890127208035819180380320033340359598376949126917127023052469623817323095170256669620710599383682099522238582235098587992806153288993412470633316092409032358684167782575630199156079055903607475496319663514693932272697439497590351032367215316121759938718457336606153649074425756363643081710641168922156512007982009207615848708088390721264495394961598279982057393404110098902083364371049284678325167477624676507326520616284589574794401936636745194848452144834814716490157481116860766902496065159964563204729402467987524689845856162704005629827070025146557889960912502811981960351302759778461711127470039411137930174877864357368981185920629678309762569804488400108330143137319007830488344719645292772338280625428927248211122681955327697113478539127749651825649852942821834084915839648084252736627959271488554343296821401637188070642780490974937242332810335321173780577934425301359871403611515345310972485967232736179286559556888732141804237608457043269348702014379449010386469603128586545676178112043641042037970334571021766282070388770650828365433884717120280271367876802765687989825064830734760434512981051682994922852372788846546467823748478383287357019927617263353703833479718589933353558718206309920932452834090136818071555727516697857465461745706354084980196404396224311448666679246561895456913069716708811159976646001971100363680793604456619273272832404667757044305274196722984007798319962343544108168254008242205063800010579317059099753354438168797038825920261356965911248067242342506304779033808134474122073243291605690270438648557353353255358197370307177247132433791352478549269896529943934611489414438521159133090585861089959378311911277044917584094673430905250484750282197769550239829722454007771011451463028536166271788772083049382047035750071036039067658738275031280423257040693752881401226901544210135178063788810301231296212159841326960546237239361821773059005815142609698980036240652178759054246030009341206665651708771043718061998793950363011613398776325952076860824197866261094128310715409678480853390299970895834018712766447418746375641357280098684218071071526991897525782998249379673966628380204213605570309842022120900660944679383352002970269228765694927166525609197231421248680891771502260677381937004759453042638961868271782411925113770436040070281123475421960267594679137951903002680586392116744409387523270075501929057806244317192237372315736250296947281146928656516095033583373222619496687502698640771036841162232118963518735575718288145708004901916833611704976090728047014935934056740355230282661236895015885592288215415572167156306801756292082982618510447173553406900402872842517264852458586785046103776122445500150475075500954517117240025290776422361254479899989043945479923405854540286611630740270741628549323546482000336370545378220524051290053198078406144892646090725043933976738700342752456351198970375696060934526503394737345440829180991597296913424070067089490023227132015447791818356412849015333580834327693994351054550602480595469314441138555479986166122186642569319845772140659973922543203145791657647552263659561153600270217914563730742687696462380191256795494716413375080950601775629109232472012007285637066533243875105336746922885935940596087074644172827899632095908676015602662983696670873517767833483335039177520689979289348284281242314957464107764438665392385269105367149900670030473747246454075851128282402738723304205810040889920056837021566778613366924315658043028034769550188295360833994047437712455836382342326195430903948515952283444838344205070615134552814593139061396297998712668678641843419775892892201737999861869432803088962497652454320125787653379402313376131180652748576206308615915340257575259722259917249550358635457273443426300507770317023457476556990664645033196133204299677642176408147846834055437891383660723914389495580767469349734797127839261540467104186319818824981142214901407184644200498870471230427012753510207900361801146481596988160703040068535438438069044241062470168371093889360942806754625110839324087289965554468034658685943719776499169022925296248155017882931586720667225966861464775578926796156929261168622415080307470364607563289856078957350774416330688181752893531646028601910173948481046863513623455181185888656700021247084338568888670105439506733548032147867828219040523821416777293135549345257779831202443463236647899921085867714624713246069869569080323755415654459253261663110161897714075024804757219936362828311468743184511885060075927872440054116161881439261909148409133335981790531170366104978498440954002119109585501656582284078795016612322984526932090797466256051349613097578797886184833407551992478739868101914809687426002851148705096086095601294608182547645891004421679896453463792120645229131797674792481389970681243716270710837324470886222157133501603039710207874508340966842727414377161464205544302749631866446682617700804160409079511342293729809466435202713448939866163733262015797588603802806485648200818672925746922673891432360297199706811134692195511854560318468015776709770270452479162177623722519622290367804015247477620263342853207331323106938772941358632447002820306885141896630482719948391233499132306157980057292214861419104102531797228046005048141782152112084048634533879163877477653673259079880768463754723869392450919653966853287831749204466727190032850114853578212053109398271522691413425087000668379181326802413355417172477646678110650200011082518556538509449110116704789166017681947953606687097207622043683813253313077690902763222212883773993545802810841372567735908781891605813744264553474252903187015270311802095319090550137077464420150142363046505550572124573971367332964135463755514538894199411273221327001134264458583429479799321274922193421070015544533385798780394810177169742879236025737200352934192050097536696234945708419369391100633973173680236327513138007935922935893712734424045010305505342869050922282578472962357984534644123822358349008443221373473042013796079402605718178552827194046885193162150820855556864884752275809828417055269679428874072158506867764051931068143802337056405736884061926630910064627969116163202642152784494632747031344579266947161131234392392209249411718452933583736195860408797913501736881351615680716854465400217535195521546999787596584176998326752264559292012480736773424905049240606439543977365042311606351407459607210982750731284888974719333908826228802123825875914376015763078849974937967226401235122151704808809426865126249882964514165305114009170483048422364984219157574468317477173599309910420503045649538716880791714040765267411975324451550375332399653775962345567654626577225960742237170841185774789818461899490141069186497465117576146798332890566502970464961988005770391480458974461104031727577164589792745938591877915407467175708680165393309315660819974491627502868684284829229036876046071368334952972649244757847929531885029821368643888511170923867817229843718775431726581677827901493015561683533733563511663182132428603806518841900020208847331501962865576716235933663544470262071553624770745910841654522482790919929805228230583943733172475350916967546901615043784189649114247378457721197960235274219956366089752150476315951296910502277995507089808940733378059160587184804923810017117703026166109163397331909734699758632152118652058661368883016131733091835959800732006433299615621530386245787297668193020657604562966988051046428070710856234646916831286357539547848524251198492969893109615821631282746358684621866240275054276085142169647236040448326871870924191938942105842686998438295248261894027897939894797359942387855204874096516229138105346125793230123286434325652647402746782569758669817484865143762628977988899360710752481899926984481977434604077959550685957089699111708298785054765968645182056244902177527702483734016773013772648842159161532490083043589210460887139668907836203750774312092949939293117019000232704309059108154733869166273544874852727750891373712414739633055646130546992338923095688823026662861444617285965771684347068650215420223441978506350329567153069771914824857140909786312104433822572912456130278565654634119161046129935852628722515263984477003106783253377389867581761500732598963666377683497711277140872489093658150724772270982261979583543298406319785361209339831687865482985268978552987720620291468741668289769706527204557770232586597496549457563572955843340471436476179745571128645513615704127109618625286834644993981599545373977549573197339798174306135125899325427546455455705601249106967082211703084968104102916644419248954041215250414478731539298746317885567575999366168800692964405226501593846501925565659516207127775925994426687270410515596389658615110945284772599201430554375860454233785341252794464442252308733715512233951800800349532575279717600020327497262417770808734867196663217087523124829968096905799624053111129698615773826446408386781397772426075621879125179083886475286611818384172736043138577327882869227813677207963929693604984760067893149434163066399438342629789803455576934853076184012080280753183069695267147382278108436282972378336378177900189133336700461258438632390362705321443105377666912294795130938169965618156570053399968771975687145244077560170739005496289135505600894765437443281408888839068745045622668776317534000825957791283967536449589681647687184417855987979301318402391757836026338301204253657369876110235314317037139114682927487287235737683394541155806604232386873224568017175507359351065687031343614847094005157071385934382084970313272689540764035071628661068907306534349894113975000563050397873953675473677985114145610506772588478075571344624448233834854675647741235751550641056900383440734502309697116262202213327995936216452783635128322399884774338337691518463864564278061859820014484811612339708593604230209644233852879928799182229985303857808489659039425898738751963658038517298904778152832709525236749305321142105722307200587629688522467243579706478647583018377229550395087480637871597275566754017157943939412423261919955784779042479143907420408465726812858770973157554551389514313230796336838181149362867970917907988715005798294498932486811282343309145289832177351763591935725364708514220130085717616708914251174051970859700592058655435250749020561570067681951527334508877877813843120777357428715571448732447925091909205175157517637285747276331295135083139113111895659289126972774728201837606959561492490800800795364876408093444638585918765128774646306339318645618935300312050876446632397705718606556744656769803035324401017897540994321065000827564794316703037278931327364409377905445441390381025847814902858918547922563760827774076640341297794463485595797392753213656267717973265779012856061777647863348008823601352438000038292254259914937178477910733084662168086188347344460737763095607946613673363634143226089832194336231224344050098145026946277971342046696286974347166114774107646733581225253087496447810210662089332245635452283068501611254270530789525801929593323026882903167692248114345808835690193970117484268247269688926118769943832006548940021537254761988006286644560520628235342154023578627283919993776848672385084898608723995096669307439418686201396987122238145375782033669494699318242865941811413993272598616643352395101865947699185528197836507537222079130916116721360610850194091517846643743546854828863575575323633389481639414970654786334236266066957153135414977856786331242232120713653302838217906032330934714804832832039265961049561250899362427026653822135087972616955940597668774886092176454372970839502544195914743842791430355462253893812888146263788066990304915246224078248698592497561845421004115218760570797442111884979565119012554193484549763682141159760573018641965689318385257241644093625477946305497351395507751523104842453981455092291738889184893569503204468552915783353636426044070307432683439524178162379784911699820953102571887485756070366795836311036398533555701327947153836612419493150293461065598763914370173774130932654310685095302025250771921640828557529887184653432846901290673550691609252828524192111925458496290814408536017553832541027986714700355763714672409898939268718323735850936148806910919506669225971127383173845277695567225333129398693955549001489606538064019169233694866410878369350413302330804476953070851306234182199672565012787103903885146527186145418055212085959515847914286887630211897353430520432338110599824426970442852050889386283099592555145652464825066349549715352440058366114748090206636064243363950372566199278726113375204570868207425068856457077016983664659898427912829409848170078625179344286449577595952248074166023916801471415991320386896332864261711052739932781189139145152724578226057347924326483069816709492201364240618872730217035665572495948858442562442901841957353563339218214452562223582630456510676540237348463672462411537280044610257309876979675785301373345653298567814376828222444190252916476259098660777875196290886198960599277977750693361778977507951535867558264374177515276828611704307239493842578565532471285362515699081465564690424493314079389589473395703765094723414334774073316771733019794405932880050168326169298282817670760336118770967165352274664378893055585481958752159587911297680514184084482455142537446016733493808830955672752387651706355489716648659900855180591541475367030564749524727141845766471487250424011544182724634384914572739503209863074411265117330801480841523812183668726882567232299064447895228361305277204440637221082067214687303279975832000693974809984696993808126421434304577607548832302083505583676229893238565712243988094469705780338967253223340657229181378117246042285717316151516484828839266834107890193683521998338427653146999188050585950830470895766733117016369906042014789846016541796375651790300603347965674059374458425103759999343352657265669085349638908974764079805727043067852848697337677439534316067823171499434788266886271555475677438775509160539754497189635376498622504152105369129631828915309864814048554495002998961610303677547311430384072537057332471471092280277382657099567718885042638177348102213099856958544792193339766294116449052090193277135359415278522750913512522296344581304541123892706812041780876898978775932460700834100639692479006076678887804095359895439605482383630699380814956595468615127440366861443873491146255323965277093661859470273675406619154692698045106832826886694403184483577334574476687972773751126855147654963883623519892750757821901800791223181151559609004289673699877605002484983599330594026113125684152878764882856654044391945628392688400076308776803444741598279781982170299048836753457048704481285223772452358425308627533660562303247977939230889767140494001475488203232285948855063721798909157546317058390553709926609871557613574090481655218026429184626441153807770038629092304972172818617276423778406769412411512631208263899452070789198327314131096337624946208445805379626799361343730352029791776938544794237278640035772572343659263995718972236249951465655656991188660066937803380054311288464953818495445065155514117672494917300072908003316425490696025944668119016736358361909212621814323642519454261588933021681675976757401410858374093526632498681360240513952044745595118430442624233196035650435265259502111332637171317069093087948586586258291931518787591815927529048709648504422561948440992813661424142459405708354193392739840481904465977418715127787527821158948730888618322649570086648671340969548180985516952107492552005719352402086455107757928103674469683706137514992910113019568340495951754190029924273980615507641857575923591641454950136110583735986729681334946648037290742611754491414808825320771701073470824473210080408525359241429640851464330361946825338499241862662427516924309127195174446676884981924868326141765413853546830685610531875303323708290006948819932552689405032555916655864090156886637081068399490348054858377418649805937471998938553666397416719693396641337466973397801043962836655921640842490765041085538092648994586661734534221616484377255215354936434890484695960969792679961415271423037165589202715552022257595154188404509357467680697377254096958422407758087956963954717270613531984936365963688054912805522467747024869000788583404594143453446419737864858244219132311237257656540630186953747312398083420179096732530418189900874549582755820523987026749883594821942831285756398151445983343074596713985864115760436321046616909260734020805053727411699606970263987667008318383671891526955472532478043502352351394242862442871654694465728280200137633916779744759766271048640943519460038623419893884363792367291211532263698095402472544114044532793109184982777659097383955098662888397071500564646947781823412032851221894516354489496534227163565066011684359275650018898413853463717315919370201917359905941896724635640610360891930576530767259150238855641607731081081466839212850668049980593077909218433731720388726596227610287611453554544456719876789368903245867938674933523069284413406940944519082809134231418084517388562686716834279570798265708056317796611272586357740999909187302336717656952831121463729726064489915984931504727714413411791847776433582551015012244483759748971529174339639897148112139098606167089867142379216314681156305707234925959620623790717192272853359520674759390827929161928140638174219280298232682273530465315300153591836314489781194602561425598242258074076039340445008301421515446865372372665133888804954371522141101855094625774088047228949222879528281652288684019740385890319870446377726737370925126225316124592223756757690766548712078372666836216749344588236130887899596341058276357071349240522401162837347523763212903609189291793808577892276106821688060203446212552610203491774862618177022382759131951426225101100638443297254782029258092345063439491346049935267314201255514671775800256327555012028870907438252562756374915945233629395248615586682963783248894361923464770200791208173921609272342207824551277482287619670778471999660305802733419732859770350594824457632536845485236961227643185097938026177789994666449619816620318606755937682082985222826207512744998953357678408978440285261412173337359334272565130294339095392289394475326155272129073533447006614252803513196127980332126786323349334183388340868360333240476582707505747916216036176848598619048466586744553253434950452391966179889566345546261361098780854251680699453249619414170010560531206263170784543832674498339516535094675519261582919115499997856619469310277987080308980082807321801180474588482296831425514902700333728928370599577850373871797200492914968672104415560959855427367067581984149896856073494980954318841764308575123322512961753577754572229437659838941206474946513964918956137730035813272592495821707748742442335247912234005439568426929708909494449662335522453835900686308299030222402339964082129965661228358883421447163447649180793062234443224910828988128866570366988673157163298443599925484203413454393645290977561707537474741382445925972589845245211763223095479000676151297944092050984777947658755091737498224305985696005798291854305940113846678595060845114114464149013975401278200479312027323291617826137473876695746672864475904160878232852503076707985608108349380353525397753506974730492646224126461114495866429442824095379433100971244313130734289558844590369347112750140100877302437957690450691700314417183980196411745993173129795445608764196747449926707928472017309530268245862657400140287151714902961562885617222345941205599865763467422449072543667831502965435124562420600660804827110017668949727551205994675285004072408898955238702061947106430315950063659462166359266345255548714430012581455147461348309255246872982031814021431562806316961367650678064474380844194227375828543381185869704706025960843431958433765190533811431722684467820037179493611088684528268361363481164621716659974711849155048768002192500398276427389393032966733756163009883240314480654703347339519121361557887982477866340653158452555528194477995741796539699642846402170908406568191414139392859412650011387489776754256071687774954413328834561526331510242399697447436226494169744747540746531777304501723393397444468943495073193327365048614743466143971495351911573853342745289566359268837429941190739251826751450745646408457081825106958545086371006078386323198569600382007040123655884084481184866988029263664041123789956518121751967815803536684868052481425291766170762224150084583242283468320428360429477755610100928740125554211099388185351081112532321491976967055585614479694320031519580231202217588424539908988987437711924320054108534434939494686975079027012772653637515852216961276392161246536177339004114168177142283868036930273146520129831575832022676219739726086790605065333701542556561497558958483764419898345176867844981633785175198483578481720438681785729336691436678071739520708209439198320586263451722407953888400799444101170803255868228063462660098522755160431420834027635887864916826199431489677477716168476763298426444838052420587312549698967335701244203016725740729318261573246639788980692655935439470799285794419646641385688584505512619072313187230829830146991924303694124741771827452553456668527489945053109909187208853785135382765345490517382765165418859795036506347901577825210847158170663391194231646384568315925897303703532118381879378787545851128855980895475851485166661554842658871431804320051088823854386264111971681736996832554045548628869785876762631021125817397767208173981602758319603188158581647245870833647599894148420885908296148081038145369478535907577080165457463858690823523453923548517604112000916721166894988908320480885115506951844613464566572008463527878691745028944656001168510955319842355407352012501490076762013084241716729302776315526287818260561094986028658484121873559897770044812529084936180097741350852363818726087685328303594710099495640947936290729362597707393651624792082214640505042060399765697312082731620640477099690009856912058235716363069078338137569367054704118945313941836347835397382587115342064293583090138869657746660804382472290943527116524643083493940949439218134238430643338470531898854848468841018386697410002234144443641841739644664964516059559705736565046005809323611925154225171709006377947661713981915631087501574981267425512680612415077190704381674630362869091888820537251951517992068996826861816422200475666531736369148859645761275022612223990329871649837460869766485357621197188669715703352541202292231864492299521956536058059397789504588076006304554577924376144883002239217368188776954114109541481909871866764397839048842937553214687946166014744702438310330100425958823667727526994796600395206329143403052918944244565257241338259076777213165956349031677880690190377989253998300474707634117368266569983697646318199594136111997992703782896364825175762235390162190477383209735294245988022919432062888424820023879506794469560986620833417331990521080745235122833690428376262333637464219366144645078053432394079885325206948067399818261275461283664704673451661837320102640984498843906181531567161496398502056991590224634311525976495749132926106960429577346549831200283820694063011399688554470523545046388139039251896369755607232300650668617482138033503520679075563167148296752314214154711633650819112542604805258418332310507173117844165676267758994408930458642708646079528070485381007891618594279604404562362767028859518828991032433643588458701402308564911688904528233790075128816222828355657381115457643117180162682392343764342483769493991727954287244545739295485379590784033272429910953878308014556042368764253821479847491142409002614249486336069614008992454184212112126596823412185615519263855437677233197672069246977763326498806744304142368036075202429755095785644177247942033643216420720667145686631444738158245602012610271055983132488641620194133759835246999602908581969495206464736998976484095677099644492001455636275094056692159147849252469601878334428004050220878572426496196200965627182916038054799751446132975488860351934382516965486385251601926457453533881865939173548034086096387901033491161419785346155045143950774060358366726734969093982385576033562773324494282520281812946159167778172327933222916981163249731536360547506675207583054102369364998403835793304807184893603238046597196941702874068414905033531810029123635160435526166911674468536231459911350764815812133492943494646991451749141803206516562809233241364823885162319690534332950988063211009956325712565279766238289938540621811337562982189237331256466453525694856091646532209267274687303691949967372502121947286829471768024568397236747004706805233968768303487555069323498182976314901949350990357443486152412650175567659297254179319411705082721964547880960023121966443356260348904694808525989461545707350828513130510955070721780124305772622396913667348942787105969817814295634272481458780756129334486307047176251308425839792772728005324889143626930403439667822981026851876389500837042676803415318068631519718029759441459137734566640023242461080767757552565426953256276850098796280442493286134179038046061866959621585698095576325202715449421661674747074619128042480963642177550859560851695835826578861941124206959257174176768899617157438615881978733576939561776175704905477210603654528480094724900805595258371410491906000471994935942141071624260777517602170767510035111279170129676826359588074277906217784196060327636664836020273263510085485844160405453773891064277216922069976223564595724283672323471621437196820923271054415661230693291736073920468896314406297007356338309699120890301986727250346211456860006253109304650944954316827186341850472902997837527942144832986371533019058059935718598457956407673193604540945716408157342541216595352859813159650771740932771006901570640335491399758109766826346264084914875728296585189005498989593561706229716039418282098173709368566024764295960285588544776283943833992329038731796232647110787747366072984192788518000912129292921997380180066946704321811434555391359768551183774125959679721100837925616670303859294002950628981521859156913444599645810285403032724308817331336069418463027256388332395755798033921461547056497452709706593902422791673219867399781096666184619790272658087526943088503178267327552678210300227708589364405522932763372277528794518557666000208113951077150622149434485909381202720307673631536432397754100362277022858887718761226857931347642676917047325177506011857221995778848585038737799455428430434403049680933712072107227053572673134383657683832655846714507533431036038115091334658517828187100005668743539965072486923741498921797311613368600755563001526612001734612449035245561850102425774388157871571738694765758169037806379459748341379891371415217704407942785963647444191695016127258699384569602499780550085713144640819750708634366545918450474878322526582319253115234834768262841931109204080126224607182334755218087838636112225032040229949629644055162377213666144985014131587657763504004936400226775702852202533505063264100522666712748269123797676989927797395610564572398133233627072465438589702276801357440161593805654498892426194065831224192105025384054181181551387595715884687700272463998156446296985453817265961996718799236750816027526769277996910513512077474221520347270400807117311486138125417415266718599701201585918523504992215506291506217432997701534657520741193930710720597722539300398480366039109154980062803154588875646596760086951161954660618083978105645295131144465136865626644796758494141663243113743535615391562901847491283061261942635487292388342117850111460209933469026960079157696082120019493576829536450595373328347684486460162735466997135353793681812117966721741249610962787769294682750245835614920175375775853713035397387136364185372708241028746735922140172486392165008974091059265430780097220258444909228939530089412813438491528688388318276839559798459786256495989425928578699189640678725356813301062708201243113065604287755736408022551454525679669332475321886958470854298168522698107948120974070002638096374489822947607368510006445443796247003356711310822413419413448484024911893812832735774174495394402202482757586117572100302496436860093465330342702116430781989177670062752221045628814517095194940588140086814590066817864307411316373643365043507458283989673756590406711805575885235735423419339069263283837957270031832156982125083279709726495792708060246294078713645338072156497794144261934488841424579459915887679792012653717108909468457870721818143742059574471840831503261323153435981590172676305307159426501397972062952488201834101866159701886893995830460254331298047379559421564825847143867744119202031471917298517857607934491614509731639750169807199764645096835728070156270522090027402296953100187840129616246401616152479683507624313108195532585281387654325170751803026936213519533138411003157576448127771920101556858621716275020888666540894407603184066419415082111167973663234211582514520926948363702741417750525916135234432828977022734847294766484797929872041631260590786744285617649235608948461976303288174979594883406938751166753040377115111239450785462840055237524647601278587898404919533249843739716139928864652948427128365633927853338168956038852560819254784286501863915908150927785427595166272897719658879197245343212309267500919827980202841465063714381522067346168340335098962915206002252356659736047169197374374349178534683000594329465435653532758163474985517153071421591283879005866757296166193441988026300664062036320334835547009607398774522033265236702856111545712953819944293943183557462309116644623055461459853389240202004958827673045128596232530411938866785821896684832394249657960191273069853715036200882914509207909006541092884002120925585573160084114886682604080807714524521374272027926686897912260928783536874028149430087839648333063924373698382295895869206460662248854791814492321939584611561219683977983897879374678868812641713637516966078592924715183351171729286024861649598998976367197613326849983710599825768596688742315564616865400503402203188201988080570527826355723074884493150511896876677694823772134123592449983985921901256351689811896807802031255635301789722598401275555621522726562311679306411119828684267497300392508792495178127829833546621922446664970346966568616227511248444746059952160670790898944110094905339590200519806709884284492754822999506827875161114014765927825927067210991253315673565432794865871958926143345487232956263972395786934275107821514812350320305565965464090625324237959695889599638067105780578496840813617853512311076913571252748899206022485149119470750538297258455734148157689551835432859781695652499106003947328684376079504823239608727094059464790607682378088255194375257936262986441077395012370913367737804740895707684577539425144439434052050829546678091286516911162793577104221177540523663114799331062292956386253880430746754411217829719237367283703089163316886663362784201237448074315652411725360522963294928871467432005205242538510638021557874165816858523246202687337149785197842891400134820901269880329300193826810688937875604501767108870756899764538509816551348051899740523373385264001607003013970079429973863469351240378428498058058125836764353193509703279725497180462444576301241215473583712349913177484306816483071247933279148893231798812115370381258426376731411497211577980163942610203247952550627434148244117241878681820618207972097943732451750128947355154653058135221760667673317524127415829594431693891708973278766793471381556719523980024956902538490819976146287875595411285640260161058371949454304409386533252312437179256117829279048432828637863387596132226321712312120035193524845671947326706963770947699973264574021101453523136662338829817675046108320898097863491931317593439479651883266056461643429034994831626069508309665056403692977733944443820783930360908103087169373526010893555956205665068135309795781703374894159744128421018975311298773477917133277962260233382111876408896001591439025160469506414270138471960395328473679383067057813302553367819274085290960670442065415541409951261910895437085572422621758183088381639455057189871528355838018817079530375859055602561676399053563644088526944427968256755140834501517336282772770858619485004033307716552176488657867077627843033846367144306712099519127374065992031322731313373917868068066092551994661027574772596114109976709835419847398967825131220829660880018121273159152072961464689651415795731712053878116318090741002494696941027151991182738423624447158312106696029514141352662897321629745833794536053837869831762308174957445050225064328324802128730318750373733976619944277752862985494125698130147224482369628088066235583325604612213032541094420587133156336725892067038540356761161203746885811644317890088385855878027674398503685679159668081494278702262566486167253983113482653910796976778906076964031778747226485688997100004409960849451984957077553219850548112743216653440789311116164901326885979300659666596534148857679578270927928535954913315208512377696539025199558588300221157307035206301662123170359164121860182494313716447555666726173007929457714533626121408815096365172660620388520845182992387767575869641970398007857776734650384418908413920473328433809826427544993822014343105255831300592756779965197903045083588701535408125709391370335512573557184668977308572446731299178775247526518356088834163883072638602305404745129696669133656272178417855795379224215236683530967431205201615999646627476953191695300126060515652864691832017532620295294331977252269785907891709053159951866830443302371565174239232730564766148140518690605001818439749032746103020289124999774630571289905022527886945687590531921969210400499534149103014280538126252901508601840989879569680802464993935914568530459174589909851036319140185338019496880248823274696849178842734493961120428976051049747392544692971690516996029914129636495361603421633158170269277447795611650123131634816651424231607124151716457764250416388562559086184016761310602980231911236273824643487080410662901253351401155347575233340459716153933081003192544267692364252704508369682699805753911675482016074122105674267637604890169165749393557333604656795789542442569504818412239388582047225524953818045924472786679903624259374083544008892240935223219316399736439173831564375498639596457562003822048715672212288453103820930981093496071463758500081180046818171836769024762111969552613700664087303798789464167795908947880802682981593365738357406864041478144291290824585096455884340195730580254182584993332378575878229038626472418634157345443776695542163254614230193785525592497908163045738852969380956604546943269433689539429133064170167504686229515097028983210948722458604735762393164637745530875474833007508562849201428609293087741625647938444364128630487079910041058221365292563937480953245730237531299623456463319804784932551359280538074529654439566076388516914251275438146847162551628689879788170447265387728717939941297093611682548338063774594797734291531351594022756107604554737070769940263309596336854875627964671093124218170148651518094924470286056972966558763272796777483719737584733780812596245257918527283693960814205781431746329176277488142018297834558868081805455369682308980915177844376639557084551266186121188082079422513637536601586924154495603741436574993305154523736789872888892682708983076463995794862980639721775208734196456865192869386326971354360785820549624319258409269681512675664017595638614939577205076316239552102932422025995977474273340469256256388638740919177064724407524327138249250184847153638239314766342615107600981093034896755743662151569734021157807583179255308408022030012609859212370225393934662298548291525268651562777669615950682555929411005981530249340200075815857487684283044152288555890996398237309043038862655085960706673748927063461479573982295268916860533418146843465604651543519281476036597757693466293106081793242496945616067979159995436231705835166190475810080522396067158058387710722893925230693034268169376549329944716829927590476165104630279389075277526234093496737710205580860927055998851589012490513185175318955006907836990977180937226476388376454569408706068246771342734632270663536657139222359827976169338046997852334435362953427834312275525539524462283624203032205200266717701440838539688365353849914440162203008627103059351299386610145626430767656634771588734295309867848414071855056095916494728499387015002814320896244347905096436006607798107914951963732231844471405675000461385728128466117894005559581036775199580999210979444314100357005861987781297416097218614657403426018635227337645451749363429456670256638612673454040475148843393854877731710388325634268379290257356338928031545462806569753482542341989839235402523778547298631119684273101322538654575747891452465750955987727984897419605426303774525989117371377360350251195993234833366866193760138614095283642095734309171636803048618794878630510182491377564503583202357767921459997573446630166813963978772941734539087287986352250959672176069000110154741445750382457875466222072133435707882996248572712854657580625181455818102417386725513484897972068044998054610618968453680573483028096532951553184319426509425545399658274034242657915425919905481233841201053710746080192243896270837369823306599041057115176461787204816550461999790382650346637302196599817173967961616849536212846699463038156471138367958918695311842796690365863195266868487542598963125397662792035185545603440071713210704606976516120747308776348137419303695577135809540611760907246090044681016825998939137914170534365189511499366490791408840544114767853042271607468805835018699068502032526580695880797466960474612636306839676875020193301267572323748424221551523870806993277253418502935723274318404605091357448235962944112228507566544501617787733323120011693592689816913558677720207159165250363284317987474495228005435548050390093716912626701364050843474518500892025453613135916025256295752891243961896424180665306182377738158448020156725386860181758909223329804178492103283545381290735263987549592052932712647203619239516588398941763743090877496280563938719368405073815399476299747355591283849764631108965389079202883321228355537363790897418340322821027170436591681195702154424827605764367808407288874619505730832921756619305262855087958777416407631067197810120733610377382397493954902044530808099985362510974321026992838306545332518186821036425509447628693427128948126784234015556817168608230359774722209742031070699576544445374906894383393773249688059512278993679670232300518729503645024669669489852339905522756535048490232804035915989634858114120000767250207010881170894898428355169002845110655152895177097572839298069805166138842122681212230433835326799134153121518877876931904836417624442192485434177216893058603446059899835650407253444814396003051091859051764583674456126053525030803751468040362163889094130158775533777374991871571857218337205561054762740321642515318250359955864333993884158734781625167842330663605211004791725045208255977317560751327283160511487024376341866110947901205323068484789926895392499801998625458692966038059952266060730737182487484630484661123415017780763245216370559928824833748955866526989621484399494138653983582383679010941006759588173783572197809183476862507593936434368008966894889457125233664382151618525740182767716854277340526468374421034913716685971249786072854312641864541404665934088094180579885185995375632640360591545241586018880520410503750283210910832590963873292946312856541062238811718396338673899068679192209172981508321733561062818430044583009991860371759457500642628512224509295532085975294987447820900904903633318961387414743075424661108429618270064103411999967929716086931572366933090460025878148587945812259297897666567742055366144542723934906852323620852755142097324546162292195264310257002612106813022850266536007244863039069702347907053431055432428207603150993849937310049785611359774011650499208745730541677522209941315162728893007629785534528145598689028924554474890341977444417478373210356128854265514687010515899697374993313902035498513616817375805530209663353874260521003238975340174382895975608134061462522199739613030056210707846466457369637904053072117004143010092847463252493433392649530067626678864170096484469057027508202274378019398515749016332450258494689522239137260042707126825905105005327733995750505751285766771913100475961984922791303262331126835759117607290940010947096012548152286406987447570995491241761842885260780982999202329663118054148474213566508923949360643448192176875154440965081036314729383628331017125679463232542335596857477896357919931755704242392227879672211609494113830123593865929661723930883749485407157352228925429344361760152652903847120379996258255122760287128335486136714196352248931154504073533411590206953868933190511201230831231685767989600576314219687894264208923763199560882283745740345046205188545595912885878515231689210029202309094294272512892260921686377135966413751696275551577637814132080217172240877585887237011657804067325983927972131295290707445888810015600094144842392464327574428280373580234983703455532307211010691291651778862851279413549847096878941548077355960719555334421665100006696472057442695559574775048137802430658070469408744830969297033699261365750214849603510730133744809182969121985777841543648003312840275857272393501883912970303556843984862163693111325739394048456895874033942502481549102949647609872335469195840317977015458919186533938980522349004335297847196421468830167916520227116233772337537920789898059813572377659722482600022272895379740005525925516590187805274748974450937235131814785656141229115836822434164694472941689536723950065930979209938260321386128787245167914199363507685823756372331050786916943210293302134600611007556878203400111474645572472830604133070424881851543539228527780768050411035723217228249361180413279923321956841639512802008339914944934886133219972261523497357493725575309215172835832658798152717530158502385322778920219444325831435963626866943340591352731631038856240073108424892516144243721005705960279834955403207886491947783713697276076501346149760403155896429633623696482783986301089232860204884631826303435758671291275746350887925134769871652025710568185097689860293192909760258094611425202038755847295827014747812738074267187417765617097548541367585810236456338980754629143038143566858559992278892769591615915009361282549591477443338351022787988843180105135504423756714539555104409114369287967191616538159415513184912957060810972273189315740673312435956639701869736194523908205611000478275072153582101159965208065913979227965193695793410003832183116529612404325291739102913497919980403922489693715936684076779411269436018341202074867093621667923970700467002801972266316172007135969766757604760449178531276930496790568890443963221986572304657206854750863633580363733803596430606704858917655044373117889380486548817827616396312041565317299273725689043616581413101335392207632386486154368767813225068630329010417642058602586962258146687678370925123174803865601892644067133743554127289328978324858461764928409403185811382844593528210620473531003592674185140611302817039573881037345619213136037305972743798375460711545047023062061760066969165222090743556725010203679190653200767420381553648554280660426720364960337071745880981068838825665246875701634365561249639305590336257533410855942576610269231239879861069867943180955607381722985408465221381431510468640510192197704062723915294372108304726398877481496999311365785428701480808309071358369852891307267593926361815290692109264929289684935300053822120465350710285830015157853392309142140060877150258323029390245861751615828092382740350598529670094788243486580927513933871263641228785773946983823543332631275873103726199076416858563892231766352108267014603000695536616893517573342952987231537562801275326347856841687722911870048519058698478399649607580967922271433041270069091927706032629728902379550939523608132557438522197977412178192815534489542481376858896338259146373618603969803875845862346761659232634653317547616250270605532818575965244467003432655339108776403056408128972966752040074740914300175070145618289599302146502332102164129133454215398116776804325652723666680621607549629132785664772342562858420568181005397166913548550619904660060074173262302498587478381940361036172157991695091082980656420755669454985551470637082380395781086594822028377463771145576073862418617780618332125938710417067696088210277987876570145407074851917671246832334295377428221429105828931824122048804999636050277787961350756298624633650895783553972650349449578455802392135535017420072015406272695295842827988472791519447357061479363347497223063561138144736567891946577044615561889597272729560517217151520790572689519229199901505100827226962622703478787547622933935661986811833888403707789230297862866520431456153062064081101038406682046805704251694635826808391101394397335084174032363869339448124592125484370034832671452273590903617360696788560246377367486405526701756561081692501064113233237004636448871223448076701297979678155109229522666139300461589845176395415246668224122143628241664223395793821871508859296580708891205234030954955496075955482858172575278651765238593415661462679041026989825053529407362133695539659194576979475436572140096338029855436000773980762406349092179461709642442051597231085903307125024773486953554767187187989796345890445291834213699143064172905171139965824260203613623681117745491134183766045459865994223616152123434501447091140794583036109233769809253556925236017893190469505150667807421014754421249775653628050017830882544802054864773846723473884999464236000802968405452457153885315362346003262964147164433420303838067795808032794780387475342846835808567583308507037861179678741582210998560640449576907582450160523740892541524168492233545623887340059482116955841654378303972048943663942699537157688336404817370955544179059007372564423788878806750991780942160767124786308722223142147443813278444106592687461692706621064208369009952584684431953785752944817180505370163536477349354534869125754728197579387002268864249916657093434746322695344133202875123220356180251927502888531788733003430076492591137375242125837360350494185007137913541592827120302062226324853745368628510089346302545491388153461123854226492341164492208094918217225198260587969380262647407419191265257496197822078267545868628713075374008902713809373943705320110374166800675252604130730359326534736629720454250482734167365783518813563483786404055501304232967774135686984363439279973660726693723823630419252173372470920937739590256001990425970302025556671378838626264664522393229783085019228260498463600980121269323045489220767845219373085033766001713921401845344660116711652147366294025271910657106785410194880746474493298859407239404057812923237607289307546963681412316896594955426002133413861246697700137446580367541830890381881352526447185164567156994006819478143099299652076761974839660248041993728746719899451120645243287313131154344434038235981687935129374566116511312860945344504382583725475392518904495599023838457674862512601396765514424933518191896600374172562986025420898094903786070336626292554602332118286174897717748383313533575743864020212033663444819917787541278383138622478349706884185507137735214444686143476131987378030718814451303647912001999302714939875119623661714313960608241191622948414422373608204655866214431118922303693268132899882835877430387699742745169378226551350755912375967828311508247361825775430357094311092430042279262921848827416087901494449040400075195095740082553178416433552535904318061649559404446475864747103675207381110417514588557641452649125664526902069511547570291836109346527622864144495484806851868181815587775935310518426807707358552428978752706980678395539742098944796147154514504770617928794673516193652880671253206702076747021544106444810203436738356681288870898204632754792199907348731242452324236863254842925085672166183843130823128129006326676572313537119758782366343891390071519505900123638927195318482592308740025395599599613722972477405963032961458404511204302882098276917938388626790426894457701016496953691129445187715287045126775262870997013123912870605853477968493348797736294371993200960878499930351997336014008766264322798177702519799002104050236589354889823066278248548780760996996557716140809235737095715631468456804124794443595765175353627428747466511291287468872270685050199881168629942703226374779528785254741217864726096647215134508141126303686072029098451524987435360907100574088669010550624709584952526939332101953297824964263139998864825210456218435533621899627084334392373441083031562824661064096067090953047692288563583249405028689457527081966350967365360983356115944815201533545687290574561707613717575663997706677822756522635920955318978445647029353948410681135698370363754764987043429928974778996781911614951961604792254601329752058477741806070653244629456311373898922224454251412396133596733151021900484047570536361526426442347123725291501566100291797533960642455211238986268324170402675212444278706432733489801457948899072431382274956858426668097496978267099029637225709172062288463905098896605270820426178375183670187979652126622698958324924810096575867159036124470328570768480308683911288288580747121195180036471525758229557555931625941246525362822159466051908708734717960923947166914997363725547173894103966585294523250334503790366076560661249368299963128013263035105650388546680115145531595584367553590461668563901110337102298066545020607157093997935441431475905643431013178141874265057979885158020847697598771329907823339036015131419512835174519968691221589162098530709570854834237703766835468489807447620864221873785115463117820679092274383369507272767340299446971859119174619505699877561032120664761856961105588708197921326347689793113754751735031855200261257761677406006803976745295118949742232543357496139990921899001686651111481828633695481327378525363548896854184725039591415589532398889687261415689161987583586249735860003660975421321206546373129368422356418504347847356370648399985883389395680862963756700454759510080503131670365743624710054962850248742282680896650581816753288852376983079048141268429813599265980425437166176057049517141941287303737272837275059349694342491611545272903430169178495984390058545857613107080011286619679210984810010869128696309155419324254778882328538228110949061415377020695167909954719623149982869989314107412752828625614640593250348409086236724887123215186753644768163117041108381755217561099357222883417506897256183305380580772734364666866961053974130628433066084383423366976401821615307372864550067154118610326287080291380252014214760023443848544033959918008547482576221395019173165080001344787401270391388373754626380584207892958279235562838913343848944316116740042493441130016214534222971952298588077108567613633064812539907897098757510719275275125075757603816572451694745049133255607380916386554456948971110918614458159695642644515219626047506051762265482999933891979693206697919801581574458911743129403216866833107118354620525222095958981202774396174125844999690142310928126845823840546445092697272316789171430916655326765978838613433967342700673189543196425282970970208890540372141620288245516572745649955503108547622182173026135682868961895248606478675486944768954905625807239210720660017318636022443932788584789055136654794025955896053323026468895491734720805737149787537484757050706158619295990014108996827525305108581995725774144052341045631778020270025107694240456115616017096959430098699162215318322850475062550789197017926535451262240584890038184185528581120435204535531074404760952083771994552322290751893848688163711921155189836926889911901972116454984466708401631556750859865390515542821327438750074859539906309799975843571463932443667366708611614061566864965183261715304672965168525039126862134759421986221597510667774005315207465901210236733986959891927777091038688424904557211813633625669656820428852358519454458466414476508203106674711831951174321805878137280474977379004369438804625759056108330933270140386901319246898283355065158148376174043100494137191177831817293034131670032597458036361675465815064004002936203598574517993984982265617685724774253058891327901671146892963208257657216280194850961284306934678940778982776102831995404516079263960129814977833029478314724104024426024822466056614733446924877171794680322138871339267557883697565832756695973984512603497914522742076698745517908366133875052059347411509235321057000985726605997256998458944656521219272103325092685162306744017316403610223671245158763517860644384291902180413078713723771150156835359316626848705778828822127289556094365604174189188504853603050411950680676199140458159793367288305808512426561776076954161108284714285487329643001956444618885835477588413389037864465244780498200774018169197819101763331811754826052641185770603785688009736688646093208333900207466427358492970029678368088319603039468803459001106577010210648534043105445677539916712842157435479472707005480851924430854618383400363611937065802838779421946506626235363944905657644763896293225138987113051704398214375247270712429417316254679491231004180425491307852768063371448789217885531388549795146937003510332423824566394022422770717538348801030605237602462876987114760437380797465640485415932076347682573291103544007756730895903805140011850097442054510341281577634393983165256615259242753297753798834711615790252297714669016813244456891209664007215261233235561388124479699556583771972204554185145301229690151833172830941047952885456233631161694792711197833716270510326919768593905142832499110939144726875329076716558654065835429134728592621391290753876247551679645846536182895925015740617741725054428626949211842589214116413912006051960020515240757153009088353309533602973727482852506783637497431471528194336845252058773811961273392248862798782991337586745742933059024351378652069963181522558798173936248301738968949002869628519311799584858946105616542025180512572322150590770129927895581298042080186193723304600674978395784726171560642444907994857601048173327059036715154030970265587772549963389770753042029377984686595726161982611777241480072458918398216694637253402672278617054498156369588456153519475585942250491594554280819714423780366230987503942495681537173185963095720007715709154500591900152930267720976414233538196800243414687266912955738729831274478772330073410976936534235632795783621371511755995888850390132527175166906134155818010768381972693640491902795693260977310918605655794105473799885195854332469352429839047488836317033848575246145489164218690708063615727590128270376873859015668932957329714484681879964872467325948202540024950848903601166077876890820252184619588384695860344338853769962454498080235214515828680332048958521765211496825099086040251882615177711250441221973231277867884199204763595921108420543358149168338176872213097927135796913676483889716396691101663985838758846532180272151593650492991706848919741338160381820347461472704085215315162524709436016255383193602235118679901627858115415843489410386275847816289300578263213326177905389942754283813348558295510858503671351815473319546971955748694184399457670335745587845850430468889405000978739610877053422174602166568656232617243828158974794669750585626036996548814301348957302821565601216519511449632278511731454873955124133431250399955676702288161594402715671292091069974996570896975442040325682952077649276889274136994906304584478831177035987616406132666339367858148564849606353982758604901240685868367155331281354824278670552639943261382027361727670279973756545654550144733505582090481107654651040538801744333200085506851419219196048437901593078163384360615503707360651157911861976259756383910894255085439134447146309826082889593671636681911860717808553822859313407466210199285934938197930020105002460771271216414904534123300398894355739686440912905116304653184118292560877055551923226385386144021380381069544383868321155008505172246930487448018751530865995483488055419625002807362488176336862394124045683643134353586628075489695029594686908628720016609941254135806800620764918911087127093306296301020844519952412731292174373813692114140538898919338745313824042185745948509127629609941089317151011726496561114424162906934197310015772024393797014725679558940465571587546031924106367339224011554920276988867719976577403426190958281794097999195266075812886855410230255884957245494921542302288390593110708590829717383296128202457181599778031300992600661609412751104116401490963271060541890474261534963159621509363745081322276529357285526313149411559089244346812875628601551855640909256679113101204443350598987715318544437140935670322154112139897480982590489539646726560167220847353928080382546954803032610427262625399001257446671450793272832092945849276381427067220322611006477887655210018201657371118065636040360236152575117468539416509693179023430032027613287848544102830168368832686737825714522263516697264055495332384725025284624858950826566386404856176501022219037820163910779536107783491350281779637833955936428422909787319467741232893221151466262413333640809793896921001581022461595644882864670322999896763758274845266040488795311647338823662339261046184239441792851649576204311073371037309662800550882956672675977368275281037873596339399004118256013642587527785112461840628536720478740775532592594063884047969147987230659135015122443657290446677740069580259181796038886013847090207599008895721345831904812182650832265314635948653026771085438200329973570902162500680985702240957900586200583364083230259166860725511678884544633868203592202297013187109015387560270947058188210843644863919865447572761928005906029266555779470477697241522063281414536742628052141364933044155494513802965371007629165511589469019230651791201922588589691113449922159855974061134554686246359416949800625970709847743505993284262866162054455066202207001338705781324161498254118344662941593835327254846989210013695151893284351420148015784172864602247335564650035066785504546834974640789360196029753392174412438351161157440817713724113361778873044025995299425208567803706043826174478426650019688153297598697030572751080792846174793645276204025212278843953486999324348888331792788421669287868237466310744285658035001047430357748324570303027321535164253828358515131814685025757206302766914029088192660151753365464419339977649924794877576117038137894719111995484544124029294679579689151205905644347968162981723099424660984821664435649856389811677645863473984507328625896734154612773169602929161471865970756589371831877365255133222982939573745348254077823181164772380959648979573151768281820750391095854901372256486011958991675412073062925206660418110910473021259910601382617018351544555067168315297738752364229855422375935687219244272588681868062741418486434877801681426777533749241579801881648803369934775376320464285603308874665985768742828326752024292136001094562825965740568435187525930905744988954600253989272602842274327394029754733584777230993863328907908022709653049396644509057845748280501908567347068668369834653749367324693736526601153134447253358801944192375493301039050744334416239211761427594458626951926380172012419665323328738837949061753252311975670554136379226972137528310379638799498464877732234047253309763047160049664680383385226838692636631236753259550123637130999693446682623652457651392630699382176844240414740201523080227730069071938208555022245820702125209956922587640544943734259538002016726293997478051220636014636314479631658369723846830644862019798202895619250640334909328000317453376058729275464660521952345410727231947248718660702147451776630279279205334481256383367389258481771555188023065395783392925852329845327841847399659708692473942274835403303755091747234371535855684016315556888886120253882774057369555403303476983738120645491851307851148644497302572981118480702495501879259134209165032156279876979217446416172028866261860902394545769554571101835701556661028866366733828543758309958568058101678076693772899372256781859943090741834750138656562094580529328500788958356197401671400391314517622827191457779441244874187582100262387289132310217267972748420384026047303952644167932361108745813874703948045103948805626638517147122742747881053876594630042151843749393020823280468614031089412605253421269695618502648997998199183262171303926270135148811217285679135965166236311119545648349067395035232948505346853166236897137754397821268220093536514831025516524706013401580390153376543012088080002807453564448166687261537870510882631866903393204783636209342728360843674046972814335808348647849624933463231839723607891480561130915611914677326932418528259242938108659061112120073597076121563592254498706489642844688660282100883272340678880347739280980638803216659902603699487002966891525213777852904999796089011552429182698173405882133282696925109331924755577576731321021656665865113138430532255448854035744037092713923125355689530200903738597710576041011285278228893862371709656056364521185411538586137413388966611590263239304909948019817831417374260782912987793379310378171091275169867806092102019397977206322006491634072175886656466744942018142460813510167089721532346112547264987948121379294351689422286838787510533525768756176961695822455805403319598731921588563038734964581916217952126829808346013423889301284848369814408633003719018364724821143481325602839339700541159533351271474443460953283084391786735130583685526111000322972989509366369426076863460537891910814880714593453351208550676815792267548196131168156738079398636251654640144674802026244860889255533747917286971337584970074346013058420530757909603936646825510028951273154013166838434924623222416249678421781052063373600298981010534134467606842030304467206754274429654410087578008105943931827422593988085588920639445315558104138992253641442184564120147875209493504211696820706456510634613136232197358337482764530302449966442795162893928071162883420335514953905645299778085013166555402794276202405631205748872017579731900605430617583784408790867324184739592238942881759550985813461481009344614050608291707543286013247126237429638914055545201384228157870931325330413998391673700100735768610088348786884176131182696781537836879845778622136974191385203528647477079092741698170558578147859687712567773737531034757566801792646685085813494703414749543269071145195936015644349073455382418405995980413933410281169314506787355452290475790805993124698094922481455563770741210216806309773224463410680664768993570787030755508043535064321584509354983060324588892408553277412490682678500784338649972048491453461827324492662453753458778822159019291407564671866000706879272294666713945746623961464634280153259885952630455311591669407874598536541139855746956171547811158136827163360018789615183021207130351973419445125275773384779258648438425443102678395673514189225408352285176596834069520881976108790675151560699339212445142078918407076830634248740050989506840800366312087513969299776526236812069873830920114374267687049286577594803854589448623792602011577663702906442556800642051526954628966852866554962841437394061867679312408571036340424286433370140569593262888082249817534665860778332781063112570591055559704409125470264551047803925259497524909488518645390422998350665760717521044385777938149127180172198095636951744025485665101996961652933557091814655801410426265501725949613489701695614403253584528291218956600219939071135838795356000500781806743327052132951038258625247725482925120037046497015042806153676304310211056909690927320214486953645806936263818598706578141847376488829740635825102503426257940078315708606435219599070795960509015137136054075874837705810839013570662296236156285470404086974585135234412683848816684190054313746458941435416291787883065201676661801582299460274394564037859396934277772003803996964802940333761713408408021382470712456292941611220465997313268462807531640789951031330450540409555200551546008680347858954835013411950628982503926842165498285165112424509284230196372871501507052390650519780182242304306495526309775426843308236045125125125484536874681462414313503128298812041611377236838264250455679155562245001351957482664899852701591204347040192266462013096525117720485940673805804359742323825366317105203957510537071084610439684225577966961783074832839421640652835531564328678313415104092337266560902354033600744123170327829070050183002813886304542580595621844319835186443096822259116176868961629378866852598671339886857919667473375440979443595875971863325982593925797388914437085797709359392250678606407527275691377787343781089632547771341793398898001360901791706358433357124786300872917294078431067988692454489160567400624642707627896640027036066297626361349214963756161617487741655556359383721615796067501699496781416194264068669974319530062150488656230425058754643839869457399257588960664148430922536290364387115990589552112216686002235816266529563452895021086057748102636868214440495002293581473324932750217962296042516210495705868767909766792781972708581770525561181548878875157148963822519238610045070048614697721053863197803252331076908156476826419429322438458214534935066459074817174280914946649516659538091107128981951264013015769352379666565153087052284759551588234702645564455757412359270841042859627061628296396281308922472088075880380341632825474037353636844457725597464266432604052240793273024403233375410421816240747241956020410953557693254424065000054926202309638456266456344359257085681802793370398125429993554996385715824224456931030960175651841295426318939543843902643296747004126383200717280627312973516851423147520221706167875714317954164976127982648655706131785033808903426827999366638881935947852130165481022851403190001057521791687050999435576301988981721821084042238037090916445765168222473375090726689931314654991201219295958715827693358742118494094736337802048016386073317893009543555683176461353148860003115901453559443968741605747178192809088801159020342729477159589918146521835833283017844177548630087569662815378297619275367514980790149945587822355965241709846816946710252403414330688242473401279250684185170406825717818207660358591252016337085937354595710074697359953955087415200880130291155875140179216132204818906208427637827151918522423352947807983550229696279374014089858282498833909445408747799789771775817167512345112755154866081019519198826031428948244145153247748916169447439949025765841730337253113181376930160742380611233680731991555242109141006562643032790352676172228683118503565478302224612556487819509620194870926096602041858356332567720650066608368157220739591884723057827901663878449363604327197215369636085911328900002735652134125590868520034261702356005870247876199340977357397049599698486050823533141842549269564725345533520689430643428685166474098126205912623390737992199010258934624164451795139570224132089654681928330843579468453523819698750825532167710976503267265650734357281867338266423599807921254435243139616417418389672533541779262924828173822806799398913301122385242092110845181101978107990292433323537668991890107474974778419791143532689959039173947893803565622310535535586291659380093060775939700561306608606238842094790055755099509725048786814106388675577355614366577889524415597262091606573327180393141549166081812478476901589955874421174027730480271767471355828942748318869033713307770708897348777839990630019474581397246110274971356657457768137304221477279651173180804758823960293808938155502588073412558904439531439977617699010830993247106439620744315895792869309726625242636520142874506304053587229112743820519071440920406712973899073944089512250572122576332896524664043109230594655515287318725659393473286667067412273234630461141646217954191702713627870834737688200447765609355415960059597742790030294772792318163055352403654115515959578480688790135126656434023548220542709239312787894119158816512267823029861024679543810632277368883278739293783925782886144942549937536769858941941762275220455508875070195525182768324526608113528382201420333454276590036018384298351029533261002907735519085378904240211638064089873891152164927632936038337313733333148831101410114149233395434270093546818698776022194726179226005700571098302397472512408654373301270674122424874129968175048943935978513943871080026312013145669195617372686211941633747918700082573511255492756253489069341601329969523681598672740046495141981148872019715904348663599351384953439128055390229740101497161682003424028867841118765052881111048550129364723746796326234464902162525922256481002891445142257007571690038971426753528245649152367758303539794250949050548443427629614607486769159684160932287303162210342373742266982182307691442636820264541207758931566094504042721556474505582024544606999327303258238178464265319435706318215953673715507856166734457233447418785336874194055464640574617213270989517598269058480845649828115276638715652956384475499629999085044800619654582946945506838184717159814684698142363021934081841900557612534635475809074207099983148376558370608271536868748033245614313667990481997857426486323019237545120696329545371942849470613063561166168897574111878100424846135486209656280783268511178964028539083676688128719804228005635778683410703087719304517921587149028018223028131807630211649081786941134204883024973497424856966309658233313723596861901013475929076686937702571783539185242154506432020755768188359655658096342237940646147142193823209782059406578399126697536128965036968772277308871694735163892523921192742678174542274028503827165059852796798540350234030272516870795412278359958484745571322284594443599068493430297157385767274481616638180326624657581666838254862558181220866870283869738998215853543572926406960890644589532042962545118549925402254538898699749434208684140884279928803259338142083076008881661218313089402658617489904866456911668285895957251596978410191744153988202482616263198307619028797293142807560355531365980149977527065871563483794559980759497384788135084985054374489138657465903574050666894560850076426339080487485223431820596716087446467273018880540753104401058435178017606396511251561520352796175090060280567892506243939676618496711694610691934297087348195541860145692629736514435531285998232673800607649094149593119569539448462883628464265521897181699854697405765607355644362824405804880773541482184151624841853361315393824878171387507930540259960178739947016448658125831836978501523927172487483312565825460000980436030442988718117216083524055261081053542597951122939480980068356217842590505798750594849108823825685308997515944020500501973478227358700322637217120535134804539140121767152651682103614896109132756138268107344622967677029180711783875363325673186903270936542654400239900514514757897323605240608098334120103127605184432939655714651471560359554624717360440483392507948821952788031426650021226382328070240945651912342571632229000273395097892530948842122974152827092570599896677035819889268204308304335484368280886755691166080152007126113416323150944640895638906614493173715344515945286484705304997510188975893405382358197570450755932220029823933883950506638113208271919554897430244512788014433677082314456145595318384039091890280536291898723961127381141804240542647366733231995753982215732517024584789241269664469154877970192291682322531821727393281860975502896058555053771974155670688178698911041849885962301903759593073685524633107865588767471091319066075035866660471388794766412746827091664019594640167735509478656015964112024824854440319288640004590327825245001081979248221495525953155182249498871994410612457519613428543257531198526214410000391578498780761720134035766962482869492389387981299995103080041915281368495476233537663224030849088621644485380952365284609891269681656956229940353841461361755053090622468429440698385474536384982746287610120155954677916724283900420726408691016231701715070131834181360915064842019536752279100897682997402215421263141004207846031250934576962080935606857392735316332374804215894724583429498028336052108802054156127501239459326941365703146713285204624430989786434186223613178681727462653629484031248825297374035583683336073168773981484397379099538899835715232112937834391200479851063188226992314843699563266874338571983550804260974226382587660103807721965773863967583855778412660245593890671672611269709355923084488761892660548426791440751517154227287585611819810527497625299740560307118515517663132547505253662844919352450320074895867642722424308511210425736365052864376156063812668574431216155096028748343873081782306361809038462160149897774446655352940664375966227767053636052426123000684156060180931756223240934731626149208596517888083383087727237199541595499852211906687221997071331531886643285195962762099108936556643127982987738778026662209924491754409811606240359050774183367164888379590413673286646037637854738698073227817371499709872583970694746738596508190364733141701427698416273729688210817061211837670673923658506915256246686409838092960713244981157336112920498506109188030886053187770546014237296176428320179503930947271348710340351133534907554527437605104943816699889078470282047268066405591074015072675291410350598306301066447553579735405662180993363047168238750625622762864299569174223237700928067465883149244308535211177579200000925632777653132319184019947521319017395089070408029894943035366127970444215300127557923387095090944017525139135095535620771613689493576727002498207201265924963560604911757361408715350623389759273648333322913946156217392104710065364452126092377109930402421492610012628103296615319190587442776780698363902496798621076734055252676947993336955147149646430714571700258564135556807011853440725624092930159808825744476255904879123975858907380951372805626942996390494866175585041535019469824393424140333596475936701292970226280490100100326689110564077403078248543453048141893514828220873639793402851029109261035302132812532039183859190360158775139657999491064263059429573052820045312819865290816462611257029592118160108326897371772592048653733442440585528217979230069393479664492769943082010267443143839294460975796922048368969076400531010071654524815966189613899281684037943877665219681438889026831060135675863915706049453018998265179688617356537208226725606628939976233516634406311289904113332473048630977359803536686775129616389086545510530010854320717726405244554694868346566308106029299386942065777041014483853755280372738225772059531214516627476076575377641774275033150606558019047911816590753291160362751302001431107554959751185655466194530158977862308918455213247184836983115973375894920108845018086754820493107928800299207863457640620430688328003295700893277878201193853169930326914001268653097939065863988340200343388846623749585627261677390230009408200588620884522392754561560458142188485432125835553163305725922071859721052485408436054924701654824981121793385901406397225572938703852427910244129541217162023147217119627450183950712688720084024991471712191323686440610419868863399685425499414944718991045877459841120009179204972963777578327076546988907150788672103723147664806885225416469367672758803457819489547420669486472362904943628921502452223718157457935884665372213730721539973791968111144586611062685903937520177708217047890819937880062099729935681253562497919475405007171890213664618709217225299140652058665562543575725395438232110105597909832003497027938343115088899036696369088569161324495991257203203124146967333560233341475491316561191860554153705752436397287687598998427384431816519596610931588316862025439778576503694369781614211409946117236756662893075428769105766561109055870866194129385953680168047033382063475223047945155617877369049819700303321304624173823642388309739801209611414359097014036662781079935896884439864563379161120885518940509815272387357976523688507556227068982542537252047721322146211379647847183206597703096113488405775925094376828333353559271926930859000443412538255985057323215529861675458680953047307637509560056761085202289423611751793068672357837344434368737873536563712634216379561957262271891170597058779578303735323353466210484261147926363273079739332773954989326280360504899534750011948665833837528828598456061186640865881334890618991354236446648755395100039982517597585885458880620050193835132008417812802104958865289172230326354960295196102967118041418275777506176966723206365380017046357648032098498716973117323881593554073550612809840373004517027328157263991960236645732523974511130850087267133730651667948229912920258176989050705004423854734645017744390961696241120180935547330567462166406547291089754167358885737608814932977149014090020913414947537677032910506219130446593699433963658834565358554917917933530965848522657599868960113332361642316489796029218419211876820627466327410477237990135516563129060769643842564004123560708116157493481166960113566221225616224553763076714563774316823204584920916462387343140916791961018150966074336662570318457784366981238674414083599136722703810828722877997352663787833333394169901051192441027988129465006344187788278135593984657658615999608903273841048232528355434002614265366935894380435787066408577250762096572758318703269566518860669148209614518721747846785663983577393609802018907416016325637816030009169213899362922155226609404740839022532464032984024206919939573110945014426191260610406462730961402485390370214829300987388268630726978720263012558834557323447299784987425914344609290047289872388444570884198651204316312236297057507002194094934913679102836364711943747097478299792797774788328321081155381658908599411966065153376675175325639517531252757645669302332149471709621352061436878048824915354543869387381108006357895667370368266046783502864514296545421151461129656269580442147906367851544213243066548208814666831787017469719206892436101466293950569768690359754446757153176218836191007518822903194389964642827220901545610898852310927214818019420328533158840051654788928921527527010198216294225951932739927807830394914706947112868734367990044781187587488452161177764729315504452914615431466668449584970872308218002080706497084621641517750098755498210839623141772773434199454294993298096307151162563637404251176590051730799895052252956919452438687788152675776547463070366651666816539608946915520575695309667723021160955019246859168509520567511042479990958365496128341660003093385249457115278642135377258171716352585239910206868672395664244948794725979191733120928196392755216446961116921033446455919835382567283179355077127110670411124363528413470585958098961052253351056586883479539395742597009820845774981370027832121528595979528985075377515100489711202716706697481843881936193999897414866897892447783179391718462689830465947877919923022543994886214500882635632299324257586535060632295807574850577943062023349023073750333186488816217453017548358327158462692313667545886182115922814642582854697572567856825922781166495810416006391130273040633733626656222658690935732467686457192354163417741922513491980733285887951369689005959340079555755773527583247271834465858226677272733483723855901287633272234143906266697164055732726490782232402185900922827356643336548107849613408841054531029299264218972986686081861354239011069327075720651940010753451805900747909417340796514873339612115341052174094442773291401984309467780747450332133268463499935990212399870379074018039413600355978649304944128545378594723145459093092384970412805678106691132517096630384420410319403587003775856867327033708791469728176041866203219335993961877253095930408906539640044755099375774430809640524702422943734686117551571277909879711899880316314556380215393712611709543161169778469090618161404229374206323981127441902347279987759327054667338280652158266420911487233248775146163663050866291440663119599782753112061590965774956664271540069962232249032677572750091235442264403787094802082850254145073538010574712474276860833397171417943681522516422680145134099486248393276371844913958262340233811871778291452611087223696440302343360026494885146718814154074902262092651372633385952598438591698722679970952349093856502857463381713076249836654842101038394305507447075490599225834534573108245369027638415980746758131277640926272566812599030898014900857617698055543402423351066838044263180618972477702770813735745482494013716295948009342254687141806197259316197458576238701373688896903663515676376599443246084681297009212621872570612373856560352249991441625726738974410646048489075065046897490927032947230968002180220385729813976016150491232410947023682677993110194155848721960440931257993216572152654296548348750495568902828091190256715191582372422168086664762023387487985282001624733979422814302443786238580057303899591448768471091663685476178022178125056589689818618918612399238275664857472053517319629238377082586108221055673856618059032741557131304289031730885105050250210080588148237515276905652804196388913468105151725981941229248776112978851818100207572254800233491951633410663211179238106079048279982714602879578433142267373219049458536500813924392665933785632167706592448754218103602514388469292047325233570340154091058930138329706322793574955153836888162142578575160577180869165495397871114217276886529495914354962832196281430306054549212009436335882365244858487949127298030451328174188361624809581770862397630575576715428689299515212677929789675526320846117292980928769663829279439679741483934798051232494878827783904443838862237600812993508227827932311061224914626629378653571360226960069431227870125432961296988985723586018547165364245862684930396858967365502563123823077748502169947239072232217989691776844427623433101082946576926530311359555041162509609409353989966120872008300035347080358375754648447363867585659803617083427138483550612108355554150830340665337653787803485319537550765943698737740189077763399658997671366265314186259329275959257259907540260051422911830625832085119013008288520165229620824843202929187386883222437241534797351509644799859195591619853678843589617978828687747724877420257289774624715968467645853330035920281584182520982659368013584199062670338549951456832921039159019504879942141704939613882551118612274228846018220920294991942418913158245421214919912669593899964926531485727897451461861086101884332539226793167666484815544399270710286426468539960332183717487525986503134387904722993844513200999153426485719487139147810977304627795745714924747195490468927857820513615177094383417506140943696526985128559670524977785040332342780622333290564735062150408690372589657128800521181325944213865349935098284202467053666103839281162544300066326802427456378697944324170359552008877054997780551583592588893942813054253331473341826631507568406065494268809758232199614850364514182268706895993964341699797920444478492767115508520246011187106629988982104117241657099497948318586432644179013605726024114999321148598394183314963702383826522917642825479233968286264592485448135684714806269334457094867167377565298303955923013597911216651898960894840121454216714328610431262230304987575622579455675190358736355179586784235372873934586030996907029323714346503903390781977716013726050868027736225429290973253311485042933967476601412076409131274659029601179212722921218119165373524385172253223392009573952744128193580805320083772725157532801221989671581593350541956313022210483536506547245894946285392538432552153769357773203135167400423975284244070219434577833429278716388504162995096226723442426655519084836470987625106874393456242421688254988099217651831979311833326797259937479947022175601873703806428169897391722255474508719110708649454457862388147695832441075320257063568963019752482717423599744054090936337294998452624928216871208071469845355174404236549454699804722642047509645831251240772712005389836804757969662466004687714979275751846626975492657206586891606412567717908510430962071410081509907381178976907987769562641146519963887976081625579623759089644206950606346565325826590366679659030675837574713603011227287739256420424618027419603462118812424257896986836816243598329660522023060400231306831203906588919121198542035823836265475410038014673794090118239486046689730860629605349730590725650804336952641599590396715371755992495893789537302556508488645661566927320427446218191948810188436226490387417508874848619632821808664925762404364566700010391033531810897743210299734715746373459510270514332000567464977386238931364489349559967632108364190499485157656278165456950862661886373353093840791692900744949565410682864467214510700127621460643622863140070859196836315630310044537631816495662662329906466064359688333485618393831019137160044243532834397610722162436774133464345039260077231851225160012704467906081121370912385071508763045734795784760457490232472497535078276482581514426252945555179501426203335420116104263157736933025382579027581208811684480851869336951786865599892497157628282752106938773768816435458341924531986714179337351573492897041716334850095377638429872922719604730054940100651691567844522258924675169069710644687580923857579037497268965396428734183614213466798812144126150514890744546540440859812587199574900128760887052975892106766405291277816252048396121271752329298791659265219012575807115495766082290909872600116212928703562465623206545621428023844952680818352026266059561776028222032148869605124922670808365061169987679134486868657906326002374076898547276405625091016671294888064147616424659714487780341650553152396944034452649234349416339118675119098747828647584677807897225675532618644749893524081334262919161043367858697910681555216716586996094307168796741755844320640478103184591785881485098258390475463829177391137162930083879295204089455079808688531672646348160266005096996808362531129321751990666679676340296576727473512475119449616093123181550271894087658171690793569671069391311557700054109627000199037555725864091174226498352570495686574531809268206028726089358803160475269055944229285299704128594079816180672608282161774481978148396354942986130281740180306895958533706983373110515443464265940029611758647625023299865497612065422342223761139451383834557451572035879779164567855476893872059004519603752876173165699709373783249908283060533163250678774326979083408277108803845172708715369550838673601165009222115623126303104119477697313015664220073136726691296713258809804912736960992273965328182933735044296514082912122501391939411045990686580990173652500544234915339299540930919555084353082991039259623745851323663046552021493163706132672009074186164756822288465698763734557150100631723543884010779662395221728854763106401361089511408458697137924601803870380002363112146710542527268549058244999352306467770912168349618921045210011583065519749639138707371745153750953052712655774646185603624746111769106351470140817161126876329137899137188089203165792360397445409054892155039993298382960588565588067312701897794497179560822923075533673304541007471621438958495579090084061597855891633767125287422094004856167150347468012791768513279825375976507985946724736339411094891720509359460233335790261498328149415541566549655116036721983226640593993596544412482018690513866428026303278334403798547100604509550034512256185969890377362219767474505539181500242701049214631531871026076753326917196330577804800983074822216343323960853555596160676328966834037200259925535814636542872546032457521104944958544550689541045406510975366394539798389882623342443884801336861773265398639913394254354401864088853817119537608608573961618567180536348270636094416463912921129235911670597114943009208132890901785370845224847793459913017457936107079656145435274083204655208239212948874090962410841706297367524590644524525525714351193263073590197836229948670722199731216662361014819461031431524131978807714932280719438351280213327910456388804312407994293111819867665069996011406524940191722416817446940943948405026419116981990936186031677975962982580494619650126110743319538009783110488611975223733106831654916118579799462743054003587503670912048670519969224104304604339553009560231290880190975083418103100403067052827390433002547406430541794557402243555321217087899472548892854970116347714797023217875170851180056001822856614876588448610834351183918852810665118871729922603749447339436982105380299659955405370270043728440126825954537478612591631027902641261922784459895095324439537669577994400433257326907335720264262987376920531561905021762709916413422985566087938566084918808027344052633097853886785877525320232113444469859163257703387475427455895615804635305102880838563902945880459154645485908220162959420011526222331311345617554343841918464317400916949627772626751077221292464422886404935626608414319367676117524285419623761413913262851038134474003728196121651780238313961782853087375987738144832938533122893844009013711207272959904122913581207255860683722840234922309100467008083252737240054354153834598104733651298223526907439269001103704634254436603502894482289484937240384891040292984641484195844219672409943461980043741353393138453105070930707861665545813824064074352498253578322243767683016084924415239676868560199405379153749411725158271083987657346095036016719101220688897170748703857595081107845825769453939673209939994908422481538700030810088910560863400782778604225256178867752107629727450016255447041435051916624968538724409277215426121852207972800330747265752378645436945257700733787459277765665214693808509237856249285639613264439445776874713213774271774523498891497403488186178995185632204269981054929567141023387225636281988076094104006434499957065195613964325364595134206105370098551612028047105943544527057343587366661780579341854368551365965797403102257375565379063899159437588474277697651074900185083134835239067191343817634304830208960284470308153837048622203039589243666138883909732634711924890718839768499973924608631410516119037960025150103780011600045803559047608468203207800655771085809522986072359014917192277061727476619511526339328771726378817541694168454116335654533480905830437112638724892471222755263914286681814625179891300540767047071164760455073951912989348095887773878455672951213585551108828143903273451619070278392484517138212824851224060094848866052480564759501171991753675552051061585816361787774210856178945227281312989569008741306357806121152425632992366447783512509029527869112485493164778739670050481541140975460605493293648736826457605518306150103124350591290183846624386976791165548893233377425103159189809670959308776562865978226419159990739378737459036301990111818594078469876976024572654486165471186485911222637996140954617522510167192652938765066284718846510138643098488979463593200776797262684299617604269226329519552416306988796485239031634143755174038333262221105942415615075824947707300548781550186343686051053546441201028713259455918332268165558068926363790515660183275374527374833602781006705176799697337394751385637161436655116602934536070230570944202412194199405977083129769226105431385363398233400984151202025192065917800870161364115898251784211345274887132895381574588065834847484497977516587687984318945977360432446231864988747752938465271526186816675882704025423907455601375337522377611939810166421223701063067477081928564151781323454742920258334454403070081365932244686532142203531065829337785290529923096380288446682465408560738125541753152403719361262307244412804570219319380222756652311082616315434604723895672176633584065588905947743651821561510868043370720613641355319546611135678653578557852999293947286075430486266273788107883928849484489420332251671757817446999759402925149851107045936556061825379294943920695024850988493973227373137731086470398388405466117202806368608855509997325425933127853941231259895314870235232936342153713547671188468176695776295709305545496121334005759450909101713141231825089283119334246829259969449674359011934230725381459797583855665728970261388781425047493383432629915106163120359498100735461017368426931833597361793886840582382725589467383020179122040598031634722175657220688495830330771278813142289169713326624448893951600560457825799609030702073285179220961507299800270235152152090290404026070900085252899697017099149266977989648085944246027693678930382770930054441285877957756148256231570923941394705276888614058192427845977913735037672188124984724894930809236611674341837043716887593563897341451809030825359890781443971087175010925869138662188242102175609983634466893899053785287280416030253900299897416333936946220181138947000274873870440868934796283862010698198991207788562740295008516998806516272624702570462722398026756073782920277289905459918077744520443340606057253530665986034742840411404506811718316873378670375797489217156381132909853744086099294118158447463467340719007353986409289670211422525250009190459485246316900527433880214820526308260411651830109484851634338627295953888984608010690332260173782322899245204015635004430150614080544796603191386327123760891543668426019664001313746787558803749350678870017713091943293976714310520517545519628235528259531683896512918061075652593757157838352455196393476360088033039032865934560065827414745131571182296243338861722766101408564603676188714468822577043914630376128755387073253885021667083868930384967884701377797590110241583885924681215318230304712817200074308956926352766666132009335794830592770493610347689955642488797442753354953982651032214114194721828601283968649795820441274026493254563047792331925387020280668927012431635087023144814787557970380766617881810585016004932605034319789690818974797340823696966224129800828698873264511868172680566482262498137573222378138123916934770722232248936596727143027771474846504823651125513475444365631383823335797618984538138635740216389700406492537574881452363805658165849619526388667848089360246054215307458076189495808070633502189905243575932510400302130277967252247572616308490580347119070710714729475286666313133932043733567621281803107927332835639691912082020204652191928162057711938304222320455744224306117721147782932988160850716366302467342807678089756131723947917096325122749566037727715312450584362920794444379300376360407720582061296659036498830897847481504043345020420638383867088934731732169073311539013870135850817845936011763160387491525171470649900818808850746235091336742324250357307947531636963241853358277465593934177531307164470789398067519795356684366646124411399284497894827354904568250196767093702656602533597352727802748610627663543620061162771436071081784674263808383532014930652827732291457947987145301882332817863897177136073450866911611405258281929987899031958991314717072702544725950886020253420398123836595641472529618878989258324836179242110353869872640635693225239579820003417728222659844310773121449903551787221142039157101746808702511007406251264128901365831452519957122666523094424417981901873287064465762091068625521775590200886167466398036317798601904726125170173322543856672592783426981436328682830936728528208260873011869326497279252024025231349549023473405502285008175240401042463011065188872994237924404660588652934457469534899565304503303328386866253173251006175355526781652572493578399879844828446160526900168148001174890372791023952535208716971525747118826026163864996732099373579632359282613014847727213191380066294533484523163738441468939888246285458464111388492678445104303882217059342567887963184622253937320696725219701390413489258060403393001328107969031688454228539695618901954461248843912740734869383718049074477055331104008939700010294665274042588665741326725111218555189314513582944201839055897583068582166510759443212174968274564291758651121439412019281268227278028676808972543364588618113094263548367977652143598242207629118341594588023545553155103842084082005044897030614607330361603000562602689868069434232472676281947387239228353707378694799362026078341403993537647155088221406371289388274381063920428571289176050095807979604421070092671377269251618000437339473779397704800692190442682209757476454837097050130654166383024124670790620736830491679997165402840394626647164498105464595608414915402048019873553149989807320326000242124996696119777463212370639673881582106700292533520563146156248311949166603594341536023592198316204404671978854337176151331852348523884312037411899957395040601851913963904444446056568082573991698007277403379064841142935793980167571313249411705677019162401507435467523782347873132680658184883466376990413504646023528346316826555954311154944351658601557925304575125375434712554347821784396236353264840629092024368529963465931837048263986891877804613800763487345030927360282192682484088117566849493323261954078669645540995466912662578313238296085699075317434838242031465222866573814234082829429512030944887151433610694999797010603844739884875665964907276556140611153332321727474567328866801249664135016093339188796337986892699964461697954754933616949514834940887122764546306255540559535233820688044177695235489714091399764557343070601647743166128806022879897116273818824491468954036997912553199278331375491696372878680393040081048853702173624540125216807267180251430271666675283526616205665932871204860542437992730789920130283474153786373728211391413929744300503848154205284077944191042791700255297510253247350138231472095736392721692125820928880217350925522325484722748470496939482599136236778682497461057674451804648785954030386528419109104275588623221190524470649137051393617386918639066664945985307330893144389691974345922069633050856860597645076490142943121161357051730052848355559082622097389358633076846884389126410586188422182125067363911612266699299200178740755390396291910493557693212722117623187522709653880978311165124830827915119120834765166768540632719378031391163992268737548031167756805217923017727480238720398194997243891174514896819188285373593653045250763515061656515466095688867128967604824636461479637826247481233667134980679812061756426458186494362219289088542560689749965127948167308663484547176063919093051781727818000749881136975278603922881280584877992662296119823663540429291469671153005316202644783789048924210347304925678736408629483950490092732219909647431862775973304965673305337511459718003322710226784286174473952259177621147000615517111895206878661719940757690498719805117755488101543282374884682888836920137549712233394531991531362752587895280989574518580407229550814507644348139000059996381870930939780949378792696944209888374494067149920119552976846017538525243864342774130628204745385417785027865026147828936306229998305403056694802884556324661546108749753107343934549043917163179687338887473304509042471691493847454151014775116885667882816939125187360626558120695509084770376337214074108480601698748721946407742931712558081150504339219097649896439460292737249917761261883378396527940927736016743983396464202484721720534772669076204835723026063173523423709292581042079314223587222035129336687250653502405951008661669693325355710395716882868603454635280052366882782322114725307832291081771952307144210317757735004862873241149104814181784346137520552316275833192266898159114731077273599177779484162920844211907525878869972001756664383153482061383838636096116495421057688189967090303919978121903863932131654077776434525662368832562535316560386450611567040985307665993505100352715788015991538952036205729062758573943655602852522466996379609202429879974741276481928684490478967568431216253369282088708355088306323099430432355431866669675404582661658804697887318344205605072834949090175604153269221165289956236677305272845131489022423053777045001004301849871051894105252681798084597827257569511934277827515379909734401823031366540098843717598602811615193842741678699590090411472268189220758426023713346948185087591398190617156280571210349302949011242598832325891694499947600685281305944245189813050643920491787767281873225981990125248236979331384733446248357856114021105762101025524033585394094389112707269676715088616455892280584120433584650527765820209968173147257089291144682143767353320472261954747171604659754214288182705319159109975107091661987744704340072740075533923742726749996711843922238515743602862152988949468883763801990445059946207270686364299718343624379259840208813575128032366706216769004849714877700089956205002352360819985292474322101569202288027904465882061499057620554075866188585567763812771257680965299241486182197688208323405102061953455387081888000950045437861647421534389978271692869783207704642995454068662516223134858409530214801053957412465235971573493313347827048501982982121517533413962372907176909857660366943666364156591712746369438114196177656387862241170929177129145197813427194258118558241619481031739269310212842640111380661948766043299522767791557326114452258469774377882221798001780779223311177718777830118241920814279013703602426063102368935971429805149754913577217564657581084306540903717037637267746496163671563520527284004738023648272653139184590435382437815381377228444196785944923365307124016685694535353891819789839909374491531051024691630783784307914761399762625628122408228570052216006679522276804601189901027061908128413365049107314218700941586900535008090181456188289980435556207647210764986939450970854574627738547950357662491050487853874802068760611737215472315489332141161182440353345070440765055479398056801350874046175938669835272605210249111511193249802960845618754300843717935443696167623669225378427590245450200965852739611597527536366953418802830871669048152190821038579045484469408217631510367080297363698589357134156854214155587711065371667591506964420883785842281198520444126667279079517188489767529776664828135479467757691054383200726061549559911358205745766750504329109254466488722292547184601535027241036846696134385361334166573185397564236043668309199940663510480312768861606447296529376703294611374802227546620753707668554513684891285981956546269492998759847578275634881915161056607969626419855182486769186810108184915327813299268770192920706841116202435404364911912868754701779408682512565098598522210142517962789369884602156573521015954142394736407105179352593905321498468306638182147223317708826987681653424806893036223822608132181581539632856960482350946899856866565012781066074714629895480526427246399884087294299517529396395219452081844246101268975173995465500523831886400894890204979473619399358628342186974957666082668271710702997466071256477131026191971269236606755928480898394854208736821298403286627522464189684995809125694057027278344547912937513819796564659691636951781247888383870132700417775146629313575383574245000355504733751728869958212135428762375174384281559934022250471529073149206323885302371954788061980556010176187177320803760534143482042200354334235336358699927693539132258718710841500673584310710188648814651789679172707846549929878862139365839765153365145290000154396918693866599919549648227932510472930122065602099519969536939638520430262157783847093655484243379236688603528228494680141206517225484146200555519430678469707679006914433971200055240562429398803963590211601074216674183416744548515238353128035745324848434291587127293343074240613371483650331816981003824465052452502860043189635746127626170563856906150225519172132556766387723756210694742454487040055217372958339216109683701023985186627558610864155329514467327294130198298613043634085257897515474098422283202973208665589119196729525722916231326927563403706291369471133520530501760756121731769949057877425991865589637634026748566328048727332386361465497160240711878304892222591140111000594671913161941765295682108193210470993060850189325609927509312873289263870988786621363823990982875662511245364181561686010017184520826424978172316874853061662219446270548995052594920860356843180670132011835194484658520038463611108466060372290120089538543750272904557874033603125384115594140490392732739889486166141894083859005015085524448604959610379572673692540802441454247483940563057035447408299638558630292237279559162852142863126859669367568646201753671260163412783347743270228724724897416035863997882106181314925320598772371509794591233872722972868941122955211281105088693335631062293406633651585092467480991124871457279036736730706184262155816990225676126326875114350202414646577097184102559312610109228752049402081279385374033225189428029970216417051258873587426828022078814604606833476517809962725545283709934911600649053414226560853959986145832161168764372162895640485690818434638261340916583563231959424741749186230399222584695007975208993057339991383098893564495373914783629189108832596502467151343164763636636144819426343314886295212478478618453789866253172614256349098199633252575881050674765894990321028343798827580466538229457905820007750871200653908590917837397963072319427780824819801193935778665289613350101168243169928181737609169714018889110399701028151706658642720193478129804659476921541994167025458195141099392261928974297242585771546077558487395734144071703886032094543724185805278966754441917324134165838746790363227284815594149002453082279368109272419576899308303704945931902183737128000247051501378384159713857453465178592931381721980708829528820216469240134474903402836636526438237930917426461658230105200024407139781139467054891080295120144664973867712860278794313594424593087557034682532656442256421798615234317391944043016111605021247960937457256672129254107254811499187191830889925275645728646535250191174284532934380516027982906135586530047699728842362243949750567142585352675551150161103677557894222582850147120609312638384720430340509029705909538499823134389172520361680687210523231877035642972002270455376629822629813537849598206349411624533878982152268512675768376608134323924473717332926371277730676461523837503738001074537582296070032834632415482785469894330657624489555453198307434109656642498417846316870263965976868607478661637805142917791428286406466721997291887115088455087616366273401924715614514992989569914748597106339664643659594619288761015817239422915573122193060387413319210063422025311243266909814582757464270804426086276954095092121637811488556754317936517293297450859756350156180235023067699868079375385974018407030944757933667487574905472702751993788571424899404938725983298479704282189069585666648891684768853315033538871927619151101634691284075071734654833259344723055752347381524288627400701037692127092733524083687223158088686388938209264669620179404550845712909273559158191979829643676257107075587600598232351011478036284293160847393652510759521154794976735849047916689318377420915029873186058446623363573429053075000422703844124128577861164987077620304857754448204097148813532530845126370780824753326000534359006061679534140526508708391711996013862473084553207824585541006976489206575608620667975236959945399353546216630381378956341552333733723226858361003242495245950850108602810956186565843904654997435089185304296954932333622444324448315733448580413937604869344459252367272438840733482865667634561982215526214372673815298981669163054669126494627840670602216439845845559022525196022171760439825088125193120167378764086622818268355563595855278418822953379214218978165410440670649801010821705724660942410940033960460447807232095513001099255936211075582372152424928017209519137274508593510329041072384753923420851950828778762338282531440113123736321781562075098966720324853593826009080631557128217992754463977234005174109767569691791013358775375637969601482599989699130735517241645101077771804232405395743459319578891693014147540015219259358965502185015694047614214884017466426401345102839581588883283478143615381314966143278360584406199366336265233554329167521963493172322011102731664837867507338292755816033089292031657351306395941183001287242172206488168594369319097711181321145468940559455172626257420567243280341828086119450438345777950825917834793969374971491517093626689409395983758240470410063148675120897504785379353093695238020245595147506291673935348237543155851685904945887298538490789173002627061248934054217783807455629524810547329527543978114049256901262964944292564937566985460567429010648994653340859390352384973914955362803589179792823731469843614637856049405629972834706973270799814774250380152346947124991030355613110722342648958970052546626781434629775209921584331503555430920819785861519442440187311266353828733768497340822147244292277814538731387852436979624748058648813730714202103243157298448077127002362504303237153757111021593738176349318898620256509030758167696244737722310276148155112260384931749099813495569250906636692503088806295991623823972043525096267086921295960805427336933106742111473754775304726590174087319850661651355903563634991883198280859415018616742747095645705157134923377240526744083922043873640983450737018834406811558880159174729661432539955465915677339626964503029110248684712401174493226293040998581284215892844000577161401395000610391678659027729409611189088561850590741753261801421429585855898447010580859365155517366478918030035807514402332021856062505545231807871543168330815288152890802160795797041749462552354993062576604056377480055064673865635596526099015024450644826520267898863092188589634509459854130732296023942405593414284869482126325389325925084703792471230456421321340600021755055081124460695092424567206385235487531363141468633104017288336094726803604516866433274239355571730226912014746648255304697608345839746671456013257965182721594986406547971587752840547466385302098431425595320260044277050912952194014894636903745197039381479423397821087925320733260936657452441059284128293841947557485296665054265463907898283161004262557329428899978385652909162835431090665343969812655658492647694336571813315158013664146703754156073900547943857092682009655911666906424597595383580825698203507407361127694927526376100015736755145258225169089474033245880613243062876206071341468250784290184255162010365183517633278326570402591036472595542644329873189578110119527623615038800786413209196336741461106740347241506025222964482973050064379145870031169361021704836720216660136123094321023484068799510072386288039412141938238084647464705776204537408643990571308202362316766877923310851950978165597574417290228200826533530911458011000419025437050643845285969494820485495079644273978812001794942338648226192194103602653434074900868332269016333019989725434689175051048487109788020737897953940024891393655283142386484049435951754300799300470518022554586313829812880453389883474558005817011300077537265061514922940345634944015388109845804117325692130986420022059501471988065780279763386797366659262467500370176169039508449869167193269835256964631879757905112725613913746848278801607039716980582156349027706763002434140447307955125824604447925808476231170633360706386257561244823411616619177987595134175681521012618981185156602860176823365413345845725013078609164060079680143929820723694124874790444359034833714101217671988639041696709765274243749069986991704312556301323984020665442305056417686886133996373165991477075883364359740261910317838047207504710570664787694545264449627656965501065675776270998310548457048406119659245706467445856284066141218509768996961020496159112020239908485849515996270799236341822395549638057956569559269362739326239700109806190505799121046602905922960043562919337772097447719187086153972901952329436431775451422902745780286080630637536947036550853038621769650981312651108652453131747016899223818442274750941587204172217153794982783000544265470741914911350405443350445828988566096318932139414398335729270028130309617345067528634972478656235886811098524909875813220079415696400751198579948351657964812738359829567247833578142041059010992008918271626461460147772132539431696989181502618575518042078457684723452810654919830869366317741777589538715970741934401226597362312830261010739828160084574904929478110702048220532988009322746469259232592981977408637011790084954606367688208720713843889769057610091336184564269018526748214662845675391342758854033972381688730159938921901259738072521245280353654137391045544400090934642488380534399722738437733576670943452747933193008532078386308585296556131568882964710496600040880605212599565536092005222603423912424604170035990386265312335736206492591755983474740986428520688208482006288876360130819573533314534508915343100225282347340815902024611537258091014824107641605881365116869417271010021257392831726144885076272598150660946987155044241005608044363377950127325173991807789469331386415959632191341934741739828867841660455334872873101347866072022896348787595893123262112189989525339257941611420708148661608894701260789961976965642124029299662072601422849554296836379933039331424345320747977312528908833539006643154010950358385160880438415654640396373547756040051210151661371191596703500473754856541453256155028901147808446020006667905246298694352157552801413953222798495833426078784061184048056815323464075058031281993428678652823899811215133100333506060409948156459319989169855756967844163723723445793292070349110659558014223674239230867908949358391764069223039323169152998411856378032922888753812950434407491681460466492568831402185392816031691340504318981441424361706480122245949660961865945459882024280726052413295021817621933694258941015295545889535775867205277397319296937443044802394327360771758827509023134597026609121600824675620414958974628941386585783885902194150710690329724618076034628366042006723189928053605561077957554274703285628649322172087185261433611907215838141947767036339513340110877483278511556562155135058736457430550570309282168231960429645262330291388536947764116937965939293457392589770929721793018983312739404854415292889115666461408724866565812335434870962847740940685622208361862794708610762699313860699807568095056747344807717097856563983248804274850071562113587757476133854626208930177227087432894750442606945615301609281773442431762994994401166292066810389019898493916947482332957191770092866466422085419530637666207523424391941557392126438638738930975046335358626684631478336899198935973188851138572645024597590113235163451815887848728703451632821515901233748109493383647253523244269020114614011526661822941106656661767284397876255582475407521072002931242465693751447005189531687309261018019652439780188756405013238176416044150637045185433980449728168831932612092326508852790089473844658644687085634228637620131582131645195385799853722556125245388491502705475993652574842493019354436210965534803607875615853073294839290849833893198046456883716144960253034028415692369419040675123501740431414252703238973024187786355719991543223592328958048335012723392072051873708143632963642215648648492546297677301513606322241448029531780498303310796248479343974392855362053269421404757055379141041948288268276309579222176046883285252828174415792588596621361270186565178152345773267094931168878626170360580184155152863158141925686824947017101786569464501721038504973576167465884059382501992052785905044060730765573053709068045243269416033794818739285501827981334294189369840146117563134144795078295278851335364528488268009616040285423803143318937704628323512335264938048833841492571936600172668382055049654593859482377198121146152152493822422772069434110157302264879188985719652638735300043414671841951182605525355166007672877943527281653725918641252565303441824857524889235327546621226563407169923142701831160059185044141853378487040664265605333054284421375887600629202919897250870212665061272760328550178143501380402734813487038052059923216930960479338667340530871710761082043463024773512631493002619465978803963741098858565842701517334562936573239294764093172564848996919479060439667464482455333562440037317692705344829247420637984778797734118520120985256329928959117995606374390333882599284310169900968532969660793686405625072748796821559582088209475965569102888891464117766765205360336543134263635656228403019011337356723593625674083853652088842229935633566652042928787060379440897242582018530926640870746050459926778526303166959811711973826890786756387761525452137909166659882843564632377077152865011438121179077789838159765473834962870772520401869284196386320266886904788581677387313801380099596867030845094095953735607288924768137746172753083076097562095856656770670214292591858797429186269896393157033943425187130817287260026514805578271742345249768695516872410766850253710521145091515605977623949834386801295465039439320670617631401875686561616243452560630879012901219314457707607938150259719978795140512397621470605294875741734883655266521771446493630608768590417810428897554812071435495298946168298928380807258785916267345669229217982752950122690073798149948023381584920005673633499711622743676353222843862817905698213578172280650243641052111407232773579760531975763633151761639963371029115444650812690415824819642956737266898417562651028122491298199297047927926548735990780140910602811958683189405889486629586143220691923247034374520296401329019733749749283884103145085732922459723980801026728724537773118126424575545365643565570579057332086727395007159596718971442955551331635555157743934748598450156896374732370163760970178457492138249797142514078108331533937106438297245499172843075564023785615259504097614782690013297229519596788303841267343969685255643545524610426426251324303661934791849906108764079199501352767923906712532238293851424870314586747526180331525049841324454279149598848951357730108180194184864175371073674861191246568773077384877512378089904275275257022270495957578246112598274110625108597384630836016287735487688508411919210570522636021041520055454249962111014050388621841939657330110690587320096714872377695087477821526431616523000735382819465974041020473471478586217573045426137848140823900711435944490888155809951038777946451410956841407375927448452417187654114160939684508115993870135402743073181689800895796331808742637812098047356051329730685989417753101388585881427472205000723151425007909492312680493887273265598202472486904039574257396133013316351702600716514308528329805075494479928218376339705050808545198972672030469704756649691068085493659155053518975512127306297147986551313672837015563225342529882658823047562228108223938165272722665809404722196759739845551943583497585781373311102991371186793581176259552370825659167277756256906789102357362384083323998227379136615506701169407311812327084640392127682945606054068081134960156675571973209145845991524146039982802513718062194212500023657424381346189258201256768825532299809779485082151389329378821355731004334813574678528303030408867837925077660742424475913845470260220282580533657127504373070504491491049617803472622564508007261945208815023451316297152077205141613992915554107129193534679316881139622888824109417648784455154613137486805114528477955991370543063242746268285650465962333312061463913110940022612117322277692658644644310678361337772964428782607326379465185978537443586225068371416646847623993206060360865366831688975724290975222568004293675612310722018354250291033369658670058969062826763768496712239041243605755104733882292083288299693719649571718152998775984376613414003181218556364962449876432045385487834190543085971647663356372972868513709387894895703056214610283294164119237284284124925918541940513240995393730676494309600497669473934231740811581785646734823428675099191139088003701584090245821925059283787078794156186727854957449457712035596580881480066502926808017028554002500721958744625779450661887778960227944343688167785121645468016824764253469581042882810387275539030899660876038153164753924289340889013970224073163778001259163770508990813234235183415771585732088085496738376362273258953156374093862227159304265792319600112547183807953296800230814591700900938655066872784496558319528274751315365691860209131143916795505807160340892602350339499759556111679089092915635407246462640754067117543252185674933094384160071950178994737494528685614515975486349077313363950550632292707470857230394680509814921650778636332766116684392148311777474635705921411306727135189658465828898194787442245559512946695614288281878292481153541765003961506905241273720971544086017645253015541906119852379969659868912680659337590434038754711376503136113424630637421308343306352540351467579676420230815700063534850708537323034301975751892985236089089883229463166829748457538299906945947713847653469573675940536089296554259918882699457640103678790805314424610857111822181105250362592422789937624332581451199141323678379954689055282493866930597446081288257558068668379468408746907146306741426918453282952231398774012466501345430114933346475917046381227899104408211463113839008227281019104189734078985250883439702161107783623156312361020789177738337645511652671735697873816515164435392885252598943785916321964137378380363808331795816882694537420089181170615331267027181347331109704992292047569073917419550479942954026503424988104436596125900178405993518973246568103360424566034437340681391097203223341754704938537734790667101492514571991963085350322785017058250913571870341849118529667655599867195957656468586662490277755244369407246458902420707518527651973460843045952412041843448291685906695549245495939037604634727839757732823842018509535206261468859615209967020117574447690211246351612988418789790314197015596690006192631872977468987544560982189335079059257004185178629136449928670482855137361790236371392455072665362420450422046661337491638994026836270949356496734960699640770072350949376920120538501852632873260613747125062031256011431508030947949506607406986498535866097597874270898341109962883762983334444921339860900284290301165671382532819159936767935705009778173551411911134952520501367794530899427852718506497962911710315502886534573624004193291607741561945987529873444732226879193921121241638378174817190822494623048677235943760063238614500219468790012055304826013706094651479807168823911412696764299743652445033078439137523930801900069809622915946959895108998581916430413412689388532183160812736240463118868430209116613228450881074120729764535202149890372978445289537689009455214207306216843031634560234676772516023669153734366386304719823653223871814125235756583740965732282731811737731454127270383104173120936482490322631807388557477523876253601195915317553408048403577300221210601173288789767367239320020338041460693761722122163957594892438366545070645477774037537160915359777214466193920675750146745920154027456111533795521140182887969461518788765928785884595433326297743326458774710495673099859835008316884267181665708483287647799134835561065141958311148653154340731149782653784429407759055229905030127104057852024457571962058251333013287915038975705750287660258372320074873390318912964779576777135172942431583180416173985820532745956445282801269659985213977115149484302464386732730454960086024075114527643349741212857663076166121809172456929636656844324096422645822846232429091388956717034570989091648128869924913306415518937040776279773941350834844977370132929465907827447524542746612050124432932956253535806956461616964280178732524950897971697033783199481288691134209600380420548922907664414731514567443193857674017403194819415795628524766433264012438385717673718085931266663855628675844758574605465419683105550282595444097375314991631582622627373159720448838110830957373673764047351194987822113760141065781336451840783290687870810503694876348272821457317184530167415833144924557748166598855466784941031407294592435538903180152485141768256574756743100726716033138058211024956468479671563149627680828631934777831018195255342990815426448425042873371238653299017213581911842723165786818406312690927975146257098826375394393597151286486621550904745250073325271585026583584866993301530986060668085036949612560696193809740921560892377270421526667829381499141995454925541645233598974282757937038241218491050956152493897050060352339941133140578101392307668726849413616402936930615870686328067271125309471443517416490425236862032708320533034281522249704464108421804240066063473087618550719955019156579197687283456938882538304573029146224596533160431191254399119392577978977950159715325679490827688394578037754468408021145390622090084303194050414870127915060431084187638585716396712280881509413324650444179979219794776770944094971559666743596541555209607789420207307358361088388872855922728874772207589975080013934559359368583712813024247405409129341974960625539659694846124836102387567373044843315770197103718896783917437524207212743795835627732636596324742973884856478480135300256555499412940345311246586653524234667221398860195874954518902577930274051083287378980452122798018149805375539312002734027738064080557926767624063605123772739618236193943282303644381639899893506697804829606845711001788081737312099092025796191945808853501335550150846281292021532947624305979602129179928948046609236116518637196680598372824210283690695202841127347170457771972697167855859617839513127150508518068508359648179183368689729136330435103227314769505141131229075160365351621080539387658721878324474127760561514511035300296263153987612712700025772069988269728178057938193052623597373131260635191888304056517562819157342024687063714279404243840059336247965301003043696123081132312598071231123322353810691188765596889243739874578434531759718854161812988851390269345154150048425847473012299974182754653741360277418409067320781364902023477611365309948128124957005088290781959139036981780571351565865573368681551175875827824803070702165614183383444377946191386128031519201906868846576898383134938468633805264723208840691425720720886466337615257040014053682415443857934778614214934379800883923947409469650628983974935482642157093868096764467561028926698629362185741165796352984528033420143010001071858925460984448615309566052947685546528144740113428779432334354840330049968040519271496849042952917080051462661876459301498585749084946760279488425574580776607180484653031634061586940343911098980554260916617105758487912429788229500339510640038993511977067330895321291922300458514258792765143406654549379116938193666760779638220780486037546177189780784122292034195527177031054299685744382135862701915569538428474402405637858060112842995069137477179953340910328044430739533546987477387623066517945057608250212660762061676518457594493382795093358767642965587945059266918516992771439340181543088670802447845715631565762366992568116125903933152561396394691807656035871752689790522683774538441773238251231476682470371296659912921732257708351170647968856751183195541567609660688603105161553348113657089580297778782064873394133009790910409456523312231917152287207903020660164915246129398138891369087687332648114846311513498784537631035609486063979519365357469371332958538146703728406793597396200522991835954530232507371134936295163397503994478287257528561723255443740604874474345885217006459387579776100452130987898943973679422615719731306675629823080027954092073751863298053119701682233104082038376881620409892118732043929415868296917087404385166473834675182323626756537427727644644837925236286904164578345884380750572470634890871130930474914808450347900813100171064872694033346112186828298854317806828726039433800682323617417613349381446119900154136411088906628566842658804407249428310823092489446233412206325813985579859163432124939760591550733958821455208906939415557063461487197554707815816687940540696698152524627441699563826098795603320625218306252382169122525796391692776106021449149463851118252954615737081369195483710770222505855863931085732734832472018180125674358861651699442330757957719294263431125338734300160207472969814598002388684159526804715755993380518134689800059331554126666646898760438966339325609142826220924999899026832850327389084429008363486631930681836488134431014168196554667482531077667416326942577068599868592554460109471634852331386392575517965969214164252249627684365396488868355996509560423360150159850273607217532743953981635916013440565119052698272418997786634031807089929189313701145978601655502125978839814276338277249875812240684641914286338488733985434882241936622893904450526263515640312471436513422716240000889738111626695242978039703327937451177331980610726497162898223382880503679926907799260066581272763968732808626169767214053198997264387195370411243704091657399877694622542246319100991567854448212294149355555792262607384508891036077013437237901005518748153420378730199424771762848229935162208505708804085447742373705094229394013814872632108704224602649591257850084401121255567900338179124695210435950091578594792716213627913484230786089544453884911623408801539138561586491924112678647489311034182151498069014777649737267787228926416435335469613123650958026111307753413361966798613909673837286379938685022599217838570199729026235748344513503419146841853976460988848804364049199934985715569291399618242702660049155555704522454391006743519294047077129481423901139609935326688071596544916087013306405159947458449032980091582747728784219263232366667926943187987713242990377045291209082540311244391519294821583661747152190277164318542225929038067532698563485609888503109325943840132541120778709461668781150534690547850431180814371420287763835764104547487433928377340444186730219048207984511569580925234489695831836392487771724962661853706056142295505398364045711725582555855979255385172670969025401473896857699930850268915921992653970040223458430737187529021287206417199596437987086431296799147629793062357701771011050831670444810976456398903824124602409825432956476843110914297442116699552190161937913315875828610080372043640508986937429401732090240434639524591774613038293452432547761326137948971590923838103760134828825436679886437585939693407598141863245043743353127215599497617026500071698922439325769258763130726762529103603434619860573916619387804566892665804453678765163704234973569578375526856158408431502285052371655025813417017103039385207977954227313459136192557739387825950234584841005083981572228983975871826112320229825744702302443862435332603344209755795240637341740368279552652094935788320742643451775167847761950690707475653546573515483253731821625860773003642156500617245948122887402045995329109471015229673542533451985613995903738739278237413433722997080484663302802981555145426229234138642210489569183988236959871247494076708641539009212026851123008944919485563444396934068283396353436545902798950359630358029208364151636774187586262697404354631742723052571682715179850084838112366800604647045444036697007012374822551207310433552311233134613428758923509589639887266216142563600706564830962564849477708827910016666309488282316124411097283724718910399523574987392015745616084368761522081561537578365097192256125400591289440172038869840950590753841499741888352626007443574780950283607200988355370743903110597452405965749269250416260840973929231737740532015483434484038331264833229612388392524485490620229814602384826249189945078232038951112606401422176357781003048085986117750036715896507380459300475075680346405620337987620873806016378502353489247171242439455643051975028435484699267942512372549787609832094429828504557473798030868944280928430848607346724780202073605295487784323799251577413495928826261070391965814846782567053600204046107877175049846704046942167345520565601867831153526249684384489946689687914653324178436310155279841240301332738111562313632806683585204666675094129529823175695280331532547744189172808329099255029534743118977977966387709036769888023555320341133272611569951618713360298499430045684331660882172013239266336365076357850666112415232389949334544598864024307599506976972396507726220591644714370941147585127377935864101123510969472892878009644417044951016923844424807786458636667413771541815822977580260936722114345259064718442793116272088407543979340488397533451392900628861474031615599741276782663882110879047816596331809419134901129850876167389931786840024817372712786028422142181800612441054030844368646190859438882432418584821902669011794534589666412618821106608470515673707783312049497794933112389629056872590635764301430244751363891674603913573496504876998653303284015478025700518495171376629708570921867312230988228352754059831783695981096131664635171954702213605118539365503976943767208742321561477445186563508976568135007550719875092078072458389063373353862035269485961354944997213004488968276296080603760290706997914546907055551502914726886709940107118010293273313586224788724062480559235098690271428721780811963019980355412586841686806684441572177520517627126076380115257006576904311139932210261594677069553083398443460903336960378107600194991408559284105078540981769758408238460084915708921781154932940229520862717632361458405288652302267235555704167728173962990929430233415312591875698509118639193499134532442655428162835992236663271180422900688636301050124605477743567637608622417986328141327213990799272657907780576017593755740254005981105358182522143235104500668113291104347894047957520042164085857975455788639648794387092788254411447947470732752581992831333117222337044138787025436963283396201743767743992894929016684024719751963489354094106293563456327834167378257224220272656060270545121222667527309429965015436940650442652939437010082901262474039692322207579055092126630902452972187202993133289519421096420425343164638147490166275466001709094047850643088941445181825718276052005706988504910044258958540485274185248031075574018309432560986674199412872094613428456695016176694106997188785393885176131741056463903048141506665715532873140044547586768662723013167646720429451897984486308621012136460543559324370298346632520461809611702419323474225376692512229961801605011891873649260557617651620763291686869858296316172928246817377910036135947579089742636323460313128734571338582201583514098963682960110018174607870890354866291506714200672006405269092587471301268357033821633796421249333959350397221524324208451874731755982369715410407782037183967554976619889097718640934801078092440873013122783607756376754372838091368450249490266442029997138248944692565256905866449170196188438437502499044168032680341012176701046632575679079171877024457381550953886457403993037444682218391582630769190809473902468682015741433026800199830039270565002158505299452865744931154015269380935239364062704146425678068122401245758549890077428390271481706044376635080317811525805639047048223892949586636460402073642866266150834642359444578468990168405406898364624498741538924025554382608762019114306049501299953205271025940473039446975635385740793790049865459118581954474688275502166277999373390534779950415662406482392051460864461021189700891124509171194558103344475349784272975383568006318828129544559390259244453554815645578551271760328350055491253028415376618519124763227239416897892979084362187485090742285815225819335634984708848169950730176154912978643596062426614499165527929780885282422522921163589401418157130209755042220514607209841996164903361335441258177457033265067897872547023573889900572446191389297767956639212997895189659435348665143410763688714414157043748414679753256719611148864980047334131382255531315923502301342715050314891655669208174462463929283384252890376976878885031766786678977193814708915771382065610745056751241163201486432474398762239314623602853712370292645637571742313485707340398669573689835013656656293868891664682224100410003309858436910761870400660438627165890610346500405358381478830959263447163353830686829008922621450603397509847432844470650979380820909453342002302160153188489848783543325396683435190151763041010032932813741241533341172805071369544356021045374458019243756584331596141546200790563732738817500502192380156107426003894662003834103055194402034432951138433393852917615636682428591850175955420182586180827177031839854878959587554294562525657110483084216374244843972093476038841461335983514441906713972227869070252925236180303378338969159998549963896265319221287591668272796936584076935531817103856562468027754893393159155967841275228366888795360493152106567338368359304823955294689637056449938685844603735250489387664466346931108582236213725997844286191482794998344583051806719289920257540079674708118817135820121360575774976208057438753237733973637336056726307318669842412038883286725014335650847911566598694383938967977790836188769453250049015433640937542394539017371046620168722606831668386700206533174180176429415131343625377327007435844379041057626290726994034925060269112012033495725227133204545005432816256597831367268064926063302673405072309612094479013430514511199315501509977782310923522455539863519131431830651004446747474307345584844010142506991689889206348964637110708204297256213579813435630038024346547456149933676211464682675307284970209145045473391669471899610291047249162862604750185623742822855735777109901789361934847762312064251863731421143435875065030624813705125568106255672835347776847275160729722510453374492100223027208194734992907613237873128442515879520525429750916117010777308736987564019917133260736710145395168960866068873243205635076079735170258623610505386058214419391204068710582454218958304748166383288788302763047050493517339358406205231219045382167721496111542308542074345014764996375978105811894056262357183724743831427517035794454364054077708307165794096782373824595512740906925372691826458531387358353968652824718251692649409780419070137504021098823840101382775100138893991781067476811496998735002613219822124395498158203782867731365829163299782980913559250636322919373004381288073831069483113236157606999113834237169445366003876093952652100280937421412982893807127196492717555742653054754086631578242457301601581545913409586681156662634686293330389278961870409421330900784933560387393510147305261419423275141025361453136491799046211083222475342207817748231730678315255415751361765029393077794741441226627346808148016844207866950024322590180012949103781147264383501778700372495921318011233042078663284805112328980976695947258702141847303520159170773923438356665680418815669655060001463760119878769810602499906935209566712653064651373368324290924275967253187859115775484550956192671530753263242824630954744272413326182988422751049105683947360556248228083295556434381194996032264773013153823705645003828230027030038885603649626764738437354193961675177788769436344430750812649859205979924384052264634235702345740793205889574186469954116747921929300078613407819257135574476142083585461180969085907632669471815748092635077800146558341058332284498025055517553369130293421641778428707151068906296731381366201146492506646183654031888550325015143632693879539235720548528765637034462587910844562736627245425357369754984561072288160955656034911093074801293940294690715553191211600379952937206529817219666029278727943142922523756016870554666407829780894604813048421144076045772462479179666338484933408778168385029558381153684618405851930340324097521659926609861097508575061726479266356782027963380452292077558139812961181894098833996397393922481660072607680743290010399955440043046055970649095177207325316395038925256370818076791428413389936478811909921937846512678846640532962032461496867032900336980547708586135138308405515796741616885684618421702613408320795395916402438262630288892389920504529873840805389440433534620090962935623390636494589959153845065045339656942113008870527406349522514611233761454471206788351005644995291924922348338450369958425683320417095334629350806119097520231493101369077502271047526791650860832862710866615630321133265983605488027275539186172181302983367875866514619659554635391523977316602275115498891407289217577327496357335948804699204835018737483925241857320554148773694983604182602507328778848255908397696762299614276970573631363587220130993282678696626870007259345873642680375861086416701701686343250753707822782634184295733117010910482756679095040278543277426787918522154424560175881433166647809037868881732609725607226751914947089748495791612245600820586539761591932446254730480181074998894778464375002546992746007035475439295278036353962927753769591693689423942055336076825853750148441745770578496327595503100279915027960095847758447914409866352401029800042331333976919915183000137305157996489738777843403744689918554606298389221196649334233701535176493809671372951913061134938513234989173966144381492548480052079268681701728418030483745855356199903962287747085204442223975557568460273275647361858427604536625087096655213170723135120289937048014318454251137702567429199981880319823721066217875044691920995965268029370844399790541113603496793043934873210382490008244154496680060208208803934887045739817450353429096059862833498247604367304686048904988613143432005885299560035583550122658734873005069948836920721566952360998490870527978040012444120519758656427971171482166858350457114126859072884357771692035358616907179939558503118010308764191393449259804017633703429095678975360699856514156020057997872467816670281862817824206624649483978049311490099408661386989864760363348244417985367234031200382570593513546155229840057372605056158599044922798338423686326646683768707184696886216055221186175056076521623666928926004192999568480531582464487596649178465115759348280868093251812758113982714962307085022688034077914278759098446193135956545344192203072740037693989745506408364833124478509886759829839482070457199989704235765535821601919021770767362115631854025678312008957340504737872839014561048230764390277477868998991407584619651437257693442018996164701730905652203597290481970275894751801562676095267230055183387637482929803304124318161607993133240233473544433328688632293337593606478834720049821506309621431043244075072378609570003878703494243860121385756567094542767325554017616348805551419908598260191998040725004317797255070357018673901115882209266228371573163726493608686722624677204370973560621543667253579722183547097597232671429006169952737296600297911541980176749387479170173222908786430251534010468737269072105205440986165749254142885324207265501883678697289862352704567440690527347734857903549191404158970704714191898390608432986684882454050599250321476991032277432205024171667115698093577166018114079048712200324210581901934809578908159550879419040773866962933105436562447310146202525576158717991390915722204139963677113752707326189667443820743407934726945296526383166946602142984909504327412976645371059176740712439054400617207366716030169042044468704072609381140189361550762642413387577023640588215921087860654457132271940301795059379558070723909451969405665489844067296155362629462974716607698746031470506121594790937229615037692490012180762649363302035129303401902341678168720986433862352786851565854283312664529727806745514654393166060406820364747673510573900237758202090870296192937690618065002192461127597531832504959805063321026354953499346256631222847732629964802260011891449613250991631633551970836942613607748747464101344606212429273852506394382617602110304051478187986368763796295872743603995037025059171380003243835883168243162569352351834001834655736401025954819145136128524978636618509732743478487038568611516234662937684252680596125672053144532751360961100672990770085321475113715328418701545349454950210951935507521793722981758715224651468605272911977235977565573328914272334446977850934895988372913820621086116675352027192000712921423265882695482406527509443750311874809682806558118984528682606009449555599406541131776024638281903479117659489514508847006874403079106663161691840992858232798749842180281427402384271209466167330688276479144827335767741434580432628845710630430536720251854064575729439468527210795080388521825245391226435051626372445185837619272770118278889749966462066119036220141204459724201510237367763146634280120177749547229295707211780118193346184470181267259762418224332396682138321633162970838929841520823238318026311005347408773744139184086670336311570980045994703204124640181786800066866744276297533150490186041639991531667595837839411490696796619026576456132614353234227356358174510345288184433183058641088827791088819560392931321106508248665677328513854448569013397423344149037733308362530606944822542124458983462052655369620373712986365994277612557880921185193939655531983898283060345056417174916108222065841684193668045065688789019860448421447026909850366789514577437838415961866405801849185698835166745977512352495193076995995897335842535460208916141980460486787759350407706465296772768131510682761948929533660258288995347780966731403333777752387363992443746491117876035304332088396567562079157879666316726706511460862841558034072343665985801068095740486201274328051695194105370138348755818149292894301715687702537717725505995304217353015980748320265011047465700348685574745971722608619231864344533700943279722078611761979420726244029426031624614039107424240642370545197271912335592396419788103265907871817111656747051076670573148078436357689105788344450109422967852630062323605838870082898137181628980995248991047542608613528517892703260397838022788843658495678601116947030610185105513676280971760651810390975751246436142254721009133931043829981562414684861228259984090831672766279162124559003227695861769455955067875374276826712925640218926673208900103631352666513243704954759486269223399919484739368152542943364254681958504624553871102363586712928656530373528756725399632827145598530174929462731928692266864144105406859829692601978787794635066781315330641472965837087564479161188865770503354477753984506280557537809136928859972993476331930771115828107268233450464868896880325457114957940259967832646740338055241631470070090895087109217456700451448482517706902944745742205479642498455429217701836120004965391947743499743381242938809197280669653136942682361046989636340652514879430944047952527599630215983085536107350744845619974515378446635966727920756305258045313922718294143745067256318300711512574940925367004671278555456660789363281117863481560153488237517976976569397199378793777342799806294811271550424137485995963187804604545275594949090473939017015985741409275384692776597056624091502970034244093845774970929912474653404388581370028230277445109749635681418435620237423974582639524500842835010368402254493222291550632145630802547007594300742651317173926333644471963095277462330290444904939775571247628308927170562611989001320421848532974867791532997037117178614935286430697173238727185447167096871064634079750454019174172936755671282592551754481496261412885985688071000940380809312154445936751840673660628737479571092712840427440877757344242714321778631420705378305980490945930841280355553836345132810450476772579843141456872699660419320536605442752675744433487248096788159673599705703340610545208799712751167226838128910789465056809741110942312522024106534044714759223453121731716890413879646691029717828760309769633743218688565900356601791416411126183772127032213664182915912599461208885662052475581831858338119108788880347476483885935975754736117027121298955388731772880261280563859349233559062870322281791439794539923355732089757082576829153700422184846824460805929265603661241376776602087880039167523339663642294841177961772404613018268145648334480873058215370785690775018825801161120433506934813358064194062916283767237498198948334803602657354754791974785007424255014659745544462030346665695870624609543913246082975446244167730658702175581047167963993301978457160654116770386037463129010652451122510580019408236058187674458446816377244735970726255917967753218436681969855406690674206065097052256865276072076915390061126533485881051634685465646006736913211427276023822520386898080655897938315417867715180502138705430953402202266548585320637298228391194274451491552292685097813841106715471890940717990753276870485719091446562162480135637444007935377456524495873539866760123139891418057914403966570788687782138065169507171415929917559747655072799806663089880485023250601825004911869992383745586289927854806651376398530297859754711725935025485250641217412417648896872389997633954646967682896480521282750787246326871806462266475167556356755742951792638626582463075105203712032936888078988959976460879872832903806403403953234704634715148165031969049887623426813383122274604180483544823425719730738537437641388822500754605638103229407763956596594471591866047348201682415590116037482164881614926812946204870412019789485292605166798420825685779821618965337670904858475766357778079371347794756394299207972349089252761024515488251800728933529967413989909448411411791492424456948865755341466321497083767637820876859531304650265076200770177959788095697241249320103493140375521079667045877627008989405645269802521898791662694649234813975514819668114386720214768891274762988637518403671876763388826244075693821907243999840231663273446400420533722052941112511091624060216991221711519065917154747295834953619285963163112121031844948484109890968492243154408441345786166026586627607418865370152320599188644064127220390911331882868180468727930269029814760550851233644236995831964862067930545075831353906701258685012745312965219080033569756542385456694723314804252345715871913002207238979020163188717513311421104376995882121157411992187822320515424818749966635012797626161968435295110478333619307326375768393456642543853524066104909549910517017972221407623589737059390856635340785007392961763210149512368396091526066944154154109833014410152450588039167613725427089082296431906224056639725687351492207278069788445666060548139246727319713541245013150982529739988381017853976850253514123326196332773625644134742149476974497483150727470401772039708453009523609835183994823221270836896641090565578138586330748736697494775792411524923029765659173919328451730835665292431483311961718093422775745220129151971415090637887685436306415417932316361065850482780647961698968521656674769074823700361408096383093108574465430448689073393611933203734690033875390275452059919647418099259322383448385630162586981574474720804293260263116426243181777148615101304178453814670943503389076981792922663543472194911922646034257280092184592567391974987767646419740453303772114377709093206745143273427630356409822226991390092621172361691488306734416339470455126576497552732442095641719140977511162608356272034175786091631930826924520389630839254451687452890114790526786366323522240095238021870185369417985185610266904989543574622571179527983923451615138214444641419855656363613630816480464604874675008349694570972765827183590838225925582832095161567355770227813675195631301786113235754659938797431893519812033978508043258317654018753503136096971956057088909938629556353572374730036011880976426941888537761793155544930467941309761880895361259931910300015443587512677114927585019287041037173249170897693897913463065630109083885302133650561739750105068130334796146112358085540245054006372296707533206953175318511528789417527725195000003228603492922422416287523871530735794112741054265400667039249765021775574037494732667231555289305929016273354087907873976652954661304681776205478234505598285971538046201529526532164811841605646631809989797596999631083292791189832643533413813098039109920603109516813488580480243815754281838596056549869737265137646228661262622696432209891159040441208582111068850803612066765259138359533966097871524081473646639345326724250552734219577487278270470009054785620721972944130415655437190056835941562570410734786755915241721825169804935356312012627726015670970216344987858678170244045237000158356743371932440571097610327471163129256693268108959381273021695326378562524406536527334565930033963401688499687079301381087920275035340623626408730656433029704873885893799511006775009822480366563920871484276582194357177167105359733935115818729031923252164662683431001491975063675253035420385178481204896818183530116581994184312126383366887251768290083290926840726540961458675077688268104555181186175483486151372714760273352306215108806885770857769707093451213410568638182261196454869859181497302931019759537882219581029086317326541694639014749266259217376367236799721680717476963461747207864981903189700335964161212669431037898110356579518701662914741595473365494376970993560663994169824406174587111867728214808185299086967865417895051664442646418345124701416600799056905848653030698192563449137644060303193550429779726626614136931253628569738801348738435756085860934318305223756851823565031202479957959920577380854900576391303020238701373005164698137628400571787983889389717451029628528346059460762844379709399849927239199019611636079000445869219502201504508120629389075229726666845358121244623377474310993785864149981428284071973090720931559119950714311540124840466284201599124242003357801266738978291503933551320733057222433187217880435909257927274715053148660270824017195927598206886858259704983049518078998067095209700694991316570977508435900497049297343588452175824284993119626034993004259747578169156937227827201232209165356915947115727170101402016886548529908820631543823536751031367447769532823799398609104214368362681070012340846971157848839056518809594854667935959275755489781666596170769786943995010533337549830666249198400135529662715280471556993381653232267418249505804871417227591254719504003034097876311971996676381396698799737333066520862479249187516083060966093569622279524548214394112470066633265000246818098578601050219370903602366315182183655884448577001167834816577055427829454151320547228654769114177979655395589445115296109995911171958989846843001883165147312104874009091793147005400598913947660746518953233769041615388917909998597552109995835408378994469111385161905719097661936662779539722830357466894114406453751695316882496020029319908789895458967161635239600009500913084879613633834652569648247765885875158579524635448675779631712579358528848556956831945318127440040290893008409453643323626281381723898991043289592415236620645351339150340410575746978059668451080959982231097798976287886675486968097141226389166471037625919115415985907283523223628296520958274613993796599132220599556677211823810349918293637901446945352614755310411707890628429896846193724171256905344885552277119151123758720513908794403469072478156833626977591745878880318787818789003532301507525488446902018655742689481767387978446134422086828467031621302653680099706829882548070751647930522647922911160407722025288735562353417340827204638976188399712573359739937387890299592380728788809426611433644049067710833613521705028142367924278187313313692449901630015176185091329091863056176882906556855940178291636318039648716826950085358644327860284773172046728474980735945094692828433110226404362992710006276264918815844341496033281328517946541367799411769503737482628396657537959652143638663815841451089560475310747378068562258764536731275882217750697172194166538720255248039504869554145248481092275593174015365422087890507995306939571737058320609027124185497425403531519863332315444669275541893547127727787707538058889456435757077919229791849150567387278824497153212889755478686537563765465402211580068564437264219689199644123749147365440365749607326567807410253336005627002914339041174433266050259515084277271841360717701782804228334339013308670806852768168147877247664071695765249975278969393677310589996084080664185943380029018885769747437574083011474759990187301278603793670945813606604037923151203233852725200071618472648424748598326096185271984480422295751525082847132622520398846833899556958275209800231270580962536425522547106341592678584649151979002751845642851880431595821251234648213708033609404226305529941535264136050028047096875951357547982100905456223208917245670313902371754384576578882941750194309534536625290455660639839746711612830351043015530273975705612374451341331588780437889868664113752824669884192468081366534476332224021912894055941540136062175373691642335665330112798716053737591273850019341176664415612938432504777736890030139514989648741178736277565990636997639231844828585928819416495732669349900306240408322439722520724069468530888558267072755769622176798475917852055428693347509688772656779069195163518072438580060463803881251300249155187220372081433264010175393836516655484550825891318319147770419870946759486180308233603460486993888838467997866216687855528650635095540426568116462434993470201318474081254666498164808168186863654487211595809089950191165870602905642927726377304667825998487398012937785018621689874995053494344062386757500265434515688999510824412758158821903655011653100988592077525233340850668126652789321944678350116888559550553234758919756902993084325893430439259091408122825577223576617562361460405635565062860493230011608507630597613994440345692765467705532253536113965742425462755778747803296889615432773449534633896885079046569716150449551253572161418258801173123015529986821712615826136601223668218159994486004922822650619457745344986421344395302110168419715653530906567370022752805586080130959951610194561099941049201502682199704432965085111842221951222992102577255278301831032127165920376369465484941252611657382148329941001458278920984121861667712807377701734455851797073094882106257105324926591994288072657089627937364290207243404795912629786527284279773501508766777017230138811781382254845020730434768294011616907653583120252389414746160209796203217964333441793945562997812005279229769283050200224658540885271856441606849071778904885582203417480761388365125545413845201368852163708914967446504514430024828041996580543011895214156268120319251912934163133237313706931980097967535688178861352970559796023402711465638582323518341323078512007454342574107446178388482380621647329609345422278474440389396827169400600107114930650177312498019330931335579506811445170262028206718218389500777657734248445504128953791716243165255399231248025494184153522404803790701723759218189129522408337079766726309959478549817954681354745084376177796801265151584575131315205582793744804758195786363474613916242837212480869596180036252138117996353918843643167813342871230572748582491353117093681229670246071700349696680844784126242433536643407972351116506977023686404294741789701503083385153696134267506579162941489544473746843297420204483530020065249929523407280484432325129069123791861138212795612345455148141550768642454708282617943312720888603948213099118608918171415102416347585857691274353929651485903329891610722220378298451262311377803259102619030395183862555220063829592765058805411822879588333856948768870391786683857059111324376311328028179058526042499595364316525865706930963234630721058769596426007468984656910497332683485997566552681833082450038776702821022835661999815643254674619921116074332810516446178669990574932515574291585638309096675841108729219761090218786480129872120759480100971498459318590379530852060902808893791571250012874077110982673809968925901693469383204102818289556925864446672771307007259552052184203403409898930035058524375088764273775864962769431004653307889750380780010380027627303015374960822350665865558629831698572632085626368451277824667727442684402629011540314729075200975151634070961523697797481512409818753584449358790520986546972542624303441613990272025296910203870493666650172302042242542474355996473841255592142642904202996574651165886340414420781082515618584015463649108378097050830807858023935033800681488107762921983211978981245472467432691214836216562392236140432163685780887832341090614100853453531789175441414502092474349942325230478586382888094111528661122056946084537330153671678950480185642155758959216327391561297953349423700527283664741314968348854786257401943589624661011389979351479857391491922491011903606197731610367436061513911042739174135056885014040179299642622554550084146443528123855950525106941700309907993176881023209999327155970119823260839225933016611002157444358306449361841462671679023895080193189272376606123993066200529569278251770824486107074931401101475671469694067348335053888538401225509940927992670905499533956926913458148195044265445357388934302979831759884434246327626239341923353002267988796533225395141088839515073846174185696618749404101532872989530946046169328885330212579392785679315294084664009260105724605318244548970791527110395657966699539426952467826422215320635543512093384574991361542212617961711781757172544141830893543565372780139390896974921189916983066580899586463699468869102687984180472497064089438166622629542939701756083546945421612730817429519983233532259465078568901341090223753677013263684504933764802916326862831050042109794579532512428459130990587926387942841018765256606530580901610638098844085360127434050654598191383203360962188299157015139046087682168700382253406165480467847790866561497691783404591999648260322871119219293362141045281742460748798916680710183974573627863091591986783112649848457833410759946366182410882738899332265129916186449551921270738573715377689508061436622200968973822264798897957564770007765465861454458399015849953205502485545388323588435295243351113638176071238645502368589038333727323753345133406045837023210463105486048356976740418372720335489737600052574314644290817905539714109866340402007451227082134165225166357402492553108970924761198750618944507729503933099878049627122696966080631129919838495413250393191230330857162501931673788075634942400873923031076362478589216702209800324186028277820661158705591464737159064529783162362338203384310979979911102289691943884464254541252939056110765345928472858392269893924405549333319405858918151818457925813175355129745865581314133219355913432436464420475018544737673094062572478672796324409835827264862233233532338054579763433335062146451805784751202120917673356246635299541352875766556970124573683698796056620652641452577402019266736709506617575078636511861379150118064099925294943208706799371766305027557119886843488010530888888862917315109721619770671454571060521623735493139192711841828145585897759568328262351132902336984034459427811910270539948573400044573898557939534957144401441575817327356112694000001604803406892179821689544320911109944222742322932822350568216769412628546385220301038051586193819257083379389673147772843456486793544023127561263561192606544160486494929575473997107015063707590409095192057409934436657365079023010061642965726718950841408952983580656780947145592370200664595823025985305789429114843522648578163944411913246335540934030292830082777369883457885483705592838047959072143395079499658356163308761916542419477196937736106090662964774393873811006667703159076203642101513344805428480425909883954291647850246701248646871159979719906764615314648568546796780099564790941272281542158757587818467790355371252146360046557742987556927222904959010417896332054639704444629816802297491622842749160519712691782098305183698607176719608536168648923609596371111663248476163919309120427041947722546643214821097360944725639711119072513078946888339175931907371507192991443591774434791226008730954690094837519873753112762319746449382478740319248714335868802373696020024363836218070370692921644291914416187320852618213437915994720274107977961470851188618689811647950193815624372138081212458922122735404351515656956918597706168679036497305696148827388090913845704061404737490729515813313659947966691271382902725759931474273052163062068893234552683019342897039702717205706610882885678378497748244035044330297936274083356414992652569164769272360587381788646191854155847799472786695030450384064343806384312710947944181184318375525909929103098073795465970546885408082978306725275259954333986764736891789107543399790287065820865863608295240797347020031407603761170835857429460270035760482791789435044104250281992518813168814793091777711574833406546224968930191641843574362815858013421878107837093422509941536236055861059885266308464687253386210590943068388035340183872339965082491047488255225079538366832236901453932352513879574154872317282661505889663930580058325550126898558381525108563201685747708385356151249654825732149233869383910715550267407438985460404198149590664989187481070026471360986366889009853498645748352992790090590262873710560164817568834168105054250003979826848570975285200548067960269362147241469564770521315137391823643191976850500419733054840886466145917832065691081655018351841143768727853163577684297757766712643845414460754478294448194878926748620090804834267254749840484537797964331508855015847626429582614006876726294814604739266401269269354507074663915180174092951709472867179674888693061390073760392388842720130546856946481857772940931524902598069045118765973874775470339202456974082046035429419623978545353620701028417760624047786495632121617183689055781172303071783820103503912329311237938020460477069045586668300442603455751310825316662862864383887861739300939880105294429221614077835093395556088209036765047779168432970735852765762748639156478275034028258865792080942795484813660887309704293942249748427458867376316480370123760527072935501514709449590295877354686293893177816607980560023389867465837198161331154482119712753210690482919324068859301434679835523706787857345075674603340723083451922895076668974205890225154553332878689147132872827583772959733290271289812161858430990532557701310140873096216311645562109666181791312432485348840570073710228003511291860974714133269547712431723837700292058679037430314794720159015215011380042034258807280349132322103773265228054548183804505941850764392876927111921906000301891204157456511403440862313347024742670151284004252417332095797262044360360840993709236949327499484489410875051971199757094650675974738343704571640915123039324445490751978277761218483375139857871971462725493536878920651287340249803737685782694295454749480203852018061159495132104264909151313508265459151980182138556033655338772312393627088123540423693388665731267562127981741854053857730526937587587451006245887729412393184800632747343398975901141656768533271499684828321719908965872580776029189462741146486354275087527601388589450675070333060389684166451528852880742756522984902998455440648767449911981170553525350597966725456319172919759619754638890903212873730059055564829603261051884177852419312824311388590243242327173151167255673885496330089231730260656605690095316454238472096879156864120141523433848408366225795375399313835980520332334358496295176862393501816628700472733920945845332796623346230664098602408785845769542154252911736444288347362604528562783817403078979354888465020840333121143838237439727369991615637212971512021616683170062142966933624207687035433520629492292907640576586765696476825427822448117068182579412053078582615774572360491602671068916789788010295575106604402603797884328809676970342899422185660002798677655694805187805234799337765914952201197937975760077621802420113605638922218669085158842357351082484298954515047518313420103700855747754914489018182050225500850488037745673740858048351577319212997941311352988002596463448804895759709559012515542503360813311722243573882767359570561892833703359488681295119231932125097091320849929929903957261423079315647958636181425693008644585350785139416666479655291604829312858205478332233496487051605607112524387019204830422695111718451795502677524406294947110837809442377305365544292686606997397652206654948534902350453069161448756354215817034181256679537352325491587738076598356447298946872390345605776059897757169817991845316871174671550118162515017538811259654628949955103769076212826852023100474739449373645313450518681165675053588590503698960172324616739024502535205728353049196008616939191429163979585982593068362470856881764094669373785563682529101440789204354830806086169225659787493712647747220393204719852915843387103654054336594131740917508036400491906353218054179885411977231167673969393158630430886902976508666543776486003808127951010399452102373505611963603870424649269474484613946210357947315568267271620092329402645552532071492558418964315693058058662734386933975610811495884612035887821429435720505493401073785769824496346832743759048700178113121834828262638338164131568132443101264956998163872187311751996293249967305018020699613709043227740235233103815435773979276202496424901146387066204716688819962335292091509143118389039619089179982134077823175791404597208448416503942163095768510159729934400298920922960605076599650139943620817082187643000820836230440666558317696910481670138162713065197823746491087617902063024456932893827512425071945559049615989367236206439663471906059343412360266783743018246167496878842402403290262367285794118616590156699419188759410289815268800952828361100984651925299728004632125532599936460079041245273308044152015117088118787484518626234239579112124986471487842503908564189438974461400956828014892334859579237317656701331991831292005236147577161158130374901881514017237718378673370571778642267056400573305391622971037326250321186760571760282648974185983255129643488460383187404988193373385937822972052097790812166964771550214132703699535145448388795309978743052428861067273806817098588424463380770345499418557692452797208886167965473099171827077668564576620741616606190517486335157120522235578914897612366078955186275554114831374112330091841652553125021992642904685740134770514654692223607214741799259360863223902745260138284187291803394348478961036145672978690581732193780999458464024200724091499308880889309875728241225452929583512960248251062604271722960768137312398793445471662418178917299191282013016284239344543736716064785739395531491378548499634092715189636654292477988056387739204323951009978179599619625313022047479631319291947147084854674745391837238964807842251860999880573461887953753918892841867306315014555749253500730276029506286087738430513118874290249705095920625411874718550002110778715636815036548097429554411250391951188261160374671771437710199985403915326880930459260460201851507281733644077014805008955335691756726849007135642497872895797537015496306662390366597489295904751353691146148481598169635823663698672678386359353688841062505380952925661006102974822865348838287423772977430500646105112248437252773354988087981585968587693457279722395601304373420671360385517692765438230842448768052690167853628509800084448139983130081165326776276752172086665128755457357506273190412406466791385585384548795371503400976452843075927323125162609450690853151452668207792013097950483907417712641314270439435366710381626542423471535627204201478333627476129992955342955670419668335580403027028899739811438254003094037392264872619077096277883841821540845490568577557231058894182036366731968220737918366845019304090391460768953305352829900851534003734031101172266799672775168591221685332778505516359295119422802573740384673693746054520217797058593684117838486845013346645852680086771570049331348700539674616464664908560035160452521547880846121404045101526826873337236969433932922838617388000437412715411800571025131009202675135635783345556523635710914609662298875459608135984479175877085253267350094733150349547867571138171995892985471928729877505950158976912966243650175516491311124240100482257588723587054111877261455966287425834653478000833739820342261626634524378464706115746383549364299690720285062016760590784027683290537006737280457764279408523938576257771519057150225881440509967615076471685243632227136570279926713276131627670514526448739426536101803225490223638259140793763276991617865026367319688345930444683805582416090723248196322102096884176947431676278862667229417397932555213656399519757311607000802752127971691896129980043637248620360215307146730882413239959148839686507417835235473469468303877243955595193660464015733248772458754035902636194525750384245435394540213169953619231484440850659510987694944903040602387515106864675863365038450063682685991336037282340742713393272391806999247573029698410766233587527090849653077622321825184601749599521648423457964002080575524741550500368829342558612140866977242415309713824300622610116352138348001410265804572057623488558790645498469194412260810145709492518031546407072810702014662720853322766312328038439248998151408535106857376648453490332430959402058825866866186817526383242676517295158612616493172012709884390277949498790400781110021686870416102957906286080403066048985110459151910324310932702171398546795371719356922318342186653157375202991608691671703138257261804514437514610340675029893368016684662786907684477364960020217253506492391597004950450816508308223102993141784062341326635292859169135272071644530922478342322536692432467167837119183957514801478024191403762585282267931688176141448406731762578377316505595118884943143099707997803773927661942098542738359209913246690714813149600813202986093081847795711949452985385547073943503078245490719384507894406005401259459146589683076194234620060810787114055960595626686758350034150084509914106608084261576329661047008153033897721252757667382496937267583396730751503153996247879680927998061743738870487521401745812736221858560089504638812613576371675659865443301200328824129428971736356926190212538390095914234422136856877007927054796157730188928833028977686340050216380550833326081871591248424006899859402047356247140370189559871850762858237424379028164016589328229828581679606108862674016767786279019110049933969831790768757995162835759813380807938523531234186586029787660823635436991327547934133527457386381408416000319808649740747779141064092048286108812981769553411140966217934934827179558028917626310477929272784783886682822342682745827686106252024148365576358524026170734222977041640821421884613794271823700321254169784581894024495783837010604006487342950018407145231359858519504924501321624147870810980621081885475599378999484543089200955425514004724648091775474721805816825388524256233995426676945152728774708940149797966928513895467952271550134513323795228882548786349212313121106121862711397241996804268480507461141820960357086830535304675652477539228268311618936556056918929646739375948976746519329511429014508085506829680326983986459064507431889380936213897993808988263300884283491076398891096235803757766869186523845184806239158138448938684628323757419161580984249130152934895608583133018267460823039393500373157579052656937491527479647900003311074054363980458168400346692181040477495626921367380213671925092125359936029773174037828347066555354479764917000997531644035423025200880933378160534877020130095755748082380463273517956635172946439974795460438361297296647870897253674944185020856285975401751754797787578101160947612008755690857515261426900508585575318006526127325781801565788078588110530244945621690036830329336344784187114911594970967273347256935038135050823629494995638529250845876387227815420442902895342030353685764639250315478816287094850825262130581950398200298929982589715284614012362612119760083093585015846668241311973672206407496316042192908836068541795587468629432949103488922682754207369474397172354586994486097815368230305715600455248397307829155185098050793126692697201429001985357899600104410700176582788563107394801028058428980891831019538010653562693514282933467210085789179129159725915116676433354740216312638081238855748041825457441672168143582733237472475849756650385470121879567481616827391688546147289180474668017491922615043052562864935739547506969380651039153054772015390196286423250030122125395866232665378696446340910677198297177267500824867172527415631499272628342118631724029618111428793391081864949322276731294918804191655387901245274637385167953161886102516796148889939224404563802973743593349829070800914772737123984398580808136852983179652929392355575282518228074255407669950423667139251196729453841229859446522524832479281302488506119272975836581644114534033547297436317888231129494355554262180645436685985894874968097352567144227254473730541095329473191136972168207238695379092714791380364107338995336035408992002863459279413032169368595869653387496532063371045627539229453324174718133298070977667588411753674844394579788681749763337020488690330860132684924232401621484712319875182775226947920632734523336510777231372437620750254105234064139796948612662866625285117289027689898043212467048867357157796570036577460191798528117883747465818424005557843585419462207254556653124017720068101827404567970716216397214841120774027708032238981054641900027154685081820603199706601947905886153783164164821377617172573748519782905425991653862680553733150536936383558701996223658130395939388089308716985131196031528790059709059269047571733118439962515283222149454835183498828722516658034799698498552336563867286781657017569688235780860771493160258375215378184982431061238129496617157631998705580059071469801378459167347695162339027687010942623855971452724645223883104730073789383849575677860914399469728960447878143359249483397436856248134614618145344134638746510641232569366459369456293544018361718558385601146869280549933149141401246114722200136592246042577214941191211620569183421249205473210130328931546372346199932225377561844222223966351451342765141635998255381730448282482946667255302565622983639443582222871406825052497584337314956077145715661535385719910540596412492023311244416378190668571535654249591396971733726535496741557134998334152227424823888275661814010630716968158964878676321413168042415334396628183579286875120523924500399667730261710223047404935033903126423993592576792119846951144842265405083077726749306892262466897091678966791264239040177314774707361735690008061744067042552429583729119267305754919381277437059656151098424272793505732103267940065608249494172712875912207728974492137223641282485297930048903014242541133084331385394015288627211324591556605452843705450099193555661856573711583994505513671194539189648600146736204602364792955884451929285113719902525103258245489140728153961495564055701548512878370683273551291622040126467951507562146612978014516594453081168025471641930622809062542248276038913706557411595297573618174115215022130185148621871979836449797457120208170916014394574811823502218473673917292311083988254480195878208693252531847764065769908469045384248944587826420100771408977164928058618490220429593218187538290072661134390911955339182725912357118497611843173694139034992712740327886919935440408370162619316511798537537678002018982653590608617280370106127149132017020827194721444462061810844394962164109041487226566657973861616586142935677476883874135823421146167254536703523238748267167401544886769291043037024752382839477069475755388252628428710002972456227835404432471640887812727375899958206759495363042715399144053371915375493010120308415761409470240436473044432120096605416467200238178533485293324790864822598064423920179047556816132714961280693302058602561641878015357790558529910378085942913744051046358595506013836803492063396556838315834756119653661611071380651859246227151139429444131276124105039274861920630888700592384825686145754125131446319367946080277669897663212669847640658782609221105219214263655419446086664613939391571654582560610447946882486607336506946302021276534191157627787698246511053086307305635392699065783742588235892726160397280703289647677768652366777793001970309047270531686325271331410210460636180420098576698377568045766968873094102614038987999286465173883163409979422105576181672580072019739743413828347187353323790365053445930485128697932981239784897053831893982780484668678197175173992814072377020394665753551626040871617533975054932240271791024939004948268831235597270410403536722682897544518481538316649015571621388332697677631480926406026001460589109030269543253394014683879209293043993889396044214433243735153447962592797839426234179647461170026031461674980328429122354348886087305422178957808911679875936976399547765603449942422610487048047223294518149895274635048975763568088605286829996792817854041445289307292837754673200520211191162186579315538534439055038616311734076263259796107599242371135711622064711898890735449671355320344832339715583454486404984825093192865881206486073318807404858747332194032170526384982530384101544177706639788958953902590433670010227335360897715978985125848446924791593285472796185196419404962667426553224486205377324078415702684904381391087257637630241068735848323701749359160522783727253617141298061693937500582036463956190171717810203492853838074742821334047037381167826465459307384877258159219070498057109278894044252041078108526160355490019681702456624561686633180940947577352215596567651319893662507605237564998554832036102197660981130979665093670316965993429070100608497657863784259111617396789710189957366700002916959665182751715700103153445587410989088710419830815542800454426963920776346972085214898800605339712280421694736830863621370283031999850550947998844607335735252132490690889378317335128019170645032845803951459185844774938427307367276989084430308308044821083574084607999827138043533489968116024300100909412980908950184820465191094856783355492240640755496514067594222891216404268335202217731452458525712009309303608834923490818251075312471912508278616785507167054858587898883067343448094789341297250637802622485239873425206061426325114772538868032430997345844072774527777852488945950594035999420060830267128615659601709796959107151503168982261690145193685853004443107307711936850269785725878615447689147002070012942089477231580953166373385054388538702902577144200910880437220653833854731320496626128914701484763365349784443775276316050869410884887490960023708408517644371800173259694772565314431709056433649125868658920567634964500767162496190456975188238880383482736936601897135544038722918700293920413323527567398840251241033723430239810031976910437808483870162913655147587397255756114652183930609014122390957717147311745146402177960606323701865244972176993420292778222234161485501378076566322409456182334699865766522866317407564854433629716912102018221133108658701985704100988020321553676025304841927579677307687234738384362170258176943663932595999338036090552271365204160009017175660431314881884066925378237826473933111742801958817928154549257358432520020902159096211301496581282686332438708549842372691946042379124580205525347706661000702651653754492791758928650853867325968770103712974069562085138811472209853989207929675806142913649877451812676084546602957408504681035545324298093740860534800276427450066250018596839899147335246562668647311069451244652032094585300365219300826276887122580302233433387140408484196724761480060483232981336848456663388942558457337686565329684660342540079519512516365576763846171355189659245744385777461272177889533901381580369268266462650802723381972859516009200034267247332215731693228520863452048535724647336125895550341053672085586389964825868736427231255362214640710544248437782996796323353299036682019398175622277311461593928895044182525240498397959940914522178145395654411730146638490160777929960504739119336593386182676014713464727714955395235821651513990765805855822561070407548959263399067481627383862470390060590297312966797350171987610688892755381397520950172241516204300983651201470092635364420098498572968779528962426973329409981358225566496820231221946183585124447084806940591369400386833014072961462978213674839924650185201282303413786995335597148554448980558121474980874109178230907072146129550017823831799514782602521767779423882877533139899274964002778058912262253226399389415602465017533041647470147885636967809161589971193398938033732456503575096882931746263370838251347732234398712352679164133946193208942564533686111575486621996134108097843017032578112375259727556398832181119035764642246908054033969667293271471159114007227351909896867636939897771758582222904367373554062204876302111612407714872246156177246372336067779314424405803260490309270151877238469265219102418770121626518072617481309895331663950563326163581146830514273833637001699610270446405211531266298308099654113599433301246752121020957391131298388205342539953386462795846894345089687959217529998251052255375399617812256909242337051013370604277258513324761145412150371797822839496380695639856450774341159103925235559930149095168718408558124012281660107263486205443204414752849856602456412846594397972210361844505319337827104900087515577168195022815891923503881166673422938163635010404853461781277812531882876828958236465580883071850115260130436239493660839665049945844385506093373893525405242695999325330887300260311243179520826368469803979021161118779209297654132007752353386850463551883699821367735050761830838774612455699154129139721189737806878255452755262471898469165870212376510597489693088190364065827251695309837022885086762903699374324190169435207104454678598920121483680200681844259519138393715046768434908548341184778639399267221656131517927343930035067557153053303644220483255105816678338950423761062903094665526836133442218085478251435828513200347380376443997204507115055645287380756219616916018348135022133172977242273427154968642198826279128334295207837646511935072155952018864960993964994369480768170733099012803780877707259634835915870788287890049988388444797285974769971609331867614501046707752110621357774364818949237816314054524620418023178987358101186718446828951718433582743553496818051294524040824517057581930532829898319889039182285769864034653218544106084886160996000488924971440460470116507722811301569617851507563065341723233454830232166208680529952442294570066805746625083859218053648563344332474514013023794540011891286943684190255168330604222666911833914885265786321936699158714641651873409908351870838835890752231493392421568867702562440149930621872034232823713312854658239712256944498566840564441236880700340437929663532555953388612921122920585204678055874370374735523393945687065029082994017062164132257889955235734695739810937114620144006590054665374446064506790647364696345806360695517945414401098912808198428796645020698802872241973753951128318606391093792370369735002941863146346448694881662027369436307613604371981720460533282714932183795351652960933264769444836641772663946096338010956129305784976824309441894198444630128531793174767748908337309334757817896627218346074676412740685277406302580840154077909622207235352013674725871206466347456576567754852373125400976802770690518024078337179445662895700392487928343208177663199890059124160092969768244258955000668250107111433183695379481179897788451650493777284264550404384131664194389045945893429896773997161109629756826139217244225160878686476762663161574644563057189691679643120802034903892722930961606930085447116762370051100323261867740266833591254950799755162467318862334875798341793765932361535459032138735201270928486443432150609960089720530007848277212716815602845109573919444573010473299748597847036451809655509051379384969793357289126635680515805691653929041448444412351902177406902733546864403923768588093890774301370064539345463293373964151454016264460002068471953247226766494722160771653919616576483996744923118421521305633933806148509783990052498112487575817140712400547899421798207359265696569123667793668509196905104748299209217916086210756080476778743656105158116218823801549748689434698920887553583814616332309555630584220231941150623604134926518487088809515322711152338355945630754327319894579116624276577970068511418972038772389810419929757939538894365349721902128478321153034552227303597718173086905867425791624206313931727397832900319144398693236172408886194011353372041012822750651668583055914860765892036145692027139542270714559568356424170444953138626756953989962248906834512132343212969293166974116747029957876888929148307264491892581412279792279836917852144543607596667538819099005706743480293772038466376610089573755077139366339731148168104220297155550043313262609464564243495931987684088067126806697834910961926814578781018058523192960032319517740484614763758765915890373911930705457296557623818674262002042049668743728924294742552223265398278948933732147021420780540754783392837942832609407933207446555885908138187861696371185910304450068390325729654401223805459084571590284346308250454138115361089059299982529854935112314111088065009054699176203729000375926406867273351088891402217823026044355157463166797074705294937183883195857093353019709627929962255973990877917150108569539797168245651611019957597523852006202051699625501336586922412373007681499843227318476545460503995228196243627362858157700328846167808832856563358259555504350678557643368566687312242276645877957354581481553487127182368747364103723381678920787398722722212623704175006985049191857520546669388337689808875014303492776234110776373649217009827199939983841388574024312209488940385176825309858256834906010931520219905709362678612816413727276445502719788362655935262362285869911938562223063042439791706489934838414384056970544635834605240789092375043799051314170400148051040977847237750202446135799597968408551085326076540975281025774916742303517142007433497785722954151263073229397131761852867439861868512746491648864793701222634992365813913689280393763255424334276817662656047261186745257509709622680108460635495649171479768064367369034833135303286634509624502293409531517733900576896310885243527583945844518586111714538346580177401813834330628619538947195250528055464847092866844066691780243853954552798602116028391295866565719972968189252113655875583365985408799068573025943214627025258883335199535864594189032056866761893148357162737762049767310898406366895885161775849880349483762781348722621471167760893585842745878524750177025733248531477770113005029041795289042094626698966855585627386556130147537457715829708480294512272089412589077165015876034073469040203445688338124211401896414061240927294308821693956561952987335495718843426087776421720579696015888660567120045957010229298998387058524241302592874219554116773580544384675794147121671773872550095832154843244359426193621376128765497866516836238068610649366737451385067200628029672863482609316241146311277928960248473075617167935651666618813821378607414484985029069803330605391612365022183804640208605494579570687809703365972917656088540326557475335754494940721011619014484834970896186013848419735137672407274135887428999330712554083706554727871125723447209801968791291521856649531672441231060210031056220789314404812990382076851937309359525594707876611319749508819954783785155763804123286867121486023647693805718877480251692254932789527263932554569515591520578500284865694747577717727761697230912504067433977576849776729283000507642353007333857798696554043766450811350993133304201804666287544895838860270720844150728909867973367641678390511211658264595185113045862974250906401950580693484381595010887745590822018304547231371919812669885409748973345119110844850438769843871286712706420270047389229809136452141790440470776873372326982736418197544069375242225815114886648604258695589112350220905371189832102261525955235984249763511846905513782633767627785602436735110416892061339206286709474432760059829973262029660623114135865661389678782682480986876039889546699821618667190639626270645896252755759605123269282468799706192467338832016573606039786691615922825024034877636524833904583914110793003767046181991928146433906700191136787081299482163300463505902768861096403264773515420255896776101345823809686498858547036511301047676012195807347158968662580429537016476827577317644665341125327418330568140971739081140794633393450700522353238496673099980042189679157635439082161836264412090131286961209736857931369695229459902682532563107977655758300271417150072491838614393244104711240152208694527501771777325101985380310521622485786929327797619709366636991070001342156379655470226797385950861664399822843460313374810347928123561866708660546587255290055227110721580273108336653466347644810408934700572257581112505922558409069983339131185885282148878321022908202167548199103023160029958760223126510800538265507409513636632055885714082560547393481568600477254314319427872862776490812400403628962105588618097291998386169276688336234208714054107336861848209836160072385196781919503128871196757671451579061721898811468347779739287434514983912615241330487300198046283521324548025140041143141414435141525539496632051205983538989510188109876903672373927832825925062319296425655306541751384521094507967459729536417879944576900646596911602308607498369169807147328031439955389061465335903088464869588372203674887345935956980407257614109842916721986736735039897374289498201256929030444917981333522452785615139558241185330455146963057919933723180790730188493173560438812421833977277803417843180834987481966051138990528385332478030370055495060090002718479146916012594401624782398953064427439454540677564215828618576263882834096552825071963085402487520185434917537335998921870971354254355715728942514134852736194992610222282989570648213602910294698081528847009650756903108221734638174148325344900082112040839257090231206850442171036383144485754741990485153427528694932320307750374187919447586694526029872938466388244969225616093929190287890880211667209424732757064180328867772991418454304806466370665881534811573284492896850354037681076840403653266366168724105541269871212758141254452787240891419892308286474568114083773769296283025792482605091088126800482510172684929747787563311867473069897143042775883000360499556785822139737628395739146253325640725359306138754607884417633565338955641016555307303992766995643095962602168646715428519262252911809137579583634822588876600499061711793757018812698621696876510373442969995294628218834944320795669756797338833800426007657296067808845546573802361004497176214107914194190490051385458930500028341562727926475726329090613143701638307751827696550684950186092769820688675421917688530118486547550939471266108234794432688055792129934560240954593736057426236481630822620258696458568796408685430703067701509691599943917246549486703472933236111866902448676648760102715322452081348163910302934768651544354194774702217740476194893986304658328115325172974766784343042598618455034578642516184269423394088328894921355138269244862423793006650654214347997642185888052603166260534130541010717542327058933129863504551334851253229328843757449190817609143986191598657610216226332135994909777450636418457891487380709602887212905496826862306451896863369326687638308266690833113635214509494954141902704416423588985149608255074866751552247134845482402217522933287446142077106559471513781962909710766978102978061919527978013802662733025785099989705315472964722114647406076757038041900829898865815324276270037464118839334108929205087977351208277787033851563792104008716445325581681304530261062987552996232535575177879674218595781938472722547723255053185697523593792141213848596232119455590323475569965553646266521481445825137796860332158191906244121203694333496395827271883490426762027808217347473776439731214713475561288725449760708513658397392297882319195992588752352753253700772510560822981455794016244798527589327676012404278757380119656888081060818161314586107219105254523951177539315003163343646110063004087940935831309709559640765453790754445674073087128404414678719544164841314416994073082067515115662634631597956844584956142077834163027072817932555256627335941413436337971113569732697294327897360811115109346970809380229707205046910397398144432555848638908532284976641094196430874493692703387340830886339095926910340312637944155240746656557555984227814168642013320792213818881340189589915293720098134203769718614351211727036938408139991951875666468270555315201834421481487525220455277394983627748536042149414980595852926966621282649763687458150946493758407359854646192810087389424338437126717540695262755486923834078261840437981835602952601037082502015930954088319557128935671371902487478736146402063369356478229601893747217421937406828628077293472070153798015142915901167231085045470865528477606188208562375884228800484985987714774773037640119301467065090224149835745477973195754174709506356681069160794775584686339197856053777990632139936210772995016006044712739212677353948495605497229042997847091060347117311846499417032300862733220248984199901782456548534429520998909069201762137559829627309036338306864521267689276635870520787483313453635707669576485483458703884529845430922109509524667310256229091385047244867369484630343854500516726128265181359188350463819740806824144519110511529569780151388227511355017638992294500488835166383460001786075091626626422278610768336071500509899045342683234721699923746381955157931436676054838113627917077067741152676442814924058234024692858995321551656374298594888837868525558835370709709431856892921256436072911599668375626214081706684137791004273761518639148210892791986545278231492873224715935777781485859616922344958861587657667405808825899137895984658082414947666717595191020659152656968640216198753249347407363728099229057973131322178564590497612996985685791354632306105078742968545800279775684415196887964990302513610220051477445852518706945281729825075124794220510419643125375296661279781016725016334299463709906810379251314503353475114143522066611806643469478674060023259156124514798576329765457192639594554689502798412591778890004442048513731196410661295106596118165323126373914640280257591488625473265243654552198489077298603955181820616580948588277785900407632156307971650387001098823919741833296322704819078664088753738738073916718745732613551208312611127115322390881336330819916388995934830186410397722793704667829869176151097256764976110114253996998092680621914322006435111670794543419905678436904598318154338196120562514706894820436742273183678151398433284946484280807838802490260805932539063848335431989180175398764101189830699770477608787297016318894819253016482137125172074925423801432700984380161225649491257701726846298643299508535276548395787122520776066368973738761323274952940673242754177015349736723327058704124514194128518648570141121691948490575731420507682381883476749603578178560935741022024736320211097139252205965409090677176761019078147936551402380974553060720734700730880126094821189346731909213357114743871943341177081048355498387079730750153771319648603002547164983488442381532399050457351520239622927463656523323225252948772976605555531573557902300658381579034748426954283078709502163510608641589074559736733488331224811793025760688822799456038513113099515079306397361856953553822665452658504387538313329748141961243303888806004708627191465011868387723577835488694426518086235263428881900216713081220170565414032669805711675778231714612800201251677357546344876178112531149784572096113061042620447800696541395487231031185829320088530021721307962151362708205744018815314068024765876223921921861441172635842891796842422885684563969107893491004355981804984035577084250873178433862566961502727702436422761084722174518250587677509804025079510932796958881131035952276726269483641277467337851393834150798557862211642269860766630183734774355960455363708133579749791614936127057730915700412698515910140730482607222265634144878562360945066435538846139495645302233713907117081180705055473003121221847066872431536381027918366946466948772110249906499163803927585600759989530637720298694596725249519936657825229169672494401854086773987961986995531635134213894424580954105168155900406122045443046194020753960611844769646333004854900042875312066426182847004252360335505677425768053789575708769228181053383738405854707064184082460264232660007727708960616594803785183870896154131955604214913733124557841564974879591427350633905444950181813777267981926531399261161864222296679292316673474837037702283998494798882694389461207321400067685273220929606625431713138209674731039441836620368175234556175707732211975081510933978354079154694992101370703013926562551883352832355821817419937759263779209863150653171123539170623387823284101132502465113959617258464479236003659863841859139469666167222367651242388677297642800493315131419527929400817582412417330955493321556344031461696426253979760936469845414323769988421698807065748490802061211303035410559002448900037844386834332021630927153326130527847659920062793465102935225462171409175725524015831890586932437013326491168442201888509139973979266102226205744383597028699714433116781640114832540091647950406319439101720429599371822410963976676347857815116529909317363422191827293148293688014048281777750672550710582724624797892713644743305180652913361368695530510876197252413153309170703606355158406338093879913894940941938712827341110343325516539103720259750303978065769874487666821248741032142791735623941179180340733661874508074411648807295611202457044040153717402655579593283373177503052823246016591320515822048594477674091711659195577591045264505015124147274501571372763685473485124237662311406012236099718972240429241665860218400535328560040305249492816370219264750367686115905205198863243220753777028869233645189110956379408702819619548270704689892927896284743221755359667440281083688127624764676692166892657525513334177246062444200964289048701887868106432292774324259105447994926694136323087150440711192416071599958943079626272359201825327942037822010464724226418535552314820718029846276244723308403421176851545781974885361030949601995170587085733534353213592523266853334502489085303478367045273688969858023390339635981389081573422234681162219068707129467832721477081885605589403571854285837471325601367791431405327221559408653248884445594670815422610205408155324140937870902428627421935479089195863927083912224896370602216167222923772035042081629424010388168573260621554228589429496752247255315710522456617458388881481125382554347051704655046566930387799903657089979929565988907391102359289014805789441057704966252676325301974250974511542521286928420491007755060769303215651484604439731272518013080433605619153898246048044278975507737397428987412700644258182176068435473781422751562301849258780897853919448925192724151362421273312990681596184165689607075742444034067057907314848495826561071721888356484636046926307890699033625560038236705110749988939581295051376393634918286026366262819687678850989560905272143053589829263933107730830207297982398850965647461619460276067952294808629613505799558694469973363549405851338573263383623208964348689930934576012681578122370813656924033126432821456684325369589436918631209296401745868506493904050559095685361958971120038738575298722124830156777033445985951770927282278842203976940381367541819922091574238046293677439902071461452776614318419439269106059396707566415923661697161016136258572678107621230514003994480685342698502657576498993948413525432326872956742753040539572423129090860621588945458644979762169384494738351932581076400318337661252832277850038444919295332234088762363899846288245207989733414814355256059981187867888626544723175292703050550930235159670666973137989176036030606232416776518094507245028462728433166124024004904596898047452742325405715399859007204681720733931880476783055687335574021241668733726132345370258368460363878256882324548753157919732891729912782704246018645924524496092960821544723572902836587378841568229003277767814890533243429785665122034688073545204771349418156869331766061163987701969302951465911759341231019357977435867349838334163804632019340231181026957308062288692401884923691125018378952051533002582111347779134860798152218835935038753725827707056678630989326348076959065684991229596155604321795845135494746024852731301316444531876721425212227167826595766875525689567487374895847845694727162848068465832933206966979020444145985577446100618565351718716446718442970861610623921069560598973482614032243901357809745251606072798315216069015192120179993079033267409526694970639976057004171411453768127303739865563195868838485295661324475099965693927559218220280169048486773291951070944482776883847740813521984955948504366424165547903104008563010274823794678375978692813898146011208459359306191766462236255000769409217837148441154358244272365839938140716757329289826636656146695388055807508044446940253816925810174253924749069162361203571484789039542609575503592363986800607622385424387675378170631771306962079510995878164316036944326662355939568211373489358483792878773290641679438889336613709505158717371743170549875396551486030972963373117758586237454032101103752300037731960202409990373966120818924946920708135113568387089730432402988057648445029653976071590967090488148202092727058667519218684238288989825383647345007688868274216443696889074799160456964925868646494519083624158775620723895389152882884242017174054892335661075887427497446279296825232972569939589798964849495161080298580884652920058661624256329545911687316156192685166580199762276369190289169709708384372697836883361504699353712964686063651660299045140919487247971817648685254711499904202436241192496105165864672493040212626903738287896836972812357756095838754146632623920500141272705628257092367994046975747417090703015034148976229473814697056809890728648349639755380766894636827870814912681689768496664931781830337120917941140536921368856169433299198612674889728385694291156889997227412369592805942365489507441811888678268583457830234897735656335944591527926614357841279136788821619656172746241546921191959067435835029598422260693644716616035096396650070440158866509813836796822248950844144738223896173012450618806444248920704673222059860018131129063773026015378420825624195842012980266362381979188044996158010824036161979902126317528809928019851473164965353628411952038567475322160792154279586022007409559863060535949611619961097475068787357610838931015518302022991451746932371185521451957101285034737913365266545634948906426462440918996817737822704880530449385871059064902709577466504214699649321394483570901379623206143880785953891210671265317449522703118588554836353712121102196741760619187301314504997607354273507460777755506928515243639453225880809649409497937473494393721788430209552599719166049761981137410743611586971027762080562861639048744841133655182464870322544857862567264384054642312061484082348052381854803640967812484726164554669046825399168754870220392506099898167711074641205765058735514588392928829599235226384635409491135322018705931794147273748683395679343841318299556949860753270288564177956770992088005149644293625048134970430353068723841413543011534516304601822917659767365611741715220667714900902133101934611646258290407487054879448714169100366785062821114787450502270378352266923664287528343972373758549106983378530865773991872248349915106550770011287808087683080232341722018116727785318159172700481885483133710461700912498125610107308333553796341859599629356663687583768735799311217373632875689319813363496361098026729326899931750718972777899963406791977574548944013930414403917191354044233538518407872689605943211944769706497909131640099268526112844049836140791930850360974702017393020864847654182452319250319529673393417983149158345540870505962478509651621379790103172291591165743658920092628886785781744134423235607854605910899001849502673793174053096964336975198796561838928932096167701249056084042004753268729731656223625434870266757628464697268375829071008200017762888326611941887715239660272679580567122434095904676721056495028172091279771374731145913230397297084601734891339474046503927943923061633474436343123809974966894734323782095775206882429846777510078594616298770239458520168441887695738631341059702325113427638614360441285716674640267920298360897369250576753877320416288005026945997602864041104700174195117300713601211547539897043059102266756135819962813795722782449154439108306269441290222841394860166704386818583566434261099938078270263181451965106958213604799181036700195765891385276024348763438204522142010336905530768656280219030456117011220882508091835872560961112789242517518577983741461694637666303898927092733985801206233067104876655111977968811559559181726987874471994362572185847893284130435379126239958881027697913262632427260772749029410087101866374920634518430410212613802046028726177380525518446588924626124384480728770323693449567593382610899716533900140460412259609341123580897655615424828053749362793083853523250926669913206014201738850244500290641552295992452195745782975269573237765213480249063439364382580234928680392916991117276057760478593062509562865782227247719759018223281230962762129581759559113020885516203604193198106201307318276676223482315222167816686084102001039488704734118193542969207164627045437680559143043212098421214898117685237284441881014543615906340645601231645636991182139082995878882322994750319601478653114138836290000096628031380283978890496949342675053831293223351863999439295699423444589890955110420179095200671184572952191189270978104262174337701567524226112426282679678293672265798690681988159320799020465824948651339433272377578191939773018996340196173133478988642982964697511486486177750589845849420495461886487925033110704575425395235755835782360144138378019515621375002487741773080184318373601380296939221462700501004751429830640178552843061099076391461658096728675947501785302105265947110518742381846201535227427596116327549766294832053309611706203103197530310381966548399760007779084531635733188601834257402379427188009647513711179135316001609140059335187033594383756355331768020794176596929529844456489073266800193502757883411108214279548849906211472039775170137217368679174625843957242158868785780886410442092720704342620783370567757068682463825466539307946893306416864959084837169904178584843818189487356478518068097268219563241402372214310944849599470407123012581250406190497082736937232929010815854247896590133974876404678820524278631406372462300723161726445083336058570807480411673895687555139044519964945793720776021888851110704052769110308455255110201201071490555532319612452008293191893867530266915140062671127586536978370410906391210712181177433810672653756842804924436824565762905062985610074570036211812694919205585342861373469059244733762301755191408968574099195978525231317482615704679775348791827739124187331575807924789582295696674326392591802786821870622107817389765625012310681215536629608503700608279064756451457821249981520116642746065481700452255317471159417011262005557373216042147498934204199999240237664001278490380186907194203655560792704805802421338282122775956593346494431998229289201699082806585640989781310831091365263853349890833674004710510128790985079873655248047875078100088536330879686532088773327708631732268845751775143157556667658085302488572021702557560078072059493397864549133061548359650106630288773196033375765637071847781280002753728424730197286532158279028609187230717515623167031184852906068117529922841576283425741992532316124968522327996347006481648215083163055324175176679366202898746551833549073213586460925151891236725671534387921951598134194704701987379971068661443802179111113667544580962538686294054409051219466383132776972347364203346119309532897820097193554605096220628907290118823832443944001261623841698907282374859628343686766980853461789728340265179739152766984692555123679442315114240507773528594284784208455671403990019781812915910863731257125393964049529535818992953506544347788128930590530880078293687377751488400929336818752209028394364169196890736368074045925893032710514741476115078976690662704445488377201779256338212933525993716516126839850366719551131181757696882864557312122349757002220324562234724563576080413562002873768396165945134871267850557892122349908128165949245122221016873219541969719344438488477018171731778652698171081926376544040842421101743840203191668215402053243142834514239663630687068978065507669490900260571178985684096793531460909178191287020071430495431879970847409793904780014230935281261043759584868226429684166416894433575033132364033028695390382291924478611637844819395184238333731861158982815177069708855638216241181811864155985726952158868011796983308712227954806874733229928742365504349096486426858193266454965246508631916236746292800635907413982098535490790230987786886858095509829819444928957705195656179911925127637048719777054013984163650566778033386269515013433921538064199992181897126721568143085693004137147279415833083377904864504047559687984439149815236624020720598299410225535338915338238573174888693949727800716477790604027012642177160501936246637755897421421307093702674392114572208131828166588079362168859704391253001755263506826049355653250272039094679377562633241595104412899588754102189946257277234355110265727880383333528713837684601752609985672773323179808229771834540317013613967013233957339124928503887021038835298757647288400067798204265137916670429671702246260099904122061952118176438856239942904582715222349562426095929961153253906386761811845476837767723300780505765674744501266198830853039602770631417522465689765205915719811334251375912628210656829581983953429172876704236134349432573159313504985789561775151028887767301850636115358099185139411594486165126217707110200929085675310977430670275859296986068789072258206690601542189509630465060397833213875471955250006778529361415133140456380897581564551098865794744740450054195806097825920630326202507708766743310352398411384304183296930516986627229451158501952417203604223928816674743172722404573351698980624489511641135361837232574098454104386174040423455465738869578192199019308326252249873488927066659172481547652572700142877666759113299296364377177183693223218926876303975434657847751389486532077943018410710178439798357964842949902481546325575677813914408927283021089923576033270315260696714726625209967958760019343769807002841554090494086829907718539158148887157370331444632252463592427438701737713831337485589472672638914320214080731276470755734639542034435270397977453410671934769278025026627843855927612353982657980964532632258177211034040909102829141760121932547879684813136850429197130202809428139663431146603391252391240343865742829701930086381143831500586678060490668030183962884044142368294127551506316429801568363627244158768173145067911248326726112784386968262670124929545550663481458892545985785969906983577411994600077171386122461602896224101329076012682206573974938834921871448271865762341958318219547401191267578403526151810912379081019847478852995644579407070721015048230597680386572884322491938994718735984791990722051225462675627026704103143924161020929344651288337103182952744596045857601239106481432045418965863284377935089632412150624476129109326390346545120510165661572637130766447457094528421869491864621079182812850800117027146451155905826113448952402578743094272768096841391988316253873987572559745919001187632155578254459970269670233775367477547119946752037857269310715238872310442912950657865506769216142617995328420364440758255388036729786823084564490632564436997694294352928577810771850901692042507465074679323233794054877799094765188791911587866577811568095138589953627834696198694647010951335722181072764627264199029566792064706523785273049899071156380522912196580817201326432898108611966646211022255060950390216954661122147629675919216574262054929929317336164454978199513298951935836655415105738129887091527060879804594543229214048025616239656963803862436112856814546857463928796601409175168906112014547640494495835853731343369576052691301239674491439516775114323437256849701718599242035583599214431231055842339141681135556411822751054649480677681162109699142274016885021904183893007174237668989118152869847701402399836381610498797364618052007795519226051507780885939754930679657351964310798675295577263464951105827293843373303278446275914703896600716916719944082143585455937394048513203553024534544986988241799322239614353796932322838658612640053836313523697118475369819342022594295823233746842104726140775400165536365918486975668434107456501004807972551301430787659795391170594874421086735802400333272238550490731238249020685251790643489446386572798231787162140500846942427681971148165974130383631664545325176831853314397190084724535517654832653755866939398193134127212594842924620605642673668648174060118531443529846349977883126669533301521022415022367256059935964089303910195815058024254713717631523497441914570278519504228851815374879205541715408375370875675122543918116605802705599928121622161259690021258300074746041038396836483050509380288527317351017762658792196637005508299769690229229538324143422613826443749347897002411880701796570942133819167116554075036733866008827659624050734003705207745416865170009029969677883903612986770449134165098639747999461183282028223299973633886826289987249460230403830384107544936776781292963510847519265382532614621125533659692983852085760198030218588950340674629789865022903492997327257554101414606503200910353037005286590178161415096514752766954452548833159271031482823942681747996413185545693626531192130152718840286722667218354440228308648011880371852863693658000239104192975866686664169685178266200902276482553322764996967942748866879289977198975743136485903446206590524211619057963228800321348183163780883134176628153210002377218030267124617040300097725299220628874773414751944440853879654241950901856479315847643350296297184892761175448029453575066999175575364392207434277222028830527557386218701812951176354301304476498653736574672881463478195630232349964212840931807723563952881006209207887387062398714649668525536563751948546811818365527986170118116139620181014173806837886475618106192329036284024421625494954042782048134664712919311966060154150020224716461874048759353288577234515958062086836457439713593262683676897047112847442622368041780556566224039028809868897032823165734469794875022765748119178892679766427216990217871811751396829450489850595075717014653249254606961693412720277121250416891149843988277452114229285897678107756307036103218591753229870272134551302421374540040482826061915376907811289153924583030181803223777107888764789455644195298231012804704751289431937945590697485064910316230046189151337276902733355755597898465806511400544296109389889550642366569608658408942738765154309751393595061721178158901469185022061602908441850329068547463910954428674762717543332515282096878508720385652574542062529431902902806421169699162323151931434417292785581679902461334884591855609023566929315942027249494358499890276541978510505725786344501123797943394265004257496984923230924859184841854648548485905333972153479346595645725436702210139159148960128252243583168008541681049280590316407589997704515803613168459330896165676675672298815036823969267484630004060067475026780814885938639262638590692884545997901945091861818396387810677599687264741399094652142647455161599202012565993903493541397684514990501210352254888610414606895450086956442132078194217751621708032086826460536268138328614635234660840007256319313366821104619868233174444376106631454241906615795866575035684319011968703305331114791010099891240214211084498542379951970615101657199197706445734797981605339733107790089290050707747591552691427380312854855727665798570719364449132084414500067795792853196251169850755954670087534927158025580944598252405865733601227981128946029635995049000167427967313791480265248728555194699754205033083858688885943419121391825591130456223351063018414059899459101728667560240414037682803086216948613640557657664374675246652582330560713792154314706223744043742823570353779033334732390793637846858011712311394372766367333992310864316821156043817067796630501010869883026332495076470093649552193320212869909260232302754186129096220149851051120929438181006934951665949461290019591849407345271577551457114731642245317269195517926705152829642789090157893772714478517319560601085444079647803981466144031556662853274205969571219160302535476038941165019325740307328705794623047208816547582998827323577646165185496047184358693270168363199255278245127372397292983278334381906542377217715059880195392467121998966140455898341818379081845122557332015183957727451659574872872500280417623557665155436465418415594855605261888873077456436832299467054342782163606658466597234856352064439217556625168178297642607645209763077035415382513912822579213969501212950550864917139748840839768017424495686164930176496255730440096166397981294235969278582673601385729507378936132151152477428987413918709585596782112855408515125059470304433487678669760384300896291731532763077791638001221964749806616573641091571172953033806423142605452547868077378609441037738409164751083329428340383940866251885983839366061277968607323845435982155184581200159397013483060879613839791636147890297098552561352358796913249199885775244794337981651027118008468013759559584575572826895683068799683888802105240303386925488819668017473358079878000966623062723330153348077332450489972891541097892436322510741753803166137972490776110865971833254803547988290804682266946396450376193896446475802563114466421934520243385094335586716055939181360100821124772204458252155126597222809953056187622993554182966239251873036439099161697815267345922818848215555243406987890823650620629080708628143715579596402134770435843695855053127440169366744614867611358138288660821477033723119776581950271028471791164287399563632741071549648502708667719188975952286269167716319767062455852949442066880533653672337737875929601929279126526504333436077649462512896239998342975256621724236283787944217384610768589262327839394679538710515926191859971587915694304488479653162942516447862808442501668458933212196105370054859568198265623541497107499847272628357936730445284743725347843271949415191886567228843152203138608950449325272551905232185809607911560051253464606387556153407308790267372318947724154960813501011790422315920349680446730640392787260973530836475293900817005856772946910174634842811832831733771586688883033053985475700260758431301328727605198326223887048366963164310264908966630114715550321918634190764833507537920125473804563548343488082340564453353264261584226430477889949022624640971547445412530645702222659213464522764964630932688901604944383179210572839955486855735996473532318255650640451067423173537781544832868236021911797322381717256905768860752806697630364573278087635790512541481869454888165082604523192430338143290549837701561940514665662164883140585187065582212720208635555422305549403890558218005465605528613647473761115371340529868839726885916166579824719066415882689563743133215707149091571781323416246634153820112387043401717060485362197837746920505197783121911204658720012132340655617624904937893237945785774832857832223405595150433269611797277714763992108242163513248279084881380760596652083782919263207325832072521447439821749121348876751461615044984042854960152310333650854571419364457072963044697388516885765522596294259215933796417716492203756074739314412118373226908747246896155458049364382183859387066133839207146897633862629256472950756115080095868979038460909554369648697215547727314035289614249971195477171759966993713205763421459706163027725447517366326233494610291218023276279522253515829295844691360167610608756821132569494329389069450304436736867205244600154693605040267456215759484774768605725994306758658835040509932929979547506999772557337228289453211471562211797101575460439932996851387258026702664194064768842842444945982741028528672568615715963954474091204461417814099436552636893384261355716732519978109985204011995313910743480878081238124730013164954031866656829589663511074615954179115273898377001919852198387489446432363467136601723504277199161838990127500765816409115887379873709356410133265714803616369083127785496151675880466489667289212466601421434458404487720921977925627516931948737694162145595768995180392646054998936344286908605054425945294036636785549229677395971888217578034249356582693919855185047766367641888778188238529904322875753184796054670045817077475036689574151136027797591150394807076025072773563155207514038929722123010023247188793316544392757762220253953563253231033350803853824021864607485493639793917219923289181354567352766173152693514968486654389750976173927410613807348542233671795709893691615449709100347922078877531943629837494825971824427949591092422000290008618328356555053311371461962085760789829983499341130573142877726522480398098411047932518497878051124995360963277202163692422426580136521833776907840867011039262661490156046630189795937009355438771576836874442707627617325620267301823858631799225783182328076679568415982094863970769255079477127599459437291535683142898879487092133570731126113015877215186081340044046959168369398457392662126448644367343692878907063315528344270034929554697875823734418042510098111674627062228984350022898819870386011661109740317165174065332366603463464476755682366517875087856583319618853503630041043876189569815053581810170552701602074456319215239698723183702699422941520828573676965756685817355451491066037259428279472896759875749537710017424664600487871902704026796166873437230232425082572978709353148105051630681462530247636701343175945857488115940459524645305396708204839717629592841324574519992305896190535576420801790533891227877192664137382085131568981806814775295012290950672691870230532218628899091144281495607211129440560375065651696395685560927686211191845516150673018315419004718283953263564799792438410624763580079706083855512434608639947491855766517226946978719451026996725262760246284969265552970811910104502826949472183927882683447106287601512229585201076128475694957142569052493888615005799392901690869047055887604734341174684159685262714563612235956803838923708754662497744011644148639791241407210894654965147634989560705003100876566596273771515156167164863583290796416545988559882221092304208162350763520412337645559924571815066182435546593131827084551774700888107846774949760695335953574990855009960404652172304365994514720563036794608095738840364600970928321839307666832784723564654339499039522385226256135347588465641818754019832092120562843309723182754752971048888817086239697162020600434001399980740111505187744458514671657861853151258352407399657015080521758661193633488009778678286952635044432863161945399613372246096896796511984005322478873996148720899009373750042329525884311542553635505927654928463628245513773022270981501965556472720684149478068036407191335245965894668981901617880775476601756495070399816194935712970900759246306216635277285676377124235810433967729813964077468696651274994838112701953345387321391779859001210906844594458710417564546426561041954473033848066053287231354863740723662443140542749307916270373442908987167999598639833334859512631067424785199726701517277094692394030112694285015651857590386349446908308371240249528531039266694073225382752296842977909102281419093546421966113620592336036710384101101240079589265771614283130659358274911116090099158744491326530427402355659211540222397503006302065712923120902680967667421050742797988179276957477641012962238586574044907517225321937043199161694733646025380774704120920787454059128531033552098905261074971224360326154728860066978779396708932307599077031751338745620269947126683788820829828980526510792709088414514461086584467772866071822534060246978866065589909812989456679529331248051360298907964427782308486344411995466186444661478587516588808081692775263055738492539190219735386000146114503987229020052977351780271670511067324352080134748487288718006341089845891641276844724444005521569641841880247915950424447216255495321626243417514360188915512485484229724024612265148061761705210644198644582563411886858087142388829051543604647071433403106871786214769838546610133914229723211255688210345658667792105145181983247548637886874586233761389128718046701416598994627242593582744516517164551433578614586449867207804076844147125965332281490522537024926870284716097502923018712905863172594128030674107654867695350257027245479846753688641698577233664665315891346981362323651540016479568961666127935351235397593923118524704129506699431350206359821555115533112102189586144114086892997634191309100570152165021580194208167383206403230334960317706200102291226469791730042596943880387033937366086421553358096298596148898563366005568861285649249999920077410190394011457087930665368567702545926052821323573218443955436067768567734471377303360484777064127325244998188553953409755992053736935617349189904481086297249682724533321212432589097458799482835340378052199611195922509447686316291991626385214213814177528330957541407489421485111887372495493655308341766712051349726064346825335993979137945590799808527330479028931729003387131463979632182214494495483185018858460912378975193304772366746535579759751068488230112087892869024040404735348002228656967939662465764849588020839036473865423035602359661796727337563232683339636068582601122978496814348101706307525826023050429598755280256492456284101634291622443023154831285161144382525841087724771491398334770556868772755851265144963680145154717422560685113540476635864885166352803344364211764173251523413461168165240940501195220046303283789952615047041181794015924214422236655679659761449018811538060223581979286954760131745622860057861265872177235517648291072284052455600745149242825050762203253687293849696073717233521045554933296469124117501661796835259782342412464817773367634211618138353374360279602395787299991752284417648044272880868050219546103183235341208670300500453566579691770066307480587165029228573230298714917070751267808032231785770755388228623788883359626472672249191254490052284376458398395576321356696673171036148063456836016238901874957203076180743987288572929883653528219025495334487118058454113635124585075092639774497276390935610329315311082320511561260576868003095904379018151122850083323132557718262174145509311374056737985767634011415903864619180095629250107274565883863569328483102881276080189426269724645757108868449229325910386478770490713855836972251828314904033234940056051558673959088903392394943201931243232819910125003914870723155205801658962134004028623866888207504341738342048451407424083772887129495229993400710521005043400152327350740837587820936677006714823563742334709064471468243982917836829198197667220542563964208272681756191516870730294503270505895488674464220757660280522175341278290701096372194048012703927531604891281433529315602173207909517500584527836499400813402445094172337401509240336981833047830381929421401551159381877608344233663335460698655521939904254286460794555993399982649966131051726015693707556396205091391003441374687566699681123627732956731609168335691711530696347308936854015457242897730062862541311804840634029343873543824963262398945593974821465098494382916216645630631036110135071606942887696283256043244161439410268660539749843712680190255742774260698992593521301871692761372888022425719075960121959724315833813631784910083206752715323943966506407777713101236114362367278050212362507775343355295268718359631345972657630827829219783115694389019558355882830966751086750960319779132204428250538208489169184051381040726160630078461073138765715241101356688058091208870191142803193287228650873909289017346614010736258170682857922396973223289523456125137877680821895786966651743023763591200166722841172743724925690155577447705019751138044895841335752853016340908621022637044104909753945549432785509523844400873942117670683299886831597494205590040842848111542024541367905006739939678972117323030173654812797365225621191607744329200208726964253557368308662455999426454974440739394356646978543792221425857141796390246523136600977471400672250184843399354229127520369404555971447122790042473416321976796896993931354373504750882123913328392206230254392658776089877462041548861867255742500615297579569983474253194916977820246671880686523917230823144756711943206355266062783292452945908315523330874833871467118429581620555934338001597750865434294429294352367041883935090012073901769527920696004465275485859307477210756403386141420096641376092972816062306854599848669119702707326113988365054430446877823110661081794774348169450430304239865827876046245329628487071337787962109179923586564198578451180138608546125901160511639989028835358887098089525135406478801214801636757129693525877294611257513884147335735966214780005214212684707872497172887656791903055090800715742667410433981019221862049903769715644176947713275911472770356281580203111724556810010104724251078315654481973951675176251323583501425880510103992446320544975597325054788315290841143573651251415766654916415528744219977334924814421919715199623107183969799637969762071354635930383882288616910854377688068455044813601273633183388017591331116983214336758142628274073121244512892636903662709183609976910096281722369359518377400248572300678067189128764111634472167618623697680450605321131278085382836878727371296300404102479339741085523605887394967447444353808534799896381245806082530400332547491051007127837814105099478370303604000165471025301328680489558311744309030389752611827464671927984380404564436579143214954945349849994596229856592543202337336638638788979288793991487209916042566293052664056702911592787321754493764103122054587856946189303889153754147801181437441911746661110993592925768925923652727225937050648901306334299998767476600066742615657967190694769729776954062942705883846310585848744782578779452046801848239479134502986214761261231494592893194297584717774369171906955613820973553888334981687641945329824879443938958499500649446516145180230460064567379561981910832797306973728591417953078908361862572561475264676627253809224274925791129796003581160595411296537632654139046714903966213517921541085587674340141848253835792656261687684530311214371613441034685256721132651439636105613935680257399629248415165266324548999267653492110489370579148901336224729658691222822705809210027672084643133319957285845856263782743890927185316428953175034832090403879217893494399655801642695624922700595083353678396854950718686371029450031858575058979563403095840579787449098264773988056253582022911843674329269529151150661342539610810429441667821942442747232356358589789712463157462890489747421931320236885194662833022318035853854090371228963277695778345591097445939987384995343953335411014165838949704119107243158571393651546226604572351243196347065496020550224900780440333958782533012216666286594098132197555471425677671080281105510454607770197072465635469721934610083662560943100029422951694756521537312320618258334916601321423338288346612910343424027816167567503305306966180512153588017487469270151630460038550408158859352761147547218820757170910263458329402511782490884026657463258107756144953071186672337669329117440510011452709355723734921045966540838952219699965455010694379528126617727463550826524797073410036125467218040862594057994388666973810517560292108846209421539230684710675946952131320376871971008405225086431936753765886338386249210104834389103328789371660172653142775543226572339788800544274612985151311162786840695341164864603532649085568207954764235790817884092952010950999149243233380241200716337011849737601327572754206863655881311175273527350233166611794135779570303513208773751575788510511296057820434044012131197541216316514877912380574599766796017509916146477062573705931137068137576322643989756468821635749325815541994116349758608239920821782588977560232251908715900347223511474482151675016448508448267327894903376341539462013166315049792225709646708748050782179085626514967338478084059854565895380190675106741934039344083916572701718674924711632909123802122371915482261419053894264543115451756489042072411003359105844483649959358594913747392143932262430766521745595881119994390324807937565138419971289100708734130897490348294799894818084154473680770747081710560907043619510739314725219983992103897084632034658800848328324375350740985622265168487577108145328641115546050921293654493301060055259178888959946617633881289113028945913520891166884224514070425760043218580923580538987601746339165555639649669669581522766246139010376636048391849204272333072380908142262701252724276785539851816596069896874321172189126581220590941242876110134658553243942766492531206223029689374473614785781329120792718533757488048102455478106761245272787057683626009830887040899472359108176504339991464813296313669685209181300166845403323873759714695638189110101685014069820256752577176534876187578595878944395179079312316136411831572052148664741843115230872903866229559888895692548512468611146725153249080949486399555818546007902870127080415767288695147428424822436024556475894413214031934433132563339271826577602025421671489938240544087724811341954010019759608866254168540261560350798099946591634028341456852465922222146725683261313300794857768457348001286682368521189979827676361429483366436900721496107799938381947133597908811675525811592043722007675146126186939985956040035828926961148580424034278196478503527957143826687608849318793543379068582495926007022517817932406395165237577132259547586521614704682517587966976885229024838823288222216167843425921640561420445461414161772984919548163329656116889457919275144992464237066086602055059498954467203152909659080006346763004147426042237808476684551945776223017582459411853389643021780260007747451052268150712090916772652647241740498381298522954682199612831967022209412580288893435948278154568072739168571850068664350867151464876788863867620210692344308845965673764845872925497902494284881925878014572228594009722767095669597818697158256559110440984585630926891592629393460998689599107931184247426737422347254441828724149974366324158794834460036535262624954500838539547665513550371500080645693541284190638839260126293210816751245289054172214444085422154975231671491216386591355171064274063193252573604952343700301736289156295070032857004115655099116920344161990008847988295639221778240389770423483025915331273175738143153102285131571460513548208861122060262435332222748629358364570330913876540062193687162594378047759787895890695599214371774100709426603326566417888886997601124898785292392277383097414579655028761001176417764827080331592012242124701188111230859625477544571852730634767568858035577245963189068646910516076599185369646768534750911084738768678821390269876262148374341158964431448026672613017558653278401140427369785475936291106639213886138666597566129441267974536930401928085150286049437098186784875475566797082802087269596615224146748359226804563455270119639301144253671497792589435573873326079157945315901101272149305079020383366671101345315835061749995713368996072847475295527373401428329641773926679805730225511013186166941835096362808098767415268232666008264907724321849113622993633264459170664663156501179314476669267586587921633639423281526690735669078241825416784878661597860828136685554590963591848924324854605833887624114265585007274265766673532712868182409973800975171696638634048620991671180313764848488060592539271831138630213114574326684862834753212881023518484756664135174870347307294897856909912507685111002713986136629786329393429158571067027983094090817164211903818148711102461847380383691023252529345834230251590284414652855268262605780332315350462839801768550585971419490891255084222271522707612026098165384724063592679767736530263237078671643773429880267879364378367513989146129105037682467173240689308975851500863838623619663488283907509721439019814440425158671718146799624513472292014560063532942603143168031865023679884745912367706772421073957482347948341085367074198815263142776425369302838526967633683012880765372117704377647356455023403729390724359758590705539014605608471643473065341508457136344935567031976150282027851550101251720522379337914221930525878987438307538217589182319523248420709437948344919574426695704490944289817502794716042650918298020682549127793931959590527046087188259489292680414591977266755545246969011975750394208825486948715097622157668810729185008861545036636180606113450332569926265163989888268989353440686269930140723864591327319065355254021817348467908536975752051559916505926195236912332195393975228847270507754217352592855948309126235493384244455108809945392539709048199530707386637412493491568052009509501256339753891990749965465746775794977762105671170699890756770317239334919167981970067449027752630154105093344968202817968087023671947131038038902273077148178312401721794546308213453871649229636045016427147991363005421932997146221983522410482362009090435384744074973165945651635982713434385747779694665348743024249752836254493409290428317563223752593298004768453731725709167763697797951599826351563661174451494248969344575697525828362001582277531152719174917010302566691963451626634482816069275670300754203783555278455214515833956105947707745391326064722610584842089877603783205735845948269369580507812472642602889287636863384254692561168163242212180318643612544036515108423172977612940466791165835825369289676647182250829821160453080190462954293107367095251738953242793547837972125864269023963871154080216787529615961100764290883450591169602780088041302204964316845899171236990500352595459307872998721860444388748143409846280754815886928926877032166002800989212632989894487906866257692013098249693364261177494296028148083678111234341668215164873920587511974648642832875812910670825410300314878906351494789105515123369794916127161835981869875340252348743135511273378761866390069555107389054390709588322258813713589570844829757270864777830505317535498156879232682068849580106088516404243641409593541948779441093825061798958480373372331643073878378589798857820926581519645868625233587557784451475638123782085718347050954902007791287083932359205217001945272031028032461878473921048337789063633421915210606264565830999779033930295369836335553386677621904657395215753152101921979378545094657133242599216070222739440372981352094881522775398035597597543010511010011760591082101607244446084629557371823106391039631395144583707463807872768156021553429893012281076421265640402008398995896887166192671709153511151473852046869064029774050430907709416051337168156647394461941172716752096864508058520359332799506117034623547745507628234679859224384805156954669527915153062464034208476413026149110613477909783692270199098477216138780251680822777053425624953907973943867848342521920220836098418059788814694400074732105041074661801762447080729843153132399710312072344417518575969018991997733754973349883104173413183963272466876875571575408980691390163256396578432070797327121131003074800461260008934712019203787017719889898738916895475325970649774056343271048852540368613474266704552212998300073884129377418992418575651088751071536799796575741435932058892267476504109195563252519056692923408522309168070146889090215915040541528186246715458348625267662191583224036184177369606628391479624881923772739182936805131586768810543032465443021649248120243034685220473312648840456627678122308913930082197765769010842382781820385046157566617220900619177421706916905510673079542060584859677698904112045077160173344700067298870971176995995104522653597609819303421618490005334011541826150869367082895689422850228127295885803481745643007721631884650099561446176116464577802128181218254504869986774456742345760687964439495250175708365597026573439667358897154944808942684954702091690201525280449325958342771549651858342053152661962451666296351598445857892957600388782717471056415384846684824560444396344747335548595635452287015949470610892110452376284578942513672138746584748968324369661537621499580217761248084128595801383755226425658311716046113325952475138694095446794335595134340412535480722813391172882956968665839026239547500472671888932055165913992350044038802200580582823016631120745136662405864055894001750168660393947977082844685578697213876724163931669906908468370189264857423495514206919362159167916904493438879452209646696914007816468092187317638049249594175736793394731657333009649246979802809709072575130757090477848833566566881519158976812686818309251438015382209580243803934267237792170824455779868348277659028353356556857520112454690039672889238352856400154175460588515269971803586790552139155844752568570299023982179377302986655949907122253777551572395817341860879935487277452127973594902239983285207316193297367100142038741203502097204689667724572891446916535978484325849843542051892663725313585704760182773013570151281342150255000838557259389072809914693282170965976451049795014075385947810559968931925224634525120936141517264827995869399476217160418134043916131202465014893354060246163215178133378448704468035803388281386538465176608389288560509118738831353169494375748344292180209835506168564197626174135388156387992958367835802795086581795158327865538599233870262951767503143652898350284172669061138051850581172015401697039114730248818080386832002730722324344497890506263406244789980919265257831163447435242093778806264453902519928706130002142843093560740884638124262457521358405323729884642486787770990034222270405703164519595254388330704495947542692432210845009386399041981924022460018979676367856103445576758295943452905741108963260813981186117400656420112781331650235746637577657498783281689972646714800232391001498065017634643591404519852026249210042919287706071486952947457924679532964442770373643109267103855187371344186356126042486311801243694388969410386404076321958635177837069886495442910105134407711394913340251611131869434251144940373546535277401349361605098755338919945265897364039984305332059925592437754084838511458944437956541226120105341210989585829120013312758178587683014673061882436178064976456478187411390542165458349106961658753549688637134816545375998495731272481945771752688663553597400045439755212253225895978546896827629472655822812307251859432537374014656480747654440173623184108505858427283018792059868742375208367732552529388740166082743283728176448184272276327201360655686157644980034131287283674677634927127682162277177161357300206591084724311121841934720182867166773858954701537000307100953608260949305983795352286580968391451524415103506630636203172332949822973841166045501190316546276111639492354333877494124413926907579972387260925430601595131822795213644473710958554887800727821648463190458351919304623330463001134198634047658390181815593414892771848751860601603680373155401201097354692263614076680779564384802375693289206678823077024032865607749896259768918979890426306513036377435670997882933679787895819810707771297150973965155308764483778005732323193675409633551037463643095247985361328936728602688659418482028328814007486963677542789438665203766601361472223033177801952890155637584117490586689092271587857518104762544220978156142558186930823000725939463542363626353468099437554276366032526158204772897854572267400902880986105507487512017346645141876388591685100320462999714560568283578360821713804724454805891269381517867199687342688292169316292939494849643222169682622573495726769834913098744760458512474888408535156548702290193381548091402321985197795419667892329592128245994034066304706211711534123037510043902832101129378924509602471976992407070832518687819570339507162540048622844808746273049873633178544573200985694589739905411868062412676842997768038806394225751418106722725046751913221104098052215971814188178623970377594086424250956957914618820665213286187560564748097282627709262644533247224781218111073103896556268729171820420011541046276533819337698908226382886990101729271449179227958596349480987360895285828670691285797976337188017130412438617954086076902650935760428121673823275419873457417971503018554601500306649919793333750588046518439275178580573085103038971674747921978604969761665860171136842733199092026184945701712974711399098877131429275539173487978430231341526364332255296666228907789429715745766473752438758101218065083224278987791988054348101756748681827419508008226819726747955002652070921368869924896284179517125263264282620946006710365865184423047710649865516421819273684167710198807560151670062677743514186982298822290378598671852856630873240680229213293470929714441624304292720764425392884840082322978568023694536869921635867882529134687601393322107477483842496930211202889175076790820244754440349647222201233194048231860053304428850272548005307741542374168784471112424063480709703169550565163646461160326052805672794538823374518286471838462611999647090160335563005131056897119111509218323099750389955266381863255261570678359958356948329133150693879677805564303738555342854904982214044389891130574256880785830346820617926958368508286772894562749665335880400709799044592850642182267442722001751833287359064941364374060395722019950562461299158685767711165668778547947585220190065155457136835098185013629346596366548558851762517791022801290069946059556314072144261264458469027197315472677221566345074484386704192017244856407905876807824754285455009615676933483095582603918567988733054524851510506382619663210418163056793635987151947224460003688111600444580902733792782859021340396602138887885383551870506158437299239362983950872360789531591350816812557540025509094220861026665975813749514155842763694276993208414268769454440895096328864184137533492986202999808030154026919591560176392977864488551025012305732577915312700266160998123564448571569764577361334273204657612612000977872854260073981278400309423486990107493521143724943004717419070015465600647682192870372828849131987427315552222373484413584650364342251079868979592900207790504835175647759927367756224360704495597150439555859225882459571594959532396215154703321352669706784765441464039701252948666037008609832146886141070135512789000581588605543517347640289383006885283701936089390163034406447342545054781674054882573040164847066050673323812244642724402627890609858833329405625561116501414552484397271739551227682399766107508588050538806553862842700661033670873649225895795328108739929485403044441427952935416033582827841053253153780081926156759170471675264437740438869948244126481720868141790501762555064273110458733824894188501795103052852864126523523237435347771629085954523161791212735972241953388467561598444375586410704476329735243635677491948258406490485519102972532500982060112985344518683680465482625494527123274774786108205999915826382494785313550093526994058475048845562451142261046095655413901873010289525556537589616170648750740406699677782778026152491423219580356739200963633935042845980337707523027895384694335774988862252070370099312013463859059108176103336161838608444749054992300894967380319762514888371981181283609361125412147475404037745766604201368779959315319839941883570503390545278421885942935854138407520963264403038537959946059373669152839052150571983229244793871246116437402215364242395062997888614785336074298217397324432977971877437666406463376811138507264548002866681440850242439549788502503624594706303172107027952736434648256561255138009216560973098299144739602692532519399245728107687466092450356296906916209723772714975263014390562466067081710664085231935558830005451569839036411933364455772219123349166741233733378447157738586966610981835831832986216658225905485739338560481411448313485358783821665752714641707867441851170926082157900578191328755943960033048496148105676319191043999626679334975119440418531886911042373595448263828808643639941335148331123370848303919411385684352913665156960924937241043882555481295834001783964668260829453876807788250078074591759941187953257250867740014721091061256302096781825985864503418845668376416987647477944328777572013931455751297217030559036198092549325801569769975515740094584569499462703290387696038740161559746420593696775322631154899871261056536153428040127498874630975900111250236598048643345465679240401167939236102140813030076714722537073843726236350218172235056001056976259619628583301833125143972858958521501182206502667860517130051712702609633788894422841332897858351634699214514032906578487041336907192547669248085875305326000710409675141472033066022939216914171956187576287804485421705326961178773274939222998851916226217354605419990468691151265214496666557265355763958601673783018865794467034516007537796447623312411405117891345621734206380331149462895777410395873288717794707241374495658040057771235017303422697416799700145095302381387847108320303028820068502021279631010482619363161746497383441804819883852812820768021055009907528362595315650303526949378719215408961356910095608976532015654049543053387761792523642684091424526780476873665385453212761819681100747463199422183761749072143170787548795218769022854998004913706171169405388447909986167146466854187001911720938936622355914688694633639984372543267834734145797851493619747001731529141708988104976881893687378720434480959774592860106819719650215309700451001696555494799140108156861017146359222977176190774741025491937114247342223307400144067821117241438579068352656045804747897305724338718890073270311765092500513881075587299151417384939629905111135434300206590598616921083515603217692869700840758343265432339645207395512281146545565097728343753326981433064831238516693264599389722880766614455763978503911977330421748339104598424157701511959442094619791297619465118434996783565371021308794481371259669603237135996008654799781938461114497860291290750651840901098676731218056446267166050110174070108281454848330136015094912673439422065778096705335825395619097841234620737968005337650402629978589909960835952761669978718983279750151642346642781451993672124973284403666291058396525535861720553238954656993394780188837387163841226773878270092245512219858349366104854091993232800427128107987761870911982246397532695008359037182069067239298297473037337042473540612804402689024173786252816771228615974926935873491868335048452907117466357923556711745284021297706063649482669928062560969488939052983751392901460383754866224704519983123352331086950035788614900729077204545268616499341342795883336214074353787235982420406683324947213902025336820044029012066990236534775317750173964286548818832603829927386788438537543602325566525945437515340203256256533664890931256549959602624488373907721996839889447893917631082893189564214755430189254263678892235222982315659038801523388106110384258486705724160035285561083261150158009027740925888578968121672909697904501782110751372941108502613162651015012800519089847919579432597442242297296201090795783566014766978509099686744110091650552071108757398210811729645971015060846688907597871095035977924973251677630573362157288871458375914240500233318102978069711839416255630164450437250648509346926445788104155331994754041815094236512201999598611477010681412710120990301991543350585049018586853206270144353255674575831586383295783821526830704124308486532017828409389273553405461398074415579076808594322907281849279739789670265332149411252671453315346780527504314091967764766820230931696400929562930287252331347574394585187207731567170171311815058691985404335849379150996198597250968807176133809283554294873714721443632699029793482285874349890656600767896469351892190420894959171955571921789848144848394791132566867326271440796873180020989566549962029484524659633987377785573928576759191522962031398742555579645912039712980291226095892132166391601487985901765907590546517677722449077901453965823301314285980124688740438700713454978827316974073920574120669586462134616933983323160482557548279393699803192484957207879714687408359690181427545530449531633209181394781493765780225088292677072932147258456333926991894575645639970192735509862876293342034025106232032981470149799277288404715473752445988854471115156982298840264341309364287691978460449693722797393591104444356100164076983530128531144232421237154054099332863351180877568568650488768490257290289086629135271493460758453794115972097950854524725045017243252249996453145853309229639406303500293779080445634145742967084205854164788448775937601523918718143623307965718779963438282071244792727683028203441500956268592091184066948340032016477031080446420445378201531537422874886259063356400999638946772464222930928419873438383153560883427303532048259638600062588183978829522150384692443932109928689056104708302417486497860594387597656900640616408461978681986054778264675926416630942151891522052961349554261449085477095060160896928669915667656135176659717387400333822957887981192705949493084899068284167736760906283688140418386675407999598906640339954853660784169772598159084295755383409747834686297165935952522339382335613234154984964745774722187867221640317029584599516651872536408756151940697196657005356387879538818090933496109913305310551276676839610512461662526239520924185282965527793957303802228681709346970247973384950242641839722894246605389738008586820714226307641932397395958157979425342977547097503867458248911222001239892975498724113429547395971888740722194678122346533580994445965165543242202503129473367437946367293487139995982373682264862307553179278164699776912668624075606155925902977924880830504815475949297217678387773627160025485087035332368220211351596997826049017109928771235346174535971179311812588071889475353751306973827980599721733192522702252416302786227455646912406114805529412967684668629118167787468915484189016293025929632484274587362521812553240222191759622206730772803908367108111775579252421625323687988502761770887294931427519324635357809793833764804863678185888972386179675933438095083323906799797872977645873803100380744173569464878257891635363796400693175100308024755935301243333976745964449773095456638271835574282134023946195258929606258566380447221356010248641088074640036281530829064302323522120156377788102989803862279263696467667895996878421946401573928827949380896937108959324829951998664376861592061546903709097488076323222045263796555807598149656002275007908700859474198825187252684279481025384009400203228600399170441390154479663882697367806204268882217893997581988821759006812906849038037903540663527786850806041173368849198557495929178780731703371198392610268845758853328507944895387326369937260799122015061997744943452925547196367378933671765709123350715114564622779607546129957627854856110120831852295170779366412111916655564974956690171273093587355394757611914542436119382261953988735533716299713676996680389939298095658748634662370152373062283844307023546069968096222028412071547144515252970850233465357827652604108354784661041310744038510904281010804459268977692377719926760398111653553276257985102571712095266040117926340050817735359593195232352814459003122029697630211814877964651441647841825349513292884006497019264771988541439613475459268271904907383777279960133246838863895710505892767457373282414988443028536162431726624213295315031938452172067698087338824268694375438415294883101721871615748232351940588949301870814563592018075533977406985602908898545400130821791823219377111546150842139861408695927798774430960950701909303015327282599933139602791768588546211071395710918152060892228396829371228270594608426918442273393338019214773636851351461748066054971048121195549374334543357105755552674955904954096056045774760305736815753725102210725415110163145732859954350319145108390926700660209128104472352719214254534586231821250900201197654449461442461991107404152500112901883241588819123736022770425288846010668178702397439954890242903960739057645873913638439034693531249288365658273783818418270136932571520846046323055748925527622327792464556636775936034733976495289914040039511372468460688629321583408981696972454107059166049726475376643674791443111336481660209165510735500820752280262104935776374171231383476507207595640258225024279931981768641017045140335631705307401393606038343915222577517158326028321270417241642498838621712128276641109223481649662112626314160159910194545366323539209940395748057755044922683057660862803176436742826984829908717712846345380881547485409376191202765895739919008225121932097780706179813567059102405635936962409938583746340855148086726594135604546232785643176331397123119425525240062179046780033226963729084899460718844347311797587076259599482588598705563639680116924394712776841219291750466916966034083033259536817231193750029416562715495332031561369679687574846659254096849001619579931198804298734670999282213428856866018605029259777437491585194752691480552286980367371707573335174608040907830979372284140883030624335671883618915499023982041729989718032925618268738271819563415943564672293003810144561267238646001648671379140148903182825098886345964956558703896103394387187754375270026238976042816308617222373901967134741081808091876243965485571218669512843133625958959825886583175447703443548532722630398076296510004577198401679245934084518458600364121259027064262029684191888469219093957135370171666933209168961700531828438650926323160108996265707150306422963336611829401504593584253472934365334718733448650656610662793730209126371181027092179592173220608309771755239693584544646228628623584540483697703529644282759548648859416643452724329881374707283842915669813106468292307807526608538885468166487652720245515283798791788962918938374801707711942300436107665455634884979108613135340834845158585899224982856007368315561124785088941963063020392001212458501018916142756477096014838746184630969732830784774981709083674696728616477356254783583838811839261786586245133194101673743260574706967403369613093088994932581094848282195312980970109963662262976951769773338104840225524530527553066749194087548418994082175397598788820277059744445347644748444934601851225176986958425467803457670021343474521545335149706783003299097123765403485843111153370170151890486699174005442826733006015876886893600597250051363958310877877899235698629418406727147999718622453251304333497658972265560944702401125332179811366871456293533349446527739692990966182964737702511144371066831669056539224978670139213595843774967963083053193003465948517488653021450488724823906593625885950695177453544732312317072119963596272107410007856847437465383349118911162279368187561890031469908535532204232765181460915264491045854993077927669613716051522677391483362902871617122834847272150466911846591567517920153046055707469818079866648471336047200655077727943062302343122848292205756174703367159518685839669714576283780528951051605242225298139370178112632232650906438219581822053631016388340774521368026330737232023743214652575519263358801573604756118017970610599194267740613016112221513698111245791131388866776848804348570591462602183425507666563061782609383604320480519737664702848915494688227962223822991383441255863686516132225832327849433688377418259614666022383522107652069247740372594511502911670302543762788787540619923337622714269971271481143040792509787715539264877186628193156344695607899677957693095731291751994765439427066528252848447719943836559937431492651422750582889227399766045884789274972495145061909435561180534381521886195520051238606943681590237932476436272541076774898551557198704282992503186930131118204988574562764096942164991133551064806662090877867952775565148007230680010554361581501868400016142626191996063956543287420611901864249105735307817866560688434826078529875006170687175351706966650510370557832314428721206096016361321844638452261150085783326807774736333357763237340413769230532627162504422793352362500843621516848558182104959424496541519397743995980824974431762471543496704348166305927087223944432227819838899937930597215576846977417055671473654609541546564654567827180447945945060267795798013778584095352630207347608428633917153806767581928212925545874052402104693178527155810564594845078609030820336185210425561202863282154445637047771400174108501230625894997149975277327728090049170580949354849964998065761586047179041332916044916909126384306186245229695422032996048744890933681495630320082393916556667817930068343082538572927099238093679053515820507105993694972878186757331982364072639766828809104636919862011536749811524461684149852884829816034158123795669015827073027701768503367060407461017870686492376724590992119350720350217871696807497034440920633503917173325112007404181632310208166910349336624861493526623846272646966333868749228203211379128340813138210090463192267158466568241113298313123630761323151736966584514835070507555898005567707977073014217122615865310439372837285632857521606103693420113792331194086303884072635994249004576564917437990589450192831440903033060818318600785438717207477575498245927028530392542412864122908847447194669137620160937448358489017305635455458512425803652257810973839928265111617346909181039102876233385979488956120297506123151054181604118352620012855734790213106456746094644827886376507310990090428119684039696252171950850351607403593954301712101278444239474861020910535479457848832604922187388453403266920210358513079803201887005220094206313481843515538705993155338408942003785689531803748256581443219840331286518735488527700616459060003773558106328961435069969243093637553317090118418675144541591759718952926975829586161993489864578646259418121061299107081492104290364504788060446935033217035597222655552522398016950914287633224804774932446624037316141472787957067083557842016201152720213015152047587446370393285223131719036047223523586278126013359653001890540236997821849698850438700841078810043629721865313660502877757633348424005690944508969258042434255512292407917054737989662493228064925669208816578477265267565505240723577400592668222600525482612166319868926980889377135861412342598324793830088100213359836295820200294610852802408616431137717828679933349809287656357038211950935663154060681508062623069611798855014386931423469260091563947909745119836301422596541086820028408605551293680281202805435077443923679004065638730208196351098313297249406697697929845076009440517775491109564655854121142745169702567904410361981110112966418724966395615837399579462494361100478447356107664418229996579403057360332544798931993121160622144267786044868188378679894507281798051138452175911640445004233172672707164233519880610220043796717311039226388888727703794373651671243832004691495246378248876862181540839210246226178305558301801594347184499868724871759924131761310462215129261426180959447744037710367625169749810311699534385229253752829396743310413092426905471222559126787648176238222050569169024891127979671002733581437567621675932615184370395828967652114426834735071232695186514487182849113472865558814672929653590284121072388234324319857967535961073433575597033357617286130480914339851855402644953188425816788693301367790726215606179057335235930586615277505140972983528151793545958065108931983260983392369005446889526977577343211612450574334286463480511573549703089918233772816479756287377515163348314949903900503568139159960155323432368785347370380555555881944968806905854840323073475423392124470908609082060013997499779620846186373018993434774668046910183953854655720000957848880365114929979186160438762680736049082111377137989926130818299447048465325532980952366182285167145255365213492400353116849062605313076672118263785124526776141525485018863327073092028422078292066018451211092110122415244684779814404915763060911211122664056033119048694589681409143841896038735267158591225757881536751745691765864377117897204962219753369570315748400117030966589444086064752008664144409870190697403226668106214048498562590216888216492945468255737465859743420102151265636666984555594594363548325505173633336048720533058080269714644572137602607347068246147888549869250799034993616113006011738190724731532513961766951256048580365495935808284526054153921129402013744057196512081725340713969913868880407831481791813219266928515796578884140875960072619830382760177436154441502715888920806048935351157769312369983667808928577741222369993704977462198735196541633424729119135773631248730965986717188577653773151153625078446379972188168500367282531703561877455728792070739942251330126326747388219816614933368875262913951994750115724121564157311559417287048507064173295285667448820696337031697403562747406993194561970737175702203462617794606191349576736559126212601554357069767323104763577677486997369675983809454638862779662763220013513242697452120821682781886712163099498789678870057582170952664463584209876624833567775264287024050345611213924999691704890713930747908107869084899655236094930415801088628890317017747054392369204432257497973366335630221247497380294651667598190286118977258880502040606769244652103592716333966197948766073269485340099488657902477422112607592080647317383582575083424362847471975832087825039189389597305952804599364794569275256476272087064574132927794358377139860965171884464661595773567452922318566694908106677270567812158595872981141330130241486544959304187785421007430564350184869848336762948994686352860437550105670434145554426826287840731146380155114735422353474183845965852217972536407218028038888724850518477662975378251401733093012900683893897222663992042849914690880236869703466733182701049640275064119946161689326369164820951357826794023208928402394735309955807081198211590515866999526488563982612999385374719012394435059525678592576608179003955062121243675172115041290217112246426689353192248883931351468403501122930082492397433480250814685626863867553580797942322635824760824283429342325199827549473771529725698092654201408279916499066290511513399576783679560875551666477064846872392260151505885225741380184344564668963025636185169632950451154382851558984820370220992453300020732889966454604708072145927938312898873125980600623657434067618420784087469543236448616051927255547098654043121868076811928137978113578259955213813242286410143081766989844489736895882892264650309258506186512007184935754263528164230313916391003761430514378540160417873049079110394369967271679090784085697340318891111891897580143312524276987111790251968020428140307532195340781936649488162251863500343855796852968225408124878153994403782431449896917069331946278105613633453138980164370401527125563859777577073276067454359642479039968091632747434801576863846759520980218160595277019254119233092895684238614868484746321169070288670443426964195425941552296509535857182615853996939554507799312636707563469226247230964832199850429692622098069359778730933765765604714783257472151517853652891676933945869470538069722599284891537222474901519726664720192947578824808679937911783487481873850529032953412357480593201450168558627412247603198539970994215117463404807928957575343359463602758033394498670047949788594651198056232598099557369278798188562237404310103948528624411300206728395281353708247397303859948184907995785656535385079156120672222481882946621872780761941830027994614324538369029505797600245179771255603340926386411907269740298146254447425900026055467170872941890588655294626088465060653493587702136939687380266142906613421750118661670994614115302830268457157101126279123718042610329663348791496593717974859622948792758404640843212715145520631694451861835057618819989422491228234822892148193321639128977822518739325822266474727157156376436284039016055489569284519824615013165778032708923371243354885743038702984572699262177705127584566330715210215319105942423842975528133018414909361843290072209969963297882861159263392146795116002732460702669716435485778896064947829974074203812728226074129306490378715687680652321326414514318394565601747145360793522298573238672068807973017959900828748207159778615295415371802733364182672875622813053048525770659272204952346934074111326021532227491581210279521851817844161443189348647062822209435160031988207068629173044462165392682557193804355635900926758527321663819089999519920733331101550577518953480753975239306207409966404417879502647621345112017712578332766756512595529849764012637914859639332572918969499197930786648633178283443453366677698854535126612338670394751942587477253435414601628541133062866922978141366053834717453703714208193800923027774039261289308560403892079838902837358060568549504571337414006567032711542438650426044725347522022915382969950542582881731256172829444881081138603148608116253233377546562164165254693455923478162947041302825548892469956581150543074090395966143588396980233919361237079694325983625444879543050429746987333983995137518836537500985388326316514121070533585341209158134638066177655399979991235530724775751753294033530984646966739300452597587292432181413028101810402991684253777256584087011860400868928025384775355343922695497539049377904651886735098303534990135103191094918993680398294589598106912488707547716762876311615810475407969416894812760375902139014008697224076399958256559644076551873369748329838953624628632969326504215469270846520539883208851163964006463179354702646103286274046361531425533259653101661909292101718099695803413839416784811284921016807089984683421161253078401543831009956917408875219741843821643262568328572027232735129529995022542244189452592275662183190860084146702077814286694249780690268921656746169761007415769386788508674028372385482329915001801455182522800795924833521902013162233215997041665572482019781075083190089132879985091588461124020434599140729530263779502197170026064978184501709138838838334808903660962378397104443411276627263551103316506329404439876266401742221006287124545389475236775465402931027935027324305663113565180780927077230308638002486486763151439360440251163957694028506105485719406394331670182433605571227956062815544419561224323283221865831123129487019883012407955825288954823733771424854847382187036279757057928526202768965334852972496163587400847994615743413205268018910203847168747077247124680869139093791804720081029063435049340331769678981444358664727555781601632314529034544907591300647514650561379654174408051545475909064565953193906820861671364267701068319442360456859584227384448348351954075401095967320199089385864363148513519310162000464494120958727183868154265098856326379339030658492419121868350161340845573942173014674406146573052468831616151881787452072369877708129789785902402425358465642065850117760865557288914815732903838307005734346355248275159637145696546824817470929709868908860403965285603259883793802760949780614629550121216574344785324262760260764185101983805416567286636090702585217463950890860754143208532128767000344093398643484499963275490205911186108547552867091275215668806945716343530009122321020850726238211375555507696942749646809921162937766205530537541666941240664644934181584153897971806642867001703622706119590545906305464596418029113199675923968460356056146744651991810108603375801839250017751437135079518530452026044341600665634196352438282301022519659824583766419024147550264798750207465716815111410293310038689308499772329618622578593218411082277104903616025810699999090102613604911465634334145947040949438143784988678724303959500706471951510152538949677867677244900206853912954568196324542143985535425767895764027465957174413583622930559714377523002548338639772871865253868954179136026703883783082756122598622580952337890977158623604637312608448453054725817487635590761999853240411089044443063464709172649641579683351990791222719973290773823795170635271960272918118439554653666708085442839921588864648355312860132082360713078210007261619744761527018607810623142493331533201728170540498348275471035654935011096619756762265042371810262160334007406452986027624940494876388740345670508946150911735149409862986961374955978271573522901897330323214863461043480460776876849593089224986690203237743067896657284176644357362039407055905627042644842364412958531244561940222282239921886428403889822474264046041614697925403800184931095884504966661885998493391911736708216048279451770298887695288310209228315211629233725162668871048961908832622899913009824123966377091689076265179634308760529397790429189471442458081191914768520035317409434605782384908324958462586264732557424895399089598858711072813275350115457923273251759876229372535329296312037222242730476103333477252165678781998254830593543562774190747084061684804227939948334806108557152202673929831320658895222779802963633739427330249782997734645411606675952871813554395748142997400989148021265902520314987626928181782791062700481711650122589616733001637240384464124673572156420402785264596807685304533072448573178679056482834653885903039916012569065583367115916145660005658281738712994952404439645049629975951747647920049603937184739996300481968050913285284643550961630411247701266410974822831906653366101412135758434861198825847931682022333496192842184917078642313775615599309111762219798729781945658260696675117558466200064904702668788880562787113391918318882017296093505259003780495460042186656668006825878036998557618006797031317847954582919869267279789318481175595524920405265552104364923678387667102646033519498560981286314189153906135950008692325447027070222541619126719930235082958840470155887884473805326563994868219301018782686084907553698879591724739350639411061941996270514354733481171438882261758677733908443807249022093407927299165174761248551815036825378440996799116082551576929111943450881701713725312976976963346902567821818985359666713242260432489703109378173043692253991981046522753926546262252959255327068254419016579730223784542916033017761981931517956451670109394768546879566200174053315957092990120118695215182535288514113809467541335604275616425879911946847488902346857397395436370094368163222541820300609645064892607786692410864474245907097892803461708758165942602957704740751611191841490676749925931870998497448587456773747834369649105499476348084454845473722086428198411511440863053040781043116642931888388576830959439380636439215997961655297574857406465629383232965433602211344281113280573460745131832991835869344785664559092006445487885021959511965208933906116739240073526973800046613127210670895789923600848648216525699207627306440945530795580136127605183173517204381561402080271613392171298657468398885120349966415489375168159984506487519832213117758107076931623591526252509005042410675582026806526992574092468834990468308021028571612501821362483300162811989878103836358548454614574047151037041955194461403768539259912428778930340956703731564501298979969945648659581555300455053314945536373158812217292036388234113229530015051308680771520088317204899076389156188085799179552844674829621658118259915368951664226820572907747443651022592775157511303214521113960794254058270689468502197171728776455402244358805405423320201012836942685752718082658158900758471524289489680766478292498582576334830353289659102122105033842514418612574437134278665594447651731766220883746884442507499760395087078110892890698286062513721194552497607547634398267772599446734752242294896360162507433592653547940496019159759678107560191409521588033382993370611624979617462174550290296019892806347227051643597156689237824416827490600586520984061097761160266162181939316626614738584303320559248800719680774664288275642764718093503859401524961862185746002349763458794891439241609415507718513303233521358516007570245617037461102890798495132689327229110246772875944042205486933609200690137042051946120927503110235773792568124310899983567098130363472968701364062277049556333826492843177436273341870187252560244913355497396483458518415496033979087038452917409095347969747975276647180270107858606747660005193265577682423151193705251815661022753276485253616210344676137949685731497702913487443192172989347354513253440752720268004782696821758187036148834122864505508287754335550341900387048455823826498948614272109784967860315870159993782412898387736062731563380179452066707833741792980167563122561717324683400985757636100288500303550750632636969410442117634998906301988242260214432782226234926937438310049627658927135773784293660037584157632635280658819946448634363517178308167651725085593717742585366653400405244170503603291351900501425887662081895704612872099911893295461847737759059312723490177094167017382247097464307907607926823468682890268677855448275938500699077661721800881766870850879794439824045804567920267202005229974898276236231391896807962368066736467949407152991420820920546986472265100806249871947970412386479967403515895843206604832023344630800665258485175697499738306497442450251176590603303068957156536311996684009238961584001992337040147617647039055781295783319124074749361499062474670962281178768038213518697366108053920088284709932535209841066646167631122926323346057316048756544143644896518443594935686763095781342151666082431523723651571883455583892941415576196615662900602987655814961441644713798309409870519735507464788486803492857075235291968527004752587813797641467090844418853482285102286310331979781927002338169116352355140126760554282374588914294598651906627038905093244500445242882482418171840357441414635378501119236507810591061980537436223774831384270149504149334924924108935239923543391815671101458344493770907062617898958731424404167184190607000270509457901641470146066729699428680087462894722543328341179156055968492111412596052623100206282236008295473305750268832594393735084766271037086855587459018080990062837094810966094421695848292775778576499062884248872605166154869317333403887343262882124071768935371542662825759829899432667408031609029722932449862091302225115564172188377911821083937931186866815824556552997339021186512566033314741112319060472346495390729017495308025980012374662159928775937695547326658817072968959257789413642136490289696828281291798551598511360185264399785004897864319496273819486190771896713927704376249925726864572086609030617819074119981365530803144790667060569446552853550047729306898612043678674412378136645819224995949249393638051096987238187202285550491777789774998696486985063557475932446900872273802554785268302603529191869957594471698618562832108718067615747529199090908100930565319838781584964654746143894459319215822593688662462570012265098083428757689909875314626143720523787809042936083119186631978779606344503691960019735866893268592947873140987427701302973248386517979787296723338893058219588558622668654464172050354848373039523615317318955919692366987290212111020827916835270925424315419356926740735870819115178554539266117538462397872565108880666245693297460155838196525920786684493731534827437353185927353872144288100721792853136182146501386243749130928487697863968042472025532365288872447372175900571202366845599278330613176714514375361890575879185348981970238381751516827344321249062787507460317592332237142138859884598176127330665595210896706764977250821962548019252655853931575775129243886308145966921419801781569743324808684332150447744524169740620718138111747371072443672782049042528267323390264750691949113981371140645672816975155614360248653955577380775922762800415634141939053147668131788806277424344263450866096143509561316548206973309669675976410192233911252127315142783178945484911337134097343978314675930052356875219794860721736964101976990045615344834117986914715854033802763297914670214842596400766981630803463892081863527608164970308144499926929474192426969942197050061912998370015485480729981887760854619474582706909472308685999092652574474778856844631328866597260896029822740290446847185010509381378601727162747558288632251250203957405729201294783278263267758159022202719346098006054157429583678493370431832102608681698868392735580303173779296903510456608212335492980076350554149846300628609218192105332330886820361312077033998358683060565203870134197776553667848121621883335100331850225344580244663946357093875376813546588799171491955322520055908470240960850660275347775038178058585741634935646006449357961708095926759719686699864918540529918456799161443560590245738174870134272001873088416172663698421212071423704842951184071632909900105995110646043478984727070894217305826814989490662565256033032773120438253145535246351966773095131170735131972926182940595666014360352047018524325454662019487472338524933054298333832101399519151845631199974798684779858790763415235963739727070849586648483099115022615494324475306879728882580956442436723532863132270064838469626898412328073142086343669932947743122808778285471704228998453233704194590544875314012817177980457431950983287383669846895723138627796593827734742662562147772526481705372955274609267884939101426739686384047568385514924725258399087057624228251410402780199425029012600768780714089796612219742236702712532392816474337947385307345328300297772358974131340962902065408669412501138420802824048413339622696446757590070090939353026037700313529815396100400545776442219290550408449656515941713606578596393735353316266703210585414439819301835452769981705885318907714533535198349910233388698198715845984992680433485996874386050007607193607164536969215388668801995326963698448575624905431051308901212300985359476442388885266728480731110298862817222991341208073460915412288945222130545408268697728437175469655719012731927885527334312771856829414473098514351380927365825631015023600651626356758373803644950979470323718223482960219753184439314949763545525223698333179264936487219534825732921568899875440230448546293247661274376818194795122264651587916170830095666253542247980679378677487409652357022687537333274652444218440370175662471140667487222152845538543784533240194453046196746460303699093092886504241588898806022650716198245885009049968079721498665488630282702467815768255835824454849490402107989403641569859200816005852800289654526364895480588647828364602612109349235245761281857966516046614438477935682464543798644023656028242865839534669906444660762984959553206049657854409133102896630561948784624590387987908959227706746859853946781398881344769498389914213567409603326406807116821081287114665977231372786168188909440066428243581504628994126079524835495473964342866197522254466168867207986604385009642178445945194434591848543581503243608149710609468807725968775631277214041763070699726032098948741427658548682744218963984936931692266851762110953237034617830091083591138691996382198755260426272765164810268767093417310560809744759641682034438991581127461948219125051658991917315375035586743832685674598402831581044577025493043954192871001803828713336632967795860521331617262652642025771803777080383760275959840771860159229560267537885529887484271436468020765714318180971719652380881570565700877144354901880767475369362810460603445497847338067345417932621334176946363080744228608419240826022368810894436188506735161106667878559996733794665490167805346365323002308207880397593956366631535722461379736880409209256146378206786239676804636298084207162649631076187149600356439721998856744251015917926829213580571079933055207144029253710160571348363178228819787359302962093563526575791512341903500694527519265469678062750560693447341025818557594946657877811320790650886850943088343596290620549892256319257614653773382775751679661651346421264275270204854259247471093151637310188513838493692919497112116157241446162265348524399539878763001989424979648532979354895828860687215740321671524247623757762374064760437944307721807751779057174974229692524333650383154060492349292114040250008913041112039732458229144634926326681959919571287865149468622399097334947101784741757165672899957904083648770579410905375072114149380580078112122388644627998307292610160185445992606836803775093011271331907904396145961746662965460230437027885298501789887224511841011761242397686657846179178331874365717543019602652403997424096279932067784039778994910785301297372289716694026887923372900398880885652520934004805514248630022576316414342357066405067129111190347701035521828303640285809238208131706870205033613738062795563933170455304742888426712019128064518601408551337165250403141956049588786762561793370635205736018090512161431445728115259048088650351894795570055462938856591570232397457007879851029171415036159299811987258138710913236075150596380413024556858076267462667407131690514150099755571366647403719836409812046115449995634075867868221932650585479876230762961399742535265854120210302065231966034793433794679625673180225943134105303145534450334976148928470442384913260972157508344717733575317370734806628814169155737703207008932155044908667330303119530137592999185275018527618602447464348228063280228136820692188247480566005298783283967482648741742975841514499441302276320345484475737205037476562691981223066446745413998680725057709442423928022086557967669415471311658917322120208570813318635816938627403238826425835548368646659619403621069756565200437149732676732112411617352460564356758173658313823102317450368335366812215588730834688144838103763828224414736823061896689333168188233775439941712032992731444564091708971313649976714607907467835240412241318570136650840790873844404161644628038911398262624931604155834038307431188570033600556259555811731963247122268482706882991974233196884762007402460550041386650851118125097260379784119186527551766809299136126687596980768959192800317929059064971146150903519627093321511090022282713766899265772451266727255746051450418883386326996115304935770891292480177802967987143276649567207252985175024559072980516598044696633424513038271940884917051936730337550191573254272769025783651389084472405821071452429863604626897694505215449494540122488968893118328778813137110163162389653414367365278353887148865229815420427954704007438463687174680207762409385596670150435639687115776965729006345326731102072781132500322758998831960964814805689212462036973109537404160547683672227031944106869520924974578308138665739188476437491497294750108061400396629957115397531331980298924253342441763084412648478685878775194783070922474235081091288142440455999982890210498911873411410640303227165219225135946488394861457335366238690139834755498872049631464723573397604223507927310360283879135159045220050906704947070760017123395343726325562476527179961114358387775934782369263266966915685874455105054145024105697228990976514326829197317748578523404054017896900615208189701004184600247377904606685870937914244381662324431978863159687805900610644322051794393124556983008858347821743959702720895394627328878618580926638331711723966150939040796053785482250827594109008110185833089381186103173997710217461708796748420053343375938601507253800419854483074293300279508671022096225468282443054926121791307015216310216109572213504312449142396435469119176371760969572283801712731600815256952689560057009565846348714795408431219250683400412194681545581570100953265616212269161197208520283654177309748678055042987846190196581743997488034376700195647687567816456906017454429560181018458162536735661998599630196349620805883371874629962798561306857574811548062685991671205540832058955099721415559528696659453255901362662893161301138643459451631731238950138791719947507525189201471229657280516168081353400847597726557002408870998789952698896031644698445560631685151926362014313915410182171330755300363680323686481241344589573904772539476374925366585443799013659716541638789093628152185055470199591965603716049124257282715485911751828084828070530339520061030735959299931350290464124569315377560361018856053189611614621235008948276289973304659134354027579810075128261492925998373502284739514745860400218006853196682808580774379760016670032394977493383350551031185472855798596480571359812269644040435863770865823645342316942846021049046853264562101445697569568177372432834957797487132280444939847326609851179881611658676435844872584032082378962945722237037559367791016435457316914744050179722052900747124709118481008911260068021023095911061816285398234626457841258737278049889663623535618460413739410973336703685226192631860050381400707412490769289062303443235398675635091029897303442633519066430026500341458565275637422266391151811980956979104321543998611565725231519526777525802969991103196162622768600554940592914396204677801304656097051861644050117929286627783004784002107485630562296621589128296562417070880399672303525066899409359741383115483446021739186020125107326970341407705361250102011474935416328991048475094649102258973850831961459801533468185928294444794637463608873929813202372901027908112908110199795219737675476631101571582293588556543261002595637219535732766503050438646769397684886849678107506368714508517096774519263600915231208030197461240052985357900727163295696469505592700129673568948318204501001346777669601951343210806837445972819409991250673581276057996629391764398405450827031111604646091972100100690788228607294333422434910339612206288705382595962228051642389948894180204155001912276327793412811145065165543660183513545098871229002489628494820029701483023408872213860003552085474190099986657820885781811159817353991043379609882895638138294198774504888386891711732267582467093938371002862910765392550348993740380940077782160258646910947850118481065047587942186121612773414754576169149766064491987345283222538211953478198755574182182047992750320047984549216811034758896345137309846360738971318398477237997964616024668088952018045333459363208426403129677721617841951339032266550822601528226166255854190915932518392923133261662550363814337362405557091711513770567043670967992390413796211716590421420639419352014875605550166848039611375132224469162812417164465543393178650521362885503264015204001704525324144115504141251777162793739745311478955055457948939403036125418652110073193887101838885420111228662969247444253015445080321519023386923889135164800689509725853766392698628348570922602451631559803472551657309062145200929996452494698615121060517674757401920617975128139693682640285214399658000336903204550055006071107389997838869736444538894161529257629581120613170769910066979069101355487154848696749984150302698274209157666125162161889323069259321163995855944327267067819395943742431321878043901941298077642812248125249181564756616018735907537595275414949744464623741417301408113416680440515990176416551123609100990831966795389936934839774703980977982422673310459204903702175596299142393287440252829644419297078372011530297605342137598191839929045153968908650778556152998334317656315125547803494617815802869364616409989775290851125159053929137697093671553423054648270146849787757447826885822750285199683078426819445588718424118317813348745400054437168200808064697699603945391043768343457834206144524793609624020660329986106165758518274947415724896379448368070853308270956261156570417452229231126757703714954347990628017976513142479903737339099411793276620853048796490339314399214771877927166728129326132849124696386139203437843232778556903417277920609121467727038453612296843294900213125170838477198118961846347734057310941477265399516836291150385102895840738017645987515923015106011298547319604917668122086704692383782575195635646023646195555902540404888490817402348353024650817561547549332498974725824857236523105857559581362420219962463723820537239937527240159697025608635736375573273184687422646121348789178465287286526726351344411098974013680941215838646598293163101918678867234287240370621708976147302373610554666350989928979256589483163333709074706737488758597926241206174524015474089661619069848662028128717946255900548582795139109173902251249307570240754616063815158904043392509261953266177386960280434837506415746790173759131032320994991003889667467634492681923524727975418666443146729730327878446963574833147843071080374000504440127574264742612999881826401389787233819947982854345602609888849009026837681042211121355049389780960650534099088917979540878797625499030753870080530460518625522895655617447206193521179928218544800228346977720811365895054121335353949771482430024728794391431350977559065700911961396869228805858900295764334585534340579902619286265927716954503321925309795405242835188639498805567050072868944468862391115609100906028011800026499169946760396638713937532186117749970254607945886536313067684581135402786564907531546537980073255884329666814266473734145729339903643871409541805074085075665829414023789046314869007660852781334045119771187578986400703119334321985344976230916326811101832354863883828996653428094682111504034563934465946742118358068032032429907632011783454657549571200774169314368452840466789213462398327657776944456192771135265255980315496685170932337478873560095592145602473989703586220091084725881769754972548959669725627736879063986271477584708415668821766082380224784597918671170918385263750497065426024992790989265554836439719912646862142622119897210957482879342621763921640703921126419878045691437593592130208120645531966894508853192742062134825450502260077559157313620665920849305800336760329502001358895074431455806696098017175132189164339156899042283502483984116457256104493706975075625093367549587397654727499135355815592686685574605937259725627455779452943156975199930044187152960795094440763958883171865548795687762054301457054438721694673573426542216891497859486548025687180755945116403000964947805941783879307150520010255719827918869690920801028411956183032294424424567871871407386276235694679014082700688361641154870380039381470002676310189410176878022580907627609663691555183236028299651550480617004310069717217449220380433256872936831832573544499032218945388965501477733239140362101612949217715450800542102358038249551602913027027589021138057808418605541730127129058610961039657664407404415711928880364651427479700753885220393831990733178498476259134460983018382692126241572006096692446471196408300126292449639490125359633564571343950538260485030826367301784040566558588000195021276202487212791486086109983116035538205662903875840068451707336907246107572101477120301823997008609726811525622047983183820705047311732992339001970825212483146934169469629090380776286677790675479181153708191803055694422357049155912125760024855515886629685691525650721961718686397035569915765475835626647354934744005925399952726547880937031627967702547348909765692143827664347074906576164781639727692626091779897879383026157291668463046853514712297166642636227185438019373777970353052542387731897764401808624089305458457801637209922826269448916419189172808541194292458537409219676677288971553518097805606822070432147760984878654526923890821176377692941381298306670948412079291484887169295283285202166587589616661651819471048340611890649284576917869044769089416110819549429207860610664437337410831307760904122745345234382810397989100137703049784809132760310492672963952402289372743421043099493683738364197947367983705245725585395105713799031948526066664418470750919926184853016060016073111330061218939305601267130677720203101851722107957719572502464718092708230994379387368235483528488313538160195781468259809811889640669194825441039592494337601793544342146693640446902915344214725549378606713798508533444917579505309370964208556170679395245226180597580680198373456160963117269254826736298961268238112733744720139906958851527117246298452221183768321991517019056400904157095907759721099855743378097298204623982327420657244489126837092721546903775411479853880215956319800663656940243445225725762447974818776587419520070700456089641400081727308722086274043319387798701573596674971665881332554630558341311320646648219870521542508927686735144057323081204085019619596472170530619557129253982970927358928983066416472433582884629562577945011683375384012707427436548926972908593294775868256403759595625527186995311703109821850821921513680135675211925967780881300808832459136603001127108855113290821447691240394707541646720354071062316152107078060549746020823512774975592905889784395954616641462245483072525791439677126995682295858005648514081144645682736885965036979289398118068657097588665256200241725193824636526611104578827256751524840706783097373142616428293568300685268785946970394694609498502539924804021121723851845902059010113185766547611915024822819988442084796328135345851368648432856219641717605576797406878620098663426228464373676597020521874673474978429748939229494122639135909421015939245783731262130863632056980313809313682641021138365805175302019018000932346900961031390418725580397268064076505141715287003158337711786491464498554068801181675565122428021711747643023633139952656906655461786165267739852624880912024172507051089721825338851344563134390832373828798127323862005915550375290224836582110412307846854143653335300991624583855266242016112245414347841289464221416497198056317829360014309951769578729676866899694367969518164642527082497447335475175239522936311982828971111847680022664311190780277201671042016005601581846562554866074566088497222071081009397824391168622649615722426373910907110109871946418670500091850306967550802529227155128654987631310214154899446950357445340374607021809337530436888612927804086084242610974418465496913431924583591156793646478613554601838960139045577798414026995463748821397049365538354616034266163924937280963259181625922612482726365070936390001088916145773936276743914152997177312602075131996914841185464642091105412426212869279468260700376395748870049732618039024874537063090714685543289024863164829070422346689315857190229045243366848165582596562073564180416977314281173894220678261032940113875623024082944046364904882456110205263611887381460266748689889107432933950244221756438612657893422971808989759515277090383887889429650483210261595222723165655371724419340222778597057215703361762529971688469962603990043080362972678189127135691366596035053658900068274173823199752686986307177542126161089319253661697616954420308785116144335155757867543045457679164083612094372148140172775536256904345222536226610443609289378443769207278783569630992093473144954149242101451785595931097741924715472924452164200911818536840380933641429654691572943159940726683308420539968340526929756517247135634759421472976655199743703093340738385311084077657035977414034589923113064319131076832316474190860846689176339307074799660819693362522033316265920330590714542484450678549058320919734701652401609819627787500207298739827605121953108805876817776659675037904110579039588074850326652262877089639884935095882257303124975864926492797076202113801727327722314656344844733544437867223952201285818923063064510391871185578467224988293238832827710798240248792819903209241103683913801495559141975791936019058765993447363621934500747235479683404281440935176341641302544819127696297583370360232174702286825334340365524422956985124176797084048426770008468482395245094140077166781288979817761638134297697295342345774291004605815710898687692669665613393120305459553502000653703180721357880702164748036357614331228650163055298100900847641700832930034347423418533955982291693399652939452646894055538623524284362740175102719372162037649583061599373381938570074593168230605474767088877837440751176303207833273639465153789580874009733842441607315746588652711071115381061410214976747826700552052008785447519105408043074036982687669179215424328660078943265787279292147820312500981227405616756610097551416714037136526889624680170224237611926423596193678164191105470490498581377073074210693692527487562560011424010473384349757732156672135955878508442061990132132988794686512269131711804459870790771943182832316879106456109983688613207960494697297003806740628830973573352427055213644586326061304351921926016406572849108812234431313394055464820396885540159498446447508519379399877400332836904469585201176420748352002184643789785056517313464976475733787373963271814642640239292023133543209941351440381984275229593117485326365721308968483096622441875189691649835796805748025277333965140897786360213158581083625356460588402413434442119217527562572943829975131613572126757047208963236719067763861303249134727793680649416097181463872912828170511991802602352564385327987646052236724258199760036004552987655685680093766981946846203007225942233264193979275587543803920900220492953070886991049627965466658822330921872531906609121870845646263215871702108365453571663450055203189204213301866981673418645148923774280821139354042894377364128218229946411945149494566861320823110045724431245203697318726543332973658626951797330569760092435457683631832623801032353001501833906708585979949817403366586890601927714783943911572144866745624177907594029230329611627188663973711674214696653350256097959992831427022907759500559676529108597707130258046353616364724799752362797781897658413484105331862287052770874787374971996244544502814008764677358190986681581540454830836089576953245502321017416115251695893504513085031268543231800389759577599607369090043049483630344735886074865720288127886562092041115769716075864062760089551753274030356061924006866966496783340925645528321064360927431693731926902912686985450849275988033106487649459627231977687284437768511674482790067985250445815374564435907698965355762598782396879720867782137658099264177503382994821393319490590873902208140574708773540509922199825574740973605989649517082070227939080344449257043400344952642230926205798999179597394452224494240280006549757798250372993579646250918798653706695158683730686362174156606296466348072999011812019126487685564207786551005297791207110471245165695088220917712221756676540196872690657913041478365795397614640835229437824947026459446762382122016985520982458467056029195817450153283003851806946773758747199298868248698224915552273983835635075237475844623924337940741641416113622264803346306562913353057341217817454755897470187298524385736411771204574416919831378689853176770921573021771639952141301320351573176119365414255461188776471640696531375853588064018140392533209423539942064256111889307998481862064514746992709346680617046916780979457895692029623514742881171306739801224557155764161992872458417220424787764570145893347202715641524145097690707190162294697026756239310597899213409206704990250917001567930373222628580414414196381763523373035711535309008681103370637340419241639114975679206465201239482979434697751608461854275707565230260583253450757796108167758178772025476735489630417624375824775849422009948546301256470619102016361548797048885181347812220836613942097942308874222134800716794221867821708764982811602654490718854114866539172698469056142089233971677264516397478408664185162701121477639656107302458434767423423421677331957622588475303589796075802770112286495228616265959424775756516450192167612434279162402155902566613753577372008346624403719498207948823578767613959674345267601182663756127889128976325568565132309983292095466265898155753908413411991105405938946040227746435511526719815836909411210118435438067326030538766382123983069436365308348414808546592777523433412225156337913525668556908658501292628054625954628781709600478520054630524542356859657940366759965660625197957351999140125369228065212148807610771585049462248031058082189051656157146987891557494875917156332759784426116166198465620067143114173851063875964176072900509983096975002676774653939572742502868433758896591221776202636452017903041812928880326414498392985268023284150277538314692307225989681948281070349732131640036908135664139818193924022380565053073991177703606348677982261175793374639630606816101092837773526632419199680578332576164254432703986439843548977730813179357966021347200427847035407056844788088372061971656132862338468637252698748513585698209122233556172212100686885945103151256206536182450643543388465295282116536944687060165149073958659407765646461434463598215830336593442810328863903841081632772119174326514669444757251734216304296058038390168671189729697134436711948212491981236703735175340704335249647573501339673336544780745423745212289386228314555938009306297328496968106822308660923587735150889512201443484080632807099666593392599232618053703264238902303561077106729214130123304222790630004619911531491570044370526093734315382628464007557840864433843113382210554363926796488743954216358180439203235635546412525805305674832424036458999084084926019847294202533026375643780517155377409052636890962232961812231118497529856376769347528299995686170853718810044552731470957453817857495677592723114209854997701255036316971260182133634153564769994438360440219487799528639569053107810532543386526736369324892559338893623500171170245774620913445791113987476926241865899205682037098726484659092591001789136310942990762924202362812416097306959181216275139585100210000277811827466679243366617516443072906675239751866817269793731305861198014847549039157782538554028944574939469883481085567187838559708977155328833466001365191303580158904128482678498165942612391050653084772095137991096924879520784039909006145467412659646587842076093479753394767516703503467885116919183379424592367971946011199543068650053768964899105147421382334041907262716258562510498985986764672817347464124042114311909010107233167857239502451932191345832122333789341648409837809638060537540756921452343394989215808274570370781097713394207600601254310313727370410270976432179965575373146156981860534673745325996771057624240194232533906336171864205858803145831972478458323434732874931294752414118529179815927279046335709133259875403739295583008140829141857868164384744183299125979381025381159449358090681351850713252836423517406741742457369547551963744466687642302479228131789538712303333349445912052141885667885440425421343221792176007845619424268365590326581585435207903932950345590537728630793458293602049440941209029056512190439126639704860887922180894427496705470850088098154456076457731434473034777628776036210885510394110724829315494642435725029812394740964310198472136305470387825005557190078158551231488100448307237902252154090820003759882522183021777060436701725174423619719714283127215563178489443713008232232634683938350194775433244623813956013103007613703808294994687497902066586269375018643238923065017641437895198657536626933331673955992084499894640727720304073377401348213047725357372462410998221445350450768283074224207372577191105084388653147263858741542861910773958985159472128014327351271183688139574941703364090315968328522777087162109246365337318530213314825571209484293197683268216266986803382941754560883074927787135739864338670087761510869676503971297890122741163225413044651730868751665542939647985828303145968933584436890902567961343934253139789657298904717841692074179106138120071503362094483996161886394581288055950152946801381318149722412137629348833708302894773275176108569154171031491505249450281703763823336094084113291717960859889229618786070781292798790447791436237143901270558316587115228430948965235198215425360144792779350134317232184951907748506285209948723451155289326102054206134433411619663930499246714100707326498439386222960783113178056627021569512049718010703352578956817953954330057444075684152187498849941018879507939555063169480576898583146808445725625700611912556104083357184023086617677068285026153199664323942552038186555038798457235829078328312623047177787391940137698418709095099363668330963468886684913516125147855456580299205436320438040013055973472863969431873164899086295056115082850262675528777775729636709082989041962458241847072190481904772960901188805345754491160189052627735381466611163326058011725678281512984872933529984001079506855708069023633662484958962727486877658110741108680571141407238855376038985346507596716646892969844279484719767066244448425506110938959609561780862504493761162701245786059084311954920514028667050258093298438765114679424117652587145190900975394274811915810059889494681598765568165691840984627830631946174528528202529327653490879709616869773238124278605280903272580616885268609883876327598158858328775746207899833137312483367531217130879339702103142088154501426635846070076766483045828853144604474176522966508589719205390414758348833432478232680243638622296237384391928685892114479131977451580596308804131427217791038739660374049177573604046782411309367777310989107942696560979524203183384676919489432438134991508537092731631579473245604003911153868816600587298242431657515854808131809980681949270058421436082048425739478587991462321593293691080963046846122690876543115189559332890940529599713249878025353932141173764001311587173526394366031201908106381212581710769753969847782764974056795629937071330329603977357926369836202535906412772274425721144197547293372564091786411516698674682915990699894473200212938052282104095545549596574537132453952646320808799044326066891269810707923547394114331857094048286311292532539029048097546663389501447619946986106268565705421751313659198392662137141489455925300880533220360279054659620066986792743985774849106422594001382658492543365733685333925695740664387686779967882924373000360678269181421021414070116615167321043688552412805485233062695630009305223090160974207034912857233151154134919659030204716323608560261696793755375541126458411206770786164479956075369654905544759326058776756381335496930435087816243166407470301337320900351114419229313551366309333479963609248316637270388227641917583440878673930410584258251531292279039617236263893760642146036445647205658412309751537044212387976126033868797856941998998708645998507499969155478716159461385284732068797252360362765146237841739104129531664590318416308983832073723932691871877539246533948573421131807688967207670816870474823899754365943192637305725655616592289826449904605735402422115146403588344080799092182539784388806473572666490534433738684014656266191709913276343685536562888592981742975511050030411351574731639442902878171258894662417336461240695135288293889858592431830522080986423403146637640041215850944256340981086021667152696878996267914154509368244819671772027700082869155304369271516507425396818133104378532224322457028022652906995260785269009744019413958591936167389982635917650611489713623225957983448934960063143874175971650336505061324413500536462143904434029784842373563584066827473146165700884711736614690520243683115264309024042264381999601852863195601329649551044879786521134685606577926175735696386191641274151661496033596729474829855323047058080843922291491919085984695655607376428947182196827482102672584376637366562079762848480459608575837620176643281645804942623151422837173977925042267762192677579727792789689922270134549683589803008381044353230308548297091624793738832921722861579229141964753418617318416402972971048751218077476271270102417382435951344000888389489140302431739482916058718628960206986853194013961698671399184427148609534686607314636166819269920675833028855066698735298579499052483543070639889559534098766197305158798305038613109197388915025471560176875982107251969152535179305875741590619827368150077333072196988165366619718620003511989994540758551031442481784028685502490458860102828869417346178661432061889632129345673000825900815013041652672761677765766871283710463252806664730731644645905021690543115616297497482231715127639422489636042704611231567196787306078357839686327902825303729386253543418241951506116865549221873178125070645729131524841827512764716106462644621653158055962609668219044754322228338684398875932464584937496437574599281655396529780797804118850518372521526422999064168703955318544425087413592144791358195005945782387807247424449221572631721077355329883240955517492576789815976656060128917832968104502089376144611514806692151973534578637149524837580141322518711890477221977023555193520666828976141721683822995935509305972134178168618940997166146023315378495982847824802137812874735608492984966211820144284747384709246483400057052408328320437245256117132222625490522824554362697668990566956278324404749124184954839055125574304583709923102608128380358389691578947685949942726506725479210495720287863898472796374466745519956481053698513512500731323621208964999875351202001512502589638822513658756112422384257135966540909296420020634805695160964030949337012215630871977107187371023151876263879784275376658139316768929343916113387645020939574846420905471991970939812184176732714262636319309382681857556296792707758029864166659920778563607801923978712758221324920760607636549208018325784038275103204363504627071511572785041765460509078453095618343952599929243289385879477775969563726392776020325908625881840841989272481072433391356854996496945319153406683545161983866824246537109670758005777225629321023182350080771075558261242608249918407094211501303509711641163004540768393151964389573677518325391644460424364852249186221547155095889301972249097019804687315216565794721618420823115588751085265269985394556384156104513555183255366996874433540506325541176854936360043990344817065213933051087987840018302383913293055145586277030287561322200676079652298377376651512150803291545143038772751907562449641524931800094139354565790410997733889414275897379997618903695681453821257420667945652551155834434366248845187792014749990519920115874883950773395752270095676385978753951036503823747237113883461982332316497547913453271902488852608373775235910185117570811306141957678874550022164935830502972941475978836362646703850591619074394574921882649841856765022066126171302697333166762653084111815067126589795412950668163268854023540054584802751721429321260025419000516675460763844918551715698876531600810415160666528602344669223411589827678212094791931706700174340916104579289897676438881714544133636563048078509282182348203517214079934861838574337511858514903190750140421753530412397134285570341553827236362290854841497725530425290360303799374967173993524886643244206588954119763299176029099621103820935046210099211548432228551334495282489101767696510198669939197653273387820839305602971422193132066685581573294164183891190644346907872858552312077297338452712478606929711397057693283101088084708420454939300175595076104004080084034444305101693337888686222466492035951505040711633222227838438735972428710253325378040434965936932836896652665748183345893068337098245977714564779241996799847436097027783163314156769545452937519202386419182242631295010524417083831691290704289752796249218541429135078868492880154832951390308516773069665345446935134595459758266579600246974922430171681186299513213716871902204706022888781141330753600023655768130207392974489500313131566546041638997097236758035516538437077471880313877365147908543216248342551908255643699063212136731267507760629778990049364592703488501140342391659486568297236806914790704833868380875159017178766642069531797446238745593018351093836712371448381739293026036105599096194610444708456980232138035737568725785494221699384928656915685969553249496897585119658658445999875947425513087753404835779256310069030471675406614168962943473537708008768589316088780467005891181458041968110496444734626724854477034834837865474641794338292145137354241914464983419855315838755396315113314344748161586529174454018954749413686251406438489589468747758685614135763203414039751849254280534753276599751814190736136434099857527764996826917371543596265190969544938316864264229315994652559451600655028818235333726425772868058682977723097320399394112349317052449741474689037651675199209288055019440118974790693223839058191141443675475820622497234167260129350480700323214270824666351649211157007266904834579021805143218736377802519109981482696037163621261758595988025931034415258028835335577804788780189180579227495740919724103537736921699682211710245681614114300953114511019409512896537532267299037789429752205810509135617931907383755583424257323391480346854502030303293065579417456306590919424060612441464321873817367163324296268758964678896736712577842354088751703271073177041272745003766257917893699770737069716825765135827848223588106616570948453276992921545816280245518242001366561482320224797137257155722189891561305395515585666962237013877049458234977263177836325972800825283400782158980253540298387209229690688534923228003371368534426488462858036841047491710538188135712211415252625168407068603089244551150876256157549259375741343668910842717671118887361131725311404314701521330403035877220354237889535164013932149251772490612936992690382279272803752248112157851605619551913913012933742226594739899168605754619089330426257024617716518796481810448194532923180582577255154653866785334489252263839451020895432516418635186203855445654807429159166014170658167452053378388942823463295797394909363549816110917258128685534347671205494947088403899434561769496803473598089101035802868472530210079380919874105240592220922551912032626417934688171675777239361887039179516270159281599469279916489563307621112996819861771084225736723811162080328447819271406778294678839382610356136073593041611042333349830702369976198439480945645696272249945483684333893824223864944309126103830689404179620552984219329324842390145171757810678289313210325061336151910368386758485253655710192813289824953564703843681073289121402976191457400228019869452155036772518935049288679768109928397051094940409663421209657295673795035398597489603633405762989722458907649696458948571926730355432509274689991533261212510467299467370545101173485240460297516760507832233043790940552214509559503315775368908877672505096752143827629264564334033489775181263046958656182416040629530662029780878203701499310580126432367667257619493390341179887085468334966249938771425777216136275531474106910313071125881244614027718704349466621448321264562225460274050793146431335593681416502761846976821217311002585227701902360093656555147430066151461453856771370485114947300681810783534196675974955459087422659770782316578044505016311182267325469026934902076006366754377748859194177099749952083061668268529629544373156159254532972681954220837130698104778552103225781547380571735524697099661042265557705945777664677247810834009807036204561088340189601511857026337597853386535973804652192741952228727439050747910586120755152001421342430281079421456771737884367205343346531410434246334393883553652074694518000921603985639405587373016348293218169980421915757250138349722489578448253365965870648558063732639730434138321689789901600221774637806574450019925100685981558040450888929721855367988322574375981236381763814720354197851279206673330659739789724321162579969198374648778832601621221283628941329582574152084139951490362867488021346896858808770208329327998643661191368022554333149008814323715747634438909998369877490143613531338458925051419565603103954038575639598364503909727924665132445441446651347201994141904138100893322080476148494149505336911852517901113458690564879142929617988142049330305337559659406011941191773489133984448253347743550376969921871558167682506447982193569587786617046356553905421308020407218346122888377467947691016070401520661358152643550105107715259637130904772731126210390312669944253180973505260331278466017479130634626438414232135010820444813180424486722615074184940307607369568635412506559288392337258519914655582267440302938667311163334587640623054912958078931050418963413444939190091545656166562441237442005308307244012976355356906526660734933152573891521396261633070996133366233335404799689394313283766894124663048499071726469799697521135211578549038020038941233278283219415065803212069453833220376725994709389350189499506622393764499925989649907850900474071220201064362459771948436404940142274586291745399476946203405762559843810869102795478109646300941509785942492651223379634749437203556172144491840252291496842955850769812305557226319675695574978284926808812404035446541988577533607622473546783419196915004884742099710230939217205028337037704718278174442307296974328207453497102064173098020128914290929104388465039457867080841146322883556688952656660259367069605264074843234471877677087368461185457869840610037501677864583982181972596842978503650962150736698435708853640223579107491231641240099486020017104214114791962919061501753451413535317173129621497043647077549202945899027554806423481290404530307191114820436132336765415757788992391390914298520180656846709554954244526509019888541918170290988717989436114423110772645417159933074706627238027040425068473012239004971929989199683633192663617548872921930034993865379311711889045737568596460396013680660077753631012232248035911297162464890248736125254739087700656209612678646724123096141111041717360451664415911059739716429572230443854344601211036756487252179615522878078872413516193080102097070917227293223163687689129952817833912998971425934166083500921464294593760550664453809650278597026090443035889200706966821903734570445454298802929597630815551072217800484800263771488610270273355304012641047110261143946639275323197384031054713746576041196152777475391608867684653270410176099523401834444986420751734570835083825597600691782038898795675798688517604316896494505517162170218910271963106063732433730735064978759488394559067797931861982046684643283697647906864790802378592637990678165943551061758535902440274838076734668902780564757878126099149671087495149292488076626973780101800096817775432706894589605955064736377924548592754809088984997629287499164162658308559427507303454391457331623515532741845968746857291130400453925099430355302925390351586394116175420565807493790866025967190925608826555952879248217433271140803693116637317410871011969118468306479940254169964334941783010594628043103071990214179135214861721012075409480807150041572700752869774273137262880136993177284690615768028814442322006196589091596627708169800412648167769533289891930373616388422169544849552768567521432342721036036823034773906170263740526884571620963245999466587451584362840684585771609623000881671499481949913333188333213729349361316153765776985271184535360349641705795755773849615828950231603219719638707367885179048059761876804383731592139966317992007738738442566201605768365839268347599736855908823022580340661905220190439951728805921916740777605407527839813874375699184959718487304950991920852370216242444640865189785182765367008505156976515624302596146942500844896796089069012740765991525439947687968364327403188123598397065274381405041127974002250999978451783363096283677065698938832752572508587411718166741872632559254971246167516328643886384253477771303498023597350778271676825383683198387642137856013970999758086090730175079709031164156206745796272383080514301266241365566319531798830342766044026678460235288437294316082120710606097852117110181492616408595566031134656684392232068085977247615708999078798378336614420063076364733363296000986930931059654995129794128481810879260454177736380442973361434356309405555134987329854722800600973296739728073017445900150125193379313134041940952395250192728636117989944826739050228935085237632048935523314044972252118354038958043641449429553490923518814881302970443451963540972059122346509176123418669097192134233248178312535927906296920906804425102175271922169573569632210384191047108201075879664378019379382094712425812078219415485923158415090024028841568192594499025339842046345585651587043828661381350339731215986715482162195821881576292027033365105142561165532228947825469791250726074826177719506230914125294284317932383343556763380010471903405255455206874525567215131196951737263141953744410652182115708312538056626621260081502451678876885620576546311077104280494432969551290598201217667244441028759829095887417839246916569275021311382161607071669549955182643209709943930367675545847746729258385892082680232933420034763654058237892359925699248081278340385424515010873310890468347709161725481613575494381967629562121175343752040133316349696596718112601515252118595480416126919376715596161367781182933419945618858735321891807975493378235338365657821890420275765977956450856005465904501725324741951180405152335656579530357324482952719774437176881266480589533088083791673453322958715708924109119001369507779407059756319149379514795588757681693332535400876441708720569004887540073658583248185909487575096172148914759467858411533257526928151713905184797026674223509287068130271412661468444297762213716543112832184906706423396792272894026692442695358514803718121270205762422808509884097039298053204291483457664286789316338184217777217366594556699515061574187907396965638827174357334517104857928814289425365459832533635590136503293603942981091832057979364644556052667183135217789874987921788404721841420586246297344369649645820159026948145631882288031551520218871984408392290915025629046499573898771243245554742995600949651573510545353210506342462986415967194192104858702018956763243715243322382033920701543689397306559750935533220133082755478968667537883388779340189447918031558337554348252075276089765650212275855310340148672343363527640205816461776643413315101258106574055248383199695388357218946137282014484670107187115447842698695615244558394375502539614263026576196928403465985951089531374279710133757322979470070514192109370415415595177272196862985019176734812043426521251738181945154101833150676863224688755404198935067172122483202293454504542436833322344414985222197013882122711444390534450587587900529752977535959440023236115942853416630426893537819556663151969167971027069135562412826547495848717377066349626389138538492569350743882326131023576179774669605582553835887029640702404683402453933289018241831324345482244156136135251451029658857982911079016023704150887990096676613152619806308764241932726974283343188698920844430721150314623038685941236946705654840452645092544941837928362438199766395748529847421263730157533392351561639820931007225265682072122336382044516228795038110787921143973214678232991446526900389922621047645424312516212798051061374671375317863502316692834785697780875783236151675151050307101392640484769158401854070727985588759846637841578509062839461983940090933000488191216008306018418644331293077859564417272496147435967850273764189916093699422704571340827440480530311197464707829097761242343999331280525587627321518145930982081062064859385589076544650719407799876648777515076088458699512022165832228287805686260793840064093042092821947913906027351390504570701931575936058578396243818018307120053124017246122799639497190336701556589652993950330999443805963674678352354258393789937295540811253629291274487691995373934260668637931313259014972818895422619062384940564031064059467880228875659781327774014494057969155523829273329851138329537351048484798683566963687025857979139697074698668804841240938311251582420677561341459550181136196216787520805666951406557178017491013768111575406339701163949656097588254710214408844836082679417192481681679888003799213408560784330630515260149393180461378415491516603817831921381496054389356928161821666816621619675597450782434296941530865614004359575941150776532831432984306147124249106830430915249839466490550157939148136451563030661627908988595073892510923355403362946418665854430644028507218670052794731710098662819866605683664895752271848810904485644097587989632502354627033688824386974493630909237963956449149824474025670366988618847263584851187664006726356358091711536858608446809567038087176416884342781220398586378498574966711302323070960755773889953880552412691004961272576747339765018087197035769612488361747660120053257754883346674522218320196813982308579825556956712553840943258948967304627741730795399927555914107425657933924790258054580900299382187500513175589410456539364119815657233747333098786557879570362610738064497424985159656696644385283376959045901162721158362973237770920213006366686346490621912549501664201115590406907058809895316024379151139053739500091274128575833601828066449110321419690031028541716764642467925063053723153794259791988836288158359928040998092451467071544252495856111837802306636602381024543796244942837033652089999640636557533668391674014828299507846444590121386314522506085499032468853527666276809253265672688859913528377770403021542869881645338722960742629038966344264779001624764983852197751177854492123162036338792467057108591792389641425595989688006455824221257128767452914275563764912644257611231735432002811790551698442411540668403178936488365485642962349904918969668197332131759604485505150353882414401985933390209841237969426950264763431139127340393850101620446887315432458064798399314068181360497903870936408711617114737679361857982436880658047265933381451389157261348131655720569264113789147842114844819912224264876199776533776452785489210653499107920492999451570539450052557720446444309447429463162172185635942682845455536029293402431473595863004066880971534848369836790245075636728902589685964536020904920530674073416960934158857468536075961749855168253435672526981654234781792935081036278785662171419273141324699820617450927716210993171365914937697516841201888534610801237393210643571097095641253442763869941389000647545700169809318585831980414927501217101587153335525007908437495309095844614924528630967330340004507180863789382245376334441585293647236152348853011550957249291876663880400970195856802902923574906507723933544396640005714986731257899439080232947886940793414416860276862705128160885858726697857176289572022249614049431576352068625502771169402908405876117840212104090057606011803050187559074000336085129861039458843280506478967262119641460911072375875748305024036487511500677377967933600516903637198305659524976119844492768620302507764858165825542072869340350300762448776793692465775258624675651754863488308333548550668517748159438787539242335696188610082981520798418581960332594812762989629701730893660202238526710839457874250900138043002531871994915024019775513158347474874580160518202470374874424132733953440365135473956195256501409217195602777631970040698116143051356666675754164027707820505734104711271371599002639159651609776883172374431176131337202181056756222562325776367321740170640906605178107474347267680225085665381271721117979466154784067778127800666562817296951426281700132567633377385023938908755610274958614216647595797116635293731784052627734758080679684042594399774188774358381405805280536843750869138740715860859077110999339528136380675606584799815125169797750989048431492791540058802926554217412848523419896814670322575117879071742484483795328265434493540734821121662126900276911204447141116616889324538334995839086878221429136734772536442839466993038833601542496375933775089802856319603353226783486677348722670284009569417374138646111551701670497186033257678537634128878330278828356900736378380480892530984973803114958464147970194200512462495290658062769684395899596720172840384517651845576926798419261720310846321589609476468878831636841344414674744090048190929530251470982995137021923247191017983422158581185314936523500106151692639429036731421085515749346205261867148206711054614369654184295279943017699365324066886649538073442435316630334968171014635337860505020565475616053332910565971290964533122132215988896632124879695021914869012805558162600602452204307982318806552146085977329639520801221551273648050585211428146899640821207469956437095504278216178580138105148674825116360514608144681278638203760521724921002469203613530333561788870801876416144797820855800743805491279675847483423071363996050511240888884866406540285273481018872690654825142051942339247030798400186981140400072721706031288736865814076219318285020835952239821342364938919050963849542009405897631842774558068375587065470479978039290204309792371479805057735421562630762825699774953085320455612212017325431536674037464950226678986680448079051766024032093374124180784654660260836527728063944238118514444343727178978431920768822704718956437475868099966235644788910787988311843026741631899131975802741079061081595288419805012552782661753777697309984694091113998377152504345285549640376351078984056484047147584151768265222307592477146530839244816348954646458542219826850140567551414240566788273492037687492122456083605475508390948267448615716747481669296311196041207021650493913526640658074888662458360907383411742472609627375615616815403235409817451025207881463644195403129398023172060471676512944001128191546269747118693801401590410791290826299910461645028536299075116874194689767395385127999094102964323909047986154912237601834186109023784117202257719737717771259993092433628492121463656285507759309923248246144239101544670857102434612706248745441861378228691926130472806490901199270795532737885845668076173252998427628493875629140774180248044034564539515648125736124707332258375966523907512186581688855139120142379993755424866956578544198268615581084909666055814188549503431363937938563488729101403581943766716657249437421246945656240915682839297737076727568668132009768035276337162115031625710700658040152226276565750581921454962001986847280927234266467759641551475983854019949420825224772729379231120319989799475386911833979751790393808422052809940039663384827271710120223895241174075960064001969883580903367701430417157097485758524708286951209029555438721482007741294976799232584066846874637168429486643345855607970537574654151276012580664507829875325273928938282259163694479800352074615567891864967776414756047524035184219360258780436506736712427695940525604082811573562547019364934891589105353644570418470160756769273968734135015790675385093903281254363723380145485503594860624506481278263862508024669389700908229866462198526651506651543795719215356749412120080871862974616081879062147758480114894604471996024414037589740203003638950103022321164210797962135508070406436946047151354816017082258053051668489839358235734397609450121861071605560175733215474100810366358190611688295341296263039376012265457154762971242914624450466042827481615239099682418749914679684446128954243762039384111763088508672432090029545761996215168388326675991403274094006795106688840930960198028456973913934380540829114061944674009570499837051536199945551380298167440361824392516059218748331789853180559778990384969612748457290797828432887197482557404058936369694195487612226325696706144559266830736154233986851004196894554436931175812590594288703460904704608922853419272388917202302510240609636634376646127261607478926648451818131347490948583652925479359473385390391460170201677444756480589601344457930832543109403432738384784329456298730270066450178988132199403992107616940546513257626540225322261238386374392441908419140154301854053971688718589471633502422441282547755125147561747836099112793455879703712210498358823154689221696282854302883468254196196048942736597331494200552153756554741512512709098767163257237262958193792941419643312336513869471033858236485793062745748652099010437774169244890475190043166569253615819398932724179335019209535343183501894145296685079115748640101895271479111885329946168003120225723330255742076043112484527154130088174995421090454324788961822738293529800454576011661270095007758868741766412855652603297867498705087051389445430353507513555988731155320093728757537878914578856961387597136671149867339036098255406660858173538502097572272909388326344361243935267710731107586276495766676686452030066680275502509421924748412034580613114794324829565256719382171955102524200808038809185147886167379148305816790245561136716710405289714025619474271769717706415372489464095236928999752381100127765351612097497783027072964302380007532261824812845228867194351739365654452451561787965970653719786506282436093398255698377863965169485607873102281970473386758876839857512687301825770564860092110902139033889707565697565550172253818090068223794571832761362011312570150377372538213982924141342805866659643990517674234615584880219310953101492516189695101679449429290909307492087601391647077332511212862262685746409583727583707072461697425055642499563026006159617306741812988780015692137691148196597114412209349872543933064683632926187103181900847227171208736684112239049008634398985374948765347043264748624291608713669055182654679569007418662073267214775709522874031514722667988584482395274265024666399061390095592817836640807640565875730470455348401887730639591357746679128504373447862810045863763915802168849217195477539478349751388872525028682949968001107318859889517266229692300919867259310492504633143685534525240071790603463753914472250486796030780013497809838920023683419567097004258681500431057517762348693512620933468933047075147857147753057034083015986203147680670066269382815198395374050223447875037200223629240365928445809778505795707423657110508767952005767504796608913499447181409850350035827584085239250666741903913189693883633460627388561983383508417671334806694896491473315760907513588534360575425094756119512157811195491383426687681305465733139773151286736799331442994988853513676750037205050185837166349997059424534194630163693997924422026699536636218739203789490751094159382858739321949163426479643552138659233796996712553928293676563384742329140830635968318300726601003803456451328514199789514372836320901947873256278177932795896285643468160579274765264797482950117556474771436965889278682069323046496170108861772162264782914572996802153463728959664434262522841762314602977313546580105864908552053704052763024946833926734406238719814109440293947984406440993375959655198789420309470644516013128211685981337119311654501600041874886250978854616182685339755455068538574707400992037678094330594528101268463871761807025578456317609569250865437700145903966298597372877197515741528617995651896227155515368105204732944573795726617962647352707184344898906220320079690748535990477957818763106864046044278023627922528481601456962365875740961657043791654562989609720097880861562200804779048938685223767072691993583614714399594925200790720845221045389331680418702761787120807788528328721046527683697747023310495896872163944247406502793448668904035842258115541232645034933260433599074540288589462323720903802858913241960472836720232570190312612493647097846901960188293307434282066699629281900440587295000205604200892564745340617170239006143274694255085383681606479019931569154126520240287785110117680006561108067155692454411216670834065601753986367918706036986023628260041616952810391640625116768117036029551086960025536979638946886591496620789106475403397657066137623561326874664336020096710832569926123384852525016581645421707100636238299050354812511160766461640642770539568241400922683164654625205306073159504622703587476261170247081551629301736384806163543090787549942179205483777273826081844348806811286464367556968684429331119127465816448030912070605956082499797743099041032345067227207001129160888241567052310858790698147842593364622133903455979393506063854956072897299861090377054152083935037143147489157574783128608151319170997798157478457012254385377153680251580758486519286858669086249546043679143325286362503309648478118788435065833788147687215471246504436742530174808622883750610927532839019667461688066330030564448966341521844928162696771480038674316859215199193251334791340440086944656844172130524325392491751509878879796786106074495428358879134429415577705831571645011889128606137776267656276487931263069581085879074966736810346312383794785718650645376916042957438484193011708113939132650018115810969511676821289213967981083581016341396353552007637998036702218792510727311391253237265921475973114652233630618299195904483861904801382304849062961603396180779189578997571014717699215581954154097230530545659378943077303688447934546176360144646725896001170473004445381512436393435611673134453187822560450434576334121989999296407823996259794772914942019810754517259129534062171861667026694550737820715609255462508282994931745069575972140991261680093891098235322892449911727511790273069945678960474669790395881915707975116410951339198077961774318414532271585829639093800894152980114798783925116843220064869021180504142691655656744217119681596195989786618202574523607374279011147647526807730477118984262304633701658952555560825977509094432275541964089478306222833678673480096379907280678596448666725839540866124338376446902173997594295050117664330003565487499997866763014169662567218253134539126579200132488414403150966745364053815319751001426421726528132577400705516258773624999425826255902468743875121736754546320290349175164781109226338449066870030096466139356284381663565759563332717037964621849482459866794591101884402299040368220371439895889855479862111115835116010490657647173870047409304515808756714845765753487105023065580268708116559591008448507428161190864251695247797952490737943758857696762984905640921986988926802047665785065656414200974291589606373281231539900029147649405191481230660695551690885277915726502798952061318569246388201378395536698508277367109181180231381778128579422529831264524147274235493326139861657170510037385225081187683088259140281888582294706158116178851965887589071015258164745784195042783159649586093828161901155734897779221683607263348244920465325809837878592309652170427053275508926164545896393001381703419939981833022683060696593931557130958086269154791292803263108422231123511552531831025935527797762877082507340700576036881062432010725839746546347082745315350016644732484554395038479998381841161841732058501491467026651316945302998583074379747708240082891518035559660990415209332162387709022967064343618240792101876778281449853066651511163711515125103567919338952376009168582492483016150302692495635909640795389484394645652275067493324700328926055391997131318630172002369508288346511765232040767050002170375834022340123398081139221562577727840684844262128906005340179231642999632833763923101999274312998145107580431439294706697039550241909747440168192068232037310698648890273983362421052717322354706526733867625336629500948890303479738617989031960703533273346256410992309468361667382592998877149247965198137537194978350960752414170058720473151636360240631052287368596055569571842805077168225677472375123734628253945852577066462202697479504669412196786667783124136847667345313584929685016106241748299766995178616185968390087211515988971605581455834997566345426494311225247143937989832980828469141619770832554962566367043236013014172823303529565434046171657684981430647623446055353209809878178515618247981586864605399571947434223650528121173127139175483565340200310007725504611368677322007296598626351415035777814747144628807764710398917040773370960369771047244923895437876308130528857430577463825219236755002174626380570285339979336101460938503071905814058160407150553004643420648256310478474192945294630959687887199912685674743157072106790678163080960659316528771121744946386671080142969282218805951754922797572416655094676229964954900739560691069049614575015811415518593662229118507757385090026760026685143104819354736979959752670027318017656109414691011645036989807534732147291384871215235652000196208901212787673630176124535075270101350503307948135226648060723541917076430278589552476975727149496555614355682350173448661998231129128065034707710285818509347878260892264877588919953049172038003637502548764614440496455285804834618511641615031861775513048902395997282143418817558060373117323689464246558228259442193536718049015485787213633104128545874215743043667478208525020766411943666003273813636031462313803373033773078902840526829495530421113686721725223901193217496441732140190844425513889549201793534573952781333357520885108361952701725848243494783355007411305707926299952789123673075313306903940704847865393392023874653394964435396393930003775846627880161753702615676554396604189103142476513874541990434891401629854129797844945778540999292362314949321184399214195081804093597009784830924086465414314720045799711424301736170441129121779611411739874876818755781087461659063043719824322913032905768017651300815316265621384003143075723926500762217377925962497086741217569889158017516115417264295268125865371325717831882903249448324989819598742783627089195189151485793868723065698355341220243525896532270511764425545253494776784595825465792853190409593534952405568397678219816268706295073934089980691095037304039279098595348288391280252666252707660121707520990793618621593463666915106880288682717582044053689839931107969560961614222135557697158595741081644927553244255437019658507434196179119138107196048495621304961805564981804290502750272292109463642959682768653885015422129832211117045860925484245081622170984756712071854152703135086273687358666964353623467710708865535844066441002192594120809097873270038100096988605558184609227498527648862501181314260214996790986568846784392116512643906422281582695221903069450823578847839811446457575537896907619790972407806063738265234782470371409482696751176601911538779076398113567534634243381632054261696842276384734002311857015479065070715999811778854217483950353074358146657998360243550521892719853491766027147870110427681598850032263400406036427515347894988643413531069016236422853218291746687044929631850512211814738632563940277474788227837145948390482205418644251794891648316412569347442311566353219068585844950522503775566010064943960645521458834290065516367112981663451557357312546769161808615703458447988334091332427784960657313249932832551979868536149305836464210548236857916192346548942863991827041497713063048181660457868166721972907044117986579508018498210236353980116768574909053604797397868550142222781450872018166270931135907748432170963713649623187726787007351636334710449709263026448609824155773831763535925469128558346715857415449684382275845908916686204170953106115732728284044553839558896818233274541338759292802271216477983364267126703612374587036396195064043002568373046744179046911800303627010502467711972402561538718923164964407427170545139794393562958219431616139628816510778975066580392663381804789642831840197483093823200289488008000719883697329044565876208587082456119552466242187252978162584459849538657867043426194839586978720948551530948960712569651303344944677117769664615701966498649504287334039582838480932606277956678839679978132976255076717729238802761615705614281033742850257295036490907245729841484452550040602839992880515276449909049237012972933237949481833735049653488202878933160820442210350071360937605227242426335859974007592945709335028183709282426121551819775672625985349615645785590818021365609316396799962966460346993765109894113428432790343099577589443313842889173361828525522974689517121851791218342379955448107731942887266783498716822654128589630771091707914733644993809796824976231461478546536935726151685570518686574934006917126363575028482155584602090656838087200627107812491250789911074214444220959130511968708542498632987658625426231278452612258658109880549247583920793122436573666721616109878682569298753434722724840066168052884408416213419429299562326136702668711676877401901044703445989375503531613153177819158991924151879062356908574448263631534321883938121730970535497041217082911139031480107059917165198833185273535918877907841593763182008797784566254598183679898373943697917688987324248350824435288296112163386587309734093714227116469154491324253285627062977725549031784049258576002429400493468809107521445353420422011891334910869763346352387357545796646475543208637860446176767025326308657691390918206880877547248769732397434919003119434999924936019650779127710662516255325723729234148719281072395665576554516112792647554195020215545919721255091469747006837213234966703445524906614828078452560930912791523123430547439281330064451910599777657744211503785425245518238927220892080371178310730922162059259763844928902321737187302135775037576641537541082349908065029685101608954816223337052193468903463000172670402779798253522534913244060604090414804946323869512367558272289769593425613698439704246662637170208558646232992302806833852981537895930557221446585567382828328936984817718680330809482701453101682694788919175168093540882149190770019737364155864057799050432675243962641298152302846127537231288623163871469809535994210830046159048379587824659857779358162916244809204195571512904954188143035577689812521961465551422382380749095488758441020019441369260113463245977841797637561403016983269498865875443260787908046539090898904246924107234916510520817784357935907681165700847713254611594105064775541850925975303906898834532236793634209322117546578798846149623758079002649404850089592880140817647421739154664640282746355302447456318636846959387045531107248158760558159187273595844287806714599441659182421798711503427573307193931492081870906996566146560287996239179700744532776403650891569210904779469095738570196537568741373817146677284071209296503015987786502940724448736717597152552678663443837141536486998139740395864303665667150810478380482849351104135623538150755860586529890028019948313942308734678390861345642400032949275129884124166576075326665077092175627605971881768650326673571545204691098409955241294683350198792178403535401660830702322753486835306893639884247784768077508580785892706855570656705883706045391004982643173333758832147713315394686120876574930046903878959018863268616537461925606155599373967259343362692790983833540549007252631004038035132588865975233913338384131340967227283731792623906785065908312234492211891378553418826887472732339837724935034384488719807944589139019084392454587971890202874460492824747445759548141731608669921265884070173459712970161976481799603780861993792204197234254326691571091202507829814673888522484761414125220279913936068247465557778797070179668719502828765636679891005986500609918876950290729432515130752603585310836116230401262413677516160693345830336010133982160357222238285620180636020958837873556874978921916901824477303413427050216539881133761869712517932069361644143066599867597497290852350763490545067896795122555790858506601081931071432878582141986527730503024975364154759485035541077917649338912441919612743520753595898619983906515705278520009790016385967604946510033228559886073637469511428811996521624438767952791148709459440696105907423723117750042446858013114554625251692285360174133161224593303765500708805419263442304085688207759301874105223429565317842117284902888606716799923019518304329783942873546711576442556157814379829676861468532149116371102165995209274584550055184208636446739231930655143583127701610301495360879841585273192441988286526525847200768065959883140916013435684814791027140507452468036357969460259857702418154517708062964202228905611316490328999350725763540849365812665532780750510446095713466069865480860673823757618085529867654993164715184552985892512721152928925969631847242175382074356236197604218664982292812033122378588858803922399937093501128383574306030966089558668387564793481740073176091737041538139033043174604867544506595447304413507137137689066421079964326168993750657031549479567387360527846934367168825798633805643469185624348432438146882784951959603106372811064814040035072358362621453187378603604967319683462107052067476681748724753969632666452977517293406436760761771506319914425959587169669567619358308871811893271267530254197645974269057148696112179589627084376565147428724507870195597310504753189168954876666998501807777785804602603007565149733215065041694643740340536555157052247537733996289320970178971950869407224102044080868709093168238705940155000692830769216449355150565125783177818580879403859341525224580622579388315529362392423672159091425892726049630913433603870001192562717663621502556369857067857428503557155093550219817702369314749432806190905407844499899629640758362996099909369461635920239775994667432608578850776655862448479623723620480836455241692374814163004484017088604127384479686636142008076749923209075471676452431130973996389258604171487350011995949785521324356073526925640404867492895963284622622523683873931280348906623314827496765093877232979647443046478466831452679938449328145288522842933937254314471093332404798494339716644414993626132797243885254493025493043065405436389046965900747475852459642714848366845561893544178694450206176998523777767620998406067707233530046790163377938325072105792830943107107119005201898116619175895594954256169679838373472735880846681783203881371154777658237566387067230397027048485677228742250330693070429947309902854044842106687133235963635110340069052824034857345745878156415970323849642573463645585036440815395384970070549713178664148174487664296371876190863044699215762888457752871797099938886014562276238975404655892676213107546558318776067784836752978991445776896364201050610681366801219688692182308094773742732108194044378439362876877353172621836111870464613867811943441364980486712155687849533875345079686469792710261901808291376261317260186868733953416257975136329753915253062783758795993764029614700513808587753980375596468286449107077120133999258118635824348025005966946660185778600516539065460291631349790002404576540408398735828753246025992739151619629537975770121468107470630514382341770483996326509783081221092316282444285580456065917197604774740461378955631778517584234555757095306170039450915248023819629846931141427972285776420305169055320817572470956519989096143283922990242672536121041870425441013162506801572477264343164857815124742477748271205405337941489228736038545332194310301674801297408606224811992345867901993711051215249632885515664981461285145243495894112772236253858985467150233803460984983231693990453029921053809584519141600472363007797136033802568842692075697704896338516440487865806367843314013053962979844859169263691612013940306050278686073500434963580170763317511318985662916998622936026948411570850163848746093622721846329201132936556588644145812796467701995917039326536144081593558080438851640067021532416063366644780596130917714247442940026273663839361124407204921837553813891919842836575201723207107512931507615317052680187034253093067158208759818890361044792065475191766176993532548655527229051815427092392426866942466129362125046722633196120666927518985850795894581384914563239959163769866939773769454272772807676206256872671528997362058352296434515793788224075715531979293667125791379062802465394424633725642817619543986483031217788560335935033255145850603732818495585777130935146921851765618935982144401525294889906673107170526586888667551399701010074042213791284967942869216464813484097477889291371421438374932664968020222259500273172463339835758252889313536626702700909904078913051338580673623907327358852495359682964193146167808373020408279759633543510399676387040542390790125176807935269885962965692305962137840972367371762361958451517674069068985275003853949283748737355931010718385608438209776947029861636894037806050909819760125172424815978265166599870281444708384214717056003835663009561292770197179465853033929535695004195810917337198945320363306557123244527823446035953417833872024915179626434384580336774097374153944945908603221914315195797803500413515272919178387659717967275054246082430361853700874371310783838398433324851819753660037392817366873134924926774402812198414483349384248883546302787107688315811976567395187523944279985693431386064109474493376998080661925163601439433054058122003976974293940732267623858308928896402747600818717591015413973495152763250146875620287281743863526221958266975906809680199043859255663294095316635245573397298013618329761049752047093641402955466851138144068820894386697249916668819799362533869525981698208230714683890367653564036133549037676066349516727778138290961197578394977344826475290287669868229390736827919537534450572213223751461565003689510457555919457997601312078772967782845606162814774329976216743047183937750671458078212344506298654586305907955534947621907384159560038970128769378414865020905828922063907461853288389899856379684121353824044928734003549124870889534796991933552669813441432177575619396761358266568745701468739953746146472983273444725824613771592729521124888073357116674271862410969585335132061900912741003445976645709932599626429526134469775199799245181826631916128230610113617294975351213692503148567329067962635887914719515982104653697702150636598039515181629878095899218429244882495415568387787950382080793271554081285359318070738655396892447798324890859707750476726583121881994493276176738093394097048195395846312880709364562269977709478652843047331896747950158442902921476557419550461884242824076412445580867375795368693620045874060202920056577946445283945526546034365664849228427397699834978146610038240435784053947384316137625009742012500847918828787356627300700704901818813750482124102615945492360370957375697226558758024233866292497516514410145110945830091939364173938171629449184007259602423887999197697392869031490400354657032468145589630362361616685181435777306576802890384087265616100365988863715474360471785045150163071941926421890107081193185410877473000940871069603005516751561951075078765209908921565535309285382895922624182747321805775780113096561058154299474309984259352945099220014479891124527654268412389572514333762105386741465480300544810506366028372311591804135774284721927957889005460537733410751357977388398944126095408377954089897452979089906907426005985121680890719205214770337866296671614116628907278494573423277536887898554454171996997165998343563189827004700296871631536124123614785881568227720201976830867523313134828849516082349271681591066118333021971496270249699600542472806125070689563807789342199861838145625109176455701176579465333366344113924336257434632371443265125618147728071450533463848455583161804214284760320147928542592303099813566714496807448012264649678797847253293314639296938897679948321646783475201360825802837380080742235551687881983315606523351726636544124501211060726366754569680170788942069624389142717257851269983283488876838593908978047726121405924439513550899532342686471332988434111677002540879324762260642954089634584706487265333423569795827754778621715986073474706251398716883598734999842684450038371436807288411538041139529000499292272075283901523158609381282050711736481908151876852694804962032603675349550836905923971095044426461679044086788959832304884754444041524081119567286897678688409403069160699996172982513571200354718217306738062557090101355118707137769792620298033380168756854916717417836522856383075504419590538505505013787014344124743059597321307777563245914173445633512646990092070072574339725859772613005393126169552251813485624902131719473488556180225556722186383365625095413310603166150113872379189586826540479706269700911832984031355283631625163354300842223210879513796486078068693201670081914816011306585248879757417346307691439411449061602101033895752837989929281649482540182092525843602794910473426290467979801343745372326071361171480004499158478968074208547260500583771328551727445228401462790173657663029644651386346179208457742892378218840507422272931277268252380372606008963117726901678459845364319185354005241995234375003707148712155244913120214965886298143471312951695285354441442128006377610311628758637175130837477098335082484512818048372715135514124861755205380175294404654326935226762253489920935725187325741235430621084447701279859782275043220375349609984494317259233679338590116965117282670030438396874483085876063829018394170761512378512255467485513793904979054707806860458473876839222384770306174225405293997764078502526905917393077436895378949970738255012666366408173180211378544223891505974242074978037678743388817090612399262772421403972591499938098974352002989190708644610192497589661247055426833266212741568338085934154977224721864439171917009358261379318502719043236085057105106346866290248669448205135521411326742768641934917739715018871449511902631549575221738685346117117077705270452789113664047707661014774534511364959761690425709446949830049144651806093657578941771613438620590131133736014820977793166747650824835503288911539560893412455372330748534364048214585254496477181147657906911566840627537943841266184318551371972735484266547283036850413086294566310481419463908078323820007174753627318451554261135511915893268240410223366397175720866846051420584983787432271761399114531974484256466765880816763084315875095968930163781594702590174243348359907829133621862804656747215369095214922577538341331654245820827373286389639324183881629050603595917476345539367183520702834913554483189409289209075261630286792066841536860767223895403540646546158022275033113041197389472225159895998223797334420287091616479572779934678897406497781922706026393220928268477319878034591152665531408267381443356359295887710048941213578936251287352216194089308221064902741559857425218420786053248682514708495056892286250805214002661982588391067868197630867006444069564352593395929845198593385199283619873722238154227240156089567595685938872482282740229748603375291581462359780342966775012733631900007419648251903280532201022941163752025942275783097212637022501383644774714331113382609258336435435652485827526736636452102995007155585497939068123302532348535019306533297820913892425827191171852616552581417987275222096925323127019041632380156209062786897462307996820047474285981126358653822793248176511391497578905592148475454277143064398633150011164433394805849792447652426517210582805071533799463740404636070194380492534090434975899484389154111800918062924751497844709459002333180171297753306580641994098779834686688022009306505389741710679938867279804154862231665045108666479276328605179596410616105086902940942327229061324714483957483952255797133062245585843361359414009791494300424098575846073815541205300706719429142352693876832983330596622323677653316048932640330202939675157540694839345892653121809187344625956580519031462280309745272767075329517025479776966891844014559543717706320185424757619761114579532196197957772449738637951514786391327095780469318086733118180009575640811261937609370098206098908687424589068179710733186171857148898144502044135209806077634606204692337889529882429902405057667761791244167529316923684197169477711289894553125242063573968916477249799588200951363032097423236716246548023411983544795063136765643897448740589438339844072704545412505990018862630569806358420280662080514635962618569056241987898072723973229894322284420595600631098655698971098886128742966749443986059012560072926183036069531406880231041694484259769837668031804875194886782037421411980976150465638876035761652936335193131797126911351465668111262989986494097370899848359756465874516363959960479133445940693781734841629681339515215539547504213923741697285702421208834411851984535387961862155837685411857552310568483805709038501668404724265009305562473121265445484414552482231447595407971154820645660777507536213158308977862193222966737439409624724692888195826770813332289800596888619667807316766217002522509326633913643009257054762590620734476458363199673920052360051110952549782057876786482905108414953474172316500834185865246587118476907953580075414830050700341222974129249203045557380741709565474745602632680580105531419218085206517231431498257750619985293496205956673696613870903197396736765687057936449207398144214134460688413070653570785608217723791306566663139502898198752522965791300988218466066425476565606043519117096973125861023205113496328448192530198766688253249880456378167783154326907671686068986386953842564519560331382365484659737552247838752440293546782162079879227230423521989455021598901137287270078288246562816034480013116358848327271359600191391739846971402170494519355971560341314127679379032964262282569141590532525246093811264393957947150587704175800710306320377179876270110348381117997877914690049927591687758474439995742333280085714540054278639716734383364254607473539766068011950036626171873446533816749223525956820411895678354286793838133855150825976117289628717509738827095134275872636991689243243359894140984121121646824519183982745529008058507583948399334195541411925907830077530550864515194856834231348675374079648660843237077812067095575708495732984973676640957018842880936959909373285424485570781250540498657799332927597939822467717200235328762044483387277748230630984406774993912398635974293393104395758433320601646525399795414775008747342128445634230215478152052519371812298729279299854457657455532898267404540152752988425901427469472526892877122538310801653689256342094127547421022233131855502185056695895797694417593640601976820068955081083232523520303801918860022317008846599337899884909203709428687099299319905922979059125428404556093716099217348074847530968894058642614569795712644567030975517348628395281726096443286378605153630903834198729364190889621835307313133281056436034928957665332857818992026748891981018935379805349634454630253708375524090839267548369520297987627738225412275315180372327500802282820786659481561153733897440693513123687554994981977382617681317522156016783431935300264828494693739822669418923249428851708742432429003835322329908041844941397990153468065258995137370749966217745403527799413150545671605628234631997409873879991865250499011094847946132847834924433226478042149325756033970245106904565565147956363385280333303400272741917865167741405567998596366894789493787529680718260046965477838762232666332313387693362820195197413058510741899473116716159370719977222471367710193686068564259270370031034157615776960534249360435350897445653697320445489573898777594551607194266580833180852469373778915196024729764580083892932025839902909862818459083079598983031261722168065773165542468417254304219145832358510141590027201092272717488093359573437134688377000539987404675810139816738319870481236766394449766146015287382910908229728735977657162151974207819594433426109910488729727356413630294736960586734356906902836212648506238545816938847181834811809473185344171319914472491391749985116229102175636013231286447206590129163437098464599388230735249858357487749589324232444352320855901875948973954762077244356686298626613111674161181171009406025075709443416408551512442344413125747050413009488632440012607689234462264570116414315633016199051779181043023624181487650388989049562948048024445558473415581486440276737908362174926043476313055994021269120403996117204487723675875602590993301567837537916086280185936998646328090147525545421718324362900048042590760577012640655165038556967394079523073017457573286565501775264239145217111994880847643401109105992587055846994206133959061005167633395276505632990994811309719552601851341000976387940528843907774245403210646462763360313467510273440737255114487800103341249619812054292773926028783319416208283420833324272556675401153639102463680161559936908037510734951629530052390169574525613637749544707044886712057141426890811772497391194371614772279118369818907482372744972662646290580571668642619959380996098414996037805528125241360038325405772241163856979836449128088457646851935765213551319081067895338044007690263939373829094486305686914973772120154153012581422929400682260912577422481342691132592181902136912575724106321486305994224278363963883461579820982033330228620253212883617022268436968505723068852113792424432187522618580445036094786922210076393306572840509885162039422757539432034695703586536229784635095703400897743989817237879079703245860655391892262262437362503535103343814779503631786750858721975836498169108955409864497412461149446838906390794927254220290766786517054131217386874974244166098295176684222267230475069420548504387215723397831692619807055584252030836849898420161844488761747040947280625858002939039938471712970465330654504970332053439438118438153891044238901878473352082248424331580101167950510546043413681618245341774465412751657112422212373993714397126628172966154339020288172811453392762601280354119645353850576246657592728776177437386745728166759283082981612579695465553087540219322588473804147642276408575483725941817289355801505730422572431363839476351384091370837041683905463388257074821069362594124582165843883853029275691495683008044764676815082648130600870481570147702790449407097872635514695115126947032117782937178681044697615780032972540858411647233238838402275772556595166979226267012445925338025288709590828713295457750432340217902820391277742674310514900865976782391821160980428009198359238051997603366839200983194983980550308607192080777931408716868530475952414414143540151701904745836034625293761198585605429967894017880941199635523314526508492117735708053919825614116263735687574663860900697700073675184932289817668330018939670426573943750041125073488243188078406475754054730588998291609680374878418977772807636430070035313789586308342178729388258700819531371856992985673323875340103565049751464987598139606717822587857442936764527266456753172577887454826729379016883618998173639016061578297207285770506103015703237888302928035869027535155115180614870378387125798076009274579190759872169888317033406053669472898144070039036352247593168568096112791186660670617195337239859563034233430267045759220448762074388997069464154593507551704442450469781449152442008881478064425426779817198008556403476710826802012497441094277232734818907145648356137457579271055175626104004839142537981930020096535422912786685790113477681384903295146330148306503766529541410738691929403650859487146305030308534899164366013710015490266909417662472036697024146441103241831371946064446047578814294395735656525472700118355465659470688496735251666292521814270632007000633962891741976950671732636894142296403814217834618119911723041973330826354703972337676895352162648494412223970057387704127712825846123679052489876492166743359554628618065063486859759945612209626545089385646924275391731227300418194029762594742806876293854110291637659379391886370516591508190320009358174637199381488343895035658105911347318657871381881706011854846960305024159403013883857187203273765220109648018581584396816853783238673394867608595784859779283992993569427576999796535885283240549287751040186479553760896821205017834687841464480791486177009098131265650457817200353559342257001010953599279780812750939610126581776619119186002111818740672532550435603457114934874404266232327756989994330857826877970355739268760990946985792838078914983801387052589852128814048385924632496189762368870512404693671846864711838195041813262012748699355021315608913711347483543809029618288169037134164607253201076870275089606317229323098804397112578535967753248817899403748153367891884233812524887289009927166716624719009236059979861414227259113393031412960162837185923553031040334657202471777120521534029873202925379175491854533074893877736859653279853432664071628538482791104385943645369406271618395464896877673585716218353349298031574655205036781553863578925583443893255535427192638247609409047488910313831647305379695799109115343220402639776785796092919422528017651314964304791602256250466021010256907610130065024628141685949422955915469910012372456005093310365301654556265779707821486008786599409399759215342101884314706119933284805926494859702852334810955804953236960602813618454032442936979071591802281605217166407595072267174237468995101921391164126109707945585417837382920843213880662185651176737545523318067020210983869974536224774098397668718988468201693671247277885460289533868487632233354883140483166862137364520433629457940612309926337298185280316093346904064638180399039015718630360580765262126070723819706676791115037065898825755055992228435914961196986985068179897872271686241117594097657984148701038797983745738526349071929255664620877939111055679268265176428981388939967277893635596015601368396473602693195834789651782581435596159597621498797952309965485894652104342451333150314603319330443814277293985839180205814896854513404450126740609780195846547445572541669832781798357734825742937343304219735142820507787495145641413959024843918572250183318178354772449731257451717786825121646888454166170329338308049102703769691581696167650267558691754868582057783733763541698993383405139344006941072617788195260565888447837169798696254283741626903493832272666601765934733341899430161754573655842370912123058077218324993735986199229583850537209698791026651282855968540293796808514065411804656796943547447198581358356668959043440389145520222716873147291499160248594881263603948176815745201010667449511832756714412087546973695586243009361453236744770654381591560792506193414892858825130507678080031933503498357817814137417111401643571301056743825004621171435377231058096404957448750838519106749421755589714406495248524475998019401417030543872018227312686392457235616043672143491132061864790666660881650245639994613676916230073030147726164524559957911510797054145824311064868259968083248798460166161003316975306009274147819191194574071753080687922761193594886549901854765771185625346833132035330773057644058697099525811668313241901975898261580092177246572467257633426437240480135283596035747172238008814509435525137991353493847898054855260369081265052108513514973488566964293504666589109869996260102451817574423009048904066943681649070768696275342060848718964392229529342086146160647190300060805372779796743847750066801785213938079432715439296076499576050555963913982257858922640791456567555973338566592949933850916035919152724083335733387280645843638096790061401068268415013727506271157107063302747133636638510731485516921179466391361389631716539832071672729324287434034184862311031202131469633132180673761892950207604986772827782010111367314342622947944366887604362140980300009049084167258790434930043567549541509790269878092550740536945492784307885953134698725839664096724961739271689413688816735277583807591544403226607960290476721446071438105309459151938462849930960868278162838074972633533735069015015044178873913293255531858376686069041338906660176465742725448251657930893204228890196836841274007459694582336678554459622738866215848698974561340537605704976182571957707864783082549684565667281291249335713384745821914355260293290045845822124820204927613563056645251885523561439808134352497880987464183595417195018296495694461079115540320678188196779287012395287687198586522187400141000747287209817815484393955023532017924458282764399314006296602138775818407090498333214219563966025284451724768126599149799417051133925055098599087246967291574210015432691350687163391247074296360251302588767786257480400472444776317577814838912111250829205727807069505613683292480042662715496469860752180779835302612680028868210998913976818333784481285100261955487519326306475871672147181901832092639508102257592810772664890445756071022268766725273662692693374488580308365264095747753286436988970005717436546161072244315531638855047143531080067089855666118204371750771262937201142291657452431106880829730800316080187702495035972851880544684706585940081840147986662541260629842143822777435589855778432822718550642468351275430488914885610890604152719740770939442957799067443832585262429229115112592359887233744836457229485449474787806515389091572484739560005667486333443565728146940919279890740131789606203496138355756554875200347275169384978604299720493553814507708883772390359182488778321141426999488472227950217228566263912384031941914598292401575840863663065073284561996508722840707938335512043413996597377320083046403577606017080165730282699852252033086832475850688319682344058486704911916371122335186448153989726374719321643745208115125911644410622077305612887135240645244808869481899801174705702707869235467959077875224963925448441133620722190032451478975823633432268625253717321531476009856299662947070980848778031210695547284516628548474829572727560240129033797803958368589426750026371901196400673710181459721420842746950839234755828113950832524792610940521906614446702432090276728053426658487202608502280892028211406216312402634099787565678542003318554297625837365969040991744548944539769006899640140093035757453551107512952809702594738553464229970232403774960493421860697687079935918604951578365177758915151113124914421267705977058845729869140273165958963582372660773499815655374776804827397734258136002873308080727637697177613699064029171326792874064548095209114228787495632528351749456218223142361903075460437305805705443629404486717475181226429835949637938550082056430675279849762027604063412044532195914402394327174504832152111829659652421749715373042629799240840767960125739297371447199836627976776218666170053161826618958179982170447011533625204386356633525013119319314654647703390674673392753420820895650644617002209661959067821076285074966874212435773493610881291707224604027068160132074720150060317319806316297691669999555791794447989254306271326410795950646152588213772205880541540065568507409151493100334500568834561561431539305249594816053787101922201130913016329061011835162465961313023365447976227397082422442661267051860499566173075492103281160802902482700355182677838254746491365787367009079080190149376294039172664773493544098887444913251574074481016586215387056130233903391104958168170956687119412629445013757881521485288394316944432744636133684911447147186455037098891487304563297656418238766059238415517685464998067896068128970274432155333038323550280154310383218726372128421421329488820779648871594014084723807021444856575642542681475253699611097011083195894093443909254016217540130128949371807060422290365356646755885648836389089649809945186946890868009377258053072618329707431181078845214456028159065487165190988388395915569464915278021950328950835787126194150777873692418165964060404735343997230319411969556704708893075800690907253735997302331131543773248483151399058798875648245282860471145438644275163861764055901567131616358477667153384287326932190285338865311660445691734910885740263790533092525328260662991720669925076865769828847189961651354100922128754997905231801662231164796286369537648116499557951819630963230964361799399459617947151962677413299027267328547455220051405560990103656326048817270148643872790590405801252246516709220141534820484112093047903361779080980012665885451006769798250807393382035699867431627698977652832741867880092970771323142991387859888070447793358453095582854968509820220941416209813516746379468362960732762575500754938476885423336112379070915113320843111861992329813310764184137872863706966179165786419715474024149125819573197254791865623597849473833442730641653138043178660882987030112854117030986306385242096297671546171460070771163851447667056171614256351028288820146946086003595698158742168277233780973469489532687818170954213771259666255309898252498608950097885089383545505528665643755065174781838816703751123791418209348271948202303044912660301492532173833591831705898975243975962110218881887514135101695107047223455909327610924651605897726597403501350202969299257129359609453210456956766795944260016832498583510181157162896381870035135582972624807680919953992195673635778258716138040845979032046423397310156586352503573766511702161611694417154641467597097096235478000916208153450412527481103000432612742186030807377250347490951328046558752386612474158380566908194441089525175268112111572976141119914166222395574844195810648581904676395685222466263643247027001688963708123446442363693154679946495405035718634565502855430108640611134094368464612327676645834180179820493870050856278342731497166927477463060364373721436833384562491450440363333034629413006194441314615609189093347667410700081472642636278287622940095235505713978817427319618120917889254138701012743468487244561560696920584397546196015360362709606278998267608051184524999988358073805360260963852189953400966063731331616441243112811540347611742795250240613665488908882487972784894546858258839878664399335257684484637678220576758104807650376218119569019755942646852128562501623735433147337069421668119210527559032078009234852979351253320414774379680466340167011727912108793468877624287340227012621841753020697075960161578907947829148149428818913514891872938595543875676365756282896343871303427217058220526443922376985719299464263479824737189099655343865171332861088230120361825643167525848121923430696620130286432788615470495156840741773545636095944953892574923522832564932785078036828392751084154533131414420565507538442194586563479122105013948634572868356496241750244685977549186584348783534806417721941482262616627690527507801072928397707072460430554905036186735098912115734709368584184068843187888288410942741133298561264552564912121474542587114808048455948582479159694192205707059097323078592277068667877360625810171693574051108647075836600119561050299894913602898444245526326163100295524710925740032812011000141510806038975324597513779674480362500403859764439735850209250751469499888777193693462935616225949676738528496682483452117971385753368217661199728976823430229828753307097987301286332862109806452409483061481679778466333870260071118334412541387541970840033936871980153738306029490268628371020704032519504476130038847201771210494733346752119187423846324529484456552375376918352098284789989859212993397034960278342396037972670293467028029621069799755545215323987423540515451238015027918482208910177505883020794508508765083325893827355107804406683753088282564257388398790962365390909197435416543534572680195973656418092367042639499164797936985445766500847473818940999338228011380853071254527733462489769999434033441726415758502250279159982293720137847617536848939122231644432396369237159177940877835074458845512048685100204852152601276267650341320540688370065947398668931222091476064708892304710499995002667461713077547162075057433091675353482094135657587906541242907320826156165661804173013615590884329433243048116229892762077410984396108292692759821959180836621817347608428639004220309016148883950854343525231855089057274214795816071952171194611215341533533773788835225079123357912613612180142949052320473664017303865455993017107668953616452491539734230625818562997098317162950139017479877240838804354513045946628326125982236278682853821500211018247322792965831465829801345332713189677413826158698352828447335440186828975131475705538690553348590320047008690620834452849580551900209180529941045529626416291644230238330101005393730345300458652709879483588305055192304789008490231511204170423476682196122785195757245158239111156948836059656335638715697673585394671746188610393882151909772992526627566681541960151455480139229287688899049674551709586244788457443433231481380339622985880564433259650500245158311550223906515492627545468423520951722849145691571157932310749336320633508982255615500686818296036502689435839102237798922052916338285783089896630761304375374106892267954159204834677793737392639677968021035765754585997662556078141626129437865794914460060611668516465867593114312236698023782167886803387342442953859063453759508792766366238950813190742606155004230252747602698474639762073727743979906263156989266054309811229314833647289483451266924150491633768829464379265302410724614869106823593786671937496351261165143678177872211096134437799780624207820506305017499089904633493940310137418975454899170469848641316910999333061807535571486497806443743815269448875905837046450141096150178601317076541644828984001034375796442038500324687580938084875149241444116168940516845287136179635576695101457816874413923162942859653260971551647564113209078705593417424707028042207327874577293565299447444737556607299693891083702106916168408224945179395827979350959966863767110126436249732271695090147803404618769178719131015143894046203440749868072002346015419397913699499504448277037383726832302560648675164903515168435270318071499209579041208665861024023302151415895474262976794344820580328056839728920208319547260473996565890168904288060928686970760333842454182265785061961277026438991511052135287240851669682795526771466689307472964273271881298929646900634975003939890251680264016132527963835661743193077254548944444979732513152746078705254960556711278090999704764958648204425523833516046453582173172909125808833378037096547466518093533666235594453311283400552902115559301394953578064424533075648922378576313279582620204724465427857163622271990439551957183038403026488215802346733939750831815673241901036745703925374603411268231848347550192085739082392394426256899822640781991620287914909022063352119058231317660931208229882225058991627016829677883926690225740783474123559434928308273976066265720647378880023469582789066331544139771396957855988090385877576830881896033567082479876291640405395648006490742596025603177734200541249509025742951526054252414126240244994631795914467139587917319045298365894700331276108071912888345489005803719414123360437536755154770321250523246972986399708844817249633278058264883497844433430089936628762874028921269716402687529239717495859115068591560735864348558885111852875651230969798040376503340742823993981025622380907380552680278147643440238435699317877273777047145243147172618321408717265790445298500040808446271468593607863016706964945030006653402675260791174780520589937744879784717203934158738906643326090041038645276870723207653382970218396088562049323718794585434232297151367988789537089274120474181272690791536450262586845035216704385767443838103308155182350935414309639824159358403344034372128893987610416620561924618377928993793919369175047083737183337120896859377064006412379509445833957130624386978462173054639016786687472177123746295279219220602064380442442112258516821216292019719086413729255329692786936426069921734273842806575239011023356977605428963348559273236887796248641803097644813803573413715196699179599062287839593477008334929707116846659877854286108350451950204197886847034304848728134517854224716233146661563449807465167918665931708441712774868372448133814281579333616233296377696226290909259640529697192051799141951745488482280823562750047390080565600831052668194210279490248690882938039508074953985660133274060659865514329293143174566549536300598163892118757001053894853360013886621583461841743640929236474678854611086516851267702818268438100376720921169100926400481588390846287074875033070471153036841844418180662317632553023682725158831583203665808874192803554207932873425959028320043097190014021243551180738663182985454599060332786279634547305766430403465845064384892541981689068273929185366814058140969979927850640304095646647607588782210277418372897493906731041012618982191912582959599969708527543970515639563513473474595403439452835223096295822351274679192416148362557124493541249404478524241161263934541270741312621312423142409106137499078137792654246015961384745908471972375859832024468133806973491431223886535095520658661648054940032275231652151082837527812067155505552521808697066448997871314898308927860328700497712907000210130012435630311445912013971681908271668313630739384204205903961329119282791292909888531868958871732502222944841676244513550603562700162604908456038109655818205328866113766336114973693315180038111877842857575380242284097261431024700931863062022636076174833645942169715388529552753584980333966961211789144092749355079941037450474849944585425799796513670120709224574818568122195196310646281704677445070008328754067209909913472903147830371275252217576987403616105847006810332292022733479914219319328055492122811338797303374554658469917173780111717020003483859870372724813499704708404089461552174179141120682712430239036546785935768263390407920310689036736109137110484593914744946099832598204124043616599329892040850541699542076621817967993633579031860043058935640597023095256203851001562742729657252632250757897934911895862370464172918115950966814364956531816088090318586102981290275285885521763538918940394584978861711488274612054859277570309448116197701275449280970477181710263352847879285259002013200227109916496948127473535387402574221086203768094549278363413461034665003299376580379054973853376132310773880253209939506012782901385324333754485805905917595240606051091960349718657493664282900490649276404615153935421892216829823939925314001459113862235762469370110789202622406645271612670769802925104868481858016432010660857776816787844841747961091518703338797873583522424505408027704820014724867510176865640777108846122989503721270846941133249576461877429077740992724229934414745409690756615002063152087728047629574852422812186913957452971883329913184892084683167137662009967199039781053632567981367719554927857576017908975843644845877743803571946041880031039077736029699613215008922264933784303116836154413759528980917266508878030157732548371679878196044212109313534354910962696947629521783610179310783901467497934421093588685320842106231619258771285552885150616558833597395871123486626423336769829288498770415617744240786950742490706168059805687477230327686180936013832778353764976819536638108664594791981975840436326155070061011206447949208661933168510782108561705296795219602805529805750120547165220218629978446769818659819678183868106156978387901888232534478372623918970439493715298709847939188976545785198542759525312186477811250269293407208893827875225312831138245477126998470750590452515772702455716058465427472402398653806180016170479197591313142252830103292776906088821126267117734364459140677101689284761991130859369155428495776655842130682626728304001639471109487735445702595799460189100423800367318085154006995204381399753903425930717228432021831399643506674422976430302053793035820572097778491560391221602955772771297163057999765104289732312271732111695004605049219897823637415771195853441551046415091073797035784172803200396890031219643534359063631775513959761977788932107380046919291909962278238356864499899741794513227141693797738141091676849865256957938073628755025974525457663813636270925412323825223937104297572669389334134541467216921154361396200592193200253671065660104465592302002816803840543207919123509809737074343125056874105453580574743208519118690600701740368918663104267712640796661717084545600246831715907592333674870957673014064635905936080966343809383772584923393867250819302129636364849006336118365650041451572853094973666390806554349147997048816306634643744644755746106602142965060354655838421515029126745416284574199412412098740321395143552783842774453185530565482456740365692868764268504983628112861554120176182787606757120032280591518473641835080915217938576918037903418847994951349200541631198100702803267236374193302403274481348346723084288348199866533039235045867815487258531113172311930951826529937229958473566693158674082782186491952518865202657453783877926727180678356737278502169820283984467634770964705076048852889922936472166652101650245972832977304137430815367474404599442082852410440519624514724593327946262624697325415628974812908924573528557451662221895168988510276654628564180505411712628178130965148970657473474237974832632500220692096567119969708132845762874814482524045004033962523320654384068341144237428724778440379333142155525524480669985366261440465659735390372080647174055652107793180082113648383820276291823718870776719178699294340466869975336412687069047200553193022796687257961133359741013575006977953699087370762085976234664694317686705838496947872535163004317703162217546367669311464259225971405535367299004346070156092724962058649957626483057462857916592170591043686120442452253336326602915971928222750314624147439173849276440963045085780777626229507721677578934769592632523546727234330846419558782782656632794419848199719610580077946129864892671728342126541582271665481401548701831464802105747373145272430898677426963757767657991231760634836219427821182182334506405941174444032679754631227615060975238016275516935233957379444652939300555377076697197310101600666070204989629362547307548730276897405308535559458351991722989569058530700223501640701422114795141864188754724579331507252870915818245536440147195283976061879910473357721306767818071212161052498624751229538068359384098268581791042206947461375620448725319743956200269252288953056831470066902595101955481155992915327087358999712122242157686022509195298230193864075124143300444786133273361126094622760109461968331526456518724174334255339131943873682797723047928120060834165958024949392640818865892593180785279519216668129709585811744539168171078182519618934456635527577567483181817563097483988596664426978323765611153886342618978512891517137370830984452344280460884642671867153957714825428053617153648162999748513895620363174420505254428710395260751525292482410083355883835005700533964896067460967192087165870195122405891650530999454159848304701332668666988276834390763066790792706782641740850285921792453654722365322410644597907870710568125689491004485947158671073419876318783848020319071993414806692857988449114778855666071640968224789493995115948713489757733935448550528973674867519594662377406824465156628883700256178612057636101099930921301506436041472074610412891614758657249536995642071578273790183872220030696196818504941093128305835078986469251257841183829452714174445625291067546535428599742530426521334248400211464848881916228851127413801572735679236214037580309278754924881843341541057133601787225100095918888730765479407923396670616771623080956065740155314527975418643713861876825240164825394575623914949522711476699127115606751977394735388072795413432671855994963113890456897843243737213719238671912146287231990253489845928088980828376959986854547328055101131078069385912210074383015904622523160346769615982254916078519904175370653339734767120912663820334617508027805719621597220678067157189490283183471798661809629920869866294258624655393423291036487877163234950910325792445903070375354134799390737701614482488091112531061757826399227500787384563845784585555647430488445954746228190034276320449624804915953490354463296088427300714140196899439035327083659413288904141880288810705831401873158285796450877845804545076795313148653021386610299185054782797678112884788876668977795026155002016701045482046197171535997657228969826244952033506180978044121612718621891299496876892589053224552493123579460218854753673945303808054053668729782658721773929018030227837881615836212967161943622004786481224036640833988197111666708658882123762098092679788210238465304830825202659700755213282790408464917093082166374493314376404336166671100709437592193996075858077783889674479489630789375052018703692436015386149650609914151765990523952064209636731128253344498531554203649247749403532904740115037322264243876825076732071194581281521202716504374173273798826005665205593354765604361489556612618190597038110259992411699947239474922008905843565455477998350609096372346123847243012027172441371987986732636329638799793743262049761540712932203150789457406364210017203939837184322705875369107287291715181123044361204903817019218906031391722876844530776014765057182241563057909545538945789869096477628562433496525135973213959379431193148486288790704997822798069291620363991121808732005449746159922448770323186371518215983733469433612415886050420030502967954833231780219194460741358884272155538170232618163181792515719998918270636988252358175794167031768805294267747834668583482917370448410544521470846555482812635725789212765321770265953650271050333712650715469722307354209286634966988139014003146351187832206415633308389386839340604656096700574996481638456621688505543460678089202316632508169754568352987875485430948127275891253235209826628484136873509376079252646625176811940976476081825490338002747803546835468243357311045295897817615139327385212289525661919410559750643018476252666320432006452546691740753186361466732077167108411265699331745651187873789393177456486655968196849946207389806884820426704808152694819787945170086030481962481230796935409347134197527889920777049819541196402754107782476945163792806643026646632716676741094653197817534810426424435155468697726522347296921993475880908676118297834075079837392684975809646646271842915512985386633511328474326724162054400130028956203363499803386229667258904807585043658631997042085966472873718356822554728487788839458008188055629132040360015234217239446482174735972394945058680949661698082737191572898645622354138114566102278409049085992652796758412331303469874416479461330668030495165564934752497681150680151229832751145086285610660846478186646409133807652924103490608535147879176306830467319621003490646316492845573864695882921757650754986629475069039710226986307940789048956792526760895162811876415637746395455865401735974452974362699685886106553745810975040738016148571587397631219285287489266662368803087513223561250199577377392011006299532705768665221977129395478767987262983965642013685546587053515796042622127482724463034712641962127524704258132512315710149734741912178542345227825939064210938129218089628320960357463423562516941496602382524474291718169536314419821614349694824799323256137134888679802738179361019062451280051991687691052158029788994589949719412870065281432091449728226486796453911134961061106460103001421904280903541173676156331883855082759261861715768165940704752326866109472594068748375107552701158609384841958258710665150843708174490469777384589396693939212950549618535332535132055490691404864386301925109412813766519091560985906574868774903013954788503519646566998790699856156910338954702023434941997184110933673561031815940733618322180719483332665463815435875301932894905690447290912888000628812104791154147870163596706048131084777669084806043270676253376963380119541076943991337588725034572845537940719217822195564362224877196074333883508564746682095219865319096364055848440931616257577646664290628880873544278114319484760130775804939654669688949298600345070074017201273141598947608121025972407324795596225368843088992633170537951652834576437587001008549992832435378042940782736180635383527224652133372705564537436108506603563881174087676497927992513211448150984106530317317938637155106809630324070109489382143089700247270310765691994997964915232869523830006945386234267232818824304193979026171442084042048362260486044786061429024992566664406321013676093451218726397093520326254915191252324595924383469400900620416926265683709431966002327947003408551317494403554198095209162540902407527512906377381244192907236606413498941374192645976160120401590956680689101411168509394227818755854971803815069442297044434484897906393045561019937811163457996350049735997450832459100635264842248633595240840320574902775983320821297207673763535494888195655365866994526078474802774233825896695043577265341401906827285692269925249016505696565555980335615994181770784736886626291187077902389023611667707494773147536103188725117782183800241407641752320476412221486403692225877118254559411944772072960503334292498155689904934644785844941653183249278349462551563562985896566759373775008664998198769006536151311683924483665618240185057937079381805918663115137030234428006230047019867847216656988309279981149262925948271118724688309895770137980767229290743408667457906037542590096749672753317867181811431165171979879669918792644185459587217691046366397580655505826810587296771053433707244468136013151420871606575606788514013480552201201964154903026318676647223399352156362966563828734871654831423214015839278912986443053460038960921690375656501511567140515769322336013515688170311340726078367527408499703996152295341929316620404601003266814295481106564691443542311680716234923738979188075171676184850138729685443597309332455365458867191155599277920391076578573799025056462524430378018598285719977058274528139919209565328228671354874335525937075655203371308978034884046233486792210876469720300770804373409538188552443788458171512693702602911132136317382330574978057320246313027865522075280488254357786956329825097287561868737303469750376125206098724471479480607243051244755939598295786009467690828240614772000227155409329290164469462362808684356396711995476304188266870314372110897614296153309362425238045787643645977643793079070030811429315568160445399782358455951167805158716787933844584346005508068531792501791050480141675578151099053111351413430473995984517945189474738340230225166010275136248466076482405828486182234559493447107746847627024873210579939663555063682825623923336305231491118700765786908458224090516056427154104787708067018953208970697234722617454852124877249853721884102063441162657125879432546646274028666252522140548191204983501454286386735303141503299483472390404512963343533324513513481446255123285859073008908717525309516953782030369504677353062157199496720003241390482569255701923330622713474842115189881446397915597501648746174209641195763517637302425610147232306581347570646638164858547525252007689760496865752861327600638300677168999705747737605210706142009135804818973351123710838072874025528105201429252340180982454084946361614338473282571175187615852086728744060449406384269414972426358328183564338698168621182398900514307745215580801727347302519452691828019756386287063642894887697946189164940940552301216237007240909742198962140262989493277889457650680932728176248093891962763365585209002804589323056209780974449216195956530421896228696661383654209285844622365779887647910212562918403407879018494660553892406453413418401310154256349167102316492623917051884447709424998247836443179846123977275357719351831390076231841624316058165008582792102490442477222143452423996382418524466065465138157237647808096719683222746226238859349678533605627201139331953269034218922108666678461810050954590402755753311496009877534052880689656170881019181715979427646617552345302198329999225569270436622463497930607750833806817772370084836315691143350854695939850078882625589844511285403052486202606309260295921851607300340569962918899876405088388667940096974551231227283712735750556098871623886880487012953375156072016418368675177232162820971306947823571449981990864316084295117924204739181556328597664104384092767694811558321097946427523116947180547048642298273135259091096626693884556256373575550675704486450403741824912968201705633543345741669897863563685639941565156756184805265701644555662600724589583946248349067939180595107844849485202282148659405984052211664206789185775505111410385731688259013759141185644634022211115921032730675811295879658522751002815128213195188832579752763151661099995448650719122638460624865243323397510904119148803512720467655439797649947385330425706171571966913167873872724946638723888764975247856887350428739184072527449990633672533319038197421437771831311203717262017446702230101877699869103412293268238355810169411238820330009683491744544971945661843419094204601876214213393625051900120300811973421092431997138623344800064997158281121726070257462934271988669498151131773458998892544782711442402338024798088141455512753732820880296545051331932708732843773503977511749999426576947480357609818697228039974099923990284981765431751365798499068460813341128585577145051219517184796649397736336295363721334034458636806806110095186802799394261462533725686211378871533445570028016654398667718607530832486318260075533636835707279487627424474879400033417100874828826950379280759422724122354568666850818962443890324467762214655358245754478275982459034619737908120144051409960843782804192177284709512229635027443977590898080472174837157179453667630524310680781970474189165283719407113867298024184494109985576252232438816318878464002629547966693399790325463028467577572021765180574587637361775035385159981108605178168783753210283687286426986204693041028627116143881554317096879507572323281767706226766284884424105809915865139706591540523745697349942876112080234671223677382036459666435175550424578765214255626617591712692651889093641388473675862778028967269334248636372862632637974424413513750145607512240452830685719829144153686306871291303778445629830074195191763804806177270098280881308499309422274018639334203968012233934359080236805201668311405934849200478772832390052064182572686153393801904886624624953524438919250789836468557753725695612470900394033279910268738514965955458928037066277580601084054766651157578009358015289168463518596571418115658006028508433110627805030496162280362448603346938697567170036845644966727564874188918347760387072853139673913038432285327720528216391290404989048724070582427394366873721214053530271547951550443124218213539112103392532511716804715099213023976322132382192897048155147000049306292616015294946930654293749824716138931276531215322398659345485088086093277360836532235694675941211365966819069953421944711698020336035665143715515266269147981618062528617855609351768323441962382838709443612141163351816975160038945517283460888917732409089293769655633422613051999243205031650317620132452924782588667147557636089322264038938846385492169033292380447614556365883573512644776760509353821615441752192365789546946831756060014355892504660632065611864933031405939382284978358099470723688064280151937231893250816651439849204985987780856441481765001479030290246383905214330708615648037958097212927056040908871229121625755002067806266271689974995433015497882740662791944040045370870996442039980286128619082863492797258103646070221315666303151027309343847134244290376234725318160019221205893063079048795114036476184711607812008764153617801737798312812230482467322299187772772339744830798668369260371516422074234586448624813763631288548570874939395215512558016051481072667341800109618047820107772841682827469864602434129709240955490095799060714409008868317602962960246846482022188410555734941869955572208573668913976754634924846501715662631158938738086945925521120374387129693211544813171260981623306245037374446686404549520480900230752269151044585048314351117648697161682048448708497827274682328671664676510621681375212588229262940148511580190295575658086348524070167191204527583703740528281257544597438360308749383355765198552898867194212806237735235343628761239390099655295951316277702193071189506954196146622492439479484071247820081451819228776183765148869876232303987012880818989739605872711743783144884170594315080960829270600043430581305732688874017454423348587196217990232942417983540229880502683199340318118877090512302218357940773919724103421047849532916532061969652528047983440967309132455257803337381670471735116813597766724047263023978537364961820892522974928409117192844821701775468631020815278929296595847211617196338568187884849674762527707449668455169292531341416486375918605660630664760113141798887069297843821333734289708189730597651826194794469935684958602871357248254276448990087185784350610378002088030215236873388463652088933815436643105443558858252359974330158854666125248249259146431600445061517168346797086029287026954669834827146325575771566125506814245144884929601289570035740714817062825548374111716219818529238231993011359431159100962866878037152879140015002866065610198542366116156554398531826828982220707067333556393162209362289753384189105554732183875699628905542411381194123077652283358795387015067815819791823599653816917519316135845417227201384882159571750958877568778696778479706216101200321548232752573197089544090722315180670431472621874439154100440549759165552051047278972170182189877350122840288125867634391713322093017327670235292838265278192451441859532229830091304764373438634715782352122701349848784546651932508870796695813024717204923553749144645252787352058831278376604115422031671575020927899732311589014930006424451670349826865520837172272688655416194932124598275430428009650628314835275703934199601717338336075896183956549905616497661681971977772663319741637442387402305838856028524630142788383710808764878423525908255921440150473992928644200662115689524978466810259528672880466714314464332837445922016421756295642285570009862609707365503808545971229174786752047739855952202332127193934944984796997014637912215624853002591902922448930173083432737390920680018985480402498235657970722145963487306935176284837021833698495601675020067086777796937249469638334757152113681463220901900925906682966055313242977192950875911642265295592502781760738570383650366020064061554370913482126925125329145089769733790039152847263841128480701332993117313124272492191395280323125898602953841733776067276872339165200265192315257109622813434584840808646660901067271609710457856926814230083206954732475967518775333389249027975833017273684668842864270955872209700951443179167255506870134851453482272932775349879026937130198743312874796661968704169598693173283916852469896399924389137299598326456862198989692692762461223807559092269372052278798527906353964105069549701460311468169464604938781587897837239197662180334112404130261184450056459909472801775618497523096130807990287713612650780345857453433776497523517315854983586859401218997130701781135554377751802622798871952096195178160081388135775079866609698289281988582137206190522868916628457544180335756156147077921083148338922127668001798257173552613714863262270006285074400161713280303511340454657637756741417961932149191643827744215285866090817503671482346010032179643166969811687760607981638574170369963935067315322621823492771075499511714642902634714934609127553539000107054243774844826240749875185650111355221705552680276077970178988453561422887122054374759277626901396553441883892106718478497685304635507734086455743672962190501783329595070245185089073213693122109919053891518162066020551862171216827031136918627600466514842056296253304073324992286687327813738151900214845272890641893834997751009923027203948766689355295724499264458766738030070883542122257897125599509562279664797941771587974607472219172953457868038292659496938944288097138082161547596016854595601562461162140783185262391257267455465085458090964356474634661640998993118483965139200754076369945782960213669320827027371742410921526525309438671723720677093195637891243107543177982513465822883544356343545316684412406764991982647013480070711365133309761080210386785403109789243697408880143736168851861440138370345715605129681070155187319290662196475166063941286865658384392302542110665663814335700447155676473196907732348215964940446117716738597648557564390715088074554474079614053263408189978603882175566434013086553347187056946038683439794123803105641861816797777421966910707451853433163364618748646996543529705388404802612492493253862005529012597809768731815969071941603274239837108644221353787066426347512795230825428770732112391319560929054674076903411095385103503464526197621471210404437228255161011822164523664120272675042568969120130618829751563079825900551848395864620287098960099002777672123325592140463934956488804497534611436057313704912842671619326554698215199245266088084116204175755820985155591017425539585008565375282334526741363443165258446246990092325358188825732586980299700495653634447314983304517782814531871572194629203180200037317837452712754232880128353295995000468753604539357753321024361382329522452676189647269981200168484431616204190922045760764255840758784172965131931354189892327410544455307416443971723097123902550442510236400979814718781017496328904646932591113775455535218235195770446560034694026252589493603005329915913805854078872023411508743374172906376182734697342730190787583100194469610084903049140505737753984871006093880516007315594056074033666323840724517181557531871978706466719854055319795813476513005573687308874464046282201322723080412664572218322604499529224487878588566342851905202684135668776615110629064618727231182814781962557687847749103866045512987310334149844460958011872027547862689116245988825512968356206300740288455195256391153492103579077836499769977446050161987718621822278076378052873849758963676686317043907979829446554675525888618558061695386524136169042006168714380979298102451870390973632045097901557045026543935537336838822201801763259671619048582918840595798214085317872771386284215949437305949266781641307482119853877344032704235058854711687090676050819066718661464592944262680271269225187149402488374005817249618343974642596718851414629401690511356553059376551350473287227622302417984069501972351712720190132755107505614448623793115628517117255235454963548222350752288181407547787096030290458013741359460406190566621958993646859048781824897621764227339035262418011174858684622185067763062613248799655059109101214302883852978949366262615941174501204822808513218071042652600267081745256029858857239688627610456220339966468818996843354153032803809535939310375709257619651994531207634618267263184598858358792497668285901263739083681349886919652303397482267125839079782212728837317917904372807449993831767637055432216163444803846912576702510747987092252884248100499859669121380454479889787420239123589900912315596294917639768575378581118366687780196778255827504377224792153590477535922805821539714009103892068414753788677682911742928536611403623773515414501242916233654507434148377406696380670657116896509032284155580057128746310690512783244201272514179864704637014114489785061266350340363100767918247889152986926184703122026755676511654763287263973003523055387207131312751180119965530209041964732347225805822799502002176750467428654495625206919036939372999166126689556879896961584177652469958992121348793433024257607053306394103240483488552146279470181027113328271473581160269045763353560326556420311363732400562040001377722284387307631800196898997341982811120066037821682334908489093085763302812147150651008357996963214527174051806749084265111838464206413553256921023758628523478078984811812488560574059395467563852960975537387040945889240732999004286046003543161652067229874173573729497091987297066125896988912854390513629998709114042621145868197191129076053324474663724950450769564174818516596163528319472035141951746432850774486731824352605031163713094328097209017750988634930953641491509695405549879734990378960365262694850594170397543260942396805491346987881016114073045879313510118931325736925265825037723178489004294814840092856068031988060625565597052528256604766258745066255809597494490759440726490345928380636249847099676773739250972792850312164752771138532841334592797948937874095015071731237304597970059977646013295043827778914870052288540340891362637134069734023998006248114218796513681528484134071653069916780535888849244922883313663519511794983246945127361203133204861468790962775386356327646456436287828860378500757696499981931659486835958923364627111574783307956158734928224849299889486573021272013937984352845287982410000979948498533887110317942450109376551360036079215493215437936826640008301737083013657192056807509795431919124087748246951676579810642663879569337761058626868765112880187848955829436592864915841516330904817935025261271880717995269415061377098571599729668337751128869883390991016665747242453786094868264883377660285513434117770921539079558751470652139081581939274804438018638686862395478518652676815669954747945177522066163730583331638189292868202736304853863921581449477688587665846602735310536376573541642254650460023631671091141910257927095359007059509910681302252113969673188449765710962707658386953353588377679211131879924705449884718357721560410670982101079619627209015767721443876902602563365593037551549058812911868768859257434370401830466892540462756131388040029615188464745648849635250974705256847574441445443511658465512414120353272152675722064768338441849730475071147724593474561830519223537016760062002316425157972437526251578037454604161112899615389148283902533630273995167134577183158463571972265353161972468848282208235472870554722570606966564332895532401106583268971855104961576653166273180585159271674572362153279988159345423058299292236522302386137185509897841241664890815621793433297013646792737949120725814539574942636945982398936769210557426230856267330504932274145516755603687504084830291806612441853096023446539360442582805027559854528973739781339414248757566295882999417137925050617578492969122733758177356804097476641661517610059027580363842791084115426063373469523132354306879977685121873250165168871491486041213874955268761057967156382909319316405819302588390109034194491273792707484147856220702728383360511418394230240139281816091265535516745623971639682426734458873200325785780556583889231871540958734255864592795391053487028837418517099245165789158777602244316707023236362761515742106015146234157219112795190897746236391797363436971699623083554650789891613734838540062487898280439523501160780365685038682248124942759843403623802378121031222218634491042526985468504636768117184672010426067577820457650525209319073657077258191300168698573560548493218371800869866759320769753965974352907093705228421549391614560426504448890724290475580574526716800177220166264702413161060039271086523610551930688083820938277642066863867301666796336877109469095323114152542249212001713604616834200780551892814592551440977655914525921284831631119864150003530848075354046899263312752183533032941079129068475232563095572401632310401044979538630231148931103168014027755031923171385275921657335817118934837704786158091408114715145910246017682371237085759971529940414196285777208776571051980666478099368233125295983655877914562330503960774760170244524694458328156282247188413187257608013657613729512566601971817548850571862785908480478741589648526305222557538714484985417410755815960637082385387358364646824204095839336194560111687290530551359259507135829410328688890465263415933642560277489511144991290380844527441380923279053150781432372332590787277547667516808612930391320834336268184672679601276142467860622102537633151285281375826816497678404510695600027319393275350718116241082006156242201067959692579112620340936640699854234754157763611270518621178508221104208573449142642101752354788918860591559566385520138501553438552198628263464790920197561849144623514270445981855603859805521352681321584774345187564003927047402570786597734077244815829750737194629592562873749088800095306861752641012389052216918301428443239098081819052584289474604074094871088155744218019250121349325280699445882122738357201242890299765555096604090293825939665610085841214167523690953494017740678693617117086670663310218585921608038091848851930527305648373232308852820459398634085251016702113148948373040973787292261501218612780556658160867128938838306629488547344755316110680627713330613839363060969437167059826670857483663749927828488278783096780898329936009720463754608273088037180319143568245295903938006274952604679663714708241063636587981585697901495675733497123131306645068424978905738982841173537744156346025238376203298509182472943988867927623760358757637105000878397434740204540993801856044669399101798132495634201171950784154894929013044789691464759812025042555681830852607704022719227637446002308376657262882300112603441672513977056286357448627003543182121402465757340227560410307013888040693642147872189324442085768205461730622445290899455659714204653023351698302087971767341412841471025600946835220319832946925589285440269982900023739490393813281797925662014298853912999540787011346644342989701239015893153881759357274922343740095894302046906348366578324378433803994302625719649593034967557340918176214739554456958119651311924003442159609988972458683136436280492689773549211334062004402292954045894106885374367603651480774835121902622256763211735012489506973912179279609995385400980771353131753012609995390654968107868688185246775052247367435215457119155441061815279802806400035572324592116748356826239047471350601845755681065348692078656235611905578906953587738568392975058718805495255664916635194997335787769215862851379260466957028595655334015126261023390883157796814940967193853206450836679960242442310460581101560606995486998241434325610426075978244776403028070969865067106977948037165543468384159909389763890619429415077615318986042473913914958220069881689561983527765357022919606419301179125896211883084592701033072118612619283950842323980731228903481972513805911571132096220304863166824476694231854467581188070195739280891354835012620638743786461085529465074299410681172873662891672875641234572397579168510652266074220292800214929500742354390302448533393464037248775008241839868912025200129796424965377864592321604036759510698128660891571471322926592617645364869429435668636539765282911051665324753136363640904220501441888544598848966714078076372225449067880342584457415310352136491745842721677363965022309725460571404603631210987991126639610216864828114194526602521893921740783934050782340498391140433662541801447297473937661598943729554369455074712082249924547350795581806537268246841001155821701738208118792855106990540480677963484130508242470076360442615206973467082261073508289502534651818942050414153949870431070236924662088696546939993431857496142528514652144675762929115324807401510625227600043753846388110332319652713649414336165025323716307944124222179127973517070149192069742631207056518153158216118560567376358675693612499068755724624699798047257159676914991873330646811376952546245240380510381124180604071701632896732048757619256364010057271834102125838200719739243326940384139027201093484526283222832644589270920164578280409730974362618861942978668346034268718686329666928577846891525317597259751377267867521479984751510572224802315296709256340616374211074459686116178476050146466039505300137273158715777156190103229834113892963401340131439160940383412007732375597317019317702587100488620992084927116479312116763840438750500193312868435402043447239270207659923201925046756831899509872482073221324438698636823879057753617872165379711620572501486230965407046534000987991727357924437555583374197576603405516473585748551683202651989644684535602533057845048892249175254026460386173195908752931993487068336517524742685732096987170014632876714003754011135853759755716222589250576642817782229675021371299629153203927212743095135374414787664109236888393154320290513069821208969644831961691195269078707586892177026543600961030529513432156387818252601404179136886536640871110393801040605055176075971138923449987179388276037079748991583483691735795769376243650244345385899744901792272408329505728009981899848598059004455356940083371838145934872386455753834557589453291207594699405445504031283629459949134453049543975913667919938225560374528086880594989645842331865684458358454515053122500837779256098988866619529979707471133743120967165481805422304149234425551485353559822199864601042049758107965527256728626860204744567793559326051115010776067374407884259625226741587496423331861254144674596316375790865892936609468254731478449316163562498662560997780776320165634030718396415495006016005184185055901189874540532997992941880510697586455023255725543942926419556246251196954620492105992636521950666759767870279805035141839141391540566102350948368081089759305525831333000586242157215100797261286167319725801831430499867862703028408120335283248044318256539142100030532238372420586255195745833425237011632208532015788985059419553266654086432577722420126664800503227710247087434856048266013602151011360547131045695901959429472433030741505625051196170541099655547005628868436516487935392661019747380607748971663538508691955916950303373561974240609090722765055567472287544288802372945527914806652607514701986915252332680970739265569475300918688988184655115638959017320606131402870783621526416202791606760704955610048715970570735101334740273775763044170691398140056458831252841213461840013478440769055581121391416233410690205394010866479553497249040124510148188803098073435216292406454020896584843655277079647198440332927360112553015232883970789827548117904629124149302703732204465402121293052363629188098547823928504565488348730965590660196519446405617063230583767835165747767119196979079721744433686321350419718839794122242907483283688572285846998918699064566951350984322223096146006495866916287677128652431334813972089779217787438113285239981382390521954606927436029271531626864892873534653035139932379578116847246229966470634655526662464347424677264095169830101530275127551438025923035797027676522060237109612565474288581771904317726060580904288969273640029643725575067488205173361877495861795616313247842794355901461921808362171378455548878865260797130687728487344501920460089506305680756573621590085589890748865862349123534117862301394886161256629765681700580670451741809306538606480243243425027727295571333106021583527146029121227376399872007081485906460878199998985009354658969790649111575924153016200088917234407586511471977374615964179025091986859575358621618766952362437493507226079652235664632377590915874761605218225944973094933771398682273451266712762993292611332308179972090149094992450173952242573908780957576235962037030434076182232709403618893532543657997376678439023021735145322504889920581091911428229897197659306280440243456042222596316339467724433160603388997899742014350514692197370465870668496295430562851758625485753133229498791140762782315136317892396870630620771109030253819260121123902189691665572850742311677494551471772239770005647857476461867060426510631057263247409518886651373266741552203332245985466859609226274733704387194443638773093060764620685041947382010401904199001278123088704817623598125998821422561642528149011880931186803424765696875375070945963746977039941799469087413501325031337852686661719647193119176779165792101635844210383025520486720547557214483068227763267198313078948355463471081028940991225286352975047821360710556903398524515910742965428461239983253915993226183020387938153937089398813164435640584255550258825131179952350830083561140893083758595293622539017434448635644533215961980224373093594925765664362406458176456225229457629498788092415460821530520184664277627270850322700395004947568816493348428372309225678074693045922355156360985125579178762422728516937968465668335096420460203574102320388463446137059394979134010675913344126359555469987649272890177420401705961224453451170961574986422154318181591107698770959688795357968332135153562422950515747184049729942458078565803917232339707820515143001093803405000596266501770776671164984821761094664985439789495361776443571322509963502251481651910642293070251850324097444093686325841264087155125754648275416845227799319924983318984062547275857220981357775087596051452066471619415757074888211567913435770652881164546877820845935064473977383680215267432176258867978245002514453681195466886087402694372380803651495269585005414910796524973762599127525223553521220148893638688802115989791570404351804674437269664103703138421720293954865505507013451143349929020775122305391233269987216416294988302509277909526486578888280858255095927530955043813754339036574856841103222130643116369285117446395977222331922618476827867656601267822992003978614758918613151021419858390446693557937057339356530056116942327013391469092421848426062087247255005665958592560777759481620524813227682072336936963170645713127238827539078987505190946575100667283651220575554930834609825099508440609830800827131672353044547907216896856511686573714847016042931179294430230245981838228894561986443977029182569026982292187115461347361418252107267644418207494884732685518195363611584204657435981983665839887005259808432527242691005190831338771115580334329991481912225926853206606899164632628655028052338094444243386659558106993822122522048066748899438820805550707771468431834095299248128244096127051215581665314416578340398823592798796457655484777648685648691594429613863985640352142367914276281257010498642025137534511560389795603712262072739388397816326828486837470066290489273747717468295874544618590613550449654592748109819602502536452968580384887163089783173440599736545167839738733186272405664671064570778386053570352774666040949974242417447458918112922601709377279836720966238118046541824120286508569963471720674131421045749568127896654411283973507460878405974886103120020204515745018983943976345486599123999017914932929811315179106941172243696262869535231528053803839089202007331683774951653043900777914157740387165503024933791323937744665318229784827399376716659141370450342360951516283604045784186916607554022556193125010299836325558298044381619793859033975079276887996462421260293073092151460865918382573912395544882692690062093350373811540351914577448616966089950858230114326490907323108614481990093651411094271235155914623134990260416179070313472946062451160306325335426319344406695254920006184979649986429838434109924798206339695949085499417741252536376677514792221846452150022647809033402662755674596479599412320911567766296667883308313871265980344328356153200410727136442612227673061488604778888648963832487822294201529402376117408263882827152297477561149516745023143177524703688327027651429437658394233446715919074644345568885080410947064131554143288691502868159888700676832858158760224499453319396712792994479984192007783579810292057263300357874450862108460164248144795278419655714246999757581564771631927280937569520160769373572046587134131897789243438388688968126767037913616787513263757596512542486399589452070909224889324878872410048142513754591986346551752992361693319059678233878607065182276430301499229143317451880291149126932806913303168346010292677074213976133561673832255084250086855045359581250331272584536605851075308491543881209411154574327804455771812549055899714645709068497004296150723338876677003514829018938809470630210750352244779653702953898302510279761549712584171699945005904491974632186479731766277776104211391018223684971081262760254338701864491278321247063007458259853840000367392197927285230596287687562114452345013353785149298821251697701123330713794398485302816113889794885412230830332632586052434336456558889091024268804766332093154795687369732458201225624509120792600522130066162682096621982743687229766813064412808955929014400929885554905769510129845943751599831130389457087484946120781667983793818398872732873977411302980729462229835012374475312415061450125881276852644514882435706803361287402598265617460043140823252343674598422375697865002522011518471131443361908180408374383150347754455673946341325910801904317410197184386921724182924016683135941180320896599051653935969174742864997502984025550114170226049999512154408889670855167037719234285101149802010778825390658168080673286917836646698866016390896545112766885130175195993758724794311266776149739545102484283948476856051248267261891154308954106914825649303196084096278716974564895879963774393087080744855152634178055924252985588177225304339346451272953014407194900732456577311322675692312876773883404794904278059958046547266871376224842580790716398144653574804029196612604874317604905630723567127241121136419939427348510442578669337294632218588277616177915792481479867367190662793671028260318821746500163248923162881704520297726420191095880068642322964260751437494082481618973251349335776454058614232987900655088626945472109117656308666857171963277603871683323420253649658882373630203492701891894865723404954903512238482369468406758210694254135723300085120403974054546468636613883654416042618238560428291796954196693914218030046444265808959733805305807319738263322468010956429109069558698769036926851746249772676933550602038955120512173423449474952759241475481047813168061393800813079892105577156106855660650990811147834903906552496425934929240238598569749267909345824496747750005074499924415180043767390722487741411399161077690627814653114119146236079942685076006991105505899677873162765086412043798127562228366819652588011692447769906739746641424955006671745561318423421875190342816142958912539514649623567470830183152040839522337015232988239271306108393344499689120060425518343321868857786120448558298272043608140311271290886637830754102482353725324255552982418547310768890044461487660169383507998682525374734340244822705831632838254925377280687164533719695679467419293964740606097884459373870123121136464240857106143150877663678267069098223467587457193205434937767198297376272342293556382400158019840707832092273387015788820137063672763688162452261048847885013639788617778909552175089173635915797263218021446763968264263171332048245034843373262540622956737868032271870393454139724735166897772267230866061431542337496440087650818792596422215986407357377414274108340738392756198376057129193939650649160404685822601476655661321235703542331173769689480336583940547625758480611714616376730074837126320726368756514988750971464897585837864172917936067241409205240106767970621809831694950792434705438143893115524801622358099664716932783872633353931286565204188050785391867783216286413759048320681237856462088518389136736566763745536754301621769331203568240166263908652920796954374735108880818798988966633331368673007285439084980683850730250031733166126397709668698894770602445583762417202217291377067030669322195613324760042248568335042262551183474775756485423577197331652127379700722284889478457916223689444683793066725923389088448821642984982876496971367314900661371804343312762664604205954953865399722275264234289921914657335274147546361123145457273533522207735662248874020882033470342795164630891072552107186507505924191860080570370559490134151416029532469120470996466289895536717216200682963457022275091680612142003298699312648608959540926424040674037179217562504914942351426871241328398463559542754543129735862831521023200715049422222092753071850924191015417258590101568937041475740769467310668808247860794580454462805825380047401284975731272986048864341737421262439682931258705517190989756744523304510033029858574210132088894932482259917962241729034492176157049110506412696846180439011047065669652169247436759213878063633345577572243027358996939434920331749318643872055721445130953637994966545047996129327417982991340736575807200081309355453748337351011880580663486552424412881103136034377218661126587222922578270994114413343316607582711754449143825578300670381012088103870456978930138220673653995269855897293907902563761614272101665345963236571751925956376832905240581676586978978725608941737020454252374230252766995833899813713661297728346774934373340938231620616183414597967117355065413559553133021048441125146401787205559304910324756594724866228413204452605565720234874030311663692498160827636244965304992768858936337666731290219064436442765213936714059725692720849104507222286693078336253566393987735294861497533429238743166964700531131822292631592384567985920771110675587520428952462546642512007732117301695204731762165849180926844770100855180289273735229454142744185844400960893405054937950559748783355302686029897081615253366925873994832143762389252312209611369355513880461536285691514106605725809323077568357960211406319595006130482936584118089052278902357501214750363185215438768464644448397368304732891173350760471517453394113752890811922374720666589650179048731033123776424495277501899428622679988318898615285979654614671173376873180888654828271292306044985470947129193194774271524254153188452208241683800840168999152124425478013191363981588254505654114592168955856316861126334517211686435115669986106612395994294445818745777670577438985573638289801479883729364401381329046255521138577486362999088971305872997315501706732090970784946126543191381994571044413984844086957037904976547409463360654625102402001882983240887884969859291649411773215857334660130692907172919184569931693907864719315007317584083912813185582942904510639374028082173646264281169896040064333981155169495132033386988517460683061714598936217761706923205537614203348539378045972274643891327418382002975778298702565111296502163330132027190668641025334722859638456766576196373023142628990187307816382852073542936622896147696014232926393112318893088132700590086538208258058097918620904743948279688284907757354389819305457449015760677525679708523405373515415303890224959724241459560463174030743004770574587728043910578065134231655831405149061813288922755780534368168849325588558489070312041940064641626585918400302840332780314887024202125536432930596432705435723053886522729120461926665677951920848396798285239438457181288022742339737293118763217900576468341122337114705104182374546656576864656148058442332465914368543429760820464616933761931082367874851580792987003686066383542822621206278492780334952866438649672370959744438895583828090081828890568884110556919248315022637806719826457792228019869352116967734964095770363557725595124450107631669501822913862041351586451553285403007873505300975305859202597050407862666028047035758944304207305609198001495219967891938713752450912785246859289766839810937832676789433575692777176901921517399997706108108886183060728355440018582565648776139570722152350629020333459470890985111323742358610704222399540180147066262417715026839429852613306251925037050127252042810849675486607171814434105986260781950027892538779707384972987334844584424685875421434260879912541223746767538786826555666820617250015395912410744810080635966770368220708084045574640363186717513327144178536316588882892289145717216906388480439538910879326970762542889832355099790167829013557277140400352187827491727595962276858794656626402956807988887822602592228405118285906137581690396457710619213161934440599623170488961920566997548641945770130188160357139315685792350034276713566920145933212522194345208450527354152430656335789532800224215660288583483160248706533611489539098236045216164002604093128629576412529268243763595017617331866717082170344300507427885757854325130090949341016461970862777450440878643439861517468344931024938400661545983640531357584619027569521442552283283263329511967024431119234406015352870072053547837447951855080707069064502628023835403100913142576646571540673045011636637039363298284424893507655386972841709085077296206383082810044787273566920500572450173239240323478817187954255226788318929908171405956776856349953443104891275418100113089489468542014527435769472833271891409336172577705095205011319206697318016416577217361814459218526592037379438468006111661017169891191171586291256689104232457432143584455608700189306290284962910955756138052187408339567699867360307923298775145782682855616172169544517362999683816908789082848550352702719246924047219437564007565150614913827771561990300857081951749128777284108870507104470302580141112877130420828877949909922617806898332797692780227786091800469979768438860412284111149627871253748059145150321008640919048215397407419807869554387152699392755096468156049966194277263197120388854272829290324160795777715322840022727157486916512770352277753053904462675716850019076175137878974266037425982976244219144283394826894469441709432854254584166749079664169645064890822499059332267017210751839682559267488420667802630373565460771007343087912768472666945293735138178023232495889803837916156385477926195770511271251261675002649688738910303474410492040444415715401877726811284254833236401566016037640784694239851980043032813692886717843920842827839384020920081026997843059128854610636189036145006257079743353576531004799319518172533506309161021612083884264118880058267872367392581905641278805722011646979722192907483303460919267070571391933607538586418845370284586221250075736858838644423814587939569113791075508165054250766908204207656366380246313288388538846041329952607259447583163194238142300367195412083109556657978593356331563493838558510335283785381792834197574308900679134112374745687296370066987537254474541175915124900308263008459056014634781319225275224278495801497424751172239939449208824745996068376039942869184501578099905692573583341191743772834329074815276608738341171859718823832188238293730267373004542443027097350127574148208097430981753766533533909850624581470640049016924398809766234451604914507554127386130015915105260467895389629344475665863022851155460804101442410146038134129500030397975402745736138535803406760055039324503039823831707943437920875807322672859250540952939888656674182337590596485101195234715553262664709054953543698978138919180678898970881742398596768612202655669223948878350495359152694451101369837164484379449496369891062073815301810722263981783061572638956568369620627711049455713755108089278985254480120259641635929002460773307772521184278048702969784059362169349437019793562242840588657309337620573805239650199542200435213684004276983388330460136240617789061997698489711723389220499020292179153459357084579046543621880016057053996179686693221039373694919758291862850481010932775791628174961177965169740841694014379084081726710403893360388346134740040996990965882212418134233400068640860956578225707986256687003173266674146424895837531363598593078065567257709556163946645316748506964285360255665794696680436157756598941718778281441513243653043727485472336032142671420685883302522578923629964779655038772144653775315041005060613639231684835212529084880968289232552233680650946330396171712379446597893727841568344170231263086686376285400371838007460207398861482047618321693851123822818759143312942707674183112939855015164740499421923420496575747701662839933951365236189166378528592493011620447411943242560983726564694160748032932914335462341306552361365352992413773550510958109523929252948242778544186803216902903999669745483535834292503040974705540602877397137210057867769513985581476802428071929219932379441004719577128065308623868379685741919891996314511455976927806474982567806858886158723774290836725406183253430609498231372876192428990210122552969483688039166570664635150981542217184144055960204828169603033125647188593414846106868100661897807646185405695889980925780483637598726001177859552785601480215492689595758275895926793092246493251567649578885094129707471208782344005724349961284920100626408712803198136980064186272029036559843089911279473778172121399451465568918277526814841786956951518652363742599572342698827054727758312600658802731446319773265062487504285023746248783918836486459914188226233596064598079622001339511000185701110898749998898507491321395280897886195935205102045598743455159305957559420610859697753556017330479292339347381152445736198138937926979864497109132522164730430689619041145015896255123691361191265669881450755757454967448420570958612677074182887806513873365598920546907914627216365492831476955581377315596708166098689746904015759477914402741425478464264345013899126994323868804796700401601750499315785382362209719917605156164900221625372873791023035131227186624759010417782612172047066615194620323808408861469779686599078608065411581182386267701222548896068762332038651492760799724768037548885263350337400101767771947645366662929626285927296887991705535935061949617518549889728136849010866775000080118185334463557334701907401109741370140857130420375974246870155663690675398985504484424582089339699377422930737215277355424768507206889838403919448343959471249484431127880784680640196198840149365042018106124113218196496116642900871996741841224079608051996119041928393674487704578401548762925278924621836412738764797946520935005158448273532494706281530209972770866540507258923204588080356822035222433943451159680568621915100866903958459622578781168647197188353035181432456049878415997845384209383647646569600762824955505040951185020588948516773871980536447285583729871864015309014507415973505813707385017508057074537771200831137913778569326164817262144293479163231566621792681696635909217450641396025246436602283222109546215888125858084672729650169517190245702923771871320523272647664316631953498601223048988542963154268546912486410457580530868748516512074627334296789771905818726597206331149707153771333587289693497793722412030888481540025798975780053334257651366431279790434857813168095694058647775837268780119037201310219688369420545681293413041139124695140205197894259619666468303947361739031476832694336330075680004404327049671888249051014398164047860920254319817694432328797266914066885794501052717456355187436135353244587018038684937028197138411513875677194087526575082126771127774673343839914142484765644540177208116876798682553141760818796568491185400968440412828393203594452535289802679866203056155745555276388730663867295699118206781909885709056855102738869506150758508167182267878760183015187959465542812556916639136800471867295248773511539528939111074288740773018322993284427461268869927637164876795729443451209580028580118861519532703032291291120863504028480495775735393147856865091755264457943604392232382038434102492360401102596747964147411145365929049120050482321831265211654947931205563164290732390014907971951686290261259267905006816826976127156852100325282476834715046832858021148793652135900370699159042741353705485064546998926408001997127998371415170758284314537858546404225464670628497676843680002679951680868521836653001298022448666291498292083596164161183704289824820083533318344514482746972578598237385916645559445307025608769808249204886195912872316264156785689913442289906874791338381015213451290447306660319763679234324089034078331336147830916424153454634695329635695668885224400036673692814974855452429200971738229785906098988513052565584796337858181881495776158427979467842069045549214264067316662436240096474367876576403426276468999972372743220513423645844281016472377978590876407191124054638680946823542941808498049000098623964559245650375468459050452382916492215144706834959959405089513290842621068822679500044710572311816685114449664903306429254792689337283337745999283312740740662679820130947381053145055249262280693620013163061952488728383119601926091374618958194941719694875144514399952587424041874846562569805770601844520466065859004631328862888463235845084854846536475533895748783484152160128527253396971698132044266839606374983632809493623533254607208208623171066625028208706236917689462314507576121507384124228238036757011419033958113870700523774121177739061748350809523300154062209877964197364731778930325897238371632462914625216199245447222601339629769175099732520390778486256761478219775913034954065598807069505745051670480445554938373296810165809458947758327593152786948246654752373722758994143399176615903179387090313449541053581067022650334713088746438233745181895718054120121643487945286050291284451593459415742688829020394617486105954670577911249428023013399978128529764763837817471758054773926683675573814716182508534955028347321413858943757552529031649300310879335929466537144258752982455551752423197866500917236509161979249359357114137570589288851534165227044359101592464342469630478481469691017344664457654721875874556073687234253459287202415713244248498111921361529361276889003651795234266126256545323020844172320231346436404528657326073699942896052916231721486424053743448434101888264153826728442756635136613184265073538719598077768209917653109110797524666579062428908305696447166435626306465154010742127092115076567092430564924134105331383340994337180821511084294071266661949845387008926879596483516141918831746635576729274633747519562582843411430764442504906567128321810433020500990821173491654350135126577036534347168187895682944294391789753196816933906226113828806392698967686018937445818370786486264774989515235369506816735133995339165042467562041846208300044144413496425856671279062936411440038320393412837086821753585653425607366636438958300182890787628001224529660432414668493462893814711855287547107270061009992405848366539588241730615925795172388655685573942716234219271591926212453379215350125735019808260095534469605050668334033328801710127274884455236264317653629436865141858626793881335775199226928133424042284600821964093238715206300066336170050804661004843957803662260717367179395910873359362471707272451553683630452987200821262292991395806170770599173441899112118852651525404772592357332785698151873039583304964848841360059123343451058003430960048902699320512357036075091766916117166214016248411437275389028544329706089124067291999719561837145575554604586978013033623725839048491536790886811314640549174840625815229308926226176954015840016613439689330471727528915942456646810558983560148527953840047760645530149652036356318475001944173369005081902711843545961951840391913472177100134855545982721280351649248885305984935097987084434473858619808565468018171434957963959576856972500226437645414099941946323915311985434035376607414674985843258701692199133647180446853127363340123518532987351488534917751003657645115454320291097111521797105370364323740085318130488632114162314197719059628875954294257708286459032508513983512297986024448252848575151504348722723553570531391426437575568852829617612868578960345297245024514721913255920294759534130921562485887618216798422057154052431625001531485352900791773059965661645486547419159745948931627189317290605403339673371938876004598924301213856460360734174598637277574174736422254366421535320401888569004153012586366763840024488659829312824318496467555359778589070579803321808121136253868897866175115326528521463291999531295786874334814320388395950901320401823494815634408313172167979635323912682662807029687819148363717846812756168897435082854327033326331461650537569270799661983894467758867592993472847476429472062512105003706039294884032760981430457864070482533457918345964620427406304436641246046590488033620222244345178583830055615780974373802123512761112414161075605181900741092193042900922410338303676020671351760394595620820503450485106087767525063934863170750520452910974759292659280668880449288201871892160851910846392358700870114059729814818039487792177494813073913119305306415552719957087968551947470932069462606346696408734561189856071910789035011179651698732699629396818673403433091659721695867629647922116481876216866068524659114847806676106373612581916038374956466337065057619933357855516405559013263905597839740236212211311743338553300380325884265350166082977571267088849102673201256911987073082507462940053876384023825707973008828598259574058133316425250677803525658960954305899846162114882455587560620670194351446268026696663186876881287332856467925428546024626624283100105380779278378529107574035314753223144502919409284369564398233333279234695531393028311014193596186128880739828536826857491876033133939578209502828160876122699935930217285355554098815132668867336770583973283254624647190279989210115227228436973869165474555430714847739945284459591846158918101808118170056190254889363330450733427849698043699024796279070169140864036438651820001589812734298896476166034901378098094006688537360074106648950492884025674836787132753840835495189897346688912091744256746842684597064659135826151507460460513959335002572974602931551717843463137179996241571256516478598158827435487684393220312457953798068804890122400548638634203580949524127229003603773731459708686160848760823144757195941858163054754728723934116548994229467399370013955712776728310163659658285686995204884384668793091658586814433547131921198744719407040178506797275085941179256740514441006134788957419487157533515619841225479592035941604318156965840775664780820332355307715056769551488135277149397194889469312208943473687791126096622971095615632632914702652334029299868424466136549659901065341869429155210026330620773213717705967847918587005060957912477583831146658027510011859167844139617186795603578851673975336085503387554198102166407073738565352823918829030348559795843746798916904760093030661865462127912540264857967415887043026696501036884657157956383630468029562007202077356956944593224989245620476212206100512077055699721137846599573482555355920576301708655974891281678745440693166618740662038913764486691673932319774924910922927878941759871313189028774185078129319786630017936335296431233571845036690896269388217629762071590045297961240143016218940374362820622828807731174597987526401481167745356526114969152502966618541646826091763099191632274370357989922954235278538170591766520222036188932576271201322823691856604256302392661972018986262781052049752805460653433483158858722330228128606977449425933712271422978887976711827148941970494657627489311774644790093785402536003423567486161394975860358479858849451267573968396394262834173155533993685388624922849057125355293178062107226684041533527695395179316065585415371479191603311559968452266848196120363060123711755739300538370674837228040511654329432278246104148667916525101878954908931352412543280049463527384193096727554500473188761680643125255361535722987393601510254579873924951111513801061494898674286190969835963384552625333823567901739572799917956626720985840386010676411662813743542934465059518784262548683001872246247912066911089389671101553961043672970494664225766629279313031408187744676297056373154447159063483610459704319488012579819966080631476823804409791696788858134913236878659733829682053224930121254347749950939745079449957758723816881188531410595443139580964657482760304339161351731237745430311325327318778790764410788380340455777665166959178769316626107099479039383527068939020881458328058080068408813475308539734733695699485328390522740816979625158788268798349883156792579990450540448207704173817524274193105161829768706077340754600158365733958930961143412948128029270756484622548849249852035119205261757817807619980469932220060226933712260519640411394998696210139640289658350859044092241887510908874606231702484627971053487789895965479225592793537390515214067932349190378540451698755006256457296449810158765182747513455044983833921620627889819348205166609981773735597593998737915937917077697599698818801210838201166714345932697852287973711964775730353291204433807056881056710498696847219489290437145774193345924630412050925470006141722947051268900892772754709701009492372062517119629910186263793050480972280313074040720053134055728024193538601836905179746861911043804017639496886317662838913553221464918378368885784141399648187605858549064684800281219295793911878234198676451944328515879937570526228838570575727713015235215816196798500932698341799477317642743663280606952792368326295164981404167472229581647709283701362544423935573073021724050340981657515043420021216300895098343548911514258124332977100794094388493646362793894312865819574039152640933770712136253909201269118692439503993448122525630018074181852318875390917223037712300528144109559847299013346005223721724885791955050383680307044069931863141992246254545662462242193221850736527425317004040473417606926319450329921072289115247588263441109355027879195703881635730131207848662703648190390793270266326827012785678002600859448639555667874439047550979535718354688250831001538880426166306075723223777199995400123875880632485551143156198443447285408503765285218498771472650142080986840079282126666468648077578341200661138808415027360623926536682803134086155681126306790526856297394809591710410367061324989988469066462753084276217672808906677842354729690824293705687227196583867343147761998705480198100961314806785146629547827519566419015464918208230771287557721517963143969919736997733395502992693209181742072648384286335576313894542603741770776569768686745828397671596816132419161550996428396848296370351319142761341031863434813253983046301678061718884407348800796936995078547793634114571238181774874050009596371206793298570785565148348456421653816124779706186918093877751152122182545818276803495056612247048316947348879754269449663062684732317808219496214824974047004010810014943755241996829852227314405337488113046606524155129514038528753618833337270927891653109488681899649351439413635632225886987369747828998520524603469474670558856732853090702304436017652750472466629238784972857321609138770528177274159455307336922468077232518596033366662252607049628886694098875064620164161910013250746091899996699462484677754340299442106610391455450558665299714397460390741988869263900817856889508926292112465342701827740156285007355291085464568887154474002873256174997054396265433123223395129953354398803398829388755077452537283758337095273703187046797349907855809912007709502816438818039779648329537366710543501264318234112647273560999892058263290234395261277131189396846884132194591139897332594304403402678796123022937490539449654060207455727046999309372191547654629864494317446787514480865256551730437183120698490787696162897791397857786757130057726254932285840649241355070790197677704371227772610321852151290938469920406017231346641549458771444507272066122220502331984082070872762772793248529857792274789775442786826548480244583400228549947776833305116488018295894683471929153169473509292736578215461057563676760696715745981544759660252680326597289213550631241861865961494232020142670012784553583033908754571562880108824260016057318971599635172560028018853293859822472543348368682571311209969672940483928766639873151712381359391233859733230050670926599702850437801269331087901347249462917914373482322599228298138016679298815824417425101661567766106831308275887206241131447405107881428482795104239214005645344889574212338310834496741986869116468919085275553569633225370767424519065578536194985861191772220962464523571792148906408128341934800560679455552616373437005535773441038381670900200452035373974106831500529831280073912912458101959147181469342151210495421674738306030907639809590949474213991964439007491876639417494807381360714999715789495688941563782883342792060688235869483598156465828589050733959392842815172054744071068760083274629441645597164157594840099053831808171897261086542663462850965931027686584924269200132860831013502860598006012725518769028462620194450998140023065826185406449322501808322797680143068862771373828658995349584002015682156404745240359488094234900262722895162621847680438562314702007961712949410033466707863085284975000695705728905503881676760360163896636533693330195200617324506528107665650948036791466266580156160651286606116953605102579939886661870286314508033784830048185536598109927450511024695900170868489764490379531668188318431962872572289767622718143619529846992872188561134214124497233475503481166039406823688341807647863099718258387100503175228131241216738173443194204652371554244254511389619385537158064546883444799436902670592287291221515328040901585685969286357518154092288934498887449241707810968539344074758205956380786866426502928287512515096671670523796076297671582924020357363768222996352629790709669203971506545501571220972408340256888718671594272317814101219377777153395395125925267788456395347713663602941185846814203967103933575747584137297332919443227465261303749234542067248095419898111507715196085274390757923080861571236730590333926003908844979120138152154018867711791571126152400474778623474252518079610668845489903282442440065552558253568494756070295101721966564397658442153782497100025791885039777114599215391779353777784881222299828065057889803504527571183012627883413597471799980538071066458624003895166997131754134896735707241154389203342657199894550906710978219946200093694882886227356574796356438351035803502464090290427021695151204569012304825018447043078710715546828138308345516258763399962660988034453556936333461825155039420045212931806340196290030569014035162734436413479738252051818069633796325481137553026644146671831135226067714803861564326329339994584761845738636172059845443587624615878114042522558056797064980583573353217874717753901661468985575011358268718966487671932982815960253334735051386195735707285510292058913659641010687449716207553349985514523227234775643938510512482885363550090683205652400854859224829850366514940327390373616511831265361159618936845426830833733255152060479986455760773108421150598250158501415260080370445204000710038077331915732868555559293475867364812590565136292192108441151585069520217729794075405673592787526905630792539777752012252310370374091484347766845197618707923646669733822946996365946790595816747359427944995218301456785203783316656212415730584159965101364122666583231018526563648903819421855084888909218273018026590710668461107744461354107286048349119133494165390456018220637822435698789591879121789044796716470162869348828729883804366154584456482620704748996980558020447983096796208464361192599815575825363017702295534145223872069162166100397744377537169000442675684317672908065816060040266339438390656201088102548520020039837685214272277941086873306282360233125304616922250564923656021299159348219577201285019968958276501616429228008362789066469433240273342879021793426542704172182265969371677146819284189292009803838465276281605381263377551450850376743509389066688656184062988049577987495576393967301489448826516846821998605810078053514046860427267788697472542032114184535986766128142445854296584544647553150778921445603862956640722967508897085744206921060423946003913783956676126378831164935275428468376041332788181425983552967461876594871100966827165227371748211640837179800563079606791242157533236819327537267419237211972105159414401154828570114098717470290470088255378709812973193678039778171062929682046469733641310717527834750014013688908655665958159309655140741659064648875901869395220777509010496696078483751722863143075268636712816868908844953803845701978921339435213842558727924035527360295957336679226348739029012104067760706721189101662818330564418391348898188798026154633858451772930138187451694171840147378972972977040687715327356529166205093814634322396574984129504239501058272864064119251290540523692944740243891986692433760804990555673009151292925709569181763802451955787688823960757954249370104236878454108911962108090295467398767113989746169568263607449543645085804071435225217463917271198340738792359208705187860316937564138465262741921055744412848456213373471430912586906905869195542014842107482486733155922518840912023805061216547115689466088374879306387943470011390285222471236814537301712106692404306267408212584067938793769806706755027818702894385857833817359818217061899411146407217288672156360663921266758134298427002407487437614266906891366237057797482261159541786181250777778644328005289030377559622220871071573562745550542176713235371977728337563516601742969447162138764854620132660582773237710172254043230542026548781770964322286108617125292476361814573124465927005181398478075193937612283927932338146220629054743125387116927148767657724545476183964587802969612869488321516389685281540329962590324221646507885274764852130111142115730722711538390023524072158320123636386832152574022351572412741955839725021706979350961258088093018485087406531698998445067205341925946194744803296927761420722556742314776763586096886334866647227304609133584755716626102213670574185887417514501675664188398272895826891878055202217794278385971959136601636696316415508682634520205679805197734509184763502951221319580929789151876700591557428759636474987121047936222591135463272914333424724124384622482464445996308780077916122786149416536452474576430616075529300067767408094713024598389953463942977522850010900028176099785025965047264617939185141969961082660037355029635414991393037921402576613025215312105416461821852697299516928563767744941603000462785396088959212517657926765960805794893877010702669664793718959288452466079693488042651786583283719865387257255257261384727993366012883038632496904878827928730486725504748176431962770706655035453294359407576804773715056892977623845850103466402999370265910869857359766794377133459799747630528279884580426026912966175876258894034503619742071683668631006542890986450425300458442751693796275381649076606059470289005232708692281710966843276629186728982214774074807815384016202045812761053650495335948802960986319382759214607381445976852937857541977841290527859843353666062109803374241932652522142666130086669003161301416744284980822054025467283780052324029225938570778558513493816843676059652898881023487221164660545769367721018265061205517541652679914800895560311868180158204404414097774060253508093697698397304506505030359586555156099161805849329932741840132850898815360206413584892169580405529451638400801595187183144587557145220793322197090003472592773773987513749030288508851735233348022932351735198914815715635038129303972276491791342599658726184634251660934488164663301752951541958718445887108397377036787651390909768440147641185392219692566368542354667137120534498390265238678997578698412875543333709123937480047417089936629612123506333392966479457896621649571800162559918433042149987543403282232688548934335703316276060479456489689537896479365580970998987506093167758743971240638234686721073776976772460060355052352403497547682384930837238673520205975351803217608229400196483709957666584533096931558688127961761418448997298797441900172034842747547172901634063100374160990973305100814340575472163387640624425577217133975689353183986739203433758197536686899861558938129976919919062414656256809614416308092201093059015964468364162702729341914117475564142292834501275328538534452368449462218084379082263088406789486395948580363261058316964838771181099509143817513331460762314696792737353856549373153202534485607664843035399732288109174541444882989827709297435977351354803646249823756253170433230857029600590736619473280692739694324454377123176863524524047647719443595291122035072638405916458654996309656293998435379401183152612418598319043183965420030002159497518522577964510216857635130544642993324337762311789472687192349972987619310778783469090380846076431613963337546352160021339475654717529932012870984375644592950529616634734269321776409993886833045553899398975408582878205138172117263999388101148629773666017031559339825532377003585152370350926465812698031090742632787092279600791609060843198939398264901721710866383802605826023405035197217630544075754443894067115411748025964943190204214770800532734782872624535018007856670350373918445446518996220849087112559408387179273455037483328202171518521489975019455928709216904689982098419413543487567015295838651862673106472266175178874354418806292163215725912116219823127554329816280839010601854716985458818234357712474028032675013850756572913152948280643163404998170644193498722575905868694280986891927816308498701005862717802660656088478323520922659412533040778858440951968844705553431361974041464478364456899733731651312052531352584730784436002337710820895412332956149923570196216580691942255940156774051030047028067827120751450136289211208284844394423493644444940146915455525529757759117348953656742600417515305334179858034098258201373961786831791220168277416518305128531089199601385885875286750663597341567921771035854390152135896247331507252944309157526640728875935464819939495299977835329737516581271374194525922069023821029024942632395920363581739404410779942997102505693764406769203474347921501632259278760747250225282811310393472642569782826152936547225174966295869854564461516336049564188168424309148477074225374128728625402224595821457773593464667777853514918058529978788613384847722842335184566850431244930007601782424852319322693419774293095892271941953170413085064163726359232397514180407381455295308956988906115234487734305995808603161923040569612460798016714021995311674365835720560936104219140052737736396521483033305754830522592153633023633018490334940872769318724945625950632543152606720993699168651388991238127397184009143481256028642295327848075303467703928134923202668057548305739050247567229788789176589335688378948215061154518688900130924960567051051237415117456237176303477750285869056883129328714962555743170512286485153241483865922506700369165507846550152392782812248020610245376760307661586300801077512790215760555894162284616575879250026696852325893424007508676130029576333946355036871902860247997863176053877213477630386123735441309588090548251196624882033164743471845202660525808891786230040268617964214457422470680938937105290098576337344199396112072840714420779983815943450151025029982878048666153862376790463565677333301853275969097702399993407209051450091601564069040289878047405845892845560116047386426326849824600004521357664775591380844313422076778365408355267340119009582435221075496383784414343528834046861890670623002279505847675319779986372654020310853447704994903546843660423150931853449537881807298968309699806278329671363216620148030664821279572262679639705086921476832975320860609396314196904889196459657593077236134235403263981948886218552624375386099188683503445573641843187567769149814055017358562788887197117934024999075588357817995353440619726941278450979011366832687852795284070676252160139263359977056863755403265505271904824808744165644419347149612630437006442284060489649645162016274907215292360097145774441564931311425515789749963749849605095489926569484023307858468139440613411953149125486781515384184977585640204714411054972599615446699133508446269329002011684385752811902766819686621188509385672857384315928799806898637462350789612673574507560420416512849079860589607997592183313616819970995010418939524586002976459737245025067713977354923278233709389810825829864413012642738856794814904026483363371647793561175115798748709661089772896936947611776399895592767699085603098109396969478700996739724476742061545659766704319501214524276776780604220867746072719387437580894365043807382131640477047972971706826287305156692899779221208265503658648592367107046404004216485864563844986171234544700278725044110394699069721778394482875363173855493957430303237645620175049830882927065663022302484167666298334500477026068458363180185496439736497078773430542721796669126486965506548178511608177193597133739772468518959044400013456679191053897556253000329675122819798156439445335974664130955672225959365845266585251208841293142453504266872953558386209027881331670837872552251904996628222773423641027068732277104972573694651488121233355573870739064578594089431938719203387926965261706300686761178727612410184190300326824029646737204603060092006770205375940573639408072326004632450061699133030897728376541718609787648220261560293790500735265743522264586423094407855384237700947151373768037659127605706954731238383503310289341733684943110133402028463997295339087511524424300466506730896266529415354719404325085452810714798992583513755786291782840862641975491171122794014238518302645127115646551901710686950992260534877901861486204811988663843353941118902849681676568397665374782392414633581241210405629392197949811107424405360035437452702727757865120641987331536237320422056763800341231408722404930378833288214700900844144809619435533520390920341571209503610753943306060724119419231591865801747031106912643309128775844991108478437750272306002509364865231673213180148275941890431369536829236808093922444881035058132073237589502671546282858270888614333780534165560029972651839716057944283785858145016703359384597921003002215232384621552753777316553775830803303901955768449723632335260761633042759138693403436564546326742409013048882608158264329402496950557160332517884351052868191644130063702275994852240485836257681768296248107703356311431104985480830818793861040939810025622914725899698675369056655987071305750296516189371159669238136694773005447143491450460622275551377764694066073158740234725090727450899529978697301229111345053090373256744380384896076839059048330838059405595687956230399174607152952748005954693710372482350225124952125316394212486954301062191574906920388547943391365051275707016150003778615370784503134667172331477766822379239742219277580198757837038629557072450232578999439658854035391042373420567782359773729184245195283802460924702529951213791838049665655109430366656061240861546944764924397693001374898101784130326241615213636620537499458057934027990589932542416164870024642565788152894630757765569200307190511524425822027065009274417054816958712176468264366229330460830016864453512399843793458677159663713439920406996334711013809444224851109876849178834274531662957553563042314689514350477082976196026210534065343922299831429338097724802596399605731407621285668408727268702682204483515448428606670289722504205633985923046526601512199899419221128777791783115627850486313132886842353153169478369707260618878717447382677371533821176302943875457456364112065900732922287481570448797478999067980874394332288359405916506902775216955871230286137702755498324180923514195624932079531208142306590930790030442302437860758102837497242955293843192210415228890538647244114091575322510630307862470486932465567680493973474094721766965173252197558993930778148949442399706951776439057281623423044015952739965875606016354679366478544602751834526202545678702729110405789784523332775859503134896335550057676981763500418411042098992978105279322437846951144687886668432032033123847747517286322735445811238414015882476303129776425008340177146994853275063357834108777076169794791281395897797647171155920193086483993385663379681538132296783263651130359595195898855522267669812194244462541614844182013927373259901246934191650622443492950398366929305288741394675794489343654344104471495614385951202494930402508172528193698003731196332430046995843173842238617228345624201084180264559340523048674464148526032149115370018390847030843295680509270230969682084026245609520369173839589359133495761196652106811407435904962281495841853983181356381664744567154702408136906433754102808666238877866131532947119521008861749803975727106724986019480184837094412627896589389730554652453756558549499781043663610222938154865241568634484228567551697818211877616285464904581010653190419583718784202945378586078234014724869779512410446804209041089326586794250870566182591798137739854789885345211670201454453748883921767143972554571465706573891054128035153164293134326063010836501145315140188695849771919122436313096057519161507341203302418195950899672053935008288598545044253722138085030142010036230752615580394432005854078359825223776002855856050264360092756997255935341147817164071997378967847904294257100219275440825638225814081942884575742660817153263558694533918126252794036882743632101791652208107891972380473814900364508195699722372211942499247382089988926909788615561693264577727555474831244363499601143577195417659479563608540184790511276518721720360355128591038021471807675249788965950328178547419904391520969283398631641463688690533660329080454072101767022244118939894113102807892816665492230644605488963378026638603860542437393967868126813436301914768495221946507512429055487972052888560126702174758506865769822718615800860745575274920099138076504509614161681541966273187438025079120006537133519981710311077915213385298033460212888402729391079758075638690693536155826893368756267996969166705977779830836456490945717641772984761307348324415232770530720104830830075772416671003856978226846822633353020456982271700750793946197349893597208591478354829827325562089518648806546057162395303497105177108767299902322837084265934684338690297574099449402306763389957620893257811493871726082607412929836365599869733278276720117083761567060348845017279591267863857319060491588939301310625977319748763917542071731465916753384480494659584631574688326254584136719507844630303672523054543989571070575396484672593834275529539528796081451466011761861449173102849379227625922986459019373246924024545588137475031785687464608155814262695646699171508913801324322588906769113692843154632220368872041211469132089947101575140148999655528159078515976394464975941994368327659588816100381032440252779559788981019982629433572865988481988986119595390691086022190345118786938947632445262332228424753403219708518695653566407547964128216623198179266452381445135583223076490058966282235299273641922420703818157415343748798145664476860542322083879539649141174856586929423026434069138931936036387262269883379783708507637479924038446053394140921798975523002791812576778036083908694107366835765837143300733631345219627637559343866117211473605806633879565489000129205352067896926531560878243879479102493487847359166170297959370999896088927465836669680629000555751330352336972077475361181904299898078355939769919467667710706911335048575517984947626249640518151647281696165896436367195235879517960536869246128609568147655979708294534293445665702760125423959802011319269193495236739254522227883857824833295769197643999358970941109320086889317978953335209008305210261655971364403677599018693005865939027105015824227461395918923329657352606702516010535341667375651910327312080452733970176837059146569939490308973385466530552508360876871935895677238618420443929724284383840460947217511060950623991026601247202018652219551499651526697858815781192690571989443254869619623226514833873651050560914888728107409687072882018466557270223762028404531297189717219029955059916135524967064614499881095696824058602008240029544397845830717079687509352552680734226761424319345141455813959878539340533640300437365643034508721172131237942046356546538222439946422599132191747121373513317629163725494538907138917230070626727712041569162194424404976577547138748803535630838531181321672913714969034997104845939213470769604335146253897603216003778204307334488460196903892396725027521018441770567450735932521571316846263171654962385396570584370419519221434700360771453109391494430725339129440898725723150078905494758079467301837382999045930205689139561400218012790845073708045561113160525718807383009803944056462132504453686497042554969687836057950897255417455858539126036828213585194972624184777239496272772366403711752684192577966250594070610239584059464971152867886303078922801915740077112749104668829459216904404613385173630705410474550666376793088018044847564079545653646129643431220668953943673595610958874168128397410922119429606521293048979207804883958803601955216236527606416223988628194648229400610631560999241194614053911139173962083006522027831733265274964030869319018385892115180325141967200801700939208570452888498123273038627353825846606725653281242425496434703648605534990837094456047056501517331586049104740444943642906531188437707242456464398642718686882598395065716376533286861879718891504257282740481555511511617316748973262449379408414495456496515889970229441470345597218051840158519340968847808847969635160119981508844442399805603790455381219136646894491647109913508400173674595680574736655595605069021268943464953796869626936042453684492433973722427120403420600235275305358096833485603263341624619669049613363201506315003631905324581344375242344488761950396859417751107800697013704666762254161785590386163451180334251736912306337440251396811836523875737620197186165808810303744494533371746596286231187213323222449458233534393712002382973876200163922442876443357110814917985648432831296560969907049107037888202530275370702063016728872288309081775109080845729010087379344471038591649644396099469824364487343375476370716608851633077946775729389081257210780630054846907202728747069380695540467621321907997377449913958223383236480621103877337953346819342844397212883684339098585021454689164776344241957226914169319683135285416000365900272167487973355584870918382297438241621201457933253468180987308611086965473175793282615837895257389214847234776687438818987237862009878424881406931970729542036913401718250350244712348813934239710638272834156873056112100989157221988079607332470087485330033814439929728774293260640919219054636408605875942946185615013112818990564610589387017110127927911694417229991620160984928447838113314369648437647353909080333797893655047596457848141686953914598086787826415829083915293868687305498979261758577105715603990835411085330159581627384456354495413443352171634779956622510261669534690191586943437727746178060698091823999643722335209642684195698882289176779674752343366586517898883590163008843791878995974913510544968181091729366811845191335397122490929352901170170316490301744166190721940522710417413993533428593852931664314963137788425741873899323115949385771150415432208299252148217454184737005517886954935334862993027110224293885069100020646465624879227242603734025327794887692633313722294530813130869356411955681263392793583525093371794434102569940918584171686565169522422079770373404719456150231690314695536161345612254195004198062660925590065719342613461342453298703515597730358956007348503817311136700286987552821545181317125205673159480099384601729368954662892366227723236908394962911959698760569088542125490702102318548025202997949981820974329180118204327744974113054616079923625758916695920569543121451074073064925212465932743951618058431070961231236319959407367997028993864400871894054536839707509576402432431466614488568592576616169611626540133407588473584689046985990469479227124691419126698029687575875005940739946839195944288996139423087934524039883816150042746741702037672566633875082975055052447238244026853803604174687335820614211847953031629774166241535414383556515780557940288272107856632806326768975797708491659074997074655217571206637018060437800101932337057494188859009157130721524501031910594293492478869655295830781753173222298493869082892935966357301358191393096961182514725893098001653588645332941002217240905323187667357652186697405200680754205829568902285129614492748432711399277465558099278605339554130234575959722156279187233933350369495970352547493002753413694765472032890393566088123509159699496544648280295196521056092796977427887520123882200776351582860305249404461113375761499540365323942355612509053625687772926534252919393388379960730815191732827368107504872418898405782417836747904722192380516738040683779696049470654769061558954128468024689599600789645752806887411532450392905045351447825142044941612475978896279223326662120472388062812553984798603992301878511089136120666215718211163863169897812713135414884098642991120804098242038658043654018826392486934855490613904622993882010558840433039018602400964092386765578336084425325090257504136239890700338500458751697345938413206306474818839891959725727598131670889068317013171702628858467484712957221527697160857548929653509414587387472355195740665828585553948662831272389474975227907065363044923290487194919796196424044585606173875649432322780662807695310841676096639124571763675267593334322402696934502967164281748259318326574928300068335807645607481637664370526475241539322978398293507498452700441750013639542637542602580660407339244464289449041743432387154200983360170471144056715701874916808540376621376198232204234110146990694965366724244818868846736249541904921939512317126255802801105167981858614989876066480884573887722355514986738363833438858697408931518859194913096929483414584014129663748193458467715165912101926300941427705856509586429121858021238637834761470889887482183982997932602231922746916461637438471640067747641704709519410430251236490633992224709436776315389645040619932767695231917818321027914777605785445056544185469036592160735294909915262787489832790785108416034901346173219389108409021075319315646106356542120383877169669286309663756117875462716030570154457086631454730572144583038943998252329429583489916309417763657289155688768894316657220265557468589159943340548938425291518539978490305825291328609644848025025066102102789955133613658279933129833307194511239917660073839076950033190187741416102656275503136405155613532933512635299391270436228021059074494902184104417900162629116711768171917998051335069752301324269672864667623483745619631226931423433169599655113649806024875047316256062124964034170748240769329263997479606221009276042484920721680361521873886974065057849579019721531940083682908886431346432706281966224353840144945423925722273406194999685244280472355878196928877915983043292093280512629393262932443788561467199950559884432584426046424094950702745280570656437036030929199373854363157075352813611843548576708837660364612566906403790782971217436279918114218907976569450336188456387543256737407138378264110669536113021710294725071658543600227798613005485087684702654515107529039696063546384547755219286668986314234106357366602823547514160850493756790205897340564930261202436939344612480493453355556534517313677530203004497522729737364094721371303434631372943765251526844286574250032902588520298965410761805334093561046242267187232293019161056721188936696641210008401951738953190116071105683678443178781661731882435550048101646338805840600872821176651719346021271375547668783184002311604932868346674355779626321806759942096243262099033648882050308534951215652241327545134839221723149530484064615535548498394310745805567124640541850727175214617853101741261887094176005609577077777886154019487494335080804799443112146031833350103043969194127112022341992580170380044117680793111052429543651509821941990655061732842687695266695734643485075452668292353281173354510327842969352749651922228138116125626234644888991177941944833876615057158585604763431228631544877551922561636870182804213444846868372456869071634720876759215441091147626103430516583569235500172003506109306103359183698803841575696907002763337637277333046724698168607545202422365905697529705612519042348121440090615353588746967214819509499538771377966164347157593751236988696767291594420468548025374516255276517246444407540343827632632536320476798245732442652297155387571493108770616323839365934380452272830276936830560986051802517136368189569852667976317223725680258733358014904637884347226424014225920615402102821403160231298336826202877608272053955735349954439081262168543033608373455288938235649091462168794413246440352562415115674519944038462393340727434521795631930006225072975033047190619940279621748552849727495682104452465950458907417125507910387834948172088849401287564745295469024873429216884855214692321574789487238712757332432649523194846396064395663324038697040010060892896540360317618959704117515896721027586606885692340027196926566073610140107398112808411874702954195017001650609247645100841908179674493358640353746585217361161293984744383657782661879121750868723877481208086620532814508609766580952481550798998168546046995044886354534855524314695094130651390943354310126041345053170515462091156390469046627718840180542873757184879457271860409055395640721962343801358011361609940743086636473868859835579295113613080293435460554708346107935511513557707300648450969196688420457315747015413288198637067004880730353003065773206910874815129782556062856445179201668238093677078317834611567825796437660271010248417452494708450507819372045330649982638589487398961404950920171902455978678989714484185209623945741757832403335036209202337437530409983765301992466016453030844056650606697877133632126737769823839583969432855621916908270493745843215018104396803176538050582645038660516040208455490239420421577032490825705231647344649322629496105787649824162965694542528206775145461951863634551473196739026506442005560793144045862137744067098457641395237918608271750561903091707305300117322826453248418916532768923982572176613987815155972550265170543078309230662292107092271173110116618675316110478627007241507163291121540949654958956728561175073440563918217223429911132597013941469257617806078306796534521711981305787765778932891847539624212831319363936000033217304396012241537872386893687101485378104205588773380507213966471938007253333792805716382524215340485578061261529529638420880395965119108056954005447289197200156621247802707527485647947521250506493759619330481973546509318195938877283116533302599856417669497485192961755824393977038726173115652629936423781926500930972543003362660195915130971005049013886308536638802103701797471224163050218031292535903579045339353105943720575745985836929897830534200020159344120220562808445162753150655553604175301628127797125689875967868668184775041852048693385990377876811968660696522742254840454374303817397088349895556835662900483842181354668834362540158887269658138334472890168349437377460872893850768740339686705117926476890465331736130230810467424648420966692676828017447213916816384078453477007070951012605991123364268673758413994146060124015288742265866215892795042629547137084060096779000922675775990622130245003867516411872082073045991816179390028109347115523381057960494319999492878273946471027282079049963951468520414903544976888137282255353566537670083697020748550084964668634319090862664410107612061827911193554719236951195462087621267825627266915345937756681589047594712534738448575490627147240581783304908082449047842305933739009163063358208695248737460192422133980881914966310335849781741713154335205821163436176770958075117090200953046498925806005773020110605970985394532633174569616773790645089544534696130562273830222228475837366440129851727177087599134517630600836308556837859092595528997830264879014821881313500038847234868334837641179491326029388474523313114082629069739005831943091293121146942515914830666704464267288322083480047065646851122078235043112258286747893269579715852964185827580573644685060721924754093258561518424170148505472239544789302445163913958350426897653976525714176037235282455740269051771952827471436905849926869604253040549022399717683510592744405048609791375712217587224578059244004514608166921229789222169776276276310935270095765698195265103918593127668972588583709114175858728332736052566703879970448592846608959984949844682901032281057461044350456150077113812320322752876736155809321428137155832081679108852457726195308219766374269996467318898881418020477157344374801122286679622998671374158689493475778107998137368125754071198105057834917232319791196798818967360273945715450609705982076397158333715109038392741443581259016680495932292631228417561538139319727986377148136154086908001028119023051973570266664682785395427092246738062092428217539566295534999335734645947837730817563662929899181881426931316449250556194315096067256563488420398692959994806909307109357860322919333895023208188289810068006052608286411951272884463258037878297614772412317040750798139776758702958196764735756343536939467577914771304831409776080092154695490179162093091578076003830936756807990651872824598346213286658260033373030314052258527079093943002224706655394522738289704740641495848491972662158972766612264614507859314014405845747030389677329911609971027706960702161886455663853919876785432242404244091105684339078858729413707004542530728007957137644564577479006136350765531903698141174867845372646226755480334922092810385450090582061200491960951159968547904369397718461480970374441812022205471360395677035346371508057981223946102749773841111765677883827988939821924981847165205373509832745575105524700444222630139966623479886605853533066187509697670112717025068205728974426659706948034946002418180415533667515609130989941078601548342754315383277412206795441300316427094484168840468645218476453201360113030899441311540816340168368122233092973542779246086216212490430091106318643079504977003943277015581282710034449465842248735712504505547776090241540769230042923788314578550325027326641252480627130686719982418295591346555070505612194167881302708495850315305405124499761750664932949458205812297163880060500662682369313542062560841428612419884360057542464513141642453579084182336645286250145192715491660647019192422310706081023336295196671587738214299794926331172492493087595116428177844330406091390704766499127492792134593910424319460166920138701026111594642494144739550998037944813206930478491735961490436747443044565969453439538583176469480580205007337775026589756567949420847413951215841601628467399177385328912592983773490545744796510991195310977848063467602767584484664508467109844586620682838091648801735765580682996275533257873682851866593749759933706076464334546554157399961796568570017170632533245408032845106361116387651642918223122823272180665623757262981770816939836523796611723326646546906251190746654529122561057650014571050622399780386408360244139375748777613613181594994508060594859794730684476150019590141104849936941483654247023882341548634664666585730711884205823708555799679580606575034350569347049403346522575286763950945548529023978193099493231876063399931106583324828101915469226071879173087131154438400735751412206415362001775991785203452871399091890103977654724254796806962248271389190316012202003638429711102067714224344384562990869417444793065773942087033638150175833215242082126483005826634699095137203419613689655495696134154281329329569462052356506682591982823275188310040167979762513127097605328536270589686327913997504056453801647014069075723173607737591935060552410161532783917464858176599474153231416314461258566147452593292373324308583054023049817559309020124751371683512800422479263174764067983838849344234864104456107316142881670516002672293128398608627283429985730142432211322006149406641824783687151005095133118725797288472802979044526938263110493375417629681744116259957400891576934483834759233096543296493210006698277716778513987946415515325046362326545060286449223383637145238020730816486078798165524969607989882208062823406775232629625847770338891362258292855531937829569999827205789295468889694125066900673551922028249606096492975534242495391085233162564927257273510026682130964818707058678593384982572461858333772060056429892749854481422309523889042846327239159521585738342598137925023189984590423403302949524437769972610187176625160469248872892679021142723989149384121537202767227121699484100911186019465809794004061513031269720039121549378546832800335830260861768635906545782576926938360847943601710423694432530479699004479432156253525549595988258792553842078522865750537189866077048582235981548613504619807908296968066872342199642741108072836584370962427972883733079211080524850662424959375699716817646880401378213615027340991161699759677427292508180003398614054462258665691473027141092902746730506000348362454449311637042911553207183030886741350469872534618333675283034501289074724187111312049842518366651333683664912218044012266900980527838969396576433649164199815796574907187235706988774663253973909638121475947000578444470335094514810995396783926591833663022530583108479118237141212442490531886714620433694785230322259336460077715673898996751931794779248617082004437264951958268240286366710833485912759786432118011960364487302381290963651556764885078294928053189106138232444592581525951223012709211855946901372913488993562928157895914110929619389622022888240523052645882555161390022072965320480944991444346589000978454749307600566140731464271633983817600499818036244306072433614532884082088900286178703035547835739195250719126719388258400445448736890234618865350538823760643711195063322540745183404296320223333640110580602635811032596270493460941593549279867169741839058921036969673505230811021102284257408144600112166408102711861607052705172512766063509343337517680769974208768468076354636418228741192378647940017876832330325519307485740896011586449851652917739398179764557110426039280588929555930907900572540472661032667947406590021067855596693883948602394513892781353138461402277261904652481931718890927026426023601476498680459746285148707391480031234495744893294398185355768437904288275972033541288699572020978010730181570056849004617725441548076167238973238234390485152125207110909000023561114853723234673938308561918323397236302112333650280355472077273987642977999532491269721103820605466765709719850841969237156644173452478820144512628975872459659779989608642470023605777633067747665516116512243525954033544865562620073475278143357721928489283209733635622580617484466704430565948375582957912769022501825160631293578300827663997572897313407720099370557687515237912722667680611376221938360826276038978686818924476091091246411870210539563233059746078041517693476557862129231985024620405857438476142203591484201660563390118207193142203144186506920922842314447165376445810091104092977714342372833078194365631840494203441732509191034820367569363194164356991744957783640647960505695548858929530532433359255323614026424090502565919060098998987094841398845970641087178506508971456906536151339741125448709903283782884169513740881069901531850538102704295811009986466175272743011865339622804898714824775268056478561308138904830169998783456748430450957273180215732407628720444267498815172595391954726506787367425963536307246544759519059977969437512867663468983503477685046783409478053991112045652097717816619600179752050626828234326872023641814186013659400163372853124423842912957859230519435667760954002411153112475487429571562141659513909826467248294529777329235955746706982945624965344856455383126740559550817575280724521209019342855583433049931139155455596045198533196852010724458270864035114071664833144216672002193634716698684169120407980488691527081680161883813597909045881484757548208609827681008372297795700742461839874665420179756806993395647805295233197903700651865575668202239542405032232096076958083766244120472107311979578550923087808485229461241423558226743903706938718484051402388459688283715721065415886053661921097849192356510411725520072696372801673307842269895307720334727742661832526871793988369237371773106552451042082123480614450813821277890174349742550416023027434027873491346679518242285217411910010063588028545685293309057320742330427081687972242557388069416053374361924950524549474330295326584394397301844526244036042073761006716268479511031976813288538283571796150755951512350845313534144257223310321698823568364682809883617451690877001431653065741284592237505636475589082681826570253692057581250604739819385261491989543252265502331690942751587022476877142438246838668903771566862360098170205238739504310749845364159753102471191762473515436089626812371495965821744168722666721606314876132142266317566250730785825188480693459016096481500483402841387308844600469552610994143649073533408994522370736066366153377857435382700705350837906485505322742102838974471452616943617857406502816619789712365939134405514328135862948944087337785138916647813175829839475932849010441393918157526132290867555233054159513984731366088312537025320964983139392705312404415655984772215398929336759373662956678707618854976456327296845273903554612512020598537722954548357386204367279680232838607904585562993173979400695007078462415208811980840806402240176697768280370931224343712352353411748355525012327415706734630248053133125201220466532738645960030792039122631858908708104777108207679933036116230039818354973205664137113221153531905224353407391548577557506119851465262686924861685713153205371106053954638754325878736374030314657381738666318727459243853346717189829755465284596343883074494828622728155442300000573681970275546805586010931903038819948853490626704356913429829733986018837085686253758486461048905199717896808464785937032993064099085328508660204000466410062786935305998896645620883736337437862819545631310849694304648369276654089030675418575345883214683705237451874014279283233062586760225354925958582040519130150051585313616965857479687380653670838124870483576271406969727139533087555168827199759180812823251518337197298746928028606403372929473222921537540714189683430636905960010660739199424603359077401145002754982539056426597938174149173283873176629028785022127789635317652082463961520212355090837130640160524805727731024966361370090128189302491061961106093529376686051772248966556438084858401487682764225069285129615751106571509218024592141454056660390958947827214051441649121954991556706867912986702226677962545330088788000281724893534819304862055784644345462953640110118721450447089402851868599472331908953981369367654133675163180695393055627885149832409001722407587664285982121160293171177931028974623193979974088988118172908550190384267292755329815804445665188710353503099522560463369615717140370003379196926932014949335454141813169867885491082313956908107998920610027143770568155272799491378366480446982663131770056289059784792685893920624842793921432237277512446940175790609947005977995802184598695322835483260432507712867593296158791664521517950735752362256432558671059495560172054550587213357188406224016814259462459620634221010279590663939216208513136195717993633602010092171628990604192119374856445485978918493993870792369133941429505669481770916287768166892963683915211709022539779972325215549157252177299344171969184375457724062306497050980789528398702786112345572575296831000586571312601765312531634077980421098384973809473456666025876095966357443393626112653262215706323519342013301371779093315086565916157721977525418476060783286907037976783346948783336548870208792941529032078586231546347026994184048268342603609783088464466371246197464351130307438972428263440268276043218562059550510085874298711570487404826710114795115029175065816612143109896528319660182089040307215929575415869024756854326853186432788065801175647257230536707152963442867011110869261894336504292434407169379885512135399196914563728781690924725920204233341200057093341008212666304303324979476294437447235257268961639225262083343396168725915433349182111227745604569910216135348387249471693154087129951142101794658435239900471792441105785874133982271106244668854159834794196312369593945496298333629690632096089169586728311562064310485647586178644580950189509147847200770852491563283748840177759495758181812664264271467069507673286297298666834986282128941699505633970860600137789635550488157592631708652824062609382222760784334364914970441701501284910322150084010315387679138273307357666849228440999610968228658595947134126929197755596975961617274404933325838104126954878282438864191669780515645296625501848121023705240494322571865585081231597709725513736875782374803618897947779202859390374991586745624918647780765564737237906069402756650881466268324167396573082333527666803245439904480932874977848960005004645616189406183293622949829836142106304595829964035699423001387425546768815147503073870833544871263195863408584923882931505481445258924140063841394034982596208780580421199699192269000431071105030620334719561244932368868536870295858827493374412459208278293580843950340595488514543924849259898833708353135144566381460471611672796585876300240954214964016889914172240639107023152631771534862640400448796907012111277757482911868651443131774883806232261182480447541599767201473626371275980918922309056880451046978261274464853750109465388921548613387349098971717377951667498350254055722541329282713816496848119391939229156952085323903011879273474785173777390678587096458636844648892409093806423864593256937320039616091277178798199866050389744503466569611505269263808502249361980060723085585926176426599992790876737529557276620270902275720328062383120761939511327766931840496401596618604699858856392493961714640755860926454230130818617660302511600236598470390413553594349219637522407924880861725852885351108062025531414739501629205749681556694463789036062876986493512627442352109699185029250573321438498849398661277679621392351361955274309802665227600979587946027665648845553640947064098366890863307079684064469398775229075340750022116332018208551830395079643015531606371183453783829128565517313798644531229250295145172987053710046533209180236448268086756355544525051348260832817016270314075960945222146817866544664524385923503854254404529168114421596761255033661530203160426772333577235640408466792117701850723293288849127981787435804880236341279318319046584692602423348538005608215245254845679373800239638029456235678384092790352552730708804496082649767622360281639309411919358347184926654996527496894713392937836608550030940919624113123014634970143803243682816516189079270667431408866819680833688584193987455203221570276300949001328244587019647192870181985994801667563545123248494724812918263229350458742181368622047368436194259171716545137530683553894217562432787022614748101358655013649169934331489318967817425635950189477716569048435775235648058520136514284460799285772663510108944143669384581821186148831442707618775825058751857907602963582580552004877479895819759227455163907543881224375692679136272600329503038742490126925743140865030895165632875987346742551482952842866173906925371971247858641913280480038199943577745196111782429347513955610809079896583111140990483187057372602266776052526758545927748724310123063927822733753111856129758593259108198688844751394013898216225006702436009644272555641402692069940073581139850719060544364219867821084100953432086294143313966396906325080418823316086402815642667006544606880347589047230631970774616033179690444297023541361683831554044519692683643543762741613436409888876376452817506273227294623126767590830596322058062218447580114277198526756974179588031345564172300869306305162907899445057896470306744806355386054781157996555350755979180822985717234253361160764877165037154444447829288234473349726014720911208933526603825806145270089464857944111535161004396199003840778294397584016407193689681635640538508610057439240435234992194525185448916878624017913009090025611664012209966661830035372211704667899059544455390857288635951025642993506532655475982997820098910921422972993863829046950083342981992038897295463923371970458977716428556281872517809619672675991546863370773054750725595516697620820725956195286945395165501163949059799762446147155893398341462948752233622702036919929380665024434251292986490019302095838386746693317413767890290670940153160896547831761346627779774877547980185619892544586530486193026447341389026681816294952687740649734528245665900127323306643335666313472294902315960439641733412391118207977478271665854158313966622089070947643867967891981879852335358200923966883351506940046761198070542993139081831461612610265606518438537519252609739257970256937594449618840028458655256344374151416301587069905089481992101336439076121393797881093635905558827198487717729552018454993361727057063177642915076165654462091504945005988248307304643281076844790591126781475990404690822819048686257214749577106981408005243697095918838441701355463791068914048320563394860013241151052580898323377509325839191840168114227134196595612785039742798370166301294138633010561160046153643580508619540496341526015510096557665950426032279984385672936139833027464014647203113213680388216565309470248725657471188160849269193724423575244328512429855622922178620199794850429760933057704396141599009205187405629305498919116036274502938374424744263532358950222771744811403876673668522579635949695223612389745238626020711080228966767507304167711709450485076587429833472146984624138380810152401098238492915803754451903613452203729265431467650677697334054003885585352321572942810550597495623367632733372434217333461187517566819308712908304066517961650073246709808676150560347240520474896637688119692156238332062654837823514854892436863998337687367724406883559403782338339700842999074281798595595374186028070824232072706601982582577872448732088343145429980670419982131078540590972097825798515446808508500033896099945527241576810613680099201028123369224600318651110100282282152098838546668516255360421873414305767993208448822645000638832357417465207802487082846590632650702851319224681964850401602808091311967206058084484692829097567274892048256297370445022941256564452005425968488324095210133820584798379637357138354901987703313919567921992262213309516614025408743012442282879799366349296004916224534909399178892046402713589014183897834584304108808081882131068263956011704220356398424902304864467180915374429432051111259990283052987311443833501589778166964117848624387693009950157660221398913770421485874699224279143399267145712898837205050564709733034723419786546843544457168142215462925606865451542222447983876223884178099680450558119472659608758966276181383034919470866625859618218095098520423460870219952528331199012304299074386518151745115058850569287451729658680005946267417412156313859598342280231075897012502930381222794307634873994878692126503803478346331147918262936284154710720902843176273036214092774914895039140186882498202629089142023956821759834433399896853492361859109781702520257158573910932407308125122801644132242551677372446146318109540831300986693298627841460341655748249287294654398638404467429952249613650446964588297934519671819755170720504537091409616332143942216922812710576740101587805429831597325018006382921302399608396248567568775465069311164381307605061086179028797234292846569154648542285112285833632487686199281536192228053119683974865719405631732387278730641500378353126120825457914129633822869309447604099247335975081877031203370976971199222715846289743877380277597638947422215572770176951073865622559750734505849584106279270207420458770805961601958017345674705918481796821452404373201928986140436318849657399872964269111659021466139436569149698332215238940725358915301004712295982760922193860175945763941796732596219039031786084480336424252810559099078217103572763183578063935801127067132417533883918652797082629753748203905143713938537853256371721023944715361527827717702954443441003150875852049278418923763237208098910355161812661520558371005659742038861909761045835787902894375630139092603905531682266744583830075301602049235683837994860187093959846511266324768403360327413589172963844220506173416476243048689046851610040926077070923241678103741982420575278912417338564448705015053596524537421618555366036146880349262320524660035702537836437752745841413614539623158152767522413646623341430049787119424741727705069311518229440563385948800908598473989538174590448657215504649992155846169642898227838195575687262083882090449041219625577983192543236522657574212128731927557289559224085220610417993114844086667038573637868627124379668617585693791097673213621295823542396453891598677469464996883043593768257544206121548060010002159778618528124430169143141299594203166678458045909886370822898903829257565043574728804128059284947284982804852038685831933783886426725431674582309630048058570981656112566541847822279506384851807722844143962175338385916079901928365671355357004673274290188446477452139856577880397640438885813419391781672171930577316311099002787684675151981006424190625101888487721703498689311101087795778157079203254771355004643179907382673698558767631921254019700787035721710930430709296755628776458425056041242129262877751369884511984864166591220772597675276262571012028591049112081347970374202778548781574844008783087061573765061959508802725107551258126365957129477202371924833259736098941247206972290946423766631129373866910972978975810743211819409903779341183126156492255786750128922928508646002636650541843424808834519431736701217862069125112939498155248316717452391952440323691094572423020184046163069757066253591052960807795946718448591384074335011503856679021478649798413671714190774819617671201308803581270682945334210921370594788163340507578254510541086411979432972323778522843032834781767495484201534737062607730866137331177837040687159305327014421159412757209050520070085483980383989317308166651868133058002996519339543545911207003558060729461078595150155227323782915490937786059500132051261808099371811923946886210979859108183807193422057331276867870132553827423524516839443622474028312305899392237101874425692120413561331952618668259083589072922143610785587090445721266429608382912254885765068549348037822042872024039759855163579449034076095985235691789238037559287735422727797797814499084298201204855293026945388347932751306307237009649916500821072215679728844190464145206455963919290706026300027954515025326892087655367279393458553006609099643945336656589355444883455904168843764421458453102550927661147396689005496885530980383351745223782501206380099133914042636608818342636347503221641740952619657744581236168362024887237358374683380998517907262245617895516665390610892795272723040041181377954928057616755129370112684782974917996101438989129562508968607523733321234545711141626576484589903490028976539337431196378853553710994292074573180346930451520926649456580698376334222851083233365008267838685085632244350687248876093103366464777175104404958649966696106003867514168869645278080881555089306651840315311636897134504767082652029055057525457126866427729736277186596066359189840808967445550084524263430461692298454367351258436871556891221387639121933017874908398103500490397779335353684426294782742029205224841162244067542239238820996584377525166494598213342533567552874844888769883501577912509522159757545799193321181760166034576149148402807952126959630957748266981092980202507696374201608349980907955039214566517316657312889623241687767445503966039087436072330555407773046171250135670475195310540677958115133045442003549855529379396398516437123876952093188943422530578321805207939003976460133973301314123182542905609817817698131741888380286922793049416062778211429847971697351155126486724910222568582648567957486868549382002892674405036718116156076686892007248927255909131783711621983408451206613433114330204634383072221242036157833767706337413769265873918740535570174391432009041048172941291745337508451583418283794277519953477768352070244405735405599934312068343148381676589809884155664614812688778827853805923450214362782714577319106961627390926614817972340897972128131344342171872324622059954388205123523619162957300906602240175043261746300056041751465998668040658746509781281979179081351943716137685462668052750050053721910791451027497193602729849192043125159117487465534962219124643529983600097867152435870538378480642376511391129647012159288696746361799348892207403962018014532346748616597445208952596119955538816506872472900755977446263097895839606533578773274648662556434216535607760792419318059685798749558775478617888716523721436719139110191852977537578237133426479082706365883581216007320586222243088030925911208190731839266107641191022482913598265797102689600988462524308178955684985684952684248328180644364827387956978378008709283362355557680352866208216211323509078424170885481480954116911592839912760553044691648847108686087990620030530707756023739336301025582345134743289335078579717505069596282578023361084906784622936627022440822502914667628486330032684887389501956632812194597122065364066519604508807024459111529662418477708699622797402249072493755980500929541935484997796806440011959237160102642669387047275014059730595486904739130948028383197234539534476320930525818824476590397789746457867278794138777159592177163739656479013734482161425274399982802761138905935737306406146279148989554520469928482238862521355692151837268175198239833678381906162908275369483172414024419110606215112650122422624474034896096553954952694200304573490200289239838266628581829191983945486786223288319863338386298536042463770149964036001637684539759168883703919484997898688708495870679201942410130722405912665209709557332202296624218636240972750229931342234222323499187741504011216471185946481036656464845433267832766333511321519031053756893099955043638597998364617860755800052495823039815854344439781658104746403904860116061827844934519660137272629638543884141566199971424561520904752285867691983719329194434974283612129576864224827805858003700498738700026886532162829838778467922074156872767828694519980538359594431396979723819691333883113571144514988917332742835678673330681291929940124669211666002866381157845239682619662132787651797261840944538901592788548054710841674764289736997776669763891012419054033324586676879750165601671994897783009746417734305936780981422092457190608923373531455461535662453423366170939945863602575488562874524942985225975706372661804027408674495752823194999680489215099868624895958835574030541307877646651568047233475036418624819646099574686531663703704761368304358024988498239757579894676923152663059584654498374221952828548278392966722073318009068780999172344474838974828826260090538049446740606068799075297431704772278679641122065110545180391768283614154598941706643075880002596526233132393814324145484343663149451937463636272998474641639156315687869911441365257130881850835256011250392291650961878730426651880127798633192212004981965546218842364068218830628241595449746496699425521072752915251757408933660833815613621693496111869867870949388767313505723558103445236686503689433862028707701455165566683299590930675580489819367292992518658156786338668689505057572681554694038899357006321053248495159962755059437324728392475287981282149757272215794560012776735941976539114834840070755385671796542295279708194482265684548463822479723614433866767847679550432523571724829454003028908473611045782989697385266356926024510114830603762253369296284803074531650973335220383524380283845526927107843980310536227364638783305024904712135036458446579982265002833229085204567206866863589760443849852335430325880279617425479221503011602673596383066121600392764649363368458679688184520499128903601553981517813611466739293993267132572846965686450817611813215175127946288103819497209337024142088234909721948791115634594279158387368928992669249204673683089867524837267959095963720837542553389184358938599925072302590013457141322889669113970941378076910489736504748125873163431666671069535360199390373897850353574519922046776121068159283404786899060433099178310136811355478884354523598761046546054560117857716118818189222961348139797621313889660095967460225871048830222444713354429116832772865395609373384574075185193776143435649565826613414917189422762036437855031723085142332477544450462462935992033316386168926693404532459766219393480661340378719311234586007069906896560829256038970333890587165276222752379557801396490297029743987906825965963158932783283527785483604019248123142380739685577463077916234374753998841987571754041313822508688284388274010213268462454259228010858908667768322151606106829733592199296631530734272716819695984205948420197207375292795095379889227008118305197733897759633401404209527349606212444194489028853824283872597786696139385306390699072049902669684608983024140741951875460338599979701003829175017806997984096822500354974104686376831205708822872580265150959804691168541538491580884559854978637355673114057435898202990844381428944592830738540181519892812850982648738890448619964175958862923902270369394802695944408330778039297624476916298106042562999187609188514009662389707505323534622143148347789861741801983900073366724735003025095593657930963137434109376561283613031262068318169244165305586135712055066417161485538547853883429234243335265893669674869483612579490044465925922133727659968085105878072797847314730213375524759031032479980861997383015334134280569127203696746355671346003642328075335546093542089878582270150154193469414056318983126845814396951120969207892124962413600458255562914784361899655580825437954492888035137150291804676332385287232797793551696498279847317306155983653835434967645172837766614041696912589993556969185097733157438889727659162372679606660565562302663498061377691650002833015484834262300513999954236845304519680034178339424997805542318924175123884140153642977329087322578585591457393511469787398560884682544630657583170298610333961131975525890456404958857283785646954393099145456872098308600403136569011152932498175751812242108316889353499335322995297318027055635771480887326270049505301219677300353365544516736750847957685650945957632588032026410765275703450320746188402320792174225669871050286696790703789224619620628390109329564201333752852421334952976384973968828706392121921928380652388023359316437684987913915022720248058775722551101509859984883107958716297625836990159077962772930218912657011512372685048330294251357484436370969039755801782067874638862811840980635515925776115351731032222858186814205738888261810058489025404236524297608465202537256544642296792522679288550110717080007060085855129647837521665591579734146237827261546767014639730805129708921782059851378793586511245254475110180414949321973041832739707069862708756204643564971151196395539661836112629650113517303971574466846332726553234181397051715595644411655162469461714501614260377416194358940467814654456350859181550693255994184769224582519264585964049033580885681073047762468504273931537003354072116713002525652993615309006059190360130111930546224472983123854173788564044048483347790621464420024316022504632131491334451900019165432947424474403220299608265153833487742213903277928693519888327941209966341987281639608055425702083648535608435265566523187572352615142456164174232076609296398969061879011725506937751942133610334552705297627137880663999212773182924290593788400919044153554557342568728153233042928470527797622187318656857815019472651140536240562616643760734808357708545395138141634059198049830660326022249171183736552462103409308776797341947093988196330574725281206303527187453784540527043714190012543595878141970003700359317463959571153877739861032152376936547245548100075530210220437711243840944440490439125115218794870823275530807326267168355975594959336085258060237842658957558421034906233703255469128014239645667922262903447916775236623148573562317949290454732314469649874898911958213866101530721515259723237325377189185037080703584775264649506880902941172642436978888848058328762836469650926657173042960350858861291083941415948605242891141303047406270034752402025203043376869541919790073440090560464853834273257819828126985966224035162791657432340969707686968159599169165363097564902531621460945471708927822532431981944906274120128559924108851803462564982874820296933735556682554033058305861478791678615732280600537103099721997181621478722837431194640112936435454522048364610241190998803520301270942229780856290040231478485303980663275088652873317510781696100589131136192686247569333380396907513331793652192114305160449263853567958059431197237996958050943596742348189049653314573184857322763697071064079975506061093003120321667591216766228053462420750270871927316594865171145368099206705463481478398197159171563152559648912083977376140274887589004213978822658638706671500146135423200915724332966873662581269571456808138107550367133330526625933322414504804945214911931573743228521269142188216686005179197724725506014714193106111010065155403026821377686095098411916382970484131986910601890142499428799247806125849609714919253664113745458158730755085063199807942865802096159820055921864395610664921132853783314290511702734199442171265800331846208128505626205448583057221319360263457302233149437653677754078617260033761489877064743023284512319418577180737401670514780246726296333505814938755962972828430295405886712167591909296399775535327004159762144443753333246567987496333519070045528319255630807724408845940310265086582251781204402508853034531214736352782095775121017771013543032547513611273368430200115847586951064349443297009088026055676712139368603795136999016218929944745215079629485474373115522440433659494984238785523690988734561595109243780261106406433979212929630847238231905076898378260950073307973131818589203602716116832999018276702853891945784522594524727766131436912643450214274402968059343072162195971719414904432872612500053416987245638745353443694635828826573292795693642543061394648984065692137915730483578173980679577597976413060841382558484079848665771676282706059616768064354886881504588122054012955157273758979714520977265414932905207382538033780962657656475196973650316216255094752108990712777033700805338649566377455790253254878587973168860830639783594742849862500266130260257385055578377861125358165969538454943683932342829265770316016608373245489323072700320767956719187093898118453181164902082656250681912879822513816762509444531636582495412631731634436595543292711721254172581088959670917588384668574946743599141935507047718126913405898245111911932629973625583690289258046718694810407682255024158347523180034356493101710945122746303051502797909802659918973957625964100592186538371259224317953249486342668084312965231272968255811449338282491174080964680018364524085594828825071957632455116492539244941603370050170143627722072159415844069512395493514471840664624649737868824748356218536026963582353763612832643580380256600971976829370670127666024775657374062378965250090644972820848816608348641688182686104788974519793454347473525940551928707082369914871731326035893931593935290519843496959340730675329924366824312890781014699642148792005035783215760869129499769130231539839748743571746912194453894540378295171327709677990736796525533301326612999333805522726981414140007269680076235666196970528131878135986189460381383420686516344178947672608300157477011418569322763032880041256693105007394553040845927590599614439221424688618197491613253600653853885944303478887765653371951864409533950998258000761327833036050814552478463550820611567742978955928865654594668426581575653318873157885426244966027963422812205024219414090964781713780765496332905540975809912387063037710659479505265092677645415295345854466498766784990503841215915601435131574069508438437227924341601118172033887574624268510890809889804327027259078490225234489499024508027172911106638491773819886073318267094997223029916072615138368275556026159706812563945615149817310463707165008176311256355882266883790875108769740812434527617951847956496020723939330859573475641525757528502850137013517195514090065643135306362003474430349324223636215629839323978838690421684351851775021240818850093194915749284268901402283352613737925445543824423605909242569561495056277877263899144901962361354430538765258982408085988636838186117127295234794278369108510559429197709938949403776617408874585474320729123446975041214247061073178845884132375087857615247104896519479036823347191933082818825127661210417421005118364424069870208267574646775379401573505720949518611732780952950443385621845652405855951257836157777617109691794839801119217230245263829007786078208367040948245121421083822665119346736699502616288641849913391788287828437101111732900202180124433493926239778546053896820262711531227445479053444953306846596084428556111571433643967061666091854555598066546408031986000116266850951483331825334158791779045337332111291437791523618305574868023602069733020646700633794388556337611809000212193891575137425874489971093182664121755822932500516638238467262963217230795819194211409841453453764599912077266922857161362706298007622060706175281928744075428185906229666060256027512987684953243176790613898851447951307229399587720004417841425385977242109406195364136012417522276896934168940979181204411394409140898051293971067673162489088955167659751297245277824584950999685142898841630014832285824329055708495403107795723259650820914334148712313385793353825003753682262081675875326636911650448065908596640309726736196464520313005620330837900553385373151600766161646044931053104486574891425171904316727696005426524605726835456382063797498982799562708687734575191840944830826315911098306465266405841716173967265729078649763562536736567968265454581192463325578786047417660310356640310587982162542624890018350374276377804569416383193637017195225660216158314217693932546258460624861843222223619175339367687876406906911052849230790109433531996762707412485248070082267361208644082037973793348872655246428251493330778692051262883975922393787576765073398561517129295633759190857942652726795002086670174197249997245128848890066396113548665099658220869783089699494329739637605260194462713270729106058308040519277907132675507451929489053922942859671863398339976940730258373131700364779941019645829646131025805979770543767737586788760854383841549723481949679926542537686575292426891741271965214597231980327534725289593761864200862340387394598327807284399542567831725884602783712412643222833087404377279313678868478074512207283738043398502193812771512119608368121609277528704988438481147069063561880566978817161837121709519674069222893048175247048130526583701017602011487469896155232349999450460714050399891502004649210047381687448957212090182662867294035598665310128155167773232726440295039553714403595331406483842520096130270445462704594514313204064264243342012957960935547247170675679541264463587094371051935664066842570722760697747149957559772723955453449838302695037535587456098129262414186686198129915620345200510598833286890537199378913941579505157203642588596748370184963434354454777437807419305459237153080159902973071776811199972215812620549652391842057206908500605702482673591972207770308403718559175517207184198994384593049574067675093088047859855968786182402384043929675230765165567930262412074638456797090006851980130052161507237999518198955410067834976759190697397220510071969670431220785492059767171686835093490133368022713100962528152685037220943174320270184360822461294888566395414452188746931705648952711136071627536124435354350320784526399298195916064554044905101046739580339151253125935675094560885673640684300583702981634597727572898872697082108281418095569894274870319695029271213418394089296784434132703475487028736695339230002957898876072655846349694869948321447456199037603063256204145467438616230224552399630963129879825173855458993192691741015599573759522917382498580065371467397716159706491536046157652666682351211060126988504286297785606683135790446537343594876638731113483788317992971470389446584462868244361903785406078336235052314404889627981748846604898103674654512856363742941872921477564789102329913408950142049200025330129327161320373822035619255619868643390559788081552585717083818436204643403382598512236499671720386755692406507684057943146350672988513311761838826868914670541380772852180203599751554346451446878161778889442639012908734746815470351158062146230056119070652681688946914316490386458084503623553313345936179253645074309918231490367045354559945491797810320913282695098000303792113717318659475367142092243039621476952358112716397873135343221606373061061996439992217483719360795448835077307102400732217720885402291362748608316529828042545671854875037753565957555422075174007098877769414660451250799971190727922655699256464754597680024808930058865609609011580261853189315975857650471711900319490011142538835994952911180543149621607514071003305373659613305743907408453118956908853587447840222862299013342737786613681306261636908506949954194830297647872970272199848895601080965133838070465056149235677030215506669992972603780985611647124776904569827697890898296332457561016145653482938912939071447425060024855926902957638000299514489826092729816524271933500733828884449454767228389429858598556180244729756369656434157828115736347724446591144683039403107861171268672832023190579658008828251504233816655638667540836671990611904549381023548118366715685226953420456403773328362681418712270237738518702216719950808229723921333216104209192792823502910274367618855646025260583221658573132241401362883112706832102495661968504479938565796643016473213477163847333670200034652742069816962549317703895774333012979764266431824596973371791804777112120380001021126533945454563680719940873593043007133284317834554903640737231467093577578818077339992801756689499268278819026318696823323936179738745565714346655285611546103177259953325795513784221885332809387409069946027165166616369189345635473223868555363259193120733492374183928302769682539891979113343248914938173596300817538379344202152150184249977529630828224529024094261938374623247460966350636568584338821249975266683011262183586153139136817939859633388561707020494822173634201172294226984067562678222246553042236139892977920190566791593675484135606764906392739609334208759800238125476512746561786252130116451433664018070184747148897095916606393448449049034137779770081412094157024784328196131961249297091864272123615540772705532985714702701593608469190417540545756021727133317196557291210159954048604402708493945825323715125944131216638738918712143208586600493347066671834954560666850397093162862897499920516468781420284591186173691577533965571355485473338456275271670098529664516426125577975651168286709684539905842030875786575027653733419375220588244959428323017850279631984690877517552250400830548668711593877002602410786346140921099408327739164633629805105907903508466248012163428806504789555250009596934041572317358854600537339091215649084874507226111229732695821108360317953683574935300387913013518290158430844386538854161287884338076631613254299237121529820351542299223439331257215651889200495419883628084663873225526560649277063686573897916258460573602993954284722565862709854189652937136027843442917982104793554303999953677096918627606104434073624801350856847157517902911284043002713302399755317864407730060277988391007262644518610988722607824843330967805880909730231422961545500059134602644053168933413804019693998884017597514767441177460545998847790949843211832016841867130728558854055367537133559321373956426588033434229911613256885891949788573357802775506835985615485077681289650573168055436846439339516702240991660057519129488243768651654601319014818117938224313578372779789843879762627658641651397178572329591765636023279072357766742247957637640783436672638147291504521240731186391608072889681216887328180865676417305655906332032149155441705354525194193148024043079442718963173859357745851541216500175284904694275137115640991847341794963529824088972180297993974999781887404164798728953508164211074985420338071674780818166663373397014673046832760638152969477458382702750977834405547521269464382499163446646038277674504970608946794177055838341188366671054216711105378140971547691441021785353140103485185413127712648375165304348171793556779780718321809369327193983137019975277915810629289276270099733360590497960241988908623860027928305170387149862406599725816877186137220695402992393269071926037876529268156787625114794643031905970378589432906640369415593662976299711100785590160279321353578425626263884693045971338475354420648009027129648020389727116610071737201227684846624480008694176221483379076489779044771941511465669131139273384379076189791377093461287833735968675008140698338867556660727872871063128325437921890596616810178795110172572856420442413436301886185034004460079991585398122715986749635470733387161713214043511215920344422832935852921614527411820597720835253308112924717622831313014896391409889520958205142552584451787621737122994325453462297033203079763783135977305049361273564158711559745362940280323986117763668517779634778722613720715369557351944333299277506891317170449136446049492816052356343426084471066888799125694038278284632023905445608019852394258219716182579598012153880074335041920374225798978457551147160387080144570447275692345307136240219885774359600076260138154743725345342698511627671807179580366138236646954769737643192653286601912197339750584897050008018189395985080780977419168392932720120072525251439568497312517850497395840798865246634126590242155940073905755599634032996591220437851904673224748337073483188985952356261917240424331155050084854654677577090267024459576203180567797015722003464513031066213598232295987421073760132204757382831920299795559806912729733297800074913786870511173529553143428715632618268239884808876243182732927445980079390897915144442736302571980164565346247411043297583198625027625411989749067311068722106910518909589032630703035572444305160265503715457334596533145483614497572966745392208268011863675088304367901675727133110548385779728967387848272269675170389529269163356230486590275217891227495211115862580048165475185884930094974967829245230992207283146106790456369680628461417614425556750751619157723559123040278351000549082273290496177677347275588651338038796296593317521278567530262384467717178325411298392215270024281128969470645455789719028173657192908980168436800709086129006358258576032228877245648969156631800274602077672000132116393355693122607238687776792797302170320496842838190084942126224382719162804898344971457222995258311529425304945452629976476712778685505582024345828965172862312209443449451402171354446824504827490171937038268621077264854537698464383622569884016915398969787949086031585330801013385947386773733516882120476649154540089578544263810397999078741278564165582190629773515736163907969357344153934927114356159742104258836631067799766238493987815316287617219660043256885820044095094171913641884868660361889063325455234717778524594940302346635635848106378551450501823078478093140197142419475563263180449914550309934521113796059512875391183126566410489745753403905617118257512949430758285706409688747908443232841019300280535811633927929371828321451442017936368226945261981055724183582775693601050028644412418086750746921460983641701617512867888379343886348246735236154569374907062414573117086451037500607398068678099839290382423042964977669371129950646774668375944944613716523877082221912267869950591728390033541596172013848158407220738337768513938661561065574688733571144759663358216153354965879985571148595246517478884488644775110769907929417106077573015606576844555167720302569628237307528843352614933999413289829883800757994366035446329438959656345754283170464317328291372344269671483681516461488855365107273591112686035123156542382237780230965645503444578821908334961773104563535765179984528177874555842571322283321356730669570506091000655971676496994942605496945914679329654699559778805923341915147713954602437817140731329735638435485189012582599654433706631785284895405107077503732745673228629701900048619566914481984051754535192081336164029760707252502940640508294343066751672594144281356294195591971355467211870132961239346379972058771333662774270245100093352985281481195629842112919133570087292422856630900656440407440899247551963196712805866552880688600502735302296221211718684767728657904213051863508515298193091965750126849217752365084862283692135428788174582991145173880006681875677367298508119891815693954457800773210861377137384529387700690074891275790135204611276785698018646728789259203030232783903684807379941824869117563924759074243206393014024296832859061653786901358683496372294612764256475726097865215395723195284126313564827819468456675661442811807489103009160475620061886756727176023016797642416026796941684229756196846385535685784807581593140975903226084393430899582261637110184251780466336111302104201449810717628114586601102636774910439320726634581043047722973024052716329707017731070003640261947430783493329573410009271645251477279422382607343564014636096367574123530326233256996426448521797164041737418322780437476210998117417871094916970571872758290153754977030593178306922596299828217948820380964781559347238963409959854182389531268944125120027496766991362785362582748107850716841634484696472800743065145719835263277666734083919407011763828748826971751452515222046771250215732040253362906881085839494613372636022724203207233079303396195039122975804268901097804615374290505738504340898783225343131170909046222331629928551070965541873206971195285891309469723714145518153614307241435047510241327312968921754039095431262846335207804257743090391535709303880445515676710450267225592778517328635070674997614749303030659631330471980828058508015987470795115980044478924949653078599146136662393533667576450368725421118045612641398211837168719705158502981667205306299529430102131085906890763519214588317969720715389417800503551220785306398696805381527865723082772053993698888859820032928502104958197784415912533390674394888236436850133071089803969540917722324963738451499783652475692620853753061065280869391944460745106005952314634124714255313258452166326622559394523779657649389874856127657631533352236796470368566565192986961332437499032023329808276291094968885878470721566412550616985623322932795807561152991263409443742671496603187718880741577771174771734369162037169080018577616947536389726280179916697035034812106754138599733994660924798822596741113750022006102835263304951937662789719326434820415701392602610752481477263582519534913501034687649390892244587938530850212228689667407927526602573293346351728609548245094737779805995146525251533920453719340333082886218790682762332382133712321826184241802850846466473356005262782273278488766811869894649023589712135908788517085429197020455312931749615462664232156450730144118037712722948741368719405618790293907615716016695410118227129317273651841741840454387233607769627710022184542529188133162553623465433360609689806837279733314895909158952505600643030913379417207280152552645978352407302061573780384272435091234358981075486677963718802472456382791558117208807126700777095866352419164717666766127834827014916748583935605217467006417663995891052895202192259608825058927413527790794538962589702248185591193452213533991026587557333962360086983399636627058495597707947882952328538669546082840289004143004294122323493804538677922424587441516348167401912354352525656930775049139100638264483545849962576352127810037634410240131645854104980113533293929364990320312576988544712081932287982482522682126423398166625701616147726531772845639945755474784688211848849225985160525576001633758839150972907930873794316114808930776502046342588625885042347832995073181973318616512588441553467177127204186389513546708531333202240315227243849576405682307850751391937773721359917297907827291585706335075928021837171905959241693837273393019090564418647695709647882543786101362452700062561053372383600650263233890664067732415085371052546168833673376519120936828662855968636381732291163423787921447720973148045377117318280475726715483172933449331624552913789040222382022872407305327103742969682330779487533819226514118607283316889905625969211289185596688626484144059586721596222310392444365383106822412368679131715302815874200812273150623806397435002009184144230226779989689895665975027357006179743625691281122457063389125351319472650920709225270498335245385550663981564984097807736795562799954644922559501119959420294850677112354689956240847765269837382191240477869251846626930471214781352298982112809251384694822963174439364801222585690534510742014610056649065602579685941016489293896874140571859507453534878179436725753898244707240458835999239502803783661546742207135215952483917548839366773394186906504920483124660411251032548045457708237960333814463620865662431812280001251542368606943973245395983117253189360245101777600732994718316605715464502242059738832607938598648884775700877403323499621924739192771823074502367613195867038639785979821002715283357062338376157330837488453721737551820324989523595772277281886235561398512772639551095113948750169146090851414008070719677030077815311955141714597971286022686531861802943808130915111813368220568789172027560450150639935497279689769889621606135963989727847886359573550012959714516776217602584900747343602528430905841131778640978896643831100307459699754680831034925927876938223343926890875582101500829383721257774698076955953898887339817787491986543129731333264799734561031926251249023351760341432665066675891235020273006200630567839642090286428773333128039219531231698212629727899719218408819952569726031846014562022017182132251908123516763236766728025191506133399412631376506259992836324279137321570208312876231982514445371710622429099362923944970361684946959824666184107956209773900900124881693534886470002568210079251849625529560474816492419850180558891220417362621922687118268549753619239869055564747465585319657305481666161043230172484075058491973597900861338485626274221009703673593805235188645873719771172625661485586214507855517698286817405164907800126587983540351395825272596265746108404365788743122572143321712530118185984366887286634001787549146252977577662411820334007139984773764223317003732361522317492513420210865178501606848687060206500386612773321584151095406985349442075034520996778502135525858917662857453155922631598549967980658130957046315014703005198172765959933263081702525025498061855023286828559407964642426289091862706410405035218866340378557309455830844616035863542303411479822495001792530064261720299859247216162818262421184802581130215524265664471544778404637999649488450417928735605678661233427895619029844319487916163044071117917413828404990786680354723319530891577028590717686057292350653311870175384838964885101747990875315287638492416386165200383093214116038555571561957649285811069458917970775024338054340231755518682669224754535677070427999289244641229531625104480231404928393719136638339251134439984304229683675039347625011342384262895515848583650047008366453578639718623384368797472265742768932248322958417391583276399630728458984329417301502307797504522526041282212968417300471537549824011550799361768960967071666086690465892982358818753706348494136918165399540932637445758957640560542166164798364854108712052907172550429952625371601656645941762990682337403976600564431496934290512537717646581089799165502572788472865658318291585540509532075535317401465082772883826859168326734268913843047865987246742038145837015326760879510597110662371365377279063975558856753516589518463855833324736899572551749589654012958328225761572785740947426186280289203393922271820769393241118463636684346266840506892632676732169371337870173184428637397561939988939197676950212912609113545086079787848735821142332006273880615312423746528733829950812648265076324808055895563055515515324011127946407660593140939389240488893081342951296425570209577599518109240633074787252957473785050088722008159027782682480385319005401148569697467363836918903204870920875902574323054423916304356199663546899965244607811233874304130354198885830387253596726349920762502725645167883493589683810907854956209701032146691037068569472515516282499027224389693491458676892942410682198824686819724210340998105664961386177477674771450790802929754205320830383979319468411408778594125405669642460709568439395117447198305981056356476281211536759110145680011673335584867624015553686468876161084499612002122977115868817763958643986477612716938576219675744414672029222444033634618622333311427366559936800250734338686222523323790374349992473872013701809699003587296384085716550879916754958276949059646413429105894813303541978240894508929284788618982315284047589956114462730280417315440569971425944628292779520976669355771726888686719220456895369802246368653902866539114078342561659934003057590161088378523698086071746162144858144931894504405131452933220548833492344089457451494463125942234664227491608239711045328713621917335414286586639852270577680103542901847422189651751599953584838954254538895321791518224492150683438426117243829350836706195732500135817648591093157135190595830061908576786132347208481046604727311385510056542723642542943173839576200886438379549301563695464102633287714391085917054447335485874044034547214222008718877190409676582218715555156297273987674416163033536149474358748578066659888185191067234677804293452836835594493921903872122450217412001289327398825512561533862371527429314587284466781977467089571738476468414030331599334224017358106999637736675100309860564078361631906709322988095142076071091287211632157076571335299297621244295460074677025554528021792075991007134725963757877801418280045038552941285986845122422443719222174429772006617084410359387664950341565672033482502296790665625069002066914989638919524802019039930900632328268934291588224656238242457469032384841741317804569051696468593852559888569210512838931937596795833918266002934913802366932083022733078649165446784572511902463641783068584492355019038275710057264619157469420156847952610856479452028897844873790081450925204910176805253565803915872733094977529203889785477462702859465612276875808767924217043597010713719491307080785785550132374651932859063682516132376118064518274254772767943837879991034038267812290569402683026787824183665397749283297456836524386085902403767751438261268450078102638058459306519125771524502006152280817006494375712206191184786075252532537130190402592176424373143791319282709497476236408983183041318161463768181195085985450517915059884287535848241981641309671901707451922471729288877585120145796144033974848242766753610091019311067773160026560255422327849068897186006702533767239923180563332411456454565395866464216163681226718202423903420566478207651726585886632391597699720253265277738446113281035380309395174958780303512066838960641384824530708415793317633529070500774231919064689657241368633027104212889413605512955526779298614765017343671779960604950760166170784362440492679398377695303401895665556900096551131454363458642757413515437624146409161005964211879237319022425438957389516897261916935948541974557342424660941764071503537652620289667959805823806888509227730862746531104882565642460107306604907678593772364191551278758936093476677811535467164910846700036680051675172542386678776777456959724355584300723868743634401686363369938322758655230881094165704500467282732515657415011323875297138852173922869527233937368185183726635054755467347872419454639604742996131426692338661721801624699238930231950617739307147612609412059807475830387277562405519488846632127718351334574925379791793832312848903088056534442566062955635935217946469788846438224560864038185454647641307790492959326108158822046053034841720790112967309895156042569015051593349728468641124293127132707124648492251222875077634694511114647717705039078941044866802591145850500464995183677012532459056746602811082254517175628131772527205988581202410947810943237306093161940653139103856642998173369583709113349850966770537145436062152849495961600967627213902266548803377991102007549451539747883961632151727911472050573587218525314603388950696631340952703100838878415551941022975270623388531339532483373840389723647783641159063405963723783650393751343895405873622663379211285814561328963423783516812852502842933293986216791205457092332975310844447229927591836248627772402344665413136924813465616876229444759135723306759307445034593659764311645348166963925891029503893123924306591810682318734718608855495894403873744801960860551312248169160292257547530416857816887726162615614573580687546197530137532350788888926151050599458543341181655245187493408888453630771883354741266646955187451629827284309400075113176270718773068001158573435156227465491031789354755273535154733544225967193275567341223107521710331506382454269727388576554950716469303016573594152126435840535146406120876386111456298104426762938684508998542356833076537450412585208197010312343615217734564913269153559191765027602708606309072306646571270960056559854452558713028511313936481285253778838798649059252581494817310328972460537897254067848941951679072581295107315008928477136446589359629273023167850282854872142054372958470221827774632914245816306204415776082245735010715820712936034256708478650089312466858080906721253771346026391642781396023450356963179329825315709318844714499562389463583219005087156301370574922377288104781325250870112421592313881886449472223522888607336486019399960870984909690804161852512294971958813667742116791188139548184116612423697905048830214531770815666259169745026745632135944743457560447796195755878180027127920808345765739045713561680555106248171039155098390056393122161867095619153110065224809107286335669401784510287572984834432203978649725485702346046015229085728799315530830897514657322488166720443596782441382447195607183341179000619199612770505929417914643984157272451406062052268668918211458313374663906259496624081122568602051103783650898859786807105087509290019989431869160770126966279588618042257394372891980159909606662599267062279469413149064802825091044552501387447362245976037976359647728541467370760212826596232363367492562902839782669581238748536567214412019367612549477739417869032999360314335350196775038759902975542429565115764922717586727335755591135445208277885860401810824435844514524346691693690520810645418977377239376164208417992093472544871695114307706052300783054035470412794255993515109852703237049501440984374113551132524399598824221687552075308022333625443702277664602943204209862658427442084720504337768979455319665500744567720912654710131063911267118438639920516006679282622419086433821125812024457205687241751110413835011280314227847758933510930218395353098824565040297165604251881344372869294173189807804364122637614764839022099953580318455651943701575980080562582461236513492239097462614573268819137923820827778049065160812221411533664709173963901790311109642140286720796050237285919705426438104585878934985910628870403233652650192845551665170239394154662868425016010424542011034984252899725939436049694885984177675414244809191724335263901997690828123508239047677801195880885483835105892756181374469338589393827829533922956531852195943404437458320076995744959767947786714687762839452354891659739366137303987609742107083663170743119658829620583090396607934757435207130539589179580314746277861608504347420355638631277305811315891727888008831546493984861331105362797801906039129071333547412367100103903217705889856203106281365394911660355630774317293209032106048956026354658700455791731842038333636750323697622108029668357806383281920483979294940241334008833031809687388170762620415531613057499439629119845822157632418751602970891801440040562791370868396244356001834693216875898253296174243261021567937533130757271845578475182101704194423330455741578516257163478477256072138538860277680010025560757481020280899445395050040583198714224637523157366829486739375559209760347844705976162979353058610620884536497693604703670346735545172953193755566852278044252504582795506721638830128881523734829624730053976807628083948998141705811623814043340684447000329408786357552991816558683725403149901247409997461340613798337892368288642145750539042841881661600084833983598158551158195771744405718909852333556952957624928170754174526996387068363333325445957047960516114434699180426141229513785852923274933918156443040543326471085047939773159360500325963210485288021539534122152107595285529385095946394646543600796784495233307365387951889548666979312456665610438303670141058795673493932044511381656079099062955119437163664865919752366520351356004716053510970438891012316034714965513885623580476097980735232445300673237572080248399585511439378021858572701743490595733205530813749946214537082139716373358883898820324657073699601767856259451904337041297748071142149419165332100250323357502177348248636136342578556407750497396163365150311504531114306300987006335111123922010490728547698364745877941055917804950905048343925588623157875189389199872843449537125823922328251775920807498829523359126531355079615392725976246436485206187723582225800758638801520447524516241732953771094427375612818519373450383246438867399934931015439171653796234481348726543850168157920238263692421515116467830248028952871750200249339579153309687679709748567131618483885772891007220840110154083777365143962494719244466730593221649077687989187750354959741245874368802877219205237955398933041625931270833034246136585420278002730651399730155161525038159322921599237088476395767630928130091992492852286612939116453260226491797429739594560701140993082069579004481794823255044350385393352827322255122917914528238887978260495744534150810814840985733298480976063983879849115121672856461015301569935752926698282060347081580090371418463418438630404021797581705288358255719142287149906014405639429131421502729946605502048987298643864868157518482161181529244045042236002981420182274165686309341433037717872925314922337258968912964393878437837291167679268061260776814524954422007640917582619788850394859751613407471120507438437057181610169138245896562567285320645804129316672400196626895518460722017020197739093975687414976740720440157675384397116065688837550526557140749770050227251729556932381852330478038161313591237080266365577648406741287575304481142993963873557414250763398831192968263363228244469092928906435965480562515824226298641936849338880892534252051060586261376318372600676002024487233012790725791603515537747469077787217075803325750066208749015603154629481584132517393694437945193679609864164141314012846240962267951518530247484040604684347486585745705684050589810251034962914863004992677903021241503199349434798168610305334469086612896951945447550782993117450219509749641580601316609725854295957729070707488686746571278488842387704833056443662722518800413162629461022137948426599908870595391900746880254007795406902179064075074198542440473245121977234429779200868388947774377726058404697374665432156420409745262664209093375194079266390332361456675793945337525544157975384058964663455901352732970790744292633411188906602114644729473958983227596227761523470315346800823893328214644758106418165008364823660317200346920482413479098165126325206163047229574415357565310753934967565148100492416428863632460477944792829270557929867891249975501559923514566615996936338302679148627108224275055532335514058533848571031132204141552526373489780902527415541234439169622894855259590200442525430570746207274186166683835057303927713917393259634970570866394185563735099238866644778345257425879455124649952256484895285040196547892268997514752563016606054241622933735843488025556042777901331284319380556806534581350115961684973093878300982805117924807783429769639996503539914849584893950654726601383069067136307944767797568442849798640840656758696445680184868486238254524573206806731873674690840831457470631633026079442636891862358851013844871884695174623744647994463970457222968165306708240839908517583166024283541783975354649420273171613451476586621957682479269451438025361206775980243360367769873631115225989609438695198927181768919133793875944427923071541243376199591785899566325108817183402338414557238273340601406961650771505012164741522353301701497754015714736664130732976163741231580210632392885667000096879236705771207365098062098891965497980865578583262626302489857285194621443507256143768521618966953203966729189701443502597020004511070161923962120920117945742273068803357525829382769944313689670162313362112045893762878325500294894394092470053060421520313516422211859717733608745740975642239032817740123461161066635445823818167117358670875312155946460556848447317065816171384612347954579033886051348646675428358559902109593126868804911706551036018810861892989682124772403277620133431908916702981817879250147472592300681183801054910283481371756218629217109338734004957671738530925061511480630875992631593055597487781346195520002345399988184225715495760164704013747902503189955580954977968573366462184438048525645171989563717573848622075632080869224282443223409287736405201376901812287901265926777379120657950338890531851187655250450032712949744328330760033547568162742779387758849147720549794001329619693564748833457146751587400575174225676397592296235436950430475225447887738812624781665285054367158651824728345155270207702308042586793269527569538773517489513895588651667877669346056465825236210187856395126505374629483897251355518506714539237849873930112000707615870150013563774874105127302066843938567507751736162252532057167144899171964899270018489507834974051786163130340824480906707193936731308732817879849393529768171042587290164514809815608709380769336681314253150927948114584266962905813607468157686636886571087721862323972902454578355122887661301828891194104415323628303987246160973287097794782241761378336967424614503820949832988935645293830501305145537084771101907161864688046307404522920226767446030507562718750521615475612586647759637247636376006534291150209990272939809499167979778114438864647502780017919545915016485724734642817536978837023502803982327911899211663930926936123166083942146038891129477726841029624311649607000260191856382600716469609963086642421419671974011830421122349056500495542119529027207753268284788089168190716096581112274156339764206319092630502443982044441913924056897181371109922191836070389203963977254701286652748081903236876723029752243258138848541528101367476310053879441992124751233821501699427411634638019950307411802573366013744089399132282190060251040838093738041568459985469962044853280701627278086819635140519188763086167631655998752542352772194303183427363033646746290083837345506619238002203078143365469715190378094382199790345916557372062208915786122538762090683581134341057843980163452285268445628880517735176763161527361119931901022340515245014653143215182400282829890459359762733696613010991512705863935191967446880876143956070322057894487079020235311810684012766438859063961179450761030561114321092064892715702544317504063806433410452583387930777598818017113868416480384391562197661305472529190402595066660092961947879966391199542631635958854506572989074310625636716051302971754554147354044539623130364194943781443934716484371182860832883400193247373953807224869428159536786259041971063899193659450080195093324227042289996227970069620244588563285911004822086040980903087477285502651684575826648536080993601610697714320619457340650179871452042923987350010134018401642442839882917307742564640660074260144250914784215725359232161482274372614730047045775674328763781317010751276465563267516304147093616861017979252414696063247230329464222448667612193079336217588736828607365045208400977540064236148933937543973870430990482450424491806235548444355835052776239047552506983291936408948667858396281618773711347427165992399334932308223529324440848480883450117429270599083852579906698798447945632003884663692834564021153868570175806220508394417546458132420725022264260059115791140014337683138801837709396994611743519391879702177001134919451791684971416649818778147020293349101759844239990901523315129692815321219682259792849853534125312785458352601726466034097170292747467527410166859371429765731985604951171124162280894830861215977101203420140196531060174669125887603397604043312554824140448850795298606053822360872374487400190778993613082313473276066696555932685755397180190142183906389704583105837439285755659259134731402225274161554745340504582555725714416979365949518541580536645853466958570701942640888751149246117679671659947475873702711249866242959446871541928223471448670968366768621042703353861046418607851551561281593191451473535641328686961844927333480905642224540188968970163502067526547027859742626806912961355447771729038636792894146586158699168934549131578183389425108729630594218078978798613903382126889875448953001691864507912725342185621075151248437160101008556133980106738111166452580562086457898291101907722149832278980983352030034393358046609387858523155836926398391670928551295175240027926792124837602516790865656072248199094790813542801227481410080903017872355531537340461555311200211803555816184619174747535074366885858629121476456219992917313497067169463257084889773952762432597611818778119907815609129876696643884060044773571254331485625090764407703132747684472376843952919249449234252643410746691153368851655484061613293809628144002449252223254567494810645118222707536082381935738666506906169395300859212520571257672539303879695295161554207085436890249301103902449688110531318318857590732686457067541575195367755383949237930449521325196210663987118021706286579360622294388441415723580042276284021438875099562775818504355778232473769490334431092472699232716713237651854107337522754536201589015006282693260861314752450044230096867111620654616871972991521075095741306217661869194143187436027264536692178703517563901974842014274062185839994759531461920342136235168291068072215126007120494586723182357662338721685702175971919563746531121915321982200899693227025029960847856988249938524359445040488085799946244152544757075061470885737005546788692925053667130930020913715840147388272518636369099914414773388601152239438685371625898045489740239103442038700153016025082789129667527446942071964513194362086542859877925520144584439854852963563110420104109798679689678212156333506415535115190579954339368179718803282454443047710204674183460175418267392816771333622682428280353432048250036972250756496864403812427252936521861640328052568501490044298903372591348512317325620462303127533146395794727449375107420227252400118628491523036141166857098575144843445050593544805782861634719385816625023699853438962843577912826212764047626148444298759770479398674698171235476717355065896866622230072145654459580486803630723178094297801315340466756218938935060821535284508258761071419659856304200786765191153391413473814544281777658622566524127970104312954811869873747644742227142411736739169741795997851060105189726773069964448797023867930059609807955304780656534564774077268786223701476936068351912464977674270241127878049257818515297342458896359158776437904540387160254901746892313581864561317224517636120075167723186609841495561324631288191276965212386858062677043257456042611624421190404847815817811989291329577131264731063485788923483216816319089306233505096112554078671155444938084354832152833214667743350944223338119922389614448022237649794304417739239646786552844113284574975268814679166066323898408227457548756944695247642755046666452742146775546864789719114803944195009700712826526983537486736009588477040665548464761031992859478804988765954515015649623016504192526200309209331262524957363832825176970171525458977662048757171199985355870623589444487789496731486474896192852653222650873372376714146349090901055110219131337726031695046213776289284857667056855964189012265605906235400570306512872202821351963849095400277236990709828501430089774872972174287650107341053583754441176477357131435904629502896834087351044201892071273170356757777254015134162599592717146771807831788114720032264752961317270661991782908456788400918437981448808936643240282718025573205704247503110664512807355498239338772825473494536717410927442182162787774232599428494285223163907648973193177580675385548216681108909498712036847800084642783748062130690393448543949899250310111277903483344859409719646231359740141980285558502356008836751126628391776823089051820598130357946981583201715704356111264869280641208436657548447142801014120673248467485508057475709250303077767065889514805567842486101359294786062488957586771597971711997187136091846596805466218767394159026826017508673143001419483964010865251569980110594501314870519862467508685328850541561834477931789862873155216123971315422995133112765311622557822600687447398207562619733157732651767974960738743615529894020586419351727469517636385922143360428826839673386532028966973676973557253181914053842502567089462078867499812306488407065829819561524663230331337670488118977024137378366522070496747901371531080922961449281188174450216005517672046774452674530308386196546240533999615765982817720598296588271878214783694365313330023034230656080378820775204637642490540117967369300431313131086041624372466922403675130242314903056400427394788270360014392593819787750458056756577460555762624382755483713116932239894136949076053403559587492335040447937071397770235924838815863317476203409881091497810229845794183327582242518700029998482056700340163385346570423258277889166748446140257942506329686455292104061332075017568400132139087352647705870494148949696301985115109947051503875886241826622669093123238990228686125440887088548625625565922828031938595152852546684075581260302160931615885418132552144378897512121606894727261827322339566547862468138852137895764040911445175771544783488513434259517689815458367828575346087098149341486917476442997369366212369800191736268351188383096050434435111101054007758153074337069599547005138825732448372611340151999984602452446622614808322067910180195013103830175196626528530757450256479369142830977211446677951016408846803822033657010770450026885016757869807002868250964307314943004569831071684637547587846549801412542961358782840661769250509680063776494520650489961867845556751266920881413282098225885172820648771139547875708441240704902894757416847757814943197679137742681240211173574437704846432031961392243434010393478276147637779791927013748010726399734651941662799582988226254342377595454896053035580065331774273409038672803576738525160355469759448330828207724356994643237464673389841383247720632402982820288445991114803461995184916078587534641649100553799252851960426885134640625721435177941997805996143638557583918653092622799421931057322219670977640373004516758955160840049207681947776141673275366439453537768391929511192279981152002560912179987117897288351577396470164664796811843856263748955050823406117455611909129510679172971401988219238906627608547344470824082202144890320517225794449953878279989742994876492778484439653284974317786794127730529840015202184286370506652366177321255534317589687380265866547986655324221539997946234438930098456692509223240826049917841899536020898664486586797856590862571377347559840997890723938241172889241964263079629102102849516957465933912473109042468498483439408744654949229367070812695029127407528811954372683748410688410632393934589492646829606866286927741284577979484048425694777217068812749430310469218751570735827788651347112745291922815657405355197811140679830357308544523444615905058694155521461129545043700119065486941364293445295083504968179216835166196435538693936632873566170535043765936126681404676668979783751711377726521697393529689218002804733445491664626689770909954790582689239714268426840762008180605861472775420921355148523853037858599253816240396442915838940264951885364130913604226305889225017261889732353540548269260171614845485369180703845953141630062167951584715246154013342085626706758635651832548234779311033588387548385962964925025001850281256456681340787188678849184265994400182290930777202480359150381843526291715951873477841593292941916051953245082750837507501723464637808075338025785095546593417451720863033256997379112320569156274375193176817372031159107210806902084042998302244497436545254139296708822062657577269442923505602495748762629466768256213512778261102660862138568776817568509841001733530609690208467847387873350150900822940197215330986916237678662635785983563461590119306598998903415582430942195878078075225681231345226634018286538599492933206037471239895293739979298371472704185706626495703039329019936874589936795458446651547358853330267474057773783143072932548876021887714829888992211939710799290188626613126944718012806666872393554764110237922578679650858099586112945627248977667842089020528107725806015656009897049590361246863270565397197994312763040729652838016021710032924082669652373086579965385400330830116287897155553088814477535180587786405072223069947890058937489982541833378252978876930212250041619896000048843889384122494306859869067789305241582515969681347995803439522757324301594427186674379356372062750648441695063388945941301446047414090593180004656475699543943855573664928569255021780402072328251826349777976658277620801388870923817951252291924688970504318760914221875910340200796919087118568629039862829088867317870418851816282313986088019264673298409576865428939281856348702602374159022175623889482298216238373868067634786969948128754106744749014697729445241081769661447742200142669893981664046236718293211528145206172310316064722404161636734459378740007770178816263680963691662884723350899478795434445425849024252232651617318470331126251956131384217320650537983716132888977196506707268920623599951639260570042685676988310388137478699667942108686810334781107670719611136480284663815053879950008493915388767711333549280048018946551441170509654082011402108181129329823886690353760381743754963161183936527088656552372535943146342076243094915677435297773022636678743925310543545247385480527136991088882696517408602634527815562595136312760445863240700763980690482901146034828999540588180879760421276690298519156616237637600403528749198636914884914934726124421054733699499640309211251060111152422414388824040712345292293132193317054484257252155616448599496939620154905711153562675252260595207998516791643478194483907421494434150193407860124580702529745286282412283208438520615790237147540519035885272972464699641436012033472861317361070466661219391933404451868652243549404072927709810895032225215523612785285283819282559676957755725965533490550355598948760652962959903857112562750909081616330206258634081224229205987950704608793220138387142642301327444780716937028701467822834320220622034234220802948677936739225468478746590277839137918628484570670285623610267735524945702009567273535963931798398611437987757813883904819215998290175794834316434290174030589626316861578229761482479032233964286234229249889612033171434121934468993576445760196761118696360835766761248023553652470952166032635389838672967254352785810127287677185396267388669439673837722741366310694483762001533508400031760061863043314861779578118555964022413931312940473531648721231569164005960786225869126948241857245707826590420599213836144605911932505670162397326233816422001273755165005957540400270467234218512832518774648098485514207644764767719928222782271090877846197494079144411960121239030139187991100684999900553801229519631890120653366532310509800955306032750675388937307846062807442966960442964259916482391722320126423436993278167723765902895670887706942317412484189515515383714565611476944317597006329254424720705815985854382287844333708052328864097534946297879456070188146165910748991173522138101648978899986899721286211420530970786725350111531762730911379274674913934520183002704732920475250585385596898963421389981428513518760047083578498891924378710268508632576830582677127641968569065783273949825645785176809113716504766325537590340323574174479059487418880932815802245420234944751022946377862196193187404322811932574771540411450449214391252075577533993416784709967338395565879716171161378382848964818214066386131396055296448707753082035469859358063522252451470880783712712460324995019137609715452769509226033898569644170821615901049699726437560599568577063715751980080746587750813621441519469842367896329315536903743789867809806264585295677993596467299788367543641019196684015549194351944419158416094859588816447417321651298705136941390048077606691319490430054771275646446708875416284394069351644459582344605145127622443517187161865687876750080950664246340067854290590089466595932674707262478530850417263049143344546773819377364158103981692695768014175298692126417897807950391617763596330082799493828384984323954647896307314261308763874833311129506240287892978995007895420772006161356603709704677781829412741935871100634594128772213302317749112338944303495553727351426265396938083253488140023780913797139410687927902368317295982333466143084770170736466138169097681634028159621506211293465279989497640501269296393510869724751632595726998641285725615950732364712200935581871096100830340087467756767505052510329749529147686397542654674579976094674911894551517227121249875544369671431672209288540452165729238341824093275423299778640648603178049715885751500476765524869644162200202976450018695249578106866741611360809366386085176087331804105098888261849128866038922744253096646805545825105638609363230736202485864198745064677229128051869544510437189990272599824685829142386424969420290369488724074201739314758823042934832339996909123628278976725361670295483670915573518428942563475792836298258606500808150974638296883325806642144379598968466256779780455888012525102043642273989003291822380226402516857066979737627961357264030984316648031721673064402560135034713284526293360792280340027818941966841975372083049143464658338117302084916651565766617360309815332144469289172338942420040117152802838621144114063861176620966949577561757201175350848904559043898888242519486433014801189121362432569612345200866993711594565481083298469178863133591304608681670801395542277748342578557315279705690878351209269813530245816703583620296222145078275902904803388471877258743436989495545536083871909503863336352927453798016884668921944749676613979542781469745487497869933344619861650765158245699503281393126027954957742610702241535652333759228511019160113670662224397022123877942020578364606871896304124788871846683742125285369254383002440050488217250981716464247299891571417925696373956680349290004909587087997811705203002784794485699748054368756457151577406748081597601666958201566320421059372124100112115676073993354967696887606154258706753135904384379530260879525834525558258115131924869171530215683892929124590988560777934752396660743139338115929461952815840110039092189773227167728699852017776455761692652139214046752157953877825011958240881781127929789780055179917699939472134476082970351810234936591056455257811147066573738182838358492495989029308435269180280015785875566379846763389049094130203501397945951240211204312577018551735485493899649098769209398713778379526013644025071136082152408016391859511926979521675215850099579831330043324941088383229440326175253656084765864044411644403115636695102719395134213103074981524914324316892433872704131813805330012809838668517498632059790656429560353178073547087004072359356503126245823311796099593957604478423762699946505893628902706081750122184738329955497051332059016887968731944363980144423481942870147270319783825416531683272744127916992608732886413397418305942613474337462109557009798010702949061419455302369812270957865998397477426218614741102091531146324101718453363249126543604921941864465636394125132721497928092674364447341514336521347035037101400034223613817882321861024770528955623549304866099667796063079107139803122169543366421176224358151573949175263337792582011298856573132247956670904834046739357931781147164397005072543136653164323593941057129774868257917603414224735623840583667562802454428414455970449766669575309147535053547703249902406917608666988431825259046884761420929582847861556752826226528813216553243379868574917182635706527472255972746109597752264665858588007791321029639515441558122710506590053718346974243278140135140983477946098405764506561980899714296726453505631253556070049402949206405809124511102779104759701542425668538758240137721361405423169162116829218329376379112462436706532455171603993784908671394622833111080576022326921478626489708026807334237518655152085681445776330595672572739055153729421442682821667975336393302828858395604444278466652565918987413404882734252649565405032138648380068732383125462335384954933851167467010183540303597677532945361284355356084073024216619649132366828785733587241302363666212692687290307358149722131053895610687357986883450738512920833391021657088130043452118413063443671457318230989707174376307563870269655481052609370362676424326203146524638999346498993801990769826361215499080794367550447898823053323515390824850402856948738227220548619071020940068421548847629650197568447004126654867189172356627032621377466352212501245877396070758766551943578118584884838703671448507804078767562890151652283445323038910241710138724934726629888950089122604964918350825386895767706049646558038902723901970222418513447458025464371036508802386612203393422193475099111297265471164614484977890162418285513673437496541016287001669876225556622399480712848493169474863414819384944404409912856085352492653870806530446710782155348185256902360158136463948316528175321130554188289098165334993218810655897993884954488065615991807776681496509673867989995378945670994673803997473445940161747834987392343983183033259467586319150459874348979692097479778438077686606511621916978713986153569859639799173138816082892316578741817588171503883177932026240988266756767919006025970117814056237983666041126074695327383201342493245174754873208962601913264577946562266897675303203319496590714518290635314846541319719625811155493068451866306461886169632746087483065600602186040944025101642099983609967359978131056049522064079701911915767941857051470137222914443892349455418907671977472418434556003815462471575726318935779410951698782974150984886071235202215757105512849950032911579970683216342582428500116087835791427809676223635928068146852007677573742291043027795032965091279492620558526296748334367075368148206696091033275660888033384539399775920508695479610727718670449140693426388122390746401164735678386239523310570302526455067773506117038267024541900089009939010127860844318664162320503631818455764116877731080448361313075396958667634620671569879360644451985490666435390283986514110496174036891600618720878889291483444413515689969098434767789129341622349193631420994027489658044006250556298373780882730681427918091750245830453498328337430475005000956177453444861281588695750689533167059422797100963726896646580094190697694219774262156855035663304871490728128111588612498301850659174564524107753792117351994793000519978654292237353498903529184754556983880012480406821492037344757405649339429770612463322056158972131039729525692757100868920515283042460326960255516395570378988787030519035158231205820685185572956468572458022974608425466436611134034402830288243691777925223818811176018247345847487347382472050929262681787930564053552175290352900093707128274602153318359350552682113431343538902748636878281482230954994718439828629195468731098702740545930975851168023384417296642600623258201927314892134063020728316401757879426442772022317974158163606332750945669143945708612162833691430927021058075282182072765175418604736350528069136542278489403133069505546816987226521717633151139681096051232100831596511160922568622691486762845368747319091651925268508758056910390012128733983067915658722153307698372598082590433611912311103629862996197242031474195328218273214797573688787286058092798933196384724362824099304422714054032943686888877137372590005218422399493614881438633496033077032067738925123059915128878661733009845507299084294074660731125030093062581723269718548986196798275097411575039869255094581910801668866875562732422730165191242664720617243964098043111038100944714163227011048490336884507907972442203691683344757575232655706989087122392842067333549284980579055468228944096508437521854903162266426727052804829425981880201441291598123166881673781034481333574606214151070843533660946220763189038143859179433905990278719338010832758053850778151380671447965675916949448501214367648523363061933832054420126468855498947158524517808612645120493558594229841648721884421317640277698729298178422364281362414729816545843056760028966908287553565888527518230802081098670605710643069595787384573245261775074346550300207556229881522512154757334045656971300840380633579486743738789928426453683469593191147657729111346724056306512032640655063218250263833528202409173369137181403728392911925092947891035539322536602928893923701175029117747908615412890551035642698903163412027786669498740466788375686160323691538894557514869223694363126632774086744157264135453015348940219111307456829112280239977697882568577676682060926793823271726191602347562199138082072275193645854111590755166110009348892321298677792468697282969673002186245495042366488564595004440138094139677882880907577061439836074825190617425760757476112570596418804071374835386446095651796510158506474866983413565728513648242923215053691738363992751568889913958218369526527425652395209281233441907081511789148679858021954274435929877577619411322778758294359101396672066144421925725223684471583792356402393069529056518943157705214618079090521657241234116931761546847378074679422821401685744505851014433103871714655911365536525770294512803913274265104986453574622919187706911496804590254291289185499944364574865111213436000915026792839762920896519719473983938075972716963713699986391204206988130604428826757249025190944249397147266870752949926128779948838011240499685116571571698321587913453902589835620725469677139095046312916481922783001897124941934845266359514476142904838605384324567349779884891496772092995897843224900426121937416967851489394362906808558899043234362767041563650123865061454253044904487331051486805847860720647086615305924630478205488997128795986291673148193808724148375797127864615395891638298185655472248203862123750637861654060397664364000145080759744633642850700243095467708525913136948762866713315208063285747268870437912714119679598616397526160799665747929569068227779237521824232023092826133597290595991820806481274662453945468263404994293142080101969938000263749257591153676458494050798310657615813819571890273052492667363097657043603329768929904862697719493545742160449405639203819786054118286293351210361013611875831492216370851422827592365472138856689138943025884667153031847458655446828190975464788756141120552869502685284111109009597892269908961482508283606567597638648424107913668973091761421815454550817550304771358353963615596288732442151893303011415322708695631667162746277965898021068671712474047345699837117411295905268733117692585949043806686626309090614666652458800611027617359653114290149976580048809395038684854796657781166583271325603220276083275620049318283108496268553701710374232766858476526749033721936195001834523518179170538072254216585816668550313288374738288040357677129204129836845622477546819454286539323263082540596658342778866055303910775874754956365029756767766756889835491658401967023485956786037151627976425811107590692033382169525675011618866908757818554974671284493958120990996617679856127022204043725391274787112261487412826395063142262836564940956082999116398260687665641089945735059233276736463396496035060820968528053016230960991462957658233786036089020099547278765220023680889561872466448060457564592372766927323797409502813634826825855984398006923121726838622959952652905131914759360586985266879828382126245058178504922167506658587192885505963711328029738875208057215834498419307094901769168074872499601103759747028556105195616451242356390672002824108300465229572328477814762656729468968694411725885527850588097005724079383716634035832611463055584940594734343678788615960777966763530276179992686609571964986277260327841826012972842246744480464271016957195572275448287916620027216134585153958091640512788530013999692350437059104200663823042951412666597713343569177247777580168387413551212662599906892840207799076046764702782916822049918461325451004637199744324309615361889469066115671100886617305799219572924478283880352424253928347930781332722524589621771326891647970336672053817614821603772122305561032386042468815587677601044293116041299984830213099734840430725497234743605419806425729542603983287733297001815064704928999682658178497138370857924957327914645053531119457764635151147301721224290861868999992091722671037679696911156640134246775053785334064630500927321301929594705900509888888064902995214147182843686683807868480134389299183798915975056618974744391363371726834291215990436888388766313198875323797795396916258233489880366798598977291902403835767293490304839711612596326486498240886747785093090274585526401166818851870144413194375029485986439531044660471983022604731716700459756212480574791425825144393213364253496827080938718315900392762093751693083564484364642074379386515107759876568735334434780453479732527198917891249142311230714014949532194055897565183890795913325509589975959797049304345123869272836893729422533732385177674164376869743455606608434000501711518471631071220287317512182141337033614948022641171343007564245940686088542300323996306081324560133203123421885854898254212325080820452837921637834232681610366337718512891095678675670881990834552778512323423627984886556822121776732697382676126808325805770329554101981096930304056405419728847384265771225282120594052895439080856152149603175903597346050264150540832000924586356945210425348596218579705856172096307621588151901523252366085185703721510413417442274703154923382034565847486558460764150064744802716896435487154112903620915835353673769767097767905756625381015413928669150700868103316197500392937772896694515433758786577095634628068810381723795764943464166381345454285744035698707588581411227134948599195182813599808198565373840109693407053855254448498238665009920472655578785052570485900331688100520969095134171290357838046769801086446917287103360630841953797588684633336461859938725370162512357271005198040187848201205972222924017997692477432100897399919510717169843570017535445350536150334993189969161401188307297230425271174244552541007819072014933036550393974875590838592299165937188879736684183979004554089991987410161514155275653940113917274350512643818057473657206787314030462808117691228649290292037834380766117122278597332587543218766792082181649300242115633779326183641182321720063953665164214539553519515270620816493397248288394835004257451234404534759060094333618323628777621377089971946866718404631382710879249569991712843748345944762161154986453323442537352672527298488296192637874991643122668335286436037529961869218238411204126010311224857500282110204613968159136118742857520763320397411008025607524522963161450952497780185538261533642560371558100344897270232844883873249948847270642235573225577948301719887467858095733488785727648318622402994646056620277895051756732487443880664185134350958948818101380141348894072179751445783610681352605803356460681076467052541265412799934896811381986263148583445644101075748384879937853836398052341528085174250025140424868209043389069179255760779829344053703787874373907291086307781128841945313369368192745211425576193983077025169080178063861810710231425467360336703132670139636890634793676989336835130221481941010722573065956756863051766948250370792398528498909348456865712761271563067710037434199972729101961993018209358735614315500313517138045902557467142931798985435450454132274569884088526973402907823089080832434132611727351990888805234258725083033083454122717914462826207322270195166650739723308120854153244271345346486044727097142799643228548956632155426581088200826528056929008264096137066167772714933178042131789692957038363306227956859334920539621633294469942521790239871069508138123504169872683753458227647472600445770938917058017945782437485621718278327759395416489750789945762844309046763701358748988482786497288224445189658040537539509080880239110678930967267721169214442684461173732636887240361979745976472239903774348035964783280775692072726095502781592870100641708659916670240655330020624091332265633918133599126674130041184184449182489888030890295810860023098534211243418402037289700573988861958745475068696349862467115930311511766209998955326181009426037805991970571073098094607914213603148799087798495497151599827231168695406420085014507164147599342082293246495119653400274010622374051731976000639474417527402727521853888100775363470081017051574745908204338339294928674034341623414706140951464552960502494433733404293376541862971217835028685482493501552513176846799999146381356656582369115777183605059555217985582745936872010784987670451976909725382256177307301365279977878309194049694005280238931162092415042576378085222765592840341095876692423780355035679816639488663674447883873297506147197714616204018728879112123068474582349085253882104306308766857266468546936557698519685545921739018903270786873917492903610365092388658466891234180421762483022864909974912644859459140977959461806044790169241891466746668439626990155861672159290654141317721654031675754244181492929444116212812873058970175033399061596533725271982775537801285318730772083078760346960701536460757123692097919139109242396616806814632008968226653043686739950463309818632666543207444447298436749850920682211144716656364016731196167105324526240047949488677654994473355454112983053543009396749515997556769206352256117452126124955846490388458914339483538800972396046011880643234346157730560690139996719110096298092398514879283181562915291781598160289312851464335945000648310342603612799002631403854861064684443397208072876258572539969285308692358316155192405965321386516786644703538094544295481121865207447878881411032941627580367516229912245432218318899013755087402700993487071441145130445997506938657549513272594519324360449669330266022918729319369908442916194433469996284965274388962306228390174147672292370567173729919789672405397850791352156068972950692781526041666869182394200761446184336685041069032288597384783641256054994483596756846232114653466587827209263948400218369370045124409498045472919136639884051155764128123385043652208454723330681293846696201871953809683300902097958739327341205654370218724498655845610996540142883686190003140421841063200287792191847268968349680627996040209025051086708464524474935201728467195760230655855691314850041189535330486269799857713988591739033795757089807929048520912561158666421381479675153631464639803392970305000675459480726742463304138102069638502653047837280125231559471494353059126982675697804382619322516523313785876386227976844307280708933973944199696710846038449124918054928468307988857303785826171135343870620654201219507131217073478150505876715993869753231513723878833829648981559689583187968869817555626625058604094480504359661286867671553289380941297114610259149277501818015484828595785658396469688717206369544044091613513233039662470932556121744140742447416963450486271457180950769417235533854971903875840311129970640393391459939784153341019487419891176088225086919962573070624508986348259638805578238280404137320942783425667206158484156985370007361938459556168849956640318993442136013056150502799517723504242233050027465414676681586746102538965227588294666762829953967748480286080729331049351978708341043018336015943622217806388115045157614831690749726500354665007078304177947272335487139661596157030661069442718475484911742968202230969748692436187190512172193999198111210934690490347377443801134382194279997935668915803751918738741583028669685596813003971736396788279155464635362031916191826053940905623095323158974757289529284265641240998697478353889140996145369633352606482948464016134992943192967010909122549889599704082476574929015691548147171308098391178782462512818088548104034586704811265342858327850233078456547143836724858798170015000637925939961336988499502773753431933580588528401796296659447253386098959081740091147543336777476608573546131458010619087932469248633750331920751114753681979766509699519671735603693285309186319715898626940824924066036550681409365856138809750131916225749625391420068484041459198044996391826564595472397328543624451903671493141253393333111944778792867348461751676342806075749144409230622374161364907424439749405187200398628534905082514348963967838649741756501352443074725990649682349474911121343636448201359205185861747963914832893440622897322402807585260560048198771199882277560364578148792986088119124346717309064869633722793185133987481281281853729871151169942093857575748302678757738907459850597123041584330542170010571634320146362799620190698492874196300134123212990992516784508736108782447016548481561792460969001337974756451148934096600645250652305436901341570936108983884805125771700465207010700051800116477545804761762515981123358690807147039150273741227310136282500661112770314670717733007060951480476782704318019286646925504259159797340118793733879299336403490863870049865045897527926459225627451763003755788099020282303287069770934191677540274772291308286443920510991927983426692015548527896850490439634850125586285559530565663214997611574561494291676847369626265365862402275355011814083983351431753416654400429117572825870300589277543901359164628990394786226060318083760922309572769319988093056159488390813461961414625298269896715623110716662303364675391035826262466594098003679578873691425683621834589080695233153728987247798732506997485179641561937663568210519636894151071127155728858158206849387975310780764958116872271570872725880430972306253709490844276480583026103032628468246542161414985788960796332994151920133711077867392920846780961266928578285160999459456503603143506922484299194100663061755752547958279107095927541431287161807352430496604077930529938066565920685257020382495927247182415051718257968269971083302159834029603454792933352746227053623406798216207592943991076175679347201112255418769922216831300924407001343707929828150969949488980923734012599398445679863039647880064242893399542765794705810455024020538185840446951761673590514715308638810972353412730592135337355061934409158958718326305746870124483530100376742773086072711032226450886592646765277534043483662813026071717580295386076503156259079670538733226667565145726959154200966403345304209503636452426100663268275475939705482770065007811503068647197703995749826924526770274594783470294608911596579117274557060975068602747437758377838840602826817227769955308672482037059453114768591145295585418520988023895331839566470772560624489002080888408146655297663191890955085330686240528387835885349184856046113856009334819142467672987722916188439483011533541942080335992868716172196377833743592479198745802245348628986823734245388343110780681014419713465526500255881445579052699679691361066415094523662933071248602481798818278489770598516438044673883411815685564463973213781354359710026867393469802362596858635870941236231896853976517426526017576240041439099003907265270111513020005941095591176961886851746494495719562396814446117889302549002437719500051364258941222597369631814490629896065544749025067737219571689432690540717375504188648390866871930080117544125135925724915830903535613621334323333496057911146369339590244419492966853979425142795159607686476312960982074126129230054233887597953478762744421764516168441127686980919567235125199353365356059900037095470354676560979149222027773941860804733475621293800378382391234716074414168632867838502121379083483401933989936064029801828167521820167817236434105785729254491398251496780420264062430999574111133421600585487121457517339726865791683901009655080903780201572853981593432925263093519010162879655559894121136107870151978188150218633962932032373299791206171214185854962736950242862628602549079698541932196095690207933566177811817626076520482465440842582847048438575247775412412043340580392780682799752877636892711434133374396910248666650405287170560442387298133294070655768435255318259177312487085121231771941158706004793808323676913348827060216708025484148901417190358229817898985393456645913172948535432294278086602300921003497904262844735818412719823822118788334316354821133226503734402475450213820707636958414840466907559976547274136817444037901458137163629621741631371716380742119088881354040534423445440397138219074294952720570504521167789246529571128789504156936092068493709504269910071718751794276594877067407068993820559453183860574537613100904042598870885122204457353769261944118064387675336715711125051149967117805120689842315382242885307405470977150184958861419394201737224753197701466120736128050603371767793186825321947653481765202851060624042310821294326024858606389107141213747588746861062704318541482757183734891574842270605856154623844639420338123588363157734372468666580739020171415916716986529790182018137108548534527915162550254219007958692750568040672515264150831877855880509584359499186083911909400277991394334146934637243971783668827020935164566876200513969952748056399661816352205974546993210213216091150111593175123439283159856943367021145666846172754099149904002434596779007075322463976875635759095542098796379442847362572769050517111096867898349247293845720361576804410712315845550671068240689449933101611179107087723231703293191843278224470740947672995759898965433196674365801653044377001854695415683967170643858795012960380417489201202213605513468998395511945994662251599438897989833540618608939209249669605924164355966273048976742164113546646985641912123493060651010025792621816143125735304426204751786445226416871929991318773391166737563845834993641814669924731814347862461457161465153037608373824887989478784028419883920160377452959898277059826926969759025043115265694395670399477890561612081366767333839582817983974001864180431198269897919024751629416558274919181054562914611690645509305903346685855507684465391998005410447672729383398995724646076978031158755071343781264813777219153177652926264935113776587146668441815906198403583031061544062488063292372540933413007994698815788457275134997725550826750340309809680535321787084408627800470422969624943152060255174936980762963459985763273695292810183141586729278573068629212787015232028951144250593744473843115457822426320524228903872440063634959389907749387593168678977462837307310435813823758097792704387683073823638273157190987010772948667287925047034542838243855399123448322621446895605816161488976855137669671289431974440191696801087653476000317606662505893849674303942736620480270769827422467856218126973456361447486200915221016826182205479228102912899110418708938473072348667356557277844013291975683127215175230458681447422412730080760316358523193840832867867087726728578433153138373008245324593305273916372226096200028159451582242765232544769488236915666932265960562135317317720748357365019028550878318266887045784514035427312448963064217465367899635508652954627962577379455883866919145475733842496175664792730002010691568901870386903022172127307967590268236500490889756735603506648462317027482658734614491843211041864503318599715358477162493125826539036032870681674377875724840408943981893058062038331340798648053966290642950540661992967596017312145593912929981340602632012673308329199717147771221160182718317380362149715224409971745347350394513193993221376250429505332224821439133094457021365401552667136532179512585036870656355572809341163808703285171868548853538045506899709669356899604433800328816042349013349476653567300474664642433586387046807730357369925383063218125312470700228467035162231894903701278109637157937014576710524738739664886233178856339516599989101474084980607519597308582688355105748027392580733052234939958944727615868980891639780141340421874344843735694519020306469458909598199112514960127470324672707773891226871993919059327833579749365481223937570475196076343221617174123376019033206282887840897332711542854128392846998627067720879629280082420296610569211283513448101874534110872102065935070005561039539790072943143982802384832466937119575469237641824450165331483507593246336810552294733954355822976778118227501446020393906325080855332202731557125983555503403556460094366250751955432719254494148830152492417152767142036291138807885528259730316607208837109696615678096052959020443491302687218430143942692816363588480618687702863692595264745827126678352182320673369946570914367881096827175407981678740906505739134523715486460962445421538396552736400932501905707683818322280193471731311565664063865256763676667578084860167756329887746168139086588269558615935895313281816619139073474561289551739872832965382474649329408917186422262878284575590584407284636202630615518926904218513451324801445960512968544296518895329026705546471669697024922464384952293089146864977995422812675558310226324387551066061612343001402877568632680066344821391144239048588789689543686828251464808170358603577387609169704105630893774882937203433708624864487941088416656417453574713030884505132082766008106894369987096856181744251091064462813865472457011227564732315819451466613678717939656247558689139659907866361140649226785968405754356369781374601474440093235629264830389920633963645927082411086561766085662936615816474901109417503537724952376890666024044738837394941929988919953223218334515137111278737156362565843693048533720624593574392423727642689082257068911035750684260380779329460927708423307800730534922975081888967662718977719591573747863792743396341362239367067087112504216324645084451857130966370965568575013266363268647928202522882878821081657710412270866614274917744260077073688184989954704605426213731961985811896164433578475342719325820281953346689978829957096453527958712090102834133851114815087417807873870672309901469494537555104471140738827527186135266665722792186467658637545951468997268609392487452402813110608161556562607910694506004726629919905298763865328810700542199953471616200435556344273637784235797642770783583958789666798967460954170797504187237788556566309036878697744655196197867249214334822580552798963503296878949937803501829369963100694191431536907045060983072760263552968819443977435373363415847372966880301500214211284923689131119387048219900201583427215029479815626441903989015698633871991339342744529938184233121627602182351874624988044698820685281230675750020666699411781200024086566694778172580709922773122319777750139976183086525594669718258486462174714365278327033455764622276573989428506744863232324368257797203504136273761894121686825714119098798904079161707061246071523509125454845080125742639742087152431198075568128879068379136684679223486282332907425633567238748209166217917791655948328632759492748017717103340934282759749931127154801374168967762293541505179777039326715816157377344971610983145823683185873570279517852993653321392286951178863993074964385166538853157385496427084998258671550537922529405442059105298158173543063291813794490039715259153915807910898455323131673485075446792620350478227043701807229311483804411983481471855776174282684298891847148330775770847759870209582155539783545668096050558302562799200861368296835200656014093397477250974965609354057404934304799533442797618721632310702584043815236904784100186627546944961707975921844081744068246212932477146973621313871627877851383858232403706550973215044380415040708931272714122742427459912423988538785201628550008438020249334143151665062865467587498548426695466360444930629607410236353811627193793121588823165193464565269427802334677356739515584485383137925349302537659150387838793669661968959209064371761955564461064071750722634989966654414145913479231026005268414024511309840863024981977984642509138620382875583597255204841604752164605623407247002647361459443998439775754867625027663479786417876833425745812235733153579228909750464775665993516745372986139381647424744328731732957695652622202366039280606906896736866217382280437098103306661964288550276483837676076875737266706332051244092367055247630746890594469581896160058071319966559879205264282459084193184762810745192512770168116059835727873971562923647395362647661992161928129924585411374370252431861146040560779466830006038521082600457012667273149073372724985460973940348418535318377961465634423996027344468990781366296441828680629840473537136825492141168957480343820922108471731728257324362615077141340465981075477080828830017143589741896645564245261258256938627887991084537642972006398828528861185945664900275630559543412133713892914228075296313566352136955405464970079755865246412303735312325906953143684760777791821503398211701235306696242155167353109659521544441734689827459403380972946161810809866731458113412377909716741152956478274486138478145001566134204882407025392111969884448408797332701974192570825675214284867632382340624974977708137631830280925365738096445905451674196564930118703120612290306216465567223843404081250705811155530071034759993519396738247447640706413465986935373512309703426088770590017141176338233487472325311537938611157628075671791658897627631412330662239345601054151246792765504545651789290885710031022139888581562189814643611178089384243862863832564286128586071487320835626581541307466990401471444882445941484362696242187745890219390321567710213511862388547136162255814221536416228655482986761832485009199250690842798601983220650856963768092447531434398678686857790084016563788456415544419196452782458667444892008209008015906355153582662892842856437550497670673771550241891592858700412984046601131837063168008066176345890932639070268584172542850786302160083329621398502766930512804070450405254314312066520819331784980217428240358579865717279045508492276557271023101638265762134782580403482743892970359482137311457127220393085277968858901247648388944903334400439897200336571744426880567653881410381249453579301718041525861986231638026998243679616068086504757344649442129210993301116559846497359576318611890227828559602467465934766354790344621686275364277252939120276589055893795737327083003825665264743191802203010996392674726579394515303486929193448316866166855880557836496182122239665085144226278247666053833734688566732712408835854771117058908779564258315907671255106942642957932809308644642486316609860323634183829422974006386482834265495149995860565107583348004065087604219100412170846801377622357914712048833003680121777636344405141280012882773616371208266999225149134238601762456021408330943353238037955725352175644283902220725571865529828862924251814249358944449439794216755069925273889591800106249180925318148079408074835542593802446537065914749942782574286814380099668424344585268269697959070346453593746082440815982034310227461844487239608181977423619114595457664914953268839856293788419667054068533148096207844549736716241006617879882343961310233583520400036958510307221384239940296796851289286917027741252206404950050772383766542535005975060039024538288864784987870057423617063032249421203692873508914098295303997340805014355463816496471185251485947715027367063017605860308326051057863730025906036609503047332380559075742453779204749591998409912439149567761489410193938679508299124826165788577981254210865794216648803436980318965172165622940010071520497392886452676554170675370710945228521115253481983259714566716681735941604725042847893677388508353777079672376908120828761606229219438249086215859347859673245777054141406264648932488114890829275049120806009737572993294135339921572640971372605055141564848008485056636535364786577702347916220806015111200769278206250464952261207428547416355663059842764379890570077246992941069069593485003530759341230323682407298422942033545202110887390727047046869378836372837195624960427288421852671880766823861370008211982278924434201027035947393091412611159046355972565814878622355998757755066722572660003673544761043940239434255814385282755108326637386644129230531368793292381076287330998700837934227087837607904510675894106127247769705998642913829260910519218149826139848615295530401364302391256180073735385332686380227529929402341872307310864866363030263201904907924590180200442205681449750993739096441738848363589354156161765323465726933069725004393928077212071175772684440115061945567582250005155336509863770861830380075309023151393986030202074514132619591834813272619391290341067387413168693507287115079798919168717090398937338414274751077708608706612103869993571015419877379552740583688498901763948040893602371436558264969221111401977537264901065748655729899074078572882778263417855972622256613062505738512852894604376818781888401366987372718906115430726510226210558951229004061333845924775731614328154519990093156500773794771261866372931484458806935981424110584813207936845152519099994469576210246404679800669067753543121743757087630531881179519522994959962383638234088682253720716997175682175188661238068475391124103332712991085392583740037146559266874278169505951587504327149985463350463834413440904334144867637848938978744139595376210657173041915205206730891369228430055611448660797629089323777326065710742822101989034581768353943466674030083715568252550023406818510717602779706763540708921914605140125563253332062547319129586953441979219650470809780025963392642628401265021426485478197646758769108481569886123293051986459834507554423996147185642825300994926204216832926992836605572344072237511907412005604351333475398353447433879007578652125487726500867981404210834907988216470836762158652966918545212169768709203278863180693571961980484118216240749671903995539924546840840869193883664077762207062371524544705621486800704760037002160729246495225200315724187992532049194625067232879560627398078137856682105208975521254930481155618905124433980899580170380279226480794423300766922046964239398995110951899880701532551441824134568371774509271692990404686441938822483874047477976997973250755514633298241087967902032962059358398320027108062680115504872743669524055837595190788123097008548256310924823517957449823341674202372210026512251146382091169120403062373910993902383013340100880106386193643703069525117145979458827481437966029120843809602009452328534632460064722198673809192494912690609326138474748832075593071200539955016002142618813952387265834629421043559773598368597890695253720375578238480763183263864820358624161489313647523838316963658539837969444568823586256574302730453696896007725239909472269310374452044109806170163839586759187258763276254000890784674230180672940131677847964763862424810602180965800731156310500657800634365749149818085541761234849014590154669178314135775321924546384380081849780041214858517912401790803003955763970333995045758766588130856586503207822110847373791383979214209480630221430771088010727334032814489473612784007411692166278962098905381214034186877929861087104486235602642126518529140318648325822794746073607034913522950893613090715985011149259096130404080421586199269415320644505291073294985271419306595565843093350798792459934488672009240501505901071034129093107636677054559295368449035571398323341612923655605087292691785023597895293753683678377415039193079370173864666223844964853750151941266227248584439386486382612740411358332939721117836969757059658306804279634028150418133407783013453122388608753674883364222179402836364747052022261280439882504410421514703973209463413217371324245876820060798555068345372662289325474741217142592578216082054750808539862785396934835282290354813623195384347717650738778155199543101431575483560509527897342391547577313245973329553407353204560519857631811884596117716191029357239995677844949384698513985210683524129734762407843843239066925329049015423138829599564698357566204394232300649081747691283987857500784243162546849236966456885901174802484762752119967860704952854287662430642265663585740921627271877224966706250055874249485796279087002256314944824782770349763964782267033601569693885785798308171532265800792155229623613346240264616483584587597676528552254246215408836699287122819162874253261455209402364342168989683506865962385945930288000501254493304630867872488485317755055837433590399835141751262406275960859331143559372914650645582703757220485470194632793183004900324679490803376916436973828128516898044441658952072286583598106958954799047418406324691623229947866284660553510670277083338354509479159119547853713180284892221065815019808800653744995147209802781262784168356159157408254100788480564107913179164935951980120353891932318501610823101039222092181793290239143755279220515610743674773318201941200893911772784129995957797935958042356484849971151791585849881074945744028807249611105785520995950492285014587360710623270771428121230860826233134706491476673024871151005999133722821808667155744098789030075659133684651996043180877133210344227506494225425532959180924127771882537782508528304908776602440165320067473731621296051824006654140012229984424141349531825920751667033615568473763804814745365310414363122720894672913927380038809600726827883189035773585648723769070523624125691841082446038381887182186508216060500880630201217312609492777097941996674342455677930923824113598663002870897496885899169742507341453717902095478222949979593459724251406043609094269281531083404074116165645035654924550498376797963039047915954569280659058190046139151230688169535764500760859962605897580081069147101669967697684687009847047866834900801255191649403822280819408266598459512974908055211531579945143439923885835710239132365830765649988626522446996955814735035406177449893174838003719729853717993950800893423206883812024945077278010885641843836347877652098658734487581809131116640355267141597370790709005230614397051580364830015935155524291991312045943137985106307608138744361111833105166921486724230353377307856092700302700728944589792060431352427409038171955634739969108826030806863614907195316516878956539285562011190947345567564093806519732194729728785683926989784906802879352335879008991918458209776449520624656608338540592773524044188250343773220637558123503852398256938369220016786581351557542634147316809099090344837695497531940970046121163660135017209390887956259662135855061581047235123297226014953099809315802419244669133420874670045798306785543393765253614061460349556541628420843848348585645515798671321100430543452442851284337199836385328071183855686791131892500333424139108789290757479879974770574205223969795533444487446483641613135036730084609951093501182154597533235321289446835761584966055775388663303808612246173095228694396086764555906124050539388342416531846921725672278604046490063613472646664970239596929411128981660245369287817701640717803074374276099315700409059275082937449590996895602473292881671419209117530784972313858467182939867240297597468935360381738741990647255974260503963272427633406167333565307717462201787037309685903124036472688305954045581995852180425053987566681452481519080008820308312579584201359175610110437274697021584499355607232187483297902832431221959598261641303328372162629348291823975639532158809174838930934572055078335446350867864757362605486884598082407589676633034145288074729161894478471553877570453997088551138304246598729943436589094085455584837505023090594992555255341308830923413066926069149027800373376560253078709567834854032800620757440157519608458644429303659317336510605830197066106477708575862361039795675518608822401389353401537267423233529112418473881099209096779346071682889930386298016564336990379568190084540941438672433853351474180615211083433181043985912921845526200135293516500557017213740627025255686723521720251750466427943985202840663753628922675651975428305778820104628751612040559526737655648971473925825907505475340733628626539350554666593132569897178680367265392833092880775801714286471093369895445063958322412240950089594770521989494056979410587735107106811192087930847866017044005641929675419480187451322941207148319882666864315035557281332774949440524957993906276131690835039391883917367953189940953912713513322190680162211483705651919164090672510194433707305584012675062624193872612526802770825029264170401791426822600900671193596365477264147376411539632981248937990396869565093763682316806750727751569387816523616077221174376625223921378329258138248104379875542831775338642329373808777437799702012882828974100965751439454847844518120577811814890769053797977195831592892364746113762617340323407070394475023421114647446623908528798831378544335517984215729442345659549072899810533990320503673053959788653933226435410368848376138985389984971201129803581954408306739160912703048975422786393857333078843924990110972571400093822930156725529777670973984860650946248903106105573205801396421130917871354641406788105247021383798262298147867136829133592093675099123184558465077031573484337746708111719366795444853042143195368134310103259771763459885402972323689668877042231133144685116935658665942247631919427349167214123822078788670501376159949592791194523030883380192289397894102604540027772080190463798369523116057616132372293248068314496941802599939075246223343851111001059644460058617070597241796471364220231072137365198083150948707797496853225267633833606390426115419300438229140459392476761508547559251806160537265854534714675706541532167151499029686237814525948224166613081057669087385472181260129964114480350511424515836806063825995190335598157913766705358419934082015272719843082554837145639142629855334941015023054352202656383083349578280879349176525513444394152685758583953465554592853030758952033148667578508204959553162903673497116906364074574276433006501021083706979418749495270522780591320455863752454158877142739180712026290072445332663996663874385448441227359234759970242551488772592255993390483267265207388415607957691439733446986110028871145507507521413151198979661698456960956670225905135533807053669686722796612832357331576305221461951557406121225050901769202753955305349948764769798225766185858909928700676691683559670182167509998482194525800214325372623756805469065509707051672531858050953797897298251962247432590310725407699357068922912874232053268179660706919433487046862847396451469111269913740989706886273271312422197021714735650886263450824227110202964092011925217450945544847464338848727590811198148275257262165384870627363630972457477070598026128906718689241267785121242451358877487959256034903722878899300160554858703231792520971051909900631784596651344484325802375922027084798262607066295302594088633980277514223611503196153243799026319632477801311572285903017532811603435598582771262591176705394917172550863091749619786269853542267245058361613469120468755592570503786167418917140696329528889441811809699988060220041516654345971477689746155207373783284460458983431479116509764677248115229689201015883570873888787729314771489566465094870684951519993420301201972936786819940340766866636251445201089198968115764611937544251882525277341062766786925132420144629456093049274674302564109392182579279754519947609199977755606942764694610502368350234814280883971495781483584887490694952174741686848980263799609830334543608352373339968240828358181282798057000688526032765998990543376377639936227699926530925371125820590512606118542836359389215299348864850872303490169252111077683909075110694219412843580985007478081899250886362970959107571275662105110033343053728081948185002064284091663974957481409643478428430251628317786019728521496889870210368916276629984424795606000830892026588850880827432624614345950618827952190533651015487354941415465291403312034103702244729776160735523385036173181044602279655429099419529857140730205076403831253808557309697556563488786855644998238408729287359684543436967521061572929904804491214256983129117878602867131589371192305043600900276550645718093421602905386181195897413248697602442927704535831789064264871603658514661194591752995666476202497683407121279777268714245079232428716072239289516457886106621567664691794834103786687898978079005714796382971179524342230761357020444739369584858928663761288421808307300772024442256334960709969882058211062006689645062076368305902718453487144245546579791171659147429056060007521641353725570452143962520465160717143591353496755708489399670268058018063082900373301062166835041423035551885752490581670515375800533339038161422961658607048091200273329072047805572650046819792449876004117398609070181418408241760107404320531861409033568362267511205757263933300833167107735182832481140259654507935638357266687819821581186556331360854087454202592938342487282397273152218292471663927422578631956239724591001403135128806995332990892618859282027181432862985686392364872511898484563525884647202605569501892106642652114037138408323008927040819461306356776684505454799066563394706269132178734697751384095738216477485946733215736911067508953394404397062806876516754900391641727484461719022926087264583859465176709261359370418061483913725801599955845489520447842879044341123841959563632246195971551534507676183339060947277293481568691175521171804369449549418081634830022414720548045832485707003086597020780748360697543993147993214185445236618867695762688042753693020589840994340797754719356544188947829800549811258904561040453035433908863384369239294993212721188057543509421559344841452321791605311949232912770833974209376190168317842501988212228801350318968514574090464083031402979009554018942653516169987785461166019780915725550920590819548773068780737678497108131693220125369326360657666174304929970982536124055270685533383340012008908376990541622584683421107801834255752177123241499550425555107264877744171667880683690988291734274581329667760091152591465718778310242141474859164940349507176282100993485951889031105406734516881662441984513123382114246545067720855911838670593653113482854618769729447378588445394865865281754042771531992886527702010749982967491616594092973176359184241103679521820391661671500252619763247434818562897998825918854349637490383300619188634043073927146182540666072562527513930479140356339809621469636111100557130698035978440302269072063823352698563475551469781450345810673661714881578359962559821404102123372103425219904580422604295165727065564945435638625724762859571389119603043026906910415737747404996443518870214008382399572715494702553359062525246327120563040329090760986621201209627429737448365590262457641257689146321118109189265366687199963295967182623182779543823375076170323532143308638909291983980151090646754591067113749024819223457490429392262929868213760339463409579168699836918344714826741297050639798575209968744564722634508622944724579307467099966978754729928267903239383880098442574918799767222329256477046387782839000681884609956475824572319097939603893200428089799353121588540781348374707329196021325465670753890503091920839524065184532281699712049925322078846316631346972583696855819935993465327997089618204214430707767596656346180593180630161135416430404137904342003959787624591447156829716481603279548211136102663519937328057722043454383565282830508458248476065014830837553752244900333952067859368558985009373760273586542804908944294933030759395944971758713412848132488844589485387678612045557492562880851836325432164466284461005900965914588656866865973498912809194713108855847523985257180528423982999933059997495279455171592494550868101474013309832218991671145080865823882216621760356828349558767143888163648466514585559877469524490009733057475389037659254109493119174942042476243444883240510008929874232810197922066327921405103942287478820478705272176207801953630413450886145162625355520961384331220158905400449514620983331219224157658435931107152069548501304339760836686460439441598157346894777473363978949701279717457304911763732531683717265748508533425936119052299209360591069391499317974427584691533550838196024446962568787395208124013890911762536225677133649688542260299581859546372108143541701249405481469549224501878691653030884101084142845312798287181052976766504935210991116365946084012676101798775652761393123957774246521307993731004780009533126619881043373194787754162341335989949841466358231932781892419821120688566615743570858703972117757575202488477806011502831433095595775051429796280083879609075753694850188434395335197569155506636013913789049865989856371493572209025295712651974858934854704549414370710608339218887486108999439822611371117260246811870943922360575592232128587893465993393010350436522292025041312970797842295213466071476696009457885836997938319569947253500817798641481073523448627779050359585391451863214625738920119290263838569945697897799188756867796534704130922233070442506485238094704681898207515865824327301281466940126291212930230208239710916442233269026658165618649128040022011289560366185630616939561071718749358182270143557815255427097331832456738135603880680454226641511006702430376632600135235860147861585685736807185554663468963447914188092628937108171568187523571007489533961872149437333033166758997010931890085183832670889165773614405377216162250224017763304501932988139342670716683464656584160918003694641926309614967828058591496091167493269821269745161798155634418943280224824383532239501629753533188235785095194657140044092369169723567981078649302998808936591894303026916208449534961030858590068967596348384047771902411528640317761047409882133383864842962990175174320296466784476511145145814191140460346762539122359835833385994102993775363621459611395064570810540037119018442175654390514082183041412266169729598335388338114625804204305633447254881844330466957938978406344928510888441231434840246762684074530876759335159322175168958435429165049630237155500688497115225565308730772719414844181845680459764007335231185510722717678998547341231733227029782044850214196693246003350495754670840689141686634837724605173948436330999817727429276470054091123264779406320881069555324544025453263953787295561732262142888246717881956407779001492834603181657029560222300691469013032182866092316911716752738547471125394187763904892285588457371163135906498347357882583050045581705376632383465914038272253040085653937086265405370663528476223011858686253033367727694802319080016216359698320033170756653975170083677331093730693545411959310032845087994940785638944101595370673455370934258227191232759828167715639011550124683166964267619170300992048085304277783722565446683843326719843106526082176752210468021435129443542901712924712737642156182462630986120239049008949917387307691657333797453064637612282670047355953840842561765323199128335101818430319455928658424731739030836723622931044701497626538504882032676370016650939486699237822786073352721065506497547734512299041827483815844830692597285674936047969438055649076740919282268789989650366205863293310741951635097045988532774713394189010447590739419480222902149180080814322393859800471340520065141706518678675261766136793069393733093969078456811728268287463981988405577457565218798149739865752633514548441188715334631787401542312154907646667061783864795444252502350807405540639419022776807005864975404629483420329341693310085772277871595401782742302148517378305778571446966873141009799597750273855390002787906859038349328571296118949182273795229350558862160603827812402134601958359695615551444283396922987649612723730316313001962573703164714191607153833827232184525123047868200518450455277046654619092825148178962413787737623005293415755887389840791582850605642520847693520319926091540520345662843179845656598406390478930877880157300378946923856685892085402098791895944684647659023269162457187733353757563052665550857315881881284538194839689943346193211332095630597382232467965539746688697269497219503063288023116120410752647791880521297249262023067616649198782544757117734418918165234178376380548981530905269807058461441189966599326629844841027930029735058750741549931166360409228470928871659751413698581591698439876184728692312639199585368920154935743322928560522425856136854508033592411390585568807865862867416898557056070798313992787414530419042492318675154090005556550878774912490879862020852046379596874533079582103754883653957608388432770732391668342472437414855699895099673018750327701937319085697195984690258296324145882560438934246974909351031841122016179188086749616363446711266048209807474721238927122467520397044564106647767606702145812469976229910955189962554093659967680994363026219988607661326395955299736577715047721507302282082219304564248642022783651918160999087912973464632427562994277180123848789684275012753110826630065528340272289875971066028057487182952930814641218753457030743815076990130756653005813320228493309553138952086406113724877093290839975710123048851100772177139932316036551158676119947096687822037314595306536318214376339536811857611438604499843922666610555997936719530098837814275550660831702497333030253793276937058759449093203765053970022492250087061738976394153058255895631029561988551373367872534484806193940669647480525979794679664241203749516130172341004676579702880501429258171586686671504650797987769003455226816420532171407901835339089237322574588973922072947372946988337525047676161689856567296268686113270498286165962950534139574910315033017437282110172242513901678569605527577309793628217559064929520483970885173746424394188726297817654151686099187379943525953311865817025210086608296171671082486838655460680749646339884350813074974148678010824469930904821292855895050695523615674459101249444704849143441486087165368125334317766811217625198949647745437443997310154435706734234264379503847872706618357731747452588481373860111032017413255674733359827244554260638066641308070768357556277462981560530262606102914874533891234654752977307119765208783303600295415819192768602953385639714224933538150785023914823161564576083073740897488522563100907879849840650759322026043967423592085430120006371213760350810627019771918161709561020541917381624248878751287601368939430969704689918175399900020114075397893201115839020433076342816123146745793191344751562342616515762021732135046312148037571351545986820671494670431718857351937602291273202487704830544869457449282903222439800828837704942052567731630917096738849132824054056849651946421868302060736984867614255877626429098601545411677371789643689154388980663400262848894283263185302342961994276000400150763083450495857319861255265221286961680009307755013306000379009753488504872559653315781771405267532249939010845898659320899866263133500590346155915552348555618745290470089415870452447602416304990490517998334133057552142730372979595231526824902915530491301636813597618322445699899799577478620726033333442171767349972914944785552630748878040019160459913656556534340368155769136188784789213944013260056212689325264364089553455294004272335182973943460558843786868150493972186032027612883201794259178647996440954571953275361130234401042839173547410933197046569827286640661815328907080081422519358021350730960337321142307388922566010096338709086182450526105191964844893092882597258486049174652989215088873233539252483831987256144423003333797025570713890502899202158075143585273166788022835301577332816233932299679165109494777465239668204917678563496706040710976319852834388233957024270961443947164484887696759882843221242232879133274765002601316932897676807704185406745358989567850649627194516778650467087565756402863368541148372305123323899634396455190009552889868030090568414250325034065046648574696040562030091193331556239562334610695742650390652302355943869775873617765494056561953626156638922264458441152004866259587920585969035250279883980113298627987521105963927644845130034256621594287537027903200269181203959827731309130273563853115057420057735457018787107135123883390005998718304474057685648823811906273904270602837933570674094119335108657576774853792343751724948950666265337531996624719210089552809810510703764061479046668839924744356205161167160815992478522946936366535985980647131897950208844519204000061442877714515667827304971180242739676198181022457632227485717497661773377381220969805471259117029420358680150577601387269982928085041515437527685845282780909937949118613302908026778815310686709191050298668715542349541108599776590489410623817289669680762209800222578220869245835670373812636122372893343452833284677758208921046201387155138984084687560922216059360081029984471443912339013393526527870033888766520153943840979628681880613802694989395903503965130617910004335668564991494527545673760216046331293867865588043908577127141869511317550479871387104871377358574991056650892730717005075308805161962778216331486322502586914895821753444191141380782820259215611915884743860567355383597309870128751630288853395056181108836549385592324561799331905650713253235488876984799841611405579446399690343505567913451141535713671573350700492592776636363463537589507530917425444912887106277902444423670314173723435656222739139497594639876107996505127004136302503976846354355734492419749072473153099850815832550852556289820571696447339668581533754927598019589501631676277995874594348391345607401857591928031542407416688183343533539837594464104358802141284434780250281018062556328851976750137293290674696731081037344751716831770663104266442910890190540625622541282824194067226816332679446786623580122683003771155019719265125568046999963132467086516252183504376084085072545394937427166407529624419930608461505242210402324872870078849822467505654955577101932922388707004907069007288004065618895258698347647069936271332760287570355405628861142363114907828805097746634515912124040387700092075864147486076745282688423975900322267264705446932730486696345944789678569810855347494661973207134262075393259205633796167339086857358937580714037071638803322794493487542364498306269800478629435910654709869815267385878529400736826949704298143933864298100166399825465546846799729341529064301043089255636984341406556172333462011521247820131913800666564851463516134947233394859389635612226217789465665443311321227990015333072713541929469931699144904117254267416273950306436556059939792984502486594079942303431479988303698388450666600263100495197017844833686723889490220544060369127264102240647614866776591337107610987163230802184034797316825950468759148357478717954946553485576018577253640297406410368394619251146734562761068601933424447984708954846967683003943572471282875366059692993639495171802610597249288617425547621939695590570343095341088721868338563332034228885185818578835536310825237125248527400337117179311689516355281786990247095131368875525353433208569063653419352498422086030632855695114403600219079153595034606942009595381784551362405180514603914486126618212606814844747899212250839656053247581073188335740804697041823609068068229406771516532438769346180751496932958272860227295975836637524884735132610530573521154010320962254098505562901788817005188108870425532396484550350451810754177285582902946159160496154927252592358543003220554376611070567723736606617232900387058441055893626253558675770651849930334343400989518210109357675461759215620155730572580205742380820356807727590426706806886929436339694389002172120798360227576187445842938815310535757332402643804101748798202762637003882690153536487769879434696085424051902854970773193516321901329116791454483083154404127744565775758503663225110712912293673708110696479872234244924489380346528022268063859440236437079198265095350363364260940425467690820030007152919410417609432737868544814576846462012362803276009451969614864686627186072844496438023212447829999272576640723268309120530105899229229617347858815544466825220194663810820915261875014791889382608398075686978848369399536324387325867696341098979974550516515142535924500583023310182118088541085958114339558378795547447187494352576143623157801816185094677587582399060666605744535298250200924217596361913787132389229884554608149394448031240257392630054918209181310068389924859356641232453774785575159305805943776008301367843373750954772486959988486422073045224279621382323082382202453235925026648195515657677236992361764465241573674380678983352582772523206094190764654202203940669084269454579338859853681965288784789336633698633898511902389872568278790027513018637851153609672653931815473034370961570306490896033253214117023702954037879910984034107039253228405518955435314795984487222116260471093034863601318832424154742101334792615019884678535488950901068220970732290512891681496043464269534110926957199102875292358319532943924369314377905109790133882182013050560045669598909360448499587019978757536366134960144258601463159824412976321910647537589003265483171334334364856707691597678140917115207235880072200933140267384167283729350107617873138670273087984306954439058981404545594344457367313596655919287730292923258968797299330371199168993744947676638163724306291002174844335816119055078915928649956109953323190697072941653118730347855299263538395003063588414556394790772835304510044283766404099893296505110754541313199170409388169190432472006235857397553603470553899063705784361327392110108614609477257801983474895922972238318205011370609034782495735764582895863410753237430386734182679589011585439214939646969233979084387877346186028045026140126315049355904254584877612736308997372812269164416063807310797587057101580183728796155581021913431861101751695443408429362124014257722281680302290519655513023416991993218085838735981588016594163857887934745773295007883085288369856483953815976289269185557386906863427158767525196092510247582793391034545558614499078327642481324670919273433872160056804423745960664233581100467274538867783211322492305378565872109870135683705197860735571468988789967914531608684381384191644095303848013838209545348220530411996232889590927419209757768128772928020223634126587799327653935188549185955460035572250667035429978375263345491835685585086332857465162787465126107829723187119118989001660631081820612084168334900001985498336925828741560684868315305459272921202395685897683854568994251051052033322436900420029923929472478787562289930508067039175503449122991706265312910829602527973720486983818757086284649403057434781499498257391458271860501643805306624217187083020756583703490242422169925964796537674632484022345617887987510140898399813147560924814827276074690837785871146796661929848495288610991821922838263429113452710249927741574752507543560188260337329717215391157856512666248948797311652700589459244144520004491194830296579830061268267091278024811630274588888570949312878638770466697205469151487759633585834822747311480559775757599908159143843694887797711043903681634929204660211846527326612683178567406246339547228314178972416413525121252391572911332117396456403755316333094477277858087653746166388015218004238343742921714996623479333936631746387879161050465359690761145236164983504244199667563738416360496071366141746863474923995954669568905849610971895055458094917432745775325507879757279595156191313466659780028830633233496161166941275743920517457794845930590530321341945502743980640151983202881426912693668504258968848048452049984481558147325062849123242632956368892507463091620269697425951340509056687524055819340767678029337152869749958234560522131859966248724239201509080562630764825496030801217174670269602776891098100643704281274692449141673283796353520996424835452800212375898557322191023024756534656742571895105277907647187038140413049244344353298045913163889784695795328091085181889196935120620343093708007729136991854345524667076859824895582115202356738803788449351495327032609868016746044712758082450022184940089306905887859498817582322440997274313008491195764478116014796183613795325999137721545976765488070174575593671798944937238515027805815524930630856778817618857013560332638501221290681144213751996896109460414336510130402983536002520185426040193462910787855218730526023379404148293427108222980956437568578185373997186933021740806020106163068760885363415572384776861437777935114034971093797675422213336966920275930665218885736829343780870574524471800099882447761987152911673788804129235088201722181302543540299652696496201997112618506953011491535103027361737908510272923708531001652100597647082843050543138913476816991931757660748197455830632204166369113485909986540686461378762461321576216298602550241953357654276312152749392313526061193553295753758509264255608545250409288835306537795814409803794399402278985244709360149897773360576141683761801307358990441883284524891670508046893020846275825669474012195811130933014001840393367850594851744050504089661389945257789103739583633278383601288187318750055334434992129129650501644771238588262349310740265497797892589701481895245589247977930834751396492629652386142612091381686229807155725304405838478689199870290199379613060404777085200485091477024576791805482250470307125740925991841486502366200990921042843360887265044096887781799419445864168396438398612312335268804775249106349580046058058377836657087124533973516793464121418268873170449864683998582341960744397378755273535041603561173246119990228514336768205818939037253674372240526602276525062675844890371825821831528338648680553538339547550453827469528488952519035487373031684094680609137756164267894916410903111618322700805307826055652317197377728640855304415030908270258442678657973515144367340205338658376870959747560594136423085060559851299422950649409426430284348600877087358176775868338718414393100946680535383068884629401141112890606493210379857426516385022469526001110544666078412255974767353950903558854184508183799632577535742577252035740873455267719717678598327535443481620293811575538564257906897929336969098226165029664259028426483338737816294149714449160663481316514606493188787902936532024508328360504043291962182095556919179077921285256957533257950180245409256439148832234743091941380606535388817903705408715002326719818004802149641460322519041341425856525319546633376249930584528014265176722508416797849372964412543606252462736888703691097895960626543154720518046567538193178130893464390762468338629348015033125118931205198588472426648615158782987101446379248799627087610465779146804891927291644960636194741870839922794561111838319624348569792729389505190270935374279777402613469519805437420171949162070469061167625381537559024292306743930923015713999890639352062612679970482670830051941781240100733407841986885828671897491663738219788918738062317158409840706223506680014253291246058295866985974196041276405747882231735712903374140497668367442546140508256985033056381469191441062795534527338026608878056344124382863360853125271984233785094214199664700044323626047915268329739382014781781587220290831273503351903019879580953021772526692671539234158189673906051817108444052488375302681244847480596509455719441615836847320686188775743719309198070527392184654459514739258831008953369700741836492816979101597142923406658568498082779336689110809873090669458123807316396184202772179841951399983499757866518111069871829955223409213700900700452858330611610848707422529681921578902422192808101758553912530959404601021852254302306456414527211719373536706579572632173914160418539296120125126290311921818933220367850107958127765476913049124054779515745677488534895853925626947208134279872585522796937273488617059404294349320372079082121868635579488869478819909660891908203380210858552404650921090712116449896670687836994921760180289336909576332638775853555391913049916582233363320343462073566752584169232949420017454734474457305205630693350872268008703074867237019225170856392586596198742936405257223376116785821985737711969843051033247420308690638590077752387222387102402578983181338906112142813188522238187180913808112296418407617737374416302851460380375026577951428855307483537867426910847636372583705634355676901666968987400482991135440939132709993811353543411821308264940661690119407816057521966185642294769822395139473780439505089564247813969959550121864724607594046882183120028694979278567062150844407133922033335144873705388631005974424857680106243761603088902278659384471461854738095389421872786123536524817414232465255775197937396193710004350686886445458680647458510810322016977783999346756428816303163990093280838721157904806225008314166073342715785179453671878026777733076551395489692036857033385451400291952653195875089780683851339419609410683384460059113642571029450304375059212005665198713611809954943154828457322006747684659232529502163566623253275749776675264158352638873875099965268481876739450649165031822882073461502491095229657147228291834542639781616188365302822517269916543133824737890913078816892449199057125817737753191762211634631482421571193339278248754203832499041498540443120907592407382880960462347903280345851047108112992857454046546498163640803645646139176434934791421150665496872834524563114211078779204772176643790316725715140834450788473496607434667970285916010680439629184918751643001776027360758934200257729518082604288505449055117911314210812610710714038120430810542655436592438368498498035029843395866420130693447716188352153228736955328662860422494590314290628252718312187854249989254613714901186202206425681888841318920375989821371687885033184771606600223193817696020806580196607219352941634830847416084700807812801136761089867635155466186952515472797321869549291858666177339711861631224380778378881291995544690296753676377252821150320071962808012252339748325641222851903072013310969270202493460414545842230586104132323642042905079576831233167113214539290193528785198368038766934730086810462622617003710648216474992191850701030305591875545589565494110695270342793074133146846429413709595543571785160338676512530525299804831360320463580520913859173574991060991900123550297667856443756953305192561478224566038748261002635429963957460643405373466201578781828595540929922647992387626608895188943181166056006037823845418362367428369873738954702869164434113492109289699279384312621193913762251479542582656216313488109210108596457504318553139135671859943689106200136554072890529273282071600894503422037777516525770930113497679179148411153221380672558188269192226003571174866092473864472672914169641922799513826630287114297296540614866584272665498535479009136925830974129306339900123408848459752927725284623892075795710529597385243404796952816540605350407597789508863075887081235667240515472858642897751066770640491225696306812311247554886319097330585705593678873777704920844137285154744776669996503380869817936340728673927045545729083992338630780781399195822971985512234128164977760642371363753659415375705451187541314939968674450189365749763773415220801384719007944446633385139555476276065647517700501805594279330805882965735381105695310166705712727075210382165457449300972103416871515742738049357223387829301751568869456327515968505941118375258316511124981223350451906722562284570986408662601801657538834107831317930772963394886184066798524351695616404122288764487548396888258668469128783034162549948643433897295915114176038276793367711830984275684449528950060007812070254268044792671731734924168802580720424046976724978921313892286426651801303655133946013353661700050242402667230146278642532439259226034744031394109995315175703692867132706971696371175350302994922442522267291329393828722750706856292616868603082262495624977162272501387507089338692216405250407266887107726953463474772086315680688360374586500304030156498387237439498964507107727227419502695111509512937018039922908387526554461951787803207618716756281745293156745212113015687954754712481329277081077246046037340965808815224033501378184747477857486146121552905058733421901152894869836691898553531568379415405793708054835522906014956768520244267332568902097121053207046897677879685881530864095232403744026271752312475987438267782422937984938388448947964378747748918107161691827549842428247238230234277229645583105803763684900953380223527173501889217753805230010380110342463554980562803750623628759944588972390904652433297734386269507385760267149958177708533820232017931491949035400494466005706569009005760916584599869334717704209633806372123061313237659263827926971966838413225778035283238800636645437945774253650979139046856364533425219978841279665830303022399556205834517608847780539947071466529972495503419453489245594864441555517392378778650359362205219796632001246065311021268891692486734511665316233942505989085916861677450237182882605768597314056072659802297260249016307255892973950118549007653007795455813438579317374919240266569644152292681359658132168291546357502618811802316645545463941597276038855776869197678167552930977674264854607423398999533723110264704202678590914611086899482991205125212185401305530956773586807416049244516836443915359754635415844402014907718250152625175560412037133144803302576434107538153556850473802398603401944103896067340213684508778212933327395596251462413626549615509079811806894264117052166090706577777847388373349981572428502817827204655889522072524452924245033318401802330771468903776581584063550162168049396784998997054042078751675265593784952887931998594924308813905233394527315616263734642646396273375981627287334428933303841808076100722423840262047490968404824280366649532061685332607552311616831093490044490869150576786313431555605978122588344343262596503589888003717141470591389438501285598227050905694222939125187412345846944765520326210135646765989798351815451730187862155596151515075146102493392903316939259070621464951411729560905140666674499374734074380858205415106468478269449213551228886787618943953887955161960813144009121416597549403530845618719930249128934349517178258641265605503343812076654677038233364724516082599695500520570812206384318779358366612066096895883353827094208497806877068145086270837315631593983923605269961220388066418448868659719351063080599102272172898055903829840884759955377847606671466215637884058639563300148666633917473961142425739578354976202981286441404132618622317740814051326301581762278771014857478694370370563265658340857748698015679869843716031456386291047897628835298363326081222724449242621092813624675677797314384255037491102128713722640103284657938719531844462528023823553582465196953534094113311910059318270799635730948884090293707429018167759925978210778773478091754392407016764052187636349059242781065250568934313952668172617622784336972581407930265371231661919857946061810498213649590506442954550760358759785150391817268611505813880170318549782223489875464546902378141170578342485759758315355272345277803735715182528387004696848646787196312160671188747330944180865715970388353901710679945370389514867055455347810851810254274560417733574220721874153135991567179889029500144422136937170915335334611049839398151117336813755730642111201362210826259444718821932476869639496841818887111616591040207362584647570775439522942333742937270660862132317321397956576580003395758239236646825307231545474480902455199116214928225595637363866815831508819140479800570872146596152645574029522416630329993483235033810557709576544920511262416898003199889768327443097486628006435952197589902206025268222819180915404642718162452781699556167039366497637720449992198169708499285287244370074710986980553601008573626939192640502105354039252218282524518063506314597243417279106032820783406729307331120620995986103611031308114338376855160333785049310767578402104169983254308038530860611729495917364371935977785772878177610476908568672432981080360639605827806873509483277808591840918135122472962681383191038319317534699342157183610494265475058659265773327662134959269525059039743032142884090945259675048894054089960871547812461940881959687778891645093016457081365867365700204901322454107031585010532734662888910877665616276987772075002341360920735635051207001895622182731860640175372441900240681689055284912817545381989980682183890138971525166545214996700120266648399836558049453022724331339529411631359671431967499658527744214713483407707024859986569553958070870898148368310619674461606990796930532554361421703053681963137342189729170758511223628009053764629954144266395084184709192337580273607754422887133147527176644561857286051688833810257774937355784757489390473023854246973568723833870167034586855178804488183516449431875743998289717381788964674122640820820054408026542485852221966060440775257794767372279946065061849993187854049363663237900306180063026287615679052729788933219566864038836187987134324529654988850879406571125487337367230596644134762275319743847386621398035395393795097255374524894614021833325695088221141988163874916964583384724629585058790624325351721691657619566416880034575393436812418385843938835325433098925752654381886551298267384458517049480442159464878365230312962023361816313866807391254525498300498335448570277475639233054548314419501240780366928559884218199653134692440652638611726917664422249284998191955724308218140509999240850749498609974742707732949901559246503569761852640566220192790483237409349463806925074984366859007762318997011778201474362039919872875182022299513776862295628405672311278186446180869554037687466130986107537719453234009276923332195522862363669206083547789912293219162014904809271732750357532793863308141391053333341055709992463586501812039871656272073108218016614276292089936791815522807451137584295449603582321515689914381719291273390916871230311598073282299913711973247286191321798063461975159635621145405387319511999316244319531937147502848886305094918037494648854888443549448426300521419937231855219296326406833563112503524660987113834810742821647352734825691088687143102425814448536693314468847074437495052437611833929956083347485427878693696669448299809794471005505129849322907351707257366260117351678902911708188000624014273131211700198328635414859795195702953338485552564965678668292349978924373959736096462517977166554109537818141547449853180444967306355908038299603026996712978493532256889971569954159637890469527356288344359756160115660407472065470222204806101873456985910243249663370849537700528768795109505979064843496635866313160492316602617622574689468438144756957747140204991387541540942691659123362172151499363794734611270651326098658282620452583606672165274351448314530988529715417694283740842454148900551368345592291939562771198737264152332384558351531555986265529631630000385444570163332144040603466344770538215614384001778460582743071595307097256355788316866550944778221948545322357312286958444773525020170483559569838222015493164740016546370694272524905023078513906059263631403241857791148385061538099118246364197067295527992899981416074920837630149466103353458690383074910734712077742360968110788942086970722021848061497578219586499845215393292074117972498406928888860582094860948438994526912569105558562904920720334926150409134513649171533906591794559878716580359026117899727285818041668101558516625069723964577581472618507181626192828883144507427484047315907563931911311658696878075950305667481049748116794582491528718668211975631122787195209172192044123713914203967139333416379560844053549826937871930955153296678905764321168247543757363057571553073766588235689543322739481140070460602312721476682927106656304356990785030283308205204163865484657590728906810319400617526041199642533095700767776036768906736486478505881958523827221669360791660612244125623319834155003912831043043899136464694598334219665081724250693716565818929618653231111835069447406060089718233929681520306610369672312532471686150570685853170159499906425041182165726989441482282508840581500798717368149284901893995039042800777042297235005969513478038617796867015168693735156186914570037280885525417982332953221262762996399949845691558439998627206827989053985844507677835621076346066310381241668505004664056477806168857367747603310413616591357986819801768280258505896242681355721485333268415923364562566056359329667844011200534052330045002533608220345654120166805650730768398164919023687278359066523299974246595634952685825910025756363651149424420979059855364916940229626602061768584853997617890798972118758280888276292966328191000030262574811476844317698014008119224897261141204015558402236391809452544855044706752212901908660498327364074955417828375921924310663303364844803253829311637962570753596811672330591235101065359739267563453096452274690713988478263578578627623647030251946178709259725377235861703847444859178981227983958929089422501529069364721091622050304387485183952405404415012613359885627416266650580351114757849661427662683717772892110433446879429575485397734414016508926035960350989886692405237190033015003653859167886182576626498641533464809176521808315435711875278703821813679870280000943604022606224267723863303074763643840334949471845867892965516605746549992894063405735069929229180129447381361483054907231884515734075647081021716379728797983289559187183397182045457199732658640829282523518528251065726304335264320757394398769778831323868229761099480959904407552029436570909919245266038229915544220567829935957663502952345302983816209970576617532822675936971682404681683188225093663010869541055849778479815249796421580728414559736156924562985236515891869589194118306807085638092198309690498582668567936670835658452236902239760811979021088030051428985342832058795780523117218405359125940065197565815103863716944596541307146629105251047562676744206504127453075656844238062220664202469090839392340419084004152539363700669126429580690431708062739197989765354616331053550575893821955200865195145500118811736721007207417050446524920666431806343778423940530857640665082564917358962352519635332427835208191384532927217604882988789736388994375015985832051034769925029922942200681625160078914745147035248133971828604424563475892686830646773151675666363597043661989060816265567199654305581175417513824821998050173554293362041753005781565750811786797872819777845443472530983129548124013713729778403543986400278206833789741129121108454866782675549840984252113172759298504729909879678528396210005230953699612613069708303413027476321288806409880067580225392878752193570401532134105599753284313754870780054165967295122384552554338267777664562270265697889008609295876097382715057445474744254508074302472825063977204655329305220299058811108583553765945974665605490462999575811634500048753345622607827810811531416766002528060339059291659002468397826964545427165459493024093142365802501816976582818450752334996837671551145004485540380690928991024745008230121404276239512467360874555669753110310724258973939907604174560064298352914215694493538683723365265736118773358348350548980893240575692798824305815108878748997149543299095683684865845203292934188905970100470768749532532100555235989366297906475239422339045826869314600953331322222694591901643655495940606083793902582952438772125908230766220240069032163514000652611996228541819528381680854366901587060330810244870013543838339784563735204053360191108074782569497204635046607295862940963398445830712437063168358136489557391860504540525779875359674167702325682602457524782710434836903577492423928915127730281072466824487219033170760150708976222483655926777669800466806055721973958868868274392375602940000007478763157926552053514626800475762552713722026627508359737632510171854334764304041538155880610013288614412295371499241626151968509293040933168904733230309623407623009764846394523801610023432854174497867429030789444421159314346269394155161636514604641541845316255537339613854637604340574819763998569458091497467819094606710782528177946396766556104432280379783920732784035876730459792172081093361826781154590451705105476951775261015336572432787567620352409390321367711919129738082274186637984015143642225313253913162834207812975557938300478656898189534051355500183295011636998322820605582161645381051978466430280034699087728264141931495060753031953127008252258426651794792137553129877642865449371698298098330325498642035352829529741424593614918303363267747472134709637178401523239728895527664386967877487156230676899146028285941950210807144809191476929431033131814779052724774126346959015917882086661446089800360151393969949282519869485538143007129499098507416502253355791699870605019153133782504050102102822631150993593473228877114365572828230106263464204966458321501994426603580868583380368807954614125969566302473837862883280553151727073569506412694135152934763659354375100010963809934524262920156427546970866580250885152202054412753509634968732172225151805918190524700186014736111386074338288450363407614686377674450828231189390554836658638875925273711516985670368312191044458241731240791377523094762366230021622374814938040101047835516992289574912142352064539044923376161313399750558233177211266362901995417284665850749030442503957887421428712171627508921554290242231540655239660115011490370322906362548827166681492917922062973254341859803429804885047037787464237373522979238244859481414155197230933896528165397186149501834096337723899638107600164115851140427485472082234854649809559600700951816337774936762580311946270050752670905613349491412580392677836354289847450649345899095392340235792437588333223029570451715479776464041228621342280182049647790278682931094512046083768004937232477410681614857691103553488463605912791551732533010503400662977239044730254604533681136584388422640320448164874732957660930584878272270756917256708268232928603759015215552310673746094645662091450689621405292378491118552062597744164531827491696622259777659105643079123919234476617010541709178979064750921795297925923902595446984644882885500435743814766313887812545309131273757484981480940563853567282280370887415939466253758666567824820425861955708320949477991944050104188792277602867529993777936574680486293653965951168360586494763256630296420832275718648122056133428130397795488715898129864579667958423989698639612403136816291631866950013926900712114942639041209428420715430109371015974834330180570013300951308159074072709361768338701931666871811590594312208746261429696058059475812393994091875799359393872222737658392255174233340043820039682942421421730010370441645415239255875564928034252458308871873155354215663887110532138893807951490432596088635725421453567981421269090164882251343426573447349685293976982562707224646737674839221420114960032756197130225878321777065137995361649205172226360184374802880041945172419945440902448631791253996812548555835315422781991812086886652858519831271499301636524705697664052639455662359982058229241533986456518274526997570822445100250787403173397432754343538539762796969941698741312627027639378229025976705802248273819185095658203103593320194920091806202860004671296042461909417522382950483768477194792751488672988482307590944708908465151920839970346884157908859987921744982095509297736513480071590628874886536736211977563858263782560660521786858420165533033756580707435774988141127096355110852610689228663320699125407968797451856379540371506742184334645772092074647368942278536815301903735024155841955190902316859387874147231018992925897581010736120378870268280087569816440907937181308526435697485859108007071459167390427613623002285773422854859248584500978358906622977814107116878741020334918059688747902920169074863208731746089401551866092668620786304888891835002179018711747654743845163510255998875811650059594024431090669486649994759887622998476819165934696549171309319397246781032289189571830764963476937103364943994790336187897785547572938122033908941037489060255874116762210980075906946522979464055984659810262608169356452310256653026580830997452472119075546777710850174287453734821236404711013215633894249680267400029661746853277087638304742163247291669786639282556201614569766826795587452390784710467326163776121982291531342140621836695488323110037882098252796146063145082730511227703120567344377497705430290392822263075873751284013270715242074384593425503930972563626997284578999248194563306833086219615342386253779742207949529111607878366807932364083239493488450071260907604601054875556537819707329367031939851716674311469303067268339928892654644180090286269066501486270086495646195482295258194526948441852240545517404579867263950103059916529902357549659105766074794010029598480293534745267256896795988265414985614872745813936031648098889144044344587985532153798373831544896048334502087317550644381421808596242537420996592823416396325939399615425830193198733850893806926970624974050436731917543559042419416680980972255719465965437826703207593343348841072777705317521895652998309152513313620445252559690192176434855600494451152039134363823792983294903759162264959546889701544796188381837924217173485429848173642971696156146140986848557145566025940828318991155202568170967777253866579497304211569865670466832525272049226601408185117754542128485028289364804686210820133631840015060851620630111024894609297142633188887874956847236121466257666202074775744301185130885590678212164904718334250522106578830768133400741009135539283522199163881393408382904737464343764330273630228652640615828279256347762949856511018246987014201644611339205724082950071138885634515913503649388120584362940924764655195408219394906924915041750147371735100663580634745614847656183498364989762043571317903286063936424412854589778164546864541697701329968580332580406730304188986533199427107022300057019516559369904218648319379616324895281946509855927085304521952387320645299450611556649044996079087383429187022102927923051311987845583285590930226283898482119143043562179638224783084327963899729063085325033318300050206861615850918059799768610808105055328999741068534450006683132254659410921655595827163198170570284591206879636327192720013868199639941785887594285081561854100741197295033161011379230415469259115471488865225231393767114734483519802231499777409739269370726899786741741045144942985177072852649457571638774572796273190429962049788046496981532154943638337016403252318331911571040550310369823701904020014807319793096073672723554452283492278505639085884478554226551601788420631472209474259859246688973037582967742929186565284846081568137108308051954481811857647061167530516193346212132046824529703617805560180750830002923045732339310334164639498832304657806181878834561076528630236988886106877595794003666186760655155067458230205579003733268170433285476506512570275022799812660064407728839870080527332215174581148597193533846765519668536801627417523508583603643618701172514530229737288217479348460143237780709062144136277724947371392942384821121140221003445927921049110856275533207236914987777203814871766901683996131215136882529893576689823794847298003712633340574334573230855658884677774564508728852672633676041202768220155310649395978290348375339703279550237531455232396571444867465170832303838484100110861668991268453329419717597089015357326662101277247173510615948596433673134576693149710553700340117112532230508777024036646743535417757803326587034260820592139014432299475987696985279605700063014610102142805366684558660518572841899312507248175023922049275741590034349352421107515371181374123787817755469764079953628952949775451845655016417850162093031259803125410977695319360890088282279187064262145834288294113933834151779540847690279770571855260884938656988750133708126698699687975309066229864561192044409073794921788326496169724253660802703895033044426615044707314061352459866027930415881794591460967862883851735198294934536541717880275990624966467691364911558650724525670711136620516263436412106717533052248872946534681267325305459010024881304964000328396461620917512041386642820162119409795956402766518208244938740554135049158957127321087662404516091093647240251553817366725130624568773948615810498302642681218864802719595045952275033587737217473747710776347800691268865014768906778994545631440260469308685580239793913831519313009078171423444524275633717471063192286431174334503750077576283767894980068363018175049261273346621964271203347666496315405120273278757631460167926472199229396078388197347960865507031196485388704930742215499896796133945626940852852671327878401779472727022002543694215598823174028094862684050698360933478037926863359296382431074433427147837479264881290278652661137109640110902806031533610466949346729509206357432930203620236541197941425172555583270931720962326652293043326959215163354004323328783261158372070335872623841177888001271422399213074233072818895656445135770246778041715424137358026565065881405022573185317891882064131023425410179324128861082805345675005093727468851293025285209058279461151392401931673324352137906708662405362541801315776294901106851199705724282622667622612964408664193155668881317464649988892780770854421727458135653025599978029482717327777896058833459009342582739294627630453513176054011214556221362846349527809119428525334898761204464387141534228260911829162784987805209640272619518629818409848547304042077744829564033570925546368477650580940072713211591135967761576475095237315730911689056331239504449315453065622250198996656883089971327900171849437571791409450844436752395665066639254942482214456442758315935971325277962556855400838363592746424320034864600854076959851705945902022376726199894675067054173803464894947955648647625189290309197996262774938642764063785685416653738650614320100230757511506372339106551007627161204373871237558409997147692049774905479017989480351629871356680729011528977746609417830528353573778530386610845126426907641804393874394428902931082862161941494937788327482417309527124253548869989973586833256804091175955184500999306159764716642080288393643380229372554153343867625034427819290228310418289344145923435760337175029739116486490244266801426883397175299558257295489632208552699848200867637338107262131748320429832780972460777789632486683329722766825768975844936769208083389960643192888625898577790222609799253408372261975863662114268103234285344085854796340835783904718403275696253261690474642402206795822016410224296563269834583037707134358711937501465382716982655390229717473607798293308175563169911125869540331451783392981014886893758927066287011559075357432769720502361528176063122271814132291321300596089680201392318437376391240247774998773982619848915186137996366143118504892108871947262646655209196111360546746770281168059457453489886397222202319779228895388921616234851795722778316741916552038808786682497669756427693440274019490353961494293009397160815132062359953964915122607596670206785133947425606244042021849347902728987319826005319626894573792486217748423957582814899099298591387878446940608454322790631930757157946935638138773925483392223305272391845102119915323440541642519175096217608531084114815206746097153959995845864125924281360848268469916518090819704018122787185728056815187727429508360527800464121075317466969340035780613239202999033866369653836151441407573374694417651467362242253086813909197259206487801226619930608696322056546428154249722196322608707158872417875648232670832837358614454624995273456057795885636437917499100796596184002241353249928654984300321869134312757696688801770021966949644619679655116997886358223480285290059075785470140121014204426482994511401134571536873742099677233367358269286042132621203122355967024493479214956817835091940563427519917708789387092547150187757212409741430145838575053865181506598214557518073978106415819251702318368363278570897145905266819434298094094909576895307490062146672140574150372904144423750943897740455964770333145029568877485921333635914684824299310123926669994443530354263058318031357111064397488699202256364925518023068017339677848930248820538864503231662471375613450627828926509078661750210097875438417108249677163167360752701078034662582128515083348322167903857501113813943745321977832674777119854679657447594685552455847833826339279481142468895154381320535548961771123491003631061804186193898332543982537383732926957722856416818529072058690569508429369764409003345954311077893128622258937646085693712528369515007756779357509965189565154788558363804170866784701218776684375170225681270343963709193533541732543490472380216744609004070763758242081560365214139479173331508680859920262122062786906296179863331234979770877736144081956525548202189641036416005062674948830302709115052096915210528667687466213213543993121098456302604448534947756534333707865489674978024302758634374594618558924127956979296781895446856550648137785855224097474350679224029243498562039929267161934699309288650861782679045186596942907802911209277419056837938148714258783393476854278372198184708332660757796994749324172113961277313718369681600108881140161429262718325240445629520596440327178972954498434935736455725153390753661843603804759258825004838020629092589852653951206953659881736993362130629993662524273574502224490919523434732115827995135026060209832189889377125706973026112371484257752132642488801571650162831705261410234873570413561245211521095754782548058005695550316991574087338053290469051338166611293725444988731040593228996617027470943373245966213111685902707861356537945582887290738646096684381536405310806400082720088428328506907889362210498981273673981562748274922335658393969169626283468470207577630677900378778902180380728024584182304125230974892713492553473856646072209006514980342128182924243347512851591193674342598313598856991140932748412861308039438604671842782199890296114180359483834737453256147300917171321436289234806916755168683382162145483168555530815540748039608596100498162383906185340091954863662105887850986699471900913522180282928845950194382794523025776257832738455160824004127809462805943564227003890044069818907888885874014488074474574756602298070098100570013975687717186625833030695502009615086556999928324549635460387403295378725135349128580532900603130705068180989593493821020485055803502711240274828822232622533940622875354081597328426627684774595345809043449812975585851809593173949162797056681647250155448841972484069462339980520161006308950962656359942702412190763895661232471450351663557587046475490758332592917320734892178043305826929883882058589657306014100412850080162546404777933445884850589737719429398114166336349859643215992409616210228777417251628017070396219487691873734621327533779970595558998097421379059008307888911315547656345800226843611772133727234037831713418426970715822007603477543327204731621198690261801233840211470832746531399009395497203239845277522887778826667944564700413826175798185059728910204914899071095336912660169310928530870422067357040743828974176394230101038315516204373468774648913005511855192941847342022658988024084895053072111129195257195994699947248242337674267571981848706550312794863326420982261256056255721135143158553603176289164674006091430161464072155936173349137661599512248994981680535122178344095844633234082293770610800972241892386790986044305231676036127924066419126406437670709181846291049989740543954103569862973723803332547171152153979681283812370063487213916045063943405513671919616527522466760336711684876251792870986144343259746216617139278822140409116325766326069959074131273225763418064960837154077955675146108670504428869050186462054204331034845290649177248868293346517570725494932104584164057012658202536399625443803045984113932781592424053177418419558097884701720468304469034002172728251682390560351334788860160360190765245258311081303893585148542239301617724480385846946738412297226829867657124431109240095443725457078366288464760116646942651445561568749458320476626389545984095585341466997802782292025813667378456388957336538209874461838362910536570567051530275383554930808542777688169665570427639815113343287116944957912477860488557012186455008455497469610557256765651277404645965939562018609245099271292313417464463971101423569629262046778716164252594883928441108236488121816281284809876578914156303160284421226829236228889722418178887359464280054940399320637210500590589214864324986511784326282075296417549494250995477715996552127166871819991440258778317088300746676163693624485605726414893306727674830456143616967058560507318635409876528413591365654298388842575837988462265710201284404810137080586424209998599198785916337355012443310637164930209659562043184778214812168875221481450573362513111796321869602443487072483880184423757894910446870245450152828071808438500403175580764400174842446876505414911240777467008786073184298947620055046461850098534939445133660692951970648597179627703109560876215542171540964621442643925160566454495069707213909254191929941088013358625112804579530367155813197609101810429290193701994954056052972971975312763401762261647174709530343362672029125804914660981746523906675641924903115704200563659664149456807476136918620893029001453390307780706513625645096353641813018834534342885435599469964734855995058674374797425696835439496021466239353596633361853704808948276057271014197484078524223458191981052926825191974730634142453022636433588599725347466743385119987261127700036063761089043339686432219441058960124599218059388520965204151583455244573342929669183502464220974637390669314545368170528557249668543507965004799281539913528649656398081139229831456572134221330173840732954764107720170925375389639892826158596030798877776001802878241268850851770017332972737989759341679466021842982445729014733396572502076482581612901901355630305922029754089293946898922287115847724866557298544942378054834385651966297212674015806970605977770823739877462645769595488407927200862832353486445459948260773987698446871542921744318140426204498625591075103036185649560149347553233404468076474633424993936913900475100090101566708711332183578651362771340177385137836555246153540421234979201084381912629592779425321589226849880899219665590686270823370680590311760935338726293453890157244760146476649309180309239095069547915343587621960685751651436133149538522652928043322943748180958304117200509367843176182057660390507160262666960656313003213553067039196576233142624373390583717392067354003293260554752304402190665608568815551223597478508792520699835448174484564784456772471074048983242674356003549401505677565734288796497445244022971552345553589844042787267131177548579948051711794488199814020610277590494190423499039776085578555687822617508694726693797128059002325094018613605931064812522208805351282024116941495315692350839889724147216678989802198246581719218497504740790332079070697490749729740857428856846465480780171808448791047774668570680540008739229070791144891473506029740916857979966830819834153996683763501381506606484931881444265481565867460960387013587337718021388357359742744136770125078871065551108400953925597385633240044125505280318269160379300813599377627848085633684398979763569431167933264113343424077647521320534747610008959776014136121091702119504407554658317675371710853419564885961244572848488479241690571764246200663560895713100182173989850273418793777437745264559241279614176274279772701432302512975069800916449217283917870816219238891292670493496455152397590862739247711813769891039695002912215155515621202102297307953351097995622400076667896493865246312501466949183576611356001383406878061835800479841507661499693281891607165749896351025259940681496980137324610138257481192768499645429178558099104785331315750228291190956795893691517834807175675783739393076744039806150359754700008288461305565449400178895296416406774055794887447292123924807696333704252370279473012662848714190497010234993489720262834244749060519064240605413997646227014562957263481694099227911171139610548924624849649575843908908504097975597838056332149886806875714019965690614068893335228643316377427601763493226420961144830532491061961585528764721195035247052584660182937444653533314087849412496253025131043929322638727036128980278215262170125745461472439879809826673151714837874135755975835144058671345482365466149528501488383763059407265506904391840293864007779302215308016007989497591491826777833586858699006616306920360067293406273720476993063374279811386070772982484526839890537817305094011574655449935544000620053248845581311583623415049066704606153450488997998758769419317460642023967632379527457753403010639314813941202079350318446462431264792314372743479863954084126881816835335757476813019340566342782252650507859636398734014721460399647137002012939152490221679729215690709229481031651929295167778225058953113960141698069379652677093743596375873468518479514268922746317845933070797458565998287590427427494090774088811479843106561518445430548336596680319763696046098424618343323687549639810328600739095458113791656570049170740496166736953781613382768544963754903778623112815439881388301501395585888159037212262554964504237265456767686147060519936636699521648015035297614572622964826266529912664662020959841365031703542188225194154754803671040211133961853613841617602926485272291731437404458629737431791898967158351150563829478400206291403220277728040417936895768073625730845898231483583890948872815540433690789704970859179850262969884018148910013971808426635510445409810638190633449885507274742641449617864879916855645965802133994595154233117825788297870701713719686780074457620038141172018751764682701501026820153699912485366378057713680957945539928536146555302531542686335730457058401442577932142872024525863905509779810752124813957172046648711985080717798099278266347114799534270880497095934956724324363262073028975194129199393230180538905447337747032656409558569199408001756470285132973621061953145778823357837291197377844678598886621984048726899832444844648340740161281727996415275281958940971793272341587009503529681220819494159159102446505268276519319294537569642806382573286676191165440615678980820167456777411098038310513715824533744150531151945539577026074406263406156865853982622283463831058544455948606762608574125047526228430634081505074808160211664011935639870154651399240799444196536236367517655329189134621511231248902359207676481505169449927535687017780043448557267584554841544388198279117158054338285855839223930805882492235696825456951662174247433383428932763424771002199487490243902590270066572719488385578795936151027738925513776966844541293198097451610718909860079197260658171255544683300402623024703752083228762729086199269431197771348203059065908082009764861117133924042267203478885771328121692003549287042262372864520186705335580611450461853395780562027288566609065048790438733338376104111023420069603889017518382281563975381819381361726437934884654717867538772588411941829200291797432496104410640863639875832350559817754715853496247542337555956036561789053062414839839484049978113619485822817118040571982635433980060014296655480384402700383375483191315918030580240647567830035940483200621957383657184161962333444847706021102764533452858954402725626116399683846734224306661831506939814505450079728302760343218647122610220460691626247562630998493240454456635564820230409070930038558355957953740112450318526262087970738989950137011767553593756185391360204380507628696730762879765587183112008667918864326457197457166242010264602801748240109382436831071122017906498316365197971258423775469432759651852206823929793863387893368465715219125625797994997125859231451998984123889578151018920404583872354874186664972287180966783431255837087468001834626489141282535303539039858798586035160996547206058585060059696023136430646027711416368778107842298765120681446424876281726334596150264303392589782488033060119358208926824598292002076236342676711173769061691395062755080943881401944481090274389943942763347229046756989809236659138681864013619468342395006314812685174142291165272350859768029696369093854893034503810169443622509586502907641320886904305680944734464681132642519687243829706882368787859417662587423255029927214815920367010256606786903330470101673985010275049837495951588707553727939618410884990515989902712255024710031652929108564699552349075397895230571583367412231147263758687118681800232647625183874064369695748193511116961466713452322579096836052360094481651137075249909043281374914897227030897466390356725522482081222345092265681844553156578484075755037920039343260634503296309057028907571377941232440293170308909810684081189637127429092471325738743310894191086687872765520002598131440759039963411107443569232614553229370425913934594515050464101659378419479236535664415765079435660512740070703442635458232582416212813664754659414351845992917766137431751990919980180049965904001831019579306058390527459239890601422753123613092125341481199897360777504572262637061453791275294109629948034471700578310786244020009524299791343410582594094312417638589259742241545958992347474461459934272420191431199515869334496881815081208706105590077789947053309884871623318660461683938837463718846202522486893450801428709115075165248381150019844900220920366214630662409704624252766093908704732242135763163394414258181399948179126450823286440525490070997279672330668450417302604501709203402711984547083943632273496303904863272758564106202530614156686064164833147558569005154710291880816906807199737243503889148586772795764406050853477175177921972080768097244147559769968980153172859481682623472758479348716608079360429040486369353669169803930584017951057233770882311830307727428577262507081870180477435095455415399715819611579497736136110505933138294176815751655808191179664437400591599247191776136536761029279463935649558951887934057847458674126593084123440223183335513725421131323553738807330240480132650429797823489161476332323246681907647088213163692022770060832354605453680948782549630956826091682352561955712371267306999801753135719991391859933613684116796100875505230536818386592765901612494260938551732688131716327707997570380370081834280646186944588684447213105605429882041827165270115183255435622585856604772247620717170810858083699951148226264213008486338599196708236989531856282172640497418411729793974027263043532684887250370987723770390996699887197724162881166293532249330174863388600536338330694205665756403837159646785374093899197928780026595681064994342739801076391756564531342581215023313663334092279697240811719670015539667488019250398436227081064248583177159971563129055460972792508115537697062847439043369246431153436515021449264935182134704819096650492115048805129273463166044561009889583846486839662026370133279872061917970425899402026543500116094933017568122837019788751066862066063916765880131437024793004082921010485634346542567388303208740977164590254604222960038206546589008544001482575484285047212613695206282621741093221805278833221848610452190788378791358000263302061995334808754077571687730832133312418003334209984788762210971822630078758910877079859989247392049405891094313787066484091622784008382834820556795855380746824220044802201027611337761044191475164608800936293896571050512373688934885154515240105393082928011516319201738656629904797762861046654567024738408582599040869503323383910619501389490215157504301254981586437417602002877373610436828181703731280728417950995236672678129433146379611558826251104767275789158564243988536386682184822056043532053004122280966599980904400504810490370295823491365109705931539338506890668346244763379600055591836514182219207241296706564655013134506529825467477143664998943923928854294964656006840399706205451438731470947863531316400512631912137427488937672118270461289779244801560169942684396222396949994750293279136086410460729139394525976435346715087821732744714795414475036255152151849602522797013805570756651367535224585835361810736634740999516845725025289914421533374215295690944067997517540820518041238616465603256674689276302019710682610216983472230303860495087379957349322838319410840523010820594695405692661901080685949703540391799074807701597051649317011475757594624001189707637005779959324765801922726975698973760583870415594970852648265875220179658419243744176759441619558721060295608642164818784117909228305662993550301607407434460508114078643613632426714568483804627265482816720972490821860208687747340246923248241644776665070081545119150329423001968123707485785848823682089744833146922458313418922306110477788614952018211814062168176213266418881677923959063887532183012360125072342170510359721553889574431146027936634819781868110700253646526780142413158901566282481693469646777998715863607538406781214123165446737435172633780967980945807287628909546170874803518720392153396298977171450744324416111805168796812480085519464527165578758870737760356585888018602935260778681144087022549699598842964315408796733003801658847973852460090093684098277369764134492734993060117235908988330815181946136633715995275034503650446435793806858573379133454952894859783397563749424589662755832039251314419131250386684489901409670674009675483330821695764809041849222817500764016641390742058533318329393818874295848205394992887167196074675208990524587173845080808704295731534840144578321748157890292709439472403873908246317606720362522807050413846243074668229793154061043047025998137057038037149563227327089910831920820714338506204005492849391377455518349928035049420224622107039760451195927309614317060463303947937390574037831680832332383776716550340089438611060785640033501798744265702556979709004501843832444097060917753662265988623749714709054786978717716006497385440782724496142129477253091509065707256160253431537378177478042663475646372441815498238739951667250096105172060542726498578600065597829645868142117224270822454195185001692538244017269746966059402166779895687928979707698243871018502917718894428059729994089742192948442871668147296573201710069812187387162609675824349803049020159769581006238586601655699112060763745407791925140449212369952112191129263128600300020712226677467746568351794108827894950620054453489164321979815229574585299740778799577580594485214385676664711710526424199455129721330714248391742440690872130917535710170867766572652708534469001978823163263393376884463505089009995014548968367587350854621635007442942140639480626664665546274848279889089495188037462083421284058994772849304633182146745535575879962122881587846017509239116569105351178939709286861735195061531188352727169594280356547815906284105243240556258692533739550434384581906740685353013665237329161161567873900723661609170369235059160349954955356572227722441502369505317168681389460233869903603398720144450160588198802573114684207593728221993762376571543469929502647232107104402454717207661488169993888954687453980267130399308677383647815816526831127828129622129434368864574072144244558615048597269190174595775564412691995892753693626976399963022284955528895405397779884491012107164568294003849860198375942151152793891788164117769411912938891524306268167873635441642424584361229767604821889337861176610429256321952879423759850047685005601396660715156128660719245031854418823876847370057155290036937001369063133387567291187273561857249301722492474752834201515500156137342407907520276408652494517897892750812121073704054468181382243337732833162171244819060568781301928654123813845226718509136719187534584968255190096907397020236845807963926379388907919590632792242472528591888543861884846694492050586940330740991869677341476080320022906780868406763022591655696746407241636663752355519188977000718590196357746437928469012667048738592315389435988450804197704375931153226024380637405368150764554045791998961407461815011051732312390882891087661935228316218047049334861625094907188780074207738950729143420861258552378834488547896633673144882636748454076718892000761106742885768369976750710094882921895972605846016924466146663466706007726340750487918923816447744212512923399664748951037619624009026985474581645948907699067826965138572195278529574639004370624309875563469344686398278334900733352442412905451107282829176608695820149072999069687745300435352919142877950564438717887510344616569703495839059788869027685922448780121606554770329563077738372053859779710620284001182263821504582889926867981797598411652231108143794806440786337361566046670558622405127807293263383868526689593910409081436955728487098602393910217898010320713215605371468822691852163004988821976126126605781269642815902851911476506067032002884141297491644233889780925317185057040927307941009957926196181037851968266855524406125961519621205784013635614832882252182814234959139562821648530536453002822402743799224311244462886319670405401088874761592094092970761517552851438991300563931547122818710263565122591549733996861826867818327579417008196667483171883166826719088838794400523711787402457576784702837267527612455964118431070810777502369351801070175239261597704084063776287595576066988245643463023702076730006210159626329938375858601601052603000379482770777159356255730986645717624039867656992262716866342567563235034415215226347036265288192684156938286865992098033674205891390276472951500308130271462657495797572585601718727762099345570729416327145020494110928106130766581558533993534882286510656352447317784809241748436262965559747707495493883760495132664485189556392439224875893886578457411729291633826725573410734959174561663536374709895955108770574549905223796594588313817230512476177286814307851175992444414579471726661648241681234125975152504843754697569089999832568520191110258844856311157434713430404795921573565444373248666348924506266794139525961357805787723411489360649519269037936371094109709932876262511785830338997410919851042109624462900853156667356828067556665411077875279994015405452655665770741810476275768806522425425415628484636549231354698392592799504103197766129492730842308015481683591577820288390833383814423218903636449561293965907657401536753896110074481189073295975153367856957415821930426907176394764046407534271046426926702079920124213730984423546504293998507201956843396712691591713452646965902838753615904548300655512392675029375691813701856882832672467052841372130452563424718738422785312521598374299851289715287471120032961144902626421477775516327243704600960264054297217011808561415229517944489301544778705871426381539615355562640622317920799470606581548975308077532783003325773461574962885923217831934913977071321275857304883279179619690156657984927372792576907158696821187681517011692236763455886153035513621627137994162318015342259758320780645268507541357133873267631968145756641259345755720260000423988859393369886283643668913316465315102798845609530408908879009304345385767863726475013677524256823731206526821855282445768131594963087553311448268002737140327969567253541133757630879430707189907799981842847030562442483368660600982706227404719691776476912170317498430998720078117353145645777811218375157265467197453033813923586342249905799371237375231709290725599401832824359959443687190756030929406395738781646852998797955902948902928390693078847653497038617785269393432272473171414845718195279528537636615425150088215327496346269687142047618888705475003754307829249523371154276125574288251722418999003603874524830412285395033815671980052516352152944694719750466706587812983027914314255817738032477378934918748452702468336244589539647090500120451144435341339871267331293435109049694168204957795285012019128959576018019333212575570648611929322976469813108571773519718193004912623578835975692371463838018054809713578558596071853779672351351476986144014228031150082625717811610728854516998378432448263127243505388412170575608950458415983077741573488861752199556469974568016258605913988841454755555355816543905919331730221780812459853261703919739377289222867376336286861026223571252951594710308349689670994182241376350444052897168310398374655671892248837496228711381417376462622656081842533413679951223816040716365704163261345969162906227925211518309944291438478660193828465746996431607006650357401462623630347524170557463901396949613479996628322481810976416547157418995680695932713020180794849621251392390500282381421501143292934608551858004680246952967528233365894923320316527833442366446207036405359153181944995625595697557047990432204133225511461672812738728953678203812413306931235521844389529410845909459480050326600883183303959427319862441822844578150327311850677305049025102976229037827302227385912298698675333475506015680652676449850972270022124822182885871062916637175997336860421971853157322562228097019528681043841027424108311706362839218138196208727256416486452232326659804571538535273690827906976657388400540803424909090846366736705046800013377046736340121668071962498362390146940946752613959373941589088265005465855417959434903017967658063513968466224474177254475468619021616335440689876747415104409439838198303693957881068626643595762835044274696231025971823435596062747417128109251730035091510997546556301393116212690280990338140198542444128231937482341900557934373806535286479951739214915411229660855846974550023027100261429233501031422265157611933565294974367038697569097778504164891357721200036657786605975322909776483427158620933581590530284610939534085190507272064748127031633741965463478313314514549872832453437128907890742552525693507541569104510723995686868262037125982329044675420247361781044466979203557761178426875324172819874795225968429048826611460609545086038865451682067476323116000962150677397275684678933041139511025223379367236827715534121089962358187903668830452734813578824739076520208938437969751075063454181173841904284417211669725027575225870558353678961170480566871427266629780436730414890149350022262738127086575015957864553603522978765281026171153329660973137714621712538227964038934230690659020512506472204803357545189710360056278248928794483848899436142729142751005558554499128329317234900930237818224949553234045144457517961344538099613803610045379728472704381144872445887525538494983985719620248562876335194973589360269651161574498777203387840764621787574979566159046671293996217910552973008088535700036885271152391376965490640935400387979990992383637476723003066326639654717106746066406451778654028747782414682042545640204267385525248401227138526581614605257275884270530060605915485781530081533229990223213002994994345426621413849323374963710514868805505033773512559842129451713299589797941369166310581838218403554696580150197448720353487928211654095298017246696546483621058044938412281107186235250766343195243303963581695589412694071162226714155132628201632726733940230015824320835515740101976810694897405868988825570689623881187801796277415635723387046383159257856075250240529492875812626212928019142806087812940133955582718605484983375868763689790097217692536772847432775814073858521165449462355828456409409485143251891037827003801999262759357442002609667193843073259497679635878593652139439322415820827687440374491298940625759060445308140892365745177221173288440627672736233125150056234568083943014384262890734041904957940194456150736951509867059296552710592664253465424296614652941998354838358281061784566159600810565029092572155933631577428853811953961731225457839636929916273252302299419642573510571167948631550705771989028434138837120835375943576140914029983788121614688605569396061644906831101928462603059300205629414611878622272440436527612813016966492760291376116503455786627643972273642739007570710879741824271471362938144069420116299697518181866192003837170477357860805370686578200381032179107822752474486665645604758509299058257404576785719102763671781149231472069386501976243643567174539352255615300884553489901266636664983762366616048691381955325899682530841951782539665326997906649009541241027730341032528688139856547694880598475926890883058035346396024904512647868382314979670912240142752938921863683262273628326915977031312251211334048121278536106065431142168493601797463717024363653442102997285770806081456325004544107960258497845884275991422857177439518326692391876624651861627647721235218745409819880834043341470170341706495856562536473828556171794399348515574439797760257990436323538633749992266856618759946969929913275823079392429870357149395011305282932436891745502323958249000989912624426298690321399650867753391830883803110179211933272797451392243876162407593067297350669753201781316822499706180281042150761276097153066875928181191083587386296461109070136099599083324194482253029431999599482827332500769863056724067206967595701637562639216630599268070311952086237219964061422498897929471408447533984729013035871467141800731947802565748320770280165739764707434490316767019989077713087231146992166644407722175703049817598119630301669086659362948453735238071595439195210184435007491486346147680915813634573758498511152161680149642733703439328347363672874026803634811490805615533645779705109675822742685937342072323214733668733197278042448998045351738066438430561670522956891665901301417481397156900838693385323882603426477531184300236636860496821131180416077069779956986149370088330408298364552783859334846396351560372208516467288569374730583457149275044006169083630004986259242505665298433593504168326137338771642147015642465381005395101768863616406398543870465891121229253870600737672883582906741374486531667027347583232982984366854333918021190871214950701891155895090054821042819114911763895557060812259795014733433659128797974505857054003052417430747058742902754764190860227191492146271929500218802697172759420111192916886159477384903030282712513960762561399704603670823533411795341505324918979934186591967271660901461877255687925717191501571654528245610717442302799218485279115172497450311231173509281452755659662992569703009897378260284595604162028523105882773246468953879336287684601983639430887448199935739612695196193029177882275218778500456530925161234231347308707518311468316576384872274529257051660306477920627423036647945287472579369928093766504028981349934560217293414615679102253475097477446857838732106871009496771535057319246903279552169487196101385099108480966133099984830941733077908923341732209380907488524672441053260699734692401534123176500997981839543369961374409694585589051996598792795197294475142672500629017650088913607017798170031622179870555224164294024046959855100478118901889756310949836890307975056894977344371630884528315647801910967853598494139666275774734878944455753539419214833543057920054750709302161389196130731015225686494904264071079401362956665531981826754643587067410421211696625083451809727478757029385061345491500936936119784911912187996938600340262074693292259618734235656756088020104914720150556205472057679761081549877303311346565439427512280817944529025279225648863514244965250203766018704285854002506049826522287466377692848391912072046965905292500972000491680679739520480873119202593959284656410820349905331741140205154139264422759678816210265820803586668150448643664915840981719817979706375158581674085861773238878981254874404809506000316218666369625277604783228094818727485581897547538903065559412178092461914807934455016027750670627409642201065143640235621487459957786646236996037619721358873786706569321866707624551778568937720760061081710737534431272752940924416841318542402469363177633437758331845760764954261807372630417852367821268896375794283747095653421476418786505483459337317247542268553137565408741891544246754107082310807387404356371313792881840627285803590293148302644161304934631248611134354357967579150669370467656884249915480556827497401782913035695974630854707971404117289262171171913876713313687809779877725701054433097176055979968772145798289669436845378654599814072697055579203868547075916292303640051137467071523258469971450934219995314444204998708122559001732617901947729542626710477306661097888273406964032189040877776867753609159509022041048402270960842784402016832000349899302914098085269144635342363632271879872874535781611669788004878076213611818484067555488611956839381440470664749498466421354297718810738921892696927660978243455015377359651097794552234650296349403748583472846426136684439437223672974328980398765729383243732761551025893545999248944458223783746360947055403698496251904801496639546775510396139329347444732192743034902574429624370984578726420413530899265615453139470025272922723511900628476526710876812301546262671703354246531894907751081691998182022763525848435062491219200844595711165915337731486111321557248968856278135665924679663432080394796209808695663529559671731293311202496676907467869979583016591026638290697579994393092383563362524676413474745771726173467176069415526516338293946330855074959902535519795417739409692841936444051860879567367798662109915394461431174080450627553491269280543356222870575900294143779863625699868885782750607360077528466852905073282913963806793676701711833535143276410532045832722372841317260119665991344324273528944501854587193142692890110699286022782276002192487801767601324081187156177360960171746978881769420625747681080734965107514560644107069309757507486502887939301845045670920069649372736173897077826754100810648069929313515170609298488297709865156736007959923185827268289911609305427849972902492685111716316341169072789705376655805580383758092881035711970230691937314837863469188091832512913349504382668722876596238583169327099998206944659522794598316015021870514044143354447651826193069902283515180395179586726079098047276281221357447583929296585800073722455741159569531924685317420745987758268103234053216248374224531653584812900763707642373660440071339627749122798733521398274165597288611599801120692865267154114499983707229254273805254187563386528778228896253732408828341565615156131204657012819000300427185430148314459027290530626809549049898891488881198240066788692473649520821895338954536146372701358656810153895437015727005040622168483283247163405886069927616148703208741154687012435095213341887384333914394946416810753795256266121016852463188526349940491277567095315053127852450869064555960992926478771361421477643200010616690355299870394142900797763999791854464617126252199377984979803261488459311858201345185429722787213135145764177473418064756120260039206885248376942280490413989493969651431982484925741987657766450593597137186701525359333131445023989396656546982992984948140168303989341448787361078988899167745739960788398032978444216366386513944395870429592337660864837144857970812071069372601227567270054678933282997215763319735699207185096006202547048031256122487699458091961125455713515263413159066128724840661369700782339752210074575041998411657235448847409612862042868111154458664448622495536133722657407219735937055696067037735868438286110791345450103399956920241141232856506910770115308573039441207547643124590820272837112223714095313969082915724881942205194303755871447288195518709021651646788263111328167582116722420783789494308644747044966947929321896932826156060141324950503628546760922432896763403544627948329202434608555307403353622946057135413216148368286054987971234999953528078301334534445328638120623939087069987975064835965051955877506242634228419639794977012832405370753983578391439167989326598666728455311086041946759913285744356249274678394564937983411339258684372750251652647984550426509710120797030096207347970972527711704046339615835939508966619107566221588251148496533929347762062989841480509601289658997264060481848251339858889677428800251141971501897879340485181042783685354622055756128653898715253961496678627500535836775857544665429219078231678083900370076758471290255565391221409877706741704639150070969000928644864909264012266218460807670498227884339613753680127782479580925562331372949518488894467722731286023348050253783913557268837534875959277055067685064550175194181789285641387785446515623450396256717996739021845167784341861516494055569235662804410159933876305371737519270018997243447727100697001272985434571966107840978052456556606073349133720961829720183770513626230714574500110782381842727022917438704402111016202398090059629319007173977333227574114977961209114910941587858929147448763570342147497243031200780724549724303783341524019557383934612180154105678786960535320043962605324282593937755206445179971922523747379311040751234887081046924388743912852385133230058456526672103404350376902674134819916736769971185580885467047558725661807602518189151693659917962579875580438810425572830829413915393191758468892814294543299017287614315662021239623243302402065757479144153501590111994686382284800489625396490117396976175217004173847912248188236126228366376703356698398842876752726567150365554692086475115426692194384319083441900464491194126644360065192267611030568788505707179224054853924334893940323103874461197188383030065427515140097474546484855538390476765974536238185500224869249973434946511573121896161023651319866068853754319165330263632915582614899186591871208087231854570707388292266255475442531101646331959843195432760710337755838446506777049831279710869552837018965416477426354570698088059645446466995976255819914999342919534818174806932727119001545770775299344819418309749102536944082017922030312416565544071390959376138221073459212587047930201950881037719955467225822857655368344706207735323093238335469128416727595764266352177184920858465839912534433914413836577108626069956379109159527141815937089620437068484231933088459470753929307270194954233231603018376662157423700778408480521859967412598162976346435202956243189993911855983152295298411746956129921875563822827154463716301939392635818397094312121624234890971540853615283869604175120315559631188933098794377146882155112145904410332885294000423371651317803604701809671857689890895025124041945020393646505687395312190360967609087950445335786491269426502754009367204586082904168992811368364293977949850814921540549588696632790169413929604071972220794030581901705619399510167759267081033152159018705973300444573978893078425075220541123772539985136275868479647605170655988777389620496010402204306397387488449587443191887846495124979528299380141659028539793160275785930450120650273501811943331843908843558872034375851515564140814247348072535689832268446142769520160253333326146973212496486471751847825891416392010669875355745916358644221814146732451469265015324321072040379811996616797326978210288575834754032382794167016549096710161507136784217519643916285767956044006085052302993351220044875756879136547532100581303184272486697259126229551504103397105651883782311872134975869037777543879888048314706466108015774674811718013728869164607711912196863121884638767989320617916835357745491374197908300126124919704917136520160866728811345901053523592035416775532585609614613622317744345497926999153915520476796329642653514496024869358546333959850047362333551793619677725903437596988416951301112724536484769307124122101251823854379928240524627550707909818730474630998619953836652242814812680161131635800481372102672973175210760193065262067199911051974828352296795319823370627313128924820522771330853469156647494574824688377357689075411028645571777201640404884413530630173418340590954393083917859203033847432057232251482537748313926957885671825225755211079068057366247176320979584456367922967752888292201181093897972901537561309728651296537637702951857818480395579049852430398215026584330907712666428546226829193177314052333661707558684639512938939935481208661032183688155001099272098388274302598105598729799526507689261396302195909588541411586436234780228355034979618083825842627851939474124120487255829560226002753906909804191356259610763031932038766237678401858338429620760219270331614124668081370913002910456946523379513356504184376617607653944432162477455445386033537436106746386173116761582394913727213593560071990089269703614472698954990033448590674265418613258094063422628382092420475009263260370560619528433543703311110110584124581583889099505283016807899635198863693217284793418993168457769814570105648510037508029368342797512299904052921025037698460522545307297127630837979639816846675620212668072866422163253580147919725882866774166797036948284230178173797227973703265598728243525732365405055731092841605871418784039640504830837132651195476744313695515439493311977245794831934633836631487990694719632102378519504130197340407181362763543777203795208213232906376090570307858758881127225687293098096098398107277876087504301192213729969429141349359453612201058707951730437851682643451081287530919486739891543312018220813279805285107636572635750689240595765672852809935642470112940431595098222473255161103344829938917179664741816304971722729093075189156487716287984099761333148359224855853151640003507326179477371770593868496230037848973255305048234177782799457618299556455509074399005596853358135575236713109084637500746361852793829173205996000425096331231199963006565163970278840452925832164842658464879045473123051422879697826708349422074778257691664109280636142990162767592300611985374575854630646828730091871115761978090132143049109820238620418706909444095434407883454314909986651147172850666175036558376865331935113196377899015494045779895304515834879908995771283858044931482579502861614670290758071029909907802404014413408603871899127599719542363813659597482618376741833184540412905545130122852928574742129040576606972286906261585490210688572499913322963592855053974619832655960639730835288445299385633310816756277345846256917106309902407859201000862523531093659172464998944159301235471353313800587912781550823399271612256431980331047162118726505691531258161235976037084189526428103292884494205762906440379887246499001019572015041897348254432555910068612251898751066135988197557928220044790448429695747773999119700356387644627050007627061972713239072603433904473945555107157703712458419934515162536317432378127121021108624525114101477510264596890962299311306814506540353583653772131643760470227804180300175265166072562102290061006583373075480446630597445091735313988434792495471751780822080139456078091690837720225943469251066988106234970242579678785780148110981122051418269288717113238435767476104258313687651420337882877209862822036953961287613388728878024370776789030616820722336442590489095048611481241823458166979476571543281450847704712540734925351102381529223432053475731644981331523349187695325205086029019285062124788461314865942704543913927482790467830942377850291647921937591423116578174471112626123458742374887191362717398044697535129135194738437468811476175402892004401077383383128036955843464424318848572816794713551244167944807037619944075204946681366370304546914560597320239419006499693557106091833337009399738979976059959499706709283321358848226276668840040046058637525489579270547592512123985965853135016546269608933699648241476915815235600799322348878147578188747819832121372893814057792571303866104737733081082617699521207739425432212957517587637552678797142597155965200826216402421527229525655710746876109716853723732413414142285699878147880904894110052984838054581465048621976319497346129120492679569474541872678174894690865183981149971478295645118663595868786765864247204592668181970327703733950702103030269067335325636348570809617421605437097654261569903921534281905851818192430669809863343477128391306035021132522149754928838255223588174379314562018821938046245645431447776807356052078767515924812450093353806393728364662078617810691690817454266309940935128165974975749968919718975221127215751429663403556336370880297631556860722987847042481043142516909970331138354339188718054878371790249488672840149109725261097576574732518949136944816906911701399274874889063143243409371490596526181537589938249350485322060750991756555951717007322719318309630158940272149817881575445022485441385042843515932324863575548055174568335219788466208243134709607514241843347872342795695651923378291557345736281001176306487742943944050623310123878720359615182704009124040073907169250191032659011074502537564041203070966079706574308006286309260764304623060123708401598211825913010125644742433447639990614157182702616212457817702092529506058816822520105365736113994300559178227516773820791242755056543938278970157601749232340025615335091721443817593881870016214032717185113354449307241844358055201639951327323300184395700229454619793169654817422275296371281421639369788450930258669120786966548384806009298521753119801995936958387759063850659654612718056086709284289056470222879969737458859207089426702506917962514704864676488776186957209331857601097810711578798530873697753493708583642854049396609918810878951498805350676014532900411905053359257274032040212058082399427952162882858041313658615193823923909431364719884975593769258156720138024339858272533571838116156728775615043990938907531850117246797098387613686129694244629938693369247250428605636804694531784438961012641779503398479534137435303904799722068455422084324259198709128232687549983966445460199069015565167877083729893927254323704065065798846036170475520102168052313496152559836734352334088634774459849197084458945905133379329873169749498181785289200824241909844334506610278835299088776273249061039605777378902152445828005642967404720803111969808457061857691994916984492576066783595561646444319883064079662140407318666876514635139890263174148049252843583389671284055394768779668610468156096239086890200829393266805682634643186592741441639625690513474530399890184742689993022640826848386718241730765978924525778965811353365513632926344943758120324489944370268453912344894764526935853632394928677039215906477805713428946776872960025322335435019104687740736838034860273659726283973914406016832310592081230665466440706879587775784739715882778850304463830855551116682135728199639674140157389005135262687214566414541670853695241582570784526743126393410539530669427159563443696205531879191557813549874900310341843369317739781042530771389517120102549094856102830506335814850872451244105404193895725842994094219218630983456036819661874798420858664686169047292895279105758412507337154119351995294537658602971545090656016042537314289578795870681535844506837943004071481129431192384291564271313675996206153090755111615597881665212050681774701896368499870646758194746986151942011240913434103215359533657010112594691092977875928595525500403793558995754643540820151831734387828654041609849298727031619297532467294262330633554388521494542536999098012980684482783398528962858415743415410241165827161914330583156871943814684859449002086655363404644774406968373705930894985490000324272400770123195527890950432259390555372877508678510564820930314684288877649772649894533776270297772305310114474586850571663318248333651452724563607375887702540925336602347846883692464104542603582570742181139529373062255588418485908455092216233884650359003657129907455730070683334624306624011136117987572904445761592854927148276808301591162875667923713436713129997445925204783368106783235205742597631731123140255040183509357028279489562189826687085294746528598163993747747222779084281905987016475699548646052124307599713839872662006858952316159119891249673268478707086258469167981754569787969659113884266973742892237742173854430530330910471342342219281158279630575565118194563199014964379717357913262506473125536350488592348025494431714790686474182708107889464757731024408889885134716756176724307819922184415941386074406320044153370834861530084514839899701433569449523791946012082239325903196098646343233823359776759960959801186890835065857968795568320159316091932048768197029316653753034801807695481644131470910121044682876880708001917312114603843139884021572911718268925815898669356447905165285125350421484107206828988829945875913096844678423462550385447332652376050107081425011101972896913296755961362066621815014075522284026222848521394115882429926998822345958028593970329200154776714069189689262296022311485250915599792393656925067123411459684478392222691572980938075144341052080178463399633662626538472434810152828974659195574339954151681002990459856663361222109443507876377706887856300678082682893280158517067160752463087667696688916583459609456740153500130380675575237435034618477095353496844648908608623367460196814014786161597067505423276326940148846866623870086485750088423229057106810370888307745961980991836755244526863118430653535076224900523586697452181120096089372848469910557153941604593185096571423815737268950597004802172537831856438797112140255746611127630940612791063681388320222849267257725294726915438894155121482387101725522296722791461601161835124064407469006168241758139203537211090392642923326309232488975300659717391950586647607541791154396090204730766869281856888933918867826556027341042438107583347480089154535915809838603797527144320666801997857147580841665930152192455948814311145195552588563252115167461341372694407612740641659724049170203882344182143888895075110505673062003851953836165263578192491305171727305777341188896013832733990688495758836123319245548775217381556989661527708061691443218629770514624167268166763687788658159687239293805535637857695303975643103436143205889975972936713857036631147996356596280125935932534808741741965165782588603692942007514967990014294232435047625768498598039810722915383805718941873927266707636646893292506839861960286610342949815848814616012818759629846141389535908575412039868402033752974680061495972530489961812247891023641637477950146519700105807765443281927518639313518090295767634943593213613502146203663855646347734724118080605567568877282728426472710491376111762254840103393081195714959371106264610089596830540787905587501417587605247456260378254130148342303606836904377352318272832827013677852547038106973764747732316188830323694432848525058516901890259995031267508436572192395875375465373619346381441010135817230747498412453125942613711602614558467614980014128806795361338352107827462008486937319546955406706302978051028093140158152159052117678628154221182113765103407704916704166058585751354489718709847285703468330444253248543336505644250497441923083440779191675575653319901584136298827002570929846317205045832056805264364537730861345654891329836905441622577797509148395541851178605222186251491081121351456056994063721839664465529766426204832810187571577643793413204696361526816021549440859968282771876728664353337266146250456941611506473841635939948897733705555548512252017256449412048902530174813561141734011348355486121026664949712899260405821165839151229965428934218842369787879267797857971039201576494809743203951813570458133462184747475449515806675044241088074841865730871851615958819632599034403246988270141516363233586769591151193809973753883466983785013504571055812756726426011863059840840939973600948466379178561277131162055124525529780637275662473265205038438222750478903426738889525304524564364466450190742045902493817405092344494850265132974482058034684559223909118705181558331065617649825281934862555537187302132515219681077786601669903849525454742901801596828312571445219910863355263886908039382228768167478112039475110413416566960868603310925572818292073606727649203667947815053669841942233189204954452226119078625447274918603077127448776009116485845927233089877901729313446003896542915771477278294046221411784678540898346934484071641725212555862298010193379001595967135985670442369414413760988395425543150690172671764461232800025339227361726659189660519500542709371530488387243133528640227390076403626756259094123608825141657925219358769918617066565007776663720321473902936522550964059478469513201952322914950568833196880876417625259603599254471456817968086141061467848126970958508454175576962829658425998674409658382583725824396422235216222601199885838073343986047258883602815575348743772661398071873903733125251152518212836816064246267413003120268074879312530975980052554399577433937965248415974180588618485057889434689845566713080559628047972814727625694067634674355517066448505727412546117547527279525024353515349541647201638632209899749380587978620694394161675299556672148434380755210259531963840662851067040080220656695508352758247952387700971619914763175326795332282940885884596055107223443784584495126430927882792084969334367323379290857103270445286976375548090179524100798360616395904957741051369782528574215095454987900068202470470595295943168625880342532812883014545858246240882549237993612207798992082909234523026471295166236101744984646750856853094545841997877136155985882946797418051729887368107505770524235362759965545952159497283236764580361781692540058659479316025966934511276471483698568136717939685162258537532343298176085202321992525284066153550455080574786537019336124297547941337553416551139178376222968947796137956513510027038034624396776502712661867980530794016214555536168220463106839771802249767052363551268693533979035444316171388655399431971969431510284440391022931009639710990783499883473830767275490255680961351783553002154903759455952316555036977015419170136459550075926529337499445393554193135494680617140209908802584133780090047927896324316905684709805771853943135101106017259692242717335744279494837608051074041561377241671242677680362945909268527354055472733959761617605831253719656071788328862215249066500355818536755119774005474400221502691287833759216519134899283131011036506078866185252843912120052075314318224784461894311707553890183619958369873172558856270592009583973362598854857120013695508492320024093708572034140289664671000603400059851047727243194513896519123382580096846797647992550495065991780087859264604837276936677157727862610255321423959779785490332389755353556259794534631413707838043110937805676473480353629930768459382748913505025507508302503719170749646379154604456236292045841081536491807069708962625920325319777989275972314153234890098224349836167001487540226702692147104136548223599833522475326450241960928730903237649160638692319055742346565306933436331785230494194198892847961472614524094939936863062774367132932254804831576194052519837078241133349669170825092968796066506317841001141894446508308302106662782584937799805173149474945115797267762542703707228807071289662495558682975285220722408295901947745787580495706207489706995073457699972901520614809121290471878599898870665678473925530304011888248898358433233351126429689346403441146038680107688567713987255327899924986693823087873195607147318277753684495803479097827830514094512262590731343330770263111463424851987856315951919792576063442228834599155225337016304040294376574864184159722000262305703150453344625527588138454954979722832635469569235647616542649076703594003323804363088305107563145947878624631180499032870777025199439142090106241536531020390915762931224696998527343796710406364974165259791464507727877867335358423198893939391641427472634997602197069010852895871539475411380282630842902208242169500211971020340644875349829392761908258782698436766729621989900827062459986745163360011838250512561749099774849598335156029112748648787065501434638140645026157989270965664536828442248554945438401799755459028257493601986583921729828672309549618058892319030796919911221545587207535757253112076970350698085476244214595034942009625067390544581087934422077792367231238954989548809068585299926379552948618678789203753803363668952475461985149325808749252681030968258718612631562004608143345228881436548116609950246495777291376772842732839109904565761188498182496170589708734282978738723620727019670895761772890591807047851791915513635881289939665128211693757600557123329440948788495120046192804665733772351767803102928156803844972611199908902809521463425471491120816125576968972884622366184554972601398174502444366801826285005435065069423244779343545707762685460786963240312926469107888094036266717320918053242925509264186746295844060640145236909817000563467278324519499724264345220969709185460213946243510179691568836720034924229053503921543020807455820515107393137491960225315608669886226734285911346262919924500534407962412755776064410416645059755608946982052498387449548696110703335962649008223853147980001525013286760578081358587729544679724564614624595029509544703313479612081594449328362674550365984858169623013180272673811207936311504063732796702154489757471498749596187181586782078930335267846139908442422054178575266551818733417635169922018144294570254379340408893921210093503407767205533544631237754692972876060202424318073111700610702544581949035346018503226239692487075057812228469919493129952938965642572674538712832133221859460771428918207082051938808193232470295742565139500769819508942989259997315379890246353539223878714771735000164201534061532768898306857707352332340439640738443125899240174610570005280361908679985860777762723340394569334725360272252034474128020934329982820649940962279285292821289023961866378735632255979029660848455006733467006004271841689138691625231567773146654436594943924018408444396220501312249327840553666476530878534396346622369661261728145688534119815423216777315958999830473296562181523800461049638241672850542022596122089045531569035447463316022886364333064727622707874098342034386052227433576310698585252068174523977006296874183701288155387085236022800822097916043381622396135767449207197285448368045404310936281660206449442775066574586764486250132115035972843123639285992848450650449866756436499149976952396346958948145987870954989046756843049100014902147477449680308695043197382757597122212972137027663942896446397491052520755472219036045112718303174045063340960872349087651307328175350877979437549628825204280291485800824079381494470855375698330022157889570251698368442224769456712805250015618400845439091632211135877492411557573005162221279921696548003638712772679611675353372564559871513856422452733931094217548661216223835645961968634005244413659672949823467346581026029580380572899264785047100505578203045069590945707778191331909189488276588114496097414039624120827969388766770977417366520471252387175725917855652184463414110614809768237002785791859056067474923861134992550144706600124424225036940733475892307373921362270760888724652481883420325773673058220195961234583957060910901305728530756798939850241228702646025405252811827484673122669616260843823833385930654900262224428036192175702677384487182742791504614639279336568220871426859260814624017832962189894891077050102131383166078905194514308043668948542608699031720874265477922616915051491328680541676506269656379554748505643948583328000670031483215409162057479879695015878006035459298601717267595762409661139793547022901708843281248498815424003337322275615308796279089314746316107785459448906079705076060293352671303819244316133552144581170773471290176784476520122647040890996321754558727487015594053794097944217324213440658272165429662461813582875123924050361039629379340443717281057521710555440663937969090744463862240753201031745784748063529440609914146108729848769400551433974101742488305718719073542429136467027831165489980456020424598237254505982028190062161192345557030767467879769561605773830274766927913575974662831807567566222740867279282077943082226718597002626628772055803377744101101690293121923764491925483142747472257261038636490898043933726052128902079080260164480411302763379923968216395816958655920767767211535945499331482092477875257136046962759625268303330306438357674156438128420412844216054178556810913862689904385357213468305982383766487354607113693385970124054196209523749753826400644744869511195426465477918668576162101709021610854515596766168668219695989041390599348180363244884593813725120077249265653043210696205626340935887427532231999697134428989070134365924880564066492922169348474964560165950192436792227940209184467782257952883009424766382470416337578142246297127488601698685461057441778310137102623406619762604731982362358334725736415836022344931184150410649564521036104572392130334254830511675736896848135537922729901396534919772586106912075599033319767450972423354762929732630864862676113665958232829062531375248065518153874430305025412141063124843740544830829229471215449278885377194035561780015565815313404869498108631097864389557963318023817332197002366284305787467640552032565733850336267944004574813623268542290752282183997303435797753784083955743930935551587018431832261730614836876024816106830988444635038819551892447805473998357430198133976366126639896473099831475282960144672335109913541813620907256259797498840047815495279521163321024756417675927609516489879358833973538032360912239512788042934134642140831645637554305157282994964571077149667738245292562918953769887334602294158551411459038963618446778073897886172140354849042816563145315286120991671334209100909986987575802318203200349677397198501072528100578734293183678335576543102455219357909881861887211131793901663619695856693098634630405518480532895501280266306477494454308908331974330651601361214961554315429724638212484949163539684971480606222089859089139007043981741451669677623731077299228511215561944264681729288280961934137286032330119070301922864408865037602673632562063286473113283247152509854492384701391714586506299133073160032070236577897546417164823551985739999645750933173518585973741272531798803575263844103130249604579589935271484973269156029157180421100747307432870951887668426905281661890452045736905973221844037006297795741466078956162260382912841661722946243655791686983807540126248090835015270569378178912007236329441466819397903557407474474015358692999192049109375105583202047373388501565378006013732437230414942539487696129724690001506687138912993173770472044005028565264993834266810504031593014387269721239617394370018465102312693725452806801005005831145828061169151826814370031068448046989492450676263064351206570455060057560787251000744230417189651157815119699323017754875265515577986329486862187983363986159840544901621750315111020994807574939837867933174243608576015123856872813626754613723287145462945851168949156501761825276887928090133120894523133187661624560336319278342011069485364735746179041974573321174855093216244908364861529305623226331097744489366111717908596094827982203262977100905258516948918880984306863210710587924947148418059270401779421221471916388698461411958116601811606397580841091244143373685460564351916619670930997835455903147255940880802671116602486200831944457131691210931137879939391108417538391370037478468339170098324379126032705050276794843893834790881507316203041883981127342707302369850211726706840367529280473197172669386232750278730009312187650198652902817166734774779263549555517305484538935331027720067951114496433835629021825241674126900004527347508281859021197030853728907602651123536046788293657964540180193313785469276244979826631750856525137556822227701809663454253124463580742855558764532482787635979516741017352674142246147902642828765327951629140682949016226291467041223887535578872703989707537592431457501813621341719298564837727078230007776832776771318113851861464339090515737136037140749022754646990911807812807633037053027554447208173326430355386842800383601658580419171977999005031104206007135955157697787074282190999354335773420925861259465449140877253955190166370588071149056498159332352842673627837247312968159164467288085310165989334748432480204121128023391234342086558588331139630018802724712436029254314063486425347895774523468554396600645195029852901592568034935435312265745049774391090257564489538362734258951412076162493984281242791233327523404379301225422509928738331659626041771558589592753401021372938408731318018822907696267211025347850591059210801644030271037183324915705058029423015827256223392886392525232475937192109592549908400892149832197907457453097049026069600217883192203189174635387855143791445588707530023434204625740945134792325748412134623212312224159165671501752179854800032665378717737280185655107621754241871427641772801603291759550950916386538289277306035982046270936983452295049663127863381412864240045671439891596234063300571500599543550006176209886906912648865326089300402219247616432255357394526525898005850222251357214576011665838503223623637532021648364630983242256896281325297840181358691933086581167965694829403526784423393499521683252900213782299557504918982827549752263161859398139776888041189493694720038824392354105040430863181029001376523515858872473218693058298296047484024312366671522000341522662063759906624538020817914034127791502600482940582299933216244282825472964655105618612062358272414329170984631182336413215544039490241207219912096209520607031616157805166605694339417264353353644019851625489228866125110043269000948655326501946879597652934327582145240114619158688398402064973277430862801048613071421014851662744900469943082993409150833569093002389090559478561402234449874687148179392844670219305452589429394164630705711634055125189568507156191371764019227814608670062726359015586004988048549286893313988534569584999252985657926089747849775680432146349777527976041688529488320391322457178768789661636368091080494824393737494544667762593310468556672065941918264406134687713949552336072613477096343804521262371641429123925520127442303214048171534863960195803199810053777110596547133572918555047052448153852411098037435628599564778142023673368122950540519588395481081302901825794642980804379549819007095368330621445065502940794501444715829834020155462718366488111051798323909948746149267631905618669840755828699025268002535834831552360244348081706262103247611484942970620183675777480681803343124335149773149446019772283105794034865378255032472061373133796147537984340602618202409256315328087539476967646918204597727744251928769580771266794533165825730661048608870084859257521819321616586292246629187984675288318742258797278062975797509850414295321224661046120586257223540577975580914636978907521835145299409404063424489824945242400486265800208623190358895856536802715598931520348308544340462857998299687147278746483279010011203942402248792593443103625206026247510317858561238993477171910295087899102594313557498688158625350325362235536318563955347896982284561740583867261237812514461893923489230576002650308152120714470344767231243658277189109691266301218049579320585757913737791355872137519041480288607825736641279282177133005019927020434011369676322350324345020209623045871527516777810124360954540802123438587151395394059484911473339908970676626090029852782072312656650996409955356135889236389274636779290577969043600924519515560616066124161505616704423319323299156177512149182329062617889246313671928297130256983259750035062828335507283937304644155886467460633240246251585575980453550976796952303954241369978453111792102165556358373685281315688127490803417676591168194206164010191844518823029094718044729782483846854785204280182442252280574310139500013909666148075552412650740612950107368032187988642061127837002538911822802133800384801755668171588787977640444126301918376924109530389105367739165672559623398195734859971290265371334898912065491636307631807758727855202098652708512477814781326273831888441631188109726420768207317950939586539312231811443515287606984190548831208720628912498158604353186290103948148395543588756285511023946148858563873715400233494472460242239179455498616120937397141342208568589625062358110403511606435953170969639066808993408433410790312746663441192665957102611571351786945705961050983730968772938136419844043459098239622808347794586731983350338662842230785697803654972148262454444981126361691941358962286239982386216808541337606584105950741533153620360310151645070630939501411621370722768593020185146135772693871483503398046128974168724750596666246041551214907287919702365643795448890303842060597880599596874685312312120437873361811405740756374563737024037293688553178920110416621528038479843156805048231681448761919367675840583127673621993699672931986947619599825587661671199737695199056693699594031588229574315629668007626246033047178566032247227848494837713030661422263732010513837398921624539369073683298022631233976995571014848572521480770700915800010252517798801251431472430679284740531846900212349177469643456631283374306268708399302032623276131629892902777031171421908890982608004461494218241157961787030831787328195776845361501436757544169104110010279355855686746614791497521216422250338409803924877491645182854283622461973929289412262815619160385300832887248319966722144672221012309608821374679155823202490849921844168157230122289396282859424913669476854876400583619296844810256824028126810463907903962191605420894539993676657088214957480457014917295650357113683988834728384919474369306621259199935477765632176595613134470746234651941801717979200075098169784324852448255875044822724156711146776649164069019308752416906849446343639009216516344377277851697209468902087904647427822661815779503725245847285740759185074000233422625227783782264977043083341950140434457868362139707367687935923617968599817864905196158634710766492113914480789725292672332392045604207839856675576893525077743959304179392328902075416938795587111217900125627142583956928692279878314106390797394572108460356344867890282674960868902365837936856120720192500047678300791954063460053173803974686265166344492288187183262979127083695871897082196059951422464374203088831154250218230756250744859369146278062929312321094726174545954212994016734101015431992737235333977405951188783127693415092552566351037538640891630751024586000272606220524743774197029887460979547831532457473012589783820760607178931578565725120411616690796865644564298032169690064552546245458987005673381386302853011541936095915502449553638377887260051525300426310621878025163161167394000257964836033239965813172102446139593727649239548393546200964490968437744416358098741102770226880402829386732200165037504693107715614918110077355603921218871064651254284490550263128569870483174642919787048056079285101096482877748253790914787225618665542722619107834658050335722782054672541270027525920881319052910877656008553943849320678945429529677112344050538402317832867269250048490077365739921525704435582046360605285545289353013575078771599175564176238769545556381972628846178667238286750878444384927702717664364873023442875039372022087732417358020169312740714190393005976013047379397524836741254645960025780632761956379979670410987967948982394256133381453044230753620283200705224259033835957118655093455625572153385700551799319823351719463126177530359057760005010611209445862010127525412534510098006003817092649916421133030132673191417208044936231986140046307610424826205155897768415833202678900239254923549871075249708889185839926003159829330129342397469694765310656189675913700713554042379836268093348311332888163139318713384632087294691020884449345412568181871928454314246520569071865787891193581583010065448048833158133476722554968582639383275931438844810530360041708235974437643327211406973403458078358358010605653755912519263554963322150967551367238059713416498936904939354352002710964411083266234208517585302859104577626372124973646664294624727732035097807443795668763087352031814163362493676901004770524070765556268160889858085946023557775443362642719332003912980286475904979473383784794741389324852804327049040092622050432398654623376141409236332277940215106755855585107249563120674493185521886028314113198388539099604824851352271806221806114259837489743330374593106881651952005677223028059978996744112775047732097359918948921880272729145101256348223374771961865512473273238282690572273298078806872726760212438161585839877645720580018320291354956576372934036184630726107290775471419644522836147689103095643489036685024714939059025389310121466501897975039377967262080791228537217101494098566061499092408151984523231403963954952672410875718169762026858311227281566331160431263145966345226437998431176894028124780521628869132531217115088793567821853941775614002439955781543137128375734976919025418606533580462425838746571490821884140225468795079085339458355475725097680441048508576731837436779779885460146555425566035889814013212722567795582633332363332336273328551329848820120244820526188449836690044176367865417032726075990522166046200017726985149687228966955744618169306823545816576598113875435634946647927064444068666311753909180416735596339183218991014586457344389696866900941203406380242695855151598208456542336661086436763668575817161352416014059206994297979566057869753826781141547467998750254067465515792647414975495957724281943878618781315583253428934193712363676498150106063231623999074621573496587690282297161694870256633474794641190274065509230811433114160656076345007237258411815912641231845601044593171565735372878672883319979502393784434922425401842755000652680729999160177535831142260317300092662419978529449579062975679430800124466629395923950007234895670269149905142301200482139039799602444861045837061932754755547373835179580521676609197640406523853265406992963498594719321407809110610939430407468103893119154405391299306073891523381532820784952215396839825686735993155123065274379156972923831996376292107808194778267702390577047455196095976802876888645199108219048854305008144941065318594627749256945945934083417673302771502711144720456975586266696751483943923906921000290679808566801163501415937423433946379801128877576890629169336915401610917998929124104965118133371906556764236042372531545016532903430868151070967316242473093349192619085951268508758278366121136992514928330123979503816269906463245992631401751720441291972583253537566038672994099547023796974643381263203438526036232022288458966015118775852513152080786060395860425430224738788419200902630960321016583967293313609613995081231420162845922461677077135029166962982688724071412610090115244893483535322407283629598261401162441756393455483412344080295061942984294230439993442696843734948705480582784250733708864740609580124576903259992329216381628275123014382637574505395538036623240458992018608508021914135780097249427479359138305950414911207977621751815644656711213404111446488492049763873120204340263231421582243951289739698748508314876113284052454932444185683822403625917302704056235711483616614631814441394591073282486343097839673805143731122729665237342970004391925750382250465944513767571832735016579417736749865309714818186680637409359163566558152553368566358916829060037534766944204559238600485296697246415237461382218132454549198117882628859663241525037931723635763896199356526263756532316936347286214097572439663645387962197785038093205516790811761077694266010922931677013532660725698274853796123192063923175601898614735717301664480196927241015084890153456489986922772730813594075587521122398468673137335735838481269783003809017051515210673169374424971206389194001598300745063844397618075106691095409450222348054855100969248008238928110445005278000087712480408872384414796130247845212224322157401238528083865530074440415271259810585853133857717691084656787518323171661531982481520029280490524172035872258394783292082698865555914558183956910071131848969493246766519831274433244125808884125882446441209165756396171468076448097411064906942204077909277967458452522539374993041484190001657518333604768531839411800863138434311551314506872331360286550085732394220049490786603064143790411650288841692527449067196116780762199695526058901161029019385482945174320246168608562897367726839853463570610620114832217424383948778857531088874835175467187256654921025843801071252987187457133492318196643801700288939115842773212706565685168931633243292956391955072193555504701088536298568600935760368505362077895200468005617112374311008160231579503162901829319429551907131570358631598344313158629991828820969940836872225227206146115803315615407880102865477406138409097521462667639314661344680406997818793574541514371967262681523674066063192994861855562259944805360524627171863201273263619120214911534833922131440846646291772734424888388756646923423834836875835030701161080686515647816606547142057123596011932155068424158331004875886022038505619641019451616384246759341591073043486656806273824443742614544000950711136961582749296171831054082401593647718748536803275433550485794289122819157318443203395193724308477289075833777480594622101235800283697861777971996776152575344267416534237907580348946705166339700872322981119477534706382087896241780640159685007889185114962243739892539119734443618046262245896628880169246816174770097474059966551302648512942694328725078760857349570663406325981147651739677875760853736697914290911438521545577251876265957784196688048630341877387820436421648871404985206092864126072195880336432931712287264601957595341072276018870985383517804421278739823845984550388335653895075572252186643293486070068769098986597735268378025114998825043602669499238248655317657323893734855015891985049632269624650128257437169827610954220816929005095363386327523449880961050571391480024184521131961510009583371652404392069712455589259379561786915492266770261340552664446643181461339660207871966159371728724176984048321588714468949313531391240028233151598937879165317815618207862624400803656315753647183772372338254146157445831437413847151288789465764144485856052151280489963689023268005425887244075749006489381386295479867482597454412614487468103879953419790350421778002001253665315659341061190334726899194053092705385785281793967179228160589968356158223383858358114129479800801565546203894387660922383055951413897124043191064387634921056660671491340735494458031916061506566562943313498424329706665164115248539209599382580623476914483867388232877936515628376260223661081125942420753883194940739576960903642196227552378099830692259013107628920589181554083902308547887005710108251693627410916374786292467277863501366734515897861816796312902372077483594556772960608280038655428367272979288453008409960293755088080425801946758370604055891595263748096834803455136088848075947199525048938958183002620397352757649651030332460265878229093722709305608147850498516830897188796173372633153152071618675669796359547300429519126380272359204967779001653164541938070172379808504674756211794057649932130790564268780318743173543650194451494670881926240374382409417004675034591204304099254177446737091755306227072658905938619554235538320073118855551909657140751616124128221282520539811461534519899410131774527522085136672386743212864271916794097026056950381297340109918180622661306401484642652047517974790054171675214577930864357873460991407298603759284524229397539274555408249676808640917558548703648411997123889942800874745473123288298382260803361621784845997116782436385511666829316262617725752440788418419440394745980348419443262926067243755461436656814036782114773140289843350297082355850060015245962520258535600521324769054410338200839352663474221402889950647079443546575977472571911313339620730314450776851513896399958895566897941161020511851343674116850381289209878572070109034004497331584547122706761471101133905287817591135426633096986331826255126126852723803075659740566272203484969302416472376407305556813236040580983038184740790576347026224453584365538264641344563325018601858644415889176672741373506393086650916767292151340717133378623495741383751951970397398657575729961468826550419803652439323531353929473489003135946060585432520369498644692378729144400428163535570494310242676570151382190873214807925205298009900657610246496509463478536534639908144898708496129848563706331566285587757073651068029713549482846181359572233360691008898694740496811494066158503331626388653260444742248196044129612299500113152927150669874848613852810814563928809911566142305976848736772942782237877242982083163342046010902520309564221486174864413371761104197104706335256306371369212771769671588898678491646554926361792515537343263894944529027430779199399040694258254152617807448394881057147972985406055143236808922302364530709402596825582363531091440001311143951803297880873654632582651748233151457117037732292282810355595948896837343739217444514994524116440114333644481246047980423765881366669862784205985504830585131396903673829657949649937084830448249369815923863653884715813747520775445504468028446951269062433565668728877401132469546297819407105618403127282347804106117052071043805462041818519694972433088117807711323493191396851644782181073001033708507242132013800276176232271507399622010844726516412418781675363799026048941105805029519813342792696663340350166545765764304057725300048200730888711214081716004247776377033728330994547138258087272606317687086247769084769953595331238196902267545414471543466032951179819552698329729558292752771464854956089204551560177446989732025368418240196051630881301732590396606039095183799440405970076847349864752667997155637850435743348243557221985943398833041847690066870081821373381851455517310216755784699278375668688673605786157077125938876459050438958825868844630917614994825892414348763501501526552016749322860924452976305997617246584177098418344086980060014511367726792177198527194231861849114536198726715702358429185750616747103327406143223567407728978124403965758551933142062718359024942087362533039301696325019639303673471064726052816954232848113453226138042855465566167768027993995384883887896696193913659967350313876869131402954487034683019296360349570020979942636430190452778164151841426550295836387091692647509626162013489421975409784179001654082095120785821474337250613678741204550569358032470170729272024552709613171711727099208870786260505777308165837390272492360862102534968282675513362921686751706356430636096062543047346058670054814766784040406623901335485321409894566566876716295069669329958432099391697265297300368412889529787077818120327670440391107498274590935327550742811482717285383257027456892598259140791229969406655227476317923254847241774018910795747600999571465527737885006065463131474735359297172759382116894897151488565822095889552655543233880602924110741895859435728633281803347788273485953784033716903775219189911663529749190243553651336392514388671548532487162598383405817320629942111322573233160435503847999983890119135282448727575942056793825106702973828055068218279353237403517124058532983120980621947150257232825239095080722327687301036259718011604452562958956771363464760947814377064331535600684641463144455659087293074612157481650072531990576663007638978132900219665679030778513182588386578213740642674697495518275714212013112630747814404960141432405493179140273550606995651566997315919479445746309098951335525607486385313666149222095699778161212129904286172356375963468679517080287495322810063650431648184933722372323408813535205170109508587459575515544449005198157641979246788860082255029007904111334052198634668110902812911347417446466705017725285767785601047290284957863741604708903840285800630184500914910363126236106872410143242927889888279205785361346194104337316946017496908928558084819806919812847879006950374088636028602623450333155580568645082738198314456606470216519607740939101415225803744835796778651434416035417400429083975644822136013120185846481000155530381598034317158461194738661741414491995958041284039922005070277041989220731498715341222553518316649054062111647471517805477802645673256125574525864339232225191559521931612501267447856802433963991399193461812827989884950293859919292202872742881228837151078767034653672549071487787637011555529202757028984467943966525832570744458618276744799772856428310171082954504277169555743800399832623203627354264794349665692252963237138415357924137799494785104533291225284624669278684938166657660885540681676478705876088898834111503066401985921745770075833392115687807571810986436288792517249619715369018827292725577173316677781758604717659066047550407115878283382685909415761756847573560269086238090069376751127156410193818816520584134163740388928652113459011669784698228763069866755064179935748155363223033889079237588613073401142108525934207758917056526333393041110819878726041312216165732703590466837885877075209451955000259327775382303434318564010327303674697818851343793490769180062168545068976881016613765584702253567918656553965712009515912759191607805165596576744681960498283279778523063274706658951974600910195809457769757164745659330665519527000115858878952494786008800642826627680633983643567052929548903535250768856999929717349287464926218711413629548643363201325633555729176211691572552524649132521995538521983677713766711034550954428928773397788962513566541249807383731205517659617172166145845616726988768188468686382982913996839656692362587746131173539695692099943035590299928999594354766731480566272064869982903838492747602098876099024203923951914047547911793546072854622543298493788013072328316339316497362769012444021948275290018703770863798864734339687227089916298065061544902476870900130390157311592204359906554124138315448519859141527571080688472493985664300387979545417789776230557622432673328035794663061771966978558462508856717849556406237641724647716489670294853354521212528045624707626909659947420616298153663434652057272423042537333177731517967688665097141042242682225168112403768768252252529709186202466486226751307816278709048248748941085183302069516168927893353650542757436626582308960066400528362003904521488667594892335562883791307586404304064064194721595754269792499400329756875840240062398757309008806682368938242733000823653252901117081915862000012234321572824848893814998558090673851237568661907711291804716977015764699278292426935962672978265533016337569165165317141405526398979853169957354789243226213811928526940315845809237273714531408972537389148597757837154493121304830945183954891942506370497546804458030541351053208506861095825352000040671448301819243019455011098597265340602642768266773061760834759614318720672470142289977282365666706540674122496261703585564055910930397923503962381203530883910465210487182028286507035346693565548762117429403276187156618881410824622961973788801598052808732582333548542953808445957380333672429695503836119098744268667529939988414113421393349697346057987044484793189692572019518569567500022619196043012420970666225349633680004725048375190427737147040253667592287983381242540920974623686515789308461425338857813598446144792868098060605035577411095502729033002930325364004277681991138373506371795811184436038645027459611352884054885432532851883151967461413073162844357093618626245642028091201854465016739216929427209227931900449992546412495279570545618368137060929701583061535417519325725915662574153618822413811306472383691220522150176691613211854841291212368390870998370946336871384324146332063520174455604502075619713684165126928367446836612327865538247110901824301295605515829266928947035947994328924945236270324236713807485858998055919693709905963704050414260853480542343136595798552851473188347342730128257847070267439029192616741637483809351611578798840362404701148314505234052342750177516216124613467401980038644607666385701828625215798955923106252264691307813531122866200904028193539752493932922435342275394657761863879127073782319015609149225867044065812386695764071531240324418893278906624150102667804973841966578770037971593661606725282137214839953255950139335875031825413529466563460146526273369099400985450317939059189941011482627850842282768449698327477292703201791389830644545438642817200903537977661243105021651201989508456737873959786247173036606106093699172819238545897475356575944647484929438223946439930532776494379154842844431231870996342227187531580905774092801703580308065879529434291711213651188897792611968254243462630885204962644383719396857051299055082562660003993820002462990300090691090106404529936544146245345141319776070807161821923541298050767099664208078559793171797388024844530272229921176909327131079453668821035083655502184104225244322895352602099633030292047975277628276053376915836880544052405368153523454824162998366478956038051414426743053079878624254800181486787257029043772035622897839103869077752361244619733993305328149725991876500118346511218145633252628189556347509056622235871471039124589644867119468986318605638601939473436006310657510510215579943499271686131265626560571968087139238231790692738633026182303751524191488287081051415043985349240667821018593907213390658378850904520110602518247147738056103054907491336816336470053830468347605557898470042660705962860423285419952506758387689181031079943006091655020308539108029866235447194369938223124561262667187023393673576402633172590550036190554237199941949010112683099708682297138728352879281770113451017909444203751482603172478247122521136228471127238751271458521290161748361111654459828066581696527622930520488174227781531162427566625392863550933205675262986568754986871041779769689631367259270924588117097846196073885314679467127940523326816566132784324007869894439595579452543466997230899099811286730942981454983208883386027818919580429175588603980851330699062579983371080142280465600561360961213342020201157462178149829842664416391261089198983743812360559102691531462943899503833884430709712488805570829599906993549066260686699688672717399284065094193373295694851431595296372067610924964079175686302622585073823054381852034544638798654602530610284210000511043827969918494015414386414085000289412857360682382111963565356851641658103015388422169282037675954281401043358616248667864476492600185442353944643040740438090427950829025876174098158715772229408637828643479665987700598351276105433956104373657092854082548890123542942602221223066542564512748349932212507333062881648950693056037451422994573554606569090545235263950314416758702015742255454672973652232817773315081962040952121731812440847104864549240577762793758855645183769593503961822162987385706846260946364871994525010638127767771674657232682846291432399759246949909576562728705014646055509124840646313718674962520456691896111650282329627192446024996994319878700548098177407049002193644718516884051930289320399249588441973132756562133819154599108024074092202623080411126778936522126367517663264357695797048116884231896498831580573030792671160680201423128537831738202459583689638906261330593180112944093636006963432546374909967217433018091599671166020878099952914730893514348595537844298245726623123287758907243134017950355824551232895831282020367520265547999995241738845179151802793904350056581761861873076921235967024993642952137461067185329021402711466383354850190805012110438478089643905110058915062278499310045351395480278378173604175669133748049151508416172709386615747113713209703423969114743116206971015278583577208463470630859834915857076316153553297974433968038711987069547940767760489066826637679346343516092660543610904244486461089413731533344625545799207354555174341593947121886043540832576436230597856487822056467561469378319596616600905038265403444745397106314399027571788430788555136728491231198074211400004532750961434523834753163204568840611842265346700580651957371540845639554383857547353137091145077900455191377294228356321366658491344053758683857496589074277797882429619618128802150313533519010275795570966188019745564099931594277860317300878235778520928922225855941909130120575586238337064100690174497701142946842844162058876641294473900943166352198924864548628870199139126349331495072310195071786591960399383325918761470956311891762275807190655400555432210888028173128200979014207645263066296598899420462098128401513337432679058266006001661945565783806855872307570249296664638644304474794324190229690950174374682759767742311449107674350435141992518721219752318216383397456123543258075530846079196266735968426779046161827705234929066464471081145878893622312463701987342381910331220876867247190229399930373927565439084746467531765933136773623186958513934324063107852986205372043540593013488765184412006110936040559404080072497225900634568823965576184625303830308840541101265761755774121520173105623156180515451859831946118108153507519091556676176661586945733213733302400631162181242893354890560946375268577737690157298176525873912934707849610231059708607568766433505398735770467407656721539490493146821702338631191474134349373060542928047415081670323001407534519439096955927973131189041144564412619722989979218576325157432057454806093897802730892508075878683454582112417440574464668375711425918209440753900362781989260470187010456472825151870260400930971830049072460220847672395520854269772177423020727905887821990831329823501568356548959133054190916304921389380830157423555801070957578283272465358562837309677467493420649086561768114838503822846950072762381682220865797535113830243899729827555816804366435209659872038889359855803201466170707179473650176631572699045902134348301907405806284999800950387604773627049141677721356337260846566174138244899219055678089229308389786552946858168664013254652521328002848683059303626391801243839112846927144305751652729074125129439923184049590371321849854247784394691910137486557056646704004844040839657051640481291968601815070660092313765532417550374577972955123839329253718948639788811611383816412656705045842611392554696727054498604808322373111535118344278629455484115298161238196598705564572236079276008601172299035144275896460885747181471555855827572407670879493800638223016119612257491947996739043867640676841763869051162546624001996585755026907528211091094711060606718679988344851438875719633952490889210306584364758718700361800287507619834576069081020808647349105295057194272203468088525637685592642869944593948747989112509575641297869192719824128179038019867362738438558850883430525202334650145647699692500886262460665166639245160306478497700313825053380170480630115951215949133330493131412940235404248397470929053179848074287049173040796595615909948958503184230348240727240117952644181237775093083433530666294915614228266853212839602868004093054228734576615149764764367734943213006345566111799745979237702790303632318165393943761773926741328802391059992120241969437951347359005758200810752741641018323321823038715156136249052839495907803895528164439521578129767192657801194742090259225355677246214327562863967113665459605424852789097403080599352036638732362071753571967645561919476306069461873561511729134918950879403176921550281423280502600271821629327221594703074605776478456004642345447139757978463997809221560637486075697309118591217732345053535692609258661380428599570719562348404971350629017564394542431477700004466597197908098567892445558163808543859148678810266124446677940610954785061774918316376164820857540795750934391728653666782310989757859428128087797903853279687314536788025381653215518812338165308186899997918921929726105268076726982985281456548495296309250785063210365529111841629705428761956166968137420832442302647193847628824169583237164542633595433454219958573868168628059430004084488837382206969379464616967615594492384074582300493087202866731047046553605157809061887897400868258383776278756961480101914605551667121167868825224783791574042815209326326275489474039797437667257153349686255335094271912722328120407688657212675425311915910433106908659057782117420375631778475622451362470018929198770947236560721324445001882661655470438435057944882143518420564819335230726355508591592653112669535483267239116884367950098812536915979540053810812517494733582398011147058429646987520440840170714936971847996913810765975416069501008580738883589204905670538976927836954939094712727946954941853513038824890527098103490989822797172461000584394360563862946023971695657430863487593171235179862521063726249484446464711744147093217795407435755080330515069063071998187987018149870551824561270172033382439513290116917377736341755383401482576747973345839795718761959636693746643232245775915457883342096343908889452077842637105194065401383920591826673448085337263082189917553176475404586572027367062625886811583969565616589513114155298150399034690824114473689538802750250265807192171028123933114722014039757366020270903616983025034819359575086480349332135075778842081556054935560836133331983254166433362445119707900501403704411439948610508620613835983399102664417857761774161537548462220457253681441981861734537809050722019306237277195595925895655009414060748947765208110176469250528290046986584567831262128732581872859925030878205720447877805477976173445497037663467731213108851523503122652256203269486283559065662750192252065800810789059328209877543487267883954973715163818342717346326512716755110059345100686950755496880923792829687295816279638036805933865695117284058240222811866889885819357721339201221392515325333856542036503321527932162057106912408151580597792216133528088635206065134112893829673855447301350061365668213166578761670218948841981865730866370688317603823831451353673989904399638562108053246905035568436144642313549196193479485357031199052387626750840357022381607590764602100504804989305792269194489352912601856535703243504454036831829305951405198695458929769511165352784499074764076888017473092747847055263887553166063231755004977576813556309845715212914207489044405315668727064015094765345896560565493524830080287850178838121572368793948490891430550476594166473021446564142496279049111279735516112261195705380073739010540963420037041184808546647676603371901394729965120476348642762466456177803020042962343895623330373132721031776036236037838016697138087298220232547710536924040919587623374065822099057635796560335704529102083047615898147887580136608232129389390837397214921627557793220115359310845672793268266041140756562382285592136739646925574077888239307336521872543839979276992766159347370191080758783212994203422627283602248350435551980840420534733247649632569025713060356259889237656351197908309317161215916838042268830123987708030529678793230656354797512109591507615821717915461488654621791396349195901425132957507434872445140298969429290617200606294217311718972031730558378153320679452581522125803311158984571641668425130411406260724022688616328138448158959359907253974246332058969422450034173720538571140314377788106851531051671769061619075015696202061842598572998825735642282140185706866133076172196521406279154149627657039048960506922124135043272834619217531644533968810085371375729669114070238075865200478879342055181639820056443353152784468736156364197779007235940440947602254663882413247729553419314794129978770122437948644901467271453293274175626307527975122154350913639866049773114496583966948453298785496202714813388722271641212152074697670878676432346341818675675017502031025997580926148400173295963890307775744950591752023443311743530737704328839853854748861814571974984687117829525779883406558789235228352880354649513104226298083955673036724302684757905208833229210265938740907160220583312624359875382657269865232592492047001354141741585229908818647921585579674537459850871827002036940900627111134034205795072386682989826425120416767602917206011649139707673652385784860556967372514600182303626122484231406385117659632814231315089697831630341002785263869616031602364375838107995517239454439393770456823117147978244391226580057455672254985321232994295531972745030029987927986242873615095372175859668038798715548495960087044543959047618617781236237291843367177900084650653922089099345557962391140720892651818924840356904573610431071182543629084989341461340656342817841498058333656664063579340714370009264558007901890040466631893711088330738283716515287561052720812747444244547272478877762876839396442396015579740227673683764579875653989616360135038286186637870627334513488256466006495988950805325533074812942576314078596664274495265497740450726794231289898449683459325604019917583133417251577979674861809567872284256998030670974871969456531585257665449366709303114700987181800328055603877998020518299270748700910496938362522799648744419752928716521022724027581437128156570676210307101977750317979722120459141652924961178007167161587798086203531650105335760422149432597970416210309490316526883018360267962486603877345044443878666809693432070817855176238441482411409710931390668513138048127457161976813020076579647927996438334326320457194986741977602485091216763310188586370719784306630931096844255793102159420598845167957987574192176922790650053259442819287136943274450544222661171178645680290237506361612609637478772350957868743710504678702279445559555070944984268782514331723689087412334514674100835983576840801670110216419885829696156507616414384557500377065104224357280438797897478572845007739005441242676564875469356584764901031694997670754113099135790600287516828948059182636210652990013265188280590868241081202416490361062344475357848910357722601516146482757955328480952240779273276685093638984087428240731691873890710354492822001673201703513028568068426732931420142165307344413822762004477788218180185060821734428213519931314949533915438145701179918930346646478563167132491366753309986558048569157026332809718998792628228945601382748290750703516701312417898541822687216961657652340961242535031588957104735009361497156926391522150020816794031280926627527414870613661774781513378046792426435115347264515102141670148634683046942729717028856109265036496492048718522283650965292752210675613061689885880792434739681975531164844399919543245310574773738640628160384317012770686673927633838084807713313843555079998068790678087995063231781138564874517670235482936422612905581871270385652441069570204812973806574377789163604503675882006562247312880020810194894057748951644783086863352990356016328585196780823295979510490429966217165302425847548036572780151853812150579825123566612949025815370972121966176316662173026923422465428898232320477449707919117705611666818827070761132066941881777716144930192855501720336375405383294471408593198999465973232486142556411332804878519959766240349201335242703188029924220463384408666184475109621461967853880633222239914772461491443391730181289933065574868253321144284116059217974877953415164659017685610832976261485131569421777343431806307512373716518004499711198629690851533893435436040801210164613281615013247424289826447490206699111133560377220242840468691211828505200755736068238240285022735097452556478438178475824716313115477623036567590034705828675699046396679861021069701899774980271385161332142352083762536943509026866719361382005165953375558891256669131151813150408873140740198636210155460094184335892872520660708029331201157153485568987088675797940616763985079908497914202569173359445080894014105986055962394282839404385842515568432263994388066287456788073462201615506721809230663971177507083518420649634681129632911822825376144001915054470530293639917913980238033947970414665998072433709121682163465257748982693339532704081281430866583472642635213209354378178207555304727953771521646160840451896303646192121200337205898959921960357015486783948063738347081974961551771622303485873633394669335066911925151517385284483515533107757230215191815852934719841022719909449924599521010572803121195770991503290094922593487507388620027938970871072920574377134055353647979955421457709088271873759626838510450352317637892917914899392984723506915970141393457752831918254166403759218615554537023321489601427075422180834115766802082089050794883228764575397229758455282715437735053978077733434965277769751425386344782282107357430328548230667972670943638876773037730539643018165171348283374452857521163615170679799000274237057084995280978601317572728372408113517236582258587523721179109024488641840200373883926876309776156581146725779982225629366013183685719385986377990325493380332523738458966945579926808317808176197905255734242691772200285365900792429541204118203787224865462755340953858372232827590398614533882028288407164038410466450697961168856329198925454548856106894950197616842098427162085557243311132967213777589062033960256113627149385765131134641793635349636463547078362012759698713266525252007062199256100111994642349315907891463584801649656606823100787197011250972016917005149263976031809150908092077468653118128507589001634880229156991638483679471210762833905327660201841893037204119074010868335166478258671827312687168459725457587990664363229562168967569651717376804043659245279597040510792272915346552330784753147404718314352453337453463125837621941613234523456857070616667431684333440548538176066683613052231751807277195153052085502873921881154803383962938330866781264521491119428192055046147375404509364019873959900070066650466251090899820806059044018999023656599610022239141775431887637792722345532025416643990281802126683365157280883467052508760523592117622955463465856105877765622875356093902462901582604166159147711454942251014411252941509424728486518261107008452296947428475150173543036044419728618087745631389604072880900989668249794022774723758737909172081646872139450664260556699856283560684252814381814183091109873696250539635338823785379184826103246711312129702265744672039584343037678088162459332135050575736094687440894244631958074600200018930315017392651826860103516746310999202724955968067485311384154044977549363134906509372993534548941659792047123837357775606812767240241150834852168113389056262471544704166600477375033487360903621061677978586037041404584203764555500109904733002314300479482152739974253507575306381171091165625157504247438991329212527980441925892231930193350292124975633582702925394903483237025845579042253747320100137327899114390868265202121313972583608095729513889394529713668498084601293454897578705339723368285952827140612557410981670602311298896388862984044573899623353322449637697214242069070156982996901481355902465541755285029220792792056452932438854616921744492457087599533883478423497301130525858526670650714421774092224188530623374922558186462632035356052425330650767364281243193187835857901577892820914905904516902905381024167207356806888023497792248441122053247350916939988382038230301166281619347909506628432351747206710235227816494605329318617249837342217534348786631077536135545652487141200983689455718185227577058839002055221931281070752831611049225537015074026641743716550169222780015776235569244607582664303740936054128812915438086053609247012482299323235782149823754437946878733364709140747275526647670376425540470424524934895537195925872346859932221293191942961231601890040804972220546750614601789559538388625692410013113869843325722989677885340762701141050032748188415280357045568094535143153116791433660608774954158342048080470888091522744113838141335484428268122434495558840366051136865860852609767382572478383322646068622660988261059346169427071624698567032431649884347619343363239532057369627573826488208896033004252208027584535880821779141141146751544733117512982319407983009301814636674066039154973552815943874601497306012455075523373615579713741590698045601112952865492357115879878041265625783829063538787051767955120103907888795989680290248194156610398956377783541487796263065064860298956577453805626667658759179421435704172441925263606742890501431850967941626857004433362177468285949288359844681400264842261021201298936613171081137467735440034826472761609716401018425912323052152733230327588449453949470333117132055166342838219082244881010824005141368232964110254728034771949192368654478118939405156947856283068934819205076118571219614341361477231846977014718974603325013725522907930588792877636962423354055902023478566276836207906351149048469298238607949872162598526994816167937895336587114878741061587667374125327283778106347173852909296881785922050358048785540764522222027609244104682615734987748969126341635726991064054106951510737265360457368952154886183615061603397847586326081886387383972790153305424242530868787012972747175546723711626542896996970818769800123509012505552121919717756538830426039764520121823542723219273322144628829442318323932134339897827955974515669799493296463616832940077301657651977307605825760645772598909033297016506411503660789512120748539254828461709469456187945838226993632037838448790032855994262539593399004253142669253598980095261092400213947803381728826261506667075267863779396381064033014358140122796116531765943935086136864911279819436225964704109139698011503519661708793420054637088110953492579706526515717405394421773144009027616961423737217667775331139701652235702876636753566039254730319501265411100664996770782158779665643077002669662488334066226256831141621809058645223408889103926698971943462513062820036970846904577580031863762303389167262451381498384541890041404474962582291113372598943284604657065541533925475525402434635065855640903105402416420317731939982390293970808490895135559383461990805696883922503061082309632414086258037213520573474819467328065553564741916444661806940103446069966924568512952923850907174924439625964071353724426514740136059497574974406869788461467033346882289640004250497434703743722592925651960982603166218602075913922013497328536367218805965911983465296943769222843834384199328043686615010938321978132993508944169046258149279987193048239582789655528235490073158098611892908516483418067598629037273787051838862563037813065175541894326054001448284413830612149892555722725869197544989032719965947261088365982685004986043606054711498994359461085628318496891822119812216374930683386752620237407545392292674485712945850720036566956520691150738274196850951643653405114637510115986023864521434146540509637383627104806121241139375133430368880139192925623268671733519931154722212930755152552489497501385192524783703480380596205644219060251143155742251926306362858764038493962222326419291500565101436262414129401430966240696453872745452531876867184634250733957610624853699892610075805593497015590181596167008430152784763476593296863520347431196124466246744505750613450152727064751437884526265029876964677176858869028728912740859514839065214704096409040371882456653703982181513502529465924259347203758396833401288498669783285334044300183457669842628305913389773791463321810946044244189265435069159811492740187393799468183803356876943729757616086639596959752519882276192407755322330337169167112538374122585916353992809504674456898409545616305477711644928827300204748953414275142046736057797277489833326446413225676402251309984172608657449592971163756431281153586599203290845223328708916249662939918528328900060602775643843833094556776774554828749284061072993479499819801165046657396801645110359955339993287998348333227923584346324410696040365869450898164181556585127594901200035063059703174617107466519933756710439521434120833784268794153216943738038704855554917897623537726813115848942539353431612004083143949671413758484402472160477640791531156811959945995935879724677823477058547923967558323707243814215133388217662878287092608175754384518802543734687977474304608311561970130695522739387384283279590428046010111372861958371114054719542547018679409919268368302121946206417941305041417776406740173287607280383408265760396898623577342137291726687743450593584905739799393902944487472536333831921670251379492753069710229849542386892829024106496082915333275422822305462758656167333783059252634591649199271708475946068321489208924007923524662772522504892237021357459509151898074502195939788421800659687581272057403591704527167749844279767366949149208237833518222136055980184184260243653926154572966239069068095275253306619948691575567227593853358308574104062884530496747229673197772025540839552031662205156383263319926882264655632462288002011267980174296216438244547065677098545086662457318423622177706373403494038585989614250825941146901257587087462744042761033723040168595907535294571925142774508566257241910943279274805293549219207735856230736320235723257027717138184523192213889034324468659694847279796956711801514440785243395856205416041869767873579852904956095746295205131908460523432775807375285647286053995096785454699442731669716799607959413818935802200405663913180006566993814443980294082622986570643890713939144170178982071671603571254641666495685916059961073114154915526752965859394388506003137865140658475745981099836635523742509412291621073745872889988919689932637342668789766109620560264099113307889799344217082972752808086756734485917655504891921601998412364714622503081537681780438446674809105757211420302082438529343290359205819823408168338180417097426401217372612049204017799715242989204470888773297361847647790805411026779131996833517920038234910855861557172574395081222970431144179212942306150132642731588650117734243969763527939082069516905911050594204391717448658695883595782413361615907073023192751324928843980078397413937749316607506206951385498007558714177693492169669942183938029733294460129817713513747085663710534895088994595818178457233542363201329367801307441663910423609207158238478483700349155604622166401951770749714165763631858475431599791354764746379719726831024632935463455810749237530069675882390941640641517880013963737316820696138450052028925411410660002213966771997775360762851057424052696349506907579160576764114567228196670465652747453133922803522585407478722454784877071625577871467235190730845389650874090210815252674762322153660476521847172454415626610445701443531971613164705564113443473202846940220615133921003750234206810823558450073830892808267811543194645975213231299993996797118081140790949650105108258521766360337927549225548326132375583597348418315653585424098476565857601702584708036338267692913046594437756766986814651111913893673495009252596578241462022872437630487933417551383780914499575154712841752496305698289464692981884853633778804916984124839835359311325039006408282158771867455286454602068510836678768767788685905890446088783699031587486381223459575842164433305268227748782196655846613221130638397604420722315180410197881412286485653032071711091833114727553046083289514794781634149664217008590105025863843336899017077317720258531044232067437346587574851873288117498935156322821435055399087676075325033940901725233553508408350149350152326483213222931677110155119005055460078268454424692937605700227252186063032564188629802040472284289900123576957430732324736005743689106550591807730193948086947462858050120914797496259302685740788323307773638438662586573908540729745495713934739623081004000771289824575500182002303342468217078313679949185747435317578388202205930175047218679409939458857522070330668852424826383385130576806851534766651091918949966615332388009717603653630352140966068053975050373173941524169940968692761935703870526090258715320626505844409219654469769372693339988664028878140142433882664540733952430153543371304958475743555466556903998161829808026557185377321858411997201400316613416658708874750852510379854149381932771592243979955634455856297149698538741293860863968607334355750735496850520451745630839927946628718399815526779020808422787080523176835401542181155283948260750178541913754090661827512185077436110046770954159879609738578034495624820461175278175197663806384871676086028729630542928790486984516237274700504906990868137803455898859472755322459992056186057029197975147742251298112692695374683215650264580619279997725904012000886826545923699716148646246369255987922998055283829169666474534081167651498191084169906241354019719839681198018698528322459942928433821870897995553417312974808389127152159510499919108996734175879720759223542296668569753424798789099746323741470365424702398950044277475119898193823873821009772003406109013081070297034407974358265490475718844549935337886347615830914980155053192657950240751482763499714123398401839195621135305855592202104925091301486186493857433683288021663222094632954304112698014809321720887063919282446439805000857212769428242273137562525339431066608253185454795524984823529981137768469673571381326595349775206451909503487485631892029351621006914749990691019850907773754960225254943556624507344475281974345395244265716439499667126226266986059332645506808016880819709860034778475424821648748115948666326417780037695525161726511009386245275700030740389603889311596465529891575393614975285036122485862845718663508596363489980469525687182398676320793270849982608771014946257364374623624530672542609172202957048263712245715218827305201334806221714701543669242439895595113494770246900131574057259803992428292715559424302996038374563598422585013168458466992778942019615459120081048635787725971360944128666750718006369151637500659800657605569928749604547723146806339185137195721773791670571358559419009411156437725461067986072797776815354098754913928644656866321571156128769995411258496875715792836210067404429332936302631604511318652388008912071635320251379530279792862252593664131886994959533352028651706427492601739053738080035675887329299678567790875881893268312016314297569315235082316173961058743726392232510353404479337462137351857078450310559085408519527422429267397490120391215025950108605881980463530761726552994580762291971921152901980233884259913291632453837830589406910224211112631512818734308197300584407828411616134832907550702795294160034203971021593148588263224380131202858538708066537866825943593136391483025635751410117379556317144997328408195849662222519152036167923196209642667618468488901536677604814892165830211499823135982200622764774931195405684829149712546320715864933617633729668818347023565826262000868290406323627801443767107862495960404986805134225364075772470895309567029377516022764083224301589130561462181980348866329307738542963812170927828613191706400554882654259201677424989839326860678525360715875186117620877847955197139394395163329027667754035579376259009964034496138286809895039978069678822110536196969042937580435218918259278141241207329990369680288482284570624062706819930223555155160603084460226222568604341124817093793800519493184811020027838707650825382600292623412102693631684109053637444109636579258943688389093038159929382675646957191344336853080696088558083707142705093817914013964997673873882183903477502811860896038478576587464614529385831949094317030432411399033269139383370857328781797094743256584529176390509449208455895336560675803921299047756938989850047871191149919078345993123813647573149319839833807923006625345358710042751689757296993617781589362388900238872555618082937295291398924838496499905999617204141172290955530549487478431876637418298144648644996473489224983819320862390005609853515397829944641630888066887914749153636360459394057546456577677168506876180844195591021836349416876629285468304615768813546754472241867928292513475162898035463001963606387333415234236041244757506109568625608123060340879201462633078916062384515456102471829172553293316721785520458909192620046983289617652634608037042560581826017408170878713871704710224217761586919735044023941701087375513838009020077911036337340591582773109723593603415109614236013018126517741048280008865377531376948497294970317104183074244521508449678165031848401182723606283901354785298241647425152576397748689069599875654930678247176694261294360446174550709292757417124067873043656398996367841845680226673362147193508773335942748514285918847533870084254057589454689322824951691843605132574266894800523095399738406891344101364669827519134473745778920558014352169398313152722553632514468613276221225570557053995602591137170254327478842749905971264109908657121655185119393142439316530704083388644337077688449949538488573872391825278275729069571038973974862037321267359222571938432098067265815651898573130938242021818988934816023199679873124965643178396448633719801148198826424161616532594043276263458738116272277248928856244178826837103903301163945241952890285953276096354865438137382836206485696298546754910144890204953280991430502778988377834585772113166792515850926740571525205346382286851503929721909241939703064065608066299580400076900535051122116928706331829355015595397861915660272015059979617756966555011286785140433372799323328624990528919387803108093908900125321935916477154373145003916418710451668225849071558957612020854019943050500047766154102167808795858557667057080599612085162401202135601652827810102694621514691947519008288834478955303028093894351155144023111050883022528851662898436595154691147609788935558603589804256694710400665310982063106415212138899577322682108612417855873834465689166803719963994353134727480037405733286841843659179100016501375343008758897213613937635447010310138842137832823544372159475780976197104922131485312518395661947170154325439520829581429857726714041088809414858255231452620090090506170369855718494571819070918421752212942000648047255432229795627008242825753713053293583737716896606210812510378406671549809442258713147082520099945565678350191357660275877194312891807925615044553623743657184727800849637285462875544100431502141373454417378298854105220128237340597140658339673727825941934502504928501444592277152281008428423110320574354904453639675341406088581769498500002619834058450516390977813362421727540485573693069778592961535030447151057101621417908057290042304302141903704075350773610392141839819138710372357081301059122922984298603032620043691793066941066865318411944918334788431085117452052793022019892835682426759224504631769494552893931693189056098249756099209510764455457266091052197436214022566607665230905879416319516361197028987104894449307013973180559807301226694281489068064108339070938785252573831286456727948874068942504630514743145708606955434480798011228009353580228301020959446966481342911936034493950933733912853974121946943473715036096632743336327488424850506598752885660888021589604369790107242624875712719303272874655388564378497983589935235387655326935778454798519271334540386478508498016078396840541492523402509304953540306382524844167019768763098352357707561387381205381269743726274605288240397223885752667658775669277725855284192725004258960960934114830051794251044420941304883196157237663597039698640876766690965666720426261190264305413005991520640200621074323790693162703697843706682868533647021648076568114970609991573080133131723757144127383145897098888021681074558758903009575988206196049395969264245571035224588807365962946194579130303104410244964163400606001519456422580380484962278387411957642972541212811665724298697260417867643564145552230665700893163707943718968673401952630517049475408937040700597713144014041974319588473379086723189075968531029130265327650338224911380820429105058722601148967897924949946505659838414804445794534394325800399294049363800109670960925622724522150156329563724914179246013812365984032239970414162187105414567014847556068073406896471951664932983965102188525989028383951726343340037742467765161518211549889846609406773257740070352935122821552605960393264734741430529226013002801220824049210370213887967535052873949865211676487736192203408570520419235169818413339908777007978694465299462328473200122126317051392207121084068977375769040885417985085461409127740639600905032935844315050659343701490490493067389049357291358309777265541427341293103553175515198034088524358562431285973180363287682330904544182072652697260992379611308549201367964514015617795585255454073396014824731251586409728582404344797408090636674140271015633425020062082817578807451451680080619347603602573502895650425491211219612308250030220222487253705048171141858610552777905276799713280128492075378591121744891344962008714366481154040221714738199645524701064828945078892588932212691558326262411955847746414803530468464090857857175398373257892997611764852573237836777386358894706902028091480001599570322996271941782228458341765451755315490992552230320544744807820951744526539667579070320690462793184165751474934182982898323711211984039280727364495366043246091263619658129601327491347347444979007889990548618912864850403602545532332739949988320028071487890088434276659300201134658427697996108355186272330700338995273108327083488547098699841389349728771476781953278865764241550849834819721366343502200570544510228886478080930972371100691539785847260442986292450859992605483326232851296367974761288032914958197273700660748450429067036291786352689768190590938694680721838384999675094589851690398124191577285582033365819190174668631398243442566899401841458628577050400962055707595096612675055844339283354634494611084775205655123905828114547328627891046994352382775179601964158421900130420334156520866662898595121624297472703350739343441721503853738292086267744426965409391379196415332821535835401336195857141683401795053688840052961949966999408419922107347855456043278425674186985037303777763371745900293163343177021297805713273633369954531373248171878937522189366347006458633295016276651759338891972673872743994318932710005112373458622397567650768035610802741552236185082612455423821524713890672472391166678213423070462648209309698122864633482417928078387100908952827621467517718070033226664178350784797264160170829761171254290972284017026779229431861668386587133055007565988443406672887304753697652832540338120050773745485456892232346236861092357448351241241446122226132423121084182727797689833959707090107204118341659550136568456300598648453935500235786751452330159493333506678505592659144647108307474511113851540515007961366353779343750340278614899964220891299890198804044938519997043519702747392635346383669841964009375558603144063736736472210047704898272340347211714333554765239808127432697809196208848297436557716346131240443409425041815205248209270999497220733162301799602878985928689196070054463923511597223901308000387648182737225063606017575342000419012293409219062413274328287286901906064877152807544854787040603241494857028620747808834602064248481942160817901569065796318579432231586791022518925753847875804017322479519661291486844106039282881135022967597118757465132292624108626636536744543651099845435658765193056220749459672335355637356952391894235817696919387111088856311459265196993593558369364894000448261847906729668931161515338013746001468648643832433045712292296297155322009594085815917318600787758140408748624619344351235222836340744881469837624387191174130286280111017091505794026745338585134266459870679445175076188993124885952104506646202642601519923282526284711081924136891930067127787478950581088621344616573162612936187205978685412962911148822720694003751089466389734008113583487035348867752530255861162172145713946029560095898319969880656653430310807315426699052368525263332833102870972031984435637532346671771749672655812350096198015233230829559502126146818180287215989758484864365191950397454677264807451923808548369850024955667259794674906916654839401701216944767906549651933862069192835798465133022334828494386260677498751763493672928612794287536028791488967604328480927433519662610209784716956350394797103378916931804182281044183130717632915920621089613699619620700896502046510434936286552774966736606338192347509546794008100094972429621001872578794111672447562286950095776415419913346138832531466880042012622469578919777666087466647973964739808205393795918084061491597434199838634201100622438874648601067771224675472205975722756399065337408703255160859162269593670073351351284687887368506820786806749074515271062540958069564940731562148290475497446732253899269920656664352004400804016657796998078524188506071377796750389565021302993096934803792279224556007428407180656531210201731587636448065253961205149037101497002363318172438930864666548615338163426241381809594110729267013947347014113432592056328413771351133158622839815811106869672610206495428070468383650396745424606251243257709311121198092377293166820761108100043165971318576932324602447112465845585673249679906023343877563223532586712604851521354073947672175478065574504411849169179487922137561804257329365137515984866887514147894065841954017876651624474965341157340289301012773341830286371433532444792685979298113082002090312226991886286329702240318401303849309965436141261744074074321576995475586924915438997106506282829357296700793725150656570267086273968900481041820097112412808644590653227433358298738758945675124107096471476111155887630352431955091709080006730333593160325988384218152846551323743959709910840146117321512801506907240359167881562816046204957861909873960716837219711072379355867866554679330029873548922241309766162675719206196907212825990688898690588307078859317210466076423164770723798117840810760404199437944448826732170529190605212016555263357385701898991554458606653360645505194869910823199300957161309266144779547950307730245509317993019281925156434133176555308760350884849647807150559202868798661379114082941535713285896512700526405462037562767447996818861284447724805182501872638024717124487951389962120470569884100560949357204122736616316201548109691013190112869383667858936267385096904523209720598936264637344108768820545138610401961127432640440002567897526210804027105212304415224706968237534248179798629971030770056002400731262826770496773582335909497277919727229881499330641894083007514056395429167464282450026696514461880952585766411085624516164145937372353145473657238481096959083362710480557506555375576281161737187374986165267044475726162581254956378466733717907679647278907452493902721763132648216519064632464956596211193473537726142650100632271058216373608662389197410705902921087196251584039399199900676226130176995429845304619566188604637052150074364967155365567114338281108056414626168929671540722764555972706162420821585740693549846979549646525374692091908534990798835193163661527047740675438462776452998773109982635020982733471427343341966944167310992796109517858384557502915344198519460560810509973952267291634727503024111950545279120152997456926408958107926062545781092734571918519513583292689835689164080476865017556010531837563776776552626607044090056453616400907850630816378365134939685142910759223084984995908369264338253932144865799637096690911801745901926110083135380752168209882932921848200513279369774911881831268088176780161539812269381863941972678346079105011148774522659111558665449522384001494219700024386908897802482546346911608177347710477442044189587474882698394449164467585751904189888421798401522712630408171782752949470184959263336511497567545559636621140344349736522164045338468940726440691915864390427319875057359889038791690599029959132441938123744056283296366084810145443864894523905403255660154381889717138739642254629087309460829488670028529074072569681949364529735846341700072155937514999124307656256765739443776310582369797273541291282009251454789684445398067395902154608654420204064549649229156029447278815802934069684989223366573125540908026867235744280157349456658164184209005829219652351535099246508782611239309495471504211021542789721955446769946589033263844169811968268902634722210015561282676958517551982094022161731644902382953628528314351251667943731413610874318776293440243651289428100852404406102556257782121508028199523803077256473959175279529169972427636446506723115009717207443969540857711632736398872096269248035632567436419012123232515862872934762773485378527717496527788461506025307302943761409379590848994578843893701502839557213626163672812149891256539770817117211658554029412593215900641602263582774828845531954122485698082729517603226560414967925316308230449519104270996418989643694795576230337488845386203684600428502619986260158781870595323410514984455643661028154203472040197563796156285499080295615034139913188343883322104930042459092104164187545718130286654318967078971431629238522806480388943605887512711773322187560133970513074853737315808781788800865891920833643088737544228513350712459646459847199376173605101457615271426926812565507558485720561221484900638890056659322995412544179986141569389024851978652264289943053032515216039956777486905416349808259760378390975094002637473156954705261658554414382908791822954938187409528207673030576907837856753139890786816413023986969608364564765854704288521110959692836142305989069034889652985323044274054592800576892588206369523679712507511569486430517302324869527871724290847832754133683321959419984172141654628375399218732508225240231481254200366674219985169819430212364157230666533204796909917754232947070866895695438992562011825142683473807141941645071148441679985355968523682959725445464280615265953691398564054130342219467224679349885410078173877412281884175708837657644940528095761057848284155259994030194824296184809373039236265370339104505241657815284277343741505023208908909382703763140110004979824156759413926531176884936527930040654481173309013185099108213847388816406516341802073851512574242361078299643508438680394320784864857573139090027204773404934654805929799440479166629165205374466521499801735162913785074340788167800376766143944392782074948927928029706702832058246209860444093651210190764310396657512479677133458609852220040721995223695963814980924366442420864794301412837105403493314498906095306015732480915797452917095000505513467020746338966297702072383323928924502605578091516906440222355114451832497850626633837741688771656853316631606514735677509745559406764417479549418605850409341520188241193713584528018180940066070947135814954621830025576315364426614918088917882429849320340181906435014879464083355797916234986704488976151732656687302952513954330051412971277751532682502033304039320179332829772396120383566572939381630588615453137927986260716565052049105968293071392854430969282741507592508411664919445900596530318794393963219594155140072074013326625755677710800188777998092817415892031177461572074786283357506630039772810206361157936289478699459797547763194954054361468545068350793056784175006784513069619139881104321206370959369685550328050319332543591480757315245739980605389092826738395330069552469175483226195103182099318915115939007111321488740141083183226421844765182229494301867473699260478814153370595759593724687238013450166217287582554743416447882748800112741893400748684285280441268450150746011994592777706335007675998993906110156954390648106283177371631040834063415766062522265452196160314162118562998663097543126444971790430217818408757823651081686492707533349724556567335310808689869611613676751191126915008578154037391052819785583000230259741512444986819983312408961920171334983053686035426037169116261741226952429864096432317433605924987223710412169073451156629170106837900897472216771334620163979746929115438695896716347502798809417002515024679824007912562830019738826618429454632583862916745324510071061204783455091480403638948611911201619758511297133336715401636493492975316596760232461701769046864246714483830845799068403647757127910280981649727674010250811934124305751172860768377400520407741093687082814853425929951568500790101029587287872338469982532008481723878090425917702432402599783475353295733334301455394048517176247525316696800144785050910560365007056028381320697816070779197307332727961288219923841695115285288510518635200714094890821341232220017555982828106585083631792470797921344478732345256612074563875850018107037836071102772457837145530172458873415386165243308266231242653613294899289586211378539605825763776178467079297442477830779114702598497863136215474148553661327957664003458446327764771683852360093461729893073469338116201729478225087350095913128431022370899665632935731159379954041121205942148084381063416557175501481099168411035485195025608411929602799461617883911294416493158791006909098968802674584414669013473822910427781499378060122762649509190786528040254180104814504415307900449091505322170010824013247377929609171953298784397472247892693961808502643185133015717529951827333271118384802969758403214838328586231029336563057275570551369584522172382060712659278575489529844676315810711185117423124957556845422322137046769366565870556512067798962325996552133407227272096340248068678390935772778405394729454624970324326129915363503523293339924201609288530857730001411061361477631692637612122216341138676654579575658168301611626397452381814323357808222478992872650806618170030495613047048376678869151550677002302805593192465538987207336380641171542987626204086260756390509245133892340325056490882999905198175302011991027094896428682554471758125821146198143567164012206843838598794599642667284591915885990228579489397752132071354889702148106357370691893900271233807870355926458860514043852305631250084090258662667281833002779257525985839633051466667219494439874639758149188877588900682722202997987762293029391673582440586471215927531318244780683345450151049116120925873840714959753831152813477027146563621169855068126879708965744426171693659508115978658150209985574517450553356322890453011542118256500202430424369942115017921730248400515804392120152430145208661185635995516045849515382710048227356958901012643712551699228771540095202778174433282020303183604974766920306197308474937690881940894156031985362761198369170446882488240759396495061473998470853976531367477426750884493723593219529821520234067786774053347944470518326174396871546348421954284388015493551402076332252087284492806106672956591747658776938176891043057735134746935547331869118191722496760415040647563061162686173997159590071075902807908701725815040829496262738172277967075167432876377640954324433861716764934399379560197184681022931536925494853442979844276140140362050090962324430164534483119421232935471954774550508904233890329739349152524594787470568402744202193323300354993047718191655493273328469625068793399374445091946120025797008947350027076347295258086420057926983247251276169178133977070301006466018735742363642584738340765262187181244977723888277239188574773336547424114895335968591502510549999986005058455405344985907328234014026509993445719885020459494911755207879940373651045065218383524382801807656119077567209341124705923521417848399774361488635700137123876669181876274667756317104937717398391391611209833717979461662695471823101703080826297501470502963817393600766362864098667141559691236929319247697393292290646447408528225450259421406608818316556749854777684488802340621063923847479837280173381039564004622650113846830346396324161659203736072872707166712087450077604098842359466806829130953347212571503658202862828175538239168582156132688738066837532879947355388207299248094480874673432104421064111328981710114610893260131129843977828335487037529354626611142397812288751558357342705612811514012851015093097340624487261684956887291343956209331132657383409545622663474252570940824545850133471342418638252541476954647995896648898499584138862504607253546982283975660601351928296554770774393269593236953926769066154510574347913718701025664948887984885424889510412024869548926358352510301888590879240264987870845957357018347663278447850322865266611562167417523795285054106004855524587269854734013200290334444968257982332929357521643164652861175471619777541851998943890013728096380664857371010986071994036996059321049082505096647828992230109462370663965096450403755690445781587847097419993006583622474594173126906053908021082045994873749978601220910061473914628854531092500573851054329949793493666908193621742573161900368221919382075908062539276005969277476325446735486771811488552651755225365297568310224897030690872303118478279937965208991325760625167368929951907926449904392759198992685086207557149029293456278499302383416586644990619640843069566898347657295398928451563481164160940899470107236986415337317265177507320786504439886621756761035861963227933064071286928742951002774456252285432979070411893122501369360491944449828821079142535270906138194037863198961291713449805323491288552824945374300299071883092046003490670322478128599820210650422670748484750239477048748836264010279133907768919848876392164982727279044695372708844362237863104442576416759831621033848938531652882947219576037393020016719473796530341231393630349092224500229180777251215734458489212924549281035069309284843881822661355237368772382120898360290211339258441439111200783886606179080887349892500831969421967121597951040511992419028520230287581289925244051545944862274642994985891778906829269087721252410271435686823022075584016808627762568820327781702381174330954711363702562645918399170045168573393153549794172266603259441613823401212447505759229807066839005234797936581061983225105716827349246797281057442256688002286741915836475286067497785399386900798578327892535238982366098723570713185472176467551910413968739512442074084536893258833099097941849559052987905453704851648329636191696893615363211160293950799979554315860546826420275142456263165687549052258306528421114984015526994929643276588942781072132947690115405086288765377894262963817370967320113649030148378496791489591137514858619282577462838336014555763297011386708070409986403771073732395604174582869876471784614289977799186675186747404976425432053434060773793126795588732656662103755882503499720698025306710722698591862894404831123705036623941924923672337681890243355693683348585917685495419682368532506633793267645650587878250624679557930868198395367494615418938865570758750029107753012971405088786615945210403026016908783983328450755408339680528542013148431844093007647820644139271507724243489426141118519275911345005996375679704513377373397924417898171464343984711577930559859418736836819559253960560548682449967948615511866168492012634011267925063807211643059584234897442498323935003804283835985149822715707746897383014395179084186989037519676885435884351167889431267173045080802917105423962840371300106996929744086831908580499539974609030564506384848736346911337041318697334809000066583073073757852531661340418466837670150482877347205745861837758421740733813302171798752042722148195621852359327281853760439231494608666677479552686547034923825308031820934681044360977100065510780787411818456158332303890897307729872133457055300392485550790904913674415441110408873674181434936262463487563990316507728985045020179563400233342031761715163689130973898901666606625734016385935989164032306817114636482950179735436954373777098463747167277731371530125785634792068202283211191535368885288704596901331790521404084501244878660487465268956650765854231711093293835912897127449511410562391962090975170274742185698191991182106579829672488952759692465524318663904184760386667067583065992992145277974731179209559901579418353539043243341425169364094051771274117814411736850957842528737275732977014523608427263410110715431013059529497037788653769845752091599340085913371752785987899552308143489123086425148198527411902478943893098753416469797111535306457822576929082722229391110776323837309051829661458354889612380388144926729451696205269428711851336296275069047194101358776086227579519934790870796791306745525827392189535444206269262900590066003399169880840804856288909065479992348581020702935805162007822672930372133889473366653821064879220726601011300389843492170689970816112072894814110140782185833171200174336280120387843992476000928196820984818796204427788514745187092783344570229645087862258615190257834783644171821579374919444466145719544155033362237517922350045061296997640425131153773249531451186255482324053531048291461034468039697033951283821533833730929326565246358770049187581324169079105723129778698234204840510341990754112180366220458231538398302208906420368182367301634750607169810320208444343735652992665957956820826255259835701779494323334974890102081324258130735810965275978222707010813938553763050114193942891657047408654781830340996700715098493027230236896740290941469002434903929971586430558491192519390737588528050078640612195674344700863904995660998249006244643159709207763562000788581074913789671331164370806665991784164960388004209172203969607217862525074634288731087004689033333240694948688726791523222843095238314434182410060757495785820511174325915901481367620287746211456959334426001782328448906312333397544347476478314045877461704004563825054969871030836120220860286439547941926351423644769994490964057786605388754149244249561584088327415036791190296279888037628432445393423838356219013793623038174241123130680776593727212030480963454252014495525834495647046662681841149824744616888631548900964094725516132710451078611123510851308026366300407762818309453419418885921942056538298328789406736083587745138299914322751204498646968497107035459063506617516496626041247778962953891089801761021645076230464019566953355923436639205199007594836276175729118605659788568885324926869908598757630485337770863539474022208640248826686933688895733991847464296659121971185945683341680223821753067191513760368261637976275173312574771203726957200146540866373841404057141788405279105715472210881662973570670712430031521142851861198502163099887475387455661562096333927050029772564143226454458219869935843772340577310253078698232879911967816090071826013241267961613196610340293865962295580762988856039232714969615888727208048557192356646975050722726653207341151079918173910218309177221133768715265159745092390616236293468455059286168300019068664614884865546306282459426393981346949890291739622105040563561493085820579298298040804110428265573924195879869437289001012978146931064763404493326731858795349400073445596071540896032464234377084254990216317886967789629963050566158705957799064676241060892544257608625164564793195918477402856012717960308815819989292022838826212369444481730108445411931441518244182748344509855757687462304305463303856698304156509610838759431778773714237143425502447895870262118633042735109322259077470792205418166454618700620299000109374506118382781800713347582212130653581112551405537223237953909997336211320789572312985659265390464982622076168058566397309664149767413087397540142559937523043250529998919977097794737065100375259691103048208116948463379386994192687933090176237061549208055461260393436202661299330045554642238131597538040004223621984864828564937409461956214563011503264658405548657643883468283293049913083392930577385004540786135426519834929778394828158188302815353141583271933048999396996669862927680363357813035644160700387464822575010132259165158803147904139666942274360069915121471528412408837691832648963754628588845909683480220679787686942320774139801026605312109451930027546126351396955258504942842371993321403030278835543909304230368511268496089509546762153490765591928921039383511986569262085047936728344953585081179354646883708523251255954433917221620883060368456381380612705778434424854651724215142965030778169849327829401364165696136750714779326287188776317036899184090525830190755652653455159650868405977336772873329490013682385051668444859443605043904742968538885747953291675235719320995184407911761489883424821459218682814668986417295247327979788535860525252696596977895676401432775772204714234125814905470927416189148992715124436062232104656024563016420065025810794020599954111069427200565513585134350127138035598985415713499933880039071303919400173316083070098283867316629003500237767229514314198159352373095664243548304371081619683306388877869923470905989091143876647603334516826224264451012965284741484023620603255487539633756768124824676874518396193292964156650357052208908171835951264389665765837597962737379982192905659322186613318919584769379805383365456995456960986840137283585184472858692293562405148868535540383523854355766100105519303936486603786268633782543895106512546611206025016453163462606368923983706526216387717609572184051086158660500519603209194274888404454519720171936594651073039244528025397802090190399407028130720336113131821163135928666274704787278491891298856614976631479216802475928040882965128657961592567177756160078532374130913842877356548796923228976414284583944941723285356572598936340937947466496980982932735585486103270336106083674841352192172787342616262276907279696996473999763275836171737481006027230853792106866419881255188583578152807207700366262536019136763656803833814822989597246818939328562999395377807713120856618790624799944821313251802144737117477292477835988428506477574494424587449672736174332243943456502486993998554634402617898594850455692369712672487620930307896241593017482056520496423897135158227260574942269082092098687019333135636361156100152428314144084136564475910360957338440995458606438695696595015952926773400316327598241340628324631250253238060816055959509464334423732543276974890643149347875777438564134331770262061695401961165539065560368970838022667146261361276336492377932008088832179957524122054300226987033890066542261672677235245620470582262318932955247777035098386220685538886416644595695456057396715597650988960317388874615403152318989571296525957853285472274731078654459670462068224599419500158219947884271221507009836311401072105801914811969920858757700536496733393782427391536602164684384741333775697552897360771331627382156968374498856598426940822948034169888885023798130690226124325029987062290946838024724553221231578108739877435721929580582318371237881592649087057489515995619788504434781134986113963732361831100584702095125103676119446832659998863508619341134327942585159648114272459056933912324372373609394631923473419075328561274479794747911971586631514119271830259585843578807441114305385487838864565189368065817372709084703944909843537823359015333723253612804580254756004213756677859129917775259922570966828202314951579826366347010646973414995875751792733524973047016811305128312200390588201643584041938447183865049792048533217439559936550258513721679753068707720144264736591604374300260224618615165661226576623493324197370293595650041260963906464603825539402626251699583031898178040965803293072572156220066863662484401742178385020966005840363236493261273376454045297163207528421090357823167300081426719735207377372757781357527896988823419605320600132182175257805048988283837678390838706269386659168914640702251740665008317127424827913504021775144621887225147623098102932115056094070250983430434786320878443542778073146340885582159719085601609488707080941174439294121594810624632459422847090270013274516111185403891116128966400437688749462727498757689677728927226562404352883875732879040523246667605968293751887344562062429040005849249955927002664229653787452186783492139591238078029471711530183421155549805592409959963352931131346129991211550528510744830898778654131164353679529448041444435242715694090001560072200009848640215749433530635103472902762730333241807856147608668799330505659866917801673779016137775887241075403110599068618877167395356227600436398343391246749747914813455790282754739966205584691789572287648196491478740575641524505328672185862198348525412969546804380537415477453124317066588411869060647760751888631398189117254169938895325064725148133021022336750548550734918182704991910336077348073544405168960378658610594097668063094412023487180667953799220476144678869789235723074307383477426255846834005132633144401681552435673097668890495722006248688567474347194625871217991549352390675370286156957131996040106508710836387964987625127104779472557240499354174013629233949616030834814863154772974968983688676653605368035555024503421320068266717882412683459650682378399927797202048636438243272944692107125953833945612837206526408245347525854584813065991687965741771840619579784643921610145089318043106961333647020287683653998469489321647002618722286049316455434255423084746580099674827888821793539039042536497542694010279608584487492242899509329116602896289086033084899999442462708509168723965089435678229727804627209226227663177664572789575122125589094039561519571016385055539819334642024884880243019915835199778093695739468811214645602825001796416265430209706294858410724472261289868575478345961263834725148862628360340729249584659240901667920531834844522918783767823572028744048246184688413489072304747443546444267883968221662543695139094444772306276336538078706609898179499674831624150907222220990181552457433275710661852979810236519487958153937198005505884643964841187066120875906815555719297328674201970249562908473562556760235229545728923372313528788963921752117473836204489852872759131621465155657181609635730485093139341908145256216964878436557533627750684932923037704297279797758026725168917677109112479214992346422863312340468860394582270668529634135488315387226093821905336022067670966489776971903354561134337649430309953308667004491729370116748177669055886166225184507101853000715516226085156971394478328104698812989182655968336578174298249790713026235811959306509597320366839877442982270232194522895436803060301100993968546177173063962528199042762892720176136232712056383798887221832689847179062911624545050916088307478527321383392239260333776112426275011610283820249949667691034494453330246386549266146630081495418080001843467190813528688472644236248057734783400636294100483784363526495558707188439213908201324423705107318231039120299493251637398710617936022617297785738471526194873779939895433464303295142292635433648557599850057112067711327791769680334943741012956721826715886861265241085495891564394613201896551126706585676499724329982712669474212779516353835323574576648200697046534366242854781908788674399607023561803096760899748720540597327652275987008467302467550114270118609570292115732012077385675224853561032144619387655312409613695991035282705376747288463607088649278910252834036153553081559199546405578760457475002694808285922681553919546077041013503078510835322955998195787355404208631281670282360941646873637101765854481317268085873938918897029528102767092784765931240695220475988704945068767154606965542040147209919170673890425748790799222989294855403287184246489130307272476634248036094083312352465471189486084143192878927686340653198323352189126420111372976276451225487255725597002103597711112423035572981139969358530168547027790270837351819834743779066856212689209783967492698173265618496490067507756511960088949655871966053384279134596147252194265998386848092056769714449158537901221015959254177235345321039299468921822556660247095896061536832510340146923766989298956940353938590066926006959874049582224045167438028332412945368227740290638426218606281521710031459279614073276770004231267959108193469805273282648318993043799348406538886768613027543864354897806885582802954831229152731806087973991851475866048306150452716362295694380497980510736999026323999479847610085815937854943171254840653710739312057987381456794087555461915779994222845144133304171272051848733254399915315345592498438499946897538712700541709158014864234542624893314742995566166930239837692482915527878735481963682580159781415002443403742602920548653869705250287244286722540467930148900844992216900590807367996961257245493097478570786547017397734358230035225936619046168716328485855411538186580201293883692926810937977035568959289048506757462445477341832063565899721808688442056426223653999100934145337241043036284164607052550397343105595542808814861881697589764780717586781199433937219000618785071217392642682238247749514994094359592069849255693954407060986224821480751385953844404959356522167235144560107755988727373260973643084547986181327242119288300566223531191800841005277178246957105679416345984666443515920212802325465816601623259889188597405518655544253796807491139524642580028426840123679544147199956517571119275307866927450689315552905615467253333555533679088404716511700346276661042803653259899660562175718500096661545958688607734871060723563573819615607892196872345014787475650681461417594574294387776690713691882517498807977381460323445788843155226057270978042402523237481736395816147372613822716663533575826588870187641008538697720379099880450992950893718777889077214462624240220647826856316297920084122923814668902132950887519422636045221018407502478788032610611180621298511107539370082246619374426612511910516734401176203273217836310426532448362026100743680948854356769643048602918168352876373459676675046504247519539286615326547574818915505600641141135356902488055811824646385458915712505701681047321230302456116812276283084595696868248994938766733338688383234715972115953283372273256992482667102239063847121656019953046130028445594288994622041465444503421450820273106534180466781289099180265132374954775121625717227580750079083821785443012779797239556050350618769085087848233767050700286962416879500426648488124658207909077442203765785227557161732848529944178235902864653098539625892121765859894024463127574344414537573144577010385769794670939330935758494063623719605756395093682577689399093811390913574088137481038109679114530974568082726157226627098098311512787186903427577833261726302329195829809912495479831971625711712545568237815808899113980394314355984722612150461781068143244828024189798429853986401859459188896119036917073913124438276669193445330428424596593909893622587260047643947059473257609900315409865771080482083753102530132766336836970315891824458822427060013220084074510883019061552543565535555642707587060834724191595682155586548909017296425740260929937058644928684853944955980205796477322899231900651718998461060758551009919222915028504088106997341658120724034848282078760985307877020347786995555729801770655853756420215257091464316387994520647937240998266721485985359737470750133735964232570537113620483395643757037730057089404844869964821865270854551302680596533159123502368582303693035697410076070514081949627327083273272581339409391739733130870632946469332953373209652417728757693829524580852527670022590084360312661434690792885347550712043440986441229653700752939127657676245049696189728171758409943690244113776961389844989816061765761710033771752479743462487822505134611668828383340286554502945650972785877468034531139558568224022393864057340249165784078604648345632353322693274095220532705661048208838060907348894724706337476070410613780377708209975187630281574269630868867473431082460959426121059679828234076950331800762996880830385309647947122843220993602845048562831989284371053098569736727127842325436241184090654974323033973450246994044124884855977993463428063887473145284417904908513435495773827778027157888751757130689877667355635882021412560334188385358693399954586808146025176528419986988880908790423009268305102706704106499368900237043947474783665417034648179169953668926844496372974004004038441684400878173607782907492325174132346229275642217904777902561724272642501152908244084117332494157630297118937093317115025029532840642345038898484494547423605660100085351826605900180324807147938344284211807194291120267562854013085653423008450492073502840764297439339325137827603250418707092387176474634050063185283927835078444668680599704960268517249299284664487446462249129431345570787529305359035775018328115803666935766051024488177644044909502086092434730233479496341298076327597368818323223929241797885575382799469721525906144383403624913719635360599617765411202301848945307474229179108293715287347781750085450938330907912393905797973018976102701201020863387585062853532817424058573786333173627606300631642676680268310857892452751282457707404100198799355579586399065366269669045777056880606604908098655033794355555746681468464009643972693869825489574568909099752403583020308805255759721911603101969668539138987439815832260447221183430022453459778644597199036325280759383183488179459092685246338224340888395182796653959168360810881731958687044434821427151020342210441785174598263880721423007665239950762494825610279518984603714927921097651898937886909739780707635283329865004410284360364705539607188890583695203255989029249007443825486190851534238796080926595677535008416121277358566918663222329431536034221387711769649284386583626362870656993830644005490552441267295423006678652802283576009487025988858359972207296247693796709799288922836359965739847541529170323324319398030507785174087899144094187501409538731019162424440763981207628128302721140666193912751879157189186122337896267125437178975224138051536342772230467870742057120996191373059322613394532618604787819502307369573606448304342642434040765347091512580917663645995912410783330584501533280083545983827947859309751779915989437957564473241443065883168401767561614069931730640245844009058386086771535216266403586903860574242545378346031327442116375957775983295535405728770001941667553801468280631783342185997536565383811791061328158825303754163308846867138555157357565107824440179055885738034702899105580627862124883188537705675580444440996120919976505118384458911401027591839289626257078982026236748603349240549733169466800238482057841204273624791996349641995323634847172485153902400341048543806130115705844506978341100782536937580252725933931373971523172364225049879272673073385254567087445255678415691429073488703615889324978395071461123350609427192036203841732266041580314664850647869607823392554622872105651946221235548677543173849811241129322009582916475275049956685557617483476666093443177435262458762072389578235173874788748677671384305463873163544786666176664630178403451772845755463970360010493624964543767004300787362515027104523866363735767918475459971121966050168688952500159644446702542627849354326559044865262280888846168717600820893788658402379001513988982940283743529195944566519137844353269701347882866085949622979729906670480466258682496485950925845790840174328456974290409326385690983377438969222766726367562747986461960728883783432839035787211421018120701102112768856567525250497041323839100378821712142754557085157725722896761004213598762006883198387427282891164109407738451068695528776213791922013551010194040307463718936145196373397012602054268386132029441143100933976383734565782274653207628134566373218068090236170949874639108416000975986794082334673664416970528463355789632008054921995532791920281676975131858397608703058023139481960562984240374678213185033705101903032588788852872128966384078116084218555138456012138736283003207983713271509889240947595789635105559815604977379015569045941927113425441236269369161052190129678532659483965327205702518181742733938040448886170750226061165094416987442036491788781020498391860391009097045737613722220802589102688841572155313453829634807333723836482025416365429018777388116428983290274200890856927185039854885681855537292008823898548271579611487532104086686034268698459978965822680722859297672130341279448651836541957511782524417237757682638876730605846547421853907620612874609064683441068743134057520338717409211668400637778628112075378835833145760320475165938174150061785881448940271216082016606661925105399922787581414111557752387115165491162361787957156706737511514567047522100377095100204769936735639145349271843999714053604966433817375965606121440008189138972003256892186560035024069565193397453456877044780599555846309617999972085924365955509647573830893806150834809158168892015220165213869668750647871927857673106475808418958821679384117193825901549632370614573380268020541428004307164519644525413193805792710953846518515488841189014115895579080964519461046960053002858003927399230904489061842518954967033608874290927180191140562210590835187289771742965004357195904585109652814172425974918934044680456224312995656353160988507025998422189870347861860617548950712860092201178400645048079990900103864666384787280309843358650682768176369626297677061419057934999158006931256436095456680558466307268174969255068792024935189460663460467568738186801945373928759335921752683110020804039691680507702091204510031439220839732937552642227094530781533787579860169990264590009889336895627640492616457582256095839507938678313986400964022677366972992263409874578024017897624678301016302918714395205233866634447690417155953874769445267248294487494023386516045662314204665795797314514271410882007519540900224755825249481474902702062784234093248215985607858258650763001164063993280520452157942369278367655759205259442440648779966892692518555636914332103624652725860359287609341444045628383106844704609735781754413283656769638010511545239684812842478307240585364794696231519467720939986458604405553724069702653494560859580731660961334678779271236774671149638804513026885365632594095964478833809699054709056534111322161540095403493419720636207202330666083317194649101638300402927654424327572506017570298228729989284259067579820675519500663667881874490948632174555365102694297683448463026336453216739238535880256546117949611516215895210286915271508595103282959318418283188340044544044769960040383015889718632513921448074665384097104699546906600968524274166308706261210602297277885975131721586537421084478532927100370231449595714046033977844050092032501404027184537690317597755580084425224382867210560603842636572247218344403478220939266739717117326949135493516291383497369881452849289535147371757491959468677400003013268781119088500610139453454071863601954589788623316578412947782226606740559034869920021236955750381329445649051689945985328276418135065669796278713639932626891512024500895633738866574981403683284067523105998027132584786394107201121682767390263089566816984314294112603589898775313989368656842058709289773148442125836367986073487137585637693181878219978088011979243573181775861881764792730067156221593148778731961500803455278720724925413323385319104311813929676934504103359738052609451205429741311603784207779967236997175906127756283154149798435752825633089200977221345678810364963277102981431575514062050642820185458607956366760811067089639772064686753494993824309955865336717041226472845651479371661627413590854455140445803632141677538620768889973242315256936046414430066424903034661000368855402700483157641876990348299951491735222059369596789460070450564270717846996733020176091465390268031575914765759040289901017783516892899754800469748380685071006738962183052013657657762681356197178358329586402230453058398156824010697420895286225068546735708751984492862838418601423490937560087658672507890292871568505227787366670979719626847074902979081618871816984175141865362854970091411035780788830902685641964251337814273144790225303658661583070520958421022233667341909669617809082684856461562007848138860975959474377542628343589396766593181340080743781510453884277493686091827509298172899502736809483270162154070624292788756619789455259141451805257484149146051463468553566676347199560143526697367684355862530506664610153774562289019533284960160438880673936034320139516681850021840206606600650455170270372744723363261587120094359868941367437262734260170794026519807021131572476916190057266882351542822967664979537599720238444092419638602751590490190072397826090764527997266528509859933787308213508140259954340396642425755637942891116358097083797269330196367048816619838239773376877344692421843989120180081331972908683917593723225443566595613049385510977368888408523266165075815266530962869534876569311839763887827404630104113021667620567694155804487042264606440331250868150531160732790952785955618380766688410831249796714935155796109027987757366441895510924663965433496512423628510017662933199603642372214103009083840527300993764400960658413701445450933674154959278351710957707783567440499569535049222645321015599827373453396775183922449156962928444689093056788055898064657838349086890472483987589297573575261497629449313876918405559132716400340964310478250056453506881328329457492771737668800982502972283835265072487386445163892174708286504440229350967026986630579293362084385996300252171552382724868701863900364800428840969159972893948776771417300175314412386495949529503784006179059637031809452219539355248024698071508942467774556845175164685610382856746240759366169977696796573113192079570811600274109304955470041583842077451296460360082242718481950172268527124940272502114005151805374611590089605762461669630873973620361164676841538671928933084263714605387189323557112049893832413240876354004574640903407769979976879606542929185210523637564259869381608377957412900258450120419795412123976847501482522213771881165823781495025326968610108004909531727161321409182267389084858802518305827362506791698001336251958594608948828355182351738346591819125214179409566569216387134341924722020231916461443600032364092100383490464104220625164394694187933473057139715752758224127345406860548471968852039067876794822969625515962702841693911224959451290349893389751593724847387519185417761680255910164587791574374801514821601614185883048776846627987906625433109367594641235376258739629380104659162423515513265695435365572901262141297418295614735443894281923787320065700742126829328655949476738860066479870603460340203505982832927844692110357075938480763839005304312766034564734828993471189976597579945633596343481751631837997600944941872000996000163724683143049312359300998442175755741534483414678308601780213508917654725794830331141718877528618833077913800708186640045946021617726973601092520054427045748078330575859210719844341124789785380220164454975051393382225689604630337780562099953835185252984170304099454705596264739834176668909265276207135556019241822413487383399940041083638704162367212620585176529921261206150049373848019652205165770051565160264848255120852052821019807591071340102199549804349502145500694831724423334997809278869286497310522255721107037343436442713565856500581778518207989071756527999968738317363315424494673455874816604841476745046535588662905591967500642597590571993642046086500532366197600071702792646943083687870189552722823183632421986911975637037881030665446844148730124331784060436894707268529704842905014301300014954104150686168752906614482709228846022590604496867748218980462551832548385476818540617995465561649945882380763077456971255425625267511572882114262516112838026056210762637687763591585621595815708060866284180945513030227423980152346265467227292260798581034299784367727763967276328543964354042741273958709248054921593860431078332393802177973627721208586817567504746846682461813832133710473146970362854616298641145755014186358385608970980573238086983548685358766579229187304658152993660624974000528245988838924454400395605687792433431318999413330448829131423451011594631628038406400917946743059204850158375130076778735600980118574117442138679255514756307032901749895247688711848733722217136122338259182602362574439061259131611691657405633673708922264164654099118961411301451178745469729815178352111035983988225146827695397933650554869343380237505100002207451932472996500418616648646401189291201879091513174603441392885565604186407056848316315956917387287834575329820984751346022766739952490994305369470983733924992604900518337109628364725476274890393902446660373505487713479405528971870712865530172963419903295097146734755011268397293426606626460476943124387409019720404116191661716087566496039050785215333736764394455793665858010560040946352487666716975164323900388728407214198066975501520923280826731368709729694653433026833091818427451680480108145322398176144327434705060917429713214631812136700396405830122835105594386924138348963385346728331756145554543703122630192067258532513686626506325055207171749809520444512715710057611154332960616341235846632562742603059539848181506210404285727504212733974718074539985738044114510325830559473187175960686464960231889124287243655068516220592170718903634764659529849406261527579649599158927845741464270190394403235580145273527657162700023737317272443630804339557771548660447585510490675056892999995169114046736761893255513637824656281036937324998159854318710284989762143517481017480164215277997339305525999193689073132601372770751336412704805601558819062064693890501508557021215421755373069673520732410890144301339033160173733158627457235878372453037735025101766403937736426273776310512373653778256733423739929164477562727022579175291704445378967458880974190605136061145582867821565522360361465346152062817612259195174958045742967935621369054615915220081978386395467759492507588275284916764108915791595337338227920788533523135025616268951337252577019225088463852186333929849373600803035692875920410755470227883906205594205257183290923940563393543170295952080060147865442421682823553199255824670959528545937344487200326930604246480457055106083824954330290748686960563793495620127660093297965009673356362532159572015927492075401866336135787334293100115629247113826856968960786650886999960763280173725661218890064650384132395488822962019872448467067664505814954033679151273356705363852993270876722793445453372436694957345228843164103438563763023066696039958878299701639006031630944223466379235258110651082376455495867410616207725623650967467372710637067259641263975764975548115213012936535190459036644964749096480571644375127195187825034546397402641372471875133985562374555274755465769889279387586252274528564398701539134028324540397686201492100948546689715704505359900694011228245070146821366572089444968081717984633737119806880471954777752255522010463910727764208169580257310278957300329117737663808252612307452560256515432668003035196167564972452432458540321269836199498621955710955518959665993958092744436322621583694415037215890047108115099174344468458115727025348806931776390376062694889262193407839597870691286428961173527043323533500704312126767122385674965731519474532131704428232479264233564918583096798210409820692940562458864130629956109352846302600028946753880997446915887414699045514467505762859781498042106763575327325498904667302431318807514737975835344946339098820463638857051389882275776494176285067767634387944159555541734600874362855798312873245289344375344942121048256760839526154886788763017010233625822996164893494344881294665043315659300943010642973130980736047540230805028401394016733180658152038464674535768478241668625478806514901850948258014540363848621443109180937193888984349652924577483683089293604704934897653847254213095892066110313864429815796679202551453192243949394279056061632763617798084776716350081030596240490229395919363218286677903230355226571422808731949816427292165382115795283695578293644173376374968463638342459999202487674045093780493717960839958354733307083969716717105779073743447352604477833067907542813533902925611700362697173673481481174369933402729670835306798595695392268027629621167299759686648205304886300012157370809864737575955592296883307545106229429400539790441341023726585999969027900368085954573258233735750753465016857184855275576188619079466532483515492383289393617437461849305713326345197347454772767710512042461332846758541663175022772736376669750316066381624401183982294850833839428420504167871895121181716041246812764816565435060230443390950751709986839122991113194442926122416997180136791138412926965271777180410048240905077289605416764708883432170495017916797037279008267957584577108995780033100650604074373036844753449429453559670036314079087224632724976695933019809600457796519311876191168707257140450232992156897732747729737515352046182959456418079936960714709844269398947547299596443135059141635395922475772357944118972455333104121804181519252288464014062493631160495082566613268774579343530278061912423451432014334948811915732442961011013548415097560030731384814330243454223182945710024406780094015552802745369711491621201640044266310553793083787098273388224844497413090807778968978011002760463255358417917420860383469079026617271504476375529114099585263639227553608964314869328442213349954692064519907083224389876533499452469366606124190179471642345549679043135294898195854815394672880048596137316172202786662802847378767345244872424389985689095317408739003733552125777641839584915778208313393985301900713280286603684743154447027723517543329087851238441226962046451894643599869874973718501626089964847962877889847699072333616449014958621869181290212275790900658477901559296065479910501850582376876686984221972761642446839479956886212650818837110666119414419402282466652806410402821102616471559485229007145460116134717921207886014801173244280368650763847393831452905234939730915922136793908251439988481833520786825787931809690570671120366499343600774922236719450211780520144009043074216803224310714791737446590787856534684101767807142249157428710051191462146924109557230295955606921801574977465931585062784698097071948573107052547868977916239364836141057869103871203409643641480099354545105659500981652419317195023141558905719686349146715373616692986459298702481044174477647108198095778999254212582950336947947962218021127920974398193724732889762875224032222528742224660276592473165079338315271077836219839044743011590979549940097035784082665271736878583006186635417316698398390603092128801073157070531187442376329632814858967238024396858996915634721700136421174450510524041130523955140486939230970218911275961110822067027722058318312730132590809239717813334752641932787690976900088020203462810685062994863332008712500957127292538131317710569332569342267044603858445923410071396502609053341439225096701060540866705526734056346663626318373673321219743261391789475405726746813616899318081759957024922222505399875880728225085246410225661915731599082014572108616572121254773791250892773821570511503781423933288297913143037198590859221014634370923920329597663465676203838671178821773184628938826032211676146333429938675277890560600941479770995134494118275285819986902341961114086955391278255581192418620347392708255763971413148460454084124601887662841060482517417402731385652502890372865329614884139616871107257152875394112634859456299991727280976728522148155569786146132306847416618676188425866220254505903968585616269301830292557500235084661565791508459593899610320044431388052201317267750664166095340455919866369481095727966128759559945741793078127197542723461658585400221070365121565566689370971855754099900034174748276975453535983236881953862296760483504596217005922410537798181886633839015305223967616940893892062147654412886066045027321284614187425639699758634332119048842956141155826908049058311320458217164656247431666379200947891542067526372898822228759620204271868431389574046773830531750888318217444164434796321369422908561002531575918418576949579940693825751272246174274126485603638855154200079180270072399425439944670756826552475048590479200557364182992491617605571785581334271091205008454878137174733770158517911227845429417486126655693903465642328892417969436767592016009781431762306541762386989452070634053535305522610969654149809786545488980991707347226258142445718096208048060047450291477374057658965742598996454460355025127945811610111637819848632360426209193144305651300913491764513667958655735319148689099189931179892686262203431172914572520763946124010504195592103823728099589180847862924161344158751756600546996950176650889860848265138328253875999359011789967877704010182677153365995106896124558418003384247733057685125964176545441429668483402115331059757793890139307511519558409413856049373661619819604287521711692211413980831898377068405012505119750453252728974980703107890930423433225663396464890462340037074098228503420064491160221840464132117223249823179770640493297851186606276270656551654942761164813753567036200093679787711751160296892604977033306804853250816336161085186747072448563965612281206014574935765845526753080878801817116572194309077549050660834111341339428611527852937805086197738304586237811718096271215840392494176831440087495343688861877514985442504661954390052951638168839306415738606389699412314846925049538564638918189805565374789652242581706266163705751539344471054485024324437230028096969234247008074525838887370324344065226849428910727310095026960314374758047306901980756625150895058566588649530001513606356457478579275086753302809644073425758193422139972555382253854746480139926082820120837961586862192443179632174215428852404856840340161653656634108217123098377613023002647506459370909869503714719466779503216112425874227161319166830419413673070671836876736847744396328758916303377882413025368414328504723069533105066105483391590611984557142793373060169323078373537644294097588572091185446940125385774697316626246631423267068564899467438869939493546016238194755704614004904158546997694533476343356880748082835865393410511600006615501312006043363777303186815193771098966266490750958025396988129347413012612324078292285719053502679390847981760310626513502680693273202659559565591881097008758163271835469718977178751457275553753496799198397306027686199028266548696571531698918285247993795141666102944689839024799131233058024638646943296800668131540419824260138989510291012460384433185030565172124697848617927804048819528188426565692604147486103195810851619997434583558760877898475090731911766428397636656026946898595424803888747752847165501509992846598746184011083109695516996269923468694082175441459626602880760178324214677943164846103627152733362290071373407678122256971813146342917657414323616804482233285849722838684881573786152804791220429043528313403235457286168253644298881732887308712261412756351218840574457901686224058338615402860802745099739199053647676451281127265011925820409879147401248593994051908183659833856367802178033978447426524490887615676810170108706400324846237709374084186240823886161315175243988866419834335659915025601114276309110168910187080753854606931916080545143851237047184649395087110299392380033381098675576444386647076084445420212443374841304888927754506785227817827918966724326135579685489660917636243972852320890154903267514697575059055754781801686835104868087898408127763195652501719678492982514403397849332411957535861138852096440449771168957138969596499171933910789482408726062948547101503378101588795703913369086253924910248316050073002308617656637341557919423144768030142369904544877756761194248808893627584779578885476893103213829254373410245524199573226858089305654583127667551694514444279531769481130850532190520216936866788293171384663793401234876425015865955225023357215734413515898844980083746642126492476851917936684399991282564814067473588290525570754060627555879036628254591463941300225356021245983322365542590809725405580428092764432060008766182610872093740979395377265796481249450821586839603094154866041153876082711944735282809103640522224644490439196413186261855821358992636927984060852128571907575077157441355381760670175132362400322324254238590241238768911303120930628629606017471292118066362735774868598332608441027725976223808019297659187531951252822289731664866121929828584998406745741531430362045604896378623325204592885908825019977356065242718824549170001665259415797580483641018821142541008869343323744978260013455700696748630119246843272972170134696047845230704289349035062856523337499588228041588974294068684867747865793519236548569984999087214250481596646752441757599558539426474249261590785263625790487079889168815512808990025459259619531723630403472607496901981521596225589407349730633441249851254322457094754684256677488937904900912966730107660349348970564677020833199148456593398789363319353896264966064418718408245777584694479533923390131937168672983627427755512195163319015353068320830818510590739473534331499318472776856262451630363666772929607097956236434480291301454016050978324776018425047409739768603993197517893405711565370811241308985223868637222670639520304364296725733187228855107076460485839319030771671412737007810045311137349204670120052960289335574939133821346170955988247684644307703415977460020156154162104582357241436880045854189119994149209084050674359461983796482877780734343272749108131208144860833934324084594363946139070451281617889710958682085929853792597441741926224295610755924023798948978768900402650435297664044016387877221338096736805306756873624867541504881182103516092377591426818194680685419498067004425503900691417341676078009437099493755956656674484332134120483072044035708375682081063507295134183672893850866658523402154866002881279000539945379672996651253552277194218860955221843068262614321614551987898784167186089800500070593470272159312136598783724920855075027842982709044864547761581847185685911228322966631878294907016858220835677331115395577901311482758385244461637423618422875748863487695041184963774277804679435367433417780064866078436382651288494655667588369007666768104462580057175301530738849952161635701590500221728534060200782013897291441115615043800643275520679475881604278937618630863023178413523389224686007615112226115771561121623176167652753766393476003282198480774351227704953904830673716999877494321834063303998447065659683263922596603244200034162235903802485959207241899759759168794221141842638469584421101242609160681846415459297225919064642331697045529987030539842571869915809293201248199516010231191365163016912380839954049448435335343705552132704139404836432812976249830539865036789968324569230762279171432409792334496498775842494526797745345731740590150284687896280262872731916782704634660242773855261530950238679040007465611868688667823366270273365197243450497110200949812567550946594072065613058961553912104364475693803580974739829959115470952670080287552042477834900734588469108208467100933995746338579445604225735900567114112412103457317697929511533760828011341720029791380875091746239550921273551706379299039673105102265645671428640273850730965051596348197864816699554319025021300588561361466208118059919864669868046817333997315211564181312510484780830183405795898819172428495168507344976388845117127386251434608326739156712274612710731996900767736618162235890812289629527825015419413261776693246891544540927329346678925013225016546492785101755893482998700428951890848065924913537284963432302927238107928754268501399764265122355442952754588886743119214504314030078612266629030711567696212621666632508759878258674902459261790284711612730284429596875434307585064270340839857831843071653441666258910661399010662797087512811802393460507037690787093001891763978385552260158247103844036854638806786922792850230877170316288299078898709829767609315962175963383183801639846425928121292209036848573806465297809554308626530648526957411635157932564460622945880608618801144768646792584019887509599759197084657057539144296393802670753123528001640656915758085937487629049647605906501336134045921134330293401633408319599617829108361770037551864098149102092276391914405636578923447820695021562561639194136450838079260895088012108188346248916127528554005144818963429436296978552308543181568655769876346037859215524309706970982888195082364117934122407452107935054101002289191653970631199838585915817073244906843877398264332463268236654856102981623996269214596564577856000151679859000195578313669166482679297471165108809315335887800735495047162916413670213779603518941788760640666679344676092061907346862929326526993739042131356505712383829387696833101951938822614689983759547354660514200647628181651299584312823091532423751018517276408922120166566402564610251435803792787980117550076516586029893300588214789037194468151698396205646330834048002001232656451945044031407806482626356537663295941601592414271449296467741542144903171520846164371040911425513140769582735492335671812340927470474897033631319502700636199729844747477086046550870983230161772768009041522616488549900692256810140402057458440927863705297361355548844886734130570474208199635925606301030160014644036564206718111732942291494212623831287858950561433643382859863563632457530426455725740052967913278895972857645374811458567154928553052919217381473666931461761336419280180394767779206435736259332917034873737841736181281156061321178327284416932314056821784394648426151106122284245427168806947642067056275128969507816838014681974136382208462989995968568852119047847771271116017035229991537568000139782198199531429073858173355656736209339234305304289539023066068683901916376762446206289860183545349316111329525212989494404240417143320605541453710999580637058841504715429652458501123149506639591028436948422543158443986677177731832273315272629125009064343805689199864860505603259010442926679932302607422969165967299056025122468337496585148242717757033866988743377291047846234760977311192889151548898681557141590983670873566556753879727127506810542810422897135918415696568662229476339952601483354107354976317179581698347511738981275648933759926062516846146735164861393498616446891804901071980770130011977304639529150128449584122540014362770353481691384203390024909957885277956059002897546635110797425487764526838781021275628093291591343482694425144543268154992499756900888524481935526701563479958644264099801001834566640629361169017261597470713682155822873715821304296784093100764507036828020610751977666634663913653321596527873456768683484258906314395038473544126976196897256496343722501273854872768579236676598939914952979343995286704152076790972679915542287873318301518903332317180558742266277229601176395463360520483302414989224625362119524245930299460417838859808352331598245693869329641620955627436793533930429590804453545081555378897320875614803092350828436339049614341898619937606097348179484490230889157360073180623728871758696605039319232626742857177960761027846107016314203248047704872483983335102860655699511295628161332980345117691033967505207142872235248366782716838478588347107462711103453569202474488704883064492148220501066555958836900858736833378080390455992060655377922298775560185810573712911357837747883978739263007308469150277023756663354015743290245434226127667627519516498829048695927496957863802568962118462315140280010370001651664145664752850113843664396728753694427551652056620672467913289959523068913392114208120520601974620668142743814520815337700314349715987291978833497675259867595973852525807108571434316979284829794302710528445481841341761416644065192676605685518780667261471949371871623602280460778460045172802564334034192516993722861816538085421059798781934410299145808935860134347962549176990926712886426828870416826386390771761372623801838055848133583168516463095906903568143121699711454346974808952122456654926835011219760412228515845350793988270966082980893546447629146842363716037596802071367299569413110076697794787775059535002695137380481911710174820459130828893127268275453572986746219491866020492392296878822161718699896379338310428763304195334682473142890561700375809690287332308451302263566635855512665125175655432953952519217663157465097240372359229554672006581563188349297617104393777216845283945415298881642027615904880054366266234119061380678557410875496031881408801266716251978022327278910172420763210976643475420988061001904656325632073356234936830654662417526139940944650960968276942565429042002337547319645947701364306094931762678193571455133944363569867568986571382022415288020454477028711411094614476991864836191181568181138171777840603174594838489198945864870838490073019890317496960369486249153277202123404481361405450668854391105673982413061078137869638580642572978693810459860410161829431539524603715565109524086122650480416309466156629963986833852518950712428868009164419970592967582798688728067586772900475393484959570464218892939772249421741607297347250555068405607329200151737020658534303840372573805578209493565139353324528730155317041983725030879810638278172940266505868887992885160672803924363163117822825837713407526717055156777912886905884598941703219215757762827238864546111624120019912171709734403232775436482893486339292383704790514078427162723964909849908311720568386989835857989989104825973229805419881863246136024827526819431447191739967338132667162336763767008084959821028069405070175938688117889520973013578160969860034154662858887543290204491522205387008462105281768527143807852111876848966230596278988468060193255879787313681420941902763437723027583421366762574685167049570906022675184006158773641846487513827438442960985347551561732364343678445326367663361474712242158657230264712668627654798369106324857115062444301465918566567944159414988667503581842155233276973560949227599409688351010054949762297498555180150343727280425366794958545105832518576663417597742383253638086903029176472747508340664841420189988327480788295868581640721011774078782041594873267861640813283720334175954959930802394107116572899118352490895070777178552926797239844361354847376289811531496944968309388742302273320487723397878616765408949708992002437610122280294044874049215365994507210004930170225399628119401359811116089996142649674243851623076226167074587531626268086572992455485237467271712656359830279538619787730689135597870329289762239763500375070233438689467487825343334516411300511765168429722696204607478650695927405893673117653081996091047688222606335763697286260194783098618740686980189107077774296256049321231403338154551231566329285176420383803557535858046446627778720128552577475846319836174184555783029133809178684345008207804789792100396139106327347577795513157035326847865549366526942955163028601101976243756100072640563405114924901184148596625720660193208232589207120934307687867225329070956231323834589274068954940144406498070305520016322433208975694541305108640259419575753663134541595272390332731024186825475171736550771418313201113424587269250327856033409241653161915966055791823689559660698124238087312201192599184289119591109240789725061630123190878686179052555232467715458554093683293133438746585608876222860259063833380340754676023660444215140296802998228202186369568646276242363039426326449845169961883102595392280160827757084788862898425780298665523895187052624062415741826937037827078744984498168590217723469419703865207458528967966311897073927615238031492001593276463168135228172687450210582478396716996075834879552928594507545305072498840973503856654482570528741165795049595809777934819742143040215097848616041492578346984719353609274741400601455253450115840583351081724943099160880949011941937672564085559328135069886009982817468193332441230844805479231532495367323171318944924113482946880471874010075095667889024665388799534821680770916315564927439170621700039322515151951394782913785750698531506332561588084835949400047775191486878219945912087693538280778495721483891401010099188028320752250252986874386505081649213738870903322881038300480727886479831970649969030403448400640260170114583170237950544588993318455164680659542601956582494928932462893903044345869395961244354826339585447426256364354359821734778639718032134894508642762666425507167443976110691288887661502072010716209575430090131006633350982382456341411807574249177583555504920655386858525364455951332273989239914686502525567115875136622435349910835618787144162452998664118103043712969934727369756869166609340274757767883902359892493804553195223466919953849119619823073378678699969986684578209210466992529309436676005202082172979310863837869697732937791047034164802016519386534788822214567955542003060711399138999072682249807513149264571671814912136501833790367895286956437480039728067627087716403569928384618512633386725606513724271362809750227088191181881903643402843880565929814168976089946452648551366845242594907261606901968954509808997245666015671100416522819681085754517776350939412674976352900514214745427284717071062800998510797067027418953717549364010748731986007096877587447369198239654811361666357099445871532528600928236654251743347157530800810978786887600243529223847384254818909352872676806578738670636256502689687234109886365961631004957189293918979733527946577940445539969244076079140551620318736050380700598391459347167537868233367985410950523361375735285466768743466533609253780824757581549720339147572195260087371133564284525446234355573543747077800307775787609077795644103511063150981901287234235924331607160711310620062346022157463466788627056562418367168248236143204427301117443090477472925465246269698003386700410684362137280610121006819015532675299534504552238132247811373088851039224117536325623404316877330737767990834392153773973031041820548828423330759016963825531570968300030786612010472822718707216250857178984810036826535398151025019513237048843906582659049605356094072735614260282103846749086389204687139497943585463410373914997633124988478350343468206735388667947993250862393707699195888233355645204380131205475145336988949885145296295918588472164568159064015211145430155531941836104657222824858565877770496794680905485366343320735304014042247700490132364616940385522102597816872721016264031661434921750885170242112433910389267891283318319104297009421175823740976867538989470153268597289508350951109699875600166912872158771228865379349150039789402993319485249886280201514082286600583967181791237096902470272020853862986105658883807873593179416766230133376898462991626731336592425936915006523896072183160285058404049880174499399295167949614466322020390994433073513014514282550665415662971076042969183121273598229275644745565889524160560246574018033624869920914963994315533403996996719822308145276994582607180022794405961232452222866815054355319928717709379743549127596923697029864479774426351113146326547976095745479852553385807520541692938703738120646694908065083384027190792225555150219649392173894235143134273274052839668722355973869821042747298765784325251018847158907754264065084655255069279170305917292802176468854739825903955242476865651028547120338652596952237905759707731905738446973339779766645886388809035799651163204374437024195873136569867571195858154872011449122492910032983100942360358197183291811081218547647043106436402781658742232877506897507363151418621034191823816009029556069473639071378092843244079824817762370508027795057505494180643998542896648492426152932395338895320948292644586251682943359298877078035765722931832209101251939262467615857307793570532221955244243129624496205451387190654854162514072691379440319913734110201945723825073525978153171451607359971508657887107282505757178143107561824523736814348533566573641099357243683043580585694659593868594255154891229503070497016564918271459156486988213382214420085379144606714062617384715225563505135410955613948427114005660034661915921876759723075854508673550547896394889469137254365161588383459289887750437653634970675165578930381444772457439325511772835004854987829767798871088376996567863383284463996096133818545915301510853880157269163642827623543888213873783747897110294626863571033578040109350049532914160180638610416331103846545127136570926779344408564910368370416029859920528492226925182609502788514922453327135222776613683872156487944595109679735282358405789847427360462468434995369476625313637022185603684148673900636797634093465731249446216407873987785376515806275528753023344471844257198144635502543822367636105296589411622489544773587689184698740082043051331662624195185716730871063561660571102109112518297127444756585131576596846701297033650244976812325851106709576352022184783172090377532944257053887128225957960026316998540658061966412702845341844593888712195249269681807821700364769705339254012303542917376672691118492352317993831780265485332055355702141738508836447749344331395171924062736997185321586917083943565237636065689672065865254240934544065712087193583667554358914400293312762695399462812302614371045254933824172937213885022942767606749207573095422152850550363154969589396541889661045807992613190868941134901786006871135512255868609137969049731759938883698391728849988705965034924421093748357156465131516182172337659470277310857172603063858195787848722104663293441614059232030257393193710514195138804709548692346173656909651319929948794424424567125227097997151574111294353343397617625816951709421895644315339094117330182938760808759266364382355401983927390511780424745241518839458630235695331322113910438841505845367778024505987367188016524933366367810159214576630114343944892063374965997367852811248220005250371091940121979261226148196499464101141868317962095473366771596303688262827636118440911329571351671388831420189389606635627932635970563447454888660468542687535358173406121057797479981060348584880876708192238802460984674013293267718814065916556134887510124353742419549462459953752137123433021671588165458245364167294371475034796375128421961755957661010452897242432928033180915341853678072719895970965116462946537969576636393385129517714374934730725219717327266819963527481773634921466652215790510444010050459009703030851172150004418307170947386676829240827940786168731984585126298920514672167518753739128125315640776668333208827145278702472838932265390985095297952500156869447665885860162909134756020497357333963249957163024258192866457949027581638025847333400931709085849157620028101037723019337661445535958868345739920982728768163570526824646781304218311176946131880247654405393514084765820197958091659290113618643634684421450949196250419580929587520214484199889634078718968092066212560074563805686574205769003214380087079126773532760533493442540705367186810928230758771903795068964101742451035489151256378102723106351024037561066013607754114513826226818657488603587470921155751705985099849631919024773979887623512488210512583076903080852598235315444675195791632754791543218722326429608763989393346725438618710729781465333770307879558337370283079931185252350393887432592686123501632308535798423896225725608670730514982313460524563370415581266857264220913436024135094470085686433718972739422272581898614432294649372633795300202691417673747664629157587889040843828250214635126696152023519560237853171167444769176394547429037164264091389376832403749123475871587848376595089736566700553596726137970516933589249118989435605791459416891748367962277642886231666244411294784334559447028444269187337679399763097569171927740980651107895591257747209942347634911024249150342543649677657312383533462305579780508737870241224155778371994833952831814286569727858593192282250173208985029340034650016464853381388846470536878839405859697572103650098440914084201243699352835475910438615808512072513423968861326928581453254911272520858436951402473188709955678021585074093573176089539304215382581534216204288056085107631494994486539402094587881618948199349500009961907961823534964414701034154148618016401847192060028370871220077188792525176878523420599201972593068889230460290541429825218514830957919099684591007341525798836494235139204218834465415464889210018291422321549958140586323423172630759634783577690906444245456101233374544553585679170365103583059068775150578002149689814115126533613318211418460837850304926540319924246801764684205440965096446817368756266763873948004268931990504273257421474182435743740368285244446986003719254589884939269063213280467473031907447843069183119908898073930631912758719258778277768117037118973956639084038675844204106187587308094411640694096088857382618555071093071395803173505458543452732802908682017538718590651999608534651392969996831368990065785890162524087174144548221930158227261436931723874174520191236815857729498361836286629476632155797367855837272528412737063139478972776536696774881264666438612056022883529694209738615211758609360498894137245939779586217200678250019500155195996454269876980362478850166856997298130924820579591250882535753168441331410803269451539769375970972242994093965557263698034798039470933545593400307254370004691215191736486188692312787380559158821413602259855455192055760585451103825839229998982789606687856612011199007075834517520097780833939584047504317496233680411022520603867743978105154592867372800427516845033498274884650570718499688523040500505933956402392852936700997169033532066437932871546214233293313371493537418376333629788767487035196975096957085999517903242248284698238980645651591164340154758008467273043046510723795283084409644365830073774626654452110051139165121746543324467232875347681623769791858950937090481884574200313130760209067091248672902187729428977223476189836358000759711528628920605379963227292486969392564080161366443668869721338507584989949292135116471977910389583681768226053784545355377434752266647083833150162698048684063998113720799872486656982497749754177881930926316973413305908894076713722898657015404017417060214127490348174374515270187014828390254472097957068572093893732153122084943351159903577050778433866199924497865364639944855607093776341023675434789869333664693586511988396067204109107701431338325307179015575584779292430383251975615517207554526823848507284021832341827627516598299808460441762313559216848993067688052627360438030453678193112036228905733880628727091870846818055934406878341906329826750642749728602394769395919845198671103854809860118335895478864165357819606484719445506231524325769571394073606006227706496298366681760377181562300219392163433545733221591555720854926561257224388563820327234944952174657680158251937617579498965716394206519257858842683689247384338988557299062725232817081347793349185712962997292140992488394015028473606220634138242216052673794654393968424155503225745951617170858035572960877381632077991974459050372098483750579258865623455934008903956233362144241460862201663976661818050580870643591896457373552199510985101972777159402127408339056234919132750696991911283020605213184838975884081481298033143385424948623369374748679521596050614735411722576873048286832334488062063986952113023931418674389991370982462942160071504212348071936745025424519146415605084314831580916328815529885937226692066713144372003937161389741546861305723216788643070494776688482807952983698394006113101485129340230178831276954043034333846349166106064784939620981914319752158225338008338054754267418719671918517984872117366210999189810386796564115466285099341877555906848460503036513875096123869929377429482508462947609367884419526030484345971817204024997386932434350352362926273531138972153202935738037542426052522889364932800172349099592224012123709168502467492169314539740453546384354144081505692550344226675941427285804332902207195416893979260534717387656985708785627793626195317774240173384286734083541134814824491827544144290994595559607208508558211615530910272309378653943902275307544817558073706286829724415249695855205540302551257731215503730821676484079928974421176804715451507737598474484115003939257402084079922536165243047013699717825297501848325107407140295052947828903922893022689310896300544388460084887292710230318372317935316266737006630339910080418607631138172308030399427088311714819245344462577387288805907313076489153505987171440270854973514958204761625164504422645433423188535240909944638366359976267148773253094068439200439139072255324636461736273400074790036962550058126784292818893940703327717489149324950317839204600090186367939619830185082597168083935726415481352888275232928057903557173470674603836235902258529099897780121687920891146038657451140876608049093778187048380575054155516671387776171195118649174383475228752438683570210353470650184688973290467500319562677956658446315220027590111989837050651529055154701096931680959028256314337388714642553502939868202107487403176592762014466498696720927940111120876250217149818381670017391934026068245966963918835671453723121357166265197686211520912411793531014089448659948587050647741943800069598244348055588363634949772115108063393453588735157077798465566133625654064641961673115066983583446731496473318227991261957363821476592117095823803740917694868801340580481471022331508158673339000944221309454236657190045499944320516577526289327145288830492997516759426242377899628384121675494618260542588597841813472849653142473061036296959234371083332599793340448449977708900004718796990070570345025787783826722255187509924459764117576843684182308741261289166962109032583488195331281007549523464765306084538159956110372244596921608525658839395949939143524762093383042676787656727931129279187253404957908504457239500762773965252537519610960376550150266942178459344587715267852892816222085258838269016955790932442931296616478581667513871774382808213289051181752497753404658386021734688020969261895858816193779068594990860404720267887791567597145134533550523974008883750037047582868907559070045469457320687499027183182691569271678144324440909264643584059036020002621112697768396370373280029028331088367281405901161293871898469584110070307672094657242955499505990721373634793954080558383242317705351855407926657852566842820943225336204114065247789746181746412456350259018530468536591085369932987228180906585295881096722778872771512006657495031664533971743025865939490135939932354697279284051411132957569944959464170169410705010147110703657134314427257621480421009831729482027246761232616043594238095687853710670280166622747693936829434711081018500639483942272895498348377745881089892092597872276848679676948187641594730861414047906270926300390946137676334108345875723235151167419244042223495520279503743994638019774513295709386983962748530705019144279445881522816078252142749985455001640456728070253865862920235052409181214596559283944843117207010887579626773293059590013372847454077855978740397202739322578689853918317250559862134357560719375147342198901640350607806340453264033646989572110443781277105790818745314480166635326823234148325362088146384993591693788407469142547281284031816003718745428814162451014161474791885480741210579020830156602546195729211182440892743506725582401194677584317518517933556227214622643984825159330592414249439664570543314712823945091419370960188330098252458716184235648412666282249095581935643039712959931038301590799693532876378416593003813158165451497438415556790145651904672521125323031195706414454492028319356885608635691804718282901366623127550234284792280755521341111178782106483901825267489976736499907312871447150783059813957327437030973510241014610439668820359350586264418802489950931551355009529060281629781829075993634793858818468312329469687593781029417603599384104243846857651948530374510426647370728737142084613605459562153149417550318000123234475516342498747940118891024266746214127645859083359388021400900668281142835517452525983831526122943255870166232324873092199514800384041080289404191925479610047186622601886969491303812374746518669381229246927497152769590685739920491206343860600222435068838901912786268191701963803812663880766123625505305509197285149327915493649032753121365388228005983430898015074789654832649235974832016743474810064003360789743112238740477619256793914906843219440568526523976140839701280501966463260489140229545699737695517351216021167430756568639341645642567382222518192751851722001052673006553477135856691616956561066555423427062513881833598284391460403429263396470071680020414378545138617149423683984082010449796068561080951400435576777218148146926505405794904701474811694508502737393044971013562855115881885214639515060708535340877709225497569133448466051726682585249929786856070146466835901329842543732280384819214679410997780500937116443424434478959115415662533449462070081753921036497047076741771446523319846618805073978772512065296622582608470762853402910284714500341947344569419128760214926520071236181001723463915320928784728495660698048950421185795682153394785500654500092715780125829236089663085466702551585303059020007388029802091095932780079501973578839418306233275137092256864064333564674439996870294979031307107579186663621334577360560565907927063286944467246318432711064903767199135647913504650282005986377455623730284355875400728792419378435404954656496510344674794278605982799411950372138266000970394238109368752073778861858491862967040560101514837951441722526572984414212692919924618238268162048766692274810578904946169972387508868138537543647025476830188157874703898640916957072738504686418253573186818348360963632048612487555125368929737205368472482391335294233659809286531839955272019955674265750621678066745356501091387979155380366316083175909459476178306662721959932493541675614366342805124569283012368638895299440567109986336887451058945690722283079786639267643459404086887668623642028772974746598776543783365096754184143501691279591394378078151443965345285621127145402347962170571849913208008318311471160436988580277202461011270432659489997668662819888414121815303922894148382818057607783396567036084813232937987930737543794322333369564431694647611400968030607731756948458200371230884894106185189370506880981851821685276195983700961332718625929197597052457167126470216126046205860739624133472070594285243878985147169294415714795885093733603195258305680031000949420038676770012980352771993210744182839754856290886893877863286615195561371632594772207756480661753314351944685426560654124713942679295683123814325397714335192623433170241701327513719092685644856936499572967152512378884300666961447002537209285252638524132826438123438480187602923700169906380634643324076788685574742832271557769723176892363736244571718939415796299189020236071677235418628941674886167112238165989198555485307503475460931216471005032928191499872107142915452048936748274344612668885757463781923043923022913203664208676347192328667798427611838323663967828747662036990954769044079032688763972814240885596387410555015679071835264594271617884622093749512672462140990978196951103333747346669040101091135768526990064331964280245294187093129212403751514070178446579158164845312002248769789237465571432374372791273274813701476477141291356821160678960522904997789895696454108310334840301350179457991142425224602424509877319034596063436665333934581360813885468906783318936083132925292450282680080526780237880564279206838887721815896059899515440033805235532870278212316847991839684653816702148073050762208504615590214421555569982969055191831710544984792550639808353539296621771122725163032193930324937019161676459267306393036388458249477545003803920881963700363838964459076493058767220227458462759764229759551400716970632092825473270557026295234515180256147138200779374049488438047483178758306465431080404725819325277363329107102573739753518365356067824524246961998222955298526052190414357059981283508705529375517647703269304663317952948335497922617051030364430694282533865541829707206636200481567489586222992537670873181312716136129736520724209328345778357330192253842127841181777809324654268704854213444300483808796855647398155990300906021601326232206873135235182048117778552610023585294134249939015157237605525956297283045210956878748564838973410627166910764638461628741680219281831906807770962287587626718634850376636105263893163514889644083689913901956979430679035522803340114548815844656835786634976501509033009432302685014740776424565299632029146192288481420955953021071158614047750691222179224536509137090154053923704090956738856387419382947214903671748661989971232342505241300332033427621789992714457501979963804388988790983040360981827435299299020917778338436123020268264048873375547435001680849243082947108228786319527314099470887224869526088369499410898672133870149859812638089668380794848969103611375248384794514599154573269490678060355640142867650135972840109728718670542340825561510378675046785388567766087038472467940013849363327837424613639661781816674981611457540975628888893481369067431177313688843392937403942797836500671372161401702964538063043845658302157285390543044854374432864093636108237792097393681698386898359178123477140672329747227077177675428055870874149839484206488777300206757789278594963235182827111513525330565872670395909697048234536838753682746675253262534247466750391659269638222824039349162994530476801790838792168577451075146956421983503911439454053531053788013926768806350781809330733849386470860596460891224343827565250325472772815867017792881466393207445262575938778336437164021590955913115454581713203333221153099522982242226746584723814638344697348944942380567307426979418933106822469836222546918379904466546890385591074229915157758956348095479258069804158487022751783692109574616970076025922639511164564209484261403479633974694676876214835550369886765080141533511612707464774212667233063727978917837830052849306369447544474249055529105121149502856184894607597527950926557694270206621749672253864598862392147302997275959287008552071034528399219987519285200088113602524371079584069209007988721494311719237452836487032617387697961846017591545179054695371243933689730718554899170890485118150206114670018532922796637253496293129568556020671624287268488627332067223345082673482751857867274771880956608348196865417394151079732350558623038079221248436633284904368898703472895220371943585358394121515549129122438475376495339870396919136801211791878199867749034595248041894383322523226491869988618787735563236400999416384578398497292632524427083125111116709832252484012673920351242415443073341862487745549036320923939063815381802534207460321090453767002337067472322911396286665991238971147258143730750193917221008099128112944884198476291800229702737532726581045077003321429647150877695910716904561316448807280652347909657537893774763170897264198291412262189242440303718971288159818029234082992616465616988139558375301995846246269345418028879330239148405660754070850322766737388393637016015727875548050700043058558984302566995358887257836519705036207212417255964433237455581252862279024586859940926059539998058945387127943756913240047987730608773759638377333322828859516083599938593469891272820513035000087005233923333193233872997613268669964830049274800541379990011037131585312256698635436847354899182315445514768152492629799201090146784891774614632169461768148837639609680599719577484555140230629989595127662711367693423571958538470653225745623849307254911589575045983559750110022361769802923183512745325267936673617249242519683119588710573466798244010060686701228631144621861832116509290872951116551714967814792588300613501046228703136126056084319532967734442123555286553845964327319334352672563154120909349508899796738037966301540180745022649111421110749670596821019033538854007847857734873599928637319959339619288207772579855579824876852740813647258307852585443759031401910050179977105393811951808987395811540998927304441287092507822823165281271861067910184737572347821362821346205500948509142223366428786216134757026165712141537733356841469765987131956948315707453828152760242493924789186637371245200259368848974565976400037115369878490536614821412827009916266722426907679008515118088297432074290857576717539807166205015411096563615767285268646911521022034861274486046691048354548112319992528825165834501206082822791196275870497407100851578247317684774761255630244667029690511353738982063503392480374848392609693006640959896477267590120344978168329995863940800444271925050665120575986043459111274685496077963494532705327587970726930905970193443030523068695981005392782028099933195835860080323095187340372420213833034859194237320544920474698611341571642872872010753057484810680376468457364824859429767543506305593399151652357880419000802595544780782830846905995031348348464960646200659657046609644482361612376156879641909957902654533928676245926727934925020658904112505087857837691669570182113832342614343081064051930485595443056042327563384195005434207810694671912799984396166313882913544465371472862353901769194263889412718075014270588125893120917092268656024174704137127451581581890445419559953080791577356042155937899214046440366440167139159214192342099252742501686491079311370178695932365488442926889039388520293828168505203761792164422250947817073067138220701885827601513725989801171669765183776644831910993285923608073293806941648881992956465883797404864704286488959885907327068826822368506984038905882979317759363986755157837124607056608205370807560527371074858714417621343330209709416389453683428749000799320210237624669010856006512840234130889004772090068505254191169322842810747803895490530473564483488765004888995871288015944350634155318915554827076040699156734348804666516056129372096417393438430286207599446021024812048106273607560124413898898344234110957635217239701327321666722526590178510098591740264814918906093274147217562300155362607719620283397343306950586186464932287492425831628882961704675808744881318692798587548278208925063381881347611878546521333899342706425987370667783149406340380571350761763237386444936992701654832661883178902284496677132219556854573481891213446613911289423488627158577556972398346331900932250358782898051107663954696967670853061346140078414634026285704389659820388906123237262439035931912590722857305151883260978754960928291048990440789483865391639086812809294615853838832545175356803834658737619279564060505443013866247239580439892630177148017348765858226916162421948861144663026503903228835442325642246715689349141331951257779175231826081282059009850064827823035219566463111726090294342752826786274718382424170513150053139066570926618093960914087223640451335510353860608135084966580105363496657815248727966679911305835324942884876619674618140691446543938423164183758244247461541744360143353241841334724373436644955202850030897412471977242392103117135520944266349696567303544613139960978045102404047606024409390672804441742541309648993139062034958064234415101548555052882255397666652636123950612384962444183739459669021981493206726018767911456123424362897335288249250309303177711219521834332641135828119626119703996306454809098012398327012357090500913219017371469844770824901238108419940270047511868827837640662366690091067302020037602754606955237075929850943951213584864847521227165409417662128712782607566008054115786919538246949446585874788860431800171751615055613331635742497120891905288478074442901368627913555899251970943193933058497158034692545072581661178263564808510403735227135990942529686257868132828462707592081822791287148033831489844960117243959964474516405148715651519084018778070353068467872532008751999665255714245128211782417908431180712236645308965525067370608435195998308565583359449444480074942806711879475282601058585066977031842334379118611724023758856768809902694672401641020347236298269605350832103006795111021576349185353917408986758350953820938398200969478237415753501278063326399545569479963013106891106305693773097326217271440350415566470152924779330268213043217962621672770268562774594811434134360086984982929772116045370902958623935213093946232328862946785774961691684128740613427166814084721336749477598792190277847069746799759264879926573664921710961852813958073706040461268904301933285726684638864369015013364764291416496554438067101011864512021646662938223170347614782033658406192780859835257128854398040488626051900847516672496764996661786543320247242872159922529105014756197842373275072803814320213758021108163662620777116008179028007754312744549378874321656432003596283176154766009150386104389749576065792836389038052328262620510918573861588738657686838127111904975468301548196243213318222959848658189830841960543479372517177593746847695769403734150650497629272962884541564287626454081776983464976181267146219584016681223564374961651216531824605602396313690229933159397232972827062430165326060996049665450371465477251666722261841488110939829806561554464861373815537388717625376293455902511121470423304485257576178426881529808089899579037598513388384970511439657337911489360100943491071475588181814487340297341376573587873233011837196556049359055189679299622544340916391519000583899989565183598760237506931341000389585464958957823025831616431067254692423718441210610850376026736872308660487566220772736450912827170184681127307795946419760266349796258443902405023253768742616643755660033457290135251787108240338025094555587273702236235745998751994246146263462730469505322627036824551247339550226422976889220383392094890245105606873680486564722613263261490771355043442389859765148766796374174627993952514155763380239572702285732801635907907937922653389968512924938068523554507243465850696162896439066779222687544467976226397128294678085981211008259759276513405743650311769135878304174441811830566960360623926419504199953237409459138124790261781441196460780572871977707050496169048121198615446869033373207010638623474948578418783568283382820399584264068878056519479294763185456094676733386764718609087458064522974624548477483026185757716602702772012751942356218186731528140385368288104562120695711098507289427165137655240689832524095966096794317551395138754229611536133425263720592036081840592476180240366492075520064689520054703481242575639903326781476526291548166183048222849995746867517974072825486365986014268515661637974355218233057418462671864220972190658403266294385446175054178696877640626450082790610465314868790641928771181831957540215236845933992893508488694442324694323484415342464039300485534004136764112393140352672343572574188473716544575139881067679597965427850260646597920726541672454636641846057600428714478101611435687117808150865234573108219089054047490228539424136218859923891999653145245699790075631230207444396380039658835365632500827242122299696932623828245675064227135914677188327308970901527266657397664430745911183124715498667822376500338381781766758690376946660047417650058162978738715047042888278662547212663903161793771733474878737518361660695360149714233967032807669083358596720030173992301134696644369488541880993835513779278028212362599819819433438717950351525970202058692412694957970122564470444737134171994676459925559784649122990147453161945054291348873109995766359391972070127271990056256535718562573859660247327774864843382782992663646839429517601626423780701629529410424013545894700578542074969622522956307817455940652916169189397745714348065351952856039855273927892407464802222102000267209006977995994065567128744069804242847784860770720878325866067424156464121834894992184390711588307855566777302655751353476825505685678473800721768425091144862050046986165345128779304991424418100910380994681883076791865056683995282413056201498954250961374524351842214585927696153772153428187046110351618401775671385601958806352442471907972843245847330273956414031626821257751068965336494693575361759331078152570620878004150152067426699082523604325168470419425864083150107662938908914116871251753254489806560249276076873111615925573433697165781450856876426578619026892537897891785613152485256170575276162067666343676162140004428595206349273748867434817021492534831033494382987146651755769654908257108544793554114126190929691495160457338443728593642090374724270430587371668438354675703536728759090513697107245652570718310383504146658170239645925888319862930765032890203685686967296662395913908695822458288259470422222490125939958233030994729195444876636470606195671057187551832071579524554531884679385804020149552204170441658312763599738837396540586135498406550352474857650861908832837673298882030964551786448501585680438258174477898748151692860544969084032785710522460338042340805036998803949916390990854434477449903762307696616695867275606167139989292898759972474655568061593943110483620104870353230461227365320545003424980897139484464850862877486184130480688806313643620430488373082505333258517706012458188680566002351750160428979938306987128376625975223617308742037270123537227124545589458941136550917093528018908625614793769413556084551236387398066340206437287728641263752479355223335363717302138914456927548229380634895151177414154377662280650564918007187773127238476600083726344762363080033971058216377645452105881493401087594455683360117449890749556121363963629942335821398240561613502635250355046015649904169005290444823199370537584330016183864988191834734330035390702065313516635933246794115430935001985705362789337160241245329886782740114425053429656265171356738204874297635702742654120502137535849029704747413468633199585112045432602972419363703830811488045057540794284672048458614530814439009601293392919487574489298417372810250082095430376129117373301484071781065919878902855678847322846836992492067428921148848325342592856279379480899028684945803589722869832348153984810704384117510787221426960024052021797004814139783774657562829887316969232267816037806422008986524578701412258312656866307198245585642789578774633550047567590978671417037044341164576350964409376384332628294096862920185873696312225672796957882040253572842685117448703468248103487677928268842496617468166906931962110014528459540797102719630083296910450987189332272895900624961325006005980242405998345271050992209422416208306797927936666245559212645617777495554994174165237680967483341308795820503756249190382838009217609042300817439774297612609905789001347313836641307557802979600099453631057153459137066793956792542799187670873995665151426771225761506247586340441155722409195622566044826202619220523794757378730141491334646515940877603220073316268768433987022806838312146158711561556395159430775396807423881034250361224982643557826857671075919789171101289164329898145016632223978442506985133736111159140440671716800305078106721102763100011518769625955497831411957545919530969166618414252981875469372875404287195799430216639983022052084944962774576818852581327360431712255220365627893056313676467386375369990646727984736562543854595269461348997420415627298854197571071950524278147581269637506896085168496584730881289188829315648385858674799759902820247279205883825741586535581857121158696111405354647725551326937536304178041033551496587350624705838510168670198739021975806471954837707967601048555373662458449726853163471293720458244765055232800565359557069226435237619101776530572218886648100599826705053362543670986794978832107247246006424179506289323135975915140153954978212437379465089016683086462940959537580928898827715914132352545059046347978917764346833653349204720901124928887903267004452264719109886209751066057202843478591512119556419942317134411582237038748307695763768046289791811419470070876671330636855994807592430537199361399348182552874787746110530330595097263476904085931621442766746541095840918868606496557336093687884695301318958267285305230722286286918530944604111372576542401858374737438582181865950426977631813492579321634010106612326338491174580418446257457512547728183196404828803886875539813253801622769817484486673873725488805330002965671369150019362676447005229873069564386605006854489190760203889540436647696868180668454528938143161368522534503042174835084593885056054838036312009637295639997361990168152141566391915791230157294613349320339886753416077527236688247540749402696318332275576831596567366054045275251046448882658632024758747891803043106647880711278658850237511401500987280332204944182617203812946946357773512524771422743171585128118930383341436170325604915389111036901817950158868455638807199313722641980101842907431430286931958742351156784635695249946513587091367369933482143579315793820934452975609210308404269361730912520260814134930813128913275806802094181965718579407139966081081060697996654690647329527530352342999448711384461745009663267114523524518588812126707950276387789232563052882116164394406901295934663116226247673849635239611975023363554233189833623326610393497888052276681820456572132266834252900738803022374260349598192679850674218149484245623343287118263405800505501334400801412545552753669505852883776321546384682419829252229066380514264055904772697974614506533384832837385501222775083352811540728055637282705390907301554051103144315270230273298915053717890752225571016309644859624234182204031336946553208357498781564126361042766532676534403426333859963638357899555090378931153682677217313346834771382770389525060427973988117300821322415103191871533883591362745110176748825641323200472312796379261812016636695426089403492099665628254436964908280481617257065212142294281094497588792131932732837864055556544086737418719478830761243788551129189493279753453658145636375197682767491252157437394402782673608710971634761332200758313338169535284478533476321818645897608662968606461852296167652361293823395444967135585248296569520561709509581933234088011968082943547302304833217459771050096927949960822995276831656922306887355238074450455386116552340388203183456304650061976481569584094270421304044985747511223434601985202845881189518342910347950785627467453382468402603827073380620001670711740592826139294002078801491145323101563888011421161139168525171963593729950547035599193469295200223714108315462603086271159478791302866962046942132032734632814754792906460412378483815259202130673324542820477027424192945386045163943431696960006625785305746539066439125072883799825503262456873202337764429290021582168486413729450835646654183016518912779838008446016871190215864178536951108967119219014168690437408880850746882407464178043821991292630038850820281508848051030847334251468101048245436116804115209244653870074685432861180485857774710681643342288344823224809683596083946069839920769103159682439157224985414726905238856988343281037996495592094967148449449328101539739766429307152588219005550121026785066997280350165038978375501064564881842938852011267382999008579044193894341663904958793558055948067776666640339622457619447704345620297778701908862514582583667913142063392656219600652870076378064054045639191380955642079358479118746246932315744335110971224249421099535321506111155039274298749750413535623982549407317954282246355470370394365856517320461931007824962099670640859429570735979104637915730546447759554136453376799765623872186395661230041485716956996896716092008985278790125259727348056420677182820517269065011988773551331950010342001765461154445241586445468525967954543199654106417420944024480396663965228727128626992698104509055505281386612540626833496882930110541753987331087240847302611729772956745217466698486796329307432260509849981419186436215018339526688315815037702705829250084801221451041494576026326888769349235493897203282203598354696562185509731265953717636742646465555130886108294264697578239852728890256236743521661079477621293707088146206215618811844684848289049043932602991082304690697630904617535649712803566953247207555996710721667744701676477555680007855048553779010602392380518753841044468035004740816228115177489043722224645325893811373176906635647743929756278364852868333483196273958104082130445634089928727643026512777844519704219498472622915823576816607036518820689173816894304987393891580793132468165039205523856073255033772034201209940295097009714818410907367558770999117642015749769148062509775597506189712397006699159484645239095224581254124488435013008888120909534748201382236888932630529301871521908138502337257993307694899297966755872216842164341460147235102835533327003210438004206262866784967998219834556307273360982861195735840277782539782411962977043302003982404286167495633065527747533381283271298756365962198162368672553758141525360661375312271203153787293522033234087270946563316411795865425768992190776134198246210432727384666146094075814223196739773717976477836045801709040232915679043910404716697724920164789606870050875561978323246748362981230560362994926323348295093659120872687082209919729857873079075360320427018368052578501423651032821457300188718444964597467060756287129530486502614440640080961400896738998894833895983325255132309647017488285426636634261727025835656060845250166729815035398717496506262512592719975026555489628750981968369094175193374710586208169600336732935057624780697780785493585961052457830567975574120778346134888136577322071695265986984650941058416391011617270432118312839297372048852255962346720274880160958780236877688611698058222049867130027935986241667930689255833158154663314876049278283679374975864057120025416342008162085837628275106680075233608101594069308025078281867672486599478707858647251566666688481053273844848069184632207573416670558040966623881036925181944256444493311269923796232825666318593572569400138221986450183226771476258994740571062439590795167142381038690062427526974656411634863663433482460873886179174274228752427563405491993928973192709079251960322348372759601214587216441534386713419978264647830471114605136732215330188262476122426659019353596680908371883806530769620431570239482741388569558584145873874452084702288462276700027968407993083498654750133492242156892094225317508548448895436244213871586969805206807948682868801840917828272846901067165749014606871233706709404858918092805654295487342888812725706168965225588448603212621588009104684129336912566459415861427490663326164150360295840072729562332007579777755786969560662649668900131950257508610141857793718492027858091942658666124721544428376573444021084949852676861540406523777117842483943332873033953955347569609505314064532195679430374304282700253517224215680422396697490953872312028465131846608297488045337919964402942624067104283466667487804020051881739765634146277762096575629470598052460134595774050116145597506270816346543478377124881888834614322449674473732249826341901751931975095458563817006872909362413377781946661951532996743975674851752268993963288463476187094725968154325994760487224959005101320233525545659308921072626808830210421811696865791698508942109389089287516841868528770649406809984889891715762611729962119218330576250447609536549684669952137820720211100872058261573026016761643803054713999543184614182949452171214474694449452367400394654676703599929362385299782872617047213531918988092641219105225683934151745728482275203986476019338209542896806264990872040672604003959736521245063145183244304670953892460735146816127872085451231638851159406963510030119433641705777079186712088149418703002493857781014328462841852903055899763728294682425591674851733691822644230560422530022856656192746941223055967160479626799852213994033466340103262875987013780690082849285422319961141503512215731726309490971631709547525958990616577115897955249733188429224017570016495964854667571790856119325627505260786350045670929244738895682756896635439495977126252512674222084896269452879297866376043263010567279942033976064471197062272522550064417518084237985047813336826687402666756598218859951403138089482325323821532608912560182579483603067282381532946534936979621795645698602999522916208044139154445985827499661639082437551332404363679932734410922225332207149257470070542958366392445220079229244166944519652586722509793823918831001774377189804536573787860584153632971381938633037512599785931162625278333172599740769440565750551425039249688178655995628583077190583149680339485881501185762382710568344133376676778401220880855946391222871157165518520150279436163882246652500290490647460937479713312731608198745188889031349858905731549662098327934794955857798809386826361986023828464749776882265323873396184221418940844418868121093701397000480916613817168111489223869637007440717613994757172275220281584983446149377394581845276244090952066973236043284826776325689958104072422332188315992989877522420306322764913251114829532855437432189385161448283245839891800367325585231757920838376658418326664309742648906638097021820542716660156224865151053718471647091944629133630214789450374083023061594185512252886034507489127655607399359091028679691285488862076335274369954481494844822452358005096793882211841717159831305779407273019359438712302984822431305505158438225947353762504527601111663705609846019580817139710496381614645854927649376722918437124521094592831689988869905688557590606849775542741074773694877147829420607532595068092079135854258623985488577598214573969313677043824833203180167449362632011055469240567350518496091639537012159542219705040006983937841537400908608571768078430698198052341916596120107266087517699856191744106217567405161258292458150156271004218301622153148863194721153826206460883861841650237398115712513086602949195606675178447722221159385500881157272391902507986510960721450815401004084574429652218301217725589620282629920251683542643781830505762700864449940174802232413508668353913330293034300027700264658470119489553535442187102850591830100676224135861345702447771110334523850135396071221449469108262976024796701552527667806618794255191959903039680660207936459708215018728701762667513613521105144049349197670104230786171195430779448112844619715527121560059547934366474427688866088036065089410172311749836529068167869789430243293309975560167872700608371147776986387381212620192562768899382228681483505529497688935653463131197247341659117629905550749817041635336122442003417782248104918432272572019105695136289447596433261166367576715357097882535802771106087763717577034516430652099730159318468871276321641555177071264627655805003300381007603211196208410897621510934035801199091680706549346623005819395204051169292949885013015189618474495794351135433566287507572983164190995613415789195193965838243291015837353832181994563931593528443306826249765166461104950216893181715014022682528988708706932168137715945918073141256464323374634464822197290600051318521822066735804581151776214610309599156544013965172389999034654567372298031637202580810268090902332730001574835280767068344124823008483133382861498693414430491542838612645364385701784034127684907844037929668515668864498902927393394804505467451772923490378956445126206571423894369159155060579212547483893607151915991991363449549254017913643756084892497413590924427296962988744760974312060711922235942229542937316061391116518568919478283328219564679497327265174637290074714127301249454705821239336740252117862693957222591636207444072634966955283918865713714686436348055038388872836261423771186368799011168886576082429523746493338702388389393909580406157770637891930172106502064646225241935097761813067343943958587650919249917203749500809963935998683136675042169683089811490778018702502313773095931919044790465907021986592616937697660314575004384193006767909126643156336039727930578916605863906460219987768716356661414341424819855774564532160666506930311883186174862637697539858965957386312215870050837417255269352942896994496853526290098657064769793804010796299192153000348586642999506871562966816666341843939292820151195925567590835326985169426758256021793336139962646016046377070553052525429875988443934646743600528910161462545314998134525408307536953245742549289425512235292737904795931976144591039990254099682557405022397168529693851182484965531191150078905567268577958313884165799485385300687067881610395033584369192416041617821939296844472393872543370778374169601724213816833359793822476723802418353252470988836443340798874807192076211241306780245505269606787144577002098700828655048279697302684269757284864286711256839918514138259867943309045172021736341272686846973091405053186355850187575752214468859228096186829440028663317747386858665399795114322338637418319587795585534965847963037420211118090847607781269345159448406047491986839812919448975354423464121235740944852534083105618284199323125428197356407874801057765903309745092060664374722033231096868540936752917973190329698863175072559061189373593610148090699247588597286295346970155833636033760270893301899074371582677023800014577418699769583416023068494386033804573095437947069440091460622329881362892551204291483064101403465014639205912485435314577499646682455857616698038758280629794152266379499302338503860793404854997330952038836629473081883650213705659226522183572431462285054263829175875359788141629348637946221991234903460196275252811174908090784590031175461116877884522728102564018324864588228479083908721969685384465485817472995789929944174788750000166694582691789478499150624307164930286544217375262914267020229322991309461087480499254611384464729271601684390957204941911538788683743248917564378513997194042320564921572642934439818081279215691410525285107656789492598750998286886069264562321653808022638130504305209130971570896552830499081023916672768863887566483432308227674751095704090449542668285071768600362231121772552785094394878393876894267778492614868582224632639111219246957101670246651614730360005132899307043895593050271477708436334577386303917335540368763775486354150009699795287899735946321388732622144945767357738065508481725629099479927173923486575832688321802330075794416488065850866951475237686913917555532971250594020240118255313355636890256941491996320413448369004856469584642753468885888967266922611250286081114819790325949013733482605984666453087481549283662313969194950776519454803491556214515072774221118812450727071315924542565288895235918765101314764747530749668247595495111161471477522962495598475067946476871776150806498648118735258891572817377460123293566182365036858606448682923294112764835085442888495907663965979178078099411576560796086306596486319895668854040488314075636469510708301991303849919517935242025086045526171908634709655005655265833026679335734148711388349531090635586554734525124715116698152678981971568793385867951361722521176949178090819366263275243756562311922284580209298568286429288744196088793076315105132477441335751154476045873341232191838175084995896083484381859605938302746917723024073215502493811215021427411722532479503233259183167918321522140879269955189613785798931489779870815587128812753677394284308299361627885459285307315386546975312380192734906996745369484728904281290186762691560448754239969586230288558727751057935000562760772111867240209428926473053862339456388760588832688941968041510649558012050200960834189928936671565611442013136745262407349891814764443448224576773271133146509507043287124131882813932734644612727601599445131144095205828932827976739523659885682607081536797438091012685039827513938690931147018467614951823884514273764370010333692968869696214869011480472111104935088513141266276009719673432326543993173366760394271298722003427055329328149830539718058604352307541660809900867746472775778990714413146281125150764526996656126448787505152936664763180492282615974617888691291603371755110160507310738326071758019421095318990541790016700357823156982644438201819663600159469990033188015592333167635632401142676211341076887211851472779315172248429294360281377200000692660254154834406776890690736902471316946570813621209500277663260568767619317577978288597329345576161389830447592089575841160479260220874385329489812566825815994862819943202441970175216897495941373377495668460503471484455947168149403517785968379479059269258623101551902275703855754177565951206868417155745885621087842849040130327894387815034611752719151674199198050069724056205311042285614100497481899766000437338909474663531072142315640167620980154916147281275657771218278661220014608772929244638579860041629563678015961159165138469921708414683082680750076125254599720261361519094403209154831867336817586707138617217195821170360253480707225380047683172546416302115494600559836216319509593641696646859174971302398944272277846835076775749565373969683926507457962705102119803720636151385353276718253477079860051364785921869638128209793662742312443101143402234593255382504729569917706569062717290609905903996774666152057143496190230861876296703289889927048023577478024938486789318599475723728490702635336828617777473289081857666583432743850732486393345823767306289762307763775981495274681609431169674991407539196125179436779694917319798575194708329792756751405025325624205594748570744949633105743137987064687674419708067281091232580686582281044035952156609010379283261611255591981402627458777582315595821794312766393548373697939624915973544589787647531883287621594308225242552884103657805492795011028509415873706640862902519646246147687672806773692512420082684836767333285762584526579336249891966126205898253234615455488324946877788322183862009044884516264990721006574235724059837935588989679674855367438471311968002497949579220216515859574052689023579439110089947082071576395331495567017380544392536338733926592519329339217522177405892005801539020176415999934605449518077113416622185067697771661688689675754119570553164598919612004543645739064228416516885567580203325308938718378953622616921405776974332294224915664495995446923002641915779549179312600504869874944031833044002380789812046679552552785148697165020300885234986721383610645272993962170673148232023767556658119930807322930465153040674054376705262974193977930848929228448801825602813442953989026093853308337632153445337896547649680828021101518455184435895182919274400122557104181597746794858941940716619852411867158232660382393078065457165242190895892992630355024775662921046738943982747716218341151547189354464211153658291206008107228639320434121997172275673708168818033581236448820670350331318713704574286986290822533183691693050728273545307092638802482725639316555736013200458349260947253502600369597231380115407243575217632183683314840349937950691459708190256450929387149902959244105766895652072488086701262400231501244530217936297491183536380093065997785298577729931969942965629745108380433340657029036340574270513743889288208592679176761922516335539944776633026988393264624869123615845249056234366381091841716668504117599465097668392046094307185122081154520034304551274736814924705742535889501220873606605710450803929846340131300305187889082275941228820400360511891506590876189048149626937600159067082533737410098965285546979436916094583112464615844169703698803270748918171063235658897222763054914336402515794604132260259991719470272277209239988256709523841238100110536673619017706110853079118395566482609892074257384436724311784553363906308440900230826676618368173167749702020436391969566222772883760652597322894574524931515417084776213000998217221028386431328792185285965908442789741106088950081273106860323662091535670394500475158698985517858781127642515338453622496547523168804887353175398371802515326428288273539468854875141451045322706020380744624574406664068831507900453939064718980392730832289506489319409639534520876073618293163841850866677588311724432030028125982748139795966062739745867044952788002451917797459526618557206573052562013626619955028697597080547383435098769754354164541142599994262247400417379356056884701840701590649495260752290558356001624974798786175979475935466223658803928894459360757531704753858007071856809500961506672201138680419049987185341444386743919903139713206273326260689094181638494851302829309848902983386818608074718386480102176882357098073296672454412996062599956523712865452643085482434250544190850229860779865051409696690331202806298400109040888926032888013208480756085626695183329894611346236587669143772032250770401494111673948278228241989767413990956870055976937146147517366628706778550595248261758299535217551637918017368379912352299657904604904214589453866393467063853144099339033763196689360804084186176001245936054258271635461388535723896048192107049072944215923895798632389920694668520903193034142469767430795783609717044476221909547093078906602906237113192021293336500526118944338611004436751736648741932928146775622344297126859572544598963680716534074853270841383615273456197298146731019503525184453349384746918050039169181909136788043754908968277726835022104416596915976354810499080683741101182184374258601779430993578119564605262654802112350996012323773997782131810486760979899480489410028507353795914917926207432755180169590532926585749109268227414758491239181519602344572393144338543321323096263203531631303771813376992944180586771582327855471831929355910126180223620832080654496203309520758425587256727228602734140289904451192483296530033713767459325180936691119787111417822485863394006871677999085767660979232861426545068586406018902563310238143204377960670660330346285134102207844572448439850492465739922828311877694033046199535253835016154566810801886933313787561062950553540919553298611537902439099559385582389909353731132913867388979188040780289825790357396496809240078295847495407619362322012023846434372186595368303046433012028256331910967991597423314988203739904642357207862336950236422843764223532616079171320180773803210609299437585547734137866106571027557068879744246393577681679357050610766407184142452642024174830693874250233572611347332953974361757333215116196601030235006601687475108618663772383154307087118819372605086296250888107696184672801300222901885192806927578158523605310746231979612797454107777370232603584950650296573427820475868168053212557069536698642318054886928083895248336526124029452461132215609154639206023819719762226397023259589936754728133153889436282104863877687633506962621165388207741463194469582249087154005591709957639261180576916565646599890543761929600100432442821537333802482757300521535988221416175990999771833774061251685261967220288365417293350984184034679340570257814921341498790930367722475068244646206535860520855631370001028746241440044966832152865446076494891957922116611608759936779323093726119294516235052106709005812558134920148251617869581204322844785812722318932498387529558663631213363346582647404842169180934689962205689243912724871629560780035167136749490350589658024736122414171065139002431510796767102309706682007492458531486346027572568911965845437673633259562472660899995282196561051874463275853601957759570568005904947469224006728235856552955473473379115237163563450761344070319347946119066349497111353580631298567623647044429554407541708136228291394433351973589727279746220771294150313754721919957764676156865143078563306572459531569546370194718400826848517171103487186784260179882282844860333719547505733352568413816061586502348318305879773025842194295233877048957532404434845208465857091664682673683437222914231683901261922640836060819469125029470853868840044846145283150114383913356728754429207750452452015415071794412285270387117591087099311523075913008857862033048247742084228286492515573431767586898532749345941567626449603992066078892306313230625197817379069081249345530036595163416922155503082095905673040614727333561437982651130530543122571722130272213980933684437499371995138928042363554658260142045657433643820806935877928466119363805323889422646419714209333470557681351829268480676736984848385494891645980726480281755286021990566757376569301203336805531282481223360139875304570188088429995717308938654508945053971968554340087205326751687540890516187181060654679662059995481412514540364208814856274482015648178353896578402060163824217856678026692159208077761207149262531454343347036566469501813323220888458549516143514237286416358604176555332019720879640421434464681324294004472076430818157328203461019599334330693146744247926603430638010991586698547418722982587112391896721543083201666146815154426480857647326746254919473769080462060598277343328403051438847594318487767960598751555893574232192363683378693519038800408237932019944091417507785133574913520735577051712983406789231724868310469093330357956592255977767914218634877841293211501349225145619217301937548893360867872432045569589886035813965938435581048575132799136681645981846145678002306270875260554527312789448971977787061681295101275462652619462596645167636602234674767182644078158936593438599529536302210954801459857444373578227073578480204736572252547335152779439841222928837367056925814037066610617290586884618802332365937182535620001309343421947280010034472905967184784899397448197344579070027955524643992582474841564351496488530602842625961731957216777876067953999727620828955016569142192389735901447397120693593970152960577567835411694561165355053763292406218707710559554347812536777620603503697116902209165033043207442887031982036823931769922699117600329847043986114316709180422626202606961778201915889351531441520227929927787400733723417052682584765206979652360819951976785156156944607508383173078415660666843908761330751917044779611422117412762928472714229571970026394763521127205167056994557307105518138602578627600461689020734727051252453020964745947503287745001855368838243856822006437037432480673498998938987833376906468095405952467528871033084304831083094993553875657189760010650518406089599060845535542900562307891256109673760451955813323041652700310378478244001481336152992509591398000581495147872731836613237151040444967138957860812069899513682989959050260326452406736082546505657889880902338938945568197367228266265228055361697092231908205252496113593376343707357350222410094403883013198994299304075017578991894510118065730499071499878313102848099162006658590612056807936768451455767714821684087947024691547986750947608798338338537938332912768842205527642329283021851639520730238920509639262849789274485150723902800208834342623568647971103917837660008345522169703002333933304820094436231475473778254094213433264227651464322698244441895569558632844545214007305316648583286069206109932370648609591265803683988223962251620470786774245100500398732521040265689590580030620052615148117491958773742131242904051238069070167632100549370740069104339454353799031437460156510069322918145641764706559774329331776030539559461094325755127474067170484864955531188654504851625833424328703989632662501462028448902960337914535773571803583252228781409360975795072605826871365274121436743203810828086490281818962714332409975940522120655812611351465871950864900843109196860814857443784756576076499120364990502688724045561217245389048352117612180812057504145842073446401589650158761321296719760951218816367918458285422389977302779310616772744377945904275173033613206763934215015970517795991378228371899989732424659865246141305759995214101871704447722835346022529731537736612812300679242335055796137288633821450627443677558657333101813365016665041812832260343487289500762691741713637554400555436434525071461700793637456068107898170591588537316283974756639047478099491748145841817829554886098611874599501621438244967846912181558647381780594100838409504750494142560162375990724891258704563403966798517050949383880076245002363485117539750758918886856073096074379242920478124766875012279801257850130062999509919893930552524847102371214482981463452773061195113162128421139143606665647535497619352490249539655689785176090303727618820116061012985111635395690815601410367782636390513454951392851622669170108975968182122201498006163249529656609984631816149881563553240303847992714039611718512724975101473975967934914145114077644819496097377000110884082669275226860804636864875073950025125029366077533580100350162091359570552185459206789422606720944182330689785544439370037670248258127325115862183758536663806923254236494871100494503050195849700946811494260919989308826125237130780001421571857874800904114338753180980146930132167003042734645170452730623653399411648747418866988501832905468651663062155119528767864067490444194941460647714034108867968142549768186101178776328615784364709983245194070996006374819017593629700818842743093882132276673974856710847883089886975056145724415789592300628150903851784335906114910415018028531046943527975387980868026230911116962792336421240408697783297253946650343831623966050529311661215711074952970434818214242452755645944243370404786172769628066084967014182338256447789446317465966674840124230162256612597447128932991278304861484549780566007494866643244847360679476386180929317351119816484246308723197889359575581806950278498420129607210457047196660198985784621916562661314318469646806595157742772926192767737922625176452977141706763469225669500414149681745071863339692376097838348441745361050837402651486018724997184125623449017591966592302843232724762473335865044173773695076871127334779536382986530094980298661385853679612433196988274938663896984515170013033689615650724817950513673537733565952475706934544203792186128092979381357134403425048134300728484855004914822113852511752967153590917711999127952207615838666177169289690817041854960946659510693761081060514900010779367527198424492505421413157394829959684658238388249395614774882916942235614156137601571164900550854084324907699522750147584742241015309992945961195914124740773632598329017584425977563388179096143560035967606358797167194946084344208379252711947573024866192345210555850004004994285494704722740003379914977723226613245831830073621204555677602989872029673911098967048003949862490243098445478735833398335838077041680812214994028023181202644240331768653298379216495084638493467775627909361905069928874431053546540474070782195326176474762858517201031265903505902083675791322978959135184642467657087955179208104907266445667169535074039850247639583370893754284614432112807862542996199483436136635211313997832391447075358393480215907575698390719653959431589989770890881982546687291856744341037394218215159806041805772142259800428848661011116522711553416557183164544937863889108081462778787155368964134430450989576520861647670758077471583956442906045242130833969957116185644848490302152458032974648143099290508408543758295097198626436136156529603905860071765556278432492226331267115313866523355837864136043327761258866848133785826526616360144029323929377802715595703325529060790335518561410469525077314442459725511184460798327297596156970185814951788543949230335352008307867976932129898354902259358779013004011210510375896712914656285935662518546913368086095340356430332134436633673044443339524582905839089021724444066081033124038110895446046110584151599981377005002213065238305216617440544498932425378173806453551634678164955007367654921325817836814515107679217132571453942388089714757607846437817874689315997753296649900337411400948989690845882328547997974183936587494885938239440002911018769097882573707963871329389943497621513710377395868255388710362539456800333987191818675129467585757629582140183559702828768016224791226084634198190083531264137289352655495599820626690857433540143511464786171072519748216787335873544539898777685565115576884987868292373354164430021495652454649065388568013842781781435595491086907628951768713088615767326834491689150328118283751228199811739657990558428172765393546452653039445207856047369868493963911245444654747538661641229124035800889627116711219682601704674248149145249942771186378576157384923744566942092190253413773703678722120594082999136407978559947737891301591364960489598927645187155561936913095354915749750230416888385204925041380243808178697730474073373412387753558976426560559793148771025301968934552893688748468790445110355684311274336180085294038949357204429542386298150444117793958347691528252396069954409426963754632203888590296092068116574402226129531258902952659604953207827415487736057809931557947236968095535175542982838150316021128179986771008010397565586546649441982793630287962645352284623879901236572806151581701148689105821174074453720981618184850272125100874921554137019352078102013260694064728352116002905014585224153279261680955904417845249577587713739503422195268126550141505092476071651427552327987513875603203165105185801991353967019272702602029227721965316777822178189078110450600209521068249959014518703215969051552743681000985174788956631233243536108774730352747200501323269499505378138554478860032032984430159903711977245728960178309250532748872309769437920327985830830115250691233016421620107741539020276214371486877723370634939087151430458385555053741151399144419002345119604562967293041457429207092208753630845444268409207152323202995511130015034448407350027034196109671750566944383721844166190173662180618802279142880535465821680227143479296367736800733430888144174128859523992477751505222255245250910921575028195640975749971251637249036473406992719943083814167180391630624648836640725436580680253303678188164594446369866059946889513345620823166503092376791683439397550443786944510394789825087918177756014459866011411130858796080212639625086844778320462542710728534257874240739838572750895713634539348976933351271432681992175864442350798651818989831984723497543260806315885483877294496164831245120199701125424955305294422638441021597545412237634385373892964952956143283998361900587032662826772144946956489820055563742144049225672459643627738251029196793578070535401375707677416055855942536493429727579421961605186113129108717103134637919031997108806666931146815221574794343692464614784279429389399022278878534756891168934946102656700008146834306798583248067450629105793380648643605496593362392522036415268062296505623317587534858897422725914743430770860421421362313939686235574532358919390826102731405263012505065245218354473099163711038628964597604088116587144147616113455510556657601748489934654883053342691379935333638249104018208261575822055036454067084554502338228623706700696002444639352063806223105825024604461872899448242692940203342385995670426696534673658959149472430292698751122728539164076005298591814649866068230442076553672341445048919778693108860411284830047080372364047928190333161747184680999042815552320118365475251568219046060017184185860588078017366279893771807704745417759598998358584748506467292845465687230518138415147328211226982390376014349922118797500478830669859824236746538761434187400279765507750905133018751624834214530512937040738480334027112469140522608102545668334728546942863724922766710933947937749131653150652163857290647814967282505292215095418334913668936538472495653109359415371263725940690698162074231014254848589361587306186385729071159410444803294621238411881865692485571525853247386435646034039141904576393585855738809327600979291661678142827308890308471837403619372919639009662449447659450063979107975840430263912070810449883201858918838337546598558626932424663645210091553915436136664567418853747647458855389672362516193426406599318285339797624265927842474911528379640862492250219293045811368084666841843930428112670334249859325503160405520524408276509382834140228124124131132011786128873547639512907904851669141069993702800930088800693225158888946628652094874946915312989609566616705421766742133903739067130271203059619782430098272186758077887383925937385869187804281784116901406536814431289827343684223958632045183151159769834291968543223065883102166442956385476294841253155088278373731250269155091675739839348079566643388337175429354857176653446585475464139642550406728711191989503537282206463932135562249181054289433788616830999422485297230518479871358176468475102253332276986012199618715523095007069381378613868518916627492554093172763382684248027423162607656643142545714761852989229773878009096349489423533525812261825662621165993232862405863908876434858727756536087589262508478411328517632766152848828794701764418734876265793421609709415336713195926149508424397330254776527875409109328692865800225107045461989046921311498167083484788219344285940350342926075133840947441661976673013762727115738350012087171808785047316075467591631051880881716315698262505733650352985806164110777795108407747936478116411557633609223183321525759187579229874953060176258495938100639227279102622968667016330760329579038038854762198265696444651179874923320677529896694116323868180266506498708650654228569227327620358425855416623683030628649126720903521832307262368324752099760161974968505083746082732993265012382319894473393084506646361800358359386130543305027027933862625930323863930698985768730812056000431708066347008185835365421089652356997153428799985681992401299487848265675372006555054669786549469601099129943651206125932599799636072201574479304308985082882585874563415739678758382354553038657895802153956832012539344419597430320265775488101194007471080659254806082168113191672645617830631733288179989095807610981891603980492340463905930140669601593274030721223538364247474901914114005479113588011607181853210014653826750290322106571977935011879035579113115202984902005499949983236254536451057750279511251440228640781634283649221770495819010858026749161487660627682470357426484509840041378379649758448079920739398544251693399865392061130542243779311395993740132806229287451651961758241707785996822141854902394870407603068215736874503479162010685064439640705758997249494977638880342970833729264808626658951268665456381161692560271617706460596281850364061537517099236334157658830324599393343321837881578234924692840306138294915775717961111866410234136784754746057470881987483577939804945997585576755647639159138661711738161003404911200110199551229588287124329453012298641129767664663834490220007476492438758162382495921967656944476221620562093656495248573201492946073695583545544185528039076036532856198140528114392658809423151108440786990492019376938783609473656381888524248392404526940728586856028217242613325812645787957468831774683996228692882335472823767449868753134630256042324760133509197336161961789407441962951515256180771455935722794623357836587588158809843800832489084613795550038536801399076397963166595279606793278929102547176820726288937538089865198867482881770158551023426004500287476025944544487743924097121361003155546823096859426881592609055790050310098642082778017328778653850174796186652043109759205097078526843490348722560510136156401836528291499752612880494989394954531091985157878734836492511357800768785100904771358817083437146214850906362729904967786766490579688602360863623747660729431659632323282390030621398032648862150708387442076126007537927714608214282125313675082750596195368978990039712528929039147252250486308158810848170315341881276435383198056341558546620672892015399015031301926526462228557201671905389685788053904086138525098826043575617006262823713143620320830506690386427198549379516687510911335959354395993476049812919511315173826608245660628390079633227622274920525436297269426587798361284509804839521971433889729614629934085240177333135556030470753742027445381720971998937199823575895980415832053499282659317086730008093282002011242319489187192878039810836081080097134460321555576410723362047699635809181489250030383029021985161270789227584500891413029858303680806938927024367071840301901833957613201501437649850904644491738873019128597870595880346743117853423622747488067932986825852833733356707920630899293510567479784315906513135568164506024573038846699904871954352708030832555250802817059517510077578651383050816506727303377982255898142320838871159605189840038266256149809212259414870170280769570197680070977702786833760518593544846992759343297097788739311381442251381649488291077012973568604741226397650517995579979646422682088138040278745889013302834560304918904569238777678957032663362673528808628081727242553286218221979282964399083942198199295481917149196148333152047235116087385582380330967769621441154208808136096752795563344476542798243438273301360711058737077975877144163073710542381383300825483007272251650796809257691391509260698534583392264540000945510173735797820424114536987929315941073392927945567812617978907487471175496281117136561608890091971954046263009278337145237493220632212179224853559711892476618168819852469223267242432118255448933840177081440551414802640409486203843755699514899319750433359720901636917633526404356741479488683132852184372486541059530656163563787629256982052265960621405479482355060568187191207525140932789057805849113695929788688442913044013586662419044264984336103827845490345622135030206823443189902342366629610141176820343531050224367767319574222640113025064220912566057503116788970898394961581126466258560314666879302679692886120169227069655427015337375983440941265816719575315738571423397152272599037832362483711800782520570905018569781371756212336520012958310166800008351612242721871817634377123550744873677244306000238847597457937122096250681947935835306269776069115838524641189060028001726951285275016685157334704754643690788303076022558841789857633343739443186923984295663934752745046259745883323279967837793754018609135104945365382368609429155469353405124610284868255982211342222208885671238860767342788669286942538421327758787194350651002627570238544586144854738585412098194556728946994034008046210051696490247556861232238407360509493855540462823823774732996604499571411063479890750601138696838273158280289034949104628338839538414103652105495705758803113050578434498345730580714301496117086219414027938475320876874621785424403333425597243257841326036401919043486234733078479692380858146447406729262751295096308035362688737138068192434834540114809370452666864909178862293703075443757264750780858009170768502496659015767547680795774049882465390738096565431237446021888260470440800367834476361849470741792293123800435548812593476308629680840734830617606517172386570048052855997390878230064206531529606958048938859869437654660481931458881221122486473006690018019019172279062141738597567104121369021132763182602080614299848475223350023876073201120161794497119327744322329264056794617847645131502917668102694408815239853553373052507086581407105223490035088548850258540941663563920168842234664120870367221872962961840268327307822013105898447657304281832415156268055525735869074147800957058027019744054759631120165608056502790306126539511513013145092072066169664539613517335806965375430861107487247902747597088432636955005299521653545082946408798215119725594229132910828499187692294623846331364302825051006252144362338851959797354882181489447833949964239041573600381093222976515924637765736589199217539307542579309257269638424982259671876936661662271579772188908644921298251640273614250857500870826576790685878176332656680192350779447961210428370865941742627072405203834960569616986266459786575742098953054037352005148720240240633456349392177171132762321357614916492681350553111677765992532185595392653928828904521193775583358237025197212590240704074563392418372780245327370804390036955200023491767793575994631750940606860673319500341321879430159394048814911763239096497650192370722318396835215760431393817519478514230136099327562166807964015916651634577857574988043863418894762426059403022541484508059706213223699677901344699394904940626278128327042079817354363306612560457454292158270998456335833954800094321360450280234556730815916952336202627905519983776843121707695320571003381822943383174818270938436160167757300369336367459621225674561451649957505817497293119521603881382467204030112978169271120894588057884322519459006754508864619485784295874740426981626939917715317082181444624061259441554544150329728448369195803882356614583617403469621995691902812560368311979408951354603228120443067470680324325555749112274364615948507006377131863457494829235442021793423324195078031966693892760655933713440053980685799013972456495179513033024888037575371551367682193262317746417227602523097092713774990273699479341112070299723407771643863007645573127789237197576263180541775222804139703606333022735103133415401782239261366399249609664197185546816300880276515234166098720655893359176870438847170131033985865364523475655936839606434009604653203100931953096229145651472184539918224897887142813909410292392924245442084464370978972198170008458162568690920725237077532161005233691589963954992938664753722130957326721222183275473971257422237773695550214128413371162767722741998863152575276202741934206068188019422955559938027749711216495926711826747891686587199713690085590393782930324684762901868698924589384547553056531481024943993322918447303743938901735871488835222510619036695261846219231788244568314567815062235612618741168880955286461466785503752519757239843264015073453905415705397789114911413498532634419565331831343845842478960780598380191810514256016778937421173426835091885546842013478121274663130983771838687022895176156050716488503859829471408749625595327008336969179181586303661103712995890511203581330083994727770455789906952359235751565994965102155449631341169722249607366670267208185126539860449121177249418673331055575756434721708473129315461670628567988792415616955169786879264212952532221458421999367837946767753780964685746870536678266144399293388588468333410418644213154509970503394474016074515093800756368007601451822012042743727854607395333029350802409759464582467915977108521123012890497782691686241787370891975701773864144746469794147496494083147957008506725665035380572127798625256057905473214717150782864323685835251280616067687502311182054018690278548697863164847146328258652232927392163327293159778855912634277870623360786463993367692313338487361139362036513659652191808347880192315788491727420162199420064157035427182224850990082532424051568616945778182190893558773459726579288856029640586168756516146209348700138698654532161324526983504938505227052016512575024315797680417950326291787510124715471633148338969482892056310182631859168881473223063354614194225472937725484242294515605052427360513764112946769748131724673880749068820249632594938577591191521565729910019883689328967156302347996072687192036293140303183007864235641056488806346968437342531939981511617706757966523351718930919836112937449715254654000656840761037650585184086826441571161250350631189826850830873175919593693666729699680534974764732300819748071264253943818730790306569446267816254954542099839062128861364690210771334922553166671190617704646518822728803709533036193531958556709331881904172240326001064475878995906409521745690573276639108523842694796529889845222833893690385154178555917952834950988046855182080417234480597307867041795453503626981084780227480878075464341699497925569234691651606699822398356014939604868548400129685236547766692723800395626102882622102559648186149064385842145402732571587349254473849025433527954739807999491517155751897956395304202344667123849164458875326062176032294699886059559224989348078437841812814277949494380102807281879510234475084948878342703589606540656406766129288316211930115864002908541829297266575478920535981807907436767306320692207471356331862751028736207120786867194010171246186144815577248850104592997486901228623241128017495281414876742950839830845242340676677634418369919957193977796853295551938861235183667213903428167698101937245117268485399895586979890327441843735963581639884780569321166354437010660050933033298941988915747128551623288337896264755755010578087735891544777603885160375798112266624441133222694392123763606292035058574675991761694334189068479945565348694838218321425636104901084591215857072120637016130234709441157509168606034269900054124557875603078042760859377004213233203595400477805013981574670103667448733285013536188177597974156753128221643519943728428298505368790634129243843695579368435012648984279129581898902038483744451815577115989743024247399361061228243712527204468841062445222795885955608199317318403826819720171106209456247023595399179167710600594534410946681807478139646446584092725961639895524539100471994814123157760501845002395429258853835088559126430839983915479141720099587163569206764678568461958249147982801657112003733081450680576318584960884426382076959380198389688342265172680378003708130675526129893078951149692784323531689968667379304182630757107870457589548343373389484150761471424608092053540887935748719903394479160511020342053122924403616118453768462090970158738188457355989832963410080294105255090425369405504858132329076954184543861992177580557191196384723996086309289397476696874798850062657355572190043496182262058989761430223587849109482263765684741910442582453313976964490402024163497676628597967099129453176982070016934347387739421995603502864779120087001546469777377161804020876501724344222816189784511352576816310670128516971829780591605166584089301121175329821217115341484786034157432865092738097745327990581096949282909548681959748245220825488950726414015783016608122386710493764547461380679879424557545432275748453454652438398088756964159645418527138632480162529421051758352680932658151016422310293633705821700447067588708101493152696587397402432094746847311738612825858444225275485887700488451044580617848618160830396905428854519652576149661285051401911592671998724090436148633723188359102874534213225747315491160705707062409252054831531647542628557148990188954882151484137740360124970048123591671906910340792794741946537317587772802538915849439822915698724506775403935988350125617530200499898950348686548365322216121899727036246737586735346147753479025283748305172792366843537627102574698906068614643929854286765592143070637198791044044243177783606469533135142862465919016368306381715878499558050754941670420605663762249523162617025355641453852934897701047967019675775948663387775962110659971901569530488962915250249100782529075928082053485088206921051528848069188490514477042140016858935139358944096192395790242384806699846918109410345306377022939803699444828040448915736792568245643153680466395136030980876180764742837583843248743798385394513864560362274135407511360946888901477616877052253202110771947851876081247935315854169878100247170152528651486057357369785488785309656217020253256152493212015156636557995169510480412410547014387351955824990674212930087137513715933411057026617014006011945363166230367692922509978585727389063086859567062837158714197167033158082687697448546868920315481947337291727389881750938546010968309528554100097902746207966758019098769614212452602435329815334116468591328434387293631255986909037361729482650457908948018191876033721138381183141692665264371790159581065986105282353825081056435531657209198525684367384649085515384568402244726893438595778237452701406229905609367447291858060028614946541335850301739515978631686999320201559596150600130025910374508514804043110627213055047117038521372600850273678422051377182397816181483558614807788764601946094062116131568907763300497539928962705503702790875279262730897912287862803532025519614398336531886492414661708993498119904040978262489122173518559853267430168731139570124034678721489924932836655055730570968047222454040719337208308936728563033716599784497882958493269165691914036278811307334735954738421805649221935503711024840637407862408146066226372945655387867645717423820979813493065617606940197867541758995223408380449711715292570428903888344347427611114338533987811163662187670113644270384085530580404892169886950322968591559882365460666194729390067762194333453164836147580232964600947258489180305536114593247554913446176891879063310981666197739926755239290017099144855761899711384276435263222312938708106154339935550541448102743477159591819111920336633658123771581918798852270982068018660086715842098570157394367048853002044203313588899968429154261026086787476003925937005346338074981675310704980469436188410017451623044899197115440599245534680075922043473713697978782102606297605962669803057172674212102492188705425323048869159669323212933796889601503589195585817274536157864034947375689694762191340499083609819550076493781632746249303117470050911844847692187696742486512698734502685667408381587380840445800929812771061491090140040609318111656154063858342885347985163396421586183952032321645509870076902507023182727535246982524109367528720613315068898680349175279661287855899788870372795420616721951020324393109541529916710176619026952976490781810899730331953799310413777528213755784505377975186123740556788938787709816746754185177222147821265454698831014890509134675825437535164125452437083000812833523802872844494326654386676749685599963466420182488862925656403010506481939322953912014667473298644974122616968041447080899207266758856890328678255104073291034022070792723948798381008803141444174070484261076876832055014699327182100094785603145932816699280733882588370485693902409752764726346790169044676891454774771284648115135732502909172873407171472106443990101052947878010170970013891682502248338596634029240500270239210908770703802036673053339376611650949423193396893367537257785587874856116649929588201589982620420245532624343578263704580244695362838722004903973938889111021278578345903776875197164672262465856584991880679477513430422524999893446843434909844379509497442539602255170043475367124008542721344889673532639698350694341204906757306261251504027064645225445152651934826363171524028059192282193080934892066123288822884821999616780524379289980282139312144656203312728459791680130595544004837940202300419436501243996049521745877469069916661997333879327054817833607480011460001756974333300247767978101166216184884296357550997613806149253976706683783928106632781738845777614111164303548574613972535241791206484564464746951340305397172181760734645272762732705934650161242435902742037878756668938337100597851887291947367684486748452851740628424394374865738282355573726399060918555497205252555639757385853160637579055075288128713620028438794109144118204943431813935161836239520750093855297584607759666599938048637312876147695824635332480073259139908896701503609499543556925995814344450993501782547549413258236528747836722374581226894951645474681585565479894845067639019485139512794155668940112854607390827939044498406282915422549360874069446697715535010701783353388608124283735724987296743031916341261394923976955220405926874428288842230196737018272174449031483693293498984335155937289063721512256203339862401320264883693576317776842706977066427612708690411426294076003480235071807987966256434498256896540446066027017637193085593278954246565080633573328605473657397689201525781129021611068523931258911182764327505138851732074517279545355351410896780063477520719580170216980065501821422182394759551072226932132757690303730192141188985732186779107363818213861247493250153792723153937726878849217235760583460893339060346040928815043162222381391730618419546105583872462884941428745995343008552097936585341848653555366042785061253157688573801150394642900075331866500885955529725800956716882542936593731403626812233499283145968706577953122093617560200857615144253803268015526743301735528139046533277729671845549698912267970971317983690654916696246512731750196045354679015094667879935844876601951612547411509358539633410673959467572680122202541949396569625296808966060041831143820665510197384608331304876867905728604770675856714706114838027940453037046699271938429075620243837944660405038358212413351503879893140311423761916152824195030717960822052035810877425691605129773042465079346633983199439263073801140255493347850983903527486211940727076335248886845925053190646966631771123678443663414579853881425513768610721385968963738485969387985555466434640561132759109620181342706922206979569412817772447272111531250043059980527786133652289740848866602636563480143656335340600130287626083954788103466482403759241013835759030495093847944680996857749596345901571614025919455605498110291855147967846550081629552915522810289622830434781265451178888344848180919515521104914623657055976340045041435183268071233986371742533615675734409284899321166165231873673223466995979309000235813514747807554765598022160205075514358686717570636127806753457759830264898426228254223621806938795182220073170025603368425708938858151358932566323949982973213383504082742162188066342335529965596058165789952997528263199229265899593595729621468200214109834404885860144760393326119880507533861452359994019062786635715885090669092826300320080473687928156769861952395734953429036441088644539754300350689946865388878512930397371527418730296979633335937888527565739649583585609189152486371041790069579321616720196058044043553626052265298448275176491660313725351902382878836959240879841828768926175000180600675319672089829467993087671085467100484322465595063887479931489999370453297594405071794641555564497097142518494011068660481737237980266711649485729478397172698446255938574373597149866295101176799907838636232843419379885274481794060115102954617703329286737220664449611559597671723778900734670421239335986715368035865031961279940433898676457780602067857823536624289307183043841860682975314440770556011419822045922534215602444679593240981044771808734164036300585294235389000057330615708076205119907282810378247311182450809692870370355720482885276714260086211473388496998188195400583155528865240484917413046950284294211070642264718601279276204998425402517278029547127219380847128004132674009344351494643427287631892469072585570062808928923758941812148497940276919213906232382925245165218639456779659756841282766439445945873482156255008124226135956746093647338928694793903764352626392212238911271521453002206807311349279021045012417108608876451251039669157543408406069985516011702264611824825654792063608685750280932502405378939640940066786486444887702067476260095263736911642488747792270640100878078034974858247107636551240813098022824207952914914427577168001140701242781247158446829347260095663201604105325011907304823091303119021112833054698196624392240652727081078395614419295802264791408396191070763235331635537286000247311822445168566894244108452089653148412839123133922561072454792263087061567523162894548210648567134579368556123751393872637025440366107384362890690541916449885309413368680085146592453355075377078746248875788654245724678880187172168922062079713856848295769442295763407051036753178885533069004907101487275192504903269276831375946017915264621700503778057388119204000909003757642342478315324367495958809660945566373019134562013934619130160030182886576641373466135043761699788328805175710743365935962435315362452701614246454796426379910477003819403117821099217498091099926292756345704391746391562067858147375995769148582490191500695482467515129641535586678096225331373963695534749248970373793465182613479866005921058460531089110095895770508191745098802802296674929210429914767775424773936781440483827155704131004180909367211213277416126738392059351474950408298097485071289192523907592797563573949562532529101915728326757636256557545210786729031158791401144834862243082421808866000407176668890426948213542428730157918869541625126717014008433965207532465041484641217696310073216576397638431759528645200731022634979268354235859092097037128055710660093493310885246609682752130504533969395208984545642360381721495400358935732764246163011892101833999173551796841402987471247508063618796796186576713997868416079172412605803351967136969200577451611263849278982914701816931117103658580213888664001287279234821101116820145321114215901216528948319247146634073387354977207015179369641726472768832108856466191103364372377263939255858208110309077740973393619833642427893545240193898814791574892932204187464869727631886432303110667937134415455556871138425458084846028950106592600650772280250664021271711054965748071346490701345959030351112533531908837528031128063920354926417455108142503454475664744077675237605928315089276147646456739385378361033676851475081676858987951306988187573441533011293907902705768728103969965102693485462664330201214194270142663034411651404985278053343684656663396113405873307216336151403712222943567017565851499563774124257489642345588130140343325307787831659212907519061972020839981044638704597909405421268439308167614329742752156915458710318783034806349507911187940365660915398506286080772679616642330495861381868867378289502782663089245024715172780202068255556613874294555169501329640001458537045059611206220496416853423024661567341043350538747437773018018731623052920572843776918970171763928161742305644531346327214756867021428435455891649057186823485781384961322347756484550152358497344593734013114718528918382257545742045927987785682135399445492254552024876503627322867559672555768701957222271816803820141944670937122774494824573133120058014719574958418661692204945148998757571092009175677397776564865554110186159541872413271336051987318019005407074473021475672485395442461950406600031477052648117525326633675289561205559578113276867557888540787720597864491755663565637799682075174001022054719449183400283995107000742426890810060046773505430472316222502689572622953707124723938479027180767237138606717506173604301614426639165725195024346441171815421282227765128956592899204732135635470520431544727865564158974230700306776855467489899816451026700143891010601649189920386872198487301503219731803273398889482824959296672285837473215219560414599308390230337085874867817210736801817156300761484752162210087601834163975393021367646327760184718666174477888699800436640310881147740888171036229233468186845922738498695253346795725263847071767805894136451724250152456451457200118957959190606047762204991633929858407260269801751369025016019811031363958001208448124171637570023162799414151253174473352637766810546608165759788954203103462096471278753652349697922616711793166757752988913460809132581324555559075702122854259365359454370428285771007642597564032135889606879826719826576205123757717970325838822208431361009609800661093824549797860092711237757747771444247842477549120382611765571355587456461139191764499101786846170831927034771705600353263522310300716052643159477367277191862914791623187032001235476833222171040904218603635277103550221940204976947850135775786027022636113524460183845862951701403388445194358638465978769319787103838022942095537240442133093314991376854523463743418773444015581931239122853993312390345923074308138130139300007975699178175673907595879493843378916570416895571330236211889631267847419130242276349578604289913812978027230022112689443766928739131111424828967420521413397904991957875460167736400485188083419945570609427607395121045697618499490625051671847664754347576848294800377266116103953028575745495217249561081264195150331207554890176639052364206168412010600199158771090976670797061588548802767296095858378331362568971661549301949612380448248945263611043465794755911626286312045058983057655531013032828633065928477700015851062507144612883147743546459592054016453578314593468862963223371116432502635275451036136494070566198908404303267416251093078598970414865296940420994473900406108589713572911459637860429619718379791013052003486640923865016461090116759483219072197786304007268125744470247992408403454034940375962863240806023791060942903635597282290165324703420428963112862294438820265756925383023799305753388882141417173872463082282220271275049569018757439373069292688191025843640097378140382300839889329696048751802992669878902852664462705855196379629320882051655628059941967559505074687477905064676256355531668077521928718902864591434137747234109222346666341667027023179183784342725820881448306216187716697846896622445436088302267145400626886950417535924587353737587253420885649008248043209696317991370491997991272616362070326290772197279021333944276016667381232094180472155620974489872370954652854622539300492711316316729891424504371397709069405194555313503196382276953829902740215774667367235928175099061058521308743087853913917828654023748043187112225095948387841054355656050867812905055641736873241252105755263078080943277817020576210545004098392543710559991549541568824427080740735643504676126872397659310260151197732127212692405155236315255522944876907075010013160776853886738624117649461986062213132088202797964447625747745976014695837991174298412602717515512712536476674359956118003794866976697827591960260837465032332877533498453666273478703886327761967766461943240424325886244200863409624036577203622690163369977183750313937580227282520528668168589376649906499846810914930949617699906211534939357845668356933726897616886135159820064467641230000943234689574922694357396611158103768854211411540844931487657651526926750457232524924147964852063391153584464921302114540273792015755576819626956160776402003113584538016425759390436190093755106203192607906101604755195461674464517022597641644817757409933385547136792629269083579432205930826127808897097765447406915252475707477101947458375162662711990331043201967198116276900257242201398888136968780167302603811897594066267657553279084310887037540334426588286415966384581724302927556976288060011925346450622452936928047758844995784610312831390714009497819408596356595560074840691059304477290546034776313654261728378815472642551532037101798855462436345626071856618869982007894243895970058669636895187041063280030538923942520664642919732044143840335488352916461600326949016667264636232803524281296358475903168011748033054258775028398874247084877646050734681933851538762390185710256597262260059177402941188643935667840021332087123134548699874003536654064171611180986902139815251098815046539983419833742673816139764146244807790994428766964285378669012434476635441682550886984482606296187794029659910542055271969432913147494467183403830544005582150714878958720368451695128767065335153643899246685577384424757951590737347160870689125100361467870069065423615144848873575787844175600670035082977482755842113143612787115487669795931992737351128014641876289458087881424130310841791297339231314165961505509383720915143421820222547061812574343226967601008759721643933503907958999838393591304866319056846962441610471911896556469939704526378810476619089062174468428353772723045751777859701458832414314204992913478799010699825336376430820633108413626833020679034943992727548365226073901153157358870366332137241094006509504969020602416768955998567522842041664228488231039586957349062911991069623094076032943643299667428893013319819441701621291974389912794283323364840866023947642489405478640547775356395077085124170696936685659067679622249240633903808766750282638900166235442705382397350775221590319603101759797673111799655154289349942127906532890023473241681220899726155478095293073805241808487497231109832301437658099688502908997798611662261387480330173627782852487136476095267295230144851603642056872236959643041317933709811969359680899933293562079128128793360427888659180159201015562221919673935588179606113315875702533176205727078055508672238832993161737928113790136310315334108750013076106244033733199859514234100458144121220720117343451044720741072326265705288486084822962627232714050776219287909676515632794593406757021633342705296866330218803708147906016206705087260733894595206223591939591014274949476641034231819981520622273455316758257626969495191941726273020620487038412452904462136375978855842114533460655440655572500374668282456953157778373964958039898657108186813984592433325121237858098437166930939851138703099676962552646219403413210698895267069492784043693488908271485419277402097235568299239459960512689390482469140225284160746216571291237932168886902323570067395897737013560395497192105010065707384010855843414563503029785386542663068659927076604075946127869200726699595011324882569102126780066874059391959765514961548824118114212940536680956145258333414528363373219622186146238417460155539647464240066211440370406435440101713241450968020683440939398975474549167608696243640355872787692373753644478327223880321588270740951082802145162961482423303123515671365822756154682122027286077984321046670860592270014854090337370009330130459871203766909484490236510907898423933781790785187482139746977751354956960164105458000992231514429376724348353761270854427076840987348419123532169623301474417802420640898233471414040464671885831811595598291807242288134400923712481568978206197622167784111742808673421314825407930644908340130896966258251626739985372640226903997428626542333190712217635227364641861278743243626976217454214879054328745939989245155968529617924209930621298669646274784536277456571851564109591000892658379743959105856414530695876820180306465267772071848464691054953528542568548189209430714442124364484584689629223196070942125315777266426407653336459674896516755184516488864664944778167488410195625191837920176390589772355064745814066251096976597344689844838036736736258436382398090492961017672473806716857641970062448520646752156382878188936598793380199272961641734521943274504688475416849932373852336537958420636384191032863106121252759278187720931258520558126149927958524006092510834308762504899769850307134948870102643899546479920577030258738015452286165068403784452819045193239467244258400386297469992618662287048525647586327850554880736718475322375455317451001222794648473974330305244560298373908222313329489667220233190084219210812200330559707578611879071345780396533859479584381577533572734285032796591284167550571888676223006190695056189434663914293127457847770987071989327753771007669824411808740961499486137977114628101439191982128431576434661350083302377825270959986821276364190320464671721668235217240956298241759245765151646906031992749066256128188758127351770763563115335278953686973199151868374613965617126048543384158369296507399101722060786885291322325385108204497058287595054286471013202553650537621221605442019974481640556494740755694297480007433833711887800750885199387974417535692284424287427953597688534500790889866268532590800180873340114250902154037113707359328165648769799103750810589955327632841880505722165905113683136855235884949223769638566732384657262391619889865815983103449034535399462418704491926322857300792763488750580483729171143228582943668118730112336774489570905009816147783433620041143598467308069141187335072626768918462582706127170889447379606079574453219756847005964476744730008508810465473897857880717667865581290774473405531635069227685513100418845454418961147985688357951542612261675208334550044443729534056108463862507847998932394632944275105212286398800308395429333350177056642815008162767486890831607256934063506939438034456661327030912402462874203569693491398460334411987671286077082904184866758892866368489946076865193839619970708315238506314709829659218601300786861871557864671014812308399117948455421830215395099233490075628605696657806316295646982329223357208184990747055946833469947136274294440012596250973102202810460313121179252996002372341480699413430716147978859859253234338975766108321346863154200245569101473901122191148721426835410004409467983184330586657388943164506662454913818811208213152549008682479552698720592202214764531636305933144475745997926673397079868356448207411140604709683039121351670661772601976101464103962178184474686862061575542490079149195749373069336145772871577904491461664673676442578914558961264315204267665670551728065736915964191543062930725601690150695433341552464287338732925884202693544060973769967230683730370584329300851375915214550462659638649417894411329345247364944618589065255481904584226035249228000601444306840689528953225766397087000483591068757281111846651700491243970104861773173410055840702324906864203001205692587501362860713796149372842073790619783329948034020846810868115933747044404899167569106628060058834052631042008523082799317096785231718790864242651747698045230436569707174722107997934450804062242441494010602159981165671146906506083758909170032142692156042885900023354581681835485410953136007098785544071098101319119455002148720235098072180833103186215562379678426551117879630715455434122537615177784509629250780562491428762042081143591619975262551141897275192037822204890538585070455036556829630916305150858770046334095064278980570699785469075627922744622120827902127906508917667075425183071118142361385040714032444286268748965396605581141702696016964458574357559880579738924709068296702627827238499950811377120387346776901727594332721707877880940532879813123633588613940242862792415959570030620559992877896953830498467512068949959653079227208903875960739061967926385496338965306298213145835278796421318799617636986029358717380230180203830657959847810249047574946060342761392729865494316719174844145068347425231509190660390107141099242625740740651243689531160112108839703351093757226741415338634743559728255693364624560118010121608964050623981688451827741312564742777004143019484508867492328160790635904156343917850216020679126800028972324583872259370396317232896667791202322041032183388227539850132792605643532472009044181639335137360495831497503301433029615985403808861793803792483066025528768723927990332578216391630777757961639292856070779676523716388229027931886397194494795503068450227635421213751180375608212337713537673919595768537289504384708995279487554260327976781898181294018430445721707958690520715851234587754104706365847261732088880225402603511901064516571792982060548151541276171614261590425921935200752196598656757370578283579823167370869428582458371864240047641858795949927763685049894144601806932530894132330646749799107377968761158852566003317076686736802715731097862764349231211860504155332855252442432292834238207178790385840069310320174735541702885321406571078017866493862033516539437913644721572573201152373301397571423100530597294324268047347171142297599774983443407448365493996032021153597304617468610449291308869088816398391416155650505321164144861708157980876879830240333107934240120199314537580603164591742589047525232600360540653461029787666029128411539010531978899380511215100287955271970081378335347133227438910581812905538511734616725254528635754245191631468413181756147264993284672447885124848205803482678656789052670286006410887711662289263097260766158494032663798009173196581859085117778961617836852163057416759234724813616198321289022314625579291555321450714179193222047912573698403284690626716986027452658555050774893614481243378415047713872216349339371661119153265460033974153910811849929417534864152940047987688648264520887163212619271044567999327764528645272272779099329942179794438970907189186063626980127776557048346787553465083127560532854024525813855990583364989010765835284173168320327432552400670535285278987593578489213932322713677255525333246967868870679300614201078582105388813351353995795214338471569355631560549919109742884480617294166716949268789517401321510640656284952456831734501965237681255249679175215067268497554937052607217376730455829054653148908424126097801071480586744952379971354336832417108532147528660378585258429909841276706956447478752573126472312688257610275653473640679584472908696432087739714500097698972111544638099522763808915621427437814147256461271096688548823582377074446030182646046136398038818101429572585024401902094627606402216848919819702665187778947667919790109238856161925105373039620707326952336615918674650504771333440021497543752663129984273746107785916940492480252104843747811626103305537531010700399369509284877564610342233896225157326137370522556955222599499696620586408139087752343390546544356581492576340068700071446933602846877262014510382010433612395436582096764364126523955736712472751306782283104135916978079605003835218427309738032010458743072142395410492266149068734646647046657257986853412073359745218552118171671175363335680695890421925201548993686527900714596128094359738435118586082609297761260043377317837090992850163823589559036287625704222192093649796495388182460222690406587630488092362904376640062731114054658093168832906093121030154008390925838441969592186715306643040318134063502926841558014102354405122951662286438552408665657179574984368782174869328224235517374747307535362598618330367536655808578017047237586877581887504156027466796103701364791332323658359256675729300868317791306423304484995212545963895067196813354474978537209126393777310507730277735366071162435006455729519801704131558729128881540366686794860551943311582064780353673084681605976909238430655219616858636760053834040608775788937377329305663349592186630878072688061961654452785946198529518549480837316237610702017451252936184181816205930938231833522073703377054913144024171642199303115691047853528766661260752751236020067111811451526338701517099773199316039567301358358905561059685758934211913739215029590601565409276839326728738843370527950305983073888227298840627760396342858488245996357011859732141880203098484180284449975633755435386779651639540212480801539881548990160367157291894329802434048599951492763666908369776858756831591233739293464755754891331896767761308947824826921040951049142072202285229375346997249128434382487307073223301955867524621265360218382411304079107018693720803184447230540497015923504346298641062213494546615057046142419896450992223301594798674471811413348664415697574893424180553097796774305613102843611052776108683754780725626643780558450737219986586871087924913586955365769029651492787149745469906267755588273645239560081453619553971425095401641355482018395990134395481741334248935582728031375451888888210641069341316655851197923153006513266451010554337325272422635727242053864113170581522572467951004970566279545337174208196306921909011683511945161027209781917372876690122694740203808513121021766169545339917975414150970619840021029329183687393485922268392763357275529704859064950939494222045799529685595582905642675047649099736707902833595329938423971786841087821152938608514695516421699151050623866296620145982039420092611679365032301194600022018244387459930031742102500668309127931988086852572140787949023175786058648846839270873715954852811190840152026503642378269221206804951117152807807144474768018964149915365158141250546876568852977122802857598324304015283986996371314639496353925549173461890419263485193948196968660461892132505840407625853180071397832110578379880691311244105634465645063381630049523174396873762946321856014716869658683929757072972456574962939332157474682071284437627803571532005005824785673783428616905631828704922004646785900854340839503118930711154944975947543857306149304480982457554037305079873064315512081607643170662930108421566111913804632589854438140465903250652446006105830642973012559601804425218152319653774831761163975832927052019513224313576584638564221565075819022922367290102620500983240394734115373461809632902239295721329689292314854409616440929315244679120911435291952807561055348137545305831988380961614219959664956337956003848321157754190885227912991881232063932310910158504328640077576644671767249244331999368574902297866356840935002443358771342378172839559007810846844267178332824930917903507597234747098284161592911773402007728897174101535564130982494328591793497787407464711779662114681784742549199849467808651861804691075707577749413566697491954145589225207013406374126055193195836508937960040637640340148674867712765387799601848965840607331112807696470523791705730287983856433086126540173595499350442155709514517760879156969359011956443790037694831946177645144503261418628085639914997247358357485076382955066981254873533839733137913188308580430039182570730533805951697349173135772782571152493642868884487079378598703778219184683924738145070448517867896815959572916039605995819439915096312887114651821182313222728153110912166020720302161367063045727499040986816730617244084756812508685071992773985024771500096384250603153140464083192298531678981532027725757337117402521698507599231458179800234824456520196914306280088547159780598167987137117888772320277274066259259868157087970576874526325507891084911980582288607226514983215671242586632605068273706232401947146263591690414941338279613186120945949241421878739504471794867778694383382151437456969554567320269803198987232415524266329084318367521330928653685426888249191891875339377817654911418225059824444665266144774964870472302888498603075504354181736076357221941146343604549806963839195857646635009598621926674942701109688249062768357725680163849617414048329688714929657424920558375719008066125043797876633794114061010091768857643389496479480888260679071078404400311086522643211880731981019419016230590607458349335346556983626347516539760043554598395301200884206342596854216824973393822364518178732645771509183400126412247034634621448696806477689636395800345683276221740881934481833061554174428479463991834312546024708997487989996193287428158676450157409126040174513436959300194015863041972101012979949811331618657414059496864455784157873447149719166973382687580814854406191730620143999202434953025632628691332063719590954090593340773907464319037918377789678225528816488863778700739817534216964042874392240957422866827469560832515112409630398965739926499390981755857421735191979466675158681996620332032476153473021715141160421033338090255581978468342674969738757886106754069840378611802587464459998797552547962190786403042910653740982407911148781916314378598146255611344294514686842853075127432672716688535740659518332700562440231135643674309572250710043231063106658441596663902174396563425567394503520477222685974481935951650734468469156223583549123418144167075777466903232550708874989037750123954318409602817568760890922223650009913882316211756562531477360445141083080713245677560402676687780125112429097867585981607493225938837743091681858268248204811726977533831695218604504868758784942529084878941257872155185397573869183750277323080470564550088606240737624158068869590749579469472056520771777834407737375986769293041068599142770934209112784997421734893265804712522321536881108025301982353720630377073708645199775937500450352740420827571409577267300196598023866960411349143901896296792954668079244183174281269083887601853261460223839554413531977269407939383758235993586378036523668193090974343076759788226267050102414920958475883598123519914248973439839751800230688830096141700878748320853895555430620023173379478698944909914974439585796888624444465335548802657936618247957492089142132674502811736658993927251460500023372088105261870963744080922890809023711169688736870587451563396144758767611215446906414148795638358379919102687141502818583536458957424230894684261802503904886686453136918898985783773789110884127170802563663224653913467828094535969742601624890624422445323160788335586086754634381602298589527047138779687489102742023853011963145038939374429895174948217131487449056737555265892217832735626654420209677842026119630730614198305163375382463191443170380426817032606549259925319636418563457164916980121927545663365412313875292564418003268290746924293415593520967305793750669060516164123439077932400098655138259214675677711978735691012839851780294357606103459438654452796210065631831091902776333263936030172225474042058543346768138472109425929053251585557995118483145978785185599686665594329086001309731470819666128324679208097793364526826047748423649998776898513214167832256897354454439270491872679815246563517869908582723537338587304973722859984345224483214491645106260064329948074303832200837580851491244017004499108640114476136976012572268172883816316903421769161778857725721401695448806531622579622780203778505073594077558598457975538527659862386029482636487731617089200720864987827588748601138384066950326231789440802754537283803507795957097318733474891286248448604510839709150925288938524170136697394851020032249648206228734563793917394991644875782746964611388527324718932729389437803698578827317191305061552238977656160031479012569415527376027405359295995368297512364706229093515535222483376923477878289640531809111748384614056290445992034950105616632200343867576169891342996644975374547321600340482814681188616609875729929709591754900459623449850257814792498331775766941578955698303519638461338021420812659227348494529914308895954357094142853773576865156305475782359073461210113329861108873820747487944871938583195265737541898580201867752492254161598513744402892562099337024576481185909152690886187048957414617242145005280598727616006742489684303603135728148564662210477603706182549351766607010307226249094794013835958511782555137483334274824893297528009127733633034044044034979213172420788435207575772218204461447816364792180258191915916705472515311658486180710027413393631320437078821447766744686517247089050617652378547712128597446367617849978205603261556693704839569153908437803559553244950338662623271194661204223899726615938391441389669483829815338253340317087794124499799000138976920426882272759705839690976071249623298854826909064551726545640982906246880513507364889975435592903769091623726176526474170332383272721378623458671159673756220998782620565408863689035893326687304304225891296177283854044091158567413698861613846257381146035651569760245462787683562935898835429045302613126721614616375178960040927539078377774590243494508768236470227600844047467111883541371705302180535814599109712484287387452859837736203038988147445816828876576164756467127361168562160901233538650864174054529862303089331635527486335401276579053430092858170737679591559238275550744761656716755718845412275551821718401117019926811452126954085510005850358814006982449001253017705569392409748157291406948299109676833615878447437429193519310565481785975811554057581548584159487210905115389918231647126020961489814052994881544794128105746452709850707572207521448745860750167068818336275399437075403074333672672698927768614812194739064208846295537228498682341769248062687415631836959027229623965463458771966972439737979291265500420626947742633338188819049177697102827342088069412166978196584766184402243392186574922982915942418923761082659452532069053837468047657372442453039705313380592912277390121696992245264696254854339240928130288392020249675122055137424001967315961836656613086295567320632506863783100441150106363305510107224731726415902234067272809898416408059987441156724716863361463931643001373590192615007152797994765963198606039069735565435047726671631814895652619964678188888824398377875319601293864787446473253150443086050181242542529381475471275067094591299129008290381942223490913644572140022638762382785600426125688558860377294380453705333279787125093491431399476572193399013961749729410696303864547053685567497491744354469323347275305955858171314694456698065827221984364340361623303750629162301926168235677095132677686928523854317465952165419476238083646249820172001524174505247087904861905552938384013455465555308939491585152503448608400970295004570769937345969831983875862058517876288446888757372471439593199906694233189245360978666561987265774075784135660546412441743295526494630813977665917809076359630273309309776100973375136100910992286545292666737296827783886354620162856453153608129135410836302653175223918195573887611717230580069814574623122992858160602457848707223681909731622257599598066188994891023747545518989654275734767249645432584729085909299013652845549719171618281432134675179162201949670019811476789636454465719809813236317515020985720174344771060872164301105539203045666149627722821455293300197860968459664252713958497168582419656317170628840290473887154466465284111947515957977253235474530854573371173480526081286362493598163483260528060898545720234085427805288560540780129391763034294196278005645954095174617957779246366275332237357851279629416631625455757219080641820919080490871902185305936125365225687675713697555492115783507668424731844841086603821345210615100774642215234132117537466612071192664525435360071747373603465728948293467780797912376977043224630861008199337141455535935515208871233996326394913061871335067555915077261160792501363044443852680118018930070781276297110126511929496215365243208228474012486043620403464232168445204467115639750213905880698896282551883164403004073685218521305653260854989553441468929126580252569996873899758103883592151392029812270407107910187944079861356833919916268333486566345128909977768112187351455729931718091131764169358625770858425945342218483184538685668569083485306688067316143878848270763748653289358294067899442278083899837606289736255919485834221354501415677319134946060498072535970542585497919483873570244227535786450473280968336575517523786183236884220154700010478838570811368460368947212552171755903742204079103435709279345790834317759553955712788429069156819979845076847768116254879752104472202069158658040432114818283517969851056064251430501847415730282706713057681386260096439420919354740437636939583045797679823932150994347545382981593616935168842160877094071322467598404973282149087052037548766267972683077987619116085165382296945100337241156734185131345527396265723880202129800639883349642256471245527131462177850411482949194985887499516955307484216964749807050525072593079053222057695963205601491215441917039544580546639679976631645514618417720071052073356180884421507188362706517865637800818084106030288753043896893995375607302825363649938153353402616228227655429369986389922913076415271548928791182066752724984110784750119631778470880017756858147586449782134904076859756168234788174754425212958804734130298109271282281959242031314283856411458225671765445691129014247471886356439027473806511719485802046894723583407003670888785634296549207304233630873013878902194274417695727948032181408571179756499991946377209566279896760832478320655993570872767679434510112947296591040312538448998472952136470951826887336963458526646629393524027550825209506315295408192231367884179062473672881282503537403881528412176576923819606823657121855499537845027851190144564998223904702718569311040577332008730237218463032871992087129404313891513714780247611674462017702173187728349512347531384482676984845770793110380500674227343217795508261040825439296418682351129148652610219128219841546865242114006128677995593243902027903205220838028179656780639164235281706484352239016848939557473812406214076114853255278657398067732346005928540441740739867744420563839762468099582037165567503877032054911695120560381885692917158927397804265615951986586605301055722950379149100714838933614131778744230946861122554312704319313699907448343830013278181502391103340862093020818402039933595664615547429100026179921555337544705423535986848904948865561250483794050533558425383144634968032800289197686150155342432642655747443678126589962083455028095521077202481037174534854783127659840891148308771378761925918200188586278476835697779208511728847720130966910963043117780549595763540969573942309404967694077978006005081842252012600135724306299363705082836168076024331027868530229672981174774594872269333652352337810867411597706380654296991319149246777083606138010514874991135164537429638548532814102858203350040170144541942313367528619775703908218891358874399920793330587806424920194643675781820900394352022800590816455882529952069372457545014316109351175344202898447465902191225554767486633601841829853500354350112172902934559017635994750270833084716108392516064381602024361500363863528752895481501461228034273026523238392920405412521804747808839293723694792661928203643374825143245513690802671177701301262932352355508719475066162292303537155463063894200062813257141520138328653698658191193677281075652338690166083926685628330682782438270356103220125330952973891790823755900258808580971706205090405081089427895534918543600838913921473451771917152539685759329530049969902027264007459327928405236418604075827693162351286327541091627988935809880037438478462047170332201573301387791899634467585571891503680463588629252997169428512055467407484788133526592584383031141675539194362712331488854705211038590067757013541637634736600455399245560426314552526379987133623912488630825922882973303903252858782405651678341716689632650883083394376633369502243005229275472996083683140320675147044159818056689422242487819515359835411314154226944898063887803311894439830008738230230132197202566948715907157562367402016393398435196544367576766242605790731403847249240257069529154148293889750975114628646174473502964045576479578002734006875505259006847913759596703102774532769212428223600486653136213361862538690804159165539564095471202799217567481364294608397202224892795870581481908774294391216351426816013558252793502146312765103106339884696610961730963244748801270077808935240580731787042169017662763982818617763078722027241005807917509928591767876904512841813976969381766103984886022560536552286155911913109059084934097617051605436010717168503129458209426020900609122173443754591400994123094326988221963041648848764059807794098919234728470237174846689954903299519883219130121263132531818551679700806698666558256285492376374425374805741444731866076491024582432563311146350160852403288175488871420133708473662102821853041297048789083833145565888766479785331679800946275365949796087116621149142110524822613664673792058112026055853867135798071710214944464597498985469182858678057676191903753861511448226404883877137507967574977209104411591188287240741375723036454762000650580719281973736642604530762907436525868224010696481744722515405587300789210412978880997846749938801975587046177318000094316604546559755028012280328423429026566524527161988874152654684095429014991962913903174979176537010588074011731011363008972343855098381139256955365780928104056275139130568029456021904273303147266752948377349341235686905118732944335792049811703425437032320273985577528217647363664551838315297410422852413663274089370078119755584912916397349044695242277360112836332590862848341846434412107640953746902019609291453870489077545205655133816953170258916327327514759878438707460800312623654932207599854927943557594238442157111254519464923272634613556207676336332217427733646824049351416410764546190195423791683400353134729941114537787479259918576771127487340106832370597438263131262932774440069005592387181581596672915541710904173862638068453286762955898817526234748854045111915953097220074890773806432804377552796772138859714815320045323237523347125510598490828355454432240498855991855667932328927016230003515219765323569798850380202998653283065136160954333453583510581649480053352194168154545595546536023775031901925139007103765287586172715012693331266083381616230656309870675146700406122142241391967984362832140788736062059849288089492977417939440337275917685842915985862776951061312536113504231305583463185911763654505089948690563283661565364343609470710396421640055678832147255237925041638800446102993796308559373549375236701555521529553475301224806607933510680586020865479740624922786108150990718556214983948975449664401956120362035898124413224314776828346516547987533176631950335883592183341535308973168474753559011071049135564060641668683349509326634495879617594368307017203529893287418004925599160279142718802275010125367056515289993749462478551596185013078818944626943379903775701051999405697030982941770778208519487704232905624862567039443368181466157076687461259338508272909063726156325567998142612202931540673133026277676930431985972331143347355586436403991727601494010327814052810382625515041662041916058607488521048596762940752516575601437110519176503546788080939388386382829659112200388772573543421469283044093421421117751094781215448240448915059964275235496909937689794467879494183037884283289018727266553555740770722782939423691272856693998532021660833487375252886760103107986994387760338057640909969855864641966100225400595414932327821411140384417366940530588894967734026351983758349592733497491604597345567042719307475447075596513820835040532286145540962809492884397478246182544740413766624502150443170027270971584035124110265753316437525398694228514735387693452804073139196426213574768605095529785588367184968502432245378599994744135165116065529339118640076451352709077753572680429236329354683509958464800794674119758975288641200508514432437826985608578149423900543520836061176073500965353156119780042560603268931950507322298883972057352397364094844382526563714659719577523523311409673976157365281008796934880112084392721071734595078731716402593452598441205620701108922387459840712658761470931863644577656571870613464347211607852668811424509098880106494609925698569303236969070140855626042748297868557845908356997848816725116868681500171969895308790323850911355976594676950417882658949170339335909170435671884072352473095739048531141519631411501153104001807114582246590028300344720876370877348487446118359650928621398630220374738850556631113425376437301538532640209275217454472323352577653234802568065682829709343118948508910741441335335335548937880796409228456401950340075186985599068704482180519508426186141570680791976115833939671729189678304668755539700084195161613443130125961187477546088479219089217232525216282749021450570462113117703444439631768631005339340999079772374664370852127520890350995270246077158266523712520073149973583864594319043327797479840459157838859945984725943039775401282320295539509753168293416583895859083827349578984568525146480916857181937119742591659913354352452444922393295512637852793104567794266675925584222084805903363873715659792871312200571195333762356680405535939633029083733811857481437458382232232688768526104412837164157313961855415829018888407110179592315057278055357717412086879520285906416512378321769217810185074114972702217573246065352500208792018856644631458162108580878805181036151817198478081465995044755989352232569441764619484986414270422283287599254120874015727829371341989181800188884159580997752549684417405214083865538688797034018412641408054598531859062746598626091992554709990955624414822667917394524545013181880003452876387700030437867234946913849860123282163640744579980064864799425392892652131429184883004348332567080654224940068050987921141502966503193378270332443260281144684145922861776557039068945190229085576698126867643267295818584123135874534598264610045282517064040222154533397303121492704868307859479490418236698331081965339384369688889342375067087794170702026147277955860181192912123850174177174046980545577484613080213689357681068406986769607695840991799994304469042506620213423866550646339491450484365847347155925355409707248579919292879237052290925427529937126852600708140698453809916868661320930016275156394374905169852191706998703392533567298732267012549664288015139859541620683788988681386319543361014713885535619677832097393503459946600564004434919921054462233823259961918680264717442764488920070910430612819164185136794084468511206841979717903812353431148273528331897365225785511080837148842071399057111973057766128934691271581100031252378465830953007098948530859929534716269921874009214392467573765738828306682903869584231174572072755912886015343255336943346667681893009781789925223526827404562465209581438657048089137407135929772029499190812519129981386409985893169394785683501368189949093469265546439421289163985487910281630081399362856594104973818891751200981350791271611834254845395792721285815183056800627236989477505084033917147563703058550223973687018028657417309618479195204453723771786504362214445950170890578226345782526460087330292730472452494669874928927254750021939743535703668759612936961709340561477381225935282399448500641678838817749728956985876605781854711801931857540423946745181828982696218527339147994828235880571357864588050424109957700232992353354079245570278373195724425421748622834573099809883053976886809993849816070747158676706600501182533232922886493786812592328965531516387284330901229412351060764717247178055529885335934619970388746297742896199186625338944241162015231635217648001829951689105140129012969929235367546931804694265118696734780648537823665182210455377538522590112914106259097258385289967867517652708728348520011798361099749877476685963911458671211689767940747717441478626717860148720755803230626477031280831328966120968179860539138876531561145523344586690408091886689202093816770912494655324257982006572635782386306484950393428895463892348903815245701859888957654806203854739788822102499987660519662881222680244314124901279972316679151753013053330432218044774557346060184535066692919535724446334989583391222648226036069890454735363865556208486629934755961336508758932366114695089764708232590477074777106118644184618889136383510717523202585943889525019180481359284587105120052486990184770758504630279307605336300195836740409983670869406689802053960248917024444209091012615508324762924640179053115636551947770097799902621826885912132225649300756438252976708204366231045035324787609794811344873518580356089439623312046430608964121888478524134471279470289968635548062834189822935374628643489496567115734707807943006654729176502844165928218444111749919149315377504881342971962093744707946347869106478303112346154036990606641630620264128150903051412159816840315414447399809084424002566624848233641486454019581241073604806575681868217847430578116920770296011885053857759801693785460185764257963199692534738854599978351285322955474711521442214719127141836650777984243402026084256682977637495937191013548306485915127539928151725358076132163676325875658327362939293224494050317574323943629291307740900530274934674720096660383145217388580355536768747888842745554598000812868063454909604970420744275799399058240694483004810183366271866969746674979846242231758820518441164119890273749582462014008310135798797346522805622665392704776007838931248960224531927071501560320906155348172869389681355848770088450577962597932735437555847144608527576214217173780742305437982495127194049380727517266940849053838037911803510609361146717127385484328285700808148729882922910060508729274092393987798976631680550454721676899418947116215930560831790439691325780813949985858963791873800217283781895660409584325614793205585746967634045770481516311940672918599512975992659067842140145498283228160622615249783919272798087002299379495448014582867205420945414625628855457493227184787299706274510444638476526939539067443904616401282505389362950147676631064051576233000254126763692308198082060620438916490517959381984839328140722428509676920163060564548895683840302118515654589231765802906408291336643638637178518521574964519189138125470353561346936219731194519687557189366641448938373300822621554360427083787401186005203098125611732229968524128604496235514302542528681201097716050620036932982761418451886550435703958801403475006329620643538933847985636500237973948852002147494392877865328677168930128591468887480967312242319708674960723119917839899513129206093251652615743433810178232919910559041411605472500804821656747852712726232535664485141621507291585847871836862489310274053825691864209015103478027087994956218316125340971041430190489299642283328543584289239974965147910107374006306228421624257172336471077259976976487955794359403017145657797007120763325431281127136535731806919243698656593635496934236792726458366572385983266787693557024113693064756834140700500742547647693333713561997620081464709570291375206860487255039589481290469903439837617558066605419066460319183733951697345727649060773548239140953602404964565245640541947287430929326560770800502285800574044048851973752249743810070699637582918345124190040370796271548987457958132365577508280656471881195263070690517733056074259442634667171916318772706239728210330767111945216196677041468935905603311498302548392533412684938318193592861847645442271330111646258998390247833833422386677159084944685144669505844351974953061246642289970151115432731940787621750074520693509056045503099111232218484583516925210759616233758390494724717488495221458495188816034513517355338869834431393945193154653261295964826299149637525145605060240569057081016992414077740038499517065953818483868390484890923250633075985484002675462651673836702939011748032395359763373138198104366865321148537400530526101078073393598774595275693012352171902284844208219116258215591422829497997511172780414954948571333162032290741676325696512347596708860392299439955361325709313346451557620878816485870589790370589310600623614448340135059598937226675843575848816716642792282332103140638238531271025254687877111888651516204786611888183147499627987613417861864981643378214318366341609792277508753495801610602475425251332235430412304946836288516324862475958148387928306307022347569372165395371228474378127978730988035629831536351786284308942416166400778739193624799322704121792404178823130298470234902688110360266932806195278291436475887478407067435172817517813308688704702225149932392617928412426591393997202389422002625265715263991341330924973080951716407747477050840273457092401435060830889444982150798889496950203551872698824204351885063571654384595510164113860328245352314184522948864052531005834916698462688478195056884257704988582098310358938472099322316740253200069887636447563580662869737017398385233447057751499582551724285324340619212631262882394260774898232735182576415388838801131095505040538004957210268262147072543355631969207042403754787095900917075011872224881978213361206717078314135659094170520822448230429347597179690070446006629801998752969812324375188639181544164510656201761376443210128534940206671213259778946102611205610408290563592229804508393757041615844272732311585433913802895588622092419964536493891528374704138723189676449581394966797990596424018928691361547308137414705967655873698668163161098348032466735265010106944097672812425241715172187186154662345452813286715500695702833092658827669244638407289877850294416701951268916295664084510819988333297913687727147548997557174418344972568200221535041379806467892926452374763686663682085381617035663495426824012763269303233750481538561774653511344281369415016447412848744046908329740292481481776609848066536650645124879185523143162966327355835438831057123659001432270925048199226134983781912190683504452077904789358686989788044487956091900291368235533726514606108647871066186959912970696416699162070179792138091198365390972926574047187575548906472823103582316910184231339399166581116843232656281880434863305813064736335899934519217409307683165871417663538721613329346043803729145842386699315715123418823396218308490863497181388126685763717491412497575271910547269353638260553869663757923692478545549958052807363372875444607719233190089044279338328821297375335189275772820636912578248285855608089450901277315658402829287177878508388507624593778215863572309731514795482741397479101031347008289016062283427977118766102854991939407969729031877132256632892636690441068679623083342361822414019507351638389296697984068748489424311424682031406504089032918150101767328350267875834230868932898700285191667413552067870451874775894083224891369371972127770793994748275774028526495119960560897243924731878994637347120642450774859742667957858539315157173664149373738199214453966753399404558634884450894940458832186359347204117298691034988757935429484585614191662036951869964665991674404432724340820195810941874041072796860259421499960085892452261467950104692008153243056618296677728258687999040401020178809635065440993379881932439380766527943790204803670292495634148360371617042540500602505079863550084429191885106443713174947958683403039195516564452082462412113787549201095625612802614151581652418983696480089188363428607283597703776291679893946969475648649451036765504998942515652811606899061797265249976761475195648389685176035626669093019614588230683145552822929118875732789863748380068641315361925448217098225493174581912890849417574255885653550250968515908037555257826677623539843541535194520962199938992169131606067579746319478666246487923831290716629941935102937741242571021451224508660096976961933880585280809054064972334968956244669643595165458526468084499598651399895079142460690657950580370946201666351868072857500564297690709414646246950806370806774868875728743618655416775498294082225413591598062666683868335796915345897948074514892120418688350510777728949841117636722628008886724280087503292474907648570817870419062459685418234610979082416007856514538799672984105189066076504573210693556772189794995571275756518048078349181662985196776763272358620683042077561148872552948663465599203593470913310125693437886744624650968688709697091541935904207847545715392275506224632242427457434268004495969335919293765613656498201452131558447297613015095504103916497879678806354548232342953279369366338070308382608639175139071229191454838982350237548472165210408482964414565092390885145324950082765967023921924234073063761195302945268340444034527997487979894353693108371727613121822979888575847559558473826180665473595427253902856598751052235270320192355472461303687044473752596705563773225931373907836584790792059124472757235214784661336625638462167873420391252508749852750750716671067489509351422420357198384316564556475703809071957040912564695849523936940956974800429172222264963558425133085076331602423798922259409852903774980548982139917743562489041038376110917625292690394384579588114275730153254089563774378624570103565276157973110661967767456595956443219876996199731265513882869966594943563408675854840763912827484481049694224760203706784459457955410438622736878220522668378255351335777960145615911457453020606960729643376058757056262873965021861484356990075757131031266368332098970658182245287389718416483237079813618677677782830997918139685862344297890307714436613686651806358313974211049803474595163435733643182167262113819411290471674039888460634769042213553479419015870570071010722082658321177696220466010956924337254423815894054578440795621907277113810140880033247663603976522740311131335623921651272990624076830315207556652402150052053610811494150432459289466628842409166952754674658213570127509888786324053295673792401684946947767178106806438507943401638413552829709624870266884890375174015892622406363671319025812724674207441034276185476544439085453104633970982575446722669969039308941398145877217792578061752623295845090914652527413083029028783208904153067074589123481722285865570244765713016552910810614832320529467498522370600752531212984707962115855167607112833272232782506159396184198512013060659909964936632846308780584633826586899352930598412034569475235432671371611951506182256817679870262474430420165415187271063235251290265663256702064048039596046153876245705144332547899819913841120995089109816596910420380177002138699083782203934312805683971490560898114953398338778370040268990251070547134140859890952656903505465432648110261045692497614690236812567144392065957204358731000492991542902788959900853162109332289672933609094665193118598194699649490470490274901167654435777498546645106725562197554069534274705247735574569906939658246102985934908853955833874193720664481830013628988889407550376503836185880827130892000181427500780986864523082133541067010077382359366375737033672837146558305457654014166355206692632812633194748677948882461572641125735203734707022416627351933379611635979222805669378681440755628768313147480101137268184830514541692472847273778803974666324676411900606682122397845355309516808364511792291284411465242839917302382515548982924071836322760970585371104130898363538525873911774060074313981360738773462438536304512451175921689142574791735913098539120353433212882645131127948499553589429192683136269722046437429335042084944199316382842074958946163833934164066022916987083020910218583033248784547691604861192348413708103544493099544713528972737919932824068050019817166572874450687313271186235489496681806084778534372306148706707450116182532889871594745354406530016562310580816550375029261265063364412837105068691713646181300127109104820864881475373417921147148361911385729587459786727828801690997517071542236236637256732257075562469753528026459996277825670265050644519067316183541065669742314787398812343381795932317652297525646864337605733911393626558277317255771198326046290084227476665869673974846374113695277971363909195382764072692449346135635113118869328208155290467484592732743875440377507398870409059779816698363521309098650415135297254172366560556899651323532832990384495035276199497656797151299757182139208694791882865724573419708863459236662455832906669578476615531375959416692729848339762360542423639628979492320348168303591023750917049182265128032414072427452797668043781766004919102873823699300096474854448189513913018890532236649359239691041883189651810395033624833461104560977499699117695401409772134915038313059071748279817917690824637725073583787525831474801015725760402210540261620783779286072998350806803706233839861740981481525765116930190030172698388692462266541924500438458279341894037669838583635362302602758143460492732404663662113408350095894249187190450702671305474899571587981796764038016848751792104574663343802026985376572663408262247974836353065379126365252472337495925741856580997859048987830280638208179031989185470164770967216978956337383950269972216420008426851033949673351841814985660906617739570376873449525525788569967501568134253608122044409511862580436987543915995277254033846895590548767225707220035061777545785404205356621578450540044933370841899012157668144437358881926257694012101349985975389703825010353951136091003103030509462688520548374708636483534581111428064009925297016984157809708837150757643530104587289110606943826362919257339477721549923215404537328943117646988061403570385543217546837748420537761346515143314995375730541892541338568105098392949564403031886950266424333809661819992978509951648833444491244747310353504696959190655864219648822039793662630362873098958966027137574377037625068884738741635585880154419391876466974346504799699901631791808789363176931139360596511797505305638003144615768151731188509142840625752211160826727364572777190027992238946594075383548127881204619939172944435899136059580201874524641150733220407153414678048476555411199898245412972218809186418338074418702102020638380947798806306396046376157489402200977513016987441860463374320043041226939600520530557862595737109839104552132897320067432396728501994023810002833618305309943850688858187279151898202711378203572572440539016556708609254000719911293871861001530371202820365426954851517656268668922653512423276415768273388122517311109876933384358527568775114666758760113388743128354458301690908631477257496088869538692358741194198416896814599871470626733808287416915409224836938855651443471457092941813450060863668658351770123052575751886301197002222947827051572812210554604078983228490960560594740271605194698043116090843523252709843732986263177674362007378992195109859285097536224518188406482815485857136423249328089210020630166606632772249509405785541557558209684123375916810857855629812535333475772011853455257326928337706603497286767251642053140126918126123177949154476956407410393813368168353312971069971931104660046582497076983369676689525787664366340725929825615102651653293313962091080063565539381334596186815602990133498911882761565747423313912173358276251253114350900597572493211286856892011230667594553082192749301055942078118354337772364912153138925775375396116425638632012852777878323008452222599147599671939653937260204555355378168689459000111269520306581433788838753006711437869384505379888421983055429726657013044509739729224613861042378747699248186447067142744549964873593953404432736946655952630935886191064345297913215256412784744768157817027679758266200212587178314427020558598150066121706368578958301922560489437823375692468024871465750754359319450570045478431898834920587336709667191339442108203673802162009875596951903571667629751462956392799950597740638456457806301034853728722799011018980339993995059960119505208414289900634290447458090429010039336337551300532397683894447656421656038977580619043063546940340391375779017635787348350031833071257225920955610867982873747267247371725066024153777818660184924405889895143620839610116890325338303842148357551719699343605700286525762205240714367656443503940306258330322061322926439317320973337607916648921845303614665596643967351995961322013756071325713018514833311876323108145114797486222223648325324447541822821883223536630577187888175279708502690173670527558587784440556983128186413146686526061364583803564561561255186939501474758188483833298178882512252366436245395432660484251893500852057934879867780534925650507453478978865577588331875695408195156859023528041801052301013994657553451901331101041876584191462174902745616571875906362286794704992703335117164219881221008837895692589798651656264311678239218601417003286682690428729408486374653877799911623913166853303914083814791040268744808226308051823206627582836070132940612320351674269768104853645329914625504738277282123427102138975411909261564764133946733971639139354759597459275603631562711745052476130976519820304205907163048423661810732625183808036459758204317477680921868928253723499004203582704299143302224305070137662908824322388799868565911045382164872117770367485105356021784983622423511375832160286996810635745228764602266894392466985400266808890073246727149737793150623920167874640977542370409565458075054938044477605130351197978146274879583983574040316426459887544766342813489289448439166567939870827777490312944822400463359195993174995408262503238658219691655148746482147021589171631598610368978987599131047651387740966635533832242321337339882830325735699736000864809404061506492500744324817535469166336334086462977787238876764956541967347818354913760817054869150201513730813721625863239351045395152834708097487355949355402044685852544872708174018829097024272371250516349779053142947440125169086118167409176678209798653139587169913625046410977337684932969969903831564722663683155944875882501272769878419085456095217940515842498076775689803755225762851893823235521926939561098607246551476151915466293053144230655051189694533769349387005499653732235646561499402401003256597975104728403131763839776479042757101862984738470976881477250665718689515604578932413160730291747607296448570735408382354242185657765678048156811271944413829422447812464897961968757194006577402165769710452252127580049944092609882632005204474972539298782497042944322485501143503191759652907526664010904322886041929894199067958911820771734207670693918974415200229217011771498700938162075782096077745791446682149173544778433291514884921086002786476350715459503566675901014173231222049350721116099299788643682560722420241840515729842922875200238877447398817054697268502991067312857932075956640167203219091838199215705713026005711576301713943566712808371307512388994659588586360761716637311718339500106273375909764043421239310257923783196931326508908693288445687888205104063671065592446591652651937282130944645331774355262433807235077064367425219270105736070808113838304096162491353944504782576387147152059260699040986492990507441644724130855643996416947224139911335542986572531842180940700937606645602941241906842493645408259985284189576306215554434298625302172818801720102199873369856951788392849147382766706293299615653720807457373106756090076931625541314860694914025989319281907166583962447185431897794953507811904829333604881467488816325752949696661516447636861224002463954599995983157545908503754616510478372234054597183739463429868913127046120871582380631640597536185954061697497197185406798178554744017090787779386454541014385578783739057746135763396586497235438797613218434746479994430999651064842123670925587703346840879583846845921448194179935577451598225234487078263879989847854518563808554355890820174864615648438885393757077665675599773628791657577439920826810354338247923290453937448833949765738595354913691323120537889032335828710496700583798933761692373500857587339398126183857809941017726733812875720788717895569794544141485503392978530210290538822993019212610450200379517519893177028258305491865199753407968371748658119316476085456393054842741182087830293628335829030356608237671039245589924191284767354949582002599221407762282224309669683246428072227252358795513474535208331767376370833509058668444430216818678155177071569368249594974996689160815021752277957985998141307756130848533546048462042109663326235216203334102491160228013508896872352353588576882802699726239816108164863559675790349245407903996208697731925123506908488517697634514858064632590473016039719379770256242114235709035629657018946522050426052925053389780363768341441301287715011631855945961486822862093149138173544754305903926526671598071144158839421078463812968595565013201908638006479834940330686124731086025150491032408513772651994885141450491076295208320403710387543554475180251774330145398959063401682467366224837423284158191838546673965261879808689820081745048575015790499407896758569218578804309749959230488822993432020149668026451756558477956485640089437148410516771220038442478393721050863849161679750182087090482630906488599732462319548147626412662297908417774270271950083151919234772699527902465443404868063572750346853972350914482442538602909861687077272571429973609490493308820247961841523573514189643171070349414875648960473051920580873743733624507750460421976916937135224391654622668765483362827297865156179902450656920338994863755108245711668596852499945864961854238849542943476533077085420102202734478875079965573931772224957729930642571994564565079095060567781479366781354922971397112555634669619947551827554436036903883898725209809582422053367503589226418304109540057245089178863316570391580373125234638969397721232964476905140560189601769505626492456278184587963742629920339671560272293695471410361602546657839735111018580196031087906625895799026773959372993527683295510030282260322151891297576235132050072793496203794524342620573005127352956312584109310359409641044199205171107185902444639352974875322334908984305634635717202906016013743550688838515524860932524078260239229098653358398037244648150538715047232729550393351245624054378180037617502738624305746838434417704930526204088146754011603054998338423825607430537698580886490093642057108430580149727104526140464621960349571544259012662204291566897097394634904326273275792919001273489710179696855482177249717632387158403418869601556435313531022873615726913733870455605283362913683038803641749327964889817075686781281986209945028621382605312803741928190822609072996491820672143440665945005160940384316264556861334035731544427908695322677334062857972422987143723904093005368718141999588016034740517896022872519490684648685889088700733672013359037238178419624194437505112115641203016879764039441230608914387294405503888402893677598894695066202224852245358866254513814646809272740786218897205310318176634426380218489989895765999509756283331425051781244215123056861244666234338003499011871258783420149035318377843256950053739391515691488859566287965921595162059386185975672680764171352365147815512060703558653346172723715758055101852246387187921495282290798659983946505354172529492981029210574094899916089065787437110355834934056149868450932437790376091399051856836308311980090111758879606032376459033319748160211592894185930021880684437026458257126398700005669173777788085237695047865729906366233693917684686538361967252506727402931091391174966700164058218904788055420150648914505277186238933997433640214477225818969504330273638813893567266745241127658395328721336717498499241055516556127778815514971994707547195888039904919973187606126704294187979405594175243071566057463112213777878350602390767873520664350056237636854985779791917049248822551386771688140321577818008729096987154898312030528611934510786979406045831987436525058543177445565679171477501710521179544228798448409306582855626457496655745146359308279775377872669666222198949518235441301266192774512615878860520841400509825266480056465629459314803260720607840038397533203415046954700035177897491653882496364511742466076433808015576912286950962178400060582821203588402595282559347098702286529642751271369553064618927975841524162564638185456995884212551673666331550829704038046335720096791015538814084125984928822116779016913699705764764871593665825410726166185860266770576903430188435642141736512057726081411054133837333455705339047992818920192563453183668632876558796902771052353953164649815856565423871874966832409947186225022865142698373433869086891833458114656806254375090003651526935906055204034564146918541171837234118098674169533450674500785402561182933970863972419985061787177031188735113823189087246958515798501484596322918501926058656763143976317324201135745131362658528834734424512237049679347551389892573590008435925428272195759804373702740500835778739728161372843864978968370630512446117691778089693463720317727407708686833323623066754847073266877731590999057265870272446857177214825247197653594761180534092151772652525432908099791564814269051670653806851371016236568832140337984331313640188302515333996695680088456873479309786008511639437588241589687081072626641656444766407626686645788317958993148985637388074242476621676581347012571497784313367787996326151678149379550088799370743787871538095908266945707361848502396380705916479333410058064419504734294688549368471902908896156009880714394730992025537081104174455817795492229606212511060093537869002443833948235740346012385840394454168444171030448172231513530690175326455211691462193292049281383710377975780035402987692303602174469255778663998254897987484352035643813703887935663689971254676802580072857389474364770407832331364750435557049753613767885117052009688301223707854462388684757039127682770855917001230650360680614190330208718617462045767607904111466751086517183921455058504940923449136038587338809778349356097621705759646137024321165119787690061048368292396933100409013370673567430916423470692078322312534939367034950130046990692796173899336777494930450794564573942529188737548632490750628348695317984643245613351309535072799501577007838754764663893068255078301995364694822276549333898669394316852753212739093180298089878115168639914711023654922314478848521907842949932504910471412276230073885178932704286144680576684666906510590192725689412416400615832052759043108433213801808564662080231519695623721579224517406663739394444976360099506973958952044548124735219088897508796665767942356211717475376120728831727720511000443852790329199028239639065578028882330713624419734215594469149741602774029145288793388681411634253707306728709718050218212467983049975899899411519594449913339062460121538883039393725965684010399689201887683311686262591652366031282960843656107607426946811567802747011034779572356685120630835655908503861157603408157493229827064838969833224921762683285129481332025488050875672714092056719474346176238685787361702553891913660824485776000428659954109217114775530724786414392162665998423721082824215764920598654906979801575972581501008361895588549910502558500812822570881743637115353399639570774728300862662858998707246105741353144337590975855016185258207478954803498641642312806093245566874529437786470372778199705387777799447384946894388558130160622398735909013305016099557100743679591142775880006180663359941526795020876124893734532635916103799404300626007780822495255249100965167586761148477898334621030884738278838449323053593716153477709498113074488760421297843071381244708312841847862730814087178327225683248192077082437043587605860655086556310846774210388537988672988515850956698636163680734456954361775489044110968638236454738775801854128348254002174331013092222312498010262764805610817448924263298376591484977382589439518421664747464661953052239545169613286143794279220144966045515982801290669650400747108714813913871785859930735662954603774223046703701685676806715153706510942557863325847589896544368193909726502651404601674446596924802274158033030257858121432121514586458355264432083410030223070169557042726518926704613851656674057902881681522615216268482374869316037814116973793789392708536858817224755431054914873883582518995047626513568397191568024339993154988194322983511371958824596226736342065385655405389345054468724766771894159496135630455291734647176345078708720550257454910732520662466077179439449809822747849365791011711708631006847324270452290993188175932948168474094596804860059166132254400464902665496360016226893747750579561897789710188421169496447132811761394620952847993661691957617244807879321823422830513096664515284153464500868542153778605215501763845461851021056157876118260221022955703856589471123118399991820562916645463968215351700292713642445751905087194300513397276136256426375052692356595829018789326610847447063497842842477781495578094678497584832818239117365400026605682525116657655231671857703422910892718594616067749218224139207602447163246863085252544446960684042044759649750240127825008331890195144485308224923073711023594272148817336249375168505498468324908862578114519406428649796111167708466842161712945223510287854791791254363434220416062011466072562860747627404222638113403686386423717190273603559826108027476395137704384877036062555948166856783168561893458909770088050355422562391761206906655054688116211315639775807491116515158792699195634537712439366819307387202527244119584019350380717265458520303814090186151831490853276551064869097215438436617731800585610839816331265477523616819670736677549073508800360896361305645880208312470092942383628094866774022871733572293344276516667340154568533996439481741685774837853743799550217103514437286504232497050405201490158298321344216713347492970391315269437256051780919857963623343645292731100295426050126166967031216496858296050453057946246372854877084389893592469730631915655206900457238575536924971707942665897664063110201690673207727618379872915291335727709223861704067054595450775537222682000000000984592897714734017949314558613238362849243108265774031590120799380135695968958391534879746488138924952884399947140891970006308405156697727243484267049359938347912081072113886310189024615468457118410037716728232307759949699110080845158943225903941505054176138631506544582348335937398646526872607693747625209279202036882389432792889509443915659015498200252316464016359374844976780860099474485181449049019489092555838928281184616169249336081515197422342298047361832298804337000868829801544827421103516265050754554696335823737530749690172410075931053440870625894565536806002687187344555172827873250510126661373026268680504821435363527043758663209248850558761481887354458159094184019494177620488498151137478138670688540847974789023072011995630791850142568923954866039977806377892885500770787593064113354096299665405992976985928438737215438896085357806838019248351615472637918806525833234317497192223346289006899995895383483163525868404990064561366711470273869080723979677031890376388186575145377508370072028261674220858527081255458102886616417606953855900283982482308653113094761462098090276873013203114046645749482404871263769229025796577918171391358275193001287384666358044121971069539644516992018071735823690703696811497468569781415566874421424869996428367005497308450115617964670595055373499967932633110356595339659021747149969102270320971286646683293825010358834829811165616599250066201988623145477962604832785410251669432088743774633395181802838534827705967225684797547638307501922419093077089332208440863184291618381295838993576445849992377772787001785389859790042296821941254533648619920176199512386395334308583236475855838467476368324613429387496581296523353216235352340140293445383707370919806352498981255471542590773527619466782779415417368574034392111469659986186689459311744884230133997565321705975983755733631319450531114103720538850079274027841999435863343320435146971332545203533670359993973681970026918379734663954930494890195841286734436158762796610326481094446927778999202206820687475134463818718922405952439294842057637140384321116631634156212323772600682479629111725245744613882734615191283514670589903546872983235316024178820146900997176419215477304696050127900589708081795444678465415207906837303101574326397112259038868158449286027695712099848568184647959942948093504210033591277211086897438682941289354950777156032833565643371817927560590266778105001597893264365315575656749587275586191955015277145168450233537037507959950604139567794715238937935052895380280896918255023682630573979490132865831186306017870341581160164009678313345214826629421123153248261348718535651937546580547893211866977434465346948094009840362846002473194449110599391660957672211533978948038532397788798003925282955775290442860181015165974196337265927987985991327592684709213027138248282061705046934517023832686070103159641029163380161097425069906650275223499105694095151498072280303321636594732279061838488259181391906125870698022011337170021944933849681251534548254602794328633871116662175237285138590447238447214507574963912964815279897760694593147820579599759883845124372093850079845911258853242187992193592546607903840595653084430218801515914062015543471173713722586384556292499089361076017905807157570801544984177540704635491170892778351558247730097872507947232032156390197713313598296152168597768154278377713059606858683262593122551477042851152047595349626184042146218081037387061773856240021435308348142216987474740528408475441867491192484236273010923544883155483416964634764415319755111600191713287480424685785776912713469862887338445054608626346046323686503234952866696394427059839479348922157106604537839186513295588634085647107773007557668615595565849585460102413575611679241196185794876005002326443463983652121061230623669502379123952113746267074491148069583167026553176100293984836092981583195820691326850510400228134882366433860693470712008653914724744627561525628286519118374453152123352894476632667250174830146032923901529502848473361917949384009951640840318386956665204278600859309201432962571406786371191798509378668790960424639437376776504464544527628267947111367040282899694356116748866908614838706238234885278527727047455788146551054377335676652844825308474440004392180837829627959449601576319451378689727338661397980894054139899532183770475441194228009750567213855068469392541970030714282442236577553739045054741813423975998298488131950756079913955759087155337061834439042077841930838177217275974356448942399424906334271980345925020845169042658652052845108106240943358126853180906065463608099166881249788753655440359766113132403704349567594074949787793870764839381421636519439311818507098317096910813182705524162737674468270037766157800500019219222183370283399642449514566551102565345809056860207120675074418172782407258147000912109149372155264950349280468565287506393501706724054793535023652424469780313019374931019523999906073761385549899911958483814740856333938357443432471943079233028388388802335847939192720876945173544971677535051390019194252649743838690146974846910235294941737754787813128477609122273463290221945669325560340131806509382988175112330948093350002291506887241211702072537540657193172059739680482783959915962037266892823629618592856768887800083997034695631128747669924598186446647142755595061873078262382879102682217192747386785277641554026042209865100276949981134758606906751974845070985367616791800107685547917134420163356184132740409122546942237121546062557010513910575093372447859174880886454627260845413328252776051274535015753020949839137031320853425790685046958255666753019645065404573251822147053508992372219956603822145414638565356406165640486219393225766750941251505378813926906675385935384113607735349396132996284409510499068604197815764668146285813063153493122220698402777686221271686990408226347607504206062450647823479843409332239167894492290542981384649521632599785074439532660625960508531497866307997289122286008578716259437161329346649830598874386506143989601955612638981199055227409915188420075745610819574835152750215362729119240578815531754278094453158490714293801387316276176357981649606808528972253882890795611108494687379515151905313831661057119082436461406171862635878539457834152179629365950166307071670776127300520786757793906601931475019403326025764510831222525336638318780729625984776401942188968200895666690425859718157543809858731468689224209811730265461784019797709342775989233459191454127624585725153584779692124592809713970059898133317071750793156812404102864840688940605349829680880090516774575053356010398816299125072332068516768526095093894270735970692849399410459181889735752043293349479947604420889547137204530909138821844982638212881314934579793897858279482561667021929887357281308846668012515379586655979539417381895325765375904167285557089842927829605429969850638235827642591525516019964079857300533692541407568886364430896009541274145165239351629200909614461847653110463468183361998969602644240956101851150342081735757598571682807172690265031645877592295035744823547748427945731517755709622661419344405623585624713081470731895808245314578764005255081500953388253944829951180233576418570469472311594688825958004633420030698082927450944829949265411889703525654923664739325379615382743085634992375467495754090714115808558585705940990882598992602866256489157795267870336564920463099077615445487581741505052529068751673048347176218352127896562714378292020529284220514337054810292525587712112225431152638802417782067952626878124426354501113585979626894156531160093156528009268289722167727046446686665088685715674395964672259497637276388779316235548896785566710339913840911829771558224997596530831782069984878192777201300875422077136003617416788722168765962424579406438687813307028399992607517854026298294037995569587438246444368742921994485093823353727385807068517572551835572542120871438758398332512816439516918099326432885438615688660435051700429089184633737663364862414048747045553212709399331898575642676367466282738028640881062378443555906976286663809718488895722437432423520690131744959437944452193711224661083176924520622341896534343581971637471373158923475842663855944284989081545774294410008609740490764609498304667789168837847072501514273192596733099419956364833738723259418855840287386233478271280444692255945209881449733562237368951249369098756410214976752749652746984260240509879772916938836896383265308063419750572870602778252273962679882315209482574158237425706614375928051822099864989943665558152134603033916406153165184124279192855702979067768754331375040853106846927538363074810160992528870834086786763742964512828261877302053923399905797824091034813017243569320995940864231609161484561941873841430518847142516222066774122310895591542517876755201162348476287570629082687453500039018221323595536204885835267450545141400907547478754150537440088267193362743235662833964075696330915364907431321324179656729653551900904206567043272922044580234306378142986251643387298421093951458864987515705055135972981413710476042680782842462686865738110167008664304073578619898985502668964828114619643906618041125108640997980565538910594453519560352587977770625975533033273095679065520390227366250121622864965499969739657360527858259849322179767381131973567951303211002591522586358619392112490382877755798704283555980290072581804841114491592342961310183742010765502566851534036657846151306895755461514288401339004220723938559690423329295343483302959031560588499229553814232176931976120230984055512732016206624672693423943985142451945925769429831030385524774359677164286852238027916660057633882038467557542160543656592203591774934457189013047939192543450062881420113838790139448212834089293730053678376784985885716290978369473652917398998404423963291010883844342892823624203698718705983223570840914230157203518191710669971547741754492013127777368639771206242908720394025497308803506840250130051222242007820461437472338935893645980487908334603728369428051384474815344019560492912428550405990905161376405905425888799073282271595583427042972970022557668924565914350590846129127426830602543578138192064880522054930043663442797300704608184806199606095070505731810371302811737797336007952153934078776346620331877495693287039509351878542168283263292031468671561855967949147618165796400413717801782450996199502671515043175986447505412088880619569268740729498443839018453709586069748791606745935867249219970732072305778866421231178179636467317374669482496622186737513047364382018479568394492673777010366776765449877885057696330293271438441448180598075469319216211650466636607178661279720957431504522190124565534827878966155381211564302444351439037459929655087679969648584324259659841932843928478885044478938304033144232450499331662500600037282064586181222461675776626153489700114084438690549522111723034481560840089923892411107140607440415492235209073244439941888130463797703173668323308275761040132809917142518035158260124742078941979021742597955449794680038887666973920940702361618720431382136205504819029273576805162789477104511587642393415345333950834960307764468728052428880104235665709248436959845138533339779620846558593955171715983481386098435628217807960900164140590173281200408921505635260185054021189250316808805705317257526959562219796420228537315214759434147020650433831182580345264176741345987926826972262962859054051251554199984847969803366773578292270331487338604089989033872608899584611287604867697017108346175865410278846895467547132908612029002616414972653208861120980151409468896377846898385120204191622247619300040083667586786136952093279658269299320047683617825070877349970449359680483217237338347862835707665496520731340270302245045630958984839304640433582042418176286389866514244246745780934161213257281068515611060203259371280232540733398805373636948585138615226991392683933223021447850729432571953200223770041340760883083441431125534689675045134406289898384820118806326333562861078937166965243767502192260445440505142932766328946916387607528337803519433495294796475379834257456111835967069252394196216305302873918061022706953625016392118896958863274888119350635291379606150841776690754987253038908605421856293669238759891872189721865178717669915339013546953980083869603933891460664560593715160989951373941945752746102067842935054772062426446854327815728680082063848730970303102007729185759936994940722411521898159168920847082057527053475848977359849519679346990764512862257832278045556157752063071617143581641273268923083585877381866336342456991150746279883010599841357767342519652477337565654340221661447313327463911420562066745509170928529115575467688488348003412593379512567119347199813973030009669107294047274600057952953728805668747355538453605964791063199115151238542042703251467267139303372112866005073052564125194478988283415777910353736934706146239138770654593216279174591502516142496368486703022055203312692144799436673553814000242128428419284646177925620889439001762517973371733919252085602286168613014272442318996568186569304061042309336008431410621833974311133173334347577707985493788652456417498118388902291728230635640101869742209706606703174877805192489361312541645267786677429885243884717842829625870134088321559746543044131899966319320472211027584177016266248765830255913408954155977516914784355099442767014941083356304439239803192112152586436877793363007222997493071894010898497911022966094070178510263538719440507340735888071570224630227496513347912726035793464942319867904017544079588535505898590475111017575630012900987434073089334247023289101841904525785656150732202639765555367002863519103223939133137296764684415148038994405791025321613889592522910117143724085856025926880129986501384892763649333994388681175180256223353161939774306767342865877584012583754616234787051921124536934593090597983778826930757859170699514052947500952955781828678243069166701163913653573060860044247589910278780020191481631350368308462610554485131333067029286254770537010638903677686842412155060075929273129250063434943334999520665871071455049062035436209688264433203409699669931014515844025100784628138872868325109040195243584290117407422020685105367134107515602110597626128845888948276162227455169428485227247287046792237319151399554917539920521682197219016473131390718311594428914551968205333941899321940570074856479083774660588383396351814950005803227441145599078394019640424953741822991250493343948620946677507612468742260766169771369529138006339202069875943806584726659180619602245154927427457911622987424715131951457568208932818449407982081869627422246842079878880943052849658418006688358231639569194729672089241757229054094841011387329163705741669498838604340838716451190924340208515860794120951770622075748592082200120595129030883352316911902825034085853504510886455393543483995565668458131406759673187284748130973652486107606108461659009723970083132103313378854841009925465622178471317646505463668104972791284540998621395814836895120128105030871964657202054525351369127327177669101138467589775211479212180657012136921249811617571039561730251118110803058160973151477608834142886819484902056753885385268441834224154373562813959638435509244568743996471449159462762587609555525983044004029255924040953558976381366954783824316648671166154911789141825344918150515010856511434546185459163150594943657435719208414520855449514077266083381193387872080998442022467645822253509440308488219326752348042666557925403899290717111486922057795004801205152409540257441155376684578814834460278999902500254981724276558381712518872708590925160735085737694478478626476842800458555686478543340664738630791641918887840130289222803713801337079936583505071412661003314843019641571093253435421646966807766066756235788587162129487587590275154652747983235017334879692012313572648242778433415245985566130012697141881403462519982756830734692191818069674451647681511856188520146071858586873261159720712629072296269207404796571869781809571404574419976317191864882501343004114831880471163305961290534567333285459494800897705813891500073142908983816566293698443640227443757295102296499954627274264136256587233588503816745520968531098277063589038083630059081338768404213025695666737713887432846399191414234008292604088326936405939019101146122170089479613363855914540162014514163593561182103317560655093696961874483526663138484308436140238748236093308149216540556168336711963458476835796551817379940576434760427215950406567513185668764044068640153523486011629512781767708204980039687038014468634940705217092505610542876131797275632356871117036169594010364066288738659518659423031332610046885200751761641066359125019705114959241730678799652519277946368229522239118710904351634649622383582977197956861103250117622620097617947220629516344026381418542068576983884481319966057768091269247908100287074355526882901976331636122355077043686210118819524907325437507702016820008620057685085846358483042113317435055653174682846821640477591852749221982864985050202704641429381034034880393738279379135800494534331967673949036494530797385340154124772436029523978363953916945349208089319812279149248220340065698780632336800795800802118803032020422355644859983365849551764363999609185140237719724209266498158899375508047664702108408060788535728329543048056957183333669030012373773130962106337947585092593526429047330797607045307006596149087117969233314639220414954178528105153157920271315176113841402938325121961578378925830399241853232821746246924003578918840026810668024220325101134260410627291998319832673134517109487826015456084409431566247451127607542128416077242513777859438451825229499018731041971774876214537899680435738383747272049208778267061007688070764723881393345643286599744973883402847652229636939160983329632844659350995793546608858273461523066421330835879745785455376454766043104448106677609195231009689883711564848642885043068176925802710183010682065129252688606483054926676256502138369994994018747161867014212318718881864710598042343214457367512283540180420807309057403768380638284755105109914845424754881972307827921819006468239426476973853912254630470525057457901402297364995396423848167998977757889087841739317826106498938875576941759395935181949971303690003479072202377138044798056865264815232985166641388657919162042305931562538683695390616194389297155429755442164192656238375868723317318216580352620776268455302160555707977476841641620504302480386087422229107272750361316838407181762582592460013321271532018736027229082518219514603767611969953237568110330284625612257875831994128867093118974121358406387593514875912687658438808641180124849407850329327247118839702940106172347522857636538433293302534517768108951128090754665760918586951644852097079644159732159987951127642271103357516426143862971279860497961580747023898778431800647319399390854916955552257277519599450633253190354211996935282688512837957591603938223947215038915191404118563796572289094289896983202709508161909473195484206737156556922366595435465764442184152792232660957490603502155618763207382757080338789240569883706183283475359379687177501708014201685883390196851360274020392168416398494100382791948199775315809872758964511621760961545230385739938767153261340894605642677423858130375139132896823397697345399618854308555946150251883362544393780323811681192546444923866612932958960173551357709605016247987854855213593078089430858928247084904548420334328600719302070591516824843254159448272680786368383255267059937999059875019085497565143546956623072508051630422868063171704966387968465791123819343003665966717581879072177022276126756776089628851037502520126558041636358172538345354906283917571103158778393270538317024183905206694378121845903685424837438111000116133546783157905231032927431277976391713544019457557844026361257628741967061436084335263301371444339742178279803797853098224012665954911028926228016165498668648830418555596541849721790885948015206224163816347159806188740508803095183903746057912421207277832473624027111477761251996449067211018975676982702123044582597239800212192855415431698091469172044336228687269436751169724807377800022655954638110620983785399893375911148926081977227308260660857191797824961762668670318234778522982806965898806720723913925390043404405820603288768480934884790594174534408170856665965364279899076864521228892006402345719783865717734641723088496784095990719075254313598857048829231674314373770008066908310273380936649391849125963969599495697710955440814643706688291210305100960109044189565669310764237744359585641877842441160944477086005134905133772176970291494171440206118257898273222690301290653864086838852303209607804659235419851518620368527186772109289675309046697393179093299410346929955589567386423567112287397412688047563622545849083305641256273033639549196178257413217633199798767013549270212308850012905126068983982506381189421689036251786851661177155283698086857495773751892692206090405984931911873851892425974748693300949932370554332345371162920935830119991729773914460316212265923850456939437378694597385970943748833680745088065407142248430557760443883797540355280703318721794916642281306347970813150435236875705685691503183291820199766071499656292904498925183828607563941797668908834082772655876069237555083836225452902001144350510578434118918801203939910232797385041567436730784745401926591684627518585620408583163679599009056209588745258419480972642955806920107005124520431429305961463197107355308410730040843097471218877929910370451002835867573628710164186829346785348514431403711565524997159101997537585529519650156451420612417858428455857908576481387875385259975755438152509298945994951759380852683670741268358005952176060113455538144769900450998770471597204815315102098920035702432939350811832776140017199349314182465418685093532756289281968771884570849489720971589791554865295871624510632002490883680519170530049294125323962546530657077590297490214052678760785196415771566323327339523975130333126679522949677564559262222076624930575000597769851439207150950034937040019618362607336662378537598515603725667173063208339956357043223641537954672771175642111576621594317684167884437783035666008613533075520207940113803805674788312411968602876593887971512421830949446924835402865684114103880378034450984250825472414990386238549422480526077123610049142597074339051886220005989841699455238374146497831091317183246748424954255328120475018625127931760779212820547892149401348981481801089214912302390899821636789780828388441719066917466160382807946376934728933603031475303788722786667138753817805029504454633291301560897792278945920767509932302867056552129565875970764765232533080860786352100734704189785274140976976919450938745083948241696614131819456710878734717773459701303469959675982252096191970695649565587131775273435177547970367461520481762180513187752466552786853998204923421475195698923221779045432751965784271489056674533188648130438186879366221566360911112063923131109295879194302888228921559677437206178840914128348409885761045234142943094085588635055167577806568652102143371984690802100735166838374278993214411510004644551692591784517158984173882150619579863725586934629439688690747213431064205499454468274980502593828322463209023513865435558644319760140596275593293447458947885403167342508339489889919262318415057185391980404529846549284459965106221006955714653425202572241446650529751566120474721552179365987233070252174640858765049699246768614791753656971133843444908676656194248884546001024800270201302246986105362255586084517528382374364454196696492434132887209604213917283109586654166544605965343191090508589350472410294994044713013085787794305995968959567049380098780324575297702133676974942506047133877104618407911056547814023115982901120227102275928311662286285391683906887178125939817179739025974466972191780060028212791983556435827932928291963312407843061550542295055544833164113478939407265727000618391394089819713195730530265438967579552395998405918799059089186482164959481847261582401162456419000251051498042493080457203733175975873310811339469221024145738909450973197624385371296506326565399775737035335695273590997238444164985027421164160454947766989474116863103757889651952193800026564280450150589664598045335677570381830180676476921764372159523587219555880358344187564054855733689919902535038638410891675916503002263495735336697587260896395642272561458974289007920767032535565811289650698479522795821208880041456101779388653994844299449121971759540785405670291793157938734092631020147695868201880504805117389052689612655239914518422310640902475615403235181899857872449851692081369776332371858778694325702869970836236540348427980475380969026942164149362549427984109476140004123119742995166770168427822512317773681013458419683965964382915249247964968234527191809172807735952640875445382272239292238614787981397588599537289168516625340802853996368973104051502002952548173107586501851867249354173219402799888725730671037317149990214860330427109379337492522852876931533524633984385834090656200893158804237700200777894480442735871337635508690322177339265363069153792291911793372020753306435729433091439074140047937562335653586680065816634751434667866242096006811257838135204782008277259668420327502247310944511748342096086790895635043362792064744607988290715465514870980264804605208237901068545256514778187878772786545598070532232401493848708343792572334014454417802863143695355634804859429492584091044320784769863672789513314223033361036511202515687734640545278839923655160817400766674613571244099529294349371057018011943413065682302920159268794158342014137511671033504894494565625868903345518790064457990505281000156149576717807592740797418247611493991645506331941265803312787134327494719019214803973001468695680060376867730538975477730700289001495898181703201112335676417639781179359244392077379079876172179315283470608736247146680273713671785466403178290183690516817614845487716177701917485406795496449091989490522496649281019447862918659445617120686728925758491926320334681878713332958128157427236189395576099319244032037565913791538044598867290223336328210118909002607288220925563065806641965026119165592073476074362927545549272955558200816500449665244051426714309584934887684786564841036650373646827535309048789195953530723863999068814690400864949445462929820495531989646521492228205497479432702004885078978482432224613930453011701664969267483277432110485027391394581419243869140280561955138434928526177120377401959300351301383894651141893485055497010401141633786271121021479322794297315021321295592401497999901690793141772726498326505056733887429975266344250081869779324097808503758220532083854893924071103116022543561973998432287610017680981041584454296992063501413922903829245862570628985165413585186783353320157419234813142572396449318959486213723789054443625338398608841262788516421189689400157147645785431426329420543870337078342904001239645005225355433965516498024173041115853388013613683746118170720629519041052553549053272944809405957492286267293080024508310100000458316212356330475980733886826647329448068174588289847464110883465126655651063654137998074341798525351462046187800050284766180820159669426142180950077243336925806125707036779682016933499878213395927483928491757426600106080722485850621481660403553602871955994575120001302188451656972990366736964252606771839370518219885443688167245555988126385099426280096796878183159268236903428463901210994750201783143649822178806285181928692578762893069612556050097524126086869840903965843111605321596444502286180502701342487463791498395602642480520369146111603049030656981783700635197753572356601731433800065332048134651170688644249848467156616981381848968057760243317671383141090374815469053306330466134458329947410036264178361492787798223887412173107699993484219149752372164119788511876047281516968202405456859769637445266425260336315257122798593012777570487221725718336025299305629989497103511655636613991636218272120024122752835374046025220158752639100452074889604154137839676994962173737841173062066157082420791127532180419505985038057472025105531709334107197739897153112235664644375338346679195654884891518975627114167692824607546059414156720977919178708933379419793051772109238277771161962490558677929813129387861145292733202982414538454938275979237387050173991462508307004911060424650495187046194517685884368788812618525208218103062833675299174808565284967813783197027221719922285999962134739583075110567907929872478421000309956554655823928404983362513746478479628118718877827586847753897288334275558533246432042487345976741333724252646785544367839590284154779441547056249954763572685869058955345682558456998667321148499996697588990811228118899426329207304858431080752802812856375648843344521335828448516111541717234551507732206985312083348670904938507830803790595285233471647069296973265009803117919382158976388827987066160791957487519093043891583991162428112781013424781692591171790051906139718201486896196137978350746253078780063402500109482111414614494820460809202487425704334643872448417566319657685017273671457548780190556239589463585849560982874117717203146367142514737834241268944776936602729028336203334154123461124612416202155245731491451580876913897901314697676396890828807688300809675133926412645778048485032786321764881543283963790930655067752186538653898948602229524350923613832176572105700832542670885534274475832976360100302348161624803441274165107988896100871665217794775300509696048372702274279660153859661535466235848171923771154188194092324925010765037217596658529433708026584122935632978540370017342497673635993296680752588802647257349825907673831651124803779413785833393860571490321214225618605781773479388594603070853296251494565549872960444046894067812016926172591626368501711651228898015777982116319782268741814098964663968949988614236723724840281279354448280379509315930982242199506025975194662712956298564790696608097391579824873630699210126808119417845360637857705046185632824683584853883114213071421149572840635853960040565641947090411553851376034425579928951558242231851724543023010518382349365947394941931092586230373969695667599649498434694463643581049895350119740779549913373820444908006223677156514010847026564737736821068971394301827168732429007689742127911041297543908496957833812742224582899122952247731124432777087310532443773192002216342967325520300227669233747281011706190184377712571733311408247305350121246261368959041613141899213118617193785147713588950494787461769862136435281898925391755808487854201167737702186262103597816615436470466835576732565304896785794552759581202656217832595165788326659358150570322904175428246676788203434379314580716124483208833636401439865303721545414851921807267873419806261612153060048822550986826283241693177312745739128052827012509845996068611672840467968170971982377311139798846642798872721023399295365029125423981665942501101154570884514263191245824119371191344141483877699749778079090926693691335112670852726585611444566797657518673440867758429499097576642759326998927528060254298900996404108564998743327196816657853872776889550727258540971640543756762844807934285601770076489687523377457652637731708529064856336502845019386842158914708554603095980988954073401586179820109610569388468941313738654513805768993090600894729543951921342234890077547984343282052842004275413542900195405256676328455798477376911207705483214302881057532739521830729085380566764675331783245119615818322308948165983391390869210430259880702088296338157220197451074290202429082113972870258617157920138646399838165597687499674103890599786141314051708462258849960500063931945139702631782524601583805645049184762576273292482351074495769491460708080945747930361628751545464523267749238695428325479410148289291569789907558088912762507259956477114233006897780905614501161853507490721239194504971053999458702129976070188584505534855952766710918576364982686458711694075795766253179330981104102195158035488495990850616108529852522954609865787222758088895891057324134068544973668292210281895714611494084958846222214276719656982571086667580231517912919260102147562257578934540483998840373174748679789018983763179976568477185411859999701905383776984814616840390634022672575015820091521790804839659413716434509471306672861050986072144770948187167757223121953147599602027932427608705242665301714236520850621544180283004263587047124154102933517368104004195993651518230917888533066613560180599112541280587131484110108543717467129157615378090331624687945732845785819933302055568886648875496456543009215712059168190201682122962571726854225387246999808741403812357761381973743741286991317856451016943716325444368534097007864698537555760541249414471848582289439172851271188730240995558532481072012830648851923934793490482986774728844045311000054713611403073157796985640515165637601229601352390067256042686153501011386273228816755444537895848994662131919992667923987122867814283557583148336139498146550427097240158044756821980807108709709635433108429238480649118214178427662866694236754283488765791750010576176682607348818536852171888773124985238589336322849751064242370377639765336419794863336372810480563918007869866311239094903156591403456191403105164676933812853418537681213754257714809750657492423335725766793637269753717498239320394326636094121955255907741405073119102160523339658708395452349094068291511393417956721728154775089701094803228423997717471563965390574523964734047968970895946918387573683035070603126401164650494369475546727688630405235568433345308006461255113071965019178067184476003857870002774378447742025934653501045254912527008431479591589943169257324815307702686261010603662199746563757643574599634896393724134514397461644063076805029094190594832839076362306458171505817104658050157848941834569064806742787790738415934343761234369314185028320722684355022120127650769811643384548419928428483868436699037796801544186652107578351656767571159313930661076095637625448455365995652941690682880410963386221087573683957739657814602171104999585478199681885868230895718222355651840463927863866532095379546397676854211131892035049144770474294774192076321599743984136937472106831622648542854667563819636193434611032750528274621005356123916436154892901104562374154133769247564060520866359323981467583528022766661206245483454286580753582522174958331692788226485989617161959538034152689290244810596203234710563529893241324209617300715924618256477423814391993333076016774178244344475519350604186638762315654051600165117729570988547872072585239564207766732870883568245044287333060308424737621007659741060792825537109025593806816239756792837606463680446175888606057862365612408631158091813985084061220697993612596100161345700888724199425750118689692345224407456830391795013579149740759736034311190176969499904715262330026370213261220878895747022250868609107844891830447141442985883660371374752037323792634987095134457172548571087826551391833374767689223145695905832997094359025603489662155079792264991454472511349277676631654270686814031765134702203602257929114640827770418321714864115967225389370026902263941227151253537542778351694234887008260205647562542137105209675974677879213544724395946710660401530720400425152323895873813238268957488758233422886689544260994211756586449030611156700805142688557551006675672801121538944424825525490317472431533474236227037813664391434526334214157464772227139054966993630672564685703344340593293080353511647962614048655951509431553217513360406789627020116836239848024714201818260321270353887960859388953048263222067151985841109725340738438253650429493252847331638500497183299982390318309518829503732491661958676370996621893109505260054500332286804743832742732898089097466738777142623020306477648158816235701920941525569052963882143726253032227377183372014027196394106486994648951670837109389021604800739185021653620130249593116176281952596107723407141897283018107459435428920542174043910670567048102599550617452044274633160513029386072883126586557979795819314703151088956723274247771090598963038588985886668235985792535254996539887882265922546690023364528047996561838571694939191547986402219305244921354030298789146675514087242691190183355937595507324591055199260565870125704116346726125189499400089729035259892907811079009701021019692892196071548712712245532241206134758080073548076559127402676662309118801596917845192865392893282570385679302562788042902403150670260999369417539478154460992091017998742368849906476056249763832660686183086349995964045697585994609272072445031309005239712497344894490243045827109955316407244799849258129412986964087186164898436101603475873253367057392893039241396054086649198705344464415336097947122479073153132144267460971622305832008798577363946507024130402623642461665530512009901416276470765690904273615608147354736142851224775928904406079046374669292278687784327093841215690163812021717361073466338871072929201944544804558057310710593757751821732727170080725757165991271406571220007337132899467999645243933598331852274374453661716848129419646183199560183401739279646438289775539073563821319986724962235589195176254707206296416196284457878527624987721517809118092346008641403835814170278824693962649222730524896963856984293762433392341777641434493560174860204396924005280381760537596940501102599572171328285128753828969769360351254175516741573338567126086615560670535547738432297821072889078844328824333273359518945087360420194823405434954760371645055681108640242948049931757209442437433714749104797745751254911155481967519500954486672034206695109079572423308461146368497183774390223711889166031939650337243705520545967811925087911341650229144509314636598245575979046871215148484931370175363487394817920869220811453753356429965104336003011231501559260831142295768465492207354144315030522194291025904349851202794534327110147166846383691164299832744167811372274485543288917922840662956593648600131890224539316446846408068607954328440454560562481929883083909881622887870002050978550016093008612172630299259508001712211794546177838538048413096720798265311816640322938646447056902642111054476604867291814533592750997067800401692297649167392481607637674576158366237258072321741361247552120649534319365045653667468973352289815284472949545235918916752019274880309082917145569718833560390232583463457964864031833121492761072419127709165219731905829118997624999113339669919278389356997656787554135382642505642410329379941187038886514110805280890977021550432095827669609679803268962759254693612740258616144924134013754861015475943685890357273973591076091530750196071673598483512195810678216624389199311037665065033161539219420541022290464594562605959104525202375783061504913614276562986714027594782595930949206728867745107276036854776917191008074890964968443286062698851753510810637643736847224529405180907688082477904365272649408203312464953820301654442984333985655755849701642422773471045285909632250457560916312908446375400843238774579258236377011307308426696748273838341127553144880481106905680424958853906737597452422083169022471996048737894430781787178836198387350154327691298799374402799896982801154704431080905274665909640434471179421890739128361177410767679305373460834845295035700703906901046533767487339403989547965538589025424775095903272808020980907870103787003774346971414569812111991138031151098283953561619862729355022802713486821370956405040615283579892073271300973763764702017501940480610220065798211782511791835129782508697948662993415979861716865026967041439584574274298834237720697978085663367783807503052597554318512523042321444109476756881892143357319899737070214936932902632613233597661431863462298156456040726268850017058369960371913919348605651077618049457261427309823207472815451982540625111952075650480324134398958865767980786408212457515240789668540067937057118170471481917096518702847207841667338486686931758367688809018668853201208414716439755279854072276089365149281120949107144206295534497378851567300579486373522429687900119934704422755730925705565635025710571966873643355730943292707016231003172198429366635146271991399780912600276327479500893607829365421739192171047769239655776450138368842446051302484811480077762452829814186927450763145120991031322708569306813279486845683032627310238864701013532022350688818900557661076603953434515546815069955370328273269424644426887231901970504886790140618177234539958144474553585444468296406154883647198994511717242879973903768054135105400411261612749864803009011984843859481887799458274635591525988203717454357079526381691205445469081434580599642095628273466528861655645600550535861892387993193064982801413433533543499070953856364325986148060099572783884285855748088559126671900991805932502603430320040552407915972625711881656801689675498252330659000810706308420395245228845280568457431474266252579134348003251889312290830109868994047211268998758089584506154116204201094450189315805878597976997200600469527580345195783150984957919194457434352182394777636583178478632341487324627065791550594020275115292174642964431574629259326842141197620466433720086914603344223929772186245707353662096591260734579734682287438262167903071218948936827174244228319138696254137952062120401120097279244028882689322519117747878282514628791353914937385333378364414021508363747949289736048849719610656019050392515731223573212294724611071094466574231833396685716411781675884078650309358515921700052079023912928187604197819201773909577023682534218595397601185718229623965629458446578272784841823587248879461803460846789765959847937437657713391147320668201901882516438511877058606776186968437404299022873758645723853734916786502871049071443073136420846236246401394086711867339025077047008210359290971139976735471851333072572756434745483115240604171340161281237450811537714241145500103247972937938619587544600581684155357889419204042869790184452037399819634872541234053422368602280180079472812743098817915636034113171492072346297102707555560772759719154065264018682263278431578575572142107461879101008711345645918945574691131609184484783503210543610248650052568666251865669700923937908433444782091141599911560336489004349952240159279406844302960582826343724644626727108412783407770570794072671936885937228591469115403613540733210218093544772327902998963997045883037222045708451352109822683150909229041619772865563822792959036251198162094095031479000422650460388525270969697049906114434695164311893766332866482668545881982743284588481940647339379291165442812633728596598597362561728949046192301391791013065564503770166034152786784060239814163175195259377953182109263546575198333116695681638255357321294331106146019291997145440768065957906718381704153382072200910091562388381254417558722285729807746698443489820811766193205427671472408992289377733456098064959741257366286609108728946624696340241664675416779648065176035149963986377815438902272965552036191929746103949374425203325310918019639025853047653917116980729910517226282891207303047389485961982729674725945055585114325516417841952975925445370326288678656684500549019846410955415981144754069856971628064616764597298165814127896237044099598180394532714527795885063097240029573368548191000686641330545628118156621226449189935856954610661404930055990537468893203009492569089955101261120143365869443586932955998208733268959914335987731055751403449247991563130121816186743561007579007625897828125116677817185389551692268284299217971548263533084613381705388843941632461523341032971559735267152535829180146111164882436379854323755870986824006858547440760663403833041739554049501370291127888451949534956272534082772795086375169643044922093306041644738807695855851646333415227051061584479814509664464968523830132390340250226770684291053835176440106788617632886441671838644525622271605873613091672919168360658061755828702109180157754347240553337775200146767744404798555853575643179107275712706322341481354779048990510039922759280052563370398379740970657767804529058988598344648164508168889244351689533656697058542038918001684642543704790954928090820852511922759870809859470050520678509399868628615284423737922144369173845419448654359342433187340403551377353747959829374871076456507387496492131231511009054823742734056482437304091333478423149012423526283968091745241052356197250640203154990298404359996377927427927068080760593543314352612217813814449684150054698972381138406730226127314555376276352947976043705638480258634864942457350535715416868926464053278395870550548016715046046157963542661839229459725268233849146426001783716587539903057097960608215529109955401398301711831150964778624127845683749135625893145168929002160512120633301263825140267639758543198126306347001155496056184005862195214102792005135998295097622881420457444926977701629847418143272330563429763291376350360418836242351957581075406581987270057329632144348914922276259490181174259209151268565370046264155417785205016792042927368865589659329825423084201593921297045459962587862658516125172542811872596923348347724276720175080125272429530355847155130258956935628100644945401233860421178690334815376575474082673663581975866191864722512908083491234457553536517403036423546895005909800106877687309566329049458059920318229293903607629055497189713733904954566560293927234495600639168145136040699428970804691198616779390794958260570326729835168890120218502706241952701668506325185902728131593611484843731864954163684770903147973915402103056917219278927818586801804831485862329119419568222158134645881028678108086834338628769192664536240002440353541550108847215426544711074821816522061146669483798010318606694146951090203057041989415069753876525981616751773335040237018219853363926737049508068153141460467627303639057542324712234267791357821226589264932250968984775157666573592223318390662880016686796069805190345365749388440812357065053020195120442325085024852767666145381310783431417102723328801303949146563998162267594203933347078242209559798648846461639896422317078955797228447479239005735597124042837690259862998583470860111095677243418370976704893027543827294274152703001314709322221339918978150437028406275244779582755942648342743908994952216660815501192322668363474516159290444802807807920558464399338438841271614203202724186430774730008401940576427098836947497942277688439682885928575265154464311200111191061472257821453068907857392821366910613253250210161933648242319915101457490588262902764946364281330965677851941475771925933043068747400604665618126763389950593173979822965848568812486433314134553553485967148453501931644516860978891086081887249376107375031827722476835212719785557939751713930229913489539501872349250486158251823642149717043969949199412408447612842587509277191663878990267484239908351413512267567768037557612778177032381421139666641402002628620371936106025555560175893708849338846656077046467945278922946082274268027458581568274447965366644402498575009472101141469337835001005573137159319296725851014781067979052203175966036676231033646614195110581733433680572184611645775759383810577598762417323520158847772136247541542659806379246377518751333897068880220948142762856510679516947604575882715093913825609821984963763458875248300984906587862006922569499052903308512828020271013948175425294853619377542638057321798444068936001539252189967285340119044795018323048318262997677368980703197307948298060279681098967490252352899096390817231957148111032497623781569167644472955762174670072158559486225941709199170685148412052398620729436775435948853456812470803410627421933655170777058943855166335329075652602325108442352211422743286227760821865096294585800735421729856000334988674421582395796074170850763492831804154387008808212559647956216268106961953062192298055199268848987555255788164521774443632299446958254717196789726519856906148161856724861652015106679923271269086086241052291755392184778788647582246724682026639408274452372860303055567875064651071481159036278870548232910321915534183647127905551677984003819257868587721940015212263943099165363180480119632887969144898968476439551765306544286607049861547971696446682269885975685633204980640284941037348492714452329178914290238807796691064221011578605967327706393373872893533677405379369359133001620095648920333367218673845596482242333020823221299753930566944778310340855200088097494433913459290520290045171304124780535151674911301534530792985072593773359624228989627652637023072846909752663408797141247554382143794594205830378471633087701423238624411856138687037991705386703433000910057472612912625750971283016762103639286812432237797267948246014709648990348398324948294945082768492659431945953172006551389753258459427077475494722694326759187724908735112733510615192655297190493173833822016305963638785024254847760013111281661708547401872857112999892225860338151059150351848407899125107570110714832352381724278691094694762325593063042226147549081811539770853607879530215379718068760091858247595657523263791531211397585043483055577003814713951336253794990463716801582569513667883315674790295185880311026897439251137607636030257996718687203727266197035714098449252057322672873837911766158026288804353874043754892431845218009948135951096443484402365545596466065159907302171717719130839840397923492576480952233072873421068338000990374181554288266686080127715166248222093455259181380782112207470826192481448225404827269891004881656368012026520906928938842977195931980259619383339979893409987732601969255180531331333376422262705489954153026801949622658364203131689548872990972026532184380997075659300266694458730625993186130593793814904610966055235660278331046050515508102452190602627320569692251711886143107390201639258811376220151039721868773349951157419616847764666098657466232560535902871899078711801483511917732006515450298756478558591433640507664130472205523118326195974284072942222577412721060095995422210786391568808317603960319560733146497459199807043765469168120427325035544906024899820098425018740406578125738488892353879409683105297190514208930423345582633772204827872029531497717303454865121075268021007931868393795748025419540865945119767352603278035168091340095334219326255583444825635357839939545405030877739961538566035012727998209193926467636508137703995936636259488653413658349095884659996263810331331838103634399008478879392153613362415007023669385031379764957951156821595758330909468435530968987480129435824766585390587371768784449718259005845939694756226527804479317949641704305902378496957082907042404525703412384141634009444436735739901862100198982494756941959603040442449153619397629586488518478082360456541961283716530242048475131623514190444590439097055140851493579575946340773558544972107704032517869810342136509995214650010100979823446792396842884218707058921344321257096671335735083594886036202442204452476237130689154955954313820940565416660395331838544953038723056194573790724375428754646414571836900692862757534887614601234371883805914731066219899389217396438086003542847101562105157844426868050369489942969846421194387782046936047450685025061121015696599378738123488520291025675395839781337432467166715547577859932499326591568634497547871679866108295681943218639273227654874359691465015743961983850808924939039479057747410142118835805273484506138165336347866762565455180458043827753548717829043827054251131433977386790933030975542736065972222035246026959922257868334506631874082300671200860006977154864791755782468663516781224903332859019604544544050372400972613987585760674944385673947309685329672210430171648698444208794600818634266556908629636873225316731900418002690478993501696956382861811058242332936216939805072411924972168263109473376359976516110435273443248071101639059979521388322225712904401782232330033891591227281538533755836589159528364938358359867058259447450717389510680274485238105728176757878695406264115829524168156522785197273238256612084516019240144592085513241238919902753107604456682360071303140411801633090096042805941673195444211978293710629164869569554249305892998789303125724383242523702592975182600844822025910149016859612602640142235096272899711938658365458706656923678947552678281745659179858058598340767813807769441173383685442703070321121756383271850637133150934604070003387003747100186112201614240463784759310575712694884899539252517346584766518135238015710862199932607837553178524796488558725575170451307387478319699808940170384411324377523572067065462279992769124566932536976100210406402171768772137819233313789668203476006315626699798742211189993136520396302971764129440648864581912724868190746120226985934424999538277624914879551989814639810071192137307616576616718033659632963175738487388085144266474359015277747295055818247733418555710356951973349829955170759356903762388558628233168533158140922738843752688669045097142990395656425767439612236370494779904850714150547982153406992104876647398865972158195779353328926240079687081861242612395964602561019980812388102453842237625454361037922808709870563334802395322256634876829973224155158922585344477813712879639465199102787045305242116557123287430744795966150574523036092488794495723949474128553801587535313618841198795465278436680541816032292551221087651295742688585835646527335321049677598919389272694369992529038390084672214308234010978508447306429971236366679448351062472935951060381615913395421001121737672044024442127028895384780564961002706197155803333967438407733832301691276436187825902258044937201696843003467617172543208001058722579980803619507333415717828785093372885324370024389397176170012590515379065616034242312377338595159841342569632542000885050348688074697470326919036273811412674169603810758287227811953327181170076884589517107261975102103649902816121900397445300709498816910198990882908778387281394321439362810582966568723758899452835799857435850359188226010430101050982908449103082152512401089435622321676700723341404728269515480006039575106788091996560009102948977290009784590035388650079149061912605147545057718536736578767924677064781915548727392265191621017289123846177996850655978059809204787028575769313741211922676100812758478594868933045800795190957698130632002719981490765385239293071348518908484662586340884289286440021935182088856765965020089899771285912691437597664223592044177821332962561980567539558926369836205988131009767639117208999772388574708460284031603522987281397403469225270054930663007259891153375590175740905667849810536144790304455000548371063705824916598275838831762052554169339230295884010296704827515509300880964656755741643807576694207604476930799535683895950256434518242202628219279901835258264948269769176847567094970879725107203532415677268486624836404360161599397083847257577200740411507371508536548099169223514645263242602138034411278763365554217404368618919336443113463204398596680416572593647169733635100821709005091357988569366821663537479381342290258118420738968180707152222268590689979557254590475734489111859234516964978593099502722804440337655318199774257504498260299724009769691055993800377717694668923519199288229824886123929577390059124520213317375603180745236638541450338198894084424141431751650949648786642175177978316728243117610466212692936405334270497521901604456923029532367176549586963658263682951954767622076152354960680519270175840771598595060205727384823803390041890298257718960851341739841658555312439685443446247376821689102940186287075717092235917761257645810446772651886510192145534741494807695483059614393616107196537811961434264899818709087050752729978955144466977534312597326729671365700982893195591470141522736567859842834269322540029950306337740557974140441535136034751601034639447829135237929680225290275959520760999331013356500903426384440035840153939420254841192523481463295825009725541567698183914684642707375421456676404005513558402813492061488593767967998700187604863955127127190309195083652605696623334960620615437527161628077505213878165115153592952549314861976435882293755312885277653202503257475910591870624970044536426895339152985548981488586454286248269175426411648815662689442831591235127565218503000840912860616237694677801587366752603477022541879658677775339264199737577622124560215858147346742079029035798924787166078261320147837352608802722146191082018687270822714399843297274248471511874909166583590263278747944319929580493640794022139160750053299662567439156378390619284728853563106833577747852625546158146135204975284932438779171276064815531772860015565457238819500640980389515230971182659274069816089089749759796136974008928154228985582583773945297387254844439745499517721537025947731429916558452700781676679747170404619610877092461680605602637219075624708044205233437912059439374255701554952428422506527911115770628135463663938623267565743342033980526636367662563738634407194427913502160487963186102077438150207498413090534812724787722291776172063516839182227796412887739166518109500283303699159436706220956581985756229855510998856801859572008401867555531593892001660845154995323794082722028410797137105172605693912747980201699610953014879574041236923013417201321520800910126502534834829601850318012298479680517945465467432699835889012028147678195565288750594751680525466970502134659248164639613633597017152077053893966621693499912301732453254224394342499562803012077499694671803881782303942795168821915907119724955275959854381540331930588113990172042684803255500724415650133457845560834463594125147998628486263376862936701261515128945174011496730083640561123530105310690637443005769434377890217506864939396201688608644035537032074804424349550980198154004693013470002305705401532054815866690339111897221350905560053694517996195007395612655672863228333939596285215561706691759678991599991005149134834695058060615217666797600136693757711481332090636212201618986717367918542373317191664768467066896991349514540485990076086821947168054281053466429044297326149098738929380753290375669162892931559121340752940501270042042411894924286696113352206290705905979125905226660656473016676625108680754496942824467494041169726432365740272220220834949768507407286650592153660598997298921730136037544699445267232319276240411116872871353192966792796875981094016310267422139941189981784324240847284240443784644621480732502779613228073178168176842429674284600157285811734045065913619212146496327634257210915324945738401129894113943946429304377664933637821497643052115797198632343069792752147559295960535141909142213036650739218398943081048390725699342006742847647972962919285945103056655338547399598660680258276615723067191456248011859366224396220080913125999659001940897476520173487097054884400686608147026221402962135369784684965390777313226992339809447712122934240805969533065414184330797695289465616096772882906132635634210172953040401702333036836869642284859767196711149694071765059337924948867196494668801958809068581577770698789104337236691096628302606083389391574777382094438222093853013786062199579103975698263079167034145527679767523582555742313930098811341357404152459871534886057548769590856018489311969068100692293154381954842991155625950806210124009920209243662991139490342366590911828750425537657236908400398342832998237332556713463704730699170837620506681808507389114704838672404915360979294465456319920031531430874556869464916280218784901340012961921907838782417247956510102971555779998377314625634242774370887268875389220081027755523483912923256226372279992684139277866947250677895435978782317068788733439096560333441446168844809288826017044932150085035971787584946799054122144586350956861843880207816367877310610151427006326340644078599566357617458521268571580800025392859860899251726282066272218343011605238731503741586941662537180494768312119293824321976151119914492657270384886812049512210184065632666188058764953671243500554487207539849341227698024007527605583144915197925696186667553297695176855077009150244870073802315636417084186179479057365019021430363724921940948774788334611136561437398768991481752661899113663342468536537112247869695984688093544467214359500292169327693367305947692998387583194641098799445762938875291723556006772939853854895958114827665217936731610099667729083043062397253671448820919024604463043953217810208303105438170453406011605298689451032053137925653993662257811955501940032713040488263878572507314809611111200469435822105780115487091901126420731730555739262857913247508595975009187692613984051061932747083917592019307859425220255522709910555320145787690606153038905456895966884126747743324300681559467799341184245654670811441240522027037509384456260418650235061403703165712207488155803376990493622056598412374933597932245595313113317757323078631320600925287277091907382671260471963511077049878933576328152295783277625705003669406709558758677157872704759226804768729324307293460669682647957069269599954393906313988095658308369196838103134228861079841772803060852309975115315359332777470650425023141275253185318453444370566559157669990200347737181866079900583252200676038714169453302881085218695928363860275028470862867152751148527472381842096947213256554990689033134452778908198802224784146183598600941983877382481265674829552679868928639249296460379417202710467093925231319907728150613503246406885378454221165936997663275344289846327129333215495432328886061191777350595765407959421624933310107810937805204501921357107910667339008904184017504729532895086973549475238873946109406786495098719160705428624854004213521793804445446280349767542093817204443623387502805137295752681263718961946592589198987153345504943820302540996952963661144957642832883154195180105620802910802631087746285220224946289589029898862808349327293640366858399421863418333339108115410299155023385279249817897773401698898180999237407070688837806927717998384006327046007243815276715751275772539156741743869199681087208257760378700815537309454194591716727547790806327397059535593791525645548002328823531911621067668330954120980366529610531329567557176127482356707546561140035776306779109707947808276091695294703177068828103713544659973013201896454400695365897833935846049824129291789703825993307306201262022328849970834054876137572475432875569663955006677467059890218313295584634214709808741739881765917640626998665177256050424354668043146251602890836612806550954312423344969220696187174828065291743807290374852508829814253230031273939162904574988444364973748449742637000850280870855909430979961814752745980980445771162903431904404703574084337555291956292685589046290141339453132771747090393616546669642360472485452313473232364033216841993932718766041795962995552675826364989509539489040419486494529858147340167366983980502696035539990427624307939711233506693433644768338275599737635918335860345166586862228910043042827373118966668722559872091196047637406767338640661949206899755859648327074551585134225918782128511531065414432908258457586097786157626943528532425529129068569452404596059781466635523497319176891230086759748948610990945952054315649444060193035440827667883473661790981991138584140081560496002609911623240679881380703498078579632261373603076350363165325654922738793460864576994633003170006021299659494761641136589403076045685889420746357969844250830741733712907959421280153512120058209750372753333227984752100627559634481539830519496330194141081239389062961816866509760307528873619550868535036055691652657657231357443605008071373818713299661415062749339903192149343281587408967473951252692127727164309789618078675939051758673381872801016602234871902262290502443057234463290706759987053020856167937454888714586100518877716814079573127443473281024755170019245504536761214832944825028809843820729929769534952746269677570670362350550575483430512433347130990843684826200130254745179478641765654753625606402278938985492238063149627649639359189484743372461324485087575539849693637237481705625537495241642837070960856685971104883147115737445305984264428793503342961962400508614140827815737319303016479826696257286338701016271793509981611101277438954956331125290814917324616476683968796500153064144121512883575676816367647099901943964247322708866054902912368665210061010424975809241001928824090481410300304179830834455482029011758662792479360261377591780737505286537018309261974308648276619856437442941018555320291625428790256651014399164240673689420188765216671678976356925289005439314358140088936123354968426576457047158188365260224965734556065222902879105019674633248447904613836122969934041958878134366841157729875224516236694318705378385090172000138807154819295746576770966445405842559293907909535539161107967626200883662804188695873629033500118735419308061233137918387131694358071923904602538546015872317820674368710057317591919782964485603155650419085619364580896542220462939333478403431305094497961365933541120858325562709115035963529225431489391947125326401555656864745512566230271006617159183445527534304255319875258884200901303849712744510033674412125065060646428698982182770388444867383635733047667853217557911135273314009665075203609100659523569750572333356360198528063753776310962600186984600155407428062779695792266756143767584536171086955281803408600683574740684339087945909940907712083451270800327963431125304263849571662456448097442247428784971468609286992006892785073117968413561009656001743493738389797157974215660681211689988853722566782674674358208291693808272883716238240494925326634059377920775380295970703135134425369893349885848243995348200763359585235177609867643717315264301947688197209604995579144704069606804852827765221878280239308677424568842632485700119852314764120203749495202390254125837705656767663627160156208056737207797183128062014082833204031342190009907555525378606595200111106461838152864909267009563788143631049445779431935415454551634219840912531131466325751933887443785551681032642703233551452483501153260844392580961783405042568238098792249574876095311457059251054022646952319154259477094151764306094469500872399201473212994174283921694892745662744914731454202292710464354066736507157442876958824186786949285326487764117088785925759510045849266537154061754441319084620111024878070793492834728429156833972906617742116421149790515417618324289771647362253365514750566314535595383743721044306532929746709623743687713763028825631133670523450088702161869103108690097594512250809567120256396352392628846644872966433666125212671086084292550132878555896364767190084658850003819930156267689678268104024487373472010645258543646224080782469831471514512544408824986455314420121344546388465682617810679981953244648667575583099809883712365051018033063219847372698503028275202310047485291563772020958816713048646772071321784325499097171689539599457650444226600373818871860413931576743186919283603317637845467099338422969844638839722731674217945493355028343813548301039972005648399793946494255621678327681606002078041287552311640275882998008806823329664428229397086665948599670815624581815783678700418185481541445465561280184512034265309752874521358549866561275660977530339463081995052247012517187888895047389276391927108947038497083414712597375361895508183175564646065884140500381054019196952449063286240444997967112262077806232010698439848828036730156408678534733846035678914136076807013926296137502813259898296983661384523256733117306113948829836299769679210013360698972835214220227064724189645930880880868142320422403788743194497399942705467100532629603244659500918198772122574804660705046599177745571262889477332629184236581356593592829953221485007018267259063775756067741894348454372100702596910442694492352183258147207498107871953565451453335938615456865295113453253731991557386209573464935181643836307083156836348452346583025324978718798117493717847264007528733360172160069286157413596855128816864398935997791385750549455315157276866118209700151826263718158003912418990781028904630984682330463962198940557432197838326633757268540803617577105901476071260711004054825127602736767811407919313305614354060602061715735488260030669920188103806171675206026159919090221966582255240785675391252909318459539033719879653690327716255461240928415911621398057043616976396256880878224482738609208268000492005460153751379928857206628629263642097600737874480833766468946230011042225160200937014319508412943602448652710389891240451505156297858096419203066706097176308530300376624594432895205564966010380555442243533626437373010875371941305585386695238509144299867233864153638161549359848378233682705430856294844005850173516000042011091973660716768236818915567868532022463824790443637209320793905177842107075251051722300854052830618516471839499433515997751664306425038435376357051877434718379878899701277185855184652669942559896752942593507109619700865571424868465300056422990023096635334131949803508974074661675467098009355721258944259984283946194022889339577679422839255363052920851209630214618970833853432352861615359222626958093720137090905807844569307455483615884931849878017047048805735865463628745793698891301072576053194035226452762333713052415756677852277408074228241724164402839823607377842260067303351542416214567374939197963440671444023206354077459575789549327770891762290821666154036608752343071920146372151926557889807181698688015733487725627871953041156199987752655699855366281797985693515795714126166700693042050658309808739813699392497591839374253071213119498851512449610589913814685225439359885567275114998423034055610986150523107237102380150095998277969837232582474060759577553250250012479059685422690774558410394055473790140746944116459004652195744132666529329777385722569660066888391302826953421214873717626753600468718743712155411928128398047179568742282815631158457009600806375482291415468303777962720377542104922051175056604887053488350709183109714858127606784781288728177268823140942875097222455031627093426044162130880629613998462183060401525826777364982775943233017027804815435568855670458036183443885932676769049391171625308626779498115047231419262914772732486899183386596586992698170316249106524403824385532611823555492650368922887267192083433150344041514606012055080427635431222520260186672639869629395128512938230125206329941014698964470031541763074296143892521867510596882646471085123322389241062655943942451868973016741232974219987612540951756273421501107275398944058833337472158815847828321299605149789390784041348266421702751356056176063838756873098546609157575542639686445010392206227759313309221542801367642833858104432175316579180589922830335415835808890359645788509210090190616121188791114781348979950526709499533778206472332677313022757274310886927960042395505175830047323383646429323043786184288308958213216842807439714492478133157398838139890694609410538255595369324429330592314036335631389400086747526271733217924815421881046083196858319333274938658171847237840148805003162543208345261010039010319350768581604719643110782461683687254794535523846993798434841061156514030524290476244064721464703980736069550760316526921028851044888621528838902656171816490525237133733788339270361852164442373616500665471845691729468170691557572706082441691099084669909018541493901485952860581924918974717825954649000321569996852339605349956812173542968497046447557184677059928137231179959378736055877207799393813302917749852070049876625296265686563446992382318628504322701742036981208093890158796187486851096422952349504882732838558574678666602824382814300189699830863493583092546005530957366299076042560426756516195774426918519884789497950732744082708464311878923322969285884893090833620659780905870574958523216714042503163215115537402079779852595383913144566918329174629272462006969479413773089750089941567459927588123793419524311134506370046282457050121323022824546452383831039299453117697586628825970101932803389881779358248943161021385071925967812892932300611878463481501787142724315523128191118588111234452159105810568452594076883223419150711167449724579413024887572631208116370350079019635218229698422406785009422821231377821379475095569530384875666131598281718790736899860904204100509737251355548873211749704555575650834850257644854331573880140818364402511321981733501852590031193766339004307782165289323076994474746503841274291237060077710201041593484899170924115526418758640776466716778375283821886219365752653315122498286724379012982231699754917857448538948899788948412685980498874687490479506741513479594224547195416939136426880293320466593056677048095530672053370623016126588072328106997530378750083892777623055769883559276992115777712636064119830451916760070034702483344238559828178457152668653900381565948718033090521502645063615147823862948597423248577505057719141545189450924453581068306790696870805748669554099331166605321005475093800113693306539383294336498783184238220277728384980785377065310833029087030157504096561671810449994549053949581679101055813035066476378727547213493537333549819743887339506347775762533871282984535526113465676013292546267116057674849434118729863693656827029204130153799415704072351328888157839177267159028276253121315583355679579865131441408553646342864017923176448285490445940784477410285214487362473144729281998969870897740554069943877589308006578904107835844042189748420398451239824469080741820317596493713880955799169658500142745288745370773229280677041275034335920830606372385592469938455861081601540688421425437825684832826019203921159390207109809832219785077021734240145122560004402622129645709539312353792226362130048762770429531075231019256407876389529686117761619878283244576691509651566153487056057010052220600734003057041675085357654096718515786522403982194935791648316427827267463483906160137660723708617362916527799366812012566491202646028444816773718557575773502320682248989072129249475719574377340399382557042089380917804996006051846564553485135311820954388446137877091956583794241898973502602311227507282521622592862799384027689887735757191951785667534902555072732293181838211249491458205772954605926085046244028537203203576524391342106732522091097714104975242434910927676618909550038882350986604012310795775089936022096888453344716962490195336877244816137997029649935710863243503507921869198412074240314117748884678819983468885406901935738352127166955105552809787951605600995428969450349197157212653116053040697968382411641709473121126928704251504286140615666288880412651089806104666376545278702638314375559311164285762724906681362760157930103462507347845923774019102310507876140619879521025499971437738295478813395909925299596252129550002426797677758209239370371333395371288903749395620966826159847420098976903425886293544724203667853930002292570706413940300252662388022740034494317330005558112125793672356262905788986095043946894406447361704563871659684440400164098354885233867948301606430519306038020880476688692881108047931610999345688072895265044839920820523646776748997086371300697164102788769215014842528100355104944885373848833858726821782597193280466725060777015995360862450574986905588272403904652887487622806105938308318579340065925457943793021769624437926885987329362446792352302162434474646609170465136445596823816130231594140267443869303119892205830203354105833272573915888673956077211606272201185041366213688655040190517028406946537944238067270057828179290845337333066670029077652606666794076795126006153839513037390757648419923144297798236856697344285557794709117884667106460217337920497787065066859275909178573858956166773972116894557472806445907659650053589833839530645253352688184377616081973259298571432215397338814636073028500168716483486279495095535080740462488917392007359608756035867879540588861552036368450087213483592663167698894265550088428489534272591511128095602253757637235100273178093941059951335453486300952341758563139036902914545027971172733615886615769948289744383187112499839061376493917344438805048822844078071708890905684525669828834141886598742791000665905886120152866361524159628678326696285694373897052149555337348771114176250816756336412617930759838630219584534004024535468715304835225272652515911658295162101260983320585859022209451785765135160322260003015177596271782761015691675359253400083475795075515816829892747087902596881344638101126019357737510993115036175058859458156066441170531026313014127517335444992480255322204727600715903966207671444171229139183775313249416514065637721985457783942524284902924546072832192685963555084955246159218532353499302167945544200543095164755102734628076479645632281014692719302480821976847792159894731089885316596112730674380279697745120771792370344514964281705288577260227751917483344242915454432843906907610244708113199433639485758475708178136206503333635863710363269341609172085280729171251480930725906556084406329219464812121327624600240179719939588829954773637556288701136242075326750365408036395469547354531316612249051746182781427010581815042279847580121346939313125954846148732585388573465873741990595127374126409110644713652940740000482581414044303195439407001529188880220032215006666566571186484838658581732924316432411957713072668198395835903618253390057453016651191365947068878478744347297856221228460312879625194291202266524864399241609243017223642655398945163051062223238329984444521334554961897155408647960079655706324061978718874642937627436418357148563175861472837184233920131707594952726129231116050268465486284165684977895472465729446568384949286553358599488770860135134495302872615543709511069653786574532285349674262801797095520414004618148892505870236418641965733646165018581752087983063501535878454938042203111585722975770479403370060517958347510652904897877453232164183182317482928369774176356768171860670348431246029180500042297826220875846376436294388472756738118631063471321629429423097974160088628803931992593926835486978426133444936410095517295122499101116764358653642319759178313691770408112618978687357760863582983052305803446292063500298703930885074983668681592120112698125358902186168159305600410209831911561753824652147347921257434842774731164761614919781318159479808106669740964678619964074359241624752531375287025225966127682062380380255759836220618653206935294290840948520532940125119788291891912084039072847066739357543574811928539871008455505967696028767807077055518252505681357554958831307056785971729295761906392031094844294810730626301863104328872087678013302297275600619148083774061428330273057414687518280729437109220916113489538994972365059064270044343896861117209358944076396124504410035449018034346065199200627882492558522959427139490787030669983823089094481869956019353267218363280096455044551252574033445725803106154716410752819454857508048599407280778845749222651577685050697626464355990498590683558530177448518905575386850427438131973260434373844298220957409400893749496672016287223096097226219445785404265188345413363164667142401746036223925354908032403805704012536003860665458572780161339392118819382414351640728251627651525706757241107051540229695502637915577562681658761624685818152050055731015850614975420798960478621945012901376208170708134111942236422859550458834537213359622266993325768723882547140522778010578468619756951402053329761287419526129956470557427279369844121333794487936861933875465705438845175850021542465175531313540419788602320121545867179290597038386576701996659503430605441665679876059083168159515017954523024758728088130787837883840081788483343685106580171229713791633408513810092338940130036859975677297176351409845847952823919961670698118445077582236523046020864103053039045214170169188700185329564325971036169969984310513166788915520933201592160337540199510262946153229109228821402603601720626839183190004395575712254248915061807104663709716499238995826476571816903900913095474753704953831065444515254437276692545074031565933291625051271604227553580074259783890565401982492719946790076864567112044160635423842699701320218264837322509812264418969371301456981211908432260989907843138477400192954172372621089209458222962777927988013862445277062842198728881393019364653517629123617015593420023418093110075627792274856788886491354225533719599020455945954758767121418370297316507563439677318222543863967705298176027586964079867999560752995350756972106203209566230125967841803495710249914809815277166228463069410196406025657721016589651074324093674577348803726409047956728758769590657090158289629759213963417889062820669609465697541240106582279469183814474586416868137516851032231683988276522303354925080148330767706189579495464082920626298134199249605769499741362529312493767626886816266021582453723354657939138917044144039351114973341497241622205334683004843465365921731835995417547596677070110403170259684286930444122377226486936184970607800598549888383121287688920321653688767364155418220179635594210849865300052030494183581140462714134681087364723687987945836578170089763343953543813025967787461116118148256387101694806981829227827500537761446845494317960356847454306802696196057093591025638529188608615822629834758519734158755241253413254583158145917159713426313938245977624073730647108230924753626304527475748731143081261264408534178887864835000809172024341043753945022365314163826646409658134522793259361349554995345652812884381520731207526667004823983696094007678829461321650599596619766692934488005620016151141652033053209900633319628493436123085353128618579281946971768601282561943781525265561230013060983155937163367434203919361611331279490286846668230064008086008911224284432447473531336340644814198117768952072851116952567933943958463219474746212217897986849571349973865550279416152206685624739309741057860102774035017226103467140929106018574883087011675746731048015118951387328730315745407234020052827310995829507175716140079520259533845111943906885024084316440096038954759210615243776783258672570393894207961851953550001220344349529712077953139392185835419336881485990051890217907132010308176796168302835352069173603579187662011785386289116863288514875420473738430702735070882326990879621051915942327666051265375715940904604344958523468056742288922343186758933108514778800089235539257222751994668888653390518244144355935399042095242685733086386277346392354937073628572155642982096404603124753019338714443013043898829374385778435306191353911500926094813672241765355601845360076834742441182826061989527580906748400102968905278992144631718238211124701084087267170155173052486755026744670361592115229628798370501401643612010403432464746871921793536800997316680665561851428167010114010888338676693381786388039316574426288214955951291013951890894443526833149307482415007387803961384891922636608128918810079667920243856841892176289537217091683339423329063180636739241069814270160829299499543937310388141049379698658592184736931534983384464801153187742302578102527422637887731436388084234305539684979880343130911523779204870368287232104335647544626799276962286838391733959573528236553563344877925887530481071948917406963656030394952823805813064164095572000553487318383577137622569700958125376546322520847369356667214998456351318120376920243596114381175304746434505501723739704026183564660215593891900666585568033379856165549710811075520450978461246618023167177976711667512352960916936534751965787862827658064745740374139078155681278925403720540015220021160187183947077622006034381193808621939202700015925278665943997856784818779638490038867514950318739758479031653379943847517183311242870455500172434503432116353646217376896885644153057321432506844173642931735274595124096036556252650945327841310274300842192501826245789594844398509444978791956798053702894228968035420821152778805280059253729647429543310916539846481341122969631009329572614544495913494028382632654263233433049481366923368721043111896828744310458839066489141428767345667974635138201954492479341383953970669394193523484048819040924819135878710748893072852154433252228059697922700444724407232610507202680267298942126922696876995840720472975507604718208086183665476716633121420323426785902557002480396746276038758117960953184031941934337204402874172322877123274947461027211114139000698268870854256392249624003496706286599551732979062612144705444583272519912196639908893574211960619582188019527683883653402242618660400965360010428886317203931935088668729389572791323201680044461384759251133403068988178735486200842766336590552216557525357623919625257207335451579399174565455402016944197783863304935402110685601154613855830438480420156235048850064828190007005902023682359613375061040469468465773892340850525567037314713866025238195037352700901538675146046303093823402754496242020182953476210238965465045775814806313317151448573162471491977412285757457671873344691972792578281799335225714655120102256412021738275910016303048345318268939591828960706837512554795696921114769467251804592224121587505029420000080349376552180921258239239057777978866414103210823887773303314702994373041897713557759389696312626863550810274075790229447860812069460433016901177764005346270415016881101787361762862999065100275053954583617767495344801269576980255578548571326381482784006699653444765224663825008995790230055358621396685074029071987339978528706928461814364536310952434647158423808635271637133783214204891103625127346356906984344922562524319407615726689536744106015087441085119345260849955556069491766119186214215210095838523344137157581728387527043787722408490799233649060808827216321402049697818624957062230702085064387168283122483560156523308465768192429917033465904773590452364603733090850355709293403308088929466919721640681699147758439818249627059408492023967663521521774796225855596310782851870658590179749806680644151138037635810317182437552122560077437758927282720852481724954425160166098909277706718433867961464674643820667909213347610041231867495554795694851925418086705376293147353171716124683868698497302761433308320885146791270153578963028283057144739012005670678779994619130937656031865627077688828280166146914345754557150737051593536620125157291673155543680702295832998877881799052622358462238029546699677517357361078273784250012475076850483025799425237830639695986256087062811213420956736026389041944721958289956688091572826126055536524593619280219109375740762101410959989807124847847997510502969878591945719469827186339376851813425952658550242580119414653602238844954598536684997670722922254977998990162056184434773949968167015771228798333590249385504322520292019517903067699071959777557305187414900435318496597045893447121583565247941757148919738387271961895974093634208565995798227711400510895648987175959280892205731786850051086516648423530926723208058422613551575390418771603093364376538446358350036313114068675378712868895418882386578067902602572062298309991842098027401787946784796817383900915995106222098190679861914989025938617312905185557908276781708960358450316713685231021758038215692502076849192027631520768726419444180803567037850982487060663414673029191347066153543378207665797863797228605422257814236211428781679523254065620461600465983787695983852410804239096763405197032757996766319681241732902152127986797147160661027853023156771299304856782029725074793076081024111788630200370975759402461388816320104837063575278134533039844872117027305283605055469128554815285189186755474430596935148773850188391859538440937483382927447436918182899123703724308553021982729911376623895666280960657391846528954371481254291915693662708663725719104816366821329151183793766260369422352110920353833655422428125817507712600154487772991911157434731425959571576673264309247579486026853378051570694234471643787493337059170428369045072661621797211230274720692330556440717087882523568412377014591921916248720446177897221886700628425492732847245730869967017839389925971093564919597903309017230308152921383918262595213891704414580464751232816353498911855868943792371542848124290163381993895167766253933047675231501410524927542613447221638985678041813121233848480416691004136128320513966934814528216432815607299147113505792479329318164425979273253667555221992971944376898499017726744223979674075713526239883640530623825532783188229136246682554162893535454682903808389002418457146371932414590199193445984054418490750277579175448025779153184482400297973873925485953622029885313913582081689927610405668622726288685987505574950599511456806987222564959195996482777816902109853909365771466526921879503729312841600194168092234619308643094906729376147232452965036091161240588749717152915296334355475233071929353114005543907583016447095602434850726435764696025665165530147060265875782353384238360911032533384477551942880704876841080364125640106561347010350889127768969791854681338613286951045641791469618675720595850702403898289488650339478287078497088059719606060564040940104952888220713401827019546156562917058370931418531027555415755705379497599783900756307561160105164819577233038921691634332950915589058431049011486091274853206627017992717121678730259730506140264316470092264372423793187971953688237116044812713112507119842676337722524902593363854249954681924837762378896621906902569117388852443311439181290522966232841511257714081825488643596207937552999863618145104809275488942346804799635876996176358515331407424770489607667836077814631689632686751888417544646345567411809971501254050572107788232575316686843847509250644860128430447098223538573244314099763400329866589130763216187774050228740397008392371958487328550786760110273319641140789545531509405765442346565072356069261452278882243035249608963164545610497558042679077064273694490037071581699828772904279739252723597750272337603099474071545917157933599458583366352113493572268468185226453151779546171790780144063294318892153340174883721704592437098605859837993782567622970525232651198253714886763040720888216942544559555657806167651743167049949623879040679802820192919257624586758633875380845646897849068657308058481311367040358024602357762904634202637810008288224034964185745265457955042351668750673053833491974475959891261541454070021352722772156154306847305595367956927900323334174491227302677195846801056812480301737419393804516492315507928204604441566865893779798945426843409745417555831334588927619785987260939116490459595509485407801493038812588232377807500811544441827894717907189273007027769016347218254173559666967361777363719525625688545316268993576375785132170819796752091797085163820135947471306646733845983794874827385031896520526170045133364120253158259050569356350515284844435736737632987664913213968419949573618813546421590211697125231478218026741578816523661518517944557531227437929301750869805170570054611359216742175124208481143790477357244098182771768300035963821973058569053728859881670999658828419424242427637494610741093101225901766793615350136761584106414524663509334855749408855546597199858104400414509138589046679203424319340713308571585702975043505445801788085816998494827166575304554346940126664348706095095603121709882629617542271286678678754383890613359420493216422945758678972329232431833409086500094056832415366436098402008588162358397433157674724603235027721345061574398613138754618084049564958379180966136553305294562904231786429674146224041958925770853680435806711019652572375290485958498300846842158966280022141079130945099113823544214207081192020261189564138465184035280905551470477586938165425149998437097339389040435864039720879932576071829958919479086212015856198387951006890722919432036115203443881334929312449869784418876523912753470752435906226142168094530227990705867847338636982229870795257858366420493837180698298740157894329306657715734717947713788969797770022620990791648737279858472361193226381346607041985683518314065043167336557983623878738336669649351384900536708268456079153948583145626055685774312166735410345379080083162248314129335940568237769821439480515341305492916006855300551102552432153629713645553745199608734397793367306368522334915637395748285663070082839676473762437747086422829809057719662896155760355269432015518844580766384675998806498630177034546421614244969212801341857945244749018360904964168757450722485089882060503026343001633238389447275221752825763856993953455643301718673223404566399205407965571955398933438183696432304053682317746818328843037959631456249354751332508641263752523078896678887451386034940523351577201467758491006517689965665355879181431091183661462336110227228853735394715933060616024413363716707618370460708574151438799166752699369212996023467152717301241110400862461268021570174171041535083040787237362578858851914666312374033601102371983356819279022104640919535472249879767781497126758358566032528023249715090205554775241384471805369534891821458682609200663988909903376944174028664984271259904389176315077110338939198459371910559635827418852068865475300168680395965491563021421961376298062376443502910759371493867295352185954242334236491810035924086508894271103640527747908403587064883177286699633201572756397143699212520099877516047583732113552203120685865163863512693672425232307700314874497177148190609585991122252958182945650376552721275683058375392408710076949623397321772771531438408920583435759903166222864407705362785226906368080438948444176818611389465040974196491732791870752169684488326960949156029162747585516792600584272878487412314520546492507994680536347688762038091608204544137314679638575069611134752922957901497411644219912905627036598494399963988957084875805918984890576826695595798797506553998877610117070421697888996147904340704845501994727262753162765522591867530610723292498728247716885242894648363508352990420971683899685401609911216987151103366904714410494389785406994272530544546703424184593309352673386279946188799858453764856748174322487941168928429730209283395989836559899431444963824454013399131867941921894325299516097774816398281676785885315522060211713520828765810163717544337686865134931825627733774121548457001777448805374758194146726704259127773626028339773407527912676700338631036988670084433230217938124314756572542112525265401617274062133404786947531749570479209960718595315234323989923981848800966505849801477674904262058318396787949773955386229650818551157515875267991523814179187286371614569284711048132013784524195233469504433370032761650915338061993134051072520041883938186248780018768822751759252302155111700039549044403829588545332765567014185090961904035488037438752621026104484048120246660496076697373988470485902684913429642994298104435767268346954131981717690865281027445869755571760113541277135085195696482438183245343537892177226288723815420616088750187699243452929009520773895443047927234720785811665854386560220974651424943432411752482555800831847196495174999004622177720451624971352408769621596829658610295109437508978202372497036419680050719352136742728076229267987317197210098984473235883721316711185028694363955089393669459861545223557332335184847823321876553928652182538526862986648782536590143954013910471565566790731651386855786250101780214375475537396248638862361714239409253970239157975701482193006787513587179499876179244512595940988916269006641824895443268285981521238997156696225853636619045011964916451163443946000320755824201127652050727797519338343395345440601856324904003207668681043619954813208483650356813472018822263883166055187281263875252900797001536768909268069523916810549972977512039914296664175456506059008873478079332422676679434620344952425029781380862698757555645180305844515140457433535153838326845299531228896470134863538850977662956310431892740059619953334573126095117023385706052495946022600528923871289585449376441433209378881497964859110654555734208669930995578966259362385611691746222750898423885117152322700906778675681493172552446728800203055419565214132733690028072317546185127360337268212704820182401391946814483995524689644518092378481435946440209132437887486211214124085400199749711567061898699491064142227979056551311041770949729760385102350488000805572052422786581356481631217164486583659403896200003366211532048014387450874929738000720889589543328928348324080476683624962556805863271261707568494130702743248437672912404252211757451512659910822035384345456189468178721574657771868438918771227115967353767553545507644569981794914282001041933728232566048003485543884954462766394053413983737777591328314892944461115056685493465219417988066780656025798638589691981637452999546567237466651106210997286289277344329759387277595161077471086324325021553608322936375513184162725878946226172170524792528448444898797383830366467098648152762603932772464620011594890938538117047839934395516766599327468721422442275549036561144637027047596052386119525826971988630508758091190978132387540959274286194786310040546002801554720016671713626379330057294531869638407341085932881141376685894720906956046901477029032923382068677002140991667457489482641721479321453308944635187298085332109324162975361397355371867072086786664659744317101981436433067625102482728073718295328527071655654854477421376169812950185169418235214752088337497819942791785957154276503029791173940635857485679895652440687003772488335072880294685903598624787636046121305132485378147297320106140939626438730336065792324157638922134029161573971565450648457705662615409417233582116342706150995752048542633798682845096615432441221622224398330673226766891868985174906696515000763274311167061515336273451739612644775552377551027438070703344931191766669125804288575730662559906180936342406405152122028212222373293283899365848826503236857143180676658650089557528815558440054875168709033164309187546522248078250080409390122354875743274772760000485406823384592085918865959829777728765362136977422755063775940848911262931466674339375514952417723029173481222996731678462835727688881636725749894482804348211589976444659140783057064975490944895078637004797921387737958547999038962037215192673876470503313878023958650826513509532832002573490805676661006279090486054042710876567774168194013488124457059420798303904351700497510167717840042281460656109041790809513673003374323055907979217914390632733842296792050776331314964858314399446161620264194623396493548902629804399531709992129232940175405210193965972546427031301433183942613469343718446350103278641862856535182380207524871371258166822712617824477179397701991545179983475725571051587630746398898917809963999560776733610789910010349527769557441113842351917103551495518434586743256932806629284833167905516695665538097052482067400698267704741363458953254119863496500571572199044224557884693109218456707442023131546258918802083498909673254777503552671251580155390343609852605361234623467716071596158444045395164340926647870527293792061208113499507768063806634899809671872620125705147233702022353973377486086963832628340402445203377428615272699193836303848705519375322965348483180810113309053051122383822377068639503844931275676317868924321686220992221019190244459636017846248222820721967883225689186025732966652174670472116060071713763760633224575121160460915548397590733454679531022353404220840354216319788090923157517012582256201977785072814505716938222899771241885521258141469890914358751298484329357171915311992110769909554576574802204196660845484606038737115279298286870084329603279182013962041785577472311868019391748288335845460512395297473607736399952639359664946043205337655616789945974305888924828277736339225227019370246774753083042769439365875105327654642617033434221735942605571893437352825276649897789523946758796018136838433183364774259327261967480217096486014520906192448504903632341245190033923610767582250587843503476096752784524321314213554044860336215967823801468323800353940108200077700771928269379393260325685831520817828397025129776890018975760153921007001356301747628985409268166914962126395771849737701072620778146518913455956020608314888481834561634927554569627255753227372270632010569899105630832243679878718894507942150381530215478020135953184840361060317525232938887103713822627297132665427042806648277930715964705137650038905113405442874898776390374279335518962083514726508825722560339312771857034270112115809717996558924063980057663262720379299233164015650482205943745064967013488432230213320831190548897781700232238901816357585275838755171768460343709784260035160547054626586481887107214989874705244483985661836118856037811361308977431312607208118917950854477479374820532085685901123421590452427001091977371636726826488682361069313580698540729640896392447620078426888425376164921957277677177872132323812456296730626040109406549469703619992050541807537766245851477223235254035276454983978469801551829839636877642258611487952868995546662022418047878964164048624333052670507680989715749933715145544786975407829536157293662976493759950397187902825578881894087664391805662438299909439769765550807436942689838609356133808913205223379346176125811427475632289545985478841763130768341337346139864175319718550897187209424863465220569810326100395716155938793199317404896327090712545047551224150735812866109118346937318749633368255288555626963267688062558637122469475734728149231741739766556365330304020209744173301369528211955976305879399224547682974559178441811480074288405189300386002826166571120123077454113026350505398019479385439577769178789452033412230181812011171700343510701705405803243921547234395829883716474968127339088821931799000808119531705915103450562947513068662133938345234235385427415033524069580606663212101202201207669555884064606861630900514939490046458969629635146240616217858176584912575944828085864170683393019970662102463308757230742803340341383313468305415764478626512308586732992749022158238253650582444686186212331016424764701700351889522435369060375980098745709422574657640203252423070106464162296192205283687248386154841867782570898003702616589022286857006383628675460092907078419305571430486723950315919172236059441773865860198247057222863248026471030571131290310711061743401368909697178411579847738324941042999356522204276941039768071906398078216250063501622616671651279228935377923401214975564657440165490425451714487209401910243201825697846887820285273833381278098871983162237413684057330778036008320587799007509636274969585225121156569100204179924816416994573524606580562790704061307906241169206097762136730100039607580314168305031498202569252858132485555052985450708921589897993658735588518659195012708466767470824526305303752026542512443949808205637867141422826027014318042204652185573933000463599761979902547143331366546438546114199393483341989832816102480298589640688234844528387432857789686904111682806971484198667446706024284770259728126136118179945456963716209369792203548960888394796329567912485736615933816178797068328463313643672295689156713836243581083345262856976720161418487838496779933829052362401809947115044633250421472681084520035551520770208904948618997250875298000355289209860826476770161874720947237257104941800987014059045310600768155262579943521601320621524009755574925148214151033658313578695442448751428368174872628157958025697927694930284198018094978848821191307027673004124959760875230846257072153671979930612596260328045971810499258046258113276879748938208920520870113343324802413978726101841911556141064381933958739505605412332949927489490370938491474545731702937705235732724837317022308363766958320290902636257644086062221379005571917754531531393232715688201102130896742303798880889327268236000627227417636860839636740344666908449591966549426302900740705084035288636629017798462911530639003876705427183754582903272878082953061157795807650079371075408422629587327749783784830930029537728031390297428391315854496778181676677424136004585574826334321994572301593190354617431432934452289473617474821541107701685050429012496266989369000933744431838576499452916781560638809932966060226634197551786079953624866205135913174459797624518727244118611102877350225712988942841499937077497811328410188721401353236328333753242509732473897602087223397868105488087415357648511098464456046071662992162205342936322142127668405829108290934291667124164225050663512846418530247544763707711361743852934000083918243077930138158144209266618315948726621019897377305452709162071968481213247457011356120690846007761347339300427581099463318860913598151482081255337967116179075754101665617378667590044650036912576428767443873546326838357494366407951991088316863932954874995978624306379500506227268830851516836236497357952835440560966753540624546422349563110075278507205342534166161744953158977881422652965039616033094143688108188350311830508975036732314483746132441291253351971239785918454176642658740179980551316591748626342783635339033598504187920951019866769921470564528687397969036738470052195700326959085106002885617772210579355325104150102301424652364978598449539738021999931964557644083958294751545670676419720325776706764049890516782484506541702488001977473585810360040766378698176426086085072238658504492806047950940425616411078742789931236370012319513929238556663941553952872618167406119983559573353536230057481470288590698031881758244558960549644735113414625665337945108042678550058841680572100514062980018019363477205907867208999765712473750588364346500322798474418085675523106567801547921247428964840808023106499732350049921691887554404147633327816696261391639356610731802890367878900449698196963771249921294175547842429981438825725898583438361633572171630976293409744001240515195693642483740786330508548431815482095997965172882489292798576636709365585066270353140768247164115899744670593926840762593515498165734344597761075595054717581189399578225953980935722251574576299284642490776846776893984204136886704107309878465773540957716105246906548855045567803601432966171448900609041589223516501203078196745868913545399106579163110180765359459735944522287494853888942460231262908825733334463995260592816760359087625110289126937212817823655739528351758281781490490984405957316636710042543006059327754693042338190783757533841853126627239306053125660105039704373699989314962890310842388362590711812869996377056557866097763245353034612224870860586494941392935434138436213427243621269606176417692781105308845189070511095106911450269784829969445730030533940242023545993012059509775119429064489377918074230029059411579425513353279425368229562703720488410599452748727382643194862178704594435383116949620539253697203952558901167263654419068047781491324409553048561572346632529241759755078825290275755429529324350163759036202273324338299560513643937326687413485225528650979984618002604332132292573452222472876223564173900070402561869862930183216441619470387883890689630949323949727520449290850701880084397666663326337248261195304508667011967482290768367317417309329134789312629952867311865250845324378936457310354997729370501944553968505188204320330285836911544239615869748842956200186981440644084166103101527012978003220864328612412263193190023302474538514203801645839638423688853492693937575121904336557736292427699936075279871862218102180000645179998646534034188381019977783881230898362162403261313105057099395486276292733286851775553112897714644321191592078471017530851278689356890572074780015412556627485687392204323842530790548913871812016365934561455294743382165304371808359268784818463083262294417810137632800434294652620977107150505998063867008976613166775439611919497810094213548072354712613436282368034177409613943586253840372873153171582998748547153072277338249449287185635091051322989909438048081886168076824625200686964254800914273053736773783368116217489051460656977205870565024415331209255437471134496439227008542653654294485104594022216676379603947343768350568439033117997684396963656784999848765378429722872611827380315396153337498840516444352527147868657340947414645487662246479769972637019926660175985655529046326669501025092741553042921898758280922632087773688485110465782257904427265976159769402942826835998068460961836946785549965391449826155284617301185519439610988874928306466895036779766550408695745429898964266173911169988064673148101818746530489510844709155322605070764627493849393522688110007442309522567860394694970830269287452764667225671442516081769489015451398740870693435800353555381586813882477945686656335878825238758511566600068975102286113057512382206633766917886850709381016763260126481431450353516467585130883857233892068742806294023173380835590188335097840512867200131115892493423828299407584183581281213071817908828750526414802033457396396680929244845784114714882537162354897878638782819728870941815302884139580621645593772539664150983169946086349468082095651440115213855410941468778358620537536241029580534348919386400264322804867092101719081777881278653461638654288378649597792612415839119157004041738382043721982736147758209821748863144092579817440917733849186443701357278819826418183094151530574457751958705079121731424564574537989448116058000256490922103077234741003462548384954778957509968378476841264425030214888917013955808275734577457982596064015811044734092332884657172088038056108219705213036000885214816715557982267772728480599449306055557667414071439926452777575674216139059945355330745448280832383631831790876316698947750151022035006579169001832543051375785117652668004517141508261385075142049765918795370060390682141812291252934565096814233884140034039466651230340888448555265975523853969546591130131060854363844238438423538779970291833572536490537306054382567765144211430312207653814585315418088906309892237848848515560490949339811024457865165632951328353071475993830737940538625350967394439766427824673359692145422482718294168226899192755728149635080002565022483224943383637775980630367518847217334195262544388244028333092513018015138420146410580756062659588247450437416841373090855159410873823014074314496979280248505225746703934975766782692980190651076938623735809951735891522194889530576471929732398650151855545135267602294400300072895142585949206830393941940861330460109263854761684998890144636517062125002938688580121530235455623406714892591496570989176261242528532204247031911279151047884856086768706468517333474125101556356289104521502357752591121453440569952481745704210618022589633408720128276650155452985792876688097996931825009357242798484646920983531952592366969015502917332389699567749540539520176405626655988475195840774741662486987123550298142682979246160629398147669411826718941106733437950043633406342726528902508458469839839332286715969279589418388714721785165653756261586943891614808978959101639375688829092173454753734349263153793565425981438601785602051047943442188409020671223784843430807728459336777661737120702004710756575934358976103139420639052353011524691797107862221655105523032373989264770870109702871729819345166067178316380413247086588669139756758804082983232821706811011484725715616948331836449600878453909288270833215103528768967492059857472153424339834423909231189356218483678674094821064713415463111782237189547703254393205958195799799315491120450452608832769400088247744691930903083201297044868269001287234333559257295803617275463850965076890446932483559210829193414149974707387447068740961703963669335259673919324338299864235798320991554016293113753856003706328050652061620524792147983834570978315635672629076571907244914725724679666953457060788793320737887014226794522010891159803138764847370401439920400632006571494385778789465263387676616456186861449275386080362023162764776036078745935340210126727451064687947764083245966742128570758945871333178135876429021019746111186358820280451789825682780081099087344838049506832127880872124464934013550734708549401730145558725309680608821111654793454236816155149675270011427993913485786204057091418993409168666983740914627117203242777510991506757241065776533901396951369880368187428034133952004432149761483891508394344407473674705611001219497287570713358319916176378454880381386387101779315941503599261363558978244574043973672539664985723273721150316171294625788981204636886908715571180058197025129347910496457612208716907368322649076079927596001255456258956345893502273401471249301038041964146163809269961931869810448368231181823129986043943887833601781652438204180966638005366216590770840222963818317942187791121480266881802399888546340787845159504360429582972695481212183343255504247297696013139057199645607484191973145517531135743355525775296985205003239186551339776821758714566715635168843028861553337146123919093444363632202512886683227830130910042544266827572304148237477422148546768135320615608997124911054679841927321054308414412185105705090028198193918852676672836381228096043878953825198597900500203029455562549812026774083224249941237133129185985975415142853088013125688221675264377374851913760991553256969509877541594698462834336718632209416724524631393253079081804740259542034947742400998670278069352798765766416080270517987628144706374432104179973089110326618949854353061086255148071918502241334268074490125212301123515547306785245622698608921775693251407160490426196106629439553340274852590797468762057125075302374277230675918239330976810954947403976933275717751665865499234766387715278486221361413722817705602777681273294178986391854283664739590401061941043609532463737715102895218642344682267501034047518774183466010929769554838308273257825311539235345322875699592001432859950706203469361795478704773405001469116655943445540097822741826821397016053073122305142995376434548609167348097733216055955486972238970848347000502285090689760602245072674152646325487608069820278227128564702329893560027114809019512534145529779097672379512280378379938940678275500349629369403446783395431648964269218068742792639101552017302299608195784287977312958876929175501858921900622063431826707235990219988805838063051560888215047366508436169002902962663417619418801353321254858901313827560392283003760262002005512594195795120502879598735239532400816980254362592884242203507950611337679003831425073242379262079587733153859728122193133154205209942211652165540441364146987598349989732964442750941333313076068167748900009308630318563187195216888414759875086973490698599112665532026318862003654420482939779204131623646624798910144209733794688033036999337613522250332146201779912442268308812470649029264152468934253028007045664331597613457963419785590635119898370964963419799920512862777873997952816863609798545075956371333649279358139752038066859908304066801059172305356438803413878829701274910903507364265500486771969503364225830119786764362399775027730413558275700947940016748712737245635631830388623751178152539230347572951881315976710318826617644972543411205583468730254038307740922247798311911607946903491728151415831171083253356596223704029002904759816197398511895049156900929631129965039085891848125579689299291181622367772197783988006601014923697984111279160824802831027537089035774013644101055479050149333958718571922024042886174804101610746738493052187689338830670137617558977391517597278344118461799198182842874255646012055542580388568911865245126484395073425427997462674060274148880645135668501766428212129111153066650256547361321936983180299737262233850353842576910947808827262297979738571878420153316395755700854759617989581718392484614946035831755585349216457380172115730228011594573997924462521965352268942281499029140102673921348924072025674344828664377858093962828307577940700255610302855629373506699848051209935785395869706739242676766820134102455565009044772544650675736549523231094032582907241771519101951752430890844910324812290527066499544592067295504340029719706904510078365900253391863862127073576068585165296319146102064380502595975445897477773973388853285987214735231717941399445499661891277551177646668046361327946571962678815597212434878069691537180933500799271055438642254075439702874456755392160417453266162870108042975247079609449183179595245353348375595288703408620139623262329087877777098045689304956894413630799260907538762350195742736683674322545145380900371395828841179645866281886406990917625817630384181501520477951503139915159769093750871378050494728576497846271869562132153325286457660538881290651948318564141512076019730866424892828491710359100671808462842592058617769465257891366875682663924029452917008237992381072067438739737971096074715918633292814926160539523680534672623271581214301856225452845084945438259649487744654490620503263463809131115749778179962379048126613449691448812021674875058248944499230200505173412530986869140065127327456398163389567086709867489976947591189148821669693321378546586500642476928517079450619075103493988572730608793233402085178416505820122870683015086880536731605870189211196094799660414987193040608632355836414837776530709648658914118886095925060150708382040014773859555863525409801351250989770102908641352224804913526444647906085013313246118665175367723434690100551202591366264585732369021035116584421305958555831750581437830057461997715017221791963644921890317159125191637600938306602427457089646921791208901566254881049208387431289507382473049161615569208023614826262990248385232900377822487239837980146214509929191009398670167768407759326574010742223247553747716859499194199244037365425366474045331406885492817799548995440759110119648850985153456702923348435939246528743127748616305263018155073406444829083330548791965591283697619016192615216185717068997619152201774494161261811485118395846070506644703898683912252238152827114459354093910680693624670172772889798949147586708994222981972521833420564956969815316864215398558979721372601261757068484873536126095505778170629091441174544468908587949195358073310233851047091266617434152781470260665535760542968528970072731957275258182355507586281692276919444606565328156682636795528718870902403092902641690375632869889787699210240924303239006820100209734396346997673509523779536030543675117100085595720022304041394710578415613949321897950726827206444571550662335092291522148095863422472131914958600472814788783101467110447199918393553967726444031169382176328660989897478895501923107530794696655557805019900821052719189514387461282659926776703930094690473856871719011521358308823240381898306543856381130711379450967102611595942952946195631314137863819426144382142904619525038064603650702811751003724603589187993040771335108885182708305811988981231412984397847848004496960440965306589614898368251234977638232963290210256684278156627444322185390258234368239345200487529992987652162948840248692230167532729673427156278109311474233175164275245650047576553918490408100209696278238339030731730837997443684782941738451799531907459949758617736569976750187291361664631698459857322454733977918012028053420990898327414069282857759333192440191827440643773258630014788655153073513845891855404687893919482623747193227291816989687487479368123296481891001575699873980445548441031684197453553354342677452724265870445912439804910677468994651138477452832849913002357089230863255419107507543945947051248610481405739384916520648970841064852976576903639202948068526933699376021826787662771052221842782951772591630116620319648929762086436222006656834644556835036186293955960004573118164505220496160255436102788173052050945674382053160295662281308288957629575120371548808940047026525341204957038876798849688729363647343251302260834118994698056880363698481129240106836210157091584400524802369077194571838981969056830943600629763879473358439547730849498924685064794083625899769108390759450679633628918981296285371051491377504093730495867249975076379847675387535479169588073884638240287935265719719529539392130761454115975487763999202130265305850835020472405370478524248522371961216630809429261820419742311529483930741720150264207797660459614743994150180950110706403027520971774279719783735224237714383553836431715800437108851994500411153886860678063849025146577422384418661244689124891914886763086454611556701340574951550143787601781322160426897144398882266588699764858922498007870746073279654140473490791897638551714663319926836563458072645619586881703113714036969141998705450482268868952087438451279903923364591782632539458082816540337143136504657322635231888215832684007870254149286819769915472241374597812238245566877802137749864092480696773182005143400891285573270017765394841626851224751060681925222224056750319364059503644439200505756186215321221864596843903404892292771050803146344671721225745959035599595901839226381325960577041716763171112791451111645154249482995022490117220339791659998818390810669122484579691471872042861690368352956022102021605815325298124527268669112934299648941496011074264272617653010775883040586923353236048183084650122630671932623743358456727528268345832313308299504930436492599547781532301108473591023758971097232163130484962747747742654709726152660719500360982973368904784785413708334426346488713186916939986000703887079907503993993707735175669517179082495458065795841127175071990532686103959780114184770084758506325370067678357507275192617429766289355031242764265275245667396821472729040872068624220319782384315497836723508100301282843567376766966004512837378563638470267024879078322148908993391445314899473928137402671244890588414781289937838351849927400506970637749722015645757687784126514878914500938582260653112778362295502924545888772295261143234222766333420884076808717809278549976495892137496892912792781716096400336185241576165962700804022342628698662996359207878052578050150466400756216841075086983633964744946639049391017438062390286937759889517331130071515799164156620056944276286153527847664297499860624617937249660745083075587518940595434193190208426100237097837558482834914419010617400362841595221613337830000729381136812276869320126908713427944014942833052004240668284910166659110889701941677165537492879683931855718485807419096896095982014841450953890573212191610131946037710158192354421631317246786977917986195461104883523746753154271509718925317296562309757166418610912813351602244776960938135032483029602894173982873859763415314299318520292648297244973005828025742428393332833996859256580267336712288975380969198505534335723088236891304144013502667547506475242808578745172102937308193060346063805974939291188008668757257077206247524675910785064898042428706010977734357087648655483610560132394533292475791150134458979013690056479820213400364202105440734902540131704220428126052474374471784439258638211117439714983667615564650224607671371953203782829267473630892953906668863800573031839312366936408498924638323096553945076237343851806500822990405240630824241488645045490964470372524650578246244761333356012349327153954335631311728946855006708100390766883007798317390865279648510082759957082520144130449120289848945154324606446902758531980839434299278156698612254526630089320515183948170786097947548704173633856502295950864810585860910488035380726183903828021373119964982902714383711806818324947839232281525143408992983101878494196697703751032905343596212066777770722547241290221813919379067257066080258247811453470927295184763135182823118128533317151440209358484761182856253370896730264439569863361382593875135886989788802991284143049579262339933489288412952262328527401562369474348907120700504972788000545616558085818068724130533373755856133967147033379615990698745400370966165491976670449858738893924283564557900716750574503357744435624943291178724991964406452298955191970641301186748432330663653973203869279027387665445182884832766377377427736148894579606141333648695558169536698171539926307502467042475234311026193821982496575631049018650641172043104870806357766281543693066090138645328492120979745864422152661674242559331260313567666909036924752155528336174984357807371538286794218009300114317457758346678170134127359772434605999979952089136299953695887307791015458553036037705744310000906750747544721573789222371004074443250264289926580776136194042696132559286279246784444900611199117151121400586296505657020548820031999229381543631713650655569872926270299612193471773147646533485412565422798517849343064945777431502370511482108634468366576179931848267373181906334525723091193452865825775355571425224098552083962982680180163353703074064553992510278856239012311551718209781423289850002521745962751894478904152719885761777305689341277445327782892644026485580431639204305988815982456720672258716672044797292705726328369848152404246167839178451745463090406619478688236652107352206197405618692170290035348032670373723282166688092563447172274842259101077089101259586722991831389710821884397873711854854823566709561470138286673824602240880193644804279287981641034001887680986584786927512713974067816512215679208583245548283946570986601416010583324057698897194838568995078307789127890385311406112656160029444887802491064499518172956254092947713407625626268945837297799819725339319453046446503040005263788705074148760244088039770505207542297154252469495037184197934558249127401460426559659107789118967820954893098594583793243270510408462485013630432428870560399316929989554841309853492590640703410861468348264166482771918384652857210845573505263437145913491177261422392631558075295088145629727404327645886170133065851967492051369815732999641523359775208777170478641797836879292683939557197979325006579684535278553264432572355966192837796346100005322349853243104122606657711062829464927493868445833224976100116110298140541686437478252478957448943708877299460778612705865281239330956015685285588823875690278680646516375860126804894615749191050913434530099259423577552801757739452082192986068914378037174208860000181410368333367623269490206636292323355445001370778474298017967882935161007257245596128785285056343270820912820778415968386946392064591426320531519950158008694630384846430580712851222181961954466661836932920587958093575636769332361563958534293071878436263822839913655381076555752543812146715364456177209238447077308238921176564906611361250082382399724522460163406962621433172077842856831503255256844673024869041084154539188998871981204219819252259037305260531074375209573230580163528790007866788458529738544098406087883051986767906374937512604796122208498589605299084232287353552927745208351199607055360087648128046408247056620113845869691958810311670188832900857407207924035899463549140464952568643336219907995698978640063307877001841839149556923011231721831456038334768633446849275221138093914203699311753522479013872123417078624040632983546121466242247396915010022573425855645955773859311619507869298026710805877219403242923546523359965912446953663988388510210494480745969879850169627893476818129653136165984790335728296429184445696131346656101382115606061509403861539546418863227873452795015937908917956960402039414169521686862437675686733249145446883723759954525543603376562925864029942434950181793319031802140567002406056910656932231680531322127746559815135174276741752629000509813040702040382225229279202248676553617251293580700589220587370552877663135087581530008714455981326213705842145634622993264132548155373680263818810762372370716479323175993377399313192982315424585751817182447786921639332219325461177433017810671450684542091769531425884992572066129121929254457449878047998231480923031515922622093887112479754849615171566712175554492828922041363340909487316382947497907001650914932347220976277785094928956049056561771497647986057074047091880830358534006164267824066902976405266650579137497635305822096373097770274956778268654872003301830077571483267607189337527156094626193345773241903082021793109710601169773095915095129648585808072364406230423203624489680403318817722234682177599463185091893440218711113837873513051288364759519623758018957499245456894128804339062095252299311302605885344023165779191050621094523888253994759484895862567544340511929788747439474371551454256286893320713459480046711204556748662594204350768749183354383860519085442647289727292419129615797256370400742578939281119401726553414973225022639272981862389254299439509360217476982949893468932726033351223353021113770865698931827344635779693805824834517055020070813798157188813679597865900220064406138327862127332281018562625573071027019961398465302624739444472124339514131283529740993257275089247372876140719592558916183660609053939915047413863125297073038977673662473361224573656991390504408615306443828751180496667127846138776688268781971793843210863078440916054233671332667162037252923749887188750731515411699797691255312488259640536170581276760325236022167672254016098927538984252984057110786300420050652481339168405674867287014437873811672904275734936248819078065609413959088938824090251996341223554579085591840762738417032488572925375420623226864183281405796137567115865868569326029295029182899661659078631786827940050169008159096508653198990112880971761566448647977123768736377327189686091251593025357935939472740223163370697148250415784115972122850698586653677455742378983177545188784410531857264631261398113605516703755936273308091224282221204202022567911642812956491188607890050041356803003418287085915815429295953559255957381471153879778057186367170780572499009617821566053236396079891886228069281639724705925264499396795864211053179125135124307653660539560865640581091901231051894187508109536351122914965615380875124470142037846432800589901551170226363510032601957678303129929594151177794794684584177080879495501368889817472686301510956495126055257902770232643323529287320234898515460437206620868383991878568463849070061650674804478587102385606189518365259439247029385302858286929326449057471020629639215906984011343541710983833799317415759919876276540104400002099249775195093736588789886694855861307751069365771053787300547723589953014831995404895715422783785348670686283362343109785840559980189732053495054663212094221288034886971454783271528480922246580589965592979402581862621675846015315885839189842157655805628012639667031905390498636558844627224899709359662440202168817742665306134129884368897438340976928642032151294641994081998725792365411858595945736697976145841033271191142856852643260389662853334915319163580936892298757959971332892306856780074597280210374579965508502588115129659461844990269842452582281429329092098625351738809667623159195554196512999809818377543618188571792193410964413343932935731861170415631614258066339624279434525306349212870040012618614543050685793344805736999099084677526923930365470212916686358354898395690899466898440457291269001320197197870240355103464153332126723997745585392951945588651911114357247047348485879654817137144538245537101359288616738942434007780109223495209185103297146863200721565891893831729920209089440332281557826998101404387343372359811005548838700016266844064106531016930825179095051942236904215214261094262320639158666673024989413273998287456363295058917995025084859663992682887093464873434389855614190969958004362540393330665115014138351151308114085444551117015441061025489957425727526445066158576519018020133793864667033081521969371389001021249382618879754813397699582651091629833699738255724070957215693421707227900842061791725986395708193977850368335586556824529297129922166651880279138384163915676996137887305582621978551886081117005536157842288464039616081146116173712967326797360169146784883987524376367745664270634615404433248016801854984804650393423698059137993228147620521935391842517799347828820567295458278046861912665190310799622101954205750052474234616684794664901103883725623562745257079139879086844137127388556197014724945317273747596417341906384557670902051742409018480661993466091767981993934110847027029879003790393857971981231698758154492504825616761838708248752127768385768289161336813578120423345870226099667820871550389439286790523968158624684655695964357722154448543163404606393951775849998094961919398110613438645573242106712179121889998038650690754179141342964353337322872599577540976453518421625932453640493973008844739944677164220982201025158047201308695329413673448192985039410675086985157431389922047167820033536891578205290664254663841141940504968646230303758063073087785012384009013337708444450503939261130718573415362293332671808274798364345580734723125756084554496684011587322935667792758419922056612597063528957902745093512476785228812379184719938098928788547283259437252918176419617546112509111621190008182939078865595908766021484532110740873233792576050123548916992487137773753822665095024618614262849455566279067763908111191963501041566709376144011052260419970254482597665330843715227488284492781557307494334205680711623182265403924574757147276038963614058658671701934541533711390979765583029045628594251168844586174418488809295118440654965215606043415892285909193533159091889352718358198359458789460204635434257139309645763912672851508597039140619178125340848426958317252469065492320554642315575461228707667057907389359602220514037393973699663862473588335484298118938898053922928032423805351804333587450218828247442706677906884488200899000632959847255309922560324173542367178390162201840425172773378582463456108996620366000032905756992080656505783855196636705261431146938191050766658896540092016386463686729901824124087180521022092983569498827182295049273666820661123649844194865259213485721173772873551827597903776760531111366802937910659197422484068565477335840206752958023097774698871110196953330911015471741237228507358771995800986168873863321726879172783449423669716371103138929863856431917948956879701179630151313423427450814569808834012571573449488586954256112623512113559823196984208844348734693450558246433373764030803854883376038625825096047384245413021423936855051170224314961679951018245688963689661210815302506638948186201838331685985772360928839441407265171902721126391909312849398749015088900379036580740447156638422837401394645939006933853194451239380866786735749863831869508124064686835918656921883689511169959013190576169606951327407235092361387658781113852880308511621935422545799416362471510885664952434822889214147271559166595601266433695669382457910029211097809765664746030187362957564467490180527795804450691374609567814361978457912297926241465615131527799694088939998317154483759235627212808764243218838699013803895820174703780394750798929306997921498799359375616242744329955127465974228151982867200160067036006518405188883450732611815244987786838041962066559815118740317247051088758078511347866189208594637524697095152763412681626275762126069862925547486355340733802555239021855035484777902262996616917507313045941221500931728780291416695901113113058720628864379976607069832350943654044957577621208313602816007493203649764081084297028266829909901740013577458321455786895563707063940758526243139937613621516894027118055004051971565916627291011383763705788655838116176191938906471884048971525451548535047412594114825582608438311478878772658731447588116970063726017153379251081276971611635722653797140537770983256897877712522323498644684402553751220102986099123788980365165233693988689715491849153870846054095929193105707399359832470082135193406784790446029940062315625608358785855651695975094963688635900335861211898455038080285843367089342338727279052948084053192338960597508192209951029286777883703597355445801187531914262821256904510790707573000078250910467165627827916760323512526860905444166221183718517893733700694521158547050147741857057745882187279509690613319913983427534781063147592991424810181280335641965934155700927951309742063595040193364174961377790024598539809780546728475626041789666944544799013341120860728520680365036294521688853153810269031384747936263094235609865694883595093249067179768615148695963658734347042296079868894844697761795655402007935208526167615713474259519372922942138690745598988882988883325591286970921836219218787093215984492481344976484406523640300052143322978340394404294084237758982998282134329573065409280329215932444321330407191142314600905521640835702414895459843022088957466454005563571974809743182913233211522391918917607597625691243005303466913552768229085072779443814844098606916326748631088132192268958714623144562298653790673718813148746733794485263913763084044600096744773957179992865460946050294366311286641017203389894575226849890601295717700398976659363381337584749329940528068669438080068488037128516265886600766603958924106860614319344397699514422631448062926192095503520625519337765055385576818673524438302248301759211980908272224072317582836648614362057562492417862919610916952203844843433412174429715852195384482570400962692191454803507941807006091456787785310472952452592592919933449221686941075283211885492379398466325384055619602126227215724749497054179169804977590656484445272971449686842001322486101064335507623247094349548416196622688986355612248108207538047128344456469250611318782971962447041951677277357400739648752072773683345720796934994320645070302737822031072644617913889958954220126204637926004441269262952946590823674350013865294860506410831620766102787661106671223782921974251898848469940055694543359553871107443411605873936404622508801409130761065842245902461761159062359933419027712045060110644453563764015762498764298679220902088447176912543964478693154389525223238660809768655485019043104710961914184906293945879448071973615972433726616232600525542526924787499454581640386492089221053700711762362100913149132625753740971437255084463433770977167276312579728145078061834143754974512540963744772130009973157889935953315440152925685581192577909955093908582129732660150765962174601923657738721803575983273039015646809033154239646191847726580773014069856981140794654184324527080304808441980081678702575322091399103062083215236120888384836932193488358638754163266319553429715455273580385400007140637553475811767180346091175307646609246406041018152704513356874652819791939467802104740423293306503477112932853172696546593189243122782789450919494077629266798618174621383153274041994901210984341068618094078553197739441460421374349975726674845773871707427717871840182736107819235319492603093505285661822299348480640518112795518250129423557217757142595458900539445811264024810738039054635874249831529680610586006451856929598259557881962086084596379527827290306299222838790924734633603273279689336429643814585606248806261318850255711530157100044579593172367296268691646833525812035936999622282714194786809296867926737124307830823741703151090977277743929613207207768774683307317987229920230728850458082671686879384423093109762107364122959896113283098934248530848435800648913589586002149340945631284888267150017277391495885446882405694303028647473668239046846321716017993258373020919515575473549000026707569526986475194648327234161272415458409190898142503358793276320103131160296103461328002717287917715526826884948893330768603702418952883501572908887643432401460036153030864719358338171522665998182059163920332621663671509334516575228860403032727221916530901260331206862465444745452780439517970136463632588276289515246622112773425462179255000867959521348624855981133823988351681827329509457199673722798613668013921380104603729245924151465402015204789489554342248343244999172721818532623275208694946492794907556205038754845932521393889421863310134176753133118385334519011609147092184672977578441918644644322383204911839913576363554932660971680512456113375231927635923908950392265134798894139137208940791941766841454484962010593081123167993590664724813512745282986690194577239703555364662172203636718840600795901960151020208285999720483195326582545197071623331470231882160356189383080386759732091244214376447061551994622677067177661752895291946051840928454639949165125077899921179051463297263808691178806821428692864992550741623344030735142066073783367592094849431809469687198501075972141725497071410690360053081033638462734691753384748436840375778540352052745131743841393741317318900636200710381490629251323777075605719436789465825821035414397637691945502429111172598898637588913824250782947406127057875327602682679577179272947609564751009627640342917093188035154570725049378065024988776316219035968049086882938500045947260932385393295354452309774060564065227655574853485695998258758109996464146415130436597428327616157184253852627647876940634291859140983109105087599721646162871455884708683770699846119919874387541103190506575024739331337897043365251916975251220385845497869770845582052958527682438876340567136842275657405737539554582342518949736495713552658047365718285189133006359629371945456812998360535338209376089740523968176613753652796579901236065451053952471537264183258733282365953356362232145131812423241931699596771743555671684591301975690237604852473426317521977283315690692585801917206118745973806553628993144608366314806123284154982102034934478916015712389981130015294673009591063400907273570100472849111045126896337268868622899207377268672227096868944192272564111828476464079714798997536654120176178220591681627379646434528693864857482155022213441628209544080351097103713274937334858290783214973535893264060509344895956549945441068616242570246434012813220882073954708738847931064364510509904028721907326325371351300357449288759211953893723315938079424549389799246617111263207930944714008873208094111260813959720015300564497758863607300839922412776866005708580335691114142319770646839148071502814896282366391190069076532112192941755801592408353111351586374892091896244650013341770447733841434811719671110711090295345014226019613656845745438982034849513248165101192409317464871820630455077763355635655184086414346684413933693222795904072960567890759883166827445552125658287022671862843501014806551461033408823794117342352791689599398742946125493676185875544909254961558193927032530263907019785715619551229946881060215820964927948770162689600120914085486789023964087540976255549841372589274217796592231100248021101507395508631171576778123123943200928534353921559281726883397067042571232587119092150518568522660330270801545455969314312173281869464224275016143902494572736965676308092953906776638648431643564082309772809010571491393172544132898290738433875772184687366110642961772256961288653412549187185368387037960921279034771986903213111409849090381430429554653383300731816803242543906647059603842511903779976653153990001762387772516740509369063582369388893266060060420835314186533847378232425785852905322419902309747529960830539635616305914158859628796645987280964862135795968950441738354719126069005343339867392454818081905397189444928888491172655188984977959651737758952720825182570214386388175446622990824965227915569488730887044804315430107582659387062442906549025936600931770611297622104722975397519702894915054314687040002346624942115136434061063820931686528736300883766711440443028573025918078522644099687103494801211842568456475209988126562631273755021787156624328516067353384303181159639878014357100873501760948218227467382982345533501075282819402852456848320257742454144897226993849899897930839992146772795887002097528143295663420994944948328835437848219411456999698926995062742576082992603109051426311426910807847547425789616453235736872384253505518788569238607716502816644081628364688427740548747292534911775387810194450582157327308538855976294624423465125408324484380435243786772414423228463787770432765165794879598755051456400191115511918989546179635112518849251081925629405670904041177663444204944107147244395387278696187339967677161038354466758086034583350169181548173091084449206057505663769458042003862860143928125643377678632353102158687645631297606839317536891380407487538940762094092862729785768491787007954711513241934620838738721297215568845887758019578683418350793024326443622702979901680849522757197008909409703139207426178185289917271486921049845327233684661849736710427661850884926279603285283736883582458234158315045284475407528598094532791578166401419259351521683205529022149606913455010461358281485659053028231584629230526336178384303610715220244050885903728563362964246740527423090886152264937135006721830988182756757661104891067809612378278969072303160280013619391490844665733819116463966113803197185828313647382916686393631820361236232343900233000869235554463623141991131213288710019960236016018198644052572893015143808366080217490715896032854533541826479473677296651032557422388630768054559130190023809255551870694069103416443002318697538289237498495368675510805190955087032331547383820288466648340812006645006673323287607353922681285316220421408160806709354327644481473512627266418746628768912978479002654659202601300946550363011706353741102448416439976469378667140271388442372422724335439506557188897618413249613914227007403097118100487548374616718164100065365068445063020539257650322501207956831778925230110424443107241095063312863351775819672418704280320004997047184887000250841561097754622673843236907834068007315441895675911926189045516900806739947119056351759087222040909033261063228889299436290546773560715995007209562525057679618496762797790010849840828053694249969775754585961102087147958654551096710863964636988341946434093134930244455209025363206967089035101684261635945924646822517054956112032626542394685783659917939875072736702007007790990022716651917648113353771951667752466717328624622695613356289663772336115604466407129225198102245589697495687766698814661237610457387156709928860430408660161950900478443154296618215347451218133274220305944647055230531387186670767564418045469215447852265084115220696921287449908767274664818677849610250437260086781956831313326097630915279310317711431340440843571385228230048088606955734703206958429268186345848141521551813149319078384951233698177689035471847857419394131395019940371962857311493087384679634061268358925242453184611577192315426606092825824436278200182401683831924587386627982270664527062451030037600456890981026553758750541203900212931238306439484480609687045458304096147061954760275731891310278210090630447498623325909924772468260406007995038447948850443370575056429090671927293593572715570138262463126133553449022982503293724604557469962216858960566634952076298656571138696485125350286747844444523018238468769576985031871534663534802093983762094309758003468812041378343723405247065585964596147413145979207763903483512920334780780176334106343800716957314293954641219754658338661006855854812651277945959205200830181429558887491783864319471845977712860291468396954366608632302029266663930091709194590944583620339678495185312694226371445033440674965834789272321415604877849270662177824793168697470875321548671787899158318586850004986965141045535253847595367773966912193587213357324604439646278258476057174171162464278942717702571724311582209213445356391093908507424522255532824473624751229365117500378537818102759423894930621488905499747124617625381376728411325133425881489319442562982486756938013213048581701161286526326784559802569729476966586337201145659340969504063077612715933714225301609418749189964561200083753423032244927953871719396010683217858353255153693187310621530666928809116454558285723056419376781048874572212314622406153772574009387513300882218396825792234405230697516908485567866017465268284618986989300588263123417758014599506581283813452854753401071255531731077909934251094910747463699202456582663303334884012030488498895397290837346934283234123377093629617461689197564785249537833749182469902277793427070137159176307572930644550753689554923198828585938468959822368608534926505759474629375724274939193502974920222792993429716995844355541023017642372891373485298251223560668107163333722284302583974618971542203894183140993611153074063945358101163986442058493336009964313336304030880461657001662169254089139907568598988325876495838942604227344512605454764999640521308825808315632315264517547039083583716917507066316529112305185427079931833339979636718126400056466901446104316899942811091210819129649658180872201239665563244010479769332939055190750457276894426160994140068082485715623304058691821900882410404742580634793133721249681960058909753076512652538155561266203155412952264372185565798758497910579064163548966881686015406740255116358640378075042416886477010258745930282716337723172670777439162486461931213218895562482514736820738613959025314173173785590491417102670075345271605980275152843430970158255722537498505897123914089301853839061070282372323560133166105256718819486391631313690052662611562745781373221136275019271036919242998950043648748959427374073928842770666039769225806629165329193341456481821389617080829448993363654274578352966312415287086863427303292808322008394691709880055075137399568900476735087289643104836176923669590736228560001885771745498236434788532499184777984250380194520548944478444619462176635626118027261024802192449383786938245151321670181625269807556233019180591690113070490245245471293825025111051249850904461198038057403591817806858080117254498155416654573604819314476511630678263133251914310194513396020077835247895993160914575248842214869457074082541888365561217170062242788469303667815627076360564071510100082109039987213654516852251814719787285883777411834988603612488372203654824953919798000202994278892138154089117967409926905861055929518646431634710511503742351522412816841148372515311504444385489946334946189080472936527165301428395555203008093373917948705731363608772427792318108511470770432894445839205009490915631314526879436113328165615950707649691421648359306797072194455587780579827972384249388039148910571730635839279508487626972612177731292924321959037029621757735256763137991752758345161392481442068831561860269556015701413917172203355579808991720308555245335776843122985296119614725471842170553199144834242071183907492955380931254451904094055026218515274941056247632707728171896326785623017807093539268767296112465599125627178089672550945837333919972416826938394542968937584701540045171915467497136695421008299062826474092452433698045221384297471777101973496561203911090101426089383779248729218085593587095347715618371851104342950910597790092867557222646901470194564078875406686317332029492935672333303714133573369221044995047170466101574435056288178445809103476915679123336115303161378081662160292612696154883155299617163375283747241406626110149033823258723273651739059634209750927375226221866031119362532558092121665240735619612335665627258470603373074910688934720479178761090285371517577835586556105946959300100167854533849429746474241646169261673874323756408413071880423777357614117274828538505154536437430580077926526834530229232198392570828569632111399161574986483496474750304082895872994383395193232099302617180007169927102379598121174807787909023148623751865223582221859114488880256077886025042475204863656502586204433460234944664425591618975443656174270218965811432495774758525635669506198803687496908790681908296486058479885019170757733354305795288305559844425816046469763819690979464403309514832311309169633451770862158690051032914990492854503138543449540735610158319582117097796157261156226562881783508956265307453984915533918842441383395259713119022654955863521088469887542531326536256436865322666217860700437433162276952869764427863624603722006033508713839176933856744804113872035638338723027602603341314730731102968901137874268955478095617035029809562592205144698198701393931197837273671625309927427689139942504143225344680394014627689362064032303188901240410333485837522659319204230675935979603326797222339165864105426533342245282272504569606716754302312307911763492023825424660043707300768127646332168320840292461616831428033084602200434184414778064867844742785751064918617665755012184117560581561136818066971516037119278367972654232662272183927931430418223367024467689504825954889370278244546819428432218331799574274317733429715789191701980867067575395534167021624482009354506172159439961992688512188039314308281908870860978579249515672433101024238017615077253528903486429637911052476299748180620855910735606636586853911738597091423675525812895472938064385297971334646306179292467183348362413229598955913657400076166023061506011566793542111937985728566138478547902286832661962833011366119494061037584217969556269253373578074011113302151502704797800052787463812796985692995601486861582465125025373141362381480653660953235982099243648898848705797877359397923996558814035651814436074555043315843810646905952689708150498100723437403206177068972330399488890393796648889986462137123449501379195656083416351744318104159003786186050182786038400547088803267336475433917192816227280702721610536094139869830553361878473190954754170792844254252482906515480637741025726957790943795049001207913386860752144868895359421820529333671690038749267290619119999123579627656808441213588297981673671726101445225520645463766246887461160555206255756711849734309875122251381186242234698113017379133340242624921153174368115386900547460581219684098333581473983592654440485793456072689486719739054913871252663708607462406262044608681308417940328487257824111608047092445939781597190765753043416237579535115042436019495990513760384165827257353784763732588432997700339492039263187556168111499063446760306114984187320161795342217554326883091694659748690302537372653585028870601610911558149380031724089882662110023232483226426370241015155405115507151441115483748783874269215248137111620636331633615236498571517527059999832029999382866410703926623252416106514251208293179332650244256429591572776249210885603831032063323570503838017929422508358738287296046560740030185987706486585392844324393417637409188926632884007644529641607896912666768174457639310427120533298291039739873079028237699446938741831893853550633284308277232770279661468880487016968066736985392674903297011586511692886687945994890557006636416734618218882105441365742553355940532266342268954957047968692608925111102312307509827619396475543059792127039385899794652904435266196528490089135174213177114779072874524201612961434336022689310576176457286720338266978464783237877915774766210845314545614846636928978263024179857979121174569847650300797974411399901898703196778258195744038701159714065871814163136237134910893757761169140907767237590601901167811499612947505690261281952169580807837205718540533343306315193088333985146288450652819418602883806492780477925247498629098362689853258429345806517392356748698250706973753882999306773552007942899300266723295263701916542110872585064358064474129792064717003637003527519485011563043192694884327470592378739086088150508751966284912380130413672428816896736906514615278811660577168481181780556157781888258056994734848711308726097523800872194586321015274465212881664461326603318173786603015947726664379858661606629997959010501819595571137413384382534155424246888355488310218805962886642891274310226607994197568884074638271200930360800178572461343149574511649593193459325345620341211255939912677638759192042769740199048511700217050012838990881595724461557601746658041326053132420528154726284737058589539019693215244991238784155358730349691813610350984606173071640190592475748258345980039355945620223733860608522583260630590941577482135535661750587027474139028876958129358818364304040684382392807925950179248500889893937696405461034101606642141240880323602020078014277314106003434711372625504428494219968744287419016472812240157799898575203362463530315678631999597048653556366539336495546147304428477752353851296596710322295324132598103898246416651620008481329079227013354215727344125029126677841638152061851536469902162798539659847188798138054432977622858306839070943674028091492028845782722288438936316633085557001050040164084136254231934206610121169814576964578071289387909465572264819683628751140329848819485358125092285473596753011810481580664349873933642817864718761053344408255897578826160685610776948759934315166878127708570022809387172524318944111367462360548724645709275300197051534821248927160948167245318261366226984467841979106882967803185253964201040041952763225861103297768366680999719061768898313349751222297777599919192280436943490465525017957776077072846244919683253622235378417669723454584430516921844262703023151045511728435760590838667491614878996531377432178021874249959719740621211084256700109375935213577878340832450115478819743643039719390494831787963486690934149079937954549894790861668349297791554686017817798711388506981158897466181543054625627392493242357782989212190124218657684491648338063198599343987637690066128341428537984095591269362110674838971867266240631537057421361580311916537535888752899468914365459526851860792891001992106241451218315696995586451313762094149935907754334204786930201122323946522782360946094036541737717880856874112188712368005048075836985108507763831677648751848575489656997034781453874936272643694719834928740565707590883590620517200142846887032504005440919918018999545394591760836327608584116808466894695599989875901017575482477140423553403002731992771303285950982852420425262813181071632075708747881415812094395680464939699054154680888966630352751314064923174540099725122920853380381221524645547534432215203784782813587332651346506658196408943902981536552920820236282724036603420073794823981165676492565832073181537445798987227322433546322290939902401520810295535916268184522309391550882525422361595452290302871741245040370569375927112827325063346728391104428107849636105141824683266782905082556092081792448648929743857735230270192569451257159558184696289431619338257481693124009211778227841879888581040501045528769762743026040958126558641922488650903336852805759964920683340319813197791356224262702432409270991365475847033701068059639254945316430592315042360408062339142188368271649737225740754042062240328215918491718133167946271027699035304366604132125767996870250025970149836854897257811305852662034837532024404563174578733131184564741013133976280296941835116696020036255718449200376928879917208468161703781718678883731389627815383875850478715446574459394247293407616301603806365838523662099615996326336356519251475971927980556846452284570569450341469567887918170264315240015673179934809064633303141420205853977196681280767092499286992841358839874060939998471711382701062488427625888628034064212339989780307357864633348350332199266668191056294316292704680248098712035581040907603507658091974947614082146729925128452019046342184713746455010876937817789392086275730670905845560325520575321373529052411781761601636136034410392501960197237115624292292307091747519471672305510695706054819676446505452054639228872803515902299559003758067657117168745202251515062070274840960255435622444789475423025341259356696207714436381128881797668790522906995210347100772494543625533338436986097707483289931362590999737766222704396477210054209832482919233804206634507028122333203149718315910622517655763252672326450368547123031211788645386044122850513432478670634339632179815946644330893088520396127913534474559130424319975865287247112142148630773412892462771118789395622704952171530397215970855420028915750154322402964927813108604301610163418475763203632728821041130524108690395331754861964143676882767386415011074536622538702635586316046457618152830281235218935972428451810181524313760972190520520072008255306543143552794306568862731219722329579191035794852236877085923525518638912781017596663328121819224541838140417430203769581364567618304601758503584966215070236346170945423865836251691872273273974408269363602969549558559732208922104581748717158215572164974669749591900224310572522823188734601016065252954131945425218817474498360503383995817935883246984120594133486941909575057537950866159528215373699829950028333075733794324524902785369179443244929016921395769938811468020693622268327705331941564851233934157785854285987696264023905074545811636529138225374092473335845695489567402384243525374135713639965138842177619741004345763027253776124010748741976131448557529273158169088867702758184638915788638288554181004001905683468926142387577189070929124750234919044355645413072781851574269521380282541804050039635509776427796989707659401881708920574124493634204231122748523737619554143112212227770655176187377506960543042080413477067950782107261588530856003088870974133531767303771588702733039906421725707155155873415937298990444384722021766094375084142460400666760636775546247484333767342285322442349848809871694376993583166000400795182228206460852618258924961082284037900668024428663541651308337170495281884422182985690106000377774181689893779648586209077668835517913880639881049490126545983454891624355658523670887976014726475685262681420947180935460178264173323982222836894316146395132042214939602511383175374447802877802435160039207246983518033578658171474176660235843918553708106674723911069101353109343952386631312591854026221453221811362796871806129287089137071272180552144641684341985543291753406569320878691954524036393400144078783644045210246697856517048921762091731562538493233449705212308421296748695892230881604259006089221486446290031239600007139566019693228483529410191371968942570300003087612464137391577063378572395634674456850239023226493099270278221987370295328400768181591155888790536747979925668078896931404325127867951173454046110044399386343010624866266633577452025594329175908206861518755027016353646267214566536677283628058758254917964594927409268227613836546725729706965160148334961091408157558236819521024377637276134653444808373432005839449734691534295145480722666876094081692973185103887932062130354898875060922111959245860328349395886428250140383228799234521965304976175344719414951574485618668267070948274495862860878783931636153153625711377887919829524457971549057286338974953673194077630190115243831681860679619365500048350138453249677284432945597444767610816849052125007489003243046702710586741740414819401248567469826944168638635849986194486848269740302535737656494352623309592005616360201318219486981216320018294755903799362432426085148726820191937281311945888042548819588470354986416818280615073280825837664522082607026023269141028213928901677457612898890963430890539341928758170977409760363129641672945756949503578526098065160448466046801632861529437804380394242065483118123231025705853416706165750263009768144981866008036168108761465578847265294014365863880012393635251934145945256067425217719778919450798690975493452888096421202607519168669139760274207292548113216887068965569590843487885374936892764616727991458983652753762146798070987461555250578455416953225964696663471940383673821884189958622830530408984883793665332897807308899202299813329379874370183008393769821499077271279047781561035847787449832903121613064411372388136631605816092544157274479992548610764204854263576728332013852470900607132856908318066760951821690076326016679881513604554132982756955763202402115215407187916541204490438726458920173535116448480850698324623315456910340882214789387904933851398965854870938929181745687140884174761090066599996469533201945305189626836129130049795024108713826170757243499558484815682342828458979884729449151466362619942046198382848745695685732653147116774373182551638496606142488716124125108710728548924481194070200107655511290898917218114238954897564883488172065375299050833413010486640549525897692811197968500294562010348364122696114627606628248465568328449622262943376549547465634444243669856767187851615906442133097418538854305730641609521510286248713766115119546140736199566213576416537408683848919275066201734764113340268349201978776862629299100816300137716944948188304253735642978787098169436253967082420031547800977434800770360525904414590870335787790592817023185247680164560258094708740834921106415081368202809305706318854065744525008977821101852430474373077355192184309513869571107060216868168406950410661886201800538723237607064311221237391383962396928534231189241521721201686017760116046176532731426994288803946637622334633102162190550847001189706083075202482797855870671912224515081255694033433697752424608816693457252656440786115955449019431991506969230761322227646664771911527790042679466465724022346167443734072871536699752636151536431234261553167940075579859815514162813970638356270677381908465862976335224745522299960075162392812743860734320549507311697507710651759940694417946272322249413966738278013021939916729414475775749819788896020608740519309316378444089669918466905675726323356172334246628742774638125742468609643807634202249077125688682003914287328538671277421332823612844631539992933549627300209433813572959127957881852390853017869677147646180509778079168999815385484652178880983338661379106006477541925053846583623870146374481076440326510926403917800568721960082432881878045985766873124423293178784054708587809792815039903482702274487115493072867632088326925160146122303315625469008086542728007918935843327723806014909731251960630799943885288510059774091697222263227884925588180527460008128729422075247992141982596968156111191058656306901336181438571910540286256842327233570555584856410580432349687612992809027899285907083617533627104578906384250900900196444542420865580546845897011405057396175551269726368757563206985532779794371142946804717587593188024161395452340320157079577521622952632096854563179062970218286472948338920665068079992679018189227462094769959266199149958119961654523998282915460493359804230023483505548739574968217638855344755940268806153257153782408054034477199068657774015943086840544440069177751029500443295911654825507557072135606250356812709285467070618418481768480458485689087455724126711063380890140883599040397218278472327481316156942781730387981983183962297035062852883572424957109853425060980317355833864234961352886564866759772566835017808544982417175180360932136895908303292900406204686907671190405529344007175441738191004682443945039988551613382668209397387411505771500286256332539776691957744165916648031319541696565036964725818472324430389013733976440188735448904443880360086395172552284265957410136641408778454269267079465511509406617333061248497518247515807223291106390482001418200511360064930719349825713978650188970465063151001104279502720683911254016459128468202971213933067324329565772500362863039621874281996887293811617861551482354328382708800979413877530405975164114948351898271176663600397740709917457630421322817301926551361950191904998347542535917336630136519833372741645644796070670459684677026133444968735874778738930804570981137749345215090916712832699865343952420054729293597580928901757430722173238490066093101660236927348541819083179234076214802507310551669615759179829045732737048765745774055066040170332188670882283155444906929765294796528563183265609081489508750557595671400505645500246564286202658545714041238720977718352503172039045088030258014297139153995680650311333639051012339384268574459881186551703832802537226312206643337749602638889181418093522398371528691806146601491334320227027159564275666627873433830360281320279553754084974041208682402864806468597410611234025962531330809492464680386417027846348458395849576318619196768934781105893908047690368913579192509446487741176742378855449106606404556738167872167115416324476302963429969113972076569378921044970619994386910375019637153491563219751083421074239423673090779636439324365130571074295279528226258826894620248935688409630400344914228269291992187340587647149645493428224236702693884266568896328132743951091247330560293813684955274570931393741639944946836693337141581561275528136427639633489093380996893897742817785664712372863843044870967913591679367510300107407881635439081605295655124808305929158939060073200783496474081324160659573721107180831016161990973754756878795701216810449168311774782091961548097014038507014064362140713437805768239940556105721463972909558533621208409222354051468660242382738215538186694345822761011202230787621044562962036601386769561831333182067403644650278093804646733847325378052398764656346077720500582724730710147087184233946738496264083008766257886984426765708750222882236674505227816561909924092318581282186079601985262082536932674120393356263136549005505998288336142417108121959378380125649257791161281472926751313915422458034791200282821737295899149884011326947787960571134895252364506702693179014593141765636111814221258174192609509702044617756893441270487761096201464558474715494216944177693981364833285409637945822319946308861664317511449454309584073827411364065324858470327915348241201565292319795852782815760905838160435771650765776383248394175367708723059350145785134576687221226944940704030928889497794539378878822892901484273069628339115634275307144116476582157461093965449438502246213860049130869048605371079155596316963943056732743630389432572063002049620191994079571347054716884005855139972876245685896321628724166111677735768363488430587234815685671170673168219395100712933606636509573140178198317721001383103036419121160229918648976761160477093506736862004880923125788090109640254377206953412180853743783357543877147936528652510419135905269937619147835355635467473502161425809941031046432542613307994686752714531987889689865951557591535812717351857377960815216930504586123418957131768897563972206371109438519830949154745008643346388227641957053530847484432075271223032341610669605042184883318671427675632876706605992852230178379195867825706087690616384111543541619754840146124197245754597053435302819860847952056279708800632914217291859998110215725303065518975024119172827025568206565664154772823728628178859132045538553748131911374189066770795244038622331002930807319022916577599135680045983939791514554250454491023172149164039950801137879399010015628033553782166261372785824410003461285319504056523813042500053359728591803398576498391104212529158209635446626889850981459634863164324505653680127367622489066010057930880913766340676459891049836972737932128240640484927054698857292444203432892142536532358652107473360423127019117119237632429076984506073896254807964386892291656928704155838531148740060259194693958838053516181241730473694247503766469020080929945321512599922719898984579093452579047139905049100795154379005791524198836671367692772312408438769854521821386037247385323279655645255459372445436752934146457969112791601879349373166354654080387518598899201984944116524704196885928335822720568521267978558378655537289293134320291771171260062924661270529594457693983946087222856803401111645583492080815424420549831870473800358228973418174271637414610486520744474791341538551171990838564577948386001289809624324008605035290047894138602041696951504614937266188871986852862986914100384464246020631120297248500973600171688261702285672800103466621660108348567506460916003782707174985943468656493642235831788412581073214462977313084980896256304904415365010095770823835285830590401983104524549892966625202290066667052300366864787305860027449047217950994946018284455078317163827415495043805356868928569192171010904005173723485385856082553462323254617973368997228797240876008569408851763737499979663290414283343596066930239412925354592214521640665343833397359253522029866978578298241130485992525224520546002056836013743605114109281814943112451038333279877412803441270775962664494332557879082478055792032811810680346301673935895932826087803414467955211403451256086886214993194485175701483054609139816233452376531953616175922122316678796561268021868341164376397776933187704040751998954571297686106213025278268337368570308070888400655762830058754198770030670781421917724359808497870703163202715537213692980100843046584739610323333018326261944248085385363148419736647993779085399371610820577635152982360706638677029381940201521535347415133671649136993719910068645429020657358595064615203509440577788075046604304634829304062264497060069298480661032397540327257021585261051788514294256095351140113237159727771242625280998059198979853215873741618711597131857034584082215495170676325753038468334732720096418754894912913194473562745788612218445638497739910751801077379030803487741943122780583914314531930718906136698144553995667540264606741547653227024771109867977651652620958293395917031794881931980814378481965046693418422246815511129016827345469065130656280575062066321787748340122415035398751427159740845837477776686326459337012495234786867575668944025540150523180538318649311303951971216244257331180287109014881431036507035698389107114669121918326130711399022174274201696761801221577980326081330181630125865611649132480537265814044245634257729254374129532347242080758084167208728363299024923433959637350927137506977389499608481895330173979628930096932045483155781805787474375329585955400602508734818784977107447604233657247760454865399791141578426265329060320906534644885739775183619141276882413106623621285775270371030734514632603920043237238577179458653975181016940720747631039166018797099627249553026755802539959050293188675625837241914329043171279267758324106919485905501325671930015673544847451151220894796726877428306815600555319699796259036444291839159120672202206455874021010535588322990630715179495468654196517663353974625511111356749100923303921560282638637662109864649798339642430733688291455066005836714039399634073677828306277090295755475567135398522377358315043675113356228387312890715871075802999499955200967075510499772832740157934716189786005069003736263539334973875776613022657539805455082201071984003174675210353459013578958547487769706438372708763844433605258962867986014055584947329565938170192279810688303524395052173863855826238412797129675896654505786942705021025296751815095555482185806010262098983077123890223900721498565515703358161935232901956182180466956549814982320594004552890289180122519848463033265459113983420847650711427217715304130225167675515439097854289659080967313378895566723132356513384497610480418552749096110376219789722745082079558672527635025779478665156075181660168169083996306021403168521712365604042097191474783009579775944964429068674314587704243409714034791103591130993119168610151934468586133555317849211320247859007136501893674768144273487725275766525776658378211636016803139947661373924995901599215342284285138113866557364629855672972704223543006821515867846753869778538611056960028490069047972492180688709610095242066516742700822274237387157469467891083903299713898825530550773841365598808620400172013177155483221929265415103056660870290866271350904432532814496783137545126979505756793226450863328809494769281557117409264774431931692296797358026490791583245893477147100140680447694034395897868447815438784330579094139272786026416752507533649825085711900333923074104823787032569928630627522174574828800896478663745128290535933144305702241675482365445666164494160761589244815769156985040588826566852896412293836754009544134114014689537549170982393509116111877347353568956379812212415394356177549727647245055743201866755378936777431035017385891975660201287963343151720114124250351565829356540731631495977612086720178695540443499706924362046749350858065740327377545886444160475561369355490995016608781475569088182960655032780219934779817088048708306432354246217800488345768193050475479956557865935236525815939129262730269978879025230588719941396581581804276858330027629860083707779845390521562555393331014681927956138904568012133794377607083572740912027065164966815164571896174934155979876855374818594440093825663854318154236774705493768231912305304704403179239400864420852429575818061403935260978700643827732496993299321740605441492698424479729980034555278714045074207951974376086961170958218411787356633907853945890789267473736103253275510240947023415061627210332154227788538855335190357032144939069160883374992342523932357408852803118970124661192713268402394562953665637892483502781466061135872120536888139220561153601624676283290394940088305611940688676303102755102296879741053890374614794621808131191669135747407464397289455295824752687149179331481562874110656329032450257025836076436608810118458374303034742567003659958084612952661186419153013044366178697876172723024712881486522282828582708844965194050940116818332491237062638577417268285408129218198391915086223219186270822032141090347658104771017291700432183231536303652864564969655484270446796671317056467373496382273672504709099686887179471010533189098941293412731446974051579682391344507594853813845205972789797403307501656929969508982234868888512812361458561381122146447085140699196239337573757849879278991444027630773533355503176681737173354790574433420571146460580019796429026552170866235405544033408295931693314755888344300276055190653352993580620945466659666141079729972236690548027793286553379953278461916180721122999940417297804467917595312805524988104535074773556057591644141614889961388955405129185346939509394489186914415076326054453700239292818892189922153701458308373242964897884632628570766437991091372359006816449328310869362527059511067783896055911191637450218960971388975631114839389942882042056123567712441322340748533303470621443090515933466307403656356579893711185118446190548790903860217107641004790463642513368355913514043854441984648234133014719684009961864076375127948267447605818003358758130964667889882186965203940230491875455986829528369862266861011828241259335535913099737785141074186209204823545295034125520584721227455892330131489205319917447575760395209927828881630663881385339269471764308824455232355536171705509161808432806816056503537475226292646950646103521345928124708862188034826396607990667751353513058971782076856567661149495457521428421282079774316624100101370118549955636422717125311223454009305244090206448389685832401520136047999146450483129475673744765725289464130456633947225857089645759858196885150524096204653064101426449379745762576664493222447870953105962911281858989912483748545127900136284005430025282608012962259932985880266741186583352178154607944263531900409056151106544652003855303767577480806059628102764637962919497379859285784200739895891636920124505353688139327739483265459652906400877427566432959005984073577790227494010602235110632762986814669000307071732297487220842433140360953521923926406495434754639570290497663747217065187196142995986106093993749025409731405991980420494692111157267069158493497515353962253238070268641942572528492236192810676437647058842984006148034698459567684383710506315553933392785317019456340983676738746368966676708788356443455727647986693228799471070439432850923738270736655462397906225019099490467502830834034145455824835522879817279627951215211241521927919822977981153481060001215362014592848345559992773564381325497906801210181314508864693536470207551398989725728257589240813831843990035397804684121128398808760267099830227892336563703511960730722620300025563765813294452214948605953934471158193296587044301066728478434186579744066553920733677664498557172430603744797293091501222180685521007150862644612021824244235115981994475196590865710113049255438435868283003033644114682988041443237558358140503682366282138739397507323498145730142973107195302274427338356138439478379635151440058066294434956819473055393483939804552593979006320662235655893552224880786057940061296569202575656839391235037256578494030952272246968665809489882864504355529046878136155991809413492171976257387783040645661875926917175414103866686995455316386162441682003026956506170793863772824832579025409162940902496485142419684738405095413601231993935005042859616402627620188290277883831169839404815517557853259295179567847202879224013925993698830202310877594237629624667585596046205263868888359453210295079487793525295421243978361595962303174039047663247063467118148904373131007867814165523344978631642373304632438487134311098893666410673744994798982780750760900975815730896069501515190626297418481421007822776163434427107489429507973208944870989435948988093279234421674921568915813945253541550836587757072459586300397913621420387417817165819874158734398356118885511729739761923991448645037326919037994020376890453471038903152569006832665499309386160390358106842471090264116615072355324019240541166793589173507639841167805943950411678176947350703653544632999038174107663794237961007985781135889849495423906893312688819511412204129020371671046211072075675595192963380141375315110045716069325943454749661315180664349748181127365137078700202055182604732704354055800282855561127558520838826585436693354190776310947029252448063109198617017949491399272679186249747661515237005824446897391730427287606838973111232407903344458470925917081585383532317783265850589717855234052610923092197304776583374396060157676795169592232097696001300986667735435452253178922707505922674630855045911605685364214545329937051348938300316228192525500093923217075223565081016156475604064462798746359277583385453095568318068197732293069470603671795753726729723303228063763511761403650253596200611083590091155220458915266262687461365184969585422452505051854523769555051775795922861913930100405392856248928403448857618421714269990772397168353795549418789760878976826856024349367635879643703127755502117320775857477319117113705689132184947542694548504306236563547925814349736958597379548083617724525827093286402511823503728433349193703742994052123509519449362297159737066629460184421237790484619723520001313300113798243912986363470916262534028279056008664988970500120604288048755813549893732207465271499488210648016514848450455910539260320671563523660830627637780124476229024226579590894819707065308529838910159134453093999290663559906462432674974167100800119558543450642726121202806561297759034978364776711533592790703090798444102827318682590176141942350977087036367132533122256791576736065690673497695590564809274423284929564764132045250020174235801999949624047908347712657246544944724571097249340313154907849697127324503676349181522061237579674139375724852427776249437698371120375228680454237463513414277429100343886596036177041507882429644201796123607339208852242267745300034657659314877119412983534997250221664939719317365821439642233560386337416181533318008446699736951220099815790511969312076090789872995739168618992933731001381588534393009679046632965493277854603440001212187258380504169908072974660981496743781390359408568367342978676354225154263048400188853219075359686097196691765609170431955769928317701270455508376318343043984807006150812609975889948920048318082690998115245487229955127353748738817149020513609825394308891603053583850854589993622255972262812416937322462285147356130712954684056207271247297112005197996548727633333432383235888574626727792264960558932615331147204791718907319585774982244074217787857636678865775177404904717308809501240448497829062168259360788376448898094347281406065080672272347655993520716875482243984592092505347072919427636437756510647713075957751390990163068532124549162104727651455738954478618102870840917507938239410389712014231145264273133134383070717845215221919979356794952169263220825870489435019794033535613160282521007595229163091593092722296731993139970779026121067541156257316908550312400189409548861889296202439066898309673961078618513870214030734709334920374072967709375294834916057872597562437695236184024270522294971547635843788851602074418332272821393840628947587492205877958624006529933543337174366871499953009476338124354520885685193740774406521875164257618672768138899151676929315750153373654913185169213378329510077182739306274741921174862108971972931879033228065161517906839128299027869392672418040047174375217897717570435843122019773934560592804657242719074302538544219085148147147067891107542755119874192947064321390473995849280399706204811904828908068942620607391229946146679280738824400414280363959687491298485713077956679715329315766842743817953990353797497101179505155742978809608019456287516126826263187784154754424650288548093127486695778493820475180731755137032238007007622701653299479681981977017239941026467663691253136997341219952277905062300576241472302082395467857006165680812544397362049168403287589070757143903521692560045804594981021544596400984478654690340715836518317481725692147867952664568948855163297635286050507875705115090714871912543965748438647175793557568810451981371601176254458753136948738021777763508050370255548370511550445462266530738297595090884649529691286247153332597746619858709941119055233690098717954262008384944317754955456060388321581674032486643574998497830011328563681891103243621847990908470651200504756137439968264747664860825252594763676073864239490733937714647611210934127985351234629191818889031041518423051139046617075696933136344640445689274756283547756815991192230616420099382829944790056572737229784591168352878134315374993410045470633999470504140125131188025196556718028050818198193837149532398153789310201411227392335425251615397012424248113911536278607553890902369284979775857539170027860701679606311095216558589154118238802854665051406131416183599117378146005970331917762673352375104784439720189666879690763875331360193406939863417178990848540244273766853564722568043994625223836565198163088390693464952523189674080905593707503147743253445814876873498760666952536387697468066278159011246548788624418964226556729347561856922892684256493748131891114585935213853935766113312827759613855251056187185317128572262807509546220967771677393715562309824746492414196281326027952940017011476845240681721913092445407891975192272935278772132447071820431819942878435030713270016233766790908210788549463723016081223348413365954359947354323186528656195884497845104462852256308289873625282624292786640406390762749779500204217954005746050686100752895332672260329450940760601211035647622146103703726665439155055302337585659153936176272344600316438552097706188092554105890811023231485849217724569260316831674015188716961033936953927985460482015991844730009189332348429369639691035747584259533191359653721614718214700878607392743658367436442036177665793999934417109571698788351499138452705771171625211404497346973472908145466324670651792179881760334583461691154869737323006554049746723881094622387899432520008717504565037033644642363377800532517734432490426398597254529130198439094533670695187787780966962455220939993252478664020417960025688330850145349575872212590847795620525340644954136258323077337168987627840251021207509725112494449980314955110540319171840844106559428500071817316535845754080458285817799318068687291957685773838182392006900858631947281469521579239484658670459701449831199030952750838341376186674280279660641902059664576789593482101200083002050598221067748621630161569447423580632690577120563269003124042117974536880123928019028217902956456795949777945196060837810669679648672587547382664562241171339448028832319855510104289086351624616031204895828369474960372962758906073960713896510328792386412557015851639489173345288327541080085798992725933893496598932942702884399230728683316479060831329239268427048034876494157567964779797617502626586142081587824476404483150900255021883905417289920817305525566989898754200576911596032040586719675904456709164849292005289134754397951878572485152536074816366487287834187191813588120354880553888588399782027873608526818201860673558136037027485084278263021364626110476609464935140170551308274838597477505087714407197166131934689895070517066053673386713298415570325213570342554135315601605331610015120365559826039488255508271089048807405627010480120079943692692134357614817248745359974169545374856532381602013828743805571100087658444887011680226096192446577505464916082934134755736043751012685019925125242342247481567732451721973837806852456665264545694008424198797302013469452316112079335854445178626452286534663066206892809213577900254287268620430159448389716585570703285889922328773098217255981854752136016957145302815481003224383680251129214817371521306314630181580026260315114802805093952901540869859798546421264273686508618589985583552830226619464622228545471570042275678781524368425979480678669090411003418589876189000701725863143005073051612263676905253201558205672236665856513647887501859502682991167638354426336396691136068545954417753214316181319688064459817380382295466798700189155900803363938302012246387865093177079698185478966389775129012639495140207898545056901035510262944495954472063028550662436227433617279439675440132381486893431794135636872684202426782779084713586594163292032432999948741815700961093710282073516460376106483821374087527433676856749276039819170163345536662814160326264180968980956976421866051643689910040070336882935962092622722295452846658734182821510881735086857250084388035499708818068747112695250028514431711201804361603219651927777945622897898827132967158667910515631560777844931646678755155457908798180304436205062237182048556770572425389446108060270205398135753872119597841001384003224329631397799195007073265589933016181981896241371083056427980728385809474820696961204353827131761896604557160407714450678240587773591047893703140816075339868527623855879787905806718650712960050989450670609807723031719205611345476987045721890174106095093380518463533584920876998008531685810081028928502287589234974203699841662874144018180985745287347281650607731467171102117576673291395062782443906109384598741146651261038428337732152292819537041126057976498816087772607671121376094884804830593371658613291400768775175900528760696113004237326711658734482631565962652898877281780011570925783835847792639145987112741637340816937211997165733234948766644053014465959759046451704086913134654562720031433088381220077000406980436427768186394932316767951374776064318769127472550329192019851463048640143005314494773423067986204993102362154243846086654576675678994789021708586930009312453575591242552915183913486189255319295831111762250713490805391135080208264670567956200845094156113174610269403413911937861866942531170197223794048136908367758924623331893954663964272864219938772881435749774382639909253197128603496186749873876301428198299564191650329663713968636122460455554919078818815699594771742177684711884043590307752819132543662280195065118373286347368707008126433305220229217011246611802374015749407670389278132542523863004476462065768517514146596471942173197808413598419419781147605778489224908168666530867657242152062276719346057142213155553801624355343390531916647244486372935130338571961283193558920335742448100123916076180541411190221654043448419428717821614652269557489160727170779464739867929678977387195358305676671367725242806664014456212647327194791236952797858027831903775133310741660182499828803746724822635865787968595199947936626336877882694203276700048372896897852288756289589957078343326385541839054705992349848435110976339877720085499580179036307816853890233319693009298304578161584694381665984137969849065984361185230309476136352669073465932889318987369285810288904577319886536252482317754713642952510280264652262369070642532527961569817422975782962147993733600041096825197843891940817060078738750925640930159052111822061831979778477077968268330559616585835243943951334547372362671671541748818496503966562696783997392766706094906913007105501922871165892295845318899530908359381762956352515217109127845381789013704334864019720844996727003880911672966066822575157575875136779950295592720970129990338191791013117563067410976972343291444516264571582234448071167386316035602289695048367223397743721322713520177503081682850034989508207484358921368787064623779987025452716577673188840993675570771883103450361453492493837855613609602483038816321229986560748961948219815990365599650998228170868696220375478229327624171892551068120540827801664854161680695376698814546491085171009765285881267550267290605141655545955306708478552641516944622054209514184267149932891777518446568010388127757784543168474033682082129640087254643881250666110156598281578658632569926366101544212835223922422865983884222204513934370159075028932894548629090704006154803227389302786945088764532464668707365182929349671515510813708116126961424887576931400554440383130518091915293942899949771990887217947838499565869778610548920937330781473641262792432982106588704792523776033035907826219832434064924161954966764448878363088660080530253498166613585706940908550675171723550872669220097982259825824151055648439326327335404408947791735761711664944685851021299110596186135023651077667441660493650702001256437710494873425538646313162186572139978803852444066577654493468252393602120006749141466407498814541174494067132083902582554795116946075068022368586767786160026828781549388423668138112228726374524698219055362532063272472278742183708860983598303346258353132506676948882265463601634799742852565044544230685294596678025803990214026806617996997347745255670506096636949511051204276058923950898224212558399960076345601834982676999253287003975837423239357562397604417130586541641100812278981639796613384879277613254029342930085265959404031826811765512244764449803314904211351530406910464694440110467233940204126008806840832146158173111236676324345300140509062150064757448837612926562936778845328577802422160638410597264106849562883381025725209448855824279890777353593067986142652737330527090695860016514285458510103518780360068821513951601249342332997788409211764972088805396735252563298988981162564829893147857687449008483951042213938242626733245528369219295234680963750124222588931026997537651753357530974623118050995477613577066630764835217778089654204383959739884240213024023045997340975180457191178968530709915287343859328058083963322155538815789226149721482831368343642498922635348150055690487032085622105501996749710644746167778674229731653061524964026491663427893640743254021236807129572753821490065373144858341755445650454449709750488244842341687117470914786280899878351884046424222153503441871683128526613671487831714603375872486132719728365792738176151174025277141538786704124566460886424146625829367395022783722521486966050807324031218163538286544463333235706651822252939296701047649968563069248237742611153428116952305366732965501874123461119464486654634002049860154552201380221017003327163633658945629807919730162027092530184512511674479353249465191956437663063579937372702116129696294677936700301033536612021700957175306399474844003816164135980238218193100303644176580370363098480710527195064230902792251002873385703347173270375258668133927912089030927511306663561419066366244227601878379662289046246396542073233829935350634006188142857887268312711507642557894426393857167020412331262454020375517279922716568251459747529633688693142455396444374330119228643335925794421726357469490207759385249665598492507306012357423190131037412219953733566962748896401900197427166549799418879069399799307396848372970687420984132150541281760666980911464514578823733874919440828743863088020909416681546587170716568872511470699192877587635622987471144728302320044396183454848666325443261034483994645818675846776329991697018017800003909759123659901384720554988798582162462670614227583608528915036633416069253070753624222889531596339839170236769336312280019624608721863140259039929441414391703319395252493086887664540767113279313126867522486500732896721482397545080902718314260098202562390270160663454487059666734447798794164290295288039880197718916547646680289591864958955476455534207896337283617715425850699240184413530139350892910018814196327361975755138081722020884046989242915856112677951081418864138196154495022094493343981727162276444081191847845804442827576620699683642409883023593927564481031881274456227274664056997504635676199610936887470556863918261076754666330754445385115696399637365364339496374968175708107512399971011296745808893591309876654058899201994498427068690942007970653943081856488704382449141723224251527984888698962982920485473916158172035323774568088439850547025035749312567288942277759290350280764970541541546032133707145990058239073937675306961414808952902986582385697369348387976197126628348868640272217443979222604583266683737348792767098501254314819410252115775301327193986781147481503033010245475436837282790753633943591744641257742529953614256338310749248502490459905932355667512645893542239331677164433508419169784717681322801688913080052103286175826346850665820092187129422130757549748058009375609544363918213824588187959218135118464222110049991776004278061867154532554995313382242284895303496195701103571976903907892684143240910059901021365675724366646952516851893755410173260137386872704414613468406150147487873521498244377833309950579375963635399894258075047614945716743079504105775844554800348111283864798603453972544548196298592646850009139236416044268885252347130884042606881216959285275138262354981150939477107406544609314342724516714001447582803981858631814810913763594499830251694646347513525450631618847871083229167281194013035233909357666762288421999625061519474835837651793549775889831006778279811170828289823254058826375682501489779633165583584803951523847238140712956336440038539440458927293998122286782394264965182813897131855642929733894853049456866968228665448678575710194779077280266687214612404814922329392780452231581651570333317311333141168665099491017097047248221925141077546847717720652339649478960750977995854025856716186983017720685212117015157054784323779573624716108572615235779301249133892795578549214473920364055004675788718392117156978202311673712922014179857314277637180177454123152517579098578588124691063809160405100132239931189560038329468288561632298322350544912528064288346295562768062890405594732806558784530991346110328215547173758576746564527637462913263054934196500747003369872294000515005920186623003575345301524212939178857650231117349345211113679192506615215308228133304115118848843847989142187755142639243021750239142719217412509012079893652550059500397752936158811954687838319628091041437359820628623706404380859885199765442220091504235092659394777009005326915738334888816652719443741061826325624174707360109771492723604444308116905106266805860331183917565118874095833363414373616343141770610372278647158832661950442907612539173223030520909534565177333930841578256392053538658305524315625997024632300861943658054208132165338896321508924514804028159691651076972422965778953119810370314412621456261314955783229518613800765413861043644474824302412431566136626421597111957439182598926504177356344920055205059494133729961198394706734415359482905675608460871804578038995530667166137124317556196759380368066052723397524739009366173206637692138675241010650470529048403527217541211439659944963569816531109709192838081873457752577749979780366765190645122170743336928355671095497741906137289734135654893347284812893131141017361685719459654182211449932911834230963794287675535094196931458254138557305595548411677959052562562098613279137092098189222749491020279834386758816609018208831730577462687334097859205296212291378216077229155345324215647785067125575803035716802050521593717121066150678196029440329753953248109810724015199515042864663854858342834169183345302801958480680016639160603403952070265332253476359589387154259333506444568610759712468223304311113362658846771357833540194299278171681796723254695805763076709404656691849981645382501388759509481938796010626719773478719873605961234631816824005970270570652335567579014597179490144282802470296715166501261215764828416886773381075897010774373242564449819546391819056907130613329476502527631742616931582029523179919423604806474659324953667012281709150823430530118325052173797860240197500523066352329659630965364475390438403213758099041870109613922836428145788366057036313281733672809444596310884120864696437476485329208110279461792466051743042416673535519461194393419561123783667786264728901612785681516317444861329383709183726637275223647359063747900904704283832933216905539835209275357377289037122785403103022076507301492057601140267635970363154241089160045688165444625752400941274280500082080555736529643836850839095741906374579191537186985255347793507398279057163272902466457564209306710279806817153704894510848311556606044002444190275848617577975319776431502984525178589535698169688372015937463048957251296743988894964527522700721845591111974964482223573399814908175160529200728968133674101430823423328779271775334782273681812955196900785370379328282812988903897784119143009483249917667841399638774762078808555616727466968281275378125702983643863938085578603087788873577231086428099282099114335379448788306672308251649534989563316393183039304217097547118696499551326152627960005038091151332612394954993641002168913570811924216093137075318868373595874201714393944987394713834092145415288399046095084229297111364432392714730275158680856673261046451305374018145360307319687115775562192097230366006001818758846566496796900651647404359213473033729670434331186099379275000793244650784185363890402244871782909583503268304545533218087280152778493767862913860894864347028098209351668600524318560235960146961897860738935375820091661418214372369020903023582667539203181482013738601526893686344537986026093546182555881580646219748395866685977055975356916515497892731662816663401794898410709633311209675066419695192064604961039508979074003680540081723336995158558570137203860896168873223986749390087185958036406994815054808978607610290016075372803972078946022491418408590477672494800680056299874325591495634931551615319274218984251213122116893582694090609827088333939456356170140917226972529921151238847064273985108247203054740635528793836921969623524186405548807635100377948594773908557650972877590601110896442534912245062308310248816671535606640307502249040155930117780179280578009342391419834841941155635400248060033888543193635900074943305330175358318956525267922924181386767406847265654540067808409867952777266513879857565871658059200779704439939524539645511780217515191553112661369586972140385834151908046098701698975038894521967464307998280497551634956588370443569326093409924616187903259291112313889201829206386652688266753181716828925410314657385237469807843419430542205627903276743561846383331765188858099399812434194979414864499220386772746702602942051367129859554751838511051963883462306700349531445217401691621220665093541833011864116064592986012439978705736370800820555904613366606552602650159435166453400748029364379265123297205536556839485432898251653633603178505707304039468934492373483052219785265210457002348864109409548948381772200223929899616495697671063653621965403527402358733484421767456959658726951745479704389900144594943239893791183388448649427459035694206036776379371569983849066973250306031216067534758263186126297583520388478131158983464649024434475449871748631530946166192390494039253330014244686963337692555223530029487882869544592589083317202984688225271435423336169081936838606699572409725556792358517975254219305729774533278545860075806035551548451225599371254188238047539175471090033466459241793810366845328079318430814308806497102711324729744427777694185302388489576328127589951242542439414767289335600655673023988768648529204931169877964244075688109375390700251988217717369277553461500143889957015910789702348387864216832156316884955421622425219114277815544753588859501402938370446056497798090267922558673886492804548384900452961489546086053270840429950439386838551349673135160400277928233182143144276408810418711522541902534881555539276646095642730492016646837249044070082486345694392497140125193168243071193366250339391924723408564484749086286674800890386074243110604949334283280529923252876716512786577287845964085722654951957044598323259350267739810272722800199515257597258383751769956722543751917005422217253122677236475660329595738609826781765588267861471621453320661444822340391350982663312626451926271562456914714148013804494284658195071015456948370048170271341887157140312763097403797298076966531292897338623488378671020908368565767894665880972320067497929881328477649527749214802586549970715040498842296841330714257470304573223185205531997970412402261466788663774442898487677944297610175760249857654202622499233911333862108679359862474705763975210768375192246946883402216896295758837652537411834287121098445840242069517983549950589537916168217130434467240407592454855375430912777173199026792277040847752496974992824870066460761846890148844781036904254381855553482283303511092938728596224765674688799269261825364155388948260484340804042101421210379979560424735991152352170313434122476648573589355189179364718471077976164568443428622526433047524224996152750561750792409021375235060892658109300887765470701656834923232488807506517351491475785741097820126348408309418485352146470118557899085638744505735371347463080083807905062773692794375754366933958841128234916549075977815559555184158967730175854656781318714023714047296725612904289293887089618517033233983697013158335542017859205874432516259386644493227994954712048209215794907039907951027856062864349076300768677372908692768756073751979082256779846402898766973921054381824251603626570766710238977405935586852842788713706634012856693717542179277683678181691219022826744609568457214117632775643470258130995410769927067434477984680619618256188899140607240611778627026154752530808253149851871709592633817925001412268139578597099011981338138024830305610129314307626453216023130879828104182977588003711687649414405264919097441464716639808193772160602790207955929524911804814365313974640167432938141829976871656937974128744735847623745946912931694754422062613062917154281563343969438277248800475730378858493030192783543745849028599038169600063316570352666928826625200276452582850338484503125905507095337631230551703745573441370901524193197794810113956889423164143512633995100261670273728268988446498117427548819722317617577726598639119911821380526459967913776390375958306457799748822644241027952915590476598830910733864029150620799832097501432820308154615730484518219436866724698522207563079326986787489150947797410122553029042191112579743316832044317879885253587030102022865631702371889180914500677711642569545470300487131710282091155389578317328470241313103728276757165839393404991929194377285098533476981427218167527789940464481436419068163407267918137133212512874616174885695428885933302286697764272230732422788712484877506144651894718880436378746409203262864807013522634882616626262124410557115575731557420872478858827116115996269462482321860150779701934218168726272255878699952467070162303546558291309366237251657628241269819065854466446495992583618583886028168628643157065030892424343145375425127852389160445245365349731839406326819672885610216697061387907891809831156393680180810897813766114701472815786536998972470708436274842852609804701385484613817403702130434238398888126462798580993590595266246771889585053169062832794512623315267655597338100385493177655413185121923134546502888574743700213499916480415499122944721963150929248036665648621748821416864134867635006031992123508841731736754214193082488999518275066520935984353360203403885066966264513040209260220913840433321541735531774384625899421521457137237554580755848898036760678498149705592984623498343692150295579492790619092359527234618929972474686172066713061784631623073775467925993432094478457323008862901124359796658656931576207882602943367239358678003553082206702574775909348259707561626595358309201098174266399327935498219401155633967180404364760887720443279990455049339728170822026365904459241968815536977457817840119840348347655538048268055720333422656263718382464058143217960335230708022430919882824264043744078962589261757741418399085728355077714568379040433058757690452086234825974573631097174905224985601274615177934421969392088445455329449259172415783150897010856116025535559299561389301028076187145337280320524635248468739024355753625305918331574507447755369647461903757869925214073540474653035208379283340980769050836106809737074305969414238767436788935325998909239597790363416939973296714983299249799497093411590782101074058858042101051552287728860182879490966482643761433427770710188451560780917575877705914839064928951022524219537685378202779574716912050435089197971339366045533931657834697808388449111666966400807871317897619336556586255797289193736280265918220959249707479995694152195754037271587178945698467830314588515242426398207799939269522978015455842223514943183422082886557681793244884343574062709860228856973778065311584829843933561085428654368345772476740445837258481886841586057784342569288638363536631647838649011644507451001257134543663703170166254126828585611230639880376957482123034532842816453020711777956185864119442671834751172572000264420119978610814626968170062725211512090109839623150788635179058900842363271772086589329439501134326251157431068506969885135662755569689181765246367789342591834849470597831900411287215768903785401145741850571215745268031824940567915737618301646927907159193432384557836437572767020963723308059129975403911831046851275959902502040017234078059775017546650708604430871512023381779079886500304822049695793051077950836275155911737470073245138375225203882751534903613427816511277015007696162781643414017473679808128282278368060613494234709743733558356557810965848997275666583567540426710262828256922721274814428912355351767608583267665034963132560496805956796611707668600464270975110118850325017002581077724369648343002310122775921558371300461832930549228553287023331820889516313030061425214586685869127649317707284206279827277202858061475493303759867547566161798855098336049730996389886054904470182621517956472400643117298003438326416103901923934768792321151331656480851214214526392968594707369050346633596224934292133775249096300209440146526484541183599435957916823461685834634178294832779480093665068917042144635656074986583637721598382150215017607561133683443072089056913075395671571217178995930154993114210018346072027361793718819324861539857640723926463054582204024416245184814470471088196031392679251016321602238422405809164280817437075601887540116891676894955798807005463617620642083762055382504923995931054201339989470159742799966137668774054752234234494697746767792480875838483655387607605580608874025444355392624584402328827488890182579260771455239336141865092002981835985891314053329346040973359876257091785754655197732355902745645217625503922624799970882946938979646895960545579760035829606339364539981277330086986266512711110216511001196391571216730389487724077031928497026885028230103039344141492914356707381203079160948746449804176419449430483499954592844046045025560943177854130210027586069766978394412066645908886508695439500008569473005555241856972851545231195261989872349573492412109030051944456194188602981906314185641554632385662743481813057539151046940099504290915276599573807925798443745625073389647588574665361509214562379829094722358905958823423425702179721720712563966915779136734205370438580158191505571750600498959183579803504861497323342765755601456789375646869677696119457047247587375930760111740198216137032665538721107282610641882660190785183839649889470086030562530107720954409260751717138378005198522319943790897696820645689027738318794975685248251920940505203435962547863621943490234683299450679544600074370255324059403119750582042514229236793643236126145884439133087165092945856860382533697559751256109991748206519335157379815083955370879537946381823589012192663438845708038485513863779846588756261412784272316620935462011711759211736841220894448080194878616167947915005728073779715595565846845956000915610689593542931945862275431837887516573458839163980988949887545924163790943363225572026754594038310115917879441467481116516141167492303329745898254763006918992596982517348389998708034474931624040660973246698301763997183344357010818329460758057292569384203644838941735911340892187630647762873639989768265635248580874054475220183384441638869925051923876591491393939607120152434143947337622598379831493422700577997816339548652967458156380090985524854236150294943372200482139956286951502717170796683431441522297600316953357586954199305665710144625388967889824324873600294138948965502804963187238970608716131716561484290477955549346732983005985261968134998223131182632760142158837563625368926674719800571136475648330088309501217141308928472062265377938389837139728931293564408971076385970693671209399066928882615864793261357464072333709635364559439671858971005309018308049014697436940713109004051551373401930174352372745361942557131178447731678364534293655478517511683717448186373898154223901985860485995462720710103500094136395359627745047311317201054317917308585050638972593807813199103734658954870994882101311322342931909928841066530223570287640072114627728597206897830551103052804557956474571139118181621822080524437803343367666164259367629541003498501811033986205786779271628075915692034731276587468217356027159398651294398331361445073961160672044528023717230921063373003876803192586664751672726319752017306245741763889667469171481088940075021058652758301313074824918844950211278343897874781847492304320690165401709956149574504391687189607354508872130672021122909520083072827421657248054592331123085494216513642449371921511386157605995710149537643619602755230124040664226753953149007904222424110093575288513045911738596321607606277958459905321510245278985241324197213294619893058919477757371664864236684713947713469878510191727890659753814412958925296251151116122419741320059309291230635162883095407268790533802789597657942346189087692331261042666866046260520144657526933957552798426516366535942325970739612705307402626951711967336915172914271757336107985573421659767913320962245896155873442789728701642543353404389428832584574263240430985160200690878216561043900365402175825825174548376656272302561838252431057412149661100093132096902413566131533263521079936264599653484970554689155582453415924719717091096174528333940639997795450916021586281083365793744930643722791441371854420958093350225271330505532299652846542499125105701415100732440446309952349800344375016231419363773130386650215530312099678104843811637687567459695631835569587534624359863568063742237027608906300889420455314102986572182573269940035442828183441088687200326173917822903112390847979262906528879513723510368197658291047648109074363488236169381458169103930821755861424452072363146596622945554327419408211719069337214893950083598846717246766576991826201831282747738919243577584826498858313500555909146912032805019227844008990724656855769101412253515133828827828498283890923157820071739779495742969893860613559616609928541352025172993217352912074422720118875472888030539085150604851829439592332044558093950949981886093740821286651931794047546204382271987578546496618952011196978401254188532054727819403766664224386018053122460142404891120338771882290631727296552461846491951792930384679048851363669673248308257340060218669465933598253607630037404057568676365981331925376185845321464533450881487978061312314494879630287968440901200093925587623481547145087684769751967753952627824327247318298483162251005443980779403432598141280902409719756868094905806030871638970344197218146387827761557069724658806661677336411301224263195830686927737309884048554021689419834094579136484869032102508348646705155466021117410174321319107196611747452337730906350453272480000394454982985643163653292526811452016627363785461724146731895306362584281988182965952105666299372975741670289421178031707387141658589650051489173894603383314690023381722794204679834613326697661288899210755817250745407468503512814738669538488230690946575932705799220945633695580836328663874799657071040473051397526233723325569821877483216219735277705353467839292435374073391545193323121405820701412922284252315284190024276833065251603975899542274565890552689125078612212610247232391391769626713441860095120834312344011488693744204737440448987522671969616358351802093576425643910240228397738649280961849998412822055339511567173649541323512259085580784423045608915681044316208968357281445772182268048345592318270957956359054943937493852227736318745660866774097196711197467469763408857116362393318294890349917532820324989711703714554544422081449652943289740764431924478700228541941399943664335606015587367062076832068215608409767354997345535000752429676054376043757949948933706661678704799141899392749371379972941938395643510305227420381032454582904799938433672109221246586193325960701988747480395940310587448760489920532227055162832593550754719362836335319499804518754861736504381300515050766901771741506348687412466295544864736662300110064394830061602973668809551038832543190312542389361801074943778109386901261445716886520796964925629998884005297523374359426789114726328149848580888691136704537724188328709512829321625487486941504840568983969816819872515364853013181423160931089877606500928557222068074605298885761274506105377497177592486350639344666546103007809137090245235586996132119481203479479492710027892051160500465412010948105530534813151236568461054307567683572068667398245359164531658164299820615039811299841961334775449513071573197624179394066617722844181566246972468525484918403569737969689492117346962600615601073171374937964761348297885627195282170489974259878787549917886509385200438190099096335022059279167305678233460041601994217834856324638443165051402860749312584278539220508899011362537128532473021513010899798377801804031880765349808384890753659115292001072990365642964113889903288809149445551999974266401931317706991198378032614834140860298273746700207728610376040461146027827562602346745858386780942222292985785362135549925783962668923042435157096698264599041519257124827172682951105634572100315153226113356620891178740320851354651682181149922333202231966007936282886029771769430802820576200143728737148483237470532415106426634520045217832430194812111652848213999962585663736005893996389307414598631202917926412092738040264247559089697378775355933984019287816120918628233070320790734851347216229684235213004729013372308814261934727631542429390934843086367084128721162513095391901642920797449292457783049670600299609748634135827049537026077064623713311308227008376679754379098546410444888988208016360777809068894877169744488140436382421668605049457635930661848208790690770960639859659412686062488269727654353369556218932218543852666025064297426558092951800322100596547194053384829190221631199506645555854521788536087580061658726423599925692115622579605759669001146107351015728437020870465104693944053931811414564484299729686227956137041395718528100915526501792839307391994991677124605151155182573281886704305392677781285853198385565613512026166064453856944340537404447817973658011719049621842795953634230168993519795895904151498960696130293865877888737035213814117371132105830610385101062166029910326872407416137983041866596302519673804726238416465514623347140447174672588150722366975692842399892141774727118552493496455742656915632856545577741278854368099287092667530802256570415552897552062879118370819220751353400841325756648985507227168835643797596779279941113298310261710427761754667571875593442855857301078738853374896411470234150350162221225717556127903997715658127315707451225029469967789172697108629675818267848329258079035981999401771148498946999645407359050268528005226593244960704870280034450846376546944705344632103441801483838648165323044436205370631966046941140819934319553467578651522528669069561843573061904073738591679758060786110522134088248296914674735694593900125085697152420914827741115359793798258041797519227056225291163651508091533640292266216962954966424196568842161610729414902047115316057951690779512770958317082339374774152157422225007244463792872080069245971462018879867281236073771071379003711198251228792944074923941748299231371167835413659539093221988590902365714134067776645063598981483643654743409594004848219267797375847270083413851922411234444330453541372775032732802537046279421275498034549101069858728752428701646864305143090177047778821847870601586708043512961642813817632014296250364070973907335834217153219656691442527506576044646042021019047204929287876767096033587262213000836923353921547061583866612515991444446873864245999936707130203831916459309362135245118279744192028414433019579807912398399299461133052474818882409190094183222250948914948103511972695752109824784760534339442745127833108223337879820041701983564922177665629238010283681804011741241399277227475434281626540585531864026967588205016540004119514316152442355387542428563667032820383789231740198593189474846892118951341305317732800704279892353612706697777549888229415161618266689142384765618475825108481597052805526177549999340424429074416545507746814408800814256824938183259862945412797525145409950656251789400451245310181912880985338811689356409647904678517044778024420437856670543765448227807921092519196994559932775055893242615537068200834640990436432013122949948598700948196945140271708738958917790004936915150841538814722746402629627932708483663513225684927258871120873255323705724004033580853641979863459843771222081854467814978538690465490807283834757524513195642969826853863335678455903173135846056248244457115776740897061319018548569754801750878032657740056558641869798383645738698693860936201957822932482831064422698331508120145558501791028021704658266088955168187705362865685659622828675068618879377123252245331886411132358956926537625909801500816905107143292392441256131603448880149073701524480904531469804916961605174401365945367013856865897387207157010949292807101171717305812054064653067844612425412495921386272353147911148759204553050665244319168008454960279225281912133134907175108018327104378452033490349674074610375189768161979960277145441592330367156456855925569427503073187085441724776810945801530252027241947468759250724288973163548925568254554233945908348380047114805364013319504843072441410027633937053048652159940157071523903987995939056877206387403873505380539732445225065087203352487585852046575588524195064058528148072195311290045958746022392888262733850685229511404757754061591112734412289095786911515547948013969560982668485179841835962538510356647434626763129607722687764929424140310553294433903793298388461194683791714449247114265962112577287432537702454093838769833345141746267075553523680741752065683754215442811775063766853096123766634029705676289832421490577844706662964061895140929430465503531841895554357151906729596641260300960271084563151341680273384061211379262252980422208800630056726461536325178588174263655296091061753844583188492975348989882064872550233575236148039657413092538672635095603834682406622671954307708103751241173693904339176676738429180347983011077043351717058321359053128747144111157061953196451943985879046870804457974463848385207830120514383001811369246326375664329397949084670713597312653511862139675546351660615123850304974391462717008252405103937753334673137801347646741215293033786937133929757974721104502060119732873435591107919404260232471216092629267959368925663981419928407834753160517912406517713288144064449892781636250597672673196438484069804219190679326969974857805579597316930434859216106007188584382898935105009923909774935836797501973454853005859965736706207172680849944575072680956221595720571776983771385597287701313829711800075982144047605695877888538792492944118714057655235839111813599756749251150801700494278803199797989976829508048578744437546207168141888671862769989087031640360686333460087969426221693896271218944910653744192877275105556236574518714253151245441161899219373200655166868094266535890280767250698964505396064838148563246993686303434655600882080774359736204148575334862394462105139819591597322580106384397433189167340547831149600015278157925661544228329774051357756480827347820871269808688724941047102034813340184108736949988941304650401397584325026194843989609063700655617877325452546943456426997613709152397920968573067539809927476691918607912223374093546449171329582318567705953172784993073181238156249000563775467270685324707717424077605196761734913222926731433492587811158291633039659072081460535704365792429885341191004591236588068606477557709866010820710730078413312068315484554377714222855773353516186181913024631469581945330322265944731182232174825763844817296045897530160526033639741472333119772198435610173145477997747244885168293058904186557235090524037650056004969684982660517810065357635437859752501063599692168478360817004201878389536432732648292543526186729929281266533742976615970697134980767863073178831614860855070640490350148505845475042703182482893761026605535602991511893473553194557977382379431199031798930523971533904033003457030750118992621217023552877646851022764130408475348025839806544386231472845996781713685163402428592219327501434364725802416117818309653650945470461012970058013048370104980897179782716506243023995214185300372195533438865014387069016834998209573578743149540219680852440012787556382262600775690040849957466194444365618849021403190180884926665225410743580271192631289932547185955928482727299758418930376343211172989678234089663280512656115415741716404791165505704674839481649398553755919394227501559579352391771640507402491118798801157912770317854884989952537119257627800058928205979194351768160602575433249873645988691720850844203199970864827408911279935842140519921708376524376787337651340951055611792287892135534881406979948054582504032220297568109325298522132933686516368354883401252988233656852485913199230407130305808107307859376849617172502735445357213514798819453349188542116805779552859066489192473108863819278092778594313965496405760639619375381370394258846399979325076253601864174657648183188890913106006804344024445982694615742120610274493738971397553994665698968697550291195271395549600641799375150286428888269348927815956740517068437349323967146698060731163498428739237550347569269112151231712561965420377331546378601754103764696280270296648554970480876171684918947631337023392314628466108143753432561440578787940336504967880780116854400290258125736411734083891403289228575300829481049699873931494723073975241350850456598218847418835964888722105764794053361240962169256252933900498445383077029423132005554284547097171365447958076470063827654210265798197714624797759469161438530060908921292874260645313639297493146754800485004648020521028567046533924542448436569039135223597506213144471146312834437085340126467085125184419607332992644102299263969885845967484597865526239182693852521057773411392242776507583345405731948886811839276612676770237649050942412857863708743365193076892395690188039223838756411361543862878899373365410006221856934142191722036270660846373943490409665891820313892888839572230143995020352703933973009524641054997105355828677383492120318089847681277123710658816492034609446485433332665816388289979070788230261009915753977924099907756525414596428005415089118742812896716503839726302804795115499215831356726394380060089677405515717485251811900061183102778518915310540367556331992200783984952115472478475589098232004755361530074265220632607212837037619400707173016093305066847696301588815332514345733548316688233621651254423491153462871537112905349412275699044967938683052894730819802335756159565194112987942596048869132538651243932692076820935366467423375440501866980018277975389776461610281420694041378654371161684229426040099121816361917030046602463390673916569111477153733637328327838724028539866525748051639163272162677422663016889740668263392102336645171503918158143508218630651944213977577620776580619092622390031951666656733456868503418193382520626335061527596805013177272799826385440677113679438268580845138422450235223376315386163162217213370716867874111111045740326759635052005088393439455330622482066827542922846118167763466970902235669651078592407180120301563151912716860827944035565380456709380197080691609739021540459513781430352713867551954597152899890479837199172275232941546390637766805441692465907854039651332915537814548464405888246342189250584509959085067364408834155206157914022758057672346332971653916534063190137921474138580623497338949832479206388309136808185429006599241503603820910205580606367012716187368878056537847368405634957860951827756820883955461341728071945427835215934097318844624965104455766293875254324519757597364982748267100785857893484106606863794245895201060498392666914737813450848912945119540273111755331108210863708766055632274374654279078987558929113944748090722555009087182168666118958040935250855097408228362971622373975746069248978628254079912927265379364174129591775947024329444211300183556799458972458436410174983899601167292977491074702814648349063360658273451980934333307862377627228530461454453273211226633688068117310036308180159563560649997533593446517947111195207005130142145047112346257320481369848644780937337649613859960314875939870526494072255229561765000817213004654633080453483373177187790929125799245443955142534712291744914765115264346314497921746617854132305609700767495028121207257883210661505461041638317523709991161213669675490484205288989910180396163564184343281992247505292311165467798394686996378375840245579503704516041434829633561494145764269231810707700654286664293948221946013913752720849776621757960838633590200626858449380780793988704226844288598826573739741525481496558572486902221062008383167966266273839772847326211995048835471635582955411928336577515853083292651930604018567863122395949217534090398021673106324113307693479325741857271279708181148787889517593755257701938559336261022394035696974448535101768854077397611397556114203433261028350848269058320499049627142004458509368046591539809456559236812634739685521969226532526208851134178318929346090965138942995632077426521539388522898038368826981176747822815883532174049253928016124884699003390837365074070623233186526923973200936691748608123531097043044810219872005395398675084095480180864051567663626390364635434602234290446984243666717688746075450892805127889684951728160390608089423370883025265227200508870367480894434604155039106464885232717784262653266853095597384699121367060282593173043514958280233235882334987772210164343565939053070932474925219844215611180874895212709320611153634760444167727981057923460196874329562315012143829489494417160954573645916373885271689326856679678011029333769065964863155823310259670138100481968557154527541863944753944357280932673996033223855461205288108031102959692317526641498313755638463510784093770710267237917269069355950053907689454019998420713562800442046319213446145129167626496501289525268870315895719449055632102164131336234685580653366335630108944998290735752468230710465827434438121064023510773259886038789425898294808912774556355915573570708168080889304643350796305027151230504502736808308581581233173720779557238851708475973205621006375149041206788484860162410176059115967874852778889432128902639506987367824684530614321794348496085757844463202243723844450393625321623979776085460868599645906000744278606366447267966989347200029758340349730586246025982439803028799533830518413078952214119669967068989797589705385270429694701206806298879656157754355454895547151490447408245062034304635005448170341250167796736896952175093589881596444092467644923147012776926189577226618830643013565170825277936027920688143200245226753478815456989783402122585024147244387014535577416397194813247642249887046393588668493214288791976985453182374647307752760788337086369288146964711584693035995126233323093917283977091280684137102200511105464948484843276128465191662492359083146241785334610608754525072372612981837092413812946726029250424812283415609623087766503674644596157529816826158046567235721715783572280114271498815091026078679309519281912583908615635054773064359058745312118007347550524209981490627288624939809203620249237028297486555147369210703383759907725303509520205571461040922777964813538593383493215608463747581618583964048439932999153292875940349083096544616275297608470803021257714349830316889353468254555306782176804067673501880110438160048511647636378505417669347424652171022979699339907112605602937143288888538518960615121586669485403147991165853733075151707034632610892478475124050354389192548057486511165177460781945854318727625605825121615529978564781353938409777063251617192904731221285675453750670174855467053837386455729875929657068366828294812147249606105199810512094286759346909734134550776058494632248322190816488395884999768839973212900294657323397285358373486782599612828380579106850428127686039703871284934471869413643429774998305121993685647312636337118848635037107042345692515838648570979761513356325300361027575542101296416278893815658602360642342484382233492354842201845024186727596285086159943258617912492762991583561975836001599151818391535150648569393951423866049336233065018532023360069496108624739258924019523154556754732497662139206221350305929176884604550001073248296314184493928331891081638060140226573060257688401130394720349168045491138354734433748711086443878471025838871072251583923488450554767823550790113721117947056425416700793805577491261222014052953665657000599111957750622388487093923000806007089568954513276461702603396662921655904374205619674488804075377479227163350370008629968812160252965277791602260883516241231175009173305067024459022509010517006616798661543598668241839925141923807493839605321621753953622938325060853639678476893732465111823523952610323853886009130575585825814467863367169225407330556548588099581870256327314259604093663009088437210606784768398136699880890442937974688580279898147941318561139544597662795989582921846782150394025233887045104641478498254809251658018094654916295360348322886849721411091383088920292952287409610641662463813981176592693886596313838485328467693251841855365876269298108562873122518836701572618755587764736450965428000819969890403491674526734738056090938299222950355554049808111647853322662519474675070775788158635636321523106166828958244787660585923878506678036731070570507543801045531395477048282712574287650343138782877559888718927157519132149517926117288972109914179436908614992122035499412119828910339732175948688324809509206664755234385137901747807290407848468463058664621849463254428309871021319532382396021238531273758590884507820061197227312151810086998874137843211401915764983169442099804578762114431262217018972637238455493326538620638071254285707135535873816068128907850946204746521865611220394934243987790361223041281303970583073839356558564355530420085465601213925538004271018893565588446117762288252348009595929266221015264095873247167142504079701842493481371913607106504535900761925206030817877099833476523866360963669346885585016709839331212279069927693738264354625899391857356755180960809406079523802041667085274730303796826365954972975736734602052154822090711239365695747362377100148852492737542437590228538353317561483314912165517480514385334652509946042180591914685486693114714540352465747881071343504695940475946347329923208867242888902940930364257731090690410955095579917760418956600640860167869042629325137733544722444120184028605372321432142607159219046528416817118867741158639203312175303111653008636484501414714332057907466493471260285776507135880115292461601696244692141603216621402965644248685827324012396946211164462340875629339474975865258945487797752872247332900214776132429854790181897946088165535277188938588565784137933389049866126108720473816355110358970802710460914607180033547793525696138446138191121863126333752563440668751125111679113543510479556274154324819230478641777191253058886990638975703942893005187148733068256361327048019557789469168734412414960563514900671594508682304743708762050294976099835223186806963740771000369782822746614432587928326710392977410104268528239145253640900692803271692891352233918292480104267076565522698828777696325019498858272747681526241479704591422791073883250318845221693746685568131086628975482970978555911690014886291923488322019476927323711906383947835109162625789000769700433656650013655404356655993852667789274144749650021859860821819604515924553836479379716594183796653217017098997121067165256651310697124325810099993210749804795663803101524872663680830964404935096688224467873339835835358900779027935051732229405026986942262133534377034586052597517611335988751428986798139271006792573466703185517841021451757589079909967459007931975687735151788772467539000171644155552497845027187004461971387480396023703457536881417096670570193437393705398908905697322515948533070758998693344159886428943712230799461774893346234537988837945922090149416098734634759936876072638959360045656687390492427335962643978330529777181346334659804931915397918609010531383643966830322438572809703610801858433246196708000750489566885852220985175918976176521454311245302183812657924590952027414334592213581559614995835420205821608917026873140324315281823194176873501266171778067181728152582738496510336177463822060351521695121901921544472537867369204233268201966389115084423187649840519223466136011699109978996201592364182800253590412259755521130913066442664674606438044076741559995159799369832072975581069218351300154690743004958472073719486871525968681569865380300580788235682861760215655054400022927289717528623469235316079007615237602977327251850504180962957441833574232122346743094033724541067894850879207967160014585683189444762660960286785621515173361327325526995732507727111459935210266849082031965764061131489928596581365595258542967365891224422052811425301470479459096829343803066763717996842591012339483453218002812229405615728480538805080861230888254206812397585025704292158250256497734268324042013419439728856131948261434709436590584730963273170503263878676064597064310079313569229919398005124241136706701754282714660876759079595922932228777420737675231449644335649690796820341803816081012615871514131180730181353312156359590642300329040216564809318262918751969741447818968423125438743244919070306573917999179409728056439350647596451613234130240048055672964413128351381688242898187276407072927378416473426555255272856430703886759835345549702432426805485793172467282705152583037390318407942965288250746294239107848186128306727691443672788130257612746156537227847307533044096293218325098096472322945679611994775594992633127215791712805080274020746658100709642235268320858903404990729926188017871730018778600867072733635440126606373582553490874466633098448630486801379006100707507772460359924104350285575311796066594199697367993477656282908733537329481282712701755569649885140766709365195891669928735088530416038866892429271082934060818484371856909286642018513670380839206025696335355271681057552561853152952884587143915398028566422022577772089226256460353455268497801783448724981166387537909401478345453444086638123000194644000663285618524759576663485092968041299747344849175604414354425221146387929369006127118824392138743612989752173637733375165328823238635085046837762030070450566567068814535752527315550200605207125619879734482988961065846365008215349771292608320141769997394081882405153155563663223454756345924218713925987775009415591596845100905880727760712077545692297631660971520763583748204220992067712049418109830746666871141032297354743031183356589367649965539156266104061954533183432343605565672293456498442145584055717468379557707501615417877283060282002309260488097409036734080572020717396208268797735526075979056317254716225210414492227984378086740677849508506985470432923715234833752744659485750737955511472099588218592180908395830859020711789468409709167583462207758046227683577767825367097024256329497803877119328422935955506245414344886124558133523280445301999533346802532323891358243778290411501746257126041259536638662079482348579745465348040364555706287679384282276041516062884534729678517437329023610804410374564919594940519274720949282377898293495036079872550547198109473590933817907179169179502135796690953539066869983703372542570001393160331085504279580594273144803195787229777674801947217474640229696412108387187794285509117512741991791777199758573148323459525346454248363550409459983012864429710265035379333671056244512011723246607455838681641123077166288892039316186291481359325433101966591127428875667853873340076661035313546703649715247327455254188025859504662278554845764127886309722612875129199241400145355229123986312709583285010460130901972755752372873804453576218918402579020181841541725250350385554252955719264188000256422747695438546277608474471688570178739353776607692188653167865143702155937166088780509024755175185569783053293639809007952628055695479088391671063810762581624977929609182589099618130640563148260051842993295809578863351577842452009535845002180957470110780523222117883966822700505446189578043259266479729023914064537505194431124000107163355919661729794481815678367874857101304433586922650622243757999441048781790956390834236622319521892186293401294550445074194003513572259225432950177785962513153363739888863802711316900181806110606214886750779824529605366311890186756248342132016148993161891072568261736802155149453995105092642927822561288566861398597226490109875520263073421314991555193633766014749747615032027606594447440117376221648237372257397394427155312090317092477782800758890917530177081055174256331738748532076834694358452039143822952526657873548756367225141366736212145641887481969171785820880091956715748664899143642290981382738206941769637166525839242650038454983762006278122235092749779203430998258939351867351449990865360686471087079442224379065636541354488078457614737526952291351522626571605038431429217733067052585582999240924247733304618631036721621383996782589631645575638258709281359323570952806553895624580527984095875703024237520125359880715891373670652830171218897835189812239850613538129644307536530865397853416382927905161362801222945388404866873575319452002568407898927275748018667239093883500534444769282510793093129534240587563119699065343481157012741708699510383769031664068574688951467119284353917658442114152187563150177834982383905366639690463647548683645605323507151701618838808944161006238677657269758281029819901935132672074534002867804563533721496021122735291591070061943527074083659803567025812476891286491315441098347068677410598008715939323172270515798483504504422030375295639169301646375007518918659084116964630064157557214769797334574198505748520021561409430649896601711060275577423524335697847554748487447061587749113439739934422063074901126022539047365439859782090956702030486271205813508122578426747416865368350768547390997486643424869810076861795752687686765692656875326989609182907576353560744904130659067134346815128962172813077735111205721302450435622052434540583570446327750395419795267940972417371110840436346007473344971968541914511057245089143044340832386706930978243368439708320029084522670167609012842936878637204242247524810209429825412085195291983944959369643838666999327205818697026294776555525769973388962890681142735742458723905556133364210973703993188742186035747759990850137511199150939619571599733486258304098736617422859924383834175363822443555892118913926936156214470257498222538139806103333779346091455181768333003105587340941915358115620757675391723279881090457437263119254033499482991103310564843302808964458971244317029510695208665191449787509385062252796066777548837045755477939689979160697249746856844377417179450081196971303319663536108455987327375467339545416474170822119130434770730230711331687034020511865567287659151535336893758747084597854616993396617555950721141274851921209668878057510991486501523910005168863704742129951439359730522156546166423735175251606249473358769110414652740369896759400400734075615850969196144113109600169553493767302358019988964821819703909550458213455912991692880794870564980745299393551258558693890853520064302018514400883182467478203058738440750292837868440371547195367906990563839078167366995472074105246422565674528147978671943021214596086406015932028602741078927033578849133150987455669165627960243560275993584164039979926641390892496537614585959991142462957281744660437164878149705485299907632185153902251329206752873721049913517395275849706386282336473758464597958607917715482518797931048333470844406650269879180142071315668039057434429474662506563317525859301254176413088554498432654312995003394409506179461484531370163841746687135132975150396802459688179067848713173359048785090474672358155604459258123112214246444810921556562563153969263045024655483888334472966104963141333610000208312601515569767250925864526794680067753352671736313651828510735243330749030768753093529435751772812928013644986293420255303571545838782629655777242576301390521920073972760875015728706328652427268041024771694203962046631417676989570983231025364270028747547858497903993203312775371928688805657684794344441960433856092697997105469722678019482896269028936140411477932971635883288467852713184687485468663901740975507620160601301478037186400861604880543056907078624222494312583124343017575465457822776639916449418064720640248279158313572527099292097239811811302344576794469108349338513906094191549651819631206814941333153176562394827019095894679061692477374693147351350000831287471544964959682443457255047502269948946425104571270629165171797406774477862484754254167040011254329526510087667181525520107292370333582544288440570004211201956928651940691772860407434179352293853863854306060680851656871339180627741037113169787585651190769473462682825956206265707636170939509522520250852915752511412978228760030472185423097247541245100897783402985622581075067237785982468280432526490120051689010280326929271249741998245874885072333201012225295316026936848923017559761520405753802593485927917172511792985217827248033986413215808436578714961197876527412223630749829438112492688179954771834272220790604002905853209401034845843713453555585809034857647101435044090943531238044768647094555479414839111832989664846243302672302088538110686208214371444586033765924712396999517448444903255558720422151758103649130996926197787662685413083262637766466584884245522063691321293773042455069039870897589266375718830659935303215306698299829155481360269066133613512285207967574207416263745770939296055294243531612733241195804134645545260364548608704955123146224860866289621477981756753741663045389890948340185664411516425421606146297906909690546134488740769441580432472956950027997446361785319849208212936015452405581564855943125598711254867938821301738123338343542224325975701018308911558715516791739110742321427912666677250578039858658373769118063729406770079817112811893965658700092436378178879490211425528197569682063269466072653896497193179286122945396410548595348866038948143010562872392652832850753581852829612234064024810835185223703827709917428881888885974693860488108728058551728680594727766979683610643501976709061852539883038037081539286417846258679090794009803489921884102630829843480365693070260812418917954981161815994681835673819156135421399827955777327265078383568598276009520115013686060187277488304001276631957097933857817311524754090134731714742867009545595298269381383515073987121382862756685738279741417976626130607543264553539528162711144137793025883140386886042774750364340591779394369196260072369071664114913427880160740427939146658571653381356620925885315307733484015663229580920507387618862353233609314854819008333283781473882967145320983887793711592198309082625521736841085911900115078493678108261486868845512412996963859131436902490849396242287076379476640319645114182013114102399748511291443871404180795242615114110794885440492718264521332523778512823903110573320706575724773050606689709276939285286451189326601102503103851323847694111635531700942609896613680619574666159624181595316010392549889580663964662483196710283409209118875244954904294744286661364509448489714222804791784274645587734730577733450768597387336852172884263065730310795631673993221538682414802892627587427567083182544756426376459682555928673251203395639194445089903119339806651533894588714802966598771100900789359081634102050874941877131932807581578673303062639114934314920357329150165809281372030443756235623199535395200630110488873205893570109288196844065439488323857460883497149055885595184214747055396183164922926554673109159718857394929599577422944432273606190514656321641593506097393679376194343373357794216474451031774691977748287157928556729584820467612271980143319330989811063018490615350436201625727965319765829654298288384126907074302440136612973834970121840878791630450784655240323254709711644386082873521960843533389563410654108421468351218139699369846250680273647623203310559487838839802209131721585064263571282478349640960689043319890570703878732752403879784141761473000346448965217403091973779208963511648931170057176449230679381626434730842645295977867329418731468282833927886486842688013256597128833447776202959800987139631231646380539372333573220603316347313314734278752542493485770218335424730991173327468900022181190293118850218178183708647416526152126589257176802081202627168722497583579513924435310104822733285958702191548070287547221960090223731834733954843221736260271506897072287414566789333750291966727687870587835184200464365797682484979701207699729870959835559444645569624387940797355621879699182542560150332765133296601800421570994426444442249135877881693791823788331142604735902612374946435978982518184289707510841902510783347574067426419572303963108374333753033940021446128747092683195512994180311866208473471669039396695838159789640188399685897371476015202306294385778576655753769385464400812751595778083593081685382085641791848082088822205951945281255823443807809268918489552060672514291044356498645131421455720148831815385450916600072266477275979779097788433540996381279129050598374356517045637764744699314283174776578981736658652457821992874466160876326245742460931869350317796581443067782777729084708553311742717970468169501948377692362220151769561119314251519583289278477546277581075863791137318138858529178479700501245016522884330971543791086351429790444747613632915843823021205109302569849642294468901474500084713062002051626473269235015260804511419709432991286388450752274412172885504081247704210924799072730307927976741056363705695065185666239711586224910658797125507744508524233026596829638135192361868918796287992532369633159321309181985473713593352902326175813489648471871281517296281226245528420637748521035215160438961423705838500789485631337313201784533403174842160723014638619380199832130307514328291631200525927809218955239050135713981233391671016602283173368343780260083730571465603224299080251876141663433332563922140916338581243604711161959875500779542208429529872603098736239795364084258397685925958749630572171156069911424735980695112017110760617354167509937806705099687867223959748306701105898040444797651626666546020673239069190538644870311314067190294360541609371327985741484798511206428509713938156812773961737404739244230191778897564063638810015981426479548503195623970518734409479965273727956209328758001675585921138023253380852428861807862214313061799642957388760504519582446689629019767214897253780768111824997274770295204973205975176605239761964902303038014671290077695088138606304840200521705634562905478732480772405259766023255225648859802387582702439808978501179985592918446548052163104376132826908919719524513647532149434929448161859744767718894680959397542584574422452208515591666022370970551243394987388135960150719539572756013867566521902524269575091566940997426949416693277424463949123984302306169595204307878384847100226985951775157772192115645057908486633903265332328485984261714050183712666337752985189442591756274065789852858915617442711084825474218007150214821298504591305936272518949214187207446392258330970722375072891061259893514982157874248371211441181378170141943331029228176722574201642354222859635142931949241112517396493736711253643912871499496416770673346564712543239772515810535140248779071782057595584514492340989276791895692535225202545211576116080862316110066860744461874232089067890210121044699358989594993627812269277655136859098241604261486703847947666732033856470768902547029703445245907555825257888367560793636930909459811009881493941237276414886185901536497522815322061027151312149573079445468732663581327230512374781945164675398220931841072535456284222685030752342774956801989579424442677880612600781262030442287650262830361710863450159786580904008117937239558388957092484922466138663438689899050968307946062394896426360195353819504454114898218410739252356070195066455952220719760353473156885102086241643361529388622715294055853612907720201837175975316601865890194178182701895316613543152459719342009238826777748616277064072112082666848725753854226778770297796772524759344940635871773088518629357033606265664483658766094685671296313204130217781217457075054913247030719702721982214966651311115045722916286787621761903598996655733886201141301461201126780177146758575630568366026502223636528704115800130472822387711949826337355584638928016110492012086817748024535690411774384590178836325290110165015914450665386014658900976709739222382810072449260817081333432893310272474779255798232433947724636244214521436520414126469686785241806306916058983957433699944484973887547832186877606484840384929874648691420002199219118365436664868571730914599559849461815192831846718260489462248114774909900444849581756433444256064430953028751320939244707291778310737524009487416108804271496405932840909448820657403944049461866942320501563219710345630885150078098561963711184441953292670110982908274838656937415796445350238219845510381434274572250432566343744241357922879392965176406849652909360580420679126575668876670398043385685432416958978714482602660049221954444498027203834476850777677398550181813827987782029044935129837014308102992800244178150657398707673005591373469154807265125324783981927225490447521840125710422541016286351531814218984672342818557522682689881927860206989394902945144673158255125488832782214876287002874426737948662921507606348075945598590406806766304928658067839106339392469333593709871548339628396331694810552912280517449139544360357232368907751656436054205715182239439755095319393802973907357789997546809482150386819037240008751944356962064429277743445277744455801724927632435404971604832834717179504012343616766688889230838116576019568391808282335980030777900138165554121229937197188212721648553830209275587238484373504724152221249267955870219652238278664414492162811384423329589831008657010431477484952954633890199161334910477456756332191256910070991034969042010780682046124835154356231968798558659191187770904936589503094876704800174350166216694991082935424220297569699487835052572592699436463908709196065824867742073252674254760980768867489970830293966376906909753374954026112339919080430178578328966061075333320638581754160750653002299432121342833556004679953742537793349261298899371520891106237593639840289341597177830256815692873342206942230475980776994606301040353870284997200906508529876579762966236864517897620304896321514530518152473185660392355579031290556526840326006059627113564715772587514712452400669475424824400259092418501037893596471552905801649025584506591471375606757964662802693677137439227923249017370180434454806099337835165143059195747594152927422556154663202122014492608899429261849159641941733471276934577888186383707368856580920359909748030910853537907432703067618998891504128694033568868912476953485921424406821147088341457379266061405172329683635004625055301612664363902227414506085936184405570799715440695219446018151011311205024806897859061316854578706827221606944652783525794132277642952311085810287513258285573236189640395930746001065031171862033383440982452629592499925081316786394769273764383314499667506205174153784950242770820249622681649711613832603531970334500630493671184292285717993444917967854343549422812349771981168686129923783519130840216855527688923762158998225690108356588121373329975989319612852685478209361117929073850566716531689511057398653980294692828361439060103965734641702365374112601909881492250621591851473125240503880266511383257659517361101517322383201675719058793752907386864904434227391871539040209317004602890140501980277096401758857784249421769991061219761296826696987106013953385518109247054391448107221110594199558578621207447264729390272181416871024829406488695558005334452843092015107654676732955871896663138064076520249625910710902443280931750266040980677916319637874407639828506726144061569175775063069272785263266465725009603899593808286492804055932186868192891106249029783520750956122178155069239404778802021439349697735788463087142939855022122180602920633224682928101352669258361278335138356247438632501800831217833505194929681184324863928192650801523915903723593411630213154544639040835175914885481944995653298779684100256721646922869448173948946254312560956068745068298790582072505061427084951394246272832567350531577902177795444118244337314938468602130170015199040129975253102617239041015955889754077633242063046200973184412284347980674546259573123773126153190685217237835170581101666154796996089233964287490439907269513249544693054616604230310752456319662507862766606419888320494079832205959608886395083096611223509468176858059659216595287267781336691874932806008671076392495372584658461918984057717034927771523501108071980295581653538531320760851174117016106927552138456775283905101146030696757037465688537061246237488551353266097030469138623171984859385673748340393049335118609008046852500649507481544350586401383133603451618520953838199024889970126245782682556999788106794417681363915434771246987402501029717856478027042900576473677579442319261556403844367804294167130611590809154279701491895479845319002836508359870169650840591554680753256936472756104170251987591727763332998445036255617668603465665810496166088494314343215962881278532030026563473040152864370361835821438163541077800941110612071066940248316653736270795799441965829510029669151796586811071921913285195580066013152281179014685874978260871834627638692302144966565161768989614765407466890464197953328132767961862396445510232738577977490479270438220227205592563386158597022500836481135507636279719926369568401978633106464880634641592280333960975223269765716645494144633159953568186140306179590414696878663314997230812697720215453177065792464824635623606563551078277102184774822453155351787971006169056375227399497179796604022756542427443474030090993342747125363868604133568720575610634403627663275856495804503012418742706188173694424894548381882905023064249969782975852809787933549260742171275934290027247231525694104299244672145106800938702037509419412265681869711631854157486318595851294071468782436347216798087546997267428182237628760326097770355285686310605507633034771546805086237878408305530830880824381652638096596687278069451768579666921630674565633617974917016196078251102731117256349954153761139017378504579740135755950583541710594441187575841341567724646388396564261392245165328002431411521368614602280929545535949106433812416533362746349400440791579024021624931572809881875126060817171094719359908842735275683126088572735884104808577162866345176151194354866413839656005546415087322056966225165620461773347062672483282593897261364972739700296531004899128203868121421526317709726027072003000405128509059816150604232068584704586297758976933866404552915300784879580451631505772639444482726701869646435407172950165644481454899087472463699878500075810116479358587762254164927446169818425467918419484465312190965532126660834979810276389173172602357275844408887013474741772676599367012895045290610310486485188969074072291116526076548166265196124991932482079347991140841054016158609020578783182055493131714811563042695333123316148696409847021948841069893001540750499715500209144947509092436756042490495100088559292728926937344814740455492786192803028026208759138671885528510256588297722364416118726667533727046888798364784122818975566489123685788531839124771260599796376955128748281790465473617346160181270360663301341381605591386688815094344518769040101996942315951548434755461839738850286886032487872466289736276193616873949842615110692328427473733412631477917319503719175783232125633187981822008358108475677639337600713538920325440196602664014516443267733296958300911580800378323623755206709116753874038080034139602982940412645290728746178478107260094922143070842817096273351317973985993317798846679390407042222339736428896899022472045191225865945652817279191771744614483294055523989955136530207623296119678603378170686396851261839735755452657157697957721993813609537168598624746834645054911322323716576846018969339126916742224864761161712052779187056169798652579941009458548999493870628213704946897807218281339476686542936245969552538507923954244430410247783289758352088307690242763390607535632090458553860370133407286991027524400763329335617831671389979585541455736208509448139474757677255178368879938985569596475085976199725317126785459440716211724229735645882997753458200670725151583792995404284503609031879280999039446772471771617797976980936092478710754662712528716849871481175337044474910858769536103564050547169403338253736455309408718362399718786815107152430199222766288998268696333905634048308899591640210237684946606017369891450998294026306424119698961134263645946291643483098398994640916257063790757300772565242448335972449095514758353846065151359006760372175216956633008725645785368232890765324579100181350411867142947919308280313374486034242501538427692871310100422631150207314134668202563992886896775314448340905383156405199854555036518673966171343553638659524691900237345243423825609315326233795074154872192825429655670249318840476430221621054333353669370094866100779660176320085398833444764261022059276310503243379785746609795906429393546777893943419661680234572048314709006513946752794276008386748956266938732385007146993167458355985469954780001548803051410664207305102980561260240221957673573434378032388837861436510110467895738858451291814818949932947419211353096079752601957099945657657203044711587969510167396345982218390037789660923237753764411849869857369179901311121353823897025160826891634156178688844439106052431644458857049142079395490456382005531980633868199329444645629288043820982365256521149737711472485061302980654845126646734819115165085592553186839216228613958989126405247098519215690433266679498894544471639525111598382272611659461623072107720614434194904480155013217953907901210096043808403251528715119645087073852842814874575359775442003745506314294434312985390922514654232590436421194220921794081669172750464907148539903258785415343333266869970244004614081407275559607443823375028648280361200027273458521311753916305887537038730158902934618773686496082519755121819332085158009498389028324642180756651215094078984754744102190431393050978559588000820596613821570042615008454644854680243116121585491513527194524467476742265710184522572555541109898663166678737216486072798940186086880078217803974568235072199726856872847072266335491115755503523041020106397545992784255521010859446801980212935131137961774974777505337019561462443132004945260630008341693631779914835373906338296246943502506242538286652815702413317213258374228133155075422596743465137835498082583990124848909006713130261133401533199414613207216905260993932536319706134223276321872788344134311875265628120402509584594731795968494896848614482212608969875703050274814010055955835482866563488862545958875393464045883473480929760143014549455501045393747048084933302917367316115493210878800804207923081537164239812859270392808770412695912554937648084261877515207330915121318326429628875835660070030845235364130611512591609010119513687777754089032242709565276826175989664332921193417378686388848204094252313272490169125656680264411441975977490069382393836091027972715404518837129908983890591801341371711565750923660210248086149334712146934915783457374495698158797352291359888206786995893549684495605431552716814046402195024403426624718655757434842201021531851879333738790433187348357113441825632932332249155661135796548823693236622085506403330166940566597700192008727909310629966446882296789489887680843411739774791770690612295924964992057252674815080547094695496856375033815479360507318058910206335554507193429649774688893386907874030072084351881532604986742093423022732969077709676807480511706534656813410907826027440577721859131753843559448941424637954321360843270784666542847712637785594813160410481086761893024808629982920639612150418133246033517632584771804134992214222331296397221575842974614482259368195020636259719069797123455305561480305073859471795053548642470738283215013100042853047650647251051823256517301608226281833565993440498664832815739757241369820704306951880646032726532742328954704940426200137630256454269163400777362742466955582324549330761281025617030854929658792678989655633483964659457046514393488436924634551504309816755767820179012895655744614700133286408708328158380444925217196583772978701767099714735689082177655683986025954732790400365881050173244224473441454590942683619588945598603994511099556322042752255825986909043147903352352860441913850324541554403455717293191252380033137055262996751333395294333879235763994291392581509806076408778595996562658498190732028875683906854742218378687965097490451664444010444011193878367912784049732776335920394268677790652827194029986465115142039240784568943656041657237891521032285020386484101180851284683030237447457537691109072297942387321276036699911143722743657569320034299020992086125340951331534786434127841702565647316952839762892004303112562915047424971866671550850515700639730218574341244804170718992361492856325684318924897035534656816874443731766944390908049826911965356476981617639538865749721391665343979780074682706780646540466362789525733322194882543074333886717714147556652240195495215639725630943824024877104249100971030779862185188605709091984600690981541799020241787855167880932081048877421392419333705739197983967147489655195037773709638715428199664869222235593540923983065345614186284689743132448353445962881860986908220961300280607708090337264685166510830628351527032392873266056544895705233727267846006573156996076174439559819471413511739423965420150813778674353030893364788017803200002934714621570643949978985533860257858264420889378196894515010755434546483004095142824950339043138700464370379243997282992249813055799549173899273574985774118972178217645760703066528023004928809228382895046370497238608676678854224300042807516960643262667360400939930566262070408454903359499987827499239490364397786970158149168949271225736365079754115933313451077788392506621849213326063211813065534473684159192315081126756865490957513573820325065645926546267816506771016604135951338093275849839258426170811975245816176060982631589516355834058103962941267897578604725967541633711533079280839474303402024634338884226965140281413580952563326574914294267346422141307386980797000090865284578272784297345719117537315241729737669661671634913519330789865862381781502226743797144967765652751863398504976889818589410637713704428083294749647453575883683832711804561991343559307526899464916140641392565625546124319501124085697159321572444313723699840463042744451425844607372932904400098745024018286159355919643547874553559393076451701132496719548415931864342591490966213644840799939732228154426669994640532165672844913036718792690992038342200941659246366752267285864388453119157619243508999037741648053691711831480680852551203406642871776180720396838874110839499861548045315782267012816747018172789099879703606061388424331983196721051728755535115518370503692502960674720257121518939371226768464438635783727393276270712517741384416437840704993182110573836530864045943575949190468772058486678600513156758165433183062570838627398729883424855988332657751901887709177183908066848910285429646315525869280967407547283893871344391378096537267054110560487886138816018467593767421677807535896360695313949177170136322526838342552128397877000664846900336726248874648482396467652095725011754187653368795982163491737990493020589954875702422541406716711208514331850359882853533637323952229610592548241128167194338637724846276595156862817655087888405398723051706040154778649094240836430906381885884417506051970035469900494174877805354632558832705961477244448724482369692475463543486233449013982185927321189063678267979320497300640173268964045011829836174064115682766546033800637291811494407463393690324650117321983513530270270793061908357634256306952766679484539764349228504423685122234251029566749959787784264695602257226531424674192001600029439454354212134950087529800035665925091527862197435639841914749252989698526221313612803675673554583811899337131863880350847707437325182009745704265205951451148890922327010644970566548549234029810713311389889297726510196913382056365363081803276260836125770504910937193872297483079342986407203030521164363869203512743077392901079406229107965327409676604293675699131610861360668558915908887748595575016669057729235961555658029799536951099698021282443140786190712228513638844003492808254023427008512174914083108841348164496243054219277714135110093259774216628130034407867944694712431104551628868546149762266737264462905103355288817632265702441329457537812162266651704743856556547650051258383378846848222014620671044601441028787134029022602287887033466503812458142818079758197680314318969463993940450215357794938044723720826124301720522553024408021010046545085053444311835671133770628869453972075256973615968728809375184273954171826389437723974763063875781324337865604336458160554996325275373032341798041382643527054864084475566255424942841589983099185193712422743117302553687041015552939270871158340852617454553390466408318874471710313189720056709185997535156528795586930635749101950433543242991799063515985380621806730370085406910974367309013472770292654285944401287961625729715018439373084886627295592259391533409890785709118509361265810864685386510254066804989062414439194739834126934790188360953003222080239865082181644840447149274173321799951053683610138025493826775727688854874777409348340742478060829312271572142236465969664825040430154741384864937888754594292764884163196939471290396632896133587728152808191569526760390738861212060082730275366870519270344969026196844324056162953607527819924914997908399740345357652374822471275943875875356124294708053541959290002003601120965165192098735856723125484047715832000611028177962334791670289700866420143342819804850104466670384935186737302487951819633001225475508978346144235378130551293595950673424002262771461625545722292612876422459751601182133092691705816179524989168708571411136722567176191049736556926881826324488224510542085320462315220809127547515367893995869524912767857963907217556928492081663971201248637576030311341621919551455365745899350350500568087289073804027778286456085019041587964924555772487416029112847395459591142143407461812092298608504379078619571040141759112273585753665850825454220753497344363727466675996474111163815612904702809702608187860935999241493688827035079341547234601710071949078003926214373136695998348445987792633510482243256613128006390363465726475201318960530588879031341284998554428421086619256214227174186976698056302734059965122132817312538441566701473268314379863232576159969536724167959587946574537660499295402822534769364692104409741808603070888005886611127473665117036285432218089106607965325373392352050234660928085999949995243123783234025426828267320792587159465764344343990810734000164447718788432075713546940836596266936788954328730889142958179374747783198105527596695056204758904901082620734443661106383513590596924824696941733626245140171519540878350917419881178291545325222703195268476167577189489479182212519724063911905466387153693122215388690853015186131453527286908159632197998604035200238009801888999641345876902524952575433979722321597740477939736403842134264215369191495772546696966388207791455277850029495972978435280929582231275649754865063105953212940880080105744226344956449724118621860636618208984413901413170571615128407306369801208634656056088003325351738454760973950283118440810122795980334074926983266434706302388905421547414740269514999688408366784295442945592141720899249432466792714578680590861280454320879433320886003448594722606208404894895004672282828074528157870015252207818676794281431124664513476363445644717058505735984641997661714452826988203717680714075113592570749380194468936181509264426337077762571043693612123334515675633872572717197692338775923576439724701421049141123391507136129090026552087350644438789241809599341097662970369258305080411056329842775281587185355977142780635017573557947492621525617786219372309226517579078681225121947058959896434735821135867708797306285876365683861642149034059038940966856673944549755527864863827864496305668924131551606268612451096282451211542739604092090279435198494088199569810334626895191217618824316220809901308623226562896805896570177714199445790470736479974820201084966969998381875871062027992782512255066858337027420738509695845155537181291957639167693392125030795900072793990635483014931728886756513630515281244946898512184953106653026532839252630630775179904426533825681935808458941653056533285977882249882077095437272645886945137742581028658585481598381605892988881538173930448711658579223833514311523438303525426292132677571742391505574134844376232882326202886149459423888259089559550062571214322792293584296966545655549399739716804704203850106705801976877298888099098587858600767750884642266550209593248318683491594486025383531915971187769064654577753950678741407711618051035188587576727193226676188234521636792078562758287260239207122298250009459024164253671768312824357213696283132986219466986758290815008744851741792761218183114154523713849117343484034737581106497513837975373657549772581399429170123276840426458448762288523138415846228789201145078267558354682902650705992490193855597485291111610509948861180121847099003610224339765637845139919744906840509589265852534548139955281247339401245503279878456214659964547577765340075572576033805124623019081707713475818750654071885638769731885412013426111798121077530840683902414745964573040320786663509155713432384608984377397145981024603175388093700316916102207062764631981975995374978028227087327883759063133056996761459620922513574678981786480254618318877312809539136246953090692908844445523155208203456337022364923695712810303157381855414690075720133867131953575201778175413066818793291284295932915260330448575841629703450625543544069576429212775212584340927792877716469295398560163760636290269872119072226128649698800356944015815938974591195420197416918151965789413823176647547624463487504364674666840122547479311204655172802502290786033981498422507409410920433719867442600627151516625558973762210740289901689652730393078314040354364234858004228552425663582862755199395054380753481334827172464294488259466263046953834783828457378098475901328800824553874720008347086965414009232265434697346065722258249289357775641460550873090995739171876422994816380869327820727926436130237789863512017838292977326475921602091728992974366134631395350609801557393948393838970694210412843814696424493243918772424655185921655556392130818405610966019020639042492490577556215777193524115003508966219492438826416831246532805801141699537674457027661101095023110031945623282613663576416056560109773346185964254089092342296242456929235068358097011276076956263899188632351186769063970659130704904260223264330102708038556637152353021246850323937181290415831971483598096247688318165241741115880652747433647957328514282170447654078488921936593592861475300838775268179101055565409431990011456193282010023045536161736525471706687271105049732485906921042633915662084449599493149189415849175807806118847185743576568116798298096616573125611292309517013780215336682845757204414210844764855730115043713117846808689538684723589630121526406359494204649564858031607496120132284375162372305283330269736960545369898175410155287227185169182002664130725016377217736068485628149813663039148633946554115110623934662591242782662665158742756927352698035381504438775474210587933303907181670965486815383612396389909542500562703183178100972697455052464970061235197540175207716633633528481678600220197040502450712979821368936743131730319992225098146568791496296886033319294050969358835014965424677360970871456284862614471278103576927323953665701454418928817819689304226021353074531360526914583852102734856809866734794659043600017533802369867337976331332697882156614674854610813409901582437630593356974799995415192477450023315919602183084382768814287584575893028083058311455477942669492343938559369057346695884915890266476586899194229028071995014520259229857824851165410021169310207026404377758697929291344728974405284605492073376112632169198072546720953352738104488729368801773830839005079625228663687880814274312512525214173222432444463860420351016978905323806499733102319761524043520331396909487815661649830823265786204600473742464556123085086041782681175842463010373369604968728706483894370298546978663542221162975241512136339299381553066535076184649362155383322360159623638460838672110178844567601442880964051608090156015987182562575752853526379897468552609424493216740660342261568774607248544379227944855666587377379102299062005549307520873753628595707827314985752821257940989166672832227287833951890227767018608333782930077508415429222004728540951088193241723379769409495209876505675724272758049203130254394249450931369025219045019287964683116849869432486073219702908844100307753763690274707451314014913796697658958887829778471791023189799624245277795118081951174233140620945369848547615405900754069340874602670357784720325272221250875269872737975721232424556601471507715612165952578845747773332601173796911698063479680032715345201632263312720974895385054175282418529925326105566192433789392225384219506521007911678889615497477077980978799561632377558681522851283177749144326986072211990384341290530045548356244303069558470818237393440338027686114441051675866545179133862870053652126589309995862833878767415809290170194289329349704140505922761715336020987748662160609163552409806818197057961458832349115883666879339221106394844166351323452855166237942358666846778453510955212078782315014789397830095104902032360283078488798722710545747193784097743252191223323809841281657945417989845983730568738139409091903460874232896353533829727249656146555587934674757619949249655306321205645962268408932125967852013082054609772171976911104612372788668131551481375106201302238711612489004934396304808003428409236674640762720246000306791517146378371778583936439084367407279208387407566118351846951047603523348219975102702306123116227450066594354464682630546708484141206704451289761075891936149306746095511885219850281676854357866155253436325582520386844224401556535326033999511120090189549945075960867284250112346454591406687179333885509759934373914287280549522299651348540055982648952586613843314979809842905142521719562125597528813181993547212768560876732790415454086526221096850607482777588308691671803641602610107189083474199738309412903192541324797166772131575227586219272480040793013423066420654880008223826336355717417222622721821591121304900961015465978804819566465557045952556122388528161766056463752131149129985601086030062864012319804634369790788461719477149150286387397875507196681078131836110525053369321136289453781009004556053731987471964640136963428920149972490589696709305397354206213736556536605315545353115156094629739313801904202333471601996651349597744792384313890921026451794753018715094179178866058733206397112479085935136437899053653349211195511183218719760850547078583458057178253575650529208494774413969288298506834384936984791367630224730864175737575804859972486552383808487169429984448434319758030013602065468251732975831130926277539205230500981770460659880112810162886949951042945213292478762784472511523841219248693300264638258290400251132556192936821062523965285437699764821365672487149729441574751486580072689712545780137001096885924859426601656149487174559109139952382103363994328101403729449258806755884980290898416580728507385526750417187335722036154022595820604883545950054716464460314164500912604996349672156744000725218467317881741294088309900099143865410154486900171388056594848345388492971514669029782887455530360656619140002334485302603817280008006012897850948038109421459979436410539229018144421336578156305490761181519841767289291454540112188221937769692141451408478356059133734347067335972028291565591823778750830414704842080723389532733201289539810417100612853608197408183232599195985493978998040311427685451841428400706901432714294600981672002637465080944960512143697837053150749455974178640819524352927608533623728803574707617357375773990768395857867945814433115129311940048751164557809545746106910831933570239938831101686812555051747952949232111054419716932864837216533395704707317781619341056766411026920785240356420080476539385068474277448343062786452047095417037311296018432449817423518254468379104078114897074467642622684835258245673449064817918611344372466915094025995960187466227692659094816042585541014907377821463772349343243817959026624758645149413515935616162722046127423579634998926511639551663187906388292563248288776952344430891262538517746357104361426291130545507117159897435144420327553303963487372382769062113241396755992197962599789378977304290010639554562554136859125177590542079215614690070049564494179641502727285120583294145733820769182124927482831866941171431709188183832787924818800934202088744430799114495268975201104290863068880330536278173719607563609191218373874499015807588800524778631244006596385214222953668062050231968364491114885813012563214796113123516849484889850435148428575556852849545804175046563479385204260692121659410624280200883509442856277106952128390042918485045622401202736343563057068116362847992881451950926106945638476200851842378830127883466696243474975649052751652983106783605185505135543060948045812683208690781631606816743729179215894355309931786789353351617314065248122149220776689924536974723424459511290202083492350883272623920731507039557610926050708031922326653617772973749718476662675103349600138955784800239024111595222659608502327235634466286989213117326220777412783799239477376325771600371840692675494785486079521104198183715565636699530824323913478492990309019021482754159532553011827707465493846636856478340952101645493453362741291142154539810463896916877251977350119106409072765901761440238520003439027930302290102450959065960960602282003506421424551511503116058836867323953513047999926266124788860858065819556860649747800363924208004277155045455100923632387632434755085482247332642527142617476479309213593515650142210579930872927518566931963208035850811648572654948620153724647914968855961421873072879575894522673798382860231469825359513433622869164939253848555650942590844587900275101021588684145921991246203394025619806513829003974022586282875055090532883216242291842005347516861118535934072988312567533760347773463790060900448290676023412613914244840179721879650112196552348252796916361875318414933798531706396539949870471851899970837079186455569802165906009210326734619537285184983449377413518702625933101846616367712774216937766398327442411592170354306697307063349750705234004459455345337382692051680733655973049659577405257909237563271233784648538758124673393512657463997246278431166803105221373410521023762173248038724145546118175530532289698460210594334721325267807591635520353144894042994945540083896346485426227496681378860479470454476948645181732954064802168348362450650349212116212015744107950092926798296947381897886525341078036629245967003200213095061826298908574442325932332162985256626822170825896177290745828554384025296610291897145570260119255051022621032681859291492674594360952747338738756530329000868732374158410130060619395378228602051642040335980210327694266369584639087720448203599920662364180979461382128085233519523912928316821038327370881471009387461240381882736024248655381956086840326075711360208224095360404912194022062886050138434866934685697595287173103515918079309273531973026587700450154176794514662471076123032048688972293703137070497019628557994068034805366533646925757157168537241775017017173716974059313704088576733299174563423255040362721513678174573510390798994340930161719285894333256344937597717205282626588758689029597400088293893319833305832411308222567119811364288580723790649184717920389291577478120875747626717004489296528456208430608907016756494046913308833829489895199823424826410947514607252179406160103943058779440435786068101165856614313303326086401358717406319279811585791218766403498655509124503897307884058589658528560871033703010050463788112864036912732859256954235191665732776912741297062921388676762537716828947454361783584617137547025589392973916469011321032602474082822638093868640914312578241429779656649531828784868332614298811545326087248512707388873174711758002178223092606202337108033037045421386407975116144032814114030966806606838460030822606841296934582334481336002950570298194473092611001724404461482959668334802338703608357533874853644255951249526055833620933320420820441080261389879542073568677823989465944080943076106717383856858750318654305858714460372092934450702478138458589547002334631151816242297933998260339293760732703996540860141095002136061681888593247364280732996754281000443180744344509574563140086728395100089591848268485035547297898776206665518391289252332190990652534429889026407872642309613728981956429425889488918907321158210112235639581192364871725142532324960089855304044410455930544720660640544237400581570585789710124691519436303766257032821241395304922496823623852244647819607111285286390776934833943293176162673394999356519608127397446202589279296282399402508234561399540036933802052190710888188412828702642770351222831163627318867852900800601648676498675044380892564987041565254993289417400534564146801392248619177342299883548234210464123076224342153453872994465367013204263692143330544138982237809661455848585321016937289442321958409883799749826009041781374121964721091460947519409632581228772905405108696834837116705014687899905376322343063234351130702089491148462828667068827660566036507882061827029810254696229820441224101369370087368132241910864512169353132224433838589114764529766070597307640617411896340273196830668942386881815445817009264275803808972725954005766540941390495828847541322773246045363816282208510725742183656047749879799033642510421832947329138648853181892586390163940563638421397866817037646452084250727051795682052896345974488266308175325324091331037572321527499967159797003477084892206989142627765803300974076185879610106698302237427442413127522645379696100648849317720111082034085955066045530673437145951948495531029723417125534745161265165710811151518657679396438621790930933960576530616763888291857480416660587660230607543836664510107563114406003060140262872842841578368600604321720019261240447978623096968612143431339256819565774767166771260675768150448807412287898880070625359974312800763881214302052037596861272571932284728459112991645115165542838388157015006262192502885770429677264978202144715338875233551769081951350299310759104183151864381491306940737003930802890753540984455104613990181238086409401125880406349869656340415176530164631273769836791500102275333329088893897865332587233708123886741877549671118354816640276728980940579393694897377448396287121143053200137208069270611954674144245356973477601364555883744948737173968668887943185945140822671292179434704199311787512826404426752791242475722665575010400877698684071039626493268005672431068418552933084980812301968824699471906230863038725084304195092934267165705645295777862556635537985238743198286993208507686124975671080832818481614804978825618288041622041854189864105656356384909881732270129966430379867715443856798218002884421577772356103350806028793720428683350532224484660210568134737227477643938314120639228425532753636571330262622105889810924339587266068280934649000347934269385605812642302121845676722200843044422211543776038343838395984965737655775598582847541968107242476082024052985451367746667224286954298181060861498419600651934462267596616568637391671798434472694214686580738579270863927496812399975028779804678985536471416498234850416652375024185723102672567413869897384481781205196186846703686110717681673376946830948879379962654994190305116025953333869903791334482360721432553398772425807435695496970298221109267505153334107957928457465369296593034217674177427734954310783591096978113225346261739872067146608796404753130507911780887564748553683954379950383061615638566186862861955119305618225064013897450139757334712960532724092167305029879425045358938163483378159222471156983932897395451893245445209815360477912598363653534349335646328651470990234773729469374590624294344727136813976898772930309316299920645723266947860835690986679381035367296538197493530247160732416259036125268320609973104324988050239410324640678355627663520963093723541327571001417997790341092338407150098005558592611688274951620149418896232678449212822175719950362929476170851910479796907895527588560928620437147419134375690880898868574831049015221416056231373394430123864144024719551280792185547718246572948800574231416912145674803233486901885681491885555621215522434682795883425440223787236201147165243512604416241345366404337731613703865766018296312554625137927024590860870218352271395066472066633881266725751683354164828771826940478186178508034575952155690172611360486431751899601855356972376959973531943547915657490667595850409756864836845636958708768785333514823633116288982383928751415289488016114309017094319985831985801252625557006991074935009439067812052834160153698033177641650149644370493603584050786711574670734441659818245553559155084910897163558619474800031376144401454215430593345990901203926460277035349953030035708504899286618883792984486671290216139844753292479177294093575347286113423225861829833316622467484165674556711206653717143058540754363830650653048682553938641301857668025958900138719861695922191392712144016600721555017207177553231223734590784978445842557862881835037250296205253937945973302278699396616418692393097956049387917045781857834161676736137684561192900706134301682852582705801734130290285401207649161358317486871231123900280483226581532905356018660446971250634717145875872853393940449118232972111416264847248863618014581265529850847689668985334654901541994650565986242166446292277202530094068468446228573915044920115357251877323822362316920788015111558560893960628133950600846512994677090068212262858003050120433865203594132005800927005748534431870538478432109817219972570821475295980695274294839393715290561730251576930446342047912477145922233555464212620960731330651338730439303149448104154947183126583455237071437588478974254281465008227029225544340353705148425934001106663571770550108044456997791446287864353470764008160919326254591467142637601054690459795765573380827686673423021102165492266662274549321594449533151768734474753558138352937887878087607461304374272653548232019883591648134726761668463932510100596245972377838651471704012449824785366311819688077235750153766555414512095918492783653659423532542542807245446712768108499289244102690701569230475413977044094202206048276948278499590116315417318876335319636693809208344174413547212102464165594327939375710517091503635789522479323275405330932940503923699473715724036624167685335806848111589528988039577190154426958206368489035075918607622656004669751631845638737584922277339356781203697738403421260685095913918863767585889143808089396217466669370537605745587553515627618770325670364760479170998394933843175363382575792155705382946457218409052257450777011920589406707223440698692727193605235238069344221820688800809899769459184417216499953386371608279372880494991597032447639093593582117419154275582260103657904732721662363758819505916112218269986460617617363356811746676803468806784914469234399822436787733110026874652217931660889971260526614265022538061507615047780241199575048924464293011844058786488156490763712101612727659485206053849296905038720990570960267504718699585069935584300672005345029731592212412988832007416571438654884582667513244786578188703611618819620994157503431556777171393925839568104864107102944901354648539029891348426742006908799431099379327726253805499885630685161762295422780172058446617969361070374042506917323945417454700263137812022276915756607718319903228493378431997774303451688460478281093650032552156794900984014267663016585391070728268759374880465448887161653571644706468511670309926445842617759239602342511823946314882157341869868384312567066490832150669417377001437646454631430684596034191670711713624362619177758007098950072891991656268482489514322904627822476068875446056836318529391513591027547190982128649618766281491416820781262705169649104849886680933237463251755253686079144616789321402821449139530530645165011337239672980852713391057321135012586631822595383653452779610310770755123115445904009991549762904407950766922354339900625011700881940827755809122600478392249953227055192431448388801233333968711844824860371047132488585300045675056665337510579871439371099803011103916452432318476197940554828242553059423575295655981345792368016049381558622524161659872264366115779158807447853486330286177668552500245469507613153793193997392843250315069321787310922927385100810765892563505431733621767370669837543467664301893557024839753899824945449381347133224734379686889152091043451439261735939557515657711502353548828245643631899240292300914137753212923180792231991710774678566812211943955027639359974914013462587102919576931729031098591595585230039472164941329861938477196657254999336843603687956574799686886199336924538415193384483047573876311037460235820595944914708974796350118854547147561255995290243192621731521651025239211702657075198883318629855806037670392562723178364284809582432952985042128659617964707349437512025019452205308912560197950474684758265763266958402488110803814643251680514156525632251033824380595922587423617653870130965491143154704235390264022072364648237242886662670333528145727326936084622286638122910421565319298518627672528870531942981680537428617077130701383567431412992140240499374664640010767892444713494982041252446409463857875227472446132370746061885494141569269184819002338125546190092961091776394489584614732390657406587280432353773282401192965418300175036445693631458217692145737555819788217008453714355013766928269060227276067683291353326457562989733233636478340055431850737887102713288334946930479133792157164691890633667727624119654539452192783989328215111387911459072324090129521658407848179862491694005616882915198929737824160723036815003180764780010815014438454471280869152528182454556348154681943215796988943864332305318863544151166912388512914668729206379313367897966985699267012074452079569445871495156202262022242553935626534160743140712445004224617040505090587728022831634028144306232404948327930059073041590486344298291214800200843429643064635770492182935789295997385566073865710344003333972531331543884505307501856530021331861922467243749739596870083560245610998012489945428710711626890028082858353215053946417558230596420637890093472350032809753607657701786628549076147928749135146413721162376754137666386931306268037859118264955913451500023685979187801170651300355088379167930058118861755581169783485289351798891902336864709440327539344614831789970125083472184060421979838211946480527390371104799400341096719624967194773750109776468727002426982004020805699250540326673809350757743063585622876364554380641791864709461474382151395855769729850201628361135024197267203380995045276379691461944460784505599891595154271742971855274027890830569117968904512249997510686695278136478654666881916317624659796187414769444310292666037112950961224152481896404266563844310834283018471792897494179239892993691824084758743994069662530148660654447633387312369019590342096774664695863418951659404914797337007133658812671941552704106069508004718502376847574648487719871649939886667068404449195622242695619700228885551744849071084346839141451878682458757596281071548081977995286679677121266129553911172959038593923762676732239138918250266244556890519832430995924901803912019840506604016323715662954807516651971836988383463086752479830149580266046246459994653920973314270369817791540337548983488840709614066950810447129881358710416589580688455623788717387588084849165597734998303545027392896507214460527290971124674043366566242383712153504065131351051253804561805601323462927989487651525301859947483350617462849326847269570383784025312287785326526985609336038079957444845544938964391170814043233271999709110608334590086387355061739518630760214050696951336720676342804187932458916446984541626226818313976594565261576534309897235097022768321901437180868958497437751332848009175137591988316425899266737892608784052729153171271713221377314127001618578909549066655077764063392639517946690420518024338408195150963014280722746970797036503605907770065083922042599288877912610257215287139456711391087036849939152843489667350799117855121555912152873653894962390243073530761308044804783691315177492819060553719416110133353388024582260023691927427947186020693389589163676485089956460867310760347261438214980616715183984158253885394687577015581922117482106130633107203718569581533523804792388724121939781281905031144078578307521539568858693097851611260257274506062387484483986753862093356115902870836733025251430441762660938471119402878456970905094404526134516641585230001974490943554983379597646844917962571083673637718119851931749869140107458944734978110351489337678034268407196589016452817695408317417795640001765064236761529582821290053025535785875827160656933081890400568256981308492895401700151234565412128751815731451448092397061818037673906967692967131668277350565948158777814003416704846172589970062720955693543727651273504436351778644802065301920462196621115237106988414463574159068687782240582003188250196416449971652977141921609504072220935374628802808457556046322934112640553362533933172640279574537094146028008681512106898776202012979654162149151287794875287004339832433913136325673530126019174621615312938701348812758510954238551263760612886720037554222575679440605172262325681003191940219749060280355654645845226730432809400352468863836813669881478659484600753216325837900700982956847032180620854720859698308440085885005924505498031535966619338313146159187135823800444237773061018867458377265734713858418572929568049387727414816617819003726975132885282537622706327557411422672808135570665254470527037090611191165965209435342877557165937889559240435064692139013534469491722189852372624436088298276026226842079742730529131479109049190109054971059930043894671494227413577216333027075659991378318755600232335846371339278545805440692306896654930074575257529046747601939578683531963175811507709283420786751298850291106359468914982488060114532277325526268272305518835940576934793238483465929421049149598931409235600228445285066931761614387629031642443633985748839972694761795949685365799713831108197496517053829173560348371981574842954510260430851827394800869791094459999995661100424674974945296798327989783185581176912154525894379954872097759820082379612990854922715438856565850655666071387119691446316294687292783644527032232194771976990864097679401989092387488282952001228759825054016017509934827201108800640157998378489289563966378983233371257497616072831536658187652124721039530588307590046299676221511667389623128518068136584826180890486851105284433680461141838181282943813978379720161752295140496570780616411816002052866759546982237928903401872717182176062476643496542406014630573848692738403463151364248898428853907186627856948144865534869014384852485758226908379703292988243808433182725141715846690883250203552636776637087638405653766871244089752070156799049460703416248646748688222833829791562117763499060694225039669252564832994813303739185348568012133351869563682160855146066859179977908085671427420952453691543949659179182892868663987589165118004394196657247469850592433966028341528331473172995082071602298755971366209363396840173249924712739942356469732469482676588656275264117135506484261380547241072345423119103339707288890765282977189795623280768151112244924700822044631282550951815375808655852570438471753801922266243893356621928370300679570388406676991176745219208897911887517717769057030015251029970370842328897715979717006726319423815389308867955173359442499901641302066560505642497847100475425073429353898524897207525373313810695390294088191352507885034720169004152907685494418548582009002352366129559225217204370825208934923149163140473979596556606066597612045671652471955000349400523183564216900192961257448416067858586575711023414263110784952802034688008085544612352379429458933193383276913524491830860769488895237210411580340323848440937461938943749133577261599062670794549242251424241952985840100691716221647592417200967762607285352517935923530481020407338567629275579999924489745107679567430393878397437180026068330790809972433893463161862718967990534660397269974658050014303170867579596789884272663388035566550289382416344250991301375339936625993948436431456782790220377939099342122160383426899344942107328611032268995414048734013346951703586376884591680619301778346711583150154074219065742784839639530816147147296678814873178910964064501536293361956868878465871560311606075723143490159544098679946820338997645296101412946280915815668406293599586155478431298254307346952055896121183466489000161795940854922749893296735764179940863701844203585608979632121531931993578070326989252460235974753065339941822257186821731837695498395243229905897790743190314005832908194812621189868851426279640586880030599810340394126937158510720852254264376913350661345421477757243032470340757975545511443705567688415438321758440415949877501506765846522191542716623563077256318677841235343561830729630418224908621894775982926914710891764908118818703412983265211684429170970568170791404703684616004974685929773909188717344482947766002157386370836116715322693194323638342577428374093905129807878937849789434205156327969176702047448604368430511261145677364120617867844522210156203519525558029321420662193566541391857246169973146445922740046890573750912580794278330080865962684698507210909782804773281035782237365016053507055907108513214672016847856579535645531737280312550601477977568170022720837945632361424715696413624982504910813325249312658287637846368223836295888392959114201765574190660975555815795567346239912471643280919833475494030587311684308406888505599618424627153498690781755958319201628789424458773133707837380992294457616026408812412157178932626172267070734325780325372696485832737391804113379223629219900406128799041705352214287102472531739816222800768507378922977592023487176470286578129843846400919166439282879060233569164235511703114257981428499591877925605135323570623377934862525941704428213442292285109280534658891601449129600497998845102991718699389184336341389483782793289210402960728852290486181328870632169831184609526982915710374155822821344208222279815106963014320604163634337418905518922057448508245306247065385477290634140540218563990459497389166005150087951861362675135592727964441361623363982364707041596539035455692871596557044901143560909950988677973231676741831947583200359191332720160216969943792965188651474575209341679187683807760722980671419938480878372496199547967296792139782121470731531504762766206549913048874901696183975141870701533471753009993334438945795027024260578194193260306018288189116854112045696340182170994627672143263715441924443382799144044677572119004330966261539142880025929643632724930355401885076160682210738049952351821965271042266337350432018842923692051010262463416183299086684234058574907194106947746133861106461174544219919828010487476112498974398935234861178717979733642802391015571048590672152865925618832237398794399095350963308555214475945624394680985960701020062273742685535409824622405006869553134341911902345335450455417332401177775984569591507064046250820598829416289666354263249577334275008460194984056880021069461944653165816101982158643400278359265272444106351880825435534378833807349857028278795536538949641863664024809539964746471114179576825320989367430894407498131403704524539885239519555612504536911292409387165975652107268004317140211121080750748744978618628019903680007842021299684306615791744845688610563180847530510700834266572458512869966126898910695341794041718711247434544184856906871766866645760283079553341227668510625200049871735056921774593604102904267662752043958237010756786090282020420617027509660340713321896283779238939683226293879442415019537695561454417249950984208326873842910461477457565720331981869953934309765697231811502605529836788241869182584729433256420691082888656926803754931501960633251455391280638016961148503716297969540832993428059352373775490253482205851911246343626724310687641264078831012254049680878254944011424800740275191517062635239235308711146678843069957657417896131375532231706913757738803801268386417346351050593418650792819033280992885084921998084994407434289974707255283658874906066954438605509531013630913945755330432434937861732184791912274038312111031129023039535021076477665193529803726421298251365096199712610661288771597822284032829542371563595678976222693473981451488111225043913891478144506863374223724273541210976006651838863598356809586424225854947538868836573720460094175418502292933564159102594955441127220832226234395873619678129766549195731455798714800571615862782513664509609633326750848593012218933277523130228786233434029060488157600401865325533999869471994879513091367273905382064207210868900665597502298569387232042050710814308769179663429196800791430677287662324447302065393524793591735559705174262164509495864530986057780436968371875156962792901534805777851565434934775212903290416972730380306384777127636274684520059760710479598760814730506346409172086859658017991229825595176165452483742583982955835028524880924277266249534220381230506993435175554145077612988366510905643812354274465014008978420841333880572523910907214443121110724851236488783713836257061613846307748744757767232548542135430443260961725237051627283418778011042473602839916880406782414375234354407519042585733011709112026933481032387387909154720815583894927121747783622037842089354855926856327759465061808127669880279525962542739472740778780220161100614792685236769776696597540030405232324211654127357059335710803615621123289698704749962620146681573119986764792999861031351926873818849767601779173455795174241575796338140373716961294681433228656100804850802121757677944735238418336943799002712320804364492315027615623051081123813149482591852868908516024250778650781726922467947314391049193065258824268011552933539661577689024325085699047570160679420620581721743840221717351897705445843562163846060853887031200117714915452760226754774927534171913566038139280489883318442290428766155955686357570237352648992114581907981492067833485113386751309737200800224914029391883556672092656584784259823930939536394382695937791250968891719718830260114900985059751419527461430223414929913982344029502713891621404616047003788951927756004442102398587292428212555836169850263064356785896458362076748797831938056145626697239643811046848429785666920899804060379387579362187958250811194945101248887080582161238832728559144824347300340682386090265171363192798503567289927056359295702240957613202127861400173140513061123586068329159062367418754071625060029821116212291327414195088612131811852875998652939071646722145561253810457771314518885169541754130786177079671096048144599536214231362709078632747138892681415507119564493759254259586953880207314727766888889093585730997515997696778072296912949691766708307699086639680569418726506360769885749175352844228515137968605804923300326816388267099689923328487421948344658586587916627526554839955646425772499850893632809160223216323059143122035491651726988632559811232895224971444624490153982267477388579640728152642750433681710081975235523380672864114172716111347595812315671851590105438126422842662855629951968615163543206881342784902992480982899013560041532608452197023019525180223749243459573300370070876743252571113255722836709013881992288464086072589328262069189941757292413921983980627307779248762149629190560130369601500854679686905109547533172247628519510966127588509981635441531972853294548226655273470552923493212536908038635819087393975756448830518689077555136288363352954796454827215028730041135916042921853712166311244566380448686678227878657771729226266172434692487247838633497474172942416278897508617659256806201673586595605949481905243809448402752298977162443849915529904624977962793077275333403986260329201236316756061592111641371955445417674596760639124787776811204608357333966382807411731061738336220907311332154434610585996477340091820741953653572188321999169073183457245838383004140105890187405540679757443355238813177123161642327187244387133908519394486310091122294478055923139866061835252494127943517844180953878939392416051484501816929753012120345861416869625082347956881498618085928917835091749565908566654537060964856174494340386468300155837146320892007548130322898016704581452987845616962643875066588309189259566305727488940916620271855904454399538759358683716374213830739220365726863205669051859433357011129686995985173807187825884251284707968948972807131101433273510154421071418486018192536461260030933124492494025588614186603557144177399387531563878490625935626309432265782775045902159748189710022367188631976319150398951149730076186579096069327862293158834274820428797139793778333185376340128650194658650729370560338958871499615434058760412536221155542017794707399029273537315737256228673046444251824245131754602094627424552742352491098024246259478235347199927379257966672706951471928357629972514610646394231264370599240988372908884019449148937020527787100985765212772520585156787889332457729450192533327094369923658133187183949418810455574004722621031929749679126279195688457945614697782886117678251448698276795822427676480208173274610787731229159816075479507459756057962710329097530804589809913341374557390767016119502971677166963283456559122705586282673523216966722963305017640219712927957751612530882199618261537289496610984052778237019904220229366915832069113437236056981006699402577858082656779226964623716443882246675002572842038900526694407815191416273899005270182599090101600768733792818554986557861843480297199163616764316802066164164089026644768668521040876966987134619070672805723919988794913378024474933834682574830466458343712875623482493895828021733587456498083557744961865658028151766038577141854190558890029520063584853003068907139707947143251608952196502526815538329205366558133379297769826499597043614360952172873927174034873733865463989024915431582369685437187540298288895347708072998895614246059553423783466360541202804369486170808270452523111873943019335177951781707660869342049965870546243372380341783329596063523149752157335629479147242027087023709276088431648899797757746669189112278336841644478202048401738802628634124138946385009927260600218910043212231999562836854758118191483685295077261216235620811501309864041817641474638659561255438015665008846620494356802982699468568755977692878537848877076304904678943542832623865527381876948310714481057307269792863162306889867792090550102908337183348584466231927414587802506366661361139396918755787380496347636917327644037618221056220817608361428243057442849817239692814070141035719045812684167618367221954478276254259356859961117498973879424354522438197900886295775057156329351718395875401598986897642888616923766368486837323386930526293894283520081956157896477418496165630796232718404992508523152980597263548675104658257497370054714087544816707076411731557565098655364453934332377247090015595652030994248525999512949725991403318726509699065732655263380505315941024431803035152745152852128230678990038545764416181060414406574752688825005714511143262417169721337689941884271906984075246109880690314639736340148376852880804003619786510726891397155084293413658092207959461851868014207152086220465579104431455674644893497847173710938064892187138516547659683174762672679562123999774539064927899417531458133717970819080797562054790259651851992567784070935699661473460937202917069500283123978650293972689547418092587760245833815604153689171205508283342042475522388354961329321922346678235227752754039820605987876576427965060044781060196520662021790234943682036558516222896897436319814861362782752269825600253309260629935571479585802622423763399678273319164113167128297160910585553009384420247470462793849374384821608227249248902470665768994619401719019671121092211968199310890880329927135549380630325360641103911122296375093614146872743253563645488316149333161752139372309409720848594713002254579491903973992053980658626841302670984327736785425895320321978575818628421421384478618381334376593941436907651326082870388284001502524901238461475956255608481977617734090058665314240882272332383649416945135225186894729110692887809985855858388194595413110480954515108775893517003478599726114544208257271528492790589764362446153044539156713617054569902741147138271210408806855217162777510105253152127390852118050728293522289339117410790479618074465409562531454667652262336202953089516241027879075217252444071224683793663074676506595088641943562549533483334790117644448400418038038877201139983377612992070871193912583814395624847451810959804990628168308251629619894655875713565512359883030731060867394362126534538863357398860029203401606045042115574871094062845441199450751042192179794813319841672582876120155638322867124611526874036593198530456355274155374668956871954248946912823239085770242310979395390392701491918979791487510380194835756407982170738311965261564692201117660228530838212220058709579090756585257443038394677250753459410148653689800609796531324405540823602275709422910517318212778930577509376692665582931097492880051748667178509804507301861036348515929642451139373709807839771828138139212029442987096433436562779445387317087873532333120563803364304414468896494571790100103203907021293723777805028593489683688117748573208163920561690065929175666887888436735970922059100411829293635555096660126700856496452753737606641569188325838761286830970524216008872194561743243681683583984128448448624363094254827075149108764217603560439084184644090059595484546494372407013185804372943898737876238413996687979522358125669205344940402452527146622383084716774280871312515309089599999222328001894626895513727226433656947118129713438001524593705161880440388463341494389274857499423810107591667159697544431302678759758188099638257342229487587164568963852247345063574801401090363387922487254136513458521355370717829927097739724878978837515214636260380010818604789701088135236320453932538182038022233389764812285553179685815399099266116455190331681433448416957656437666096599133613587552287785208144067883977712409679512375486766779826053612896682010001289897055087017199000226236632171985375441047919108386815770186736326829468707946653658236635635629735733742235973003476782308725389527947346522741374719475662324467880937020696322359682481431380880921373471910543237890135987765076743257147421322470884349600813282967755499356580429983380828609079010394060361051319308797268868596133807927066101472519637061035173487907516469794865557816395099313100089848661550542335733529163070326610378057232111185209430707208763312899629159072859422662896574078572405520504734211897021233826896718054943134507019791370387036498072001491697578315919357672204552802837681917224361854640688220112153179103314624278176302201339275991261923968379442983035418575868525757561475328625436466461417784120030843715338759071965913460384274433636169647303865027701083029488056232137139740777586887371412565778107822608127880462396758007338073941949464154433873497304956495295047397543442620831017230311398885768907787514597100480692041790519468256775231877451934280533463439725036207579209684411064890948222326786599055398306966390132943196462690278499191722647622526078416462994389613416016862910847470760868342828213966152956592322324721092077917447099850657681277303184590729463718472089198919479110029812453211093671992739554382366448898899951626944367908787726796313375904847328465612429196263973067136085074756168953675060179057674133566076173967992802575506202591724791099854323631208659797401311314478019609993116453003118369519591425648467911351710788009025111696113436823126799120167566068459942234811506441995125616793005696967172862189440143464896682535086119862026767988023028942719212536434556496568725050878142872588512628683975567876435320812215084996531164010007222582742888650724495368009659218820270692884694245311697685354235286433944160557474099092204997077522176270932454881868411685788888974249286390005075549289964441279314577284039984394082410973892054900779323196209630829450750874236096589460962880920322713166835853389586396832855549769796989945765149353735428752627916034765082300443526343008411755428057239702935616611847138585527698316768649793901052186816476514178068716716790515838725103904582051814517444180293397783807564866929682751423051295158599253104882882329998268413066522992990013261034224424181151554804533266555860013840851434236563884454731836200357564015747812934103760629800242211956794941484759513978265782083694510001835109700309803690475998294472293292629396664003787339763673231767006069153144364482219931444794172897778848256677855388989025681861360867129193012694068972694485803003148767899748232561141598265982996215915527882708130702415610830552686459567156746076982950403993388913343186778511223000792888995378261680681340322938532729584643860280143842861917444359790503170759287599314509375312621182946175858750542860913196704642551757852188618128414735482950993496129053073154799281518224162046375412253310516608985658680152767801701249238570896770139449445538677939432532652935417786676055562166152283195423940485091258571280007317839896367493662393075181391248693621140375363989060411636286889126831657733182127454507485541900522502882624268480282829288228489630309929355526543840644053679647761137720200734059942918284141762542700035139765579206643055464714113279581249669057048122162458222971847170458283533813126790784495723713350219335750227805178473694036289555088386992414176025365726807101469227504195016500717821744963863328924637438153416828567642447912294542503837968341310024817050677623491570278240470813715968015186762109450248155297913202557463931682240533869599038561494489621344488949956132302347947727667085419223407355049085170532539127009982760048241998553418741643091258820166149424085441660517924042357446801375738160027646340609774380894347703710199683190049530323720790458509014927914355609289846596818246876263168302711202591896185304017415909950468817839945458532971552290057411893811665212372131724558620514686667071440272882665390229827272639822601598893003762773153096064856683559234263894307579996874582813437405619966943834635602566201209514377682212608177490460638872696187764593568936670241880446457731076608757571227118116081241281714768612383173239302539728546718207384690339395538963942767046119120687272374369117341047073001582285497701344381171020220144932602910989199033245613563232616753379692794797143117929721830776682491732324036780885057681669235496656832144471074828102425335971135532697847788512881918225951400535935618057706576493033448168828455617802813673218381400194528072384739004063312308018853148771943090742757191764253515103925837367917301448660258738621741470199042808052764755457465620166149755664297711840245256630090704275893817388054049388493634304831466372294261062077415329388128073672621613426737880078386498598894251429892070537485552047942791334932197185601703313685332549803469197783576341464004124459181034453680464003292477533402367244361057299435765435780425077700896767594297289485708444236075151909809965732870222455326430060249764050912148942434524978084999565438113209215953980894121232156921957300276181826568850047807872622501975420587661150318274454680130717623825183884004348009398847669205312870700654025519174338621297429693912298484291866264127485232116668987963838904714951187684092049973964401060412282351500554467436624002541965311321995739124170335794084392880924277818019083714331364231495916727978492506836652350485591803524783785905212198621360419448602327770710409667299329233433135032887119649283733642397088054745016569674256717884253220882589475544104480447899688155991542113118310030908217723814421784482310914876332856919055261276500811260662806738984260323360525051927170037667744875424108640995412759065070483568248083445701474299682236072176748910427090472871694786302220923699652753579141195424172979086520736213871804243622043435116992472737701805251492257278996619488343942193295888864996884217840587370931224897081606043944120748841464560858923099806093437720455697295719867106483522481568050095773919829802339436292060465600483913776261073050088234332195602197203892181761520615036005827392357834429247019875176699550373817272567843044545033070208250497827875062651258688068882660423532204529369841677623141857857886823892574449999889124797354669086191786131330465298237124370260664443770480481754499884709559901411132841675913804570865974879895022839535352613038140644863514410913517065615916268635936371162591868073221608652206978581834996232191733267987482720423240974741796380089803023175594573239461076162616991703430066440391768603200666178843799539956325757934995318998322385227315487284292910902984836323453774733934560022457083292008281038800521422926901666750183074287068355130904407905744426169041083668347144628241542158724030918531740995240008466077680541269083559204615171353138579643603296383953621107544349742675189792549062301626013913820722752206351383501911904183244318178864150013879606929585327880301181488062872149632273976202552261444681986914207050268142359762618073840873421411119570087483225439633211699988018007772798684975698905541219606260593125319199029280990617923740264302667785121434599978631706271624805394467054199109211818476093859280427717229652164954865666826869064740423470594089576667913103602587651812182866063204343754945637291049006405322286216911070548004199017434258782816135983273190589985282565571251432450132899429551199516524389196678511012379429638032233308875161451780208120119574788400086382222512230202625252626163837094480135493321247791117941963128473904251909255428981672548669339599180628104601286071617934610071798549327010665700997995797896958368784707366663476303314402146418503206792521591958193517266414061022211206646000201950048782576345319304394281355887964607468643933597864073836068687496493107343500981029422640594844830521709748069679683045338512774546197259739066863759397983647887518137236009742287311407982185166500633932276418227268304270913813588356068191328705134264965733014812214218071874286327841502409742676871431102456811302791094362066895787669633429996392699625828277936216125896957407398487109850656315245238957974935997407658034933125826435431329830099283860305776550269182819043627875856522765643369606639816555991214940988040498544518793389575737545415232851809704696547449399267851416797568575897571588048041232836622448691998374967907371001832707038994411754601573115843449448190815072857317421378331860594391017922514879038687077987417404354214031447202229762101062813499728517125553989243436429246222108170185745795586585725876630851474345357300710744074775876676300634179706746680885780781511158957180326408234504901633666764776020669273938303016995314663132347010496142045022607437459253660562199632388175409826070933367202358435682875821307536344148429519057043733752999008050356058978929732255217543102452155389072084998154944069435325044059900300342042246313577786115750246287371428330825772303106972391986835286829873568938681728473487930203666361464183362127517870026946902959267669196692168641216086163257783206605016383201147923719260136537860327737967268041877718798386378666570351310046520303473299242462220087588555607823034531938487452328057468835286458027277555108829049167017106664827326728689966267499282616890820530985266899618388479623147973185392087373706988151275788095199701601205385866022583499942072687136807908438046721141896080329730901302445352622000524369921919743745062114200235450642654157811606065507260247404829154286081731296865387862361788155174911612066614028928491451447473221332433284581956823656182177729339574824342614303220922231531702717123042620971931030515910338492840528025679088453820792689046452625071369561079783795717040975986285569527733341144703796320121552424232750169878009440420529098328846465074884294069494536285062878423601093231074895383883600723831746435296540160960792811152767409713651335203307864109307515863752266581786875142851845108317249752616125441455933732364667092646394087214370487670833128411092303937334365165584595114100182583892750648516662941167323016124113556893333560154958870192353696233872073690789565323196677494230667960860491843466645133751390107842144001782435913174522013130316278675592722404797072038915995782950300792295791225267581922057350649574230343885194621527835139141677466338762409990564777433594943533464422565464127717096651336530096205989664644187564068198743935663582565269976581977688939228340758906588299119433525948228952807599003401650153501588649023243912095922345913253722956117037793968036098943139978962412769880255535132711867790723357393152794204858655227274078659743013973215405339027358758633664897421211228430389106679954418893867738994692320282587543379266011210313862849236149857961851687846812307982076538342887908845785819912548548711223454994679936646311405003230338222303564976530559927674777299250526920647712514581988189118441722726845340646720962167308110038075419176831930932336482848075453559816573595833264822503812838939234096458226744998231728746709268476286131499536831354782680057299711401814030643855469941537409428273743651410973245158445616968096681219320918913572633084023005125159599234568148530570082311321459682374782670163362656852639805692856110449690739244526941269386337369278094887956597748328852420353491473516809113115209811626118747043193238285284331183587577200821335804258653947073482347431357508376509515114744120189921081710256906970559791921970054759326815901756415072797620422079731490596745207551176749825373452901661893705904835633238247968549584916462252095042767186756454651311845720902362042682278753832890541823452355408665164024149890164999027761842386758765824375422993107648748185169125715388599854461625354347912483007076548784153891946993328276847077373146258230881359768112652994577598417088272198560353159211761967639157774702412104723953476278795348131901450197685274294394944417542030682644882873807795450288602483675013023403062133832684998355326595048320032040926598439999408825384337061809770866311355635505038333452974618237162158348377180036318342691755644932741196044461565177023108859897971414209864003037099342189876154847599687198394270736737742261108068315739914729557822660414104802925735167854407850962886303343944873355772355114018956562411366914835217139451225670216637504628639301476448733216070479894826942850748477696489674065140251938959329099508034395417521722615545819683809905232141658102183314841028929123238934210198039433182489788706123743684575346483660093077812786239271177003446622336102168570403385600119885631002800908430095882157174500204201348815575715487082601891235230229308538327347721195129601833626322694918095462241167370673891371637520424558853691022925685438444663369742726759644932285931248538513414594575845630027652898618908924666147013506893485059612075515436213411739408978139091268946639530204915209302535993959772932098325734819568575282030562370912601527881938290017498558423277216870487247736539952824274304924498876559242853897984654375498731874106504694901756365135753455921422763076826431667237870521223070824303935839124234477497652929203216807431541302228211155533430854038542132828215156431481403432035216235430932836790866131626608018952633173136410130872391784510319707732735915941202747340060158831275210338463134754935685772615640670294699632719843834869324243739524421013919768053793473340007361737512313646919755091627217919427859502776827309363966637959197999736603043454209156141046499790536562222959575914436925505136739903643487269415482145168687716117046355706435358102447354819758903221993683273535085978228573054249366351693967201353332201497625844433761696193813694819126931465984336985799271358119780817124993056947714142640756694484730317601826156131223128543912195321977436239080969375889860790385279953780529907042411647315466451770909147012557152079808108103524722897035869749660906418913081424044507137183306126713489363267983451611804340785135101376011831597725928571038962313543663868182802421053033723791927940207338406476286327747079757594378482280600652118717587401813219810700007553674570024525495020352709850304691720889432759803215236562838794032516168037522615596926580481849046236783419166859359495912943416274061379188564697357687119180444778468836786711465616283822949761981877236349736971733630774060292556461646810436448434374166578711243448871966129668606928056681639454024168093552590274967597269177021337482814522985620738129216847306126675724898364349763821154398896927360120929696724009001721295637116914551813935662174251378288310000864078433201679121578886765918076256281316924328938715543128983576422092636350342906498318396165522698933989448790730076074474266048867838215168249492405870307461260221652222175890116058207567091710258862177186711614825017014942480790684085313219406726532558477568747182310622542038570588665777007100505683609708193149821951664286178014132118828484493302041659583191972827937706368408480334646147049586232585762411558720397648922674623894855879780189823852766759897598210197571409613141694258222723840447733326516355034018789824415232305338665267307081260636095988097366106777208188791648010673854025526764068161612680724663648519190765553325625023390764475590368705779416018374471381805118723754936058600166422889048650331002245802647325821481618389482163649885861641059676552951694274452148854652077774487763326061140456632444148446093739613323137090018299868753801043950981091428313914597893014797703995387881938355511836588188492857614474381336149720351612762978009342724054144474062186611554916788324425298327797850474282299582491005616955196538373086487955542648791380444420011939316669059598466547994608785342805311958315640569249543508569468451548840009230473806495774273126949617999428736607815308770925873203269387496854871604120902221646955226939006278319042388038516290632995842987743311800309627551238992885325458646942924086784514980712886832481363853589665617890226081974117206168504610955226854186791292547948600720879707774104226494323158434156629514818883793005062671912938440639161105602894925093235388396940370840323206898426294941192901935757800081627750484785486922983664978571932280289103246931340572947010828009720697225138207425161893815057888351898256047289726870042696182739817079720640607051358659105841764713519196567333851383617911345630821045711327402825847804224477058623158761908601030513068347145049754013284723195540649292338431093035013763610802190582062153290813014335065303633805272637358985068290776353466060932576056078736415995284769096882941212418151559493291791854119448435735332936406206599886190431355132665140492742859329807623668952372815248505865583563182187163568404985991166193866313220358671813422113038901087480716687862858285472300865837966826298162080516821380813754992080961982033153532467038098880711537991499554871310760082880567001878308164917939599538985460990284968232346989755606796008116386551979760814238326768904316706169816797533159262020392264419504271114154298910199165983023813503029936635563164411332554504281306084976471682008804755337554492098240083308818604985372649680430971237870279557609269028886782035105320347377633443249753968788844736050987334939466787242936615027786983442294014923739045994284041827648945132004651877707217078469522541549754408111631139614935537021128421807923015447317020566408293314320235915376716034697087782870670401777323223082388770870270274480875743422636437637011531110670551863398284108736589693275040189945417619119061301194364798364954231795917697221050779952318308869565580841160628049102353728777386233553767140426284757555228507727391355067954984650248385561061634881726115515315058861409409651708483309381410492845102020523574995854076973230505638327293970476647438612972047991851114248477195123493477198616023339551119871413490397274677333381699425327067729880575104116709953043842150029002925421474923699522541793286009871454280387645641240736560232397408293414392272218551051392132101044011176411986047994138347268117168968629750037347045047217360366340555717795371774108365222924385746659191900053955488260213331740089762797293022031535974319617439907104049212482737514606418106792348003884958193366370294915655873987929164298627470929094569211427090767498432561967660677763661289313820498110347751489841865998753369344976492634034733976617981086315915618788594361235201179171977990897864743061527128891975832090516079693824826452634100321659957062776352377419631063600819584833262941046028394339985436953466978909361888962282638070803686434989797760627252290130212203759578451571953137836688870181621787801578374806946712549666849947430830751674471076205812844787262338491483719772811601023679614136720161621327260601952784979503049787299724443727560663575493607178973895252792979825506373586448580635632124703796280130048534775478980548692309039413203973215206327108007289318999108528137466864039963454308023018041020811652267064388454061588608330096922202347166617103728084629300986637090900390075799191776158864940319419236891424563035689311751692330327642923917923222408207993912903075965499287161103279397893553729458058397253155318191796792565949150792222544259647047355692524029897584791211475919729793821674320033401179035342153862688487726384404380821038912968507586354334186342254025022930482876704118667046293870031613399413451303906185810586903527984145057744144826435219709599290226583088483691412260319892454070243317560939215363072866865726336932415051798101598169658533629389809377068246832285232078693963045204059416854512311707181960761544305529246989429697334039678675542631972008109364980290495443719603907731263287093883464571633307804867243021360598339151791707205590638793384311148147684750881617318582463310292222350322756388665007453162415664155220594078779126154773378654085261021692519726643161151849185288883180532109103859752800154270366269791702605675913093759896717832465456361138957764902636240259361444962357138030899678659328342881651527554324826720343416438511848589651554137045172163305547180365355981914566806375196729075055392918699923704814795919625331702560682116553477753921377909132093171127372631127903451830113611693611244210010052067473773128303562790906758385505843067444501923926346877882131302667898818417492966035423842660777269256990307488311064993938127134025527936040565244714127853881182374261171181822722910096212073516695582621576240526581797482773212212212649811287077080610845464322977370674721775520566235319187702166943018905222917932743335164168131983263907141438250996919409439592327221519865169558258148754339760688274686019403407054003140298849213557165737228329827169197426181546317924488103392824076464736760186576575103913111619185737798674042959925119740320850862321113344788110517415149314880256623664117464263096342846164547160237359422582006148087384590379796686456209578529674564432754393039151377825798209176614165943619025251251747784711557305835740588004339152642670315707606256356461269938627027755487454991252384342100965588551637297106645611970752181439222627279775658611767493816727691512451133973792015118032244127566933711763426867169444818022560737916146457046037799679799214960754917390152581304031822073958404460947777177520725079726818180949914465478264895836637797655625237925453134311705298437720509890361552731155129377087223871091360671235033998043202835927789804158467719282670204555779970474395907960617157753831794047144486689403834882513798967598985926737043359531980078554779961705371396997957055327108319020717252486989929250475924506246829095525609566509787263559273884758883381435497421620118515390263974446395600049338079217634206732825015529989552937432514108067511500242787396677931873242348076358256100734318482291477324848248081469065130791024492677285159650076741338814264978946384168064788234603893918523143917611412042478668073094525692653878683659690894889203357180324689317047934355112768501852591880738803351816994677436594960137908892661689069499694933220494996048842450416127350780110157221456231409732153550979614138957815248552011612650247558002358775630224662046772736711312179502682399175993393900774341905352614658066690367689544715226440746241049439290234879126923314061194373232253482136340778362073502217729651614239787575674187957950254618657989197026458338072636280695190845414902193191778751293190179648114472353081120592262760144190524988088144928757475524878441780209295466055480886270777976499490112960979826170882459064681712549994041619515415384957560697931400402629031250486428943818808971368663038311448656874402760520992902811558133053651474677590829299956943525270294213810140165855496246416094689408074668298499362303235829409344949346691201375973718683962588871810384666771663747154278330465317227723806482035483861982210618441198741103699772281420593105613810761575684829337241884442148421254919317998929686881063714526191508491514251912416169695972369785799087090376666781091445502632458222262231061293232270272632986722889237668432891838408752606060817902495947855786397459536507147529466197491077629190943065546032708144805489016114486165950856132137021643441050692947888928542911438704473654562402099942900667175326347162710210948890941553391969099880936879716348822150499877360454280691658049337693247184867291550012224206902185492760875420378619843549455848453401882912938233347644705286620919800028854542073106926116485793655299407659296445554735644878978541937147744538263031881437198436430973782655121285199796160749003550822644412833677682193081090740575543060364320983498226057372811085156389819925959890415127915551118118386258949138950193478678074282474778397692247175778891320857160962890122131158240052772185662370123423380611527380744039486661707913744953134867731093388132421836687759726459992568170275908458435372730225224889566583775052769492014320431931676295464450928117430232717263073060167220073524057195322826464996640647821012448727174272434070678144686612249821325593054897579941975187803563421187795094478268308142028982952578501702459665813255464734791879886753043764640940995001589281139792764275682680192485105797156296195992751549195585080205812130447219517927951353139463250579271877891519428011009560345512702260826156112789277297983206929718995359617102171466825572775364092160605576597280883998043921392325852640814424662868214472557021812543368975076471242501796840934886958907157559363060573349750392692478984319109882439002555811217764541646748039071420834599070204893338017940860347649233013744997995482290899066925150572299510067213619218188753871524212659743310341897706995095725061653474867378844001665791040703941627285386398686888977737470844269968124523197787270311762745452839612432611250907122484142096637836266613192719150875258557888389672351984467456177912045400133772432610557362160026240972232784809345642350814055372655200493474379015859778623720332296475356150028034548015557884835170889692625271292944441680393152322324882780031447700521096074054053638547717298436973950801803714496816825133204723175977914247282001488440839286885539975147245211773338274547711687031518875036345612151582287460793026040460653070038262113383381086250998743191968052217908441765639363571937055601012669728711092494486271374509200391111372278916229915352359995775646634775473113678714431158028506752693154894605682703604523895734679997357803084704148650709945534397136451227337570752478926309625392866058101369458661709423902767512436840448741929404644864217880691327302907975848619942914209688488929810638799635781519796468791182546472973602429692508464258369703163909125538072794588493576114680509666568767387937065441478390553130272561731517344760062273187498561349328704397532007101417527882315227547577255429893938969085741188021974436891969505388068218319417239441172086005789127237970296435382199766214224355948662946810860710904290162364661684511700117212605472785831845536913177092205132685087788796328995185501070081344942699826929585807506254160490534507510767168483138231441888727745134159287965291958297044963886767404638599573600495349559198408124025409852196579537377606917071911308313237327607626078057352192265679179409743959338416640631380764889586200957847016539318981544189871739677036116257431411731678480870435923960056833199319214313732134093513915042002337475143786084722360206434462745365524987720342745340913649616798970369393462379997951780495041120867839249419250302112219693411496460795546125815281842366169492947017474570057109462398604720101407370520733728378334184637408450698306887713173381860891562685055505053613214038370088353437244711659123534584006371377365492403580879407836847253692733141434529599241322552274623014137617860214457768567556285527650536296180491639090444009575600115917635895972479384734553698424447189548955285428616943029877920895421051495055077547802000163544408513990256748222120708658048748524546734763946463485533845721230084839371171871051724634417784387019828027643704798339408016887495941723208954999896527357991959177388777978979431217833926154062106468505317389889861429504359479410921272422305144865612110201955440397696356073387667172029730655169997343239287361796296189979223861822191515290785566361435769621667420573173043215229263661429746096835359195133185634177416586392808302250475198394043203590774943693719703174452051579750312155746152837727969510253870091998897203213497582479407573685209854705413025692841097726247120428953893117406354084562805284804446909450075968736134668767500647304335013492387726017802700148010242586741664854794690593235146562972189090640175832529638378283341379069327878036409814628012810734868871090216572287158516308303667222361821107892623530130894647074478460174907536443977640998099741509627292865538806373269640080375071253567528224061851168009112779882498588022380043875127857430036499727261313566924209620446072579455814755118349937457930074978831958724125854935062765304537211964937954699088502128484634038966286818231747901295863024891386785654093004997192667751303949558088905841705695015022598667115212975791233399025855412447256157059285567309583463525194103374646461059651613744616255914214635301408467358459895281433107021160269271689156899333825025544266528540316972675987878633116773847097681737010429806518617741386848748986421413617780155593010037590798638377373548880645242165798328192028913290530988486169832563898100584412806306350956101038863640655978331865044002750093795773398160859045362650050536065105296418400381444514070254020629998311379357566592475007566343055593212142475075870634047004746247673541094448584354527085384739555349613801355063095920874125228543573503061565918100288912656755368393113848583953016053346209367834774216276284838222162311112856438364062756166587332655904609930470659613728607441897980339368119799999383508142474577718101227860604758572607722817050686347291327824675133172177465514004386324127708708419723264342701099429515316312467749156585845649861519736635497381215138221904684266547569016692231929123248615146348644254775811441130560120827235699205152486190493626937783946305492080970628621753928293199053157576667671130121396393798744158418569563637192942518232226648335998076842597785028261707968473658753756123486432039016475866576755302451778769793010986639792899597983164797953340989211291438209275550432105113870123917598710460147144586811259199438386049514178282970963755330125668855831763469251122959513293300834774407887569324455369879153141686093833484758989017931608932442123180636156732430549141090380425082885415987679299012096069138513224073833144209421279505049106860749588652778282344016929333201050320756531868780568396979524326079252852783051870639848376829304456770102932910374450868050869093899369543771673211845736712138254908220546113730811673636112787632203122172885008710946409456743742643959906002228213974710494661189642463654355607324665840725889301362101414485081206961583288370194160965171173171349662232126989333300171782259330909818179265413968915980879095154512267909743393962246379332615047306496385562693711631602178193519980678874796552623646200230523640752113409652511520908374218586682180879707879821225459659747665821232535274932411313530998952619713592435311668049513959398678714343525043748035225559061068200482056299661431669542660224880740988470824976103044610820394617147360140632609669846016290809689910485352141958507545816349930248587280109915279798943124016753066681079163711865061138426117970769459280082509782555842835573926564295196398662874720969678737616498784800781439685659636762594321543038342160511560186973851826880802379351184185317995571310190167605918900631286224836247700160914050775940588738223534311009445483063624372134661131617726953182142147593383729811587768044480224326260525225502289448050096638422267915966631086181634971645308390787050788971100409631164419195454073838563937438715107312992907820845057736624562332401957741235762462730493968286948108974926271440924929267205733642800702331786658098876544849283492537375456009696699301021505876472041588599444316728553912364474637525674160408957300784963965130932940853803794723509212691677283186519380051468344111214126438971229072754626947001399236037547594201244380900643402458383729193599043073209917950843366696450153389516510819223102952195320019101841760085893667308237022066250456331099575489130124769669940859743698192304891179184233060508615440442254509648603452951936150698284241068539561045823651154549867576377157611413374430179493026845225868924353235928500125569458535309317897427948892918357303750335939946725039999386361745675393108905284889204810983432265788658236584507921647855329314596860974768085330305854547258746743158692454496520857578159821692114571057645935709244382320111460920009139522526254530241271929342821033147187303901012036127961876939154572897025547414559932693468092137742720408523474947715789509468818344621558697908025666253420944835286213752275860594376939640771156685324386314714276241014362282459675872121183119063310596266276071017174640822250429624252492327980399480712147974462279053443100034547248957198786827902450110947320063191107564292098588715356179390903145538503605808250917418780809309316219927052774062162510215729491032677076301422487734030768624252839841689192792922868742837011261276934595776043608069042705126186727431375426969267079790415682396315224792989519712779462196304514715090597129369968329183413309090834117680514284817235128080701158773669778433092629577161270585677727014411926187964430357613959165057662871686738662505952926908354835312185133931042543868689614828177890969939157016354433571122980488425334709242351290726617278811320321133040706534097307188623386188685186611824088727827588595001360225764811533537822171123992128054011435005128934436360106670338938001020061566551579910804045109683946359384416940414804924807358782366159611054903049428484794483722570093787166218918161199346578324015223193173405531340095552510846303231103823841483471115606008329401841437903453861817018226307121668303071268231060238501794156524851972106858171786264640681131239581550138446621056492264725381195514020805251789368724577153376562492075448353418587189087131831001757808020337517459767503638655454199605688237385981444161230418614992499689027241981124509608749756042964086714583594563610641904709983169154179030643919299317842080166149724273768823740636550162114189947486951455363820201002660939934458775772690918343172817596188804953629590455323882546108092886495812857697914786787986311813943378200528888944070642804217665782296622092971271930799314659967275575036648046470829255318889696839493722138026952819117262605621515638835520115401448874149020125421944352602874062611298761528626122183788834766999335391675508034777276418996172671343389608226053060101870636860167722560233441043311842661743689741912810474511646176754192766103146431301665529686885818613780726515112570331120858062317897111189881929925447808731742898302964960329650876787290674939676790207714245067325678535597185871609355663860451025419720246105108765115595251047842033337860795602679566884445639839332127762917529952377447775756791206293372912313383195711097274362797792952175328487452509822829973992161145313669944248468459438100813348459468673220192590662641280825746732620231805159199438696110430441885908898677289104894306231046288961907759843009531077327289289453342697983572079359496209523374635833974029639532024148264389073429307249361805201814368799735075967262406026148704401351965435781869258991691020655111953759604552042230474341388408437450287119183583461492405345451174081366303640319143211421638219655373129406254929878899186693258284395486041206608629162169256798217480627576410951091696130286188644131430859943017263496995003064431710097012081501527641230587956599531254056614206028911043688481695662133264229054989930346683936052121604396348720361989232082846978087927453177160576937597998069341605851333375989145082173552997468185429226937927039633080257984077198565783386702812041945515983921144885886330312464538574970655463233884263052815858252504688584847640553729630240313476761741706007565495198473411557648404641346239824516421613885668139941582453632091641153303497115983315904061413629888016757526560216637869348094298544745033261755887038834850237037927049864766978857545730574535386858791703346869203631414424036056280719149697617231357056376504586068497549907584733703485685812030766572153313035003733685841178385628797513718998010337933853259275801943679464223140043679264104525287173118610527129754367644780481252822204158426293595863718461507798503296279513580327483733451168402888149820769519335266347279968767331645913612212564217396063793952132821063766682642832694945951510981381695528202425401864936818096332786621689508472981911368983544836472207596639623362938158815583822050087686513966591037538703809010147891327901379243100568134523901564265276837417896359098212571770741267184505848935728890486817782080978740594007044619228338570034500911020527653916042775127984364192043292263870662542033611747550309714946342356549877688112345667077415330882869033714994307109026968238038639050240427604073760502926585562255528585296729279515188496741401832907557650902923763570314752954512394930820852608719633731567672362532735095558444191135679896504486615488213630737616655705755067529173117857155861891736988756364307278125431664142741760799408119819927810942031937800920569253236888025849981580534390427371731446759932624926823923349548106124806900973998623198703633691088271168611083600906971923078501915453859282410416405724944004120112109924172551790489398116381900732860145652235860961530108857585223300663658259534096110589129985691366344975933439875024903087377626143395367625256811222295169662802470293181658646258519600228120476368926743904020645268237402393049678360716303373208193344388849790733629631178380767965588650116081592727366973826090711799443730233379913620140248550514620788075992785923816904741638444644036271254996252368411749669307280434077551836287941657800524081196457278075692772423125875837969160679309024263738951528696618760686479816547495846528699666662006690876151337477991695285243682469158859996972161056141442653719852103002443194075720517663658831352473864640471932139879943890243268335479303030771513731503373434234030328474729970630368909892998072016226828944726666588330132438861043062667626346802079984242816723652794237903864243777016824989875447270710103098667922873054206526478704634085018767791626559101817498716978057308313486992831691127947276275745748003081204972042262804492047983892007958761816193595081500944374614668233813644675558401080413694932890849931192740512149566236362420212385909621228508033832659689302080268133025302550837442890362116261459069981741288997937877240331453526341573387770774884495946191432607148154536062372985653434190829573312764997208604640402097009046510983050133832519044225944472102272283143839665055003310082769227435885881169917447381334591591896546696420412147537758472410377579861649877171406406335028535882571773798921488108984681056644787163142913184447882167816130037533076424458573746708227985853946560030644914931930258178208270504968114439717350850250432678933907368184786915278449985324210704633296020643846791456194634672120810390559752142527136812839023813755534376893555096907411523562003564261713632985864292963131519858678979258558700144208425503993012253185711311711334359689292365141760000964129599303248419046044675604949629665200016115650093916325483524644238693069815542673272247556548370779939705816337885441415463834433907796278223091337302529268107931062819929513481815103599631409698137888384145433264285538360925415899397879024386495962009796537690621776672973198950300102140934882134101699097066209624991643990227129140664788257246594322932232090678469171111814689003799913061149883468542541715392426400146970696176315389815653935605881933825100625280397831210327496024977644581762444573484235047146662842391661178113594423048150888802098959018378205857650749429317244194940677716295847881718444617748020944408076950096685763869407208015285902950776807780776195368226368706175582072932150381558415170814698681685730403608315027962562427216104605102693571183786865240360281066810725572845049097838272152954561275241079347031007160322464274258545810300968951681849048915525943884357123513422468276277820530983745283809209049116026098194174338339720293295504267173417605671116510203842654881682721807974892119223891718765600604204357127498241222890189165150117703908616260073608850041569461220917984469431331248892598786717611931997790147764298667508712384397363011324663096002636144552484628550603118675171934607854990607078000514535487557759929574702524984030392488440136793314952117212611280969982897839211820503334016727158628589902584852055605632977252560947650328191641373551095208111153263677333135292907859390401732603519051998385577388966377124670004394626607273876757682151216929580539693526053575791230748197182846137836476363437147143528275434051030854815132007271033425029042013307323704738653919109202943602461611810981518586141693477294075681601259430435042170463519641292940725217970967700509005548849458273262578330730352848670672976086527741066352775963237863193336607228730658674313978053306114520030348655090074989160547596179956799783445910126443360361392757546739707648793957774907565890378684298451875001114019039424458342278643811414873952627169422012413167275586945775306317059120927712373125627878272219207838953439275640691916064298779862040253161090935467270262689539218529631346316036522755663911122820405834161889181448620391624637022096784394811167607403199591869997938140631821358655643924009791849468312594018500027878561368047831104000851264006128455999498497008629098556130102753765304403328672390026311331542189025321738111034077924694157253117148500705562076691902898508862533990518265735705477137594807622891466915124180688714749264752977251824059051494398643916642833654748468980012388320948395558435621442121026477289263426003165670156510582067932406397588501172363201426223288193948669946927796407699615355718388491909338263510399700529095605631962779267954138363882104530761352927421909602735587277400310546466188968946336916895662607620590195683120865147511374615022203997036467040188413145954735993189753461543245043033615002185229350476849394751946632738529089850240893902799752981480517668205700296330519648770038839903683329250927018108998914462255712081239136352615425301297177891771180581569570262407200077062072418981694656693318834009894208606140147421098096867113869717438063321761896550875233035136768979789451624526623324763089658935642554303348749343950822909462754088706624074328380122644512282058893271076868170734009578163894171512517758942924710017864258160754054286026937969788280027946999212660727511361782541172652929489675020171277920778391252398255409582744776807331988423484455895287753412793102050567627529923319892333559782142427997566693517618871312092339574958534954759265074300535378912769505636294359668639832186267105411457440554590709614243952692458286296049526941015964053159485278810971564910418733730018818086408745463232622122366502350732680552594037524745215897151128114623675356222815259565347004976341414897983799334131436456976585076091788455186039967016968237885527308628831502843953005397910874995068492867511951292670620296230499703563099973777321520251010743149117071448856002051496470569870615092818324514200418755386980338048965199945643502076222045677772582388335036775464605866991850175137242873488610204303157910269371710573162673199934753891416497928029929175647437393793258094365500450577975973130921192470438048962577313258435599812214609844296377538632312281087452345330390679940547631010567293906777582873809494114287343602294535714009665294096944714759410422646937100521019771629486193448862597209484181357297050396515658678909679001827124194932483394848340307359945038852368781426545979334878565855512382283420758389010291503325304643082349615183922277254284605052451895475890677619397817569766084473226518190309424456869262412387365101912548810914658882746033509593639246514479422976864239887404098577742629961474889975197115038112334748239119468955888817019777068274337080233885586470311504776994873055832281832746766299841936672982887798088263763569857502354553052417166614932677589202727715683968131843388396200597102770684730472728828476296353734179956447513263341112211237145076745681842609704308047251375882031264864266734670950400339073437021952775345817567465140523264272979572860734979399437912596143584033615942493188245209343773290437369458249687323978551783097969806153753954267301321481471158655973099398861495521874291265550377850873287239780003698180551260048946204992158613271029762978803861902863283602121326986698273331384054036697118178354800270458305295617130519468300838272060468226831294799081561511450602476372647132778341899673865389101799468541072453042824172187189925921958455900265762787120615372301044427744406574544097166901422085914948892383604513014253617791936926891114507851025834837828647672988827884490353628484662675602306661848681886949473743492205402600596128544266262789029767170486554922777010644551795148779299439237673567679116023146742786734537704063441479881915869238920767778369797636362948495074097895874555880699101826578958064529960185606756550235920741463606403266658585784616855189659604568776470196878112847751020298278456895376963731121931855425494936018897394540089354883643657023015086155115843804700397168191015439203798721354934236903663775380445686397459468102704324839541906968425683667228943627486418833700552281620663651407688569587668944909155491359595657094939756028123170154624471775999510869708983778800821198906914959237049168750420784350494819413779256216297225046398158877550303185599384770616025616338476592333218283668624707642411587159516650353595978719866584421901916207640643072182345081111135530680453892563841027929567500430924580581087914671799869188843597599339546070349097133717213774358151432776603764491015777023943161379778882440983416150130695355584647799808409933199732089778700246229914773195957245890203926722521536838466322104118295361808854279983448169044609058979275156163684299173307542123192457703622362498245395534132312118213684882481321264013253533777195286108725321782088171735606547283118310361472518385976393957346004034328139352500803465656606454729000354952375682525664628968782122809818901021436974770773140693303739752108123731383200589640847278614382974863629783855352588772417050052768784164676318842687553204430577704827276021593137184164017789768136701989195977071232337137019810703437480271793788732671959452092558028021064801229420450894678662804805466054542026852363620590815420742835324884630667768219379740377350926121899368505659405680935540194482477691905867000492415755116252930814266501557400483804723506297633874120816097645829979105868777193404063275512927178528868344156743724304788153477818537220142832942251337423663616753488762033601612351882320349191284571193855257025969654421568344816438139063536816922567929709153674123303284899244405002168406367288806515593793253165369669736158642207642898397054117056768493896205318215451474738074030367033665597545268244554995666834752821230451171770529602929382515146939973719941098096426503351703231827799605594620163456720074423595163157986986347201245354622227133956515801196955432282754168970305998109446476625301179426631859098090695338419368004042415088336893649665032205326077728242973725796694665026335513101556060387545293529496168446710573221587298537880010767814007308352782924797921710411546005075889968220439762551666775243179350231298423242547892837087644373421989481715955796293046715976709328683924272533556173478434519458921858562533410363844263236985102068393991826198095691476596467184921451277547614165734532260930914839304918733998369040307560591820326995554244961781554993852161437713004468042846348930142871971314694487198833424654629477928651821850540027310919537008836604692472285790987091157997991779620419925781611650107761659003801932871080550149156928017565240376902178521388450394445558507838141225821507391741769147177506357348031772146490140677375958876163460077646326099804928408945786520770274576292393674258686716046181467633755774338691248226286039818502609133968268468773134150780440335339774110739655861253842556143822344928906897348929421848309650575048481191701505282717328922547311984407767159787238474231523879370919562822727842622037997572461011188507790902624941481322403399573861829591111514674445498009979825767764015256271570020545496460910495277889892095707006673213163213402491594106578645681322408533430265459291175209107974972753672372622684550177708332513452907075070796529883657645933258958155526069399247829255514696397879859585270736618934214957807282095204310018411786437640858217856315284205597559487633992545052109940026033690724610121923782918297103519284831323363631300164250866831185165816982457391523218488191072405277264192243843322543368893299111307312895541135428688383101121823816773929034435921735491607234311395743483624803900736538988064389801223213397321415851160532419811798896395144591444347671884652233585902462538862274573457044670355956763154803719514201374957347019132792945192156884501138143041754167884497652875229331822544168461226276184244769005526430017344666411135299146626054384805184889237702232464186051401373968425321817514216348307447315635562391092288310361113167227564342159833977360530860081351417659187460018419415660545150001733204699522721532212622082701057178800780335563171347052286845381353111703815060512236552808750572754155470658500867989437798689461891904796076551297108365416300643595644820640553855570129069842010638949031046931286537705154760203070925323878205297828478750738677775510209338535909224035106949889902305030619270294236864578131664889602988465578385821958172403968022923591954115017417325699413237321672018439538620702583756553097072441829642622724339927856195532288826215345122115049123990054183732462428856997899826993868779477401926086725719438377582782859635945881281866720788565413113735657743961603600473944789651488260972532920132876973280992031721152391350625230553833193071054253958971844353615581093504727316069686907791137733028310255456063346403799945175337360413033158989335747090519601309972454676822334868275605646540229480035217560735936511093819488648895929637214246721681087932476644791271430038471641453940032939034258924408587974658924288677590789877399856035785543653837227397339368395913892942629396932045008945532273283308292304017396464200174463093562320227283145436192007004345784262564680050671377567930273038394002402115268082487852705398446063077170452562070163937490846569228757687810188819222253875183878103968269601215732050132696592177183385455779277303903442571420080282660254402539113592449621800111486188115549364995482735050664544152141163627664726245216683877896048639091945173916675963211000861767561964379916030451687881795982377293807556112246408711454195702157145689562810635039196811888325252940248723043952774745147342357786796779310506802151161665913390562865193663195653612417379462074265940304201989655493646691552702324395970565958961072554496033225853016054040655963633876602872843913669371481881416239061287067995394657298647233111392106713811323264558570182651972394016785649942401666573421950631631744224819919466966781854311587126065861744567428895667494938927491070447085833217937452445356122953528075315932046812733937587148366229835995355654687481091501320026723173984878297336310692611168321628956016990497737594780535813771469606751534014204464494398958211407160240801285815666229228103852078904977249185892585504323207126025773686942553357656314633532978585658208648264906315207859857988926868793465290562686664691237944576504330839175108679431865041059912420112949018979917742664737291852565557232563271067378879682409205220615003568170077798876530960728477118489953408522749613375821881851136019149575898940625454789742974932637045395969869098235095576398968470470726857563771286886627770040149695259250113157606777076485107242845885583152872666169787580667625495937310961562904596307274236318381318859265378531779518465556275177731301127763292982210843170443458525246986583657838003709653290827381105740383291938934717517037939086557086370100752057032599374561317802343864230032466775146321094768093212614177121894001835761094709717434403857250121306876266841176681120511157353578271651173279010993592684985248340514255695090741328665453622752248873302211492881403753351181872454356258824116065913529334183369732102929373709448743942420271556971084884270505562973245500065267335804304041755775979239534068222490635084479275070436010975666094687224926680083311723430333573404995339428357699058685936950538621581546078141447709892699608915408485749553558131280850944919608030644057946346569661101421257417097791655470864322820112190837516339980174608220295315328411141573390104479090121686122561879518604440285717190429008715212877251364576910360254834228044765292504028199669434246729701199614194384196692073262110645473314467723081604658576326017422489970850572338623283836276810373330132659230579774687387834894653217873015171967575611260421165372956232743354523389726787465435938460551193864667846010661576793121312768034344459071328731332223292445407283495556960801305340776003297862834257113196867024463053276620470988887268346445970858287255965628938567171776332875134938684728781484427842264403470479522471363042494017247091180861816239918069775538783835743054271043134648928698557322382738889507344641240064672538135889872472526182655249497810164726444633073865148679293476846366172601808834906831851466267364417166728306056937903839107143444758660847103162328443385887716468506376006945903894998770651511491333709730417563646685873677379144198597971658502891672255453629241254578789166006325797860513028629658127183493716391539623509137076637916942055893385754013454613061287167847578591795906848407747435624398527262455983577920235234083032434970382617383133109889654142630323213895069818678594843289423936069674603860520318963715592871949530652947964022967403621979571104831229709447919540197043245176307195961625267167550280739003907227386343302689433754645689549244348150916981124841045198237309776176882492351554591993873586949372291452794333949328383839967588190347017090402757968121742433982966505666745556986768015855554439662444118531285361130457348387587093722565791552032430740249700206483040913421986770502717152054558400329680915910353493124314205093717473568661711085213607819421164511032198331787568785201017821992797028790455703135128860197683076172949945557196514751540519795874413044321532131756204297374838173857216964684510994021955939200933623642330906344963208614078174982402187259922084193177527764320004084809722984610573337134668586087564139859674302016138111227419530119735296956417135723472699501092740470771986644356140494820929663541347459585336388519707918483789445025676779586493892979840361404956005559410703168775125318771067372287906410454497976663690031430683378439975261459342922298910902906095428813688873326933977841992007983649091804262906400072391366389648189733992016022877167008913127240600521559974867867658941386306927462724000452449196016898552937074057976057552723917715841227068680293021730164758663426309811708209069290381940712398440070194700314507304013863843048119368424935734772929086270000821228571150305819904611164875421752814560953005724673798428542436552791250269412457710012054944270487861301385111523433827964946337787285957997288759700100492646137282361834177013744963216165142567271603217774388223777468500341430800965132297016225160913237329338786039828325821101772909424607353398595807681770817813150872114788707087767192148330125936859559222043183972409690454992990725732150643774448256491834502710380611589174136061314666924821042885642692458955652957564938810761937481759193885674403910446384553747437548858142545236106839668690960293086330376692281492339858211752389080034402727705462007635847506237495867514099702918695629146454998482745315326473587818629868272555037132189522856913131127825146190849159326268186758135054211171976767283597020932042033027375336990785073025381729905390588375447130039673984227679509255310252588766663016836268648666460674500711033904443217735943223866792257958733343741006264395366775045798902464050892507127834828001705934198717612090428417315774295047217029873878964191567923343526298673121470954457863739085209631329719331108550545275438067933019415754915004780036034422690239368424539480350974713071676326789018292479475417256456569405814769493996098669579381699348770358990360083403875191953475634971695696659260699026260164073896769498067193196218146313097668550238504617639473006912863784521014896581723485143950248079868292275433241888580267831241051540047540671843750582025701199278269878726825373115441888172351508350138950148919247257060268647906646287960676703730567543215552431064468462812870455650727389724720430659196423771000449994878067262298531779915318164389038855260606350388476452763862387454386945417333252987537836926801115717165275973654380201337389187460421227651529838176721894300207468567598017276519954276082283281505378324336063710543563016005692844948746057688392953537265119455102674977027471316319539825182290831900861478707776639747260189674140328812338443622407350798047222941527296525126724247009171948475034750919723377164763110874974834051159157499623473937390548764451323485204779857209318120620056151766426327325083533101038754034497667632393382840211625206789567178944906572369897279860377474336285518892020613803732529012731962324414105744638594984959703495013223677152235091122077591076842702106956170583078286246887843614302481622376776985666093387072004194382544911280139006014609548802991640222763243740017957705886277317830252582963086357342615364663470880951666630117995814864332280887216981566453296475316347238762970144102377410383834089745074443936006186273215144288164681238820132253322713057176705889890367750403931431753147514072757167158677019165832801147097152989427184674890944034485660602954441748008216855646046964107905422666947909067261366431246340000617037554538266722972458057684803262809953865526369660656479898889123691051987878083031835022420732921477832072522396670634612985902730985067173981306857274852104027342252774814562250247258987174023488718080742091515179179142823605762235870195477479211313933101637901549490914865123284930310418273743160602782427073189687994852224951379824962774444543352985111300287906957425127017079509672833164238580990136333014373786158937997730056183323561066165924048802800099748903727236506003077973765069071076077139543504071814936742131568226316128637590787208390244715774827483129386900966966289273182714065829635645855499901125693706564987320837257480938491220477037595203903172018751033040902005598801674573252565846629857382968177448666981136212632743689523605432489318310237630851476017723028584011836631391337863158812946037482635031296242642478265840316442740858372615426878478788073163215038039375243848457645587467055434422958490686474394999581841331874492768976430043084879189691155660120901589384273384776611513427471570464814672841551719116350776110837497405903593992751974819472839227176606092862970973906216432155064895661379115472707257145677102668340935732852287306126424387335697944615954083348669692209002317379763356586454812762380392997436937349186302657503906962930735657650646354785168582404315689842601270163710715392263019899513348981523374257644773225331951669175501696967112795065283468018854858488973405032938503999254339605361621772026080927323057218672251667291683748268196474391617885846476162561017924684832105699430304756208722441019035553911270561320015089799948428204101261765497194155185623886371416011406029985500830354620316147611926454054272180397117699775328217749339925250665376140169155438233331756139806114914809645789636504567627973936131502279893593956784296344867417931577082108564427921356406726553834261543646930014443513390507376154427628863450900472757431262823058468064888089609185742798404656332569820643039195842374715369702803803905893854021205323327210102819855608129297843244318568970033843435477530302354428241675858239612452932317163142993351621490831749867349784746528258618596622988800552064053239632510467885946341146474108911860987469158851572602347815578125623215222971147257600689695245951745771941806472372133557791797789313965605867336673767621741934932832016021723958134523791124942267965583383940425819708824267955383198101134100478015914728723846769205151144019692521995907133417709400890842556218642686096171843742488601511845579764220617873739473203223984324786054278666610223633997106989304174979810331750133601310129397944602013938078491671831561919448789987507391488894790770092885828128175441107189074084716068617226097590774433295998793900650390226528741107786656234369181732269810270745462250021929872642195763622512511537510220160588453627605711288146192675159649804008289597789741993271574768323941687224869216333551265621953818278955558848078150547948063965000233663937227900874153187013194820608957303554708798850522033415984563790857968459347905078303094552872582894635043980217559184289348362681660227046021963702410847848398650710098332448672516370017750003672794569108384241270500141344695209417752172254942977058727838288144853645690591310007073266100820958746336099732934356819923471285698136360224142506835556186121697143927379233858218311752810828078681743587363456944502021852740211420915827666183469858056166608483428645914081595602045186406593229973985891816857816110713855672481816075220687031240393573971611333390831733072376260280782589206551582522753757646544119451482823081267983324374044146910318944410848692279304988295005469898317317834050579298449662691656920526243141781350384761569878116877112377481421884668944637158366111391684638476607238144160113674264423226838242619209765322897359716063961831705796205202601654926264430422168339605287948209649984268189735066211699867054863753694264348093286268953883285140098103718675509460963120951748987190118434938168628142512833124221792949053540726962246404273204051228302506026839451044844372863389645694859036890588976478875924648077080909625939547744119702147967710609228826621054809838500063334389282051924402999248554432009668590784290322754510233207774826059181610194365620280071209344187352364275538685327746654243209995357635681684505159273347700760522947258155611143240968231290697190387417839370082382870072276628719529417752370904399042626357653594751136212125647563544925968706988288072010337879741555554077834570680644505672568993695942521606751601966434957219959548270178759770400035937642145535625694085737366815238616967582968220964110872215928137292417415543578845402296893016111287300088395594394233309766837358632610124917709684053309639703184528122378640821953376920470705563608332724668458782931491254832384074370018721418869725317362509369713350970390867495526224199614447991074738361108936014890285337864239050728263361649954721001309836266580080237488508587788323400480637287020385877795763703533044611739664135797834971834277814400760170378563742602658474926624263940354290577627570703478591412471833641807944317974461179263845078402529215001519606637513228642021974405377161654972567200125222944855065518693105294411782090028607705599848506349284655383852616003977270541624379312634816834034522895202069789059627767844812551355785867538854097421298246274481189621556443082778705514038697475820329216017409363910703499264267745570412794161940026957012084049009314100538305476350034300246091712869566669809894581695148751866043714645264656566909655690757479352686042450887089584034322650123753105751946789371388735932941007346499054447736160759211847867878051032520145937650453132445781933484372892141306256565477838953956538875445721914271803321046144570739132196990639277890636585209792130625569289668080260486252696857500800084983537214282801321322992798753860812528459092016846226145141081157333453709410607227064039663056538027613164528212254050298344443661996271621059275209411516320135916695280960648106271100561562586571477016923897644565990495754417858242105897185992687389066916679840423428929757220642765892129397128679820561032867337780301368836618843680078774769619235766862202286502978160748042185588483815849920967094342090701740698675704110320579165821816812438270013498590137728605310524692562834123299872908496068901338758222685952813592963582183180963201104260450377922318790905312218442121059651066597344232016304112590692909379189691634055295065929569565021781699060988767068733459563525321096893957224289985845804376040441933415680413052418985718950089461286641840762253438176393399545659540979319854917819729784423539729519829165315529049643802844081653540391110776347365673953235371891161762548508833570503104321250786769535161919179084317801478087932017397647720888345919739289022593422173351724869903547241648206267020835782041625511880329928777726393185920772830275407601294078308730580596389024769482455862214015841676505774130313692301273506398538043134915414042336636756762063672689196670540751020218186044519663381700597905915051261198655368646879481547018775690799307085191913224271718640691320970167420853540741347035627936428828415671879255272306562550384720391984558876026836385634031137060540431939123886945625169261495805815593935446370476472294155944315587616506766776080150686969391510688185619853226911669326218420988519096829564981938128933293728652112242998603731499693156175290072683317027664347232592654525719454448738618267700496336212863604050290305188529836633385615799526011715778719987306641244272685349485175980097946210769952896772081855628164087439058195417124085070716510176637278618715326581791156072484897537866072943643975539711206977817871754665125605196711377004547021895210642223382886650039915730440975064797270885657799603715873261136142945483986368006106265695600905923265457679196595972006971672031549694670157304314471077100715266653709016601674135290925099119993602239466915321677726997207933554100996277494565415584397629096947493346549127865437377891036970274902068330123606578926759144021290485345938311247660181976946479653852717519719804560435864875253457134597146518961979992703965665984872485619230212634798782644907900028725091492660254455649604290556242583233324702303629979873625246650802868333486889595384167401794037124883679871359968519928243619879735106801253480266318641752707938397717035832875525227531269479501161978026293329090536365370226721459340488326484145618452671422123896466908885829758154574746366700471353742296545791233416853303456246056035916870992099786876377700942857340620133142905575043963868348645722086379831774270800799778241487364728154631848461415403493315001483374031577155843517763833489281990515778506762835377777760000416720987289364900547022614259757561945379488400748350917363300076375944263309197409707151668617241583345535021142958805017157199246846554217096346409340523237465852198750206171247216153841624040315518184273654585108066407845549037144315818718462980244654945198292177245729334083889116816898319967109697993255438248047653653573835771094271510077599060006560450463040211459039301568592522031825251499165522477831803194294503244557991058121228436474566049745188896855875839425752627333488263682651880677633088177836462353408334134085539272447228275778588828603485135115400393474788426107200196082852686725891578510526594478387663003888271137132798336690727241703226648254551674879059106779228351381623922142672694010557050033705357430020001403704558199911684435446050493199024983847111870177422812755061016806964193328972165140375147873328737722201326467801694136174562090651677457848378706744626861911416917667683829960034625479039290757609393514803708956018771192031295056102311594682853503821165118881559728655627723991008302987647461818482235151780552224246577496821634800257612537374541923037168906213099398988599395609351693323532314156353069109795986927986796905829160892088066866059558270811830013223283152591721578056316604029846647259196967660978079229519646134150057049663297337424945384695604737128081527203572278844397289976171363653928124489960057249463495844011598226916302843545585354367049516573560463401633952130215985446903186082676887812995015027969828068683404914431719497464470275280906290380855820768924222883269529217185823486072536716601873876520551208675432674505652654085490052559568168121457577205325256260224373948935148810482368948047272953440384510225295936876887455616357251837976309072310058148579625445865005883062224567033400826230220652060948848133810934775612882328101188259419668472233046903155139060202343278594723278340494745421760583457621824151720232363411820199766403015645027761801818693626897218750183955978111131359648566741383578802308538993519206382584754330300662879514286058503073565295081214926056603280549649694575957904722422119025482412583238997430877054514254028344295191194997074058644629487199029468581711319153844468104840011244649728428452857070320070920435232138368767855465577157148436408829638537959155936224293260761797694733665504276695126989234633821553364957610433433455477331874142439137462970805254486539976830081456678829078488922806290365378739093036980478584291466171714123699981660139361015285518978965459967388717192712248526319627944299174302127075952850750935428051096724654998135110480877049913473980665532531069864020012035084717090287914157910553830665518965749798744061851595542366380826149014946512949986377571549841320631039303626948001647125351082831295959120371730739505134617243610147944040362564961649870436092999683166345978785807411278185935469385634716320937473639707990903193533976489686480606776396077352150846865856179308911369161119703394750904097578155938689753965026111854215472392090347393866866094171995666221611560729718048257185992706139276645960551484737824777129298999327778827497515514473036962463439338101088652877667161641427032695417618144016509428813064664161569118189009381974683676291142790589362450383038570249072625436903719533646163939141316387478456887956730875670754863785062869702667751174179715465660564359649241600845334820218846726804851066186435887807667903714209406938525007798309481342190140628062485151154065749734449809453817985897649395184514999772451752496255004465991197210477404930101790350937600410637540075648557004243424005225792085531707634752363477554192959797841842634863573665485948456552799890839147185445124267572178356625661313120251480015630959724041153364635217948800816125102581655632587045463459783323481912980091608809811096302879967336723586934145871382486570556734740482344746344717681617660969347307821937304970653518958765863290889047542396439516565818701214348923269274366941248820452644535901129758276563637129968126256951015813108579658536818333802672206249803700940392524614717079281604906388053893230019407540925390017515765836403680247524812152546571615230148154926036922203283640818498287052008801674812386939035419511442621794552945633833264049128245980154378857649606936160301965473198308887895987695967164900331330406007084158677386778975239730725225555966941248025867755770154006212665315586596833682218785465750827162333893286469371032200376289390651622688218757827361856707530794604056565970134703675294160651593191198816232779434645567471343684102767289575662277520565646531621078481280861952018468776469788538939440604673366884389393844578753475226160796362840451597760662403755505728027909037775909884324967498538947600650007994786056072365149054189985985585150339983229736691739023669908371699044253509591234996597727724723342369225825882316252281782570636131833100093811476403718128274628867329343091853676794288925167379516863438528882796822498623400143057083580392842709706498807260190929318320531927273036357173597204624063133642630801021907217584248411799870261124542563331222469615817583045340404045319679457721780814959025218145434441473855666860391032311328797945007528266059152810957633034533496684435603777063188740132458739114053163255703765307293518943924912055560304599925344225478168036619725034374939491260508942776719785258463639545905576417110235046494928670182518117929207717383665547731007574351026854336752696291895028745259461507527369850383725381319006842789991498762691173605020961209395155747171164269789795280407850616720916739186111906133534983355391674453295675344240060242114107406431788468924970804603873470650904756341732363472294952722354857409062709197506259430821100539271371584767008716258699831046825900836066991883728603926505652956983731881701503578172757040964801872685399879522021589457307629161275343007092907658222500173340432650411867875534289521907006060025102644241785495945261643466900993354308411924200750217451318043490413162446319300649723424629409077952304760780317461990115847565105127912282502532770991883731258421137263166276122499207115416769111305923717213145671959367455308940065673001796554457599573917684999473251321528274472558574695292442173242142432825414957186007074666629923088719157193356677022675157821212519055897274710135231801271270039334406060955680027518972085048336312555083699263547642527970474637041588787567069970350885490896388004938277323899613154487938103336498926888319456591288758482611909599694138689833927761897915114194031985020663445155656847875968535287793926317586310747655332888786659298336988260744214148048571778395299184675609152197795441627974488187737601624458962403330960180943449507835970449865390615283763617577879322304219127036709238028008582666306435343931638582110662615690383671907733711290660409162252021328929856050558149765293459728820477200089154271748459999194827213420821936096534694939308724904202778995168825924981153858200479845404605302822916612827745866674660431503188546222514610570368362823690323574580235444062231813455300038885129586270974713304885789145802948363406386958393500962267400965295479877613007449326614539943920252454261978650064476868950689590967784468766607944442065953957776718915290802489896456501406881683659711326202233863974469675198207829103908218842870636764473491606971913430371374967308442660506753378262162936167318179518772692538160862502258550888191965802411668668562143491323430561054246187778420041001922421411546862541050592653022848944224620707373620367121457103024140421956690757112323372394056402856781759009807583118142334602507584512994886078847903914313396679232216561703380310003904171045579855778778954193628834530739075079384707422227140322438616894498740000691271602098467381995925354859461103742711893958242976425499076518068724839527631860717132168061250914546917566284572639486583207978567313886951979194086765620321382170547420164508647532241599888017151471369277927018029615468520441728663565208595616493317122359604832626836824896038051963980538790991640687591331878298428530477419102700712010375450970193436989946875700203691482861347770330582332726713475967853308180758907625019021782802888604247759028315716486814276508519769833694370718057490457019351517506820162921214195053352792410785688604569558027060999645799644298129113804572868215442580190194567376346656662909253675844229831091822347462964431978357426636832706260231988151332172610536768678345838398634487817467517569556624653835318062459381598491405121511195431908984375747320259742705311309005587115108097110289172928993446918562105489101024764360789010536410404756890112974956344765877233512455867744371915167665743809434341473078425855792131285053419388334531572722146360215207260027960900649255117320496691201378189597412476364386315325202062788423408200916678695123190634206419667877395830186785581910911612631569839596538969660663382059648096021340494044169090159568835287601205597351853399356685219902807535989122152000471147654176431788704654465339980204171194390741010832546674241198988263046360514854164535587777040123981585211482581063956313142154838488406748951554147072495126470340197963589633830212402979081751982222543520826601918419909805352331617297781986546514695658401834742322861164972382988962722774591340229132461363449204828079176015983782400558802897455956077547557731505398453055006222819622579994277891487024620053453899643754118587639396251223837400512553209644646166070551986361320385546472876760432464909401957005266069211172745749966501219947399391821901898810602765976052239413985769854766149464094711022041433011485174061928728639473654642938887361622646377468805587961267448894171194539909618303029639848279531369621069154562280553263340081180802076479384590622767916528577828762050336781958905077178445182162303776932489287608475890762798682931998037144003695539779331202100530850654561620089827872923851391639674851952726787029608044884249581881243585520043808804652397466860108779859476337538164286874704109452755980911728184298191672540181691938687211216279846609856951530195910975119449124842122886450403438241293121662259295036836904364562521580999083224986150291737049147379664564981838747792470493992771264298015151822589443454294196338198110189162788963879909834642321793835225197958466313030945428239451220470269171839950691776819779564636857175933205959689264719429611188779339455443002445092346051464121004241508483685008164320074167654116003562578621398717719426925363315736930688218707132363959767874832507409974043214454418077256616005739115115901814446051320165672237822358708214060192478486662807484722426038598199742190553567242407161085404701866826730876187936346453207051889835277854706499033512109051576664067894075986579248794489919076561777606076042437616473146955533263416991068958146709721073244324217011497874622547330994844790161000256658344690041920989292985359614247305175742961995422871961306679796451860848186368379572478560619723537163395805821610568472345036848673477142256355803923998629876099192690246176691417917215818637588336933060634433226805129913198095061167083957121919938824797554164763364289125810531870140202857357143446544648102665002744975002641658363454032528510419592794381399080874514712556485432576794308926004546225021289220720494923726380542009104404795533103476786803955040448336156097430461807901379908201264522269653336729911865700886507341152818033429426218533988576797680080264333907829909654655481661846314206738828924883647287273825756485081374335203855382556405796477064298217366265073850615972793555445008209806385623005874976426714807576482936847754521526488595528194592454389992212983018793522257542028383431844780643257444394927009746094824938340628845425593675158414434878021304571296259582067872949772124980635088772629732554405594470038557205575611628819972817306645009270098574926261175437451021078313915266167884149131495331547889403284425020830955383974882346884572473683237303123717296579506107985215878805443319689677548038251571117424588270228796659641861863228231159617248600837901614361901186351357083240762488267440964320735280148017627147972460943519407524923651514383909657867121678754770437387002861173674301989936007292836538027701894982114027225234314515925489923960059037792881305385231234448067029368562010150682711888196374642949173284595231303128405090877799690078208504786640234443823860925064336539251283900934599523524671020790451385981467835682187764499735937819116336675461781102366951394889198369608839154176622793889535228910814573480688753436359526989422384393329620127378141684619622209970943894601902633820606577976851302026862683499701590689110902387582892186964127606540290200730041196846629962101836922327237658682026529316310363209691469624038882331352825315591706731347391282789961773298173344770573879405406294683792870064998498645699200124920206836721406242370311352628711090284752521065848073415558757936485887953773033896851201043672471012670428009138763283098040557257339311611202895116987952515261470255144962841364153286885914282402341946726256821673655565979977581215635360878619048117526338362705725761477541573783757548241728858958628611358220830148341003020785011688070326836731098456560076491259162535613144633937426853333139824026385996092461915757311863860520861322074250088161364900015571657219067661756290778074486429850606925878677036314578104775915285677283599403371984914578956293209243286837913402852075778383674034256371050492537717669183343386915686796976628041587793398396769793122383374402974134315274612714979605661594901552694569303146666024056764042320527997990273862591029349600965605634841781093347598244526214666338804032992988232926128372920091568780275225922668042841932244265982938970917342346763958452273834478915688330935096428903664200835435789222540325284670718574117100130746519091919304254063842598316784121696917403274270459969666378014541466775579483611225596566578010937801197574024876774761231342942740879591884609210845037245778050089829583994471169353633557020064803363348119299705207104931320353041386038499150468312167474800321249863483149492007865706564542980115860011975404250698514312857909641993660526971540576591626895358156717331532762057609519482739646735728614551888242395153687150190736335720335014574539240187594770743230319776833818961269053799067544370694800512753729095604799886890662336840716328622864646749253304162797720093694142353586634574770788342385089907544774543303145324480128806210791677958618923934128073071899109258954084366096073397951212807439364866835623639192056725018580122804070880533758494231666293191623763170823471733149428985507596205498997262086425293776779881565841424167143663082599424169911995556864793784533731135269133249081263340128684813183732214282400606609162033488805720402768771630395583247620223554096054106232870126162637966973327186631435818469323591308014542770077881520760369971019102744123106422022894419299457639722287574159193427747491642680038684588484743639185620400874020160372592517576848759426569304566607017192614547760311694581504682244298036809398368759204167989856438677822969557013824080252423848543388788852573183730308661894092384866340637008635541524903798852316120477183329686893050012453720730869257450487914367102591233209932990764355033430168979672535949897615650429762329921290841284873857023856011732243533366412529181615828039970718479464255121380423467329606833523957295749494524212631512396734986437624137587075619491665878130801896279306173817121392263812433269051709514406686065384066834951596068382759138103580322565112615144139996944313590600262593561043283062546228864986115007613002370664932148375127178154629911893730750019298884727984527174766234113326124961361966865408475029029379832877151908805630579716027476067602218443618018758194471759516325700917008478438567660322946787940199533020926224079708441468551803574610484038888374820477238565866359661898442607889814896093742961750603484951123581944181908645040149805202944885299378479829974403790833460096122604242948602350569155283426977244373942064935620791957584640813775134210415989621582254917768052112593059465058888160606094246893708422297033683126511498281719774338741809678079606757285347188353627764611190302851672765931870678423165393392166890239117017432637112553930891455537545567089034977566367782081117865317811880983457912783710347783438859915693815671156367146438891243652836693611765343123815057435139324693160019749277448826549271942105092153189994666951485984120667758786654984396954935140801113308721666492659989906766276606806683580605994356879870446413655152818645605319008779677944009339198393927787860414755686151596495224844869939556535665675916431539567967166988799554393163325063722652861833773121895648911503512835543085767494894300073708801529112991031033706237577252953553012808087812818223969782113114956667038429143754815044106036549078318070055085553382557758239333822125458204304578577103842704543806874036186392240876933944782075736116033394786332580609664543810230687369245512928095287985784818197530465918611136417894578264885004006292309442757512586444049821338002576696281806618104459219582744452761700573816848319917298719902827940538753198601783750154121520235731605413373891962822260170314093885253158239559265259576022795405598250625491993834843947293293970634987741822483551182533596897038498794793023011768580639838000680275683725149288245954438664366835158082609563592993588550465851932486560440122630881869049269265941877562223673623107521406441711894790339182421911236989783084818181122007862179286782907466739604012019723969575055878903719548856570815758490578508027652709213882835570371553799765123839133411610179535679063122167200368493020574458758533726142557981294203917693392962343997605967408165250440426240629767766883699389873084633788114464697296118141696304768940780016087658570911000782891355963413863503332083534255360988121599874010798287976290632937578477991663086524009641006242685924681091845148228255789496910731199965057312266428071922739490646333949880404702367099804325240787713890286598380939415731437854740168162026951841062977986566431503333025404286734682744297578409374300574755520932243143646553441675804366387599445495479168133529683672350766980622039659270305193619312533109735472913208737875073791296989463995223045914269055647749869173942653571099442162710446701200633073895157930477179449636469946784648166894989028327600978486400433211929354760267609821061296946722630353080284082721355602179428100167711719932795467142452155018060960122820456868975845664512178218185423467769338258878286973890325918978931740936147134599288288871408672460427127695579130594811443539981395465443663709843114481893011071950282674210560709206328790085992386665362619742056783411062997209301166085345477629401000126146169125468925224412776486588048662600634137523639150223565876692038688341679134832848324409096626811294094803557048439837100355070927232722199245563533664036432498464168762828700284593424577180113437494472002743235712602836614009537265247722133726795330356132888648542441269713023351473211471358498868735337279789497169537366832050150764767885836902067495056821352494961226255170765377405064508961823952193017243182086136012835203982589040666173138131565055567843606801409520783337045632079645596714821775978404167089120741382157753524264859158941505338481971478769014527346880389559679350509202493256301213898979909672159767517473881678329205107667456093730595755163801884705190914639777167231456490429462625646818038785236981935187175769811443017216841751321162027178620056084106308336240766888244537596102340912601932877791930606165145561620385071116382612590244414814280486203980798169217905912437156390141006639299380655540354672355504521382747129447768439967292711088420828879112276004579161256696464929698298578530150391517122343972955650871763504001191346702148309602747913408410802720863742293892173832436687282918948307168204784978909027757925160157415890694599995380293488490016316788682603210768219240755944902078047060302786349854190453087865991754052306156372674155271149706628061220385264813882734896103381646728563732685917712366982554219187088235610665526372513989586330183104884080651897586776792839464547308421246778883631183509342743507104836460651239333790637234913556767273898935156403098827034471546703428425695983977040873619668008319909385014648647220642677386184384297612827630636011491947423969274409212167447977024280949255479763967648547205077671786143537947658721536604036135521146141133616361363337363665529741352888102381723370058078312745671304833435478483092539839503682010689659397716080456342347486928505264680628555212740010565629631511392951784764664483028476355995230074117113327921648431149481472068754599857173594741574924817143577150605138462587951360409450525371387041396735620345764654807479019987065023641187196482781166107480518275931497529812917407788965891361515589442299560994748523018721520423841642156539104871519817410691773533086764264162788420340291829223988509553853837150941892341289927073711442951220506510870594894432734100066635570001618762195034120620196433873870779555512677868724931284417261911145510170431076772556435543080823016998492338793541654010857242523335958193648797911854511196498240520840704466152932011043220818493182051465723675915641916848439911907897800889021439583779971851020569022378126869036986379451460739796952656487958804056458892011897412714922600582658234802502112740202710781138725989042852184268288542395137410163173240260465100061050686582507674077994352913522945546490305016114074476101996328031850174989242139540372465694236094305153135354266730364930165161809013193857424169318520679353016470173794865994115972892060301961346163190947715947805297239416393459794463698885328109192452941865598577729510604809973372970563051779409804489481386215074772918371223033374747987301305883983009357514794543698996422311656763608022340396304144974233545164431338527870752011960449402650784350499383770726934091829769587630210169177774314837756374369364902213319077695883889103964218114779293494582174458077059369572112394469090510355434805641888368318211195641298762723865369360877313478760458219564158170346363766830384974804205478101133844752982489434974571460602878027367087495545720212558795014552717569059279901652031632543877891144333395235433900181005799988510807968617191782437357450997818307769202211060462777889247783569228238544338428295919405196965744007923891427106896028970177884297460891190849135940309733744006244977012137263826628255895596291093277650990336613716984120703148243942837067612953653401285373308851122158250075319219731514585900167650135558272822513407169825701410505862131902372835110368105523150815870398234211341752600347492753137347857882254129845599441114709984032054082858980822506280150752657599672661661348557097086952725504538255788699693476526456226593205709710299086214434138402517255245264579558617927045465465060541857035182697448549033064782773887315328883757294025072118996314568722985503668865369099685632980982286204425452561910499344495439464503577206136238491281485516297345142259306872915426717187981326254928674487540210107142113572145599145909444505574743563813370005310508711687442697928073403601885334616505035365224448316192062800875458264092487438726168036153257575615900579901959063528804602491529449998556731509988523555380374545272360850010625586549775399838935841410883494228061287679253432159074028920377011200385972175760394615144645230799470000083750040945314658986738603968482323685264604481710175397692437622741561917737234837479291852038974061610017731669701741267101728423565846846150114439374873983408014380265775054693331206001409068188542372469072750607117471197883478875878224735935812259616228212488365212375111046724513354675984729767871726108077048111190541569789463344075707630415263076057908401151992443044302167738769799581532025798904065223449331822315576451340566733897715131390769052459613772827378288532845614446149692610127037994417226536785500424180795393959730166805403229814247426383585088150736024963237274579070102457317030403367917463948196477074192542466398464735630067078388421188483704064109053658238997625279566296226210584006533364336203159187161172477637973050488182549588850517020258306070276655558774567937259771741313100067049304037983348922902030534385079204388003392955624527373996458567652770841559913353175758571463032589814143807598041714210553636230040697084056767809214483158461168004434234362736708252009363340450503911222075253279370672291140029335478948199823361476077965900602220986545185147329672363819724906878298574848348069535760770540632244050624077184105278297915443244231248461825577437207449396719479809873161279563354620203067367067948496433711453277855150841661915722228008047179561707620286248759390526358462305430868920095527968745706615651529374448582034167247987263958921749606441871752939517742870449762793348884469987969190230420568348191917970642523249816704168181747464922358495901963194482414475660309993883474727636392140935519805408255222413161684752289001769765988646114048506990013554513720995069184153227911955433070015012002460675888560436358168912115667640324813009943882793151275766168028862627210419596928240652979280381284501926769662155377491242885073742790670402175603167160614617454115961919262673913497890900863278425281479738057922011302940912613156215318530784897021028808269467059295431820931882731500370972522924780139486892219828855619123022408972886448513136928974203622573628957650236306826424405704481591077220435110086056027637350963611730683734044644699000919656371533780233098235659162881555683480016575934318207495990712659797456868600984202784369090631800837020018737088755739670149985811964527311995346287844225392427720089340312036727437292715118392958486957666434729609265099270895824286100106225819519159449152914240756022900421869399849111255012150235047648033122697307080465930212498236421116436482535346164683857173806697277890404770103425110186593777235172897917020343180962085181387033592406046412063684183444217594601956323083520681191233185077116514627121734320355692276355720549334309814721699537250890058552025901972020394704422495961724614354499045207192774617394233596580943007639670881932153865493635827184415108229530948001462814138532381121662422158609456888298937307175816756829637531558714367179512585236229247834845114540316736733887988933463499510639205476235701893168289935924757389811453407134583870483203415762903332280656506085758587310765220146459667400689361052908041898084928160576637967913960627003646004053477953827448054234410488381888088332948168639192246075859619694790355873752413482036601196219064587479582637171310006550713170424004788091249350346784951132803452509494681440937165714996335950594096694083610078873158824038261122128498274893726940760865310786328355372735949750214526288927508357782645762491139513659993471235246170318923255906535430426620099243334005592128609542268035362564382968426461714402740958348374297532453416618269068150016113988494820378015743381119271153276844719030662345744817706632753341094287182754908088916907518735422130974288571319001330995803847767371654222066359477649772031351362904175348362656627572603107457437842647760407092097457955770124208376189007729904475527556178095360139689512362411288776094227774101376044913513242244866763162761262007683860703142584909381907416183901951557618444376698898672509451268794262281154607065495224843332640800936538817410569527582137788901810815967269609704928220942365800026127320676876841207529420235708382643315572777066421737580675102145992783097443662638033879633558061719364468830718796046110954832961635866721614717597399677463166550218136432711852264762901284304919920685234081092620626288868993837334676275785230721702121966020869602154662647111187330065215371888354708676360267366053948321065947672848169465864034662250289834543347104085567230578071217670583684523677137467893996271519784511880923475960110846792984486533368632296965118787557617349226312202724766310588958728417746740545575449385312485912524700643579245134621558726154471272086263899044740459526483809158564232649862879683473509023173597708819239366584629496940437366907789564856487424544422537480944541160523812144909499294279554331129170447149625765749072923232143825176734142107475553152274168831167439304126402826895756532927651054584190116826153290246500535472554608566235824416989393097442528869173289498271107018603451674408236217066797816646805982232987131641084213386833711672850500851714595159180954927073348330418414621378566858973972869249682582566476891009291638245074992071746798381529478023339896463546573202710670000197018588880442504082378412136475801718545316247741178043507134672012780697775583255781102272987799432025102491761705176464822151775880695977729842824573481838742374489430540963231301162100059695341841802465424880538295551712796496531891122444594301874976188749287615012560111329091229751002960288758713818866394696646130966459321726061378164508716446895354449651946724428793802820147154003176762918057472739512642750302286276459736977799132404730496579231741956129213055968693031197165440088737935946221997482867150707923826571803861962828785043572769877729221058570165158718412508856746120922610802893607453284556110677067665583090942070174311677845953305171980033777283604155345540588745394064794269529971271964346259721010741734881256396006347072651704026106851418831056362991008912654561640958143841670479840881759921985544792304416987570598977271373333560535792073678439642991373246103156906236435403348854706067124485815216149976788430835586098813203978459815848544013865996922305528334680128167229573242170079500224836987100167204119409759140588244163703975781398344181346781966618756724563747555354673817889076474043496475791266092823335021761360726339173207840569503259415816167555288300429781164369755877600161180068378687758091357805719296079367180007478042577421550127445588798165774098819753412060193151715827282714707182632372472608183275406192239103423149970123315876494180460947162264927140777691212654009562871434593657378208963242612230341770953898844205432412107219190685417004754681593178457867846149559166001833974296252561403813521560471474145996036964180595583947351304646057067037361320370904931108337761833928143408208900943485160731153843808055629928251795292454134210688595577379311413071969685687970910692892129045604142380894840988307927056050462271961892997968952011933142084432695826022034912460147196804586285089769552212391971381897501667732023193036500476328176986890197134076084211929639914394228770115434353245210175452156491594944136333965876351243835401360035099770909346531852709337844617105175401817341608343881787018356859431784950535580686878171652023367162376803038116266960043376424107636696965266776936664768226856304156025156622144160747114136013366546542897696255439238504113411989086126198317266984157572486414945355086906940012174470940534093889783456592781593403375664496914148226005271287590548836688449528623598157099011438116174569545326158527427185602984492076339188635373534976958737124117779924460325294499351671330365183484595355825116425405479475124541587708329074675461212305076996542498616345227473327589608629251782606730523877789630654624737278940698298137161915937426459876103008252903774013775095099041935691954890878706939872044988923685273363529504934224253135116489934349519309659490774873615801826123458999153450436364486496911954023938650175221090822139130718915754487156405703955756216300287377988694966749711437585737404987413722746416579056583439849820134569233162402622008392913115504614745495729749587085301981008528881608230172980973098433902368935130447997252319468540202657100922800544577735997398740447180552099980560928422398473739522635840937086981953445402641657456314377027361337534354535616919037212977423546964995099356810718369231136993925968265576972107451607102915127839028978665861849220437559998666098706135193775050969971470332469963339990153160123169080943204742421509577765422546191886770490463124075237644598823687844054773351073324511653726843561773559407889173520274507497941925730390778111092458346599562124715376305223114158085650065998799732013273903494305489287033840176627366981605591294597666637497388064893919784099048446821003234519756997588417647579676244887449212822467288579093113439117732260173382789211260227823754946281544051314952142213459553796253691034076529649261275480548842347411479366785497351542280935633539256849082303576049132329455249511211644581882485176139823761376981469477595264488167343940323757696291909915130706303470778482052215086437819375146829768647618065158711991531773032102798683264605339925279300830271170430381769713621125310202303247208976641429285177340912280260215737641466994023957646626722789777544217178873706226493568257536472270626511954387598739686891384922780508616403231921449312494063008592678595661734899170758561434648427242129807066476986630161775177301881774903695526628689276105152062529425997922654938881010223729347437963042530062440974358950251881153417242413584318820997482446394285710708038437034308050295078824615521573266363112474965041097090145635743791964980326517623661850695703515153011424683658854720481611034218227940720135982311619408278849367471880407226582303184894115495933425717022931921411483792648019595694847935539500307346143604153442534221148442815161212618119671770943115012670449870113836766153912932557829327869014360040894057352793750250188790260924346138993152864681244813785713796402876792762937685982063091457318500736785130153519616031555128520241974298819250690728648497181179691692335446484307794224819457981148271541174121634925534926166600012055529355969796042439186584007091629058619229759607869014201871358380692390999185095102853628032233110858144592711658971859932093484698612645421251004315148456351180907075510078118919813299879915351981672652528321093350081153227346674396115269771592379105338272975371890426044037444773548750060127870889108250651477001548194271654176453344265193424073992531394421073933385241930518801415234759293653312943305191735021656129507865599114233803211323614182752272836254671580070363466108231901716817847984452176934486609944139839524668063505829479345653668948216481573390179427496373855808901320601157694631387588041633397298248350669911222647023017887219287769703328120274672985288258635809133000168123631183651483127609015643748563578275080263753440000067382581092783037317967854820921198537659644245528053583148514092536261763618895020429344255323676050743739222223927818886313887876179501910075608993851081420176861136752151200131215525529994611764566031989752667787144228374149582800412249416991812001811160407519861328084996651897531237102054001765267149396679703391237008583867576794886226941476382851398360674537883675251999837380610534386721464651150788137052297299063431849054562608793226813281534943384892037946460517750901514398667612420747039907038679793829041928749429020057660295630289112163183698457996250418854109573403526731590389047135350555451297245144047828299440408502876784116600408673504898472692429391787344685328997480546473272959431380559264751107840221090187840439371179024862712586808406853359411376915235015468139838692076358797104574797866396440502374715419622086552686232935485486120248914986579193247542772929933514898257338962888612915708717511238508379763466542450685746596265955873886551282466889288930189824438987796829426814104487510056796337745454390744192398078297961619143026075315566726272745342955446707799886123806742669894823938878583547992385700960116837486340603211777260327539474350520868697336292168212658761084512728558267244915440874498997071426910235438189782523452110855899996055566547018535217894627428502108960611992260635745186223516828892402454745434210452126244774976771635415137361021789863719808379015867120659178241729411812694055887775986702873684030710799216116380013030003969206093508306924384523891416611019436316433276220297483243260580566763257140900535795312559805413065275599584619182036399040940095638546728646067108959470933526604125424518578477201359592185940100940947638283364453077145538558614865715398338804795889939347434765707975295531250949978094510738442386140806170765660822524787300028717681867223619186712573491786417172123989048947063631571701444932785110152269631428973209569423094840587789763565792053128643074860983708748659020943201966739857305619338920776483322107354039206692477889352468906074868418867465867234562653812799473630918812170926098781641958218612515732997380827886725000018886296416305441785796591674686484680358078410640389930275705148235994243829013290690697262561156993583566585640262227430933695885454231356826393608761709235916448022065991644243318914131612277761978624294360440592670138964841725571716702141697474681981610557525905095665172596351234264312022144327408942445958948839622122759681976091721116491367725387351437217355451774682293127656547764935359858931483906958732838807570023730775498967243150578869858824062792533930945306073431372294149178470425482825242557053301432533044446631231372444508822352032622275711604306662319379744159609224116651224825722612035436556848792968591190569640204110596012551344765468837944307823001654505249873055491207971707616845474988471066666364921853389039468433889406925478051390088492968588800008911500770917344805365409772074371043856469639176083971895864036070581414020916473717787109966120670718378456973911331423130070860140933434575948035733034844467393410072281909116071221643485890912296280201299517185718552599079551151870381447726065924182295844779071152212945913976245884381158633179119368588297276057416690461576040783251815324532271936348211750563685261160568562325218986214254330829583811690486682683075836311627993181365738634951104754777367453136177009593855503182589825377642039187575757563238232352380508360656968870914232554180274541853902275995057806493708030827883909860337514921853814778270160762831462134957553084740834872522052992325435908484212597761116702819033024060417493607427581733130152538995930534941410427605608942506529472192387586995485094275814718089059386500415667641321588595374916118206129097070500269432399110588015883868977171007237604569978478472032283546733730575920808624768311935003135251623951514363052443132993883186462011378723981839890045697089396958751014651649990527768634874150676200615674900659005108305537174018456553139563771042969787852063778556624721273663253369477274327555236502379538484941978454113721771866919038500301454183844687707824607702543446170905658047973959388019267164085488197296722433416328330219929772480797755232939380170335767882832342161044467615479406371773449785834268089284997081955594270208570571677580075725108899031354888529114659251208564665072903085431330013355657515029375617997530254517206622880946438239993656325782635418983490613341201383340652529598330636623738868872150162731241507263079584141627913436237809181203401289910262686051530728018427764735562900702352452220303545412202471583165312969371485445666004599918555931449497040822727255676440765844769340510689854058346077809918522200234867989223590084187104131450475001815741525862941241884266201829781965610283943749005573699245430994085249396384114290780433985555236132835614150476908412371016887258853577208338429897825406224073571668709662682225704232788978297320746749563930731797127302034838435978011629043917809576831245185026380927091002144920162607430419909649397813955434668080719072202317910116752079054874241426745761367016109026912248869737568249273619431733529795389972960826640252864381622817559449768004479185264711115707101952242269493140729982418080154833314643920654660368515316193432062827844507452793520613862133698910084267391815595319709762411158556287807526334803611033103437289427671289083701114013338817356725233112957065626551617344086493135483429870671751114416721362320211124582779578837042022941760634530559692989731316730874258740882129762389322060338034489519590562068602420829585038273083177537721474900560569507128659221458866604705372580159399644900344796654778975985117763159381808227677293600617090111744397340178332859580834268924222155744297147523922180846029022209373543137634144211957959101002363788923671732810326326472061729480185785845509021076921268860896228214524020590687298613760405539252414037535841354745806284489282554972794777434831639179293544925275498778097629342010696102624032717428028215834312609906955915180989042749813254636231937637065100331133090049448175137822714555492966084471971110019258717211562371975054806279007629521565789254954542697924357838937408858647726549891107473445706487641359070107614577514185435587604522883002859691452331041077756672832869644307388206137617497566794066620695836416583187090287310506020303948047064267910402290509506852529909198380885023307820473702575024628516902525686098615261711499269758079291368427383587636185625987443793767614959832026322406582120860063590478271104287998868795577191457311912905882877415728988508549664077509767289836568866372212348843754904637149003271974922534346421520570397975486520201977002386087420025382669602061388105294367992656905430254237030087358695509576865561846897150424220073952970062544251886376183754209087353979190391335960155327964723498297542915629690593866578523874023369004278766145193967434307034368564192045317839505867407070645723538297638405165331479619789847433635699915578837717509171597058146794993769050570526492044500325636549420908092344535348554932929135860889490876812515474419795278582704336609091221327868311867362366529921110211451529460159850306578959854445833452627105802336756569316322694951058785499956160980221189557440932832959894080768855264923719904028554620496346560465342726754697896788286834034264991850648761409893867188111467421819847536024772596104642575601187583316378667975888585267712245818972049939489834635598868234822790082486178435974598209421697022553790046333450107174788628899845661144692115426769870458797587873749700559583641948870499497293945044792488621846076605312487967364674743449685340068177510348015768972598459223543552786945936653225742443481113669719080380978116220696189641731790182907082545478190718949054920716541908300922790831556716639532670815529497442376048581496469922278640983558409027865086667320478244334727368739669085628657398747938548446131305526640171992733154466419547517092103634044850102060801384674098243496305095156598176722573357065561886871937357925049737797848029701192201363818621402153276050141401695343104821986727183492095365750280375449948255661486460554912852435525257616594023100412261294571707738177544697227102042020653416607191414867961912496676167105955850826594541490105070563737830801688853506603247637075227272348629535705442174669168231676824455945944943026270179442864337349429470048867757440690264417540103623320441282559233545889911984770479257940019526260441862430532878509125976074890863967092237234818370472222257214521944499484680106878815207320211189795681376659557494442356434196235937868978723690580501661844549856369188659068770171199872105656764050305034021002942069206311839296047099693381295007538405076886158742864762820660182403161760948058580932985928584572962932207090756547667860362132622938591490154933226038802198943650817052020079116092622486793770497902688524315370507179281793295695177954017254538596351116820286853733019418468020303326638056964964101721728237834027295428047316747258348327364124668074227334032276040952154712203103532765541624837127857154983541113883956658943575946768086810261563154049468553494596516246158627434359195483082477514146058375106336645009952658619613715108134371527739081774652094753576343124735039327087869041376353403378088848247602137431946806330634986434227351576967898252183516688685885015275543001351225364808905232393972705962951094207466572439627993252776056541737172348286102680351170355944051953589104438337394682866418360933876575399206264439073022641509237797770350633456304755979375031628466142884608357695984848722677038601621872114073285252270970390061515094058101005682033832075517638290316507623193115622170080121022100610449016705101779767502203380440156425674245022135855911345296906427820662023222080283045518505317834568878643799980493981984541253842849800447138496965895381681236512873216127103279162443690182664920920446681103763625563087110110560903023308313101137492584161734358850029978585540648112952397933903006784796871687999848088945147866041987136337305561607745356680776420799357585189148046778238026406569154123255257141196800419455135468604594709458832651443225114166732643929826912444322999596047841202567452853969832917079283776864327796815802789875097747782611910220925687783366338143566149058892161566237635636492505662635107638443297802331000964408902395801545382909892684058807920116119507155974626811743999414026484333030262906151702052630007522608404386376870511724356296708915417093769609570894158861761434913677442715527256112798473541501510430347042185804196918888512181314294916317065288819897936640878201930549212230457214212785138302147593072776472429109639707413711827346053292113409774446357541515089654277655765068322743708041307878835900786377401697102190242876369283268006701733189750386064497557953048299779029207600618231086511957886996074803973730276545313488559888757309989489191505749259650088885240489017898925580829648604249811308623179197662819870736273117800004912287021601884278485630840010729842839218133248585413904883728726226917640269982779393303579023986798289080798094080839042311638508040571044687784325984383183507733091966421693512291446952871049936293511956949070078293377398659957759969106619861771583899726412731226613590931653108781079398232816471807939063777090571062771128045233628015544520783434363296416974072245399916487488663086001772132645363754706517832327781627717696455962219950907129270789790743710399524917225522902557649760790016229345109162334881626208818818063775267265652408069832022849812036111409308713590218437375135065754806157528129517604925521586231659833070854613937712823310670526053546248785368083350244996934865712140249343207950709494039578092974570412102893751505921688347726957405145956799087533192649642714094277274689009218883479599475516677258957878502087546916176558453964919244257084378336337666493990265372074344609691198508976991375995076597243558960351847969328161381754384146336317126690227369962221835410371645512695696886843298359818321551430804166705425315134973193537118488377852758798017158400304329371560656842138532161383359207898496572288719279973799035060985724534455165381315004058979356707423242495917453817491967205060257694061718328424126512827829465450140728507522652675390201441894169224205442134890605478569920682973807630935737116128808862736036857655634805158978749382730379995892091425321598193950298235227254417610548135414683481417267915336259944061175590372131388823706458623961768741023669365454491959912812925017661989854357364507236398161518594936522371888695582095973209569873370564225735372605237351869416176242328014517940461578728978585856089697451921341088358022281055887218233403199123413433635755836113418929455428870884998870767913136549294984136730640256843878761822096389349928273525052861037956376120891002412628602390751165132650254818091255461986449084797750942849635130073880334711116402450462980413228817007778373846700414674397320689612552515186868341610823640736987560146722239799489279312588405601814416692682331971440929504291180445892071687392189514444140262228289574433964164636706324200635154354081259434527935117706898142969178087948189141409831219347898861053244675272579019820824204691071161842683332449618275387793194115877015218897079550548172602148401903063010143107594030298620176200971840433282853970003519717999063550679649355976530937668477787517045617238759228832501811994274348534362560571341767137755299619868363834972856198637537898608017226662002862572832325383439964509159573276173947109357909157688307467056012523085095188014982035798802970390334494046081557811702932805213569839297346724808993269970977421931465137497736874678605395939451233029553925663287404372941431814367710900129206238719253746530264469378606408830845513035944549898320141337797587465943613102935327503699253883800076251735854724107565029235243189542025227504720068911804505600884395761832934963200121445741583723266966266368568062116242149021863922424951108191983539785329500526037186246437093844172503712924786782405886000774976646862440817979681387785887089526300938539847122844540064521837402042777470728841580608250520391528997923320341436038799829975345527211432227733340178642453701354306341685618820232012279812937463667324460283459719678435315338192519390899127078184263325744773019113207873641402705828171620916688171965361593413103165251163456070428596929168086097657804928733707471535134043843438371793761115579355197133684564294643144435750547955865218425517100270805232516553288833137089264782199251185522592425988460858918497058723961598740541997242399263032378315263120028476338101770952333194500859377910896585964201542548363768161489225673640677359118372615753586705293397932011662440902503127834784471507458376069478195972965637546161947295857853119627923423554198677298587369680343155565997195828826036682557977467821554069372775022343532426746358308327326990140792994255560628769966491945116439129173124675068751555973533273823206501312007927210689794546648295526914684758966995566795881691136633961845176004535841355865392997647915577154096634723630414392790798490349674512983577555008133121351828321160919743961811039603324434807645658292370763132377120822345641007177338794447153636550319595330566637014008009559053252605780390235461794770969107176022677707889430798942888598938691367761077710857525718216710773542305334113507941010560816783308078346874157577800212254366625227496413438179019070249479334580468212650660159345925006003898118737109646106611510309676062386526280070822705216983953954508695288011274691554345829413515840858314580851584332754631491130116677980342378638109202095557104402027014567419458586735009339375731846920365072903928715735286995830253303481349657994285856806749881376905943061341785243732040438414624594394178886615974985982672724116363011412328079207187617039517904171207086093177541982816253844731759965104177467743321838417375267722687486609768756030899960908967742829349734458536502827698708964927659757387990763001950876071717762721370395669049301720192558929163882530127874117026817239414328433217048492448054990329778559099823378741745561917231228296654165601645059016466820332692320378238129421135328281043928620286294856687837011350635079463191619660061170706070255964811782993461223131187984308524038030186040734879412810514660332580824457938723531431478902496104220813520175253085554392698224481416219863268319540042842446393993380931671424685162907009116063993465101842813111801759235479413270548193617844285091139772592434597716716483872463019407621394059617069824843314161353564807642550439468382630416388703972600976350371807816039091881875493577486118751669829164957574297179398406566943160849775256649154712482430549378856857389485222837464005453866869690063427406392412156983401714619000893686651328577209342859571502005441633176429604457177702555143723052424938154145010584927911152103190067053994998126299338965552224414124591074619896883118533775737156150753234958025291317148166332087531261101791766425482245928353418976634563229846479867018394772989007385627958429580797093673026222699511062376946203753562436990630640449879196666824208646513933725319359641832442581212370110595746901342803560234260908787668579039970869488465858757319287284332530674187039576955979857785078885749060966944734177238553806739602315679699871341575601420982705363670767964877600606557188415472364476448246441043734696300952994037208442425230483715349625626449262372731822704118299450375513270226677852358789896052849283997410135889606320508414647155667227078719689547971213033056117367177484779567298611344934897190441076871597351007244590306737873564171885506519673555283055928357501014837059264966969010324501978467954819604056629582636584349933654085921696442214076879476792016822349980159330262984076903342702601021066943412030690630151879585670250779176524285927849475493579929917176251462147661693628128777077544065379617654978206368268832645973635993340334012968039937492391949306977453074663900984110757680503464387516498410812032661103386284728114654248986473956797793348190243322748328569964705994578695581494308643262824927013861491807798539217778684933921316914158800185878779838848276661094022519996898548791266371234397872248495507450622748812782876830438220806538835313629067527250318338111027578506668380963239987694426443676636014445564756151032921253769157820976406606223243059616343164235109960925602917174532123988498152253443801409663661563581404397104259043848504417227892981710273366168192499335210126035964608289993138964890700831795490008313393539312323784359132561688916181044586148250253593757277463156711550277925687264476658663441396530656536673054436358194295741263587543906837534361145097210003756093892227988267824671431619018943655542688307857425355271332433062845387697658212067573443870640319528665242124174943477253203897299491340737466758291196779874475491766704205993005017997975015952835555672488647925884419889560253418658905409418982574845292114664465648415620376729079494706153180405352103440615975445377339913871972688034399211516493023980131604139206304514758862248870496743072807097136198154550678542947594398909974803987599445420697781000872388996955977732882140465693949822587021860179971003786293113101447781989377545753496554116824603144999813148232172077482181770344159224137522255368537375463013352618226014807588913440882586798906842968127052131730379324574689420511959737818598103328241333183426244683157525705176252266566238811962382577460486456203469848524890906824778113753083517568824525788224184537299765136388189956479280190313063334068335723868088608275909844044254776775903396440342787573696047461773345375272120138204597198101395440913987612144198825393143696977376805170397950311822982274602638929375454998152912526258590058367702483051218611321808103778906205309472169312588104730059285464087359829617029677677226948065685193714184128492594434082157387936561865018692837359438955162718047414464644741464169852304296858233612223932612070988208104943999588768022713020852246696028374640491242754575489711026995333315143790420253475371436220245392788726118092405850219888243292147406813757113437793917066215995542058748776177717021921230722690483033829293515419533517592779106230433972160528206185490563829512586631627634300056261691852876040932017534697392583420917327691362321884569780202859375758075979762906492268226068933607083257373208058769636192080811751262207765032121988054400384170458294304648281742329883883921892407880406352753756097915793895049918470970141577981867828534834480018612252684050528532055459264905172517148546191948410150020767314566564675871896299757757735597981691251999000312826246292549164650225701208659278450779373342480726922939286224636218718726118120058652301994535478538194431110437069468239169101569799889046803712684506954215320992785298690400462239795765415837827346702742386705846968596839998162726871767598003298200787933160691223127317774282454187927373310832251156636141294358839607239522087926031287938695715067645820002175650520375433748587735487407587250181357530109130088780928112961357476613025365242001744318940729657933377464935985258555238824411301080279629352863044122035585201067649869683165957455263763396300692955442968756725070806914385049407872147806114280174855807463166539907897607347398083139091044092095054335842087732750339686334448509643366383069267735810391722395137347373768694487150719128591584568056790836336700372097424684162726557822299021587533535535895648914218636006729564367759067249824007029862173095495540708179802481038984381712357008299241755979497746602389830774399790445241765065798788867497595432526418471566584206771293127738113338624473582161810677835304382008194392581670595214493284266256160247515492383245803750681957616332751900903784802788859868215273374792441521073889773609561949117499208229384308149582649967358180750605437085455203053783534071571736025406701155427253136125062821912405028583550463653800148508090397000980431884609945023458885228264929962172073615005754994055372007513456917369177069182709637176454040318404697332216498058976972177569298945208298419410871004882731903505963578439328926941665435424775493189707865588725049880352875941551292999739573518434965128652395108276577452379219426526462383609549429148443739986106991636696653509165363538288721670564916796426886155409770447828499965225994736848039278004376458855979159920192739095629821608962349338426018966243419174959580445994541499536714186081570795553393011256185663759366184770161539696635087271509440695366015452986949528465351794673188596657985473986521168088431444352937034967323164874253442296696932039134321565274519737940492516249984748603840337987589298800736219672193239948127688328819854064960222369748842915059637306596953741794452286110706356205664793180095156765948919106494366046685430122267091333369132850837674554200318176258868861577272912053103480405311897758638492917358601425568936474756829249562212888274578559860237078469313774726213866082455973982644991341757463131695438025033284859652832014645538729919294687736909483152948849337634098491910925560953521175061094878031646956954460260960579206115856777726592069300387038817644090769683297438931328190539785898785128421860173488967834314322019967466664399493129608178613904397581566396850303652464835006121588042712846038911936913848970722732609299248089050774399706360693969261972358355420324904007264691466453045870182398572042423552171882152888229331105920965139573128382251698844532129051302828827005955475269421124944014860388465562817866700322907489178366183990262074213732672933281552353063546471621976383426500002423763206016409506771611831403838992936359135358299637514843118368807613781100144498090765520282224199491469567424644608254588501061359134072353302497928410476716859934508413183889314380611770291883954952662132117680402483032373864920037086179481339516715441535289103897604881946529958102387891568588758188930668081244832151216779772281201475058045115745736251681629930515711597937931462840757485417872604231745219504096198398367675406845440894662682767721456882846385130466676660533376021832326196892592200699372200094460852941173886381342062272001339081287457784175195869757351183424099103239271049488568304808176726435667234749677892969130237780416151452063334404486213571664952354795404119148084784760359938752132078849104990526674860004938861627464186833336898712157106239982594578990768724969823065972767834363061883525131218892037117827979311587465356408179135591606588389956465283028233474545718116116950262197355126469001236109760457486122695524539732632334053287168677711553985018402234663608954549636405805835765083664555401901780930481302209525621294044501437892899091067397007012197561773788203941197529625744920192728553828901599681008929341750677723504727367011533146141512803159425556715986714170603573004171013863600586304645701036504565560974859379018741399002667996075982788540293741038969747228968444865017671324673604021828838863802467131855223728274557671432854997446257995237672540732177465947274222587466677422112186971904547202489950842953851158782438885333498936572002182551663565717963429074385877464300617615972990819935826989891971963027151809729862553544068884276945617691654712410777068569002639097943919624114624608199404804372509191401195337749555203943304476148606640688091897263536392952679736193473853227844190908775181753013511084463236200649889753324282280940483892954358652851514938027038198597510489102221437122276004887046152011640680953307316554537323254468690664061239589621347944872834703792946214568722296905090423061106677631059384099780107114295537395314223586289046905061772774574184661735433495189819430618579253278258471853620142264734531917063113663668614044966060593295588230707757710385015107100801435944214628373545180069778955088065949775369995078002310549052072330293059032456808239218224008060462132281230202604179516808750296790095034620370818256688570216763446340735271584306356932648743265628336737286956880360330940625152201354709632588954863671086640586728271005826522179794572021968200734503500123330993369224039357916685290731717617889353430530382041085141419754126639586764491754578701386431257716414687725875313516013672683069668094876748349571164942855157758538506491751082166122337671407175800095785888419086433737052100215118887003211951969464752763409235964518099996191350455786690991182894303756176590891075303095396735169477090858066147164559317005068892938856583188055112668070631351259266485962690622338504472084170717373929404215245629036284077821092578031013463959953296274973184523021644119164677424657340214344206869814261270302443316731312766905856184558138629540011937765574436120286603310722587223294539180208249916786725865928939933486171220571166158600376120332297637829011295082913048709326535667158419986330096886520210195396211931384600959158609307284318321715086045392688335775324353688321240132719929173984465608089690266841381268159839559022034397927266133835833695024087454815752465527250276234675748632632173429733917702815724993537850400270039342904969900592417097384206426571987052815055139314126110042339951543221196172097335865585698856391279123637554888907900700636709771830791142102069274464789149908316041608207831790542460339800978627965590670299935529867608538092825431467251400982687285262085513291378629893390213274466530418213975580691045089251383636168927147115650766848370464688816245172596308201579550525603393166484194259881321757384571298939847601424422958472262294382506431506151787567054946046900602256847433100087659877835121309211328270788712624919469912491082348639892125538612422343487777289844970127122059344175316890106066844430045869481422881901330497280028441917609765011694995627491445042437268289562643363180054517650825393186622994893116668054493232548377490437138499396756976315811566014214963331810573236686726812561838645038504785665430516083851593478915084475660735716971075694526614415429300261500430025451398080943620685773077267301402541647395312419855054271649870227974085915162136499675822384567164178032120999089626209599245909654772126494021859572953282744502599720031220726488286503465007103147904400994199381122390108683649506267928592143197166315109542848461159888518422237439507757523455338183040278576801530043571720877048759502093220294184293062580678246865587898784220989130825003570100556700635748804702561187725465222976782519836284966333384012782793396243334468018562698624351054602136194608828794266845734626081264249318095352018148788168127211389058804560454616113840175646796603921520220476686815873034410150377029274632327805683949266394573897045815258842608886345625651958698535204223464782937745934355079006136453765098809990435633720728016869004460283492496048832714458426489774907308011407090149096502568126855233843255985054527840231232414689185467145160068800635650123409487098929559599021014227425994539802198583674038091107018670120871958479909979691151508153530946701793860992802444429021677928749451916289340799605054686561149151767904710944527342698081881597766178418452566380103045157311665473682595814918602575692083464981642819814226290633470941886560174147672734547754821308974624943392764894784419567915608511033551732438255664893051180781246801743086017047964595846065545631690616156431505421045381662846025140613970356863489135003552113489676023489409102908550209096047219164578015732539032691581491931253848928246736521540707169318861846077369869333151113021510021971956311367982890241738542146980949220645702525024982396076459008394922369703413759042517930453482024227319479286367270408524536617142335888885526639113777696516906272424590122925058572016233649514496469323617782875599915108138729034472869034055765874901271693367562168730761334078441065084312777100753892783569859896218600784182691346398976464538219788311021952015301946430753154396658592608348786973695238966043748583557253931061553109677991081062648259202028694385243247157080832296440357488699647371136662526032952514169107504969964225643557771209862561174378145347055295844135479700103474830681704276916564093854429701683381638194045570823944143726790356821659209897683965208848897119308714546652082718540195370110202581611954248692876906243837794182787564308854255547706395787664987525655418323379693503377915917247875758136550337783817566654185337984837410452251744873346505462637758052457749376355836951929061216063508739812221805936161485145957089839892486281607393132867532912829022094305725866645188470980778204279208820602713681087251916483469861967890438331596835393956589844985547048754898638682517106768465465360556995116167150648341583336261484464008366057151722176200551786394625406342366523815654913029916281030071790975818259695698634504974487474749661604713059624620741424088135403429207036980952127276865007204073828939580088893756242290513929300149826964700667042657736004655640827166658940717970494319148299356896473124003918028654812784782032536933583551053129906263826285285227754911814004723669257809796994900169489776192213660262017953559551647108304474358094754863333186267668926981109013184496315107301053102581199691160277854489219372873269725675171963794814599543073144551632824453616062143907987958053894249284104204124649706473713701638756713713742138116252203341633163471894497189934347430243889285607596151647697750023325338162900980811513921451274786189823144598045331815925904919212144444894655167716058283097788436127837819711522856688215818754908537841047540486682336588005815084628259146695407518724353624649988140791914240185574848638324679425723472781272577287219638604400543151354797147275068792198369496067422358602906904299205918746174342418703219016063966913982103097190994735125915679605899081531826664345628708449088455968852438086953387474346151173789259498667104421756451765305728950634206019294137241636816900026977763388837120711926727363672101451742398737575041268639801914248810250130156048062913988162043776975985182787997046187015457844143478922790355416754145676380314531075189328698915798216444499092434877199007654787359836161727578556910064534575179305501798694691285179899808155845214205077423116975991696203857482645364524883050682266421886119730753648337014023932606415085696524707354119109574137595956631289520450376893927653687850632882867508235420273728677268863263207385176481260990913987209202777954623056114323596545412700142019254597051783169101243626194302595872620917692566265815776223463120624468385153854406335121058952893297958082306752330471867389340805607825400777409766716244744782168987274717600883659904431109475571056167858046839206331771650472766230980412893913754546340451073977492094629220929562035984276911609080510606526991625374971254926447963780302659645594709865609853548340777821174664784443874929533847422898186688182949633900727034251141204640383401408766314690809506096170194411624075968038683950535793599814066055584631227111291508879593568462895050011801443091280440319267389072631998277732124821429666006421478244182052327137087604334113492161338713899377244503253970355167275635721142975181259450581531140197624277366883258899497437139779166686984536956159701807637085993766393843408778574607039438296834938015309505299177333152187824764015048784220934849822470774212002067780406990887811667996558992223038237121121852578814419265669949564517841137436397731814091008359215852160849786332275377882633141407719700118663570591628840455124713496145478486971789036691831780092204390893803531833486756427140629140826090712378918781817935946825950502039288082683267308138539874623986541594846361535319884677477450384066666012235291257486601827674518112547655557883728315674305340692252248266492791772537767095226503465116164898086328676296995887258954996022823024362708677730472262683995272442348822611906796663418407627383418663103081302914078693589404957791390436348615394402415768246562671253187515671741671250891847470515156467187067640209221693957753784592902627105099247050067246581498491217837147129228406341079543929274363736609729325250426382175023533955678501825361553487517942724717826129627553332135502716190473050422296146827286356014502083799916434227231375810589180330892205833845344104976217852851738352995597526417091813381339065588988008367950104185984583487637885736215269861921816999647588178770928247673345448654623988006378263820263415104884512204131053641272418932170627483135056323477128021961819121551068423597822069225228927363312128381102518193184520573874277871867600075541553890522831458180700273023302883911748813473311140877514363525531425115042924905441824034087024634791297637614323871826834398008610852106822121029161283625134277519201991117354425615534777581298385882749034934757513992007995817497259128152967061586392013385592735565013879171789581878758359741543140881143202380464241037125562768758946450547555949580959220646991727450806803492994274983270796384696119872095882113119666151727241780532169276601653141993180546265601277666218280198411958019801141396968294204809775983550919911842057038661278772820570424863526861455272598382464872644336859046187220437322211416464328064270333625722729440938392622590871826254288765544019794977321662629330317177188212741310416944725434190400768617974177933059093781175114362947454018859981771668540748844531381619017123740565314917662269299928758323064810876287054565768543128052780449882295020166265059473809261787732170878224099163417790850621250568892240924949256244825807221585355047765087087475770728166992421918128429090019936886568367545874653786640854889238343190272327718717838329870306823579873438924594241060809965193257499125859438976583111389064763021063725950851413425861201032368511627297661584501942267492520590945282138515632476206529043098849112654900476777992403906789623389555626075650788921905136699157716882363815406658182634741807323319602228026101560104628763747103723588769965060638692917309533934871643563867428472231164495227942789886727163303293235575123071810208625956961814964300120598092174593386489098025315710203653572136289661783195029022635924702856346539175879347943308065825594913412014471018316183958604357322999887762094573562074443338027859231048023575997736224195364461605037167481313207103532272589587093294423992448969112582498987857800780731391303995218217653249644564437122819210251352396021771067894146956727823573195594793541085647929795655772177754700013989444115482669709777973613766288956202905023568265905516605969132889193688452260383668661150992111449752122610356097084608715551910951548881685645010690051344441066504871429164776246131742643875745501258197365551352190243856654900353112239044712887149416703492995830705626900160429832773320180051824543109559660245598245646910148401408624900542324671089213421786034490953363199532717256284948579038742562363779837467953225847981695333369452853079009173152274077925585730373596726922975793179437263951322282768958653897358312488877851360118549222797421659715080256481666471180335677601013930413757693894486232133887351127516812021669711431643930502706048593090467256467742745242175230777564052460095920135826814070992975602234261062982676290391384297972936408414533443443623319049509202318793011018674411934202105340370046167288548686000587792941756498562207515513691095939555174320387138568147159282951203277945531360830381256358695783876883735354971049020735193674028590864925358181516331418039336200911991933580582000283631499153203010204078474065940177292907699928208574257127640503183539232509866915316476993458030702384127092023183880936423865676807645064487286545945777094099463533409060987425683355987475039892934382142678069179800862271596600551082423120474687835417747756451065511609965053704199575244430569039737182013377719520202508761948607641758156841925909653779882184075489411198049875918763360320715305908525509659279298884234061884401154159402099269152904814281173942060699727668479483746193277863892771816807794808034633617975506014509785483991974956982860082102331639624441697086550732927825471903596260613603607675960848702078299272355480834723152308013481598648273736487186546819768234745459790800376758798284834595148627280871014329342611878065308642362145193270758769083741279200562818493743655572502854868133672629228459687290180853317157711810376332099078753153956990159241724037697690470351303779790286469813663225837115309859221928730085550853588719957796441308928401401717662919097385200413912498926513282091561750433879526769638928590163120818730882423487565579574295427779633236901242794970608929434155551075579558485524750622981418827922282604995290256135771053699276170480595830704685287889870578714397706447599708873239463874691017895225230803577259935265558719468630893397303802883495625728250583748480762852995049775131106360570826082465640090900124589820347601276485377553569707488074860521343031449828040361930158695277022646999896731129161375818364999452431463762235294417548270045657746213741273136960122143448020207236530683769839828712322940901055283108843915885934859081695334378939760403505383446888462018060350581931011756773247858230480111608580758762587673931535360466572804281096522327630129353995873224526822876653006751240060938725196972570039210781948824214327828214334950927649520282317232655077328594641626364838216178981209610495720828652082353857177421228381542668032844035253460982889431417158189463634000352082825149327412319725370621433333666320763016270355674560593052123158092639664703151218703569480982290399279339245427226279825550593802273535279316871119762409584713650781696254330190957940090943073363602697503494938661946597654178066682892490714472654668009495747985152533169164308378195964409434153041087264483990270730202862806056848939746808228711365548178322946882538535693579720380788228912152689218042239558329306053950028200226420513030681731910247085948976007614099190111141034119978522332385964269830144478622119005744535415333529625530702451333934359681987647454351668751910414566654114085490526023446877419997502011228453978073705383219687345258367160801360078279882215806750199684473428422260011993927966717799897647253683725240724844087918127298563364037114742630130714073311255270752299658045621739504914568313249886584483556451898129847659866427801267017275849208912215850192605420193886768300018095985488003120753731885206050730702647912906509837403547631307115620287039031343425474022446050209454019850209154951390870828533842538460981061457903345623470346469717824649677791308622485455178406317951500975144330580732296015571131832066715152969844695414118019835043415900385229629488647782038551776285050272653547945274284774225884188883690893134832981994389354205112357201345188655474839767092293671987208238073087345170440915628573133205835592469276401702286091267097100305420909847760478437610579609486878380376851830375633901247312722520770029051970793665241824014160050484127377925819241698401014393461726527540758616900588266923249168186939411483840550266704225813799153025522285262665093151985729471899310791334896859993433218896042722386647323631368167175746357262863780482457079113945025786273037033213506385530720178305204149496088336599394055585623223848244849954116110022807567966075024148154995806837333122113202734330657911055384558491184299475856284926384820360990599487355999116922560819451057477599595528391819702891913982092296901075869530400296399287634834185744519978481079483082648167336205458435611289077669731872704688021821315879047256854613515430321689120866017119323212357849321083100870066544830554111520671977219532202477006213274573345164260371604525392711846770218994502442538416282548083325105740021897556229720047855272372803633620078434697241041877705621328813267801144851054844185281959039308249120016044991094114721064249505207953410856574684017514355164182920150347643211275518361568791537948646870306726674718633695257171137034699537922332579432927541455004341907827215436976992396909211299527215466270696357955241772810054563510236561297916131442400226113365015181336385337067338637467404260260742456642214458842134194183129887173222346119787522910045643090536907148963855627338376145369498466871085309433713235672943944341061868541769695522700178258077788110677276517182725503483852817675012315199520657447008624255886035486935660894588256540123148122095395484218773010652850595413015312095094595092419959456151168686367189267577968852943189867015074519585774013944624027192481767928821160489802090022540242528837233873813088899124713309588630055372970214485256689546796879155741360222766870077969139175303084865024007651405709221057623808109577134042010716610160669175710084628349179343993567335338238043649118044646533951869842911915125428896118532155522982512578870270592658179766798851769749367230420206924329573838286838163853040792587042250807146981338160060724757385364835953405459216254816003702802516472484834152448552188818832196766032682416840720002920486619543254549557388918497410494358379176564861474854138243056713573913192405795252092575304417022811056227993158160609847392014984721675928145214503355413740032653112073287301524387820031670051147970414433831006174705998358721902734888776983676738575295617786437629170538508145502599450986506723901261738038854150648170143908417485050769353509857091739109667214221565932346778152693623324423665070196326923614559681287443853342821486288361988639871023903544185762510733955809177535103871459818576132461299541099116787353063895729687851529549670305030357640555098888553665286430781308495064960051940847739756311970286141566478403542286081441180043825469434990866004542771941843501914581192458391419586640323496954200200337410646954612946714528840194185282342133087525289698303254534257136920535356625508906345572007592957285811008521702833353719515863991823806482772500387908535995456693355832024157920196208253115574326936024843624656596397682712599118089995355621141345367664371294538881485301825899702192313639306761500271059161007060024128051319876982309253975637387514377968601328322822753277295886197898101065903341539294220199235699652513455782382451487473154423981011723780129040422556316037968691170896086094443247863166758135658968353700660563612864833247960126903922884537061365902022841214699181008435269563896417827906995768106291199165931200056463221849843427222050018505404033729596649287555749538705637178009035276483774134130471382973804086408952317431104643380773796029751062080833548590174356318173909435279596207477101786859907456644810902099581745671639588607831110153236912050377857809769797014624028716562044911819246392873421130958932314274327380253476634413627605466319594456081564282124185344647823692648528487549574962891257875350038419559123805133359019451233116474268645234580445881038586264188551897682411763552819308415626739448347388188765588005033122337683132849528245431717727172189036201372481024854896407918911673663632085638051207542987937935762544916800987905383015315845112689193561494866770330932095369478545431298274013685008697797051582067199210233049270902440533063187194590897910044304808533202704139627629631681171220970854462850799947656745760423407905754470518372887010996806195692185509028374883112995110294597220684124345777891873318541024674732585715341563440763281376710288337421797876134208402678027745984162890246583148950643313252523789233771193346375419867875909676848465457742623387072830615006153996178987632897960863821815008615350448583075788137229416746884727374260332480704306299886211448224619654564312906426871694838865362082344814763504294919928816437998040991689248543830323948170466612310629029272133591107321279135970371175766993245870153439635808920408278977799758677356123322475979491332958197965286484086553917661032690679943923099666731801474886322501062093521300005731256470349365067788262548465005198302073894175414360863835800197630635189933756081247880375644325249075064698706958216252154143767088692483443148792967338808119381991214223151252974239642990626115627991357202970597342797984140107428337611752248339846872093332085243201941172332484072028221127994581758014245854510172622223334734620746542562465504851109680287601621069995590008474221343075940949521775859270721282866545755319389434479548956594722307959332238376693760832243190048915969967885608457537068896349562710772277688080192400709003818068112524791437077265995001391385260055361801869916980818939340044218892279915737506862958101910229928580553303145470591285807182363707012069103979637549277495338257065085666552725583119098288934831859170475401505729871890794291583237860772038670030124788308629092624370889685405008629749775208300660833877996223920355600520845379235734056309451256258354169687865451669376306089230413436511766175990294807141461535335518361601615449847402225415397094478001550624450216579891984423063104974626354752074239946510450578524952910268214778714503074693919122975996816359783032749856329360038868536145590580630035423929622871388952422864477051125130626701295660755798711434227163580906039438988144978255643722299480670327081207228085036502068698442649336640309965116079896494394858894602820239449380807890355132874562347802432347177672617387243436846778536677611243219616788392272385613838054072627549175931558873665153948104804524390850439677621338754084315014857508992516554378278313271445379248682446481748171735232355044960310115073173480904357551307768318199564624608343126515239475739593699616033861411042656066796274714584427092306341581020336089827200027776259191242516586774517581819629034943335541916240230349578141887594704134256708906401124815431320728553610942818076156446750694898666560352531463325098958339025050916803106861330724061210693434304808306615034132321758643420644432829045397349915065184830148530402451432937673947089273338648062330813106793366387842142385777437424959963024331800348488589234503227882798974284390153926480914512661574604673190442709666013202405455097820471231927401941583385998088974141458509465934637059034704940528081918855072409122356581942681218420672853633417863264731558423346183178441334776688138606072871818944844765002345322246702934287659513402627224329639524512227779344769820406684968542381513374289611426162516695614894634256206180467297678754655098554963615815487515797900878238056697559649854329220284490532552943577933990425945639674591376478307108858357780747303191375403630954613875327734479769499284921630947055865746288655235384372207590329683292267577118855778424892943321310611197925440838165548778809169515494857497823087939815750775732685078195407335917163990954598777400214229573875035957060763091768764857630704621276626503883373745467510159043707907469975500104549836836744092986648792932289077928803127156134396057718859860558086567712722714010977481731499724382791779515647638782273310673533810763459758664511112039833022969019681505468992294700272129953339565392457064997676545050863382765462865629463448607107553445936740818666882281058255526507184613746001611684130650480957246633031355505048529437409871166471394834971374438228003740155239748522125597565304685234114312138397814146276000909637211185820589578611790078407105260927283263754407857279287955966496989437178197921370714915790492491460744707125292461207155331171935231830340696105564007041010019352439808104683963029673721278742910195005833351756809478136958130188178310591714889289845402236653547393197449056447779336798960455625308543192698171201084081976290891233449838400424719230986352870593223669262341221236573146805337488399216702789692940352866980248423509135087654269611046966007390811054321762053729920539298563257481948596681438711419809543111268438745764889723728266691984991389569612976618521568100938541459957561294377926276504389982881446460249208988559475334104248179410016457530023938349154390967280790712011499347070359444907688553163966035389657342707337549575256493623087420125670844316949690070492137768599287866400869982864906512085232328374564985190414191220490128448862746158828362773892481106859224938308195759873639160097943706474584590014337415770125868821281141083844722231453437832932794377592906321573299367091854836477089909722843001643408390204290362089133639014515603844390451159673697346327953271105877921327748326951790461030969925467285938428384800326017438163589139845973702190361775406150716695660135013929239256804018713760649972817460223181196327908575856316019665043442528431171774748607240462188361523187211243870534744824647416956159046627493041560581223721854581608334291010937721409506828156098071414896342694028943975988789692596898714012706245054526410987142738278677396235046399122063546600090904002431698806676648769114311498066123515142225094191266895415682713432280154867564959404387756046851902536625061941510186477830751626968103362790838482493801273498379984270103224880891411821499425744847867918842222413931665288748956862248534502980362521413938002525971087331423682355218857640666900161093406283179706600634840761448971193724006640599255629754292473814296200737980565805225277287075856270541054551538553786829780164366035966264967257104052461962646147485833868517007739096388701325095197168646761158278333801069839810063125066129335688623524144497497340047377763305286756852246951621384896293899323946254617429757118298093785916905434975551840666558194120391214280729324493914932565688197096202052331664493799559276130587960858225740600693748439338140020699450866866144729535621539631616444636017650435835973985753545219608553319250508421042807292524324982011228867219499778201885029798205576304532243355048277747280042903841477851690163715509835317890073172217429351135181149728116298971224030317746492835181524470487918826155003799828935203882150801971355536206650062693459628049366563852945643965399246751303292253337877734841308451234679930464532413099895604350518366175280384972217308110521907107204646278167306837539788319524410764278953582693079123164513577448876601553646683190530336436609337529510006044458066056226717031574516286952399472309935057032807487377409115975374344930438276796870331390070148396117605201723128049721478278417061427412714688317999677145203740909527630392115167053620948364769395402066549927800046686973819813448149988526954414813915293130252002473176307523809267841147932260558055538246611569357304129496856921757765162673607871467822952905219504947673456472344810078380006260024912528190242617366140038139206596147179913446091513790152026811477087143947368928613195517294192973615396266456773093820013438005991793885489087125841058778366601962525248600084665911585275361295103016295848470150618915915224556218026942723854682488410839508441646056484935094767774031339362312986078983828673804269378815249696930647526780943584517586410359349145504950517167969297079662215199288888131489925777265006957848718219949065349230275041560576273687937424825424497746246838437706605663558560650404657709861713788954554492118670948810208616723216496650442446182024646680180830315690362767129454681835520127693427305693433858404211436861600738186311725172804520399699868831705665362929941729864518266452400404889410234894242863046302466805986905610410433014775947379257675269561328695036005920408685817877032859773612738195694326119379069209094972060439134364794307684118817952520893104790195722005660318610396631998121467939311525157211626594148143847079163761881558394694053026317883688540759475166914474113278390258065759594579376826939068905764455484272374195379871995083849547920720225946131717364623477155052916319014151254725145103957879187168947387530329753093613812195777061277280479940533979834646975077735953833929396655956911268305855527990383218397201846167072668418661419457965994545000976319176799608201120137475742851548000823205676097981189291887359789301153307284192321876038372323837685717804452361426768865587860754572629903265010537849576687959946724511852917502187186639821039881145136399357741412978525044438250944385760668182625204503205288421515651393974765245652886414969749562068860074396451949497543129253139436131301033355562051479240042134687650259749668296142021386340091166739784358396654583434640840759153789201970689775034484422191011681846424784690731696171968527843570274557940182664200805440416832245146332858800739722713264211641564113318507027767616475691358071857654045563328663006217009931387850054845339199543992872844108305515748284378344619652808016379840978144581839177965751867793300842177624895446210642283849154415168219573929738338445208807865215641718953516265629285178227083693842253379321998136851772172453590538194524762907925609804546080435382741330424087702910905699442851332966089618389055921289437475669873351939397211778576993199879720735855239729757253858229718841768724008682370840233971760500750922622698475242702884097189431867085905983996209486555329218350485049875109272587155579470479969382504889173734695340788411149182996587450130106466797073734122303651806939261102275282946990051908024177895719991224230329401345320039361479906149582637904337399053864899897539928741293433925733282530176332657106431301843685627912077615407674444602477057961523986106345187714975039684139642575176286291905885883035112459748141195298120871227823953103224722675631945763473000844775616346891671192556306275607853898788251240952427956488711169458813366905475168992392467417548850282246491757171848357542981181392853992811790707127066451459837457706728860750753216446281793264684064159296692422215644839560635253548621877223122323701373619505067144966131090614670537151841044503092551061303407897877916911833129964007556938707076131140288932614593194057731446589506796644394769937369245934868278102349134469656484618099003823110350119935456749777131731304092468918044551975075215179033048498150431062092552132811637833804728981984834506784277859522886817609903863860965972610756405072986167615059959650345328305322729814213235441835745097412627965175014344173493053275650218869271684480329908758603937018277199656044244143644209555123403256214580732218510197681126764214580001698338755038559952151955635441969859851110414407055013887335361372823493017453890240000138849650353373230784927378857475303312772102225089855992180490622220045867319543164437657206998480656218325381659902356393499141866857690089215671941344772538392551631613154109313938247435843532280207447418231108843668694229100121679767884756804575622941433050949013227163299503135301488974735295160412049579596101599797458557214847648953898517984608920806155462885240093256157871168386180854938706852422679269627862343548665638336872610351917764055951786088754463227348996275082078092619804839343939041993838792380998079375612473286332131157890057326279999195592364412607659603024601848877721134048002984676681220003905345857870520378023758195584505192454848236792156577316883535554175354863493628457661696381819417889340384460174289130459634079001296089984409322548018941367490716745204887604016534175078746820326097730581208642178619327385434927546452701999029416388812941479573408098409110056912157415028582789943484946373371366048356676854455644593114560787963067724904858154345044639793246363313029469305858882990074049799727692992871099374365235478286387853148086412327681817904118965679098425921705532484791129411882023001974183809698055575690632395105744364202098883056131471000734344440123663371506095387347435903896161646030615834022295207474126521330735625236205436707270031251405516406510736643104220923844465243642399125087509656405332972147463612218261249422171795520279712576981540289311493123654815273080835821493693664362135673657721718616480563270627784714962593058734813187367856248257649298879959990038722560109816277761803739225407710356223641596169148314834409500905572584544688084981204642332773172313040433825686497876802427388019622160080196090181459885225942546028896792923361480905304456625807427690708215298208670316686122919318857779174762237106141888808424533813537482719743293631718067558310335510506962917473892971689321014126013938343225577331108505464848665018116925077158495403482550055213786963068941784847748131781614110299485903165284421886513024392385659236595385111771757926228136035139420536933071336585616267174265733335762777906660092187764607725424484785856754743083054588708157290644813229674151915122487610358242188950415953344546936587917913596177847857992776266535086191143630865946577443030453159162236061404634748979195035539351444462227903260282405374643977305901407080899412145011051581682911837358945074191552036197669866814978393997924415559825014691323334539042412130408438711395967714538020329402744334029209230335295295393708460196145708479105287527154525463338547513144239562415699963451598965936376001906787332182448854801262535912624223725822836645861931870545295656481654451577071277163594063152537720765960184586696793855385516030766672589364868480687644234173377002961212925702578412642918580472270611410316372107111609041812569135013139649144198550325152095097063478352822754668368898025210120561542872546239747467644438860187195668838070165118551957528545256147296631179892881251537346314522560580136886673092760916066184811188752038730050076134007212173256638111406060222038252003571456848058623096309508675319647462842871305808269058500754061542990194400905285476504478378634438039643928788755490450547355706782085155229252125001081483644340289104866757755593850596624379794738384636712276167826613426806584408511637120966618947072302307190273253492817638687554191924218175856230755598038759342344053238152341606587150852999092166888800471900468481786851718954001582799662675274749303894944196518917318590572432335888924687797908432071131552963860275394930463176254135168929300800007758249354184198317655223123415200918255787478529559022713237604844274353144287696121832165263179096927760362119461094763640420860825076189118386362483851153846926415751351898518087078785027708251700548373991178903867392181929668802982117029710936073462053324263890788108042794997959611819812251510062206465859596427218170124488818128021421353643895593287792505366490528475883612243066779894335798309310745994499981608613719888645090325541577243988851033841053514026185986485329823804032636100823376204391919950660318828570890972745479924914398527792987666388609419855894064145931984334603324134880895076881521049795458378620995951518545301121708946229387192498533121663341248019055008637103801381748153092126708693866344070640881134839758727830314539699189271607761844110662238205318959388651081999382909872086131362143813615467668106817221260704746635302291902966574262677075507845879926231494745512082016718824726186215030479166936089325144875122898226692257374116810204898333818590125518150283239261110081801361929679093026105844775935171904235136194117923319869471454946630050579135057934063965069467258209120579261484531388969791445010111743994391739215565445466451461695294424606076430661637340081858584545093223721445571534099971692638608369196890585418208250022088102064398671199409229331864250191923215587544003791398254187051086648522043267437312627022874400232013471442099085245838814320939390772435437514060457137572514408416395323074240464175386208603866645414537759863628556442066244952515837798571926547903356973720580738501897687166117310995295653427816378014739594035386645244947173407856976735421254837863735316284741188324698742681359437679166896060846272477699771239606730866959111477899316551927423760464044891658273899490597117826457849830824806027199809623565828179054371079484006292240057343267270373363508673237557193394487813720274710184403366398229275086083135588452866991568622601235948894803976776994720341948696123721199746574504096590950698007857374161242150689235619523211448101111723024112390500494541847372199840022138953904879098153200166883977365161839664696355617952733114812823283434880863233107397858988911743543523645633442583132175736594643244949785302737199893485906687898156712759868889860349920024247513981597322695121714995655737970394665996913878747337049610209084511478205198555355554035470566100597880509411471500576143900394821903923856601737180728374354630792380402718382638164897228946441056731815098368140600966652078424182764963983249078661387767889844137742719421422185713567401382125796594342420047104412050506391301410498079641538997194040361072929675771096540205678159804125396347423463401492870611784819976825331333608716080543519170864954061247373130887993790736521751203430478945288731772660494023919923166385888881907283414296149628021732790837351033627062279022974963703022654134123426785665856521315093081619750415419909381234932572193007811049161259834172295181020419092806555860534899413645502137805790153123521623132683851057147616737537031798134372727134275509086156402417894514092543277922266587472116001277190175636156360154872608276021045452252891772212150729595154470305931808245472965271200877708635298480636157905096244882176469883475932811414241483703979366583662519681618491945585841269254234670411836809507672425088574944929115790595488864421861650267178272834329006923812841463062857789268763321288296519300964591333029371751376029089634788506244055781422415185390619521782309335117209035113704642282843016005802737422541871763397618418667972645576944218170560168796943174588555292517730916855848468536873442095600350957521092346511120066380906814895632137277778796069402899805748349184600356574586992911080236306958250153836767700143439786100276816609313759482056793091825340756390733026387096228358931762097228406749639903671228441660298169033655526302539563113712441870389786522278814243416384427721034270497801350240364693609329568731141902579326721480822675976169318956561966315778816932641103546835142827507910700185829644086269336174554257667121258889576709052906277107631638270168137261892646002616392662386007125377175901958101014807561383400062521530984727739816632963823523246784681293995838808810740162214219929153164335385623074775281349982560108074348900645694804004208646544787890334830090663711634117103025916697238135496328671292955215887505876354502481875344840837197439031566738236886448470782550171144184908243038740575464067041982038008526839090911990434066064635671314131047509154236515027361124851968363285091612502197376280468037873295430673867815637192810571916498472647543725142428874453066515072508049365697493656826806725600770979431511777681756633079090381163866016771564475752434797908387378810131959179929328827235301881006870870836258768224809453031725412902177513277756734614751313258597158241752442415185178033548063904174810106681594179610607899113197554481558529758309451335283686758063494587466714318727438152983565546964993531683423186094894674267709604108609234087136945519937559177989807208230095039186367140051863502279181943336642124100855552566343389144648996072003043037517303842722945956807617937899162955951432685737578687988151480759336017696191761863596536510565117254899163622655653725725691420618176977824512014667595902536678350040006888721952717821748086916787773500116180012010062302163159017522310699440631444797898428039628888058566494969604357470412440514751538927447900346292883755709052214803699794613304340152518957715986830105561960285599157936769411861491995862202729374928062242869888742152613295250314704542403551433173538002047769679074544164444495534838606731822763847611036331449064582260684917103215562669663935228882197425955331525823016547074393418782406135561898325482724777208158198783343964127159195019603316116255293132686637154833749627829725587834246470946619808240362918893787433613930996382037701771207002219354885693931461728928300241443987325429693322234931164388805509599485077953929202414897640252336040742368342459701069120891274839953840000028933438887878437651304666049258774883892902525439345294893483514391814697346411991117019285061181778665089830088062843903107918296444417326350414290656506558333057455253746765655059886338039114829975660498244662555615225058848610063923358225551985740051495752903585320526572463440326533178587194683478526872481578553269384915213583945270196952958174471457974704831787461753636544992563730621034259306699586728440009312004643075798406088062226918426727952217140209399246427770920876704484202202004169047799950543286475072549980653634561201504338567912677406974203572370079230401676189971197905899889391097403104616117943685841330018606375164964114106667184457228977200936328450084680684650065786293548650346140279582835510814464724816612954431273257664432456566319220119786915856453167623377116166564705012318105541350088435972765616338656435892892521893036999766679594251712163418845133994960088341808159110903008797639501659718927429489780688051250993685788171724557675959863985280203449573972614411221674276565047752101180665266322690828978627398792309039971055459999000261907182450226404616054048505893892583868670469322400042237277540271783777810470545311601782213935381247436202012514647975505404191203058437695835597586855714653923444235891628879029096546123731262017569423715572749902709175861744758094831907693468862497225482285878180781264562497969061278311945446366616245949670661335720417670236585812754594763337149520848280147632236585773161186531488834827920089187617590490626992964151963819127544031768186406904596697764783819903334224521525717990194640161972776896893019492092314289687769511297179010089285564694017053928048113450405987487981555415001949440915260796761376638008911781722154526377809918954897119080771244094758277985860542640755786398034764950537895868451084902221786927739514519033516858634389712725522595399574232993216649556545805881083565857665346123653525355848957623587014307552225535441781619280133264252096356568981044424203995386813197576749167909145085601542218912875810025632088179893150987357011752713681656411360387658641286296812223688116958181320801747417816957932596792389392563783696774080531480060146584210689683136593249271370340531829073575111240316043472339142318946537477098888396235975137161099178277239452058397308723638550307469271768203144674649583202480882273789896464306226259299105414478205002396786438201440106947153313422524286687018808983402624026439926076437300416620941265239998994692277558905998318223602846780121835138271424239704071104051911961875149374219506995533613895172251540133432783672109657479623920191199655039323202206614465087986603315247344668039914760560380600286309055734407528671088986973974246191931165906512412786241905588458496901638108100340888837001141294698596260533656434767078960761889120559882478371386067782308780281033497723169769310928098016805123147778587235265441107495326962933863932717225187510757220695905356697746902726220300820731561683527794382815154757696432516713644715476966945210519697656638831522611439803064746839162031246697971598772066764818007283717387164644542638188289007944239385434657622449230184371954050739908950449996162848408766416257432060737331524715051267988728866827471353848489139543260642202826471211377532455468992546897681461167683526279272432816952495893501375791913892560863640359239406068369782061965156874121775954530765415444967685899653906292913641697642623977489694243728026579059826962762540153702750941269867263704632201102990723976110746882636707815710492144648954710008566209799069150632189214030300567230815532674681600419903335835142388266449904957801109568418113108866424251574584311088769369691884215074530194302978412477702232068869305929473618117202511591238233373753132890542982193301955667524792158244811754147461988861568491038481705271680925668477552368598769010672949308594561313353240566645874453865541654457707385630967809235622608292667505726530298067802246184713404695221698801159518008805108358571216126835672650211210175918990322973664784053740855214496137479206805778255709099302224699989691188897999544245108784161382815375744117423045888466137140940084777806172081397051101440647388183990887993447517315409856370614811671457376785838705381266183436279880721830133799210120595998529691187192821154012803714662136136207752359124244205841203805400639364867528247820598991745027835172444499469882835702822759327409921455951605712043328089997801291262218131890282246391681377281317494771129864347992912030694400044044672581430820157097539380898614246520438820461172078114637659328370992352829982149580685441213572170569723311684004591121353403696953188148541262203372641458317666270912033721581763859657049685795987802506340371975018992893930906683644383576300165486283055723701115134267064262450226327090074372665337496564481567432647006828606246648838767874108516913549925852531855885279752176792045825490717283545115373031441568147021183474072885638943815185866545476635576422142511846946236660167730913056063980751906620598903576006795538068414601276275562571973480716921646772743718508814106939903945377494704857889225246012421593560360078545841736241284449243695385808414448344688768376641584750659674732285871280293119797245180867201283715803873433866573679141619472653270149628277584119404213952306496924226981068407271167906017272434479770613459542427277820178498032473636581443882565682879630335622099622935301227763309657608663174996560644423476025622296830179009327271530777441764148035138788728295052494891697423985667978321137262010025390232464948486454942148127178360555718240945243293445854356471849593349733151439437526292443237313428817973261912665153022573206472901964937047954995739982169386874239748398462714843402424593783570038082745443081442976660198273261952085947439068808916767391250671004488488688010016247085125614460851876993008329394404002121662076972138146877328559840884284914753663905040225798787392404861064391935378677158604302247618853585446055171891269217630002727038574491084275371127408414722119579510518651120592670839409272786794850418690042837781389020566956055904097648570262539156998002107900184828463423559478885913085513040095660284079345430193926534071654818512034062154961622930619810571987751564078836338481661372222035530892643856074464563343686504550529844028160775193676475066122559790822344457064424318487904462655101768706011766309468512747074940026415359019439726918737566791188041952410987683305320252321627407664626953266735317437769632497287041285695500317347250998962858470177727631203327706392534210149372043373360137924339380076607743852424742240654022363586391875400257397748672079242924318901569200156462872152648710226081202471837015434257821981742073279018321665095636583522358754439035136688588002193513422106010787216271540415352544918722735753104071269230053674768873014207872138982565744654902652910649516872300561667973518794640727665489134126666818068255080673149945517155544648167540561476606721775416444931596512935433759675901890435137887734592953623724473462184756904748351582548402647654314909390024911010707234194786968726932816386440261492233660341627104073787355724785253038508242693119422832457160565372408575186346000613997041498259572717341191118761508725368534844634230699920305798906899388591358451737803223799826137415516123405304851357100916768251634612060069091470202289977453677136787941240448014728782933453079237851959950259773575546134448815839626430587439289344584508271110693908387915131849612150245060031517934378658891832364351897551164181100856460302679206011327362733679224943278902151172059159270374189329133794465634006518755808186235777837080471492957414560576742062307524773464702946530888676423042805932176137820163038627895321239056119700460189844213415332071060616796034632561334662139309549860723638438020303079714336362766171165830695630627018013477807304785354407734110504619740540021327192884062774349627661597428681891588243284294748779732730511934845658235432633121590411534189936128961477278989593616340269445461078291311477697613718997811733202907321566362303868903530520640751070876451304488512348543021331378364726111482286553164829299799133679935908292255436414892320365718374444737891895475038204314937394819254286739311168050993666585616579045088230463653613270744567823887761552204072159214841454678504812129376244923959574788373701193822534537459039486863127679294605177823240843679558354294017864078720958315831935625603698686197987859192949256345027351621368545550465807793167798616521509931498544672822794133764082747551620397423180230051422991472053056518781289387901728050278600342690210379251685276028244440042250617301060564723839874501891696653615493358191099993139076383050898156703282805173735811219219822537057001673827434553244879281699360820733172846365559858679108817559553250852587405493673789766799215687355851019675322172357677434075949320071327620352867683539878453251316007161133273889298678689850392433171217536346174714659529695798776357806473321988057440079732705869677631308649566239258192572659630492567782552354517380939844939503848704262094395201521076356606691429147037852438672941957079637366129762353958709380160757490368348194163681915159006604093591766247820373005426766654668239889369371514264545560649769322392137799375525147151840371038991999214363768303345319519065059926043720981465022651159215619907038057643843658578295264058481483558999063091362383056318958875807131746714935880906482040985631349214683417229617482116195272755717947350628767507423657427866835214398522691496166841520724969323007905921135376342405113443884354738309399745184774358069244989914729984372359297138339657066427310618886078815401255330074502320465633303113036030167547853388262910852576475158019712785878621557462806880348549929923621780736969483409063382139114022375347429455853036959525722443225560293462091344173870223058504771221596949988141107720252563126120410429609363078456768177301858059246575675734753511234098416145823981103575279142087542206745097549332242631064257195091967399077754684989532011402085547593295914770796547361780682593439605225551076727872180230294228357222800867817320243276975875587330585761875047731242079743253638135191931527743310670192743376132531488908353086303443122081432583955164785938752140322529687373247844396721496612336166607460265333312621331918932132122707501131993257013259762174520561850931777086133691383884440756879532367816596264474769800923307049554500367124823711117348236811842846503494681671108162596256212777444118404872575080520435969871277379053975140136087983130040259272054031357059461405955424157989626300282284344455180257029120118199209187582525200486633109778549388259832186742102971517184577189569081497134338384979473147751093290125547567731347683303497985170923946439312146180186387272261982415840225364966508801491436618389468809526705045474279324683633025538111220275737085534544394056813153070443657937210956812299703104747346932604239035572068455970480884587259486993236441257491979381234330668606163483629925599820267355938345994846031491142860485832706979563838452996109000271772385666465455509257033350108598243378895322064401775101065280326321431270864281542612965418864325857266822527114537405251973133016060195802303688834782584641732270332031704417274922711246716918933781850986135659080847940305349341759912273838857196023928658145065599966467033760275384891574648840537881165103256627061929144879179105300893002746043918588496107354665874895575361850667518050721473674896707907221972898634624190141562862762521594409865116135344941954646875250623833851237660130279830239841575510240989739472827384779571503310842322300785489266008623160277774413182176385747663431614434589616973586025246797905570760570852240551667224847164152197246090215835758017711152919717175356745911415751826420236320009057987242421524700148221142126954063652441866537389051589842673386648036362187611703887106364170105356366852278423972169834912245948964765565209490847933927048305022453412831593162858899394581338026261571959117364308153698734080429342743978328153803336688325562115941642411588033049278892545344080967271950636864409136368950287380696475588611457205796309443292133206397653321383210752605699140027177522987104414590256596642969063404708985137651157850058454402765461282656811796313294146749993323377370228920325913045679768980811259327745327364041396330437193666304307299108305828759989745839187320163098846982797299932716992056557739464666752951722156157929269170167140695165059891101799497766528319448841472015083024505982841959263359516364884486644507865957562378118052123675248957747794845303562312386553599316590803735062679777108081429452323046460303135664929786253597688678272495757779024453808731397390573398858611397060802365724607488649186852575774271457971504272139510429256703679940438066546131152891185218245963118696616041374405412118577652766367408633382121042206730010213565555778365742562732768854949339200241613794175778995538386799379835855712174338165259903448175283262232471947298173928034043315271672374615371288562783150967886766778545847910948913056998469930848583506933016854353890975779398937866109789048657598185891668043898052003386802184702584686617526903625087762350861934518408367278825050627933597088295874117827349922227611129003210749912611190578817257226211921375664995671191486932930688052416598256525356653652869466628235129277814411583069886270158013084944414454209491227815492497605000807595941050936572058397365618060421077052586294436209776818053839790038457401889089285552511531125472799139467017290813889242393892481089990254798796028021876036340900359901464153062258710389257892995935012028419410805199234395496877851202138460021305812674106869639474187612537841181979624682687478145399942152042479694956266871272870889401816495997151783667717034538733362399354241382959717794162422403669801270475255193634975453047511321282331715275244443400575505530864594436240323160970714197134634673004954648203405212015846700670561794714097014807652375407422331765113359934027497699462691526993425948509089296790661145183427357184029022625692267216536344533979355026531240191414656356488835518325310679633073440641092461559568422698107213679314260417200889693302845947236466255870005346504922996939452918535238951884641431845679628725099124919983560686164816985841593267012969625987981567488087816902257792955325222282775285501904287005292297111228156246149335579527915484284438824590686206844980951240506046826374806335217722335721571422475787393239009625059774574208590751574657571684870697386012403764532825074206868707728489475150010209926651930780728079596277372436489192312636300783930084702962058832118446663803464011873272566529288817176743891436670285196912503169047372844444936340896336922025349597178198976995672646455504308770584249678991344770335829227742206169387980374616608672939157864136186333558364905223578836029514705422508425135088133492431389478057478532555281584027036567864218442386086639476569661567692778107575637047838308282875458727971363371375212272757499645007955636450505069220753051545607870362382819540763470227684473515086414420169064421524207162052458833692971623636843290051353460038791382217842857183626480590458212057432162758257216204009647092527566652910282250133173502188584656920694189170446965038181649041327431041082802550884052560959501394052195423174945764420003572363885449547945831552461138178812685807837237250707058773357322183621042574076318201057616450775781292550030822508148834581784998081154309809120606642963735797922239449475338253974823989398619153614997519502661774496891071524394674968270130237828208082038255345196210812575744934105413464940322038055800123602181895604319198016391037080497809840359591504500087317622393589166865606303440661233612322516827178886005749447873489420574216523873523789530792652757686494996242455069987526050972360518450331074715668876905312980910486903210666989924504600165966629188409340830812438070301850141705735647835549932152479123305341472089126767832492669932243733963815175793473550136527308336085613626263351280624271678640578888889651842293928003137854831834884386944471666581982369655277936786956880142976015579975473568703552668779301329277240034458833045840274146630567830844917441828205620923587776459418614144173932218737333515217794820510522379026836000083395215296572497793161221062895395431693721375497466595160036769947944500742665530124894860692653884969071830390259297441760654179489938008875872136940223088161811513719842611685257309288348278449336374218450482684069823180194816920663727023411145874530480224719702814041218924203709167740690483222787917215875770169607284249379542155525249450238102634412070453609424840265424550652539094638582573530789098690435519352842396193046625920829296049560203361008193256536275722394872687866335694897273278701749605172589500402731886018571993655014479593573718536211699298345494841136713037496799875883885595208895466180627443171230300103601839068689068076832356421323216032535661622031311292477161901665675579195425932300863374160139806631635397777820154463784838954230863870504022845861176176753446485322205892251840402533535321104343766454804122753470165585291663633781648133600829237736372126141401185957974265523254735469609231738300848534015005525057297706492953043689199562534061713506996505404752178913562969115674341067642024986893859959374679057484654021522886525718577239843170153339948585701483161770109725939159059880470786079353192669388860068047939120921757193110833785423117694022485542787911463943637928749959270556596706341791990029222339421087216064752704267371071763652693148495779841798905284679052241911902055970546498282887086345716831239568170032045612395222129332289882240331681643535933210205264975542549631889286981372369015631271770599761598377759439540867696374076832800737807879129504501268214031038386248688918930224373056490491967681358532310524617747897458543094387886847892470709962993155769744382205916540208598199591386846361705557399303810487476014999997299598201658330471801130732120175264030453777751335129662495131826861688340150573727828418980687934526543526381983896139021740556260654064950873629079324830015100414387614792593758583192594918126657609308166460201840402969699586962264185484075555358540750813259040946212626376139275942275268247600832145830246735450742308755456966802310930814442039758599610563023630080277264721587247332345068172634576292413128244759647181774154587397453469889720605432375442833024941622644313906822321693671014582390716256246780107683158446733815444088708867007215269615307060305171704478981426796720882440486698277322629592170950804655505481280688553082083673586464875964279007371023317498944529581815833267720247338193994052010210559638521135632466897565558418182901474243419686941087504581340797492453745842875933169964283717173334717728228185185999196527628100517034960645494817955286569205045332599258710792344398099066961357214457180999241954922491372169981429526634052831643966453048826004718610919657510015715751196663539290969796685543594249173808487533653270983358809734464489001676548309813754288600030085333351227171495450009208479405513935194757606707884085897818401555579755086675603105915954272983513400055632193162491368413997454472029333128275341717261441861156910761642482938840726506058484984444802488256174145944991217272030739819683728323482475368109770934845880798748687230632900585177166479790759436135099481013467022841331409331215594571123215400745172534838227839596845029983747857673113001045264512974702927609861457860715097899749106029557339328994988092152054690967551068776016980082644232635181745535958736011284581280266027020913074455052901639522324296024816243160450231956999750634453534890205168695219409235909085593209617470292762569922637590856668672125204037399493734997963049326031531990985224898633427842087836783191286225035864751474125368643394582009133398332854602110251926089143152230924353055446582834400333501892108535897869656840486592099615229807527440265207298668629855098618043919021454443164973245708727688244143070850115821156069597431781919672223273467997639155207618386564178269955238349971560743244911710148208659376510555560698869819954603918271017949300372853820126869221209574813591448319508782067768358543641465624670295948676356190062530178628000341874880151352838475138075433208350588072838645282344334830269774647193341253881395271651150249355191211702815628195171764825938912514092453376752149365446671781947358702274715650274138653084338062462689145717647617175756737075207498477713859619281749902740648624369490329848519129569761527923940458294770833699934308935220976659945711112828373174381438208639707053268074317477328870432644244780602077044365513478045163560251949109069871637854065053744643812938371451044478516594674175734322098573321423881994648290911450022261848744652541167653673781392758829451667396220757781770894781739619635886393078277759965880123252837753028751583855666727896889129342707359479678324621109558042649250132525992503891066582460002856235273106506509531714567274313091754746067495683700911456262090965982822100250963149788995295049394481337863116067820724389481638319931456463320084203313801914346688283381780488828980586171749883608052366053976203055264972589099327044114244758088574298796557867171954322792030577695950658393479927893883641141365956401880299279548863402056635315738759376073154200225981567385063586087734698349597292552515818836075269118101231873427794310701989629773619707723917433739406281393450944441965506926352703104958199097538147577203088301971773437596274043138110873475040769838655542866305847351417352846091461888706484720716534955312812763715841915521386610382375635237023351732240257807036337619545326907222924403685099754445381811979313771007149421297729449901973357137182934026946649194084539966349634619823251825750295434780019899513739071686029942461890448458625761444405561194575377465832562510154442923187359621613442383363860101093748849533535060991881371103504046639256199062438371340878442010869261169819432479639166987276607095452115964924025827501439667536311143461490590152822828851162707357472735550707696814263822298755701935751595789599881541828307594483318788554431341654378808458280757882677902551479354403767457231611681650970377969818853195366186901111924543015151450703023342189391197282251715640865552755495694940866809003134588964297800580890035282392565186198008519121809633000892416423270587967485117680524124414951548549115338167302551385245760975751366082330537335330374788326991409755668699555918831411728583007749168691757975635641504026148834102382243198254243778200561284702610206906251061111609896899929153449753721425590758575777976086869482956409378289025407035341728204643612732075330631199210995083658344003147201705601864884792196598197469088641169055347145205217247833387501229650473979861906136937600877876433375916986698475801352536824640560003546949462677322336729256276574317733172241619080692601209612521184124289354612709323592925651730291232712040029534032109950553706930987408426428184132643960097728811665458524026575533312742442681649701958136620831166711552203962252062627688107487104869491111276900970946291543117015249397003838565693255088422440937109755242422282690153407972650643865896187419539536062810269164601966040591495857425739058331006616573216195353458132156150768026921569092677210269429624262614689395632419871730526088650162451145179784644667972277435047375299016162470004941915164025329344787343226511640402873866638410564901519791229624654143222163822129673628367988997379363765840556767662950344241821532933439747342987750451917979265389029601042467008781719676011311781083943315684326277200961117446382776924548735790050600343577594425873559817583924573230785543786303860172395197923814641486094907247230952393221689945352737592127560342064395504831806120382569272719931307615309709003478295291229461916447936174380153577491563550519022641286426143700544917848836266789659309122512304346463415957474472604198835859162917505118452170886815728688057552953051075360120980118752846249076384762727469012668545407533160689200267619464573894769540671632118469572551265558674198435286124999206975842732597543758554004039503175032846189062593148589753678840793754328730594511287421136513949321826441493396773331358906101626703628665256279814986056830539651388799850885911821571237664280836482511032117182076588792546481204570014360108909065602291988812745186237198866645070050036087806746895691369926636370538829163576830057008091531393741217038806036995692473000048014941087736313806932494892074690910123820121473336550227041518434423527029958654661668257572312417392559369912829153371771287884004631708312531179602948541159831048474726649508145814958822795898601499275854778058205296184514718138776364363116885827453892901464669986668587587056214669931363933838762294099684462887038335854395962753634601891012269024532225902991116428321302888540701395968336696464530077559567380737129271832857489415910093485769308604929045991082782304493765872957894972818628521221542326776019235001530941659556386611439677579835088733934972056143732957156019391945401094992127766510951696294392223039278019082355021236275431093222251100724408409373566362237810260139444459884849138594101783734170348580166944043960822767437992344263784490601430226185540715117194434616742441896424587048333928923425659343335651474661283777339268439843800251657692945062260041076997553440061329856994261261636571349205768273398970309445022133384340667827476122166060150928425780152394000956932331895283322602465069333633526160989503412065201634548229086315514579639751353783299437575527447626852206972709527014281022239009773318246414931927550811246911856263117469214145320656413612953371727113075868406864386263180503454244585354971700348831812902211555350039958203622130593756287936230870182088257408182668760696686213117683108876951012624222535702110239093255380116892212894915396586661125780659254244666909510838222563641233411793827081434854198646924628671761863884294211474348544736628160015780728127372477363960023784375544593139377819483427028893769090970007412616485076590689924573023710731421527852000238706854013588341393019899393609006937114646948447395214603718947950569426955348287783822687998750514877375347140006580976925639146850255521084736362497157475139741329749252678833179108714259211025365982132465151913974519251674799661654276020761247863375104107387636738247485987119510312249637784753772852506208062988053568204845104261016299561779846229449764544669748100301542781121348412839832961830267351904711768748354849041511553462316958393584135460799942337465078974645761858125159335979514352891697303763382202992277634057126906981662535033642420827673131936227436969088549660484802476446208009093207558951319417073925802881448114337981918121662392424885012803969162728016455984523892677903549219969556971950651742897620924438507399396091551529939418151552597517837972773380465179788713521897756179494118967564590886222056963959610126309183480164769338960700312293132145150088543997793332626923184837822331566803362128356465876770986100463451562314669702972003380574572209460651271377715525032816051810720652066080820944691347297621756349012109196358404800477324968422334054381216011302447853800185254711527929147961303184082215473588152394595852711656951154905974502215423940782087104825797550869668609338091360632994489081064319705602575448751125750777264203731414872165827767995197487107185313795769451983648291704507783031279144976310434775041444556616221349941443353876458079806010705907785716208048574506337206171478087697527625165984673668528075946470450511996660625131505997348579796344308218822302618135275795422138273067203624340800431075272374887854421983715594159402659135856880525349516126384778494066822481495662678178697022667204283354157225691054486060664582930368722604037028105884784097177128283564245550602489312712273092223844608709253275368131219324789155238049740061102575274128198277416339992235842661455448595196982609328562051774472683014095826028993098242308301541077360798370633211179514250940376580979515057497430924999235931703332982370493418921987750186270479016226328742465502218411894475202318637682686315090222529869733504160531238751893596634889887374178626165237962430566011394386428725417656224411952447737324158542891951957391899795914863885971477460446371710284340290619518258125057899935630641326291621354754938380284560285619010201963114972789442922515676773957172892639815122437219610297810690596141727092116437792416792210672838747755832711064417945551163037400396640391048907134806063995085461544890395261333774528620643024645971495223792311929830125337062491934439446322323833036793408097380221701631719009058989411188736863604318742816344989750928221982433194480370425889798632560865170572453360567285662402559482964631070546943939278469138785023850706357759719358671533820502101928274626091241443558321067271677207543569062769277800635793089811465903623314168135266248412314002702499072250713971122268821755649084275226993425156506387647722736123647841343814082925066652064039906201547878389480082425751558131961499965543806564199352869652587411281227229631765982405543507450093335123728029300659636972784869745860479954676651384378639243837120477913235757229722038519607860344911165665144966087567580061948886855419355404860483868868419533646839110120662947549310338628816044172429095857785760757813092180045684618291253710971521798310453186191791286864648341790092040060218061223745761970417110661157553743972687938557348463225913858480344270659023918651450078901852402783392561669768010581496681535503215356026764618564961289449220664729698393807345021843776325248137788326394946205628041370438040732702660551114607537904211361111795109031160966896684036170955624553433770549103947991179784478034914677026183587082827531801516622823555538668413793998118833114376812946476789441377781722201725293135074892827117020125541051973013897909248601579076906806256828094629499681935689204585624463576036989092140384208291118495369313283711973412033455424930388777801066285311746663610354203958373435655140329704332881333669600706637055437256197177825187836461358889452846478165646997685684132612858990480536695391863084532902328250974635905418066293983142870577810966658417510058501914359698909057940472025177173564198707342939693360362523286864919269024412214937445494632633721034339557933817906127564346116152275165181773109075827397782132575954420929643698310363054861866345886594151435296166715131990506693806989921823046030819544242892985962341632952106739598710073793070533719615655611850820733233913275974940379550080662921214871423664907568130872883911200614116410877962859928347095650567547894815508859527694106552979305848453474983043865767822302665830843844148517927051109986259623489266911203547513446649657788086135563907761337081327399119219708588409767876331374725082853430097356659769652559219569157860187841452113459467559397552730568390777395447384841408469117238053261367438981801705920168355622554229543988686082637199155574677785225176627059562346196488812430902995245584474832465862425859259198062779219946074720935989953029338327072424375742113794081556684669842585579328431507208589387355911861504008799977712142704301901484130453073395232698568417409834854090017557954322678922659176733616325825534990122552355190887098069804314556705438785547751225957609943580222609981531521699545510140122460026467650390565935121202889935959187474691581955368210004452372426387140361360561885864110909559638567415315995092425734432606803468293539461282981580274819112364030435777048775973139633350657394378116591665852840639609784437197767832014838165534105105768838510843269457144126821316557534412216110801005062196441777395439203737432308837008841683525136916567756296397061682271961613666516973340807687779337509415528663217797637983248501660913294178288024619272881508693317317356476498808268732418657616736075237803839073742723615408735172237284268944694067433097069085118080859214225755529365324539461298364618641598966109487772208751012335196384435433957115002266029676416209396167484627086085594596149619694159644686182859449360303814052307185768475772545667976290773645745574309919885564137233445430203300452808136326434145878547787202580173498972744904411828730431412322544030915985601661493319154925393522019475407908190343807597880081162179821737864714567892276109410788328202209268656407407452143616006707134370721761930433311482321640943700448564113497994254643818340883764272912585335045780619052540355449512207168719329243770452193793639682344908699134904055101376341007201425415228843099584544464342666711168104145095542669553718592273941160526406131165309080806765028138324960688316068236116925839663497006435643445476205850640438865515325535426624283287012956744456651459968579021747834244554573997786419192484832750082199390887501330546326653234776958255914971199377700407162615787859483705666080659429904728186550776834960981115808035118500543894832126823101900946059991417618806478324110785139044513824287506391599131354515392877886004980047705752562757013402487059164611607734385267437384576134269517154617762077758201611931270093169325043431402322499797056838776927165119933914406186471699704145930490046636008312944158102652019699336962728119988794204588547648951325327729141570309434924823823590892550076696052587712050019473533381919853588680231027793665118046692225793358183720811877273423401676505851796579986444217338721489782537560316563154369258844825132336527354687793394979467270369881562964342948019205765929153577077811733204578929531414923793923620804053977189681504963832719735696613930045255948729765220134777101699148128788863092281582053221070605488555228210190693409420801656944390458899437430834167973115705546547252635665543147512216167254043769841949456488584356586095399704735104362828675780467251764901164812750942326124384498579092418848681295790583359505102263013750943292051480667852452850943823468510140002843156087727330205844045352652229859532063469917476255548477462985261325754951180403483168253444229879662623467902837680810697704900318420874155543385939617833660119023839169858780592811480908318642317644995523907076295418439995579162043307410605000367088221073376196542437276495782198322215802278012918321935323185853477103376698759300025098476326107196968822403738987728055675903294093538549934193526617601411698880076759771156085476558498026721062361830949614062127957635272661642718707709588777443813306592678661076635050374570345460141096861720334142112078892001058934895811114555777897693364452463311679295194955924907840497583710641819588006735866186925640436832759609651682132804156654934728085744346688981342592042131828041838126344115185375838039553407724707946370849152507156681681275001000685937601244961634408244795311310851169611144027129095178077046409682679338718574660518704187310889838255078613859058865165640988282962541853328524477190716684468474297033444392628699007367740704188705156620802355847217567895974908608021473050954739717217027657111956869387576222217390588263208344467804485938366437193955155507996559110524917682493063818680393709369157883791944639839291928605618040724309194076146995945192162137140405118831903149732483499852047868874279621757839078485441684164569326933875317646024412551069826312550050506155800699768642366664638576862045200746813703204410631962711835590820457563039046625147126861636335028686392287006383076062557005003750266684448250321409672445410585724606256601093093003914582816994325621706038486265132632660968412222327250102083809690702124161617421367952187725834548273572923108434232001749107673780702097700803326668993889146615048053331992656088690172368662418550082562776256369274049447823201159464345201761834586879523251956983426445288083610454821874690989484896384747538387380353647746474956843638617776897350617523210914973735970088260990301967013953246268775708048650423449038124879324179803496682172355284607117146302571886083456429814064364963757227471159770842806873022731039425112540675353730037712852664459906039142563110459942611972485526708605837367475079135534085074996177359015350337635636387617057980237864559249928915477707188861602368122590886488664793381748420827189022562109552220139339771945743801267063024802129341945704426098751002736992972513148556495064865738132691030916271573544150788838681761271478995804382196539473611393235467562100808494047219593788223706911671341569077277734848990131242956408249646428571668687966286530906844985383142163716134596965319881093653551697519122865347267286733199561774872878101699166431603109681953962548611028099041053521788327547824303854863312888668446064676046507705421054170491748552417048644428052877574271877976284644613660169687288803231110726732301230865452961589609970237880731997607974226308485640262778135507835368989129591244970019533766749442137238886337629484457178885161015132689434152874689586040017229053596381227552756770917911546054377590341481599981143026620935626404171720089545290674886665088367099558748329158524455641215449863990656515762551805698900319476385049157635294729740279255359890215868640063126643442409135869081159298944190145135006344655127972942828882964758351754899131735748589179026990720898244908078770036396625632504467917620874482976934955616895923827653799243484317293771579115468641295076830011045568001159990222949736356318301282219412858128210773184407218387781855563084306628451575461803833477671343153904276327345836222836141293096024145865970596052461127879412609206666626860160472198109339947512394111893800586235147310017738217498760561614115430497901300403147682324954834552772838001222749917061917942524363837377254450972954797312441098959392984434335393924801505156281852066448851260231226530121159302000489733425741806071260664625825785551212143325827899541484238204774052639830997694566540883067778880390286616425566360188040954477474347217971188158126242343201718598496235609903884743973155251879279268375971584247268304164651919214890640274912971541102955561169590648060318100345086846225068585150321735755562297352080942630816497586426008235200459379773607746586869829898043526189521287246648634288273634504276092141663914605563212544402377767349604588787437522448066342872259401200136154467992808825240490310068229818284103248411066978604506007609370972281673152454916851536611671828622667311282062912486052695744786426509410429264621206471974688978838084805080918544282203480354940515636132451569413349478646047944307973353747442307876104765553846110338798607038266753205389955651194174213520874510994397859000713478922314106049415213432328786699382996551148810060552888407353918736428753044826727284294114848398417339145946616856411716387542337631193574124017613065119103179231201683956377342294513550200416609262568052814305669122616879042617148402416760766304618955267504571475106174374690882737826226917994778471726838211015375583031208018295030209214062417222028004731237786400162056376979215700967717247772430039207483824470031334571263478517525748782544025813414906552977643142754776948628953750848317711466169245720111823908837408502021103847021679300213021564125957391100473822521380621620043362272136768140695416860660279851417090723798595473525084028598400775342861780684551509352154907637352041894256112933018656805277892112328865208432979535890629647849712048087459264037952185228331208431453419695595047066217061254994230396929890926006832201258077898411660146974561927573416271686258904715408806546650553428458820011427601562894166649016599214224700390156285172818073673448187204869332699127395176995809132040653713931881914869129097184751863503482459222954314307311204795379027439882712577533896534863954044411166325459114157022090094715405387073591223686212898051951529756936009696894283574848067971266596000361958002692980214636857095367112388706932792369937604935025640139014929168866693731420155425310636442592867615626237221887146348652528569673755817783652948281805162330435882698994658303347359940710870647464472163233766173440633703825442233166352888386558283517415039276618512056361648712985011842121163191758292002409028575500152068566595901249791004838028523177441082563201598141745481996456015252281281511042281943384382416839429697462102685804778661565763766536891852656085010998996516640057364398994275556784504506924887758553946056252655427155944833309193024205937441089193171666309261628771935893704110323702703533427025730585944885993715758207346237771064090128107886742515320662084910828162998026693246755956185007568344315902306681801920128233783458007490970080456557195964942251234359683991049404631430673857843511126777359634231239051727041886773721840652740920838083009451430982566945727170729110769123453380612772046749456029804469708136610836332487795621941505679753335894749529443775545733233945756892911571743005553742458939748097163809512486225394691746031509329009037782122262854148194898770874136007837433687922469572322831033472322564926362175049820120515995126379110573073053551109114984377839758121965618023698323430808523899353432833007232096206713962618352993786021378250731048375024174171061540863145531411352143344711645032106123362375147095818247679432931590122589681204612917879146615265587702561909341826944823238328067488587223141021669472591581068715437915099836443740869257942139106878466427808689605459017637099015283846786397266816500285783427365412032050325756441724667266565688975942663778008441526282203055211512154856793662341568200020750322436963979209315045184975346367476270992161614682883445514421005456190562061358674791446914481845702257600059100270406520646901111194444362543718030452790904198364841605101674012472523412756096610016754093840544577203484227168183673155097533079616002169047802214686784300083142756569391804876930699490159176162334803090418619159667205548678461272055527663885122376724933500103789769992485816027728220167668317403868322045170322766589352950574207454465757835810001812300615051064313079166485495520472759075635511268257137253952083462891227223746880451131683906027179790112105462160657883223976095042100041708130397800009587552092270087753933627488033446757493262556901311638169552472932361452465548393558852675393718770072971346953336186252384265213242029346190453141465996548061013931552763706829520915741879836546109069659483539895542877025697224868111892464325590902295643389375304532873769582499453446573446439082811752331248507330825825798285981223575777387121346035269608509517164312653300123939331018735378314021476352544848041771994277933365919850539826134316079796343609173913660624696944084224282119275342235577980316172707106404613233320174907217707391107145505500583558127087647033672589952370196963579638699187717768892092948430894354726586282089273712787313408563079592828852511976326710571021788619833239490797300950615343139246361074754636034208567460214389715866186221684188298515992316876835290333732827852381690442431347632136366188496085636444221881712445529067503226331492097690131720634048718537106956331665518531873534023568895607985039258731305310902972586956377563295258953397630811603902206495998782937001600219205091015715909733396330020272743788938009595393791414447109962680488244316394581019693823115551099106301850945307185727303872405252294724941332938970119693592737984827064080293902872608625017655715407122739983647395714648123161887849212030493838622768162874228546729591516305939574132542191885329227776209708394075247961441639127943501130140883310857109133621347733190040408226737611584972565988244356689509038592157284644055174938871025822794286541071709551943871758369324147020895409172502738541723482899928596831582087506579396250221392794917773590783116075581938864929760234684880158412107544205028984034942395175049726137517975174299271881552025285805353353408641912607032382285402027314145486303044180091362632197074560721365992521457681117299230693320191645551329245484857828527910300306535871110259629210246244922207233960037455271736576053602773244190580954780418092882643459758831693482353292488755757441818168410996957876020240757253127572768601238502311456985504712436606684129687821568610759790829801763557562866931734357746572499790636430092866475942199881880113382820058872181773420695736677286421806101757041052169651966205055288867650503933721131847270800255401320708945239068061383912886338052431380424612206895761043836911259031732713822377694695209611681724273859986262540631420742203710515295415620957456701147697716270068164677980863510575519998808084947156759604414442256387268306428211167577151435458183237589727949897485332725319516140624745553008480435933355347801731209300900855692871460212029754365017470170870743792179078294588603532053436389430215871593266567592031273559383301009887435464162491326054644194645465154836081729303164832510723699547747296831251972727709948884859935853184427747929784132610229072387796471263407151533288926641649383103441170823895626376797880395415644550024707562665739058994630340037937842430155312051149077922519779194940547179070048083690904869882977813059472754484801997206935735367576235820317365594581245081261580188252275417120846145355446538750642793894269739996141588661599575751510289567220344178918745329405432766292517456920285879422609820555491127445054693454287895499825125976056743840394374374894411943002027451199801801712696027599947208318027073844049735687698392209326586285570411518768078415839998314635204337447753840129475552902881445688498318140754622712670203022032007226183501950480694296743756593882078608139327280345726999682270014412602375591789305950861287091132940260073744417017483050762218192261449506913808464865720671843645737395819176409027544399251561435112865674808570855878828410135910267681677841233645834425250082637066640751023360966847754589917071968075122229176824332242698990800426800615244666263593148628792101322332254503022756111195409181274670887110031198952211550459192131154857627708685132979139329827423864767270935452737008203060037820290695908478403737990931857559507565188526498440252296033006465891536355656205974727272212525692223129443513234638579949932824000406429342984523844887551249421153395922376276464112208968522275914252413809407758963972140834449744522424833523518806539932245715689430648518440187473506202892642729932737550607293700709904357908267024879571855407542331063280583537666295115693572751460524646996211292355915312280264430227311667847591283900931450770222647446350568135868402691928311828064885960434481474071195543155226492843803415612010662812244832571383164794140996840391208102581523775959358902164404958626812065283841886789388380871298523529838427603769383723178629413783736788838349011842529102955436637471943668955741586181129200200362715473142340336379845361642198176285133170086563253277625244204359064938210742433994238511560398618637739224889855932870617224979054029885269971685663409765670889453107589071603469081749622202485009497595889829936939461863237759390930026307865617817742675970907404618389132922352932425468153534463568368530180982917261683815744903708792148109691769882798734531732958196787217049088126430841140374787064001410131973173237169235473714333805247276332333018614412987973310405701711410109534576694762415996171293606940209579681761558358485868555384565019150877442706842047536613000078052339780543449189972759419282102333733037447251264611765918281822121256496047609706638544618146074145785161672368018634921106187723025950580481199689248801424008921297978444193517519623498730781752639121687359820700602939933524021341218732156592590611354760348527152247909472554726429688928124167670123808061783221254694068261539517119931097433768257177551908102851520389630706781462801398257409165892553107958761444686413338868413630037921046531416148096318113165801108514377481954887222760978414556265267439919999132538318693685400428479728186558938281294496799051978849170118691096500959570047542567923669731048746556120217196883974400919818537365480892453602702352154317659214945038618013236801176631725098973383168910402827358564110970534780107868288565679230113706293920621644455137124305962130336640517525184891797549274909396904274422009191303696319076940955726104237026993559635067372888322304458777702139135000375097372346962667455578674736933192271952106412836264382309172530804339003224004570938405807862422731455557788933274750175197045019606409674766492046036395681949636892805026134965352231502259569894121315510766256163444381576976413642630132415515902494177910173969722416049431748837935866790354504314573908046772448298281315360084476958907818980506609223151138765787626404888210233986525647476530574392994895957584467862024255981369491811533495451440628516685126502581030862176671726038874865021820372719715244428485676992178816552188585537852873292246235930684414247051572461477464360207815700237892592990045477392608442329648098382784661232776509631922182594342509237030969548925682771267120181812644184704566499405555237478921684204479061831450379249154520097126273349552675484781856608480893856838171098228527678833103128103453665690466553202510800851470565120882474583904487729453452564889374493456891790180380560108901961585495702773049701021647387458515990099258898243922708443248893254134886742812741658323334560821469290707859826465310080072149983150172493543847911212076673155387187434929095264562410063698099156179426255473744107328137792970857384981985455001699780765194922169292685068126055783885135052008886943352864891731047270929177182721859418936967767187764339748348234187010122134917002337247692063215413618613628976201791693286031207148229769721307648680803006445538590914999547699812669683988029046522404328344879826788877149500523247087181697574496411952012023487762716850468811263463694033779915919801346911078734149530937639267793309731742150977560775982024648526785395816760046627789071295148647465979085886816646956809825215408536582183325398028007339937936492445470364208416572500364854313429016538470380659248227353217690296071129393027983297912842111657432639821831155885606313994922030861495355252078181554477963240584527386532556325870424554501615115579590978686113536445507796281845939550813363289820618075490450625420224919070342600121097168210493048478968233373261192983151534760692710474593744448548022283753139871410039409697839600460792528080799337019300915014577744569851530906340342472764830062954678930299482931358287543647310047225186151157436782424428744873799289237513167778572033779204007973948895436475108628990469644910125026801152484507351322372113755205270349964306953901064213746601935475193650934201618740406476289352975967867146644786044541478047482639609265740095126209611686652762585504053164238935210721599636736877507746407199747827978333234411128916741817057198387679150220966749706118704825583954146193321502635082349403051700265467056296150916254770613543205539215690150681474005465569378775203046088653680840413481403366271767890594512572968636317600079697448530421737544467955595973464969955855760138221900026238679269299659842076555053535382874802107446987106136018750917975031175181267176243043929905000729413665207785366528994763563534314000213802252185708563526505659853744362004266856610568232062871215650353499815166789447964427483340874048566912728619527828704184737649617838157971520588153812340556806213118193377863356359449796414986962572641765389948557640690824791991738782180326980532947878507954080610223338035722245196887353908463023284341519505271429323968784419760063420508211144959678414970828883519729681345052979793392716649391727813977395308094580186621059867595721137836754354380531008964428876527396384845665942481056173214860448668206219432891463322136218598182444949891623295740257438530607452152588476676291414638802229747014936727096350247374542395579204579088948189403181203267180119719171864779574223697658481408516259874779036114093293828375978673506613870982971237998790296855959544031256750697262737265836777283265454934675559245109674609490849073224481409724933325942106840290827507588983204812019907710197426197597816650774077212461368328777864978441643384590155650732842792757687301131942984717033333217951563462296228974401137234153047942430111718603335361839267496525622621118004780568241080428623659429524730754943736062989300864791201425394380042016006211608482516807672327611842184798328483263175998222314648788177533996399929071673378938035951693644678362087446222120802901497494057314363089105148473062080276328448040918698607999690738692577605576535749217227009729069864540745424917533458021110347920588275245125939378454449163845559202730367271085803789720701160066189475582739798301456393183010433505277558060893514933310359805766338623709525006393409534965068356699472327240536171270878458408739841518097597387726221591433745008339882137942334345412032114378617877535767018770044068488160817892451576305798164361195794843654414551535354101852907364784251605359897977607244842659038491513741513104522484862636150286598790121078323488926733747396797397921196313316827501743714618862023745416303461646452110980025208796712449288187134998929589080040759804158696006921545007664073998947765054705933897260734106985696565136615442439436709328490868728890593411150442788265878620196168682638278095083030975171258928623015617053506854831476166158146570097902008043506938469249687274797667137829796737136771792582479922832328450752432066322781613811970774566435847448378504097275699274293415964163617647883024633910529187700803395490942998502080312737694062266564315819087934269861042605562676203591602282884851617078073742563377763098469989706770378047556261240513715536289000327081054134342916243016987813003071011752297684953928872506684512944876335242083066202727226623831900824064352716084682265847777241315313237461687896239826263123134484142103192319624886848235931851629805944615700094703888007393027124909788761502500744077181074883504144858013369313261891285831487011215720235218031914772220891084359367060790222806824617955497540507306270537120112607773036906007979265806761695547731277755501942739643002141265572512343570849128817193623695325661406579019248693701379404407655530268362584360311867789436055329782467664317595027695659359537100119415804759796825692596771426287897745847801100031349186767020429793172204451406805852994365646231631857381674670602721439791737867570168709429923687804478688254721499831805624706749325624681961293528758866905525402186117395986413219611327637788636239441152589212871808836819365073488262453719551067137327364399968750968698944599296942140046392389195257129381972877631816605894610614856658204014537503995883531824142558201025847395564011412584559237462974815471253686502828451217845048704921409945166764710484412854956086909470286225722729328240203143901352859206347707676436859282556953541845970213765900903338473134879150110678369072537737726863449657813797775331873594962898600848707742799461609315672510138573619688226738529563959852014119521886846868214114807287639420963486246376553544271572567712270419276085231428673162041254695049935815599019887472849018169001974186010172557494842979700315903154676048751402046093570023610394171905806974428448779824496476209410662066275230060859455258295115250228531197715153548105813176024594307938755281323986827470719334171839036056673886716965610715437512647743382652281499800987035031837358734250933576074683704524720949153474872806883242688745869426314889076219437322033933683448351526738819989493649761901482441068279049367049514844144362191149315998661950457628544774099597120184813996857034358812438957311591087751333343113912070898949971669179827793713811378776661048674294895319992562577886540907382325131458733998103386496359932263555115247560116510681119411698058821361865477639436169879370849031158534111029231304550930848900002785272337743657104208760153765889690131738499719966616652966777283754833452204066521181347539691021524829649972682500485367626613195907916883614027469106750870553570464511530674265432424776521308587023183916512064525538769842702213860135279910462131654003668575210544923390212287393475937774427891243436219638449451780155212527026917041055193667796038408967856449833822143864627944994096568229262063616687259387145226339237790091883359003393382439587237633631054598086705866088784471329994903532150074507269491915979659967735991114112570978417451478948819871064880716951473933644237796433864131912202527436113209114767018890495059360595084843031056349176482841039878296690820326047370833500497337075180345504326436375308496992766238094993106748802795675005370858836004877870583262295700736339126779445501842220990293685900543117369812661982166618651746393788318795007531992101201076274783068637973748304316340857347777675910802981401665027169824425149365850079871962304252794788028502319739376198637239381254218526417421919446761441284789212346043412960263952580757431029419801905628356679874860640672594423597486739263563629673673862691816388339707364438337781565294218093637803684103250295139704410834207762273180679945462692131359308668722589846684986522694606554163396972765138985352272842657401572982511810056134735356258784531962869418082638417298200372532630600967870145381413832196652323417092461974387356093272120304597347512392832555748479423684601010401665274698315515441339615864829069036241051037331500454879602348327396278419793640302168567537467921903517850616749731579848678734715228814762022378542541545961964162989622419453275744347297202656472403577266093025123197232707319397417444781633319837154815224463416534079224520156460746508398700990082733705705143125099288496111343203002798864244924761289974011402650799799803865310666685083103788082001550992040856501998889004046760419399035862839079468830335124034156635085228252929498031361035803862526273465739878580240621043278616145132590072979818722427349976465826279515586398622685165040364395427938246386813798471547286995124454383411186866544671780411982129408077666967670649319166911446311929643950109406614347565338916271299048414973820975774348381970468449921315304377352068424651832270753094111257220380032592529751920051220150389489456282602584653423896931789196024526241851828104563480792637714803078671746172214559928865737936115819039093873981557270359771935675109445559439993824017688975983487054028666341251908333624987458942247721756546898396868966127689592924059125723170307630322923056388211454746989885474072581893631531224819876247712047011708040833020393530224577830013673223612883324883468684056186829452037169016059793133207187454893120393616349871255180889554152269874186349694585243359482131588549496122123941176266284303423389869013192216177628916808068626301240463905253830218915478853494615226267965306604845497121421944992477762086445330354805516312497638538628818545728060542540243702046561776403399386643823946982792407551160742822811304889712300973433513169912617485225016127925963868365437254703797202820908787599568825967204569770970984989200216565513244025993281569401528034424254593220038064481180905408620210196460263705312337137361456938493661863948276515618142775977309825386715533222639377521772295218708396531179765198762025521154031304606822817039389694275078812759020354099818704924967737189250069003716870873517086966286259381073388630756637176840291534412650084205211692741332205051503710652276782908644006935750376101968759857773160569814194372552197173855075666820325539104013794652303174456777723243154370714531364058526615156166572372423026861498190879521059984767432764381671643567473762597403140409796819878403137366044128111856941057671841278069740635995001531041873294501674028538527979410109310449758737733072964474874141341889566588943815103199040417404422536659263860147653031406460115464351354212404163936762675752296729770568020128696938672992653898946157199953371397470299960250739876636549235975583706455932777245548114215878096545459235017731601176564474682615719855174135171043810632244239234285888076401584058890666470073804992585174491373540417079254406287695244124572758916613079303175019486622718276165689768834052401554731722099286805155787503047713983546058738024799111503544489614234361731375893478060906838697793026689908305341437287805547015080768675290919862903131525592061632841658336817657252470183169329522800518565641535142145381722589446354072228203258284880164551924689411601989892945484310902249299494432556959420508176365152570223865196635438805546625864694480145493193157185413251809074324808853182400369599802003827200964782822063245476291623264085486934042510996913784414547744872738763303207588666583305312020620874466723284928279107474336981701090280202791384306084467094868920345091999784084787809422348699305712887036127411606860815472041802594863459034762180991446451525667228295919039609521861463840488841835718241396487681703770396691247754877525411664895480945980681419660359356921888656489246949060511109156739556065837812798542442470711110158452626078713752129961726945164977790219686657058890633151018468200242150203326358789713306626280972712185188489165519789915519444244133459843869378220280891872678480917183030213841117089286445434571982486804339545822752493082667919191075779060969473621770010755950802201908530428567636606934112604150024914956803821441278185732448541665667742523297903902188117628111018286654999482252221475978819640012855253195352851492699843826727067638599671648321893593171341553392714662582074026884349788875596537580856414586948623349731168642397419270471171429712674241619049213724331951155592107700363890780985360838789173984232964030368074419501491382272479637124402985516929131066345545054022353246031259686549524558706572685095400714787449242543147151774056711476887562071341748069595820562183976736573323538998097308797719523131901683683273856069944751863013188385179249746029437757932245669259725652080212184832489289047248421899075308362088838517235498743194865917648382350538617627582433069016886060685613280482151917951450907618475261896900443862231520327245711215866688231752238094765000912280096041520137298676605924340219365085678326366884868275187657114649784629064326414893672513549164224248057921269075906516194142111532172254675187350343137590901390052062543861555623387431384945551391607128185297738640065595307422367978851386753222858980347776070846599997453118133997271880469249442424976659145572362616226532045374080689525650188573122574172226118374477636773974264608526504351957876031092181459417979838329675199856844041570192821920509420109529072419504449755528275458631102381086605877868880046493185353901267975024884611918023739346899858530979017607202128897192447299643978706098669647838596290964606267417370031495601858248479238320690048377235400456041462901834550110845386176742758111406848589723200050397855018200584633633405347933390318930067344968225917798457629882976784167314651458707194407912290580702395973254311977330049168447505129482729881908427768562963236605752300007263444575111671035391736169344077939082196319267135481172583235338760731417501314963250390621507313314690894544632231825946992298380645920047715581031437225865651567346940083193952338282059170141410933302378666077113014859652515089903018292128869080503437712607105928943126929694410252623762204136683777599987368829830772236708697185920443354501522991811315053328156864803287674975673545773001555083114162919337276635865514317292565295941864439274564238114283386542574978691692682710543067226006258932430265553755866941576033246161236322741700185743073969587788034085394993785812889112417471735248171601895229777360799866476308713048838977783684640295405357589962173382727683626327265364316307077725353805207242995857178471921352707670983497023900652483313509585961533149932571668062085901759514391882959727894317826053360347116975850379824274376011466970284874711090262433787752800560331379632436760091071360465376489175167201404388581996437945639781206492975502565286880973830247241674932568717619626686651158336293429639668179136344370680179582065232792619950272951878401109957464082418949035898877680152504128933379472906203526431364511565009141964114230303633008486826710024041014867263300540564912632220794827816471012641030371795328422758813189097960029663454670957783292822304115649680660372281934071264957594290806020803202033505401083587836544467386640030218468964814802715049200050844351694285356199350827168889887956443408430167553264149341675288725201902886322603771488929554430278442329772334506288546850495106950571992998921307750248403855770806207293850454000423279561033545007144097246939690828311189363570502466708186893198008772644610072423836119611018208402537573444568322162028755216919226866101163907203558734112416928771026845984222952987883696743153019785180187294241500122545325948569366695208892935642242079408570157103716210754229660771228036717648922751729340008208216791754994919621552917560542339525888536661264511960331911560640795423899929609459978729039170327732518492045879013186988975924218509133023281493105065217550049596798065158582598402968609229966931388795060283013311756746446642554336775448231073874653444859052374174987909514911106908170562753581598950256758723430573103478417297671163405454488256953497733083195597234897648056509918116028302317947994512483215289739692062069191129972146424333197502133830655141392278450604659066269654296005180197079292180616073450637252333628371595314738250851106944829120804883715741443408378554519611971479733693457203365953566879540399951314439255435048754477123930712176268967347506311919144994111500430306539956478124295788189286252776225335738965231923611394188841705615079744632530661853240693896995215995593469838048921717662336167928058486777989007153727048174335769951361645108194523593288712835789341426397598478539229748109639147506222808537688604000667125046390186366822433808722780985855466385452267816048486573820215688320426470260446471509233391815534901652350298992788268383574077268266393962229337593459319538413687610573341672022735468575959952103999440229185196368690368124495994085341182223334533513277797489204740064922547410928426586935352994952828980268070838816346394089286296831611433927067658348752348485235485599037610813016336424508528881608304974524721875145587395022531145595352361781015418576701628598402768070159835660136792459363950193407207124087894520508046371102905922052678313906987267664285933806582800599090747053931458840785406214425550376065635720292238822048338913630708943687463876979790916295578585796534143327233870903185979493647013553410589376962134255751949157245630495647772197930129544264566779272502399012959338003066412407844563694673427562695885185540957381434889314934225978333378082434558137835395023445952216268833785394797818830068995519778632280279709455111058525366218717095865147067975149569561492672257175177831692734851770054703615007621215466244682907695334701349445556066273794974794350749310715200696550465510678286561977257715638109418215975351668026312127609696634527302521940940468694721600215186397773149960983204723292577156103684129050995041556179609246404153466846682355035380326188156749608721213611841083117990018770537967665726134279129231003912209041049335990124034583428165367035896453409200188049069908769125103773701230535536128234393093442630487156375170295496104300705139773230645039209057340187717811804800951352884901502632290113396682775848635454246351038031970523344897067877431897476631276781800990940425125493749665296349421969829173716861884524033669486184299122424419056203012513969447629838944513655929329237789265634875398870421649323540772725999521521996688824670525448908002434093304530963142860090014028983935620216724272725048344334080163346266928951720280717474563008967378890781975765517730133410060271364314374972614439082108880109778094293605885714884782850659317802032979203967221683067972833138768961844463609671272858194135506081112109972542341062924811642426464976929083041732156510798552200509754358744390509866553681906117195226256112801309558581927062397609080816660486455479115419294190523522510435639775523732893473506580492170882311629736901413899231910018119161159187352506096419563736303691874974870685605004081401460535982839763767544073889587999392265693471326543747963655998320286179426975733658679243213506583144577461972065884929467286558171584762613378185767683637495040558568357609450905977173968589991922072692175534186211433700216587995429462404173416059200943036453464335625955135361824775443605154511339509256839960330830198604851149403947428076595245197720657168580156230227714409020026576667567325450874569546374814004927663417682316242298630497703671898534047149351569295316233103781558099819198328499790395941742975574473294447173718055026348931756150901155977932872769884251252106976746006356998653330656591066755877702863792587793380838983354951480525676487015917424493868928508374897834342418485292686078684488966505802985180266383138719866942946434125122036941723231992089318510861265919494298759210401249644272034007647930488707639250208587224388860511145634167067171073560605667844812939087939655431113111909212417301335028980125362059801756499747819763452170473914049246794583994634059058695326750850748338838534529763466250252950593200865156108390948322042997649476145288143553205970665735472170896879410430813001565682027920021919682958542010665609448479254080335842283237171343551070571634997697148263960344718785692806826854817885443825739447066495457193926446588615025957436118686481923986339844579410987535613579561052761998685430660523950435409065053749435401480532132511156394540012693825854259426269933278499297484095263223118747716121337919300191693742861773388491189131674865120324177916743128399094121504040366129654171728091819866019317094416186209814842804645379301980861618682736769699455672449201344593609285648911998275200138901097050316229529530465066508277058136005580416008194581693614113282434379658507815025388857861905745288105335029281761939071109005221995059631605012823776503710452868759299306880008637214661339869814320722580046184692720244175013435989882611559580241299739830713248430990363791465460677883414983090069294349679767548680524291403015731739189347597999826786534686736985135341282820684964392994062836831462632391599268825111885637972442734071335531182699254725717445255409927982764006287693843024843714052111529624418349001090079201441870248260833155450693386397579823400629996722385903144746420991262521447951425052887798681310018607235526192765136689486172999690030183400683246493883952673252144384021501204982391314777998717087441977789878624530577128748258790042158300293908088888862540744015886418917856617944381909980092179858378290537853457291100800975004587457656512986817190597160970125275169447021237461523465347411126892979744836718611136336426749218196961229900849057562384068184596242876413386147905071048723925075667728398517875428804284749848830033282257728522639807633234671606097750774330129237679741545431753952484939024297809308107557024374570535864919348234852166809717565607238523797860206967908838162488992070074184224380864441354610462893328389330070638814551280740256472882657660103518381609830847344042804163855380473012833029345975908489984887333451174787630580687217554143230245093264418384963569404622012052185158966015566731713150464608437069161168696129581941591534324915456008124756203226534917574825982036141688926948008274201950471602901060853451389282463653964905110880741152068775063519764260334504413456259519702057611736897366569248758094491535235222726758303962166829194320548364686179119277192648355035039740585055640709799325300758423037420391227617523257196636876565860856105213929140203600231771742412527384416917567350027324241820005770928135096238415347241177031949356708324229053892231479745601801094434081131003906837201050310087213820160679110424654564356766287614297030997665399666249716954072505691605950757791901942401696650914894693997706953899201146409820885358716680269971508404935648295932970597313094053042521957220754897208997730647631118138672378265138414914525470164525063984568235697324650108660140953612329450270700315091931877560300925399604422526439345257676096359045119252632503021921537024817110836971824519965755610823050404149671955700450718025129838395753908675621721032627862719836325278712489524127234986649539618910858974243982085377876445916782741657095952157185803142139844970604252789839305467008103694019859157948486260896521719135398199647032270906937681976228824843844890039419559904043991374449701683871120534391040279016971658924484809976608472897544508615903784244196003326830542126707653149231795124047486722599840169648313884807200084195939498104947830413854384219623479473311623778346748227335318937298785771401077108942923605121127628721506327357574496038349716852428789466235183212488737735026862775183824886954019829352001547121438939915069188238306584429800571358470774807114497537011978240366840573396506488939884781251707922361588402181141784929741257327306375513588190352502648800041183971075977208763204623953664735940065740305820100578781924665385461429591822813475097335253291154157745644097747773957929330491092734725687649715563868952045494765277929985276800711277226243103252416708054844578633189924584465812037336254008369559052114022030475144366830387554485082247967844627883909669209733911402104937354582921686890494456710710783343014228226745692541064751500152703476749413620618864956428814376195005357010309662586889777923159065795047762466171990741289436658544564911278828353318959465572893934059140511690298963732872485202750397044660992102991523583066993936135437037676654881500079047353732292145978402568288352407075210624911472609211657114313127391121942911043723140437420551558240889719809258896765103528413204547076553073295788078832774845921690888510010771879903505247083797587346453642770180251199609251748147984205495468743104706337641960232401617114292849596276678401633578976272081984145508173066296810087177603444283593090367894301940756972913313050435644957161549658429287613357246091767706366714651189511255761137670800714880584829797449021229722183070290355855275360950340495234303800705414556310481488443267502111464896445933416715640816188913451029055148243224360621637586029926758635218944471692650736865367233138347621042282596889395121258802257063249589566583323252475403351725365927003534944887904179621769927574943971993770285218419714359418057317396191131102459155604384203807733184045036295439715285489800376281414552434168459579338662636359762551068560426903854623186794958819747615402552951983239062735686847353700308414184583269175501921953369356857638914547698230590195843794317230977110154832630364764739452822112472116304533779322086266190451883433685315993372237071594764760245122173428184001374517135442651884228693283824392981972852540637513482305160768073686710944394789243892597671918980555536398911899968471984045367604109544341341675086568801352543064071353073303763040827514316476725060455222369791477197747107783150116271319278049834876496040026697812432522359358724386795606583551994476886410813861683140516977081038054970750431341464684589607772712879803478047162555298526071086501499884738151152888425697603830724821402106928804866354311492502710905897242261785785155161740809531653272927620957517484280203164901665304350093441869108933699179091454170328848528069861375393040444002563333872971537422178627552405347673901055192942775556030808352664142636922713849237339077162229147953313271534373393145255792935774052626461623634944001177745461810836508183510648571387796095632996815477339446555429126382151759429862007900184542632587383375192741221673247667371549782364872342745601603437586542171651466524679522910346529195872616704023120572894874963330263790781591232302432715533185849035786815886198599441447715900322286416792320734613124980783679331384176673586739327242853883108904226067063820137770223277305488892764432968709593370407770812366436999659109042532370037131379299187382575585266528132503191104471034993979293956248225495867532713658494902697408656341900254153446379069316906518419515113333085784840494265745432329514465369718508901314777002629539141837398048836294369927933278193518961265910012291665716501457452067812258962329733077331577074429134643905063966052054078028760816004649290551224912112673601064301342080952872598732628495808691376130461670863293968912711143841409789435816114135980604952098805614066677920160865438622593799712717470501350361260982282415701101957187345114754701340231537998796440281737489038882688377968969042652842615337936672385285479653663540367623868532917037731437654360043009971758008941456021259109875463233539281288821324074576469360302328280809374632178123734084359419884665470816016829636180378685258440357164762917242343300441210642972897936957477081899020068541924140996623147744992047538543135874223554418647814048752541581287895584384306231678134416086966760406724546885347146809313846938777583795452761242199631319348740546635207993658915431977563171514943540915604035581103264875038045297873301212418571645257906663571643615596769297642569599925329197024932005395271222527135680001401709187928349708296082887121558564216843353220099784904543880528293043228608112731652339594072965089619676301187244924636965792599379510272954149410734460296759600959224387860151099272414527545132080273862003826854702280873081749742401041599031197048082739068041144325964833743016883546953110984577616552272096991572898699556975782383637503035384913100058537048236026052987747635704127534888872367148025341987241214395118580452259261584348679660701591475306500623772684588680781238448957230683552146070092607651621298315171441982742687733764913887740381695946089193591914506681330255247461459138061879805736184653368147142388938802756996842406758423401235938727208400607622748773147642941995129081306439884035950687809894995577789699396175492728211265158355007928593308567127856621904192663290654642206767040047024221968466252921832548885775361220845140965700303912671317706076247192932643004902721296202795231059126691244254081389280676250350047326889762721462556337579077369404876540011962102487533573595163271990833774006525121703390605822824716077221259522992310958497728261475006058737868374409068845332724942447598385328613405382028340222233230637453373592878498537067415057093669843786584906648735876293592197336597999236300874843340821091740829838054915383638726842635322890352406196236876952730505414763055225043181471191920829000739552623996584790896265907750581348124810077184639900587714397865916146063562742848589798467957526899287523954023546124543472328205128129211533178571231875173301347765369288002389759422992778282367508785359097129969294799726086035599973791540548258380810071840920764159888846537332055071928117852790556072046296225398538232297554726431155564861568544418942599474875017318612466314580267300534039917215473291805188851643925445535244124272997008889439083760429996744411777307332421898782740450327658664414425238124184264087854341306808875244827221180295868914619900596082780565958803173407044090319781517869236052203306697616773077503356349919808925684900554954688511921367834254220492379096539765899731573266015365136330877835492942826687424028967454694094702407071348526628507307886848363202426839599056419863900120564892036918804608664522599400684998563899014543301074677039257868382164920617710449728338283616512072255694948311461313373176319094274063990774268718447116097894082258707163031491891979833451483597596202729658217913483922161257308669853264389069889440202324792082005927130430701198423176058507588343110573430663822928804163779510148327851769445096760519513841787594547761480997554881699066102611612398471443745196944087842507441333050348410200432130697795120024977249517210963527230803504930190008348252327227589192471997565948028480068636136871559742118376336405487744766859357639437344556693761365199462858805455248314248910837494601544107978830121942577747549082008794947447140541223270030334540139019935399388143093792037425378382115625406081302281855177269574892163253355924106619058590624991496961531777590901350063923562384099199032443656002209909679193198464669516760316207367620306917071181907714610282284089127863993438941416181168029533242264821042034172680797091148042209583643416025211423627034153261141909404027750642998051429716244790377363537772332668851533275225087230185730490567601164715674850022759128899875445556602014941705690406774391985151842716487461728025703381493100140098180786889189906125467090039871280776138867199982495630607826379167803671338113711480890607130670782514652894110417604038821870922727388846714718809807141707228697567050748788850112857520598904737960221730832300862054173596814163152420778590343971186106143894462566498271139881114410515882014573985663044545050105048717761216985568116539931043423360761390415638914725168393263723744305459068593037925421915342204654881360201504227276156077794883332762154308841466217937450396362393973735335075001235994568621183897408274270379411456867721681234234277086007494057743060093658805499015900547791387092600946544795454416832847160079725758818171478820263665548348267287879478484086846030174672707272076975941704653183849457141114668837672835466663995098740818651274884854143634916510992313732459449414592424291469337641214265925005638340071701746215131825778102316509447509464863086527793731868786090234381327015376496026281724904379297956861843045775736527496678222251958978371752578022291460283782861337492843102617100099854823095301743468418481928924264997193309268963467997203484541407518317678814965462266132186166790255052467992001010188818720356450385652943956479168853473673388024448091598462012046418243685958947152813907863778672587996788603746446409630027423169102376922269760943507681874702631569112010369593651754127111289469902279837345277584120853104109326673745188835734031034303735505825091858309325842522534607704719292521899477103000578267539260020074311365048877450980825980480289746644244743310650069774789108660586774356389515456310094192740073163799555417787926310952423951217750998878566763015582171480343487346729470803728843539811812728811224390905685552783686848574121702562125750780467577113751319220076596648557631225254147975404810161108611130245321243070527421098830486670882143054607615060175116228755458597615665669066007604618105012864333950112729197691129543723977959261042137447782891079280962791557012944120032123613122769900366798381705210697399707269768201139072236395406856617975654325986558386141281672357170653399284655413270800813112289364658688978521879838470949983261775141833904080532334435575212352689358250739098921621739964386261262230293731593750418288298461525031344155491176627668807782272891785407428488828365005171719794496571724413672325211442787621161543601545660114658528502994702347020909055375124680660971927666128876703764159102214439266555941168981111987534088988190526206003589767997597020880254255670914975511525911037750101252058139166616521245376652425026130254222994969934639943707475903766047365174044944912668590468399218396865834755976557604822429277654079566874405668586707826583327811184207581958687750003059557385733414631946757999940951901866846817489557740085271797560537996172578182528715294716031295174814270850542180434785432027851335398024784443166400744017415207046728416088809150580814432958734952736062333730748011222455672670717747100374719060762707023093610208520769254573477986271566716192152707718640337812206943659041665330895398789339985978859351849332530627693055445453742494686325769860371605157063472680640120850419326536548213068013390866529134317946396321953276552633385654506814955072709421171714686935039319879763613322280256322127659249285727019642475461180267572644281922000307592267677814387230484950897190578779201519608983737280014119475349023315744467882238732145645457355316108334802210411575192331735666248685169008600031423265350908750653734392342715765857624019119592434640533885597982784146496457440016654285442671329719946861935133500658398354775871984555065925819530757002349486198096520537683937502160498097584907685117019140444486296843636062987045475243800773166109640592598870925804924003704345697371489239678060002140338968134966005190811184937744422186621811895440826598469636124273098711200757865472125855289992712406258375599587617340239679683606835727756960411451298022729228806082405012307475044918574617918558209818767466313581577314041393669411094264772768378553682666387789244722383363609229362063825039266949083886160361895587240354902696182605259616973315716912894643955823969417519861505696153637521184052707248511311946660661202649370678895132419873973530279243924098883449861518007601641821828568631841667497304395636138285873652980118045175395639534694661562650385304735817398884281728211054231623238154634569519155032103226879773242226954696320380835564772732542778701650551822778746564887498573771947578781763581358006366990035566032987135560982785044406406934373270176387121022329805574559229021161306883708798758185426848581336938913094612971052272600935452058048458766739721786640878328586728277033532717775327031909824847781294823336267541246453938554165440078085214846344393800906745008484869855583265567517555729141300395527389931735052443157519004073787748948045917998996545475019480326270527845463468700416381723875322425685427127067277652056270860359816573940841655766271357407158162615625570338429545801712318569505349317121534042301929816353476261066313977864689470234478348688475046344058839632631417998165782534528288130265782943897148833613068536126462002255963804541669852538939009418405705211547402512556954578298517924712852765765173709209315993064527671621849115611015183245352138388148843134318449934450292758786203842596210448342083074105221932515336133629445355529266753849354324846362474742956089797021785107185691354324310336624771122125991330827274492126788583500549451959710897431899996904616490976873975812907241579397506905318486764375114330310849965620897977690005286555143101822683129009128026461499010356050228750948296660528644113221097529043136991383620516220956464439762891461997916094897021994716811499904834064915617070366611127580076010131569637251524821532386722309880910087753175941606354542775292055664352725729483965241794765743773186315213915356452326026055360621000271766320233443893895427171226814541424813007805997023438507312023142190624750465766213819416437158843020484138981672603779913257687686598043453785997319099561486528625737056440426446913337399685916466603648061880828849855536347266700068324566927414008760607109768756587684599282520880601371840432421597675979419905255481952351837928309121534264054366504471412773262636690254412750453480385019571287724155924400807410708650548488551921493511019506378189686132489885072532323444786624681649108687985675608845037731758121471712912921772362992591143849507912348621092450549545878226256461306013211044754958185339128254611482954107818513935106798066200267359415658924307041096035476261737872566199754410813070784182792338746113681561294248407431018080744745070711991783330882918398420039633473507254597775539996334503782222658762969287088749864908149163589019301430316509454881980909386745674102193262311316662441579716079646735523799375601421285311503536186315970664157051202223479190231361411624851478183555228994718807026116955197483880692119084192603086260191788440032021674282389336399834958542902140825599360397001632545254257577823783671109048972282575711364872101360553120223473331497285784944537910442121363172780831444738416429646984077148954708850511434210527582649214091278218848747947760531114959765969508585015857603753339874814055247282239743343696437709844405314065856546385129743740576655772635801363189263673288274667940046510848647754360015352011516389770874665278456806153595685077997234883821268987754815287255555732034480297581972909619433965231404382916490375679424452411382978839023984317047349103162079805709340036989205503173337962706757695050849706517283993009012393549099746050722326890124913144109407899314638363530831722329111539643345069394953131473081929181667390176954924603895023768572339958984096809340283723713880854300283834145450497824944795751863442166240450796817479608459547055998263634134762723003060995909394959886652269571774570489058398393072155237635359330683741764365608571517347870824734103149188556707557808557505521248938182265288047292761965029063036640150910737101092046906954831071728434207591112545891675336732374906441388568586719869950490058968920530343837122323585519182456321091275676617133168522745025653374578054410880634971701301376440507962829709284616621888619096287634414853447172898874713606515059780096021263425977914607846853658518311315765447137367910292015074013813751967265419152973691203498165493754492587444163345174956053601930164566178767661526136763390595964121135247665201842566331165262207816168865816986509467747759810763075752335058644941320511798089157956558958853106174499229514666940776093139965211026532124120711984137649294908159043357742154587148127837969705238870622646103606196315396356161561367279703583687255359563930099271153239293111133197075530117176344987653155442673582375067691028887881972146579735819725312258863549266097915718106200934377687139764869928932193813266876005512246783949551951961581716266222118667647015897928140148391595301725613248643976153377875773843308212447039645761122535548400446636795804304142847977826606267839086765277064534533637322167327206761147631970982495403236821743424142560432882254461643813013861795180268185876272138656592314576774994834795763225241313264541170807420226808520441573078179554341415064314862096971214771016449811657144561163073236295731994919384858456699932459047566232629700484079920858633155805439046329876285609107632174791578260046334783094230017664533385844858237155782701895536476957778800188889804023666466491776628420821603515073630333711984431544439371118510187152172166391603757773891747628990608329004839132670293601622666017057323226204489577334722586654518699418001203421825813214840467643018249632437048512472898257737350652953798578173969756380573964779298670202607455825822959039319146426074100545448969104476261635497156428036153811830269948488978435090573201785301800068768084654684181696566694025820887247578711870851106712750299008176877187857858231686492599380288188373275159653236517096945326941067119595908993524033376155652558542930635148011188799314888850419605398726327370249665388632310585495409795295351664150153470578793873004784207316135662680659603680213455627548340470628896607547113869921213940771635992609810410560863923669506168726203340276004024583143979895582320203110210816446581691646754696507092692492776112742137011261437426890331847316304155716906758334844875216204835967027768989823439345429811120525276342805810094143434675902858601109718749620874788699280376202178978151025777771224457445170921305696783822620557950548396187252490656243412896026502554712002093782419733876691866203572692812224213380153117543396057284290178460150131586562219299175205983861667638205916197710408373622280548690185219934716249799575373517782336289431757698775806542921764716579415852627985853718705521771632198218961573828944554636416543783182512724060266480479017468705941099443399993777937649259997759605772547206189716199080758353595369750523479821630759867440532675930613051253243916399827476959550864871366784107402320370508411598496178854812854574919503863945114411431309058749066160519573934046897893239212811982143295884867475208251979350182448090405761184745104908731070672380052559449917830359310331084920562577372034303178268885707192808904336783700114956735757211642128762067404215997518089194660546965577037653196626480029849779926468451212085477299474398410149998469683929313521088385370168328787310977895136827787217001469551563602263088391094314064862492979591145935434475172539568767738900552504135149022606257235369832151130535318379190169952060361602379713748817142653286335790669224545905990708559232380241621071191817914513403177265133053298592747553856924817795735933981510337190299558100761129667281408166190721694792216119711597650559980129915879478013371896430122133622727705601505010058382537050541223903990582841905258788543639795112360073233380866530058445010221721545134229932641653098520271696471336940293589083355533451973958832427137443365766365019817239303819605269005756362677219264336482441335335061659840732717201552167579434714715715022496319443304635551786051590652031379731984731711122916892339391297982218752350774371760873219351256009894489788939947397200697561965638441022750768523680161436152476246409344758662200610653039624697081969450684099992270057561802131558712684995952421265673393611197210694075534938322550575670156500731859172295438638519663103304836814096288962859596555270928033456531177447613781984124575993137511393301703039665050817502900076302612079685516863917652234462725122221730038116803596352051900947467940459414879964883714654193442815942724582789788294699325252648386607441774865152952898713654587151159537740826169610819568732495025909314779859325527491016568344575483728216851464377424151979428866090658770110340483091794563601135713731996294450975971963710731695591236089274676036558820895017737585925931229528877596181602570284187482727871725365332897510053766167406997078585987801478009331135519044394400255972154950896269537635793876083703270023915434889208281235372995966777800133530912643990785347335708213877404351405675783319942651395830424389363324580558926965874831260179817317394459077986801528575658025380631016123234945960273056087426330290383557981118890415614448353933280663913198010924796302255209987223734029975782713461625446611605266383822210165800607154499492961253422428096756896702451416462912858203049976863951677530987245938692547122078528338487796117999171420299287569622022225266752426558834119406876495529673894832861710185316437929715892875163523234259233900748748408170338063498744091772597934263598790168116209087207689932366562393056084156860107881149451830580321416244079384362956474288766995621645965768852698815960330687501485730050869100273541893415525813637600880015154358893798732089893317963013896317956082947656130106835486124200537740521863323786333776367987959192567447880988729997916011079271042078941110187947888435201207695144685594424170659979652945580005045904620680633251202484255424026052165750504725486599982347933341899395219953379545971862627364186409518891009094536202648818222357513846186723437426712686174501963438250477619978538684807545729783664442369798180071914464177048217463632223149638156644155168913292470383033921505382472649309487623968452522764063382530619908680403458321292878125578377217243088173559884654243792609376380908837654230451781057294346501844808334274437974077985838889366199838841968871479392455084077348178495223916072164885061725853942536531772703252810128694367017168458314867681976807545408503109020290826712667485820697456811718067629941022958540003457338349819400591565022384861720395709306475887359997740083851617266221875207109982552981792010947515658656171855618753068404147660509885290859170047613502170534090355134278820190328552581656891233153123482258940778242110991870829800859376672819567513837977523535499876806817018322547559763029593988020582554666566642367111112446490012367284435242745495308430027117184394114511663459502321478565539312015299732141201705250515590514524653599613505318426457073792440807283618758441163212544361807730491663912295545665874514448060760670391618710143122483606510893728850699815647159377927539182915072455338719429126052386053802748049505772840148156115026515607019877560363799419546449245174347210756903144976703081311268698682262175447681999033921640987819430965837190545484325897960292294832891112910853451249913197139117075057632675418611630372407226434608218429362251748269378657163787034749970879079212976199567504282213614471618648810811302648151954446156847540994681373259277363552930104316237240452958875722282815020338902276606318418544060599953470675237049868347187870186128038106245850901572508077719695848908011480138732643698942630043172294368038855285652859034102669015168340302402226622355783996121800952530711065287849947931517089422424658710345339786515742296526254152625386933958594876528205866081279495307002004799438846957877533094783159474833884732449769424054457854133863982009545472249098656943301514511532448038635458488711592976474960097362632710798139366483312890287255068526245463822061521077171583644158374516962818891610058739378265669582168416653369930862796840714926065316306033744280477102670473884820977068261987706287947418637185456441283296974809821959895868758057622092069098505874559000349437356492348397553796533096685635050926158649340113392486580035747254519558269509828407020191440295879944054060337614183334557879893527920965035507797995248369125997744094002441552726179207599181481540454046498846469037879599649492890532708658885821202107982540738062216739280087431563793878320711650168591169557142622149405520035237858447919186299430787817227751151344202218926662673446559041899119068758928303498473364584190032278474839887528335549438146256120329055272979620661426731625499964852571264871122259659496066034679667257600406066476655126886189676001104359653101434585228163177851251150748696220240092657781555332244597384982264055105221673576104921221580187022574480190834004879230991402026614096160762916557459331299921345673993972332270126374115855331702253002653248698530012443766166763337627026346895753856220169523493694160732962716045039122164958160870492101819049471140888855752124241880660020847729294636427798389512474381486394666976193951443641645884828539403514090828169063202844760289918807075662024140758745804722885427987991028802150216884595836708944256937326848208551434763645729237004055116874292473379500976746838731878257006400657468047034985271980890526438837896703851533399362225492445704675627667778206907258432927497976239462896415811891305380505720345327737245650432315058807165553538723642257123274312331689724360033432872846321097110349594353316783289123276989621785949975578297867305855604401531021517985877472880004144075024807103709551446063187932826917652799590804651644729136411475289886926748266543564231660511198323157278004061326055854213613594185627308182915071110109132579190060452030848283815967162328666739041000801597837142410988730121616300887427348887591262474760400806968327248588976483070930939299471643140495221535942947623434189082624423764938392817577327141265492382406296470399217646043626501604555126197108082866447253449762358343253728999624479431524580807790203641212953476699096637120520208629047333019228094140489144012670205299079553529365988525463685337322124890284183230687255807262786591130169429595718801358052441581372578765184605655694036074080936082318363475119819180223190840377472828050900505414211854460447283351809355489725897742121947595839780339688448160745291735059570235577446362405994382540521057214097970669396011059515780434406922757878472026338287998316856472893663707465448808793534097890326081444011000086315836276707810294637466471696595922210971547489652220234909359592377915885882568335513701617261520877171511837133945531794978624502301054503874032614016346822637973050491629629081363583537176100797333342740131719143093544877596612267834126121486027033521737665358565033722172401612184325808568132629784572799918156000638393941316240862947310393272802314663833387405116248918713479050730504232982582377961228272196140957361433175333367800800333396588589133990497431160091606318917235486171374681323798263119318170382826263185910538441790885116338220398697562065634777465913620874538521527867882573816177262703154654550680733205076851270087666456342542952163818362089491957116374389487496711275762566723233304909181818426122499357844598251889107380700075245743358925702769092282058525060066174348449169463459023169081327166098494666208621090947225636581806293535586525932856651749835225817020921952021148223729921009431295528995588849961032467587391428359804373612300978612635533422496219102904069921157896134975561874127481581316441214614875516955660147003475703512896639376143815656073220126620166875776795911979658442304151066890795256429172694647709857718819658963410371874799832628895511804667336296942100894734622782028934119026172474231151012450208790376735633563136033498136019402313635019760834188103620735203967914023745247430276475649586692474087640080067513701494746090272048258319604409445998925049779282018758140281132183963499347675954099988100638239492641651535695391296337017357441174742986995543177684294275123322422566886913187250878052731312706800014733123523458325637059107171082159325759281166647620898522089106772575507689358394874151872095387494784481243299384283250259819627155200457894911006470244241723122427987391063020149112138357035991696850389608339045948577535739336696933580999772259520362337611085676395537144518178265895566364746954311203050253289270404891587008447125819191373987237644008603499277191159883028905138538768022783736666899547081486258503719606752121015199931643292752451004445099798134364916944873090823696054937873564174896034236443549741032617588074511787704316248237226488384476273929289955092828971841287147654722377436092510861131200293598058430052337056321334103583558987367694941404624607974430162213617955645768639911910728149900915082906456378688166367785808971888364511199653093232421626990485583022218266549031832505165930762951560470336238332053811513898135855013472083384380817743046125106488080976073321017147124428737473649000344716071901495239459713335415806495894029565720253383703286005442229416764833444841049701036680693225219959048965649915873337436785083315096062617017968630295796774148658921608862055105236882865340702890511980063162703654112279240030603542529364335220215270970632854503828465414896380272397333436734342371590467117675228713313413043226517391616267985314033542063199783908987651085341163173015153032551498731117082480140515387543475718182756117717563892822316308038952955944779286862387735962677946992870643218426336385810743794187830596054981205434248758055689601268916780381206601947063062091021561629173264124476918082109768076485095476776990621630118655374900748642244122454812717910956546132900872038675434349982896191073291833303739646630678209227951126648187554698332158689688290160944276667362901730156194891519919741836315323367761271222253199703227487735998485583103658120355822056282328232871865541652803168919726542105957622068343446398405518241087348170045485634808583162011959057009242930972015522661296526761087555470847636997001723273947183889455569804243590325583926667232569494289554869937849178381361930186397423178815240897240685018968156125678089088740098098329367085304031894878344867537889175120889532976079889480786291289535956923209122381007802512732304086664693848941633250292729847816372036692754591388715520206437336061825751769432699746140953590914734626559286923431440665574791148982621820797152825715393021763756630251278308872229114282804033612448719189291692840399989332680748243725043292638872092815932139158738398292495351849853767556381357964130824128922712512950855022446570270482353381080569893933249965265312259154080956545047421994976390901661329553058949933102837339020668000057660097284488506281527314619916608929581917637592985364785801702824352248954759732113176794822166374548804569637471591783711041196368571484883500826335941000491596408974492769474630674116236770390736256276608188977359742397939600286456496936305451036212040172162192088711981786216850892099664931529475874886892479781970576663596364332758189836060115398971448310635415894406954177119763046947341985133543143828476727822000646283753531615199830852098343570704482686722095843625060520561626452963955241637035691174553851025645872550418414497306024230961416151141923814420011872029262591212472467212870245301215660799570308465494923595522342499910660849879853631006653200834601895168719833073360394216604618556327859413306252543570453046261574460327722091787656149949525786678345429233558479576544799969266790005907666223197150715939209326995417709906826236613385396745514232245730184440326115188159716989761441820088770748786333766391403767429273619096214107067873495921852099452480009847487837385892617656090279170054916962583460228853966097741788444890724652951961073866784672320167965210115937768402972586557490618820450310383804345479012274472957720306085528925912441476671815179745257160562292204604545161204474294384260778262892681237194636876875084208454294714086094840001312044552793830334165491373251394978800722301488639696926080628453567571942097556303968869867904029880068802188366381674719451509871277821867642778309410134296713505594121761212866257931735957191410774700954449576114783149514630930134238443345937484176177481479373723792397390471074901170991737674548818437488063607623149849019387571582748334493680131753009772925131201472983072002589055714909023592259311333475968598658295086799068760964134198883229472532241313971581164008059783634726435012647539769205734126681552938046271264928084009254174113618617713914823941045499117893411005911640793078949452895372266348811280462359267517252699366927177438030473502392295279679745563193035145696396484039889018979396775434566265001948916898613839628624624839427339722954731977829950249393011415175118356972854104861380950490328000448469222378114455066187337176628265656463257311671750465707482325698687910660872814473779882521818072382269496756430679567020914072948427792628710651605440858426358267107951793358318099182597795414499758982096948874105227804776018457946075971983774546942772738763088415360977409669780911399018241583799892966674754906141217256492049103931401278820008586286113738867785693914618724293343599527378397939758535166871823012627417474692275181979807336798870055599652672745434460868673604900603020604338897412620999454019195684449364298268196581121485448677190057555026059813287280820171442085812288493840072056506469702240111744982204276109158087396240057407547007118047148593361070591290548234700479116931049320043848561713800766653509748325366232154685364926581296415991668411316179215534022070023578574452968005190157513543295942160521695569600535531543560378877574382075607702353868473835936995964784157975711937661309985865066425670398866258605261765464393166050779243633874798031705330435210071953638852086905707481752293554503746058746073349568003949718499764223137907515252349343433327988238429573085181959724869612772778747703930663408581682559119813763718038057647972717343235040245323425652208639941918223233102792111530677247594321320068408785117705229759494783791863174657690293782502487212506041096415248240759238158091907641486848651178945446317574222408296820337997311257909980674748464110082899481310364427255256989981677564438136112021569728563118132383020029149162804141928789353972237422926355399997445122548609081521591170044974666176552782716410727992279261565975883376560278403112244775690533067182428692017017227530256759455907886590499989321629343506702647770059164187908178206665169445440633291463826674339242619579510165134475885895482379094549496335399178315713587508814401359634469721375631589522074967483153189726741381521528497792663308958802384431288083668499694923586106643631678007335542720154279738080538855510945620630315555447692116114989799343590592899611319061267960033981047533302330721773391422256853159063550163727862470737330772055955743315532323342063158902976171074586160004679233538512195805552601632185421111607335862856435838812158841469305385372395709590114877167752932052250228635160136715855091070641425332642093228118875620120266972566794597540662859134569709010382906569478425136138874434563876008211895939702944357882335356800099265797199290477122543240413470573116081778050244393802379392053584846731579223701041802456063625506713343155593106005452848908028863666850222687551403125072219579761633932417482748673755923342542346815272938858801314216847623771827727012625869983221876488065996953589299486824221638113633395099085619341449662129605684815248383653490701296779423314703776936654991132685046014020329105108626488217379612246400761504462406922737908098074689003183585115175483675616611204209489577194503346279106217990532168088927239839389190208931263012373793980727637556432627612239671751450630388327265710480784254347487290038178174769047076385680189510978404941811890003092248950288014190546991219463357815239357960145863040120094670287295234960693799588016303781400634026857184630466000911975228694214018952496188233642025287971350562889317020061541487280746920053172266766801367683606984369781653399434245654015278349667311850140117382020141580045667112878988933453780586291176309571702564894184742990501239089709217622111221502943179317080623772858984273787453082343557338041883158693955120124475742308854842524575995678042849716041617191684074314155249548991358906450140313750413360635739390737372375266889041032744610672414291362951456357008707354339556776943198771987359534599988997959875389672024716919624077078520324581102384472051816527510659559270137363878072147530905777142671299562824093837833060607273083411824079416332993576475468722918314873124137296571129107113218227646457813863363331107126436692869814876896288330909649612777398500115699625390339374710986912455433600415137267736187960293198049043522560682047197991011247240757951317813347780531375019870337692067838590749322335854958086129157040070027135956299039125178439885524077293255580384460167561633818496516206234698737503326524260717327896661988977285603740748661147615701851495376538049614530333852422907790956314917958339733173753414091372325137010747295084221084249838124943664457412259349330691863637918668221680829294209418887028367384758870969433173260988632789235491715050070406581190333540457040473595673750855345182910692134352132631493104449043393587230842106292063008614483144841468853018286011328597883763964877528749374605035683784422765781551317578975008899911174204359678326802692544062602631843268184103315540424215510370235196068466928840248481625900346956246203287534167428205280883413384265669869751770933162510317663100962794929841412297616609857536914999747764661510057289074940597537598080001541050320734444864610361269446921886668576958808186186546206979298635098502604241750848083592476994747672162570592482507824116071252217150522205921630097756572915121910706320354828852730092111053795284681503320394644273474806077903555171855841995670374405108141299845479671138806329541338819155879670532171234667547832515149387024629172409309521993861111682950553943025495044989721879857007760521885398133265013317421622113709238486114746176789286900151949237546462600013036858974887998481861554245827438880112502925159745787006621806741905962186241243829577794797430374910512463882415297011424764525123361064434794067956450858947336292634454318640756112340420473999526505953701170987195590668294063595195560631021177250292618572860084412275540775352469748208647481384722664534852138931260056453266703783645249814899324378058127161181529247998702164590787178365020393586504581302559058032742069918801963827483548283156031330811969996055605422859440527677621861498098066975002281032793560851304376767395067572811727205853477795727979182065086794678844615376800149904989751332030438535376572060608682585209092585975175522972703552580266756662949394078711858568948497812718932825676729790454726493302362048582595385926266116780945313116891626765863578305867168117714588695114727541820864354516535263930213502714071589975832407222038989726129311231835060030397200024318578674830104484306129719510766429376617493775139597012887921804341058527838660338451690793566789103035310286807259232298245038712302677176009788502994942408341552135137406150863087511087908060060933998300417850655918375643954254213501990410942433096423066003430514190803594933982119964718070108946878155042214961538920761005987767504464906205412950600057182728072411875343030451079517203709090147258400908407626547308897969183018101423720263480014912632747076578579730977249722726660065180302971146097854228889026313397399667125587805818933546884931189185583390724890518003953249727009304564544106389427323826550887893421371482933823964325571294342692220443018348937536185691917597342334285229059352659574671940778408803963763430223063688946135507831654992357854371762584557786001088535529177534710698905931097697033799296637220805851299007638398503845958228702533379354820539676025971114934325105243992763178892452286922411191659607564175624463802212266319994931735261069968697486880240567470629277093468682212792652921144455051110544008121419235100016157312323243767083943458660221162433785087391728025132515955254182708562994250835696743924878004278031632508044519289978463937295819589389056632904766709082300108565781574276387605777733196413799615990825595436076281412970136316750637133542111615840528857489842017166890800804162865912818310831307771489133207520010042700403423477221863653447482844343833718306205695547159316259681324531177552213400089890857799106365382784888904025258052099819183677398869750985861833545641389647041324799001334325531257613262230923615352259349676475496719705287007594478162885537032148381318506828020328164609784317864283887286830020863467739867982433259442347824555518723823089866253035782706393474423064585966309556716841459871614509618437238025364381195418769264652368042585269192056328418332338835904581967150957484104547265279742744400654218601547585345063815421256256720353420606012656466603502802874905392876748050472612909533145482238384612553412839946383367459550959925867431258067011133751674317752763106132456453675380565665472210873165610432327689013611473943008193445434769530289811565368712983928596125628484751688113779635746883058447932960624600160476231085953862534074413299120184232141612504776546840062215863732996491035093746873248087571980452088439284957510996909177239453551647720786003558974659579237483662723497298511727048840871680686060441586516523677220633114124609602502976360636430131002931976752764425968685309357156534669055961757825407843831478975152084247517316980965413835074926095923574787673496092195792360956183059218273260743199191821950787235532033171708795072435589712952661478536911383037526631774636936008139938820825679914076329164543805702014158067059214067565210938699957872546855470791664550231096503051673904124337459810084288438978201655157856578050574290028204543769597643489937912544895715936301341069635380214972455216267687819768631848986428246428449373188657244426383747733774796122265323306895634947651923263733821301623924054640753557539467552891703136843498494831263457030433190504824982565363724204190135772684722749023947671919463253088921288419636114196031381448907089789374687019543960355706790451441514530495397590993829588906329200047925023795811935350790047346233320167093364400701431643240180693586349105969308919482175107209194549256448921248176345383857327303004795511063203813173561138619282905939215890341511014166726214377380345406013860066914391584477103146518640527585149260469836232616594540001529249379604623605291497629776190272226137176435221813280629568441810996199526450790947852747088463301170115422576032844190100150738296585578559195515705841171538112353494316310984699330448225690928435767171936126857654008182761057493195795014112839812198479956800117070072741342787561501564373713097499816168029281426588200641843456610884384313731350013569316076158752004767186691002154164348336541899596156338078792452157539785023111361718718216911060558686042861438997151442622968840927162456124775900706680181483114802594856202786771950652663621260294103323451257610271774120708486709636479124091244163998012989512335255000835623412828625368376206764783434387807490521371680281252132196964122445458523678355217952763382034219169464269870583977553517578905784520471386666562972016746692300340881870256697939469025923493846989877473455760216176621570775469347780700179814321746805075125159872203231890311985987305821377892621039801916367604102081321994890089868582863428778860816079182524368403808809044532551569960335125631493896752963212105972658927905480606986407936135563693901867709499792163209728167232071736112919186874858411797509266892085233324204199181340350320976727282867459698721383545000502863223014459342260070772183809051816234822141111953960287013305350130113789891320758355771071775955257072501984067930928966446405755107057064475176216845061193528475864442494813994706104660677478846963478642073577413870089903109956244024046815578833382040414224707020128345956294808728689967886663306690210171839776094426522808400954920994305983205653841460781790905170764863828778122311171900581225576902273267689735377010533592178199204962885429968351677432795675022881062627317038764742614888135835664087897658470360334047041059042797723351022309910462942241504900061199420354763558472638779746165741293306703974084175111803756073726040883150734789343244772774439801949972912269814051983356323298671448627513748528149342891803216073388803445140704429927774742139307307098933955990427795301884122914574715020264564130389663177506107312786365258492503278816245475622302781668528709440276565455940403418805464614837010725618054543391637318542231268512485295167960115370327843840928753589584309650210489419581989492727026788678970335366438425632819130076577914168849574326337295426906771052929184394737818802389373343786470812277383268739120020500073365715372474405433962930914415630689324431326549807512190561067818542679488241601664690833212614662476099993049322732511707741520179245884430021682548021828025439662299877349172969388005554220210929157277254916649659759145179998480576753583408709335613400940402831134293257750216087827855845017481701835347236329774333173159014668849008031310162530344511505352633598116352860398998997174544804268556447626709652666959330000623312101054164517215830860798465991893700890350282895281705143801225692788008175346184121593144395640088326269865475520678188625728904952464144779901478265886271594550197738366982142729264925940591351668773635067389594303953794092511200874169274201105655142646286664677021983923420126769172799138218755901485204106713017175146676466019939604462034473606460016390966943918967997567935766724119147550968475516797755285853512954855687675450138689281282436967894977607862776022595039257968533637683292198451193412701655821710913950863940163400456991401956392850813012320536546645386871130172743989596204018185017681716839740169591408632120871751688244755131253738581973645504919925249699796018880982113844590630702759978820395183177319201436667735193414452873866855280533895105789458595330388089435156760155147689843298247109381549121786087242569010206841778263978553727390356750934119638004745860598088284799523249733941900832793417639987342061314890040766500816494341812026306310348153717669515967295254803887864117871874410406864398002235217339257620974020586705443772440827253095959849885725994019440887429920969849532576655599166037408711293482168592883078451486301593970298469141938614568459183148250752378074007371911089776860814990481253021688120396414994194502953138263637049007171137874294843739875479251883357602294008515531470285039961766525271718522419581685204235989942335643209519953515101531888023554714262206577214709928290692939356933053890134711601247224075132286573942582289367374377612993963164227734378338074854400727612535425552384142676533654228004850333712442979200562694197481559555704841226451373290480563279123363208854246968877136333338847718960174957259723741639068275718527924839453910663422595707257802704359139227402719291004852692866725817709065073270512908516000431332517641413680312717731720400578592907936409932602034051906749275644391281300399252751344837855705271424601577517584487254027702159733657806430950175940981506236966246786421588053805946612870045996154284973579080443415198183470063615762562197440947194253785982026985363886964515778761284596293672533405728450372395719103214563710323738913106760007145606916243504540648931817488259487669779565831731550410677610758703407342721449835470293774143052408530658677746553924473350145789664491017283590697674897595942310013156893949839673280558994204388375186575492803964872479692757582164818302091694505150458830911451270303002432737595224518210941417891265702959094246479914050269325074451747471209458364626339693664242654479507840362560794008323020570588743236924239664645292879336052908313885657762095046142323344521182100185046253725336435607545905574682281683550441025535874942721593728550882843658389002656007002380959308994915907343283219339901230301291960327753270642253482177879591321262763622939316810655372676369613711883478576401015322947829904583536097665257451194243244064056784941730804638491432915609488602292865797630216518650710284696436861601828569155378449035805544562499071194150391151137737689565226090322296281163593835331506506801327427803287317035163857733292477999866805838143205719714671276208521328016888202389859925071513897698362361475539534695294389647495238407984994646088759981187885906472929757979616749015939839668615986976376688713726651766460699854959656558183809677027522427679396461824587693220641761001982639640221545950171066192435403737524596828226272199716949296222560789322249389204634234513166567404610560050723553955086335350279565863481566543539034960095202178844861138385665853029739274058266351136907954606587620877824509418204754536953926889213465405588397707564930162860483532477813528047073927450746853230912366384632886293889170346276219595918738170020610545481030672848108767435298337483528217264838712252536224169867012343177026216398008525552012351604876544042342567295338489394531020713506423383549939423141188473579709493389582025121780308011816121701266599768688247602841858500422149672873823638945208514001660402592747509643951084025286567085453901166849350757897774103199686780310406132589661202641051359380299346690624196648419809004197700318504944914880019935619501057807080798526172359116277554618566175072104518357519957261948756087430536564968839516809794533726402458919946985698564144774588967076595627060080829736771924758441419397133639669297284308468586805011034027987411666611848198393251345630196077524573452500522161720676598529090448155309644997455024939331256128615842065430941910884374579789915084614697668165087395360035619752783901746991991616121494841618076374238733530986362488254260695880683020907297654933560757791624018760355041878481758454864245491475461546238948173583045330952844091032593786831034324206084024618726593527562056459964224979760466729750948109401185107349732425034422606330697903727441064672037136246742998410208570075066022003922753112657228104162442376004105827380856585033608250421009646189531133738978954013392084822994547394178653084006231243706325197456284104675741945074159518595168256073856997114017113421339760869094790348034841953503304036801613143230353036708673750473464966395482473249307948292021013369755859865254618104893824961294678409043268675095914529685594538492882612887298929378233036494573118446030779070013588714866534611632407389319310093044755764839634181385297172614737333977790782150367705504947436166926944764221382906299091463545938986961002667723932575209049123517577854059777188753105690278775057280623903455667928593795767423735284996291795293811529508607771540508972826348891262891825251146676509315365240920752098567063511566078348666589323549505661799742545687542278301488540926277127324237886820572822529138433338913044754535161165038406943829777296933980827007773389669047094016558053011193418556731616311613201734113031481278896812892513190451437509074744823529196634800755718455360588290305016145365282490024781711606215193712652190265319617749471135770340170293370534135283719222539733524063755698336718798674014146359978060583181453251345651381897234313643135464512629821684069002864967344437480879668779385207708258694265251967704671027888626820117636316122999307917119839576124000100499684299344694487647579973953495406355431775572143864636086618836651037636839060564949589432356451181751035018489391667448262588490997172533444845489894050857004909421242016178825329167449448571555206041576701543244999927728158705191818523110701828871259680248735913033659678774990820652002476818752995889937815082323978385610560434422691065265100762520361671665674016757836955413308946683594208492870774805780789412300957163322501309084774038358405404558699986425196635531841236328878337277219625577200493139322040825575256841541248467564717644600635591565184322344658184508082073513586495453590007242390098864377700146017044932886561027156190527753632840182989346521651835770463101864257895373797540938018588755283884490990383041137402335966084445187058766925264529449923741818527594508631725458572403318631196341394344852266544109632930466806070044600636792578203695042652003902148099027132224795689296846022008094417000269232801334226968072004784330372755622873905223736806646363100273965448236672690909379807805272690337253567106481151324079697959253178963375467018513951698052411218152683008989298050234375961520386704145539242007038196282171222029723265302922580589482406745133511998956224297122022310347168151593054380032069400879397055099498068865053714962053938903399371359583776290580327056560749985636710821908334917920592920139463937847049850429414575485790469046897588037589848266720151154641015286760815763413736596644592028017753055552482308875264059917408306302649288724765518598328770117664550607723035828192363604731968343640189257782855463642932136395917772991077770901247548157484706958647972106962445070366090813636972851929891469820279293000612488184928393900336544623209346603610163784433566507961371649321418859282422269391551309021729931672032247595108772283848839257998415373454743731913806784681113964491328799830664484613785542358874666141133547409932241072834422624605448868982829023049717590312645715399910390069842636631310614454764529513823833521001533138203726457807147534259779485035943918188650758695471717618212207613892199685396049149933309798165254167980750300376993556272308983760329960580850382862192639493238576429918209950046550660515796019660531850069380414888247488619719949104368030862552480774341790663084210387415947362424817751037011721600904648480978214464289554612547936374138410609300285239282957394081553881949174928251212092136240934975135996270176787005141268351989400949348112322737727052686832479862975790679230369791135839536936479718700625741139527799457369528043433197907819380008132314888923482373994936368040506340422244701446561199507041430135269688663136387568191122207380024553291654564882172426750399302674747858457931002891134141667700003656791021454730183853705721967617731878717078714150126541817088297253318761789907371130963446162576591972664687785554116790164540143892168775415981165003327069364983378102385284281230246567724743609486139228691187763952036533509481050675849617682279557750080643590482478058839476396033692640725206904373647603710524095253777460179974254493671059228505259210367464084752106932547261394588905771076124225276860848162991234116152727692957542912585169040322658097636670530086946645511260235788005943185235375417827865535573413685219541509417719608808296529873233724227982521904505861294924978020822302401833294364050515316561204462284955078308967124353656032709904543235820935621146586893695277558513302624657932368659923395180127614393853413466789459331659405229501787535590060143881271784188341256870114898739900825177493742236175256374864952819546019693806177739492058854105193117704590997729174413878166910598183682207772618913913159231573864359883520335094247350776021206959669667439159611113337166546509629619720909398574691202668757918403098525668293987894516109342717207838637920914208778477125607262537162182135367856353270891593971585401121608946604543596154097980149806072191973416346414582436306681916661328795594520190284937673459625537753886425206337248282336883985978625643184152856057216543200569957913898036306783510263627205267001623784395969971044358256713495877447727781916501933473613597407452959581684118508129809410364051936980932788000136747989585372592921472382176479806153165162251221360150938707527050838696567121578549402573092401822781861356635274903267631046242398516137317621909337477430925883559300234866962301530439219811967757300278019435094852505269639217175656702982099173604242855492569713285436909771347721978231570915415189933429886302014442109235867574014958992217732784391523172962563109214499032808373986430683988923894279502312887921818179676783289094538209128289619198622866663495306617923646865327048232895855802833406280654110590312014411776683099884404575901815943605312896199142811913132895100298792764677419326241738197133717677069234327078323510447851526615450022138346382719580420248519718605667035219738103289559377877907958290958774036376381132307490587786733008537618233308425465287602797725653645986137938030582951316299240911497767945915276355441342392865448438317122902796645389428448313078432357411906409864433936679585735652678544821591871019268164266266998567768358994365243788742645079463974902158678320510198216257438511394114598644505235079005464906135123885341989214686653085488732554919190418778405691630264669325680223282833869972748015199922975090105517696670348454697845252020593751976682302005986586978626402423205371148932005787483483340641572773933585360680526467063942157136403364541202716051191471276899632597048298629406593810468428774868159460244417402865872569779031253191620936660003971975362222121085531394987116173723627016326932330876476414971904149405199865491665551316365806124534645222966855954264457616540865172472218995660249598615100685894454594328745386595887503399508198547285788699664635772216490945219679324418305349216624171019079618077765459811250737292410211490231607991039522993914246978175358760540079526870582645680277381039221815433914068199245606523509491446343756831136929457690957182063707605004195868885075289766188202530326173819644163878644662616929749401688606806116950275144972433442395879709605119571796949455272767297534621566352007263024879983051173394874725334347051212032714987249752259632363841243059198968771500785817643844816992557912391119341738762736079584550827250951348227316736941840440633096096180990328001880049640574709771491157230021347307468530058998435008476328201139781245697477247830380948917220366732685539108614456171488350807627036706245020697176692166065724294443296372830831629893555324594800304448612628921817337092320799146878465953461824132382718120400683289810755146728258725817866655011533986708507390087464851319331431202954703066603179813603770432434525991759215830125310696090405373619696822802885503261390788733531750981327608718513990343615906330121789196852203349913000884506663488683759994724602196940576610868529000068649895182831942159678531361613935606586625447598518194890172063940785432072307054811446413313739855482491077005075139241318196594822499096014947401207908870469361388449725186886179940845280637588191923836457301497666499768050632027005754842422869714383864397563151575161750489105853965737563802456327404481115063409026104169173657354745408931817111293422989836962528444646502340436595855601154907101471402158623532930753577295219555490639949706719147953695197730559795162091395236517633067803978698399370259044538789888340234816186497605664261356704209802632994522823378746266486432385450743962289330391605455093191028920267813989468042243811411812120599704424216107576780977330554067250468157193289299276229954048068616856048636731763411067566568760848454634435075283081162891566806672811531403182190680866397926392555998100075387358901887403207537237762665575984848869996592953966269511090168896922449014706406373990905259246901595063809821356003342820070505801700697300446709298520300763070823095520059225170100425886486782571528835246277301299623395492920555911442938114368522377165250260727327674961288064960198719829557275929280465431429384687272137114975864683563068498368062955781954243236584947453579460978572226656787543287487552345336309998113200653000343803027739005801456744080627703478216057857573020374807401892938103525152980544615430416138524231782146525363127805164806542512845431317236068226128159858372582590655991423128924887420008696221793008092521328177712058590537657359377074782977731238873219744802490480536441923468306101445406110270412510349144680130523235904246252279701238316646017523905206033467707736741481144895494176457025918370797789785379190956755463506672051903277335672852090052966284072895116141885895059286602760477707351354968887112371610703936803711474605110212931994357171846444364451638063844300369313082818945850328789871740289610415460440414039509904959918251784704806347300555564033764328063901415905280537238535092657130239644563516260371481862315580532574097148298699131723113385342874917071883105098179523001361569330492071241366621469960911485730525031351347131209645171677623608534400961911316732217637358676567775606902603404725328018575580599260256025781909994922080966850149777239312503905295202735075511776819725148668534368572908395393157816757322118940202911194764706531509782361070805741019346162238250725739919127819378507304983846892704091746811508479337260816624920870740761463637556026082468217063640794250217027207763810719174505188719783227063744494925733412474059134437616778899009078414561023141997505804627222584131917908606244073700114214683383529302372241417771780561279110420862489848288128490963321138877908000066792580496245634342360654223696209382462771969588134229091370667207110648084437039639218791420045423811205603333668654313674183421380928187169887050745991480862144883210938909322177814948743075716543350885502068275895810106996489573752560056866588237602668724742229133167841582555359073479941345512784234870245581588274750220459563168012548751788842402151900438686917608270166314434553994488022265033525895252914649694497354368399897781677199845579447058275075203402208499424748708907988731066525778641718485828312313322806659664277661442220173827523296509196226004191810160805597713007923502191891775521024085559226142900588419791103062558374722588132480299627058117626242048979062514080725603124868541229444953827706977888723619187837568769813864081124634943175408164112320628109369627749646035210865038617658574990987942675679773414450627361525157123880464271035973491603089370046584801692305502203865403332742606077798762722330744811635762417930143389849150920283567067932186287594597850236056222906529205058346395415018915097110227740920658415472094141650015283534164200508531942654198397569778945870409798517167732220601354523952508893625911762425510614494601261233435146027686033088513401937423385918801449318388372447233496672498338357456439802002289487416748928368137894699036358329374907267811062882048136764586716178852585425952116150435772199201121509947239151691219840744502292222941714216195372371538960579709110665922077271579365974896322864260105596374359825026338372282021726743650992273418754202986849440205659813765141562532064663518599219342896047777154897990354458976924760217875947095715718627793655575735207658904322579370284767293233883972447374501289015046596994105642801602809310313837960041872656574987659239075207297759092108037514153865858910646712059622227996501150905182098539956957468876472226365294761789581169989463592123822714735138455296816331066052003483165326686770868497003298103530446250739374892366914947044477165174078267865594668668523677676921648326899983396060758467122879478900533628351094010438181756147457780069420245809175697552461575407220604013493112310872289290164018871743842592356698360222577925413232833708886772879418192956008250176776553668485256268573574272521696430894289394722816914294016031269941318270339205131430890146751621394797317279133228305494064123784748926235591429511659277580255637788740491163941170687309177297804543218941096465041131831803430317335855477775803431930050066307767305204526371221794392083065497744309352543671224984958496467273954967744828951279517064610771515095994090439040091277376590815473426487837600662462690948824250215182339990196513613981511473099000935693616254681333839049354145873428196071984610035610310901282065381130186883533153634849897052573711677462993042630792854372036776684992280953253926900245560632167004770335523609935336037427468473639975571214411324025203714412553750531689550155110062711926907876137734883269576562002605005123753237940174721200093275161009850026963094388925492575752064060641541110638386389422598742708543826157741982046982371842166128255110659244696957549992485464851184820687846522916170485934216437950954422767263065962813364614019685420495517902000814127070147610754766725549864940567274343481341301328000779016167634813329458663015925144246019515050043021638613410916550722572117167945228998080747438094040612214853487189054756782055922233932255794521160643737803748409471800304706036945942334672811001147987823328374102574664646001086760068823321731639958820298314957641724598077276790753046843579054848345393395149921179442673260109502446789819187267927213957626989292791261279939516488329984162989054284008649815378198952788316336730943275316085078584217535977493784685774075879414082096734854563318071707498965805619058044755686057227877292172348239939473138376451097584233155137002527111440467495479961300536977037230009056252039817897519194595071579651301903471270340628713482921736252685600573579937779170111177893812230816033862628145324709721648219589113303780758085541533641275419397200264540497713581767632300800459771155909806001675402232244589187955416852552589024578185691651957397239152422885820459689873567038387018092199818991123592677798342456154147650287947924822110397259743161283160831484901225164455317573249875607722980203740084035280853252877485295324925403683527384588099744800183061380540411812906951545840602226757528844245860913237129191971357296364698929833218426813060113044256008471805789935785737275396548731499702201881711917419336102837853593776554992360363771145557660252708055810101103715732555136908798068781264579809005060040577338941392887679560999849709565434714502411727202156304099036887960377919865445878870237749926020770947075744981152062719468403009066660046655079060408441228943855043314528306845647049008569437988807659431966827653887849968497598627817158944924379112142887312740144992760209972490441210444901574262350585572438965328248797731057547799200325529470932487827773098447270757903486124256449100755081775754309292279403296164179669360995039282979789350305893567028099200725073563674333044830301258355299745433525981314924747005300722135093085232996597690779933760025431669467294090953856601146032861127818251363975938879854225651302023888157753452950395304991250238637533948875216501657874305715556462431492501073128285356099569352394384476727844451235758275711032733413043239432602480204012584681687088865910188909354424098367035202198388369570617090377264885367030828156322646978360867695483356193193339892220591225667766664299822595428987446082357333148925463469273569790693981866461868093284369416332138446586989881461105458607721457186604314348728212016950551393162885762378387879571893291268081197554950548906788983100851464930450621766452677452248052201345822019732667571242335853909898504046098309276805106386200618486466053643392839350116653218660185943698678568876942457886333950362967170864478893432991833357007768287254546637836634531979749153640772804551519050322842750554869026471838187734836107846899121649614632928277623290912710580271186229661908368857100451103212667494573151496355632357903192212026661495929826933501886369076107983549965867595012404267994836932902021407645968889290445568606053653238775165541265889436459303431714424130391907754554127304462631330368156011852862545004729298752100438595742016963610224732023386236362440002717756823831677863132178525691494613756520434633888128099794393125217059446400441246735581125205991182626868091179479948957279303860129237810822230043689826043598617714162156361382622213884069291518156198620992161627222001199606654855011164650539690768349750027618905316987464381268718167171247830484228121794718998684180140967852647051298603529197004936905875481695387268715970768701644616760295731792417506207348517154516723658815295579951436996631252410166369790060105198050551303668924894246305503310097780026581255234760368560173381210649322115458290161230838007885327683231974126657024531679520173068260779907210745220305516694180273344092939714525810727267348923540331187395185646542275642710735669805903973823424535019934983880127579855187803952985122900349343130995727673913911936697582135869588929007355789216994577285978672927405108169207359504179294601443878483791536305732215560077238623372684564673879283157669106807184501210305426202119781716592700150159103171540352367529375535374881091984137239154297356611604692237748257422207908300209891000251647476117572795607898976621105428218386607493266183587347872035771553114764870487176999500079634093208173761707439404509664080523077144404883283571649216632041729695201053673931406225568584070998568163066354757777504317515485326749449599187844022905923232336519216439624235395411040089115215149615516061192588370391040121815935583177129346098869158762385376901696011603967078123736592811985416933724459300297523272503857314491050402379376384906087629665921947941002716578081637123103367750588777265475505763575358435250317819721486922874173283521068671440644117626422642383063118604050429839049249803691835182451422653161612036645534697005147268694771475444784001795842602901169998876682588319543329452207770482801506304385982125039832552232670930430430788175985696746420972181061600719856833526908016986632714691846008536087101732608210147157436822452894262251612860315586979894738417181183928294788300505529179530469664901724213011009989799335248890598136487828297153787648511288578100557269577462125589427465831038602742493128236038284153477713716535733928882174634109500077756728120221863628187471088950962214879957786475711788719422088894124084149924116447015689935720202629918527575681910462487970759150410360657852634098799498178045666077603591098761611548082104811361049127230531720368894432470198199212103707314375202760613576834067856455715806592625152116822425168452001583007420951524777992669389736204656689751262402105095405066046284752018603955029451370915775116416217316433889861004677171035401970216579537727942662250406839890252674656902306131668926504201554469679284471443056921220670195061205074813951225592734887200932687349987861923056049190955764563714457976989843886723068335708159265819457764929951115923653839768372064245261770323621828910583367448531641662605531728808028127057710418841079517672781103424116549568225839860991959354944613521768775336370709934812540673823572921037378969885542082399462518754466752285566279623198656676372610233000962625763701630402103821282253705364248674678220853512959187960446280664706028837066342456232346229444066040863111490742116695099370005652505602293700779842518190143513742776724491185971955670275295559065746938273701842954672516973342889481183305497562855835865971841402602240794627717219736816975400806907828723719616471833623852295581495697876563596085037915286401539096100034302044260327476446770496699389029387939030400158534238260690772736257366963653735608281921242336789689347662703358780989059357028198845306815751783256520876476321136954127835801575115191177295570514866465509183882122619371068188919825954508526612152555726518353161470738313376075293925380620322100744468748003777757864028220293971951557082213830931588891315807210814132634051799717207760167968966682722405797575617405496041682631241226582285088885053645177141470850121912628450439613484309007315015238714439104409134310461457237982787098995804757189159892579042590154438576135116971281992084149855148325859815150873799825709743324936577436873744386139775141489285936715542201012669371088111425257536316284471729401958265578718582765448718370267779079799226272517257685266696340933238730860017705030928597259347862632654233649973984827140825863993112851051817644211623410923750033584286705223730083441463562976076522114556899584233907503977471693019288931835069264462951221294634355464658850537582199883836651297436371315648995007062173299501672724961191008337023547695799662624973992362024773912040254562729061864730589853490827986445798475658804910405401063829112984309857060597351289257293814223470726425850102863236513292104682720256985515244270319580830613311060219944871404174198484716738597224325171424713584208120139049201782092121176671459883252756984823575666886353302986663065743872660846385566694922955375947096099854462329740079328218689906897924397489627563922129463930410714450205342814925645437254256008644404524087863592714776766660652283246876239993722257676539681434944244621396124073010572562465759650912441766610573590572077231971017828807222535006275916201423747727670761138808583835412386216851742403517449042722322490433139965945143917348108876533756314046740990038986719971261656322589025102590978960948242562083076243394966131613173345707344862781032716142468726702832672074744330956292786724257253005304409954745714946244672503633197550339795458469595276467114032841765371130322478414709788187115586630745484967823013708895712505056581693893235783069644024626588384120431766671362484406982348809546753288651668303458374741240356759197343365988577622339646084394094721006991197897121380067946902226117340430116068917184524754083448223498283928633989297680219529093992063128958874440737966803634039808826111260527062469316132606803795969292826611342672869054386038770698667500498569361822228524330581878198013444216095469075107917265804082154088971967387131092069679873344039713744756086592807609103894665990607974174153137646808568761050079890986575000174474120693762654700608528210900968340680867992342306760182811714955335370736686743126323322418051979356867842613727842461216451786279961504760731029590345916337513778476430076357811625857623741790245959400554859455918900581698447790224684467872080697838129080670777186607094714150195997696124438996767275516925791423186952825715951359907577261452993147082629372996134568064197275696241153104413713831131384494564001053336575083704614573491587573875887871733577043247987829502508530446214709839980508035762828815540091691690701333212302611927371743890198807735615701159101385964218531330559887212622266390741527371257589718378336779088539051915270906153390629014675048841013055731663001436430142550161058273689374292793925360500641606747084440769821134146290061986054872555530324976926596912684602143241127300952213297366477500303902609350795525484956944648135838516632171165064164282401518137014819763663529029784583596476100313507720383674182214111178329370351450476396304553827655281465250542945581924145649891958001541749091610245841021481814843195607970763008620471582646778709275724065429134810892263258547578872382666408491942880904070019166037835667967990886579899987077863331380327140735357846889131946238120603072207025985987995414161768919448207348702327937341225038521053750667033883514295238707876072605028821428686873230876347926199755108189721646171687067361926646174297557758482917864043371862898430640453782275478785398494318059553459759558031147842757644383710085107271316212455472377179205744635306496302180648621154262299450703049757607693050555647467155048773409288837339251682301472322319043709145348637028901482471048685563199922483781296457579665836195129287356300576531450538051150779961459767548589565933217291951473253798867334047889836067104966485293067505926832111131766425976558849548247174783625761083340007697201161921892353393976437361255048138820486831612272334471926218442377848189580383660649821839730441953630877491756506908597685104769634935096865280751813726657589237953620833768174975824265197731340673565316655843624414023342149935687836665316510227212383345380030638350447697163362862036413969215482751022247845436223448547457618155052914589833520506384034639317984565422949777037783871290361896575469390943019340095823944055235599398064057089149499646407825485069377678187752722013829066086711794733831855787541566450323654065737873255982554089041626936814355669594572736848556820948390478043430389367719306823719032592814310505979380811363485108253885675774918026071126833140073618866039293094189021758388216469590550534097668963272577389048391033056349576985000071827862317786366486080924999939357061652577764610970620611422276309918599018508370135713386737434917898366943030436331150237472705383859590997721894680356059265430539951019551575658907756871141436354558505166633065492044209775039378913594184246184883077550937497327028152498083060917838850628924371849259495122580827728832699400581053930131563471881830269702843924719294359220670526890042336038640908378628952354024780839574059761491295040306781643954011693269512199684447127070415150523946412721815603513763511124947238995853321118356023863055504660544833132360324055990339658268266959322306381511747360923705998675018386704049713297748693910026997107751451523785809357942103179521466035325613939946259001550590104468319121385404956873144838808745771832286275034812130433983627352570184197757054248086846798654519970447416958624751883767903114948410835923693382410495978228597250030661807764311963269271442526047901452967940081129778937710754812407814939471145061545069333555003764423356792494209377516622735730553472039739134335066262526852236356269359929266301506137829489296706816849598557142371602707725999519059146106137783855161160540902344996406943693996753903239063676453965478377860608065924417716908891343106535275538019292851349646719454712266001332502841172117573095096696607903529763170365177842967694508074827839493975440436449858185264043412980250976449504675570646834409189072296886023122114321834825670531744970922289747509964346731242233031982826512369162714424379011176288328137711099105469134958136953175882372600007296387766928233477082149723663627891515408940411807791869427279172635176493254062995675419692231014064625785817930211120812826539070298795939691965449244023586874074179308400869219926429381360595927765383900774323774071578818985329779164009499239259869667294907910461583513133125999825438404468198134643790647089550489992534080045713453475604886366597724122623543802530552796406311233206602494396824497526327438752528257598232153769406717871466793942432796038739506667855475834856249093687537628731351983748836132730291795881314673863076760379544425467112668302645705220068586052811360906817062726150798889824486694789099217109091109937504638796055844612733696869823454375805256375393680058330212459946229892961246902483594430825837402963222736367661868448709743555996706993155022650464794615833832653761800224969798072214930544743593583319506806881419521270403536108550700209913046925239093305587293568532904361784731907991669859689722064958446925903877849989501311269787953326220960544341792838196437802209902434396471934687843583535391931025084320046724226879597539187385558122236277149716058274928895012706753432917494095720415935720386015785775638145648040843222285557306359141819038668233393055361716330162467074364168803500249874620894930314163252508044309818737569440055554781045439036841516197524122424434931468600583541289816150401774696124966898271478489998424706389491968445314027030759044308667897607503071318539868239684574950832731736751740478297190353348329619144066950197463648128499840575920875949879787732218383824055658047744535144115696626084377912268797332730243429245479061763347859467050181678874489041896940461872607326151981512670436857908224157802758622961294221478708516694287522476058438235143426502944636569039572462553448666001640596515511603520764537118984704405372400513886875572484883143907933056231878809349580879723264922956772327178384002080717051356824356530217340647443322098274616086586216532637218675894427591383108889009825345832708196951792794268488399657796414330099717985679337536519087378721946218127921009758335069691051606238596207836368298061570170838679929260277797131575994210253169347813752161643082086856553581260755824032779903006093660727725587624316139525366063274741390239376919141981366738470095060213439312576704768325809915884786115401384816774850067506649454937024262101145859974303709349935325792992893478215817605725951108147329505005249998380495619928248405398550942799326968078817091773008128987092878814106292176948557891659183309930273342187552540795707340445640281924921194217171692052819940860877252377570504792252372442794180608144313096020896846857287612437399626269334733263818801259356625874996653468138146595141696324713685402858945436609802986411006057491398135532215426933737457932647122858705807795618800640097926276522943271774578641520960768598990076812040105975779351926911520177198480476582028992370329651344334200619512123727687395730248873433355214202894302296839814837490567971002016566424303727553103629023942309115095186662108979788915977098321656234388247974600173668605777117099487817221441479365855761021139471366512870166307086780918103577371853241046668234825425201168411313839896231337031271849621366902525071843329361146487846167737171829243761730545095011210692089540858666347648547074080765082864474011640452112898772441784368191794345868628178793504528769337664288232904802127030845156414758898337463351745931605189058079898303512930275125863901035601459567517664801543535112708859380786811784403641735546168385151695334058599869509364365120984232771839727686714101877872492673890291032170271177013094099691272088061037283958636317042456746149081054245543599443251969890406529191140684075930916890299931213151354174793132583613035820544597630174345154550015090282318935077084542077761878756546400928440448591870177155401602912877372844793762716823601599564216358296667267687129887863768953514933577270959910012049839235030641697439157301521295081909294850381743567854939263662558425184251444613702391435909724520019216825468952747396151261237145913088807390458358349655677983900890820003720695838924313344086022224877504486124250714246499186121481886363032961377124149569835676761156625277297645735602404949420664034569601029745318250339578107037427917441851094382256160233914452100565059208187842581052837377982653633367662210006098943823179458748154100701260100972904221263419867006234870535835066743947987663055090081794485843200778084233183162062218052218149945205118456486622991466641041458379971344772530728180827771869044138565212213782690767554880181219094741605317700176063521461105748666795397475613669984683790920870208362032814014595690340985788019087970571913383753753463062472203071066922869654402933850316814946748068118365546484630315559547628896207380531942914818237207294938164382623627776552297902832212247954695158271657146514733491895571115470752130276637733909429345599603456151551085806660599794817755111126312394379716262779663520421643044592104286298727796131105236872026229020743421333009741841937016749050098694470652450759422833868546036495493845349138130681491714400917740351624783435475690375897294115507163491675423038963096278360848213059222311438173718636782485651490420477650948185477364243802040396322017381626449016657164476204716859578049877861897828956601169813944286210378260062947276312840890089688829627132251260057044943542763175930621600718988511196100943365643244891294812337078385982078501277205857460771291956756462557042117745478872080056532519686764481661431563427135216273870474814902315830968441375091180291011629465896506388448461353397314362589853981855266182942089302958917274058244098426548028971565676671355849498698656252241411925669804990531964000165264004189257458834741480026561176695911023724468392216642057595640753150903824933494236123442940077787643822903361713723344767911769605947621696690613735355017671106525677051287623048293807555013928774114417694521523292010400940719884776512613850626474848319942126915246132484440758871570986107062900711743509277446946059712198342519615136475614664311079844122123763157192801752151236782216141850693849687159827491759886419946184577058842314178542285597453273866086106645678913840776556970869267689096533081354261238902465568722063558838771669072014531963080913082823123097660348542953220714363589911241980076069909387423679617291857843423898792977289074816423340054132819555618966914250128203989695543032119237327112217653836957292702717909674984954896877018045602201732701095826484099894400750901759500218899121030377387046131997978240331132127911651718622800788435470065544162880821421326120609658510301644342390116454646544381670821345826621257489199741504880225225992058507593716366351595641626846865737876158600445346094065148686759438725337463388694666833019015101459961427816719790578528109752667673141345042348350178786941083477603900688210666151597589804016161445162079737932829949523192483092770488366394665457808426076637574656590368013305104935510069148611986639042425099608362470701010190747203206202022412645895731858637426145912275684109370127657778180014424978098228257620689150766749335218493257800172526451872367042809475489936829273005719297381269135131924153009022234001694859375491263832541844482048677833081273539120144765341333280499886891949947741684616998944912490254464839791969960818792963202864650144723429588023305887057024957840030332767604781064155150177994162407357112860870433411059064048867127046149042940433312513399213791462059571912072918103865791832581683512061883981401784713477113630546464772852147904922452022857529265639896802709098649020411627095410865115391797335739903090169052738190774817795985267599745909040478064132482630806722562309804932873653185696104352016425773248609912381175946737758340063454004891804350252586609020705891603285814625833102211661859668227319500351272268128934409572748379416910657317558748007085264402041856815777851390469710899076499968980697987278361407548470312105303505801651702324142785359585424034122923733660263874519345675008999642222458781133358769878819594466307969134775863426231445471545407549886655309719920257450371592200393274982310433846683868035273414749918940253425057527873950677486518984610691063468880111691800009524950865563522263290595324462532964368034832126015470689530745159393896266033414074927704235585072300164696150032629617603510234091218581448638601786234121525110543034578252724863447585943000880203555975515798273661467578901334415799910242616415909354795612053869855857937223726096866778481182390838714781947259798807635819793655408717717146391028830866195997952381297535918226622912120036969558140758720673276894916242087036990820291962114457139450617095963100490327549200258286105682146372775303839830315126629796084221427151441441656453056039309347753819530051900183063429308022807687214375576129444591794574079430775627504608892278310765484762644113442366994597295896595010455884424679228600519010315366021809464999282610051409245703133096300847070748355912685008132426424994707966240729280301244336489093234152588147174148503717628413464902763054442086970165015413479466053416828512983733145823210006553892160585915149180121208334340362744880202130964041393166953407948304954033174729771663698263068109169096742339208550277233152854521080986122576911513315491022548328138975801947713919090855286409824719295774720848496931136437414112034695791014931888531101601361903222081434633650282025464680631899474627380920385822642549613471849494930182964737204993245159218557020156215696380383083241225113951653411799482156159913468158027857738904845218172474820846728492596848303606116832358125839013129769348325495625975402716024292650460215183204705558680121153375798750261225542399687116580330145438907446990991335216605336424194096261299069415809927618439560779320603060670369338021343205752933838525040037446099901005736619432246729787906839754590902482743178780535974965795907312316201746604237996458215092118627777098515917468538593159088555048417951501683877558819254274474226204485188165862948253173749933105213876438544053164705222044096040968264030383888470669102297395111011492699561617160568532832151509768390992467009443698633329765234562750625700862006746415516162352804013886230518866385450875064132423497600863013089491365421572168534146760236944538992464475312273554018699800141329733444819298557551010093997977683380445908426759306197597317686661130581271752320928726751907411337853384964772097125881425124762073635223061436013133441945480335026117229949847927162325245493057142901631906262540927376530574222908460536019579485667379769871951973394848967910806806669486666381611846912204388737840707169166058864923134568877612981759414394007370490721455011986506899546543506514927654157684814750714289373320095026463458252323299996757780299626152288457202447149470717203125479384085910764447069917095613695302372773590719708263350912912884308704466427556864842791437055766180393578940061767499874540987049076093308415344701645898084885009454095313339783399892982564247561839329581885694124949080318460730259128392016824387752443663960129427752874256451269767092734050972506363948139726802556349681688298704512976600579642565952840977072522341950845004949656096587895169344287584304193760857852705187904533312020429612680186329387738160977373978970738693691685987222039672705415344541620615070019027693909216035601131404970508532335460076318545920153825619783348701657604532705599387521385746422851051337971177948965470158984542023802462464873543096589622626276283015135343929729599798696410130769911896917043769058045277647406589147294579364426481443431908290011169795401415637726229697871316253433880503496485999234572326024542945487693697721349901539484557589802460365598811068707264142777924151522650258134727435337812751629686747831375272028468005094725304359267500849774180569147982397609068823646241744147746680982375710535877413891755590861143535517900072990751598381980975696068930251743343326755690862112184200081263480126359181786304094859443915859862247638641555583044690620677179492487135456438427805906321638711219176552383444516755569979802985493915124426947140932824384690417838084269252755921107297024383358432411233522305420954286650335074560175588982698760340396837683545956448282714238852290428969259645521443798121566014289736039257408721571329581443363994971336906233911962308067405950459882657081826185767268255240231290823245311470157945457196263865657380959812859135289059570630273902475574148180714709042421668105393567488703420170715061837032491086030544303940942579663237461645731786119660247962709094714821193925848406686006361236091384145535912701223186900708835325414276844071604397208534187627970936144359284288688609519354963456838023279240575103390996251060916713340739966318720007699036862721576627670419818647342564814393434270218232719961235448241839872507432256394642259607692913215575695086273647079592227605011631386451849004805807164464022316925780896151261844735068720191971073968191161953618370786207341950036277723652659673371514347677188913799605587579150193347657653272116290524298116634016370747224037176737165941472687757031960725629828446272227464461761206201215018815153069976675201928545653101823524239080002173447386803222734292682525766785848466482576970382939834191365498516723029582496954007267594771829502595284705031197800542705187436060498657319575778590745433467447050092159425574568250588550370560291501588189616469390553020318752391832827488735021210703174552786057994293421490281249697985454110153287220038066325015503808716469983908287898944700300435148346023908157786161783416356011993037968517991437276014913184821917143824931572204756894445849661195649900662232076074129440707880731608412391832251071687720334408408812309733147095551013034858828848947991094955731661243737757668777823395640052881710584115720066704148579827803584539134677996731088656271457202039707609167374747181272432987898272662920046758184041963002410545205412407405645252922169920956690804076232179558345714305617264132405375516082569900261272061084583283167792180073789887335129104118631138641317312142307810704093436196436378619357675647109433200460330942007877757588144115827387008729605610988525803697290420971635683945333686628088099471628003633762865438811604976499248801139388138373688575879272853360529673081063754130451922885834228207800956415212039225700310401100344041324678425271022821325090768796419929087835977740501775446355892642336968025861088285277603763199232970271285418223460612497529418756826165787079489602853855970296340089292398872231926769463582413178095262017896532774972106762148953258940114475118538720166017653361859716360487209777562325569317764543177873958060480280826544798073247741664182464357774342798283102616266465970660083929494386074049423408024004750497248113941234851291331057604144306993195986976191518365680524750329667274408010921519260591101758913861761740052751332852238723726039017377928253345357831491630966420387444652195391415266797696747442797095528787141372338901638310264119981283997594129469772700188454412583515927303918216230721820121742085944125429716351161368692205712034158470572980467144465291633241799489835492401535280523166108402700400552682642074131921025910468125723644890940940268857325188751601423057314350363103660013751725536855951224446323766167371292037286813384611172324223075223887094319199101681180473230752200684041160802346725252717588788165807907892966173700273660129065337860922730779511376583587815452622129893551161925080934684493261399753365309773915508396693750646303461557457047485838596234173958860390046865236334747344934198321845317679180990583059264587226751059042682113154472071559566766550450262998330938972428555241666971655330672908152912211817758189559605137022315870786164773537460790562983490227867489304057992632807245655267608467285273343435275924639234807909030438310429019051383749654631742139856501575106209419191504205769711223692771563765006409889912277185166101161278301861552528227259792042614245256599584074335913118831242968588584802990540569047858749878622503865246766339385820363158868247844169085118592550540228189991816192211050762582982466360337594032816979345912839711855536941023319845136392695007188435940292230636719901125602494565459957608545787525888081469523788010854727114828682492534683013347061670994998567479127982506513967543990546510669634357187209506458658847601713965843554348409597052648688665324564153749723183255090919417885725901267204387640099414767136164397629688533273963083592607289245106781151153632622604312429024025912487386783258065751324027013574182811843997323827661780821537163464546107015778217845758582389425141627793405133528886174191556707169894833947972289985947011772581323926447957239982318645909400346898098443329400525294528937053020193970311591209407541248581468501951631895134408819046475909542970544771654504646821733253352922715845900684355865414040548694691187838154417052867532002512351092315131711402161803133521692593672391510983621884749609331760526259415028543451284281624920044043502140998460654051991077480660776265817592161455293465442529442295730492939378494610940044268731487685253187351463329606744435282333448254675346622613022079431623586928006842589985647369668454549287124850442476146923109939567237060799269845175057639858125049211656282417973656768270210976377717538474054041090825751917840869168371797565730722290702303761991443816480374072904124066534762533185294349017636118188124561502506993050337223703314891372340515262075933537093879148057226702971651571653028249273974659990941639080587382901558344881419073776613034838709690845098667191133893282975989167808312962160758653977365476182727009730152905892641166133118109562237357473534345157517792539237234220081333444388363974890093620221313069461765462188546373907780282506396271007991023035453684817428998068747718418554055268222841565098937709020522112118441055485957281982846404939803823377025363881013196628382223506761633013433354112726659044114252145601107712467145440616249907019374736064078354166504604476775376604202260363614203877826625442444145376310131588763138313862771032062006341744915710061356397541441409142427777566269231789478740828681901110472842904720797212602199984443889910700451382761996381808267368643439819607946153418165647768565607863524758133260710641012771834182627442027327361102770417289569949960481981273160680222728112613397668672017530261389562703361318349014091504915719462874877044577990420116530814947588166365418015034735486200209337713217113695342644889264830793339211502797504762455566124450670191742409513518130868856291979099896064789670901858899954584227857643749278070281441897683077270463592300403851174313135313475537629633722931011770310442232453698648473386658974295909741230239240871498621918720535165284008353635816697771142765431383306282404912348081075851270905104968071001879098483703092999584638046751650813119612359220113715835116707932632130368915901839299761271926239297611310865265287262369938041850617901324551838481183615708158284108296560123239611425051109943200094010113861382799283593615152832241447786132731889158658713422374245889146380630860444009810407047757637168609419028436162702752212480954099356273434092778890614024834123105308254980886438310415376473776369241527928022095239282734758889697659302856226360353395497713835438248236790101634056680929493379540690462565450356495497425184437893642962158246516390962286197687856807136691418135861958569405419804856345238804132642043743254741655007482725142856621037454044470497036502547786092406230489823101905251245674579904059042227368726446704305500615746317759262713318263761969731583746602483211946464221009230971311185015260452621324573206174974346961939989287210217764618153966813690582832530231515186684464257521222160487219373446911544851926614978983467516079185668238043699681430043397133928785924242782290542234568142819628318491008525641815551665364452699176920931966060994171831722032321737225700127857256728950384532717994045296742243564347606033903973158785896681556448775095557214632753727086842739784100537410802906845178651669138761962026162395497149571969558782686939752099390593336057908100128300969530627622949330546188998426648450679099272690151172994397030097964014232863702009556518342813843759215000762367233185166202891050179045111359799858819429030681959381649440490815064704280061678747778632234276499809267547351548992246948184938317279485750764716215384128083403464828556085278924297746161021691068429534846268587856265330053881071806781599985132729992750548867967049808742324936776049937687300649413835264100775102475008470273574796238939805540310717196510410724642973310522491372599413138313934926260213461896169943635815137159350048805047130347959125523591036873416595577534299072184709871623111534758653886889295464487741733677342808224678585051167031140096961962011754635464834608478694774433522871756726196518525646029899654385822083480434435668633615203116711456962662158295272940287786350092733768311257022660687617501224001847831071605378793243814009173341725653794723287361851615382501723761287250876819259719733857859038760413627047522081626940236727586388881558221273949743411895772797703493805039416172116968497581368806569415486862165390187335606090295309317215737416002330350409710474454085811656308256100940052536495438154740982203698280666154251460696378680126776556225416788088746962514378423368261541847140231288139631041926139698993941639776573641338426788506440308745367768973764868198312797032885064642228690295001458899048882545231181696144037192541238411007873920069924684320975802468722774088224455555552142216792732913032166956124548598718732791637203536198922525748597123489102177051606698517976100103312584861277601083886376431773485346869779630993433999810256875543666784542354422276071553813179968919013425358560201256442212428467453086149973219715581565030967255044029035134214468742039547742501939020172553005450589838810832006375337888577759955291661480758048803967670746365251033053653336944774300691221536118902452677643536494331185721656734361353499913246826268794518991154138294100991984086653306788871488512833658231997685286605317912963880709512787171666803754550902350831461683972000996804419998549662013848998886817180484396609216995031070749255594094932247162216616946257408743888349106691523651563544528330220664821904299848025857192348111734562279847511250170922078362929070902595321903787072076833024373736345874514439050382644508166099027226629752124696468222508137559688991864831385345726054732234261201668886374648583606007323719433011867014775249564430988111283087525654795925341305433908800886919901476020961644616582566823941820117083444816466418204031018100080863396406192244364952379156594720326374945053652327142492347806948671668669655016372678904183102182462539954382152586656906447236848423626679435302196257459846046069891483759475477116179751096636727796916605748532208771571651778890661804922218486177341742898651346753020145626654155304680110155148868940496575829625424540480197812902979774756520969021135733519769384977646869397420852257509559812034820505570001201104582612878546179772509120846543712327209759656725999331190053387837870391434006807710021156627759886962332972346491057227808408610843779728349704609729244945925394804256298652877865226073597516631521890054039447186985792875650463041540500878190509639555269204780152509012491129445019554744161125594165362192237304288311853013043686615739129202055102776066182410107057057995940247946874161855795674563584019466507106139929883048337502682562100877007700952836285790954324562360270240930262145898408461964525952703073977923432550145990297802264660783607910061293445706248053308427252700628336431025601947025676390903688175245732350833701853096420001429789267797801170149820514400711155853407873801425150440950803563011616812558030451747790492775129275784220325780179875221058277851063409926976979468820708029688422383691927267646883494039811165320335940756984430656634688009022667950129049435159827882802508861070734733499124006788177099390302838676349992243129757501253258205761702711228742966555141034565226829582630796477782204010227022722542695832640212998493038785634024016431212831271709812978102201665208843723739006510172439155232168759704624473602292645364735713533475462404702039064670605223335799870336349541839812939696072299162785884163354158532817445117516272609749798187516435643190013679365392573127169262311369769468934989151927072999515142445673350832886419823122719950182698576814521287778975768210184806484953978152867262978396683369170684825612427051760840631995474574675746730288973386553586918346209022344054718406396335633946307073751062018058893247607414843803177114419673999093267535855017514464451693872244102578556855863052939405793440048325858830840912885244009166001880700524741770610033014779493694229107705794722150031554169595971519406430128675315773560862763694689815549334443963024179632262469848308890971492408885930354030400074821004788015138498199914869876200735027289134390714170098851696164105173532226177679665019776391454885375914020191863588103608240052021546108203804873862570410904709837017474087502358857599476828455954606082092738807251399918048348549616341679325303438999430409578435040723081892518067151337662222893540712772805795061714937640745112589253620598510362572722872024596079788313526940182199808441714030326544278959726210185557929045146591592887365699614294547501083592841016177353972696551193654193364666606942335719756545976754169143776251211355016565582479169809025881327647054414535861968891693134626781062588390536628695932960891519213951028481720584707526646792055689744895812514806471934932774859107448359974522547580507702080099414547077841501258813260755336995787807270777090113075679570409096924593551582900152853137981315789164877104765806260813461979452329810230527649349926514447395695756572614937305873093361285888335397929010599361772586031498092564202318294547190358062836167841898687413635818691305973702884714461964217463965177754460581220627017594322995845735292988040649457937874179357737842553779716994556569396230868895325675216300213590588209790393215650389086059589431395280127220237809337345551775037657818503850793859259517167232375146733172590994407932943400018150747667201231288780820809519282069064152664411387157116331236188613991215649086360482240160945743061531527700327791924284740410547227494579599236095196150080486548412815218094724258869300663552222994700978129059220568499739038017248101407758303665621672316898123525161279407350752210140900356526628626230701946384760444526084717274385750830480290941555832661848724258120313920236134857339748864724607926566214960311202445846002221780753425033789109990134550937330965727928622255891218404556266121831118174432944427461453128651557261891550943854266080850268274543104824396790057462194261095396962372643350851000716936186761033083985963940619479303587515620687616226142916775576847527396323198746499313222938624330048251001221071069145813699903146448155972330555791567479854379113034502044525336508427740176411287978110031821475529468596078197352659121316302594516653861076824388271677068257874678081858145817464205938736806900719308031375365712109067849783810099786393189416655832915925362084903825848881796777344506180040262841663985335088972574894359435286259297829231723911014971033318856983211180204393234480050970991089567014127358246904127749328854172002874349363434399084775040367015226181372666370266366300072607469185654741486833807369327780453058513435082994169554338061060722569262708164465425150349288495396267131002498457855319452943081992771350199137091650769446732529169062941345736733679199735853289560520594662385640747367209650179687072298473355466680757198940604253809962956246906449074518714739927948351757814539395683765797501706771420855595398822036921197001853447411397630865885522439293668722558278023772977840578021272954333309991603504619100792838354281841265003763080208457670847583511673541330852305058224275059578001674581662329944641105126747401690258765508971258153721911258626973033696482649360191114208428712759846730922178809724613155716180859097478921331681032365427327508511233178710516792970433037870084043177044728948796472242928867685689822436222485222193969686216018632654298411849758402799189882087096468922385966539882810793047093401907830302195403853251915114750849544550729469875215678988723703984421431089656423207882689634621222790603522704940709813134135995051773249290349110842242065664713121636738978199011689175883773655760726543706307215751183567083230824052913788922391645287797891730152430851349231769299098819045261698671636413389061778211418952628626943353288477298315500487709996269107474465576685119694370213696404715569271646014942156289013410663457787727546931928356205224564498522449187472753047783571165882516686472285064895217089799654449389455214056926198395553216663184383150797476368361647533349732830843679747216895250394296625682853067643679260694423169162453388613809017525442028676931376771088218173434027426034240529997552719029299753534170722786003821402821722810124826204316864769440941030213770154201810911752687788964868438156883765886832269600365340462235821445446031430478720949550193667202567343417847576596102170691241025524763569758391435572123605194278788810914442451929769545754830473554515634298195922257598266161364800120074712804287455674943580923138758669348781776476889496884449541937071083464071173594812156767627253945365980448522927148638364199452052227012014418993281087615861694883187707588115601695623658580534990462790077440497166666204535302693287023108050385214581986401257627901513285616738253140317937001832004565626506103057144990810314298971192902608358080850815897460990580692248227877423494711202183067830198914996092134793219223163412265264106021806279886568388888507575813230761795964640356836824236341639763294082703403705240506360347720757056956985028899406748736413288596278263949059580781528774244561915513710000743844654359716911234229749169507063692798371292440358200347251767681324060149934533440798840027358795232195786368420975366853518790055878053069213244887542058098139356071356923335366312620304235644979944276690947927722605331170156007418707663465466893708591341914530368837940246282212015275508149273162747178743086925948962775187858046204006164674192318792395822429177509215521308113948678061667890862411321443189755678692015375331211220052407486089403692519056873062243266253305922245957708106625217067017892110717402518940335494120663571252545660761486136736183374659435706196957650634008126254414044265964197238889437065770631944738440187328536983105500921649030149025538076125589782041303657948878322626001016889732140512121154592217001510502858943820261759746788155977699280926661519900435183960637713716184720440483436399151599150780446460290697177170663311248130190494352605649145573026724841879422876923506262174850448863322758991520608021552837546710385861709367071269353141280082056936159779981557323099807721510071463622468837500397880035634186808955777082446172107994270594028413277458775787505993114645362135414178253594636681878174946378204485119091169315230692342931348299032152829094139649184213778472276018039362953536784253754655636623637044928862660458101798656791982188309129673620594361137506824701061917857890302503638501319824884749147038336412792583904507092986946182863609986096603175105486528795595009408569409030277351618029400728781320211834045438149786840346334707276319273772393785867652075547617407459951945276838723099032793079165392069726445020667046328487582683412358402121867600373237363568280983220504961469601801076619128029209990098700651456524841415595892172654260815891401222071326361523309075006232278078666867159289114597030245368046054824096569862545816376031349311848202349607742427155566089220410816968765455722873670879697744433758022541712313598323744801691294967831484272666162852087535528132824356793836943180647374420058696093259557970205147849380833176068581937550392341467925401876514381316238422322456183386924029007148564630521219516975643137763057968603424831921095616446185031331846031135972159928351298098854878559833189837981924001775154871367736641387090670432117757955204056161143525057141607299252779308348952895872134211483526889102553782853219829941565409138240590219022989523746015571481570904239997402208981370295366406123304912312348050322741441164024068339431901598467781910312261928455726950725474117880550065784705620456951914466179080868758810045943357610065872713514770159522975675631090318411621562487294914086905599278972383862623114473834627899392162619236152541863173702948466112868358102484214314228382498026427615133384956107451909638934271871168514251584801393319573430295628139757283129753451557668922373349211460016926190285666814864589618647069274512996726074179506883040326802042804970744730441645273782020475962457738111035116925369698625996022814027091740226072105394106609395244387207096981333952348314388775754509243712619206190949628854147863433793103753872946174778851402855783513003692869299426461157074829520374239275140872862504335269852135726100835072930961160231327740520862110135101152239187689920739587824721300913932308349238573449666695229722442240102839500000898980578854100763940791987838400311462803382620836264852428168297355640887073420935631186855413083743032529495300311386077135789927901858525743480858862019287027316009892035421753815609088834645838820807979510520003979052256588391278029115410209843411525025481822783290369245377100046378817914034509572396871841463445872692399980201686493117242827900641085656461325508335681766215938963968249962740593299342585748528663014185226146566332823462867019013060163414321937155432925660772572942111170450669558976965251359090581867122841305972642609775440813833225601357060498921664690561755857624780160911389003925386297217664596544631314168158536314556619304776850991610458302166732920995184312118110560280099590605666466158248259087688522773354509652191335389061410198729774521796126611931365399551196450664379012817982911366097262420471333442469230109724181929995490906244719209766713803614225812539265272894191757137162087940381471230576308892351591730129081422575054154070790867042203831594654565242287889990975318697388732165288294539125964780040156421381430271134320060089280595108419558069406903118905923749021901762930994055741696787673221673818220560496030152277960333445199833427115574655396411698050700618442807058924850065661320068417536357449391701582367149806026877331552972761620035146035711929582257676364035480133346483935234628058002652659216951724941665839337907810186330808443473689310205866987361337667340012966371951774018260200337334625859459143069921840474198209462114645594831199492410078447017646368551319116325273134364308074492841675552212401548895031594908334526649238968573107604090208839144013177360387304570909233101814361202777117160749428836422398969060091838559576588981562337218449135676564189851686201331957305512243303413120336326832832395637445934673299306484708170013706028160771578377998020770712002054985268195885637569818397416851813169970990706486859191470627363757608344274201432207767907191128132011721081707506925445117920673882737911106286961165764733831232429400616583414570266665020130200418181615698192739075565082208605316074616850269827278137848132368493539288307052688145953026550264692789009057887044745443690544186093124633111462090229173517028430661481944438044894106236355056152231408848261928894396483180334580649473097470712283581727641343466150666477603432135065226340025848574768132641132436494420180353525165009167693023873074070622914990303871557218727955007528708551306272140012504313628471260749585826414199085360326366211470837690709409410839777059772685975260880110208902162607554454700144987395111683637910711759209332945650045576019680545115464070629667695110785394763309264313068503326521071245186958356358332360595144580540560150115091869406429070028363264544677498480842261701529841208356446695132550526987408697662744843861907982278675220212958068604492940483168424224088077699489374502487732313137492968769664163555830013076908486102504056293581806790887612860505870452715599890476713369866572963783971865035041440136387924867083104971677215539040229018204056810031589876902241070160558823839740088715637606595916444966443140957711491536564947463874097697461475883387459740675226144864851700063560176935369686556957171400751967396912154107241384788796895236586941855043521626941499876231146967620005448236050086954126066756827151019636419006347644263597525555594662928506097497660749080491477408351721088842870435767586575081613254184717793598120140933534705448496043246470746431495749439949712330643743035504995079933151127706492231329869309023689366485527196039861662949691524252374330045160412826851041675273273546407886545246673130749558627762516547033958237968888887160586104700263827727397380041275873840941901208016602972997070118772258938213077007452350576378720213499819529835709948191367752892038076455957139116510675698893991956386166300567898594775928543516523325058531353523608303341542772882085599142497381281115840177791262490525861963757110906527181405883846723604176415155079865809688490879623562883400887471499888996941722418819681228004964394121075283853086333462210125749630077949520686108793206377648373686489761863888416396875006254579704339601422504462513867969774269869102231132685229053176085611208713724128586145259156943624003658588869272995040698775641309534611859013518415356746155707373431885833797227116407787021279962439810321361318330469489523434567982350548006316501158986868405791718631350619597964081035361937414357361328815549820389543281769479569442008622746294916560094473800237962369140348523870155377399437866560123165104611313721917307442151281088878329631742042153987913243886792457413103301836952404391908314815505159365301533466057360374353153951719977548652218371834023749792526662906289816702314922821654300879250840302028587412200789978499733052226603552584122121970017197686429730353502679953239420800725603685312289161711988365787973700727103635048124098371391207434604015027079522474483941813849776150987286731197842687981141986259439259603676493889737921614419727437392581793351035577798496106757421476692742382460657566206449929959728823099114501055688390398309393101420384343786030138962546042815233840688866723499700601759908920508127711237318988657333511932457473729200344527882633776449856708377277279789073927050882144208212606651037569093003294371176241290407983923994786643292526692666685795944771027481807817506911654522692313972946051033949439401999418476348207071212646979355363522580125619503917896077543894501378370461326248931383085330034002611969017406647264760863181773881119149596296226640718152507351107862778148397196088694648713699227145489386542009388535869093237516306226921786878415736929086434430493825537299670196373540227444417048743280521377444874206894571176244711601926830963306226977284478551681276686997670321202897055498951069685470177305507150594478100071069362893173437423366825618685405086938074820291794582293761265828431044858849164171942924628131998388296127702479557971027183917070112787766610733675547738412951618626786612734250475461872398679160084431951292700133372285330996321445739667999158885663602794651142009309982925236457342414546263289021803806604213301432561729088859558821709151347215194229907783925337194808688550092546743652350856315769810289524356432567761977979618891955154380592149137191622878671312401679797379108553322168046889007249551533616998550307834424765156091538310962180423802607961079965918140088396157100186363666122840482169119570760067369858985096381072278135883485352826621127190495266015067519167288726822304233701255527111912991834160748163934290553799816749330609358606380962432081025464615759642307574753780434557137637900546920530869401757407081168721042451770118508016828856016842767436395344483703198466710288038856145432916889883262219658984255463651301821830459774678221006065846277455410411821232526265809765117966759685050223041018605671724091525249852325194476789421020033379456417896179072894727284338464703295091564244532865893677759689469981955688915020717136671590583141418309089312447821011976338533922379676644620237652848553510914376199551007328524765163229476842563665804538487535415022043063061989917196399854827238052474969345839810635516758680155282186942644622921123026660554462873102340180473749684442000273528259803073005635347880890700575654882291619398792375533712759982680386326483976368635528496315513331929789180984613467476865796750154464479511605306462613665296127498350928025946539186093148891406377786714523110237832931823332330068816542692596376612673922075939391837274128502953806369692892169664597230452494927121959999271034625548067014010090670234290798805755200325431583576301847501495358229723708291466342915470061559919495368943171239979227707849905134416226676651519601930253001530025772542129055557722286111713059669515586638796670443048198424028126758659974963095077253578768573394324585476629870222118354616613233986723703032980699118041218674753405830545340096868344653006213600730929819376572886285146501422228235918810607628717254260627878603690459122192970981218864108642404651820228699927440117808429129426062313938468938465169356810388418212968282022515186618847557658257957892395301668588862345491452008012836892427344801033358412166677383221993606747719441260164883794357293804117411808717443959571488641841181980517305874022283982494312610876481935776220258029982426463692228466424753140497101539123149111763451930479878977016731010203718745278172127307232895411677261390708354598880357802160636847134758704754435521680602893583629095652873409136512649353739059794708271594090683695000325505718308232992883929585964162075180901459969834470112627934688098360595951202947027837924666531176194789590569233701664768818476713124461129421494446585282935207677230666691355837726138672397726436044077474132291217501866657525888979719773731687624635012448597330479936222400053038621719144334101029517490912777997895400409494216630467496443219856465386585774383125100274712930607416879980677358927817479699478615916072908400475897856517695990671273793814591390737284641435428166506896238216141062842806715917896329513868850143557005976280205120237016687418675476056895493789181141820688929159738092717278263115198829811324782346272788786446283443331316514999271560540648753576839797866465283888276338023644542981592018901192186822171823990779870730079304485319596595467118880621157965679347581686583564037820230200080582828809477163063003899024490266839395258964639152194087303224870060698126330833777137889432511129686221323806665732746847440815080070847352944495707025642826933600281610699924641488338338500293938245637473600760591008475061406721811742458819518307349510810998518870175179532159026485369286849204429757936701860232846398250335697697607162007629846476798338820008113170120141006624064010510413541507234653994195920259153540430649440379932930763722374083589019564704944490013191777423977467526548066142602767382007659954426674874523475523765699547585459599250271612259160573387453248881447748933638633952058977748168088104802127771923225418666600256187668434604129259249217058055655627130438765675453715007616924317897941564437392441529368338400987996287705657431399465160212479909683613741851027967725035912476292422900134691829969337795970459263348120504338396243975219572784212378481050916028491413005564902954748572215299693038617966636148384766856005704052548260859869156354804044661315958899821567869328922829517357118971864765933292523014113917532177891524714292529081091397080158094709289053322526363662120712517199314711030051206853410519857012740879860639170755123447049889816308657800143850378409725611248187111473425335858840608197693998995306607541850306087005497681471705739996017716557049896120282900687041077931908864006879035065127287779811279798054189062025781275500976288836669825491512197710034535554231856944035583575671250028204804604974232571175254898677298628426645956016340460715902925180372088811069819612652739086376302173908419256850773166483808009842879690713159717050753751180375919475109538845952961588763017705265419876639725136822395336654842473560946362829304665889372509710975106912790922550657700952737924310086596363079242235075497311395156095332784457610103820344964660571644860168796457974685353041413699411563969618474636289118030200988369485741414504233936253576655763600466374539500942439782819234840832143931514630362001704024914299770221871672051156273774433978801722074223542442803067102226839556999849907989284752805764919153842018753627867025367261848452696910599301990971194105522165488987589144021702665726224391176040331113496509381875153515023367888295115539747772745127148364587766403098114616378768775459477405103046538417486842037314013194317667222511451073316761992907260018375113377326928414906982700235193219326761067084327456702597756770783102482578935311664558256353450620111032104975611799430508237925785673642912762424597469054818000925896080820116595658524706054195093191896343950456575281452847072320637569578009570702624987313754799861431614322918143781316052269934133556081772228317932755117597641222376218301153815492689612965889993795284879752814165504774451875628202965866233010687069780909966380760126514539394980136332401537011231246086166801548775461000959195684429534997228751386506502174572773827817248832857753268400341298754972980461709586008113312986960439227481317543677694563669474139424841763815807674133601605235604882244958663806102132140589632770148869788692241341111884568375248785197777277249443477490807129046046186485351848731708143601038384323058285300664758577500574402672827265840346176857296195666709761984893071628169895059908870189342192390291815447588594450407669847660637122313439245141053184124907837470990470725192367407595943392995113765600234990536189549600430628581524703066937888687667647114060367918196577932635038694851522875975744675899918332661106891181513684070828185091878322524826896713267284715431161999200934273322976686802252478370265202539460737775474860611153107809957534641149809418585700112432913096720914163117440920649515511339749307945547121524305289002497796375203698303305254126453030629437413410689150210157935466986195496563188988021734129466365811732060853248825666262130858094241774212548230125197557138003230577041192166115074293678310557336987295629317523064455892952945424193098899313674740234588296339344887989828177710804544626327252842238319550830872173650202489703755577382930528391033477588453477774485619412001699202672314741771343623812715467725661534907870375366236736067876357475732681567923248354473746183380101531783954387800996103460191019253603800816399989240531137371000673193651476525214989720822714978205612383101183486461385887836069151542354024408364070329792889484886538058041227999586827663691145506895659412526554364840688754028563286876021269264056212286091189731177815109994176037086944948691748402641709651119043109324738613705955563167650205581001438633012466090540076620035288365265620030746909834880964417823663746672518462787966726168356799953747876730942060180981636928271894425040439943311884464982588508927007587210084204750326306583408067678840177542866817506367819927190404942904689417979746096522128490940017495687922623988256695792001070250331661408096729843193223624309855531366274589161509245905563274665723913928419271528955656567449245978266853740444566147608238127704545893808018528760657083457472463448042191349228845178102322859063261628955015435701584777866050273990342572554863458206234760741387113919004473302307254757255758715966895153895787689199596737257691733612953790098788005405210297340122008003253035481012840524223753668408529510884873651027624894487432660523662829366343897795753070796277223494803705156620041309041119484404256285346147015283514923825983236030482144053311373448137057037711852296003562137882827455556664413579693898097489071716421278170710881336086987523359610272601499409260211774681433601541793366189474843112016657749500791380047903893415028413821817451266052640898718482554547253247101710615423503217806062345819816472481094887134818059194112306354204788627225114098816618424304202831863552130380959000068278446847347991767146228070712681806236644024696030145107737987762977488648702158690786094354554806712146568253444535258488706345417903623859869734698320180686821541543922542848466986776583120722359509263896803361046232670922983808394709327520235224710882088127120821178589063183486780098942775994648977705058742733101116784539510339796149580614667984552602698390786469074269870338088516482458096281789630999617687386138911202920971093762647557212724984232973316205485650609528395914629810649252875555727110899880990654654361810414933973975746593159300774914530057702167300052130705483944405848992873519300798360768532098493543002075664634757689355538028492564249123352265506073799673285868813300817966839953080062655526848724273478438056722926740561266787748795374218552658019316805115067727424875134746479543336076071373937338827170012349390033591885714397954454825569355026315188741301021580199120491417620918155269652057246513067529208297051388977884460427342935638286526203994896276299331847766218334455314782873377157363154996349629042757659062227138263186987734738945362732666509828667616978360883660225351367621980595885286421745273368833621338117904013136771758141058439736527550804741405555054182400443669328619046486639775785358355847623601152011244124495165493350320285519411669263219191989463280726483081485620466805224809469615721102266966729552198803929456786486291978895524188624533386212774352306923101071447600184852634329657384727510900629561584680599269655533026525179493692357922316102457706288355077412322890338619265909047266416938835874021764529298648694764347025512896221197617112761144292218824329482693855485156644540702184369188297349677578288530544775865930865090956359000056975437810320383882459935899152224045581133087313603434493461379482978466806100101964990512088676277021208846482357443999394364699726296216202322043082615996936094076768389484389730165291340596531902737355816480698939825038700545009213461625542648400640117424655922422461592250186601587295966095547479400681013683524911530744070644002621010149043674270619154105417040867337111110710338741207309976972190735330025227488200364655397264874595027382383565345942447230285665339575900069550306069024142899959933624751899539004772332117707948243580259884650721143866529656282991216742224459603615754624935989964407239979138688114330424258187312681011929324128976516931499918445478124240645062111336493662368805623306799819452700707404886448446181602465799054335410431078250665676974927110967804757967912220526660395501285229646728253954024677427458847399064242921409883047811284015128487972348522227008345484155686505230097863386972190078384860956471866147174703076156517788726358197078640746986253158079763363111784656634949862218057269672458064826757123498625903900854394548538794851865420966752591072550801151364582903039898133131706799681856751556637704582094523054971877802183493858237168421268706983883566850462169510701575589082621629698308729179742583224617041072050019473821719449015307912301346861312601602720291163060820500572442880991760109055939276744483547056616274092275041612263803721709643872323191557306597936369250028385262100305010983332693313486658879773972354229307401843867552062464131179678708930150181952711337462705601745388676390182689341177352478764854044145188488362672550941861410953287899954325247579677573487008481029530648805157688069664910085514612278908657515114043520547240806959439232141260290438184184134119655180709942913790470979904662631340928368236215199410492888062849839831890385429152475907300399271795626727716781822853327815739923838521710984040410970406378962058589848463536550103650642020476476095746215778467938914687984899751919098490833380431271099716679185104622908705885947426692092055469312169642159565389558028339639641591767324688521951209030300766227034063955255424482667720617080886873507428143926570660119761088163333715675356708356758556037665119346808238487002403744574296509713005825740066042909249884122454332777044437623094134926886281779174809628217735080810871881870367195594980467530349236330975196901684267566552639394359771748900543558302453502673996409565109497207179846292280374943580693726565900975634603643004236704370629721508939781083193789309338676225366560759511167925121443321181737725329191324381685853488368326088038272872355662771216353569998750851824965792935944906247527954314856622437421796663587524324307687904228399744434551067956929183526210461709559939307087650735682662193062880810948895106704660758832485447504280325931020377187552829748460445430871559914130615333769338837667855905197878987401755134614831760018201924967440260254605075351132498973406007425455230624874298672671439447307886200957276366692315042910077871951375507822696535911514084927030399266779976800608595710391590864598481117683198956529149509139422931673140463152969813041048018067569730013332122100410278516750446836394975876530450557485432757123996441045039610304418438750736001515031153910566397782035815636573747132401480640840492416960303141261821975431888941166464384382063796493543772658509586117064865504711120905203973254518334058451782393073024216297834446785526504035582917545199276824860428850423668034876030066103245478270884757425669399211077109342915460617104619410588782996103886984785050210521013695610550802675625168986445459779570758260330867321105870675490940496742687054629199445876306114098136894622171273868198978640565184938156877324835827443950435892311245408407975885422090651855099409132585440857110677165546092807087329505129072454112095671421448878645538154287310461233987338264001451510210941725971562562802060591058250508390409971336014256850089973490367332323401106087576129598335620910177416527892088084289997346337799951780315759265467417693842739720249962492622702690727986558612878651500435492439017958054331127290692732298324289051685917699375272279225160514784290628160133534809997648236193280845387598442738792678998468361867695571750892773973248099267578066877804874098350984011979668937825994493894463857292198897104340849955693235056231293919693124102727642136348514154017824384973209140707051561745000389860502761394413401125687304309068544805782911191747930338974713598799254525537441262614489873757060645176477178864989341467566603162254691008833541057479557857252390426651800962744139214162229378544523395539698147216727031104786536440676769317586131133017816632170230627376187247220407048178921721325395130000567243996707733457338912247290736007877550484087446865962544899882233723606497543603323691762353754646575202448929119776827827844525043630939876777198911661205577624798544634154656824746621251543327773168388815764645038563176019213822178089241875766519428666896901746082792621628062179487542222058204607616103900947091593833645763405671919885350335521000697453968831726869131288923958257987827771618596536949943420548944445329872875262955702828031744671608007625134610278769325801737396664635593301553281878297974061197843279155715143685030053037480757557829057152472646034856706800838085472784607113939518870101282282254349140074627612302674521304843217252218944150313311064499763539112158428283653878517671563872053303172469259124927249660774816640396539659736746431940123759367891535886008343796548139783804754224056869299177085059622096005535246282191142283022901475565903957883191876853712619135457364117051607143532089977778681118122075183125578474987477383126054312877553012947642712076940115296160259728412532192560583314797729953526178622432098585929697433825081286411621505777495524053836516793567095283143377413487688692385752710905319345198930289274872981870055099728807614387366972898002284643280403986920593791884577519299857716353483647486765866603440114080975817442586944259597234475527486830913891070094876193469266007088987333383499640983533342547136532507500251889005689149580136648037052047400346411355808842402192520657803215657059887934424867185864271705213933856297934052005997010576678211699068559871773446213573830555468031305701670442109457776413852857783556622671853746638899149955115863965277540723445817669795734730301272975705930097218942707244872167493617949281560540519027854840589492286826428572575260015433392669650209886779223414650727188712083384531792583160032300127099752117798827865173687472097370691271737459236553159890035489345996126455018749483502130360862272041257993419764522023931938311536532012067783138212728154861304243961043544458275325195328592829858131864022189019896013903461594052870084404873997985690483986522060991308903952001599234131554659170278077529552438140560274844246102017026770588426451205809633832340662801197307372660980195939421940197995970449652631442312591146681775485758772771544540329630225462562182919368915771546982079766242184165141400122393078350598618735174118254900260090891192879113392864934379614953883519438784362683487486134318868420445898490945040058759802530666602236735270566002174452365071038843693867956879296654739691847931582987827324257118427545949981778276244709383970948077503698414361816973558124932548885161070303779067924933748519610805733878952773475315486591420912686117008998297655167994711945754966139128661052938477926803057374081031228135262641920022405080553364791525972521538831750635411605683290412577608082517659864814736879797883091459187441956621421583361304784885633550703284771489684709024847306513033202388591922000501496115841520677110594813809289808844765529382235998434866222153669263951513268939082152733517855996477535537201037441747559919622344757771448168287927334968558709143688032171133769753925863463664394091451282536517510822766977782340312643653636274862818970080761598301916817984091653035145386419197433169967708776651326735388946000627565325415311843619311749403970682144731165424916212613171649843241649806556721776197779912653880553180373335568134485564233971352484570241029840434632048160322076413956078356654944901396107676298702349255675657011486506040467405489522691858487949577849783315477215749339323791970487693581895807135514666297877907252246695702766696357225275545237775460561117080632399033341761036909044002963438131420504146849778211463407230823396747731571988255379453224842410969343007330074039496460699462556897473033160869417043317972713266516634377183171589429156225891830762718920380519151749518670845551422616048494923380675924539526742819641300546908629242016862643429292988455204522708405723679338737342519400806176011428867461818253389514487122563010911463024212331725636520052744849352322244830877041934662414891377582848151302275299131069100571142280536099636625346154783285472435275496236422340324265465485273654470735393279155310660783174072409258736434008386454731263668301210390501299954584343938875510043185770027419753960673732272690880081578732703476225918768490913211717595199327052688092386120106491590937289569699342976573949697985397058342293501099860271994202990862659241277656102866244849816340316344348212564151255460433315373619892025180084901699798020633063100771795085207921670848044283249056672798873652262611379144397813028185520927422070633992356729732609437822258963466984284770879965418529030825938856608345017968311174891841282766368610044256961884653574404281296546689726180631281816473074626722748303730899234887999187063067561998876424770155670275560462216282203906618550633273107087718064066833277328930530677408741384205933858333023936223405672701850685648941736482788505065928633731664395628794209523297732747969021365343178892500146089501476425395095999624981049509865272245356714101806117786536455639041924996669174405935514035062196405999196473966992628278997643891365112945126798190474923826885253860396750537324281439603292194157063681046085069689945981835639219032734505946064880184949787676951881200569183749556472745486854886515791245123250883788128643907286127092507657133681750980229754091229170411038537103261217399946335261368555043582564376444665580036001885360887966128677107883941349942694676844164012018819511005910163875086693456970494960929784445623636179281193965775456595948459471940081116522592277612375528655688179342706949065274516403264271280675324167280928387153869937743602273093528771798167084963233630290987622006316928933651967893640584414053305176824832745275267749228536725738955980493456662001901360481526820502294895317354674975829412162760805375455143840914226508269149717272504432607319854044077761889691053912017253296876317184327964561139211788145830049518251495841175974478849331428472348684424356431941670594259314341550340736330849355329670298535224265308724589528375082054372339673661460471485973862845311354603052366786680837821935224356120893837479280822689879234743150779947517085987232085530565640783029366952140160652302064878101565444972969189719839483339451824965458623583108034070466459226564898879883137630029397641348759487357332161953960118040955881425871320571278142951742212054899959865239710194220473032458067508976467442468161494567972053499881945510187718766059696022978176609581814127546336677545266629389216750565819988550728136282637051275557942679602212619806225562051662289002853150938556973945111600025413153500047967791307950085252650474664675701487419580296016863449077249948500687071259742845407859776441702425015227249118253352767229522506195853217068589509727426837751730661463553896804694948396480238410407703537759951743589207497222253163615920193220506978785779056085273167333780298888612622296150034204632618472923198022802821951867815280564006064931191314040931568228865365573881333213037353552398015205092852186551142120944764645140490267157013958029143931172039540095512403481080765102477013618130661327302836492188810822380307114743646823023108884278483120052557673065461646934973572918668246158717697401856522930126134888868687901652579358193779701007628810315229791610942577575095629830574171228886492388051933895394751796767627211871197210741983194895911307267370723218370987937128811404289628744727588188733653361246821665508499230244787409829969792841484547798782543130687301994143299437599747223975656474947139600335779324417420338381258127783676076279465132524407185420731122471132759583307233500629144695752528460181479510794809532883541685586824403198834826002854926921759805350083924578172006665702955319916119332625066579495422689896396621205325456035238401568342074059164625033759130252674113147127468906493512742097735313080558851606050645447723182014070648625060974250706206737760715642827230691233929045483139722896918794455523819873800195394201002129783639002458210493176775861458634413485746894548641233251964233433012162644562172116170180972562477713427795791176357618514474355918787260554710198638613638526882172910613404002170010116773775358175912256582915855715682327106054595419580107913882939803869180396938331314686291255060469590993901501765370304251421012079949453464046461123986748180908806218478269371087536762184290747558708279876085489672482518640443908142450328238477118575566872588954371019696652756976204419922102518523376106606805851469520309130306576206094623297969090082076946840698409005756220950573829065204682192369700523611925726751776765735813609825262659429776819560743752565412807454433930197140647822911728109260333472701344675871177767893278513905984936760581596635837748437216028367948972257463002641206325287710954809821135635078264616064531861482701830206490566356435017994416939190133472332010280170529925217355216458092895926780366158421582716323448071491774052855462894487311496527218411558572471211102757099327687558338436386334414071655708748132402549865308911398238204312208926196836739302810152111828137066997482361678033967594723862547105620493074237033282670731799165272964498699545145393276498834121979916374349288538399077135903490675978574199641742777123815435939322161547261263064865856931081737752933966463249481817966699633416638832699764314989363123763891336638381808941916227601156515216996728573962861557156774274276440473603848023788421186512013352515279715152079216737858371867482817107947836107810016526785627379296992237712447695115349445711879466450423462797476879223885060549276294449025964738058936506452969190111441480515447371781846461216259242828522093580007367983361715676946385959282370738160856672489105869412611942389719956297178551378418421507268883324929027526908573511885412636419744404407138008265501534524958808701030986379278300717765653091347164565193806409482062634046785353207925850926174850925694976882318606805163831273235595042851008552824220464822621600484149938792064635139764233821283136286101764232969964938060259047760157690563440135717368016075398734030704981438937891876288507074330006729316124045170191130092958009415752277535862167297274741214179068168118402468896852665112158610025611001206957629321711241468777348828963998694448368890112560833045783517653254255823702359940969096392777392258456294590701408420485700463884648059031437662155576161642763778995073889651030023358063452689922825705847521639266755197624341749867522688687262402804051072114430284828141775282354178804567467958890245640182448048666343282624414727201389092736685041266341647515112518866302588691881075571057094774647055125493414694676345557447451848215302827014358702285863659012238485290205820657504522218764132538576275257718244582302969365029887484804446063122955426011842151739110977135011001162656323002497095112915427332681158650347303575975100390080867036876794957721196135576659003598551792332927915390052507800903605130320882893927989806627332650769815069209507013812536526654086662388234278723625441045996911748778581085001534162311801900578570451309655258847453461579559739284227098197287713578644600363616364802274012372981513912513015171182299476682401248796582219698281858797677414527619474702179204072253886583208218744853808546995163281727588302540141046802770349209020265499329614727990669368425310675271402751937117806941408327952574032876002913985496226063236659383127597037471403968574233357711865389131650648382330754070908914940543073234597848447720780017566662985330469264747069963588093713405376371817970615386151880034322731810280505894552372242611796766038214486941051084647961738186081784164589565753588434406077991322526893159194794017911122135305792837503886779961145104846493986583207954066168236395297815451841308541626062988171203837375569914172531191682236446593811083105884568698569091526868402238413924541853512636920012707432083729614001674720619216404957823246298439936017019422088677203293813583188878893797788784902674317174264883164369849045021908149777197424749191964083615811733250074119818494811043500847306661539391288153169912384230693201085796469552260788601332850403876739339308121929469423088581786234649432385893955240589976100604270833247542060840861366803256181428215277112680753320048622214557985139351290427340514918261037335298888987464256680036056823739382542350921159948843916358412148175413928073158488429744230566198008629166997460966649143757783534755436414503904206283146520987014590006081635004441864214337690088237779750931823822789954400086365266444218944379216472829367649255319580800745354538626464968478379664240207894629624984388633787043632076767839224998958554810088586723920755618268296177787370889964232315039488743425498216538951924636962447715804389628166041921568690617463334907191819057592989087996797828283635660927840653550542422476749947092740207725519403363189934287964625696907805102439670347701827398442317940618781931855419854446159144443822454760657360829550656091524391303856680786779807494717702571873947331526031698371495521592913398994226993553511860548101625798239978306306615363669085305693129785843710449953393597396482230349041352555638420383314093429234694628293686874849345593634132129640287771949823304964501095903815322811157603292823454562050123684786567094652361744415600619967871810388858716807345473733564669201784659537177343647768007071720796412687696112882800940160247697740216679439234871059928032433041737867210655767187878061229681423829587263235988785311731266521623077216216360477688595570270355073389816314889619910982666791120377311673556623296650697164369342276385173661798330833600261230701526322735444196596734727115258264352518099284231337414727618106133473568924130257959750181037741274775414835240803044293188745462744225190324230871573805805526042340727239849823277214713066936326753897831709493198532827122903258079371956629630217270638913042603806929109641133113305376848428540970203119991813952589418412996595682415434923865788764550640483593340791450758302170358070441453463537828088416041060662941601847038811660363757236591228612627527923020181595264278020241136137405803197601498006141855775440462453544624761052702916431296846519493134939911826574477717177283631961379388953940043309607946475902836400246100995294997167992706876902664125101550310782999488716249303030725243752375240056242177454608591893602668500633015994640286328706084259001011065945739550828377112605450974077217965753808821926169896444895742683625119758548956877072243974162076121137105729346736787219336440199727484081831774486497620229815508748569282168081116106936047371460718831774091285332210426019545672017102667859438087494664289093880257976392067195879753361613617785003682832452649392152245915172466887618016511018329958108805738407426473459929157255228726373826819246083797716621955673383808213080483688327006177260456963291000077868701787301010454899538990066324467562570394804215402750706168069404620894405740822434002490718078462743215691691229551542463662188109195591608327636381205797541444975668023153145079452186609394464438470535555475095130450749174368488562943428882874205598108683606472679034363959550663075482262990848579879456016509611296379841602626711457154156485837739228643690396466382871676544933038314438918666817563720045909716981779783392841793754189639549564491472127798455236611599404130636281598455994989428502154820684266115833530302441121164749317611631070962845591705626872154729370091905611843522147031247738500934849585883325616231261511045538679775149867146414896510792275028392022145425815704398700447780708804121911877815422470399991669194270471896629260917910004116088120771330542629741430270890301743268582457407248453610250598279232102935651378856178005369699484582814237338305949348019369145140596786076107939896754636027759434985713633775242352814293077840460279128410103075561238265312712188753746011023911538162605984857100829337922545193149543671643336498062977898572785515360556100043832894872049222778285153552706186621299458787165819017735303056642310010196510538352609793890563872983509767695104792835500459827658411364473772408169148486351092913831849795710712986121797507862990943447004588964272364870043200222583169676127628782583196464787683014827506163972226742627050645862267976063065845676065774214583592043724199959957500205132119402205636235084945942782965576573473903400444192600258644455911111333500576270584720788450278551090701048957547038592563872938278939976904633392943878824022572283882505861421887499384724556647488318573138421896600124989378346687590158357810188642287417069086777963826487520149474108596880003460965716291728291805548697203817385129122784722725251425811644923032830082683422563924907294724712817997432037810844424410753778705231671214792371589759725670053671837875910785315739579023616540594164141477084236200640421569355705476994292734465775824127198261490670673714453413380263694928473321933409898173866542377922947562697375959134564440138550648858112147475150209919107411659321073494837658057965035977128417566689406149348797940635542740859239261141056239487658731305305827363032606822224524935793766843208995078023577001725241080344717859801713563404330611749620668134883196687633335700954177216317055623178537987228083929120969204133083732119599153273166157847981640954722868305921801941917478924505737997512272070999016044621498609421538277079307361383446508067265606603931452204861231408979328880748451275442369342574177199358774820740972164111711132924295210785776875140082165879734792695860052651257260454062419926643621644036709089273934832187336834610203382952670481317745846538400062227939173961775132778209304804142529841970971029094858448565961158110785541847138737949295950560089396981895553620426275633076487668562246837321212366882500886763542066941578348069499585765429996742135649681146539014479874631621793013877738306477531705150640061518686654957253559921808757290075239814872604683381245552093521230562886968927855286362470954109791810727327834435406277131212975681494932558356449671124051898583605005617111740614032534191970142693739876814086653897147101839704154212043919870721517068611195785235365252719646428053765025384444726928872145492611021597209727453349029668793558460381955102680198428724340321148533143836970318124390934984774436076442097269475134856973823477661610991460104307492385937747921629805918590137667066854756644905903770276476274950506216560256581679269755490149192631962291317593074090656280875492280459177908657456287563418981620874164591052937914525533822869136377516917703220947156614609596505574405722355185207967662669620913135343367101089155957193896761579021239410855902037765678122951254065020496931239799804095973463332889819699503396657542780358923561949255141575727810948329992743041392956178173691319576414189885106517413554963660731115641761587891020438570050421443790767673677834197984214881584110445733485233864514194163601613917496838828501542349654828973433432009622705720699196485148335303177606820383426548360457341654214125827758120217795659567927858759248467623815470191801855729295734687270026559270421271417208964844452086345649275678543511805310652902126996926860908653559716504397159442399286828875814782772271541362618103895912247429551612738011995091362568435265898970690513931939743479336633044272802450845546370834908788001467091932254281775467405481218421428418875860015455505581841641928694520632152235037297706722330994650885888615421965406135490782029536828961582832077091175906068101065226428859055297097756205787023451934678538125716947986647433842776839788838218138410047486858301709241195878579517651037422978524171367268019359798083462540536453544475715490267043843527429289455281424583963591498745748782431665165900061314151221351564431158317248327788679812851186371745657416198661169847436793254832577460405985649007667095888682406462196861760749213156446820596538193208114308489065503411298039226894444358373556509314403885779665047514193500371293860659976004395092998342357837819148402830934528741289564823806472823216606820664844509164632228502098181106064432454966086577825543556916876748063590369216047901446703107733279204388303036551702301648159172066462864628234508261762708814941048794973977416901763090473195347362724299415863714514997391282028917254866639146898618725089140848369250052647969186351069239579416841579542615032419332112553510425264497366103418630004515327780859386125142930517367447608059090687925674838534253584653444816675465857309667717980641974623868771129568010029404961051309546507533180623427325619778067700338450675859702128602641091176430606550872124265095061654627271701205157170217527790134707482677984305293169987306569800780822757592280205900028530280743797836059354401282573758611872279246207609242082171667158283602925702897988299319884726541575684974501934292257936355543102348603468458242244230331898056549006980986413400623643671579654215637092772746753582366507275511340956887623911084255901943428124438875679741201620742743327173838202017482070512588539463801005491731637187932552871593285485015613070146476530818477814709895202818988651227068422731996343132989557580583822804997551849670522462545801968216544071168581196892535576966829319410110567652033074023343086506250804684317508530148503664273838168391527926677287282882484848232416721112144396864509237022174129474808514296873071637769969312849332570457412400812555551837418866469743005522287738425278181551987024092084824236094256814302164578178917804349982371458863464733407615505853221113103399416350366380289770674991090227802538732714174297795178103494238873287085660407818605243873774123595774761570538827325436934122474791486044759274898411758749691739904979344337078416116452042916219171380771328273974870171893310285999581849493937166915562293993263226038482542854879942405781249850688492851217785500994513850901232535356280922861778137309602025926871065111333183741409931531269055327881995310517112803071478002763668319121419629449151670754296678907100218601104406116100072165930625521619307219968190597172346802801390784065804970273081233777660233262526178536534871146636955812732246074892196745235797402835764894444773096760370082883355895065455274058797768024625168150304842450768515272034302675994675467766590028433670877903651606800196721236080029353476027395199353739931001040262796639583054371041242860783261441011185212538966148064174108896844244669737517647962956979307601524468529553025347339607793658284273998013432444036586424725247832628745360303387727231572998766982603153168944594753540862728983172074997293574466871095109200951863325716630351078720142477214793991368706374535541448306272814948116540614213965990333558304977012406583434731888280168042807818732981560948266586717060535437745085275774464304335351351381745927567451492494865280447488807776442274443636447835610750169253312174394024118832346930862845382494182968711845025185254602057006785640567389174297489572955921283394764294802848092411162472211509645124037626725678197749576754244654623192574836224979163536769540359305508226044469772589169989160342952264239293777735190941136204887669461090285681891222687508254952913955168115252911252146769879655005266270876600050650000655305816510537786624947640871544867580566938374954988091149223210396172788425764984137969987811282685657908825047607234619246010692661050865601896464938066036788323479381550868111007867381315071666438200979495488670963399967555085313971026335706199787407575894609031214248270324249030577078927039338017519254633254261338827594924501565457090361516170235647990929939924042043210652843467369323982971088257337184074933913142672645681211682689228995682823504408673369239753484334436474739091096513425610505739800979221118631940355829031921704859235213679008705707595075378714202720519916793127071595797809481670175249114016229444884099370260322693720246627220478430783808585064750672237672508384364375203071019704345532955118835275339839188623216959588408811455857756676493283604991469332627108492963501852068668071351121135908556015391225316721734940372852459144187321018595667636565441587877033530767296688267876000518537312994080447741840892688016748234383075785648409983800223167639714370634297302201698636314668365754128508105200690534811436445847820392977308414375525549744530090280782082714356533077313793657552235180485546242805402261077370018919885527848023963346292859238125145561172354806999172900962719870454295393780600176960348009404341046036628269725920524078474993447761837619788120503824176751440758118202569172487759696033389153738828483209616212943760024944380907096326457918757348247516075613249296988023082624642682342886090027833075900522573396797832472322902463735848260194885541068219823136657982069989591727736018039946010009923953887671324356260855590805503905850217118199224873825044183785324234824541672688861673465790029793136253265943830021177678125544710211643502532538430775841393718340384813223417955895668929188687353779195919970732879544998347918016448388233487460116899092457234714544154542845633975214669106812840888056951657545799346814760442804347736467085063336612458251107928006671613704724657382203814534046216015919094400168384102196409778382637690575195741441669942272841362667954675741949397922134391131070361586247582354086671296000529364468373800317344035498174502081250703771657892848170627739467252743314610738448053304536899808148880858575895389564106557295803642783985002868920634773484406564922779538343780982350587090045526394832299323656094899329886663712714007882910923799793510945847570990758281731358584346400383704127174639960011804961761408923918501829148324036194575914939140587567254520608920843956240397333010275550472274885010636949013069646672645038737013573592066408435993210094505462076727984624122097068094282079995526662508808888320254466928453534088667506059070665677013577597790334012413749102473832696458938366455446565895063378693380894322451255567228884793242524876073213763660087885586490125389645505320287880816888649047667766553419421747448334668066302367836893306586201769881707586230299533860628806481778372172787633219710954378303231606724329211218352430042535994406240955641166413127184506301332529826793945334989795711152383647845993736530317818256807867914355821947765769216594058355709011998493940945927947774380053910749766075401045780750592377060718419777721242292490304738778590205734462914055679248682177625474208503480660599881022181009884037016091113032540119195449290279867410330218109441406033058891557382563008999784755368422667152294685540947004973439771317701575655080574400415343861358042733282328519497032545793229635370540114399863643041723135569531793599437695023407123588898932943429984967859915497267289963056833578859381374833462168594018522154123348738623291911221271536252507207324681721484385896603644286126171497800770087975523650076417784199588105484573100389812449960094632419415717974151756341816696609229248099619703707989049980749381017074698480385439399703696843702990454797542381539512339157730077882859953798913900880061771201282946369787413192161448531447147491199262828184476382456801553450294126876210670104950393203728930870465174562361864998957473797303715887525292160957153480391371870551962775739362334272671001391457051917552539916747153958585937660426765418082016658007277249424076503650625891405780674539147254685283482126399405242490875437914114604130824026614138992225752115250421533082491841809694728356948833476253492876011100868547534957751569261861913809962846509089415106931023135753791003523655086734060855049174417211801472526642715688632743220214436797887924856457470741704514416334105370603946961962903486244162037096682089479080903924993275155288978417143571356333348936536846733127424243235111315792530793396297177383182513055124393192533042163889820777931911861219767687058992091850132821382964467987994123594268191483339461885259653294773910269748103845991694139881061508295415928409347442623439466715036710922653394905619917173137292156759880756476806044512393404011533823198894013346963344255261397852075371985692980215063805252638274934304869312587894435194776672886852778123624484039211474333592115995821866864588835338689669576087917185390210219969870249503571339758016309961111310864365295376534801405163934171663587625886659275034460174826034016323900545721587249908667631605889971896254139097833975707586575524313108353244130277888690812664109137405971929586226791950379319634265548544271209895837579453228880208778160236839535990008462336679009969897601603365961864437968281467355990005800046637989016026243475483258614542241025269941356746215478130357055279782547537752052665586489913009781188225763473925464278858469442071362582967526390729224382726671170849189308760485359318348529757418553342063067473678713998038404383489809836140171061971173630199674644714050472079282855966977101573798964786108771498833106319670671203867910026635777909335673891326414407782163834862007421092526861824409623211520706780284729896289953216962606482710681021339436640932265708882549246348727779551779510590966842177422626745255312597768862432852122188844685529867674668903011362720234346508994159892284704343037126527555278293434140559180849933199677095289333210015165891821469847361466907495818780954985423703993505565999797009113021841948582382189049586455704108052332979592419099854725602171690519123787032815264918422219816674001056686456534660514519545403028107569518551805203902007595600677236362759689672194288370082771306991250217759220976008109068281917510440278853919381271613289872304951801166120877084732520873540380922357791491719741196569696282682547612930938774248633974270553031753509906859485911790008053932857601708962361596578171666583607677820534636473188491287199842127311419195500837153053276622523723347954086896290514031105391152804689612671913165240079321987638148353575111428739304099318700611544108400358207796578782078068458788087185842952226779437224721822023051781784349976950529428667649793116328424430408357022076489125040079939215488337664435162119034880966287719166906534039146972824880966149972749351395875248714010486744651634185832939203569875562038136949249354345305486239890116531438658734225849240571361703819146797393726200017717964869032074036822825187576554372892468876875474025820422253439835884469185030404798425608472035782527239431211175862782192348329598499427962002535068412644063851086621237029932220286508546829030015005723653852832898044065757224496245237934027389721089078874567180949519415628597389191277250956614553240293840333851593638266246787237030197320387480360101762180870592892909776281549974338115285983789826995793265380799273726409500471694201024613074517995585382790107154383501530292728791424195509872097117542968043422515654317618265141719471266666595056633257677242111947506849420633780048171684609337995221473302315256066520280900862054119555025403075631134385746391198486411581867045067165742374560325170952708105154611379833300681818205651790968569575087121538232568821952846364067470564952738129419797041943735179363228632282451266713794078527157423811921658750162414698646623912649829946863190016771934207580215480803162501540385647250630657679757456681958102462162987715058016484724001766404949209301597357480191629366066235346962693234139907114500867144029704034694078379020742337128265073577902957799804274708745174779936652876397337711236559525561921019471872189775727556341651659675224960584575822625552465486283896144837587894516641161642832319460266515124721843024293010613606697847360977652219618829841285344598623588412897032529705148060942299928828135859925027269001438297018374692890872104905018251989939117744759292847978104109588687333092665881501366995780211660614285342717989290864211713652675676709631143579053481420128136456677769323110066858249309445297635498359254429580267340460222505355172675977005542950418963220079444861965487896875474452050296610384607730349674037619497771616992047335119344190239089235849925152299058199698627503956683099229494616577379476506665530250733233029815211159826966581812114703784906558083090317979350869720917778309978458842645245545724995328541304953148730678274192804639818674758883738874016970043981998911207293139921275704328288656370547160621004837662625452534536473686932339337068513480095702202064068127804221381890596546327323549144778325622031554442048149785708394385883962813563166840898220050688533923187479105191522218589052796796299111430874302827392207026054663042118780048236910720601241933364187624080167823109329457960841199425019135274512489574461511278795243839886731465573130178287153625532129027673892065229154396721425753238705218266810936649682283687947793829656874246709056201667277629498926896000756646971713933860761767102579943433894240813101507857744180042131422207713141897234132943911980972181200168631488198849611543589561256678804007369585365183228205259235697100997875895797866615893587148917068652461128806274006485617374323079300997787645631985189372282301462079859652399708779127233601561433597758203746657888400522042142778746865845918801031091263295892833285066849858049955261053105048083714402124230493278816655092181320526131842398327777451045393144903616717911141366072883200853902269715011116659815095778843794259121558762636416375701322673683188835642870782500483128379347190888355498083662165976208191426432561063404721575408217296907104897026683459530272509557259720085228442375877878547289465824468638612812957137606796501105899253549696876308268086042652645402846705712460384540112459069415504064872881236426693818507969361913731355310970967662219315229274269024197070109054223916938106812632074666071635568856306446206684329988411050206848980810572736072610945258569166161238502056265802392083272184963789154574300654910033297991561692835068957953646486064632478082882701016518903784254251908092344213983328283837516267375275639257773278372197271116621487157329136599894283567830606777081022439783185723736045479501380523177080961459180343542142239424045138231744418845098819234196203330152170720258090834079838548591504825879172474000232965820467360347089719208188582646137907077105775534246059304658026350268986925857190715738149241236146500870342127061911209326877746218578680777760828294501521350191182846784840222416820176512611884522554695387963665914524198709557614762276962096428607152114533661697675792307928694587137887252133164628642147515856629128506488711553653599051905155972092227311945483609652908906176432399087651949105262696368418184754779094074325271360838526166150315767725319552096408668350920285824597343575699050249561904316814687804288853564451672601343782493878060912686978182110289044022527167448999276688891260474617565462869448638391623935985383294155519179095282459064684571396217088564585922026316481609695181318558338643430297698216229306244944912807996702910855901601171107970899076349271743119796370852194356084800302637608285539444324912665910080706989438084031240594672681182311868614544525805225805254273485211438111696431395620529786149663531764725019807961400549469141124040085823432450838270311000510945837029831396375463080199933710608072816268041671545045363863753664919607533008118051503767615931237307540734633560474460841006282767586548167172278642876170421580394960701937436419441468064044003595005037515064031326077729409026643692820405758046115079845816804330445106204976653434230322057921877473003216836850561168773782246587118321150516186693298827636401056970950231607294800168605038426934932131536287029396549514219061141011469291459529343431487741040859658772489672758626813681437856958576221714191861053406414277440580702248611380619527710483352794467478080215815802354265737699693373509633386233928127978381865167177337357343596297503236382977390685671531801233061430122783878345329042262044333881885009381419047348764399225313961778784535335170347273906161928063117251870925274259799184209671303181597049044677005543472959736386618682458451068971520336216993046318330419183545595114715310460337547713744730711376503114493047093898333246312271813069853197197232360436567601237667549227745299382898376534801280650887190574584535778368873633371618831876827158420550760051886408244289627295268676545424434530130289213909081767784865601303916976307587831754571836160197445365646993784539195593524039014865929994333984640064723352052598437717737860444450455828494222080591009578666472305851529708788894362362317723808187966933685669746882623057600803227595908166705356568563591346893400115098469564983529901733848613597883293805226758408038522430894127645408146239292147706939278427491633868953170071969029400942704787580552416790167404099826686731104658606710383159786731651919465454805945271558137299030259502975160149295701163505697399005356000165230167214997579683539765837752871368749011407194386317997581501185187250507165979551906678563428379485762841588797725819947990813642290282698806939998182620125275837983693089250234173395624161195830138485284154718506107532356591704471652868628196818867950548298138229062713897147741963517394459975942779076492922848804039033216973971472730731090959190130917407312780632933134354236807797720731371829789988365083013441350656370248745546659161309875611179444386080100363334822113615003161603942950078757486063844518401903142947324091270672487811304287063510091031898118713588804635494247106956812345728684993141913181559950813003466931742960457488220890520006742557994429149591359279596997201384729899278325300723433490099265841268255601479441017229025976698442137751718481416947331860810142349621528134225147663859340286165822792668447813778546322820940080677607296154647412311407144957737554276564683623302875172447662245305645148584575829839739602257252691064943806846599289691770694071496955282199058493849416848387880558634235071850313109584030742735846033564291713248091129107820295459829409978330834332494673999067232148696733552433400430430013022153905339165616436584700910455542946525954299428554512894946336527706065971929029325071292730476585144495950892497022903053199481978922113571142662308389568142507656666044404539327619873384109282219646048947232845703389144609588238538954810792212548921627323329200119149028620378682794515749193895338100566633846145141165636849058413924909716414394393628135041566177533782649763442134806307875212105154376839575529041054191278118586283205066106337084924198534123849712554147893841328878494974554609410518619754253702803768616682092423704431084716288095911500663605624595652716693944604636213407079828724584195563293022454373235079424279378786848355372064193705910314913188746210247313471615827063164932334849327190049881192232240297706513608637172023821153639054014648201149793274393339421135253054255492932364019189453785824752886075513717011609388971426648841041631638411667967784658608464458750472822369321646689872140211393506233895231143196635594101582878100775374985164769001012032330205369476310139861722032694092776794800349411184776615627320795350478168745707205323510302089646786927016768078874798110529243741792757748056092276272543248643221791643001131733079291364926220824583383639895958487558678266570438324400406116751379788441945799925953347389855084586927494476120667597859286952627031254315482990569448188950141743340996545081522657872381760532334389573457987924404209940536379406820250332188856000032836031219691710348763359630731233565000723447203448614158931909480622397151693329984875272856551499637457169530752859606775076693535152976926274770330563392371741940854203785315165339517982850621901577055543521386698516036449877802358722792101763060027616006629970413120546381035384786575661989600562819281358925741021935246643120316095945485690045917930950240419805106648951972526346506076492473393165810479997758616204624308759614344552940095145707259849336121328462614417984715818772024929374687282827521952110910177114318315217060162465692079000527313663566412745005221097620297425325278447998481157733316914838545469913407812506994834560738714471974644115053792359316351971857471412425237619290730071765032129253937763947056982740450266267894649576810117989996219066597220349128043009362558575621148574185035376899242807354970626166045440531085533113216411545207400477012523840007119886626027855260030494374180635185772633177625035044076053671477212100188080111987044956603748981346433316407375132635959121453914556650330583484552286283931133022530555748993733556749777442234712547016598317139921983521960865534116381457078390171505519080619602134672162141021300538500086962474999225420571471281115822600797399592554721622083179279989484919699957603676774545102661856691212549558024024485333161526538543965479218373627304805007230439883625810157358398085982448483033817314816767801877565967768491836669006083326594234990753941819349026556023342737244880365064746014236903398292178968409778548064927196724893873541731068866230576173596873223418771622406735056501281423093299269722584664461061173583814219796074873311388013522368313225551725334656902225328187988543525599026169111548889320255525653104579586500163896722837401760904307652283874228613947340874572521190567124617832511656032276352646097710802611385373496108448127515408422458410138236494753251127601243743437579243039467252212680055302043275726248516317033520623356823285925937267118403694203286949316105910570708434340099952327270105606652775587303310882833523905862353196855300063394849289482534559532089366749160589358289603840498158665819978462606519992296590661903151428531626961438867765236624323141967968629453392121547112577192582486876195996254869825722391389944070782430269785373439392915166734315093809975793128242111574184380911797730902834524913457772295819923134531407203978879244190914740489770798610299193152732653571078742857768597315990975739170669018187077888879087782615484359468186015635766321239280866801755156859637936146019243876635149226763847204348394471258490201785834176326382936452573767410689743801029731833859337947811090286678776310990685594736611366806250857312126761006136556386443829360340700318817829987490041777331852889520560599829203537340628767406257342271405055670057137209964639078685606020911858149797929070266264230812399208009905022528992098529202707850908113880575112862778855564991393034532400304901809095782107402697494912982606197523911073548559432763980244089311104596327909034433657179723582026388337408409448281359750602975812152881383430978508858846168142183335114832774937846319440993015485681334142741713496787251995146322757634816641173352247951759488727474474836550995610141551664923913541350353236406430930324412353929889210863261394208166982500935119811668110484583154914684244998878857919078730877334372373761745297030556972048215080948725486256586969526035371926338242922177426788417643448799472161066106819467643915008875679289838642647424003151441306456635124327086125866285950672820814258670065618607479673753355591793223556426925977882782632699601814266351153714168637983822439058817870912849461585743752555969587666641032232079734363248823449696646030703966792551704432295984474300464064652367513362709066758896997071050196366569034669546509460324991430483812976392209367047407820843943241012357605481360535996367169269293935268934857804319842324773107468275651626903370750886172222072790952441889178356644193449949510867755373126005273866361415500585232311299152908203142271749202120883010824108004292573837057216537535008261822921271429452251898100340289009273085996802760231727839052891763121408038159108930467389259867983670644945644705270364253790347667728652883384561512243279403420348803687187291262003672355950698459400727775701125671071753165782957708998494024906866493680640370839657849370375970609026196609334474272280842198037618306980528976277092536691608164563703373863860165216735397662253250605974713077581439700279193365242759271964578342056924673909112553390158194873900028984792698000395227086502177445723348293108778419811018794469296386474588811128330793813599028680739820931307977364386054695990012330064834056697113266411837091434373533178440416584186375213967656916254147511697931686513139716615308879069105151315782696196829555819280460444182285636021537848547653507507976217138647706402467933225298857755971550416135907091780065589165731012993155416425116759675004332272770892888035631023034833460084840234813645529161913448625623971497105639741251687492015534104030313498800361137495212064578055319296731277337282576605181837891670912123736406346340657383154991710793249516478726376526478438219254327167394958005246357518935713948992728537259989746460040647248224469674946327243751115924521381748739994024906961878201432718589083225469379881779923550218331675136143444536569851904165526963963466689233669484634343439266565021186367605510105621183228863463472112253868507784908356193580315337929664980904876515200377189175314728159839934954680393920061082061355269679003981984685120291641962185552601068486068905641988918101536590997874653204501843919935347353734240613114245974552619782787453588377848409172510439735746326221961527361872619416640179098993399037589792598174552680072222165681034208559041721721422407973208572078944828006824133291733205922374536619721817306844354764307910090476243919480386647979111154942460571354857011716999448841894310295957291962517620606283679430114024396074698821988683795492788078135413734314782449030331203613180871035105436169546461978105711322054567793604020498270484894456143651735759816711534559173862490851454186291368270034424010381928815310004890162058655321157515366862833071148945196399093678098458561318499316651650068139140585339339538250147773430425814025081366923464265323498062288427641789954947795490856798826457777983473648948201004911041415187770224493231397111526339673977041433578861315100792720950957967464117528941846727166355619762495779241738661174920113279269240762214631313522953061379708085961984349051762930092882205471063270857913034272225301926272127930217752832607945644901224169034012788187798227723299254942736123223409139431917356169453805182674908887995982543527407501662692552585846874382255738344469904926328507487825601822715133710291129302366464820302641422212558810063427854052295374000571344094207345198505226514557574857511385736218482882577697288293195699240326420735443494718766186059905257303880047785843188802390838975686569869579672842712497802135462717423911262801944907316797820896681895864856032445678526694586085941357247398857588370593216163010423111710297312261081860674395022104553660555198860054957975878193638309349828398708123564884837772957849953504179722515276335694798990752911081823082040708681483890488671293085555863145936454388535164061226033904650440078773350163248415765218200261219271856294283114411510896272086130789878346037752404108356259724865316210461091673910331003369392692724560274278890692361087163770098042231515113533642743688891484278839406838750370404710047393579711816365037769282807471751867413942328660169352754325814068602199805035182083393652112877528334186688654105924147839865435233444560054642519931788931527649400260298868951400250385386534252493800052133844693932041480489500377737873450817296365429201013307714062389717617081258623319453698335091902501440379625200711744764534233512308794722432702518072996377569205814377676107455312350297887739482426763875992937230961244081343506292738565669340701520467601113013924709977783786146785323048345650656814824925745660454973225021074486854992456234381791312070720358996413743202788414867587158357688384262599720034508616322232403555811728244726219380369312098986667223405206496262781505504797715635480767942896909635056126560912980774717040929168589514643520288947173923690459502851922188436663038808975595809184350769952530819541109572445852998711312393961668264129390756689356852285545554280983457696534876094979556771938516845626635902015315248199407937145911657019994111187149583809022281095889485944765870325407880157577954517761626731797081421633157987534699473724162878453067317432120576288043408013731399395324203488145158615641844294956916480461542623525281992374493066149408228522230536516181164203865074990170592071528214401088736098138650290511756754075480824628391216338994297279127804568864560781168850965520058632284717598957924932976608283645291781069935265656597152573266371134646095781690232054768743423305809376141091570139951990607562449349656739271562647679127379162619896480202849842626422651669886657311148623050536409859610860442312874264852379877009325499826378379621620599766372187592197002040074494332132745411462205112360528517358664823215291771854955423052429743075334751988242795803743580333853103339520969432943621499473571447778641027806039272163730146069844731259924019102533662378742609258599805056248044554902210813930192749480871207233308343580851983648267817124277905968539944161235533844425475842037092428353197343242139347298032754028165198924457258354025318129534606347604866058698100592958466729767917691474783028603948747347998869281958757716656687139147858553392424071828142085190092434561238838386813723101665161612905909552239177297869368486676472559407217769921335866758599464607702906691597315038639692118264806959075789150269106791812129603809092513629583886557457643976048502187831068666739093541420929852606251005818254711572950151244060131461069835693610579439181138021180663009624915957845695497767862319275889074298360600379723655865960882037933256624876656884514320775433591317362133677995258424310833697207627414995996643230880144061322063746905898299904591512268183592177678810168137238319721696456228846274283319117497740925163237972981616874601948729544533498317567321480962997921467174475450479849665573196497449304465757000564570487321146529129051181170706951709453394963413034714562332997488036976847314410000280833535659595323081201109896202912740675945978657460619431809252224358449524234710607931146975204555584293243828426062095238990325759531419010866380169467382558102667561277370470055222765730065198895228677062034768366168517085978049810911339030538930615721480778437802745944515025908971681609262612507281594454138958013466067458599112801851477829712158169078104379763646025841734636063647175936876327634596789826884486762844892857619777838546206093225926122076060079006673838935109365659215509088631367549053885478522561227958596630088679165729218422424920651804734181073914676581958674435307435325975653799504531483044199574704189415850506439051756610796687456361846495809827292034005450744941090393330682188386902556913069302027407265253021112240073777871881390003505322164653825676071547293689239745997179470481925420209197053160293869444000968776911646195819927126439973176597678732095369386061069342675487556743246774333632512751523746459930632403593168932821192271411397247782674246369888006139808784534391801139267124812887045546827267828648187406167697818205663216615729730455051596202118359882850468170115017689573846227063136155886895929601154577463781148671139285554234296643496036714563541872551891384845433892285859664650072726695274191885997020785490565548875394344209392691601346268209890020895827370684956611681361220959050701780690651183077299101495221631497257122947209988001180345928790132271696405825684119526305550530086939896099191963553093104874990872088614836547436891069196345692761781831375508904681877419129322501689779939146447470691325473853943737185096520398173166852407000715084707370260409189953455457225094394945096880216745813400100459203724759830823828958528365560344298489157477167437612126187376197026964345681149090086123662442156165614094366097765065101373185591175882993989190649549004692343615832908549591351349569746033594478982155167293963766513304029384357081427373544246856697137892508336686807587287111844622099348718929238989285429153799322627498461587320237712760499193444121777943917230975073047901110439738811279591757737975420343488235086228604227451945822185729169370923707654252568205612740045601995210379305061514488974986216988009272897570382216268464287059955446187269618407840303419345495772485424658367623026403545214144253605716847636375115901031528658488278359244298877654653336069800934219291507973707743369359484307567213427338575325712068301363236196074821370921353443573064957187377273851204992549801516167142553996642351900466802966324264918609190165489186215548273004272898663074595955966131919709993181207956559348038657545788766336708201750894714676658373307225191309556579964325994401611609358069111666498649274014698461936438791767408739930233067535160495512384043232897754997968749066477605130642868548128193477303862527505386174646332301415677011584677629747350680298068278348534360124220272088405737991680725838549970984308405913266039733937634262975293559160665429942250605542438906947881109147498898757325944104410637005922574215805340083945261670241637886837802009431681912507650314691510602631444484649995080251505809918628717987022400572315493686357357647491081168787227688086057866298150890267734469569309135149451276862101325939537551026853294088273007659528424767888713376886849324645778475156822840048325723961235450994099542141591203401907712870895261201218938741234164551352222277753061316581870094735561684494549161275963157881693171897347070070583893935817856192028139995855672783292810307555431267614350850808860716137474255630983659921124550568841845198659984442020649873467860796665912414857507302021045629571535419393709021247809962678359625229010440473140879260875835620826694612964452909291587661092266843136555168218455403888282404761311569856301410507166939090487492549358174226310479451679082838424269886943937320065943389878462266159912185037770344034067905311410483227078508361632801783073151994253178584469613022355366287959467025053137655515235043112827445967843987344428165343556883138905372754744589111662155249980984196222739433873334140415170776754872912984918541286218779605536687569668591809973242018925064199467054208846289103630722588987061351861305731732557643365349759496623335674807343968183196882890683999151963579440446940671079658217617629428919607891727743438015984873171277956812564230992248382528042473135714582752765949375801148686257757392713367301456162820287816625130831976616034516165877686664213641934511723312962125455642236888148977295239687817811654275071720830683055400768702685236861433386959427435391754444315409935725254369560281911834941337858951699578789208662387519407783454905234047098841235407748292695838498910303063235707316552931124666368205097966149840436280200901483445219405724123275023016331050103916200853287377381297528010504774484918635272413046556961514506149073281934303221569187596129471674278786047398960549133482153202279530302402437186421232866426113311219731561083623419656683340463380399111006062610724920577360207815263858486398377296180019508196123984946756835212680106159537696477852077062570452906489963934160778409649411421790671195043001916750801464222746873284505603584501029129625756137245769247126016719659483493280837179556372914362127007058094069856583682785440154740901540216127018678634724501050728748025226586479435763784692409831882490100473349082993413240712557483717154826536065452891956280225062433191962434852040822642296046076745147294589194684226024431045660354086352415112169903814080434570022263663662194105890131334892230261542332430756721008305888846622996172493430601956404470051525363559475329699528734142875874492010569131975099689319392406380147645311012963304161058130940740138724191735369661716304738007048955013604309275334710530531804065335862633221854412219843064057415981956526288161246563038613817494463748867615128398991250702839281772564116573673195156765280133523504306052998966144972805379754471468823807569748460412729453825549502730398734993728230989958599359676249304650406873435780938443473509222167592560553352367886166953726826441632821519939906177283618559560088564049130940531923626512156477699494474572445188257543177392811907414190642445668749556283555127556437923710663311989164249890088066906969921648330725160250281223752783667989506093366354946457243224778420500286753249955552127119245324465421695842822777521536222457510205558891307135627572246599698955189446014132510837033936690202506737325386271995291370268908361393492167700391981770648188374357039815806917670396711577444317638166052950188671633885611550571843702751710015894780739148220892150647250587246954288909042750308213761576449229091784772070323847462489118166759826258958096703236002348701720718726719350042298354972071815040555854034215264578573840563610340336242592728830697606740828556882532497692181566830099139628621054291055445362640641610200754289732494337501049859718894707256733695254042068718651025237847741320475085548925027306418993814154995373365478422606896934033070490765151695086677815745093474879267208094406612205810856701301636197659975079246520348343057822326829420535060874808734278922958953662827032615647667314487221976894136608238510804627433048560580035017814112662730993098895507685985948535470765357167905275293110058342306441981557916796829291917924891482799643209430620580088401694785653781293287224959430841347276016839737880646052417226396769498683363878800389449756564349034059735525158721867465143774191300264330425618788286234508013744178829232798973626465987907852015936944399740371116806319729950980427812207677566578068872932862885488495787496055948001938591296660514288149784216959650281997562865986505403896432091365286371229204023013250598506920449245797537651631521295628966926424988637486840731337310397816156049000134924759566870653875641006312886377071674851087726023559174281304551620072502938982234874854502590400387930215109665330106881481769572727963703845876930756377921170591298159461470326348746109283256263143301474140756441716046594445445981588150651514574946157687054729407029627366143548398759951200947006134353248513985210226838692226258424644963933410263233588858050390766712200189069435221487759850001530235104397455296264878717114607810265082510406625899118991728679634897570803239164312574331394091696646434104894675239491944127866344357637802766402392275687026924662243515923995505222680840691453192319234259782957710140945312935532405151528567143341061705672447256356901941701830543651146651697133561190414466155757416382472211195860254761822098037962251544896818198744536225943677700826079113579900099026209874534075454290197533232663835842845697642350675351875555175499440701627295186068369146792377491373952976728354986646298817198991487274206323250687649220306027015283983411521522846415403010443435009907032477658528609192268234020159790000718311462388219045351822360770585525747764688927878516304618545713335332033208717872881244804253942412630746411323374329883272025666695619758076191591027028989832439748946994686923030002011648529087182945988242398448068916321295295173964710397216384337949413481064199873328607595364609894113889901908348530768949958539177485068847267351706815617368992823772110462223724557236646383464840983377328918110463484207044832316806156877440987457349129858254660814069229410814407706338142886682358150931354091486836133401813534818095113798839812720633969393781092112765512833459292796146605997599777438858306090988425255948291407490505323908890393366625363340177757133501325193786216371038776654573283363476408422770676143430096461422813695067992439995597878462588721961253993296836932459261742295963755829492681661980388290249089130836032240078380626127357592622442107504244847910437751244141534525308409851104479912177720346258658350405626934384542644664007073457664275657136923871117052688728580931554990895861690744165438938541068352886686925991162399259067311172085642195882932961965632950756796154862413329141434098736607689714490106351345767323008919121496064035264178106317121781659726737647602117706512369058971652552045646379824291290026560364364000828730073652421020960353096020050013550075380192793581103754507999322481717606560591494172001618031409721885370721886992335474211622347262614144591889924013369304770534102301747995102624431722096071587988083894160561551615821376386917462045056405238969371653621927416170215949202758856280979993157992518110949771800540913951252374557090508903417763338370954289528072704507954648454741399436846082443198762350162427117529944676736274262669200701256352361542067783361061888949614222757040791357637173231618524853005638372559741988687311036192937253697740347309324802314868098987680200067239061705123312344466896297810098443113234084359063247550386938489664376119546527965001958593548467416707465868309365148530879525914962183421389512410452972346433015190023596173682814962755310441992958075913744807736793691240221978186970324875489170559130505738999558545606348234079345583086568049769042971316792142914968382841475835472709039743033553340843219326458941999845542513100443135299577987165924070152088053122632086167896371400462220842446582305313014085314873759135687488534118117203406874413938805954669837106384084975179084694655780952723766846268326918287337422485977580922131511120960431351701009574564850099897058138420064015670248372338625291431339823939576881001087200450924809897945022198434211719273716379184125441179041796824209704324041923725154859657931517636308821649294376230044518103270797390610881962417390405049392630813429097744366894690015430745446436089844615754379665712634645295629262051110781793729954065010930946337635480786958667460939054030300315444380282731670898882568688190225001439332596681980088612112619490851842517661012696921386281702496044005470178241307855524074857869485169041209128718419726128426918828694065804348138131065530924029361136470428699082987680113532489013215061739596609683677440522684745841217638443572604021947539828562171212238604909631549949726842002840371791066937629552337148222741300690457430681712487873440701982408949482513467354567623077852265636767372045489664149854461856109986483084448551258909760201471647142484819523331562138328647615195980991977199854312611479559548063148224433361473994497150266552574716555664717614989408181021232806730901398120122825839662286387672885825764823385494792153675337924209175817332705075485390137709260344678045720656841640940867997364113301530425275093119595158248126725497599764189921385012095586844627030703578835123519494702522392288719311521750724724580997513226088005184293599741174091448437974850189131013667075877119669064387422009530162534831256847160772947280791904209321287198543963861805645767834583324621897681407909072849678215729591311955878528171196704578908231015314642892059584905699726229137812928442713192452941816652739143066866969035448065030778391888650785965060436111807250143904846884023157990931636874196646864810179089806913280984199829687835784840496102006032621045322523298383830502701274164486826335318374061619433295742574001971483744801413298678355179079107720000483736721409494002240341695686822655522996504529065399013773606758594459752924962337488592689105294496924826517706206195007842917057290482795364732525765095902222611174361876105732920342231612088102479652115964504328151099407315338502934420540757115560853823123734538389474576540417644633583402572987465411938147741184996729380679670840311090677237764937172291950137116094271890492156358417321817547546347641843708779429516615320780916256835139290803430095072729665737576234345120067494435073508116535292848882277653014792591849988231444102242222281941293594432087772808190450119348133098217068802611130186421192624944081323466952924720241032370466572451305374257561209600549691603381229252236531613553669849665119395682466793273087774561125144435095104596903319390210908255601890346107614922248643087067620540170806648137959923348183948731728044854014155409809209580144636169167839328370795140835495764103133919373368411587541539475097533245254153221847361130492872156626628224996864259190285826172486588555678249221360719249210493583201491617194330067731556323642363762044829627755157009019813835094249531156541429250590802597542325859784953651175608604030584753336655007032575866272668803840424637681579001132498398849917838860370256726787499569480691399124140158828936765996145104744237244079130160475304925819947272308888525780192106993962353060678753264824187486744529682775381236510739050883133737649831278663954364264278816978181664988526056793883759127574513499675271075808026664169650893809338023590515309212642351006228056229122910539869657547672204019342870467096390240511452850140991372827463771820853121655199460266859213159676033036306870169587678852142563139114867391460058401973838999022107899951841105697583974436306524934588063564073992007227315266288170036689777587842770715848672292378015671405336136681166031044680194045391798539037886790095679540354273802401671872271839584724514178777073802445467415039266858223526606755489598421255373501857884243984043621181729386363492119659748624189101162937586699084428955443282373724010167648534133608954022763685404365182071036644303109855316748478347036793612095040434062426313468860623632230657450108047650316066331836678550321843037801747767976873748189054700353928763808271838056556336509030759732198924748973121436252663406559600465271445891748982100414784343905033100240190038484105694285663822565916265090447461931913978606403740116426778059472364275316940003881675120745185044117308857913236385537388694594232180254867430241379982373388557519131354555308328836981768507181679100471124896278445274798560111438081045941668462731941517323507371175003557913357348036336800960639057044752979232264674461788399357631573018046301322488864171818275379989967526442390839720342301121967136835812390776724067118815892144463503601174317438349315131574574180224565965290495874118623044811758331955071957156005539552711213418776628878574910173939390495018496269957390289083557044831427846316373191117900766491776706041953759807709753255271448927356768305395916786940905212498879438107294671578896702238824171357509044246577778895959093807377626773389508341631171326953640757757703168562459486463035304045511128031667185148841405354187068217075003382099604149588648469796234756871272752738426899668374132638380217056483289443008386298133711449277484072368308892320210542501456486781266583752956649239049423395418159125811917642324461541298837783641975355308895687999255328727161802625675202464709449456261642870166142277906416306788928894767222248996978561557882416330955767029378017950801600396382809234802039566899597726870830128703937274088400496698153245174246495501889604712748166787957758534487155520070823295503849142223441697078914702730986246578463234511078695817661452925153489848958240923394202876752507951826281674349827879136054096013328754069462956565343589906901751772888502129609487293010119722154372733751748307532317175364941037987797134452179997517651608279725237383692963004567594869433514448276569428204944998819291976765700059948618174064942926954719535975228573902587524287097652865201448289010037706675899560452413988934405118162450123305605963728468600953191358885198960400221641557421232845023489956451504714346101064091241609687231616991335835773423868292857332522630134175120498160934879530748649904640495103096461785137655941003217112808431302191396841480675940490567697041191564686909285187046119118459772107981964779581577299071599380363164001101547181214982307916527331900101818801790999146161148243299460086074905925216302793788013427077507183123242492763890266117193189896726235302506678559502371561222601712629830358208942064552333264181342359753473380045018045661476628198471026547157244868629040052497741401512984550639497614191940992618390283347037427009197428265862123763678933251032357376543558269487930736041702464980102236955773779535016913274875931594353335194551843582889022444969502178012814897551130654474061816725127570888930110794988312687089816922182908456019445409288615494146523297947517457886691927767844758407841712702130344038985190079837578922118829664355685596219531313316249617111515925015241526032189618093653815324857337105910072435972074228657468736346368973201053198302305302598900080613137924626317478619844541378924036002750439094415342536378367876917148642368657454354761001111114703750003991430574298068429934368192908453844656313234718271277674185799198545339618760798998106875748233812625524966537265973191169460424298249073799242792368146244753810184231948819044642450043649396566682787776972045809839795019533222139163902652532110038359911960780232811054962322951586030414607966773998409504357168688634830496037302701997134399726430851549190745205141811162884105897957417050613449634849937414161897676147611827575851604352121170231832804654692964741235883684401059949523094774935473011600414024674858670087480401203047405734138473896231636006788859722821024016195920175554354089615842293503764401052597006231767001010934585405761357262856685238404149257460657959343901740726439023502176065626014578240125974892035159689280149888300943257628907550393814338460607801190581875945769536014774691988144417633323334298209477535850832855141013033779422876500670384925937924909073487345595434414747531071740834583659188527179185627903060528562134814146930224620526273658135917815965481389925310362642280518112529423657160199068583733312943885023595590757449841298606791609818738530322955435150479452121508585674511768693150591037144507176502032617701778269664608978444177607082616125460971549175487317884625318824930155747378362121088560869328167793573898847928001027213503381100652528160473869839239010347211928883016545026770047493611882527382648150990282731897341818597306438215924571816740773378253699696035541928478343304327695647808846280779002102472064770158524639862413400452626329600175340383171257881396938248720267248339707482215130484093479239180665322440107187385037871818019725775474680232502377701030653452830333636097472486773229404854956198698761860125724860106495002438989298592996009317295534433507724447989285758174726449579019306997645897373388832027798117673477171094501779998127104132968431683503115343236522553218739739339802507007587848334664481942698540082172167160192772929750019234265457328498288625296767253334294880269614954954769912406584774545067189284538345959195601954823574114346187492564450848001778610004414060474012323471966237701480908984425254589456481550499521511702393352025616352718119309635594767191547810262529569123559018526215114713067940489841196701266339894554082669070784390866353978048561368464704507559569798006468221974044208783230772108281887111989412359939668635119947958429793876043752539057364373238305502436827666070795660015991178230111057879353300381680632669821564443163431327742575295635199986687020217667462970519571450741673715532425256092042198176271817646070822783282524182803595730918255169749140090375584940749289742864085461263781683844620454113064115522524308110769976938211012636726661963751693394910576884055983028537025121905356720437077762772553763672046685913531237610292155086837058961766984888071902276083565741605852576075991559067993561612965789399978957802321867050944597589249690377353588313219968721314482588741150670847403907943840476245989417467747012040407488407268599483782742098687701740122278424932527200950028175406076373657858595896374126716456738231497705138559751668209034246675694793060361955880863947013851912645722053977940022244768218702042687194560066121612264977700573265744449370284094821609287246048622460448560655430308749970074713486117311548611784817446762386593919181957423669480612860661574537346022100470148455310402005754240986386239763974780725061648973841079508918049449279918494074928199534554524947642083704457694987974296955790084944262445126812636487146727376480072008562950179747220271611924393581056865537935366069917329276520239218970299847796587562038685563830100215327238149700820496571683997119454090781272648737798220121976121962637209900213376921825709905288191495628038615664403157897873933385424227510750481212983716873841103092480203873522879643724769706249951225643246633483687784257917838318881345863304646737112433971330159860563086161655594694677688355244580336778283554877417717863216987264082683136684887832502198375696598863057723810715040610961304841118537705494285628395048514697732344230663007598641438872552082020112157371860828269786831785799765953727168464015079896323464369052749489692670916420852294290370436735468011711647686651646991865498086060410945297943048723865975219118273776193668963091300378946359545593456297236383281008342772323505894142881440999896271781014267375983799676815378124745417596809485997661218911317150372863274580409021070144323680344798855723931067997661258804207424014359895483792944097738098843001059461480768556272374283103143288632250337270214222850453356753497299523666031021433899398175771446364689239320670009032647072731163324436617433971933437931120115070398436002342709759345351519835823284165210209986946431807397774467162312453831517056745328675723295191242487466212655225928612594880380218827317482312975457321740029461141172998857275150451427024594293239067870009170738031134695283462463038651961945268269988047137008528363869092704593950234802568110267982227430045080468726099539364365877807959355608568378719951287260488789677891135121043168776458886286978276926106412007784375404835672595416555413786678232246798902508671125996187641315840727853891037022366212809740760102336480519738685580751999759444989434316664937389772775641224453274154964148920251736263247769184160552071263995532714469812968653978268234061220821063170682375599281224927234313322217024117866836133243182432639947781497698125584468888732158150719275581141024759611753183101617177364649062642139361283712986099291103232400494971232409774233669573560445030800078496388023272810047988550559990424033528542812344662503451603939234395048713588422114214786002829643181362970997010202096884112679382882625270438929441998124193029184625387938607318226031755900007452659715130163026883054386392088408928342128483998242900371011138300711235598089013084661190989496670642177276066483343146502403594729264560910410449349673893109354139400663583848421453034597809840245699813840655538811184893821521081479890357156236783653818945957487776756857966656343213869851658353284730673021167287611990667765919155559606491331912558265242561373621027637097667922785457799276061450066095952740257693878533479408823775126279987614923783392781891227389819556833912836186875337495490037731734030839154919960188238019831643763218817565247427559094359057009328526971615324945022354069666481821540716778776798859605582487936944918502201720566140804113272301116314484082448353276541029580896953832146732967959032066695005574013779264537533024103007735288708209496612062977610412382287923007883879204769505801070833141540016594836526113835769927886048370366797120380842657375139427209403356275182905832393968750573374724525383141389342898130513181509758749383792810606421006921017106349470220366622193927067436633619178255032183728113985109963035729311637148002410381576086048337733519917645847175365930929342705253889273414885141398023088158438119885756493772593306052915011932464097814326486590968951775133522976278348335168082929397863870323309218023058650301188565364870421861213006321523282043089955233486961964686029617715630800213192799418850811746148442105261383497454058427164868941772202744536808169125194093119344385948479058539570917985106869954706659394676943403813386033524698547917932751561612695276847352038992564674791186096022959604292436347772299032068897275662795734861033789724455603688464276115173960832003344591955711683736157394269509897842873559470986417244442696040803954672466650928477787898243785966518058790102426186576350023702335013687460792300928792570515962514429906811063916318893218381064487188805090221478175783910530944317891953698291434216791119035225084563502072168080739847577076074008934549291155996668396712807557125200055079320905619490014441873141854547107411445878428565843895560760095766199698228916138132252038087191837793832462666391706531314927661948625800207184122257437887181053714681728467527197074828076499931533373841771614603596360950973783444362618047047114863813874014957920569479832102656512379569123381302822599635635810489727376087494544690644603270400954298216305930010493563363819536469916446787516667950002556525320804722805855984738321130239666481093032409840085505775814807812549276057679618622052341361632104155434809944806747320255446359852714197566459096474306827151159854980490723761414896952707572035018630754893308937845330987677455382779261243610457830138702335469671922412548283944746201060515194838148976066928189584616185601407159260807672093925608655819116214682198376771980428155285744585893693484201810540510430195275927086107050778670254277550993998085627105610629427492477167354611516283882028855390752267642669400137592611530779062339449224706441821597147227784349768361128710843460483875501070896691249309693374345933128845338110903794353487071463535341322262012116833403549380859009969875176290239352086947047732907185119124716495324548609670935734650964056002180025603041546985364338199822697873757020306160385630159910877777654118239033604136115902729454077117358981357366004487072505428065946137884580668146491735512766227388445855193345977747867560766625584819741805923211043677981881833535867964243359963295614790433260228815034040209437620519240346938584771767727504306774228647376344979956205839004650476526190517338018068636558101166255480167278204614105041585429709447387748541041247274440511673762281684584606468313641948106815698736191741640924149599720463031445990617998610707465164029442038015294244931211929096564180207274435929056413658931986228906304326795620690888660669773683882575270476693848579905792980773229836719729483408133535510953305662704244616173696990478646535586445543701140065624147525416459452021166702185010654734738690921762357343566320975777654902468798600045789803599015528800519202544981103231367174961694864040965260179715729405220118707627008042292528319196611947047472511877497640447686317936117283324673147965841531434977373433898744570920465555320658303383728887193486228186054339302211975222268738368892887863777298232243972518088961616356217096618261188878229967192074020378771327263192471269316171946822400156197657497854200151998072587494114735318960073747693449254966155465791164505980831662951860116039797287735321290773651341864850087130536593847302559691600184336647431836616712715497965444816058019914996348608807134748677676515691902275294151137223650986310583581771439051507361249447598025241827427094928179750492478191571322181050512208279991980194548644053251586142039557985496170856475164600585179961281855123815409486284717885482179752683334095835018817972917372440815905845223531739853410969427889806669826848380091621471626815609726362625422805522914384933405806926502748822230416828070507805687448685342918657302003029319774694592076914972546910123323209992259515958219745391707242751972353764229272383568356159442687460151928937607921622745707143560486626771720523104720798031005016783479917312102270334061798066046330294280247942971403948253507573546257460752642688136465634225168419019394092621205403064729003530541626928402203153208991662828610809788071218468104227549667473772112173100599929695219570665753683270244304043784320495577205134793183638119765902724188385549664998106610111122481963477692934371317303520443715537918172090785471382028255204544671053260008207414166090687482061367481100925674001530782855341695168089155997820836047339553124654798074809750424271725520040273805906577659416440102577675215028107772584770719701158656825221899922078819192553867252518655084263370241432420047054473533976458040478890899672007490330087886534595208305971521218585166094478519164507022074581050798109310395729034315983019538208439526225835928650312748078758217887639529778972778722178551595554168342079414070862792312411464530496513327486577904976391167022398463427666519282025702743737922550516376716468634118281825059546464069502642998729749244607470248950106194332953496591577382801486926879741761859108785094097109940088744914382099137549691206965106828696896611862966327610232999933510668514582390802407845782253724144428767728888842796853332757932215304714171525340713200557630269409596632368963048338439423294472280092453861527171829833105004266034768008128424415724386658377924642041450089538203738719142226482197139120386820826159558652300566877263366583334585274155048796396718294583998016816792692817572498238895597443270177455244358322836962361185047840515377023148907461270601555416177729422911534420206180783174214941683619483641488051931182378884168161504190889815509299647917227760532485551914170422166516136320992404143386038668335567379860325929982747056729062649333216985168713917393940745092186194670849142057043414932409113341884060406863573553878544046495666022264522133843904210344570936208159618231133445865382980398706790076275819431538020765351842967772249998078742673631353357752016589415757276944850321868686891383567497705970867258545747999262613131187728519595853661910772041829992176778243892727191566049263221764748612428134265512693191440210518776694531619265378754035411220913194164909863046621426896214158501529286709504844911667201307995786098501507129764565505271901310765109938192797656896213434588951197440207608575913846199130827827307796284504167818756313934293453893783281924867051831240425586038575607520302668614715198316532257502202768211052377497268518513983563573486401732020415776856833458680234314749459356943329570265019308689875604257500008327937010874958562948433373176396369969948687820676017911425056209123424458474057375826452825562444287607654376749299260428847439741387064024649993594660322439874733369336264601376780246587063870183514719600592271996229382684396519392746180991968461191501584861991751497425662155841745883903389382727654768550807777365054422884397692633623392589843126320316519779319237339334274650369125155008512572304047442525415924757514333594556574523174979390265276939773608524773375842711570953541293652743791750255609825720750579504248668102100933235764064064145690127007889806933606715418059190029786499052235711919194951871196331679985469844158694316981231217731484479806152956847259089102497559343175305019174340529922372389447139985515163898341975109666275553381259190725016584222755877918458604210897590158546678290958779550347850235371583578374745167830729711105983402380332534253917946380953722070047670286803187868400423994721050657744647200701386549928839105409941424217402270690519911033581042264641156779322041533771974944789018377092083572704164941451480292892173761703518044485435590066943972898020945763220787049922363338698960383350960519875128282045405551024673456448633138348314936877650097894206326610544020445162681139349202055239120660559457066500665104112874658333580364378245595341205427061516021478845830318691807633074409257778539115265202947684920619878996233410330860640548403188633395492025163300633036994487631799862068152603698281715180304932255467354214948439454900268001652305033081208980153259132649564321375845591821245285235288070391880431430559528080357603697019640368877586116113637364849588742360265131476468273654769893833969307581318798331524572484170320336615964837785781495913981972713947324048447121926012504577279749715385088143851511752241010388933166859031980213814475515705384708800953931927485970517329624182773498381707605196718737254079528511987114399612622163599320856510386933832158188795753198067381169920865534144112830008970154766689762758538023158583525128533860313605646379183052279049031578497785905318755911175036530766273101088545639568884175307308580933829684281352848747271325312636419647293374290989229754839243575546317998852145390483753030104041908524790578683521643158825241791841988221434204396209885708837165279766034325228365136102930158947836677885007493720277350389590080594772436690263041746325169130765764402187246726975450967183776533879554414055132561500439670879813729864560760318884745606577606431956467173304937369072394155168269144638290709423432855882970113771671456503959686192323243351260084736899520713596318616212882910693486564459454230766700563188194026221681730070353616631006599612115674809699508634105961011535962385882488645942618421730854393769596613053787678135063258160808955397072540496617563770152498762467620485899292411970582050349215384186834917460860176119989579294199866261505160278739715152457352297951801937963434634868475732619176063372626264323878637602587951526584591228822607118446644211652540504062649180752939068024054496897446114763022881066335309467709165242591815988241677640974386403660120071740431920283051026544956359363570247816271316701008049279770998519471046089113526395222945439454748525325133214615816862125805706564344999920718395789767338877373987923142023251971159724254099166312763112496801736615891931612497037907620643762145039089581626866533372214255015309824112196214633454359933749680352462482259004692026220266810178454281733344567172379236589073992691359234112291650402614987420884445648339816293989864272071348104412957710362105326300569680071406977598720215925661026140870933663869886277072349062207653793372362868204027751593372846116464378765744355506820913906615810672788652421727257847885546415372850339929553984567207972439159728777289176687384810110497619342371713491611604096749642640384170286458449010396622295835933098818045523032138774650206163927766415089201811425091641380710544278336726274662744486471013359383153686043442524629517327824169176511935486071046776802085284359577080319900421049613523730489290309715736327755900429139524380805342829624583477344096052336128699415225972954536603797403868660287406396584796511064251214680323777487253983547482229326104096331879565566022639356669596307047311674309719459918405108982690625010329115738304857983141663708735543425674274375130324994544650878993145668367366081769747146336384863114845659851145277106629222476883397443335778391430108742810112644136252438164705711231730159055136124962763943638492306224676647661235185140418302401379159344008776841328698880279420160365807618986644693425435928532239624868614073951665392852659080311247133579234578356131865443193113042390901401264296622798317809563608952441157754526533397557377389077540321666227154212187335438346520872722150159899885746109683937041336390713581352166296099178688756066007831665237779863929962927167842196337703411383974023234792512603886220192760675555892224460547839939211671039697061073606630494344921795730798755521167935987671665980246612996618870135251321819036944165129344823597272153438513197382309804903077456986666573502874728651165372962923338807718306199918157208616130286030379368161544287529523252839068914698140273204073161659855735718222061318582758799585894927913723782149776899386956264775140653180649959705683069648956733935066843750427773255789883131695806339477520008240360068602998645677505302225467087207059159975575720744373362569262289411855985774543982924067974432942741612939604854561943811238613832549450403749483406754969674019056451037033498086555593613797758223581611485371033373574769183515405533247614024155335961870520948188685675070593225524594194567499136314924581526911847433772811019013240672725473996358840617585668709036509272907264109134807756022048419384128625605104801336792896206498554366011728997795554347482677033663321431862662101398850876424904485964099470929300744453048850636544932505682555193272679080470067681360225729830472620290223977589452244252594652912971043512249155340668467088481221801131672351837549131096548475475785375349491654396071675048171773494046851363656368994527525873344296231392214443002329087191191731103850163342560513263315637963500389284506535177504911085980250691025790002917219946550320403485518733093719529810661722534539696725878235747561155147673042173056329863327008849571335217354521876072233437142770332489341865426094300059642325197984422553073288743180174389322108691219267078736622637599358848322706744819502804810825225571547319198314065806194907018787097452246823411891563885459697780302780782060664961390844114732095861562099125813691150777844253559074043389935967054411084203904895003778178781987186977927381406045230913809689582471686813659676455651643391632785346614476493666044310381023286131233259012135694052465698840974529404316610386141869463901300115904747776382026553551003175192097887023842238747340925449130298782517080255746828624558906213252842790522081543307562447065749930674076097673146794770724136449591422213272177166995756997645382232711553985000189415485778370402495841895948874865675014415660305005733210756977293629515832146534516971265942480986473612614777748215562516708445983242594032249841583757665926358457186712296566320125123852439623748276630787479452396813422094570125217822811121079877261104107639079328089737488889938718314762927402637702842981515390524208488365375899190024542709251234304587999346402511658010458162735861928002131448774779407776800298428251667123531277025066200518938412425048192092773049938383712120709600730465044756873116770399828518763120936514003535501938276350949769832527483909863585944064779807035643802886226523547139867113290703902253892293186101190192836951872871435525915228261459324699362299246854004125857414192674003680287289627978863062548244191947909678148324111526955960040550345825479955492685539022401653688971166115794467853033206300264131508916816299585535848494430790484581901081776489754627274647547529698160723519267330660852634508688307552229468206705757929077007691592766740987682999693029590385739411872447177643967545864645474111815936028899444567935366152844923972935411649926067591984008162306616969356249209002897324813898375848048098676982267279494316709892612807128469062018464283000497645904201429633831063700171156652782038768650958137849271670797174747242135739327211658993003313761112315329308827914344656307065432220951451784476252575320350405759818706212658815894965769592964535842663760704819574659482426404422071046414267853457037003866650234518612926460367932639962569481460481296345061140608831666143494741375203860886522316022882113597746791846814154610192622497123668511949408670540690151624919701366212572910852372101572266825721643413745806096125880176391956102095943254398618865397323555048084785425688713829069732765163042585359794934444187088952439323986454593037344476414243475898092939040952093207631969342604230318425393593654419064067503603349200726799409880796309565833718874639110638944319459710361448758980785731165393599883244669080373234547532237996993163671692247218640461101745671348474299908211427620875669859735877524091660106622029982185510679669198405147589586438235738331746015373892845206754270993195640990140826254755810072902253799986953393306172968736897045545836724242176571127964354984697527388430819768801719693726449157519772100313227888517855162464893437818993661602470897502405236496858678843297004780938598589962926723203036806812969754040714079239388208340049816966785931811406334902119183584777668562548115195168236440094518249809209764388555767251850715266731358632022153480230360917290615768941183133970297641227682509324421048300630810482764501029328299885298505473189625489137466137549556864656160497330261079531400862257897536943156229348169414231272733903066086613963365625349106810609061260298001022495659636567788119454953578192374369032679636636711109751861142162379388101989486781363349950993569883476915551671416917698700465759607704499909744464870034610977414320805857548602767033072213670109689916943095966441947317462564520246013434603211182185164095644534292947396033018203778926184207133107308616737161304468976217497092231336293506199567332384184603866163441810936891455375400114860987657225514653731882742076649621501187845629380079296066285274141474280701406908399695901703577981551928800539157510901002027581646772456393902647952665788483064146697433711743831540350748297371851210481412983168843371835948987657859806960176688066204749212951479932137337030448724175744764363168872210625731342435933424427799382874012622229715242540965113544776938748862532535487802191525382600810608003951274667550586944330633429478805181128447784914171982565309111483389920800959265884029141193852060754815093197491496615390910502355170447809551605550000774082643727102131361732755352049498185346826330169022142206917729194782391087122185511148189229848579828946786548754421241652611631281417472352420955796249002756732016280102477628218677472724731151365083365439133307162488337694828676993111888971719151163655939823412475976025077937776647941404292801999212633662992210789362584255027208811090956461265319376100734411607849261217426474273241723851073310609372733039204631194609103511868508675691842408353816813023736741229852253307006370467735140115276073853672611901534534042373342484714211315509814295200238823321767201475852811892505044008347916409062357590935183907556586964280277127985041916306272199589038119248080264926867317970461977228017485409275447821827536900700002711667358044666385369516518013382257031268840338943340504259146266424924378451410892768129811539045403128167341621951531974862948482755009640595338105234387542894751705771183600937523811566556917872366835700011616419362406779461795057273237937059493078362892526640921675705204345201615282314898213448994105872335371234470244170951186653920938406321038867932083029645646290253413556540903686591606330942348669661249806598539543524533985915352001654178786809807416975222854686256249586143977695249248223854726417645661027234925248475905914148973148183501646201997409836328848970353439271682843593138739978015785953750609393058165857131742447661702053696371449658698672256491517365738310915883579610510133940867293591009914913819050777843616048903087911407849970847405955580978210803933464261890304476509235878188025570333833321220337668386219339686881538532194437313423889386779218378939024520405241275573778437968549602477490125890294003349758853925451412809862544732583344231606880203704997839253156896859813199979049707465043285812320042722924506291027893190925965875106195995165881262556344533579399300841006074353499574907066382896610997767277001392405364078164795221827960596891136245897693163356926067168644766425905832637705431613416060421515064570651014992631674098537912481161322547925120354390834887680618749514102695997167884551843385879759573706265344567214271310035787886950854988532237163573369738733900838358800620648254255413014682906012986992409179316736453924479418998367392876748775090248412316130330310856645575928171814175458953418738305637429963955179087068385548285730931248453344980056491342276853859343255216524687997472196504577405018469150949984886492605819000037163209450354660305366306574146020615011658765157999070450470137098401042386809326766240403467538567485732363745223180018358708956702825355909871850728588799002066822098052810474308898558126508817792397976304579320696690141183591095374985743999298353413027186165462922879371879856769587440834639031693121336630464952615002038260401253546065771238005635117114713684639103176270180247620656836284999511956269820649584149857237242715777352003603791360976382477281203554044345799535517465489059225553620184547711411307374159497120422811426534138084798556168796108329798513295294481295710590253660075611154133862186420989847889991876637598967466629708280400332777945408058519792566231414119718344934930252153132844228993931071260943853969274227756394281731092974495323314350768954884667936407383924207172178696050953749929350048018469435321776988954310931361278149445395382634465064951608648950221971798376882345678925835788559665883004027209700690445853689465855607194617780194374472365848670824572234247475789563377315255017349212791035569083745182226332652153995225640259762226066597489177740669297757790564339006340010963286650705421576323835353769380604521808917772917585651341508871222557721004896851110072500645710143465177108530448798729064710325893014432700327868489096677378636291643609615765093306988708713196235589071552499665003938823733668243996732106861202528459943340597268170941359440962115752103145757220731397705360541832440057069524887695271281657495277496474472736943312802097868879755963892460954132701587022017475956271467973919856206365331181264835765570761814461753090586086730533949438332812223992654492502358282589570106166074881507481116922746828002446019793772963978438812721247733939941426034685314351707659266291558547161313596882099700969438489608349442340762738121972522393517483761972940147025575700583745562120179279774190443882162654942771275194613655374997348620136317135066722990606387874913346034413528832022383721776641577462041831167866027423996297069425719257618531840827523778025680981885802162933064490753962980660597159920563953261841689805871635733344207961849948726273409628490692569613719777616591445042510468008075864693859353688474887145885073877472925287997753545619983873642109615080632957169727215638213151713805698366554159721941260198635771041888242267112656602675730610899679719904356652241870820187792064923572497844616672191333796837400793552777574556398519104715021096099330253849139073081649714571585550748502464612747424494880543925926729544529915500657333222048989047959085538012837144973409439059594934343168318911356179761967304433954803351128650889593741744172682073616560009053862013554146448006227243791550781706965300731127125327082356607283750623114664120399989253549787029957371758735026342545428806392307252588537382131016608096845372399028540025953988657607842692147124368649830122930477322213534113459431056720735640262728966444393451923997937991657308176589529329242571493320802760924620152112660613852099348116874861984653152583155089614106439145509230332003973174905101402429878670824499123409741737986000102715245146207547086362638938148220426367312302690396193566459961627799165712200470592080202332316863541004031501376512963659038816713112046355078330900903664108025659572814325909812781249318622778605276251784115694408640288257792477836201868093380426235515620142361522833032489578437869145994231044591583991800188112562860120440543436156944633969429612054798420239641911360922123261118839964852838327902646512834609598155056123651679306505610004175210111512362836757762773339692288220128952910446815595576883190353530598688853132958576887244779713578425364516321416716014009111152679219313993103890737659663544414349800945354663019576814604976116260772123005122466361777588449053290323166619320784934290499690302008669280193428577416280138371293972347595510767277027693809129355159251095492668262634832269039603783791199436070100915580496033026236070838311487445587364296715118193224745582719336443152735274728045327726068133027991881015313698650502413516813284206235350221175972791459968765996297133243898379815248216741962844117747736232912342245330428849122032967816480622349771451344204697498009981576391793303243638736853779508801934939975245605988989977406962059045612405670283802252573333726289373167924531971101367787832082331104734829406179524515372880543588323676651661548807766741527663673375894215580552402587324416195662328799377668979391250601061500747636938191848412368805380872585516463729054118508355994526624239727537057982460079317845447962066363209546411704800022699892993540609517657092585964754306517656514671995354508270811120150134205524314181897171210408702292864247287189143062846596792697000962242160983522372806985715188383665961569837486982251207609037406887653619417855492230134237233757562410027865067339753693137784316890443274594786226402101794392711554875723475730696154264821496311717545318211918765569892211217210861011190004063903918763628932831304689076909286167750136014551336939763345419063385175296594060707865114573972744837836124116614683009069130996896768338363328859880622235714049854872184876562547152949307312663099523121066974092618307820868561133591516345158987440699701413228770738549591468559266339797651369734350875982634422467691000942130448935079149221027903401545789996603605985712360824785088565138378681834153273932001821246005872879830458516424607553983775022505051640033950066283095562414462627540322535969631819887403081764300049605885701357155389883908445341709284548023650618456216366475426460157431982675828172158254589465105212880874941982567008901524477074675158727322268396594956627142100772384173285309438331315139380549730895265683112604679269939716323801860111563039106550433063427960493671351030096615024996219329277340236467674330180042083245041122742044185869387679448033003516134206053967489200137018341376546798092043820308828188114315894058641986359520490181688864966887564844495488690653314704727695035796684441206835279062907938115050435554887059753953862626448397450876837702281343944528528219137974749656355099518111455084070823247126567733749761682716520128312858192967393354028445941156873306224896929074615128857611831058477829238642096981329074506343658787976453395249647963701643606429388722492290073485118882108548218034285941182196188477312726478785951957000679934493067150841584367533764539342157087712117345189158364530360048738804496706492182899521697149709990297159293434276058934630848121756071847029060923817993883841902954911826842133680794254160600240494554692619722857876503742860128067159511033873676980229553486627489858739576730064276047533343645414929732348061401577109992461007575153581722447599623440688820831694658640713698952903043717824464547128600548101436470435094082045835918715600134458165952442080863849940594508392404538681944928139978628828634418647165948926097989768653941383392212480730510856321288191412283288819044256319082388667558009946579796173161957678407839750106904169405884255653174249944028240595017823612439478352822025012668739075408256671549445813540967347439682434503365307268057947090615220459264042229122006785475910245967397994468187067640370186173889785306031934859329888303417180366780022831806052879060632515520779477455616458422852295234267723094770579444249452828447639807889524560166973001933328765497398386070188490776481367813216415412747868975678081476796877929363621786793933329736673880360542176332965544597343900139770504918617113721111223057236295883910503142129341328398042801653572975465150597355929629555019959510144627040494305458476106771551831480620259021052734105565293316144222771186710693702075019389922311485683459888206305714285309851197162793790252434742149929135886583082414089143183726345059511626040780742045264676009098541530677532988513911176321099573100860404043389760148984877475951908440080131312962962533384858301599595911249958923735397434514652676660397308184699724934312043009695356392049592822825395063651052246174385059689402111801940621728703683592814574303152298495830181409914366369911240384109479274001857200299400987659336069333791751680075894027984512801248621010398981607565039268207925846346780296105264567742558356514440873717337248107971085202949098549763889065613135316716374387245089026596318341958616282808058702002720545128302804955324180777288638064750842390271449554851352286933267291959352212859993811707264577723941516262672500185906899223700514873436874353798945200006093079581879860524889980694426614555922721040214915784949613212490538807836617239930717948385465286487347841408480130655880802274025821234991167628849884460057597013071468417671996709780194242198775505566180432456537043574522362088945257939285864767033894955860241701231272667827145879631856570567460537563455005233670975054015319996569544180291702080693033338804198561949450883088300328723937876501088942149939680366323562761504298746301492188410804657982384505266287293104489894074214857155146142779493818038166793819622704117018184212396204920148008901884190919857464906528596409247644183132976063330225183641463663631605204416914072812940650705966992595265280840805283506047469295504093745512368434834368833939071563689612525003759064488847580013073996110970666240335441968533538882867355280496168422990046021037463656793487633979468231735884263042991897270705747045544466610228928338756448556627371578910659234656676463338258816565637985377911497380232795906625203421608619061815880113090176213439257121406925032315693920918782911269375370017660650521056263791077852489384964672786129636987727126347619403516611832733457521709437060258873490725856054642304039630265071343326245653540901709668533373039929325236924353995479856120003307920464701427902569413124788420692146862092319135648295741261299385755527717407795850651622947349267588188083893149540730006471234795166916374529275727218297166026880684563960323004766061650156631698671611304940428575544302013561294897272846456312871325952902509663536988228645945553225291567582034751025432342923117402923378211494851970307161386759398880826979435843070704326313293574103211317775500326239383947277400239452779800323077464344413715107728272978838090053482275057588962816143631814780120274381053765172331736879451286581713326376776518718831904689717431644017661128202164057729323183649094047704316151623628341178475469199370516360306512946438197945186421163969354234543587155803532963793553298787538528254980738818119938299971372721053964197030284727279844596116150364182562797851071140598557658413846934067982671020178216958163562220490172539548155946671281494184733095385322364555403559712037507406534421341229963074141204979135398183417963866387764247259525807752659865117378476719935064629944370243693467613496223595821992488975302859745418659139358105699651024649553358868501527308828712652821568419946460747313917531652026504891813795981140680088282024694399633654475174639354624250024280636273964606595315419722816524394542109849898177797121171298502723175011690042205175737944081985313073738772620520447998804533784570006577529196963900301492860018376064624424157249752229043497940066470794382647043003221774067837329753422750950929187765436751244728408472587076850891643448144059373419581364144803050129139559871724268732637491982868335894363608851647569023307789372650411449618999668564387316639171666018765258890638284393906080161285088416429544171305169623980134944842766836652335251909426401988100605320985614182467901928177894279591697252760479814156606996537357420485800891607099670098195230155769555610176074923002113391868219988326403855521821733203933763287810275288656438658446890560629732162782065400608464044865719393560462808244768012467334654398940057766510842495758629889030475525425338634726211205913992657942737705487497716972164710449156624614525847381591617506148220214575608710144280537396213839229770890482129744056266180036619155534270052370863776049372755120342455910221529217337082949499563851394734947401396293745008039568124758605230015993115143676229239442093919947341491817906230967011699850969205026033074561986841508477704197923053881856532633818780515225718713687110368611954262381410699574452971517182466405705311805895224602240292431757336794517599501201280666198720364582099400391065863198457422817333329896380194115386316264082593997215920588659901036866617397416282797266096384800103207672378293545585425531185878330644705092233986074733202044591433387558530830214997778136107449096217032560880547704465223306941463964137067736625522083361876152626712547891293946098767393724062543063430214862312666612989392851018830656883300531535045756480175770649066621146598184262054106219816151218593952217274397576653178137177551730627007762355709098033151578658023078399268848891804905579354954378095479468795307346715608360748387678289032710648343061482515425216961694501040547123314388473552107555283304056635166107240332698825031330002379970992287914974158885506419324704960710687039999481470672736075827803801279795650067089058407902425462722530999849212024819717622726705121259677155536471924346675497561821151605824564423031502987764714882808184420745453933705862222428071270766859624328078408447203514937465977865418186580827385813497494622780824192704858475176820332478253388388190341371416906516188323531108229191505656098984212239051453344693718974344392418041949500393742502310169429006154346299483292614379478823108431841017316061283727685038979712054033631576843394104940634377925490950721088678882051025572435192255702621910115522766206831244642045181009778123713203343716162395619615265590034328656473948692913250824720273966003438574577931895889574325013835868092786266426443325565831862136074295708838928041405868077676138699014073629733913199085849738792788114281038500573874764624640899661568262911080909694436619908231621429283567332814381577453832112448988585626808826098168145699127427502982064207845388498307485417123475572381609991503291523008054761607721040947629432319064397290629099010324928821819129676560856914969127361112868055050642127909136919724619410008814403499969607124819486770197775647801343264550503543823444765759483657655730473947695894297570380188168550028251418072057222505010145393885501852952790236807661769733738254777056422394783961915720846492828895927261105947410732658141785373386133718643294672747753261576908770957748981066914107682422454475324040684492240149700299489458090472327192046986926174506964167325544072884573173238516530144995664493345246506110646582191269359173507213253715866430829479919903833707243447898921007197660453673200828470876885075400876926571805256391413496100111540022278945500789724166520154654558359904784488866325550271740650583606326708630458893027236145584310187992873411136692961342933644314426191448845156090331864091638326664058804970869079570298597578010539829517936342551392655209408784089505379572603026181706505338000653913359595437052193055370665689674040773827143573613646644479231668991058131678116447257777227141421590676056172420896025502184228390875016758075623481477537466888099538549247034360988016723536624974647142026107884230401149854050116104570805076735959386287844522589335774089276210830746157420319762742320688201708658860204651792413826971967467948063646495628002971991614302125304831032034803641398827636590546048670533370348515913212626363606691600641336214418722802664134598565119786668670412320277538700474016588272154634840398098825601205820963890710368780366846008858327165512535747476800766776222784305930937191539970155899999679213737283665969639936484806586611153218951831144961321791953132134885334999774171616111554597024819741085446251135135200333116347233655301766784734670927230085882643029887710254110151227807560773736873991485976507116623288049082443608510212369455753571981147381803269424681413307419182375209568019211138816317977383244293133068636543546231118747063841312462275260442429760076240481115492570307134892952747348266255729271978434055060016371064894048358928966699323824563838719914789069671429611691782020638651930439450625418743627365127186275513256029430807185472439401801409315497489116609973329224269258723580144817656542879385172184304109173828129133853797705159627350813586928864602334435620534092672559657912558949096307887776768191526795040166856979268608119310572919020702911276598561942015794906288033756837721490393871871204936326065698852719810623650082321150877730598058266594006485943622879567258799720799955186529005920221084117694234498745741390891296350181043873076268213974670385627017347513618202277761424441610261119572008317756402156145862438037870355974261949423343435936991308726437327835761084606241476942137756938384189267898748319648309970691381867000135214727976907581749399025957668933796714941400586953065605061002000165640021199319437598729643165867811611044932679104494800477843643507807428017204555702217913698546815273238213450844342771914814495737072313602045085408057155312687013978332318321052803536462878533583558193319576137334868247143542319251066224418746021445513394838016455539633482741894582137470303053551788169906605061092718361318788623349429662209902374594767580666026802470965897138495078711158023021181602628784128625574459974296559655791724530522740563862945454303178252121488232573349870472663107974360140954908653546642689870124326771843346260579697504282074096940496161889250468357251750882336677621880416973325113627432397790726590764321524917779829465157586829129872651202580058645171042075511889882769021357272858270590614921467504714076306413905304564871267427154517196517939536036662629126767744784325345330923207541592982513734337235512454633368308489938147596638606711429514605663067329907894033234608254894364588559686259536411633443703409839389505187330366633420903934921889371494366420084817997923393383627991351708137690058389704385859193252456064274474108098242939222234953974137263421685730316808670895648666569011063112608260371860476942716696831915470161430105088804037838222013962917784470448566704405210410275313416044469246411984585669646410123481298691727588708371584111753088955556105557266983330298464289122154270475001268706555770139925872790014791573875341107467735756490254123619179517653495095463606348654341539202314289223916015750451897521141437563386223827790636446059538983295024156387400823734386428506172944785981929213633740525523884835668675685052591292584351108281640786932890770008600820261767231785444125446031322739575091467300668437745496644852918168748643778692536444618949635937865616631193374339039410741774288191122770477935741632615229836146419440037854955897591421644023368721512592395288868324781845491846151432813818767708709369109052238763402455650891151961134019749922060165233896105592846172643923462404421145403438669997823438807161911597918956129072161866066070200672169138644929410747286196850469141304044550681060357183944463440351165219909406161395113088994891521847237982250403520471444064314307362899669825740325815235456226353659716311098063286418835984807431492833351130352285963737646762834014072801476195999353436836158502470483869265865431391374245043136489983981839368078807934260535131056219633446604195940191465573884637395592840279057129358506934227624793229187227179738005908938595944747019154921064784057683302786164490897819364501628639458356532302995451485511105312738221332935323151522246051926781064496088026161429472671488591677639287885019134525940057033353157371642279497684841709152295492375177211259487801425061040417135096903599456090452089209727881778669318640644645264832993555485402802456878556885251411047125345093280306817152849828627494575869408838063925569004538330831654252631704944621004912532331233341237724537859106331197029142172093443357779641362617819553008394054475383688514780148336357893720628260687716839460668462625629191517857880571636604896562881326146720100493344217621752918241270651331090305130491260707603811202600840875095607713676635807788862778931554653546052367242388021290716681203366930718085695057050027524398438870723769482723615939299104694080944260655486658657402672909724187561417132222435376850989173765870880794978324111412557666448640192464842760130504521437800825289945069062466824305842502657582336179330401228458128065770184597824444862463598658233726755245135642038913136142140574733735193003047728923802288506904732050005732468716148640529489659663140202381490123337907941730502567770280534678351353637264495057753173211407916839840042432938164350253744146962796513595916161431877115521421455225258895274489548939462633558677869289912474024498793468125056244566280779681431650873121816011761310526152023378172432876810608818131555449541906127777507893255651474375812991433122724623899911462999111308890858122871267479599401532795888665543694221408769574169991846559731551411814757911307778019125205360771658165377052873285535913815871142126289511824687060850225833461906064129177789926339231414434857318618507559761736843083535791071150225556352286505574142889474378955528140151288273312920400299713802730692356294145791985533009327945603204490999992675672971099469178554664807194794011601859029128765204949536865096664439328385860385614384124864719362116646978075174953345840543615137098262465219108871327937724714361986052069806564926568463391383782657400583187433426727608053999946267617802042167416178712815710864964741348468558501399089600657021105520880977829913614618421643248161561615088523971896730794104545295587587690918064548895552027669389906423315465708612445031913764170618407555375863029993712344286114977739810392128604132622092092120965487864515009221012239054062715918610397634376280095129958348438915434763627749339977818796947147335902602562509213693767295562807396151381556487636699378798598542010867851207085235809970341488777605880271905476881706383787938970433906231798406932629722455521186878430745864043525545551480641599124427768792468493370940725056643375066621038188360221680205981703469061467002445786077186743300635662572309372310674060419519222847388822193391922307254715475434718763995437401309408725958881252064120510160827991901725883991998775462498758894264881840504869193241879289913195002263254957544511837401388948617920408846968920928460481137097419054906685066694826094986848832414478482985519341836507201573398229492647125523443264722983728632679546056277906388659177920371010421491287178167758473355396903850259713209138388890301826778538772119916998712434379524482273338562389720399903505489617092683669992023939863564238997611535424926529229612457899385111620146522247041102010813583034833199498133855333939569808857263572922989508730407110957114788600950114410074370489519406765008714028770372201857516369113390802407737071392530502863912352884273306392051053378185797253788807501741405312452326489445988163541853048692333618093210153408133705452863230769088510984224696588651366246551913870901960602922261082965913013368336228958550278657084022975431254797637588644321162295684100020875762337594810222144288985416925158319498591203987034415126543545179006425979889581007174685099262386894503089541673386602572476521615508848625315757831585500818815083412357944913188167252872635202826990065563430742526578115376748937543980359876758519808413500389670463090604050118241455771691320773053930539700641617610411295960221034085417136120427152418768589752051477314600433206580692490697515988944328735213522874613552110230670358276624825450406947822568622889004846602949867378172719005056984039986057153127717094091063198496551411435249337178987385787327569954624869406309946855079927465545622021102968271612102215408668091895800512349795074855158120615288826292087259607859074822406399470615086322426029098845508881648925893774030085732649654383296568778843341791395573012741397613310168295944005669547627342370786786803799610794058054970309882778140821157031102302689542388775403673407034433473537324655116740384328697596405648255205320698064934265418037231901099694781772753070104586862402159498143105705089988169675659389087538162040582019477329062014571007598047525634026777715520255833296419717827010818891253360755703124887203959592951606160482451357934645091433239494821036290896372078440996206096077036109399316431438556864669003678585170756213822194701813573233496359359276973024587433303509325795474335341857408145986081852650524109685779637497158416773117343252836583192659316974980728583801285757115310287156645836176879470990775691915972545414924021676709220072129968634821215739858502914076470358666870657152524391438359752997888884395741535977484128019048347538645823131301489640988478254441546502348970770669573896028372171445274324480759298956088569638983925332385786802511313571554243315040268634081775831699938330158882421033696167480110896036983686312505907075691988785835161951755241274425376270548606613455913842044184525075894017361769877044892066745910912779130064874736868476575386663613721810337539323063351300403531720067255000910085979525527254054580283889957633061706886141143697367451055530635179634387810034175920328248667018883392439771674340631036360902673131941174276660072144276682579604119813403166990592084017378305054430668900055238924036347564584636227743354227390680490335935470662021140420279974033518676337986716656424090212813328689316191342928308586031973640880480353177240995737011992770532355233780708445181598364689481791246983274964504738123517380110698387660530516618457684417042098756282829766610108659103924703730864110121710098926443733370234656640116001169484664268429379924611208826363350660393563744676093453369277733165611753887433645611091165481785058123395703317533613084567071654026059436049898325771195356653172294141761446277043892002266328838638934926617703416123544361709509779201537525739397284372754424211396518139423587526642843305687676678319603137154351926884179346368263340036211634239100002593237726121855258106649318717265164221464383865959535951693343126245125601864775229982880598720848257902507013539638824713340698374691739233289953930013067002086503802016561057374823584712721707325012903832523554679593317842733349526552394455954232734428073148851424361977221437244782866664997057918812707838535913631045174399484756704762373548765441939978212569811490755006039059131078610396743808879036407091689336638432768469156435586981046823718478042808350817411758194535122283681346641282670225127288823174882640719095949700530337373827988048719257901747074631565573881698310724538411571308783158816464716698229649857047240883793356146604849575935959134495693358276234094496024417279400593147279912090887976881044441057197037905694059445212113067650342931406401102099497537867417046915370510344004864101028843619940368829154528212962484483664414633398840517283122518247784888513326105758173267570468310859077802551209563399261863755862313687235098920160120908320155753648011354588829339228265644602904069356421947422905345978751513391725187265243972760245948675001373969023216790123510491570675374483476569268466245909161602886545839209601250393018411513412053941899121240897290389726963539390025571968099181537336408588510056344729133231696282831596910205781083085143201374178563316024976482656209437293422381661667140799358832632569943546479694397331102671964532694438693733699704362227576576105155946986871829079769910075777510625322885062179613122826797027913220625004677633171756364781082200054563044909914546604814760833373129338548020572079580236752770738042339678378517227605546456630926641564167011860083504470855257939251950442040916995506727044506081857907368615855059239888216438385910367824097859262303215312228000186329979415231935336845410673693198365727509525031818198788589623718567007194473904932769994837003606604991545080096524610212346397117105817535042979794579543277634124749709389476598983002478298457301558391137598210793157634833444396920541115237394939699373191608748042850058730931242714410354475317912405726406869163065895804044715129951999203752815344273837496595279776732914446051617755289183958048791011987586888808698922457078439242006971314090067848825880424591632887632026979191374907261625297721436013609802103474246593765495011080864818332298394713766615816006044072596757902617488120062702600181258428690016598403105254293922795772694939179952679462349298550506909407245222750258581804744621803623714529389673853088773002298729393350590462866590979019971883046008314202827748046731137179049889636614673549014375617749035357294737341397035507363525875740535046783549740938400054433470381833858418119199430720845843182134579242204966109661313261289306766892116306289697490497076880984515921071664865999912344436507098951210416588913234119780882706677603805790517615858706181416387009930280275286887868498505065418868074703053445044871291091543111551185190882098636066230275615363319584330502949074115436642654125742750941902935719393486954014578538303992198467155526771336287600445948723274712213325106080856384873557165297082964306537863690104087396525953775985221102605407272435668672947199233806752836856274011177522143800778808581895956142450507828429054948657117324773014744848367222440706812546980420621169109879732045745875013221955649224209453187195945031473565721485465270824178607509545429565243435126196542542898660744348759314780395826616379619930575601618333896562997534755000887955509806846956901924519176537895970333407242094341207892991404306679146219467377545534499434004151038601367949031844328604772802842254831259227545407553635480177639938016827322318981344894409862103595863335453621524078864684058334875860798577201466707981650706447256209375967450371130211983248027077566343490685246636807766209279066513953945648398954896338582541347342450669513019604322964506263635991060740537798025007457238500304181987237178604665656168108962159113826411079615331747942098295058576255519540940834803923836592857162767276269479112437954399996614045836950449852125121667756145890050902013730413368044889143174320365844392102571133191234009249887260449239507469480991265165883207562095915811884992020014083102298013383505189005313644717390323098069929006360128287609808597549197636917596857732888359358741190056552700153879025915118927248579812764406436576394421032501253481475704665530031504911896300278058062143819310523158740016701497827374535295168594231258409971017836382106378318880368640426160455957794830953839369930800466510657468547230989301399067161411010708196547995988388047698250755009515224146311529649932050163164577141169396298909382510618452639756034603761281199231598793626457144472019637541020373019069124712207830045141396476462268301404953488791594413834941074143976975325363007642867551879097001215858082291282941760267680441834383567482660586898468788921767641775938953951568519304729407154889277749438903940292138592916418452666117936506682251715571421100512461879919308003305177930502726199456404717739008716954134705844432306049484718427049765679212380756306598603795495694416130645417922872080538952755702085196098420106110401325250660673490593735005647931815252033314615801254626951175019088725498510660949641541505686895634346872851902874995344921463483561921518033466041605842072422113751575060079573452228152377266348590912238865465060692041145835026546901204471286121642177569791939429994560555469232886349162876609840107211206860296014457105100567303082757154276610022767481587539959402007859828534484672125280996218039602931649526470354180785457704153853322416086213809203079499362998765950026952983873945539408876384467386584682897013052637092708912446783263709002355314156866943613657848610953353257421222229553506984830518294676165020792878573591052999359826183737517726240858984893959131162339270679522598023686002393509655411119761686697423042772107724741565279260589359013281861652051193944258211391702563572154158257420796468145516000043163019068746501779659400389151949305507815659678111963754584593552430135647485270044108736858009654019495095994818880401796797971006252137853207693153788883486025093269765218563305070832730729472602052359908604784845142085978069291694067423115016329535546713578143986790107510694084975302536943144136730496978053682703169921959534714593701704649278277559544073382178191008753384640292717026390467750219697435358043511623074434593382903699387372352159524367724680835707483781440271846449775466235414219796760163049103502524949772755128839986103050552639530566424999584051750181058059766028402752250495170244339886698395306094732743949019371996874755507524547553163589320699264854754710646603343396304956363307321007940199224358549743706685346552532406045672808924169473438579018278930322929025503472424358992611794202776953767353862721930461862684137248478264123787149469873624418847059461006783687151106719043605606124296651955925497533885764230461561095441152016220657244172452336904075215205971250322319454213387874264412418492517551465762080122102866546328056799880704069077287006069113108638223119277576738821822955191338222903687080217467447119190316999878041697502706536718122416847000692191956124044708856847527140277263101623165338205177526915226287648565130516552200177395182147532277339978556381800791322329301271510202165890518138636385648168918684718377285861676587977530876225146906043641273335985354739791681598121425848134310674886542109432367534278786759297090325480126504711908936092633671980121645545010187351557065243722189217597421877792996371521538824457764297988476722689002335342530092112513191083755018962664489069804379901534034823951616655262593869875420791356485402324070916694181194316454234689630131482935881313777212428437716560676535862005827236356218231933070313104411341528252298730222251193132376268793445202225105734091212347807777507733722534687748064187078715582427320969809523772023935905282310870181943151766176635711744944460948575603095435507573144236714249288243335886424565614358595904742686824826087691022598245943565133274890518965033288402700764003112502647103869332424369390293602149661534818409782181327842644643605898455243569146951663262352410438527965816515364264902303924404859992359829854195678882639113506790986168361006862268149180059222884908075495599905727348029150580407853461417897166761655492833435265587495006670465595797113044169177521566365309811380058064662032542586829457554045941708643712593394526238105979628578716167455625814862025310988085500394915245979857850562212052338120754280028057365231396450710302865371795380990146830399886819505618078771018404893094111568280210690375354205337852721027373303302625329543486069946757732809334485123352742681421229814439269478142894697458360645919092180819994881683136496639966359476892333722341994083096465458268866114651077172550922480894753261788818547171934294787700437375937620811825915286117923133952012433977024488994286128807024390116066235859468921437736360648108927894911349449303667027590368169300939231612692817904379854273914575094148119848278556628902211531503758694034347306020278654504988221112596914875021485789808312794030066082069608923166003445834077528323164271490097460316003593632000474655436268080188307647709060774951670182049589344562986763620817933848866182597967675773646867211424130157992515080693583746535663644637266101475005964372758177916085465640915904703263157676463463265248654454673070274915351075690257482092457814292427877191440707503374345375210263758733674722187940425595907116520792024761924164753833060372870821228710666625694930218133693639411830800592613476210119939684604630406382787442013174034945069936240690572276383944312984169834291285664954484295734570867289044098472318495950853186250618500841742391110062902287913331483212295672694612225224269764894290020353893144064889319719686359894725840920426590149916799352719186644987833766347354444612447241999691911941667722631562766412749253606494920604661749368788825535605953519408772523622706437693979657478842421417579836699487122865618535799116105300973315961944824877814799557705128125289289095557217689629249772257693421663244780073697817613773559964467124464801462150220738960358198031213503527903249931798784175141574619611104885429645374532062665093685604887564899061296191910474342327608083452168354965435379494263638915304502506555698666252361460994543739112163429908865340266922099814952273315086899934312220036166970313208297173436079173621961237304202383566434076449896516435155249604442903531485124195680113545021065204121784327505304064555099041965611693525873737513918863971262969744464339339487019186156282602487139473137248042535676942210943365740895100295486060253536044870396061656208928891772159218821672089591953964392625102984338016299480029697691030215364502928696338663128942002466430019328857813365857844014938425283550740119565730884709334223230791596401943462280687041949801974781566973481856754237587681078500448493032093083864533963380509458132970532370306659656803382816947067455402592947319838262980077950219874810311011200363954429805365948224652399176803895967195510713131643387148429253535763013657837201071155196069832370458348321948275997422961375193341109995830288003011376733562877526929325283103939323298357673027860563487058356317173809815058498759316004480452365216585746849014936303521144651193334852348224212905359469640881923772922367414790373922924407111219485118260945905147635947936343195589998700069069285017538168901872566044955163082696856794064545805762402515438919028964682640653383889304163883932337304020302044500544743225462783893730249503065942332467241150523488807867974980707062753827899690761490894950907873207194945366685923826151789726027100849242634872303098573289795741595179045739961521281189209108713201624994549314440582302915752639566476836129806626011994357765228435135863690906097093478401076161805233592736042726311303420749116868743467338556529089825969876473437403774683836686590459224299715127027848800498990173305525282847771365206325901508617428256248372872373797612421670688005409875634639677359075371360973942431026765181221033888218129577702555918861291587156177809765376860475571536728283783299409795989380744986411816139716842803902241692033781638713146429908692915207106934196469363535043517548775784156989759279581434854244422810670276915339641781849024778427517388120114652060448654246661311910070486668974390218970252571348355804558572507015328740278704307373009925858856824889391541686119208390146576384184365923960955181698680688841284257559276530437945117928123658238454453287748790492619836142482891493219292798821482236610074972689316794662007346460146049858972127864121457425927802725300417916140389457527815505186913267568733497994492734557468615648265835668954299659994940411870765574876072028857886184898093276294005668694453703335160944001079763653346561584712903840438438635274802120504171402561933805153015794622336653711173652645167072968163756994232324437391098286028081305226007486316511530227406147533278410390476983655247087409774524807004152691492427259661686096567795114260745954952736971212052790794154893748420131410527358750009329438544223032136722928556998150032289363086385794988612316619864998787699995185122539208590327402711011106945357951842265563576428186510239897474263704139271671899846303855464486444755408910125274378254822088332689676682170060543548020772504300213270290917704757941152993346477140961426530291326878684163922509519633551562889244893877918207692528077910284108991139273617088308374183599808658999130543872195685999581982442049679704721937829923077906020597943934374622802093676282431012586171691008981923902338322847061698443112289210100800060043397595785189775450741294866674357435522440585249452278475528586833122135590217429595184751600846594201787303140307587374618272812939702976371189377898490908634873929122379745795646959508230980386412534626912935258112796284421482461205985025749144751993875618046790688362849405147781146988952682640570515757590022096171581126506438287468735161241485050756074947830082609821342477860944744627394176727329861347246852205430662590531861339069614483511271589429011071554946512242892143718330299644082739827256380488997999942260285320090872335316125753495410927944953271463788604590660407727575266414148573072515045788629251602977199118476979620347097909322555368350925252235006296207994139091694999914712047148767641295951916650153392771605948528114794433944951646384783979925583666947863510690598178707668677476513934844082109450655229021314342586177589807510736147463176458384147311609887487398565927413685470149992647339999418414287765759188894291923148947590046462265820154278385979169171367572571858779948397370692157584318411853886255711232049814346056253777087456516340225143437059051215146235182490659507857308772275845505474150090941547930191007869123932547911048756721158267458940550474964516847030525853776275490862733676611983212117973775588791060071868616763451635725544395369587629778820649356906255191930989214089117209653133519262562189864476400368267208212053443727271196280251790167778768408137159267094623705472343168064677278998393647556765419214985769167534599468848602029349668830242350421106792300035077826266927011211479723303604715657669051191358990793140591714048250462701060998442958625913102513486189251307077343418555200692860231742148843772611461719553624029295338249465046780314591448596782495091470445458603535827148211989286306966462764361411966020910699378242995426206110110275541066415519124377720299525241629013413164633043299619680866267248143375310544389601122858076077941777502149936687896389203279145631048988533906752749185346235630095276831475568899370249864787334228273769731077718219861635913384094831646138617780843508445478063971053842922156052682848792928052972952263001740270172788601705077273716794604796963473047021161272470864555565732702772777880153908502815033006725801328119948491852554596284633125084073059425306615260924946321831398989248126359734135062614798739281363901746166751242049868458996299408037909106334806744305739108920508505248413465599818091599521033677100794779734997101279797963969477816527324782977287471887835279537558894584807048992720236528762603803108123554932555921717000637757652045193365638512704563992122095809754860619457676680354483373290644793526251135364620440550793114589696530307841729608643093225458004019874097712022245651380955238863887236172865866202629893806387830604507051369711501086422582705950012947539649683547707850967559026723985254107464064021755579726650293083096565967278372478554495899814060005767930778158971517322836702901944757463994116804329892429558161105558724791583531636062282902085848361508846671872472684764379651824737769367664572127991048495042712556643114677877926489851461833845103514015047914628079401695009103617650067968611144985079560275856941699643021126403544099534513132353101395079578313306341669288617176455091643133858454714854817826446669614505783858191832021942777712591821544794714666773586174579439195336087738421437917241837160405846701242835921314714470490833935480839839146983489894457004063341475700193189334047922224935225985258539132120727485526787577177156816165956846767336411476189056937549520020996265628073391152808934709797929052696573299164313475727267833143790977448618743756251989082014659120072871353273822647522333015960628703423532597675149291095855104984963962567534902690423487541039159641129357535914216671134115882892093433773027519860444548178293061917832914563540774190458143901388310328832236877116194972250838823599499974227488627621016068972444296345801450242524653725272416900504509826372295247855557322204952675486807091958600234748530101572271469774668227828358373294859053395969550216583970747252498310154850674628791679301485310151736513378452259325959815416401029019444293621706436760603800367878089178890256646523413000142741614674145000047867832289077995798153551263347132088353460619404533972036048287199355983303107472982677139117685682626569515066246832991142486982850141188482500169005975327001138866226826926181225906013156403252222431504657471294429578268310870664532542910515774507474216915295747486455548957673049945119857961107778949656668334479602186249002808647917411194731007665310030131828737759827146979369149735793728817258077670766498042402276132245316163563475067674267919527083612230060431222999137907304781236784317544338503483518859062325913465805922233147697907484839378225451761339246733860704811939153922339175223249635543845375162561230271787249411821153569660894492539854304036706076947620592603226322756986654700698206310172832100144113189150659319450180216464106752330896732560735131923659090691838546446639528466652694511539744047746609057028611517887314795249352524120122701607853928474521849201583282294409644727148475435987721995642069617571746699960883778279813344029700309386153777154653103898093451062865193461431791250039625210046106478200817706773235436671539516448220629083069322561389124483203858482166409303400793947403089635110976595500195431394670587181846459230468391398647518871081422166006869662795425413038876626504555431613809850300127982666051408772961952871929482576215555469977953284650349912332043005082708774825247186374977649157090236732676289600373392937245601815462624925257946364028196250255235855148395888546669724320935213162230798796266093266128254748168007767038958246399013618198461152130870359673500074713217256076519820850463759839616799675996490197305169145885551557934773138047419184885371347718399568152984674087051524503175537202516628293443432060673112470830267136171408006437039303116664428877935804577051482852025438731462828303788740048948463306268187799107371441670893213201950911799549785135748205900148731669367216088111404222205832508572237635603960431249681108477997185657582753261544221086982400243864772213700709568765266318234799557070991845750591889536609728763470205742833098870730940764279872685798231143031193118361101646078980846068979222930557260173358175985713824152437517779278665958827610347469848499024743203115181603874114656684899639381261210308227284131033397164654141848051150469871056861516596227867480695824426148188365097146911873588407555580689140436237544167784464506895807741231608319134433914064211143026664053718409318764025305070917910827556579776053409184313055520473584005451251126624680417006991438677240790113376924777467787127229622107570124913402681986342945814787276842728650391581590947548473622632681627597868882424372491773325100023391102281711255670950284391509564321580664006735561298175404740859300608411604664205479554740188329782166730245101893535811584664399928379720322847679020779995406546984564666148225046892426951096340126773283049989071945351152881210241532257790328380195676816817086980884611720147970830593588959390899439962553833303315547848268132828686292327897382104450675651569210011240092585174695844347876267154465954611928134958940813849092236743609700671000043491098352156370640374267707513733253097552735454770712894286372443916021959638497289305276573202196413959296215269836596647047591359764225985817989336860186326755287323564142575050750519683997122488547236717635969268264431684820547319586073413165646425622456752398777187504649285912228383505785304177719257431680199493230051119100827900790988399087654821956632491859920042336162719343252380728292499121007351701768484698356720424764498738454845666404989219332397111725994511029044149805894933541391976138769895876058081438714121995984656129808522369489932220331330985877639696170750236220147578355578567179314498436716840969705257163853527666787797137083084630151458256218698590590500811138085751080957457994943379945810819906450355087207746705108366150727982387983210531300726997251924870118225603430552729328868619757321729675060007190168125251896630334281616409534979597163332314568169654407815474722691310242384832382108496350290468630972162393448904188319680921986175409179021672970635811069412305374489482727664651958277867529753260665859302584742022157075715087911945846710182923325438990292636517331234556097202746827541410866547961184112188350332608514290224789592125706262665399520194883355766991282192819127188482161594826661639361838492738971972136776668293670637172955330122478672239390270614678973529413107925497127172755953871828939168808402575990925613367752701062230047286946402638880233832240178944594241452888392769794243319141513792214846738430833324774154715887647015894663398323928484926649601218730075667825226345022525766088509467652090973267807632709343840605793688487815387759599291161636447979163723128717563620950875765526885133351169641149064905089528419351519280217540919649379915654101513863697564677856645140627118346646392154336472566940282952133174749983651556749684028969526658511927441272527806478566612620035788521554184838113058426664606820333531193005430295059109904515697605203797623155650110954312916791642955874708774210155407024823204043250400436034481403089761302942568948104639612847392678572475006374796495418570561048972667131591577420955802367945371737222533725391780046384616251683756230849411517743752629556459025704779639119808618635351391355911928597918996720949639533161922810181245761868867827645390823735767434070004706456160601662443894459010620647781182513521669534681838099900255035031076853554494452953341931583189489552212447375547547657998021914115911208295682002893797877181454370574053291289022662403008959966120307237067963710916906731227385818080619055804390692140362839593049006897255637308590366815703402445113357622840035875925769131174591247193246662530908185682017002977855139433822510887639558200528732696307401772209917896962763603970554594536405566862107073308573427066684374727011006228462663225218552048545391873636685883954151624749673244612788570988195011730931709241814661132318603565395411866720149432961904104686284471701610044826145036254641833135785638091525187510234394572680966084120744610673482172147518829668738191667336071086362072509369366680781647982977933118040907835411795087528550153423407929772965499435805843738904891067685436484813989869820816129900049508314209583488669831199485327495435208705093643874487285154055277856314478223473606366374816773581882874313171344698978425211117423828143174190489282758952954038556669913058579664132265736555728214986596614041035169993431825581632038541781996219611765661401789279384307180644318665761826016236475839352890319935220641012817972963207092983133148865484611099459455189581619861870249892286801078572780245820100884339637635400628981630700949338651173855826103852309768641402776405995667508784812506216435885199448156467361439356182825005346980054293636693976936729749839840868797581825151003785195211072648850009156945411845601721600907729979959477248403102770170201111986148818122106647876548332817634727914797930024446152877147402248950691918646354289381749691461589389522853391522650468914431091880155778574868065686048977874741343892707968508796584559628962243657311701931176657484891705002087363501076758082775070619752425813858026883701986319245822387037466423125322435022157750873500902042846820533529171696787415695609654999931536621516299459319239397536688448492098832702771801059001264701367405830210125940165701907105416318831496982235301481098429250832828905041002776162886452762943460237199202944663314856229358085879513401866611513989510818935002208987813247197981782036039443227636930027848550314066406987341419939338823791293668892640373395862044058345690886870744211062958911765570277632817737604129793295159624612645480101600666880065000126323940516780160163783203946085507544730338558682521059425548718367759523869870882963912128862951033419766912148425149577057706157274835815626926133019181055596724450093143425221233485084086655527121718889724754099334649596018475814262565785511783851443266833750427105810176544495970019003908407475036815743844063251020238037821708905918289741928905531984651927361100733390683192676711367776856836232442671379262633822088413847060903756827686474223505178441829333406025302593640299430819391167714999135945826587692955544516226718655582176676859084391858475324150693492161635326075118217278373096140668630322817885760127991684902757089184050674008359773436813470422446739025126826239078651069826337765742286284619329240884166848144857784509485136763208040734841784925064515299818920709173489193127028088299376645499086588428644663034464960885826151804400469612107929041036954189016837202759731937241732008800691375750950502322303815797155734292423552786289887450400578183422368647506781599224049613527490240010702273135495929694246763282855003566353307858714284037843763349666386368063151321049709302953026319836296166933947153743846231980624363278727176639952538742589434370281960519165015297178006776889196787717593221786175034464365634587375575824237137372214376686929709083255382292859193809416649130149083675360771632631030257944978531741555964287002580018673501693533520657238451824343836952006709840913814001987102271163174544042273243793078707373484253948305033776222827137696682683200564692710581485413429900368943567522922501965808210299573684712220076526096000411358802666466360853615417795399230789669329546580939347504532768305204763006512551960918306384435359527683550493891697749284216789674857472358847017433453683754487467485993744346236234467894654973990910584757305279222636407521890101098035318960491195205196202049240675642650993673368034065277047736311502591887938180356029362457331259202094884134454577201994647186727550287200631489844809670945179474775015379318764571419859422942151699660977366949694351113583663933663263794057212932323145844088651302892853928047745930641678337052490907451186883623369334740280959003678142139343455935182626151892876740110053136880566873353010954599747975172893662174934715603828800749560669369708208670434809451311561151546727507247993038841372016095266371898438379281416736030076672615052540611951515063993740633374423362448745733542144840713941892998912125821772412390484391004662107813569211262806589498061332956556843669556816169334791841148411576807535556485046467730610325110916486123765799888673575379964982827694283037698200092753554492345780156947803054137528766841383851573244266448110157211296225924020076407363492927075801714827988346696977281939021622775914309907489405048997806042739332205814702845997622414652144530587646515545021118096868249251809869098333482084312241993025947457030301246864479134817732347016723785073436205400287752732914810066299754202417988496014156903683531907882395018945333119475985951170432114687884154286908742174757862855200977212442756178316678316543819794914108275958172486363597844213118010432049809351971396572555314780933318941752504369596007950143058722508624273547819796361748284333400394276673795494383262403604860297816758614663385998826637117856396470432087083318045390002675624787533414458111583105404794730494062606693530086470842897193132541695513456680729030849212586300063521806623930016190653205313177511695061025641483033167351049785456559841819627947194513690586922263528951767474288709066762751599455955144707470035133745711519805512350883348660710989035024225495438212586706841459877365322826592311155252184034891264977174069102263636171096959553460411400900129620007582721674295841758864769237298866947883928634277897747561438345766139294134560063398296202349208469130768773271987033163403295034393103427402697299242152152889651412169519575054811946189966436410434154149806543774228377411525675338759957742887937661877924670757662095638773891103905177947876301842704992954111906105558125767568526173841274939335101825721204011328650162729458101904371082971915968312976691944917381262674145771574675820005246031825118076163175132128048687352060121746390398922482592110896767830355039213129894682027055026618835854065906615705050357677817342107095068061452811415666194142415480478716501377506965456952398493800561282103042168899067225801088494870408900467227107816047950415629759794541642564689572038933701076840039738098050849269402380073043633082949369235163803656232996737345075975728731322606653690912653764904490494426615669095765568761020222584261570107368464292257815320478415959796680464265625444718523648179678911373757628242800409410637133778694559677899687570281627175374052670709222368105179538292898976183777938089374594718217450407894421165765951162914452384514622278689204948344274785080494591026560757878225108650956308962853092870046766171699250532042529443254091330156937505020980883685278911073576499861472554690643322094623046843897793293325243466167724162115524226080576605170574474625563674222248463518157628936101136148522793991351802455940074295272878787522575278580010617042791553135978568492790580303733893559325262390084284580294681520570480580217590591289438846648425218360995442098918573299537345932411750555797780513315856145582460906883057538656416594119229064103981025172292277173715332479706320502299207826683993598387253827485718282820881003312143516967596628386352963189856805264587222570247544077899593214605071398294173278928135019307854882296025253059295362680568058150785511176395546939742204031749613609769145075952730370411255173748307274405214663528938177982873380439474792593809842759114171742795749556858612133512282094958807296952932278264997944981254537459153160106219895183979635671600545478481292103449982617940447375263027200023901654638778844197818466400270214835470346212884051329003144045080057498633381839920113713180606425939069496960537348505703390757033766902759107520030974452138204933361136314890783284326970019651705446149548791193812398247915379177497784938103123853236133251880292576411244925120086656788911918695458305110343814365767474811857194667964842189411455845959338720613894813163256561758894891286954919600848544789480910381049187084547136351314867352389303073615347771699418519240970551425986281602570795728910785587334926473276609015988841489364777834763250904243071235398830630204246622284720536591014011214040464475159472156902254724120058376866326768617480444627562323340840495577352735353584002934308470859987267743894858556398890705406802568854315036925706646776802989674926159975137475500227445172979465488445995843106031299300093455673811957352229964492218399154899933620389626581440331958057484626449724213436284651600277171850391145285183207789562203248927866690002602324238955652200748387441900144348042124788285976748087880402533877684986700808293384411973730675263288200083385344158750479718436128335162734377481606384154723522534878969196631542239211986745683694422352695375494710998106088343072630073740222969355516473411164340868085304628612706695269251717491910982811878765667494084707423580188546838663029695123295758966150055191917744312100554485708995738719003341931803078831449698836896115330405843730359705364469786215232139737386446748548930253786353255392199405994988140833158858622478944409289208280821773937617852791236803862442193931322516989566079638838568700004929137475342010049780848636192717825154997327637813632801730073460836179674934618831604469837083129969533154055564480056639070147640939353235599343036462152327232839313692262750818763340611331400233515000272409428676689343007338687742109455361220456685427794379405221236269257240373700145972391536814790465101330326119793673410043776814520768156744309615425747944453953684704784177577858720589966239855000593014912664338399182447668407619021824766829397122718898036721054749565408163991268915360739915132603079594297847493597116788641102915349895398486918416224335178533124424075126580248438694723543978823733467593492384323283248556316211970143600391027124039279918420070313241381087327488054454445465048566228647237134469026895038941486636963122943217738269470846050807863010056226411694723420108206945399262410983572785167649011762938914574672605027619439814175185606588252150147332852172431001155307825371256422135697612873357481007642041683669544532601288509317437444832659706179623832422909133508601003704844470477666085745110729325657843843144148459745858828671633673778323205274567490744906434018701121698586721131926369525748432223464761772978193063269772944785447006612359008810090587378357713780112791858800879677247895862368204824558533375489659128225950741495505182237082416047252740613516798296984902356602368428354613399733553409492428405760643973298561626963471102965211124423016889081780624437791035554099611686328463076467115529959436826136337237931686132040893902576514200043053213092354620662763311880908322826438482152724568834024050223588404816529045744720167367928239989591197497074181848380758908145104667325038449528483095326904491475511138421262141334704855878500647770030441843477970986623797259403019347332083827281312500507231985080718315423395288702954936490719930532125058086956800489770144828525233672875614180534697638586039218880462022799019425988335638351849239931142377431803188383936506336971589435635421515020661577834740279806936120698707384157221797116546653284165426343418572996989871536097103804964401032696958616487724047709410762814668895434986601347455519219145344418167661629402355316038507551709472491730074063589484356176053227207570811663703833306994997479865948686419577510567616497551379483000746239820272437838011961453043371092765994889774136767679107781642993158673114490006307800874850499614965110262254933078653041247547174209226050511754235762146102275553886422389019111612388519014621946070157401522118169698671524209623447276690319254647634519118560126150400547978405647475686260957835982628319596062693567060649317780836995407320522639800550103218748679047700353880782525546014778848943613160318593510667036435382611997251590794469375665142852470488136724595611852130370561625931204785558726625313024835250139543971008253900912247746313483023849657393321438678329044917417568154347816525005528332419736695858951480794918716556779962135440177604756698407709568947498607189555815100064551629662058159032444684079309649496917283160964162356056915029937082188073584180042870528011079132002876952517577579245078470514565955117692400034334234704683511722481363538953968309569138855242586694304153613249940682221540799980561146338742722490631854849734842107919306541890589487726000576409469676856465403660161992546729620621417634162597018346866281889083311359368592312186305614411613523233192087816698663126013759794541766310506242043110489715298155264837819960244603278414067497008534176015025628370958899170847859598571864255312605559597732973100728123907802900534264524662580057191461747089158402618207164360594453039182621839465683618755449102318821020196440775260191449216428748343060476568452463694266438299389882584409065314761734008957493135359702456494700846797274111548836406395049524916023056164860265618705215235152648318860518888228574886385383952481681953865377646157306660496732032050332243375495455658786999281756907309143741186317403829220644141368653222305788561257867340759815860613801907093866426749737916089343054610646425986795190327855784801330723952755682757277048796370769817822368991060344682196676836294422401810201170994246028488805408855581389304743791923778765198959430819261113449108991787458162927777933757305933406138576267138944811524734259384155173787994920664746125598236871262808820156347809572249933580856035575694196473147445688323786080966484046773179349915727763183884481853151382941259770033001468504721768943901764520988239723656505348404625385180624881789945226549594636975153892438648704828884019978900236338337540019045704993809715173496891571785213276147114687094556289923061749416410303449491178067242793621493526834362347084015472663279481500494745429189762258822975449053017439041518598256408484685801017496723505053599616746612755101880222906580947546300288829955618005032303041770584899977332021791794962507642852948802286382071989443319482610807134938991801547975883447543886669805828292574104351963427554541147817032894819339702344623706094213107017098400240146770642459776504571649342889182805982225530769725147159708832400831042661318797602788598822754338017587448993982593257940976501177101975753873977886827298878131390542684921338425547699722407130957381673347690463191161074547802985893791195338319023272092604270159157695494702525901467255022177165916667200062458032390084024298424868251237635848137729887001445597141556983906418795564776060960177089226544652225822426939917236467703681169075055940946430043598984975264378037338352440518410896757640586712041627789197499001377990543340940193939269029627159870385920252998745874549270342347520012119263463563410752036567369389226143107964546413450345586136444957434167124953615652816562702494738196972348232591148828048819010929819164566832261711960825258359231121044395768553751789571165233730402492393107938194072792731234515178420582710169140768325368409560407475478177399189993867784984088006337286537599011958749964061848805972279293639760872292462378699052406243549173804944939780998050797952821739246814307448903935058192856658466976390178149754309720083349315308539294056009634203342740039354500888111462611339833099867729559600340625340298312423096469709706030447558219212764939888944888114184513138026223021127975953375984331319302044806884491514817619376125804120835349032438006821131457678787166214362417425703827838528215759238951827817439623885446225359425511673912836236864403335377951991213349819480709527065753226795419711773973093290751881991933812492522913983228852579934585158201753288864096874254460919124426961100058318388491803661616900607993438539936986727945095302495355815409322588979796219382878514652133500501491887623746071177172923636421716938840348502444696580546868452406229626018662534926391939420928230210413694443065834104502496150280842406206383276983228357062746554344655003788327508579121826491022611335405660834726528211440573407206337744089921986295861702931621222888980610319850714449456973658940585764854639794406156413869927296034525973679801911377790645853500919921761684290189024200718932600006382695526457313551664944127339151751813728996040151547016612904877107212092390908613660295184631291316506938712529283375321379277295807778297032061499403879548220607585074889674261669287448408312308584806454904198169117442669949280326084768263564286617918315707113733241365637446144244209862808204481880069512241858759473226720774068781874069740648533239063621781075309014688853056094875022574189333192031706835066194007425328183937148390742969837551466391943869641283313301426575030550502578455073161791431939529255715752663726914017212134002725813878831884818205483752266170357100757904842021257466338965401926803025498191768494968636950888969149141130612677640924058848558726790725654998173369420310550825817394629976498449495828077531338167881698080279352901409250067237871739274447175115541364723555745641429629682720306387729864909745577627094818980921810367677964618368475337349760951915954118073852673369622178958165133552165872201601543467428246950260022237412265345044125644584669504598823725714448567284804697576344471784569064190062304679524857585130509952111221868589794280037686175569079643630382246310247627240072786363886697631034816961944942741899558862028894879513267705167508787805425815360312556012920371917617445584359692033772121428612044557561341847703561657744318556046393210217750045559397355718427132467666707217091731258405491176837483264400988596531436908917300908677996896584950658161123059825616348335021315944605819048680583870013140645683573763445517944084000917490539694453386866068135907773789494458909937575080955412334494686475454959593823544624781855572696315154117687239075551405159965357240094551485190867069747962812979518479550943876782808408087195667718776069817016097315313661488632219059696743075796958484929725213844117475749798149765612334141904482333045775800293871418728823266369465903559203219463047878193708492312299583723789229101033861175207332389897303148499998847897516104641488642400223599249174107909076602519986551556408015211336266407380975786098123147314844718922089523943429021523485181634393158008613574508740097855662345680390115034233657774776600872824266625510021770659239331328425637235091287834448062847645415574178504889262359090669523136371070482865929294843854400023187424328222246258451615709050160768426282898880042572178822607108598612343909350795441002094060806979685464662242562737636367596429708817105784243120191649687433375597748268849346358991435577637426705769149611271474993156490421157578482853940812094181175903399257380743094752108636510956090850378799245705498726460326568101609147520961010274804869532215226707929348837746266695432763740637950408680308638290349603736421603974443946433233513693737212280411639768324289749982393238082003143891437701505505627497331188015960481196727229564291247179615619450509678627658228323226936239984998931748405421918907220662887768317212095965402982903190861322209270858164338533345062121883216214468420715252060078636729661378189911357569856027836632523211247866441758124691360181968988269257733027772004525154037924516619125797868867747155877293319504072465092632134406098539062839758986422929503958106826705552637549847459875739082079547145429426266694953588679705472663828469186083683697389411497736763966756692975060112791790318659394194376567152558828550597475721074529612325112654649366789849070598686347951905867961897320323641022718320275809439838410184261998658654366756304342382961719225732430884283400741393216746732443999325836141317765104041264391392091505814335288041894238565724102489168957072980148860653521051283381883741344502335565514986023108231992334141928336183462560128857150396649081675699620037899593483010871497520263985248195162277169787835040768247280629938238698528110549438554300104720658849988302791819703718487820210719145145289846870770092034007631376239964456811263622517256324982414816973316930561644977115559907664176796901228566869692803608695915508907232843003435295156612246637376322611549843967128862419664234914275412959618827661296155011966117765074344344964039665151376040956042045372455754694974337305264265174719924213367951247550653971616895254033262637096425454954626468907293875280027121064075380486206534357247962509884488109382837667041505089816306675513161215520181454222938974995430495623447493499463445611783577767804197513435513891780124765882029581968731733000944201701506020020263947383722101719080812286874601856112303293336027510558933782679570362948596750589493552619089154731973074840884859449599226396209610632545904236111692694268040911916523023064997235284986948418934378524494487839586163670438225256127194041251700179600171204159759927277499353880431553488302603037576565947329840092962509761993574766298501830773111088464005250524763728175887223610716382113130882885980205668069433388658248887360460475481376224057392893413240552998934329030408929741996369410409669096791138581311056426489467102543857207913472250427777845053956073460504509118205517099873602323361454440768774182304802477682112624741550669172321634287071941480468718392687991069229941502604303966428913540193573741999998679587396182594036170492366917736657510632695253812558285430348653959460696868710883288808067399852011781284389438834982937400775191974824669984035364473534413660374437600711105426428433243242413463209986992285193583089449836298596845676324592849411954864718961286877659221503473574238982261544398371239265756218012464762590423324138272142019052881746481004351103442704660941570044282852716234442703121695021410697430983711322325358470111681284266522115715161343910490466204905452743565988045598966511098482488635562576669464484990353503694994107374791469655284347197035962105711090289919877155338210997511774163439182093896607836291993522312089902743654937928920320243814753395305885361830325544347523670713343740036718179892248680371163147229103941771508974386019349841313935023480222963237406429923134266259834706209817227549439258828602535105156975086687753116221405032213904828005378215484057479470854128597400776687756646571745125003305276512061289782466177133635612469703964676254401293618173894343295120982914925259742945474904018920973750658360309452066289562984079272230581444288761810685423284321280769408689765365377872625420099438051430067146130459377980599030178381059267225602938508306138837430596482818577091402195607264115171476602457189946387690442630200915083248404951743390374638560911955958331858515777182653422920338130442006381857708542024503357200355826549395834930216634987438568952577003979990958659427240003105292926836271061818576482572716584408538694315701103073576292803966787627184164559614399499189125037736681660011467088842875896852013271478814208557582571461687959991727840695565145936221485005381050333868571795445875705276487847570104350876072721404590880266468965832665634155291644138897354763872257407057100454224046557705683138275415678421184930901686641929263770958399123281341350707573646798335419650742620224928436894801360361647306033224201626767271112773644908785071496105969640101239398726685590639953601143200405969987229848434138770012597166199726631120086792830903804070736333408335201982922030363873931543879917111218809360537427250060002417209149729221802948466465183080865229852021793958937007116333557026763908066517507417120819125550747751589639706153939087210016278476801478273244561828159030216464266041956608908691826740796401191007724419541855742655501571361417630876665288098468657941284737166661982145235328597942666928673895323659382470234239116560993502077716860336309330853640762817814207369568699572571553267418265786623003566318311562361086165333890397928179289862548875839421590485654042923492273282535367342014239412969790539234747562210024623987160192294091397344323550753632400602681735195465453011782235832984043578367630616685518091715647564901937630425025150621344891345869540532039164485656723817776097596444013075367465129126009169377521428038675933801829216970305437485806762883507912012930318678417133220915589469223730040746850096686836908554057424593882599157410798615382723361239089913462285976161643429391672313104538712556979559623429785226197104378774995295479089617066379075286507591079444416117285062134255261583869112445906563952071354677650587650976707946808463461263241946990713892284417580142446129373804342423778491156438987598271203831340993768529868225305620702446008825329642588262871988864218855529849504905370976905625796704525078087978424934794425000481818034162216797407174807566301016632938696202025093104029921411935175852026178592558103532703426938616205584026887089706025210566049859358603562872577047290202345242574804246856421720995270315277357443873420390871047075093184849824276607530705334195778892725473560765805645108526175968808845167163215335857149447617523972313123257451569056836475124316262908557833944910312091935013889177166941445485115469162133212653024698318646737973748180427322536819117380726072281490610688873394345098188966161315150958804122292029179191283553909339141233630328955508203340635238559200491920665285677009465916403223008129540578422333464758348954079361125015881481761531040515285925427886935110295597224599671567380710047675165637474776188111311531654608952789275964822255776124021401582130179896537623103236880478552930830660471061751669047982537954117229208002380185644272083521873768139352032622814636987936883996057152563448744941499765565602708462824388607186682810862531355854033190924353133113574758576725764239276755547199952649983565362919279491384177923321702336814012952956536024759598555814725380121980696177719659120462916460958921730759889537581001320848166856121647430767994485506095676094738468237944546222269663196896155986601530356949131222856994059525436285876089455755807944471849748681457794776101874051749691131095979736548080811094712768679866499943370694265095477311708619667043238288995636951098788104627526691605657771724883109703547473083755691078782754200537137417992514794150848544578897073969611101024942924597577553778162968259692526980293137484587375724024188364678587872128459580322084352042726131069189041687961175035006963930568384715016423292334617955993957122801242157110563981252615521765655004929012158913474992506813819574460703599788588763005579661399929051435582753684398536561319781245110903474797397193305092649299952652626333545192225372271925451593678659971539661017075119449343302729195477961408483032333388303507318019030983516807409375370867896619057847492037415826445115695594300799881789862740845951002869493014270891917708323270175113611115515799392330208064527584982784019497402090041215975882942584926045479248570474843387438746165621004012581786649745194434098456960054459153857911773515415279455048341742251018936314392699205184224521003326104213661133272642913833685770276828151057962040236297477733036768798003123959602013345886854111866026684906544339889642846114049306260819825064388129529489610352566683944001002434805768738288058273449245245750212068875512592359212151100772248483914637182771551550252546065911309270796517522808065015111748702525085932246215232949212186337061591812756214372558970338666004198931437914153024458763905642017611481552487134003776954084733218404435570071331786762250657260183942018492666626595156693805049670983154670861091851074415914772972883913749252572653653219835915161598575546838795766688619229442160513989152273740259805471892220265096090187549611425149903645004583220727021519574454532464494476679510108910023355270997286094359361048943240364706060475094064599481601486936250760227658357186536805407468641135035638537301532317919660524936386695225521621503291140691270655478602336178788816990434459636818261558433448564992181458640049875763069779421986491640769645580758925809459497436953129217620447592302445830920183868382792344964953612429099349399173854301940328639709748317320373571385038031315746903191595813979982131343996582335919028498628197579855928708787105939311728266653416010724970193044714740213312433073485913334923073129570006361610303994863515367905478771115457560569035285976106770947617757770396767406494340406652507118802411035677681215493668903811450322838703323582450155020029370327944342720959627795170798175364405373063494374566051685025359532166801403547116354480793204848109607716998054143556857103135616049791621696032068839258478446450163194028471786186677377987081229101929207847557055343350827717128632346263990893391877541973374317205914736664277051481528290087981015241152971236506960252669434583735413640596252651732013174406241657506380919217272803705717054146510926110948113988710198543554495369953204327653882329228814559314193064447535328062340955481621507322560692672119645246697642674157786075409171356724915753794862251908023879472163336758850727719289042834181186881692814379740966558369461314815759024021950538460896307442022432719741857577209945336000263546319877887693030942558071798286242904863681358415683862773588594730260668218665964963989569778343126513167697794323112968777464950792124350409973362350392110319097072700487193238868664563482788938452275281532356495459478486771410553127937038398925082203487606749917399889004411490820950174448960568271010816502139549598951503732283830418990363065152039363997470440142312778627663075703124461564203172004366283997497517853779893564440901798993103640562946433393407317113647830219953149330439126468705531343039649569098865306461539200861195370311978190698597323034364502210885779191711374797648497164206284396223650485726483410236346589702997306603317453674387311265074915790598864709747435211769882231288688579635463974329019692276991312001991548260976576712040787193945646393072173973812672430023049743244904787700756138630741674678344460869274071102467939936008693567025285646811475852380496484994558834324186517275235734147514777308236983263141307406842435389777388204018145487717128238150752757208840229583032807831770628947005792343571985933212593564049248946505655933268969916830710460690517014755470266026886038020433839520694499222425957862643840343134985562631555713384673757669468414474029412265469289632718670063291534857738800204976862065411997381476788509852676368653151421869410772849166004718513771759879869172367042250283304745785194925902965386961396203925939157351940066862096464074683526299703521875944304392360655327023594841685511219142106002159438942272772657520950199031578625253463414700314534205726084056439578462767740935045260942324427745560334329270879121907854609162459277572021073302009401308183793905108914429613148699555825988240509774093025905823048329161162118458358661635172424522587471797354883260876063326337424420377468199547438214073433167914622267899839002732094894429714475103940554443905325339557371391607872011788787050166820048518507547947705589430848232086591382948422435644875665919441174787807127355921976850643805432638428215514940116357975865826170509188888075237445188121083327080003467975319485568015727338052621923150101649960055649940708946016534032161652386064961922910308882424583576295637916733217177255206170761506644483339686708528234440665830656936144713348480896980692867595165474741629584013166722251022608036456861117710722344613886291219663911006349809152859927937957933557898328471425667800057394825426272823320753033957208029046104803387712555163676135321578388126247495840731375558168922823759717322827406185185505426550947377474710781389641847959150833421350778923941772710578367404044641692660032965073651415048904392692671282877303875760596510596678654424374113329790179540991728597152651629763054166847129072063365275181412487545976142362078671367781308202044054749341173491027673497652633794407135853465745886803660278330876910963203645082623892969047989787967588452793161738125415639730462331054857418633413076932405538731361312505097525297396492528020620521558562138185623668907129194605500646880013423463114939685876685657159517010490971697721307083836016473568452604552075600050359786949749816071248628900539892226586685583084649861458792451367657687142729956775728129966707594080573023259386673517017173047805594943125770409060274938608606568063225244318561990395131656987441729139849658124088265398305435404119134849717789605659214642886087768165089158472690692612711013479102938415120908090269177825327460426226530457119985000367982716957390871128102276459432068804191725692564490014378140475610651680948779756322239452491355547483053022595600974012796582623598778280088208388090576391784357577715207596027228179139569892875611325944054708918601887259518647686336441134195911618413305512425810540693737435136797885267069325113591043659206063273724708774398800496571486619528522516704914488404073268140923833998818109938437558252379063743381671064968787646260457581843174901787437247467468444114879801124088377381658604137631687868611832126112639246233705335949556099175934571013089189447835717207214907197985516940396555878274657017985105526605591500818662762471147255973845934750405584550902078241478021643243367025073922664161304183639860911266412538595489363288552774270065781114868213204330377104387547074583077954498253526124086747171939594846656338255726809786271504327444058258752742577459328962257506878785413286273480282224982268095069524077374893697382715288635308500017087117894512216037806221224980322734281845582547614800489606627340472072734962638536395109999643649370640553080942858267544309883127669438157852679100512976463718716368415434275745962926818633982878544292254614418169333323377730264098273575570546565986875828714442235964160527151208179664879381144846079311355462070338969872206042265309570653091605538436722505790114920115614342210783576045217002715731291324302447767620987820391456573499826681844983538563686781856095107109133683431596172097393754423309044712483299892291256943892254259117657107266310564714403138788210399690298137668050932261813728818399490167546345451325140571778513207634733327121096347765512868131747271865168942519082288777056987129518327898172608803718115843128162743786540147036388240055959741577748492831573848241868847996978262648458534224813511910118576944910376471892226804898245106647286259774473002720096112588930033924092787771847986141568440016540225963728675349087944268195008189888303033565187223772100823802767668436170890806607449873170813064982578484660143740168791311841523156905118130197094398125162932806759994635503522034622145253618948522926162219104425326330512306248532308115221240880682643860437053532176923690255657357915929686777420817799618758658544375961839366736827739530188900732407200848324417465744016920056077824739372500888411167339358712246773212702532326960199706104263172845100012064293592014756911970558276556949683487329584948814986749664278321061343355184490493916127265589605296798188447238342995578901668003163923795431548913402744919700481653735278328048807877964114212245227889417366475092903340259798833676080861023382350040497772670261313082229928854305715492267704222101098219016692314557134214814245407121012954855194222574390068934284223606995199354930487721776270922944329657918954254050909664161575063124088230795983901468367793413710907314931074269498613557465093866027663536892663288544163200388212709740239586233355540614932694865578871383953914868837106485488597121413798299291238295498827966478977532440510873804291705514453452498702667941455100254260615162374303911580245889199508685226145715306926699906528332613938571779260603105484538877826924647254386848198557784404716516522514469666808134361412301919869323280239095753944866759179086339890831146191574055644790490274772848566633544853432274377597401394588249553743775540792458199914061724457686359557678801920633505761294790173210678326432770798936022743812359809103935746535600517361638843567576035793935609524711469114981504773919333160960553751645308820492224910147163267434239786959173759386309047267247576371374873834485610608463609175992096130838848180729083001286095159541086998754959996894197225566415833388870398123126088205459116212503671354719905726960138851454029464901699612326525735733796299422301682635381193641579029658392649354041119023009697266690649131200883719406045410960108172046458583525760313686568576289713553020743179302305834142657173683902437234663050448294238218751869104006007427609250921365674471692392541408651860217775080102328224149467043232489919394961479652531492872781707225145943815770653456567176464938031294253342123002391099859932250734357379554721070715206282081024402061315995740318117698489699872159579555450720105880923649968559489410699011173339763535807762226199332817462536431848393314808892317521780954904378996247113329604727035697371674130487974841148381489985077938797409812748135845133865626438085216681814885530217346362863219589129421468858615545716745521129379358240400406027607848089007290164584041515220876343357573912631133860497161955858198174081414856725597360960238961840049241211326618976657266414388515228021283626506125630907927958217684382332858846394052896204128228935734579764829907443060451258857505636975475064473497869058168171765262750393982677642395778332466348928993765491100521445815718147079043387928301847890157953026816430760825889173926103206215023956126714890306242990182362977028467689994015094310579187304584055653221825306744989135894319475096080730650223659795109414258290385082513203864238842251797805445992367689427420692741113478481666023363105187204104269001772501035057600974100249334666909021789568857450943846049169214207327128488815034068339403921114043246067496535220493264769696478683057831106688229092192483365538514939650002268041448119282905551179642984701483531418031140884896914406274476942227648358247895734484384472871891925254704656110174386487441520688707638143266005930475311633822584878299614885952730428509126841687720461338610019162725724065803383873543924275824023276210453523775760683705812994573506764231983958139667777011262841816025042598257652657618013671083639335372731709696118549808329919940751990145153574602798149889049896804794454521056949955060000361248427492384376690349283861517191279075637655310949887410307649614237317770097872481588485978619665035400827846209196624815904107730189307452123091498295938751056839422134569934942559693902193920153840952896716802838649518265054744223396092320976435188645737475340720081884697651233230786442019269407652380252258898922304698593961633781521474094317445732379776260961361361074932581334188198304480745040471382811882153548422120532345481260125754693208892031057197058605303516357222826636688312070242324210430943001780696961540801064728893431946421731229107689376610022320360803700732281177679618960922701235013111110546085811900050678516959999284047281810584662816511997582678659429061139046700945169414294867102328148245266346568092097740154468223286216239374819563120509704796253516375786342392677653638609082742878310073982287900997231098846425955034591272394069768164715950720652652029252418529506210103503903054001242763615833995098049586566058912456834405699234808354487220755055205913819559398740778273532141103798266851988340504972258807599779303153100564933011898653085797906135609385054898359242524918171862212741680157878130581150180025267162561218877927539217620200302456929002296580833870317058029481729848643927583536256691975391876902169967682440047573294405398503906184895439434486785662969154484552988602320391682540203915672539356512545636968652254805339197711375432525983515268953892812183023189516897494357289899925644149801561115195670339775507020399141719181803062388237333021361436079807911769572858683193612834202533629566537912046607062371458580876161484397268379754452329834886024774243131310439388446687966812125952523825283720216042510842158303304469888255693257413021530891186441533903691703190497634552881340299181631238244469402186774353430308994187507134305237782542055226664353975240625647934114068391665153120893469497317529875762725368357224929765156348002130156928344378924328831284755544656385726530700835433056332563916280572535973609121631695222685932096277971988295186933373846560547965594158736148915516359551563994343940039100375432988034956249072603345427046014279174802529383582870903746381876135342550625400650629528947327080461294998874151490502927093278359892443168511474597803808843782210810896289369634880893836532792520326453346117263591471259676011385324066588640815926932946495209569862917382570339264010373540130188856468329347789195889279457175051182001806232266907411026222032538648419451184254960902077920534993746695797749850384204666335749317905915216537206525014698770102716901246017545084230270925811441908146577004965611913796838596086197679178792203682931300554945908681982281206236335672082133629098923536861738233654552416184664628016797960536228196184261492550932812272983864749663325555773773080607503457069927095022338436698132028705361998582625749349734869832350857960510163103181411882454945389583412150801620307660147803663841317781361395761706375890770124541812954347915617975714871025767419876809931261710719116144022152997202203919793310129326339144781075293613071947144594013527058874727430618484793707099924833391541778275345832069516769593583782646768231529108097940138928379212097231072518507708932892285015728992459240384710689847148478720578075861740708550303326069979302937162715032244855176853137481735505296375688327970278305518210935820500140812392132673696855399838185095154433235264054153582372310643518081569147868834166813430306940851252179700884159689792129375717002651620193522594335313513251405007897687921851370569305908393017844750230013291053770744492356772437382979768362705602920223820894565427825777167093572004412194265285554447961774017041900763135144406665491440809819385168997442648408933785743977067027358709990326528780777205479043871649874690860869643346586774606384319773920344049009641392961301051751074304078164944522148985854886198468464552834177368818583110225864260414704786013202550264576851102664468269194656553873889042476298088563938984888810438051391203863533571616734572257567126410941175973450090400049541236134702260771452405739081476439921364690315176481260788862624020723290379926300868420128562449588925076133613254258246584436912257123458057903019139000628642380887432976201940986868376400471186499544181026940896000727612758542415958555649880030906398968895733286773867781721420415866110381479529930036246422282203279778335533205365870999569845608894292174579570231459027180895533129187838345440397849643561744109888835301524162771095119399680941789748857890798951692604936214870601753142434053293184748925737929629385706206737971628508712795402865961641369447405786788064043095070674853615825563614770226047789682364893333181242616713117539373651242397794876428647708429017142974338448047403937421174282249247423594681159659032658763249099829295119238661442494398577197570219297718358223049435947774704134968859377123532611692882194448917427721268732133434189209402047170011842386598877128867852048585889557805528723688819739530544080827496773529202151512018751178737012812198893961368003148204792293461474278546661796850108091645901932379069035253128574306014317086719231791733913177022135476177716853947344180054756168936265337336951792389053367644987705638510674951422476111754043249523921931733291359169571856776283991406095248695091159012336789836114189957691305971340721503307181665594396875932693141434594482600032844226252659884620841011831955216740699064363948648919466922626014059185551074778852926374088702804059905431451403042526180777361555200036966983646786165869541481118463049586971004230797108157576272634918982862830573403180765159737994725883147431789981106385445689025715992547266647664559860055672654253708825001366306350701143031193252740902324150873182304229089373422330631658808442767194892087544069430393866183127036204306074030655951834772822775578204091617709586419805260501517937086534751715295320802002695702168702983405205233327165035793072359412495187692800354536442370803085803722607606552761589445372756035920400137293732337652404068640667227307025965617583774299074246537998006658256166015290964765679944570927693530423099605531217003543163530261712738347929108852932700004541403742854601419573072126366875486777744255496437451410347720765461648006446101646632713465310220441112883332697115362270987806399837419451196839399226342951276720526277561863902071720122603597037858321184582619655429745173720964990421362477332391982338899860103559041611189628056650170077517788525431982393873898240974534802434851475167487163665210549086010617256075985852667663533836142145178202242287675811432871307417044344227512002580621529741204931449407976180403842536476966549787828602975852930859828964738539838912372813493970147215906704267091302055231516490380764934773274880379137282455514748209486955875219914421378399466476214042314474892305496928907101501172600555295921772556545023420113646971524493818192890385542475121636656916218494337787267557801306704926807619954958681197810896076115805924876384313170965129996050146732932680310955754222475110112535613349991991647047214074773962894469631822274302996019631632382878580019456709288583160255924379894906633173642907418318342683173611033933000494187948012772081803518015648067061055409049179600451181760348289952136987270558047102438339419820006239923847050017366546457711110526796595923420684865396013517098412181365270497740081368297134044752718162577466339016774942266184995185034885988954612360892602365979295889212872749680901369685320741635873478086884680813310767654497783880214818877290998044153993200467278579856021077803694033487170963350227003632732135460988276090820901318680493935727448749728553369542067218024848392496292893135056489868813795118401821196077188899192727615622259883366822697381886869462455489401308873860102122644401138556676022408748973730660414824647474657053082395268165040545772518320280681280315134686655288610094224644148518272639636852036772787161450717537168939699912357694336235643486287789863480022197487087441485721825169552335025716139949554186096723244895400735755192168159658458930782950581487856326528070065103995711645728161607603689880458281527371823502215076082716438685539972848438619517300824533730139411910649031293418814016979618789009488250342304464908980448189833514648981168769583349990627687858116141548826772938203592240790843118045386326182533453198301560064165651189057938230378675141670592400015751016393654138226441420433567468282881529498168104214148799211534268849786297641318222126404302768053513473882781705188061089031286068566706693986485251699881406813582807940030666016080789370287373211544628759672466502532884698028127894821330550416554998506425292056720448547012589527659572063316611100110038326976667728044171979419128451612003633820382290699102913044702291729509632988756469509071041807191206837899218923610856762287327110028900537947607952026163826175146668301942003409919519550487119420521308692376619064306467974574068449424969411162073087340018262017330458536914605391283008095880697143806555723483750262710583765355405465060710362244521540601930198011979941486123840064248381494854636239538692876138379329657180299888599743728639129107127378084344792577537990665303715956402482926803173507211755578988414973049757966528857911724112300792889183437497631502750672051544941891420289465705891637212362216944961625961968108114316996200959965791912671738155300702720196831413471022497569032051346540312774006338437044612667099695247124233389210357671918970657797296115663444147245803431937596028400035304334317703255056253585371980959572771122000763288001446962262898535845104913619647615118526993267304346460503679690450245770470925047593484653766109769706157081030182706239692755689246890633117424136787361253189575992681210803173183703470170150736482475011478825653662839020810337807069803534732784544751245189466627169137181820875773523640811539321383704653043975706711922960699381618114560913547621354751124687240409558592200091014904616272837929828096620337087814107967153046236305820783828517257582960948896211890074314281986182599138281170834819273826763422869309579736084852692262741213602343575270342288988873417242888180950875513053406464835202957943142485108529718339255789906028880451008757716359331232714181831255119413920338976984747050632014023385028072528542287587140290173717513826715486892924933349421062964538678858640981502439555756919968060919615007923703799330414026178839882943921222002974596935090959026313225203666543189300054197104358985795164268034894616578673012081506208922411681214385212445437199029989943507199425510649004812592580935322096394517058049385925887095838765741733733453769471095217675847195272042302405409188511964389330113929729204342692164161133148653267664379233780300428244740623234015250619894067446772324416192654661405896343417500018035059044508989296277598404906444352115672879628370892560297734122280723191852711208840964185694763094677772733564048954303845979322564011736695821532597186285798138729698070229228406267085446091219024233510851057181879480810279543777277537707072332574633546874274720836492499412792894111980826080681398433279353819654511887215588042374960467416741262224329106889320996736871238017925647676236559575418899366152315115343985212754313677457801941630036143359068217176307762394253841390730723762692215831776464533790039413322610744060096060741341763965071041822312086584361840169935365977396237383238210423727432644963320134358585677114999810157323652932684696756255734178600426721994165252079984039903219178407305894373271432912260436439315558153451574538542885171140486194620129373742516599543903218776125414619105046798248995462016276423058251695896422254807701433511660317193699416559299158382039499583071037308422852528773015715439200740889945787428523458330290672090527193455355089179800004302448820270867397578700269740515661413444482196598182750453200672194293405431912970835048173413889038807687702374298852053126339833506794442421768719555189275563241912296281260402587284725222929868772021506978669599519458208426536013434993333421773636658967532751221831802159096317769811596200185742991569540771896772479330687572072521522072020498284338823973460181621861264157702316113250224997282571085592114343522995159548959996244615611129371154175841703242847187339210754281782506324492513769562988820355935335961804523368394824520809968714808105958243003135443963065302329820071943753991975479137668527330357346842952588755819514891239530180276052003401440057966404918336898617369283826866139822818030733886902146008216696137369920712428593430602166125069921892641256507593807060876484180799846935968451526577859745155360121948849690761192257307571437272650345297575131663793819678691380221304377014562557026361711769768858306770850102592356238924065352963667944702791634892428331801546513316249353094748124816738308071780064266004330467458053094700434456554945962932701823239300410372637543553013893574062967625133096689107027517593606983621437926242578256845945888920767678539597838249628594369552330108393888244627275932915199740526059705973926905070057800877862236922986389244696108120862690921355380458915108700059708435625818730333276949201488894387836334690835476209064248952591176144510960291411680476459840240142939252792057182631837632442482917038677299569453465189519559687396108917728639939214104686265177979942016967396652158858052555896930538334573074827412070203338623593649766685692051344714071735967967177507091958983091832428116171928008387069642366906997750225739934949807797634752161769823711823209351437888389234423320600728231405157439842512626969794408042710449868075481246631760029127309410343490675607428342839892115248431307265398262826903175777824148335755893202574481542414206623851966278336612114104069949784684774227185718672175190346980052978656087892490027871466675787814179571980877442509613831715498175009271222697877969507831221879560137990129241581292881958977816858647331826914120374251059822611384406382373782093865469830124816325942036991371053745040873905529493844858352261637535154391763797166564728231643327851070245567652317542484242478344346354918788141767788196034138157029585155944132510202199988459094956728975223389320921597034018324554169240828212648359814836371424947400606582421471352979204870057071049477173971429971004887282764709239493085202776083483058459210136351776572641856160507147940365123248860974386057080808727515278812357690077007267189184773683810176683570211508321701653624130832421211418882351737830086961752346856835833919198681323092960729513519351645114346218996412769570667226422468468076282305282211834440879528676592029985583050261598466089387273578127692501152023028926663719585758010149561619619703981178247630638411750982953229399281326014881245820932341859221813819395891647508946961610771237911239347332208590358394283730742675390774957727392583245378884534407303319633059729534910974704810959978625626704277031077674955865627578714959941716631730306266610919568471633283898931428001478828656786654178338379703171034838929427127895788825939695117273885207069711228371574955170933410976369795974001863008448827687863701944288216667640471130564731730403410581001029938364557664329998029678748163808591404696331727249169283091882650561244016807786842885705619453306501721443791748403248114155683939356661321805228412179095730644654608667941854383628051226595366289321524781934749487297550597168960153413576645960205897275751505564199534296761541805486669544045388922437132576629905024542775993619253051099858756865007141400010884915928559135377351464359215351204852854615060948417577092202803981418138304818754216457793753711832510162273875042104965267808511753550500153664537676945013613226805274952634240416504386786877375034940218929358843271142357402515847069754364880957779077198199948753182261732150306489146853241577346392414492079973741258774365772761601433223078612483230011378480090332428729154570432220616072007015866958806530591147471290294312969295981130963334678336009349041385610809810127797484617153418875612159897446863946188801939939563326751958666151039113143789437445948565503400352829578373370351328300127764182199725789760466992307608851265293428993429603704779039055306778844532373447523273762445887882574199606023265028140700224053058576874822810387538204969592593297479559684831976662503208759355599501004007326656382523338139344804900018803372908944590991696009365653176895982282186948036640637400428191158156564430164770345789570823287842142849686342987277746837617012042052422032739131937987095673711380382902625215519749829228980189354752527598974290656899786751132862036084910328574619351359272127980354827129328327449959640871536240715554146800168875666783396481245273891131935010950337423186767459757647337283189270227230235686803040357555233800130242308632603231599857321534903961616225988705539912144513503121258306069812211143667107624608521124066884553263462076197910896517582082233353781346595751562480751041462663006509368276668505716179779462671375410193890832122229468560162229242254202127036483691977326538338852035244079964298657188072460181366884966956004053767521073318278867198046670387641641952843813135986345407050462307816707367086525064291439273179986922767104015085218355100514890554947931600974116899706260751669584103739469795090945720378743415432448346953919970788846140212403723115152378360846661630412311899431545308355931425362382813828130978503280724278279459092193413757241276278054031965327039748291342396733466865092554696301681738183069279613568071754548909972289733908443467279501992084966253804707377876682458492951973364635288910822705396585841752480631445642928393233091092777161754709020914483106418764441662357360157481092523053815276949720502595447203268203717761087741911011098586881248448437131348508674345753051808098992879528392893153070519486590105289405757598370199765921730356749043778677928556759274294403995798532946488428697449564702994477282924457243176640464237638013202916413963385631621721529254379706160237753826037520186555436698069874350552454153297964933660561355677039728914932004162575100943523854495223715284548318177148925497558497584417123894989847633731351453488743496057111408369409395854260055549849880999685248419702438046672419506744537614341800621002407912056184699139002116462207259847658219568515499851380175825401336774657759321004117070621277124572201963295869168779374525829093799145323070323030553847353989311091274379311752313204888046631214951536215399233838472519500690935443585048576740578263816499639156099484328585035921115775090476081104903777464788843263814011660424361241874746826276081443263861987711584468757144133888508242271615384385703017887689794249435853869001395898945225660851794024816936177058925155722338663750627747976283368791330709260742888383445909467520736259742560091301708295197220939543008152814256638706928735662443786899808774596149813806747097370789489424228281736435520129155741123877036207236418220709757199540834085613551857335308463827686787357297526279114187346843491465835432336311598961223591368715819294185223393786923216374522851852420855217657315904997062527638599858073356555547121363010587280356311224026895956133874264851718175648545774842825432080631817030174379593788727480143834253721473772454385106188899710786758167687217908637793152115301225922188517221159435360868395075337250572931171672701969923045538968934135636268610956522282535604770815715179523859561356361254442615441730982562543285436491698883795387026615556596874921250318961783757779568998830535681003937397416455019633879938823926838393106712289476879141515953854169860335675401170380199798449043946659136938656435404727796925843991289267719492064553691085621619246774304596338450664764120282470358106208702853946805583085025883478226639028287395266105214843776191607654520340208045276469858052827942816140215416745621422627265077074637784656961586805180149181838221170089989506637294171339248090850118031961416689059858951653577157151110742451470082835166915367882875286982751603172153408380562117471737681626473785513788196519336979137619613511990388874212937337959769737446041514608495282292886160774873824434924059800973598293589509809815391033082676503347541549046031973202827415604533617607737102709658618881863541112793737105204987112598482396201770758554458570528546371063587863262909096087386601210707978417766739550577296488278471187143232025569087626941692129553162223240608237672280618720065527047180808261700413726800578112037934917927416580146994943592306465632311731518217414040719125957364074623029912563139317379848445427605346015008742751495625981702387191363935748592797068143721141656459728537637525320508841021997300076415833876341746377474037742572759889334533587905159927319611115883421931813362321253627470801318838392707116477207498274681844582480401576748701785794959966757478331282930936525011696032482408361156266150313063151516663157375701255447012343762596407405812319814472034058803401690282630692167294471025154177254980915773639283760006306408684893148576956231535080302769762982526794404609924634978702033059580901926946585040810046079724106969968392648327009444341209953849679746687593891057415585529702809424932770078355768782056563300156653071201218302593555683602767488005412414859868015507764116843459473999366764390625380086278034685447749439091412108463033108236563156246990366091749005347007970949631162862511969143285850886238899569001930156836537836495470963303419700672701608290513485934943200495296872935821097308217627489983826672548354848303511043316629258234129600952122861069956159857160422699843607760247923540421090500301055970244709229572838231860518794979984938073258262355087826944459683476786298510077941866594597598817898213174295064659557581992297420828209234613835181496487910885224163276713487691390777002074915012018069287595733163902098861425168051010961068098632221061823349551304959417785702215193535523031339998258029263180135226228394963516410416751105556949298691612846731917706618129607797246411195378902508529315435494748815828986730217259350675527726276063088770334850303239724817445053491879616088279619368014927435861469049329349120355031420014392338183124894183617842758518625221624011563921921402766712929997977623170196005828353257651610913264402302386146148526055116109609280508055192916697606516736870062020038328714443557023822347963701296841451806544516562656297842935129440478987798389484510288109109403375785938933301773699930605965156680883931536877167845303147730550685253503936436812338309364089489345527181229249301854785976300089888482931668761819263112566683627087797735467806023503837525447147265965286540245441338394659939202483356743948331375433789302778812676744799297513253034122940877364694237508354111783630472841712049532358677607502562859774333736508528605595543840054192320003832711580780683560803332793974306729005413160844356434359208350953765575322595053063159188213581604571646188144828457567503291562848262731467512068943355794894782689250572490124787606805851724989493942615334120409814455782102517440093651800064689073994641508974058106562481989679714356119733723929092450312948150328814463201955611058597697904985827915496262906004492482528735048751256605601817026326928597611294456916270110297916702054527314581238012260494706846069903613240739428609847895487949393219568316988169365834297486541376846142215984079895609169310434376475352171998692782881216463794455659176689121342199464881448991568430661143133650900171839661635531249860895399660404844582358003282947109774436285416167803965243926786160232742177736110313224081662417194703003968149956280698309502999653610140246808316993251258927896219429292642302117294536765662623706076536413087413804032856932272684474936343676507198075409888308914806407990666527923184181823160701586880607466292442836336849645537729881374237390713130640855195826490569562910655121454823490387019685792178978515910922440347222370290302256466839588490278574096124320525198844758982944153824968591425357907272742946669954015862797125870398784442326881927654896849942036949479362921644600841081456230714186743462658941598779377007421521451526412078007356286765348688510780359497461868345265184130751349442685790531096282909418001034942801904957336721358621979501611807071883191946382039576443255915139336894501215616976955890808226711138820465858776775706798505167348711481728032390223729201524288809661812358098935022159112672107979175440642667549603285697421823631596848877484834472683020733030319806960355366502348481358371055660641139079757826927107606918863153601668518631101893497526701007342122434862651461762110277032037066005288518526735938409773062715396492041289299789196570946942749503094620266558547214789596993243529633349508378631749730419025998630472139098882172296706304960277544642573398796044314536767494026911169452684938460852010974071033824936572749918847844261595453722334143214284424469733226493640796823829910370897347901895559482469936392769105410331297155219742649859414036635552929640116084137825934243716502635286162512463461748882130803304354822390196287085417605073820581368138463567618669016918498671081578449810711802817499412049052206589573217541050075492793580184404737372926571674180518980956712902470815723219256010517301684742812451340969990933254217640929186919863161664563580964391352148993943354606006038055516998387207340345693257253667674804519689130356412253585155738229763767594809336319558757485464151737739183136291921600371418611746825075655217915789984518623477819666299905112369988777018111642343940061733575718440759260377117279458763781142793136281393936328972819167329355300979792860929870860647126243627412365217099751300139419974473604010794582705833769119055355907318213510415790727028361117198078849805791490795794631896129701768639694555786897635252673731428008769175663447539394640183414420430823886648864027024387589669998735415242930593205462472532808046469654609516042869434246935639734984561572543862183276450250078883195354081551834368788451784303514670304946784791482962792089838720844803638230518865948866545855862590175473263578860238069519929081893960900619169412464375518991776332312310088941989341098495568283836074833098535509903638245779561182167441680517194798768714031037204740662689947173470296154046817931415089773523704183721255630415408854228472556772812403746185726301822181637243283082934224655488990954430107410789217664958852846174819132422432520166618731619198375754201371875161738058100374598479831979978024839314228523617211934519639510085988548407165318325955215143736410306942720230436664901219817697872507809216655121417006449763122975002108455257370433513717684934902414925911669938147108017751267748589524216285903786667885861854550815070504385926298039826856415851216923662205142837244328598417043322059570168517269840288541287611323192187154961281783672161806695259862892554694656116624532101346876648805077029437248162915010906684092238827340758216755074074695266116073625948979001756730391323406073959458543856401894784477208189387661089579735807934593296999150597301913413266989274650015360649722115262677026743746768832721292526519668191198794358844112587788525632567377476828327729544034809910926613345621905137026942422294270337007548037952011515708745169160492197777112396444373505773136397731313410076367658015586949640491695920396932235259236520619169677353493881728121064645336698068680594820828888256851639914031761318682111967300914973769507714825695298340019076741575651597161927610919575456306518349422707878562431036068947497827420198333561608888807881284139797357877429842477317870855190961058375461409954048978828429861890454495694027193792889333615577654171783681784100134238608155316070396434290154008195663152553984454184460275560536897586082434551190788318531452731609302568410472439880157306543197040302989703159471752499667304887274263488009999462956321982168463512018726617147476429218251038950471859757587277092877393309020036700445820752466377256377713523863698347088806492130039984450672447671834773390668759952817282887726574273763714948667531106879497788758262082766415950911281901006197929286481849831539483478062750160735500575126336794471202473617404700097148966173073059127505072265801218029366087349067986592182540609791660338145099128940381026116796304000857650170281360032513003512033559084394056509488598918609909732534905365201014519878846137376752722081172060612827091154119130252894291513922475446099490501085276556112182350839715411305654058289927493692136309880656507148049969144106222039894181912059173421494242720787541536806397520216631314915185963713799978983555864083970430867860414099377709839764026175506630820162059383354319521135956560585932165964498156098586218523809014127926567023556151986153818994408290853094470583817049205897395098219985965590705189875060451415389907593630112143826745864728712240372559097026319701163221598911023107093029887187666940329614680978574401984885622830515807420659186089241082320444431388068034645544304183272700008573435016986116567591884110059146504490829166119137656168013302729861940871305414858418417914337697107437485604899087269317588310381906875647793835208199340344865145039798037061839179998063562086490449809683099938347043603060309564983776637497971504351233838243538300456655412367490954675215901507993236946614922968252664781199966310057771727570694625785466513612707887284029958486838244831167881696372635611928271532637457730041302954869166662458279075646447870330992834050693623307565761870058459740399857938757047354780248611265010201710203495353094095675838406632952366919619933515135950588249453450639584779260836105864228045211483783481329790948557066631851916465595384422453230673489957221436139061262720952439815053524659419923433468794337550109721482539786123020621265393642086162209824040943665648301648108135618606408650985679552397980098766476081138934897345244430652280753339529399102347575114510153421794958455578072593301487691626918710548468760958034096133281503877975136326064251533370265429572844604734060234524871047881079097531321747285709512900068956390198337127669609734773898189655311999225481786116850345214205387892089112817108366826469828877468558526855437878558993386347231797882485962510848339135104013119625735021768445424742837003611345052783437684274230471087245817640796859985219016422164892800508287593994015771260238063922024311656094985623792227113870279963428475632102374478441680735563383572503316643546675013095254923643556621338961756080284215042179324256794650779225843412042278159286948317861581280441703212807760648019350296996423853802449788639056701086620800882660761750489036501680073722725914108850140900670333007167886428680418019809695179699016922819373987045306138304417662702427309147192590366202475831010115821631759723570689017175384828114962872157482914128103406021794479446166338917238818373951865150935357080426097799163942243500705175253328161334932926883152036246484239215637525601564738489791790012006050505353328220241053964590596845904480430599322786798215607445046170764009387851325693259861725431204084099242237133496558657620837147327029922742405036476438021247169308909226876250616136314739924589991426669591995207206446031217721530442738092752625191255563898150646227009851277749176218115845990213941923723339011041244267858015356161965865460207843425914972368571215445552574208540024484481302430362735779612876468560566031092585231120546004091346087783497360424591897620602446981134665382640157695793095771536155705067867163868078947424731347003360557854396870502495408060059908136120389521457154076488798917046185975599211939173392959437024836530477109176890898335704208077984390955489724298281713276217034044181878452613222016640883937385473957461221788776102939829129894343879234133395680985515350011445330464320494927214425251784834653004785474211701495955102326882263525201212137250790735897551743926614478467788476140265920906993145111741687462036780171742482832472041802951472465226756699284057888829553723985992083333480307763574072771275103290810834098837109881188761888204796654387725729980755677972928652992476744245450784277783309365082665028034592182703511314464712086693691826555753578863054832315957516603438013129915461858957713671330311880078311365358259844073135401387877121923519548316661575135050301403894713082854680243684734667280829198345711230250684456176697756846824802416938855183022130996146145711146450561320473554168135832282540994649280121990237714070638519027884141433862509256041489855941960428947483855937027168195631778346373761076519339201057223371641123878179584574036889691685598724074081429442600576718474758329808185803678612232475666538856225866675643861440413322753195447028117601611748883527865048554455657900509943646836235642169935369000271049871136308781156608530776424649880401788359996717544439588829233306414333648382151967578866513647902169935997879221159867280230467756553389404632835414246910105445763908796859882199166239050934664730904290743679122652391618019420904904058473182756451539976246452238589248785559359898741989293218425770661250655379289549108410683524376368611995440678624411016841992575179681861336875879284503301833245825486453553055329032547356583571059410650332341066079711832034880084344249068582302224745651020916154172371885004611400305506224476712879620818300936621631422074661061809190066333976352165819228761235658274686364645402920732842344097297864470221172041188241141205537273560122175084563043795544024791306824035331683571998780492614125342835063494334491424862159316932190335393506844767941650204179107757121629810520911534738156787348473151756863523682583512021211224300915096576670694212276292756649856163142262924191347793061736113622896258351189022470238954065116330192822277248792423344825587459724235161767031994586539832295632093058906428463873184869743674080046174155964557036290217658879471042222280595433404067870488771277265508495936647657122517337462061619729763902031267712109267885275280314246822371285585730706228776524300598251557851075462321541699378590887392226414430461763950673870214470692013562308350539493978235199123147993685515154834192706673631559352569787784677043845353169210775370372405515534436733973803440174871928550896561642342090686063171528801929951612791523070879314579187799293892514543812935408328631785714193986548271431103708475197358598631665599270701972609610239762323730765112411473064134957170962155272232564378857219710663379931859840228414701248492937494468636604683131423395254061894524810022044513792083401963375861880477663856568885748169838268754534128425276210841274029972555432856969969237163162221947295482957455692693702042894841925241466095090243941225508612577381611736389609017730432998949593947668906276701895377878613237266095461555153949361472409956226569554608911001500384057497222360889844706948931045683824458160385965546434165822758367814349567913657286376428282444565424985023625474861775075419326796927595342207306234987073993337321256280009250916819033263003868534052173863998829072478420391710552959464884614296790802757186465486113919875606866466295455328787059972579761225582968030625887601360008432872618758450395563556480660461202971327929736388802792725978698297268093156027244180834390074193171361100105590618549121859087644261972439699350126919167452760200499854438967867795172541369698429336860787620599969885737320006194080903575658563203931075420688285128858594334841961810087489557333491529334747852602182196554117397633342033132210195803053564276683439371774094285080427292279294625750781389437529898554312546071394976515707843439266083351835403766312470519425211243676560983700010371427641019577277787571895313883515024173627205166526795627769103119893820957053971042200937089905210986523211689629131728939004990788998168851821482346234779465825709091791513023941561170971019190997121941047457685731935799290354596115821197466844498920097021569777964130371390786677254813122902334839358767584860715510236452618584922534780658992025221340202228147605314069162790242929056253539102263545234302442573918488386142625565225863911869809202012185929922933764668602739677765384933832139139196914100159804857100345376070652931119694314549197555705262900087215804228739213011381531009286389340779130679881848850888087354600106717283964331385535110395916492869182473711338690805404535697855960606559128492634396252896914712785860112329856635919789691283627007712851289635643960595625553503933411819959204237688580556520086429308455550630060796436259836439135243379433941726032320191903753980803531812949962530621284980381909373804647914012352281185706322741960949299265962699367204458432536107491325843077894949100978291172315537700910762001409903039979748601470445907458003724838754626799222086111061279842783605351394012522649383908782090148114922099312542154695875144338139626065719943452164207520284887156604737174762168952664237161611389925856768081593115872326290823257660716178368150517832750381693495296302769664666580751791718935377945344461735889126728787597610945050339019102317497672734902245488348593807975198307698296445482624448237777026630702625797049675615829532593885054289359225487161743282644240189565578917825487988787845082065229368410859029212386310663592835204144044006157318211303845197581075055206777091419871352271069629624281361826399500704975623756561256032994062229308765223103840127063515706767098132723969191139737199149644271623438400019446221634214569114732575080817518094115957123250162418732420854724006340251584672373704907142661316107924869827787507311338221475086267589891611853545097350357353600856277135303265133208050763282003487152073700151501102560667721625906338992135223569770144674922266948938443454980500001810947690366114998018894219266807909068996382219903967324282322248203632720227876934595813455577096081017516196473009530805464667343952089296149210141135742567644812852958682126268435501993899197521356598347974180071715256308689815680319574615650679733772760686288588679069777348001954177594760867181842500926456006930684222366527787789862521294064861553138812473008024568821391980660442917621278398013608745961898465962239050019160629186459819404458429287539691984607716858999666382727881554358509195916918926327148202964703386756071969867420830335113895332182174228614893120675623834605547724816783316779441733047404117810941103456877586463080381657977028745496003447931403682290886446066123032515212552995185736921062823060610418728483508812218964810675890222031348467007964940747997461184322332742982183171830947207499997903241200346255973144808583730911846541798800412639400819240924912872823183918758600305131369252080425579892750212294493672408201560680323872944764093439679092503523000137147655897243722918194698684091136272891532726711755028247366171034500816631264361882387444252146427085922422779078565055865499587558119279764437252669692149567773385567967042293776112298931971057750951248023598558172120612264322996382918458645854858244102427624756371802099403705989361650205983416122256356717962468478342665520974188887733625834698602088855783607492276718830564375827380266707459090923684963081775441859594522379701819476346146619922363330530164623300207759280417261374539361808300779747693678006605292343148568628133208098553664878761508420601553244797075340897695146798107328041223177782193727091600558599636141528859866176633086765530941854230589225405888051388180862134175931493765043280483341428610105882206366411945092037652506759313301926729744734217916512720994075025461372759911998923162348504201090635712940461909585899771864154605330169103790384374609923907802466078726889542568606597045824736299751406685849505047168612580227031639895273219950402709025797122504012424205783297925341711403327061166306560152562437281669673623715828086899941666243053075235211222860373646834580458781483737169762917848640166620442962962487839686959447256121256202630194313325738197587878420018899368793782191980427169565169349495010135058016507438207860806190010782460501269809417797286226306835039096713169248197282774965641891021153459454819733568197237375540402094858319057591992550558897184868128106485251585932657372005040842706187287536852308155533328838412283717744513477221955491069707172629759046078861773892313617713278212618090132575367947195081030457850905138422132253481259276631736782045553214217362003763590579788120969004239895421799454188241478088041216659015170569279726716718423541464780572945368214994492330025588606003698866421348957988145894077465362788248994860278842774039707872422126107864469403805187688562292804204306633773837450822536792565690872322220795688032081899525512688843798334898503354052103702008297526285260621306309554737064660944998266548742234784301875419846357778289931746561179071623382780352686282569156128419723571479868337643876423089839691024089266952462517231548990786372469065241235703712789667766802223996314979633833942283484831403364972275712374740362598649855588123094449945012692512634554850044038616900743945359484100478907429028566146583672147477461626783009381075307620562357578218281886021951117539125567378573787344779817894557964498994082246062230420267562967446318379037196832186115047221740004244524212037473971819314278935819397559461143299617697386952080407963278580194827686417599966235444496426389552323890001276395155772880576487557361088422524374018353325395904792879988061255046528495328313894803219157957476002447054262364000599436961679685940242266674934607459561871865779842688650994578306814637996166051862017251032532457111312793274428765794365468922281619790706841556532761391061326285392296628450821036868711598784457824003977237269643329367624449328170728904673920637004673075877079586065655418476862583332308595876914743035173814930888536853643582816725637187291408101804602557816233957188768578059989092269545974622307181713136772383966480469736106458870846095220751159994368362436095793053779948243649699208654521857960807552255930168566157103900417925811578890751489756919978482264637627902006388644367501668835117996168842934273853749102288920395741495645769502767716025500224539530357548986252014661660650525621387330847051579688193794157637363894973502086094056073947487253264161884574000203000663524523172622628257202375169482003657924952120895168959450874107887189998342449505427815758315982204254278913299215482696618538117435311742589585641986657992059823305215443850956865709383627689816514704376815472544219146317995314019925084797781156916730923277082736481299837580931715477399208865548623058217228954883652206079416428799203521274747759271863529121524236912599076685531628081385947684816107909564191405750220455062216922637920484340052534297118413923312047674288413776558255028311033522409624941690421567363073157532604745070624481450730702969505163528903610011533147939729904535649777010041860992327847699796230491311077341859992708120252315080306783972374155039222355546420063302830160885130371865913141859971840516688426967072699525665070804286364270955657094214239960421075723006053033025267795387579656206598401918615718836764106144869232802229477354311273650582432087604103178526866296892960608042610747575108421157951668993119823903859526454943304870984970452358820280008217732419497868992032366637848538084284853009686852236175570046756932229845461969377012792170930079154529101127132855743516065276156573740381504647181422771986240364754768678797683853054630352520480658101295783589736761555491186456106333206306018600324446259926106078723356463436481319512305182239027055958087007684998367077367312388690290512438203358756847600567052789338453646762823137213662970001683707466297929077400665329350647949460861996111203711103461427954561712698539597993816402546022761039538692453138993931346321590894848474991554660815540297727138268577748940682598312724007898136790277401197443746807413787883143071789568460286398769233959882455385513026142924407369289041219775068369119657714626893184462871072339030406577431184175702311876535763165642746252433103100343168410776883179674143191290306758311572286505622828443577505785836916637804414522031092512168769605276502814041830174627857589470505329073198497276225716322530155686119095458698088425712302743170110627187773994705881032491018025312967903623562820026490955034896178454969598427575189762669778953078766102602515409781865380665800297389663362934711901582702478240272106513223771298903367388702047328219261383942661243580982253776146420452205260349732217015434021394669169517100910547574501579444759937914514675408718921083209457794063246453688248084649396794109750383706241742721117031570173515736462708384031981877177529046883859708209350595220281136725895048101285109315104502262319132125410500455966570457339065301295576874965784837109666685614295721443596911975998616733850537099742486373289664418463249684272734129601652952726212117279605732668386646256002186808487107913892279537156328171539084385318614749213912346252848406473843056613265043745834701803355446879565035398482089040939493160250554662591888265028453307034359929914219677059307045352079578649473208403380089606590862553016977890251912430914707210418137666693942846303620005416934441753977355096087272566127401219428039176846967076363496636942580805778160722519883442437660499840810790170160279722799590381733151484267868311898798223392407077019863704895294729925297969843824720921007379932908581619931674353890183031794759513929421168034625040278685862914004891461875438951290936956681069744190597528759144356659080686782396061637210544775191717692403626191996994820721452582913998721639779355402898874394534098679162852133139435039976535872533398221537074946571413362790594436687133360717123656745028126286713873873999592924357112007089746047261479320548094222886952827190509470670081791107833861490473135736626251930240841730175499073304980026955673834036630704420146003867205684152146801530971580978141998979007034901442075408215035499468021717027649946099674066822185279829859219734563739401313507230290582670495875341277670157598424192652530116370488842450695785793994594032038206012926915156502736386103634064677955221304823967069173920424700403647598199152307646350101391720806274376923899674854170250867081612421872250881022566629028839892808416877733956683495373646150461099956333076481152492157079227366936944510356715559037049606229175119695485174328159109913511923499001868908186971268209644155374565540057711625544034925934686098969359536153822208373597125818389595712412280176423611238436090596104376120832944410988987776890248540464645505545304151124138123193686246898592380152926438556547404682057817929432979433592895412026347782535656674302884152800167494629019632967835405942946799537987077225269227271939987711415443746086899373089193515265656025472035199355400775046308851065643665890529779701541374218481077000077296639805913456871610613742605543909307849558061081800762043475684294976085164392397192759343342526283976958998660468131204140736902350358089182286559495450692688813370939837930435204959283648893688649021223849946427688313483238545407518927774123588641774706300853695091996477954382799966049885698289733798413464006927419636465074745845211167283745423426364084599548875162794229765398731918255808115688702912441198169588540484525688708311738195340596242014265024995909085113910901905521616531676241731392855519972036129830638900328838784831614843674189085951526939321438207362895509259096600236123778595212281493879007235409483883695326401160857074557560650396086884893926242490839037025374426220422005099804793947973764348984381183415727998340453950602502843862503986982362044812103517326113349089224093750969737852400703451179504803077644111471309518643821931676409189595655536257563871484759813204986570083526892431694094889509749430986800585954780596042703596593552485795925499370338368072330184872167788781123110325856646215768804661888915809002942085997757162880204761245920898645804239065765624205352928860973932311479731268793584984021061241379553844529266691419494119141511084339701165257825101831490201471003794573623036502951270356962339165103309893317842436320685172509712043179745644522403335972352589553615953111933363779959003927435607227179728290880306047253784721387367847837678699589482105858336066915296819084983544710821328649768931804978991048664263135496804207091568927159637098457660388516927262719697495736657965104248292266221874654682558949077700892523977322447293161031473529672286387835947292129030334139856453408607894897225835036727256128585486236926179954064649179006992558429562474066326858034083327704478524238316590105995928836816723222345892120272297755329237853206512452709664725298078528016011226698737216403791275816560332905538570855555855917153536026356887755941822205919878394580178459432138297331299722565423830185418994916183723254127925171601800877173739135125551278078881868981725602156843581790565494988697664282539916824691986340832307532844168598737282573350375360863553730884752628886066622495993339760890217299818003502582022649503524508977082188834121966503171013158966422984362054786315285580114133432490676364897873710013993345155047425622586880439969836811325825900555679985483878203368062179450555944603592112283339600750926333847896402525499168273257582859291656368223181224226783559942801255525833458415730858246133271640772976614716658995734418067840721445671983869830724237296073436809595203820379129204934603827877220198763024038032764378941663338981514777086838726188450264533002029160579081559832928205360542684517928865226417613659597346586003082305257399544890650884877487682715772975817541644320399062819157008623254707568027683952194286007085626192446065739566536070267471284627858091270143171744751206353261372953983064236815136294999418407849618916204844446100786589803168767891296559752378952552184168777548788214336400698709638662091234688356872301051727443635823428495826597601179427354709931431250170678420282658500839617204465702956682094761855860150014281938349576674684081019239142907799412837031563351353242131063253429783332484394466868700569506765469561926396965868976791725584817385010252049110497532623708215203531524535867721617019930104724449790597530939055487518591003779576672590476976298028104965115259676883803105364390068139834836685548051471486339723270871867635478396829874145407060928260566052428041012735109734634607971615696138736239340231079249296423490927836534584252781885718330514777194103552049817049566992205429889326140919441293559036895069701816398713569881424612845720201758404476251799331962579107549342111224773857699728309355774817035487727143322335636874507665745728710785484034543204291586299355664294197086912069340139280048193310412194058207754936952785164366982044270581853810871968812391834808192437458858267197918836636650530768395461040622873997850138491532899981782547218761039523938440840634462016844685824397408831067763309969351089020266471308344090660130851232788802074100844227440907217124726865287592422087136735522137320708050570927586589995799070591535736738794786992355052441408703878285512923099630104417932769650447244027394166940723922238927581556071931732851757838246282807616211830777442526299794537234417998782746302665235066715232636311119657799798011817610144923126170459681424226115316975291606875159544982341412573315543548183934471217292432783730435002440516206132163278910337858639534975065508847574954869067213712925114682425289854959649378558579450888144012014584951844162787848499709441622266159890939590168741662247891982476005740913226752560902428985307875689343657981592347155578747413866552078447472037179709966600750365736387866209849330662956802883304349027755429162513319425455068093742606307513577964526461108386406376191327985069428458215516259469841724523606314018348154888535416003320260490863205160042320346367287166550959141038234650505058787969161031592027080357550491128798316495561410986581859313737612690444492098905059435506330252732785008721187085445896545495185834486228501119914171207680261648654961881525973906456540370057533099644060778219619926253304838626652443100909719292851890357906761055865545605056822271509500249084177996716567111448598929949754647553358158678016788547496869835806054249634795776258503505417564799485239738774592838663132377588750467119684950055373186270106325567605108989417850550960757920325633380930409952374800956874750709419492802661754114962617083602387909723189393682259192081244436325392181896837800254378496972400952793638418882467399935787858484115175817603778700014151476366284439668294738297169346636551814395181120611224785544677939571981214404827450989282488160233878317371400470085888691276253449749278824136460824788325936157443642244720879957370028726576370606195680780546831067459820842909681793339504370943276927779049619687995638156596889817296859410645177268401099982828308542271139758681985844979913316566386640228635783163255490561463106987336585725976177198813465139635627056070049719740177930977403258133914896990339417395841056278877188583685953686723099898745841590536998076559323352332920744615665043113813414740564289890922548942156488572091267219761056432773453854032701123038445882340097669488391517071059191508624336186801325449767216184668554248699629176659555124097975640187377905518575228425529476942502439914464037859168090599673244755063868083707716890130024351089988444755089384273181890404090870082476740167499924676456804548618765050583949049064036232475215748135430250875849953864618885911690348190392755352891702389921536772479846430103873625222529242858862619510265365934366636100977167699362787627186673570311498085060783130148502394452200445858675009197437497033615813165590440808476377238525484634569330174104730662256955963807653835919226546945512767745561820640393133094576757416300313024615234815210628782319422013521622598743348861225457248313870282278202412582602664622001171329095613244722104248878348376513265508987200121462693327007349042904956141371543702377242983853190387572439070887261521410249776663486815826310213498630977720199642180135111250246149080822676004744689636770563626240228453232394922133894819128840932044947272632063082719540944542632532075771775714264700758253040191065984897840714063635836660521703697084479686834912666654309167395330739936785972931989979233061154396118168837440953772121856505310880430927267651630612811923332195916524481195147541497050742102303952545422916366213773670275074289327882019102596406203357729862776719387630839737000211872797749635202012103744461553411301213625145831186155977812275711531404641446353585728286389373257736411554901940816632357650425482269626375478253592344171657399488773766271280990867910531513869093320692768787697813681279427483717270158105840434037408492375892618777722076240408551026850704808751412511441073530372007220836787463438756376937231865218992132862007049866507802784458540855423783033753652847750729042836078785939235087017839965502963674306123396805152720947050164818405579118180598592309360354536030536221973341521662501961109694502169841950713097847170236792096477157719388781581145579657308310716726590415378549064667010835277943655731820121491725516674592436343147524935522037443549381120810015416399620519441238258495228780632502069052538858723962388695463861444242070681548422679666865407254354400614160246267007446024078109182070466623474873747282170459167495529975004729821456252277329863858146268262362955790630554352766753661332863315930019290783553988535144314912561700500370818639518819695599473614182408438216508612417367171562994983283265531015878632905792684344554716950282990972376751973067242933985335290077619852524473699613305022070246748696784846765369825790261508828572308259287651507868739506634711447096486095061974923384265592984004690509517011445500139205407566708553242994579409322414355623611909707140826026030736858523252171898832775031112617781326128430823994197195670118899607514855579242991496716590694454161193560381304879698125548224663050278903010680120609080214529261074008071232590461694770419771338918023855803010770732739854826671237793023918262453365526993344171746398762943637410570250944219264964696337163327595378793236952919571153547116862585665535415471405478457031065846418961804022357898179822861605755471372142536344903859038198072308201456397596595585387269415982432964925534517247348968474334746343190161138300346203707777122550695271441273405749324100110278329387473383081684699699900332882023476068687840522413924747639718242037025303769245289643207128851193671652326787694984694892020121834279849916385447481774789284071217911400547759142531839476654378547444580887349005673699244052631102421223998917869906179908798168087539390757838625937848984818306315726964079524983606588986387656045740376680935523673192254688003892617283522723637024544250985483288832659979236962592553954010241388769563095024980087457781725989774875905324973936311813564905265169836471325853692641933146334787177995952948268929745929984212988534713346849484695084322322758820446579126154318179505713521605147422133454871052326041981734717376226771283848052628651353391546206747591024787247443085305037996539779778036885146355222885875590369413906413938190609622909349235521006861628486314239919081522564868171424168256605036747440159478850615050486835424574087570667500286481543651128510690774288687408548962992008009869093784653870259435588117580607129977633201844920218251280924778314538743354650463389366295445583197569502143103549050529600298178750947184762602064113016237577692310435881845989529008140081242164992528774113458141270432635964240997482623818836047299493036321325571631229683533215172265978102743595467106122510276177389907780352452218462789188418325692221282128605721762413691834394656219390414402514841587600808773296698842271056505079889591185490214572447353824776102002279140844530927403962090659434250989126698819579716230030554739259201089159250688339937183581935145244986543327018655814081271444227599568347080659327622169935867495324277347595514689980667359112868285898534309246731845411604474540791162951236498213255216830847575122895508372868189771868555227546737077429574216718439541494344150005949005018445109350660545897844470698461768734359981042506756175485223649219788688115114590215486233204748947678524272422028332275970347943697117757044906905994976398469003793285991255376350824262291609998569993162439605468973030905677653988381210494053032585345990562579620432459884827127699811322890108257703196900195710352138004948070506735501420096784280381314024304115926404171410148308541037705208608517622621899299209957038909130334937573243710657036369650889172951755515114856770349292004160899726007815268257016778176455041815727929331098910394150525181611275514958838421757481188781453592391686747586324711430895324134416316574585429904713467594799587125880663244010658931450314630379683372574089225217521508589239134168443530656344125211600815265588041732745331317513236837898202901867598337515808628671394895481528140661292000892988288874610565508390596968148268803648926715487729427316394850009159209515253743224186908661329444247098506051986608675863812836339247026531394339882442077969431920108134202349482679093005048578902049212291578617008619392947163441251117616974937644903221199816002596853298582498424468206035090373268096023389230419700215715518214423079099088844155472682069123268641050841450329280898383829404910465488932602034273549090560181890032376476688460204239667286282501386010727170213903214170011503129626691502676563522037032606297639151481780400569590005874009218339277535714052424874553663650508099672215130791834309191042890117554017389249842271912315484451502676245283480735773473287930648882521105520262009584613912520052914949127210080288339927577522851228685615779919188946796180527970425618026512626538413196387642160034457626038261335736771399669029015464623076499667097404592552682704949752272619858146760653719442748991878287354783194766958463514294553360725750070736432187439333618170115082145510628034142557269586505121739126020836175396197130349976062184684845441573812674065638746170382111003315844964872927980349767227312358778998149974636721136847880217176136301614595373531026041451488832946181752309866594884393271153933542181349696579808048714007912285866280660631053039422217298575507592640159622884890817946431683770601576757955600725801015416699910651754923804086313095736123258042678405286993283179846695338258607071500434493706880028988866640143141695796200554447096122165053545674375471909968072785552204905306539861046116000361886114697487313403108125533221571138826961349474464399701002139420140706694677199963288972608635640605673248732035094347487347267212494787191276567793801297592349441334014374616169025331129500706855731289935351846001207713912752031242880190094849773528973782711186879550763351378475204994091064764128694871909782533961670162972254983248208752517870626123994666991414505303401984314428003098914804290821465074242909965662279678234554915945596752251397823185918191426219394696148200344343658210331140271633492158404743403019594431365156811171934308191139790669825717764775101084962188037305713639689622741941204331717586066999971340661184121156697027256608045688545519951400624657966499964499634340913941276264396886668786193583333970497002257584028256889785713977422996007259092544569689733578847618461503514749320889047499853845616408911437923133292885235232348884547694508876998780513858747885678276906201465553640931724645165566774966649542693891187154814669229291104004844204548754324616436166865371592300726139476936827933593251167441963230733397391995447095147762154207840484419328254036291799953039722225999277186753933326456890095153422524166171774455908389423792347410254847286765132945618710105242802738581793717402788867422653391365110707060179420516084934810161895408125656719532050107690707075412370284596600909543210379834786990649205009196300608211692021111286447544419857188430922119712580376819954767805232750091903625295030596854701203325120920330690028493224553724811592701398075864890141081338572640720804380346740653507410640182618218031510361815859964700919767040318326998564129755577538559909295260252161287534888590964465877293186032711100186853871641730737743328933694823334131775508975310147342672071483774653426304881152913787749813893423497288185120616924017296022965448681901584682243274228341940972412442043222766724402231386645015647665654709062699189993225077842492448853958339671575417697751526202058405883620944537463169640886492308912840162986908487022115298968242691808314398576205030689590262515320888417404766613391087620493731705567329563082588281500978800119828417999609583465899199699995696178631806669736721646779771279091065244962224896851494001136556601675233202346137650427279406584975628918882687540825661123442029192392175111316546470399826135362579493400415391696890209661947808704460532678168335845005488715970221870753085939834543563260930205119422602670628076717275888079450858614353412676092140177436186465122112233729639171797410984085953370052188808088381798640389222509167484770750845985113320180740771273612663331240994905086667054656533126397841662358586845621764595085820405017061705187697542717606133978772325557356256240966521293785853055399587831424962641081828967420820857937498417559275657498231650414558018804901380823275569772811799242401644180161682245456376316929838298441537987910825677649357127901065535591722462194027636131084452464090817781114148636416397508532744990772334092650241100902238647268587398950471064051295999776746675468350987195063343229326123220108288088248645432450845975191071459393494540026889293496365425593053238709260357559266986702308706815353119461076565224379138702299929074553010523252682019062370528864897762404204510231879376578057441398991156525840644568650052723573975022368311814083786338153351515968983464167277751986061072947496541659010240480064005264975177185444982940285220044638011894357812121444405624292428436022364006852427706410526577339862714366112795373624277524974190909708880066697524796897622417107923200626409417733134073355546859336132555142846920754744915051408996193617444475520913311802732619038131678637484288699474890534665832382501037231261581293847728198636999105098972722896012893970492945926685081214823271773398767517234333478445755216099654241755328996818605528567535693057289413198863687759201239631568114321126471684060113833967578360583352335575515207492582151092903934648210059896878281546690398356646743370782588359818177525396241496990715926496563685226204869124111878989430318067657112773042687449553594607718620957067119935693492735744603144313456196008240071416037094705155802136094611963368386369697753219847595432814310128491408858137550387573817269230287518053962264935798438027770521093515306566396614526900936248864116268902831757181306153324840411472606588252953151716628810418215900474961033555587964357573767244234281473891618811402999202355160822970694728083469402326458314779127614707744651275161739817669337517252867963746975018109134577635958588232011999880880625031246972965353687668275972225863703140721646408553712323316564248958659147390729237738943742374975022147040129973065809330686044124386509213799408867873767885905651058803502038913519686309003345502589205522819851532366587785935242380888574627519261372674445359021081131809214638308279041167149943605452810354280528289351655541537538108483433945730649379112689615962126772255017597148023887985994237485647856378219164530798017476600171210648379930811963726099786276118879087933725235825902471983860529549687086664647620477846936727172282257936802211953275746043866479509407215621597027260765293075330166254792257957176012260825034177077609672055929745383721140542479212446913851496149670024245516199475134801280284743564176544114573641738048540291225682919500278333107374872079109121828422077130401276632685105955854678023809818925439355207097212451390579901976423954334859493956252021691331647720300159832305731612632276475836641275126335247243355422355777076695275100598772491914619820610351996841686394788275085812345387903536941323105983194651390334210863749433231835707977298728610423866380492442583286304695571233527840775760070212311454731655014088735167165980421628571702791295554813298751325240936781591386253985955697238417516567499894395199524258460173282391900228293430416188770241978169664074733732103751840645186536756415072064225866624120444039822416460668509860667046896858860297354963175488642926167096980951355842863271968728721151845061930002759114092897822472133168749820756374713174790274194360415193890186684796600534851045113103194039578388060787298323098037544652698754347313984937683522565228876257061487787752851997275405078458685090134347718465288336623305988424801346056853145906596158526515876821370785604715070184010563210285046921764490284438193369789122717348858781664753540162208377026639077247212848045670166757189286252181379762433997671553430049548031762527513839289068651607199120144383912063629139058769185481842721578286810494508088049597876982946052430695209221512383063611066535157154857312317465992934061495382949870867346753911798763270538758622353163941100311833306448828024246126487640356869372120493698898978158548570693872957030949585923835508861017282546299517514946747896619360487569807709518261962565732882773493331233247376564138341322988203914397674969200895142233225079698847633562445032698169683103332137439097894939289875138960478527461570162547226351691853202185857028642146761784247642996201270203192536107443484638381056430856004992741252763031051238437977266536091179002559041702221363998972750091606553173538116987663123055590424329582938533151416832284540953505073211733298366527045937314443239066676941843186991437079747864933410704367707731444053601164155052072811068930147203135055022769838402339744182380020003580028820616657580333695704966509854244726335380282201623092674358416579993063607647677357873319711144182397360851976459594428386848390945817132500048054333208858379508819947295845062568837648458717167941034249756973656455489879856151419192129863339047961870261778706831093641787931341563440461577000594534899044007484128134846416671679584430931290402537699710673253899327254921170924835403095695119419762626886766840664026218468645073732373287778942847259132131200892313551974456579499295163857621734894549042697679399343952037304629439998949747992641257129821450337701963603163984506753486138428188668718797682058146411393094878784282428194228896543630548432803725226019998137809331161123555305625458287992313496521018651829333718074268639391566807376193997397475388654906413756031119587971601702117048384498838515479367964769253820482356629152052343105820247796916167979078314934628346752533627099188393009203148636432014746311389813146398165991506287586615000941690617753701258537022889470695514879771930426949678948466421558283949824235603969889702252106994428237266745267673574775231955000215809961642251536276400654476325101554238415195144719661993935091069425487454752159505255013977380606118191101119064264409676186490214661341223498955471539139311554819156141173206357304659216230238774700999408314395752151901372854451215052134663553622383957481902515919727573994654472595643167108152494652094307195956599559384132444001084156464156063274943599626155455486271454204212227730206145560998898046020297923738247651228426721981091748189733731030065053997672171826181399765288249818161059092931819697145600643356767207245034969294157448692131930151719448472180104807036650003554193471915650981416398272722677498428412189254643825300037692171059999466610743903570955888616986865875823711656254417742293941781314663421591249636212111761289136763752182791761470422296469449402994083932804921313419616465974283350055115597833406900691558233481884683852349647810747208438159042615675147952668989088463914663086312044766358416531803458624711877424680913863321391037285443335364168514825571893031868081137827956371266638078795224576167246098816627166719593714872236328731699579160115577715220207465881374768581994268339707085795546259199016919894365792429384838271668606309066221978119670104306037562731672114162574931462013552823045933286959689823314032106264034151470851756265206292105015471114045252218849423017593225817778475890174212696767439346628211023897646681128064186625809723005928577664510897594944391824151748735537114510680140324254939536023609093429917674297563019694498929184070830915464293874480104598985037310714144575445109354960360663044477723516648287658859373806797185595190748482196455721406662974395139422022692839160405235769144708721141668716472296660518395708806778052881942590130867343543574798276458447097839772185714483772972265394185326422745128897359764746805752005634322585465990475619172044377509134822758810205811336962897547475891282740077061519015909598510231208017953733418487154822794754389285106502953599297451861243904727811107347357766821295205535987162873251684028558391443160020773340438898440734964675183431648358686669763090745830213001664180143051570718444322567928329981681861807016351888777784547334471668447181683421119755118469319325834756999033484900200421513873324131176686156812207764099800105035410190276997158649433940392669216742625314329669856400926781855378874633393059006068628033965014399290841292751681435851771104391379022413870318434410661233266155856309823515414984584361846561220996256559395028697596642738930448742943578249664794990377841319470985240051595842133949793776578006077455000318622006873378314885497964303347809962367356395519677108996753995904761221849906523521622236160619497618603951623494326427337035141107179137678966485122258806342096675174458107746761871452190353613610949456184280497867721996043829295227490829432060252347979704001851540911366607406820119124324114747711455607185487295224142649986533048659232027877332729574901615395974003750238028138262254948704937901488585735244239613686675913700690981033454345050841321258257572644237557019274949189172183043146502322321377273603148303390806371543496073590629291103307225227066592398901729023752347911243490456951869901336481267349017539648319487291692356572332797016576722099284920565695571785392723734195493492271968115593590121719803999329961147485243665909826494204384390472154066629267062771890937520805473873426078851441943164156277351532104305468454199036600924778200602156881874103647183054826840593807309947886147656303443194912236463921983911570316239479247385637384596975584596282060233674668002973503698143809764066192707330447365897987545262997781231203388939575033483800714069197760743401449323098120879117048898701338746108050796864139782418746361178444847246410810539028916909480786558268923840203028032194785030746682325710000402246935722066018475692927230042292337601041227820476631524024974422985369595874631626889449890783048116635103922907116213580021720325712190175943504780444002794322514724755577961763052660339741710219173737945361571944972853774650452115235071020640415020988539979228246553186379186610194456828792465012733849839869416070989118884828337798066605576932620505672828762673745111218997213565832180048362755218133316084423338746341631840153381521962788637953718415900316057616409413052870014105182050856802171924894188824447523682571614998346523566893941637461716544081086935155635440286534637873769507952942493796678674677121099653784047322222028163844419672647472752939714809186269284603418058489640112573430734894557312086041419167408929821654392177856343197226794425836320273324009166300153745434959129900693557298187740735526071872618376176861386491670781067480144306879067832465452069186587151009048072859509048242390935076714295287335713888171043750242258580943642317022185591725884621575140521333883241528294181348476678744117864164463551479973697505683848164654523672860317306362730850470963011983840999418308764783028879615818492433160496997029384943779964650565333544541236160178292012994965749076143301663111375988014753156594513096183568268778206777826984792569504441944451735002567257644028647895245348118946410319142678080129335608567605079751664830418279350902819520950543460169232195553186793757574682276415578422015078102137562593718254944223229634946121987353667279888096303739203559011346134712096082958819729092999239351659235126295996749357283302419792626649458866236938447400197419223940644749822311939395051722706382059753951597204271801154773872681086795408249191968336578661910731843680808018586339793945886140299898897289427174298601435988122700298982773140827032133684983832069032410702052777128257067947629826898029836624495285244623649792165588453823803860353069537008036570235355546875838185505176925660540953437749966591150583938296964399766366950791582211703719981573911550496618948027699984978839226910755127381865142046228874336828193664182637583255057625696501227547518054588404960729583665008322057034111230077691654672064037506530921514591672707606908397108327145625938754966092995148439504456519303037196557598176347638521838673661710692369154413275747672059526690451678562112005642743558679800219030981191950533650674017438420075240268943800152616349180524924144755262464719359491657610983628176452335674321214029477949727079110746601579001653456031557035103426219103651926199327053752747004099059149062134050297714976107442008111009985486512038301713792584789013453866964170174865595513719396380881211862988440202718168598680612077387231880933286569372706155210313750855881295642874811751473501437334207556823035753113081403384522144539906048719338389462107097772723792743771829552539145261588177987634842048164133753818468939708286101166594020260735142236006398855248859438039920363765256442725536832852405299999188427298927676212478507894529909093452373883111943443423428063309802690856636382683239551367700455970776944670893383319641938360782797158661347874447928419641001827812652914071451132589292785517019475675769418369662617801527025388245890236786579288206414867117434534353190692859274181954891777170782839967101555247706981632159313141139959226078198868338906430571119474264056735611056150829809573197090583265889240253269653771020758611749376711130906772866875607547225669437240382447617821892065112427569203004723183560338997100470624998384373134380788280771613858283206086708785129643101274952143820309104917819937796002057756572138503083706276352988677709994496163927446396740439731192427298395564020268923550459988679802893746371005246500999789466249082630019993501799202069012996998703504964722650461668935678008985189354413939996429780505859468920202927758471426529941267430896474243564378887851349737486357585115060551945762304637216760825919227086120384360053720257899683278759111801046382476691599958470808137695550194057826665073206255490244334701493137131163709654777167848720243969969241616275845542924743137988855081778883287173743138353730867632857123902102800944431819354107747212032437541711164488118116303709369464989118567477568483171819879362980213454148290556925531508671425999405112685685569742211736383658195684908933410513639242424587215925697648972385843477792685160086096819888531935587533829309875933738937581164726501919324484971343202654161954857005807345623705869704707460527300980764171723490962727735725141488878104037543375352520551547442677903257204764338658852283016358698680151546038373527663895721083447846210064871675607070673300169720665856699926589021985356838598378188610362642361477730967227626916159631498272182589849848607478519717983268119494777767269790460549599589195453921058268374548071430294389254472500431706999572127833302721763753127390789266134887028713401279575371566230275201405143255907170297889552514434061403909491801616432380258953257457902013967477707747528051822550204236331533088380932464684256952868529162420223353755213410827553701066221407039020968611330073094893707548956278188251814749337430234516948474587468324757631908480718277405194417564372748613690707599912215663799007412727523190854379281623018176135945035443398572355782794796053749611088422742696309791794601361405689345191535125020045985942297269186407726745866708106037540399121948323663759986493168347786288498153916612238140112434056368796638797251248352406946415876032545372640521160846516357109699423229217777525684887845125999338338316155894039236301559991525785960117280318852871572685997792857497974886545727296466883681812806673662154486206107038610702647410236727370812013683252026106857741823108495671316737224057909360245194943962112039334343379351078515707838066619141280494955136814635108925184299973437710312979579355112568994100824110094321380169156510990176223517636891583685880421125573478077090498984845514099509624133161889487298726534683103907264206220702352528302307021333205846370838548943783690271544116639769730827864324794050577328006166528613666171761730296203785003395950209681271751176955795868195816304043547181928823821405320064538019805933575226278289459945847129240453532556328600171367923637042038139917226743959422082313128543279159897598367186259639182401841710507028775771648436893325405838815461439481135514060848398545967513935999533153745070483211643595181307950399693353076973216192595355242212813880545872802122365375918083085522208224566408821590285142113703432684092684211650058071243431601824539405636437471582329481165496446957255891859309882665360843848059612622322221424810722565318817569534378533968101473643715302328219752190824059183825358634808061666527742912645626030503305727432911953180224259590932857292026627028061671798460128412391761483763454264579213174794657249942986533548732140357987749933698049336995065150068236729581169853979703812077163493162724171593256176501627968969126590149034533978556609632488134755080290700087874271194070639428102971024010990587175572202401853809415627407807537493220852123049340083431172107882940380210245719017292972504422355496615432851196735173095440806876492398227289009426671484080117615368740935369522390713753283061255708128704128913577681278289391590599763429659402729064249675219817594725945133356319085877270137196930926985284489588248578794667621917738640923174492217272039613190730885502796289049712375950625417662338042603128748651171843121153565652046760473532358532956422896055895221222978595365838301205803819787617546678567597225137440234636745409858170188372495800678865042993334344683079803640472054314086203785282692655417745597911711377381993852532514194223955322430161933385823941390690065613497390076391745263415878611930386326431643067763794403020385433833288532843907624137028115461261465197848801023108171687201200045369518298907688806478332594195739369289791272937652600632029522418152214855490037306849696339214897664973497442087171474023260833335888534593948387255911381381592829806659355690614800292964407387870302048761789320187491148368705587214333419614613483457279161628826605632223360018302274701042170742075319285858089082807277915458787980822146036633699331741107037393735551140636960747677441201457600887810708246157442466742871352810317192344243927346993502309624512810562822919876825562016643553104914518258228600999170406340535130716235037160305964648587863773628353632907956568436360506921158162150446417668877574177031445918833201960939244695406798440232405710769252280569817033813880740634487682170050244254383231657040991136422394779311559325306394396959384255240122520120296947106537615373693424608145356022967822335718445105105908816148690948975754725568340384315513093290209217475771284577469249881216519630293797970896957922727692069000776186210304552765470000271201349132728404958740320661068463733054041574126791259149214332416199384908195446673904855978518683269056252477347810123671781510293225946650585597965257291188950199690549628846693269560707730527417089774788143235250940026805353590308356692940459625396356317038369582170192138631670098896903767989352008783713070338989093813619854008106030248519506273356704337228952022933456745093358988904878568665626330779497663638521170801041586657619674928739623724974328563655049775542292858465623734888992554064679470856213151483890447683243181529034418750651989127742135384722731774309112902285820094086815978877414105275661705210675292866881167570450476407160044652587355449542998956528868972719463353976148854540400942500381771281524611424869275267388684508533205985888656738193306338418636208898345326033550398367575230602342272387316236304973999208783348678899866477971426236437067704071368664943239625692311245163892659781982877995723210820867301812060550786628837445407747823866918975366701936104459493433928301235375485363588512300033275240177099277809755217990508292011925075943018226187530485898497499435648246229617640695324393390600118382535702465305583352551801139457963034110430682421893313763135208989240586012124499143792749059848962414202411984125442600660155717063020253927090023163587665100721345821576238083610693539939819985415099633936920274162100631084624467707750333299658943008295623521057752586787777522898920855397300743379307153636698557338371244665581011228648047514276868783723438756090104777539825207177256012505876763279472983089487161840037931646575513207686312835450877675803927707157882160776409353273205198606614757670016558299417377931792310710337542725980298354271826783448755640719578345639101248259549877204406355669607909115142631818744729504612465176481311989598695511236458476004242506146406475536737660044000516871271031240021023828296555192137298070997988690983908314304131375699588594501211433791316687487896617659468999213272571834121522754276823700659066918791384536651274679958577846503562278347924377761972177662330593012151095869058235810312088137152045049648315892335626210417373503709401483021274391351161739723897244062453130494776431035597633184835853073561612693127186300786227590425742699020776060301496170377101755817146171131345098150141923857105493504898543318958651197457999990475460594730354844529254630264496314130467570135623647864574037251334045378113053205323317233534353737720178172075536738359374390072410224441809644045005681795327898468421395142082307934176190600280969590436564422847937608924030453524926764988632960607335737406262927762388454890380889643952452777928669991527291198647951436678646508919814373424120110291003907297756080354640935706142345007260430205645295001879580778167173983973482193124805290940146765970941974133573329832259048587512103636023482885279334975737518210316363200005706408000961147196982043926277758599924145487122661601127578629888854914944935994632859697674237551285734765179636436599233074110250865565073974272281927774945839322883909798043615576371672629288679616678696012532218230016135137778480619538946696126242523155646548664197827217003380098180028088440907890398526424739841740514643219513153788949387686480677996448582576554176387231915730939884401737106765659930887406123595051779534352649710730058697846690282895403046913761553280495443361479627894630089223747255014734633096521479682949565444910767107595529505252988347108581642762795477445888317357858783979787556911849449088373262772485586517201746048954301482208731128737423893939472338992359465624732586078002906801845017006389682655160035076744020290873147508066642025306904482206360590277313700577014492250913273890473242928977007322270075473877627063959233892273731181625293627873643591374488211347922249146306935234513450208423765570732663790498619355867388000374465546088406657968469548389947963751536046384241598800036146204904020296463634353554046341256856819230893539802861360721493258066593834689598642316481917658266164418029995450896915014286924977014028330708972145259152752488393503649629092747003838517442709217669751263920119607663548542635317934677951495107822983982933957959231115189632651547340758099106814732269615836742911759807823468937444351145514430983431428319150130668386191061597699264904680706199517258927111198149841072850996922951102561043102399656520032441929653325788518436094094863048953069664114946161806747005789360463569084544879257649589899382463778332265181099007951368505773922837282605680223250920855727501325663582746681782799522154550331587277558267261445801670380405392744714765156840144495840273283376161490411661610566188494101444604372634359139919950758248369876101906266135091119459919205099286480258415258625457069519753254226347370499161917133907646735223978795475015820134476098937489815218026836067063745649141484670338960140078782901008324079216275840858362193172677601663387845028115341727056151071933585220164497861851140613519002803152584914391415157624314899844002053954092695298399296334554996725173318517164376645730243858445945203644418473338666742811900598023836154728636629626257883608786939393146718842839840280088328992784619226875319520884915335071179435067847554714307107981729024744044594431387198143360934786078036490712984465453175033621032194941171286248593937936475624396039081222735082322375315219591211222965457167927412979041689841101494773140156600419754845981268674367274826005923135340691904439325050342322548878974776316009309334050769540827302168575271918158024754490640919801735112925376837800145063159128354274346063263372089917899307484354097525914524308691386160038819196096927486332244125199347027736328972745404304494556312319280681753560875086066228596879569529807076595282490864446338234868875683120730811461788099418857317142827056217865173123010402940513968719983599730645611341856666733374352248624098513362521381403518235055692316834236526988476484677974639997605805281096196472931155108026915140202259865585735548141438174945602251793150562291761355018627624502684535205839311978159450278274510033714390706762791652442897387467505426440926904519473914002142832560610759906171346272988287341543072568085616027903206061015025729650099555006125653285162843897701864440932537825107637162528238674933173055682969954267512349371476048260762044560650004213964379797826061107374375101075025142560497059358865539794946172806935407001237285466626857156681141869121220505242934484937325601139484449458268379500953304891440821303704368525199549196503297279563721181455757438544241862250657207308079909902058858156359703628454027280920108025719891540650008174523208386246879222478430135272313711642725669627642658199648556278532254474197772472035621476929481678631260726048447538744371811990560466404841444727940219327082797599629778215297714957618665920824822851975399124938816401539152780060986745572045951324303323367950814668950242217562447386426129974300855923776154648523371900277795613065720643011294318441832616958838894519273387087085066813963823496886581299030703313517745173541612194919565479946265191975022805256002932386250792933427914345726463981161005391760131044445412841239521192391893895867435901379871107524120557204689865447722352597968150518245855703622080403146825210275895151793370862085128741200926744525754661365235515247130371302370106278765456459868158360719893636802607484477646539011858221797486659582985190954935161189706147565165730280596193832993023531346099182621601423825051475142004803688054048002081496184505216429877861283107328737029886412163508206558962795133896122861200083641235711764939887556859060599923339598450435124483269896965646624479852857406316680739175727750605866998831411799527059864211315730499859655026684186882434863726023439650908302679529341169801449414120093068204863639271244054886616734174607582090061489370588180567560100854434944021276761640237379698627563434608266850355017686757795921195052468651185649462834589543458800029093917348804297292826936366258411785713207403426948559344789534295947640425993175108526448884412830148224138879391387104663795947938359613685733665486388855429872838884054954886113334284063875153435485449993677519141667074660098067196153306452484642157815302459080787331744756419921311227884659890856451240859575020950712174913024024408297169161437345897683062668847112437324562547803046377617204034520182972320890512307741204622678619167353648917955061607907742787973053569121360611971936569993399291304598827428313376360621230805999819464534832460578759517456339746340302616327780362389256179312123572991476239633629773144139271670008222074783662301931587507684309421775409122525440520175100039875365101299832321787822106645193904860174045295667079036452626627423649816331981559093433935416186008407193856917500231712523794692675595939922305842520011781643305160788337944799007958717520635098251972323534641114089074017848321897281213017016840112289200103212299236328039879255068243621129540933856364991448744423744002116853902281605686640388948333820331294731811179309133869984128228707580470389841478062733996649469797897122714940192596903178035507365024890649677895490489240581795448775893362684877766729032928698040616908710092803182362482773532840786404232806021763916924306245131056401749748675840430093843340545264849617671010969626003063390075449943266015230258226734912992854692014186421575953745020250266187506969226552730380975333772564813835922734641557675094586613102826535232215238389119597981007579777516181616134891607971408950578128992555065601036320728377085939670930098570160612353346411858774348151355255214234175866336773617840396189402107714994317106092457549266923124372573900173923772633628222179081927275497564954777365969960169936663220926054889366902765258028466138561280401650973254862434115953718467748383372336424095549551014184721156588621039123896707358377903656478229617197471169717707766828566310407784788099037733448470879428067372340599119737625597919668760616775168121817723835787232810079299100862041047506018833213207338774137839407481206009627763622281077612850699059456028812842089592780406482869017186076830487067161483963848916415161094661343455670885466553022928013145825680399910344192395075481991235780200089412249140086825901975511904737418990101648102952658856426135297181328275413859199630930372461058016774586867700854031321876026362128953851112148845239526415502253330647126413488262039780914496088999005327688432634849585441195599065283660732715267586105147663941801267059314535284763935007017620778622324216070716188897977959582411545929214949861463827149017387063391793990930760057376680281520247372078332064619899923531103406677972859820424876652489362777594276076509859976953080021769359216731103244771365107847245161437331891732301467960657443400278505295277396296362284566126623340837072404835821255069456224982400587475880241775031334268400825708352416661642981938386174448208208391381287618807302132492602416149776497761573298909899649476176502347778907357951346216072959609538526502289703955923574613854912474902011040492877666118688285022133755778983345926630845246133542277440701331810717215631103535495229199297880015123562725211590021965239147942480936310418004573281974680073106760914650710441492489871877327331866100795484429988689088000827968494870417734060076337173232439424093131318345544513453039769228615082271635423544177489764558447359908861042302351738863489233084176968679790823849084927324842052785891097520678754547870801181025322361305713579898251146104724056805242222709392633152200125219336905056979222969330703841684541537763900658234103918658116039419374750460257455932454377866486181658670960424951213876059302033857946923728647634986173832541061229044064342476328028115487989057327447316031697524229377257429782343152518383500447069779683785531168800995575118203653920398115556060512510396997895685359273818181809399752372717604138491252624174156734341883003099605492900711220923348472868796455526796602704410548167678296686949097883372383891395839040749435428858127244332791525400745193498533032374142333668506815051685842900547859441645726704548822348601099864572055303418614293825439136449199549974726958774184587727873745582883813018674769077323618285991293716953679333582226903064271225395186407645256059112413979713746469080612852041092556861653655912308429690284351538615473251965882588619187713670333820097983118391966606145681556858663066258738765132798266545993107368519800639482388080312586675848495441558820177905234766575372264589714419572776465649509042516640052782851547505928418624960466111445170918355900826466388229316009836216158614577358335593504107902331557677413865930816178252606252834136908285011153313445126146363989274816082302004030062461944511933481955736948368114186571357288991001851715914685492597687285533216306867745575553101138909693666654071300311813449629134037837321245169243445371596079226850791409258927789340915074931583534779537064629631076175706315285830247592282425712669403125962282044237116486751611933780026118617173933282568085196080110987840683239817590958167419369324518443951245204569964944898388912058500797205829605796093663363242694069449639248383407847022835811886696644435273402879943406117302292144796132560703892821156173311141626992125157072980695009526632860142282622155653675019161687654744062902118525454053000557143696886783238022669224219306742082768166102029070027958827179343273165098915982958733942013345927526966283090013464851315448964019879508274003652336227627395915836380831401882964446925276909330084967542873174483375388565158081558456153772145075824103641809078017532229804591709135508029377259901238296704890133252596327315864548197636845463694032181231248481431109927476290583581990856452124783046626738089350536883869974410296773129524865069767692385960098295370919448465125205677385756775798394146515005015873127534231586118634683587891477617546038574855063350727734588457297167557138251688838860424625311086584829283517147883422730667436128295531119354859558442362304571795422539421236062737495199426826831274635156654310443679933044172410977397414282274865194624732221379104393035994736502815917391622585123708938225574067070066507135416179310031952118947225439668563625020749713918559188097128824387911251708446743822960745892764945218269872263945304298318316824013923876507109191624978135684247601644927627858247200093682733059150537041882889468953611653461939251828336936249873402555330712199972455193643167709654177262356677822380195861098385601441364646937576211765987329752238567347054816436694324889269929566734456619472635926432085615175904595974423794759197291758136302046946312829410777616218361156575064982588428366355771807951364775056028373008882209928697472373403741493695001147263861632203319750591279243482983235630979407053905305898951043894697425122954176765658516411084582235008684834384165888140682389591480581597013114556149069119677842747944861888271375322296516786829823198463688010075011309189508437901040962931078412955032887780912334550049355557990329253384985366099093793904162876200568620318757874317888559955160076452611843789001447266913697210558626359342305750293537754545150697414151113301816009527779146648489759725264317546946765530102086218262056594082799779896742148962707547732712220322295503994630109494049242506677548405515458901154455400928179500743875757869710410110955113413282878696014295379741529264647251465444092087641044958344634104914128293704227618530132947987534310022935379307296300996380456756873423873496457065724981346377450383063440892651946591778731532048003274745647142359689444605995088410561085653240191939107854219037189864378042957826306868807404109599638970962981143968154996282630820378222450685093167315898357122043791109307276808456794942587040945526138593722071396255126481760480208013009654524423709864391625714921962718970972041653233603121734766005316867574872584433581267002649822049865263582698066124826608802800787824381303067780618830363517792949507061210501161183711388334047984906686521954973030022575506175210713965569103159244380329083482133643969204571314496760060783307735136314102001851972578321586943209270505159016073658897546894312607289318254812434553066164568673866915514938065612347258922649473257478870639562199539086419014394402702215124297492418658804199928044761693232401881154568452474954108269954689889517454722738314526361214655934779156974374241903985435582918125182330333911616745226796732166659574980583768996523033667794166004323456631172321870790288438085454052851024095597478118510054201268035505484740774878666196645073749216660444045495873406461799985919973337657813991895656586503245025478990316259906131091642014516868326880122178250968084114375964447601541074233773366416062991176634040036592666722909244977090646935051379064061410382074903519753906448901564062866002653106915174364026216484693010167220167006769829145058688182478388414774261732615727864581798461508870998943602041779948015923260085486911128860347806349474184989321788024664143379839144929365263610335578196991926157880604825897009488020249799729338258186012917471366378930851678227200989249348078678275911748984147113634917997042295929487160715688668969749132669794301637340993067469257152033864739020789394710848329044425512425324407974155727644677119044172625352244506166538859151272383538275143754895236154305705889768630360640883412491038318791834442949651713182149293678493419825225663996065113572453174293557698989756415743911296255561982505021038753098555720634909504751846728979076706470274942648301844182327063035242667490280986881309764478579188967730653875236194599747789388015202554731117076407166893064781490832615566136071300550916649327309754692057190599365954991687756383813637781699293788318117058878020650707531391295139887800090777210130287366620372644963065453031464990242459998758785902468672328774723305289761200812898112809598171619623132475880057225679523640296127741169617473531597755424233296834624572201841407293266864497868844620865304307306372907513993846627894876340261778001152821074464993009142603897494880493045823885335584047242764715615681405993098645843158973547729203998201558619720498917866591598776001040423054361998584188554176979068713807291101710330524761621209516118310742600329910262334532264182151890659764330634037535000828096669291525254207247332283469559271933408014811572813703995283956752400939070879520814306050504803128687468191896170324947628981632620280918056443340932332193222084251636120221565740771264638507105868817659840296319506624596624760642801333740223418283931732981884895594128299767177917696021264308193375057863946546491107624458060856041102331197025688385185576276937807206777628313503901462295193067012558152628025736601092998088305559271514788078303655698952864721048978448761411694704065489976370674736992635443606714169332782702196808957537483442479935837410731652690882237782394618440976300326692943566719878359395742481377632258712554387048333106198453795887702924850074210843382979012801514058979522912471856694043702572949599697567696236156940578499334417584307296272875099770934172752916949711091947859649404136011484880498539122160790643921584089004101944010676337317488523020972847746255956792667636248613869617347656149797680146671048629669897197448140231940055961103970438251796819212847090947330356165677817152482025164539820994347633533070063836061164728821180721522465316642627284580236544401489396945065675429192791108499209418876898350978877749286683808151981680679759430972768344375123529188543063455158615408260048074875179149819657995592898790519464039279540928174262421539699635124314185283422031328154649962466357798036874530436499052179919378395990333187015075048871680714508088220920402431480268043910572394412407409488024589431389929253411113951581279920103290922837279643598203932561672876199471500131816068270960279193055432527636776476983442009706294807113350831222276487058270062796741617414243068418431236497647255444811717114536237115578178172657362985707478396178502453672183238368117750051954637822982240222412826277780217338207793358427340760735667865211253112453003630626944450361546684232659358076069748885182242034948935843999988118280164549232009133553608148674723528919399389117943210762751814012399202680318467481233722884110161974951664232818134734593502494426563013922118409724155403960336655355429458085413499899501683364757912606271743827921489371572374499004624712798003883029483205808240921132156952662991569512412881207426322240211244752315726190221451116309300363480323111756279596333625286222803888524253192225230862246821417982019799957075971162501435575701370862072140666378867806350870312572398160873923594674659650869336049649820631700729960668805227835507267630632197360129552917833922397472890014038088313414981681499792217349642252406092712327569424985388548980561935840315837500428363263127761954138886498237006970145321441452066923104994980158627681991290934219922570239251003774729401619828281470603330436914994141750881640018595706966820268243015611237642913503466103112112828512510179947494710333718599261105299923316757544857674328996581206372596361344595668041249638629427134472569826089529966761582507471018224939482197157103409838081765186799137872661300783502167295606043239828689481529033342657964159028718154095955137428121883675294656085597691498182583729315666913422844717929435022285187578956883828584011498678711285114492142862873598095805690666894889786143927938930230448270961804725381979666435216026335628504228121260778170482023252327796286691765438397563929173855801882211875626229209845450833844311334526879541419540195344452119597447376581890511347767525502701998277156003035611617338713223055810761188331272238649314397283132100666752197112155581345296587583734343831489289607286839084213073896630198487117851907316790218598405758147619810962165498892683404770438309089282361335741488072946523355699965815377072056743622599722056994796337583251947517763205830730120848505836833006799476704885598307789894751151063199514128914976173534788718025919491527515895332996083407476380644568313500758355569837267747311247809553135056088857035948438156284974243900774975662219043605252124139872969274806237065366882226331102272774843512758527765997073271981104599749364747881347620595355077970318768495009627870980830704879637853457615524522614924076703428146482030389870971006345476458261937517792576125760857396479933380387450769868077937039915537270379032871839455504264944325226670374426660743075347235905650167978389889525936349897798776292378755702185677087049061547366042509917212000036419208205497563892635972604756809083097309014246653835282571763332519213465129466581051376932489648543555280501210280311111955614613032058716213041964272990752819857541050929838908328211244617330394667319744048397149535328772920562619449876685603740642481587444981058662928010663113878239601245078595231380943810245805130936704696939668454589503459672007395738994792471756287626897163080901140075910440093181337256398715139880260623142746109242012977120414615159671385136755335864280959151084949351187015286279485412700347937764853778583246159363287292866790012620758425558793977163704220448291033554799775011196419883046502601754016995149076759660096664880812619915729469598153205489984573535219611892493172213579347677469780763320491158150054130237902394665941802218523339448831252943186754971028824071447069227450891257029256020532774710659956507018541484338305302399735281855144829824225920294673973645227303989088235997479518645214815894169869266289644570039608804791501512334986423865772577212496297848874887140008055705169198849825265697993039776302427566239935507391326413590554647925856707332921117428770817556587403427640842702285250716645635501959923582043344700506151307671609979039377994254786841162199066334196107204380208523628814963928222967725064436829420827606602632155103517560350171982721976332979099979440252832034960797090156809930843795870596938462055630612309293512830193866001454080785069573264457719347531348359982324636173485457881996890806793706973316503712565596935762827800260710416554174057969239588183353689162459516127725794508490424036214862409860606387260436321387669677103034266131925260248206270416914125022074950693546996823909982497617165638355110453834103466275236325265580703141898155600423316692693948012878370377726737034063737165593706657381684088013654006691360414793281205400401403347980932886691259359326582035338281571989153069649904887216367403203580137144281440939240601993038933114509680424094290701338943360166436179804415309228266377649679912651054302538845772498309813569152852103880196392499576617701241895376012328272198524083535689079094301855995238903198863126464374849252519424851866971219740362302929735220967900140025444070258217052445759690610116266446758059928749308506896981732714388235148961931938044004745878757841272165586313013887020015593917204704811798310313282512666073406098181785209392540556580279938467385822067660138535184053181631141801404384940602038326528681172112221450348429784558459370041711926100189962983319020032963378562668769194820477479354331467725414532537318142092586136900562619287763369625543755353027674948719537141596961157933958924165748636079408620480929433499742375168306241230380603676112878890159538713025556300933118777514817690068193049747458165721997524625666465074201178830833605490011763173911729284169173434115847763056106226511581569012329925774103055484907248821074064851090742651609767084899172045653255561848041226567141970709952878145877582872414262023453649504542905576950153194696690570503192014361910612066189931100371872282152210957575234090408420632778487498056196018363504099539956669520113758886722597320411591292880325433846152064435150057620779257733393362118080969075934750187652976376022513273203352157567579144965806834829396694251296672574760020178420190104122375006116192286308832119514942524254059765310082807007352910550464834223459256865880374399828358900957140893268240166175104376932832232821807025352004814214467979870699598417518665533604963147698858692768106965572172751675511871995084988623921500232843029547922853392651647288573452377323934113416052634293677824390449067080708327094420843155138276875609607451990385208190583065160975237446721375735371183230420465029773529950945572374895481470038473174135985411228374247767051549517958537323165080581793009363588993890855559351944466081620222046024078167273105163061989377886858878742154527184970206124764259017932002631195074727643581126026948868021379731149469322793602865697312878933032910739121398077315294285307832519272371995322700079929950287987267958699529032303432734207242061572180761904402897182776775435461172472759897186043469339027911623061889144316194057422237740534562275500979745022383347433621861684810602679698030598294441446668260956048751228961180975627453143841583694552130646523785278104246270474528868779798863466245314192440721269793931984829582498211821149280313916674228482664871315143118917435244361096259222118722047882068407983746034286199355715660470990632184117786471782240973132807185171695493718214365656786873431591093221471987400042626255481712764657986594139131029402196793005225572505618615586309907804658387276169176237147533354571204737474102181951745498095131950892564192661977682570277708558771301121750165141363602366251423338565014939718406303934136480838540864552840714293263513967786258815316680772743081694242473857872153504745733768843632619868832468540787647173846426783991509242610874106158390357935768211488627593679443159357842482504615396263744716575339982344521797633667830923627689746370928353527775632449588362867964162394035481955310820873589860072521763818208072565873784653666876506310123355462307890246617717033847671266609382300112874626698387506045989616729606950121126252155921124936086078648458813446120556044951941257688668390212294008195674025102344475544498804552914746429864436719612600187652622286302742315134252184511537670410893321864396743606810863108105263223941949569796498513841759384483291182183649769971622121856874601744182309165630387220092956331291574198588758613077471635393705356424320784310693596283288080861691874061527987989199356443842679750232806696617515491319438779281919341663270835604070452494802828132113871840108843065679784768795744327661909285921511602727634293142792087710158394182692079431390630704467245394265909548302842689284840013874483503489478158198480850843482749879159333905128887066584543731719088380820363983680433305597971711850784996916359053934700346872674387123776031241793871518156831690375873387114199318286772721048338792212719601303094719169119288073892690340951125715759890833898296753961426338092276200965030434303409331041823512752213367695417923071882913433250485008307726693964250391953140946825238380125285230467627264155859958175140731339364374806392234375655661310973980055270294743037547463083584391653253276364137407592180843412056608047396675997520747123151659422364120662191073428571440219958902205304435889288680622860696357092928204160666604521044796092497290544213991985145266760446447139639137319133260275290009612828128654088865220318162522759672530539802396460162885453622774889540436688439150333963689988899722560757451570273740741046124054636995107407185093970974676377711824897320245249257451431453476266750887741775669122529108908276561730009873123516779231190605051390328829719387367225828387262938866198064742200233218805365977041903446738249319926174120012146463518435979778579656616788028433439729134344138598797538987696137335714221827791347120637958975716179465128086832678601284893401516771003423975371974136438684286528072561165440227794099216192876654886381141019694530961768556077290122019540169723923035095072039982913522497265783073801717583141524267868190132646922921183215821265022034508566879333151537548160166166379219945126365883112402433823819722280128947054187081687328052269448902749859264423020449979587946433706234003701498632500973026590448734222571168026282292642209572857316557361356854491237632912161181310702277328662543816480792639034125254711081571646046057734867666866941789267527647657613202160050314562107781192767875349441019728069363374145310806224621656898345492123311951360315076848660184643601882870233854156747331823756935203025874303770500743662388031727093444821437636248822018855983502086670866213309383396759790323792051572458168554603102283223342716539341372442722946125284943651444415698870423399056126189400092414486553659277908656755300213674284027626196731794222834347294459499804479749271544902182217227908807497958368919220638771768904119568332898218217152386962025583890342944700787463763458447970323055854646056144186410858264809287619521144656076243204800309915361672895229776586198365378539178589514150757147797497838001633250865480161854667860708059443403935025755687339043481804842131710889375420750188049846470183645220707096563678928075318283962421564353434587636571031980254627791546099851292093089494657420612028872410629863406915992970977767463038358721779030031196630969297145860585432552447426520749732410735700174307447102140959852776593343025400931226272019966631425766918519330328346977624107120953059873493204815587977736217766237721290327838236209353024448315595231723290187917721561132390887450061582054861803385455674656521411717984197761393322832210365293257612439337720165316557880554308835384921257812746591335361273578172484105200427797436899813467192501451921463236115914407575964246785342013608975300001778931083000240424341445611479371763996954526894225926987968244175143053734010464662003988647201934545502738125340144376625607976215113915215846030655998516301241001154548060223621153410734231212267852590943129920825530603729845491252570318856186553691251828379061622721816835807637108295533694682223485852647603528044977297762483147164142521028067328331243338128906542002598817270092172953591449519412092997117128151408469551054783667715181035016953763942065292433304843659045206356307397467675366748628044957592318049531123475209280812939658678709564769426378790708217433404604376092176019794150925414526078238366720426055911848591132798266150056872033479623971078882477188524470232496936474273234053006740702162265115222699922737463380803123245263404956226386839892533400961876907973422646839573796860708517265154527643482030881986120297240893636097368660900893482396124778471939478152695803196817426501091806733524910141781066028721092091932209743988023880228143250844554936946481103017559928303331443630325010144094190885769512537792751445542911621509873596320539877114335499251450853960789307828796861022828576558688043901535405700999573249535450015591899021189632564353941357657328759028360245995209978259038253071823012944815544375265969866309377517806091831263289395596766155766340109365684958312664262337104481986625079572643807181485855198510764933720040470421951641223268282544183642066532596349682332564934450086158999042383802154264122486424896782123325847564928233186295644141130287910941823921073012136782688540227609145902304009432203154541225681302870753445069017130116922529689597704793046020052798407823807510551534086065029250608805063219785659575507585660289886868856528404278969611493975469646714701701408030181677556311026515621457929549386446986841324416441290407502689217145501605075435851258693701143824094923390774511661040069975538914803218492579378641716791793152677287419455611990298006883722566722290840325615035941377094418160707387351094374318364195809255205308396423451646005740330153457934861515545787973763448856269203170861250029861149110886870589603332872530091873547545496082489951194115753881878945601785324661236164096309259571423007418546792240043233287632105025754567354674211090702527676570105401995275912060353307637239956391102409662296440027897429940127471247280172963105438518830178763006850675455691487009798388812032833622069549913405512328993861763217579003506136624909208653816791415365842022184164628810561415183917946865233331069322051594155252369842455240679684584380207322834011331436039208925762504597957779479929634278549372828072866748332084160756622568785561146495405718248072965463391501531431737373144362417609579351471865338472530022198538737892712551368960134586458323886857400284277655005614207534424355499436498388754374221876120220278290399742515493515941142042733521908435045703902273260230909004937589142370242850478357393151208681292777980115087118112639829349336046750029897748878079622148770122614598532936927311300727483466233022392247122426815503514180694687782715544712692495969153732634407929145442017893742429984159725855891937663185781656449978316600241355760299177057470430082852635606047112945935353684891344237969222178090966657937050503484360976396102850133245638967328661638333465656914885132358124458866704691268518594006783367627616474459043143585106765438113129403640692402699366776929482754113130720013066532601511954328996659545944692745184116029669571079497219945120503210005644811766982361163445928818511709679658849853212315953220484552769645314334419476717748612222959964850113516635427203189946085983156914089533228922029854915899162638555661264990539725436153445133016066497723940628077901650531140922649034297478368156799406144056120387148455481187459412771271760615925999693263775147612469210849479359248108812600768360449770442899105932547625239715460332504438950720932388208849119697722744595636234173218695527800097025307997737469093128156418480390364902508447987396543790628746036417946061950328328151906824993557155592535708112976377245638896008385383273416310560841082652636811034332510987654132359640097942339754707451224073100752494802026985506402446852974560539365974330929541962159603514405742131312235687852529301959134842229795321490291078686470448610690423067298729859199244808333595911083747400832172444497644525401909998636299588781677272048189168775397893399173186110630536491050310064091802638227867662176939734577529880507396665556251334455278675937276448865552993438640790029940039905173779670925874935431366862134420606745801025713496859020277191868700943027581733491801595844782023844222678040338183812006320500722280191303815011814824501278094262872306513714874760328669057964319770279559431971937675282340644330194427010889400771438459505876239934317884701156082016352154175026068098779525382479165047598111449434430982957942924013477004953348703303853878525371257322224067711227213242590273844216942272710585051790082812813323189430778606570743061937196476251474933213912233532352708020398152584332553109199865251813018715481356543004929100249013892455241838752520082505027646606361313163913552048327788629025766252056673042357016864225717707166774250024108019680437818642192226204223137843844139729870207138272793663825724180767819419683845818822021646450786623880439103780563132719808484378035581491970303679046456022169767937066631250919458894206212715568788537410342859872321999554255732530636515054162343134213932627315356228045526768609261491517487681525759834414024038729468968878430027772003871926147529641947506546279035437377685983358809044548788352419445694233686402860448773703169545888814937195378844663520266829565219570825632085141677862711520460905695547961331420845458200234884523087259925425433688462199455659059203171208901475707470537395957691777208059708885760205744428799753240817650352598174112386839260033298179522167146422261033203545081559693997166364365064676280564318425496799681399833520624140228329915340684698560880238968095445554918301262157165118396505502067671251056508722827808855597697134821400393152281849094235352807536978888001722783150761668894916656167595938744983706790259804414709695870534122767854053325899831267377819180251950607062053260773487336477932967071622911978130175241250528225353154516005646841033536869788652346824598601421620622724834159352656859834422927165782254708408224349566726066428923553536500120242923855788754924654255389423405907928720461832870605098076671311899295566752915001651449239330472713636770961767084004214617452078537819257027284762973181562941676977271684374023231894421114726200226945956809048569312795020817505337948883904511403934770946052061054531620348367732570616423006359200440150378982419440953018491536515310560027471322539598587119021117075923030153951911542413908904220534905177498291794661032849435830969871117517841101545322858878504374728171789188282941136842065461519867578105663846420174518227950437696287268896297069002971516933399643836548404335250920180608345370976828356847708060960967647589650927513714602517096947485629282277539539380128850519091237472152880553582231016916333925526393816459018522572095688492731249123440468740401041650487815206972920790083055921197717771416344698863442100229486042118270747615811787348307535837147358590584383275011768511119493386331549317201160035300781549009438180548175313065638479402519730588583634975374059622247412601663259833735843290490812909799608377797096187280654334124295261911795975479837488915245938332532115680732731717744816790032050907256376159633630739801864951418334117185059277896413074607284515665473241956410123659402399470279133111209582810775317489634235796217694654077453880893242425306871115600456704370741163750360890017103333314304305055375412682625465431961427976075446572105353678720199027084336777029565232941706549820960657000745139079515556329942630424128544811500570461404031680950597748952670792502137992337484787462280714814891656522397978027178138107768843803311555670983448191170991119094767855818507134969229569014668279175957725122531476806220998841952238441180209587948133132055309119732392616672713913361770615298362914872732194733973555357491439133332208782513124366219069860530972998554807545636466360516058027303335441371645095878124447872630584890968927287398345720972029025652892865949666600572117795455743934130899366023208294025042355934646530244010509192987856220772496528005022669609179502034483627684636175736026528554325850668493003467871813603914655544727915412200816901216670837714347348306864702961978088509880729984669203036406005335366629390142198278708045380448722728568280340552705978450939782353273613241422409700156071040320106821691107722417985983892807042640903702871519250624890334284734636183067191277811549092576940432140545900512399102304317810200571951671666215461786839151770001722848459960151640961736334776391176273143416163444651735290872963906985532650652260263994294169922154465201860787468344117738150266686360666583961906589071926020629264966143344033483200112274937205741297985321690991572827280999199347738810429632320534295165274687827830511604210952309623046776990875801100084851355825740447105669472871518107801580396484534286205286371201531444226579185426593335998172434036373539001391112028445541548585726070989791748824286117804672323957827566755336848892666103556359383697757329141583035616717057431966587108180522827061185299482068684630294840721663825462666827980425337938023649689526012147464668786835104599206905925115544290432966358042079049198197344227546777269150225814758757448757661422639301376665825087353456093428934565763625119182712184340263406143504308874873635647219297048662222806913232432005188590451622233847527174744868408051345579442117690195104277037846700564415120652743289618162957706921784665375380338306543638964848607958338065438765108052032389304233394411462185255686631687598868288810964087553364996003344396371237674046917400280753473253903067435557348417701447020773682249388767508535921380891788446274274014146843329687755020054071028897831755526269818033348250493382385458025797451873223309286027287821740114028266433727402324539697603657079472801805632813531513721246364466726870825843135020495980322445059753319495503726849132131158120416872696840105209621946772180334250652235545934274230073638978456083698121687050173614762178904766084268764222383291198092939424330850581291307885253796806297677662150095699245389846433556441653487113691918662609812820960093751683312858730512175344602270809614380292154955798144766767843533726387311808954606788501812149942328998094475045130018273454279024338580780743610924591685562806798985126141917969290468717543783120689641174624704983599414412921875295160417917385795228323635737277028005800084780991840096985243475642614173105424265518518551230982737478894917354396404641562536835703257120065671171763898625791190160912408460169618082207267317808556902845484487310741354624657860123403426153387462735326155765449884790046638862808082707349630134138258769316257809119150782015015264554578602801136249904249058776519485960392043025243539801291614720356392043373796975606439692609502515439244452134889999815206858349824963332599226596034005888525563178000779755936762266386750784289166446838684153617418298974224758758811091661915227294617298299993443150023699605759180527074418896702701554973944372979886679994245280113905480587262200897163357246924849012134388413131002424084325103885542518702586210085714502625288188859279063246041883680427151297604769833372183199522765051407859365237009611281037517483939039214292754964798066498869349074723706923835460033463018115990666278074318982205174961894863865251945722207948016807925102113100432359567649825021415680079940447020218800071693670326339315282913988163974299567691977069105173343007916342456568336533886393613082036197257346334551593974551041942766524920000339306535324536966883449926205035085851199769015141160408019463305645037498105049268196299056426460897645991929069443364221653124599821354757633756022607566223473107711010804010476746322885952550854715484136367412519565057678321026546753426175604321479908003175976176026012462463982666450120478438331685902528190593646467689931475885795847267038779402352528534113197956132260089951015225743547117492424219960890852659940830710586876052018845946247518808012474601194672327464486036008287514150676655730088604885883304665604753768329040719356403690102660658028670158634420807164058324225936367891773997171420085118647785407346960298753278576370397740801128315431519629697716549169099612880304014664951552891726685973263460288009631166077539354735960174126977400733593995173599430757196441465628269378335060415249166827575817121816846206322638750353509862990795299942758066349240950330721411149514276632806889563861898213226772238124116875933834736026327686725711781350802041485141379468245105906079548971293729758954653363751813266748238689681457451081063332602845496711660526343618562313810257946461014153494209790241787540682183495423250070736812047861299350299985406217891486623895011900455588445023791799192408900621046464497436294637150262796089577182385774075620786290146521526505257051345074327619024307421529605652314891405992838346274456967278126740799826853055308936638542250353462720454974395027096064104498208671754976123017544178231849722051554935998915833221448108885463571966914257641285442663835919058280565748617969962543059941759164061227118404137088234326010374363219573870439241414054564225015907714759007262258097013751920806331765165629942305492370995191511875363038988104205641321071484483009384978863146291867877646760642282629651665396999867110858770516542742075847360500214996140779012347304345451237242077592656219223479262910160782071050502707728929362101447798536682248042323023520996286978998221934168096999478037960610956004021105144061126546847064913813031649133612784661423066732989399646797339101531194418606250857227887602979443899646144696137643016222449461148753416840090659485776590974181508354209493994213890080386921061213151216589624098305999462130837487386836377284929808040833720474607035342024607317320631315241030068990899120356941949949554271687685381439890089211680664972230101671619433981394604404631823832047960074480848452181760139811422874260194451508871845580827627459045680919631582178225888318956429712953858209122406640077312325776574175601266261570440000919114085392426828942812260506811018693288451285474219526786549558123008207708131004902195813127760341950669572273941736667686541473135271862940411867794480135121486645514089873867535847301776347334437902218902208038314631330311115053873646947810051180699489677859395464016020862031521110564498799632684480651754114231715680001533457631542311853670074988146208719479997938239522528291490814813880442413338883125849950485225718213765214979525632615678890732882715620577026666047383927438072493925760297790647007746270027912291159382426908540803661877675340873280808691498375777805570896754878070725523638024784327711874295351940325234074490524215501982375665762489924206646288873268151009323208570302158877639593133883701587360740901542729756175026958121451557284029562603606556272818825748927054567515154017587600772956761201822578859483434740465013170338365745735565824124108112669606295221472667837574055974547100162278093649749453766512580480140581117370168200653682739513248360577960781841926919399367769325389096957493459044396309391957737258318724047891557136323733940598844801720986297354448276769900070922638221698960361117489179149447686530957369090863205833700660621808334419168713762374977959587553580213502625230371528778136534766339382242427002571579434539688588334089325632872773781319200208019698325323676088351460699176812661783907550442191460999138757316252928214308501599161683286594153439020914776802535310641972076699367966128528712620342375256769287368500868089896891849276264896947195757824252075423381035951855601198165721183089636600808478689161643745075382431355988167280071879025626302907456843899685391995359363146668488389694235090287329824028823327252659868093339068129022770992096833897365481820131229105608119365321180138675292586932035253940032988257744057408654665608185082550526520718442185044908462470182540753654159278189923354893847328794791431186489754368790183317846240686945670235268416096057996079360905108296835092888884116476630608716122305196325406407380701027972649322948419313867801348724594349958431634252822278818398508666536739569307038765366111509227468824616847309761580830419187334481287809436051049906278407173037651147233452426028648478996873822466266076630849499832109129836818945701949236877752590317797895890456446657989499533375742958561602988747167692971061662910021260205893684342204296362985090875526591889288464701257462111578500009605048933987075853620431907839475759151888778530071232911226879230811272713762537202500387024446080065874947241567374371797295535142785357361998668445751736178465479868101936039560675391696419787117380665027249272593241371805398303547804218713793374438882591440312740963339854326083069562961202548057810905579805193535117648131926363784809214143142468137879042489977644169134739922251913905339333423244473424588571446799104867417483784561028849989139866697237204145456662597204030088167459385189007023831907172062690981810051515714971906430220822060008052568639813542598423700892190826165215816953939089433043797280020255794213662813144913701537284127157557235324963758587579481860622800322661386609014499790011398391668024861076253287031217596840141243001621822525003243742409246633119294577832545028331211568558936891280353918284805551533658097320649859921865252927561696307231722174300943612790314540362084605321583162618219593601678479685753243841504632509181399873305483971209367685158182385806516251434683586024573034956618864999636160753917131523051369803475635133930205246564292079818605553666151956264021442930381218234039340246945942264957851744179494226467816107155593343249161927727051315484208474380025676315708689091181513706238284825395825485423052962013247934380552226552313071586901307417247470761997857770478632567720537422318173798209821814125355662103643967592641592642787133761274433345689739765133891597605706474568160429219585363537726218486969449163593976592474302101042407059557240246385361639808701585881531293743118109737756066493065036489220146648381473500961270337419824109556503901061144553531913534774723927202769849196342494936977189958361759260873753805153891461745374387887846356151184062079874734681689264276958284531801237376620195212498205002952955537327472139254105518792242129557910872388872848413138109203541706960467730645174220440770871117874644512010534699784505831006587496609278058470573685334422197513841514541318710612239095993156793502669687953353396101947691040433372638701601620953808431642918169985810261664641559850906666877543077040994883856255723127489532890132574230897715389127233440915339636296815407621607815463018201209229695228925189406635953205573832975042998202866225255816123596930443553121368221627770965065214827784379560693659729721689492161496544604706742468108964953371214435201465248041869817033118963292279049811654296000813305914039354323905778796687784511426733392756269440586730562179290026310991448100111436296453017594473125900866431416855218581069474704000299350001646057132804736555935545118768646763572509754547428805711926395200247439800139251919957563055476861961864420069637003481032718622745559226195964445297179966972460327924899140984413404071756858092019774920727977680012774802897750318448330795578528786146209168366977902368279919378689409161803384609095884603980192218901927066900754347883473580972106361299746301318756445745699840290584064629463772162963489048941288043836000849046297437501915338093522307611731113422960776316295416495275331237141534599302483001615604418665507029374771312980508471398517401685965566570305119916370974119866361149853111258635746168658870781791970671668334708645418112149243503702739756350740274338136969478144763457184085425728245895416621273289997011288475299287570539299442225013945798873929152920177285606983253224143928916693333127553366093011541577813468093321456288638956523670277242095252455676196062439819155102732608721578308542209996757203521354057833075624335051135174041515004001349858116151986132366901839778768830115081182422225087036000672559224195837201534365889645163074619551564522784499710920577337038434111948583774197189451239818028116257567183756672803630579312327353183981610506774550907969753409401874249032231732099169754418127472901945831146945319306006159623074536132904097798539424688260894399208879381643742253413723914280806070190375260328017584448504488663605903706331966426986649175253188010754773675785202874927185859571024456267291710768296685289733603430646221214550714008276897705641548070907311687839814715338292260875885400272489153459537294919129314899932976376642527961874127165053277682602690974529010884545283148762974660857169294079700274532381274221581206900154918815347403190023254969108016303693689629038686374055284762268312469269141456853186422643517797761037277468917458497729944453115867848362079562015472717458082661262925517890335585426664922213096300142704820205905221494841261823690307490778331054220157662677838051943705849582373425935795278387170100315466027447312851416028247344102508935421393408869301505026757845448828247975408777369230896105513907416707954007954908382938302763892965759971989507550780578457522202980657015251281477162821290971703352265306968355057121654976141442834656643954688818939845615102616729389593905431752896499248742343121502911557009411137067337979718700552027096801060693769107595788354998512970360844541571307291765682046315083231173549493572764227100781141402677197481368144764225695644703104190873377192418056612070502944393072526210436311274491209095014443589598530562545647992596847049114970486517076206487069867552085787636160303290322338673334001708979324404421744030899762176649609955909490085110385358694992810988833160269786926805054140238988105041131428035925918989062700832774038009560265335991077132744474762059873750226261562175862302817015330117134137782590161582934074145248457912689429266833144450843573198486378324229563597391047482011249515804962379299705343176302132213656832271551826885723639854125335005331937814845601599182483855172103695972928340595659874849190261207215418180758227119320784853740560451194890586215402657242852184604354801732760273392538775023331068102044589165169291976790426831437977617568658971570376268865251477822362460594162844292194175642871849567914141532524492525115709245167303047387600986700204765243645406030662833174873311025959396233499292719651128761466792551647952904557955742617439441223293550590399988415497451886648095486278156228675975055166107513617262684955958015974906307988846048656182306674740949549628259064560315768461620880457079919352465451446130172879495817347607289047705636682764176422803254527361895394668954786161095726473955179511871310890549838511866890689704682054118061995708195403001331552452043405519540906615423767367092828311529260010869783941651682463277508836035457534341737060727567003302916553894044495986520012706205046483153320898410464676828449095238962171289148471168168018373198170830548291602752440952048926104156523303620326362739093625622021489658228499503457663644541593555323038928171527731847155254401158352386057840927222605000416973635918659415298933954766558487721826824379764618804248346069513328940763004011668037948280504880740951939510278343370785022298259340316031746515572844967648019025733445174984188452137669566833149784515872891732036892879649491729778446612093216590906683813031869435520997343778045381094387738619647792263439126078433727481126286031826285054255948052422026247553204795639486384852694367309764149283495487961951954918085212471223809970132909483770628586424457012609500011595122043494430949651397952965749337250452832615982623132471454239776818582395855722037040485427422258997631925121044881318714250290448670692757889460438838205473603296707656588406601681628150706853941116389696815840576444913829149931059984558011964343362033144047280146057800210877321836889209589456716719762890380492622381604791471419673321919315140567647810293996682258839076756469434657307631607406081799811881491086602192756345010853255099808744646402324827564451280360912087626176039112992148414361503415453401532912693480972445413800813650321120611070280583760174068249683401409408279953988470108637222358959440044237433706837511161166354274369540543013740081192883322453859892332169851499981691216106651669168670165575812765452608627026790406133202141559594094704780030124451938651943823735659903750174810458281466746549503583460130151857346954384693280300659835199745283737477463344977040835447994427303824480193868082765471687563377974699788220826995695810519416638099975922071732592753445133889532042849008580153019490897684132328623473549990210592537310272199782456514650207784830795689094836284445417919156441006189937662101439828612804291764551143119023409757745980145387678910068704883295037085958949569177224416698669303696781915016615425661791615025592857717985632430931249122661913601944525134074404346962250740707709338528778546185732054251929225577737512430427932621935121431213005628818418587091071864447559598370470786105334150500847440753816613811853202328354272473859155504671133242846683889022720874730227384153496491626427627795975737118876014851714892494138060967526374877946043275637962635600516378541735293284804503427288902125205428490116253941448542088931341544617526260877066468385471619013153273966646633860986416063870150022376192968459779725050555827226699428275893921424780746831955107089264711990654756448444469568736488469311000077186416199879108776380578816242138220516465644868544762130487540992944768710325122959165150513820289642039789978924317669208963643639563133622362213769165918824204757559959364735420800271730123881189271980069794059642336551334365410936705708229445367965900122567444049267678337693085186949342802883661616512125995037323702999259038889096408468331899128565837358928228724257103817551505902511061488368837105097169099412396058811902772430940940431406560248294274822498579713511484476649364323265579215703002055167850032937601823393867344686544820498558411061329290980224897505014405225848722034072502237460030894690325400135042140294448565333947558148413849835745324150119037002126534985603549690601646210503587326642853059107229449302945962779666132046470807754592172329849486422268600282717127907932093212844622456994230315953930475151506625152818852267907516277060950729242517834842261946260056182244255960236490733477840740069954633895865945871871170554813480143858485260362551208174413357361712396058698983241746363103005082290400691893362927340751627822424371174041890760925327864876759345435858346773918503004722806192170757715568323230178358450039661330573152231964348192306952246057000433161700857152466116141060735675606082068497744825184628027474719232017002365312226732373064740105119529104957821840694264042979945456267386154403521322116628224653968807580982333875213821731045028355973197486447443129658598229413480958872909708834837889918350360495517787140055136239856298890128530637819567150295742390220931126326035917191418307604947818725215917046574997013878611932519240154764351174163157268551399514750965388254334745749017593037279896749659297753347757264766203630388964013876438143738423785163690306391843890769741191689813474630060059560454713944961845841657548497073449288388735992078603767872508773212582400159572103508513866756657805566033665526361097999484098140863689258061425697740949045990433126784190804216211305621784506351721656739949196528797534869153676284922432095898773337326056573098503953819386897975406336486417974020002050110157194910930874905880537250081530193375391308513637323221122677628828349795125607526889833208388660609839360855391521417824063363566188279640698330136275149221564964863727815780295972517014080045923070022000905125971512658597286364884063868599045487926028031148582413495384309752727154475360290929341115491506320888806522959170953127395090651106047746649081255889263435665584236690338929289375079401633792497073186501412070095564496149527044714976333861257003318964855675721673644181885520707757640748289089365489794079294594482231097451148413376764807375230538894388941289178311153410423702907088342934315347817384073592930849682524255068588579045027964598272950883779324593402305061970817126160707779624863386954441574598311734705800763174226029654869577379596580089601730149619967660944524794429878618469227757671536243341504165123201244980903514346847787490189582280713155638303875012922177840156413891124081060391761163188413372395192002793117392112959563136104292453001447075843241624609898340275466779300720119723196481068538496491643020679755567709566938723942131512969441438939937084705009722102268418339514111583554934532906480049250805010173811280789020524412185249628413824348627977233669493792139842392825659040965365778894284452842690153659396287451385115860977414574327160472653200935735517539903541938810502012164133959045498064563867078650600830574131057770508371329437037170573641733161404080070485982328122771987041994133534344660407681395189184743182460840812022591506617454134969264660611377023307617771330373396164243179122793540477827996565960365774846697545451710926061841752192617573416621113782663128662708434000449319417731426240053367535790320370856447765199988435242779556243130951783317882008083488005666799110276640320800596565619674432992936071172138401087456964708535658436615287415408099394846990650711902202266681113863084229942169237022822134073313645708864409181890280809367582392056028417199507086125212549268492811687954617805586573944358938434774953464458233947576264757832197984525018510477494966476391334622532604013515032792726018460784129769029496828271311293969292122177062950769481969809354491713101734583961896738630052061182790876942071018688620422685806126239024158136873161885204266657167927372048137581801740220817262635287077506063734030546344804096429284455255349956075734583860888033482875916294495071316317898846524132131398315098893292235651854304177586810134056237380936340568815304402310498667424869911542639463789919517888828333450933959851810848035156721426805997652321896609546644873721157904781938784534439496144249106377161132572521113808112216561120454506120434411068996970467334815211994767543174875799615528599216071027870891263216840602119366406311698154997298924601189615802493715570712436436896301708833297840903617346151808988767686329962585436733246048098240157048550093227565396624446374035297352960063725926686058885605163667406784852131434317479972004812372358618320350689872122993834136722807096036325862674718780402827293582682976541078607008101331749364690087328146892083227149905568238271496850552803602375456430135650747836964142270749392190517973273225247899110078553878490408719945657845373067595271626518634570116727077784531296702137794008894366202668705659025247554451480907504392954805336421755775150520953982585559875347768367220020232207753123565347312323823884958216970675230764186837777081095902156372824821825504517902088901764102409743036002403651155909037451290985594671225852411108807552770487256288678616129361983643134742763236310811576405264119472006998978403427585885244003771527025642460073659579213570281468706604024100390949573481297843383597529642559764050731579781676772724435863892970343972169320432964321992482577054391183643551668209333293409925036122628109200532795946318017906338503877463277616123020362806880740297533728959468488325286324248836446142239961547892976460805919230134047104557234621289116450286154471400668209459142990744063943332941116095741092199039004897324476129597243487832421885637896375276119810478197085183948410624250094561120738170263210210429372035938987280794723768155273387679761173927324765834699889297739038568688263141139315733497411807498138481036609789089835569157656153557358702506797658832080995523476503792399544863131819570690118777917479297787218967372651527045372732213090668909121123731987887609884680039329343873505953824575589025362038399328536139950236781212293148230267796444162743071138560853365959380140406629000189713876818447022017861832319373162621908750623620983784801213854114575080914086545500569299647476949180683750048257227500753196059057527535052960397197650680071313279456645256154356063383091138388434052828890269175748564810613025904666865186002035710176296133533114547788835704214607932330988286248397174210342865566639591967073414867349164124014957153948915842935921966982393910208250458753530006955524486235426539560610746951531683282664463403582305679008937588566746842685628112068691077465672470638324744956230462929406440610671943070076054377439325849392321240533321335529621807885933908595356338336329478704012429266080707307791287920047993992881729954667274577592949064795702511753415382832167659185078877097622926477099739885027442591993517939943874419791702574703617303067242124593427199398408533923140237444012732346036840492204228348535002679661738815247585579396605437789587230325242086862125077689588553417183300257127853392586579696655278159293013866745365211448235013843897749090091766833311873648341929802807611725756583027146873734930687602508534637777168764356385846644823460407114554095063956246557628062064488337667730291894916430748043715786755699511087845852278694208804404064897966678949323813568761047547766471138376990347583838300990000318123081939017597070815226816124570856439109486502490598005342822073348492948099951575867741859614975654259846813348513239003583487152826661391262402826842704314843890292263447620436525070121315496292521219332313803057483281667036823174979712216237434485650017913729452446271601019145533386955253391345039611052919482969632420948341863643041595937306071532263747100705731792628111210851662417737295053371860356143452343984910047552916013713996993035957292907038096920256258943849560698816042780173300246234494140045418533882138478829466244729373210291115460420053576488883757693783671185980570527157520032092349909074417799138867634773252851264106558903778847762058089743913553938503046930596625641432189876258211057462281070609815323608110113374011482026712339075241302227196799037712957188499824856344412450037889854057044602947854839759435864066264555607232273935480602838414987131953315611081524214198794151876503487678705064251863842980266350226523910930970390514925048485320353823386201338401115386776367766641531148291862027357983677193846519858089517521793001307687751026214062479868069026877436685936609540116196716948496889618591290014637689247463730729524289291307237532489297956306195135319973562874522946683773121274497266764288309969158654684621572740283497645087757288242630575183465301046303903696719389801122608942105705101819600563214236714540916979929443622794368002209269823194904084189489637329219808204019420686681898596198716951256577929803578380670211739810257644039208738367145114265072006431364146354502687635867203785683905756944021410615955920927794847354829871582501742277799995471215762681170871058532546251411087050123238353758610607655737699102521539556735258253405826837702387440750540474571549692183995018136525714192460764510870993499941972951870050013730796932396911384181408495919334132113488940377587817808104080089365123775120297728141709525009719150266376296418240548340472302453540504479650548537823582761575854168144870568320339278426373060503873130837684291499899927583798184472370254598764529866362414868370682546112256530360824941653464112392300663242753496967738407112072972255123437443923892774147262316933147437973268668110511853400225774757191158436193509282200084001402780888122614758002987649300221896291727630607253107761187048313794961147711814874033766915521381224558146336050086315855214680086135091169447543434610886047549532825966547408974615197673435611371880616480168000699081509382177923913295376186316975209743747886847836012092773724649492353191713760520624815418991788972540496247842874808945131633185474027957152235797669412288348116844119430669365433674352548560312519157054679565358700727587887791260174851943620108577358069914266714513188093192566136378935277866068409283728609800983232428759488262102317126915793711138913409848960092363708286094611993149582642867435143474341500676654177000028832070282575526375404716709988874980447398381564626475239714924622664478468961295122719685575711677616294806671951930902622893651831635923310428263085515865824325765907044239728101247190106384745388935332276866735144565252761546265833645348803207907560574134366894389746329632111760370287021781861643064537314941838675337163603159843537015481381338492826938634945109427484782333586197495777218328268269032036871913484632706295134065386184191660358142989577572923139031856943912186851116779190983491314177973368788262193278228474587638364903645545103527664137948397423195555655653585533626397138790049463751682401360632609837544071223387667687278623495272384102261973280866907581842663869604683425173952628493893246895500516870745597611031743422421392099788079769771675982801284619079943159147118184706924748106993778357039918469699108720050176410710036817017206773001621348546987189138437854677773900849498334073129811549123630769988078955293797957904606838105190893238534978789998260543247965783077722474852077297168011483455071914288242060973118680032033792721695713575591479756053738554800296562003941516300943332790148205141066353576491367344315091185380965618400058270513486261612895645972520071966087753465844794339840103597212850640057009787686454159130977693182274737400367156004393964636056697577149927421577421013161182691739968823755029203924705300194176743743500974961063052655962217333548008089610643836083187134616325988326133382424104413928121505075666336178882838710982484627245216954436669027122345707985719270328883572343521985168754064194586450477811155441330212640522349904857940017017765972597761267886459778527483127082631545357066751015689325280630509237067485611744038992897902110510870369751741071244454477856310867513143687584354175993642146811529812910924853936374043004312341991284340686864311632560263519826875660690580290549738121075606088615759981292228578554941259912633675749423718113581157104561215691685421390578447532512129591001355374409514510972612436391002035062208095423128341292158390962204052551336222028610391072067307715238205341250950327639134172305885647231112056817392912497539452818145881113586722607750681319396037295133943198968349379434146372810159138335369618161529885221740484998483243049679756696427491539883207494276137448394000232287184220359827259205126674986599690077248638850765034946308718092986179701788815711868677895304739959761210258207631868816728234088178727019520302830769324529097117000809883754757253994120994048803398965689968886765524171488594065688050359362600944488601242450303732271006875631646789919609409634409824935948052628117614830248091490446490510731124581957333228768971195872839272836721094765496265122520432405531828565229751539909295649499280738303297194555915137612164001136830253788174216566313701829557506102150285202114767604968752868203463286248650891764925637568041981822572960527316246994033724147198368310675794843901315674940002006909169290378061267757719278729085506398132913029299114054403815513855773453335434109276745542212166122758224417203958154609161845102329076360922775022075515859297128769024197302531302830519850268928892674252939046761885018705670417485116272534261065791998229747401257470866155469490054977305059429091272312535370741543258991619278984286632233307875340198603775504954454519189845080274179389304590796750211028357478496178622096597860533948077163207835930490451406571726978576562820300623000973346424266472087332846570921019638732654796901040796638492662800050907128956808910989369476393328061587549342873948523411794743740777965813851284014006214329776227155549208000771202472175265925377306113001040870371090948508499265097572186401538251197928755965368209432965640649443045469353020887608591294576055168456984076883666519427179037417139192763089976298284260531506709532299877783574291950401571696506799579620551756026235959496492933903102624249431507632103076005191135937373659506956961050842864803103541047036651179655619244364733317631865543743763515396665733883862809407725823660789971478408291318412328109727776342632555957564553355513813822090402300621549772206298240315806884541802479402654302357903050602249652398078137402905918174961796106677787565683715440045593984504947398100962220241851143735920802334771818604044776748336438096813659510297855563712906467124556227941112583706282201922159189874325866307645715179648824859957252449024546465438349978988166388725491442196336000770037116760848032802269187573824679343309404439549305479967023680823468970724556594577590520510272971878004812365832886469859142217821849956644596392905157416699625738399042259693472425016666172520916250887630769992890645518778083622405896552957843801094687976696791143638040047200230979577081861333942349101563053898365474014399767303146717239270487597914331863056681952737118007391035948807031395481270077069835702357475538145533387821673398551443304397391011186621630934501599745759671276493445951805366060297787935075093672476874704717086222135421602207027396925790607095439654170805844905199471775938684439210449332883044994007431337582817998257599487682775772524240050035557208961126398792412735969869095027997309513362937456777581518684247863291528704154627719489842332150845495346415477015549156330623294624436232540901524126546395244347429527266497086332138875830630736590791423906723695985739308300669973569047814436882816332279035318403949013330296945602710920771686659561266178748026807815900565188925216964546264357837033438003092453178968354538170908522130541842401748311103035599830992770141684826227929013130989140972240986300116497810192877862733651478481426264996631599132963485828604930781243502485149191900199608982099565536750792832303733800003549192151580118347725203396362153119503277741301567062126075556789737806542342316195132733660804534810298026181751173673906640045699321550146679809450132556558793199111847251802167014663656118158250495858403773418263129840910717481616076192561521995354003671403803730606882135825961911493396871879606665430113142861691385342201840995813911054584862996278863589893699561697585198697892868949027133916384092500138245666284005567819835036419766792483572437998095398851198602239796082329406372824531930206664379001955512167988428642493287609371851864378218375179685812339006704129948157479643864115500726851969065413981844131910526190401572758722714997885128746861740229388867596616896184037409616329514294351867735589327643158607774758378530717762648194025241740709161555502898905036672743800404689563135367775363920480949757314023792746415032810946732786761296760102916053676955028459581607458752606595572843073422364666299910889455561071570548335818112877015167200027557649779784514351873867714661808520076082383935011627511506518506410371247340405625936889596493826373296994367192845998413517855950021126307213964274860917139853747046604806071796481855794950162781691479991950378733755908612956879020112831543458765943053968052910572349534934268424699145402459395784289941932424341584030450371876033928851326873393223657595345766890409986935340453601637026134837989644469699222541139329743068511731872010961039454278214986172913897528394334679611901529390304947372541393535033335331493981341740784422997149456601815896722956687057082549318271820395526663336823593698415710454885098905207165036641904741436404560633840251775011775130139675010006913647611931862488253157341088101301739944788242952970469270793485212818490491379017592231474851445977763103774742490159113450201999225878879936065387562363392377287555592138956744722256557530877309943786360333677752533475325462857126832634179230163054609324129558196431041434327461161212182591477210655817179039707218857178535717085400825432983303066735494101511052945110207650446499653587194330258109739446556199679356950546027313965364757711009828929014246408142124659238814260108509056019330374481352357315556910725651554681326956847661594869943437490641527996874815696060707125234525772367716965171349847429539722681273950791961630927171805113242910060351683992870780021994120963579199291062749836083803733372122313505218396104899977084626065553025731015244970561461162553613231727961825466018724507478469297707145306782023527686634217658431437269193101696237841808556822182069492490576725239272389821727846214596867721306488887674706196296432277034325808742349893204655460908672948877770358363398352222573636877516374508654817961054675856628311889038312134700619415118665611387230392793292950327126296820620492879427122158651018660007022612237447859351161436881311892152005769745793721261885335368518940793199510849939937865340495665003788382462856033123234224748654766449642909110794278617770689541419360541836145599231848805714210931530663718493577299447660486541915143960630827254349765672135168331323860020547072701736650750091501613340143513759963632596663368659948832935152654645612168174211754536730161119231646110371139650701266353500291663834377537715112213311143670277288274950435189265942625665883378437403492535291869971721280159894108633807610052038377035806210030378945212720050302792855878433980201929308335808134857630329393872975266048182132539449545488277919831160968012922664050744030674683198593571367583913275880838484215644926283203624715564718036109080485446541289601201231294185077239008886931955999825081679829519048202430704873545799163648069252622138416530574004317788346562876485576870982284581719955905772503001345519815138828762247864549563378774077216315955298444205975779255286092699799784396908603433913295669870097536782816351485680041960591157706159775324514560419793577855388338681291458999408686998626708695065183865410278180809130593759366256217555904172390263096216395513302632939218374997864149946358404371500555174206937445296816921890097717024359094372396420135982498447153925859335475508705601797891543034515024627761488172783900978425444412361558003258994864075772212971400716483798935869109714593831927850536009569284498772299808150865576722001832306331241597842134527722861742839582561096571417527224975548500609275105997290325038130196933576421807679520849432262236134721659907541738495523000879698931629848974945312198702920905392772412133989449720953465577304223159349532058107730671712130306509983229736294686504733844907128030042541036239856281018861665622333079799786866521678563151290382338003282895071773630791440163188855479808155464623891371024715271019082025671824575326680901686862025789573606251694675681324517653623966393711954986984935586243454439045117347168456191380851248431684700181499966630199708795406150563009288104134696677266045021933741887514379892754117516426052333299793401239969731917856096452791007759208144627518689780727447250525913504402252031760436477934249101702433352862228817963457732918431555504466661165690920243573299440077641555047435449418981268816855929900920355039078027123191976401639299047393891187047944167571316404735616299997534699837297025762021095615094034651757951419803643676925067193674480507801320361801735646184151406782549223733184872633674437241787822529441594693858582186319476535640567661930666151304308880381765055439424222087577295860224331079254140324876834908005623430292459565757186470569295738152861245382699075512644192488910126498792757014643176762473112807110736326553227002406104971367409297150836885783191700855640734705591664131295503818712455746198594157526905988468851819330343282315166641125125592021525155992366619591558126669721831780888840063638673788671955812663888809328989477109107663353239415919665363802153481908879603718026912276429931797091316979144842098949905680278290444750793082863616048235312970627381845839329962156117315512251928625326500577643875810815222903518089726115378586879046504572120853527661527675866861973117554539856668216690568822104988182098463625254170138705481289529384280585683515400343089552727694647848912777006268229228310218959389983532112275614169355934723033296844472221206904574145672258416470961288530183045554646539090315887550486162439631220760655534122201486251723111708566615468130083620613041339397446752811861790148871732123437777592553603537366304092863860183360844438164013091278607392037357399481289287651736316551394870627996229018952159060820544475553017240561796240152490130985499439691443804235007174454737645479998870357181117297126860606991072395732363116097537989875384340865504517852959893255682165492198789359458644337953921137888216333619532791541893328488827359258639558801483462264982202507940085694502468931131858223661397640750304387648632333378416053096372610650881648770334420490255103628905701070051945873726509536052963871787996387373624052376598041575490545421498635325432582680491008452624497460968452493181755278415448490203237479882544127236175649109246247841361425421299626490009775545676409777305999689729975888436475882372410035868832614450410102376715913761140157495908905047947948032743572641239790100994389416302399036990661466375072413993988838541049183116072019637833403858245672386688702289315199754861896126363009638803618129533002813521319172387666892696989262997459743929377615980531538146543530768848011220111912085025186338425569268762921975260415442722654612059709409861541805224720300379840820558485873113717291255432794702216332405206447527278359310978095494529312795792380883249054006755383435287555180288945706443728719681322273887460302113426841807560728418057705466057512768809808014703689521212793003213114095475451519705351265368541986657317561964416006530249339955481533204266118152803972194955526424407329271624252002865061367897383626035497471298568065685768800754952455301563774957883748272505140989342765645246694641646405718039362114507930773359482621284211243012167808680212103618567128331022654544217650895454250933736189544395026740585032099639510353646593658251461764564157475372226462935452686033188060092287868599207443965157081725619664065124539831188407358815931855589792477066626763562189980070002793214924744427790821759491904466400188773296433382147313916661500958793268315261895607763245429026953193347679115611039770235964897016650694922733220041488300530528442486267351422897353911039629316763615284763065353867500101665072686758875679167770872808077179384845828767453087999074438318274485342995906827278267810882216601064071151148304717101617226095651633528968156011827224444584559911268382453256357673133147579863368022513521237615774332678651941730691746531216909787040814702549306550206245422235844658696560260340308548671828307076164369222362072911899857481599778900218977358149493953052832686877646888788654924766849705545974246809799833131210710918187413243992272755455069306731127157316066195222675127751620274755124550031306175748474137079895538893736794175193219886869752981368954981977581699444494442069170321512462950528787136099082430208563076086547077458792999123691135437633598484869844641405827714357861992662922269880365463038753014334827025859896591283667500546217359142723424948426383841037333829425575051396898382417284206431547303621283325880079880049657933321161415503807209673501956889637831990918548073724714760918866094280606722946111769221246155794101272432080484790237576041830057295519506843565049791461206324966212404780057289044455144369336121550436319174109951636810574121425789298400206501222151057304872008310552695500067027339197748490754262481099576756701437312823043520042503206710136126116201333167600533017766727581494716252497882761454931126533535235173833873960058178968659982106180262237721073604651135573647314471899925636731230791897434327452278226929798699633895815063395065675414226250693828410029943879912554152302319421884600834428401659176032119272513380425827539216300604442215657106081981477992780482049423708718831005923547612465357986396729580593460988571364226098060073520965836289641210971825473169561599043700790728386725647413765890250881449846809680426193342540670623498389225671201294903948739548862964903957444047774725722245968053104585089543698330684498325148545061938067738051698450218533924155084257133707148054026987969260709437512162610502388505510077056109433350742975691051873309387131859125955937169593130729526828147574537951782786702433026744627416090643702556641973538179738773298803433709442002959411087130474447866830730700778226420324152577086756794299017322295405162181254647998179939845645129214724130207369291740509522523288680951404902744344127970948411155862927753452065191683729503339481764258774431041184458305614483760306349608427829597677515860970410849201610462857035671113768671697404297383542531814069353143753216536539103611282358283861515230657633588728772058776731211365271066772997519877796290465829749755913507212672541263630036207139236899299238766650569259662084084379093781342599226096793955493577033646775492761698142620654336087076075491379997510982593817110974709003964319009188286819877451812359027295538357807063863776932061071423358113533016740467042649760969136678118009715656000682120084129319849829704802393724621157994553391266719894247985824930550427263177187133609653284643060020974880447639973574985627271373750534785114296281865673600878981373010981182191798230530277836657298181005735377729469173751420183433077111434507496124320580776865804251461877160353599318598567101320130863425564808561185972162895263974154897198753247954140591905427763476799042116137588013072206678236853851021597584007138850326777097036804354693050672258657900663163221231301013298465014504748307475701968199353463969094874097279186571832808093188186306549892241795673308010846844763705900832702886042290665284658478382908595757358958589154748803893956265462783241635148477507559520533753006200396783464190551495299203086404175975597528145579438706429234603029290283553394691284678869337646682289363202409304055917139520988598825299554029557363746176223314454058055857185285496441434620218218867514963878627525737587746150752948994146045499235147917220543603335978070950067579597485761094417348892720649081811838959597326925890508075953238103256631829428439051796538727892138474642423427146796269786137123066361621793245130333190271909635525389320614654630084508097393478468839740676282836184550456041939010448613548157690320793395896880313805266989926225422100743398488646382684044760221664376808191243584515401828177852656898616179072270358087791388429238229587544537452381256554428739309637899468596992593077229123991032943617069465010625100287560949968897558124418219186051200823459645854376905644059173077173909322017379994008575763363517016472335260578596643994141278375477082945382898782175795211890236588116324436980021872589015636513994350411354128983085379913011290035126535117018638395753190137308438478930654550475026124385361831158637533172655546624451616539544164097138231260859899707306655613009970422357763437603475610648017625920381100676248960907637089016017777492377263415040134095443328479221464428539237183337704172475840217217716001153635599409257501872719678620192597684624224393648349014678785501372852237795372807072364101092309539672029081834063450597447187936696908635214030744888899032797082486183966696298801590888020832853207272967804388449387710115566180898586548749898443273966963480125462967558298854659925074728559616994718034911427328981815104531744158330569210778459637249942005587781463910391097372685968330392155888283816856415582652746344410687726640294819671000772213920073417781302468153526235674858122539502468279031238436398744909396077314424281719431528412221176170349371198176772364107800645909126969749520717745689698241668998705599847981213244016505234383531435744368995528541436550026265687632898437532888503804801735181907251211045766034207869148926934793272563062159081217455028578717808151026637920259272695334686243479495818547358328297999666800250583436343485068858586599184022208073592341307691145792908969529555203628614707884829754964519129408365367625040779135387139264612868065481511214968800184175177811778404999766165695124524918483740300171675224939374250051804114570033072615329859158887110354818117778245888203277180582738724607463075134149916180329088159418124922687152485855841248075995037794399484089810411176161016888854246008535660125351956536606105901554580067608832489475123763645003625824189185375852893402949162347416842594150273343048200002985859683472969921113102786049069074184052457125330448845148555766053801764408981135146774035627192602713621874884848117724886572190339433116914510644611235109467518344338751529962454476090062431604587765394922045672963773508881131523342580858222523490881816678221296211422585398134342743364219746652292446766369737210269274224862088481312256700219240732710897395750247342827607236715584592482964976679863173595656336974866319685920631474758778806480017498656103697490197620637648452710421008015849149303040204995756964491316755940244792955479481813297199888784033963880625903334330153416829300938923687486825590268291644545221033992960565167363294180160818429550024132769145452065023073828985731116036577933916767034328913720889913789268782967701612970796598805221948255759199947798873500353861070320059992745918301388098792251032619451532269187546679487332141352078428649340535392366108104347878891665544205745844069331550727690844042920753856322999465200098284859819697334981815495080697912601937483296090975615450705006985077851363574459517716584695633929284592546096047400139319950951004432251989327876171212901610946713460301323555624515942925291373786825272323810644573000695355445661438275947820387400159034799407732557588290010862082907846898200430331761407814942626088882606848412827165051284925537367459672524412436997514243776981944335344834259610071659565695454058826595073127422005968292022043678984667838308405247382619846113566346391498562420168424947644961170361288516662312178121721711442956717147178412690900560732454949250705464008443642400449544871932460458390052418908411726454654572888323406815097247471397824683059312715160248304122897182963056124204778813555236445683535148312174198871683174655998976396078955130145510107949064617315325428498313766963953554892280452702031030444912772287573672925288604026088615148460842385285115503516671773640220267514193913952646991837837649135363077838538247298841863369762740616063336069609079739360616055631535774153689677597994309078279864719708876350786185620112689693772002755090389730071257510357234999752300027178920599687337875780675231814967824712262793290932444297913424318963945233300947005715617706116433141102638210498039204387326884024095559210054554542707481557065967234407610430713724628102938785325590148722218935749331056639418458244782059999165739261603564039081650960481425251250302921539936687366492919642402600078536911644588950427225152903404211325250716554810581828775064085202287395005165172799358156740626264986168736103553463906228394670931945157699531889766364248557070529477100719683498699327094807206816699250098380601167918420392811716007964225669745992622336391248968601350949965211287675606740794889623733965965545556894331295013372153470794045062832251004985255658299538871621896670906687039952382636090602506806521444576037765335343227235794007772280479027386829548098131138180749942726547889850778204992759522812469251575790489650099274086932199004766220338814956879829140846096811766843995919260908185298757274325906736683123819447080455391537556428567043948432344643104375788074162801251361420774433718346623287752309701028048552079381564705164662687422559982315194793882900848932725903148728118211581945715354957368209230792643308436111617654293871064884738984099258171483340642992043776187316059995297189622733190391994060503404635613137999695761265862923657767428994316261918299384069826890790858482675745998806040724278443751936427147490769987457379534095707610003260749463669748617266268559930546547812633140934181227484632912599133898362645373450840009659410765821785687118957359665472461073664033895866637691934604726237869532040900810320036376262697955582297855278001471241369311704589711418022549333897314247762339564260742030284625171993396949156598531242903564639233244700391149994233267899584778924541237025684378133631181865796787845219477810825730221180749573920058091662756897713504719056587779446536200693381076157104517585055825651178411575534600141403145025827033040663283643830176339898158581107272748508282116542564183693688234041402983157911672700126439975768564761792181420618111808923139329475845860579883048689742958675172618734384813491544739392418123677301631603618143367344817498836355476932740901754653870454775088328388522773666452628907995970196444224912459407500200176896669453402522114406166761917820631448481668170420373041478932295222815805197692336325166631886913697076213943823079014849661561245171628053678238561226636879074071815609087554579380370863217793025086764083113396369263591928179207013715123387175132234031676436639746893917263584925836582605806965103656928770411545208096269031883722593497843563017885324731471611933608033125564988029092327861465791308192754051908578494082236617910161694066324243447081926548557944548565232452974902632984403972246823512359793331175927493029362048430532250724511136999206180946810902185993082174134667476643218135350801263999589223107432401540612479382943948875930993008245224163850084474569731403635675502269083047385013787849238244595694055505464799923364677871616380063701178992950381912869476725515672901518549308692180340332148640867545312622350704878935158312121499418764574333596577606105299737485900662463709718592324652462471787433105204288957298611912038098094911100426353550120996090500419339995793226450865444547247669823496234988235092050429526260346736759623005691225002137116369566210786959583735194435310828482512082265435664817587498602189159582574846324335795323020623066802749113881565007923969361702503348404467541288050600990713904627817906008927266961936328655171057114746927824437587522819929401000130026294852214336177070887408751618017618856782201303067526931302048798115954228676023138523610295759038971518379299858676090557203267880024930694911628774669469288135062513700412723551182792279992642912322413269007263865176651897231906763472074194477674365968663692156873208564290529511562190627756359228284365075455710379503689426928854249193288401312914515936567699342482492278080444485308682327853526754800480569495561927769575758426164652149999381110299346986699049150001241437503328891771913098136266038174792334191332008211519439677430624997684410844596746782601892778038523851692092734374777967388018870631703829988134267613729032267796812626218095904307382117660602337231505159776921077768511678743810275369642982057441646831704631279556807116399800489220380859925580906541411757383851483869296015153462306482405278790570170333220177321592211417889484983422563991849711495751562864835304218858476418140840870463968363569886054832773576925707058849183274845306250688658808303425694197576342090068184964886984164431623473018324601303644348722460547462322375809190544533742610671353622256088265376214854696009266640655113834338864303549174540516000932694426124198623473278265275361029654166384266503255695940008346527461236082723853206204199844444806905273210423715426639026590177499337195218481693716780844944485557827406801647489167919017251616738923125626194076656253211214317785972937637932562683816189813582867312313527072452881759773653896495529988050732278555882311649392298047249078114303193820183514186601854655834242673219521257264486522470932330876068242843564237422327735749855835206583628806188748749287867881652820363910660785503977013176922564162319588713111492636455493419707389606414260751409728078348320840313418021836255495005228365644665953512313847694412857976422119886626776103991804286036694447386922821514617339202242663314987560277728764768941849686004096694043980596315287942381910103274386213892948845402805684084479172319844858011846029395065522573736458504450498195403232385748924535187194239611955350069148789503461204948799053853220962318600117237542113789752325301583223604592506153548730916006473612090985846503414422357846949146595127819807773868439017883112944882908717080996755600103932311086721639847214972567074534494005920670232391320354926989588250520972988160051537219317485991428041482407891653826961874076228231058446194153501155552774164615178018688463864470927349241006469926716249463710602276416981508950008332946801799601418320167995376480539357785357883366594475546870914123811342619612193498219102466037193600242771371533254274478281461277998137541931194034108791227371222704668929774417280651811242121437471098069376072391081162068478739700872651915843864872879600679438827744560330544357201139028334291538578697220559713191730389104781631112011909747698354266069752699492608870516607056176265517394736521429126557680557707897582091648695842271684835198785879665907970378877353157936316127592648383640941923223649735124388258916426262306463304825195699193219180341795727109245588333359131875528055285840459375140083380278546144446767692133647061442925627113862727508164377748551546939355729772982664031811395027902158502178010249128798401682506501120603099170637989811939509611559354509773916383223595676559344361965760401274521656957290931129308203183327145600905345529610681587299530075721173695870741463618081514180249399561562497682698379484236833117425487353066650101244604006034662524046819694388612394447921303891548643823727321916277988636097830192028300250979294688571061092170397401220434943021998651368636556349733928184841362050187385343912947452255576018773673222347677617789130453568779757945195955730894165331226082759528731457703801087228433723681942089915407729243168575280182872063724251519177176691220662299760612735526418514672869561629345599721187989496469473316589857168501263207575032180641085731620384600672736135369814346213947331982683528432219782007510730510355830164334950150169151493500486349177011663644058020047166761469188240437049686631160091239157247075613097086617051704536464546998477865897556958029676486430744107695603523091643656989915442560635486580941685225954349872094005523465467173791644611685194313837311382943582175594516660521840911513512806285254687638162094424722845557359445005074484280670897059214400819789762272942743419043860344406918166990169116245036733964685735298969788367156846842023549744395805204291894852769549112333367219729543212838840229783517761693534462975312146088377981181866093657782956780988037937296788802739929405065511997016355789476212359085075663248239845067334322214930528428803673668026739314916267665175978008037047013374610381759175180104845505715308097961322788989164564249967575903163554815459897459851759708937449104284262947554905849916675977952014586947449650655100746534698264178270058781427140136636837046198958532748444062138619225737764731570370599268798776642884929409086980555601271616529893903201135455204036797936095151114240405435378437287721493172847601624713423605921478644933058440876903871457979118609235941408850314775498378917127196076825773567307157325666235392616522417962393665572562148566236939349198382977507361919465621865238929538734115661088803428436318330095409792788130998689359817551181734378471980958077640817561413482809976456697519200583025237571152807783165975920420100421923705216399122868015579786533831857232259138309534677422677765816379570012124199444057433906513890983798541119624864398233667518782369959162739640183077865629077428958411302248635184556473101662904651936530602286401268534298585111415176632197093949227409452106238211571777016559505903209597476714753048953072367000325346863263180376971563818020318420082239419404746204926420176051189709753215065560269030323322089287488543227484864518956419379141668726123623729056704551837803702088366824592766170965986767979335817371572190276919878927093512935816260667123908632818853173962617942498617572141605640399307108291751770124594424337225059956686927501989195877951205676614615125381279120549455440661945482330908149516198647997032906228744854848949231187854172359559801086653004802593237009661518908333916992129339019623060484432022836113874786888534139053922805044346142081024886689415237015571777779516431171416984638426222068524329192696974887400712181031300052272864597358200012058045883197308255734659561623034778024238922679313123158209828825818292108116048048831221508217311312292863017160097169783652006408097210851292179472168057378610788135164022186982288074394569048637337039453503894812913237575904932480554790595873242584958029710369951307378587908512954359932850594677578857310186837534460165640423255203978985368476271431872423765261833209433200366669574483412278494012946281657488455760888112242096079868772346077056798919796056629947911710435194459357257021242843550451326513693538892085654745145487632433542739016359408871901916796649710644206942937135117917673961244844283866285975273806440930933775037343337553502088796990895293543827304109153002167971151068253799925111778727059996611208306629886497937376890028099074802365756680652023458104007400308514465821621887499854384666867462145441423788435798392274048673365780079523288592668406398769927153112900178283800138375868114314175610161320679027114171702718444553603489841491671437992671457552033298427550598673269222001614347152022782543185274432269972086459122777769415035181168164327451898581781579330293144228487075013935336476630344521105186472136322511042664590973853754028934902524552747879650968504732201000018983862786595558089036825616729772989922302968080159580730109885126552104976149033513986472457363775192424604639557072410803754647086964963203812561023933585507056404649471565349018511489536850404832301041604653701652548960693884183183381735105292073018865755784635310431023247247118046268317057709964343507950400717852949191999856213662627878727290902198416137078928089072188158092169935797709522723710922263885354608351297176452869146074015450985222368992935606184887951736550189100050133055399379419103474748275030343106778923386177547496987528887487701597922824877234643247345478805134019508546183296901004483745033845860690962137595828246282933143366287190358388567858108160060075355081378323714592353070539917983792058144038912140613025262766164430554016730925153561212699430885287248264262426389038495324872732666102497502368735748712935430632744045569020050905276630425731119970118433827099221915953409393062443281711487022230873640391723609688195623015897706034286685211591241761393210915227751524200334043308537248575719383952446755309848452535588200709294417948948914713845199557050777983214553457800695835685696174630978211078284643864594160690565137266061849439864601490834431204800681175106066842666014339218873768758871073457409544269277588623246015616850934511441433089970270655003191460441774105101183633128748716317172525624356437800613809018812957199218476260592124149820093964549695555192012772157273336738930851672830897959962841439273123793490235802155650705895842881845739460676620099804276532720136619839168653046618099781641146652536417160757964864611775741621279948781601594579442687596391461347736707325525347802104086123168145263050339708314192238760484791616353825065456515452901085741053285160071511485978791190580730730042653023770296936448400440471844185736248743132115571118748205681838232265127193843882456612014041021110244472914619723163229838114360721109742186708128597889702499041382470773766314371710126502805010028139959994935221159194370975554391294637744468501095285289638320490648856590785820987741984227885573447727207429885023560073480826951557401423293330964107748813698721498397535123070728391405641638072904846993283922698739211121153137863531250553791333203838056468007901764216205238870222090631338724506503122763769800132509249122405589908918450591828048626762664365395629179830499415900094481861657510879563389609922316303225632962722206139142616441698852819394150558738022469611473125802549744100613502999397885983830974111181125262887729425432479464930833805711308258609742769469888861243309484369723413992309943296335418352374243347406006562036752089037568828375629381829627319747432536001885153388976715342033283557176853901356099968659652705394242957413874951184468682913602241622616976467086397162852781898884711237003272617509295261183783836049574714467531573478961872572884658481314744396011646786477642251951314172730029404049766450205991389767281287361391868841189851403769744006005026569102173226110690864127984026209758051262944617889174296874055204437371366854474192450853402276354248119345633113234220489305161337988634167275196993201360968819920648622481634832601362245526576866891109364674168487145679698736792520790315187388743972961815567228400971094605212954230845656295009709531413170379581537642407203111420790097966415895066033055969712611919046511014921895441637140530175855634117145812091110531474909312961132440548118066131080117197712215706383892874241425933334556913301425581194090097815985634912537622499734535865119926777680409036146252524418630106005187426506919260049290125646170434055295294727800255360223086380665859271659529547071442362716191300546073966721743249294372147690679101922365890476318419372842308535883691192154665655572849641516601889942905266950899106142518361342824237179960242270518934564172539890659638520004912981499949094511735974567071224387414540860648415855409340796080493678811745546604544852217694741868156743040760930943683863764227741721989222747547758433006572719316227444083535904466532925197530610248012403258827526826926451994430236024490793540877956436302904293566804140391369192594054975497043844899938706103339514779282981599926861013935901367892239354526340523608128106046067216384596314673831249595005682711852020584679358181978411076060963596267838671129742975987737116795101566774406222114834208332510498886703197433295562739614979675406293721770825299457315804058983663098626419746358918546609877366998088762518078095640370409000498330976572898867654019532178870454109096751164320923378882796953928247786540778124273339916176740195566784758548834751688382834645229872846566976891997655036498357012608233362922040308094249675889817314717358417167088961591684848119707185116092635956348177277563313300275987189191485377639147300554414841301126341116027124501789490905446067458646654255807206491965424988755925199189651119171721227009926423062525628367389005188392721482561065018186598487236929481082972588045619345185660856870216021824351289226741068694583843509494731647965107511641120718790885846062354373580907388145771831037599870985128633091236963168377293924517227751323869540428045863948776226680010968117718513712153847083656837213418584210796571945509701407132919518713947518540418232227533432265991413222067744219775993655950559358546098401745770249358741242456892489401593057895452539547866748092013097074954901798162260601953470081400559012798067642443736232284207057238737731367241695758315004207083351122228669922300520307007719050715676874912147648370549415485186861379136880822019824823119214535203053248582337989176917137588348024450240593502551456285904766009760912925125126559402914804774506942985190497049171638345992760629135139217880962109933671775829299357022081392851758024969939497960788999859735791288761541455842060689401296310775775310205089671392369251257919742661194212845994170023799729546460783258105893441324323367141300113810032350255641132131207646476751030727150445193220401883593858684890770375301510347877571158829942466038311266104539089866045683683496913789926742673391693161950959843671098011126247692296902556941476089268991332607492627678898208417958806027894199136475879027999961295478482356290433537199285481189615765257626862168129829352758262417725775839371007240182230217316177251350921406918151050117458438861681675311631756064087867637686287363744006404184543548887625185173316702354284679012990869763890664077927234073867586900914454618517445726960689295122873942367684234577937538077142090204591607178141680153577065954693102724978526337871906230042843017168496814042034513765620338385293866374271965881806320895324567529365349681327480909540954483511928297143714822518364316367990766450488573581114976069547108423727941185092057832197326246165766546189993093857362310699126203758326229023946853880535071232223552471092663615866500876538795119418914448951912361575095493516853675009575852148096013265908689681578327512998025040186481344949247626122633935212044325952105754604883102335566021258423507641657743835202805586624371630579265688203485708202532510922904244094008234046389045124920380669173546618929623341097430786040645562526667410428390111514010850123257577529327351606775550247564673558971646014454667153586042350618760950037361723459357419613338575200878793333159977636757019832304623145576249963786009571348175788920229468297571245610111389935738779795960579296381812302574142841473936934581093909760221297124822353783267181491270150464392322796151046686459014275856520165470210869466759840031656536493787251540502735271501207378846653551960525041013463544250713436335078585096657591562105543126914524079548240952725136053231330237749633956513375917016277148838828935852973415875807561953384516865095835110042608807743183686453063926231410907326973080314054683884569596191471791392276852272173993464975385932377708409612940012831480611534651564135636467912376964112355083270477369254037888864113781797053522896620193073146609876538270446334120266918268671279453363353262903268297529169649841303730691694298687818309159732394991675448054505230195480867452453936154135225927460212417897697019716345469231740292833763495462212360945902981691168695108272699634898434862766583519695930851498498568392985316317627477003101132792859311457382595159175879271159305232596287069810944664023016753002284890835868616245551254380626520518434825463958165193242585411584560743340700214655510476699570848674222610967747399160354094794070172596914549418899138818648129495525641921183528798124080689743607953420068030343555079631167575238133040845753771900075425664353384914887384301000958151253711754206060663935367714398049261994424368894780641367459309177301417347502170060191075479764902619742029139958234533806408971554035348667290981335848491630807895091673379423418505878677617876776282625069668412109829817736596158048076040267629071410410205695605253267609116760873992215363778275665289924175216466425896647811596226656928921016902770409896663460202979868278351374270171211115329562150027940652902461648959319902858799007077549308684026002138365146044928566470024462309088799291328673342223091802522476589589947558191898461388171683933391358731684189954855019839246901293211579045553754021933997703099623130995433883923352336029698719930757933460657972663025737489246913693975839011767895839298385317104497565684335674648382078364078222082524340085023119516418555214904338433503526516574160678900052369590336324408349378475050899480749309878789265846032583668354560314287233215901507499631527206294418747906376351296191552697138920934097241371730588172931147977154980651971903999455059263951282808681768520483945102680870908341996782287920376068908915970539739511870866704509433715410537580049619850074795518741177011180993483375487746870373464895943837806215719657724651484544986642656368677338372912582409239888241160897388000901186167914318149375585439734859950015766983501167858783583598101026112580957804516382476000571480068872737033068159960597071749513541741316106522561275292641663442286675990455314042193567782159609705960154158197995699745290625955189256167565968209413242404954612106393389829698792752068060525661047450204369808096865211555154745428031979827037045144510984833705661568602153527893460963685662729365679851762670956727776221730427513761905294741090986676735468423975637690673531171024016895112915256913001953470588535079508464053282087722330345291284046933934081908856519639475988159227214221933521491699342839499550612839603558348153114727582776778483452238948713247885468500179381798581184947005795706197247062109763018560296207960304322282874671401564750697446305028749938188146689884662481684256990343606588127412461374844072229982254973975947356102186596583381765509203758515127368618845473422074379388768321258762079566079419135412674400774615789204418017331978089595325750330341862316095435992001275172540896534021210255242951183415044223567964181863615579158775226587587307584271784529022334904010848182339192455019241941078134015889497235005000452324566580346262270899310745161054881130741550292097946978778267438952162774897303841972662648504355803663460768295988025577557837507225398802047418472795067609207454722760446359048898423388024424238141276665865589427115454328424041668800564834103539332856834032253656137039691024931322312786410049553143467820716123174593644541510920214819645742268773284123637388746461926373163351638345050414525792621121970672062295121273192251143710195796908789398800322617757216865464338760324637674888939301990833464956170192648155739193537293761384481730540024534205377447019848131707678980515307330343942300893723934406360191160482691643011895726169463932870336572637777447886143233459819054435187935931000790447973254644013480670913614637611207183174955416094878829358415537093633195802268626989650922040406819041567751003128090235146894809907122509796735544663030761729247054708299974622189129834232125176562269243398389666639977610831272194352956571647932135395377192132006491851271188649460691296315570727918705285738502103782835309067147072672974618411125313626697812130783281556162351256014938309914037201889297017542979184193049086745933666876086559802891782284519376928088641081726054724097602330604489366187306672645219903513053683590414128533905713156812593921256981456009148600958502447268484171046254442605424425148199929276619776042100856446089739427693627772536575945246869618823676617717629509196522670263911333328053235796176497853624519419906633424833541856661452861196975148825567262901421739179022478765940898201322935598128305801473819877038204245025713798149755579122926244945750515655939976019350840453606561027483473752415656783400268376278991724334714063316548468591208336408677318059245969516810108361889225778983998970207858660965602552016118294749136593536771710211301703003160394641068446046785321013541355825896649826810413049584746357479276445700701059252896682781014095784774698798402721015028194915260440173086637424161342002821298165597693971061659678032497259324140175505231540753123885682969829518460384738437084649731275553356170597448389618681120702272573871009568963134357958167273040146730459736952563763960626884897799625744456258842976480555307011419399421004524623506389293069125114751010233728207940452557814218205474506876089575587169319433968647439346112012236348547580688837667819462990534474264744648383243433964838092928569336988185599273123265269702621114751897736248108470251674721849245996022213799064467187238805512668950437022464299517846082711613646918484468594418345116251970339416441663235258300695851248093321882410843321783981557970760559878305900459598931817701484406547383881374003544798548426490324650424826579961345063117762845887136406607385761483339168505018034252854201580465350950402652253666816993962330225737227874318685676675447864784213853503571698490671123172093021415538076142657459746722474177253181262601017775939975631707350716292609300117556354196135415847277848453782431185320225402625672683964576279298378440950261265490849998439555023055434631588520931985310243848719503080313784916651796061959947450317778584877832887366742721925830330244972314030076468074334799360149579275632412692594469507512754327803927588540075507388850279931042615445254844584522831986521528509523165056974480222630294445033410760010123093345847856347729413356720093205783947216527374307829926202369049308027363267529649383692300386074824418851378884630662600542025807238352392989339508753422746787075995573102387003520351740207665879572568301004792065407817979739004141987309939244598906969917118763655976968676951626171166130522760686951916475102362375816816278725521906903256461984204047185031841696589289872784934829459447122782124163620721749204792269155623400971923406539804296258055328952278970843649171064083998490626286130429646854686044413982345003301092793124260831547034942627195306590771080709365824736715972300206120343704132888162002239880728733476418011660430449097715889484977601302427264948873917759830380097987241287305339551653706553942271682263258797838978670797156347360301568560139228042016185372343577377817430194177918152982560096306271934221920749682340833587299310369517221398592320258583006523565518441726161508090437523923591536594910180654040748791460590504420326124761406693863592885892706143096613588171438844945333976302419123744667122122064366542286925478683484751225162429642093788446585984655686899449232265270855847297402326561670838726121397937806787052171745466949974472368422621393048284967955833133229241020175217866196189978080746703240124573023211099158459352016663137908685848960805211878656284108705162232927632118307346442705268118800661310543687640152792693641069082416681453108842006011897346962287178575842338506123178319868582808939617413314408929862625161259214375882641764294700417779915610741498017935637749554541460374018168457928203314581213093604921896450422424110966677693419531096654028963783412714879142191236844134372539154957003729646029440369330264786446010003424448343765596169739383581455583067857495603113917265977840751157127689654612809232057272511303526092301646982368578472350733862461791967579571655630536084245614912300411604989440020992832982367800715772682213499397592593182113896316824721276457855485808918190286612573396929647928887953741913605067883443602589009999961303799094315549595872616806672570826781307291244391474148703762370224782855198174698413185960485903841037172728832329366850989845117969616583931862741243835918069654296850297177141379527804683684087274574822570896193419771550457763363640942767491297905057523277040520597744588547528646317536163598023482847141274731286134723118356614242423186652975998930421013506070370107033740291372738183119849745291188410192709559754979966398959903852119952028164387498250982591397820996955883360443620935688088331050535280140871743372558771743019122559071880273998613807161128870843444378686274010596883680716387121591474767017438695143183220474912433119648631223833145208432116209910027401165534641579339165314397453766180373730040477190437503808176195924768149964928810471569524280450909457474815859792185290426486989201198439642246144741525578282949497997513529022759586671270370905407034447916387872481421036795150335632941006303193223844807169657254375268816374328725776654758010909262454962030321686786834090238333398995337727515959221475001251032892442643982602899798981009194112798976779408288099555715062484251868113596623743949140561168007548202528133101665337862465383614956194244788201365370099358946372569755942870439666222066779498254719953358058129289169552684250730498344865884143543600120554609733225592802067549883834357213255056804389561247003933516514710282331126842048741332182168981772768395691217312447646733317300106472696879781054329002418689107937352097816565787874327748312152404050365552286081529462743198219544053639011117280815958753321108627381390483616441628227877778860897195093771926208179880075174520171668768607844574796098380926976726101568840199593695192760891113163724572624959468427739841423391410263605768395463494471181666188748456619853448421349469217998179682191647452637350397205665410212346606441025348220593910197612017143147554372212457151311762045346459510037212339085945623376745782194707327188097954626586885394331423173120465086141378669082157319593447686408024554072197426752197678041015439241687843993337614977774494265932865588597232503130930576069145764418831574938341978422286072896947271061342569690761186365345699099386381450398750253108094202288384568985221299855621863887107095377570065851148095491330881829311209448797437286536658450153723617228315772179782136038877534755053742173422069505155084316133183985569346689900355445969865680787534259374550830955103552536474315896686991118021095890038674192353343779683542918578670800163416956362768068881329492369697188694751225566846547767945949829048663995437438007361864410912062964706231937181665997290384050981794976993033155665624236228417530478384572159746877416315854127901265490320609378130135237198799269206747170427631246359479614867908448894503737638412708144489138354379781366253905402391561363424003995972306443691616389358307724858217198338353477051581438733630959665367902055481235857264923802716476645141872886022521000790846674765714351940756317660458898687017918608555695391264967573038856523088162679524729003493600026486097307716230069054268278120447275582229442966652565284700900023770004183947541393482111511949495862669075745109970852911600791747627725047929782718774037986798516283293062035712132724702422938905514726965179574827706428171841595118585431444166463833019544571743028502525219025957496176708727460933319728301191359972981432089651785380075614279967689036110067635757611772357687635902114485797988991241094957404871477402089695238008085973199862696336648477463891257181797596367223628734161200307597167777679743945809647169155030355097296363849848095801885284541113800881975340452048486937588021059605043319947823982500318211959497747288529394143750735985522661275443578840193987647356821374609369623959683582321588321329749760749079099388372540799507978262807151341980718645628186077433790710625213334061887923787125393323934890055624485793050314964277139240243406724092113223847149761379725431468335929901660564341352648059787875113036919572603135731908705617941019490757676210209413116956719462014854017724077918366650790490645634534221252851518602311498510453672227922075376601605406189662641145027429940059136144178816833197313534473500065469454096044004101067774923923099480652292297661262524554556429362054798574851887093362470857695181944951363589514703458795958644684372614879978770375998318487189332440568000245273975141893824495993324192131596887011975016652634416272662846694895230077925386736911967949223501103279574514612206178706040928103219155212429065059048016491398373004023911057389313144401003473693376309526109180540676947440556284616720328638610441345793338713125610157069531142234958613432806526759310487072680835379226601536980370268129828942361149187780265313038833305435467461827143430265950194202485368344926676344830750490742836298273636130004719555407309694844036664053387882406797374345937225187753536331842571070948596487805369524022326435863703847039697384362576514861581678673678840515827539788182251096950378650857619043187955089931580023038958548935717922180505358087927628216452542649837913951031413811170215622079659276976593930749057989510176030723136561017937205229869471518169373077253336812142199923961462146581495499113313052913626223875649550611361012938186046857670148664077473766463615897576677203034427640233678524832354523516660350873929991451632019976569175683988292232971186010845838273491550611053127518979378884583637317359774574688173012330684762170208707823432322137014227933755947357234211317593433900864113365225832704281737464471858775653895045369717727328803528903333574696271972464642515938460972641983382843537975688845296609986181507895091791237425884731668899956049277392646641785902590818662487183342148097121982714850440224467714545308062451440259029838686367876586071382120345863228200595801417248476895279482549906417926020265685742465089270440008277366772998571461214799897178855114911314945232581301691638172603238727118097033579551290054834888322564858136858029676403484725881678054864362007778728872999834851322668007729612595050722032956683018434271799169692536234510274943321112477832405593317262119053846411667719674845292403078120833229555760397815447255950793137568684429850368677338330477159984971620276737617468959532120198233326725279921426504167964796463554420692899835584340953357968948251997742317007570945057526803037593928985132684133819892179645708354018179568020252001251668884958221962972690216606448883158940134040907811810616118152236518400993363061681721970141770440371623117482321947817046687508487347554368462398765806624339894310606003551043724648978946272747126032615618141042010257026348463413401196650313369778164665906564812481569159748056543445488533351180430210098676027275740923806066518995058552236940584526852280215364341506670022994695669335335610142903495074934129154342408988661016641276559283972437683813552028172828487777722657875949465170421198032244060176243312761210822791544148808950585049484098522155744489051037596568729477509763441203142706328004327273604328393184059785583859026761832730811618299477089266762707849826159025277166449588536542984903390336028385983570030752155881494660996356621203157814959354775490955792089420813030315148507936701277660190929706800566198308420870145353234743703656725559685932233602407159069334710825850238010724856675991692041604261972408876820991724336479607089829638472210262537981074171849754627262761300305463191781899425774236972989038760652927581866738847088696504006104760285588029966271186344276022774203121866683956757689902393035574108120097312744366846448971213751040388619220365288131240552511133754300828970820098598467927932279098347167791097642916733887843158980516160860505161130595278033009660283429334710647880337176672358555150852794185658071564881734086481575668982470500990561845630397264251650141355005960809818539225213568873954611833815785211665852194601359112004916491767576191839651292917149801651427543383312605049076417859733372207120104342254545916102361994119444778156615188077745501951219751502706179813989978285220203225053114788323171417037614738549904692486720639376040485509278696610726289177841158504754800979783300550971030915828998348160656842627660273487983349554387640314229375860144981664123811659705005245667084511451071168606814771728869504051324720577864590221668608837154281380228177178429920357849361783987061510443203671035657643215775376075889052964423790515151965791933210109193815229831680611333934102062238834063018614892658150997882845815568918119865798884574242224784950324688345847729978467032024513904013523375124976166966208203170102674559836443697009053492819898095531714918833916019884754819474258264006711498400944100260219904323849115583879702388551321856800489827360595166095811906165293939216591209258869553454022188812064854035581057810042349391940998235091623702856156533522206736908460431642987923815439377764144388997449585917038239488683772463632140780721957845684398259715382812461213475071503483425455693045015627377478901652054918873370472767864538593914820062296766314347404161426783354987279729018436431188816046197162424530454668070701585384583478052997976095306947317256628571233429038500936873261702523682251122449855747124135941736678612915788556153329085157067231533176185980923998724357800171592432687867938216248716950189924456355421873815167623948020816059718538995744567492875722250037708922157518576514679297820644678599538837297541912538849360662545408724707583472211058130474547744026556703272539687725391687438330886283736657811479418365777246607757374869944615311425720289587176576957437988996284072291792856567633584277323658211004875801375112818535626982917379746797862693168376891868070446378951833460612856978321077441054808212578003643768622459165337052149786007855072809328920083586720233239858618302223781917909930395501176662613345645620312565717877557871030539394632574910112000656202709183382761029330664929562494367503777452846714084472347388802996055896633993323226599831677735969799575421344847042406748880774582226439201104160219726437167914047968311892323515332184573564294488847681224400370169211407450968471880677201871614821976527843479418155913432301211765928768364240282055696061457060216200307727861559091411417170376266143219678223324223283152809858010540856436194909493912732772330230487081865434044391740985066993382518948185455084374845063031405311034165160133528790284273231780223615576734124534974901061088229147682151275190402535964272555434119435702372065031546685846165339958110326323563690527411215878839217095951826459526986254566133659132580587329142316591740644569268463019835925762005941063935925578458293627719076417280943926494781236347208981485987802551042725719033105506685987711947161124126800908464525370243177848078597043240613364354128023793508151771386249064410468215901893736423976704473772099594923734192274126532044640552636753843101047905648230900104589186464190382347696148131323000840848486309310506353950944623400968194647563282088100178337960922046936430455647001559481394440087757473899695180758744158058269900537945968072156255497021201643957020936103172669507259171511178366227813769301765204888600171752151279629761156143810435669569648524544490386879541335462980745686152182134200179145771503122502220701480943972311568156680954481087346550366585107980917280825294987590790648868996973308499880030317645560649103394484531643505097029049372744312535758674051674473109524952686992427872484048191446673842690505264412215930090503515061348958741706262010625980687875004548794759400137842087357258093262483260262063231463655853770759933395923829084506565452408533146742668973192551497886716560663531268089723104127863119874108331207589755404898807300734081809154471829552986858736462274040613799143653072559346337052279847226202555802293748931804494605171930462717054403601559343601205092144026696887627670371111620327360751731861172976655594556719916044298632753143157135603378591740878994555994861857545971830623455225222351810932869501168978706377376531901617175716088072431734647514588037549955049075202392719455115518974541260500423762946014720215089393824252838834568539338103220380750088382510452163774555142916704721022733994656307440630825078708097908058521352221138603272675290026528651446210653275178514891834178028826043219711857778159082998266363252983142668767929780826937591015838112445559218481231117082362710412551141157774923942683439269261724540345485731604690704157982692443806285272783225798989635606851215001272729432869218842917046461813389420583713351014846703864517795716352575303819755149771592229837546211378899041521338920209716951500678713959580389462367851888855240614471019713886598503462915087000827059078716759006390066853319110354833624075774911462567706150612559724331180199581972148824741649807990729064435210674800077770276085729096968948208192579235353209859676224791731372877251627775230518951514803484311348160796744018743528574302693096059363962682199786133579812583234904816714931483833898710078727918952269237289279985120000056928883061887698850482382334984619639801739359980211765273952839950596308547245832426775423211994093703808620737680492686103204589066986499609775426512246525463629426395114797928984989981884762876474435835013282184928243607709209500988067717428719299694695499206353723621841344442075609396606599800119732367043948720056740119764078800302025056978299519516057682116946616666578931463233364581038217299160799361792486452108107099011979381195073689357373870250885539866551419333167459033161871379571760560663647629689355888433690762626391108493833752779351724976874019533533499921160040112681697449516989994293587198344925274887008863905157933934120563191578388851955660948617956390481191799067578186558524324854407021855771946560704240656743732211149782467561688756367347569983833147228932330173008445919773819992408034469669914963004069401226057854368366512906676435855519018143278278154201417326220293590061264878663930610985475169996790967527782497208051569482751674880812002657695652687194017668121041786969681620478090216212702588693833297788439594164322373009720422889968694692638574095788218981265972031085786187888975828449624400479693456666787754943487155136457575023270988517270977438834980577779802908574484472231926447787731672522131019607282538898248979116631643845042769154616964383388045525485072577499078282102755254291030670426164920003676099037365844898696120300567902603977252771040625266701742992614081098153425039041661044434416412381370780923304907192172358396131647123338438402781801728606173335952642474838559391787370414899439044143589825309996297080872519258411979133853036001058212823023879087627127018115486392084432519290582872321038376982192077004829898461294818101864026821768771178545768316119763175362519871723617953757752050349617408388669675222174205851263061453324063391345981515856957842565576245907617716415581262588924908437999052134041334434929443514031317058274433842037184214452464221001416863321804426375814554177961159862055968163186231399423460900848274130847657473744296315447261154847110549821295651705389789375700468238753331861495475852218646748596114728580527796949343516739429230546850333961269690331828409365528231974643997864337227828926582055177883488361365761023199734898265813194493808868085472154233008648165496073215393739959229573018193572178768459718258291746076887408910475770380245695163174756694435334211473763983401671962279370717492367220522661512760494300410404846056566472051715595604645693976328045146214439626814896015156230985815670845915164107895299690989282057729180972944114446065096252161813988278587721423016449024588674232468183170132615586241119988391865342813352360716182124317944903920367775056702544469536422729353824265089839107293203428338375964791625682444944599527099172303961355268176430235911748019520114491678259078719845418931698842018759215276686298303277177845152135693035754120448557528776415842965163103315214082777330524821342953184364503833460902914396718942577645580725169612014011338098508720835017321134935787978318756530060201136263751564626465756820481524359096014622478494812877800329166886504087815623946680064993847037106347452192972096920753774289519695257680345823407836399499881757935820774203020996353062672795415944743349919608984558589662621483089797781614207252047584780568386305503928894388207196093507861678539709292664441930770540314631198741873796637117497233022899604182149337645931516764925752698596760308623108432010131586004188621809768792728252847642324932116854317661521026064088272116009476685552026801148499373092120200545476899013826535079205279889329185900959304457204250270547244293777469281987922375700696090841019453958269750847233782456861301674093690492241335731395351544432705487953157191452337639695575313044551089064733064987204540107129217631981476794798976027273632831439348280317015980799098231162592237304764625674700940054470149286641050795731038338449303494498993033362862869878475406964625387754019244925071747705510868495113440051592852029865104747548076661006347793188356987993140155031960615086456305028525961229008770372037281457385917344936509944316379714155778984153056933033653647043676312393769018386828432029459221064740743687915773131619064315524442431100449268907500323710522491380479590223813262508412210505618594678621960600097486524041613763330594507526444920321239432817820934811719527429526911563146274620746533890175378880553764941131937459015830250897466724643405184981863181103571944318615025214344616336532087260134437081967829164996668163874407072698655864789460707954673824426181680479788202392572706523405416302339221013092135681597282472696994500182774672696304770650685380563915042487078266325874594807436548928945279110112590035006501709616357329509072159462932551949071847553483409399675267250693772086630608153354697349933265851268631588861831267660807860874840113500250023018651025504093032198181564345030780895756320922102410878548252633399209478128753007198710105710193435163907877605731601402955011861624869117133298303760500107632023169220274928022794468427321416868578231962159026720843873636905722978494123422080685435080346977319411224870031182093682772857871132880066899304219742030891824803306250997415054136287871544665525120690205065993145061088349920136431311507108219150849371371182482271242202531974418639029975743774388502259252461920384948082947616200818938224111613650046622467784965766553812365560896789729964324413112504888533531139858591489573922473489270906753631222376619196593675486260340869069820682763740516520026234356499793398346845945971299615239243248185840323332476193218090582995244329732920766807659122412206553726626646005760933881906623013978964721118045606572414884775587211758890108247381520549311891876050896464960719471424626921592874161202893388386475291882229166736101053075978761345307303476196323155360561438536126860689102511109688703455082978065694401718954685479332397955842297719737689779252440677853658201068074530335059709407686394377547960632716440399746189317553068933069759642168420864289951991384553503714310274828055589847381591157463867976956027898554286782833403312881247496815655259436396797773761335585770524180890756786942241052532794265097355858448937841504700642923470813094736348736692350021115736408896051428803481727422296670486681016471690972646979206080400843670185920961451432118223396293237926818371648486751244883623312438865114086809239804873732624028180130568642082817646451069213565865707680915504998486897398785736952610331153380097894518599552852962881506298396815533922927303558829882100837223597331471787238008161811019552854405531362860154460818592846702472688254844653229331605075878337455739057596720110244891908537070244538852601143337139883849563505498178994383082286527199469319988189051317060998940380264852797179759191704400040860200772608049023225324084913462949702702934072629011846273671237326821074789419980472381723687275704767206860985155444208035846028424333789048480686822981264063482808287659849711331687245596464727595148058134391376994791210768321216727856924122557144819740987996589817284068904069519715961325753819243084083644213922532235326763058452864259214257644969051807934331189876382664926743162619904257880377030481266577992466281854942182642347761920202980819903770730171239111289684451855914722859910460001836035308177793091392216595730903264447442071371519667494420060816384401663429158839200709477347629495065692201265893827000641148176683754572420519173466986098301456487238615555980004053762036203065607063078637336688981640596487520320890522655067697591213344812462236733909408254300143871313677759107366519990025883130032679941582895371936014976747304213221928874693885456162604019345247644588065079985552913256696410553859045596862887827928818800397472654463315051814545178277033367259327489454417135665105552264982884276075924765065056108517038012172705295021313259163219864962721915673527290918027745898794913983257163549945599924523508904841827020355175942616245229043066148796318924811387569194848087417798341779589307764272909207562980905161444155874633565315898186407751212354784436345377415797884155428398874342910748666142721513431311248924014772534620013350025970802082672824373774643663131254040084474423641583897498786806284047908909861060797233318731836010052424168817724495187010843437862952616660591969807975346969266403601662342834668437626060593737328970724123157947056155440937431326500290621602593191444056658361850735734050793257790097573585551917839849270824655420415039293607673935035105570220179426825361324226118236356026050204960975277872612115003914878034579953506101926412897797868436173206532889228571337179833326994480386363577728764228691398640401661889698355673664200837635871687469382656121889192596943216574746287328184007218402665676104640961430898611330746561362447193064257439460280448497843692223334094695000503650952649069373829871979562195808965110151975661690312419852745008860971836307745961143847047631583480306436162489599921684394432492814859406800714863132564242752112744691963909196149188347436672559467753034882471930204296912147881373946003916603308625831641030197187746726841332396610861209967685636485899529253428691536279826194273352373054510034668996996927131026468607874060374068970253403176966373277659074143650047010308015005927159254472182590835421236994655039235682838618151206569618255186335601032377612503254871314853156849796444428918725671752559258244334344974842547350071015574320389957917637709990620871733293399980708873301888738118847295736837571905232763578803817383450536978342647606832011695696113855840824581900823571343794712164118525301056095967883220346967271383691159561756136945558723836132282305393930670630030872233266225278965895041487460739167889750214313776363423986890178513794043882591000407537979940990786370383881011713755570706098723282643973257580806134049638473408767569144488774423754826293258471439061424875151493345315666377206648086453896983454730947688077861482519926098055279135416732444699543424403415264760474744849829587016764554186492592069393555580557035529742753020225441136559321749584535215316421390663923751953316242143125879858543690184892348823081762148355442833365175147056841399711142488026791428329950871252543706238255753855750095070645669507644684425290587482467211969929520573625738462676334997001028347503208266283134634938408624782553917561790714886083075469075371345321750233562433133681146214413238574324799365495136228772024710268310902163188450758846725488284578301170608233934148160642604965487141755859048664237013068057435484118040409843240039572871672116143689556612578888713464455189016795553637804508532409927741967950597668794511746724550525593814384434038290751776365825364768301081593277489765802049483005923715222983036910844414499617104932240072172081856102963112599256989050641873055622459406192429421153258637601952132542311137380380071116273303662372024823456729927718380315110322065920429498540073231728943152666061445030888786926787940973003609137914808875670781572927428631634530421266934106475768563142703558046477646215801973402705240319230845522419521697210214764325544768869254714645697288167405860666632022185218558383800142575370108306137438229952928306445259037862376057670804424352249267733233555856060097367039002318749291463422582112377722482669446524677321598640091870627111959037430265803560748580155137021173448568548010932711485790683080987044867699430950376210561941771639300740785443081048846939313274484041643426257719764717117796164936564431470711022276659144224359913246298502053357713283823136404316793990648727781487408389506912675526159261091103543921143086999743166860490740189075892651431293491155155316265329599392987591450933628305564766315459846369110146362821708426678585163032406732572284042540003918273236145998812905752935159390255097107980516977123188078260707523669935425765868422238329085180728451396124665465522840805058882672894054829164010621076480525726010671142138701640161967635871167043619833339685433773264528967634232991550672400021143594675018803646624761457527774862037301407799011262455945872746743954484203433677178220489598537067119297860256608151429538027292198578907736603456937409920246679974707633226391730361783672543869132202165745312022702426777843723219424156085754001355055776153203724418740284397473605798482467327772184546574132170937339595022383165727550611771354980862701810055445496877604554900582341114666636078942897104034742768225209996504259611918137058214200497136159698945700219649924811437492981455940827297880552830216865334719522666023403026680976808744115729836783712576872172827656169508679731279712808098710431834343078091567945784237436042674180177473433859750881933039291172584947600344720435537640199887783951872912513439145888153937744963738483368772270726907675493966313717546817959226388496676128739179613107816399177901404449165814390909203769431486286615604513421467638092241518710413956685636521694111503319845142604628626197083225534730633975517613257661647084817200095260541717993528048302543476209271130728985621676654204359878698683070169710834187152346033096988762458705699611382910852602765612171596256956433617847632000729568278570390593588297061903291229165783979686830156136931019383745858064325506391931006555799581511066337296647594690247170311222880168644161741111965633487248991958697293660542257001156936350406561006777550048568126201499146808779581079718860546240127038019240414232229453470657063626362432268384973766208689339075230537897026508949856051770167299832502125872038630972887253208981658870205994671220923911747619972384030378438422659903830907704488271189301442501548589921286415358903733898012921153585963514301005521368862202121272654216704632539210763189376056006422484210111622644934739979324885661442940670634269829347650141909623760216845293011676090875255716805265341173234216432881062678513726314672005359297348011475510486769155249494422634460669151425801096691812682064067607562925854845333424430467880404734393817310584688359516503473531640623733975963306695643886266915978555503651627066089158463877053934984438254138421857799398750426350915464551428905360660379179816020891622720174858408878752130575935635367861932351354048933517749801377777313876951106291825940870878909463630026388899709135543052010829947196969158657139085526392197093372152250679622952850488869095534288618406067374553723313351711678570035857166329373452169338540721488594379633488455711866680677744673165841070460092158305364854411496795621107715351441165695535813648354700577036760283869186988361392577461476326391765556383359671422422385712950255444116048900910488797633144155248010916657201369437033356454497184609730363775467286181558224214085128291799855558123731964689038828153606649410165417727991478948981695837678984807159585738465732155651182452093006153452200214257603451060852476958362340960169130155492319788218999556986614484316036049917420120651070819266950923097763827213684833961329290466838865598096862985632060966829671959733190327590350205397698012318339654751406007787309622774659618661798077845842261089573615779003710213504022587912369487812297092065544343899627825196801601121568348373557550406566379279655731362875226480580947554038148557405551922155599569926951226137092310913706474099790839967523352336015645445785362534918355269251520445960683451915100105220348750378302622587354036586815456664640137841539854961856009475869187105151771283919642729777562682753540511524540996826840886478249687110760669971178598157593759095964793516249349135436274064057384761924580716625493533256247709559161036637168179506801992852083398012327008591495726399954708376475240101275317674695426931114552462176254797208871275938441107788410766938461670526431325534133446081504847716666691192870313890503097267098128281084163186661466059489366990234304554062955657452490657072952388988976255403799749322444494059082992151247511735343356803119120923075775938923182223393945228475075623618787066606654301146725224082294584593806108286722834173720784270689554453238466465781432750059958023514277293183869311834066317114927164152798454023966430822861143371561843632595921256426891881998344149997727435757438186492484013000214286455749863426227934287072606758709889550440624616461985964144911926462351161169240988812721975690275683109853983562580878656291321717976722617874007267607547474681231235622376006124881747578548327842247290574393846922837276614031083910989940064809493579896936621388073623518455273038465868138673388399808476988322617238832875239021815533326252347922853914957888288272611884974724214960797376662664357496323649465846625168287039463151841129063449440277555098231789919633201630129936511995386779338564854648709045205252384781896987075828846801172168978916649613781212911820929391747056208066918153947710702903673637855063540162382022966863687870008314549227776150721385834929413186933800601992129046738015769765037970085496090445234708396659830184930689829070105123128800828039814647667081682088818010045283898202011877638948193968245080356665945880466374918871822675772710649026921458556768020036448183587887011329860828911031243157723183426509253999814427287310679087821348288713192147576535263276534826420159589881540759746802753911708444013965408371072835276102652730839676864015147025067912847120343253896344152217943374402535372054301433908690304256320701376389477727199521189824123135494064513502194441662200586723386573847866578503304320371921826965886803418878752206804372745550188423290276264792335347537843541131649852545252337122655643110443710234705904321736252212641401672687424543339978589359638406573092964984491605179950089675866292685268282373338905314687843360807629238955150702205914885879772854553962223442105499885961265600646950566151069437146765048958366532491434614155917841064432424870261512894218793032744451188275370739871660303251184015588528171278255987154876400582024564623358913104483190458595077497613406112269265506428219564354849206052014731438827346990455856963958670365673714971680123949189088082156642457780096532696491940239312335733996666426500610826375748026499856413380357316522648838283611142686158179776855763118750429403280328427833287219746741162044596415368740458163777621516795460842464343856008736612161787161793687948806908231618758269338976330432198077453094679581806499157241667039070157445854572891358857544601982428483310988762382451100153644699571885267865544102140513715768028829627317652485731050680380136070029633811181081840216020065350804319485486719222963686326064754631170843709548753827194212724435849861374753328879346686040422281990596540408461103113385289596916797875034171046931447381197049683179024823058567489291729232396008189993918761557651960695907691354621150657966779573952871064032261089809257522685690358130955084741496197696195739458352160353595775033270318438416486953972336859105696473249733097465021673429111425225852281427556173250895658142837062039826438466964047025152872684157222883976179113282220995837479448170582476845213295164001188784601115493412666915026413162314454056952316828188619069010098099003865992035816603631445364311515647013171002531987000810378204877155854071046087833273868092040209773518356701791086115111811322162402376545374270869605003801968783044103673284349112957210545403198674600336361152395103067012206897415777369025003975976750378405055241407480195258295677052417196333123228059230377115276587090642683867509324664983705112947554796035123188507483426137904401339027869504973128409924957195829984312045737351639750260176837345124347650883144710303888887024508554628362994970124648702785660266882688745111298617500319856900626313441900619833217358572211057834522872781195561739700682595144247232596878689397888320597330240691272487543644998282228012943079589808509015384263338755650852088573554126239228736012714550983597502019032582491660314286336453704484771699597479205057470244889693523247619187200414167950520360506161932082712319514674826691266534668229940472748565805014121451319146542767029684977500420478320768330791219412805974135958950205624803242472246144608959606188512978712568740730467980038942921316827546023094874412945473937920254086194319326361778108193096653440548190804983083776603318076524933762768151139954946577766136462198771135364629525183983300659937181856724215879574270121693417746693992293922778421583284144788732169911334745947448951682407017148672004810051099823016536175709820827287862841070767322011409016625198320710611519613403704005756365572862958137855505728985628093517635614242429919971873877353253608138151265640044437774046137687267895882247114951675795647756782258392044780989138458842147760054220353456259700620837133599830781444918156972491579083380423559397999620886741069275927236041937495415349140605215436383335016753898643620862012502620671550567042878596513017681792429318058689727711931088195840285052517066626194863481032042141783623671997547447517980616154872352018400553128154166686082711989677157140431152293435094915904061076608514380064221869942874053193875756590030325352492557686914222942645121385904167521070084051895682301399848441007028046357571618958544503268117060295643057277789788901666937567752654618183874682443685456410759733686433637437000773598047775064203185261171612118500447785049639412095065678466621453565969891061617342154896069964358785493688262520402621633430048666934676580532176686330864887250140240260577873005314207669237838688447113167666673352458063843154527379990515833643470129021835909010883160565509919804885908427317367999564082870798136697260269575324384751422261156107203035053127640168102118865802704695472586852137859079569311261144976898218574618594865031307149276805105245453632578961860961024568433324389502546376484365092867077470000916127695758784544401982733737685691716071071823161801131904473622403711281385870645506632119466794293108264010909373551843282690380457365010932135728929708648798988068905254471667774240957854933354582914404767819986492523386997077469863192649057445587027786933262869115974064161452712540420987969578727874471651477704319814636593097631581669468152114359386167028189534662331182399103901527270974906646101752035439633444549274829156071016297097478175548338685671078789005754318720663375812656687845030357965020962682141421764017663716981153125488902152335478526821439018613598632354538847382664539316837603493514291395929179240677104065052640508393325760817298826369514248510320844692367975316946098578774382801525554430094429158071592757589214617220694773366351637225353148613324112325706763524982322473645999975267132740053704308247826074223689384773318533076118967952294206257839342145230025729188820254008097584472275067075328081436719514010608105533859938014580990813257493346147218905136540373645252350908837527622651563539908867584966667552801069462884711084333818767618354339543133730855337305804123456172003133119240209173516698514893523425082881007094911877680288045190603465058279450018755091670320043398477751412842379423145879915476637278132527841115338100448497038169896022243081601451728408795839281624708433845434451338377855603694148538880950990986865491022305395282387912064688014248371628309898049842622090977610154777741273271761579958557763784825801568233111594325593986664415184062920708783212701502142319567568316347114297184929052050370674681250601793153008408426411365611278446875566279648035401138657301647458627714680016444043122509917972385109553077439659818022124057855841688312238842418441735273723549930286804341286356976802602058627762118477964909763497736453826118185853249583876731536695008631439058427840056716927558670233899099802244717697483301841377631900493788458670315277356291732225327590522944811860600892724927882051255172605381319453848041723611702340613519909655625793659076288875519123626352162090878396449473517195845314963711397979749052573007371583334720373047169616323784669462718891940723195963043307696032993844701715240809967726235248373396113296536229332760158694053032487194475235902762878674583404871991026937606669561901510301617651934583840956473961665860660257479305168840126278200515976003682599992137988755390846262679602576508352521902362482802113772546305566398853736669866185876093098595415660288404078200603903799965071512028804984468514338252738688557795485806052342869115458220094869879085418022135204409650371932243307370729717012289163924260827842193074546446590831244302105715076388927873432163852740456705496781820677597153063686141490423537479801815701717038931780123324535066229866295382188473487203464452538207259746453090589987978552520090626719688815784804449897506857622835901260231058724106068908149624685548401243625247438422539701785234684689952249936375610979779795742649037191243834679641843396829162050258238130870697093091229412895835060198951429479754633336651106720245809267314821280111511970211470223414790001116550068403782304178716350282603385477034719917220463610591151889383066191766446236784794333114471968795093876155348324694565908984386939173937523648425053068989434568875797439707582576991916892034909448933622624859182743255664544083001422741385368289344761175198984161014897448825689189667482253890972961621000173093768737664796145045967933958153896215391083103396475843136310529574226538252495693655248147754754814762324260228977048233075709869299800379534075844435774633568027817673785598412684219824946046506830037188948999783282071509767811255712365888690084519316056875905646869033582610857965131656631938857823111170098952010692651246279252111514716540695173581852025804667667592791619235666162987536061683402123129876661625258125061200412843500475639486651721505454627830391261097170619376534809364986214416866427192316980425605914054433755600232365786969008771111165529483009672751509711114118823244348261230217064253577761054741443725428284535456468136493826441772489365332398891438929840224874981687763887255104911572040680639992729046117114457741446947582922646580776729475610009491713461415861287769776784814326185124613730229763114987724420758684168819601181668187579864240087435665864473273575991962457323049845001608007369874230638149464420617012487985129468903706431308197999884670436152287857004866490375252222344328517071763746068751552568827522185496569250339903487444161707363769266359307972151180065279782528988973202295180400096156804454994947701096209098067370619764147251003982311263224098005258955306863676864847676539955674648220598004979913352017430570068288096359285712624301878775959035169224028175674616090270583830907678715280793219298333333947898041604781990464440518031014120724015223890136332307945609531029613140929024427218262570943808918131637533511973268060821706491496229573224094025890747955990881489796216870974738159952391704760799830362716579795646848878860887121405268062454876226578690491539892214887360442662794979841558258230331179422376309455219913506026298396989028814175786499250014867790452065988333006124292668189429091127387896981727515319186710375873388422541582652806800493789784583971272881283737522729312408546852795815954573969160659810857016925079061835109266354531144339269489376642492048438900664833240845037139780450793370121342843485373625518300837589484397326011257236095080190544924352286225116426212482838401751889997326020094886810383369909214437135071174477237074133764672954758156072867395465241412095620524358661930834323317658308983768338202152444871374549113496493073528629598963654265650470687978716952736533189397500069153716744395439585933568585828307199399557128084122482946549652996723643609473692057083675125179714783102384280692075451580569801432643869032494158153648377762886088909202167526921632960747570402767743961986499674590883729384243522894917508935344653144038048155902170604850603617129559718633177702732196404714652457903409911816888944680605903078173256700012791554594616411879930100096294280581298809114977486293355777049382284843714633500755780969590757599516963169381620063273155557861718874905284747248863394393434044194305022675704575671746051857181450127239388705704171077878408578566445133370596067974914213580408131086988524602861073913683564597685916862016560305057190057429963196197710338172511799961353058307071290722262089250468160970417107079261877552384524314284673149034594571822905288906324244773159217738666301380660369965032642007908800287546662421012629744420370072237164325763597224501400649631843043485403385292941746237581236379970759533366060183538430192480618626820869227079537589030934170806416155168038136679819395229392723440647347860540417498821025258936033013756460538517461379769003234818115458793014327431756783577750726185131057357851507593913276772568692227656093959037773731829147911917351207142101198171150339747993293537747743716873478712979899083480221922789064863316891921800518364004039970737722397019591145701988996785370865656794884137252791151550043849344069375448559064663519768347821492898154883367212895285416545951287832348933732185034546647286023099338905504582444733682346410408931911963687458447662293588295394306342092070166413972233134859673605072200180289959586546167917840846868369141850147617706512846031007735054047015162159375445203618509357425883561029296465380686628922888571178563950452655749449221943188862726106838879009097408937222659741973507404246128618580027134927657184680220156960711913155216753006481990209374067285182517489131575680465925966501196007088110514951969565331538467103278005900918502632936210074642087005468985796670815813697895810770395119498835637950872877594696604476974848247636725196289996053652730734829513734977448410221949942879249420277332864204629898609160425003419463832377769330753254409397078417541225784617623791929108843132201483717157174886060198822540604215950298365233615493251413671832413979211470380757881732959057323719458331029375001732587991573292613667936245363040985827329748874640906480935451827628094924136682087942386137545112571943368889174399098585162456338184883884038528848444929160415681564576780727561318929166090081875728810979211862701703965330606752602182922194663697726115697654621049373459982761756204757437703099697976757224585865999767694468927710898844298430361987925027106504113224483240704697141865024937716355127118353019906233457027715065387773001673731785631142545123099056205070443623145707740104203216383125239191321835426483776817087971884908174908699082551668957310478430619679927243943605955978453252934601899761509399725192206459589625860822050481916472296881924125674718788904680419770318577419883293979535834744553164634258997474765954356208381774903823660494405922077675036336416498588697837804866163392101594617125790122269096719314179321306853415048553798264353886846328439858170321177373908464745878162762875973657013403612918175394530975839243864996280955868205503320300072085130835850605898197332666005185001026129456018355332884595029223020360057688774315721184756411717889278720615427604828599279732459069484013869833995209627975540333235439983903008789465529228501929249239630281953671098708797541669034158641005392579567993237044307900277052429249186415129359235156938249038088645396719398554028400318255385051261223298939910389988218661396748031343053710743441868093924057529979325580740834310481077326933485113952018110801944758540912626526516275398551575932343312930868342080153092633110840834671306738111641273649217786529066466150627176614748544314315924986733321906503750921978988571816080258451730486859995833710837029411972084897066710278187809190943713410673613143067899327700963476430499819923465858650403527768852145101790394563409532637398451626932973932038975842697722559059849576722694230037862523161039778305126136248282724833193264720619676463937294306503529211251898796669642825038593669241999083250764122234909896395649222494650278221213789776162867879428705806020349454940616617946316705054684641304027717554077993491554973336799551111482923304658345777727899934216972386969757154182873726465392603984446824207527566029013367613893447991998518464348241103158722682967445954691206919984245536296000207373420878475311092735354552905907758444904237529667470215128102240537388881209180984681963836009383295631567485861864580117131602293055800958356049562530805885873288307199381626708447742011439245966430251570797179097512024927838135890050187138437090366760928339163668310435406389831477152618987001088860704812799142673480022994264499959324928457270951517037445059930295041679772183511236785436959740895554749793197155395321920446264910208342206141518179128053936589097791786951297873182128843638045003821705659452058829041915196225511782203020534359352890902855171307168082739740589480104722543947896990545765555244842008395973219135778761707826700501393705925891721349526922058167124390203441640361098002562989757124983340959448612928140416251340303514685587097240099594199659078203891323630090352202665901377502395249768740389079126665493573304627081461935863878402208054253331317248043720713690102416813722459120136194977513872915201299025332412080059571332472650798084403179685769673874929413779074160073245319228495987821601020533924768141811438591246877580780224891373443611687871171923981167272638407073205653793532623615896671254013095656653135103505074019267757029636908666322925816444343927771130855299207543237684482705785876035221592277765589927465575493452218990818271410538472181678397179766319675289091726720777953519847072298304992884441142618205885347870356935076133061664999809649694647556927999763107722830233846617138643509116561942042168863792018216542359225003411821026309961070849929644937217610626222720750411124659532235617442530614238194634950571323404362500560792745724148450954618926046740818504299399413236477968358823473732737855311498441469076689685003558936486460995825929607927123419715047514855561880075646591355371412747840736628210929094763536625263800512929298490440556201922407549222859864850043755087379764069410605715949616775286379865913350826255020635806775356216327368635110597907598394007641212979458351774034021445147101207087304649591620664320537128202450752374963737076361923733758868755235082236616576266833794938132374335021846705408014581971538632102090891907633761596607716326102707811230912862102709493496092892550461012885257394686040358666047413055206602543886706791602049332782753180912982993059741923525973297026511375050647407934752834837973044827816579536644277766948476262349281678067512388481598012833052505693439668385716949831485718500773866116951257840779271994538868949850500648085413654144079997223662005871150885889977088920240515451475337533186916259110908767774668403997738370172495595076790408801850436039458080144717846091631772498519167725194027865145483148814250757359706085915590856854240600692670176781085631980094068799036025394891960932035182308512615985338280455220551440772275940732055498602943654906310735897663289179574777804409695464216095054505779787289968775225369448458203574388357341564328957930762665801359188718122177691005083673825632581080157716511921575009520128916561532899788202218307477072379478064482921409458572312161644778039205479714081494237676639345086173449557050845205099483475238804889319457138660036077187799864045195004871049981813923575878392087806592196827487382421782139702180486328315420617654530503603454624082717670858882892751929226825191644049466758211775863970379926162140573427913284793310422287075165309942178140609547086210113776997669726503411087640264125207271981067953186288194183870974081939325251156233577475899540256494857735522523703499321402849192407518802622855719387166006665231596539365786130078218032279086438292435184411145841416441588894593150715420562693894496196219177466109629380373489002229088671806039321289240075309739004476673400088587980693717286443858140257759529802787434553483740696435181552510336696544023805696991315434935647929859864704181814034266526375820294681969851065162634020905871825808552928569435052739278663505892606674296777879058429101896604263548378836715467838476191170040174099400124632675494773414288464228090762028479897183994991941896270658697545673030827745671276009218517344165279024859325601588730917539881095439693111517811004899431810963565029770252913254101840125047432680005015539253992916378995496710131701543387916309773183346215111635146702309475263820276950104217964163808028820127049316626287360474414245080360991578041931038315197015684801884710855314078469621937045027475080873426853718612633631853243860373654443630709564866441651912452921573222910382630443682847293874087667631362147202533084290138101926371850168096388176384486463335069020862376530158425405902503798469510918173605897909930427232722179111303372701469503359044077871565276971301716054408969141072801555679361320133100845417349576256962344001805672579743959490704732517484134715046471969601528010965398385788468909460817430695129593061212701263932648222010150605573505329730870811387889381895535715166464137980332836491393188486649412828016020593125952211544069467695875308031221506340272924400634905251351672736548157924198689518244299359895491430698291664112295318380327614975427599659741951066297316822287044678058012598694167164935739550417018291166636068968599727835683976088092387493788408862214497276062412038281016661477457941362879865793196316915617862435155843493480967821580097061528749299218472584516473452025632726360321797528970710484549433876035612993179127329814568024649603309980137296397898405443428053254770425122696746123982288118210171282595707358931830157298984247652188430767531741032309551965913446307357022555809671177477340136370043650217431218279769835669479509833957842807768216427712939711142178535291533720600748702290955242975234179314287776544027858187879212277123708725381427998565384261766300070613172787031707611496491860486202745900144896330631840489107352492969223521840618714429333814895752229887077041567225617706631473590304096916565600256404169316086696040336483584032538771134298188536501670891935130862409382846167875641762879813233983060102353679881845349650441549974859847552814821989389798411856611823213174640870129123559989101959644991678051884814589125392190442415275455211170609004652698824735488846112287692475693337673376134973121373655650955786706602801896869012818912537970559870009825824391687605712520216106861928193928809688858166319017387955559905728783154857448922779727391497034734527816762799000790660262988664064063062342828647416689253242636645734488268913314199213060287205335313498409808547646281506987457129968341993645246335168465999373522226607420774309827009158785437429824958129637298270373447492894708488617008365185565091815321232639881265495725640319950856096501204449244874613528951202527233448523407455339774634166532066714830590937306886600104444552088356956906243884469685939764358280037012954810561675445912929650819966484636150921819408320139083784952435377695996734392671492825865508859895350499325987543640851969152483928452661533515245291162135500681778770339192172851878023469198021580439004526272160028938784170903471213628364885161048549729726686633717422610280414746294520434333709020761784882871087412236527754828865887746524977999922404776247802657331056619481677752325316223360225684961891175704223896291572905265073536866062912723738854378845959080776002184869800332902092348599966826675737714748401315124824558426564619665176295067541967881848893746130678546230258297559359360834429958545100871001473612122647019362123711776660520169018571705045561713558981244600873661937113411684795574874136499909184727657551210684670332167022980278674665558674372275077273159907900311689322029730608950665099217176523267231527355296711264036847236182457218990022920124661820868479003612787220459003167080422449187714647336544353965140022311036750478426151613706289339410817590417210056850623965203158708827681779569355649435978478796236823301967138997251928734766789976058775791608313517095733970354744368637542153035680531815675106235066287718358192134244524944935967455716612236316003989121349695159041251610083792954838883169958310463886081869830036393211203793805385188903654391433316191989654593010667808774519748684680561765241663660816546032015280934666178742516557104814413392980891917532226093501312665616240994444817417332676973248950927993651024596107115483176536057263172605616253633555583061697545104093634265854140649012576633217415012754407126975010981809779072543534583166790438073340539502952500730258939360557215287535106718676219323807442158962066925009614781236633444811435460674437865263843857627096021611675603777635160844325659356148078170565070482093762782343363803389143312410978139308633852125934963436632618982450020832839992117002283905631469467411244986909559783391969387874872625698183594332769059661563565388732218102325047834886192087024960492576397512286748273610801854459556810767439167939269644914407539830854078561250370767039996591543550791961612225687737476663070756729549945391356985681154380806241224542714271162916270908003445022592139242103274903110482088812068769103001212865389207454431615683473932310972414800575583764788255095802247729191743581506774709745066815566280557407815524120166500776325471844235183017296542059609393212945508522447893884538114431945322201148942695803982338521914865633194888833851519202791159891724374745607070190497621489318767791059892324350803814396583179552899127846174016642637771614727138488045559780255828704497331015248679602003007383090136721443655156965882453422489158234170920877942071521078708958290986855737382541307757442398716488615137095335224334567447041273420026004800317759836800256871814748126548766341109552304814685104264263117572415350630521490183992360996128449141626258482839343168960976296249407880558955529423802173516372018476747287030346270326346628284593142704187025938796143777305501495076820981073660358641591448109185250043054213287943303305274499431187045867823580850775171564229687103242604261350468256720454507648280753092591700699939722244159751734176790644251568973988137701918560430401125988044957607738429568849301770161111180798920005937522489698092871973650992602876698063402760698003279510413560447070898209693491318357097735612697400039925083296903364454444765790466609006340700140941029079179136195347260010179588254640389350275699804824647400655865784782826477275849600394397321679380425115359351173507356071015012139484393812070857454429079141187281695126328019168008851186295363266196157817377333659605977129452157089222089576128157950769280743658592853065564097842757314804508726113329921307966854071574952820894883827874225861276594370777329488091534753726355247879307884231113018614083903605204381251918798886656719285575512767973059190433170812106048991329446235487873069650884467151606569357010566453346120639062273389393013203235066349432285321906429796567628688784168080721804706631950111284253262763262645611220953023063457789328584922840436947139845551713503091324093764841865001061846940339576618762424122725980022378830903941779802727432771950821167117363420691418502972504214350429612471970561224543156365106370702267023157338736560473343945450949209816627803841650418256380821716843006915079344366922494526078782694832363083839985598164956809380496129358828312321990911850976190917640237563769285398310175112284110943812644981812014516506730279381368310340738189928399068432092057377605753676994482123147038930707793144096321123335304199693701712839866816005378542470046389409915030399965806917876454390862178854446460960234238738644350728567168597469260608624726544355124848746841155443742563481679864683085089897199108885788287538804017349192045104702427116354689597933179345591795207890893269883227709183159908270797463385462513400585417866144411776281342723961441172119080056489895358776654523599385525719625336973742627647905417124344391728551408954820439331968661465488582026928180853009733895059858364616154202552074963168835374100527469684257976119291381676031605021187805868159054162404012501844449933912894476326280481261385155571390621825232712282856748531898182186038829084760478112945593592379384294504676134447802092740202424441555268404605912713610926063448997618693013834654191292136615435423957735955859884502084525113471103800414175919838274765792136272665343615929173049418654358766350296497969953331073386109487532808989646297874521841006919205514422678664598536001978671300247677278841626257030017466725839910815045571599603658159737087447336969381742839708184214832764176755901847203112586094176305068812283353759115936005047446994772610425868707274793944907218921822157144256147139495596470763145645569948925457059217306949048039627896680504055825576925340700857131332295815058304720558588615787349869729816367007283209440933459386611440700290575379594662252746267144706035387331844354576226183661813870198313986018379962956859153078801401342508664010831498648760065067528962864256818362877750050823393218174093395655116600067777434006734699655588206805997970431355640957068997047065818763408412118974154486992374374418599534569449748009249816231010316875588614331265385640066902195447088402430365469898858462991194009924144600963064691286890373174765782020115189710384411270649999975861761877218153912238933031317037038262563483299868237150854613581488749589537519365612717109476389309140725375653907232162207199356706869017552953750701681525569946719647558188635152061783091596519332553822998511709242163519017161370564704522963898507796998335975980408089822964222258877201903377689221610306690610447949620055429772015934485633906451502031720624341570471951710237190234325857406064460573297141234607482451540458077696250820044249489358378227249072477256736346225041592876866426592201701927510772272001380618784732398637193713143453480624430886771821485191227134448465528294135064087515107050775879863613806803072423035219354168179618372301571805790691915256594335597017151502318775556205813485214952358074297217073872913654484648121178612747158667701723114768587706422747128747434941375901558137021181990660046485912378835479036349280560994096322096525820996940571799512624270847830520184359254198115529590869598837382714868031863486326354860557676433396006675600940913859079413011134840068120568532910421301918134318394076171289403550236919826207330894472254633028684640039536721760699130535978005765208837578589717270521570414064182296756406706321924796100562595878127807706099785450793624442175809754454187531480027875051409402998495720739734519159700791424053120806315213286112502101902785729170850024585953160972526907244915768415127162438764508157462180456002103724337414263495073181364790825909896935932391547118632608946866282251581951999348453897743766117822372500270538524933078351661899023979295262567156367816140658531850650982792899787219705206933631240346445822361100023439309035111793926459697160752875218421943994553625359607224009332511653322188518407007248368865067980333034592728204671183276538115604680472320428309959978759812470748635757245362099812941989882591252731745648204746415170623289735582592463450697513673587051135706502036082219822967926655906134825245471608893676532690735289631352466661787257807826615370892670636045452542485010105646956997873023734786894328730399601361243118179959213853683776204530433669435500360511783902689415797355262981985953880569901445824199549886910200782785124324042639236406266179826035150821371834387095328529921717569762464497174942478796175089168101730662266746153863677229708742695464183568919270145620921427104166051965092506676139956205940381764302958419685779948920808187919702074457773280414601324683834276206630188111168929239063171072276239575243936427077733993870130603620906435587875797197066098946341683527341389746870074688397677310609016824776848933322850431147341690543447869339096532589857489666323432729131165458041542444091590697420971724920463409879561300107348193672574204966561751974847442452100031477101641171399584732330853748177838137062153514707886425693237730128507248972938778533084051106716832666902882644153376801065686746679017016004104794149618028938945573194197419756459301820023243065514066006530717666170809325758124182096209547844079117757544963172351413354775894717596155376649959216350220537110602961196872909701198808215492778781644023073798077823065361741302671985378072577939182550026152320301268058225438841268107127599329595637366395059322932224499565602144120463866612203268233926357058670891058189161222681707687416215231808829926007140510530550724171296195058412942290502723748665612016590300002722500117126878747890958977848875996110833537528205997959537248129573870835292509396128015091831262983482389659869590273748187902503931715523527856978390901380957037593209038269501309209882456131814825008135756305742218582062862743160052668167885820537112469324599966784893911910119840627600552367603970433008658437191097524328316301026554162024902638782230240334746366519788512445136850134981642936020278360959621575261698272330029677116917076184952738757045377503144047135320052409001277585515338883535441236082703695990186298489901471861236365629743759994371632423416285270483162141273541645133283056991215083428912192701217416171045097478655278941364168597328470204453656626094351458649664615401286236499963126680837723732391191612070338099193862809038952917659970294983109436838869551514424057870938902529036615210868202413331779520106443935223113864188233943840558979881733369871539419090278385561346459818963845776558247695437284538460286074795822349633258287156933172975440041814663588830860036317105714065584114953132567859013773794842970609130814331739789239342376872433571971979466260532966193412080629582541699654433418998237204752190221057083642972261121866913553389709508961140175360288430788824307690060614243072740367043053483499299970346638283299811315673824112331693863642324617815517405740382043350605611523426453167474899619428927283053050823723716849680202119177873559013818423100828420850947485170446917463436691231700916302671369022861433358882285713156133302687186368684872582510304912715846581337459349855347722824992080073597877427566174806307163628827892554597310243292015335478067737762143779893583759119153968014229984341291409867136805596851211399747546793060714074590009594844679378578273423104558566008612380247913339338907085843233503271904858448898473237521546858333633540507664226489828061905098141019157855021094447638893349782408643192612827974217577773435153068010183385569535107197177379211706589029643046586906452347167232477065092235117761717730109680550065833189460521602647191236254609793629532809450062933048258422937735520263505832957077927185565329811387475178282714549034067209281912286274578743751514298005277286456122027474901409347181339414248685390575589219958936456031423046655752630887361661623380572598684618262280190571537347014545128334285141418023967516592814082702476935169919939792555125521428602002025998784462927689157426033454285101316081033853188617154337276590704894170670818402309378148976802255462858894272500489280003042045083681312021294539037209060075108801769937621966814774484099013008792844713825960273923132124046012709184210689762702627319326732083385402962622166271644234317094706060262761208979363744654255174837367301767987408402540145003929193393583303876085244043389866960455936731909990156280291173106293539607503364438463877354048566230420355630935308992751550387902990473053994735246834345052758636094486319903801208763965205831311240585540188292320822504987347904147616573583337636182463046850059979439569058523190451777383478445974353624949546154480566241404277316503987416338016298646230452547738518154758371286154159917366637131913654747704603222449420203092789391825285470045447940651294452519533173760931190973020263850892989760360004650113686823021509664414444137152242931680219558187948297757877653337360674187361623583078614807849770945502065582571722339144379850208209672610232484331834911368757992579231401532339315238488802666289310041805355743326094758779342864889424598206615322290300021570502220800954940547938952123145093559554340322321349498449699260064788126978594679611490631047512557248055752835551683777966155136250079092613315303004139796733053574248764408667605243058627791779279518859259816774798140829641566387698993642622724764179846327929229244067669965894407855833821754257826150692818337859377960538886482209593108585415254543979445850801568558111004608160738981535177671386133525971555669671154005435389963927923821464677820955536984783314202231072993858335214066094609006993085018415456401060055517111746611767928995971307360139936752626329623426674607285923305219944412697603889800266449093212023086485945125945623727500638320105890491570927687925050403993474012376082861667643133650956341858748356989201407684772945950916314045684795266040009607783965269285200966157512443893444985630162493317472310398946541972344176512181386940263531290843376230140987878034403835306585361587571621222204090923882322955030287914297427390923210390053671019060214843654256855940167421191525046418600875091401530488990899997290646493210593722389649844154118000955429005721708361768857932708001601398406232294052974841999367595667625347585281671754212228369676968388864853111642075374056236322229573523817289066403531388412742812493905233242627982942891796366245547803461975314723538608310313677050048430582231770432717172744108032984706429662682949039300940898015825209598677099887863773325711302083849352048255581616895573860580045232912890921493769204985478985102956860012855493907292710482330715238397011440864330962943084636839589653478801147573124346171494463906871522541283174216107633701795570373070470497802592663450161521937505002615050353345411094687891435333661460509187310260147295151679708368239151537617803448938416159109074319446425224318857215603294120269259495433776010317265569540433794564092183949440834922732311836579529659224805093283857631461457686631777669062153053955752832392968852344333816257544724433720550226567989541550564102378192647336917788685583214112301863746326750468949061910962059722105439116989165446952554323519595159000966350023199199799332234956075151243733025811702743053819386091904022521961765169940944746195601403255572906767361747093600361974395734008414815847749051777680536774665827505348546981077095274728074193753440080329506995498873691186016156079005865601750868664917927408934008410168221174733651272385453300268353499642984161697931524884541341738853771791752623219506394031040363020694993483571120882005513448256951986241158258145581378801308621036236415703356166742722021545379140471113626159945579879522141284003527224221444260018574673527696377209920537345452423391277246747532161328545669286004967156049232548533640096127593948822888076247358617017155373427499897170412330879424090786722013425021511511761493550672625357259322741698801800854189725744237557304874209751868350518790407561405087643847966016356503733106170994497618205363004196824299564039604136758463182873943163461329038508211014735973823630694250154654941633071801865915797546008167636114019568758803125027141673924156584950490740371821690605013760904944959654272622767979280648556548894539708577700366204220207393380312546514898721919334535997047539702433050191900356005488554112164004777044481871612693946446113857866456066385516100086743086906593217658328989894073591793738773648166575932993173273882665530299987801160728313631110252410339449845472583423190829280399925380816738303090212893438276434058692444234754338017142498521825943055077414155240606579791983760350702519977144615393002362464582829738242749692406816696785151813582519865538685857975943475729252901045709269361924651541050613242289891582462526413074824427886963860574344811346273304152469857556625361408072863283325054933981374017963169218528182332162520220841995977810213726476620586901887811545106763537610961500613904104944907213926881301484236919797676534459513889230077437423321271837060458789230103935579685204032511351969708302625042645656122287936132194810867942936309950951670324668218090317295622782332750851784453284355416760493995146883542219681700852405061158150041789696519627617318213102262677417659314384872938804652141767187698286710126107721245855124507234188308818949857836223360464726792099607740638519586721981934170474594397508880683278159075961750780887206506922073927164548150503315850772554393136945665139150871715093809448777418527659804928983944190037985421442928588858889641933705696578059979561214829948001369878760537928661402377199729978089792893611822093457775003086092893556927872089397189313892943506633935340517499766691829774808769510230531916775814765044863164910127303897296663631800984754326195518281812871603612240814805575330032795458211542377752181094698665752057162742902655432947362476149704477892995255529789679413616499705117228467709003926415601556596073658047213724572193498857899641353792369585596004727121974710350686926746841727200685257290136896667983991763835565875583842548157269504669344198739396468156053974967431377637898928178977110031742413816491509229256014272929414807538735923275152951268979894050365222125385796829081956180068358693726809992249619190212639968099643481066473333012765101702428816669282452867113894093499854665656903968138711207670077239139624707272380661925599433517108905965448822555082009662736757413159121912967351635656160666322346817937223746925887352979731402895912596317030959049979157976605710959243460204890207138392605405141535802838717770894721841098921354187151637769114641282623048050977473618442546317253046736755954997650893312155037081435841048856272599155753972253312057418563087561355413620995786332598582237055632776281902369746609418359259031820890443766938917112089044179829319480483970504702100164099898442987340372594773609946993455836032176526262226944751963230224193732095714969944315361233102914457140571558820427596908453618836819727569683907517150424514024182549772177210305892374723157823641833719307029327396013878990230519510171027787613208309705355209070009416975023949160349175073126178974497551390987207643508623316584933010320772785726048194198709156362661102189070962111633522415703048652797109885125235162615380803330277813562303240078930847899966817751970803059393967936120524339588945040370394258991130310032559694436846455976312111143526735404719642922103205644312691072406831853295654837396138919192918578881768202235926400568592394874167996263759297352319530690995729035047428977869074546956670617124589859421526608790991612827394422762619140567260782970413515825747190032992043930151789378572206459639728302147431774905212230471765131326422968785047187817748943661374026578670632107466557639995107990732007521551012810864886252965784693054068851206838946662034385851475775422530109713529326860462905408068364775358604836184930161207873726925083602749119690869253694698061731076544107658242265482488568641270303602736709649878757032975539977948857353755444749010072213255147218343799358130446632029662306387063566703642821666865313091665248292352446150841213036320422045018577480053279281356942734438562566589575639534937482331116722366820138429359179921227898618175435967594564166445591810569027869587982976268354071432174578835942585541442278282511796207678504253860537602944785474849263165002101056519459613367774444076122237050958557827653449540096118559585893859315309184558545166194229575367634509212633077948643369851602164590484072531605522059152164577554401854848257826149797606548500440529058872498410450911478153486290837751072690415590169388821656722212894186545050519926253807457660226260757588522210358588728068992056995280616659972595948337238213268590738052728430173452249865357570431388309938404075574028610038317914396211356052331791599700295159375841763826832209514286864570584095195345861648037779269268845912251616681582547153049516570409610216374159671652112399055222778925536509551680345004092982315971247354480676865308066400308423568479615567290156408095879859849732199905195409971172431577883452908588613617135129760889038839308298057677459232721800481651414449452670896844371402195380232441708097467715753950055093875332277467330001940454992244515366868866569941818125521554668676636214234482737944686777794819099590800625305488954021911389016747187660902077064464015447650570421257985791566321544135140850791595636548674957426520188977436295154332795007087331803935891314317186589443257581985489390568672850882449872756022859611331717542730133401336937895541745356695790189408784930502045067042131616010055757727397264660980995126990750786108626638051649954909902330053979762743601987808839224873134283608763999061725076605349785798374369310328518201584393570866719060528664828917539560856873689825574855650815288742227599599686065704257919101326770503312265887284027845394703402793841242152453722200097363414100845347100029375856385003561336347668198054971625466133499622516062189174211157178303696837791696885876161962619690772134884682008233625443342719113688893315654900001952153514797467959228599936631624278075172635236419945672496925174580846203986177796452228926508940546519280183385154992528049500802314421645279075099423253260203836724807956554894333367143944606002850110777812586378342231773567333577493349765200514142408968828764488763654159787250715429178587218818892561899796605893386542339329738537109755114102799954990393698144721801002477649048887178790974534212316822973774307224041350451130413458146223789152934642544027230598939845898061355307639521274813983098221498850520447100701296805045668620054276732446976036683168766767923077544735051869479357321101385942619640354988269175344583957577003752721113034651429422053222787498254359475941961665587118893475394942720404688903361936289352622214110062588421786926201343722741412483305698464599631166520637645539916847942271304168765653306614741035924442244452103404882112706844437507417809406273580313346204220411874263341502504053652749118353531700281561431990770849041519447102423034662844250803686736440284273772860299973352184339183061053896868578574358655251976009545933618543937437984865926400967338071275051035838506356402630226035420493393565100181247287837808583182618779286230984250271946468499236118304054404799409923486267765502828310536127427984881353883921789127628459104310651926971758441919116657447062532033298504694075273887838382624669894848389077195236590674185071199279945165041438198950475048639847865389774948474140878436055135512991383840565173058231680950437685971284626768351805275730336620200536716375606878170316557105533889103430707347299165294192477464220671886157645371911272419857491254155578933959764982016048084385880729144914272462695856035153878084374512072066573239677378472413876897703191688273432463216005211909691688008639535988069420273704832687997690296938928182032135767087497182683906921672058402289762811952752945084477090578748189158871435142984277327101407362483013604225008914154442522404776533496396537284462162429177009221515506583583752651597601886777360676491733480482848105248053792472600952408413112972750945868680839904225325548816453815112779104888728535536917964811401817846956711701521762037516936628586562271664107612248007615094069587449713476545868751034770507933696624709680296437185415915313901982510134909427059680197362061291703334669040889624744748196429438744214953138839170987759641940708542055702916277118089887055852849229230265458882510341778304214222374494461790628992875304871495940694954396112749931112168845531872016628949337916628258710665600325221050171013323963477633511687075701119566586229357133670925928187939283642994066547680919512763299909001546568305321069738149426507897097284247044272463704656518348466734423326576401127312901796244612606077590201376975115935537156691053161202031531613866221956262458483665507061082265993678886464041536327494452490250064392452092352555996385081593089035145715269023764078827721785070731953980883535237120292709405677607114522381069024360977265613459266384524790750140803673788990940608598453057707485614974960630549508162185632106867281704950902694522406958507473271081508931380365479459516304377271550556847185576758575637231957929543671836351486613515282706377320543483428783434958704247863108992488554372075073773945301712176480900123260316521914538697150961967562625111602845844475594161311533035744249443473151349912955986379634471223740947861583785696053084891978741595542226062230854576891183102545845870297903207950111106850265118964225286927733144971961890223907856414843662775371743131248438219249125130080983618525118130203578904382900743266241314796799807951037142265790105417787013307044584139486745321313043411024130247717538450148236956543991870150465928763722546067499942389296080120314429038335134581565923444173482018798652857230896562002374112873944887471666543310547593793341401905895592622419043694747750696546053329464385237180943558759642145324643866950244302756014294225579031946628615542396606139372452200236502724092120878178857319459880404356580652957222576378150127730477134201423578925813361138475866021086585428163821517277942180276258453505646856457628553045089507115878800026138713478448260260992864898035993478356878179647833910647637732407620554936188488200543152925493266849562601562460008848335434423094140890353334101877989169467979095760418830553155113071432442978765001498062326892831210551077210110681240606799845936624030993060384488792117832638446421344318623095983393509011026925266520167633962275106501654066245557475033829981994673457055008553711588410361258445205457934415050732007236102501460059813084146508886577073163816356000579549821140285520105924403304546031520652221360452040541177265850653014454807364654019852115610496487489393800977831559621734785114767648275138451189391388116878595379137792806833485737477157205856344142939452458028571150582219029475733024733288035658885758256407120043277205457995879921257140083200051255020644170304765004702920238871656348218474916865876992739758315803241023493076730428283317197002101011269431768116431400819087926436302322155361871140327951125902007763129338507612106581909695820012413604862511167398135982238475964730992141981539338832872956292786482484600590546387709892940485109632956447632765810123247291034979894112112532152469762911449977286852315895839880633294097976519828491447387657116797918888878305947221723073017033293337080092714975553262221812926984765728512481285023174513896600913523965683669537218045528713302257994852661295334889999894047260831559147078021176042275581117024471437776159681549934683688882040037980203874714076676102252386417428294107801319450586028648229063046430198695068980480413760310221969109903546794410376849183872154407805750165995064120031512559124994048240123359104668161338557802860961646449104172472162461236534989962149244184478716380498302171289538408813621826132156321145626747833169872116205105883755531916146363572670810210513736016365571695353198537719361160503509846017785348178679949231362935300058799149776262802609887466020023529215942762339676474194083152554703997020971066414162224400642164801727469323496093736221545269133483175280719623403565926108518141068371426427573565133632443112360665767325810511788379225459264932242217334011546205094326141395289038723298427907232540187807989523747980145260524013488160528709528074373068701046854854166090768890415625211899897169941156348242266317780812506534808639723209275083034511081688799089163551324990633532742712502288599052675398429928740801402284501018634932809248782670826423345912320574979183025650790787466928605067955387765070223163777735042919904336410943227905224706655118495987188812191063427683678061153906956590823485834778861811283748808009403358274276771595109879705515816983294358914811265732037376655288300994613730687591004261656761778667123558211263294650628373154351713153347350609220137297672698484995119122047121283440435217196628802365463023625945297525989331045518208894965756295286856662617117654667422270146508839283529095455149637787718223550579216011032482941422532084879750748054057405448474598541346792519686938316474816655711418045899057661826312464067445430091061377899913624441225011470231377638585739370840366369126032679423055036739695526710853224266587756613829481492686099424158296993523516085892444402751178244000325891253746502946357890507777436857598873443992342048443515035504178987660484739459998726264671620934183791262336705699443087966818416026360969389650730717846175798602181197743455552457101124413782594866884809964065854158564668556916574762216169504411236599558820418103240118223393019538171082310659286027822604998090330687899264234424222847991395863029817150457880522099019622920724300451478594945112090586205764269481100627974399179029220483327518219395504661329739113679606265081557647709813603387768626056548301636661259677323600120696101733781868830346648004907687576062510510997368848299147084559657021189321318893490031925216416495620700278982750366916639597989296195315961450220592471791682770157317629172282756363843804297824160012613332066209743444641694519392062454864931836445505795800485440896331451574697424593320475522541021755299067628596587176461696753547517068732259610151479100146929612265018177218526341814629986569646338192758217303307270165047174088027799501788841173471969461631834349462594768267852564491241300274047105417177404421569777347841206234859067359284632709692104504835007201118333644807723858827612519449319213105887575220026914393069649242138528076958019802751646097064443750707142100910552159983456427365633373337079093702106099299087971054943355852148516229684588629306899596927698483857984665181668445945128577522095878042151977464759279785624925056039063282663085501973435766849913058439767552021741942426866184075908169351597590391184627141825835981418812211223828614455395389513225483684203926114391318555839746437577933110606154371841075452803699671776878693479736160323683332009948524759357625465636612829465965322372553616370370197539138131326511505218255972838219061030596376658778722752071586506795879622139030229203207309201940180558310078199183376432851328144022189113736152102824151449115516521982389860200821807123582966228769772151508445302912450222365662115431791399544144579684151460715296169763251072437184693497893617201782636166053844109924783299524158684250173772954963286891785179238535563508623591741752523898351088677872609970418711187985416813920921736304809131766481858455405101993460578781841847182354594622976369415320820606275844174593559830164981105139022749807081953918104958856560896963567116148327262143084538038424511804168860953202646692472649381078384701376289282266299618875607895525692841600492431831913815373664713336032799871330837940736862294584725912050027383348095114570795787331706157176226484979185699977969245829127152016449201425850585623868739200164914820754109540890210647070933201475002820719558152574519209720862623531894442929955478897232941263216795439945244121483984168016553591284001629655048860620048381195478932784551028269853081572382124725160767411906591919652824239440351285538236928296453968604378747642852408695941950061986148341311535663043212541177375534911871674038631212667710543646433789991514279370373741946088692824612156227361293193020229211914459079779845194548122686157664902576196822244645469182037632387655466068918597083955926113628566841957186223508396511245690129782210737712017640427596882061370334443585390385090330794061093964825074034719084088657470799180262065380582374474731104468967469587366204634576697532967742837239359126861421003808885981625249666938537412925318740107287553962055319995840430915249403627963066995924234077602561439121267153767988095704363679533542724475943356803069635614905970363975886363880990170257922770022530046234056131710308314635019873404230867537849886420336482968606308378240493513198368186876659384040620410328558749067102360414609799444458201793514020256163208878990064189122101945184282123032725219084089801410281463939610401778257702270526339186216209703689168229725693802984436225813365947218290749560627059118252306040181701326575181300575058653193487247596380697316976150890793726268769391857405748215675094550330509981593807397119161222778558969045993388270960423619018482024667414809032552334158515470770305488411845613645867190125923203996630339016881589291684050686689925176743844909874674457462645007157068064480309006344672294834597204931183371704894390793680900985995563179116093597037613128929023891420329245234726850174052033210984330368817874054714625933710829439559190020792981723550749778037116944089546891962634749899659602905000489949543042792425620389996113702256046058524376727529251591777812393734760186457998606611155200887548481200069253893466819506365970459617218490607419835017437865984374486065064967120584270863109099525126593507062033154087633971805722956638347606002624480297551694381054036023233291892553750791348059719494295054468833330948689945890241517675985588040530916169364251558534038799157195216360325301931069313286688339995602708296476272812576167923063402845077050953906468805308365910023635737521928264065870478869806120744888231347981226744323623154084715952900054647494859381529647706143773402065645672641026350138836574093972380118783252615165844425467603482554167626773660468406098493457056155968808598742486826847196564914111349577651414305999467248696696441255315357491631781027007301561788385978323575017474727252807125670489502059800986326220530403422370085629889714988493274674681363614188895963646325173507229010172438185180258028740663501886403351764006060598597446713118367267794489673577953066467746857492068463117843216391614650675444925546190717160672879754235629280678448384400431460499479403543524186919893010626014248189912021932306275836292142425726842283991125220086812919801570514870343440085559760439002433569671967752986271249118455080808539637080267756693683690598115138706846454765667308148178658972906475680195653222227028096023098172859874333078357529281807935076863334507277519081333152123383226320631926979640313780682742147716970411795636538033051358994623418066587459433441160809829409051432938174207470452927190622162122987873395045739595991537961803343066540135542976721906480853701670017558356709861989944099140505343590682809489093480356490088877364302705777532326195531860976183057820866892013383788468410740191137798058767562652683441245540976148896453545453429724444160282956732459688824243252111116713348511202094628317891407368005288214930392605078175088660682407835228323144845948241199109130240358460639483999086705324649113091806121655728538169295983405069208771377482047620800970385239412362075837591076211831097785941084565380082796144880735384752682795426172427163310998698381083364921045337322336174802242517564060189393727680752133794948331815184709514945676373947214860867391121300628103554709693879280033497212770990479404707009688819482870094459676879673804584439224323262134744586692586327526464821395568798973965544901772448780013714818490977335747629047974848339424224398838091907711857087024776265436563244197133327986032969831563375092569935008719515276227485888857585364926562283000904219166191706442340748306209054554834255548474704476923422261808940685963255659107625909110289515607294177480286370143708940531496434449942871149683656195424139799656380047604886206127555795748957026527422562740595150073381680327045792707009603414855806249581448399595987403155445888756868514003434020852198748260595256434982404842738966755180986482635199886387435300291684736884454891885266515813578575764405970545728347051738133796254178195616570285318216648153083666941134149415990649416917080705722846456677447236883299906703094328408182945444836602676868497761824807985014384549155143772252556140299609003578481159621420403325523696349525005585395239778521309799294853790236674113339448750422101381179570515600519042776373611039890708670844730736356795906280325207139033485753477316241751001186696693464237928100795898245060054778709210639177307771367098347593793805998941212503924583338126329795426711087319533277477668094539769226270055485014144115878153958153202808665563605722174762675048405986631974282469526556661890346203589829375627405447394144173255147015004769804137501605698123647178035249348211965682347071176545587907251520796316833329095481671014930703772435291283858315566505995292468211442467214603626184053856215037419932967497776884554233978151070510511495560461162000661197470218830122433506962937808410623132262201231411543674846445886640052410377049025617633785751949708469991956484725081540059378274432963169148260851949683325787204137563864352505085408128737154054217534562759743115785647713586651368960233894931189275339313838695851617865224574311884674074767181312696725405459260085244262139680009946359696615252484582664400263615428037303970062921242506041105461625936695282577264914986749781481926445033850525928054879293837678115216920312062199273707382220278193209798548173729391086567872999678481627222820437189776906098660194577025885364024813426927888770964126349974547668060654099239477262777612593954003057035988052583036841003053869552690850055023689868733046460624966162925425915857384733004202706657742570596226039085634786587794788466866347228033480397447990599858356554895153163504014506890998215329227890291772706510448311923911685168685518106151753718122743048902765805479435407977535368776773873700284862516759316434101763658540547508502616459849430172812276068284054150381049587886067766588627446856940147338843265916706764784052835815600109725650982510362748449823966995394876585583020841611399603267366369833941349149571771810429846887185973976548790768384172199665432865757252678157349926792169375113641425429103609107027719197135861553002781337378782757321951292710523771571568440919287082852033193561048714598902103894013405024011722330614182152811270385798172654393743751892558542205450223134662984550773065271516360077438255898192502464872113400342096412307855782727374488409180835031608643149649031106971446239339931786965204453191034630972256390619381210214646323071891205314950904305293760091205733473936773577198697050328494613658130890057336126173383188062339660794076856286753019073720912193167792032578233855819852384196256492456102651039446637856111022351869556450403394734259172179010023544480640320108485852778914309447505533124472225853762707158821245974859186114107242128734771218567323731409779773331641308479916218885192563194760168412387702392127564227519806559941361974807580015050713902569097273625057647549168931082885432489282722033180206886122529167447900404501391760514204540978312229349438637510016416427691925796630406601427115319216341903992936199929774078314879628138031157231343626585923175024508571237222987705116420702974139735838610012670217003824834116214486209366442634730210279146374342010389644230602471091163661027386861224579083670477955635188387285013572676144224489025046700183535216206144714815163989593037056331879332900589935483300247843029437335905999212593924330178648542746315338502450479933018217934764993658619393568144346748785074129874893473135100684846276876700754016668212953409844605091513419817440130989903738990476773883001129567678585862323795804991276927743731590578853864853292694379010894441317393426080826566234782023698525577987444265766393898138373395171339662347939894412182099974901106603833453104843787332166591615931503122875052214531786023230595962723275226466485735362326122565851561764049823529912016976439805340612625889758847858154961020333527127333589509416471725631835768870454886587683965723662160669658940208243316169536890908348895545754589585746284760745899925082811908933565527675812792369244601318183264088906489316171024726752412112373087749751420733227033982788424784387600024299674704370578903027378445855951299811291246597396776884228261438193140578541842202152406025872642667774275056623367268726374554751399143205394010343090480428099277164601605217077517205830697711512806357198432744288388676499231319727764776093184033634192204569943003864650910548648310502209772749366186293559981479072781770753448690009811619963192627793267155963827184932443031179316207278681758702704952142919888199540672251661978462349670098093991384929300197466798146243111534793976943739088125774290206045967528076109936457689417744217199213292071213090382142198716182931531358984691786957532407781426161230616951453262181319149814383508594502403730828406346000708636007436895243756160857748247492418403908831458258834819528171015837997316185418681213614400803287472491778935913377004711740259877056976310633379048168852185153942608936199527482079834348354364527602347626889872129698670699739003631981185412406384842910193478708003155827566083568544786928326481419635682228197537650212329623940432034335298274600177368554626228608388881541192200540778665168394624957585925247776444459848537155649630913758854839422470303745405182556506048174085032572861189148846508833281031897314075173683320170151323586496216711495556596883221156550723937812973259464646229747180453848521874184282389284213885033261510167904796917867032532153425320040800199824599600456594012042149665864878746050162168695284966310089066043025226187667902881076569510036347017779894759865603759903091913206630185195741782897660948629562118573916501358394061051702983438042253329692606091459308613113270723055218438088352696075795738289362402549926528829527636883289315431741710435116987622991823889637870295620296252654695373176095213619555604771264273806012175919120726714369879993993354120407510740143150266717253696000476473038955422971559449201620332528993075878332178152852981337700491692512871554679097473450483190022690925141805503857819954681128007135477197412303039408047222311763832941044119044816030310216169036813173590388133433110502372326404349562654684872603716926944218493791437943004247116663829375360622772805734711103404251648721053531783139528753743154068510267226844694596016142404365206828717198920755035468404194577167151774831625286589332202712359096373230729886044616198756509258500566859895308394559332929535828058110215627992805400695810612219385564682116466691479152202592486656050789243895932804064073193685962011654637703429976031882084772192198736299205795533734574917504760641862070602244810996307791474461892034136859629137885333646602437678289047922677451257815094017950207861566183091370166905526696256646984794013138012900398097461050163850482449917768788348392863054573130866397394523824512917394449791359688804552669898516494995882064867134998945825081902547026692979431858578634913492149519180825220917000766955473844791774763796644207693634548714197732564486825192600836284071783148149995995688874740956227811147809692861162650171219187881322737895610063659118091413506164615795343557583010801996364562950321537554607811941581403979710530478407550586329891456123184123876936347753709588656262445318090015114248124252783089478721550487831537114565216488260420327355785716307542560806127223187097582180505675990840365162033638370631098686038158910370307896401525269146248209564138386633263170203820955166718329532757625336047519944929810201450278511835619796808290743213189662810798140191903811929666176187327958825926253132443254531803632115047814747146213949843350732459384035943069446545405315839084000334817426687927841272458801507688928290830551734510556897688441257005520596007313348402405915570609831728414041067181032725806186954465883498024484018579700242860223421950477129310060066288360780880100037544139683433432173719001626707205151511767154790247964952113756751758157959583626696466509862789411370560184986120672844823111283310024832991038673289056016205907354713126729749008830597579785536591915167424269540908384027226808244803348796765063951899528658842756868617837812970439771820265270166136645815263825454190850820034628742498583878027165803025764253016039806425263821893488617466012417741752710817507216450469765513501047187311574907988688732313910085744192674582995214106359483738457929405082234350845751882126207353960087521707636405509611200856321353340696413278270049449131442438952192171904587385517384350789176968466859833174176046993960406401783857603318433833915677688633508906106640590417016058087709194392229205579124624769943830745066429338169788918582852846099348779122230116969831072929834308727183290719177585189780640996214161137758684612364254283129652917578055180019034853389858299931574216252183607699305197043958490929903104935684807975082450293933705035848339219498111405046365453734601126622180409868862936841470771447738529944352072429062929277430442551884898746695855631596803756266760235793205854211516901050711680571733703783758063996304387223324113993434488391444948356820517608469834642834586798325943116676279924372074957899730424553590119752364370669226087979439747201707984574882504164661406980573907612195245174083460833291744300855274099625140346239300373896318327313097209268697173556948963782463264864794578843542917984508764113817689599093546721970760885635359763998837426158823630908118609077336312975518426916871778408500421585812741325811340599924941373799000591295254335109732232982872035280471767012406246589886094101397550338213116478137223117308312661590532675328831948143515503997351953486111386820013970381022680088759957342141352788172394246965192145222367889666315992564340695981476750871114243610889478736983836061809861984080589848148349463082033639509990629342780052848661435683946742637925852250830953213017256805051302993478822317751911155780304547143377626096359929659974683144650218586170405346717501282433651401780900228642164436572569772474270023342864233556958588803660245124488709680070909428728178854733335450557823975469522568901050006513574537406406741117579094807480390605877331378615280717477755811734762267874085407823015789942908655503943571129161819904420461090267208632282830913819973639111341109103778141201557156077396577461968061837418403980006892790927579151598984476270023932906830685360691904543650095521138000359065845989969592396973717290806270762176293360189180601249452909037258155576351076923904570356461946153721231321228756411696043064398159889900134426501876245645151191185395032949115554258553690030647963022633618550273825867608816544384178167171379652390794338706479643784295673030063335206891296850766594692949209569868652939404330027588880837984851162797237761690696574596647977856745031639267144901063514607935578231886156088430973805956653823153596355931034949729770290814616212142689666489184796522730769023885637522446508180100635845148574246897032785091987177816753099680565982937291240245541196175951426447216892835048349781414699937901553222455190381232170870605387183864560441207638637753882263007831021848722771050014873704243815644052359460569315206786708551164202651468912332320933891377585738617994105572792441790686400080254071605950572979338825608924069593226111967318598827597261051220788220307132593762279696750007946208691863202162052216785014037145998904640754885295905259430104600153257176233827222186772556479682239617929045311210034031779795399193730432198341526848553038312736050523362670558767753394531767700340855239772143976174549390840400176642899222286009803345467265059756498540309460392329957499983904982182453316877014773804143950160717404674958030684564205568787788262532479521474154951052034505903107302407643361519551698361966365899812065501501621504679603906153428185483350011322570226080141375046745999242367547264815147971364994021259173099017822568172232086801009925046183552134544941367399891803758698361164035725010336017527602415496376759548864898264963093534384483018069148705584084780000086290499800418784053772159237151334086133653552444901036079600106479854096270501151729996886942047784190490393496072570815992416490157063435511397726918813663208958922181057930555226002816165400782492892316206543427177051097621935505895411043937188058350192258450413314865388248984063634763446458478038867968180359139621206520434971447789240035304131096402717222223215843557346605951869490370379343728009439482211628261649589193147483825179117201982762500908657460468308640747074924933202234303565583454812091612700286257944648537489340961971058804589376563250010839162331256460648479205985107795858441241116722749246566088182639535011997974671116605713553213403628147320111501264392921054773397612129491758700421406265540272620161606254109661936392129541039400051745766712339469553186065683850750196089280183812842834406697647528357166723021969471853533867449132123354255497323227483635853064798030116246060220611556707055078173591451536425055939069580698546254877699411144864537243333307382418200926620834478055598327693292216482880916721302230692542236612752673511079704482935697521131113042003529928039764791396617462406797802032371848827047491235411369840306995672949558100218274508189055508569364537762380611108204827339573402289470778397596126469868287740607581996301451971612147511595771589970375954809901187681922875634772350677855877331644018029774525033180903199563013054242043289002941890441328843868941456740907967795682282779536260458729156069610529317575441420898288615331262711415908127438355416392983236103920474007889605784499635080566434718591367743488180977663715819156535931778779418185134422546543480404934145585778897384102893141339656517558930517741748995446100777804818538798546761560018238772335030060585306669537143675552693525391799790043187003981196326554825515437925624900324267536797074806296992822650779241057184205392615294236378950586399782289084383447414760955542495277081719747704324501544897254167837403181808194112688646594563046317506867414822827383503775863812596309703630216571703356612136607368722478273887406743980915636385787603534563352426176797906395708112272047330541082203254670503902660735344263199782750596597410949145559307008219849826066676900071175554091951490202223439251678455711504324234420588101746085764139116960301168228877634806005370730533093741133086970420248966585372833428384936901819929799010804446383491678416989445356386589809931647889857310523474280251697093741933804467608485201721661863623070955152229831045125376542849920391173139972844488233000726131817975923628285251805997570009162716747380318731471348947923601620818902243469490385161655732831821220784919973682569942457194983588418595793788316756964378282576010761293323798236278113547993081457839316524900628217571297723114151370678281002835150074562855336843577106766114236230562532366496106051997691537658265827185540472068875172553391368620579914559826236421303935252878207647252615903425747975162905399452069690077975905150873262086917650062560699982253836360347004885230624749308368244087542064849032170947210732220829148198105372336833790953647787606518888533049922049401332370444583076463751469358705450164965004012949446726431153961690633516535987194265059535469532036128834621349103499952519295337064325164328996702559751897006903009596549259450136530046365318279885785284544618888280511616258257412412875936555383465585611155191415317684735704260327014774039542384760686751429269869439105848702555706024284021617568368323972020169867866050533500823865315495655209631317681732343387951775022909692188282023958874572440627742454032842662497239797539324987431040556308499219812229925275010506456499014792075230334221743199450255399419430489842923190330287424583550345820830693635611653685178364542770998837121552547608231134101330183447194138843558156611756065239160287940350153335648960396616243219144951643515212375380126074151333733295664986713137372916051946763382645358545503794333414978775458132323193366692161565403393580920118363544486255114359151899929803166536583746106803546303595035781189765802674874929659316588481692872856926269914833402139968217869326066003127054146208078503588875506502737461582542888545353640467581735876465522900949996107118137209204532723708301232850373106263149925145017833454275724685863765196447571487336695826653046476673985280888185812652912553105730542468049402512627196559538554463769976187453726814497748878201143113050793572466410503367401058159062535632879372036308695313580076282244065989598060070344969726294612220147077730830222351461167730942179656034454645993051128297497098671683435488517789837818190639080966415552526252839335412547567981535754846564641434876077513478057322285953489530573057242377311695975386964081893593968084637569963361755540933658939024673265934640633350397482431906799677232362786224980232429239792750804281745360726232621416442323664428026441561550841311164220171535480504242591024263530335116066722944477345628630985147499353417173337263853413299625767235954831646803994279272983885249740646620017965200808993996744266477865031826654773722960052646325322343706259600699330281050673272321519219596457573391038841163070865937036439814533503723388819434013940630307523599317891401724082425606894940891653202400193405704817776505472834842800753530585229704411573942170288955868259926392593449074262038300903499907232033155712702499097948192743049737548905360146319642616711725755922241554599961012531956106634390419677102444310198033286624213197412568726537594288979948572993765928017329433184343558746944320077487274518742411259515170027532807845114925516391351154695448681102051227354936043761855349578593667682435798105376312325063023378710371426168339124476318856602026064343638061028951573160639252807378014148331652057603120624577371762916098279233734669782501082299797371025359009874580900696213682716115737251800056352797011067547512453901124143549793603118909085698079468621384707883938403028567369493483985841377132744261165293961711163139116691740657343516451477939518727314368719321142121366791163955782215538380010331554906783176876402280848822374550545857024563851883580728381147418452647681634891467412428546949504439013550854144404590940339050625147693330840930670298348359701706739039875160327704790700554053824194781867028213239093898311322216600403921810034136382882241815111656823665082684839024833701574518023186174109268268103235991427643798167006360581534459044056494900714926833400025056887580641848586120252621132554893857163330965791016571301537881551181021707357879861951317457244007829792445320551891396155995139660446793274837734500189735661414446428386516924707779009447841074865647205728428572116226043638481161762376410966644636845475062704490085698762742988142991551494184601447012431343071416087034682770947574152515418081486030605744709038521079943486043624786682094690316306496685961583834327323098643550347452127430456589180263860722216338259614075497331488676268730887864289147420120163021329858049486973294594991872114530495791108487719669504356274783915449179181084437542372691478933169657017433496997007623484316611184482791943254008479739770555113129903072253997793601028879418762239071022953930843562683916702833561592726340283857781314893449709604324071888341673560835575456051511857076104161298732418897439286527983970394393553180300220533608257493494717760295887839671699210131621595241598191083714075063354194651570625807551489174311322856529556180145334577808944333458452785607670579171204004799812353152089547949520532053703240555270770443804687342866223822999575695493053254177174861822513511635425836928629248186104920485147519894956053421912728291437959117124253068899900581339835783254148195404206341775769796913303990376427027680094443752662373292760356947914883896151670034083939948355628290293606849198334086661079077836853383946571205417863124709541347500998239159197911689659715692525745690117467968004729025371008624988994411608222027712319193418521542502521005715151269650664376433221386764636736131061933518289064042373819739690867636034283792217730187708689922244320546198722695420958487556438685204847091622125138750842789645691449011414225877269750910595891148699032741630965524516207609805214304897756116383876587355948248847342898978687576971787623475038284759026328199096516674736247843445830084930490092703300275954189898418215172680171833227117115685919334631658212984814232385834203102112466369933788168122246748673899484574965204983254452646872550224976787212116436175434426535321672508909637609698274421968211840428333307393926211350357680069929297803104328805185413352378444433917900242718609445716860377410190173668358846900216309459217282739733866368720495956599415528840330127087464356696604874746282426275502076800741476435784494071145963020788767694531149750186944397621175423636273516959883525717457400739755637922719397396778818329348231966698505430902883039823012730430012739062074735731200284435675555964804518726049140053179455198047834231119419712947065073211422210666715389222047175303091751643695248900434468099504953747542555207487678188235330705899328462354546857858320068977895872079348907272456195018193925888207244507987974606342298363358670504940542582005671945904802476430190626684814579437660224001713941401109397124949243962061344247448493044264003149069935035020187783450513379620225289127550566211219715075820737758187206345221285865828930587716362338049996683721995641536434649038730374583259768831562620583791826604139950379806333731206782889159957090425508514165269452309340032776642994900085974881581649891945143055006962373645938262978000589369710527328496595405652601184856092579905350321456076122239670657627553377948238581517868341362797248779558829322491555759654462457730652559857901731689095386125445916314135338656113527349041331434824676739600453701923078021979845567279786363885389216274890724203499192977925619498280694960544021825791061644178727970751537299951772641114538156007568079389958566720361317242288585698904645782610242338218738126331180960600146006571471734153044804667716104358766735466382245628948444544591191100145213890324885835910413332155171477779683431969245844739679096626626329078724924010858741525325987468634480649800437884536103017796260535151131300206728919924913611196915627864051011957428652360956030692487803083006534757319649771590729432535960096643756538124486847884833528726412182717513054050602658788987203221947355948309338557183930197564279012086368122229821093843472969382136863855485355799677914936460348466555401674395129028242543058340298064770021150204184318301952729760430827887979035876770827083442391648263415677578183589846496729935182112999490031990462476514167429408069358953582261443284941318252713303038085939546962651620790384874669120866844754873569280636746416770629474504815706907062197096416054548547186265531395518568538282451618901192471140485083819027131631373065118301179393026710826099875786364417426298733839909308655219055248265416878183800032186241645139766468272870377673394729657825208282561417494944397901921931250995345314205761013421546846889109622943015291477764213506334064045444234360053521959314127346240475271745073420708220037971338072856554879508299127924425986619404599460972339011983154191742461920381907425685452400340243425722137188273415098214476335864181580662044333852676198997917834917870296103046273055943409470237242529622227627298702140394587216860829168756832426862807230775121551768344259881718104704070555097263317481957805538948952961067049546350101819062179607411459838783461379207105675306124716865107386972509630775258743237026651490049061240271127279145065154899098951406479471610425092123982736628493209577411281424491856152916365332290338608165843210576354362102709814589389678629379709878367140555681210265774919659718164895462239418310457210760883791574807078139424817959713200864643346488777074501567887940076359724057755324466786616210013664806314080084043752139271508039244504168326373385580353545733168778699531246666224653612477361758011578671912883125237363564426737871121901053558744263418737829223759768676976521439438362100560869985485003165556384241101803527224168661639035100393039975598133103479337229933253845879533619052829281702352146801251561973288111481422652950204449243777766863942488250510623654357041053841905674129096556282949722739841440087990406715743304881984663702933796956154806293669731659535213376735755258635420232329544397652006719312061575579554188007196717975215782376853656137140782963933581272773700231981875019052685991865924599563361623965831966111467111600474911937967918990971527320591442641862222493997909860789945330871040120371952734242636919089736483773866501948071549815268968952877966388440857657020727788384438345758763121877913811164726531712737727545638780101067499808665710855261288920703302319596278991608193798103845666925098479418997282774413645796276453902936130713567137909916710322878778538262578670587074252263431817640947789355764380550543875574179756969502729246796278139375619166486437007287709813239819314922893605335748208722044524399771686077243197267614751205316407689167814634861183022797141919518721873821439932908557020718371661458777308751335504148363818158496187501787509395563457439267742109377077426944967920187976152266928401887231579983323547337251775984630237983101973620029556856039684899859544657117552682179356689618525230698267768800354554771361709035993676221876668451703510399567578437817581158710379770038428622940956222793570603581215884118524169897855499068105656714184570286478755082456579092307874883385595061077947043752345788354638982361137791904060355395590192040742123396537755982569979888427670700263069997379828133233582829202262759417182982599191920974303813790146356093807476305057516338638629507799167593144317224971938203313958380908867502411284072722749441776937905753310243926078127026236316048007853612638455265078247643534231233413950178258906544207259031807471697664576117830080083560978251758901573528405534981977833792950261501764736168121303103987013076533421963842308441629098851843727129995598699456986610316129015793253820983339992910747880890910271855567698542263496473063894455109854331113103683514601315589924472765518526580205933422033394389276720936454549386126717479843643810154930296410427674496309661441820868743604514459474445349589029254347861816216588220611817899730288199529156588786727294920251168460224217911470551739714006405386490202499518700106309598949390065057016010887910314971329498571676997074565797701893897636601380979988040738057984241870256830589447005992630644867228941201534029205881801106234436018551841950350883700515452015184611304394150747041191669902087944414155464909516585450507679820215554725158691461889079006826728950128803851040910139176494110072254472943613396920575250330747814329556848128727739694673642716111972333528647133097103224819832300401738869387127946495681758761208708443474629462381393381836886538183114330075214821375614845742536556891943435134329155655806214897070877424451889938235226358393910571763781573893441025834044787851233667202931262704081665456747167877147403040387251365378659602907021979975510816227358961328860471525973601735752906650552917608631284298151037901606796860139034903816696750649907069135995050784569644360323853534004994024450080613473982609336012301195433637130197175579224186744146743607532121835526937161550995959917188205139450585594128105529308760267935355885945933883274873207893705631911517087961818924667966301043360387059363970810328932090407739630963006277398382558376562517632889897992952907261278356010118704893778272792454843032766112854342205041828003935413888912053228886701373285065010625847863853088234257582368868448549182919695574439043510702022293339120023099719817660148767348637310479856353191444727739293762184089546359410574256563066564890477676583823286565169534253151160884736952726815020742890884051167152788892264306172341267358985868287676784590075460680039163403273585402888998397546591053744774396503651728588566181101899077509363480304379570727549459038124390652166182098089835551784945217431718269035716284691642037032029419306644250057119238768772921192612816417952578927450527844007569525295583325858542191204737267414200008167730979872086525700767024591019915771395869301974805743389016345623253923420647471005555658626142750087584395663589701795102298616574165242466515981049760625064630955005802315247202914879097063506769018135315152858481938080079050436506624581745928580366385966471676264392557621355692919975587916211170943284067730398495796982543759399343848283932313443900370174222160482494738248329854671964901822057596404233717214225887377821842343210388355133946693378598155337832781728767919259932644540637139446295831657613068696299340435605898041728165150996437695986910998761560685019957801178845672693032399641667054522451431833773052299467577636013337502266876257932708626314340272888808330752364970006647833849272210185166090359064342108715254913637742484875633448830860461235035407626130226101858105538547662557273001637967777794796118013041647703083206271764877918670299912413784212678841155089190628616058610959933374254114880584989931023656419238188297310050522191893247606314965503364762394876236350137136772224713920677197151459185910892770109492598641750693440407741375211678288464414418808955884253224172855963129353225173337876390527081464339450156723226688096400981181734083405549994309839988902322606271275138247704301309456169969239593041488339269804502214330201529793915815968196357035076365567584013472875626246479245141064905695275208363608644568527537534649237761360832456960641305755566505030614354032057324378079572207562448046489089529779712155168576078125135715288615601585742858881527664886928132914037742622771268767794740017733466110828377048701002876918049981160407371856982130312268808428175719077308998460854559330708293235238961276734615189164972519535537757583021305240183880176508272915043815210957998456260897069429049187464128299556534881149332747899528481732376397624090059334175610169414535356646850733149187679781672377845520801840876150075469367162968008798308961055561220866947055107873139984689037883852443107452930861233971835329318624893111882858880342952106962438748521192816500986809225394322621356518794109699751475505924643192498825822723339643918063485979122332157871562912949720101504886282238381940195510944098306536786709925309049255985668661569019054895500391066934783831625475016519550942288821106020957038915877649409004275925362329311824222557212511937697258476880550605947129591165718850976996597810900175333096549107662955206473828426947887133612501900177995654744590973060096717624577785817551027829411251926302236148112412087803551542701640134411723567641521187499331280143929446668306537970984499522310728934005561469702815790646213738110884033911662549305543274686489733175957533075191710864153550266670618801809776929062098716836575971456941949452600355157023922078513580410161101478095659585512120050765067222451937812489016114284756687442708256394832975065498347739262901502057032116601133230581738634272179457206554990555969158050404801368891765625104603212847909812924303436348767996612131544160444488629638919862717468830107924969836246260203794478803929602339564462471403218761186633697431920134983084894418722460137411135739783553993123198461719898419998980584950392083819357843576493582005524322735414527760145987181578510001122440211644440467406724652219703983377859692970105520260981625258336550412480509141193488781025767252448977770814807136184131365289515794383820093877129270017340930590195333623632623104304274180449894143221441609941184129768893229069388081505021113261060464973616370719821109495163552484337050454499485522636709119305815867662024501880877568826812783130689785246054778303373366049341413177528196930419486041747136735846329095594579797461192871204615135095941680877111670915888270091632964337398259800757173301900319833229493297044441145263937986929759612387962999493342533844482069169217254577519847961485685439866123829100255745195903462348777062266381276338361627804707625649656608431060428296351208881906490541994336371317898459248851282360695750476218052740390835242581356426212809768332942645324915075425859107046458156719112345408763665767418092800573672904338184351093461016348897647457217028372595757604410346456309546011765630075429158234544237724291636316585603773448206667036955533177645178281873130136276224104940952766241419659628380875346742664888270620470643139692758872766107162823144082172755630697201578308184087658452276232549123295574423439060899005683354432096926735876929248127702807790896893423865825280762406361308052706950374977455476827795652284451955784552388982215003625655605328868439975043448346640835749746351690703123037502359427644892635525647821739524443954763955641783508150942214320586408551521707962794259044030031406346292320786053082769119225209433570468982738978578618493843570637719496355613302017378334447960261849801347462665861154837865413005000292973581765557564777962925493286640665708036835483414410866228783869771890466784146106787630344659922861442756669403581889669978143896323841128484795530621995930188029402007478291127108991866927119637176844214938820996063401229110365301763782274030928602130811370773566389041064043869467182828648652260039563513438574172013396716087112831383568961899858967299729609752438119164439218288927806297101283522604504135047284253544806395941343966485273774924087617653781223166241735285583199393790673522410809655646456097473772579856373381166375906540292345005675005816689917434734818868059485651316607159085901192824762578759307746005223433450552761100232885808387458762821925602640201795763882002116632212193229301605413835518851253759725209355421450289083423983202612406232460750765058152665399431907270518819323612579397323619240043341667886290430852313185776303693666765531041273834371814861254615770013105547700635425745396472331260246391045076277245172294203084881103212176401417081629424781221201956101408949057792526797964437747413995875342827967007591124555353760661094714416681090493847797569360462034340960935544382024708005466418152110157606965459793629431291618554309456721550510075839575316864654614928068899449459614287127799006914508821673608462857217569670966349862212779818929391970662513500931877105387883899964824787657432248282239106201577952713930447162150146329089674306735950287798169564139795147543269077738146581539034732667666737773571274101165188648572643438500032950190543173247068983114657474653099521237409740358403978818129188281767934991586949235023080740315718383762110282587899156951656700192534774665779891188032421295924490675759103045335043253227775125221498388831386989760732682264032479664348157567287547150832101043682797461468095771773077633698340725601114953951071893340503316950507201859845159163514982272725126159671829130505203960426197344844414169416353242772093771173573311144081769840942478560727765807982321043580038017152739122615233111952223978413349510317053088809735712131257475724016795284830431645147352876890097183597411131133345652865048605306829067198846408490387840578078745431478948652375500081362156126202114436073153610807869361222999942542123602614429131003848464224789741903465097039526988186703256774201506187311037620939129842655964083406026905584489976503956814388946231986158846384314948702694894132549525910934607777214994233788665166240967864539568027908437823905867586933580545657415601488755656464224751241369103744562365568509485479901794808348456165867637159211491529968310612682795603153880153984498725302379528862853270191274148295099513845971269460481274616939986372570233636641642895002003175991943769162336568990828851579435086679251907522351711631647842816380026288157810081075478487831881617275784403364935160514000904700294886743262471077660988596272724107751623476448714624446597188276432087348862466559837395767140967036818813427496877334653522940247274812354510834398387213713075308793133489625744834703970369099138622582424770327800281217628165318468677368931803925040979922686389012596165363609559444098454894039205300223194426018894603484750005251605784526709665328165781216752525239898395250868978284997192388030016929712137412583500283044032211376610634435292138790012765743661780363732989620466462048556437904485208556540965352286721364678973044323734447330600375408981031033845859480881012981519313596266587163267020113673646346903760512209013402426567759993642747774112929973307479491742358280651335241457601444210344186915641023152637875501835311884116101375806549989652908445679501664231153930650593692534985128300048116652980665913126962173466826427686224051199050573395512244881287272918894079339973082977755920361245696156141338993747626661731203498521514460366589219196729208327240213734382525449828068231623881825799501245341571464031757627309354363720267477909405429250984850661119610323450900995594566250930986565259896258604704081252702705001156410793334043434968375605808098415060214174369155764204239187501181113553412004932382383763814250025774769620509204448644224399336412930191420219463910023617885555653509870488894754377872816043713265199502942889557584910727777787013609460881787701401267917231299467758281314006291381566958739018900212079238771694942085832780606571944758985295971646333516085689564465696080589078839249703035688181481147829295399168698020819530606569477540188588974923216818019441892349363500342360515778369984065429187589080299872851511648784376567172312116241892940985268036581698707475822877042759736809247113607095271282923846098603630128751593324286362064264212000524422396017754853209728403246410079947188091922184341451698126243031152730688258062735844774716407395900993585559716540927138013303498208466849726491619432590611498693586762631648460752254651005352446266781282780396009818925306713311779887752707097620306495301103717941569584788671590976283837006074875959419351165857345115020949561463802034360562177517338595515971278312136461582381066087016650243770413831513430793852167632908315063203896883566917409092718333533350306686037857404862662757028333689757440685394051356321262110934380691058320225385310519193529613800360659715843040672281099284911728422536760726283809910068965173500501967876396032844403775884708672015701265809286284266753733526603156755332128567697079823871402023637673746494945930884737418492015238595601669676355099974022181892274011294010231323187258846427211261392237558800248231352443987955405007480804768507848377791379095380289224639095221577921762494049022434892874136596900808593946814232192445800690450692687668826438556998973341737141170905724601958421133058980150873361515827020410562493184794783444856986069510779054135262016975001044309139785878294962395052595140613521187526994042159809440636934414621396100505852937385247622613261514408021202033639704606091402348283802910240689260168496811132132563830728194010086898649280814767758646414904890666372706531224053725265549170955098051356705266032618203309630839605754288342753293340348969064644950435444438712246861979428742064155256965447355328720351407726972451800566380973724034110794008950301023372395464283716384940035279159873174483692554379910087202649697313376800867342569894065295556037974373082822660620134701933747471057089042720491246478883753831856072873619232699111558861089899624638468266283397386504764075030199718784016729890785915373146885679475305141534367544412533476425030319782148684343025088583809125747173078367123429993283695384163725224521252331486644992730085222026467630983888855258288521431944340883802846891183856833885093948457870090965454818755149342713590889557880003681229813306720876077245963145969024974777472534094859261965735441599539946489673618104369600808387626307056309475809571779461958955718561471486763055309851826845490880344285855957331728655486955396663667237942479129343032432797692794146782218228205690243875190278361648050602895246171405140462159560174681569709292565770430340435925893732969392423419806696720281102069317382870848545836288006822222396525322568446527960480492642181704845502756797352639743832530224819575747593028257643116820599103378133652341387989574571543970741048288191827281241597927730586239127241470286203811522662924952415601251247567996127589511402173493316091005273545918919222006646851500943999817869945356431658631094895454955884821937232355102849849753554236193339059256821292378994963435457460230814735641898409022335909072030563783971155587896815726611902720436244149047467136360136290260708579833638247055976872037662228705833078715731306677084942773855256159028556921009370202938476382541500311188840281752728116853037561043339347390483875945222162474436430233420137280668407651921304825447617900140606781184621627426883607336105489363551919640130638877428206794045623081230275610355181959628698172983974964663089276982868296743456251674902268651962510141864055526080614483720742900064206646655046803484857955493522706147715057716469647727987166447910857161427414727276346028369490435932884296416127818031860239003885237810554521628595010147534114064427164572903889325049621216491227528419953261298751881172922745531046688321269104520211582265293385211349075622803595336363618910388898131191698217568671014143171540398351772696868249792038826518806143109999954038527767917657666785617868994711085512143281687428711880502773929482081251813806554612218727748872875191138579311986499334905620862234679188169404370759962893995853545985448581762875544772382595453966993824940836425517678394978748129976136694529011809352232487713948817624625467373385587004815024206828475815168977411365027966791833096983985490662085456717223452452523334755666242037808044505149394983083759250568265224463663396443704255525068295857371765347462180289835718210794869883654225109728657887948821180926523791844060592463454099023727001628970042124672582682789143672312181656608778271190011756397717248110546553900800989132468314050780619131624168698502620870720708253261781432115809100860142723189486678276987050127347388805647857341742073802128680381145305925096634116048101144082447379746651615900775271639998820328036759780166209531316499629857581143284340090651804815487005513415587409717277079987075401455309610579137901355722590792673346951263977091514101055893868435875377859068504462639039464014321124415765481691421412367480315793230023523071298746918180084896632828121853517598434642495911312044645295879034987056493623100650630527306000035677333791404250973469227480887434429487661636728582953498336897590309796211461613381191506036407977498882555946978032058045361965789566022960972494018820346507898333001440421612259734965018604451524661098258012346962523265706996778424275924774632976895626669351995787485416967111689395580328983155662120981545105311225876586682364858681604824821098757508217354380787280809681760995257011023967211655488849317246004648957223131343576275561692377753014664195807618788731096453644723286775265218201391926347946675054843620976267702662133382999301467877405303978939823039019632602102437024540942815869434047571572785645383849004721161721412364890660075986375765296795044495470777655345315149032120722313493740224660312928547076563034860023227702108136448966948353329743065978322313597715164328457658101413062302687442787801003769308955239369104943849756821665189526616601173614421237853340648295424496363225336506077665680466801471920503649441143515810392514838031831171156095501170644847661243836720191726098046226737699486076032975646903776373972266719696772279500597951135300202466564773937160798129766112741678987934169092754078505189895747223092176753184632433057413599312316619775442049929091390356715085448877741013809688052055040623006270571065577422071485026817547344892549152292971369888195083762271810790651051344259236539291075145742267013296445396338109777154774517502008575091746910177351360041383721430065803255989154987291201903672404615700775519207697448994382439025269631795040796157969317258702762191950586786965332236857441649279287129581586908071243233546261906691930560171866441855324173774206770851817572840631907079507893260303463425114965286050870528385725208559458713820443933402779985210559976482726629837803255049167702952367849003996177234822920553182661797709459353989728219817652267471103052335105060046327598115579337704662477031520102466150530648750199064524209602170295443385225337467857244721258200202067623397389613563887546299574704672021299598991961778908458874948490608552484346993146811518711516824954982343917588395190514357547277036823567290780006719256839262750009729493025055534082659116186575488827989759829797199301492057644318902049488845228875672272363994368014568351840683253980214485621601021635089262365219849700360997037566882565726051881130403932721553550100957098406399843478800532809720478225220679558129224918644734298044428464744823267835441238042389643016015715536606006942989595718905707312334512753213763421341769577467330322158271852750448023609139476071398200121277217377752650793866349433898553149070055384725541180060857272321631334838430175534071989392907576046746537912209372464081725910374099389409179238764900506488061443902123603860120361640949728510731113919544049277492538009572373478979653991450834482537040375977567783335087065976899406354947125424040726829030328797113395245681826099080131581528232100513681546864242811114613900988789159877718191272869631989164523880627830739710814713397310325242066423688104192609009698536461235298541304913052768626418591759501993982028944554280007531700961333990093162285254804079602865471209234591882347251927097743633446690507743043301988450477608946826491111767676355740193002939443691118392960560207434052186116898371764622411267044949022290830473913895566089339856058232383034974832563431804533759613626046660419561082170862077444177037598882205226266852925300199014255955080759334896117617684136559929423909399973954493374542160689302171304509108827647153962117106859672629622517267239744558834751417073009798747387500378641164935565509880776802937803475775705659439175804959172908329318951351328068125473763197497796273791764634589459809057218384605168119106792118875514074242850893167981914249016697619119465086380503038162959288868774294692704687183716705395366649344054560499500258106584385927450517521084230781317423354321817846025385755284890273165300411295464352160874301822620009306496659289276062745890320954336002941029808698962436434811631031284832508022137077035900238794883520380575046343461486583640549435499367366154603525371358683710113776871344155701976903564164816707237628185855719800353874616743803545272872131142636844847077701020091396465023939716983277065479547332038352442618116784988304272052518873214733765445771128135357546694054548340882050442717319023945562983380922522488311588523132170145497871026545858821593026454598928942312636291748298548484428251191091891604502234277965875905466264351436984379424827596218938570498523659217617944790046384338238185807962819610679726802800942129946748684257301223476331767728633019285049145657736404393417055523730495877669004306223312764319902924866404443951990308631264491215848694406213363282321206262855752551438046829669397751410572722428525883836441914985015123576531826965549019247368608935819346216154127778229166444517300160832947898408263472359065038657514328244980255104757501153945775149040757993931071543704303176533493984397598545608165189961057814996911415259233410844361197901413306047572915111899982000935631370575832215732921232634410456014863531102503802157909557546594877882837282857494135637391283495207752666134704756301285084059231438759474580285638475960528609339782883397181451553373231062340885103922738247299298388834770062367876647700944311688225669983179496812512429093916806356164102186976092703217051241076945073969962801260421986013697212875854474878205324590776110666190631595194745510192320762640876813842941860092001505585149164620514285988984869965513916514604320905898465722129885324587487173907997401023429958188691273721452983940732958708977016795584691616587349325811176157675509829984007662814587178252864138498312184271779417719885631705996198055975394259825072607049198589407007584802305893359245650860291039313299818872548732514799265344562991396261140602013768765710593195299188941297547835646839284842301448859573468647357934186871816094601011135392037552788192422807424199751828583437669859901591573034938400717688695817786317036068730922616479385951560779256973150334369279508919765188517690906368106451001480257582761581975514085645182969611944639254908848736873012080219759538485399899857518402254356708348610393557875179394527431432628961291766287564979050424880534849311820226398799424854126289115346683027628803828567813352423265340063431352010066435633096363630675374883834255445042723593258322652049347295722556940002629107420975144138602650978232469435785793707793876234616614486258666104403007358761337152025812910181353927136150826484230156523766101953738778854601078213343581505163506990870685165941871130444148764020403268910699502977298127600055827724370569883636112464219401331279246978785416676372093489846314993390272421186119202641088542055844813635318238143018438445277795853981669075207897757766816094571494149098570258825165228876540504877562709199504290174624575075193092810310956566449531192263531245993401824531222961692648358445922854864935287630583582849611871269267553869298465504991515477270438767456141606164253248332527013498579250810722071824655714687026529813924991428267490265120460971116997272592422811234222912281407550168837162550353099994892037670565605073929309164868355505848038836698134892177492154988636356085315574338935458573571147470616220826993723520307909544592959346199810595494783390651974284840989430318138255553241675670271945110202817856482209581982827536227576241030037466542698532262537630903326062109875969112981199516430593302368758881334955264295533853168580810084858506127056490642675598619506848714079772797094540268416049324829347949944037544670339408877474176268916099715640450489216730777486493729010398269557596005505870641290228620376668359257166105533348980563612218643468187287171403061323431684218606647298111777592860520387169040604504959763207598790222311413624610394873384235121070148183432722445180518085442104469095098896947432531414097389113860032190482423412383935268176750354988227403186033176744694857214868285987494987871069477493616119362679425511454755622541723387428043802232949309312574521977525232675050482340887013202397484590412775753852293823166812055041379582069160953944933290729215429237619254903657512434491665881053927238988548350113757538890899065734660405157191342701581868053439970789231630331292290997827267462859665803391516807674135506716292239398939688900222470705365509523769972374944409168703615337198595924742040757889958037362479551189180907210389971338399238479996873120800363180792092193208597760215707443972617573309205288476170639366448113893409834570951033022818028146419084161291550387963164111661540564460770310791862015951683693995700964654327919916052755334078181099169990264485401326446256632437944056034182669378656434514807590334469974991097906359737218894788350509614446780397316600723884288492317345277152326809562799907860795015781473743451648784186019619869117577598233982407783985033744820521804849832900226761139605454969239943356554851938012536786339285705277545980329620259057310469454465072847959272840336724022872601459398796524455644801380370193141640812326743928337134582802412460334506161329731425797277740405250084996874430759870634949500201124321471920594068138158783538362587708409952924145704405205215655821551897124466853828395173160172724876623365672927745807379983693392390350199609314298765887726424132954761280363849243687855142841202936623757391426601556890656652139135938446708213890495136383441110401508200613625062086181751363000236917493756162449776631989524338460886000915130264768573199816107059523663610374058808892520014395741325835699480563815119584160255148039232290018943580685136318385391470639794423355823003049337416499972640285885774612456971562772731644333372858490161794561705188007913896952669396113846093917178054044815180620016229287077305735826046689574885732006189700907372198008180530105185361342862702597786244080047279776920217030638448056998802162775315043598542390815514975373149440348278416756234380660462776165524931686391778170587839768922528941158931765467846337451178292237161138547794801838161770139704609055294283137116562356988934691653110291544858377991057815324692392949214017041858589804584359471961280409712822359870063093983712550753346932226012625878342498286755928844529907165663891573043033657357816260539211692764640737863656593153978331781339018647258835677661989398114140492409296692043143425530289315715940670026078051649387617830840148638929706159139368988226782326049969935847973079696354513836117149033212546733167455401193882003693212735389570087137188067604972315091350306247564389816516394470002397600649347502490738565394942567581814943045274017833651328691421695188994967741192940491911250066692643119088294643438470063498046183275991856922746959658231483604887517817807352829915753712856844597787773521660041816373317019547202387008219116815237652430961191001863140214501010089991455443391968697106409810307302201195962633044002322762045239265532880375607294876779195550427581797345562611000127012221238602107916310506307422446906208925692786320009451423697600106246867395543322857037318794313810177108064590212428985906616386762931279634955514851788479876244346556119367301118636522587946877825436394947340237336448862392541538756144011521083706699264716513456052272778647182423717377203916725429581618633808954802700088323659024185976453281881037717632268787864573696241527574821033551373468008523152364876382217806420271666556231455136128046411810284461821958524210610144354745749264506061723073213311917000809310625039667620475240605855284319279056872221823739286303013823021213885900022433749295651882626671405520248492956960278437363315773660474861244203140088899231828742877562097624691460222225078369413752757399565973248283608703719465160761663104037283220780131013210107900522474979548448176936876380014958149127710343281907171736917373783313765033277633663906476079030593917416298017841861665582248422502921307904481794369990446942709631352792176554717475265501576156381540267419347392175264897333984016679092501063771051836627154175838264413844159720274597423447541276307426663872929392842169327898935005502135381645451952870704462857484375961215198009065116924827846825956876021688817520888375210517140397750787186524928252583151797184906012246021769170551688213663798504259683289242297983081134163586601932722686787543571540442594116594180686854559191193854721504341235349437185764229936221468847218235782256310302880323932833939569805471959411977058697331563694120203755271819698610468609353204560387117026787322089817867183099878935897262737369847937653664610575232430353794587497295821143412047636240442084633534235022988575145225780149611763552488656022532142938538753307285399083991098224469585760635457246714629497666551324755388866971096483444670004245240420889883289147899502364433340929569826511561433087039749524996594357017116670972399151164024629851962594654557405242289621291807111822106737115211471043927034807775727827567234993369946752437093946452668552038074348871387677106397968917368176157669875336166297440347781202670826441521493722349999931548649829213544957505987731148009476276584189092105214194061100925532291219349668184693344838592880887061472681224796364136623557748581554574484345093559709509005195822486901648044318567288892317469313982655056380899601489195857131103395858497994170616348164812668954924425752711272074552776843661461236934950308470888869805595178202046106216215124495665001552770586701034689553411391741897116291622581227805864472798644381939011122474487249804447485767823397147212059472384903111518668363116764366741396090181989080354659331111390988503122382193107853337547800115491761103918141993413881983171269052665517278506749669199077062490273322193507730455441149044094040135833462961162696556816185253406365762641008426961055595925259231994999206125690876612646108364082662305520372160106885019174928333755963749512591470926372501231158955967259183772705205515435013351223413014566418610206336956472627579364596129734476297180872945139386430576859677171380915443110036439978735307264844847952752790773555623403090125575897936583712874004526402677821970858052756080569324234633023188145835164939696816193280427712392666368851475124024229860842620864120043456645674897846507930723186264898007076408820368041717168032933965392071188882868124789559959763026988418948208377628190428249834748340157676163297014513665562727925747743846181734672421302966710815731826660983277784654856101796432934435519062720474306712101925405995735588739251871258833877448509823732461661276635170755472977839095587337004076665652397382818332713996488867016420783671903704825687275109946935962469268425697887687711197711657935717211254687209579767327385515203972341887885148237365585386986088670141163442162933650726983993690720380932919641008090414377844651256138176490810841693222180390390711077152754571996199590006506433147117662124307258102975943908759813720931226717572548601568789708786471253244224264042912185637825806110505885679284986770917355854844151812377376050443182228769161828473730172782084942735736943649574078603706977328965004470764749168840578076570943288697970455358702165895153256459808936405963209645836467770435913087560104705269592867556663550861674512394885970222159978138722880290453535847268758830880565665696223339690833311430018991200788635072194076999796931195492649168038517007611458506082361263874142916699940349035105607349096031737302743061040605282073090943962486917296693219270845907068679448738238929820229064710808924852348516951435008354388140669254387428190757941645538584032659583548831028933628535920702749253638519756455344818328450192942405841188324677883087818665470585860648037397304572747347818762534869857646452536263638713844691576131184445632712460409029851617804464564876174695946308385642121116810405747966136937261964080328275097303718583713085473319147295471455729579994683071727063166192677843834252208601528730049384472756038691923575725282704426741568812050109513459503252137882442593752475486421581325396721755089139029723660790802482044350118558694327541684994690532141448086536657147093326289443967844372822332255240046478141866807409070295849217507633447357156883598339701739265461428533240377092899385787351436631124982482148267446914832165707738987178782393183586388493028793221847107320660277801057475098515315574084504641567955288483246804408875913989798444363118258976175715093342787593014566412147902811036843976768196175931993986146828964906148745306202476107175539257916354340484153036071643309981443701768383608258906144010570446379724526859365258898909837168250619217987513227421238461332691239898903869949590352720392558463344500413588934659922611697408540368623225324420735558146301680173915655690074143703024432778114485678177131338911506805156654180239936654733773566422989049788290712361586925915453290369980343650777932617561726200411838321158223787013826092759014419385521371813730050861696602908343663471079302254252100771732942367631211595098689474782046798089182050076257044501579585407120463105180164133485177250432477441046951668915066301582596173412162071498832722512635896487171537820798043582131317996509265770774252603050576763029230279684814424664500781919528571825334559969926043721847130615212674779904148017659305521023217128889171090384944599757591983579177506076284129402850768898906935928862912308778027089781494855133882234435260586752080889605717359140254211739791191310439511466611211194112719504690450782023965004520596423595715098590748159504324184386391682122648738372890791469816371926941021180247931241426538806554272675458808074033705148737051225509506691386239478835993678592815494641673775195399855919670422684435575013663885989460635160016436060694878747616627338253240464625657087834164969899887632001136427573840930520073872928827425837238311500707612247091055870761225367321223186617830174321973568616559433490478951728504325683806411025567200597859910547613488361056219924822833461645242419312548138406619585546545610018274457042429002027158554391198630347078247547169401560115292012950378808260249241836727005498564430833758255625790403738221428482259958261137898117180047099401033891732091617494474007576434633118178428961349890210671030469433351860915988495705447679380429756311981375249628849454806130866669988758399286493841156585513153642296492142027738857164829321111715818095390931046546525721247985394085979909876866741812864808416364406182181191273310183142008641569367411325400403152207033182430000805659014140844463026506397718188185706847554221426105486568571271853958002559112062057230503745462153957278917816291036335800172266153079061591526977071276770961748851251111042559519559452504378833527300845189900909897247687768204994629208200220696622765570404595321959228063966108307778945913520042191790022757937700798467535983406571247953676108057818570403380236859453520632215820665454736756384971466992220393290488954515951186116530714177327541598018040001977888284120175848086194035034878876519123293174323338840108073641530624207078315233423530262948550074722905401399478346544358068655422251484193749648355804579168785549820902563749501364179632462902706763411675124747592635491472194665604547470250485639041656953320547951282907325291323921587204249949820731506913753726291639940291416916124827335173266440794344257897050467685579216925235227895883602797806455737236168164672939318140044927828567353631748792315733356961607753892023070452576366057837102405166006629483702794987520964780454341399060570614329293530501478735737413580583316710016578997710763931707597053992140800614120170351278737839233340191921255931090677884938851404176142431317943615598203502974746584192409123094740939697820403991540569202542480700756799962776378695860482581318734882132797425842654062750876656873285738819589057234539068470335021131033007606777594611129474998515807695528960455241501855651373902831045248096925715272243933830058118989918846491981304474186884440151298877672874875842073245484444942603717962405570443684085560295261240932618326427969901163800929051868946295944952662220337168405248199796947420580618339602370133878277808763284613124891860031505155020255313745365602918066348227908032757463684008891740928976049618425540002466850326584467978764166272873827964551219586589217755264091327791497925350014934622085957727531400227589409065072697284143383321317471997857462323646507201849591675772604092970559129806093006137937596952024808694940653599031853014616237850000505802597051441030869699252248730353944156830603001378506507659528475328715543525248616865571746300478784337964927326380754707741171832174410524691576461982359752337744028236856481350167411198853763293186599369153557748759628477017340590733235070222602475453658554381079183763575410563205745938438841715405272339826869639053070275053194702002384995119301113388886123962068966736574422286810196913724905419638199488860503999741976653747494073655532127540350794114429035229825274850893292599469249406153252931345599472150108779343387017390943401678926099773659727525931066856029960719527613900184668687531533824447395842215301937645912721455833550494486848805355158719604994655765835493687731766953202832221811362098207466177962065642901015934834277157762484851837799665887899414548640021335873868409357908117452093938046519852303767414766833895538236801240924129940400888598692882755161079146686300483562485985615669904320036141072183713813103164665498860808599169460512461768709462630087875661646626695721774564277407277835760906504754789187020249414194364523242912396656739510536291135849422864637124688185034352286501451000504520438137265417953914759669516005359801949520152813133072040071924289543487904487112190762062466653535653393684926841285715654285632354495079883615111750903058844629697511492443770783071218536830264825209569376947349693097251254198360274698413989588721580593276283320061547728372622030215573148273682320474235666157248703210601510286979293299767068474298952306545838810803266653604894595157785156335500052908632099475575536085396714597841323262174617689575450325688363856257779725507803483202792414999642396021456610550749757940190190134604928031154690585045695937926313325655200249388594993686477703001692040311826877479275168475046967664060762700167260480848096317835825862590236181734259510743759379678616087402716303639977797450986161936373928842274770500385185383406072468852573397551593324180227285614089332969975048546957088033721535945619571247854931184028737481747470425483488066755749732952397111853062080255447781261752440367906267190874311869073432301004163909911762910135679528328825204389228604411195794315942240924525824081887291878155323043315229015215134005890367413710498242932967158127485868874943405108752782187235564488476026754115426777690287999913897525930022472739962788897544233940136840489544300786186148819464527446658272574458977874836907176927110825118811156344839840145555433029988200576644262181325215208928006625503448716895782223668846193437987008401582707445826022367555049654227063224118206908426392126533714892941204787193125563431127219005038177839047917922995417477045332293146800971911845549776628808201164571909013247795913124812576918876407644810894075144014265224976580571951065558598971798745780364477821272331495809635972319757927874072756991423322899124031997058092101447907485069397439290389797340838981304207805974868355052845871585001703383468858694305329221694004462761263020105399601885403816157867561853406746870988448484070894389421598852869667102761869137949281211257617662586730053063808182909924752881648759097866810179267991012387186637644126956469674320581772224779767632656598139151303141422777715210370435025630392857488441352834378826463878568566944741791294767966212663837887725783898173152831219181806513994417331042654588051659915426441536822045262267764920257907911567625957560417765923816190364632692004364007743988051710032149723940306811515201185710794643563049814885068859417032895821374555271137539806757391516153609736927747074951578038646494218044690850273329002673749137946444839611423225384920124768350105092101662314558339418281286008060862450673475399265012711702297291283745779041631521204990549385353129287623496630657030303598063620651788207505295027358213333916811389662888995373484027130235661476016776930407428780464840671716974841360114054615079384821936673914576515442914454486133037592158832648248042237019580309904289402128064216761620659167026748909288165434371817895485413217818609462374795561460334192725260522100160650762408932716201475969821722541867274749991994951410407157867402899798413751245014999082972234763175273180063709323608840003164601520175766595107046131004781359821451010323336798880750289407455929895063856203536717681347955183158875434221152744723394603661264344288070473695698547385490245461855769092891927614654580140825526781489870323479730050559109078264637169979211473247715264672543768163050902048110556286208384190419458815562291282918696623518819867950574000799464421110371115482291845413357597449321245150929221697449241457214630630126164737312614550360300152346911404397353671849185689806993549189038045026165716341279392073260926663223877540086424946422042967374347289173024121337447888634887429845691214582366984800069506509158826044448537733674141976564330029786403579875631510241317501964809765439981120777705797809018990918054818274312529784841027122655097783662620294455547176814095043732130439707554821520496921395315219352825398698879981324323154954744366843737074808621117416418913673451503317714435897024004633209401766723957092143578318444700810233328607182383483636349256853397206618078486944199745626496097483080963329202918976023211872656301336226223768770206445823753949425869360617825336850494460858969412695860852639144749192905242281444305419843345983466605011722870066050812395609004365926522143287833226883782962234874752562217898914344118695859095813039953521642829355255674148517708760791589923872934867133829559877319374073369563054797493903623113285526380776954343028320772784684278447711772809868679775095678192567720367405750147890109291528198309170446065806002836721516999148762497006735119270127348891403410046472023906193248032777939840034756177916305764014286317552617405008416999828852503952692299915528121100618570656268977244131714285052992418579775081025002670508363880300329270520247861641304712108827006013023998286791436154682360120107995888262335942995953047197856824722460975588593463160934239656378497526442264364484142769283904500072793463921721995375856238149855367470212225779503818949332458311078506190332353944460182967329676689142169573148302049169211652366208071996236094805347501587766756205454204714689423404276244339222708458043750270552227552422762788988784728654100206576133804943594117543210124704178727423750144774833233094373251318985577267327212797407152677210808607039440157167027760518144085572391959666643160131466815374264059200948763095691438435238846713307559622187751363925650412426369140805736752903444175986799333826960869179056693180861211342017421505823321003706044804137680925901883731955685110115122963574068519554804508922030391543897412914053055194156653125911226113284191947268862093462692211148044143456399654254623569941984593236009795405561392026843493989408001717888798360849542161413088397276890286841192837854259459758205106819885962692963095801142793611015193457197619472261657995849201462334791873857116006609696502878931422457600511264417022979496525133199424406597251109239719106808788160489076663142986440727662651365788420787821315308570863731657736824229686930049890206948583435578701690002202133349440569508081831401406078033957886881313090047880202806829389811446143129819795115855335941281970736587600040090331506396500434866768143250914251742175515525210329048032197265126509698549538067023487014603430393708019998814698350720522007185348083843126482896570702581319949366831534732847656812884202485617300678859244405031560408103144171271972767237294533937312788302494067257084065963794736414366540993956848620636320751351089884984410178661918317200206704280877327406778113873338311367385672119916923381295745333578325084388014322544336275358590751247002757788947792364738537140033673632971056889066372450583196658605172983984409770669064858866422638850792653473630804556183407874413496674054590411426407521909142039883380579263249018838281592817299319753919938412982694554597637454077197624054124272776044404600061402723750433328740305987797397794546463452193634195659380299094475267398096654409866361977266238047683013555975672900889733393498352762780588985529908712007018324128798146091110674504002773925325652739399156912881899444875385596368136502014426566631753403356816719207593699032595996438554281924324664986055351744277206090662621458842457948983550513324449034782976492792919078768411636909143306006570407145181282613777706523037322028117065252638998591214793350543382310649088251829917400935130628425452208624390626095436942863265683362440936378584196431013316288608818973227671467901274104704438165899516489767150631711407599146834860117300449065281323701397028600015103920536079723159523641345544995852007881117754798847154965263359710068387811399066805584347618332170009528684708276305882139066548794201279517389928893431629190528826964201804803512426051754260681139645165468947271669239609439969126376715088132000825344934096623176605243265574324457729015146983477946735309556228446859369706026900013802498182516358831541564595230952971132956589069862951175912738151506477347725397336201448264542753506636758367157770500860842948165393319829892635728044482740885652346931924795839494086461222724253152090461247430926140729513033921642419852168964160594075339675835939460980423335585939932447177287617370527909056289015185813623631347572195687091788826008402212596073140990949131806126067255003924937310980020566312875783593470982130627278134556939936836218716192249541671521362228290846987582554759338010335607160401886376441381080368022354144153513336352414918112278376130429536762930179251853380383237014537997416981658814300946784366677964907252188905514013099803101628550315474659734486987839625440895495562545639788452951497440128215192686260638080376268208048261718329685979588954208714140246809488028890987917001825847240531331033125761988549334285895368632528120153104613517034315479093447219436427621461843561726297173415945415117921198324350025436915922769935253788941922503267988821323460396593788242394180000312671225700040729165794350430948634972841890017659742036671351371104578477416765014847786407988299004263455382642804930387464293561978094679922544994359765530403059737240295871850642277970763051434423478036146148201383329821125950295319211832235021687972244287629584997373046812621636129370415569904837605028501213305980910079265136649650813361947834136096576794253833795454341405623220552738198761648638862271137940020743821544306755114821160024752153855166624095998099210598340674251044707027090580987539200350859045936029869643902175400397918464862086645712399949455474339603705392645598801635804568838013534902254849466093218248725182707623172774025545749728980820565685442773339783556902093597054239330984607678701330489684811234093879634549819349563215806791909130643321022461309955173926666639595149494919348960915495128662274226939503659039903813553474019330182609469992574262156433129673039289409308147707971202450527794437195065699023822232245453847875505305474136573760870030802614357106669200289768959407499356974631902990708644777141837949789428380474599739530152968238156224266292976106781612358722522677557865764435687695891879094816334390748409616287386744066499557361370688311380344509537914755351036314549434755188671257784631511689641021161554516469675109118483651199963812507825952047893538818020599095652389345071224578457313904215855215372208499612913320175781949983241621016565122648331222496237437717918563017490058990420701369431836640854804841348400109179927435595820939251820229387254601934577456037842091035184738251535599264171246411427426525401398312341904916842166205615769576301135934508097329464226426446615521306312365312317428327739500472115481234056711977426363577989380946970542557267134033843148140972869656662355601425975739922538021786043243865991580696121071273844014215140901842942841048514148435526372890655342347662497963601155988655223457660813477627026999714866349693540704252311436576401483972088948313395593889595147151463203035342678162228034187582686756246662240147406494558618774305751136974888110435094710865175993786061426356539990440877197383131532088447233135591979921341497636922463075803202678228868879225546170019990618627622853079528278694520916334101473206052485367888597583670853774132308970471001073372547145956424684607016265646456905492738348132637263665809809569416554390056115773157521343322608836343973467154247635324722258309204499460992349311279117456227015783417205776751619786649736242177274324303467622403157200403033160152746620254854714705150787795328408811244134505354082237520915054648409961945361519061166779006150063979573021378994184289558502527800092729590907809980746494435804456791099260785978148269810421329779008036339048830550326315732988646037608745446873724988462520913668290073846637203692547808270359684157840672927405029047776863557938354160819837208186692910531001215234156469113709225473585812546309451257869501979785246736439046290627493952758318923213641171402077323158687141146096571939908026939247174883276351338926192341935036244548352884658647857010346806528309126041394442240263473047202801809320316656182727932869875427019601266206485806040465986739636327574880831350563150340516456773118367124440039468353048441627975707609847215530173693750146017732895246929835629120543429960591731365354803574314462240550730940794082168854985487539165234123674542574072378755031730613345285155008565176548491079286512316299719783331522869323180024172918370717969987286639267129372617556992980260518429837057669635251457027564842355468548213907135681599892121766209413092389857258868507991684641511705334838844319804176322641023529707145047793578132982500582565146017936983191480385004916581668561715594349819684169589563698145371623624005363366661949729315469671979137302168113312842515613003774225788188961608876348401501673722777973685602349541227859579462355311728139421552350979942788853332053034310894671313100269209714123150239556582299965014280401925597800350898726525357547319769284186689371222888534929753835482839441869566459282326963888178987714550240030344064759411830412811108021602417023834898874731671910248287653883544746436414418031112243305133900801867357251124024017184030254619074164328396795871721376274986800947634775742013908269370486901427657596077351566921014035280032454982060199427729768861502732294279155552870314076709120637738926549379402626073210375610102650025955529240292609636476176709316560845301654518896775616736972267524389546037725660367981695185631819521513285029681100174220065015704984836307872737209814337748109564779694993500168195903333755416239613464676193673820144948253037946379571650057368000686313812544736106496903987671046308957496083703969084577147870107931577850148893267432942782696602108787037998619422097500947138969058606133844706214616954401474849577142214463193766055161621230993502658890374189562535849985958981692211545945840476463277606459810881208445958924320960705573295553873791089559142289801868098810225150987702693180382507927078830359330693694710601496500816302264569137012836942700115186569567490923645759923978078259910896607521295754663743108211077748712262335391347829865270220675893060673747660068635338282180457645856073635066676495770445692735867668795438643968722816765291885503256261351457470890806804394560161252848780653297791247479962905835745755228727680989909377793860261918182986580599596512623197956730482946951906673328136775891835880680343709238863076055445266567851846981019708897395041382763164078323002682948549324691633847484478620987409906347739847145936310067770872028761427446622465734412794427645883184525881188113994584856631570955362430172722628232674613806287299788718411566929162928816199617918814216987901830048750542986696241433832927989779088660985450729157202427318892445322447342087973035395241269577609701956324939855273446982848661726648924037185702130517415911082578288989961629787649847891586469762715185508519959750928823169799497389574675305878196937936142197135827031240031921357378751780046133325990880937490449853886942238774085994986117210513873356876917212690826557167085174607695388481864788395837836011274688496896832528150538602047939093565688375593819106855372909558036410495280008469116555345502078208184802947904326448867848375360285565629587402559679399725425013098688600220124586599671310006103731130937452212564607208257039416780764468291084491675812007132484833813381565548146081217237580758425936716597183858082503722102118745787475171262330022979419927486865366044953065551424520877769908131503339223604790752560319094522788236918773665964468765545898633513082274930979850324596292598821491242363758339932343782565537196159138522913151448778416235272725098637278578678820401376577611037255343313729281523326305225153377995903567093326263378989726287580976005221129900627421932698408929367242567782235389443485562587467830747237729028611763994396090609158351087423147417461744816543946675734100068186124004221929118804921101903466828806993667163879678352665083229099501315196521942024829216507174318051201388977804516603853892757145277192021626718589173728737599834616672980175296537613436111228447058613535733397852577736719830987562273722712331626925682695456426531032699674499910549244209439958532630384415538450350479055550925109632175611443244104847410625501288439421775860584500152316128647274514330403193200726787375667619331657440250002364841350974737250449470416136947364911976839265002920184265265281408143139193234261178089683927761807137406686813588792109026934626934102522162712691958616311052833275864096256354031458225385331418624267984727791117125110377061305533535564613934696817582114722761729376232186435714270881846732331722772142128692897513185490201170882396512656681963117198131272033038479381581334546134121667338366905729515574897271960105198065258111698361024453050743111430597892846712316708668326182851915671479530008950738704141037520377135082428960994123624544014469749825447044469972223243942776515317789700141991711519906962657880053409018253218096063976836471089695817027226522541858708341829042370043918584568168757420574586828514172498560431997659517932686157709201470186298973390226600942817277580891016213186140929843559312910153452854126100741255746546968439817093332761780270852621627323347453533685414285896837427514643438326345353856860055769800558784946078837752181271281841499811160609858803770870825837516879878975291160950578473324002020272936189488820506139182554844724410735901941434362896921511102543336924086416597098061267876317498127875366460945504425226719187128747104532899488380707116350942885571711724733954227441597255154770068655633280650384454210425352378623055834506591335455390439914794190501132486317690831490519822330812590962794698881412422040282679511692857641846131661850951320754450759921401578989982276653837332026457127606508570773436801051405714681211289837803340303933413670005458614201886219547779704514872701150414466272572081130379271729926305460983479352306403196046432114984207458493771116014911146232957842949255080964416387716851047786899687614975855882824590534545383210634759311272770356764844285962859842763797625042422785577278801124523739320208045900583321578433316385294978013074271780364057754868660207431889689284468339588505697188327591849324162392253510772904566489300920742222581598795741330281414263468200944471343159088688637396972819518422515261185426721527629887093485358622922274871837053535880223441243826097321842884059468929677986849682542703409515402313810889234221252706374798526728433878766189108499656508109520550561416546610400878798193040327215542726718461302701174653359655220997383296708884035771955119933652104361301878882517187210740565499406680112364089652911855229723872598823840102126566264039881700874245255345786784258954292276445707170517856123250929097766095601385086736730721226407288191377670852605848709901188207121279244196549777831177711545404848089268237303469127363818627050282837277339723525787407472659683420840590894415802025063900024367799178814557736048250694830911067125020338735596589029331049884581548651858132797464944924016429194845057526284566447536883773996111346834489475720161990384667019039019094955407368461798032110211742110209781370575567143551549543111256116554059667661534182499145732078863141954903159951779557236321073552790736993217731323543713194974476994965094630179399448667178595510299234643370040205613059709111047117921401693933688200541894954262011340997120980904593247122470050217343662867372471170223058437715455992006864307408201265740208032100751485887983245480100080889186967108482862351961124735630198962896149354125306266312706113296406591414519655775878773017759652458061008937164029626516781751310037394215754556606695551570039597516228362001574667408099962962688524965222206749490357856721321872475402873953710886305353239867076353244123541661158300392095349297238978949359398080847233249448833728806314541540763632057004286840825246921651105043757653238059310379295911993656020704270824654064104548080467056653937055688133401292565351434359321283678383539943465635734696184053420170945757864136372385082022670625172753552181806133294053831411964108005606118429828789271341491619664730311649436455201408689418748284858685205511692518739338461415851437122116676326848853058202344830917158282587906102868491401809331972888677959530345217945500520348626596740581966673447103143535381763869323909730595947499514808658996884061658286533196883811658680932763459286913755610865399500133110922021706564138500488421502491906418658795321043570526805243981156340495412280474157441834520552923320219776935691775087667300909955047094180090109137604859331954726313548752842818657054046223203834969255818386873485627998394366141565546962319479963778202653561086506585985998951301086212382596030586496795397667336130719568097645756010941995543051571702897929951799600073593695877582512660279733314672253992284677148552918430713584895756636491873760192503783672974112551786009293464382079033851698374614539864810475102462782741327003003778014787608887712209018366311093470128686890404091952897352254969048931436745396208723223601933375052861152770082728856162699695715902350768583190807030193845613797728355082845245014513984915287661854987907922054695508353437811702026353991630853085894381217585228526391186361057078311272963876660514157288062805835532457832326668012030962093400341543394307082940976630121132311548534677814060913933501974465782482363790575038293786951099328484832756565719144049967900879837528925852256199193889590668421494764729232453485624933633682148655139541836359903963520957926489993725045327808099479161687794615678934465300304826412057900587720033367617340923993441182662177353878963091057189488882534524147640562083281085841493443029942369460316837066801009466043999709646366694249701796369279062202022941699100324845369010158929981840177791534785320689444206566847616291950715182760192990515569287709014663643808581908196871752389691877863054100332161737756721797401427411365821969803763324498846550540478848565354344417821754064640501306919697135967812152169439182724257499526385005857115176035913380180035211720668566846973961036741980373133541227909518022648072924525000867404438388847621431148225978214387091269443598778939791316526919089127482429765878589060407502684019476247229428044204687607078009546243447773838669051030360844358394253996915889280466509297062097026696541240739561034933626713008183724209690429942862869788256292177745628443084894559805229137734874324109642151587944648364122910326239065581535751307942558957926708218461239850097315545262153506526422544963140673475431987641270897615022733803756195211733873239756196736584877675710041423405438567780859564405278949681534732781596323308388659930884355152456391774249800147929532380669975866804198324579680547857502682358152751318792288992407664825309253674254020327146177650849667256750570295520970317260651133816421548692951885128795194524429019833722377233739642033623632095125119394127477498696107382316534263024927949844275514898316095760138858274297014788796239949310839405511158768618626677086246183874035331275235206091409097406549718235201097613845912192200530116691902254146218321287184302647705137485986879751977028826127535276837720283733875010005577290493507207251247367263429832177517633881777455313462956405977068539646160644567885693431301663009870177327589396145870123969284648947674937692690763972680465675342920356436682279550663494780566101403108299196781435257840488794800222713207667283613116410821635541186119947007547993610869118047308463782236419566622986892794880535848829389799933894787391736491173501059189258799264441718740543129290744096150216884517432092126007750242748424879971235750878011128492149333314746485889243294356808388857171080499880347684746620412145088940875140541325006268943455835962940420597094979638372580638309161834038576091006224518681738839401921971830918466948512230118871481886374662187372688939727909418610485631863880660720130813333471384916094243508704212415901495591925039538985353877656185666231684991403438845350464238056654521292867008680075986375364649817266932092542122543886168763966340148757092228515471685256605802353706215093007095465667555969027711449371385198731373744447129778572999988445961751199696570086694566637474433848893367138667165194238663385507098204356731207333125626303333524454838444174675206742733761056273357116766112081811737156283920220752655545667952130869259587964454594493484957683386647951968119868559927605496087519932593826273984375777795125348178104394193891378917954968150693122188128944994301962844664067310337552542612152177708290661986898832926494448419122199245186816904460165771758280758774085226565647959253205490025708032037125865012948942835622951806926277231279246058555162734032127502815617593720135305724923342464161803506630709323080457175423649597439804323099601510525863062514320117529868128562206229593332928512092502137018784296695042845640774459011582314499942619085324154061087116440327105063693474501729019675462902779170712479564904610234082990790400865769243560873433433426345927640115438405755410147742412760766565486446875346215124020473750156054424635698676931356548829889512510226845086213236779181759609618946498556509249615297757067557509787912976500311847873175577027367144454472649652535930637086699227851777422284852337443965030878963922467390350415417430126342939615611934626155024810184538877418183441338266073115932877138003962405265069630386559799983154688737331968546464786010437518566736425987407178602857111927310889993819686672188352754501796330678429486271033894121520152963396052528770969335686384249802949696370858627577374278032186241576438058749941608903921769490457071949830785535459422952775772001497528009555770346170658253907239596420178006528506836510004096269853876809139917929080957353990425075986044817050281428236150789162497994907403303612427380338289554247449109066647337257929245019060866664696333551810930161732126833007982482776336104689664753424777521194969846718654431110845605903159647462121895767752618031719858931430805752229798208396781393680366958564684713111971986213834739392971571916139570731899785464118243971156538345175055635579852226282513050226246987657338889038083937329327047795236502978307790331955891946596011761155395438565274138303853101210087968016896825380791056266254717192163116730188592060867923369450682815713687533252103600127385936023568656272582829854209148175494657516519011281820619376144675724700449297409347548354997477404199834541444202342136372236389554244929848902463473028897087778153110181608201361580420850828179835547089899502602882236886358199219101410104750053533382098841157428512414815732639529852422804334998619363663625197996769166180080216592535598783168875841280892286258523821906544712428540655953637493797525036704413450571518531839319658901031528468015822599702772143131504679462204757304286550905016338151823092520191179419987039594015842860928827460919350560657271596492535945227911233970775847859980151212665181931922223113983720368523948492490817968676738067620700589214247224873995092176727292195185851757438012541167980181830791192119419393799528241357076894674088083640477221567103743571241839071227661726333351261548551283471621799320203127770717994830388615757440525117508281378205688172845548119641116028935069595616320277678479087459455557014308052257951610537374179478146627245694554072441303409330695547701187221504198557908213782498770905316645419990354862631943096345078813403154714256515292528241748822614718771720736999242579145039456007031490555991002042770237220609324798550855463709505701795725976689090431957681239601691562047634509752848987264154886087023767591319597345670022902423949976317972244441792158356857763726005446349976245348141209928927169116744425258965770693305459352864307936717316371574022487750228825134944523971561190782248607952026852745387201288380338707689317068564580601976414682479057831422749308374483848435941346898086742231463571869576973983444109077534585879133305399142227004443321572210607459339430337473769216265396479663681121059805635942386350799953820558522344804824393889033225506269467610470668950896629064015982992286277995288442576924773472110967733748852986775162489142987840493152814789870706880623036599303265350718295411519753917778632127328510840703666028015664094597636410743734821317889170909155748187118373784253235129406681383210039800252974792426834515454942946654935566487811789875423450542803722809615382244128796383081798593742423910424571367840614537414948488721438878582194927237685749049835431679536551080202686448090547723367699602892016341445322989155647456658214928946088008296847993672720752614395138406356864368473912659822951072256677455530211296619911061761159810173319496000269991466865079834211434981764863722607925061480242189683222883771901285850461959514179960092314044778047666410183887406307662051884541388635212912260476780320680397387548677975428730424000175349466687835163224483581707514660577876507840081124767973274075614078700774842549795070514415690255838630726208392088755879272309771127794839621867090923082861473130253537801552104022747524031376252577272429746441120786336829255995308129633955757998179922920212485120022217259910645533194946592227212686433962788543854138748534781184142085223350284659939422012973920804409398703516389646374731595036302246443518759994623164267993179508935521091280048088707385694037657845508724410371139073419868572272245730405113781557143284613830859389840136883940002046407150450924412820048264389258583305006768184584705308120649015902909711954874041012047074996247117296394616795291801711118014240375812689248417444404058904529866475688334947990132094870369166948128371799529184047956046142275563356271641861270820347985355304559895608831791420322880995548205562252766572319890382451682731820066455756363395186879631772461723275904136683728720153838652877425122582533950295381729273598052767295082290221233165415175054299503394004742335254540476790092822063208751084049340810596002353077271359693589684846117167835327580749119682744613344226116000398942655180208300598059451736539793594063790312120699638660866572131721095741699396823932444151500920409892852733184361380683542673787878851310619351472833567181139753829263400641541247552362645824241398567541038516733799411362045115301949121661079078740537069010416806745529941372332044892834117654698115903748211778268194871429938131560307492910825040749734461638851273113198761549853873597647697289688156216897231396417656249306915511761495428951677574690956244747312592676440635640942794954021176272734825423873203981001272233179090389178796369699314515377201671034142181683738786924576777909342147265604632419995603298095281180882548376183268496537533968647562493217834214820459406456440542959282723909087816442798191427828300597693431645848756014301308489285105518701641341307539209991880368066671172057022715538830308289966998888136342039587831151760905198581083355863265780061956066174028603626777702940913697976629113540233489394452825938884297061118680491159730598263246902816734563840092893614661646275411522265908653698273474440837525260223136583778756248598240783863028514110100591987572458150903906432697816204147435528695703189888150875505529985688647086055656418719295669846229356340907417326931630784699134146122509888385385624408630414175255508479966787422206995896442788796354739442082991102036041640424011090689058678829184024306439205066715247526738911604966690736291600468062536022732190648449059033378261629358918974139242679376513400359829278379228870171099797141398897783344634511480426680284340592781254249401055122680052909696182431250578742322112221010178116562285153919073861494369177489083894858311620776201790757487631239876918004934365744962460557691898250320670850958007103664046403551113524242544600802698803063703371028449146820437061018452604126000988312830337802504344223667946278776977580923982518451542545598908845838239177380618510612709907474041431074452709177163464680411601092989873990475853855750079519129108980414523307649551782421775108464040049310871762021644142146837999087575047495116488564751824336433315960419894436349347141525504509784468977895138911768501730994018225511992209694377048744241459787300605881910206075767593698044406690632169829277519065812859722781543162560467747338210000052932048448054905260842648789529680132211785589086600826688664023604780874848958125672944806704173780516391366621361494324305516236964029975223368527522081355136999707371585410291120309547416638988805840159332141340772649953468539184987381562182187867465991304780505526946606004373847933072986518671505940388742748116023084803891007422538960920105787585718990743105792644355048002061833893770832679802482477519752934148580725941461980956734802708566600009340320180328120752595558764663580111703952919054221728866873704123684680360834711138935199044605920920052919910841525827194933540237889335361724520636512699408569043036165554590527513295593880161313581768557693004430989778244173868613414001660158771607443064274877661831793331120475240007209241771095233892944991458680903682550232208170125966243442650353696439338708139785119007395059595811920342439269104034596082929936761215450818562943057852214900569933400128596786108785643825700775009588823202091554848018608936456389859391195304851392568592849973848495868589095217992773397713411278421220058395476125130918530889186835279096623686684022400479055764086520230089337450394315090672174334897461919974039996850666021462844696099183628650413676053299744296058562417478775813458814435353527485478256066108815674064319531460615979295356771961218373478224691834149242600951197251676570702951731478306834970764172820874774076156182099971265746720615342125843732540492410140675485508026576656606833349152256713310856704598870307318808300666374427540853228520904582781402262410013690837594831773668249510731512591155577039599124022968487218821566324450471726580591637739594079768201279425568370399676477357792261143868046831236532007067930950509376098103134616700740438356213780169118033988372277187212238008157522899884461544007909212985221046104652925217984106888885899127750894297347397345592706114504977220033115078849089517116734185916161271081483812573153325178266996776886340145608564605672294704089871867876807067255592751698494016049957975030856524111808548255560434434677276456014301026257492672365362952434376666699659577424929339486736235143137685976919516294459866785118461132696018039126233292655604044278728152132372388431904473493657373478973101068233894703985823094916133216916253724066419520241882057818806004466850645255696605366839401207140598897189483679438744235265108684668591584025377673530094827567763540200466664622590373353872122743311328999500044421084451428015834703398146481242338394014807249941056641322597200632197265786374083401500095036488316924043478559125194109766619098294370414155442635616040269293454793823083650059038428160954354689590905133140783075438477466848612135130730131706021648917090973459643175664251204772170457371717455555416124771663271019119410295857938031918840578182454405079970145807102885576204818574150765820464856666907974221687045120647723656697738178118375303391090209527939949685045009834131249598226745727351256230137383915843825032744516179586300892112764669413144904237366222272516419861834187412351851808057548835930015882260557107506290866117774129349279630925922056711636455427243334875105208502498396817703531285824598037799040427913108787926030887541958809224621911900461055618657658347133237740280709425480259137033358791822640295734634504872070821353081562006693515810013438670030069525826797626064626489895632946620052956593738480761841804730761032095281929955180989353938870634733241271854791914824736956981264852912376901190322928603208546924702002646387043910322949298926342109892217822003057183923334329898858465278662131251340174555901008917656543161839923101240796406241084206083959474992625015936044629055940097646618165300014695857865483051377177703287114017986337528592210670837029739401701968282723824210113290794180538864594656369462962474941832355940640744598619425285379292274903699596731874504285084231852935259646214887886483656616451731956131621390304710451547011181457319709619804743975747374597284121591716497463549928365633182640123299141416654831540981083104518843459238790500256033499896344778743219469997424900347117264649600549573883044620657912457469360448657031914197261684150112550560866925501349416386875899556892823962160619009459283011158992660153781884635417444082552961343590513969043371699580574852169982730809191647144638865093771088077718411150679775472435743594759265540046460525092341417821216090799480585631104467338329763879492242929160161606176566186243114076417318941572108169239717082745563765099046509742570093803946596549767245159721464364474488853156669790448848856789320519051369215601379553968053363956796768644528782694673298917540448050023014860506339316346070195754917066660615946951058311220854269045749570800520219074368830565701698862921511672503538186275544575645785703049348135367562613320952999150130754034117553229549532460952223191404434959624840684707037256283927905211391268149072572861305488701894873728632987772892785443398846107443740922165497893720771488575199003111753464926082173232719185860466958235527555440479857872411790845481175446675293651437726841348486860657192450890946157270123230477074580635886414551437494489854297236271201043942297054438819304752178150358115586317081339879433501850998202931331396295046639275496454080897828550240477239754163511123448744517295067116994868970859527284933521525458737502780624595907903346467321746967859794435400622757378567186829790448204003306909256561851070621335436538622299459534774510316795617477520348950804402164763772243379980062666326599635835264589090457714898838309326273315024717181864957463170411586281937107143386849499459829528458601746819581208611579358478762347501420635012723239205455039442846273993957448257619742670495451039116728789796369966065859918505400051742139468496096431231959944588301249443014183229681203316069699677157810672171633434171766004246674330662115788729346019308682852161239686363835602802029546028307825233083437419814181343048436052503878921226872916084101762866240264390783125901840253479858074493084682109812662154183104678475146580519114451908749373022907376676478849693441816460478110026881060108257104611724117056591514086887673732499489561825600570629669774275590703919577535355722405930571838183538767549602695253505338306070865890859501263164229172643349081546022121921445965178351967476230997332099761929199613117858472668865197212682897210370893393075480438372032314472500833069451897188390587533619631557892221267146920376852876010550162681816057785651312957261331129773975593358486683189700768869933505154763161349970344167088484133402329719626588116097232442301382007176890854745255177569842230816257985215114476721320285927551237994796004940126893125576902772138584703702924226399598939024055705443185225470327269828418133875798992543004826123695998540056293195870219712140994186777753459846404922080453328969121259402922285035492933370534556273585343873516351692318157216915276533124658471734030158972629799236946211875315325303485704958196767224895659119820940682626788288504618599322716142245369418140407380503120465810842658762179007160121612705803448741142153164773806544897814227002499168253769550512434733440830353957863500294985435931910508068173109581469051977744970614374811877471746344814005142604068202806163339647637056468703814915896713170031646114866387596954401367462091178733132685760699936299799090975286351976461628501712937302998188745460249124084503231237777935272335027755738227338246168741418420573116795286395414887041540012306165720982523569798959693324939657277097452413375151908915508133570080263106176715651428583032928795994083061714742930982002391651736951806646279327837898676186434334019382457703988008874187491742769560905631303261629322861020455587777634234389373160937947649710101276739759314440055226950687911469831904938120190175078983728518664181792197425941861158360398159139151215217541372498384209221638842929145042338761436705410249617200901178474873413935941353166442387706920135579642036396817280355356558020649736857635050515377000439700983397957246175693329120398985657810449564195994066784919842071636970869577992447921112092681010702330583286294415354484096513402704950249862353915415248350668707814889884366521092938060888746147748332104243096841319620450130695700491884289050754816308801048725258199516583034081170323386229783057317748705975097360201058243127870969768807673729779799699283082558835325091252638955102703463308180278848100330784319410304265923450271441140088052522016831017035725748662591040481206987946478970157943348608813559906715091807631258986709133987885913255804662650077049352347451860133875302183122740636617906845069945801021828104817384799290312060700659663102310421350687622154475628803958971014465023505558032290232178342886485441434249619689867276073159429043114532882274125871508058502654217840341543098455770636473995294167746998516407289112566245765537696886756336530132284699871804741552648936689492628731160997349839509544202772391054799454974480242060245312858989474622525483146042495239508221432708217420366080756974316647683488649474352170719833350917257795525438135358348561513518664203606888542327204955570526406570572566298590812530373460550794963947744736896191149379881396807835604467398968764177164542425309521655491935917175817498761341037612779773787322468395503689110763983499576052812511163222007131842082866705625444966845969432338384507728295475748598817677107285350977869541156854121940449377375923813792718807023862876861538425061459632937600128523448813882446332680034484936339269668938695493707058538776231982008937590948343185432759421865937480183395112964071191692776252447812538157959386036424620120483291803295844835493634906556177564800328805722078508132014870000353539257275273140638498918527757457697477674579037191422726149708656054840338528364906051503441045681157545339424299713687626786068724387130928411821222749604012257500807027403292545212708799850205706396463426081782584670468003334049600581933614721326742373404214220811084182772301455744775506027573244862894179173812554947857410438760495786671602589149180045849263778717611960448693001296628336966532235178729446653831808375529018576322656443665431859999081043909848155559576768838808930871283748186592277601038512939757206796797817614891450154867536912793477631496325821846877891335299344562269537697834933831667634702308488475982664306752945887154003869165914109088102711566791272414087795225231844923456735694856046626516377982139506188298121933831344007885011187840020624880040630952086075572536990987715496924805928087150417052821355750049858698004726045878050847115424519485045711353568124639841890917484445584164019868740780522244068095054742214949097993070985186581311901879853052378585969775962129646668364325407712602659179034779292007478228412063165425982898148407278369133906871289821678690683394439482575215488886790044105944742219994797840138528290403610282362854387192831495431151158062484077028652024149807440880937825163432198298150739355635878276370287328836106822213891276358098994485281255761461332493966160767833047161350652410663319337078013388639084340675839512604181128495126498822772757536816034059671224920968838268245960784434410153266255190152220948853420017123462388180119239925043772690801582848072072636051790203838311869998666489697393506961103743372121322196947867005881556875639984827533661475301120951933317740741689362461796845862998560590342917852382113114427000639985029209898786194855887777965752669535148636969815426810614939680959358174525522502269942403172083765391262244355123695359867729879088820947846295848314267095040559437299920351919858059500992163851402655329647789665749202820206445068515572457522073360605030423404638411044830193954909692508077266038708498115679168955672131639395675281902868213261441723541797640071898691636535755764578536273249008952471934102959776592130999455208418044958547980143403050568247337896556307682675459837413719642512800668387494584000914228333882263342071195097187537766769825646553416976834174861821800254361350644271898946621880601284214566934982762184423693663331514644090719409847546503614348334624161432831053065638907806074966720989000013275879628315234942256099990653029016968435204390198197609052955061310028535999664111979932698987825840255903233356150721983041611532339498221631842721115897023099644834835866149066901803128352482472910307696983887905752143542689417128760927625863101771796771683214466794959724380765731389123763031946235197176051240115901355828277709518257180375429362189371923059857670792541830987990777106413363994557987149239638778451024441240261129426156878098547175590954802168461039858021246053953859229667043413316034719513347264207302076698569745039257093149781533936566508376170468490163435068479887874204907903967971311954704923630296917902670610775763317804116820181546868677836229678557299615308999879445424121920687679615487584740186896047236607382009874093283422832372782655496920992134125723834983056961110441593899874171573683310970929011013943109840271569092897318190060796574929380401531943141324720139624626743439257902474933687443012656119235295601970205964181325381446764685554404494134871410350173349753323349932382286563470546706312924374171012333054286825681685281643654347203090714376004492439623839763073943240839071214353604980982080780693225759476325950874988348311097797577339194413017161071836165170684829110276363345965906373800986080358543426721258795438965718865124312445670457156915103559525680169010198111424774395394918475818614224991595483194247602550465147308389859886274125744984406167544421630711089457155123353421849294766994718182251646159578664145931204747876210682773111520345157094730115464889394920344023615533345842824554929970435806276381987465762040161115276011583556783327341330218708892325442326590294699287444304646295986971132591071371453723675661288387471539170493854240012516539716636685038304897610224938710741260113949668689540271904124920217247221826870022599201840798380871313929164043244979609357650860497059418764291482622136600682516984987908995819756078246221897957579415721730474978124372887811305871486000785984733983207876386725003627252664595093786105766281417380842593465551196213888508079820570105136661226960122193039891686955476484194729955569798239524564761194560090068685319500895778034774517893763573745541479329930400281106420808154622780822352857524556920370270243426697270381796170648229921572317812809142306324149259235696032052353306984023178402513843434147447250397160466982313566195718935556468890248770936830941729313595389667626623301914946653097984472194211385570963783435409786986977407367738479174398068572376462826632511946792065183867799980947058403299463385641645115392352601388629663838731231766699653071895543335560869404389888614274896649761445382788324137478332413562639092032954007435676616968314591729856924267931685575057160939164198329986888627206796038369659561052919385329464012650570713887162904791123811553042542567866022244493950613995468399171702760060512712301210150240133863065079701489262376442638506709697964150748637869366243402807961352242325680089630516424557717185361730236131603346437136241202502694070820518396412554170020346450326515077116436558353683023463917173445326692841542736412384236452767405648804543985515893148465498181710934606571833117446156995289578791340676093980298008957582039348596871570243494779764118391872453117464416961009723028655708371717964785856646791450662072442664206896379928591382135435950049638682913006961386328017586846601299159702851800581642754845110390269141259754894805623993970385178133624151832682476400857595879514784404461499253845664004394372535587139426307980304412310129885657106456162052935641198857232669999865581093649428275983883497973667958435639905825273681694785620599821954554913280079481650299648534354665052832226385442735514918342835075737207254331624987955115045299875403231957885173728008211176454906369091034708278723186253314979056215061783434139698985151032830294406634130260058625854692144507476935865342142580656743775221882645522106117713927826454468991166906594044038902127343992329022548112773375926871204560851280872295740627381312369663588368579555611529810967039979710347899994264481721579382249573967166989217448327966399423725412706155604177873031870171898056333121051113189326605866982820715964216076472994470591079301984000505897385458832219044202198383865053889043808363663228065883380127494577049745238586824512006814667240933963971185242323467975339747264922454885828434562487585134932778963720872641199644043747965394050187845141154477255411136556386087205547964471363520196603838368803954949687954274502826421766699622088921438570549080003790432008941051665800043505799993933072203094882739556046076181094992302306456973145686188541297030173627737551244591846610325761800180320863442483347385269920267312567739467546720394033115196461358966262438850424328822403906828860275845399487323517446698884818980069526131653245663126439456826987338739274419737195407892723108769430138376822271804591124530668606853560402495375426943956070380112897108547701378887570648158461920517084910473795968467055981491642491292145213278754290979413961602556679047350263794673256571313148385231089329935473159788372311808232167132596363006859598012359451044330545944667667392864674891419314999585067690371144208473303467644407382154122886158329027277053188551994776995494593557726792002112818645372388499854669358939102304674078084597566709994705470320283834941522909327028331744998027702709181756012538852399098654874187442877413640771438489568745146349028787698393436796507970048155258166431872726067945415913473492301428708928172640049484662534279567751041970761209764643602575966999929526582403540658916885139791039614504461557763324883600429121183192888472322039532462026767723236853520504187377108692164148114997023054381951151205227880533628763400644242794064096886840899891466795993713149594830384566155251091765316697249686083145394069387421377238792017407744475941066664408848173381799741658307519575320826889273206151116167067226209894283061152931106993153498836996015150824463892895194779747082472573012941525634273357640791273542153564649476746207837268027716639259708992488766779659204230523362080690088278658031035790459710026657295187968371566327672876503274105488763722683209823635193898683141765156737646368513048059162853413270414573238694763395356132640733853214226435130991007813143126172125988974875960942831800142810907985888299402543587455519284340109639033714682868840453522030722205664336346490090909158317813048965190546186870790441324752846940346130886355062943788019851463349652376560991717638559468655431292007977535278169363866555267155486062313002813553686770716453361898424084839554903828046691273194461698672000567063325968533058586688954831696485775166231840750869175819500843755593337823119045781919275507322428959793348932206108634753093837482860005755548823101898257104882224988351275049871429099950623731028343455037804401877964010759315428265485285050487312845712574870750404177467516209709483766005729595017093400693046406241288503918388269855815824325754136430775150645832003340758216166099901466389985838043149162587586458931292658498261793123535349804274852817673179861164588791362272205028478592048567268193017544275340315722514932025204103829944577562977865356858703798607294950839755085102565907585268671228005360562094712025659911579373946871510601685606829705919246824279196228256404970455227567737249138608480559801322873765512500501280733397235921295520394724700551718865345129195945548196831425573161189952910481532235953848370641774357872675004762659539361851145927110006376721465461445537543093948810624423831807053413803648518408469848787797849615253205091277965558347496593181850677964595392818549607346396358934734623311976314426244045904232300615706521495065654893161799908527463072784907733079011340572161575272457041931579281121477237074923514894664977493609214479788713280730755202214932705020081195135683353330765472128715831805344245525116592273750274626078012464985385096087429371735385089887084979401310809448162873037350860087636990697998431708595948885527710000446774840021556668017561638259211583710801241752965309746131332218981244294336622562140378598935823807681721764889629958314556522988567260034438745180710394836552001783114516993622026401556490177535174861066003659177745348448050423476041436977618734598907164734010898186455946508730980092306560344246921039247166270713241810291399126991551100537148224150060751359761919107573692010540515374785365198237156098638411338982379940233249774306030071939779417213467485215875343502256642820126958107357902982758219884892406466316573344487996373709140887193407637724498390043406329275921193376224069496141622114891664685082169452255700914234575931407221711862448687740336736684814543098624067468131616206989419435523907046957416103738297425126914363814099892306204785048332247945714426186855886739467677321649999229449075216829439412778773262806822282557828210667494587752484668362064194249945627899453479626665437695953964066149425161347732683401044505186254343372870353343443779609274679242232451922937995731923009640468533837175188046363039463284294022042161698171851199004620499050661056111229079728077994755588371000215139867875819516435116850511687556295881147492691153966364066242139577544840328342547198964400718463221654723516765125391646994708769290384026405117099481212871130110412172111034306711494124854178912638155098610363689732823696356588048666720311207625630070054183455125566456722477413367645503277235483082331213125270378709103953679184392249667308659516027318575101334093306866412599878506733909978342311729435778356211238529662430841519601503168110010059685769833938351730151715131710301651064643135947214467868863188301394586670437015443968114904467011837202961178958392548505114541578760323031431899345996657946994562350331468716780549559326269974198762591298821882517503049212369519816771776319071736337589572138833642455143840723319693216877157934854677831548021764427050579226880486712828739603465359701954858175002594672659402820918397626844158269865374827819251254992119862167476311882019832741515866628915658689687762389838658904656134278774341512649918905058813199752712990500956569674886918189183516122725870572498887320539968494752253478733457141191141055700473949106220783369986976180273316363139526840620154796982610975403837623897256185302268862215150279847640810313794326664569752078534663227897427421287186576579377155449920568313718162748406129490895910843335705269492394595759178602518188753017201509729648913221365752207457627524737664547213979285001929740673703777470726911996373010962008648567865917226087994579971293965018894327667143848152702932832704162956305945642032080423980922478733482794150305302368927272589996477496623665391981374186245082593298736751165962111952516472777526694192290759915995331270871525880181946681507893823918161997639409418192618291045081310018543758203890811180069170115335099884282203532874897383361865614177875996981737715150015756323946825544984941647636830080785439880326168410297153012017985849578259934316255025784523765117474661297171921163699960938785388265832690109789253865963527884989310513907897804643606276917545933563116982957391100400051758681344159788419064714942073644529663377902731223935013763689870763873028364812785444372227062411511558059254053545907924648949087764315281543085735225107448513591624331202326073865202314786446401466012791918228456729105491994261366121127989965979706278094929623759999207422862684241036899437244470489023496364467606213793815270415140781487039219783287951750015696202629272769507874772920250503839736588694848886753671812598309123850919482667604369062396898673218546066201728053930781069937772251856123441781824116525753480945736378259189303595996610108918270552795925046583679920303294098551794087080106247368325301649354191755661101912156290645519228309886062106468468713108768745920490204532662085859373541460314101148974632157453805791163007426601348917641673436822185032942090329673894496290723505698238982684092045672030862575715649599986747650336583868307824732011465439467133481996968705870410305291306927398984669363798631746455221071704397980170819017190895539723791888451964884786579009457694847537193702120978121010283571495890022692920199844594258926693289532852023210626243289955708850039847323134157535341283309616814936918325967984973849788620754289110590866944715265987054443896981263515398071857039864439094512754236264504615886326160213415933503745227042320287496940847850045886030725894906896869455841610819226893492352508013246463450900930248972256107441267030052197180686647381751428640262778796794809552762870349401563757111287214791618726326285799045951392854101520789575166554756736771321233202122186398945425201050501547653618198833804991427593859531453996294920200579344248466899743572752482661022297170494779378301442077783006044596537948810944949666176440509387719629722025334950047830446141704762260387279321160779945629942429510683836637069912658195275603753958504730352032533171045080173611344714282130959400729159193649929828355133247176087754460447115031565269120798222998745375693977703914672060838074978607861541489873686866916146211771515247568580704869025276154420385468527316259724063996928138212498550310751070806557325987552444855503753657706703183724932945400281444545505730236928213173264744603771511499573812784189171458227813419843075723755735622999640165759150763152633993264915707821690883728021560114249447277170172285450107833913897415049248710963738322260335587219127213199975173183649858933812480367778831563295625936555338716491780111211149583911596847848897962165623895243724612255279547630256842123847926140917273989599068069073924280367519351024772876752894805616756571396048381833760836672884815301479753092953475684770040131591757622379630577747473804858200859365074372102826875663859023601477878906589792514769622571873530799474360857682449773140432828656642127036698243109690870095552675770310322045243980941289805277860661073422565279896166612811461685832244952857602562695245655078223870245985795885967452433395275500550947586349859358964742182886689373425268363134633638093157138237382245877013680723048301261936399141975516372272918873782396156312903053178340819810217151215210882838601305256880972176953511112782021532229260779690401078886703576497670990465393838301646519760838480254813712350264671792476980585257462435558747531052434955982086591767143893790489868195249097314590057530263661193147133080703520827627312179118759440546215336606004239017294146261359068870708388661694926786269603075526682036617761697330331573458370116976588290439033614456917894830251909913428773695516129870179517869710314053878286999782064079007561207716958008579626321424894008645841913907919497992902163071913623849531920060908766998564143761871829996266762342314183306374861084901692390135932159748870656143406713429817703382767129731725525993594882881973909002324125280138040870559812068470706952244918710630104347647596578465656605353544271647883196145520977307245423607673588936198843194289886954872074269426707707596902709009796765283405519338665564362167512503350242515974525534491433299246774174283499439551567289972751113541278590148476633390484768748670504362958940479713783252268552490813493551073167767272887104859251544430720228475247005382339906730806201187318707761121896662824716759778138114863477037101978771830027514716885711968229556226953569237449112428331332551412667538722292147130345953236614654036423972843381930197374187260100271570494509004306582019809860746683974405256306831922852333372965815431387026460609596537188920450103477809364550766959977708722607957176622513763854177568417858008038274663623912376524893807302934115306281237832205417679680054657889455948701267682615556036830637489463112389371897417981794489196532034560022527657350947444637164532358264234773855343564660890677932125120137373126782058422817786645494946781969151656121471053297976499153220997823813638715427425013251289772567540128198626240893845079964289870047860130760843655048743442265914504962578471645583201288158998391775925250661109062179689888352889212454622081436058775187513429909334525960145626758934144073257560574004139816073345245009969714660873898427342586814872585922546539857754252560994771476618306680650785639261015583315537793068877670332572655268078269199432857721915416248810716128138334308268549319962356188654553906780256421076883289821608871103961969042645269387301540242893694251314874264942484052017860385924326338319403612374468556422356418283178118206499217803185701601002581568395681810471996233596737908552386771450024414916176899544278519617122594198394984085367317507935603608556916977865665601887176762034460023174535610095319747140202125015278905205989134992807478052798270994567434130087237213458189236771173075791885912607021938704154135514248203286278965065436886656353110418975805025134657680403104601082984636624266387774867943669381170209902780139323379291708458073438417432432396440934335668559731090547766239940726278768656178350674186881635721187652772296323924222360319794888404427370602365331999500408589283645597509543344202201744554318564747496170305981084295013122084805059096299711848957858347038160431789089661247506296795058684147702679463823839811697679456714357740971267050647596673975122784132902566685157342236478113902904638631979837934815016432405965653985155373547541318067423431049045363575945965501675291556915068508318146394337559023730912840052198162845766583776183304330995915481633967637240662268000250676004355633234743275998456528097794557207242848606797563320810817351638833135566389492566960435366495931107479489571815173261597405407855421415449867082205914730423472395116199742716294665050874777732941138855814714463483032970987190063338551943959092968976046069201868037403625235856127566381388812077752779027295742869665779955490330754149559570425936213021516029505687025626591411983973770565497343131752378967655759517343178394096388929895638384248844042880645817822044691409763030684505266553828903175653769447041850339479781701682237063099390540907786107757224523091639542369709197404575855852985725806140636716038587984820589049053220682704337018006350489440880226395431827039201124533717683039695174188381251406026793655382488128577280767000714753351694742278324987741833097355333816397429363088750890614005825365314191853450850412850119684969921481787682630963850707919078844651517149740283576186752641090373848713211252368980730176983402901538609147713863486556878857560346801533701037648536157000862211453633213103185135314592413553987492457248324931041888998229084816674249405034860420369015334900477118997283964024789565187087007816964572839307796977551220447970729774456857513704284303282746847093336270685656365367593504719168139060373064102562646489038345546482849727657937949473279580903461355131907897610415489501026833670996128649503161350606102208765059355046487382767075247498386756437166237106032245918374432303880431994729483634072437963126109889487276813484121979300567600153977569696006563083569786091361064072048485801593210479915283469136221268656273246255232214001396150564193753237580857462495472023656812450792688514662760521589521120186881083894105871462615226256660969576753255749980251995745250961089119292533141829517846272999996107795571840274844157518413273844404385667913280270572449389878902268305737898827723175349383142636834528605425810921953655249761895313420327501977552093295747589132485978156462847740984913763414493335787123845960489826788461899025449203175462447193135614970903874166530190102230415737554507277216339026997913736655710823473172451759216304304533232859517260203767981033408896193336348893297185969091734651391064674813807098610648930741994721353875610581841380982925695323619192646569083566184790868669422337355848573272234113787514578287085840555454077063275449519056637217534490769833039092770180390633400611083030076766849381146858364826786406861907653453885383919925279402346008699973258093434403203755053545160250241000866418761416582390649106329886314588170930058341839391234079706000427152547947347729465252900922140304462682630603427309004358806672932333329164969837424574223675497887488505729358307289632293321940485457970792056538030552145400954146670303916354411541224705268024849454254349538746308958689468569462330113251964145554889031863288476892922867638672695527762192015399297075970355514231732472962914448430363347061081057100717083000666201647115522462578810897845423129804706199664071922449716345125057570818871710150623186658278292528825844778428482358715002421792304156714812023570277205690205925528787096698978542076827420503147935513330803677038960700722813790669922784729785418053063239407069967647264494278654437948452107091453196654213301761751083355357699583411374194992485118460820286703075370902613289968953824458596921721004027634620399704004335506074815234186898862660582940433280563086488894260123703195674788325668508182279828600291244053060754662275319173268391189374731153066653779198861651866033250489902679074825440637799956582277423935527207094254029052911294000558880839444650453610723016621065099309495265721192236821770021225071110923038639447125269015508501443526789525190073482593128252699153439532729775235713731586119316609494172529072833629001628270664882543554415204441539428510658342265250871336516832592530719153481330477388902798911246412549690312347913184209429224765397748536822796331792675245431754908816728651112421024203364457342804247112931746301481950256588100882953972516760837122338682852557188984817142678073169128863222148888830782361463541827578488917755090782790162091549902279868065690150140980256519527112552600878551333394473372749615983083640442105692654876038190186485326601229597449672579377325931899889432546761100275398351860168535051291995000975464979055592944301318008218070137651250269288130093011061050626164340634633814841799494306935760175468549200612958021470058734013215221831187827198860190473271285151022592854806420738705035714709370050480321770029765854615457774093654255868716239001018007092989934956086911458497487120412359137593852269468531212498326549520608023841821581832456134789341326403060555640545614780206251333620163794723721637737137432748428810709663588857160647525560135024127376126881457195249533258213681049082121792981067306952725913612185763306996658645922700164260898678287250664475858252006655632061502387557843861852069511148255249656498204325833881730650573942544278070658843638627693670957681625199614379754175546564401586101299143935907990618523717562557251271295023813502672927987701382827206757885363705100605884342509864113155022699441244524853009282048460184173355133316258264115923263606304976554886141718735871392417140336622897707683718731566471959401457865753637065175057790713128222848832496488392609610416715627123000719775098938282471479209007670507155307036418191186074554512932597915006398973612929069101253313192112981439478534642656918441285045598552809938275294182356619552645142590664340348875678993743476496383075284990919994318485405725707223585879282096758685787769822716749728666458429726560851171609517561121515374673828363548172526443593404695101254214140778727958153482924160613422984984375419040286577244110637968077687238847707824957884724550979357742008298905933092615197732648363285468789041097984367777914669683492877236063542745033397601009277050124280895879544683744284225543022760931409121396927957743970686066769789669617160606820350591155220004179433482419582131720665642512136735659624907270170741364860405390832658258366522484364601781838780995609364532245682196345512957213468259858232962377301400161547203315313341724460948977664429785417631068158007142302384989302096806404807018720739537163351527434237686576655157783719126402468274735146028076069667537230258769725129686614483251970351630965923665161207062427613671121637145780708232332594833478116741485686013094433764857478967439347848490328259713608822232465905162541279057235085971524016082011515718392584461486756661876307937532107011523597510424230104932637979265556175262867305963597579455750206429253942622693746474743189019330032600156703870929124523162637659860307292737363351431782494471783781952575229437278729727797925368357077218217396327995975265407639221534897588268696377056416624615967373400906865999526814969057982343387795780212736009437874969102556757599132549362966527077328305472696409467008942371480441814640396232642749226387305554818634120335383735357766983939035259929760974449083658289555892932189960559469833670665480469508069624796105950027772861268339132604350753203651231077200234660047494129962739946664197413528540363549928289427308881311904617937207444296644612825774482477734368728008932692708308874746943878192798122579922675927194899558102360941824773946147831960506305484014902315229368413645209019646724911799163794382893376439276057732149555208952133951464188204757637881463727665081461627083252747054776206244228832951663369542903171206157485034386162519446626450696385446194724336283476905316942706782237684720564907117450358344942626341744226849968624574370108479080621496852523923417308856504699316281948858438608773794010260143109326563154069841971849829534218580519066330717879539005496777157996769587116088000074997763480837509339876505930629582929720543610169059109616365038361856630040055753293861671512027622506495354441216607118623660974776269788089932820447074944171964712616613672528597845440029455607710431474344477330147447004436167950222736371504848143057058075248671114678988569242167240511718254158292605110190438216934515375459711022947105214941227537609440520449613543200301619002807323802899223731407377059122227662571459248503100385951082429304043854632429812128800247492093153801737219132713666587425857078026138082833952272445710202895056870479386617261366405684052511228952331738286235802765858863516442096156589293345822996698798716806287189884304331726746154659791647308033048242064871854131722267457423788581808941073857649328623753162259570489751095679462937067045257068873491562088283663014862567025341175005393248529119850905276038489414268410326977895975298800075572989178053357001135242824272338616552409077859079328041164931603855270646638376855380138147425766691944112083172226782451762325594400803230317238151100912842499217085616740516026389556562360102181563938461052419965850712456617566239701538664731955547633831086991877391305861548582356401290768486602230578546262166785714693040181236078407961515035339971182463136690561316485379957849651886941147456034148857656906739640092731495859001561759639935684533483938735439108130214784799380382947540563799458764712264931921422510550603285116492747545006549240598877134340391228520097912030703858540334704495726405014767735799025111533543685909968042467451033424971255929755812475667791046013345846524025196177716536933448939972244800277866577806589677774722584052330774631190574871153290587555165444882904347684945281554454414327944099712196913073652626842297212176988535969468733964836806087411867190574037350254840626496898846450065991879908096054027251948989909757282374585926668090827221926926837111970154295693246899576334511182206764052166476802607335928957450990633479751817671571509319068630689326189671405955615265048287158422810540095772973353647967364745147338466152256845111613915949674408550782627565817622647191004258627799650419051534698230714913199887095147041237889529115649237930073140204693812032913125296652595957139801407661774215980200460803567967459756904581977270315573431643398429724074288202111337778999898619925799910907664885805803194502640615293220552649252198397941530053063747288400032936659456149010530572622293528694559084818063766378749712128450463245317392784305770472132195409451034184585249995110293115022598443502244546161778227168644324915049099747856976807187151879595861403624084441269323290414941146912742427548932735693998470862917882675722678208118995527187171240220130967872036687267147161646584684814752437613197041721075738494277394212187994686579183721596696269058415466632228848335770823395303662804779143329983051405246987067447162141352505200428902197817117964561327620163330888157501638771357748297126339084724622547443298228368831532967969380152970862888481066250216611537716690792089216066890941732113676747676364439203830554690667360616630999635397478662767142980950766691079350477298558080772969699672344621309464045765285397962905363374321051154623646486987906954114532684428131377313304356730563885050220564711834823116409948163319725846164283388931900471226233743735968597115910046200543883434698112060521434331739399425527537213474863559431438359527323442744345942245329097150850421234928098048772452027359381157667966118105606256338502240005295082313254235309452092159713587136796722181286287738179719965278729679839176815484410019780878723177459637426868880444807596613757992805597312980929016011083469177090557204508069813555733860655674452107906638384319978827080160757550282825161341637399986929072604454102611181170471605826053889780751369729911565189613004787895701766912425312308547232013856177061268530587261224257613047276839615873379942550915837083743529444148817986699212773847854226695411313683216879379554535927881183541444897120016039808729379766121040249732101860678440596419696486700388885957255673333876382272279246134338658859355044258660785850209168680255582407143582381146988770804726894511659630299178114026306908274838213268573097865947761087751428348558677168225525211013372442862540567437876100268549158941791568601106661684672681612801855375626517099554656227949091969493346206287064705552665677164026073195284068371676412742220624305693201256641352840799529027623742274645357451383939328154022481716547746974828377059815221971914334116537015196294709100533238457826877448278246004396023894617527302068703570001325061045114062455730041181889406575804209594855231261751539857947552767668242592279192615352748841321917567581352285328593047337278466757625767780908691499382791281828451331819468308992622309632811449193273318413376808210597345185515439103890371100175931812176225096846535978899012612378736706302434955669427275784354862051166772352748838577852292701739816392812995666719980904839867361513678938615101527604026813719363282818406396148952351596016989065022948089167587544110663811938180751055950096687916035173070064702911029555575037529537749984146732986047097196068695955883607721190200722084994168388058785453971004857176056251527532022938187098898781196857442650955857749123651859666531176190819692135627337662991092306440532876306777686438963445854558737306766172826883849129691403782935539834964915964585956548208859550050061350777270085742457139548793471625205292032459590420183314062697108491914525000789805786055699700342851711861497284593100312680238788154864603544031611702431434623770851728298933653741088430239881966879058576017901221181080939112072683637993099918573856091567433549071811129706565940236562231228197611647354997405279695241153370752435623530736217796466888188025740743146474338245520495713113547716260438816223377463214782215104710676691460025113174920108124040887521527403980747750256664313499617290531208173700713785298322226330317816993360394981177616958152157598726463205815261505683971434398967561572415777587833739929400795893581820341060680186840673894944660925632205764691005913437207806664612272178851694172003420689037756037733756615675844359134999191970980794037645306269644989633729459246458517814773709152903300372619669387325696010140741382616996109599405489952235284862635212626833781868321900354982281450344347082499142098958939072558461279818796831306037128128069772147835922422576228892935184445690409724114240214065924084235696358837337728614881622234191078535450258064681648066021712043304924992045511501556932280037906107101092714562275862913498940368449231959393543026534903112960817842788490600319559574249254434844710996822276244256084069014348327420083069134768234167837394171629915282680357422647429146987007542158801729022497772749033019140307644191991011564353355604018592379775373645742713928222217353046929990447743063401497005230978634140189628717630321953749667548716192725272825304048294942636060974857570282044162420475403775632605514996203217409596937966920900639600195591468782177746131975724670061132894225491640841552917103073846589203063496752505024871764991225306553351106458463686143466549847345071288826207863457475036132911815697450560377239239491481171384758736926546165638388332276971047768487969379197889918539083748405975092399535972847233148331077181575095238015817051795320183552826153263022044039250235397080190398916118850519815459330974452642557736230672099663470195819116320500184011934739091948523159694653867116771056491584840074882393168366780178066505845337815403325042205573957153287145468389125457154196243235548112004204097783072533319852965194859167363046539415511651363259277801908909484358072991366655958500373669087081068674061358212933977807508018870451135553926047810876686151023008502525899381073382038821591233114762254909711881454966434127817444660886616713423420233241865775264733371694915907629643502044835931222838511984357668229081733161876451524142661415159017893207903754933969354176518423289762797438823582291917967781593367210737054895958764123636469264323094706254414954354832893797405514316504125337455406914934351746915623140876637185609633595683153223162038978810222460613391870195582361643247339259038802377570787457205999545777393148258643035331620765323054132541950147793722431032899209505487717212738085282512578341779398247690383462830834476637832475797392694870051045273101783071459668060691146269919064659922236985777215284193949758941604168070670846424069305491851486323589935962513179609221112044449153423688338842332719944775104425823128009515318479126678307395428558772379833503590881742223556667829571942509008221874799265915662907580237667325925028711056856143091763179862061310928069487943157802160132408318345174209910114650752411631694639384804872292412724309250781438879248179774387077081060673650299124043675251276920040156266361910140396639884122611687313030759086691025211213568491421376607937520102225229064467336914539160469059316985018922471535297891958840812161708802414980345173700675756791183604541155670689028981743070850859036306505989135678071025996798061528468021179261412219313683119860837694648246244839063733790060840367488223532443633578687953956977394942163511063880962028874619964972522898451413560495721260848800883886728451693512614915997936800893398834801299026019825399223911248517981670341556091814859123763720949044901953594311794845269801480770680486413468368087217412157975978099431140582311768963905310609465707817854635514889992555990862759029852609360784116592867866360122406584115447354359599661181043995348946063853094580468710102953415076725027006781749349049369300359933957191311628732714117775683801543696844529374769093090320643021779104202415650696962148008953769367190769009649602199768446842346592337087367870654653318199283357659309204741684483913163888742765497224452962711162731063898210810733780433056413562774150476524142414602345075033790014656439097330259747856279432608803877044541059680394322484692736996681012570634972590431344619146073709860585411098000659157953859955370224140605579986836114236770909846259955091664243627602445904535369837664827325951233706901756336582637252699296512794454252609521822291211999610940210645751168749035951765216511016585155649392236013842333505967042249266111977592032208006768462691393678161931865892243035324665124979203606462299034026365263939778059245995375011532690409946046857223948581446506032284942614256088390826449375549730734187412927432419367247044997433741669470613682269109536226683522240041825970215362482527404329457969952518769732006140491432620440851712107678737226251999137557312738218908065901843072401163910673979058651668478786459917871977395644492073951014612640632898773627375730578585534629901406161818594862184881582232670547529849618424830465290811578319132726046438561873933579195836667797707767748925221367490134328576085770447475279871453039027935416792212337603683159403902736882346215669360901903759870768144135167297681049115024388241271223939890930781219279828304941561783960643535898483483654087101608178598812132618436577493207132028658591730649580256930794103791834244758791724716138060437734227917025230120051375923592147129324690467499339280396080945636139296961470501928416369775010854037565419862979177107830297038285010023795853096525188395848499138076356646000096874776241786437405694020576794887797900529244660100543550064470545235890368698520530524906739407205963793026723897361817460101827748130259971939301601832606858409436861138029930004647660150615690743329379454912641326962768545685013780439540586843803523490290942749485722661889324371504678918094956216316511080262827767741704231451238996338853643537314242545514367124134347343585206021946858511037182177117248228021420781079170586672138673823636186144301710129480482902321998863540692093739682360149180686648443512717190721567183088848769529437295938883989650586136992309518182884248030554382450764438029227512021064208696011524605941517931238671431035425511078470884832043349809345695319050630085159107546741633281704273212353446149748851880333849866720276849737591846287043169473362038308550963666246898255138961566398072710375923055715665012133901129964608775552470149801600566584082153836772830716553237873230297608254365632918422051686915598487902709583619074509578646173566985016573752382089984577872094437806089458765823180331364614058054636152874521599319122433417805076869434428266189905964582635802665349481124392786779083321568370901095307914485783063198590872376595811171412447857390059089553577932079830398162528774171956351122343336275572021998822390043328696078976039130261245192252721932011133204237229931113771042347858839544088776851936801185112501303587359067988771793703211010975888652355636407623207744352067748423514078114435636960332347757708548861655895972974259417030152752636956185029621652387340026764426388830900826426834103109095100170612223193175485643883143021112402467574344476844021417548640111945109343945702216945539657714882887766366836501524396206438509987073136638184349358591199929810572348372119576777239931072391373641878999838173219049204515757444639111653722598847383242776641645459863690908304133435507156456515957140124711059284929353723396261141882135381785988096557501925897173824522083795174036676784814525710028107599765964656888962390845443980511604210489921111031253821497527202355581824272995574307658308299959621015780457501094129293781589063470340134949954308853598811155415935394245364713164093995238322726749724853928460645239756390471451124332270713796135357525780884116553950820311679419162138846691626257105481971541172081051818443390276619010730112527164750843122644768314894977219176902994264508778492043273466837696650134697168810378574176658224938109062344512492036914725441245165319772592630056563090430525076458679167370849032424902541294271320095384603540084472882519272681844842380528491866936181216020707084542754920206452090512442961479991120155710439700993402388575979448129761092393357683758852260201050547695580399256630254485509140432116169155103175540266260560255172174630135737251204584035472947798287288630302536338816959308239705117912467834496432448522540135422102126538509671935638563001629111497336601930805867632339662408820050939437244284481194600006239442914662814416745289987578757380965835894446607036470222368371778696028357290107206992427392453212128315625039661532774449430743175178353284742556359703483745013926971610341504602330900526749282236087077444560042032094224020832160801598440497847427493913387625453376276582155606975290701151606683211672508541621053621665139739540804527142514488684036407493981356897514666716219386208189864430791918587666142223040277451682948091573358684732214562061043752882630757592295191663508519898733137426587883828869410334184285331840733052694109339704259977019784896109900055152311581992575014862724964881411362048495206491077153516325597345802773173305039363675913067370562924522994119427892475063897512973064108872752195414195384423149290591242238738505313131807080673502270119019703909796936157827439536526924319898860640814091809310364211786995415406964251999352643556745972935446943621193064380105170599623149167767901563508653074498023895788202388993024550557999603746935401989567770056820782345471527306629710696575073589655251421838302340271706902421913137823353449730986819879936320614530714895452591934220311255244819642266936517017050255239129056539444684556793918036597647761719073155488482217455836342998463090329133064829914096384887629025025179699431862179100133530694982254447637708605775499559410835633104542414307804356607187463851401292755278318055824934054219527991399889296639336259638120509654545673342775303425605218296273194672960545282131682524868248930285611239161471381600342192973205236717085430755046084704428839327419110439976464961095030423267962226793393801654049514006216411672996596201173700442458270288901169712577870504314541390591552321737943190606837957875881014078571440869353098825438395205033600579870883553367662256918932074552396971988894185124149516374029169110415813578068942923729843669045509650718639224946960197952938948440886654415520256103015051736421258228301347015355156535704520958710050640278774252618897330914440261234597599688024245637269198945849212331081402701767913689926798813954343998499467030085448194332330545894992023446740330405951293327893002755820667684556167626303981157631288788076264232037549272320089406971184295138034127622890852570808025189825498412187317185005781722654445986266123150925761315696682464144230546305499995099441559171997585769385613075570866776405161741732313845851917774174272434594930664676079184582176515446452300300682711997204260533470908474002397881199788062436778388605941153947553595676242926316267637397090390721144815634587389778395445361986111579760217833166840293250208601755811164540884753777628282672321171499838622278128333872246183176511840417273907871926403007509966829730830275573961504462772072245252998061551379293727801705678014613840743305216606278383690344438098646339827044826573915440851057069471681357680366463483655880432889889916119093967852341727789842866570614875636804956984338661978216044297348803431701068317512787367595388079323151963306086728739901670290802588108552169538832399233181520168704181629401262526511241714561368274840692942069949215018749665440485088435330441973376626989028615783479493254275919262148871118519023740741767052472035450769838493069560288042925557821717039374688979133625938545424477193986933243486158929705659753263778734484660497038719609600943293565638122077140037023397566277186988016685984819941282518892244817631055438545917862464238794735410190289192898940549719292711163687414819620786310372941305481946199848357841270141350206625975710041339395593195696687882492350370418900430622400044714165919657293931617857151391268591693943352783091765251496109776635709563727801639202169482054415297054925339768254036859938354436800320248760332530472582416745544612512442444971549057501299254043839265422214108008244242180962367049277327737511645259735185364428413382532970985873211489116879510502475720972287789475577279251598931898373361920927399023316178389030753287247205578099979481619991052241625855185883667659250430418782813834922114082480800112843591379734490751639818039302545637647046592627679852850440720785447507622916827458353426802194551449216912917975605418219304429021676598956232469314854420123109656405047693448389598260056141184150580931843065064137645756429659592166223131038720220139469151869240224090988138885317572837181995818474765429576320932316440191659133772557086426845453062454318745339692216737787000258568843870270279763446701950119282749086537772194591369521044916135950224088311759380555477713316706284848137851862375697127301097792274820408093306536272963241712000286110901134305881357062934738392062101293605635680296802855018789752619783410048024676979454324899521461954287236655634285944752285411485428429166260233917812342758893878578999430577558804512616121575390262228722843577468577718396302015374281260677699851348922851344654882435737200153939657992576941168418505629509756329924009975703573633870965199148137357499318269397917421168254578018939627978147098548203163606674065642904210675590877951147525144842022077646041027304782805501722529402888283446354533681027882656022115880619319655163084996917997563316315723305741810113861945062648118922027154336198823948038779863716627600052411113779050343878955864271042275280083909219079969021208943202884245701339327186935809277652254615177526815785485941085555543335807827818343293409108407259741747968221146624681393204678481555865462521368046210144196182112856708733368870681377740835264238539796125221959308978596412678580682193121625078690389333804389936297049734808688321202406859542571515919012736683683972842999989439282108196040957399723530841416082863275824467350450886718343278710828882802115531368512625251137545815732850965488799573676031125871936554294578686473430229686364376986898904259977270171664686329040084444068964926500969943743745649602208209643740777708934797880174929150684269760147512273691359878371712075035563091366304837900540774520360128224885443125313582135405770647301441190428511767839654692497580847174863932704276119401053697361934262089583344272595121268920867436763504052554945813166437446607309474944074040522204772977695458913333354552531924557582497059190127430640533811597538736443387779194079167520230124155406581010654497143908878458399094783045254765351583482521138754104413302250148564282951121953225908324801125279267713549688838962339043488594444372243086745432304293596067292695531162678160521168377360537048301259440943744046328420763018596071252015727031727565655628607355313728773945965175016651358197030641442211559004396544808273129327816805327715553794297618331322454911306826094951391943184128938129040340825782761146378212065242150077031225386400888544493953224091752019566561842332368728938314041202388517835218484623886886775784752074095139404580939219901561897722944547698039056139312731836665394639533255009213027667733813762763593693898705934424648581692381503280085682696653745222820210192643313146125071610270607639242946341792330925292193870079757631999411525619124767008979081579745164413868323269858479008664062203445455594504747147584228994289599323812329795471545630045444301226351484755596429595444875599354071451198245841983242507526245169124676830286934857959656284262869400561444038732215497011683408101325191982672472832282665805707520455085110705268041611214020252494382801135157009758253917753330104046247026578562518581187595322959205308467630120239194880604977557868774500064882403628900035536579701663519426443924293106746124314645314702345254424216001575112958915202619636478836071597724132510640614899461631979539334341160920052374710573113453269285931127287487652244573995277175990360226163188204259956841089691587615076186292000687966075482926387216143516801547199969698076706234367768160928395969603945046323399365343755072091267996778480422986490781689653087025797883421523748164321629875969830292567171452485547646637532600441050744893227026070512212723763670777234760079352971613126067081329672719683521347867739544662013015872497943013381869092323094288853057527542745785973322023335197931559571266829007442017624726936330042401070088481220519801844463959564116043388112405115309923506108939585387565886448405334075063034202084245934894521425535852370768252968228473579896074244201977381382744812574278536430143499793089797840579316258235976024925504610863862006523313066752183391984141705840982823268090582618066094124293008594862736621865225722525233898378175312716135854295277722991254904335534727481013785202415201338519988385903610447655176184065800011726247149061166801154371343499946439753311371170697341230731275908520975466688646048237088611943000211639314033393399636749748416651228827341092749830766249124955132194516713261537162677338100408262030829932025205311760763568671380846041056211130643756106837370404726150508141610179697010995099275633107747901403460953202233409468876996031329606145978475374235417403743799927351357354244473592068368925207506422360269082704672329300585029688137033081168099804172019775041779219088276736151220681109913318361081351790524609185691136456193507348754019108982961917711919211884525184783305917289383785858018125784650999249047359092376223071092872635192193733909063011884084257413298680539346256948023426727814462527062536469800540019616978215813401444509101858601742295634777387026288300913631210733847432386425248721721543946815318505540078845863766959745191408938692022024716996484021921886665537887970404423134553333400934085961483220882191486875199308099723807491038643861506911917595113367683181155554618892345560022051410313323969923060647292927401577764242858477253787177025322101974311901577784394898020172526968773554908405553184055031737386342409188639076581052298358331211716650886273886002654156707467698865805939346014024223845408164113759088651175836830378164016061571397337095914281451342133783458907406018192161960338956260559282096691917040530543330428703995164753411647712283549829915711334070382263779627735766050284732721279455542322535106922805553014401863768693518230126175905601382090666646818569048627273297826790100067796097051317873358066040494994437834897652122161153789827240646529191676188076226660740959431619639994975285435685678654163256699024897128046883117911225477676879610229510195380397187214450469508938791179011085844908566657767187683109517219810382897315576990166524307666010217398456180664670559835768007107262621646343381775017336452351048146855097078309519095216228336674151577289163610884257623823500618034636887622153717777289333616482494460140459394785989094528286798841005780572389625884106817063385225209561741467026627858604552329922620186384771353583850426450619444748992344003579663319057971986540687508984753128708308254776360374041875622661536312857304448141764293738414634524457983388210262606742797405004806405886608676569665955508476703086846098581516325894683747019610583577045761796968578265067064544355681713581908760794619588664891873783514549473966650649918266043491193045913794488602727763385397700244979700738716641969079470445081352481132495533611887874568197571287782446661767535614892476809778212669496576187180261046429038109373716785955762284766076523253098197394598839551274679494421689488438196771001358196885153235736503661632923824658510963369380791685984762423429432317530863534728199251188252896171578446308019214857338654582794135231379844669891097099398474191645822977793737098764256426324561322451469506785369015427371752966959185855223501995214439348965785271781992118273418224584471266185743773667109851873277854750805242962082812875336734917836600567004129221294267603118278657501346989490607388049323118289755444287817185671618047256629658497713950447521885175612470627505817248060871138689311020870369043129294412677447016891455193888972359474606007323454280748812385611803676597024491794945700349237912244958865749201224301059819783419248597141054789075760120789992701200783242022934318955306802160221692094529529596397010242645868054760071979624886176262219102426784526097103252799533450655740271280532090519796670473059291747504143168569978019642060278298956865415479619474948782522229741021254596578728074810215918186463269442534891683408021025701590488910977378375013300864657391235078705665289500355656479247869942308851106521863572165300494743203861323032943894685569118658299103889906388696206379474155750259214988273284643759323197061586981799728858836059847612779793187291905924176924631672307971170132254010193102623660862450381328846785952635365458965213541313812833573144567350689867659984478153668413297423470800025275086392090279090791690670663384623756116650302199238309952570777886692633860849315754333137637093270129182699081769579846953142059730392682827351009011062587445513453419226695888653796736124997252660409647248235033130256217185955680925140346021583727353609766502168720671278431627681464235142772292001267288381186336616731914536332900795067918046281591371347307158052563599956260417101958893788797023784356150677562438607390429472618607369872809146771625106968649388962896838250209902440629500861651622516129864234249377932493113684627347831909773172544164837564301780686012359138105005129411554659626259944321492019372669523407285824229283210512824051336121776256267305842033329407675356295087192534448921444854855872309145532889873638404747318309028513606534909851749488705353247925451475684152664739674627471944589615617206860111590189107716801838535527654179387541849435255419571412332037224856209564701451272473170027680814307836117596205605202706209023060761756851346620078235050659153296125055789315393456902875220420998623199660914334182813202020299881168838098105167690036042627293520461108307525348659110089085925897115135181598860485991219145776637050285343396460186669097140187877446953211164630105350928767799800404193839702261832178266608022679121088058766444069824165856682913714241357462283369506173932581472813284233150250417260073313606892154326638533205066044624028827649250924114884513933806242482212358643370469845212487372982332301218853520665362100311847053966244812637466285508693624402703985902308643669066194971276700715007010007994344003174608139534282152427300680371872749744975659952816716335271821680638622900923163042836387284262544143422412540983817734966283935173773425348852640056306779890272174039511545884037686716559845284933233652149735112377016020963987351762114339319348821743173936565435639590374326992476752083950874901043368899466535636039269210604162008987901284337748491435152567377934672136103897542816559342654131509960543670949047499216667121956164705727009875523363169388698107247118331598719536659062912282612802296855815046438762332882439205138375040742654565610232801196710745044863390033956585947515019340907419748139285220959417146634556099072260625645221354933080726613687990611151061763449381138969594251924201722260656656667948266793563752260943686378301234770743116809372537000806576739086009101344161237555644671196712958969957581627393510847872337641880041208848469626530468241920290202397027895075628693956496459855638330705937659051133953251994738809308582919632736902530835282984441122454241954568827590518125207248209750675563888036992860187248550849521503879599480102137172432193953863978917040601429093895963559090841122410736427950467910271341066402547350765427180660418994536347784043208843637745980262912482385363304660849606717969998952598934692815304062866287598176141622702560057607132871225146214830209543179799651072089819302462531456275292087264903726576147789869987668242925530792353123045355957007441284473468923300336328552805384701294672318662317028278663991891942020355781107873950262812468971236601925598880375246812524215522585007974351047487467354441169601418729034690634844532702222633379293840944566209857955961095451727625132651426973044590680710227754542907857938641714963004727378045820604847984339174219478707672345792295245517892580204552777180472243148529501749638195521407281816418625293988818963328634135143145592674122598244022600354955289790469268262446260594013283587952483742817675019053216783936976371092011877047181258014719443472379407448839835325158384957529421868756501842940215014406024561362455103759570167744689526535119553026965916918878937288925261852217077757473104647104723256495123351395128716088329124932725831158554134374072952138955290500675227310885942668277001600031059980969496436988580777689883318385111579240036951707436636996792952673051962144355413906093956533762074207354444287864266865159414263808752778069320269576727333815652196234407564324086401060807481034407160332955876088110773136231441891027885150877939525402642972979161728608103325555228089007404407716089533129164199045978904007041068279485687965941586475490824849900315560177286751601373749218986089008804535501016257792938221154618229096229587910078947332165911764667179528280427990549335211280825324123540130196072531832227966552317120878106115096950881729000616320339406413365023755989221783101444725267942863392422030487809532867868359189133594011300012943888259145236526404497098357019912548891954245106541619986652774299428682242259051925687162084846472588433952330457976483682038927407156673051723908522056868686422801977066226834540507776828541247777203634250458979760855912794961848586534170819302909417360944810068410716378310069744886019322507858392978390753861583872762290910104751715704931958669786012356515477257407787970227522692485803380760924875594672929764766455363479476483431489700495915606232495366478417007840411840008907317873828742426120316246934868535572038770854054666507179338641670821849306469646497291722613670470899356202027729174290475731221877593560641677867020218888938438527637990325864263254606888669488817364880859668980596994866791728820396263285306447658646480157282719397730071830209706635571250293208367532863096925073822146040717087800614569300334162373402002985183879634626844700688778785039707789643139287247484202235232907488914100715588314662598700890513782340192693602418892120456894991573492715489184287945508157146436325284423707133575970370340683591099628562827983673632075478167292704165058753554712045053533051738777168021032920690236563985266191298634296417623361245616878748365220569052804162282507742554921195948713328398507905467566771166513093187306955658965843833356302397232639078928277515079831945428750293353845681810743030406247429421501344059742955259954135459694350772072215395869547319936518492519969164406290410998392814548888082043618994739860996390605966117496725065280552570697241424120511412610017256006318952478368616394189505591668829410164717599041443351296222764432101201553569037754667486553124794881317769053638086938040519302586908775800298532347294870405478575590157005025986335765377221326068223402994065302844833656408443055886121235558221183321101542572746957775047572774772012706266511120282515120476894618942384501196565698486815878316193073330833591339421215007306488271008800243831408025399020482944448639587653048327321676333149625918570348157094890080282363306417572650239340708518671040317261116698108992276163332080016295919594232198441668027361543443652345484786601319783267664670698258429319142294423475458088389442810831841482837115514812023318093015945710256172003280834677078010331919336770413503927775609587900291694231844031384200017021567018783100862287478550935917081789764458179151190893299925663164300426618254141481193136589337116925634029093060783830165679963390965092880500500745071754770400328283490949840356198767432510801079215594724328222538263219565238381938019761132871582915888175762720194672245025119309493805484149458128903724631541099269089861222657581083325440088473947703148396358769987521897333314456741429253795739701442355025038547822327792416280635041960218844449939182436964335078096912691308494446184131824665254157732901588512815886231815607199415258884828738349049138235990026397478605887160543494670968211983805539126800059630964191467398406404121166287417980001493956545487799161570524137108708554878401684526438038498322390833679489848471184318562485183234151866758162029806116338337978388005394591024963386577775769956052095508065458057231180462387572438541239837129003958400716512601355525714013361528099884585133955466542733808803946612303020291688727877706994386311123741618170499046367576015225678852063636999455789342321326686074529851907494475116143903265607758156990370466047174932252604829760982565397463109811175177915054502359660366477747380872023885511847111425922176644911259826068987468560927697050874627430097622561573055321511413919712316946140730752308488000335285402990289174849270298281694111389152821535166663998985201694611270595438504065442661564059921846818820746977343268018810707825856944084577275191962852985750006566603679045563154171899136472318284319598126553711883622787398099030771065332289854946682052599301517903991424612569109189816115700241064034327928758995244538088199173871745391436203268851275806383478473126048703839771549018390237634732251245450005636487170249260592511702347682431617644107915468859853745546402751882739002505154347711310487588964962473363805972508888904676100349548663179385159268823895337597176848205977981402828731727675076432520266958800991280096290255272133415728061900385603972660861144406412514707792227040471072392499645052423324185170519797349749058076717519742022603754810018816273215786760392241887957287067111208145231631305189515053118470368443179419512973302196623057660816642977581718197611479134684157956908836285215384676840541216685987675069217587227195642707046198541430077230562738001113575264554007432021740812721178781455720574244818096731102731662841293354079648409709559167654912184860903497470128774752059463137756260907893102972323062530032094095156148552765551387781595103774285439009774832055045943716918052237982988330392099738165112416105357292411387774498868441025818087729549085152318154632053006657268244226037380839955814763665979469254429142694725313334318441435716901882728194631373265090483895945119128332603621908123087538048480441937271549706118713394902694815039267045382839828585545319679370134152113880700931973663614092656933744917447565806320244022016664049352902610487922647812385549673989155193773603792614977248522816931550946681679980907969523336165964138862241172621761689756077749951889451174236422339087963769286665920536857130166475173582681572222944449863183225412158025939254491499582781632491827857156103104467796987776398165820974803392364821459269838626717718820699933895600860362287032447871817396829323105101647336011501441433973434612068876667248468229670429428372019712843480822431894016164458499647767054070821826746011760203967344293702259088507398465548476395235306437616547359631454895482969923831938131050470062241285137942672088022588276258225365673607320076234177634698717584530254197427358211503563462894173704587521018233190106719970347970066936032583183888923999443647814223512171785456971101312028274591042223663324610628733172136474307634355728369820194272288072480430916596719481183425261856807379006792802613174817339557128738816189536407843563078581856850176860682172442408218342464919857133305009226649621276442481622071303024698025445534913510935574228808071789586379786039184122434676026447271786726990924389544459733349912998888333653741844898765783144413115869288523982938792252240877782357417452750389115400383716895874492182628415683915160017249179313418715163195807326410565098328112258875340142050674201996731064249171488252524097163005490256452359152659855988818988060647831813019412719481816672746631754414331821205937020097933063363830276158345621766707950830882906356240271312106889361977522331200264553155638667179420249435818945333635149135375317537287859218894116459699491275964702414604996065381297775469590365834051020832535169191973910700886940135914526040368462254830589828411379639650439060261776418553431025506577790537961936626419370280108692502441693358481615641402843182178652937548476740852241676764328890676228994932829493020101135562264485158529393439568614783652164485684740518478592979775618201349837501602567744925190028650503432131934752095898711421546102425696736930843139769510952031767758630546054787785935846032061045481174469741478783815001084076985233925582866058911441352313586607652346824315491082562753563259864958291342190468315888792553597043435043178713680181850906402409239714527150589472699262518919708062418885286253743097719662462901583722574551805404531968176062327750741262460122639529900199374899897783279852930516043745562538642789713047353083729436064405151282467901417542783458856863660512374194281123956858814713940973489940789794533459245622484509171811086555513241905932964055021055643898998753836408004077752200153024023119244658820077667865057118875119346170262755330568190249152485299825824883432263384354430108639365367051893419077186082088498710897350839740243480474970103073948141346294335629070973365309006413203796584386156320654803364677073432059780658915796442824644740781317806202978111260828826518155201367600874228880055938480994130086920388657601164792634838102332512890364684110808815804022783546384062370378142728032052911808221193179645733807941757288184467827832584309700190184164583178602041813601789533718740922781906518753516486750292295620464645419986541670233761959055871894847878056423433240890151559970851242982625175904192062099083131592143159154252943400303261297537443763660865173835278712889888349663955944231485640764921756787327270127230955457142707878761666812940660427949164192372477823542120260754696787773681871491452236157721245910896580171725317251758788492342148538325663962044321933148713398878658016070715826534943936881653576522359936137237306208190339690649676669310306383814923022986277175505337865919677724366578983015778377795285617008133744417172715311209600327154386576936891702246790987178042920322163984612750349521813572559543636227731030025574068472003062888540647060824586385596880786286763067638996054471511451850750761061939425714526783802115386171352140099933227114279663953495159558898808157832129866667063270057329431288389006234233578927411455509727161442459477283565450805956486720724519773364486134711756810689987175205663061816515911753025297642994875755696092452801001263560611473468003233662732338518885710601830786201200950429616690751972218399659507829947123270483628229932509961723171843752100203074865414485954248229792043635620609985690842635427642037533873140532003047256921949263594187002647165036628511320118243432092339570519383857750926583215487788608751900561263170032430055642090396614264755050497496717452513728336810150773458707961085935980696617202705905562312261360724671935382274545891051277501621831259483426590556315438360648158606524842641412340277703633660899912185553146182280315771344816407369544696590369860857462860373509788145457664135156779399840107938248582678000187088643054457206993939918840546389067862260615096331304030932232158958127871115949945012142842213831942446443475875401996339466102771215985667634473409648281574015085799957511376346350013097803879992935591738773481487970058677767157992265425840151311988514841759996464556617975772386028650025646776316777612125832167836091794391635111936322927084480325405304521055214182653067611919936849842786318823755928222077887190120188652521270915443925224871677921239466068221151227987525586385678931698555795122920452176309387456513288949744387766939208926044180686361639788847525181055072303320946037818424246504764279948590979252247851705187336014528755553327486630654811333388654863908037384501598130316442575918999811353551453329155304561354051027702278704855869284464834428023830682504341391253724298891110705074699202897356008700376132438660178829941287097828884772319040916417207093719879776585656188828656062109624294993013886022029892464082719408625584145143269442903696232456185030492924264947738245290292808950102344107751251796516181245740879667555474933192950456151890848653283344828412227023307891726015625214412531098825722774803143420526856364654886643554530000538297334517380737265895342951263388213287555727486629120153117103375951007343198054202504466495388043027778916769567221504223265832357503291683848012204855275516106954199173952739607019645157909210281524988811333163841551319131921484252604043018068976616067275341504835390879580890970734081954230789284501661417060078526526164016910909064756654202207831070861250255452013851931806164416908466904003064475933748212516091068912610557228338537468830289247490886220393086710749954743263172649945180631906345333058939556633341557619981564682949458891126594081435035293403002950751143449035189615744176230895989377112612692915751397186442819035560471844031104563577628697489702969961726286894535897691427643660246958603748571284419668060981869888337666670085064694777690938141102175580653477144087108375807908630767899634058475356096998154912971798298764815963160560664863319592059468303983194382955722672510141859578192244041407972987055295071956306855549612479493517018036473154872743484312221388374354749341618040680924511542723547401985180886785095587335874387003745515362743864593033298990939099503755882431399223196871408364467065880813375573842136892211658723062578321476883883949410340547228101881948677537802133755551438753422908241952832111635619801516184783053655339477277206681878097422951204999235990423615748368108157600140538626386490337369775569153142262123604538710440086309827796889849044527163638340818102952130876786381491768464238061816214365751217109091397884363136810641008512667841489670997134450835769573074416696077243516042464492852100233516468073734863539091538444226203492825909895368346627915484717227496956591679538405307678604261221654807462445947724466047191412323106129189305166793441857195099866924155920378804129435152262907407685776513457482055758381078113846693134011378994200465163759386509870012027551544272922160065459155932062829000280936687407380929276321987337947999310433819458229376825974506357053594401267608922671774972566825156235982401128487476962131516070809165612715996052157519710461846895770266485489993274829846642875781755024938914063992987580237649125618383790852358506145776776522399952818718733867245585142122305386641611807612894238163491052249104566005183744792506883687855350919376826753502963220932284915547426814582141947690223588901714635289096259800916841356674610896205279035418572705208173520981312170590189940030037526221519204745182123470190434138209035773806345207067282275555886904390750260705371934764945280000376136287224978515864906241949200374788114493292226627573290777331161366347128578298101438819424916607018982376888073744969712772911101516689038111381737527797957461513482822566537152452694395681730558054026942684922823818669985461119861612628480849260826394964754455556429828976635393966926227305413204692253297776180058273845217744442998776239950719368456903196432905749463212813702959952672520124711762165925394480147908853457076846746144387445095612472085794743156923594506402813998651560229964403982050207527424868172032456437350367009744121086773995402311427933767084996755767039011375917454306107990348546022692755795644635691821444284743389454100745738355708228014286230582915575500743296982660501942205216871037689859701931138907522436310821066410532150227475595653121482434354923403710238121443844558605417858180832011123083519990578513292936123870452029694928636105843653471988663800738327842564817225856735922407701866272130884517705793726647345530650745018433188622009482553010772784257393508426454676924270486590996494043653032285539070772883019021073434188649932896768191041833133645786626330990508491220851055538042343026892263445214135778686867746297150528062881345971528636028537046332603844022652579227479569101758766407086646028951838695984770186374988150214433945926463919989359485778349038679415170617941904625239055442795784570310183767424183300220301528440566580616636168454658608281111282892050572351619447616363005695216790483416777029191437333726845844699542164005229694131607538959212973745385951864227480336644164565890553391852674504598645707459557244587799222019346098353211504677824311916229477445979093543399965287245904923298113036439421747917574389271994664659644154790662516168374778166643938763631723714660150237333263278583486024995035666204061481509898043495669150566748192071111792045237626695384131420312074106088009015211570032618469569560583600804834531295777255892630484712081482753869434691968741996471576980136333187862814158344557738649731298016618283372387266814389266124328449859748072293764830236102796661756370603060244501682834497658840653419362334560289380793389230113658699230525184554614127144515179279428290406035871792258561246775842719610728251378256644191819351076696897185386060376526166423536212701372782726624615880410693672905848221424181627316295038013559304123454545301357005855264195726326463985789310706970995896932223744490821573164712566887428522270414710850774469878454047448684162067258192577544087483330073576504450635830377985598059379555336465645681708356337407946565789277007629990895967379073940092104132572277753513784636164132938701145425738961822674340038331795628690512779464588530915298396281622911771503661048631203006553021856268656586793826615612530647881215626989032835529273704600175475686649422077768141505058084427846575881665557396443712634465897806717810134539996890467600672466811663371069721706802274677222719884584068203392297887023905828561431375283810867175940654760624918867407051688547687344760761338916438811637885758575719756192205799891952511566745012404774009298866730046731488311279276058181739750489590726708721494815656011602185018065080478173894818495296008303664953556065507852737693491459067949371173986961667189231398480387875409492950939870973777849122031547938262347844692967418849576025478762278807862980245288186882994920107738037095083593767148485652575244072541417478795822284223303674806191655143482542408656886357233351730182875273054555107225276638190996934439969211790657809071567482227236951132824900319712311135211879518331285613221436028835918212443027211092085812662806150550154960697330727338364951064007557176921976411429846050437134749883306820492154846301812484506239708670844550969129075085352436229628338702343999132673736187454125035788981730361396623157599371894345778248434704099345942048151738106775975699321923155593895628461862528569897604679636970616380881776981217570297956539482296495176749951916516860450238361791330044476337725723831911114880273409869258662153649684793048903499574585111595996933697863537927666606192486936071214469262591593732538277769267504327769205150015208973534549059731041789210500076138144817927261966013419041349451949632604762471445592989545164049754146527018378639730259066857462606257905338762761076396419712358153126304913505552669536072380945278772949969290517209321979516761309998955341926424734912003327741697833079913022587816628882000904161702136153346922603190016722794109072178720167667720874388670334742259860630902647314536818897322484242099873785482914094341158730923667275638295769449840074282260918465879644923518011934229556466072464043652798391968775048150215377852695173064031855993449179448376243220832287316166157501987961210081289634612065302505694223310858478918451861426020568075960611185656340969615705607559513420798299954058022438112509782330349604820422849321217982836887491373560558667001344442792078087753989365525999297961825758813151928410774278337266438805992402893082536508351153445114678074947138833404251965478522067470760373444630856647415796413596364260210993468312809743662172776467157618040841364010538356269472738563471148362886812213097311848931154910465780159741982661913660648874692364526752001701955332417045222842076712854994746950934877966414448242396070785953920713573822274665180397988354803293371839830267256792055921047583759536621630356781690258340783767863882636970766963093972876208096362477910607059317148605341022450815488937142250531815218040300455176599770745373854598033867716033260258855353467148378180532104568864736795516788747606105863899864664023319769239186275396432607766244096926991124963033737501696605317205302184333243115739542932386608097924187716595225297367717532713506448077722120083036233390590294061479180206510496650075832537640657873148912812975909354447378608866141841001741743812052884783348368753055851569910410550712309610696329241863222750512412918220215765403960083875766350190638645350455651493430240625396048106595337338817884503652823134869214054047191895557301909336710758530125483005695873948169473299435754299166911169081539736546682797482427598710164653847622202242964668985060987157953357780098766925746154867949790939108041630798557031370950183387868541088152678343725302230879807723097498505808900315643326464471329795907534572021506038622304133850393727172179132732087905133183820074588698499355243488515735847990822073207759079983601165570367959159980755077659336445679519065519484076846958079762199790458035214490099293964994207798503583539667285871742659766740410890825266216828093677415633739297170857202417573232097336438413727409143714865524899697988732840192243324773479278890504624199052066461820338532626572895420066090117714156478249701790829747923078985551201817404350134779292960118499304738241637371663919844620520217505007174258556398936023076369439166495917439107111192007664268258935608317128837380623524942323640058618103082595979429629753372862404276502344950785225002835960849450595288427829578509729817079774880152352086680122429116390390861125096273793061089782811110115980477566865810253455788051206607837082369700525862735892161076409009903989493225962158287783283693779677881438426427427653908681283273562217642547525965539374910398356450431044046648800126932185800652615897388653181914640796876561464228294528115540167553795605856464165797031602001529705497957224993923167962324529998732861348118233178030204679000157446552649285699028749824113420193824098666669475606635606992626821478584112193176050940762577803208963877637160704877065620072586655752441456773227763033283430640283494701059196451998768681352083757120694292902946124294163042477281454734179549651841946096972660937624828631846697092082100799664978995624972216694090707536318681125513614501281180270074315925372587404903682917393766716369448512595685492191195832323915083030125184482143833457581822681966305384045752002613183121606718722299174750652584210318725702410219504898503963846843259036808922018468799749465654519858949571892304344707482298642534380914163888943861732709948140401679402611302134515691195297004550881998966179572277246702736186688461168101521108419968921189589543494879404494598969400817999385081799761408479723587059506309761134581077850498146613082643843966219459768868902841725429961588545770441229489904322403319608700892593329948990529237860742919239792626442848525163600372820644769357557002195643217531089422282716342339815247392793716927494779128455458796211787305235327065193671819912514138903337224935958822337800141090844204032332187271109471775573595552853986890194227390340156513653555529221244408565825001583978327897879937128493404302949897357816693395270326083981991258747129032383762317828283671954862954392196351001442108772751939567750257467028346351286575413823264025950711180358051339833342373396794397843826265022360934678653151475924607528122417995448824381941442588762569788324765989635178795837974968907516161032930688710310771845731031863328968894070779161414049257024665323632495024671861355175216821202501451883232076914417779810219278547352211239218246797600687604008670909504018053138407013633109406069138405935207786865307756095140825847289822776467028350295139926684026348743638571625118084291432605202503296937437573396619851923271426057707455104334735256981355386449967186422776923529046760447626219265906129384417466599339336640492261757846590009904924536910316335541995291547908726757949896948031219429807567826702752531173292802989636824733355518685751965165641230493376317881180643776039428370736775802763971937291667572366448936173460884213759635451307636728067697828467186531935942380082692094719779760464016751426163378759436442217186099820114753828963857038990454938118046160159123351818840888798465674374331909010812315243951209073281307296665999478694953720736207329435775609414796586239625198575668967676634178308037168887030627919827498990165273200702321601039206846921859062088448544705401607361592759947751568987351544959218475143863665080229789560956108022922494940392731477847864055309672719956556839152437361854762151385055420592390825910102461827841351418138438797252080329027913267734207153344174276897690689161201497219729674496037413215700764150961541389962812569029743071314360276438551123449460030061347649781208243359281818197550885663339940573964038650993152529630085713599460971953736640780941355769465700773426552510770892144766119226061503276049856668906473685767110830017060508025667598691296963867094576154372853596987485676345960238567475920671555492219040237565047996635577600538826260594641623499070758153963353741630253979209433502432354876647445036727998007540582368144441800331958430248526622063053987379513904682270378454058629375120084628534968536198166488564747025411915092079741396763140314028004080261441036926326793615375456750153708824172531580888811018107893756724150677341624183340846782706575080948725427301650738454475638143663282305704596711488827378367230478260524097318629040922449859251845239423541173543459908750477419424778050640519128900454397602568361564221401409139567747408281684983336638882472168994818853089913043163341702965308365101226585682456953518988310115185291595143516000626508567811288040127122924381709543184935716427711708726465239871419918166800820106504077893572041127726461158000811260713276678500513892985422415306944208504050372882454097988322066992734134815155882119215966962581960063541784237366226299407249968163170586974068384501371946022390150596448206506103928026322347663268450738760002222691302421315666657446562142862176192408360803469375254789811969820241681166145693621904708299446964644625701356033279292232133049916767546964813266836700480330631358408298538293734591209471821958960737951797019909348511823664136740933819536386487909478928546593553434012701683482957434685337834635898616548020060113265504376106082702374319772345579005784015853106996768083711950920890248318949888597583918285106503053034965753402027756888152529761148994676678655538395720578744589833290688645622811593540649266697520183034458553095845982294063537428823445805578968599918071199151624949265219527397097485015508494102183978419115612219107531365452852208547919793326368413050852203988377234475377658437695129309181958210569163412743800028675000891540961571273404545111097656995929362624556798837435464674479673143241055346599233565576462967661046831122442076136674453830780959585516189633027978090785281524075822139113260095405062053717352967820427795989907822928317026596444578239167885302417306328575874201681218510030698970042349048369010418835280333245694026372177998473283586192317154085436311260603356079824733754872212396444796751618312753934223667362655505833207766272790918646424775294634180996173747302930436095990778727061510020847287591876952288845983452587675801511932131985948250159664648786760364734605598362469837440870820643447241930556878064623981473644343508146721107724138072093133903646765313750489949436644015716231221418916486461249248697350893684828522328902262005459079505627473236897831209245856089656537845106334622314235746730623776524051027675103119901778356667715646186816251187301364767507497650670162818943396691644096006284965968828839572614545712313413589573102530634451838796533513798529730532506525226229496433016508698363260913785861477928958428966270886829525154529523002268860033346700451960926885779669088501552861114390846705023531124780688144015899548375520221572672356925207619475810639385943298369108880751708260878430876409213697460769567435088960346203510936433704152365329142134347576013509329048599088762022505392422265786946327234743992520619816897458224985125800988491858983565899092504246243538325339016962255424481972632134775673294806851103332306678484572560354048008996065648901726355403954124678279156754900739878404060046018992629561763567287285095521969341931438094440491157790029525447146181721594648597532167815636471123624799693577779396402715893943888231767861195819967541723278465607469844883360954163003140041643675440907874302566263039090863555640652875739543551896512467389500949008071830218544555647246099177637249881981827549197260646378263709011036954497747520606362164463755311137270983631287515654232752042446196068016793021584747883239377782310844517237461666375987268151546374806759801639921592376130413654901498534800609520821598840962916767811479748406539921404479491829023974528428500592961295784929190511401345527394547995246114389138829494528968411994863413479982357735607368018369482894538038770178861358147294014223780291145532194892614203828318343572099021413042158397912051755951197927610199970974805010763118428814131264062531016520274825155117430584986482129477757504708027240006631428293107484519551234995014598847179009018731515785419603717149309555290345693033984035382118554549804469164318215882271811709785622297272076236777557059939328013157886923268585020791065733794395061655702441330796225633369162640487723889117546856102746536719149563295302719830592567314514852184297360734744054173200900500188504839899471926289344175045571287417000791553956145260232066432169313416843471346741841203600645804691474761750913071488674752987618474395912047278323586402811526079530124231974245590823299207246137654252864545402290150362679559140601251986493718446628762148088530878757787390577219285673464664096107278107639710935607826846787750610429957029065174732926354637327175677383251833892338921460454885821761877302011661251210484679160794091194494438205255752324829127029196393908420656105640713753464941211208628123562825668096358308632481674370122686250060148330597770703006719054979142620461691027907935304894289030986921761414527074748275344941908163823938586791373269023692026083591315702069673096721827692247303686683587503854084355508389130897146174992073680177795579721509892793515659296433475097718870338895096906918971216071530262511356780445000339951900293438649982578680745833465707143692908509378923118791646333614862928054541036181083065884816384412111041065517720078681632395945051320172362368101934531532693414420864082621630313265359689066488663772369565418282819017047557702214962514289965218001411684675211730841401244955689390532109529490955054292034269205647225604031504627271373811461786308180174379152412632559894329018172566743830719606087445411357744054009655332691490273304210262689836863196620754547917906556322765751571187121957113357732690214059452070163252209147069219636947517674699609579969704956773029880388182122802527939828932702406378942078073065697963503210163461037231651547272991417537285658423680930285493681476231006053497559002664095675009931819827328792713481440772793075667348944523112663230045229613311643698723481966825574436714865716083480518649733769828571227857854986394046425672403811429723238422745321270501486658521748529988905175186073384611561849146189797781334518189420131150464480372960800380320311334923670062643246438383681595930204543298847917167123692742102072107533370438484954538437764897679596248350589319920936511091050976052020995925968943580870708211727604994846210546405225477363154726758843077312622770203989968918645101114577580212280731646582650940541941344630027699147751787322865642726509165515544054395011736788572733808023508194073473707098269452467954463557437095714874317785376908660945097494158774890247070848882695224220278190411019253214108754318297987466749730488772240485589099095206486637459336606382536477474247358430748690610266288909124685517364100354589341723243379333111010730988624548816092757170552056934187269201279806330984837798363488016014650527109155402375871389740238318208756260111183600420333477253286992233153759334027662568984568155653506331130664274499126432144349895724593440878868928751753351494791953229920176259599583121568499154655240176397468737656660333638501536997269690283832096345250937681002549664144882218273207163849112362871320692858441749965162230564131313875953292753116641935656260162907158995713290661453025609746586064326140775186756161605643741579113158402218642894280648412839711118595416653421357890420960402503608060306968830553692295039084298862323033597088811248554419436981300616168342410904618633036573939656000616060990737385861591361754318027320384683197399584287211888107905026237084409036233598061468650249954726961184621990102287539654333226283209315732387066760396392245326978046020361029003567181384452734350586455937796770947138094852350136116479112211058550144306878091979187565529904097586701750866417745087728643560518774556112867233094716988837563191589524485333241481545925089886141608492238054976070782381998032321435377349392064760333829135490077366259256578499199084990075963197435723947450739125642449686940552069820632088449925639664864901341973470389918067243534313433339283646739194518983911397184090843855427874945720593651523566603010896382290206982744771286495177637859578861047857321637630046338258423106197704186134299194698711761817876554898133349171419967364321933204918520874975688993900408569524578727841915800689474275782407780679807657339485827670072459728438299738272513748701663435133410561945402073327609086652744606739674491543103129202236504679297697744514781765218852175689565457763345312427667247352344656502760447502748036385801113202949590393838617843057336846079216959687534732835157567388444000953901030684912498001045708076909636559114644482290018688397515803069682599264861906115606597393331130553034560805403158069636269489727005600552074101131455274737808303509835445078648195598056351538096406268679699628804090146060499843171034453107520360798653742570805651367908727033939933115815521142738974304129023632959102119739077782836724502859827224833237222081347857536994869546483393039725774551646871137570664146797365653314383691131805825471972470185301991090834560816872246524307356288944658953542126550929874522831605430527075880763618566349300903263739120216582177715630166909403541386237557972750292239956988637892150359785321521792935130545600331362325243526623929416297556849771079586000835266371119210701429391465695224358891423960902953308878965995116500619906521233725856613528027698511900264920307996166348521509297093400505229600207081269300289883087352199828285081629431036750590542364904604768851429435451709668384506757468354933880869928639224675200474769768974243978624526894653174971166997353896104207226662680159252832926771922833774218736030981369393010586045651699571898747976639928584562520464228957122581739306800508936619788872569541814441271362681081140997640437665713425485540148791602420803736768748240240388492493333223924360434326439580379313569767514415703390041806482161775575088580559935500583702026991264579652193227725989529454952008989322398389093833165936430106498829493671061098157403872014731980300889236536403257253178340043253064786874684614978282860249257340837004402969118853129351379654737548964255841315820010158305878090672548669219145928000828711646126296541640049356700134810659106180494631577908379251221534166428167179037936050429730919046414034271220022156175841016224568610454755679823851209030106323524105232410706349204342410889931371682410411024862968796153348113321957836958862169271166087563422703392380923001546047850734215312425691094256901700870362066707565341492307556947159676054915829931363990934868465898846144416373567436649973514965148221240773638933962746017172523736015289071749782259845049647116374774438208049091798359397989213101155078641454788077193791437817517200491867417953704565961295233171662938390452079994861545536929824482406188653483772931236697389737404963632196603673094415656882939057906569233823129842836028576207741908637464886982918707226925688476674420440028223079007105752317542797298925976861530034461925500752079298838569873041673337522338620072290575573893692521704590280043832257305058203238066765965443546655515900886789126245722369477007450334706511253490825538868814166655149962877245929050937965930672667472068289372182510597093687735771292178180845624358724736155481625145735017475552997469359066370680568137377654107798354082026271525603651284113589109591959421948582094927868735961542509887437095431450787765772972586556056822719477146455738147371844849050060211606667251358014389346819680161134007549255718014348555912267685434703409755164139667587581571641209902454928996251847794437954581777290016466826658942146638924835097533392669211558273280519693355133214505669257669121253954876281709744125062390348753771037463201918030229166261254246917945773671960150497296967932303684956202781396307980328019914112409696422469410997551666965355992615648769614451187328589395192718098701064912069823982276623786490261221148796313961657704645568835740000005019386587534703100312052079601546028995729585031063420952309010251747169037248993731344254027335305569370394220990807306070353457725324120505470163164062117316611947252554644020773920924254604218139886239192073518183526706135372100050910257349586216434773714772552013566805463959030705831493659414028949211279263493308341469854404496375219848356337447662301629252485182808537122234256708897446624418420703224867907270478097321356340062035489548292742596519084906738610066047610557586970756263426451771169812911225982160361988623923819337702578600628330669922902242407278935737934413642547218021822420448024172334594613392107185311994711235577129892426547017621068869718067758669124618765792196071018266408060746873923162855749866264088767065210661210591597211668465034029436981039009560308462796658670279327872881842364039896240016582669602567446918866108951589008744341326243347600752953361415539098934483805214985918821222545387325320686128348802404463930381066221097245434344107233181494479294972377003467986817867999930764462898951567461041372754261685487378392791881795015634239770958615263646080078172333094852439164105215131975456669501672411413466793339724134920249421002699549841139656191901707116833043517441917561596611949165814210852474055142658221015920686705446927766118189382882454113324580374413178650185979846084215940649883097431094395641088756021740970152560261355151131575454961309552292820313253122294072619986057757583534198558159965152720777570291364342417070341342860660620124330445047408101905086960660452347371656749179624040797315863259801875107608109618915871319506389283521932538242370972396582565552905915289880708023594754182333752807198674014337977038814797744162842791387146188317876877805719346870252920268499401820091960871612282348678906671985761144891115818024315396196356040221660884679826686456590138105850928106223481618628416210613205101467491637777717489350600799278770252754813548557345504807573626516130190730160662909786552153385057196671180547599983226834211799456119370682995545833990325075134505224641181818029601578943786351020400469868671940673761676969703458458916987796672758319017124742969318898816357416340325289353927391338568074321547587961492371043170721228297183567347469203330792169856039435977043580220071547067735902860094451994747830520156715669964797975210395245584965565586938639618186423168866452858826747107861896578212961192006249094393445175262957064632173908675517761737019714337014326915509057830687226240446768312672289931520609059207238177214524974135858560907853299447255288361950531030776694492129736668569289316001128650086345903547875835635522967413989736018708021336638285176981138481087261576914564630068182607263671682414234871738258466226482193500029293137015768460547762364726799796762379617937067925567031965150723849751668426317847859832062654115261986774677242695458731241897590249460959287569926678294317268338670758573719179541912687593510963372923676327921876465008932022855852478181260562479533796249527118878991698745787588282240581541057145926346099726867190530713955418483594602702663676849601653185219048864645032053303541276261791397122062248586786027587514041781229069491938604842873246696888728537181086164508830145367246556488073288305487685083040094839686420839646609305420314154624301863542107405309721805847050684818594843839282722912891811516635375487412312937587013074293374854507013694725873236960148375040296280779048013313838471388339545252296440165444746496663595701884246774539473504648274272047567663773300724772623835185734904583766202410568938202334160988360110520354526955715575173076956313325415773384283475545670709217594583793879562310869858858273746496078796129952485436690167398653286433023382313426216094014348010974246572725966962395450948007665764733770098850665897367664439755235553009565243274150505966938964426596087481339310920273059700664297933569127250348369880384157120772008308616490740522417766769975700852393434501814345248674450326922408662770471749332746542335253388770318887542411755429238847866446829871132502755830154131189530533300036205409619935600724105397064003176132912451544282429525337673417109130066941880981367934540814531460712158543565759816553478369544921692095249157097387866543823121308195346963682198325431200716629283299872560508020099512505390301415747475381010232998188298373921503532738361230377827618008329772138609995025780867056857200587565339647008239756386513512472461278027777301479337248911290151524906291254405868292819544439682950295229749385418896316407608652709381080667408963253362518379143024862686013258696617340205182157596824595811867723323765264044495912122522074080648065313312340131173833835849108061447139361040368504819496582981215019666012602213312851140191785895263032918437166375311645831793122282200360070465476774381414094183775618333960061480771024325184100920483464652415071125619437413231734565288262919873905759313452388824469440455846878751191234854132526345303462874671397006362669360004380648935776880677004755437729492695579176357536986291134461956347010665861148509275896730535329429337188581637668625930376455664117573756784312805899258255608874692899164287498668116010503397950396278552122400498795763885792132061518791221363368500126101935607590426205267618527288087036041420864397652056217853117840311169498916168329112201670061768614504720802278232980690041607999256581238373175665292663020057424990603956832601757070164540384068614970207166594047811681010655526723507260634414973691734965414487670835957707041648724766668200584841076149183266769397570872926031011348565383502035972014689414967190959889622955244891632007728305608360445945714024859080255603718075939511854682735876264849548214415732229476126495099817841612904867597082099495093195639513867602766805632008214096801084110688350903672119518923410016537758230459083343122931347494303602585353302078527819302224047521781877765270139559019979433471376970017804128233629791526146967071369919820486176961662160967035075733645580573823776042284568046711513291236599736734976876203216379653194082650813592338170681967673631724008986560127525198350711732100024403549108663518776443504868469975019408642319812115614363069261991273648744362523056900099713207162941258087869580396117948996445046531289495943515645364340661173279804137948932823857612894208777284844154845362212451749212391533835675691970954687660028902253714028508506855201672257039394726549727554798543199479321462421687785371599989913361916482369724249089124202478838479374143332336194786325665542401343503838532271267898196608985394969029688639897187884257926693611837435514430106535754849648856330250839970919490852174474754221226685505010947105099611978295988643470254610701164523968924289845063041375021116120046810708966715327890176214196902944757491471748789971119945512629880448451483456520716124627820202820599033803552160332038203062765440002224251103630549670872082574633190329138505304092752235481979204718171838096377754868528818858357887015533154415904666264255967111282056077872753346000586037284489915408440306623669069996212527502807262696225975060389596430946028906985244270157471421269373641585565247189245622669845995767763512161307761858406534416249786071601093865498712789670869313246899278190561865666688290560611759896112843045336285457765132427260180066287059963807688740592572167156261878927907487668104351870654853283986114793849389664898172507972667420675921121477238853762999682317953087761978315024081433059571330050336595437540301228477434424931295711521629576454862738235674314141189652068154066544380270165158409427684457669923669108869294714316940418229552602728302831798621094662334388711466443195166200055806441914183034129621068838227665565313794284885606022966146236884630210793023735554587135300401144528823446467278416223318010894508856574754836903546630476204582858714209678087009249874180653441221293355774839995674151185257798338227007838203588744380435043440941505725102836332567628114408853245585363526640284959987179769370174909691571589065756238119413347022821941007638329885995188467527555990861868212895669247249475486469800434128572651964607441304251484996340380535365249856187008706338984932987386303586458035254054493692421949427915125133191442676760459269783656139508888046357344849302965666289930893778747591053090338818522200779826209542087165361952051203118611622257705702192957267587409403117349369104682686434498059029410310510384816043881046236970652960532513924189798309281119845146247843979589450874212429983222612932406649989064364565317010196008487192036419722816337345860057002065089269122641992337276194043708786867552208335603976084305611335087690738210742259748987419736272801709168110362454556724924802610748701084010394104295124215839929866684289013952138975170662292458716626651598150478519872141456515785068121316281080626844837134690355740409164115156559209610157722558160266004215482452035775668155128624508026971063090105079093840869204444774890672968998307260862514059796816971728251806473318226005465273224164167074177878512149244288639950308916613699907714447993368263361445808244951624074939063269211074935185172625973896952021173286483892770043246640701119965308775726468294490919240081446337893645896233929919856530962116850795710203934876737452713593312191792163383622304204565970912284939500433047442508620582651455151136502097093285204335626161313735210005528020011138784378314730652080290098765077528373387683183419185664328455259405844408694192316264791725779866941524338119159146678261951586414484685874233922720141758745087643674549702151671903195976199855286284534163171741410755951559983730317863755252579943365627591548182378430571334545491225914469239749340613269293791212628910975802611851992895593806440196623550773180302755733187083368068046032695214682430026844938809074372007535168601418998684357765454175931518391542839629439568531222773038469588586419175150952882130465899261109778796298711316904513391335071366550826090498008191200531149771360371826598800192706233370191455981383105605230599087304624603355549424988354245572133453892513833434293440543482201183366240200452095483603662657498510249223877658233632076695951079657586137300559495345129988041828684305440578914370660782552176505632411415023973908136951153597651810916139995727845796535835283081465232457654878436893212484464849174588239772294891635675712511164259825564848552899488335798282008730827484624484293327431526363506307613789329706590233096968104353145689211701511737446917308568253231691391082559753845386366710561213836104607089486441138012610209955726986812833848654888053032932650497690579339030641849404637495788042650945133091770398577900568857513051668368940667364338805046374434793593842736243882335885024252981900067689458446583797211864831027865463880311040720359596199796851564499689016489346946969222927750728090329339378163584751582406286277300886266200395734520973316003042847660464219487586595588651724406324660730760021143559123872439302718458460017728109390578897880523558346562742574285410454161687125877880468484230335843052687718731827386183638475555360908963714953664893284980037644966220266596884862254533738891777617190434136619027506931001678082954200084676972539119185299058910442732747285881243406413349849087554420182770318259677404789658876416980420197082947729886577866590532696442923298556661767773141786211672203458307640503587421015259084415258735401778076275894919501884801078310512204139703050456952171500142386319833390743259120691623803728877005206820579805963220448461312546020474343007298217880770312483339030129079091993632563459284740185140388987138730999424547858002924912264895626632617197448232486693380608602348820829799895905824339668501169147123980993452667389782100158833559999027764348801419500629809493814983552818832273347438560333691531733281042925931966928959934650128497532780829560721757174393759740942704371821118939752008119794685276166287584549674506346765386788628304345488816570054484672860313361995582859453990459954355321088598181469412321376149683154943686599682036788096960364132743713641411335841924956038593684165601211871668643535269125358440268539211854617277686424814179734897003108880074519911853812511945186608239170271199766776066259901745555089829468369221572066179552809129256444668541509938096116325363818648178899041612939587693840180252312637842719530952249079695783394980616634551505929088147796084556860659100761257617688755798230466626848348112593693803211290128624633643738472742385935218956396389243320815432740753109353463141997709651279075304790036100049767491253840615894417057255236835199183731406544174244059226342777364127892240994129042173531034510711989798737059084622149174588063281096306520267104714557995551182583701737750598612171361309185759898136512595798530961130777769500548493694967892287382459499700951923228678443787747585903718947401151937508138256995947258715333529847422782302036917115000105396921639658386704491652311976709400260704186488097521851065974388873283013199833577236225208891091016384941454274913024387177859761120928669917439659709069989561900202138387462379969289728070306727192674342331184713343265574748720704771228554697745667860053457105797278885593011025327053001397599013146790430492201265733883902997291283144912353922723387719178992907733402431070022054725880237555718021533051738904002673107490036786676196231017962004750551769817676102560205253427426091015556729345582076073342260011193992843661389501627019401816960835897333140547515750261396366548349839652871635340693209408362192010358624268939801046396097328609588415235872174108842589046511669042924619566859840615922684269247038155849551305889093798075861220383455805712540684275886708321568710962043924348476798458786370105757519091638778919378067901963819426048767589677612567780555269196111606012618962030911494128378217447491756017209564815632260165049939124893318402310902714092127438454872617083686359028606487507323726076079080163266848693392663322527647110665875296355914730419616987586088488993009051635914021417483203922159484605758278204346499505325257112183809226154334357660137231928397310095869347308389072079727516390020803644374775835562324642030763315952008992526980507499967228279846671514292830835946653521550257286013861844462724682346696791640104180749676653212448279760142429592923625782287758297186701647690656497600978534850363227585329573452878756061934140007434655982507166427945691957830094580640135912615067737919641718467689805041714102400730213186844346738807542367699187923651524280382278155774804498906966547391060077044122216741864782355283711063647044258289170986457945651172052120767586599609165687999803973436774918210295080071373121459698526126260822951582752057200186948153503792567188171211923670661870707410743204049155842014734702725121503405870254763454784681820018219394238292132574683612254833264080595736975728075895282192998867483342453098089749435772583434801992465968822981292474032169982977788112110568939423488006734367319897906822936668793127601443897691589410424435042688032178394978011087520597625514821729143849388046086874874884516533875530682601691428635256188678765421071017397919236106326920926526248976936949948541724269913046207732515694254342636519926677468180628429184678092151968585014434121930363293832295330221191348042867663540091851500348559773515351573390992744997476090772937941057331176670176478381186997154960201049547522883930124000460414291573554504936601842142818187117391729536152184996372675086127436377039517178476524722476654193385321150975178680818971273953813683047066521544683791456661216788362115825551171436939351835113135564480805059574172438416436550981791557349904584480830133218121310599941524178319969458920037489538478902221348545059707297005482624584567256935266369282494231814859762665729345111928371936678542061714500939328210530935091865111973237968244180870088700660467287800270438359658649497475664973879242175582853153032143227279033114058227287969927736330801036899084951825403945975917590583369225665670652823495818836832510064222254352088604960139468447648119085274033941481531632694817976740077427045285297418068524758045875534574296289018315503234715013194914578412565584422285400900878663070813357961115444031933094812565575818043634553793042701144724661235403491717664201437772609288038252772101858972655923239703843120258529671283151877299151075922317451405788696212765960937105318644282596868838511999170530298375940048408786161391184522590171938377202918883953167127786611177433974397710544305477548871668582921005728569543242044521703803240524053735579084711857514874476616631889172156417768678924303179533951587630038846500197835912200361202593089050085602505514670370994203065825906806448877242998658989085329251021025850425449164485519928544037086804419653058757197959365862890920849454804809518074770493380218246721009896293153520698378856156107049296036905629504846917966162422441603803850711966257967573255104309720876758294431171246887807941895789952557333946092668692483079589076352289382916492599772526837793401797751525291710858376992773066361509975431393616438934482314791065244750288166953550820639609400657092701461290480623282980210743329583886621307429350344612666652438347788178066274162926839000087265905727428690649327250450419500861200960064861915578814575276035563563303745244556046412475704933130711257379728668832565104454481911612334438063985522679550441363877768645556732588903219138612736908065726928166726998907243777713534063613410724492395010729418078336253123468657489748300263933634883271113502373100494366720250233424276380987917794828329447830983036647612055960121279248243945066854782812171323407857929716281550578971541070605479806443800546475424898163718620636961007236693617132454096441152919674124984848120243049468786749593151504169504861459580591788520863739573048874927740209376394539389465866973671911458391755038079819348047244217970747642103267584523819773232585271750638127634942164268597742695487687250721975579971617523900366891138572435504112253923428405585332683066256647152472489740061391431912950285318835388388790855977582187081534576160742224721926736086236251974763839983798815310740478971344929260491508190420022777220433942285748480468301491617806063305064876315632561384464188058607150873674365827947777779292050933474393558927602189531249417437834904066482676490261790295678037656015164821699681112350205837718486551004055802526778423631250305469860034699669182770418116979172205143274315225522018201283907348831588873144752889787233159089072741608103321479197289344129576286094851418317663082119542912917058913830147726903199957398917240694673024095111372995419975216658554293086474179561144426330967844285772321125344348257984511742355068806724187065632553307223240082229548105371386773085038924715792672331766971129109624633437563030144257652797187334546266499981537403494370815815899620759868954863440744373734578527444094035844213450174368634187014725845115074474729737043386514969275023117676693816660087591491940947352308856874089983234490774378527672773059229278427649158221031038965102101522648333599036916537107809354909424787299961472692288936026617425385112265617995573370671668955796648367670859386567969480034218559052006877373424378350151458038147302611953172630111097000510381965732449749145435613330794382649158624317976167787033565690783451876011574592812979371783674589915373770940947401370736589706197179054299141378982345326800206291063980980727094243853657722226496709043005081808436094685705592172833843664641473472282770200897869502194279412271047628786143425658642482299598629827666473083531190594057210722735856285663340277132847738421949844585712902072559801908305114355252607180065895186701652359574447150317877304785723571950888048605695124606643350120217296078856044119766087445186459655298542289553515972772863590025368622124320234720344802857387858121766990068391784842902666585490578021143235090874855342084920916351128333719950160795247635860305711321648691669517488864091591829005590669354062382022759383029649905189230305763090606299988609082281204302716549709225635831161645562401705744563394113881464508953289711639599952467740511338792626573421253798441212008621033580825083856145198547887171170682404212285145246674544704401528143711348031316429131887837864266162493700861159216910070226805688151376067452562109858002683711699603989893036337414711090477344459204893862607020457506500654722355004459818180415519116736496223791993709878091165057825041291446024170975223393654236938563824237179240509937506461700709755291782634414237900047458386689829493842357378468040874933906954621951010295579933175384653594025021141789935121223511319079400579282134259465000865741302176065041896117184694657940053272012468228171931243441658474035188450923143564534873962046391321771803704515685394408433894566151422399241935613701941632240928508170350843021392815332924606733349299520226035422904210457446361761295485426328918842960325045901394681826107077926733446633521236309694358925719488574223482552177524564001310693363702075911929568816222244563012677704614264006669676713036100417536724975926194625875237801195547968702035186213116225389085183929933282177674969090815382390671299966437018975461438828764340475024894653479188805885791440490264496832391733105013749504017784903724640437883826935199126589731654519057824006003827592093451006119319916253134729144705990935932462255493775474154136307824579235184698873981632948096712169283222562179345701738595203023089981145163797797279554129258044025273287493334589976124777896836319754095871302038874469975854015597094110341432541414612806142224384730653320956738862441661087080552009165222070365542571056171720776066080858728405650026311437325178541460782040310276938771631385696368749272276277002805027738698788776480404480527155469114183903414613494917380198531469653016227592441458212533950219335014264998140505964156221441435747871333103272974205982923790060647941290545259449513830061439182168496063776623206209952374998806141400907537409484714138382545455129835951943564884343110437706149646055737196318440438694243929916513648172000566357081667705217763158578427065735253242653352847249849836194206028870315704439031509880488724689673956204133008131748403120831765983751425121849225894678797864268070201322509923804675331949034597132259446525093733010962505005574984830896022652045782440913992358249972578558256561749219375721242374267115760193846222745108146691138366199604377149298085578060022555621341768828486201477640663814673418524190195844128942919836494858874426375162194539631519427504587949444345797808267058206704429073839903752629561369392676096852639483290543177662318935727014319113018611114439467677629577794007656070845321175020061697675350814403016241458003121555760784805698456367681333123518473844479376744620252713662349540534000955119547387393235029086512974177419627357120652185370090219595053035765859202979116031760319720773222949148459640252587296061920457308743554252049484716345444475315988490334025876876492776553929147648485697648932141796258296348861929822816102990782580828385652260457019819994538841517998968418323984753972406344955675588801520467888701689904280664746152423800625937402394850559199623960091154103871204247182808257255968708552848076621639468630666190189622602165197497903286592341848497557618389645126515868446691774138504541577282542658407637338850035744377519349342442874527645791979391512713081161416081287481523413702817255872907819784339471119537575907940081157890988727343499493645805716510532017079434329636578498688345860421603711133688157749685533814149361105112348839250024985036696792538418109583689971136272275383809725347467606679977346740580005830387819252334326375045105413364626482156287037539643755677402029028539548788953649848367156031399997433389087119708153480237505197037699341996746519902908916319788808358432529581055827955792976843427660719988478131319678172286578522363191598198734598604327654367198785186550063809275291862740953273591208766185333707350455516497787827347984102765720634794486030711377783628636662597256520561823122332836761443108323600891893710603688275958446002670504873263823318485990759646080423850097749646993622492012628665668638786710819336296316100086525040312073588114976453412934493681107931429497430614059122001727843164080595611283048163256178957077254479142538133539070752978211325757605072667284103123849266934072380397570948273865572827543147851744783155948781607088787963473881773040178318291997522903521658012411244438913554241982347676190164853773695078978128482773097441898402095922273488808293682344745171831707513030423947304165361226856930497885948473403887380790002746216412653304928769920622893685948765079697342416250453840592712842422323528510700067144790327442969570072264452522527476397748546512468863998824222091041487764083510797987108407704370353933847780151167388130331872211013567599664213103661431838166709609651346561957145626363779828438961955754463107612975522200828394010999596068851925025871919791831660997352175329041482246315249754868976393394775354730135656851653136014574216692987260532813503248847296125457589932316909352091962046380205578259594620501460753986726453136645367723032327235920693170482053117865545831773492072309962442671063199268544101654345944984696196492969560744419793824444840707800523497417226896401975041825934330323671369384398765592339549798875545586409681794695888752696207631464472259229182054641559775669909167987494390598812639920294988488971614655412425814666965933011950956536754444341961281231404341718200687279127564852182968443738957585355470456525929227863898548189074796748304381195430596259036032376204725166501919189313733078303784386478822624406406681213247570821667128835397940824762604525350697682202337361836796669725750842659860123445783022608159423612231250813514302799769556898636834454110081513886784150894033407350482133973327836970215986464235936658065097129939557188340784936225515197775846990058804247362366163004580156115705400838873931334848171263795874608120051224333237100955399946594331353172088053250592811661864866360386783020811938870782877512212034963014402258720312332222244772508615035603623397893514894403733804446075937627719524407420500690953035491602364727560342292639349516005820542533204119994918626841433398780974551931662427764087463825522083744048830644768473779692547068141177745216539785923758019703632262658114372790590810731423385202285250808269147858429784967107947068876717936592357999765373056872888582763232507835724493183091889774083255247309717755253173262294961155151890100223324015132958652482688937353813365689348742556402222760501670734332146150486582492701473843654482860630441237375292576901024162531711388107177429071808642569376892124772741877584989113631459255707223033476160112904492097697321321044985505984603626929357700029198687169427291240762152326671012296359926190415201506313212774588902150476892690812053748724492428273819667620647586712448963792766662737901326950986678006368048250377378591139305829510249285789795671437869544545215834947502915868813175435471454933265736733932698307381962518519458052442371104710077207407892578266843182594949943446497111034695270720785064870616357692648389802384748040790133024300840276890283664578474011450535905875172065895883195363610233668659583127659776218278779545585224966852080143147452394984277282735607266092856882001224338920928087991971397093041061887563601419414308724588623648001859112170657063670407150973583014254880452027608085223115634094131694417789697346164895120892428291728874978295091266841748526220997124834511846164009272914853742338664845587534162459278132267621607123836550571558931233014873996449229604814358732800016153579518910405681143557098401022056894474658743793446705877343681712013609244481263837008171261598665188508445280285582288400465021643220209817394582012306451323201760753892636483159483342420146740055965106135126581008412432126033702900532088597501479836918470992306154393869976773973185862697398147881386027083109810704765303118625155216745244053985795858698302946753842594664348096848372348303864747161486694983955840916325243451355616728051928594191685694272916935437150910775328258556586973029804621505689531782959566040588123992154813801504145966834429983834563861640395101466588235422981200686943966309343362711735398671029196790012455294210024684036167847569134714369701779097449037349568252930466990470506754661656852137950743052004887701654428037042855021320431414448971946427689423354421492842874325240371363561065967826666918199445557846798528013985105065123520584728627895986285945062194206910887221026780423245729052668476752149437919132018170156625904294667104106869382809341809778773156208816685093649373748173769168506191666933048886911599908213212597037568628128007462350023362729871225582664391679918478525206243114748381148818711158582606982480775443891713823840003596649415195102008640351734956702831942585957004292004987338988475851394055595708333294753097220941394426388799118424526176572666058312474432216120188804075483131411914673252109452470291901259873396962036633840905700664184664096880129816792956123580411280015277623479561648920257061372243198264819811831084619526940998153058711753235824953435019245192929384549851796626262881085935935964053476744685275367098573796039336830157610170856931780228731545081277887757834684299592617681186166762699982357673855769737574770852500114824920573815794940284948908719914763511851283632159779345704668317224479686325363108916191598912698191948721771265460811331892041952929905958730062827466880363251516668833648322711735995899064429266243448355918842661746372705195526470639600052377157903329714120067270334672615748527441199511561161482724621117504000278415727669544804024932015358401424590394779347920764364552236186829194643877208849382442565944794471577735079517246259046126284794728162925920169684448527109185115379021028338443509158440820953969168252875690159959443823761225688140296648939767982982908361366617783734574005931080473426881552484374560118982752146994787611366140234902637395481277403893155927110366842064521702424158700236257114476148418454677304604516243217360014446183642707014619672000964439787857085283772105947078766536484826735077767022356221912270164459610760291301133411625210436779279418738842743649290929751635811411594665695300672097018359611652934359663173035437534353006266108442319224073045658823574538534104116317661569750987896479298092377656391264641062605634636599177261213005406144131514332837842706872001591820222530072574553337733796076794956272879759697094869756721627948111373723881897756866406426664996986506118276810115888493162578348532969758150210884951440810059488020377025497583133132416587415188280044729341578984941275594889932658390148585489531072823900904067656467670526200547087344883440596702863696354745966421848151009753473449549934944992274833064240876646901121678025061743493301811975196346478254486689164627914714531957262275778647399579604442888385220720263221911266066879374923027916389931697057176718518874716995214970368161847013577415106488179080223942957046926262512868340234197504225923802330445628644837079628154816521709016787438258704709062169072887440385426226424046896204379649401177740361386183989094421555775126321360576214789906783783141985595669850569323049366023393632849746285608062481695546615067066231377470163715143380293909511321212893376690376458901250325638387087489085658623955198122540512773339892237997060653757916395200619948676390440869868146580772265924499393920198032845089169631878361908385323014163690067746761355902222449320071877900018715777019731263876398143962879792634402393772054546178779961428016499990973976291546816299401203851060605848184167286627021815307897547970295438499435179760215002793091608604122010572702015549048841059044779473662939838868976118044109212724846004651718066033711861397305812644979097947350913052154144720186136502057042936685710886374801654635207855179904106690532221493645518418160476023057147307655168297029450622038603248458498075485147804558283391834619830272603410881015272402274734474283083211284734534595275534101215258073380604158363738721392549322717455607540946511795216451659798807685237840722148860288085366681071379980951535552270867373976959679538985420465363943565903076648388160089417769120963349471129198865341838756088605796351228939368993711494259284122498048755981725944307177691013249053678727661960278963812436533912296949561296042652630962360211391567217764515911485293347203195376170398000950920990735772881918670250140176623474943068265614509318774916598355579614004135486148179028222573205998815072812556005689163890515808442943178831021550325159554661231395507757957252946564745726438307370991325263553540842761699732868811805387414894057271964078307702295342891380987346237967632770415752636186966977292590674782306877136717286456597192848341701112405302753660199138056424517053864450076911035872838974355319234912329271643048753707935463651658381746646563544258809648036276623422365940124331693432744020509457118471009184140188666773908457845778472931872997203410427800427623553373357971058913388013233490255148474430255276056481033290742035801326119800957354378478549084271495649258441847978439503545550020822124807729154596792232096696247282585481846510407240004230346449051325758739662321308087906694821362428500085799114244170447237579480893776465543747040406281266093783557728982310402758502252804055574339918471825673747721986200243055324422334336392574953388539966588726449890891461003031707555102167536191976891420782478017373217148742582829294424508458503413796890200753767649067368361555420356762060729712976428275577378124449524270440516269478567307114798660260406507427800002285845501633751046028319792755134859258496343785046707155567645216054549144459313596167581590281428236778175676376780023992847195206572440724848973854218803820195827596801114829217223849839777859580344880554182250292536079970022811502008347631910796975116212293821329602264797921180761273339577740069325142298108871111897890717149696112881800479286267791832078622240687421791455399315027297764564824601168156833518874600398333818775886559211885178867317752139331051652961613584156068472118420711434973337023365744666874889478118092959313697815542475653255870612891042754265921030657839043998559008177503269996536640392739777546189286722292908544811090343738627091666081933769005865136550222467094670426309805620263437833397297786094688288027725780040150604057844522463854356971775284343951018552152423813874172592230564508695886793874142131962232729406807855189985546110292210182252476726714424744949882031331669183572458376432109057176622805660806891895499984039774468220804462499868636318458863134607343536917801906317777493154513131836644715324862434707952728189405020683793715015675950496924259990744650360340521029598029089009723554574193130212699050687270896672534755483410215855545040718088236503106502047594094364275204367779407741285021966673194144665050918807248825877024365404710602719150663279056617675691154678382241742155820309550519536470728142120421404124263057457413845986246703054936640538610822699589896745779577656199212131038691992176075948033504865739520926643504531287926354775044635097796380885066198215349617200397285390058179034413786718462831268869727486653572683603312032309167177428150526211424794460129514071590919116828768861558905870802761092973156551247171652900161931308366909380922501100992900460539890933880914867736380585424491484070551205524742811833511001186465935464106042241910045720696102073313010876293310862713416014685141395169031229141147842887641423998127195228786548829976810457421183964755120937488324356403923013158475211985072229301755669238093248596947729411117098420362910367426979750726970704463849059113821702021100389606878270030262072261133558355813973490786957730579439802386598665582630273720522380661030197836050424462933774692307831239278003987965793699569725743835175767676347775919339452899514489311778823241686622919194278234073789546468916724871607655483370438579521060039822320737557748470917248706271635909613914923456619605931990026575806151733274079738716686038720370519797865323072512443278342060624419665535939854897912146311083526028657225341013842552872774714379954303941455927634716250344109576785228778212351377052086098156849173000499092658902599155933490621835917826430440937317895777671167539406494621762357972965666393044083283061915991592090121314259195376561359517292384330221441973191950632090701419105049847899183482110864171988698133407663979754563173089238685335482568004301186755905332023763329417949337044184156104914664610108874536419519239343696980046356830508196591734804985785445942836037921370785552850528089096997915288372657919905809630781483804963718314752174668480250441824561772096174105616737168904319925532856852172381839338620370953607103262737494662022470502027305482888810972524107645515647026876963398012125114998258264718230928051159591792859660337445380104220933431488626442851902148147939389248638437283207975167429069535459264320595679055445036785346199487181073303612345783599207270615916368170948701662159630772823219815542517231629281805640252603494692269337244406589040729206943902827482944814437378514436680363157197098556943348968533559708536488483463371038492887257527009938101893136806930360054506616406721381174905308498872255122376152801755206099844813840065287192266487595110065581824703093129399952870988886457624844661406603541519800418882517703851354593088095320462859460361801709515771550258618885265327357050459101807513232752696301344692746871123373407964036041461961971142658713222372751008250659053920092332661815755610815605731467873486723617068880028003070665411384845427904428435978485430868757626392188601848640874847073451702596383757861052967439405201469525732535729005049110490459450311048728516448193951520588485811553754032637627849903155852265127973926929848589091206762936200849714842800060495298754743099228420677728266637228285331484786856406022503819663281402606774639941645360944971248675335472517385560012438872768825957523646355005891844937390967125074640856359502066840032370528391518631244585503061080328260549056892482995515907467964555715748832178657745894954110045141027211815736109581109217385424776714657827014415929082650169373820587952516315224379476066711647120440124469256234409118396103380271761286901951171647445968876836035184497866456624735947033237265413943419101886054814322183125309321081469336745717770618531478360753351912369904507721713166218825390807182157097928482074805656594766376554000345768162468613485380174542122895706938110633575080884170863165973981662053538876158732708749538913925177508838394947864056580789120728100283710155438789926255109994660812332237398433886184513895660080488706704259658770049058537315302421352282703352197292432971034193242095959612079480743268065587569191522219631523724394893343944736002574108351982675447265488208602958350863006781753050946686599250790625377379781647277466913500505860768289592019857540855034940862105867774050219142220678816277720956388269850019557303025730711044862543983605397918200102495808926565288882283131742487348180891133152338277616264389320486267864170747421352244237943122353725334213525653519216279855974517060556732218679083464402424730678732404129966639958606410762164625988063654385601722407553917789620251195253401294297586431461710475439884547627838857504908521882603887249786056025938070580561384515081376242381241590130270667009955797588043722605132800824464566546046434704175428290606039758065254437252306449773455787599537333697102959445196840618663609267764020278168442333935462812967735937401460030372922074521406335489315211561445097482256765918629031382784606243445698892431070598921616641429794947327673046423616383498805009318458824574300167846793164194721135922749677381979807054773998740656737049306874824830662555389562902726178567764534922447367325690206957013054694829110927988970431245100171655641236364627351089309494537099745930732375380552171831276260795441110310532218280793995089583330228431715697558661249678878394887458592476421056769563698267345447686604545355740899254048684574041567462498829862486766189234103626841390543641323011815156993711685559102625982399903259881248829790459606862950296712154305467390155456943203698846323610286454439952688920214427913196072192475596482756770538329402602263992899283769844754828075537320358423899608130140680767279772215949849137958456953370992256497588551615151669125604478659052890421616622788809749059947627795043425812411064764524434201280939941741008315887376247856458800151624942106161277526864331626291267133728280176520498137110966471965030205903024632738846010038910693368494453744307353877656589946967102891686657359377693063593860205268556696598915280858203271036482770602709675202969311448424078469910303823239097618769660900360809310796626103290618343685951082741763035700541914237467649909234604118383392772235699124106812754563576291121694480191571158414546151915523326915653806221071085643341204438989181195660034696358837520160102238194587811107196748481778232083978685622858385960409194726356753417629519433050028745867400395197173105988051455379160254969749645216447437198649044793777748438107537004725015650915424267059534126323597909748135491445831888574237703403910815573601645824366105238265022583424398771142496772152882089919526629265105729689947651595114607113695560405640539752158147797148862943225192849633448792238608264083134658897633558079419069347797920348600202955856785789905875211366499786338347541831345384880608746342068585318068468880083643000851254516113202690615814353284484453893546028911344673133051314055271358342118227509146643114541455673043665015973957997404720553965433050690519708861420615135707058816356084123030738615952728300597056532497197554762969825895962866915062613871088926779843490590549027013020447156585309146107347585374572064777155687732319494113648220418725296385742790439847191142035205572622403332617048331458094075311129219818619158180729110501565497358057316225213442341776782590149251865621060913760764920718814751775414242563824129289353590480860528407190322846107900022345379101975066962309242791430607267911072670451135800743593177390699579331238861606387821348917219263440927427340886557681203061552698770585110038310718667969748318761143142724222872450986626469585767695084451486309721851282608498635804683493516061501346773079346414044551256153026786440994976617903230413399783205868932693370007512665259076962868408880279227534334908667270889242995028640032147592558178862914844863456219777696700355353370663404968210810669946675921249333670960024010123389495917027105596585691686195689929559553635164386013800252801381487863024023412019153258787640662469239723498303934058022857540724804546496494338927023846291509167094699675263794445591472461596834628576018492319826251371524597475410067280892477540935225527686234835212907258130692571226870647065951570254133214624820811018924507686134712784697679210913978259629467746081401199306082859898706750252911592389582508291093112843076145150566572287348936275593017706528150503713971244440077325886604564319239127377926979771051773932044552120848955745420775802121731008984686545004103443561526148869008935604125034816150352606296844044092943112940226430557467566066953054134101137071691662713911303963093967434410722837942868497621226560847835439479783416909811196334501098473318829777381433647810864733866979191143514868715452622429455488068881795063460390916365528105124994226290119766632956392446511520004236216116892899078650351420795837932864274316330691959333984970777305313731794850318343531564561564467918219331595944748802391696862222640072012631703699758964524187797581906169399737388690096402800423713999627044244947583297859803815976608240749559675867420367717913670079341649320107916945101174062954908765371860916029973289877301405558256860461990244664242400862569234746549753661600478062282155369024809887434379464647758105875162002062752675806393908134121168772756737938109727690202817667256202192696859809885639508695415505806230136285186376253651923168798624574898389611701078856388322709721488070587461099786567180807970969045416470228420838180288166391612841900587849487862661157957912721553441837981457246506389721048685371162136348403481311241196153838130047892763472919698327085584072238454151508788220298912611133809919445211110940829057409265025002019112740979444601317106671822097307395741595502378162808918943057358961560881487672451053508072173209309504383065147766248729904361845755120245052382384409952891917313086561897031487303386610384910634068356279715027842743347127920050282973107483818188461610692462790433583515895549333613638830910337661441457550231797359361766165929662456361719694938132735948724554023161080000179884429476300685350925653678703624789097154902898152843010750850854944052678615671238611684353586672782723531823533523625867718926592884707988617983291510065517564917386770973519928699730002783222656686646707509294143310939520110745311094356741436387124918735727294830102218119979879938183256186964497033089252489796535048324799000683233300082571697732944948444164236591956885467911664044972840039405326956442954691544377326933132486800234041135320273224764279006819097582703986312932961302730412926282516960550552690445486354098007231314806183619862693405837354440751679672229832546876591992205654760309282820316858084102530364925054432953712363598464671418081863719133443133483239629238747760294155819063866524754179792165267977668943911882096127355131028836300382389236978615063796021540326716443462558705706393594664911698905743852126919805958485874879819125841550454699327540082928241608600443720554606080595873250896383810761110598891929476528991114489879280633449933206614652498384845965678193501522686448904718928700350263904873400687250116652554068121217458323441462270074091511897379497221876963595088183458024966141346389705912294317643334073341942773922874335907714393043262016910086209964659856665996522906730973236042903960273529257270623352835159190648661204796833665591889527126875798800045049913572756995862972590227062673104439058963927152233226209985342326719844004343327501032996528944380577561332188798204443140126005832081528915544133243836314020637121087299120805597797165596867893741443204483147677002851492617103406370888726524063513705436126054056193324487825684354938448767240907411559305092508336988718491430635713202488351080174957376562324194791185602875356590725820910311126210687080757023012687250586750461395586734096010278096034311164652746841240857293704854878305961263369607284541723659141112906331056484883432397234072288552765174044129579253342006917914607425631429640909204429790198681897274932946210102552698991703789751140293449802160365229893314149723115246461619185794089157336769807323546313730821869597351783189846365235873225986185798872098495139905271835320929712026074309197604292882703662152272384233630480117496220627483581224917727216814225670255060507440651966049269455109928512427086049396262882097435144853096971839125074411809977639085430505828566731566988922459201312566157623206561175218505674294910629137088027206051736951972740097693608738547592995974617938511707160557617588720705897635775042681314988387871911509682371272660933450027312537361562461683704286771620462031585997146354973451254852501881564609228424116714365300397786348126748587329268593649272273661276696110118909280547028762095066712984702087404982679808106871213249538978842943109509309258045003072433285364680730637190455070369420195321483923254213022917779834937609149840016977409056499115680609334406075188461031651329338386523956536207049970601600702244301374547472683744945980546494858893017335318552591165776250330906865758455305008274065860443918056251705613608702375436695226239358173186805944055929639712086527604873891177917482721668593796280588195807473941562691491017962787949617941243516512420603774156923972673404055661988848258869258985716632360835887430151418518917790166981608604581536628955588179107523972937752183146919919301235162157833304249051304145009559721594048630714406337258350542262284982674371837101028757061471180077093194048377545178345740703301980386038599825635938261579636026334420264048345160122529890423493895399404148644983044295579798434332076541618187435003200855450338231681319399161759052822229796942814840448876483367818952327557664569226525998927975816106115049257463921490261550581841076448302069316808646402483724015254212799577507673870655187829664664725676395033330405799842232389104915850947013533215284222428100679845219731389023940269166535038308175637884530686682544573950159558276989566386312903932028854642990670495654863792706734718191625997927380360153322550702688923012450122996491074722885691401324251549832416258539025613139550817061030326560904734210049334871086187146415682770272781528025580361004515610784500235050208226327191826821340210181752822085924167819048991091987903580156615703608118281439603950945092506828661823320793367941562662638577119960371162715841413512771503490988107921957298895728782374734918939814130665171532291437374205671667511745479050423064056451247301914112365559943539737438480721896922827689910749495779717422350560049287276103768480220768149482325027935938222763720881196251540077587936442826673662570888882906529802767823977708264075777953450720990192213991177160622823330161546003842696811411934406076166038176291302503585797721998335935440401655432345533924714394988023444308161252308395945919266065604258848492747351631508414162773004379787546169393949460494790543258791454244045284065614555339373216120604373743948283202724274372339075652663552812428951495112268569402417065117248540180522530690630756265488268748257516276448525738163614621711507634914959551460399839826660997679600885043424167113744404544487092354897236638015607352397525051345411425509586530118103919450220602668476087087946422186380066303142990667655106465469129686195961544640252165344048759571233665400017954864505438726978419311807440694893609951344158183077786267170669695338762209509485176454375026452385800974871263763511688842773496959629864056482152838141420738420958436282691912358110226872480220925051016372555798953118835386472088098729110649336774200788682974955117949280922577132163003840877611266864211209680092070791622487757583757084599729512359079835646958609968424402088496810809562914837794657884330399748698839746849750739403817141919744313522360237893825321903030426887856150797872481028096082316700928488523603705904436692437744079602078037443021096497220739983899369884413729116806773998550026767181516332003024347038925105855394282673239957024969909030594296592060020595979265245700842198067739042784827329204075898482865518419292266892551632067980849792072214398347241930340145421476503273600840658312820490693479817150855195286725848922108656026893681609046315050046507091558090571268751061363568631564522234045757594746762579419324174451673849627894435310975404798158986994059094386829709126825485966734790977158495222610486847116398226564135376261765339890628068944041777090574178768511458198995298132178455289086400058963665733387218011185730025235539356488576557800457375033957695449790536677123915557702232749764104287360265126104765115089540261099211162705015031796272058981597393876066995832050178258445728347656442029425534269924476247964418448160675933418020693999509927738068018153222220905207269227409715188706568492578348852709256438293257027800869741926306355560340482325937995359247202576835440627387750500317204488724421363698593340286522552749032482055448261806124431621164560494899826580416234161338540627214757575690157453283842639925357201743316076519985228488503164041571614729027599546517549550282962976011797451361471451276976950632232551991155400273374110088069345470503324489671201865949506054049189187532065714116780337726623445736836253596631567282521798992671800253644820187298140343940391324123356590751976699349617392976788975407368896799133679912237176364787743720735762654731303267125921857444204577370132072360618397306299158411001327285401052987601262596356289206194730283937857707340395262118867636470147468767618326586130734999693095344142993641416131046754241528014250695970348524955680226167849304049602392306226714715234053761312724359834981343950804299024586323107157341636222904137224441854614676480076803605570640442739902566047092289025097685444518990601290946217242761055428044562362321555931016483931226276445875796573187690775101941903119075509893716539084007951934360440710334145729258896064509373140901611115761697008379831579325767171127245041960260424466218647355560809606798885001384146299374807788187852545422917048226538885975849697569783356810646499011074332793539477133956498367372529025044074284670521755088937465035432837754475144166459809827809420173917162188995795915795680871059076642723165783145650337723440060766943711586672036357629352077941782948739404037670546364422170029782189563207819227606488228532094357516948455263734993833343487343995427978540787264004619294915747008670406145921808631856150037820371571463699851665031746270693543143807349283947660138698418312169094272845777077860175893715699935182357387850664517191294997039745738562820056136091777337583438637445464229468654090005178988142073370015046446697254104888932808690041187659639967861856860207878621413038114960430902741124552505968298783724340245769720022560435660475809980286401848406531572500301487495136451646040108132997877699481708728464141289230397336359565735399710220812265630070495973928349789541609521022545535562540942748249366442122287892890219984475621905986694878392362196738038462627949215408686465660798124885874692384593342711909926843473668344078956717904379839258991687156897029454631052478606214796186118084959150608574384936654598047523516194436591076479413957931702592935631024919314458877696682392648230232751804040988244270003253817139728544939123190213095147159917286647877694280336767995904513659085764764063762502465934446059932378287025685637643449898430693301019745735642595382147487715998241526078770685657967309948064855547295560246790163931755286631681131853980485722874866590642802708383055942431572355888550259814204349813262781762333881913660842173439101715859330824753797241544475357039977608181104506138737791575274300134166120336153500273746191139648001532613796438927880231450355505112294830110100144203919701225453581302350352289397487564273251234007501174451332549892234327266398741298680647334288089215336454765004844464389156357108459925626185830294948627964082570759535590871301463588175241302592867526215284373652343710009951207282071864867840604172087972740465863267137946761230198716725573360347840386838894091616168602741161625621447684794379081727193410589049181057104430758699452377282727066071690430932768999404529809291272108022628436557288445965010226592022578831255662832138391960683415345333927087476307098305359573216413363662568771793287335496236547839124593986875862177990941944055063886625210497631560113634002576593404542042513733177849385893412602160708464271112476237731075535040558183182468131051168540342420242910269434683606717213801503991078093873641990247159164679890013143401953560435597851044638620026746481652217974952442197921723569861795573377128483192604894952364189036926311227139192992644686719976922871210239778204900961338848061617170596509759589052958192205921814496966204452619003679984348320722564616916539578193272458735779171618777299024091521253631837719243669023997278023293100730741091201632031845110020072519231621536445887122799411350982412506760907082365248385396471479619561056098787861212950948988690169039786452679962847416765050760402771317007243488239917871372165609323319004371129193256255285004227555882530184193848969184398799752985900316464203948443393343676687474369467565466996336359919439932285860895256642092101912710936272277928967866498878738951912845008949791879639586212517775058944241363577443881765474695503750113516175060409014185345217809094078435296382286949427607000933815443414207817527513405695497149130310367055775092940405283082811144606032345473670313168568863460360098353045042846122568256380198340676011995308585175803611689568020895265774480109922890136530012528098011515754311672797668601007384058547006514315426211577630036621813856254128918894335683664373247724683007904161216562096428748573385687366513300623522047902602808868372046978732154324814129827102254743526485839860844777120085611399019124527807661746728650793925782458048606755642926579642147238400872956974532264278122464925092896414213581513598562301763627356915274856736646347775928876458385440270094125744938700244177427272144480421488994447838889635372457160479951884846495277627949071376945280665795146365126961723546584078978198217191007102068550808955416265129471964057583342479084813112081060199125918421656236622851454136343667335189501175249794751893688207813947176315167450742869281729969424299919321818130333388104705490345398939512475457847960757379670827736624182588736566531552342683594303543154956144442226472111592456162689402703277534364941475870741044371207276376144712968557601420565585386609115789842097944344085848381826921420542668552897757263296305609200504154059210779752057145014809164482783539888408349048125167882431989334024541376386526066407981625236850762762719943902850082333071181991099425913120231415868123976142393314547388227118852985109262960482991332620431758389869313279038638735589686324874551154675807812986133379316348545565129185370362978967103950503044303246722026787679562605616063758781578020142509942132025491829809489895427376571374578565071348360998231534338667639250267607174085824910758959413416846614256281236286842108148761460334678313314549049575285171742999420693458853473601742865219635469755926554406328173835709017113766960663690519965379491033175304637019564471136001560492679145481643243486294565215307097680152658784753211590917622917128173578838274412664773453746934323261535731128889963095797193158207783865560948632464405213903697310724094530426634663726593162444069160573391368212243675753815045417234204042630113034267156517120705457614046815289654144517564756898383319198140822358557321342843997057176948912881323870478679137169518269599457704999262187012546462664349208660365475763357279566690666182137909322857804520923116465755893261616184733730834630375195285764134939267165422012517935952278045645887749580665746672650435332263632281553343464710131740557738399549587201217563780204849235229102494871566981793318211653412071456813311002870012243804977880623420814654908046944358537229378280574932282185480994705486199095562757283816149259172084066359257819578740639468032284704004003928298803538482373034349840940455594581023700035153163060781242953740056397873577239271455744503229519094384284906361073183766507624588264056694417173109933315574495190635258248486633897496510644421314013122125410397217546778484963954740342941032517772711307734990115471873987599943156978924480821022299060353940542622179707906575499520386498742307320041618256869945114023466524492149122257332217578301304332332422164754277032822012652127971246214368886878394656663351265774032409472248147353884179992706323389238760545096768325131140784369687850050086583679238817150974485418925414389625316044528991105412697442238238644955461331699446978657903520793416831920352648440973741173829213833647624147149107542081257371409372906366034824944918638875346328757465003860667700070167336978581594793421379831773462753505747123028686804483504809826412921448626291092913726510003184597906228800319226430092313004579713770971851924607160551674688151536169012262621800329688733772496813599264433141770488163556870935970077360326563119135094735639580436909161429300172492609935384008535197718413206469066464820976748749216461724116646736585588879708842210954756486436110452081249345968866150617794717185105180820887493443720274348170680438589993328977133929050817474832787260147226827044402319380242669986311305142946536598287270886111091041184911545016953583076597709883138899738048367875314366507600707558888421037506957410103369237273288287006116472825363828246941925793359050143474196500771085233558661496402999419289516871416399540681444673697571558163093639005735239200592777290603925463332498994128495421550009464243265567026708249095854959103709150335309394577512487382863965833086789379940026993503692369874558973999780542862275981167784839057320594241091649124420163684077987522583756511335425917819707017390676238467188168386638933869843722904434291098862588708936114429014774972461313102541463485310516733880131132301134788971744197536863542305508340407025168242346755022031215980833723695590301062442905526226983652496578092719677582889317207799698754432066602796184373297451684947284038322543244552051880331686434031108643713318370591949807967032484178316333343726912481713524880417515916724258450482935046268276750757988263531600210127119990611781250389959758223442453662587343222605132513677215441475563774693385171871009253939712642267418271611775693196513966734542139471120299022618573691003295773827798553534811988659287185166908315400768753721108857927850723283869841153617072930112995686718804455150703100160545871944288485894295223416342841486179921714369778670121843387873818697585717986862588537607413104018995822467628450359923897029064288678210755899886457306679447411076329124424734452280584761600506689752746925347103886789836193616105880360989498694091624898342656063903776103166362795757556070317468235435600559355446955111530034659099030673658256762168246748377026180567979996859934588708388783043210308767501348876929839099264988758859340136213566678131102518442702422626575259835470709943785064878373464145174894348944285770914449320607235385946886239878502993880386550508235968284970946186198866131643067022348270180725731903841713082897528975511868164986476804282243280756906449443400104537463933662556034879791092978562788345126472713735566999597765224367548797739330676969537059128823393748729938013497504158760650996065723784849634302220636845212445910736714654515090906351301683345865211222068929501932034951755355217753286843636760396359635453809833056286774827965605310695086542299391627880576926115299497348304920605792710974934753322708336394455104260608905828971331851308505720189084534525201373979795364673976121352607534837806838110583056383025996506866809388220646653756456420158980379140400250796651372463076277764144898689086313592171415746667324473363360748894514502996416752703125800097544796965050669347951547277666890154432992981969558947911531810138124013311138970835842153761289455714382777527609512071099027446472289620349215460589364483370668613261318185667760505680118262581837868105752880446852871584843939497479101804300988125300995373291112245734887922402132837523081739112178228553061448571110044065406271707682777775908999329898190082712537556860809038436070811859831856632356787930804129480565865316603610956139024597078213795852048430962282046406320395213220317948286216343819817740936267996934378257372438353648018006397567483514495041828080047187551262323444448524002487551604693125988265090935974543904770244335468886826276591301808598496753966114017503054560987928826983129973471148331992511246071304680022997306626356303878620630934257200320576038582074818453589533577109933265574756021624470843380170542998476874141542043763503157476258810413063448642533663611793178175785743217907331278392434448151827970616474026627633889377878372807174431260490948910029986162999055450137104911489599710182651973185910977093591284652039087331127957138032503729810117580353663280272081968567182689375542330327684256536860167092070306033986547932510624118245030617413960206635534340850315500601744724127379905281240514537417176087590551764275786187475641796460312850975568881409965967704385561129212116184451446340102591949575340298356021912887291793505620583905109339382550467382168107622649144726371580400572641292943950094462970274888983899362053057156380702978049196470170749836169579613591172246777990063586880069345168995059715116595210258207927504991949720637946464698938371662168586811790822661322369993786284615521989039404898074050193808517490915358616394474221256613461130665500796230914981779182638868152027378392807433006917602545710305920912213043300211970028972217381118017189651876611206445718538333163465269263213609943029382437801013122201449402086240041706885886724719535129233497269834368384301138872884063288286986382649892055636798233637258538899852951915066948872720870881891614731249113609527387462053109949061654709342664081103759056386709686223124951830143491640751144253040197040549377929114508042066830094813655206579921438557874285024667151576621440028566280203314192290040203775381064964672312450220623344896904397217114245331605125568660201577293710894813326567856634358258613769145354060258441786745043717834401407259524273713069716123049609451308063980648642927424505050130293671247244656321011210294259021154450640599561490318537421211842738978912065969019183669613344301290095636926764308204448991316070043438435416930070649578482691916050628666708676293645453588002882696039975017805926864283524496975894365196677121186498994154907063952225565689785808842556448903127369500296221921328103220197993099221442970769804960435877045814121432234430347760187904600538036281954111093153695871025321485082084997903368858723351975425778775655582594496569220058284857933629241876775548908937301362276879244430889166913685802857726039993864478417413857503606279641588926332622437944249287922736568603019262314740003314333447261216271351280675725497964010374237841475964397128213900008161058396919357855841674372362749979027253056493426540027981033991180976379543901255974835901988355183002677006871006307720308976987318333712303228379445498645748378613850986091125538365991012903866999524543384960435881077371311698144308588694989758027273416419900507646952062075200297524530517524878390042786268632487631574750469770774995700567243431000632870482092445166340459655625165955617761270413346697092188945732996590043837674814758129330313296942669118221206067452542505315847463460908178553242712069263296202551362388267028568759305322591342918438899900665459644553662030403483604123827333167785242324497358727776671877036461924916222921158397186017211411847826165915306795698118228595360961120920602142158974884452961104821521055530803916233462028678454530831309229584647449946711278376123831696856170736922852467916787138107282863813868101848329852218330246041040484199415073655566835014295669201660819249327058440382700958355811762801307097581706553138974194535302655538770089753121772466528429012620407662814700426695708393890938632087001615131384659197169672081318775388256724648890929864205684931809025247072582955143512205822993733632799453081158269543509405471272130150403138313606650402702861144512360624573644773610903852808483359028496187885279458985354122766510243424879371438410275181149590318240141455789153825781374771415509875300012444041354970974825538194348613222848245629490370833172246694285315544732534770681716763159843305488523764923154602679533076360968193720703009973293874027048095229161567319413805781871436680437255197588494777590218196363855769293161769827270275606926070378679955332814812094217182635187340873478599260539956236949937049021212838795841165285541633763376379352452677253278385144457734080319055232348462202481918443363643690731733757234768921721547531391900508059668573232724393364438483598806020058462496593755728589356368608216007816539330759968732815335828282816686808399675014529535282215302553052727780294336947158664593265402448935649408044313962808592217437673364746029671999373700466801623718960353285373591315241396978037575728824807838549383958103343046963173997884989843907531313516540984689917103932956923598957050818147025021412575123718678355730999748473441147022800689584276724696702481379103618474965449424376089504722826742906559715919101751173807703418431334550731870850704423244911679789198424182644817047111882285194709701235082795643648755135491456562284509223955376584178618533488429834943955219837450085129510404500680277048193722492075493233061958894595197250764497068359777496224350766577073373673901944888259208030583358344463332282851691399847529929337446417626339998691437268107546880052606625368952479690576420186539636052907881668826663889161647489910746197107547724001280971231836462077656723161629560945144872623209549079394324315945794519487561081052076788756799664717811949242499619056902520721236477674660910956101126201344192346756131818889661803451719223530040867934428197920504662785362052912150719737581747399286318086281964410518910637040848704015224598425259868556072611864593777501866524869871458878670842331124431485684024335426435883693230481156174839980846658989620335170668241566260500730694804257320901882790951341758521901146361615228397486127783528388642027553009335550451636074332374129754134055780612320087280929312392274486050823773935812898466949735084684102305988228118474024508924979522111435439558314846025888000436381195627615000649436228898544510668662659393148677753626017936612479787128846356936329364258969072816598643463296569794737465959487113179756298564432847904798645444720709202923797932497758598372795243236987729722593152092990485774094457543483686813930805517817542824827210325305135645186735091097648301309478082634881999229135459710179237013185964090894429442667856733037767483664663985166458010549569050827855038815533797268667148417435888313516050180390575449044258243816397631717649550099175565202326963132485960483060039769065228057549680237592946043000691388142807596360990207803168825321435794764897784046495756879162612814337146384833854845715714401599171283260441840437193207804079904367129034017732842083779234307874451710403722093453776673609091795706850894667001957065450404330006200715614177772199523893383397563169701713900728564106105767134181967571176253565378583820441542725665208258592736799218574985276061632097764383933988987063763139270205508216926584242648381598643687205402511094469002996939809020602780228892980129605348438654835367132562750718263804425456635539384811360734427013448698611868666285807843924257727463785264381900793058157060137348939063577967540702005448427131346144352016122241195155928660757202296431759134504730934811739649092175283744360639001501872678635252722484220628041554506312878842197173715542776240654339107906305794772275316073144589889606045750453904368855364031113641887979524993372558160287123822739199546882708129196111020353795058271539584369246563016811100923412852664679144743826626089924519889029348074067507662633146239743787450528274071320095787389181101360296638001574823077540260730996526465016464339831074360717724614803734353802585151209949447342398411021387859774442687838437462912319081580071955170814642934705718250428898541701958447640175281294204601820736498052771108019809797689427810118474345078511864050790419560534962439076662212205976494183342066240077108725610384026801627631780509753714583821989090249841627728554175036394153546104493362483715269185295310894153428322145844885953613693421093517846973703249383983964588632687798731796746066684316205991510918608890172152049486815266190833477662490366157506733506203527858062736669264559238663542279596929577878033479131980903816119445963036866977265479688876769819207436183841250404928270920551048093377975722935207727053286112339834841643730715577784976928451747549590308747041206812349584282917220062715177498250646384635250755207860867583071978055449345227532827634112705845409255111782974023778003170614389095929943464695172825315273932230973447004766196425218739177363680821225482273166118930199590558450826159478847180636541391527092184825594581693328828080478408044549521005523069655798081977126803145707950580860470179933438179267042846916682039848244563125698685354063664467247452220814284295604517660301564459780292564193140225514387090941599692718743582053066357188195525664264755395053427834203588488639344671712150190176448555294143773182551522745314331005360034387726234041862174946370231772290284210192436464179241524345962926493416124825951209383282349685302704216635754732494237525846564667639227000265028803831703138782290350716066292833384722011038906801432456220974614576884222041408270242869353529263501346237329980026238806572464165938981837104596541691905590903400338852435967622535029186530887495245601979119392170501419815925379246159683800677758895165519348717485141615831435038618977523513513063237523096489393118501436577393016928407013208789177443390694101657453543204167734177228070567684734610588177785807921050079684117635739071633842067852971396411618361188432040142886223933152755378643497887806872195157438678293297185187883428207917042931461701212905096466462525153606692284231957688839895537705378454452296799018843435126395344396656799077966954611249779339139238102806557308870009615400508043249963669152243583587003612892082476992804458355419899411884686413129197418328802835603909100693973667884421194293277804373100789568829431930895984375382246575163885785718892920022716677249997982971037100620768513504332005143735049284404868527308096675609977722134065850138756688077662645934216812691493582708307565457587841542490530225044932874113361382384531397645710468736732534915757344868679920515935498311036030869127224794874655301023985514654842398508063676315921498539604272086819536651092755318863621128138726667744471159504488446184715292735794572808743445276845014114002401511238669952509243142753444735299898546087889995734490407274048155922226738820030069558791566540967193307547329973015014792612016018619848790622284878983940891273362548613172304259031301831485485735629786504931643877591712551081783023220414630692489149127666309574067822907465440866277102082699630046003627962726583437268828292023119880634267428669477741967156058115573075613492180133843586754024886972250768201057482176625649188432931705395220997561506230147115135108543792251677111062277734197753417974525469326512055680570662150049373553303030456429249775299041966351044793379848509274012261215302717050803199327450521566690849120518611698640742574829529018238247963096999658965690782551370184177840868720212422463131975387181772315521674521041406815963709871294742699667771789933028072732470694087858657964555591422473130473893355457072529454971435519545610545780023349671280828180462728932844394969921073607800460367619148702599337514546309856708393884617855702306170813190471144184704453367797920419282226884721295351347842713048114529256361213825536072996013669449209472508991929772575051441714467652706645848445287597670810093057269901178820732364085746679579734282234708986095699990152825277182645362747486906062131902596107997738169771657709606535670545295338678745643348717379826923405342045291870603046600004304921938049177925055885542626624505761801704598046556377071204298296660305451429581094686489632014868288740056572714440202510157678518235965815042478397127994080477673171735545110889310006426549762808140483722469364440306703364330412414009465191625115398601688605716602155106210043146328018762340101665832492056180818637207845422418311816574866561372449588761584885564880846431369280748880659697942012888684618116192724920110184318322425424242758758261015849876892845331632401250511577531481298194384189718841203024764354512398058336553147593449505384525015197987347694355942471938536882266195022792052157447578140214018943856575587003154076077282548359267017368277715477674582395451369435975231452433550594934827711840688351879546429895213205364496649625366890023454172468454196111196145233831686064319151100443653473601257190115309218145496771512142950795315642792934931889527824295943411196554495987625819166945300798383929728706373923869597838421253188658504734370003444942338990992932277015614527232165132606444769673581500199018927140152592787320803115258162224871207356029183346236924048119295753769265631341854373656352502984387926676389784849923613098184663862622760739158846401187647371499710610063068161504246424291890668280596724642304167920652474831866776280391227863529083919409721014853376715514389680583374566219365381254336988196110033362175615509561356390807398440674847379211364980277120952948685384509367881018073678460851042873256016457262963570724715642835095939021985031552915031022510518296404417611641626323842532551802022086746157175196462056945425758096345247266161391756770133507095361595502904480877977495781746090311739427585916026815977006528281755764981988106042751791997225280587771684068806565025048410167159481410853907920307135199118711635872756923972931554985201121077603822036320003233500851543717015100156724643610975084034385635709133106829966637519282688979954765024891894047604579891637023552911583162504426272608869387645145864468670140179477209919677901272792547384920162850705712864524491785247053259599324082939176765027550270235277036329094845606982594277288395091158403367574555029329082973276187110057013208284969036862798304697645815803243840797304991571558651845350995269709105173562292076514647964049690416805974145477519334493569943706572630385394503326506228927401355191358366125064098916090143744104707966980665318638429501339367038383870334790486403761020782312069923312150284310945726180904780329838769709710053756289012802145726275019627808724294499555290773404154264834527506605690734726099641888287946373822105518941930066686848516083541738601791598400738950528258874851969524708937991077785054082778075005588435716987721455540720507027385853263538473819097706765373788489737704113031583814209200908443818682738840671277459966492564187006807221365727377345903302871496608968961485163830328698623454769896779803070816510383399098589951894172411607434591226125708111219316169014911837964310101358594149809788785581067312016435379326086086715788171998892951872970926134857337787736651814503528384975344185378129564999839406633121924084040721401817273449264297206437976618000259340062559689866610153351167658707995040315651211647272484331787640428175599507150374094471066726115241862499105972596352706249124055577637722185627806853356533708885202638757064665376504841357328697676325851339252720061782391338542788871271796684903677347272008072527545334161903510033752679529448554666748136196039335076019754729182766536411441138133484809502690305560760452997936371030466865893604339520273870924647566400864014789223940801851324840598952332524688825341594082332208489642424539069611969357573918055930323108175541605285315911862953883104874868439640418862579672310822124262459410010136088715375026422350457947412506974877424717722263037954067281760041876512167445898568817670372576867266367158033701002890569209606287627520600822515737922932390606205370081398754352454484484679159306093206963683529572434003716299138960187617325618518664286890705956682744569081190962039940642494969399321397021437736676388875957903704350050019401346839409120245394789069817150353211349031803952930629790916591084706846806219863417902139552191102024138443588091423352298866343192526270596381293183425438663934986464969941119460530664391117028922467189869939787602885829369926934715350627339258167651172051516683351505007481284250057622485805968722546822530694007285344883920061176389819429980121394428782972248148468864423138223383708537382738856277322635029026044545589885025859506930046402563732716453972315989321682565158215397804069128977469755616456782972342520132378863015037685885597768574309635621074124420670593579506491660070116303422546759012921037238809300854942271966903173822920805816093838695928027877340408242146343200973103165380591119486722177016239390289155138041253198056092774784459560218580844764646149991155014852193326491624537843016115155438009751562293793368749166632532254064510171926728781768524722778168435802126598276343168352394524728129338417564550710473149882703546430757542306633453603823538596088086910201410061868023976504256299113680721349738395938362942419940879785632043821513021236202337771057265439599898392121547959071449239705016788673727273996201474323403354328106657293046321281137195300191435710567191586071363681368193210621294311872990374804326441991641441610816044530642026447375820997083336221153477931949011826187318950478595113291427242968062781891062960726057696206533919537545069018488275877680353204252743631357162628142561055295043991957338481030389851915951655287219982422446947141162880505273492266531060781214820187136188199699051373794011477394987584203564530083697260287846123904308493112962590375987817002419931504424596907683922895169275852988212117888226636784867134420343858045924693267936943895510598823464049478336931494886449451622080186295243056648060042033468401909514863021331768834438381594272646374618391929308619304401042609612097758178807816754073635385888255651826598867667714241173711924773409066575718650906762270115650809226085388909926487816820612607129811386890430766098884882800211496678622017456125692421899850107599985985029677556242052983015761360398193222184445543723877707906546211974412340516879047316501324012661790726605894615726132193625472675999150765805072086425046464089184135483087473363005950423156395183418387469455145950107638064957644175555759548441125611015788839852992484529334986154293160423372870545364608387273862265493680788836849892739447100047804941479956743570481329482926976374409790305924350103002468022668535079254534520333930854507426425197527715159074216148503121421783281311013889683538390249990990047836255294832950556357984608578539729051813567632999718901706849229878958367020856487254792655416613724854943912358407661832995298811480845982043984737426173844174644607710180391643425656650185863936489196118091079722925173720151097375854028603349605206775408334933317460693726948476109903139803202228295721165371539812794271945486394943457006568687060642013274691878044404974822476526905368423213066008530134419648148807740296131232269160193863537569032843034617913932855046184554187814825460638811284970535973934791899752070781082789233184359562682465107251121085559827026034173363640051041593777714630284659482532834988589573320739500360945556183315780460058943494989811978578273182151054885761431367558797751382298671781404611544508261197295827442506807387349517451938453912002686665056873150292463257399968659188163185797512152227721428025490162325585804913280984513436073983719506713395336088945501438192941292645144358260264363446891403892277201793035250166151856152029749957117725231385279947652318010600159799819890892653052115413882806870144598615149882247077222904587967837787078673170422755037101752127446130686712872495822828956028950552413980261826933233774676518448512237832817093994462182146524246429534161013443329887585648472717092250470506954122488979267560938857073628001230572725974156584462286919399234261801982598188777329152268255417012004854091382246422829254243686768316645996923830881322142081471603018330894006268126830608684189826292351387743814045316542709842580398966117865574161509965997877996408872997586127020855426734207440671409221471631607605526242003203919978881502110009518266069838091096015401041169178116990465380078453852811265613037521743895700580501744205198024852973247756626918531814191724596968482177241156254267082629808320847175485470275341195304000796769058859186493963322821875725487019160811433994064117916248544684794627868827433770273403072048167193253347600992256496816764741893307479869414137926257137338623998085464918844334830529253808791596665587829748876996022218818595588015290640776295269929382270031089005096948692969424010375260842698023226906458322374650452175601419629607040993776659338392197189897428091492395494317919345902838376403540736143240105099553085067316227407723242186054315650736745184132443408397908514685213569703209428738766463365299338720776919381926958888227856377064893536865847788360245646943108451852596927662617529316862348866925091082216091794258265785080077291430077773466251434436573063417986078278815246176282837168873520388706483070913921886041412598853609670842562517062140610635250782352441450061790410494743496549973376299824950670659946972025993557386684740125861560736559187998290380701264697409024243863250708258793284763549741176904580612150086468594636272132746068394642839498747936111095314570275361400199909077417272045356913532113425320342925834172075132554659659973329812644715168345686496276407752924044022065311134056456355685745742602369634900263750848177538205512451823752698303150188376326231079946570529748501776897719598939891844186753845244284234885133865022226327883820248483120168554054893312053385967594979123537750676137503740620615875284279615269371619024665747078115761054180182407517530149476402307717196617555576172443431593266887503080290248998137393171374721409693867493413962251677637747619486634865166235252288704163255751423818156107920867830189648614318256464713730252365680766267495546499449622227965668605036019107756750583687187146308347171619622698464901455497086315715227744854307820814878431099321975970641495250464737724749335702891537880060408283349876872067632262874785047211792969303264059739091198094708514787369565003721676973322639440517538942344505611082608724698772262838893493439490653757873669496347375146650403552871177591608952260055646267345278886336672554093401314814830893913600722808201558494928969410175216231675032448223967045326062794407050669885224269170398206759259711599996045893428016330548683641162196632092627483100389885888486409614726714763492728306436019168430499002110030071553228283021182203395612496638168180987505026496292211597149614127526418787665888828265099985326494994292467252099832532742110431747906637549664894804701759321884317429959926922143369316583863948376581808293136184026063828016374762639997730763931840978658335908130545956553106413853310513919162146893886251258228128443347336772094933880637579164720202202446375328136601227893003951204212563191422852014329374928319408081342322125858944479003003741876111636264045093070605693551214101900808273981104537127700231523443691593011662721705154187730988978788270848431142700570380858414193131830872255710899821698556345162046847525585357591563354398742408364553755281746756981656483564055652656918505970004756068431799759037021668795838252671254823686998820487773676703944433541922434613120248136361524763803421685281493228061206306765743130161876016657105024102074036601917324291170564129180987029031902511002551933789064526891489919437427294429072632775335934264769889803026202804359669218927869463810890180079751399930195291826643932729409411308531569847871597369114707483704832766162704532508022154509941561158393217469566472145623458313265976272399083804517731424563643299738881461185912155581669776050404354984275355466083703994077009131048661812716532306470727482942203906204391463284099915267517591367901035676002642530289316132993472234987967840089154869410148690673074436369252733332097118493531435837759957615492506225307662341186741673227357751255055139974373893108560568156965289264198995054190248623245962497323653174201790151978951725594125659049973464669696946063687231661931099597680321221217682840059034015217200858293103974776845153747155019610371681643862905190009201797441404760331815825429147868478618095754762333880842516135417342971757395158464321570563920500673182322130658847119078093095437300200693460179402445831349820165621693827042924384602702015410693994569186382194850029521853013689519455972218083045611799075523579944183730646210068749980664446578352114856825860731730010668639517490298090024762148275171320954568447581771630359617667285807280186910464486471862922936973333419136122392714278697866668612111253199515120032530020773493646382578088938531932561304348158385041738854839154362324327280583223060747338945770623648646061533304843975317084865088273813209349149620151369113309946503055530435601268845906128176691635837674412547257699328884441859910803955767766154595295561761016904447478058116790835732789000505856204421777044958198808575331114339877196785012329682745537149304778727474605833564150364202630746011800193651780790885805541567790911902811639010948351968517661776102684879023532528871243457545052403531103561884902503101372377145848862244094204468243371964618785637875292908287556645223590866556775936301429790013175153387608662247518806918345331623705332744461823375894584014177939723593322788716858389560282582382673275450637344366902883418440735603957508741962288803062711647570603476903551570757879290005887700262233450109149174926687043889646476976792806521526823932857410368233664193199976037619317336839313102411055145877075796399480096428134882372445222755165776250375672456563283964332647467769932219868324241484956538586679750270728193239857100016424618238409408516367379489354172993367047787918767587128295730672056904116332276006145013629187330843955555596135416667414369524781564178668684318547578793676496395607824775246989853620249857765090029600047226758261454756473221285217950994591001485360688650423563956059091291377850549431163565371060401545216922441443938907147809587192438814759110270416276641093402358602457927969845746069866310147742737661316335788133593139571921680826400976219903862869503334877352120148381845262210998285500436622142674987728603855896449471641385343010579510288125554828370478388467160286878455354835882489247663304114210584125422420947346896958440944865400749692396965077258080641910007930379772040685001699701035854198299672049444283080097087555351865488483986156275213146205437356637011914019668052703387293661376125932111236322654351783731637180573799365405382870811354397440704853606029212646232884148123336819744173601129400846098654301045499298006792829398218270048652872078693049055149060588879224125119164421465340882815347906679534491268123894567050556034388868156780560548522175890770934711111994153784995398217726225375931629171943794781930455615532128662577530852783268878125725747540350183531418833311907073404208554560917533568702858107943858248203718758374121542421183856950139012950108592079547406597467959926822711699562849723539808515784444242447787157599642649621616054295751492646275076794330124837723999669124325718720497227277584604475538088182256071472302169283493865416651057887490670032290249612572624586707548676754539882034517571126638604498138349619027027551893189878606621051225641343607428280610823525099872053209450209309294221258288546078054588472360347822405415768077021173979341314286470926167858382376402316053130002841662293703099715062386423439799002903788863012824049999789153570820493331919910661908090461225333460624846941693357727909464892454952373046882933280842412966925791724943563393091839303563374048078029033424429848067499538887939166368226319020806248283789047413527424393842751780462058739639075155736461260615658538609110717976510668225650707516058091405022771778331679862686719293689999869137952157901165248459080827638754692341572633523361056106057721846186848376952707482438863308481709965815221299918910958223064371472575569121979297025200414161297577467890378080305149104130407817274168124877484217321862698022072877723000522216009199333615482984380597032030426164675682572341420999647911474036074706634665657125797090890229448934706788968631316941978407134363705192462128130410078259521682579554756698900425543517130087683560509764775523401113845933291233807105969889772916855886829265883134277123348074959063538716522118619884070196058664244776725015267441065623101379777253158047288701534898721276324177613987241489403867875260942549541681175763829623162345694864540142744797253558221492132162467660193687506264577577443450880596291173360065516747906565064302220019832560064050269534313764833024902190803945278546883016873210184484682919042511286542573168132566642551136533489719439784962313609163280434066334248696681083391752843059032417824471807440273896514884658950706662920679255566618667821839549052064308389107865815202333186763042891824330808122064849074362598724166016681697650771028676356801342857712599296087491194398721027170803730418498448393058144754795544209713249300219158337601424872475835486835879381864566211462547901023794021446221524347491794940401126658720179194617145685537929636000950473348624273832752300416673599895211878575910360761991571260898967892136471910925208800595370050026978942188488979014081558077747609643934937187033825300171223171714476308849361438736676840416469124745744647893359609438912203442958948879686220601536758912069708501749040619638303921511680585570814071083570195717790935024766782756759978933652109859452409627465223108973376935826721415979390817481742467908228929327698780834418992655183919229041994063398594628636399232905409097886948616177101324036081367145276007565848488448118701539932676526958369509416070230730133594145323208940788584450084669499791599433103909254830087401370297314031402333858246756141838764124950586400006906085445439831996183411531321732223001967983289094012197058946804620474140536099269946557452406021950149762923657508634536052586062005885918459836048387202680363557937461889425657629016495114918605962325481266811085354596676372509949864816678239521856839810416654088480534228277962320033207337428831821159503794994051068644560913637725464032219691049712008659815048292968133542254661974752677581133161508579776540849440589513844980864651588569648234012441464145751289783787523928510610991499802373800314723053973490173868503049977180817314162585952138946910704854518881760354521101070959955060144085375209284726914975322189604174715958686095063255297264387568168395895932189894396459815605037693584892924483362865466830425707901743650413052867899379713450025162853747958311919994774541122207481760636167858336643609985179718323360865287276548994915046906563679822289582467726803806369138725122840099856647701177373673978138523183174136870378075357517183800864949541040997377102736789118023740601692056538554325711684070711098651632928023257422806761680075144478988673485533488245106211386304485900578029541182748133882842278050771986101676998944320906670208033127245688780475923793512801974882336286742391857125781602103134341945789680180544015126141178482412821390688474675429744831864951857149514409690260347376304650367500025639661153107671379360859158580774973017129437046735952721130471189857637086145884392331253199372407940325856485804841146443674666622431097841332775133512419758250488293490538409126721995399998145485334796164823435356615969906884680868676350537324436075577063251977135189422139267071552528516319622044714807615669948529216944857585788488314952524623239330375677058493807283662088787521454379504472124402691219456560810060117085542444122431790956347687032609610858078927952906854088580738914131463764710539679410291146649387904523804000147254827723685830567568033650395366805765770201709524637561276730078006610469516536998070624574059971900938023876847126714028857419767344213074344648463077206740663310586610307659393643413170620209637870726790508945925535643926874581915808552101446918255577229237802726977827968346054631195619240330642336290612600708562329718924122723081201593451068163455400118225403507220299431096557039455756479161602073949744100305801955312864196684575716062411025216470651533951922766972268374144703850112022535986386338447425850556537502740655686746912471049777410646723411591316879396130863528827938024874337608802983016053919553538451641816987226374366649644541282642975411817310755426515792370685125831092255403735697900470759540181740986927091386298498872032133137606613121538269895083001877014252709269377716908923619327956120411241581100379091141813173193914261085862885863718987993307385618937328342044258475121804961274590592383417009377919052604369260994204803494568021639118762749064218387950294044848251112781667228216449229347036869571145963368802813977396847941932136257000278390735452891662036193322957603396257383706833647817681195602095859936601117924108622000172155962903519876316482356769376214571503207868033983285901717508288795604976503656168025738178227846406853249527225991566324788743596072789540030170798116582392234211152800721820173268271306587666266937827375728979038037705319327924781051930194861679899781989873719019121735515584992138565362516344820512633782652010855920584817719366426753348112665215616867139655523428759580630342217943194355498178705548160252975696863652946966796397541438746810304596568560149381429741761676836544474245591763690347850142701585400764259012578917832982214584108088363059132182283225556127663448680666853519099494306097807834552149105502904273854652774175464584996157785934352541660927541032490590638463771856723679303917440515379570749874499725314946419343215232513181582249711681274257736520106887904433018703125321491588305596122568162027937518923089584646209442120210519016954866072172672862806429294568165296268749299000133518715102564815980316551638678311134515308026119071995460148095271386569823020232865339935196957297264998311326680616200813923201797696408785542416929432176750693799862178632282824443181070399214027264091865055278455886261592876858779110086356882209342177904535999067897472313163055480589834577900622279515833862098981850351213674464137797231881052782649462252991925094098300134155924446416005115681623094305532534487866829889665810392715011926506894253304134386662739040544333131581658857420751786763054193753165973637220744493203991623398224586878704367521114488281731616820309188590479152141307397604368152482363262687754124696980365510523327544484519033935455871652036871528503536827691997304203268594378443109710803818936646827469298086977038427421975565841902067871754180480569652535751223832073238743842686727462718302113115271291075295674423652905594707611120768769680345989819145733984604416363457021515322803721597867625245170459398402304837386963933780448036852463270644229211186666569145207456801600037042189143559986732638545777907557912089866282116846452356983235764463833924014797578111665058235773797392782105170384736298035253101951258821556152922835599347509935658914659101084993550382192258422664303943882220816814508308050394197817883954382543770623637076308340460944956779103984389640987105301038775829476140705017774428616435949510662279062642039183785801212261020270087405207638555919337739410937342949096328196288175715297056650407326925362602351073912064914632290218392972817837081860193169441916454182362966995961966403882439483248626106688220915625222186917253922416686578005324585730441268263674484413477901178763445781111025862521364087730587790287330176651612405638728034263596427324306976725050829551963475551491343759250279233866957195460361982747586639909296244315117762042266642097938470431866040917848281689456811100036791849524129804070239578219622428945425778894679278828464447169349655825179199125176613979530699453146708459001621851446835072557633450015093073684903691773734420137784823589957625409150725648734688482852883733545068331239560231889488571055442059318981858220815976029601459968872225250007527405628049081266785718762498723270483720505686805511000567670570590242409680642593901112991387639195546728207028703464517013322045721694612172601361307979054829325450602625553914115821061854895324154365978305371013278135180315219433028338081269819036277109402132573450758908893061780126085050931470282380127581504257795619080416171010769071775969768344002907532962821356143855552559967300047499944510279149739183198008688287195012922824908312175301753071916662022483912663889541061497938332991874044251591383102676466634970494797617273726336767282508376710923761018458312873754225850841392138428374782461837308517772062154255958392639177355647264424006834879992298457814222822480458112811128137425828746201504211591403544224119329246304202674299971269129134764746407988244321953545894402740559319689713449047319518235699260783163738557871848579121723191918518528632075107798148160531012044297883771111870677850327420846990353451711817760794652968687928871921836905589888010435588534186469723439723727263346320084087540701563369173426447625871400852635946668585107741551306430923942468623210486453898590125363604081463009703530785163974742574843232497670649752225982180051321249016334140263346206696207043838003101053564453653979116977466530168028646875858133164931427588037376788089208216771827079849393911219644636055835872702283787324064917030365687349058056782654523637123339436600283003613955704490742232496345597996366152688026932776979391856404058049644817865162564660244927158236770075366139851500381296746461680049864821095571081145433439516461534785043087318305515854260975779128469531978058326079284076155876473904786445495371556239504270533007779204543841766341885005312234317778972272667110546263489385583290625887943549301636848629624792047119391250014983673539891823906277995210509183031998013101185134907421835890637660930398087225020474885154386771189784993207596919385411854102215594348989322285311919632895233190085592271679969450974424194850787201907116114788480577705652233552025486333732967023603000656224020385293987541023731624697788087806796529594539514649904430920018595968906870177572107081590775265962174945666240982572116275303587044815424953895305029008767758436211050535337488682308102614939968612344688991700993355234040207581974439159901119164764678419767461728139120326413654557123963180806071729708056652547133952405919069735508235644456159456163021531909155652835548424217228255563233480370866986089185079986445285872181605203024110687966538938552425038163847802943971201229444674588831818551767088586690376632565108362436506037515901341925761860472109744803417387431589243865167055549287867678745618569339243583832100940865586699391731507912972453083424401678797156145781717365989501870698512329853298076941697417310195701506883827046040168676210132323224971598318339465246771126865762004851942113748247963318498034510847263434573619268100492947500407609602520292804660737155314048222450494704046779310210880437577104631351610026769376074171988100907808321780449240353963344014206048602464986390710256792289534588414760882320195709087106916978006085415926532391654853460523104837269921207267075368426384934958539877943112940738927320038855149037733857586824105963896733774403845769414630621965866579469244303850051927926310256058082647242112300330066868782694884143479506408735672662851985675877547788804010884391833815552818166186668398311802656396946053034780298388650597193276963365277454565138282956263796992313792869839304125000834915168676449242385474171757250904512065711211849670527167051160423733178806050274636805031474048746646941512410497903261898556480311849774700161578576972828442680871520359583052027876085945601293689890197954169777564228418844660060725200809111801700418398200462053678596615638075605147928892912827112956721348819798341887619361817436865959703619937838139083336920632359204514270777780228924124191700013811645847709849061278672695908387670660712214730976789891369521973149143157063847130529117354616988384769547798835004440580618276375722343831857849166681921756960501161664663535953353989178533386184603253975793593248126298448726503000468088641480812658531757769956105677665587754365733226131476736126803009674683781400715404558997033439969955061893863072246816024537224019289476680647589782223204286723342817913942627551573525746915494791871621247703813767379993335138646705348889041357946581369514014105504306187771801614153741960239291683315936573982742146377049226698927178421570760953148503643577555628301927178486407295890421352867936123146567770763368122238626430475284849241642581823019113606073261801448073004431556618368363404458854345779394666641494660684360123088800610226103195654828241146066813105112557366124176198997988126717399084611204532594618017668784367153948745151704538838001216559833946723474688784456957687965893502522081144109463757608123869491837717419391193504375802914293364797296666872589690442060770961087484602964691830865543379630122545693121899262137109648539952234950185354644059232032566826467202801225488146745456028957870919104055488311987695073265138069159583960800752381719605020536007715722881175672465415762263233595090614038746730004825291670055379816814175696653577076842729242091630065613024323423401026980649062673150519941201889640236559456507358562543618747337713576509219036767610495265139848527700583353832093076045844684922451637320712787797178086707332700191420732536649913391132250446844294922420765246376722072929704852601263885109200018880702762474814497768253182870077829763151589825558445179284842765814755909406325018581319277542853267169887013658908324775730668681333638933447169022309478465694822066256745340373716684595350071078394197140344415222115015813848021840416377742985818982485843459276951576594943960232066730720735409325300935718585013808345686650584780168692219709179781611776342613501422273696390110538382053677437410928036384056540490690774213677273981281319548278504318885281305450176835144730825292911643909014112423190927590611461546167621883918457342911342966151482784822195263846479337986620856647573302961985223276923013604530594643262847384049072006353861805525438144786756087421338103525539912407116646461485308827474002423174218801686669496123679893601552278178370218532604458126986489634916124568967754130401085844865874676642370107626100607871860012411923469715373564625649531864621171686832643505665293272606620845729924445809727070124978727574411772648106757028652617926915692811381766990564818140410206871871663693798381673144358086517873544897949461332554535345757466263036942255032785218444764197771429704115324006086786426032806641714688232439318170259395692774928831751830396975883050228970349721916117458010328185194189678434501112261099752359392559462188025458773280468015985565953731537285456768528728890433427165144202456811273155669981629372366892156959267874323795899017312253693697524649685600311698974493775414572569979565697657337395057011606729773313622462791463401879375509815037671532286299394792332642017394329556103129646071591422450301056647352909256833167522643282459348121713956715310836775710449604624873973434709510075818761402816140667180836074036566391777797915075028202074191753313069235106654102371925629548127619162934016473421439047219126563640326614057995722092333700158826849243929923906260285876138742115186777580997638854833779463405001104589970740322736719484578908572995793194147321869173965714405946325373777974821231972893268534113568041010960658396704309219330189917961978988721425343983202581538497414739633473202807516204843858732975475354191933138796272087859750829475607978422255746584232270831521340785192973892494238076021162856329288051059180733222842559787354614950622596579794005930324847358613771984567764077421489427151602487187033883413843323845111580173981268645208096437300039910143235487664273672679935288729965441188862043100836101499010345915236786163198541701356798312923437050438296671830339648305289950222962402754888153978252737245799959898662649936873303252870484837442542142327415906599943943000887224397816283545006502209824030230784618771696953964365091480490692878434668560353331358341449078302046309688995156223394238303181006463158724875887642746646739525770970461608592781152121467598433610289677172541951828859599294813607278637247669800351803091291211442242284839743415195101376089437161567652822603683854643442746303811420618842494094289144802792113589293426151989915283597162216962282303726684016524297177084337269204335908275842016718281756242565758830178768724146559485937152135371319249852375065231417074250357432777560203660467797441423140920409561593102061901924069208409481823760639855587442632571799988886279200733000029177169566906972946197782940515747673197664855614393177379221535625949941152309090717320287800880952530566929078615528410943134131332701418005195252634261976729772377279803826564261901200387444481912424966992658381383790998915992424011131070403437874878677334595416865926901113891479671449167748911869556711196872583446143623771490074968347274076036504156865508415553637591047936861416131425824462747254105042459612240769582715599882876761065747618896309656527983046667490768181298263659180441186706943499569868827398908424473019918063601050663724711658629443386992303963294831580437758268338555422438929705574495163502323541548293645137397856537492273335140075312176439753298929585011420344298367747146167922582607373886602677542986772250530008215962152911416195632648832495679244203546667580959673641696205183466585248128421612434843511579183411225866170387009898752431980892331744569662797978298907776976427322694745510072017793740062091928532874976812040015222720676510622652427727570117475296904129583750926965625734604503960784870402648460382071919865627524171866018960145153414104796334236367034500549221324220173694665161380062045470085540720340517511408176009257306820646122040234846961092720797068056697618245986567182287589163735870140025303143053078433676198830721431082753382748649580416873348147719560635447732041315006451060247708587113722610720635605981521016739135972440797620551536727713459131789660772616935191474794870492502264622905667717127546237775218357022593688793358763795802174510300146753159979175903019806300178745199431550319811534055178993251134144807463626062450595662212496789264357103109190997831502125117635038530694489391142452039989469434898828457518694237292732637488037201936343264766591974331704341200490976594122018268276633560464366288727891886043320844930828616082801842479893793193067103230109722167634039579324680628365697153085352242515911445310975554492214303553341809438121466974604111749504915379226820030369388944436575463364337096212576045928091332035866631395352857540215808992464857616026763590158096690438703069307935329991458398742099256824439353669002117917529291181079678937551670663552737990860758831321292014277408370212270743156328701079834932438687877209380327339332133891840029225687913733260540061153784636213692015783051501943495072846505996828132147140464668666763916681475450048100272490017196186673382965190147414372059616625768973807249735327695974961482548860204843656656282041965958917989825491933930680177142336071299207520866050975185452422522493788005159931639301583197927942379019625773446924740728896998585003389322417821136143954982733748147823269250602204785509778213821042818619754869410734733662355482507676304146496984763610243224349339458285467770095718278944601448562847541296153001196996376125308063412327851463280690884606408013287038540788287472978111555088143740059460399846177846011197441201900389636425742157932580650654340045673089886301220498965884040861917020119566972055343904158446944660777508181742709158287364073544362994805944128115931288002096606759251867598040875324040304777325881792098324735934095376558787191564820396498277752341352670345850604076219007328718188665086787024352546459243261394661169871687577803176034629317939580550638616109136361694986829483515300369479065521926348084502806679558620303490585550853520149073679812529435183314119622887158725220553173423167171362853590754864986614382509252793440693967715096626981927919485242047116725636333181747721215349937359157732524017052286621979054955598073875512632031352729239655162483188742613123697553987900629882169896111587240946885369769542255741284099301052546816449862136352799553401315902552686658743569968763573712077352790555625199805947592538309404401024556132090294875898952552148873596861832076068206449556757798664816058904509156655076534885067000377463972973953165834032315961757110163321307565865449283459992458441497674546010478701167481855074905202980815431906373919892010600957356309837571139304068222934431530770481789670089067741987535975419961342724127197014216840398302802140790781759213890387174908248765946749648514288037556947677961478833959087238090507948524249599369285613315496181969211218680264166194004772019379376617172911064423355107712153103046118381497402707751061364012357380846688509612569623295615278074012841470002604625821871063292319801183154731160061948704539261932502769600618476444309146860556458490836287681081834799216510307597280017900851356978183100782425403838915076807450574658290205632072239649592920937459611687162900243683540005015477862872530077439285248272447782292771370546175106089364868860211442673973462305325728364570162313275383759538109400059252189670303722709774987019191204381916841580295055589655041170914746244244204140749992933444329310437277353471414787002280680324693227134321501521311759575037183070805754122980622569616104593194201329982860185272975645755105688919460025058637662910647442267774822248086819999630687187520710865944732819282539849159916768371540795391466116194071794843087411850628733172493452687732471341932720160640038946510204762018627247187386998125251936984432753852903284844353478644501648237035486679078994824216024710738041737166595819586413534147669027892979317026635974923123544430785122709876788213365779453057069543184808521827289918549448185821279737015652191510052321249688872831092366098448622432289272193146117598484627335452145294898561739643224962764797497662756781370279997684401319599185198958357485864954305970301169645420863272222980869415421370225397901717357151604683163819185464059395041895916714189425759654408195464867478197133640357471242920121761534660337392630288404159003278776591247338328906953565916692062796241860057149682589163502275205938302867222352840585189848597547639704781457036564525463662664674191137403710065031367990105433506701338895293852589424151586049810664882365249288385630112010898560079850654651997000560292012794609744308170259870273633110710493885589107336570561111816642142304499325649690269345945675125255464820165775015531432943473242861100128059118695708468132860289233304880453735695972923486512220821034337055689608253238440895167101520015552067760822673608698617305456305157337691465207486603305170125268517998744556419914255336259289084986062314767277176660729464381215238254899084035130448541833980270829020561674526120972120779108998423439976695850308529629861997899033932050568814074681958728540676953607391034186052431335263540633829913023202716606459582000199513589502378141070182392220845777768144532945251297770695445436352931820379875822646719347275299004485186098328626078481804005444543117919422090438653624936980076133289121812321609738640955119204748622271150049167541414624226377982135742763918766851706961153089806522894570538337717246193847107248296852228956404013898272312877974930760540868696011262784943147343902519718355028811354931350520309912048496889465614055548461049371569356586884259520275104486579769439147857591723447497456707422990154616671785742124702386271260540790624529945671333276475250524080835632562403174560879818118918753045283928316165809615720666100410392005189560970971998688802948876220649303338354164933463796032401075193335292016628661690444706178992039008237790608513506125988005971793791808556099538815853929640212992837338589003562227932064237668404420180770014973178895225061078994912371393052303002365815374680487401497419579014622923916480153719402398198102768774483159219785729403140910018633687462678401826541227637148229713568600144715605376385706804698221045807642640917412833142575898807276351179182850808478799760539510694332598722149480666062174651463161996627993426187192789975004207870550996564586631079284494577868367777819508980433764593243195315531060350175085722875919291061664145960337236244196896884275788389731274715008061809737765133522049357487969768158495405410879731932560866389372985806106554730473133061775991155859148977797288574343263393935338451793383602229317974259628487847646720679700971171075815540928856187282881669320104691508401328442807703966231159093270075331818220466984886189319598396726969906168920029681430607383257672479104100443957387377209742351580334377158181051779044783358570132116621979904793826477474180580974959180533933853891267741119602720982545716253241546634542918850641067042196358987238115689651353519280562638796430153880750956794452846896715134548928893924437647225827513691995279027283634235991553098526432464214775146840378793402941662655677239669725467518232168300474750296224766699915398590179653150391554253909787339961726389714620344914803661735016297283098543711247939722110874654768594391210055766261078089014347563888344045702711018002403647648780248262206287649967806115224916863080397449949796231103536765259555109185751697863165976845667156799985384113269476034504339892952132126596403372564215870678199895600795920088536842859403519058949081203427056088166784294090057299003639671225612439773532074109525066449816121588372223840010359670299320070833005584217606091110154331756972523374034553212939989060927546484218868753277309917236903571512771019795675671388661691967823878769065251452020873224287955194590443318264705122822114719653861699363222946381724196960498218543410829690567371747328296291865108619998899671191475671571691911905328654616297055041808623912507149315249294744253300576120329298398573363785378197548251476309669128454730694998444276294764643221460061847315951032807450775719980865231906242768504259085021942968398066304571663121923676385136780969941744429555130537472323356753536514702862425798886435326942746904889528812673761438602619250902684655683687852356999719805982705000963273332335219751558513095644125056501657357747372929299135178279924787333383880048077558827565144365042975573353724152809051838225292063795615328267334143324435073218670497959160596622293955841594835793368719838228920060062271435770599720196407938084647645372077274955249709629288154621487346524765815854090284516927422641200329795792228790140761894640933131482282350689162100758162348248897791729659526266029435626473571972309808220173790422233288849260284356391333519023031496074303567405745017181949778517088483918094511927785341640783477801295234708688616809160839137106824321446920004105292258283792902332629480578871084736087449440664471025521844780483930951409398288245819694582114192148025211421657382783169318464718157098411611690150920939217523461279888214994362093539550447588563279925650994353979240877303230658121109719200384145684298123600745803158378160347871848536367014286777116476932593629540390824861445494764200888394685207323454182190970401363382441258525596510171776809343616438581572280978788561415378019050241561781467291716763039745745992212832625985072709914606420468414906038579733891145126140561484521016893002203793259731698215682169577289906610265791181931319899173528200031221189326478783210608063403772672666288397680820230195871628863501747283889284567474350897563656075244268303835998804009583385531197083266577767318655116921634528463593082974423850905137085692941737239846801088515221604273306255712636003465590632116532952468714088905314980573321087451920294638633136828008113380147995883730546027811014887381324374326269991161437025873857765961722886145975937627488690235508782011901788562827067304161207731810984933839670694172767589310428211230074410063386416479473437923393102215249083061413962345177515130027953916661823361596253784334822567571758030365721586863901002725212384755817923496415876209994107900051572474047347615083194116209033178625103765883277764843978303212860817337802189802901236418377158231301157428033400672576611236893673059827379133618781315589771488432093008267758114956569868985936881117231055614580693159132021053099375419337976061506163691861186769686691169767702421172112855743720222251374501319799454595649076686791679600629646940263682561305625481204669035972467465305268772558479709338438200015642423947242627129240871705961655541002384212660075035548922396965416718995404107326679587868377329149447561779671826758810618827574810884902093365506009609160036819696076141583265268446474491788612993614868175453040613963094435838217170071251061565562849894568367595330414509032733526111176337395343213285956898487939879848045657171286941692137312307126899107622732317114256611016598972401585692763275086167056704160336036676724260025737917334338795890599980065226278516078867518931095227385828599172080703703384249556246597436208401738468403200802266127535071235111863733050290410314654490683805025435972758668100922395901335678936250201344644059299208578562314337462898129385087374326737942156534443362189880755384055551386940990135554101791595836832805808859828291501032449509970959227984090661151052650091148361170024846343911338525574208797915303985471667242620886655982771627976018657736112376677597941552813241114828897954508644634620614730174573494611684969370861188303051422715812704601289436108986192179087378601204678501040422560865817150873988990801296316587243914652722150259411016437690616228317651704214845024477950038187256350732688535634491190001828503284569088855009523698578737473155280412338092991814148143790566815140767304271015122669756158603593840853411949256418879705544435526491471965835189656940010156655551082770091916927875307534168118421894788128877925710357809905050181012904132117614126895168435283442926079226862147693491662599107428075064167787916468184918013730286836160415635595247079495102521569843196053000410914551024985962148690772798767718294498751421538167300463658251416046969950343728835318732854304899805302987146346406100371994159176967325679271665909968285352931816044993056396609445370765674983699617972491635428288630878491212306420781202589937226838978176746206817839964061756489059501468500918764217235678137348938354048328838944840939710603328479368521363533327710608388905799920627992668052843323948375340090191385401069799593550200616968614729635428122284650840414776405602177738575859737619311134468446938107130589038730408199153015416345031872280490439296276335477325177113985663725453447143231034093614924191163638557920441826000869281585719386113755572049212923532597490398373383961015971197556165870971086983206326364137741519145004680009117630279351038943610229515462817754896770597169942258580263551923079310456075570770231636687997634024551191009570024321029883451402549441335490636740816294298101487347272623984046182849102743248302906580151442111561898818292678419077582489380245424680048925242125638273313920306864266680943082812592008307932654788940151825812207068941537581234376232326022334440872907289652920094748390788784324889239066152815256291249290375510609327805514467929071350284393318665650185220965318559338270658654410663952279380322010835969185652149838119035563593957792337920814269261912754229946146380665475928165514586872157221178172242160989678246780920962784391161565047552867925319082119348737520581258307005365489053076701364640583943129699388913211173076156141315317724628924769647170704461000994660259327447237034266327985082418751795653549487721541194022104685082967992441845105399474331889583688682119213984427704345952748184941060990299009079375471465412757774923338383810662866447674207349744756849688425018460058215229750775754180752581049932671036048885237683445250638328395953074796717716756017679114360342761759139095787871748414662554462349265290548395843203740263508787767972248041256023104559705039854419267499370204934887905640873779157555131375793066168714329792237838531020958261572561329816092389053177589377882756613434826687233415583990141865703607345411373202033834231337279678625337569084442360226676139231452143981939019871095168275871282503389316255552608236231315082526361553188199819728326291237050616886783307486998021802597262508129297048872274427105774924372894375186412610974204559428189471841777148390139186785719375321046088577654751370246933940531972365488467512356230084172686256479648484761538695262561111878909686318620110550992758178494495632680302275798274710266762170652021934685408316268248652495836826600376380588408285770602490457713881580856340726688900201721593235624198203878984128769178100125144084398120471508345391835541232162096164491745252883733432655986980296595624832895445738054319233696173108604966174859583224873914316818272989085179257260093938080521569768340934086803172832602521280314319342191952952721382841765529125421326148432547758117659899264668512848307731062404478931148796990538712153812658028121301625734610270748570523437793713745772176435988164409643600914210599345079184492092744096873326461704064224278130574683589232220084656396258368906128900418289338363263710442507758691131934605979721930588142118260526440047592068971294785303555456285682245238480656408935276833474001833963204509250446960242458477104135876630501198482333125654508636728198084527090641823237433766042856540586135903219760351222041660909829925577774131749961372667360152919943834084003322061210657420946932155126091371835352163636713203511471178221023940642409806092399527039085547765411079387240218853832070532772505294876334527458364202803984041257441755793611648390747776447960479907927481568741009301701003125701182067822422517579103291854251682389909895841838665978422500245065415337878405394809018282256432240197910223698976977686274987030040904231818084768580786965884706542577476395432319952103548732136662478904111709409357177368123761233458611699371292779072199408731108797375537366046475291395481379790850062072250301603790787561703900377299537173217086009951903622088151283389591447421355917371975441146056249240563565489628242459018330811881267897827843875555182613584404460846681701523272647735844143435015738772152643715762108670942657437286748092370863352241535546298501164608865194044831866371684645210815612477221441013656834359441121238799470894686783907433327940645256237024273340337584759494209021057719478961335425498426342163900748200419940417451961002910378998276372187312410014028858853557541976728474218368668271269271063765387400368073328847409975021124443473013531209902004131794449142626288364881324966313300796352322747765383346307215962382426647479141621276749171675610153770958296013266326548986890333315557211746505699344666684131545777849640629510968280816900939172558146211925281650448313246717755097578976889056301175879365899433743599232072296316304356050733947484683420760260146073714899014215792979958298716274955807812029081258614191201322752493248786091792895361411648850267977620684664331488352807107295064953782326193778604442762348406056165210707941078806937012297417660010696537516263768995981652847935352777932776639355910960650499894512770666514951790034039011440711108051410491936279827877446548233571544502782056204909650849250356029294148197696005813012708382010735864002824351523346116308013056119612557349329056511630532135404290951656415536546594863726485178546146448929176063864395290081141482717882108318286844450966910624433874852148820461185915938079180091385163020380222334903088210381289241816082997233160350513099478710933493133300834330946437242455510554928483094882223703091181060317867919211049110527616866916945857119396822268343642682852651048816970798069542318766387490457838675545515072664674352671673601199549112267580220621172652383346398401710221825551517667746972959520044660344786017221500214077725410106726877270730262378266193045273221407517619509860918074206978057343920202016136438015092068679674077445131315424843471494327977830284461062906761230676637168318855842169464749355582909766354379041518385049417065574371773337875326413208876101787945414939371025369037609411769907997284746828277006316306344323448775418750789329631145014850097429512294991987236790127486868571138035422942045549406656058192279284418814339000895915394384205163337713088490482555264613913023326140861084031896788650045442598696239208111391651967214824862572069866574794737623636107702455111613654523971693119983380170503694446326224378079485014654739480923318784984762037037462954065607672381523177620523187716180449091621422215224885805179105900043556866326761842562868668856357825677864595425964705427478549092761262756923270425555586342462786839386576086223524953121366875620071146018809716052723495572147246936601742453354356715681824250980017874837398869304254504969115886024632949438940745160272411032748890654489794936406838421899981537929956145956440950737593815709817453333801444994678935893957808874024683700129949642300464017937144054755384486046573278629232668385621997506711807937121816070753025078541236011897502389969140115119433266968606461637918788343041562449882736647695104097164203619486634894127227021811596331791212258577568780044774967764608136906739311782089437017208857202481421146363225243658361734243171162719592147553827059876240128466183744854466021761559017461521924242020670731945346365904449756583710086749441152562595241721635199849879010063684435734748994838628537056616122243689639910241734024291726956171440867743262011311319152360605734126004958755298212748163930418423261928910379668059552519965373940031253857487224813357185249217353339389548090851736225080642328278253648011839621862733084314836176644099265147714694120636959132733993402393962663102943816057062888278311483593806514169900652504815216305666964192508442451540642947941724032386053985957010615087683014740804912200412040167386163941643086616222911798649098374815651125157617497734678497904908349318412198510267909760058509971965134281406841477062948196944056661228870552425063201141145704829540640359339174877715489364530838759652207848797598677878020462276495410591513186898552699659479985186122801776208881876011047750741051859263272125382076713405101187606055872793284589267419672914259820217386894339037036463805687177694865043833137692757164956126498127208218458229434267031485242897056171537199759893398930750276021623529379470093576587238739617845806236457261738978882164038712168887863867850224446181200982521466267247777719635255571387966313627110317553150458508525419836131260003011797681536626368670046681620585423005455335991238139790113536677314830021860931748761708364170215628225834318229695785006889914425508681238613139940485694353010031503358853124807914780853103905671871114702435955201465485223876009965748138192646368183850205010921516038069192508168836164901864343324005605225692827811787016668454688868731949338080623513167938082062223033679749881244385779840585734708605298706592287620701101080097609966457837522695017517416706033563274419350069688835725063277056100151137766682082945458186736100089744850333502693407472944534624290007259666854102200200771617282315996254255069259847598417708428209358551531759795282842210783452798493870748061021110710843986101310198755618407496476601376321026719893895728346491811656386953739959577721350857185971340841723082520249136485693331702987705426222663406067963830566431781438669499537207252639290974574698923064655212514443097131932098821406290483953258996998442173938282451174030290317321420894831946601401506864899359260188614252700801850453518460876880338940842905118423144409363803267005717200889755526946631980595843128237970871652462431099423573475729675738867761396505313643302435970057495447519319874548001444246208615822229219638361243187405731578757325777971511577351989013893102485738518239797313559740948680234629743751082834791620583892184230091853383439274078438428413062789906084847680220725860173132046842687957931858438415864810811067019043105271218702011346574185429816193098370297259871008423268361943701584038771538803689824490314081641147121119227394275726336110958251384474672577971890902370257341409881164503806679294695301132971522914496968706813664354140870859420088852820188433337211744649595815976404203488808914662890777574384069438873319153255578680388740734604174996081380671049152607072492957894666797714016137799873512779329396831773860397309773987971044078420974122625201678163738786806418600540967122954677249222117748087560237309611301561474432629308711176757867118053578942671018580271342328157677965238935613275768372841650291554529115708583886649098434816354404269462222850756045840147471085875587274250909610679115786817759876162736848345599498858726319638545725438265792742576252641743067155916521610038214832127813078293022188651833661263731581306488485727924136661042439700034639171596604981227168528603759286263930188583856199442722929927191381079024870602394287903730919845998816448128210671054403265911129154561724315773812159467111123235974076275309055154863186366362733901555655115987271678038239040319941470706460469754242345570860332415777293623268969209772616411884624432951642164512898463818994338098103799421372012548852387269496319650013321359536585593915807881911851478916549080278923829297305445587021015224645175494565198857824891882504114723699862264760517222646097168338198251205955796363732577401156992785164220915124978436545185474366964358834679141704367801523001171105556872044792828578075786098320875228629275836633548656376536849767137424955076764696812194086589934572629211253905443427812182396650088488711550592798346940004769703032084797371578742957721000251323965742343688993779917918018107244102275700922533969369608231416552571068676935858180236942888833462364745832918958039013910749766210658488312214147140776582834141092050910592111208324521735126005393539729091580216127831113362714328661694146700743493312987067492790479805361841717204713991502446616367118303970311323960567336182491971247443270803242565235113820942840058289965093890460086534836873454855218635530948909373791514541279072893360910004473712209740908640935617168634123662965219218108627626579667185283272639892040039990582505884840909428269255346038923492591877939283956173153903473235619989948924776574273708618165394328703156008268189128624599322500513093961292870651200564788413691985289207770533192311583017231906687556393002889435215926958070827940252170629749381016523310395705314153476949102077958338801396083097590688672882527155532050800694296040021819189777025446727013760102633825504306609538640034405028063101525461631188661910735955286560264194428623403723049733607975143637800194236502692573034961771018054901081230905111324479880343017268570220960211031003189309758815605921066322492115501568525972914858566730813823737950149820252430715928982992083750310040212229225116711203249875702892431500507976010407292002563014310314587753956291138074726948564764661597137826892272781355296625071259397458565096765817534041652136900265962848569534720613865409225789491154463947428852243030840003031407972272881676157549485806140684006154093750331595370698877574552701582309460653580908206613367337201289957886456005669785558648326953752221424392324184517373568943857147754134185918286834022641786124531129753639867681225134135691132022292820090508654402363119646113186371276017608913902173964581450071975739708187060454619191348779241976022525540420180201868243833807808825116732694287150042707528260418263045213781953012256484441443459428402004622231560828775884061584788948329828025702844567364122555993259906833233876818915133131463485245211092939242959430172859967011523988709471840705658106332550163020792244464608113939005300787469136226466181933674752723018656812156231860702055236854940369537788342896371903763544736851163185055057508886903563487073138880738221524685487238845256059939147921037708183654335259881121085462440880509942143199402103645815812389501460134494455930054731051107833495654743335917508495535750230167486194438787811523238404800675697378949039855335303181134628567613426113305980605904304063203198441413420987750765937069619319478446625892947046188124433890398538457199500894621953962808770844090628116533761127183562829028934727589963057284220870589051391678730332709688845187453890512733574833208294899231934411296706960479408282569929414929821767299985223891657956125229453356133661387005843445586402704717148148219673101932113760691806836021308470546720740157515652277568818995166474152171423812821256478458622231335338307773934057993158163671499635270444671290959371843332842971390110869125010836926357509239617968029195887686971532360149773295093831494295755461247621431602594405733939657610318040191904763393048592819571364624390199559671081954048453116876315772100675082332966230650324084756898151498005422015076267684987410036874578752062805447134008156564062907848310600398437200913925493551972493102646263365709103132712050402955033831389224450782781532949084065172297962985823595999343426008721314259863263768137835361542143964026112688790232953338892701508988715595840629784471645246404474058767412202222653611096962305403972867854338923719165147715105077405429533393616566604476275531075050356971062549145660109989304665662513851262200538227328977601566841629864891404116990999610487617109322324706120959672728726465888117706334997858793008846067063316245797343505596260212996315847079097831747235038016487099184057529261357433413301501437714009612129608642670747472501194444072638062935003821920559972363134917714119602210379861480606177836792841061281952818477347090884343561382989390621133605176436920157652801892784451536199441691255406129736568326003253225579638479207003580435393016899002461297255899877176930287534404436470585928131991171486785339553225265515666831140089742385797696201257918857400186451192577201290941275466328992291275586203977923418920444628180765401393818805407253312000944558034682995243133342459817398671002276782166010013632679434650148736958260833779247057678627419650072605633808895517398233245948245305092787952245284477656229529335283653432240142550203671097385511100549393731226324206084323945973188651153302287596089967280846807519804229845572706075168937751928087861520120998426561291410885017098816809275976969039718560223065017779625073719525175416770874844009546398878970431957238359274342913682484397948336979886195327878807147000834550938995697305414937156466650730554049639640008726165530844133870085785918670432055730896572779318543925818439363776526521007723004220188546654116330170385205465341789441254279742457954401395909895820256751822214768359894649975299499724269362632465916794048844667445073050161194837847469168056972036797852012069185670424359452333012013124217043465909690245540391796815366570372889950837328864217786517826372472031353086734539634599689701403337202600949382202767705922641207098242567090907263644417659234841247872947792398460261252775422696051569903675339803267505295495006922220703333002198980358299673857532007453483267445279754504589424213597481462585513243915667668392692892974094257876893916410541013678917254148479937041348008313459221088859964216522852713771260945094026410671730628458504547723181414415779829162315664921564364043320998973508552180005059458018306260733155981550860762786801378839085695285514187669847227926622311551402700763949946860175121840045826273066901663756525616916965359432813212752419089771467384338085757740967311957957741908200340820589704741303984879500070725167821991784907127564344771213013060695612048589928608411037864122556307625094696775698212957746185699164213040904030391751476924540485036786803578419505725873714823469143087008135935527727657259655966380574047909885594109851180050438101581234360374835460745222958710217928259702490981332963140667155992726346003872473681959364080456198053847496535172069941671485975969035562534332056910033250876434849974517038402188282748970352510299698280871703230471795744385959298368369572171476378688861156184407651886258062755242946218254162214299264733719426558117868784877386539124250785685053217665343213691403281366522598527378705137451637283441889994722385588129760113349499655605497374117786561797548990276055901875543008845985917883199642194481298496191592567133441761326048583703854076872011230198943406070163465033667518757600833493651995625942157273290025879216441230431910706230742876949763442964309996209331759385992548265784243544915384683022954174727237346533329654463367295880292690715068303964527429998617336594666174403568450369902026759171062748673075963872730371717220218843683047466876855914435629844325389280526151865840344484116681439510181610906191751306998189889913131558768302987323547675089731689784969809883161212548378898916852065307727386734128244001939145018313637361112276234042913864892669600882976743455114991239492598577936435944849244131792168020382751395965737980088962673763836923132258323793507913850969816892251774926800028805982487239444178959722045925525198602466120241373090704244776675535661394979098458216323702411292203094721709335157082439040256813926444267222841959507597032176932461862048661142285138032009502895794987758494371706670371616107101347465925068534787491531602321822034566954321704612516242891037910692218509534740669135878521905500500035856850177396932929063948220822917049624105897813349638319711255784355242908243830618050943318794094581277266173942422269576418310884642750481141800938051858646031961777472230127721208219621468017881860258062752350268442413769010690630704913362830974887816782869818960992893434221847771833209676633975274215578977262887502586126158097054107989428152887787127399976194691930717684288346163926297795440584357965906298698867928916740581025258387568166031240186629102732687786529261148597430266672886094955362102904239837554120475730562607668461523546567106334522207362313387918028959634855136826375707540519940025075976871256001983080664104034872331135452825757894081310992123142951834124970298561168908407049715803551921882977306137876462161671187207302030687171496714900380008691508930812794064712785697974758739824736671050646824472149308882023605762739330620163212640510496375106197677880104834336872315712512354497150227174827024057607362138731490594250678836675637135300550540358195739275060885132602272284965824281646974965952034926605551221896770086780487572539347669647105828988588756486624743262132716661511526807952887606867232273996566727789031825544654517846434380660542991187546391418527263513825464231807355483918827319066295834018092707518313946968163699415165218549222195299418267055369334064159460221731759107826650508420558969576351089501436294412626664058429225537755129224582360705064515890632732522721916356794877206666669352785433199839859376763719769594916723451585947830826920447901275744516527492685502347439111557952176027438544845981486945743016526745610655960991899681269901889859046216157160629015937001232610292341474829360406816150835794811191439165122599770277203619948587764095010986605323654958737910662278583513330852958257088386270655676299069238337160312859277883068901950066586391833573390632224651702881583097307581829148973055126874935886817189073728406129644019424555103633691358923885095515957813911323018056811770135573656282080339854887332395008785480075232451408769551426060022879963958527784626936906926661683846841524808342927833138397018503479581905636258170828856654762593720727534460508418395950176813318630173696286161016808990037477150696607929439363897156656025418865470836021119875031275571400732221582444803574010676552233393635027798318972436719524380898642941308504278387874669312600303252249588985655194368812055703956334244430345270074096118150221395991257406509376130322658338129202354708219374673373873554314255377749645039139181990453560335613719666122441933114541416387802805608638602624968612411032955797427266423857437168609910418014670579513683037054196295775500511301212205792747464722002059527982138119433353053373655784159075424481969543011737084950139687453698678889435117091895341893955913758616263999413381195312716282498146709319178941777335601679080607159023011961137013433623681894937166713077182187813484492012818541402084566511178739913914486749494083552371606995768419890270828843802068436256744038136875975069678789243964010515718784014357806876772781836451876378036990897263319471651288201565490493912986950487288213364832619720037957921523818429843864002136927423910715956491385712273076987539090528177326090333574379861802795638521918363548726362168863835124987482399526479567377596199041709998299421925601535350019745367035844504026977260791361427805313842947737672397500717036730515378595379258289427637575219045811646768999337865632210115583220087817992080468798185566670621267232931100699171111709148937438041804976899628344146721494780438173588899656221665789896753995377582360412383655998737261408377310117194033658241237934568807966612347023255788954284001160756548839796312016080620136589106704741790498486654539136631394737383181736044387242570474366924837186997095382010176750109808933620399557028430755855468033324199090473607812409377839919947560100137967727787488968838344131941540963899011383440653068762390401350346183039823571459120200392714529549972881942826374441322399857283791869815168984519871846248733949761546096641145042447781395841006117159850545902543990254192249393793238856045376504070307840339711682822819006752708343746420058209145190028565114808237736303109959444801686306906069903127426133981953040334983421318774451943275337785385481902716622290133090366536125680984894228172378043480174900508510562651769778208915706679835154238153972935786841762992031023205921848329008334136888079160656553128484520664557888920862888140845758217465247325635596626459955056908112492506448896411099354805342799216900783688997712058716465243693104952532800192785448117321814484141087609485866826907257551795531338456792414790720960783530598181105104112001476595964801906141979720054313577848753229026834238873738174038519672992256956346960923109955871289387259858684602961898444209940769518686129197759408305540011089761359994342707357235189335338604453926118067482533080716614701088781225121738862269128420440322188873482788973726514963863552726340105722841153032136582189627548254069795290265730747535961171632975559920298508708820208840464857780636289364542060695619389656572670938934743493569336944634135317456215254420373645293208050154617273122570993448244561770430846184165832085432945930357941869736299183688930960976337995711974959380139782283653683393162795258310471180328861571957338142889861058021503734513108757540461885195868813372512663489090264493833719177791431380603844526268192325512917256400594024170556468096820233165384897802586652270622209417689022217807943530087072943571809050837454076477855649187409921424750946540412595411376293418903289451105597836862669565204159368334872194102237346302005930237136046212343277444671751300364595057324896923622302945085119035131197856003879786824018425388645619953052411946432810326789480473543813157936969595856903425722012587090966149229009111612761326307743402314158026851307734452571627882530043142791681207113350562765696858923479370257655173468754758992200510609511538149911969620699349932491863735135308951275618633644589581764767021656406146678628885927377872431587018753671747800931017691806315732817581808478977919464686132969003637986543357397382366530094287349088725508367902155615605351209675242618048460464098580273863362927919639809076969338700471222823469238312397258953625807607943704282414823093217615579092283817036079222657990417830965583698485957510149843389488392063815825921905234451543013243926685899660535850191953528990324543719936571483638728372798386600527775127169451509458779546651375965965941363240502650826270690952080759833364599377291228819854271423510202398341052822213111143755849895361718042759312664714818588252682289475910674865154494718371184394010411617494763725251545772205444609726068170723977615761536464074337686916920967413072163959664280336111047389162778573297973966053573473081267155883369655976583925669888472196979598809388705039462227285961024138748910570755601508113760086823598297373224117168579137804288214400628105971163480705703873420302857148355268379981889608511925934152482902057074103588053881639560887896990072756563090095685671494460585148733999294451596109550494642637390442769249096689741053765532194844082671317836017159232403354753320841051984305953710121622389110438979738279270741942671096574560865315782382202506570687896050652812471343276817966683372768092381969035993829375653454227804036906992158908473026650902084674226742812759595125960546710079504434966739604338443345228339316516615685074583723528306892459711587057617322528416481600818191981102613911816336605887016880157216884865200441927738640495031894070305636992278843615724576110526346434129637573642555436934245997297592157946897143362885250720144987493128680445344967284988987184704440142366800626448181564596641907879739397468689021434069904351368164972021623024565391385737591623497397472096140778818338366844545581723822590976277087024910953214240385638091963147079843441500203852375225709465486357945145643110990966191700004741845614861440231414183982168253131488897610049556137784131004046753354291085920599177014025812570006369879280643640407046264819598731219232721935051869487680492572671092433609137785699612588079500077718254417530210139860356372634308604834966148159936019425676891387726662890397749012036318852674396776576332818956558258529551153843966258315050437605883434370272347521137773864977434896228949790982209126160934575178062656825877759045005389333915620672654405187562224673514064841191263259075447497551577173277878969228910276127861763574040025248360189753483265127641590084245950704023329520763103505148326025808678542792976885006764943031069949117425971871914567537678892958449271852139306118433994322679764263464031047647387141343846025607859188830871966969478986105404111523556269834211099910979076435712113438781759578587985000526771372704704281889350701036753547823848401549316020761733128416794245842827904331892927724311486047238616035915403965026849937336687272807720686796679496479668846887282914024742704865395967142057341794654302508584325001835867054167460565754468504832664266573790324239903421762294196631929474725348311868687540956671299185373255348586694411128405179765351673362060744309145488097332923418110356577157189756230166151542412377243486591516365886815183534645200247192911953283527073529635666267292853901888234638545461223225763106554062958342281745162011037753515477162200103814537789268200466943392122163902945258264449122227117915834008232481859874659337128638558511830381030167499703191193367051171919389766869717450265813959878425120289178838460116797877711632463152043983982010024256756412164680677195737261392832596355626949421974742943217636108549338890622258735415747991100064605288305782029870317877882723302659070943401452139359187524973597112717647499719547085589972055553653441678795049119928172418194469368582587361104926064925612127216288288841719214518133749899724242597931827707010289174448215359004343744454699288389843951651726099244879069355597497394027159293552052943121581085623083452900009809762920602427052593417187040608059413764703371277795560689479786964147966600025088974173196333424341241299013025481123515576009467060639449206709583109538902109212747846915803257954409326057285205993701662560677306461673365338026272718514343251057061372898182511534852075986391056389397620023029584688424537854650613620012075879034077205970697765625693335864820569936616133142442410031279933306018466255035808645518724698571105415283209454822050344324099359217782778446832826111668201331919935939602773136674635877156612326589211295488358154541239034751315337236860915933924282012372342018764916118030830726408970017964774651976858764798678703664490922372952407877410207700192852332879041670207824957457508174485240739562799814631546158326346488484311020474369278390486470792114224010422029801213409172269034361891792814568699342824539513715232059811417643685299529001443335613233343796085140846317828636323614193871748833655757236408865065892765722907695727454441297127632189550759926971528502499415266333383319000334462647012239690178557052762023969510559075037596955387734800611500388106197092946627288674994296003824432915939923040528679818077444342295768194812670813843212361148731368791223191558009098145895421702341674204008346469294869403595346367324804554107610537092616203781440258271586401813083527684319371593655521487595401051960575618029505993414985499163660486326432484477429295060880356562800509827085744226848044570780168421150636203381071529684778333378562277038303530775969858940195272608971051467190201231330522080670488774190471492035766225333086964418059210267904621118618166859775668411645520870197735150570937234972559582852945535130404912739135528265817465107965302500079892084520957208846658117403507356519083450587867648973188730531460548773571704039906839257059596907075793427113248659536105986622327685574566192032789004492336830855118897267725624265485783382177416352034453410295321377736518119634366461618880041809299426767720372186921869659900163356231593303214277726779082205882045610791602396793666640121351295755809493907699081492445687293288767035150023944206574997224896645964140586050357450803495904216709792170855996881238557032556032323484283567547470953949706190519067466343494129234488737939134079919438954081815567971971537131783654867840256291492227559377958427717839753325074802715508646211937616483289208434968188247271727885309609092242890396340821477560486857315950920087331360000812949202596348706789620375391453537343156758261748939909839470409038787942061247905819608560011962867143587173263886863494664063622371898843035954788201099449499187023430609454526350641678249803595706002462079169368883653105705566197676122575032446613166767912388686501128253198973810020795144294402469477266909722507606165064656384809192810343516259431590411604156485039144529412106817638835503853020037786343612005337260691523990340572178524803748316064108605632229648497720717356483104191500349464174354662125110015292739699387210239865770751081529270568660417454656687111230253500179108063191510091976464025029172960170506489887979310875714490416664157259627971864814269492966359186319651906822498537293285478940654847702029923203997140071123173551313613330460607763238037774563525091100186096212235034689843297010227600518497451032896117327223876833780891186104419620021315957761227740630772648706020804751442431211781080924504623398004078405850430286723663949444880533329127550833121132657218905562876060718883359892906319322589681130544338748694909141215116414820108976409353988579041379425399537930212542082399924816305711153941334338989988174555633005264261005041046686237765218373338762041171510626126742660784087281889161463867855935898306056527333014440464508056471021922708776803829760945202538323039443582449200582664343136994101286839694023822782454701648839256519464293622015442285200842937772158236631469786998853750534656619538715554898492422439841901893266062163627923263671564400557555723534359255189507887650231030904634904057491252033339965191055782612718482045454307472101436790397579573666739045435557160091040724485238731108004839977237661694916510519527174296584646811753000531684584379428675846340462880074937002238645727730064190208350119462828749695480633886114861105759213699148196097803407701700268705433318372909243431597544678294881266428952833222118663586301374562892413911744170873359115272330912748556289404110863677605880616342635645690594490303501143136355930508141585590656287567203519701788439184992363218953475221515225804758712026747872400211268594723740040238656989431940475962019490596324433597432130828014249672437042987022394768987520629835071610825446731428780567077557264107996021038081549489884066730814278628366366868502192006501750708572644410679600551598227899077441041003189248860425736680581262955750204063716119307693942609919206857387290332036386954795685578748532049238383085894779293200644734127557681072073818154789946297874950444650382093119251617732004628581590526731710497134355614157686193226653615999057670064082751747067001205415895928558064449588055447426531652441661907849264760070919063111128103575596025315806011863681591513049188786325872348493660565786502978718097351427866772264634389325567518974069223458344829739800281488047307097704729291498296987308219396132182763904655191824858537785386383662207715625568923767625821565433252399418609606819609191894415337497370583440909922419459634354151984111202528790705166991160886089391078934530669603166852465087488639998364550982800986059097989587716270342740855074668188944905081240097879746876931053264355484888959641746359988330093277878697681580057410323955488814146380620409937926798642567467204808570758859416217731260125421117128088126951506890904476094114436259788676517203732688421818150334920469638168863181811200245297143951313878207363975289288119478598582855460999786861285319212825509411737689810562408679794049883305056284672442338599788808320013405993078647094125802822151174423474137489404115753699940300190836529421656962502255784320585886366122782532899611110727126014404103734825362989398935362275454065733431998689063135223071433992765219418941712840597469277715290011633810083066526863999086276752232613294537907527060935917858468130932307080950527482101230716931873101185461367388388629076691033780148083097269879770256244353821463125117781872552017314103893322340813433323641566726184327166616167918533570623516299884373884566873601465237335840092205103909209678072060341655131682895201372328511011304047537301163719680063880415699753993466595086730156100052652495682595003387785289200832509957600105715711391803411674116159259207131422783328387393712041826014618824037850140456228313035876378987732797831993072980639602339091554766821669537328831738493603173379868971986492112137054088016727899817634356069624879929288681570166614157317949145065095681507560554545879698253856355999707327997437563657464626396324335118891617089684795207988839762736111759499248406462533753242379493757494793210926492962409447021794554431504873273232442994598684308196761769412886991602682018062670917672917434009091819463836217935980575505367754558386332142168694576521448737742742327374370622223680818996907807996415713491355916922351414756119886128111582395341765144206972909329180873296934221514349850199340686550891818216522097410729357005359495660076848104329111940544857675199357987389637014924313968357108654498167251188316684199252943443903780955229258255658161298218281719614323576178639063349278476442853010539008297136623397496126496797486813507633043181904728672069895703131307005930130225395122866645083666663835085689179788860698220780774868416824259237198556398167269118107412024489410865342824548503131472332332343875212635877572642305056565407659440872829068876174805388543967754893708622831339561941525766663964553982869220149089574812973743855225141555602402439589453487111801188625051905823477743514963193563515908210327440420026346564541535076092356769858523980128348046883942365214409312567080042739904631358856493713167312179567120146598073906317025514160852624217187408753660031533053671058415580240694344237620405767153484876983067018029862652088476569100305046140018890563022953834128931436197529584069195551913659422471673428534557235808333780904602392438908385306250701743381050193576412429201995620085750167852093985265815177504224649979976794647419314222115358174219485205351780755972558018614430657915403234359109087563422021974584532184342059790089407573420476223073178483511983230354421504648574109522065602152898146198609647040370816106566123432892111472427473163454905823465689724993203037133582598623297102161623511272127898885599668323636814040935168433167695105647436861600485218301107271957755564959391386539000449032340849193716083464236736728520348077991182929716444666203485249915325980041962522951114307563314113277992625182912210960013585834405823678844730131680466878745825406707681511904996911293362700677906792619777933325577076380163013211695658601223985045807483921647291109702615411481227946996966304336161876165306569619294349351234327884181350035675163947757402355712208533200228856687803355381639841338349591073518497138083649770824517872344724689627859611313641841654872328604002380690171476159272916247544276787396876844612293666971277838773140282926972186095696996151584581746488087079400938433540284144311542543838493315613029195699105904411339270164165876794835835294583478393529186322858590771686180844059214009220029419465655619481394003648317519720655927354440862564842837516004950266335406399660819253890011047444887957416216669498972632149607436805921100689562193240474332292842466977990921641760395014148112508178990212612095107829205602307428217660037848263467958889250274391323176557465437108228835031809571511388907389139539398175437053139753678601414973421047944976425913117597601601117278393589664785480763273361638581170515124775111264397379093813805396916507910766204444338986719204328844147527843922681750094169723732797794894287810661552650913204539898668993152425627290793876779573517189006067184895702364598974736377807753233973094375121545059614145195004240141978716881891173727419317438145847265039799947234244608375238638440045143107917626227468936812772649369789666855226406692301445042196562781336087333511019700588931798273524251985550693311072911082639388097590396428931803553767577145746824180913672939035574608241813797654736605997303164500277990762857380338809633215827826370442761479011475962765018000413914653279702303357882204299024928235514561483726985762366699625056733401236517344388463574235327993143509204916144538139256165058249703228466771355264587164293022293364872103881388136991801666020724948417485914272536076572632124547734278998641740902859800332689603409057312249059902653367885626343388158273659240561232868826805879822138528996594899946757176818278782166034414945997551566605861260662240909413188593745631461110546533140816318078686297618083738157708642726384488025203830123055438952897808680123009208768088211160868049790265542407330406420197761339065193725253405074663475852472700930623560072871257945608422792056379231283504509170469538428913453188130048390424661842954516009781398822212522810957119049940047105373734635120786089009383243928116462384292229187346948379737734458701828295465786284055489025879838282601658973361421564143626680223459549134652964746427574447348371575202628479218701464031668189133047569150569521096615387430823667722132653977415644175900714630908122900047195030344853519974640926365026380593400456236185232539532217648477956735486528419028904981313184890749111301408087028868638555646490889208756229372446786041645681979112131143040044298029177984324607596636356277119111138494202704002779369334155545362761010541149984521902639524221968021033490384605133278950478227234875246255923724655792356100328935978472290189535971842239777361660713831232385531590125033774190702223322041427547309461280201339161655439771712519767911717999637453175221241338936753221212795545593401775113233383012545818291953719199019898251546534203439168239855086099231257145771414792618079190517101662466929199666091027024904044196796583574194630045550738108968908464773257740204026142942431460168071328610371291458520098548992032161713618855819638898736794767221485189635274240167521871000735231122249347369583161450580441995429013118842781907812382672622897791208509614361630493028875057317283286874447697613760257922638112870722056745721790166449739981564437290378400522025158476126668921643412660766141785867827107228572518646288410740559618571877127630096159105408837870666613231025266265776871388500821426845580233486327168482360673459812558114068967748330118082988915640081092701605279991163713702550225641992511600688807688119819566523414117466063896849445412612234284983095361223568797970461068853325245559448580966110054220995345629269564118394572365695952157562667970852258543716558877422003936109653658100485887518048206432763770452627895844996328438578219089014831130369999452368517279983649968363049294326861354709842079919756420192299463078744986809019485926678348973287845610953179406649899094366985048904708960287112826274056938378153116809027718983106551649377117629723498244869942712115566290194915647897782267701596874991499965718669539802398335493397982075836992900864184037157174058812964992483246154183921365844414704422205575319500429599616832979423249408915628291787046715098095151886924845545872434840162457162495417660182386565412242387412500686569906214050241971343408303820132604158778096606969621953004501788732922164378546822637639568912535346630872111688893835227376762963034711449036061220875948055827996170066073783673787795383121820246101042612225295388330178477746762386963867512147418490479493304265240599263826913566178431945336633964556963625040877439427331933888191272484802343755403874986564934583776679422102935966229334629302238892947926264853287399302302837701726666285014057535770675290724631898359754672318811088186378834293681410911997232773370518617679708657245445377017192556698224211150772175696428839362187471376469238607955179018657213733924841124988166585924348392826816803628678092038968426159275967551083573088283605117991386718876440050529672612486190150660500931361121135747459456306978104332190247203169455893606165863751382240688553112427196923786092831452834802382399284217187625010259265573806170353246349729288557547960470726412820838364382976101186100156113889108400480871502578971965364669366675175620338032494720814440012236660761133045133427505324243487603782999002233391830553997690408669949280578918239507848976335298284470209337387251977713459960059475667214162438302726153612998304658218744770199403379331220482539374226437959076312956570719956948858827423794483075602887163491549297631147746059205021215624268469204465522000716158408114335481620573141650105524723792531062982826199929890833085112746699733774926454487643071566905922130708858776883909037633004259470017365669362970898545346626319377495465281563600195675266009567443526980735211345240784173593711241475611089777182998462218250871686765132805740173419519727167871825265626582960636986691015235048458716463773848567339655492239501259458400534920432328936653359333749976774078436138994057094912385343571281945675620489508961285834277523714108076991931484261331365959872681348517658712819753443051674901243192426153695292072826337202294798448823275722631037221765958854513652939088214692180441752798409785209785911964891322024778322670579902363592603312334239235682009215511282162209323016308366982020124273477486017161938011092130690021607161092306453689058440097398816086868437136361090833283855377447804218545435637208711443153405034420562026589501148286721684316496295483679466198128564233731439010420717064289473585626963281802697783510515852743104263381982546101284794912393516464922062855892071106459272784673396647878617461068999665608289025378448144844652980536670743657290816493516382480573930962610524093382838511309954421517217713006412711722129588011842053920340605229222867919084637197778971038381376012046957966965534460311992302562224354568080809488877061992593028842625535641589616018209179298172414561904667367772506406201400354759082155231842063111771497374805949957537833801930571983658820902463984004814674544640990830612765322821094050918310865673578750288229874572007948779570933385215402105728727688294318105232186768164904108494769001877019888745362684427408596430804579409496882077263048264950178455697043620400067191396494870515315175599160364219396501506116345211686783462735954352880258489394122295985435593905159858658279913794050496300138610510943528693596205829755735806354467696166454041747419219198400142728323378442301325293774486452140443586230966355116977370293857336827125547530554504918981361749912901186706699249380049353618230682275554602352944194478555017364077639872381474124617684332611770432443228225530718679904041426586660743503544221567697408039934670687594737067455775352050693479062531116258465692041894028021943147763380740720215603483557713339878109221677581364907500829301165661395830519683158205882857861396034610031861010880954589158387713912883108924854133616440680023683293088568891384622427848106088347300619076806193831512125834416759286139818643964939315556794146113889851709030131903445611747798917789991778092864449417896086032888305764524896942644378347297376702646579933550057168713331856285315210651008758208476572191342963575316565544318907242972734404449921586612892644087335736316442708423712578641893794791868813713676140669589758771173753244795684338036873141841781601424105724090642582628333682879551030074531978341635474386447512914220476822782410515188207089053057919135433765679254534899189835360729617370481363722236046372020047750469735346234988426746754475872107604613988367401120013420024861430787244434112920712660368955836660027487445378649321275364747219155094139569719217159135949089593673390791735697813769930360995273568370040564462193660511168084879130797001977924520511989142155581754429902783864559974144258239382451975497398510151018892458231689379073547850837096377705390770744417308897306379623354797986248606694972718286012335908060811014636219761370455457610025515834461120810808989392635574002092129048126076252394088453964780275907577107538519318523714481767705905035162071861854417659611283756344524525022103778337406347790928010422878950062513233111988394465036390234522401551823365240338819626599575830438980861993110290171199914761301426842669606171583131310776928345899369823413780331948108976009741226588597163419815549844585120154719924233007573646561258003875125304487923324408069308509620801413520661867854700283948625019492983946144431070524605200390467112260981133918066287389760298870919371610395928900719040118073947912899925743488847252812734944402765628291421504526774391919462120389217876188134674720477153915807094825746703219354896486116877615350577500474874125290907323436679101089894720142346978472504948361957672843044143252519772876181553577042872935063062058493243401835070688148907487325800529167921482375090674763119568526677168718828623943199929373381562602588886877180399989396677810392773703226737225695635632782625360789069802473035664732039840849398207516568053769598986571845811232835859204097357967270906793381240814761898259865625746701322424997138630944273542610476696289618434935910623378075160851625483043939903390963322014567500036918344505866586297315585912659380600099841868983793663376015059035564251079725358581145525864768983549895797377661393445327548614198778258463717386975342158010585258828499988713030537301907647343840427824614776916566836218711395752824274384971771455220612239795890022380335912550566126033335302116379437117060140528065236456640085384718262583205786590722729716511651979485463753798733240911940763015968851478113216936545740465596330114380570995274333349381193687251826105961835278340356314071403447663930477887119534351443199810227197120883316606302174721401682986973652545973781340753247085214417859763791877073083570558680345450868728139287997151829338033400822366899018134771894495846418926769175098318541494733139586325070885709781388085356666801589828530242849508718722905820888749126564740946723817136385323722664586785901687386338265191679889340982014243736942229820285880448678881446070014984111017410554766750873770988811844830768460190271654994235274756951918854790454923155019082439534844234041964492828067100029306659935726233653960084125838671218707919179088909916050400565681061330689546518553308819849571354072568428345454349287887634304491678325121132387553624620453657254592141625137897790599933447599037190838563974372210742582211894977994416148129371684786975375862710055711922334621848386953459358627265956387984009881529844565786383927441208645262173798383760739048558072703632403508760179058114182132144039052664208257232341425816366205593576612607793653949082550668895900182567776380113793874153084095384991213511720593417125719360106775331690334008116722300848133737450003811749856778322504377958193111502763085398222719407762338478524655046939721610983326083853565119201538459545461758804348786339723900801423241696158351309152649378284931340994098907101311947143179637754687652682455664191273998682318259038747942534006104699309628908807323078905643392902153593961245833108927319103901225526615857537393241544892803840988701888989644587078282693865163912829647265970236280725951591860453276987765009474338827685061488390587805571648811502656565294722019259221010381769795032597233854950995850492236146417674226609689279109530479636492243161889444087467844066389605974207025283841276252112968953641149047519340200714082817691222390489594701718781838621108553665451644202043286381854464452093315451868208170138557127222122733549004306579269070839445094803036166783350063275680741364075192028207207668190933301541739306522513729774241432352303109844192940188264372015454325319720078581977888669208905970302390497219352395795267191812432439790321974679340454103449461210169567149821559103881859598857871404722237961539438682184621957357453970865997535997787389777344153711002618695955783734389528801297926573365051854034985572610370423712491195625983159837452167547963091484185753902618091596494307323196584523303089055090516118300767007238130869805345288904891696048326139932625322790961207122224683895433271163284978566750978743054432052053474823744715638223468866638423226528896444650711282253057790897981353496701002944723808715274658961703303022308615896423340956727352150792190435827315845015052148451977642991067934493324554272811591837366559944474879636541528052585913769102601607670787408015695128635816296965645443833997791736522811241154842686587892490221890233004839106821468745596547880841453732814941729119393304109542260677037004225431702375440481791845186958374804529612744312838400389434221071492965888146554285958656005926677413204650628401956272823508080544102769528364301934576569321653355654366787999909097882669251317952894533553562365904828907291627259766433735660649333814748690074330389241393821831290847222535620680705709832353568665683042698376387915400835681208964322568702217750195913372730225936292838591981759282952388412896327382032544104442689264573395140901045327388478149852490500952206060502771211950525525273562231032764378038975377488080070725615478494751934441678832726950527528685198438474143743804020879423150967015907051840703461748735258490393782919014339937230730843717530852848675221358451966094847307794267425204396818291334950361664085924834488325235989683654143677132594685019499506639956994698181191244586212800846537430507619628749475504805696207780860643207809847583284378840047279916333468928977178531872006083263838900600519514201015964215770553495540985553109324542380040419373617746474777901046927995531503253188967848134399105880299298204922308730529152694177222338795573564366413198309172670885502337031913011123839820467587095890164903409142644556587561237994594576570772596039788088493107798683816856135988709191284905950466218139300040870995811451726291668467064231770609791039503417503577961509573354267594022630089619811767800228501969824101224243106008805657349377958314664725757069747298851256944041491224699071925274840329492213493828685376254793869170986599618213814419167131297413316187078817721909814268955135873081301279298238759973094118194190537644947761870100469830293389926466134893476334787321370194623399850439434967506668020758291287621782222231309216945011511818477014518343858579066011871638008970994036770934506142089940573878927719271460542810349759985609127261986261803612464786200319126321010712957785233818333714761513909781631998410439399342451688559330728663244717467281576871932198675102842438875859110304274367714540696794570804582478756226233519663664413607869881220361206949655232099881532297366024578139632885706015014543479249172997892065196896544719970038748573273438467409129136434919019627658102146567043907510619310541970720556769049091450608283942878513369254950357472457402624792217758148984817208878235521553283535853278316135099055563213276404463512438185576376286006502753118909672750340562501236621832523797008505236391384086707242151418727550883526208186307612465160845761252529164301000030541758827291999888408586924736180676626262252134475337829599007896545397519884602399363116229879050237656226178606257990204502950641781579141589656871663423573637933805748168670235896392805853391000133661203087153426586551045191355984499175656521837438279392988434082697399284555515780575348314550212375727533031408313106616254197647208692048799983244408953837636538460846148606874639187991792226374739733996461815001662666702767630204436050375651044591629508856143281945989038343694082408087392819961383474166602161676780395613737285913973943922368070896806536372193202947628213588929077494969181413762898763420804181145009747094183908468522587106616315407149070780961167082583889337689318463082899810018812108099546966665178863644430814435674447755994103713595251665467013072373830590260592801362977273117638464818810126423780183303008062729407617009779035804811600191085849682561594154801867990755252335394813109899060429488401103788110110897547690466247290381971018876283554774043576205477578483759275607129317802808166341343124475623847497393553303850596276997661276137541197928263811509894594710643457138851547673288103567136967104897832973422992131811153195642408603941951434636087522005707631415841755883332501210409393947981271081073308543090782830107526806474824517661053974475522374074647267743895635733812536056266954757693912942424348432819376618692471853619998160695388453930849863774328524700776655451225401495370897010705805426593033998166065838922130053004099986545603421692238491059654531935395449616266512425226103441448949685219919597143807985371548629916312755299180096461530015840949481785835131157364785799830582699807268198381573411100057074044572866679275174425395072307108209230334973644302899239020908225813559109878529022091334183536084210151669036110874320231363288685855735229360774241961839143175956726123096754927570762222868166011878962925368824307253333904906348230762303711908867212772748003350906842127336160882454797678747908348070656141008513525905257088225333046599044436385559991678482161996930654766308129878775530913449794037227186279031737894612989541830209278573930280675031805022189980690162536573174527226013074915866753918329481703170652950970395629616787826226344508625350510396816190514484860427961531732356994970170572482840540472516747495195153728877402847013962876927065165681808517628352484189312981007561290325358864621351238938592878643273062363527153506633757295710910862080278742763208506575226947936578568648228114892934366988487799609208720632658876372574150547558604032841267038711686206395920424316856942605642624595978819811884215019729930318001012748184742401686871719127566070513583728061898149913378344000145532831701974104561131299633155366998224233767557507663198449602668501231421394788639251146644116716833254489065284046827362290964957821197222121257283648753767859672374775016053002469981831596710732736746063496065617611615500771956593126777929047511312252610653130254231121366209238316161463421206206457518421949141258653967195404509788093504956885579298454497781722363367471596028019084967438814566430205558606396598074693947126380367043485716616952996572039386998077419444514839502535826471576143296326001221493248190389956768523975393731626673512667991706602149584909983091600716066876330713418860027192127825937104151771906100334304294570075375054465851417536561412632217203178058163299079955508867804914422002271163031175979917404377874828345527278913484496890996749385079340719711088952709411867133472004813121085499084205058011034733198641906320947819630739821284183308878310017335812112803355439357158629066057393874144116472020869107050436940958334715880661991088077096000771872451700551096230634277288361712357441835828284310814382692521154410163390580349173959364668052527721103017805326968009642960225383738513740483033573489505340458140286872552190625759623986068959261032346635217570423844604098308305038232017180519853337292291459337438303994599457094782133418932697106220951484479039361829043072919946094905644739382125355343315181889470136922545178466266229138851098283817496013841273628327123337826415877625208355243951968161807461771719881584491436089856304397571125235976124648121225752557364013820045039061440172957932381560500397902456522622810476274468667122238986208621510457623537712898512359868812689717750630736657099184149360035377823703629177912302132945312142489214622171742243306923269481159909914632779172835506774391212509352279837366748877742066678300087510090765559326198565208012538591554603607696565099096807795102098113851009383746107410356533467310038263905409158789523560857612976934283887536787968248621844142638026875837568714050595654923036827708510922542543895992400778818134075072522181660649220218092718927557996784633037440307998242244312249485687578846305675533374710285326013393983772613939942234430777458751891956899789465636029981020617415435313891116774042155728495921083784304687612291544291156734583672203354436528334198378847235080357608783185999033425353461168291887360735500821963017400881156447157632657360035198363493786351731453171860536954236152725144161245870509259453108602866361700836544711857170556234572742515925555662375355041801038194443274839747404098496148133109231780425729070667176035626625796682954184916301313854487181584052471213006180131476161519941780813376001912800427307693661380593038173035079980101751841927085177161666975390855615803707710018914060327627940318733810047414235987964850854589012049436156044852696294503154274037661372999126215460746043039921443274943998603056425598557556675032691117281888394295161758774671392900789189573155998389481513389526808408741188346418151599951993480149217529025658510256249786334639471962591810305254877551350371567590575824011775957729798636460828028483506365097804219193682767415077722967678371513620790257350324595468868573967382280019260486261260177860119963258062342760572134663087790866489201006810022524636377261536658543461405542152298421370567152940538197795014616585168395176213488841642262161106529478855313899267127229070800822436466926527550689422009075331655986767353725139616291646102949676597173516937693229051441788951772645229108949631152819468770012260577453119083229616631584072424752149256703832899092373072514596677542276824372384634894006251577564165428530109855334198709054609212248297220010225373171054188079429960142416377780083526450979506232219278072861046874475002497425484221225973335763846445318416649934203122642559708757196245730750014183776350082002993170552815811016644254803716654401088530368372652498466394674463362714470205610409727357420560842900319462146602533331665958818657368631057014359825626247562993841185840250690708224025505799225400619684457876789603540919721290073433668387347628057425180721893834874239718646160711038940969689827707421457245596622858839869242557219555989994429929188595515269302412191662496115820089132036812770065831632681676488450079294869648996859422008428642707833516443383942332023286199403596735512684518880648697698418865781567622100041622788389928847520152162012871801148511895765025971314836200995025991544119414761361643147479907831338391997766679321987011017439678964554276500782548783265421738626785505387830103667108537268264502030089787422925142607542311849358907327318203778043510454793264258976058820957725453891559901694048122567877837623289029839171701022179805192687999422919151046055288958496160446614607970923724304905714119445502044712552150141292021391451117708710881369983904956470676492668961193903256822590409996880123953099637165159049186663038617572146964890355877145519304302900054553233502992273442110558834203857471518275735713635862575161218457756037708799763213180412289961447367658959182238647933325713602856622703157151666220841374684570067362389729450555342206112702875675657684085039832731217452352203089234942940729930383373955386018656918792844551735899347195168275998430945083964706859146195850167871920602113697166954863277837743352231659851458294464625177069872416543356236750373910527458431659795238748350463663795609947509375056005724713369670773311470185582117946479608374328746833124502766578094752958294973107699815260244903823647814596357177753154568342671936569199924668259275258867292261892675255430248847431277927123972273200183033910372795230611497209422079643910578172081172229853777956972830150811037213852873864534345377096686979077814663374079730610364563895645883563575803278523739192728652514996812375425421494891667753286953224619235355952521752992654647794821697476791996455671254303500362286646370845992240179883402269874113705972630648578836591302392176287899041378635156333096403647410272662480389539010540016710322055698188473341106565756926796910051538614893669218221760929900281447150572958304490728970830426378774758036473076426074737383699696570361754355402202043546651696450301531464913180577368507237620989240317033327295310024311523085191684717713775681558031201163294630968601515856757872186907853481498392131213652583832321906649416620160805938773817896303070681102647840749785713022894921165397492435538016116820328128135430991947181211826822654436267290336774151242435086568351093951695750391779833551812151541103922803368031426710673373324576376555515313177239083298936391826211665799478765781071908128839764775896725261730375348489864620911966976051292365326654939426824128990909276602892347308076006268067340673330382221842418484692315824087787324241220364989154146382739251321925770279378445145332728515850351503306480807556907594848028008679228978884343586586661866823203006454456398173511117205658151818624504825233315718513498551471079116153725612988691107078046716350326860439641024399366269293555330044566836571876269028140392236677041788325446707938216467614941103828227716383493601957816043115985761597344307586289105599197315271828453535406489153833605527290597031800991115299677019000453911596478584242630633748616613647479246252884093073638502297151896400482714982913602133553466534454891992921388457517796977420240675045464452132624753950046225289319044510109276724129829676276960376002797164577562906158141403139075227594689962552840009113732838304095848419567238089551616010291766364111160909967035185372983356924822855699078494607843058733526918145086028412220225430426352859286131877973793858327441447695006286716722881835322766311921897322598124054572350941608373135895991847406927745307400281500930446127224632849193010719917938892332956865877420111999120257589676084413593951445894917752219325223548871104444570980683931398209096848517547312652633667144272104921499527519277041104574151994610663757162433019874400567840312894045850435052378191521254941723133347771096740943426267172807168146295078690344112401134021600969897033112509778539052154672013676184688896251707215926837433876520867378940354900555262731662260003936584610688433048160251631487687309929081056009092286273347279736903127816250184813411210715731274245927571786054823284917872691505828613091435574721627423516593664827948120678081016474011390947784122073547623972432760087896319432625517900840330121117823138200388433750123611112166346407157879074391752044415701992510802244592507049570882612968127752731738451257579271671780470390453105352175103996712039167141981726607314381535560925672874845015452174563407426699546445462271770810186400848091634381760096665376914678423761243014747823664724437963202209082725379305082619479472918841559178270841703340161790833196280237178880981868372645506032145737686519253979685637949389633476755146682569861210757286021993710630450480814693843026860853530156390541242902634561812928585403780243904892403823932100743295951071328605665347924588882179568478010712413602579630707018264751305214160319920095850841196853352213680622107519106516315556781538126112781500964220848008718516553991158733178496687319890424438023713918646994251610080769616647866470053237329563345310837806301447141006660608069734526315145217509107620171338982274808600506193901610644104174280774333566147732960718687048610417925785866874169076919050090722027936615331297197487721369724883039423397998910629476930536028247901097408461058906871168194106965888844297159977044186563578334064712536169091960632386793848657439589729208397532003421588382682013807032705819452811845657151979600110559194684095049202598634845267000997240475232559543452777243633515896497546744622827359749809810670348180063682745309871227714822595353195037992078025955838670557459863234613223214852978139497967633977607950544430323817907071012142073230224127562478410603220962662575899061914707901494166659594987767398781630473993111576426045846085067389384534051687539740712482519994660514357533469561751480478899309306594434209438170083976610557346558714708912447693622292988276857760157436819120237250038567427448356777112731835924351118391737853335472893095802426288275385720893617660128745064281677797372218015065065413260406788325074565050460173479468080367403194300646156019272199046045829236943857370369736967452023423519091832151819710545188307741248977329659510130049270961098268864234594134755807419869177554227404310241662862025170380338220493405562183734948538289346342375673945803107996177614976731345528326153902849212750621089267818268507530795465090258375586026324703933199794474100946494961017320997757096512416607977682211601399036622116596788419130748699060103791946109348457765131850003627594788668247986735567139064190562574052023228317224366180624808571507934987372380907555790886421682384231648347251692818659771447052633331935325447955229449534771624316912430696138262220517355746849530449533302860750086561977467880104574126460727120285951928074624256596321317642883730862723102620591018458647468991389085002827485236366465954322108948458249422807170480373959727944117760761367092117168667222249017342735805087298149269806091629680919328577565231399315944601349559372696596208955627898239015080946654765119898493117236243340288909765408825379309761871855750523620705018649674112255082527907967296240247412492633684713837817835220873289517706432817613313402424444283134635400995215860890087349152402225087330992190639179358579642512446328384577794743835403077885150754646377773629263464857482870364561739759793910810056901260439363206482843163447460455969129201262051772163366672415540396157141247206591336822672459641197192161053074609935696864064143227302200410948828783711416561465606627608204997500939410218457631006669473620381680104463803166762918764831964492139177831039931363627310504038076377821544165238742253969347730420233334950621206924568088271320477623926721590504716863447659450733095870361174620852407609477019039038137044908523192346973106290078589409058240548280393924968437985224095238863624352170753302711507523924982138229146948103886939212910109648903745464025774161358252152356650998292355372125450487609480842802856429283673152412884096922735208514602582379547273591154949670969398753427381672240429831277189427228292012673920881754514455642422151346660725755215198057269278745254709133029453992257448272521228724696679030914997009642499537597408866752662859933362242402991730784521403513545249786906974607007439582426718291191972003308664009667226078681030442317340283144216441547842012201890188618334686444817310733442442136122844723647744743428094621228105462550843731353774720981378732308592267780897271896316995441579932817833928932436984282965079910893540219576457322869617762048428099968051106817567693298178538493854131629774629529694222216318925588434090075168219238341069128224530424703396968327613254981232024154572549863364336557637080790383709520907065955747994620953507282231576110532131669281327450421063560613749558685608108875742524455037345446754149006963783630219096984186732008872990133501971672330368587665722092560392618342263216132725409624591526949644776702644342086994426556220696659088523187618251686437917754365550624894029189711918363385080503257317316002529382155684617803700506376452023611428016171155302859423864488503477991316335578346588524818459224504716867653804985781336980599829751996673106161758497411111131636001491514056855017401913119997692823239494066686192372475400049418050578056265450826463216507008517821074607084903978120099211866115523655031335897935057558196103826731783437779425601242884971590583141999576027233891545395884077842921380703053581287191705261363739195907591293138803655584989112978033974474861621284710213705345664404732855002191215730825840020046880606391898824805042145105692892236273524054212733361588881584100060148903294770451403944050447263437177558344932384325409872664009740713395301089769141197294872826638374656225105784556631963127913510431983026573844022936923395713359649437848872472232610530856055693544403758397284510729110325729692757650499678143233020790616973818157032979437344987055607739246737434790280810773200897045174122817658288928079588196049896630319787317453457715869383338968624393827267299287828531358289276211185890851495461062460797913513597828106650473293952930282016237973726051742065451080004896325715862075483466060364591110247909975516284036845074320825364406559392726453763686101129915010576648496541580694545070932380985622828475842373997660387465542907197617465869737784435706163504742057935095626695413767090257624003181898576215973685966442088306050284584538729530308109274264792022001901292373473519013640122202056603522914204706849933705056307427471143778587385914555971112805874416690749443685868344094685304999643086713513232387179753372180580394451219167654191308786144812262863618499574121032641819271611922211550616355537425582013646181108668276437426485878232737416217231493986084198516394788999610167340908971565256197882743765812554903017966772131418925965525156259660362345825080697335906217260435614704418717136694810265904177249506918706631656492585043381127663289389756121899440180764881381323763294373124764917923593244927507036405505932555206201542016630706562802861034524982634142299004346903042260731249238507828007404855907323075991896080259967415983156177575440320201470089272425877753247329432615502331339171298748520443396101542303516811723883087304262439077975449068739379508419991140229510895987777951978758631146900988648910039421782211305435559764793744019500632669811127652241658180125081897621486275239979628534831522024493923046864480630439056677313479268651530406283378298945118471318226432241121575998905646626075214871229904212460684246653468266862426031137479926926304219556783699584270882114489559146217603690742001720262788982205710244148714544322741318021450550849936809335478001836818862583366370582223997937142230126056944318376386343920121766201107130316566360170177781945409385947356642198935168422547527961531842071532822453830162384189106878216272099171750799418237822754949708773439351172431899546608687403050992266253069311812465351344725922995185534915063899585791008679892221499408026189276023031481136001992790614533132789879061814441698973135090978953959576525309684425110039907706495433287773627346737142460071874740800404910685599076777813767937025993601288131994676933190771181910411850468666718070189700164690845509379178682270913296932940996403953186001394011253252657362281044400180265431685399004623658232490678615525529123191159333995480323776586648269704251450036957052119847311919023029716503172952061735298507275292887691787254347990808018088210203783310780952120315280592971766759683363751856610412255118902480069809402390781833169644030063962651011776407199236129883077056007912076662857533084172859151925254555906735416341008249633443592377675981915614396196849365914172599854956441591957984975861054592883633887008972143911681877020449686609975807824648715352596998899162094047095922938722413637863034633106902924063942015686424036970466791641118168060029606181905999107075348060422690725346230498686102490581053947048304851318291619181382327180232944378464369520002483447152311893791881021407210206022545373573463629098216815985470012077686931061838646483359163312301401278060495151896614052379797289584254856545979128620711489815338186198409424930945896219440436790617628658235126743986211754224319830022959449374694975062220634171649963585205347763867119599440225541940809599235664646512248697200977818904715732862696252505217502173156633685333398390719098464580905766710201809789660550861781768819995181516354696518720408131810630362312962915046576330532979430133321788680920459344202027979500841101012430778908925256626645677635668932979506040825691317896717850683476805897852961961039442420575103651823884611688253875187305684737911481938968496525790605577820605041576553507296249744303822995282358035237685260545799626098346118687684972819864290596755333862443522081812974253952242840515454945644783986465424793501644138818957758861450623571990386719488364463271078700255653996170086029237742574483314364207076940363895090613554153412910962896216863255059878586353907205461761288639223885529230693062878213290693171463895633753120806269415128240762921936571774899413868541294783988471718863452346448344692288635523056554334186914291000956244457234050100601097985195884200175120063686038752871898562626975028356362461437038447657332742983546316467975982040233160913140791292845817856085157171925291456260362425884438638570852341797323245763149148182613917973419716489294002569437871062519840587048598637534675534684644149403881646969766870902789695323571061919875664502525855559191467166982852408653471159605107301049260160204843103012416661282657638115078414858697758008229148316776669095834660179298005915253410936369164848374746216695907208172597009687430731010080209853945198980075563341445253451411660501484363938462179333771834713263382581191501200297547894046717594625353503078753210362300129966249358730969249070393330502914815306308975439603887082310445449159832433326470773327151574764301136191852943435916898946449701561047834611580026905323449280378763320124021205244104900457503772892248456626340055555085894662945576768644427361258003079311415271269375382221947105559458129047613945139394802870589564198538410383709628034196629911825513853364565134716855485103671696904616024465107480145471693160641340642742550700220994458355970940860554432704243508348225777896143010115008521904304365017435706579976311487668284810896550794395742429302083965832873785750929771537545775856975639528406698847359699883106424263570913911708226105016303729578381002788132337279382341564945907629405906559794260443800692380803472573887860665102909371680816571708013044547295005873940752866811787713783490647563600588112269020029898969183061632123527514561304967683015274102448502709284174361392162384822110710921579205874997757614835379081348150691807473608763450624328478811577237200849582322563332791136583094452992624802679302921896611760631930223024076347239551745315884419760814233369091900761709903123732097004143172791635790220726272923380897812378845099666024288864196610372333788284528765233466493733241960908151999465977956062493462789448212046997928003581770745339657292739758085641055245370646139586904898829550020142004748085956755699883489248539938600301331650606951981369049491289188728214119196707836415728318691872302967774460286687445314708809624446317723583734180289632859898120582763735334350844229445464828786446382530615953660176347468317491957239895088178324633546358188479353128418349863801227531782615614431768384729631649648496335326823753404016335404467810367948906054569470169525568864249554391722699278086204578971812996415791160578099595753667679849634155935971405755489823402446402815637656669003759584322901048613651637233143811988869228852510068132763238601795541298336832640168477872678636408212851028125632677133613989198356320368579028199177261677001420354434306903410715025151042211181824984971235313736455223792741809822390543263007574462454618042843743727755064704699700053440201360836209761528711493984348253600144197453586977036069239372247786562499316689955069682705978564471842010359104356171137853434771776073427014287817218530145878441977568458788547820201756229353372369287278851261226049584573743750586755109810393518950420245741132908673532558849390293250976026251626982718983063709650268189831892045253529886742884546880219148202495375224957484795095166100054803313096477072119589353983816717410411756845642700731359586990061397494716746038540823868739795659233759197437192911588518462653358876714502847124368586794219995050448522534236421286395575617934891269553872123915806177666273162615934196142815895196491245597616382795611196805919970326466970141536386599248394466437429113274756228789656988039244598576389701399542289654977402888814467209246105151357559965873409013456774277704442911080737033633675609593807947058088976053196995953609931598014967029525091805984105014253870269855253908604309908189792282270700724459834521335739316608885267992559420902118711408616687796819586464013932594512008935681291083940888895340804941161204270238993710665387378817827985997075633593308170528840145736756210669818716642286224809200462289963827271184751063233192963165723627386298660929795988810214352306896073099438272775005763827176791950578114896120809212389525618840507025217055743411820811362955521284591072028129018011782684010119489222753595932526053135652663112532897415278606729015590064212958784082986764830144220611127814693134269349606288451938717625891536337282882993679726571263713237544848756655708920649125257264059974549471043833274718484696428262122155215753905058794243723198379012312842189186576729199549699385634718202752661607671857829350206520251071988510249869118321161923238654769056394523173397363868278245978931286062996215684809410724262214571676547271624640358690951235975299331785166172709179408904730848752902032558884351458473412117682179292098506148058960660605609811233119605293834129688377680367661079860834978261671914504602628468481106930263420598307571990526607772232010376699802464594650832594353875542834999540239864525712907700017033991587011957025915698499646759035579374387752600824195749527948181950715606394430105931447980507358750899360033513799328205971721583965044248301003729571293227502690201345392559871549371235447750217604495709927580465100074108652533293062860173313393000854956407896552504491920710061728918371070748845415097591832305494847857417578706061917528897690321397469568794105672281890223685010833398557130006632316911705264709578974993255046314073282545112718773578981239849744331706862683813246819710924226489606464865838064359580006790214438595808437335902647915872349708473561584747475098495129507872970481002030695628919254656030671599734407646115279953125591324247951903799881251134643733877713016268385883867803463470379799876253163316254443440282859550170019312151750728704825304379160111402852491900868229750942143832452443881389171597495527027220549310398839605669708226735196924725833406524987171928380378925534820176120633951808899738765459243489985007136767825561297927375152831430291119239481537057838761147056083855554455733342507094296912446752046575756796472451852892226245257069733244912449760663828805823808532289399513279560562417295122982816838933869717429062455231306559048176694423182806026130864305749056623231562935486690694108722617817921595729200751519285307593400341174450723526687859113712402527063008386701942716654519329360168874177155481907134233347480054136926192511553532274626231677525003068601916716910944677181449441740107327293746408289826339307945292806384665056464008118190251580812582064429341890721857438151356710938346069990657045731617172330022080723393571431737052499000543451200660183235144637019579662710996582588647797631867895017182620487425339085968019662100204521778440309293359733718894321566888228510898975226370246901159961029706056827271089301791097838902850439971663880711232096574552690431084123653427561410724656023983871381853688336085893008844978272439191168033396985598165307604635893902515785945161538343697241581222718791987565297409851858190921186666413952281637738675331980621962820721246497024994834548916850104850239603461714885650521618521517914974643893735482058121379894744259943377081426639145336911232432565507303541107120897206939250481400494664572936348748732006628262529372226121763676896207849056995211186181190472412725141477563194529105640562210050040639022607556548522349231974647561347056654334929532231931147367482404326701659029329545687923160315021097689591661232643786793898042970979702750432684492633549026289953864910015680850061430362862047619500731410127955304246251567230644162128623115205009592004471769230742517054684029653719593724072035092629822356570467884549591068057648488676669246325975239006353698035321038164024890114552544215423660515815607392370610772227718979984030217126023373102799797161319463419912912231719149252817218930016609598718893920363403168594690068966011129359205484680158732715055058849902371128028931632150628885459584053306160080505941490402662846690789877875328376064584092556188622837143980880842429896182982465492609413589245871853088184066068291586712806706287014059414107350144123475081262596744875891194486595489761879838942507332637762808824548714345790145913498201352814519121086571117187636141798539215197413740377058059764608126942573071709358331457447176344329486484362510895241480012269617687452184674306516702020824494351764073971941026055681826953700409819134124771027750847291834917988780697936354398337569266843171802213033890992864191750971902702571485816788032697804578529115561215701657913878728600490915332281380017815274458519745111164969782717961039605420710232929065134721066202886234837805058577716636733815280047399391035177068002174053632498560136428605859276506034234652239888241273383380977318144855201541803925865305734755922308738122049418052710396627667981921602225227282010225370396745169790025524303416764670688447210105266163814857733544396359103311708495435159036474893275339977483919078924451228336248640004230965320082929982774369997919421364698443490105520651891781902514078187242136715797701359470636556150509303610022867644874272837258936688767038807611008804302909014587248040630634186249625651824778043354125399243237662515621912568030979662844165298026118562077178408567608917210606327324200994141955740069217693030799646544487805214389932712631265619820943012310221204571717095910507593427084704392973316124366675012316372308272618246887326791957755760592469485058701471836946983544669700995195455417911236623498021451320280560880013901993242710355961297315412502748945524522400251815706788466160846668518449570129753663382388594097129193378216636769988661423761962956672432859353645046281883155157533221483662833862621425000162579102319795895344905244164037052730077446490669567428956848858393938935649147374748561143261703914199248469543208128999314645068651184955852376968855948130143823457695741168994559069936673415736451208458443897822732430426046507135378152550463584787526514231324128362247019567887105057021503134650101932948357744325420567875468047068337769257029515264975620734411440548637412023624294402323267233043546822875157168621382396903532588842804646930533892983933630337815209641673003396108206355362219590143661875238073107897328014966003658667686183259536334654675101718151181271598215248098363807793957891232867686116396870394126551383972492381275811965040698733940801697351504873086238932700342569822347435887541843209052501442893974440016445054241318762241209611029172557840444913464994696332362921608129514781387883135861081719265163426189025081916907390913145474694013993824553992081658883709887180619945558640510649823437800717369171643881014536160043555696389057772151867616045706625316850935989286126175436517379479332524250059576314363020880985969176442512277974797195685244371131907533731366372343966782234666882156825740864105609036347544033545122507845596897747488319435753508489741381053034562472482768018748507798763050038919947262653331834337267953668921789063347656508520700541986708417402250429948244309623584280923384933071371724741081892588570067031720735188367519460311631132807873282339792878040128336145262719810986944064608572383491578777932383041095788433335438274153658520270996333869029614666466998189822144633398423387109806610634494730472429249380493803879125720171978006995985933834081178897735646854254682740597503357157481305486702160226944178641118236381404989226202881951653568454366916942718464356642747741005252604461146563490982973021251137593264669013210005594553396426803537741968504207298368541100815455509102972611320489225362016450384117949897293897084821019862869350549530235622834955697486321463501805190320660380481149809210963758841894976115738632576901765290430326075764519586850058755677297408213491562366518434078526867377275349682267059530759336665639941735274055912708778653562011698554480458903959559251626576537396475053754368355956007102492128728563782751298117679976594145917245359090939106333268539042856016328663639290607212866887276370785550704588193460350108361966350665120912780764075089588112665350005993847422065758354396497907517266553745619372973726299553364047795707339654134066318951509577037787022966929517750520953637272589282447035248410668013117545868213914278730395570546330750884805853850037326321911010629819133718920554111891145872389038079475480935245472711003863358004784518401165122433006435781671714369227547292517928549478813097160807173020951740212647160849637322767865143835486283852205694719323829730347925987502825706077962155793460812985765041285284103667504487784438465785989741854807152224442547410436898509524582265061182510005990697322924493960426712532510329481241745702945144056302523606036100740155558068055742876820981272172180855714073257076564022451338169304224955786926185009299389937008421676933704461829188154147247349003221991687815357885619943408779182195534729171149147781616442942033493944739799616713153432736903906271280913344923324680328847540310273143611437337737598982701802525309328040138304472606330056960071362919399648700747483179862811643790027937992553166851192645978779338760294529384582697488094101128542869474492392412151535706591407542873930536144351774428371320905989666800554896409278546466075546058508584192771576693827636382039970204020003739592397247248739840611777415320385460343123441938652955770104165970548516715930994435121512439370732460831423563502698556503718720097726612532154021233511660517374244246991095324366346714163536921347298788044157889805490050643467064764003759129296898549333155307232161582486255770130854053461528703446413155353984562266253015999985859241671145172170051277320506282830440725022211196244788773600486094134505356950947071518442301945261647351041078118038747948836946279896133220150497572163173092606818377653808283869554363224777428536564870565340845213203764013050432094395960339697688433273538434632782072943350015342760314002397048722684129322566754559844448146544011336456081939172224582826635190444309852787695201952139985089196509266162928246038994596224310805051283798554850835006888942009397335600714518457569726850840776671195969531898176087538468089948343532681470107780876464652810714630417706384547136556833334431618147065917838643417006534481995110068841435401991531344538477084791346655113957915993249834408786382660751896924985235430552822575281866025988891061830636791798947242777821589431649764420700892054818824463788646744719010473318561969528501032187675148609959143202301608124366579182117468786967722489936199236438559895685741831710485389288141009195116889655346020240474084982021289048172965934983524953243724381781247860048898100127037256504968735455715434953766516132730137880925953260847621328307656432103863850869837925251509865177605642730200721876874972238844666761964925952627074739816432341990326831945592439308238673646428933460202156307660471368680351991180875688333459838596559561697407098136252010707554372960472445586468946481433695187540737094199211281394095828117471449069715466740238326496943398017775230439199737661337905223208831372411814055058105400973901414007356330630804649113217628570634434442823425959738629373963673072650897282861616631522744595130347760112091498880829572866602916263295743972147151390077101321825785018416021980519109550267805793412917143503910756948551606363955628514399176299988731373984512910002233810997944645915613589532957368454861779526308214309504732941870490462568174864736536496555699661137492816759237388864870847205560615606654795186744616380174142573194340299218265374366240158886213503387583633025888547781436442695064674775782286075900741961465560211679677575488448846306798939424155464215461881174352173466920151984699164096230237642484679262920030815517205322259760344610923494044904340270602999403472338510413746355657710678496820107494650920033412834806003450036307599111237621560914171720649810969298499492770028513445891398950159726419890532537670396983560664550935113522608299421306959606065916580793288710740373515180413756909761554474646021852079457709012716400312882862878239407585179608457915714394595618283998936959773297385169268055511767820268888810717250235218194052914527616814000134506314742286167096457333258138906973933641794128190992615497018304030186793094223672007086811951783840860998257591565576302667769321715800937129277825374660951624078480560474272036709735683243016296545702778886341789744613999615784228236479319998609180799260094807361398333565194993363075266942931090210289462903312950038008808080101285269165433969008769101186034671430485713099287485821924420005860132071069690267332043870468384690530692994006754981543601667371950991374922862449692796300269833385235465851970455262017455645161827391537729828967576441097032751769504540298554449303980040461104453707714766447624841886251091522585810969801537350072161210168159348746229403557485001658915087915553906709459953222216784602284886608024225320658755058175232625011514470864251438853470216655229716530157073062497946340920044310885855754414493901966918356248727382409386615115531967431325341248233286597468045756462303561509789146669202408487235265110273762954640695166581340051336975537194813314985917334817942918201288142036094730954455978005143311238415015457713972462002074649255408173898433446012681532260308759099213165788496617115316130165043767910957469157956616338203135186372162512081512930962829792131752166140250857797619697171739426499565213543378684384474637322762702297942504971630705348873246796660549959970966061300987791199322333110809164368625560606593408618076369636759884181816461375636006672225423518040110447987363924180579236649268911123316193160238203030965290009204012186493762531663849407435281170621751701253626449848715771924006821884258538471352463585990236848170286318633647190034479591002287691194241085654579442917420511369308743575829577187178496144421051780081236900333598847393782538390498275321022283427230700192941022504446894752405860290625111289570776457261286976838603060812119429649820114731710308196228130875098295181062472699379436577371615125964057034394174768703200115325050458017507047441833620972631901944011588311415775947631157599163205251214054407704154371708321426905837655741580866874788017715117620024417729989934774845671036390568498250163278631948121035435501575107565586337745596348295606571018938269606036181309868444951724113048376745299003277209068816184019733947204901137595020549193692450079348315749513717341741381507471527304555768723658435009977415580837649244747592054894708481342128766989752535936932852024389514601138055852881449448539802904271943136473934777401435886555409695061841056327818702505429152282521925769048065780786671052523038378392581320842437145115981506901618243520719452045484280019373222963884380381449578948175108703523698010406295741800254257299172641910023708108139691876265870945205175007606090211803366388945606183941685467300397415053406089794737622045808262386716896487542479171514774963143877417455588656631861768705123753043063126998226180543006649707687308657606601985426486895642956228284683715281626735585464470362273217290989155941009029226572725881698243943588751630080391021764211734315989206667865206708165292257672567147884868132127904617498200181234164367300826091115657726169948971714093551685836009068968435712163505967136196406931605838373967602953914700869160043744458825164545423033831601420080474235897296918167261140754939102678930092216160579759272957406977673173534028058625740972014540274087067350472223345774151263727123299305891735667265860684327515168000224637231761261630278346591962833397802204996978445178643367299811222884085499512925397766266969916767898515930562361089496189708486003490574234733422118034420649570688924955571591100440168821216079672116404901788819236637422449467276934177370383867906077091031382586154043458951856325141995162259369407687167988057066414150195153277901383848585139307599032282229904322677449339115018991152115288307328413747648513646936938797444892678907409930754310752746294564533318515403332843767943146066744769776037029918014639791501988049574296531423673945153821567222044011835707207241981694805206975125491241987766238696383272922489167070240475470854200273285901581691226125495979385976164691644987398612925094291705992259316441548780220639371301646821250099200378013351768713346569640267058041445911110237378350166349595200655625902688596003586425115318397030113285373543350976011065945592181795782912602730840823147032614708288954391374324749313731495508993972530315370630536464807267849912945237730172211764900489561234078070169451685195359047699250439410276418527826128736933109939842740886413826435814053599546720241658326151809572465936083094138009831309994615097740767623504317788220021699047184919028485680167758585913247166239742390290183221343340877174148907351928911625538812153418966531509452261659326184243766630521326148638639030833187586738469989634334304369167693186470384463004405089811418179934802344423269727601306942900696032926672948442712790551852012387167703663886451571233548980905807674334632166275404486448758453430041996899935718396206721698135864242482930536378604077362093594595925633749757869866145145783559742864455594054369052981015382639100000502095606768074124650484427685533431014917619026401263166624560688816876202369153242258832311357249826468805872992682891017264203032014282807644473758804661188372046026115175524048643061371157913294591614410630991814149739741046336940372624206281906783780896447805762934848650711935871536517900330649079757934232067272835755870843540007409367339594164689328099925422623402214335197511772379900422773929125130322472250964258206572263452754811481128483473568033198938437525185459651177543510956478112288655934729892284477050484782328756073214428052120024109034543544039195424509680254377398894155985967992063590931030366293417790259572454371772311523907680916538325461703310145566457397692116269491402468294985970982799405379121364982831432427286791862866216113876264303359576443052050072326450893558919396283472223057315843357690613654134944973416956597419494628100158428811233501516426081704102731212566866799068248993499212356471340719488635454048892765029997404722104278238539182546965195698348490120491666075135405440945591920399884626157527839339238771460513735360724578355080918305784272381734960986705115772237854111932505359412270948535481334638975645421188931971104555631811558457035266084963541886039141126759211013393614741651365835943733329454550129308096616805738760453357377297488398652208249735106588326958869726061525109857294413903969523407900872053201734293084905485871315555387023651786157901891272207125685708564773012818092411744574208106579111110203020676457629972207337572685757258192837969321352671815774183367115076711065837513771954478144987188121081499110864124717742126942401057223754140072904887887756355845703145176222965875026182870350846447071219478322413169306958307234035591651795602556549745404447047979712985375830564153313716302361699106350140416010662272473030632573458972097400841298545395077604153465914555326845515152212918750242379788906612935855923183104372795692220739788304814301190769435284416618632627827750209232413461092331592064474122617493163709495198028471160268192131154601184783333935678133818435896474576607164584829932939068249710703089957004907329130191214347797410091366949811258442176105740697440677955823767113768748951406396362677607419902042044906985174445878083789216930762881659420394471395124622891751739615181287216497697653313001220017631796542676761656215374815532647135967522660126452474841225747451518685374147736858131435453448391070761716907198182025650431973930720790385050832956590809706985163582110981551340884002504095491048217350736572225815963578869964296945875533745085575700953570518181682484414785705407154459723961929612499130064346200166174868974282448692357087620238093582359473076075227870992229218405161444726674709360030641162986471085599205069730995761454250354850301304654927514880220706936386562649324112379628420142671841581834856367663831442826832867924409885131536257811408269631955883673519638208865458028627058993810093178312730376431614294508593972470448471845692425663810975501577071451082353823027026182016130947279408706157417482599133765879229025253435007916060369852303445859546789727151185070461508063194030750434577839955730427250702302225843663877434959031432242623877270657669065140345331667645172788981388687458774052129274505924395673870755672996563256161135241157977310758973363300644947081500739985899257389848704872398155884992722712012543951960168613693121461591038464449005347403426064116491494707150593805474663972018681639451562445508318609623699996172962908750703572884267921567319828318824313718570498439760997873318082014761561086409650542393362126054798018976934419062554840167088544075339779345969890632783980542379075672616459317501524532563471577384890759838155274294953615215361794183860160261005674045739727909714850300337316325416875153857298145804136703932388940115008418522889010543911767914012388925918290402829779779558936411045945484397136573299669560571777250853105324802203068545373812163841643145854308782214950004923525356609146352622396496673131764404486372577495121369319040389460419074699380312749683116715360884977444616395746054408737146063312801779496372735661894550441020513206260931246618687536708510844497634116899471053339623048045008122317940061027462703383931395599370997108265990991846174620518420041384276685212986970389522689079853728293357523963055273875634019473461907781878672578392461595373553138279885997273924733279646157570928264820689536152000501740444968974177960682766741797679965037980897374514340448346688988454706698473254436890058481430197500834138367223503182868154854979984235738907936758882639854276869305780989193650630990848977154357427513149968135015658628190960480947670254948559602457039326408724169221772399070894618376344348605149870206853565551788307703335097054092263497839023593467602924472268798168113578367919214229603484076520341063785833311749506734874759959376170176894292487233560139267070769381852331608964573698368725286149925862715930113365033489989690719162723743812808181633141281032068701514043521285885895374967322807068479156748689374981078289692761138445963092043237421709363946601347879138456365500471819060294936772794862429219557923959060054387187927702358719694000595697584955230955678864725924674395735667355116762557704878705756836235613058277724943233938824990351116175062137150250520050451810800131041314495955391109992011825563446593851130947298031924039913597180936773168114858996088045089220670174761903782802687832533152401120605396271684290223982267021438149031554144221258340969551430402688460403888347231221731592824216210912337349820018454708144607888732427813046923973598427587160341422519833609009631706773852226624553264641728593675598162018332468056953404135437621397739711324392535355134607370972636465067728362208955507308452825055846294709800102624531437572893187150806529062543942676908467554475347863046662518512100047459311359329619082975471401635538520615891769229059763368459352613156458111460291583501812004633133673131741575570103633101283381175739607629196236548445040063772859931230902893932044426008676335246413724830788573104722236065234166091545711888154508613077429307359644256887504368852941462850455375649326486215036277750801218035857362193505530107171161704794228706589024391888074941191935820123804947017296198765650940673342866256853695278800600254208643481487195233779005643400806777959822963664093552365487470113665160289575945298634710374626756817900146857950626611396419563950284152145909098077775282174114088202393814329478304860061642577534775052421850330198822110752241452353440789868922463630444513262626519790735509649063757110604997077594756636790337617133641370067765159109617602067475813954475511068149740090764669117793705511278752961697053866225144974873710748051902745913569994761422922056074317388987084935596050159889390916701230006616849912982412903951050899209433100458676339805481221383002779190874042226769296775368587092184859054250143995801829129323415330151422522875970783027684779681254890818348261218236353941136198636724089307410038755688398826617631807127320215105250089466067275576450045993535738306639294946660823415351760898591242002105139400674171675525135697142519340856754375895732724480305741997833805933262788919466015231836558787925272997535338974585444328482270403757682342110159094035936664599445434831148048477134313603519143340759470959755870558865423445936122803215503886948007810802759466913394297768588756285635285595692059822808347453517016305854093954756965237747286432273404266702703749791181501835846852690151575843957920796764060884694638551329330888294695452226107460554912909116124324262296941740828945009616697209745565496710554390400644063476877977068958109071239262661498465914339213866325285054395083764730044757436973105460482053238045519952746781617017774548947901264218424217715394250840551754337957491067599624295551165851939827998134023318785429900824821895771123896170420250815004738015010176654663456496186197556463859371133807191635739977289018067133589667627424414485614091548253839598498409044893598732679860818124271633575070431625737410435395344167463589967439725327059439857134012293364687223516652878813483198612852530599866838426323772690407542152791700487567615742712136542365056713876128446456093283238612434893514208388574822971484864352264444020386146003378077111593565019964238140841604126809046185805082312032719090372436162064736453122989414190033378129814046274627812067645469064984726061685270281925846085035785940467708770318356086811498920109893704860387863219247080683146917919216335643009397701437212610656458755934457558088853077037821923198691116336704116922701013597254166605685209633020573602827301161645236569362447382355925541863349109178301685263211968513449319120882550949589815217223285214506269956871271610561049245854433030665048996255833564646064129082695761959859751677036789464129954410101152820782002207395718024059977841900553128267019762754478634714917059383725979385832484237471991302796967733268122723371336559651063515105527312092038103928037187251232811202271107072305245638695349970175997355007173552859507016879232156549810545098242185186388421211830155389702274998030011108060700728245554031950700220822085613619746408129936088047087406935050526948596683822679366337631444519231520262150532604515889932162132761025101765243606184071440114393886186677049752195890944727954458316986065615440385555697867744320083471314558760126244872810708036462498645650841754583363819913550215996360065259742759578961432548977641847196042796582084326871100525538106401438312522447044916482424092536517289153836534858089707770722668801005026699453900694965360747625465256578500791496262377939737411536164638680601636634074057122890066674498439573303693354348555682710003673837645311021106167879439237465877444845779105441598782829649763245234821402742320962778427687318760164035948082067717244083319816349220818031231582708300562709768112736765566564938800299247632075890096020089815225574435998506551868336312755218244368129102798567010775868007392135716526931602308854640311186032392478287228062379723764811300543672440530984272921282744993209420798147166596975911773262133302886823246951285004068166371596705372297835591851026030847245172576456668723436052887810769131859786233750785042273461574038558638857325624087439105904730384397056342372958158788616831631825799954465027254715319989958831802264919129145538597196470189524218372452909765495446419949988197792638127604651010907648156651662366496858152953157595659679726630785644832814919595353457531756902213362456494488969561880020108295323833345351836786182510689993674851521984110972495079005160798164652507168782520254273424829015868672455024542108245250846870698627764238785711308074933295004880495931516121430645242891754015741598945417654008488297839710311309739923661509962673074930136855882935625820079572955788894065300034479402966904021277661488143727237376980970695509089540766366081188724320685019193082074578240174463713793306325546804197669725691718846378767457512346066379941775937997950617195586627011302146505217599391976587413920138905192949280872883442066483594865462929483985200735012089680696502520120495392961019048920474804319160267513631373664814657551821707501542209876057851017654152574051268708731270207648733973752778280712905966152701894909981326689121482215269574528236986931076297904353158296734988348857854608543724754247315899149751844118497195266722898382734992974901362332071217409119287115980432154080110267410570115420176097147696604732971788949678927821258910107438451021079737746718231232519811346735824696916016493889061178510415751716691351016539011823471789267840463346587099720771072875133444020261126407309334925142711877237999717365769547090265227135708724957342487804467564170371000569578533279318409008867829825571861755753744571767179764378123818098293372763998592418114934995995431561934956694209033043157136441476649114962490787382374805255511922211967401275077530592890731804653440286943330811324925970041957404759049999137271401549882234931470502373393417072172826694253216613583618849802062960969103012250120016244119034186401306977634309764492253992806338776770376610257656586364631640127755643408644621976470232881285910477209695070563948685608347328097982580150376434555546203763053457702494168713393164101079429232583595053748012397033338054477256770829076686794502560233487209347091598894145928260301163922055473363208152239447027997019483130571480661093413839395727346106727061420135659153666946698766227412198968030989418186427123303047046165271755628359097393884342654559447150107805362373224263665864090227435510982840172742530342354041101854063621175600777214779439463373108726314744571480314962582404199244171196344499947486846628176126485203062963107815905901788284595492285995133252879935903780178143166343861883126586910742822327182712165031092708043768783057391407277137521799903097558844611780807372995568181457122549258119699937227019965627411816707523644236116254245171645181100020476487138677650053409346748287431608061312625123154307270054609595246326476894056217456681812196704609799543836396690344331592088897849749912228584724037874506232800531432884366919164446078810552232231476216434184278447138605770329646756084255529442163972816515747321785646466664877342339666740158493009717894600895786428602806406742742951462613958224175853213209677874971829021579868600425044160273019621496155667743128219945015696501075356664853957047597290808568458220996082112388460956481995970293779404998953052203118823898060722320237127622387309234993710213691346732132467639290051330343835313345242041890075955086705804611370659642156145416009212628985027011391797460602426731339137076915508224375675402304567165004122892444729547850404716751556376890761883012264896023628179439281096772325567871411888121435947422414747105015241666056864343198270333294878629142933625846611468982192839464467180201533088502514093319600396613655936655453207294070425323022752542424820363158395957141312031408652243733441900369493111177771760806907941414156673370647075042513284113969851317440347403535380386421537418227403223266604687849228634030192638988331617150418700606832488403945285138053151990591164253792385727218668548634103450404848529175681521546000978517761703143377055783426673399901337964667056148217159855579788497464261272028379903383881365098226127442679216857200183457646387778070458658978536818829888697369509934121109009772036420884036668956114937837239265938559819778973617150705791774646426352108890542554479845670017703563620867950868607687619122381630184140753672783052112565040619761949263974878403903366972303293267177582471116342929004669041894457723646417538774524614313244361220060112693585555598205338994110128079250321728368576345392609514022183699037010509401312067094158557357437111906281084172311303678407216498220074744351254945685085629547881284283749396200382544095253547892694611806650620089932338772280159658001848410439778475272175157079694571580752622661501485555013562450097262569026397423445845278903863499278761505356775577867140885431598807122927499952942294111664678728623762192169187702473375990004274076633759729924385490543241805123802149065912576258237794985549324654236312668705640073193107697819875460371715278355882822262128660453754630946754151491845521617207322599462821339598321368775173867130947561886492811211019123890757609404816419262805156974611963621803037060398455322575711303750177291203422648618559388661897471389367109788744226253964585752689135632811969132560424759355721602762941851815175796847838868397691734313207899046258874269298750494224066309283174014973235548348130682090053266933723679205286722866135897837112052789002900129187635749635482663581111689823871680604562335411399127463978184174473479638658412409388381209000670293696820169132350408400576057988044837111114228985882399798115730489029458498825021020590389439914853435741002706265906659720838145174305145604443837961828934348405750236871841832164696356702368820584290237780249551273359466102573071233051843419209983989561871701877931254390984933164266602962454849087412536284356775650813132775208553733008397026101652024301052542702950564999121536400349135198784463938052621002256613926496037482942359967166633924942349058024743825647871900766899014721504679002836921366858702780321097622103110083979312756523799765214314983834795431982786926994655027384831681506978028918537048475555369398972731347549066814816449428850328478834620489367858805290407958449555588843225418050331478259314181766639914579098340246988986495438051398217238208458446044492859897682214284431740405187710676924738948400540612918699018077174734754270597667190702630355110077264014107071741786195356138817129644863230176322524302410303724970629784017947255828754309129067385693957472417857236495122938040779489900551024644521574130559415765500379265900788188075660286179752865495746184911284384265135354751356447309883578152350875576566321489603918285721880266763871339654254545325933979064709096913076848387827413699063487551868238378409823987201671730971659863676707272475799283323616542473036886063661537584758520386574292158043461843292058664315115113662765821243940794863347620715141659379554822522679756452614036726865768704145959492495499300829747378771986954295636304031909311740318500439377551324526904121811013121346013841344782906347630763024199492150919573463858151705235111955210661755791260552480226529001892896463274341928366642240125089241709009278321335460072752257127558510630303611230826600400029886153738183830131133568788811003238915410867055369944452530878944081935008753676387406798783988684573354238484667319988069544228089513427420390079055795252950275310037829106367164293209359937889740757134152405821819938299636153246598242713352614678697316438374276317486746778497590041082786582424057624954329178243763430103267753471212068997602429794616316750534451617230732987143203292949701840459529052245266410646258406836579736818496076682534974126433781832519536960617548131038486994078066985171249093769650549269401679602422755627649669094639827748830326040460645342142138021123393178320538085057228807671825754118188862622064734727432133747366477586959803651789019868944070475248882394415100399974357788037543999470433248548301420990048513945378426236340264687619740793563590995276366174702292216730120256343183902174308734126112874026898910481861050776665468459617605159971795940002679668785272791379150997524183306354455860679672275500441418865617812345251263736889976885316721574712902922590453935349845160247725717308635401891489117065672548752683160779497457743647902914217859821422676947420336429501806353926651428958983069554199425476927119755288157838649930538067998308465898994207327267482389095833143768033427520727884390499840829529077263802132179832561365409771459870413514359327759542618164531005358352881905097721757704537101757022096389681374599605119766174313346526926482408483566542071257857812002336434479366336555567073823701520300297036785647073652101818906998879870908449392418940668792674991754409509776099861000813285044955254312988432757365070488014202355841856648718501612241709136234916493690264973559088969890664285693921165475060907578537186477023211062293116859168023310817949483971365065221018043438269704579092094251696548515782862130709129908130921987712688076406381885520046499433675116317304167100932625734090289003098997962321907057410766541558678809306880146513484846811692297959829235415514927852608786718345317049883429553875165796069747260175126805615886585379658876808403490239083389610488155201498970437474939679569922966767476432434896753410708767257496825837641246019427576903087881271396514625986421873559820040239695616544322710648312713118626061283535223358825869278005817474172322507961971216331026206006631240434140334676389869345104681282701476292914601731037877199646162138088378516053603401420613338459185065282063965725306815421219872674963409377548014910061467284096436908448183062074175289551213398908458443321116377625923902905209612555464511275833998759339932511268298425499123632217770805283535938673119237993139901155756529863595040896623749972434696397459773453716035215411322818498802472267678375038189732904728825050755118255307726775206179690732168239086864047708060362591370914435537220263626068170723257040816304874648859256554813643588070984965527282120484947730386360997811175416942698017242617641332622199456804257334353294846248379005398307619592991982747104641867634954725991080354361233616303178169534327282088403091805485070896707452267889636923285083376344422003684064243910122929660907293744472176491108893608490283543286612481897785289251611802982217424089999761064518299854787962329743200838882016052190727400550167283422409033490360436331453891955085095013522639451696384524461368903667857384855315850674667752132046739148900991937179198929032866625145055295425729481783248885046393282069980603506992445208172674441512178885192387491578155947390021122032851729444312284462818224623549054817814673548685674139058605479690511896087319804561747897862460375937698882506774341220107060926979782972228612906155384412901649362577644062846448605387191106782655937182994030917544187551164704360918122384293879253810411041507145636877899435540640189707330731694133169334350105572087393076385717353616717695329346459443261828108253397962069803580298182313261406135206150634955208539773066575741746905762577233102327302057285650005104623756823240910097989994612303321496326167652037172841965460610656753521786829843794397139482907207920177366130438337566317805036407291486116462519438119706493105493856674066448939179252634260301849778381496157624246384534339758419668989295790678346847580242882585905346767245439046597281108610799547253878668781356091031313047154100661775515946849480995568649108994631865534536811112359451466621176717530568988564778057241956446074333080314277181971496695492446992397512673010182993310096271375668708601341198342776239756263366906497239856563801518675115471123154763109112171931444709948861298711754576783941509842556309020500731948694872671262972554355069345485641339760093677089166170336942094984275396276462719336133679853856340586875018599364791705410101170153186199873466797889159563097746683311631296746623854498193538766083188317431861487405737510117718159507066038890435836335966797439860523541753241816856857864788518447840177930739679593438943109904376078753769836007410235237527831295679778948962982376014700091790812026492660538938178491557520845943238264205677438850537041899513568837124716858253140476746859714301439249701094958580332440943407508832022033496105082307501829201481899823012001198316884498836440555546340080483295210527896420916012792796714982525528255866671685240712292256116969539209527592010872327644009277003144367194417536572745575684142206204320755703053789291340636070365772313317663147534960440472973718151231829888235227794328117239324998611207419456634252630746162870155609201539386874894098587622107965686372151768722017604524495359288792517940456113013817006192029451631208446563689390151567661755713891580592581627791318770376109951338072598575875826927380037673663181096280708433580209120545623132882253341870053098311283991231229553759187119799088437409596316150453216628124700582249336812313810595460055409804218131910726062523827164800091549709362286768285212575659935771255586440577059503816002389663859173911249911080679361574451655226986746676316312227840136648597543061668093518854546769860476907904173227665619326891622022752381146658262815090635302640972508234424498403715838387942941983626018651159100680577553011829473525800183508104127170373869176330717795256042957324258567555270265493673954911927458416745720678488748355637915531649425085005291179851696388474790311661989269907862638727206865294309396201868775076980278585616832789153323161609477250624539413755001070456619064902774500767284976198822278081800481532970562522051320690703961238944923363979199624239708305468077676205906391018403599371858325983636260765475070851621482374050445309665853516421834546319806610470468470743019935333399929353772317536017108957964724178856035665630502394308697866457933486661317296826851898318985471371080285776562384505646548948644250089302022090210374967663466197105011435942735178991921125790116262976752358896615957284809308666700247780692109558723456038273677870016305978544961524312460568916998598096548267292553346876835507980805492824081431593814071112914220392259441822659676102471877601624269976349368039158499870050387144559739787102029966275179884778026497578776885383327185956575519407940714436176170329438778332526292137781957062457837840843283594588296143261110248111581672382213570309950994956462457173917772710411345690264244373055468362636181042912344552511749641141403815400695768421001346981270739013262423447245508674393772359420367105602573734464492175256536255913959770371998285027858626150604012358110813394962542172900825430996272669536182419009026279693884824787926536394414803810368905640021014698613027769302670891316503833282589633278462422832842753880072834528378136683562542072014291402237783128106835141037716564771590315701456838680114190212027878158004086344442424706403020374355226294402346144425585971797092069818671275879257823777416455188294220508316913087440464317637308691781689848757319650307370895871604783799913356438346555550909162981813303353196893090688188145801875194914774938475290041256928878668728722763795692067315179903237573403826084272407928662350110705819406816503686856305565030151794845678980339144139540376061716029196352682087447038720916707671037869989056448674742123432029666604545649303299717836571685989739287428525422976497582128496568368399538032096271841680394707082870743166137613781989167530897654359082325998426188198925803080171641794148394155024989185822865380103906072566393489824030767136779280303303899175127450792473320091092734485586395541291812340539739028490752694718195536746645686684803253211998418136387460940188223644264710810416097806386331594293195379970880652867667985139010007312035818600646946455358560540160746199261024020732237600444182801151684381440699615144287671414255848548261852216849291974014840472609110867381177280473770989772993695029828666204622592313428477878163919807444930628074518419428564466261696007646688447583496200854423578051842908666368920218134960628214028485128296307791815498324230174328037176400749670635792682266045617166813606348710606625236099245584030878093310630714312785083665242547167429489535567943371955295657314604172137514879421220667238639115455161428539105501411045973984806781482406757245641836417333576355179780465397262328052219572220660751923682534699358505312960474001284607171909988480770967847692660165390105404830581409495740007177946888351575061062126555702822844271588753702304073333594214226701288675250305238542898355542605994586924355643673376993391680064716163505556176452091588721642052199716899891707682783478607124717163697020570645278009729474234406551673929287758606551502056104809675572019436808232082537882829408785433737937529221279204236599989879922281622647071114963684472191418649481056980392007470825273304993917352470509315211932480306357752396552134157009355747461744640633378572785306604930709811334307167543506002432386020581084440623509136516638785633895961930667115559469877761499967576025181756064828786855648273672272241930484781970577766683553166808125693107499258644641635973205725533810182555607286824949401261830177359807358145861811895150511627270124930258918073939523203957944676293204877972416658984292192432661616905922365387935839141387152098029675254691554446096809870659252370761533533732517112216946874021430813138697897842450313474667114178922963300575178884967846151022590570223662646805736334825653081969030368433617975527973752169383896278474014506625432450538473395046057358499477674648586697245043100470602548616369077089663440327060313180167069080472185057042166836892248629141633007722707857603706967048369159672719707592224550463640687331583636410145216382145352900391748533139258515584837792742882579258811429970298793659473877836231010118920837849008997294973535080348309876415424060148008888385927575573261842895824338633115807465806389920878138886892716250264880155666785031702821668526536852109348493091831275405426584791015486857693826238555678839213322646979297323873393440617051102564743574279738346129482829904181819800341117802605895890482264580182123641047962359490631207909584553639800034468737057842071027732079946051081096106752090426277309848167508843383956411721583830568562071907802942133799940022388774964712901077396228014472792450085162736655582483599335374632773569856684689597277928514890680423346197964546784070498924637868153849119071502967297961115159982522185220885869004458547721946673527744728373063062018297930550924576982232586732481155700726408558498715256161775685592604098623965926871580468210099486641120709944605924787259682335602102131112492260147529509078882060459492321204471692576912788233606693435874659267905417120901882310044515128718903655663173498766647613497843666792482024643683442705943795133626499135890782758001715097113976380514667023256928227716000352225269518400046424592921642157914680708321794168575143818893830117461043673561950996292292821940837983675747259446730833121308162776497332462868131687277791521022489250644860272017852363228840026148703701345868714472427515671706112848460678046936997347650554559114796596735934742870993921468083521769010220935344398852233410412597544472288642438367411830265046804475224143668164080218975737609399746035155842579571722112871587060636344761324333223258530854146140908255416222176888582322315425378336517781716922197921032691894222440506755837614998384484915439570064129427511720191701332620334471506807119875160587746236031802272033314623368255923157800587340467368032746281044913041006650576350482424380905439431536189880469899418028088494065707798885073824360770719139146682221062227113696924546058869694465878232428800981052349120234575948506018961033074233186699168504087783358559286436965541670893857421668688384172800515526103180354721733784907718055600269686527423414189928521967609064221107369469565664719356029832016840999948113765766463180475452871667692492485123184093952409198670853157831951140930303719964618867786914218952573779420635330470915827237301657122236414735044257394883635679745428921251384477305937218472606158025365508354580003247360913726027590789103689497473526637374060094498945609296728942900270143681952874642344667271614341794588626157274673186130885471938798313046025578739476430579928874494911997524845174301711469201968360483869280381337339111626607096226715496291528417136394068733651532137980340661390510750601672331146914726077490314907927200226230926830658360653068044166097774380305797975178356992974537291494113008748326632943771900258159929500077292394207302831993666030891370225257791575618729039126741148557346169136599346776499791228329700542159685738931876519454798552099052937324432561526654361480864558070792371789386119505527810976712853697524202297551052991814695406372194569694930986239811140959637801691632422627048933244475992434499619610002804603963064348002160638045906165525059567817778869290000475561667933446147848436500863658303263779072379077329767159068622186450885380022965809937335962851670880077243275637024952817758144883679601307421491615798990827274752007455174342502029413391696507963281737042962729225321472123553313556709548117546631011527331235691422656768424448453293264766226936085303026096919923559899375212754136359380210411115818758140836123985852614008559282623653325874512671135325297563402447511269030069042587505079896829317850673264274075560309456108610655373759290166578426390155768734826440430955057708877062201741378949410168202614796727673890492386302782457945907722871730737309621234602629176711407996089609331544315442099258894839973281244307669245238473253629183349848289503736654847465869056401952288535050978735552628354594314349932991544319190904466635554753771161777172903920415742456882407920972001369890340106901392389187813627068106285452801745313624014992295039141990516245238007100433478928407483557045992694657509352596322298049645804819207142951881998739221703044835563861166287860846526966800336457362743216052988357233001680287555703677510825525886551939075734703703021473902765069541084045264711470134345204726539707523599996218881098091151838140312956706220479725454531382868900847150085462899108170182677290799959882894503381945641132509101332493373932392991780741109960459537960787443715051653541853617319910317906469265273284566094845003879527842072455379602408333614468036392391289204609266367850756317877333634411625239084095958724714884466045411144958144873583955822282722853043725164242237707321184967868915886018089330255702488994502939268215233199101731258272427868297833657078969386518338515943915685346786788121835418362330574276960262475573431723785779368411391922231471145954168606190058254981239525724283244278612304727476900472935454216379147056630594114013764096025590735069730765692978818604450599576388645396442892672740402493925667445178732537745348887343404737895585995174451048179529705450902892923372922126717601683149757249850189861834923262013563359187286844126223282179747497166273381778865636903637898831996519810247148918258241855935569764008133021947911953785788790792661609522367811684250753638348944122054875801118102164629147633820149887188353152868029617659731311053439846729669947536114967152628029669868561218190962968893886095041044282916247053657970379085068256548095035307188051629891835739758273605135203885780996489412498280791305857188932906541686190314964075319093490184207124773736922702206848098808375128623662373132523697572601050995312754040423585709457430592186982801767863407615476078171682877130153179468244024317303926897230520810881330289552160606985194749185394343561179368203904014142842814269371363564558230712972875411556673502214113644748830673034160439233701343850172675341440312675242037600478131026380231642804460833161088261357430800390110275550454080740543142799521150065238327525596889955775511388731950136859956908976898017192312633385640978394880581046337471675885071608705797012421871074384557311953761477899125966083252811194795518511873106646392758697774061781634174981326058748208678776016422028541766909822774953593909339492739532858178577247417469604348869163407988984422351449877118267075741394813091976596456149090661659124070489327427572122859305318141541206323799047847993206517861613532768845060453754116059556249454555719302381783154135064709452510184210256013330075009250791730170870447541399212981653597542656202754736077484126197178194704968434758505890305447775433026583436175683734155247014452475949931607861684130804452228962436138086651902002798898868474640312516227541806564933569874310392704517057977884194368170687019370814072904152084528561474158318487102449192225765204139268207018319122638790295516293104935307726048078901826410651390041363685363526923919531446195165291751730584310155710090528024024177890938670203487461646763469680032900515030809559310274887230746556084342021261379998456972387724256414455535495754962410969036172454393374172583273482824325974701084076902484494124485910802756924133460991769955966545183305945181320095447931751586403933430322906122004842019333612050008831146347064551936775061579941993123149761053899174576895696859027988745217596015459225352674253783132892428335815172054034287014702324971206823628316533443159282593702524304151316335251761621061772286563491044907143832286011177164173376395489840789644870587384380879209783835732733466433560905923705397132755417088594990359083014945087107966253631590222193928812008279387418715321734787793678759195912630198039174269406097103920174342935492996166644626830076930356252578030049463716830439585991818404616712275829576014998085673697626062535117435424432553439206981439867471974901580776655849051258298769879605218036512520118556559212203274828739113828715481892439350225177988435816297726400981116722188519284844610787514895345703941946618758915261211016769605390263544561145239076117898957716270376464015199776208358824865014689094654805099622588175390358008529974515355538167273450700150138680425430043954272091005523523669311891490732951156264700472258659834771123190024233344126091986325206834919430411982137176496503401052761004306602427576497902753188699844867857473683149452246125822936399357570737885703217820712913382953179373709833281648001624998669871694266268446840124437187304501883741452644169805231244419481521341638086015506293581091469832953427570482810945181486050544475182631503855479705551429277321330680432943990689378184005505340605426594777617130881323704309214346141551941216812536195464913597079759725960318138771209076105157024862157025322941818700244810566180137325676701127685416448974801302533240142169300530812329281686299387538532393601499919253810807909054127000881917775884307203482722376875814876003629687397882277898899938108495187268332010613172910051521085826489129559777073435817577809340994458415772584065546927552936644582802790693463036692230278524750557010816910463745293214515891351119448304447966608379875756105959021839102693189934340621551460030279870170345589259860477450379564818833673774684440473322726441111001790298453408151876577868830957689565950344651555021130422797778375435491082879688544803965425073214400594345120351759012650821023152133054711867178591296868625790682737999696620045189703911828340095878452505271138832727155573117614156047954805713936088786549080953587462302598873078529761165297778636192763350328238756114097290265599918232979689842829032474867312325526597796760789344991985770741534695098423156143457436979218422950306173900709653411180554882599748277909205239841128256467369209059133159196468424821403924219805982556811550996808742186105398871271559106803811354546962177575374696272169599284609239040809570299338569230155932794545336740492013874630882008232575290455396919735051975170340070784714267116931884105669933679395908836170847090887399063447972486762511908291487947818978055727385263343865375201827144884725581197170951546804617337206326038022100908748037421407933411098879073111302896371150160129718549634396600116274481346160115097467559645421835786921138823025146482979148960983098926996569413518305183747598410333685660864957349733203017997793679642553642312255412626243514415856254434333949868217574704503741616140133710240780628423357449706433007431029892420907248592838295897310849472941021798564651351207177092922729844627337243829747758894903477462103513612627745880025317952402129021601071275699964662161223957453224958712261115480126016878876510869828687918283890233290439647971055141569520460529156301452935948572025275340233573699365623857216629381440700055510799723082126256121947497132317453143956754311760440840786248745966168104799143669402739253489079815978647208087869647865531547734276685755477738794411528252890753113902347722612225455540498817465651491029851953287643084328439136095353429549421586396235672045407787252177797742112769271390183283534552948154781629647340372833941069558024232730474786078742218989343773611960342361882566596819451975893389985858688259007286543739765926484390983185652456399139686329725690859903095422063090050776868428094429662948625730654393461469644088270217702299860253944386054798373493320431081302178680223831382735729834801364255796874940684032695213925057511050747474457372973094495022835330811135491777923316843248876064490404447994124421912381925473672066658712121379345973559621036786637015156846902278523759626126109793617633766260009255519373294754889178924038252614241473139560859993247697464194711704587379934967208701111359795377184390745158239901483376645139856970158805770238553801348956286770964268423292593014265226198225184101478865291678248848568624658774641176454346753201557758547364609345654070288638337920142299414301284766501308522674748908258494828716346360789145631756783164231902880466777954211908255465238711713516986167551157414880406043672158828916831646088995666600105023624882464287816978507352480791014183185212163088580703426948821684914795294494360541907612341598225811970039972796735928673885537819278978389533255234476457480242164638288085068733766626414263010473010765868962838958599602938624324708468765883688561195942707618926213369582178056278003684408055044649073225326378662065909343162367793196583502132217268615963781350840634068512848075573636283332530787662841422657296001471160867583281991059425533720556410948591978347544811518837966030863196465199708301040722693910330464362419502252597308652501520852478264057749078898579259949723187548689849763237066609657704597178290880522261056513804540245896970664709805755956885124440082542236149880098982201957031766686592648835768065615550917895656701730790469546773105107622839106447112210138910298681436425161384926424520743707244369785936135513999186971109404165052041699273076286877252017323933924379896083100297684145210455439132964631011593605022628623196302562370527070936262008383375030825664571524466737935408016313946250026303694076713670329391710413960251916003527667531349034001107091478932134575710416987446882526778308996768955778211929496906546508231692120459907260967113282472091746165477623379263646792654489360245362444576171046743522547246043734816495164007110491541624192891076467352883520880714508762904453228987104350308159311743355935276393919368391917238227008543375159041321135726429311521627558666745341665649827291777141574394897807866269130702331727965648108980764194093080404446317312330147244449839437493523343489454239062124062481745574558533556151286541892050106874892616322501232958427313322704640810925308822460751132375845269739036603221266264671635469209038705130563097695157487075850239721196167036435727561393327836518034549513114995505996112248459263772432963522334443810250745828161593963477484544345615274295095313357764041437099362574261235903567656105199116706048241510188828795783961170538615728133351303702730187601882164149823732700177269809899049416293528023159609375565479150307958587856074965584543024906623395755415231003711820277160701514455720501974341517348333079979784269512220086601261103175555999094281220109701607025123784769580294302888274273892565076331145758963503435613116086676655913454545657233196557057186395750772073905295409604589278425851616197946444982478938659748574580836104657205479753747358077203333600515879550834667437473906864797963617185297581125644823261520140652743164308759478832611638359050766880581184118574190323394189520629209172066553958442130113828323468955883210329933208653683445348973918834056515178807136717873831121464248558709747113788102508557582788866916312513374622361985456348247882037654031843436260131992597494906395739654505149517967837660983971668696700963406574314288186388659096192971131374639776128524499241616919685348288002850811274844192753900383721125939997046496352910553044385420770166121215472431333148235988247851057591719877192439897471053417279776225460760541646788923494466867045662764498265487229181861208946647641529247983778351160666305238021530127198481448039549328472405663711645159618683763703820552725358799211931876524429836416079670816389285805092072584673778300027088981294272754780988342621186581304103265016098935018208652837361256952145553575627915527150223877136028093002810646886215897768502583689554029819443865323283378715901368210138820292117601355847588512784487611099433118511108858933424039185811116714723551176081315173429721177212324943828697861669680493753589963783994752693225185196686408738438190738395409494545210714451834207593305943537137071837340946187225256315922490217974521945550971296529480956640160215180781301764682361824722860166204567560653978142255109273954091705962244399936858215351667750900367664679360326899493142104145320960358811756150262448459527629798939910478585087116809601235684298266040736412624801771783817732970889049330691965418797577846104320895985833742763879044724569423287376582741672119275233622110402073200151219373213722798974259746371304096419927847062553616107088309527201216016734879654816146552043826585340327638429195465875675981681141874969666045266631994625047490770170013237003165976236928781219991338416458218603170028468856653491651875382363032826409952076732742677806233319532648638509878799609919513897783147123791104532339472076013357594419109116353889798887240617734069247954913156056642860973739674382545016345661102170793835803801518959382650783118670491910553880760653428165223683225535011305940126447310484113579847258519883862402106981045569034802769482254460094409780829314915516897490184185604006931717268304331907829339238949430139616049672019744194277946838204652594133178453233436827680521252353200570929861745439270035695914839678456903052804831972926465010351385192506901588330191636816941981720764442555143430851596668530929996244483814249802420705969514813436092618666228818098666271897395511834799751598950517295885977791609031138781337689919246630880800218686336526683504944447527635183515854657509427081631575480593975393690108227669115060150083459957656460657502997750317056169650671918745061257617370532548639595404240377200397501698612212937804423264631032078850459258198045093731810871726655042705229907114898543287091293867933212229962383188288822332957626915318562890118725484014132975713332107867267940471010378147378210701955783675863213913087571466980601196453361648378750774831641166255786806428586599970178270653591898646702810342240879812704594497084869457285422284883966223912405994358271786432883874158611408663529002012079408924980327809641128723495564921646140480667840483626107918912346873526147225715333472424852607666581252226191993676369758261602818585770012504695228781050610137430982257187384213596016342440319168509576931492803620040625921776550168034456289394180789798219701352025067470097524021127672930428233663139958512782387089916262618163257858057754886393604195802353944793501322331372792587778793661584848460872675586314375372409987855444649385943697499816301692088279405495231495560284296595442038310552773769139221591151558551272021339692445794192357669805503390614017146097923185433884990859588214597198662342707069466469029492163004610740847937179448174775969536655832428702446660686714492843605691732502088098913934056070493723648290732097864073037243066546922657149362379411169257595565805597162535655521027074781593338174293014382476993075825905712951339270799253473471735021393629539313894582373227964347544733045890174741583276365277837596327594016339344425125996101218497420920834388901609549912687691039298706914071981736867547812754220743240205088785709089799594083284826809859817086305990460455788522922668369506831243397418525437263928634885145548128110596302689576484337736219063651055046731501137655309695953742588536677047134507264118203963343648290226353365891531558949807807283427410354202679947618376976494940863404018412185189142648775741103568100813614443792336942840042724170183909721496336482826078091155990120632053452784172381858050236390886616872317204664817640900481551789174208024672385029669477810391091664895457925300242259165590970403130225435664830333974861559011414256439463225645842629856593507005374061433415478145231030644924800546280685839152955590803288885662636500128310482166744597971764329231197752371635512119357931930397353204014468829118879064867608632300728765731426779902417638493447137522947352847840537007186695457348540963120642531080173610320436959947564413782920968389703408696280726922409378929339544359840449590868156317191034187381695913435965870813179673860753408901419752650706064331122239899961429900157788914700719538667721519649784715184028115282041163957332429512327380530786643025852646320129897532392339497996646894687299437838301576502784041790856022458572268551558142383011942264531214146920333652127663670314781053568168288933502107515753549908669080133171067584805991374969003465096858627451888336462083600078167322648521685278288786959155003407224246962024295649627953565652075439966964097585151432371725113950862528989247054313888040010375562484618297670140210682143778262534401917042732475803955418254764693010260064360023921374965363932315720062743696958986173806095255169550195193379642567802621453378666462852255653370990088595222928018025107383244931525964232010498976310284707403090065766554910092600562854365951656864472737852841440710811903795080379221646007125898213866124099310381832884309468450146541644977614740329614852662593759627887887527262622713307593772064934584312254274255821951955959424899398917272523316193191412632424636576143116041329523781932692071103094527553833807743725590454283071014939101087023491579021244932417013525019644398353899170192394148804041774293907793487682643453791083477216102651920047673712560585454124802007518626443140577131597799048296002686116789140742592703792548212865287169049556072120274499400629738190829186977768561692308395865566821855553054660377331820361453155855289074435529829862570837893044270857716867706195875548465736420739289101147754766281970592974635997067407497329343661105678925695222242879711316807620028696916487821468336951568662561302025853956795014406126675179182605983103512117690900672390223426502271894006072200260888321777600032726672641940692692908275463790603594621885338055835551212353383265443161103576769725878489598504547694523827122245007762528723616832556051150732427279056529500863041940656644196349371694490769389838728931548387341274538044405248275413108335264792460368150935917083943062292677786291889316502795168150293577605463006243192121242368176577639690522683469556923781407370910066513200655472457418778038551852802930398679292770132645513965509035873169275441709736551823946024929275105600638751171547542595927420643505587347593224159881398131948973969922379868249937592218033974498613899368579517209794032580985567386288318144591021560212300573188575138899268111211777996170073727175762179400069658127459147706569101124039520378249672129274075551496513069145960069752504818637564612515391776704772809875260749180239495060496974191097033031752328580698122355371335826767555899457658036952815301077912460687721655281059341022978307691687073686169514496498921427426750543259711760984026907958506885687324298075788331049263518281204996082714829582613605376463896295161618374044819993581046989879494849294358130926305738413662413959607130965527473464256096057822182140549640696332601704560487179717399980823633276029851335882908260537103827847890453790040549100399830927588557022443953516539112825372995279557389267097440961109082475569496889853570797323158135917711161888177394101701867371332884414280779519947452827348605194005808928264173339833244867557748611398942805518323329963531867377601240733113767301907131883109881162659333498212182743487679565971228982894005176264811167704556135791872957008503953905982290059560197555988536385041649000781540269867109004117011319840664016311268553057713670210636621435828204601206481840070166449201495262735740354486453985341156538194553590689841897683301186932673934126500468113403256761331198914922557809480404608725444921942627517155657365827654994776656640985445105055393125123979552087868831739976340516441149601819858365775288543234459807973653845775510825474283032622544345525630356416695236029552732171807877538796119256161000064364130063180824394170087597131496574716941161754816231132213854909574017416550865814974682045607330442620917337068197541175601968065391237235352642321797463185318873232664761068812572168703442270532633925898667303164781990775397110231197899108750557713935055159022859138160933089500630294541895911847618515679857294318721240632030377289602100405248939503527708400690945354749652639714374536202928270313095718330555069591712477722111831128513689629850562125978310008972100290183607553564135196827040345764826863183750270862097738232226149610986750395916224552896212180963831362202379764719638123697986107735624245788126822444324068186003406420708226389890402448115085107661153592132186396700670949833023572906761188174205558444000378109580419422335859438293853599855603822382489185279435726896811913500851923154602371379093184501861364554699979961454552430593278697779609076185618850815492774718833318168958863273793620970302608687516000141958769018472961853078410800313647995947837938015282203256666291157687855942842679063312051789112033136887023760088362936156059192078680348137819566603401229968721319920972520792632733208104548227761457144671849353427827973972547112897706941429281994685981728947302140137396629259832185135002474014823202117077115684295255802999857881816675246148776226920540425744049837587210611949780594676832531509570707933363272906158984012444818528528664781119275887365427474400976683025590235886340802706350540900889962014875026947684624612305902805671812897887806555227387749245272896125484083865060837675086943792827424151954886290062500855048302784828390957705605029734654292009564951483451453866508600352687058311825659578975064245897551088514971469243548267624307953697332341498874381253302079525962993609226016561025826430838977447007332085443946745754995023644950774974487204653190323325243111766366323418799692756035384258732945386049424739972662591777176519633290515961956183421864757525270115923320588551474404498240375133589805988146310489790602153164428806936130133254764295093396788339436219706271090505952321677580132552011679859592498237355006008829617563212693097682539798007839942501089651926306054646642202474362634026143022320026995092185114739493161377365220795157428989021169275954095721736120604821880059475939173184183814350477281964428505197178954759491393513135991144135226933479952198508008087806484099818901499556443839464592075055406183181114105891634301794983528779448695346654265758282474761097960785276148626162587393836431434998437459817973679997540773497391395307338540608597648317136613020978652618085432047315971754490339018287724405822322066835634128028011225814483124695876819362848637284701939602548548822039417195453059397413234029206873381604248557140891263167270304714409550120827629642111605213719668240507906339802347846795863029511431539414574219621470696590522403118434998667658216721734951168884236002098366659253575628818792687481474929211802599265307489911670439866917667949005868582386273258199968497143196713352678683473778207114572993313410662649212642550502874889730237225474457526100026026087574998050180224653755694041338334459050404848626381926413337871364956435050077209746312915711404894665089007128593079895322435380598503618555222215645969307254506880850671765098718680371757256682010651754947434230094392364789865011833630416428368399015919639986057718351312152947276017150377841921612519312291152502195297788876270131107454298328222725904760940777103071668126162156565396131729850411960710161310491057950305453908302905263047835406009719110793521485021641305059679670426778418241879660558447036201270096658014288038297658364854343124750567787167041512383289426536229837281372638093668317339806827974171165615624317164175792225919325775162474267746968660226586097503336643572826553784963136109588902693197471552083001902253927240229788613346165249740708000292631705505253067634707224059185942177646861291800445304115874703514415099433911948907068299630682462173416845648380681680125245746293039669834613532218959560773307726924588783128264012230116317388485732314598261182668814931229159783149308352423267174616924956522196414187092911118527586052747584025014120346279702473751077684087334580619908940364772093392033155122070339301880907572087158933309481604978372934889403123019760770809462777887224823410905097796050084931461342247709408826364319087145698477853789736702949969423868692905698582848213176410534942934732467826305108986332410671547295998105521433246058186913781486873167509876657531852639322691361569549553298296099500129462525254979061516243571495893489380430342709195529635184151431493714032241321431924584009262184362466326810876420999045249632684776834789846151608938273038432115247165380834136957076360766101758128140161745881736049593290690392037073420698489737450382326575846510207744106655186781481418091656980547345754879653342768964731268097895116091987857813279462554313358196639547766082910721783691701290977880724606119180983720521330449494775782000965258652161020042591640345994718341060123294030625520151348859602831279415087484803042069338805935227075510137415757239834991271750181070871277761621092125436201440459059627562396792838234905140808052762877026215884638992114740441070477241008398683074704990267158640731599674657118628354150883433262604513950402292069293942415738603528361290530157586497003609280093072929645391093503041870333370753742942309068896379460718921894334926487477496290885270768043194093961529432800176873329779045073469146174600391832457532333127824312663171539634955224126895599964085103096700850268684992333217433324156555595595582693883384661981734919803298245235257786665308530768752709644380958071319050740861758280470623293532924398012395564108339575380284336624368163020961575300442099187604520969598975751971179793330891736761433201286859855974166340062496600742601512314069650238077618563139215188815834253655541213530767993286239213142422725184828071966035580303712152819396327273061658538996570383431849859862975555438752690095397016706000831854518796795923586144190208125714707636685212101453736250279631822085033516877828977624671609162607787126296304189860192059557330369776804089089482531002401279344773491667074752996344793741791231779954625181779193830525450817943739592346229298652310622513017391942031234805452182711471753464495020223674102297577828958515174743375146258755254082539545459368594438945824681450500774407228956398717804380526205829844839783156919617813311604244644736216554247079492395909648236103443305012886252894797818996528529390523290831938155786417502645568811100947835266761981493229999932942640551734952363653063804275244907451874412249585436714945494881662984928109302598665309007859483233610693151699563593546779349416430059446602642034425071325086697982320086829249620139393105825790111859438554637254398929581132644370341048072982871700930725937826747553198935718602272434419496103884609496878885893969843671440230126627290115433427694021236618807540919078621502597643282445702066292309128053156047150379771044528905325685174870782921597468836061267036910915986684345817909515991896449160804833948805632420512567347881936780033369170897637728301327677363892968576465182222586841189710842793178985222486352086961649743840449662836151781100652775992849709998425313408027666925192132753122025752748517983419513530447349573725171246449750783562148338861960091115879158215944923695550667601132787259578365087287816614143549832065287867622269898516998524175920499267971580696073260613498477252969986046147050942640923266298002570933430163319652568722226309442548271901261694792225738708728821512946379308537945906909529402460892380031475577827316324487875985630132488988983034778350146021619589262329144737731241934756371980129221163960353846316986703491358102488865291780289299305764634393464118577256189308568832530356270741476309849895391088073343523066704762212243790400311616826155933333100753925442222930744123103448588293965719882711195638520834834215531990384942130072915758583470941448006458149390233685768239678377758745764159999480801685561708422115071089252147424999960398954061887352770096627675880907237098197088622311054267638229530039464533839048550250172613521681630791504828031453685623964123306496537070947895429004100498484189706320811390901044031708876168562588201568369105746193332180504623287146453119372611779437920724147473493676871952433722902449141110077338013124465352099948272279615866113850744491582641082401257088594600752912159139282993442750025419318005221863419958467176270395670134985526513861230069226483389590866751284160183759966605887948826729487283230043124274412452983910792880114673246042024567614025671564160571599592160167768972708739031133300614777853607365007371386976915536843269571213490664887692580007003883889142680822196376008105415396886002826593280957402447482751470380028798007001580399206871646357496824176615190716721482771784382925493401695327625105878608018472387032526870702476943363641918418683213602758103302114528121021124361526030975408939054541409155117309038679574129960445020935395150231568651547905872925454031007853694083505750711759642134966390428159824322674308005780548112195831132185665445570678221041401403087633960493401975276704943823660445224925403848876118983286114840230715804755195392295061657820634732925545847764886841129299289798398780201659765772115928136963947381477836450847435937797371453051071820017830374854770865201634565454428629320001945537912136255465907604294327074833028839316882161801036217637233370408328716589549109975796115710837827736492146999180520897506833403867744878933469914634768758645658575075132953790592795694413733664453817694102733338403909005837356519296919384594205680898290956135151539884436218914974173543487475027712939584800289976992335379489769732613326659967086808743592681856435360206633678402389507866915824874554204805030134368607501538690631244874493928597250676867799262281708697794760031314022716553384515719139583780941504106540639055697557374786743954245828227632289231128076829122874090671425283622427293738447603189314118226957610894934176803720957323578589819466249786924911819696489395338562252902536857699256551211011037618721053788971847263319820952631069109466803044395560126137934426992209810331851175588658797024891195181748410790681503581940883823962608046998967681492368734969253114481260278744067142846153128827684607185578997700397212647965537768374538075656983325919901200347046200041156272601013997564113884504332341554366484446327348438635836006478565190733444478746854071752654728420137650367535150610103991611936912307296507863784609601837906722176126764801804356267687292053942421638080675059300614694971048587441970914361961228727512211837229955079292920649338371338422273159380797424191289623206506329754174225148844343062144341174595827586744402623060627070994243791652538437223281112838509475008455468164010015361695146343840894816184926020043623821064326238424875129640600069213603927936357551222404146182873668981598696805593911596746657791129357378676119456871182502044605007667206618427589444030441445368952044136781658711628595505915556528661705731433271198033362850116160673632095934217245572688366024054245226487252013816724855168009701653049402236923369317862399510266610489405587727828991965895572773136842601186771093877284520335904792660361332690649328534527749666608366753208720044908274159948054910797745283121524125866043320906131998465085944695064013344380366318582702403866770859611539710783415033645827685291728455393319095342041501480295990326069410781770304590638603125308036436710747264168262540799686870517326090576620091290065999023696081884363081027399024322317491723380094993911446254983353630582662155896921024158418203321543346298051831340985371329846742473741276703690714737790175945005972843690940311717781781614393324759484260312383164218583058514581782119965145265023035995057892230333403783662271697601094861419431403951607641401469671647868232313503421383600676607917560356573707793446922130725127168179930109711800106043608443469252780172527698814055390935283021152231992252375975962055901917588128791288437234487657020947405512777791563627888389441989737200342021104069139678186617679918505838045647840737282982078256758054844314514698583332866879623610591263513250127716245585640596747444853726949684245656778765492079904792028150100211050974032983047811059484310402404176441065822951063322980345270008794683642816478395882073644516899951779443557599281233782481178991656519271742172502810895620485761164795691055069962531390255841293634771255980849885267836961375365902157435772473257476606523187889284336347238714986269906605661448535374041731791067202271615359550221892210738771455310855597503488036942344831519072061876996801666739579875443491812330897185969127083314855558982687429214680022327432023335895639139049537323263998587906417702923273613166411452087835680341596674394938229082516099184037082788180673150445718718285579279473140868796052624561220420183003892118529578078900179210041272051782050573279230588780557652793001407357988897423323280540194582245306212546104195032236655579335482456935622937897723530332787755761886732142150203636805960213618822500528727553103272013635333749909743851543067991843159060796094728760001358210563334728804074555905917317021077678072261232218789589262585477405370069749811342554338803298169302445203878588335178474273071023866852908365184390414023471230853144910793242059321475008143298312156358200231248606328890301836947457587948983179278052041730946192359840542106113632154473909091438247476179524226106262339579513133211718994185572481137335921462830534555376639270696598371935353144248421882083151250849861908180943696591473048369327645050704890396313608003016224218120943062458281032940761208852241341165826209463332930696801810530855552751751532650466716460627623260088883641555258940350099590417992318254141073611156138720477785629683831116628094024922036458078342015180610486463979470629262475992710774156972561315246888266104668061287252030595087275693293643663916524218084060250572215355198841855618544739524141119448823274781387237991020836681155715018708925684362887269191673282866879941771893601879812717361508500626570868765996780088027043688883286351914663980722022222785254649423948548988261926102646566237247487562902593963806202177120120515323530204923252511015714792078841635567356866809868264971661097697313327838822284016259705721009667391589972765748400872949197526274315112001732056475192561506190844775802311205943996269936628771526615463184507630872995471890319978840871880007634775514704329154693275638015190838474011350099765842759745747703561301324826722308679019465492553189956591572273797215352001756679098393397339786917799049290508477817016001920251354584787929259082279230887167694814521393228095200839722568731159824836522338241060549489618820684961436391521129870398618035281042391735329342358588151198128648757650743084503518367976830452709416857844557592335288714781214454372404848319559152062541537378703618538770612039934868321279404733356511739237254480401484535647457665065404026012934798453326697059798501243812597047551761274638993159288288023244221635157666944379830401701557583156958180460588133282329753717100095865242735545719120608168960506231177483293201868272056580310137916743472989509621864845251955453537696263803693427635628823687841121903098136743576092705758140976510914194416113981567610369303014413605408822256462460546860111503246477363057533804738883790749957513241124201148116233387636572494812601472938048745525089727416123942432625819671236124638893774951612123434444761960053607489704231199610705117564773915551900024085324541029037776658482467747586840399257717237735364273491689902077281592105406864180166271447222797129438581648202113040708033703249127726115563430341718711131038994440303953928844369206338251570949957006643022087175934678910865197926389591961938223500027560878149729160600614220953325571215212251079499973629202253590131924002838215585295119272017664738261171061579410389774842013379923186536769924310506000750223063660599923128910588289863685407853865649938347829225411749606036235329652916862495488220237760238478275155198516667751433809027161059917818402928891072286125452159114101340915987401003802419597590533353972879222772803189112156999806348764610203246718113961264973611795357756862329007964634064566418220418053798991895576799364926214357656319223131893809791114537243305694208747273258603638811977464846050568348294973815579750640483418523039550577373511826641649836564235796342288926083732795693071571292276015732554404930868450047457459445707636012126164712376599723464297442147815667379711135294681739493943611355909183568250952106594826920011709807110019596307934160916771994335387630960043763438039022485532426560636223351495345451401929019794821769155471003693322575497088227819890887392845201029585993556564697176479011834219614828997697724112685698729863727347194322085892854631752592249452519017580346107841659963882991161348566672466774469723600071051599094720400954132226574413435549494254686248364485486838252998631101199769431661993054889571329163282380065343438701576944357700786801900889074285007972140937077542418762404135623952167684900254863537483171073471066067300846310365092942701896741051568330262656235341230892442699917237228406263012660407265599662920878670137724195672088487516023393263411859938018148771870656478462425680077331253423452040389375489476911681855165007686861512268513363172376866345195764524342771871084414748133442277293886757154314041333643139670768730115512943412952685000684569312719342602449044252897036210836714701976057914941993357641578240172972108909690743046769674909096264647147898777344556056295382523106818859228386551185998256262966304221461189845337497849275700645697418681474838069087853165927287215460409797474099113105073331207639839193022187109788565266012498695473785713338635646585394290478171259747505312029407900666312326533339108670422064945477437801670922336955381987693949734450077007264434153470790763888986390987645585325850758247869677684618629392151982739871606931066566012711837348161164771793053405052814395539476296873000193857960446359697968372144273033050019202737662507674177002624193535862263422825105779044074631908911555530423960505714789304551940667490004211938138422131699321864177868361855112517194462737220417113768205702817511936877492080762805657217664802721769555341589636595063549406462811039589646414952164705838973356565472188710464738477090123838204254514915028643092235161694298871688524482063724127485853310038307098169844493949747005413457801686594694314265830531285452427626842654613662009792254729870045350576083144306675638922414781024313275804391588319804251893510680429790207003433900382589766823028823045106729065086202450363486394722481618253041972926174109661729981574024252926409850047164725363920770047357025906559511376149041847059432606010575755528849170238566347495354033756447193282908681560657016634565610925725531698336067496569886727358816198506181231304524818635230922201434024144158197669357632049611919842210489341905505902484431294326165279375728414119816007707986675547087742794375511390910378959594348789570181174056942683070961779800476147189339103071305301294350632910420122633784435228112339112559316516427628836631066241617780085443339709775815744179825413460767788477354702704690964389141575850871508570170599781511644645535752538893638689346991166046553195111895959116286168361733622039752887807034701672029809158031438403136842962303710011408046101572348602830113260619572182639929258571275143173420566253250940604533597126802677566581713445035036107894503276141759140693224822569377490549198803623801171963302984461473058876691856436701152694858381640494909452450203028486020083947938465830889994650890941845398811018603950978529107968105240504550473676619297459519350963645546714458398742017361603859423022877448341471707823830879448798982557257123403795338649865519849096087822237243411590814969934053348400419327575882561061741562090128178059492806237045975904399479566446267237477486092845570320659581564193568411071238293643368583846348175597002169289698714261407886526125535441376988074985293726360584152190746551843185090033007565670202781282244823598179293860641464066971979328060909105105424309751362443508694349958776764921775224409648414551601947654217875826313049293193784679034355371195974343119348976453929194979157747495275941575416890375873399676009001649802129634500605294998059268035074168940516800416615513069102613655662220871994886998572469424093271480006035468916372198928477971175856443140715461171575010545016389600277101442338500603085066619895430518394139135674860137752025019316443769719300459462489452922661710525990779990969579381872888637783557178482496887443158466027786210212092264674160710570026534057189699719700498429844148026897615681110872024221402530066050738010595485884892945176062260199279251675550464173495325625549503384767999351416338062664319070930738913659175572873591194794909135859198372092672614514558283136286016126414531506069532316119384528289360026873422750005695377829578155965842528969830013662531674020922555014179797115891024012167080187295705831025798537721105102146526880289404052743992593046861544892327443402347964864986285571403119316403796177602165311861868495404643484781722420285821417151479350024479274416785198674033808338412557446411853315532644122734365207301958705864437822682146095308449663359634229831639283270766772443281020659581767668315486701421018892977065508195749925103373809762274298805872883383922236691286911924521126326395437036307311870599138944290588597812007533435504703469722609536811081814309291888377135371610691175692428043084298812571400786544609310675715545557091331928664219125342052069800822915235363881122869450512443915318830817309602426535256269690146443554199447291712061789990562975284440605587738781792180654673821912964225982037418721222550103033128457065128860055449659561207236828444014547441774480337423352151272200497330473589844845300092536509153737413103032270114022085069925340313677470526111373800266763933707340494815183925901321016855287249697293488044846167117679351754516227327776754481596970751306473043494616149432344532910239504859040059681074609554076852325966412960908152299251057373052449108223540738476957340535438329016597783530429570137629679006229975666926090699998461359942252570997499025823242196485252077716060284612852977226400141563514398668672648310818973391001604891190316886843270341817790475914842530570839567515746698525714651403211018836775427031403938023954305007668773095218991935696271512143658850799176959422516032764695181034076871329691881762966486154610758147360162300814952682494352163093687078627957118257960009568723992048428570887012206478665746088621481201964641070651776721450815921120805451131464629516779042861278448552176130242417690422323937157952684304479935779172963797740840748873380741590597253789192474723909599770255498460257814637025985392150902936465443784657293179630347647285652775573213058498232123100640611194979153167037799228810805102933022811210050758000801186298543999884164230157862930351979504972175967796938619886771280818853177440520287480277423991956857350675605947614565974879438832915006765051629146316267644282033065738974444763993564852138908082523045362576220622406038293492352715756107346500424931984854519109210420859432960405517830910316385075863200180474507747348290246903188630144449786585823270281688873655490642244712974795448674216292577179485475690384373188444954697284511979779920773059257661542724116664856416828826711890156708664183291781752241875824182435219366160033941018078992584098728229827381308147763241626312114110525785456275144453693393638315182285735467865657507580079275156185325551718205477868361288689916061898892994838534620052603881656660032420514634314667303020344114381721452684567539556150851368526267749764832935242009970136064414666984821804311299725697453827134600727468740406695537627855575311336166707982837196418500570447499221530302092632714149990140601744302905810456377233702221424163422358955758925829644684671300786570618724953773375225146165194649467881614820491384637999729322044923315354027742719819699072865138504219794844076669453419447230184704937513712426052229996372478583853068456145964743995978934023621977266082322681250182323397970623362473292254396898764194324354142541327461666046396601619760599369707610015269792273434215223225685562623838467514494412195633108078724447879902982527088445912272129561295750452938119912838182747265737167995500299568770130619758885712982034960530042834223890192433896029113207763483469794518400455121786354189258504371719602004442997500962095433782424332512103817726399782995391110896743095861465333105714549209632647220666997923020226905563683687829722023949655691157848909706974939390275313274220155108707944798394926765485504041128806654981280659024371634597815276498474485422650368570269439736471789301471896379974503451669496897206039667769851718512008073088305004396877971722067637592545058395862745232180951498399814366357241815987621460469302798138151258159486577716815212388186237899578020710252895447015748922925432586634995233753001637068633753446273524434610930626532257978697637184897094398059527608751962066205174084021273274828089261222726960300918142774172115116697308234581404160667868951383113608796052314720872663108078194915614800633972535185171101290734246274861243898410033861169698131924449147078396227523809363312951502938305939574294265797036237729215149206993804603731716305525210176119298306628653647602765896134503064927796156117669456672402980845709366546381407073660854347235058831603126129722192808650857155033442679787464978134810928307396903552537583606030216734144776087559159241723806020872432030392243236372176968575411224506466013267027187904722643488027048615538272063568065058173264880910194870506747769758844707312099328289617577285904105167138054915445717740067952496011151091946475227021175067795942520919657392150627988316385712507039411492941974861442593818366245966082550900007632541216349208844060574364998401335102418142076863817344102897041811322814871247840030850438698805399753841903054433392676707591350259971697493081290321903236980493827580484527086005079269277924145191108218118259683793429915569422802216480201675076567315118960014802349753739092172011462378565780523471651293260504638960358779693631434729833261291293838578406148137063161687658441313958829576957971912496382265653995685969666301141366435926741821314657655637866543006526052165134586006190943195818258412630462546283554625216466060901799894284018291372332874279299217890228251365073885939511113955646715422450406956318402692683966042585214695104130622086822407506182396038932757787763510389693823287236256587991554094261839010023587353703797238293022329722350530099458082195477063725987362539338348283281959172934777197744643195487810602627762668113054916814000320593029649091549029919526266752385465499971082378917620431210266641601001323451527605630772054014832853123004270944085377450925495685227914891737888369459688875172770520880254660368337459634866290478796754741511039019516558565400829970523782809537582602553147104976239829443981089503374751238277032323233377434852700316347229192853964742258642713639364087662921567935569840125322987176155056263454692684839633139980945839330734418823112240519942779372207714141346526214187059753427703842786657095978474696082172065008789821977005511899129848194458081358646083684835527004018695563647113559548801807774925670762442322461871566795548785224574203190333788661870082333764455475507123947322319636587691696195355561863057236513050941173735962884108186855211624322581929905861670783506471850446405565817445893241510519069367649028510597521176950668385355701956746954983196892611728112651050072298831705073345609155855582235831528255994690205628992052208740387214591648036380145225893078973719626040509662147388845398706949986968471529758538303413498103421994828587791616327199099828616491973353056931880143280005058761640793865493327294612565290020510276780446772546537578245094575658766945141844054855090838906619162370247030506779975617497903774790283079861257632529288358697646097240591275473331563740146661571955708902856733360730703861882718978581854781363190971107084544537700245002262795467033852644457515585854523071702177628566710577307604750426131561129410803583052540315827275908538363804054184891089458696759389838858273192042135820359699262068541368243665593203136433602628272626987474296018080868264632270037490148272380877335216253260306605357009968546976227917042622307902882573564910990286165561604347190123882613362135567533608933002694565547323341465597442489151045131813649329169633189123250162351195217924678645088101715887472603387461785005957336738377096538690024182951926024696542249900371608274349732413335134821291569285005656112178914753749549731389270642945934119554040415916563893310989162708788045419197751416379641676832182155082907608489184889700903427628218295891826017005446870082132475976589740941629572091693734579695152525770388633659297582099877106940529814649912116086891915892248779701543437552273540513312212531810450958689650192499361664259584768996873959476244448171506146455259539293550686223040681478214223192563189621681245521356860410232320279335213621611847261584944656716915200850028191560426255064778677990894820104891364747454043734835209071777736738866022030627191118226125035599801645322253162724981382688203984356292878727296528348744553705038678834073210898961661730177044402666258789675927895647443228962072668332713700868307508489087129847384511159737475737362640523605812323165996014538313780097726475343576382578942508520838546920232463213329849332517210637936037541599160292488062457829194386436340177029255598453119776062780960683687285482375618727074872094448929375448038332273301060448043249458675363745880248740520732073321106598897909688510418287322688060489107450261979492694477649884844478636296716748746834695744653458534969068879187537129014115698548602029734639508574102312167490365019273680755348474185537924654768841141090124658815146825592668706502816802031508619935308335119945424312253252848582057260959651287872926406485980046855904205715042897967160813202562055142190433392484959626244944639987456576292443687227517644390696265988653880190190789253220064393100952313406847830810865457714672033024748446858468265913784760285873741903322339964979981124064886818422412117483843115678816871518434064187206809469177448616065934408382612539263785926786846768406104027406445579589537192634066487771184490289808050632506333925530780703423531550270396998593759017011645192725201452701148060323600259164136260583457553493202102972949597069044443907987924129527292982765507501224697719883667227377460563548004211523298505571784074590021898236239747664960380984644762057577167063532255161697120098600804552743222743864862369345953479082539145286366368690867065555473497770569312531051147541573305255905893611415975441100808480465308219544413751850858018873838174136474109810195873383950114127553734802875049587286951353721130903397893694898429265245964856896121295039899520358025917962550934882835016993993614006916583641189869511540936255400827483969345848431977968555608354555427817875559177429521747160581417243684433634825397437157836094203512740110558500977771947899521213791712310354087386726920414546478566873904891624465851543039486835643490745083107325066037247814167462370244428486100980614757186895973209889018591325027170392236588817106425040095722291593444300783482391382771180947003194751625981870523262014607686151836608051449339777343241727056837239504583121404295612085118801859855178421883674343681854515426513001395309776577770915428054574339211057466842584610986270702852645464869115317116712543801595474939033944973865738580554609688840197266017194021716471940808204680070807666957603470156350474164343539712167931696251584208271181494508161008491007481883732319086794005193470153687881306062426689958480957914358727195140617193835183747853861817647313985106365152759193271333670611162949347167907383096260954829399977648490733567851894218259848753681170244146750670777580971771818291465869084608185960004075983722185149629987188411770736473615964270282402554869298906510655430235697400108045003821807619062482806450698015692351585637442566012342421942739179288636791802675888077385627604650104532782391619491660919049640226202177454959873060869134240399099913994057734033127365350918356943793444323012271974482037727783388088567757499789417849889576141850327278122899774812365682401717253147674924179531006682479885053942316205580031077619669400254083390737644993640137659713615470783249393258555052422429493564447181039815902165777978190977645735914387515333195962767399378179224159924123093617011458588987892994421877320841778399362478428227217364766005385044359715123451825495671925882612618471663753122919015466296027974263499224062410258842712664313384937945249853195325195044494770168140397025783580874402799711349539355352703042995072699843272315269127529587405505691914892442407558752936751241955929148624479438678910894817510971644572001224006203221744123229068472302731045905029999171806802429290290002161262188873422970712851988420279881963085043481437396701382702140949560160451528034994350718137649016554046606378621583685749296809222515840380317282414927060214780852540582753907674790944849722316662031547590366385726041817502761012992876401991278847677577309971703875982761616100715857332299375057319920669540325490613140419816897141703550327488661658390574737226834549994483676683680966748164690919952639716838560764264326307699033451500198301602144703171110657185389955770308916831277126531961087374316502837387600591198024975489609609504985044807979125107427101866405914397671405984424395385751596609190282329140391631740768438656814311057323696365830428821932194582946224911174549765670092260726456572007340985171233801615832369335812531408352431113110267305312117079860692231451468427007762553379151931983338942551532977525426470399949758487386026179512199019191066306818279370393567703432221599355272781610859032336066716387901047587965648648760987971370311596048321947670796788046378584273935936421005833167452181485050768672048313093745230185696106557862674811178705713202345854010844180008758088594949029873567962548435078355762717106153576401020827940067556762874333372879335093188379042449120762670123058851411992109573246077332229235652184233708074609094779021304875229493604486324313014761131761410134256767503078707116710864838306363814355650053085310803182582414926197497842584600581499232961676095936219698572463392328329061415688815519103724028098339429298610731848334178611431284048488691566874946574105669073820498991122356459938486465648159440699087226398732898762756829913122641579458000038849803820281570082790997038092718575451133480886427552960230903080484708854835313062910197905296250731914040943871712466691130165669640438857621006354033743515429932932635522012715962146521618364347640501138905056515212616757642900313024278552538090264981603398857570439800323122929673160311851550941995656615684160721423908295056697800474429270804373918474242482461312219212263293936113724211711484403917903754786179583257963295351741889966556539771199044234440278313525917512654237804665314680642167759081340816542564165719382991612156220933614668284777200867035997919835970092316018062805447679380134855716478291426184147013341371093959245002278269333820148106767259765807374960891857607334593119500360262746612266097564525743387545476174997585152755022417227081780060406304293281350224515503384292701411711741640222979673411339009242684648505054971928674055226110354587783680967555048374688989147290301968921815204291524696726053834798849464603016578163234957480456352827283333429230076619484218901231040520137081072278177344717210074770855097723199527448602107321103108535705908375121622393015772420541842519471732358477292103046950559070103932359113107979357209757128948273093295861913771162998919932174329517542952522062772488185998011268762068861862420008372276627024115315214395225682180167746434835682193172919804334176574767647491883622439746761711432452859223642135367986670831778103993111818300619918687912581385006689616460769171557066121057148190731415888743382852946829511123488804416455136138407585808843313901036305113717646198923149125601402241813423736766079281434402556220684563861335791389288824529954334198860557593043665870552329855423154602345920935862861240701435231482199059717457771800611294818662960121738999612955725636018686971721403678416992849122728324922733661602059831367577534536081353290312375493332722771787658484001407661650422783652730777283185242312241555031407959445684954916203825074248714715692887815973376577317122218995625415042872984899520896457290927753998692517915973733014119907020720586513214605783605482326719059371511709340089827266493675377238670700180646144453436191565725535023828833153600733015115572955478888139955154531261704466352819446155938702791591888732208867959992592335673677047438269318427279694097798359254503250296505745609410745520449638459182144333263112720425805456312808380416426623467325119722773696077467835993582677245951992080935816768539711729244547314789986589014354176606157181436018586390337680175694325412995995718173642689806362424872640542202521361053721928715616283282920944237140149002159102486444282232128721760443215720629362100805734725111015185747112691040890356400770092316827587708820898587404809012743641982580109576793324406809221983425458102715658196789415811515646088858934285850915398854525236539720396028833812972239223209503738392141192856717989378020794672043105724890281624651010627745252209246748114916773521679115691984003944120353442237743235018847051417873874000107499660673819954355911022443218908377305192625977752452134206243641779527145025549984753312938788956684671562236221339988740886802295326286741459155019509780666187216637367413992420047836893826890849647024241077599421787026865070788148154399304457071826931462598619877095065696769929487552483398351504558227329714079994892358011376377787931016534386826108356402052397199203623952524864226227398005152086087355101440963522347742249127785411273265558550860898568249056750031079274199974296913368860635296795663104592469541114708560840183184620288115964304655276555126500900783292028306996301852357344281128983278960678032370781987495284357478244440951336257705228976840444963448787292410787099074650921285878746713608597868390365309741294167640098620639154420874020776072630947299372967813987341333448868205917818549753560468029668138667804634244882570088878376805828686529286596336337829597792888697458492414416609787783308609449193519828445031804632334991984217095501559081767521610530567914528581775607362029428634369390409293236007325031413886286012568110853758674603725090105554117096253261250823725087729412773768434849824493923044383782127395902477764712047250593223839080467900087475047837326964838249135658902648831022900258967418967764253503688946578933557869603286924803237907819090059244587325638699424369051890812375387453597875858593868216356703323308707010336968862513728164029284928636369296825751360684261201745985266363775194323130075595924884535667615428134656525396551559859317940131501040700597031573420643675320668054932637825953210869405284985173794452797357191992930691214793816497054693633277980751061255676755784883425752331866233996846055758246801621216527969512811881794892471710892851320958780390276895772906166308458140740938867658912649823720914989335711678708853540260755785111736772249004027964767746809502338715803318307464196856608964008326085518352337838010010836582862128197990063270237837190431354768350353419374326492154289546714595554930670008029671510795431012663254571242055484197825598504941448079794161403493832126830373643072538004028745767657013203008136208033285666916058083819997918436356261574785934251311342885991423262693340952075599934409136303748649610169109953510462615244949108422142506917815494224257603349573860794062696556857862390892924308948476547398829246379145653760498010076512382981548630677351882093321561543065241492564309998732120172068473472721037021984005720896823725151729916200905480092573046370262174960689740909954967676202752519909384423227452535246312065831757096729272694741932682013785213788087892065382660542098767399321100726705232230099570408172777660391284011149276352242508660537657350859741518090945610525367706475183708820185202225174384597886878897611250759586626584915669574267790116509985465837437854041242660812992092609446970220469629295456875749853461888263268988496626520944585896741536315884973113392784554924076081345606604983521105478230829036047419028663581484241205973212965408962600679939470891172592467758859172698925602474956834097035999620628600523342467298717254114902142054252897755181915274858054783221752922110914786034353468275458882055386784530465771848601691473420953625325459766311339506956718678894708690357502662713348022711470613227521739960663161157538279047416782396444015844829281449159899079923230501370641068839105881013348971104327468929412189604292145998579990507197096160487225149045945384247089641063105294554267566335472165986951186078352505827094724547346714523681580678016905963789211156976463513252243309141280499220374532931714117211427579443525933542923005566171831838396776285751496617365276399259390868487049687680693306767224325427990492125510714274508116012991805784786870886987034399745079289907397457793763309486978059150203305133288478211410604270136080249768513009904884480011275420290666519575570239528242226417896197729013225713966911838599936248878005180893009610471252759206881703129959242161954165839166396835000129963988613905596416082846755822182363276772047198255069102090307747846532272364457477473802931954713524809188871362140076760107482400682046449813485724840158411663358865258861575702480235156902842804028239977812738152575052222000366190242683255400147098487642473944255392213247424469954944842632392355214358972826234864481643024113769932182520822914942350168772820246796647884322741880535698467812031049892771689261264768749942262437095817982736420141420417507553880649682327152761144455080524209325232910917558777306123472644349809178812980097717774562277903671769110012325754755702055420458821640889634628931104620251792309932139115371571570901489171505658245416567886375269779049507943147838712557549426715468390494804884311221147262777117497938800162665593255646403150712668541768102663470201558793283086297885651896982091335461006876065480121437295929413314853976297388469435944511939959317350882183474490992379166844072843035484762077854041177740324486381884741246569841355194155584838371107683777970293862403100358198288583556494995012461570916682880584972447875351525334722403405515033756803611976903317146494689478900153128141942956850411996560358750741271186234440287361081306004705491936437091417105682072596859302985413938610045987285899182524153249111970004479557654759916298393540557942515731138919571908165671027965463549552659337123737319337897401227157779943708068070173312191636408838024460831681536663625612217499986133798287461582728076869672317897567199685061644726661154209578989345736545684558631399137049104015991835060010072813732824296320268232608668304565539080073080454381313696751125891403410568616515000686757161988798357937299224564738019883381843010982322443830221723601526244712014192673633024038232074781542761493597737102126298226722462947919916040820558048706753331498242472945073510416361787598511479858683361105503539737009144500884098029428924754239300089035470982316097746368216810403874665612282519376287139226373625616836755811554744673913194314076219541208160112895403185494049572834202850034430547859673700945116148326477831336780822831555581854750019536692794768811392274209198363079840707983103855206760325420780984172249351185160319683193854110831362137763979383679071335359463256660354170146254193805083309614578996866872144000351947813578687884366446687886452074173971008882418342159067274828523474130113199309846335304437586226242986072599511671449138950119898356002697025832295434062238428246652525248895594111209576031953918213557731104425927031732922742036563399156702644345340551122492406872859788478116365696165047440582789125876759607972479473412931897946055389220729818578917048513252354246745663023929499761167265421230619248873818329851387960949193445315551284383140737031571803457189678582279263899758615405631191362132625539330927751240748409309912898297505888853347603909619441985209929946662811643166167400229487788524958322067527528703663123403095002429351736755988884769791678876770194118203641565517921177528987791543675238009083367142290912972870924455604882101581981069193064709672590004934583121205700453242495157525261586880998013062142061226591342762146100905982834405867867243116477492554047581039568312744247255666966453328259069221965425403359652128895478217478703663848561758536837127579121085127221469978159748992664411923409544693544422439594237448944534668514927192671385818270122631566558802135830350301893398605600401498179424028804364572030149899288196348543528717021697712034954810678525715147093669129985687854493886337831352515614392912649208299189520341369903419529462668853533032519563447155883129536701017805212215900446596559681454201409386251005718437618374350495971994059817101336689126202896390645546710543346500661430013509493463021855025972400311318877225043205740747787648801378395309253424932755321275177283556582073822159004309315173142616991278748707781368501274746809286646912422754244386171360566249976112473804868616976870590705195934969131718046771645852639313763893361253643422129903377755265060828459848979714033680625486109031361482073257703649964202290352644454200697550891172021481658463942469604098730796137117440981786203026769393991480190892893948499375075779832246476350177376566928574755868397256441669782571803503066925915786441467247040416500141154972281712305714428151162952594668158627430065995145472142670550279706247180274262845997440766103844691968018787614851437401687675266130292719890899014049978418363933403953618666875545409947807413529115143584946181001899566907871026272000799348381108328207763035371758720759076659899647472274875693369324814999481923099790038066968984612240798115042358363191547888972320296219602087754948666742370534159064415141221387203563799996368704283757008595164561965075211067229829578182587917704207258573298076212036297695325029343982409083061898472938750752560935783759621706264603814286729605923089376380621409499582829525674758170903662266166360303424736143492868359866895685800728717671161137842845485577895196895321646802022277377781077628722752609328199456176426550092709999042983074752016028534907837237650244159481459075392959897206942667218913593114598162204413007831766201378267317430716589856031601875886902050945052150810024016188938100007393614409910450280008837340105100268914925346675544095733349921099888917375208082812948368623787488932100773917158259205223434685275739826558591186502206630637340959138118266551512676791392093916012933168775210250749662625356543906747827785223167383570095933075885958388690906700651843472230912381683254108590890679006106083611195655922485348138526677564662702643941479806520743255860874107623090460645014031818949775332747503949891636930000111979062276926509186605581314202290486564433722145686038401697722568173552107268529193771678532290473340617492347611285011410878363325711619079461329216998678949712728682621601134372125599819593091180505182759319780175524796103084699522263600550657593021470534867160383516847662741620059848061580078218629458331380873573385189017882333754418124547015058877057522137113610261296721873545211010918655289016279765994388662473331359073999116577794489599502631964798784848496224788812918355141717970322188050129048715761989613038367531721761017475096254774993810042562418311713772999862073114341998705403381017946903931933898744257019941070966466710605148424369300543231224012298797955792033310799294593295679132626003194397511705327596958431120868384353985842795867188717819141809374039020874201741063122334958731318342864779647989824864072393243237430716977218250144819564543812010065340425706633734738413274953039012036797364119321728564068315013584929444598179840177711843437829235166819305346652865228316414897152451217303478543823103757720578236804467123848330546314896274674202375486726137558969439687712719409882771741092936551395373437167298698246976371208569357538835658922722913289510777562868285958653461183565000786548084982314980711882273124438961742943060809479902195878134164431218598651373690770250490427097238509294948845569677518178899426880468016691867350618658091355735189375341633522799522173128659885382428503489113831095039814860413066404012058479740284672384556915428164882157198728374963049965975913943190896571170211497800348588774762929508118971440576980191060673533644108686254155685650476011315647733070057699780833961962253120495126767468767986353327657321731320222029140171496006286054022788506750555227251527437360587072768435670355526134084740701683783876756441740879994307573098446219629343948608517222958794298061199294771032454996786194827900873621301171511363575262927027814635460127311136396051304914845963962407479367410934215564816336709712941207367742731211653573864570532140436216574529767287618877448254876974697664315302953439801428075054153886178680780277385304892594129542568530029531252650779228436121136801612402012817934694589941649065248056131225320382101595440592987299769038283246310365626500373606666589437133052970339045096614670232355922021250200535459196431063679587307425613703888956268773545453608814719213044406275411749827315674266898699566026518346953521227403258742026465643530992802922071781591995390498546445498821487399083111771612551470396695884712704718518297230638290683243019091188316283165601781498924179698254087660458721940115784986412846027349744880933805898533447760209900766889570206977447034551848979482948787499907781586467916359797447529182898153633975935039297034895547012385197651210129109652533397342369263350523515120814142198087991408451175797523646088366175373443199425240500250653824837460585994058049023158443605330541896538936050628698570796333922141450218920918784228964264230377276462211688273888745889619810618418055904415518346532838574054611861364314204665065829178357038619750811899162528453199790335371036489908484102804772800467422710603872686050613948840791355762006357445674353852082688254090336837594615105184376294761295043045958697070531920403034974887475133777547487342070029829661314887882826489183307082998219953329865622669947025692075495973618500013767895488023239516071604273185982499276000437844978312895309188106648798596995148132336649901802701182223256182331226681316118585344410228343157578237814719148917480061983308725611091207655642927837717510674945474604215622516703300971172212752840623073846181432430488334621174779928624081491967698530395236932706317901149738752337650727624883193744001414799070664359818663749572362149393458309254612031571106667103461272926126229188538639053015954171227664496344269488880844882970618624581315351362739511079561603908195664674780484163905591204905866069574927730461287862938441807155213131593165719424957891537144904516827121431631033577425420683063973416467223098281003689709013201237003385236091012160925510153666699351953299495160613854245826209779616015347199048585307725036328977302541718351328614378986271674577334959082780490936205723315714265406608531020867015968661512079510192328343158263727684155491495827878565281998094088227713550728153564785338544384128406179087550503903255576815838263768021462707761937014675247126509429237092079977419781625397642530979690992586328648889331079773168902062633775909898703271816375046555713634193915944363017670857073225099016168618833566255640083853018308705141645318302910772006478860830513869684293324028953050276155307467382243538670003291454993612095302416149138223978818625550158371806823387006603525591891227360723898849639209444896934531952907323828319775421509207210205647832411048963093509396707318693914906748956655469615455054608185255428193291592643490711284246191015299155160554035307645837510930715903278484036223990490645332948672569409090237321539231968160612194806291687433314899941368996509255439031811698137300823946420101907078348529344749154446924278061688453419290229806174561750313723471780219774511867969424042769374980184171951600924700073508019465942016159941017606390386895136155494627275864094463172976793057720856824711924620727130433372779070589667591322412607334624391979240834175318817301228071898731537137074903619568020632061981160602580524167458855556053301033213030747940306687912693835557505329678053042052746201296650674263475358297008623594956630116423684716535228038475531259177921477100025325081424293253897861057278001032409127215696499035035654673358321156339420044940301243191332845440352998907339069809263986071841974102908727745941030793284893253118481405209733614489127911640942460757989114760792827279173539135580909574240831818522665094806739381599222838324604205891092793376859327492157952853156510118321067855603198244207649802699775713716541730195614759647506083406972752099190851257291214903972466344282181645140325544174048547437721458428350810703814735886637613597757439892143885045783783354598540139838128094348954844368487121126379069915337543107489783610931159977678659714373525666001993381602589067164785631735178393461048555968199014069097200022499188109634096047014931348696842715747355937956496800545053720211876988064490502293668425410639164372983619152429772561636620249689395986353525323677205600743527930407158375608429608235863392643609902291207105289435198305470786932555025784376870327480493168109695227413239690258788962229789958398565972822306247972345922687632420849569539666609908900773194497360323000805261852674385791649126765906470420947989467620510649854728440455398210622484142659955704948536630623597026477813514306832509241561447847672594528664374262057740819429161532732319942190804571816244651252189613642228051181326668597123834329890404571090953231976546814293426281109013174307846916870041975148279392811124965832865979047153834365283392299289802445713532604094911796442355182089608959658560929107355992914964841394184687503096594481071853339721175575137001582042808962325346415337534830838772004432268040646769866209407050808248863642633685861510658210087911864548264183292064568364711437596998280371188376300842183404263825718493914912464048642922303714595214699786079947542728420860299782079650491849866298280089604004546836594030031109002059035902174297967035968365621550337774606059190260032025091680523486222848172042532689981113105231369302500655233657516820210841063010045744506375012300832682297271550910855283854649273251712254001232239322215618903608893996359587687749131939403094411062306246071231422862299212389280165556471646804290649506754164400871096593762918739655168864479468085560880342481543889461634491007910815559448887121039248205685304737517467013467000321198131567934811297144857209186509269309967039972904247761245792874161430086898965676998265101559016493373587978433696829286416378986068728960313722261380263169630891200151956863616332040155261261326986891529308033165058054429137551922369495949466517532633416695404481655105513804962096283796369852470285688049379757543142729857219020654923742093656520653262825298884739700125877338014876945200681193938574967167561506485154800977437205739492809959368390251163252524913611127690870213905086346695763550384148124360981375737297750299790445807819360978524007932844931822160377276944549294962793400060209550134018637967441260117810875626155580888782850432717615680343088528639281320623594353001048608837746050853922203910258156878143356900321004279318573356900620851065561514272285244846060890098423884114835434674591274762466927249848822460216230757411311452130698337403483625451350693752640858093031588411290514689926318178610377301373752172358964548649284048241801801289721758149317693864408510879326780884718931688376820852194869270119292908940527045759075604699025666108070784783593252309453762282298397304053107353751827306730971231548909308252544430719846424497010622521350073169698141000536262325280526041747152413257192666409744292016424075674659169215389912889953767348769988619100509130399210827160374736288205471708294294108664914291534264310936126676003814298912011913114570701706286153429149154325147217045665599363570806884332662104840823925978675031664316943083552330050248515994885755746831548837083625298158196627413134816684807679811214232917767322875979640608281162506539851921446555172485642638835236824848057121502472905915841319406442042123882399844849238428010251722846087354539009299019471021134838925392361645381493785686024388044201817918141613776920903608193467497710207562251443967325365730760399429139616157529848886221658470183295703435896944734980077359175940502933011593889343579634742975378586242575752027818395180440750602132559513994048729099157483486065502001054837217803822703895475727746597399686554137447677118730944649358274192451639921135614287629223015211809614603058495712575962988912629141682854829145463979045265597559136137546527550231389444631107975777964679624981766556331324974885208555011171897749749263230294885996854611654037726542079744834937737919448794440611587391337390865653653092125343767007404582624140769843498212830777255386447743264518979908501333053216348671119295661674484041335497763998557169070250429163081894706562471850667205720368059765401196944751882618042033927231568699723300105938912846262402266601126633352244036599700514489495162839132286118650451805957401810692410092619800204753870544751591219269093246563186980351224106196817413789552173593067805998465755300082469644446288841554443794486816326050894240074700413176139746470758636607770531895916943042121560528884233665923453959186059521267815896692210747745975400105691094361236084554787958096937649135763114643145816219302856632636214517353924516597894657795431838066887654392972407349210663615753361665969653447902781871182965361930416149022923774568760529336847267990445534971200292362284116816057288634787811584404775365950449875492345956514251795693192685717766032929381738252143267513826046366041504197954523810023014403085019549419501744495487014339737817672645260222798097908081644505233974423173893128279163688745540153866502248782909033991780388348702954152763119487433841544401087241250961686466572295320035753803679456427214674723194038114895789218470683283630113129850379629693827975877715037168843887191528088882869164851573010613583251639320449479726123006738944463581361987727915398877857246249873614043229862346302091711445434897759830301023914794823926869319412822946255205299888651185742843256747569627727209059394219161252374987895355407367432622451901807262514184016879708319908536490405325198191197011906328301118081485034800146123325349463000657195376410760545195787178490984913738381840896183828464739340634493250192289638874621155523067781051068654242156562885829217875951640863727038599760639582356679832956941268618773854703558914135179260489095304086050782095834809233650052353795598082387732921450114091808339317079095074505626359688694333772986501036395917265818614086726291710879284178193369112626574845993393406228707664146903666590879595727518551563096257044573047069038170404532641420041375643605919895078622516747769481160541647661037570108566007502306481339866570470152942660119136990533855119520543460591689242586144447926922968594456843772725200058066952517538673571061013233106315502273080868749456274757487697177013803022783776803785235225384968455951977101155673249698418412661550416035930903591702579605265157930863245887310231970181461868912225745967204398581278606813207681788602313093603007329351058482887409093709073841846372955447937148345432578732398545287078573013298664402998166688333896126192719049468373300024225495154539456191187380829588960502969498117163286339551321833180569044662630331905153041466648151223742549431973519784099193274046148774846025297421059991416066810145367143890475937647021655246195935455215415194382249909415018289829558710051498159746936452999031428091103766489163049204265843186926001738584178232203796163576545568939165465994711249852895431095405501318235235809508742468082800214498413989332224213168115676058101315637438860526870270472900914702466896007049056513864041880227951475708184863075962510169760913617758249223706605979350707095240806055063924165220276819220149980579237917700602315568719992736501637993517913871787183482894992158548744581569005262092818520850279313830912717967963974527810506599924016936852951073248755573400288676841178425716059037364326917880420905475438539440906404720619373453055246082297689745056448668078455394335453873192984341014656044313682719762527808719603108858935240320882178020858042294182928464510441361501922015685370588001327171511365830939796820858149719379510661014005302325639552747949983751411584434130552173118932025791278567039275984646469822844944988608149601068735710675677463400687629960050351557934282567137070776828938303125042883140761062260961216356878933768769987764044674775043653986392293667487491362545250883667822325753516530935166904479106840944453027944833093089729975593199542820303062162955299626967155719703674116100617996651167829503163552878156482040305718564312902031672789925073912719070167706743130907172781226891356139633718771159118559814006675359041192485603319756226555205480615304147643968534216938634460914920632066403901872855304968911015177841790129601339690586794411942313272475174559259136786938959201784453907061552967687281625687207896150669997056728118665825635928576467850200992918076816809717856554653501539965875022043303742599202898225165682860734629881381900605707177676939212961679831853638171993929367009856845387026265718745690851950083578671848491265231834580563967315277640385257032400183787498372083538168008635239464020866462356251773489438936389067092894079337107070486178943708617844914937599437690315343151322069320360043136945785163498041727851567027573893772257407873928359320077051519577324367172660266606098710154978550878973073339535104122521790424768608729734023953813799969204172176643338185403884734213247134440835753875227281165911278679633509311814766749364559195132459087606832145119432179620623931037582339378018253645251284308547729917428273748280654935071386203703428879816888857423298140367926173696267995513611740086716397509517675131604708920302365304142733272609579554897616408456523158890696351987614549421880599652028322902341666677195656743113607561445814120898284888678786734303772032062447172416872834698769226289175738789419424160327342387264548495586973756681663789774545280620025065528973852053611155903114003307663926791770053686766150606520736777317019993413438705234262098196555239770668667096193883643156612116523477882490903405474180403029842597429799100563675711643439966120722433082366548597350990328276960579180137260426154989704543626506745969732372768962372436730769843498224017148836944895014108332881301041994417396751765293769708996266181660438875595091848255691518501915585730359883589764147711827147845868189242129071944862169300460577961265741212057991614991806224219873187883246956695686349613551250599216909484871497490660856168165473872148330238525410239635905437019036856902558446471392194308005186270709512418692213057260371172579600329563142684327398274062506537438911411900153955819087538791744417013310983697756412108008077201334610275766220422670137714197756901415097144526593833260133410578632748651507143104822475628109100754888545817069536576719502273133623683592505289547460876714098237267780061053853158567498906879714446425480461212107980815346754387984386604030399401235180756664305174694997836835933164029956737639841560175766491894370730383417819266516466726140611905120913612710972055926839887145563767746345987484469304745131871894596328863263051698912919959652582011930203133490576246320112674878272907021991092626253307050615845011635517150235280255072383605055945763080940813803162107878384416559273820231901230366153075945451318162361437269098392969873708252449550294577148482212339525494977201804936356540669228737055424540505423599129311766364973566366075435952899514383969782724600783923103169969100859670902329796794760403099066504254480286831499676983442487887377840770263830101442993833833214472886370549044750107879309212706502206076867663420504653240851706025048475606678768988909547231027427164769410901304906788629878717993924412697675527774991027459415901057499843676811051858954238562106603812487083660835373249239858503875541826115311241752600351117657771480371375920717405090678806116414929347867373099790046254069863618914279598126083627303621296114334298396945085501383523664849382611223081190704233399009600313722631461250917410319712019157928470528987399217836950505630599838354277031465794835359853538036251660057567477284870753400528626639532549084977831784697155287749552333823600109836569565989047787330733069154188028571100092695697726539996071796848688980399134256591176994386507748632433871490371850614174241034989304513019362504936329219322103027056442029524987709882088947964675114100455200050602584983245626970521091235390485865375508609318391352836782326878531000642088179017118067190946452712462676471343929653780654796970899410255840030192803466243205393659825409322713091006119072921169740493364063452034374709354767628040096701404812377657925679623602292840547249020228093853202545415160693230908566134748794435899200257677485820687335956347967953907465403936140246210861246490804596230668068664900535813850158256218498931805224965915553988912023678177755519771358441870545838979751440966639304298974881116958331358774553130066980628756401300707844123224353212445997635001226926547486173566485655705215692559075186823299983131932922051850576706032627903985474365997131332898195517754638555009248746923895538286771223266760588219820772242802475283516748897682047603624436163163217631822547874006169372886630287061510673611062289709248317666452819363449617173987485393013671765531915296673823919211306497463374149119892124418192475796117546638076759208278197665325378815851681358006073824315705550402469826277302755911985535511388157926316717153594824805901726781154741968449164739925717390592897381816092898872943114157701025913988489008603835545968216123287955972292133406672968024102800684818793441003541743646909410888761616472065687718462564572641854950068853831911837859447036972674553513373165083714912990044764640290956798017942134933971027533592604992627647230604003842804228507894625352582043240058011782531730684459254780971194920118439403505065651057537274498762452664973315076298280934954586175960933686799785324293678857035735194061851629789363465465920635857955257365208437186486121152620439908631059090882811116007140879699587236847648498854794531206458566247893601635299579365005146274395961847408027185884065228361114671644142979546714682873121558199978853631269323962209159494656597849870236295626474253125198320423811821679847393860278000807557159273287112819731451101358851208917818384338902678018227319027140214704931215669346367402146254010752734602581558158571087216530677692416757169792899372529427917548926249296574898636921479309759235029222478912136598313505729990083539733012564278428227777694203540042149830526050502848056861121596120452087215290843217970335000239493651040565912579354290343988322937500356958295924766395227943332606211125629545499174612331791632022426584604418460540295478367382575867682145141932384647630190248325015879288505341595048627013726515014786971588988388553834905733173802684921341084392647945047763295827277892434353248282892607434748879550602163677269112522431154065868403474882702296804435582613272260840194468157933400284858482714721154580993847241046024297785336409709268558210515823720330982280397884684864532307658193898303889460714706157121601285142505832494728125323738782788413707641057887871257119349066588625899133511915205729453936847949451724367764321155108345777242000381844971106060234192396322991809771577761585551248124447665442822512954111202760073444393549769844556414245353864344536677389052277474333926098069195217420232205318258250474092393472486879515305278153861765776301894608154393345336631701326655103871413088558618526683959293763106464583409129827720571168885183041747308475194765571147468130763626597597130353666668109841377159830785480621500193399297356998224011919201601360884586305446972596613845588775975789789522042543169334975782210179984467225658449536714888461565860158042344889104360203787966597050348983174604723905737698834457976160860959170904087106103691127326365428979822710312285263723880094264840320093399270421317226380608868208348774259303120019519245876022328706430920190942318563964774658502212493100342074405811227551501977116957442400347377437913917713680009530313033989673283897211646720128639932386725192096767103305152492657041236071075644583964754550593938327882734701613323135488786500920545769367440840949770134087575985495235383531887039064982918392890929003817627732412920664546877749380502116770169908615563510618947526500988304796310083904915836781245989283642462286077104822632585565854636554956714817645145866286651170983172259317250451990068037223360966078229400908994301728000723031785424686211088549181467637042044167627133782377588542699594811435808392440692091201971978581047172894934679710916376166662559201955913815199759408051196510583770914112964415212744587963222953767349634242663282904854709565663739733061731916559393243718923968328199849292495545708009812850116987313370870472938735749027985761784263686906216828293704317627961193573752054427385971487727863190643290172151154178297136697953453899200402456877267152705544939447074361914181014901837147629638099444706779391922034843757898023328199976819338004112001486688230518225742845417846432244680760947263352968547943826827092160181048660987656284314406246128935964388364974967024326017031641179177610487528534237193342984477762458959710852270284539974467786467143568915046192942970663844032299044875991492550010607367862882106003510089525476050528054749292878859680698229234150517623301393890782453379099346895767786852297477908776902953811925516668093748651508964453066966341099032490365769993693855411972865514492223480942327581177265714176023594197083761851654735756106294508152559347836658505662881970796165165978135355681639576195159490158308840504544966758804863575149560253445679417073585676903836307777891080153368953213265587136092376293534431136157955583014009670096214653666227574779353827149357361800353661936850445652230616362112752295176706990801102264917914799204126515491357173532042564041365407844472691716398268622652220329109670589892695429596137120328762306481658310713956668381341010459624374699604201012567558054437460874236335127916846211586947820620928535321846233028538845896054686147842276561801255696940249892236143575930432515401560209520079494277204746088810181759397531182871253115775708720253459199984767311285082059373447170936104011181884221131255986038954346478872943648654138658912921323647967344937904017529990742735722892060669807609472384180814694875231284310939023151884499317266985497546071809334926207369243479520128992506532918695953123414105891587554904268736664381753351492941271121028577881633432749418370517890152677287289341609256890233589950520884518956428448214636653235267778724858369632699380984772793553232919649982459289358895565706053115863701318143510079496455932909241711756927501150299647406452637830791394810297126937359263297488349593328746756304905080616133024488054538439276151608613068672761365424680792627655602501101183151394182681526270223285698111078848101691852449392694813231095595984522069750703696594334052539879331847197430383398013108459133855159917328328647083610691213699760168049146357637173714540885946359630684507119490136990260813033990232114633552556456909738156038009577012986707166871759529039463410249931659918158461137004653164913264113590485110265559749988357331596384937187523131568549003927152733365356793786943448276510968632528484201374662555485181918359448317993018046374537504958814823903745505331456802965547933694763502731145818512616819394768751260603357269684576018290038191398291164349210270943089345406285373578828901307650519867653414667548445715401327991979025257741058231860633082687686038409015087261003710431815419907062906311277628160597607335053627495863206431535819861529556673731437822206700823322712115874192628561196167940539063669764894096354190444191479190965888341401131255731067306187787234255806804877766669778937319512166348150806313699093581089407914538818313316357809359077949135208562173875611212549159374611320512210852530533353775721788527273868831626807840987567183510495791963285742420304965250209334311815032924931416775524348201847908040897284202875686877521831566010089813169360986239354173511458376396637741752005481564811464548492215697333995197925936646958191821659534503638707110417207754840036003489653398689706158355466350220411162866195909279790864228143563704574544244945700803803674786601149524570792645370699400521160298374588071665591548434198399083832790489189478760963867071612936829523225959366658517572682912319304493764169814606233769029118939058486246135844831444287910522368096084476197897420289720993111359483176743750935681588659835836213090226490761873579144737624881900869705628616121717211176273311277346031431320654797174986965446591695743753625714349658130883977530871567248145893434753643809090755370491503809992300915776223840814847529976155949971057269919885745794443122647413553162415460514909323063359338446791722871512075373947310856870219102449127670832617696798546745805278441939126671075549166739470956825443408025694527039885083827870747923877075674730852023998010969168705093506039744539960824748389874085647724224705417702346527864420896710969818356318374766345216598237692373446561108910544317216342170698023305169579016045773115450035817857350582610603642414057236345876606514746542432669331671089872043645608399575639708078494620313277739217571307068705957646977593226420066716331627866083693634751774319434125085473339066939298366359429203000552333058965470479128175135956042175613860931345828496528267022676551587679745473429205833559668408941317377736962774639324884712061021018271009920066333888490098111867106092540972327625863848944028159847568945913408736369097365312148591932800527801951387814287127273667335524072842576558322757466445226976667815181241666336574013606562572579970864593553011387732685177673837066657455626473235092215055364407558379289149065842485454991169995410227624814633652490045525945296784077525265540781016256617902381272356142326351712516406643108688872278402578047383638066122970861696051691461205868785645457244246413709946005002531811307200276781924612760633069464380622612567718967696682476374582948003396956521571757268525276020486713130548837039015982150493925166569244549605805046078331969189230589444085963746675088172455473216584967618950772020737793402635877171358405889885145997534037124506787849432461825302439965205719454761225308223266195193086390735024141436370332542200709849939962128912449953311763290406389437150488303783978515719662218187830794917135333598462978742613560478297150568783069628652809722875395424581778567006325512512167014759692135329006762403471302117030482857637160871974587044148130008913547424193858274037406844754607636370659689688658089029005652527967354667884814683117247921086233939189052966491162278747530526739382034913840219722057724102039154155269707636426017562399740440826691499211605774215451624202834652027117692353561989907035093945547636078775332384878509096945733301698951463483081530179989789163118700104757654827678884507733543315961793478283061186840600379578045301908988155304296046453769519098963787786185852193112005859098073084948227182273479927529764688102908267609414872577459309385628355727177168880538403939268302529150779925805751168673701830101074530834790921085019892528942784230686144568381568673322203804388795203138754864364408398719769305204129396193704547196506399856111932824356250971848358879444584089027518744772297009445583689893935612984204131202461758266678511948571681554533251384825815757709661713944191959010684835866841763527201193504510577864449960641930439852564023677117291315890989997823199962751757313051784772546054903155188772227489016176828145928829234699478065251254366036782516257536410474303289674976715638846049535198928354865416398396452418335936236121406906105797836354624772099413681973230671015773297372749474898459525395930629523734143786938304971992055251935504897156254384401201595950417333706000388047675668145960274567605609715924780106317065603362326003181308220951176910060033282312227547751866778957913486763879753863191421762366584856584581953933553826602864192214402974882538669111009296135006217602806465105968586286893830416713099957983810347618968908286299051114496959239251108403189570132362430002342993313642617204733223125881269242113748656491841955940891344844562116978267890209792053562906425724069936091220590884256852005829686841446379792679975229526157933951751844188159257980244699944127060375243978965017498360472980531396196754748563279210039116799679839371181488996597263913772915611476524815575093653442665272199111016052957990241084996796453578016974793596125143947603361163681497565257072002994689387414978444669025568865870622697654031821315624104566382658662175890794345648262734095965424981356976053991737610160151884091219737332511760384496122374805558390022178278933888271147964788192879572375835077676978794875229696999995940004745784634216577262535127281748942891925758359379137271816122107837325205290631016448948715114710431447123246132156564502082310972361304119923648249681881977970340871124683523409399444609582262187051411790674238355997405960459071450053395997427104793812209018879103566387355441211799926647601206856002988023884471076754205571767429381246099922748130873787732878228479474610363032503756610052916966709188099719617349823654518849824731907944926824252022994940662068447684521349525538272514599624099024023415926689683499982407813271623953156634637127954775308292447918889744430871296091119515556493610568873347957836560938613336598424392467997250486962087716084865082860522552875112530261147412357271778654781556063420338039380199537600039580679936335795338007011435866371427216405604701897926446489688015929707802001976107246236646481219959028927628503944089562013580087276239597673849869266206771853414260624566737381442164858489668354916018342202818172595700211982670161078738244227398466984935124213215090772715515159686273610572595229956732359224224417039687293646485175136831144817592646972456482019301469863636603646026287376348970943457309220411761306937958206193678590225866870035733249250813489608137158413788908943246754194371048164441077055492704341660184228598288618433369546210059495324875831060046992164639416483402838050340578605219177459075861062866292295966207262851558749453080476712263822739848589423966566663316067166234684066576776934999093664892093195405534378719855600412190773642327072740084705746539258073140658577787928202585494123955991126350447325313163800794756769384983317272251623408358253202540530641558501269178073235246762551350169595909693643345263465244863263783905633586702293096343349559704995927506237376649034881976905121804484501687706138192266353479574031895047416633860556540034565039362766758149047246523183312406271486645380386135853067848590420336195836837312780353828528307040367622785452934039371435939041981253432104141468781734537028788343385600445893932206463196335705750529446257959560914805640451405662519618970540370669218453047404815770580809122172355969335051587610683717944245401326649043633738511216450987662519969027125479166425878779971116220342112668601856582483848563933294615580731834465675929173539030107125803014271132718257247006100513375183603191077849491764283543551817911128361501747411797436603424582816742260931608263002806891687237691100146302633607432827105990186486749864711011421148885496765666710987379080061882152093411555629036287628922784013007765203168744537635396924630234833504372015856673568840318186519381467044606779771853596125042602281296427052566820329480284820390600980392065341777548804797237531038108391009515894096643109010452425989690952962997278288565390271689263447353278037275912810507522816745246380023439423725033571145672241846399498653667949690861879788443647431891649066906812326574440129150647016671963333557102568689668071875563814613135569836859048145145657420591027773609815438084890027906068069698215375980003004057331145311021970524183671494065597006308351658788521702235309652023497512623965467719119417235356374653499620545719127204047119911195863098689317659374377538862027560640572438798952050668577744809613267247670836609627950969891616682242467553486551495522065536320663146010062862341741589873069972965227204601598453667676965485049713284410519611718617480011906665066915763697037902070543033762224110446203513924987744328895047859563155176106331286617205115167392541792095510589482473063954109178137043216521435237977445827271045877854792791158491092723959819564779380831923921239137842388239791576565771947990684673497921885100457776043744343276366435536351070790243557342276589571783515959311972099815167462884192576971582002234689801958686169908776303841929537409571637928960045700383095633730248379217623142678494918076018091921821747165838527482308260787379529344822784941650138092753951928133440051038385849269700734025638814239449911548369690158961641586444181033427494661038174596155881590092865493200023486763016944334789192197212390788487041333666286384144040993881218619807629190414234765123389050735932472298969635526141376613306560500812384646891586793760915893131208964856130638035415247434827838149284033888542262614734148727438560344300601421271481811230881181872120647982166071734059205998868311457747499354625832485702677639347096498933933857174103735519033002025236126786518653179800562714731383393360121423075471510273474288560194589328163793072206837792829209660219126480949092977555594262128993903888815292147533893946119761856457200782151858805032180429793007972742582094777920293135487786292088976102061579283124147297755686730182995709121407497228855923687801795384634807535705920978049974624398102185185043952660902290730389613719495802990255471171505412607900512313671684189948440031291284088159584673940345133945111745390462382613042678423821943016889699818139078489919270193526105201941323303583582973342201884659280945027980056733539767703754618011607851800452399622262924484281395910652130249065787709337548110000769738221494788838402847465462650050462467855383234415624790119910466365314821392437991736284614143660909992289065835701925736263763070815136054716171186240973291760782359538180778173808956483163789112339578612047154402907069995219946476130641684199963275385557657556031422546008519774155503868189527284253251638890335961171518628905981045164751511057672914348741985775617175160920850097130784295622736678023314448997009343075028220101639536279274793818588320837192629925322210426075423412398884261979353749060849893911329572642254214557953383050087426121071550800436054014025606283686461221331911976661999600803604233155294120483466205017369802884315324456676055080822209076930692751386364217076089802032900364530333542321942007442216291121526278036454883114695379493832038434151334630791406894377309873524482107448423969767105802828792373001340417967085022047788654452885182687389457229437572902987577208493177391714976490309487238050014423719085823847613791062339560898439341204899792224955026896990479265185593673458819823459135388634020708381840018699058189958814163499389587930590437645687086323429233368301049040262030805341541006268932426937197721263043093776053305599393839085218260177814861485834379119354506304230047027567771381747389948363747975318827601621265502613063011348867934191376397603292255071557146441350737010312086715350623140461887335923674977766876209630865514746919745149712207733169237740562619246798292219007669507714767469778530328883660629984654736940916753759187917761511690008548448984171586541813179677245227017012351035760454810017912419402625229496116294962965334380434678900796324119336309395391965531253769130702659328486579506038552917880325153539927039443866257584869075800142448111750438169337304379180616797922879833853775432880941124409494831552993847876218345107106159115584939340941369810326289174675751688531787805241028644828626666593151314077332364502736195309175257397827286161301496952696777515263651619106681162323580481181627335183270778528091113739306967372563874874118549372047525341866346722990196587000123018587933850156101162372474123685310616939007919178311057218071072645929499787558770448210180502289616678050397717187690552600884998594361070325931219594085579229506573435701016434380530824084203753645501048079476939633532533894831642650712534246925505126026562473737562723328375827076878517032085592436477263776063178871255242674213005191801838987772798160928971172399891630322029922873108200615491682832671285179473989571986680737782271725811578821448256451468442715006376047063143595419303666454180247973635918445348227775543711151240004666253196281332074401638477755220804134506023788268042845455674167096112682094650614871665999844475124137541766420792680530730011540011730527690910640815755993413627333678850493912694116072732082218011435406885274242992572831561868776547787069093601514854239911109892833512810977249948967559655986709304914932214279982740793619312320500183251987391896350464485334952451516902227134980525005772786247101541148911908395980436818653911744229562925521629871080476533119791233699932748312859909596705932445071572357580801744777343861749022933919358077298020081128962929719850582644407237319249046961379699525204483702099001757050140560580680775421888322305212462509819319066065777923584252607917560009222718714550773553213098395418756050180118535787236433202522933465425302471747336380926254276934722506787447942663662196020084426056817756049636859594557030579382708069775736866142483427569964328376683219374896924882768056444962312949254206748004536843429660264838961801754391248341518951665750235891674696958301406385082542580460102587452437456311670778053738019915534768925089201930769820734769326559149443689628141156887390553988590720793193575369162229311739735709639801467313458877500200179739589916058725823867722467889793419831490465112941845573965783081901155332739906174519090488812143188849906829536563806452419944325355074980466718309222650090755046772063413526591995032789901836828375014370999405673725191446123462525596463519749135656625432624548117995309663238905854989908163082199425233235189731913637343966491389642540233041492731402924246329363194012577337679716273457591033363177556802062975053937650937707379977532696563406690887164146108860910243935114267802680416455398994191541105503823843088363385915762384769154027951993888304890477361219916032788137660609619990513082508568277524207644728571997585852928099470367044814045514096480712991836221370613297053631017272511296729845752145200896952210173594241891020357021815507165917270974296021498153382891273965190165027802530115786874831892301217011540080480105224236634702811442909244186955128018985299687606781073810854550783168911557044028317527242519048386181444179149274290092354852623954069429966955066009122030204004614923914384354882006817941036631440914923238951949561503935497069527915093501378039506653834796023439850792972915992218106890016235288053443341363450805998996034008440635880277203017026886478007894162725536195456755845553830324992235552497711441807372514758715983172758056835912490667229873950238438673908663011792154679391575143937689166703570803402170203023208916560203842559635263466809492938279862073459365831320477413503561872396002563396983698644672462108531663005733199672629508970340981535910912996421458031036330718371663465361763214267313773471215025591791623922894865263716660041940964708357947663266431793124627259970812351796727775748227933247909938151357457287114073244147305877201215861449798807905036836696651282730043739291898282783513512457545193966244710063341166250954983754854606226569672073596452674241577635042771145436184292747856707112663600157559090609800951096451170604896876459184341760322416870683131068054282040461332201007577604020897505767276095896469038768139136895077046464481089476346112774056858633900145016330987955945257341707155862035635526873785630218441571253759248521376439984791321874863942061767334700503307699994873641987958317943434123755016843546149685409787706130220128649443065942872758307007457250415996837700331911151294155257311510411102696303519964887867432793138127143124097725883891556030412445159488916412569905363950409981603202331447856970565153941546790144193857586238654505503312521175741553008457741607092740078640539941381884503358420670553243226570114789352815798515535629692040505700458810910104027263356220588670577347549777468540288679443516530653011173704660079482793677848396553190761061738494417513613689332646489985749369250010891108325768660343065345693760886029703396850349095761672203372536333036810427804896908317058649535021500237008565075231357834246998585423221729613192128056012779209680853384146647443340458561813652118518986802004148942201608832132430827236839513457306248997828783897335231482055927551594884208312828573134967990515654436528823030073777177610073606474786098008778358233158276955986991959178028375397983256337108856201556504650703060773680434622608086431434905240009737608942916879928536284641448507521149195765322220738440879944909944290285376108835932065298265844120308456829631142360171578336678160013967918681770114730084194273375428369480271196029151825615860045115349018280389706319113605004219157754136904502907581705589999620579854197930297593583628764330035714533138301194294503383528840117176605394646037306004443763323160969899249471880353126822003116938676019216929053440359010808112520170297993157501174271238165560081421113221705764650633917267401291926472331864792305942484508120258773482215116419227809760332727338363332186462486451582359670640378725014868097950083685690823018135714531646869435710806972623305527076940866594150783944029632098503685333971611092259806509477103915243133733785330497776731752067063627652070595326026310352681015964028656173721893194394685089435864187074974378282631485042440525722861211234402588072576604820875675179558905538366334251808030967010978820621746518525846589238140236291075905112207140841096915166217984292856066848105703662968165387028635295762567840669352672607083621534039756025314568734273949918795411404508178619420187180470827052620417846878223735761704366253884083714983473923079328286862083737864798805089033669775558277070645805553182583920805456497747287995091886253977136197708760105176220526587019705739368958389212599449280138372671483016746097872246821389975088402592536590638065194777427626597147032890042781503415819001033361490001340391715870161057475135291338437287041788177487345720425734645418723939991617251118784643431864518200869726580890813728477329267375950303985678876436875228574029721982967253591726926481165969833639617947210860750245579772521926645444036394340899838874309449537317072278244634237690277635071983863302873104438279451464539597962028359716304990324325376310308994308244562600104516786915242200082245347857486495730394248238444785308110334147664888705352926198931796329912981578211993108262600967591844288314476940049713208025448197043314868186392842070402903128459069469990119967118998481495089468268247054206285228367101906768953431401144341414647788789389234192638494108092414737174431015017238035917921749340753685857587572939149497420016660825423949052042372372115839972429231452988219112542079145263917940072109713199306113711768492982965766857132380209424232443469279967857535784218237474017607890238628911638221609498256596566151675031638316439788120639468816152324722666360868205304786137079696034110458717269285756048892109085075611129443743327567111344986028019990520578531731365438279245020464332034139785055260722809793958519597284797837701498335359306658587621765267550401262779892204483155394286294896444580125799213394418444373453945129356013684878263777391377369930332733890414595481100170342655952284058358070625500676284065184952511802013987108660536304444527919682211383800039166314953047814204677266008821886669047323160331337657306453608432294795498232449645411853136372369575254383712568870432764832178914512584047279030647992069081381541547248407647011128399585066098745605124720325104829273553726194913842445786662294677084496104835063581151761601840592538845738026528658244850989026215827137371590421934774928490637316214728471149321307622178510644401040318267391637747539714615287092868336904350605583827789298030729129707048453897872432067266962534497892139806033246163425974626599845229202591766994934544253563107267959915589088316687443124942983852823550263037410461159492184274541756136772262239313917032032670472298703670075905947520853847676755616259522689680641971308387145325368396429711038334017465860404007619725237789717870136690357630582795507518477404607129087554685581358005795993404538251307710640647596601817928463612223045922694116264422166138708379449900133472223123456820172795832944490416171418239723739675748883790845497299817760555490451389580384023749447103772729864331534032689037267679417621791061834114434383940764332207209364526110884264904988216704878644240048287565513425333128528194849983169012522526199193579009839486519670888695624493723240956674399817444569613607195222671792783954589130143485805339090519268804718787045313896201075021264763669894909350141092819909167527232235335205350427079114292354591354037323266147208725838321773306685587372959514502219909018622403407164999968211726926427875521486730608346715511466380964676567789338250763241634419736317530187124165061216198797547862993629215786922494323676534696946846253430674569768988073225914318015761150672027504060981620592474354347617169822102477921614214218417100283951326457918997912485053832852531196093285122888025944459372247586659337764850613442719872140353048047594546594666931832698639213230989001058300817051886689949679325111337083309051539672653178802981343872175795945524188716334034171518089975507740091893295082659763381104288851923206693804492721747979709822664728906845167741929860444191849889562443762456046034477933977972471328018188710895022514004609644476647915138140880290788337477021093220780610168148688114603415363551283038976362613454878624512642105460398576936094599886646788390592879971661633844514691909016218599437223026962522528380458403516786083374214202821682789020516282364754579157717763266899304233848831762611863861108234352809169848054230762026805255397892682246710392427168131425838242831801532730605986087999723806559210648495318662262894642315745376195906179406968777823402132499008237994294947022375973664576327686635011732520556459695039655811376076312179461473786257869167110192385676915842192288997618528455645815498166145623002519397740886513877950849671636869135016501667425855118547732348696995842942514360239603250628415886861407029959983307696376956992232682068340440958193032339266786711600839142762405636563231108258008148105596524554275238570669161194840936010830727802707609115958625475248074938665404997087344211205361922906890815439605596250478696092862108043719496089983699268682194163830272764916190778612439172268289904238665606156846271183856261865621863729872152711912509753102682609393692763746480583074956088364609857420905304551331487794953920187976388772833048485002776158625032697791982893354886996449578372729092800249982296231307196643714835152198159925902101485763212007009604968880834037931775218509124093750151361746732240353271985202482845582257240869197030170318013991729219646281031284356128736930202253526789069658993812483564208111179783008535412861568254672919781807342610511179560852576205694904403665931497017574733575656156442203486990113926247422211167686602636941513888617804431682399538427189709754831525191194780564275514267387532317569609491627224005531806370373819453423998441373463159329541799903490099827908939899970898214683468845482930774188872029540562419975834546602337538577040508777518057521354842922178900048762271739582648961382512519729796461837503393960594913813234983622608091234495284204848621794092660342242628096318306278135220987594585834003615119592079484419364306291939077772515531947488239701052782009278146470357405665292711391894242644776060939539037552730205966170390184827077941417457971663949512305655551104865726026567813917093797347918683934132584758251409809844415988936857112951965276617809244870249360297183219777715040492015531883927830603265470104913904954035281499688320989711794081993764395261973222497213092493499614443875023481748605529320383079450540125786857339663559721377308433717556658719288524342677976596222272281849477279247599509107561511275464967893201221460210232808056332516275472560355499426430899733951842518284898670865497564071615028680168241948052284681539759153450393988229089047581230256913280153519488232717949445578780289728787013489497212599994738269640460218079884866765242638295707688429170137427414287082044308933418190097462746009612919305066710926851743996001829557192786403509069169292139623060384009563348058461316586411301225491741688985044249559540192867732665931051297568087613264226180507464892598773246340834797093319556289365051344623822233271877376875440467531837317844842709903766091719721054813398804892951137872231640625585408463459567548051974948985009277441438151743118857871184805677801338501753647038087381817471055267082723722086141108584271401313533078060361798477507827559241633075795394732970573858987674834165905579273247064159953349851989089215948049876206318849693126195045429998806847341007961908839507059835797023851947298548751447097249449636589870159623571020109119491140803484359845135507976382314598048737801847937676989420910796441967569424501096150272456963514282772573464447532757677069396783934319777217813730056364812430182894597406804247986082170401233346812731009039291319489789815383929494955367899999113892932791665304998783997333565709880063136594282925705924511133903873754068793253196824180565947370227899189473983130094797146256402204989196294798836606112912557708034459706722549124434662518721599153318428924236631511489857537998153691638916313536044944805263316034087711629232495023044078507264355386225918243917120166536804436655234414757138427673420951414197257579480570896833857057578585571629255750789864113057669382604987835263499480761529765569569872286517557648680172019920757008983673504338656952448482058466104355230690776055299433632908891059273754518917809253149004398645183179789318572223020129738786601997581190841926797516663663171993334476570533473728710228479786611737867504236253907202190167956494561915533680751573503791787657904060682593755702498990779888575605616897506733127429486137872159750907893371494679732291178635390698911374041425356003645761398761819379518865532601589493695368573030343419198465937017694912624431585819351292639163963214819334360319786283698670328533056854346778877574499904249731728173629783981458306340093957628772437711475665284063472532989652507646352627247225537465634549771262443584693121836929649188504053952382931877878769506534385104424181401081905471294885844007684293652330757538303070029213270791748140350175678641450825152718660736257787978711628616463085894021751640731895015527834306837189440340130123791935864426253333262127162261192533371664854683472533017784606674790181964850260089574451293179175881123583921454907976925159278332693759111919344620925066941793673775227797008819943152884591910987307873486912845465949099929707937842616535450848118001915589528625417143099552171284360530557082203297777066256794516394808057084589587814416195901649585506653849318760122298170085889984506447664948008662598868897876366736960587158297343972930416372163021206177602369437610872783234636336007397892138664047399002285145751244072557013329811512425255228842689695781677470391369668685179066833367569007657967923060394272018926343736690052128217064484013021898596941362328940397677463844167179517756591301830234792345823927258199233120191867422211872599316104968744015967784606937595748522038655056459695204520862414287023055203238619521298724200109202175448638061095364204823438572728373259997996603995174042968028476259707054420057133614464060038967564891864531549084917832257336019461188570780010886648553789906434178309278081867894182624166633406937449157916112833951742747134454137222506278265715489743441006878404225674816456049048254798315643821661631221013766261793652816761892430868864062983004541683812415742291439395799401399501741124364962984671739410303269014134392161231539270245436144793319078141957514435328542622034730000457036262338569495536125231111423739242845815520527344002209845736267208738659277030513724517712718469706537726357178128755954586511873006952343669898049304801717750657475927441116278249137446377131808652059557540093434259546620537192104465468259127423051999139116915361408943297969210027808532946447853270629368836683163383427456663021546319567105321718880459474239600588826533145209163622746366342492218426049151645954156882915979467575663390354395348360620547821557860541641049430521841882181342563804005048039759592615917893128339987121576031374028026730572214650267721360803233457050194084452725077792704915481550697789259923123306085668431922359226511822614737231359679034651488410759906127603944129387461208371042811248244822788024606904744444595619998322518207743984285629692658199072440427952878504624174186392361630371343539646152042298349104407935445277355840007653349473669471510998426430811787268267809650515469863247509833970640446350360611907973350584021863278164002483193213524130584800537508889048192552950770797968491425189773327165542147720100099805440516626201240999689815957998231442333404639455796958412764515772397126830337326114048718536335277673140733369763124940106406888906566180688471251239420636326248617676530395875182556126540382098811119895930245634456079113394105256324050953145716837641773606192859199827356198948640967313279642207921885845109775603920026941705833329388215135575758265121113161554696567406717532464406943122818659161842035711091939771852988951123973419306271785559186500529686795534171683729431412970369208315424306845497674990277156488749359164781581812845957565842973632285128941914386322420774039251754160763514398774746581510760807894337005525150243268920453441168689347918460570422135556653009462106296905956294365253951200473666549445015517548682724600126730391990553739735880267686739941933928287278747713758918925390175807019845700912792277730162475742576933541743700356399740166525193054184261178700147401352715115374821293482560056918811984330392173131824897654156612021384817627464271186829622049041201184106755035747009291277626252297285199622503883713391216769111480827453511219554439524862594790807733602459647023947278089660670280518601710805860168962300546239658473519391325777048381022662726970925855223737079274144570632120835495045359871712800286825907256511739133412658288776782049771734102546873080313341347157441534996105752142348144997479581577795511808458940287254514008388395646022170925831761839832850800153283933607302374391119509437058105803806545939229220370628322824727211781984978308964721827343795734669685103417964601742418385743420748483071528502043030639367369002311302775087759709564461683216673107661368258505345607003686376053667518249977116305182407694220619521404558722980929832253105412906408779215779599522088842889337533148025091080159074110160234281001762685756495182005322243196635940626971741453235945551169342090150928113494569039968941319804789882201007291739983407699732883867772745477510941049189258717860247777366749778712710143273444246260285279646497825264806387554497839052496428779875564541139357364402962168663229662132906906143643576962780453688219534587852574000557363702176765525844164558446775450840543162523037280537243319943332410785014687143098051942431829610278201486671460454720115441589631132368316477631262900295622542997287659534759314017080322152816034628168690891490001927462201054579808304083825282985668099374506230560989178663609306172664942139345045682891914468640580915526748334639990040862819368189766444599620770970246348812117914513206363359081380931066815425299861008188457374323991665743766277629636239180430458918062505863560205101653937849353032970579876330588553320309212833720580964326025941738624535909710180796635035628830703852041168784759710232493444286573342635388189342825899036194024311918299610181912014377182839467414677571523190707064431151649922100197946257823560870618543569277750864920580144907019462275908144044430680011690871651171598867348040079306548655703446071096242004147109120520245048327413688395805789205609139465243904880324289071954300407690764170069070279477023009109532545679669930332623958074273734076683132522865833738809472681480703631701194402874346618311454601055346368306838665668985308449974483387624716307823968921049824175824176806607621959779881671128772761995536006889107832303979607106495727223085313921439251693738858779238859475767808890318216034178716668655075602366059241351750967053202252364114418397535313048493306136433171841048196316661578897517991741356917864062666509014728380624375720553385258500199318359541439417525509302955997258236338971625452426253184879057483060948410539909632656208729532335469129472289505784616037722530006790018306001588217212880613515964710585950962875914215377149492341133164177050083656934360143830892131445291239317081094906644885587681002358593454154982918427380708025983815414261260117468037803491971847194401045467516048232700739808571121735108527534827096758334162080781539791588885781447619544757740509629274540666457495197770032861557360154662637523719230375956164600014631173240246049317515306599058238353392332705209361166657210941903134260981816906250303754199029308761577046057970659983324756915293277064867494089716093682979228371020116209650992818142257149228512599227920489850365524754605847615303543812950220201746419095493191026662183203042352958518672748195593459278211092090084719007494792343546778323789857950054324494237092008008598673501681520842175339496120762339985608016132622289093074984097011241463988342950435030041594461896660187794860375022344385365152049840285085811314338178093667130300571318690170003872981540275279061187416502454284373134794308414122935801352722702762892635364681149476528161359521990863712170728842658226658835710803733109990017164661250205068479581538259965457825215359747581300258508253300857649158204952033973312112668192649295572277110390757396477092865495037640412860248954183508018041211614003582346887730358285196461648487382928655596491271180996540283824046977031584699916575607637957981834123439132497090679371137694672696633054738297946254654361916601830258652252340908340412678003509975578304377996644896320075023193847510510007915891027587735921774342374227675879844699934573297507310752919071658307187518562476295496413188591214831128954696336781494429725183285050175388986307146651089499032237206198281252952152152421578120330153656365037047396023138378793392290910654392985926025614871572371991095849999857303725097442946919405868982028667326293467817415948325487054055834145875137028273596405639123882304366562273616707556461163566196908548398770928944030442053485596645549516890191878679127031315291530187240586503595820337972660207735413309789294750400037364780713698657667551105978616580306972983828265735130030717753214374965828750706044219244580477705992457287800534974973959416117760100105083533872339156168506141141716104829220091975854658552625417055730730721498734991516406448936123032056498393789500327568635082434615638601269641514083683635772978277981355281730052234903244893893109478052586530638684808729798932668295623221482524765186891739028473231018885778238210472296145711556432795756836566914024673926249460741297457217888388256473151555922736656631665824248799927744290900607991489495567368743419302013450049344951035936128878717296642794544623497516061682522793611194897793935858040648197799655996357541715800926324859471008674414881419881344313955807869445792926919610222026756255944776563637859105599238150126739751787467715950566273843236449248787287140024910806246590102669989842453211768322583805008370190558109833421386786464971593851111048901883890255836654511845632726648493050727318306956032627910981898026862990360020014012239097332683812244559398151573314936286377807704922499945986830646833340042683057009118743902124651939828553571773705915437283636216891319756885434339831372072156905608134926814313030576888999846320028081469999469072052047801082740770287456332571811441400344223924419469271140291641586389350442761089565299806264191221641026711208142445326048170475688994522926432955020685278835067378099823110151496635391334489033503872358735855539537416237643937768154066182918518144808966376615215775596909539552861068241379136588113874959085523180302375804387163926174769687997531704862823815070266148221140925719560811877771104325404916610199849940231494900754417902007943790023101151917965346611014085239412432465920745676759744219327746270217380197747605774436226230979854377893439286887478817362963555496370287373636945857020927534345898679980221509112967099700681279101590560594287447459295668135984476512379205175353225382275043214004423542425616454220425490606149807619011714528521989135776285273251823996412049877970299947931814912261629737098516501933343792578156038280708897398350484291816876807187584746393666892161478835769715837095766385589925268281741610072386016915458918636778268568445296188458103806982167247787233052373466295170332680873348032401155244328801858667651518401469545551533922448481111369422094471647482068192802595526244095052940545668131952276813650497868783866388048352355210340516082210633553280238816884117507924352982285270174014737675323186414235475733694735599830599039711699076862239759749669063734072908188373628326049918489552690720725963096955725292728518819703021852769110180417179567358453814541527170041579758188321334604203685703539388481687569480355256222128625228179103369634102853791023344082768597338226764784976737518891706468680518012206602674019694443301915136769960306841035384290827974313818635493155626028399934366191609667711928692877428062974519193672649694944355106738307418410323128521495218402426892345908885714477247025664859659722680027780453928797877862821092257889966056355660791983082647764650143841700203767745946462191434397632087496636603067674040827072774624163938164666691420567242232218208175410308929125141552197637515611557654430107370750475560544047516956650734288240651636110989014158049592569597133791705780613709674328853541094329336741308893513780837628604887452271639148299195554303325270845300923870295013382563608239568658077581122638876725683245447257429035145509604196452988707241977893042719680784977344619339516052251253370945176762414857760315308087517979085896006746186372576696071119501716334481525103875770271273915518529746081017809516609501542016288674359184106791637157431560598096642940704785433538989136672016412716141310554452974143609805991671183428457961000333587989150870017277956903181529192510697354070498227057375394814139649914025102158216515442596778470866179386052516878170613238404878400653593586788330080751622931189311283957969896507707760435863820558972374802867076696174615397822515556761169348170644913245100287814944260926761273754197139340490156492174326133989682700528181671938700506444835848962621289588660803342109845571330340050743244901049649804284575896501199962615291204098050650444999591148620191821424153296359284277637786783058081365259079216535529347817138432252287010493083510821460246498849987926035471161957554292266428748755377749654959853359690409310128525448191838769937228932791913911181656420076914054538549341834554725618221082807749368172339222686180468881824686088453775874304341295345623442286451773979167495243910219654714508156118477788897176317433596547373194243781007186759135443890973322305089680351804498480949704382300577646969165690566415696515489989856508217687784013347290551064619236942955747186795977872335323117249976915528626023350441215494783733187867531871717144972961316150905632375337849293182210386924675055523168973020951262688445457066370717615418459945038049431795085696807486417558129797200465171578476455595651507665445607898518808576763026367440139986420385372047524380061536765550265894887506289224574721415777286872771167112517776703814247565344255268725613534328892822356720746932438535344004419428043096032499959300408894039589677585473182261513044041364703597003591186942522282632307777746450322350372076796049442441900460700665392068195073296715616144665202899695746919075434639434796760220427456834019162175725132173967987826342941182052783969295951929576552065428264521109561760666773537705269414930533805895118889690760553927902258325983444491687377023036456285542500502982435847250363064088156164693152517861538370471063786114874169653974081595473798955605035517996728311617860588165332534958205881982659904449337155260338038828463708466511006579891515779437491869193359175475290564161265916680628702343776369931203475717263992780055296115248173627619612753961568055977451786813399753343435835035254023760369252702880360986018906136220980199281766179136038206835903404591573434027252864675765517532060219002623184722841492782541080376273453146036023092074144914594918135958679973832954432928762467481084365213012960363923722926149273514313016372138779731341963048716253265906093235050565078012354716203850948839344029690327671260695562523438501429702832862392702595275759871703716892386357471765112808760295831032659229438309420487292870732867328926089804285866831599311605374564011985921284081027331568181612799699473146487147154470735503180203002175449213964026606924996795714750815019889362600318819296053805115443468289611018192816481123701462591113681876389835904139261991186762310002512981501239470441169406699356022767333215468152052419511404453737594042402682183378221135026514163687957367196010329658973502248480402563116950154358024426372340706337802414193934025595905745651077215343895346109504916016546868872264634929096243748767114735164315257454357467113884350977964419892220799311035490133591694225617688780078529152268375458749964608693222265579721572583192722454800696758548252784114652018719505439464582581149981400160521459415242108934811112683047179449639049584696676377379081956031968301145063255903782319446225371515933524502789958844886331003410694411643731056584882576455349641036188039936860442309866030784797533387556033088155944175001270482274071780747618797396973292147494143619427332328015693860730908311052010956068870264903376750457507532523304171551457863613155850890387146537263288836087052037567716719250532097524007086643627049113374097341089174427051641594076520273682283159424578588386596124842909334101891503462079468896229396008349930117936815105659272449075228050626720558089347712843315860053252365320127444112895795796433470008821561475372337678126626783740551429840763085937031534042678817111657561391527125837122693718057864899098448302760824794508886251083836389774647885829966927502482150988150409756911729985352835394615100381172488194600529050667297466904515196631164222832009985535058438252938670872006436911075651487244975530996667657475637764267366615341873460682257702596432444746216855661064784295172055660690753055166819219126539703029651812988873971290137781527127274408766913594109328804439815545847717044487845800399933284183391555333440776927250885255668724400874919900703827475156940916263267643968346620208048237072367021758125863981660932464623686655349136799952571611513994493968372432166157813727648466402241672819395462578103846446418446677905684839820994438628094954672834774180320900226303384259771066272812998191948481625945087320469032452414100413547182643304492483006026045000239706586226217668365556867112038457387989564227885504082232560350481544295195285895015495498777307304346481929204855632357246632540208223268536798237047639865785767478371925648510931734103344138395591509079985265062331460975746549663043967357167819379930946830299708883190689235544163105808279548341250433808683709557400884694053049409094460102911368361189516710429313606393026641358313971808649161076886927085867994124439491913998491824664288188108014977425649897862450983462570253584541141714619553651816531844115566541099567242351943253441769071709306101636866555645326091487445315785258894549451481142057911812015229501477898395843998063602257465422124191628849192464827426111343978572935279232373850446115150342980902648761727549392770325662069910302093184580995126582784502424635237287553809044154284981912907602674906708812801993412381888269523893142229121429861178699148187174651351011616489728428138552233582030058612542666412087746649225975849464194753700798713998639951057722413500628214838628632636529084281279832513386050654664230827957165687952776281390363956385135292799819006512852788367971311979575294528385911879055683509219159507496232898299141563770398886770106573891814097228549896319988443442762876048488937041405629147721476617770814205502311227947363787145721952657706521326478947823664969319660519309032443260561273997333625379788610265870835093316946543397976010679978062801213810050242167048327044233854557434643329669291262758038411006308243511494444249350940529249291625734624647344621465275441179501609326716000265865465648988196553601326355974971285719572667965203353814179855406049370293407358454800518853171833547859196529056562072599847168847867089273424450943661885204484261972061088932647173318546133654455051010672440770281641491765918520435628441519411544762422007890703154106731661070451280584187380215263526215049236486302515598072301995383617192564932742258274551702731892245418734810095402215438440733413861012042096397069382266461469159060425871754228607787315500018873529432099942931815024784817574980925044913857851726906245428976809378794584825029068807935085432668394464935041726251015305830227758805674234670809734273856914242413588743727504028197123380548772033471915554679355852217592865075804652915322041189732452273306241886779749369382307179329499300858855107399187109533448766981504546971583016388625994494027154053422642164024555315680566956256302983099994475234938045650771245319576571415238600051962197368654661934628973234221763329069697957406366110792345724539744027120418893075215123900535076950658955312325910669134067795490482452942760995881443071912851027365867929733095188338135030701692670145375461544524594407659285224426788662951933559830073634564897497541762499167948327919318345894945970047224518234290292122270358350806872959753185785899772590172218555512205006796852618360476313629942332702953217680936358906213272957423041427030499274974030804169894041484825896059302299892449185468228374468002912418991989496441091121578557624839226636845134049139934933256830127401946523389340476774028689000477784921961421891788415633301657916114399460938817249499949674340028442582196437026600428573743263336437370148777807380817612748692573744279137327607306483105339515319507301126116194013341855163195260522601607597141353486301390169265638443023296938113830643218918329497957248441938611276562066114034478830559790049964533084452297515622799954994558456498932247651409113673972120311735015650474520065170977089005886794175513859623878138257116575489778781623724105720810837586888624431839351693383698105478611308142631760011598410630770158587637945423915341404920362658914968652890913816909415534592947868009119783469602383528880891085868220165509015407795833502357649332372898652495997462630122200890312891058022691165993700800617268188787715421133672392083205236015342593318420033650110727936079008092549545960701762677599423627711882641998839491515709256673339941398474515190442931831438142915773781882376658427929064094544092463446684215559366386062234416360003961198815834819137073284897069771462842345416851746637487992243758593884500065939337969838037340115894372728835375541912693629175140682968148346593081009700179973087504305897939831751016399612599076046274619065268446157335016718557396039651910872595345910039181638629602361655590541708792468884244841651416185274496119125700325823976827855405214100714164021828511458358882788750505949976187194216214514097476255252201566755624013504714821059507114955684986494390433029954038569397649627154480397496795154469559848919194696895044607987643470813680424307066988696109635712116207965339037468592777180146125492854227492247100854707143271390811957070568253659264634953542480725204105883959674287211236192159442074875436039979880167968577759948943142938383067835313284949355652782831923003897999689466540091818300231405149762648295216837188992305107261413177720165752152145122926066543447941280930680544889758383861847949302419244837949900179522832931402842443187478536926444795100893797380581789998825938692574794545374494533235595590537482635713077768385845495884014790999037449695809784572424428112567534302229909828717246990895466366050138212920800477273969051337461214858180822650615533375597405196041896957158612757259222685828910033474549419044203083708954358608550856138401632297504183523297807021462516290048137964403801438353240482911719888250059926267433304419419256199805955814033590289577685094428611255474321906452088157206233528562208502770578932625566500646081827855691771822738468018611568347146531026008848770027958919647505885533558983178151036573235944524051939616907771080298360055404336310314997620521488166266108630486235207307008507897324773652907411000225980011695666098059190244346164376107406472006375954565247235039667843443115029870919678447842985620487761440583622648969412500834779661457895321457311783696312302645827851123752610287043839556931861516375792901147678974420840353350789186551967055502857375952182280107385540184261173964769375434578637990341592083424462316756149568237175434081693122822558266382615473071484021574276620465620140133753738973657696810901735921766336042972236927885404843570252209920266859291115113068580559879456807257039384275523427819107093146251266452206734593541422704505086211255062554464160908185912257410659847094770108496781565977319266624614632999927487880246548793655928420687637344070021684413413528487845036050632417440661688087037749623199171337521964206880359319049849462850297290389923083390801815274707623941265652540359934959902949959188697384332260538071154010072525203309024210253411315523034015936865140328571428704733568995273773024124968523825573077476706528639413669171093258541777114376097373764761941513367187413918391682993534167068745873725549587035090968565071640476363162543041863285136458848688641771704924334720908145792008819570272813668886643474324522683452708812534516699009881847419113557245533232229540099123945534754373446456148769087763456497233401031070208539990890278663710392302802376070525394996169931440654386900772633732909977099859218969941736683214034705036979759434984854981183834967181294562616164310712547711109201255190591404740991958758472515826417925269677291070539356112206318345235453530439604918679380301701276125423099287784896726204945378612266841950745599324797103879821312907013309220141505242714653491866928995155915005442834502211297327588876630565658586864109087296892312062182813818599589569949379122144701418591748935449799277321275791854757077803761946132793987467927255282530811844511843337178053948775793718716323954282287837161728924301548099109074645352144174900386582319178297335089184117061073027725108789053496139610583969083506181519486499887214389386907717959151619385957824296684038242256938452097380673182035421976079973967538132493357307580712189207725851975903056847695639841546034483868625106247445039573327479796458448567359163072476562483451125016097218609059001807520631734730117690270317285316074019337472438724929285389212993112258744234684228776564736995490193687831024434712963567474506195551528749242383236559905943528195264079537539557852622684754998925971905260109702806736680476029902969057449268250467573618671187943972462105765154843875937746909308663712617015005809079460766332974493659341820757849816139002976839412798197646148604812796350577830227736216646120150737129941520031257923591690743337748163110841419622498894960316749264582248905879368005494532398306504957591751699727150338881562495380102013856785530093355427493768811759537625626921198055256474739109527140223985844854980090132640397165426322932427277347678997832288655728911049665388928464571238367099464708657162575852597697121370419717487865376445551292822403534243669879424155664296204881127008375338955180249400182042447530343368974771702496763893284059329763025386777516391980398138624400416023981198857404668141436620767321448556151629477216728525149076878437212636885599317806158481670772318197055839303572683797007120436200592685031223560316863015224041400496567543774724371634401313864462806774540786710780734209120778167428458285108763531992888716358529392261434173393975386847038337304404107839309694534276294487041796160969872608617862151144095090395015037062224629305699088362520580047221964448178723634236118382421282404186052085059199007630139886200472379158040787233660010099814739263923902805419497587972372031163276188294280364785215283706858078084704191660632801643105202482233290272516705770647679689303448502318648656583205772084525603908332353381711576606871737570022506525417814739937867107323807286004225950695866390509300285361013900687256732115368953888911500614035711969631653442743069654070090181637442409421827126814994885288865822967253326961073058146213662314667877908355332157733652852112129229998651080441019117740037472499664143417877516295214868901386598597168623661475131766447282981571584919802711174712626124751993405626330524821842453022318746350067801410012091734994016452042144004461198154379022221605522268622642685020872879362465533612743927714878112567731612135856130812400610251226272768925647293506825891075637277269058408288614497717752243216445868880180190092993761251230439334440208986965266399416792495525798817703709906192126277946443128676893067571475644976207528790005149254887950832885933012424972366582282591654923052005661964277315038976866662213844893323161420301045252216643214112565094521696481473053976716704044962590523577013943368661831140472052662062160923857000642589241569726621421326077783208644200761671709747293251253394827384071678184964245130270225630552600062519577203106086479926830727720690469348321827879044701003057838787624150905906632930065913056998227952141112746071020927783133808867986862079695391159641233604694959954725108929211340159819467622950309026815585148327928718859141995851575960823852075035975992939719420336184797391471334204738336205366840310727825407930303192963415777101438230972887605350414172737428412142270931895848892584869959069878675633907955202676188059480806314062878950889750693102768862551865821093240593680307528294742537872263154627984737730824757150572488026536003626680765137690965803500809212323090256218361272263547105700740308896073489108552599148956245288474229036888118522681293014638761005955749624190863076346714763232232721079800867228369411874109932005946817753028239817641043345135331873235814090288861822473617972111529676216356480237380234003384858421045916721519240230223829478893183054296592955080727151341248141130752011267628625817448338397448534027728588776249585750792826607976517654901743222971771831238205700473262292354182976729349451954540964369067069443730520784443713886148412403402914889480377754229562545226279626013168181771618401106883464523090811813076794029917170261640047575737480495996053602760346040230876711095318157737604720695263272307759853399353044902474457024813544935800464545457870868275435607918784570566145573181702404169941570500788331596005662146107804877390751414531867161589397147799657427659697118964714267543027994784228583669091606013969153827106290939243207969634157177186252219699490193809309698937344930450580137995354993510821520182392291484329519622877089557052009140305727121097632607713303869341405922445000512180996910930765776834495998838355138302157461795673112831106931469259778733003725270510129389736206715704583538503937804435194867704100746724454038533623401106874061478886226436618297692133424067203912032575545620813844992682096623295559489351056474149405888057127198751135052295493341751399243690079432398735940580005842942490315291257096414343695570000358119575340132576613167380682719979594125862181476245233624844287967552244696956171652890057459128375615199838140456328868869569485200090425434393440695973925647856547028324053837569459992082495095563311005972441728846412158541000416676915716320869226348216513812902678766448068039145846498940763884247411802506443126389378099295987117115729472078018650222157048949846284721190657577072989207233736093663036177687673349086358876999203488398776859128864839004689131612126706704148541262270283276347688043694300092969276840502512525769188655566807087007801110843397960534131409929183811341916978890064573027480899667161041731104016780130126675687794980080117488980902816616246715931871722225747295023557053130626126913170071991008848185301148496652577834363432474760365599481893200980453324744378913389668759422127737247046137313854141598695906820285938242279253806480314603811654044689849401465599434449619310818866219590300628094862986414989853541421079349653614553817231779939111500148677604165327993208730548403740977605627867382378759298218132176673690718553915356888102564638618188281779290218922387231381327766027501365767027063694294349230872622128327508984852384581877862191333178922276990990068970729642467893463079135896845140457848252259348597604862605276937647915600573238147658432794891229195051335378765208024401592709441524183780036167103915188273382261629572666163930625204240739809644199227684910861125361043583943338688865884590882811210919626875453733994635588131307155573312408417306985812028286905978626404295520104968297568230629423156621939882039174947039373217890354018312266427856398714493050854385080612565963586153824967508194379147049856386926800977102059818751214762385252251148689180290775703891211013732496169479736381638057952050459815518482688147535575175048687218721359769640376977544851950790558597548548016320986599694239543345792497683695343365349543115578772531146620399274990784717972649499890156123699680113286426817753404600631464685077926348280269336328349151875983119031298660954547677266527822560685719072980217620143840860360974346791014724581816736425029565505851052649615478593193761924713908776766330172192014807032642673562071133524791827045884365254774746603021803104635688365477643874817116202782126331423699210208595393803946185175226797070261869731406667828386073997911419755683769388222224165196607515567957305240319081671601427338112493389017629235066430275529059021302171328559323287050935457514991638001808820271091337581015561607806227870908719429252003698703494466456955655658068940798685697244678681189805403824640079922081947585081213441064959362079766588697829760412211259082629545758940467268561104081235473749955198992636730381470258167096448825460596421499471681504544566776331245930413097730920411836833121807254772572630991558675708646815903836526647678103189632866263609967972227368455813538876474033077421697885984706567337240805409259165308392401973606501915611408870303862530744350928966435711753154442744005728213857966613569319752881774279145678013971385424394865292567054749571521354253809928015594599115604214339968659920088753772169582481876052098809427050310419277924348409754887842508338510190479874143455653017291783782149228023776051137299302946535151374510866927890541112402491719830539754714242117315460770079931986407008256213857005458928043660883648217432128019802766350580809350288087629514399341271690014369548659833893545328762179993517218882677071936949610587548730610996047987180649907689200888225253658274753292916974450117429418798892729293859199778851979599818186835454282108169834943546539780460787860568617304375647522996634462410758211241527226577879708410796401370101394369705574466895334712341227414023858911782740381730191125424493156266948064574694687543061411602003523833018257099484219979192139235911473912043633378012456663947668776069568437634026752202724806480035842692944696146073337734915364620233430387610682448150308577625261784651882704591055041742162268608945209669581664827025153478818742575577918644880484187321706109800918201004270052505584500642819185678500013305581212864147093055309408123975437376909032564079976164991920510052215671213136590116662710382703889169776042862942522316346816232225586457949983221796617983443433649717153549876791410904911919190654390212643383853687694306969792584732921505547047584134557973101001822573831218007284615824378601359406908106343246263835305823871871518528769713964062019964094384397925322139813403448975655128090104296397158820481180080427374583203137532635544996931527333126398441493886763880406475091281875882703398644376663026618152044890564780961977420188012423551555380438013753163384588378066616354103764532288846052340104985008772741152795756311984092247555259086547986954602371538992418979228809737268412411763645995450415122371524791882292347690232432939916058488697020193606170434408035512105509937293997950298908099828849703130392684012034876673842984198739656546415777197467956453798169836251618973340147494921804132679278027562384269572627984782583741613995893263028227313121854663910578647437378719879208556736759505695851674972305090886718398248655814829838076314320695609095802455840823682444981612137412380575650104468915065110720188635321849688889637521505963050458071890888420231176769149792585020282824752476906566859628843903086226104542807269748653325164943380032091340703529009648652309645328557372224708332292309496361654678188205708250302396468544203703099641790646185522652635991161975666252943309471435498627736553973532878929278097862755941480423157293352912448318601647863105431732405333474343881992636487455145514369641787985096291848121502703341001813966050898568586709241574342677162893103547021056796098635784721258710256976176560159109759108935102945180897802687935930365063160228750169735137009239444832566963874233103773077840738290269037529756992144765280700730235805145197235932537543752897189186197622086762800610167750740408185379403451028893196686551421623294241422521375179681134234945266234326929872306929631904462021398686462855587926812249287510669288511349570261015290871404261034129464334814086480936115058759645902368390513170798214551893022914651035030736054493681456563914505611027052679427897689962672248467248025950518956023419095947766783104758744285480051167309698658901584287130627588668682825514192457099663085657835832025310069328064312929419734545925444117546957004154766847422524963861980204388267646735062408383461475134911506403435190595344564730550314710789054826186300549166524416996566367674868649389438743287819445406247752267761021933386585428519157652330832088172679121171315178532357239774238460545657354907366083494370804195641186622143064890390122699499232445083392264968468845486108537017030723473329894320955483846067622588033506128286246203969069029136323082460975983106126697787491390139063496373061149210426323428802331603805727246887326650292728456104153434114860526350877057586921795279658936053173451541800103667540117515423383125281770087776872141422633799961760120362191655612911112074336616469501807062424024125674521349876560668422353629349255476246782360404191215888661309855256272826395393159897985210927993722793392388447083782129199680101490901153495000784497263574099725568421264894923691235738762936826581974103026244808757620335748404009923457864190403808795618885188155528505015948841502703289899881762895944858017444414728307851070917182590400748133952648870558436000565415959713946461819592763026228904886036122487547799874515637997389870450178165745811160406165133851494592905408825059683334405129423694897014311180318436041618952941143003764185698428170150793092071356925739853025361077943971067058596464761110034355462310790715994070539251970101862015711274136733046702805458933897292164479664195461001151282336506059680549684434021497004581701332018554975378463450967596838579070511367278872711842905673615665825195775904703655857977851875474601878010693739739575604164892095032556557517185878689329532306110880543347598906746403478749481452580008256136500754413507273328131533554404262371812645321447488189136297819666190428801916397291088903741916022034556648574719800033670122134328432894011154345611354405538362632618026815051908221891022875747162692510963232947198866714190798738182697116656586571955196856040903335728692438537844503996159372258820348322486277162781411653747110698751344609316238740270817747670131462640527284022680537349377041862342082834832332185895826391831210441317768211173005864166745012957286496052619970663491952422610646654300413718000796580242595683344760469746760044300152475752629676103677094564319226063126934909677248920556008236348360259516332734312428351235170441174792915452957793555554283789620052209411725897748008858258153275732336718441939669759042411635120873723278508458247325032201765843774849094323825969341861682921493624720994341090051671528809222023180689674708325208733702797322092428420173957751873467457259217423599804558977819652725996729714904615361186565437516063915573770853400325848952140454493367783677885779677385147056329866428497501695378300588363287035794697836090226188941534151070738521002661705644653765145712141311300883557131259065125184336892305346429842748067172675604800291686855327576570271823584378242492889465486388982057044577233156661615132356936668604245662219976923623009087066745883293255771841427622569079889401637026395962061384011591652385079842341530025545995118742533123328425696622236437171162869740156576287278417512410487553857516034605089591066144875781401813298921621155688221647089545954162605628777987160489692250383670821548172246531996436699408642322284947917676075066019872043390788889013499326819833098744074676790490819822210527718272871067283912392084743273039253179408843640218976826534045964387782553204950233263480920025090332238136549531417767898794950624884588684527503501631803602427785203547648001692964009489826900210720580182165580579066034013444541866496477104400989297154119999081789361933315655880509978298418162106089841677488603502067955541801872818847145404006380960572515742988539116091615475187875463760209629966687978956593786623651514935720260870960868302572557638363636714225188031948122787067641943366422124906184095125397599121628091708572766846821751662253507643825362042883876116785479916626606512934092793931159601764317545624816555925082064122773203414037890926898908534985561477536700891458084729289814348679687693944124088892162267057695985485002027045771804584424034914455620715809858472699317566556535623638563530995361418430753387295516460353868862610222938528261811253648350120401473706303664287511010480453811865497323440690253982172945935959537490067440499171408538307590661100359869450375195670099992184478043375214536629420173077245183979036989406567268747354819997637611115037982918111797150835038602578550796157937278172030726382532442006038897891745158636454518089375371285713190775223597107300750632176146856165799805642862068912989593716545563920438683115551780458284180420277927137098698531623507474461885920796755173828398058026887952736397269623334818308308083979639645394909736826403014767828160157501787457639017477115405006538525411014211840139713065426451534245986017487568968618092919336228511071293742605647963550201874270698422990228095668658934352756837823124081156812000916784868406296124463170755320365793537392571922354027727941694066569207652230084375302283085095216378434490634286793732380734583270150475493626100850228401008754577184562853865932610471481821149327831150649511202363293282499356017190988632614946048511905927183615537796795106800968941975907924709015979021634723433616485800370127130411812243242197596562390415671073297248203729260307042457243085160875803022795087274219740698742947515932007245362679696900592668303424589230802114297172936297527657580511189056702813792889524507046492803544156753557003018677687399526429318575659230721680039362694253443651026030249489626400000705534953023783013972182792147770964001011600997062200722977450196513786362745325357037756730379440554665330889457273561402400448877913660681130172820596516189707568664442027002638096798638024133566494683728725268132813635512444352255595967729363080180459321629495814347456223147956976362405330680507522972883944662357298086724013650016033218178073971677873204643039646395001352016572509657716585299329582968404282101945389517477507342090534041592168611258231934758927939167792375002113980679869670104557525847569939886864795122428848239829633701916023453771253137718724774001369185560067505074546359744953037210606016548962216899932712599181917674889907352700058443207202411856449753502457610393639797053516557729224589634616327434722723690656893990097878001537642805541105185524194713338348154172231407102153678291459122003883167271414185764054539275144922250834278722363968612299426004495941445238956528547704140421210653227400268788507081291376790156843037778974688111540831240121418610900639375740271821973530554050343221099691130521350110430545799367154995065476529863792414961177134920127991548867104891701454186113724026894697489303965250863508000110474786954126021643295050396799520405724956369291541940552606459155578374310936445534199180677539937083830935071052411573590635760793742656698128279336726526844190916352261077245170127850343098392435718540246970897325350619439090205915958811530201804300274970879136575506182025255521804544485597904359654949828644634938004621712583376568127809109694382036256541047741218308546320337093940081182404171055978956005778468253762771128199523548954476827365434597448277151776388841217135090617061875305188308574872005264138956563874283217232594687633423834481024764402701204805809107164726577100973931736581151414832187345581450191567585854768889440037807863535982768467269097334786583745741268073828075681064108925277877030498787103328160053367790048037915039104024646678033034700756175527848853543116658290197180380196645757315764940095854319650371191237719512512709461809321386675414507635444103743320170149486239411356976594280004904814353005042011264319960908663993278472983652331699545659827261270449971411864168717145361793621038044604342886404271342656779782816531371839131044139590156354303775853041863771357046248548664953695262239086908719544725665154976615171287828924754675198863984631372190998149021511560626473743611820873171104515411301816598544231491558942354519896195456896066859516190575139210438678134644859120106823286586583598452578957985057002835349867193688364537921359613905003189052992371211172188359077319714299847340960680474160025869663362346144066768921855133816448435939845844574745352061749877835258076664240190870450314749874939914747991861078873200996587045008480679246071967985983297447754841100963755581569812089140117893264111166116128638292877832757010824897941780167311946554814277774161680068832767524775709019625625282853608767174499561733687873659417423920656252385344744906315733745893540890387615191663627798932520161290685181545252294341296252642883088320671819552699994756234444310175358158664540042672403772338746618746841005146602783400184963737884778266490445888938436292031502513010609758711488486569923852539767919328544244351725964436494222015863175801470706504507019477785892526549219908572353209821332820708189596279606526377757804992433773273153794468302204721169009500742871354044037818982289380400978485544456032555176222106402310335424875038068071451460786487635826213394239608361982925227058732958588476297037279505568952678321740296654206818386626358568311193672074485488101279769522404902144922851310767002000738673062636838602543572664207677214184573839467560428889448836227872822600812520711131776498582363535019154174918610875953629139777292373349981288847660667512959078965863052434315544897961795806363736435200259158548779044131914706644448426112166849699882491854568747266964045358209915080518260651202279909581648935726341146355528305114028806667042683923120918767998894294433813721731975131860171348926025140270186593938952807719524063695358432434951536759874913102198745387845099817169925576116421403536552847916908339519258521575270996676495103501798563207438160290784818258233794411833433975381450767462925992554597869215575852437882897777001427407087560180624838988819933662757957171697204960454209981367048283225714690415978284964270805878675573548369712325146776771121617387463942139514509520966425000097313970677358372168346479316185007857202309213050920273007913211784380198176766250983286599540563805860652185716475713436932031577705998352227280456671030720876499272311885979336400045646714616394638642576758454698726821288484341542389726346859648864332688247073052503258872289386277216022455289441609542769255939792740024632937932629063158041409565312013291826712340669764145342669269860393379261328664295517097952251026505698908532683557695948834709608089320987292130348733504953020647677320520000704847221603024234296480975843030495807229286900226343054215769113497361921396543238288100748320495741970599867840536108631998626327637571642661366060328315394850040215956582064784145891331113452717441747109815580371812481274106116413577487267067077035649356300116323931540320344614044977824092756875790824854907725368363769908067114121423682749240095929839360218763993313687850558894579033610943974891546920421194694715555769656524477345399316535763949704842770283845565909731911274156058995354964319909085895389649484431956941368776007981794850097972202930467554876553377535337129426712560351321559227899906875745627797611955381687463258650333649503371296845878876182253311358120289252249196972688427677985805851983771922827292103149043920245021987720734850667062238981599201361744310794833533736566635533352008654383324042445610545149744291770003238550898814538330283650333829305679637175142309275839769510963495778318918984269869978018765476810830247129529536816721353921310978970737871635501719652373435041538785010249388337109853107558640697483291912296678928640134583797183394778586586633128227766105457996286504136511720117885961989667448884142661334307880246394134942801291020946462841087566317632389945928506504458480310836849160740550493579719937160970436996966269326898598480731077773468267111434897904901898381874794643092513875018004140677607955750541715771937450231277254822025084703057295015853944411439757970275406063650179472692326890508621174571946540464293641199707923292282582314302370541079457237270590374838608039528632018691201067200598248065010623428711380243870448543093962377362863290057442983095670432483821231660928148003588755242837285648501453233960150040429408260945389157640889515666763113537098659294892885552695961534991069734046119667927342563523269373286646480416711326111140949306772801511228046998039125892688079929520155516274204802600761157507974977475163350728482150222577307951913072596143362261603668326499387207985611503000109735871798875111314115897321658207573387045081099393719280559490503712499416552542746643894769068136086286781390150157000687199359604412458223241981334861978540689456663291963007902256511111882218835950770719692223330766467464740156545076826262536437741159875247853417007798332447061461334123765363918777241832928316188033010832525764851988038126184960374406061482732040464931801283651554034701766007934211421311647757975299766219647205582342975176522133352906174306850972545626045446318417237733541837848039434953512255904525560579368080027843493061674458533101834044888437015324468803021516656750660744523933607499457650721511626923773168781356299054209339331669533645481792631880009791976916533901147968415149259377389574714236353133041439467176146994008499561899958425096105335093073713998565091473236539882575188905768346145816091660175425475123989357159209604764212598823612572340959611990598634800948003552622285453149216501997990288499218209888682840598620104110490274190110564920290324328903875414990916428032253880571312749630841553214039301346796974921417899664408528668128659204991357862009541142230288718678697000188133325443120482571244205048590951349167180823718327754766248589332926304500513976704999900029145843487731102090247220339254541551554522869202562047530027216778959191623552272180906157880921568230953705805114616763445549677517538300045268145675303246060014869061749942440269398181231182366045255699389171110749126310649102716854819424101312173737209322649935716678556523546996886886048549509915814882628436587254488831054759240285554667523912706570467465956523872055466766468720256004769477670960791600167716064263585092197591268210430999072704483678291480900592283025417276465651295519327151568212545041443468209606032028266367083852446389549242316741717017023492232051878544285716860715570566772532639342162847669477452912200271773413815444884812588338626251683305469922599854898756921377511124898197840687460534200609133193650442322917562489924736462096162726134223952463613148234771186173646693820253462778077300437542296298282840304972465039930568298104028130910704652883028815805327112473474091188517085465373626823802231568976952562651006549735530743976643824882826682615008250479790426004267679547264951112509912641428726276907395122281165608750519005487388518553172372931976391982815482637984019990839614043584100702074325893310373705966145557187993596793363587159652099899840716244106601248632356446790767343707922789921551047035860063150395045604265718908771341598554994309646962276962321254973619619297227872184652139722097141266947056053360094354372922679816653583360416705962710771531349513962417856408286068787214498611900366175318184308204370413658397351923583573406379879473980736491963797748566097752223589643068813680885239239860149338288937284702126555852476554865517754142693757995052508986615894191060993057811478355967646102900676017133095019402273918729915444875700313874702288498184012746083571382194712649554430247707488072801411398270437219207140797310302652793096952538322339757775838005579104078813734021504235092088339982040358602585958973551723265328326244624623284982561783000556473333467982457890769823067333952151083047965696162515465510909005597628795352005051684593375902959935557943350680375284665853944917805627046189009743012581442110441714492421394369781747784814821615222976004493601423762354391328096053502750074379728146157552445525304003699965852488648760177051275358454835266174026452274027260932342525758709836690136875249963274258606266122863227420894809143571352817337729153746567740101390932455223988289146062784501961227068527314340493157528747972738315359809648801994560566668096713283354912702818535572757320498599189340425889943361878602902485251241048927949805678709636977968664843803765907757846456196967572052698381733134359544710989376593431789241942416209499294705252317032546889243819275871362359303827792995767209282723906977105111892196560630227530057522568433128565576243275293529021555716456575819983378330361594926121490777740698022387715833300692793449189532072261052238175796894670112717178000314817299213960756659780615863032507505983523156955192214139778258421128880602141019835424409542265644054495792530650047880124059112333901855621698500013361673185389764738093012564064836002482593354025613672566741237999463181752208944038335354654206058489172921827498116619531394235611231247970740458683722762518322678674503247933904374027636424496670461814128781149753398557964102752337125795599583837548274359368078516542923668374807779199945369783765863751766179216866082013742550823281199715934779958313412573625329478650311834973115981724237910066238886283045998839446107595252946214330685606534149621117977822992485077953868922823332003979150863630766308124576695392945922636367434539381007196652147137369699246760786136765726125506352530924869868455664153518984094773619091663849071831711299176874487531314540265541005104803256551478591100030450854027021138576447520184878146104185880421691611472621173698572176349284236909885656678072995039047866985490727136048100738539364632294005429733997675703879041659586132365319409724313926690919564889520346526939246172756866665191245891408298327815114767074671948086825392649109260145121670468788717715746266954358736577397790725826519899726571908039528802540287793388867521035196695461443103303926512653529365317000819192084929905656983714981255349649904115512840742750561434313702760148073015832339478365450102214794898029754681350683472991854815484374419604329159622897207089276367053954256859120898500737151308207687773411343432155986116664910276062448284153389554967636982511907652538596738984388062297015724432399851162267621659212311738993689680525398632569394823018230391738746419831326447528197298611019645636052037845131595420178520340049092691683008628969095240481243032205234474296355304674680839388008866585804197399192300729312118958155602175025818567427329755722910418548017917870079386351241272463019390942581363857823627648841529541184923676259355952940459013136062631092936188488356814114473690371031538921853438843041731600953601925819975445753118610041721630014755947621486187142067256228128207920264622273392310048496750445675600775083656288442899937757838005064562354534057745569094756844841653685118731844111759416124929459232944466016388433631458430556994808680243324302978607621504480518486177431000325713441822751449961131661879227196840651174250959238134202132814155878263237460064246094927024684500727571247910026472011919851572299819190934539897828654600123886844101267037541939534479062575456376978576702555930254779846682892155193451886395605105814989143998109210872715229201775710346672453332709650246012011282660624304633457783516195153292560234371897068753497268690476253610331416938728517941486960791018227623368705257759855938672891624768924584430100742333398415465297271684739788530708861090983717552241551383455659751244572135761945797162646702164632328027293328043726053415568276455276730714166502919934935175626715219495525169014311998387452643841236348898964549392344239757990390047153946839505122752516198975527186922762728758190831430497802236277360921711803681584511177995251164262982774988834134085120326976931989339295463649021901174867151706846124777502054893160555128720959552578544890514191670737788333019525864528529249257407459514392300623150123818295449031538652716763382949278337829137445577063009926359029961005214049236962532803951291482771222930169979448532017758903926924424027468761534264186630186525955068431303671788683366235085414453724407994003056195654063792780347735493157316205623125480166499778631999186479422425513886395025036955761376968643651333564598751173588291871126175706221406971286593045048446494458608065731519598431426188965578427129089425293419516658022261968913426100168296582312972755088597116850203241476244679863201451054292675037662308122366090800957783884183961870970115015664095217502977237205237218505981274707061083025267658204234761992824837759149648209856652263776836324179237859134278726160871191549883937568039298701386227670456305931103956469440026064966651697352810952591576721075159957711017984830235855498144368970929808551190953763933237670508526459577707453133481981851191118975058078897853791768636143807711789195316601491793822085097218163443621611140562898210794690282956183332834095925757389867663814632075974646201469335641349814306019334462973333353094158886691209191070283536725387906249252849253353953534500397475897683282611581950451378396123340909309154871220027593810588554199113067148764475258041612878276366068696004772529193936227691308788767355222491332385917481874890256456208521523894014484354720070939667090853476498868888785185908752624190776995269875046210434823854335609583291494082207874580261952694726706010108527927235968309219164417864853915935935092189606923974258525375012383828133339477741888400301977119781084880014884430031768638651257762648654974098741748112315181552901976507256735829858332765981950655053601584406598073088163068850204190203568318593773561592522915618831204094713543002124785182803161260207843665902735254743390440410487395053083778004830420049333423026493861436862644296330880152866844212434579917506670861298227500686083082871263704431023248058156428582427720685655928668315967623657499951650118529358259753350289577619766001496481516572739746629707983649871735368529692390582599059449023803996012240072751418683696549417999077942122812538535038507556250990789255955496709748680448857764870987243918355408135648028010000918984714740028243143820304825729948947692281100359760684803871562135907455368992443360949071874222595804816924217583749070915485047316624810776413451745159120099496914854636322089949035216815242695866378044254389069034640731277059199780312339272105210676783101016867150338837681614573800293343086900606996108592732524324718432412631198600142454531612946648910080545390775696746015014156746147999157512766285110431797567910759266829563183493495315793597022303317302797611366234482190973825488226290539051593136083231975079381358475047951831076346969070512644752054525297788564087731676953485578707513734380054703783035512704960703199673737959413544859197627661452809014912586862636502515804609176804022462113461290364240218436495919903613213936398105737548905177783209368655576284881833796630498922922126971636600851981304251489101990281127194969048958183358275653273305340707911078613004586936728425611562067799660644500343601331849482308934336130416046155520091756442534246365691983236740208320843273365953912367743636576686299262439449909255537390368838978629748436925708253080233349694683101947204244006236339246545306584559812575782860546022566559413367641700635142613133824928736716962808434254420417236774240716341057404416487723702575029378553665821845849066123292840702253512994892371552398157545533057688130861829458672986460287483589249788606370415474568011629102600601820296496369929014338276284331783269520332772707509301523196183972623507507884177247767385958088120060686371868633548287271117847451220873794997703702618844935335093067677637729023856643188137303133344599495368189682761745992739577574308573214536272002056818622375945955089215130980248312441927987833451931586485672631239055243122676371342482494887738096312867223185839914756436224913191008747305285345865350084517060062336213760536327397631439824416798285550738402657140341069277111134139057308105622853344899228734233131713199429089540150527900194307236918498035112082311928839701408163333562542209778773564922367112924329678054613790303664514758488234860031348508109636083073960200876278039473496175958026120959615655511219211684338495055611612224843876245420339727421372557375033909137171975245594376769414857128516543135931874609181160692702141666315685506424130185320905198011731336224638412724231796924306421751456638724909004367838156525565309891231263555085448313074869426015692194374197366761509646748089589562730216884245749846613144738943628727036343442180247803630434454323308965333026422475550625163355857817087177818896712427822040938890170843508622184895223505465003991815519087555493835555354097810297460048367316519452115361229832771660110476370283116245439439381003286904034954011503033830353577872051984160964623953954026237838360748945596388142346960763531985339823796500799597328095605014269927954712731597551701823758662372816045997065403371101476891633579199911642587410322164654831994617141675665721328660196809684988130409224719425819253822091903583668295990026327065447846113057052861493302607333451718322424243823661883526373308328688305673068123868323947926883713141233724840683343299615379513316749127898772873006691999883386784905373726192665776607332114506122513426631745361538782879532545976546506232572123889188835828706861325933613099509380164524459087669315072890248729612102577793250707836839062471672172113196401163455648493947607338573008007325522292261044649978241536404527610294779390679800235727223136235377321354219188592120812950862943647326358625528610053234559834954043062460116295844925451042803349358942086957816475790888444639574932120460977006368496674526936502327783948705022482663030433233106410564259699062542927467976498434082608956741172534857206033978201839246889766797116369712112451361249410170692146003206208793412993195528877307643979456943305502341541947498662614223331580045270813866899561291468346875384614410963435405479412952678254889602630139164698077316056556927733323797088272404807904910881884058124666557744653757183486446301448739272262356219187734200822240302519816441658370336229114262275305655038249111932244020775068026193847953555728999275220478977620082460361084805033851379219245124978181386354694183564235589501139250127900048895313476089394061715331914643627672531832912246918833242495388741258706976186224789443302574287712465382248661215882149126690473702032629999917854792596804078613519230532825409269120822408511201768231775041205903661100126808164724083278466390777948689040120899501374380844864019220592509252386389864054397057844601231409997071881516881833377762415951167914015765141832815276097014900659952552139849516436413556142764384301584811307055421157696693146086761123510790553856473148484006980361373652869083081320316120588519096668321628639480014167207901598722286375669646415324830934565729336326859152121547011866673537990534236225648843536907529883242190341066874253013415622347751446521268076709804162329137465665035004601189126326437429186072882479583128390462017656816452379654840772946744705745948868140507858218112478005186683615720550505753124204119009833432318503118644982249714179604419628061418636215022099055880177686332432951373493721648722469600039393693750708385388882080591067562921153681121380281307478362355920966235849666891977255469336840864028721479110367816288867277818158716067373698307700224848436794938572109493326275297574544386833752827737265392341697971268841064804960077657722669756292061106381680619559688718761567531945242026556306408564546213402604939217669027772455225908974176056171606603020798243647291047730400528563441017012607728460058938482988541708667783639507657828060435656121246889567372602652177285763168873309631305747324854064056989857976935121999121801418163981224530380307356801891695404621491352632494126209125994125825436485029410892993632590745688549659949421621381290296007799976044771760610881362821229019311298694891542415473362430776452500420833960528429708683864531873781596594914831581197951300336018899776620520684756569532186270868886942550067905964103294912834984042075992199445660298289208151099653716560552193732003837919788422938184261342086307625679522763851182280611634794815801903717983093454753601332450977659845772673684202904012125607904408461918721778734280085151469581682316243711972713190550277638703894376321476065842795811066975803654125198212214744481747208496476620871174614844986054818498214294873886064439288905458158295621136268021872255835660011252886866218976653237664440055381631532414164322023617919271041905946228040251002298969195577414849587711201281425550768183897610971684781187955847868388472637940531721866788426133359462362821248885221581814583460674630650939536969244265861118209456086077392695423809139090422210180714859377063739110732771067200552197230164831161716285185533933654121795420411068808284005696840202837459145969390161636728640190411009961306675759512919838897833183831839373415929374775410957177875330461777659545062808995195724505912721459950116501738833678620372724934600360050419297275107118797079116006772578395930779235109384580403902448222450467790385481904265588037742503047783237040298303328142276328178686169604920625846242196835224731353065884664774218840488548931876760956017054677223067711527916363412855264133874016796090238247880567973111987830904405094690585406283466220255184539969240363649820467405744550848064395333998911981182008239447281275153930129070280767913914365466245539764434745797333105347810967877168012411381166094109409866237667069206538630769967066849820431716056203259997004217996944695820520446074226197970355006286144102124511028115007677082610039777761461871009290888219912570525135294699157443448599192632494767954515330097223099169416442108229647596164392308018131745704378596045179858614263341674302414715951332182006061032682308095305132271236091889426416788583008428748285191427866793369354717214432070828393084888049125815803313452837839839982082005402626749317078745649877132403463162986073044331862968858708991797147199197170316183857466245785912556442739367513056720582015323787395958917208212121782215462118457642205329464254904242255100812147493615330761122889175270032159910874256544044844350735586604994114177511156288316337447034886114361159584143904969268331664791074609946809510221766832562616876446770473069934309013529555944970301282762989893000712808044657027712833424166684374457543534044800862397194326571539973352052973629769866804994714005772728761620227536941239651196745372103913373758198158390759398067948461794037963002589397467239221770490455508227945541559628889642053721691662087327977551823951696936719432796789862844484385012773912049905787309664887303348196853775395399911682798015013518488909211782454448426300291375286942025157961157151050621573115424046081877748208280773213646808984359215277346882348541519028187489450431776872554441769020336051972455308770077964067213534168027876506247023815929272308036789855948152757250642380734752545799286883639830662492620971395706087557059220866025932935245400155938696291834088775393536973165990418903165704009557474720882396112074898243764306852268344454626519944551627864378687303294585318167962312379017941849832673195519280958151560616287048516259300021848561271319512499291335274666160033259878689302496924910547434772257091127391268202296235470999601129718787743800536799377456583205385045661907997125452981315701850502223398200759060688355284262170908494336975016726586081156856423187477830864954325966683972143022113428626118644554825576407857141819963230753500031404955374177100085547123598121902446433390551440418780078221082755506623517655663198200964840381770114362515039499472391731479092949017676322601025444367635559197967669615183812317363538691332926315206442653353253126127367484584853337681601584657161271027748124880544773437474025398851281443493026721161877531684213901858601467396608897113255870618934589618012312196729566268856535414270982178585259993283274382677921426621528310233057176537509353220609668589002142995631759843248432892640089069237505884129944355176533622234922892254193519113704888361288722775453522831779163450557601780716330771301802994009333193476068687951360720189769637787667209986973956199000810536869259898740062338884883805761943480430245918694329528596161132588188704123581464756035976785658086591944064431696180092790163256229850883861851023208667478772989207670953226807800400590814209647734790830711908322473863201556771680947136540763648819072408087692628438634752935327836011009924141801141453872928776729755971274766106771033567457122246298215719068865473224322476443859571948125013773658558932681394057340991349542130428672280869513110467191193037293905169614218303345639469655302232593516452260643871904881322038350522283078241870991332470029977421549724065167615378849335113152453310836979603332085049124523625978109630173227900398005011021188861630658720658785777082770609361580110888557081891584610079466986307851672581139832803540637111321241968238172575643418968291760620464600311874370035045246352016409431392855896316710172961103616820448627466099004381270967675155926774516809262738122860073108285437168594413538570212780140736143655162498333633044129675761488692706076326003015725325843801092904282371505601620471604805018406030894410569728010479809009943977516948580492722709128004538928736826596317774636080453269680122799610848995614237533011202224252041962943851669602451077154355479193720886294606453207615552231919493708375493499120539611394789289495376041071412569886462259957213709581712446179737992666942632157536520689740889389166963957796767824077010132749999737235725080030657709098748411874604053235894619695846102630985156546004828974032635699298492106292601514553303097587934988442123719785236419766154058726093796137797275732051329789645639619237472740000521747707616349366140440824774241334973402193982072643564321352942939541324601537410474394863342736316630849364567986925677440059511573653769067580773316949731264129234936975560574604345606758435397550774176187450093779668298434914762029110581014565816825396838594808464963054221399911668752070687130551605233280318139491124585947894749475078468112347443168387930565569505871144772173800517494187566409893423267711528524140878355121511095668166325405234395007292108105003055383210167396482647092563139940376335766838806081587320764774063020748100563764958160068036421614638703574854287579665417802694216284735418609040245756274239901723315944683457292093745201341507684991641041628903766434917222340648207991632762634097450289524099559157304218809145587378510385664685556105043141410573082324972980105965042774434831924960725037783805467969675472035404847751144087548764793706695264476347964241651060811967792259356712516762574118563950824708992578758201318250513361513645254287123434429039543746985660744038132491642374096636899766668582267770903515890022657189308246919220666317429419391534384119594311076015139420431754748361433887449295140602151953386367309597859987930833867976959405543405431609001208670089344580758368881334268099295234158994766045546128725575129526393189643735019764853593570232315353733987294173190220424087876369189985407996351371669850729651649577206505910811262798574071783129985734718819789695204765265888885418611804817391553846821236378500588248852322208430183323268508248901467044213269998726559527954925680164855995297209509084095077109870394826202558515551276203667479191894370493204268142512208209999451394856047869681042069706531617056461331435400382929367708408423840063228245823356920537827073789851830698757504168513988914730745882607723858136688696118049676611964401792629989688501061220652937498692571264187151070721273250789723595305328401766030337030860790914734514068103321086345242234800713932157186421243866270731182269890843345244028437269780638700670807485166704012345991628007162665176108073377161359488467248904985517617198777246338114254045689469919757146336599819612055945355301797866812635988304682058108046155332443605861446610352324102484332726404089982224232916715989790121113154135196248502578458423243220745815308920494184066964144007455594686696097780099691980201245282586210019179864364555382298906884381002930326799933361038824555461592539794609765057781213143710701729481226308293373063518105086978327075680399419782425253329749582889742454514490948185864792495920942187570349218109499500579296263251852028218317422511348752012543677863255930521838414055146148862149266718357936213700044754806710731889337984924964960883437830682533918819476959393756158303947135896765402426570777876351309098084268386591380037087528817725194417897830556655737304581920868055826851212023708093154114008840319316867604871604460015275640871234837611185455543888398615699883778618647271451930779783398539445392915809527779930183483264925366976893058386793216727597965868978418507578750509473676919308201282918701586872684261086290690072210222411067159617229945040885216843408509095620287248414878996129643013504908557280215258365728925646415064856522079934773387534101036872399011359808303182848287219622910324264468956914167911559284011708096303548181585392960501283509712674414016837397823764414891619528772644333609619623847760314481541385328703097931212094403852250394581502198838057910860128707651080743249050086968651772289510409667789389660998348457092496887022567917325225164072035707161900328413898578821795446552888745668229208935131749575382776739482217890506994105730820547895975297324851830878210693855386012752332890535470088904744955813222812494296408217489171957075512291061676296648479322283901445067962226217321745432301904000869845642532444217254730703479455814755011825439507231004500633193657309076104332469534079599505414757646376082655860097955802692351407374790487992770663860107312750355122785255565556606834940233611122699363896279601866726965816800992126127990179339445761689100459740566876591510682272682185018593757469639461737510066483384943282170784512461350274821590492646372619197860828816951218430180510074442969849351027894923930455324561598456229282999359331382102436659273333099910633810377833245019559376477964284012127000545443668500486441210755044779275577951824257300383857705724920709065541480929010258330095771855822743011923738495413045742519025371260517784989058795336357375623904183924202052105317218284448268318951270366663666088211135697009408949040778646492405341987541813154437590821419062905600438780336722029113907519196299900775886568045022092903479420407668484177662872379526180886490675330622864448040752580164495967499066301669324762644699509198959628757672003108699713365001347155865444905398693831666178496381190380811832321704608861969050086706772936253043886206384771701555242754999484252539228121004344683639629035437276142297555952687530866499071818355325165358734446827406098584003615320625804452970836232484396702351772301271463922129683524872343839365492660681758738060192148107164463122437947215347981958442522336314935918786395489788061665974586128609808475498684596120465582997040085298914273474276249225264922047273473424419546603859631115202469799865863626141279490038480684542367115100043921035666145170928317542160706468059125206007767399241838888526522379847487631628501211022878592604740293833721864810982634884137212360884776515167321012789667939820261975574035218892319029397273438954289856731147904093398858102340331199147101153339515858776001050216391666690430481699827191603673949431676850548477901485854110657020177926759798386375507664109904095904635160834969171896086931623818890948447213908266669874528659191314648499190907135056648032875905818318566462527516188216805166829677427916097509970189034015078415010835664312086359582091520348750345489315412605951212418354575162788844094652914800254301398191447810995691367028286224210537364039106726356748883036049901160039064568469656061894621027556998648799138360642611879465249786079768293364773988286289133608357932995688040837431940583727712927013456766458063065446029417202229382851181948980206771411478700531669384339715748101125118682466051213314188244839364074477149897491443164182977585359108934940073953041003161298680102791812891047590873941894122411760364522536958331949678520097735481219959562724459184403994038340740266353904420930387509273846022981374693220965713618985376148945329826943003396432788853906011047261142781134966224087358375503495214971857010857902325136337530409639151960552849028756652608815075690812452224569842689059242980586351595868015714245148580298060800930661726436083759843591486120409844884379535023819166349969379535332891732053775484269488001906258033920194597864840413774530164433699103867909083643835762532172428362745984125549686549026291813371481176263340350092062362312050028675799932001238131497145131814929625085085301751520368149648764117132130961380672653043771443447646765821452599155984213730752117250973950037234953571593151557479687255045753974987913046859326038220134040802198722170460748792069352337409388824467270711281930797372266736680770393635007646483913900570640231471940217751035309935969419573937240002633526199552377010191133589269185672444937208076948999823834860855831974415693108098711341761330051358653834657034048646027233914988479470895848224877278120517674916509634058107051449336208048858305693146220737616210354198967246836463608548514575604635776699782183369970121534445370871347364879301699878866533742848045429687771556507275418576147632756336612885305051281560072827921554957459726737099277759725614427713242662235629310764123531664828936329252027602230645575949915831961814397935706523171694181349382969263251072644687734538514679189501819658525914593117884776672973361382857288573651698673041499877853231589717067201929284970368975744023143404259150220137461518664808794981225982032043139727359431077267749020353571286088878793218180786444132473530423900513023687755307982060071110052245335663690061657352180489483733103199515800463736117027932836871516877014638076322554763777740664175914813929998265128649697827196717644417757549654322855925370235024928607921627106187394475259007526547369423476395254406894270775601500365473156572654901959298095474264259478397546939681669751133015316756754556329570639230793941284491245648625564006617395053588767358605082825152888158716442078711043267426822240366995675771176699519597502323654174499218716378234245557466139759157905347342889864586374982792881257892428016379840340437962480887316743461935889039229858299988104026332967152665875561091501447979273106280793456771451659632236970076168302779600487601006298688408554615083204927669459190480419558812267881439240768462707786036111747716207681565683269659535600098056943312071114738695040173865437756144686675595879139803681324927754454276842032857703410114642677467571862171702124997810250434504751214333992355693710807177379530774287097382698070197044094755251025536198500145026344617125216167175851541287063618695442323230512021269355118964126809023375714578073168789935568109554695633155389764127586849515276569042175208998595950817132668546473518400968235347676296226969336507989424833510890815798346398553119195682699742892830176575920825245864955269676487603600567714838897758792155301656761480098249483899416994708515451676006280207845699344371165535865504307842960982778412087020596407868654525858806301509103244464819516359686432464888887020280714274372482190406559365861996884833942866095356703063847016856944943203738395483498507417190542053172216512821228304592759608139578934697837658107120474834363274547564245672238541537453793428006766739035946649275984148559214133361686045406476258757181350316199639491678006361183179223018395417149449912673442063438544490186140562279671509250496399296532049775216164255835703134756791056547766454932414432531135022713129521878183915434852655437378423191318404059939087881955897936959505952151671451262828691779398471917771130130558296545773269290924584826395810523722413362366829348080889859237451544813597143513537859236796379352524790964469484429454385587033372953998440896302217574330442625491867767544209621358285215424366290406639500382118682948226439199225642136681993874843532275045277456823445151190816070136517908024737323411264683963067203666217439985589106573724720101958725559422999600907795759870654727391981602026443200386991800290723818981832797517072769562164471375924781637288840227723810304652351698057821934549784826300934897476328605720205766240670564654088746240310931112552074900140283956745032682976879332423410918210653122812259096301767440994626727717092205106431521521650725057719896642918340863317203806101585988011718313953003492940962660062287388920246995469814831310014525695394109834632729109269607988301919243322745499488489691008623725011016575010195925085336222970650406657204048614127039264205754593194096828693539654176223242445378240863085478778214691036755451596178964975326039818816173728962325388960853968748008885264246253354104016461782138243967347739099996377268130895956411691500838256420059896794302115562762481712716370925090412685893214408260075757912803719994730868794933411606052222557919005569205844864218522999646074086693520662591155527508589929691595106337387366788127113333010815964811781136688435726758795672753281193833119012585117119843900838129560541251997735448096716819465394306320425075736471574081878644979707217074203583694045348949752142255243630793412322810727883478597083148209682346961938433232491503522000417456606259677476939211976178711418716068464578475951187492807546572241561171524043371714788659620079659329420822279098416494355326014529939692417689945590216570594183500517814521692974332191341000198728189590684674525461683842564116926267636618948683030835246720662276309290473570729316907643842767004050413427399647133057280703605499944136289539896766220024095359892057447022878991455420843453335155959392300278222471492825751350481551253446701735716095638751713805842146754111538310654885304169279747269148660327602496101090955278254995691742311393921054432428560862656476308888815740545626594691847203374002542094740685841442002459716074483957549324624664645483276666159869837634640588043767841575820604224750460222847661487530317221444173955538370796077412870513001755126067143555348544614106638458903811953034138846136261674988490070950186893718020661079429390055841487538744300033727140716918941047993983373514734149158625212276889044057468591924875428715285654614595044586861463185600455602821697592389887618524380932625411097765648206011203861185906095384492674495205108610847613567416347330729700721143348488060387607913956273375168784868104492840788845015767065035980418467246533372175306496853750553531726689099311754173081788067301073639991293404345724711944428131096626975014680198880534749317531420027179924245547762460952961781096530501925062621514239988576220834632319918308282276765519448108969143020827729827719397883411097336024458239401765197613218999402852133958469396948012284415010876994410134917890290001970443700690773955887694689422097551594324152189737352731781517760256051786601074489664030889543030282396571385395592386904238540686845389812631577551012534515119180327887610723383835274779284604735624494232979856639848529472408265742399362376713647432660259985176870758444362688533064603797047677341510989961757091876631832497431313634967424842241160615188786869277288203386209645553175271405272794530493645900244356508301255807868291285160629059803898249650862904762673146841164621592051042774893201462972297074678274516265384687870018243862982439885936420852005641507338938307126890865281763972960594397871437618341988703140405389910455902967820282165211395151373442834830318875857208641045865611083841183432917200078318343708641392404852370452775126462679302706105994178078198282090617930966610638838037054232966487015719551583971503778380595857922126359607000250542063472384600214421490450421841273536187945891312382698363330680513739915000845453397138181045808739756393377042549885911973523364873560425184868551929195285120347862933642717766725041440426479406055139242590903604619196317200904565825362637704954474010139014730736337978381234869461817260675487060473510890372175078104457894722892767361099372123172959901496412490846036237471752173378117428213495886415964072193886839434723538121394521542523065101431160567178844328183044653022445661877514006111158121751563836930486055035914869340551976232358299524365226707652950974559172327521983636247363379711324602955696246936386543089716738386095960595870196708047674314810878893050202940724335004338586387860724888757050804793139299260897974882026661821735700292061645843344294190317807341099558916089516076319393265577295391761217392269600545738153169159717486359276816926178914981366631323923452171020459704305894410377836844445365108391032411752376872276434100593402713964935707126494911377176068031196075386881643558146946558026946107265304143535666753963083305372511115813808990094316221657265335682954703450673574740496647711204005106161451663914663208440920330303132039259905044858545189928351278395712046139204892444679044495287342096405970058046880037078972359860964001998738006056072878756909573305926639722729091041250370165586796411186381517699828619427342085249376885096271500751290034213358973952857232222598248431608836521065847199256897211903957919614207567943061655486359594153782526505274195064800367618262212503163241755904373413140728078226036947866181542111709794667405033079787531669183330038179275683152986135132170095821589274190582911868307763521422449035814377337458891773560067234866734351439524638249906895211094860424292891338963422855938271785497533866610722429848703536367986125720097594220265445938632637664101395213022970867489559715764206402710572108125081967596082780064368365466931075263549845046923830071535670759390527502339214058065844460809916564411131150630763671477958630001453962013309041353501196733825522078044673539432758486797586249796085532371235551362623213632405518438149607037772541375666388290554250352575010401721860156724690589024786489476434343789024879241086644275719679425045321733008226664434216239059724968870280071622009662381766023450463319474665950027321939857157098257087954876953409480681837766845542683246766677744155842894540708707431715001307865260102092476761940897680749117495118931399818741307614519837844786442948712318440079686455900066053601817297465486325218442744288547116815247214467529571545591122986491111244222428625834607338897875515444588240602567401031556012419191691120528202451802873278399413846455618028307582527430839417019432393240839043735321432815641169652274421886040349499355571279831582659704347266653118589904790533351266689591791696889840597638535965283884877372520446388827631048737469018337329136783098616881846473153091191203101485552964351427755411539001568018315427996190595562712853308774075867312855179859186479773422020477531284439863943863665267136747028006125763041555664454495022416887213915172224246610475087106251154316524532817964230916011017136867945424020321624171980533658309019639337497056112823245389657549962681882203400416057236893032759450973170653729746647659036324766588658054564473157802775335996704169346126558548476963022275598554987812210778567899168133710148894508368898325980622802344133695387723466229876101011623967648418247091497832410270874015399895543049623316430166430243875055337688342729440181051909484707897297018819861386236803679904528652448082961771106066694700352014423718677076974083057190096477886408674343269478313315619781850251498194988827695888465693815803889042624973647510243997557864735225751357534208961091120682900743113705060706608530650134660936299541983381209131027828772720441726745774367473106340316117514763159462777228191606150893303068864648198726117947171233438612363950996053073873030142256713921334850888651596020604779410991028687978043154647447161586975339040451642834553677998441271949332727894984638965535145474451391767777159848428254348818607193521818667007250043963977220705312513217646698355946999363453106708195275264095036723316327246091923433647465232293302083131680848514484640807995242689914194788960905749142721329565622442414383618076397796056525696740932220435276759744214326865336561443054200547382468134285276214325308105782054171908868778878728586535104982002300673173677319273023138382788958067443473692771552013855882052201836652839857966489982384822335651725297331976309586249339589588049995607441278619317412104711549954292151640152352237481699574601760836127374804477974700979565053741695276095080389522661926993395079875374519570622535370454390416061128374108833445187289478038333234652035478383060235885778655156499085269976446063846659570931079049382822034594767343940110860619282502823115131799514257983135843138152906239240183435177293490566601315424800286053905836565534390993617050671137618041083857314198996237282519193330244582210004635768447804282892166991807451888085870673491636893923991002145007895247277553625115800534869790877168487910990895354073547468002406645996770048972926509529956358717813336198021155290610029449774745025240581152039334445605772159823451084817775643817773003279554730009866552676467530273184228755138972281850903325118913909329665881823382482695270295167552865236327535600203272646604074013975058319521275728000900370129123607689256237113968744601772838103392166823307243015171469185420840490796041316818500888080352972256337532900068853357392256067574100336589791442959963047233531364730185805216461533466089741938162352878786222095421387208011275509649954838131915588818452345540371398012138340914107150947613594995357849524843118545103068936019027904272898721767303025539818972958373606419009840672970066769535840075428261782934895175749001774541363682617583432715663035471272562660858631828378060074243283242747230501002727807399236153303722498465566105775783814019659096469595436341934523347019339385971082809602168833609509594158107447460269296488547904750434231435403897324069721696348851224396337418555092102455500182638259752010096360214545126493856093780348720757631720352852244355195691741466087129829290079713121972462356164830117213204964828240430014773293506207967755912103119177076085457109365734721336295484750611347132854232773225345622388639275977827559706979638630400243988474875575127164880725309749971437522042789185144891444843374936096092693942031537024431934407537814455302824018627315299029854042455537218595104770353890542793795456460799619887381381871511411881441636928079049429754353110131363172477841291185275510009440429087614370674585859584370277320066894810171221620957181985475810638206799242981455873457839457691950538686633850821470386162894180602407330333965617364862085540073594067462940868910375799790612159270470296642948524549149266141154273392981189172802280118395769378920561189980806012193654000245179823522290444070499655446681228794657901466629099036551752229172750262995355685402662274149594852160251442078098887449735144421614346298828229544092022737729408134726195291935701962935119634744340876996440018316367121781349456097567446782584153112119575303148869112980808065510759030997393534064264928607028265223292547516142583119881280223990623132934433653636480353471427769922458361988169545692132458823788689375536282933421443876912270369285656443982243949106133640833295703157043889948141615602038809969293263305352866929402404540401110996062326617900979976306916410863943728036714298441916982701672063158507771794898696211619190167724565531314429008185537760745177901515113716402264075555797344223652340722582216035405401640791931328737702762865772938004154300184138544685018874856634717546702299509206568923868243099404539414753022555463795590736334805518435729720901395851846613779742973529262085136319225273779141159267112619518162172957271058300438165574551146035752152457536283221567655751977585887741434834760872666395106602419990016334004359908289118432879758488456139800961772155757733887644241857803799632490750939050700048389404091623883698614044518856779062229284917799661453807546867350578721575344099749717250857081047295898274268579602042866652223322998534565276146133974952554215466128533485631225861572365612598232184983950254902638713420856401096801060384443327324674125025593965211805301717722401492491515651343956749608835418955805796808324504021778158574418415373862307757388788978741850662244900197389019716954847433336408363760061743146765741084695750196013944383670263585960097889685236028626924468927558642360329791331851590727752587762575369516499853938974522644959515806722936869411632001227638573898108038936050828881143235045884125493933476008511578278764052180188218608301974019755307013820688450997411303010418590562492977800250072228068755527391332597795642251572491196541796679847138435512621861130774775919851200821604079213237869455381091085226727183178403529179774317853164680107432344364160902007608296187258291704798269863930947777038240496320369979350622270872716552969678023709104711517279773814789397211647428062275234767053746473464785079642317681453024651326319470584227287722182445600365725452152869375942925478991429747972955249036839998305038214769998878196444594644800089821673370820588347166048016671023628405031914699708782904491923068656404743418688423319381711657778124674285059743556801633785667859296379978228964660793755132707434489642180898457505202396918600304581259579464927914743332432448587926289104991336818423645751382871449297433493630328415849155115450196556752922853171467669856868247148971170402176135530131231388513506932319461980084935058271731979373142104947789676807268559725051060361537097837567183659253747505391990582750227339597838019511281743489060080519200085943345863959300932824502721956500332888683435238920577355488953014080045179615522193288191601830505454772802866265778136622637375986949483512769736897059116534371267602218917632816501244099348928390372840000691182199686058834216470173175217277469024961793346065036700932449934414139693314609035574052219184577810634224449132360828014473594154706665074076180303893145142778437729282893555930931172782375191739377619522372788825487447859605922711032150006059630193068441803717457171410371443393734214995772135833620364228931048265952730835817725172769439830661155287926402545476711968749471868256559329271964085338485958502841277688544177640659509765689277120766771019558170058289837346375291128594165444108249405154408208371770197976987943680557333487406668149831753644666599931988449827388079897339784900707954143301580501388096465946990306035508771821833595584477508441659671477761722183248245824950005902289125227218260693150763110581586741516504146789396649773182282260567626266805459862785994238279500653719325592676864323241281295880830291957563326536794359695543128659003615821655326805401469497317671080990237050386626492065165246102489513135634055933124526267747456745561110466854198169680084494676192295840845059090941792273844807570125643832835567158691735052688143735808839842734361329075685835142917477764220777124513453387173811382842921114010284856469642175294711394760918793612335215207662351769079976328761383228445459552674720313155995809725189603157561902227909501542656103426035928454584823066632274315758426466482252748325455500998248788364132120490609410238317178078267213821458736780459587023730850236457527860157982216386563590644109724903211401903669238246939511399415791981826056330641376991133966601960907731274638072196401235942835688416689607987385828582371661346464790268750786840071567663118568812746401115711367423778878509884010962207609166651972515441988473755511991034597431177147465445084882700428614832422306005815539495721402942062451051782657023833812575575265821331737458209617395749430768584316082793918442907660034940440182917885741302443091798633197288034896061437717307491115559429096021296300097502293214705687858068460006829839020958934153137193844187564342172336582618630004667141572768765664180780270623870374250433422867209576488084959442713596625021572453594284968355487761965073993644087989640017436992824588013419147078125565855316403242919254501565964132451141338012369473630949272629310928869844125664992379669761617628677032238386740815716289405907662975712140911246974865715813364155178486526447735988839961427234739283199478058448695320194921645153188578374465820833842364327617376934642480534989542276999507422486256949018469327068028024703538479705142107549307938763031027338814854286701491176979129178829187022532856781154947465868995946693524961859465256211659130647303707789743905177454838254855508399728089864009829877394657485143177670500483759414856833579657331355521604065034848350547547882392326305582417757111189094429455995366397050684256952704947486436062689259663404528027155993075707415032205684771674888349475945975177800399119608090121064094711413707469935463419039688383828070916723640455613244014409341017649566873668992524611883234931034063120133788077657970000631005100199673013713110265873891661987400470506860373570089569444543253716937586109680776549069678205702992536622834381340440539725698180436098218639001341594185873783151787286451028600780685666258928714447183387886124251927733077373227030174134796350283732041242598235126915236012059946603467914036612148771812717321852443196537648677657794289891947336813442058551178280941370282709634237800662534813403671105987998712064960984163701444359199096439212466391296971131988079565895806491451319743627755450823810596935403417806716572800290924978673463398909767603188615788027872502188730101155320179712409615208233308560640748435743605137922556567182494392624533729022209189559412616916916739227583806022409800239544955447887549729962667734670601480327371368334566605070210458485761908668298004046943513130528708871582480899136945520220646752640937316040050672692023364553550327209839602364600514832938789204922864197055640176797657785970321433585020348045152274117381326713706933500638897895265387661221205444599438286444701778391121529531591963607797835708625465534482578884145261252960129196532602238857144982183357530512001490309415874486135773955337403807323557685989401641796564950153344983662355535029142900909596031458075829186100277218017488411691171559327447152142954827418051626213549786563935004703700212463013869898964284765490695358422163751368405791920057509414359101324189146026389437935760577934792541022761534567076147684833010385478846414165418670917727902081049711394928489250638805276507927632556471219047201343347073164390810797652941093631915887659060012589767185766628528131348146187516474044589489595879755990152301303462515232702586169093720747787569202153590743591884315714717845653497692756797607474201390104492015336129851752815313692096270543610410866287220877992369122409236883322592116409750738280304005905000188674339476734256870230439375833054909302773146790858016450845386070795293659968976428656212738264404411448475741475070360915206146254465851054057092594552898140341361410537644981464857724437928639352515018444131976278327817732946911930721572699273405103157048700181193444484173792246889026483450826056236365469239314985552380362998164703294678666785094415029797573402392075536100242902943057730272778700879839384159261294796011275025440216548195021444446299074877590178148815277905069932453229151614925716664568316647636217620684923021911335182641990973142501639736659533810911885936640679339672229400517572775149946931993933865591514665897839510488319733398212228210395385909549968215423083098826063496281610914174492237048450676525496699416410037846524745268546083483900215751734393133979584220975360957465514091244823444357456771989791641346147207316599843307071972274000892872995313534089775124813975509827097341288235827052335988748812874137088683994708249278469059911191326581618303246794709420990970592759089206614940111921968535139246454696301147815157473610530996928640284572069406725499412251828793657470922798229038503376605054643516627416564918810005331859294637615881428319001307527927415827991652235949033040704025646434417759034657098110082965743395074260111401270884758926585959051094279662780487250339438189358244490662506935919007410112650399387650335284336952304403851414551248363479308937420447589979430908638477739206896845212527787434227640888802068531521916528106740884472800893518215254133483196686213922273748342294895204787199666644840998210487572139790906428946961700769331616548529020039815488513777025595381590523698419731758992173021717116755863701751920710675411308245902685121853086899131939509562065144559293506223992621356920762975842876826519296916138720096490833154858902108335643651717893809058321878267660242721874635812664588362597509066110026135100220054886017750441520860938588260821070472972479718790408526189314219792052117277610870744381675530174383025177275188279050992487871435781122156175579386012336662497310800618136986494869710553798933965954440358778762671039906488174508867665390229989929907766205640966157640294217683465051465348059023979272818355151363062703211314407026492736446384248297714312898583627590117355133615041578310673412920803776651953902437897764382053139941393512760429385148395736955745070896910439775359958371120960669782312894172200486027924402459008132532728115530291004325507129979002859787394765288830579031374019084607219324918255083516822917209830421231825872909535400922470461937242842716777269695340522483749525752013897659422330671000887781661189441316199683684045727050350324043276356162510435874508575089316122598425930119074598856547802238038248198459346097921883905483351058367879612236120515708835137017116254797534231168323814555641246559475543421851462323454990653475697685199370665490411221229943173358429067615386121994588549621360576490714907661552708826569680495297790036533120208693386351518266367754966976773553727003588263120240542084840359821057778384200393792700844973182957304744975501502958861538251029765342976388475319005385317746278677310462604509014241030576366332563949944889881960898362940419424826635703958808080083603249698423799045846782429190882419884406595648436131066299629720268740102630475540464721909888517257295250635574790207555784100855940665728293206018640915670824972558900257022668549995438216665388313133355785613997110352321263749332642231947666843131991865001033472641895820931783103675955732541284882366209954944331030019540515681834579657651434403951503056079746553128732966098952055307757131989616865906723918892753370440775334581437191917119111554064929281239975405669832028921063528436729113287351914367720025630998582868606253109406349650731911756680885689713772248717446726647951877781396072875046092035690282479304056377946840619562601864748167997734364272352010501741818567368974343379218553185763877610663685895514951498703729687031125835456654425421669036263476215472701880154222542091671094847002121902686976111942232942204288134160279911074629929955015077211396519404922362269736857321887880915658177537909602422894885321407859074338869491788716038247291962860937921390930192590430397028717489684767162773190067726896694633544872476118393776377929920038814302980841024925322465937481431305846436993637689266485111986474983674823449956016604538871160672149165622588862387998430746836469509981079721341141777045981228000776844415133113067991300864124563331658934064369180181022930992766116830880836496741878366928213894598046561117652444052021791017282574531012285597363862778623628494410336126474937940811347743915143871503248796453566243550588101360804885083679303213191146363054503089599029994541769349256656375390744699851098366673038721952993972743877200157999162894367576941811177674597197894265689044753549181612877189400877239658910966104455204833058354251480713637269872020842329345261470156833609544300760435535783394839547938325971923010836427089160939605757252956629642075415005676043787650011557682087679208017155993692191687701306920019447440622651619778591913025755280204002709201139019439283235091661385240793574863439206716080152482283978492243753515305640550012195232506591364089101125006712285249102601256587602656248675760901626905383601201454243847387635935999027473190058296852602947567215339267200045952914823982891218869232415908373287783452410996510130980606622787998874481578172654136843900347067687147920818888394036115346606710551703842326227362994986319116156155011260726788930732210498558282074187735014764417397133609735162753859875958943263302555398900591690495178658476029047025590679929841475525919273106857347550677016818478536056994653572031086817139578248074549519278182269827559524853471351800700109064934777299649412062817510893126022958406673797771654472628403388051484339735212791018181721006304695770774225559970777380549256660369426674620440328512500346583516527420182681915097767957842499371117188114671150709120547208192336445135513537057723919328149041936895615573202440088678139922191753817204988625650840199117323478742425764580965037207375994385024971614458450353899295309012116869803089006159625414601765958179704696894891429723547731049986069679575119181662420452495914728335085908668730425444036862274554771283234582426297959494621229087583997477971106645665545210825106167618784229940733352286034825455772324955716972209286957967421998432833206673649041251671791981093083092127557044215357114323973735333196974106494534268048196858211298016925156426780360765322106457436539867240176511812324227452795022836920611603269253270244405271954058481238395411460124316108011017717500068430762968373295876571746284335638561647047376466956604678517722513788101983309705955725377244505351079411408062887010219061349576131317254425310340165466807957786579337555911214361668783882574150770095110869069543723482572026200758115501038504670782741922807845344563033743373479032413717773375963659055166046219080030456672838481643551408782177739569543131867818577905253096489471085247252833441801900179887797923788312137286870935848888072805180308139010113391981269619881271191645207994139163114707799030639114142440649799238251295834429304752236666465064287765843016810786671569269657356467592013800734732350412832172147289421351341782894212836605695292167809317171896496815410972064680433384850200727840624005002111568832887172393313468329350934063588209902695416262936467781548529648995000494104352662454552261177113141035223062030459171203679316031418827246980974116687840062037050137941699726803313544704007392987893962518978260174714866241653484208596863051181989477392733288832210210208904252973324369882126375597227585355246858879296877642909118171816932144849951795489313917115092029237659177482767073776424727220820920501724975220339475591404625243222935598652637656458184464022888803105976043985270874334173828119975361882218734592208300859160897100048481670900303686198129340008119215548726174728735809396083857681664099048517592420748857069742064951544962007551952686299013246572765146196105353568691857600714849066698819968349846578752437191563922110655927490642380257066752597041996735014965785087372789880756053342703307793264069222124794540606047568925660855700523767748115728953915625896852993358752814149811636705776785778272750989813694088737460292711747842828131793028735222750013172309844296213650405146606679464553787730219230386238617823849334759804700184841882255513366554232897306131977473600674707623184853979239719484444262715119071611204937462235050467273172418426395216175779720547410371174578513680554556413016166904017169968898609274753632163877734594631687881534440024609830624365602293610807032479744065335932003352810066183180113706998634104591470897313836453933869153394743469251100119927919264371834035536797127417125421584910927234639286294759655333269132783990855058540618554844379610005685958944206978132329051493855949140943493729004075440495046842724385977767115089923390902570411649230981536114969570914339001324181703628543553406216448808601947791362165619089610698803087376433469826220069659876509300885191394212723843262767850567148965748622021512042585778802084394964925677636160786986151224512666428943935083032394174047753060228186524682289885666192880469557138331092170327918274159209862532198642878246096181441410624626078973094239081993842024159953728278891303948329432620572012970371356198753234651393938470027755067087576918488925303641564239805074798520260294194868641701648862312437690433948210738121994964818187309544684023574463112088627123203122484215847704538201852040610088426286942860006469901306661106473014796839752591182388627817006298295618718697735816658035691513724941159622527413918842742027023220396697323762210964110943737853002161218831257880716049219933706572930192184762386245102344178539218610364715858366111372034717557326378310203434486120430440592579582476092363345588999566634206288278331747183500953639959005029621211443601911339755349922786545114905229103592524272658200486424556291488464943421743856905810691673226373008950838659225824510942186077100643669559931405476396355786713502683575406073499657911163180915514926284422203440274867706090458727351366283141032280518923564770416701439350789152612311756216057444417731267359560363779147855882478958290138851050081259629481032273718673736057422445100669080057370693790283457976994165464796851913009327803277669541248761240958901257136075520205944835125734376041933309302749534409370440675594904635270049617260658208457465591879321932830295776633324418106477490408067575370800869231225979362869163157838327214339736417520597338224312994553144774207322825747594318498089150099834668675144533350308526450866369551139303390214332000558680568343247980015394722850188340918787943529164379047842000443547682224757250855358138355877504880903623534983947951135451613602567618408043893111059067375544328505253819041533547092085025069365801854019991410813204204934537978551481307689329050640558915043453232681536674456773084314920858590588379821687392366166843405419010050208329896628317545127093775208945103269344187161377927057203910297008392280821305941379720186650395678346318112679128105672027491856969057423207292454644869057212852828744042432015056945863372072632329682332844059037253229873073021266909829622462426134011589167475822447530901336312160916456127294245030224655997989405076720496408523371475051158354629800854732505297811941066839172350157166660606268819668179176379289629906292728256428162172785434562529094133522430694811439968874486430727166757919672705053756755888711699651978485211625389639060484609199718277488259105338457420649372548457003542974847630414251590815051072965396176448259095259738991657638121697509525803116173412616297687464203586660297900969119244071801938914741897871944950762508488416577581705532674283318325676503818026070404071382456320341756683625034142766881552452493100016142245972260357474218240507132169989506846655797080103561287042911591448033336030170601336705249250864482007031922390613477258560812436443221744981727357508151170347940674709386594001595695111994113705544054793229486011232776273943605424719039210946119033625501558658007798878799596436506610499413534814376393885753637594403457637472941419611623790218802075431421773838652055518106591930905909676312163860741432157162184800608353172227517066470656085751598158863554352674772479414037441820110257470654960502601406824877599218065938606713399099201095385644834811758462653135341619217777624387848140922382479888818130351349352443433269043973738215667043781725899392056547076761512384756223627963636425311475220669528111332621567199468030738532868808111646810647972510977318756201859555089392613729935663878564793893033902620306423281087052578246537930778259991359215796887799066897191839028247497496285328647780303868539242885573142702042839809707806915184298580622211247083752697529782704385228818344715756735423658548723886884480389220740668206447197868514373331079298921901962692549633802782347234048163815783898851404539734862947539195038899149858573547465748033113011678045347704195991443118338537533982227441146502100918392882750776020037302469308561261411863871994375664177253616211449643524522964855604869680253645755182252745717464347179331852965509855981079390675230935380155235127425663307530190741449241858130720715057271614303074188477865325052085645343295458671649878769267826973200453900980925956384770331028939629485323187827826036587374987726902669213253965342270193626825847096827450334647031527610785212249946865412579918723316730290699501223898347136349093566088289847542106693994043212179447643437568090741096334733537733947746928588499641291940145804141667493913493141251612251880070528462187915257251029667143786989111704416038475945258680516194343060857512143140477460474554065313467959644480937418587933725808592167312150022129483889151083562856558452803664861325699493532294441172196909234918294051850452934914955578190406208380116362210064989617672908831800619372140298112551087382890485069145526101780241675514771141486915688127544874136083818703812789600905869453629899497409491679295343948678245406475485609443194682924063755442893783624769484929277092578229279382449782663576307131325838932334395426887244731539435315804586363058802866286616994327987666146765191700099173744168212192816457304111003971023504456312200194385435380306587740682125054931342405018054171922627615657370371224530326762151350612616793487309347965625758723462008192776284889316817540391190825391405192289910480467842246978138367043045566098507819357399160761582939956344624581824878903617699006996529863473050536432101870447991117459075302416738191241693136601476165307067539414756217482448923900151588195014033680899394733802531857297491475023215167572517616543889095702406575902189399641521592798440140476628676676611451360039702536033297313768456747728804760363381738275682377746024755482305124923439007362066615469356844323669735417644856578256968683806047010984856569924860444353649421739387959817144395602135446020543565116065750780653999479743975237889233277603241607840438744288777261506787935210577529590823083090370482057610127673127995102079075470649554397630775059526108510203399587363742307876908573490003979676237004224311394577341318674724074935934740921470487379034329034213634422465240474678821693578136776138481659747554941972071555633902161336932328224366348913614990005573104768445782869509375603153086422812697614859596771742880422854986102487556856551394510866698053219956459989565132972534094386006635794333669292471705171857539492842318184442106911309933901825170516181923776853787349231659260183191969453802440366598283563494476248354262299254701848921341804209214092040492823979478559314836536203145351985190700006864934007371085028549663989991764994896627379502931950745595251346358766381528413262013043449890436381916181871305209124102209517370055522869423253873208626173998563241726618549142153084951192408611419050246785788298935604866257042525440915324104245595337204392513895503499569948611888956149329865081098791726752935826981728644967430848684233386316231409413985069950386559098910964397818521768958861800771309712409031425892785088578364544316091299710524572724094844866393789493224777383213630295185396657711824181180411133121864133386464295467547695475912969777052594138891163671595602907939158470579569694408669950870204487832433379416044557421130016424928094161523259085099019604738658189793990544194368907752229865134261288087408941921956639231038887829683417969848297698865935515663879795541563489426054056264352201096392060822508649218565495663228357918201337558311535652599699959054930259228421824190461777987426024511184817119725923746581453543974708555409535231814013056402510331032102588371760953588899259897562081414483673328186620657345321030866760046694598442137676348445516235436887696426850519890974820949966262675422745577866320267424725204414382297744729339024276227410263730607359888880293817631989968285214599979308932269932239259489167572004702647711042029777995567953659784630583969804408899020311792294272785202856491781365741009424887858199230355681208872977329879853882743538849529495975049970096375254266655639863354873872435074256770928653313761181951861454453569834534114584665826864542235219775984618465921229635076273239316430155635682660145119897137301610870548310094547336547872881616499019876403343493920862843953761970539124687634213586877408428612068837962831129199307173852064929205713302879626623772644683089311639994805049024421230216815982240004561617942066198048615864453438768835773862155419623585764961425107789185341043637786909608374122542068313252144331305470527647556567811317558747632900342566061962060550204856255241871712224693236282805964288242607305058378465297221266242552033443946130828822334837335046772952573667138478191809010071057382231253033302261528135750813882979970806197688623568889113046716088138104677174670356666880364935330449891405923335477368657160995666841402120037436102281780976737253616405022100147925543093195954930887018744478083805676190392078993839383697667728562983759137431059412354489752544239895842235182603998373701369876562584854930574446325553292598427073522577065726459121840281919769537784828886852810467218334416198299582782293783089707457996255521119724090387059360848754390673273367695998659254593608406530323522032997860059425973362843279085862488287380808468767181892639832650773569153590733624548697502883127924977722775644983241888322920037052567959420699731606841410195020305122467345836798082519800552835274815000809001712316494279938367567195097328199978551598945394641542888056937684593086191913170858075976745702677917100755117290070018037007741398704273275113662007081523867252013200658568192738143544132480215757934351502137253895648902760364442708257394507041157707819867178506977610007861280597029413026723329944622375916506903752290913824991523540643563708504610474135631298097677922988340203976272057308014335240045774025309029334982513925717296214943057937459451335732639240888256633095566222771621444661910143242014451050249705907709173609561119535861405071593287101675654282849725949177333329848912826696852647891824208582286415820772812766014148658664333475200373744383310871286549600100161998378358084849361387164762116797791096608177064120780474453678598531620962451295752426496025728296787320422786566588194270829077069047232116566694777104756570762389436096831935255094042528133685744671596150520157622183587350837714835006815047284179571546859301589012235450450157614029485288467596088469474588222351075304544712403307698851398720469723690220190636078755056799869565096323892926224760721013493144593444893402473580881646061119747445796746354647023681849870290308853236411894219221895853515290231828167379748538137231432156019409791223865409411165895872669174288503696217782379219946658441943926743919008343264422545812824204147015182810120696585485473877206927419955218876152974091503046803851948745903822189172710732496444094642103250640033184762607856472814306161143707428917577747752229694013683972011537190630875853974256964140299084197397383997621886102258932908477633071960950038346498479072047307881972724520222238281690783283696056792169591389595637930476443711020369657244803154367947497780183769739220699089070399799261927791769100485406295631333067826865770732865722758140545528031168707692978121966450303765012428762297824999740478120894269604952803972213241471416647023257082951548947726605100526889878775814935936561596462436285989920382126507717001523351350029219183725975297028405616799288562907257819197545343444169089300226517240528404765878771607037432971433377220750450958554780087002053775568809637097060497742725405437617262774112123883148435587283988185292390650091922642361523994018930531792602086196214508476504999253574307605536352685375252720144118145705575250200432149940733445252728633784778608630281172298949810268893672823600245344610570703571051317607800460472458660795838374191587866587982708734618387841926558988749965619661076556797395939677919416946972837439960120790843118847692938343303544869313666895756606380277266228005764885485198111568133048886232770606331919422407130699251092274645970475431353078968692279036115989846851183781652680627924306459404097626604831557941111239403510453346415411677977381084964466003363819433344316561848557039811585011234539812044973417871693722058723195838886601828840737965507287188016728649798037364800972324090275340371547953864464370031854113862176056526031067956531996150230702324454645625204010244079189418515159736960596860474197561849002729185344210746912673773201680995904468322494424675948519209690968173767802022134193238953983612753563364951930139915826517703946877690838759257845204552684902948331741182835811776064849125648805304793727531161627601777455162988982541180623259251756792208766723505662337164411064009591794057165431875684573476111202142816799860317922437232305622105998320103024791853706196381548345874469810833693698098963700510702533240695335415414115026952534806830282445364469881482875669112015816184009940089158159689893985886501230244736932087531745095060860088882850387074240440438896372635099667214755060230150500634328038501397410103393857188938302136272102373661679240710655241522096480859785228515245144581829185351585579638500981894097184340470430953833971661730160822473968362143499570412758663165411610132734488907673447554123179539112530065983567227766137362575081951947689968241209773959560119422821224728190304351696359784443528197127745479548063774718412131517374975031139771488677216746002464397169300873161335847554854735929772229945739723112885636861457701701038974694613967099165778189502231958093106045409327975822501411685159316874104175276349610438102546577640087776413667429119175757194794148916745511719874577590993065013523234217973180532687299314878763446426964458270507490455024037973876345473568830383529832341035314236596158936297234000341413005806223359011948500939172066339058248516223815580968015078178468449073917654560269204155489013740521491957291865177726996071055892990554033950519459080833216228456693658372813112579012875226549148740601734426397946624458879146326672967393108527382029859516607368875874297068247937270689428381569418869882193638086784621067167283783806130956169546542780529536376514862098592786093927805725619694941918236068369679893833381010970521865053934660316538674275725097282487765200055693918232134171615021059472166076258568855904264503047219260114570753613400983854572464103448743638058974445129816127592344447478188539951406947584933727592670349151157902617902011978522889942535716837764644473432815403492718546220741122526118296051028776946934997212588605893309289546522144422769820072060489899697879447629108310334161855085999384896659283895975063893226415244548345385042443348882374410817459963378239148396423391922534361744501073058139969861494947923516117686589394784091543729995426321349334953596568924746048018811367012555346257085516372100610405549402835135216845640888943933772426624520573945024197071859475446379607430573203651375108722704091480886477394118768184988173036918122276805217653951947636025252956462580876995618064213461067114843005129802744573676720761656388136315221135586654185393376001869214710639494257239349377795756139233439586615639461750375198640531332562746871997822726758165876132303459602999033543425352980498781758400802521469096848730228201756414901101284316503858805209271649910370109691615035489530006080848230085952238716880318559910618042333056729277668160257412620695812363607679789567756853994255750750339188434762379434883333232414247216779910150809327211988249199960145359152386953912059783810273841984696759539329135923930402007866947424944987617056677524133752033973939277570199304615842481928379410718616736729306518973819141414387985934216722405376186930924281793947590597917593531469425347639485374942599812368034559154940450370284265984015017418459620085299923928199364764194090025932286741707327505669568367290785374241637171431274801034737496256561017224165150595930460390623312951090131219933016039057212932618081835610680023577619243280554397924118578145697251341283067030444779244905350427000810926044976019085585750338664462360200496835879340871831041433755210983859969763696294155059654255284144510286445628041116139817039624086212838381977315821858966178890323886331354892184035869189531138375516092676742964636696639495031883379814145687809959877135935221172755317272306795185897239247626122099357464254908899616670174487263753114189980535882124558998486127249238839333335974408677756149046539085088759274817098250210133492825471810770061804172526306850597236899020334853651834059219716049590496690695190235793368505051993175518791832381841541805486725193989058284124422067413392097765296247121712617817275698095623861174378939808149229165190654493417565356449564356346300910536132623071723104171432245414217944004711961320696253443235842392812448696831187097209095211572208367754772850648940868539537550593071472998009222826113610151266680004160672043954906756166007234628385894762666837485274769908131383132906567305738289977794631428485335824821221982503569585459472075280685318608946273490518666351715139488568947592489162967994708993877997959604361211247005158350027019419792454768593902718690076702836456334092563492191910841391703307211691604084835861917983403169340276385445740981748735120283975630481984429579225366752651079784010283047976894112067884675489351412997103862034463411770560741992267952415429432662093402477154136934797966230720576232040727931512353797256963483078953626625644939128813549263347452549975773016411954915783155176548094250491402220710252917215754445265413349526814202364626205126859948903495614538282398454140725689109014859413048745314069460936353649282227192116645905192309095148213377919820455210691154997329870479999351803682208088394217542086065009918046151598985976182940576702613486204485473180465415963907913848888468335472488419902872286120673654702025498649755354706503652665097339569375848793929953427793429906806475921967602375900879117590334479711342015982571578085407881038128489546418481417391095560282720743949687219404045355110725834161332612054164244475757525401451015215762124551669181845812802416153760714580268895274494460988201561583292684039045713387498138361828873584695889112418506189531489410813822187450595264750890019377498140180179047046805013141938242268277678002392051034536794375998489266958351807994995877791285713385172672621569491700961645997113210357179873141607010351992496013131810256425546144291186437059323190171728314499185537135051830171256767450800055599647948152750716595811858117951140400092650379560320291808818707011214985191742284464398627131720851030138476285878655658781050682565429383538554431549271428992534953328098680235671065058592109030578781541241859497952515505501898663414726765030974872338480918224870121005683949256658687415822749752492602141365079614187207699986773872081430014172412395722430437248592355732168630363684133114610669817272523091000869768923315416292259524074421921782911867383418470680829090153612332264675077059783611767327819806962488783588977957469266270594885845404649435645706921743740731945227909448117116532637977554789965187491335195069270713308010869429906232942546600091103156352698785130188459103532520899751829206527047342632451146978831994750157601677115583412245259822759959852536856276416380298324888591795223202082366645335333227160219062232919832144707635643885379083658889127572402647203021115310405763758787755399485890135252283931082016033354204871602210244168845442098818221861741406048514889623379228754018737657983938089527638260412708112727028355542408229941896832964116829169271641064288068622477664768901627838247028964633998611783351327390876034812464222056375747487164475797212480915753063343370957817861649047141387181846967306322170278241197783633454077180301027943491801186602358839119008518891071159825325331408332888852008258422119640799751393999815901020035393793518750865183883243289430519381499324404878480752139262087122480968190155418571729288147004073461915866917371713907024322446284705267268126882311046008663114398338304542385144788816999850671863730246384238232056524271756145467660691634753758584838652208116342913414571301286273114627614892462396717801783957736248165396797863132003194817368427819279694938991783515059748289070940499248227695802153210926755475352602762657997322324091542644276103338280402381012318334448672791651599661318623955578076886286442309632087002523807715765833020523678345740945074777208317284308384996190289888882894762269545070751978209961809029004889458729651738916865311015246491773662457585986602804654602134756828122186302710180398272145454513395535270986688519658528964018512501941705932657356304669912929682262668149575533284238265305240818373165188494075425020412681634637914998774585880385655556492352426793552572817062122354472319377844537021778341187405220190058488355088869729881576743651784281731306146533291931236870342049051729239169782861036643996292501542104775953055895814530380254339304369333901130572394627999094853351216478992678727693103716416682463211492726310838122058211786411095213904259368935803132210232777565116591329780062096441936608472397224852235651091949484058441140632652368802233757059808997936749953981024495942183536726783341657398856167148170888899793170889080755990626420986800012976598120934027812917910137444146614342464806647709071278310664431505420250441693822171466958701200366141054057146150676012809425705115212197661885971947620013163179814236194999054403428340017675372135527966314289350781668056143370848033650849552630669318507657086890431813207297142041821124030670540123626542965153463774615596491218843583396923884278488377292018539354664146413566898433128243482623478964514729497264979587415603367810395676464316570433919392171600644415801363625379653855250952384521566783548743942917386976261249640743077696973791034373741662925245563915697959331550737997602506320813138794162314757366979093319054679932331764444447815213339828524602704270296625405461386559224725461786049028996151152077824031125761485096436404365528757979357808093999422562142997702134775703402862968590978546815143857412639957651059582892059121244129014308236912014677858297524830948583081784988893263987507369610142414232981912734285840669030874529577652981781931777595452984396896702693085023443673115257372893925707059843533623732532951690563920251966411379181751612341929071444243950419829866533577183957606525009703240980770654943866428768731926941095922244072165261376988169991748687590012880020942081323252128788820997892332334499513969947311369198381921922937397384783624350315092302775260028933866248321438650715203417324346354682055593902155048366760573906065807372770971076517912868749627088540843937668968165959598093655818563702756495812394532284432217117375052087408224291344211838637752367637445485752061314718584790955381403605400768898077499614829684605014068845432435431478121986739118195028338163820819581537149302519500678740239834435917944805954213369055023757630223694305492132933005238200162546844369127214418902777584491041907685883492287268297722413714741024585149371900660099675676734462158068944136473169225540210399276439875789599659289537861450858175912836792199687135053141642683780791146364047229878150849168226774320544718703279198251441749169109343419339587564768233246835031020144490239273755772816918279373246434826666474067599611468505215071118987277392779466075167147521652529955184321072543246767064140387341029388398906366878735206784174454466763958222306549645615292090110214372991144948946616032988737386448990457101319707555383054234036661986604961490937118274173450771422534837569877715742117209426705902522084800786117053809500755745848815242034918295077524878165847381749879608624587100522788410476396993339735863937009530350915357050249119371747549505626747954455947327838260591562048441546709823984409944260778616361392909849460143072327704982235759134427378927552257230783572004859302984793231643825720417508224059557050289391647596685535247693855306630334361647089204403645820523533084471462236706506050598587058622971640814282271710594856190388553211817740474695892877413650462615426037863642616545118677575076163838536293517401143526970898957226580061356144547239178017364718585169187843377875587291077686452065188147270639744581536120693371981390298863967865816758795002012357026322399063038328311013583871521667008303051347766251945165983330504949282669203572412696444148191810265407203829323253363037505799730170555872299779652194088776376577466155927481603343276708246251561374245276212818211824775148457838541568800578631631190221665276364574917452768883005848710742503173061988238496690590688572240114479111179380639026855955559280587582001356223374895964245729103991808939683409240223556166123557906210758408157254968293785659261299845679717640911146729700412612613343768538892212714355149072016864518659830294968677955654234099633220447231350329142331698913252995016237567394884001741885629838730176581531782912910550200835033761092387823424574400740440561693247285496439561553925634372086447266365302056606640641099089981654759294637129150429369080904322418121932634394337463615385587220694862532298716684651162796570990504424551818720402897363495495534416971385047926034173802118002893196010827340391973368409055556133236004655504202313160149379912932082057086124398564416842735196445631499963762017231798310263828364735410664982975288807401041513474469579765219762137002592621872148037532943039618857648767972546949233047629736156821634761461742992869359978496139770744984777950628394051251545167471346148358869595096151260416283557726005237139068311401610393942964902495252047638159893616548673798663867944600762719343785007457612196768216093124060897738104762870268356474604671287691974577146524553392143849164789306639414735186972717847007435267985785981982978989694459417366450329191249058314645725024314012228281676333018389914929840417492976981273417211657435826080158413455780941901693202498521802394743884294162216518502096129317147108806810731269783233609634845129169587036504213483717380144145847957290792078770523939326074843060230773954085362417010846062606139853658277232537641410722281589401994755340590645433114647349922784843543998864163098826841437159850259631428996498603655412959126984353534477053958452418423936795352600791036124574239576566344106025816178274332507985712395258239379000735571261619687575682090180595842174979386161036529170860807095409882719801843275948631073874995998767476440655726685843574004097884178661058521528089723509924852946671213850189725479377152426179447183026155563903853745651486392860829654470106727083598830212652215606890720723528620637114286003892258197287262555798891642399437279513621995732342401373749861361438447124344458008606388002721750839507703350962946062417810836970630205420173686088642167975203505438355343472820679943258734639858481219617432942577525822763609292427716244112020043278606437968483956199290847173444230214614412692642566282908813679197775167647327511223988277498839629068516643813413801444339889398445825237479044981522890685477868480985413823525320547824345157461250184728588219787088669853089846508921068149570810708797286908491869574994354468946113917343310671754310686096140508397123430341344686462717141147796327737279373674253621492648922589627195522479713947891633482105949601363561877224926725814629388983997045278783586715635279643507319258984541639076864863564665598400777609448603687961998065294907430307662244090624467913736000907886437054642010447117525385917526984635997739153192815171413625158463398979319593631687101530046798876843750694307710852606382645570598801472413166678546849441419639294282135390080465431230793616187698611268597714247125565671352054346773768854603722922967088922517027055122846373124214336584243950556453365088088631716045443880397667212384035973951135284436988909605355214325426273145153349998338990370807865208656496176714874596831129088802865113811966263353851398569184674986772495346708688144125939991967794957233078705125828017279348308315600431275948628648978510812062005609894063177069615497861170895860870026035095085002416148658113733844398060425121702825260178290504111313157903988262963477990039186662653254317418867488872381338971076697273766269988344307157264881910983929562876794596836432677133649201416430907660948888067285836088129922953157852600273750129209914826460659639089924767098825004991471629352886110643696169529272424099403723265852343748685625383789083598827753266628481248906740600467807735481005461381965839741397115385662017714954835785466044901075114390404609977878379064082866807874726396205535668853662980291050752866847355139520137344496686778269005856965498004849473124408321300854662314441212153965566092700174932387983700788313092293451746246377484948922534641563617089108987119620372405054621531943804055785288789962999814935690894011230429615103709171553431657810660723378101956464662119504386699613020739003842728505147344960729523320117691419990904707479220660776318215942965434800761344347820650158115261850389436146455795371771138854477329378109821494486935788990812445037832816939379680831904346275860289702945783006899250656407953982011040140845660066952783697656595776313370322246538389719921833014556226381738494599807718386831144959792748009034303649244265732594735899002777865968834541313543216871482069094132175866512711850287371760156258965421230579855165653780212861615829556104770978905836167907001654864978199050172890637432711888072792656110653999991385037321770428223169582577876990355300255532623535102216582889917579363383742825704591061576985449081968791121355381701396742785604785846449382546931779983712448887924331496760915196502326750789982062155751689704185806404480590482417058551559258438839388197784974209954122096089056048952562172079743163790953635434237172021945997426643320646834593048483852745151127886725141058404398131907525678705788671520135687200186522304641366592333002656995554798838080181764503129014664511464601366190213717318698144204368478993561379872621547970602448314386304699717560746262351573894024803873950285525776748764503427043786988489114419636328919784299653776039004310170366799550267701293918670019805174013542390373702263060402731269880493693272119080564410077598655031759703394376207732571265691270467571449055279424413139362607979174870846642504046219796521658079506112598641839335778278252200710619525989557057118563268508708838604039543918392369686558184345595024630380083631592712828995466252118631406902205536687806325322617842665104468528887594420785519210036023815786965998985571291587114310411442229932587221216297878921146610208772736642173544454682201538922645276216648275789089746020021593721255198430266339053654075056900636409169337524065795095116747528061226306868467682199908618280954855890205374952097138739175822989758590236728624187428138651682698947586389896295250687864360406360697764185462269741957774149063956224238901682458526286729760688276607330568156770005767868405975364671871062779200742220661145371856202155288207981656194034378609980336179804317873896746705727409450178056849866638689107345075138430818895585525770539444449154883111091984875919630700037137939450293355996670800608669896207251868512806772024905350751235272379709722874226958689005491806436040177394009579042055258217044161989925956103635291525120787880662449942406729740009678150453348584906397267475209238344941389813438737216611947513843013489856539781396651346287174666556277341361047631204167596615657598594656245948203272263617519005675912504183143263992325188022004785919716040959686287151964317981698810823858297092389485503625600230182007697715821325077834740306708032778519720950748809088078041227441897582662507938983944359626381433083730482145748177396455574859797708270648630121953270040346991382743282365593292258529614010632325064916020162172795595945093400023917619245644763715903931116587221008816730710469492442407087546599121962020369612617548919896916588386351866157320340931311973966904926631617753445461887440295546765041975788204967758530862796034386792547101880084064456000915670585596181813046052122653878801702757697042846621487938478771278038490723371177250151096733442097110400296955265656044543449481425795608004744620930759172347997304949164954083277907219298837541456028316491445147803628791212775532424800629525086642400153889159541117297782304806483017291605196393809619721964093401578468938412018333116924886203304186503585322962609814581946813885855484840658356438816296898093955663269164313350399248232429927902366528421038193617962105242742194639306548507844657419061997174370781326523808822704826085046985122835848483859695941732039222960357668447147726817233104228790412830700036049243669194087126651062962556953665680202868812277707506987013788552564488621790019788069789365200817681526935512502569554121612344005615515109834242231168950868030792997078807441118209795103496776717846313296765715819152312645291554365251927778593959981939408226424621497803032405046810981786959973017740558451251623772015132894704262688295070439967188553982691867692535431113606515225785622723169150792518063757485122881640955294697935565528038443432181653497556554037907416031792601380618190629496584491538812255627803774080989509140621023379463821959641460682630755158751083917693485776434627291617059330448418714832780508071466892882272842552101699692422105349542873470039516900830977783678062065318284130265597917509647917571708882614789361887151126771399733917065354636895673401590966991323537265336446058637306919763523958746529429171564231783457415372279143363176495238818064536522337266439573568031386484868012994198042139889519930063603681365623107528068252839830824672983999620008022938908487470571828388988855325267519297855375298949524813925585585414900060571878369213163300906743924242213095816292642892842685271306923392356358135727324478550204693940387417197736619772874823474587741886570310187363212583960984233284339170496905547313392395497611254499917875901772029979513595157600120298903868627811142437468757266600522227770770638472583714618414893272305126909258024579615561174403768024781647992225471727658542186672936023426498832784281168306112995861874302570218318699689680936300630104631016325726828652579305860861851205609267369783039081611098987329183739370330476092738170547598061567864072473510770783127671115662265091131329404809850079253728960360098534947939743200083616581831687773493988201322626868596766450312574295772057077281328266585545547614080235560791089251112126539256974155579451839280800518426319794771879728849664656050808586784847059466779836031311065550438729881300376740371349458657055430162394392839022044158357142887213388925063134863236361050276725543145553346572551219981058930592093696311807609091608684542206454341734173378946032182088299633192597753150884680511561821268109212184666025514843826663310217482981066018828891335390850047231862518694248480870408736080314222431102814672603164578297349908390526866641988788885831829901253915459023575669424347343113903531364366526065005282335966513083040302335229848334049340268282670671322517890503531641832668270195992583130734012244063623370653326921107676152913374598982176262093561377160560239519505604225069867873667961418388189982887592476415527351531735264049151818711336578949746268540638890415787951354762779192610578889385472003735726124818811168226472077962067313463459744626027420117681638967653125050330049016983301416438871792759973369113082159425459986313469490695089384322977816068728708999669323278335770395808854161079589433266889830450936888514376432532890386511667933783782630714161761434140060361409407139776500596960751229279715415930795575306701105468653037959650907336937909267431848215649030347284698906274919610932535564749650192100820818795884607088282957831235097411572177211251188057315254726941154891078977639884700206751138441779980817160625060289533492530621805743772821512530311345684115526364220984059919502507752444684600459184945885810112292014960955646755576960887325230529232612928065633391778556291296962257714467096871911403995802702030517945678074082661976461985496174725427427623339733089310428970006867572015246600773432366330770486798955737668005543112602391326821265012421875228372547537141045648987244624262258911369048824365959100321297202007973270094193100741674136101049078950089268057781036039429523756610944297352583731244977189655187569658962254972860676523491891905004434453777259190490779605676267649965072733948173685983463043659670003651334062993250109862971328250427101747505815449399209519188706448854996344126795198500515849471094300664662303463470284974690535268992659406612249629589444819375097254065267849837455868409095039398506505265758808254411837148585131981040703276424575280961038845107412405472871142184815722504104611526973565889820461156636252059521159998250695319930249554797201213552218471370483290717034390171726153797787341207889026052326345918730234220413729225826108757188080911988926088691232271101296771006192913894705743127674371461878877637561216903891552384703687054200421898163165165287508742292009624277138088686441451091496910187339175218288502694113351565853482635208696736054657945667320473066064616717403403226185541069549530195430988025701944194577807367752657255224472592370133432489174181694786094406418600089277833501904215361869466989912564231382181078001341559036588536236476136411408686829636555277020499644477633398883810230876990739525052536790360336880864465876539033293847598657637214205990482672607058314628747938245163107198897823744185629725089350801508129321438557431835169725027971650490416397455689151341848346427696834706524588835303684175425332870597673782428743734408523505865756381405460856414214090503375097648469234770980912168924888144879818216264045217729677905540778828078601255820319298217061551367440230775945519744132742307001689983676021169611174253733956370407480159629630354112442792848462679743912914844066698445831314793196365850815152349877398237156728659158057871430708045617194835311784384664946599394346660946039041688569807701405812491709120953111332994527667941042913793113311676865714360659316666648260444619975645535696620774991171788932891317367022710196694183273648495369416798812557542242092490513189567645428294656622814768760749159791543466627832541255230934488397051870694742512533728629410096617997815159655801932772540761509123888490607340377862785693781068193668903036648851569080444761753741886853313870894186501822995064399496978237277894748365479071922603174910352325593448847232520394509955412120727438082729833758248615820207744093083876778533865055162027156044676685988132934003275434044032065259804451036709139857693814284594950480809217751259883102863389492319223377628376084992334757646382385541562819478028498664790075996747618777801563910239314947377588135248120206293642607939073315341492160124841445879141848593228388829030399015554632262317751027251894377693309251473758175463751950466991003353682328197232281468079897851372393219804212835758159865864846397213222429965391898369650765100904706395897263930825506386671205265743738563452840315812680100984996885325253648831216766550210868478977362847474694876757282900899312215547760700514496933338103985475389280352624413596375058080564916775962566515498626923652336749925856493988487758593437677510323145072423618260377732739328825627364434922647527386306124183629497214307365067200335149623670941162068895275468673037549813119532655570398406384599976360395383099218711281871549830454695847719389453490039790572782873222231190434728776006903216108426301645609378111130407535369018071417511136200153442261078311523801955071508814602439821083282463460106228418495497642366373192192882879897663921803267350984833572804821703930036129012965911813280876251846735077093283382087083776588166492421728958875405568469485983655244338641204035532110804299507027840158014062934919547914151895304829983001126030327249948950429856326819517635022225891322520428854703198703887842441807868821950745648953861733489408461574872202128312869293236104010719106862585895599824756268728209572350278058791984718811674729146102548538955912733858484339531225631638529312815772240706895574375654571875820801696851076102745643117979829593319192433238290580128793068539628781451260026342879503770703376317447722332546580906867978943863052925716524061042931501319958972506261556850504428637911093571819391132424202454849959460607020149157629986182324689540982256344163350184342966687510163203258330542004321628348101462422385059603443793756089682500385102249834779419278446869410044157993544030420106890684083245288269305917818696495592915086797909588605641267859338844081726602364080815382517987342579051557975069281391135694423412975583231505241534786815988680889750956910848871408780278425317304871218566287151456859183384956039463782269913738417349449307151625991367597754020569293483711528260021040903573049440186304274240734169852044508462513627537021672937825329750778946168617827307995255874228713869234863757649370028855883756189576654586679375274132575022997699099699206255260808419153138385663881120432944830173877949750267627334772373407961108892532253281473946653915413242923348933774775398652769701631027532797209718358782296635432420721800813772392066517765771353107805177802750769492271928355724008150740598337898875826035431758811032690483465503920989421015426461393885871670899837450447719661996265637453056820035724747039075920788463527425591727897750796621215211261310097819935914410554968569242457983524126813022305642258878829488538278019595395101154624026485595981219904801283601005586802848810689244584717506934881266313882854158395880575141510505314725956548063264918079942360015565943615660363165801002034959794151501438352066537321201771118119823978980186704879614669265105262221405580967294624198451900503060041142775208112749152494610731678123022862473242393288167664156866129987102687691378085898771312609988673129384943160005110537423979789066341247043626841708222193476333488204356859230190058581233218295419711342074142238045278429526006668385529311677537398769562254318186208232699955848041716501789463002959490822877937549873206962337618964116083116668929103995485118346583976982196138375321716069609781927426928895629813147537178513853608739812739673060557038844128149144618599305314162025559794726681945079021985620000829789791081140145227525853045641471622226053770120000409341238676850011661618012134987424202319837124943955045999070517985270688629228510114563191792771069015153474757047275135517492050037948302071166577839700055035381707841249798890643925647117948977578691431154468183867880917754350402022362529597432339308828238057177614023771680782779751172744418858675020466284007710039515796887369456080930989777670110337843320583370767563497035528775351747784870404362631565546014527100514188174248131393887786146881955816749097245985003279253942966701872642758380613475976495081811780086846484012141157420535834666822898599885987039372682708599567478131900519262163761188016539570692474209142683443094687202218505797297794597793502316606124376762336885226754451257267015719966736430074879583334440928154718804213910911972028443315971908581891981359148220660069922633163257897077632822436634043992530237047338886209581137615851403292753989196227046387844319857063815033811689194177734305494155067612663443125796358920732132317025678161504340601909513879716574896475721958917075200045219403825614878940334633630095943592661569189009938820559949565107061622411767084573892720662379602127121688427795430427022771605052669289026726117526361471267648095839321604747753821202259275473709212469893345809273993950159744230275881164858108283977715455172320052765155143271303146139734802052354179595144688752902470233720443507634463493729094523575620699132180630654722876808266428744283337457765119313571257395506004191656207184716171156556239978051382007198297862876338634695446992723274097932501973495491654602361629519219639690529355459013072011206786260398909509063947977287333802521116700103436551073970543487541301795421249662633840717328742168349353768806050678302335759591460742689888376946958208832155309844343100807968304486426033410965166434300804023045252750456649339940013792537081384888213573927047912932296083276520364035626543449130877626846875950952705872387788757313670398980066741630519880035742977998362416589934999469985636054547911575857252237064381484703420444893102765998640014943847591387791688382346334812199933191317153873687524215373934213407268059669899432260206528250742427578430808150294439410151255678159895952558850905256979015182061157469290735952875934160459956342196874622555577013302162135863241835710612043817633575540732771139919113725860626524153375903265526904468368666466263365792437608069541047805509987448388100466651664100330671424856079568058085422909011614221086326025411285005581481169130263680919610354175481567748729497346736240754943610826029642605270138233325178987482866334485080730820538943612286010743308764157896898806014967784779108634728872043699726660149088446979155417291266682963330218695365565877623837966642061277718710264139727845455784590631652264738735892831778699423425939103201813098538308584499296001031635454580994391653474997059742236449098536705656107041405798929818033907879533290155818928229866751243902259232778831117591592867952922714532082932656239060410497324438741104014946281402502472855297183343276737739911149818572338968926494874503823321090435935066474627525155454296841702513771812126133058106185212155746526815020844459770302954907546970301457224879044651957510826199709782290748856842249057257763195906446914492861408263076885437284098539114545141196980076115858121548317902020200612642803125247447345305070901963769083186560904924123544815056830238051594783077369096773763264156408066712655468439365275892249722158203984068516782610181735330202748000317960891867338025015423197508974985133092861193981845324210097648455721850882738191723616142837192766818351744391619268778173258419603448828488973362064002591021839917639151756865037288535121632170208572405910955118677016480321171970998150608309741234763641042575937219837785236228876745327871926837806665585208850023275184111302974294054520162226101885813514556370105751002750765484367237851355810466478863295292410524913705374193409198265647568403698047721110483353022235973785894744167966141977575564334938060234456792495542506626701130714323186173730419246750401599330215662085919895078655365045007129000779916308742463924913462773743676199570465441490536666643859907230879972701354659521553501576049887102262460887652061411340499734196858165721255043773938156223812751603277910277074137133296107532233053755374687651923678300358346067873538241214006916220942426129195555720772523626866435818325516551269432303452720261391146962863611903402825343529078769917091162713342147246666151493737964987289391633466638179816661135979201571506907726469814263537176320766264517949448981530766561272237385199754848970390760252722285989592346469053544340455270298621061384164208601861730555767858817271249080726244119406418575711183100573558144792226296336013036936686305945076903460886109764616098176077896396567218800769992968404245192757385426979815900586669506883817613387519468439400266778397544255947041016261258383095915812133807850823297323723172129453202135197500559992485471646567761368361576898483574026521588103553745895647713702292682402691868030931228733565999481170479663782742677509476074905047971845509352198562550451233567700414644421729602079281624486264015482632495867212433480981413034772693199114978091427450054351711376811137894812727196109999873792529038702991982205208304566199953980216871619785069810549571122976410811096620821191596021747893401520945711053255943760238628014856067673835961157806556304456115877135810914597237521895254536988600264759535961714170279151627049535295592578719990869512053581030784010892672901251306175773611852997775733787292900573562338206941084489635641885602609635890751861021989544275128466915085890809347581455933956461671976350915796614302741696743831100001624074400665187685891469559344043902452378888129118649902188469977634932933532055380006212881233355913164560542133103049520930170152977935557585842190988323102153741246867963301157643056922927622410272178190489411494066768311521405472100299244388865615478498955603297927526176759328118383204595226824389018068131323257533907997425757142414752501042264397831812916368201300882340385688825363138706691719127533270416180793470901126637762491304534829982897402397828084508119413749996996874816814943874022828150869036614298371255936488096314608407372532289603873652402575968110579995439538756350677423238337350252167139925462506579955596078944796946440955899520115187301655708139411425602666936434398805521655543308039970326737984249587017265077122178137937712457798725913858970104364632355957944082700439426648826180701977618549389962983193466137132544008266105456934462193361429807982829819376992946220520215298508843548170326866795239468081906087593063963374307698837157329280435835021688459472918117407013586636731595954299378925772757336733777881906853311893712628718982367201372088874859586860585554565983902661658477365645076820545532903871729372370432101420054380974768446090638999593888431897412983810174078793206065247243880495067304590551874733287241314281342908323215899367127799639098064844387262580241748871430541155484869638445075809904379915077610741042214059613870488697204866508355671958951946122825396068754507771291499619971320791553692551950165666151098650664416136701893109747982006881639553191154478454034969819391466201992390577577198341316642942256718229628773671765148538733446842928270669716581000953963407058747572925628149876823891975609672754242983417023173313952697869776418661186284250514907635145981759262626488592995494364354490509462634845884822910036594777306772080073030458221778840380731446260933820761939574218897626182952839063085009109814142727849886857586064788575106585644221381463988216266045068300011429842006722323436530530905258239451593072456869795422123131294919031779799324230265337268142970305912784229893829439678421209493271181107856910486414848953348623824508504595117916790689001646590683652859219981374364599739637750196833703369701870219677710802680680321008617406836393812194756885388851331358979045015960925759016978201907337661562161847280479621121249739265567695801501774803813523737602702958882757723986815261555097893213384213291922434557316524772258358314120395881233148604224572943051338437760305143722433337071040713624547492974677676602497981303880935325803346977488669710350616526618016420810987005304438439603212802169045773133480779759016221073143603837019142203982528082849438697284573633442829423065575481590996862503148112657145912959937626770520667327731397386365721393083854449017566463200250365692705072508611453192146936945338005220883320004240914189287255898566550148527168661255375248020365222645411836909921954708693575956990876138078699471564538597690801172728461708944711480224332167562356509931934617575614801185545293274758217443548818598354155011260804268311671857453901450130463273433569629325518305160234100342431336620014878979025195217285822821151093068908237585448114292734019116150254698041264316451321630246588982348146330808565866502959205056826532002366684966274798882904055658987539476247309217465702656296811953357766327564879338009861292919441295109010480556952866314992385172114926660643371936987488477750389187033707351377640984163068814099207763164042522721298534647438966312281108377683747948267523709122304369434105458601701321503296623251429806669586843404849642551224051462972362685178212771861142638714764771177885508614023930513341919812273840313027351655464651547239667783003163237779832872131420939694712257021749488811644397134441041216881502552723602767840190431327935367277590723081406027527533284749092958873104370574683881464491696233416121709034208709905972162675826158093582468906990983562157184231210226748902559129462412187796402186599302450591933389914701330318976797885528284420663216500534947624920837600810488276673610444542956677464468285951050211915282502469723826062174372174311558306212708385229097826603683599573688459883712670384799747085186914555499864344316652382616938758104274579202570559531593107114084203814708402128292539801543965953128913104732323922626804444672143743524665927004016477459795557617670899259413522495779229048636903065258865091389789147855140547558464223483466982660618720433534335791983508901339376986679099975307725048635630427467557457114596721179686154507057793639473623705062040296196941699432880043292429416296853635942745584040897783299688457829794505102348496408687240470813557632196448444330947671187423800979523776854189128565468758138499764711175009532302346409013034065974522605120922074620187060607953638631616532503206146492732926772503612341216517044449286547192573284742214700335623085245829086104174676841322657011062278733519539943429054590884082337530736996650165453496632791393101536292279021607948368020287313284940219018496206071291999130065945534657687929674114987779126862357741648033270521474392199494071241773307848573307509342000725559525823716105824668646273910936396124988224043767948627406913812536298010936597166512904390514183647981397271865646533873587980187227572863532281052178043982322800564456874036469132870696322036521112138573939422365443141286893912705780678500084105949829013313569932489255362847109662585579201595126957792602287807413283039382145441104783165655145689422753594664944200554934833551896380161672701262045202095947592941681793634023503611953173423206111924826465797729526233176698727640100552222924721778849753330343555397938558804179308096933418700299892281114105735711134222954973851737909861490761250976427050695975163477246686862865244728940665474699369556086981836727821124200089727405510757844438293607717462783548408258885184958048339668222888553099310048613855091408456488398790687715884710930370158822443421348651274919820945577620815902820569323467984045835037817623615781540221874034059100219937098791009109820805234812850090747916162782844022563258975079677478008402842332703290949251822756969108586257746399664137481951981820181084428797368933086354012128408852461779036239396524125134726137136769436980483056651312455224369082693534564749029796610835490653847383102497238772461242430684048821939438502708573737872134210151620703404827834769844312090942720787091232808627949336750399920101823501103793596863056820576432955861916267056771896742226948379397200138940129618991331596571717122645755580992410803894261705481195297742427065028783067759717653191202191837920509912700950715294445825168261587350508551807688775244973578077681975842095058344660422722238967511351336574169493234403898341033078166547264206762129683512340564068634310457974227855065962110930083457917537056799346445789282847331715385242970577783487731340603525240779460038821353034656683258642683329693140207861495763998153990526371769877834019438984958548822230154671916998858800527922092876756294504563246618353912664495063398229015332520218975897874580467053541755653912537339724600080838226375024121507883712668148582606530269012834827232834198273622390016932466365279929566850630836640024974864857084082442714964532172617395856985281390920454471159917914827827998187216344805099078473854633395542582023850957533314997631567813896324373564387000446853184621085015029702248737850946802613516110532505039161447560557642847833430376703335247354669250142747986013844097125435970515229665954594689980702006683675997781669849559522809648127409989042482375634101398643609499777318756122067794284607605399430423478739436186667003117044471800894591445263594946838342283536189405938353233742233276184718729342736703031010798293756847397725248623372532639804779590150597249437521527122264361163511743886786954222279906414154118682592140581674310520809539379925928140170536179954822973669775563866288713584585774126451047271370177434133769533430631555726482701227513396261084579097952399917378188507098461113210586948995772060330150400405395499553294755250422903341679652393924416784543456384371866006340332825044553446231801685930400140157845291700756421233021773082032585823740477709647595498268480896680793420854116034689345909286830392639315665187801715307080478591192805172522874081723459179944385171194412804754079513725882305199550042737022282323725760343477594294087120326490591911040613212005096320766514701492591814802314751930125247617672677086086671189943322277786900070703596941491254478881297599357507077425744548164344659559481838582454598100831897278803531883528684536946313431623371545991638202390120300364101194139387503606867742259914188387714762948881830007762967190260131544420187720517808199666784119847712673556760714736369640861503376100966005170046709885332490388275136218948418535774752358272643354360406558910326737386726155111077457051650406999445171758076350066644446355657638813947920354528641360870911896869306491398009604619268990167224143586541669644008815520669699064899314566676483180400479785238816612737632291902427498995700798343257279862760992983243635463743760275262555382369528863620400923985546345113841157419601384431593345586328035517994810549400668735748715723034713163526891840662082033655392454490667108279606460854131586381764552451976658161102746227275883175912857921696213618478181576392281164438398370418618688936210125348006964385589661872190606805418790501906382234686824368903841961744864954062938171330460428879793062197265837358791793324325222066670720053934923741056019841592968917232014189863191863027482909946082163450497393899773100504634782941484038138243292545606743211962455683600916118556411744666907668034472878062210479204594920575137454256399614293496037099047426932217781488371813015832988705704217512468581835350286937671437268586932977083686561826441432153768405487638159119012099316116534887557425451684700416198291156029904305256024973459910605295181853477893184503942190881246834594230325967472645245850581302875718400922322440887276633291002665336422013269121340206057042247943574964860491530101884177339786091897587788629751090054661023903080614265776002225899933057021059391832243667114150929978115952891677869071945123124621487306546972895559208848973619330298556480705120591957652533810574861114761743802114257200798626748897456227525672710677698156124670940121384583794908366521415550209846537030426937426875457937505607904983760535481395868686507602892218081527933204703684980151781815400186836858619489017335110697821005399731945377623434731186844736268673938898370041631307542360102279663550643279035595794743640403383893566610967291237511320247411445037890686604341620705778521832857284599620499298700814788448306199563372082172943169966532433498904291226321284307565949336608684719288044302924558610476165694029638824226636978067011891765567981333463713111870296191952558485502395722340381372492413134274355585476831681660272597890227166330506611535836261273236168229374352367569857530710529904784004730878269767235380352654415065973233266908880982427908573901384478228897651463816748257149741814741991952797040380594739561059877175719938664044805381636668222500543212585770736030006980318653274299076114353412590749466567319950066474545047893246175309416903745086544612413578179193639804994140289296671254258599628819466744078233964789760992845767309451490842017540377771978894510238704097765911586133343764216307700985349401765088232595832447953517012670901487136116947478053660020395382636741271870023462132758600487671993368419623682751448242209886979320308247999374760037297865580572375260109051294769966865060210297537324243265009292999445075992206883489829951543353903068961549377306527581561147156249176878075000087078314165731986762387723115647470682106255160521449335194836305813901837069755470081871332649465753966252300372849931236666184224562263067754768918526318922362121852825479382779727931771555771625446199014537231466615928079128893822310123486767357968033005570403429838389382384729351871636344349178712111221824443196175296574906739326520181950594257747037030122114365353766220676020320747405237480340193082742438442424164216250631208349559330613580084662931114145622082425654121486438731761393043487566379511280587433278361386145765842339353136942164617795692928113528271924428250837955446594603363137143938363550616888757837333071807875955383109072992346791208963044006064866413983436789254622638911903911759201312998644183931712830511389531406280563940606589222264292965076822000926147782345737643207850018095633663521695262847923773534535808220475426030566341386862724632381271058126245026564748275401826227554054626152555526471681334611260373876620451481444839429951603686309686761147933921251103404055249731757089807905951104685622017389028526993776737526882748969606859392591896879392061861050156046862292498677283339835639799071049065060751108276624121073701090743401421171697503043023289240685544324930833848861351017333725859915397843656524173339776816462237678668307757788767303885874984277579810783866966884389257824262353317455653479156992086095906252338701793019232936215797903205673249545985570708372614444536496001204036926902277977075847594597898142774926200485106803997633977199761390479374638038677122199167373212009449364040798561751614674772194615255493633002372769415182203302485099776308815152379932691795063863336047862260115574079326795396511049319428027824784588260577156133348457490884256335525052680498175176373364109705991883770351821512192702696359649440794001890147261029745671205317776248308560217178317352297265783177148036855515030707047321146673370247720685364316915259797449500356448538890515016645158693633032559059969835450737070120317479059552399945987027847693130118519803696425105385809288530838340136619306862002287712452552687309835621250263867077774816926696246399328508953482359450101829515451379461632478300381971560680832208896138701087823651521693686271110153767861026756843050778822303158162799689831001260693661506659548346061646460271373361399372088297153671248827924699852928214559112649453240965253490722962538669147169098351439563812738218709246188698734444191976941159289988130826738812554991557003633264951821607295788318178942943232977028368164030492931084356860067700635525365280763054493301680163837472439995165449551990647746587147565606886428374061177584800588917347452413600139258154071315818818756500901147844219911174536646284991281778105586777197220514033593171187948703148985222961962877887621481056690430744998625558099916216975064523029850450062830283484240608342256019752543811486339437653557568869387788174462453315166899274901329916882832362907182362242268934690669399306494213382132510318379812183811735043366490182577626633194458324123949542805257951193486997553401728372152661203801903115655852140043909749411021383290780629493236218239804292954844483401919292205873222103742686234912102855291987469800398475573083177030221366802499590369047702592474547044387980411608474732498762260907117099516638050807441966870176440937257710510586685391172117957857245909499410205848816264146751843682579638191319732148650311052009185339074293584631547776842227670635700048535051482263415393702307094257273921465155065427504945622837343896478165232006209181723722968093593635129175017848155587124994722646485637363772135505292922822954129611838959667758465185161072479961656278032990600948280938907183674829460531248433888977752747695946439599347666237866179745179625286121665945336105883220935347789419311910795139313564343295160484715159504639306688109462221637446363066459141086262935003905160695650839845753547369946085601668857154930097538787539670588229302511915402444130055799142558745091446880108192212954817949288618022599004155537930982604006672472650115902080558078775226703253923548004692356346643141523131122742542476626483591741506178102674372156885081887254723155366061147604861377030102034144195878744730144015628571658837068554786686746939496965670256233211385852594637911879676012493188082051520760987790497354170417948737632483822732024520449013779827030975227466917738338547613795468124932349012638679254433909991315734949958980514893381829882842532715779410418866972678381221898711889139752309709070290651499212540611078868781310932738763429636218555632610588934742386329057014659830578557427037663378680927060484864343683393407780206795629633929116839236736821283288706454967889024998322772890206142559867689922895922437267493378709093015407874260190032529738931220382892441089688909812310061060186815709889364908097855311670853207667867799665790099174644042728227770043267482896679819741358999318975920375523341529034766442243763269267344044448502241688777778641877907697683700111282519750046215528084862610690189608884382304742594753525609568406109743587695630815039162564569563473075772221914842372911167535309246597374568945301634634405511394548161223142124267139107845339136743983808066787131044785862738997372263430648494297125800747628955554778008912007558968782592025653689522503081891214855986791491779586730954233196548174573383102837591078089432793539671264365709902040878443237171127326672227907359221009004169635891882309421012354265135264327485431081624299853591806680479411810424585725361365361637087059257448418520731449008408758751069060586269853614529623099212377369931837253156341409430285928172016350739542297454329596829897285887182019262580518291479017913942895368705514894154688208317590429014302984997686790310725815779674008905993692222532385317348231837108370733049360532503441410960135516706581575930421066940010463075585529950473086874195316664518773426294432708490923467259089454202947029415837226835485762306717776371972923171520487452951418537799709990333826282132999689851225526072340804188910918764631008404259369435843343257613617329741224896980460140039257962347457539156923775399060341486181675648296861420457204832734130754605381575910958849600787818249869927053982477063185396140242321652271474095546444207077100248706160278267673704337434490493292973399948266974575756119749011005336996430772930851547005711982056849673552535771815030898047203108742050737335292940311307662934793215641613330719628104652495589665107291647826975140224155396228162132593252028843451794943880341527142377032619685409574349997009572097995657675361917416814992459787771019511610284890636825131036266489350223769471908529349791543395657543849188620786581448195464025209931838776790185236869659553442811185595370257141864216667038236568658455138684377041419100284655519007982450929188278884041534517705137724053864382243508879933373694075896713482329653929359977417013976296787012591966221263169214140044845415620281580811108037889951667362809696592209813492871459316064304425498558112053227954698389835841604048024855921941655271015350797444017179384724365158263628112828571884043568749862278344910702451642577928485731116847303626359924472354545419868857583851146244369430395152160723726890887851980739167381352999589374033587940939328334392431649184451379333164897475515463918124296755231926475191071508435444873148147665737126227234441079424399540559780666774590130277863878681611818274094904222626319956022958651029543562401099341739335700914157986213282967465540536278978316632204398735964523377282636404910244129669874308426194917422257489693339086408542790343800452510429768486481973826421860524184392572616324963779860517226408650406793867286369267203200032754062368505573066238615233318449758453909132170641028566078832252577938797364393543958705234708784090816627270854692462007213380383157528075468213247555130830987445136093091639107127722706948495347957892524057602430938273746192777149183724442487133194298451743572658236167552021169187317885935309002475530750326068175231222635218902207839715308617199739499152949986761446996588219722056641132767969096359006662139532849489130934090964613103911774371259809399245493601139374875385650835692358592247143042048964757469301339774533996484210403783308178067526122474011031721217734430184815362180509922590698614001650047485319069070565985170275388589988806362853542149464638752699484623068192107522425641879479883991817147160696347472373303355395869545070874051124085936233079832309654814132916104748937722871656343599788930355801927126846450523759468162461736262442192037771973023692138622236225967648880281293888418660220530009388742829828776774241608337742598489953020306830938412393775114402364675508208927119147655250825997176404831289171247478774421334754452873727815212162762945211597363834992289840729762956009943860186479319063982500801159565876881467306653536600671487713152703414934460958898437754747012430648495497330313608470782936259940025829709013161034254504161143677161545941943953418229257034316800599951455472091810319617301825659861812516152931402968594135258594789436069728545529477027068829276382588692580436026045989243886909601855570979594071898967583402677495407926090129771285889574226099768982490626429462612024223829586027727178601096647738905549892619059942969767858695448651960784460340281575941603874753015174959969067522927613672356817486327236800817396422517145956695212660518039552785736580987199569478273137727705519841230223935362482930389839215673007436197665653573548043492011157833081537030374457210596268759526447148878726337247265877380297183625425179487751949861359328406609847113955543027516775688166584307794383183066371062690043160402163747862877356305791730117968997124081412471512644358119579830357631807583975256030525007126580219436096002429171630233575684589146253568180002753026921108125416693403921571805476668612828866565098662402889762404766214702369565303448344198193396578574850694818370157933868157717494263374264886718370476033159975700991020502058655584900490033040584139955773828829536084058638070018939113467298184375538291619737609347152421706739838949381744731584243639962101978144780668087385735389626696990311340034819653958863100380770665415337324127613028134275158870108372184174497828693754667846832336756992927692333140915614672306807838672251364897255046533740632908526590901858410894845698369404610949300295848506297770753474195991871566114375829415728273495727825130241022538549070353231523711222835661030983424219341154114740917252372698341699423717309020649170793647983715701945279910295953944670019825873670662740997843197451095982043475075765225449908701238959542556897317203285337021958198664208509528865618005470761785068781951196584140763369847439836484940086239806877718506245775774532199864434858673170822117926440271358244992433727308289210558244282824403171588010768325481345212604085773107329106139512367499239304179473717127936855861595955198400869434406823459172740933294952919070725808121027238864277586650399975282912934008871662556117975304249591138835294482093139840473921258525139566479108776304904540628628320462595120104564622381664040293063884154365467565363449339546301431008172151499899301692297351253323617816691483847774151141799487469573334042949804320289935196754020065782750921357749982814429259027658603532900549467152269514879119277657554426150962065562913588246351405099303558680131915078831902629343891767795599674317544881951331996828402392817596325691710569906377080947545492626877064004215579313213295847038208488161220658379745950094190871972805090001175773877662026860851801840152751576493936587419242203974210082275052667024522214821278413754255800053428721593212732010685039105220342559323886401058392455689181115573513720956372225077752370568977067248897946185524406034904416102852402662608776870434306967805037173762254729458486463320718042617800947834658131719855387368789606935454239345133052741066489168602100304662501576442065649780434204958363003316019002426915891464413871822161594144405198799958305852756898235498420995570821726878923313235964103546548672673769296502912035659718046157716566000350708602987640670439265627857132115159444013712998510053303964634200222063829193284291864549882048024313182960666960104973945905090172603846941576885769452447192516699317318922450039985099105032770821598937481329356051454686050779053113170281386783067958905102643035419123260900102617678347335213689741768632437746753921893662127160489586176911354560941493381528409688655817642730499897667851268554009804850182885518530977385826352177028095847782492806075680405095000813274128321430256503709293766957454444488659360903242336531555675220621873236103078286640027373994581709007981625122668551944479243399787557583796167583382819006110594958665897600162892310905179718474556365253674492295496986020717922551782004216058136098263498339188197886045453224928014246897980941675376765740264058240534821835038793317099258485624292814563788966441800582253111982005621652031172255249493618275831849617584852327057653746672904922923771084253617656499365086257238383807287195625938417253728031611590196305969259318697291455202127446024329063889851700643107110509413470412545080771924490249905259512443480949035294493495933492147047429352771236644574544012893107320879360241146603696310008126651038160591351984329340346063908657691375520476883836789140291008617835709238009894794260072946989001793418088663842522676128192439484706904707756108644812856513368678329351543682212225185674984438630659493349604111656112551337817930457157266868343383778741673111714202730808373198743080954344011757023657098344133371306468828205811806909817089771385107784992635395107018155799943092744531932370807929443188454674882657599846567654944822483242475478194845261968287025445879114352563458734790431234546784560166335695618584861117247538352137874854159619793282805204901566767419607116034964565296431386997669973540311438827454533849593057379515091316380278651813267529655517766184319730322091191670157342701479093016892570966923605784831824428379104615403509784906864299384952331040402865705242510528839400518807518634937642238101254612263892499506231956057476386299745412570450199421545412278318667425154863208330128527334760154832374617087327379960856739880114861725874254828964120065297517768633669948384690839346719407171809402927718898910609610153353592109775587144559888176988008998974087528372636328931849288165409944369358522776865760180957158554571939142350405307839027208177082155650767634494868112424802844245191099064702533332863670029331741877472322827073532116041626449358463846287886661410281438785179493254156237013488834774243335835548022456625173072231624059349269079171260713405310998097193856350286396927484041307717934883714822138847983426086507872105731972388501681984230460414574467641235484104276416685621382042071615337849071147480397524711623527442453184890417835545879178599561307257236703083034966634312463631071051941322080943768063615478458882315441539098073699431513899692514739088948134029146674300129177173498011245370574139408391886994244758919610536431239474442740101183054445145566684541035888449525132746929828319759772589823779112698723970056351146536774165246375015766047947974321647488437718112966743364783912436380290334278363614380240707524438516265073349783063541648951191861937287116666961161557935026168964478164481038455116576785446453752708611336048643679249636056937500562092091717832001124206097859081892642605097125562417162510578683877832736787184286293636469078456441199058848082955178558871198974986341884293414651796284119705722091950338354861120128524026749706690355358405959117052587220860230548393769700570712026425781521557673276347712529930793156551519710178536284420337402474024701123588882908150971862567878627634148337004950536308359506770692350802944638469824931068603132277591865631787746596411717962803168248198144396035311249124218115500037802218726815237304575035952753988535764127402790316616705744812615382478966134561013108406321502076282074839615123144559181223180040383223029234298973712743840751560060362902259569734329175797965857545122945677450284021411643534900378728096849060579470546674299759056620373912048144526295752125214801117460247832174926553746839113133476763534497150994365099455475885672624970944514736878903318465965347499026543670155318279398262298022684079887421659497910894462162708207810411434326698621157563233513588656500669971357539151444084639477399066450974616500895861745193778516069398882511989879902781850129586869138138730680025756567079685966839698568229105441519131369002144484163938238466213137856927222109532896405846350793072517551288032698195140004398468162869233895757466201161260714590983670309393425913723121892047447749651333873281973905430486779866609436413893728897859672946925115493458388265493785710340009148120983854427080015251922299794159852141228761993048789407417018262196184275729846502030532561722701226405569446630949330029128863651637742062730625617372787486639881142340802865982843415025677370363280772957110880661077482407055959857173317014123484553159501943583390881218283265580400327256752947330422441249250676406402273671742627740655953196131597827562635082419069702307848596025043099236753137424482014551897354449880642239750887977349205350776422626424632556093605212650741728354692963321554792972744873188163013406598365878362756277894547813026742265342575527677233899639068667490633778370218936395317854238865739671210820767367075718826478502213354133092048715492067321858660154659101380617698327549507101699319114487829801763126073552576527026912186105214305660337503532931867389580117273510441755564395196291272111101747583203775304058576226469772531657624296710576822018615263988409809911817672190557877509686859311882793116885644073413245552016427137853116898396920126347587481887913247822952570488011602438009319524872363129137025898109321926956989151557212271943748765972784840529570745624224781103732219475616053056386250971790787498612219920221589297065494432013013811965664638482721373623572579594016960359170016107803231621252116430874246687429034787594675242318774510548543313521707509641005821812023942731792049482578950398922647669970262934571831568568556149513528455027089575471889834385643209855021358199288109952508854971042969166496600945996177545201600475618977117253027864432436362336520720636085987247989955108839106286873755108000750968721399497001934968231005874005941455661225920799662247612531935204877150762834861668181541837535434946855026632117913321257398287855437726770814881060594121817414357480359808275621796367544176274508034726083473429094262322819438159247709267221254738904585031144820170081445734797441198616973334282421181663716956789000666576275138603155859948802100362468040968061724897640577714206642286690184102667120599426205677093047189509100948307430088812789936535906367456682762728415154564991320728311165201318228777580079357830243966224179116626464377285616792603442028348731361475294860460569644225135155385126122697633685123181160552918317213376004696700365632948516758306980363770609620502170144698269170398604382941873337453878468962151846839739172362080408691001285713018148113752130668141251056848800477889089240275310541713282565402198560612916370242306006737865726666167290172751495364200432153009346915330055131528996572005637009949560000584791001043302480633954177355573499941643460311475451896880411356505221644681881136208832225915995210142892501459995099752231752507139035911402070563420299218745297999641262289036983309132531841182155615821238581394214275711210286605445131191615113998143184721814495359140906453896896299945121046679040622444374503693833172499194162483691506777867484315801237778166675296679346626192224407650724393199742613050394594301177774891026843958102106983793066735389086118258167726527056009498406020418885129832656828036342591975784444933497646378474059726301632886623765045718096280362669966762580254130241377198806206636168514555412181217239635826545268222259954258825235987425597252107408708339995464040636277214982256833910477768085641298269736985135814650081018008303852095409364392919070202769005978022810508807672523001652884570763418904581441895898481855372916841586070121914725694541728008785823564613082973965285557588147195939842144945063682023285494899264310454474017974036300878350831208305304371763191947376494792069115004534370243638694296978984161943657307778564847610725962238547805786880805133019886316417477872076032390116777319354892652939233734566271078208127011962162937492673966274619100767007763914738042930476728133728070336182667632764557969464428055367519580311054169298377947697502536198426218104328729752677176069181427223676582756679335129921818407057623527129755221310695236863764742189699099209189078331592479227892741382465631000466884090240527460875797122083535368715582827091454624875072113022867395664907338832797118814534699115581638680956506285936324121142643429431945487387182829521436524981775665109756306766612350058359270398916110423678666267408893674678705186915769852010806370375883155014908771407832125204596624010567298324064167675260601247635442802386701021554395448241973998789335656733249494084526763017090628931577444355057773204538751656399746526225833619081810990137915667315543593111211747036376529692576923046351283916264618439200247219404241454487706084194139442413308281602444680562975054773009015475220016509713330226319087852921238411747144012496556375883283924271028523944778105509021413491642934731045315386791018869688630227058650327315449274779342779442490904662659307186468496063893036420568483381102585351387052357115291107282819862015128301243731468960931623244498259861707956361137106247766480620406547218342554541426534388049218043108698898738166903016354568290127504380759053775824758703899002207174876966509680370275879618335906178684643057554398712703462842459332868795572344812334461128980047173475412526002481366584599213918423606703609098209538214029484116520579432503688960459459061924538988088247581130161914259795702092815801147590919785572462532334324866286378456946271720795463137322286891306043066210718312642496880837925865243816151676019710760297192156309709227594596761955148550275796613599218433649584087537730715631012903252844790414331910057230570687289489938521315628646994402516074752837470774777596474161010897952918293025878192478056314106047284163464016712469017175614434621128989123153285077081627664329688070473317496479644130140429082645189901143216091203861555384205765009531089218731096357294725029880478279235686298564460738779463826188332850979798221904209699966201953096043618580170580472734113411200055636778268524543748224153861649757353158383289187107475921664888429761745906691162697484207698166787565741216629042863692076757077379557067826907280307596021937912584878458068323391411934669553344344703631454466575355987122156948130166291357405463066504688052139670535306706964463261782953294645943364904575856604939464962963090167639409371413230649765044836230050855043962678154317239382817390290897193672754797324805935118405126464552164280630392436563853027017714955910433291113806584847468006193447628943726949405916826787938563644359793906937856459845861885543680883248901229530401033477402119384474446464329021966794359609204701032755070935890427923089187758719177709900540340713044111261902380290465175929825324190277352066661413112683968839198586031009664469887449830353110963023278801415971848257926594717595774268307411926538092315171910426898519472036217879227593476050065441172533319829758442114779627644621648284488340205870647496473291374318644098161823169015920105285531071375101429948003148496178754941396668211659219048306701296069801004809616322227301081293683978375855129319761521294504438439360200030098857043059847544831536249878330749675090295595494380863841293620626782714908616900988836524758903859138744717613208999444468360078397081174568719748907905896508987695665760811496193493495179673752715092034195672400212770386953732268595604591671438426926782933181754877774549069359726550978025945352553248730646056243321613424445720511703634558942764289929537840551402104475872675443088472591096545386685133834132857308659978646286008391280878241798062443720581524582922466168956261233071790419073199483519928301707372957332686535091514358866499564936196509177731831086095605915909813762109514778746929023653745835403620070191062092280454422120147485392653017677345946954833702474162325757823272111240835269899643584234901426159940903722195304583990987913961988740174227706776620009069028650272272417473231054030857980694119240212167100829147500593787938078747289400265176270444399174713185204997672999351005265994335654778967228410629177909478519146426544762603706670416255674568790163994750883307828904335421202699678354899562876960496992981740470308771356922176433881338873694597640964381619097411470689142932849566108531240262210892174850241990848677875589160759045189600702301785875789423791623722415276911800463525302325694480659095207464873908387583297323006497334133541311869025293370926011030196674645655886745885760176262751704893702467860957411852893241380597772964973077958629917045739499296041974152763641988917160155052905869420501452775905691596575653013172681365686043454592874172299111712866065667462438545865257219817428958267380199853101702596883427616212110849111214286295111438701383542067046341835241718401082852143431771975624561687960996014922576770493053862847146469030232673598269292366285605430169739273698602989696420566730473595151761827148391634827971407241545994788582856253957386506967674449616403218019557909241052277697911261739927984851058485161687536486030283608401966371741276417737847492832367290260817303598425762436168513243849223705046155886916259927450912785600874283385113422902944657950610017443597882931233934532367255224042140180442799664545090521762236065093549749739795737195828732111847076339258602835653750348004942744623197416115260227021549693412070691960105212365626885196956231886305112851324750646151601747356274493262820244459683141203328132853368509719526582172846856927483678586675786374074400909999999546798362182826880362229123165805008205650110040105266996039572321867269380496843932119163779861666925698700118355842196514900794591022030245950872969819078136154723741323885269848693567438275110796237923034241725481953112007915638795969135239579396058260598187826313545375884753588408408895959554995307312277556911294700520576030836573641850431860737524079673949977689882062037861930826377493293852347100276514488665334650769741925751133060346742028713912266436722046585460432343592742759381192572156150106415000092394216053284694037611981725203708326059950063278527153308823079893325338177361271163310923187649628078302649667095794275222553641492883176855622027210027637835106983583574035871282167336310104141612501591517779056667468696954542559070504651333761130829831143489376627773834768947529171843006202166660418950624255223232531042120459337400798855435300136626196313009380950558717020297821894229232376860134320435322172231390261508330137009057656381015897659893499595577938007127516754983254405427266239681457615630208248889897326079711967886830808065599007510485553530237931274399182254465651493246575609912050750776233338907087427117763963344080207619811295417575988428941612303449129768978377847230272286655137676519641756843362564816755486641150138549056744372642818200646750153305995113055064067377214182657187411189475049384687363379131142082761585547368962869448652684191838219840131958504304629635216091592328857600992075713016022047960767030124834713590534075967904390737526706334889291226643523090791068246612664488306164923718434672054053782214821706045402131005604820417329488824825103902521897409853271281131649333433094593061151001050878239696299091388080820849127912352378647360805002356055908738142929560744189804460130987505504845376289422112085921660617890046844477557266124526518745192524898878955927421214642379280072741978673135459794823807186683012988260536538658157685895897884347643508544829365751020282280265178041768292296237550428222004491833838345795850318360581247717784233863218676829771496651649598517640549222928251612795749680932235899937914679520074365836375163310295925904991254547139274601632306483881648033610760064587938674662146206135070404639659562991362730951028917151515393005811307025897542884268374120718779732545255650895301663594313493400222819693899294136710536769929095893610867421385641970648806576076536974395726384430287534829723419992947602230374484822861985348714755341748288176319486215535498681285436552059766032903158519525098639778871165221563256067874331033134450879843478461928948145954005004974626178942331954209479339683063184188996860794967772626867431719614920905611935473824010987850757783296690963738772407807953924038148260412927442710302288461707365580601020702526035883602952258966063799266434260922016335643591355921757911614896234845845678821098134947160239611028356196059996699762588152723316681630360933478316656877985583469870029719547229905646234045535903707355152138511022869196157819365147658180027053202751106325205517376852649699455152935876698457380644600657791583967094793280902938500657841207339455465125938486266739918021634694743946642076203538467879377043469523749944986284411127484276702740923659045156256410172924023262786789663511341815204710163523019010061215994892653904489802520940579994675836995488810418066514066243780656741420796162661292465770217740035901639154005372317934154617601575105426186100448663032352280391672942940550806748966581996033875257060289510882936100171085809219920803385376716437800028549832304303167933878719445987672486076588974395481791593093795659021805355446606303580759594465376600711058937342264539687688726199949319108945100596127938127645768683339191795429698933296034281671264726906677863671948367308494383498658234672841135922606416067332165912524554464229125781190564854399352883324228229610166987724794500468947393643396315753312915186336842554928904978938155116536672863022980154661259588333993942172612054165400469036864779860439326934976377613275598327552774365478422306524219598611535313685115462281987884772299076859095040762658915748051417627612500336307527107460698562178938064871698455391689833469828331109897433124534916122077015930999498409597768126261829581868344902424982660831979871415311759642375276475101429144132037430403389420484798218837409847453544558304241413681471643456980794540099203716896002956172898517908023518486220814429657933615659539252452553119913704246048690889522059616970331791701494398030265421058853690531699640908149130437886546071801534161646452253768623056451742198661580836387817402302083783117165554372683645448464432223796460568621204550332996868533245095711996040339910182592592242545018518880152908073765363623815364732313258275962420493111986361467879576283874793919685743863603870856855806806892123574924651599064608239254618435078756204167273237964664995474651007585435506707810233492461682114863141175205108491363885107131651743674159792882616669900416186741142763142182586435922037290140201627880926435060290289612115799474578264346178993563810544528830488947992852410710683053420885764963889082368425689801587619549012261781277477165624652352066917025121382904707286014517092604527588919700451813498594454656967241056124439878539948401656288586420914833987873912153014434188511809310939015700573621480627505803785141384338333164236677471527198044198346894391987820206690388590686171930000584693517422853465799238582629234251780585191561167640103246721963716617250929493636281444658137493586613237179301665657714086604085541715386776955729163109945250849000962048491565620720480433566043871377079650191223788633185867818739919182164376082715084753265776647053743509844311099402839417256497678596484737026195214489820338756024412178766623272659009735615838440488842869736742163414687618525447053771545634196216619374458238395323749038017539673039404287265484270226451467734748367426204102153591335261673681580343861710142562104338178331404106912616270423791355940395966644811035458673982318345403762381809680433863004234405256708458380204116360359138907136889195367932913662519015559381324941705479794454584875029909375816212293110279569035637994345482839370285004965390767744408723464728577501943890202055403249585701274472031439299426506717812501334719637129020249491500218023519748524383908795936445394171112513116654926865185533648968514232812416943686592384311746846465701716735208621718436202929656603924017785603429170080317690678566256477462709743565056711455118604269880640457799135132178729462790827491846539675154674145898949377533383491150268292602064064540930877155327171613390708120634367752959313300469501383134616974445899798306114920741873599356404417410042639749415771394659116873278506802069827311198841036417135281327879363332040711886695765789955350952333116764156372797119810573097873921928920342436667723938441479931757039456037227808250128041702508730290165123973112133007624423187431580588664155682067969957226165063683890673557460885874965306352167983359972050498245344618924302442492997201545980119097048137352172567789718153712459258976844568367850454689959508396205279930742098757323220416705963422336641074404234973730594945831961159708970010117309976271838009109705835834795995439724536534971222067339331474886403485208307742754042028736093664853090229796389790629125467444314258623202585313611984486732866829371864041594308820218384472105337062489633588544217501990640093546766523913940388829970805827731853302743020875040223058478124809207714283746541446801354701576576934284352987315355607701533571845233016498866379548957493563928759512256180045634317172977859276986757965674817634204275224553187707279033148371173540067195646740389699161277603209492013370334471272136422299400206188238566973247960249635172747815104672655760764733475762069787334726089852384335219467596373612226569944942074262684791488027886536846077278183146904605972055123124399654276188442197474245354353506403678246283799675370684595146639089350902654424446523107185022519273025092529484838648065961438968409966429658125216032081113529528216999073929773608706186573718341969882467480952182255434274808832815036071550239864255652498484487797118572832449272828675476570215723796346519592798164810787127840553429251549500382605023087424343655057285917880363646468151164743983584394754266918878276730412114122173604327322024302536757499374215342482489281757241961226542131098653631428882848403755009915984772151880155582111218079488725305146447112530172933389977606254965683771142913521690041119614185397631058258466267728330098497983504869808088209695965616056077881436919565607284149153864997632534960853806264673260636877629382564713057166098522059887534847127012252783964826428827033934895392669260793440542627277907896926435669773998360802194127280763153889146459592726398874266629533058723701789480811249632396214519476569246619289723868643135314390340784805195034850662050395037516831820032586237307786588099048334681276161282655572256336972440272364445792584543556492036475099674827508016001014917968291188376733705332065100059187491106094475358382643122876302800268639418379167969056166867873723175972401103367770868475201336805412161337040009198223252076286935812485403152378470674010111474699184553863603807161737325580272940125941397396494471406008112609194190434537980243457946394051075165431840164861358422825295843712280030727680603142722063386273418412847929719829490637040673915872947994696922901241259456073201662694640760429603645760762270684637720728201502885357058522793800795986690031870875062922240859284601326382181528554496145527870447086620438608566839898152483252203198135743542124997600502299356409073419417463575726223772188238541656610167819696527440605414789251232776954468884657991121922469652156731425522896833889041726999110709847447189940255469066284303189665075975632207778087707910864915195912014453562595543253900212459676385519192734988556531697506150218169403543170373223000389291787345189135511735704027341055257110638300489207391372545083885492976078830005677705431667786417849600089470529355198172246594400928703835850447907515204756403213863437938618115835818523181939320305689676648656582301631819184435083382905319210487607813323368339365124740808738064734056357457113766646586705410038907530202999828063830005259125660089327562363814627681041235252941704495977695986200476666713957203874068145948892880122771759934672703307435646813066678108131631727360432927106039187758210412142466201631825858158163066161384491281583527302615626344366667256090509424879707503901490758214192074597815756521629129392103579183648952584473708595122176232931567075794843331924721410082795554935124111389575747349583391834728660780974678181941860000418264637076884425186110657468006805367357463237842315935898215297511562290538661677232405634889459679245202346579733550957841971442405621566956338540942120355006104413068407325777161581463279782339936165498990674077926512929338898707675296066209047017238953185796051036292072764786101364997423794692713395826154626617188121302649892800935004074900666793604846678500192629727985435025936536756222596895504312820441655792497089775316107239040883568977292408747320280479156745496703292557992551789954564519782999437067116072687771814812009739166949652999034479938193297699320187673743337014094950955592238371198013369605729802815311779939863787967669863055716594594039051954055292530005051009524500014329568849459907464327678231660172014077914971343167676109413733236953930552468862299613778440692675348301713357234275711978231892996296908893497237897948977173737734731998837010524564648764733996548844911852182507944471652039193281335203646538308000651200600963873520543435097633422048835690295332592140506280496959355907491533544462975867510235226034373668870265057688102790822446747917316581598413076267712489627236874374480217583488246714298866005446321039815960136931055019857693550543385977731321018515074885151658318377311237340237421073163685902093614691186339206319257243574228157663106152333696919453517915730402952172764654149756313139503677573984174938418493796928293064527055288505407995972482498575923098677921567830500390633279239696540227378270790144936522920733423543709291579991494857758044537017683219974536791248215434887408972236685341166403400286339853578997485849545080007630028987865749776671112648367645858499105326515846958645754008146293419248555641651244422094045468688941222929501027525975834541156780320802529906359870234786037323030164643076715961286190377816159800581830420655091072485555996644720944708468216631976140831742569724199374799440000638217073486191460796966669269377273308011039392438381033160517443586192574468058010917289435758256332709167189687795905316838316385194287461150136079538500373069139868294969797621731958862143253084283047756171018823306992683777011642883211834428238028206990235897674875569487005375719320130757139526097509720603186282750261040968665296918945874068071710911505748423468370178586338635811295491561403800265498253599031699320879937437611020202878407700029534174498042901589934875140343740102642965943679248123841290845512820382179306268978789569035776390831452250034387632779783021378208190652112688435241321317592671315320564599690533114055348031970623286620290209527028428948923894984084954916579480166625168597048789034622125028115521252681792702948984750035753127664910535347083661268169847722822107898720182629509940595220360679116851131490275186511415616828468359324783603019260894026515987755913953991074257050767642258522979999083347830893174706398013203586699273082519397543439663423977049593727347445832857531587979974584792446839763105989874837651756037431105263846863440199105819535405553728349013097336965684231225787058868912854906443794808932434301671361796285858823007029536659566493401689880888213866218122708983046081713876222897849426739415860749677132714935514015484298665642629112668430245645422945344837934020632148075469449266637392482405866160998059825007485221660065078963354963282662392501105588156931906135243280100139149719713493695970009241833245534559555957272156229950182022808500563006779212558884244226765440235197533517291325027642645034361582731348087765697474944994955810245474744035962751794090002505510603368803392385322116491379313995995679509080578847147018034155487385584765980080495468869085283886532902779371247804006988289613495426465826487944387480705596820183924818233152458619041462209117232276188547245075689428359035540424096717040919231188794033683540038492638874121934006791727301540017972384123831953513445083595536191345085571886068735117220062437767087642113273365003400330166753025831388267384543717796703386062865751101928331952486609180561356505189019860285962088097859280458976390672992359755117612118962277501798243494606987468880366429762681589482237299366789706060655494240428137683501399286583463913630762076743805812953547352827927490992070712732140627359147708927079141707865294322571146963378109104558030671844070414341648711853180599025284383672517083090104453573841716659979847893642022445108096868275350249693600552189017196120617103785126091312921108018502856231211859196766567963375877400695969823650506799162456947944135227219971229981825792211046621997858546975016272858465021574302093744286259007040913876895640438788582475765487252958130767027578473361342562881237067856766046539306828288333911924115410101306460746152528307443639932441277075570333979118004537724692119326004893077842281086661588655731874143464577941426837158418772110271129224147315042885450514814176954798861437833370293010016537729028365022521760925038479332357100653772405975670233020728486856660532228435116316202023692494350781263457866074478163740009612961081283922489977935553681743182850035246936923196393910796344483992145257678818287106697394489047195884107762926058864217974808006750208939182801419029075840736933557044119319169822526267202643970493250407064910112106215812036725697696429711085738622942122161193676870796850637020454435815527996770354753327108991776376401009784847903986875597454762354399140506028125781626586140027123186660677580284813922683839465160421532986063988671561879692507142624432592182897682386127186582867826599165825666847292215003904852036415306327582046282160428572170597783041817618696725310102747030360912495667754156626984902931359120872960188433775765132897844758168130407460056778772510179151613899917984865559387533810487363902445836651547226557190046017824622176773930287572082337895725052147492657378066259296512234581672439228019539044037164582438537108959842133042179866306671852160486323833968851215049602784165310908806175295343055602708130125690706597271930503001250549164422328805653326110759179708070744664144281819030121553110859781125354411033567899976675882093328303528205084906298845776203429828666627071428483855677143283672390957695752143519638234082529241383468783914173866340691186875957129830969944932555849607236320428649527280721311220770782453339691746793397153390500362571722604803426995962072871328926395577470652451592391284861969565275592112055896094020787395566047783205351436145797705521463910013854551341354082993150544171615478054740978849493710519916517840878236039247312287601074203040140573229929759858239014716371511230604056692499205971547053428210635681739400237686948648927171577646618368285599050525491458692889148667254483312222787728808234700596781564461997295239541645616229484541892841063804143434648668126591996511318269665698220155400805258562277093035325441202813367569408686549635553493002260296942871156898909116705374854078687941934798307477226282822711778437773063809598970789890921582368258317034059198201616600110101203162635561069473300794501979020257549940731239637358014864481089750994568987542516510521135101322183073500750735713438311952761715543599995456332531558244882285422942577921427319152875418477749101222519614836871926892999513478310806181364117990828645541043253879558764465910913440482894886572899677862522588372238573718302919511592580152312701025454753635991911153928017365742906709556910136505914495092642249719208486778411654738285450295845968147693997925065267702561615056053528168801581943318786066989279059725201975369772612693578781330788033516173118608977526967720717653190780299434247306098074188339621828745970313792706767705668934966413929901361910452611894021910878375255645166052918410290930361769655293304689860079182765988277856349284281646437263414729430380602435849328239057559462948056156408712407535776115886879571842745639917361034249674269701650966957610244664894891098174572919868223585588696981639644552851552106896240517720533767896743662851869817933569161653663928160239698321232741347517776803596236140794222431350556403834576308632329143498220238485628645867453598200113002059349900106670939690483455033658925584174132062133175536578038321396991105882989242305221128450101467563034788936763879503875496203655074734828034294103391869055891817149771960068293915224972193010258014451970998079155160601250739844808180010914742495811371931066594037791414646858195619720146893194140350184221592275729584295072414258322600158038418741004608853197973892065602846579330171372470059786149968694903827455645420664538129595283315504712338973032844481042830334694884552515899086758980334418420152126081510891314942605253466805569439810254982901581746245453837756690932107057283155517917434121455691777706799588128464073113391094722752227367536740284649318514752109904968098156231806756307045417827629490653996660580400824790502003817268698563012835585372331312424516268212562417272904690597500563047189570768787329866847829587607381663041469709705518862415908623393526976453078423781396347342944618461305940379650446811884904053485742702802798608298610958093205530312230107273196706389666926694618060504661572411661574286118970525591438774535942846825803376561190133325314066599888589542855349393927816622283815483993686721474547800398729524947303195616998201067224363947367726540801270354583139063231351480072671683707616259857657478325453858768104181102940262294571526477622744461604803332925072890708167053048173833830137617998738153352893831430414311005221687970442462246561777687991561934027056195675573009277909575402788073926088869266977902124337684999349922350260982188545548346387025004067528442300961829192723207238640896700233757285689595804239458786478886202368971120037325372392548285075532043302534054625621440088691559920338581039122840447541590610644230028944414236357098275256850893860660309374364598688308083053061302511653582343557496432637665484241203569818405118248157574310585224084301643059480848183018981153646381372366679144157517723732459056230389874544782183567281049578287858142347865294363980645279275508025755994057144048836536415077361392310945856395729037411219527550258851368046105246803054838733767000936465283524305742391912532583100216980342493682424296710220020833643223044728676590204648680492359341074735217695660549375967924198353070975650483974541193755472817395939745463974729988471735299521711022944414159533586057327272767243496681946674363130325340143136406059966148758143341649729995157645037263808768587304677932194967612823777045733774025114526055550331834227992802627597431696514273567736348676112156268003057585070172775955579240937636188074897127825146252848759297715939972239302584407545167297695630401931236046271696746308804878826402041104215237138362580990080701695486076014050855548128762055856283051152517093397774082442943317266604922126616784970941922428398725147141498507986265975359810460258145817973216514471002422388342488672226431823992423953427266701221361180717795854973967436817327402212977250975410133712539031093522605999608326605924887593068230806281473046432329805811418317795290637024520672304325083536144059887578419619824329651671908619897101118338671027861409383288931471812638032857568673743085860791966529198942934836077036418902435607273817250181119437584214565394442448127747965757839288613562774776282703919199759362956324428286599915166792893988716221438245377854857546042563484112338932618535439676175752287658372417775503476488198410579943725713673673059485894206735774115732962911018845446797136174715601898430445273341561620276043293980216382292102439339419552341200273957971342859602548867880413333666703695178700837001864400286239392362021289650071033680543648798619227381573314175665007404991092283080060359239423652281080186116421314330637778999474917840139452315203681864864412629537176208787804386973459961039502774234213437938704458984449688987243575500452422770658892196550351375674662950240279355861295435498166890128288520293569140584577694934180922663605738474237992795882653308214721590856243694631904149050833764130943950217553870469803987354822602937228257792259773058905265330160571969544853269623514138644848160951647909341588770867444905393951118484219936608197534051773564786612048923871384946370338651172154473161495662419522632702022027167690206501680630066371772837260700133905281719406189777081627746399445365794457440383959432871049566106858098876139237386648449954057560136536012924698953609908242210357234643147441320880109643483156829350097533563723591876695063352095297893934826344993066326958976193386119701951020567487547881357059911087966165060578530461274944133428232672143806488205210245828906431260812904420440016486108986082249689255637908920047032969911047014665854153311155389100189671716326812604929587799739386588751964197072762822704824618324859120251402890276027079640783975448053643964748072626666937567216658587295285395461988622487863536452144377994309481374530522021368631444327147425351131626044420973036415327790569270321045686745553350320389395490641181959485666694899797335811681421730273843991414367070422932269761725194820796485481381297717915485236493572084758743478764078756188384609968214596106795756065804085113085609440063027459480761236217093554495297348671860282931335244695207389596248366988750485002231277338972721563359971303829692863770195482852461275287100390533357916635643582793360972045683840851591392867749478409876089258182423184261528239963391110867470483635909915845710384782032527227085367486192216832366636658356931130525068353574519860705317249383115634550099044782562624704371348929136372043140322881827223486078525215547562942584787697569427648234594037545467438816665316389053063734319131821719306352559866059479787886509342884210459435360856559285148903086735420756618697970564457254596003084131987203011409377889538961247988193448777931150828648869539953647212435062689222452822950461176329758481293136552954782602637274830462149400002545130453298897371148849468802179758698612680687143406496594545015879494710281628242092352360531849713190112753215590914908922475696367550027043368497532245249541162830749983061604358784071131038881622544279175200878577188845237229104057161102935171134864218786704738871651092114061402103450097662957255101899358475250176456621555557345234778477680728632500364012638543587614060295375932833889805983165300262174091814270501933047814181951208651447574619733270046189136772404054755358312061184582975066814943528679536768884882629635441996136413600978172346955126138303531241422783827712190474024546643276877793510521519566415995336303866203069693449043067593569751457324060522245941578189366802728092604270614569389111933468105650315455532242432444796052151024820153596008007218800037132385429185264592361192422975327722547215616005466440659619368163050564141984484337359811425160096052615545326177061161112645542684685289244241759586902478870054048572622590859973275402295762750990589280399998787777779770428855025752126478495482791776353622834395756745260834157643571534478052615008076991942039008837719727731809255984815877180010487135228139460169690041923733914581530898793953233244698474502095149335368792224337427482243823565096523835667549059966433861060266345903577028321358430640165604358388327629991924331703278028117799855347680277385791625952240266958532713666825138305209701218649176764876703265881446482476557496407220629754926432188745668867404660268531944582045532350516645471226934462279900913761402754150422873450741412589014657516699390492436964821973392893832410503949819481322499659752528990379151902534830528321383302081205211131658145279581778483356891158464818435372906267759376340872283019505448248496356472978066115362481661446091990119605020482142262760655492260766969904737032641706702721292360006277801611294744924137556559998550618590270835389352027355175899133752045707775165185820887331892346610640937985330446953395464438830699084152411933609161120424540938891250585169155993795560752896128023466976504327986546590453225430878887464145264266687006202280068427863532021149280151484280437450401825121760796763637636387778066323042898637281580021686144531231908001191144927568059554643937405382989073059834326743133247824146043402633538591269282368308352514083539843600280246222621400937872935756770875024897101508050389409111434242200060446803110714212374789062680765291755605726418429451392910456344523841074745880477882836659236556221387379574011423735038112698962217580144107425750181879668328612966583462468579980207006979609599523925281869445240736810366381845213408955258592230011763784683975249487186601513222982839055774468885504704360300662229871425458556899989836809173016046528233983329136627974915180992796390218244297831609675512890963612561697823387223553392724048411181071126485843330855094302823269571620790309037659177472005697779633775580692113512998691877718190086360896544794048187094998075923377852043503413707420227940217949993518302424220779958350683627126020169903615663379107097977497854176330775481043323693009483400672773986075534527144039005291227285340460322551062959252526041597664578527099606306437962142043596134572408840910093259148041260164796623039403551364996477514734006187078686122967015239649079768696627530720503353154094449353248513244265903112053599883140749509370734559357585987046962741842163609366235583868822962594478758323333830801022651183011881914678889915226743792146106849892304379668281662868101095097697194517090124493927195061167841188744776085055422566974272671138181546421221836060777983344225822928352235192459528413740082470591551240596001714459371154616281884846962621200039784266640874658501333244865647583706264841714507643911098795567147956880333025783946747846600777283117720365455137680619826620517838792104467419461105324488191214154035360562732946473024947645206061902085146627839870124997956825661123612985413494743755568620040613847793422514145633733761904967296721663153882829667589171646738709109006238807269053223481025319620199968299157330105103594830205004237608310747032754065280466964390441252515944979373534387855575881549740953467408421731288357656235472635563152660508104375183203100115133739982907040324579572796669935794026452411904763921511087726330346116290965162318697350283070033784199706499774870621275448961184354372583777231855805779257503904992942419725074532246405992865704786713364821846073183600709873188753168839350200058592628314621410025823297043571664473998696875306193966433638820580699103868278544714120248340620267706228313580910653918441505164908395945133439477147283289828016832480703013516569139049611580232660069516606652573205408105483598524194270533467548371573903586079780446757635436107420813682815976548336387828931355842787487666052507583121728241084463055867697333051176035592613760311940557843884575400528366418356774241767007191803454616440789844888506876872685098942758753167398861432534894265442931799628900266492761147908350143776905296350314120436130579400972587593007106860684993945682902253320407072079244246221106815543540701226362413940455159492874488661213403006080455480644278977775137204949207850584880366233594936901356643563837211886245903734018424412887365289070210309612045724538234329086658456568274808515918159558436626406693039132576220483589510507523411601192294215523599634989877487848765358598803685443962886485707128999577296271461120240053125333980948931359577170643180289651867321109195614813689597862210291991211575612483326877305444726401384772718367830114882375215995389523801788932953722003138320110092843254479515611785147081428468519645798425512442192044260316930351051382265310116102511920518153552134291260404792398057768857086517763309544864561032507762030480832966919536081691537383762974637405908054699325747579157890934139938711201653348954047401748718413132039918348069651431551323933628740220289337157003175062972021592723148370841591862503699623223679592695448606678261600684141667807977699554682287430129588279078103775497596532947939954813207833801984140666616693426863267718740595617442696734028150279737474070182683156890419054527344088457358405822643293844835413741625637796488852932882038787840758103882117712920165940637254007354791083362685872754357821123623543315931976023491017740575504022285313170441099542565596714277830270067276635442041340848304769853030307144558030565168119907351355943438649840782868265026196608734330083961897385838702342224453237316444914677517939012571469380521041457943418761738817765456354893188835999469692207710830961226968289917461024950195112107385019144094654429714735031512878513401032959918535069124718349958974929516056317031765809111891680865491593013009359882295476507705112458459135582250280548292802729322681583934610046517816548794210408356235231458838359809731423493469294491062312691177361826857792426228386975553074216754975405439357664925972793965598032866711074488993073793785800447634101269362763507406733237980473118431351747636427904476210928180704646002484041123882328738020866931333647060280505081483873369166837944040110572525063657783197057646696739193814299548402125294259077539870015826300109385213214154648038256816919710369682219906602651561624849854400201748770805886667705130854000650421257673446801550356742011548386537451136198122595005275994135859365609748390779815403685934225109321446752829864477964813463581894531864152182402146634485222234365701090274240267273422858711448556370928363543441284147624934816188043769892131482016635144514929567920223677827836091820719766190322916991920869296438662128411716072789114378582153284011950679647042944509011777902319796721183106072881685388257983614648903419223603861449275433989740483607320754816486595103545854950784576461099525984555195639156015998194485975239205242873800532314169358200094807291191457206658561024356201869205017277915621183998656140949147050732753603079518899690485934823309631438479582665490389227945256849202901040451720660933125215295503848797876958540792017753976125390866465222463756535703344972194227337865264718175915530572318535561716915092429357956528767275122039159411869429292241237745062100102907261822494069178714320593597617366430721714291619852860056769601745798032691036794889546625007797419525419336571025697483128062891962373330911396350086912733878579352989055257596901683672409815404926077437245262440289542354419112711254319303815038533046799025609762590345556365430895229928963702701927141330292804109725579395882694775780958584189027651706056876733643656665523235212135367749870104706548322608851935229763107945385087483537185545439800412557256690371995614378949885762685388082742237690111510175386219619376814516789244419739247982558788881217910630443526032401484074060373733869446289897877083972114228009363473511238779928177009584257040043419591893454384645984947280663444719512515173210692686063366040561456441647377046456578695315808593150220106408729121883680879494040058019825121476889246573246027035025015913392564631051211842850032972825421571170817654000065157170499075249392011106390322018880324183066860667866101569957821378073068734961579378400080342783284423947289662183514190322204377594961124585274424093389837725829672811559095397582427455430830943002515699125505205162666107971462034121142807743236123536273039033710907079238836969975296068651198917903922900620111560815615478295726292615105652197988423636767632347812332187569427050947283657917629777995417098996411456169431390097492300782657637303991949201447813422916108616119601078282011961851042428945589016618166204046360777515490936893705493366734313186269623995450842110656065794298368187352224145572783567306923103288415884944101742565775013999127149519352786281089830310016097973835511997419160246279180949917063852095791029821427667387130093029685468765224622033342023354078787927067104458298244641700894252533725186631263022276466684154351458889566628020061111444485524761532456868356774417732754984814308865680567779442577616561728207171402000167962350473350533984546763599508367627638570366302502582096450462317862039713488469061052868396456613075270245108310188524687562723636884733264880539273263788597309973400356043934685973084798143243809393643303260440536228889958367399131983274702082540403807666954310870760418014636396008503108563537765294797678954304593277932861688317972319793101707913388317766972622648396554979881054251188534382894514353601837322275134429534922700014880729086505720225849062141754526917503571594509906527962934427622932218308846171303057874553528076246668044655780945786303866903642419171172086137788258797799101815168078186885721683513681985109156160965363680694673413084143516910103738097205626331291331976219669534989676595793927514415011285497319266636340443264004816950900284794015851557162699876378202057628072208693784300669928277159173405797235619341198267749371683412503559874477957433031447208393796346043018709348302913589151201658631594782136614128740217616557693603334843051609701988072309098177081542857453462194698431929174272936414046161241522994132103321941026425754656062224873422909722439007389607953627546121645658561268060071731387432343168138801420790414971875712315479942549517632046379259590164943424496810166707887912469357202516711830948117692525134360127628695143436374237307443039301746760492075183448756742094903024950518258077387345461470183879563086544238841873005310389373702909788868723905699501544244335470121311991546299289017575541305161767321510731643327955759039165317935091675069419124368051666493394842590683280413992740745269695433577524619690314682763542049489513412403266754968113773866068111236365468974945871816180896895630021195902189409807415819128827314974589528085437409663272791072046129131274400520455888450172844465106651803103425308862957847689777395782476708781846450776707830464534444187589577515380435962854276558246235668277488388215000782025052204683422064124971230692517707715222327866234425942737912970382823142317241923260463889184574576331417540942726519345875407211238293003250346232379425350859151929486338277311826583351710152837952063592719632021658332170720112058289621225311070156065658086941852305267388823197808712433796524076285635614789379734359642741159631728465984363346537955301187501078824611641506056915631725361085177265745275537768706468662716126244812099028604434693315996660438056653906133926395771879585731863422143306428859212245011020887930344080403242828080562745608644285853903381556981940727084509912975795224094426837756183079618632130917616630522163952639726792192848184681201039269089790062782904670115757460539514113220957196120991937279930607315708140110690195101284032227351705828084827961337005018136517676272487585643155131974617176887138267061295085436861854766215349573621038713242640248913377433962981872707811058392307707790030138519600589203096128320218678139196892917833914496182783142764072266147996251092564752120677881786483355371669274102715306595722933644230233357124277542704008994779361260936774443325990501596955229372019637423984583969489276857504783387190176023375168134024938862020512838758527699969398274756736864588855774305651006242119028295947184477722925182078479377041855808087366464433626092180596232830770717527445532829687255796651483330576196844324450519409674097294063833776339246208409668997131109989359150867717065968158106954970196102673940734830940976362214966642945779674860037264744541413172076879665110106036431638048778629714349524110707416773227581855951773211457099104074789509748797438914470279199295779003253842921526045410738041413983460417947033410109069591618776864823994454855585468338883608642701956031388289265912164811613062907711765838488082831882005458903244682148121769891629253944977808424631579079224325749220983047032106892627335140218075921995594813549454142475439468929060042033326366331817818313423218674555152561382184301485051788006977523445363064267485776807458200864099690741488834987845450430018787601564218175847118616681397368335678050009364545930943441955500185316039135304931443799175953248441643846931431059483859133997557947694502172871571665760977664290590025464280796622707770678678036078357649338565557926529656868445531272241420755582689543350427354448422351362183016910642583540650864078845588208453677165509531027239828051629016674312264504427298731546749296339946283766431626333790083394027265007664568291852844067320012373432563168776160426115202273691357218963946028263668690403701371271081431535711117228325997176047521475223627601265401683888074150296825599646743152986214498994899371877120673208101513471791949963533744235432916515019895351792622187745365796772921950379190980042793118614398512843825671207930994200860269437133372916963178191089806600883897630770531632794253174359889095754497508812699518002015268985000008134051953351187433135464172727362569785490182376306909983481497927255286607168154650792395619781206748127969621692365487753529840029218261017757484308645073229321782852907126621830622183004767712531987736594054305331809411906711773111803847651171257953190750864017686328960327890336928606483765823961702627756987436132824223273708978591644724168562732194286029446185221863588677961100399191329758112911032910623762012161493721416551735376244286737034817040249365508183482774333001771856861636127107970410948043037591311975209399505262688574769243769734002221672596827067573200344900683832672287837829192027388002212759594335675885594454525357869204728823880231988249636727262114298812816808833693481734254415020864723477008119033740523622526814253878103650638065097689977493126072967530334039992294889675058172301525605161089180069904118235481870605513480966986388506582077294098475994971673572161028232339158991545021938427714225724927708443681703747359859043229668626921211310436127510015056524409230803706652490108329906751173091452106251592237262483328816001315380726628326999436999802664546971729597034420014784881623801767147281724313707521401179687705835376745607615995512016281560829870696068825636419113485555315934270851735119526155160864174641838453317701129066636507730740520945394892811639733714631703924812135439074846188370089103537766226682516348191333933592588934779883853185960710591009475670138195856664132800220631272364479355443804145322316567720759415725259728645286261723994671351954599537397483808673519104331504601078764590620864715231044908800441586801549524682814377067675316454181759270876939413418838691920616329937914153274040870629589730950139851209518165933615545063539416080418099067830304443676131877794236086300859871286082370947732240822099977507988042426334122083748894043614300263669359312019854025617776767794929249652576476450429624916016861283265041729023267608390522854128389283646024926644608633049164282508259070085086962459471837898635426305210950632686234712256224537964068730323601234566500724428586063014537611981276318993373811720885335531878971577917309053516937314925381926959443194969309090847389435330096498073023120128431902743625858158198601544054462228861085951924823373544329587130668940217256835713791473995370887556670684703042211049357421927380877977264876460867579023928209893980715098479092539854970412566989486857577008934193379754362868734597987970810642759712357312056161018631340757686315284258859717140377968645403228125656796854236239195686094670421480707768740669352355119185654140743060503829911382373685701155364265409812478187311752433428552466953903366493336377297172272395012926123615944081574827706471855878143241537533665364636270741513510276897959247070646780880326032271503061888245049637799036447597369688847921840653280762539398750027974363767137541545184715392783558134610060035838158232577746151021863489242202677440708901954403903451594458105969589231690265779605764057951891552557214596498388767137037829245112470934942138150980861274683055523873036814184212786316319018685004204245683200279695160351534282869816523008630869379093237709020874381878988008476895876539982271758512390959940931109075216366002197351877170176871354225344560453100378003158346543742040097592735354620142327052386771047613174494939137457571273016172938788336234007429005827547617259380310091322700409745575219277724745192284138538618759789367593201568752252365158459794958006940050035461205263728360539060379991771243212615952548309035110987023942832058447725667490082638452471524007191163477429221524511338402705612445588067303498592243675339302151856510986472530271296806699499568010078015082916162664336950740143229284162888745177641348010426718781110401426012306714021130489245395011123787157757400804841371999068566613562862331082638742485803420965731381212168707858592750563973869367401050236248254899465947734633323044324622616509764561237941436342322373853711897030621139499532160908954266495243951291901961924204043963930734179598486940915042846101584092923718174513225422832780923868643436074914708056457614437882469298785836067542573306726801616579280245025480048202247609610728353027247163105488770852851071190692552517214131177418037557491400588911204639894890164403625157589769436111210029352053627779601129893593284221563985991410156504295769583422943366619145509194938494647433126532839528133011143556235506480771049095297733543624915536020454760820600061662571578161046586715438136162503439679861792978988131623886851955969316513884489322446112338509682658478686203746648843711376788353386799360591766068227445435322759360391058262397043944541164553257632292983210912062654043105572840886592348787502311010601750092680175742776952250927189655364433041658946509780344134578132712253391073959101771361777323984339026577291989001246768914169723267833567682608898078710417186216259321780816954538804296101136055270147768592110377480714036432478457444519088144484165011595285548853945992281562728841656136787509480708293634542102281208505262879323409291074344905178266929226681737221198462846309954178003167169879319011296445602885650030246806585123492964102533120535863172102316880990593499469409029170403637551268547711508817688306091639052360524620441235861615278359065121044453135116566488799550859863415967003016548373954330345126476355961103832629268759859488724074815291925048304361245514563681199054348732873434404038488374634973711559727198290628480135424649539334851342245452301934598380753552243682032362145968866319553756083227325336730615448224668484813818701607585474909904525646835006714385312428014999619767510612067075374652681939087988227708607771783417851480381696159245459473660470134079471009362557172639038789360053604927249535096917978496207123993676832196409600280976770847504683784746710103521333467771702370579567872475932824712425483752988344091191217373526706246202037572983273823690577150872178420166321900954522392341365911512018429714210119264395383727092600512317328977197561855075198562603522621263387480514545796329144654672154641049937287310725657396836749397176845851841418517950204504040199756751888511631224267951040669904282805861273968379950004436083505688152241934079294853707684904042018005156790351868083179399188761278735897049237867620105269123123488480647892979146891473040106047751937464018502433640425231078405780131486737829866785887275326056019688643709616672101968214926285509520022006615789069576568383614843869662030902202310061914799109770316980935266993694354272000343722147507133647933888372271464004136456999944159026933892985270025491072780690343606891329799069930334345080334016374019181484662401226328815431769553942830804517464621127869595952356447485522167006903872640507176262898787772480527544736881443156692269742093578433029000499602076546530821418201354680045234458063187056928651024741833286858576265209311976878976142775669998431740701805016276346208633984557923192889365099891108804830556757735653503859730189107075942732302539693812468700400108117041556389640028317053287008593477663452195875530822611596208855842944293819610810635588261843907637887328098123678892678193990398444782256296111440599011454670154219798738810612551323728290354780422073707773277249585891204033325289912666049990417121856826822620078771378904621367456750951095753559220378935122758762209175268410048702891039941864418262015200950915196664969729465111402577056435076437236042969049254335180385550173185820819120171422999597851300098879755245203123759977953324330272623639910826277369133026184032461243417694262544301285624732925827629760962067785482763313405924680710155079962125334361154272737108311720090115851472397884515705001176670151037259082028284514745521915061064964403002785485535550396783083601504200420957565171942820218273592614939276492485557462191912633137943022184854086118083388887207499282900078876419383129971208931413484777967063390013046887535982752634755715081294679073505503585144958028029632016954130238373745187997397733915344855033829411732619941613624262795331890987053008328508258616247807967170743041144881352557919222825856004732997808325621148711250832152258773888625761318949811797390500296583793866317413810151581454094682448084594575568640634273269669434572273425747132972281299288403754173259013020197967130218330079122319431522208593329212321975691200861356787980580843641360804879734157897611274703350931674022375524163271375267358651441450293385995875693267193272759078424943049680058276429438749137944789730244892155458838039683107398645611862678332447505166150941140961825415778752432369785907759646393824782653889732941260855276860438895180944526468100093519518724973095060594542112774522720972007110743987708672625556123641363422953184206644372298847546592092654932982836637985522978600558186128862990870616528679498403283745922149805762972975350966831044025681152209632864648032275765176102371951733229338342926603642601003621207308414101258858614917982653552406410890173067920693062619999333611286514249046841136661740258665558954212482534563079042441332601977965454260406220607877303920226640850416707742960713097509761632105531004929924862343497638747359843624988783683701321225222350570128735113161159028040067067326234849306188510273084193068459455958742786077094115537972526767574548264142101538090338819155483590347286745567364747619392022944788798756337738784090821101974453768931481804802313321348266098351148326620656575751984665480897475884462945470065091655093170885552690519765301504832294523388068345530889089375021205509462532606464205191654064140024349056687127464293942659515576496279458244020230168342985925614377755958934851335229260459081387303846070609938332278481727457957253902129850858937538235555926878414988355185435680118267879444224296055558689885816433741787569218415524083358334911815501508046439199231046714832847638890588446200884114737162145870273565342885817066709180271072854870514933866834667562848918251407940233220278771816168898819961022640888033115735503814496761256939901071531817277121512381167834766958887575664396319924948158029300248692640096903534365059798222271890606089808440185842467404851446743946427211539278188533897112553380356789402811220272275766308011736355628303142604205315687165825248733952216916597650990247048099403935834462933152725415300613780543657149579643080571414246180877403953164933417688713834662401147127700541816291584668460725956635364309400881405088617018627197199172151107071777791120853464602172329854134241697433185303482709640130697510044168198792103172882391448740101424662443356191937083671155989835485593281630226669635115321214912291125819721216616416863843878708260600600257218974300715371353971787197259060096258032750724168687097948751810917125372016976714492916042094015706081871337119935913062943081619834483774278305278907342860445705344271003032564802952197424431583423456264892136618265954398004316561500100481301239304687585080365413982731184363749254107184585812731328137021898780268953716690177532920782603339889674778287453722471426328588767093761419769765039270841563783558036753084258378077346965565739701787321797141234868230419076566637290370451997125416575617499388717002237871018643395613894741008011334471038305734787307808056667833692126951022334134505113388898955801486479347241168509659111488801557749021623384734240720227363773075460388294249976143503235897288208094420826451408847284674497070900888268470975712726517011909667197949009980182984383262837385610420055175183695997809174270989619505799607353774059637802501078653369963828693999284011672422669046963359605622736640660409852875737340219995370407582356139636189554496997954144108884312324287674232313814731529997446688064039829396323591075700116537643626535418761925226757216994425804474403011124024786417923663344194199933312765056117541271094871965591600271353736212331940351586858427479968280511297578830691812227102147564733426005223392917557572005428366450032600601100356624405545199863546004324290948882243841141835496990907723589863856890057972043551092050239033695673531116987471279762921963836368634173035427514257626402375830078730242988942552040555162472078545100949623849877460811760705922559737440895277958293620412183860336015198108542088432808981722816439054284673769762733041994730306084288908644185515908154699245408998386929248136107631293439092888606241890243955353914566462946128826384892227088244999833465472267695371658317027495628943864590619007648485248486886941304508773168354567391993543629311431733614383374071936474305706345080569612537537596119826308784654139734005850465491802899697170762550508848416665880647149538643878091171885856687675717431085972974618773491680883159345989211090597678777656360471722041256993793149077393373929071498261436386247533288680756679464833325282781994111091107733453588860395797145407016710744660843908505234380209147602978218520589700459363276565219813270017828341261291964212364568421924781117387769796137670902826364705772596250139963973188042169043723378074882513219741634674849855921404178985288363607441588740565351449623991045607880555564157335150560430317118263992298775999394782743776600005216424832305226674312521161160830980823728682100565421082317172144708499679925077145216815874933015000318128635835497096612489015985036555528895580208373342311219431317133657196995876381811842781785759332848054714112255668373497682784248146911955649107234895044587642005098722525423930461120445645065930252371649884599571596997245222746455609451648722363786520195041622401997639330568685203540429638138131530348461626623742114664890249908626005090887882590767496433540033211454812120990722770648555491351025758493286877863459779212336585313769699610588116104026145030559988245188522713762820110032936562209436691156256723368686067997846727513646063208401595437747409902357878949895988353756397547210679246394812499000101069929180386331743840196828955139631285243499506262715692988718964282026381432364729697239845942470373958788494706840586965813788541857270543846360535071644222367125761862006008628588867398270402076989679128749767806992448054129453228187410978393218554507344193577922948578554235712205339695382143746284490666154854507339870796359894638533324251854891148632989313436244427227272883521001150887223661092630348186068966194000840986281013340290665079393341941261531306289962070186646762626423541922936630369665397470199227696654679596919128195296088820691215713390587193323538239638925121762317768179683193837099315441460924573772364818373226406340879075728752529232430802505698240844858531907872784690957499226395749857505624097858672549414987913399818731954026537609912229936568761826105829911280691005309559394427796307203891836208056382091187181290120313411667743745465518933562672017142406996332943338097067824103009468214580945709562510962232540126774744872572656702853984509630852376269947516834507716261363331146229368629271296973263411313962559542351163630012866046613527694756518185939985739223760479587762756565168680576729593636161916057353472310386740285159327992312155628327921377481190943156284481774805311323542308534193965889451773686517189822491999719641255771193416433786367483160277397672674741365302849948185948097356954076683277095177109543825374815027103623780026147583864893958681791209757139627508021323531591636956960671732814083323202353770308503840401305013287966861715157167816328885182071053667588487123348707818730531448047377379621734606634319134398293827462625942766165559332457051882179276153693108307331579913806104843199558998729689280562610474205682629135151683689113269882558947146239035346525732000623006622523998234705967807353156341482249888514536617157155453556369594096946031115983282595373048617597252141060723546054844215434101770542168680749406541709586249869305787926952038244503684370267359531133639008816913553632717578130467213775759349139689653352478778920007576142842113427825619167882540817028410752264987445803757824855788330995569652244156139330191008051785910278971917659836169095714874997930341684260975807340239218212111177527907511885172649668310089681859790641526461677074440707965669963291447902975773770779821797413659268408365499186766579131706879482895593914662340477427778740103439692851825140765348687953172720532194632827106007773534516259136408814825163788437901481396618999981025604291932311841585051621902580604847276220498365457545953068345099073977801647708808193887971565261872300672152469710344985843507932041703050168259912937107539906197712558750546985416219122474930245765859497735613114267684024477343055327187657771194093408962914764209088893971003920325057836729793642499527945901176642450239471789871311760061278060022439710996651622899170694839738161504122831902218374416902528276614385583502290892493045194934172539511186024503570402071488311933267040981120964881113504944606803818903987767804602724303096685789311450780814868348935739320147191362876284582392637615545037226307365239536548724606139118972352401524065149497398965670312140584235842822616154086881808417566225118284682245370254911064780157996660469060548614955247711905354053256819415031148112608369936809350627168318761967708243939038788921424601242238917749985070105284919443686753155191584322411124034942508468022965370101323715656219851308092817569326006433992965116573322472693758564985724865402962020860480887282716355786890048787201200930591270943478546209160233237933044479606022625319258252106651870322255519080659516927492118130550601508168955253947993933055381172821179598876374852790082192000880254794360201431188788930025037428568458652468569897444795741546407160474392862166441872848074832606131747253963777082867589029000789937362928738666307295608500684688856778532365400308580723493122043775378358911412246197962784903055935604539374874883757061578807617053212612948415947326806844239006843418963265640521216660585288623561437964285793918580917307518302193021420805634623134451909335538510009767048615100679027994081499083759239589968655235202533806717270252492583143095430483534979705361766359234152006669862825226155001201924318685124179312891001515441380756076800083332262571409029653606579823281417685521418831968982665467202334917476106681252548594143077933635858324137549819885641455346031715669724228325928276100181218778353447197052314971237038364029034023505060436276333555786189726967113692234420311980365708780852649449494429116514493100636914193024472451911927140836940489183246329440228650288346174343202732510635745398113905270870532372417805155200597218929588442581953561074070040564356614438732870193449284874525723714192092639973564440736018193313998594451082773019336496097512823436605913652792544772469371882503101274800916322772889450543382875167518620489093112257906047768834296343301134861152601149564802191424001574752414349318567828721682503807490202409251798044233326091447999371749111086889418720442248759618647889107561968122356726860250390659916172644884560285111448686401309304970923185406524856955617517478077226556208530276659335977405209539891666450083556376134067443898847126467664727489268629062026854188742267323263652049987800484970903790105576241572077408823073454394031458792065630006943457551336368659374059158457773813697836786973829769970559101967037536744246312108115242839564573472371978028995406779580447494140707772164209455727023850076499900326149909789862013298292017552700787994472132308988362094676460648346944332377542255492747234477589705054899191197291548499602914263715715381158863219224689319857577839300041642328359807138471093216216192451868752683668015537666375747749904177972476633250209394729499649371675095561065397072056131939896146069650133739473795505184275340425844229986705720375126013290224879024447792498907116964254526405966295866608578390188342807362200621478887184858748210402362288069266620462114730626440579610396046704348701378113542374747663396861491854975172523038278709089268836222085453121982284346166223094522262089661991440877599779298012494237219183634737700789773453557084764496186144082449506972721838509287557447109340236822246471159826899990662594055359911186473719253655212666488227573558180403890399660816580335814614003604870456387597076837206180349811608001789159570704902318107072664281774459255435961140150984800718429100152984215405038209383280114556102005312438642834520813743478508447380285133530049989771068302647862441859333782791634410149388728558775273051825300301613142059407835627819434430132109987650764889973997416646425913146995726856462148900220219366703848243083183163486715580378851400898645205060197039951782540963851786779462700579300907271446255040108332431261653894647752898835674126295877241376768369259656994493924795228207313860533295001699140966413547174349996891231282397915277188206111305567484901190476646993798672573939485537129659607572436793248493543706095579552145659551985768736249436553168494599102806274683501225966823416608349302384279571335259386632549572412054993471768064245864858943919974074371558243623161234407143460820232626847948454797951617909822172948343877260975544638370693134750939650805289888494185445850586451153437890639088374171218797782059305501691978206807761379694439820668213123568266425449844707855451226336612661903200722501037365631341813254736139881152149253031548277682288071593879376397767452104494204663246533310991067075590804929104512357574855434948110476469881076042161078511471353006860923578440160748145580651488008747821704324897103000257013180634723619962280423318403263413305145899281771909333369372203411366961654050214401185398090240318493332199123235822477120207695073471182564535258141809330314475712797676049187304484136830545338381541286926127812715731145121017533991160269142951237413784376180879102409043211334866726014177047332391897354844443422167563605772699955928874527983065847429143230351466272673074759733713272990037906716783211816115027021690108199879246654775973524484639198484541191988792468372800236980547939931021451268994232869766182047471455713041226203142076165294796129116466756251513658065351938878884052318681866776300322163531288814103498581001782687265687476979897384608788153558992580161874812194254234936757472555584139785923795984349267153259901438075538991529072757685596804105948140725072360263264149731151318355495669867221595119814302062231783091659918863929001516666260238638718321665660218217928365867635651268008527271314952531201652566469580000481719954626368847261665895279341050162696764265919510712682686234057320266675235511887914149327207327333343126743621723465120346353805166041601184935684671200627657015902496610396269853855887591404079218308660921020157957672807311675588355436365420804597761995311107567738857101910897782620968361045667712317191647496874280783252913957466084079173146146488522351987234342808455934888916414255184457650855264440347212965616417529823342108589109817339343405474059363363605165008389583686738835802536751566507987116509884994266613748061013843029773493041328899512603406850853671905794287968486146448348903136989497376201331155932347830593076777260305313551062923587119894024166399919070315641129490881938265290378060194198043136078082452709679464480695287556866747968191151344250669789387110017915053435054618421282097204663395100714295706627688684529419914530843046857769479402604542526108248178857237051187733527646905431768759575602189662830706469856317689009074738718385578369573942220652766496192587003032269633848447147978009654036412544127825807335305117022290962166220898062402452743112370917788677311438724781876109963979387785190708173496007682433741101277792792980372871910730807435786227274479349663946827966347152434825391913218587887080740465396896296927197203032538419379443443966726152945266577249973260943952152545679936928885490789285742343878546045569310844945648182814335393767988214563261569086846511072484567275006229952577929060732704281189400595009100714075738647332363271118779507335080854921050548900068538712943708000534744506454942624845705839886083309117404938624054190786516309468992196827889266700263379603131548705403125274822790926451940906387686539853120065808882931155104721963408931248698347483724149223411289131294849784569567649161787438079410429243255273027182540320456327928964287578054246336520802180866622143734471058061825158355303618707929776385186946125441123881064017277597374990372597969696351418457709462322916229038925291279851782008263145169570785297762923875138339656712457289494287994439627436615147956516329521021931579058816870516425505353585663883535920480111222264432392105617098628164991592919216937514573995206488498054823142574512610364026787907408022599556586720902386069747193032815067903929185501996954768447175343285381401324725184086132037378742545120688576588203683214690064768641431083380441653637863419846344054568354345080889903167478289206622723873657502139487819310068821504796035270884697318855328901225874430942760829894656769116334149949559842962532068716031925119228971439406440743443153157408401576275509271143552164991884290465173482179748029154375043686853224572493661191118374204665131259034650311467172450349604183286160349854322668387008846983166258741064092488437684925511215016580454825694080235021429723758032786195771894457842002611270714924694207811512145650131511928861934482865468481409225047494929556282287481088775049510545204471776358678575975579017068922162434524591370656685659437862734345323739966266271623471109802522268962472976663617366699582508681867916742899103354873720668256760152657785648950886156422217598533837700970940860258430400993047819990277786254407846235621337373897554147074302584392233348539193535137500936122747474941065708494479806710375189835470207216947835478221350243326141418664678655157476557383055489170849035990139322226783080948463211433722798046694689650965004085320643076777441972942573459790727060101249579407800988352291940493087824893528420328881465669496899835715969828595449423022056949506459618650368524801839508032254847933915570870494502298664328107618564497501242787639727476387306351642083239708533782476915762087401178109106106781124800092577788768519204876008675355643289656337954932104051888361740539580714914984457695651614260184084800733183296871472210623989195824394941234477793375231544924979821178678354444216260493528497552649186455470891923356332636114573626219154471508324772374562174316700506472553081339756955993491115567891104139300059904882977844453733517238261101731245888914879563165343751501140360335648761047135071328020537101201866183400218867034398430388300780742976108865391768341063699146401333169656881757845774148531074461520475960674131221776450874419507057974667580839919890087958719604408677666634899692576815280293522727334126027924755702217406067206078843799719125254089685215761543399223345637987410120717283628208774838399753312193341665782813064842622523137969293436846265559532130897307785202667288109354581570344980949786842202761779045278545020850509622257490062291627177103302546677779589499927214291879964484322928165366529915709403048343529391559180077600740240992727276584099211337466153019996414656664227334393501346665161902874291577346150594855027146974080508098935756505171397636296871195735879047796353267617451734947359380660327708360633786247987593344731300260477104636113560908323636058105082751728893267505120184220049622681416433658071385342792592505871176549511540719474612126379784591752076622200716767165199474251849992249782474832272941463639518747765047184148118682314182729979575623284080946667455634543248968680686160271990605235965703221582197587940298847822182306897377348144300813569553756773136139969256522780579564794511942036730299381925220382975986663685304920716125342707144253348744864323943107910502242789483082016187404774319758100511284499350346583078717221126695762868122740804318138429128611008268831405088701273942359269648808048264815420440119640288035007325971936410817315346609792032672517785247334667975016120308004375717798494572083313300165784587657831776095799967583909017674520205241398955276510232518832529890107649338730640856682319234856956624699306944327978308437126066881536945685157872467912698982319106074238548287271654565328704237279387701585368086276637739972983087799243578951096326665743197416882653300833353352835283429544019462452537545941069024371271436552094264365423463805365342798521058217067727766663698339871328349010885910190608390118024129699513655648561539810783756231262573993946364118420225709816330900601842504067095364148729615195594451616316667187774082838553413106810424954767607119193959701520491096018768497786241583053589751570300090648437430742616394550219636831966765589915708142048992844847717689069834690925302684893361904857240587043136436489629464160852543514272175548548027341043287876083027178792047052559428692650667559656596262663660168343625535750207649763475410278570967251774600996296900197127158925452398009971940229617122509129967274029861396482829654662542650471409054216824463535261008481518370448495523865902821781670780388175707186289487831425170018663698603067126183111649804646952790946907723208440336353681887478706068052170060416012609843545614736246691361249466320652489768005466848824362650968740257746114405693924126490753116748992568970964191819534143503452880161967981812498827446109202989350864074922126086893737391555921172545169958164634207108206247318294356894233756307307656817151830271399001489763584506883434532030508897041416307182243885270704989680882204490837814275678056008752779814658711468078316321530467973131960827679205379596941597140774827361497715494185938289719793848970902936279916403300911268530893450627332683086137200479629909246737161794586865121259268874173506788789271381347307589857530866426314720917338133541193937698770365568522488856109752092160732671245817955004206274573528261095363591582852997126271667601211760997427395733896085635706310233381321037330402527957186182850523004427211547002746598299945922204489082187719991120131776123096862007819940819979157121272362114190470474735837699700339007766660709889552560646528281614933949907967948811236659605281591932854117255259864814942150466107170133682170197876036714685969896517947138260955074988793864588741169030730828168384640676542506520331779943879511817385360147477254119967424306120032957449190040654755497349346465562785299656756865081934602273691036973908624655491229226090636694719789916864747878867122379148158161814018727513532556365666808994447000645780360668425978464569761589164059243926862293966341457700173147954330853149425785903063481733466706639627462212923393702002868588684269561894435355505100191936896183363875254424282546712482901035526167418845250897292476101269938102059615214206281839655489397577243608567172708537515300939590807690268920255972101723318931381218004540239079957434471348101777280633879733746668437180224877713835836398814877511933941517447921828088519703028466769956287862291280004922341709015875247327896265227219212344550589777567005230505139106205578892914667665226980877126816195308245608044830435450833531558871475743664781952419980508195436859346216540604201013887054845779936610181900073745462613057594174945048588005410100002232546618465827978755608447543750095483628395971080285237164919661966535663600995926567089484896415351451677374214943774608864979343305911868856027981329882914743210136383578561762725521521298297041791705750853866531309989515561179032015182646924735955198273501523944758592694909321546164967982444826669403564601919482662498697099529664463897092939763428594557625175670972245330094852580092928341995310833586435840611005345661353413850545191283840456705017009110816621215313182405341636706422870386184782046312765095601110065320379064364570521574401602051608624361958344339825470477115333163596442247864977785654802287731222497119635488728625685058844377380271648958337980758263440393103380661125255369761409613306584052456565238651760452819609327355160856736257068481697382858613009889514119139173267085988897566686245660701859097970405370007167583245174557696724352274981267570768847936353140690758694333130673083000065030056121620540201526896527810751291764975020293615186827221538509485001321617735628996369741896349357345792069256688066032177236298779919472365410099523503121427635332298295576351328013348613127984009296277136638962226906874175420111195911852093425692211283630193065284059721220402626590900640802024668980339683706158329509906048902672932917580168390351573529523228896847519760614027807819844889561977166287567600248946040282774885546106923161834002636907821495346874307810933575191429867531921367219330193375683459741733238499736445784791586111925558336894576816676096284641616609402645949911130959024891375324917690519327489690354456657089893247555020951176641002533157918213943980618366998152566104735123467561240092668658646443640060310912864298994622701906612706660919063882857520713899409926537412653917828469626434518817810767191184969114631049340271900884927324029569144789879154892711342731364107445061243274338133918685839495259363170537953292478839976626272183794174869252447524943999079787560216657577781525263638218000097758641455302980932325899311798188248694780737300081824727828645289965104421056416310534628009917467582625549323272050549508760835738146686302413342140631010093591704561189890040407736077574995323531727253015130999454823629332913728662493867760367432173024209238553732004459023493891580587821447768579234959628051606178108054950838917162594902286236382216513359469280494421265231930341453908511052022879065711733685561147492334195375660291834340994000097996494677257221305394913628198064050825904195407028372220345452321982609368320603660192733721174209572786076013466468150122679938778182310945124354591448997713632256860425451999772301163227241475965215740642847811858269260542048808540529199628756707669061450929950218964280350624778085912638576222037461726684116151634302116053897162095055330607068462721182772102753797828783728170371495470386676246590557630642510110538191903577433823939772998133297515901972585258688896032402635970297113499142255247996758227228808942811491075465605087631785850449490624369058037549766503740575270888279385371087537084893574401759578279614304492703929950503827242277239720046545560536426829457855025858465390074507444687585090302687909054155154530868645558072537127626964732543866080990774398072641482716764961127891434804944482472783276260181508451788673540936906830621025945588327339196555054009707005120834006769593011912851697103203537582127554505090352234420641747313274774994750906984094969734249035471644201181436726361571459962374245281051813969863712614969765516032636350356438114468415820090943762472359611716139168666351788089061757226791090775451383276396027895586366131196711312907123714713104607020095750203736771365900783730202196473015072892658180702926615257782629441413295015565652768942453869632119690435955378084654618740993149478378019434702356759975583242871690173997694992633293951884903531184814292467817314718965951370464447951590169424036282321553186406535110225741771686011432112405178836172538187739787875588422221184934372389993080480399215143902485427601656843671999100953595566427597297153642194888234201172863142990030193931339979380091436624632641322681000296810852016238458142953714767700825427778999335110153124885607846833240330272802179861309010731773810599707278539813456837564247413170182893698759581856036638403731504681065015467135169557958318868770491658383717681010690112027310275160070117639680244220160760338403385350863579060422873718984578170770662550902545521650671902197226353655949684058672542670380571622622952675385012163367072437286051834464327188490679282091371313937008186315659234422359400305964435675183053458410928411946453640518910326397781281705966500745216092617012006381435390233844180969888149135327605276623139267243453843199369323351455333344219654127115056983242194772290375142213368077776493511390415567831312714371885035064519780585101139042213793415927748590128743457196164292303821102027046821636511655741030526213406507153205340337883451616446632711787083199038377995126226444869072526503317390423515348761220212370354859090566295182129048292636426112850193904979682440095516550507950311736811147635349586083788956745259344802716483406636369608102939573218805656743713962263489190929465975313172187039118941570372425201190863561339692317050983459968058490427611589977362393836688333965404569987953630452285309521057257831296880666395738106727959682783773547081437927451133683523028908924624125500566868763841238999456441325213074983927263118030115218584707639217585648582122844087493399624278128051286487992915333630136391078142255748823099985267215499424522573723149853844604454627220486029565563709440466461436612815594584738515533037823797665576396522267946820733797413735597556132434444279186723620724837867802532598549725881387616525998684610364440091702197220908024564650600143288291035187013138552191260864980211944061626543855844592664027789016675558545420064043267703755449536474728602452513580980261939136834595623154805478037800436911881571976200317883309195646074048881050542844963688500615600532314322610086307916593708327848622762966764149635944721107105183331356554545434082943070273232472502321596431184799640529055530385756722257088329162032579014605665588551603630522827778276336030212971737692380876309519099027131259378308106091288140150583669984022076265108287471044700122940718691255357468358280945605621680012124820429692507112204272169420488361821446487374714259310520099397543379350338185927147235563540166405356849208907472633684041002258283404736265791615410585678221616055308732694747517349895678247320669867994534343488023357351234324079022355806537203343959876489101841932406087638884918602340037728431011208522027595029888247292813870185905213893186108974563484149578493915274117442287968639520112531785882678622380284093845844368817799839044526774491039438327690576830272454831778476788737298426584407139356430126873618406011258104683295448332394196227530108660864721130758311673935262007270446858311661608224306676626860117286751211000964088977738702335866572174305738442761144692276189161586219521326515642762710121204572878017338698847695329243505704338131793619999782291545184596325984321157006956139764644293347332257437063287178171757390047336842365379838456938409918547481671361756768307749632577611257632584136402407145265014689928390706592055276303452878804333850554296875473765542475537980889042575991472132019786318218293637543839868939371361986167638802858360555594674176047748605083275831935975599023136174191478020804552607430144947533221080620797754278264482119701331696248878363183856384147304398618079051767402711310436937600941443295390154398793284559539662307566085118880073165943717075230900259426948440522278128360421056373878470259194012242830479604447105196728979616572236441555897750256090630077430187335369467670711208578859228597398179150089932405259369966965488688792132789093694475228947573306975078703271019344721240599940830288150593592324428331180698807502806785287282542530465269952916232522902331368759240503800629806303002676786220541208783359677413625254328698431332429873991463996704652496441927004880672224441679653554118966300873347318553116120425305704595822004169026949330166374828330395633620980413537455844237889318345060961082705845551166488178742125137856995380304629670073843688847772142653316823959197846065342780835233359016667585597240058347706908562214450061451860998326891592985892156359047532794821869949809502780238155962747926475335507372790153686253125422665547216028531155721040470429119893182732641591403778634559892775644587691928359557255442613668336758243299275580235309882965686767989504059451457061825247494900935288154399684710477580527744955220133156501536600206253688696958022401129563016158000653235396666410339542814033855767587685304405591784542261382789986192565329537993203553513175039479896170352605855077039568484397529993084898290516516261065822782305391791018908322999237183155650389800881493490721514464743087666247919544136641994272348617419941667979638600626340841977126407179250227732802618584154641294139522885951455236884579338614748952320059000055951571638552235102887565965937974278477969262444056359962123435934626141616293079396845967087623479297601764339841994596975474657613324653147388651009185502924309994779386265935529554960022893846893634211020195429598194445523543709867516267375442491776918337169629157271781986519849010823686684389022989946288600618528895673104869503655963726383517138552976501542812095342498052503829851931713770900758266615220764108296414655723236712003800319344508127429227247572708157649182421554597852766173199538481146781031314122317054250525134558924547150432327586231520081429919597228819195101590097032703268142708160819946342959317873717113525076777902405218948849109618047872033288882383340288909197837815472206239810749064301452110107022478400035029290441707306310611449442846115612578577483208363274262952883561473146825406042158198965109045750823051841306567100907869440909469684634077833415222287100804447090317800021329281407353545673242751904839519642529348697301630087842614635562482842926303786103987308853003725329669018532719042584278082516533897394474423929990419472737147710150498155606078090733983464967920606950401862478588326763636009344466268289171441764302420355128330557932503249256255630140735345651128399262392633690328497381342506487564258675320716942711324223200352217100763689003563931328473945736635752449967273253858800716746261762685758854687856666283068754349450627811791560007989329914210682743073357040818362357072719234271621625038023172958096259403741470316534671386988624628648199315356927713844831029155039419555449010036348689807746095093976616423139086959092663965495249730986469670925117815235221542456863101235297373833651397747756022356433400347531411371787057557842977028292804788410336833462387403304154250337624252367343540558374766700799725512389817239942649419894794419214534147663728965145315629471676416425459903799857779693993355509474361388828506411172769257634493956497877074962000230404459771000563580950895327320163243726644169839756932162144417435629110529036414336828654903234238523418967906310700354152885696380176859738270228710703471172329796800432933270156711493767651272641750970146091611285607951316341277191491314678019116171131598891431823628877422497259225077086873283488808329756743576967285496738837923814845053107320260181207684451694048238099451250116056730910686252731616801340395309017961316388103339703065444284810385300070280683699349649671564421027188816848871879194733364429353074311155839278384828909545106943082809010350821953532214477293865130150959114015367539229659576523014086072631238629716288609242378489956166906153975978523405650125991050130442665414764564854446503565032334497749153279825665279840619097668264030789295481498924035628532267553078856378554796026432097594803641959450690404727880828015615035775651625568398092176028770865404359366534017896963939676042384451019053191549403518695712847767176339068329751547000608105135319367774588032922490514450164633989393891637338968200661062060444121302706741553422531707249361614914915593001426346207701708827224059317828577022599875173393923750550966209890293790012179149648145949732604224096055079697725192472530280587126846679271628775262250712169247834805932593869185261581010993440119875062783677835386440222422356860961089935693172574398201048830709341698705527952202057680780362784192236495758302564058592008448329566139639203642111375800724958980681171186558343067790558947192488630293027164516501279850506519701297956186805297246041342695202839245194451919402695392971008831350567653432285114902107866892742437599906036636934051664282862025992226355075227239787074444766991743225786360488857422509145568761671282878308765660377209620964944758908658775739058039197908494189102364287899305879627092232659990726499471783143001308732244578919502892107388118693900240662233580009100174239716757347561990638291128314064677861987959121724190462554634430634364615549356150839756698629245419777481532684603442141082277210172639891995772053286814125690830842291415016710042903826429032027056286462996048569637165127500336679057854425115265830356247097678043812969225083469433380649471339799673725788696531850015557219073788160790139071607873444046062452575322045877616370943346141783606605181016333315155761277676236311941581212630233993983170752892116848193299385394042867267155594459186513968827831220997547461289836699112531859159807114879599845362195688788043630940129468119403811508311587353687262287379675905129055404981820804292574864847920894371153677195032201743935988209881264723807699308462805608529884828308309409896113937756193400174432797694300294494652969568175339127803578963671163664959841219468904374538459254911311399870548332204801089163794134431735792821744497409116705662523739071876318145448057976806062149155936884665233545740135300568880300902824326694293475030106232300130420793398609828010319243103497472514393908988858949853164061734647593015456026873726958862788632298924883206244337067527347781480224696082409220204688685654295474095761000796587010245941174593846437362941466523035365385761932399426753931432544146784325000647154209564323422372059988931425514804910243836724609313754694356322253440243435743199941891940950142236759909052537779266505645212642678920572187758794704850829436001683184463510140683638012941529224073330787509496819401941958878928148462371308326814785577613423835651011347948009893913400570222485098504208794727066048461566960783292410334958453111098331023165198002530193947601653953450682610486893601734602320019105810219915387173535337371800182737236506274059203491565369746113258001665902029433401275383813358616418515484819814877577673088969352350617128298417134958859219996017342330085104707643881341407049503580725365568309612111391143461154524140198247438689626387328785524863691837076975668935686351695296835635737608590521136216524546493368821767805021073247394182182733074881167136632710326620684508716721006705404545275565927196541209458892546592781828534748230208179518796053740979796286580703315985375822585598278140001133277517310593848853482567688518127216761543428968306910934348810674418473711500756533395913514618974706795122199036893505340736372206830192489665902029120926769490357556445590618765796225178250154700858675399796314580011445229537764491483593295624946781480722445948908092336156531434425117768180802260733671466329045159716649908730786165803135109719766317301381014341600028393261974052555034821296046106790097053698009205794575702447770810045055639582204771097995636539514109343887190679164696255271584511433752852162628208869127271163491503156578306160813995377731627585232789291856447218106380124094553278666046611654946291451486624789511041355024358682116945675059862389596804509001751706252752391257450799503459239578690205112539751226398338622150164613986465523418795048352658086018826615452136999552247806118629195511725554227291385446657311140363687437123287624691333149890530687655427114402883377871142238095660940421833826969288443632175668207057676818225278621169294786184923337827363093802264035860980504604182567052982471929987688344942907389482172190519371336897370732837691891780654858049498291099030355913971706000666646527203788425711357344854483512231265966932240579682643795996365078506313191727477971044613161445941596396914380492625950048653462302427160576735338767735123708767315818913387711473542705330355552467300471028175404999137581526150566376639815651522262604664980143930439319961913927148472927680735925973216710163731862703006815244887250243968682822066763368100135030663568895867630029045542106512022645443085018738399934225427555442184402599022714151694174242317038409170820559002479909201689053019258622189450399117485890708323378734751995088999675374174264693963348476147142782004264639865471790550542247854344447326574813783813386237780874624032900269955830562595578399900173341959103199965623395882190112591229401314339740752483825250463242671837189698030238438372882969084486577094127772302095891444945095195793119110280974910451323779538909795010339470059893732962449552069650491272078959383852927024538397536601689065383726488472530806695487070869526976985444471183985771401739614335194294408251124463953392193477577383762233375163990038016971541938658954890332450913749253944254360602500049921410142569849197559385006433064345966142389274866382626953204871518872408153573707530237431107065706772486855707068921422244112402221239454422640693402468579485360242039880377231938124104265472880520435254828917253830341954557064564458327400487229290667082565465104615008721552377831769588473704241453935096800145565782294981005411715035473529242874746759329136226798094187568412564460300376337647564519344347152778730175552126031487022388430489640849464446656854172991840519279659017003875482850180454202364385673234968980579049874409529354733175606518264778613433225438585950351836388143414650898579959199588458134512870182756892823608690242263801774761715561682582575326243624202381352506928351142466243364250305763340122560518919834220743959960038519409623379540500229675869734904513743746958538878361957743675620383132645500442579545847747013336815637840005146850487588993383669556954979737013578525046279658388256076429981125649550622869008642306010670520353309606544998015946810659850925940576095822257143053441225439830373547260096005082587458125963045968821967481347295877277515766114308476236018652253562662158780746269472441005289036425283333554709069594607321620724713970868780850890226759312198769443062342750315139757679389042873869766313966745169079056625308900219380869557970622138081914344392165537524984499902756075016680515881277351773645873829622738025332153205948066568770884125270085008986738776545651440380444797721086211614242313982224863791957657418461733973304564219910361771295870170085613608662136602989866702874421056878368152610330853568758265626903109726904611166556927493730632868090829395139788916703490095494625200620154849670835231124442316258263325802245501515561653099308591702788842583630133839799698547465780401190679362151923504797114866843321779442232746781361380415680492368754275422153365886791810515595566464032232073835834560365269654737936661353623781453399456473653894737453217732813506703849441645849856058372586548463404487131205861196686171783006076553380060643950595147075837842666881396657689636208548401505523472738939163032918738561491965760108953460066002985073369954233747326266469934396991419628325231081622660087308456528672202778887409586735916106963689678535145618519691629786302530659052576280866425815012457300176888225864327859853211968468707550623010619478561603542907831176978748366612777195921322170626462645286916356006013809787861852733228877711995234256530434975851251243256994024061841329146065445584882739683978101222408903195792470339585626651553792532071996064127232907806861806598163789709295090680337826846303868513767444174336626904884019446129950488174513390936499033902389515644560822017933691257984532259488289985927532774406484509433794975791604342068441378951965340188059721472249406759326613132430904536698814159768233706226466464434945191986128293757225515262770106674511287982552457897633152827883357430047302673950117250626466849182965972917180430413366235730910230152607854583506606141940272174561351709805492392066987671647391125966373110214033239400248079048542393493269129729449065518348212155369612612264993373533018477997045588574567322472841829175450246302103525779889717398660071516419943531492089117951170411878518492656331569023813979512175834867658049680586699341560426607402458036057430324699802883639144981600714786725102255519285016727737150148503968028986785803577978321674228424604081295446085401965136783774179531030727974191037099325260238743818582419762898696730066490132337110403206586760758660453252809582341136261281694946209311519457529077619876652067109924051537287004014406932136515648982748568034075388815057905980576002937690651408162435252092149852176345301331464089329455584369471456968377848916979229918415395229555826757087294445279257756062372855952731354885528178965684317271889390571315935166492693973171738747244914797582336142896740052377878222272906233643847683225377444274801373661950463997799108158235139600533915271954446526764789205036347855748768685088555039621531921007113538935253613128465067025956161490987246042339310756411396927077735477706159911079774395543301948542331034882642705688876418690357077070272113602510151803332999165235456847143361920825336554849225291448868246888796626727952941486811865362961149225338885995836771564149238388039973456616413416908375649037987325707836802824286824161387251988010457142876578650405331537411742972350941718277721613121774708281210364627685082249220342855610890832735470816278807437531448934859258542832615361045692261186213519682907154812225596698448419057977051564312521163679359830489329100189157517514489255303319178936325880498720535298668966399716933584167821967632537055029500430617501561073616899983616256842526094883310123656868130834875904403253001752160777686697437616324959447809884506594365856088548761763740707296320688286475075972887974798342931218702052781598385140165797003322164065513413710729946421843894889068592822463876830879567565762612674571748219275044426376361918735918266439857374191804693889715915399198322995698742681072242388692825966218297299931120841742902248747176803814425989409720751682159865733857098138876872527028177200397299019263955017509190215287579172248039855465714498189596579376475802592471691475296248943304025453282289058169030160462221791543181062426534464055657320487767094031981478763352456629844208046634677008854780152479351122234912518969313422924859244261210907796347420864568283873496039561492262209448887084916546966443674512781126992613851483926937534818160511083044708619584261587306602942318079468683822825451705012595632461974641194411360925701267205551101704003813262285613004931857397388803397374727267318345467473789570471186231616809890547934912190279362835559045076747520674397042241234326789126524188749669628082840834610732424689682871614678261596084804471590275637913466847722650163709813251169957381625055606084733570478203712604713755610996204817941036784575552029551390122698320192498390092758376106260563645116937683001729087306432949758203828988641349957461846352753000953863689217868473206726805494083768902420882464072493457118317264403101426351405726874510354541568508482460859058370497170211047915445991687288715845092579485586318453224107697080404696549740214394446517534691092850477112504474565396399899370013272629164981677818269830840423725703974758601926514530056842733302057456178135134926651197867043878382405419624207277975909273385529814148026961814150664130638532122212249584780196722694010129802867865115509512154570755628197696790998582739775553232606985127256883033193316318644871076368065961894338755733069861733374736979832565385760505540518303590947438761848720662347435911632845678192083058101359925953156318757253191304984969186591288575512034172149172337859266155419983126859206178250296785655032157199584204862893708774175397364416479766925500972881454209717502632591535635542392141776112133635206351698768804623768022920957051588319778281911141562238045412643811776916153734581690691711042726297322543185985797738214992452956632418954508587392698628005617633944312206335038861557702369458460654241951920864723510597539106992817950127754281326411863787731071567777727005208895656950232700461968367044659390000719925653007682800454800342951640646529412592750873653651085539262584868504348259186339075307529659452567030213337946060840341377441769821313184607709634370055579167374204499688979552217014220654399008500988788980473037572908611290942297499754011990632646280380578223018175486672067353296064285561619506848020444631851618086936823795256099599490187501595055573673057591743809273261956635424165226896054162432994375006478245060853734080995796039301424275598520631128465484684608486633433144699453454234830135407855274054778698929707120179737220487974970563908944146181900036951112310557075826314326796836128897030552467220651449065692518050418715578454706920172189423728952923667736800133375949362873653046871892274283220425472645452827141708419712368634893538064360886144360908010454505588920900541749510067311177510531950569476480536454756957885267077971500162235884008998104759968249584748562637541869642541581066335169990650695723296617570690095656497146886760845983949389062982187056954991325134044942476390343648911455508464760866754049743823233337397159938009801853105203012724343282199376893013800082582199412091541151793830674273026648300705864414743824043492542178137295386487038910897631962574885237442843883293292316960991964570170724821214078956559343339524317925290010219879965934260238836180063213905887754338338148490581159682070495665499510123004350605151642499404646419190033429764296750290239353897074360738043927533669800929962398845764323667052597340510391100415984282624652569065464190693092864684688204285193751226895935938703737547733624096729386835618544130346852268700369639862444459581886378580422378608274015329164923680469024814061105181124596587204791270816838849238476437012680400849565677853767160494318664848060302142560393312843808558359431130309212269434363772568243937574496906008770018380671876826436172300215543046595235441996022922360693874763739387429993075821658536312591347650023946865231307393991842444820172324893613711576791975406707402601953078369392284452212128912729233639171720177245544923524513535192456024185910351701823498732574000889136884237488104006354493094513156405916760162394630591925177654692869509510572149091860637938309071153732838563764241236780889676183909682131732644025607747286363646400693228916300762218191305407528687529303233190635299951010288808864107071757827537076374585934041295223982084635461632262440036389548419007810796955200231937657604848139397336440008137049419525733028938577829079080205380782831818720934834059331016408001461343199695542023753550778416935405149064693836426495585516291920334475007814148598094669628805566721210328060362110905111809675029710582794790519144305692061517138659994910095320470393108389522079913421816201616082113467843377086960520944178818772017139831272488937626455424472157369332001231529768183953101127213527476466325001273254309707409093189669701427502552832692774750486172953490258428358108991144833885293282076400720516525743566573631985211689630447468857264803384680060032528198013806989999183723051565724888777658551868984220608552028276493978456506577887555252817444932882801723289721687377406312201004956622224076324811207777734209173137723539836945234157475580912042579151615737381912539800642510045510729345496594970147605519671401703583825249334209175211458579763224307851418038481353356640590575226136111098232799734690310744344252056356366957818025478004696362159590235982873122126725182445037719384968143139717743949757903473626969442742808249854240810558230215912488819372765544685955664614067446708333678916035553616207767640109335498440685608912396713481597221040250051434418002689351715329763522297653884606076482819454227990016868513414102946869995446598123255841691634117859886614852185394135451847590696540092160361630178364182096878834187048542435920801310659385884306110469735616554429230197963401679650039347802945954400653313142386886037971811069760498365706515897091911519553089440128916237050038922442645158071089849225735667851235393571857032741310362990741857760155767683979374244912309290791432917471236986314507930250921431640529317144790104450091620859537170935366819299626300683574987283524037878120839355111877789859947783536219927841090150877487398086195336299117402646831481254390935006829081527355111179136303335607247076610525161628023502621211280964671425499955406023180874840888595270121074859201405189761179735937390420430460743131485647488300332610386673683023597961023729567629856110488728939613653576417511723453526890942428140453510289771262892591505541544924914828383929965371267618962402664342313321015760082154387848631871281167836417042022371758905679521497248590422176652330486188178063130459560595014861732155922301863590238225951738145978456826759565715640725520271622027528773762588225384631742035182305854779960308213140508418407215833487529881185518535056479885077773771679035824421629879724548539470666493947428577616438345171691652053761461399340146678445306528117952755880089731944408159205598581700178945631340306854698121638856163376973254414007206716813021382762011280122548249434989170536291599373915712258458647434167180711447297629087218248258375651112295022352537163681656685637173806582080945013325790332680289502223905714889318897058561769478748518320624498855943960725591597647739525486761985958945324774345847982611881840976011075599143640923824652327176644738678265507888341693597837187512986820027475981356599910579381527569644556089102023110306131827794772801089695544491530821283392669347295220046764855001156180580835193369742965996176446203174393408316170352545383186856601727929557276630569291271347957022368544210062956625618965128938140757425767668534294012285471673614475385046397498447124202051593561550644661440134897923942269970535719986070662908370171863284856216952206697634909063550333814563529238296847388182660346794581751033057595861450398123973082698161615061300383909746174551474813770175555276414594304974295239613530498842078628618436024459919171425782286991655803059317861554604753649975540388987797171074122052056889209213152685242761715019999248529284702727920077048165758230917993837089661666234175994102729227824761738711038234202443192558400382440965296502421738496373483860326251941285789863401869591437616829963564458642988573130084726082318380324560601125592155651458467693757300740517830275606898964079054880587695221451169667992657591600545747800170793771962328600170779527944724807840909657058939404206257465276350374480450534607583519729596987474168559567122617499002621880156316432841306120464798220170319115539821448397914397051916680082268267956756350387876940742905241297831374261892602018912460037089072705411048308204528913894612837155539463251028533558293789090851753910469685375200720715503251150141264844923180319862681327518334511444829488761597620078972907244797719070737421556715108886587069164221120818105386680959465794655509453074163438844924134639321324759714799224148400053368545719822257050031549921855037128296443345576439395063841296228687669404433534450169837276973214261071990625341585873184961016543486151833240714758794453643702201273925617564652632375696179448850724925938637133513180336697240478157752725174010263132167866019150462377865938988646436047325704797105573060097379981210037915986373427923457696793334133230574395140828803155416086231718056908009376432627441498828780476063222962072912872109995701563438149923258692589600554021139396389041276885312361978837870221230346999718761466852647915221534518320447024485585954095721122440608548199029671813479365433159581652249804701159722579248007265706955223270374212213515210196871138531033151295463398613034850464689157040263896165537074260438680712621380039069201504057579256332642175934750362650991727370206811478433442433606497152965778689983800817458158906253713609084207209885446047595081854697486855776723155858356163357798531062554703655360560535872819879608790921953175172849584236443528079773415074218516428617684091491594426238402126868056734828786805758797891013942174779208048594090243747552574300994564330241684627461737483137404608364291531624911094543397483686580266126325220050523032132492371321399262368216488581617598480498580306455756330901429547225883088536478780362210485395698633147026381862033747840798197834467283720407741569766937412461141525806576296286508251296259147385243991687186161831246656689640549362609577170682076156631996318828964804361650993891731603407589468848785908098200094839854139749262849035713564168963070158596308954656619228136674096224903761655474979692344021263643073326325064489832894384104699957633431737987605318108102592874375624903254931461596866051345027432621251422341268691394028807181585079808778767902323624456885855773783643110535392209014048420538192182365396351350506765692342090937132965272370215820095482174957636633767781412068778698544156951524584694701569380674871129501518673356180469807682323401066018031842860138654765609465478954672198571582738198438163635395660813349379132422152848116212298767296663672474382587445183557595337584895209884549484441797850902355472515068872353313185559756026623633339612853782091291581809517592646788534425398330583376917746556014589785126387514512828870183347713909141802877843168388846467173223205514589048756740599325829034427027442629025786278708946851836032217103775051229483096480992249158259312766502745081134908256416022490459004259266270972663808380218867134463616826340410066022550590259194054805719717629642154488234942238553367981125163509725777833787297186614693377836324111094883599321733865676640605910577011660907302404729524486873664684526317826700207753082077238009081056258076460894477693053455568023405454862009525299946124466179143178725241893412879781637721322843029042094418319414180501978189465505254327722020062248126187407626836615138932380586096734599676580756037775469816749228179019022835902401896927247795053545608455271200204635014259545940138070283735323840565213209724874642603258879643627616134675972453215463473639571465557320905973073852152992894169153305849241930271208833914810764260608965784826877272601176704661402250600093792350938205698809304760811633948447271228948023394770765902537415571802122672585812536534871327288924834431354673574543997167453009019696007585460120156557762341990422669260222339109961545782310842090814921187029347091629216854520552853827419179439609834330134403850548678157087565942598335735936766443379350451096770775581819287195204179440827780487664350702507573040884947986282181536860562547007437187211495641845342052141444149634901510765632681668232820284611644698874324477058571181639677017784134358780111506416736474323546548096837822376411625450597040410285802688082423075029625206308511173460550973669825215288533782394771586918456489799165948992973078364419613836708516858769110543890270597799252035711862661370970739753374518893247636414823971105374886806867207772962100491955955058216902059417906768621001076950480983759861652239359004898344924861232831529901197838167465163801979479055882585857351011281907212898940225982277220630946323086136156967463568959431563018810516061978615695524899034434099045085027362395763385520272236719518835990530346267554817019183072405896030971115272559358332841686312228620610567705675955231343237047445682762488203065146877275947984472977974915368935455745115697674156533955358550805335650900517415718291483073763480844758914184052031121673484307487146532681841928722935553845737217420443585065693978666987225950707534656490082126831560831770102386868685803938121815821429259898043098295505481957385887975903653767796095191847869416888306795578144738341270051212528201507207921374356072030676560675075664622675248570007005402916661482042617298876888993922952777343702013327551214211416770046705726441013104965720760870522124031219616133877249397023521596612538600013616256106130232256493952347699455967176892435096767551319864591088736746309272985761128057366933357520467725817139932498240714914790658518898210450920887693467925619672580571548888688749573226756978532177246056230561712561628608832078148850526063788193829218742253105878547185230338903996499906298299621377733017365837106410473204374703518071617896343189767333745030573173645077840806196873984287989785295456277273200693207102594857870658823165943635563536660396702616894847766950858135869257317069594712936477936946250542081153814048746674642946994514344668990709143642819668598780113569988534460297791061855906974675048049092538244996827437912794059122295482281293457563642580355994338236441987937757022803704019094120732665708319282147582462381655469832151683624527570922505598245267363423532325643264756467082685851843231403889060297478321894554170532562385190501975676010888817083650060857974905932442960205016363964971318957586213604462863420329003647634125190870999277768883665100089915583875942626486341128639667708673998337699618345133340581623942460715592715538041470672552254555389510536193339379477287435414515176832670103688108410057980600650793936390167541775045305053173552847770342769907729945916512052608594024756900133942721586134446666533519803046895575946600125058283516801416341908402539586714309511277748696794920362191068429006905997982147412013144860371207703103486076440239962585099556854531002129569494534381716218405395428825859858149798627076074369721667059570426453309757722467874374421799676640205687819988920275560777856781297384508666297533371992751824736521863690381494717240749382326229849128936136456772457697680992523524952771273143406055205659602980190050985649880635987043258585914341747248864661747068391523468303790116748249026019454452820711869167808810040125394147680415576773503472859553151191900690456767305796005831857486599247923078078357652869792262668936961048801404035004902254050852729886287045796181722053193298930961874431222321306500259431074573939026561883695008796221202480519866799717397950595154236864746939401680716575659426099330152737543226079104717649406470274226394485692420662289240942680593323591240099816664781860575654115592396468151071858742912913847622036197580561208373125978604916802145317823215229267167056472857430366053316909819902293455123252365398007829061993844445962449099735775095417738146529778672692497988086276393341709865432606749310873512101194102827807354332446013367672720044779488408516306626449260921200402136311718861833248930617877706563959772143063688549139746428962946949915346798914505667737815691237844467297806305443918538644713001467002640694169256701420019021970335148882751592276736081176717856386714963394634183276843406814187765784562746482431108168605764438953225559555994842493632298006989556040832972702988653061147981248707943127743425523698394975933851471371007515076997464484971343800890511869339593705088034920976946396349619395038699620454437623755238177586041456956747852242355880016378824508199070697549262878718030269727192252962041456160800315172627205149173958211060845623400022404178050150351907699879417307656027463180975654645375502372368704748927214978256521233370207908853147515356168226306430442605482667684857414541248100868248465117911688355312973515677262488923770324783952620417216069775082348314740120982251431737271606992051446428146295492448572361943752375799847222673786362625562824345270323159375873408028624003725497269678704175501674730334548177130066508981508974196267919742844339370406052683868807057120333130182402516132113431276771588995001493822348574619380725059673907538634124182726163995697408233444385539789494785157158353168272053144010955628472411760184641962863042193920164945106886178729868505373347717990966106377620229220899813723622034555099653504343739443707875428932258355121713969291462421585445708072219155484590303925466959771223333147072256779183354331188645109156043210586281967235106535760457165961899499550391580233441940203875343621970422657799203589293117843202271432894483516071806458761358798329246757024235016903290659181249101361439230617480714231909761562485847076853166090602373525012625747279261239270837751146241669031872330825092488375500939660808432531424899649718915317288720996694154898110488810656903030497663345144496675581107470177741347018643628877145972343173307928399261791188568370885404490916242007065209823582870091282231389487791679809950952532451656992984658108632522271289131442149505273169586338817954936720069028244776011841462950580223682197862476571476993913707459241086089722015544906540473672384096278383388316521251426108896560880142146722945184961354633618026510566279405233942207944452751046674816519450958406646130070166121635869333027345875604286818927286057030024371975467778946513108111862479238172832129310145527898606760082246278227724617831247860350210459868605254456865145925331261164058379734752491502610581606788123108446739644310390549914156187532737737301072855422968150054946567404767179217034925670918852522209171198806744758628184929947062963698587914519596777011400089439346338040254420500054143382579040764530907355087505852083986382152523343365367949172156016665417624560717383341332229612644283637502281920633583476723652789047354034773822342872798994806941123252229639579160340060396935693847770443753340546370899963208957893084835706932687127355760128889144142540387223923922074972588379082713704855299221046977292347863472772145052494009032996247124225354126108935976929513646236279851950018169879862405524972196606148083015506698767958110514480752166396364927174716376707141679553280375661149637891690973704142283838833422278613708808130736910980362723529666571321959757634894379173174090245283521943119627918654897475660066865895534381598288331650711293532714463620693330701246876288096347454191296142807146283420880383725635638330161225002615274102673961841112139960498690936033855983585047126670496651927989117938135566309323998588110006072055383472895965517379872503116272228231417889883436546849056768292645270574705936497421076840933609941123397074793376393274911202154279831145254751936418493347425273727125338938207934901428309763022689638796879641321084873513592442856931362784421497517479475478063762760293958516871744853389935049356487202955665535382560573044845679799782848442359134686261872035901382703468524696938840407915902418068383513057305452037923500367017093245662728772994339368081721708071058564060491331162709375432250792601280287693313494689054702698003640222300420511949492975110032847751409267630352969760680299083353410088798989910210051397535853067999579486391964971530467187311431548030545149005520127111760342919529555812211481074882891481720367831094806276512418721735334436331564434826232237586823352087290736761302930527986792334733972789697922537486156434462813026009124446271037814082457659733879324705419253941284449859437028140717228694202633224664958320530135899732064202941080899262034275309920923900761426501994677296117434988284388689413583311741401394627781466845211018855765303650623287205143409206157662828308937124727038115444441328513959011829582140435300432584093488927844897203549452750228622578553578311955757590753511677778985145955925872161164096880176069548617793668141647986024168428857339697708489190132334453757366333691507085540729358349088466173104154864672123414204532533003816639807040008690042212751081249356796074351027800481929261300723557679106081884539646914128934335697853962863565169445587938268489092539378886841954874763008492504808742263169019477958958102372392430086735469406951824432848596125884643542425334509190629357080521266196341219520683761223060627897277361688111630087949320652903287485368821706404047187089022583295016908158228401918706322000599211460450188491257849235697511535038106921104924672994091059297803849430549920941523152828899751578326784558764557644289664885699595428556309143897119876606072448217618345379370607814149924062667261907676608640110963188953997436395185317689138876385107054461932985281772070794788823820815223637872261683295975879832194372292305528053517000551968925088173024865377452572989692420372777333596792893708887266767815890459733197241324239301201883075443743961030813845270823046063290772095149086886475060273832930641381234317924639317509662076227328136091305192514889430688514072166707387852550745231394213756873611932270422517355363832277565617530096966629978473321593338955587663537270750616849557135914550475664245148820756124046840050949436304143089962861117367273532193677144180707819194480403318443651971049619256356333494290455248401498388451650922432391379535242989189025154371521491285004057297761996596210482578130142904409918426882366968649947621163982770326394017186240125570763988572718071606394439693086407800811393802028105096405179236379903860731006862097383312792143666544271160803701038263534851965728005550330286385214741341309894884551307580835728628572813029324904934812662408146993302996964852503643522658556365579221294529103980202403083729585255175849907994485522614460911565179250903888486677676867141297134684996340037602689472198663045838786383808448618036849472246923304122055489228015967233567372883066597079071141022512248029314056988998644296362245779067275124047410471945009563783640940888388177425461086792288291158051040622492151320328310763479261823248354315216348722775092059783657040630756608099800155342431161688557187420379365111042050485937013134675952148796108612702757803705425638417789819336599231028423765094508162965701727891374143221534115556948306332073629704177145133807959943437425725575335145949602547413375529951445402444912891488978476179534683509024925487847841163157856964874918592905339725955561879807248503332670944245938280675899341743400078407719511423807799196170700218441059156996334883850623967950148726126031215769416092417763995303798536806146396970530102262654737111374027777965630104104236991704215516690959963893255861539396709754746405373028363163365932177615394033294964529200439778454945733621407264410879521312795952578174806865142968166882248108322558831568306267457349015241538927053811171978020429492709433659218346547055592493798820932112056384627154535043860670943617118189177866301803886251002468388292582067122653377105027396971134362820136600652071440392448987355760545784742423849083407753270783368274927463271061694119939379934002306813961447940307159479658742382866586805578292023413238493765655948935257640091247434552528005612386654554266644678929147457214925138227328239247212087510509088076331945467346263598927784740520697145672836830088891643132116203525657409324709439860167812905339848141545840046911010456100210841253683566353008175839023219289747986247932273249442497815560685751110863583288696424469825201719825600421097053635596976012211495306037435547325341607784185972324200541448626037064849436921433431310233625554630924182433826659150129864199619895370136356769771841140844251254607338552668624910895414732429400275423476210190790194903679847314696847574049881262823335193844840671794866736118779008631448415278518563097045685614507853604542507199416857186576072022739534734835345970849623748810570363903131004092650843578345724111713194295409505226531953875497793507487721448673612899363414444189450744998003645518435432945199186258462421995240280584709686597355459538031583255587488621104351486022194815972010564144153185499256418121351739390129232753601856637957143937173790241430091837789468144067665967508792448451865982233841801083062852193276715802646583203942091129230503796049160332610407648692371654775632922794688183777705340034421238652796176533930558625534348109500044371423046426383997771303624973307216093546570069755765574001657332929162943545898461006147136026021374768067539848982090441136491436296457762451817760807944669712498604847943387784765351631217048718706714627918130225603317471200574964789773991199498969470858091275572934814213311146476053567424800791157304886141608736759456875404188838020153057411549092208484145784629605733501881447955368278666287143368355127338865907678289033108237816317497189527845527967316661946579642886652540192018316184282352109293779626624757242692737443006534057944745196280316484871167570676839444205189738898568928058642863682277913031065730615139482503528863069014606898007196480722044746449328681622024130173999611152465968364864357257789977486861269967234713626451468226022183123713904222145384025132599489675719691551091391611031188316271723648812447297862194251921496815608714531542611852136338841593886196971951137838051664844581510214233642575324743252136252229041285219994202729969592184416018833022107262722864816796756679424825246245416567760645737077564874020497893439939991895068479303933398006423137936639309160737725629477217061280720906416010445928931345309914389064554118820166405115395932492395470624590698579406339436287950329490830490307815650508427759519540015872041521161422368040976287490923191622654583739053425955644296330314615123698319324346497606436193355960927128279764959437538674952738735548404427173672181656716895467960163949380488882921742606689138556013065978254856316939873422003374822112909891332907288526086221580601190178560957663209573482484251614518397427247396416399021187044579535373957386787056647047998796423656327995598384394281168964301449328024645512984734582174204698788852649028591363790678710878815865208686648219439520272492927170201573186713648042118629186147360382999274302442614335628157225413517186316456843380465705005363527107380127249500240259454158979025532800471975746533425225278873491241880829374567422148365692831255627794244356062326313086220245156630320289518508170801343416182444473862827914297536080603125323441171191222097610268401023378376250255494935101759227576537682001682043477614045520716165359850715600931224569916248264800994430704775956722952468367030478031329736682750609243544658232295204077176578258803102328724405234835491616051589353787419732450604267973051680432976438515184014793400671430715165381546100453247019945297730090032371299168885032540900675938595343721204454594920937314275003397679951967692427538319136716729709859724396977616086038243073989023545906373902619271158773794825192885858339953964511351134503413665066023853183487966682608275350960843632160680896015074620411868244436042606750098236062122010279324951387326821942025239018911028103007081343675968635880392845826000156817980356411519399990391799362928233834117476822615773670813681619735087348134363522154690144840224339704228367145296925299770268038096804135046899294230690236861293532553043712960402887968727300049434316573095050725221620422803791522634951307210912161097553546234558538273962763198892316045232052386941005441251557872350616387272184347632932439534682482006072929039598176892641631686990457615706476886692174085106000365681401965875676111126025755863163236665815139200888577744256131737621530758943190831504965718615923525318083480453874377941402672190767458485004935655966237410933498165949602962872553824818456462032085491784440071208719809429392769039622866695558552728251090374390040254504567333083062922636579593556001234695926918761997716961015627284765165158070553703237892672648653560796576952094288087428953566664211459451326018753214477161785109008710256172763572788939473381315766505780072396512604796104319578927646173911508778263144544861039271184494361122344804515175344852265749524722315356357332379781702029396404471744174715287348821804320288758659709173113810529888694849000627089013542104237544691354657135910699321938971665053595038595771978473159901814399656243579182219659009513047194931876203562223677473258904663369003485154040100860185458966532756566007488249528472594302715898369944349899203181238162409200954151824898590912585093415875065985040048567970547191075667978622532365725759557183576011024620931012294368935349200140478462242642135576238781401103007543261858198728892582400188209076368361834746690656141714674401930814619446289137605919538059703650535902646083793937819993609515421683789747657430664455663194799276618376770531460906717989288430809696074620386914501574396873821358758497858210143622087645466092611014185801104101425212114025438513864889434042218834142425656707008497916454786278366238633447199451423181488269426392453408763260399947126565740579765140065877504947526009214637449345180712409751395405768896916693823080238708513781820647029917568174495285898893539875244880363391076724504903045454256027494696832735303479925265537747316530848151863826038059464397066949707344445242723491520499595921801907936176215158365115701418144127034986755671183352930672251204984350066815140886543217352538616441449883136999500638537043014260517108408993304704705355222136511249625740007621856851202804457185536033148545495130698172628540598614863979199476091367786242405768472419068353224839115678396016898677272902237059018346430572522616347124955976912635502305534965873540225708160910213434947007934007076334735866640315795707758465335832228592737163700480524920016013783864272666059323340916474805313421869612436084176362824623441041014118930824036210810977867469578561512585575738083984680281341579781493439444827093615918513842482830470760939943637014693436084630544415428054176156002696894561764704442059005800290570458446559407483731734468421254229355715477110440102543218290361088154424734046745440808893647418670037720998604114135124650578864074302126392230392119731567251243353569481146407981269428572247958321317622995230164209034572860846967950252592815816871359172158464788685844781797056581903594350348076064627646491498490562117299790359360427435869728344533800544913553718386340600335329702317609196475567287982468119457178892629848721531764174550526104787102008688003441967302850812896742398776995757899665749452557713429866333301474361932526899685586514132000146154557674149979360707141866918441945697269642984468478894137863454058548089631175907339092065481341171135526589069685042627157138885664534182646427525341285093202670719492043344079967187273393449223698417895507217111085795254650386551129724306870177081746684432508150768974190594934164756617805743798973895991869617085841921875475909623581947245369128876655085005638105415409590168727928237300932223169398428713961879452632425048226584587641454489783981607325301848050150313518928587276321925182698624634773290377688939755419221023823387546282436826007908463819698386431627578739998738379326115280024137632607772224835299751595371145032147916922846462632204909797488021941954908614675156270680248661742226115148579391192745201326103931231545062000128419025103376407099435477277959270551808222593838056148420443516539640079062559869341028123286399594312373156854499346905437437603112383020239737423944575070789994770860929177172878928973521800983523329336150779271805537382275264346961227529130034191955430220754857205939916329147038303322082933253683753923801743597061351975276012320625126184711319794247961454749430783570058393701043251223473971492800381289746893590681969181238777613257797741797564702929789858727696348703834544141463081962893036179862235747111002245007320553586661868371884432472222053813032506472614296552179386591860120503763826351119423350970140759830038723128210483704377653801200440627834720186397429722361954729756485663162014280281904020588124904532630762273153637447274938141274625480936956255627773275808822430255527662820538248822662336221250912171278514140900303726040042676125033748353858110277884067863936416037063228714769619484904588715256696491005228173146936382004692324760937616115638153132104530609230733687830550731439621022749065000290405796930751310093209629605640800262148583373936319360688372258074926051568721549175456205262454991710460529005400926248449508327527511577232371655749215658394406215562008105670750615561789049505689427214590721305297043081325850489029201317801244819380485903236312950210058914552946696926766253113426405091523853974656751202280568715490093210384562960213438777114662815496072750413076550754951762734388230443360048345458995732560131994308828899218905410111964761821689105539619413935739415517973491826495138205550965188119619072287426014672849688659760037316714515739106211448089432749160315715855630245293517499470261312444727868854834778691857311921075691872869509599325721053953769228733778209777014348773251812381282328649475757437717824318258422869372340157806004410069140579367097229981229536592308696726537246859339006384457941354405903938507840196394016637364052254756631385489120290955371667815655942641911767902853509062044250180388997008397567170916808291305432307575758364156520237684659343919833239050660356005993270089305077118546973239061256511124748479516442912611477532205199622375441065391857871712296835233383563606513675736988008558580474402379028691268943862003709812315898575290201053803289553097002477449356342232733283698477700819833928683218039047148640800370094223353527619640306254411459440475695840361005583010953162062915026390174888899760150984278553958227053448584210455021536857745906654381863538419198664791976710574465198449585028625886257044519975189202271801114447055170786770124954853594387659891351131156962474457266499777397703097928521225553771389486256211541670571336429751581942525241239122835044846889371284823857143742305095231579684597098935893738531269381074517838032756181557431460675915536017742191858076694319507773535619414582611730991859691031375946130451692360704326412949569727711123299758178492587171836459100357354791484760348732577660105852478348068159878970970248231896611330167776211211872889300982668460784995372924988600493880061526192107026766484090513953252473378204297863086058372394041590957876333027713784095281870857622266558563053141215278107812330744029832144600101222659803139981187864176210887379661946668874912611768044515638945112772751893531229186213111160873006158586410937686864641537122264649018613458416570666641663203285322371212561049458480932432299903272421079809666314789853865449302388921312151121027400549365016404404417308702075522117622974488199453589397668888070835679587513067301751177873464066325191700279433363627213342231589088479996314014465895324661488284909505958826218188706439629458663170943345492528654252730020839829553731073321039383592390158180162543872383878359366989349518743076247068532965132312157785044761550539419817718745840484513272953103893958050979612167058377516751237202141364784550458583733314024427060998060562886303186573723943719011802141214067950433083494261152421543801510065340846134492934097183218788197410944282535442678480559605970569464648736568897616542929283507821923457693361016959288794114296684122485248605563337284613185871005237259854275673173056122783734133135216716150022179777855705338113941381889585560585486034866569715350867839155433317084771274234533244842937463820539906413975205523895980088014718549263825629564619445823872925737004768905225844167405586259770732501536192955779315626225302579460653749423783066961601296065465114968760639737692296737215909257708489740185819789765776485389200437846555794673890361456894822345862970831601872257421672037696913977558640607742920333232290819613395509045861184549275970893833720903070854566089743818546373863352458856536116735676569695121060239032849867854673535936835887875493255669623294731262594669330744151788576380335528936954234862227267113513778081951075027818235009668128351827884242353551091466803674814467200558055740134561260164407445277450767329711022726052800138492179542666486415847915501017465317795426240739213156079814020401826975153630692849823736183696610662872316926055996233365644294045378810932943741010699503927580399021959991634237252725656630429930033742645965701499812697271118606490808252968291274216088729711695946890438236541025310241696309060839694873821029025745554770013952726083360533544835747363766495851982723880193367671743399639677501507564524052598475028181330264483008533587145166058355640548208307799699057631578390712430774725650079079399763443887884441024905512352019575698998720435571244274268638721243982861438567264171185709319771127269119021841311894614570776299344615073743217867591479351097642185078162654508458966501143590467372644469813406791309046490051450117750650918934757372602414837673671209274979368742652788597701559357711656681606272213815653628452710998538953154073755873990206594542878074142559217786535448407482432547378502526562470716139585040833199205606591071281378963678937399905285768919658008033605022643561284113257950451378614833379876017731047820330263304397273811288171537936136867304418325967885902765291010468149142969594002643065611574973426789542448935213496775745776494736576568035076730018971415060656833686846283823606056485965578514960753140019415295534117309736182232560034291493213037403319458383757466431263266509723341801534654663727855962831862381001767479371706473919757634449305731987636667777117549145597764981593040867376372899138622352815580879637508290876149511581281264875265017524480361767082793769939271040863479428017157541585636957925319190014181268031566634132799627042697430952465561020170082124506857126528047534237250579586365288904668701960057141951693667998397750818770584336682641768221283649004582032949130690416426812036121499986306947011845500559429632236083598574103135159580698758645439952324533074718862042748454978036863214240367639732463129678293602903776280283478387717541528673912116657492173431048918317356603179514183904737713129210584103196807993279025465123294223038430679727772507346236247543845397226528422856525696875115773812308909764947829939295050026171564581096910688931238530890959359481990605715289810322048051144648964624182441585800029987656768456757579418216114522984600220477416536154654974784673840599599737674578222732810534133393551614659510218062493480968153016648496616122561244949923224750481433789778612173434035532602578473329069268066506242539865592381932103759244003676766010244868260508846177713136059638643931010129489423217971302347614628915268124544194088546927797476708819243904858699051972761941958446057102245414457592203919346916261424555127817080751599748293911089108661317987745276750408492921878127223701911046878121811008576142139338006292763214989559147168208167663837142651438776044423582056749361171627995782506446175862336135008334993322011578884503585040513905220372548922013029048083225456877948381415400243406208471975675293526058822476449256534792969172491525604447900128721546867552733992863247657906340919539497273831722299461324700970489256507961991467795536174991880734637958468590019429365766804621439290390942024210301536673415489456115059903262210430638186643031293881439490021856900659375922092044881809175632504169042243642686394684932842604683846467167590612606435695854831266078482457848471334865945503574450999633400175221700752218012423755903950990233248870619476508544103818548168582101119363910352247991411483973361734588571771678635585423555803098054464354461693384091866730912542969860946507450210913244819134946902575696674305836488946067181891503328398314397223534569169857432003643916285704931886195176371703345920626023214696355429200863809878155490742094006954176086558296484571080175041241031332714596330839700824095240111673951002578842427226416658597373791138521529695109422225731322883239109482205743287989054997345103105833236024829363656933216097236773871907391758123902820365282595569233539415664980587519254032917334585256875913125043399460213172903980802290500947683967354291113970894169197148182017743155406622861659901972599212117109189854357939588122493219421005391238951919164306103350955729992458078491736982141605865241060565443106545561183030142213679050504734562726103447611358444146314505672435100258834076522345736305828715942708475016382820484693742566194687790508876768529358795584720205712098208022375867545375448935319063117587580539808921171400157607292129154773970804940825508691070702123505692781745649114163205757384396865566727734590630354409273456714249834862341577978523448563900672327239005700853222678479535763547157363370685356746720760255784181286676804580613773047639141519067779962182834683073675180152473595362523771532718591091680379459355565378882322362396730649048155219811477838133869671836045994264042491834713792975640169698065932972891491778270507633768409753152649521894368954576360629614663960564466693639528148476356468584134426733438507605735457629705846602711919890978994592911898507693115067939772389003352491728991343640004943855274755397882336991404639663688018004597580793000143793231972299059214291860788076865593745445666263541370553285663134198597767834971881496942954904889959470788848892916484318670003799116571759321400373374669766841316422479499652604977360277868390756910083581892957654729062811208701183651974009993592005607826341890738399294484619735328389570280990750880720516494602329422589039335428966623286866304377580316686923930995745111188522661014910234782613904183578431923131806659668693985996274908710689013552186551976773560487757930078883917082207022382081676275815941019426554445671337905341507895338622732946794129344137908955128395934717539395701680920770440222125870915756666088943237888889064971794733536543683467315253810123875068319024296649265941195665458610998655848623333580807059224870935272064057883384315888298786159294551312582252873074754033683415672246005530940296268300889930670637078229667342447115481441588547192791774055689281626595552695646644735970254719475824772007474436282615475809933317987796983145411223549184477839203675456150250450949409804596549008715206562470863879694985655762374266381189164188877972841783112297962377363809659778034812695265937148597235650801610182083859112026002890757630022806614731013588117328486782151880814968790500185668218932514538398848770186747684575924433398180156272890497483424482249959008273491496950713811958292536214455791239270995186107194387038610673335991727322575350533139452526399975668552188323481935952679333203454469724979988584045895645653098532875601421636102422287916476651625112745881284350295183611395808483893393753074352876963126091040832502761860611945933252380599635074149737517010213811809263524777481286363398712652405777527889814437442649228216453041823703675742192251181455514058063395674006877877455182815818363368932103919737759474623539290612248808043660900561467239166487282040232488198143444119793397611521994275361403743214613600571897832278758889869889615467148208976865519453854815244702437873694066670827710239616238672667922217193535906766503692140304209084370998634545416491034764790275882885532657887697347053281195571420250870822267509902829348912959667201277102207295498767668912247233785230967355240791944489341571212905717800044168434715845032712167022118162128325100555779786378361065530540892673267571497981516885523245028756931072911475782514110196273074621887887154459241593432976449832123267879509169494213195434549219571132339901456770121137718323658253735699079830255779464242638919828756280494738515630790582093895773584118813116450521315650337939860700944441502748740045330671261947097261536661192615060610657824022999762170618109649935590833305150653959242096053863353861961592149628911644291393491217766972765677888132826199854026003319763195961207175993412913906266456081067396673911947495728400698914610494116516082084453708562527557849242289979328840714483982527844904469719068193657491218059668198992208354290681347378144270037007334910408125520421332044179980692035176951467228979993083331658624037909074762964029072008980280289760940177663037651277023301713276434628232280169839223660633792103140146770371379317349916370561559454136444791739132241671712531217602033200668762792737537293706772346446262892874076520327715061466319521365763716444472560235230584072978001188954783438176225887713754612140816847951046659684679226902443101126748956028167602313305748531409656942712182065343364289850740370779626579617857965458233298680892885493194841084102164459367913164101512281547413278459178657741021898407229888313977180811198156270197114596894304269463814392824260757670364093589403357440054323943245945928323408979032438659993020194580963673077769486722028676549243627330193323505459140370144171430204980140809646621173493391855855208676608308933243182899044141046769309342571669689255443915994676017625311990262864297306332493989378744295284119071121515562805366005689342527123561992426507985865094085138688961836664391766948373314269091612768308212442679314416363044077023706747470341534508712261515841108598350482400663214807400283595668790880433730266729980429821181119947200652688879729514702922608064524344195952391942966441293018376406913062429699611189531583447156023634211604800738354947952434867649441557771217716488208011260685463779716630961889612903292413012979908537926756470256772997636786382044973820360739837071861412458997936050727313148817559778535534693728182178126293144259850857928384263068850224162870327217549264200583025593925011743202222791701861596602938823405573698686180565185163019817265630094721608253903834868671357881561687659677264292536888806242747718097684438693257106519935505368599211827984164750492629978275828286981621681220367480057624490385951599838291708838113079620071376742358715843696416109800451447114808842921738444596366987671277334213746986913885440091067178069134891615093489483825500737048408071799542495766287688189243100131236806862019732951609078759667935821039118287654578067676694054205726345732521843451370235261910091055660127493699746093351835353289230259566757556480539298952958866594485037758924326550714661677691179391302343000512746414602279149792638661868283289084681555346125941479641702859938379415900838949010502051964156956695785999056567221603046599254841146794784395715625538331852532113102377446051805665637147535418106446830268554514532048378686937898397491496274800652939451326498214873652817509077752069936030414838238713740980305304960811641999341739045783452955046327956683136464054609636415950231299552772190683045131004359227937685112475359089720636302081871699035869457314837780138556146266968279213307333893958223999582584011104326883421778349270458846734775950147264242034524797143951547673537635510727380225390490554100823392501757675081721366341507023977380613124687122732513846327043108879090751287342251623487782054105733203642615570579527340538485358209718232755050438127901585639507756717904037997030614563040200852490205768617303078467644464674939738398775762174507335100300827638874719735712281260788477250463896912804756879576216797505218458548523143023090630527675428460814177634068891299600858551233480322783198065881882529945245787905469849336686733650112429018899402965278612029042420401305917136344796001879766817030156118714550989975283084436539147861864890272076380524987540286220945519270082694120199873747052215272146276629942332326260358017767334521312232640008734439076036928566625744259437445448123439286121328173146229376334134767347685990811767466492311010333981895792774088508150036227173314721326162114091245572676533938073008449295832381688980304296057094289764673079144427675936988735452810668515448766306682375503426247334334248121203807329006365050539377505307045035908826060062598071640313231858495364645663211636036095382591855783695331002011071626378177767904660759332932751151730969346852196313431899250795811660401525657221924360011766628381965838186738489381440049770633959519483801924975952081148667294440435562651782539103148663827359051308449845998489797161578438627079183393056286666450751509882226851666124118143775653051022344185401937874520626413418501559650615021148365905180400040966932245876190778077501983786206269490019888118756700266711454828329417943311954753974654984480549548226862022686684991458594277101612910508390530571885771323007707318905005544249729714047089959108822737209479763027251886032676012138507538588337837423309268934079170413392615360413075457495008681815445687483048171929096630517511642352851368706092626443756724641685013482209806779684336902806257354058730092889987061964282772076008532983219223048035450964518354262788245519477833987088428551638965324872819058230282852989578873782617025194687251096460576158345051008387390694287538546631728939193849718501874920908178923131975072253757877256720287736829180221076947856588594692923582966331581777444197165358155539353516735597851743550126400449712487031534550112873291718592160430722993816051757925606872410317639107729955016340575932200704480631109213047087214668976204454083664948376640743738263766852163296863464338090100543774806548909829436810473809698504995343536136334661079173549973268695463139847321109161463284899146055822764175932953026860830977960417920709626013034814271004836197303152720135300490703324313914065045102074185675066587489688030848708838500336139996496686264465121764502222708908045486243548628461195926561859840988416903076625325405425815139757205138949515817464386721449439849381123566076287546087156713219566588604865442782408128654176853087482717269184159875278894437789524781109266930292774785918693960998166824021224335819299962269507349326739272444358914470476449536165869186657657193142163266252193825812253906441993354406631301664398538399419588832857598122581286275575226915743080597089962176287267438266247026444139634354212049453656909606836403353272639899450497271631867376177841845152733940828315681606155015891209821432053280820171622126583907936118971150373716003000999270193302484244834367323802996205373452499513141558212399280031743414765721405919492779362702944856944890883041378442074898885712971108866745941162051299962312441628514432786343071927289424754711033162366654950685001624079263257590131463846079357476008185034620285361256944085205130569502952004392820668917450174626542547972366563388393674900061800395824542447338678967529900978839542902859724594505842170387790800539757497091731286693460449825137351185396525598180646429517676213048748645749811729545544015054131797588682933917414930402507351501550851123266072750713321690444775960271238955822361618840111802388759602555976261979680314207142593974372022680626936394823645681063456697258440820664455626495397762549649476287749600954536385711683542138939206765275286446612241835864309990111509713673774893016283855041232887955730715990661383044340639611534288187887710984983937575274117337123761657709216029221848504058092333479289597440125117627913915545851494486387417277783375457316184812499157702405816393826388225143066225105308595941838865815073255795539317105214325950005252482996555998520428309882859731338722693797592678365220564696896153748320212520935720540346640449742015796587555443277573226973643726119688167867153488458722766889091991162651527165573097856273896965556690627764785842196820937862974597890650400483630514210588713774560782937303988411244506895241738556651188551073991970945379312452335458419186092559615957856317295516431227869860358408826865580093420394529534712137322689159532366101291032953507627924148878173095536580688591255579973878185196393479916747270206110696966381999738411256221775068900693918107414996812445892622409733077158734090043010093979440757152123718712804548477813555291741753867403179079469031169352046289842412935762523374407279959151074810805266940696563910198472712091703963899301562335526110065544429275796415962074649374322460392220982044048786699095440630138239020943856222647713688902546508793628515443216834234106809403507688342006769219596274320829280877541964086328490034512204893631323394302469466966699933426288570220105734274120599167662160846211299191018898985295937238714959034206812183985434298301472820869113413369046388279843197441959059080154157171528016535012278870930854462764336474392126468154242816738753584160742986544568177225786499077583200358904476613299309562863433291240436388078702024686485845604153198071897812875480970544831560139951791174616864663238253609550963748992671615087798569275514824424182609136350858163499344320308582071675300756303005687714735644094729906201267610557384772320457298198430729987731247288691148079844689893906886869860766766720417813347387601232035838375650512637940712391485211074937734436942912627938907595572889764249824498547638327841225489887397067565125962758014394409701660766441756897353895827442319186730220775046553742200302016932735027869780888178712201937443652413063299600083061037172330340073344129480558209716035170290391249382937629378830501584823023550638179840247750397185416346246261477629817733008737250853183985755555541062752070938784776772788308016616737188581298053342764459871115718408478507120427956460436933133061301133405721622179428024827946800734259807082561976592737091934129819544041200815728488992329833094441093554816860330284329498641883503141496906571351286015440478844906562312855604674750117543999016885601716669180645452123079085945788347131067938362119460297026300634202042836618063580058890279864145397621310618799633396411799231156256682011651899907504382795747940037574746983364048979102956034989394098475950610004806976427696358043950993930518953044090458313991601813657400570410121996914666640603429569651955381154388085981525590465247529144213127122904539333842256321083464463675667577047441807092379975843703346223947634429455931376246796938524195281178732906075831064761603059578201353597032269465857119931538402741107567698500880815938212161702902612343108684076207480010894365387494783256737685777691039598227902535215298884699303211639018780342264852611670095951096752516407035310937314265956793450531301777379489971581349690158862971565401268145664848525393233195976870909517541471460495208846865896923501593229117259997013538924975572159101974389013213121272316452209847754859975643106857887291857589459973623613119354613884764314466431429040004678466044807577564453140117666413115578646108283713492182466999993132894668374061073541540307443853731360521742365846040521889072388420587917883843284930564077045787740632979115381514298561683361621365355575405953100019578121719738622484284725231884925757064860542429084474482748724594208470359078694878617492724124042305426631657048066190554744541288784461705393576349912271189977892513852923640730969943722932035279075790332536725399441986303293513542015862484487787691132327823965409483346079265530545876158410711414072611504401349693836904387307194331923603252167557489557254005747307995205449412214558612822139621292583575061118949789211414840397485321963313705522497371342803779442432548201007376059924290722031429155727601416069844237788117606160511395256931238213044290753869518359352196453383236597551267898275209557304699432795952362581351156611705227786389762583645184762186346876989464619183353976512249256717337474565611116246072092385668844744928674672677600538081894489222958623521858492068525838467215554754780800577869340054889088337330267485515858504707042287496984907517537516554690932551042357461770488860532942171016892286477567264066741942936662681308401998643697698209701804849807063281892406801454830872932573342490239987908006477779629495186619563900710280105253470802920012726133091694183155663566983269257634351037621185068695893492034653884337046217659506675257851836926288060415143266324555805343594347364806728627142885604744367759692493990148710070411201155505409435056288929387286781429123508017695158145984869824895886874512225191346401086966950817973040023864494064099691682766577983912590447295398443975430206052862271927657172854036490549248609379987777209875850120667728404156710936485901378583644475744186913771080448327301561789927218947601965722762264459380875804336361596841364048715608944875613711220501453363201103916301603730389729105088521550666102557433253202169853694096109885242130525735413719480683322573886671144028952781007963656896172907305578538789438446570795965151665851840283590965489373497512256098133484572073843068621006793853875684010108851610613612017770867318740330661286417313665873724006916335829764025797221145735161382640521361666348256631078495581626371305338745757739187621870437804864748365313777203855340247177729046561921144044395620894330688217062851318652440371653060002295182060222073406285683030561025554504726288033517228165904767330976222692126009141103039393146096266843803943109390005102704468001207831858955138194516800657467281988211272189839229789758576380917388340251045748090185796611176632053205140518889872073329721158757348968861134289169565268554665728399189870234281134769196118651181740437233085452759725965981952482999167189969458528289847596494777895129052301071439692568951869475827151903940741104179652955661951725215013659660980922977472800433471332166772550460973198295622017911807231922886414662261605704724416124082701987462276776823441165013880017688169223598388336736496396325378984338652221107854248406711667889312580759386765781267915211603144905172493150481292514671761665993924016818278360460038479846492771203225479563534920162738029383234106844079310005421412575006857365600579283208954458250550639893669048044954253461105491869537807019633490655240904448121684615445159349124089399733320433661626806942093836630699558320316267019708280840302325448055507441132171234099584724621417925713921401867938348847822729280585490705078438059469491244899284487784486360142805107761582539208006738091286033672758344356413903908861895529360106721470894965305741610559190984369911511199365595097798970067078200785217330594121511190859382162187281822477845308959961899638090018279610370860998604132540816018502102816262382635453155390607351005477460867542867310964642364159924233723300615192888389713033841707042977452135559550543149576550320037246623028249272978553444328576957005605146923919861606914403550279257929239854112117871728325641605614109876787643938523807713631166280351779537642522945899442466764434183408363081069667954925398789014919969134580597095171402949874245147931825474147127239383633783015754232454671485925130248197310561024158710947927875699852320875747286520985034054076318601179812589760506574024211809168970673347367672803896393512890547595571030361112802259018972702776875672421517531260465896227790783926539603506842655771628851517885382218721530389853944744749234003873527361492466553951928390506815216960318233824340753439117652429132659801081217103685019670471368762082061150510208545192897158266600545421772317325138412663467742797795526181102655201571574808714428269263934423530458012055504468081018370557616323488403002773274014578213198143647028255253013079934518784322433182819867773792281809717887784914327156578387253829805553150513765175217820541992977820373869543644902357589758306815169126743647333276265551186300432154309494227674460043713715596740849243851156779362399791740044278098961847915659261545008292676884130583744923030122825584944421163725157666235276361160348694376719231071392918436018302183949142662305002576314304108107167394444289000258668108417627757250665580471823367523511293882450153190214314010454895077326211283408023784703762555162411653229658075263986389358657772861916955101493290689832810084709678620844647394254901785330571283135948938625550413888046079197910106363705492014685847687491903923112232668310989841678138346728589720695224371415501619471513185401265651271521535918234204714125709518885975621502867775064567685423764171634294412465448420857468122572648324798168087199997079590241996520988801193941759967291641307889218178272245358439493792478303721803791516518805823937172923461873745011444028843832476491636063244406367955569684349654865933164582766939143051832413104254549600516268051970819270663922254860315196765694603126852869407877521240959147071038386275929863177749722690313507169698870731709627847216629810957769771637759429866284178735682905674220753135524448753375740236919999985877245894736759346172453391105731707794986626138072124013038388408676491993875487515557496008805502717206858595908915517207074125393227064981336988638073682366351960181614401203020406979576778712046673885815026857414558817735509767941723790762781608724939968507779225542338689857670081672000610887181424795075303299677744381004616962868501651406913247975945139717175906354971808918913044617371775922245194445972548873622335662184990480311983946660737722810543498283177977200154280730654910155697391221145780920871320482936636175771921313610999743732867567338296108302061798432157235354990005061746629330188906253869364687584785304767021201220516905776077368895873190351223351160676707927006752555983578949978877776816753734129542944764955696608867575994527250678006533869986564180638295316047316742680612384906185896328049577578793468685006241427055131689518722100385495662257293926219591057897957992857160142020604330734921298478127408864251896063808585348665312925906369090361315397150941895324264310264638129713258077043444205775005478194999528002903602541033036798278264566415300988498518826561582157923380173749728118324561151833628568272537849326676915115798227291835333533093933746731486076685080797774096380140927857007064391643341643109031784611170555348978021208407536175095765401621524001797938794137099574955598805494669111053350745090727781200385855194585967520194111751715001942424399866607149841023889756154433448036055048347899957734164224150431732199015783567091562837781437176778627212113133991593134608488850516414635471554203702080849584012607036687960317693112010282207901899957095365316281926797003606585182140183699276825272656333887379706303226918000949608045055016927819255539771311012218392759446669088740142599364161971309384431167816367485793072467105752477926363021054167337559168473961416635269828184655193413580906775986231580284443770389305079369582073002560690749546682790992518650412772601596628870695514203513709936917189115684078330337407283367746076701697188180431288982838254610551351588043959729199373412712341644875864649586291532436771563464321724211714254660129734779214854120251544090669162944115093105734007069573330154505336255423663047104569744097380273784303258587340721510411957237334959908894884195903595273499462646622148968934571196281969830864497665780959794460233033736776621675076684307175261817303085354647196121617432321243953390197558776103824572895244720705219812486316404762504387800545820013458648961964053370669638524520796798568285308941173043097766915548810824609001544512545293055354293475278816027428297464553545065088767281194805806050379782126041777218082184575389231571472231628820863193417640839601503868735510908382182605086229064339474877865596750411304608249545428248659227004233378653146649194022956640121280728897385503764782650301634417848285524011623560563657239000579289326008894743495094892989029793423786354691791706556944321938445250341539480355950452958782334365425871051691228670387500012927701476424341667973161067329436153978944914598956285368708795768043943816652312329962254481533805132743695258872838334927463259352286292832414446593867480560894351013793821753497771002220904640942768400092738425306668186364499063640049016709467983866940983130929626005242414124032898594389369647889385777370862578008965329353154345829434434045876711028315019526960756963990916242874702333553049389795597452766797653083608424741743218374207072905714841596848386787953301573632866137728746642620531069638363592883552398028621614937822571112265767536848396262864599130032065591236196181720757553323267800432295707246302266366217388855607133332853974774850442172742653992959820969764956277541495327304331060957617899758721531594722126562175585994907699546345503144769810951348256354169261536191663643140830227071029581712330425272405787558300665357466609882667806270662341887947418778605651451457333106010876931335379710045704625628715953289308245836803223401594537647451800523924669030986950832509056368174599134397835794723154448003960311731253731011743465205364618327116713239763466111021278829713319924447204550327599467489303746125473267435095807842588007340054025161129883153120557577969345491911903606695848838169982469685330364919499358748202793875466714059245590569356170874024241531507175448409587636998433736736686345139304816890987789552831772895468485468350933802705047969096195691301583209812355660224291435329710263844746331794990427159480909934397538113830200002799673517363272440050900407180196044968508370229875477037079161085340841685856126323591106551198316843575027041801895480126924795621862948255777707954849994674150923783291602852240261784840985454065630520481835772602271680538329725666251594278174442095048505250138114236073498277919956191990768554992451990613619683988214885033879302330192531697236118402986845928519497355729259989005353506788726810422910161456694386795667046353827455488598170102516983843404832696284801144781793584473619531289261482821662480497841771515162674555111236044969280089453125642391002363819832456967202314979844295606775153839919681637871447411847842424700420586183793129598910155335446987229247482302901938012674559838845089415113973166778063348347729559092247994664480946263023254039672471728620074979883692481909584620340037350528161503396422577985450232393317230249345257638175551602015462038905493536021226933248282847040720942548286402461873432240465946303782966737478801677211257111931712874342135096125163786979437316478083053886956182184293964278303735164257375291328986861101529471949282685262850364140951151584790552752305297347357969630410232598244065354538557335450467253992978065789454219181806540401511156677886783475389751097003760127236452810993981998118532443473781961776633307639046462751175032195785641088471712408455127231443398460638375805981612712006480000647161414777901532601160237914495218580810293193824564858622606586171564706095736261007318727165270613852722660363686117669804616492097331232373880973673745925659407904691231744727693244877504018261840472166756297215723992129525731449850383384313447154551296105458795701053859386264716353243538544388016680195512359683894032946439410195485431658354790369156602592110008937594693210859834473161470123385245221238130485670115429999446394242449442260674954223028265806834292290142899734178925407993178204405101838264759556861116771262562776924184892720505731689591494062341160823751604787989698527522273776848636636871033855839730245419533337272147169690881723384521196224278710616253393801240378734126993479361553379798988620651006662118918105110701932224088223527893149051894139059633724700619949720629088112763428740453516912855437003127607950088248366452848141166035024079303531513297929647217745460678022137111752558117447852477222291521794123978648097638579359834968440102961531307985003047464648204188971810486340815407959502845584528880224403659769345314359053699285469886225836883264997562998864537307044900922982422570867626873216612496750571911578033156382014977547018443510648688807152447721918670718909617815612995954954632962291470175676469956210832796814432053942345789287633659834979348411613418847778260880328791508247694136499161914239606941700828910069551196594963962862963882586989852658398779574456424318111773401147445307517270962924224586033586711735897299791867987129459385782876765661821250741726154988746134622713566737965787774780772355982495734593004063181473871014149352416405484837306696333618137401553845936049196314190410468448524080057822919841477185391185664672610168330028422179575450260244928660680745539626816921820620230752036784177309771910075329625133403737043236075730524353846165752867070703469602127971218168605565396841108342800168710898303274927096704278065386246756881275650073417049772572820313627074951046745445823436806974058269707551048888839520480340583098357675989924807890511382983572068766869158973132549427046157392632559290707365595055303305120624314613354063231952263352916249427930940336405371126905869512834019420087872504400105690053312186300322427959539859753098065953023454996732726937917164538519160315652871482072801103303376279349575827317256045712830762172468984825523041456626715862360735188086050322101963214945406280182061044248833174525887962473027339042558318745775030328197787014255226514880409839413788179514741306011033655298745180854952999969139815627900340189775270337160394718155898309068521677224687279910887042309456398552613654433647944931122853091551329791114964863325842672061225166789381988316245387408049894676991193185174369347357739468758167606324340747414885022794781084059816587417002984234047837827419405935410365571579604843554551711440633673597048964380195576023207298242342605303929993925013313609008995027038676686628983616220545055178494681951790996847504152820076340953285089053129303985748647572315639840181968455378055364643737895727820990841776129210278618574364541856591326378959119373181783448382475220720085249517216685982590120882155039888604641368729338799957684764003031499945013093927567646059080848121561595991823337274976278040369968877263583068023314064214678515260127446298941812169338097126430029049013867016732955401391351589721414239440938148579366077084876509994875118358063802519448683790229787083067875090940792197787822224403358041251251831728634360201325165373638786061326223435956040817210581109231509775527046686478591272206183238708978529702222533357783558361868097739674601575786722878903826580815210076021306736861280437900179688354452918937229431955134809409659409546004630732392185798315357158112829280132759011820679755003683558676895202776781544435216655011408695889453805464376726524268996200616083208718947758871315644064310831530839788150489578665449622243038445234222297133846645107568473844712103910914134379161500068900951519216134785800678716646662004752964354988960480030310198235633805357870781377560884327176673961943034006418553934258154596541276945916253819668237673445279114984058008448488252584889772809701417186986444870459849099228696779780608675962979611800586905451257112037952357879637289188954873228621972440933156173352555866544647948091998677532344216908334455296785751093641028730649785702384015560752803995089068235234735491981204099226010958572695066654793711539383045064724194507301100391648057915509019295402605203657802471096482285722970601511785225237596144723268650403733432769795780244483405546950327078651429270635945874351438816455425668711509550382441464751407620861239033294842430827337782872139041555419983405303005052114280305596027754689600498748823422498911489084362285612237641272850367521706457867370730211910669179235795866459665044348601879535558811364788504033518835247932242939976030553990362274348873566473613315854352835534103724896863850175516670750326719385395230949154071749522536667715487006555380905929223294558577818026788133462955974545093810005546132498676941698067392196811749127710972551689856125342747274898783810420317310479492458599016377011413255381856384512410817267510370494318117968122207454101192096521651525330431524813689614186934584686140029398403630713562685787184923222229623064155079429903897390500559516159712223999820167532655660716949490413910894060974124027263660607278386603594751238316465646308299927215674809510644155983352583327773616508577111197027747075820912374217392099206636163498692193732880319515721718822307902438464298603244532636142290723104777240916494063180569198014182214989257480293083689520302544098129036215705808994682529057822602890304281984179903905731088370025398298173531767515742550031424619797371018359544755275413129346275263179600133945456182739131571863659513291900162800408978073093881797620079069800898280613660893074429889795345407635062723005224778182080636654242716817786103211957116803216924402010003866196527911406481781995227740508805310439434531726308692759161080874223424623410628531333273415171855707868493776648793250641026410222789727479065063216862756939564896874683189439412774143782456523328989225548131914092911035724482984243660839279271189305680604494427035355848994588507241854290906284659004883142505672993958188966933245606974679188346713024830587478401075802567182270734592184441914845322713160828897682715293109330012762483401472509117298511934933515816487216974700980022698395360046623262404904177847729959363847716427980748422501112440864726083525571244511344307869784370146610640981981355398683682100562263367750330287611042664349267830822939496460813973450689837253089746184783735555635264557132412911632228604595876904028024507225832719364360951377208954032058890436781479458751332525815549115966165852373992343943141705258018085534306393904990859978046311649668139949275597881319143044946877644630847731417251039731339009538229993127362857752896602883755129608162207266873443326351400256707452283289313108492881280407402037381576887680276328069773195697710019271724361718826721227989142062988853432853074394352832323396911104185625267170393331454945560863522219501687895844865534557440462858774743730592569657301914944797830501363685888597975182583058366111260167472838972639574139104051657894500964811053753849472967839125284333113339243058277452724177750615364839649973722708359581397760521430447620318622472618261548598442596109443573365022422695714020139481060144107911109129038580292967888969518365016567729885140319085309109390160058105988277375926273472753097980715057652486290712580609173788319514635428876905146188151206563264913439976482556460219881487554202576168728367555638166869637867461587473057664100692479008554865084814635165845338732898400485665198368362246289256106425217298786895131828572738759914556426016763549626641848912043495142984955447535420269161483434469665614265003737734402139503790002980264764106837125991596689623150971729865346129776056327385351908395453357250896435595772245172252565556543377029849913929194670618333274638887352802375836787363770994442649278414029833575922442254513343412943039070653307327217324529953878374324239093601497414268026159973835216225451342637829859727123107846492192288846504000776629745378489642780143652423938587340221296222951052454632730157502767216115965599853584348485629569787582154116380130404903617177600203843238021780563720731480058479691900069613407697658924704040367488216430910086901665141474473583870287288770416326172871713489869280017260298708511881459061299580021163286688497423654043432312745413938181048797624640544100665291236980963695186859297832398463199949349208235974538552492499902121132926947013300020146745895158139102867292522353019322672960514234289045134886010178044435545690137050260922953230924383448005837195485986961015940767763847380021659758887922632692576372077091825911655997880732741909462576355568852516193648175795767609180987442025128080752584561466862894219062622578655325203605199127911440302638784171143773510757595083567639606313074138075359176360435571817954510278527050598675649297148458581105126746481317794823765198552829639855116954739701355559480274974702748338820540102329648650102789003715352174559635420689991978729011923469509214202896092054336473807157857830020907736805428553475318162137016969652808366277291973910617578435634071170192251893854068832578454872431581731433689951097158796086869296106232547973301822296444574696938392667787466158697031293173003889405213759005959771214466368470035001539816607972848477446994944388275163044216969212117196230661511079695466733665512178100708198044403691062143592848545533229120689487908847657868314368247722782423728470499519671131865658473411762379055548697005546476566546283242412821006361688347796743927082384606668515524788805522842299374246066137753798302921163809702980028621272595899143510582685285227059458856044213152729813994222020841895696696079318304213429121950935322919589392194012066164707032923781424240190851285644273430081816705838274257562773361539655697035534298914494648668010733418749947865920319670175201357617829349530718780577191206126454655727725896536332281984499948538567019491745368540824657619497372621174440526516954333654556896896585213498904387762511275999971281331131128070509238439879068722328036433003202648847428211796828185623818420919096265200779429099455256320481785973674995171235232024656743199456893886893970771782068916957350280079570129983833510444011448011291989043319736056758676549574254038888442467370932245733439523102515400636473834414523283387382931458947258616479314533760846895262578932814559991973783727492760678956936108054032641294430190797726196579158275900242875420697779411933951761287788076838548139685453468747144392048883031812620103289863150718370353206915087803308086814480703101613890518909511725263157007479992026764034919254957979077295726544838300577139122169970988462558262155965525030696630730667276868553939543836160780059651555203096495524554080619307869971066208465667630796146655420737542113372663181117155190884938549883182133199501043955619136124583782254137543147188999440244147802170168850723743826325170299149920281047150690063817020441258215479503337358888219486344171009362717115568496742349979455526506565772760996823161830620871031177430801699456599028525452192908535993931797888198445212281948809630693670652376448401114371187139847498237262159902182006107611755337682630008775909333957003225359023370462179319277970426445839716990680091617053270509567555213034004786575481554249168888288314088201645153645401701913247431030533071765309419261610200305890956305944958671679606493909626077508864332174080807238812866130749444415085575275589501515629520849940072325290091942146970177642461234675590699274756978467791753160763371141700994697586821429938169966632512640435477568466234911643700783412113957682594586887600722888678050634084590673999754883174245752721068475646444751677862254307299381772959135470381230659219927493084910747019077439745356932802829671216602472900293063862179425761048544200630677521671778198412091663874555541068550923359877481884261256328575201262899188744280576271776040608154843311282523571382819318909317115732859694631144472361462256380271084345814101746269579115368043751118910477776510300537791066687423006420285711355748242617838294279695558109975452997588307625126469358661499725494128770518639713686724801363773064223915517093559598847655804765473413603028493687204336414060561569422472807650815332838318779944280358462465422517598127173083528162346879647330670152295739185014758086737509676872165716780620365691200290253901029578625856651188453022944227994958338721577025962024375396461189359893616854333392616784705738500963837014849817832384006121327767015551112742048864681944408947936063592804908574830637841948140532711727459915410301187146651350295633426657302536976771972252304409280441708446005245863684324657961483495166026981279113575641420156616907651296874478260479307308400046722815709148659720800377923703710612711963430174107320827664707709770129668679308172165303852866857421745288537867721829349340636694321500992014518020039976349418081501054054563212899213103407173122545343267818041468277900607485365263914619826687164720101458643676018697136470652538910304258858478889597830397900495641580745363412728847215896186183712000906155118002200323892156072353554270141026553338380860589509410262475415952236278698392156005319686619286191704665329276943461015609874695715619620650101023821269237437963612875221455416217613667373508915594052076214320022112383691607991302693607608752720325027169142486939877846981903731325240053437698561909626354961060523278797939173589991264288377903424426641015521334046781340345549891785566286451870082917192175793610140050281729082981540041804291926018136861328034658030634390751720064865843168029066154386895554755771216598348425992813844406704574910526225896915919212328269509137886307247862286760118799187661753601388111099989298793450791474471353033040592154719960437335405216465275175678889832538437612692758414937265415486229579370456472586496589962943213485326052773904300314224959015447643794448229359747200621278795805176834805778350270850088446594173664119772808927427150794505646433919629295801074324902541406785681062322599156286133184710032805835364418537161048248838984016523590257985932812797890985688079933154675076642386630811402040865001074721621173725508387437005139257353779050777502963343574770155541006230956189441654417368552750831471156614913620425749431609750181892349654270143998629396464529216072644811347356691954832113429272889281078506736222545750397300027181133273429235496457053586013573405860376049421207414755039575523961405254409036060555434025269125595188557507026851328838362679582249738641902257456895403437129009502657375294397265543952410248240562421695598747203192640079268885170030898976684924518743612207471541984977040117933914880437831087582583671887001812782776508234140503273143281563597993046907016977891255709645876371860243932461484102835682877521954061159312717511311615989442812773933314350188104032830762564148756364088367198865491561935040092297626482476194635138374573212379324790999798147547794897751560898208653195062263704310725681009191616366138276364432398266042455985459428650230131531147909772029445701033179792172140252768315277555382443696286525797356677699895997195978563894409607619827304600636810116571266692548404633720157409664684002667218938222504016451793692897665316738679663419806542269625211593811549690586204367805729515608148334752524396573898070158101957999822138785145899934053279691195297344156007495556731155319297439041112439916410194946034168285085121803059697766057616324328031491308063047857312755120259531619133009841947941478505812145825800871605666671345383124210737645944018847414863684681519405759195825743787390545606578284981140549337231485395367263713792840917381154460950590808540388056951038204118132235708307520226695039930591882586351628461967613571014270279744299863434389315780179970598338087772946563343106440808762326261611108191830047973324591557207969136363982998513279593489502176628463174671884164859247186733387377146459762932012394263607286552432107738774566722382321683160211410534249174406920467722125244972209386573779890210115635311141898191396550601160103554802719506502114960058091754962982622744721407234382626221657889084467570281841953943344623617101788095803289513028485475819582860026000898880630321541986165473485429299726389882577976261527565860347412176560227417857316571370736175732431553843138937038316183652188650791175768637999176124615342914845013352738679979520008092807695309030050795000725292990164743941680039753538427323688432121899533236504552718493411031072789373036727559583851791831866301448560381837467151238963875183058616707953318795864689349426382425509544136249881405847372980303037958618268712240750784483162503699079934251455518589330717948200297183327554976566333181371156070919074462754174112383476237630388199144768596749008174709789308353308436884951250279104022962189855058489365570519509268457379689678550446946455997064697951059330078216536753245984782520309466140875010831946677193166994774914548259658134549868024492929671886613575696657751625184311371782960427095168796331184405414423766884305202467682324015841870334140681401825059296235837947123763859928231597072771810419273023605907182565253468829267332402751781683333837433956170178014102822285229412650921647672441491928735262549293368984313338771770487680286622586736823017933862379119789330564640240076196239522914817210377757177194918609434023611073633533563602836781854824969839268331053685843851605342067234345217226300325494830929808957891663120935199574003733775378105157087329951475562104065876851761105069039358390566805409309101102527355854597242967326121413320535916592582230551888802669544960491991570747645924138871261419687066067233432951324574322063253477031847769235979237772179556108765451724474391849318845023941200626510288870688750119732469386491878755172174539627019291251019716723066479959046003509529334358521873872246287996720204216000904090337392191997403155700094420814291449004272390086303370693242845021664022122219984681199779592800063774754635500675305316675371266529035210173096727221023563403586640602733665106435957132852550966609139417019068726193862072359317109170338834519096099071828689461079063470639009230030040109985309149661849057725019385304364775414256707644799333339831928029737743162254056684238378482801735624245887773209480238171434557381196419638532511382728199968281875401390646026269108140558488333870981986627222934020633718873908897889708074540151809917802847632919118035471951441157200411014753387325319685308135398683828527749719050878022007639123786687521263439839136353416554019594070550171639180522972186339682476776692978656344953877278687803542861133413558833469500750514714174572237931996120494348817062267174822733283821971198305886506944719445466290604946145297589772565265078625716165682589967247331950308626625287490256446648193408980763030568702662318837116569266210362965989678837390295830052773277095035408150354537445442005617590329239561060216798447061819755089275895120436350904518159888478182288017630232626005445417167013796383396576428969310141938655912599971587957083582639483021146196652889085246345799704773844274455226274752667055425703640959916373388774480047440206281347599023457231883889600017567438329387110144133593793493312657662019372410425382740288472916270715375124414268701075025783064278128366361522692935697008467552920264790183579240646035331138275692508690441684768511539615480329375467364777476049956740355937462992245135025587379412371355549322815982683092727327534000619333658734434004832588098365920423741216520661459273095682524654018543972191279816412100370427694467300727401083317751809156624486580867299039253464044032448403911820557804512932400029872263332902823935410151779806531749051259437012422584137267762578823537182447468122060143801757667600077445705598680582649200864520082079377118175031399802721412694954172560148122421995665104322360916280891489877152362339150121484219308634315975755711712120055874619145817459567989038840234365896394842792729553481149290559689780837051943283130774638845811620656516816603936331356482947231201930864071621820595355262476637089322020971624396764482093568089818091527541831319656565728376623102833656093151777126424120778915612502805743489130447832947004700010654003044865343248258474721070581912027692373861632485291191855209831959547303203081598442402221125915163690996334402787152674400694606896282285075663406503455556525211727004531570311847878431894604516426778572401064175064119631485130390598271818231420476434952492613816026558156496686756598482862054958566161393707708172091102491562871622683965665050547789446863099047096580570184729272605554708942244373206984737179107709260790124818936449432957538085358352751163906699293894333100493952601352412994657801464160082762693697451847618988549792279005249601974697642034634671178820957178365464988772510726462222064159973807189822589417294013591407178822265902765419779004520492693981607272324821349286038179541121350905982890061487562668261178988229791993133208257614978684970750961719794183493192196974557659981226718507476622668480790279870174063683887291577256459317960792767688950353577633258840233940193963655313678720657420603335602280518627073721949390515230242936537508160584924438214067039105966049186698928494706803294542542549909632753944435145985901275490381132053173198035304071879773754229162842528823125903794637348499858084668870877681681866485778358823637278995822714792653906018505748841446577068212257535749603099391256196882556400657334503081036500055107933619189723218875114492832846508145318780447808135512915557009028254488683195636174325488597655088830921726853339285447429396643120401325232838300357289949487021248153270498261472774334070558648610607868424463277661071721986040571048974594237339017640985771045429818144412831812465214189312925258785108677659153292401845690611690240869168487299676747950379354897682805548258627039336239806837596909409232504296730778265089295217840331495344471574780362345916152523449867651608247217452761658286700936557324832845921723273717083003132836489847615565634044272652380763407524917703641926782669889359940077257754321819642458787686972473849134414821646725344128394808640568146185959853682127881143294592921063490107897374373597963627522611376699669596791176673954983483949302148003734600456850627640796830155363424434548499921124112449871604671225934927485973037103035833692998268747280388675788826688760148031159288583490919003101415632784910033733220770723943349479531766059197373426814145361359726745735322823761249872380050149206839949943507487039845563170655706467804087546174128064868967413146009941141637244790570108165154771860543890018174646091975702368866335463510493382534443515823125579467073427307218232683179484483508980653047999454761558820002301721750956554156499754794244754290373485226712087669613676486993643099827386751494006147980119266322756214342142465255199771035319058036409421720317816429868098587761567436973565237957788318672944353309057889826529484606839909304027436482807494353648859324792597411169153497575734916717998979099561701009514697269210803226658133985039674805868815316559809084545395937932210789034839959517877264948681126224903238252509553529307796950178299398243615192526335371290458018493907856281269368178402900008999228073629372454930510851948334570447177541678646702841832015663053391717992185288132452904438978802315041550641576401140869817060577522062144332244609188720941364793961727596008435595872621370187720757476298765684828884544350672386109615313054999062848436650942026561626642870071728506051423083329194470953527185394242954577995433743993858409563980392451955204869176629807576984179368785626736856885763980595851291657654291721741303243909107563843194452641311910266821106678842561033006222011570033629782504488581587879623423821569573882530339149509803141057337295795334570723106067460281869646029311417814005769191938903880806240774159690457328206205470119403178683075588963815094383058705940935740279799286046883277242797215535885501454630436143503574752546113901551476169906736120472201577625965016025254331226778004884082595176766491761565629418833032359145913407580442209380443214292513864367692945241073991559307491547998285610908496379279056343097514869864479864101626194826701219850287096631610342509125824315096941823088065309545449953010782020982655672513985929967966535611010569954040053046336809778202386009800152828074493486257357509333893269410700015788415957131181444100688675990882687998973510285413485917836336600996376648097638245790651432148616112676356141076759211175686367712511445973875418052417912767171462619507031392585482953573046602922691751922348138862650156483350843032397631735209311777665182391340830232364124108929922145345927062750160983996470385502956131215420064656833314052001319626891567707441571002549479461183221507896532763147661694943283153276858021219389683271444111673254322964533998427150814824435314839241777842578996999561978542675037221967922896964691426377741719177978982531445172384344690032838934150085073900198431945957100753514520486170191698869441070618341493284390461330100636247923151116363705607393771151405284112755665517798240672326052100334426732456133058378689640996090409229317108094857428178393791840604161583055851364505291109980266777624331610399581746274564115216987885869612255736415337606575576147718227257020046631564062509871243615620025758066824417764182694692438957571324013788637938792657298189181681901658987744821325515282010431899416523882603112791249594990751475300098943535495829905263730161660176424316848144986249137826380016021687931936209666095321776328208395315775790563945749059606390647942435085361221741684679202760538217712240859512777397165310068826237749694150405701749945859214087591340806113375028181722999605992322466931131610433378181203282520970697074150090515651379817503729437112017529840449164286757136862955925436756584699543552202036339838449661419960894121579590778582152919073784726833317528280806685905584672126271728671567025240861128743846568503348049966304802686064166136260287027526768921970500211153810221795673658093500437763360510656505284773381460361130830848660689846736971411618872293275260673320011814000780102715340336244774054299719300091779848632044750209633547388002829467183866358189685339249721454577805478040028269008823649000670650575095497330857491762900808199156297010928875971685080330110233032329854613792376032657897311348764175873691144274403024647682070011790241027134907701266150032020241903853029063365126640964318609837538491211032949621959203222421019786230396489060237818436961899663007978975874414796794488866607042009529526405033124824543204743714009661891263503322705995512972685255579457163370830386392721122863462633829380944782047743018808397951154088447425400489541066637817625128830978882824636575917632421573284500341822883924206360252774817363112884186278297269582530629724377464000142129920371902700547232415619073598078149592990561466376630147261381489301731692352100407284248805283897348586821264708998623149576006058076324685628469332661722740596851099959767211179402461123043734462984434963296697303937183195802386000192932500759229084034257365415596543279244716396646234622701367590168495648027967773432254999472918169004007421083676113711076654777046839916939815722963425017962923717695473531219124033206529948148136144044833310716202251492802876920169099028431484463154026341536989874424845597402477267075743886180259386661719321468480701530076073191049628086578202183908280258659453881477764906773347191706890702856676840657696075724736278115335023539571574698466415322934818570393113987414273121750955331306462316336846638252107867815710525809145863812905250422652716498004403915542560264996892511726973238179235073503046503223348721919760860146567263095505484148112713719000611629809093086355721639347191132870869628233560899398127528767039195013824997106684241945712832815810832517312779423030909455438857471234672347087742378224559633280809020226086540197552323036421539277275924488758226550974100123681863752198930567150039383998293351837407358968696492175892585353125502160279927620881310391630518053616446310698545749439442722097723424749211522699333542407345801140133018823412584745116129999062550947752314878781223006634783419303655159917516429298625053328731052312640805420617236978568211920127556299159317115206401953695383371235160279703864662355731391187003189929440903237955258989995985135925431914716651352080975380798145672915371596974424319120236823055480642908222223890704480379877543545452806238961641385575885292663836489036325131627138238894017949313440237841874141673155331122771714607854315745518890409094216591211849020749987671857755541837782425660929623461964372214220355681487850747562115047037835683365559073165838485973593890758697474857960324271844664648157493359736581665159113204966991678235503138705772178059231690730704571096691798763759243739356501083863029146988734620107912088150496753340025062120286504391822358039106014927251609953311883566036889567004261174934420854222297636978940296897985259359434843734816062156374694552596518324468098913732420327344385841532185639589820884611417597855021225314338315061925317532668235436362774517903153931415508881327274049551258474593409721877664114826391021596133350225897544501753763384793148273878909370472618080883037692832693346688165307082174998982754495637606820900357927806132512890866723270855907121871976607124646492083489892906534253576990736501041835782328916352299125002188816712182451454402341168575457800085981207222616930172292847284704430420300198342101527375858667309132286015089134324714504254619525330878423138490171669614446592312951729376996162576483408629557677223329037570225979007618102160054965782540815076899395632075504655710344255864974715792103176720126476096840613009620430651784395293855662153396593367966795191673233273405375110082044960508855832731358364049610515940310884103183406555269474586094511984521358627321010025936896304464368430332152956506157928793332519566274693063012253722899073108513728256086990315210806155632048957722193854145513531657846131751869616011990320216335027816369670320141687018868227735397490127236240398852475164977533350154385518252014353733942570753130897925590405357526910280912231615590306410461712063734177451298489285327844019862695598778663762547455404175434846729032844949114005961669552307903413959887238072403507244585025093525771819655196853212147089199020346076398610824065456731214531897935107389656743159000461671760592012390883222546918111007351911242686117901184809493101987898948977459025537302689856827930651214719803209575675577526535648063941689119163969131316893744891406490157210334475849680452385266194624670462345624718269436005422618712829891906233797465978115722534801764120704490986947109979303893192613567177331313104931069676694148187468447654064858915625024344118933565048086170652218520141438233908481578061428230176705727924472617278224747509236547491444643908474219869510947279320135324581183691075341631573466229849300736685854807698530753997950639592973427605191845804848497957001322915954790755695499660155597922096751238100427064123765783122968072795058827686976784694741781103392131359882519759567508371115283856410834960829973856310594623827448916113168334696161662889727205979483191837720703210302648816202296457930657820714225063748234900661007688128283276413794099875950366388343026448365639821703701257888892893013231930438925181678958256201648011844324918242008654969409362368952134822504351255420299273592706240359838940371821327007127566342331577087834336763618905578312575626745174331081646444676075454908166804449414275584684463122740763340265520943653056967020811458079263300021875743892234992500072932024931092245024282800762937002680058918500634997176226924167437137898751741770159826424568674494960686734991053684725850563803813020916628331938553524162955662593283673834749044221331370409238339350779064832214777993722493784217599669364537295568349269955914973921123216485695258356930679896674473235346642777878014252536821965599576377824392898627934454781568048375339498994911539358751343058095013277147905583033372643418052862354031924944473016659237832823008402751562496247547831088958736618014611813248823014119857875516703149415391229963594520350608859307300324930949432345750253951772735563376944312348399510564559609345519146678748164674849052080771444360048579321883155134266271391158828014033999476206518229648707147617444144356881702186029365240966843845600945068073372734031361159538259606374651620795217848545001575856235583114853862154891081640378693416555406524733801745186941648953520775867536691510805550472294508730461476420757526410907478809085832460821994540021300125670215189998001265132782535133170785177158024165163913844744556552463934611530287063240928317609566933049359551837258369210358250262095791386747197626080535404804743160961887553044900543970979403874755309666768370551141359858994613506810040083640387073215692738002324600314322812391206534624690605362588668828264373308820831606284522713350061461951363224527078277537030962614625446420485237015648763272752412044356548550145234620057838598862995448470495760191380894103089062445062614717986977480693065191636061552592230071220863609535119427521656226377206097453425436653017847212335478746606687506475304575874373104921689253646096495075111429607055172097044927618535984919489687645082746970544084508380737533702021261642032757204720957917611939141206987093726807320325011004086779317951074892764780336768284394836173137622644776423733072077406134322025670103939475122156710460275514966732967403374020537102916037600324074359249704029405111760895156975774045099826334204097301403083546398584752841324683802871383081611927814710402514331209975711960509990538483002271251938815074059241145431373362522827764229146146131868416954765826295988358493657606119920786285297237958999887768642860040352961726473138340183764177161476890863913627190621472739981527803194686928210324458591187335162472323106610950130663186458454170239542344737562851932209716969659019121671024660157393644313837141743705541311419032539514297024235364055687859780502877921956075008661337750233012094918530693825281607969943828506705937605771879873654977824594445011005866015311717447765236853901396014069155078642909124847753369891947179554422340745650819015556779419625651246145572851484287297155710467021102019972542660574860111542269612575302649437286673191960268041357175845411620713227905346728233252616408612134815023938590606831803330953958431502181921589665089405353841300947832777867042110657519548372558166004699474258164485182615045378869093486236572428721657762719644380989962699771879063873392144827196328011064762824634560886032026212323373927772241568748689016841903526037100769389117997626992490707828569003000427886320631398894396416474664200377959780715736019448835570780225593641992851530891413513784161372757153782200014213656141075983410994337764312288951397584073612285171004323737783853430527610397799056480788279006336423213653944245249232255092632780771408180684071930084148377380114443797304756103444926321778428108399721448462772758944920867195544575684516353396957403296993857195299491982754363764222147485632421353085218942909072907273320575118715602215415756725729170761043269507920035224924655738338012204297239398382802315442210310953643351741658559169120318639123316112743703584273032535807658334833127093896154881767421878848276153199613894931691855819770297971425125750117752955800442768258200004683436217425881431667570053819612640794975972050468607974323903344522668116818274447668654056185546508658473454912290148960588535785095039130244838419339830601349179096504820524536781239327445337389785219722514859686809204857203087215727366598187515623301225816785885680094853441099266671072248726004931849891158445232366842354595084727250596453959345110723974283708043136857944752374809411625151347171421283384004226614850094604329999882801781768840060987231917286175609754315935382738116662779963086701583450513279272236863670029620970873974872333100080223146441377137814351207551614881420343311641786795663093054813852953962959393926927329646581735288712449927542313417740228260409942028918117894179661594856654397949544959453643777924675573785119933644869412494493074822325261635469919506695188475204796582284753971940019209930572729264675145653895249458488501806902064419581229797990246773850568004028920103067772674390839808035988961740812188202111179383265754372889396992797573594494848201171419547039494622909887462181848620013215071556362211591540716558179798759873869536130023500707303439674134395048983903819201575025383338707867008418978528347820851118132047489034051695158149383601488152249428447505419945651354368928661097883757758271983703830229845631026380490246313584893265054123795588123790401167079924210755906041722178648962396668233378964192502919370783424456819420709541519542842826492101721415217884602067406398781114245054107095084304897536532015392429249459844594863509065423734037502932466130814941733324171659851062436307456936187294998670413140679737974803554505658787879150830409183141488387047900706629609754752400719074872444828952011325875357300526306277911893200518692633228301704220600427316741229158698206720898193667634296069299398055508079127766025075424221800865254955460271273893509404103930582270625005958740708124127295479690455487324119834389188766246919083840784623686734577540719758562595578821473758099261537354108527683177849499397993725824575108195751001949801149412831438333919424714607904112927750462695078185466396163492506729216105650863772268562987909366974641617227811318882424695161454755100470525970735398115049903167874023089877893624070630712784886570845734680054851332124241667239372999687470989649207018035770594345120901872347612510132369126170617276131655324944250549020476638463146021781194757458375569666034311217653198808245187316389703541083053038367309469866935355903048300088605643069271220799986022468609990887517975941139693383508111805362821529959517786903283168528546517385019554386583165304975858919564421972247431767545260892887313795002919140025965436408523672318636829263851298323710449335811513159892563300660416106856013996270640172130399374700544132306925990404500921325175873693673610883384412155723952590831090632168907738503175226904174307144177397467522429423615027868973399396293434607467853349159102097448769357474015862289107281606555268576324096009370465385792362992807666929180440606346068443488546077038389837118939243999430003826467708374884724638374689225845199530996203470252620090461437498226925712334483352523524775569965676139722357999882338579213880587255755962644106168625040193093422612684001405285282181392293123935372680682510130119292197930792088644262406169663032555961228297838512431732715452668193486712529346358798040068813753263316230571345337614793605021602579028390941798604566230931093858402215933731640903004429689662684806805470606733655331075031502829463423678939519422031762093058948097513779674722549363136737133425801423705434659966075543130228806235130462317743599590964078964539221733626666776690960177043674799202743719896607473034444943030478258070334187977916367743140719838802184603550664890935895905048754739933963926929106131499901532562726593120353709572048780612715521626237490351851896215173310779748023608477760023722959112980051392454125183085803158298160945021605636696820893727699575481472864157993750258578205319003710495816251732016755428494286334546397919558833788914995362746355192708186106526361013535420385129731117432390225903151072127924532404874681588137687886280429882581518614961241234626677008907487580423539768799493180622323110385450399135058974314434976792717099136952689732476812390167839734178479309758148088712059321445170420046878476700089623097243752585876600836487438201435644874478642470886959332156706776034960115319092432147363787330076869458821410232044400459627795508550185997847294597916034927863720877436499585739595619794631713743013549053853618705976362881115449256338286531173137393928771978792409567524532903429171196369565305614990762851651092111692086703224907222605954490404922665697919628559749613737547500001052435631047510979666542587906247417579465756073928984321414168789575532376137399053006623207175233892530744433796980731754596855126934939644869078171770793194097976472454260689122948906230870114353118440853368519087801721919575532913033750028411681252769338557634222097044741049891113096710862799850022315929685285299085804915541076125713148942217963644722702212875729136376024174504850077847981278806039137753623683779719549949449379474463506979273270424039330886998770755779387815381086732675909083671873558208781705140725562498737627278446439699297555384407554733900402980031217325609108321507053594545012891632264330260126857702005628164170323568135834961403279595747673411864693508843614136709471005294164822276844409096586767739795071007834713365089217511625786861894259797220848166057584934927167911291853819313700492904273068421121504484567995967384338115395558793258415527105614171341030480904511616913486875264200071868510088150723144564338481157819889444911572194319744609571190223968794412032055092998078717904896395074946195240860906763253780508807048199422465318567381044302713389874677384092907143113870311423782742703465908082514700472519089587070115294701100636861517754306940564080003671327728520734659897571646631023303498056574085143918402137644506332980276811859796452552641924134571253217846095447341574074308257112906048510299517471017891562073731921287686996010276127430083783685579972109332951100149926048243721320981794343459241412799529823616366451594855924672267773852606166291245565057986663855199489510971958886373307962662852780181951780938261656267323779503118941271078087540667103053136944894597258566876118318507781544291087984944452621144964990143519661372545026193028967163269008702864231815216208259637897769384991619545394093752212776735849377260606375581113192464594651312471249813950065975476911400073238933056817951977108235987660244861247690900743031421113613513067562413007172085744815163260062516259879122713698536225512877301712674406105865048056219074016928345616394677993576534843919911859192776926929272600047750658459560402947035430135959022876921009331880040824517924185104961404061388203777192827027476671790546370417809295151483296967213130968143893061488125459401140411018307376765166434974312810905281745682579273786338111665590012136379283110168551469970601444410704602466630563184408663558413303397205569276103282659274565582409568810048966626489761889686870652176906745768794341531303369683324739508044950383118075405921368178731109402363769963252816994000094834541026575244033722682762468852537557009233001567603486381042846782979171210987667595422624615706186812769036826259528276743623500369708885152011091137361015694902848673086555686199003814575739590804589311177981107577827401545127169856695242883012154439398171687019098169211115110070824688841256487686823072237236376222555482455229876265138106836918362765665486271727519022598860262774328606282921819257446272196000676067784094784098453463839813158431852451398137329379328158089786826829074023335861888342040218524712778748673571249784711022559599861744136304756134588480022534734615210535272643285682940732810665651691074235497789767642900857907946209374701333641438986921296741687868345894801120916624295251231894333806277582071963099418202142768643078391183545908559909124438589896074284655545321531021269871205985807107876624205806440996203257611814845595127615383061330388166220286768950414137559927674663467369912079156618991795789373848061053790567218867332888701474478762348840524146593456688011626649376718776057803385167326955026068332470342123392370550236183596634031069773228891462478682979664824893423205359426856845285764993539321457407905720897303468691945786643960703759938792711770576385666048945527493143307142420650023191309597324269708586703229449855247802127667410211131975912523645923412766257793167775664663876581141551116302195606154172884760763663841806374152184608466994534888209857394601895188411975339702620381218726279341294971753458966473643082193160309379784094172861188581447675250721916151036884410290597865799053092094905792704375030168362059316171005610331618197015096267425350467555322666834758707350050594133803824633306072313441565329816323145959741477687555208266489317827790010575017704241779902630266404240496865289283179639894401104275956460364222201045478786706835100182894808268530263427526526561365077840822734633859048805466403607783913014571112147612052328571764736908638764594478769943624074199612691630580703532889861882422288665115589294186155311785611258460725296925052559580944209348848062227551773113347877210398097725084190212023602381307125060416824527641304529133770773136845398598409214127489563007329079037747361427322520058307632403258856823191543503678694184360896606380196335145093738457204678177609377741234468477908471748300733474718259250346073042968877080711902384230119168997650149160855825695148419535598733784977624135913481518216234226362283000932006398164350385122148952127251137885859959597708693674941074181320284727967597011480440516720700019814178988415911037143365258596476160606174884154609113097875883844027247432300939005419137373648745141834100208287610565474051232811064942033147106493631772494126835597480662305982625514541037083281820751343980937296073698117357494340062368213958539383286239460599676386648627219986561258576446437801828753238897861135259187636888981431265954102912124977452082492668326133762940769259732006058488229709484861935879260817074899617793912060263467786157944403172471083189096325192552237038099611769578429803354697191154626856734595129283360605042237642730379799446079679670005442878501534432700921666166207575102643513344721374857376744917369372810573835994538467753527523581640550424304654696578116946323466807144792006942393466070946935571853364306346558127354518479206803377613344747313647974674500856354986367495617003768011605747405720577379516298180842531361253601981884182298793274263449727996479472584517048441874543351601787074112703851964230031750894372267124064713873663623232283594497484022896621189085721519597478916477101694542849537599565530896500375396063797413860833456528504012319092009609675150582827110782739826412077716529222670740749034216344377070004454481749123335114046467823821755788002381959847102165168561162297605733110713008818883274298975839327923242768067254911040431018218486142992267252974273239621470232440297560914410562160349612744566982075729275164198582430016714850498139063320060569150669946316190507985751859452014479262253184350523259999552025353039791306759587976306406135500390260730131003936480012087724249013115732882476300422716529053556678967471397352465175792830266421994312308457290453162944167946402029185835375200016098854197392450575174777686244905448630552634741854603782118507968699586830230156195281794715922381018312838506423886538874677286594975394548662173182470812386064875019981662745478013563735079086754693415708332732530628282560815967063380769424016410323775537403882086103756373456931362277631856285096568134885942985872121611115909926578501655137764609223041486220139182902759176760624636707735570863833349725621607918439671452376234593532476553336359841605007458416915677899929329896320870817259579601362954799372967131080533520428649138232482426585250498393812767659070683798592935422466894258192919022332948972545291976485986147519023959731412187786746324611108362497026373500255500614200250844927570193170066562846332443920015512005665822296196681994154046529947832453384659178430324489585944240252350638414978531543010713399982119381048950336115684334411511557621411360295370425540218087255136402403509307279266505297430722482040399388766472411917646081181075236884456716251843281333291515892784603246086360103835164736426284833218247123136149228615318015509164755150499947699071930422473869533970693005562376332101306356523817868914755255708607861126118886724396686348206542718254194645684742891388573552731287360458192176884444424266709773446033623872560402819011795673857736272071792869772366775514424182258104812956536497876376241906775452615193831745150859421412381102916769946585790104955763808841155204373379239602309566854968735980522123930822172948056885978697977995679086243215737687464751731307840958101551521380270809726725531067536744548158408799840014782844933877494063894765839568762642367819076341386487819586290576265847136977802288971805187969173751809201758898349733386735696276566316317098842663125171575878435656576850398845909756946005976367179264971586372100391142936570818130515312145862483850409800171725028340009664892052675738673543631214973239825104947512757850007203837842906516923208997599979765645727804941980644676009161943138504813716353976525347067721676843850354019806493137402340933681405926738564730503210583121108836234382013058460093106047776219956599214975383890301065674784353803143526364710733707754101243457608061461181150824532881456718385119970159180328463841170457231042765584548979184035988996454785152174730980594866657548773510887171543527168818152947224780057497799312581036249907619179690304036944266245541794674890384053580774130848303901883208875937085784869777515013105940290386780973107872210886813230982498225899371369333747798811024474389461579825714237122814258966227768357729246506145677909715051783998056479054532371324303179746176179222209267122499340740846337833145435967083027806119591142937694416822939613360029339369657999452578183295909911275583622643224592214229420164528279681899997923251840758305232383904578169080256018280571931879638821036576190806082720308719872234344846583119280514421245271257707815322636664984916087999918999407788710666608367935505401583566849970749211630228618528049616073346290236443523213870610987889613408117560748338306309592236255533975715244985466672497831319879871706470347431073165472018631459616518649064688420755470399389106585369656341184530194143466217056652519649385655244247917496886754488053864768066764427519749141449992657460999227611865506750522088987837387246105604726118326504899788926464969898275003784087310239584800540516631748965671260452063757285563207186875152659537556765825756750925238979020230751684258076186078592807021122850988678129943096768340631186523498713034213913257165013125302649326344248026731948057384842691452880214908287184999405205233856717278961042897160580579122405598502511899297485264671211605858917363434861384182041547557549657309862903447104104609633665694178260379338501900275751210387159826598030075536691925147397726925413991797268401317834822022525572047971258501864219978964842583680111918521773684541774303086424945857649682673995118644606532612531114096328805216180824480011622743966604446628765540481958607730223863536740865262501905345948583859635761737540560439611331727425601446018053508769761451054966504018200522958280481968242993298592837637096718575992231407208633193726049649660124039582685825766156226872088098271288230679250518378394889707742254358084303546762856069690474869604781591278308493657181999776747466674782388723932847752855670719013357256489871857463128158896549885046078380383184788163971311256731465268888229174282472859079354336116628212380485331874393909572328872679403654757975808503289767580172106697664906803697545228446583950095971653730656111611487085532599692298917197515457489301037545535450640488176410526288336850288710572208724345998819703774320773682587726964445117734866584209497980178449089618973123999014344189118152200309389865435284999068395672824125826069982578962191204891698436555980558127438258942059449051563552680465847331223141989841618973967590355386346280755192301808376386312683496089894576483946453902918386716428396681713414947305524867123576893581321979482611695370731745598968070446916204243674646774139647592102048003616490412110486528881083959127899213533569859237954709397365500818630794090345052705426929931243985666535763442392587227673308923716746722219615168038309005854869365293702980798002227430198378410660577331107617161629505758125040889681665674149077094662479455474101695822838755054689817133667957900865951531492327836396554564860678688683961334019014749949098552099040137153117719299554040214681995935303667624355918956749437801648047913658908144622391860848312400398784769959287294106133812603479597565952064693367079148638436985508825432386487071273480399110297832337010426775977088321988188465823851292166730990893708682718450412563127311166220933256646281213144162984652911177178322500184418545522022713562354795723845244125166003290615850690233110020623386189818973466898565321575463654493313295441538293634889082753105791364126632979020628654125785390746931699284763191230768469522510530132503640041282024741433336957475601746755193860060439778858136816977529510872452237473652992245977337254636017660684407050130036292593460873191743797600559469658187514650629475592658840259724113262797406637200742327475612524970939518884025565663406497292502971861987062008473924243466513950150842426938123517478177955119666130830638069693531103152869554620438559527494787681495387535747865170701816893321053697937031695968385068809743593213779353503744041661544801599364980780251218737753225652266199711449904328157586978485680905269535694569606863882159189788270485226704087695456285348381349983937010904837138384119265838178411288226871595545007174674219625960016206261328962835707713971290153468937325396625375308987361883906006074451741660170571825910847830756301396750854914846194539496061577067130062939737930546574878155771687011670089959070860576781795796639340349497186788810260025988165007053677919896884550206220112029216817039944537102710826838669471548980289125756406307937548409895381001327977950004251587414763850343639124537985414813406640672394198523195848373605650160108842644447999595700253896130679640778515872830809920932110131620231104450290024795675787170530686647440804775261514060786128149104414341148082456422946251356432985244806143955790888985701633321765100080078305447546708744367663336778577361149334928249185148302568413708494362506501786991597704689532747563686571312055231524764934489222827836974703672194695543695704897995495649423514420496523087854930089160958552164378972799011143855290329360285143490193824008353752843261554900539669335428208033765313596675576624203945670926264833691238079301245999663272463251762949199363690006472558013117025372920338165721168365283467492031084161847663196933889128654730027410625999316351342989332320053842797598798448171633655406724460059463717509139626689040750284635408712447384770541150669940813353515545445673191312893285464916896440682745252677386539199924825001426133724157975291711524700757696516746851655182877370225149298722046243147064946438494634376620593162364073270247120294942935826370783752440151683348608797140737621593067171835831940250173197096504219636859029845858276678293878423291867251922603535662382887051890397222864574613036921841385546095470080665811991093051721690002992615699286385236622927042416361245107752211607730789822488571429171818212456453512527451827717362541049033740885996026113793602217111044617282411592441079844044980117065547099309834339753575638097433296432080102341959584440104464901656645498664943570041256983845609496243570674575190852813688347608339713755954564185894101903252574004135600269068094542559106952834654572396795270844675398022418788078237981364423961319292716897617966545150219155647886319565815119219907279516250852828294382414194883063374676864652191220955052734154166302218692125112970703483951926180676586011356868923349014963620711755871992976043341451238890576538344444963572159926444066508293602072053381267050935010914327256394083428751322046722765982339393692412024294048891239482989112852698449244655299561052486413434039901075776807469166322681242322465176756644766438592531652455021844177395577449894487309050635481989336980644716194486710714175931091183172996656343876427758891424110836410778739797681526653109766410552987098421737297572140639907983048325251013568492020482520675067883935220979137479041882627098219082545298293102967252691683636240171904460217353330177024862001032143283798973868273465815567083483045250142512474289949164732539744899846757410630166169583374190274926959394413965437465221980191867381826139639737047429385688465059446156538528339067696926680754663751369708454401681419179573331288655875008294304632070362336773379048524163801005419534801246620114765192376377623957091010917425801334213286948237515750077517316091094774132392272724002435275670404003043011060197439514608750645426264778784333675331102642639167510969513278093922216740778051792388919529146522266105598980376987599690571156419331559549410297856187180129792165902281174860502571467119042564166472695459818150622809779528415513334585677400372747087984053307842985018564496055623045930770393455701418712731467180694786779931336306773919275573016672513287778835285381833997415903668616025296050567700864261820312386303301062897222963659470881462183463736936915908693218124767661841088616825417116444841234001192778246709924010670926047390110518554176706796411480713697417165252649803952014325429918177364857608892402401939717133512922034222015981789860202118663859408002742270816875701498241991292394558443154978000444510229557234901301277006723007031508914074711557779479953376535929198201977233348854599644691343846507283493200554100122276467347442274370319430636050788558535824134849076847421443434661646110919103923438527411735844112303945462843034201541315772496435957983961850447576774255460875839764083049257216792553710379296837598707883954702167911621109687964940472151213436623091534611035304417413033444477212660539979537822291730674000726955769056856342278548758138137140294170810309674924128152920901303189964642608335196408128586707602678600922401109341983008654146207274826164634914838803106961511714775929963520584909217574690232361630577305512674860147026298369568482129912885971321903187690896850991491970738368890639461608154722165187570647123494025250167343052166095539818907790855956441464747265176614157856613285136139948730895867302113646250750449763449863906378195227873480750412754268106542827979404290286053725100734707784463907218628070525800320574170799841503906094779963078110952054138014898214125078194082375471870494985044855917637544341146451722870727351289397139539534992705633431002064654155923536252856171676110326865432804997969944516799304977793323251899880947508029211416806367209025714324481047984042929875830348149204214425320387158522002145788765612105551801100080210715017545503643570941153587541129214023926953716127664533963029202261498609846023507134518645815967933843861477890732626021400838010480870746196696831878677744791390309607116120739924302861349633904360416901826194124348414686852736519619722740529371003953957427043786351260822713127879093216717561844156843919405509855408471310629883510941753683371638566061460013121478523647165247775230338775497908909871836967900979810595920710016950325939855958094045804349172585184846647683005057072115003424661899721665276193186986575979675840687682153877320806914451790084515246617296495400814062492420988991682468741582979102885020600299986332141660994923618094734469470198572187914952658319247250025652834514498862642584815347634325207681263431851502104375099136369648331654387232670426773696215528302979543272771550433456429086731176993860931546842155462211942444926732199340208121413807009254224648249087926814165754312897436791597509671273992691866763350900862273454059700186931994368238881228570335778751784353982321890269281919589738613095348812673297517315898164062910208917670381050051374798094569161596882372143611618438680658984672523420852126683919541068457090078178336824209056113321031201050339318942415387725375817095742226313260044766032642206411612481121545647965828198351134817942463376723797583096753792186832170371855200095282512462494272849620926566906805624486078086412081980769744359447031331738021368218770113724785024195672438253934294210890801328470805215693312757438212285949789645895477922185472055322403606566785567193086564183119759800187329642503983396261497233692467867007814251489737998382023501123545733103809867683300159417489023729624799506234043487786882233551888102023600225023589392135704529402368109753509813156939364517291679163646005299650511037016554390294301090597886895035528803317344636758204006012959359418557233903147143653542847132169000667643130490757782535951325093585990484841983738959999973563281899035798465443476732220185118888501624840594441989010419570221079843032485764394775242008047609094020326457633549320339477040456431533869735316229642042321761369911154901458456413017222733341579043908318551286338358040944659268284871963919153125299420166669032821616760299022257372831658129642210717405400568155609142784488444959279869112679517218615978737560880248158987225074996009492635860342502913558146746185542546261017088048853136327860013157559261491278807731239537969612387201987545471924009266381857127362535546513649775379330995988459373234850397925763978729740297608237044038588965590395514754617747397306053305184515791687142734676405391387438998582893877340270715707406160484984338100354430925642412496702760917540103758555814563541296534121819177861793878693984092679215597339380994609587122168376431540653216762849774988030967308373272928925652267457985013339036999305359853195214128458863422895321909107007274707296331580296596684631706099747012590385908254841085894497673416956915109340745401680905978725696869036446853108338534808131094673940383072367328986056939530338588298987566524986907132839310413087831556372342424080232785474246763085784884098395455316161379819631859827509988404997015497621409662961032131679665266881296270460180805916298160601498670888281280811913849553010363407182813135535034067937489597303354305675911595467600487849418217963829690005509713762814374625141778814532988489543521293824915942714037599198475241031616601910170651300040156560937415088049476511354006771904516372841090781783987616149378626451440397131931302100156602492383188910891035868931082479808715772344856564105291223762195008526250777361056080677170534831937939905825064733413411113897923992453381809701405053985176390723942851978162966014722607810259968421518917732678956255583192927390989637264306198422237192481460196096535036388501564059211339866622126813165932849017924461272065296431185610109568020928566291429736228572441549496327658924164338857692408617360236310738529064547813372765804967369062876780131129655266440343623013113651158956036071628323061061262374584043626716232467241588832757215266155495818203179836652580513673504681945940576607811787152173502679078830470032948952470888666728703474622743747726824309208947063854864331760526349907168376599958962608525510043025264110612321452741017322664303797840443868590064715782327836576738728667509092752097311303274619410384962097134260035769067064708671204159467047773463174602680345206140606968038272612442631164911688783736530365523769626979987633501961950550120056031759908567920238707312913498790861280112957316620884360669836044149979414139722199825263349496298730055248725137351235314047360944891212669056605911381601784891008002105523040869323636340036718223065587988001070628179447373641076849621230852027675081285111441939270227891252489814801596057557682098566472726776442786732061795228638144003191200648969565759292942899886485067129850734754300055855861340468985508340224306263465988897693325920370641345594774500599180230033956222700484299971803138963050808905647772345479159008427092084535011942850569208174852479417792641723977295831880256673173780995003903107708937064818772062974104666184776390798032956189270059036247670494812814573372483860967568308030577711045021459024412930864851650928912215043238756701947221055008540120640537730063339078602711195977283943190501402634637687009656233289994756544791863935751736426912910184782585480211210509172021826649468080804245470959286411039543875085486753009830576333364625532966110815178083602519463525382570334271337601064466507645403452831147487036641353557756653954365777157791498813722452743982924603476927403489599470575456976849150068354498517167191620876449543124831605532396876768333689434916646214592104111894224492990056516596226299537139100174732221523122598688284542189067326212562373935263258050382809404266974383058778039550663691019887906016746175916117528544241330668179557243907231802634880493259539487459279311715116289182113796553990138593146929859232362681433930592646664082845695191700105097930066387308913028567466533903337502476310802656841907401145918856014507962315431191805091279313376400764608229683216987002416304802213651907418082767011574178536940540488216330879237190058517413355760952298832588607746148817456473202285280534858417835124788991002120395385128500559811095769959858500809323012530591987368845201205177211578252640419862890751200277748124038259984165219016762339651122583923943146856655442615966943018327388951985912754131876873850981771491486830827096638064296037138291997554563736426588215538213413736539047954021260187734080859954918328751766087036222182560707118731502713184716758276297387128975841550158500661804849170746496989968210510857367090761022210572321914380076312192300978397092526503951539715802028515023142282525028223368040147165915548035649244868224664127776892522174026912961407491533409535811796344776358361070252634546386707008127499721115175900356665232928595694005247378909805856600748801540291735747195994353815846019342647984183639449007421812744718764380529387765437119741504841795615975180920677513287644776679399552069337340483250139451022398782401928033506215828531441892047060294499709626384411833129433404280879988915241523303552783463971505528384134504826751464587626906701368050687200617389458752323779420650049758399587904399357797955610442089776342373700624840754734553488067525539405614124223340608527914250906493598737060376080305191822951852548619714709732829226623191382436902670274248241645578716645773191398981417049679988693834866921726350613521143755733717015051704029977241205820407801076334874772809451830913121789015114529547683194630840401887331226837139865591987719621153154558298029101490867258530479423937172187196686411080855123834481744370859222605697559580854054166285733857213688876273190192609466053766932808631032611840866036136848258355485604250844212675039351177808170210009504356354486321992534206174551728218059113182672694623445233729151251785549294638662894248245653802365723461037493720497294366584863477277580328194891133135787052589422736863529074538057562226208359143732624731741897983852474106848591173242748718252057464539031853817195082053122079089736784138789526560880813501038004343871490020213508254261615870190083778962295338235117392352355917199175912981191955612577210798673188349310504484514812211658082721848345808939163270571215098962146427787188956385916373927543309132358193175126239481537132246601424276389767240910335399132888745852772074937026209889481739325114588732644869324299695225045522762321011393297743255792542834568020996261128877921471769375141993154469212742810992478094863728780427630649909900548374702242286973575129849427220015793751906601234714919699363602876257949411529579149260908058655237033405286416867025434209273167694336011568864812313672919709075597514440835081398286075422793346471834055155222465677554974375696707136166397115214085553668006611187165108423007594415751760576886747119959170511200422231897179664286901826739642247536435087719958124371550182801790980484904196018930281364649205670884712289853643318368749371239949388441829047049233593439490518044280321705708977097508105125415479217862577228046010352130795755314490841867147161424699027127346997538936086072106686029866347026095866006368013096060880084843508073428663751977118921984926138021243606847229731601164757670729717616202885589152732223937767338951022636056472996718239616660713122738027702459190954809249278824077768761089924482096676234867699676807452570015516183593535839178693256933467606447388703992914332384594137095327888347426731618724232101882748931581262846628410025394063955705763314741640725373338337950773595951897392166357351748772990465574677869675940365601030821489471793285937411757570213415790758754122661627923457306386025013988118695368484767762033564185506221012466521951996009685908480747013956562899164618872098825837496593526740200204220926308961484808333725484641956717650618162681784051641047677436543740511298045232924499569312753353752493841537887975208382472953485296949515649920684294745175056030533899699614355672372894775964933050940676836395303717079021536878181057913004643674625041228122659519389336703120582383367335447840268218979170695401147148555192705930910252571658996783618078172900733933090088690345506370441413985618467111577015859610779192276016597739934799679851949251097702966280487308583848716066255717476955403763898765349795034996404474217061079631058643551859477194985197910951282815340545923023238485816911046537707647782460626834579300537191161703619159683713075382259576688874507653807420583884252374975289317055593942869170348069942174835635319833923019071868128653888437320853746338556512922451105114777292237217092031632125602446832668867864429378268438978616071172775750246366165000597282339212253153595508406116459131435594392981048438674321793626573514274238542181269813441024161981259508143479313722929206410420364517277151032639625247002355553549186053917984465972903530014290196188478380762839837317155988321073752370334368775378716937434652526196080757569964866057495903241150395275237989758064491490931181172748408762874589411283660058192414918710737855019435365621817289935941397565865021580555557408544854235122261876891613630328818682307114897891005719038243309236997396481356926357262002611251606439808809853940284905712664868866122126497194393431372164882796694051055090355576847432800730572554452192489260431488939695462914085185127301850462327122823049447359243707083216407727279415673963385460048481623331442147934757658176230703702794765687528959473155204154017868125161103989443165845054594353782565530642840177335490138481889643463456497780616861602927602693898012704589854082252577766648735405271442660980461108567536665019427523361990507395990079392485943574867745772806087504311074179649144478367419389181096387384706179807963914817978975839416597273128581684851083080986462592581171624078813369225143150901207507973016684073108880053342372779778765254613539993392255523375961831779901617784310726419463199142229626832265829154224477178150766905129270656922030220189908739730350663393250727688404951153870892377968642156544899075652049254806881161219031216973328506920201807772129807168527706854832748127052933656535834235452982269640287645695796334271454738606976029098179238701676907030586721096750205167582543354181569286452934521151772462342519387045959942439270710957178404521142998232089979745154297936599973860164032453007638050730832678032347039354374983954841146542624857866975989527930171120811645671552205304280144963884068562152894966478466666653954163273917248871840961306452167636210036911199278581548514968739910458707300049349795612756052745008537827427701330165158971179962092925062684223954509125634226620295959786354124842136329644011181465514275764231456049823928695392297884857179544487133833575272715614776511165119470365900614008988837241066128981158559604250943600327687190486946056855884336791037569707953838216259643079040439988748128950288637003622501658967616780963150124896938854572388879770959180903844260399170496719567675356669428102307338136137710203739591413537629464449448496046479745738054926692125317608476164106058230957366022244832769997503080940344511507664110200135173841990436265432171459757240319093565502601639450216644771617300602250643141362561047801403456572084840756251216087902594900860339094209482524807406705816003013916772487867994742942841105133321660254240495607385481498017110103827262938390816692530823021587919559499799748713989865750622213716108518554267584991957472751529974807179013641129875941087880249020014078515363394282791864037863647758338804007376499082922504453472855462633049553558648714519313398258004140894365523796276176302186744295251810034200359081292474399055357557723708275301622289835516474068176336706852890973353882421471705672945667908055022236624834854896317668341896565800414553654686379393203343405638027850982840080985682961156248286759868629685177635448917320652883214336313720275825943639749414368767893338742722248558878724093144478715438989192928452798972152779612548256061992479231016709800778586434385883359266869133737703989233138628927721531835574183557563227191398593254390012148328926590910600793466239092337257604289642968811599537964755059570082551648474251109787041536482665914244435725757743869696891975430071136138120338339791868880424053794862682987304181974671516853199165068274916990619269664819660784780512456343399476932086012626352790382111912786878793337002087244404899355355947552649312812240488189875530878554098646248637838249492940148682565355500582162261361371768543988457869923576112992261164364863143252877158959317775513011405941442968579688647505583636983998632221978284664803625242152849902364658564000209344363623728424442210467008508045571239549571894057860474499634638886981549280214310032372713338701306555669217647050353236252188711623044989901084883703430354853045162449358412844087016649476524642174488451447040394120064134382200227248835813645708819121845400160017702859076320005568047761076156913764831838267870269123240969999968722677262132841102023559567039679677276145015168440066788228671997455501031482361671683068011458253063515207761273203744386557228832920042235515209053813170096869967304212959866510973187684266877483929586594706038552337661319884159055922653509363107473896473765215410050465123012830709059083351842358682578787990428907030522930415893655435819692541971820286945963700691013427392300667907298296910171485717945218112802939930911221083899589210208027920689786468758755122623549728156856094585171706075860998629667140704212974001665017346581845079274224663999513580890141073868344252022161253217276777943386445643156797463780018057512413133918936294657341514093684672890462567745217823430330189894647657743875929536489568682558905294025484138864229272129969678609670464567599650548360132238029949413745726556215516436410481281563054296674732651112872007775987332732296085178676215957741902739423946423500442865102314201797491468582206810477466893165874318062992128149047266093482742962640200155088247571698502886332063529840187291945177340362514140102622527697065142434765565105145045779625786445717757432092539444438135451768551121971372609211001923014953372379282398530580074734911401945054156921108146756154142811738927322858728883209150980570291702251605872023857991457628771964126984419359659687439568171973314454889407505547546161350375489265324322541691531465712263270190817789589842922134784691716255005396949438994237324585148090791518341707397719600221264604360800580553525136753127833868620075563301893166283029491187479655368573240832134028060030829494855508802650546571400626970939919969661993895242466848225005530818215616707011631284991612302947373332818451233693442539540669504043420516149697438616103958140938419343528841516135194979844846148955517595388253658458124077451957687223250308292072062240679941754008810681854807625921210989197007355176394904048385233698625305268436986934576316456116191433984710008720651801526343058216259085133217849967506571039455059521908272740500260708977790708653099686112666050979153720350889033566755466200862085338558183547690355175401242263320333065826016357768490794072381883236357618712817849037236526427214168990408980370884590607716245416056783889607693949735708377748392458901169491524319884396288114587691690395059732409803483302844847469288250539977710654272189901110052588957468397145869724138333714105385309445738904152753904919571399310878360945621507371485968022328257315134859750313702170337258624117785520327311200328573338975660702067772194147833100085514085965349223162062325566574331704782251303168951370712217886288743662950038043771083677671981403882299803452923746723107528617990488838562895725363505077542548136576065036303230503476341242356350078091485328734499093077479897338190275384148325134298393766845341866441380566829830622296972603735137907031369998819883521414264875184354285148577775097173115284394039621921867936721188655431718479227210423996409203768428140586525296417506563001351639210207544680768174468065819130223331010660987868209190057278412611870413070281262764747520609219263619378894700434408097790003342239139479876971394222030142935643026877316325498398752566652374368311293770229212029895991480337111901456353147507236411938540404164541372353455011647599517834319058190985310364973111408901153006886551542920668765176279869073408912836802026678978509163654732529186606298474588608454545741080071021796223320135212171043563827066583487881604308237747540796070636877447107525457130728494611391170844794898094215026517348840151096050286396947050927305743704906171834383960437180986544330149406735714129535494350332310877944324659267930146471229877950973844987277345470355573327691725496377891736430410293115688532183111186533328886855961261410844780918230323038854798486492793659091079420902750356402776779507792311907988243087461947784186617348274275063196864562191314699039742305197602108098081228866260623619618175832674925881988839009916985965732372622191252937291486651375565337448335954508232816413839163735778921574224862050191776958453430655995234771035227832788017453364965670077275600772565171717515617349459487768963815143950476757991465749205273260002316312856906168447635669308364201013166278275264267619115061810306543780653918327719766707166679362878362452454181012697892954177058231618618473624027711648096003532743474783490657289126144795120061407613033054422213368364450465013084846585308831231339901679061117716678930043888214210356719307031451504913371310672920442461696770924191855969547224699616415183519793645165049414497869420949722751081720746569708500876263793470151871761109453119652297274327107702867257953199830523852073044864058235833846459911181255906355563988416856283659993134534535902480694912861350777559725400106574357549486923997824464538390518045259443852828134873279577863691378316999370075157816579329834281766421098194727114348645168110231524875593804625863656603686987776801217460384558515970396406773510060434578984011705251671420530538183155123112168310356446531417780645800600755620860163492257405082533711260819477525675925934373919022841394915280541472386420727406875190558396622806148511885781277036661024107646665196141032312923669806647501931714435850994907373135983117714714225594384207920638002296702991087224259887350249896965150862037199868538464168842283069686800485109051024443642026377826606929295987088655050399428138863383201085224109718461964520631530600360054248830130287769435279571922959252422321045256635662022766085248466972783922790573841884823708103258602459571443527789333894776640545410068458203626731430835229058578387726245806521763940118509494029903460831150703555796731528853416887369774298313133901282882795595036591384625310360272787354793823033584128209157070530686051188015847542950127708701710663604120803939362879350627356031889917668149553821071254197697065149836194035678811633516559819955455875538991561093533298697738409056188444850065763798309958243066916716724628897094493279052918178107777063252742776694184771942934965587622579140746179242849253107865873524546221488744957576738305996622401539656141350726299608225525744574533082568101729663930036216364405702870304774853971876743879143410729945461771252629303986231837207958625064957060583763641195161433285802026112828941185336802666131273525360186051853112739873603365399511685591035704054514758969242202085488925862957824339871082843455504422639825631628993292170728169298222241655108619415011167400386777921115853300301172796881099967412715799570955123613382047586252148503150881101774479476075799152459687998914968249829290983029866722928975507077344743557291081578177689039799371429251816559048170705077642511146492129643898237268861848417234629420017981353774169874828862802603464657507199610578319758934616914998575058154231570030591159563106126761164623416779536847712991828385066229626996179215681690882282485030898005024030882351236351222355637317281051877595170361226755219503564286809576682524582946007981000388695644049751724877175273740675330495683184553174547962675716368932012158830784517117127888172425591958293795882292745008410535354736348493406535510076431151798318297299191999809811037811285845364982168100500489470838237810187366970899727878596239666979197812862282600022211441380835421244359032414088469237325847839850596043074013312459601890892416480326768990839724918170540476206639365086791939057972175852713914698042846573534229358440723425223762660006668803079172737954977277421951283314139212624878748237880899162234978347886013687561533420113178282755029862161667793851069982667896785306508902162605748593167356544672678065761426005832419591318788947252286956526828518775807891974772990309895598629029322883155843492383680507719069408624292050064022468933483614135463566678247372457977439770506360441153797063496167290150772818118251030276396894262911228862080486435982666696419031998081911833384148666726341868838550294030520925977654286733545184585175484941236909284908147012283640509716551026716401608338463530593343736048015296201247343128339738362676006317786349570701274508139987227230306020440776242144158330935226130079763736228502502600600601091708779164052617033904113809475600311267685513514756528200360169893580179659370789041536253092130334688515145844856282485083764213458662845185499647670713999230720182845854881559876323435419772361143912740847588664135753294669520074199779259704389582004436662795144142916989787281292532332412526912736975592171283271796414586019317303200153374028873287639660920807120239223696164796231708410497174729712711845441900301678762192551715256398809921924628549867896724753740644401416393393013321617453492917850534664266781081105647048864333723450339550661004422202080242347478668841390233731496269534829976266576061587982938600378535950976636454975777641622708773677056070705731426837529543998452759140038415912946576485243219939034072759225137494558787693153539951256275800634083479161559336432329638716496543980096419203100944521637892372338850254125354210066485871131388975193549998009221811293210924648385847295858828489767066202316130296368704142929449528151060913776847302698242953159693839259153600777397680431825402822845118525713535516599824950228239281468421517636439363147655568945996399307520663071418779218196289065713926584028131741918013136121907395567916493165033125484747544516305969913393462537662654123018977849815183615648557853926504749687950132079267924215560206126178955100043305919627228921097387278520856022325723272579413781450904187091231795474945288406252560165881314594979266160482137223787773657948396900622392800979416536952730185883496402831970407839792861368484030375847193280885808813963626160944799739982146404318042753360206517115942081481461180735865183111770191187412315786490351043681652602258657384282415438351355961892688422846466782899537982312089369151688053209395084865767910829044999379450469128717312873163733620868481919274669788497101473141898318354105579724767429071429371871021412646602128257419578420757133237740126077693982341837714278699385008705312990450436161508066794494812091979245190159544985738904848380828790100572330764496784864626377505901324731903070800505952536436363854001206415773325456679893319485414738343731997373437440696821321429567325971597528769207519680809533464541791607310352063138173105873954105776875287869460863268497194496235833594940474146376066681377638764663637033893462294212486341771994729444743711868122914664713493847293496508076751968233382923926459783482459868480052382069445466767832632575932883988642588217999704973272377893573876831387323117072655357311083456583680012200154754896822466996140756012386695350747131524840924474948831384593846156672882808443148672517569755548577360715870817186567721965232551882009668792352222694735401278259829589381754137512267314694750297333672438525988145969787858435130170442804865148908817692482795134803552523304665267595929608054824646319537691096025289647660877914422877111416673580095268440620484302299478875529384573276142570964791900533092086214155677145119889260900483345578135479727402417458132843066668453519778304795695821311592030308629207048153139627683229180019288543751576539397824456952446131117094549617336935802321665543395166724012187948276457894537439921348551269297161601668458181033891417451020176229209765874556654229979310090648492878792855001280366310379998761921029103361245121281773506911568294825523790618559665686792928357156326706403521937601269787049916602931210630620577601411907266992763017259331977340388306668297864007419349623809542245438379065640727278476652804192081951979476817543324759627871145703761104108734249012084283712111499783918661969120999612601371731580883785000807534115523748569836455295931700974075727635492165305617131564662705517275525188655106545759233464146314503207115634818790442187493518839317206386303779259893782460791063599954333081400176018581134327052418434863744128926789775204902225442354808789011759879804579020954977262620426307040696020897698589535872281999648749587623060860427906523674927061595393598019954780406065914523301766632929704665785685919784951503140699508837397088945774204761728735872013103075180428424765399897734266051439290222951376470223426562926877797265211524317161988465726469566941868506591715471269391532274481615465510084631423308814542641783644175230021427084283303209718891003101624847147240423121490765942146020889377852009125332338546433749670086959458927385805546132674864587655978704638760090549676527788696927629518455337657170024700533072137719874303415229600852900604665636685537952949037655511222717156737629681323873771410552756066416100868988075824364314226406506415919301267335824690787062065904283589846168774226922469073045938603503407254932182590874252397007783040300126825140874719803302574615886762463539519490657984493236422836156812190353720819091250185081389896920846487004714986053969209070727818165605229905063450425875759910756708144800273890273560478422679704468123968818364895251820578492033528462140013827816294840899843054181190838950720591703677320265531852013842579510736250625247003010881680288896640304901265172292441619830068195665693027723356538878425810093571085784614540757924177416633148534114165108544832085245807976763818994267543509553982887272597256275113407563684709732192203874908814733869597540918226212293397617567912555972060681591313341832404037439256274968048860291118348858402324988996629895579352951778310692458647532924250481367255983659044269034522053006745844410711388849090655909858666987861203174599921923976412050228211175595734733520625317983104321653699559214336180745711847058377263548898523977943182377054373039882421571961144907469017179907445179948782391468492321077186619977670456223901604488559353157078535260168770980107340722541420610088363434818701355014984592188823868849661656493853083617148171174087774764702441445237283215022174936999351281014881296313805080836386985513355444387520156474092391502240612733765600157356017381120281785721279636846491723123798487294102080406807959905734673902432279822005158482541675485902089351224112057863497374428889212038822697865144235572393374908572666219052732487034125957439640130991383255352070872957890359172017828557839936137359350075716533140145320236387431999692066498691014585768143949580635492008047515965283069554366461547744324299005220440422732873946869640212900471899989373846993397626284878845229905946340583709605467780863220602307348193692359436826215285022321556379231291442685585160368311417538491670048810203416045890417032859382879215257954612872536170805614960016811166387828253022408308841196914901022916799378309100744116925538757519482888688695712681082953537551952727574714811978894857989471692820880944142749889168187501279486382511047054502019746044901476691237187780279759206209380231591255959543469028249283711420965820252101090685113340228822354731970498145156644424373109190700472762166937398119030249308805844744554410004129794280132922752225298208522885077145497305621892363313602554464105728997251921958858366316075982392494448775110199742851852603537121179423267547856152673624245620459602039930738328658851933492592977576860203086531578867589617408708805881810868409025171344001002370924967113278062938984341249729845342065901436419935820178725959865589758022394894542554911792987543091187449639954168238306458110851514147247493994861863986099712672627553230540806680882207033072585955095490596037461812531956464246392991732315790814829471655850719576895422957066825310476004241489752518345736963959087977579070566301760823480137928601993273259891576377841786709208661493936233374582734542526140887363866472153057213941534853312738918164456022204571642223763363448446097762438319088966722475389864114345619689673896356439281729213839275657559269717406721467310773254306320013796493587836058929877696213339222067904228295903868326801712602660943779684069960071586849125548520034723948728755478378984194049572875162858502976431474925849434560835852497929129974286413423563749544220556470846448000894580325977454201063239029597823803576724117607949679776855130933167821768347942439297291737346159537131002354019051864567525245294008549157257816674004040467179417828115947341573058121506680698736371404089748679358856303884889070957999816347324733486224152625382430125690298015878661435146171179228900653131189614029085657365825935450776959319508264249468157807598464230608502551973732203499222273359376759682182914677450698810563239972013294594956005415630205549120388401854497896658506655853025374811894248320843325573278864946463873909519813793736626165217255735038319968064061932230772668090504053691487002877789687947852167369684055196252325927647218229344834812821477548519542395308309990501305270376481484903510883277621439488589113428020263750776973959846106834155181343026097088837182876081751740321600277211758712086145976742896434117382912086046083616249859858544983420457925358065351764230698275124017335929537699952554911141545513780799769016203764570112995523431642357108267052099183724369227840125685019576498382077028796583975955218545111356084260918389216157781025932664150577097517432878767425098145411726725325732348522366492007049415552384383262310860421493843037025271748948860535474426652585918988122351581376689178185669224209402213347520340084316385738079061686169544981355417842353024478526238428565448997016998688911026204328731546834848464662680310637288986495490313207435317433683815983032763356802670608058303957859856458744937287234339993500940804987560942743237662604453678560440767440333130839870774335034814054986109845112510356211073108430013085360653605048606347599042924353584629678720368228613719194602024102902509847771102800158352150644178429137543350522305340470564982325409443837310863670845660252452883465651696677609886454709105819228917009100289588217677463593479315655735416217623750741539185515088996399689784886286681123893510885406132527513295943893686244760913564385445141367618019480906666511921701596153560380482172607378003113273231041277118543364470763199009300068074632803665967834433376166863458742298289187495952052329627427639230514879191581109386047655710511480690118072887322794236470230213878149845286808971535533116645711916244042151912138750229083924057793746973301971438850588702540267990800740168631388053376001608084627770596397133709795628526401498329798606855777221239268362593743151847609902873062764429773233064254473158142962916845313873778406601424113473764163849785765615759594410052107457323403775194881347695020581429164591194023146888955206047707224489904312296935681729976708027110089681297223008469493534388527058060013097464188255345158293072349656535548025186188076133099045685456371126006845345887742285304094861823995323348201207672588566133093056763311845476640100480452163799971330384241090502428513548850265405520945061842860307176571892734822189075911914802670399692598746708498559967972313679004987782828661224336583180804743629200018637195176820042543776653503142811054402706472077366851881354938115227373983962180222015507426071138687156658843204334541042245385603133560966178397970184385206936025978278832664782571390253079339536709687192199481368060714343083983018781999295511984712402976306521750746385862845094318246254846869888621320371569153628051751352344682791146317876301529655531864944644442885702542107475100361076886114326005415011861761656869953441517775663379752015791572609907898056913016268438050175010522918435553594570835671521334994003088818974577335276761431687028790997620928407573412709165618540850183199416808881188155142663999756716293084542604711776571148813112437437017728432341155538064393657446024730591444532581421550959746391139570971586110368801016610299767846642354619830112351800726961603704023468882222539377270144445186869822783081404716625279172096496949421692508289314275904376397916989936642416380631097309079581244634727524272739220091069698194638735115807505473724268387357615053151081887038447819858600473140147368323160893031918195475592043903355982085923408172073635450121572427499241077812090323035081039114756049474226667976052928137423361615396013945310937896946560922648398836163919446019643360037183755802284186937404739202288129324245925050465784861947539989938263458167508755141833900238709793624801548621192541171496177060867828448832083632291621253860196066011242243262650664082805929107077605075330261054201296967534676788680938951706759957776811108834963250515227420021994333832139237990844036450289261160106217373244269489399406896175080625106617874491299052415504823148396027138519614316168976893048987880935513100155229130534856986110513176829601066403524814894888222527834191402917210261459474518373848866003872263326122521337312843782739532317136038087745868705294678008126328685950222077832606144953891066548384848099763589148198336894989771474358196529401985228021773862889002712171471406947572777691299188231656106988112994374808008914834241730632891016975800337543855785667609586184901302799273515456015370973494440583778935570480439782240206423148921119359637091163284401684889528891664959209705686805590286803783699219181254508146948350302824345592355578079040916047745776791969994870827316969037586085534689925694066044584825856613982027408249996763602948032209882682591167355754735120135534041534799070505481968917869835319468455143154231215505310669554381391863652323039918343214515239321165582540473563222201727167119556035169967167711944322167948372789106484934981795010669057849370000953385337531339920673434057439319796671996029565703739353425741281520492136236941643362466720519819494078498208771729183833969272739845050190110262619123477216514042148213657148608022321899624924747386318812259698941475069462917785844754928876720323479933340058371853999278932430659091749125371478165723193092315210487017157802376106603835919618052066241822474300530165611416335061807311173166134121906291345801610949797965943410056142216944727296122276240915140043248662557591757989162161265349250836053424528248343675531914442665036918228129621537864418855376862069021782821679157805045907533175576081931434208922768327172756186864154778899420909968548382484962040286629355070325780071419062332007463867749257036318767629761994216235723258610590364526432874411787092467929924098363325092976036559794173332548093172893864921466778496233490967262059686487123625593750966273868102851058723661961571999663965092581094028928432671440546840844873647853035844408865196184730337419489055884741309305063104398310647761358709102130292774604402786191870459349506474207740067453397423131200493861428345768466057294046394611288205700558986570627552923093488968362827886494768111554110276872290222616801326499033011339590955071359052115704067976601428199269342663891071078868428749523564837017000451696206069604332331564650818819446272693309093749638498859125822260939762285088317012820053507723167087807097775946536559177099158205856054677335140025241644504520653692145071665064082382728876389488076726211241001445672266424503737574110456350474923525153556911253953380469782047078847625367061352264047335474027162259596178406407125503591288775086249653308057036343592150525394088079777258228328704948164779686404855971863842211497886174729505695892481406265651761594240961474489347310721987411814600344538811858420939564744750845243825409471951654591907536521235247663481079629024220545254474634639033047496534342076565978049066724360922324555330107698357513722950712455201128050666653983477519325425087030361603884919526376167295927346029822293948080263340986443057588584962560342760387693647926869514370887011482683678968442152777138320555202418687788887428326091658578051506951077325509923506865070394953134601012810820334142100471180011206244902856392532315068057389296911949324272199136318644622368194289684575397266119682437722478759900616060014923347860556880841826077829184454867295209781623011388556542710976135320620340081211040393297597224128272260822868065999790932773906048027440004122733897434029076415968536375259705699024992741569696047936355371033306395763583399575295544871309717191836409201228959460341311041873807799627701223335167244616028436014170346741716231609813074694116926019995327951381367743352007172315744140172397131225515063964138183976074426943541555195842272786201251064505200520046491143397953807863400949795751693596565999676501085735804911959182569311183570907835234556619779508101584740053806337981596748969657839969742298534099649997440873318914659623381577925357816929796212544487936386781397777893664876920575338869931996615785829492656806646623503947556958780850438114400114222636022883070035867905400444146896494009625781073702971196298118818032257744877543259241624483286566251646632901429260179146830042472983198287688316383795433822184074137458195088451121606557309341169998301292902037107962520092733823634997613156186933769765622414836181215531087339234277014921711895542854189306573764521249326734026326959905123017783129739604742933059826892126001340789536978526303353813126760965073721290078359424660852552492376204936041397938670302610032311080552792847408922016276403690419863231309594149813902428557948665276246132133559003684026643959484546657791634325374973233565119628243474657365093539970827432918087710170970728476257120879029304254650203795701536383021681030284659787697586234032040991773721530624364242748412953019824241216305702021470124333662261654677787536155572771777230212090082581577411419285385777575062213592702761583909964362118885436359144653573814657951834954761930892469024759246243930089061729293505326603537255892558226315542479705193641987586694727097966854599578171567267612274611575857610885951050084661016293810985293369183298782500502177966024545798163330126571834911661209296039726073895411679937470837239532689210097628466074566431436656239787016467638651916233029580447437795841492908504849163714677833486107901380161670497980405398533249966620067960770706673869561741232300597038251533482399905613252146298527018891841954485291742636232044573502650768874819374945959664520535375723913652034576175643447873645409760559740413773671394673270633569450916668954558356885540560170876475053308919885574445508639220487632303109673761246470010761460094118881443130164373870054638161404922120360567936406439426182813028761514317830867288455031325732281617601727965675673165321892870258477153738399054025174375509123531829481538252511310971357436165935260213308305303513107391832602873397646046876236122601774414198036068417537852212318610144571697261034621755386763651182393289806385739591748666246039093338394921874373966424506792488565826952927606884958634990453424187786287789172373061934974577445150150219348674839403466685289744019513568002177066601912487207115200516553749611327930958931861881474055748218299166845425990760890424146463662234884438184637000744833512101891357885583390214120082950044926626713798528495410982901564202236502593447329993806289674606979711952704180234292365445819194831350668415516882650295430314998786659165034373359970583488814754593570866173934484660268164722549330389423654193397647206578823714168771874929911202017197285337080524522795628650726306635855757016772874748520435235517860285013893020711357328938016868063232605164890734910214740426062513036541795226626627821470236716156527581274154569563101546116199315132162861089242968943465836647720569250862277475739499375974025929268132294143042969009083477682895036325618235938572419720318097966491207542348996055519853662149123964049879381298815635487038127995199518145947462019834670862396532327549989542573935118867995179898050119941846804233326540934290478347213064333798729459285973845650828352518992841197848091657503733845331585879946324697368905894344292790930588415353946180795706996315633627320451044296188059207926991546922507299711197580301429513006359720281745525314867799409000487660721261195758894632205527066426893741917977231486507990017162373283360138595513160746892873389615562795525502553315346287420378413046617969742838366293380790171936211418822160999300462938297742936668917917372439463093248082515255998787482971991647403041533442350628925794562096328282203462356849601148608941821732281048724308790268056886959226650902999744154281321251661167901700809094841646696038970470431287962565929182728142605100771723496728248881652241522773141457336515411310265256951088140226653005019644787894096473337447037232293420391849912009899809589902132918500792739045364954386388106020582766490046238964769648489683153001819501300345524709373790575499323867482232080489740652711891539821462837032328153630854080223330294014546362862028572116366352405437037888930617996616859275471661793120176259016198516816770856414295603848895234516993249935167205789377936520088833266830596998623131316498197803914823008813513232446472621321157381746464101173281445154809372388304343290774803869247447517340040541800668797797452556855035941807194037705799868157703034631571441692288130053833259163145417975670035991819162823143279788638000144908035999257686042696746751280228884121559127851371337127544047037704271255772739541404331421344736179741050524676195803232921990850469430450172187417197737568651842653961548561227194467794818343273031787332402457238695337372906405028599874652825502019217967077706942528319922175932400047945649070896955290508418619776049097646560880360299688187697072981075583539343395991425957451136114086186052189878792044819824808589004759572915666765483287720438583110680590268046293042839496077565910326366338494974852892459937442283285506697152015939054547154915663966523001067092141181020780153071890087138536769084896752722519855015069261784781700052732664200091958490026636809429105539924927092037634528314131016425218886435718301435344424015332672837187727726322274551130990669603626688452033327134052374717476257964439807178022577202743805188268380611479815139805632461756768787373074292832443084296960607712940039959926989464964451828248123963306224400937518001374215781819210815254440760246723154853967447372591854023124147744893553152294753961356258720741296654201838098840021274821937888685234733806557095694430559222131920253046947505085958856472747558346412835703567353516158725900277930275958404176277854026292644824153645709636270482732107698991883821194271640618806653014860374993515980558420877238037819535637408128390540910535019877452587251796415410217393952601733054921165330482047458841609850683288927645185318089889680245812633882853506218687595185228111516796747924532050090038263210665434279849874954392196125242313399082500408697740876352199046809840121107748052301947399469563790797167556275332925173870815416374011401121733460889740791697371983646306064113316944629678824467579094774783586175481593653263656134884253892532201644966191100112740126608959921234946798249249187895600814100639137948782674192956084301297913751531472479718708843684940232406304447536377482600158094468208781965518183199721379242712321071308845112588750692679556635648106583255829243624638390055487500219392960340721792808034141940764583282172898623286581179803787722175274459435303000924903937241088221014937907013132268644443138921977526322282353953198539361581463445323791837832656264147465038322642403026371600597769672094428749794516432805573173331330095321709089157152577329763583918674940427362833602428650968386673406273957571818160165614158679888879978075699238319683140916439948201862285184216057896421333113347969293496487974244676971638875403416565397566103605865737653852361751891910786655588362593889491403883722513722631085339965971795359401566789829883984974984861599862928885882117340463252240495552610421565544981284519561386352896514282880984122580813604721575731568171993316703896795353041695859829310106298048518228954791510298496088591184952727829648282950758030781907674778721902533934735151161748962542194524360971800087516166099942049759192721539555751423861002366738083310330222928643049593156936909597762301008836300422770912063731649502210218171821211955854982876544105885046375151332772229887939802962060599316445473870924621643364254119029459756768611174765345685387139204192833314366526461184888104605018015987161771656581309207026781683205006533590916965339944904952497686598331464119724438579286334389511255307078657589314953942923923389634925783641190610839900176035159560263242736932935354281359687844088435656584258616734639912739928225969453941566659657744770371868824769766208765763529172047580372007271973572308857583541096262126695462407555788515999980493954386354521298356290044544158838054598236323361701879459849549558279503487597178731173839561381032944859828862623956475086068084105807194520320683793000314354608239886073904264294349666420433938280910727463516957275257759897695312632938982830645118710667610293839649044687746952109608857396471440196169455069380689402976330595343887950950818705714072226924006475506602431296741487679708994614580847983008093170046663141706614913927769055081868712939848491708711679976127452418563314919840774644689773847304959575103139692628022321756650370047830773744807514846358056830719854631855184177978287763578675080488808654337789240244416894474943926947243818715258380402906593567045673303903559574865003304367153188591469749306209307535065547263663653612343724558861047179270188755456258689675680712629511787890833927682410100019049879256666736851943595266594562203504568145224762038483590285725604421042000865118541013513223316311351096992698016041042428382363629984067426332365188929835793220301737057683205400870325702362658644948364780476742476565665922177861565730552207955734254395449962785239977417672086129393275832050758072323980271376705784776005471934561869364909800661942211804019350675739402555624217721979544102663063780670450971347280387813049062286448479152358585034250802208461147400809132764277467168894167965163174047922451940123544836077962693634584723411809558831657816448358123830090604667292459159393068643775924868932205392271493578063747748046078141178121386258431609666678381871938370354316559913280734445729546755487233031667594312198360664684516565034179511886568568252887945421216968800894078551811394991297461399321048628161010179514977473993309199551296763835732762326299073802044711781857002269583336019362706719918362852791373762980499908498851346515671884195845789636201756322981959296863433730308733252739844873471708446175849751654499036150907483570999878066916453111646379050729770890704666391308804227926772356580867967277708416727048701058398602409056631181237535091873610548620424138703162251197251383723015378484250370456321257883701631301986302767114135244756748507879762208728274493463632057002941279153580775251720225538191238621726723243604175089206198297788301143245115294446156542055023045537180672286519154194584613142229845497812795661980558844222261343197809907001802937177906938735398720741071929238465325197507997110247367289216541076827800112872025382135243689207674775475322790409211258882825810427494517555245144367257751041940644804810679556584229232802402597670264762217902455894550633673234831297819581855682535893817239194662486228262674385073200492562025079457832424779602491908417586888702596853329673739526115420699298580582535281084900793583098895754865940907635141835210856423001999429682875126665762585609850088845120469914361669902079324354015923252379398377221348135642201607989805734167147638467241282600641433526767232989107478931890619032476879783150389321686184647121575520052885806287016704221148227944685759373718317115973060406393187443886343202154399556350449303469174412983549888029466244094940797740241364370552953856217864688721038393202214030877400660106438951123944158016505286248400043961359050368055647894900949972235661969435757336481361433946220936620646909300923011367290923966533610912418819070138542954350998879324965839479096793833332763817254696393104695254425785102053329366760392559800563713378567920134957445316124133071229414169384249507131124561352866789446906271352229210655290765321417267109464595696298066944296731831660644577609198049258039031538468680533977877434336586063764906414445787179328131363135487167791992521727254383214868596504601822038012707519561322759580275044401390045910757543611698612950161918930817937592333256596164961167014951451346531467849453054680476971265717026071771458354996341235330890640323955217819877037626765602193880574010985343992699321404368034500852252516413738725407913282516046426547651083948308080109905246561442679403147093944985782609166705562833408191614028335333765200353799941156128027079019643706196585196638199202421895612586261882664844890625076228873605879630464111579572529252250001912965511360290842107704472117234334895434859159022296478059942148376726533558173312030281930002832034486092711443634255240606707001672372093898229359003747658279099321133607129755880771132112240153342182787636583113801223614400667481985765275992056304029743741177230411842465297932608736140807656784713718406091549445136076515065555177854547776834424268866696875981489467751749460135243831863568077717675658672451678845594377779495937983788148479015492108059581534014926835982908744076781270659543756868398322203071429728499316465977372379461369849619208345846862824354647536434629823066464979002854490573646685359485240058178581515401108221200685703543563216716962192995423146939742965625570072142728827425165406948371201007231380260249041787630710205190932680912316627142136626603483389630932551096603379873925283883511943666093773045127439277845876390551963193587625835229044571346230729844196780513293141936174831765769127065982840928562702263216315384529025334493865203369000643823057878224631935367807377247678211182090319996677701729036477190713022830672444204008486025658025585523869694348451445434049553353934971568925286940449665688596272218080421384721527810265659789424667894687975538358987856260694903899161670960291584404827236539481871611165408291913532248095750975058439044497457494644833791658237004606262479342642324086111325040383939925931366381284188546107102629939016563920773907312501762411150063357045172853954164956163969630040340656347589446718794089030521790499332788093469454451360399122100020956334325733352459188565175296123118211598346608773211779081334387841009376327323295000624278255624196988680551211338429388703770046892131596901602847110823102327872016973253074801759318703742555838842837741949924714158589359258545397893116296729367761994995574372441396536360226201326088218376455632801388588966122073771906651679342031605381633933596841183051911800664433674785074367637927337233170061192486388889930079911790638982849376641980278768815058876032405976722213344626445417440444734499348968244560138431878458843075249216793796972100348581135693731070853734464245712643856625032899439415300294344736673788247137702243719761285425812473416337483145795403422332516352657414853998471721817756758421939254232057599569523014310392045592202993407248400971511592436509529959901009234004451808522627708305735611978674075660377272856692364993469804410868092629659604456063332066085545464357280228542686316123623337613303150066992718252021279642455480935534376736240906695380666347081644903754489824535583364075081661629540978931540586923411184133313695681953730890161127535685930313290742829660101582363369713549879855920232498423141549930550371831482631105149326786739914178498801797949838560203812009756774862987953037906735216454778589163637128466816686543691320969116800070679781504438482731475456350302051504783438436809468842492710293060556514455366340123997274674160577363243984378882261604089650807169122723741796637585484111877005338724233683515883593913181146463205031142376529919001131051163546289105962272019575865227533533088174082991151907253786818028499426183787305977388700067609296238576267150147758683866019505342329336106113688674773979746467945111525640509837575771857147682061330076851553899501394892033957627054319190043211470934878756464900355371900114809358057478416718279566246004642992810195638573392489442832063048725624683995184922950559797899913797112739295564520294512340851930895930705795120605744793097850481445769104271897122541250307745637185648934689349744446995124578993089209669706976988194670114317883045345787082990342745092569269267671851060769159343117792832522520711510359352244789586901277193063546274302902182575957865605049876716842076308936455484784306882884621828852276437591806183096382615383014918077010831247060043051243001554743759277518746442727838282493202241418063234140888890943212873296673163378416053729953472045952700414914521587197971662959512160298529236771695419445006347942247130262982190404227503187806996369270650344310937436083149418806976145081562418715413538981152683945041360930890128849055887502429106031308837294548432151086149825968142687119222153525868167966533971263936003572398258304228080781196077372520054763202218981054170277283378398677422110788748198853137802525838602773767853920671666285749249304895851241624923938668413567529528532940744159956003400832744311990979900886369604273459601667484899490091098732922645901541884311512433428165680896901108229548892403265421159595029976636915412380768804301783873836055876958478673181354278078140583345655743237515322809768095644863428252502425695260333179215026700011448671280644000206828726278420336242421578334667723605677790240351128467788505032737929767945707752036716497498262871395024797351585072168517892556777275046109921797936344366670903711258362077207908012497896622663432160299153845715633686368538147978946914634873172073758266452031701304630823644565618866800229422413985090903909358498884398377374164266493467980977408017671415964314781356182486058846731634740199856147952521926039004598625157852863749349946391111990400036548761195772390240820372852463561449019501889194589693812606851614650114618940792351477172164732186564748046516666433474631402414472814915931062155998980279155067405597409748430047595736446463464084596415536816495913398704035455545013913821076154190098164957766670428922244437043606526734928273670050678208797233724796520411464537035302050006454801560442031192259227622483914844828700204708148145031354259030332215583093078373350761852588738024423566560640356299393676362922534279398228339954544227746873004062131194104974944096158615852268884974255686272943880939121416599974258506465133908594195341597848472897723747420334796911524686885063639935565809517768824832884413185023340445028226617219090765388832276087639002232756695310843379737431751733683328382936459398564985392181550557097251206723771985783174733666040285319972451114091796117549173926585853381867287054038825497513889223969780815633406311419189441615482445897086145399403988705231057585109261072789201460746429138032520750427574517284525843315556820131383532570758855569427581116059516017097267445555672340276783996820630077096965717672652407192230995059234329105407020328334729154533213876934017979346907906605792000131846927169778116423141311236808850366951557614918918862870684401666778186520803200527541051656946272053571780813555000132122446866632179408418437805342820546412398609326210226009985482019768744017658911552403260537408237096397828026454411010151021534624093505813285853218341300007180308260052972201264471676636089048017241310972932977626870988984351247615281385194136446004044997847538675409749893356516274319503128884481623358065836768178632450332185025131937582189775896892234963684260425986066203517264260752313054954539102420107096306871724456972852092468703829492954720612430734838612571550338496853173102341621175524896894415794108897887667119833800326358957211949183849654494361941661501167438776644051363065786733524477106070709415045117313626897458382220714440857862562516900989186956023276864789581270634582409584019753511836859331852675084878588383508443251732688917306457330199859840667970116455359204015984965126957559260775874449753558717750027870170396597299240609715522349456301892065643993242979049879023364498676097357041081324829906898007580592582253095173702041409452168908098011606805329931529059461356845439539453528534464762847294726858384387861179536830159940975266378579930065045193683248303250075991177587906043239753287897614789613170092292467874438410121755838483345493233670642932290990431288030119919629969978212767913694369140959222953134198780012887595014785775462069487427928279678342177606397423376669718151257481317821103789381326959508286056939794154222981219180863186491928788409143197125108815166986558672965959214968367612151688744720024319171817271916864870872905084077507472993900633986496748581048384702348277616965278667198445197102982433445401225199481322079865973236231909039719721045260692984175715406976309889308391148708587937066395700010948550699815040591012320030252472278997609141082818553459384571467525618278598417720692651171161296212737334934489009083308595907404659163638038323849680330645234227197775430983912458104215609372798786819315655071179981186664211908020320730344186441844048610049604647865058423056197269874042435713635405983913503258796239538982051002156723466219846885930841111980939351207329428054602166046735401574280953684674271529308083620771698821063110854274269947427600334621463406376648723880858079288580364254544854575472172170418206345180807677488287826985274669391361995210065270010482041398914879410987848964827012741577963634607983284343495943955610317289586360334475702452809971502571081303203776599638308054578754542797022225138105542007660071044842529020446230658793363719022490222359322087459724818400299015782827536350686202950084972776569684800501128727479307404786483689869827269337494984173764261439300106013487244388398850008886748717704704981816063108463594334449330936195416820508062402081998005752254959373997134614860055577159014377270445309599976314591713233555145443499201363439681890554425736078295837625584750162154400500312426285554992911584207149456533670167215504133498966977769754235059274186427883497275229214809424179336082743093496512082347359713334032102658693691584798912119250596193720874430863392104676320137450435972961572115124060346179677537112935339578932080536081569865823979519628622105652216161174660038463232626759414429661118626560360985746214413342843818322034231087440667914883237897235237149303602262670993293910009158378186724796361451481705705501141366787618883064895482861405813975064493583241719623351284125459592411805053375770625109037325484504571161233710445667497396302855136986007262303972592639256886055697110259952515955044862533535442129409195097263077613178490460925550236350950701029805187455075378224639530862498130740032867421189455024122046589143185020889776382270785708411028838890420924186988530571385362633918400828483353732505633384393845515599981225202584185284573046210801729084758018102644868327000330952924762089503548041329974437435567465314733616642785627543178554072555563168774889111875890925010062415170786061745602301257776473847993356259211537734375160916034640097281129656391784970268056395783279280912951725495366922433873897864897856207870869604584580102510489764306841676362097867872806591054885339945193204983360219130784854330528917106026283136558713831993516357833751735147041611824611665651075412497377218409482055542130881966677525231708621247739220259053477640695966724892440290208892667293170492957716400291316195227222120384442177852373342159798124916922868226048307711172386485861156851190827868450162135755771167859701220711495178416692236449945374228598687637133948993250643582076131221286295427890050166164949917014535327048479683179810951895284227068231448488033678057229126835334337004341039500168251702584188828126570188079155494574986378195177992979524676720400990912577055314319988042598475333559950124140805416922047205714253681885489719420540745116778520791747640271581092830106763110079359085961922961676067823478329211208852480134344305197121110465648728933682067933482872231319124165037268375641359830787035500967123328546483794503207464040080178956684429379450981374535176094554628116324327837524843700428908389156741243923639510838608504906690266354658161878522202559005186757876957684571463226172661842652205022698346193616183480444181050897866947377851222278005277251498129827305776945877082877077310794495148897402571638453863440890975240652528859507286106257272606501115255069442925507519551849717670327976341191420605825557107324407023907730567427015787000035981975604561165680611242347561198026598061327131756420296086475526043813052521213083513420299132607782023041686340792747181646274130308127789395648373429044882453340576767693196613004097755003420834605988359629442020670967663793712285727965073262684606190845190148562174323147494323426646637678261048536564485451459864911820935998029968598285162276619384018968599271011428010472153231403195224768673350818466115998651466821706811841318105959332201889139416676313313048713795818064580148216309041922402523324042554491060555410139838972780826323176130718225392217614712831848120732148613042055239839896700560985773040121788473274774870175565971815387434678064363932360577606136677196021505517325829773503627132440502703507410825592840317228919077323630439371158009196467230389533899890851006528090050522906011153498033222956158672723707907257714705583049899745281880159742930462407210253913026848530560434555358517299611598976565273384062477752356255616769042063538136464391192564461622620597597289680559072441258849273363948484079956269966952817554008406186119637405479064198990931538123604380203965866762991868385358976989961040834723059971187568665423755891096624138224938401569076554790597365138238703196665072662887891889343632161235572997020935533250702544715631167556672472047232940045675961149949606109799019712887764036140492605237936163496217147267611834004584406729912967649160516842288633037127663717094960237629385339089495897904238378347104119566537876165566492167097451896035123915844780856347482136693531763361864535338703704908936187239746103389945043011811612470990480940200231182393969599326724877117968596328906832877690505671274493968772323451348275700443698432360246432736453399358290980568107295801728827943048616299265454680206087979138376786960445424946162085694864406222959540570656399455409476572728444550855628602858594382043004203417540243179486102981518631034263720929757149840871592735436505324835931414781792359958313048587597820097760762297110020959602715919072522717292553551382558032748638055968829775144266087314127494142251109732787410205779063892204886500086957857198869736258861187496343382834952082820003383202763467844869771048381266009807635599402109107683172313622771248402298415779769338346546652821743625104256989450031385418463251535355590411051845389919719286995425640712419938015762716288305389874152664721378286116343154772484548880140746575043231441680180416581149285916345084275290467169489744449990605591387744325256125714981199732819887524135428097683805443139906449564132620888693314144606238596297626218157672722557160257630495935630960220756654549896824419018591493591658017726660262412275702326687820736519724605343265570075925765289198193555625578391854215871989109953805540116571925440594276512227198796522459786472707256240520173307956088298750607249915036441331613548252647610975964343558225224785930220590418892712346807675647635410249003220742338592521029706744445201805977846484786289063165588959648415726495129718563220699140853205719518942148613229067049426775809844660151629780200657248623668638999988360657273589894309336203921273725868563094661671254671223068900071384566847976127364541116100647943756795085149176626848853583200756005990794487204916697310810041758389687924509436754083846475224874313504012438959289873037847064228208837693612924453588253854119288308400633185809265436902843539886083681205818086471342819065384259916202243325950865842890350524307817075831500188009219769534262078561372688935946088836261550570578870239421220749648050314670425169630435507196494147424720128419117388998006944736199852391324981158194266899059315975355161069088044424599360383578103730084144870226927594230102825869699793504888365544731094410508009969499487490807297342289117763973273124254410457200201083061972812999447962260165052261622176770472061941094860420309631875720445674159657418098491007344824543310701896749440325011366918119510584931763039338497389054036851877308154848224362242214081664617099835416778632930495777068871258048626464411457300315166132995459738880795253908423433700392065752466556243289703958682207715756128578853426537457586515707442892695613185580436091180096814629491213446619918064908050097520934762370750399308616624433936250790177044476854248908023510419045842297790353782243157276574778413036688883870811821761453027593196032818826415798201928406528713651352850020251501008822871679885330861995969885814774229420132402559202776845296033721073585571511826863549681754946575977050892984371453746385925686229410413906930062832901831037121672763646972397679633342632337210201014962440408275375594766234239413448198134294067154364053325537404586050843330311996254505629717327751516773215207729029834462715734783980235174474310129100884520295730748428101803590127145182169319668189669375052634031858186557029470278547503597687157643764775761847427781023885560875948002048681144097023625049622953105291804603295118778378460939846478016001105432548187301022058231646471791567796358021886796379662497719883914791283837643945448645690875765163558768137620859053844559438740003722971788432326966249194841648428963746813512395967984054862218751027530882354377550367134055601636175029255226535797951342707859061378932819764102438826265076106575771872551219444925905971930156555174993473243102332926836262073820531501162483598893382280158951343129214216018071599028577835190799409517518491999763218696130936442084780991211463526996763235597260801741133045314574487909496502919953610360374754737632728504043713735237776049324221101256470194683132776856951108807270504052413279551426606818716862582100481916995182749508935526794155730943487449403392979832218227055848423844983670692290743557527878445726092806815107967110061849754693548626687492230646694468811691361412087278706039866789825378060453624385860870697820209035226852996864509260039099440982884081327851236096165435202313714247545132377604575278474682622586309990187888621625419407364883068345190028065315383364553780251880899438827200810042734502584485231583693128937465981073144102701488653503072061487844284280653427363785303009601765822954158395025006292570530687877096307805581390065907207599617775089213802169983340868392409948391133151895122533538186350574230725378889381543183310702707234474472686750614820843650782074736456829045956744974996680863880811403133489980855819413920828050503909708213025692405372225000582622737705003264806414373883737777868104461850116805141501086762723817355121618971171515276279879668784283817636025516241345678681507252248549214121132112630167694439064205267394898679243638739574301752407557210803767919816736786061477444940230871703794882927386828139436966562278138616696527379535028240348476036845352120861385677571114568825834786394914077232644622517159656225543510765882691721304287847668212421517700237206611145239732813119949922562405018630737082611508575931598889639810599572198966298486495917534683624061156779570122106425865665470713633237638903426933956294556626606432285135012571383433060489127559184056519391141559383538097158738473480701195705951271272132030222082981048070895526925475707022851809287646481042549430212389010765922334354240834794133499031984325641976248733268101633724936033925443804939851282841303022054343914903680169576961990264162857617567882009424709096340782538318254092968634528581109505601104397118652375880688241599775792834498163603111314707739898573185439299483833862508292866323782444693589556067468998272216511843953564508212478172348090857316236415994832102672729346596177035310965746931876083652160735591447841658118507523000209956512667400919492324121409777406090509960657586976251101391515812561794675694815317444238414702807476776904926544565612445789794083966950491941451049131376730955377654819436641833423091120885903264978481248894398114489079014439569700224368967586694322532557942147008876391133593530979503684133972743787562364579611626266741465189409016094160233959544875536790723633559574661196855505225584351416963368032268173414402192630373382341820173890493569071750268702440574312565407826437118458888656729747409411821328735790837641579213350512272868642014266915660205605424077149716619091502039772806014959659089280242235262611867269284610005466447585161199525988243068905210996561656204333813014394050069404725923085475014467069197046692585294392922033687775679786678626181560181147542004056442731555033731916095685182767208847304142181698474023510966424865929083477946140563667472368542327340402464586346215721520919291856100246669487485335303482725761654125333243539992362345875550995343160407826989727955316277353327641539527359599728434841223757778114486250369342916185571874078887098018311222743840028328191335224674297715662740754005104087547082991405412264599662392818493576568996164445197444019033356032644761005662292152219531046515702292959729166348991999295171199409684462019577704728317517581729570854769525913391079178154452776892191802997176979515354016932330918898180386510824101051584589440278239434602509201851634766378501189069562491043000782979463925777294797921822982720045563438807673302133684600513445664292258668056886693482683709644035059215624158433763221909710747873869710027980353225733260837227593654340307296536029915870361976942632691328356487879447959197900524915915105328169231897520939866773886538797726460289389908384378773471359909707521346882285786591217432884027131495467000438243495800902311920209299304613186399095401216025894265532669521974449472460309228361957666189576488168955222279290128630470127161819144477659728479049506763950662210272949529379968744136999208227961355811871595428727852470080610563772653196156624943708645663145829465931070831979791481383439248626804864893379303861884911330293227376617833408175096761579106421036154836202117070640468788776417133132007070607961629498689194418712487884699584914629106386699466674531284624761080640263617656432657511248523653940278598791743058767974332757874535887492279118247397899588585127219518334368560298347300850754444921106485078721791505381571675247062026763772512768713711603834321594536631966043827717555998304887813847427685070365329983513397184029300774997714244239878225268422071001799353466852751405163702160482625771533869780038752539746370302662637569572440544120864946380236479375667594909984427674495060333674073032552738637586974952063342254198519930478166319164889045087409066225641340879175806737567509695519049898280092663539710012835552060832398266280255168537020533448838756384840714834494626251443777727012919585789470763112168578891193506138366508418421609708086311763458174263458440115178235090146821826634815374222008061284527455878587866158795936365841101783469860826232843857251646012215141681279877805375444990031151370063949172292147639778402980457834254703024876469231035120575115828992433357232514314719612316574773435511689840112474071111918334762986136630838145247947882874665791842911593484544102491909809592122744333154474290575953067056104840084518821294680052296565695906908103370737880908945320638432043547455912371086959779739872446005864450949932671218933144152529931421552974259099857440958070320442980015538858123046191279971811176534174977806219180000317558068283430032855040015416023597305140977024556172012649929041728612042007988494659320013532215898049121194183283081781996507236883550114770124521304714430728246241496180396842335323417885222654902383931198585316909345664813980233748279908378915246615514229161030418329686590431371789288489447095134966384625344866248916509162700486356911786233284756339734879594376895479509480154938130386265946587403204877303397068740071061612899641063449012932286035701730190933666497933711341202218234922300466164748911550912748952721991150571370913987578279681022079165619002005395726126939909087682132357435649030227694406269986039869568129029571388320628397582340477527602179825617728697005740255625119562927343904275730247617337397009695603665721547041226572723201641747806881277575509919750997461423743837328009353083341495186816682123881123574111393252480591687433530376204357246410406863985268045975225571758740439129886325683557272929271338885894652234825106977430846246052024587805573782649806522774736050583803334946530845089990331768884203603525702946307720290092624878604378983915129760962032665155566061772783489359184729823104651186909601810165129218705019501615651064217192690791462465231219117220435348510493129699844882416113477240964213269694155948661750917091836614510621320779732058803692035346472314845897374271541236189495466027941045344119079330900317360340930931078439221013151949270526249436360844855801725234665539798746017892651608649906524390541960705619811106609405873989214882987570122297449545742405144028783066803159196561387596308615071698863847768018767291140625596806581463648403258193082807693227878868022524339742935921705508067868994202337264334008402554257130845916493499103680429844398248395605526435889963477903063704887006115969180696138751979740225796659930156857023928618597770247719010664879188260113196615027337050285889389113761402690503087087250179390328794390904742729241775061180812247038763292214742454086721133543796201845295524098726576212946566479771164597101781646608838992417893585248395889852844120662480418717986615579133865615028292466939503162057714916695919964936920127851942930188107106224356022770415874046744030989690957823343113341755615836925119248034508813113270352131596478672937591625469365915381004742036671336299571669568702932661296831048250859601564668456928585227127409787985221321343405924985616238400408465519623121028158201102925304038574845145626177872637312944286686019993179505626081389427184427890595460368795571890673510756218715881335355227172844149792469161226664027450740303390915397116857509251502510566506237122545948978412903071472915227247507023151669950165254729814428088699096224169118030508171100514028612459211175559349391343653517700042638844182763337980168322023352165442129442949663773191446559129248491208477844688621060284130250213070769500355694907404199684999243991965587682013614205713867522762751400183296885020509284983704142721268648926670588875653215855222424838900325259995423668321753354997462680373431666988687759388797584413739845734363346421484100029510166096187240121118700488811325538562816084829809336545466389366807760688488257842334400089636488019495457256858033175951989527418648833974501987738584782323486511895818159864678606821356708360603861494022165612922049776783641386905252192888322459022477741996597645664899398512096570763501822749596160328824322101315818866307517180658183383804133837661403706859710392538827106463497865664759212391600070936171337990533712093678466409260469036533469511676851000315105088737351171329039425493235853518778201876819582571261332590288653016338593380840342445247134228282016955919267573836559003192676233435180769204993222327368578536469734016763183257870435282929259443446507736176383984097392597880135416553213261099036689594944396889715302255505627027344948114610034277932476694312020297119534470297277404424710100142335546654138643195805640364969970896325719693975468876318318780539022644884294095041526762844007839384144459900012772085638462950029500326790197286203191566174816411678239224342968385977197734719950920927370511265458223103787361662607214103512223154208490934241132942431418344721298053391510030323615483244176598538988617862403184232711521005090263661833328675940392366548849221901063653586191061802005666721526945579535013639918188021656096992742630029270186447963427502942208037437925029043352503227828643589870125845334565733335520788704243965218358842878441561206229887168217077503705986349543354874117841520641800314337615020455447506316848799864983505020947007943094556663388980802337482490403284735232051416377003485543549701548125782356587840357115851105125360917264027755461022138531841129460855541070585634968149979339235110529040399506159298854761859482957264826527427270113163575486109604739855293412820161787343840298429982607426804419822171811709003659615381234155509949653750946993722548903684851179407306658489843730540832164659953016191832555500647052529641580857163654407448800588623706660049191711491235162522604026719381323021204645557282177033362994079029716198883545268159406997072295382654421444186791816391533566403098535532337216261258346461082709644035898957075655177522644894840871458661091076423717819493810162705889800264374156046243346385831107130958529170748937101261110664726909732281111319118289146070317039468315680304310837701327309596133716458488618781880662401938038694017688864811510974157191363189548654013582503652662922093241976510139280689203599898216084826682875430721662850462241809462928334995880597436399581693421783473719766569245979507712695065535549894681044437233979930198557509870764967422468440861152726388895533101537644904496915789335579484199842742004113451972696179401801488211820581395395798815101689791119554774314198592843341206909329957175434070062267096550600753415438846573022779448657156927038116434373768129477856547119213833254406711958359461742869869821864445334530808174818293047944673220671958601004364350426986147259867572550118196581416916813316917885801779633807123114975106175580374527335198397272549944796579758762574273526134196669813988882206200395893418531312801637594929599732317811011066363355704008176985948720522375378613153077083217909990666119945629793019791058212534336013623306047842592570274008337221156034034149255904603296066189753994567285981355389696410646116194859708115811903873065484508987670954312837338659802500589608851649032012757325655903068504182395376326736464325758879713548198058767310800345364408392024856108211652567855741660333528201611856211769316443052186686425201513637399456933488160291290264913005234014706030131033773612504434339591105912844516770433701207974910061741555392667320630778712285219565701919850717505245698939887034719324983792283392905413666659630477999087575783917996988785748846362873751647273607148943553635376989731752122671533276589031852994033832187342741332242798803992572686325555294932315913666290959982342034039883103720599792247472208472730330170893453469082476359182559006005181740829482351806065047846093226468827942838599002599442045979745759670259956596065969321630432667626141192468429118403362346553531979990028373669637384751586664831998760118211379909164733230637002012704182600761781023421161107053730778869073480256057619386280179888097933666034586274744826456052707076420379645017859773095895582882400657374992242948298114785163071574906680038747135880975971790296185981725693293905470973378159096092121303340731917318415198586431845225011717756410745679979186836956807745284586635595951333596448758151038800873809735805392363015973827369786490437107169163112642810399113073475545829386859961078870491783407481531948571049031825761517923703266370309854768445616751114712738843574830289087829189662786813149129313368173299714760011791385131783007635520503459793644245198053141149530111034942471128047854453504856200501046176664499051360960311509839044478480088067576214525441971384337967359456497053620606412822171071084076437720993835486521609779689032272095357464749248623160930615215338205088409034880064998426843948271937333780057242664757544873358019788317846071301207343240512831918535148838305177339205629752416685597446043998309574622180975711465626495392859596753639834124252882260989493603009904432276578776228291670527669900131560805268486278092804824212406769044443109266473900977186514059274804604123339438608191595245448840668774887521255971722255403199754253466754592861672528821084411439633314040293649218092985508352552200722632383401740600083460214807265294427630246074274717194756911325295024168861163894589045053136464056325363255059670551286600287917110517878063564142416337366650759392304505497773970704752617221455405807685208337619783839040722626747398811146886691665993429338149511273948402173499098946589215805199679605663437973460292821698040670210911707333825086018867291651096967657144998795151754934590359024209875248001971458743697291718435178348274528208725518818342776344293323222762084702484600140427613155050985559314164001679259535718037649017540409558095467986774691853349603749291408539895662157920675709003688039188118006475654910557185210516192228485579041160359284016019048278912579860805277581441517724583022202793493672453391413650141332612644915737902977130228969752869135247424949859702082590662870924316058236998491364381877262046967976749497745725338666929517430820119457473422865633635417587588369996520334816772159681334934617558959791527326550597143907491848791192451768792276250381912099504559019554474364763487686304546347170861026627108382608220953697520943874732187196327309138918472975982403944315945111351732306599286914494113093869893163232740642930372512672254920025384184195106493126972529122055875784864504466086500212358922984687789340204944956449552384600254953646766083815201222815266196909859466822414376330997538653506020473023650919089571619466730909481207485300724938978029542240655599278340049858426329532072456877919193148958095209663100968548412307375551692662429776564119995365991848815558206807609998308410593394325085736761979298389546028554559961293511893429936327100228982197575894149414514030374408515769809712080576293464343682559623226954665350168129121015049437892601498165605183997000735653738159980613169890308654909369175715006984256626129029054925829621193529775546778526946996909994208331882818415586954176841281450252183851388096746596843428596005782562678443424276250081967072368619683201536054446247816193228715798928745356509100575935302222086753380306577777683840797664657386313270390751137118311211882895024972885461238365193271141535198264550148312216212362774539854268424131793038177407669368488866141343962652829570571057011152600921593136205438837989301571114645113012378690537688722312956279096238980722602858044280121356218731910264804028101014935999449273915094593790970379989817914044122677002012566339871536499945587050691209870607708621278278334772331643055448922788816182466652748694761778411541025295458556527281845996200318983105421605302845093875722969325855010061188587830531931021896372548378250526890156108999361656936820815372198866582872282089680195850680549921458642481029032490095178558667144970073333617242527623925470199352476171254139312934982857296639600181982318314235610329576405791041174031147465844353295150145078227626512301228175132805589422176545512677488043829460194011601717392665310361888878116688895091278644457244772886186530621591616833699429122574811621371068731340813618912904656588057688915947736566661050596602888865684991411443307970378761259640937914721367431590544057082545396176832004537830743582303104104337338334248318893255685570989129269169129659713857803037393241871696499294720024223338117159118780251148801714891403452091518112048676836811325771194125028785657540910398794369688139293542431447014401250798361676120892137121459025077088778853567224075309364061205054288160841286880166902362631008840920253372601939585501915005510415264144063670725412217137556862885362786429176184012470052193961876658856104173864779894654856901575262455789680165476704954718824211216423595865231389825632709906490324502039385523301713609057234394521252900034908745117095975711500577364145515762920137128853874345733154845061113871829690916291844395788382222899976269913551803835776743826684828300952545448293726201813096124389810968421426324305211826866710597443224410194791026140431306727607044233810621278850848983535329015288983214884354948082974642578344682917651710123975350613162461541744374006053094635745714561485981761750032169605267938192075971272863322118487859437918168787400339509663648959335609336806536441037449102640057531733564196326852260803406897735820320639930277627377235064859058622437142950799455854829803025708168026391104637656239035940814352228067437927906623376711396906279504039117537957920118866293602644961475001147705182831467190805022678236641649432135873812608097028588389301262897481680191017662111971973923798921102867737399124510947954945648606248549717647808400903763805543715199539843626953821826370503468850939449367887392751208740713980411274710595808703512356257142799928333862560948564982341726395800008194685064947925444593663486148754137670933712561539935327466740041518516268525522873815451140447896082410406248771328799198949261533336379232803005158798168963878303525275864341484107540238920813839641017321692061490642616479857201768331402504217258277539181649775470659131091587855533012538987689602656000329146496168901949933659017339220102185446719497231114062769663864697346179330868656330363148510337160908373714014551616645946531138768429842912861135658350822184075704133252983514667403828977297858175190661052489348728829561313141161674389587594769172040735276138632960104467619224483539261992824915687746905822701788032349869068036550001628035654979757359535335746595663202350752348848120580049872010381678843727553777941859316835590669102134605269899686515908435846794938865428191563796284362706235524819560128404238115363888952814122800838883364963234158429138621493125791622847351095600569780544731845249607187920363867485201086727988638164221116192373136206141637638557269196966318129261165324155527646958139907822500990582537940824337802027979584743920939596322783980191398514807360929117069153073938496748847277825675710411842497065357493117841842331513877135300456291070182125723246748798115150384275746699837982616747909709118306107298667570365810264523015344705970106554088645067025722544788495210705806980678515090970544687229740877432985767654818757658561755806980366529699995570082990102607466697884660685537165233209064270767209338995425115847698645502186152755832495548286636744311158854238181222416447060645060175083302314207249313910723190998085634935172246701366194474144848954823573598942258260271119387490570793717501326119659421503812398528955148155026630346218181083901479635696997618318634541306001341491519004103662038932679509757373320021819947672757909263306071812201179112349370483372903495761382187011134596069106982266730158293841280282252578228142218607710753541683451851183027242414282060429391294302874758058487912600388495160488321831621996394518817978166158522068918070017708753456974079730916918882185322692428139081246079718790943521395251072185499633937059517169073765048322321272200187778102660326365883928435924073832311837864923312214208473807163060918824672162555241907653672894587047944465188268521370902333711884778085224065004324226536756439103272052087829257522023708888194168720416524523016489684155367744183371498775623021977604006068221664122358751271750303613600416958159333662326238956560083616210360930919625098919941418556625709792690594494879425476603970528308218948892188557403495021292586508900238464196531041150702688790216883151930562483038911725884552194516310189615964069030577213767262304929740388613082784761715277047812260966535650392593141790737595805851532017434459195463583617657769023404778621865670907020836779281729359901358516820146913692798724055347414817535032221294058465898595084084157699953739357879244519571463814159481290539100527697073304182608101922791759970484042511522501594294477660229942994144125026798105842261534047134583873260750321626110073481390101594230136751843804281433865146936424909210741643094121210400622494080785708756095517740046662479933685242016635728500537906712269820387828065012896489512215731347272891612114526246903204642030044223250361168400082150089344302367694786173445496955670139728185554109194220315365035249497143018447972536062686806565647923123518453588524271514649340992256939371679408905197657501672189753865290750480879667147306071840779877831882739490610156294803228539528276131645642877499567167181743186080682582946873106713814686130491662637010197021153350135897067702714049979293273400554187751290259720847074026161041004169692622699171625987870239240615538532464829431172976360204137088469895566710805905249018252314684561131036780609628979957045609909836712314073701914328864301081297103088663218073661356133361883314848870977954096838622218268747029468874333983439262851195877508416571602816085863722625305689171688973499489982290511786437836951659710891157875089000553862630891257939776681670380592953336764143149737247689617911803939198797895095002910486478148270757705026242422972783702261716482032198184948957436866986473413466827775911783733209358257322986848293175938649744426157127658352481409120387190848669009446822689724073815132205668081477275864193133953464279218248048895900647644532975842059443501332552941132800327091183402301073266385273401870059601395960384640483200131460297442642898978021136990925616919549484094785499493352223507318644196721093455407468445202685820396616753198751388909180553197520244498740139495682973787265371112698603865007236644012128727229672612275730613088886845277120798123067517124770407965052856926660351932906786804711643768168067311056971951224176379539016351228704578736917031328591929561446971605223873010392881778393695692684231509212621901321363587062158267164294921474836196027114585578226052700875997324408038864460394483183153774099501225715772455815429770820584820258316852222957282900967277280341450794279011746943472926483185722888713080875432817646173788123294842611520047028555718185516814957018672646287425674679083162290860357428029042829682105525102188014349989274794911191934820079509053505205901972086261611709880449175124199884783567017679019746201080049754429677298900589844521366869322903776219438425078163687329643767873423087753504286420001992601038170703795603707691792881949412402750738068152509966462551150607080010811687966884671658767075321002787542806518214253485622461145799198838629791062538883082089118927975097104906754844935791339560005985150123634704703989077885474580614153465911347217851615906863225327860770806939296732569836850312682054539249062517804604337070693653809505704676517637036092468515076556095501458180665371651286250861767457862075196687814631434047346375125047751009352836124100889746474917648126292840225131271241332905949694008295235754414284719386968598117790946249023309704174771597509303064894120142083070672944527793048987890390472831684672800174721971418485976724141477772451575369871954365832401971699122346486969440579092575896477302103220187749721785788154792449224692302660890549869243688983051163707866941035278559281447431665849100081837448381894404958224725779571550020557495274896830852655835265856838823689072978421236512510145773677051773818046046432399067013480413892646854993365787828098811479444691027041873137432164167705194838380278703494644285746684052924415839596666373256568143080794674995369288638744985717283705622547241890845060980225151017114205070624380106657868384719049138786230140803435124104123358318307136594628248638056180960713823296162996530587325836009369360361964359634082435224081021702662230310332946715537107062855211594787061992472409549941749968560347382611817578983213743600176800834303301729103838376861223283445711331612353160355022829614321261447360664383605269486961170553734358378786782860088640032709421364562397454420049775363519322672702342737897204078538827123432396453945092083128768027837800410666733003315719731993391451309870476258171274700057137836266113189779946170803966508100351726443306625507958496304490843940531799942714711334769272986487327065002171686049819305107352986915895119261259821912264492404519682077329336492385351243979222156642821425540587540428765319696457813298951356554647789938234152773484860827831421007039184150901560506938972052288193194233831740488280765523702325645892286037743321680132038368172196623656952728894345746085822551185152916060967216637659584538736932692452910535086896119461037377326276708287346292672979501384295053799263766219314126043269651232111130954541521317520570850124983036272080351828020783470159529924385933433251480463842061581271688347934774085623606958789812812556336678069977671654020296053086895734238483692689157396968034126889012329423874713426269090388116459898909265566864569755623840417617973447087583454100503795694625373809933921199464214607440537199527219359980977344943123625318802795864547551066430496524538366298291261223130767396552208193428222110626845135393875098195997746992750360555556975997089286824832705404484468375571204396551488977421205567277010522955826965405855825208379729053065460710314516746799102249487454550890583099513654776037874731809536558521379488651126354016550943998390738830171803943935133048130038648001888862474253921474088126531874723123451357282236630880926589111790188799842977569205914987235930277401984020785743588343176331200829691034529170970884577615286786537669620224883018694066902909099607833557621067986643981473225315558113247282566771050538664652359182458621729862363928745186279868808260119609305980001495092563562524207833591796074711487752217302605763038846020920751294376811951481512819254165935477922165661371286950765346257628745037230522920338822374186267508672497888146168441262191252461224957766435433463274815151474019969505185537312585365265761811141098307661496808995219770459614317283927578583169752310358489972406075853168070119871615744803828964197728596965300797714404389034317953604750386272524765553852057474256801753791795126491995914531576046056857845754768471077330694294702239029828647965139743091274107990982462081945704699489625520499036073743356330123956265977815699354013139519386001640825616186193241370181968825370685789207207921214270120294007994839850239043259077177712137438510582115230543538819364069437294838781025402336440428050734560894087539542896053562032404886574811042952806891353521267525133799083279031369158138785053241290275718595665767083123083544464775190844510325851427312639540587967842435053409670017743999064019666708392565362793915974519850433943069082637344558808369915876771906946766732341505241768619418070806853720125434687819122929412552180486617527312548914788283932504515060690012073385551135476087543741749152641988377259300452291090203859831340318739149563926927856352961996164209558485469089024409709808415181854040651809369340699202978850545613545089679239440780068636834363098164752798614076999577393747616471838698359773739294944122533425761077099958525769462188366656940731721230650758232240448832439905569312764426963276987548000648442580120185024487010168605226138428504430230200827201518325720255791457988894433361751461082594434687780341117205648675831231433490976710018801902808464652819640437414223286896071623606994442784251095370828181081714579765028999701819086145318430578153129915517575675551487488429345174294191413692380161726433950667259148465944579266138660485562424519096668233197748535668013560047439606719199515018457654499752608823372645655434985348217038490616708535727295671525647132354901188315006159926395476192710351571362845633557267314958552823808611862278219150434182532132191446881765052282903717230489764581431806168388195192912990482883144419987603052823822993915440803008991641024604383984184897484693790872845618803323192887556519088210918994067602845067493426475389834443362203396319987867940721542052270855118287972646221261987328641595089229958939135269452797293737288482403212410889806494043820486185333010884288011298809547858496981740912013535024728508017361064877815529998323255325040346188474258203376453823967339390789593980762867649396673547716966874252946250379390326952666564897811608691452260244534496468723412205217912183220149001327235015753736059059326554494276977469154360445237192471008802955423150587053790033232954514639433400370203342093014254440198643188382560667209207880905126128689747810869596744215633403575691664948252137542835698044865737493413912404729546016904835554868718474022677656712794872793929195600128726581737300960555335996905046093431668461390843854151426738660802578274644378658005577332200638628452545442395917952092833925614011106103380647350872437705518549290358761573316734215186362190951418310128852234899223521942513363944626088689252338320507452146380343244035431213800067678060983850486266463159091392566672361367748212387113443177316716546203915908408865295549836701779360069088701247540559432574098937226859625773060069649556999923351735397831904591053038982349509214090108530738082539735000410982290880173741790121471167465593325520254743175915678121715380906693386676516562830036544709655232026618693822895868119492012975250453725713357714781096344502632045930612508163161268245605121330441908018888194883786204585213958204380546069586679569741019179336117783818722865978602384397034008506115320888353846509220876571114467542634996370412460141885602462469765161294491603291549618094788076656139569123742165566754618093386542544953178262267208613531076220834417228620284523062523835440878990912254709933984890335528160909345103443852694518374992256238800924901530045141735595371712521795734770503858359210141986095970109215008529669234574301211154691461955411916923080576312952112053238503068411687989071432207411544187621961081485203220697337438331662227944971254224329861592492685362549550995789557770161577018224375178359819579564440701736212475448683491980820144654504250130964593086224855274427392123785760933583540434543850625217973985236522687997714121450882200403436164255322923397049310046504546719867627191399574098573712048690289082680228576295736472428725615390423496162097346306032599134023039765785803674323930523761417859323630646428614241549247258335692758415554653842469886736856355432015954411897028349702060645048436625683027140737483067999622237054657435700738370523580124882152319924960340072405821104459856410670383262736914119794540272277591794007731436750306335431673907253239736963803680200412797570248205027579706083539893328583943967219645310753651255018171535254601646119751554506772607500019866702586829942503214234333748624564610502544052861144990575192848543398132323689889453011979684683624620872175965570543099587605542811641557930941265109703778516853966091577322750642701521778469594480000786674536711840266854337000142900298628338083845428214920317301938624054347072187167322957781792704983103841907714274556847209706195094711199059954210123827685812706286394799723668975674399081692449338280555737766661668591145288876724582050713323417097857029839124554703219824425595504603375574721531977933981516277078242363138449128636713156012495571167549672496216702841050662528429949446882342372053961636774948856537994035047249286807570627958552002964084565141023111865551280704374131798162829357597634347627385835821774594439370925957840142112885100536444587839007558793004597896756678387803604425046181214396567447322496327760403676182036664710547871799655344684732932126341590830538728027606802018786227607561275057281594867616072525246978972394101534397027654890358384292989365577989730921831763122712735714031787383295466489575255429158378292041194889164684984156967128456173864234017466921251795173947866371333169598193314782056976964838853704685227369029756701830631531994148592878795477062393464352884890332792010072567547810159588760972286610283857249511880023777434604816779599003479335417475269298116504395289826758123664624850143061622065329697834578321000622173720345680334635095702048541706209935216515772603900671700192179395648686010632525379980429846074595075663199366988780510835737400080221582140239897869526454499210323677738547867209162305483216355486054394181409232110878904922398222593850411470303331339999806907409451469529975068798086862708641649193327308594510087071144936071811120111289778692155664774614913665926992946558069331756342349235856118292446772099545716124811314957445185939559876135755752044779284074965462876363603818557347262737121168191727936269907023111652363101059951899180927214590761822071571343921811038986832610648020734606842387969760413888755773428040990104168089711733547447882536501657401145161221003672490254199482092436760544468830242623216501621781417332908831986011089035427332322205734704424226652667894417512964101580277903198863585254876981651864762261677915470188395012830790802704355685485573691215443975869296218089441408901588565793328216030793561723937707516707991113181701040994967970596421269354803803870067240392991757671536384690045645757445302445606735745602779652106983945010354887952281975327080518343219326220032183213696356138702757455262414937583538498010354041584181590978474019931173643487903368122671835490646552051829992510412179763973232494958012545813395215564558850967687988502707958983228995060982152423079734983743278187701056817994129315468797051329142096002131510823451329912571122419554747762789830340766322369560461678202753216979465152607182800518396658829764730143000630045088869021758833248921330318009179777662055243671021042277468722693744273192793781005540326492705699433197890607794872784883495030799954630943842648055130512253919390969076693850730885008547845185510499734937458615973907408170205741299206723030769362418480232917225676538773018430785729269658744796528445154224125846266529810000813070050497986402041990839751889239943783174507529726885570708620655083468363905347905703294451606356402270862328963664051858898967913702598184386703598017538836628269437754036483780760432059761175855280543940907822333271243807956203986698036314967353264829965847606494556002826197513184212970945547275183353762340642156644084058720183770419958710984392180349597442778962706859441340838385033383872363566110405332498752515945578535751630791745631131310290936349836308556569638556416630163246774248942519600374773550937625815271502766182078176812215651863665743165785287604420785498066462852219647443664759382261039551626057920156372954559380479792671367600894745293489632231400264699689009201880460877661260205298947872794709140668518612583038628449606899312025384534943621507331571827593434984524310217124132395530732791288085630610177356069641949098622861351101985684100699220880726340131287472075695354178729788465703617121995041244683139312047603777692095320155808201024116244594102315539045588712327567169133274099571652089039828093528435109000710781236333085592202485230087455633732982098806823329054209958545539876527424980610089529078667293367481287948876828587853981877307850310850330380317167257565527165359920818631202028209932793735222490357167199109847165925472040410406603398420189938386839308430760149436085123504601016288817437552589928217178679036816000077055987499398424877452481595302996796460609799006590808519915816980734081203241116206385081287175304482113864140591523527108990004412472591192675109573389569287128736199818063722819780100799011986854396447717274427009591442418837718982285504225292581635871653804318478539474606849375883561510493298631134563094807811120287699489719949244614723122134048059235441344929799191409776570653277447778229788713865165991372009914108325478299876588411100971290430939006589904858044498189541531519254342242419463383496673628150002468759882288339682279318313068937169931639866380311326844705773426842706513351475839489114622736521128646959140165129578540526068831575264432926710452143580812048775948958808512614207808976748383375380067811371825390067940504015763030213356167372919971440282991665619158331183485483051947797167979017429068066225542320586343022005187009614542575280859244537299690708081166064806859385358501411859346090982266994507436149353083546743944965927113133838302710430581663466188989566275598922027267711167356889650628835134666255701087015253567372080432203128645475661176006357423938210964691726206239526362143239484555086741069008936252948842107536462445311113397223632211463381274856988753232177557897712356881507692041384779862378096319675873121323755204443013150852429375345961759495591305804712283102410123433956224084869546501270091756995136550468136084140042939351784191758899718267818672074726546328731821074626874041642640874552204203512894903057259261888700364032003313675485200106901579460817053264404410493840069628912076277740828077928675200161834784652418478559492243541878190964016874170421673035404740804442648386248026816368144033959341504800676949381081454913630816311675059823849093484213502191784352034974372211488855099090855839137485870100198271703931106587856987516027807844160017821001575074205688439611361969539777328722816636909462088998908900187552292705526855904202277578386225415142272684680098103649446259144025400098158493589183328480575928899833038950308168706017090875497752626597605555114315377290696416481712502955803570324543902891600801153173888941569486014226456476320053864674054106960272924037536719286665999415986777846002186326854305103185508475268276013431780017767790515830995850515275372057460135303270075442754898580397315365651511964975652876556437164547254137220565015109442409110312256417566483849112536925311119291843640350696767735719990430756496670813289539297304844803385555075985125183277501713983282578054863747986271838433865449610540202097696127599564433955740264237245501782678233487220386911286677948883255886546188756281788915423590928508129347061915624179840332743862038798086859278162908032272053315244309031667619047555472784844019225942018840025135348460854482752519487219070390702220236404931245925554010563225855700545928999216014948682441475258594735873518086676663062479742872936409045316515006443089558702325429976122388501102890350399304732991410380083389221139250080291719162657636604509483827494234786392124210500047967510113764118635715918432673979075957258764195401274124791482961174996552282091729506932344520702731461041701764256925440444736748526456815613504001105711423624419938829684467595134116074982498918547014527551178832943622930366953839985847698946786424155559042568950663164601524515150136248434596567106339276905546160567860520823668788748585930226137494484514388140332566214292177585137516367898409767783532488849844879523201183313778108100393258687031075482886675055949729092802871378361789176725389815136071800444962239409360048301652264554911742342270859422767622481376014022297474786532009559442208853271799354204060165062110607720938206683542359707618214873813973461244728168184879269790280205688212777922247546824907425718929521194219897447873207299016733466778713971860262502385595913003507199316722001608954686997597904455948758209851072945619246501865357801887201467404718766937933001174491340027676346454758804957401724410767247571788681340861639948868032339033565779592843813632056731939438400139788720404390284251536655407534436364750795275703992958954771073418847832565105336449052117265475903218239236749288926818042752942493029578648346072539260166360188037485478827314350548238710765952871000931574715470827529167722055366023599523378086638059157946393318540622144412289849130524434577975029670380998439144815918527756160767974373259873753594362235287746146977567350730249568320865773341396195400840337236159887222076249981209894365061396620338361499182375751693580053648996254002487286259168511096725380798858159522105520506716602273918437637899110108427792290972665247302481621230067125006888494339301612631285708540069336304952256646631596897736896542035644205555498242725943245087180932786335215036812630727916377567391983123049173658609368008060123826624952163919774776928746611182163026597207585622778149335607286870738957996346832946940982165251775051686597998913702816862579634066486589792428679501701754095963017332107512020931655508572552523361443247981357500309880479803621244483273315017844968045918572588723420071684125088075625279270994677281943913761036124374139829422520446466688849652662843143899191406386017530425804349549456577406214509291522493540985700004763190840117821332220600678510485283703948159468243829485887522956951586891641413403367350776498577470886663832574769285797680021093375698392919817422168422315023706566927434674926514609366289834788794281081914636951988012762631400125314017398016851533352061243665432721264521690572576122475002141434249553037250008132077145859300971865181287292853342430673677365596634441604209852629359938009349979243417022037535689195014579522241119176118640969981863790001736094134337233338315299135830949787369747480457864997289449964352635311493501917958771350540383760480477413758388709454994834942757778776093231481155784785313843791686678052765506962606830278471375690132875506761852706982166758528075554996965870078542527229725236097419150756218833696765017015477275378604349678047685437524601507737537764236159599529156604777382941747950211906913850038818203463369655077718648369628705861661493561204034778446502732248250999625114182560621310889390924558819462163237013110695098403346020259469757257484929872763056335194893990704929837623899894787265080030922382514342960065687675829368828430657963555183204300295322426845609492750900913632661105657054812321113896735187717386324723273069719453987417483171077570930943561649684516841498613018160232722638967269008081357773802450904049284624155483047855820737174637040569178206524230755068660530884288328469529724575805406574574129356037311441414605854453713382850522578957712664643382653290525082526475236726001098374549105427464287330703198479470534687698260295287887472806356424471306087258931986043063922986040067191329991159073075103903014455551520263514917355401298187276034892129736353402063439556499753433849867933247628538823368908522030257258073198368430341760345301886954083345576302782893896800482128570092934182093284993400939912129555350674429205210066762881067386518454435958748316470022245002186567089775719196497352362447169918217822993020925255748685031186383883551537012769575858277650080955475492409931582652675819437081380791194031797452981023216163101375028114776901798328204275004983855039865325128812254925075069935210167470046237052335484225956197408160145923734226355580776174952119006100897417440992396776278707476443555551326362951494053514661308770850653071797279061157489094907088895834610394043153037849921087195316803083307976414572118513423233003292333197762604691382429960187671491040561394529371728261739892246055129194814299010614367621468211658261862810442409212471238125154620133796020172808460281058824492933489716667145777465827203270278706547485491233585584664450080911650526533512169987518498089001002104418503288661033267694666318973822795743099528011566320044526092736633987062210363784508766564866471608356101576951230043336687947171633037780302618507438059250988002859116036816889917837402300550393365939098909638674768135496714257016101540675024887954600662610273569506463758790372126624519633375461400216778981793991712550546476393542832877040469524788642662451994678053257244522698266810054560277165354132823451996095247819111080886537131066884328807361104400892584740007466474205916300046687237730536801044872728603596701501813044119437011726016878773242881394931197649600101560843873893441103421512531102613055217018269678202244502163907430627399391528431131442186813112647669549166990015219651730660746608494711752940652699112381177786838891934029436064478020372818365568623031664781465843767255318436123298254768980377087362744582441822037019635864173992945508918016579704441729709863788493193097238906920680447549397655468202204043741857649209831887693855959659348868247781789992681900125579585841050497740326053017311841781474089554274597524640446615695436453892292872996530618852571169504480221288651343152043444195604338266703212413125336547422441107293499956665533921085803886205159640646820747749553614309103422357571153560013271842821740218412711834229045107298152594034282119190701853034354829759479642757341061409086016368398862409262261059757503930010859297022291561178986195058836503598731815758984085586766447529098868977164066466066798766574983466165433644708144764644498538216885075694899363647367775992316204645024458430290017425004471187365505321322210665520105938841604361096344671304009422283869143231683349322193624882947844009801475164366771136507811786668849557351050582235851075926481252728731707103515332922036589766086499013375329178133761359738583372235195930895675197229842337017615600306344262812788733180463157878616122770236673364486236973367728423932299471791051112181533308968992412029676698535562681956065593314296449972861827476211339342682843498043301482449068019903571563245256937075016871282900519326003598361406529802209526591797799531978453383683167565876402664043021950579142191163563398661290127180389488352960382000382710266764384352509254091914633422194934518912956954799255819983295258948241956532184487374825739073310997295224289906368550195014778616829283653241171113296505098265629676346247559354378014553732059157173097388485079870082947679217749825076470562718265670439043872152663587110526913143256564853291650177734135332359307489498351457209044141685093419541167933271033690203300495794701712836830670205763378999825310442190602168917527756631492597978933459328916654906772825658708139710788678927896531065894379894300877069061824154535105616148816343126653105284396614855787567451369418424932450574950936613740822099078703617755981178594029535964954618177206937077554853102821199951504587558516461933337046347995395913856806904373985930138642421746770581398417083860185763733566007521234087132609001725092001108152462355714422463747284224770918149833394197533168788012508277916516511770411349037166435014622873732139303009130739649771437246498214838535222691039284683824904623886801967013701886259864632049207483889374104099169560955108531678574200944638721293140088933369179265700103379586699571422729999672654055432949382125833687102545134130477178830582649610585123815135958075185208224101073699694760262672924394111318602690424348944605293111027961096873624336029314429716807468133224560818457423564371994625792435919611131379026460429561817263356463514445106728265535320095951883464800025847277848673538480894492934245713513757265065377612757431470334268066378794088655311489681154940017892288040831504210934229796727154541985069076281464357870980156059920368691977368287399342352576373092065453831394010318084417286971879122228377982450461314283550228930391091520437326285397527141402872657071004649186790086486178207379886693883774403356828666649597901173405547652698551444942390843003254074737224977387273282254962821907515537271612958310586300805088872217829480639149563185877620229644689199841330253315345635339759574264725256860106528225818280116540640268681471185697367393392822122953876936968702807147442862143496972733680124166049818402959601197540807694484201863227590070138913194858099577139088236356971970377798433301115698130204394075841382019513896307110129525219017633083159745268960449838333411513099184573488768491673794423664136813764391006608959372226181084240290020872684654373996897953536582518356183696335884272167382471247548668177029870559801341754610148523681629966073407503541203618825153135259163837987581162933613524999555962875580772299967085417678426234103673119909057237309339936240754602655284811348770481244098732763583035260424313743953140203314060446245590928904773914366100017311426375403340861178524683282053424810255720619365098539672975237045724247348047505045473873049780945897424751409400345287998311756250841788894303982331891570793353495130202442117194291446145070013427525333720065548136720417824611243851805097489046795834926629684547976782558289708751432476172982319503299079588948189400249416063933861922678517232517245879754506316334508219776209234358424590768040507717697176570206290825564145514178291305809689728612584656728074709720111950670933549104486680868039686638485212140535333206953211748319921908257019189717115292901335347411090081880447908245658231276743847935460839911851883531367917205236299494717262147330297194399683590434689280149634302774601303242297009961481319042994701127217935438723316470282762229244230220450605823780655655168926876448458561664641582691997374585058452342141196162928939749647840041145846153033333114208692564674458235021808767051123037355225155731786866699870151872040468661183150061679729201986288791234996474222442212370640756989756766053353579302480186867763408265549982376892199602364416887302134039324150019882915176801322054924087742928979595093537107153796503867836038349312586220740397570518011468788311732021517229792363617772367927467556634485290088352082406011407261291261921830776944282101290407032911544254015533220524326630668517040165281603593692467003389215870599654642180979821339059079663614690265614791484121310083047841754916341956807900189902717224019523909036551008771869070092073983097495037602550370272058447874912710989616040139024831858916382485752006920208638303139333304954270565297785513191776803644583874516290775680088250147144556049817472498971924608985914851525457310508103773686275725602488441586885310104255125092582133258675932598649551421658057842647424935026859754156364352617039511638426221522010588108949212687778516258478182365446584243940576055481107224974590988917919853272537009753670242616955041715193596745557060822927120955143760994582315826258870999313022123775864152154205126133788472017514927391317780150711191900396701181084245294426536808776884208214841072400999767218967550894186151171403331429917796739023393933388311668411921582857971352534338248767068102676545081587807981077535647250379769028669892038998336546777222059613487982643802128375890467146786661759188481800256634302264015421057547397567775975416189116690044592376476674977550558718474122001971908087164458587140499981811841892524721889293866982247185264679875429145612372111189113629091073190357611527613274722650010450564524314505976659337472558857439995976499175198343590046285219010553948511080981428139995097807900495888365157097540058213129132602527681960997351678108819069261837244006557832172771491298990538190153201690495810475213311310372839295687890446350870841383408921019517682899344593886013140817726513789600142330709280537062593950453269694583532600047289854730559238290700722628050687658832506076762196958095110595676807037238543901405413703993635937903398291708176124660677092616057145184170395966984460099600266512834771510852246411175348361004835553334844552533361839509881815223517632716157868129571953413675601645031439712036914122651335273035072486724178747166914643282072611033861524405221283401696721130916613854447535824267219033245347469351912811587643565251436831580643803936985193991864573655030709974074730934002485768295407858741182434480392613942500470573544705295481466015018765857586143436034375241914567007226583359991771907966365989925567548119978545352313950983364220146902526574557018805589141175330112204465223578423399357109113870328117592757713113346784237792648804995422732643697178050824854070069594093562922321614597992425610957305789156105810078037036224293705059545092371112659164513693355338494889812700710646431501222015977842949066234977732366140667637768667540499192675427083505038131431577185523763017711690888067999927290797499325790604125804551489722085640959845114058807684512295822530346934456645357721010842433720334545017852291040969146791693175551632627736746627459580012597965717219074754573034601796293807715138765738989958390640194328838104402039411952902870410182225735063478875479700073355231545396853903232331539852957761860697388267188476171334503033482455420187293049391077718904196524446850424531948589515186630144759082993945040196922978168630720019802499396265737259482980757495487974877300124782380681483867015947516263731404290265563774345526570963197247693647185044949009142652894320017020115920512758988386690999766623092932469398499622578078217725145909768504861834090160779752869573978689218269110338838835358125966803879475083648712104972283142941920388393374628118465370397792482121758687770473444859791826216450757476865127664319223388469875137085876456456742032417043880968087286418663973940012896574584621073277442265567362299821172047258805062965209362724623785139329494270982959349703214408171260291215349297516914245167169184332233023745217923886923726468454246621751954855527508537269192174070253367852305872045614841179405768816471254829882221773088329212827310824166487060474345750546588348847461724020644318365625132900429107409172587445940518149639532226643895802314279683761758611861773962326206927235115189791138131635775753171274742101179778138801349381570059883474325860026047396547669242014263399899144204182283006423382909729870391988540921296916384977516649360428448103501866921815620047068907634203075443177564491634445550423821796701446085848405596806135011638491100201455860757136422188657104399165232098129896954559949486058090742860242414649648668596223847414850993510728035874011781726421978161283236198481590951582390678976558511995323738225223953487235504208207901604415218520694470771714609479072864614093085892406721039313481040543100571550992550963274055697323273881271788181588581184361642100266691476367981051128536074516341971326297631303683005943533279775066078924584536825592743832083638778836958719350568960945344310210935012406720064646565202606362891174012925343855465310306582323429986333677978079784754553113594499536560297429232930448412239077895825441475192909761451669920569827713354138672045655883693836535575782405143591730829729225607325801923251606238246967529019872703327202929225563483243073023586644188995776149309932635016674267550017388137330109668038785265528875639072655172575781105975343705603920831004544640678843827756923364375589682552892715289995791478608881337285090202062712894030457585397864271070814585247466588102574541929015631526922016117615050528844121339610737232190625142008815407496449371180377879377485688370428329467909230451573814603562201589269531206653488118563174121776192635933599117867264597733854735593221798995966394652096853806531755424997144600013964755482527063876383686180802916494567294451123701587753765095737549968190393323401524430266778147603929084222590542469389107789699864065702602181558444125740486620267698594124919958159320124193311302287657246966281216248299561579908107549655631836134165946002247688067948133800631733605894536823936210178106573844494703815872652528486269452713319439691555165295987110545639595040198998112621377061158865444608620169095839571805438162032028271364550736110486051421364593009639761393090181569256128504410119534421097414948775236106505025528730463313466127800605921182774890727095886553682041941539311441602563393554175165473010856793428875776221372532535204337910435733611781878079612125372436387199863336598039805343811564899877794769560523937925144559928722394014414963005220761238019095890748558434478616065463447659586836828935687139248902328717691527776591334815159260539907420592454716071198367235123088078837119066928158326686088415160002383200564726413222014521102613173067514595590920124949590642649634256028286951574876055196810321420464926787158238507888435881899542580901121544959426371597164505915497142220242327452784298903868024235450455150576198739801319344715545848287712866046819689392840816104260063078301430287710146882755301213425924329115850987397768324054118807295765370732069131869313059992975374637129165921820061480091712179720869611597418639794356608430168502968302468724168680655379892052278594898287952777022414249104155890944366763204385461418304859080953965243918024270596370859414078714820282078247644867984260820052733621023479149673188476566777809288330448804330331084619644194153170141095267514612919106476974436726114825314500006424502371234136388729423641067323274828050707018879307814254954667796998953499757347625298533742777443486376010995908861800176578541583298429328147678820315413243923096402139977491287472396368956893181553872487211054896700483536119960790797551237242790426433164069190303522499993297151744864938474627037853731091161440626926855886665695314171151927368535100519994948399348121752158536473369593325104466445780408006372708604250341892063191922925860786476789958189516195545132705631276690780547773048888808246814196860372193818828367289010700275982423265451494895985876756138564402128388151893102707391475123380195851481477715017580729481839279587900898061936134924211329850437711886480117987116011498072904610447613746608357206474399373154350031226978411305418614365887948303773367214487263762974249930987807633370686231108133315580809042698590608376090693889092631604329169283826614904584211027663774101387335151697200150856390219031023583455695535466736478455982065029096035082068699719016264605372021074138955424136709195759708758463317220418653591626458381863754396859569720854466479211012697082449701288814900862212308717608397068192187054157050133117968752919628886070957010325901236373271263550946841265119990457261862674479206430817322816782262322477527627558338745527619306189793238217136584895179677252530232506587965719081363633999777695183766212415828861801579718755171332324602334655238911528824143917620260190815644565064951088485960217817970252865500223010101410962267843697266225791828823765457289529774970214690284382199335309771422272009275626948680667967314795534058024714696835980738125567731622890839464452647271170819218938690414375509135680854341149596390168354894946731621088558404790143089838706644499284980712315071622073135223092478504283037205798735736873337737125387260618529886468927173309817506638059539371393887364671622836837373335391394111214357095077780231392755072760240992859517812552773097730527884344606418892333293871707791632932867994072487317291311106714491164477830693624441839024399256710640117547083277205495750965239414765337334718313693584510346595456942177746138367522790129562771206509704230142069719913119924608472557053763106451873343802886693161035277666419071786956205913047828468434809026599606242256529691772201642105691623871942230247958684440521466374328611358004501422753588813454819458217229087277213477277929882354583180169934707414728762585354613746900284132317735075372903511763060595035448688761910939616306343497393085285096681202242074261364665495757537397318726728213295601549931893698402785848548804034572077628464806711049076316174810921637750700309657166422697492532713462181014471683305126483311185133784197709655923512702543483442225299794097770998053349851162768706919271489770860244308284511329435584810002435508725634175835671606751235780780225866583185601953339265258694395853064384227184972403618478323526396960598077765665143382742765783360928119696266037426699039831891830160918648528541002082843180215212965797562946279132305954186659037616911712544008358442015551324313604479888622998037129217990339075490699572481747463026298605501509230446961737907775005175443942821856640802785396135604924723464125619775910971248335496235857130907385623505857520837372117705245063138253195926753863849533665976172340232256419330654610790572784126038817341035709279184210424201761321126310710407396133944918506953069893292787240958760670034108256096519684659874920182125008058576972925608132399926714599074696084255095288503431412762893397095605713148563010301830037761921754009890243916609708046709171145338347324946599990944371951671893482556374918147312060624329088197024514011150766843380629153335707083119879839935609619125874998597314923528646468724958328055279728400434061519732331075753960329937402482459197270211286035816135388523694823545498117128952359041491557854321887923443381882588375322225270794467350639897272736506079670707230205679815389612162248229144379713650560621176261720342097308776217712123007986206831528411505897798204705094777407983803742018764963230278162089669182415977712129258703088716222966956589868826348784624706616248347303665810931757895657722359661802749301547186592914200596133483712887681679452641935791603070729605217218671028274821898544480691502592075058377322499568439341794522996361145963547547689328386342498315683605910996361523408490234626762863380571366913106880848489570147595564630263864284768723279100776710283677976896254163676222332858083738214803498936665023856650740744828249745403490163577024955572852876357450269455416612023340594856746014782583946362166973850472167259292577172697513781495622051436660454043419524533878863975972468961349115066786735419665988899580914746553968713919550534515517596776457006364929049474998291495526151887894009552629067889498521537493817995020947341795100218283917653672914753371688149725483675143407188650395492640974622703953820264243379519178256045200979505199286400084333166235438714247378967074269048252063736743294090622996053975075493168955283561136664901597633090625487155800376476990810744440074331857666293832887002120955507125332974084295763950321425381752405217700556295002828966788542766230757981549707001017437534889877052068978695481993861944392569523407324217900166089929398758044181566912488982608052644258555772741862854135881806743781327367981339037104004413832844110069002848825937484773564171675064803724833752471164231196304022353308293593286085609397091227775655130220670118708237560352330865170684936883642642668217391455211229940684586642439927771882525190119011364196358102052445439935018188341639909913931432944731080400190406994001761594779793863895738364644330353599967897440174816980649025812867315694880223440005425626048680414618289270637150407886616327193062008053669423526192746852690988428744947269980200617237301490150911660045746078882319246774349323465754347493345371735429400559421642735831739184283410900476757467782485275327390466290767298064698078405766298969682905764809852865729510420973621382603460719039914065110314498118529631332016486239485837139090007083446580472378624115292874165379126940862644205392744043479555140739140065048340398507954151599212633157242759429582874616203925049856649452267666451060644896493282880454403598548940035434557704076330935658716047790104556143378104519030894144872738105230138666660173350245747300271555296920339046818369436317468266832284144980809609522532804552409166881485440243267077664843065180815058224574985989372342020887225099180990088975963351043946325162613532811371773008371042367208150126841018068450407582033503799354117956259743494982699555544578247879856291559232016816825710532626786209401665476421930781890703978081343581413536915553042956022466436614562593090552931182753299506237758379494650572082432518536230784510317697065526331552321096239588949607999511097359751185687560683720667195083941239183959739179340159595824630546421964654858623529173934407878075055020099669396022641468294640753398171954534826230508106731275007620643031987239197825617897116082075716046020703552677580231710767459254845023699606581182023668868187808024014965808312113808259727458747534531388313276737222512281071679314262871565757723687706488402590894794281100482026907164511880098419093401011770307024521840707062085574812017221337530222474395451737405298300964370295864952074903915072471708496410239998232584711469037251214353750416225632627915972871427681709799520050448299623214489186827241083366962259421445236221643312143258573749677799388694020074898073902777076169824550047749423107347707459163861090523403474697720150294579905884936047536452134478506085670854646967638706699052303693177294761708623199875127325693849256986613807529287751228372340726130363066963598133327946250537373695542935999098121020585083643659263720540696933543196630420762522430507620123178012623044001837772962829164285938597451927751398566793516460383536722776969301801194010572312010755296695544224292467220810762759913137170950483248666612302827854517460015483149371571433767199543827148324325166959564451268143459148546523584471086480044825419181455547781587878141112748236294148239551376822193789106323339470583063546437539506207061904082326735655249452768763765724404494382027641322788478840832419826526518545969871801019680508776556518844145801860289872615188909766954972031119795759942734403633325919007909003255419799431182165260324490310377438241280638589125334919241907663375893429924908674803561392613034760613700222938832579449069394523992429075202140096634463715687018845981922969289435330186955015140905389039203378325926793591636995954764752629810664884700971432688471384080639646164059357015914616960160864527251604609238889215039963978428664597983226272955408263829378435046912249554171063267972726821298195451360567406680958657985019629786024236494793033786004799543329862096518806604970962707524643581994846465872307061929807055075544921348964184761203080408484828244655430840825945661447663890197314070940003595415549199575269523162993801811427361408219100297759019814067673681094287893501225602688765027987161796013098846545990393627743695889892929473137540230685585170800792933566479910088158821087493781465964837294780417093189793085251217831384580474271320346041555797483957650498720157374907409810007172947023069969276191582018077702652358401509284627251570889059191749083680668768764721622896849775355934931000982703631005470056967729193844996139134197850441070665712939986103106282244616146994813215573614372456625367536248546358793587358117546701125387862222582219339842569245839682276956082451112979802925507720512511249818516496931916097764686836578417083512297674929842621847069340253120277033863019193451354870499193851648564999276092101004920097736771743711031969837004626624147149584272665714248574274424806971719060831195960426381100667166750642130271320166343527300599959534558350225996017174227221008224728523192521713777531641052596335220082527645534206726531868812616656658298569624363898008760361177821719641899744786607189035944903732613822729208579298326744577032730207154828169090512245245127265850567905453499341749861137347051580647548165739510020439277620531411637459967161546289353047916149759861011206690434403753936761552016641366535522575331380110595428367307435510472558967479913117136029253327014154313872878042527185022233814386730009193970963210667033800206276023670081484449299928993486251434206110287437545122181460729854116093137553946678850505912714481294158971573134615739127775887299111451664380108805856432502690375200004236436104106254118232155605463843096895284866658344795683050737146975883892275477493306087972207788428190854053539299367356710656508718417000980467984678833915988521328423644497648039670339710955838866400501614865542249865516442043634716435394787575186915620269270764549119219906844533385695642029225628718276231455303767901902032611800565105214041303686146147930017456732058416930087330107252632372291169293713587349309534837171037755571886068384037172929152640788340556646936116580757609816986520479448691711664096320203621945279414457275202736705653722856523076364698014273106198951292031935123479565736608816917844884288469534556838425616599356945976939086526057287689694392241592338844928494186337555543096579772847971883915395501977270449317818007368782698229106839548100626037807001520820128258106215771377361872529663976319444978604523802952579070376206613115687516760535542413208758864117612772751886343743144387402008678986808543885963389021801172272868651375421725874557907146973258686017974699025995028954499064053679776174747088662386679204802439920471527003017148965747753835433772634358595381896336035980972438870319462772548932184879535643226087054401360484718665951649151310593434640236347976615298478948659062687104697042382319180661643564232841579086223676662953705520004868976820092434132362021574546184539444123781469667757052791781856471251042274438143958857946510525832968529713340242003545976221900711602848620333272309245361523638724836387625697480152964380709091692397190907752334548836371539780995840890170362112063763217565090268127554687949586528724283331401925741497808816764122363062861395960009685800305004278490499367859060636421411613273810028881969550206060972896182293087923618290610466111580958520064486514234818298382224295311996555984321142796204741205374246014203086608032316808595399862337069204074824598013862040702666080206663053633462723362220892978688180492417326993581884161458238287373919325089115523211899555552614208312892254970379879303639644645528008317031289386471124954706213688460375257206615049320595376239751818258066437093601768494789918331825743820444583420414040456723220762743297433705199251988526205816762399035866955512857990023830460253963087639562678189831784048711175868211786309304739116699712731613935867426636150295983499496219921473258512874528675641662140660699688579922435449510222667913134822707617695675368532596376749968648428500500696848040374307946107848793164229263475319451654459778116890728092142161427093079587776834156712293302753371338227874572990620198813475995383664978354160556258339354875938690989477795791161146412359728220461688585701147313975864482469326987940272524090532841999382573075451963042523584846940043111773438632070497551125549387347672271679475706210121480786888137225172361788793969371682031309560946572650614979954627812627044308603410370534911384568860242664815858725292338575741135437622639825009466725391485896489573221151108259456794135352200050694992334234482858827145875425252844798166298171688454999895445826553921224384131718904416599673337185735488347108112614463323629360455931674532256571474919030889504484056738587842421204715754192012460511094465663802296794386431133112867311131792889937356467423369265394772002825761179749532964614271935597694155484811159488169944494610962411175204141565630351171255577420252594779232251520898495451582796001000359940412757388281328638027670839120664514528764209655732819493946754905646392766056155220955259008358773560050929637342725487353179207763332214208815646767611420375135941059734638792128664627218263048782713533878200563930979023950486924217054379289568194073410592355233855497074368910869168383187671575115797159514525903929067293526652948040246083287320577848194325038774561990671203353657522217092130087535627530082276292966885240951545328959186542977585922089236702655760210116456836329454080675871693175334264764318818883106364282011592660140395322225642502759647220707789435521979203806472150969845446037014864081016631478428195250836324515544200537463422781258444849224921975277078348509264986501260973690114152105569470572154016220241972644047044542388579390887589125051685404330310456846803288552538919990177722471072519224467275409216869167850046009946965633369557290097268385599651113215429615466042339072625998871829366779457206730730647684595353048721211021813639334787386376915285103042803842242193546854970363574850416681983363665628989184200446500656096729177394295825589003496192712728285393046796259911022184465372297642232311977144645209753568885282017294056655194635872765000046024415342392550610262271077495641301370427977136746373858073194807231811401220980097694135125320467759726387975771878404428459576462958634013410876737362125540527377144133513438713742748977958328201686141077883775129728123232664459076741597691994489301672078198610140233815164510449702575039460319928122980396630871963352438512230146882306103363863583139746148589243762339854537118183628993640661617918986687263837102994657340103217684508068640401900866614186101043347128834856021370887248799692807748577238732261353360717868230248098201838666022051809465487306288751292321375644798865002474209845026912630772795192892119639021265150362796621540078016228745560722239890272252890323250514943201008157364794916548444577415216979399851211347816914299598839278421271167586609313782660868718864159299042705539304558949218253571202665903521196464615590685044369027102075822808554203515302178226440241953917020642375426817776327373831064575559436510619941538680611369845144251089252372986868597292715489906748703001219072314080155417764558124670726601576255556091560944803100141004098743665798324421008343867588427111176870717093342553903601604038512351405103269140606844000280399606376940753653929626643628898753885139062390946970266282535236509653736475631885836979097172522868577663527341918624853328169351947341468317240642170382618044882536758088879354532853942497991038257785673368505906464901594632990277476975580123100528355965312171882389801641131166403379062778276469811677759573838603394816655923514355128971762372133431160762614620672886272165030304766768248979185802305619649487944397197034595649872539585872608613067833957930252812246439409878722675227278691722113428782895624712217726669762469484123281053794321977750663812534022224400345407416936222615197789524595423428535113252722425203615314275629354878501672162581789530459753950144193065910807578465208226387681652572350634069663035609919487526542794613319254504951123086958749591154441558648663847734028580173593645070766470274451963007305006403012380803373708014276224194290211993469723641523179337685810297628021973238595821973014450183970715142962971201608505879908610069752000581386278501600170345552463999323449129186432994276264473581188166826559246186499007220715030676383732573494642237853051330814827504081387059546560463792471320462986215919294517096899690390686869093176708012653575553298322927180355306654735388251093780873447397883724128030206570851757412912316817432266058633643385908423385791754349551819166113364141723095467596665894468759602947353457210566733221792285746974482820537685114973858332954127182204595834352785032409883671423727156184492694638450642415411218147843043623323439678739359665718141166208577161952861111051809380839954406449718569597486742405617043429025697568032810734705544371546111504879846421503934607104878872833415877721792563101937850908418928270248914876409005406091061247754994912263255951107805915261342936940992902072228642013508550957354442872173436559476350948349320964999071188007737343511221545149445628238225641734400272740340384945463068971266150208912812399219771021655212377470072100767634140826262682356077388927116882673744309500491642870977654481781962313761205219728823265295001343650909802386816721751765317110709500450347991864069240783796807874987577728144625603351409914653708731871348694431600089430881224059974313618407758828152263990688718150018734670672688934686494093373168227126715913857876481771404723794339718134105322825259332114903048310865256662863497665141696920033394986610984734335016976725631510210785644307754135579373903930361664514713416246284420756365989149703523761663593990562600565543189353634945456239096574964774907970017883588654952985758386212117958576626285232053381433079647505185998294979943318401450802958363977971926340655181150874517234657771850519533827520983033132362610031138799375590610434755582111834160742746317577822231627192608684238164533787767306591253029010305655591298825835240756087220673000639318437943947489160810116704264396521292321421721612272628195164479889494261039485822462455688265038387035679559320637633990021337315983994621683964531060055706982283498336569237727944976158304426498139083758165531767943099219551045971760780823932638292342349815606486454450715300338076810477494608679671562384080610997636132362650223490678093711916115551293199060434100086793999940339203337616605969186417796811862133799113833818573405665947620241849942879545715720739452468425909118892205134243899910790929993865666679638472102470755359327485741436633610067009433604957833803246550664190331516570781052893353968984616165147345815216661477425362396133454675556771071853205465403396077227429661874359791976761623241322562375263462904201502981436453409384252213349761798295250450079758555843075683000798181532930036753449508890020972782123632899287636968631022620703126299143670201191786208664049361036698029132423885456917479933584618988385558563371658517292124326724828312921680156313539384134817335635621930437768602840709440214784456411077794595887093351736902106186345040389319703778379156750468995187877419594031148290455126656766723559263086478969548580752433536042306674855731206755089697175457030513346907036499687606979748046621164481311148516649739816101294893711249315356618512948540181401058872980516132401681649529487599169688685144820958266207988404614838880982781952406264675224034302745207663520820641438063871967703558114466296232856309001993634961402633519560004254628384036938099104124115101366141233286321045868271846660629726021367086329623391216169843384829115602750398585858711371061072157399684867974568948681676467377145472179831170670135629806006152899948007273490756396238462657878700507089623486962140885991236847118432160526478349405424297661107608069877601155948665186417124345504551695697802818525870340177003120487548483240379141998479226686763539433940630669076492611288965123225290954890688337430238696449959622143115601461503455276092305084345137870726328616872359518243488057989555349808947549403147257551057838864992993766677330467902172670031206650844354421417418873721784593633002198996908183801321798830586851608037491530984718736490654129052230972236315235304638956261573697028269124776027905558449373488602819661373263137583265200494843205220140478516498888863713130550844990598686135261937928630690370347343737100659239241669471459430660787584329577119617145988651126465773076769629192488778610286643248433413201885898912934325914479744732987475207697071690511525817171017142502642406985434979842843536465161235544200297694859733558760571682616135605368604067650852628956518839938821066178360860750259857400382923099499504512668485062325385923992334747483387975111142331806175108183126721228743018046941220401655577551101260014844852502763314314109481459718785707603051202051047515292953516340671224798071433196565053498273965160379585263810161750703626325712965330015038911249470706635169003203446138945807981929888680407228134313219264082566299069092187359984470393083247586640493285436699579824186874360943805592203673932599320014173077130274799792503828719209666996631922786349511551546632352533444508203948015466088382988034436352631936542982846291808677029656511110325140732995610533722992120464536788824327470910187326225414747696046595710758790133304643991070663618081564089498313418811651041872437542822015601139705509670313751136877063099778212380641506286298266040870211582846726304494590157767914169578264234656662986315428192623272320097121811930493835767962765270299264249292690508292107555118399821655821008004372349511097451931850159601439929452458476827772098802056313108053664703589634221879872288785358518839306317299295250357527601178566695910073003375742811101218056739379342422291289022222769037942657526478762746024470551729149844905714698948498158437161960232339655495821146823578371644273242486649610801759153095059145823074258348824736299929909538484384871114062013133509106512295331177994414664405230303090583120782684343989436664309119330249648020858889942303136834137618269508388696663566271929930555464687478417586186964601394431998139685609894932545629883450373029615024475595918601255559718587446716137068465470899611655030769215279841009204133729577475734624363901706900973781203506496435501403103034330274480126432475864846274661978059836628026214617655039963510757695996201571285196440019419604766175344785593719994038488768398506532481861824519198384430680683924834479444034594885504506885088134078688953454429161188042601280971805363073669832908988257232485598370621981274757527599410847124758231479569393176285967108123936241328274312019422134581582885780622579976230965232585138778030062160653923470798957173658244045688651930900424589708582984453745676868474856432219557738975566483230924372942267330920474547777766601328488650603216664911181780179428710676967163809183247046004000669061702056904057160331350732823986062946367590659108244516426409179555515510878834030752262104646324879908980570899509043075681355365079277187882476767430172302379708243171459869656162827603464277568098857904017609176066240611630374658387273261702727304547543733719610644831070654884183781123772369017522178126378222772416886342625281407324153655475576514032428884603295856183587986557868928022446394576177800418482681367240943508318751307798767912762077707147214426217374937311501337878709682732786562174879676853051116392763182500154721984953647530315391497151245750525630918167903916519171701917770442302233213080206954828227206270544116503115293185659710296263973714409558857285085158254197459413069974871018305324006077935392719683932581595970491005757872005148725200463219275478538575073665078478897686130884009488212505618302308997083942139083101762354469143432190865479599359041000886004445353426236166161310506945892085688340235445422755967084130457367856451654545764012018290356760301374313684725102587459144540846889290659134918958081346032475339496219614470292614998954105660993921321800184253364200167388174733515025203879175687744705451820537863036539293321495598922833530078846673487412142514231539842512047089141541007392346432163976990585523961612060898253718665089064842132366950516625669519372860988342456709930600855736549644464714463255114982446868542197620031773450283827945487045396680215383856889917379143758147863149514802509681549215229284574661676211736192672105629020311262295665657070766479072632119674926182970361008663378317007154800089426316069769626515083154532291347338721097214471889603674544229036778624484348304388004043419285952755079209527619703391381480002119848058722109020681076979029782625063304532717291916192310329866667629388933542892056729204605303544448308934394538330743650996232508344062535609260392233876918797145184182550760580832642253644050349499528728645414209856264526433598900564409228599232986310454747796616433987828017853609297868625960891144897852071778707240962518389636384658126276811236805591172117476274981023899944532630970449453585548849129920217370759662540236513145599027288183375466666192514428000745842094535855077884428847491113492759240812829021427184621683308474011912655601153173508026957976125258567138465185661288351064159171428163274231826414794206795824187109212067215418168575200162295241357501306793031186301406852642566641035344244746298186849495605131424976895394435197779424111488809489103192607719137087133670962239946494780248357775959271906406529970060097845150016131529420139956437760658110172851921948077637125784705791728738308890979546831437813228264045404206229845981126078772890079163553376442421096228048656864384141963024449368654850034265900719202130790632205210884762819472191619843977615869623791651634375533487326959817317943258201077942757469560219030662096823072127683802734926701375573007633087870300822029965427759575236112479325785587877646670926886527884676615502863841239176394239276208864385089399376229474926947928788422539001119069583797161104905489927430376497668596307200101221303177708674162723421869155770746565944698935500528697902944747880885612002091547887517720339909837951881342207964300590023886720553356384645202581841403671835479351708287086390185276604568685556513418931276477746988684262116747408587213589370262041183525841312985084235584061996787577594689593943652315942870803804526688561369187255239497457117527834143173518520348488265953493484749165152344715993152496979099597680071206659792813600268244055202510726989239103525158739699705598612678610519133195318350297797607618761966578981813554469591458975764554329395950250459150863253924575495490878928216084515059739131911503581482767748343442050792213940420921333390393905475418845452969210155304525274955753537997525221257774337121478001955352131562744097733134477692987150477296271081365614536543937529616415917876754502298822188272954510079478661710549964175829557148765476262165543406658778507423877959567736452084987333727615810673510563411623885513159735537339928078184975974327875582434175782858226346956460108791711087379174702577569446162851036526844984497749943841120251073299978096080302626944149097527472135182652266768358807312334007087058947346261604785425396062033192265311190432229456461679686939173102136024436648976522383285182748446383726524268915772371171531964946114836203617995653364995819240173792616740036674612765173447763638440780591320622311563839388715998891077874745268433552857577807466189512470571204874392707503265324180214945783086568480247704044512419609622663287528143265241491538626560467731224635377779831776568188015529916364188661446561298549296145932497454310622560182374390651600605288524112427112776803673438790708202944278828260949299326727689787887630222755649675253210662467237871445878637556293712841043311050634539230467607333691834178747207528688002384585439737716796149449660022989233895738120112668197701137999123735913592448328490642781769592109627168294928762558092376620844014453121357182045274035328889073477729613245517921222191574456445359728680528982726599083926501344661787343959849760662271642227006054400516214323442565261970057111510272409101532945481986343318907167876551188637754403685384328273693441720639100475322753007090390537877500996775456950491360173771933132653497651660818529799079744826183718747205564001273378050649335933793166460944046306436828043133893111730420319239639082169279678241091573950469790935567610400729415610390208369585362179533555414831888092536105836638472449481509446865743480819172449432625583760518589589262012359733341902122684601490636838743405565605540939203229801664995634443796607133547918958574703399126725021863206585978430460908211166820784342580809163755662921144910460492880081278313245114340071839525972227933611615099308104294647378745851099939058131250345812037928721547663269078171281901506245742490104327560347320602527915655804160869705877721608926153509503675290189079576906397544301137920801684027334115119627393074777158712242085284150670468968783560439817376096337791643765757090051692937234459526756423084598956892487809284724183827197201641057225342676661762516702712604920939602186571071430675750094513981734815659186516288813578061286020536033299868103186802039448408473128630728854534060706680256712123725033278026174399428814155669304416586901235310563919543557715309889075989211851334011280527027931252438701698800255749364261231918181850416144426984607380029273117935544562495050889614320671740331591216611606318920869986300965578352862778965446504701647318251783655399904183880397722073184913168784109704624477163121151958307485066852838538067418201089007353466030890365828757941488828535648713302094760022816138730984672631598987457178103366913998608120937266016051049263390767979950264877988656324419918441796359511008526382102030660937813695221442282847305858570142555451352973768732867414496746206159152841464957787107856295577591049303106024487088776413303496212131987357971980959925842799097064022325998899024513204363988111870494875000717451031020888868049817692894330252432489087501702456871392265302847547765337725635747257476242697437874691898365491213197840105698729339230439883398745449097930133126250049576046463311731771832536176957819522461192684955899284993142940937919446363995734118943094018717336307564615289356852297828389649959403607495487701622780113834660109083994789422529660513325977873292511253762316741251527285037785644701721395523733214917623560518463031634183277068296938919415050465864578714486090428566124510508302823587391509990095166341764679893098649107767780035771674847767414259824775206147022236668015404819740000312803711949041645902857774297949496649569901862917212939788253619966697529973445900267853311253918708979110102737721575918747004111215775168472406519948842466478549276532857916193253571286175269343174908164683246459224935649722973197158668293953886120830953288144718907410039576024699109817261710224954946012252448629365175457512184044403143017959512833845077936127293751154508559133719366678533831559299148364531340754161013324055492888781757975411873466779076266682850098971332193643599449573165315637154649626025083082572455780878528700138328432440759870594934061074824763316239197253352214780755971206408510918446677237613166233318812443934663221379267602103639714763790742101874664413723490518009090122279304190669044693041673983750630604248176427917631127295796011658760032156921078433237025852448388820205352516703565742580031471263826939476291416581410037824906916652068749986848612426306840524764832368077052761956716006186782403090849580322133136967206240335364482382859632925514314251055438104569895086190758332098757808134702471331955263165373357294178383113031337917998677238480715288644642887035798150981866636969587030830713249639654370848464254749806641586653592140537384432866587906752759726675366414876540004887182580910929657921856716936599761047346125165861201908373010946414973005497142159953816404283398510163864749675269893621774963757157232885363918916085381409304529719276218253844518041011840208478704681638007009321715805575755200947823096954657203117792131946874649740461075099687815608518594946201579821503884483621999145686590280260649072951141753923407925120117550110000734462569673816891534873550897792930943981447206352669216621329523312908823309462298626800497166766541544412512147638765340758494267573605126124289742429471549380849426788907258426783493759838498078915837461605508610247650285654044122412792794621670358882253907581644424261464749505458970754694940527877011781043591537329530849536269862265285913796438702120951161394403277749923441805360021130054746652272768784195043786511620573300623356456109138970311249229099204185513863113668224148418009151862807140343655701374527180202312839068224705073821973091986961027720979539353647237118623781226804890835494423916728383361507860084639875739196634921243784350409349073138269550981269363153327845372762022287629848296565421044946454418827785299286806705317189758280346853910077426427348301820569998665927078306249069898224454235748353277245007668801846661966676901799968302815580724789102270214121244515360115450424168564710230714521050685605987715533153192485949620109605219125626571722414599665454452957457534549147897588598127348487642524288441670367033744967893566254911444590953094281383443013889861519699774741104665966946373348845390505361728085318763341240420966024350541527889044768283769719463131797162299808515826190620691929944195128548742555253189871994517287877101505698851110017048856039906865929171260932920496026810287188020421872558644967511433835021065129062102192870317670910347134186683905964092221689659703329842342188966441387362975975188313083714686539609662144305477935577916719106835790179275259733063232817290448416846844288623365112674889024341023523260934362522229955399521578447944865600753405175374741156184013854134704657103028348398536291654639266019821964958069048970736859165028360638471422452164994736757235604122166508927184002686818403115840234039478372751704474209817534778672562549954109337079131480641110000351201466169113965225210603253874706470790232148047484887243686471258799208271838123924682168514357092723275473902189075611615038661160450575880927527983006194595479830689442700354068471290781502876573897480135682483658458581172225664227496250733119394731852195661762782296655552946942309720226369615601903196021638496755853806154921452074195246871529420874868187836725388676053178521459338775740593321191152955080523900982720815178405622262687100079217278631874275205164207007362287849205743355741073658820876565628088714933656659983085242361407611483148732181880563663432261188171287489207087269580946870970383325805242342539384893184015153345521539784684725104429921982750187837332475252881349203176157088577503293573698200138962454779814874762030657040948025988742367637069344607963371004414850020891730955276480607711126655657701567868315949214300690502327661584205045518991744649401680687623401726000022259144649967855922528806540525381605316530184325866506661029094361386675107833690632592682884134764839945603955943847564862519739564232585654938803202925277729165380739326090242979844603956642329223786849221904268922140133705695544078957733332649478036457613685846546023091301321522972457115965288422676203311162680356443756533376364504064593102781313092916116536008312369393008291205186539765613473374093957471918538374303590179541090975674019765469247200760901632794399402015649453026785737730704140645767788855743175402077749285624706012048890139163842353441113366406514846637051433294171047858680691277944805839110522147476271191710555394737880505657430424338929507061645355041743063239008727472666810800435418648891434182622774296610950333387949757664237975641813618860702139459649971830638639823134457464022408604621528651378762340772570084417468670760505545499636804304302390719447202937746483657031811966648572094290350178424581132887506313818169289999034580562835461108210779456356363619884528646025593192372201779639277318543171741273575904115702109733288079566157481852464506916465128891408299512260732455351802292736105958569132382747028064207054336854489106744196473057494491867679113956303785461096708581817942105379456213268748709279416921993637039975597800888553325722017317538321744010468986866368545655168009360869873060004355702643702026897381551533528614560884949898856829415924395326299905569296445004025399184471265632876910559339589601529419326278929838120009557457398154093255608174686488853161705293784195504430151874303612121700594433511335905315981985315729691837681492226759889789478943082630617410275630602526509246083392898007720110992999011583287016619555087981217896428761318142634662555827324318053926547115068858671754448077574936726780557264675370734927901039220437197645155037743574774736285515897921157730956986513858500046340813083163674875573255671623285123752682658772520062645105003040078220519688462543870872295980203520045813218093761193082171113813146125819708109947546480360361982004194200660020186022279772015184788481035448250249560758192520570255839095343007497980343938052317632505375985495324202470498206218822657843116319378885326526440060453504451769233901269166708784665742096325659038176664067886264057582195775847138784118119780395717848244209997636183764856291089420621086390030844968397484844192310297180391335127969708193014397457882590664693340720870563208010491405265392187141715703524013821658721573933084503780553899041768087279122835249447907018602291700862615592891418418800190259040032655427119157062694188441073085333067858272625231277510534634165270047825463425762047239144161996559425301604034018061394016317853473557606606808183357789201117842562847692590913271067892934988466795822008570656866195613467061490200307124037202434057840281055328142707301127401756855228066613534457805653834624123194528988721697168308868667762164363162341931217299395108759080239115365920403127221326930002578909832301840171234637407672484521242817985542735457553015322914416193391188214387198253606228362245945835351303188912242898036905458115260632135208664195892929684376995666475531581771184980379311551160514654356320578398757370905236882660758780323099380296442780342153971950933410845418115348764326798116676166144476957527178169467587394617458788073494111589916268958839205129112951786953097227146834453383085171687369458291064136302403932620172239895556893771860112674567968982961763631406624285501948746798520166911907875953021558439748638473221400284907239116175958791692370999215797265920727208684866054988832979723685735295053276431082153613050122503601314618512326325844518457712608981848637403979622989881115975578961404289549648492993593424869466541858954739904557240599386294322875683899244342655533717366728885186272167302671135574861873075365541673027398614753070117860315219566737165230852980670336263131765711450787689875226576817682754229172152431942617801038221771797075469077761111058080269272381578030059104061186020917906272036845787345092668403974798012955081743644704501766720621084361738206398990246212509750765746824079141731357952549797940892574681488958504521125326378759938901864301241896669527291501309233621835746174656190062926634772862142847511385618570796230981778581030358453948895923349678230120509730219563513897638937691913256502378913808857147516707397094641128698746703383890265961840067634272090722239547045840282361055850407189852272943398625705758102583098413442718225972294642919847603219434326244807291457576896128829377888355411426393459787753058301709470291644118788884240473736795971928061096626969696406727276205467750618395958690774850713785791377043873085898456915949417311992356642285391089208874373907146232494751092586676999137561941497432596913902184218957903513545429164480704801454477898940100826849982347298391505055398935115043867590909920163417892421252065044935532965050213128990989096332977154096302864418316673042397443885482516617905370949007528502631784488533806870279095593411473356702886911977951210087819226812980233651425727287662839072375175214132328729177008342599751947277203574743437103269773880531273787212422021660863017132808330502080745500103986988510744410368915091348322065825608833486056772998900342802413476005028010805612631259790554554896700735391503773135043878588973864843539671939363437631061655256723176460466725886795621790651506580397140035626516367752587164005152773650957511873379431410974380472215051102998588013006802442662055216014586004866227480706911667889779948940709961773825907538273314972596210598842261698215902486025591373767138418601314807258056311164517164520268962105108677563984162576225693344951526611328475950497528631380877133201969795192341858231110472289879663896448516350208111114975534933863019277966708214639532450211511991859150890327393007460499482503072693244952367992335213521499753708609856516364075340665130337798335647091487866700546249098666818291174871923745328019972882759086024592325893482656826667286090712767766992436774949332916808486681650240968640175275142905518643578418024463776212310644283958834572303888221855436209011349040932581789750870610660429603574693356079780789216199281612192960075824939877581993977741554508858860760843640261186088908639856515550301891106709194480878741814765091305765357096994205494048294543032662143014731114773255451252393675754791104800962888324871279128602762138621259868239561839699927456174440610196557336693382198490361417108097353125521553569354987682278180666011856668579784145103655688304738351822229285731065771027760292126757287319919381526102607279848816168179813515824068846796129953946036716241034475263553846186473083261411965234228712075000962727183916461194603331503961241523093126756755514243684588685838983355182128013097981205729104585709374963950859425477483914667014056832945150751200043636477380211304780297503495111790882763151916346616043070502550598514373205269356558028799080868732015870073011984632939469392279729051290221977048495703561075187120276425879957832062580373249827699940607400058027469599374051014204238501943744457635633541101020310832821133624480077343854474856453886750644465921695393114297871035087018269838463627272656185516574249594212173785023590438769509315948245656247656905716754568239514638993633715548113765471024118402946592027473367029359140977290247523544455970418484562778677979944393245090819428724493609390352008550209279543349844459920374053066875621798829832673333583217955477252283693062917920964054496414723479961848243684080914324859028974407578516191697639906140906193102715120894196493659306510057967830259067246907604862272367140655696535857006541749769997157704366198015232759618926863698280889728030464928139925278018967737068630186329811485834659226601027964153971144537264195711013651347996503634925134397954345798021106348761147387620881742247199725447616854226113927840426209888780783523324180206078048506284884789547047204999765627561487710274554942318072079584051514552600068061781703919897019406586126264537563133037949355596284401346809377776710862893875825860846422606092018864764267409411222688303951276573803978510157553821531799043746311634352031769156113278583929622680200622153503732821361226455361084694527844918188877775727653768437984510871481156940228188147688080011756510199591808067776629133906036356834094098980938849218896177852327243679430888288014689945039646836365911593054639943518059930196944926779034878948143498288032222721908231759557162137328331220829374158774752228992353579775970466271310881662311107271412807839967377839191667251502205357358825864980891487305885750498728130992118070481575401347576328091126533936897886612874810356036933922750389465428668239431873867235389954691213794933134694810811541372515256083949485082031395735889809098425660716314674616600843011853131007916361237906002179567690038616513743857054012840863267355523372926881194117236846486042087662093595421002224987497313513419627294051842701948944444468823554285720794712030361895916887512854449951686110135283815093192669574415787673822840340295323977845341511864521092858981898837957903173950630863887083131108277240261117357187073075986635963498698692960785168360239537019988220268144359180435490800009844515623351523668752936275860543324127667583628506673306646466057034559391216757063504470029832597812567305931395396693459211847595369662933142589789412175419105677452714921793652153099092597936534897711204820810197238743812862742608747646899600262219160784896609442691294857625226838005008994437906858746369817702360152663151219149790613244810775206949332808799457084863751537027291700157518263132507998020040950639832529357793165692097318783759308031017066235383685876200271048049759552874508918377627733256429853506348375695601035759648139417773805777747288192443179519661744922955257698549796681866411699844641643115640659919892540342423600432411107125290333217578132644829852023799915852520099058057680583498520518256357902175341233127064677014114061253215813473833757052621030993062097780277821841456317204093441259660912325957315439530347220684146101898679144569127171682854992033970722791484548464455351429973174438784164527101368704013036748602482015645939962896955598010429155203663701556299640943671926320927063152868055992173866946436041893100391416716195287073134543674236111837269442907011508324192664766839605647633543420815420472759097409373767019391022877344203441003122954950135422038702384953958805429853586746214519377793795642253514789391327591091530165457061169731783075425608008430769892538466043162764477588014226498465450809634225332171831391271226586187146769736719646669236874081285907465975220997022006888154222112016782750561843565520322097215994421906661040174979620653622638754588718719476866239853455161203783739284764423151329991817947390798396714403161169596711253605728542568576412471948661518083033852184416468248193925593830005773048172363598391448061913941145304420976618648725996288597604932936282214498647417743622043293456150336578775196774293074932131284427437093232281844121686679279484802572480396380750950473928169104767466658662796164925505744236406520880163281139314926658596053944235805543241050356681645572630543390891393953927849312865554725588294199594774718852001207879240893594233426274995532136135408531904667740705338778525815322552060622031589482428461487888715149711590754737882746932610819979656919831020720111779671700166068679931242990749341447811296880725929045650487769191442753966976641832568944860405580781171401847010927221928955267823630291582407022230137201066267554097988737989395662201873648062284536425155519379241748810050684291139138963297045435660501674433555200043661548830964093664803787666361158304978225577528760956786276933620217814941732982590554549698022796120617446559586148139702618388654784509751595458699997120484350217952719749481049917447246215911625497184723541524945494928180200552508050967492384553003461440350162990863450805148205179775088826518058722280750072685034705716923634865923991710096357394986097275878860666979971221762355795089739298462362690439287623784149858503142200984362154638504139732826151393965071526502196564798680979363571775930436079658297234564846902076839650306430867631455358821177219283584983923495797730070426764041995303067660529226424670541063237075376785525843401968163378263631984549536876601776972952877590690325936779233207561187437405926730762822437782033088739665340488499326847644216145614427369468067741139678822903743989810392330707493973866512790128697986238348043443499713341837746409853509692876168344624473827175502276078719121866637486866056538846603818698387277008649900600456766197614954035244049268620778302128473817049329343934981841705092986843603520025908176887988732350752209350766102534072075987415109980573059997804053531982714493063460292033408766846787327643498306318890318138652969930109303161260853282462257911284808180645915668812402347793449735854291786828925941752588898715767540131704858334197464880671732282573798661346051171307682313820223693347367036248155645181132239647404563343079862242394567356219637127711571625595130258686712799631682430926575820974688484842732661661947663241187801567664643043725344860974373947497612645231563288679922889614864716769913300951308099483266097042441391077789640544740592857522075309861616030479234692037363392460199327611830377093098317819983532374080061740538578550770521774213936005508159171230633679796528392207146118027321664827209889311465002990521392563533640954520884050484477901130690812471510904547274735886047197094471013084545001700753029474003141651457940794681113006591836472407858928368922448629790237111443307673143796328051841498627396892043176152321734306038009247199577477388860300435637982529346279017114290987963733341299041708924018872619841524096223135644220673973842060715604249527027295975184241435289939420930483009033370367197204319975710619399126569405692093227646140620656250456887902117716096047165857678297411364285798735486644326279608263194448114322380767480689257468065133051844643679258564643672121870956836121946316333562808114559154687583063395613996171382061972095117740684231571968879242187307358210754402075027246050891478334617094545610568374867713881749028726146762907159732521297855073063281743525892788782334601056180525071226806604652071247526778532209666866735938592749225786830721195453694768226483737653221199176576251469560325037548873119096664636397875652656775193511867283002658865955125800890413814483468571877745970517061072475079442873320858036670814277730115070077683428084084005206980623317910940424766086668847092597936265471567866483896598424505796863216950561368468937783705703043249913788966742203133597451011902612810069921451966266775309806763178369762714570310956902683740478109684347645223595521551549814636619206404455293041695474846813761694088779210615350566102491633151053090788542475828004014344895528322846900359722317445846850937283125207612479327266608237891305361596044626898093208033332328790513535509944287195324452794126563322582950409902317007276856268848803161853631560677894426043510619728864928207246816905059063765906021391506683104645631648183339632149387140314544492813727053087918119395809192506007715177169303736635002435463481827424002689991020947114943507225816133679498531193187074042759414498192622772373335291961378993597060049804054823498632238950046152420888626259254780975576863690166084469011442164972688292469325358797463306066388410487415988472390345925563085565157082690848166994160100521048457479023239008669944043324151505228096039451830847309436307186140391556477920665359415580126178195399094598206956588975827415641047565198775964730302553272040816095183476297709309138220091498432278575362549735931549958958731377504137814013688967144661042229616452898389609972261493172524890289382028369312859025864270229763858586151892553640622504420500371280829817341276881273401801955853330170159887466341320286730988711057168458036829221748738693460686832237546727936168447519354035323152615823556628148029065783728852252061298516786095509707844909499469141091728822450922245405989077574048986820372861048306995316387347993079908872177660766513440675015808082291202935696024281651163998356817777143806909597878027924783064939907291104508009532576194864646952984220187262902128668553194004930073486646065590161650192742819402576964074527608261746196526400767299814400469058478046792188351577912522597871517099659508210433194214415553904168136347641128584015079540018974870018340671796585012922018191625520093507721879244021695799797334754577794391117420636878416238150245981194663690027159030311623533099252023342628698656032197895307658773035162894451746656625705411794244126814400693771626182091693663471899055094260447251323081318505307044326343630992675110810632945865468140449920512368906372048824773979353454811566076881960200074986717942759425466107258459570875615513434793822258946901230094910417953641296143751608687448460022052255564250447000767340128859505531812307822935116426813357682312252501680440444044148504115199088550053217882076222330041345799024420289364125917573219965946370591784138394422622431164303364069940364800811261721174934942243865034404337270318562099348124601550070418344125908940291743812968664635977102875196117393386342300461946112652047268196710636660691389082506286546028208764095368443279958741399959519854783678244818926978609739050441733762114565475738414978607817233705862367701459425923670163932241366493293048422274720143631399280512413569436330144367727406708689434501868620407127615194843510828452469164508727660587133672685847827311862095026245788582002059961338513288758324245260877267383485243544973887936076448892294072835022252112354662773922832697531613302934903906848750087384811074668701494435347875139798137359612886139905944821644646924056062211974726652301494922941944707852706740805474686466468813203754396179621434879743901060719858751870173917594688478051436169312291245405136695697324940277031191164458795383630650671707084336656366889297794268867434891909570687986129236871764770360892781823006101730515013064765913093563532850205520583038646382481943102424108459863363210155456120339417090345643109548016568009342604992656332702397227863132062518943490398210245185362131806569677393482067118834548373066174159637002073707603971408994774425148538802356893907074619817693878968852097426662238492521358480140947692279485252615738934540549602733282913432322037264252569466287883115914349073796082879144744814896054432478419880065234518317244999818027714418985352056100467035658104808703358280849327382351350153387427950914611688597221673137303010625508291442095006328697229691713636472304262669864976071443053231003035465385965132808533304497644223563135264338268002913857514763085867342778893576739800949666034526480817043231288267903274913149225202017249197856302047623680717526163392861532789031412867262672847378760266825174182304377683906053316663948671159664067171662304817519195396258834606310090087335011868960514961124116367176434044829903278338677674166101036977218182442771042540192610309902826939261895704969125130819305523923467661419523618156242412185612896370825807787937681234336318263984691846161674292847167447204387316460415593436496530472961944793035476015357596163851895366376235089607381689115471968194831811213976076035512753669865417633975567444355326451261318752685321269470033238044444594764436339977569617707133444098697488469994065550658845422668010167553087998008738396711496861716531690654165983519097088139128949675192571051182050856328546516400927300956351473883456013427992216277676739434849963914063924118879136827041171920279455356371294208405395956902411179239655741823776885376567632979523190763060486549300451285578406361540237377264941960926788740758911330282972138609868202833180055359153877504218817931807303490597883531650975362245925990151922614277517138989888527676551234567821310302373267891652513837728534575099365160913935864212119362002653050211743530210674016362194128746470984017160355891117051286978792674640675188907007387288823864846812292435274999589646795747081264157455428672669954710897467046821556859932054030923894914230778502539488030091424408559867480557383950947759570378521970635069661946921770002554540898782631536110174210301611694305079924935529337821916612233488763913405168958353382408315896913287641012971350715315189022412529986062734902976879064250009160181219348422031036353648740371106177237382794472265942499182932657417146162204672186179900460285852777771625903516273682652827930480262812826647837269781157180865458995534730908776747866188815034403477683861309578241592317962396805846076466263125061308078580670257441719494439647449817717387818976863322805832395403158961411452613628090104720216391304502260583451633263470133340695293535260171804884679310909503426790617138916342969037236205583576878860354550410969597914439722871635284018445711337351836912552105478696075171489728253840965541490945480404080304061417352742356711553656809723381536972481122729777569237041690052237296462432256926699182763213336962032294498865972395637442548821102532087717041020357247874975502371130406985354475546653250355064272212373421952259792459635989690226786649120818485204306286446224783030986149834670989532697872832308677318019245687437538485801009503320129713048858451088588934856824185866472913580967547442012529963538837549067305028473963305364046119448345325660407717331951278293946747812194933023580265867113853600787490153199707720277700979915283384519014284794374408561043629884434331753677135998746668289911453782573598277521298778752307237041018553172583478649930670012164196914921695554503328259983361187807128304501511313286277589708205591991603736009747300233004084709836382118798047503062514482361202832913790579408367239856970811794284690944349461163130418845827424971656624850436230443493422477074353101427231148268788576648523496921146048035169405070064658006728284968255055894006785083495462861309846876336113402386605131259419913219055731727262784596311839083205151334498164507770847957046734401197899172712075610385399442787386539358128082978875374583439729260588556896099041668653748963774075151452807204592477780824254941888834421003293889196848322725406089187045587263768815451199708709078410016761027457973104479506219825684622647210292377334787850141969327107845965826495979644705485411959363927605586993415370195390730740228551833214030424773365841024006052949395945311225008742872346149746899302338410985189590057633235034255093592428918041298258203714675167916048186803073433205420077656938956046352084036786965180371763152882384602576144978882447901775028369788579511668595232765278408228071961650674494160497885515629564775826800901451384433488523367450893111007682122035913543354573091276111092138042051773444333947054153666932925258800994219925472985283124525696524938772720224390188678931299210819588588578389965452471761252922408909887167900576313044662088461821455887003370443237230666767943873130145817854477149298283203784729420050965336723663921601661743375838274425340063619200994562309986398593894371857599108059974466778222682699168465483680808379129235633795558863351419265588800823863307297389063891776764757448485654555644990266396774325078423924349334644716257943781185492869123225877158579172361774060606206799072126870735568731972602905255048206714172591093547833857985719231244722219282770335402678258482900950576337516371449165715151774532844183799967736949648046126529940686535685908397200748602896615949628986256835913029441989339537543129663712779240910525271931532425291395572327509276693700310847706152699319680852154711538096372777772041905226288116404879168385686785155108416092134695669202229651997161355513777507799847189735436812399708737712012433149687922652628212751092201286508613594876199652995370690023869430739259684158237283592038703143672109791524454459222558543081718848811598919863791688579580589459613967265505729886038837933580187924549228352018990387377170850888737822936468331436184512781832784824781552751722206191371522082005395024575815487045064595459020791184460708262724276519470196741217122231643564681267770642130719412175310213826414590309952543003305936786429040235480096445915821244570181213441548809658823947250957997387381339467752497962639950098891067564079969527663744442826623811069215884312845267254678638758001369528792242475788761995689464699252677909125324815158869990095856223486168793425172088024422120267250998278586718313077117864510345967214239608588338082759772659180474296749468408481036464076809943082010159370024032177876792489013470237743582347572731946791068587074211288097228638137191621072502051595694838930406506167080822832134877798261553946740160978818560005992586522052318963888488719022601205963800586528531498942503179875713380523147300200141162915433908951674832046592120318262613409103679250420825876531695163512052545689554163223530778706224306581977290361099807733605104149265577214129402655195851063621565509691439986190929860788635963723664639929753774008799243561836106177678320883650812170086814826962740107591157383500130716177044335527732763409344895850080944930664478057074023924839960604580280311810733155709225340109694502216764263009247034608075862670087778112006819995921887548292281274997101769837864325002639055887383907803437939743919236047508661335293231277681822602725426268253985984056320411165717050243677032458391133317247512339550851177935629053627809129174364382629519020767574620791970926885683122703913215201640823185568064706777379980923900893826751930428132168443031988244505331474504151468671515025157159317457076773051790066637586906438140605440533261393700163904019976787532254792720190459588722900182008993441793171904489301636771447383390945741426277813849416652783009715730519133050530525936584361864174861956047455942727584190536316628322483133687937758913018263608730128709515381648822429209359367955303304684191595428283462257811967394266509611536764478982021791604644555602332105695355849027865753804057925987957464215743997871588314709579319643176876559956353576766144588199727524242871510389101369267599484860309487665539402332670282364044665095903950577042021372565118079636430434737091506208761075100545557990899679111054678673073538551540567723967852680270244558081101548667394832731899693507707932055878389111904042742761981340990416066999154808030906125670081603454911464703380702782093916208679073086478374242383926913669216993132157131455763383277466511109810163936929118901813898029599219861352117363533879623561209582348623290891595463365190746939314934826151879190733888155354329687444838434243019821254641238236748509443808970373470501547226671142729889738809995515630763839006326844839727555324749891218020769405955407569806215042647338275762906832553657879521682365097215208570652730043034081559272833190164249947826259449859458638565388618836431159918056537642631192976044419664344794592692647114746703418728591996009913351939133168466765696692014437142461436113598174260676436086825305253853661823401126295957146269785646408353004428890917659806815053199952469297736302785264042684591143059397336014196926218547699615106995776510140795974707916708312069988738442223683599539176508043643439724577938479489319892561650354756478009720499415662906331094158895757766773231659359580092806013649986208628971533851002200788006289988776460133462403761249784320159092067512792155293442761115881827974215835659687232123773072803182126343730825562379904216597039590235996969361740148100986556458821516190743059949774382096204006389298990320884044611761393329928010053603460365644783432838071385444818343005631287608244026313412453592683160588963050801224915721142402293856305956189983791062816763859411568558765998319886490591223447820039856886145158394294235388041912526728228847216331140541150821042956786276374701394856642325240526695902159352617685938938604957883569793139565631938196904950382914066417716719361149443886161841531240581467520424063755083499910635837408705633463689958885876691712862934558579286878788464404628072268158502152673862650148783255275057499296563091333844704228184519882750735174571419749990760510664309832471405574584360278510105651307406419070531313232851916132586362712813424251322409943093574788806425665876174329617601984262699266330482274259361818245652646148153359886397476655326518712730602225517935865925225040904277042230539395920287584852181522741252381860939474161388309076582475191918840425545438421897844670722276369223770590865928611985995641304169399417735355789512825357698242252581284101879068797327419403633592778133749754938395138355176943566495398032609095854215199970484949549552002024454903337444022808564567214917067012373166336124862674552401328169045882295442099577249142122456269630000302480581817166706757564883059903841133098933735924922822733790134704377730198379311788213075163811657471528781427916747401338405094480665106140121719842361763513091102139044976819928075059787366572383789944521710591952491016852616475864011561869933171534175137039373760611731300799667172446413450072909655302636771427623335963364416839802186719183581529417371964153952100128545978194282589059378406889111699815494237867500159395261617026579943598899178347407838866002315099639161496575891459862951779225771963407628225481329345970303625432827446690760908062252856797264754844780229874255499631381900142970647109924554394928472674934297758014745336508038658610044345760049377117513817333070708754093893588632277272355325446268203221870019689870558375503625450601859859751087776021725001396135287894445403503203375050753101627814587207225558040689216852665084146481793610464228793132035180193581203021340569942410480403439146966430308010819829576024243935038568613110896535762879810994996614799958738143424566821405539233763986165479484192606463363452286196222375842823405515852985851446765373598861942749046129542235543867269198565343646313276341578935091175628785151302606446173707188599447657531214139477809079298316382323563979446412829070229074070606130994087134141883465091005112346401852052597881551510093718371264043410622408590850809720717432224480944236709533874711671513928162304284523943395173392408239164331250518598777486012610987495036544026031807674278698253578610868859240082866084010542605892134840347609127518254203490713581592414844326195968124856839597717587792516684110172093989930682023567520548582333517460726017092080711243537674286887518074320881842878580146827103092083454761830700442320564388793496751224947252889543812610688957659591090661608947601377636653144434963207371414042995407587114747586032478614847059636721485646566057777945444120856818371220403376679991885784330675090869848293847287035737977971879492921303449193916800803478407898915170444471394093017412458573636138387224806384293599634167756373145683089252732609093010147071141044599352341852040225861151635633819092169368078964516247273019066301083615920133206859465374269900497278108813077454631649355740912219584411570050953005864234010705685389510648396490842446191262368112776387759628931879859810030720740881859103408988521838749988108144670707687743994463839221238680455700141433142426282165122253470736426301733405452684482534357039743253759937035721850301876672825675281096290648056416732089545847208477796820439060947280660253128205290918060463376081906926001239362507100768263956347037997793843696036243656511376725165158074686761176992196504165246999070022018184763888375294293022331608481889542893530143553584631957779586323430359776786430677876132054889514700358153384088358835406254113467548280982037638475261399715071698870589877226606639630153746743061285947221404468931220365851251014127412661458545718088028155036937790886779210914062033628769977697712924822944003637993160041371109855941758588562668186088483026103184672544519137589571242062341955649526009247393414639060802088975532387781607659906463521242037664709787344733789264198332665075622872131168347025459564481724148604671141985569743307776138925490623149418408746506153393229224739190612181784187829049002997877566454729675669812023355979618970604583610708109355503854612180893906496097664221664610760956850769314451333954885909594188705982044639620412565939777507338414784778981129175437984984629118047695307327527477875949780393269519160243264246909204866036139505797104793809669078767918320408045283663558466349370935853438459884670162015255240024004670489431720797127875929460216703227268590884370532232142055137661038697419804805259121460179080272822350528043960165119085096084114843230378879588957652697062876204135212217111339432433460041011151394490737986689601376179446905469824333900559481014983064266850382572572947140912207513385804787191733142747145744999420639548329310245730299950120716563867585510801193236253008420697990487213703808344855600687141816960040111537147302566537018266902007247294644543037856212769570929024691019930854103811004027074745776353744137279309294492946628723904053224966663416543796815671245881742179011040483652924342447139691419474919030277845654252307009545458585379544025971171799414222643808954481267301019466219349426670961307521803387743751526822227384601037877094331876853478899574140713069377498809058829963728075817023693299779050112635828574466875238106402381757359315263033117626214503373883573656308211727121185717233777264609988456136338336287349775294532168671169546071066150253199974024477812948965982332139914711371488452370696227941918353874184948150575716152905634271772351788738862279833212668580662092751166977362307625089641762233834515868185980039756593274271844565514472551404786586940981494160969388890025597171834138915652380341404993411170616893186136106130137074620530315432050198537991611877354058077182335078937711191136973962418705309161788306973134603531343362062450055789348789624661245596189635234041383052542003173850548393152711192715576298067158973325650359346629850819246189955259576879721781285526818020579146645689169815327588106400701397281570672546249961815903887486287045211918403500424065639482888162746287736654074132552240466894259481686791530682260647442041975656200168767624854344373389876715488576489338707053484658824553015630961858974494245718107409301463596163871231362582717935545842976738105048210637532739120574144385398825212377040614005370868725347352575306689846045276844370093409305329581179414409738778431491107077183777730649573511399761474668770278292579019694261858860344363400862311707214076514164608498975650806712211140851590070129030347094066734644993623182178697604115456032601587087110939160915914551298434695147090756020463236800261151375455710697345063071872828077909299866341427095456854896589637396927281123785006460882981663291103134687004883586275240019757443748626943530125887298137507400550252434360663116146390795458076917089188641450790602316974732992366984351946873212312084887920900827547285455058658928812277082860457075836029441036167290822775059478342905798043227925422829546464108940564715151367590384427117400130249861419087104446757261092263967115413059957285302499747932516708803543622100643121317765333666214153799463594023181225406163643093763881015184854306469780227217142158704610102762126644115805133899744717723132325006541319889497894128869539336413548120235683758402061785906329784073970477310946068227135842808848166799993127822981482190671358960196255815984973326816400853846804679599276781355035218923572569571665203017203616237377208821299491007864987891232647755846715373865927269550900291841280346094700542960324262376169963432683157942823300656311422174511378895121213286048332739497129639400654829458140098440003961838405707089872043748991554108728547885147457402528914904749421091546952696669315664163001940650781058103851423237990602349010092736938682736974133030859568130683100464055908040113335688486563546192682960860535938254443122184818435247341238268711790438526652922740547583076350103810912279235856399860949626513458344596499075525549321954595277466393402152779335930278770552165864784362932712333205685454528688055066290209907958998941984561687489750511069615416529636820463522843608824639370780094535015960535848881360515206008152954612267017445210031014720579925896547127149028754926356754328688117607341500046120211299193517281343052713153792910781425777328415211269052372040670063736227922308930779422739688425119692951662310249600882029038508037730034873883179822892922956583773397528351441418411753019283491265629646466719741410142138386182489400124732143191981115865654542449720922043117208956348080143216340112174093846065160005036039808649612103246563235632898770965717383783796626664422529991750092511202247859910856255890994792901527116741722731524424505451980862197415895945881104752543418729261267873194124870048027850539093535974172756304271713908169754068889325096260106067128016691812763544666182083725821069084186544807334351575925146747944858059203464261638633340668599107523859058911656065209472134309716117494292232988417649619865987758311414123022241235775498084657649517060178110324937440690776505554956524595409274620794298109033300721643355106295525305066925485393888855393637486814274886397731005779290263728251604265214588124400413451355797214626142667908865403557464368251676965917179258322010178661082021731031870422932772239495255174980775268934444431035361823995561411537793109800630839420058877493657537043867595150288440169286868913501827420680925768596839645557867255585248005120982930031525364736691897627658343237687284626547249369944091601239928208003493653672369684567723731663633455696871089876833275577406041410965510159933565494562423765477246921795292540033634674821167426244623023458345350573413605836071312725075615554351448381977269102106481460846563169354263405690746412421040454935051765517416447358493131590389810294305252326743915209288758614697653484059831621333052656300796017241096697247831563907434695825472561684234533821992924443725960404278948481114983246224945665719435165419827153930383283588829912185813225946232382464658620557794966385273884796076254574172141067689211852842927023564208159305682490441926044901472110181757147009556348115393469538152161528569210742311146630530134466437916298025381227404885254252165685500512352133306672776862597952146098132076156351760185038232480942082755886431781278700452664125763663886869064208970626276753237358624774699220871702593720806438601109774811153696324355041900443753271952925668672471272964889987841365498609019412618390241806860560743307703893005105035247312351925723094728658482992304698955082303626479746062195458655530728795897893611394289400840880089508790382290106175151903483445624425528194859329034768698812435735608389867170475896459394063437219302281886149276619636152426126978350765808811009366118042344291690331560060540826429097746199671627110479804989758694780018080426505564260100757202701471798751768009608211887752643218469432070320228417290485767395389668950300586130751005507843989608401522493750570484338214112470630889312558602996637809915072957213828692079170986850095559040869639372207478971189121001662772124573354766206910447909523784028265312030662016886145646816930447790658751113347289271623176087752399839406556951709122847205103195989969930426506941565098716182355009816618841085209558066260230252873653186872972608627077322179185180348543276182588134668693547249870121512995264569240864432575255070543915735013115240471064574521722083174952960590011955732901488231241436462295073297942574895035106643344198447537133823148656642406370447608158117891350096715672308299557276608612414808029656717865381938752472357331919521899969223524486011218873171138456393471995282893784775156761546426668992370317090969495958801166910211974678563726045618183901427052846144248946970721581356750209270596866252609987166524376024274739692279703040558607912303438437686161638428972870215890484457281956591552352668198325771241452655434016819366674978608782768011188125011521526339871432013008097849741631368004310757936965219078348510969138741412623086701452845242693855575476127259379441183464745078329448540776194171330092463036337512830570660345515486173743068954552184462629155382256236332038080160274868866143476003692141542612228159325942529407948620800491300884786185783839445840941473873289987875792716880801750127496598090720534174491092926577768985705010145113884742403448243680443172753875963250620303880163324711127477235284168795511938411535324493645155520156651076121369041298971734461636839787602473566470509245341244912231729900687683336825919648921712764383625411665240258462954789462584810103540368853245443109250476449114622349065461926034846658509530080059293380458729274573402039713955924102713219323635578010616139260329579250501610078402927222218348134903410528532536348587519024849086902139745107436576439759217053748051255485433159214360677823881008387925025532210762028091982796628157873830232149823873124977804230501236574689078527053110187676291026008831613983194980834363642337577564773147416164099270002193132952551470988955127710083826331113389471250516118526239894994599251954135921612756147737663502310787806470952380318996037958593329841525773331747869558489045425473635509575921660344029556909807706642865847980440466457177884447843746314815086402353146903793230224142218060455774969811531113547111512584332780068929884533098138588952917008879914803986179797406950115129345308516721932977615862919942009766036933487730157900008574525624126206175693510711452170858308648687645443559805931517372704947624183454579548472293420211598414875895328905678617289614074964057271231857992113285864597441724097385391691236473974374827520858764029628000368648934091845474447962492606997851461095659708939112965479438144528494738750375187558493990218328874281483244107837245466912777487675325769063991225897930326310579932652353437032419278041422845427955219944871480112046016787800000627028212990787857770030137830438868483137619502978952501918909877448353222294378778681164331492574381002835541660761186065336554925859441480428139159086904692499791003673388901882003674568291847599540502686981892355763158065837943864419553730284973380864918967915690673880052631826660655592173798697995294608319725492516007177865649683661200239898258116051408057009951042617854058508321480886346642581261005597276996068548489489802021198082365605886263479656201939593978272474314431910923893052934819759822163230174187761078212326659477423716089193952856373424458839072264512525923608446862670832928822591897102144326054516929565780232099968093687540523987226875027961561851715231525516182936486167169403455611040010550269669425405046983450169329443702997095818649555371711869160600421214272971265167136792342427861844935623930683927089867567960958901165022407675019839048556100691683225238930492560874973583709077287059430549237829668185483111990850438243582868338162422690735160428841228669225804072358119372276771494463288871895230659313710793305125600742849932070454902397033780072261181045396685407393906544204165121563622056281267823424764297619199211429280186566184449242772134629956880913471332993963378251390336260967850899313156311052404853291683896424181070486505184962506219695011231036259614589008928099540671636935209520847175770664912868205972801293990040634463680565260653888740680507188965694217978112396187546327649633360785558913190022631797635854644179730003689585861654107703952670284269037152785889117460344172900468476717258228091281041255934916980265553831618429181777674305937997054185921240457925073515312722421673053684767821414941924190199033091931459565090701763955667840020476534639043290514781498319890937424087391772114354785190629785014934796374928664403926787993515096973331774182528670949258964346292824682908728339198498997265690330830735313010699781832725911372670055613925908938272562776045356449044385603515065379803238782780765882140657689218074716367570036507795931452807405379837577935108044220097640146277714781821267790325268927143185363302582658187928766608111835608315775923800047583340296338804380345720868810827391505674780434957881518483829802927754677971888383003442688851591998816119517341483939887933633766301530769033201788014580929329038422226230386596718491203748426177687988163029828830572506710478250663713638087256322688976924442158758902373923319731248922984905481065300704083028522024643669190997743112755627412595994764406254963015728689645665399477424294536929479833066868891982479621767458227304814222496116531784539227063563539837172922787102454468619602180927961282156617646881102944008692540926011652270222140699410406897386823556343194747311316574962899187531230314815933809803549651049788015184161358629328068331850580429380862111906058426068038299330958013398582357369861935329680764804319980700228426663748517437534428211054320576896824759986107756292982151591530396111876977812027192058933544738029974265679739615965200681546570674576546978386079402947447473666343496360123853379951327084004712812104439072297982362516601370033817867461673052124290924968966212565483043778320114700296585364490263482539301053330534439856009143137382493064035944843744054289719859316167272147688334291929722434066646682216706390485589448131629420725407354620224136853431238245575943686460311760145855423877694613015408426462452091461160585454381648711420291139891027090416642810307372810340554450180612385922987765294946799121280478441746326566678069906580192986347761512954654191007533667708186951451637546528665247757356130302684397428664967395149525157820874701962058914982054307905464274745616611381386810808996412446352471898442145628682322472377857875453507997013514727110479999031266199350075115841005828282904852366531704341111125854106703074188755785143498670922117333104749784889472332137203997576788482157847062452348185513545779766228947590687859941424310175203680258940705372568056295714878273397636901252396224583880697438940655474503828606980582496622906326952923856657033012500011243045290736700605660768195916507108925073242277202242754149814506723095900901729463956586377342430385071151956120607724777733866921682376641424885181977894065640507003690779183804950880598813070827200403768498893637156606693371488929281085194767552289436143588917500347775808233531809717834561178919963814645816796318534974426524138292726437552298769665022351167358467049908408672165441196163264278074533878628131089812264909072519753482893779737441550136628574277545108149111375907416502406041704370429788182668517728688938767189442451908570770138526397297848694661224031907310642744635691627671851064555462468726267141178526786445216587616068638845917435132098288348666983882999564412145057441707325693906063154424277089915932128500122921925999810611365368951112849127262547842293138870641788066304648797746855353999857598685299730020516232815447884120218015836250038080544843290746978011135178584905501621811736884117994666131542271711564475954014461476367658791502309177742265009395196035146370593903439658303454259245933788725055772265250531924437426768087187910038199857645491398228840131608245212125829057844100918439819277437205748268495271699573811408143150027975974746513492442248680227202045690886603246684335675412356494166402894670045125682844480833567387442453556019066266619105645432163019591902470162114395310216648599147861780490499016293759539859111559284254332791098697885998618292838466623576663451807982491733424852569302899038011527836886968568565714850557268593966295248488648580186783354040950111255950432905561100296141320279028512538165579682814088306570620606103470400083131322914234971499615893711603034580411675400101570107821427837942871113513514819624908626045717872368293501790858704467937136538765918436533409618157614154199716066318114846389948470003855816272972344036957030676700453988180533975606831413035773132042703898449508029325150031072083108189177778748511673409941211557921446082822050652990177946440959682222900885512454877778368375130230913111622124701752850023207691675282231445278118516168846176630856485698185238668053542908648717919845452645821364899476860983836709778624613907273655545114900470600221664726962838440825179760122236334954292626733706550661528848892054142493430044201698705042683789419195505015980491852373484429145521203761654064172403726980760627708322536369421765303579036562681316753407619446564753577961677209055829203522045050352797266791305372355941006766782597982160181731363833057949214318281205328470201732605471930959886278568120741114301476387427879370658609886015379166114442925650877918009853384037541837240643939700480499152033543169766087668268260473850239525343000016693926299629076733501771786930571460224165645228030977491864402136057402520140344707104483110081122173002151978920291485380382412705557094066507300512561180755586251068631916861733013764505214032742994989884183486467232456961192741311580945635005166398075219411193230267931586442986405924480561348768736558337566626533955556329253275215955645830717207270877601760964438843535737819609555145829714059511925232759338977064834930329222508757389967955210146183964068761683521710651357551349378069529660258486464847137054352468501649460251649632752604987669216912052820471461238552545936158864114030117173356583211358973474406099734824261036204121138738074339569823215414777790853977019068068740881214153125697340282418066582608494400494704587538033892291057155727140276547521668671277746658939645643028129155637986548406806262869151449790966684516291774036585684930981408678783371204367562688936380253713332154690493317558688918700756168498778843753396077078201247673049447420175942046920369829623618158895377914264613497119769523054332034186029387714546177663596598200170889936858058164410386278961426472372781996641994348972691340612484751009149415712173366347348431208575054946171764468623047416698320323589215558094794985146862803317380790193566357621547912196567430136081534267806259592682341282954035338908656472033108390887227502815249202187651551022231334892620724434785868476459914867974152937762101791475080113877358729006600380211554556705790003937369783449208041297462899490240871936218663645561976922882496234041904919789678848399104157757888226967549967860304496280765057564700173117443373183318056943962332391001185600753499702951735711957756568322025738647765183218138747381526467727932143327551599551207518739253371874686541971469020182517577648048812033080602238274631808427034574187542195533740915962682236681652586303700462960887569626806629792531751741820529288438453727993162374377031870184458637624166613254599479601117667007141589880535223657938839943381351311566332992465138169970295471624916873310113645843346737825449372707326879496062590817971503840023334896847395327550850119050286534373668092751714645412274917020596652188481289040612488470460626112841678400913078307447255235760421788735490054057752756700794066612926782637813425549031225626470827137428640116616360421255891235586196364478716015416050076761685824690968026790089801463837787995835990992314169904880034151862988628466204334658255342968865250425794008410545900120038113602052063668174948767739367939871340714827813712922183021800787774882758373992162018444605146409541443587234506558692678259949151543432355252956879289037602540248294082340490852716956708327498184368023268969164432552341192505539568073269700982018950121382105644549557399797503595311728573756831240399379259627734816807795480103881178609370295163953174409121271862040635215982809291049875824043166060093274845139544081990934070584745380317898843260329999757493910373018750760377160969018976287196387587160039627597349684951065444763111026969876956503338069804524293253018684484249262939380196217623596584439234197994938833710617303790913784275755463117656313101859062790466275545287873452406566892086217785077031629771121249536694383800109052075890844160168781094523186592455138379264049076823265274857724136351160880729560641333456401857923471173195679172782394182749152151481217070400642298672425255754792787542958308887252268367235244318561264172676654281720851768750991597043090004485796059717900708022151005138720372946292711004802956643233899177933858991285576457353811133719317547156804524023691652560581255477162025510781147552717905514080572001759268250535269489587447774514433642695318152246703001584793209926985367218181829183270505364276062148043626086887141564722877574157412120685174763437238817533820506259070807475888554069867125878827488893937079737907122673393248133856272138824516257266977992068659667977809401720679026916785410038861626431640687850264612644095433602737782826654049706831664915333941508347425410580375105791446172854107285938751474715078230538814689114941536553406044687142053135431192769842685630159670114651128428868128772253997196257910790160920032096639610560960188984744311963796853360616588632681841302944541174420024593216350256630925509756092807880557237835015711546055293235288227683003207102982194406896341019831727242775252131138244510572740433100837512823621976755717698139668860382946929977037622227313384452072059797348748987673701123836863576845696296072664064080088493833524175684752916004073148271665651466701302356303450285890836750468907032832636376871098718600735895604593567201336241210274457407835464421728433737913654889973149054732620214733231983440888135507977369615505604678243211304542722121203839724123010041944800700423825170070152485592185008999404369270293133697647860603389757909247527995254110913658233360169839575090789576975413854571234313632692409142362974211050279194659732140208451365128730125699046832865374933062687362589804851012229484550704326109077002531463629195318949992478237408861789845317382534882995429611774205617790328810628423189392820460439295728194573764690120904434592674227210738608115235673758158841718162873450088130485253005206164434216027031157445169283297732699920817621467967993280641214330356124614545196261661771693679035529542391827275833074684501716129038374937366904994445946049597125598603660969566488910992622012637843551592372661909499846916248744017971822876463474497534810369987673629927013755677785459688685883424569875659386885001877158297896986591756994824070930853391056075582068495748854785454129830540172764182522304976548745677273312479425425133138388344814982325043639249481916401025284388363665785833160758786223094242918077022142591860826929593886677217754614455059684239397083832210716006020723671842544219185533895466942065280499218318877089310163141641866164970921780628386836533625992229515790641980059576309032971995475803660662156956567519484915324981262420725309515546357877391565708976314008087975042108987080565722065190169879367682138421091785076693833281938090057054730115569496860797695632215920715297500456222070609240749790040663818341142839331495090405564153758017384364978746743908943717795034708343221816220410340236198179900550358349834372596518565812527731878464640828073634625091658825002525814298525605133900059324970337611613564469309011561398886126738951126604033091111156557426148338118252105562275790005320309814224690848912876857351007352771935254433966993034744745874935457203600985434670495358430886491441019925946602541018528202903564940644296131914660249999430944791002410228070654438200926536649308860525582385798446361360899840771310081695140705401308795238653421988490057828765160684047898552657056943923424962215460355368467581073885142293095063766674498422199774188303237132733351340171698200602532953993480717713654216327369276694030240291047137953326610989028110906697501742749117738592716758577937020227449655777197261930955836373166034556739973705740084015385219208499576887236341391092534673712302851448752027529988251638807014479639885364164487381979854973526053664768633515388754679099670148931229411450491198257418867533272095818427503292389890792397929524063463532962415393962130683327895177809883159922258826515103174616734890488269078707629896749608710379938898259036622368011363044369805012793563007512593913374917266125594892148940040223158945800333290341278607849834642757373748851929310039446746054915698176798808107867928353658492063020791975158383436848238683576402458601532513881641833361735218051767058452763569224213745357423898746828022677034271518850842520875274764918345938977763752547687699704341275531259342032059558562597327390515765853379817879587589936978467279802714572158418577708448478117371043280332296051819070703594856905767082509102119560939226859745917310820888615403646394970555239303042304383953614282673607144100736000489061990965726034841843401131050942015715723022578356557902009848301862874274613525224452405425254594639117015722067357911881577036666901695649400212092458187524271376941465113943640594752496136786361825606248364739822184879633575738811049539318957639647738746259359066391232415407177140514993245596330387595213814825989341831247083139610166829543804469853884179631573021675713615564142130331104684561977336381829074712941195406853804006131727682804085287019316426738977725974957134910977164895703840458739302092325398316191675489030357063968493595597993689922787927178602294982954446132780630981132098758397873726493072675416600812057640375364255394552448156707331872477867476315075202711779505263558361931130956749793606519055134555931676327928058106738475412719924116177205143471652642347249524249762039613921872694617389521084560873102264311614156028034907457373653606752894598019415192226758315616179028332833735603807386259859427650929022376919478301528973894854374121399374263713758117020448648708483595017177967969879971721774462845104130662810975592331072035314810803910658288551054305848869519490361508445217045527177907415224596852107443848734445652045325959699048937699754506859539152172996896666157628594269674969714672282150520906087327166105936789127529524732156470588241624387160778848954975578954174175299642838657333439833712345293501161018078606998487731512430538785966224836485762840316923717839537090259811989421773419884005620269777934639142363608100749106386006201134340342635281950170431772465529158680332077241600723386786128125682841468019294476603439041918113619970118115415270558511038203988582355393208023941426178205347276509483567836485704851067331090607158440272360739332903571127498155833839140081081342883300189851745063886765765071827049280854042967374061749636629587224385744479698037613239474411658507107734913039113198410266743456605495674156300575250665317338903303775159220355095890526036846828516360043216662575191093443664270968718084511545336175005983698983922884473237631377591191342722287861395964252695286039971576760255255789457545339023879039979882569994278862629884172688709074524675942907478120610625269494301104274305064104623596670473013687943592659400284519844034052324918411691558660292633493080039624269138432125198108939062073992052883222479273180878585231892671881420555481060238993841004263152085714305013983620315623276868866166339023654754865227489376976823480104566495726653724320678995434077277631000157636088117505390070807299853375626342777515028953859828165849045791362767786153638561601702055692103735655356888098339886852500767337786187839366973899215559894882550500936817239762797111559987312825710471017178063884254059685109484272046042307517461987139650660180782241374687482332018248676097576598504611491526517509635847257522254354093559846581198927517977415945952303012685118525288410629617376766639372753571248603330954196903683043617014175962878088533881414649863939403920213872374995032004360370369782173036272109950349095324260447853103019269903308095971062438839939171429829359658574862407980779868944267015932178670390048077847344948015138978839917744625831009560214918658074975431112319682450255171684451259298335982652845102148525506271417788289455161470300070232319208714971421268364626010541694537045320862848071540777166207946437798797195370570996103832626139346810331542418616642899953970892682490632861208594736656956881346703221882294977880600316760075037553983117424515548910504815596264641822313816811022147537768462957852568203882224665714371744206159483068148711294989872700163220543142607399631707709931317648431174752716277328059445524347287779875036891342007713088843468812570604706892887625587598863157627639881452082451723145434343717614509380784301289359957322863969577570106398879256543408894045279259539146013980052665839616454687319584813851979574299858405299834304497112314254560416923428768220819132400343401357811772267245211566575610720592928161339993362222646176255045698616972895412453781005949008177685387249274445278841033397373329441013987121441826438374717078842823514491997511301095659489416888680839903213512830217744169583416262519468743673796191259603746721030258923876676539464574372090556758555876591020944330682139486405034802708153738670257122498180375188460506082147032572616269602401842576244344844324321578218255532096448735271044413419176048985629727061096712530907135112049017560665087795277492130325813853335591451555813864028614160861075668644281615113361597876628218004680289368328266685072570392181334948940584283322064731949724818206133867404851605432596215756040682318472193859855585869200906739678493914811316594260254256746215646521337621514467509788363703414016442170329636837501325958545813244192246920694765163571383046314708751730392828964158638839829948755121889360203567212293221054753595549878774456414790089234031898896590508830830644504519020316394708918500585216404954665996642929113431105471774011324138389693930896143830226156039794119699815575791426686950604586998514136082936234841311174872543078320665314647374199411978661679153980412708237965433926470043623132801366798199035212855718869784458785278244041299236516276337467783472593235044047340380056634959298547274864265655832067263009800958083923776149889876642072504751995870488687686542747899704894867134878979925076232985111035905317467277333076653523559311987513545754864800994120590679041795627590556543427705128622948907015235484906150279862296638716687568912552859828969460157237395780120958474024273928467242939359119657299280488751700840409603643657096572728395369206747778083882693844600732207898230792053707809917295609537854106084149703329479153967911880398542145173335823037828797376164753482857985647883591054234554453488099770564797260625701263867624031579659910812713815158170601574299946609042354221036445690972915620658042570756208218835257473696974451098972232439911382742522179980605732201034841648620761248885079557967306511339500641382293325087180572166448887953755121900360817556399627954818750099894837447474663376337085748458467811747281733508062083335577077193541578731189122500332631782071553365588648040792144557938043505934699785168882515525952785807021370760612480971207594438134659319316945333765209417777306437280436210440124838838012063603895548731504111907942939830128751185840500908670403449951574708138521510009261639436509692165829445504622068975910386531911508738957300121362958197539884902883528660638648562652292317011480837879482387221761554963998331515115756730242244380686266071948370693374527137061357205028547314094156234369263405129848246076194598469843485113122554031919197605792889691384689116406968769418423567981737643278933858135251962603485753691865808888439896948265047607624230867272301019795883960458441726229696254719618382673188290577079157647026795338827808740563631224650678013916081018885998376688769803756728939413307021833662571536071761415873482956483309082127655922635175511462036961107107635472107110519084990082812907033373229851925962511453725092342539236320563997777346364765291812180059013248048156727275691792003450665091351236760271796661891280207544449239786007852690427750432317946216962946604858870098703750852515218140708721081729826661025028138088938103688802047124636253691639231440039899800491618060766264822617735726663149553357779638441165589209197881372511576637195431444908785920518255877453875296512115335871472145204674730915216847924885980266024952988904077120369829109685532799320188312907168471497644276453565871460614186950479904695257560231318338731284995138259106975503882511686627280004632896080665789879422082006695290030450051584396824739717269165120028022732737309928616286637140552275710004563118433896906383667383246521052639493646056535957380138768944370835747940425945317274178200984755359923667922420157365393481875972943953012448755794744566338178644371454499407499930379236533151443560569747378113978812590306530490222911713423165580321306729249258403900823517384574871421379389100072026671815512877605588892188380515496053487369911870537562534123775775222041115099927214232637622522259679491019789560190440985608731784827291797284051024949264982056059490743196348396603361614621826479906750054318940906423341659333333066994440379465261766102524345437295628535715283982258876653892637491234597392681946152045842013711017521968244194215383417174880350138082977766772578576736577005981338437801370890717876714884689704371948741382827990580523535700590375178555269644331362071777577464574713616027503073956028955518166739213088413250181873381161887688776411774575878030677679156387154419904597478749491237308856577237614975583625283965977428388753305082425008545871991266790811703425110016066942131151485505419264766086444235292819755513673291086785271496500736206419935298154302382887629300568933520502926254276841541719924667199023094086634655737566614158689619756881689918371072609133247638902264534830078808466589230194269984392479242569431051324397258352250536335273700068558124210115090126401902725780233569182083407739758168022394350627493984384657536608811708477558289419781331672696817970631391941733076985422320675149592324273689704533118637427893793220051741810755202968954032707899678812297274438234161858125468772885655309009254923395325300357457540976226580902461345766949858804371899672802794333321236022159716104083937965452216993856774831811278606262428840341369427707898569374072410304516262044759328238861187906721778305102303796672473869735789060253122741094921428390610565915109250512597424197411968395100297829987142705777660204288404887906790574242334364467994771763420287540022694335774104189621923587862020972070501230553141998821028287218971700942924137384029559843933547226146536682132035936380505821341991663951899361720024787566490135594565118009553430134564615641491504721051634497834028338017826929397912578585415520146543950954517121798898111590116210507899358673607923182394454114544974644346988377181145600210383072711815906638361725504950354931650339360565752180781502286406487439015100356150654766905292542114091079714230057084791070235295201979503566025165181799988887590899507407533795388173631275781495079180945376236200526675942844023728947514361958887332952122282093677888212870742616660610614707342316778637096893708605220602983597440214036884131851972762821425025299820627140887841829076823032575888805203244077745074832107139707014491507520374613909767837518193582361366166352068774914254499528402020614399248332929259243614995954604380546885410278824307582591029796329969659104811206921630439904767592352588451109352153399191273977400378221197554367185742390148070239881176251792716851938986166734627808814224555965638256801529707099405630069623237788551802972895960610221102674075356783483497853808439228613952060268005276716739143070421349546249155977729691843535232588969252141759936951996544822486874018255037706114273737896281690515219545963041425087493286330094228655743757990444977928875553942344326437701291270811115580134382960547100948369337441571253588889463210401408336609766157739598937455281217866113168596941686494025316177106660714985182049001616259852588564179938863485122291434793629418184020160476953101160142887765812022664222962580487157694760832511341173418326986902282678436777867806940256135705167901291233303541708365064626095727527912835448294903479192015911493989114802778266632954346874845633484847441383254702248304860938425266973290602767042239399680353229681136113986267112479350140174103852048854921848880192185261986212255228282007887237897283816617290987303995295718348951740716535848571909681389109371526851723766584919998166336255737595538469257589258104361011157595973340842756961981539028705841060225783588519147488008376140886021717399474728021804595683765306248182878971900998620641584787307397987279178111443685063571142966875939021076991577340177556331770697046861382209032028564773283034415522460264842013343385829262608964540820053642383942177499503083079824614835650090588072506480564851237492277767897731944586516097419057352867175255716635842981574065481909774336066354203970531341564438678189428234469678580714037236396552902464984327116585073401076973089496547125302628322426425224320360900771689251911567699224874350116077348520199835345818145044150011651919637782061038846675385124523738741503081022143822403822457422756033316917647450293204357479396268132225265723318650882406789081262699194342310303781388917086095660824920222692984879649164669410694970316833925678899332840733117305838842252925932453592152176895322925977689518534229342156678865844226116979311230600814382578104597402687376104424823290944765557977004273186824154794142257704342023423915943702085710732800218399939133177793490230297029884214222172774432849411902827744517244975557349790748940444722850573139195702342246262741978306305926230975252254727413485529289440382744708412352196981430744782284098046282345050340868130547139490503459018954288793641260849818268319529725798942122749652045857894478392513264799256421828607748789239024439719085296900803861439424620127419062921546418594310708686451303912724458048161228554725566551811034519645916443832832872108630668584895793559244637540518600741485568559666267134076082979870216839569031270201866084597986783958344716756537206873356332638675856281900250902434097549554658640314101959001856308189704878747137939477844653573018623184721880450927568258443088481260663242619102723357426450594501577255517211323711525094599633913858453699780911373611241447149150585539601902807123484647134482292322017885453422561802393054634375069228329701929536357708125752233625018362686643224592511308942146926373291254169206742623702014031441787684407000606480624351455355115067747783580819983397903981116562463649048210882698100660273291461693795388993398828683379949906640426176250257709946375993658190818359324012751918302447895981644090488331246562846445863438593871863109128737530088989002969712797627389017857859538245881318116321779026848458978152046853027581541401407972400953435152066373706763871359367616495354459073292740675396708512843010919859111575181132223953558306298374060175767129845093951542694895463313748922715015998250656080257241725921967783436582008746255365379239175721132126806232679511324837209728137318606047913689604438567436969576544584580082561091711526782009933802557969845415134879135708033607751940329588420685192313330566016681174046337120298367843845774913972736840022022031489118826904502172797830650130191119544269351804589631740876083080791594749044075720086718197788402147678606266265352285037026853410616586642045868713986250643637443505905332404123526047626375708602277846592746372766359937728280818049662252221690735775946009352610505846900618006909294425680284728189359103724027219945038023277889250060993828612647865351180638530899890543237639994161921820536623583690518186913256715856808588112962712986809916782501363841691862316870893377331227664513550992601397823151671779956435034569592926210327046229627106136408200621698842275966515041254410129156803909966787329792635851662150478669883721497489753094357729865297906363369813755118588218332076139822669954022788041448768372023109903884642231986256264753326637549650573177076411020672866634672364789203221199351059728992587876181533778019541026859892083587515755913618576463222104882364539830284678107805014358465842164590297807424576358845816298129790410432067360624335897252124874556993690719329591623701520516420663621176525578458090938852980445668969570795049919946867329066226714000366121542678218329385715125986816866581214538699274407958353727320939757662102074338321683872979444071955136765348488408622534922887473352563489291330231140497400344149630807851626140683922259811896186160560616045128500743666804293044599723179164385469377216120635160654924697217860078216783684087595115525406716301351728411718807725008507850090797272341451098379611931008007725813471371515266524857890094006245784545332865278061741831313314481201532359270268710495942981073754669398578254401990425567974601718011749802946030952673204742886847580670095048097852231970332300388469867003227219864720116168930689101696647829610362947624778272009600532297322673428484154972528465142359371725216006976236263358242980334535482808445151000572748123401253668406897562504824064521286054733321666843257011462920329347879645116440357949540904214036690470670091362397002585515201308111146159359614288795980520299802860515914760250052272730116837974487676082909786242841773465098559762878003661698488790351526209138693718483549630238205696457464118921641519701024050110908828881827176688573630096368882519295667589178575229381937453175530994169962283468789084423061159717196884627963986312315953597578302105672988894823261606611713079051214165177374483119736867065386488803108195195655336613700228845806143817265719702439511054382373609254634054510770160065916406944680867931760177742044320789897240526391644288456764364451918884673438959106226207554058604811512890268617780337320524222877765741043285424765269488137473715538407032064006785500731498754156400903210636249954648200930123766043084306387711092495791713548553040663733943213291829833382399848286890884306846146498750262803690072861076624622474942764343006990188014177876934752526323760613297807109177856320222388453665057636267201119536540165791016211530505004347141556610256728006240637967300350384424892563531026877787329409924371276069885090047508522044867936432513829828916043834981976836763188704350484793405479500282130444307546606663653222584524621077319659776110284980858196359326259075656639461677151420059362794676296584071488107526472963970006966052803125674976742246865167364590172755041272026669451874873513154293816810522032966281685770646299457841096784086459357807089434137412103647983291308231818854480995464617894427867810009838655478613134082463301430074259987592820902764052964047115038694403374827928133496305480432589736147058871019257381687968467643983328505232850236168434404423480219487851026348671529287375188280714038796473955732019779708197229852834572708959665041351646212423099750398284235017909791059998819922144162389456609374960103183147160730578891026395999538700476695300104580687250504989405344525200419249299378588532260155034337491027643988829039761518468086879725418216097851832805007100099045631502245054434331742760336025288635141249456707599490436416391360556474615650815702842095487613036183696882551785649927583086409459198837173591122241325952356751476095954822393414857262099636841071447325637090374880973441451662462124436800669368732876325863657905694696708568071895053437236539655806091916865002795709258748644657084529542617673797214405889181349279957348274582023880101417913386517185197462871536602500820004939325181160292209020354254348292475793329275644622124243127224521769872180862912339686029777014288656800682473298641033845255060354751535019929060178830911921026322799813392033486634124380652650020705067445805344032208604321942150666552351958992890052689706178660164408414767653506810530101165500813616445201239516631853721547407013086246217892762592362676520393952116285654093863906873258762446267981556513214366908949923029417168689033371139076181040132480047580175036996927235214058372995508850096784135131856636360408357219379632007127066155913956440070489463921254851095216900526515643725965320458507058896692420584201401214809782240898902452979554312328136046886314524777324579912079237028088920319737664731186962812313636070052085332316399351014004445267213462770581213723180277769340127025646723814675318573833962295291692620234817240352546208607288180009425561641061769614715820931798303540180250728463389651013991698985544919455471670952820330537723031197711159999562677370805850594645769496974943746163982896249682598750295537698399466539527461625456712563442993654319030015089483828557625517851731258805584463660061922252046435862238111149525820143585051902768018414770278857006103806099240760019737424308315483676356425739135186494412422384950328353129092708442837448653180598204283790222386334474105636957379033513058678986401204350881437971957803692331144433681960654326948306472153675690125405175975995196962732854413716923807234999685812488435452192573003209249169378302307104802341572332985434631457045035121512951711175845024449038019373023499481598700159686313544838206874880123402370651321938989670176393884325331738930540341357748485444805388990614091705834612022195134090452246491009964342188589132637029385035404383820930017528878393210870876829402751422743863505005010234623653486433141010750686915896260967907484103260158975585083819612757073666633311365030908322269502287744628536262773076934762576461986443378559940232441480352500843934089310821842363568215798011389960637922917835962177208633729837609593162425971007831152013937848138228581625650328737037574478316204696285059340510961088156704860750034989308459170003307496012394270274223079729883966180595289251963042754646911223780539952487412767344141652936524545295247430275135506075871828143325890190295108306323946032163346351171651439695177719867954270597362149383303245063243511209652412134839716468534197302947887549521495572907284629811168913853813451630808349200379756098491135013797477871225034027215506650762741143118243249113229795582383936496714406389511379881894904868422180327160541576803166437031807158881689210922801673197676515734960180206432484425027684367997891569545524383311042242254394930419514253356914797441011275129087879043361362701403351697212732155730807508361716125970797026475191047123865742547804089669235801030325521817131664089049229746654771242965687752230820203930483616871491856109246936789589884777107970138569031882931409677395178690635337756596125509534909262318197219423162084146112831396885946459313295497406919492739811354214753497834872093252090796895606420564570243130214211218523328329221837100607372975422384798279273813015717898732806177576879225468624431729016694858273360359191434177652413293890643448425406828129486095264687811235290777873977725092781875985817828657246581232921265123951231304785443642201946703532161184570992841515662745410232179427081509702597757871433844455474368857910412686977131832391720656210638926682601779754157712948316876111191392511787923140996630333972609863019847434649470772872826228881311140524545327159236663921058325180153230428789497260149722156396018952177347164487742279148508691720812026709961218255718305956217396983869044478684919776409305335111544737607325801128952806120159703441489429809044818251046966487266283489828365498225854841001664516277345515158245878667958664404563772613491046861760468076747658698073643704192815873782638103212455040048380733259050084671077289788976124922648871276258649862724874788425287381413103017619521025352025104681883742024204338470345471168393188538163245680865987894806796410998130032805209116538407534000802032433840787694981838671308294684766468879540699508400142564627357372616262210780156904646258830883951276689188072645761276567190711744086873188313665813063680258155116761670571630830974059546979122456115583396797924926780316703324875833297309849666578643187319794148590958818643511783570720814831534373488176734011389730230038402202977166621928369266925408372026591519801860926616196526658079184870771003576428766113666859213358911252472571305633281508532025762616815788733564112887395354892628422148003675519288963538108837252980229454475340398691110218990459019567922210578779872111611648507166163662882078209369124499207376373561159092545431984181100239801047420540456483984796999461921862365098306818111580507072221140354677728490541595888226513585823793387172542150439642457790230326021625209413862481854515724883481287796761633142231867757524922319613100271849161478366039466402781558754000914792152099569972523059362808837859699726545025249104270125006438002043293212225020524674378673700787352363010260278337534328079258296714777006204625144234290818812666072753094030409096379475612793828926256145975557398123780932369608425757101354191568606320596171191194456128798059067821355279737957025702989492258334702617680296592441124486208107729970907148634955458706629822570354743579738928729462123898224609778200321004517472170362333752907719232349038909458544815018986820547543425830547984182463759206521326162039989248713667725532387847491328677907418439202830463637519405253460617935166032920245223952801270642123613533866909349774894335970920059507892161666830191507783954875944781173081162110393432561355448076886803732027724321546118884504039690506672352629605091330644455108994631687626603996670749915781019092812705693957364734349160303944503021901992246400927578615760623410480263945136470178969273344106622403069093655200136233134471317976111152983105951800372799519909999215566419841841664434843609423154454099367283398816322351635457064852762220829341108157677925379628646427545963034925155294116461844953790945454548568653921815954218038917104232064675691880504389137774326540126609953811569608802293795833959550354331324491418527605506486026767261264850659976196312005665609089915283941493477203787078855375505297814490477694280527965119160759744233136482454498413335488442297447230460277164354189173677469769613408977640272444953406767714194271867329171901931897948180766909399411753453918989031127296276065996445161385058449321167580608127880825659906383550885235409433498362414514120343627358051641012495593696636757132309055376065173523382527713316574237084412395236473593748478331430092122516936380939584304892203448892350696959083572956856234943777065200511544079557043376582254050388663551499885293286595440321929571048205056598836562641496098090839224008242862745073429099604415178807356055891145790180966282753728624953004753389939532740516211596631612678419366181255016945610188372083125031631375574975776653830460868466003036424153733811989237485077981623085158647323018525400687161185792953193832039203177341469212296779069249780313342302931160057734758241164291202485261228605174168682494112099098688337437678379310937856902279394836183490634010618927912828211173294618233601511932630512692582344369156628166862974251119270321731302010157668629142084765224313046692008455771522690275704156668532933756447590961868590321316507428371451844601532973621448932208478739225618659065668549562278476263876739506942750096933384070292719766303213802941089525782537922578652489682533439430488239835069001496057377193844207528156827647786173618348647665612727504189627038961318387726306275949642556668485530010624532521648278276469286263251950077354868082777115832311164629687011273162141037894497283571970875517822835035047515064565522071935052489441780953131907830809504877902861004544102303970848117061989634794628189490271704678587725012285693341447239779714923030743381049913204442328339586004376853710918204441507742380740534025777273709331359908876983015037235172141704439623842802311329526148538107787414971048628096269958697105693753551874159049395753295954369264499684015842187092114916439974998955327009734015183232439367669550155136162259795962738186133330290586065340046841129606909807176861753948516518582306594002634476316628919716409451063075071942248106219541040406203646659256789254141137887479338544921831481979389479877530228689448857339030117567160067426667870177619150291721329913624528912081429009321218218616588054272019112731026307759749372598676018989055834071335572770607183335982379767100055687072160470196897277058025287424728587810743310931828349488977015218782083827604198481219991746222483271599584889703257458159883965834710541017995171081401032202848550414288619958833642064209942331285443546319872894395717552599281308422706134153915739003184998705699973828562080101834335403396117815038968938730699169107488349350561012927090828101644448344985776271613454949025779823829044364270327942375308617047692017866347578219619325079603737560674134250016918691259109574357160084474241143305067114242256549938214715364881761236322119622386955556499365538701038002477913125378366021397411295637567780220732372426885455435470727130986000882027604853587139921459507634581442467354290344193476238873974893514762127698027903082628094377609306397418131859855678794651696384150780566679673543445993161521611445118214023857573040991867267563069395604146181501540638856349794964405213077207103046487442931947037820310590092954337367921387810539192131575665855967120007898452604001794405682115941131804988884285436244275444135231526150767438817056636556417700676531514505803793934516129205500990487923780235424461845237411875378208274451897565530471577749991190129210283398795181035359277512522722475292079627585986349838752806256725428125808857260445681354545001519129184721184289650146964946489728005403229946216554786761444023767885462553953054911615287152361811283219111462184256773764713200082458904867230287530911350069499027044803767292130683703069977900299004703994944977781923002799119722080146943066507758185477096345599626747164349620813603462606488925747367321820805364502193860128005729742901448419988924525426412155697885656831309467730666153147838108006050803348434287774249421123766893319213373994409842876481242642267035887852578815882312554948214444580949794804122178380388488913819331240399003541679649977183566759500334518787344812898533302138173875082573008375935958937911990717012896681234846218529390664816461885644342096339245265099125502691369010966757483785870275458096291190305397033223242801229407806615544640383713782834985842026416624446716505673908264121760228877563479806652619413365701878418792084795228104703503845516559969158721557715089043111869111240232140070101796769335776737488823713795994635889578064903755024244743294528321374036535524478542099851522377003103210070774971004961197096534416121180094120689202431645942418843310002086662756710656296748241338585429005463792659606190210402898972661834505805031112139035094519065190324067664815462556621301804772497820303190078339333317271910659625167563400104996108172966403361928268828394830451272972093266843574912745509746064596841116313521195522320654608242320667625757745474314909374676679592310900985642326945814054488402845676804408594400667792500263151802375178706774525191792655315923781227509650464614670873725969201539029624124990817460345326706056378160595204431354453482859787178349985879853643644275251632496661523159195856456325712964054926599606697851180890451726722770836309406862783949999847475195438972982721351407537572287675203320194260896917353258522853426736863635677528565614664697477913565305585621588677590730205972220335961080609158084511065085481572404950874984633970574163986000842681889851048388180672287002587550906598227556356343805543135049994343749049187091807547043915561665269081770519135107214251787956457980121204138069408719008000634490967638499994719033163073541328739944339368626211763297768273550153061186031230948240605400517760944650877302829906733582023804736500719637885304504787349950904861837167178860291375850704671767221128354497958114841364549822603204203735077659812897414982255634028664903253461502913987599477052256899119445331618082863333179955520348226439730591140194113018761722961109012225708732005215911339406318643679580723095430760433627920974423832998272435349293946577988218659520372700701844696605154713384180226538130862133346963733201526213221600406038058531034268368579723220245404046516205165076986174792739997929608343039045716548773698869443630043471020116815241278210404212273862696821217874225609715412710885805510962187421716159302542525936801775017533780881487036287175789251590686044418745518211435222902111430527502477103087178467382544669890985815688813718916104676146056835432712536712456756735818075924634296655012278565239631666360651513776469942089009484562609682776614265754436664380752709943857496412479457825717851321922186889506731352458869661727827756844750392057930960992263329556264713275678767238241904453894277330514538863368358178526266129832115449161185781733031113712137654510220933484841780756627700805488607294113166747333426804896900575332659927075501698287939825612667380455070852873145983754232775216278693411404241018225857671551213911727048843572819624669652119889623957960289304735384330433733573214526461033326119073439399189883879333825790150870337597019073447776851117413722981523153117614239612528173386906553058582664233622885542272105266455634242422946429219275789683032041247942575225201152372725461772552400476872379401562732407177785722638209898064587004186961717474793839594757416257183174884528090793922178720726298649168456532496819917935405379197463000355280828292054174508953541587263640283619784086559854661381144489109133662831265832863442444356862906496953172324607978328371849622259832218652189272717262763206254360847648524293328160308638431652949425762407475707382212159336646560930741384345247339029917599871369843587594536993479023958642770147048116526101910193602573455825062059056294081532125167757678850530495065398845480952485477564502579753872573652992672045849378512199610823853741598894103858905089132033447554110361237789523609418804890923707394018580026033815198965045602846514872001365599326626798526607201316773528940345657621077595057186559441403404668242397619554078490788691898891284289068697017875104268809810989318496983505265009664865092703036132602758139919504863083118248920648153911331382315398430708668241781945589413273708630407727053751022520660349494353763392396764338225357174832581251784968957720947462715036661974009942156958259835132308534448451744824928129893202165841187389221087204781434086184874440537028206961371481190809621375241985113511293224604936459994025483668882707924429754188127810162496040385297795399644013654648623182641013017296155468246154352012815080249372100935684643762458528374761518169106138954077906208274238983834816720814596942284510545613655174546940513055977246559666848768327639921419116529932757878701265116385986119753436943546891931244779499599882090898763380978227084975624446275046050308437169626477295708700238824998606537240667208797447430355909543146985565157559204221081264127207187317855315436579682964474170734240173553894680246808875057197795790116882074997429404035020056136071647660562626654606670188057490262248703487815124533038776362381930571096782550180379153796279091493713718277089093966810688037550030359670514650990043173123076189082093677030030965392699728367166152522586419927051398004122894602746755266291054162859580780633640695009212669340314709140223658171580847668770240067864511224768934903671863952913373484113726046341860753916639495308561148399015951416520290054962474293133146034449198985344597142221927125236918097593171898102379889654105422913353901459087137184128864115161737757229764377044970930595949115964452265995149396360766586915249525945861347857537307709242152262011301733656619633601353003255223662282485936629080058838034614943096764203936229564386208868802795820015602243988700984000179981589990505028360382733596735830511358780853349113102588697430933724937900824694704434810711290957583117938804154666177495228146073935582024912555500949981307742098747844883514575655892587831280589636899450940179152147898261281852070404006757943239462926604434690162621724281862708291539355765554982490850498097552731960177558923725899891868468039774724053256313455521550243089453380012528199688144143419896921448545855923070361468176586948295863783596605270923320165187493803734679579844753913109948577171011789114641029520065321891572134215236456774644604978456790301137739055184066173735354548626412038684724481560795355772607402061492082748285982765436064068208239747146514538679849571658203445230182309936101403190650885015036606313843935542913823875634352328780651910624509094672012396939360502287521414704900899576403700999353755356266526698224730654190306058251853884754730397843327035821245459027780090078976468599373025706428462339160590285313746465034853084524723357964512605142546095986215910558812373578276606137146875172294112022575295722413722642585407369878863282876616492629173229872567114050559124456572172421913573583841816535807215690385792275288918889929725044459398528423973161490095341238655258703406412867028003485768398422615244107788723193177709182456775934619225791904011318817315794107079509830585464812964255432091448625077229942528674627355474589050470852746314298968468601584045939010709529228457607415689216363968847572242718326607043660306005159260737178298987316079084668563338441937359563499655722860408620029346946974513839250747408677996421959365158490611283242784502767479021816095732648087381979895223493336816940625534777027497043950201066008896675636346652226663961905517299698234022630393371200309066404696100521784582288032915108904114832279166083261962532007793516790418191258868370731067228547796193411807389223777162762159704538460482030562557614989480133195780715275129194376149995488144839020260839380393359839337977570247474128782086173120177456037178814591948891441610806255884984717301922060759395174633029214676268215276006495735424656822263574939519268506828224694624547561338480987005917634559054593521999104772468976487739924174884118042573997135960022395962764064182873238791871295095756478406438566089829790125629525139756428616584780542489716452078455442395891115843392705516155730166134163970766510354254810985989405388748379110871338854691963214157169895520314067557748989214932769747844393169346775866033207195348552135857538827214228412807322605295543086310688808678214469879280639746753390960286208550462635796258549025802112129711316129409218541963142622401849750730588646935624880854321636885583287946146546769706042143313090740955872786144090693829899378274866695676111702943112074961931725670991669152422355663010346301375386685325121221633697534775487769793712856286594008406034108813450382158516247063125223768486859058536170919748319293475684979560820589396477554602796920955577408578592811025445481123446627011090106522241194446784904825044862598109893625803988229322741431276314783848530503117514997382806864211437359497489655711389160556939316168514531064680224265689142074760487761581314097309503842136426293253465129914891433378539529745616575245389551081709317952914732414239547418989194397727891679453520479193038489959978634538426439130629102534867923595910024108864957800386846608118386017873424638047811238061811190489815485457408442719738962518410465878520187998016552922673795694369068973024430918385892367095691876782730801778839603700835980391596309951055530029582095352215814406190679877379577394919149246027107833915379599456720010386383965625785013818475432576860776171718544472035401337746924294246369118013486949049491031634196018041411509189549362883891828244796585365995196349979927206894562224849524636020830146887441471432411859772495300768524167994526203356786349717857175010032965609818124739982583789541245794406493358131440602289894660165077032024521499802632337472568651733744531208622231243491748613198969623879322971648779515972058085812447488702509297468667822889973593572146618161871539930713286305046276962654247082169895441015978474159766364480319249314925494732831380435367394884709812981404839432872349478138389755457121964940555517626163544828732592789967359103091458369757388233003810971258455557648583761603663679285787266427302879990475056413391734836231970405525468436436558342447565553645444706049341475349950310760628535475475631117145258383891224028837460664827034107110035689974088579901596854948744042260663533884203638826017717700711375991122436380579457303099457177685840029767563834113174038367008372208419984710517613800268017555947811677430668626076643992126982295193973271530757261840653573183754970284714358110121796378596924457074880224175892842764524049230125827885817064884293017616284472766254376638982215097349581976740223286075124499283815273743255526121214325725323077249394381997194971743148464760936419012562449046793425291753165273322929495204558683421271545258031364862805502004627756686567291271669103609740966686017017582220721100356038135654729304265897883155169795414694706468236431745754260520170962707962347646592807123116107588301081642611106493698171602803692323838774442175628179835547192701704871524131554873355910110026566725516203422078371436825539184878495466012069891382034795887808181350538520597229682310730805117750509515559983805767967174074914650482144433653355932067885895337694229679595563956706470356363740679613927616088197874519412043067848273858644210086770061192478909981830175608691674679176381382887646782992734696669640321714217923023500033255859171910931536521927502175715165472332142512612532200943262485919531105919637456536995104993739862137601703806451137814958983814531084213333319622241213137062673201467809089172064842963136148874001910967057512412067288667807575080157913553004158291385152390613050260891248981528364055400333539346534945077480912778152936609102102172084742909508209306135467632833354060280808375160952859083958811334725898705261302236002155291497276505650825541375288900826093116021965734681859057566998994036571448827961507064582432377284420000362574674033791561313540507116369533537722184072279200370568481127697251673337100153862656520113948427145272346443879406410119000048605746728033913373973856603308847897252704476091393320143186884730856934655233528097500411974413221622327055153594902387275351726578224800093918552767213555097719595273966646392856267965103700025177912785301404138708186283509962301380432435450013467080464503117811505968498717837889390523024356482880672010757351503683202821200862635619027344391604553539374415597107403620344747745255265310010543600396812179568638815009567171506237894487429215443202161300202289154247415905216645205001309143557871208155172762032522085936034398537007898474425644575432998912838594071755945997017758302497643011825803284773476996702024025607417694149990942330078259315855702717678443845090746088026734518747427223271285040186222858602525548384136179212894723427774133322999651053412633712284492655455005808262370159986900816355408250340308951253609181985278568559127948138918327690079896570251209435723591249814023416921313861280133090094173188199783773457220499189003910001506574087454365326740831577211194066417615664029087860740106133374993578277440667067173986783303059304648570533618740745016790728491810219763427977545264346028637319553527429865574718278294112821069712720123874986320913647907951341112457700510775029588390242670467661867480747520983613438405365190168473484452468850409118168708369269580060653548551346997974233784800286561792966497706812248009350888994002931756526290519412833749443578343484960268994605773606932433526910925536518215838626450413476887112406483705514519896986502684049269064715413478145694649856170926164421019800098573044879657062684961813047601692889798615215788888334847437957109765350838941420816117033755594128568199359974649052243009511803896850719590754179428368154101851206172446268794437723964614776673016731599409546128698275164467384528378526975120214484482312338105225895356953868696797406706468474257849124057301933370532488142336731323554087773216831522144213264977681727312124287806747680865049714504792090306704072212785065891075374955962787979706742535652401117560525749777523741217958236110042659633903864265196436739214141747449262178765041617857794313671503224080502738202812416279312205426566042067099612720586778798571658804861315920661289471001404719494693734194205509883515970201261927466511476395198758041852077191196155194934828803959116580716289115138047095039004110130617577549340528658494944469360214913169358708915325231107500184723849930237436926149512405389827838743516690289371207715365961294916948189173567061612096954373270021580622953762861869832981378764031736749348834195695730442675223535517871943465083593339009558554433582862556476211628140782795922857919372328213735301354837585494389217203180594872759315897675374499709833302378961383824977951099391869478316042385617001641229730265986414604526124925905192563585499901785205535700357562807859908943051485419052993228387256762372478985172085979636275195971547589152606507188935084663197975613064168358828536417716914254339242146019932974179146429223011086775881274367104381442154717332717013476665468153939244647001600476295450542986902543316706551226987829661516684015220535129578045990978395124824997524410576331420344565685273781247130512697877045121046187141971067820468275539292212148767791141287561471478973213859543654364850517818798538609076790198687638647515721315628131290511696938935505945162670364360238484344553607200455031925816426520444425974080197679686930068269848976789083912584520837958928046080778446402160301207360371339095441700093038370108400911580895468517013640195130286699660874467241269119577918512285836659532147122882613761773616948215612133462466439756521680422442758947997499960416395064212619702773803190329149925519739578896827633645101429600959995039596196290947555790798379093641691939095506535415551478543872782172264683746954431233681158033943957525696464957702774396903921573024971307247971214167795671253212533069581191079050294217055290624263967043059445823750712600615489368871364822389279978339285712416087539291254733353528321321076740491562060788840966486744962384385515277438150630957655432407535242566197353889525672192746340475673044621932220013431721879029885091045021296134593251250830070667182226291731590901162928033487273314757981360099140487538521150229502050757133211243789758919486214818267155756553321437909030269260757019942932719776483353476453194899434298632185688482486557889981580134688614250370728864783213557833288890089740449191646481786419799893177725724478470971001639975072683082110500987236405253006423710588876301024470405040965910088583953907789949444570201569829937145277260370571092928460566901760537989673999147951634121141681041653376480283556433460789753776053637825673742922629538141562981338839429072368464815208848843136148555498721409684577030025158191287067102897744284402712651444520485393813187885133685835499569392568959261943986022681578231819462412161488784374892091051808862860461892937129906299866542556816393645379020757632540822521009615356548810364429348220867476124625423292435814430840767451943001419617586645196170610271139085633843723154955561829465634915950922896154283093591931058672906248617636862036983362296767687823153535981265505447016243528115299711355167138853668758202930554154094818861835000347756817580543085049282905119357582506028200306496467393410230333770482015277274463482328476754128568925757793627170908609439906779266659282758124345430664867436339167141741244018343568350423361282983630873394273371559901598441462806161167675032428004621307414098380538615125558524247515182683039039907038800706031777430132495279041979154164699290245314694682573299633302939013514010030854746758373858443514221907325965277003749577606669109739644712919665843137106102196678286093831773701160202779623633089672663640229812609400775526535789164461680161807498975405529633097640174223022535131067188261971547065076941661579815965138762297716815650391648734978273872891326528159055576239270311310839996368113021170285846010887749278726242448989950981907492351854857607690822897369823929013073666250161759094920955403679907082165388628163364727455501856178863288545912014839649848713638812266598386870902713398847758952539228717318511715348485970792288622007994906227539923510666641613212895966365834937311869112494127781020572757562310901807973405267469726839952000214211779742424651623862991560062158476526771409561822494686252745783611473927675669025978405952969370835773562925140679779518981662704696772709192791855330409432802835315925022368362775855736779768137002637795059994534476494186117338675881035142029501023084110722026278982205538185246295956198320629356026479518905412163666609312512062610273465518492403846969787168084633624022245136354039902874937293430204923891647934283426824031409102138361673971929927559333804487525666894310746401744633749028991409696426234070348849292472797420867634582524984158738617487637150669631710043459148597141366162229508098323152342557933305025097503092316691155739090727693915774765282335814935327635618152195567113604789604978977318536093463815933077467848375112541223971186570234082404214082545692109131820337499455636936336504721257397967643949748523103124236391981843092471263551849458111304245432442874093339947063324722978608484667681699182107339318078227947643190310208692879724398449114203210720599685614600719423120433215659827228380153382069507904163601271483052226747533845674168090918177193649153934509674799510667579489742873877029134418593113565557319647360016331661916262476986672274689816784298477174905588068728384405816040695009489236295013409322204646725656068515072838872615355292191243915913772482356212409710234559528228331691146529222416834172563159001444749630946233244078671701956039727600280778382796442605122284555885274875537726257397847061196312840351339021501816044534463290269588845263645993614733333332540443067277789705354940192197510298641200095028932709313809247551387013531970709062943955261662011048883623202136640602767508392492279862657889641434437719231139045879304375643863788023908164738696004699713837249236071046132543618223243670776101184120070036767058206470537219932893407863287303434118274678918107000815016361501167337561833975450834194650864632854532933533513874281645784968292847425838805004545601869417195266883118986643750783627561563391682154612199809396030767372849840192776314238382653303365802570782801452378284380811277891203473250025898791978210449500511018212683066134424520788876118531168050422701799569756367156442792190028683456100648056789351776142449017147148625021566464339495556871537632724107341096436867005407448894376502774174078800032047666035420821208907633259053107073597621492109093063599023699814748988998022651345714098683733899543252617277918819837130452292114851130138142495762070550634908671906727782421488131559558817454096832952604854184314848231992174326484002707699839049868942374065168949434710593486614418066837340255366407930407074100916897037296960017928830216475501766639414725198262113872774719631036658516978654727284196507159320377459007159870421718436009545987942369239362740014844342812324749630409885469245385332197327239176397729505101807106672399323332203104322018529732684825022190201180013824594059109666006986478103190179532955502069674313232098626949057179278569853301737193947775249682378582369862686864123963794892802778304506073216159474146750413387398227099944063352552765325963668805326369195499319194106686619807583025441173657319731057101395613274974954587323044418028192223115862293670103704092469751494751332534157410426763638876290362315434534483195412399958806157880651762740657024941653832020154399379798132609377174006351731996182510148958275188952038931854946113113510187574182013935363431044583442198483300724438778787730629391424343821277754189243113854918886795797170317032613599358276529719573954461109585904056738235893736211711980199191800991184148312606269994322476808164735187282347732345859652889390540335558769825645264840251762877920433073052748635450118678229150273891217451632653824041128638714331310107834548116158573321211741980008367827765474509750211826203449633004342334975470738767281039564525071992106415519736753829193808092297638838061751491849348361853262749463604803910548491637580545467236031442882761004224558760412611500302342893071001248080906186274499489746080322068646902314146245908370614406638400311417010424669427456647614781106313758307986574694325876463695783440081844964530094490434335168078403008876324130600123439750233524412477477078689445769151270736952976440648299146600473609684470722972330756790333214653414660291930480687649479815726470070284836298411741046834644016875497168003146892471832330646389516542203815015279440251756008358956526630289638406842457525673032877155265302838407648755793061772474775074646661870629300990045115013943814315366907444754371785290883431615628136978046486156119541415430979915003136507592778975390569850957202115306121663936790851655087639880666052747382700776963041294408089431019432126212999548794741136836196946024728256030549101586376450411063299658454831799806851379720990125204601706234984760945871077620876057162330290627870148543116758309430642995275080050541066627881703266016379343980121036378353183832788371201863446924785373474737524613831486111732870835224242089493551782143139627656374238744819205467743658338080297408852715213540508935601286233594972161502291953978554501887718547043585121287523642980055349627566923627854492863585936644745563534502356109485448985936287291589275473341670112796721929880200362264303324391346254576890358579984933697176072034347169291517328506392362936146069837229431211223863849169160719005566899420946618951438133091341665274492747888418850214232692691481394389187939642384307693397251132497871266481890946896944854591021038842638360237454166225612028198956630061538967770308240919591174728414679296063764720790190852274379179073679020949827307754602959388412630787099645704868593875802421385868354743151128606928280879722090487501337572631474185207791964347630998107260750972556538038210784803597994088877084272730579188826420135217883310792590571586464972317551082743302042833170242287867814606200112074364820741997097603261492046411732859278201363070578204273558684612107574519409875766763211054274266984517766736963117169233540134937355217447450407887206250572144986822340311708284276099688469588547464554225813017459341990365862984255966995830414492062197235463462406644414901533739763414929241227571680442013345852363305547971279026885614049304319693323503886030108504532078141872958184032805867624296328415215186016487994649398612206767412450400939341398303806091787164847531527022281184121635623317436543293141201132213058916592073275575808568096008783670472717622619668422313285413804116853296257259476556706730129766961179942386952283316601369975478289294774992734703482467804063601037251405098420536208441989768571805239750892384418551717346776647420460537191703957987302286016042857441373421782666139338067679872702958473598644671578926261483825103092919585749486730073570941614257567499151628965714944720348119665372997678534538482481843113026574440577642072381880808356113336226435622301985338857388301944722097726256545377201078328260410660221282329074065254793987045583206278658610051787076158942995886634015876933970348455256414799742075268791136297959246164377635114095681609801872940960653551845268433851054796038425117774396133935518796830775995089499921832586292024828268919954005747232795587154067029597444423291009692732294998951054229672937236373800418365901944433490144322585276774647019437313801163460183272472972398455074482185163500528701047450693373496889831402985755146200804500240631424197534616872655915652978373463312227664050550138019446758445117778034663313871739872939746476004951753112419974827954456318450104099167225892109332772248136157008340812264468660365384838471601615171172174662552505900650784672021642132835488260153026957350032843438000797391260016527836204196951652853325506215289356349240195722040743255023480432712253463170702673259900083272696443736703835038179119195078594439330948065289137194427356893956558720012808110807159573031254316883334650780318732113458127479112347216003738912337334093621373385540242175286478887098842509519061707916360652078560423545489061241389310054225485698881450929623706482056050743642152605904549575239493236134442351999892409279855250055675921547964239232524207439613812706954381393827449580055180675228535636547901458721058017742097242607716735012605009121739871984415798412795952564207182466344212195954830085787452161915072555909348446659190334863090361990295302375663878705421804704522515952545941818732285630729734654642461035018392986691875832884186215637694524235432786132369986340100245123227185208792453647636483768677160917178393554370065027043573197333245149259462816791003724442630550152797500782052628377608517483084160794324357596081549979103941464719991904103711548650115687236149118977405301077774780571254602755079583289807442624728067362443039045652435497391489262963715955902851876215716439978123562974061912752340450402991749778782520202763262646142898191236193373840796582704401259996481694484087361259325721250916584756173291370281520303435921295917162643075960436894575392917860688381540866645226772926653320288256766200784203019404944641996766826637153728008016692652689008587499092341445868201035145640195811160611421928270132584390158795733510749774773159337079532201052299834415288090382733688763321143494872103590513754615937539995445953953259066868133730603107027590975525990938436461023217491653151812077710977853240871984210429400739570128779317007665852619097945608481084981759591335088654270122338264901270214048005666467075471667164933667001467108509486791373365843969031143528322191496257600904193759415369576165649615192294955888436653860616549853845906209134838603398896649525608280103477383707700910960345185688566458218626002782209269795040858260879377060440584938787641379921509652425540579508525320326497154337227124206711499287542132492259281365478767604197676718121703479532239087846969786098606103593001429045361468608212820518445021139588615939041684115630443750997508193343936410407180063670810023427698254787980069495978299623994678705685978013053904671009305211329853287955065832078455548152378404768441354046960718389173315170494317415792323134212448441297156677332816183716597542602002669664099999553584944813993892149102929071536596586753148271843076870960771145921246250967563403804956039145291021636231387594331191972102437880626997172539589876622932331259850722671531901359613304415420042282170754401440167733896458784380865794542623495291804469157748297956088515883620281733814307629138421848245879041476340455790980526029860327656574393698086969606529740939984882032680179526208883339236427687266251956841228611420557952901796394465327547627289690612633966331034978700149449266416497938676139131689340789942172706110645913569803333213996698415027096327087019001395018033051427944555165305819530341725207551261253123003515275317280909298157798386973093913235113058655480617672654214944759121208401308365087945788853152267293409899530613190239021325604624436771202050309018138927398156866998678209217186532359899743888828002410748224213777357336632912107063385581587003265855527980176353278205385713858815645001533576696609740770354747310292804710468449676351893041643135844033091503795544386832328988507542237097076391506952484542609904502955143883974400917266006498227899909149062154583257472212723601949415374495036244552019399708150598508360448369486713104791391772995581554743761727109825585494458502536414725305300075304189070761944391042748682800360849905173690116734631112860404196962426644161030863108384360510641985429371479106204194304202897567204523706752614362462367157231565513144932838158207657166285728561666017583473825735725697402773759362622638094873279593964258279014678100723601612631011055804223853094170635322356126385839719765965813032164910055527568597184769471204483238411313463527026156793256865939483558495033774112477993782326930835947049780078608418019184956257465102417537019824313553005245499181030616839977160226978817749076388490379107991824730236353097957068738724388620099110073750667316603049815899473004209940438223420650664902591472085282586785247373809340512704517468006823701863986128624645165760664837935700062410795776246770810169388271337331196668235454152482210932089321990528784364195739134943588553940354554126553046003517175792500629946237511912374238622432050007242911710606740106836208274491052290623108861981010231010231531095998749109622434269756338450497257269852165167614768898592074626700123890273789142265135238401271088825076622407403340898802543441557196292249870231226863603171160399519420656664412557279862104826617957519048518035604463884555553735086420924631908097343553417551419346503946842867631657939309287038485212833925360724826323790706269416834876867753981473054616973825343129008632404606929675130046779446723859592451959789364472179129251453302845081414898502414046106764046762723974414601057349635395355190409417853134553301818052446626861501436086640492711764857429794439500682605109977178763389352249955260063796118153564405300646454771491791187877774823038116017985371918631830484667167577464915189216143668459377483608919983306871377856385670140666198478521876211017524652182067855817826558695077800069908889486789716810788187222072880999661645012743808549935623327530172002558570181937790905854635202298987567557488133491165547664954135327732548985726512426250417976972110666377983788949087803007648217527281853804711412420229038990626112568291551069544005470453728968038121028129648036651191412107367581609453246999525858376845916967535343072569808269958721547699209610514116984029768501587138412714820923748097530778426962946137554263338312567506125007383803024872644973614906146636718823145812710227871861209752467365123755719365286840037533968003341665810956138869203040855077936202856474827458498166724829475491377871270571075326649416293734457037881857655000696117518516559848337839386311569513871380174445954926671127416517895078586311083408643067781068774299482258769582822463757298229249523224800129592129574317685519972354452933602599054019904763530077587913730434516003448180331019259381026499683784620574632864792719378926046257422107215626655299564582149961350099359911789599546752119471015699174691437486796500512129756159658519872118206876874921762845224270348882487671280925927004263622218653600183512200467418078787248921585329248186363871234375819304202749190708744612439942621180799479335691279731011878109803819169011314043005219712951435835468353004654943330148351385070988614148154105113285159373598351209923104236052648112660323952224339279026811849407660970946148869542545132662142075373433712419991334164811190379252099677314085503225289024341715756021899502984139693873246688206819203662678461148718767409523893834996416985311819203543570060310923357163332951374139061077206495738345371830362548632982324339979206788960195881997964702853359059927827237350055783978967867471334069282927922829874468526429582430587047096413674946872275295341249916407861289164564413734969312253086280317952923473828034700324406220935174011356099849965306581049820906161235828141342969444132559707696058566640855240470210337131810370845635580928899554149334619193240375717198125067852564305904536298119483657428915357207092584913161279627748125654347799507258833995053755782137583276629060667766534822116898534790255708897576885312381692822263194207545941110832442604572095193822849106538591124523081586827736154666101253459480177140448929557394943621763337618844362694706896478889468440218011822911453542850914902884720491680613194820189435079558486272412222119179096869411151921078891573149000704407312861357981143306020718067386599255091076444896842355269012466589740121998977251462880359367444543923036345668238705827101345871533146227935893603877099383652825213506258462577390509895044458959775124773852932012475299473324504280763612973823304908177794285334208786945137579374418423935069778662237011040996774559312702653315166425010441451387881145327424563299787394458871584714728933306497827491589812321477677711015799414687702163989754939487007320901894140030808743982082263153937222990177210977172759891848117334265507153759284688986499059655882948703666389398786156274039349523280536016518414208523822515082107299189211697455011099666686541045776844682359607751418061785421941625595062643885570596549114989560640039149317486712666500825398358533596105113136287225856314620870372563777767791426369942482934043518954984394837439464422226991666710558016828384591234709198122385908641681121550902315170234936557548476789914510513569470158124372819946624354063329109673980926881356722790263201783613744767742396825777495942094144594203044649853607571212887453734890869704773130696241188680170959689512061152465426647659439379189616047822333482249566575375871884737542096438862817107267448615380570630544810248188604513841189914341785798133095608912787208915076252315498787873360380599242257108997475006189465202824083672694247251301509216237656173319819060796304341967785866005482298580479732944022873287918810598031499034579769579769845811049342625755746205513261371582891286650700747799399286223127839198097105106331805694906173996851775378920080124483677086847558785598912488584803175123388423447170275931431019240202651322371143301997236281269555880738307294704520244102733169131821418663052749695175304136736173972976925914435097681054018484513727125455999747751655724947341255390147518849914334586080317473655560715517164323460952407935990042786108265523563506787775736537555492421288518691848176111132549926306180375245938986645251836671786432508387516274814998791794597265428674035550594902897313130704257078579518961912134026837317272116087381953628393969796433094293421362946022710203201007415693368533359182590963169904952318072063368562083109256370053415028935657513723530325094101669202623658073891845764506897341578319172937131334059520915387529485212824143746266869267696595554113471404149249768407632249396087081509704230611307361920399111259288485367904869550994200371523361234114918489739282592092085655476500768369910627894907462159298580912997169618704294239926397382345828231088351847618444667622714960462548067775048761891942207572667181752184010190777040526123762803901897238773965910627234921606728034392358409361577996286806169189812823671274090367099920367416338061438493509168302738452504335389426180000628817802001647655101044138382400889433967786742382252823798450605259171562300021845313416809309309944258215818967931419359501390775586997167484773161574433448060970950393310340318853966252005459523311876973753381773210229648111986328447070173625635713772955082170581324364051246498488017593595497262971584771906166745852181523256047433914878566146343782628664616932119922365093743197567251419440695101923943040839864557485677677322706293698675692943116190510626884818832005040912703189536804041973603504684748823415402870811632121829642511360915108657650724977128720308603594923723884282052805193160460139101407389502062117396875300713434147280291351320438004958294167410720045011595589307375947325059002058363250391493745255604877411257177979681665201867684311003358971113964871024839164673565677937189558644126059504633208245144228620303159491520717059028198151977485741165297140637718073567488214414896708524315698323076890532979384934359904622962614434260138848440592758873046730694805595088136397927152338504276601022580976832894538401597898183663119405989962283286439449191054849900671769342229190026447216040960385899680814308354265381825027510961677499561063330226702910209464663408252419733921537992418091749290014662366275297892139168978502895276211817315219112724379351968277044130651866064721680751126510222255426764985776295132238416019540804086257304681017357618554538038118610961050898887719451357735815797410961389235992054749707154629986109996460403421258693156619698115871502902007053462991876783645482149841241236356003518919181921228036639134678108383980710813943979391244532540959894803395235185915911962386737151392478323746022352820314726831699607426974565583495400353315651409474956156927115920064734696193269419528912738012387790355799092691080509028206252276010386943888384756367628176525996197561354521588435955275904394671826989896436736034854411051001319265176253076560593706695350761275842947392113597819191385974115397929057892838989187770396971151866491707559798482185966778449506307485790108323467107496730355077979195015172905765245089443243327165188307918956058650208480798959803797850969664659520594956309545504315644584946025324358925922007667058942953877179129977500261399196521399371882634051421252798594407209545196779016517184475448464379033098884632613910281898290456473010302299410448288902625603121764376986461912683203295822170043805645559728965231541536506860386728423961860131993390437789865910926148983641559618832179090889028325378513238552776102055680188010564577193602525192451036383340597226628278545446330979447380829419416534690805816023507699843133334071341602687364593274558861205375826771221346983025960435910197811210373918021473732026116107868209888008565827479427268965270697791338603147433793832876935137500466388017982898407694827453237783817212005065000963620651422727549585243629497375188230548865028298831840429623176110070770723378281742575073537152892524058347783945707528522315689000694616811981884818568743729478996942980936550200099229645147133567869574670907193990939639017204267329362518406673021893857189443114347705993384514663471161718415325433586724579795264860625247492740533788502651506331648314272825779295259827490354791101462583985580815811906087528760390200737454517673886884560395825346684029913653749193483295947361295125452914951243673620032260801123699143608484672185352597394874656595355481119043459813385461063720551940612409573840575821119628759305032131122149368181340225440330902324075405296195399670540955764624050791294391197570791982888948072756321727648247662374597549787721739675317108420491265670429338959509229029784599697355781325550419923956640459605649742920393210130047243969068627480755170082700894289674578141589479424404891460700740183543178702424579640435579688680044647440723220920666267214426652598206610236554902027355124235818769015638769806159360273082691042356391242757748796693978335018510641017784178800224571698778671578494511569406553030059978527903329577766642046384424202538332830174246369400055126006009588076916202559064032690896400151938561079685216342733641381948029070027932485121073003636796034428771064051490438997315250007737945700010195320245593377544989269651132471060686541208928280001690410321648175818087295646200213874856025484415664988682401378434488898108340607494433117313142180708378834817209655324685318749106229302212925125348644210814385390891003845858040952818973984403296437670488401132996330960233773485765816160573384949578540810501748483420034558850743345594558438430528515431851422379993724484657713960192966451780083767606261024567647298789344812401384978261031936604212918810374226097634928938969103538035627610741610472303926835667306160132381813293853902335928781968880877484752099761774024841323465656537497228318088556387413766806294835840585247422336073970414458766646987782394320365352709488197627252946299129936334507976204879640373245078893113981824931714932152696314487274698667039607847730101139615090195684922850975331133629172509282532582356973206939775020212396938441277342519549591774519251326941889851602808322615000056268720278952463877051280909040533211948206357465810322569117214671363025984425590906114987635810862993638503143535543651231747250262960748716367285402942307568498721449409176188576417599265256711293937220571790147223927481553247731942731074732589436893658700245624470223265168094965550844961764511596057446163704914102273097608238286243719614107882053014486110560527024690201490498214406336310512042789750908043322415828181328523499435956521775111426682294610325437353483411015128536831452461419832154723088354327787340447453385378983295130836205311353490183547019432138453569817513554438040646730250312711572144820076398659918501955424184832751657869183246531674895216494233905227572715478361233515236062540765081170444442251527078421009605798884943701393660009322382717293292201637203855858527171359505068644795086598977521559052941396271394363652390734199188944937890259685916614814488700525531767737174999967759186088023564024638958485164426887348187350889432071200672092138969219540537976402210624903459985228157666349371928130409430733538451039510335487291776167209278878869609100742619285501737918242823784705437772769615073302143858618537575200692897392639597654659165800379461302361291097517696311668171332073516144230841614528418080448228455092464291305877696636625095624125825957328632073077694532785902612118935783580064415479061918075882329079597444535757470426511683561822006368287374737452999739611606586755277947078408797080135879320037328602115283667119275273532908017778933613875939704654806558060846022670785309107039483316565528485512906261227312591716203800954499568960425176468502699168038606463563725750271383541231477399566034556141494102901633268942034550151146956279341724020667020819811327443544548352120465961835372290748232609607749938077275669324547599751865034272684711498966647968928896960488747648062502979528591989111056771278912508895537573325774462812549676052624181789235054297214396625330714687657287008460522969813941508270986563455211083929823156863905443653106584422965401456009323619217899288306205889902131720948318597495126273379186038064870917138241840809102866027322484900971369419796940952539411004839776424725812767327630022157556590819594385897112244128090698183146415712654949147336684842449878398278118855105326790324593647151009756350079195446905588424834658722568166541508568252731407225039662881004375687684621037884876126736547924445042745115323681565724039089318918330378678065899513469969527474018275630251888939572659772501058392803478676434101548520185073225265767622452027331481579697060004199880365183940530358711070383378137153185317715835899164442852987203001511473455713176885749626366956879674644787969400226112227244332972588461627672337061779090824677386195083945134918190977267124949801437561831229404306094422306944446661488973014120264323829945319290572287551485270326739324704899221194630125232795358167208900583885219589113449008936903988377349926710750424291844410743226825276112515555872729045458558414866836071189496193934488221317443767334331772076781483900262497248419368158373991299114869777350260271930079056881325183014073543103506915291098032473451418142457996517133169746281526531255578050331074484752431941051541552400808926748622750886839860166512970097872158497595487492647800938936764524901865036599107804088165068252700795725770991665135925183384165320835025961448803297691360295161320860391451017992307803339582256317052875607958648082842844013827066110055130893781701112914147345020297534873524734696813767994711487977457016418580616168773591507545949633345396008096413330919623477648707932526789597259981846813822013066076500704511984666288328792375347198746359197494058460066672807660040122171931201989738769994745251826253983760043291439512143416047153467536766729765646531555420776601079261890943221866646740184273321213667629014062305537662106656350952209671881470295257622398727267429349001835576208416717647647600536807079785089553685426664221689911318092044710718561333532869628004535366585581058494497598119636848740424106838334723533285209903501626259200698402288762526431801092615116913489393716351298977464215189064934389321212272892542603870863010528091617378013428185317782383193064330158926160909438935859278462255295550799027332640036967063319746527275736729816067378972012798822684941410490028274942161990642137525322680382493577403831018045274527599839053420032984176792716640360804090165806641293780883749157038134876577462750792670795143401333385308588932445542362743079315767397390480278733238717872591483957616580991391853073563265918409921295486207838690884535476119018427481577085710025922611296855770949326076611356160201828623529374652375678238642898875245890214978883855918493612346046799625862534450046996690203483576512068364422628515719419140185582449402190577753696586241811280175028996297329792674322032300535913517354978406649784572589739749327548385141505068979981252510110927666853035137964112037962825357257642463855456787558291817236834890998828192253772496929247378453710901908186519175815777642774862519492445817198667412062038681662360200030233140874878178286875285954937320670346570745579398093977612102497058624506527417374450913785487278551666249762057098471991132695635516955091064333619849325752184415832378121118630737817248583860446841785731735643787189775758480526274712229552624906525668306044507160492336897138554525233986876747747684837058864748011366373646080372202459946481416388433971859287127190596290378088265345729971383880920623998810727695252221005376161997113473222533537754570350029868181261454972110605670051803015200505958651183639807414302162942174423550550395544366224038352827597721728900446927527034272037240508582465068319203057409092342629418536197790150826346203781525713751750520273380121008129512545028704872967707510456199843607651715580340469691062766769653747860218972432351810298875773002257386339534857706848977111538401839156119958702124932799404152932658056448537104811289335046244791936504281143988921539885303867972547170554514013201826972847806823082045207372578351664641956462319706654137503073137711902917361540799386968343652396135821962657393908134181848670362920777429071836775164227167380000337489063023384809450380281734232464448805353932866432934699349331167355551170888049848363129232733522969703508222588667457484880823729595731551920609127231809859123964768464122193846518402070810069246645360630209206718060247595616568403963233434276463256693223780755619847530619783208359427558909576567278035189832422463471964268303690522095430423505151859514376549949370090548072088599028452604428195953005094034206210920398488185051035474249816789048029266254397708476187863409295303968311688577279852999958952938120708161218042644120674528522905321303217596455424216678579032296877339014200026926370083570403298961148538333525568516097314708672875976873416281051555999839046161170687675281049647620385160304342679510990485694137475201659796917568072328325697985361055004812024047867807000529268118805187964554085069476552004029239598578570577005149756396923662615657841020445133972612620518026229788574672652023436147920603804442642127705915899040801001153949777631771878814143279372247961748148231574854947051267492977267593379879981920352141200485122103483992228094938355524248484341580752938878475295315151762448172391702160579348580353260278847045454957412337267021316103037547553599175633237268188815115889243676326868963036481449321109129093288527622669660556330562107503807963682963801420593396100457697644174184553190719844082952948267212479066824487630107222164836899085919168241961808453613679999656162394268502681033860700954776102105408009322080293359215422473631324874240486392981489804551692526735656509351383777632339778013291328300192271862929767671000011338575903296553796777374323430780920200793271827283665880828133777371680949930093666645557717669713868555454244276188075375777102450126294431652656068947111136926825697494591329195304963608480221990958372089432427184162092230490986733391071232461347994366127605648835314202038380609304371246427624040270719038382644456416518459310158853594298691018008115167048763540187978600614144233955798891408896240687989118411647134632605422509747692686969302409277337390688859025428838314835968885157960160768903863855351563810084205394431240622069762177225209242832384577469738855308420343132159939487414419268732678141561060925737086316104638516094367064808945121107072412369667459470311343046586958299239681740022843251334919668485274888472245260563882288960524431089850809702892319430861614639449207757336247210111318228029679017339417988823137192956677881967468566201877881756290526680192335947443910504919672415860581392978801580861822328367394504815617509692766134685594228392078025600404712653720852998085359336088119880021130684280224638718287745405781235915619599924681178096204931888777833653349850238469629227212140906676063979448714381490042183390465913715451728644197766605718742036247396847127127131602078267218158299332192232421164764101516250977337978787100752616774796279488667951590326743368166041817172785263769332001766134731141006474491092395359573901414760467782405004610997265695228160488288962919011393232628113127647513619819742276248579569524548958944671735286198074850967575281305691622288160722795071485781243800310926013768103130869955963760704088231471139631054773209111373953932320211850800820422761121474665053558535736582891804263551761564864298379470454145026227216544249994937897098977816990410630732738441631088562206603065668687252014847267097181775893822444540928486822229402188147658928544965463509194160923394270085307940043648038609968122675194369950611071503109654640857535931697411250113883788536358288107583323937098673652142036297069229527158613204855760175292510097390627528534459410625166196162195031806336288066305258900891516441879569198094891740487667489256614777338433600167704471644947784286519936265046115214549274045412844390311984474035991603197984244753649074960197778277694839978700508070004099336254988367296276304327567954521896969451597755172319262399061141837528169439945248098088280097053706445389158177665054215602612129314456318509829916012933824851569530472506285533899238764322125038045061024629212211425712952980514031801767169769850107706434604443306960051245221906960756719220572747103990589446972046336781748321002027677418840756268027087233182881708929661355763263352133766739788298232506918729700199935013797290815431591043396371693765338401436422772333447062136055454212806310380802591869830001618518887523011223794139360635432607845083446920054840792370065448893478233983632976755094675401239749251086536685818330916674923246136749801083964593091996582162625590983311006626063496507817182641561629528016505670029705985949163372659986416877529250651226996541455864276408659466610930372796719580480052981371837820987467888882324935032503573248315600115320594552509774730467347670705654498888996067471019159367644345346316061197240620466805766636537957307718988219679564211373222214848279296599722602369073798287930649488671556944375087334244626651278843077904685354793849716831207869670330764994126150097035362484027785003784180599310912215934597936536903441991896358919855399439940915747131186930109879636792315144371769815053833985940360313672580440068765645068736699464156884182146373579578474768084786703851626787204833834512342329234275765771593556520223365609811405726410212490117268212192420461680306151434316657639342264531462514492497259865138957641318620619966748687859440324908472175318052585119624985884149197576340039733165686255418523810390372408584451480385973086048305628773193015808879457017073317738977736881080309826970874973199879654849477042179199710098634429454303765385677936874569480762483676135964373270298799900019448326278445065761439951346087820493418586840070899434724501047666925138695132083929671411977699121654894168108715068874374487756376727779021034414536096330150836740866651119234949890513509834096216799321621888533737814222423939544723949478079774491287060638719299973390848436520364896159872212082650465349951229072302651140854099973121865637673508583011991785083185916210710403562967931762060990469589941578520842530129473490614622130895062704999060159950913721646225819499520681856150766612247998828559860586302108659195287496740746855340669433630233720303380772096460845310919210276323493436415088863394653368373463933469294945041553847144889103443504298058220872333682462666658282565184564994262013588613183577413347065360753465087849973403309021690506762856843692147205557360641372495192974046572034567148919474540131603623468331886367067232083452811898545990218221151921540237230714192795086870777253262020371853792922821227895892538237405834816855127492520689802079780142675569041134669821022288539316020283489770670870892611740381109767966114863193368166408972724296039929315216804788283216683328964713176929250134131863790728588753527328400058632691093830796754505760184993715315685279502512492213608498117401382919909050957206586952632673767354019421875725832552994174649572825011701883099041505769127170226759589370952404869173112715220053496894025542737313472399679345420157577314718444694016701865581306587323909638128572435716729433639931140128451136298531695202700084698771304386260486326875291850386049549699502319286652491644917710574968444978786944042320747140279491229156044975524657913993599070269673921775399488414907500902353605674800221883577780023806078113061047273299541750486118692286780193458804258411473088946748329949556541984671133256991536477904790993242764895200816750516356437870194269279567215736997153405254011665788366295696805510594026604525021697878174379019607103632471163965483347894253813912202282808653237746241209751773034023470440629833921033693049293491723728448382305590521706674090662378676313270916400325236558241032318202804782093381110636778283506783283897224586797720413995952996388660170613750254601111359426146631031491117528085156493252626399656074613999166376216875934463058199225661803470179995558628004262839478425933974370467420765840727890837327818211621471667692863464162725318392005625145727117347605226292965775271375849688429488345742049567318663012665712832479265739915321439086656082920979495679576544764579754876245508927091101036425848825926507587581484162682455236468849024016907218142178169476982316907679715584656029887246006105078880523663640430086992360888235936095374656874692054397237588870299091767360999298942559821718763111948508741767308528423456596873840603875451534833439744373718492968347596899592536542304674445577940019865950743427772415954755585813459933756633885506938483628886815802220690117590803965178728979576338511625759053190051937218800234921825795625911782770234774092938681904740040667339012601199063451237525168865042180353920106420195848820567661608489355004091719022203529067489469563140562175047192274275067633133251276763667693447350541339205412872065246206475108049301663266436956465522864723247707854220861354008585416806507475804932355070552205548981327409452944862276281461928023575777988588122823613445212161810836456966686565492610729983210650795413087924212836790867397062543404806405078299813890535079048635589449236495279367828375127825655775057891260515100080705709402897935483837574748916670477942282868431122755103377716979368244198989247148618386207763026036685106553541501292694193165553830210217135264572274862374513127897831475620781715680090565100318611434734434733799516100466358961310903727346297387611029254700652215800007043779079413988732390922183716352844887969388408157881887579130587479700056047047593115894391399811994690113688702576850893142907559058565167440109963362543025469967424417815572938498349061647043010353007390390806949083772320405920657794625815950159946985146298886998678120434703939566032103765208379146551954968611736922312519467943989284540617366900726431692610632640413152935341280230819764118681613985289365022196031103595129584599386798754711908413393872549949236912557943348517217595805824951662054533450882598094240122442841385030003695032863688281011441310337027734503592157618166861965068124009126383131926446241560853187275517473507719836427960604324276188962581747308166815555133675883308406740457406055890011067279343113767860365323713004591199803073709549244557809193678909566610465309400108439078236569810291321264746360642208940000927078753010247978916555418968366536415071208210542213572860813175703286584143873798693858453897929641544367610695291765125209165081363913660009632954139721136167092192245968746781208939861179710651807505271180356495210721592470218288628007662348816836912322251686584289737327882689872482431986890389942247280072384864254862430979043202134823618627766216370938159192146051451524088921172315034955253545352158694279880961861249283410145495902472953508056840803674572867474496698860334735639754647909546618618551844325698945214783102919069671676697874854045170212422768847699136823426777880782840241195168528896298114442333023153653972748953695450999791608604573641762556569397942995724750308880393066351126490307882797203789811197163924181666273372566728513598805610061807701831101708910881084531228264966490754096041463584708333402734980893210361243177037287965439429970690190906427981233065931862237105106191613314370278911324043123815932456477923028244315335864218104675197297572132331942995720138513782520161037880875600452756683030121510906742679333289385491871746276064688355992909883685933233162890090460857386083401952316000167375903620426234131123231104420548852706702454986920825680099567366867683591873365981366796316237090434610469097514778524822076780565024707138800534076336807333043191099475879924789254644536364274215975061595058604514224844465629891859820345722515101759670440581730810388722443638273848706046138380585473547872513102377751473715594460735835741254717069504901314896236510533993388271612567152700944009020566635424202747425044203278076255885637397765787931108155645430683694038059233502272083353365396116027587731700519009174892281330478641303516950763521032031340757934209759117734300778478068618498911589512274579786146170435795696922037449356345763055778163289353421756227232606336230703969500165132235906249163058066022316604499814703479105718831276787662626769369218867625562233905401908591237722430336922698043949203648668902952410607392363063262971363768745167398347480038924570399716834609893616359141418466672019493451283973532913669643884079480011760746119230273219838632992249527961021179514408335431319988506576669508320992010889887121285683538242020719828791097740648716350987656968593141331964378353251402101696361048641799833357965496492261405746369259278682819491407398602103839290919676174818422892836244956485643937846532711079645350755163308454013412231612965361709003505781025928467621650788976200322206162684452886832309515155520300421017452925271374518760769838800348947328877569940598770454319420478557998566045107715322049485307891652511699498744533913954535488071897036193208918882091551234088573445807972963463647350299957570611500745044508994202962340307035850197781212933953766048707724475121855010767741152637372400012981343031711770028652774457865771719017712299517532643467557164349115853285590932485023125193463903094561535852258012569215446870990784331646108284918417442069042561534182541444930760071480799231712536061795412028832981611673278520260969802685910033065236410400199123186862488633131241737254851779484170970984038004779641617765312930255006900372944421814723005743880367954421310820131714762816522960200883197221077713087833534145603452354410929165544159754422727375691234373487550667450459365233491099008384956071595736526212359643520914577363030115181309960646052802226803973499330764531243425871247783398369717966193127953410417532688013754581809346119180922969985669878385184456980056422644066209554394308164867081206509980221216699637279693353138289739164793720213283781063438581522706017658520611572084232860465230543541443822312371406046187664561819309683693005500693027260237343309935555078928092767373261363881696058156367275928705776001153672672292036604309203118652425939002431353956150003229324731408426932656105708991645552799151363849328242861231554033463770795113645093543554990099084930258119944518349830604134085777096759729994562341172217923228530728818876773730387646989084974487759137355986487017080772653906347334211416271021744415021023733083843314509994325524207198430507877830559806021837985367789205404627588378616647769012465571941384705125876288116361272230031412467756117212257325716579579058387994875459520444061587291737318525678640216654074211563820284483376424377462798947963666807760542693558236299303183617333206519895502211011363064971960764481014852104199978457749427747092478374648303005954512271449966419233723116420979467379263762241077710282637933464438857076596549591846218993441782540568175658032741925487872045727112162688352478735739934161689376919268204447563978285419618906405307534229588907797746565964650355669477673178782899661616338022048752105261888806070814016290122248968180612887305862123141771540076601281398582092022411880429770111284577975441598922659294799577063407070902470614040720819092118204135245622256447046300458023157434784565659827898581368104459966076910932929591136122660891023129572344727964478291086297976909774081714023600646898797141868925402401765348062808040366072154126375488840786619497436783128260929702996906951886433223071258887865869341348802179541139975879299389768895974035511366848995182512623509695836793191403729325726905760405904750650446149898855408621812811461201821023512589400217936202889541504254254033920545371583078826402629796758928934333402877421244723906017487348362178573060194668758369855327860429029188222382063970920147199452427397098439524602495490326829316648842158373862665568183371290501819471805101931836340478009743359739391902883058347274070048657082625033914100534705451827321863636473198744877150558623057889088546838616624771292324384040509160057827320992760604967308163594717288401497011202324902025148002063090302024795046103291583585282602148849785441323474448791445445179180925148736652458649862929726454015088462026808203414490708355519546407467291873516789389960803170991310705139214356736879944666359994351602422639988674951784739296035825930379396216391556038446115280162560868820014699554940242284237385197934313543594044707067950809900109881111453027740918832337684411874035927044080818671676109393333024456071394936522511335923749065666185452333166503462310650034025138183186699868385341030261194950462247573922200903577470052647561346973091738574129578104233213327167694412062851061325825227551180189297085196903414351665314526767124078780987820933118549754147069080598962547720085416264183727316017445525720323497922572440716823201062825520686577195374326390916097132656219674256719534728257529924308305827780704760741140557161514479734390998753970539579400663421467226720229235388096208551440209160638656617154237302298682409480098641612069146640826772198390083752940211797041775052458062970504205818622947059978447706499992233992974277409992319466706047187185428683066198652277172097792520056586064804391828197056248965404943572340127600593538300841639814295789140880001599900528573366694049899114577175553621188480372151818820502358720534916984032728809790479032549345741614276101929187199405018966406314153424796918646003066675091611805953521302230161761388267000420876363870700738632942702121105490940391646792066802609744709224797155773518225997967222622943219962394359057059780634822043178262593723727659850539464916754486659996122885535442605302922122651099488481083524723940579939921893924903301285818953618549540073150697073273413997270684428050134741963353469981515205636199171278137562660566554415964529434284139436729941218764668080816510445018804964081075339760219293010018528737281890143984014738913645956979863662110327538230741870807303226800178644270965072334647120677086464528350691476843963336647134946159668106788624762406001611505538670520074621595417324312971943025401018575557247337142517973434588840177387673982738491419182193950067964228786283517738513851319624639508816681607218578289033254280615872771288778062740738706170493987450866926232136347201007055523910088468343392062861592399393294368086677435606099313801554976465336921328400080343621676127665663616340400213390990269009626741515974244880484877500804476004155080833189601740559329721500060030520957543866284327627204879907969994952545090585020656672972994682344142750496299164881467567265003286505177020049203369795793869534178123597518598740180448447791372777517346887712935729165649050897715424490715707770237838342290720271947952720529409316892868617088998944629569643035033858285552554495915134456248600118235830970510058512211871008254395592534355911749208903741764583683331495484896554736158275020396375775152157290822326826094808145684143119070585578174716137845918595776744033339898479898651460838605965194027670916886255456369400757133912015502903320883697554341662654478748254878960512837533225521039521585476474035984620029802635252620285112772222512809777999254506931091761651921263106802963557486567276810759330974331618381653610187830461828392528614685067469714819891062269533470984681828548596997977491368242533095582601862444627485843901923082248418375773143263276950134311261462383928930391283107767223643595715562462139597893612723649259775903935402887209666302870940040849872088921711825172372600701764588864027167633285162288355194372576989819114198708087721095612015229925242236842150201025390076816737378303918699305884541272604959639614375237729051510687408395005047911224863109755061558169427075599732395444284371344242159249450959390644250812571992597379579613835326452503257027402971113312945145262973806587844052575632526796215733339101082607930544422164420225784969686003763960482326602283703444235744076681113021929510987428793340061852477630629248974125770379838719211869744133236915235211661211290742192298370657494133981142819003951792605935588584612229789691983413215696231638368051945513063251725178651299249322516756375842602048261068289573646697158115996283974828467408995393869319712604465395854511253134422626848539554344809934928617726895075375507679545267001001641716232515789989215782774169080737219780292474870130865748683670239590595587861222020231997164380163009428639579311906103590305767566057615500064618979191736610959685258442628353369995468679523146150748144784507655463599563474984670801315652920654971774586128577607772558540455648353656488331541095011264368571956282997218984051405500542965827254474170420031513369535803521462230218985958991780930568869071814840863322095230643586619430912226962979693977620071905991688499330980864255474194994616882371442664514663232028866232949686775914593940107822217962735164000033272353688142301188911467954458112817994975414987994980008290136059136176549660631287747750172518450574397220515007992570797536006327109357884289432682052491818135641746961411701129296245058027026098086784511039680308626312820360919562417192352691938824344179187389799806456432511611626037455977486481428345516183017988152514417566757734184969550233392854321082993855516598048617946934029997258138719033133843645033254505809797110768318630696441506409089922294847354735733215700683645785860845988598238768202468720740833622997648441557826336376093737097338798607947758437244847188670101234544525198137417971217141239624362572286024406929079363985302907356648793519958911008223707725040760157591863603109490869652760681658925327748961624042575312311128590614215948900076948384647327476281819385563450376910641984857344063125169752508960650523676144365989403569533717117130804685239119905901616423361581966383249753715769583863066996509911173252387234637102259017432349039829056772984850940902892030394609199915753424812847546939150315854021159360880347805043478727186330173357402951084673867355442426703292800989454467925790960670126756241215030777267159662952737962181540716935350550304007981121738385225387995158644606771639746585008399269489077098517807874311961979596852728561713447393335633994468989951577448699224247933281501113217639308588531950203580016369267959204337544761258691495085292909556686166230035821979428071959586983110454068949864257048428124106116556970431108241847615451411877378382935654364585837675271353542537094761832898718534763153750495701939806821241355114218299458610247256179646967324980018526858601841845675710225132338256086772599055093507745159955702935701182143033827341201816706329363014380671384092932018284016060084156016462383114278926496364737759784875254494666158815962314847956592094996788122693489496999524783156292217437034363230529172108413650834590441782072984298111876761667766692237083522920615726921665572052131474743283621338645957595213940455728538489292126088509496010614326961800766325204957313345415578251953281743569954011516578817333139084526596925437416154323625051626515826881901565150529329745292452341358819421406311965407691730130253566581947390919540907636960876780695050804957722887238990873424605778134618397311746663359104044699559129947930658399695897071457860170384671337545304667095350694121036712828147046220064862547550072029293861384604869921023428131584115626900325964133028748609393318207348033985555401569884452804394090429364336882868105946402800305956565133896094292662141420599689543645989991225814238902706985123411063769960386027284349280952850336421088054312687620554525695149262047927727513299481084566971908555103786740131960445495018275748897649162734708981635505218563632105594922882864566535040078365128682871695763516869931053114976345638541566363710582709662485801989479105128446631866607118287752923923878243644418964874566703578155166781124803372528452042840057167240620622907917984927943581249503793604740907675732632404354818054420087319376651845219148249237717397900730016961962532320961728326175681041907108503521239027468596176338702657722794254791714161119837860249474620346898310890251295371525556888045930606142390714469430221143409232786232779878973060364958833168164535721804081451915417224196325960063506004177690128199095563451302833649366770457352131839267472227222757216036868015309660509988722952344854409456529305497458656882750836495741550805241253955056244902203688053979602277921237592503210984962490081870285260581540973232488770411849130329730712128271201732251884508589909330390276845751808017056934446331856046116290018322972134050389276857793373427028273140133106087665122285683066341207673668336855565765921212696344676455794574815781260853343697567882008471810202405276954674607991065650213752879046898412379998734890841471850381246408723199362874494098920632659917954960517387473953327095792735292993099926518478725383368673042369872443654558006284020788844397492769325826375045235579178103541049964757827014596310400560708334737389481443118559601001945694515168601769278491354506150792065323839929085829003830614073783352618316812815784855605310997767953174973665807271450680255523286274080850516127581520530344005500154105793239230302332858251194189414660878523926307871573561989412003470407868641045690700157049631623541110876804130383079702257576747276799539512020138797504944268001027265826835799005386312045775466838665711009917844018973134662834971458281812080716175839483157392917740349404917334648695037080646243601121938571181918964624186484558303318373163665579470580537259817031695860600464152716989692714620457095343704955400390911646868092612028050670057321187335965157864591756977702420647620903362836001769174050047421093235266087200819242869763205897983724359121779897729349947428476809682892007774436145246674917203762969529942708478996290086861238547163212271922613545582540707786692063209681090377423518340220294972325424071922709079083391876676189788875813855104517182593606490330529007002434606134433732211216455980126936173507205807675825338912216386431635070148126596379688578100232541313579614667918261784393832793592156016764698464515672587414173984992448044786319419816519059846792756650259131467963649704144478960259275352499791941463275054204857762796288655095608397299582401848898096653364310691036426682007032417742982393242712669455723979762532677734880498197639353439706610318040603745756231727064607284129084404541295799667390702556911171689224806857190280453411990687597581831568651314653269964014869166982482362068643090394448104824835280392325396863097153000403470263038608890602833048705375378815912427672918775194155425352526225767837701929527989754386269584259708218169800753305111313766501644068094705789994923323962284350786379983760266849674836318010991626169477545516386767562301388758052456584059019918141722858575360307704881510805076275133544032778260530790853009329597755505044381146121228447189908005062071107392815097744759245184862803274507330753102259205151847649405286938906247690814874842183359052515907114761043120101788243116332164985483179649652306577134296485684813125041815580271195873522509087484698874423112309427478871196125350697965661184607881293727456306159033476739871462626504652471762914199754499349845108524981942178093534847478470169571529695752593857954075431720813349211828300038202619691999795914718661645761389899007516462319054505361174349761688586078235045078747743600998678583943604317625955447546464650305218128403662179026085880404668075498734157626370665616083330397956928782836613915215448122952005257165494761237621894229772502251522710589600980728262606863881675584581151148736936979885520370271194653348762080624651320599461882933429343499986712201753089889390076656417286809847435676246979178171126137223049216190854895603645786088820303895829997350543827475432557171927368150555354539199778299036851908291070042309618515840952147619640477549812351139700612606139534284813207406745148235699581216044363063848401817634116145815950037987482685631447733880511198593489179589154835083311258838476783803194606618983011420616783995320077772571203102841760079167642588742066734004654493557199611046872340044842310342327340798345165563266295643157385333454602800578940040096440747539484407603401400321276333233603306109968631630980264665530606076679922442718139933438480895301708559983134779589863928731600446657019778101013952709408463200150698543892818416848464252283455594002180013315898191362042331072385186897818379392918586507522218357524202100501037042855855436401322329020498984169283252926695541562974844887404381263007261184028045321710953046318529530326393197047703065341988287255577941107940879542665391402269748356150416253564257348516026913144695040556034107399844975967512464885085915279272602067436262041328307978901865070659228889885484742306412233332311374035434768613355487461087027209961634576353755284216770657843110009852696300555427911576519858901902195748700119360130119689705868866112322705599239155789853912412053052557546192755401327688554503255488959580459026962002315506761842891449516971536319952101438992485310755747336569733444874032534838592548678272535392345487180070561273975113038047648408712076825412219044537701566867335679810086319365482480100551967808263771270007594832984020683421590626040930416874773888759187179293142559291632532727591402802145497703022965619915525167960139713723798844657448404927837884614000837129122780836942270758112698416622051193055677736900234214328091416398032068976902974192755666747497578434002141548635760042475336534937795470195751126148862861616063298328175182758227132319317264435386932081963734143376434444632180360823051628074380401121950153517793640724445242350441512988237752644457080825917463680415118277423199709061930555490635776347409977797556277701194423060307498090075863523937996458552001036607037341486983698363266428679608033187302468634756035378297401316706711102809143411367661154920992345749024725579796615020166959482152565567069702026157617566215220237517032250496052329005441830922060123250704533407596062265480621147142442045301453317564834358221949772037952149388640679571253319902286226659581786705142575508297146228168897784781016006802016798996500430701543384208785365462483974636054325254213710279017960287902820057819590288854694145946210879482666978308508860471674064556832657772861836822046668091432384630798972435180813143306413819490323426656876076603383293793446255818178203275288289833356344741953416844569394625444370785299669579205471100008133065997626440328034668207405507219292070974755518365153848549771165616822894867025597448612939678719420187199401226834154628017736064528438746988115092543978304076231149696572995051955534513480023741536241504132797681541674741115188804557993855950189578988848336215316243492309858580647022128962409868795781449788085823220166674736063164140259677556363854145765759327986579990162459602776954915030501884338806071251563952765595907805375558652705912214755692806819775708145441807815857085271019506998887378996897083378822793965549206512472130283691828289574730873376330725170973346596545511150428576970571715712137563788485132208849617632048472499370484785740643134321515727474779096726939792057068301159727940606453267131232976062715342920594459009770170667678260765720738705599322780131239192801020159543638243875898519811381168079158586594509202767775318644395046614105426246440129745909213209389724715896852827461905470938422668194061127476574149874355610464616553027088114881486265053819158274428971602177940694865405290164008081730071059618412602230990296722802011318867432754822492824868735946268520787582591317903859144183867602912914435951763501115222634647228362992336974959066984657090828843241122204111758267137453096543694750959455857667952476466490428424331558122711812187194305420792977717851619573100271583624666116204803756094954430072070372201715936759925568290059932237936917592137832063029095746513168798289066894767780472801518395827241311719415095480048419472432357419697972123354928973084528536908585532383713862062659522615505588740079976937468841474435690830484263023355685671622585972585681887552714928781334611696410578478047226151025983451966958151848187195272380288978452813844491535727148539908180559414945952052193022891461633819770853934106839756665980028813764034468832615332728414195738918872540418264483634748547715841092157416646545935549366157231192165274672401114347753608160381372027244916979014291546753825367143784449841382948413563378955286946015396789868005986055394871373606263542166241768499899134051183579221312140073719561384514533022798233424526925025972313039582166883087164329654901395622388949614395766407451325877242634182989095553528535156142282196731057038214188815991913142134116778391433919966155808226649820597740013592314918252367357439842050399622698006903241683641979483965283402989554340887942684351547434549162005596739387273707495312928524413191885984009117387234014591124743712974867226096496224405670630505725274358714460473589600583801483000184190567640118501268678832973513161556165182391229749340050507365447499022984328195421186012707444122222553718513771491014946273456527267020140026127774784981439872719245890911157711363613827317751680689471328714877910675222018171049641552839902071699838071121362346294284015081737780018712501905394312176304325079797765357843916373872976350316660623948506952674498785415051178720307248222811031788732804269465760849984827737287389047385755822814369272463592648100929385016539924078865059503322167753874739938390651349802609991915678170153618253597558181072982911935140116601463073522829809713112786857189375186318780109727556430962490378881982034356300216652217061769879816713034240195703473564227049770271721087614540345813157248649929073179978831755784992366835207295955429685292363887834591201127960577870599828641978196026359229051060168149586758300650207653949471109186290806047809636056129723784407753871437825411073062068624285343972555365346109804336673834843807742719485286810163146230206568117898304766066336525441549739398364311924620472947626369778538831967399761696333941715421928056948706374291519660549707200650040588798637147878379915031743438954459077826795761274860012965331829163993109547893672778743805480970465504305058904955694406811676534921900445939056701529087459598227634732515527472560086770813429326839006567980981507781889648415207056526409956030480131471512426304026935874181649263237932668900775440216029647133939479324972924300284187511690388341496068243844632822452021074705112350176704455226257164946076689458855696501693224634773641451309339666975241771473875793455609990362380309629941870286183542996159928047261494312008979355187897975136053084377616702165404291439125254696119101281394915276020147082336690197575504147225496649204243122167431782864319875869254121341529163225633104292641079141511098528694703689805040639293247700843586641345015226730705864775845215596142886799509323331357710809654866664354764308170199912609636536053795740803210907961950633655485194029599283446370951551363425556810504170618606782641106846479053105824062356910364537969562705882255598303574449435176263103443629219475653451776300932612967149298409200699415336742507358624915940443294497627563819773417015293725911470344521407660344189227984951944947974456684668153200898469998133940491770984147847703745108323316032426380277960075898834190594804348109709680831211896226163838581639980178528609014490875883974576275607627141452003395829460184755970875154776596153334328432387403949953417562760214803339654353373499150623835172809385117508552561329938908319183426383493804898845318304015934348711528702097928313359295620557133509758462462136056258480517829021092644862993532665578224532995972156433474946671926632901147480601830095943707246644026753615054939236867712003785741002253517010171547563797045382837695883150117813352444816882514853977971874603562976910289572492490872940717702950802186881708846106252064805894557794982944701959458994186719094722717947275811139423786375732849465235632690668353805979681954551757761542220035392168284888517255430860660076582873259061097136617689560520450568568676611507194274271777696087844714650663439366493641210027022952237639586072704522515638584361916545668583551288564633331373376892925123734838605021157114271996905650687850856635913919729555596614013437244653623905201089870127599197349724327927454825948922237365031440325718826612543728194959594026796616242966561020461757143844108274704100473251020548693347847306332067666326036515504569315184596901550357810051545791812998957634450102341561128415232027966673017991589669796520733796147640335672919485622291788579119619494406506645424232627176093711112987337006233197335632624931406260607681396819880431428839696469563089972413689466236757673727928744638785009908223264735926613830592684627161473782176724096439047333375662541895801749321204049540937538239212914659769011919229319407415689287397288783898911823987161565480095179152370007953307102211559568916299885929451137090747546903114969653455600299680200583736096547370138009320718096789073647186821904709055138114477873708820759447426155447895567666957973868898917877067032647695439943712326095663102731854230635419474521006013576535250604496875846842769456062234431097011356819603201304298309868702601638086192824006313587363223761413572556846555264633530447976345406624350971393290886615019912581051913411378222111981777477920931433511326172446630016977512678627920323331740531026941343689582901925587258176914098875422894470493088286163929424257065075107344589585866950307105859167397448060297543117102464595007381043277991675520501655878331838938901017265961258430781349280851767720660014595767239527059543318188016996166683566268518864529602185813696101466847577267223273159968881625432153709622553152205165778608289590156861133210028964587600926496116699594223088683069472800019258789098244506204374145392800229808228002128879542699905514656109659198598349473093550784361499107278547727910934137755138778846595121894958302710731323678957802803571782632132307240873728368660100828305633894509585363635686155524402545746535761628650097946328238556924685413358691823512628920490402542746031704392870061542126402026098566597651342201215124598388087133317984510893946618734923297265746352485529985636994443779194412910468610555625242132141414391278720530016895643786518202215125815926170209994749012044538980874869256021609922066488863160130468661585052461944202480781403426076427380767242577515471599749178817865386798173783394564673144582136721564133403847648486856144364933460581957495032895319414427430614287954768569018457301841058366801160960735841452485898636467984141072764248091607773567451339027726146552467699191193589791705977036808746003846946639748291225627952551482297354520214564908337924112567283892248952834342623792170322198233513136736250937411562784633340558528113164201710087696553444178482797039839166758918726375228595900370014778957206403044059470864646405071367184480957799265804872627849106059227294305357313984601216672579124591368173573686619029471013788902496909074196909815786651659197952079650085626298151069398174670561180406394968123936059969467441476566458243572130832010736528282498967705853903943413286199109810014982231362667053629763822723873934145014927780697880593353264130130977114223989244853605762572620063908145321577173903441373211188850505377572364871192737384118054807161272351563246430319192781674566821428600047922314182388828209134649818523483235463616992658761301391645935313071298355145343026831042996898783399530947851489571945871158267661048697048813055252366941406542731451478374636415276983071464803645960173481871716549955793768985519121411856187341805520242472294444728610154642676350792064576994305967896532371206622155394851285461209542208356879285159915770502409293259285152201808671981335153665646395584003988536913075695307633984696272292680983938503272722140847095469957562163366166797308752438115113941191567994380560852209978277468221242668450164693236534964368081770298984889418833433250592318913922179610706130693418402433064406656035630334484449957887235735864083952894073668118443082558359160650508177383216973701030425267693981379184710514800761374149366975040905384156299540367681497825836052829256594319162140445450795571314780303793663241174093493706733674321400371690478013655535424562683006239307422555124771111577871308373083358019008708045409209520407931617838671889879268657236734570495173450275761885184045641466506994986383085265473009071449984134551605499846959475621283566864667304105262157944122155960198892016420776025339189642010453217952714444039607610697417136958492382220876396610943338142054873900487996420124798103992719612593735637376472492076958632991933718227698498752478201963644364546214375979439255158751233399543407594709040825647190141942867357044841688606119362153963520907317109366121439054933617773443261583479489399998246005400241189790354119681152388643441656222173550423515068020800056038687083914107432331477351261278762400231142406568898574747130437610960091983797404666072521048497522696020851776349924044619151713142572818948663814276114076359573373449788012605498152364918091075066466116910438539383642093056398293471544247713174638224457635611000074659629222962535954357844115149033653602056054747835918108232519760250795885627926259169415102418612074506207001284008490584590146082361720006487869673421522832299072078529352334974757235435175352297657250195572343589546937318592392681053210075609121085950974418896404783490974409741438641162543586283512931676164868759364381037367586828005006516965500088018630544499842342929985022023333684672556770827669710953010618271660544275455959387712373605950944794766962289820826298488507265255024012310361137056003586766569796121570368627001825487576015612141066070302281040259199758688044098300109575020018252788261711492023038033588355193191557859520910105382603090654836572663047914556612911470322010690980824549519971527287740567049996007530220883256620976804086884716859667710993185325849465395103266070229617568009184576064609452381672139506382890682224763114816233174134036194916951224530899293126324715929696883928952466464225106116663762921927876164906691616373541036370931469299549183462408045632466387927885982019367861332763598766275774060423958718189277782424425774176861699566776824693382997064013741741249109963124543383389446717252326310389912187007284253558351766914728483991748196553808278244643807015379549895654500109802971334428281348473224531027092930263200941637744873455134563357912730471220117889332396388538808160054464382261131652196977765337344678429383396100161117974328718201182534152197897201454089880679458800092386237587627289265082236668224418901643454144082486320143603164097310005390155699304201346001790805530365181423712249866528780907949596900277674721814929668421297695618613765284090141665954547845518560325678135706351251876026934778562121338786565148800311497758023510463560619785554760084724671144696461090442476258446679082656613206352085117399590017329577177395825614157040938320826939026260596841581968213535664680649035208730558682236034959205802661384243063263644610304013835873700823870022972515340809469842251326546680676590236554223512028052740825198281093652276500650882048946927807071960208862731043614851269885369980532036126661093113555590221760940822255764077320303545731081253461423543409240719281828985517131002232378217497903754715109911838801715723793567409462548073804660773783484820732082825877780096929651008190035087588601575383011459760480459407444381966994690880963672261765466885990820261976955644910688243776714088982667096833930485435675921200522305535090955885864244909817350607058627855590835930618377443006824014233527350413007349926478180562848633533712941269591539331210974934841525851929570060455684376181354030064779463938755036908941537447880434680543763723224171623598220920247186422861454034767093996495281375552757751345596046152675920320476011243628165892340052748005402669541845084029828134667982179260181793190115940629694950683834215787813371286229892330806116142719860534638181822525858508917127019674875744838876503152457254827340738047503179530855008485385746998168187148406616723519119394773581137823839927897041332800002085087116372681075304677892358468828081628021651801987739565673251225764332187178776896676846265700306651408023069992164785446434888886474297075336307692493188402969178299637753692680170916509671464951152365373628791423740208351976571047841180947841500945238986039880016629010072592648184093815017641094754902123910330457646494698290611472978525532041079479996322795546569359682296857634648321208287524177416601403136746554658453537143590808980385405148720126614506897545704400446865246403267001627857828207301844555876939392851523019512620855158923977479798513614189033427683525206030796320847624813479733947137200711365901762377665543545502643148892680094084122208399171753124800873351402095122709145447666616714126000622029803606987671475903160131084420606079236339334809211668781228347738914414758940743450793923655965188260206176167083052100792062329954355780958109476054769438073322286766876832305325922311253517868031027198949644086336874616410225354414178343404964738787604656620978116956334939455479790338011023290618422429851708999457052649002252210183843911325825778750703228434788975404651364126889034399047820647115753100879518956919363861233676185870894427696310831661246881745346188266699136590370380987123940717950981491147720850467618299879161699947890245821816532094497267743552541289969242784639754571701428073024037498457321809412821622227960658041493710479102634882994564797912729274144407902352707047076501183628282830163130161116281686286842112247010689346467150398121930534390714192101192493302189495896031647069220196310288941637678522651203454866514515429709087238178635956643448205265190245648975923549713820861277808555848650048648905434575671612568174673090430197712048513287166241231181084137192599964717102547885635689212909078438661922503241749856783343548426749816450979921394863228559892528612507219025215162168032354965456259672865742136274900567041157057162593081196220048777124340664305917671906781718824179704433936723908956630507982299294586584424578004825535930769448154855614927056284249357570657469547508671141280461719978648418948126264920735254449414299013743056761043259984256854202015165849362258910521225296156970380825235127231593282007385446020647747724021257555142948269764357847685234527138190810884751777118713703203554041276315557913231127303792872827693384450216341167692938339092952842931550103698723585442352044081274741515397341891505056248937692380068878909550918156286234697236177881062719587519375102060001126722682673281049609986864367756253238662044023608532761224939247883523029813897118103370733075343797743304650495556837093056577347283941831719515395738479118441730827686015177981379020410420060113151018964669143204932464049783854357427075839690042646049074942571666629636576416801727505998826331869841864746122295115274777818264742958427657677201730246477817288333297811954962789733094974899275552440255471610040785227680613394896148309877068893964912559665667657080072713366995082513718272478538922929436515200988496008472659562540549993132056515883676102102248541289041261500147009301094136705342358287106280250810985424985373159371498513975373227448895874760849453925466917235807762893748677133125381417390910402137889808133210653434704842181493187734867093690866218913795718093595489100943977075382235778886119977869607102554489589559251632048154947908736688609635857396212103928373987030359106654283516527392995012677133830197803559166773683917194995972533819020224907158522395348783224626625947728990586254989810498132627364955066105755060865104476230278927781400360266107955967688423458842765898499105685261927966216487299984532682237207408127503288345901007119285308201354878549234537204647837566526168062418986001262637620874662739922605137341403677710159146153805841063758731132062670569201460123861412367526647023583269786162563773605296619069100611002246923725564884602907717205651931130877323492779835738910382249617793761239714455429401281920394526946075047103168336712284117773150130845987535453433960277342228041963264798742496677758297816449054616237971477223300544900275456203388466426502183479021085544182667008201295625783734037911697991693453565375763515932465931550724962519695726391150195571808510280793240326331542047792821510785512642705369566036854720855672182606911120955966700819004365197738380833190003568906470515432535949443024337819863521052862213581482581523042603539151763262740807257420972147230253644361158513394516805922921474681809818759439662679354114142805512382614213016622027444723370983090815650484138512553333954852683327926791782621807106862562270318633773070355673099607232394088180595246071599236971023040097639769378368152768399266080383904595579530824743660501317624408220555552458556868372077125122377685965013473406065057137867193967590189444121118750082281008686897026147973969400322120537139728613867552276569659196231868723814082960562290296735393310086407153786256851244059376652703515667429017525891780672680536481940815218880468112253192427376704508757093762433192608107409013064989142585851857800849880020704794109045343678461884928380145003940575599459001361606145738398714914808538777222335389309302511783173005202872428082387340516697791073535117923419600413742217790935548928651661563343503214875840840308328918936138028931110933278495960757138759183971879779701858018465795523118315744446629023312246580335065452767561029051874981765564120529895454009390541766673501328528394502324389997638514439736267971070354048292815047485747600442556877382235013534770956403706543824325099227891500536825563616206610007185508436258779916555934750226624049007033957003704925631795533385039300436927948725061028317528104560439459332956051682954642162840486352535040858089590710073626374445513179405116655634429297132075753401007388756586094643404019306487298713167949864169369675240259571806525980598254528751597143275310475630932058205760191694400531470292433063248791446884880747764248904099751895456843487204123878070262373598820682037631346636511079461898209519079224558732706771326304583825889879953348219102562858007518218752506936878706008119051380915741420968805218343056176514808671037598935871709547052575857695993248837689162661630882250667789271915825145418184593713301659920168081621106327954461977502478606825430011000363812740662984807980518870392221576777587478664461021663290293858675853059255076092812385261040464151211162216835548008398657314918512609694399457341436062131738302905833978191283812361504268784872697523646885393074355420265214411628131885872731097313593249652598634172438682420104135045259801850311452749522557788483553121101656820616305860138521293967101559585587198947047156618858376875945651857919228591553094573360668998013746949233025043099196793185911755433272250505270259638268143814946031785398334189224043911367409046587135628919811766178616699187510695046671296136239413867084796975402405054672420232921464859916878362256008680996380204963189121431794851579440567942291801875665611279612900594066288994620627583851202629937547854202480252709793918880104313543217188223638198156127648098906586601417458097634746657546244135370133624656381474941779479448081802614797334048561171841190256771311488673716794287250665803850585612933774158754306019114638672352014701055271951664088056509270734502278101167164998632640548091134753166861677469018564380383579094698500327748548775025278184474203282891824922548074313191888933322970120579859560085845514196795382560661186227611134407154530605002077391851372894363726207650995017142632658476693964810382200529168095808002616298413511935991909233599908488247992376713364090268193231797307958115640284894373640599394952733911895470657733575067635768006437841415169588371266307644522680551134514788620697718736599847491326086456062021029390758710572545999443700119789196191637266606229922923290675293491749157265662282628345670261891438562106015191247151507719706140276969721191754854801580671406696961318877915777881071143686944547388466905504651379909245050159624725739225705391072114132110338456823653981935203979805998877293776837193561248086326912255349919657288386083632753132810591775605727857040748396850303776320186522636565078489783484452371585289850650344145168931479649565359863070608084795059914658261600747260544132635459180292102267650144068193131280567509721050601633050534428281259871578652286198118255356223250746614219920456995547712911967050737620091649882157914978108225433880293228331716095232655707897278821591323622572992680051750915911865448547438582604643649795816616898213981462841894463987053101541637650525833455872918624074970438305030363890022160296785619671598201302093771738776541222766023984185415809094044742726343862346221529733104702553263248878903613713590862220471156776537697943075013855199640467265912280769863014640828040994022634049259061928704443003598286704725708630083367189121243572902186811426345893220889921171726406692731765951033326289673124116342360737584889520944736323731220957084479185796558093653175527353589021023941834739201384286105624559381064929713897099183605968109464846597314208266725783154511351962791916978341514621912314060287508377074028382285858626555243275582865183960186622606430686034359548564825188489374163758017216720497066362209146800346713918041191791325483678058704479627590954566111702862295025725025906710388390405681420390451950545889779877753729555893676445623493705133090411524675502970111392912711888307886635180986825357163026832110021019403140708393761172891270678490859249274564381937422180042777308351401826605463441118803634591061220953704424126046260546316286437961395902329823198952690362263205017089750528981667163095409054396956581107115532406696300479641713603557650234443049666137285049358603532555068879703698602110003201484513339227848641137091834455969499857476956233772808756813420459823414457103678509099397829886728256295650701973533383157692986435623149551349828344923181810677389898175971368727010873283183797357107089411377505601834107605933439497677150777549779067972749267275173558087470617877704255729312632437980886186897007519195568427010753468963598963503406189419420975539155762866921098916051430949895548916611023263720051108137788180972163533896828564181260830626386892735308402717668045766052903936505167289509843609076855250124913152490245459780752513923337969244429218908687265064037360438340632592244319735596903246487354650169795061748170088306185605217613825753238616717153430909480796955203395523054421377800684882093202231212644821669788493046034021711771634911063656462634542133688440900091841012113164069338367148127035423290650945963476552148821111584011892483972975625175038497303221516074224122722732423463623979463433391569937824297469468130156917232456580915386792730781714335931817130654978389274653014652550641780840186466320912326818553380888312956281949092922241744839728488772917655720988273043326132272805892927280425204474487239281301307643493721257437824306210540147682281192741628332834216597919320435000896780581971153472105414753734443105012797314137179106791375429989407056398742644426893485341344297776576439160646298254241623472337346383245731763991948512007752133136921632537418316917789120601967351771373851767036319528666185980032461021115824256671529539621182227410424432841716343445200899671050208890035777647137863342266325295537248009995820611411115947844432970583756542914224877451121904655352366184588794578045785312371289944720376582503989839727266894778953208440755171075187043123447283372649483455729831989427334217040956057614483464014146746571799041436786999252435496732777505013674455948190887694936875959865312513084426652780061924846624641977085709057147294232922543311477926837766317904673705609127141363903269299591401733826702941696420657204890598341176976283938861281621302522187054345260021256747788327114112182632823373083363074950008061075023920694416046888235848167925304872018577901553540120422610348618954913965747797091142708490234771159683555510494388052948548430000326634959076233455560694050449154042134077739274770716469375086456303302428537474205153633945481283861143009509442557290037100835698550427058202873067064398109090281189738203255864880232080027980386958674471241450465624006188045006180197861915057160371498817883995028742485782074835516233066629971057719116558177255079805533660231835255543990906681808438159019505034510154555410936985387897841159648907578057835712440804943386562334387073198127764757584865679653058682276837303876302069196289404751514697068960492098163852298626205223893519466793541134947496207802551977356370719752287870585479892572204434215294794694478354613080411851004826393387328802161851050908591665158085592606698583024737972782782518108375047183925004737712413939315794568099150110646857008507770061155821775239615813790759657828374228295549018253686409969308483016911584145828001289248633238611634320024898190949095347289552342238682756562966985981722883587009289231789246027308474901225029271604687956233899237275729494203439993349913239291004993004432910695561067778414326693861848532332224986760424889410541385088532060889051983474242798127303869266414776623175873238685996308244728368217711702314177027533554660576531502847122826664430716644283534505815423912828155392348417029232565508999357630375404853669215025149815902236803178196753930047209920799791197300431290663935559253044743411558230798045558536342851267369820331024978603962381090224915464661301800350388743020844786178434324138534760651863555318843696878034573021924454244492525823096320183354731431722688999962349989540656802782338817113656453529736387117609589362296521005257415648183440399630267334658533888617275356199241557642942252842394902028522629850673715483063754994415478914479627558973867266200261127335762749866130197222682258344205158382805344942289063181681704423431880271482283974103018997227206507882043490968753932672823890865629887756018715934647289659559248932625645263517371297559515367077631473558990489257149285325502473379540954141562011014068057187051027526566922984115641696716220762798584740082633832808251309632345830481318228814248609060224947825453585375917349253790220176723301004826331951962420745784786213935251636535973983414027828940885454773592919000928735489404416653384132845369769241954035195559964087190359772527373671866864525592949218684126410611808542834394659993504214654727792793465681369808406535736859229326068085891310410397227218227017515696667593811064845113965638154214525558557197744265179419151290943299879116622926355832451419132178162616296932662991522410130875686587183312814837914568695097515276972750735070626715201004517475348667781170725852605848435936482053040861547786995662388903969572956853288508354486299399573911865960023490997562990745834607614089097806236598425328167320584366291726991925195835705552301105894504861938603144904434203103506224488984173354631556559391344942017297505386331985723489143066900115387259858841963972519158196260147764767396429880121386916160955605733942687877119315026358376823694346267096842419159393189998930445904490888437185805501039152591930600525626143605250083573664566338805613532182192985145722748242958892406316260168518122973788340585341558896879217127667849664930938801398404766123371151602431584379396427714579941521213641920911201243588214551485823574555157430765784217566847002316680091117469520336975638481932190280866713352251999960447114508022662952282409831870474796220506580497583532431888259321636799834417858705724385738622691809250061870103388058191254934512651147865828153061595610440934905444777654472403203504383710680468315144860334126993346959805134236685554152184872623514038440898046127977563680534280972076403752350414794862468197199291557932636712537085830730486608112505186479865844797149569934608537314116086463656489919162057001437304763658000367954594992882111157672966161555653895712766127373730834091141349678283970735118548704080573693777191301381933273881315277613431517384649828430563510031119731618823673594225904879872061758430983421407363907978221570822408914184509134767404707420462325045334614135745739706638454627283481271150805954547802160904565360071781935054700107325124517063712397292956879992567764824407314981659907382340721798406085538472418391179248765171015132929428562622169666816039254503331137059561367678281151264951687536286299694108517068929430056079687617650709917643336480314688557771671306044633834401171735014482255794200943340167218430090703287036115850075982921108889525279864753908015943963009317452953699197882540353088574156512082333710084027816663544295107597866221438530165083495390173939074559165417124530258664638487196874665056021344437695551416365394914219951933544841287196804605458900631990276630377666216859312471048484188888063039154694425893388376017563545506701285624522435943115240508664438412356676076292052144118560781191070682829024951273344864235674250895591851291853458026068730098176419337654368273957571427631460933648386176808143342051776006578677364522952137941469062175854714731780273188265123697152692164507616420831281994690653488139515430515952804979790304303003371156288886949220385662834496334491699297743379850535379831250875649041994300411220312098736272820887896557686870374291422304657565045459449811499829919651973898104058098402219231230142343005045257442761027895650308568972072148138796945516359705184669593081439902847927676343868843830965365089615589781738074555200930715762037713222713828198828085032704375600869218215619375812456739503922318184210281125420863327155118555950779436996504317687462927154839143481730077815339544300837391036630511700473117475871973350634459959255386597894963421364998703232369291530968276829801722322450121290424194897755039786979552349690092219511223743184116027732843130390833638702057621616797709414842178351765906829679616369042777277781102261330295683427639870936946218956756574222807457115431873814309727619102281028871963609457698889493340929477806792506933415304698736734304062327631500982194158266150847014575428526708799918088498670884347570510098815897532482241360271559297462334888214261670616656690497943480404221442861061099607909518722608527287106244825772445964387402977533945122302739789403906908343880615680818408783731204533238232759323748902992966288585769978818932922765902833352045480867570266428986427971604824075489083226008960447867601354972837527788430908484861731527554103535970355827820913348262954651660747541390339549675342404767424240708507067949982196649907423893476454111516837181588609533263006511465633200070441800874065070604326710483101317539888792653358706323029304570994630459362316311507684884778084894470462369324809800902770861938761006408786082832253183040517525386401258737679615393611940127063026962467011471868947599719598867857136990499313181977473973104781198202009627886467549815215292093364491641456897629625728646083694644972761933776633610822147639972022203180819515679900910257674028647852637604750745517220642169738081484812257133500672369708438241963663488928435486663504130501613156434664285277198942186162933313298811437371595702514734532109622000172900992111490446493799698847610664417093997170133792582184434944193879005601486055761511411127531141340916673622204826637333393476915962580176482961432889754477761071793576736227795842887492485483944663054679106691090930881235482641397298441304555112745140731787014425142101155355088973655258860917513747237344478690806507038213642458544482657676383496296290432461534675275794100297534352176980820797620425805399934006371792035829413003237102267889882420528018828696404909814147979474803984121605897616640775199335566404569933694284834702636194208722566981583752178455409072523553458345254652354500105983451646389085308704365146524141562834787753289489069498695614443949113883827949345440177038117448356987792026859063086916125388070896190799380738878200272103401966669492652995560935558529423877590167536133808949323045554966651459851857987232069013697661160974651323282042743983877460314534259820993620338601484524524097359026144018094676801153340971638073070901993542049770351907345725656701321917480076896143058402248577141693303975171631901022456182552975904328115799313935996423459270837680500781266441098204246842162575645906166402130409659653273549563828070390203502249442454052291738602313526012780811222002294687138805919699997782284257455930694025071014220518276343542054097213724460290547441468459623343474512165521825578379172236358748772869760357535925210404734457119723016822785839498622386309460918118250634672945357577291335413116547399719349765654132639897487790757414821414605340096971331862982313987593766636673834219949683033587571006664009486753843943948916054391026123228853264057180504304584714757274225222181501953937207017501701400408028071217063222312910574169225739130340255558061667905605364321352541840712924490252321614516479774033817044774785003235569260951554244295095614834425616111630144392950785262082664347526396760577086664724243064523463930173035361421286050073030531292879119922972070856314272400710906109427742568811365133523988482597399469644655074196695658753545518911517516403324409093040729191595454862332535137815960039710446880514696757484743113472468856606391184716686379633129852866598057084591226849095250536138403644027394779460669772508867073505507106311040727570702027008327147553749438553703296862119625042431706615749508686222410076606763719556904768567537146003575064059327114467310168153825661843969017366000681178654350101484063957977161200054066833429667096378305245736746547284713274623342485016190358344674932987134969449710965844370033196218550300786882954462909381992659071936991849625077913515783621041535021467880289006021975661486540933244059321130091560069729227872392944537895593424509105920015511708694445932692688298933598915717940311327003799141695917007876980751621696951454153505138633685643445039557794167805971416817359432126807273162250339432849510792235113966441384859293507504163227419729010291025982526555793208689909751392161795302041394938699405045675873549306256079335568772829271756097788108053337517028344442097724134482295769583265406613977771125252293311197695487044981496757609072438963581560574669527160463795332499772640383186279045325553803097142162999721760839416904038656928153026988747948397377036382350890106139398681427938206600007100959846539614533115261267929411166492254716979800119669791649087374061589113570890828062677871745452546589633861061296286676812576641022167083841743724993573679528222559773599139110299991698030902802813016830158662160305466829177377262902200689614044806173543046105698850726783692366057096512209549803478306607404751669592566116699334072912585416355904320253535607081090310465815961062686767544252728157024026877521077010340407966484113814924720685426032732077129001929506919836166660791402706370376139353530779360455580065461089390250150559977061004031766550659826242192071244250980001839939265563845374748999231358699765992225238581048764284289992953962880105141934540318916446114171049461786809147582498843737470150525067681016517428890925066334104516841369503199078445202140915582279359485296845075873525780790296999725079387694719811178836765390204683153016965470404882103072540172970964786635709551239865770461120528507995270729354384254154915819030992991449073398417888707163278325907885377556838694439383677113654156310854831537876090643033534494146310275606477865790355248969579696398702450759697922604227977809312093237980559751409155996116405860271457023478592570319995767540113512010588959014548379131012280479330270596306944975422948514506344319838488251031976136925157171222776417154975359034620202687156253775016232492753835865090180174174326028313964983832817912708659705935296801757574510624069325777711596053213235919176344810793828378287107001529113259910983182908463876165253125301374071798606984356787804838276396627407646452502111184309645067857767350134227394398566563015234450215153845465323213470388624726917694336139674045045072292540396739009148290000215768980383032698211677174181258889300498924298762442493331241377227626765989970097202999309321969414699137086456683810552015706582681932446978473528805038215906887121943258745749062138932572286614504794946189949068471792828477458953179388377052283119894885446148335982990780039348432492153125787770126607981979744482289945028220438440982363017478687201082115788947775935883467587606933661741341500650165318814152115575716045974714956048065661216068464256793267890201290863793049612738975888241801255740547047321035140756839778494687113227675384423485359959072303672607562257290880112913902804870386326205355939390027028632729356227696210203275709237912046080194927687960367191222838434007418622461834292876431894027840585294471534844177506447873055996637277940504352873759612267236276648993479428695665396860378047026847771230912222641173462300607177664867759524966026712136173662142944563925895007368345195603748285420197547742067903762137296840956980918461978048731868851562712809508213128627849353209613200355159593092617207144356746288839354550405941904691947756809904544756088391182118282751761880089576848024692776706328397621910911396730572475657327086636087349333685952475212679745491172596617303240685156319090602335174713959506817273002769266944807866694080154368469513205936247439029083298119285705234277791668458554902079932971923860597969805511212547502703867023790924169377557763711006057032042068503344071329573899126275726729443361281950377149784561083162047212197880422434810525135605296271088903857249014678920419340908633270945813649925042978458442759680185288137720765906137886657559048233518833457587487412778165970122878775087323684004894937191146521779362188585059248898323527881944536224468670707793860053421749532933093581347423628827685766397929636050919658207881488694199656892382756093218977910778509664386666595977852642891811560454192734975766131189916038690441929074318339210560963319923031680571327348568877006142370506278176070183491987911456773700925383940316975703557681365751087357614001610715182803432589906405317056134627341183422592920692720147352318262744828216901899972110073286421895368745006235545058700539210432000392305857478553333830036713015775390810477632057726199727323746572297193469320926277192762895940651300699249368986808769591128951079056645521750799012750317672878441700822241954072834836205865712261964754513236616246017193432416995820834473645208914084751509986414918164589171736942973683539066040411407399941187077647043383488871413925372817056693332142615955083388404741610159069638829727038724450328225655363627539250616835813877811697183048346546673331120758123600715857532333454327975321857341502692671229961039774664506146162089172313219914623309322788860506563719508034080388065880745783359315821097519953321834797677342756251468359225967258380063633342571113161432596287093419137320942256544213285879853124973205810609467681645213786001440129539252427634761160732809836970712614199386761542900663731444308076402651483213837121480597875685316180662703679272979701365524331109620044580531691509169574305759533672187977039914290561861506985621386402699072788604614273995596957075380461989205113012784797433910733193164181279769388088616684899538877983385124998969986366805059514234632054084758077312532627939794481960026177057877030471563263586482178495734445744058132709608342036374510629330735654088497467461888146005805580971575784903529980959090098801268109589103683708787712989728554614198961129258453084592319513080309245999045638032169591908983229206506370474957246232086048397108891454924180170597740756728695690816071304652240360623218146720782273641772310396010747517195704693660306398283358473743694385388930550494234155796203528334056134892186704048235566106413769289123941674720910935149749931617351499077431619472350181690878624202281376106254662099516513998503463916910456677996504420984503223586516080399657132136935499085609133887948697514103970193878754210722335016094127951260236746203070888089940274238538289907376837856005006287750114760683119871473412799643963373828069981600064591040732300983255149651780355559301515581223485120708292992042275726945555029530361086240904377499327026342032868844755754371017542284558594914740872313672192593105182944001711738633143551449726884236018595180621489566046408216713774940701584131734728280191996077486658465721858007362604175761632887349644974381179797606832070987809553247973845595552105602601866007554481998379158411086498774430913564594097019296193070250274998210210509300076264452199283592929900262118956718383259662977495226553046191138945018228012988342480166441703359363813684168140445912568769129204884145354256771451301296374310718227649359214714062803133666285764536985269874821552481172693918039290116947379174557981168529896906444229337710120584549170229738144891393405610417746510710382758446956687910676946214818701463642972876098171765180366590960252620061177804104322803361798367343727802477651211617672016951640080400093224380725774557273788876284002088107638734693249021194025740607257725921044476319112007915204633343992251160056946520746067725158724597621993535766594906019771847785850426887555095822676306973484995816747156859750590634937682679269514308955329190791373037366413824931963070383903417692442149513110511496935808376399281601250050394884802330798639954850391846090547253815720894127789537406789175042240704765433205875707653044120723197974480988361643740193239259949695266421933885778623359401214290521996945503052606751100145251709990671378188165127003211484955892642758216770188443005371701553736043225110555794787893261833289711741883924403725819750558236578148778089278253067667365729269030463096941347171594096859812294933320095522409971787890942244722481802561810833662486590566696960655466104727332428175959801724760130397445699330517885958595022836387446142959653719100318404890887745270851678011091695231934658098985384849706686264824327303427574681843999968838238627173440846322902609837382238573484427486105849108045664579717068541069846215502450273815433166256285724945346811974335700587597710151149682484364632070866100146001402959225580430056501066596318167400191198692166506616926359845250805190627782945255996387645797423901805054027653962463031118790952858330123684602932729337770338105612734167703081246688487874972389370393361156201428056353120651323629453941889728633884429329431036217183501472594124505221527675916007523882302239105045609269376202266145421811739788422480493160815884395127650963147692401767076609356833539334647427883609710079213050635974911698622928965809970416993595981122118246779419347649609857179552056176930941148155627919246454742624100508230678080154618164878742896476295593387755876559574064413235611525223660886626948549584279110200403945133959732583758237772983004358844031666831808385530551552863805620160023208244954537340398021673310846826462631592449100715530998902858849358242575184851444675380600079388967420870480365235930963555957889132661512570864455182337233515078836619459913516968918560530197889991581478138245146208649644656487248156302586161275611618923858181594013820340971224308986281877828593982087147441197072548862568429334137574719221699086847807158094655777714221608069550000347837581340216394636522283659933890296904090556353836622894228250955913448441878242874270240358875778219807293778252044125138000794257892834194878140171626729062272540353761289017480045560569334381256971896769493809257265106846716726152760896617826328244219140383247963672422123855479518983959341615095886340963518632926886868741302754915313858492848068514503483730336231640728086019248945110901933410294222220500135485086830812460483519773553037494708159712319827916152108294746890561933869633195617814943507355410241749725713556640509694634364606352471184014599523366524637368233288291484263469097674909554300437618712720995747707064815696502029214866271093019172756133125155847607915544224028263610063694584731244294654947711403989934885132715363589813786990150643199858227242047986905847294006212009912757699490603653564743188957590173987516416588899881646456933635288661319677156348769544503161545772867550203299367542411229148232399048665912839605895233643640241745189778584621428233371512104790119174539002977585900690417055728595395716439049621542832008809697562425674128442411147788267668205832530094315026298969342889874226310442601548375453788115074048816347450645922491264704583995775242773798798887491116818612596690364071665271571692282404770887938618975885876444746735097312561304723406937535201318473568824147148746423669180714546399328682651171931621470482230750666332587989389644149299878754593789583519109003924587841801879000834774722606674635071989854850045357328433410427745037703764803411309946092868014938020804283956486064440748702482082226884358858333913720597660786645598655330120114520235163386577709960257359964491596054620254227842629334118668922317451101104057652979078949637016186354222426175795697009919506467910392593256071088506439327604202795691883540726115226114088889702303223819215571946654778755324588565668556890504970570813689863549259415633398644400210480625539168843152704093782110796425186197504342591163854031820993534357720795395957683522941282160391140245669528078440533104649000953623391171620460851583608000278131238061933206698568484364162764081103734578970614694963634835200359534722323949837488915262923751596996643309535026953276369142723313184540768168545726458691720240984178681638389630322048240997357375299267364316559571413506760896530898873624411223289848826114842752669109883728512847811573550608848426246002992349440791654283251579691259650024970823648719326381367737355653912389777630910328184428721882637792719817431241076925527873306384101755216138849632524312221941201852069869932000413870608317546330944094910416516163420521113111861155782780154264368742197592147709348116262181358508217217845275370319837911583688142953227663294326758804925800581529069840652482005030920926011862756557287552757169424527636329337879364747607318954802074791764171879860138431453813126591691132592264174924340147230876659457878500043798083008089427389562123538688437300436916678399737062283069246388033011264970362189841499389569544077242749876853548700364278768451410256129313181329806286529624076920859218994789582206358283508007178489447319992369619223003568257484494513804898767903997389986506189504971047869164798070420575413902150714432053598736391952720890384104465614567637107181335219090483815677325781255220620877319159629383558925321116313222391164626062695320753828720852829060470389236043001952872917409645244797776898804527971251665937462643069467575454159203903698120655508285834637851210756081308038809994883436256870805257683559518246985236827216459397759423610912956210924859492922955681262691139090147024470728290043594510451367102328831099256637177980901314745977288474889291270423543759174043522279261015254527752551205282487581412812992067040472677080840453036886680704162062662599307339928220741713734248379388314340092827834203052093225390150500838979465310179549208581742883503173453234811963906237544427427039590255520584757963354799795139987871962424717735683133174740739476920293928079457164293247768766505993914459830375788679436496899110340533478745219671467023945722016900897475373440180768163314956249081915372360645499533372902884508240860620531023401562795766935735112325571920233612170931834263991228018342549408336740349386518422246046969209639336956192805078794815941905783964048059673702191194445199548834538072038351605065218567332620176442546980563378883795092367451677140220469537640132207651738986175866957499309991424917685182424785952755668206140905924852703998929358581531312797906617702283100139397232012720047624029286150097141653486455270848991385158344550383781003277668327955316896915146189174676934127877636202513767472669961423971710147034566122504984358132040423224099936237600669447232549529301979315870045496216115785320148986457173807502445981145767483096793473668898723552435993796415837741266450025894113884965760793292856624736543344170041374175137348787528048623897077282679861492848185806988173614419837522333917942616628063408135958207647694180162301221510042790840158154628893562330937227273572629625845711695127720663715228812813820362194102472128324875842846435964854122040169464265488995297467104070124180923261297863389090404331610887638476346943925892057404323358085054675081224986609164090398866481240173150058154085445362014434846973407060564976515503721181791057492212131279638645621698060045018696227387619096880469724547275092779875174944013342996375796820670870041044858725882206528639977242977816358146552532616988921300733061406732907158051892715741569502720121918554665790691847908981371063298026343658882434607989519011515523245296657166807378839365398856374845797893206052644639486719198912441315601978143931257574307140904219083736456757459634697314227559155006337833028163775396517755494949163357076000388184168014976080884331119057774257930526663356536594495193806399052235043192990643732887415720103135153187712323721081776648422007017960889666991756416899259615718409983182205437838676766125626262935672916709270227035589418068474819191136762207404787863510956840851402324618835233599209600622080740837932750582665370653297555370234646950326632740573245833631747084086880181625298274285787976221045655823004054828717483811139270606593963054990055646171070472006127294062650238252942355036164350323877667412395967834906109471103985617393673708913719113152467019645755934759774508693219105969953387441511933489099449811970088370859989379762484717542670427757650691500328287450397156730123309744763259628227689527481616294376779524106330176902306608440542293758091679493741398398407034702272307049256521213940774151926644065952047716380404987732160473495233096399175848546771421724430442059453136342265646919553137029731858861403102173862176676481190354496460965084699933239894502071584022113280060458707174853591225254074279756530579854911432860097567549204924090235902826078076726168883046654832578366080688295798211271670330079845841217061564158905555538791590419128143865947650774215589260683727045166097982803731361528391849351456229969225662296699684801496391450705174416582186703822871992728756546517868328176441998785050613565089281754137940007009219384499091098968561384378037367559583928845773435032177554391637188003252968697464044945311993771865295392547958760334825310882881541431200952856978509237245653607572250127637202288030100278113234228628477157857937490585953802264402644853258881484585333368036789739064109051560665871003580611757601800169250483921024874846610649456478349062203984871557866682818587927300223810604305332778463330592674198855449335801677982362460661309852160640076624227181465181354903764362399996591188851545062776667434084559340257865126585472576289121002902538706316583381217200567120475985832089445926461629867491730968987859039422906886927970823315483928465770116690713609148208769161980867845905640212095681653677066934446442613416995636808730863899348146885551728134161112494407929577487097923545120700683236798973926650982044322979144679861871257456595315824860685580864044216259114237427499555813902234619243582226329316793927521914094891665198259521852621628031642865401193892730403138227629643083611896408050577513515739812571277487940116862403186533269866610330039450131682477141722201952679909357429026808401983972216534213480422341307564151347763851785252787430789851175260614755845374904675580501990294761389677412367093785348295077736461083631706464316321073772627074329850633451541898007636727236343560146645583026192154433070326027956976709784338135821473290416873865305836401717169590587577525054125870307870239814689463578211593894254243791803113458883179587824776143471190112270046490156645123384320065605147749115881778950987689900048173868374745188459785032521174506394632989842324853447960236513258386297071006855669779085468700814281737528171259348389486991779181847186030621983685635204442214303599652759729990426250029349350755436437783116041569595741840930280836152376276803921012918200210424128572268252790412599853426317833554275379114039884026808872230052069611381978732328366178948081447687193308871688144011955572907514667786010657610527820891130697580021954199339212199142647454667589124062723537591530661391062685178715757508384868181020664141663633287117174554698170966392315107894143619013910866347736846248544062797887316964633080556512805757345777388403797974705491350368736728448684193592031112562757213716851664071421295556489574890431934956661002500416406990928110618150564339059762831539942999474011534766331698209641487630530312255853247414193459709123899893543214846668585844821906678818814818303035575321877602186595099523805276200266574826819991997131486830043488474522463822546112970914755323760615869986263456375652673474988185014615322705501139698043409610302425664450882712867229624272303182212227819455318494171055956096035111100412411962112180861807023510474030472773615582967051059155319271843584898688872955152446874874826330572051951784395905923830162441711343401555334830304772776073471476593072954150952496194188975858711736893871650708926423656631042947457563043883160882989545993614879527070058290638238182165016912461204044431262013186403440793258196474389055004733027122440134194972142289959149968469620004017811322498075255314211283071665520927862578735457750269452579361588743848464490493491371927070558723418229278962057328554774497161370093106815017512927078988626385174211183073064962509216318692461126881692407481862090947844999898320053962181582552320998344750510384443692222130589856616611551053803481934366390066150284170415636278025922522711899755285202034483569331388785606307119610403718061045734274418534367244516786601515630021455867629139324919670039849694127336863712811523526322521018425804969029997674533042929783814549988898377228702247410625999279049456964479014876303277232119182797850028729555368621341466579105196926007289686280446684613085182996050658187646669661298780648659131281253553644828208925284160547886629704357881893955947671024311894639208595039730411929050801146080055237318964947586591358519585853921990496930734810678632492992205488220800750086773303855920590798850272169235993877768871769917977744471669794094742111377039515058102715776960098045514492198965815900142188275109432895006855306166196787069974884931885501532372763548623572893397242382766894364692766339668495596590829893344647740979110103318964139768794075276954523051283293491763572657960180913745499751798117752741913807013764478433888786029902166090862818409135983079722226378693492133129837072797329503256798104536393490383218322558982938565498385116017303075085829222084605437299073164666661654913753955831661221747377775465286476283525159768474445862110217143106092435049486884444975168403946884615247279317011552427773287306031012407428904554132803914486907942452941686052491908003463042581176426544827167063218824822843214095588472020757468120853946169270050150618974261818464290072664686646938251514488444200216431084029351694606086032310868944744239578996706681503255364684842162544796763703251381634220012135585088494616644711133904039046515386192511943119598265379821059803999835584403742923867525505614542233205106976406816338236206838016652835310215076207032822578179263902326746267937801884115316563126835737969455085397343367449528955346484976441538595822972480240996076902390153014028224945202753340203410227424437330714694272638959553831228379672375698455441970582049498788039295888766040829472557440237162325977668396999663061001465666603101761109058015593332002642685634826345250483806899101631784800082536629474060725839639373300351133286858515623330846085732091318454024354023941219387325931903492017788149578231947078327445274222652406438429865262196824448443684243303258736081532282361041372503020408674453821710756188358201608595357299990311061312399773826050235001820327671645430672915370729553308122824294009387603266685103320475363237360674892966446909627382884707238312837463351430741380856777898201555158351385592815906900543167682591722720461876629151518220122120832462332865156297827413844352391644536965422764346709128638124023867823441630753738875521658586270166283718284257992153387664923592754966541536930692159785906472381050636537092242584699176756262719095323368334735219409181299099415141967440263864122879807271106113718304460332790303362589543889507782001884064327037688722854773466342428641081770774313631499386251358064385981318965999700163114519663567999469175812184124206061810063980889272619975511741348163362206975987748106648774864383233440894360300661111049445348106026995020069265003098972124781594829364400610208641861327369145172169030548262860780996748892218522699841202981767823467540715871485142318614779901491444920680423511859163113568389684030522873194888008911587975259327389084390007344555929571130956920678813872547824933759055570150390724078842672093981726604157178218075625638990086822307763064387705987865274995340176287937085179078376664803631441137182664114556753759913341620872499143777345068043731326268911027086416939459558203891477505379686748249364536696116249884415220201655003596819988464561063843521380483500435792233034036587251799225464541853951143250597111413684262127624992540029525786465406673541628578757461514164173996345730471034474541768927396992594616604954376386123571014545564499621176937710880330131878853359320763503140439293928847411011188820284918765298430910648693057009768040800558747079993836740681966887406863775988842502996527978350459847932330843780304119962925269408871076436069096193647889341145259527672053292704126411271682779156137475973579468169283075540963373348339799591442255412672955822363940871164264911322909225179483460628907333936601443968299893362146996941861508847515661992471510399008813640445390521642166337654242753242035446893652493854915505633770805559118775640243579519694033476396186530082608900887934864094866648864662372493338204648011495199529487938709705273352725519291910621829958957699303514785501673344892706903590525735968023089234306832411373696342360326909020952810051882294984401208985754999635393301720252484430277553646307064168718906250823470483792602309348823500336591050309055679419299988015011420618716704082715021921310301043135057659305088747386226067479523721138463946926767606099466118291771386565122773306677107300672034730054100236392433308653185930757468136402985831427562902842964381716027017826048968497369757766903864087025214589435772596891957065651845970720618755913037500678080997263891119698385449878539597922126265391779496401471788120350163543477770015690636286258490506148489426547258681156116547921341593995744629780672071496600918188272996676926718844830826993551315392517347633010171754253728596668863025520220175679536549345559189852175088046758313702567092727282313607815782671849494529365794472149562611762582964800829370488735890471284400246619154948208340076184717892904768024332129096543234101826449820886793697622892181208542661598748048683643535200350263326799007632234528398447466500025301557420943602873024182844380689989634622886338348827930908596106628542413738709662514900511403932640959227911536834610068194071143800715663052710408150261247996073886629805301978023240030985895383314718868097663750979972769591968406469557388596408301613417116429084692307968067331340289179747733087507341171272148354037345111134781235700903634125820845537766518178860278750604438617097628879090840184191184195015635675324697523560676639582644048354042793794852340773004815897496862011551369500301066937818352645152775953073233875770044075041197473576576595933750162181951264087035018444654098089214336538143663626287912633835294882142499919717834993743316279809864960914808070803056883319951357374578196100002725096843806811352600296109270348004487268224164120741221113040999314871986736601659810153664556829462533170865637478991287780477810698407801127330483910561010045743516686826312450843387421234204154506641464644276446264231010749501005773069077300793500922698138777601259987849107656582285587531957515118258059788164094073715539024086818439220025816338114979729924233287312598836665649154325885112715189948432804698115533900044200260982740901349775399898388604622136355606993443135704062162405808000595709894939136685007834224057056935703692529016278773905299452183126861404772841214094327983258912188007252834502622766655839266644486725459192158537824554086148341452604398381530789017078463864779935982210382215043738095562125452396076037143817237770916201742458224355903365234897928872757149546256996237311688592983001825053207150951948036465790561651825464412349742335235073189312026615039510432546503291920699006142049000178013252832668596160916873632602569315179756670827882404754505333276884827182268428501183007443799848717760081997175832404527030460408071181990281816279312216655428598914767709455285817701256909229678814894495859166987100401398031801153697808257366826232211127917274905695064169218133419555094781236195956639354096729029201163878364593417159150530752111698120366299124785736349463465731950556456366567293375087180669315565010954538830464589151016603557406198993539123154841162931460105879592814613887054689173814221082014825592204625938316822156433950340531092412377316930964591310965397303427817255903987314859386485057132011508193671747619318845155137803811275434949004772977969405983041197383798949437119939167289877959408331533992615514385574281949263713686518987206346105082817095824946115676632177853089932250660588925335503838577631669038932453935069063434700310342460979663452483475426831607524168207590740090638978412306951959453174358995842521811014846874816950296861568939191320037687187250458710884460205755133582582084708311449099660000767450875024982610332932363118628673155235521862409965453956923622564912051758829914294442846295184771956001071665387316390532972142789693034824360378528439161626687547115441095096548180025989615544954009042129848615938377702950963513926599033570233023672236487100333474990288426998277011392611716983954601891981142847444769648504776012385893329150392526885131122549183967596192373439823378759427200779084377929002586348235511664020656393873454567888764545733063431203267345594178616915612913450994303978925264739590833031139846007708017060475648047361822685093504767368807293046686986586130865371073649738421268884668934559187242157760047804390184223775794123022482792728881079194508325823779915475549591688725880517990899562010149069906901643560145196691708480844759624746845258221132365971877043657989575458552320233657502321283004528150063613334322210661442742054010775894198233834551610644305027744722722822188222539643919029619828579216518665201629436869079375151619470123505883690518200373731974400355424408829814218515376818734856436708254938639925149570971174508805456381781830734160108424891875889487464665983575737987010666079954337476111972743884300136253764185765303889274009699211216330219192522849940046681192692504468027383417805002667242479815745559555007382906264603159768839508987866052932400622536128749764785764371387329483580223580522217722790328389245182246987444297024984377931340875837726165784493198194632836386556617430350427510554347585638095550626357777498645709672876505513074169602541722302032856295358508165293033043044368420433857951243603905524544567771804066466314838052171038439246987487329553775930056909510743647674621227002607021521100377829532525846100283892324086303147632979567522361570414728086187812306406958681817989334649871762304524716666259310254188629815691851566622064668723860295531931997403113219451444858121250086843930065353962423289572575778882117269572679176452637268113715593221798542106801997220115828755315659158782530083742257433010580858818862363946323588443458120661132041535867582105414676825306974089715014699583527089947609447760465664319375261510796707556633582106369883566105804424698222008879184142030279798027324737900807949751093838132958742048021571688444979685215678136806261514481059962420730465022797000506455127513160913858221067950253079037558132670955433542706206943080344565192491697550973738731350678273299785297051441865183556560799577516858776364132834479054638616767335709726372018196706667723887367853508156194626333740856585103079486677772456249303862626973967187691176725427085228496548512156736402069921300085276644117156223179820724481509518652643734678905286189177845868490417907637104747799402526564150712122965411623862320493615696909947592997621366962773722499723063955808291515668744801091587406333293159781839904867383187967218522614193217135705729839059056925345763575635058526667972950584374279933832851751698255501630831819898862951357890304670806561180514706172038835977634335875521094728805451161377384108259981575271782477825877116119831343629793520168340366627205288238760663605837507306478704911538069614436076225833161688306168701159288261288611953538124342711072424316023202278341730531748570379934233316851944774357258297166321473468965785369383887353032306707010488010785162934824087982254962624083631488771073690487759280263319350043482878533151654258009318307370405796991616849967662929836389192349468984860820187213862813329110126309135609424646145986079701857404356568302663345419999908426468226708534032483854338637963942024223002155815638426050985357173347091822090075888186995795451805096110316663254266574159375736194120012545784902027426322320750977856710523613523428837186862785875657542949205129921855379052638036531614415039932218348132156079664113660631703978982705304289252085007743612598946830000440722892574402097101758833243378232929818900564928415872536859768409196052258167524679719732850134079197292482193395805178367533947267537826245121774258984853341589884125271188737582715543779780993102032546241463711346869100507909792958673319949073743723286834404832169360123159841231652065591612972294192531742022800366043304824789720899201286532203420298083418106475084087212687167012237777306253194516251585564978768642732093776394838314210101281555491647200919766866602264753092622972844119612513673381326627155374864189595758584731775234730345584921091462776454341937316203751996984822692410474791166033989188865529590306647902881573072005963518502797846947734780801750473411344322461032409601512176913865101277785622619236242498025027552927681743375921019862770309683074845334717389857233879621926251512326692481113454692576450806843572187070574256978816094719960818051912379672077543319604243881991893860414203292799146360998470193818228681832121035077461766562695340309032567514240523920832700319546992582274758426064106553485844259392254617187144549417167423929992695720210334325370364377899274406699930804332807663817519641326081367048524910746289171956087385170694811993549846858839388875598572726449555320338635052550128931391105222440514516986498704291564323446483133081786121664647489796376189714378973824382830094788114749726806161866053466838641479705071034401406335500902851202685770703536102485656590344186055301254853487377006292594963723179420392261887897065698338435798045520836269245552456577500124001479239086966293662183548198617034572471470059418175627233536484520188934789358359502702906280606019181764394086423134789792396280828728327586755526017362513367422492650071847222334295513859542443062380668701514739376085456242346766279021891293061937486133641080704726908257683446470355149965546101538009613046814906669290537398500909883342933679950636542997793303292581912911852862341150124992016479427947135806454013913236446391572241542510932471173610466372208271410082157815773775882573635738506896357790743186268499975836018967871826825021450907067781035567319354713586868848292714842226705395446476149817272753134045215528003940153560616209670914630131971729603347474515595845406275922825616893304772827577130259730280892465221744562211067501141729919764985568586076043854726598281473591622015014756483169380967552351509852044694507473630951622953006965674918326354820881637573627930936424155545419238112191033305741347498805332329460541865230793107714549456804650728569562686801579875282674487973103857383842633500150426735377924250849563616328652700467232939351520946342073397714255353510719060421711192916223276682835888942992455369703569297116109102435305766281760918300152626667849696120508629013037302294297506336999138238059827451586325497006500675939783591120823479769525688759204377017285335759343323352661128956355344242822437435347994856968170088224583125720022186521342258269938635441550669524894933157822617560540986243502797667801925807557260097375427845165554846311999562419513606676753341208350747038949752392361897416611397326682534284007972080075959030811615538341330231787385517597744156333053148821979901956636535880744263715018450088540982168065497020377686092736104345279006666773090959266346724115991070405858436825584041030198262890429168217082532944224731166604317838479341658594566576143824674344526991193998141323758843526391861595363171635296254236495554540683250720199038321316434233892302501881470686403031219357547415706189340369782167276656665688353455687070051605708949405679377448671496859755887834835404283399894467024121753712183149473120621501534834272669312142423683272416399891477960750241061759771484359445225646990133221797616443202689753153934664630840308494217462038623668818993316957685303104208317698235902300765317498219160725002309556140932548794211904478687328247348841369930219413580947522553246743437471261625556780570273395977042692958154504365563275949710924398754942109095230669033522714856823292020309276271817666216582279995972776944189869954999289561957343075478256367353099403783426770234224706352512943044890972512652131277142877942671296132009686199930721776183761403907873442625526595463906328841376814106595801240192911832757731185455462734350830933232746320475236710351417017506838760749513927107077021494782194425545387732564369152597025283569125112904705803378872189348240429114472649056769613953804013460597069398408108298634930188879342184462328976213835904580321868247211733503782127135055045574644302623436325900604870995598292759519643243990043367705495661231145186062777092858474174236186533390922956883186662850339321803179273227571124712257906327305601630890936653924385647243745262059604372062239380241906675055276492155232334497957838483969116488391859090674962938873165139667958997942356479596683639985433341380233484991316867076099414863707149210562883265192127877013248495795536852861775185685329172427649854511937562871509577736807452632209127440488042180025869995650016683389075787838340162794529003990621218745254716735099076424689910122293806175541832543910037349804277591899658584605395325082903586378124281394630693461518520323621488758132896892202031672829557410069339204994210807418285045819227738227594456056770255429916236083950325862221389746400906241448167350881112725614933490622050358479551196418374420116986882391426080500871773025856456666935797469210973752292439391829016625202273798675524736864440950211942136478556671951652885590868011204986784927192808082370349123360695023718370397514032838246932712580829382703543888213087192864523084112233726157894309877934881805354477152123092319201132320413952123520642332233561356466878670685420263586260483681204993727745505303495756307988071591183057891984252651579335737868865718899470430189479226717892341917980231747507779082658959822138099076293753660769013886965978384718017666817288832690900418925155596681918301667662561565570699948763250180941130919203598453600968286408738462539529507595723593458722538994914006952074386279723495364958962484188784943040620219460876037244277236239486239351400702117679126521029586057780084833471273609916593379237784542387310691703252184769091331139780362172541577094583935093495413285746802093458728953536365247081093643704508656208930662974826234782097865042534089446884515104780863296908685754822669278271357188922631416748546068696592105211944818251587071468686411195581412159113152224524469346003098772920080867170986223115576693572380382505353089168336596719316707151107046686498606775068427670475651243345964783427050397071455242390605120252971907628146483423886832936760512984867990744649459709978157028677783825087551517840673755588700319230947734104750472734508193388745547675222419281039083820674227418860895842915714998284846982503755396040391273143774047431534530313334592630656577848148201148855988332712735599971899455391581877491967760348051891772882347067160093098788546647613739759153956226976556403528184107005539774839579704945194922829776971621589434923819488597521418617152580775016725076160375775834039853622523993865766226212639649534714590279487877188094630595953963240428274724221832079111943457540412340132220322348981510706113367517929624699662121524993634353979042860326468153668294875130905174458306950806307463080441018934464638811229820702930773774230892575477956953862607124093724177398555586802918279085011207587296334473242329746140831475653227626609032006631576678844904803058318682513400011610129988388957841766569276424154057318410622036735085966843106455304805749234424840578346410872830511195772981595958709481495772907346353412929362191809421371708628491966412972011612664891257362940426985703450322672502554835597493021445356316709596701688783395575110474277979303762611952022292858437487840247283363898781266295123586827062721479580881108555142589578378664835076969952017498535721988492886741807370225067731127190049260838970764231512670445154205527691168705461684367729947761185511763446329028303435031116046670797678411545657701854356168937293011397333472395313549503424033122597885183983242318260438353246514915350925835129905736169921311103575739118246120440619795090439860864554555966719220396838283218500490825515663476892997549421670160755758023082129446602084296233740386306503967292820767866987639398912341049035815249362153710746434549867583721909503649559376240135422407925323978415831293195769103661397230768819810309893308332804774346717486936831522797016750243603215424064195354573695564975271869079802498025335250061838721056758375743933791973087853308557060123617262306584056663148572896295154116228137347915422135869722278174441615342162383831028138547983956093167832051691182708900069457415827426421128933803752822722786083813871807242327429308708331361006126015565886594154380051242025926489035780848181484005948762876117127108066563330111772836502090542360305025408789128290858216050505201775914583196786277301499845556050025026887556522674592914740631978058592970154772859944091236711731355866475559275782718273828179617441615553902756445186859565982840111328948185397004598563049159187068567090339983703947447343143409682744693830254538546717171705629640064034454746323462646104852737119856793087358275988251810289524040176320816678885169910671729950051186392582435506492839426355637164185373488442127265605446890424560781573649430469991282175027548481375507137656805514195519040789411000353233255322135783321518917253593179299177095509872169756864664283952968459609596613850217478441873034000931692042599849773967275983977740282834253429048704652154963393913667196168430844494971060256972109124886902124426267307678885748150564094870334098559090914859633024062535702016606730093873243317159536566842096097933056978140755354064249305818548745322276854097318866017187478779445538129007545550149452612772650819174576316842715980227641849362603532639659832097823689237052635880257893039301442799098496856509920182491717491192189341644411926735400907544496319785204381842822846004512561821484786901806053843780377130169050822932240928154593726970211341193039716831228840482526855696945588285732957784256183436223797271276536754642798769228994596082157356761147040996008616005542409776423924931636001750201079414504644627190701785650700910106484054306870600012040506236542582276840478397068684256903486634810895652790284328018661992505843402629456207263916722125546705399286016443804958104027938673034041683325097207716155674284585730061649600790296411294527345028647953346644820256339056776076934095872966802015773640897347104810114188979842301873866618804883132080879029076093744621183441668876450563546761959680979745440661234054772007330420271827612897555353706168527538772616329082656559984232874009326785150558323592738737163056473297674886931026959402567153059408213734143862357375620291359780594255608014831090932601967568762903524062615247563825635088122339133251532611256279799984398466872153966537913459565342116684165810707547161732481274305605543874982192773501728909465068472587952796765909437125522066485245098209337870569332009162281222948430867367337814777439354384813324129526291572937564481775066326742783817515541762364158604652813313860369680591803981176794072297726247253042232068973421146996507117351639176779652059356708916461375184292643297776690816234067813607775938248667489419429917544451265339232397858380461024824545227243324157776537126599589255914576603489869471591472526374880606752728087433293102660936549289904837138562678122004428285650303010570189907406316365446675671329084811889479157022854132465547322643105497539209742643667702685176511349529879717128566338285214223691637133932692803875065987821899601335837093642298788992728508832169750233971166545058214495945844414018573830010678188355764909161598841452405911082358118164718104821314795273508593274713841653988559919047836560183468808309933554008133960897368481048374040957641932633476435548892797224206882292347004101395049229183473623296689607078829470600864388428294792085255460778417994839952275759421856765453651480940556412194583007335647782129117228671667673077099251290637011317926684201650062475981273057247857266613235734020567460578150895651761985557654603309232560460471406101318205635326702074480788569199549023859656008884757652825606657046299908844734214870689178333840910436613458508319155250609493922381125755500360104103347061204944775051386006495886616066952779429379600347964356240381003695910366288505930447098625199337908284485084703156600575635868455403649800479594421034010477751185696498844891938608515808470772579361917608955473747985776560246139558172997800656247758336668140908149649389243048605025062540972158964703062993282010065225328631179107066901052320359299614188929455385967742964490491281232877534991751892236450039059915565633129683489617424345219559922852402394238167855665861235877793909288018084793190867297396175944680880013291360160119537415269946729660711095519292932991610811157185443963185403149193996286351186714627984635508713997330839874495764527002078224354289090634453697155546868061054624843291689961078069366849837250968459147073592356401833455481831641877911868102349489085552545346376495383540092636510673870082165414920774460986488578328602452571955930672505167012208065480223868631798961840805406373292125738695748021244544637543797809530169497254602378193816163120101552474575485927817851513435846439706337882977219337425750855842645217207153897448220836118762330138361341819957436533586986612840885707460715128161584402768002110319689054504104352948188586033302571656874876917335112207394939708910677313821376296128396511146709004972461186877296214319718365838132135756086516503975880862270847207549200169696772473122147052188117983451049450225561042457010593634941005572998867443792610907253532636151012648634601792944685557884973738314884701340907943044783747346579763946754396335975123061918843198797469351787090153048538555702651740921539382652133388083128826194044356646787776315190021216683044104938556103906476277531476362373076438546032105717235014724923004493693257162642709193356897598186189044791147135012998728416856422654881346437314000841229739958403400127604634106347793184021467525856510871459714165020818233013791134667732166620147480111265860340870161523288338950101781089883860427914964592816411984957443787770196784945444147997488647783336591117155555594309992731608525837038362272091197077155280949993805608764926249848696715824396968785852578062072193341194089216102832439555172428269705637882216407459345908398360816042162402554138803208970885025137991361990751379959699023481799250130800712224238009953653742518510087976685788758490873062475981335773702271059784124822687572594179583858108118656759113251592987998093993490250645876397594530053584900074276931576495863807684182940249437771646393514190991802403915343392477697294553130574044296732576171674660146860983225902586854945258791436523884907130044234117351431485047357379649147702124934275785752220669318965644364542254524257799626204898201679092673536780592297034991265696276426834826695449853940906536855960756912441456202335738231708764288794761245741296194956126008498679923440811497202236858622159044967187730260753756560722103330698900652928962235423765161703137819517378730088620964822243192618259853815461254488902167774042448563788696273082809881985821237837344561907442842907936563088970405789897232373762001143494226678858199360556250290179759209332624914101480674010640639553880788323759978162131544271198232901833190540755381913251104687901159076033207962148018028169508478801159236396447369384281850964270256494766038075201209324474443986003146497922928740431444815460405804254516761587360923263137684631563058109424638765505452233572656035466398807405543351479618778363939448057464660933019435321148291967482799212085751426509955290569752131240236805847014949571444853732707226684305496919501408077076324890217385912892933864832303814602817902120785903688833832027103806183987265075744370327796988452506440206537744074702641868341529632477418063026227913038394633365263481327952393841710466645139610560364672136350818291017979058348567103788840476888743190637340555294530685971989003636553565387549839446942015590321461499573229569971053375343975898733044755394548401237091024785553445332555388076900997962970628925173118553440523048320497715147010345540031120184172458864973034488275728940323961143576622724456331369605080257342249288109259083917829545670177127534960991045728595285419381538516395103655971393429322810433431541079518286089379696605124145487408423812946081539918972609848052780148514105804760091275091063159541928881533164028666280274727560892976252745277622039242330293825991483535001865859851748100912427634671032778943504509189469146403423838745856912739594874459615908039462252771964362118525897509276776809446225312220728274641481725955018848707666811924789855374162610880809306737926648980336211923550971668894348512629061870850265861582036729173439228469992680798152624333971986938474095987226558703602133594917494935058582789573853680076066148483483447883449117466510376594483853192042469918248771039159695212921797276774916458286517636396160324056859550088560412753436536452764659579599958767112219823368356287139138371018869927568027487535864199775974729976133548058603351807167002320738743010228135991068880470531131503862634781469275488372192037156849508190742044144286904135720905223992234810502318767301897311442685606652910374848944693910581905524952198974590024779237056006863760460002116804482426041753687648349180632206264569793158884463385748167920810418462407280182401316145326001708110980388709655026144380491821017621509579769047204583644980563953714785401876355994067711562375051222510537470515141886212685683344055924993603409370909170300815059381006044262757776121401646060509558629361623513792044142244020683084747839766284293053692151384686448671451022157703662852071935961672545654569349844293982957343908959356806595699012250831852973098023573807002989559561663441987731616946599804667614431899906521104600268239490406121402354177318037165382500263190900448334239766091386378567191181700613809361417434737992270266606231975391008209599055079263022307811325071432847312014485476616984121303786111784908482942484660574794067476596169211366016645578524829827073033992809487660415999922477915501431489023189527484490723471231558914829951816946653102740550541119895985552471902383001734899407298310966822412260162309284706341041221931026540195313779682978236871715468529833871869295930016386745728709795665007648427494245380735116076146528120927841274859454146248074032647376857784877540511745581948955886955054139877829950899205845370351316382207583165091485824653594053565494376867888348064360222716079941097604854535852566126740042095211702016978664689340279653756088722961111229600216692586052017943487162880033195636757338005889513991561818371936662615712737054930219627577289153224053136685037307794367755588138052652978183727492551343994089836555233434823465152277280818766063730986781989260124235449336891907658638644832925101200246412076608521451646606720079427748958275153854281186974567592301906588534350147670378818056191456214792692221559224998912005358913013770134618451660389774930237550258472783486222987895676834279934568043859669892507620323743208050667893148627295760594295844035059477751718845049531273383704925428671085962721203101157404407622923708068207436507656916691057524366717004718939615515374786650255431692409403676171225862531230002866031650186151996293150760510175004696672504616147643553941560822726875078068724400578878963199083832631969694366990576455895155558189255687856284324736858072921810183967915037740087391399879110688997015016299006731601724826007664502889187634653305229706614914840697946321741181507152138167794985518175645301284539929197561712166226107714543474530711203771688890461788340574912378799227710325201971204627971618732811024767928014063469295562421289866915154106233707373686025179836504761906667730151195403068143732734539601561374976806692041994623043074970645599290051738233779278368162056635919426055806224701307560055355722418186441141231996341011629291465902996895349157163772480749426325329969755165815197779233432092681022591725146630571755243077705363320598886529894571840909652238039796710310031903748713963868702788831821344990534635997398006760807753428654267880302417225469002438558054692151218100745411148347412334797689608377337046046600166185622074519326772051214533768856229383118940541620236631859988030451745628307419281584816231946117102233926076110312058086279252098354707699360171819920230010378513560004665559084410092909319942277729202552372078439193515732691899675087684702606948195084800205698804731688364228072469509333210685727370207396754851717724997882046608252780871872890876180796428461356018542508063089399951872807493487733415480190702916578845383500324916038286225362109644965826711665104529462893658876792311145115953326820350495388810764188155645294985031739831753071438605245830022439932425860706920281358434636564935559428014867001088151535032004036994590256568117685515099775539561559896593682794513912337200954376865095748566205020308647426577186867477037676795331453695998751483605122442109932476707430448512934077815759381923005586320106843846956111704797083906221731112339924891108082354120676896706071464049746743798603211541805602473394725994107963044357218625869141111230596641860171862348442918954846966863611303141706492589775916876097262547111886081667244085827846723888190574916346402004792203255969630654400990756616584036961759371889929676369489180000688881497485292259638085198774603062688511290136973529628646937734290765578308906747844764954970296243558500670343212161362978337918590534223343919000935348032581409849273374856438176774360698917745075466036438507988525517694511944995219390876792436762742408469150580794071046668624198487937102500513702013510620583513355089392613814580413077563323972284034012986025717904203494992008498978134941079840555280190698674553047172163769444518285572933723309199937942913041109792391253395416315763554972719621475226079377043327735082550651519157141999663634379710082963893050457198234135399461516888864215569212329870560701093214013987259488058295277534748482113311391752820339203878620349503205898037103110408113124577267699869223585391735626266731533368824729622442556095945889484275739990765949684531865171684821954445126322953620137482023625203216843700121473071311965882644838405983853206722026693315425082566372087366779822476427387753029575031671178323526240937727642732872261254581178799094436261680602612558935627632404550934139252300133409755691360106410243277166836841082992396618065840963830517032959867197465093042212992516203795638435561083250881970403552563933925619755345761639046420590985094188642743006970702654148509940652965305762745228591356679333145005375548451984568198253867783680555502971348394171821045248382178871429734668102797280538659114805663700060892255216502383082015766811982519018612328890867630776418502101318708095608250290596729371693994030584574905744399907254930968540209985473271957246308716119451536732078468400112478412383547086860095994278116519098498743530803541392869841111882923224072243741848116291998553893280490865848710955237776227271495823895171401161704583689140977389279750302252313706718464927709532021293853486981051613144507333891645743472259444545971590069210935929664272667151848403406097544204990445357960805226652180734787589871341430696017601722228291139261328403070092620668253130995488773498715682937430700877742269041516899619626927939231227675101370098255312148404990903988968281936085078494285194056500493648188236714964496011655431783112002679239662232493379061884406674833076337548422455727301783274602657740812159073864358866042278413767007898477155796299453086996891725484987491721725536934269820938704318132011279098066967990597766449474937226882953679792054309319279544507641939384875997178244287714448137957788250600580712046249280420595669407595329406576467057618201673839585195352522642133589835167512694520418289361854500825614500606008329572526921166113341318424820820817952494121795926365258036676151876630561203727005477664936929157319163670632828307034924379614810175648060705597436124552748004404146373302931307840610132472344340676357494295078776179077840261467833323047848539970054032612668220855074300121522111688952195030085842783606221418285106136598466586810267532017471329452854255792899689691996686571756459423835997401299940017776663158214078296544634760637839488732356010769521766033386818841268964423014296943908971354322462536127542258065806558527716508688706749519217378585038974817447068446904053930964383186814538358309697478721676601456859983376042108300343533325939078123983054042176153067035107485640853630921314326161884754060827118132877750541860901209006771418871400520692486506520963663575722026842966894932464169230218197991142377615222022076527311565393294627181951977845561433079940560840573981434952524399222081387984938018608558262977781988744585791328419292714373113367942620951191866503572385944971718984449708644641301715591807329953509527583170943992994919351308001050986503267445855101793149322153181222001268553010555980051542703635458347648955084697652427184612164770612455693956527367288857540894861003830043713377874668923383245025474622548608641740759569066811650393170746658769454893199655432392636046397599542794165171299162781187097565740682476777133372927723774996765789985889195031024223991416848277386728903522073743323983700816496531430187553918903945678748015752217744578701342749696666483831661131923036062497847548662160366199977761798792114063953832829076173356606981324346042262835086711774162713460791669847022983734820375329779185272132142012475931453698399114167877138299416375802959419688426191036670488828761139541001647364965704515718549869559614847550815230696804327768798590062673890917899497556295765401626035306352699976700192188068584441188169183664479000744970448570402282760999858207105530757779127189620599323647117869952144106776738359847068389492778156012926145872935128723668956300749692992518282665258859626994146784716544407439945724759237308760867171037472137902510402007078805984196600348445713486443481653112706992691051518468077113968485487127344709646685889743170721928493314351016731473167653300816724487392429449471068223329714671603433433814190781610949107835722672498633253973953953555674238840943671681643622820943475494839623424643686324016562478003435561547416755895261824538227281459283150942179219246068638182113588829083968451484294190596465376436781934768313608147722030400199246702763770277204712771671683393723191064973927168784869845131949230950957015418438863578755897872732100871663926429692639308455469462960412978888313721707582991656739131676484859435618887809339458218972585478372207417718588017206710900533589298837011950524887068488531375859831627400784001642037933109749132744496279553332357610650646986356219921850402409829243608210586695915023582944964548172553493253423915468649139884873919853243854459596579235923395699827353821772254377358102489449240596318897737746389124144918132539632812643820118600996910681063979283341015892667917713254762497217992749014697022244538922928039666556308946089812407400284181521391881611624026293048683154934444991425223707789496076482993943359534799011602397330338223250839930631327989727500209628666809963075246545006232448570192826747784532294243163322403233203591767261977409066384132667638177696975384914595880228285468088077491099235394148737116254925610829453724420819252904777456366957113121521360283796826308019060972381127447956190196870620598504638839059439726592423724569279243622579920774650604402242012481594124119283737557871203461355466352779606272447923851109159885216778989980176717932279107057501832050112570732144198577646752536540602521997896153317388768735397117093612009737169167360905751165043313531017971726982002459801530964189037166755418119285920286119438790164017668917123578119635109604064157333793126434306698199980980003294532987466294582922752115701421496649977649968491575781588013935796566827877281544440681190097779900984585941558445527747347788820694090129059604815607536561101112672408634764023389055622612389604042810572937520260268169521750092774681349268171125055340742735257756585979123390479445264541368543478104087118854580617921594785729803197137094610533502333516670188572089433965046621854099747881569609805495262082474361796494444582391574703947635353330180320458709112800073400817549877530760814447853727891866577602483115081732649530734661229685418755623328587461920030608342444479479297100670271134023581873164806422307183318579829295553910378123295263444801949836166150940837088874174593970072982707699526480483634331530130911320310739825940780869043060281941082411185408324385502190296802044553508853612410270779757958557506321688612905064384093692103051492789153109963709000985330179575713002405274589913943003354013855645175017974578147108872828287437148166423610943568798246029518167429181747852502888972674155340325771557877330737636962964114207540428106988253944535698640416664236735419577750588699129521439140078790324591274138794381736098033543940420108611579729347705266631623736211734678047318744594060766979908937353668409930476008321632433174444217270702967548211368281710078044093529835905962733048140261653453396859875090942428782385214409900663102064283314828776147044058264970074269919485622373309710031003942043866328704875185872095164549491705297722236735555899751218285165719120586922497232503639012696293317045625250376152850213451029303627226246497933534288975971077497655479913573208750551219538082209141013460484681431116669242942250032709897650666237121815299326714289153672117765792834334688886101184010898432460540567361985389504066129293957330997902255304126116292953829545120265953320034285674855811334587711698338402909497713013304173033208895002422612771472135249816389606520771360757271294740261218568187696242433520136827086356134209079050875261741482886068929671154549427992398157164962205153168014725019915619708606060671168065161769905089168463567318329617209702489682848166641291475471560788685898647429754582162010916619454286942274316152196312548542334446621567347226123205594327290988272689381962123506455620559149951680646130555833158917473423843145301850041300683706945205148527513606019128971927430192930536522662731394924640240380794349940660432219272418200928352243296115165761331279987776010919432048585001787639627387284685976870093838373746922529696583249911505257533518502269189081958285130293994997369124516296207545512484987875581935646205901757867363766578063231983088007413926401920321812183092371900007589849769119386552968572448158420063921297160276882242188301509929655356848617839735951187393502803133290613733884382838328474172684328860387485370801235562267463594363471169385752851237318535078900944510130462047376523775556906624571504140394485118423423216316055398703260598620946411320560642544225611901246595931867425365535924973366106607698356471387993571123896342342013208738166320638184037489807768878077444414115954013194968939512415558813259412837455852210699028403420874708262208456806145566198482613548905775716357375502934836522925126437939423417665172438569347305829092702614222300804033540733215263967723626476948665843249905217677005275859937647243876530021694909829172703368155917331169990332127812364832627297118236242169674742542680302494945221766909379779676333477506399219050307779466563752351168107511284394587674918779769989754127629584031750709750542176961151413877751750117459967825928007644104543822823600817368071338533859452934130905325564412193401342115219756929587959083617178347611099894602940054986319134149766661551085465438058497445329013788558328909884804902452890473439364789463731041583372967041890307430178120546641539297884810571883046987189679879758337143875584350800111255300042687461032646358398973332495570348417815559905239314048704415524010285150286283726826641440268569218041379978118868726358949173028268180651849719417482404089166231007977435630523775273437953963810750440489176964646085076494623454247774406258307023370605077128660491442086380710112128805580368007453366051684060470222368527934689709724091822945706910314836650429518911346606329477437842593880036268967486428987678058782092225652985632805396718737482998856749868045483824281240698704177013482158886489378017232763631886320382453676232695733271175434777295218338527928118928517455232982943836134186168537618001852816911164586268489104511890173611926796770196807795420205408891639209406130450834574908826686018718926333761400677156855020167506723000338837472206040066119154170665384604337260100416101642448931830466887739815849252359331386337339971060744110989616901349808751690069668315907301705991549596106482801871005344536680233723530000958296267928517826676079274179269736717352411169704637271343981352351232807325526481599271052762857903345511112158803832731827737499396620997076494917410909341663502805629440569898005490453494772051663693361060530297646710713457699816454539412573347634892400633117496593840154182456121940317816657531182209141244048081324249288876541337674978409744744024103441656632839723874023634401671151955903797504449965017573397157623003162169796169278077007551952687493174995715961471634016541751542003206965765331305275651341546749861699056122899159042423498467540455286586080245465532142894860997626664314495070802955486866803627679020881016941408224635522511284732893546307452600853544024191891943868126483288111264560160921697037788911747703199178580926242240609568596435437452594522479425730198009315481079419207550887715053874610387200339775701448461719206807204835665413727623066118569789088434002978001813572262883484539477290215263660194568696403959412630472597476204408312198260569050645135806823996091364951931705589668016288467885380669352448649520867591099843886881571520163142166206074248256910718516677920185159912025943193169337660928039027444071942027605959917061977510527373940766328057800669004931979568121524587560011978137129422936010803079496749767831986992601034373151781487665294911501869617251869418063282108762258627283580200806472168320866445771732912863999039433380206402238468507899155084764669842497586917206433403148673595548685397763731417255589389672519244241614237577777729944167925718960185618090428434908857290620354601294318280652370575657645522984063217710387162862599497442751605982292333364477425777534235326154686397176404770138048095718952037747718341333804414991446203074985154053478566419549084382797596125088048580425002773500320252279865012226083440729663751884068420210095610466331529142482089354482338516128861411287584389004330399167550507160509107462201457816031951395204592925949803679442200442431378749706664705811833917426972699333350221270848241106248315530601522600694453087438974575346190355943542093397072678268479985835652421637861418980129790329013810370552922992342751124004979122643686074123034465537397720770361179074077927039853480069476544721742562462245580578681601921285355276471956878442514474557011541524557023679416145126248895064065251007977112946201352941625907372049611797415408322912280565155437504475573743226795281721074526938025030216183415266583629449139942569150023116126830804357274146079826308987681767675982600229799585099496754882357198255283060273948925276539630747568487336620176569682211951835022627154787770239203497518999640926692781359077903074729547229901803535993926913264936842961394048779339630821748660399515773667712474593704515524814581897079094077796698868152709024245334350874270222163002044490226302453852795808688907950597759240583659386743572678506214168214605248578786217237818870702505549486373232146088565976284657769380463849892660567081384274834266864974631734060971490020796057489522849481652988112970778712884286380266741477884432343900913246234356984495956112993335472988084706376666394636797745911623366474608234712898660340135023670158076647409198785085874948183075409374645640360299396227909622374215824014845352418787243611356099691646801628395257676177962751431130463132224751316768667786903048134897242303093377055667485826756626478432675889524329308924623095935624974259958735046924341256478925476662739417028547767641528136553549458075660552324942356785795111327729710312960782303164162166936514318297415635577667017017270203114814219775289999110848973202128541418153948634130774845072218107583584612199455017178174945037413034138106235125407133352068181203359509120160153028320349345659863908416212595591561523322229077310988814698289217448517827144324096006608901282387494620308601626419259447785563119097677805668611087935588975164105537614167446846622391878771955834150325711727516728981486559761626798691704860656066848425808738037734114463945467678218065487044772217534945869610290616963128950888402868002730577434919158539658541635579763756346545952774000457345197117839189957967813243500274362745853775012808688922204445434834296081168372370646361204192281248499515943659763286740219304803573992065484518308706678476321629536464807678007844856880311692124394844571588609603407685554196691582760152230221457778509352060298943795931021655123431501570170027599756910200402056542908824181206954857276130441309233551632424171691823565995484840503903566910324982961716127857231110539125239487758737243720283048612292878954144109136787360436402002243216106835006384963600176006117735654982339160665148755459268626395301053921446508119750155371160730641665677310395341407506663891276356739309921674221011035680372347945712823619889019021266631227568130034031985181749611914164863559808576292170526787815022966291995891043635386284126595785474180501479912498763949633751432891061315878103359215153078433161335924552909321966713097452718352664575251352928944551822602250100738902357775457982398068908549085999793321503285344985074385305857885036926028492435128132568826360605036197013579568135519039714383543873619845307463731384326902246638460659354371696750141779442499308397500670953549973598350335847897187890713804935369324198187409344680539706420232598180648267063190014549095586871262045262775225506890742642382025974269640624984323165407274683634762156255298999436899663011210047272869551595463117084150620073663672193983703522743356951833148828776850306325993591753270940994077881815919473606090094601890725441020520758068939249629196810427684510652113740813549169392084973789742984079568074350642625321974361415662937493734414352253816692359598933486542939891141901843445708530743390600627262569694570515671004535936397709911137202125417442772048812539464712093958030504085871243548071527005334456453779031431825614079707600287313218171325724161833868293835572539379417912171437333287601594203756238118494970055983597980823284536013986593563604502799664221839098850545945921091667196624790345098473433046370679756338458067119684954674914534247445183945297389088008422185782481616464671235964506084377023426514961141511946718113038124520001423840862312117553812326698776038739473698596368216429493775722909882153321209987351437370635561834448004899088187636367786336982178723098308955174032989167289836501006249428830092760761342959822186639762412213151065073925220098033385091143393822640716019139544296637609167488758927336743601914024146061405028073079798921782514399062715518403025797860443098575930808688428373207705247851819888849074447499985158920534886346086132777400128991440305243153359773368926092773742690068249485085521290652002916288129419506329769388209765751061404743772396839882312163628323623573821255246320438695363115413170638668304219050646161348234072132816693447626616940364661935744393640572265221282204184315700176131063448781489519084504977685612855535232224322854625185416038317226291139827577858264481397585215339237868075742275827552388939833924970647119923999971461347031739849709874146370324594920410214141764433411619948848309350789370331312777066956643412911578273624182643877546004092806228421579576663045114620071649608072443842276232138603810824822955186449373027988414201519883994025465539412641253995829422771570576645766840133245041077441516734583113294044132318265851710565550261956688782642091040911682857639343704166257748436478532295943128703979799984680441780277022727824586620740860407346402290328602971209163454932323575955301345919949726635044746006156038985200100993800821441939458365944438329502786936531292439781308649326494147670578470249214674743104997972765909172281554394829767376381685002755049661132300776808069731375277328825710311459313189269004740069231358464112182393203852306313761832882650456213957117280835792211527027368156057559120058585383068191665662418311642775584512406213140829561575156290549044353659578146738404862050780275474803824963570641571269237724572735240020032578925358283254013311555639968995162916605476511066776829894922206322720089771308645545230734116116534303320405710283285552589605541953360241424498244862716724400259252584252478833224364317654057311449712192903103715722505562066384509100692940609086024593032200480843502242095713578393056995972468625545230629478752877096161127628463467923425025678562629345644218121037321851055878375549499664628519501503049613329201988922346590371691273557319984416384906894854222557702807981316668430493583250309164655426571725780499505096306328283939416537210255392589369170540921550391745958837996814020785748083789767709418338802450388523636594924060139963919667666378148987596656098566502328910180812659498265041843067625878462542040080164752097936204603570257160742642973602700900882739296939518028014698130455398835860290189155074419370149904247167962626096748528708921983893105038617016603007922348256598903795030296133458179327698628761780369890957790567637833315375322734474723429319774822975757239320970649198040653809847897154206526143318994883408190788984807151959907567106603918409618087209616684194647453784216071609979221720537752036293557454166167969059276303040692980822165133074644282422644330767568473437094317486807247292789048956436165379378454337993342608665865173371837198580133155409851145779240272012810748238708626017362844626554701691169735078023290309344434185586846295513111324876532233672106850252949313905130202107775458481920977806373787738371435937539551594878341857203821653672380864522352323587995026825813582247522221709142926304518352709564598426820844373425995367479771374340130292993295882352997478886988189044847643588939489790543291958479564871212134306538929089799484081144347334022207480411621059242771849970371346310700248477920036349591975465858150871713366246861974851443979769034450546662969350091800839523746446691018111573848700436531421820442312197052999296211984385173635605359638049072122201470912774348759587326706931979347812598609966299028120742772241614701003316683305678136032337141260665245391757155905635785738194520051222670687989135564362533766881844566502771677996060577274184562889706754642178190260328034824438548584402161841361586227242600608694601562311514621758332169005049866173452850960010517892995680024262015203401340383529289187763589568712588161234418352746873560157069254098332314435863602929244372938505597998720351457929357568114235730948357482570520610530698891684005335099696135265078790074350859012681794030074761957212810008789883773848697160515930518619449652894561312892043280084067060967741168114369198513350552495575585461086217966289173305590071435865717365870310149767454390089384455801794658181621638811346048938734801690139204978067941214529469577352130758598465071661131271080513650602130241375032448760461973111456099548716469721728005526998175742757853394650939985987961076050744872504384082484141619088368946018080280232708070102403395505615356562704211180336182800449846197566719019058369211766981370763322408922914232140639086319098431033713395342761904258394896049184864529062646923346836736720083798390432438606511701869911027051624681503357084161224698144250407052751098693810422749836602187985878995596768962924079682549544221047933904505076979175759490442200158043038533254167155446252982347205145983933982728868109148230106012422877642384932891144464417033528461944382574031155896342366605282603488013447765930705970080615018161654943536165384905935869603372667214683360043701233270940851368660073317547328240153605553497093855905080456918783299475062723801213524323533037156018200274834592723639372952518828875931444493618882300408120095643597642865063429085269407628735958696578055319182319121086545665084935733886187865847961847480429075177777121048503500079984557362275228835686867032227112058199598046523620933572280169731374954636702831788655550847309410186602043069888179273784363584395476810492791805095032672863012375666797538472223478077723248576998286581167842639258543590006124905320851439487197677240595567550039137580109932551353703939067034072872248745622445906702221644155640282304202342189617522987093270667028198684108184048234845728451461486584575358380544630468108552886159612068587879979761656874805122747856559942223787412234642616218385515695047247600194113930952210505141820657749224427395167915714059898530850371097419673570382904803749872627078495134200345205874082042496186247281944944761829688776912063287294752991498455939041410609683806722294626621574622107233576545368555507009969988491233858142150829975388812398061120327939499963930669534296601158896949331186790969398223289808334413456998005718025963210873544714923480523034743154841563980503615895829717155754728733548863822156807249638540646754129347247351877406269691856292141389968105697577587406290414748324315026484947384689001448296942500617487079969489449163259754524086843185344076370776664947919132469816171423056373721273347193342738771985494253860271556834714294253945855032280325946337841529600622921215469551991958636100967610591224151823268433744772837552050593155156870851758066190535242513359659532424119276697730761823670883194781697630358731404544863386531433533436555524984014015281064460981815465912618612115355240067310597478590898255668003771017664396776096113418507498940482345502159201783079180770275032864373416355706744107550683148148659926799646030459088438714898209072524139416501627833703173286967573173374387269828656379375564214007884652212119320804240147782106966931543462863426209729365038458501745450301511615897630902525426413875674833938130677480636572605544553186703208597497551620874661906856626315615350663133152092004534266800838468495054036787993549287783243892931176332520149971467194404984832370040459634477454274461187206028090175428432962674880044732754833614109824872233880876804659005383157169616791704717878045458230152990699730414881942318097231854010351034646527559929350245671651432146415334403616310916364725024801902047966768613796409959169212165549832197275091839750530929740148821037990265193388955072459510986322809654055783216549525898403064235514524063540533952047518415523783153855887335549062057932246925752486422151879815299982286516268869210348378263919376397765469591430586061125922891434895577376341465160031749235475980107544498604693288996108380681155119628260332985507388932710892478721597643664739978401345084115449385158466597150689534767244620056385783241341083799921275820733565819751965440991421340672313899387042878190553153999739972243147703309216224048469195837755865426540210325273546777695227432690487787787477644557132065046902675991273047192224349672307052320959635964315683194002829606087616325377029144581832066558779454021999132227062905894175171071720479074207154943297566355556797309220286962302104582106104772574833887299614022005615134436914136509938098851095365373277985853527439113523472098855464096965352764075844646952190448240313792656655151123568524227397666922537768894005521279688637405631133801174051768949542563594638756726230520924687377925446064191177432956403997677201703790934333108312611535736004173283838859481809284532335472717506224202023123908470027595044303881262586959894853936088462541320683537732501165671401493500704580047820270105673651772592660437144375835594899714312253414189633115515880310696056303782299050872332410551923625166834924720348971046218324403365186436794874534664416170533463233737590045935079774916757247532557097225722595399121971900041584864815325043468547670258046252360784387307488912878931214614568739883096157620532596665318411977196067038687039155238546642420911179025060136488417612527315548950757539921424376919269407191003868767263851430986854418286914764919773735183482528435040613648129998214552544832202573092260855150864014744614109052293099930556650716258035082386076103492862300916711584270637837169119859472855422742321460670755289163871061688650853544288070053180559028485517032646767566024489581778645218053091473805044791168306469689104433368632925071826128658265451266741930307857265800116469767958264126879934580659650341844808618764114842012916590008783758255002731658205089081877670249672272257817055303208576304234351697661597951588709531782014992864114630828548016090291209517147833624610116656766523698550214249179941544156361943891944167141308205285864028936979674872166495791392821850413276080176616908973327051050594894570057979056454033218073983419240774228606961122504325576336310904176120810847062560242266056377221239341449195895742176877280980889404723971828531532971205036954211448814218166717574975141253355708877636555932889721288966067304526942905052379117972789444912800937558488066648393688661396394897488360860197229353062972932547357360206232126741683289278081420210580588245268714095834318843613211078115342955861814124197331478029259925434086366130609671643589913854658310727326951774435980139193665063969846970786737811305688082001382943150845798150274536077137846406793204265974312028964884290126947245228646451678545140600062305136520467776565040020580857560436543573478289633849708298549200718761142518899700469059675390882673703322963025478333361674139363351376070476339952901254535294073121641000331808164081474634832434560000521555998723608200758374872466146108138395258598265725363862623470311184815328223918424309538478518706198443067195000497357010415464356482870544988318155325164866453417935965006980822348545848555131952169534457668613190137193558490764735204979957650865679114272122088220816132296713843628732483776049754716810420520406068689359887488914060686571147273390390327842426264471138465551833687423137340564541869883461965707474573873828323216508812667872977771698010420498068844313943443105879468153018710892515835300158707530631340812962236452307443595709320467126603665441716094848795663707316573757902316660350213908205381807603863126842877260023526838723958617695660072888943251602970304935502607196272820691195188627168434250228006809529893577018192810266786006538470757874125920173265391272672048249316581737871638069825127089620898119318330763318541916301722499269916351998267622330805614144362678971928728609590816367979049890776301739075274766524722793156799139695384192607254962151227837837809185191784009798221978970012987873259667768857543504985265707854198287622709253933550909788524281661063793637237765246076708947839515333543068867756190537821306229459748652623559243456990033234183876916082740426426943286072814480130497393026702334192764674309168773096831867023247187630105310401417240981084303090070091156996719407480765960225735510903629041462157112100324594543225557837380936819954555027675195800167881943882142503500139804152080601667924255313151331779225924226096748943096392057390509616152311515028159262318008180908127524096878361125696536229504898882059104899644768871420962775150494558695238609518221372514660374468677039325536220583170896765002318666760922106303315530414568779474725405475440590658463390511900235822608740027696940463079442837173380042849270987280213325288335246763755554327376214622538859581818656967159839345414425053642977192976812010020031293060925625092454431066431879637838932818524371152764982593663434241944168843049857414638592639841792135688988647770596491102902571583256093470850539196453682225040403223019989451352795265245407781811427238190548586984956938940801547922298389410328121196631190911292971603596270220246878021480326265563068519162361162962950162849945362688681420858851623923630790775228784215777634342876525430426875674514770429040400940609816738831666602189011543773198382416712644896307283443402546349995589934461229643433643186370476450311202231999858324249488081116427125264431887280410713643873746001283889450740534581661780219697384805595641157273641173419658974834941330568141380360086227230523097865291184128054961492805422949143859802894405340109684345452838354393551830133562879954872177485433096606442715512653908781557827652990456090452009681621244201628433174791375099617825893624311378013249253337374906398551582083562515667914219100542588745882097509913224954151535400576296228513842832084068026909775248829535400448004732693471629531200584118864612948597390206580367517709828832663987131906682558268815917276854499197142015420981696422538560375496491319998079634817410995056874904298116738807372922212116542266995284845664338767274647452951829516641926246967561756112556003610657122488109399388570686083722649759673136162615297524392061557220903329769594882497310385833735139537215460928530184388276472383064607945450614700285839620443947666046162067702376902807910066221725516391720337599984091990853125583156078211260387533942915697225314783557953180088000268911888074770455712320327971988581846179444426237385723676045672858823782894445181136361174797885863624563826752517828592336095145536713934078931119582704755916942528515563507228214313078305267325372293938937989100649971361318020933336942426331783738818183532662105112702755120273269252343550007290527541490136374802487961448887044553619655721399768779342238254090044702229073804811174712713152589719855189608785906291720524430233900927222750272093939537667362254451952556663193478210146058887596179607427054335633469599319062408764684983064416233158363312137956374220255140043332876729909696534356774261569982652092424509815773663847238538356752249668894230202391273068805019130850211729462873146183933800323830223121836127512492067634696555285925100408499571672218867745927602937478091542141994667428943799887729867223205584519654999126266757405975533654128086933415898738776414733143065706504068458785797106196088294495712238292379247511362506404785881967402959995105520904761805344589293466514518688733319763552181294766181080678321086133298465664744499979316494416897440661913583173665863706971191837081669844617576502843168391709738262697281754840923014866489507831060038549006333166255744740327286851205573571668606068849170846151116433857918593787863329148959455349564779489589828657577594178690159018098392958274520709063457677241169338286695946337304399994055494950708669775985357204556104952472459884273250000314217145852808042880025079075021375758734788762024813576098160285153995672661322142737696460350547292946583252725385396422096305892935193805412323993655013943643787089503212027241044049792937387983394260824597929190817785635274836583143807349526631265701817894641243233371168454403588771545610591619176839729978185462024536040755552993070917627934112855463774582404749639008875107153646532110365621077711065809642472159240835644660555138511861036347233878659405352398434888090893158582046180368156113542307543047803618587344009312808831328427178247463924980150430445596350105733873064012513577673376214676089423506539972954675080375060538417666303274828003746934857591206401397924813369828941045468740790332666088252264953262068975254448826711764919290191883541738233403765239210315326329459154730810997097281818272440608191136080571107363610646537031579075103422292500686690784668724129421444013567396304914218513477038097484508753084116585486469795129036786656524384652558014040738224650024376997536383496645082153809694575865066494667692557224242061671972567029058122004753544056336589043932300126327179194202634682782583975227486711602382261427597264064943532168006728746257261244391162973181835501811205941415909644929257690675583813946506497572515946995523804414399793874524766547979200265408969111750516230121330056634580513506940717229137783340248084356549805915833331794129449378930706587531181097842810968797879915767359127472973502472933927082403599709678063237323637243277633194983476239947348800601947373674324587059301833165285218790307099135440454586630116969267955987577279628240780272348182007292568852932225169028375138426256195753516228254597924926330330202027721059368184874349945206537216936001656096378940441469833079959638047989755191585590527404827983139712446051052451500936823045571464530688518334927934096933766839606238079034203021121665391526459928876053282144682473343728369682356878819956908646298197711987864010357897754099013376482749090858161743762315763041719187977385247392533554309540551479436856184579085417792494156790123902293858810729828428940088072971744088274298627143197209318417566967388247921237505083565681104670893811521859178818255812235723975257160470419094105255651555868138497556160044569101703867205307159054273084030367868205561657402739274329449162630077449534885853574419742694828963320921487129291667226046880705445354226631292736850221513468801801840523085736995216552605013238436582675334643197770866653284613618582699956432635520632383548576494835890042071369612053206978736090302114252811080543338464087459854615524426011778347475452718949752387124583196036633372448496830875215680438205615314259712384884601664303610926563514570943801574681898068013563359304508868832820223778465867622587300822927913400446874104423831791699688166412919692050245753514914803739555384587661395726194529055224457594671892063550055863474909561389358339672840084408449920890569523937298877564970461605741931238382899704100876545075598625807313321069657460436499070731587876810329978795267624331377376185213666097781637058365141159167849987724087446789754582673366164156756479779254043946233487917424469499494071838123868442175223357017362320048166967483499818311390098369992535827559154048396333828530382461027118223449042895534441771642316182000480069297856930524846796190420175439209860226779795737720780769129348270497266470168171382959526017775152916801147041521424157484024680387933405280135672167784757432595926725888193769584148889362636714126567610037892897453047761457078507543656494302125199616042117150339546995429299133678878987927312074743233896352809548396625510682877442046638154176819593676650772598828521280563119430493491359799825697713539535013219806392559942232930383030980787379008002984405939596303493892069909070420068307701528549516247607209666303747674570529323482496401971984294163035731367147545873656466635510609481957598317004861165623630344605216429930407775744759705727029326017322381551317030427726071548319164481337421798851059595543494576130197499065379137945136492811754517257049974918007209598192058971169823784203525599314528505236107851101593552152177189396799913169936517616424501119795119155098863024080096219676028975715830595895609085759945793427771013149977795471661741393614865254733048379512604093361966770040202625030780849093162667195540901427893956691076353141915106780775394260181561159630058554701930670532147053969402217571291014704058867703883374107470429489147914507998953804136828985945679434252360875793473686287909538470090225002290174091305919264719519055506645585974643678478459032820387080426421173020527372364348499690630670743173905560578895503036015920009785533244576939942800420450463220096991595449995546189744391179245756815135594182593902404854077514371995169535093076350415689807846470220592604111244854724311238181383474766379895995243466837298946158984893286024039200762831311304447243925444048939350837633597436356993129356006239716198129827058495129153999052347347474367223695234965561970952872538646018024348745371721141298201500556211997904884667937994693316361955993012331978126564849435167277250337040236805425619965732895416033767337859151053387782920115100398178883391763453700884767906298447155588572123568760314612634319180351199798216121571205528982285588320197101641606743630010813648933686862253085664059255790096227111438346881662454298719509688979144095659256358227207994049535500801230181464919130645571167625665420928982213852263820752221813292380574518976409310587226102361365358303712884009607158528133345820273493817420681990651963005882509525643236845952663319249760158735027720645977394909853128215043766415697139845825488011755328963727395703889329834753720341290862812198311840832685792494119278129728226334443000927106803051125348760427860874000725462281156763707533071051758500319643446878348636254432566963111092650928160827064540400860306398222106672515418832728499377480716781326757644280934617769208887711215696950184437514545985165109368821432179563726591769469057103317376321447041827967289262551582274720512946904296415458108684411645734901456740573660262624692674830975730477287250602493308735320251667868898605458104101406526009612928963758076852283149774341012910922806307835829533623307253918146810608023051963520395994955261639834154246795063497984829107269015160567516370715995174727877777499763480591112439615019022206640810166956936201579988642926479248008466737088001761759301129107038845403189634911643324377182951314002346177211727690830562596674661166908931584008235019443146149122666631023365701264058686741310357666117835583612892218680829175019622695116524903378472672913590399255412190193884898603694496077329071414788144590667916862399558130834277794503883585069147978669798454484687237324629803212554861539600386848440269620515903646316359432452045935305711974716189136326141947932512453450832421879235073888776941375440152800617394858635876866949203779959154761978631843025438164914738483911929142151634665326876826930702605130944933358320021682201487594791426081970216387631247531038075454757490235157751093259836626017230385107136114918397697292719810003306914100613927184625614852321928508671947955048021416488375466310857428250269285470195862831260506802503374826024221560846418943762899989316508364976680435092188788423142282248245704174790726182747483958937339230922822825290807988140069003890797409290373056619253618017649325377665975390431759276745585682194628336403587335594147847731375468027883119894338212774435957852188715498713638313293016011604921117556367012047464684481762472088759573747781152581865026098112644151884055125635701631316740707944590170197435957837208572839957284422204263729162671331930416841852664506756192751990502511649143608511465399494908636014386151555491768743819950964442432062813277596136788530156734814196173357761041952001478661755314222987002014629832725860772537197440970734607502515600077696447976140823396675988979431572494944518925910518588734143182830804168221201884636109085229610234426310219898270497457458145511634390820450331852435592638146284268171733290083554115354463430151053250773113751311283942395867212893352196597661467583665807912965960577304808205260698739755635357497563328204692862179278351035798635542972440612338844183681242629324520476530561598618880158229425745394878003837449057754134161705090822387882317603005656187063536744659516990134617529938317153476225701608964414601256401459600482609482305231140681572250793748329218346150984703513587247672171492239994479886549182895120511651936808721263757116694551082019849935005494824780463899107505907112635380174465049105605448289744305130984862550580876097974391919241090699531699899408039428947104872065404757270023167431333016015257409221195332591672951489932933434617839377438599076175426430039208071873013474426749228341267203314825684565429729178109498529797251012406779904849198814064076735411717032655620163923500405830295065397033571800437366521655167973149030924950485981786638481061607291349997288855095587120064094352592484125348285615807730550925370218061650685661044158039277529860616138809355251976433094714566951397997060504525193537625633821115770991286806866544933853029465514198299651170382107461697669777596679370904019585677998363557016899772884169420140665945090885646773440943911073004535822468516143106936511493807563107223845544568860961618061435570554791295667764851400321133848810573607226873313146833691843178934173914955582866866607223625215627383850300612498464483453462583534159608063942117883882642633611536574818756929350555042063858277544316259764352758642835957507884610855954771932036434401065981338474765545020054435840318528252561443428916588981876085741982044555364288353141370141487495469087969069544087250592371692703350767910899826065682417738379150370253842624448379542407821144825701091242292443682919745724919972685869865101207363385130913195555565970949235575599384129291532411477900985352576793814812705163845741461009535210536031414619309837908341329721927259692936356151815537695967950021300949867837608530556471561675409505379613941654179149921366451825894997001798243614187694076098545368228174870735386667622487828573446069598209519618868132276053440324030462699878478300559835187486537446870279698947363253900920609242521349008424761175187391119673211378885145438849958921488694637063040907448683401771197764870210795212029592102742080167069132470117890146439483869920446557672651084148479013635634460935150306358640693186697216238984383002934434555783581561468435462009565815765663574267940621596484218860946776797692950455923877780120039196411010334516056435809396697136928810027157633790653426381456878479543076541062538151724893646280856950732965022185042804736232841906294600738599497530246137483497208944436808037280048569906232682632179687024999429984610104926175411128037589848510302713058419413808083172104529071536418633343522114253801296372577913366701378986230715447500823830590255614145383124462001911516631746480681299166287779408246681744074058914672935015043681438965634932793925222863572883048941356072377679262365565931604530982580637556129416304205664721009000912762672555825600495482968923877121119834569767987850637900087074740701519381219535572735777947226096407596973466724205085555276317949389455039371717333992068583117402050371120884348416965108780768760227964499424322633469658598393204351241774898739589312610464832730903850652094166405085779997628043974130912804480847584592930252405647514194555858476965305936406792870125651612482955649367542896734360403487193299012870633994668910077663246930399817231793790020560294439895994989760761571976045062449324141047063934220409409952701848206726205670572508171809273336319215008543925681615378984074530187819860643174753318591880154269741157091269912079483370195858022814400441163582479646940432410665125631876643295517265932059032055440845754621421375446189694308346515719648816614133207116073315154398685846316404447117048891911664562456529533481467422428553418864199250866363521987717588362598401968719722881516792226127310834493762443120461768555068693708988782679433336726280361491413548338527962553528665758481206027321001266365856510517096989231951591807327751370644557822141105699611095333906274147393998029894628965272842754799487793677165834679635134624414732316446490800226426463503508711651397658980124579101489027192637809194613172640833383079071538012882523513292573558164116988623314118819872721718539195533091500494843410103444505420288460565525445373308525911482063931585422597213825265018498695583979733819992752176769238818052953660706896762728389435242529264343608649437255141747143547268119257895252247331025029477512598039072190725905747895474572341631200471711074768331057474674006023277497732420481787854878930125289334265496080164614564544627055390752456370768918801859167176743677619029034529942440185876529935306802017686248557801628403920847142620016371845451387868325532889805235840793730495692263102041924156082512662591084925475658246836311739074540644418692130925296077992908238786017338065931572345950325968581683766742702372846379949729916423510106502689593578301675552593432527889381845277212028938559067137341159340449847601907417966246781134221042088854474824810842899869904990484766374178707043086748087892752866121415839312298987665535597279829566182485428229705210445665645949931003917722751631486279693086844957996800572450495285601386709695003903123613888086419021407124046118104737478483446656666825269423313153134013351785735648095219814141201671730976602318357094235944703991642736307112238720868292296582716874360476154120264496382320850351641627134809223572667489891705607586848506019970469396324841343409691521900123232462130583059766316259120424423549363878200781014736165732987997861687210865823909214753132783170493914993679756330924529195947701426202827231405683506299457306300337498391269951086802218877495943426698229997797492163475988043727804029327478086742726012663782794265638929840708748505389671661393672439855443332817255800476261079910897834569646195139647762002787473433629455979679035117042872514217509643524001944087518382505198785283267024829193416281162064712144578815399510089961228221660242190973724563319968737545669590486813127658522978931942263125304070972781423072029757647045554313495998046957621519611141187450995282146342268607187925049775337448573289389265673085644278528022118701262641849869917516832684331890207229947402566123020716613263613129573699960608295586311567650450557566961192230785424073338288512625337978292777321903268394098985375016976974033575416629879102365659736834803435748437934161600582272354011782597782582481755150288743163180410304952348675434612148205329888686750234442620663666586165075645717596246141289649909521001052650206042121430190435178571324176762363136817849985921876455580685853876093675367067877284053068286803295433305157951988241810625510709410938837314815706252407535580727019974234375947155620211517686233014527395043939322236759845109358609676314922038467355873045407461085262260007679906132875195125258777238130823782655388957947295460789477994599889913795051709713761398897522357852224763335571907487009041210410035003457007158611343005800492089042396515454335389419003679448395460271275350185371484996561671256852844291904805762147855413452688885527177224472703992875557552197152642152548176224310300393569663097803962342914530426446478789154939319793697126762718434879761226053591854120380344159199511609133591144628475327975752142724910817098346451274917783937836190739607212647108945139625670335723695160709331866572859311211972305108792501906625238103619509366966650922081537055036559092582539744144192868761955349063475401595948768833849798140431626733946565473142483801571341089512112684989592195333866608328888371411090713186390448339258122764719107087772763456563201874327015032443981379324783576221670473696448310835717772950217593948514487948235098258487008308410974651422699580467012714061693605712124996901659318770845889572272234620451006094390538334739698778112295940717226069593583909262504951521389913214032977999137340573800352060298967110083118562319715220339697684244660960118270383213710257266888524966289860988093845470231671444969076708503685894062373103167444433554675175107318067087899604812161772917907753757317576381231813831243524161769673776255640976534781673953546810782743643844423162409726246742688635068768410104025404431128588868576829352614898388505080040141646772793927675872949731475421160182482656603955724244838980798648974330792259394158337148505716865119476184638832568745209154926375992885155011507520666295872691494129420157218160141109312572963182466103038068108756614637614166183136892137098756302684095424148409062682035114025228651881670608095610367402827647992360449500582833149006499901105639279748944251890020691378336201425903038896400567273053966286365845254721428731009872551237213290726048972676510297312298491663839077164911377428683683151447120446597632395482064639490733045528489540579225070746001209578086878427618868279882901886527274471267248709646255616375988675776937762526767841544585031622541072054036837652345237261392694846107031837270899351032354518856509961794381417436648755739164440798984567492920860012464039343894628680483949714115851784819894273819954355163348899438247253637456154477692046873956580643882511210879622050708746801321667455692007077374694654539145233492787087835061281653046249528258244077456052929524680047579658117894676404809066965704126754116606828714632776771372488942289478731012128309863893892189834334411617405232287720419585213755274047474807665516603602608157611054687986652622862913651972139653942615833099513262015401215313195454330279719202543040433296913222904264306670987465459778771793841003431829888801246645727473417575195581228345860368648425146087282092561174561309979449519955649047055623744570464776318336317339857996093331444916885921181244317777256769291538149659642990164521742982933040647380688688980782943384444728266611126406542613410550201980115421787529922914605456316347189785226421754898270892812001385595228077225409199415481183113970090291457421119628166043072770414884545483935746395954222319355078015684791307628428433355757541133995940206685722004944138568240213430438831830687170523564197701881369388836290190354308769122869889623301005677947584168971021175470484936657428329180449477306695415655437201446813980733707218510726916194709148972567647119241183795410552389386578420948583495400786662650725001903980877766843409842204232384696632960778838280120719434211579770789902278636258437701418578821082440317683417450106424994560706216216826628219809642536366014574142291976022511144585767040002310811301947759346025258560788408055573952783902482058363590218609249933429258156851259066796857005394229489359277824061074949039076177887377907924879662678489791059030248042947207967752388646286957865614417255613580117893023261137838588136606638629609165776513541581998946183489407966132229664809249085295924039244310087243835450204354033840692868941043010250134465627049630067612183190579490406388002709489962812982622739179987767359809246217019677735467305713776463091187665067013692493837847566593817577731786013299983216390009297063194996001227602528992382033623991926207819614178957188832502812046395421775919623902626214379488782278463381074246309941251202921022767068758151307488457459691900461139495893121516743183493916438845136046529623291961029827540401253027902117187362886909828549768131699381847740705253225326024589964976944010494014510943152000866861987727546080493860355881127187350635881359786096174745132369289617917249463361487815893894784549197225486242284288518751240867331546479396866791604276759772311954142696327841444438986214925123397012083215262984982458083724033368418436978006025703918150720824051651851420719496126779391091675555869285240049067260082194464136536314231652654526129179933562943171948880141098445996139041845000233931469104783011881205725695615887191947809978218552156210201161710819408868250236185098653282640083517129579750304272015378440281680172552942074387618999924925664962665150389451100833313238987084942047722138866038860966772151650999212042300086749692896257118616264628091999219899310875594836063386342385575979405712377585406940434310585866011320773375859622790624917623822022490044860251476473998728797474960632440036075618998265291882715628959419876769045786337121842109324118879952479397236183302289318244953722507462642059193241429308460986732172972068925855075687801595905132199986616628638948714279815816595346889948167340397074400841602519674008335545902862917629030864458127365696924914459013777300298424979907361158319817840319085746467345534233742100418119212978507585863849309111190439117678813275688112008388394010378162279772106387041356565110890915079672563018249097101169276659227928963453915498724489450791171425887068318206852618764740042737117755915691039512266412628262207305573231132475558904116841995184197189366695163171005277529520572882453808470441303353625184057027940870191625142048822946331750093444706308958755590400891216756456623735810384812356756881206249055771836726267909656110867393860798087951128275479718499181176812924297510481912119634147010575617236349602366378094612293260133906738717329558011636320011913588211790145272395940196713581373930642502193332398254368084407661297864092314770553456515320832383998426514798755058480314358293037911952563502977501140803658214785491817706930372856465099988912735139470648038255332012529901141372115926196052035361766526714352430372489580233235625395992770213153040427946517234688744577492567650222829059132698633827973971507942774105617822666998181418464398783347166645647389580083807996798551156266485107848227940846376891784014506827157226574712713387382773290776879958128012714373574378794512740262368898101970891929726884818377328948334637454305714889464828451530468119649619827186526713330415656427465042304080048316524417349168059315021168950392261847476030068804784986643554835583110689023301440537388925671328886435835484512551060940081822659929083308022669391926537846757639043838403528928780194325911697894526275530915283112427344408994554026991261934485598894903945589249826092969993188329597208053128764719941403825328613839168146149514820698235099495621482507275378672815566563598769342838394929548211989511011569931766680473673556680281406941672258919863163413379361628689653407284258750044064343833307252393006399696066238295040612002725652953939096284411041567110773836447249569627302361920001647331213160444289773564514132103945217953756642715740510604290694230460542332585809649276505982789405243415810844665960957351014865524377509511034094612152251250815280862593475126166965859544090744985154527214691099843694197094676663262461892478724476496162801112010097956222820747410206917796032561345076321198382973961833271365323473968534194749678724532260806642852175294862926484093641886189293841618750331022960222932188294537899276642292771481827789676520757522235831859504339838306358182425657555687267052443460289981647304177553671401834548655224182639822983547494874579751197516035320875570528632982495238168115383010383569294069539602191762653524475848722744326415029974474948386558808614728667136985818217909285078030108441821509428055854612816157141701875987015606328009092893878229856886882247358482186456095620268926781666824739319647646674022485816746735133872964587478393665682177425799085744650989127651404513144086087944620288888032563562592372398091929107928178569326851937036848032691323640110545715008233534888776367941438989363412507818935895559130875923946663489893468449991346921961019502299997505278019999461792488617999802405199645624707882166047162060379909115667870994626462363004241619447641812476954140717380257022291130203105758893687021034398379160509722663439744826049446488409639467590346686884699575628319582998905535163572935884465434583321830496628829912868706484778194467401835734672768815197433388895465510913995733616150249743695293318070466615026368848954596316304235454671171382880021809636839195912290450141255938420592824260103412104386287604648015954212628458506906223117726611475787982282321181024410130269460093623081915164128012030602702593357182559746373966147075703779560266808046696825559511530092350248778833910614335881501982531312669571475954005211985478472293135905869281754405077741300406264841731407944667167825606141520026861524716618757763166271548959241721739809379413088300389131744395931081152065423807583841038920356569123726003362067834521347490217043928149528373549835374610699306966402453596794065162995138540224019710043158093389153776962817035796133599830976232992031697720902367843668719620341864422391643916948128645725683246376109747618604787090649802566395153500573991677820391775887146109360314553108697196152714683908003186226518412599380518795737684130229534398541980134381240055693402777439854019260596083377607142395177928864614531837935394505051049908700768240214758896854107789137246057195793637131275127066325140273489725438390660217351327567166638194568468014636195864678096867891488116018260116266595010666055547403178395791857046309633436398146433594428776838118600995075255171946359168499974599160840488849763647924352565920863750709966693195631254268578133443592073572084792766991507635488822946568425814954739978727059811036338533526337657756233700023689604711243634136498300802283240267186225202735798678583385687047488593294570875922404596212877998802903006118509507576207357886642564144241698564078174907606014399257249104743373243973323866344739194342478168760023680252177385686542553931731708356626133403462585381117321337818714022671346401448439976029881288226972969089640802313791963503479469093520221955953909689686922017162855707886141807175840468398374608993074865884085353014571860515625773012136762618023832848643994556156972895454195886350054189194135860794899651076521341562067988942396003416316907695105662346133864151492101440526629604262164450430042512347816791734798802605007212906909042962678040609635516007424434201038974501429458194642215090283030472329629953480520890438667079596181833164513495577443353520277227804210266046502397584346122675501847285096585231559731724607942626088668425111269617884726236590448750527893813429995529493896958176792415157556346585088162371245315502971968906498875503220274949934897021250658859643091683263331069036813687420547689302441982606109702893444835883641362535343006732245846370423612526918276310939211884432327606728219304950862929594623606955897476065563296345070691311122383955254510985065941118360817251969059586846103387793460673101363584026497669755715068397899767683044678443435201939286917919516154126372561008012042061463820212717641818665290058203502180184892841594194480332021310981283013569952592327236185564665975712731219444573211679871740499152227061111795501366475405287775820290757658114216570061463170724228888532630423404147817253621104928848422490718178610708541995982711732237904996922232814969454569375344161119780541783399189217036620447599481971702826235985692418155747249000848876965279254380232343130969993144924286369250649565511102158373418606085720381494920852905831240407269318108541200837299938142544908246810353061259158140894685658570053349088759721250572059617529436936699152383649048936281587268495698713239910790487056821022430468210613819180955390329526819362294869327867024288482579102975202406010181346613642021521883326146047572127480433441020376378692852557903068532476889682810492771075288797901984673590820072552430549654314163287925071581323218593338206022269552691176702128830288076532946900073721047603943356445664101558863733597973581679890665802708996542887125879595897140101811170258714714417284597689851801392656706969502414750640228188645501641498154597278050057447001152986772084292592607437928756644672268544274272830139975029480770266959141659582792491850124767172716312915955711338234207274002076220430353695298087089633920781201143219166053693747964454011006334030583327396859240191837971435018159840314417413800481501926582703387172224978847989163527776349657190692778599761008770321198295506710691966098253014057368261635185933342026442257587277799617178581017510230122133147796309872121971607432727123441832803912323637898644347136995398043398596500508739955145256938417672797332828600420683559278569219142928281949147064723180136158011378979230831762655178512700049932544482510054356914632783232903125617105342852087308879483441662642427908785428343194944060391062426426825493879823914796043238608876962196390813844724972681626339277413313603283297918775383466378375464931767034045327243551343762893991466939119715691993924834227448588502267666587291963700716956487934290919107807801043913268046051361559728421360255136694582647569736586106289596619952748968878816191621375529698333827870382750359523442459636329873225208299037822071911764748348354319807671167980920700698761277009113638114700261428400496626420188106257714104316859801604935976939479354267428041474802118912199166126338573020892285380492407487085425715768157196701522635459424554127793839787331892238007921372069404898480125694139532056399325342001739489180819995620072184312888450136597880643585274175913954195625551016714462346332286132501764581401208239231681846042514317487252628390824395733927902051886974138449156252766532053075341184375064612064981118733353466619116309602118741921953850904793400906713056388246465578582080976746846013990733131711203748827321747215636326876009962559555705194850374281137941839048393474221445430344591903196147945940209838955944045404832704931634556228095562594333361705037453890184813218971836450153813336171548203507896902671624147511183204682489382727174651870662726775427913721996177114928061930264176350784122223339075512521829347940233338580132210106402846044407301521994972431642295277260116999862731246252356159679237984662365489649649687410630408013483477173603999972337466677167019415255552927441510838342838213689165446945476668870679917511318805247038768222052583643939153054986980222469595641286647625438898775289197695933110546842871147870374109505563721500903781688285828818332850700097662573425818009022704853869665566973820781178961997270368613129816887338312250188284738235689337279436151245043100017833006626352332339669426146871642355391492248674548445607835855535476226809867791569573263825246409248920191609330939217139787215915062414090743543823675050583254602990030636840016402184571913825190077991416223032659371898907395212747697888224994493764012551359529172852685303794776753297642804803878453677233308189771607582071104338283629816767810221468095721177658674684359099302437798482170770922631483269901021810070589533286706838944870653982973882664874520058370509114204081841479475977399392235985267902283386339945529947974857997485856287874339008129677733997826595140571857369544089650173069147273246133345424295912195466477168730774075877451920198279840762412419246948466108854027012060714425271119015843169321562927829876971313751279138218239375378530903352841905855838153717648654327159261982969629943083760067060854068844914152055137108722124361047971292051793509413647410768287708267642953403017210386387743448236288926179535262044513291669639582113598245101227073521873182911736915264389064068799871944069574548102842383427820457747005331582581104894487198495829913363545641789848526835336582613062534565927655197008950389910751312444239951646133106868370360849660472817922590132308610080744178703857429172751959139325603525310937991210644852915796221803729610983384530834797794770910266655427191596494701353559250671946916055976721736965439124550896624820749280560124588943632121579054248762370036023197075241648439033720384653101567252228573705776858147634585305403385854005911370273574236624332069958875727071977272054868293118539395758281053144359563674992553413929167691760488415041889483069220085485784322468347360127811150633425125457321088480883613949977316728468357379686419026342848964128790767490428546048411113814458435712946642426819056346242670303296146736298050194029340533382201852606705532439995074627305295098597988321549728616547440013098555761970417454919432720492355118665425936429203831275887825819636535998615092392345067506883509211648217893159345393711380169241073218861096046865486696998464306755230596027599689554191551420219852426965661563912875342716854689233551256567269137279778288693590172660087593368242324494355089956648210256602252325099660502577831308535724994059548359097997631189275849863936549114299268143760414300887144859528446677609693905214108272506288968361971648341565399064728320644488754970400913307017182570360246226432423059757381204687361028445772979705516787425123437746112845313495124365918601553374298326749530411578447339735161811396879801504734537673551492359892499988387803859103396043178816842521674069366823077389538484065143570119915896826821938910521566020896582001633403951219665936191814548101461353550363012823750846519833861484784914504391690542476398085350171982178263729168284688741372584361096831930543062794707607125330868750034571948103985489662222718556932155011484581013559714518558373545698062115946456063049800249781172180690749644191566177436102020728335467255255249324008242001816703325402438069598768174454292439407148306526654251689996123537549578138121699955281299649393200211458833684510188409324668953798442536723339510116569412064196871128157993582378423531387652036278116127471661461425119466056835740019542878368958999113802914915306437656609442794996922218346739366994595595230491351260012840798099780837715841541792062292879183954233410109882649166459482285717603952799440390124543609623320983907975890235549818452324395154741477033289790271602430810060324305851035148828793266581919822946579860331238754808363590361842316607292856711275611091094500590463272959805621004364108383680369680577428002309665668129548724918878209153880591482185421432079571270651533420881778786091355821229936804883978214066927088071452772107363434640991279040182146880606284060529482508857813819790905125819134648608958087099979400147922491092826715799485407679561142677569757009465705035168614550113290611604046386625069178673734926843545413186760937646371917653006320437239066721784170398504500139213358097971081941512037667150187878244604585783944214123409960606881685893998667468912662210688880763271233455807753164531805294462280370863297894148868151110981326884874791076829032724270421827978110159989535762427472456841908490160639839038804536039281721395730001434088274941237555302748544789652036140160655064003733678306340889263092389733531850596315150724277772344400538586469697666127607878540184188411772432790642569569313038855475837540831673641243734369950220761442150132510169842489550578558779412893722172399285713176846234913372179007594304908602463504058984500183934282075020980246334171719331554205300710822807424239293518306344648863555153964715691564402004748426435368406338746356109339144410538908901910838594598827243239420552103358194021943901334947102529773040442369163121974938854243454155759595444087443410206437232533944376806150009284767975040054115615866816233758229942394316400043752428944009824607274073729452094721947297437781211770846364373273898182608859507087895335017143579815973711557838767083354506513187775185471293203716927916024478610214708731226945359834408206211178323527512911191742828486654110102359606114430508138763496212813532360587538387824019084624969609661001496527984823458602955178668807464678704430844720875368848007673723041291710676311957801948549622384178230562652849872030068507717273182954010269969775905246847611602508784510629568897911385412969499489317804540454515433990120154243822978399252575454932207280379326375516256756599539671710291570449796205091985984279016495911046285048075400434801736094405057102672013549465081811038908692330018074728253337538984863931920134354124981349667537782017141775485192478939540459877524430296736827084541266782065471888582564868658335893920087762913548286757517813503905581506290564161826079282579252572973349762339707547775776314369719509685415470826788524336499005139494527120437316252284539425571939953089834674507201252377458592912145109085302142384780801093797253888629359826251016581632517656327870865435919900978614435440316123708614831020164324569168106565496480090963615799277149492184776064021375039844191219601718176499437141217476411676512176698166978379007035046383829306977406861270594217343662774375995402732391963998139403523807747451649681088430215893733479065560758504583335029809261655356923862787786765660252033860910144685587668151159899251610388559917954970611486652789688771558613468448944344635736668228463468370776437595438063862110936442792319789168290121929718373785005957323915582251984157629832433374099669438756442143873870072026793837788284513552276815546775878963556009046520408220883599010806642017536522031077669549702361175381688933913179447642588686250498087741512172475485159184788369288209257293285844643431714505419085306672656480156664677485527235335236717037722307709498406508074187049524219624135986636684014000632331664331753665762236349536600637973080045434881417953795172042163504991739899192198134034854038569737987514937497837018535619933749403239415258975300371163009224388351933618286425205165478871885864107975172876296233079905431753742773738712994717302166473647740130881192945410850913180085332036975673508701110077000647334563417649568237972765895436485627332082344952530030821935206927146349769970752810191219533030084114612170350040722319257208906373047579973291949591629625847687434218872595849615560640133194720713701958926028378401323538283749400066660150436359560267166550132398884315128698775046863610473549035728231674193299870198539526681569456199562606552552891401997921717624087841443182020187632714060001685200476605548483727072644285154068875894241211044496799319415171073715361004681111410490475441922674173591784346170078627969386782102380101556249570403280228910721149242196614413086688819772086810998436897087501562068440842354690991620533646436328662980189161152092856416414194498863904868608219378836563531373936901509861336070048240111369225807982882157201113004154205905937426796899288197275510335428460382835858748050473945312209616858144784731615501251406114512946867103265107149078301820563423634668675746725888931212005257260835896828169579608326375168825654817550847921573546870248725278184605135449318201455891616734602305766497521481531212430902373593299781375751200569291853886832102588852583418282637727995158378615274670523059201752677191800295846273794432861909037907532226201086908373329729296967728003626923371745603667009521571958417124911946467063133586705592837327692534453559681510770805083225161908847440347641257372697926255880119875981563027319440561669853497252360218019109035004779051468092612820819561576051495022819907828542337642963229417085395092547368712676727992907692452845234358138799912925295595257874164375978079867117617606527748553177386579547625695313952477868496226479675134021048207741247482688600294511845260233533022195663744455434511510383577951947550534170082232837157607096863126312941228879985046158411754558968501558947297317042626280730893240252015801642571728807161074239519660017839473693937976375229444260691779196814893731213147588907532136621520440892207823016412809796121664769997886114981097312111025162074236305693463449019284863136212687635567338846485959275593062235998918402621134327549391166822457363387952376542354846217625756466946686000297069967445665687493795004373267848305077267558619984102962191087896886501616238699292141200667017980361053573756426854349108647039101320636452012532374341210746639497684614570964291798225407714544649623522768978479451104389947172153196469634447513953870587681250824240051443393671963510836808017441604729143576464930048466180280297782452989942911730549503833218311612247062359805886555732018134728558719810910429069283334876840281686453243344661366125784783247320209367580936820854812639069926959457723521232586856614677751478401096842620141286185700184434101768105791049436381823318075103033304228122340880914493299995559453993168159700287695793473721601847848316736352518534250896987596760335444939404929489486462242402177254293612934349754436091389137490364652463518572052487364236318942337478645804939780621783120189136421317701257278287513713953774777282180443374913705597309723824595052769806572643457246914696968212308149375801334303460665745264501309482309674987461582089542704390242229655075088396521520621668301714709413620967599120478438994948685305618079261441732641772008207455977823344522846423473874342724702098723020211523463557045949090795242182964580611244700969502929802168607965170872616027869741258380347363353221256309622391493494185104335967689855030741552272191718595467012948333906975624949479177388972873015759288143805196344339594248929840677684927844285779825974972930876053069185620408710727843779901577754311410182198473097495586875868675103452924855319371404748799440848288795963486009724759069036562368145215021239344547056372093611373327574694658176460394294791661551598867619977339235096902442288845679562156376177630327757351059641617952419709637650207064184112580227880084938188289087943444653179635545827328333699692026763117879578146916186073526210608814477107777196649854847089238689905566037444370323491069800442995997204049592269214302306904316428702747158482789056951080015721745900384861485264852532618649702988750500472195433130065502241239859642049629326823454699323001169452350810329142716136696124152417079120931498133926648490151325244934791932750080032147555614902370512467433292700609424081735787196002784123428957845049596517165510340622694038062087337393528995288824639968498805801111477326585320609195566045651700477957867912776224158210238190564444822018576052848463600360019121681098641863237153796268573103031127985603893511553432228801151552762470498414325158669220297378011348842732106118421155257602266073561097316396665367613664188412691925051270358727651775113895531708540526759318653610468800577617234366849674043724930429626229097284542269039070632155350865311023455375006711543601047059847053008513790007334494194172122321896178152658792875563208428180015486544981412721098494211434616752591209297499620933196455829388535310657624446003170413037775940798554788786636060451169925829911471108487898865266426514554925123517332024406780600938839056355171051947456419940629631341115281625196937473829849392699184223612414746468998253862153945766357313215564717685470247709178375377334946484213081871857295561152356022241349077834592182550277774973862752141267113477873205959070194708977300914514734162298044964301677326104897916161364695140140529422698313075161359695246822415288018338572507445331800212476659944530403330324590089779005712455660614243984200190645734543887618870807735017099421551619015225208847894507106791306286963626164859945980680723790513583256303193538310552035652849641274529054967198134381656366763698833522380854805641238700908005783118114862802752117451321367984479155700492632782605073193633214415051796780823631495249955199646713955774781625417734413540245886921122614488622352302543611166921626360540665498998629158809756866920982418504670284052327962710761122026002666713483432944775239691273810004668573185079513467505397584929889355540352253027452169661402441758323234249374114026258846648121038505086730387211233123875972843702395459644264718710790496426108720223679238914120620611187874247194823171094053753786119846864106224639123568362693533721041389727656483361114665958814028856271583691629569767019380576441677735186825922103620795067866762812191294357314591397583650537442733528846273774713369329390739596364658152120627945435651849479080857878759110049422288898125613361149518514746268790936700865379906152738447966755564163807583606424279437177054704129663226886979276020969756337651369779905232835524228436417919095409066345749186083594416107527310224002377478500409464476011293742071440123557926249105397305146547433521385862289994765476484634421569598006188400545835587787722847753309564056353516028373251369596976443324712200097194357409992234778728293373254903883436849435131519415134495292954579257052542931517014065087156118735005081003256422603699735456541510588395629686913167521275153826301102466747420919792659454845685094096060632537259719907523270339715576828322810782179573613726907745541760854446663691845676393044965268917165442243269267867235769423407462847478999360727159849066656300263902728291775679050893172494176468026364300173786768182549332107125255856656976827438753273246536695387159308228697036105620814331702944455092715696985125752482171726636837470979526182274600881049292273699760816539170844020631896079519020472750938908698508070100604024906384910344214951213342842711885123352525863161519561506344642514904682412243553173143692463311696935124173100299456421113455515910880727333387241719716663862116989112850196220028075316368110479764358439474725864372209809099308080459123259657109162979868763352713874660554513552154688658116444093562437604120326265550268476621870947462613686526563437930249226076608184672386905448694058922506250617203405767344510892856533237947111136735976435994772783937560174420776370097958730538613814697570607997239395104268288975093926677742501433452136218492110392055601769983854377272370007674552641797197709323191649813616293553252631914482186916345780433862108858212239787573418753660051311600035992406709810887000286635779733542605717420923386168473826616399536747337828561311250734492990809447649421909532598823954616935870916827977290802331601931242226644464328793720573130971367814402493835874257149493891296758322410071735121259033468668713463609520385869310868708111461732081195866233556301676819339875340310962656100571966404338638578601897714911014556279754887545832049181487951901552728966496607239376608687587878716252485377771952330245712121411670870901327896064486928604542089283371110971677869764600197127217814271389583961671686673628519770642010785793196040649327917712425560502160335252247061898272061482438419000339874230576380848226742746688755562299160318968199294155207019471663165988621931577043168309031554334017484498070580684032787819233589797756729131590929207724593591319032930088090781750037265932849977734345055564261812296160045646462983036843601136365186297948666408782121743487113431330705358709196093072892639757937525055902171889795197959865700489156705022711754618217629820609846664007524253049753278875496783766071175487889140047995341657204053930247934855909672052449566426925839474682571549667448981909985426683152924104540908125379173436373123597152874406127574131811080185853873420838405302097290404562918218664565553074122783228085902448237857074152517367569649680266702766569047567028455839348008401774727303692249351664280829071261258274349512658909875901859587983368429848731183609616922981991098527815404142028608984438247882735567728690362659988532456555880108584924378855409816265545570782520733474139212698859466019215880742877185211904442035099223810274766104312277506103264846544888386076713170942005090421277205116943211550806785397707914989375074697719313117130307516237896185515631937182870705434945832117063318411335749134723825455749309684184386377953433058048047464398472420042451931201841366473704272878896450248134762318313052846256097520124089258310516694079717728667795185393749449103525153596666698097519150354152185573244804635070641929005008426672302265134616600566512825618973008066345515353735757748929781689126493205056857040255773172492975308489291943315881147370183452088335063150387837970201685280942346559260456183970767358659554781407889094253096172420784105352129371274687721415615178977404173697629418527568218237473430802265230486775648556438526031207466791557495938516426326633402190989147937425584317659952986117097923023392190028720438149437313387505464483365388600569539833842013911204036811835945972299305755868228322162850673148709561969803519933539614254782182715456898349975230875747241674040499572562595517748854157428861132347408607461319099938650433436393137748435067894982034132375577422034638510485160010651086351750563646282227569635865207651268300979836810595523852364855885383878077177624151561062854956861037749122561243719451587048539484078590986879333447683061627753629133099177172713470251618725580936532410945594228862133349910401915359503046744695000820581754185949261543426358849674970752680379481859096158195235769938261419943541438674794353611676861454944077835103546677214266296999222030673766789724750333217688181874555742337740819062455021215024138037307561666503821505063165162002868374121329844028445795050150463214834586842287959370397052262577578656591158601768834404092310698112783605510991969269782684077691337940525224447492060009249883685741443829869274053932015611870851072083894494989640483142866016008466959544400426081172691592854150858411653473390091792772981976140061240047648141026957423864051459338205606738989004758744049151446061580363735063812684281486738242531742307729178828690139652857933713806724175428795984172616163365994938886714500292771530703014093021295142764872126290116360522874242069993792590853036861053740646387942185325824704061054485071430629796424787649986931518825450946677576797606977936661254066879431927652658936335429179989911705905833579948128381559156435467375175157068180841562642597023673588816490162088504070770014218872482951038442826019501774909897734672079386172013805414915967066620284565565352591775150245344544926307561227549387396972742366935173371303073441485277861415418314971699985184964070149262209184435339181556621938867850854083504386891776373446121104690442973218453908539995522330923026705967743993746957289108204786931928594459006776394739676508360011951964052501241274600934070484411288092337066754040400070932910678793224674620624386292980098247881189585003541661559833647721438365162178482742519831570341461603530301671586405635886099557343372170744982570053202068232526222777873090165652496225105357137660512848191447791527480293537213528799364601525860905576065294632626639644041039914419838930221571035155872787068588052791418859787435089713588430008937650010353755605779323630913235006298548325517768786814821824997127900903207876205430981293353999838914477664415207649814000514283295079455777340012135943563869907613269902378863428005768447526445632217974916183954761656039216729882370355671116548883172916590728683553929340469458590396838179651911167363325567363668377986607018049371300744029164110661739157910046663634098290102823213249660672094590783612100008089056574103412976702149358389929405083027140360744998867905436414171485455961030778320461192449900365428220639576923972245383819409750744574611250227028018259766668752269207996959608658651886242095759261060001645379941641889338271835106292886322301693055189802004715125991901986615521039853281910821347241311922970784208426740792339214650556600419929410551266414219137530299646976719046474182676384029231376569036251424879413329969913977829138745782090337935763924616191880524170947023740482747337222794678036410228866380271297937945303412302621695439199303955719398057446366699960067747233051673697403743006343993727348778793865173183945183321506963754428556512409327039760622868881437295856296132382717687907061721506012510388052810356363562786843091791624305336754864140785457648459189605828181798447716270921920975648144808101875673885188393983469179923472929396018176543251282113175335675750126481766319522822086972366978794541446772171247185236739567204781866515094649715375084620654230117611882112479816270693097045157651941542116980045013522565978363379933759451860381252713372889468777728703787847669240616549126851602975676284568307994731867622446590390009272802582601714012464797320806148538595581749905307866957514602845826128597493235340515218439199223217112233754403750206919594374838407336463160366163715335511368966782261205468783114091705175410523449304755602603762147800580438808066763705373927871422449131442558229637768571132428908055989136850174309484763303000808573373564297747399701702987302685825236699481227106030042129941784442423616717705196578452855799423719302826083478868684879153583336001860574806759382039552579931738254405204403580656696041359534454529552492466666616510799061435845252120777843089390415086202988134464780098412319709377514758020393680098491618249331026168262279925029592643660023974567860066803953036064819364880075634809909928744999641355664809459458702313459355366878293804447946364966627331845937858854916320576819669485711616869573333542180980321871782350979265794008302451752409590054911871751233677880640211720739220298721356753058055345890690251550122399452689411358920003660043780054605410041003353187053924530652176134138106048348167490080353220462712253453663675056363268880286442745012405505440958929970122743586991241722371543097663950984142627561283669762062750740833915486334842183872776356995099504721505079924600573283930855154497580555377857092248402915310471449420391557392756460756437954236368798089996946239881024498673195598335761456230965390691133298828756967482025545669524046289216077608005722829242498143356115357995358088645490182439956677097955852868108710757707934945489806154464789193819414337771813645700397219149285543411865741660390877508401651766721891020054857445734860270321682362480526119023762837368480034940171974792757579822077988617049277774602571150551953108039824052757059692259307955457520573062555108500516001322576271455918740156969743507179724563418689825680677573577538651977953775129381000029576262287887032106011121232856656019722341505959774892778659933404367543254326310936058293692981713815337226472695153600444265455860317016957126889271221414784641686431584435121638961362638824104624491318049752498346134000918247713681247466640685149745602820345488637067557890375665402240572277135172797669336786679895826475406258214714538052559988173641039871178131258687238124251065631240426920310124541624717034858166391518091324256071474194949241803162160928333199995755947590655092275151562070336707092919500673683829733472635394543163311841528339103398969204205158707431098363750001033713429023508308906953264316414157107880875059810817479852755917645182707187130676629114212154693156152077466830437359571534484330695960400173325907594040062233595201511691855377956572288790752696501786833803323772118684121761096854367913563887229259730466979568147783158878870268587666828560459214986107615828079236323167687348536003666705481714501882544801524745085844625357136100352555364238417751911546214794527928788028767750604238086821436533665508527932202626436188787494458359313303880659362453909994022060905691163291036055960853861724136010649972785097687121887891497890807111002768536126349645465618790067724286669962121810712848946850029976321022844268198057026811874557610365213720086806504594058186621567416950185309814942604211837962796932197613150229888323350942334100482283465615306923061880810706181752714513516995153605184032500700049098903948050601945728440373397713655537301178461975004133708292883240154146738441020565279703688500197556659706870249699024497757274496600677385156330899377296318273572401318832364791065982453092476509900604780760310448213012631675503756316630152144774200969481965153882889606953147911429575223607926969041929319931688092436638806885597374726173311015697445834161527672421771130103227661775004010372264696806582714213450318171519582097252717179871123994501170113878399899562500968795556240277212486999502364650497372027326457975891236502203114095150383630293224302418910963274614538705318125689836466633156483368505045851057941296108523276668602034615015053418369293891732519702642936532949153154283644551554866229210530411988036794722863739992288339937320969886853655270212551548375953976469314093582108803206263543614158602748395924824542091597957181555411516225679377285652437761385878059812166001567210919395925417418380181321195605871606701383618353832352657225268563744491301389328710804603734428525480281538301514508094563053065308165437987764260574111074296381734350772614297658787749980906219405527737775803155831293852095543837395545460855209760001964368446997333218190768878383722452817221555406781000427665995442737148526629173788274619655162973091937380610596522342827773791338123833669769807002352124222697039106027806526121202952933625183191108985091205099914527926280132654962214108586016017002162939284889423335797047729704298402937975886158836142951417272364507608551665005362067155637427325064154790722710540586551042134440441421086710138817565666693676377524428114520317509943739685972538131509352647093411373807602314384775320722297614127733397265746087626745062740290788519466882929697483203599923459795720147437679603049791469669598337597829676409072469514011095399015246840444861513121325235726475770457249365396565040867878289350905241843279825590086907375313382625794905846116366206405777815052090830286241406997842424579842932339785170133853409537429035475860028387807100394342429035501476790376605333192595081568753660633914624334750969056723222492540311046366282838720055380299400040217103631509428353654401295761003591089599335416405341346428780141296680958856506040866474434041781693361216624072445377136016280145666025597616819452262610318343426197243394470389297421700013597836449720562914376164514199395940195892037542727758128486826615127785461233597389016944797065329278118355515240788745541058290175558608878165271980916848734103469473273068976690987092039882487851608245419815359835741985480361392568631059107763267489747262229535350581136377253962348832525985054629993466072609111059667542193975064560852040595146786768432849515501082725126886219999234884930701938922818505048328348032365733279769907657243366161292395662905380571572976941938020134100445324246184285473755147122199981301586030627450589349632764408299306132087215650389714711297549210403978497337748294833320928975576659310367553417662658222741883306918450688621089641266911997062856498408976303269262401823073038550039112640638688893007209985696571039680164517398586528056804452001242148143426092204368656470664196128268432654828647459112492900753589661746820962726574416198579257475395824490536751160586422271610386835624870508849659368255361356696719690508062087353391254093191133308874633694674167894845260760824878643659890423368655158299799503988342826423980619169559965600163100797792963150344991676949374089073438834763787540468359555702568622588481913306232675630100692602164699054479131181723376099725947263702284286118696071031635556531925963905145410805100290424200454890349859002377417838744814229964386860336340614853273736282339409099569086505427526327419146930854510888979883421402276099112819430477584703282470162048693493957632912435393471630537699794262471748891066208981847725304662581336718294347758018340496567898644321637829475204135433306838691518588020979094148347869254334406671884676923605800185259211724628202301648642076954094203292726945309491475930217581511382983450108900119012377841367112469824874203372117870780949365956678464173967695412279505098571949796204334036767511283192179373691830530626742469431357317961857017917610369810965232919278148798972112319376834593977027062260516377313092464906704376684538990852155127905059611945389345874055957604593236907924102087169109263008421463168443574106512809957584556121603292717460522025897957827657866882765564055796735476851125911769643151956899224804382548035431579696129109956014986648601406191231164990616431715459103625516499574339884634151493197627701838333601450929720492988905285506682368949412263229138478874889649342216962611469373432926959501287713921348875777457339308207676360886312467789375011532158381784763120250754815319066432238296180908982763716136574441043402983244586805678246348488735456098266993713702883677158602263411056018616917245417404695440822183280454059505346804501923798619171145373439072104859058182962901063252165011607234659599476896752771817634302553788740569431815197045700044923173761043831186927406123657347868752879268494752097089843551058238173218822250274822805791967950704187955218116968118587414859998978299000938250774946508880831680667683144606330431769491300463552273285646437150267847795375332512074017943025967940924534699919142978013719660754291278594861221133563670856843491763801090648970121366692945105625115651296368032956324563155602601458823429956773744082438530113243672450661647191113432540202900334205781089972540354638801146933248109083559552993240204523712643655225627512104399543748656826952827174527610961393455038892968249314244468484941948170441778394749932404345664382973800028539210036814224403810535793734805083444885778397182010884752655793031638919787445488810117596972439890765051880917288106981781137398480940956129196310544764204301619034787735392610219853131953458364485748001791759065770118398469910506971913495512647845571420814601870437874830016118826471825623248928012065233182428609255975119158737563486038141744135317164244612857933511340669596006895589334198978948160062295725091083530103925828640514933637884313218586471980311966306534570221964449955553918360695528233753663798803938718706381404543054371863754904400783062322219713355357255480770455521443566175485792284106632517407295877510871026698619714019533822981760307696079657599712296161724627392018728806757954233850050902908909396837721221052499873105731807114563148943622648730952474400156175865529483499909181073887341038571010840594651220155792664331445629962289444918689635773991730848999687816273191844568053392568705917834308486837736552536480446679681999275461365325495170431895767068770912794601941843647883405646022193876275842098882781265956588351615411050291272659790196445937201199762871366144745605358147405939039361851756735038052596932631043841627435686765280135344586967985435039685868999257495914356644084220715169453288302038152925729871877511205187363916748203653963627274826695398849002281019880111360719173030368745671465069117836819309527369956648412097312930587398208169974862587094632084592266391237418309930818072422027813898448611761006902156884270859428999899305973409548402566590787415777240265863354878942417408450506746540620445201796993502090829028293413670754219346573454117483745179780777902870264818801888574061904190990695692018853483106021306753558010079361832788988117945290275338511373779423032204444137866282570531358410703332457565410856252572956404585763997578318757228246732917309939028700364936757238084289645663139406080884590229399396065231850601891713377508751439542930701887906793935193605996402019853045485300320165064065750605229353766501772547098144542714346988442309020126839935237456184101391999374901050910232631846125020488537074125937336108577759861032197254142902223795737253102423106087695389517297746938667779149851273286171761607807616437092137476675876460938754360354782883878607761512673239180661795899768541136387542466940231733606380711715584669627039292596674123858184223962526166576335774113170808719729441124456304522549549735255999425494481848875346587331954279604343332680103890294708810042434453809584298304783674879889889168526064979069834855681703340842376956389882282264379062545420634021707540715229422741416914733452023048326062642285377799846687714170417792521909004588270322213917896969660796875374760037661431941974002306019487734951881522763972910019127429034675309494231235309390738664265983510003594550235224007628008201700183407895618903800297604593085035775569686299097593487967327874157907496837819742801514349585684080938609514866310059714549144010504987076727417271152449036340771427182725311052662346598592112829382925804666611925801337883014899941954006777331452413698828107100425037487794372827138272397543705234793974510402201484607655138675740591685734616939846170043455718601522734325328618939053293514687892636582632698605740642008533552172006196790528556178130945067786854559639011338867942305198199998162408148966547883298365005083835271056357655579317647430642072061676967896722055785913311515851836649606878189829844771466726333828643447932189779853838819722830136771315795133569138606254341554094490054408335124678089821446890836729855823721345313406057857959306133520023814606520958808818441651884514078049776205155918066533328308403853927118745274633049265075343788367705776650151312478362038859830601344243316041677889881263230678710086664470470380744959805477732386964822315418094589514918029291140591895209046969761630067331793467376877203259325342598343562480172546141512754288001505319426313352178597760461149663442889514028237770188021627118107798568952826015095310713821034881722117969622724643864603455841647980238478238321176999783579795781687964307384503887756879402904968523971600704245545995541129583199731971420009209572911063438084375576368608453455389167637075707417049368412115902589735082490769437029772639576817371084890407932550960120213801613564404868014394083489043603756868107209065774531181925814380883047768612901319473872987213829720510436850849002920309664361434358327595371355024249182018996110868117101611223427297370037502844559242401027794747403302132946981514112446389166677972945096604433963546082843142538588417014621802250272974119779639707213774499436837690320248123057176832689514929781952929139887247856603201183351612695642940990036434509782785374512211855505465898467646981021002449434846955911433382662144494958583232644727266821352531551236690219135374118226599310846353521008183024861351097271606761803750385741253676092338929110189613199561324253948714676242338109794371643571763037861748654134134975568499952549670055341312857333309681439818079809311906509766111986687941733494155740743799172039725216428243667533386518223555641896006571243961558556866390464390804237264186064836112901171288851724695631646141785986421286753953041089685733874067116192268093232608462233981860828724857241286482390327409098104047028118826214930693261900325078498366756128181069924846386993762681330894284018159203342382337597563007185729513200387545266827526774127634298841382336166862216263500690268634008789041489524205495455565020982412116172382454374760010154329809779803220762441346437156723553422690528441975215889375446622024513896249708182790404826184363294468981606737280019792702347102210741119620330091487904357281345448733845729974930227060172366651542140409955876508378667147944494698743092371986503149569480991656721160528802316444224538092501998631720625480964607453012211421856700452997878588008735635815125976783750389166068615565473130730360597620680025863734341880512152843746966507590342189136753652509583148366226703736595917569889734736417296086417062140090227482644661328324445069239839128026040728164501395638460952371773888325849993372939788277829912371701595350280501990080027657756388397971562794644736971902637620037603366869459545801412646109013682075009984514807958651973202212837802447321156914839337567088585607765948975853924097435162906782176267727646027654050005808666960908093462434197531806529632046983165739236544000816542578769931122088287528029447241628576016209266348998977166467059980315499654217921408562066586425137728664731741380496743753994835665670128641424499898757614371767931896204466578215070734077105525597524244151148339643164176126679152318558326285052559677246106717191098915365816371053944539416869792589385433248858235947365616623934509155134546087846397980153215095502449489782348907190134117094289770762487728637539847401233015444607885441791638989144265942071345675745227696992539719549927312671764535640306820691895903834251994336149602838360532566165061752259189429125289693707733939103243720264482642713925260038893583706047514806212763818044158867490940682366260071656077722935092442103700566794879633867268111955576805769089197144399196078459441802641978671679781969765739502880119406212145310485799397771542207860580304660846493424318664232475519929403635876840985194361204994555039105330488137053255967808471017167904642192598348592005622355525736665576835518762581415966540308303410837329886053140442078292580341308224221710247959886301424261132430855403850250521806907467989008685352445177395307254479927339286167128260319339991692815910030294299297545562200490388043945259662087690913415226202429561189421547799194807049754525376617589417745539404502641545633691255328750823470292880540228170298898378448352240678720915524771716247356467471235738883050075269512664910527059522327899618911260575467170240958008197833510197447955472913798345433172959069678042174907679758342661494810861750955469978936125631854690725663390432865319358961073588514863482612073332170534814743641653702175592989077014010528958189198811664102456936616603367053130875825987298087689026241914986468117157532125591489626829254419800881029088443948878962812717361031366148138737951194309843487316120537023965353185966322179586650227881575815780202678057523701571465541612532684671346007561128366634549873071787495430886988359579454610550341822958411519426180689206453674485124957978897612656045899110648125818441202356946279092602421964321979539511611126604698287496793229775768294051867154381217214102854660630699067329831461812498830652664832911430581861400759462551592214898155214541945564268799147728027040221704025666470492276886883696251901544490988815362435959807193731632875402762294201339132916006226162167219700243965221273757476377759319897329315243256436771029108152854557939177509338024703428162833576819138018631985568999804773199771576667382581233045981100049472703472444659745606377412679388577728996024566510498162397568725543660943849465359956547444966844843245895197053969446297883760191259349467963643761120415086669018285906435226293650628984535597397193064407163201399547572432578557990395759285173648097436773663219594529305402324271383477561878500029808800236836380434053013454004446577060915433553248899405527248536961663676122050997819213142939606189815111149779303774658695260861032624113266663710342908467140930892520084056448159892998369513761181331717733840047824664732286797546595027218805416455528475372441051792287494636190976113195817892049987427792906572364140403766896208856175749566190971991541122493593111676828464150645196433605229731777026652236057066320447309241301227266486951901078491507190256724136327047091478320670371651020253831409673258908597502737139549768080920442780902247515905165610339396854437155508302906649377672676317519775411561104403949592880461543023409170255794825941971306442542184872650042296374518362101594862013673379916394225249669464938724609881867274158340385575236858849915124700233659542767219914908622548763341705701798628907716688789893543054582803950882605931726490992910400469089155722367031351403464692909624154463876148516928453743061474655370814432748349293803712057718507030182230971373238116719730067031611214081258198340660784541194431504593423916965850251643033232761147890646412983664802140193231816176941710477227249496828375914583504483540020540120306836887936703371098441393209592392356714846228831856463343637862051801498969221668787405494068161355555037937629197134522310784712342188069313356617382221509086857165868147487503543279937510092703831284302890250974782593402536367000052326778343100830084659074269126398624827748007047241941404396496722874544489708809800313098804548940433874957343636660168861024281864068114516726720222169740773864413792538454347003456258851882478053822561568121784822205034154278415207256036801659763768638512106246920234083431523761517712931049300569973539876345111425306782765645810224121535151725430780543425752031905061087488096444541379745350990789568414061397995729095626191565295259116216344070995923803091605430400052800558851970827135674931347282759228748932502523585233393530557819684862855189763090667253101783618031921737972954387651222420537589636845243086122545395373968945639042855522119653676363066740586136943878920355136404260850469888785501091403306030100673371269101084361325921888096486977785716999647579162573898764568229425448215125762134964801086207109217192315949585807850188510188762766233753123635921155064009150002890684388893615735857628091079249214424244741172948834843116256999381835794579499849905344991748909671994173547757713879795672656038027846014922203459132515235496649240553793029714699164344700903469302552102161376113385613099435257924622162758645224611312864791176454155871474380891037222186895406284615999923801743326585346065142045018576669326799236420402607430554405281856895654632947345952973991096195172805402459030345568684944072621805562315201870391622784856160820520529850469445377349388150383207248027181416032746112041906939621306002052372582576703094113570570595830404720534884941734154215921577785007634255921972784196095672257868233447910496989582871689781553077329781983104242760836206596374168413065448974989046776496824956304924331399108618194569914227709552734380776808508617968721143200653621261452151026490636712838794327188794401950501836472156615877981417988034188932254973148952981886473517925784483733750895098761811014728534041109001605200834313307681999280361161737055088350633622538830364792989408007352367565349169248060478331099124510674347747708492763027371993854275040918246047545562227145011911674604450539307150232333146407134386608272586794500326402926425000994401539345267615719566511882595922332562568330258320256829986505936376048931822821406654647188140741812636855494782685108283968377395995311005653541845007697056968944960317687886796774344027324645019489139850438922023349085702115050768942217891276231760096182616587841224835149264829725145353290450748106027054433017328459313495618679049595873770660401784170479690825182738071144138376710235809527914298178100961123547518106723766190317982446943169565276854559907960759494736697362449638833480078711796810355807550104589308302997729457536256489908880291101288584537767057823919874724693823056663250620607000164216400474001930014273982523578274496878698203081081143328600183232038451033065509951918056648915969912428929620637961141217761959840884788100103155209016534522543649384736349923366491323834558295480908388230322735966202944392600560471743776959095866657808065840838458334867931802405831187184455651502746922749802868789143786688281536000214304254348752318894338801822983730423866278726902380602409554093728488617560773123385860570775785101206792933592574943452991573715686287060359871551178899560710233621270529294712736100234828187963985130588956361878832342064666264475842475020535354518210453309729492537090326090771855461857666480747444645010136647500189948889184670301160105799264107338121687563188430119222823994170482642787745425332796487878082457123829471844873590128873843217798286388247952180146593717962669758303783070474107023356401883670123944625397036333362921916953818466842588584735293777401568537579514520063374455324440493292337146050558745274756681997353982319671399989099255419959475095513940587859699180178404557594895026295276984914689454013134006387670275560952820722715439078441607142576314820004592374330316850933425399042351606061982234887193283371475576720622985031564170645076126379283857675524289547634405523981587843157017746656591431409159421750263544309243835457040659277487845049232967460004559725344539259542709446290373084667774891225571431046813494839180910390499695606819376300174258522852297392232001908167637258177376523769272317440718592502743692229218661112633902003863623118222661178732865730223080988500720992813628300172085099356366437444905161044568873162993648509098120848786700464062730193680300005754111805642715618946229424603365512362299293040346813257576980891116826022967048889403545579669723682950829072773485707228811282546316715380581647861845334116369272071275496244587302304149372972547179463214291509074698585285665833890023914262504118392483754631653176584126252216814450542893789040822980422202609981757570248505533735793088792928507746473687947302082651889210408608927126822309463602397479136812203710935892448809161470874295351013337390810132265795370594651912508188157065988606196549631637647819455475237438261732027183783158377225262745193256565875179851215649485746790309404720645447077980714729280550789401537750975166089720385778303641020437863168285371283099523320563977745450428320983326617576281613523016044749041877128541134381565476751579397476348262206507890965434920509705238254032234358647636211799348398258580415157355655428826458229929479978261518095535876867017641461740677958212556668109164226329158939184190933933824590623838032487392797272907611817341524689899859605423543848582326200763977753269686200730835276576734863966970328896195657722189086917082814481964592923718494602649506386141134628719211697536961179647287887311017998566827805199064727473276561239364842081792277991518891985468870583892504640587663109282353384040379357447686508082609495754319063410491427978179066636030506052883091004298886322850532164123260663917751977497953609095434703959233923975054758972801900042367183520772657362018712448193970737706110615360791764273877908891406534629841087519712315363365734312410382107935427072715840602175264647926575762134443904456359181417368404721771658129042513457890371562138236205161174252012456099028974093998055574450180958957190835777493396480427794357084708525069089384399320587388742032367890951427171516870184452334919881540051017546186404493407441731331781308003280952362272559803420199602221189925063077365074014271928148721674601829077475028054636898847878817274071027488383914542450322260041527377613894424449813016983611723982275925589853133787050541050543209309401415630871119073853203260292018349370447356070633420076380485817019446010185340840900259193441388196580223623375983187591713601864924257864051650146480038315595858000242194819956756500131186234985939868503987353309422095881076751079799540095475854936508927118133859073789224865404010922832865453291794945781075724154263294271391767583352753930526038603739451835796045871010556688502105195760612615970008744781083245866161561256273552864836196116767529334853539951841241340661488948586875238422424151621349608986873932787827727676316779932933583004969785595527023565029296279185022387108569608146287469029011674432743193443002863924773176884727871840480736505805654971650733584739862805605037185817674750112013654806573380610511444230882268041425689179228586697014254634709081166602092460865885966100362689416702993596132926094629958986091079684035274165911573825856031305642295948220369247202338135481401946867903545021411413676788353758098997179955458827993415103338599486318760675289290838282133373282508781892854015403730542794874584598966542095091992615837801956740211856807937524758719780656194050499199292045017069773821841774324539374209286400442648650844630112529979513360558545238387698576808857518279676806660024492903662127788941357315231703161017774568322147602075186139618166820472449539718964638969181941968962682892249706338695765405533249734964279940608180885735696675044696650221728458082039497372835604603116693802305680443259643408789770972713429684999085934383679488482278785074983568977580448095382732991933824815452233571499985990895769355047594969949002378004007674988794484068273589943781196211509705512836496641638954582381209109504201675674191488622144750750489388742375386680387880987252307790865931378144408334429250748234185995640420681465782979791292966460898177765991701706236649902980441410376068678601290096130071217261340360271908698260873172824609775944902966011635790652203653892935875712390977582384427171727417221718254871264409282624145249664884509826408228232612670949112999931035683871394699602779581092969401243023498926520992159337379842709289540540430522775085945127271873078454628119064182985428061314780918329307190549038379636586860124522122845009234876280032424776144978035920941726700483902983726034320377049005230118678308288032942507993987334590075966771170011604955273761053605314124496312883267607261277154634038150708264263252101238767614674649570139293108059658035972852923188967523251059964988758687314633772361735206512971784748033056592142034637295924048185197400209539744731652955198850490533172964653693780820208892989968965870317669408118977322739301003149846393304978196995843978475624765257206434880759022706374423345214054499039450008530916503760844048868914270990522358155408519121448341042018725477386178041006721742427146130627474884551937161583046755972617093733804921451122503479120734053248130660173449777021529840267315884409094826635233410143659629311359937667466459436418336392879043815776728362542406808340233488084905454272427346903654308487324319463439737605640892930778143877838680446754722118824527126284621091056412466190926966717748327866353574021860144578348391065633601483066190229601441132870621357934988616984467038020429160867153944283914107435795233749549968104936738929933538257366288789072919058411187967410534742443152354112153001572676378521471282008916697085569038337001364891265123224050135393728175366726152452592368582193722142594700297658399606051775571637845822076862142183006998501203705463593630420440033778394290543888147807142802637452799058263799372158122894672634904458555732839207059633301991851656186164612240593267734139975850861293116332604223140607644204136712619430031653937613851449689554276973714482073310156707643354637934130655454145394592193392078514358070833880735726817796922000340519764761456168893362268340335527669439436858957894533541599287292141477015554991264992572899751763613360136384075595024856693936051960311050117899967815034126194335422358827972101101423500040440370035393965508447368835607272458787267791981587142461379987811006433689278027310471601545903767783265161836886061899153800836415123672182140033613246356841329087536043875249193491924290325683908115708641990814853164365050981577834236489986407630002334122438340021398130994425053025033121447192415153265787915289726395264807086619682105717548000150445423122833035094631865433608907527325543398514471171667501598360392015127276148361546470723340582883788649024447993924438230387676023591836899963260361701222851219766851760085333443275142376441707788248015954385792526661812810871622578851559427086632834921138473833934862351310791915654612977781893275318283624447068776098971020235214615577507524837294554470707963437381513341168641252915943337581240891783774586425587351893807468193350882441747903175193690365047344761877200912192303327116739388503954480815174250728648673525153630155474611903999246816071706781769043758675265939761764356757867166105616148158996290441096036192729548553442412275772857461403657797278128351867234095445717502170075703691463947988257648880862918338541305239249004134834606016715919812386104429739295885554081684312574345868477545482803137491888138132031864977813211254555794479832478069178102575964937260613582477860670329536965209130714997901571876956912201510705617335077658877897030021534945343553063979292572054649271083074781145169198849581720767722942535693114142300666876748710918869229434755616451676699215522717565090758649953756792679627043133207221369327794846607160919244832003635807143222762921712808886414709419752639608438040644455120825552585176512348725262753511425941744071205199453823742238209655034653597823666642965392668742724887107836366545021911518268852615867232025945338578831068281899675927785564813656411691416277890263156242705821356793169616527471927421777506416556932485789418628917893655166155903836495637767316903091768581705696357154157556783710276315945775668750362924410122268773994190238713250410245473696089938419295965992183771541458064223253889422335580815078819651407712745826262845027270671914035291359706763667692958893952310686495852757541953821484472572796066458717143252424854986427827578807290280696607268962561266268179843165182685449672239159287383175002366026001168375420363697325053771546148322362807941497576984052785960139527656911530467207549117316321108479551893735685921033518537929374544111569254049178492326847635062375891216398642176556596677647444046230963749131739585346278284422283201461946890324833560689854896300681746603775539402592678536998171307561732800370962513921554869339523042177190004548428321855955222427089850375458893702060161611621287517639410553217242851754027729281949995642232145444090744336925200589632298819579816601798587656022583551709005290160895236349987238690219829876761191867877678356912869210650519777972907968479837556950415245678856086605843095505305705440389283132455246098965618213500767099250439041626136070989294617454838373418931989322312028793537384368931419714726611179455843222685860857092940889035787689875054265121881502177155699351688400025933133793199885164179002952364190259263795771033708444811963501394654900556710294170693563744725015306603777786962425639953322550275247791847727762600354934858021464164294694820514278258030307187434559483677813457889593271852735846948892072221585219813677829360062488140718173421732979464519880062358816857491082195489492434903305906211817175210822048884902822829366320717401219172831946862525774878651219576314614584096509043128979938503089616181622160186122235454121309604748103359947475396715818480030310112454921684357619630098707690192117843091892349634353693185142037288809822932296198965568475617269646873992375668638629313376731617803977828858663459102126638865274220736820138739284512956141455519753943734479290059256280598930680821114891701991996347634568881988070065011180026542212811885818668745170313852541081800381114844730787071045721411472864055160407482124532354652918783908713199909649013687409816621415433018551079733823257337931196129550207342140666245875590268432133826140973179124272582911150796597526300358979471944747223502487931007731520677269768793759525757529116166152562544842276439182526993581553509375035092348333656015567347716664566018636931229495959570676266414738239110625865379801323653829609295481462273958389753402922483913837190346497250030599211741967876881273608733125662199736885681327069963524280710945962045591597753043028861488920215585271963981175323215535630289078009953432547531597330877931130448704948763523046654010619410869524764824477726897961343111822644263855107219627379849385300213130169032758553957091041859987894090376099036563446414291468319324250049599007372916846621622646262185572254606416384486737051736671092695735094602639734230461179734453568417238378977099192114428979790943938665329215480986873771212955367027217689383602436253232235454224788703220945901036819510316812675809798416315765205915128670214903016074456799919421783181292235427143507018651806446444107991194596310122116078219719891357431019131001112229374193432907183246273302401595734189765697409983019969981152577365637937080095908221773844102231577000533313770308424753869718061386152690538605927863653175272308936607378115772685657331905662891337614046154581341212516113309833337655347998764591246809195331918225655603424889430491134194503768320800299787609352354196198846470485017428500477678669146002403974479653894125059207639662216897004574796189331419687009517987457627091509151441258612361574358638986269390881942826505026150465494422809157085090677673730332486931654245293314062569134651408138611343799953037605595056394517556231699442454977066427370036078053490183518190281427459658897918496276638860356585842093440431610682356485068513651010523690407823707592795556034169607378673691785252391270522536075337441731992194936137420545811693023630280466099179863584455641276860338387346788288061858608307299545601159987875176774476368373647695001428359035883088983217851846684974635347922172497217897650494765867781216655073039188238866754848004077902761883744876385879701802132498113130890027896365937934964657867123486924802177157663206782590481739914174667599573380801083366924738316840396590014065196182502308955957911943348659939219186174495813493562750438237889617635522908954004914826833485293031230582202668373115470810737146477059921415972818225831427448447201292946751585385997879117443574043669559462565866515353483795524043405539744069944953928051656893176826904741171246618111078870223635053151379988388693483800179386633062669448687215934534686718389984528074404347916287936504617224800533353694778376734429641106081607954222702025810184623535189237343548614184818205205215627335273663602960783247034198342595645630891872655947125780763624497353436686997943357923366343620590170828391490990482135727469219096533510804634261017130442797724740515195413837965246675038198090836987489453751624780166537396615667024328153128685202772778619842680137674706925855882075677400098144892604522619602776350423198588204933725818377557712549224268518813156328641612810486060382891317840492800885195490865740118354586691867212845204708362329492878999515755534097292987133936033332434979931971611706247413926136654891245098086727149425960129283189046307537834097841270606943708236576517273415002626422717448396003361044581024262689676590979757951692084567681636617695929895732849092742946280692512570909608392205595581258052947862620654999170963428780605889277376879054986679601575393088377545947524281261684514484852127663665218006828718745268414591502876286441971244386707817065912820223853242418679239320554603895364500840712950939188266062540621669610450420898536777543553794987872217432646600348843036788329196191297481164904925685221095539158971699183633071856269126736100110723808692928896674571761469823517832959209758924671688734720732578257905173775281128255450814324695262360114762046044963503839381836240941911279079210876636926604093234914093350220631533948087582495570100533033157662783771804248898382176777607483560356407471214187819507434332780926070925175469136278281853660886219827381723610245476124585526601801031562262231906429034572670717980280552221609256248752908732132066533374580269474357505486921384063847152971122509005384473372252136516127967502634992435452020287049154554452644044320055747939213767272146660791770059045503936435284779108110430024702483322661389779505506531407045357746057172848965702575472542952530655228225883554576304270734073221734449272941240755492639213892389582878026077289610839603973012438474893097200826307892988231901519235657543061930687592722589098018970661483343306731354281101747192692196628010241850178110806174588086888410427672653126082502457616824407596275000546802634020747943791610836503655286989859922028948152397234481403219912996122752122597550975926856563346083040989654541661613125998963229118109491854080620311872269961115220843582538874097011138188046339922149287274217417348671229743860446428038485854612038354735483358635914509862029844046501265421649031340289221643429287712335985355712130243698234624505518476468203928669894165842035653101962380989492685116730070169345473463905190816127692437875620601060032352158163982378898698247024092718507058837917748402488656887730538360156054913198914743321405546770720860345286415217102942610234854807923914005129820000421965253359443310310965748149538727329556969741079560460992646732072997827998208739747618254881051683582472164922869836091437106534062188344671663998796230643366321874004136355033734309164611803671670501072450654672573455741083645539800295830537297056968701581693073780344004571716037021622626741439902157228372929958318517531867681072406623017777940670165919657872310149316370733586223337251300018601891097065385238379749000714482265452842655662381529145751327319301829317170390941459299950227058866463216025683560591685981537440775043003602154895917142301048535809199356192767753832555899355859611559885628225494788102293034894761587137863107825435096586039022413634308809679995389195148090425984585310759457413307347498499854714137737239617103326549782317918743261117687752264238894682455351835889340487269388360675775264246737159144213826637176200680386014054563133783326990273373214535751177462044789892206810342129051395558894120121283496851977683549171457270718979853414274803120061648679456407137479090841551348467045376776137749659360052540154927519636152491367070643197003962440428584094169607678897820109969889972156046389468231653228358474231302391688521354237396154842280649435061255404294598629714633881938487878644302007266124760437592325038593394411533833468130756321922048476319563978933280423584586460717658076996789203478508906450437525290874305978302914451090403252839397162239270900314426819495035253020961689626240212004975235320703295573158773309197280950503745986574197241605684473187621220714079134177031892683722042417385480021180590813765264539221655024309536174231691052841894543635986521323257194395197025758662376877416341554921273740067933960476532875013271323506625101770773402431650413158947872457602810397615722189252263976595213009301901747135540928712161386741964823361402061973048499524310512381133092745102631734909960439146110165040182415038183227926968331819135448425686627275557119969200142955012518209089109146392825132458934160579148792168926824022248177230510314316796906046781322015295185817087581927205233182645451483521122737287349733874462368081858997990444058573033037828778710424353315157713175012271494811166397475654260741043382707119872106486795524483980471884523916826655460612418484532839965309054828069197161670530649335901542714755771338607317855872555228339514482086339075773889822313486505914935389380952838585627561871962569592520386573284403243214773383879318182079658153640503026555030566927455574860491548278183477649864081296697392540562991946269101634564703187402592669090187436597600611189323540174846900608273076628219071118916524016959161179328610994173352480927255275184239617294275811361547816441021482125535313753224119424979389145977640436508926972524021296213095163664850735675931783557049403514229965247575734261747825775894853322119063704273823737483648764461707032581118326043113619642542528837997671862139797247973395012930955193378991719055642612731700832541102588412333267677586959547748534953719979033433247010206976455195381658959929851933654966080102828192550943080847816378621557374717527118902418190307794046009426819619938709496819576881781442394652019903982708834993151694803580824197365431213176572957334729948444176150965088799129088574980451145705745827654920747358621006368233670013323518548869847053487459611405883945351230405786265421636450653403334451392939008034058195193072380843602763103658071389247304767209329128327137021071388434008121487608079635216235672890484043183691640400385688037752929010334567748962038288655701475611113231880937351425553392215058747965884469863200317056369074969578885819652359502788101787547341934770174015688360037742286615435682309423542871154757865028105986397504750581327264966209578278578392994435221760491216186669679591304411839129911247943599998951555347905080116282966645530719471022807873407164987033077927469686201554086254466513133901802087535891586786045765766597229370477618107026304163248853617592251954603737236377063116463105361382286989266928957873845660909198518090989892290782241713272639536726948608249181777369643434848216369650685182862005407850901018226653571022077757573507870202389619188299945619504221741041288331215764162577855647616584459991481158026138185769583261127387149596172758118659612631592317768521621777407590139280684455740308531161197495168591645284440567044179402598947737674970405164739993020411630439384707101453688737500551711607922656235624395564420143602262464703781136044700474940276651877230466594079675543428877902997925493967497138871083654212242932337557496151522329686637229981249023270840209390847862705930320570636506944678976268073454012963007914068885018982989131216321022802226283393725961628762855840534063353670197913753764643216487711560089953220622582617958085964821727302557830424125458553199644712273606743054195595564153458339778377262421348898475306056433484799694187078738721137787457295484265942093145672665877237244896502321871777035371279561755888317824262350922752585386044796509918947296154258390142434681181611435420585959452500417772388582419042973815861900462341332717226415753157033506685355097376644290528580337550680410486582734539289553602506017394081388547672306394193750500302123359197183502177993603731131197053655859672326182727600652462263328479721293125697353606247547557752889354110879148865036679961524302613419234179559202946586106306357102769181911733625675569189931546003911851681959449354852167636114677927494561934872226778114111787571327030544998347032545315771177506750442040777073016511591575168001324952197779570779650666989774237909970819031271114009096797038009052588619947279522865634888887227486546418589445922293433697137071718261975279763137055048376647771028617001699884182471215126574750407287187244716192069812928597134991037734759870524618949463595477252647264336174851339337695885985181466343226283664042389411501958681125823369643733047769067640673210593370998291644343633489647463902420250446476234328766783473070040721034123766275307022818149759219194282490223340188523734128132345068096783649432332094087322594505258562978714881777914116079446559508170877013746721601133824491142988884484398330300989343364649402976485098141737376684463326918030133789903309171956060120318422682099833530481114918229006150274171355185983749980663537497370559409799709734516824298122493500442041028538704311907176356919267872907430500117947623944470884608535020683966656807357419774678968159869861292902085064576277885428777857433022285993755190178321136092544133957311585477623406799436198856561868599823457303230329907665255690478884721721576508481902657269826270386253205466586527777884756484027174090282024848296361230512956626918167712406109619697812833368192294110428224402600801434526538469009155972991728520469055887611873777291897755668828312181038159879687086753448304462922609761353799597156603154725436871876965097760644160063938853257675256592043271796143686032771774059721227019494593543876767732929493043666286443724874388917345898134343255932080760130702860140255579447506656155369213430517963464135582659081955241889925275464457477985370437489313957593586611402471880288701533131668121905110029550828886466169171696683939427375967981784473648755449856311977063654475331190991954102552503659063617375065861293942857366429590646016272423152747357201313992568705629757920907231783939323762243848201368017639347702809264785556213009485058359772231350368881852236671715674909878155650783996326022605922946606149157031908146704470923086454627081556501619937376656285329869446071578201954402816423901000337458946174850109939076240598007216188969554593448428234802112669954145491919883735394789741869383620028114045093094475660771503474323958583736068890391458454732263214671702532377559859950225286906425176930885511699992628423586844538816511183523266448023640344222924271725501882419507635233008341199636766753383796090243676276501325168908029053433045796700192984620559330494748751089375450061281848615975435207575335088353415057739886042634007525567577716822760367608556897745731743366041073072547132974911387390767079042186812335272927375694713905163310133789698717140443447205590550387122217427493725976022976954210916202588651394254126001167224691639374456686619809741683812789121885001203264639697929885989348489745275005815151831155394971773653487019897989590115903634883076012952267221284773714496756981981704791716212378759208629649447351421243748699919249210794159348137889254466062804687219766943186848266498697841434351323199730199765580588982665531583033317957534822047357369440166174218302616232088392059855348595621174060074278088554063680392567308729356158280024066540992520664313719518168722614761690603925798667977792534384533368673504393318437603180466602666647419015077714505443306048490035985449311231493182991323175609614427082425054495926985795832379585364013055737075278504817303547481407878453350793183376597406101168419704142735779115077675585905876097770201085948305674643775129500530272372416980551418733459138141674160326849062573631215439557226027047385779282486229296892895017759268078624289192096505625151177700151177602414503885912556130891507644081106981218989206673335256879870787298960636523400759640432674940222044517890949130219185185169772760368388500602872450079581946358601752579090176389355577967810030419354283883410336056331575734296476054077447769930301548110331882117263936085184513314697290619313537048832962025536408969669850887976931657302284830147988745227512241190057496506314904005406652554286693356750513203076801165090387043076210437474029135777032806624219723170006845667681653896861105242111965145049776903917518265470971236885403080992005289089828469962628121161663005046097881493488644699058274615835571542683044850315102792066555440752595323810999320095213961614983593739265362754142690332332072333012923002101664501152226796398052236708854065697589211451027264760720163449080580840194595796364393024369919309825002662583562920222471588856619233719039253193921718543015521080413999494140336253320895654366901923173461432806215572311118433759497317409735141494503686762616130057225094668277442742104690586045393115333864718104861570206584322519611491352363712585927505522187800291398758253902223951796487612836561404768181762022597670264162615205302464058840078087841547049803370204887707824605533977928844800189092264423411989301792416359598954081297093349689784941372947986611506704114889453460686816996903738847370723034163155302433274055409182547883047806707654395007409346989457517935581652102542506481051271108581231192073941228066029247889289762695868488373834989412918962246639647193925609301727867393682320030084246360700718487338214261019425504853473919325025192984245133054489640098079047612353226513062110648272205365882407157020119771148325782225257473936780771839263669704995759438362226424231884181982671446308561546639149933024687581502879383162246196289608211559125221831722700412360869968094387279120136835973022368558293707788268149205503942476308974941052749672224824124302318704068356365384164036357305337619962772725814796882458683176898340135355287028460858173229972295604570908746708005278565840100874752593820808726970016378366421887092950982690193669469435097806227967826662324902879551072957806965892054868925424124752122017671135214349371262100928086970487825360499064255165708632762931356844236462006074468399836773781261374553104563831476675706544799909537589587283371457032562300805118890972789307385617427041629215195421981609334703752394273291621863471924646525883327876612257544162493662196564667843017863327875725541544136578779263502713310510569756930390822877427452271382127962175415688175587874694178521548672857550924146181980155454467561666591627533155377730065372019400179039320804080113780981054058992657184399737147767224669368116722780480401342917640619331543752462925304399218721497593089298430334062869696224651528894383532128673212078420332216877499779233136977804345828571538527539464221755975252815238593338387314184553077812620775927183510134408287271576864880600718924936282583394798781512194274571525287221773614365355250051998365305265717831788264765714277874848305191824151784652246987722492339170659587936309793855208163740940626812292855750143637950058963240692493551651362657947937482873418751425532487487322532074802775092144236718309014252001461067812283729807827373863518418424622778787236968252021524575723827838784047365166870030012567978264133308183258232138223349109198238058951184752915719909998036519583859426957910047336702771012304436988709652736229836108355628177416580501763293114601106459658951753801721158383845170812912471248601392893880333775779142000192680209697997765406883034557387022234713732910306937964241225464940100237822209503355590000783207252017898303582073872835832010480484652885467921187926302539504974636510893898324180685829325277674062669822881618210979078317792086565739449218732319746449832957780979112206004462487504526930118503296559475811473703897030682841898940145253667016861644632232496980347254359813990653033031943997403926406147777287906345334556602740646868303850676965889875761235505905499845634680443952903821552635076788797173304340822712841187149039272509116806049656773984628299960004323448800484416099391911967144340733055059826971464416094836223068924266413835796855859657938541003458263473425337988934339558612497679097263257987428995804578693881129688253408905373650474014109306116015955610977890109547209513003434997471036209837033435380418703571698617101484365679946159259710521835872525274181405200661683928211321580917350602698306403369396411535146694418310543360163484537334837364072108667461350322889354625600776177827148390720357909553232464931669567608151721076202482664656708876160898290612275614747902888958567747803601767810396676923567236907022952635154789648102101884842642525625471155671438359723563491427169052681523950409287737410410665464364945050920481601197739782865803253958906209144921977608828157350379658477982057227057348234092118958125023393197837186940849516330738432630164655680067711704444296647386811767825910623879679960782125221250436834792420439472429416765863638829019337141396597358739284290415094330744922816678170492851786806867415093164733423597448396548678021042920135072559775980427833597177830494566662056042628719780258099074608892400336195475615281968664388030436129632487240140823343376887228460399949118560110506247390128588291311217184189605040069404321160341162936308144597890974905450501149096373861731981600989357311721173068499656379253587684033808810437035884676884359064615006885784385295301353490250318013630900783381285710889701113460207935959751698424551054910819914233143862632986409573740150663235269097310548396768932572199106668052780921419630744238592510079525803050687953517964065774114655939104730441301644223767712264197797978763858685733597851878504721476773992206147401925989930058902269218244695342029839261396758340483345325921621595806333496522177181198015594546144808415019814777542803058296097731124242140495042895970396758072316074005529670762786195796455875712327251937519308394995152179690222538673415750534632458811094525436894011358163946496776264338308222457506799417226371225090362099787024164454997562367640525404822120991920678847168086909352527664872927182802555313450766664447500942268253827245104533655093839842465777617091960225206128780825293234982926075212720387838085607801554832560383052033803429956922581911951022247361531594010832297262536396177177611445815545640158979462986138225437106792697303539996708426684918152776745072449748694374499490710698546939369673343404130544698640792981524053647773752581279774751040469690314722878780389808531842268105984157358180534475616524496026124460590069080286657215904803880619033421852090141546999404930687863634947845690535676790294268547801848404439594512117181698331656780882959095855652544361190602762906163416818934376544567908967583355308171080160007282432508905628960018664815431460681131775995669607159805102507404226747243695697836663027945239214850882746932771207756325030787927706113630936632850152533554345956829624944552899248555836526277669730456583372145721349153493576622608339218095632336295296913814332680651163051597980095013655043055287165705840944444670745313283881373672571440424635225999518425835786996810478768120147354026335118784019556694195689927240663413386828234485373538041952959515800823360205243765532731362178445682518865209148176400620055253543846484615578714868863878461294152564446058393300168814526921579534466898434968778939648141732940622939530077957107681868543952907130899299283648016430576964994403885394257760908099221225744334556623763997806957129339295738014150025517350396111716733769902004498173952456016497469774253022246931528642529098126622126766074119115686511297259882916278956887291817953605699454293495000046935931663092097735137281318507213551093729056990381371921991573346595198556812685400637248297279381169076360588732929138134569501183580577117844631807542107980724990766104277874154244928238447852736827951893025065549374412507594852488662613898005272924076626509801345244087558171720487365947590476956052032239681813492687189505561377592511001413439530983415913592616123446554629407911727807080702775990876789421496335501684289761643061577403399103646895167587980812939214732192289870163901249296342105953225367969891732379576473930600691439625047102086269337534303432155980808872740580641230773648935047528535623987383692441257381650778623495120808631181547524925654645829950562016763559609382384310020169526060253646221475423491618552493635791007412303578908352917328218640628297559366687262764269963824446099943039592577722275527464972536699189610674475888099109967625376747817120392320499252330850140828961647900662730159894893800451283592709076555921186150988249124207528657119048546497957395648043004687787050459782939460307209130015858235601434014831067990899401622001845333896330328889169216544810422288430450706631491852881244017095439825322443950590181003873643574584301662984242497886309697659242004280215100053248570675252354838282925903284857669464722650769016405403695060537683514857130474750081061449775963712412467576661426829673701528281638126106177787427091206462925959930197461482487042946265138117115815034305451093427511149310964246231239565254183913705933615195663761627991547040369167432665539367913611093652678576162302546246627465160163732883968767145878970660371938104557870302912298088178863327188233288954420848508239799919920798216675644891019375339395516084626872715661595365867304617050295180257643061185775183399432516506128516216261430225434830534953879095847853006434914127966778123801641672346448619043346483775793773670194663431737888918896592117382497134487860055822793460712215926940642470281361178182502713728891515114101564397958164476815394453674871693110178895860650739558327840478955750740626227517722894082540315285716948853322265870841137685558349029763841174425805022743127018846710240233487888912657385224123048021666405845079597382975315148609317170486525233081034549457829254740558199767531382512160921068174265628004663873994254642208827988094978843360926398258219582356292011077536744063562472254712916465616022644032747780553176817769753497128507550311133255537144927304963755988357195066413280663830012753768014934194161163854625711787824221412167961622228751594941641291434707754556748434585735168122933975518608583528679951966852577089186434133786511963983190004935156320838127243175012736136729444679004088706640315213225046716667525150665357555714573553696536410638286826025084032833661310195187865902974657469128185747015005926758779413240967675788216098660516441630162386388974372337052247807474036500999841870149666651511360119647227431588943871236862990298905126716095185131999552400685355251431140084641244556257147560986186317527222120729486432604789896474344388251528999300205959721217455327104893339126705809136457173565711686101303786147653768508138315892814162633436422911520616799125195299085299698726167014837362671387570872564183574860921282202606320434450083296155177822709569209452486574444897831347248982760218761573075787535911429274435606942751691456487184101645249494618965671320212006079559040123838186294119250224741989678761938637129957888868543475038864769569328069423679722016498176329410246687160085654949166780269658708364384806968942220099563428503651724753090377071988396260376551992462077454573529492270247561560405416751373963852910148707268814925718346200203836762585388101116621008166091124944598617779663856542255360003939360141791994521619941224563963338121834194836812587193034192000193133304232934895438375871192967989793583998754825826671829021498052095951935062413763433414671740565445227899873840688227931371872829888112357520233844077109976413599020526733783456447007718972193963279763870512937841001200104103352541287435226515123458381810590831100747423032974677289790488695598347580758284248477358024109935946586725757255943857964773794770437034172629703568203522749907894195312470060445531333795645508174019425955765345754382311153917087729978303725312768162998993541192340934648435297402834924776095355010599225290214082713587990222538914703396152193990475115612332761062046033926523773990760372247337390857228578068366447587944658323293807583046315152035897156138107154720917856815292097650390398782232291397757438778367583488692878667087233020637282334389307274495233811929377580960514170581963344496012564205021123444321190806594451009227148414523201297031568297971013043322648471484823709170526269509141421849484045666651722815804505672180163653763178903330134749777066983485008586425046497028796702827744425724351719682319606976264105119710933546123912730496917392301515560807817219029829490159846322107424087728948585258142727876101599953682942196848886269442370036382182398449541657002414428036611925101795339617032971121828853500558297854219461242255821739392728986854566391682944056569168937809415555019915782187966784727239108769593963464132689026443472164805344465267410334526016889085062691359267453270851914482132852592062814371420331456569028329744419429607729946635004926201414168242939328075848298157335938772759641680848354552011133828024497012099714806555947418250799825818764694036507146693828032195700935567519618300517394884106828083546130453016662139236265985388304789590793857942855739141983576464196437689082781317233907201635097552304308103519933573951896424760370425388532280889990673365946827390732701595973634542069372895311035319972589202055440811372278134127447891045616970434021679031175526101953735127126297620053976415527092606639052526646021157190863825857473652276306120207309485698289423636164117143588299911780919384597050384436810567935954358943836374345594472484399850353202200499277199896166316253554896499942874975708163550315476312907138701797431472964442894535917449363581398084480217009436422807551964488162539936817240843714416083881663563889418287261110421282558896414791481058742362643637197105463315504675480779426247598258210047202232078105295645500099799254926036189991072116085673917510105601918548658534356921772842682022499146532527345989904333997359158456928770108133202211374500371572430239534000307801006732627008754978488407679020045316654372908278103120902694155122532021726493640475670966749634757776838183654238610089119074594658915167036082362033516795611766553873831211405605588068928693781521719337608355547867931270618696578849273918915862524732328939675217292821862964542232342484224938302214374876075013328335616882914692493852614865395128106845739618572367657826037737192054825096845747603314592295696028040918863341513993880695122762406902345144207377310629799823616885625399032637977863128651388939482018176583430086863021135094211012921156560655486707384722142045694946277397507272010577430632401328796075910419485316934357329942747224481785956478204502070046342132996353615522266222775808435820812447707819164809521196501842757635494253141535793959895866598669804229058543476664931882987007346919306815006993926865965588564118196738873751494032596946880345224950133476302994203519769763807911573809555962557428321408320398178719683142196958366063418605635270020116296111413573893702248080173193764546085463517560957728232405944347678702991455022765295449095450374812169005653724752027341538551592376809912363720972330728974367634580997437248069562207596021837266039503662292906763865980831003785333517309735191687926498588162630562819650926454893419592718076410657670821693985246529791826439739816320886024970624550712872985278076925836140618939769296110771135130740781688181697177240678158255908361283637708203166150194928433802967949744861689889483261322886367631022965633279920443139861283814607816587183380988300874627156009768234418458098837453109219916986456304094443783761085526223890015609314189685737064982798153034723281494597891437385792488603201412145220435190885322293704381640875335571080474286460928998555623082112650322796720829853285195002550875921842344362371383838452685379280411231999447251623348256500108784875258725143184234481245295561959616329740528445582530721939016304307051781889592588639936253009276716189938230516362496857467444592845508309039986743375659342750106788914740275187311285397425948908962525616819080387111356458657512960399512323542043107217233859000699217738960257651911863995732203110909496517389118538016729186270209306388848075506938718120039015404680261780389877376794962697404929066060154915001029856677210723871231841958588348647993265470878044841429938460849585708674228820091042593007471720412619735972902679592626907550381777240664726170864199599231751548402637159859105523347634133318106015018037620628539668547895833193338175378564824631797129364172138572837531219308673735484469199107543422620621540705992946293028499416865445476215813881277545903611293927693704603057136666097676082462563575715350981498860644890013881369711537574611007349318195221332395313250170334085052539526287180489928311729444306757429463217130196162462523416458372202884511205471665963196799138506350398786110473810560457212278735450070065607945364691179981283950807536562406540203625615072444809061056369068112526650110771832923742446964141549155300419110631662376441023072320872456913713644095583969768137881491194672023479651481147467251080438676428025138000336257801000105996963511418847314167527047779272918435223787522238413095307331092334649857307859073513403489719163718984679002897704690371750179994812018798469996194449229241183972445793053983635156707444136579291070638217851487067064580890547392993734459349150873492098112374135563067196331656517506185832212183033492943635730417925810530441799216414085046175656145744763031214866131001559409460565156721483181287152318511583726750435828326466878791675495693031303213671331405138659181171113423369628784891207022486608003228589246067617101562715211802291899144162969451052163725433659415641963317605104949523831795206643121899772390470595079923745776027931321584713066543332531749365328446332426835926873658692767574635105921853586132470864297942275556931043447308440878576113314437378245873392013559609861621187043593952016305577671876431617061159659804757404704755324652736178880994280022231976769775694372470083900918413875785927696846670093668425483399613503377200832829448913009405594529451732175868276307342762897457797444815869979859487185229050852880556057038110372723411638866910496993300222101110985409529268375499464437480808782089270908073198474000125630494677222908808329064537619177141403902823757484189390817606073825297081082204237841970695252883479938654021988966186162406352106805779458794526009777913097363247279597778299303802529701417783048710094903714234109879369958488517098005183111576630895360564808188168512540930095057885876645476475017354398637077523593537846560771874643243886263134040672949550240858239518916503702708613016394119381292606272318615206402658018426809490874431464288814014564362985230317885398743542078295902715015961108641872381785306089984966470423760875129094185833729733256865585657625065735872706873831785308062612807397803483457298283022186648165878760070939053057711319033216043078157507072499105594154982894222587942506967578431037207961845550402511069105821277489528072918288385605234592244019165530073691326145596032714347845912036507518959027066219475627305379051212785256835468178644557721696756286563811106310901190393835570074018515639847522597839764430529450103345588277658528367055022757681723600267164799639227126384283660181355131455141557743110300938492920071443762611749732144370348337746102638092218288316519170434667749289145453473702331124661876031577175386134882666842486230460870596334980869705378084365192589697901766901557021023509719067760554345075243957567598818063053305279250260589680509208791298182307146849809975756302673326891131458975093318615723664327136704513577159361086110834077008777495116316428612986620817849707079583973356059664042765140223123488633722844345865614425384997034808675783718475342509932324657240545959467937915838640393204493164737484438728157070915412015010137200089735916641436122353945433145318086233871854488247277545453814245857239215312749421476753640692618880950575314100729907931237148984964076412815366578168453109326729882125286877973742447963414555428760472898473621897675158130086090230286610563479743950836025084054464214979274025433157923554507907339777039332781194794113762064493299584190281444166435800133670983029592405317498286077672474251111984324226732809486584513943550990073321611175117921354111206454126568346417156131961540371250090067993442307926021852573892467464704563513524809526354009536282068654185744224114108764248624384472126892158069048172743581523311827065562797876176517919075128954196281318093181464610967799763219430974579564693226452134747436765155674260191703344389545525648128198302553805363410470542767737008211515202191248050508424261622792365284906656693476229338156532893195754064895970284533649329106792996207418936379167622699134144739362045026985940117967149889904386126409326382625033402890965816205562773766898782309984249373161900833604833963722814181070981722819192974940956950237406862724222182218494740364719463463376321502486422197628384803199121507221176612293536633872153827516997832686977163635069329455952791557514350379108201422688053285094109082727935093451356613230871657418642320012936218249358890932642823430069148310556292117187600637204088112867977496153275609803491833008099011633103419179961684828976085702129431030757405743498546929041420211756125422705016908352684381861051791023059086014657930548691408812795467126554738029676519165685808819469527747434706567368355585118537103975513825520466548127067610678417530709092789256146655963181959521661460642901127257275569831794152965738013434882804248949050628040409824974406210645735083607845289663695914219735360490978475497652605517131981093662154351919697889775159413685511182762596437708854507327231486343559218325240756017038229887191167458806004182707351195714670904687991897057792763772267521691650969106044269779999202256798535920889628494168032987925545769755813565208064416211054827233487004255301180259963338376616888719575152077913877943494778263917940548054492959985360948759408998222641218446003868612395197974423249781151363118391351031932546699810776558660789904395136670656368235747021730078265234376113366107638730500925071220147478339757657869266538861627591775434829341500693890430848749874369298722801981272014567583384442901569760267437728264432240886686040848523489883559961027035274260766730007325247417898913855394003212960568610399843373303661557020948327361712036696556061216458476011178548996759800421949111608955755465470236479013966170693957496489062521305708880855248294326698244039528553447600366107830493406549631027703072221056859412592873002639087464666371428592132949978481118486298871305927913367131022578057747663391333004378979040589990245637444666083824841702866846719051031226622411288696906650123434810739660537930323527058078991144308669116951384762719612504032291116023523603721393619287691934825869291580290424343875675233659473243735422936569125468591609505648001690151121672710443885193875779478461258022532993728883138163980110700360348999876527582375800743325574467821111457896504112625572553983112942443107764030508553299083243528339758346910662210359442369069029182015186935346734734115915836547477564947719630831822029504844312353172397515500384319823259137820767267882492347603053517794674352317055932495505868409936812330175756241178827010426289100463444672614296379336909784192668627873013267834175234505131389064096141091144855528813062604482926945022970146049738339152563563914632570832625199834210765948984463173139119979120160045634121418721711683113716097772116501832531792820553989472201348066138417176575302699430764009699110264035708649232493708017878943291706544150111815758581660910543666115599242927495644277840066226375140920003040355494324680282214533404258488487853444257770721231464980144704778673417368117929873757977493966551983714255333422633967768202635274700816171666425998607790514243425658577446005652685136723597767448372665765679663316250056608095336177148495248315201779415417829968790890285805636087544143650300337954772814685994364661218585962707947672263581476769101646185355279132259789496095953011192049921396571801776829450217915095861609774393806479825964148242051390463483428537497654002436952385893221865488055776541904766870317041075527090616852287356987280392790312931050025408714601108864596598212170266365318970255618413550939150963090509636967850019657161054174942738302440342144745788702537117921773354826216987055315562768336615010823844132625396167104222525366567712917165243984744092533743245686013288592904457915566391280023966771805496990023859888740459877079156767715408623876049059175719493219651488857700753420450350512104796235039416480735045907754485502208283966371912540551039220368070764710146339856464589782204203708522058408359260621052236013887364829853307378936591704995588403553191570450889686091660732081160196917460346839136078787732095693026456937140638815193330477808277547240389816752423530469210210008534277001498982708540198763029963031528961577101259261889030301021857898882248707637195790940179238046740963903097694075795911127658628676707928388632153998192985791435038116524620631832801501254842144650510814624871397275849891419256414172187486079372933263796254184691688743620701296646265587875451946310360009224870945102934222515915306453626760307471731302860154854967610395480444388480815627253513788541110435512859821861873292913021110082572006972977454400519000465306646628844396382054461744624539492305935364293020373883533212384152384681914979186196714441760682602218453778583758555279847500666581098971872943717144131509038476204871078875343071391944681717667830011326606340469933561568788387707829964254875905503757495220836975117849619351727075366224233623086281605916198610521135262382726294696994125862478817879636799679657821808684937364043980166154786036193436710068135911207332362638267687825223658316191714837688107293545513279315928461788513167702722333487378144933443374979608648804083331930380938527210682502374662844410600212250362645797709708922494043692751940571779952427211054671779126912461257935607948070627258544820068506704371032654664788361111950462685553472124602560848473636936871060381738684555837157133349671958711583705234369789838745012861929278678485818005529275755843815790364819113097984659895556346243396738981086318932697756045485995834441745224308771700055617742638610508137620881218629609584517977392475928094324833874569865219501621948091752785152571900213684984795533856347359841185065795942932238737995080407264696215952986347500013940340834946611584831025550360037563934015194534354711089202256016701905009969154904386176612481637686293765883226546276645770380013623418444840264498834065477909625968621916060562871290002525461965733703497345200163564610667693672491810860121404519278958277863334796869016537110479473902719557123061591614442420627655616696224950111526152654577995902720922247988235536966579328134768993554796206074694817775586564944380027784027174861009058302380845574901834620961836715232337904883998399246763096648669922170171565402332406892452662626313143389177745508768680152125149811519840896213017600856806078884656753386688798298754127915274318363111433609014720767035032672977384575542037371812937878875984313304735337452117106764480833500345459445420841115590319870865238965581413627425981487788951031913885173448205906581257994064221483101278697526941683762469234385671208604377192973962777148873756478713609485713890420534953752504801318237736166778903588596757304397267184193371202289116277724706591275252032296500879950329454848232724885195652288792840598009357795037738176979578290214259535104100307816042402089778247001248512643039860087327450778299390323724083268036651031369347492513864651025327634278436501386015048393049157641410982321573300396552265046452040733096432475582014164989371716993402911402743622880946893139511952526401373201864952899763067426809616422855008793553616562576911988785386761425230547899493861851201421905394122055245388852299404712199667949701410945394547998734494834027178401742118155910868451833881509606951209663823750589905700277443516971186381474047819697487849087272814378917656529717617873847524058965526909445912597497599633794181094581282785112146341450854488949621370224627292422085730296259570652885324220576873216561315948098945228657245005856628759314254476086875937227834435475033837904863997357575031389647073364635619016157887711971910830335988739720387998125439405746962624296376661281129596240802581676340487061188043277665767300163606377738351830654847490683114906570857878117370794737411348392584476155761126992584459082813277632919468026261847148315226407102564027409251470843964838219679219022442111208920342550636039033708479094545772374335228195351696388102752156176898819971559075167931433817559864032631743035976128095462663983835686748889260677035265243813302066117345715935038254811586641848308720484237715355565514930463042215525897657106957484521476038158746501625893145955004357131318843203514456009224358153315962430636471854965913753429349764061164092092735702843260950697573246176274647082729256987657106094695598497857314698937722668441411165316021980173173663986322072122083613657727604395873113621053790902327188307152184593849045118266999831697320003314705492763894435706233009607797622293516023044851524962368835445586406122003176135135169031359865346872758502578932703844803905272334438345179042703379361538091751822860952494261290206402801297730090086682199538877109276300699673113108567177533115959779555115898498203229909084000216525855262210237384069173957050305877242298255374160969635339404841583958112197006300774565458177923540190530612500047124157513424684522799623848746267893493367654307400520856043229335109973208755917314524193087049465993591534580070487079019536321382198611713986505326958758246531820935813860093235539264007858065162093686964580294793455577074065142409454565871596389633846795641235570721822028053220209669079596102646670393524101689205079505365261290655531993713674436147862313173881024913462027466749622845477472481974863624382101072427715132189915340070214860399588527049666123254468232095088597975542490690300643052965040808067443721281245469770131966595348963891862342355141636783504980669416440472821556305155289071802908616968666023044857392805594886872341788710286353887596205159820876188242124606306450051986479683417187782303252428699059413337089290166037208914179028632378538767822546120351787270683784500713136910362475709100563761298305669940326651106484093718109871263968984467305476605815751265072781764044344026464594742819940938472656684844510389843202571288858023141206969407973677736004954745968920424983669035690120508260393375332411011119049458106500997395814901788816301756308786584077593236080919744802694009707721640115799656965058165694512614070064251625787655685781271381003320693942431299811117244596602355794986268319389303388286815641440405692252407045721825528831579154666307323013804190553699043176565759920490001301148761779391847638862398234410211450649495972371143914448833551812991242249795144911078757272159608648353923976858778896996665359304618075532416167120867692461453209821285747651535867491783362580722616150918550611551739538962745592289017921274318448721857074546844678778169099697368756124326327934787673601299552206962414665459820097385325711086553610424960416250644769131563244165248372898185118763726545643418826863580671180025208053814480720148426753987213638450512569405151866760221393078159359420497252648841029499169778916925289881581841259804222224989148328077943746354321260852547277731610881874277253408356011256508943293397245156702709751357759624402079623226470534006485310698484986061558526201256957936863067704949400871882105870558883598096148211631343217324511166415173370149155540755163695894542649412387786433043167699828171748962453661104727260535822855268987708673989172148611751464605219261105045322414290250763468714573738160582452020929886884475218767189454420868699530337889308146627154156177362539632694380667770487162765500220314770938530700357373362961011568267108395531203089345141942410357100346952965933266800913396793133145869820521606111606293221800937357781462389740611208981368737877330374558421382446906607595836764211271327237719575460019246196592198770777605873775043330786432848324048534342187699614247239819764195031527117434347940432257520279006527661100691905498051954977016866369190972447191047286322646223805489347344014104055170671145083993825551187920615687410935796423448918970015074269919108763207054439759931321130740772111636424535924795086049236233128483116928752635480731825946224023451986727279546659679309604316264977133559935304916260810714519254221852039438266668629897321126954863423159144699356562863268718234324124016699901282478796405737143480621926948359444074386533879198293466656156174509619025581415151610623502786570796788850052648791071632120606614501885758394622274684553759167251598258795884137616266205140541904570469308983360118199983367581010477906723576351889770407652449627997848396579534153486976663623406075277487194736644632939018878708271522569023505226443068505938570254109611528372759721526316226235629124212512840092868505093730806997796124907571921838599237802075035103276930133502267488920170754739786000520480072827791535346164830840584085764878424114250484411528456119397357815439817436185558194600911774452158755378198858254445699354265191082546677019187087798463317069779775694543111096795587041279038073276752271808948997303596361926918576493419743922235148086389827344554268611527380854978422771071579316394295694655095555508649843598766212082779411434938401734414889824172088277264226770970220151082603239395480595738968467997225706893396009947961315047231910505778404583438042348449707988846104661820753097250962236835178113485625038018818787637823145624574944721669244723050284610800795143339439512878784853176224714154520414608825384456715461685867565793248304441813920227790269167714618669567786035725203136595725172985663482401180098215270314847358226277400449752055988909581641958627777870865770637397015630446234219522945467383600871687189446955995906674489162188652241657031342702663128057315982408017419679820430835493292724941993669384893204497853606689229808412462278731509462773094181777152358453687175039856871207919404765834832904272433680605125126912489624830991601991368367330486119967184440611980456239810955281248778259076586386016240382368213902067513425600566305167736368997857092034145623744865062788637500179185226294417020624473409541698148874850745413592952649584328510431882932491675799790214828694839987806034268190316218775855325825317680328581120751934140570529660795430538605563919457182127905001134372092728485639816821318490268157481427667409463301395860559072916954395676922594261816392267401035997287248072572111526703738339851981458653259168111031126839931340521324152334373661896470041424747787049550818209859255930283103180198805284701568463419317602340431168148046870562657145905098751221269499832869442517893660822997905130722304424154443693562161923464056995545478195220343818505418874111582329061964815221469026567903993037656642832548014559937011555109160623901900214317980960955478718188692317385352132811151193059551901132509578386494091901671835483462910144972982050423746389852766868694090797047082610036601942842103518670431997579632188471039979839678393185359293997464694625744458221783450780414080940935196743662776040071213195552052471334856541262007300847831365201279574573687803993616586362492913386705025347296734779054173301274794872524837146314730292864204308708584498797430820721863952479150009666778797099611837137050502925860113916903357302592592758715016690392128980128874763956287723914061585164411207404224135487228498243355580318030486600772085756663147087708069036490314631391176510333693361083929916287451370198097485646559861732607069085745506292659125523037529948140775534423868693054984958892100052767856162298835830784867554831789790305084133063074919171178636417415745085243156003465592212348131018490381021426697107999015400125069806706862412930987026576718362935837383076353960897523673156843048245809331595446678300826681008156058146503570311023497552984188266588794892379288063859362848949690786917234923389382868847920473962024926797274781417134015254423803063649343136504607584765037684813062521235014612701026668939680615190838843346514765286553877154832617291333113771845229323420490499060465084302152839528385583218408352313911065275390575721482095459848808538818224878963217638261571613489761591296521555359218087892642431905773797185922382234215893042894245800618741700363041893260202010837998074226883845871542678473838209474323485509312153695922552394654281931291779615664722840058805534660905881261035610704340844009823906042364406836540860012887350307241386627971332096379458781462150631132398140608725009905319399636276135707080161701741244620626010738752789356400629524330698942214835925435643130449883310711291736136871268680797553864285259862871067957317831286349915640259966040476391439190385491652042177773205686570230029667495711373210324883375509710139836082323388862354234711272267856241171034279259138763553392164588137321756193487863365898191174187817458160804168644109951138520635966909477104444756806719275940738426722340828432177746127889277016945216597992531902552682949720812653857872935524352472851166086975521115050389797059724079599854871401592685101752960797395454038264346269683081652540539086240585073920803150947235668701187852288675476882745267029422254405161445258332359105928716377380587350019591829408238644157859269027836974893784570867170003033274208327688817281998463387671512556249809586313161626177637099380306405945657931277240908822459619747934806109657838415201481309438814410388477728915094490412733140462361215633793463821240908602764124779139367515696448905912044825615696240003329492643453210269992707443546334492382345549015229949888685428543234082875803964343480226378161222612419605684641273226761886745544862652457422715036270950689403812668192026484671418457729057536553821571465512378213097721586290625038651032824442781598867203608279082520223065765082207695447156193538708240004888794178233483406890830271867928627810353108081300835890496588838086661582668160792831329678028719200139691628144156861730780479137623933994284786039977245705245186285266264937110230684339377498883470709401860749707335486504742028328048347311820280107574807207143502466706788879784781230810184350572680301213201844063605173799938134395125925627634015768231053170854752708431783418665923787348736242103021860582507479868005712137155195807112137476101819469267159402071714690815425886301863895382057882837980701347969734776862021375574807889021021365292972205025326530475360937691651638133025437056265217679384299105411428997872793496087675241222520830258008755555144388089479149577561370935818463030112361435443749593491762326438522753480955010485869828610225900250394613776934722523257568067879169652035579862121809513953497878914218932714154196995892904684581519580232059534345840782482258276319452579574996426407965169718728500970514910285608734884811868743369805559015696597529564804636096335329024132287523613453884558045893682284298243586853841207935335246933337781980426694761018538460208486312253788968513511238242529268086946431377968454680475930471599854286665302416912323313721877122011816863840540613637584800075729363033035755113313493220053288426674792462628881641381168459319305402391932682396399463290553877499924767575585061553379320973784107396636718532403454172134832833435980138274351384656059640485553054396240563448116187710395415911150310831917868652273920600688609152901065966693401067860470272688226906395779574801051558094948604322973346565011267399239798544507138340881010291627978622053783508939367868762001736533278646499368944099785341007534772176673553590216504013393566607924605493560434556383553061599971068824118999199939131439205497832012840899615902840594637018223123316341105391317470495232490470267892327613652977250859380176903612479360184498674559165654540929099442248676607106194788989202855925902400765104359747995689041804993671322402267569702264426979617315045089222335168431162022049147078574551474764359509181709593942711278311221993844145775653585426995132049986716522865927345619125601106800261922173688910968171094128565957260211662639609520878705488759314883941017996346334483728099899945829222548418900438654397977524468439570147929070046441788906627923250932489060347765517769810101550084680606443245469208422147879150619368273459222241791043350870869576650952958549268233404823254829249060839030193848458990853469955358309332244471102183706042131454158163221326311399101452693195962056227943350268235523331494145068773985527141096807748836042425312705715702295079032098716105403289617366810465795388042435935142292098929267632373445925446825792223254012981254797340782926106542160746564038775961665293129737468848675403952979017994163320408486521887213385285455105960289450588078521551424685899183213890944623015442877700030477399575037508631498322828476948387697822526839880520750922133348562718684054764704114897440242850261820617278205116395620731219051311424533769800120957844194892733972932840682879032141317857242159802548652457847567813205809201900181880309335243551483372555243835679590282601456145853678829762579935474051401716443049576891411535966997035558278504517356551071197721068831309116788761563270617441946882221164707985892560212853515108661133521427176588340579746071626013296187142289100451939078955212056557097855334763446395003857347126386131072465744513319349606806917542364366198610376491766836202928141188025206289884565875046705428398682458664542110609599979417741713243551700159459805268332728063292575850426128439677969859922807433845234702295029124044559394517061631339410571772860808700089612545400918928664846412949229703559603704287178119084269255955947789884290914709648593569685840612247023652507278679408823243415481267677586801523932672097463687825135050051889579281858242943543590568778239286255312256063735534840135279063885384424456570178786427188017188115271687724676013035799413749120903993737367745160511758117273393253984604711180300653539326539333981421360736705851232232223560839812615433388912783128384104987993017905822748145217334253329070810316431507958402404306175606949076593638873697207183002765689377775589761358341018832282451715697811159266535938485116135910476597633660038226356478871751916377994674254183253905147808262352534270486364294348206823746439724597767385641636258184096303522277071989346724144100684604374969722686499730139250017023880834176362646085199417534534773558984326897014425145904032109425302321809720186073980773857117269348359575670966363485901625373208928660801621779911156156305318080581503147401160530618512642873673050972243987737622503032031880647641309617404627993121912235863360555068374990584503814746491042297641101062292698654951549115277079393269902646827155386729698123146370080421259208860140747162248986164349883652322052820271807446417750279753986999336287337913636966926399621850173104081556650758986554779082425453733332568534016830750666344610614876462988227273525802622419466789790969604041025747767443446787770064998666901226419279818796059790306527333599877870118418796843677827144210905754186940099593007617181614194139673657795940073429803386718395509019376775574618280141506824915099384578969557217836161145963472258216023424100836198924643898018920319427451326349427776786614231266437824275570203642804089959429200042961357663327117605994104107462700097270468532190300663355311841010279150444251421175753337198903294003685379051793526796019157623179497621699981254285109273115773654356344804214098322579436163077112707226611244888490082505542150954840892315193666110526314454149809465599213398360682743372671493626346335395795224663319504530579959868339576159409310431417183071632552249291491733961190621422656456082822628161617803373110297420564682452913555701238555225208857399464658874580673540131828253273484250574778239485359577418076042404320794764011611559369930202327434737731836128878708338454638929907472155204087591092340145461952520338581573615781861833934415551809105969284416686882790234613869710087307006393977492329443446967227165694464117422918161997511634380715362070612901213130489160131243127220004654552736347212461892270694113516120225769459375069878404126499073864446354948483481243168320777990392192446435726392103855834329584754647959704350288559358687437303333248500093033696477208293411695706581422930584254157396835931997817190717055222781700685727517376921935644251872442778793076565899782386806278090017044794603944976586645165349973354591844129501915965970271301347760060294470611688727301161981096305136114264484223165083699729605310626588697356088972911166016266183796723146994527990265447333945954342340782132630536601159022535346403496178416762126150937930399338449188312534824976923945901518432215547405660156153289588535368301560667049035590269772995436327930105645038160409613881103077565420926600409078492400694863405856721951614239253219019266991668575831318946586897897907086103921787109247700858367431345637892498517956283473915918263073141739190615486463292987942438411641709995856691417833158926055346571035967593201966413059744700187326698172465320429547558298513107230077495225019997320688470131359817912667988111361396222751338468999521833374212067280143889203994102530903009443454212785599052035893813069131435459016153327621705744495697924840774094197551059786129840839693769009669601761556058165832740622754989572426228110737958332595014753842447160333379224818097903346842678009701638392574445287900994519720669151451879152276526476153673351494830401102567715056895071638895236113565439760496689948647824413156063303565396035084382982464274774758647452005418460289793115265556922076819798990839323063536135372408422993114763988386672043287358076286479758698497425589659634876628604674236715320224345124509701187858810236739752899459540739108930756369114945465108130651117875654503289133932074600177657684918211077804363669854220536756196308424692456173664825849017902104279908935246033219375725137084369578228708400024635944873163057987432461094405193275190477991374882419106026258899082926277569810556294146055193406164037861546488030794209827247570997930653501368786844358113040548207132593254134267858214033546774467212987926760198474144570772502019731976972822299566571104113678619984198151716803279239692427248875647649464681151550611730977553431309953664996502510172241530963884708474035377447339726290806332996277832723262335740512343750449849971748090752964952987995412170358234116846216307458692709092546002985999266114923778686945696123498575271843055856069019250311857979122362607617735205839949698104419436334860255707777840275559356819064614726754220651803578865025270220025936621817737975656380153139529889832918064470818279282516029060544788205121975428806621802745677112261252210536549941715009390990705536287421719003542135861485875343175626177858934149636680779269118956416046005157112819785437026518740911865388116303699519368038040277547453664310725059209579339782146610399643854123868893856392289801677600247057151624871945581972896202305282228786370097259805373363766627807036239052455841057756994835171863416885169535053229636730857325355088109627427349242971986069318759546154384815730635928922806615651408901262240059106986343514737784363178086506844375263273112860299451330289679345838550946069408305920699643741581282336118149439656934951920226344699359937529760796359018682975667054855592054274019771433316825245146839981475087753131957862828887787067092441625185723401698096357156766825758985939853351018924579122032553920692644474121141402880066513014542916187947342955400140630320176096713996825370698110032314533996201974754196747112946497057798427128657509624694931637265372682929979275908459795573904065861664396310821407005323948389911793943344512512978875112261510988473165242058250251935149403318515839504742430445261356183313306518183856993096897708297307803046273146134143080909797023434415988970359131835896162191076287278857366040720261185970036951520130089227012969060338626526784899151365009023428853830257986136337261263385182073867104902464983790277562980685754575765275245001663386550486281242680592543057159743205987975136908156611281527450735694338261747740529816318851865899263578710735769946725156006816300547175966835755728555776117173640380322250075912850937220960682170647413499189630199528824120098816798686098987213531336466827547828229802824713492430845073300025499416573817655169312234067868199991621124223993021245873663423370952012899612665818985305028315374645465087449938469370934405111425065723676269515374980430359151328405853377909037127354637291243006689248038101847093770623609719307035390763598412037501439281235884464391675164225369459375880888944483590841871520212198883179774436320144712177063651423500692678013812940458068913826793221723824631182358457499212850107406219844943892789736650589286284026723253061391555538610919692959485035907074921147248796549383733168270582633675024142468065119658841246689741775860889816138746633176190024972608992947004668823450438544443175677411575056579963677400929912603610196908292716397908427676848111590903359278325041296796148271450177465203153599292807609961797842184237470080821003683070350330540976166571526938584292337916542025812047118975423516538923920240980245935924635591538665759563087974912371321541763125660346439743332147875427565553614684198953456416468935863267148752999197603096273609724978228006981811764646727527304325943600900440445949113974074058426155974131510311974575222099077510792327008505669938541649642369595707128029795857975485736757997347961617892533422300320405111099409520939805460470604072852788599189407728288066147389347634791102704247713526867845640221272712267958124871647032595880954072207697731039288420783437446774404436878321298370914652257459182588967414273893240003367065881305099693884111877727593567408402299796174206577902297132675225889821175737403930056932677879743565451624838334529037137055955089027431398883314648557619852936509722985672446626042511333090672430173718763396604582631135551917118209607853630339676428027154295229696168954029115522903606536767029757559805220403514886330213588351770862731359793114470006821093362472406331745165593821963188222112929427025239631609297084429491536712744488371313049546331688585358706296382311597551891536038442431059929787155384967220776197254624177201112593070273222980092563628337789594967165514028873351129976875419737791892576026766083933717596269233814061241047213549144394525033496312148299221967756501921807255822033391747861732036883915713178347607944513803516042599728716984300757347333314466777864214174964404946555813312542108620418694890070008073169112976851430550697471437428177290645998553537105959419749658109088794698384655368394536070983441722049535733581564756175777984757389215420195285983409249883172575884143538128851942667103815501594639163529722695818891350342410732395784622447985321967694633178697911919243116343642300249372766685959385222563203354923300271613529140910607728807263762257138200363025544562944531306623277798467928423934543205047588018193751368090472333626942431220209865957587836236024597568195334283723226430610846515634262209108135479119710005978464238283341509879285501589367760469954731768960721321510987491714757524515888120668893821042872630669144119545614701860429830967841853029861781657540062016840058421047951164387583861964017630928396175358282151336134770920050013285346601196229240159333136890166116314700729992386014850463363234788771202852418436969848296649934989326144364341892874164881975443560731771880132591753425253880187439241989066214718669291995559226533661033345861749782825525794194713172900470937303430448241212439762643770695948221200455112788647872301690287004717622167278213491778642006264257190514949047563994123720264670914028752381099368723523200925157130924063272310696349309909481964883605336315814388980852004969375343435818765912658554855443220351446388192414911887492082252887770131877138708026024807288675305136322321735570193662867420671889286485103915664015914533520864656095273810639014606155940133749003142456863599637980426977564998206123073222042461181074686616585660476180981925767577617047191802352959306126095089368557306899483851824500574200259563578849639249725278181491808537019867236734235762863790375379626017341139513756819360102271044807914132477340466121287657714573406368027458213519236719438594419975091702468237358092334964762033476508194769769672336995040529965861476009522087206701834206552347204967580214143055146832553334099201914284618313964599517669935660924349211772800189440159068260197235026351566328190375219221836439994750654912091662775185150559408126076878172137440972522276556153959568404962925168667020239800387685913235614468345472601400610750068210188975343034358087975934496500107046152105962853478946823389615197555644094159319627415936308556268339362571260565258930051663344329453566557073534536321529527397827260080885726362616618677379965627730358427166764093928985976927348555679700551419894817070457540612955671579373584822513679126975809529326400049576727563991345001406952799709046812967420651572120697120219823297603323402261539930716634283621990685607637344617911627831843662950287388344380139897736186881427849803903901951560738265961581086785680054442403525203468066501792344184893749177188694435937016952295285951646227135472104742059440122752491065122736954343802344928884404408535214396613791493581077791686511942298595983020924546571152078305711146158582996586848944931593522671338626293107227140926397144238581726346268526756160004099636878686351004845104264038432507880263524936719992236850370359659599090927755486409040064957586895604542394027560899098216923788491393254695163367890751650593611331792289572671379633638598996170260054140822776523296517833707950035047604666306693844515203028286580652478814012734776167306364855480833612579891236219174743645654614802056700414421953278954078626109397075655663519210487300104768327090812494509211924638637154705811552119081503941697212459513175883523496541985148584404653948755785417021301118004419253652333014458372704682286979552511224774934562079309310667462295614275554283870835554009422595644669806082230894238324472894053874434541441768550609947146463512856416539000125928030535167948793652478255804276480915896728467456577634219751009062161822489612979699950404061901898285300281403128873079624086552684807369700789095436134956240516275882402815183348637224762046318499579070956799720617218447357870082400205623809312723540825969170655121032284313262627365886516086750680600055690802454638035157730773507467991570182738883322998276740845766952015604878443588675788101920412632280420516481510866005212025102952445120936511471111119215730751988597429344522057294675317170136900729000098178950977710973004747219904348694269658627580255856788173753927245163838639447643584918104640846454646422279906119249228038943956131249144348387174060403607887294690232723400516327407849709944557985429703420662311895881202360867952890306973304205954808428538567666416734588252803457262006102758126526989615230193576649077035392046074190294097831230301696119653823898014871153892573930024025104799488854102854938991498862607217607175054278009451678942444929097809359038254451747415386691947021686021542789249078430403283334348490121609346558504040376088854093267276111913354936085154545816627179913024981756918437905190062853325209708576464056187542288638968782944420549530015305775992533608887552627663724126011757322126380608622085074044791032469933936829803347731415667822178190326926035343033580952344496130468634032268616381337010344825968718373598173710624574367482409702464661149978023600691191051252943177362877914985768164119457026175093970410057934964545310717863321500819883229749453169896752327649506723169836102741910775725403399933938652306475102036331088688624033633583121563219306856582965920840010603889092290119311588126420864281324798518408508646506891346618421218428964401518964634604925904185492712535916825640727800187869725183474341224853504061237480405483669086367172648411767436058411034236896721851544773120524933977845993773601093766111430929037321660266633820825709022883284222787623207441779881051737662065469612834047298589451683519511411075019266641986444453699109079033157172525318870290753456845506019999995412914413929018235356121661847857270327126044282685562063659591469160552629873109149940558984822459419448213705151755238941813536272405373003761608916850762426733481370237905337830921086421065748391753255085623623707335193369477769532438758476867935114015415009441249561121466508741894275624861327497026912898309541334534011914135503624878014664479970256964768094295149231582988694994933673124612009268807487993634133213474737078682450450885124552799914552558013852796013413039135488083690908727325267864211002681658438134674645923596599065010348167885028804299829323185913059494033911428009528926609522714157503449979169018855629415909088585623845905914707055490531418368281891681683105583218709899537811895147779300372895962831051346036101685101421863554496335549347202771607657208277959677196844675467421947438408272721038465509027345352828674462464989206505667008056550574166441993564913855121704044957132545362799269514227351885547289701048226053643947850064268723471885461450293403545063783404592627388238436741164411095104168553194686739371459387477382416970979028689975227722666216632438609141399626042495232560135948378477973126145324196264856003372395400512971257633005664801745608547194581135862520884657269959167660492533590812582354316025238552549013480500090429774125192249255225151825137387011887534343394926264407311586035447331234493993928634877960989738043014319903759781022729171504763095000057287048881893804926256141932850500049037154796784972429679732566740488067337282486464051095721549877068022530785668486337660538935232980310286970151683893009422038805157711006914843998060859743404201505979746927604261587862440869644219218983078986879574227036461303155957792848187835934553376330858506313310452278188364172394677648629901784432889448081384216525598554236749015773414359385916675575920801906910106357163254002225934287087586268916892781946271695716143159686645578704473185864693215662302040283081910638442384221073799649057387948957607834473601328968977363479908700105254440319776410871078722375935153371980314456025742704330206926012654558187188423387147144994404126403245264973137827285047675999341384312154616334575877987108881996244897767551128101875125141092256764653309157349034825657744582710857873337172239215638753259186770434559620686441959836620951770061394344382233423756769603855786197753461977631392224939396653093003723162325234583452177444454534850879126987424021791893558708072890059210114657516502983108509317534575400073903138316841383073014801465791860983457363569185691311090046074830600881758779824744578386080103332566755719163723127598509711741454839736895101086355977780034097724073498672855160117319765970211733553039267625759620329334552845526930542146615178549754162034611760853206733591518700852463281125227877188715949878175380004313679329996269050545051752401351939454432292409209784803237119729833866360523876438069332390276551003961277586441719424400746543167011978529119927629498516577846859413911462917342206241231099368322416088502287264175393630396009750558029538009642873982414160667764193829387245907360355847357478322795505552868746093876453932650751926204532577639301448580072225651558217698439282153299136922118354107842437333642522889949008469324262455390700727397842009974393080290075421015327967609405247404832304752156157917808087263819612195493391106355355223162323956849625941634505818893085785779804626885000213461115556597911502343895932303565239094851462890653244142661038490998777785253522822733061514288026813648526606671132119432999189126752557936653122271308169481148919084015495365553320120774498850195616966769045794116263885238832812064177333831926892681095120161199360755368141991762196971692591108418579517185543523834415122773708298643368825155583819627422885750169217294237299430520544090138047552308777069977763255182579186936033955262697395800801479530962744774508861034486806921808217592002490780552116773266522602586941960916929160407418642914557176287631250362826282555801977663041805450656115081430818818701604802015380533794862860052621373753688247227631956390195031802889768282316154705143917364296234839104864633330660115617833355983596473380395924295614170078657359216713404508343677338361016319888026550983781315954381527921916051991204031580959047277429058738027180891437774928204945392754273134150991634401517784241747698532939089580258462652970778140042280808451503991787217911746580803279084652738191345847925718084700681173068991129110556214126027210140714868803816734038508500118611990605104887335757308024131610063057075821945257608958955248515229227871328857309473520842462515210412996414243490229209503030112053301177103463203480392296493932922803401419927726283628576067948373735714597705485518543888213568023050781742029226094971975066559992081493518699427378325586284108638368962489434543851297918499159244923231065530535790431062850238302503886458963289109225870736780770740813510707679461178142345065530642796871713510091797017669762775585660962056794590093278032957309319093425398818057358854944541023680933975262577956967882972360090931432151466704374859791061151978038109271815594360780940045989708426632697189500535094491393441691742101077585042108192838134873409090758933763229612045021538945550271753603808136371272506237590322618351426296367327334667080337964209808232854340983445428541596372935045355237705796325044064892219459941687589028104305665196846252911633063387580110236014506019467565108451220029505519948161189495462490882711195548416154312832486910161005304755561105336117641321041711387784069362862807876597420552399317077584656647797497429947800593527210095819069253160404109741508687456913060402115116763743588984158890557545265976473455219538136407017700696381110750125803356889502379998237218392468044420950998542282784368142794096593748330410667014628737819705272919372477450762589224480853829992343757256035396610124369704795188730586965045642109766048567231937672369935857961430002498472882556549667177974877303294428478455586250201592290689001731408151341279943523957816883225138557682604615145809965134095463593730557632559112708540286259531037215319969437278065322920158718991250963201744257275686706604932155534646563564699896367715173671027363333197931756141347111992447009538965209646019795280552219981405028429415281802127698295754610199637132137618260795697153087942045391642395703734837876407374961751733050228849599336852416049733649365745046442495951815877491772309731387037810390330545277778447919285093782981203385450196555734093024737874996978554523299808266689575870762570068661136553088122365038877751279320750376014111009156063640492620427484938504135755933176458986667299990247579379325719994312632188027183191066778766613141121868802672973198469372295808203198525532217403585119119480163169033995966639463195543782422099591492520977530041672174558301290621423179578903355546983535905164596653376322556071794788045798889471814889829110733951549514907318365256102458592397745847613201504720891441863975171616650087626025551819141148318270245172693357275846457386327315662541284448621257033610374438684685419961969645971147107407198993948742808826424135332323198976496675094051242959988363486791124017920077776630053478701251930061919295936193117944916020053056741105611420624351288694261631077934817537596636256863609842772124639770274602383415289261675587424513675395906119551968469264345828229675498850692796320865673345826307237659075447158177442505623015463896848451053632621285445957000369922400351552279792732970909421989634971333653956756598896337240562100631838485412860627769885469388806095636167613762320852898694786858625412900937192180743958342667615197970930990477062278311650788382153368792259961263558913062171437261051255970235877570368089805831053181310134926784421167459356189390929365740327715413596713957550067752110467976533204410836489761806601774913156998463104930834752958126217588783462275649273852257899417144379710323552302904721996370601553368693097394565484073766533270039621597543095495106334381432925929436544156364555349815528088875495828126510934800728137614331006954127145932135934135645196510814789794283818846832086382184333580106370289319001029357781348637617630306496669488121164456278036991151989531413285482105077179116670429197263386277699181868318148386415273049117748649615733048170594829293161480673184764198717849841427111827694472676296776589320528188517723563479728351174831976764480475399859285055746586102974217678379833846938324394742597101338027041171225764649566581777159203489072719077480706051554406746498154526489744438203827875485743509883893617741254393349317083247427818331433219734837325873002421143868650223675488254596243310619839171243599471070800863675667570573890207722332970314772141247583061747266905643255074047292079600290832291101112477953726775452166734745428029040024671499491342023056436517187712170780650576389849014042478795724352819697474000957460905691425352277353046160737752975792423027745045131272426023781512308113432464224267799542928385410044290219657774132540558992407695512859153095727536955957268028952089906474361048249938441056008174936476936722949403209105203191321782774790484265071803304262405744138617988300959526266585783810860448970349150161922839961641275323145681166180378529422129363124359103677400690921536931663778299633677028544409509717258773508038474422094007468155998403209303126831143244178044161390522523919107268331204663073640106937178155046416994758445895877914557344881295676525864629263228178781400943806577395496184128913396367259872806355859128418226566897848986450438924560914110258308558253268783758211553767034752742461049095679744667166979648539618555209753400256394272408211468307894760976574179708122703791724326917401230911767568141029391271585844982850226359437545999686816450889475798247764250549537684085436383100827588584629138381924374584124905233020229541626241862194075504772602545399292153418797907558929045904011354500280000590458356716939941606837950589968184080419175904479437395148490306588212329579535070154625733310805615410381853954826400978530477713522121992862995165063630089199237208916291351418642077310755161659021019736102318836257660225512343238364149373566671240669587123815841798472307398662275580610570915708662436821849201146704055648654341298638012422404309252336316648873751513721092568302906674890357422210739815875977683717184118706965818388706468366648661081857869317151323550177316801760641195329960283887120570364805814363857958793353205996350311761818620467641257070207336291253089801898896830089675628206786587400791750588792649533404746285109604469328825789090368036158550773863012624917365378916733896408068234727860235110047437543644297215564726764189491995333752544026018754928210373435222570417267857678059583339357120002027276669935741791261968744403169152587091222058453291463134943059510168108778361467640632976103491599183057861233930492900892450015888953569237596846993481510338877099698996099240932847808537324018647718662318882729170194330946829048747063957088043814801001749547773556516437162549160459711179260069607248132353090631218653565302836683235775765538920412769337637033053075298308520131472124494933944258285556074812273964165686120227740084567268468590973121064337135664902050559144843036842733672034860324775164800840178207423112265019277436346437885766646083254040739441712375402911352447981439424631186767000052033388522652332789318037612985952437383878475039008685690911282675029607233818294560340116310529719001559010258980869635561810011816485073675724958987754248181097464292600408177547948721781008924797930973596081129029162971728501917046242203166611626195816560695962877410305635073528175727587842483832568478877809093332053524468511947254211494980433473502841131144290845034786399273844445100049965471814268719774385666628199855848569954402084283830005782567456280343276575708208794968248026262215668014798207292795334909275340117846740534921468723117761799379280005736315647755930861848204346148642514812164252767028740848195944364628493998652469556370409234622857383035807530058874967004852852894418682596851377409688279527041515629089268655983483298917186927148036775052828332773687951748224401658606614323613969017358842167411465756056057452027849593168402589260036493732257416428586370505844579973608858881476546113702710162570521928261094219784901295448577146610333745336048300222014042416549582526799346333059112675772396033553638487387434234168828707444208229686223020063703310819845771264709712457508658877687116185375332035280207436212517866404635009944913236029956016314737677027582106041990846652562052822778314488017984695497796401787976105532238141746939793713837272621734102118172104620134312665572976774497716825676456779386032622401175918704018605409790280165788914398417582566874217922532782100281102075055550110922743761684425450656631032585080518144988283345376100211839340491971215961448882868933034498391545189712636479263409123284941042264883417689018431724489938144742713840259152766553271979820724525068067530218960974996512139228913269269230675250526876289237019156531968797407243097028399394586250566533956348443105080763940773632208929261263957403040964787282058915102300571375229809730574636010299638853817500818656370623686001742291429184079108914008076498784476216307143318648727069580445851848451204479422825564328603790744426739197796620072422449552138305076321009256146495283788884590542669158610691991123261304625427230619925441185158589845649610835116676898658591127346520251792464016849840980681015258959908640741451811714285917034651306159719965387595737475442517833458538764251810687365623429449778981949772657500694294280137169164073884369131051689613235468028201877225542622900096813862477651538355565590102539134365946505743489939686727272803374275081599499576480147080323514826747981928704262479861088516041778997622001510888065457309970283420989335081932204720703058391686467116048318275569039986674641516641022675335591385701818162027225677038666396080170186473027547863638930776677175868740917695474514036115825737083620055990803182021045460131575085586082262636482570780408143855481722410698371018216254906099914916862278147438965669251284398143172648859297318134818189218650818054972838064906433764226547118043977577868980468594776535249563822564268686309813784444458056248420255509063386678427189773642217390317087667034157370940662834766096951503350207661592675906932328050156508455235963103410589408791540782233905228568064046830042415618067418856548460291785631181305524851310562075024258082102350645343314571712570026973047842277802306740289847681909455487250947645173238760697029560865630930820822742481259775758860943433492044486984024446508994388105287661603862340332324484541022758581393265247180826222186795763803399927069868583016172808349410699326062466247553481802518251370214189430949456969002822386281573444567791274812997500077742154339567608300735889321566331650581571761472441269342028170256552572523044359663724224449241619437054218496151376161729888780001731620092893516646782516090347481660161121583403483371261333824655165017654834330525353183315182823715024652445219753113728958849875677732919786545074208540718132651958373255971346687775115261226608060918380472798300193150185360538476782009010253244190522860664855392354960349430556340872910185094542506176000945517481320733084934783094289810842022457908310616161450561854718184659500478012734713373616438491559782993234994943071888127197280447147130119183529886800450111143803277561374872929340651339165382176011112388912754570832252604833519812896944465808884220634358668710046587992741053810499119860347209155267081691330154155753713822670459076991016705408976923669635560797644943597283531649062809516773724541144975703271312575856928937959853426338726606246524297775620285678631611751664365155787661298426201189856677944141206204496343458841596214480187855698955139029587298194014036469103581214256985350197102652796745199923062238943081028630362206857776151288628546001617664600602660086256162185455239688304197054318765806240785415648842992781998042001688993591047133611510416315236265990811584067751629853491392755590746134931007220443366652153871462314927810047846196346865866791846111575801327173312498836009491213846614356318898643297526424257115458381423195997311307628268901602624473841861802763837110353054600158708263809104656364622626373458718796670509867208822974364521801634317057580247940990047298409582072830746851178274471082626160304069754197017895945565892384498754998125283633684645869856913630627523298658113542895342334107636260276682950983566759763346120712593395968535033703803940564858026144938707278867761974814837466264741218670794005983398450658486186411285819613638050104458861372819895486411686886012468681788462940051547920362162951470038363257392157512938129171073657853337661763651329512329505633320095819287957774912499055379617717607517084794706623532797430792490789081181655920222689190102082968300970045187906395717190307319047184333722388996162872941165725627923250074127087860023375900722559814548435703740870448960943897118467454537135654840339476895011756157036407391880217317207117765753469507227629074376357345019586845747964081788144566208387600663763411539234124778730375530525939213311801581771862159120187582768899151364968197412899199384225751401985715640010264647882004732542779242646284148776539564102541423225345630069721434363246967082303557250399841407175878620012680633987634992639342409756370347841761735792403795696606923684494864227384474429444641384706971544217888950017242321928991380766824516642945434816428068452363332706292890390621382210365193952839006532164688860689508980573882713523589331082500121813365489646542521990956172174809851290346246294112487944357764080568804911940877810642454892028728368939135993651241937265204780725787696469185900763952088329774486600010821477627645045740218729215016232463416484862094397636145500644335332138704626452344657971454363285507868317596551551409840433232774165504363507059539846646887407449967412008135722265599815555409701780927949401258483477427942741757504115895721025027830199743511315681344657229055567792497535253904907378534259325139149593926961849040035699657025211560162567142225950126456076668714962372934059165779398387836792089864751444154380510591403811316498998202397685654102054237556991127690522014750838522394442065102454454583808214743964941157751456802785831408190150755307111536846089510564994353269436336985371312769414629845001656359096814164663070476053956878041435852625552493064611595299615389218547039794815922900675715505494278162758990094917676137162269946960440953534471556726792162170174326644203532237413002304279869974846027066697585658589837151335951762132194523630109200227866211857468592316141305855845830764795406258172312986945599001067432509285521115496765373088541569143400427010411841307954975708521682998843872926047936437605470175634709854783364394398915114557038175628107006694447973211769334172961559442525178803770576760846765997443576291590415826372994692226035358887403707827312838099983260162117760855497534633951135608464641659694184816552020468615201200498493934269013540158859991104902529848895919688534243066493449050256871168525290916933658959186426224805617611165848252364479887338893877936800268607139754423670709921846562516034092786351369692743947100412499836301611530829405748251246541096260245922590504290989600019713924489328975982088172715231753756298782084705357363539383082243316821138882580547533888703324596424417150938036500751617187025557660379472059705347860952216475166920186348375468962234882679156382091618495102256670717629955364217366943626557013676337418836188526522327329292587250164065036135232444384028731450578054993305313000857925603582004764347485161976494956693471116803081090807380243572931562050340026475469891310760441802264782846593112978689476595179530389452408128363357825637003781992578552550646120052963746573854821888542873139518193450990690522183930990975226046556908026581225515415018938834972455123875490557880445473758843431919621191376185638580392906589287327524173880473198571835240343469490510458415368094032390112785374944732367813700789914227964695139502838338967800774266565475489001036008311025660182435393707260235388299529349543350096568061046865224837441668032474285893539035393373512884736940827424639606623149515491156218317309989490253375265452076745858688202684119783102599121037818133825453940720858226574534336848700113660729125642656039014847049901551480770762528771996808225653936261507945753509118010970116000718587885733533224077794850906453158331834437641249413917844625435869432119980777376499436936226739075024526913858936081127424758961530983526054736466890776146295558909880301150597886584543061957316378473444564805872949700673159595135888248947652437409842549295023979852676911981772514257033718724538458493575679564918043229508998566420036334056145004128527335280941673664793345488817204885198142372840328688062397756063640701928673044839618177718465932491869832715348238894527491725736780166950999837808748471292600505937406308553440519779433267583835873307642409776525165874186824668984728043040557770669220992909137564956828576899992134426683902273282128022114679838065387752141243828687999282137670473712706870264264112539908494442551914465189321299382363711668853316115244775839339407708428562980346414058312377767242841125359539847375265515250434840407687572358751755744878887738432204767787915482250790913032513615676462815758514900367558591853010472437058007540366374644395794159536666547789868043248558682623148947336902708310511674127725478885667847125152499829273691264434610509164380568035347957728119831545362113199947267038321536249977992970441317758842115105027210306905038840041064545151332016338693955444648836669873748237038915073989609831573240063817309145763763366341213733088933703641822132459260255205579879898264595101827664211553006612052294800943946518188707276526358496819051987096610858066862817664474205138708915215603231849957321493828469620929402623380597583816883864338102120769536689072233677937740439528606394871397815961153102792356574352191203324315090493839401897008974702410910781402977102644796852350431192423889880201151243613965885917251348013419757949600584336165047345416545011592731726196985313346544437538573550018844825418505742918784173187837936237240343254441956599050863830293238829172887156253042050377631100196929591552714277643658208251174434549181247268684358071332661670596235329430770315775897470849587795704067785320309964256306064694748674199701781547092460889469216592862539226099900066180315896842219105962487299992396414422526684985892617506404502277116768875681573170644917313759175613749249477795444362534187352316335464836086849810162021323421625158005388388682404805388746879986015417185171452009259587493308376782206252487549124898409413092913216656274752286946971349392955412762984707173043238350066622758819148917333874241243433612969512876727552699381233366732804956578084413336781254041220550005633276932037769060688198489401778267936275750884128780875701478957890539880721901820629980514253675497462154929405794321094766251923710055040686608160824519726972646519695965051880640697362750178002866358758369628682877911835104327776575975199730641827648018327354714437664560691169706605298246347331446364288450526158842503146990220491973368574385182031451432602898905615158002818117156609081853048269839290523738604042788786538115585394621723662729262196913597111305915781812745591513043692250389125392234711059350840559440859357777045952502063241086161987693942823234659184109384286508833826217066778063493715381873072082039455169731731910867534079579222237972407667597536006513521169998624170853507922104786424644868243983191811743094869274828893531634864096778066968919976133794295201212036679210597325733840493680772245142163530428051012033299710783284868973986873492291153070127587002550009897881331805772219118126671939470598626855366221056393462404819683259007557314651735532012905413986906800665181528460880744696792040522539302288376706092645445799711568628161742207581970345003450882257634987259055199855640435486449382041068918355487200939602181235346762381489931252338513818720504725500661276962147474118576289985002647453792827335791316084826426245821076549194754832157162445308845209155049464393255365078941500351783078821500804809126025615219712466470930111158600108714157029959759097824328996683348344313997930454570855356540414463619654723303501214553849028456246574366479652246714826167699096386288607955635339869085192189114191685563025664265917207255011346474201113692909091650356659659400312995740829034141075890968271181872719376949442676147732010020044846264785318783653437103557718003085159782303614302449339863456595101192146277027803587258856450245523848994013359688630531249807168176641170162019275331162170345663065271326791132931423526869387533805339450101136400938609085611795851678868873855834364080242860770530975243241953747003357475959488692020427488254835306292762580565214996239937929586940155599692924188893293073524893017978015081072114946582142785928555800195177258579531972891718229014654158522565458864443962177579981309257120632992751747753206418096230352162857190395259578855600548673500042655452409571243113975251941060706097649894756822420319461556703020663134063884089064903108745604412947092794136629355796980981801259522403396243829780846964269242883819499608909028222556037625673149200429246264122735392313967116850418149830860511237789640048108563180229800962078416163110175348906017294002051543565505042723225528366795368865565137108679800379737621068743048712679450094863416887837252939676845322512861290592884177586955252985386000423056333037324199968865989300904758204281339393065517473200362931195050522728708178516702205443152246124466182296963466609481337259008716015820026185227203482665901079104758700889704248440870215568123916948989191952029907763352766703575222087922007278601578814941832216550983807000600185466089737900176539339019708697938991239935319788453608617954432278472090966499820255108574051960222131911639058205875079607719337390394032449357530050729321162209189901491853202319664488469031884286396318577682302726517305124957006306552724901931771320834077706090346877503782799400997089014296316221599107855878067555721323117552425682798692648693318636641046442893611891918008582771327916618977889237859130041652150920803564432847576482275697233878703302778639152946145639789892467403955488237692337011376078620901364885595903730050088010943648799108176451048527634536120069643854187181883510826219208594418847224433932893199425223533262080678787530183748981448337218876268188341436343506238702758732586358609711082995175971364788124686373712923026946872275413985573830876575685564138131246365391361389096312540502027008302620817645715613311386462615342991018600189653656788777898484311758134735685783290952510903170793807087475290504880527258626873967732747526064429124033735774751093899414589228365511878561932252136342852041076900531106897003631998905905741460446556506349505576688206749865051082270868910140064188522597792446631659310471592093017993792078192878379416088081790876540436956513401330116293422389365801965782986405466312544204562150909645518651802511708970056125023571780690289594906509840865825729464786117083169541796644859280027134764168343217015934992221490071816255146013966350670103260710922938322370616156977610215871834428950304171536968450601066624944681170814523364761069831376577917821773481728906849913486818142846044728695064302675330894837524623494580673515488436566366914971786219530246580592505450015277791339010875841162106456022397228316024559593406714669696456258836456768647570867737572806885659384299186021462607861796398953808447084488630528676820121980278930137791560445836426663716231140328470662786346709549447930173120636999295012130501368703022660563412541122450206762263463766193495829305207092795881265761819885638061567095032415608073008194070932669319022652991852665901269587620456436886190949896686666315156598686179509424246750770235037193578457405827583198706744747003647954622860350333653055118688927877122397987411749514068270523583367264627001807006039038941423732197637533229306408096894724911724759638246929625414894484604085738873191139386343445436895355128091822624413683795171142184075615635233886745352420482430869888880789932827605423027288431089135238681078207730039838786899872585415348492307019812567618198744353350081507462573805745833760878594174069016795293308591556312901591581189949813539860843224360104072510640465237881576996620068837670791250583471366235230782069034836483891319291677288671916961359073899514524711860309745884193367348399738108570391795757085928407477987489220762664574308313577654911142328356887028766970427828567718041332327135458493594652198412452156882284048882541620367961991947105293379083890190478597721835518240508044950243499056831730269434227575529613615548668523766001425006440299575303827761469085801018055273668407843050696794784618114733954315268474477030541638280342399329930460442216183782853974013269739294638334960316377858087930253716222716633935162021998795643321383241880064373777540288798365322056504247304468892291258914965416053123483474538966888224441206478343538401007417586171399507258261704575759618911363111327799636153860893210878755846064596181559590996893420937440905498131868875643680151494897469180039044700694499662203336052495231396508583492526710796317830579985860618431109768082964758296368205947229858601385182250894880887428370460395146486224488828324076865180882717801574559035196246649760934338873211256263923971178700074987787953577731744740041053043392435120984168992344683973537924831464444158488112338271860104737205407937858299372151704432380106698427545544444591086517604086056209411036983474587280829425886593115755113118242964047253933605077431847896809036195113656812989832289141815461248722456043841223546230379421056898124909842023680791587169482767551577537162504745212929733529748971779664556995849743462250312290675131792300063989991403665440994630370578352657519921327364884580872539239091655054540427081590805091038575205396418373179314818003974246116217314265986230684477490095818578231956678579961017958080610685661153933060850122197853081707772302427481998721709072569186872044453560097644207582252900760499547118164330622201922792981390641265060880139748414664099514994348872507088412644484718452664471442602122975734901430974973596788560772675897259909407308836559260962843779050694336711634425979532515672658206630115859935775919779371658379881729578736540686711660970579479121461613389384475582799096419116836878666552734279222653168281272793202730571956805568045857414408931593814428614126026931879654080554892349151988991056014121930512122960421856309492998078966556203276389335201959845725419730971737265817571383659819767321771789772387258793961101475556694919164636548698988826926145565442892801986259063390190585060162844768489231044398575003739064732232766147744195809610806725748998866221998656687966738455665712172307925330176872277095491067702348944594671554492974631459134397503128487991419843767121210800351459882157505955866496244782001932752941058060119380541160438156663159948975651511614885085289707439571117873763021639630621294885409706282200452411695767666164059523713640183484354468087141656343282777730710898206358688370323849403086444236155143687885081079444103761055946725064754338253938496441013839904357008153161722914982693175354643303309881867576287154391904318320209873732834152296035567538367303198903701805932446641947759168027709538638865002820139539627677733827203579544074807086501600965109282285394139965737411139157011693944763409854168583892408045142092563031325380803468957136925786306789775971593502576048994752111334125063191133685289583206136236468901322782136155377025454692206282588978426097643431133523071838847944883085350049346889258245959982620033584681027036213278986241609453975029811418636974022867107698110532295501126216298108339965562276326239188318740730486894295335979012929590017632171865585114548355675473831709972986569762746467780797155952621893452172568410008336399723209803906547913746651609293856237935073652614338511490153145562491304369220715526688235834417061597788927965756437988641206692020472012435175093897207913456555772783447536903801573384193540403739933316669906148433821721848623530220986313880416302833738630288240819993899833562121777567745443689205658410508798042815113902022617791354936123175906321752654543936311607897992874720796325002759445659222967110097782845965891599780643314294424415143942024416678933617576303453582695501609124909170609095897914061309608269566517942594175350680030190584083320703675634889132278690073182511600877407128627541562106175807069347405138855641816973397497565212012331632195772234355756873061538518867193023605196632224116969575063750280474411366081720218954205120469190836845484382541951795900870137841001942367596506632005388413655483537426097485962768878478506685165190786295253060709750847986760064790471461078261691082483206507676931688471970138135526800706070907842051334650251494819506032351266042464120161974748162837529413110739948679706601341685765988110790066419194681827765922651752047643700390793118402080687853428588396899455541685313742774437247472856533326736659292565830292853713123375345008178920484112824460276990482480450191880933481094704081904411591836412935730795869078720248346055179177519713934525684065039311168904697572667502789946861854987773220554704620643951168673528233933171914006652200172041698661531928578826731504948626524609759024865659029254391649333898537037531286586982976023719941886385484895266213823393154608198955728082327463266257383455471725274087934122931788813184565156238312812424351117227400242836359253748143704194861035277295489681900433526012545240239725472249088294894602451352327992050024117939620314996034801041050474015710093053889177650596902240198444199927406776232432500933938140130667471278419117004591139350412586568200333704641768036926860753889524379623280069549286442762888356680392261143598935702457401948082708993271783410354938515101054978332744098169170587871327368976285764497012762964773201332546453471791131061207863964648611665296680486063764391420687333201911572714984013620036384770291956740011015312543879161534493580362799755965095559104676018331261027966459002197411766916825921815254431523908833376131250218312244751958902185374528334366238041915530517588839471821566422590053108112444191378550473936184911034610750735805807791114435286800178810354128560204076683797254576593663329241889840788790761128479755303064020689121224034542023962387988067839063526139363943074343146279321105623513009155453305707069492571342301779167398154934915835563946154539615798729979347851730255711156232161582390469841085366130733430223545311590948862090778874865806092512811186412094249397141456635797945686433082955038033475039089291511415044024354452724370558522498158902608832390742982951234341996858346320486780594460767810125357168327160001048066002505092580848967052409271777989640605383183646050410689110414597532250646067212959888177247035938962608693724211156206858104146136856831666043703492568616819497305646235507538913727970523486254108969242352311289906273416160695831228634204045557116290546244334940155581768888652816882611394022907656126474261388701365208691527298959875905979440181737068650795985714652613427992309926060253911419085607977828760505267343809073591302782772606526214236489895474399592840985892824058141307525168666447560038298566168889945539241349259163487351362274740163947445885064852489446162504548180563292515057342639026654895695060921879076696889873538964850466620702314442332878587930027924743239364755193044484124276594244248355954069151723926322296598604077740282233196444047799722190651105639576662455046622465708422531021142469218760482230282454986203600842539394228874368402936119265933167881845473057870766292112080916832983684397268486742186585597874878312615699225015667304528646458250555049471392888262968079964138645336997371343215971094782451315109743737505534258433061160385602508750958544739922943972570174511012486264441185280391826647280913088541388091283748247230912705680028376179556737281109490835076441242852829832141417456015564233708028901218605332538356546172347171328384937765509989755441048906300005044520893538986591582295300140887417855795521675313840115303571486436509112972191912202726845878738007602730291002914215604302844137600324332224861649428477543714327728006412985526787758019849725631696227405052522019238852835174962369466253536231011602408752211107834024117323864684787080277228917389478923400252942937469553963028335152057432030163814082387417018330025081961528760479652058743505000349663833043378115238407212178706520066116310474196647551806075956760732173714589133945517075497710842529641499463236376697958246775153735695102070954023730077503144858966693691048251586079068030381466932421159995018233302031698634675446940517617375463190930886522685359303090491449896189398911928689469947631994067236413147743259677368979391801707681804102911363921510671015143887345622257176520341186576684703432570255347603886142397976554898868012002240665425331834298903098727824127213199431535488583044884953846256320969972250608846793896537221449488911510752586680224288130490437324841245736592614572387715022829597504047598794200928696179784624684647638899108707373740674453421888665715542210174602977376349294560483849540955292794863925512632764818318435748374342796821351937115264177287976805818227073880103780752881511431137349995388116277482619042300909074040065743631844211327354723880998441862325650078257692120480614433873896155416560398928610203503383888233137159960891756410242373930336805719311344098875227550808996091911172635898074406584462827223785279336192171449100763022626495551373045483637953539705795892748940085016908811034238314308765471173183223669446408506911245387320511472675353907572154579144200280033362372315645499253965425804332363533282713514051966829638114554443026803595918573660983051919197513327916936845637793479096650986069234202145447092998197654420925930062127507457265653483331751361952726751309184422972962265913105268520745025987727206563493662878481794170762925670305040031680296401505708525365600001867260070456226664755452000961990189891556014090923776083926829028225624730319336121541600331868778900675989391282973775878194596582087873966348018525638174571306611339586329609213142149882160130354687611212942567983378875089184563014087860276900103632682171961383730996352023861291167662843682050613536416868102076646385203754619077001928643512062509683179713219491131542907717814095246504579136746621256216798498563386474476775224600365232977072830610688842886882182007219533893485758665396097089075954556666737840094904488406357477353620086640831912091730944400178056128321435208253868122117212462324124576019770345794476759681551813160589163540008586387718277625342966382569510539280851136628636105168139873974409049691821783977432120652966067882276857034366498248103682675304764619077815573634277022305537821824993305255920980753899763521374850119008463250364656931189909266220109699845906452121748561137378574861325662905422332759595333654551722997152495070878500238258535386166559789637886568537984460348282717304879021519591816695930125139836426899051732197914818706572415645841795389727729524884050768746369133392546258331853738703853777012691285660634321843694401340726658210454401470720730469762501205306135918823153633558323614165952453492849370530814165042552903771618396095754959957444119298907641491419659718998651834853283398668337555042018602863763362905835688408488754648924229261982087792724162180605995136051345866971255367447358345954027633470505669310628460272624960748348588723154278860152372032420091555187121032917298292881980359844805687519320657252695371382693824932137900345929788975275003161282986309378587005012186430227433941337723474512938975558859174259547812574860070638852995494384801609827318962935690874032351987535564175558980780666786395038636789365444795529632368950840693762904842317403603561132711112542680416896341869175908160311710393817111133859033036917557163800169689418143831967729814852378231087217364785118670154930144290017276759250843133687648629448820588268258501758855909280487670227239897282137591828924631632856131816027947382491995254293545399918790974412126750878690393867242968124419290665729349045411708356129158410186446575697495234224502793802606088487373637540811723722104726014301145182922637909072320694711042383260229420282742956062845894285136953532345791728504156568243780380068839721603129463362872073574759970877137791403827093801590067051442720682374930361777934694541826259226586111265128737870468054122992646044200304318444076994334152064035949353898789037602560021294564016395880669804445976121614002154368923093096929663170919984270796833725940654498360164674857324215930667369334209643193624836848255502405795363089754631248844039278562281780178618433417273071535593929006405618484259811536782294817539098355703923577196949784412202785102558831907243304619590460891476886696180253096697907423777261111787244933213847100256199926530518292388744134959143882424735608648572051786324139872903546913078730246145493891218361861016138119507026826536599020301715813760606318069047338449737819731907998349489490272081640055012050740001165026925125948041994834704065262116423478199945248059107893292217217360826138977791803152631462376477447643186152547627060697236485594498815218466292122211305735076390147524885916936353354080738778725068880331991983314098799264271283353586334383094375851210569174368813251748229072465450263497916627950309122646940958921006103507258802476694023002334739700199132173698307883370826831116904190608469885117452172165997233359201075591800840235457012964226326346281148519145843298865232934458619827672489271534910060742221074716194220256148755331223102338890773804268308651343290809449191453979232379128949281663014480724122199420517507602137746591217456152958749118369698018768766054380959506978952656419476036209108215446970952808933826102482085515881229391223413156352297675745508145412491419729515642230295585926353427133099724222733610756951887732448436568819938189316161592513644179193524679817253804265822634660426102279621811238171142523143956177062040227821249807731934948317968327571201547574035664236219341694874035076032135259780352548604474980205774714963246513268834157516661904642122860212319466073481309473222828079841081358263940707791795699241597677227237698993961218608052072416516855645563514598158205885913321350590896711810611427615297010470063706163093254257534137517821742626207124419081556083469345574919854844503865051571097132144979914797949972806035505378370663166450684598233993500157364900524680883416696074773574872660293168036633781822656177484781604957498023752467477179538372022792525044242099641936192383898698633357630341228207472131288330726410597047617783066793331700477695436815564401684937997951929619862464234995302023029024816034735486651177989562363902978389080894233090551400897969615297224081352144370446408153480462559661806092505896736559737708045624095922600100044010673161487304452412615162156025694833611357960658906820362168787716738056659502992191568658776036955677641555585857862818813679145567963895290287901840174622773588909485040520581298089739253798622702972474449655390091882028624081984558804875693640055642078723587410170307035453962622889818236799906497558401119374609958956863084005205820257422061683901898522403083954492745312795965810154492031348332022022742447718186789619199834895837239518966425268634714154717959710010200205916881515424913879835505783610542834784135865060189462840296580432984323386575755721622840559703334641319254124641638898712797484643471875634971742027290248945672203064351347526309792841652412568813830745500556733863030540793838988390730710500296168169120855718885217438952888557307416245836135831349052820877399653381054793426302520473324326385850126632903784261302351223330318948245681449202833695472178276944078214407058976566170877673100320866774820503801483994171109831737255398665180272258473409947012434062251129716093608391038160296571165894063055121434791172850471884350085041250400989847407850309062133295345078782910388817967462419237102470052929472164309514387669534913349349525836881386854463570016302627815262744230946163955243135105956574157454089630252700607456514644511531392139680187326883924438159600772971321675427912452807005476134878040549235560196082843294266152149971549181563179115059321976924945410733754514375052617095900266767992778236805472008890281025690286338417577161033784788854301157337254664441534613017420268070618977853480076431284388019387552609597388581155855364886295167923763267277765844371673935959690856491704084631714296553113526345506812271647233078128054590834222008978444222477910983127727346560473386498487917138247469874744577036912896829336944838004861749916383708276880362493473198190452048880968696778225453119220440082461168194275523329115031102173631371375075527064016779894774977680033820626215815309889628970819273576257936015969108494429216385983619913434991451090928262246098118870145743000115173118875518842315008546448774905255038427651089858578136549649874504236119727042320838495663286529454795215659721032002273546486341139419457692336656679043243947023309034689363126024317022245250549131075434657373422833629320599353121335036065940122480424558641841081038044706104466054085701467208689596839277501966671752417099481447588345646421798901408287111176965256593713107769570608381465807900462580235371498275901102237399001523125996461955920172317917312007614774238359496901092267730436590865975001238797117421873432607069962750723012910789114073021382534164359129008126651613530065804856915215805128982186326640161603697734304798378953794862795150965304346084078233313595966396805497579078844295125319462587505247393424059920412365226565814885795223311348907524743990035911761277918574096624380196627786299785031945931796118292265265051982725721777683582959294424720775581570276512706609621175336961181072420583740996899392442554655271974247896568692573824127660944293525267778870162939552816852733949030307484055485050078827128228028380482231040819118815537551934844306600305903850484670642786789287932408098836474433662719847695215689968172630356191439959244505223832018592395340996082033044741591222010962319452328355732184446116495748931059423264266526039862206235831555354239413575480102660450330855209192392043773821155210458826531362895318395941782613716659332875127488552112644299530995300645822106663521151667229611665799247406300117215382614879470110224027909440602910929747681896219204371072947605153102156962871241092548957078448291077335537495557994146200654780809682208638866500220601384859766355094686152258252328016104119916642136211451699302676212411865358385416115177960209195411969919487508864425759839876526383568375898604865628772523934794853131267530016575018532071329015338410016444958474536447545521514725350535568749129137439369727528168596026872429885781419414466013489283062466637465091720324104743754046166789169377579040461125138043158148591665899700692109789854599803285373136315597858466240533751396626431746344739459749386649830874000388879657055047887633573738203746392238583785581369480632684602561823534296840451972459032744251076112853506306394887251911917873281370403236585772384279118097567446392852109075582697923032751202428436844112755915536104301958387450463476623228936458642886480214589889921187169710307364631609116208431422299502665442167754476667584377170726221875754424783102102791194574910232556080242047426730352897794316441892202759836644544198675951118550309001946999082687085764633846884902750216518326784573098382353006762671395314012539969452942105639726196735841163094698793489975989376537233326522747506173621135305035054440208188254084097253292420734084633504392086061328651107450272335198838213406670839473486788367773409469155620916657509245985078409366580526525223474063485279759844835586828926314021497077698823979362899057439198539071232798818693401524293211134540200020958625772963679665471129443381903273757639665376560066758219757483154445453400925935375468746593661135655071848443022701369060643317877007049085205368776594978840405946482488612127306722213738687768527923022902500465234691801152198879728533972409159181209805268901341585301711813928012092841507641527427141120959458713624247563025278174712010174837970445469526820110061447175244972431688963252619581737893852261554962686190329078767920160119488693806365959267821634771117834515680134166638313820010741040398003557978270864039027156759747879893406623262484129008688451995739577856751353170468637226938047297962840043990063905616760564801754192209546188560479526637682322830283464079311900143473895282497110883194565995235487181514311495246753165767595141155255251036736882055629567554387934335762821612034380539288293228361059561531424020351087374862378043843383681540901331223565886879477544462213351417636622659825389521888637049437682648347152553977802242150854591955780953663192177682841964538359304150662610112700602179902691775708476359244657251654950799337384664192900678571053230713224850327803019528880258429420114830390111739799988636967854064865749954249291156283737738034461204791887210578734847699402595218657753823571128364497191399368300642052558799373797367791980237070891592948295260079565683431115600871818782176644488433560092982587437794730328680315387214588394382216270389990398552983355007612591484177652255422584928680039109281181452694968863992297493521354220548466470042656793338633168717624167009334708776014266390920932726528439332317493092350597485533475268966138492518153658984249016267068419052286824595934471488076172686005744672988293300453786106433071581137234438536148451312768205047474359535324243276134642594710504569933354375217316668132589401781733713355250283357234852400900590145092095268647011339164294336637095300183209405929418618697772868653112649506668298786615248122788190028989443278524981196462981832178565192897293527206802988891253410488392838204664295755551755462137364229233247359250481648225812991363966689436081813565501509411053148757699929545687005820122963107288066293130579602266582994532060309554925932536742191369076340881919708718333345419109099448157030484791189098377657470493439159668250696305990863852438644116360616464532152791787318256749771140770753312844010033211444894534290848901258794239419285399799145551246180608340519987817904617206643648012493414630280200901242942238049662535385184109688085311703116318611159954283990733384549556473793482125061895273710511519446397864598192086869562521406062738776173632602070212748115814680613495622202634838981610507461131444611725214849698653412659225486537736484639634830750485024801849474138663981196621651119721595330158945840250203669651617326965400825421207451465660576322408519834025909068892771025688466147702979503191973500912866463402673985485168890541184984358485788368153555726747477869309355052544225399139453977879631217330423401549612618238745034040392658667894368565254183174968368810786214301561399385451214284779160367921737203370479798712490186415959247788024815730535086562914945620339233586030014693391013547003881600996783466600679979430513883016396197272134530005272789642833375200183421023017337741547513642369133752225607236666257010370972904915362692453495522830977692217903940438649694353800112643001769780194945801162561952182625042036474292189106463189586153397430137005925833631829010651368087929789581375589446074888137456169157641079545815635739666973469327905131920208906988646438331474631586528917634568653962792061362377551866369162275546693839947076122676454655397204366879286622927992409670835360508427869923544884974208549602411088641651077219340947678641698125807028525348617183417443096446242868626272656171616439136962487895878344780440330033624604417158318052325666248718352162941942801603019111901979159613987405670818828941615229099821598988291035765993532273049545094160160482279556589482042723118298765019241902109348154304463252480339737382235357873576075679452682251554237656945631403492125416722142008419471608872397489046611486652755643689113940277026254693749323507803929903393414450556649614692911723884130303428074970658808613175606701062688167588956772965715600715911741661092656651771641106830962486925901876526483398668525563632703006511480052439894066311017160472551431205416783250017043897059357050178009685713048645539646872789629051567524896177676987500057233022600138666574921529475326217883426756395229693973688646766849431208112144841314479130252521938369866789007732291671324156886743700754801546406814991072588177235476889767642599266063088683226776788070658107461447790258215581482608420216343375366004333333606928029069589590184694068709905769765803737530331543044425271884668984994362958643531228467682195652470146942734057151227671784576003152473212890653672149631326103804291060518958271398207800334868892924189520715281915519943427626409408104312986811558739462974716285118691350619245279652925537627479670774160999880069374409579278933052453616598509184892042645207076888156484828619290252655335440857583389921273108731789668549354797850304306339103289730807835176613461186825447607140777209121306859825105695849077461841712784426374459641993937943826075947779896016985357823605689017601787587495475442650129216147580213298342840663232031107405253839857528099496828598863062195065783895941364569339515236984529843633279681380640888936715001361421015235826635277920310300241993862642246608301042268376626067577149670552413659333010713242749764698081425210087192666196636528817313938551303148142302081222249416610788143141855935902494653103828829114578869607324227186044887678700145664398555263650623280194401877122779135931692103750342109865651036602867786253927098820503005548090185358848466689015149403372514725333389570349452151993187883444140864184134578887852747147052130973010596694209386403765869730350751631839293818853413324399660609070360593873696474374422746662904498098893353074397392555046066653076919689696788352203025870300417890550784826535156296665570348633926734927110806194027664126223086527598697596121832686545107371908843416829637438312071750007451170374974380142741824640170005145168331531795788942794067491899665499997083772432976771685089435729196392715136538949079798590865579230627289829295476391969899469388378420287729089703048993116824677026172318201371697477159668697801473870788734926834927035984239724744689329388820645286548732609660686024706024864645348008354862502187000993397349730049068613136850164010794648417808895155918275580728284937742113963383036305154027878856510865234588817978842477525013617894691804207825578477994816486411005787054246890842946960154736009383120368256069029023643502913091695179049525755836909595896843039717830517726363623434516961367940563139025440101263548298796116285499406958226327997247363788485460689532467119590251194595082165957893061300343919280735963474236733522713727569999172458035241396359603055950049543266339185673418297023821200438956909323995943168188930182700802039011617888355182200853962738920009345666893765125252353143901275090549782071408062770926325052830117336909262881571094195726469918262533112322187986693082089693373764052927200961674609830330226131212111993938240083758053758464271100026348315229604653529067462343012815660954450379434354208370209712616633186187364998495108174116997663706517041747087752001491322915250056238798735813080679855345817787632675038984143402445366545432637405172266716021149090501475706918271105800203030330756242953137266027571027442600302252770964379797646163961339579942130499269424643338799718604142656243072142029892209413886711824754541580263922728990408160727190864404210203223249599291869028289691164353362926808824118957981057011494044468608375942866315248625860499976669220408609066336498596004249181906798070157093284648627849629965260700577208434806863648626543413780339008457095681352562315471148907201255677744360566058952123640916174378873938455902844690613495747631691728553210925791533384715209618728023336478193741980644590213403841098224746823364730362671008531365202491128368701381457073146395151888495969072723870235800528654512632771381787899374517863727950833162848822844447524366124438469871467373045984960023718427619507588747896995976215701561389920164158239692001187476173552789405177038349198221144138325744750685391690445487703530258301896446034404147790249128592941733924690321791377234403479911361407777102596873237301029021443633908688317848236374046272724683707481012187156457632234545806863140019558091917039124324391944844598512425948624904489084407529228986171279417294889827238685819589724115317094200492385491650339375077528698151142485613850884397348373946050645724479095233178122659958841106988080702264460493253008087201758034181886525082121618113880224134838825811908099172385683047450799182657298360390287386440591712583164524376511981074594346444244290165028305383938734731931421199713768705058506073470786504776634843469099103623166226766211047126120858029339376793693248408870926201631591342295624641604674396058073229710987374118327552930577714825530965039899609770477199890530269628767993005321163044011521027262653233674240654164059612019990431644822532619213269538066210190311881380882833394154638060192660161868827363701891802426423157146905964484921692311843330623394549600674704612431752027380053259561047757474215132993090643222326942126205913693318940642421865979184998331399708984242176987594423481437673719116284022271687866825954770326031977894695411919474452227174790410942576019944251826248684858045755104677454269514581519200272805963690846354754531609606228322844592767898835577569335412921685036822236326575561104318712119411388258579195898137182020764950341364439333917074085755699622115525060914465030785264830472663152207484161740324545341468815028691443864993413341105898426642753567560817122036395217124017733873538691877704383589922716155652315681763725308114812147126066005286032127884699923719242037619122562491551560683170189657175552592657072279373185506960713737899578740776508979793409365346409295712771561112615265298690468599763066039228782369199940958214909074313826987239550242678763285741962063069531434097428002536770900454147899195316631198554870349922265621300310072440067308657766045385376858970198288410722304978657106713927650787022611096961031903670666825284203231144429029726851092690767866934088113897503230912875271610532577695740929751000353523534639502096864997536753486277001465261559637008455141139166501340103708905427177204365486485354830739899060042949840271331021289621368928992340630364256188104384360693384729517087445613307748331427764133285779624268397877353068365851079461141727854049046839317720900804316337939729004297518826165120329979101563606583726934451168788738848471419933023288158744177721056583587868254319857186086851085057425045467131686305763931065087848589124146484218731525599004380054722931114803078410677500896775040799251687435365139301812819157155665152916560096363140593314750178587995710688818039171400811517950187947561029853159134223754196414700192236039801502231376396607276274147420522464779079613252293072742381263798181740257241973462498107884661477679519269312126384389705179692114600384540750278777801335286069078525597520989245953350484409200753083090641685092254968773799764168061285675402474350158547398765763338013885582002530345667407359253760684608651863907662007889674268681442885828251329209740475776714542274680234078104427649691056788766457780174320343502633824559782178912004759435426231831624622845402641274493389585335435017250378728428493882041490566546770275163910189619749133866127263847593340279007421713153205267492896090507219680512174557041149623786393282606006663025076958061875675029573241654543011937300794457368341014009992400633171353111301685142133845580020285993753222960423382292176622355726964437809692120445055000972952516695568379198797795171684284734489963774480562076484396451521738538237090396131047180303905004475839970349117857189273088535004707091485658639700351718530765278326936022996578833894124988943229420073245853123034443084396841922196285122508353645177974788741502647399914860776803219448832979422369117752198586880234540675935088247813988750155697432662238185224717561569341781781951112206612292640982650075170499402683020699723784496470875936557218304914838201592587332158959718522568081322825749873760678778876073003724206344422878465537035945611123010187917574446637216187425013882225662960827892546893689399887520229930281365178394523256276153439015050886866870237234954268985734830767570735996697251571086901807473413479712833256866945956762415317681852522148905885596805957602051295832242084442840982652332901517070491900858112928150702984159712142798026901936808303030889966630901933312962781740622960711299707225845816915445339426836109770577143991052727103177237799599128295752798844740901588090287616349128794305967716686961601801018534713432993238940793243725878223293036898946882420818144739368658105541995331914833823652207388940736245351311145409072418162377916657458684226873268061100736744236791753405500333055786457965046244303787365069351139162351555724923612966079404143398768506946221032025228648711934919812256935119130463240437882134844316294590961222186082899212578712047573137911312653938455491457680823911958927309991073049172496247887060515335730358981661241137291476133547901969606401815490408726894496708058300331588090290146315859306560958428099941293112669062765527009735115959175564268934360969330400459237098192531816627672836092936474862700804655668926413024233136120169507658528242366833026753815786103613936394639747945552823952703443651591114278101422073468836036214854081419962770429683606895451339680872391226372602393017685378848599994902407965997105472514026134120618443472846499380983174065384383062608258972877910473824603139786455918690166272178067438864742429465392890784381918534351460331237729526961376627097299889193900748941025499193257713584857062272143826588070121326288488627370867409681346195622713211686936721549021326331075848981845291073339541076307951368364407953484955436344698212193240789527122214082287132217939232253580194037381040336863172380585748144294964467204383833828063441512406487487273731335439836736544902878105451054012688084009899651971158207061116795680143952624614315583627615019600583029449913349229964602607117984190829336888964663872729209907168752582262527355457378251855825490154131024269959549411642791494385569172587921201617679637730377917870219359782448458430511952834703366481209516424739725063807776960588002562640286969704550543907608895661547112925391744763619272604012151421929818005384590536254915196059649797819467954969206709268815371208274949875556214767522890117363751338720262839338598533230619304695879363325761626693125845613637737095713095076416173960035646357282006503576823649159444194532479656061527121582414522587776059661350252182861894230660650439713370138419473163291798478029618153964459572148063794305606936350968336877641173073333537414264906545640414408916250769103631064532619282902692198142984528683803697866837802566867696881058237268562759241474320952183957311763888801271472371714778377215856003548582152522886062665055040344036846108665619165774838883692763664324873613419746305906562717262597529703134288473553133998183649640908110353617179875727822493892316886850943640393227422758210267937786544420297186887121667069325595045909884794620223467704636671002076993930974759964269741180707355885204923822559441378743290589789411428614552414391643244744247909419185469702790846239920382742674643095889915971265857398214503648680739073600423756398836136900100686852612137372894882986645469220493422401052746093346775834306077914342882449642540437360558583685854771030449863018862101411016869457779121003404274336477533171679636100198987975836264945086078142749539695777809678762613516400500675786655812073844869468626432130472283014069028653155614784537061334532886251576098751807753926319330091439147436449074161790365076290123699031154286339323506461761321617426961695117606221857354410692114540181911265578743168839263361613361560299575929377194068325508594788543048950257725769933909824026342738873469104808397950072966788739722043034296120386691861656673912651894513829614217615248717418659583452535693896302355012956095266284850594117942154877009108380166487338354777891212891417195063457324439006810929245095766300245340134136682496858823151311119289476977836147844221732460205911701387567037173539750226334620782053952343732408190019907925701066982104501621362667221607787562981315459236820195551919710296969801028392510171893117022657546376849268770460531682723200978018779957378068091028039770760279964978166869822174954930763088804966032693501662542223740903089921333235184477166716921638823065696916102554832428579349113314800605880162933213135927340622669723189664616815256131111355474004798772690458911857161742408718289835224652206387954149898648021895871012111859196660690234834624824272205139680352722282904555571389988538418148308611205127479118475330487691080890548759387236173849672593299566657729648430815268120825369009105439546261110945125763165617054089900605143143048434510369390954229512623230844496199068468584481780518594209923388760225762223300821212091333391054034769116483932249089935267150432413512063480866750427206100141126228449389555384832879129780840174414562030777125438542404353414230558483195770892623257677372288659482614436445468458956275716600425149010454095456624040746787636204506939318533744677839065634146580069214946933249049010517726752475182701192038399943905013923291878659274427088259390445130002457258488377948961019273010890276016705692611007137964676329362465128475133413609639837431465964208338962592125359488446440997953242875403591760958996482545912381346141943723273072198553383107648448145209515128608898998967128677800085717245035367822323507250874671232870034202271397115233928101713804085484086188510640950542201855234185018911981035010663978913203466742084563919350908023788611745978821222318241687296452364532658107804489121572927373349478395159146722829008706886085158550419765122705000907084000368185872347672821760180691301065561357707715337989092574555090140510915270426317872200743060682296639334756050405735123730640050411615692959806728428685636687534936733520877902953828022145932256687229455491983928185092889625971581658703917545019458207134440545439004738564139846531884520318129456707111477087466257650207935261646499262808627272772506414838226423965321806569361493792503296449367955546998350191486583744746657100475146247440016461961004437198889900275903674260643336269404362480090694253815463889384519646704001259787462511770134601546472262191470310551411935599158326758825027311690684439473798950953277546239382374399924384309874161937924065042388466376943609912675735937923023484911233968410882398288553805022203742584521413354155219690680501185728161320017107227381087960789379441393989590758036281481185964242718542954726901377843436921370137507245181255213666151679261861271624990608556531435424622322387460321765991058828848228017972646784883983326038465225392004357247327435014834000190290178830638419212460523167972851208097324613281126808265798525273829650988758198372244545677334727654446113687108724164875991779351608431840201512576904515277627192396990848409455374302801268387993758031265817153590055740989042754267496232859063451380579178877881179379589143850067096710573022756491964017261997377594238179820158198408444338595367149328852573970675933575016887116588217620194414273685062100515847063764736699993367747713361252804484896840948685846734848365522782803396058369407162062599446551354928420430600045602305341893890683339488408358486671164052996829662022970887420720159272914892571214937122547806261820477684885461430975909167530231098721768224791310996237320822904118701398571385426960004511212020714138233487021516865284599534078923141222565395787396042325155932307134090713295512603019890642695360124350232976343670778335631088790835439597890738617517047930908394999701089794128499300056577248368909280373022928720888495604381688672564812853662309490740697009345535901623475452155865393935097166675508658613381633945904891020270554548356750944959187345427916839449345587772539831622161448966976938554476231306025443039447218814539788980772787941383929343111707566476056476874322084590210501592124166625845049001487525764112787125476633014142372194533563158369255072767047350072319059175520147996497012095950003027478815950086811146286201717461607541596233158039871325419179381781448952505758415691223467362375823577476966156042247647757886484802822698079511872691153653781065085538019668025723191241797603302196499331675256167208312806613220890269998966804518583213320761437681785697112732485632638156239189874820378967070988814644522556384760401931663760687007478102563473972933389135509612015975118237242828037508533327848960995893630116246657034020866005487400757487740593740183347565357814673887401505187766027888011592611182181731529009948495204989209229889819723275664832781617140093672324963684027352168851596636676579837791177193764757954185889158052570437012727393318600196706753523901825712131195475193145165830205589198279083180198019121159367314399862937804125620727228549473132649150795063375430054720748645430020707859984623415369173234807606303493736996651926033141603548731592710273572494715406277880415835269729232043748340091840817227592163018882124732375556448247528559787339672203426800578405238792191606009704466359010660405001990331326030700976639168097816530736489285533259048534152268579246588190920225115759233490133075087354675830103989467816646372196713871722311713958570088763400390875575277521389422950768393349489714031444273421564827118003535816098425329133056766708118012083670690877361290575523656119554726872828902464106661767924836945245478945571410389789600927399954462277146561021631123872473092036835100295676082880591023549562058877120104654747548067605640055277893199899061172604301142052831553874631353567900866905108581082581654291978973762562627306730167438430663066892615461940269100121279018474771042777000341812966982496754576566134764439832604623952571030083983915662133232433256259968526325661289368775494183777282033540447162429250251814754965026904225175908918217438214447435421549909825887583422782534907891424992567620956639493878687056048760551882561412440198420362048396668541254478083953810406350727868687708277142808570946835844486863648933402634386361261409611103191948270735395384096750610908038106786566642936134774154368512623668844659140607194883892359255965332216892506061405490203387405588329399797139657285870209022064201126350205298227149601862891012326428614109589221403258258353751107904791725877941289737512204405433862964069815031598208383807573309636674859505398091057300719990080597496149405415095095705133741152443799859587812581881609710531161319107694158682435028517857143430400510374547901674238943314440738159435410143609843364231654743301234744401456551781830342011217419754313857629950616872944702217604605493842635921074407866533298735223884170913218006537899268828044769985724020144893857245028720956765524357494644618828493737903684187899356657047737259405238003558154539897512344452902701236701693031386679866204202229521047334621387802818492400353414635674396810412321445864853723291880419247384546920250227854725464414817182232020506165360453383226927861562760177686713868583533591352450704449530208407215515522818782681859382981701041741060410381085858553793704427571054512440738652324567316521314948024996128130365929301703033996695784430622755858833111287289370936567577333663332643351162980715372186960008255303496727019054435226669423442956242433823659245745742717339391738499931365692524014578601074844232183762658540995689120958431365009852921339379287731395083614776452874599269183704752912518909897649601321863241052085747195625487022636871686870312124536199360521141821237360296861379654859123080303596084160031366798451372701715552678642351267375433161355684174485865948470546591906238814470982673980959903421650802181149202666845234249761592738468822252866605859492273450267050418845596822856216204335287620162518769972050583676406366296783543009858399954193271760145790032597834863699296509079262157201735964224517748071047747170440545210770819168837823007822503484877992696062804459061748276743568313020632742994881877814576232207094911817663393649209731286068632685264686825256000042431340362647314967415520301792290061673163855329345552688351456563330807501423707162870171299806927546914448792456764409977348146961543257264461434378150466945906932335683297293317086970145441222972910108733060334489569320507003496120167866896441155872717819088898440225819804896787099707044788186948265590834874306436005680249439238732280997021581482194703204968821086332998049290070910322234755654810582155641544745261818053429078665191150146340762863527926173042782235763415419970252502967631534182163465545145769660430048551639491698561661976252088634464123551976317458460352296250108687062213205734410922289792616869569618524748396474518998394798725022348703768384507689943771764878524618002880315596798284162264773471099245029925087865381634069143065607969768535776381277543561180632569462875038612891096365441122136222826192597834059480242200987345665847465418193807614089911637259380575014132942174063488858685729983266132123846362889401255872182381198554437063722055572173936681561310447564642892634697245625657853752993750326929151038089545060304775311834187181739644810689255925220618083322628588161139646148439019711722482674143625772106954573212439934791156557216821545329800086546655105792542393776316064778978081023784484340569864805076117645226049703587982477371130197782399013007601722726766067142883549356837814610302812894922765616320185532544106741856366237395100540667916609104883384746932661253121511594293589400665576908326271715180635233636619718898988656786851767623679621832647300467417204148347259661134512609782938441377742515696336423702615261590692046223651401361751182861442709962504725255277510989388022605977519478264364261783923210020254419495010319104257394327077302612617728464263949489548246785578139580621316061656177180431309269193205146884765860585227040887378188269997119956952409927369142793880664632417281797235421068572195286709919089131075034350704891855820725469300674057890227214828387216118076275779329481542703415611783036056819470862631063500498485255783778444661610307186661454407461729506669849195760351780241194602724123727207418824132977653593424983267055653961177546562647393075449927611741553007214219957037892653283877251877944597009705199591811087453615581121431802481897520001548685806882430389933360585145267526406066130285853543715400296315622870799563544904606694116130526783793993672235408424134198630810485363820069990178173910540590657132112309899635835669085833595056181552342182544912209881027742773674141114594153652368663379164707452982105281447780733242234312069431440734429093202772970557122681341409522340860426154843448044034772911984295373583945190507528413944153626662343106782524713232118419734826323186886307207485609074011159835010858132387684864772593800486769135042294707836339997050898949832359605929592510388835107826754306324188016813059188062503937036067395984751263463005633453669989021681760156864115026990684574208050427470465983479875405012523698852029117264479647833084561202842904968650861247435974680266658500126928747033822987840583689731319417880496025785185183091827701582587703564320166477052663958271043112008001334934928729970892690083757838198803884768439085468792470104554043420573037818395342465437915336178915766935585545821032678449845825529939703223018241488947439840657561423192420140458247003809524373982694000456166807023519285818817941529604656910221016944965484891363567914651223848912792613334194963641745679495630230841853588851932307918252323416145616608704847407697882216983667943093586106355827229610727120088670700285984402676010940896939230357412074655618850351248537951041347129740233431233894715772134599576036949309472643745428160046958853089841045062885521797653219483634923006957771935060924514224950790210456602987845315685534078183693270585978321193107381160471184740159078218335690310479390618544608767069870592456569908971354120487008421552824815162342553560627830959272101157108139094603505621417234937308017204291393145495766753529470159955547214825183005668167032353554120863355959810215375989765442335851084235435493103522889027549080255988955951770662145976037658601504732920701517281165658587270422918314394718180276222568247716144470461643449065600260499431762494240130258771585608122196218642339624683838125728729879959247313961974901255584511677382361777310555173250723940059708991370081084835797495142276593170245064787746704033430853737502343244544584317394714153875399419650432263564857486091735595139227002310107575479691184122976349496816026479608047774750065873176624241833943112270403176182456479795392413163233649793613378835782798234042805402063880330225623047837938308575989578254489005917677852748337092476259366434780325356632704687601483750759838206328249002996240231081732002777453164981313509241590649778976561336130388983956484782009350543545584158715227965440688123135800016409171105283869145174273826815369008646956699090838139802497470686808856224103675058767352578343101919833544170865932949561547164917386419409334544602373388718234429345804180058471535721626467040125821069235999319724209936598657722026022466297018958371077160701422240462815523920877035916280604198601270473308146548525074808873318907989277953434736990480056284781997492533880452010020561846545490230308910084410220123838177415975755972388280340360926657652068968629272283467703399255738495431003573746614393806414264739637848257300217775967564941173778951427214098972454188402915390870241614303686286342537216427697321800073382356278490645652261868804812390399542478056313730925631909672980463431010977575893386718408160543505225868684248451871445516808023533213248747046225306847701687462815953375016837327210074283127299203110189733212176499939011053969472975519849837260131365105898172288281687006559731786837581936197980083605174839238109940794298890646813911886681742362967652915778368448608167175541022913726670626158948896149198221324792648736981971055989837879053378473260002748982906849948854883784767310897094968421196162479890674416168507031093191484646769589880722563181168261573809501248109466781299101718611193720743095793708474695238330676856918315582258878809514364874539866607379933278982253072944676550165976583708494214781694857244001532275090033288617508984639950052337639357432882840486312988335164761049678821453006269745792541723565607592932313954830778864960852931650965760817769945236096519139542101966267215239330048055568788138760119887318361377684450503025053872712019094427177242135071136508577263900371451605191150899078519074581717599313673407265609542955378784341599863982865578660224877297326350676539225940399442715277664080109027987018647194395293866992043016955013756332411110806776354616453986514326991515979164737300314301800151287701067148099507485553811026122182262288884309197180954693069388762902994057301648548830264620570811867283272030614306670757037222714350442468922940407589500863319661231193557105062839105790178455488691540005181249320175086857192077034170745497902873217753691825521110695775186707321080034136260956699652848076484189543414933455820273867816088777151020477521044286071711266884039831662896194743243701557096561550169748414917242493364708662907655301529733183426454710053408788575241255407727575464854437639730353474277246401285949755236699110986710981860129573512047010748016386699872645878480712373385664358871544609462338454420143433450985152135343394853693800766627292323127139827232538000209006443826594589512404040953019362001922270933627633710067532355533672625759001111421075842415983655686566711926346636168433713012059603335257962222684866147910558984783672741975138682359229004898921670053670662985130936264374458618086427952436906144975271704616657798631475004468609406730720491508271240987297998625519853774716086707653374558388355266560887875856801654619915323022574540250601040371876110330426062194591266687088293864362568678546652836734520696180830973043319453337076297560362130579709028689199721067587020533914986934641663947284404267234628687015927551098068973900608938114919682499469279254485264426159693380890514323488480357407052169922608848795877560431215144675409998741542221204316801208525338642807838656561018873464808256427016823881351019722781484845803268270571645698641576247671297584681746944813261485166183308876712845034814627261158681495792044961734462531668420312262721585239711297038771042079457182320967211802289242106308242929530728381575176389230919339208671195005144207190386578583551779793767878285530413063522170264353244628019996992784870337627400263833639827502219634597077373896269508640623879025511802304178797618710777695530161162213923730557370961647788030652161062524267950676700055329577747095884450195909078203724917961377828136195118218266273210463395365579008218508105369530922592041055463360321117374532174786811321771789440479257986379081166376832746680171870137053033903665258562946717255471657764845806635597819195361384369194351076813368168211647723175369694989139626773318892349043410430716322416377657020003431599764464433494099008976008242015430847063934687581485561883710062456120764239728878375393645619558841736143821614231831264635073320905310182453067747941151377335812623192843663440984282156471293785298433200087108846785384391251796951446693490465571136689852798742089319711096385283621759592845801044106606007542722880618286555012063938532348625041923749072693951533039138884085345762053746534257399584993407521671917510351380226826536118765845819224586639310810757619234448382992899424986791001949523583452340332871764599847143504053418692807422901370058492903937399017980448651845170571138439333231563032827545862924157167326863775918974139487245867136967834879624998822068512836520278451026596756884748658521938371179794234605915007864575588021115932515179834590933836994364661578240307656302884466592984044977959991151137116886698989895246093954479778976129281372190073919555901621767687375893574015522567462007111936162041010600900576715051408059158368786280693529739625826729772642100261082376792274145122485966363350875858219083748257837664309751753150223519985630304752989805285364501659969676637454080077515079485267576303883946386655450270976270132799294911233723497172883953440740169564499693659266760526189772714813750566531719289311558465981541713135520952263260066176633041285268652460528515502911630673006457330446742363656116416108549024906786446678809164715820092152249130667073739801451300481739180539686171433450619961751010355074102304048136466138457829619228333434870271254559727191301704772086065080189218516255879260341925166966948277294832051045185376688057573093479185559210437091706547316133022300125266704611451716747821571198363855245182773555300535816549302924909156041323284322361917867138463609405502368813053068457841866569686307879724262047509829683666979437340984793564597628644307794275532406434138473139217936019018311746775716296083201988940361898478562733221915871082752192564821618851233994190017512091084713385924753116489005366428472266365724748064545492584935740001868605118767956913086901970992813615827488981127409784889964853275463837048372855733026130968860475766089181959996093987011600705199266270835608293634279614437820509379376345855073222421892663912151374137320851406568118720620792303321651449502769500971530129491070094298456631367429067889361732692752687972486715197511598925430894541546041082220827964890656541675415474461612590412313088305226690268490187126080928707078325630627841306610005478797643975763956103719050973356484571951642837204517378262665616679913635939384881169637470360420052594054990919490630761314160640147581759629417868457779920989223448577256738546181646428883890448489825040446465468566058992739120967449470623740312141126480794092345187043772156608270719569028432310789709032981018440467176423391229842436621819876117148677387882908141264684845334167388985749485354221914223142387557938747423052420569604625170937791474131772798933591521631375360187379268308254681000548681777899247813331864065054690382853093335952708279101598411593548326595305113831664505224645873882851389291983604856463918906799018645504169494161291006273802062769748459787476120291990791132668692831520888667465280751248580292410021536486674024415776522697061632903868103053437443019760350565145311736486971549218227259833117750262941418988151777883671942250967197345912513084305228426948898212359885051443816897446205443517484883544082875925699664827377143090394754679904709890929866281382921285897008211266624708944036122102412397422119664747113217980839889790914331100205524406636939180050048211570850859462533126689837486097968667165241136729254584013121457138288387348314457893786788728423926441873203271066327012052329128165545255952907636691900095953640844335523854219380191836375295924612427612144443701207178416926871885642371332550925224431697450479601820017777648024455733758047242332275971135083577215013012264170307332566150025066977237228782839530837975295761812196412093450080593588559921264760169571917357441567256294667048620245906913231316929324570427658561382426704174890467407508341985632213705453524388094211934698032062625586978804250358353510311390216978793414353350469352889579496374208316937773383475336309518868049359006162621220778761853522631223692589826848174289562653603953865247348032849935108257237036370927718838130333068139494143938970247039026874672730164933337682075291674655494799962608178217441916549152428069755215162955655417197406979011462910160336565970215459531182879184691697797934722692614064654398556121427638135743130868888508526932500920365605011176206707425744883745262171492901761936712626626891771574245207586453928426248263133128708732383243967873851475794309379610899572819430151500475215540870634068215446280416542591231992563446519498554582521696124031080913796202031457280824885716019116370533286496678283542182629437178901672566424421535157651979326470796466163678723337291427015481465659022205840300600915543895995971228246805333661828732915388012891988024055396837394039147579338769212675485105504993506658575401177846454939042788938903945267026699474607310028499488577477350708591377121773948395087946266176741137317090215173218397459245220883769120841426139456599448596171781980806459031343541887246103028168631811368564119332732193476200978065952756630758108973946585568684413361191026767477195415084246498244230164917806237563750669155211149091845325401907608580052340835726615161172210637055159283287927209053587713716182712352625502182758554475380415983902071712182299437417127395046458173566298980404108943582113074739144429463470399972412219114557667133441192525766980568753143233021052494635021016266555110106579637829861688216131832200743300800228241758061919463270432370468569179605796188885153271477744603747312593809902285060190369758416314011586293238436219454760588052695091764634304436452366527673414442638795136016351927411787715078537664610399602549219447976603368714545800979523480789084102928954123466161583959566164749573414699504959366028355261508764683043566379168560789254121582341045670363486634571202446885216587128453874378512592496654687147356271497174243688479176383257875752674809210776524803472337230861699959106973740616172922494583481560527039932693072834451387524816920812293915965924156193519079496845735247011394602690972325713405494197289468201271128740739909584341729501675123624829322173794803497682463091301320985901993862911687156324124589181431373434468434057266203539462603366812827394863774149004582388355720208493917546834425744215167472479530833697688669440104413222171561941813233982737987010267630901887500562528238302496271058448161780143646525990264904816357918509515379521472470749494135697251157578878935554837111595104125869572646969071141568252572200586827125444789950318909441739331027249490975652009686892431598774294886681123576454357499403491444254461708487252087869322825300923560354389909041406068905535835713992810204627851938375786590869892181145417423152254923646060447166534269528950033981090968887665733003630449913095941413057956156690909497895181748156738227954201436000247033913654544733016397676921009697666351591023644910403436520984422790180456368107142348862831811545600855933736078505135676459677781331026140433119081476481030082287806556887916617376522709464384434907838325736981584194945755977534785459086453577422894840551147375548606822362295440173528477660282276598172137726037938603316013396606061707420471272153726311059255799905653972926481714548883261683905908303974568198064487055919810265958204485746280198493491655108216596902585412372018061967401456205144484890596654065498240788652533961038052790129590238912703597112611341908308612754204452371608010726253176514845777647579939967075919361306612287303108829402932665722348721111543807274921172550191484615096860907936954956626526259511074640548921522231269203396644929149977472740113149799708607165349893916653324623235928639136295482145914444903072797869340287134259570850345434711582848626126657572914441342652482740463789220813034964108130707531855671141943298731586875074310444822403052808320689760635582563907683883840474675899441772685574246152016329502584527297758213559833597141944055487672922379568721313169793289299515053050903696050141735603153300690741669600578750024924514251448499626502039277738872382609828295810332420783907106140706661776239234992421787372410144715122053620036284147794406598236468212171349457839654557571015577769944344856061283136454521074710926625625836980752568469940674935827819098876741057129418456542093310546501661365978411797658153292585233655125002152025375373726930236364923078413577168232224441533416781008112687555920090276677896310608600446336145109188387812685335593393705135096407663238487945771264596163364373039499112078207372212099246544465236997344178328589841181883991951079898831941809133755779367097395632338996455349781777017227322756995233326592927764637878170387903644230595755897909536187776291427625050163684538010889689183513072387926160687838880514008192309811622151028613980525502471886002022107310316655035335108325185695283640974342964621260312774509371702094017146290498818991536313895845930076501559404654237985306497274142455493305975322147653606171194239966730348454055579059765954953189736291823066434458355543124139775531809727345518990011502922227069008052766072945549184534205481007533571025022154528523116699831445758259066854731272980057952689531026337000727397049888141542765684602903100618883735974178212084848917116580880222860413251108885558146066964548141357739243387705500829437771445671277663663141013640898248957441438873510702714642443596948850093396630793576710942634740125864325793036665112063937916141026447081906277921418565643867076505268852778607497250335416236797155250351870771766149614841839790968934259265355599550281840085978415887385415858740757575505419583133896627994382270395638824527708187727432524365923391037275483740952559759011926619494651800341261903533393293252580723351319395414502610628372999985199967456566747558468852069686932422516870571117835401637499958728831171060413357578806747164682192065693355463638818253288551046745776264323153592574653303020550217637735247250661516457011260589500879870745055101239851267005896105736177280221710532373576059788049044492320938453101726778849836151847906446263951667062176843089314554520183568341854519792944187507592900067662388036566196347653135538897903188502752991888815342389669083043663257555369737537497535163647103052234497668214722549129710826161293369322462573509613666173668093178647709332911727349358082898882465148493726919480759017154334713203464925286574571160637026109746930767966852235195237212248271399425437583564262538429727162497902740391169845143543290292554333476383240305316176773325452728749526278387646370905458487202831696172939427507981932802492067808572606773118429558843232552217877385637213900957829997945186583737442195280810845798849388708771190810729571723427802195692783631318828299489899783501193147430395918568206419778627376547616340190037713764562748575869661350643891854487162091393612692477065862228433178340232202882784233390506862468078701676869340643546570570883819228015495180929035377022967934569400661897720280182024447450813204339586888925883431649814232934282255201628354335789572842016353162736608182395715160507717883444304150908778876472351599229109151097623122040086568964209605610566258510170529910199597689728461885436105085535491964900857076465916487090577477533520863275106493905849971146832146298087450372398012307472575351871932216604153899822033349860507550047482162931390526629463817030519929246462041097015310151399392126434726640286629908294270550173625282978661982254155716450667588808671991982437594974017235077201745852101052850984513699558576694744646575610105412687731239901781752347731261392351190196726960380474413223405850876562755309271129069354892509018174642224056075686067205481480056260382198724890920369180557735289872262890877086343158026440306876963538735863942947998188936628484432274070138342404407173263637762623010627585219037878960949416334003680574481438029819276366172443379337494874654413333184163267390413417274499336161616293359101095924674274020863470377973379187942652461332837596090615961051762774500799954580532515795241189337332945979780208807056546508418404150720625599152069847795485436254752704607498402722431893064201239580820610529460872646231649863641589989745167174080175833049733710578803310604159038964557257848751599057566275192702501596210191830358879225324308959599669416723865101972947201949616431507408237859668960446759324736342865011041055789565631587351828490732947286749018469380477285930649903841710138562473519945144722531337592786361055601116825810079784453044339179094887585210219331426430781052043093914858368760443843640091915670209041083864835701163598965554898127829139974262592086162711650035446590245704608439054572184909817630714921423571504572354318462043573260529888642150425013399049198303736859492381243473031397664684950567338180682655503315811889875676242608325786540741968005781662396498076783567816524233931978431213545043302656513835310814018087255733951655784084627262727792156059655112104144303834219741684654149057196092519919228862214909605382359893193325254186551795352139028276429569846359991591391185463096919744256024813708456374363950137869468852101869776967212623034577422594412412971081667816638243854095940409566000577208551266392232252980971186697263359562245886747940724205410373803184734446646288737741726364663626653217628615655929190854902517066752411566039569322312543890204515313067121632445242329344498025250474007050635310470782353945513241342600134145989894456198945988396271533333980491532801837982419283782088734097628503734690298565740987204514506112774739368910369147411470041797454046979462532580326762953970586189267617210211901073878397607273475282461307538137796274868252139097236867582941701878103952784416523565473506072776843733594301972006143635615045292374086114415826681785998660585385220750080533519930276987524863629354822412644736381204562806571932137576156132276509372501759292158079001390265296725424907168790803166455042292287904360887095854400494834299281640087217149492573072482079610099208504969733661076071100087224487655844792339462627527188253350917823091057445764578424843237155364178741831917427036947077898361769847929744481206413363316517625511994858377955198922157057397754088097173022360728122189378599041981173791817196289060743593618911414547203416944194036362775659680298487029329138752064794927456278095558878717728252013564060912237347459213477431361309599566383172770163291406706586318628907124811843692492494179264518123181936429660539505038866188776793156014111451290037537339504605533457951300725719567815585795986512135237491480912160593762909013139512244297608685565912016479043506063710165347824462323342400904137675440955045799765429800809806397352279453736308220622740215303591415102598419228966909007494355498276754162641328506136890902007826057074587836195690504458454238082600429387540346414839780240272036092328383091036437622665229403775411653542096859951690336012534080402058104416527718973430902705377160852301744174893116641807501984220571638936852815738715155900745295507610906925487270620526517838121553509010781153279481692731026804036239025171331101729688950249060700086866553204211577788301713985965362175817189526597783092010489505670878103698851927845043822904948623257694909865125902416889611957583138577213205227509769345841720454290370026760697392435814028633977529517972023782483759279296797461264521751843985171371218742168490390428403430040509655452003965655074454916101307931458263589012909985701842970167855222832915700111049733126085449258425382243208348746594627212515313056180887954848998143373601416524155155437197895157082650186352553412832652643583143992180576815727946202274965771753994296575259637089574303140919951253601021557144358089546199219442654085924923233058058018123829515399726271969431040181769844759606327553174169599164308040590319395115908556338321675836629561282305385555730529064933587834349746727580688940456410777030176033596115776075271172369476182495487533092442975837137200884149046804132659323217590516453573375249542114124039283842410071503138244012332736088010361974300956018494091777026861800168410298073470925054355720991874503454994143059999758773906593958903567280285473873356643053217660205764077068469826773823122640197373448394180626195133579727697500990187333106008750453415169425685356681200795630854165119961875174852274227055413176939106469808047987624308762350629495738359500166265268148017438608104651387918989127521969815502258621097789875550365154179328892568269021674231291560389995505814396577075627340347911818113877381729876897447144284597212400125399010422625007363021649350122120535087065470557322248831490318310463645753131835181375329118790026316346017551390108814272702588671319922537050518085047230215224524533781775161001654973842325940978803439907243567699026338733299403539816600255606663959355745946108111970340154285390422520802018623432081260423213175454485201495998392681076550147117097506802475187179606312503006968021022809124990533379338576597858690469499795650004509556654558002288406122659521757473381404470507516938804919782067661683139974040618551618874834068690236930574067837372608637530154334507958124266304522894610593821421871656193327403450880672710306359217169606245257824546269329321223801368558720866544896593659365181599563296003241308531683267728904396037860181496419437719435930836730188502394163803677035619128944290279454255658391415654944997258361113917658313488445053812304105734212317192561866763901620444719958818560345714657581878880724418623284846020023808019542228173707359693931949112261477755856158744958981386014241182289619178190990747615289932118425965037024528946690806378762267172519390193153356476077687299242007533656062849569853170037591085659951572938173616624670646654612014010862833694586471303801266027670035841801801153105280699374585821988372420579838620904559616658798602620134177806076539863849137896351533506523902344464626397645604730414593316338559317728667215682289405453626859081601489354812854678489655282113618398580213213548676173999873229139463405366031356967751987833523854716139186720162568325393202275826483729972157100772766176748953802638310555706710705259302662886973505375300830974529678955641234636239303252210055031622641065314567914376699472851209366938937612311139838394003073032102410290872715802856796618076934605357059985012773825868603407815819258239146112765489469900432655925354891065135068425185267680015215930010072893314772938270559877495860975658864148320804786071541884549914585376577192022172568810221203484607499180820827763358151964361617031087900076863325055255782644865616201236609990546615750392200166428711556251948999353641310770324004421118851864391640892167610599533656175068720315963723536899915053191410035714978007544833793523497787678172761639962666308677074953458885806728107574531826273071401138518094965034271610661009828892549045886910312877175431241719805147338109722619786099703433330190655767622611007226257645974279620690313302380799227263558946723128631493089629510034927292732849513204042981037748496163246166444683020827657376875667128521377516345130017071458187370749562730469890444589149022021312984292873685279651595283744949485777445818205398402515937502547645872456977368727607459947900376474891562576221175005946967341950356459985078466405558681300042214347718750667327154195021986604105380557394761538153956849629399256808154955377995380752134532647002353711012732103047922683035399686066387466031442809157798157604242010194340277945858429708056247535574945117350776794609091780397191862234380700108491639655841290556279931706432426565875630284340684762510581203871475297842793389979674780740535048866757957839463871188594213064678532158058071463045817029315680710179954424877113431093282833654649789227067232620273459277452200939195651730069060465767597654270570937851034806780211843025242672971222095873681813842481535905056419749585977390423044539905469733835648496810245455708216097974717963436374580238109622445431172599373043866606519172731368408414402488683974858695595722945391600687079955439491527396270847793620906167264520475031614754755230841040167774744160823745466032411823544276357005387146818617779307000527274448364366397693545591001022429243491555692229340884597157767290144284773875861863138210124645881878124164434238280625509842998001377652898341106323835201669583480767937655015712538293718012263850207635105469722792156476509325555698458015343286999547154782349441710919575005711402853219368076110194925021251120355683422856636509632806675705366446502427449056259002654384129256760362296794401415911143957919018147942049585803893655735207395737302112257405220503462151060115725457246530986667672543828051314378900536342211318982402052749008510398521829661447044083616139390979484589455464031746558166585989673245600564951508159119772382910695619555106935555788698772661473261657434126525858623161725294898740102551354230401386267963874766412048618735465915539339537006560615252499360551121866255950137253604855883947145873917641569159364087870720756358597343646515752315092210508193255246677304647842003688388556891607075452463980773797626667013317531562207625040601862838511980943725165104111902292141994282243429463382271911725535433989413934791380791608435272478306643176918554810659445079564439304958339100092184314826940672993612360076335076853883215873458313460336947807333223698017855632992319386489611636134043084998002560276824078927399984290916364741002017232722762296232314715655479246624793822868958670358042987288973070111090817956126463100871408603661821183160579124098665653499855861403993763351400496814636567102067414638812304484461225246459467333403172346799175639873806809792199113142808795032761468838340163847265128902778094648562918274345814176411572433081520929780318547130739052779855135487696168613896094278021630437371424919824435694869365276131538264727179597798129082728404523128205401827603493608299977966706967120658797141890607496114885052268734725158377138378972501384748989194961798625651748047507375446662997494932388861376846114552611670096690091649184080458626686274551448298268889825246074423779347885246949417801102905170817466940502909029576748221715452427854872190967741284839711440968348038058977019624085496920582096584593523625998047028951876644116862967074787526069421021124266970189593792402832359109047788045102936931395585998560063634293988036221712649978831270362393447151238232580514013034309795144799250668089455830696122975089390847972999591434884966253122510008654159216871560572347678648349751715860115831867625015348920031797112683980115540740990048851491785898699524221662234444361145245914488092053484411091957858710368805461982185318641093934150511111962303359209553382086364137043855484130300924923890911338088815773478488141414731891847890494781795045473424986964112288845670191488884020318662689513483452287971126516549644014901901283321086194135870548823691973196117486285308113733761163185830718418688723160121871282536533058796817859036072102303619212427058311391705724566853298407010559457569731561455445035049109725457415058640372643343511248794218111782743959635281782449330803791135275859822695066033297121638110206640204227874694930144995956395350172552267649003694408996238084870518638893272871724324452328827238466805680272305275604273485778880156386453897229958424676956677977231409571791472154805591960949430509401293047812597091775835275273545732193529177300876337032201231771949871871481858594368422098048958839499774428426499314446059250595192459119308647692264783114919965773412593494485711132901541021365793347036140554506593089396387691749785245694208401523818495683432822220528028630403667231365769488948096054849312347016989823309674256828940797126990405830801823590376587419517980718963339324418693468222449275793837544305853859942018095404502936003928227875534944198016862625939919831294581569211282304306041007952470745733252197496339496941608175276568476663793753688969599373356349950801733981036186180307278105671086081004448505555305489836414370017474401128970852168161869976984211082498223576011253033116556424042922885315496608478785196061576543672176453281633834561925535217269865782475260116177675282243581188329552228562258998326831925075715889715291866218890735904721070357396027291364132266789878901280690462428525475793344024839250667885708635119882533214306646576799417633778311413036951324807789419971107335972996036257742632079762502070181430131181745842686096845375336785695015328426293246818703766718347756704707468790330856773532863727099476351812203180850272273882389285342034604657041357264653836207354975464198503075841434380924532627665478416285161192030672242297240651986652931245895670713098866626403736086260459180259098232396734878751515675165078320413108582620615627879175409707839566771406783724505961601288305152573545336123718183523333138623062840471566940032168761172507089334555998382132439682712710569911055271461474838357800426179129159528895476237294251568172269461315806728946230562545336670590746097381699052792986706355361724011979404899564624235470214168750901633191045260041106882565050384677209134676064773482114674869928988391954722580025348615778306262275125995283821307130968542537006171855906419040404927040004213620690514317777145518355540167092709832336201774954177700349011605624247814659116079049093552428125113555949712043651674457510452646689060359709009227937876675215555309538470476389519284006040180102678803479437304672898993881400965541951808899648934223538286084216584085616601336156041660071389143901357748991267103752768103840910074821333021528309269656808726544859723872787642302703433778286338956384733000496778075836180493819834753310788794328833905470891905541457224941825728036941424731572177041440337440110354455538682632337868493790254355385506601344788228946894246065405415449945103374781708892177455402953789442330978869922312949970620420399053689575050736105530221123031430077550423918183952019301821164552876475241428832297770231480253638608623865191818594737011588871933583068877643118630496111029188421867874047523973630093201743076016835215538160313954578323579029203708839553258559814202261727135906277825653470231938993550699638919192551647933900347230720294949545203016847559295313461845183176456285183811729959355268585464666959919592603644282546603755350233744978906747067604583524314937302280259164895747920230274980254799346083397381927893161037316601900783777909762454424437138305217747581543063898153631948406744897354450461513532167807973005197464379207797197613310695534833824839159559480399434581640563955717206513001794239343570586048471006359465016040591610466263727017793747176227634254700740653023510655301598072688571972382355981769783960531661800222231633014025996812658519572052238227687212380980222451452908526054148288135379366350808818490698433469528340108338229141512174630858711025163538205765930168309518794854418996988020871226192717433517187138191994986158514326345435640089469689599367118950693097747278121399068299093207280171289117517735016352504137804854735383610099831122950719326672133762927695048484981195223223062362488020366663073297504110170950060638734299901558414330496308119334981447415095059293535884876989040822271023677778338097991578456763587921398840893684191064649950562545198233954275013434036168347096502364547852729931724821257652874389309235859357292324265219294443638071876852230027978005390816965145410163396877457614589515998322777797499795908397369310453212560657841755299298440540393477752402512683910830236143483132617533928803659678115224760814880082531716115568147716853164350144726794162510215638702649840444659906902282008686287662184138173748880684722348066287252259292176051243649845490601988804973534942905586096248233773829887765950425325449276089309776615688728942934113577121353853057894055360754400940295473641695768054562829147503669048671221505932320976564838421933711681429837171332331856785166593961412804582139547643153425142876689992239027077425073308280477634381733942446192062755713787501724260115677482004646078633064368938756758756560185198713753340648384781849927104282667407627448078168282702174581846284083909957875611824433391839480156729024892727817817742496339905530499605631904834909719725322751383504173894993347861236310982144433590032499698620710784498743846690862244704217782365276370565926018314297890849834992384652006077382349590098652675509713973545804491531017939747561815503440266072011196275289512631790040171129065697360866365466343218043469774017627846081883182718724945521166550982713592250959696166715386726747097013028896983793440384770226185390015484489335487660674783728647122534160934083509755491025690743292367277397176529917727731776584559563686672505775266140996836795489874010364959480814384415969818782355634507239594297434993570167377382260335390985167782395489471241557523801537491118245071436813743102833610920308674184722655984974758417141326657287035933740208936642307161358646058914154273757892772442618329060407772133198297308368943444767416976053183360113337374523922585066750125341848550063550725264049209396382971941344293650946864313263322732481723081480094404015586961372423090187769222244914011705898245924617420320930791653670279996410247125886729253944672589806169964517621330056251348167025988285972913869417840747922630596050207768077858230508775182210986577578279442636304396144737077849178650137940663812569997973110100390034764594996445790601557049189590374880848451794348098849599451177417697828427673896112173990498742579528823671878010180125508366822600538522034732257023237737194907024135788330122701082155034062914663966678976645043773589624455027323707745231456795509794940466925316802926740330900805907285245632014265438775037700948691197318313272416862431891874132271458169801192912093018593277498231390199756928927209775869720220283978267987178150901859965133622611307548570177372901486889987653425709518318633180258826336661587509395450624869750253632088596263530628791291545344540016965083164687409363825893236708504385339665887029691867107789336120537916642196552241405730929527707279421215160233905606182533166216310585746732013206422545717636898947948100227980686986585305562307925440403625101165659040182019134457924457226661159554032740801578555843176424030379325002130287577188219415649759073983559442032201223388044509290301564278450248539945167079661892283722335769192819134073344358195879863135456776775373615654736589718351217888790406862027272849959116310767651861736365073952521504756661500006687884943542021207164782288729631064935909767497560777322041600719448461762382728119530727275313083871689267882739753494796662003385434902349811071506115616556119102870376292966768386382626418614584822158704843282882658748636291927389010369254510389485779099388586782329504787495391124495930991470659010577958367767004686673219161027439772120467375001097678761319863174515234415275438230120946014704479864706829645332866547296338850403561300345477951992557146319264174556700991801919775480704816620410772074361018112902009940332487122738175047917385455320423069218962164947612741654832026831583656740353501885917612610587615889190649308508270245065592160582233148163249947496021598913812519711256036228908534074244199932574679631690067389996357267827587119117513006091089248918370942423288097615323048029069480467981629919151682667186422938130224201883675744200907297425979349782253408868076607780669677981558430892765747298333147123330182782929390240022711750618855690611080584554158867626320722698206828835696657006335363609609453278772695339552397034326020164231553684566721020400396426971933652510617108286965428048739606840479602080908646444611568977374261061569767389042211353929350771713671890762630520044178447567219866168985611949476668449198505877906704427126004488225158045581898147826272087395978731741166146005549960708646980318036252627493253889477033789342527813135542759089802385737972229943085093910783430714899156235831931468554577887562046833374152190116324376426193224240850705852230106981447259126580130210646830906978463630033571451691882461597182135750482230867884798750129810703923373513467790842565111305353109739379792329275538379956521585630389731729599455002652226686971024629380282253420405000455829298272486925031876710537352191917642997963681895406116557098628430467497915970834141412625922441697619465932595902051784295578696443245853917841571500343316946586454052405577330417692927702192331297295403918463222100471711678408386553268965459610939479675385934747577611464646772484552205362389076806000519128785695332800200923902467987439942594134428088595118016130609896781558474658101072173017131543466528537807477467940503558377661293708783322815610200034330636621344217369524216508473164108064170166899457428991502294237353610501809702714785951856886637559210584195542876380879234230130596175674359520370022714118223134928998048296224110777054384901013293293835584824902881424112898300079739596076111860349592030776577699291616518622068125361725330323215499264476232858655398555471848305246302349253338638769270803629206322635789956068264540268315182665268455081827688256336858659670166798548609858973369707088815012467756321574595244524387205001413934754250564444446786688482750134081833817645318565330908194087192027616428815023030759620006562617256891024615937413381546134997963502272417285813514410122130216781246202995139920600751648852598449335719643379266352473162557063467441229140044576376934257770791018015016194542044597440261169251623321170559361152041941145388107501473842756546513639942861037011277240407636504954189596283653861751278562286443164251248257943852097766250760949272989494533853480796779378451948259245847711756021662762278558171419453883711577070680671302497423746955318472321656056270234995511823232981392595705338118817260221652508646717720193923626808010623492034269524181353409546991147453014900528553616384713749780477417508348309683090963656005697590933770066886851435984014026604557208444222628999199947784689431982598082885352382450597112481407968587947638474671982415709004590800094001999673848866346347918668561824107447401204427610601471505135820879240858748986004131723557490865344690130429878315708153853829032292183852062068950998210130463117610621233873583277458173387269176599805104242073444340485994100064132681230933794816766576087527580462390375084056986473432792349572579505724295107844429699030527104023394759162610041859556496750289857291376907528823284530479141421635100874738849027382808348453783586872669049268671354702376206986679809609743558663443191808944093897256929768570091656752287188403480632479169370560599509525960297459037976260688477416985104407349816967148660464573151649458864947873773603872373732571629652899395542064988480993902052879831686602315619692362907134624656931626111417608473855449600080608919218816665475996288767501472549876997413182574562547403319019173027463231854271166427195962899494561735240958490108988405658504453273122748518536777422223743638301359362946367977822472541924542884850836478651918238944917733604187693446205919225989376182110341639477478391380978820154889505058738866456754754620061917580169886232154866653648723174207632484158399755225399454117232723574474976647887730235024929666596455757828430940967873345189058753138077657333475895286802390885386516191303487332015002565186679033012461006834656546275983236734913018226766389961823270350856848747006604613917492774429844767196003698640373881042412124765367838345577608306082102158652959811059818834025005376551457708815160194914335294801645936651653399906032932277945742012631862570952307529454889511612933237353474257944549663242572890090370833750814438728621646029169009042844892043395657814287546695243768828148809095417344177675002887166028621397215352577892694687651062597786054503796424945018142344566129225545368069458301851387065519872137286663230081086290475810076074242219806054815121536442436680817095923157366038128427702068877004757117394870765736919949438083069119332727215046975726641195529085065933884512917660438796070772777525475635042226814039370944834695292113234325381613912291368787845023185220895873103014071596485281380267985301307002654067094128341140284207332390447701165186700682279608016597490866781232563256850148572262663088339906784573656460585705095601179713284161934600057233730130384191360108585014081064635875327505498298323072947183027053332055400112720726856585649519378670638016392337756241205708607215500217269841194069952008753721831340150993280231388195207626192187723996327792220303927757223345889644321532911441627000416512965011885216416639746500055501884966387509329220401967318930255631750176175559088543387196613878839418100302546181535075797652881953884684123204085793710581428061126393490454246703358923468122171472024302544826513047341297605220296082151835855443423109246822764657533790669700494332635935901761031263077431906445704054583681211710398774211873888914544012104890044229555142265775894044472112434187110874275872902085356821074480589864158990291713890195254845327296679143063390317813682146517382059146704059587279994976360422112519142263177355556061854638753691805495251157139435425617424560167529782601305687316461178918922838517105694395975448583135075372268665089583271406040620817946868647341921840208702456996587854768135864910248924830246812620852810842078467361529574315413821347415228452049859080266391586322764602520432907995404798632102577330928892918224097147262909202818399559200481884869960879104841213128238941505964060012888042316344660272971857225078927529375086486205837405794775224329606022113018079428819323433111354497078940165910602131138751087978815682268776549119721581614805047031518556708607698577946862366807431229420638010983930845761374769391918130933595182479473871406064745677702371958847617109220991394107677551680309682545594607252336085862302516879041814190790075074932435318576073266870105966112295051635819819731431237258781888073768490066256917546530701662131672159912611453488529406358957906492166745241399093191106524786941439695547950993717618916722026923372941824813846227324009576595888877967100298941990605452613535919724205773138610128649687846306277897519875007573024933086097029827540603167893669553320939087079755596224466410984689623803536102066045634412714106787029759111069127042933863824363313917766156373016105940593183012576647101702853616964821544807360946062262319944952140540128110945658467857565500478688775722752817004120950950957411931857026823364770027665039519728042948705515021085028032174950410460942806063227813988030529712485730738599444395274287201547007630503013133374666917738999126672796033408258732521479807566142406625162800810706649372881782841063474257047767285468331776991525329976214138534524128294658349928510609632012160167306040659093677491384134747736325644896095771897577806277678014998244643305562832450351138658345700687030753929908361020525218796438737448748587158491671350310490347101957909195085960147078444444491589743975640088767800709628431811128706198702644350203313990681901979278149023505202313841940726657155005785315777730909426983119378736395435226346717694959578424945411366887256335421635197577071158191811625134335079572669885410946381481303077798663422962410604146730596519100302686467845186431236181901713198321354916522431484327440557707992026383284874921800759963664016537925431701615779754247083924522565654557827173306364642341329166204429690563983899069872070673654371896647237893303620141180030985227905286037629837852862014682206614928310405108214703186732911369895917175343976565467953938612590229983877231619383592344184823251023212471625104314100420285689929777463358726520078171964742636555160454531107497802045696624615962575100197980206104403249306502928461566527217598858166955874896389398369259933632931857663924522952522335685064685991466289315418814388833300274662584979077438962868356872292239787874578003856384714791318961331564717993557223052134941911835773589378116183713047573450042955279139254224498246670815196325493833535048200057704833051253434655361077670917105777340531547084370248449395488554491191771614704934774502318040461341467314977419245011964245544997126985446598724837435793309010835196107117574081750539806293398900860409508055362705900790499579077218317842813001170796801599317628686160189891050057814533600814861421100230835010396668307507719996225275986724140840857761631668391081694462098670253868428535972754198305275898380111782603320295880566444050281758535446450554261996345178855521035700094367243163561292342233109844332782079597761231402436305578407397620890043553935231482153442033617856926599582230983695579185350125144396146071501505301757523084470671453527090996226858017744949731213751282253355059431000907010618836861985118111725692588375713943820874548380516671504980724849173971428433422429677382765189509834665302177972700228425646199774844375818938890015622976554377813924053244776786675996496710181274448400359227421362052915122355801440443769177011597221436614475044461479147371121601715007244057416858860929807867650825546014771975302036799858299071938201766034398455449507447894824195140399133104872662570282857663452199857464287602692052742912257070023112922916669689260884311606421137968162740841433062751093806805146261261436098416040751942127562186381858035450463015770167143722498724900228295190700095962614601053783183040695600685689906114678231416092757142420686748584955211595253617865962390683610017553741735431456746427829590915135139249400634743280096370797308103314047716333843227885559150562765910140532103782333752076961602845566364046977824836263202149092321725330436031932043370320398476192803021165526783502573894130186232773685796089906395357253514920809006599834982829794738780801671811374393973974886818344612992310573731366222927101619942318406155890531795013860802124945779264012916119311499341238865796983216669948634962292921502435106010978642111464739343832136399600653466989380596366975686016510852768576390307542434069234680624747699874905092142803392533875956703278734507890669615498878834040192123269571647389049273667196723252440857060268936917956970838980788370476636601216379410216172213234563633281624134822270932405289384951003255200148388025864613936134353411697540453737346011821082214996465847202589416427136516213803300210954157585268765463474190578626338183499847593534973162021160212872636641757160724320885368854812960873792329691029306295648245172992917368386768677170895670925191919508239031304734240415485212974512851945828733072793898418321190404396593651832256326227090141181592407597169668359333474708667146807863001334079437849890620412638652599179736879156161175001878018020711713797113077625529982919301707148237912376829428386784141850155718946101543549877510292714024431327632559317220436434222420985810480126672740541192285352638846889015246045533944456916280549119013846713617731032082433218633408587856053489460551797284852642472471061031321351240354198409841730861415383553879281190948742102802227671943668715098413146354492270774961560617686294242162107377591611490154624885089515247003159498924359652862867633179781865651128647594139198073074163066767122670121585389646113601177036357622888569744152743013035528971151884065751328102695001722370630142247111070702141912340826924877603398722624224058959241808638150972396484572016253517555145894016741001270927270412874693026587614226102419740212936647325128848596112722121406572360318525140584342207859174611914267644039587500976452799690371465502141914519313400856820246240393595764523480159410434790036654612113055127639852511943235766668498600719447907363896021058369333438575785482722679667354277715347752194379012036940296963999050419480204937594435162044941493873671737549190035847796151058915381018229642855181686536212281530911335892831676624481787606638727028511711788776290890659069758436857688743414255126443332964396526253349266223759054985239429870448554951693867874986912539832764626724715400421872032487422224873717821993925865067467349551631336151310251745794489397308080671697604650643285566376035437458049580607469131945347873233034411203048318907059021916374325671895907930387509750254737074130376066886895653453406176672798903172998525324692573088654343016557871033641436532397633015149867694601454113733885361765784216952894213643231920040230663917504026088976687711293140867749882553242201303696292802966275534456558081781889978075362243592735351757804561966841801013367481404331939130774652575695408883619241615642608508357472583713290823648222880864687431266259073958327142630439610275170825690390799642602222577224140368254866705146823424910831403404642958789404353075732434057149664448843062127859819969882355074215534488062143868279554660185898958510278876395197291101507383535344902803143075038243860855077170034108020575013978140405964578051180200420237113831676931703534093375714705148930185367726419712613242859895475974023847979563308574670469889812689446673429249791766400267866861021510774151929120502204934555274082227519156158641805620700349093829640905729160189833326736580222940429589508583599284386629827721015521523321000617901973150349422072288272816947882498797682035491553092002254339317306948339585880324163552746221699713822605709790918139246120455813983118511902103171090026989212433847550309295300717619081322075396791914029255792340221090862891957857096094814212130579818222217755320598283006654470715881918393151192788124415304584795121527928264057850138494945882579895523884116563517255130670622165619884037943277230868953400665016595190366068478596372562933525928280035201714166746399654789763155690805017553546010623006458654049565067325230772739780258318113681250012122404942721639767139598127907039025781418597440179446328889839032845526629594651531093933024386700258503719486642551531914080152974260371257563748522781052398332814756317208107876356594892530439829331234810862060235221373733002950062996669372702239667320168333758649080881423314296238833443482791479457639525228820983241113936214928870541963239847933530608844266258909184300465043241987907384547512931605137580687632464686236427284332441048653962114115362067510864666182301141449795886849924283375163963010636651251301907267362806891681265165053811524218756609069996583623478527070899629802348982863546317766444060047037621626980429230478090474413252227122594229039161837750204298590596679226221350262631727397577584424748620856770752687536100210619266138457844539254684474427926560966219774716827378884560502768490821651168159463918841703431699124569331822827284641684984501459827164544160523448597348041902173080086085218414885458657289772156632797806216914254505343099447073520354163783725842903320943298315875682877436022734211330411566369244628527280080163666494732548061162999813837800741993958893640071477901054801363946545812694157483569864240240089376412440525724762971848197404787515027837619612626519066162000118108537887726325897430040481198439793199934022671821567183711103619209389603041930220460634297647583838034684015873287978066076034526743042389951191293183191005154168155551815170671399424730335039892770088516883683692046778224931802031493112310169072787022997621715703108080295133778581579196875172543067191175222371704253850001187880205438300083579700910101330727949426854366398184071845189738952698326026584602519813834794352351054011854435899158137619034444532103189604634683151363599355032059987511372807874551930278356099872886467211637493040249177452957388703251921053637572649138091007293263803085420616794608543318363396019032854489798680605327661804349540323975725131452239973561655016086306931839603851336708149841924247946197449835105434459001886010709258362203301188325436267988318106354585690582263199704010697899179963109812936408240450023594107395947722545177540339418707605542562504052938587073106350518370588256198593825351596702940392096815563598643895998276003326784304112073309885189783222645293731117304063501863981706792552416416495161965745417727840117333403717670310204028286144137718778115265286161426797947558717431036327186151810555145977632301920675023891057781538514035217017031936098295577422370805001039559955332092257957174043235897373784886734855197670728936700591375999278292628636621879958571875073281628190954947919335780252155953338898793195790959997176514797033387962437753453258082835150781434357864823769704420352628875429578824755931402239255623269550504966046912580478666700794112587494099698408250850546428729611391277252960199745238149274578968328628217742864710278712751433077437474010128375732193601972682209072955090203541393680897715989142588575069802054131354072609154128484864668584964496311083493016236555519815928988292003588412053758545290531074109778890494533795153542031254895447996321268961468866620200075491193722418451261711017242494073629610727872022690797541751349543014432058215499409032469048019372527355495775432354553339587073429459402508710873967059400307191694964201619225715653499771557090316001329158262396316461982279874411367378118954237931449130539301593884849887275363738558156147569394583779429712432566040008663677981350738362071052617498187333803359703602948762474816421409938505727670250667850437812220860002440564025250615071335597347571712046962035155130303282100148211072491456098938809663289474460685716174007316160914685442290516304999964858648378983687018962832234750999344691079068869115540242491015353010053431013350587017743594700692595661516415167844712550239764883320359965304707121337048637429845169413427647950809332001543494327634104475062850942206584999540930602986848987108534179842051060339023558440186741035484254533839563943642909958147164821902618787523286170161074614327791924901683269130620780197061626455222862942053712049135590436437764959895598329360679546163214832424870616411691937026347151431776615399591582089957981269194671968691281513994028324707148555903614468819739013558484567818036163761919012402618651445665562488611007570249940920412355515125802969447230423564036918028181947228119652050534721888365825047037905922941920067282945566189637179016863251814534045975589690724598887283389157208816281434654755305658471229917763276572451991626782694957364847163106708535018466032881601875624329468157998246019048469441916262966245970835915780492455863143996687571266558840124786920895895953824181113967833293936579001059898454710006214499863186359635992118162867801892736647272223495765268455219316734078756326575125622097472745967591709104553249297609652393723049299020593270395573125768261504510282023112261245027012787547264628991852501745981707791885492510441055665478326506533585371794090344675714572154138866269334263384592512276184925542180702319385248812088180338020695019903730926056602570555345968560112732106311746931490639223111206721421589715693276688397481534441077724313846493279255463497876222869390488639462789247125347951488132931525995500890450926908848299387483234264878787004398030157119708824063900534872795971319349447740702237817451816189528334343060890599584322134042389846789968685862539305900923606724315631762139859480304352758423475245541679179186066389580415363607132218417644522537620240478497971100828883845890387284320929206331868660856792843728666670301362128225466443933899995339449873419519017284244090114857824335987482316244946125580618916975370070401004747147161522445084660142634816351963557775338216016210197959698229543629973762005814357815490470553225249638863443235461229080220228042172760063584311478452150990283669942070958861779244803483039548640019837770750777962770409628952013084338605962043815978951073148947011114700456646373052294079928045688415085562108936256649825699174115377324074648054289003047038807951882468030611605141319317226301241423206895528069155386053580278732167525638868481679624149675942264295113578409470144201081672891772393418181281584119124793287265075360002954047477107179736605479631996603999482955734856019509548468234920999442793832015921077395930105895872060061876127597851445071979722830004024826475766341988714910295975312642080006508136235119081327887664358601204293889724459099433406969666805033367534250512385599956969015812149769924777069990026400830685613246521732928427551254351198864085086071363694004145048738179714949692018693470441761309155963182830411083617703781011927516234758062087704620027596762230336020202655189503040526229128133720807147242909075953592973659661065758526245580144159208434204852867850163782401478033438410695582616917018927897469428247022391025005595109830630724341891707027979091185058605836773834605527188250939064543986201721929885733714112644255704526171739369362495276383337145813704204533204571851205516001948423266595921385874318499430700841010624784262514830766018136378013385240037287206487372509634261773836752272784631048513462812615019131615189506923515637302184937464286807932355744068211941689210220403261894629842713613282344457288085968069330684265172715307397064987723921731683962624583745599139932271112401846237509704844483687572732014092898912096490795066314958079017062984728087968686640544061818452177089749454453642032402580512539628909395340189257890074765274694208707760943340937857559091726706653220851459317043665752889495536404100985319468898216800261782627052224162900303536798495104103803492099871412165401076951183795259797196098866120454028388645185523257115263695855704650768591659888568729610790981906719888825919072948765180749330756612628342561853386389157189936983391553292763313346628908785741459797194277132977445557182589029193894259181622373952133746974280846391668407159818858992406554977979531330818489414461194321135464079839486066942637445097005970801331884798386552989146149127715089531447008378259696960945664310792715042389625905117175897235972602484448738185328889716798796053916371489178906589343949058653864327490171465479518652226178616146398190476038678861608900479153547527987397837375046888376406219080756406677399342328213364062785202618161391646003625870552241374577818823893214231759072606103036796768651609721769571932511578116508621984931491981078186956586765028318803850798639611873863101484199757513182640518855165831241916612891092252197743595625349171823995557562295948257456803385304577034549962316617121332718011387112433854247991670368113324540289801941661092429398251700108858945223457572371781712841718377213555192265302308443879352664180820589450090133421228139013285024160630864056741048977735212215163585375873073935611015809495622381246001409522559771034412242321073104645743669998115299381168181476269360825257417985864123682832896658165017169131357719488592240822893847624167537774647289127920969513438723402548756070494273824128073510200868565668494324241234758099409104091009058747867716591115236562578442922626779132171491252292120984471362211456099702103008669025176746338912789126692957915728247636015664113373072805185214535291898485138116162393004965186047126732324333613276360831286562968837207899820771248818407472603291313211732296841056688900957714153485497113152399988043043376994436652717127528358570001183237066682450852901464337508290686585412472393148574427679279792865593251903421978934948504767203557343143353876143818526741266528962367290210450117535040126485416959089644191704739400599280512473308349846915227572051915498603989048241398514007657562918903338423299844167810662510479333688430335267540269369103834891387273353121717608263523091513733889504967022527614201366597476819582941423752267554501755021975777145177220784928069082417109254672136041087442572594591109324990423947143358558931289643497128342147341842174748047615344191521253724087781924201597171687411625115565608010932860914597458100250517562113927880108771358783540673923569080519355758062667938217243434832910970873553506767154703085522477101717983877851083748083697490512392934150133466149286651019339354260633910930970606217433705168801986312018658961470782677576206140763491658886988176779237845192646246005979862382201179207880900170514157289769634575571179503793801695472522839528670756302782434645882727332404141596184799936978919193741161396787632603645989891005592729314917157464896082151725822893617800607661600061402553087343251472098592713487492303362867917603195071869255874558263637459283091335384679200769386005372253935269551272868294875239995161153243541005880182336774830450413555314795070913710602559316806775661940636770223485733771694084323202038199947048117109805824898681969692062004425441281263677372339600296329725316961325761707641452447513285821904815932309296096029215462476417599990046429487709393078397643679117701904904488685966067174840763954423890592183455504018932650285417082878149506250706048550665809465460060794797449375881655460010677299046015454737477578342493689631524696087619639339575443193244275325783096326170047156715673155020644523657160202169680696418439546283767871320721085457694958975397732060901688266525099976074538047142066314757596333294247834897089810634669920658005535328635287449471426117839691758983450388107014095868097717196198610544586190909876850687577918166875586292974442607007587131456959605409141637281077555718773788593208410647645426628416771957784780375668310125390030906792116500147915930587227345987576078794230349937503113649095816929440869253015060187755316476346260102755599602269360451789786109728029831212086243952865618452135759744982450217975829031507792128457941106184329146028738784084000206917105548664030422478329481320191067327515149644732353533713849097413525854672266729248227877333537282294679604317340643379228015064109892046824915021135027114810398312353852806604487008759789075894545642173068301139489060943019505853289091956454525609349425010382924877613643932139942539237066119482754899378024521899095284723452869608483468077633654176404477017795573820077409207320754300887212478060458854417541194947385534331421001769676645994938108829100104723933001038703340711514731819702884488130862228620372015876970953166071051039646825703902766394799824039213675340155620467190783104389854688432810699951163974254211888090233530176424497403869427244669143757304809264951091329768523234056902083881278057180472866230991128914241405224848579143632466564223910244803066399415083070222315216875718398872193432419510814431823342136307266218873804904379821605815370403851739436438915707256449513131282064831222839559583261424207517984178982803422902380075270013273792721758066444850711280099824216750196085788415432389199975431931745689385190425441740621534454777353635183355523682756647091069133910502561200425667203089521067414901153767767683149226728890664980022035221385457012023974254495699407351635526711680222630789787734249750685956280260425813233191868502565933328926431489612681882958308797921998988871975266211531053239962291308806755968902421460361546878726302725799562195500702897800540687583364474270512557574248720250900899935186484140158402061247536199962278433878039615596272079224071981190542619071086855750642954260670873484687174775832077994885796956295540748522949206889925094072525365762263023165440637024735687386123557309722642667586360400707882173779645071429274631033812379730235818900514031877824133425616448154059334790634889121179927049756120934647847369648889821057530533815207274693333388533292995281081419837800511829018022927227181798037902041491697146496009696474606828401525016716309040644787282815307947660978272856280099263045945374109232929102557431499699347994421701124527990899963254351412348918514818024679726005561282399047639489195970887262995534958958754553651128965583464638411159878560832062072874883340504576453156883418600889142303698679815748174200891054611334568500283409091799455567747632969961002999191714195956101767486300516243593188135127939532521280593209018440091297922459826042782625148995963504622981090964369527916444531095660867761685447148092306535833295636934901955294193989689427239789591389588511446644429555186444354471172872439986175288399114665574644304337352163768606782162500748669708909716166267178404920488607892604058040857399467384489332167597274483691138121187397392930546155635839712309645755975329927111033698531291425660197490235647702535849611321101890883989893220768015083803085264267953173721535485597468845703153583856008074312933680665468033368581174920546301093758782720636716371185112181542079323320587936854203039871308164164706503926471898239584121307351522333619069718458941000612468379893801067219601721383031563412652674355498563670018634308729197567392100444004691085238467883433594612664561737846894742557118388428716684279182062869498367195922075605382973279376413347656998967561171164250153736730546818892604877505559871870764657061281462937894980564952788305831783814015271400154364714725523075499275808832467294542812941094045812841336543940577910413282922497647131962408964844841847051343320255478806516810730223024289161660262160879749293920179808449815305151923070583453372641590889518910570537123968594961182453717198290470928539827400623079957952526952370831823222943922215629422665355805090176348309556287558801048442515783893788830395749798652007060745285833728535891788949843298882917580814056724041153679585737813205465249416982367041524247382057541888470231401687547559532461960915984861463735372874712233827779562187366787183224228608045709762932771828380364507503846055678180131689467475274682585836480640704490643120272813852369337754576489268512925309777785742747387404059052984666783906834287620795208887114567231606147692794461574084103140720424152059589221972086677055416247378867057904970121329284328601051131553893224630312266225235442506152444006605562217731580040489816578864178259220546180954353340153430953671034936465738606403219044062193143573386192167685773096915362374974063116943187926278191736821110615069053276974798006798046823857040532290643160883513677501309432389275192859386210195442323646270347397107217882483161106307686152534567922503953928030311416621972222219692468172494310056154778688824301375618371135911035266855849381760461880353051543067851611974898161630964947555841340495819663942653688282288673156283042059559849179987503942363446472375987753006627391034150655277809501343399254634293247441775201188179927757657115924440150919682029013313125418842264934030710084614146278125608083529019798544558510851209278055808089567685406041348096351368398185337806777617646996217571340274082905503343610618807687687563027920703757490041234203693647104909992448054972177713263415493144877451086123543804083643722631224396983688464110144873208036777188788559519413264792811617369490915800929499546190027802852865436338084068125507917268386013896162523807693874741735027586213387865620649516119783281405505397021355242881965765849915925368581045540973501501620668077533635215553064140299914798606429117246358873687015413549270232100414426950811896803340954578633667376072315032611517910791333420749228764568404368032825817841380371508645235734678049661595328747393653811508905297314640220227667861029259592979947060955959464537097846456810354702881652207193307294982289513493306565637110754018052619287770532136270005714245983618680574948350606669063248008672458905791466216356091739641068320586335775691315752285874330633017368976806462366168094019023662930441337442029443840144598248585432469052658886110564287332800164776346345324493292776888751452272709432237946930082260973994096115121282976916217899213916623755174052509771095807266636267934234388456455926438487836992224990887361595745109795240667075328589344676421354140644738076219483810460958628318636014442173030184948373055451278783400136142940054992354203618698823375178251470312587585562940485255309723785832009814030750136632008057604291580739096945679169642790667332959707458595525718419017035996844564146468421666529005041317474512266140026260214014416479966561341066218044431756585817755182077331033808583225323476652210451348750448367567353721306799366007714437461451233970275180918679410596947345196544613073138060043229192263891462384991475418596852158776025680768929596459462732156394309206885988104901310268183405534066593791959678481936559134096985088575753050102196930238736472446742496393030929696685657943636416976779138676803331639841592627229893379660458478165766866399032287756799656063138943209318831449359777508554206446301168959267239594061832253822768966731893325151605458864134650473149867021862180491337289365310488869687837151925863778229107553074496607549405213447165926343202149031543927291449586243536851935477754858155099230063659810154498999572297631545093708204394509578885857367564440426860032813825485020033953194145428366305037855237420736776518874449868759325594499487084562864021634497371745807670803718181227486627505925608430274482206745948225709754250331952782638515183622630963656276595770770133756846480117256010173030509183474992309684702319751514572976291532155644793889080419996862357696668036708892750337002997997197240592426163898489229086699903196447349302665977283359680836988912209001573475597143446395698532140499881559907123723093314257299566955482860519220199191764558710807736436828619086767206447964046610282041363857673064718130884233223227977291319379616614649383797469141705398424754136008419146297770071309592783210841119677773217965528890118054873529392985111416139288130271605172589014249198534770164766039321989730630677678754924654932525594713992974489625180504761732509983235490023092755466772305675659422577764876665874207022497862392178129651427255201876578275538867492097144318874264409157795967579703728724568142546472095703481002078491877739228643641849042422523524960479042059991878796735233066977277904546269188117423097688699499124645381811263856763434585062966833280372598303622072677366025469286376026099925206786343500307666422228412062649796031146291640144436573849030294935570014922253236305542734400476210072271072265254378141483187238460631617868302865297118629826930106843026558931667481620223029647891634198240675427245245576210322273086689124341081192698175198201917315817577529556127082818079512513834327958808908930237269070547905426633004158469335165012362694813380240033415890706093035168933551850935436897624912004155189651875641843419705107327265109190865956800190178664547721478832578579826660079811534870403483213169029751196805328649465889037105148973470018758905235972884723665504255542435735192590356261367129299476530616395773193448626312386809307589531440398017645538750387175224707510037216173689936152813640026835174512441562551884228833826402817526649260144268867636133039906286769314652814650736927629050976603444631103724605761628361786681541144702106590116785285339793320722240754334477609962200814096823167044673779174540962636495465798991467442564968994972426562304335023564843560815092713633180054098185074136908682886826465517139050708213408843861907291366372166010798542607947403678251438513062959470355125755853421161714019202564102438626665328584163987690783714377232148954784661520298232400288464410848931140050068003109202688482656465479671929529846418891640019451429972769330953987654836020202064182026133557565177917535431844382532269641780382075459645105331949171431455701401337600102427939465351959778828386155891870587093316915634723488429566181557305512163859584841649694720312273794733805123710414733127854717118782521500975382236679834891406831755530789603295542268592245394565057457209454838888534982435603826167149920778179797366993427552596520996354101125707262312510153044905004754861964135327201411604939727270234194567780110455679859256159765082936541313103802639427857172984315485446592703654020868817058733256442506628343422349148043321014449660519811123274380036206694396045754339003431003055035480249965967039501211060724541153097829691113937248501901261528404255568620626224915966193008220051762642498077309184684140499911950617923877935904205244477759046174489010130479158148676436428633346497508377202726137748172435087945860236810594212295654169529472027380022320704633679241623981939116058631232717948416419413347763807531979028775914179616702298056243118380216076978929608852462311361580976403746951029928573876237340300815466543555471245196273662413001839724960676043320759920233088306901111066038845593934639481488527107379594530145884247973131302315958330862565351389209285342916628250713856140432272150421009178526983639498761586505514267335752820517371634752380341947652044412539760773088296235039703296029221815739592558085901907705827640537444906235990877783593507136666066210277639911552819308107868200491243101016202876261469137826836554947380260045050462775648282581186020740417137772423717869985540457959302481798647815591652454395789018464811313592756036414655560903699628864242810932446143047408486693867723801671872165104914697198351313850555044583113121037592086447183052316157064889194478270371600416881264259746512611806588931973085242927251076532306355304126349612338326700081931478553011271888919845428342571602186133842108860122773638934455723679667262726591345861971558236239382886621957336945155505679779880664548739177425603214291221172231455935934046878341693592441440146811611948150027093326446346693829288212621714740348653019507370502693418025840111667992247142355660057122544536480480374017980145609876182851512064219725649139908757979618457583572003954835192562267971763637142497417091073654972649237510386546922503400950943866972377403853166660887347436899403735059228171627217196934184265813557350579711259499499069928229165806282627647025752488892564140595601065860203633628217383218663886373376444289298723755745897710006757176041079049822287412619520053194698740116065160954170363212461407336351235276144139026137886056098678519166324660616688046505340477047853068353827259109131672110024680659777118477445035003971639544853930356406091242479821154344819084945188526203184217001298447910089026596759936814996618044502144419957389288003560825632765960155835021631512077832687345245946710427622957338559982849692507839775118981358013078570033951573841928990968503278049865397238163931501444614694233088016490224410015156113246530485368942824180451097973380363529045876751612939826403285361391570523860855045730989333487193325637975564852707271186734035857932511024142015947787180405203785808311459050876020974266308249373266015425329227750025332830217561133421293993823816398296199674434692559589666794033383526123481340493161083297576822993940912010883393854945871240312783645191153129857201086041345697729957613654534794544239818725933917364859146102920304395917891788164235002321405841042236265548802024300823380405911234235742814167010671625368789383905357823756458402804376565611353912344037353394274282397977848866639104700878469025494601695158206913202756541604902119894703442202621071343577405251001879354727780522672618163066758839500707691425258173212844579301745460614139021914807911965821789803963069227672308100300323473662748785297803718447086484649862341910438140895254264325260509208771313018608323415259721016440782921030925815236473183817336167914961748583522357328412367788466612800387795108566210404643201286099519392891431716043409947890970255973142205108013149542745244565196731743828060242374813540880191359975101192128145051575957942014551203829369699957479819124952497429654103848954434878251231267326727902456176742287076872661575705034351924391274318524041900134896661107622027394119233790488823411887788185927890194638821750370737891105811519511372447091564849805429058245614082704230168504479877505546444943150419034439927676837271409982251059441040245539074946981212907442329342205299061946524199103989363262946457863685859166751614391017135664989295148540119367416673853004815384988544075712625674088845291782052544995632475428241908141925305407446996992748559931493523406558063635076276499347673548610427179299905458147393312757094480032682025598928800235067046428442065433798702708558796999011657144980307555069591809831779899678128204417869193194018244185846172955304644290062428081657470343161435437696170156625768549708654459142567762611259176253696340555166150321553819652137509748450576200749311568864803706755445156590052652832831348122427978714645968599438145903073402098265136454138977335590882006200944658990467317917816507941501161919384042814130481771332707193567230153238055459107548460439764551383611806234447935472461768970477958051526731377261797734537900983066317874142950506221648375144111333696318636963718347091637532131697974249131014891698004733586627897100938910396614151855261908693534976395549063189096235748901960677787327245467910129055611205846268198376890011974269707979089977943049882318795297440287451027994598521391548041341610898654509625105377326594059551343073083713234597605661392911785882695856489190373476236805526263722815445120487456320097774888893277854953773194969574925626262252885982423490512773745586837481744187108530246383861116565522810424333007461858875341972268183404441613996960866680187038079050800687026509438250334944757154119450171603197821321500398642236855754633443125950449411993310059521302175223744064636583213603838842391006290809607930017498505233674176716795654606393919078314537883661633961570050221244487991448265751189734468493855076368128552191499044260738289940641593042639036759434523209448066249873261939464175078304846283176259188605435695264281464569755331380749507903026707464135152819687354128380600073034914847158214438944251723770590083561798481779962318861323512201073387820979849041440632225453297403709000658524447431001555528379465414571275114254670718890705755299220440029023473583444811654640028289723165115947861039798436922081224414813292390551468292278910951827824082421547789839052551785590858527290130017337507756467385297677832613066373400861039731835828658626604553506149232932929208343344064417596484950950456683579779274709674157193332921814179798107981335479871429516635465289471004598922102883880464085434991946781051425695328769040402052203483565081761894380771486635544172647850504430292703011444239204803093288331183311975821048073368798773769532899722274665776012567465279276291763798211136266356498148247456425649459205104008229357144224391070331365481757113132719930404443936799375694838674091534095579624541742030376444970208568322001958175929036470088252025276521518152510307918553802296390133150088002507134918304210001586363738962208152269886322013231694419246222545271249989283513280263890425592564513916588264928233060550876463870880688506366866964947375419843260457529844441362908092592336557177360758090644711451736522110282225818199909488162820640820810097846943797251774922404237958883276166663626059979075690269999324241912901534359735485550073357933063746756041457893083239647421472020760100443798947809573456164612456493293754883977912197838984949258164034100014391986584703255571198950492544676450322529636246715533746207621642309906705978218301556825582525945676142878687703592184425897808762219535990997835849678862193558621673445373750824098248179412298402543492604544953298940142332765218728447002081121823685951688110900790469309438633801514375062001798172480437617336417848306695999163316975630244499168120782278495705385322843891432010784011852647079566050476807988541094977505876050244305221641160799154185750377089786723701269898721704480920354394767041560203369097631342193431375089342960795883246401145573987848576921528227002034334097807256998245059166265683944871628602434710280919441775591751590610442637950847092991543438279538063014525812101990229386486758515553588294976451940227662865694032610673663915546613405383962371083218728025322547063327581668475518800116030588392104136884653727713074975169118796256578339426285244374020865291850728936155213799427920072605275136909214423770370404582815268645143573784000221416910157641377191969745622590779007347312936770648150213402977026817679176513351597983503282700794540138125110335900103800786070013578095023619769285219419939877277820675065583104226875451087555983724419476577639648058748007477560325210800499851160429268775123394536205646150318991218994396371219910325173197434077567134735369473483233506059122681132788338800093917636203450611705381061981747931665833749290565301658540436818404972270483429991207410176299576771514979002889757067118472256062478012635509165426500685413431849446917547367749921775495865634354151661422389505709464761646166234518296697474945256159268160055040085094607479248362552455044886200399201755539610901469478775730395377956801019785936897220561755999365852648397280811587807319354133617757332891657460305654794149259638143389561339464171068853275071257309690307222451418992427351081139498972406255118837690232237007633429408715584154608068731989845900896364059966553413832098544640737208797537204986097964026754922791915497552124370170141050133325809533227349220378651004180642717083014410978191457540325187686450170223141058925324636777709697026995904213736365979202516011360388426728859631829693834213780308095512072929454905115750481241472045368964864900811217471314444866101404310687295439344608262732348140359892058876241877465009740811942166617876344817039554913926884709833355856777969826039783753166374647019450775156776830144344262607018262194105236023361284961947770314570095889463622525513571472426973238730915447733735666811411124957442777421798225576404586159659919546469513490930049225798138379201383371399313936965073823792836576136889793525651593529099445467881667198789727932869872658767254681266703852725496701000505653384359808594926841984164616720006962281164701303913952977782403207734775657051343257475886176201562969106621546694257937509493729797056779438588673196558422762772608220618713359710978398735623154288524240165047749786360846291837896583102895310679754669494546639821679920229985745113773395607119734086898505986696280182696055783707000214689424435591599353699962722571444765556508542209374115665225626455067222703378415696584471671283258342043442922857774356575190344693935354811529654266914251024307747831796911490157952334890082719784150187457786144328106793536800325014042513617214558699525953252273795219156532454745080095236000713364621352512956426549318520176709111055902592838331654261035912798041243431107561858179464451802989661152314275206481903473033848295054635155519556025164014218072586579470808947581872732144036824625139116780990962385584866652192164775807364409244203815115704208478121795066012870278615832373103869471080378692048924117733053908874136437215648033445551562504398296869055985698336283709388579040648162051580901676652434418867800890703640783131160515829711468286436268354590830994364555219056443472491535588641452650091915892834457748726019648629245325860861565024942754941312219926070107567557078991587531451956138821139070878846861710536124243592196874381851864769829042490261400654853095915456201775590029359218894857549142163519164166442664284043839374785294405270313875160384013326017818962474233580055853382066415770248150713458583909563374559654150273932875012538577552126240951400274265093985889663834256919006242073191886581303582535309607875401137268831525688565956433678849605831513309148839099362083708084830392638713628026986100461227097823024175414514102096237566648295743685389151047455724919953057047498148272360216637316576166631065849870659850552561242076650647269626464628571029666295119460303650215713617719756798643520891485442453851652213118341531686018717564374167313551645969911203551445483271762784133608593469022340462509510150429056756674659456612815071714783013661502931620188693554938327658653298609807549584730974755053362189959861058342958901121146024188479432461137524540533372047648091214152242716498011770603926176228152789755293372915893246090692453366732926857135195418785430048229819801876455284456385251147978461359455197074376360468549530200642932821671576296673820922895010759800463100249963129396785574879044732733421034390530595984915692588136053294137012076568324106389706119958021489467158462935917305500573379432996841932120650460583113593603080257671336734767808938022300711881261178812997635158633405847128017817345914973156874915476677791046505776897680160739324404208485505418543341825616351689802837418668290683006711880329788072385303963906801525450079242640747507288681654317332124573981178441886258399049886889039216003349330387710490991755855043806579605608529432562894515576651340636966266503812182343387059617990156027867480458380365329826377883383244520164251357720709837725047552462973301354011999076606662766318831877344891657944329031988059368329895308084673483767762194124272986517108252682260292009633729734875786536726659292661609735201806898177681817036625262380985233960709443189700579191618283726200930873624367427433890849047539651383503054955376957623490425251274109619811453856656431695903680019936875350321596746863597690169755171965330685000108475735999121452834368394873686758269191065401369051188707243167368261874826269488316421662035707416848848907945736253959614126303682872489390721239194871028425646822752782236134774547586046880699308732437949780491783330220178294486136005783710835680579676983672369276850895403885698521102976422524127402401299364558728600995051263680151817049623581470759513339638169647755623288650176217031958838348577999748840020118454430096358578964612644608002136537777206886032972075953917733285676747468287123019295028197343912893886206773060155988176189676910523117152527649782391284598796939496146090379497689931683846875287911845202371815306241087064683158189211279694495875651833321863195428886553837424696050561964787775279486559445350221638748260002182065758770741139625741678686647769949099387261175135307829550733166979665337013560292896300375800374695835126937232505906588648986135262083467080838753465509095321534301057480761428447450069825962265505610117096221778252520276132690303203672414848935299353396048023637047163138636118098193917740493044294238814091132852625922844757125026924261211844088066012042623460452170733459619826264660637993619546335572010219252027826588569946056988329647198433209881420958706967551736855226214467941822906357002296523642875285673768266153105327852664078900629781268572315003118097449091218966365347413728813037521250704181301254030613870956753754673769041294291926582900191902803345815954509044085554871116697488031752646162623575768432562040593003630113626399073762291502184547830903094211278589474314985553856754730571663194968952442900324657273401350678051922133094463416839514646292080974273368921922551009479327060142153310410769486075855083817740383412063659827296057814017876779536045384313115133751439286162069837692175363641379068791803499753000326104179766864969955778880824491837554220263038062352592098238004775167935302947673904874064201278213671354939961211547807688927402266657283825003632232607865490459988016568267578689318424080583966259984117101929748458798597390163684037200981495840874034128899540273283026134884736716044288122404934276305552391603066796011909720869327287834283602265911256785765225880681420615672753420744745045385359268704335084404558026751798054546049911125564481733796738807978951915101212963625008255933746117541533634926493901427907822876037154928116277184614399483521264148869885818757399008561342689838854284238716229745723307221661479682380645522385321141809788647637853521833863392354242131526152137405753128209340078779621510496718127335501000509759894445646047753139837371961707947833854712660382899381296923760781334922804275039508657351801155960708980779759793770401825037521172455949549276158847711609544879010531869520004412549440243419347354859100167127146697141155378101030635055859234620354658447699327472468000583505577414760047859024342510125845818926415403875845668565394983824412650118804747817263231025715947852654542191666500278990152889316495662704694848467063381049295468050222693121153389485487878932230729017217192509859875277558667312222104682440244890850431843616808514259480691619707843036524483430029295636619215845966669166320759526077179909266816697644473460899746605880333029938513595229661170550863800147528860790578587123339819009529407271848265335748238182650786272671041131468013724650011661037067735329213642415598791151668974242667840504989402005611022066696994205764820948576832972020321753478772714332371756286030092549017323722943136339540742433208406325655044434467158916413478344056556991006578358077072097460903367733987359455114517116252073557946517338631055773629532715984973409187337025645012930848085763549174255776506486444513330452521657832056963430246116382332625127976550543485870240760670669014014474646466720982083329566656983077477113128248847010576324858732766053487907770057015954748144701321181079253522341930673940511429192108257852510744629693244899878993712885039789566261654383501760242473905537216832382544627717042858783336963049546369691809329302986138458769727684325285911689715487089369007570275220929386398772629273561561170586615162948533588955830547807147929720001654732168784823950296601942938120471979072292213906269500268151797329794180773076320461833093770355752191505782953877853058879964567523452776431412235048676997351960859647637218881178891868945741217113745497786912872787472515165525964412956284881059539975975135699403875891677076696836018965047141856910388991971087877615802781067263276083957379416422955741086381410433807694421596520063900102668102230266261678975331412977286954589196006849814019633046346132852273983287135675020010027861137372343601076564604136881870162469165512090567734091321913591581062646469179045644114208740692334725085088799263540140101596987101448038966812405166295150454189952018353001353696583758106824862049577445906678598401105169956442301414936438340072947664837722791953101299582843096133856394372490950072439882629926722629946987024534721370691599075149783296608625759457781235521011332379235680324015898495764284394794890828654885032462268341409603298219376469811311858030485580181842890267977972509629955677405059456147927793354303716653172761414510207622014284885533209527734603794318534879145620660856817679106596741371327006976407301421498035651374503085340062106211682494831284669544295461995475353828978983852476214537558230446599296640256277443967260041116125557681959564646576296193623653037203317721975476090331444233489697210341236741976738945452852456831103201890100785802272862838861132635041602811313579334973315331857679850924732022539774043084601346053110725131850877191887810042997434990203070022822529255636760111998144737025470863714905028866450521114306736832245553675543916237814645204473293186024821073277303843479639814235712341913819181316489088556798017632677319424336143431527980430924553916870817965258432419070789614172793354272554318490289473772665530423097765219280769162831337421707560983978118607687709622702713987014810822416720436902770967507969494512342614911184595401651860975185752242710112631464841478488041716900492264143146873990585685260895428902540490616978030332273541376484257481860064735317327958835031257399865192379658746460969093993034437570275929258767202723642717513368599172449993830563529976159529844740775512640043536749854063608279206132862049483495767666992228017665313346322374374105717771974732310476722531129468639480999262199553528478722726135750696496687197637099129913395464661224518973258000176438457457280321323517099060981547972528426674972752426909133488491528294445017566107548455683196333351263145412831956462359205613841911021652625840421714918784368940558281033920258408274881600165108840222737123362221779169128675424129972419639904475254122300206140741188801285492812446417797558620676706971197745853092567740563995545140430670322951099722360840846642291018693409022163763789790604257798465180779606455089517014964670237669718069629613206165581575538804261619957662112061336187335592846751304997733221587943414303127143019529449757750009120561925798818244769570198780591994757051706888081830750128858519523678912049314169962568774970869442762980376665610117652468722397356100771699797175085045709426382649955627212315732052638844431430473071450619692166274463056810752002599813162294380304520919120791105034894459588366711647821689191055287033242422231933531115124722455949501037605621664120836244424967214589691360786918752648822710651854821903590926440450971207453898488612255501623567910664971394873423786699823217604876574034173297524139733777748851491854304497435486301267117027693130632712751400019222161354761055131263022957757928856007589798728001466293248826360838546235553233344282682139802405181893148258060015096563691275687095003968351952093579046267241108955022832170990890517170903351693052731209760217754804514404856452333234882216198276609463788738374666412135129826317951092722456869682582854877475002573412463981500727725005149800378464359084270188629075650648363941301708992331054118219978990189092818257958517574521635133249305186314575084039998396120090103257958765068832242206357947703532222146697174025470603764912976095400983550595037772160969267972091962501178968023528568856563997022868556955891714728339746342254536622009857191916220134227586788449430253361242475879418133675997603629775517895145977950986031989016171320796086130884860184101942938223078443147793242142833435655101284472355577379597365464394842216725365457737696964010775104442473375920673341647156341719373968893438113492817860178784893454354411590300345516125400180823380505785557459420734925603771889706989622077340729301461384159313277474776365858420023743706018034678333489442238326870897011244796285122785263630369790513006279708286650918573002956670734360400734973869009310913309821150529070720117586533616292849049421755409272721128405062277469786770377883810329030873921972853198158008075596525239812276289705822550087241359008900008951849336374971438548842298745709293333900849547000458382267816820199283031436470733757762271412628908789625499691155634785195735897053383193017308959271766160384662985687919248974100851512450164502494182488012053147610949131245489896741624409226006545252378371906498989816925602239740351957154217837461477544548793595886036222515951024855969561266037012801016483353484393531158724600295552877567820631456168117692539668034737846243566579301918151119380747492259257895799763620501452615281264258929400868279788069999509070532565689639178612575354772840650315330151695819176981442382691340942947651822508746953632635228401928957960552724923364791993243051178881313381400040775892789756249138534486267470531314559909019775244334995544870213142850731120399154098244080691752674076844203364462639391271035285821545772906086689373537735771251206617085854920712635047614416786242474256911665284491757682648494606343214729963114543388750581105106240250057114943668878691991537623380035784328691505315144592977769185867564664752246862761592904987567957991343641044921930206775444370862574612775185330969537149558490452998273925411852023113627242641114915032760380199816353684794883157609839519853229155034204182462472534903489311303404299981531597352303520603896647637283189823562646018741486051244653231805077252558556230988647471123516600370203500093703199938199006327637450911080223924616092098024427250549211176890581927354590046841732004965683433829309249038048947419405572642637733453714848387137736043500620986599106875323641621349205491822070158164020132526870305622562848011158814376795312678319926488975171936505668300932320098552533382511449418955615343737005787846616919630072146044853519647835109595933718477231865595702908869629458997318107912166544119950784013152236624347757444416285812739272418673206107711177404759126986994969941467790144506401174519489755054513848582254095717316733742395725211680612262056703213997247497533850260064342836420361117324436284378006813895455184629420086121103695212868806633757294975380897729761574964511683803752532567190334882911952775497533361441152496511061954130453710628786154436112035735580548985920243511816195753800387158343357516758252945158311934372440387993812306128599026153467976967185250627778731273293251639439074391626829149708128611517217000253273808211666522408606164367079214481654268967988803056895670677606147351531152841806577974867313016728225383252155499940080062057441091700991298149748477259462694939627805508945509911597902855059139405410569241026922262813195076029284002887770008894377776441227491293111606234537950229378340383706664508723538427981284380336948740758374925427547155293529702595742681223996993462002969392508173290513710351962331912041029538510871239828239409250351767975585915147024223516328786414774443068404624464430798688780145062399179228911290268603808018208637725946630388057520249385273695663859435805056390288983870223716508903856144807343798213411568857135186320060097199333256197832572317335927965096799572003489504411248062811325267615087784190770362080004333444463638692904467517820775696808134666681850380779846054320352582414372429260930208627845911750693325309190047737897397620954927581016571310728257196372288577383657849022682201411201680146319311506763869070189636249218144142220508013756450224866903205361736712841526843141026218457783769891705057109055488292230659281094442713608988456255772403917437622983742134714399406418685398439737442755878299545249227112657126966557594064575191238633144432302880077258198904813342218880307523712083957784992529071396293665758785433884560490340403049453214189634870057455087506837598628892650873161981469317986678634146657205263644660818447507099413578832180129986376527448741117565283130470212829954003392487513159610175482316291576529936345250798766656647785331633681617583793717174318802606295549934581060274281580132103170899824603349497172554174154481290282535807940784917163213868627423367306924917574489861200505013101177874689358706346781729935818245687630610690172576321251747167296969010533033399949558892615684398056325851501985461832260180216716812610670403786063848210279670643107447367029524169047408097758890730606011790619119972380863160508012163657085141125457211280444488111338803707396142967119733535425826336308477709065022222784882579076704239327051121759792417082118655439653620685942378363358643833096675613213198644340013499691318334430876837263730869530536393905792870121282315180121877789030861684773966796260432998689571057169560351686439357747585713704833969716955071802377553888559135358420011817152394243422145333424027391612662382938533513730121875078895657327183850378754853757924128675014789957510134180127384266717413584903168224331818944466290056715374150605147645007599469457426137695578810184593797417107229429697043054849662751951379958011950971237509729999314035418325767016108506858590269994932305057461522760954547150143554496448233722287169610262417294109946124527758218637080180800208195777928145686139649209762658271114254539725024345868233960011536337924737586664745197170200182844186425174139948047483189060908375706959088302103486055590730054977803096829861982418790094619882143755374583972548884685102091979492245589673217595702887920617907149512177516278882853417910096719216295455983542043104488836361849299856471457101649141719992466474811070373406620198198316238049715717848755062791413126684530371781416114792179613508831346572927373958905509206303847124261480119038518239425872271595196624603539229999964650301195553317047119825432971459950470274466545558405122235786835427764432997320410787004847537804614005072154621772041149124270624127546940715472435123147304063132225797977814492194953028332046151732272879585075643545481949102189395824540785477050662423995595955713540811295717049764371842063405226213117747865519910967087440439228827854440057553341177083986383346605922666664769841213801148232425589603468432845519379352030082332946384316929568252092559975434170616892068844338616937227500907908737210842698573112859647815121194647787480084960994825392304257623289581835976346121304537001247787997212608338912769822267691677343613184915210550519440287687270570956592035958268281948336371806271797994153440938750545867801778869127615836606688018758455210210760399081915123283373808422787829072856467012030330546052606210619133697124748574847294555713072986938986624269802112270199205716454658944252701560731601628746180685675107289206592366196727507954686187376779258761787853383248577885067580019565318518926837629181497506554464126669798732670106283498821295538252095001483360078249791888141753768137378353833887291917889186782952177127637926641989155766482579745877217163826693941491753671169750489333110122130962415489770156851752824011373318151716087266974337896792116380452465829426651653731879916404198398919004431345065742555253645311199504841235277694832491400935255609493281357635316255972782115239629641286165409226931846724541072771750577252605661853361128374540776477211389918341390448051162579323939529064011686067353395808313385637624498113007966766841730630795812513456203589639023899544928201693682916365116609004527633748045443950209112038049216961025619096748724724376270389133653535066895686609099539776224403362695622378492357759584133666777582228015809859748589362132868121289372309054692322693797412064265045891581867372776986403478707041057616478808113408370373989999121809286030707447146433907023587534799158927420629822165121448645633947961779917596645219774959954651914813023283197673151044754554921075143420754810624434159508562880997614395563412291467621838797875937981449515096437182537838600709640892693183860955306842622277694761604542954730388133463935468667323714886572213984059484134174612584912356331211665683163555935723742784032882935716585873540297190091485153797198281814484754764223555522050111856125681273298175176982311095816653816209075360503872211821826601992387919421762149132086197333752926525978112042174179106797088151563751738782991762400643881180689524241971833078989939022747164045870645828882904927673243822079142368994928603835723081246269288413346574665287436621999058956057983263021625798051324454767124374556912639303518076857462011243029108425551804937564060476967758274389649772046185731748169652401421038610817927851220818121578009275507258017701106075055232575388984702902934075198578470210308924702807737564144249607230733853708950404473047002709987829198744198027391258013350306006998740366307825756952617828804658389658215060452006426256043058922277352980109530535111601236429402592428598134789818663335808289457242259154601773302353878719774820182444763233648524302763833229419871172596451214926064592727720058090726313909869163621121156925057831165858273107927821805108686128994238690069930953253416487513390705087501222730462290714310165333490273071497890963642388604492721776577034232907245363572253294070070086285479150665776166169253890423734998871101116980115921905862800844838555209060308408159886456618635937584040520277812927298834126330050128577534761509365887917512490410486609180113413804158685634721324954521660128854915693357806355633930726747415277682254591245148846079840178848288836596317166999323423579254379551754371897897223832171825084441470133346276861998902346050121051409925138670707968036341163610004964797446075948814616422140373453808208816809325947206208679528092776621393463240101488920299460220896730571510272747577698139256375377805750975602317454641951520498602499147431551731195283595885059184160219561767739137095225043276295284208317422539910181771942706171570399656858143428123067096014601889128831710507277941831566346792148084658233628023531754005998942614621968010740294928909574572520672409522349900003031577557916378191719520617082263459357564498165259183084631332082488174343179694902688031055305579777673353897851107784844791856659096739192376305967660250430018157432373741683044416958127907323269593464513133141406962797054110421482482598766681831808359175595118807607699032126473320032691331585752051598796884615499792031657140579279140524111762772498620414140754822212260309581664810353660076365328292079051882521227885484301373829908647327573676124976891760353954989770199950201772458206752094459365652372167219991966494937578076777807759852319703981319213459033420154768781183975357667753342868423963812824086004670726916351142504978925533642999794480227464565769881048934436480310075683183747559181871381695789699025532746543744024892495923612691327484259045274053207250159773546243881316840036581480745715063172491464235843021406975224130032435383221499775698156405035656541413245415990741795582325685603524410153030254989473328336353419816754869029624996505489511325936916914471898973917268539009538228400989521161656716562056752034469827234074813112544901207785484015212427550333374768546206822063016354223318681792723428049081431804797338342581818529523771434341073372506646957401266394410914261357445483434520487745745490347767294767551793993785020473699559604692105947980436722592473672921186113114452823447179491813717095131780236972829856906109570105413592477803280625186047779580398502339533750275744892551102878492014734302182881082891657051325282551167247688817799949591423438789906418234528693143510124743194087498079540241096234517186593374502303130879956799443722816449177966045138090823168391053129648386642847630144254195741978016657575532145323056530306177396419635688056987514542758081285492167536267008198906925510905694867161161209426976173989162003770517371039939208684652563638837117951809036709127469251089577701391590580675019945176062975842526579172645083700655060873072261204504628658639597412422263849699184490478519470926370828576597801831380647182801661560723021121082952955750833281137110178855404704469628198308656233243698204696533870802122213522613546012267440655333348168757059055165029725693103019597501366026073433587415567812108646221517873894327673747354603925361847397126480135833705199070159054531479741220833493053229038221549317933081201397451789582526263728624711880232592336706742176803810107034465576031987464061368728879731838177990582799968306561750685452192648822828019985939283666478941718271277834204815907897049371704367841800147537441119398810511440463885537508583014908977904919212910823037466384025427625662431971195688243563376266005916612882244029978330723755953426506287021825437179885185035482779299829052272631274057532039377138033716195962400981699568489058406863613899618735608869001503258739542009033207673587266907111974595712172366505955099235590069547076737416306988481837742396794797250865102123589329474379988966445640990533093377492011809126955284015642488843671424610439128822880163506815676765774341613185951346922892605781259262357947466250797986102652607606301780954147792064764315304420056040971898128740753818323289684175662190810587244907074445037941721683511431825792421417738622740904091287366711491398206179868261642544050514597433491417128733626890292866238372525254962483819879913613103944952081440001668818329878677433857173628465216286076681041552783019591396584810669234849762429719093915192242541031076980872796070237377736011666156256360163691048191950334018680960020966674506518420704698927908780463280196021098801736690439055374919530223160117209089798144971963123795945799293211095692506326497235036787575784409210756033601577764636279753018157084904081333117748780665736693657703647214731578422619052702071413017318962316998508394756620892513411238716335620545808729288128159154100776694589202258400086634516113391365618766625399808468179889009339744836679043345238481849720662020659147250702166575255221596688093784746241162644073973314856294669537357313431585043803926075785376879815738331945134430778064418751885996978749430916045924202427428443390286323987626127637804476659671003581237776329830931450076837029814071712529537241756408077242931613011857183838105880515214437850695746586612181968198475409620490876318756493799592984341324529364414859018139525774529480128195084559568162270108652540318516635995435568110550308656181729720229930200478718669400514518239542308209408271232594768280288373167791857124697870784536100602500225120197242887640962300991463268555252660953213270430083382630311713384925982809701371238247865320754998406263814481490778642237116968588356620973494339183199167035730877785174162764637746798360576097009980772877654519080405055739981300187626823443571656709065199409098855065773482049735063921885906411614748884214912258667222110158341938959188161916716440512543962041494241604893091765682787142531261145549213980137241794223500658217129098981601883036868132747575212499807936893979399840238039221159457407489225992709873692185588541708950940190649878168031274560943487063179873198634176680975191051944379953929859059532162156440354769925556729880692623571552675850065100842477146479314317669872852374994875078638615058181178746581017091122941149064673946411618826643252523254905783821198779039197666730137753342341841863794589926101781547700222554947130706225616509281292802668121596630578200507480601981627063698552248516169458951750840389286581962728278459688866789873385325084310068624259844402718584181434465009155973989960317979123700746568462052296200796858268662059559466445459444382302048966062928295392939763779856209323949429163989045290206541108497520550251593357843392363669054233613850499795643001816775883807498484737662342253164419846638516048292492163767221003232736109539644962594663114030773941431866951965754037118416361538863159803062142032560602439696945274473434739422752044061100594938562825884809834298006917164375146995408624229477861539055334498697437440381100403076102093277421183159860540295043028529396145681731601012749832911951617396524763411157398722421636326225263384478474453869982186708667506548824680304456096700112622754625167872163411150693692424474458980636091700270889096033373368532751912307951876492105867637645119525125113768152551500735080518911126596259793509460275506025698527631283767137107814335305611387141183214460944642274671136665791921340557718082156014582959604539760208257804622692673789300542244125304788561160916202231057242399901294065044917215854475851135063059975246131630265144479121030872775015430106100215523924842601512653786194740971163890019201807217516360953844498781010568891916136995640276926547644676251095360283877073122219727807965357453555263360536019441409109047885699945919658818237821832668801196627679880210815113689499504558759850364178791564654781147338248176582792333170167575876494217712819986638228205739359537771813685180442991217909989026660741416900701758520482274629585640477049433969823243407775440764797919690991474250192126454214630363904614834684267192727027876701020406875953073627034766679829813677711972893792945193743849965511936139525117110783147548779757583245859268219128447924155639578191677582210350192215208410379697381275150866297198217067359072524569796280489166680486503348134173271744836957870063746960124237315276291881638567231267292422303557889379670600003052817660921919812834210056391389994481844692912775076724613530259249370014530195023807940376178825769497705905261566888248909527735930472423707050798295238569890102825218614783869397328164217788093108139004877786205036485490496377092031944102371079250167019877145363413811548122823918889551198827240838157676628966978795581864886013889438671027975220649726465660092318339617425896369587270569910679534782865322871691407752768174145568445686735015070040828828529424919340063100665640520795809528956993101652496186485970655844408803793360447894869610380186598196467943736042925244459969926669025095679100126699207217905529675941452514456417644113948335906157449498817999575545500395206555285605300647019448605061949171719720307039931575267700842114468992537616305406994010037557296027878035657805186041214610611093738457569026431670089133981064253876136457283262653018532641465068960382426911983066578655421127765595639954075015909282582138927720103468421962591089944341869091918447750603791498096800189438648738781278196556373455157453923818408350784286322243103114512921449896476454533816116941237740543821456020911616345933679038036576374920164850666686244140869553371696465353394193565666571497008259249532801275633320854837620580315117262514811375702012030816526843969274325793742201049303092401675722636908875734140173069876399722889050457408696763415878850067031333563127667823404999304456550779669443853723268260371451797973000906557002706898012652654936186083537670146766330564434030888297076762294166168324795386384995731016090584168021583805820507157957705586558923931780722338065065755903569681075640235516589706964723404643652236350293011003158116605491586310552447950713919224802793353435826607958050897218324143289992009951290283283502034964184805701864850781592098430615260554044021534873978124841961151458243031104065202502329814957797611921787865063625258388493873695455280765927948044674402957897705996605474445148493005810843803918790885374073671325043955708351535067715598277620825360744370082566415433862768144370105528836507671933011647428608969998705434518747568255027370399043384061612667566617783814404884640820586408967385961103085845633043681356098263708597400660343379118471069194393459883929985275656169227509247946551930886053250734057790188393721093289035999264245588014005725314848355675791813711623476234066989101350179986314478096936103245484063859635838760211199592697464184596221988235333841941610186673327227014750823486303222864903085614194184416017325796974380364715442936723760580863258501380020988378616437391118288719810705635023466849812903655988607395343953225944023684050852231862492554363709337228378073992370495710032842936996489085096086656780472836349002733050245033721561791053249586227272812622499376656618860364381145487313376990146243957744606878801496440243472835451370672199777691147123497520803270971195487018135977010712882637321590391768521373166036713764579394477841807554364785995491678087430928470987970558050747960529901311556513185108735187200753875516716494540727568470242180608146141495235167025405713044889755134198299525287743298953932572824079642879014300464615434611970176050396609252656396844471180769798857775715884258906916291331017077933561693937952662093233162033309247149841126483400614706396746431588018475628352881278778254990566666192723922749942597668703043283405784289836486551578286504011679772318895715453160839440491792573847118936093961797419084859473974080144469863706213572221571767333389026204583411614702492609736104034191483880908873908292291501417702715704375110383652624434237270467060065441749244507256864619873100337389341162719830311019164678095641160463265309079616188336957009237434708483559516287581401228604357339165374939208733034546365624300288979434544962122896703629299775710634996757131172311294967311467241388782407666708799261412699320847464819437030109793584156620257270951268443269086640196103087404803377688985554504512168740964595962626510125857909909213993466630644279519691257274845062673295373681211501424489304888221429507344102212409709105715017541129427146051512056893884302878952498485699169861941238466415432579852784034291115654584293813473060585779709167406920922644737956397622175747348780925806493517944748744130058690974861726740367527028522245817454257025927368923545417810623964017090777947511072761610809110865693280846506755089125267397201235804736760981118619610635257940392853003035826104455819302345057869675888933365151084614749524603066597506249123331590103858960667318945971997374676669325773848296192802409650452611473568161030001464389060056341422144624110396392846688313542146424513281898650475904181250789073341378151307008825850732776452218717343087178445792057723325586147756892154435307414549043037180577218922724383390146481288287586530440974945465179338651037510189888681710993100267127727552295215279049476252758634223493531113591397017569718089364441052792526338269022127533823343875062736776819605470768235964568337205809250975879072249402864582359726203738431304577150501849331323331603479417262956090385789584578074615768009447142443088013007296932149231667394726999034189482404208306713777973381920688980590343807809983102152327664025798374462475557192506656144426981143167176933056644182995449883468942610472735346166719883818253399613680660217576944650124080610612670456916968587200481464739297278888247894447558871712358370317808026981136621141686487318136918612332066755569636221983114193424896773850582578976102662227081075312078560051816593356902902195524583878480269809078064518259730336750365199108867530319088217826459597082019739725984983712146523422863565063978644615169785950848296124819150906707399954723118692880336188521677402351360124477427976635612792943562338064123207813679584132637253051573600481749380836539353288773331700408427255559603861706025920806306495269522114284151856650811144285945309980924023718319760198025502877600068286812195450487131658085613404444066220993360180091553900090700771042296870549026030798472865361041416565326704828809449643815000557815889843503597105366617703793072036305277067157270099123897685416644397430968399953254608388782635774245424747556979893813774121723102630431495412921679920767470360316684638108164335741609103170060264119018558105556466348737664437207843278951020510955540304387471812957202899814751982878390333236284802288593610354080022811307644857846076764151632874976327839204130689760976344077678171385419047099348240711239832278728863368362000442957488424176386678111815485037477653040433457429213189973086351552073614253491089305531562190274792157396084322738118788830507798414703403829243122646605086384098047869591105025262435680276001499038686823340486610871432232382773222667120836598135924413455547070975054234995339366255526025728896319854601514026112945311978784795894677258021326194375869870359851586783919448553038133729737318566146234181477053037372961994392015057449557684465179538488805830384521882365207570543299101332571601402190210537951707511821919599498529658788246554089457220500141400660857760634115493243938305187377628984313729236541428692027646042581227361737048573174630274121875136896135118571968862707354113139573368347029545618303596605094262904289690857466299434429814509326861463967685192130868697757879726674123988991658238325524281775356989266894795199431936684421369228966625505949986344458521904267502157917814156614292656788838087125702882096060282996223202387607928487918894518139363878018913410955786150296386512031627705376643594342216493543069403216551612731894861536641187327780426251502528608842228399361174681073573048156802961703978118027588271440003531029949359165138252387207851222301837316117293415620704427033056659708442760658327763918473296353899620347664471402689177105831357087304716034367517643989263649371732897424044451604101432127533561586340959535835650137151030185599605774442233679277691699943002408015716321160341709002817665886636317744170207854774921366159544140672597586937140199496308421374690207324874395164158405705666018834672913858709671915101117038113584473256123778094186707059392213784150108426522476887566926282532320144870141538588521703182519651604544230566030481997100011326068543885546143825454814669958924222211310043785388424472114979762813433879408096612271210747430880529948212335956881467829836753855380340076114294901860087846722445563745454685854363218025071061870795259274764542253393011793480261560536064821611886361497513094966047428153777718705761140290369707059775918626501423223691387766140861926544950665968331053211746292373267159136863101642979406712560628895220347167695632670003186045959803389301795088403518801347139512339379250466372530814670333929975242549737048994077973459147893135868424274824661261750487393261013982496908182803029194734950873038262368621038640892031617719896423070496938254442016280795913299213311598282481757269481027377002375059568306819512425325897911969099377914727044269397478396062524058542033446972168990247346502634087530147312536782619153099179754543553125648185804036702999190265520670789620798843673271145122298856348783916671143865948807330946101008628940144075038575733611448803004671435408530191521196530868083323503822958280916466844563283366864392521745187797745214743680822612559221063731383878888427180054731700098497760304638674771212102654997590862743811999184319754531768867044080405650020009202041542053592893841569870687243711641785718372196231916015178055217229291463950161092388279130034294318270249554899778602948995419759473682324346165872776988329933912052799225672614676678987936011714118430776327557406304164498183484233936720439807089104754306674643435931962469773190239610116839930767950858075500110943363886579933100256513711948024863859787560961864900826453508947638488578421866358297417374404381186901000934462733195406379888101517521984521920912966837385419166539785656738640917476775554093759723329558401914127286196103826350204986287440598613329614269584469881641337486058863036515211498445344720776020045438930707157139176720513008927368357139171835428590378775072855565464778907034960426258371131133044875146998390518921248528227377578317363226273246692282644053443055845915152324091062597101566191349731927318554359143102142829098987488853944351209048993105879286989609928260255959536086849988698390736909280084640859707337108721046082776469694491678064068502750420989827768660770741964649632886711759489669711063343105471242785336414481321594858366937143542745407918306671880578462632389768018408747864636091965473085335644766659793725984504990155380899014937433445265293693839277674273874954363738735262713423688363732913136493600838498922287913998536126642331556961026634604676555085076134226837462651906943699704303567865858053264110190995072049243421947026465834144346814090025640923354295633624747816067455566958783637964036280355091712846602208710734692028388611962771157018145935059711298193190725454587161061913493872393659849905736101163708980844576425009648284731234316515219897636398334735372525986133284145174667047950451986543349892202908622392559892590683709292195723499840781568276711529134542704532531902932045844257220442447443398993945311863749050036535286066379721350198905510374832266009096563031769763540834932851199459616416307887583222346438358301380357510790177887749830202238849931447667093533082776474970317065624335253413816540213468823287707136866541510532240374729437614322736582975073487543371450002301846932107833211231687267108994873299778986546638322909188996701035827536446575588922731122909868807825938990717097186459955946561137949449299160574487510029925739818132377460721932183523113903773421017676076534493098541498670036645334843191686475534826164545805326483329214004384930355159836954364754138045399592288682945194869528775364813983254424130367590505683248912383767043022490339783636458655382682524956521225648583779762070268825566157571872709546344913006793086093786977455139368781542446041540577837712226590803463530646036335438045844984077091852524489751518527124262123473926572061087292535308641284321364366131304116910301222577599897090978083982149559837043192369778898442756102553780511855992168752390307945480727092429031490343092038828587695869424775813023631655884777764590911904535172062456092296892408534899177100349569916195327516524042791186414356293763871848929852934433974527132980731346005655424649769942639913473862818313482161550890218829553948807982221872504559523919816315603315296841204683653367992689811638892119495072174841661903408991635295855363105226408154547272887461951304350254558804039528280659756172829642131936004167514103211808672972105909609593532986016584782681785023140981752903131120453358502442715742890832827043480556362312655930866994534730475379925889808838738727698938842490137176442674769023095602839441602762507079335363008823119748684999278729188632722993404813644047028534860247269142409449168950478191329186363103558798671888994368212275967915353665622629067134219116968349079110573557446041361732722828761362620974732406548277139012070673173022429779100329324099118768078325562843276508310839570869685673674283715285559255399825434338608434877167808406080873721425037805917791765103962281212275893106214239047339091991914823238161636489736313714969054553728098973524845804858735948003677218244274423917557111322472360881227692670931974810427472328461844842064586836050752986789310285591791568372973477876917554145133471984885160282530315019787911405756537242302810874717009367057156205544326600296322339835683782796611355702529692513824484010550859606394533875123142492879778488313659873420816898559333376852865291924529051090803562104920547368030993370100443104914351057385020036539354186347780349858385271892757984223685538279931516074110203228965652483423095992132418745374402048416811640268203970711137446563160041058963372682214314545515638513970311302168692576414989281347590904665728081611997926798513253331454473879902844862430690770002915045182673798971649617536638578785473353642653798906950930349518468504285274458117762562500454548936862176318770915592202086553333670455833379575679011195916663749164045677054038989383057921342412978242582327657798900296343394159707686743718834849363685755732255102881496717986664103682737709109705733134613742856777218825531985360254029594782777833448677874632585389756640615663031667463496717013952530415815844093226648854647878406830664622095430261989738678970488647488683709166833785677396638569269190902998360883722949356333655265567603179918173140894687694246012750128756284550524735422622719870081432753468186041079348629277284918202777720493506549143500370951086677134036680644339235265972352571745341011369928477439967936872011910415579658324212175602990835150632985371452129072826645874156280651094650934529170999523650984563586166584831340523556510652528169484414551337931792773040324929631859096754410542244535899172194837439647771894209658950686132216899375716296585721190600711499857555358272893491905609464813262770896710839962224850598212217343657156781913241061306505327138669302539587360360086151090522377836894941859855646120748613760153696165509631615402736498699856560390799614351305962763363833137338361307762683074411241910090778784605976645086695255493339215123060931811556452782197641130193193983810120506890630256750059926107702101302343657200430054196562779012925545456633369783588008767866255467834622484207495235189854153546636154202913518371930807442620669188035904356675696573004763845629697026960359121729880889387407552418370377529828851459363011405633220987766974085793914847098200811453315403677433664430784577363578532883710359860328049184962641000198635929087461155991606958767488450454032707180176782599496856550007978224846261389872854721472098327939528744451316056508344595425094061153728621862541824167165599980760537058541973051333982595603811730412998946767559968494164698760969386823809881323140203439064908037788805812588977343246329920391925059890138018083154046321607621981001727953221819123842361259853343783843322241168305175000885730195669653724587892570039144270684791092768198823536825828777688436491618224262715217132995717873009616595811974060274467984037356555904949813027623550060437181467778023740303001438756346166395727973477068961491097008118816779623256757691581276400599136046435690040744298765969045431017479843158585358082486369621287811659683142773074297343002897316707723139702135306874817501414514229894756666812651456440428824044716926336681336884717014760288904579901132257484417439172059330498800208092807578467757146992435426509443531099065402255019980685070885279440665629590930337615968438835904940094256478413203577505832458620453224755945090028731203080042185192510611531516068706161027913079582861838535251755459259600476258657657566154334018168628054235049189511272426863535358945644412180069312979734082902378335664329007407928716065395378257664290660247303809324015019811614434729678951770610172889806138876500195638829750879531290835546783333745130598114673214661466289646639224444598659102225332643178169414168422323773451606845445726921423999949973263893649616703942448674596740375570012740777153635655108343358070184714820828878762969296343451933619547392037898612523932037908820298572833050085889915381952181490434823127506666867526786401711569544021791523742265976822794988149679059118339570634538894459916916421455073465510593735851528563754124508191974997938354732067344712622264362197527452512758734010211216547958377093395323760253544431211249853187045872378158330368698086512905162770183977430454740401463708225322227565710117379230125388538493549579684575098984381922127652538396528109877493741308349457297047690544119570349445551544590190782307298976966364093736793790712826280275282065730893035226344242404208542760766181871354067319853805410846590848056160946010185727552088502021867275836435572298969302605091070718324040810738904480770356525871913292742055972463458769571037807204307044337605090979813402260725150113544160203494323362166201666226029452551303260738934853801716547727090344937639008177588837982881216506979549913351216700240074012648570151435575983382777755797740898944749402663158673617792940288366921002134306726580285983765070395251523242964756499197124914058281217301950047443426748546272713145441545502791815928762835259570436483612221924706988966724719692452048840011479908999508724366837879890260253367008843396282179097797353287677652904522199277038773422753454251304120576525645122531301664184853959117557738279068313565512037736204373551676462350837842409205222806762950013068631143290916974743594966239497863490895386769411258037747258076977085795758852949727982569977172154425758233120039294269388774289939403821841285452809444994245075945319110116828026848930176094294662488440998321897608845263475370897117957534216956441323694171447715940854149539648107802525797922430240174074791149375158457752045200114031698363120927930141385017288230333671778517818051115533181415301751863689908913035902647931596214111082364617951810893495392476983467054707520234363866991608543309395665247374325445125672498081338620066203586545315592845499326055407392995473355478236307426574468947102963346286458045122774158734436432334148305687666370361171222397117307732779290613200283807198679928662524300919337966354452581438926194921102210388566829569492019688416715184084265569295316561963516125094415001040839191793321039298203689629418657050531994236186248885391435430236478621808149785966573606409154741182337390176180639232303210195072840638344941604745703452962140247879878084903035170641087653135250849777676549398128777255308580675965312995088259028286257337725417823615562416700169351341982259504967583599395301874490202363384841011558444840795991385796635118573554728564309131500237509698375333980560580447380695874478158418260613612380816772600364716732801655313711891388149688281713331405332299662943837292820234672490619112586540604197920888733596121949884325560212620296387018092855965199635404710223407957062498745785288065951725695717065514563667980826032149582683716374128644789389310283876395149344838592089940808808169795185673822234572833153567377370646118716682707526292188081062847829395836476974782463099171825652620357027933075374077745073953018512764742676252162376603416277414461959283290436018426027450408038608879115205248701229994254873915440544411551037073391333708769256757034356737893281116942369117205146358974284792196898927061260425324332397388070328853741505772511989933426362972305592980504257874166067051871764096548143284835792610978800762871680631913081985150408067963558281982398614512294966398207513958446629755824662516346865092449038756160104075691878871477548603226597506496143464734908011387093173856031723441085010274495931242899764499164118646867787234859436951572070758886602111655959626697694995385108061100686871097401096084517851297021608480682133820546301749483682153891774349688995948082788843051350658063621757003711655001286622541362508657736906375072589024582790499939895443005725487818019488497749980352906159209016157802692642184667468508161229386338738673544626392915621031542754886051282615503361154169602893270168417620214384684417669623800107603696476436473824494326813283065445921715371345165734929791093709337107716531290971476699556039714746455319996918735966629075768187666036282863873865820693149817406724588665812976821497387811426523394969651460283585833091719028572697840313016613393257591243355405476180828998335532181556197401185334806511155405117863141275315281468618753346470058337447619909193191716471776342950776705825683868861436812634070025882772485583972969966755646010104243543018918592248155681380983509637496014409743045369197973022470901577641203065356204780825706860675552334501240890462035127248816368591481949433814203734761642281659494106036816294352989715590126156847884100775101541666417735868888219146997331496805672240693410952509363144536545313946625419736467021366446707614755006720073509139088973591314514978630591730285768999681867777717546247315743906841219875232381176859873037066052146424628987883830483164936403425432448786181348974885239548853308499808112779159650848219109157414603033717481992422376646813991313467122485771585300823152729730632179366323689798788805920912844760281164305342920833913138267664456572131822334526918709125402186174310182343788371716783421791288739262346933287492038264697570967253156647861523762121544231703857694730881414978979641038295560533382347497675873916951889378977441895781085692522888518977429535465737849201267010043066639747067077582139978258491257469486363498586016822697837076106131479453146754281533672349436247698852276814660363467907951969689222765866022193645113790799575859599959820058006979441166635834586336719670140547812744381385018209156855693359840352332601481441442622630212282048235256123394592382202399754168467837131761993827174031102257640328999825438357897690972429767696554503730964324384683058932039302059443862443552633079667306515889384402020399443004210241378496209897207721303073678931857759381437396890169802498050874253675256811313169315468429765364254313465221075075182140078436253364966990388893833512449836964001126074924428493627435249258792284779478119039790061428328990176435602017023563988370218490735299198058734725249787567658862398377348977664056681103860030542254426108504938638942857669535145922503459078577062713626301554786710689580961443220160297038295761518670367328435081878221969796017653170833627739738727645536628248966986249019964016124572682997287347725925916424163771112707351848265827479825790595308903615718452934886914418964405843051292054294096602843996208322907869307604086505905769746431284974416215555822852540660888690004319077149027486025093569920535833397518171047155449907799936660788352487935147218877541896123789507564126008623672628557930464502193360323836817941926237355058556044016015906265835834719907793364927132947764556712452837148405121024452920625083623630480990390820905619359965201606311386592238504928908685754799861662095867846565894901097842472338177082821624973391383776180177444264922953088822051645754365143847462789576624559324775245641252150232389224372882040037904413104062690217348527233290823858954755290256652250353256862839164872246305242494869128586652389024701521182956166302831534238751462003322287025703664019008823409078440620926498144279709897334913858233721884061560031911459431421117645587189671310348924094355944657938548385476471301695557850441685115270450247620193263033426978337825444950423197025055339275301991369866169272596962960370695061398636855232290202207662907208063901794685903301630873878918639287284904867280859157202452532966340299750387893622265636712772645057124386536317138546822949101265198892647060137230364767712438073113925634339639533893178329420468014304905105494762069080266835608653289628568854254945932573354756892331686069032104163163688286386099223610851694617530372955126462403388083886436583307121607098747557864923384236739863427536932503449597972777699962788759458857070609702002234222502216954986886733994494258966688410006921678084836116949049614233186532063362452437007588364676992403953569722530919072715219593948881157661724755148081030081146304212011487935397277952369842337575829911713098002948462344248759918338866099609597445134984349914465189342943717361489661159052184981865807322563273744115591089539934084238972519979314674662324690182688466446942307375836845099336470541130516496606579081164639409731688728981384001039988832871234111880300532690417292268909528951765876857145752412180917517776777790234004161623418415165894861819542230961031308415655277095350560708520093505574942585996623957423628772100675766445133374511661421816796945277965566416067170496074816021661720460126006540116670838770063680490594933129710342783379563934072094523443149203983736058126067278421467943162849448148765594907592115721986436699358867377359180993807849875303696536780672006471700596956447399753951327469258422135191020021994740292602707811253652332740368969287716122383618771781582631948381282860852859048058683058881324215512496384608114518788443425130324744335201197553092642305985788882944530059204221891303825496581278219600336280387867858955553786308744943323382933560512812877898700087604318234543676139935688773590003297148245294755503090445894245471917718432434330423083175188665222325517614536896321031323275942323479378501094758496704908239704508121630004077796075741372430417271965712915972498468806058041325304056519126465677249497776403008780955372753221192535178868813711215126534264647392347812689466346894673997314131534542030179847988882257134599683691311942356215022491310589609205580520094848214083375988696227546945402907670906163364642086233981014797756127317240697792662785563647811182229912695554774588866025194069887194413972481495413929588676639875171989887287151481412882498830396510292091040027924252656399152107903551101811010275538197838310906038406322899272353426255618168636702061259955910847621831526992063906245140516136253149307314146342037615088395073339206270924239625394763092998886812377820293045486318616018659055677391289492745320786105062948132706776749539767775727603333709782690523475164715553248645168304563274576475401930910149216422949744458044056377245858612094118710337459920850252839845836276279724597091508890881273838974056425980120938988558650797660535355024200394496746737755535355531942589044723589883998188591286109206946793646898833386503109688614811018943663941114613558024995794489903648975894226948442738244437067586242716511458083749024727972844861305807357326867084693312805830949308938222740266681613938801549622452103585319154243253639965304599501078957323046304610421919535483535019474066893844414251608281638106476593026214677778143777593468604591187606259161625442589903554688318685974516095709124493138825156854732373721822636848685594203968050045189457389727123712356627616432291770456664949400890239225832137405750046996700968250282472314440461399779250193123927853393054116140325351735936003667694133488550093673940454164540526396953285383969564503798793888556165043337991706129329232643457819905775996448420922824851457163689354213341328262428445209920970727698060767286843046968907314782629286329803347589633460357405348097150711998565201685027448639617695798924054856569908380561737430252390076481132541610592539648204068999625779630331755591636415681197172736434159481096426981821566964414297698577893640584364184062203411996330446199867977163133986147468844506864977908393176535933791274017483687264568852590637820445433913410520813703871506901559216950155664362675363466073946014918164754962349354719386535507261153782456544151719523938133844530918586636795019104028445001175434233887519651539644412421430335758984079058727704897768858655639492052267512788018195390973851953554395326085312648233813518652741919085642636707124144043257816911352648248749887903674481559828966274922669434981538918443462205672677977844756710101262151091501719870157870117616648982128870869197435982876570269373301724934599020051529057596928585706936938854363037767906071942735542819289927349422498023213217295464547403484786704319621071810445016910585507735503808821330369360167865098913319841913254781533942015885505071211197447522526950741821620910474735238701752825984304779769812562562634872110112043875413717462222985253507767167105886769427449083021426799569311340080791650481546188825218434935292931718658838345906069665084089167707019900121142824909220702204834039193661499783134209811711904763347637715543456588244560000183883768529837502531204874373755405403878764326475451618630300850109524810246849824739395359130317161208918255042502131749339183539452056886537748938884766113250878674969858239400653629807570291341966803119623393937280462645860122539991148432031080565624561989359555047192444302756630743218813368216745757072945583844156532350811040991400168141310615118173183880886882090581184103006062652982768420012575587815458098603166513439814186145558735176210802216262055682384123589286547648558518962596819961448871659599889523339272752156270369913966243199244774411559268933010458425015447862007683544073287022340071147186695543766520716946267976547763878076978257671154777049837133140203794654481365588714487551009287872992427346604023027186294443085481452443014805493000156607659961308612993589326295769317406972761849233186113664316146413038541623544713101562067899468423917451083033322805000668907731326441709671557011424349078930486833340473732069082625515297817253808228360756151065426754699641704363361373973110449418025589664172366898864409764623315805778276990802212352740433184169535591921699865795398578112844464534645029971282381366332413554962283804768875710975446648843845988299036868894256057621923699443152241818089072668476625517446990895018886759452990384312774671751049010689326757058360954110363409645954045729399730712636674307534819307618800908551809398275646474453501188889227186968657116132906294352727785787628709063030499787053276733039428915830015964708779000282070994303460319122741091983169247247638159632962251819794773826907907136370647322966586090283435169160446045029005787090969486530808484059251820241642993422574295273847510827770931032267944944682836423842317737394019815125777656386607456432166880158106642390449113079170033293112937495707361515694928485155548642232879595657212226738705706313625628393807385329700097527292115831764687093140659260949458790133947295444414261064794664274880196499398077024634864434769163171778009725458645460902263173669354171934450034183178490918760064058070536585258125363711457343508013720046893441536580501467366502649122986753308288519846044604894703518069764027688659693298420189263173243537426255057071455136066855414992583093184517323804379135280109020966766981901978225103910553995260293951345440669724373347567992311816016021879856895642212962351161652403596875660057331790638484751393245388377843699280871055421209198708316899867272537385795805576546615981462741055396659667586561275688283037773888236493362144269404007770950046137713103434564990962228572220555701232935640017478949002977324103921883432040669390280709197343764043315309006659296324281912101026871770996685395275091083508680371160779331117866144295044532045011206419667632739571305932524217912022304752118511210022493933749912689693638244132218903812629838049734069032253887133862487314573028110143290856898190244327680121365133681351932163894281217981374185327783134933744007647620536201126557917175096472325895144706014193357186902965647869232080641039310498827673990444424072016574134644328139378537552939238601194574585202931538792055926582481014315052205801714944211582638170503473137682838994695313921985675120635395744605029759084365041932133277563467057903136320322122370723234799385386723354421008304150333559268979833792841956530043074349539079816831564755994357146849479758717452352363090738639699384810925188177230633014372482192330874469448764635336768831806225985344062543031082441884320348410591692977878692962974350097348430142405810758504902533220114063082182337616983293571294580445860946145002488018400755749793457920405596320814413921997151172812928456831567671776563938651342394737781950305384378170062960337397189418714081174739671355996141584492783890970354222328691213912528655926629346295624393422856279051663378733545218782926031849237964263463689482791571233928575929915834078595407788087452088910917600576099143029116840170874796713686156697226713550318984317985057667284576697806360234352423291995512056781094105852070893830429189184162186568377036545052500468162338385381024329824330049966175790052480270333225104302683501959830563241753942091694574031831822519830383415351532397971587435575745366428669913213095296001148107913712421722379491281320758611558355295974353449622454963731009255488440000747291954539554216351060838916602318972494014340503209730772607378394225558588454035630255217324075833141278990421691967943362052162782766705295242337720820567421947012530050823727549696933055195690240242676781688474151907649565845616288069001282893455032371218561404665542692161254642863064680893095647639241521847431365078635110185386727532728083778348532537827395750475236332570330840612285285042809727710143548391329416212704450836812481461195554897656399117306635681404570404331072465373649884465547147274316924554101634600520981283674872231482313385679186041280637095124692881197993740627298941434450748220683785082049251465263377257256211249878855961463488541250886430907148117108337080662438106976272210683899837994833661060292845258205582169766458325312552723176336080886055570560759168041764985025200649383934627322260728480865561065394016044110537734832203618783023068865415479934250463255298797350774921951893464111352382325368686588671848122121785978554044978842690997365386697697209551256218377654308036278962838819533241273611226383173582583588496956857014470858514240617352978247452922468016034745043708350100848774089705899541071976004242048076415977057862484267950874663333376456446429277805664766010378472869033481399985474560865665918824775038829466902168058202762686980256361440170645947473933566264822631770615119527592255361897251384680715816048077918086611652637624279711139653954780181625899676880343258285080247062017176488959475722973202508250751196643680349656110277588289564847883964932260261970139052098471870468527356549136565333895861454686459368946076916146519793812340846114342885467482322026455644183546962391102059468227856134803019655156656818384660591964588921457255509711365080394920826112803055694534054784002070616561047841812137546444622227670813446272681648242314365177240329720189712002104211717686326927385819732635123752693510572402661885720172826764089853853564238050530467357233360707337880802747693650959365727385188806636048394345007803075373332597978032652162478460683451824132959195504517298491512441777144706677985870088412059102195039025781150898071843781382853914744732862980159102838511448466223403184041003180228733569144135370971888341251983181215377833112926394042187050960823115524736067408949957230660778660427301141218705393904608290551809386665539518125080918965210409298778232446924038593478757239692412165985340852227040063054633135991509070625093189922080085263158522039739426597684703158162377919270503502764464976060034746204942282629524559147035035883183020892579465383924408074160413935483520292316196491529033224809243310500429880975590625902451735938682774633625920794918262125636368236249032639553272345738731062592269037749001102622190396842414049863337262172702516458368266019450058971652950737731762716266243372599197225926450080650922611810463037262302856471087224386901633386114433338369565934941152870197391314822938689033589755227710209952807298314777844066497828578975435632780369803732694161687583709698784877678159274602056497044223527389477599284694967660289448595847212701777463072517048899998181685332716950386751694141543872599555494049580828522489837370181366376663708383039687350273347491109648032432236019723912339267012487692404800476120909543053051815408549016849432248102783965513100783536323983675228134287103806264950966788753932542495897918761500784576121509745929418738234001375451847970973144624701572749220783323213539032698986256883431319348491032757451779941950073082278797104430306871078762436937633261111712799051602994388325614485213845123202547228081691672408983277484198680151845154976126904268569864416150353068940901665380963594405534778411722512511206448751884524831092002884104338890341603061849129581347794562318255022489496104181542703082702124560854668956418231225542141792034605743482567083844300789599540872163462532366107685637523430705761039545591471667570159065414043406293100342703752145874128310475262101154781748086652796173691471859497926720069553228356894624852988479610603185487000297412256763860059735994887076963508584309106016117529804541207478999593018874145111024206101488311059029483970504765272130325551947736919951312159874565313119065635203009091757779512948064326032846127750196864187755401769524038741286122512974076607420600728376966016501075893956549650840163662694036092289836856891893925060498825199077958927243135708075392978620751104173052219607450405092422386022650958546687661784818653324232476912945368915895921226642447764638847299126165230459886145103577202939398087944744803325832651401128462476587957335286746479576061160485644331920272470250386803433451906308937936043433263503867677176626541080667940389019075130484025173191169844731908610684080222441498612417021908207822451217651132352253506188021855679173494818630316005315466689494242363422957819105125263041486679302441153500634901714878542701559774183828741383878577587340656550805934419177618267417935098544343600294838308245765183827961508737918467521854947218939509582762803520619304158911834543616775589058923944681118941083428076464441090487464726478941110262828689875316895760061059074773673406250218203260441350329981545998108556599879800058930864131086842325465478660951796477910619773834524855840319313001823907006253284402024353861240625543615807818805514314718769266121082766060482974119411241622461979399390661132503871353386636929449458496398615951119607132853427514439251747092800480635216596619403525792078758231364192178183139619838303231669851915683746785123277074900616585221096087963932061390577476857256340887399328202602649218450893181516433005767856685622539180509723915625632785825054437348624024469336646561663938991459720316351432929598082257315519419209869942029323908681657413516630536356702101596664704787343704030425615881029915598763142553725272160327331343673149777390382466147433091829886887566011672765262326968314427581449278569838298436315511919082475143892200453964116503016630179758476157951784746172327018912623097698040604782621566902744901487317119901391663422124645643795726833288490697007868470079785763511345871836721211616501633581339461845738138820512897048117203599998627947537231306990206802112170500896093810914329279763964798497499259307310428468265637012268653899818766966963159975784227664101450424496405768015134644143083165608326175103397012997320968859017267886444421454667027327468478538079741502525001690879666245987643519486775530083276382973973273275113691776353543143835200088059001195776450405581266513790158994440998128931246299445624338782449554234445773851986033473829350979203873311475386651511209150023266779660604791813465700854836125098728255307015595041874297279293580960570270259245323904313036455353714917973491663254004768816247164731938118728268257162618942191425601174657337622517628301987643610399735613733906047903122980561884580798216824029021990674695100061223563251556200119339494792822823674094476164815348925301530443080308043190638646460360232339901414993912505112201119446046330322296207159393205117302424482102980208509773925385746890962061864876991766097686719187577612818663843264114095118464490425827976574285331952246056179104780944936991565520916075046524683633689036028549659506550207120399835786574374716415563901463079172112461533630112039522536522839573186055977303443369481196816490166085495903047018582821755865496734173117775503140027251145319857739591648301560672682187236053816992713096838042268668828011466438482853890320718884734469564083300308224171583488815822751032311023169390091010988515194530194757852080875137460406620634355993230925810869910727385985544139209380150876232164895909133904651484537229300880002770652759375206997275245367738298349790887757699622699270752283181667114852053780923940172443340410573107982920935779574300188168158484296969149042281675146739699356132396860966069168798146504833905999552085289424665051857948260923878056888169468659234508453640219759837048609431634088052805224503522553977072274588990628611397312260671761324280189786282025352070627136700324731883925334444750850906057505197286139114557446201598591403379215036947124753664736523735187682283825747461617104479957672100631448176607688246095844206406336042763953446605849538511741376870257455323611643336602706722175023038858975669225936961615497672454974780886768186242010235875843215455329553333439565416948890106104510253455800875198649940137690515639300930779272360946232324279909910713977238338166894842477120167531432921173847673832791003535947179388274102720537393093961272848512981090388821550125324448320514920087040152944764732947731912709742806928110696320978360342722535662794356233721519374998502359393834652849231185914575065110152291779139460833986306410970779340596304357974289711689289121310648069917758379156068255398098914804559597243769839669491687207782719106977621896271968396230320245196845259038667283207588766625900023532702900036872095359606114909231607258877208774765093870883953578852961353844414179392164888417838451376169709937318020123189323695158043459178770594528339133950678330484870999282386377608684441872436305324299626066484700288059308998033739866402501922625721899866056698610393425496684312566222654813148382008002172957244111215214915565720564201158896495212785783278192554627411344619177613639282412179085590453900881893682475540661962139897757276369102718644119830009854462092282153452771759760531949227960021004744610190285885767357383659361822233502329934927050751727918080070947619277806070984396794270101882212057753355517967044268517671678102194894604255281972585574911003033462813471679430075896572541157760914884336647526363330863248344803386022307920341507130521012011382034195794613575000487425525853748228606854943579429645505964165994918484900732009634081115661358968524717074160356392055836839322521284783179146663664465782096444606348260246986898907372230421401078525255708169442375081738942755992107249180924509338631388204276900722451477382045127370800647859304131036411857618987735570582657127289723478541461006421301596195923458165346209683593692597443234605882204821312291419109415318538300350981303447676471984445708962844607909013707302003302426877454063487457404868593729043325862706948014296700329521583597171999803440231803186143362944256524656158534338717771211972132302208209892734536876628436115142934625013005251075953133162059732390623580315934162926293400372285393396126982055410860671826602299619462632690255099107106652842560052026839131198620575824472414295425149816234744528018007291229803747738705799407551880025414566033197722530678236026316654651388988658496465833909687494990427066907523406988207217381432992002971712656081274840258023370218008344206087664240013732992425874148149068769504106711722880545847171255581248584365727252088573861423595391128664219236095270496669595204816130043157122026124659626377211668985400467060690078927543883056285144383328731579932364445009207351176651936182098898939733098625118361966030653159310959428669082389578278649359080348916427213194464645293409697771595540098301731422146911920877274616443849352135201643752058663024428238263346141208769000350830668281611257325738594018654613833280900885429948118062880701666314235614228791267180534643990535722445452908144091128945740733019124937449118459623617624280145133347028208894967611487555081706088921618103926898835417978107368405830820590647220482286561019903222482169227716413491142364413817805737798431390172565775436964136697462908242988186651895624077862893875751214803311706545329479082118655947058537164921469145780918775904302194881760374445980401076147440388600560844857214892194893878099863030612757153037772304707952186337463382701799483366346451986432971158115921410067749479808777505744113788204022425180737158922717353247877698741802781567320190120974637120264320195225689390874333955588176638044788052145207972029168288396265537955463184074696027450733794372669591662635434916928265028205582693568909281687418459941579220598878158940206116870959564270083084326276506894890047442121886630819835577030195509994164462206656721928864818258244714287009133161401884664313603858380104828948804788193849846783336878073100408979065513142102641757304140826153931777417787429714278803829108819284665224373153526342675898674205825416521716836970366928705163242662387960421256665363694056749743451040012754360977864143063219715912981266364766648906080254923946699572937280691760173158308839537309766068844544711410593100730361483294051274738636789917181418434254924375585991142517104125908071032161317284613628913096931350443537392711252761827027688305678552646587703335676430236062627998753291827756227351539055580708710173555467659275295937846671728947299216777933481996696413342496758332691321370117716280888940403568729461653713559442303845795846896190918204800587384309429301452286496497533827809601582523210997816610926359980531332528014865168395605996483937834788105356323145318605478611122742199011369963753246657531288286667316556755270951313849635058490832569455908877935438608906986749838788059832293115300184914452060910038518441663677516406620802058815613885515807481937649669923798236742378958526916994724507889245633164476598115611190833732542542226991613518596099460420732234810956771146077015241251021847876905762342792414126963231647332527917390387854174270069952814272119353023561872311730526216713960086509169610691740412094298293279355929382326815909799978701289323588242103371065706681599217636295389145860807132849352071391236022356237285394389193823799823982482264307225320610336818406315419360890052078032599511672710187772413752110203949365841318695445270726402043866237130256000232645158521705500971682327819097683092841503048216474521523093854272698053499079321766153641921539224296429888257141028460861084492635418722730428641150737732128421814050033236865471995752442618443055886678889283769198229126448853357056330760147085916896286090231385893763037849750153077693879545728237035178165316915850782706713935618624930633422464735967247549280896842283209657641553207655685411946992843670657804478944655305859592732716624213847713045653481818035818866831112731293052611046286054376436502352695826741816762979516696156137558080623950832036460629963090348017835636905692977770763779440070233744486336482656507725266204737532764898067953192024411288321579269730566918266802191286102140735652128281612282820447702658093218879254677350500817158923641457496647952194166595240735798702038261260202956319197061878317491402845473586731519694845183599293772331815742629402609110173683332139274221257182158615120445922694724118825124392788159384948792306412235925479251472365123634913020897889851140757011183048108439354168695683684726969990019737958473701017518483273103386360586799136613480294730273408165128040582870452813972459661884978406871187526127989447630505075850861802817039717573289569636896103773019065975339916705500818384412831377832382493768012645383597065616960989829884511770692175383369129298770964342108244953184126571969315607685922803414397605754621577367442536695891612229539891341690052418170687538010833787344954529082823208750178132440845924066869797455747675971169785613752232020886978421343424880073421000305800541460098792363090619149407584099385853245708185226604446814915041652946550064231493859030781766353393736065634182617177842853660731010541703120541353072308256489699320393192768958579239099483625006273485981925029543852004196733199666738209653733688704449047628497394524328840603443597915473239714939977217559262112544121747897888739677053508652920361561796203580141219914994794911597087675092527429507491328137238787989664526705481165445727054335233081897969818966764017329532069374566097377375139906450568933870731642402376677907549227679502939896155232882601629867142076711565550643945438044112069103725220697784512931590256787468085672539314066065845909798988552707766714900733905259042233837600055353562440619132136979821671900368307956858003047955819899834915863515406263901351852174238952331600218893156200976930030005768430365824629189624993021664384843014407851958213121495323352064037409654093567677649007409574489118688294498339640707847373414421028634894837412377040170435175749940974478513296367354782216869114715063932967966177660382293057100601406334987270390639734134156286995826287798384883694360830385253735893413317689499284312801842389611954159023962672145561746993134597795818717661385635822771021635722398138889000374032224464219848983038439050956369583199680213091880238771254136948114218134638850476210328492516736153912339190368793602980827129476115303244396332559781788462631129227551787022392727510174728957550094857894293163313588702318638597927958057314121027059748884085488513313161576966839117749149514906218596904823233395654948162140187958729544014023452720955248453349965989239929633963464806196544008755524191201466038963803358014700956397052300703484424707414880117425009302811861043411294313393297429880557584168449785119209566160008699779301631745556971610174774428848262201573999117641228774833089779307009739178500266430808501759032609839153263402716485887587294185933338415005967239947238381483735606512301486538048614124982683145014834228203208187153679365192289351323453866368535621782744182031989157830528013626395536172834324862616189910877592357529174603243430030129444926756099564958475772636102096204959710178876581875398457916297583389452186570100397040340805470299702822311222463078631845887502693699195633859386658119150353042133645727371774157605048089501153675941100744163955210357756710811210187254923482235402969034976125161377335028212781839812797625684312885472823836321895507050074733554929904748620923620538222052532569194801749582959194549010653735850296634435069010966526821969856942648125491388577400169776883877254117791981029644471521884252452368033352558766930813195840061681531716688135180299807899414811780412763490328272460820770302506508520567150324074923437902228577589858982953108612861064039519120272242810826186501607546831015897393135510404643483232271093167026695823222348752306010661897478641579675721671395921791459946186151891750596885019238309116008933401113297154533147881662697056507613678784689107285543025098333905263663658257882071941037795218056491908827066083331557124760036034629752759241736306730335653761158040875071243164745130059273731553860978292139344224261419009085400805054357546268945802461352981742665040007052620386295081369196201983079995025649035490957027977610467531810141802318678686051818482298837281049335119633224689042870889094754821541818610203602269475810403774171681803265997722020294059236404052462877917367532171257017402489734269037721044312705156167933622791582807016335480338817206681058288943443526518726986976030075732722032297375086642136862778798044199969174585141206712205770601513176389193959870362752545106794092694840734618805671377999422267660071487428693017843847366862258659279963211675835005579849814584810381661384357073318154406977704832784389005626025265008768190288714306617296167953503011738379322587161028356854107102267219105873179801409207769367279324699809571299930511776947201968860091068632308355586952211817811907770317973145005200924776518119729722555555685550753998636512943021479296897760851166782630304412707209954857549807062578890859284876215085817339172481449671290716537649408644404949957908808314462123925132907019184949947686814636404530355393198877179385056028577002653506996540851122145912874794322555852023790323021211789860941182417397356528312101569770654939440475107176164614035797358059268437031312767203443589360874136111980758140123429471269157728520810202515082134801590311765667664554533151491888451244601396988807068617849689662634176200069353129267799595729975153832630817978724315027891461682048542287670749585256496229068750396210568176247739535926264698699819749848186861471205039446655860031686272923051662608821098663800619538488377931749600967583730837778955248786159582225967218105446650265890404435407170144374483425599945965878641014826653979187809790828737776857655348730931868003975625908818801939234419422964156682320176000626853780763073558366288505711308762676667408679665213421480774131768713623468931616573088268594215348535496938780467203669515222758131899663532464809344746449198949170671363512299034735831908634001275061782594460752045017349318206693346771438932447156458146641479700532485061416866876418405204109195053966298765619470278523493907220383096712108979174272766675133620715109700461195926376143473253354705097272576283729426529962754284138634732774490294204896681827888809748547938858160669901518716812965531834552689160347700124254129236616159976319058034959298630866384726966092142268432101664261070000021599895426757200716218566510350190680372743506735888067996980025235041398850719982707050179160264599273916531868224531460508051667166566835294903681173339999875843979490063591198927475627704505579310968048840844104412891425208915307144947535315731001433117302812407333855959422831936184145961583596364311880843957304716397218092709978269017227430121683628033101300315349830596797147568518044647533069141844316035819461459989086194046909397226971742433339374078619100919452210057109855883384911303159079021743106357968561696462211282658205466553991259213343879145454992383902419745695977952441844388011209349717640549340201277218618007267363602201050920991173643956289820399706335674953813535709304726217615880748084028593066844551563981877084737820822476939145788322286487998714114238398312484780092453457419443299673730843319378634283840488641292156358774818093257747126766833878122063450692779922415363921203345027415252579078910145873215119766691730076205961693925453912012192590161367731191363701225211140375351149775295459510646424069532460537414062763500595031724118310501127498406166559802869800300705780618890088203758434913309580152059478964580579534852754600788225093172346747018780202356123025132105068057642681336504167856494067225280057469755760491258266455499616689565090630440945809782498141283022247639663792352141817292553289625135227798913409623030765162684531552151049236704964213595612574727288918453269712667677427941661177438633884997539969736363822043916927699918950535969054849561415070951977031008878427512162145558232430039501389074489748870549837346842745070113695314586892203821704977639676412123275646178552916421701142539954663133386441597290036064885504048740447320623974595323485408198947169962959564937795400160184649189470696663884359901304165603134791388096965200551865561162423650724628006896787723446539890206746187547815572840353275744036731907637030625267887778388865597552090667499112228748472898824173382803634887771965115159549281563116247131851627700320326328152086209493258064993979120908144338937673016716398247115195984929111024156358812413142303518549981840701856886068387005480327159801285471157643720796240743420477425901760187082421399292849896824185001376946820041781118966544097524019763525133979684711225691850851753673838637349779170823472624567853532360662149662872529819278640901254418854105331285221298972267599652345824773945529614888538051215657642527684007627253470245443649546827730138871024140118385796387790041041969784429756302824670595643670096290834124450582952954433768691000252254856702328154996961052850896149724153903913059537709851898153405417522631221773195755225215549534314585640283175530124372909325897906494358551337500320209130378776362106417573005493785320522295675027896022050589011626765551631568912213246993729699837100269958126748900162654937426374123703413811592261853540572812267755994187900209686545992150698924133725724368410137803200338695784724277207816335851893061865048917395538505100353032250530162406393705992325944894055676540259513835412908994266029748165428933810526322560994058056430437420504611132412875979285944789025922767479176411788007183149577358992495255012463149595967366347648481403159628501530134448186242999778058778709850668049696158713999727965203160048995971388877350813146519714643624726824797122066298656638880753246841546972147092263991001421446054807461047993411964612406992574566828705114798467695268263830306655473415631291240740114980115464659460039462551717365656591039446062981016471489601485483231415789212972282969321964943832598942709774015553553062204616104813586606053298798618240343324026411968323288034505285846384217909425262036940708292168006902850020237004383620905974046518157287808918940976574621679350649730769687279781924417011383379911625681004539028512229014846966445835465162461635376544532878222793790980565125124043763387551324633375235954004632783919789827774683828543487432783941033323020878126597259007114688076553083512488068494195874756139524311307588057479219148553759823536370901685625910481616759454182085119375156331490462046383601723357244992291665113191497087664270833635337234937389444872590750905572173108409442322319709502640382288128183976895357684075965703267837280069949782663774053701318163902202262176719008383678034475322022863406301745943437923771769379358843895154881341566633866469670890308553249608653475730076838636363879731619033103327585985331477853202224565606257518854404169151483262237665395450797296640076949282347401577291492646416524761673346324185471433766190534645010164046610207159370352625047663599765841127788434340144602895486578793604699126655430713380957344334442245514852102045167530086257928712000744720974062980520469811544978995767548777365119836736109332458843569636705145027291205774669813620701352642285622851692024495275883563346625063528632269548159423609224088950148134498136006790386017962514720287467963617168933815235621267608588728096413191563316264674649345067138899753986908377084977011600867209171977328672320768282544622321129134253739637368799608079190370427055798191747240697042473291706274939877260960980389853787022030727911288455404681897625786696167996258811428123794303406577036334567912015755690779642018121980201313625035900837998069324017826741300955479701211585914873124791165153456692269303353457755302748546381312705345036718868109908626095399885031957777361201327338805727709600297169148524712066480923128039417920486084336674226405777634693566633604260817551733369529543659812483564286353994726847857382247891369605651216840436834257415870135856662702416419417395728359298628393423527167380409218244456463508691417994055983075143456394369673474670098367755844758116762235127277361600876535736122797096306026867601521526181039378940868720167597573161719782121574949725820222659934267371099534785619587606062481797352885029660880069364419269660373100941403900786146123524032279333892503301874931152425480444761237660982320822003244900030535346483943722573141464782487944756748565732202662940813197764211791618964933758581174547007378119031751885774508743706095352127114927441333917129766232088369421196717066802045694500592572154427256390592563067491404474863631097465201283739591501690782094924163105640788442843749432666191877557620605580220196820809558645120088367400296091768344702068734275394222350174056580237746227591399193114690869098572123577267972329280390510817726810207416818040945898164321553707047544199255724090718673413512801978049314397828294240667572950158738921844443695562143420513738441278919397414706907035020695067663507909193923733886346740102528524836668475557814867317342222035623006779276727572003746079957610644101310932070331683095591457719517910784330719761643061784902388180135865639742317073933882596796580594187217441655157644977923363509155152418825478403530006622037936604857950569162610023614470686542407072104436315238243376623046608678926333959746097481784968981654121248747838013053924451196052895181632742134142304776139999080064170388629757031291248636556552585114495615307746872490102126327502897125711913734205028904567004116090638011311785230109940461473797743224653678071725133956056653102880407983493864560896198787577575350471503759367517355984684173826818326236018030781464837355234655392039319763227965198414018111425895985620946249582613491343646813278117810203653103987222728076932895887849652052909011060992736909879152951869435447188776921647399918550297503635939263534782232085879198343100326797390272957165919220356350756077240894300114538356719532158124791619795129036802556935423576955552353316137414054292866395452065048390263915255796315718470645532355042774618917886683259590249833521234283532179792843148799861072478097850816183352932447144015809467354373713891908686309184421384860762119594344761642382703336780689357837160006601829715742371669164707151815874429709296600721694349903416240022540617949888415423227295463158259446952639790937006579601988125086289680218467666602002592456350868081715985498881257455069982190056350846253508145262393866395818311087686501104268151185699018899081712219250314366167741191568398725179686171561481920208760043834334966288405429358613770619853577145126257462607749876782385582876782363808666101047367292344988074551139010318101308678636927300160255186311483051936230956117332729458583341066402777149887845797074883425083513805858832781724089404100493512490755849476765567783855813088711551035794210151209866307646310102652307759832718495819638438729048240875205440989628549060302971243411923949698292848457283723623909581950761261250838567455295625130063653714746637102641316423210974838781467658497534785835047773770003277329167378132132298530021262048965796362254956892945118825235435751512364894334611779132021775287762374052316310472990415188731817759365766186473322834489213333165159293533497977758695269253569758178280619788134157447359619224187280254344589761166632643530986015369093966345159249485051996571763533640709922429546813927198518607773268729045488524957750115170229470505513613287173770854405564690147866806049868056646198489567703802918087958222646632141986843087655701826578001346923052418797604000444851776307979105795574603748813251091054720482611517500403917778221284281773960949063811862841823814289947989426409561855583544897967563094255330476618002231073272803670217299768588955284955667585511623083402736300771401715402666020325060423443787593717966666830450948120975098422498049900393767798487948003006335351869473197966885999872821075626896092255701999335560783724535267995982396143277505410174089184507642872241676155115876399813509093913941267474237729996329286442682074706915359437147428364784468108141787306155873665563482514702432611866819044220495353097816321745728870049466561589697292629238958945731795253495746709336341623967365881532146280855759691585379425127237730533760210299549946429547045490495954153278344777762476359377880759090398709654686722610750753394457274256525040693659324985959909832299461186569152075376141526248179815465051233121666350053162190613362854465526277269335867973820228406233745624205782077209622585170152072684525435079240868911602424066358360454871450689156398107124129188675142976140180161389091513036443579367047357843620007280479961357500695064211423025762597321531490572097128544502256085710631110937561065486624577891917862402232278071988602536104275954563353800604465392335551825514170416262956074795338119197489268323752941634029717879818293989969358907118239295158959535867883388028213564736845398994171210808172356502184130305193532187110277383263936789722329445289656513344141943327191739583562311758984582630623811878008140778066274619872756003892556877208228142326581386600175571136689478223839157453569144353589194272775451791923133406339419634490892982281710631879766871992663023850981033448002724082232212219153966026891312633336440459265477898573872687283894033823617178078322571528824394766886297211329119017583666931041810745576437304884071677923729976547814619099601150676861942833769412188562602059754966324415477581886873662272165422772751326372131864977818141765043354678189095639485130143545230430476201873832643055343966572934648524333311816717816376570562262203143710353511861013212245669661223498241047776622717105644028201589408531727762056984965187411612366017827122700210834067979328517516378785136641238806158932827724066858517417336797864106788776082813858982986366157391434762267196160234203874018855515127018465979632290656074708534387990427388202588817369246394413999607823869945349195935591447256689537615742346420849063144346964738162750758582886225021979689489635141753840363823172001456709841043982605950133267853778230154847769476595643171008510111567800477999373485436350689182510582927104456286955651678321356408240922098706127656525326346609565558131518807197547075217643489956543677936243343655634718732513444688048605724110277883155090698251204829332439038211158939599559836895272460315404255581345862123772506418183503745924774725557728503638260302337724041719470259963625187372686720074508558343803514367692557991346910085915500133542150135863676696568715478002834368808214981331745288361159842883178651781446108344092444436020497318719144144611035521006292381672095637305701559156396895655662833683892347448537085923962334379051731652281739177843977266865085887234563268451222071930221155877718785318113013286343333619024771214306389950766965708127572407164343718422632678173080141449456001937126627189759786450982465311082612280909056999246705887943072569494610248629200038530075942859421730483463800525283218564024125672445082812867992175877405413388311045187646863546462476562026189995034392064966826480701707334700562608088229368203240039110375273324222276952578002396226463305568933798199092534847858513713234298948472216771315292653642955339459450059359962941256564362254417426562358147525086155262771930436442666630972722414875086193935289608666421836047515196788947531620692780143741184704640606110802230195437423853337522858998350541463043398111417099024251415314955746447581640344291142653886324189028041653884835812083061757711175304788237733043956105867533379637897167337658500113328647324096191567284185321677335302762127146691958947884070466538084702382239748746678253958653747876715707565313409798381318352997873787337247968573703565927483422378645910836826195721684351002977675972373957237535976550881844418579344392204155840938510928744973003090525491451873329996548733894801859932041621647131692106473683941675591428206772981484539891454362001441917920051193868212515853019731454794878203589953834402387571858993599712721148711996531903557292880556202129817478552977685860160697286995383609427912483236887035908511920357341422137521788914678174316898739671554367407071340318114829038348987090176964456615202788832246415467879863825779139446571637081800666187533844517342071904841538405180433634883987177796605921701125080701597908219315630611946689267177343006676352329797791246742949739648352812605072680812745213515539099032891320022360963256077174367228277534955739621577784169735301782197228405763959327823795208787367885710635257193468547091873826037592583670791046803701942428103216887272792801344018168703585186109234828925006266806300838140909503997563282960468053711023003983681759433467972963407794106155668538861432957523980437879516537198390452118754015134450643379896522992848386189682584890017746479822625590733582508019515627079387294932981834783581009753773778417163982447884931196110994293287907136769912394999932794592521932646294001381275119584064995279820158852303885788447499408277291247649859251872902274256912588226667761450315133479916172340473346455802886052440635587468377895393619438298267415964714261542519027552836475745395125706800410894808648269165145884387797258000663211584174475062824874284080423997042449890825671122022917023170372892748416467052701037259486035347291805543071337935166140824507708792559343318003821830463574494765627377000156059812925310521169546361954863645994455682194097124782624183267842606326712694062785080662468898726776507666882224392264090285154854401861838180103480889917173977157199460613718142516681657773864301799841402739986982273491052921299056444595298433162279568813001490082148333851848598760308718009528656461711489236882373712317793620087767865749901569502906583087680258793808276672338482972991250112246121287764418477509052822619433129661907326802626386521923183138832991643166756159456612662179563928395214017424295994067841856471807602421479611845934913086819884042423517078226670235058885354615303878884556803079980952002409052521614226848483666423579053002592172171382258544081773666191151653801195372605828449853366247807730957267863096547500708296429463766376907805431968449771769523157113683385611517674743318933139387919540712741108174249716279676961603122034787117810354549222758378340451325921553100549900464609902760569198841046823454345583785912096003247676328795063130524326364003232339156918502533509448100196942484724097309294428842281417464738259766739584434371429812651148271994182802401616925555429842275378260791155186165448613038834570204069750301484806453680925077321910415103930736432037367905006328560087154181928756565025257397386639770994509779253527343553538586705878875817679090379167188655880915600034401218626784673224548353098457152953426815983099001842523339539283237470136101810797874679158369317803656221943989902734001102369740058905158984618264307984506232040560235677769595282381029329389029312485724760737786148033089256264074351236370386709017413585894951144216231905795782096974580564664174228471956543821862725538625191288107863080124250135259223153791250664465995750458534017966041977317680538517886334792373413251338550039993648158478890275360402979137010234302516023320868407740468420630210529636880563875946366422823935475194020096211786738130212478136115590779683780968345529125510745942190997998804564983424744207358525951479217816506192378997438653270694621350181801193309324391148227286629132234695750224033116667044911241111075382333943449228580885553631840506420022198690126739837945676071313603413723904445012577077516819024957036150385560746918685283001949807003118031927756773839241619719320670447330132564504261373451033344770205116751674910461568161444971732156490061516610276978264811449636212336506083588534957538029061500646059028972152514281630429708705218920702767657232401634418864273305535400606272804548100733808510227428254407421837765444671506509774762626515933341881092562364887840203803767761797135396124950691775583658638786181035661052887203731263913036019006030200401373501809270360698542859175508640881571713613898916025599138898534754889262897940820565043309678034389492708412637780112504586066664294765118856468086049163287743136942908943953617087534764455322561562587901800342405412686606162030613429621543552440990618238359049144923058253092560031309570157500915754265854603467166956275278530272353880865300843175583570541553835472080363284507916572980757172121950653520397389423373630988836327623206536613798537339881753514411856194459959389651892142155858460717605979750208775451060754860977229446643122688060580335842902967423875227376266474964777962442365808808774645639434049929041055653460026543284779398599021127558279336852501340961451586131841741887698585621523510788340322524247264725330587917599251980030728971877598581086945167033011207568240912863618163855053223896882004795854044806817023623293046843926849268049205090550304549846123134685616536294196926103027741187950177138677916883832282450040460561302576436072375166486487257358381339025369004269702200825059812834890205957422475601003992267422995008780715883831321786071818351111375394524780216082707855481448235348565860688915660589042703241342039543364421267389662609213585593057387512013823269578965252198697461448557094114663549077965748614688898774141821834045337717919835668613323246052707899290241005467953523707186757653035239734715080910419915229661098805930701696722937422195073188465141341824320917897595613631302915439525709680509877369954126240508752658821439124968167286693040512978029453328641307468129509547865878218866211053862749188171676322598102235943134896920430151993997782203800462795830534861327945475479725958724070559297144348044864392983491001834851675512952555743300910509925077508811250967933673268219276437356242627797395408195499045691120150193347913551436879755537059371380623709415914490335375225249314320127617504582921772243447535867799172169969333535286484050353504030165452021534141086682570719315262811807157290088007118554504284063123842806295669890377320504809360537272049545036809244166543437472458532598780001721643503053214577373974590108755354749133653752494212633630173626792930093666588498412830707771525787644829105092890574425309391753572227056237511048415549191443418504165413357566172976966358367867623107517526694357222599693213953539185006132621844859236041507264769306487430412797008153089612869809707912114636498319897095990797974091570090531900029374927933888864819434243748887064824068027435618089456977575983183466119805688613769599574778546931646880232748914722200188172480233762167210658288394197034852651821010213734922242330415634777134086007080769411514397789211422916960543624441290529712466286109020731885080841370349087730048815000805185924925056659648190596472883875016105361234951446978498289262657003629028099173928006023453479086377779869059370209893294526469878457335986300234828344264079600874013401993945060915145287750231006100727931389651855839946201519105933326260466766432046059601519105795598617356198609095725280901867587694626686936828451967898332534413031935665307429152250920508941479650097331527671695633848135141897510415764518724531857502824973533488237090815883797695609696744881442022650931340069728492214294920929066047817417340574844973151974962628195517231535520164747736441920549060689152045035298335514887090182414408214882923631803185757064761096384074264482612315535364496935079375397127912843408833650991944817737626730244062358623273882095138584962649974551271854748413255871336426893219182724780757767464680334809940099846914354382295502047534605530954834249366987247808390649564536028455940057724678285571528977329944570080464154506286662616236289756164748333244158140401811298442166224475255773285134893613803617602516564669002425431668384310011140937381461232370117035931693771874716856097584745199009857271138803775195498583888967693863805452564954884870816732528192043044387593351270073863466091577667095424945462522265316368301496322098241855926807477789610442534728591113151906940720302382319201772220413461240151475718299226602940356082780164720474963112162154547461357406953122017285152237393166072557244642129619068831850176650912126414867729470785339720928972236392359638942724671633991298442867421216710750694054097381931694639994138682961438033977275628050626266103946808252485542692582649614483370428470564927110436202119721728321926957658018588823059188909010851244651729565893169215979519437755634091554271876023481930553362070540466026269470572535540005852026890711948255089633302816849719878569239796692776149874012478809327014438641320969003894868419939214261162058533711397352058545927121963806530556736863092451012136588026629222858666996750315468935599580265644850198098763554022811053471062171057352113574831260352454690530659117408585193946183138900714901401015849900025472096973968852008311138747617640983667871205104901128653050138535340767838325824671558459256983406716393290794936710554399456255101712101345028630886970597885233943767413846610769478702292316585734318450383923352433530065799067545990255011998456218235746142268807753947189562420006845182328055768171490017774321907450097706711293257896066568633113326544502348182522379939250353159797430318023071142160433549549138924080447990103525441826736105797665328577367069443609873766783379486903567895998867177087005469255578025360361002156077824729575302375205235483459147097863364294584009564821904607850491473088110541694765487679936827886878250326624904369916407967224513719284538923606603656256369004130292773560709584129885757099578939198313670242845385863252906829786380988834492461608535525031800599914024261755559937203373873275531741583360845298363930172108988588105407089762717078813577304265678372082651622810157237551302439970690447629752430382852432157235969142042291962930294447523904084313066348936098363635333772411099235607598876535432051912227278421013421068524368989043118467021974120513700457237210389238026355129160728099376559470990661587270703737823867013251283271320851545017961764246047259503061557154474205306066172751758165388840127652249784866628174516537221733676321393193871242442920513326235896267904615296904723860638224329075457409782188188126310008190775984344688020760350757608031936036475981181905952299680840773943928721465526997566675086544914923895185018795694169953310744308409682018274477772724633174778764390225532659310479270227787346423292847407990376096560812179646599965457288733457193623446725116396442771444812535654696966145295016120335114887161980002874773014381566217623030736876335518839882430857522418734198731479159262088438844287077344215561524348814580664175831822635192295329204619469598155859754300065960860007503178144032211424656000492556668625642419218823374953977506379320680031130076054359382677735562058724994448951369491048162648795462591630715014554386988659502169109247130031322432419334919726967749444207770371321629247256963712000107236744706142130901148383658593055715375400820853694728653568211218913985095548091892554886843702030743123322821171428735075051937989754237996326633476311155899917255727986792662118631165811846033651354427345691449031612606243664390431109495564006473315990299345077677628651905427877259678535052053541984382938999824320969577441651710368437450905225656943052992056642313233240085529233416099337530765233003407247868261464044595433327587559044998063759383491921457959911744474531288802434443271643441142578900285908593344284445028166856585014120877864265908181518175131568885759083800826505073924924068309069876879895341363033471692792921231912710915132832414794475312388527066410072695903473371611826832442272591432581809907896993584389152309732155553126367491664377750785296688452626297314015836207122468491072925659701135891654487371625305854303316404899277472722869894893247413874496374087181594661510497861534779966747575659445834302533633635587222504276882519289369891241871198583436536549792354575053830196804507001869277836814917236106059359815046245286332453336817860193757111647949796401781494186013698104087297647270961321314828063002099558902739494776970167449573518099086253104913815214850064173846779982463787854142770886560369210758847376399174976389496836349142757086921254970896971169044580090546576152468381673507175709330551614329880764590393961539987821467369090526519181710974457080626546711877765754192250245369338336096788541237693330802245693034282349277863209854272993277793553367952436356439388208520065058935120685121830421117437028154983926483316487981466768329437537992059354000578257764902852098152878972849585889168355227537200372195346037086776913116090315175396296455189145319135452609841112583515473483436102458281359323888850961245254483195194645950096811197887997620648486498758477903135334671989218030333108176172762221173370059907129037284194717685522359662506266076128930426405336719341388404389936219593339407216503429009609716011168251271543382581413954735741546416474155357846405003570638209493380133041902712097849155764048542879079779868993652339045564734712147886511308180364658451702464748840097235068169112617110756962517367931639375755390409755488374839589931890617223181734944043638974238065050132351278448454768721131884998209064524441359067668105878355422338710705997224025083162565277038871821930267808916578222580580080856501970057600090373211277934197530496758704590025738393097286656159655251425208203366531586163556905985336992598874372590684357599143715488229540254777977465914769119651123909730207497650811735286650111548279397195681355257900727082827216036210431710194865095229641392292445401835859272357344236763840217051811376301395244491433238099028740248824422810772709060453073962472643935591276653789031733438411970561885601622680089012033812962596935160392735634086455952252418485586886515652436971722403738740007495239685164789935556676022636749051022601369594232268310619626236540970447406570598976496287733845139856311134137347592552114783246692351311358668220506856050290560478303650378973523880977544537659794719007823952740900186825609208915198444913481425515819349064589381963354600894452401134287876055919219975403109968912788538436799384470385056774787681711498422029509220060668871143516394874555568409514303552311364606571482596911342801393198332625969097149200166061083501679413260013123448672196274388023871922952492267887272772553894599084652735946363265176784241376523092744321969147911507033905884007809329685475983295692534203574188635320162706718987955087738098808739277043522654357223453539433864579036489543624717864704729520190927138800017069366757124447016857489625335455598959894354338365323623544984998435136735695327382226600766765749163686799451458099472626543352170214473492213053816306879030559121777689496918811534617709009706725169782539190820955804529819965200404374688111415983283198850490642336449066169676534570466050778668591958322908746106675089215274549731862677222912115116838121431547049066734711601168944338379075436943062693190175130250338086994901002506661960928267408656135724609562051800910265272056826670489117870013984553642051985637263755341168074066609624975659464136706040814886763806173468547506577743713782835581834093197252973884488614307782026305936392356696525429045347132549866216415911459207820030345317047677578952607508676966940614168476048854321587025627829035168298193147411657013170629474777435256448297831159588887497595640629609826704413091464669226508528597576361992749193495902890249363898590825198306911239686882468177937461649883908341544536382948679792802154094855323560968412290301204708295586183405115253695976237246882311897323998846204593585596238118915563199155119091653703550686549372103366697426972037873556563010707519801164436462499095875822053456443489165957567845270763085785030295592916238286525590472809171645666699380465079140683177681053911829565197232328457335755214761970964470951652695038873972236803081609870043705533357250189970283606502872420597601917273002104437426600651598017543856626622832061725478682549211211375280715971316678379097322070366593674012946117878791363713989948780873466073841529667801096122337936033569040662850309076908638412684149385253822304987690746878019485040755286836861560095186735388210108174494476096222115997727934765636459072574205549604821207255557956969078162611097862852298083434630908561478609133402604771812935339873338661837062211913797745638503286620313817639377667509731831398659951889530506777953938344170755214241075681838020832396035882679534255712590590184664107064255877648044214486648029021733340110468791606644742102630958293543708226489082418643104565946996038352863229276611584999776580754381955046186789535269578553370980292293456736861231517847538212971078554026959974058140349769640137416111477102573261982688534973965174887187559376904712611698069111216665147965327472411303250374708759222188153652229927853778970165008356460711186481328903989365878405370506926115098275118077746399947762756260441853864868372010551916149871859066147842923656786114513981127650419998987025384941801223385537961797545720671726608653605825313370504664587184960672157050371141023644674103035402439703570516411824041735333870763976406881646616851071368980179875964407710830269062132921837428611075726994934496848519732235510795259283281955168808369699169537695426569798833960295438022370114388216894788893188268445536553195135755585566500758272539286106378069704256339771471218027762753760626622460839553280656042193585988214957115746662714645941635462585930798683572068205686842971082452285733565585775665826932410026130530237246741573621811713502939329350432032100585407123857201945255732802988562510774003534636985076180182989911407654597433480903182097627060690811869858455219519424339477958687355768878445997683582528943912413014577545039770921215926534312082459736853489869069611204423678152055980685611591238394383758067404390867619163413367881081114826598474807456992341801658378428639734298743423941321482088742378314429654510928392600496772617479614865899768232962617838236936723010560454690976669198380362341186954906616449618699230690877658450249873515209784934133441566473724255515299915276677816457457316311581577935003287810014268045386371984381229273909924572271451723709892003396359461825003151575025643833470831835691459284118662996025315639919437998064041994237602251332555608472492041256291139344051024433495194041710802755339961861805082719397320276754786933434462052765338953197880482431514080773053926613672309230637917265695351335307038971922350123990138192774073290390168725772841309721503534797461749933466743314480724643341433996755438296935456475239855041058896324235053898034065276114559316580189805453323470687204181681685648957433078819710342243270388516909074358861031812202198824649516200176452421981563512778070563762125677460304437718098381955736465590947385040891244682291950994219308366669635142870329824233166469522218381503234916483942262299048170213808770072040129143997343014842578223678118475775471158601597213265090354821192393349990862607441434180744312130302107394596480391410408405515251846527628544344005757121957371961817790099011312293157701072324699738976580326795897416984429919332900007240228183709211010078499907005517440918686464392266508243435149958649383101188207999861575357017968598057595153117461825511199266072073891391154439360851575773333019635029616660684374025299166996775964106591982905498463623240208602497305552734390317816192355366257158281623415278392076714490574639487446721979818723202933989974923551852797565558947028356074728698555866499838715979503709166589092377022487335748943896467978594949751960578582122742920565545332521979394769832247458102463552339539028318389386668838160760635654421272678066055874435331306754262700044738099849467365678144774499583836322602793586619244356147138539075415888227226910732354172235104460128260506180551855127501597492223417967816979073422347569257976601692694909506212372678594984372814897595512937711682694971642295113033775291823875509489439361619435937698454070115905859889410719492528177272825533432271945885780734385776238927428757918896615331997725638074623293836095655363458018423514653500922434296494854171093172284459509314798216717631965110116348062158616036385008067077594794005863139605345469498429797137260079086645726113156359796123093620801171768882437275833896405516263715149348021115257979573526279677029736738865760484892026751815487909266558169614164496312564731529634507130563808034940372504798938163850973969567876085285487111754924050967688287942199061606495671661477051058112494505478875707969733567265437154546404389364719846261430162138579880938969616981813852380885266882502130118176305633884367518825507690226615046118282689152243250434952937513913827914246124383195147832157177680902768783343118991517741387126290966710057039695405608852775823126965332886628539080128973486960891223960075424099840462144622230888038140779406142194594020912260838854164264010735447984558459918958321618990943681583228947315732407094827296127140913290093164941925500693151400810635282264446093331174344726079766514373679520997515020791257416405268498177539645054708762089342455584976683632072570068320998691722564665769331307327547687682016675721914445457903659190559139390735202452804751598583604572447234528852005853012692720649262130271531085624166330261366752463314451955102877688116566256784155841959809112030351955635889100741375492377516949608718215124403861926230172516042735182157016989045799730230492338932138082816274676780869304394037110827176891609763757865380339073178528588817591421290298650919156035904065861422759973716325222431416434972670910224942540565040794864742759618546024337337580380376042302759702247430399019807060409112516611677492458880871800340098038965564089975619301032777969745617105489826146246694500751062732127929809611862292155960211160961739633604772172188678938694115369336114593789624679034573076362482645620212725465025434582487051501701111627488408309354550723833878344470996013335976638895671469987854797892439720208957065532806979501081625515021515154098355681339643639547270960700465506823186360273200370394548896015618772030577255391830069609560956421424230701368337022632270544565158946801491292190262518056275053435261652101809162490137622534914833325479976621266565591779557988256970119017410807513428302289113689389038910286405091643508981689345333299261519726684946651149735402682532844034354365121432990487318116387677023613220415237820059322941578267305166959359421500139929831319950265170575572752215339342713021944360117493964311687937364091300188536423901188643041629041904528991831200549909554553966139807128458868581172461168130139139220885364398905894382754083078272459090283090680487090100667103427500581667320761828092255534337095822214222762152692099341185991512781446352250000451873590764187352540155570952227643801777699600899494054555340717089183094113866223639491770980821627346860905053029509584443817350305433687899388836896565376195107401929936092612242638055646148982750700664582312236234522077866919095080057811337265679099607308263391370421002032417217246179728125935926043667480324687216723362164367179165798085592592292736078771647934164373853658527086581888753713532844120576417920227829758681703797548056484932239835847255834276730052270579834262851996558630628207935695452411682475975862447968752176000349824778234362256572454204115513493290770909150895049584131421212615495610010221523793633649704141084123521166737741207868717977442745680406578151039222033047302214572537161209640155058143404050832476598872981077572230125365015851553051789903777957235318186379238597918522676242949606821284324136724162397746527095679644983253964833560220753842026150568080677455804237197424329528612235063601607074706823869166949166093350695769265972412114639899276669230696303879248622732307092417368799512406768724107629728735856826530416615117726467856568973398897444882629871107349102529422057232763481678802509239796702418159298600138948475225257420112139954515740671389217408001535582250237111995947875853014791398829892202293626769542442989646604394898419616210619376018436989574923621154312236575058130432820247055037241965578965367738756500133595831670799315689985215944532519017357586642879312166376943770722022305703495711476255435019443792058145012833881724932909233128607924016054293404133354674173459491913756090885071923047087025720952301289511997881548853994831083567572443078791282259257898479811325047583866569847697919096284475078175859060751281986914464297957332057981908319577639838778383574239683116335372124834890185816943846900176006211133465511226400178281846658797294224056828436577960704842438233414661417464338136353053020689959297796512322323367221731385329116137530423832477151657264032431108110636354903417201428301666886354439158517558486084243136181279301083147481094301066730512721731748097783363949849363298110890423691834407653838626568533413494303695567665945715825837209742059666452311857377465006675859817223390767731716696713312192095447580111561172834883359062372712032525688496997433536718158453769727281759371364002035494920949813723434556502281972305061865130201964408632064624306947549213530109646031938750539294606244041971968325681108323062864749540560601787861795943353822723556668015321251799817540432837711188424858746887824338878805757227964181701336163474757676513515729103939521214427369470018382242105697670414804284272959735998819968501131813005338521299327765545184962339711639748761399852972325214918107992923605928132996894596029865089383602527621782754706256735780809262912890635007705162231075247614630218636005932736548773942650740950393619266112646879116031966911760396152234687390310896700968564913104077465137395995763265101060500679273032352284260912747003527423476221046597625335377391065458328879457353673432055520928042404812786843370148327936442874196422826713617018257934847283592774773453019839578751487605870645310092511468087199035911454184595400740811600547389041459292450090450956034381242458134623300862935868580288944048998665966847500750236142411749436595387596246174126337397706464191726096773291883949033931383763842361074386920408038282122257557482639572360401469572136648975976625024054845982811660857498343921245614972931599699709396149859277382445767271492611111361230120595343133570493148464682768175242124254610915266534329991223439257038886554911637920582748023327191147979802185487332894944571482864075384916698970844879969280900597484182783819757996993982526646655073272646251150490585247907536762555193364404782325328025290000444322801140450600654316251862732671209052281591334753582217204637264528048491995662369981582554997308386102630598720711892381207988056095906271365067256187151277465467234837666449582243855068770392780072746506641292738819124293713634073134061839496041811291183400139580400493014588541244252520376361650340422369607823994183970086220496312113853458479977176192716406330882100762310304968188624537867589375225822365485869594318442519680298821873088623904153269109527155544530952436390548554667022376484189723912245823485376709097924197801276272735945560996577353719253137261920228176447265114847079363625021437006181948098241153088332181457140688706650169102577241528957028707962750440444314632336983740115043983095299294603348472973799066083660196613482799590959055548076629773854394817739297519017193541948716386067071115344120835271822342972749977691231908787102027712675998018804282215083788235316277436446020851204419971255637167479245310118536269929226816368488571159175312883654506877674757698294642623937563105543751522382580396632465465849334838905283717727792045377795792198314959347959950206386894791567648715442762021301229269334838521182965409135233285202761262778868251504092613949991845751537074655872266839781659120606835903117895128411949279509682484036862769978352670111696201129199030397493363727695599710684162610156365080951088474586216199617617724670824575616281614010437977637910039586049825287777089073539075269149736224682197999986578816694339738090537318614194160438423631563411787300389198408161475457414293620419474886286401934968352257301583035642470779992849472588272100637117979638623808080852348949302109062896914864904424186789487359107478985086959624548167127975508514120850606033925800962978295161467947040673948908430013297514280586403603002330061027475483419735198116457794485952769294260359788091995193228858528771084792276894528951524193978476244522165209867726627791748621246633119125657935101355845204506003886327779933218203044344271734062146934093319726031641998216147142887313971457705114193736599936811738132434646359061240424997667897740811209546332122448718316971011194842988264987579992122915441597353755573354950313883305111689355184532403280163482322392343285285752425301615343367508937562292985616227429102395440365083814001146193878806159529426981725445858675688951022809635620607048080816233911975210551607429907993729843727375546171471535783217458507004527844261320398253740810774533973550988092472062216117012225110079538966193935685476382351662007959877764898608195244777304934726316031305509894979434139890570505768689112810675353528673400621954149320180770345380114898682844312512018055915737414862397744680557461179955153415898179281296063507911987096220425884324152379722894202008850309418952344093136324006208615985061521475299684003080963182539041594466990963045025052655096604110677851812566043131818366864872026951055461249797341004787231876194306190577378695742607174304494583178992620841447956981074984985927123470396464101085281088985456319238919347441114095973488972881662027190565144218001992108875617665887384940848096678570691883532451073873747236516497453633086344836290923962411744703264358287648450542447391351273703768505527668215702362616621059754620375139866020644072959372727164571748373563370161706789369238407245621190721044276627128253919513554741414693984319492413192897136770451091947033161130020182256561750772583763303399428715372878685731142997814164729951205477211965289928479847001725042770667127898434654394782440941419124757960571033641052103144861478276365652059480135326033385249443260696711353278960968534814303201011462910706132991366012356578522833733712110464917848450565946232030941657701992064432229805082772871781626286273892169268737893066644900897606010820437011789630581761047571831588377435919656920714798487440715238334622373727865768183401499793801684125964584999653366861284546638569505933422491815625636777462273878360107508166635209631989276403827555978259895494103350446445412094988686187352443805576445552240493778149487476130386148608212722330500186523961479412223017582012443709568619243385784624104846758574975386447676279449347861234372492180319862157603926299819966433778255503706925687439434516088015429939511481689457351330565839319583603459884439438200970984190728437114944148520771342672849233021050045197193676504038502900487933510869835359460822921304895978373307022615310797326991533350488777273233317751943612931838674700259870266312263558036614039970267016201903565628668701702984910882055293687738841205148493320364356283036651753351298945856534498406447040273958154230922990525639149779604546380266579074102953388845841148181797263011736517357666703597703371990165183589427264605437200592635580828084485871019151401181480512860293761044211386606799866929345367565763121804347386301723621762361270228069816095517369832902865890031549511815455349131360307947486115461881445346399952644101875296459065383022932214900142867970600751826150091195805641247935946790357309793927877344491449897875426324717055365439713435981613877153363845223496101631274841297820520100755202522894618849357023487105722228672773906556853728521819384138168905427558525743777898460920390211439722334009435406610060824143797773682875243289114157651332275143868784897548938293401774428732755538245024211513686046108619158044345394038362993460385473521798211711040708006668816977464727160068423871052488426993947080398365230001074921648622604798146220019012834027055489796442783171202039046034195699435978632018712449027600234189729763899181842911694460738089012027578753095768582558778287540057506943815693840061002540065675544709896247947123311801625695612496457328900868478228887059587903740614629839308489982894842702700151452176848855442856997201134946008893654117668031955112121938325597705570047248775474681216643719151405633129041724015819691514764434110567960198036316506202121583086370607392398846064683785265804712281892097901527587629099597854182404673096168549321282229564341316122379185558458825007638837886171976836227222929733133493543097030273803519468617337129422340981834559573711485945433787755139413728369999751718202897208656924883967762067620975389790652216920677870077501957925082135038110661684896484528680265784289378754945260031767681376015841883014455160903783926405643957563884285265367416493587469598833213963279146754067934891948138339359497335800404901464668912791693650058491291378545670374435676574918263513393568476569793231727901952115829878162471492336465493417721518960236467763403880710468178123716142391815070165981896468177397966804809540374691818731484053882383763715754370739637081181426139714044423190361679251403264164587845508255958721020718450741260317433667758543461086667263634739216462971598481243928161346435995487391426469629339004181831603568261325597163153705922911813210592233674658945832677857779652642566435408250820397892862441637215319191866765132349739058549630003567831792563763241922614191667391595256448393313338640285172853656130000688183269868236044427782767176015344312606168200479109065167752198765849309712736918166092324449962293436532254779337294523499318644440941771597429273286847363626568513738636722698105969179617899236346417358039400172515570026197073689588381705585371951929523191338185802708536899815203612560120437825571075963135442895127977153994646215440242479245141210522370159847809261937888347091459460368766761811890118798110992125854104272768248017330860705503696053623822661197460698448466730819255688278943260081765347551988418869840143183454329782955961050786014945053207304348350661091026737238750429121243387567847322082009119090061074865823579393738473679920963914338849119105243427564591185139008497936791341083486286578408168776082058481726471368604577828168909754843415160241567789800184421116388352132060609213756952111615416290981349473707456223842781176429179850842936451013350918304930333318671056607415190596927524081688512036394029285445337430320461359276213958675229069332469235947781566863603375762235965101985276379876304352102660160415253190866813990889032567055959996314430536543914923827435332538273429416604247378227225056347505091665280941505344577719800330778365572390975732587861216868208342580209062053556262174633702941934467203457750265638221170472486581668980503005633084251609890823091876210823612710619091487665174478199354473353418599863309851773110892206870749332235215090816187139354114949348026539188643814506334983192731736600187941965000259985973802367227417702153476274082976633256394361296943703959925343325651174327965432700330353550065277419104749733502232142886229299483617814477659643821585579819353902932990490802788513348120936155670494588610855740858003052067838004597437422894832417210633120371511411570744191438036727195120354062121855253344790090465365872263541831180055564956434844664154080547882850897088708239930967810469343766713150752677000338352976150561249719271151184919063530853975381970942400982478442995963774371212784767174439845821667404851337282885441402447378242338488444454550480665563023222947370130189685028840486940220472524368389659444188182585016551025018086679258855589479216929514913692468819247351382311560517661741808295619797696953879253775949836862655532624292236947743406106450132227641744158517302160331299267566232464988908421665816605663537978326647486213695383397741046457962792059626703176791173112955693524866776734295446373202820306875614260574636994143167985607888569019569805062306727047807716960391718650908128118702170027180839278292703050160835035351002881283254538546448779352327488303832956591978887797151203419823671818754145605298838075604421840460191913398641740698879743210899998389320670853893712156022728491667951509739420639697727903273749642881747897540752931578731655270104167706538222004398817424681390162526339230002016259945022968343266856910711691650074083965088681034314794711156521853038769339570861948494249163028281731173247369409890450396270822541763118905981436196963464315124473281218195028190120661066941966752107697529649128725243094663456281362494127071836231210704603492599580532125373435813424408621585001447184811989980761594100219161681504193087405925286817470614768597805830899094469202347367251272867878790517612674591963929038145486684259022004217704411216098137809530988550110183278043170056862761836634877221117549215766662580437269932584157476673314198512272233539905719729300903470068727983962562275663882219122197831286505188668227770083424439619657457091201721616845013984984188848328150861774674062092704267429928752928908532786658881748683033692713253130111161579661042401759043518028581729838182803775864964340112125694212169144858891537370960215831676106412490013578678884879270993175787319742646056924338388081117352183793279741792280268854913329200536422543384037359149245204762349971224775142040852406647845812926150783283287098240966991456397621177920778557246424420346654091571104979093161547848154332795929532233383022102869181245020186987424168042199401753352716640481960646799563949983104159411753380901980826938883509759091857073513956075565058127976719747271284244699868624640871530988374675062339511144720036140429199059141677163850372256652220212057620788204929489933261689565244842507608272512181166581297534398650054461492059915776883915681273791879276831113887941928608193428726604229029040648135847188919035261483490975458324647191475010255576822180300823730584709119725623194356462643202104893023744101024961334371689487147976216211499502582880536476441456164681044705675205715013138360333434515511100980351176892656056144414669157542644972457554681210395134033919791223205088056717050184013229699784702070815565390464688502644271431632366187594831977089532881094012364856831479318323059294194228386681598869460131946243375130805128342547617746561642083878988501290526104656551040413652234205997502792619000882337182034019082892466665213103938229450251078828368255331360378441804055251178989391795704085089040989521620032103944153227773503805919563881054925516820104110439782999031097291171876329013286233454503136692316054846304771514371303343114089818337834223564920191967522252257363785324761138669831224770604702165287742709547415874072831528540156586038009780686993289094881124059910642443765713078696190540829306288287081285428247026971947957573069120531473774332750651115062118009987238120460640378339161279473643526546734073975294180066444592699317975693514774284868650230786621552838330479665130380947142108185912337553431857647155077646819981517295072734199930666221909919641456495785855911929956599496069203302973802281173241036345257696440766945539440560685675339795397385973268467412296685174336653185258831620590407568737450868001843302503479872162346323492363538722031808281851263918550774024729257655638899810114546481107028491673993852750156922954105108558672374746970915748915283012934074764818346130690096883125929573671560716670314991668937801250386843134250915880985624133337207650465785140751703079779384764040752667475682471841275709119885486477084830702592167405215607119662990558490975797736337231376288343753484674567862559183773169788981672887588131173674144118091056059145517630363927212214784675787657434936667369434487545498819521689347539132460091480474674313561059878213247944805318049635722468989073704519824339747182311532768648073211972208603610367183788439606640986014905474060865710191907353242213645919171643328436016372724841699203598369715581906835729271005866340357056959349928271590992483001865263208494962425374888777041443805993671459482035455428228208630117761738703201136216747688923296806050662816618638544861430884049290159679824037552290818983774327045347496279741585310223507308412885134469086026209994699817524264610747427579736798261672604243765954286121210531954304259325159641007986013607047716494282547431738796858727639123836434924416718435081364912469920714061960934847628189635543234697334557911189680857355467513011593809956874658859637273444542408513367257676138642134402753319181354282194191076004100226280740471617351270787594280117446918847593185548224527692912062077708046161738150901394692955582407632202774059291343886713033954788851026827250797308415234877941909070607074263226675081318612279043098562558174757382330729745493995875392295149645524216584766343576505398904292076468801653162247175324184386295546290630354264299438333463997397652555926215194048971273632918669642584653946124484280988680679883116590341504922118385493796272846709182987462306679418114020759159713168920948040526808799766106398343828686825261492034210028712015458636712570527449553064058247139488765100466802321722678907650158702536844773023745454863055110592090925333036883110386238477305191314422939289632194594644533669738566907789082249019062125960838579027476180877211177250717845895208894027711711019384290693461085130917760680051419169716988340173995483698243086472741418626707690517010295562821381189474336559163117113482882038071350565965585320660383248944821817862777035427064421562021231131747501868538319812114501095154574662053945715801331641586193969660372191768113672151200542444289224959934056146917924484063196697809622561900373809762180516831449375250886355313577939051752213537780108921290296617247125804697542404493025347736577014051221779872476946265546670407427272605890032978464199592329938282943225261968723670002744128968068275541188103239640537184258054453879558609105884016261372857361844437931519513241117201357629971107433757543161398976783835189139135595406842438074956275078222269489924229727590013704455083551357797510111534272688421515240751480063784794630488369739287560467063571722670588701263061260446894377415089257558682530983964376550820285469347707098173507771486864463084336329661306784703409085528368304438094264092154308896195073278882342926574984638236855696935722028248809693519726767177061711934549079555588971066801760801997530405018494945965799377798458163699220753350027844544603687532558837733537695633482828759392993084673988608426386510453050954451222221528997619066934437248286386359687826459625468655417527133056399437909379106363021684803255051876389976794874151954606547958405329536331599286249185543174285599468331912331180868128001466388739831463388599264620910074652654166464981753630218934094303530249937997297041192709606172299452011889745388364008888516959607473952641128983390198674451656970467677742434648566524865112221709905112919561150593776753043001134950428990217106362584507306324258226631233777490594889378556503468857138082770072151315343112346961970714240951274617161104476432416888860334741672435943001711210766443761923059100190095592911132142405179514289053622389385662264509231883582114011964541012802667329225918642216638638380688685933537962982079054384648202413816499019268537981895792489522244104754652114099074432597921059802257884247898341155268982077755488255770460568104758906460805749759629087118054906703461363939242793514220057790914518049114405511526416392620385798519440307668243106611773245739958455412329180226506673373202593732599865995473968596192147207651785171040159385420496193210555093229896832336852150129525802194881474445392833049894790369111017409399233433358607648045657298746747246614471617179587577358655001012108313693274445243548370426727929021071684461829857056747731507161780525380281232323081063331380573420414379820207308356950528108218487894205690450392850867592937063534762081457417117621190022452411753049632188841303602825651026087499224602340802270230126602715662511098042121426887039579882494407968335940086873401760243082134085992107658437583810617499632939710375704151338061886604890597108326598526064407165575215861219242041307246324119675142074963002237410095841855857008978859277530743289282922388631730279092588167297657021820926878330590532583644047078019048851548345574910957479399624247030019995120572009864194393534214889726373130668013058591002616447131027655298456857378963856423085639122921651460888937051339312584510787853745595949311601936154018152074444343346122798788321515571499794997221553691473640586491718363178872940164879421956838339688978419466821026354622188897080631563042769198305308887586900922807157392840042011159897653803149450525858962164426424573423851825197451719256641528053860789849535537293674187049797468766909186743052166747179844987375635279491278915497833370541843076387218447381936358819812751645732168303087722879146431771867716466716237407947672054380595260335406810210736698942830909243626572698358619697598133528473209773888604268888598299652383651000894949147650709893338422815117203419826113552414045801931030814060074470676148700413379611613021871031670057694039575925821811394888893009380254088668219579593897869000907234708739145353926875901152086696721332784240519149485915191400830650109686574732829964374502515193892240453765643731864361873758895365731551700798215102276522534045883025072075717415690912093858883276090022062909867021820553101055380796679220480407442880175902498315603986003055034623510135377006857313495105618821943682608991888751004894939074321851160344250312551471323267182897260454984221420957697780949519173251643031400175903365093745821236740671743938864904051345262786907681042173528819805038337621700893946209096067028067092262730887341482067313530886951227151491014029191579405723752245206409640000123906075303995455913235929430303463976652886991548771620063515972178059820490271762352364608432588796590776265912355462228930568817050096506002909760161098316501378363577111358592119456750142195912209118847804408395418080947732394688022061805514004003831134293796500371704154370778916484507252348850007391082271384888746724440043727337476812370954781549842489329492108381069435606613336397211016358879883975111222330476393026570706088309639754777366739475588704013480903544033185878872100768638875811596116414960985601598730274787788085806921571668990643905826241384772631117662359519865769176757396829174474723227974672260082296754426117994956084291824307721655800812752463769493848565256541462355160040828375955608617754503294672917893034652999094978281361416663765870344534334136147892271872531729529087424406049306261507720299433185139796342353808789118710678109275222229094371271368342069983708592842095811880278912417353768333329778533836816490154512098402113215306575898739885138121261070217438094821756112825531440441508281983915053242915949147344284570290841198326322852608968259837902667075376361661206068439915731435242440617442534261799135239463481863140356536644554144654943415274719039924739822043694918237418632510886626670217732407616447764754713247132210695946692573314833516285252876415796963088198975849685821009716866577165197198995118983858741857234212447395074131674618616533317900528975924328460324682485293032804537943078275947825631830123810823334520132916113680252811398556011599275855175537459672861677746423118107761276264887875796318106127411603672862284596124122968626679939986679321408297264410292517717741402609065365132311250541934855128113127440501382843251415747610286400265194520227475358697493825257540246992423428124203868347505632443814335866244933642500246304399596808891202893238891080201944829776106867915551524298986456535416461444997239587192943867967346350423221144073195425651477717727113326848134911900697236889679394283681913250976208334076550142418544819657569787181191804414575183333870800107974507354504338318023080129434270161686490952025521056285208384398800719344114796320168354780899797054702361223112552210679081412838961809309851609702695401068194373232072473978236043272181780689722626354594659779593301607307829328340112196184669228927504553266893737524968862042139727963286423849268078518741466905411200946345602979724274600301512559221048396759779729217179450282910213525796953996504906481514716084246263970875879407433924375944068989319433376341931642856989530663166387723291750422591714713549895258169597780262552525613451239748579266484263898002211577647339719493612037949982455964988520759096082824191290817505967483407516505837594124226725516657145481793781158267338085399257751308277846655818123047870723015443001830631231718774620905467391949709510338802605176398893655355094168141417074838909213374975732110068455117455811818108270634672673359787888236682406980567853686671326740888924580029024371348394076833576858306671804274297313103426320627808116380317419325961748850229914554975379862904973733549019445507507894140839902731047379128521336454046141584686041238539308740726838589935661653847615151310628490803920892819322155378821927596582888654488209165177631398883275496194708754017311633395444710915450141505940240095398856426016536893791119487301722389390065980743688778494532661619931461499881344799366357723208295959251550437624331391901610934552807232094199455822137445006737139716904526046862494910460837571479687097771020686752947942055080975190526780994228348169487360411833971797054170881590176825786982545263610437543273618499349059361712154987764379087234839831474639828569508185076135320767121764170500485847018721411769203768749483134883244727140753672571980176107971798253864614467346161536372235170069893037248680212847478245571211382208038590393345726423712140707820899371507216753957499726045560897756261134506719301853753087913221172527127494537374921400266357599757967023890957392735549347147509734584437179908638063160651045999474516119429066426594368467250301237394174945658538097394080165219124209381367149868917837695938255312845498406098653059560064117315742979946144859150916977202126847647529138325598200987467483416636635459047473115666499153407766523034032098691497911910614690160684693477136950281076774505507977880500930408729866533495904952594549577893268818088189792306203153572634066129850252354843035942211582252486396758282223009496062127943232123158117892852201192139379027655973842734478808255505894077094445824078968367761543591563973755882007233739490341397896520891878963369163578494612256390547682336351154095508375458358594067709464308868149458086315283272420333851211853735094677790135105136751391333823820959726234675162102014251050557283265195669459147689425957712823528071931683551618542575941645403532662093562785062387248589606562430523164380166547490414744124320369395871755022040788018511305101202870142528050192565859541888919463283518547576735663113283500417605212607176884908525521708369631565237121961922942313236833371362656610073033004933257084272343648572927277761172193682811572244377237727876120246169620823866515419753949164455566683384076625913011647662768035821377955397881239282335574513912391497763380836887606386562772575839115803558995984588847010961137626552732070276447764865442163533388446879627692903732364247181963183714110133318686450493466327432690524369694334532449029962162707788420644928678033039077405359092348978275116844604803263748914130518905765702594166794230279773898695554514593852033503897318655386978986954367341383016907174184393923288499220491669915372212398567430850219629032491743522653478439412814532933416371587111457121753719569504847138475171480765497190900111868803691823529317341862725387449675236885377087291067394215170645708395043830686348870370440832094844528329028070310738133644537178315976330759199020795024218010179768413230148663461635950336452981581670432660618283721449383566358383775568703554140692684862491432684953530784758213012247311168163193714532953668169320370650147169666626442547370931694670646649458885754581600144693414135868725462573909768995166190613900942822570855063967565183486910052675928966325697119445829052797785987884071304386624626628433819234809072438617695491216033665671576878935716282271125655204230099901398863122971056041473179574976160797955570984131568757480576488348312309225988950864732373317449394418320054408611286499035334538666925859677807095412004891871785598867073338627987733896321892981971510620514989663759020016145353876563847953201215825525030848251878076206647951969065250807064449793119260138236944474913157040198998099175367804218593779509061748084393596144602666591367180132342469455952206340530141166935832173269963981007402969925346644162882225325453581083638586903513745462048132452863793316547940784412323518640722776758802811414121416251498996397826861753735593189043535653444147585446555462380661578837798042380591515232084686047248307307949038292244373842683379473528802973244934007772324602007820979676209935838606109491480442627242883155599429593650614452565687068964414409362264266146434662046403353816582263633096937054098626182380123631861553646976123866889086261326650723855727128097219475305068715609012700230145522386200946717721971191506191731367528968770865909482602851867751198714528757725860822036640305509495405748012150445720362783833042307786948973790467599942093471595950289797843382862864924008681096482366217733977198250042216716944870976884643296898957533298076593524533030924151092928068763771607847615106892440018474068297981666082008673890486119132317665538723009232173347884397490330908519111800892563866220878794265980045824185760983535984515623261353636133292052827847188556248618743609565937793687213189725678073706345939318292898791956798795020326962898400630573923983585666748317814761256336098386047000160854406557159502218275243486618716956266326766978587934170892537300063609875398679685925587070181421569758696575422701209630645304178877575901806108814301782108556653156863542422994247133041234833618501843333988834724000484589031245353277465226561803028241826926964587160327888225523659069094120753691977032374060725108226140071020127923406498098359773581506126991083342555695477847526483528071443865540832746448062019277465635300459552883205943992926124212162051786590864930691576300625958018720627208813748364452150837906676681048443136226750003956301175223190846872635484126715142786206317847257452570062058840286553147404443758689201822094385434074932777197635994718330255627127448012998018883595225441668546653810927827405147902669838901623392027900596454274841955667148579153107025796832781384045214652147885540008334369725879299462212934779310566214352963897564025898362812220359294638600098409284968948045072357521439543644623442375360596159569296001080928818631355487338702946956202502296246256329300920314232825964621215498287997644154779230269465255215969330437983939449484827078154923593994841684688472779090372967629286702077045176614085153535926358009766017726065583589644469395183612808620784123928973578266603519395696232455934399425284010667726550811573049571325084866777376226696232044753727090261585382716964291854006683281357510895806518794564048078904874323867593393899084170030375025003934389124857186920636750935033098281672214330718013698838844712056955237427635773557885014987709653417347117581527873796942425169862729891293600130218794418759836861766608298782919567135517805846012633749281286384120088933632879502829102383798937042602959793013038107862019111829538948161755687204958201970338748454279762130485174682798463795270404488177259898084473811719722312520445494137853806145426760606125866091541290103795350771654459646572240278238072474814843217886335485920628209615260279615097091055771470572294692190737417312423320059270216417945383744398499511580840643533763798467245829195955429263872307886459862334553745037712845674830925438484310846496788759624502668659587520220107838953301483649578972882853959843888220461710999520698248655402120129414028077725614431331693534558543011070923654008979593172580992922633503275537180591837233839601057900375342953456857506815955208831501216849960581208167980146584077783831291020252092034084416189392750048105162422985763293883030572788110253332340303440962778328136513908206735262415443592772996363406031449410632572832640830075665971294169887164806387320934136435331500579217041650905583752969096528478711785537761301070114852651695979329092587293381714746128393898307592190547262477758790294891446009887463646442137096519937168878213318091034134384101403957306142601806414735326356318925512662704248786316242575763795072944724597261309370459298243662269007395530426831612997406439238489701916507778852020488505300515125572029546649298707400952430291029421546503578679975878121446779998427810475539894587245171753147645563072997152210103370985951792467944056825160408876771369239816307186427000008794626393665062169507324900726017234756907890442116441473044513834418714024562143077712327590800618668243453311928511813438506529062636138290437498584936638458914038812538524531359994941641806404065189948778389228785334635663871143669649514802345758755532428579928956804926082826787254797093757454776370044590307819875370032443416001226437256105103711198050066678234873982645876335481147520967822054218746718857125038335867553519522744611426658037872148265209720087859108150472320371218215903659114420707883642466526170374626905328709820782691887895612047795628508286864192470766348835470083618774524668355060777924929853700602982791281153019801153041497557074269278551946416291988078618499921819642346084959680724197964911475490143034642947671504317717051939312153231420053584384051213250281893668951373779516775498900240386187944208562520840480234517621742794028813232908488715136876908131560050391472382831533322326025947552329879346942031669246087007229416917650256334895567211046020412029617266531571812814051737328384000940718704569729670185800851287918724863063079454556073604675402629257440119183855419295597581913045811906514674415819082498088225149674189108241925836131710705686571216493284686827967764875453302035430348765657958806247974784989609706302209246724948479397815638984643157390720518084030131298620582099844180793334301741447669967920618621615734052792151654294613776877926558091746972580204625217202809203498362385578545288298301450409504037561173329434689896470356047113867572363657519990638418061092572895740729013817267025782609439329805612490871149122859446480208918518301957472225464400125419006158165534261489772885008417533592081720182422552844200204909282031632847117878615319289643833044802473468880141813877563655363071842303544332270797684787053634171925695423205500528416935662809097739570304216649806131879933395914424270010874169278404335633164320383676534663589369879778058003589383986360019884776891316834930953510959424863946391623890405026092660075706526439826839557805385076740874733593817510507760065060298593449526476371614601437870640451209421051927549508302740594315055908668848294174058354122166608082335442513386469609214220931724798387376386300262035729708612130034084778965722691235717461303099547864720869566166484202109433030686699124556053687676477425244271247551023139888693197820359083479972029160906035376750616913403272740959576628770744611926140042767038847000117957084396813714408503147384852054066104546908675303474257194810554018621520430119127559093878268587103268330560052049815264427384759496954620329738145271383727713460298595858321911561199860118700910135827143861987812460753600738321983295205732111427787700333026466729435972662737124590649682077192449223887602740314791678392781603526561322732966979096526646878863293659460430167249176460872182598391106998831822019494833740600194876525166397955911254308265985163890964761882095259631831099441792804016896363817912637448142403433874194719507058161100918044304879446045444736249610824704948284310226189540421819303165031423386999744475362607023635199960414850813416719793713095234425828287929500453028511039557832417826012132839322408161353193443348426976633684767791177806611705551591172238352002353793695545614292766943911094882461626347384575187261831864627345091693064775197757308935818794421340004443047942477833815915460936971765054396139558733330104804227747163847306453486881823860052640580718590986755767177048052461929506829196695750126095443651449862418865728792529581750926108855043777627887909503506103384301397967143516142373757683706796975248178176970116099697244152997197262692574028366002682838384882478556019769007926321418842686589216734872334570506811045468758881173520202236049110450307760593286359613176596446713148160058719191787763126116470374783617305313875994660647977468885307219141039952114558927731804868568154124026255885006763760302433158211643276525217675649968393091752542841484448224677113574559465035820660954279487978551216070697098507981937879923201488043394844985113347892791446132116945671520555425977465393451117002959457034944174221658365022195130229292698578939448608665680325800387777799154943064695440766256572172279202734559176771065359959859712057356224064514989632706955531304546537679871979613099399079487301047522738163173896022656244491678260837156054847946226250565650661822657598482875427497677749786491810077214949487459775464522773454282013263312338320273319008690178865815988870708334648331230437117846672912897931257122045080756599475982684854961539756816660649915412369113211148889541876321969338622289197309545134907420923983404979856645190164368470353493768581575756343669358623967490392969172369956082744990733855084785398729180082318163128758584112402064658007786146933105139959894797438026938434765532528944966845296575790411202939706455191150767870294985735015670114191561894859397306982191851193124633203888182551337840407542091975567576663989426739115843319044979962848424852264067902461539461423396547434134163641713702586178462976446682128038387450438037246441462715663253156829805384215688228265146975861910605634978119109099775434014058625440162490913332428128888820403962094703419865747589447896598933718850847733204500042122345193617681358481664338942582939349705312647309768436332715831954087812416499002313990349900807261353854926192547360959884994208354119762774743595366070817221101934277743494204683583930233146467186938693800368463511103513714537553032299155631261254744994796535930642875563786095550783703443808067796247223080230055037302873162301315817983633488048200290546832142621026055421874954391106292357681391135223640447763612408331894756582363171133366265893123432429905134945800401482530898937312224690959323482390284503416964351126177561516642394348571120125059760187446742424269947219337607227778570274893954733316171909318865657415215866179546621828326485170244249745248431030278018969077418121592725052854483901889050032859920776831820180545668854846868802524642729829281153647570949786375755643250157461119790520006764991625494823354643092655641425325377688911668425170255537781213580395005264097563493421078103408560776899508334817160984659818120996747961932235428713826441760909557150855745227130059873017260695670475794002650133090802751513124976284503446260955523943708466815652661410889396432007873516375406666052738748929758248819118517392095001140233689589841986403956820939770246746977398774500257553929478610237863347314955877106507969769794776959270773738711806412882763181005757365941251512676345208420039537329042664691444648774192772919394455548073006000122791263314712984487744794573714528560936541354562616783875725954627697537678176336082774300703901086140303553078707397192515620928695491070707978416980351596156977283011090978244546682758942524112521959797468606687621316815090959779411064451636737761658313408434064174394279493774341156568295888128246271782061413163495261212276282135668856247771284350878748486818710649738009247372840163186462620718438322261401390014935609637133359392181707657673194584824593866435206393822998748897178366786600471781152382049042771501761145984716680712617549094802252269778051690375372727255489768309552274342633894608047017533573181090474929890718580373463645334210932235146217623863740338810018656429665368518683807783525320847088267457049979207848350176472066008076612034350489199966515111158008105792409769007205596405114012122846900676364761289679195503958371954025982671069825185569538628933202588522523030279779081265730196896094481066205811242018582593269436432989636595968444957828166451011317066815641194760804785954299825314401466818829080079735343296134524167494876685566510675001900067414542278049736656369875671021363763818422655882444700154943780722660642935809531240928858740600307772754049074097039678210220761148773007039950157827775585324960784460967625805674020686651995179807858493215929826059948584590011891025124982107227158141705357010470161452732888844543710479397230121831275100541390714283164954460652523221639273910611240834014232360394861445608377745856954730242827518889350481097378385565265139592787257211983009213880927215813932730087160378720200154160495643686293535888663450406772460115558481919498868127788590485503568577116210188642415094833014536589269648913065292115847821021997099633211019155183672752405768756981251482945093298078593532541282803357883084549440167415990533943314927509798588622184923093745539907180038524401929453705441026675483549234176397255348679215190934854108376303198766755960249029599049291878486533422628462558345159693529922447235019596455440519237979444629934270987215493147530799731825125148350648750796262344065625981503308411776528938220490753414466451043075476487098961277687157558141662512828304202157902552550553662951085816728296797690459155062508147743019707126855356862542904811897944452354895148609781524091985375362683240628880868240280409683283079880079665779524721362801906462182560077069444028000495756390294004177053160275150209688882453423359784295199679062741981382620965941163828755141619671586439203806172832928855718825179190733839361247486110894445328898180455049077557657017385755681967896209762760814435430070466922162590274323595929873347637014363419166269582438607822819288237251107231380320356309125540119187716967626474124443499570894081428343566709804998732370942390578525098859618562532520589385521244177818107273680563471210139677747040775071108475724408171650737672681496625960269707131419218361122523014310224986359385184312479547695610396763211740391465509606435753081489055838433307361691267456632485602808862973262565295696123625453447151950571329185646193234141503492503112436738372958219092700013023764558545576347483135588506577484138349114021322391197240369167816840702855829137341161392221370934988125243792621004370292511550214309052388269146836166459858513769962379268014924390199958971698889229864588366331063842675131238877205937961163011633640539205892607309577484720539657104745587974178805124646347476216206561479916607315827152217119364340219653010150629853495643732243277500985363724727250078284848825658589138905761924919215793211085015490753005597509223276447544907142847787488104901235592548916791520912811125071598130725662186039412958029658342505958581011390316964315340154821887605025385715448009307960157657553195138741160690522168790279749091641985364718419528309530428093874338838031853321458212434691432197329532986818732819436030496856364357147378777080280732790084581931197912792299927883441994797574751633660816001919290224498022869632917519950461919658883008723257084665842905343180954240394986892255486297776965863544318769362770575709552246641595259497068275578303611365794421129730919226034494090985554483127344150049018169002645496479789875089908236731651747083827894179012289110849897703770457794403287249592903403859069299154824316377770769134349274267360705303389636043832553842014983963348031640960732579443377145071603423047852207300905919929739805753997273080721212177673635093014864035311266561657865264327898234968022367354711630489511823790719707724441141125964589078316867576725531927476267435896830807644613964409258929717574133066100869108283055614089906189244649423711913021455018874441010823933992889042594154985480956403833948980533410536105292463260505511226861877053487764879827033175526693712918718179789713011274768732140055404792493059644998135068796326130573225541883912083137572574528860314460986474167132297533773898520009444385029246006731284349734449846570834125729633168533312214558967636739152129959502709052972171909067505940629361277816728220479898118270617847520446082382287542452057934264134089444681339525446445411836545376290770697306802646381498215577266376530329924882490224384969748358806147785076970605709854278054271895217469673833899554670677765580479585957675232722996049521583325651453786696511163291388102186891368111954988723135189334746724132464502271281001370857833263177781541693552504693821012743205835476162923063732890096876852481154186091430492776554041018912213531267362088758514989199372621705797244335271677958949440088345707927849686565931405416989576365391250188078507419138037651763373954643795245298891966131890927759725744017365853359326384757736283483471704535383014975052619157403136164826267224551728772108608672536900855148097771943895849197422956780521598814801000043850605631654614592773770306411069540288803139924100692091586500673502763695137875397258953500358403523852936522411751733758169687715049613113103736861937678505968453026862507485635503564479902377357494279407631636127611415889130837808953416000916719195550855792888813010188358849332594201979516889399846725429586137752127023668311751708717258611276904243122138871174599926497095239551874632657755668703702222798334515008801800933292293049241579532091415799677173953866615035633635205381613740006786813136659748130871799088297487590506834702353047392944877529197522905668174670756407842670959389386494913105764038256622853643154903528935329192980449818878359996222428550796057192809469441829035467468878395367547101388958992206471872750101113792193044411948160219851519067543913938499578246084898795366766056585573826016125240811504545801668586123413039712524295295510148716175614656706534860711234712108843082732893957751714288147542952610247400927020774284894777300514702152760367198124296050104622580714962765130642336829842040194215592532565795451666723049244824245664515995514481764105710660765673999133322953358975356942227222235895182587588790350406752426422530200880612173377939979089143822792995167083214065696656412726016868481078488885628813504073439069039018761379439413265941303939536829920992385593446774290946459279320224317783461143340517335325499701905747787023510724079233420640527894429229255380654386620842997065635776969951412471895373965756568341116062118320578828845833618043461353885298564660580728012081997972258333535762603347086120145680429788239135936894045947212118018838441228296000986460262207949258030166697670138991193632087928812155561308866288620176268758059352839782381032019576445072328411045681693619021669091552211719491899780178935503035542812096682804799513466367671456396952309535163023788362228708281826479766616330473962110260052477796879315312938828228101499525254012767391489303339485133287104243188283899741146808922668403285109217417193780650084596019539547406989966118943244554090585216345259155072200247775386670004285390661164474107137030268366239135543232802217468859214114372612486140991321864634926976545164050974351660933651844205784613805569467968731139765192927983886192846538807123075665845738825550899837843886916426104424656656633916956336648631520581742574180070680707595638510379672339740954257344087957179943707248559598818339181792759657830444903706641561443143349969983805195293150388659610109002651634115204902448051459946536210690839696627276830556080332966755344552020790820542819872074411201400722870740502030946284212280350365484848770169774104758717866547679550373408138920898561598370849086268863096499580929044693110969284242925551591873863510485959767863490889758504216338111494541777669144573706356125443785304065429786099539614563431433045291873843070778925116300242138437797072412839947344164686256746502195523819970865193659546897300053136546525453234682739222079644056912410905420623003860942165427632600391667954674897465614928122248245889607787919391526930546092661860975954160407076963716586509919546819368467789861334387753235254421465222312093593634117972427874734037329944313248368509740875186725438629537035020109834050884317511011828857110309216756783784479853884804950675371868806843476174274715145423709461385446713394545259790970302336046431716529284857199641877207628054971535745121681785296583874039962568930883659294865199191506583219923846727036928558932858601733494370683544861879766912336128713934770394322605769230818349274382677552332699858974605841003379252435323966602804832605434248339290780919830933990011637462940936222713951445721462073594967613539879965580127350961020047329351588870693804325178726513450241208974475713887049206818126314965684722095997859375567802418412415646361689143276114517663420455533398539756524397763877956274918780695596066369286611757722604397364980615714205428802880980749161353347538514174658087203607042593684695415744298575973841139668500959119599100647888006261495045102273780638954779708035743382777297664753673945556622759141450522102755067278809739367196534726163090036317026053180066922885438287646740729386659690159979949787741043951638062694062815352107203200186629301634135567325904440176838803110544785142507628568588693804266339961358478863763172507562731190471982974008706087970839206373137142245999943982759829000619899754109987381081671636247658560168100294075200210812700369097650011949666355176244106089058185917979835053681943789728385345115436842009768810486428538068171574258249430730583906908878043365348355874338788760266853910262480726201553220652528668240440586446916264363924771055992352968605178083427615032425509993306057395032476127872504113366905079127647303078567870604771483640090739565459720413336794296647342424959968149500152976216634095728512360167278629779354585355594140222983002542948426133250225125598259106326328051823686726762428498755294420324659117178236992398698887014953271288591984358395917445724852696739713139689419666474323947534945220078467487273489425674014086948501083467364837362268535727755822687701513392393022299008096872250439701127819219865383705800998932549681203078764583436892455535562737003702290820018503381892180733915882159680608281183244522135239983770478268460073864506402187498820305872294134728284502439929594334670937780033185550070861478707047714598432877769075274517708978294615904551592076513403614429104533181200740954616930573831232166389579307526972834541539628782456676462083407212573302580126011050230481080683662879667573645378569743523782973603156200025251935045186206912279064823601354190807768518303531912491605689362264462835113082569489281173811004102803933132058118290957238594933955265538346763123614363250468948081981040805885423804200043269938553802940284228000767590572244001976403039094379558120603543653601691028321849599847951281862692827976013812170312930457440837053497438414406933951863793974225265523366935801352595179303151783155903787126082625738913060680888492450721524837239850498108395971234492866773956687676376124707732344879072815402919506526166716387740400398931075876345564625329525432636767887363119616619751528726333455680378057930245674183002389796888050525579095837159627013223644239639794086317190010596386896790421689444519849220887403362418954556853881933567953948954625442397969112847694769230808846672814905480746828384968998346017946987579128525649759579422971949134693514402994961607891813398536565908607435966337783577315576720286477294381356473879441351467059332028346714367520282293694334873958668957809241188322739875319566245048918955765682402043392792626297444240043403618548240961291107488557463126541041464069995763988270238691533556577489360947985820375331484861250972048134739742273437972746603461200232905244552820801644981813378716472971341509518799762159982275298710787249164146835720182888940759038811132480090262486246152216555934230443645365701605726790091311314903810988279646108513923896604684632914548381444535686057122995542461249070966350552954042251418342965453332068741444164889566470850132641012567072127709318387416843831392974800027153283104407943753604324716911808855050029539093045941694593931540619605620677054170536263677694654581449728331775969925370036229158637773445860837388459542611279311669487630001375189634727236031614436192293541189430844443492172501304166531059683012701702435362101823057300151633366401673429856406361955202548000601187330192521746681585465269068108763870938603476507223284853072555257275449500805302887007073174821579685870200903015507706077291632728126589209510082059405292781044378403643124124347201424083007150486867002215194655931284153165378646649457647213007858348343574246268308589796938214381834799457302997290900950472637619553784494254731489886573881941479755544346515726162147972325991556973257962429490516222546829761205777372723893848541664748847871118058509393329625575512944835063542535924164752378799233361433345241723209014297790846012578532493752375941290295145461797457608763654345313427417056430784655170525192470962715996466174936186806250258600957825886215619166065905235656095506549036355298779634760391305803976639071999871291664720371752601242069425158278870429004133565260586454926471134736363238228031020472612296968089748689278288756605248838172910276108972244878756324869478922831896373461234938559757966150954572550747387660216992606766109065597026062718508374844306172081179498933644951771470642787804833067160262802180794819988329727414659987970067697304462385982319068616042247721672178786529717074874396173468782942487713970283774688912743542729665692508510028319404144198333884480613514847063421156791840745567354876783598707998304564537141207665923734452370961786815133568073546034584278800644777519587870267093723582010626128412763894332833832298762375698270139245433330923824768336052656733068991847838177329284604144057869539478740636218235069319007967108632952354086485562733906683139730105575523902389116772629029983779439002145974220155090842742601045415675283537323098177315475550228358746805248216301166759598288104841200326947198624401956450171862287929428289608997660447104835286436316877644243748935480751294071732969313776681789509671451226907699753591670322296036875582684750761171139085018915489051816097709740190112893544539901484638835365164868162411353326914651431313997069846689329414057640888612925580411431007539556049938380605228006978300387522775017739037998731527389789006488392020134356410180232374231131577922570193637293906369418102082841323934961032092692463414845516703367668037460024150055606029952806454784225773676166184864821440315725688969493145904144651707749284034334150338010194039758417990942893801100342658879347292704179244815717495932286952007359082063082845119825919649902927206917162597126248605200608604378757565444866106651713429512910158193889052207029690902820374433262205843408454582636807455662796517692702060841971218830350733296309555867967077821273847959450707174792060042597901540225147272264057048718839313455973109841064048610659507503845228461434714984948962729414171509516246829363536602451603561705016787933571921980729276532394388762410518885449969171867429247655308186167397659939040504979234901083853838095199238888104268953840416699956000011927578188433368962244895649880513368365189375025622462624469474694617052455602759695321298400099024059117231458949231577784793516548939959911289451382583417169865252675560239536453532710447520066652139065554143667105457341176986713573936764504610719022070256798287486593296488552792333168902239295367234404125970089592733688375414592692061676956789942106468720000380775529313645504796440509829376815996471356190546719540481315487164979435795743817218678110207609025584648775583244958880467886416797481029252488208280351364120986536061706981314260736159787114737589298033258132319455142225050584272845682881981865102678331947529651465217055881944941966487673120802824343825097892370833959904342719753620457832926826783203624292597092821319302332509770107400366856767284970978712024993959441164347830202329881052082588736894209050856765220686194900588798579730687593676126383014253340365564761271303450149615242575350294133070430991091255727451473782096677288108328423512767031407398602191903943532723758933592812734498585749948941903674460013561467201384546724385047962371062477577703437759677295611585270797217568489479810045107622060124135254234199323681379258713333299531567906553027759532040928263663941107901082587006824989860588105033327727170513763020595295485255423058306414796810236115272365992353905069700385045122279378155211937531446795706222973104019800282254731934125753754716160164378117469474383271128919363369783945644778417378876425799884000388069867545449636270811381748830471559953859488703513411254151528439795871339048498053053708385531418065484641978769169490617325936134975509248388478559735731713759156673500523453052994576410970814488569060091095436407409199552243110648795068335574731141602147289812032026945137534685896508502877744227824431706697190117924339877796398495066056752212763727620819567450718997995490559841552450705711505255608751346927638886391860691767240517478927413090321162575298847165738775553479822082667981748612105822513048084163998104231751157142324784714742330987660621027048532612424653778920576849966383289639671078768818652641534609581255428709692151092593755699745377824700417686628234464726193406747208337673821053502740403185854764665393867385977245971150779929000198480890705009048109083154236780475231161871830052370370636951478535017028668101432131083531695109132035723867269550449201304994728970100618063111878659628026151699017587120810519452504223903764243962441346679549849911577011249391275854768392062492502379618435951423254140032740190358248125801636949991724593784758698133854543050088624615488177882324869801877673282075766223714079679200094245093566217651005080020502951101914829420884033933970450882233029198789567348623893796430536596150696453763471436748753022136029933364562422857566742899217595036956020298529908509676416574615723047689289105885986363502065762595164432249677230452359049198228769759426081784105275388610006833554763935071422610215143805251944656060929921504941269110880237670388472525339906938393829709887730472040490788430769808312342886415489702442667365963811196448227677543291444768675114941651665728132979671591882476037746066293491885780595647918511478671979777113669543918387762825049260432546828618506019085942985817166888620446825615952035813631724987911952358187144489418405874606079048366405384436391315842981217304535080812295528863504804768647828072406763626774473795747686630655893326650085500098845949862999957395615555819194136904704068720851550066882836271922456488950531500815723260704101466978371724846318509431881047899458504429185977249114274938348105470106214789099095975996146521681622268836546286017884583138215216003015465077524976008884282282977878600908504714792484448710655633794385977701857594759428469075636887098898591339792946827333221619710706722164961112274189028883858962819437088037745975074127935281343561326843745618832876786969087969780116855757365970884344209256943757256405752321842142919481832167241976117919514485665782447429561494126245075103783118251102193565680919523085840854239089946162237067674750515934330387618019909228667233559739641321228120945996836602022742246743497720242327165470683333492043701317332977385215230661206847591049323769779950173456768166483047997720020371479014313158486146768042638951776083186342902915696381736445398028854915507244094948993373528909889498151071563593831052533900657357298620809225911964420895185271301454765331902385076114642765454301564740113713835970441349625779139707179761672364988424538212883839537705555147915280670358210322222982391633806379226423206695854527195926097749961764340910598236367697129733142760044588836753229918718866427944501407739394917436571087314832589420779475459976503953401645346638341326361191081440242783795041550570861830342908130578337748031380950284704243705208357389520226954444894862797096787835596302024851629575733280187733352252126178586384419655734734984085326013698982433560036419744886904794734550688051723730890046854978513068543167654980990525166592147111026778343580577756974257881967428817326142037001405744019269285551557402375091581738808221461984509230867298226262775118074827469471365392018277601532502134769629012739440363774908297544408419422739162053668057541770752774093248423342933450259889255199373007857139247283842727020389947204822144779427614843168170102819879696998377474376623437949168064751103442955865371085436528852612605969152118709524775294945201347906775399459148863201321326329087379540002371657307177365579179133474958270026661319464919521557151259906022648844861107473141634338066775022347121059423788682553432415222502848985911703799880572702765639864514833614193000761519460840517718661841365477206080882363021058496958699384949491644355791028915038608093447309874479212846618909319238013545979887501137298686228385944356955190201536283083145055369465106092579073231613879148906713917815682080678578667150099842101606455689377364540120727967724121047526910059893394171295808851112450387030737539595289197941946088435543034797035256282361947700208326167728374523246937543183932470708868756961823313405110454707794635344640674172208813588028086422748587013628626023706915861060967248346414041604792785602235799122796235910635109010814099810134479920288153855696859221640697284284434089417562958744062774757218742020793301240023152168046645685388318733901972902870633077808125813573542359889909465767038350162347028598217997530360372685536016682342779537032807792976441328063734572568080120992568788041210817222410860320420362474822197204725461228106723362586808947349387189953622968751185671187182415584031259622650650983334980224005087261164450191688331338870371828357148757146613790965669230144347656820145016282143183403059379116637500512421865847025126821939028285307640563950446951441688908346923768130361376100006820632958666411865368303508545924280730668663530043152971109458358578376294709538928471603789434079813550016028971811132141689373350702376371343184837259191361141405877939544934188097295931042855687753065818991699969644682495622330479793217369442082994505250553067885389090860586316129669080365611022579815522116927943352003828123890188526629812398749125870239982247086585130475868146903284607492183162362985603549049713322200211193834385899204719267674662379256016926679274304123746123916104325379330941378456621470137566068429496062034082751696324308059027621551450207057841037951779711644769381661709875232000038364106614273210730725368428056968409980815171331596445802034897562974887299816453168392347146978071610963109859414498128649867825855795178870419214900444702198231268497545017282933696765291230158048994296345778205050867787783597295657771723850988919486179086541591900430968024012235084631215691427564420976759873730641098359294348639458475846958188610525138861336661879201479389376326831012560663586816524274215793121804815157247911061747883233088890709736867545684366128329945468644594670340949538183780756624841345425454156324748191129031295934072783434816225266773838831239556647934614812279130777355967743811658107109265527624301587751913944051787645392103954694349340577501665329603903804896011585984088844294830168672798886826529042175634705043232478127326526219940044433403325798761603080222466873880742440521249367028269819261908444054974044931269981936684445525158185948689162190641820381374291991236992859539948696137918822783039182955485320820881443503458160778364486109913372985216043624195741712344335773825221233134790491768242344252202868478126120913691129023960264501487852983647079417953989959705362368046431885032036051058016339739513171055982874714952117237413256152309281233926821323735669614115608840532489323579694843272567456373673036663663802732779028743254499299584273203091943903059805951475470626617663291339115288858980433414457486283604653133153441080966129642141102267069678129365176460320124385387572782462146730416029855333186245446566274992681791512282656469829928123125391037747817833221813171170667451220814737618838898928218678696696624669030398147915861210334609657120635963059736297985082749036897361671904804120656253134475221156529886229489571999701651705263378900561722676527676565446830667987310912977231858296236711149394075270133423188661372901044081842468111515695093334216377955102938486652834038719641101288552910291229769755372826071489999850385093492743552187033552738092805621147005075156176926395313781371954498414998944820184952036830100159821033316544737530852217645675438188181172476097217836560853061090810508809063256551202167714564999330894453543366410279412828496769384607257361988028871151744305008821029449251443073726556478380443372838755996879899927478508698356565155971731902140651856384039132099027781500204020660042027307314617896165410675662430992465504127848241582859710393348319378184763284896843929501826403331931743157283279719851658011590479745960357437301975801495600365298516216474050343927600320664282435818920129989933548582421729606199558012053356672585906461304126749202061855663459636301744544747245419419949535761465049074477449135801130887823421393421294268555175281579668469239420324218061130290688121009466406986752145157437258749045736298796552111676451290396119019262884226624276177925853598605609102749360692448422037777748817998678899019605244254562790979282787854620370911257714846427061794286489070439486070792435589949197138628666861814573600589491627543151960229946741788479103924357151743641134361898566438744630871362843534568294307761817032317838596878428653448303689450486032609194740441780883778299887262133957607463259872717166853963328834942439769461183009140378104597603261405389597326522306944157178842440615935643216268639228215168171919619237531497232092953744606041630438033384850900364670529497399109730725627110465286905378110604669462401377936603172612432234922355644605937154663595801991239079184965000599781551970781753157647295986466104505449195784982634456765269068814305298802242984535040973985175794671222672283882827491147438810416896892149237148251253505871478984792349089412801555505744640119014774873366924030404532429199460794642432350079473159521109186495427049166384198745826366580721457041597761513600595006688016241561337170200530479053468997104816386246454047307358176020565932036979884298061204797753879509227810659059491596083661196675104800660276930329081211262228043494356363685623003929970112139741636845019816957552107126837158901852550935153582534020372122256398834623767616972995062751611378087961302481041879985788048508690824650907563953408886893914897637309853447948977610276407057943468869533471369925352724633841064150666548623845647312475659246494815031848275915989356441164553309665279919312013172279324592874198854478162310170455576811254626598430019358764885936487869879901215541085768563574659659498113293996577855690291356887868914352077373011041625186283186913850305973422467047950923620407943210187968996509071724296806735122188640153479989608978924105314901331462687693184563519764071471194379031552691399954080343600063838089307051722387506505669657608543209630262907434325059840816692326577228458899087190488213618735706089040749520881920021796793404671670532836061771802651227498727616440912361387540453781146694731790334310027290825180586027623886585646524661313352815448815076803866621551689048309552471133553941566706302916558771083866769175927144861614325493439262582803492488439629620790856751053333727206758389408064683358040793814998438937301362323030464742099833535733010010457625754167690710090854256098216522843986721562367675757667605161590720272187903245933255141538405598547415637503401190833672548329379386093903017518258857667855979124599994985467958423876412037095554375639129318132300245445695422262567650129913677935080640028461750534193431012678903061077624046121190426540324930876148669431320087673669391188377871327137828482107010602280673027299482014587622944971291375754239992548500059541096672401606890218717388873232489391398699472938734840905785951093860810662529354193115301467253663239642419594702562493279725932523607829707151061064236610089576627065145699372123297741228805619807140938150195475930652899424109356820368513261682930533477355837184756672344947062073825196989219095431009301546215452856518447752389237026040237293974064054609199569818358393202504716059027094857276465948711714291598183942592193715152909555413360658794083981026544566233794175669963876248720205620513179727590814038797111436647376428516792854312960650993649655682085023100716161807786100566865067407084778827909179962780588187832269827157780474178421555414883948412754440199637376198311527691215247797391166912024539568461055465092244132438663940706249190184791340750228267347440097577359260670542978601307048775783825597320543744784686943098820402441837482056137023500878411915844357989878012448444521264511947943906441078397311012687044063337328001939849543798184116418471533545888183533534553590864433220749542769682238681889280911269858615058491766957397713076981005210156574567123418157689648369266249113731407468805277100724948525433827746777626158119485413328144751703268986758404084414312352848402423522405281507917403429565779598915455978383362758529567246492252030131672816273636350954720280800481522622127355956572178205574457383465822343050115867295594519264429793938048510408565065446028277525266385139896044754481736836763748437173452720636518936022378080819225516122013952188133336418855481465282230944908401766598517541737931152832499526472254550755740766411045409405560360919467470976898920608870476599870901307712636538939405075830992435631173154964984053252680922575827434607651899359365728160255497641906216858734775821172446593166430111308110079358435653792951535565774177455094419032688321181653812654064599984288289900589819250446054157814631016682890280981304780702398858777670102129796835944691431711450057339485629472956429564467664723548997264341609044172566718203491970322341445657006892872639240081370846590647680408428130770973334011600272106770855584554036189493786039750421549774230917232686635425071136975770513525000767209451548696289209045587632678630952049887384435479224901366000510768588894041400046465105555973609597142559358520162428588952806300410724590515837289810880919261290094280231570444517545111366914849333798545362396333245647555274563783920544476532340174818769762316831521977219200939462393674997414260132151944392587132718130401970662075043761964958129746680446249760362175193423914364886848845627423253381941697464192225516060231229212709061041804247762156902538186076485267446660446947698747290707402836927217518267680237289018060826920936063035352024800810675397308309208135935156503532431159954409658593567512589358639306360910121485075916250654646538340361293668122514585498001784463056875939367575583917412514721535432574014048726481003811142626774734852002089813121477354789158426269726938395387235445194266814447687977423226762922508070963545356009733585393305363819431871139905784182750570387644625761746809770894289834495190974404396208196431794803221295857432333029154628824227994712657588738760371685934572359972988074519900296220215703256817636467955361146328157935487348633282352587231952004061249216383314480813056834705113836354435656570000889656179738769670711368050652045041722676314847271803001107709825015786302290948171780358309564120600964276582440282467198733671435598737863520251838189917995589405617289913272664526013713676981284040249769846809894008110407976778447234006905400649306346743543569658715529768539200426122948888616760857891070410524853211607192092275851632618576962518867195362752731623745524734985553929628038931629551716133915299276449884472992978477731263615313907646429824967706451752097961803230682295158058741070305348299656254528452338450974238083021155205221582361723568759441272535369352637546286444179395418919045957645804947408187587431069138044481286047486854333762226907330195257838791044430224588137976571599049451492784509905587608667521983119823472898501738152032648163949996426018865845136935723217348536518622876802780438774102412127747870548013900593235511308114310228165629745768619052400960542196599681738949403627161344976770790698336938063876393275584812930165990439346249299255119548104961454328689776783039522716574785735091704164031348786869812909457263940224103012780258734080148732198031523449626823655303911182198698048987609580629076672416444550498151016845493915337094836881268363374074121823028202396676585963240139034570234985540477240689749594372341542306457715275382067306637770449759619974947719286681660641402374386708084215238841991172194341008673333722211704562269345870920829536579985622465026908813470566984211858475118395692085586969184527954805724579701887359109568400107293849833328233800279823498380309652924401608111829760039991130129094105294520054205861535259114727453306231602812272159087092561038936527191157887403933853616517696119743856634866415804546811079782010517552787968349612507464975956858358424103510903529271136762338375690237060549924701953565722884153458015144529148888464236925796826700066201478106872770327545806469480816453778761277153577939175972436480515778555268223239815805104163165893032224474689924098894787985621851244639072087407509584119797141396902694537193270702617070758571919521570523573391484522673013007784726349474651016524437669077927169853671700206256580502038813379235823490520592348628544563603063748889475597207083145627132473851601327274718397949229787273530178791026695229608297999790204293975001190510696457201890718591128400277713213569135297195744102671988511417711950882649866475464514129548999896328652656802001233826763741788118753903781640292782602378597521026795217514383924601871787116527557585066337938822372701088618537659290273224012196050339809685217637097466364972646105464375916057315779779516394185271229703101671583669352932827309895843262695268464994031066103401186758961939388397494948027998076595569985526839828307304884855348210297202145973459660331296976118528503829012966928296871290745657169478622325831218510717689791029499303050432444761386857466278389984340854381963253117683587616271755569562726360310975968178358786684798567932117859091241874751380862429358015508998102426577439376339212656868322247155566088738151400450901122462367787261858491005370246959525128666609403535000497055441599716179362805626549599916737955107650565941143026141997671310160654350610204192952546650203562025613918613489809450991352480375068408288771122521853425788431551257475827963095451223001601821429632038959327059134516180669833365521099339047707808276445645877077268376913186906241438808609051775409999977611500493128023701140561111892815178214447487570297615654670087167143927309742123719765044625214891202061491509406402547941290708558567767974569571748992823133987803113817977048503061598447104092748894675294858478941865826150550376253829803477943500386804672980256687916463848688405783698027734605585426417644778819449512377732553497438193505104809409584156258018272818817837466505580749949814604449088566707141921893326501130923952702930088130033255010149751925893421144889061753994689903839842439180051929956840972203058821445637950182067546918891621981771014567622093377031000445340460848427929472897480355853493435103020684160148821427818451550089432734028871641605315205490249571063811299083754969339175091620119971769012457604710561135830683719530150488462957301829612397158388287537603635007529155814632016542581481938838782740786849630136297278417554629704667189437405146694385241882802852531197374793766126667739897290025587867195465748466733802718121549587388541535557829527755257276634642540784746582928587852423026336828298059103223600388341832668479812489224600433083823921744218503329085289100946953474511742798451517835648564507524006379452631961363582835082617977628923840193836668336125981736193517678644658888300890096515569610990259917704128384693421738178574251604929001423546292080831362447637883513521958865133271865596871008830842522924492505490741682895838266227845455866321485785041737817631233814545127677532984726407386275345676822978618145813655211381870360563965780294391310318421520726345217942021907696359913080643202617925136772077173193240977621279650391653498762269289077584022302994443577002108950271805973162707687053239433993103510312096969284173588114016287481457476447052190789297083542811751129802798252717593512840555212551352084334640554871432591511547526185821792081746448952056712101557716277738081805920583052437329655837557502118413806739734558463947780201520605387541400112295641197629340326008045439323153997475956973263635144149295157192896823682676027902000676048825480036235667321443444063672934457253412401935291063902608276146472248227418847275515854838527667295763613057045921601802598090928380126982406047366132308851840170636347134555366565128814460599649578949682370050629401037466727678976793441684440840238351172922476768829056233789562988809678086840931148352107580523463612600075146432277899393520066038926626583696069704366790524963387077819843613630103554324747441733167932249502845929556206275717410811735305752269325825696997027078715323509760080644452695228323894344749724752893115945815749637393154045160818877252276551647546212124892010887267892459800304020250843556792634646307634396528008287728466427201475750354572936085016213917697289090742149843772875995561341363905252540932881212782855617176555870796884719163846972556882330487879454409399501657215976033084291880459378778387310061026549151919582340399184293108389162540012936783588571210545108999553634733206592999620221685211526113466961933811054465112721571471043353851952264062071895713827186736967360362901176238053268134194155405918102918070647220885119132079509791587178520365223366625834476475522965389373220020024172635674481986783049500809821868812271396334628738633610842886474140876715532134025723643662517315719830379465380547209695879705511431477023509679292083027544685597782079105345274681445328698081794661815950409341128756837858487002744620932745830148926249217780611008725559087867881859843093754138257220513202624177846102154760830669397314629075274690655734299482001296698575802679160425967324506487716716566655220717856289516323105168657412752908494291086989258280941463071019693940798511392485415980889921881175388721027050568819262700313531164774098889344443734948874854973041313599273723642087288649143793925739728088389397513978492983553712113795597064473248911192268478271071370382734464203675212676906882336920689658610721047294758294244021272076929944505831231454611946004373615790703383756967130645306467982256634888224893776830250090305112559080353230958663855385250677058274155611520485836432210947332471318068028532041927472550260281555501962181624191088251201543703441580138456962432808378204369766584751848404815567632251913874160603167189208386955345754111688913959420674409414782288297067351041361912263485500351574147820395103013058448627513945522682922042984076281653279978672229786956021026133796652119638424185777252091534365281464671539800275363096337328276049479323354331260164033734010260464256160439892983058275091536984582397392276564649369208194580096403773967044091163992460393805887262076980326576498866869433368300952048957820409811261462736893452015463188158576180265081465226448475720725419355671352825748148219507231568567763078665260957094768062433314320382714032843458350992243999241465944038724104834363731742729681852580297882789110816944934206091728614191497485883129039423469902766995549305101078995626882563089464584135588431491883292980290811527505372216618380098621159331514814508216619754720795520855113893410963152282351809831329781286534491101769418784835185989754827646778050323518234387626954750105010287536139137271352976465871325216270964036535712246718105456942894251242654041478549285197268136585559374236216476585167392305103890143118550907047230421645467900496578313208985916162359755525108464578076896828626412745096529261938331282374514522102986248608031406173876989105404237891260417625427449909712660319131688949477685837598769111085862310621197013250915538200358444988678976957483028665978931105786888500239599254186477299789370769343333366745073132357068309412064783013991059069421108378894734185782650827384254619285456108487743878069184414987246134817455799562450248051251090968856833810939189467983031383918664328816528035684257472563054768598633827050694941014279281731982873704953250812973546460090257004534889516942161351187585265534740986889995958073118034476328172193665845071359686081432064054969817371583434760414430250164227473850485613066723259722330295939854150892002100014239247274336038880125849147128128063235547968884367135987896850021457563044696069661137395754037375669585679811711401454538113746293358082156864951691302778517083008855855364905476611261110097624024694310551707427869041164917845966326157221498439543142508904439149231940160509097350749478635740808469466606342307458089000469181909524356329418923455951666576406710607713613034118127574715761196579500765787310852916928576910718062515132743988016107356473283772914751948727151719733115150135512911454257415116516587734415357679358885511321640295290660733925959906678373166986907186357394140540302316053018884102234923293162341531818321438512809393129879979589616170310409440064515472622448270661569156785767386685880659914020179389770496920997146569309430397656300223268752713242820288031134626622163177036282080958932627644662719930591379251232531301385410008339137766037097699632711384271538495878222195861495993122701916741332899665450594228678120153701815065182170745399803633761430466568685148732853803633671500096273839853781017593755301932553405884084593432467720353864935519083288885616138224924211730559172694770133483114009983567507507739624821901457107647968933162735883419788789091715491104873956526351192023035524216969733360334145328144731114900664660813748805187585280733618692068833217151953407952740117241291190883306666941708089264652810771581508501595948865446031760273002022589445438595800464066308851418303342911042958242907043009715178448677134889671249075841835028072723680460499543103407559261813291814261343994246623084508422545322065679760462580137687398923886204863424435254192778914318698503515213014803468781809923541733606472707932405566070009391383101433577513200853388561471537980125684544101503568165090319207015529973196486120686305475694592366223336440830023429378011548985440309038804923626689067845201371002649536401667081506770792542332522601210129447729417720012075521832506794881645243414639481127158734118185680052981259644847577912226650048015508213996461704284382957457683995751675802903130158530366218894309224569679271146716524123763167073584026078297171006290167303138661522240684632553404477751818445784184787905327389019043810480347916137966424830811213793864101389631324368606330687256038133556186594689350036308084880960437926687912936156801979923385150692270614222112700226894289959100393019635122650954242399377831143510355051795217486847031125089958265132237709267351032104111481618247729592908662558247884394478643852891874626752436114895668955876298565928449621883340146726383357003062440870615357836437249836293286759811798033762521325309260038010497488248448071918918029226250472557271257763713550825376924977028652189114692936903933733275925998680999722891578013811434067804908168009674222310356011035709052211749302886829397098629898191276739119673268736495979692601707573595894682286768298735078499328849004091057166029759129700786623257993817962458249024345790583272502343882267590946847548059338399044743973119140555838357152262981456702209349830385395896441789491376199489997062641121593178860019925626766290726280690173877940746466736391212983819400531658267549833732725281781557960024693383824222214258678472776211582522994028655464122335388810121181564788115378403296063788927462244035486349160909162419877494402302719793146756985515039797664626322975657148329290254499668594427394316371747451419859998364966084772201919856387300301300652304444809400704379529927414100865607656335858387541725824084780203837123515594665395070849345955044455787082095511811075212458951342313994661452870629816808829025282802621819093859956847462212133517535381937229025743909729748577315988942180225685046668450991963598734706987733789141804372281964871082925047600347290921448768025337986754413129670212932013539334936471555354191422503712132426889075915020068838441919371957865190517303875789361984415664974376334929097616679283012817309233476005183896567967704000971606021972670183821166172185066400746677817919665908587563331156162801695002976317223661421720775101442787446157970696434021742345930958879156408047111272970038861519317825897424172275421678794493709697343343435926678184817012769344512209042494408269698733879549676657193533366964554163776783114154997966914350448981374063085779802920356563063907967278349345927315431200222043460308353534324308968799502617909443131896870723748140170405347843938934710402823357420959122860910644958380878286802735278873991775349906654261712133606695974139505733442818148929529411327107814182822964844532813865682679307228801986661686774334434767175087884774443045416723142024980646091102976869464991182899108526541655979198213787413117427304668132325265173335756433674680513923784104821848758078929387093550933698125467678433004321948663036949152698569113151631945807656272112296069815370292386972164569533077421572195044598471347900702213351161197265593492991184760524818072318376417174248404198607590690314453135060599686370275412223586107463560458541116255786015673480256322328499271442707287560353993807420694645179927003455766403075962225314054369468242171929840219266869929462166351905139223709748488062531998464968266106744470837204599626752772539840016339485724165327120676249604319770529066297375653138464519698731899181758644462080719480465611187168192779069599670808971787604530093806613145582298872933215692956510442969498906171189079089406700268516550394090734838878296171409519745064394303864120271742975108995282402005907408516748032534857051029573576735109261277380158831069961644288754000423069113896106688644723916139026809917443554743106044596297950271517181507318671546872649162351424538998008119466650773343403092283739218584027980469478795437434378185414493540560700087007711088332067505045055522214524427737987967857272740725238106707850923254701051500563568696486424119816281016371310907528397800329270924211055859024993982331072773662060623175671739239277902594046305550052008447814908798820925911606414873413303624563512936397937218734242815816549839560625677089525823501687570499176917428989863424839833998975907814964272384185216030832146155625949292112557033614473749913517360783751521802080862660786732000778766834566028567288090720851305172099885353553483211402599924146499304923518954269162187837018948117954653371264997833727177506288777860752271809662349078797070885351981085335720964835667668127454073903435343684936633659386305042596200511729615514497358452657995976147135393102644887631691075845226131676667710218799836651975099839685190926273935680718432015399602675621285912642429465597122268986227961264813831640338194478192827842434389793593661367149115613857840496519956885543081624211881504820204795553001344621414788116820815474823568775947461906136547353257512558676037389274261689755719917682626241199272920570370322313253392304403117594863601695452493641467108438967877697610807303198867804983702802080132239719400459171752652581763679807940368021840293420763297417778632059988444071864798030838083679455042569107032107276024527629311719840081671912111667834284071602633516919406429449983455440027274545677773965077850308912584534052473428988602854920661338076655417406107290993139485732716261988206592919545208591187699936139410116634656135730160495276823391033359907312095282200726092161609145200226174415573846609214053233712375819697028919629917372857569208838542041940569540445249646302831559494583337723229439239433537964795154180539366656593831482901177362741624482843826622324536375846524177772898940500369051172509038708663511404171503079530299530111522129098125901955628630615602503274999001647324727154813840197133737336177914687173277326774077784102819890088969548201312992953243416317902536849941588080455531238753727867169375363742494142486956693937335567073045661103398313037026923726117026737740763950267214345291847852639759463804741061215682860504076889647582963127506471343345255855671222011563750155173693434708236312801803588392620306721871880833675432505602745477013356766080859106455781156933293620576390221722747104319299436584539031372558142525777850734310403020664706477154079020746562183597774412246963188535041218895541631663951504543979817231048241656133417267544778370496043680313062208320534129053977330748712548253406744545875209045202307894679456840310382631597748701223107793216045875622464362465918869048056824990536784877205814949407248295581994340805422580037782506946203506465280272861506012532071789195791910232095684113248709571673160307025407854769474566109000421568860261115605052473716592898255198689297167380559777940684281391213392308684253933538264695899719072817000979093382234754827774977423597641793512299776969761426772089107771635888113832959638051822012668665200654640767203036605954012507775136176974342611666482215460976980032356288890158493542844621345508875010809663181746736860367854708013000550442449641452379684814180425560836136596783475196922530244499458246672539021372802201015777140312695649760781947032767241128659848286672701873015220907383957526616421894020013015576418236300302250286250925615528723258709472429242654055234704315598524283095886950075439421117276905879327771351159256568318039673267449075953735419872059312591333075969128662281615359723922524374396708724849086866508137844754629786559913818677654649554775793141060014362218511237225060039121246206875258569451286251464259520486697324096740120501983844729549727555664676329546447392097361653451174107143693420712989511286779998303521739668929216758198340464528316003683946778820050569592786751672698074312941357962332190165946865333226742393144981057223329708449909370953627711187314456466788603401092875843130808037877455318059623728216662545537534176543059337066360826922755878037671584251203356315982339656195803228348871868232456712462454298175101726957425426982879560320400619168836620134962560915316538350422142965716530120945093445163500077447367283655217270949193091987278685651530111793827097908936376778453306989489502155453375333788054115760238962755989789038758284763975632606658835992680624281667754741951893890157875579087782494534338892952426464272777556554943671745496036226149456062067444951089433094855809806505701091122245320462377743478144691061869025944805573550190101678148190470248579822231894920905952910885690735545500863389968227710628698755607277250401874164112415606739953304686347542049462908518073061245893757425441159542912470037770049746307414380501806931624637400885685642156173621987960867322354356791719300056311049384607775118457235921373025730071966613840954986480210819764134262175293046858913562159369861110744732180019243250486988714218744431877634082011170409986126560435343638848905119072090608762294259360583308625331913285589194345396296435517231400342970478607178150297616091697439513341857145927140467272414079970179348661160003347536852030556667299367657114252833788009186326099008771461410658701327656706446437191921288837440711445001757370615160828315498504078395577393992115898732053442065559302761321762372338665150129799322421659005068049655783871373928339032936175788181420283856539339684517196128876681002966812578789046854680789967844829639537076071059905830442119993994177270931099559706406949463346954932243924926378007453147486577495562857650578500202777570654393390711549226588619383757566354467562806881784064857292878798630787889545550718989888945256415436451572938954901040367399759698343099775745779199403240951886044674164511986737793178414724831865199097609595776256060568140921864204403419565198427703048736769884391265656771608688265070816628826422065223246898038553538154167381124802731656244855769756510780227462850703776923290740895893355711774767374261415368609487359700372452157303693981460600815969655246238661309790729686544487970639893729922077764309268683582206355771587827416225811021346760854742357286191731478559193755830660063235150726788774021623694061382900425938572206972391504771028713181648018772164352000388212868940160788723695037170122574355897536627281251745915095463152469710896901495949480730997197828079881598032480851146979436505947124065255870831770749087369456605282678179995032683384696740058590115507108746868934247651785641658132729519662592874376578058089841756697980355325496952368864365303808593896916467517835091535091359381471219319721850351231329678856168547995109320729784591505697964660933205541434352550990362887881857563016935039544565382517522335724850019525717333050579080259282059487065683368497174034235831763258378358828896634890285007079125322643010960536744915556328220585541980154285037599028999109454252034270173360124984003566590264307602563706660768273168539495250147302653043187128835913574408684730951096058649447057392827510971081875662165138200266197369703266171054210726219234762204179423073334164022555650134847473197113338163493664865784303136832612949706114201982165496145055894060844073760348082956563378320190295654237751492338460346945206948292320691516493732514714662481206272868097370852847780531391300240528332327291157062261680658444706914655196279738704900942524942616213862517650233057526346453409566946713625357402576961268086981978158237640969165879791918855339185907322075346838983237627449913288650868140201250578759032690964832768876368757578660014313443741488692599941100111310424460934976734948190669968940141855547107958880014859964897197605446424442884325169026473644364431894425812822824969205126476523488415860320758064952032959046724607851188257377222613445335219756103900025132319181178813855863086383497792732680605832427748272052509308121291662804470840167714084481483099321668027991866513910825495805826195818711531983548159505748872490324226104143983633383161529236164218475156084538929420141547789481587598847292877741889321351048812911291149631808438247081350184034891473798682669814740193574868478260556002901013279575550727068466935304926852178766684422121964632129302835787659829103335702270589170657271164827370558110903431829619079548628274963251399934588619097708781519323051413307550622108757779594916062881873714989291341466130242015995336747895894424795111480061729120270543443628504205232124316165701595859126945711168541447383839005616397638343478054940679070018087107374995718516754117998754934661337980616196244475210178021274161240255666834286841797678298507596505780109928890157180479064247243846459316177163088654397304209521447329444999100993920681217991137084561581640173856029654629796347693908372144665245813460607794546980653340795632377699765665866680406963365108751834294454966474221388597004169096850543145894428459616596032020535992299332300590691538632856695894974500234239137738978477304575541794252945539880321738377301263813286643871448878797710410320939919561957221135978099580345122935388105714500914704960920788197329290146778983353914156335074587302622040034913922710152316999711351859733160456647349484656614017813574731618990984925904939920436768325179203292487465758899284860158287300077143277353397960675187133384221460587898466419943034145881171456178108334383004603771006843052224291950559411995892603836596992525223179446932672340038284884130652755310293450625154143756051761716259116392874339174614964686640468132180016331078229624191851384577954227139881521439353839261695132868640777910168535711259769255435737334324357198262845744648251393881923054273889000532841139631066364067056494727972866521734464947718998444086642079111282128580328253494532606663594189985262032582893790444420099377993843746545171720186777626719168535455429266276740265142610594420211838106419049629144471447534967155410069727525634699106553995084361210047742376068324905992666378946729997753134562713088564840055529018472723326432226660418247732337687132726308306605486080986953761046647222985293899900207177154464789631686396743989955459558538710001160737953097675146150043112329214601379181230588183658283044673697520858021054740476167565683823218370293301144520026821733330869761119395352599715671013675444730762833130970121230060313377232716128614799538257185992869445856030819869307165118789123419503783011006214116689935220193148185153959055595820247175138176426908560082824501790045082062663503848621168613392631158343686913641647276525877500444134401903247088787297276557600608362905298651659193148916957920242323122208163293966284061740171732428841576653274701052746156682249447150852916312738013591220404506574868555954259755764317746404516140030917518296641502968086583310453982915240320342103039284136466148085334797990596008279446415309603787004080922736714715062742869736587577430220450303836462557423267945677837738642464124689420823044713696955637388658761115866465551712450101689807436933874977955144314083531122252209235696422275704167723300086606635544983059807860560539974743151907313201378531470688760231013532803113534007874155662532382985296465377502952846845224148632139269569826636267736744160304209853984403342808553860958841647649379017811893772934468557932879495528214895230543496183663014928902997078051716704782761018008112930229691395559932509478710418745248482227421894422920390466142737559415779653122711160087774987811355241111532442980806596694459024421414801164439310618825560852403892479160738877434609052254440119293395697751770742410694680407715459463611612143487609155707500316679809113130301793773117735282411685482784158817302558362074895979433642634870210241375269898266162125004232287286927732489898019296514317710888299404309767001066946756796464783064596359032920298233676936097777244398207534834026854821132458735825148967855018760285945155344013228911241432080923563815332685946426167399421792826325533898803541518434329534074410375505751054011081600085356089380155750018421921753828891694172989699748239325387922354250468170007785623898939321445530902741022146916613561461634848588946897750277179494457909586261437584367803898493319952589237086695137578740118667927902814118363518900952099735359556252296977967202509056541499701734693007553840884603696696778247104219258656959985213536225747812321530869302554305341306069899075955364090978716724370842529893130100852474571035324210039483224066663308336423121727067509427631149631287754996080148691556542632368813676541339916446036195378181905408783409922496043094992628574098707612513837857336261512262131203807800236757070392096693264771992951451915717965147485629228106634291105592723301750035985643391355560842748945760698187621131528152495270418033922404444640976065763963998719159769951249351281482243691362442391436315919608035503086574329479452988915530120495449444971109380161330849226224268021860206323865425025277513321555135747603038693401511094496053711385685550470761370215525615542916114124661103186901530173514405508554325170525970013547377218041492606063120255368529212632659616830633577055246732470159631794251348049491563087046418274331947840363457063730855076436455084156178784115104911769416829639343946085844841282358799923629438078520335859947002646517746611632213680380618626398415915913311568434287185984803427395608919258130018471654341713788224628933521162863537004144897784123617064892516091385444927604691965187277841252990719645189619884310397949848294383030217515895403842522774483572262664374707243632647537947589947824296971231061221706309875300394573074044171495595448926133375776454822531475854932461373800757149844105151772268136202177979825401220948827106289575270927270700742446933331678746327878599863944837609411221031737867383859192550012467043326373152386318604694265513484578375737505983113148791685716955233910835875572967250101530448592693600182488610757122458044028129287238178605542678725202888637149713590719065695276770275771543811402916182333921498960613165945184906362971061622654137236686745815361494345481374471446720869194761333995973666476767205674458471481684975772500412811797073043681359928674440287475708289872236166602208022055332542736336608823348540756422996783715718114485083205443255895311766744687139998814646899169330642609337534446070132064642057430145190927133310495019846290471938745729066188099177465852978520831643394829711212972572196044585918775584283439530311282940741314533767147892105621347484693192733252460635606064856857769601094051395415333007000378785756532914806247800235127348604601428525971896391089914051595758967112371147244481821353924860327491900569631811280160245433173127554719488018101222186326440723902887855692362649057152374960832905286180213494922989666612124699011854288360916333243526329177019114190872893169675185285963991264443548868363715029495618739675136385355138282223942194809649850871254722614066672271974200212864602238326850994510720684772220609889995405237407921273507270651272290455120760937156464324607230835879742934807227014818938769501114463567622484262948439521828679904430833172514384983494120842223654655547505490918062584195134581862804492910097750845101134364880552498895206892088527718892374387713051689177126630519323261992807562393738525539161245060389934187216938487584031265640986568860851722307177125045467970630844696439379404232412176421494854654314517013551320959364823653017662036875326278117318818290604378133602057293185467793405523888243477070654013692556464025952925276190233907215935817156300540565282610349181168241291547237986678795405864537860207177328764658189631777059540758038752575179890068573452456778476434493454576480496237593468606213243436065173835128296977340930687569311623693052265982585503210678000468517565871318671339805805074422064776577829551790845852055568433333290178086427830169474081410301784696850085399574554727142017562611743431816674931255661952897472291911739855762721492959973634922241612304318708912961803668703220551221668861775614723604740980347106404569924209667322695332969164547332632373323824634495381355997659404809681086786309936243334272203048296969775897398901323587871342905848337170550910931775000507273003959632813092899025087233486576553407888395003914363181595455830285261441024438683370377682954378941403259929368234188123523858980773624095378935211765332235878092252983582525921267488297395283679137158437393353383699193797953820297805759840055777410145574932526584263832403937255658165389319605484876297650025687821295105161022877010774592361697610930216525094348816622047124008247682821001826053110387373165757229708352763848714692800892193733193930272422703836078400366809206349291854762717429555950350941524577014380685306350543042819611868215450323466066407043628262383253974310683323245083150316147060750001010439124636001614078959145639680618867735839779014574578921813158535797341518644335887287310434142110921520260592304836348095320411759360894090745562474540974580021407374848878635499018385045141491323705464699379915301516945065205348125302631665408887827484917326930253546748336750864538874890763540071374057258846751178274504753702728567599114191058626730219902058341860282964286727581688914777077694559621295675346462870084995841238551848095203067208134077338687189959669981137306741194507756914301136090804920305029190455380478150675661997166196110891566461930563663709941973748062351408648087345362966827231758604308815780566934963688189722643661289508987833457683566735763733522449235948497504120741498856142047119688488422071163986114617732871649680527167869279840423438118423690419692821332872466665494435383773402738095942037042307766347742224018535222450523024502496496713060589307200369436084413549392715266821745654535208837413934997857987993301015752048066200938484414941882411770938437379117198717308747631462310397407958427861534620541495754013459418167007039935353025238835291647808042180293351585291838260264338155792257177201889797590696239681111130694252205459468648380049179172544799005560260049595562309774900128790082232709321387946368722399519048242117513191946271667554793380555396844597977085763991386529938046062035252793904259115815524405518238600284533929402002013816486686739807571399256917575702437935743174350916306652387644673354193931106359458949403287815681959746044659951267210699241323045598997702380686794673474639387546511916000741514819589931054410852668924300517478892261996628707504176521424617990628762086890814232591215513750471381761221900702660448820063750750332347017970828306977356128531142702804794050723336018890744675533159690418278524151429756727559554500000524521868990895908097659205196319676406066820839243629071627895334252721748895757173673678551952832958598654054581058124840747596871916362368924734177079919658520333709584352524514622898949080134886934441805071459560878304564299755713486480788581398330974109527540194579340438647065784561843952642236413795975456573393302345446861732752092291856091663250629375162129159483622843108283329228744658497699828733439425387220168946781881659566425655002962136408683249877379405831630128438423419953921662779334929148118052904484552364559254883117695932083486340791123689503057752783017247260511675131981359572193256787219662339293139574292678123380574618097693168401511301910570911201145140679586393070994162230719870149175280662978028841236535506129451409193697329585934235203365447441064284991772155239697776679562928654515612039444287538327734956481485607424006158773640476650925578645538454410660094388649678457963660945000649431505779123696429985990307787338880230098225691175664725627121955571137558714902879093808180149619641760817128292274485228581179420800420050195926541803434118702410496390447499606515305440160255084042180172156041923114166179684821439673867645079007328464479859528946630559270130036181037429918300009135735020656364942357690272417516851785468835173105410566668483374194860289205332083558128873582064105397179749435826065758924760629706509943249588693780768197011866353772449313248300349577875431684751701697317047708832014351546129974367696314823914316757690886744323223052871931768466685143328196126875386465785674444541836882256024981550207700876116045773276210282080080059908450085596578304385604011379473506686879223620726814679096142708432520951569465441922357468641183762992384406998693124174261233077679195068029474380155598655125188577762968000337955573049296201942366498432232112734842744192826775267185102232727556227810389081060782938311374859064258423014680256938672147901602000082165868986590312063200282778561503765942868521906927525959381502761749878417288251319599440171436667776210244801042685256712013935884190025634807385603461110268748830270915731893241279747464201391766719329229973409747010680653822047473887638152498332035598525323808502474227268808416679989870022984944435880873253894120381287027498470080539996171404263534013829275784150981871944491442232443917851630620728956737016377818979380846848349699845653543139053298298921382232476572716889504816005449922633975700258307026800398278854712702122188410745206823570677967415211212520339824732294790039223444547110904806139497959266633377466520063638626873292379543878259446869222456356991718387507607652316194897468057040442389885097021054939879805091041985972366773621264006761780490939207620301955876767558286650706957832290247574328397374972130248227912315115654151474895572329093968567808754602228555677368190500331375888879251639361929600370784424616620485161893785707120623416699162888097602722690985059151862040465786124173030015417898562092406938343362553705594309171926310118669847220588929935782913038103989465976942396824625019501286366800400059512838673569138720891306369926768404586253499587522007774073616839972719528079103777212930241712572981388854478528829320770092190968230830190701200152858496587920133821346370496805380655158858036301555835171155638698116130181093586094572268518892398473896466608534200308538702908035564069473874299146520013986345152042872913478567536140943803304771091879307075521606857767829948054448371628428906562616506338552889065395531006279094434078566769950992362794256913239404078059773826546987336805523766278968508758580503393774049510710960085939921759450666641172794742941577003013588035384284041236680334046592650253000645683203377558954089726206470459918523730651705123232169867119513181823844104311134517105258560558035337384118733517544767270838758891087008723648619517253238040077564357381361873488674446068113786003311131312593237859236918570742739265122119616061209711206206316308355668637365420072973963522037454385619026985444675498251041975262114394536633204398897290427465531781935933002851234921037071549987455388810977477726866551790349543554578171962103248566528053015936880026412211952006300733435487408432339298723517362421375714850593813897416478739247930072719941326154302634509046756621533328355413455707006496117718407607373237752652388974336953138043224416224829335267029554745594362398582696929082667290056024996143798429916892306656894382827004788960327170646447993515705293693899716600764790384351350528920665539320955768653005522560209269729733525007707721538426444238648153346707677368238536801225820159876395604413252418151021439187629823363036392932084235921388860597649729954099311081350063549276679284162483600678509226006105321822554288073051439019914584852690070584354915431850966589433734947876195189110646550869122400428107894454821958256171891494293411257784871790642706700052773950948502936911272943443303026546262505097494205353580244232157802571529153783926529941483449629627129452989248278197772921767626764638036166211322137457877545976445757821344463835179385233008346963154169906679118085349694838915464326492510158655979363965821149967983304102109980955667612107894541815950293748086310534745196096191676951671344832846592579319200117725811023829138332537260702527656232347737031902134232991460780465457226305708557726768577634335629533442262756234831690883399168046495942682945224871328076528765443400900022903201443681738213331276075012350425104029098015991453927014676970561518886563732115621933773429335595798207550950701094584097559790173890702943481080259905846499563123796340875949073442937207357745744269970813144944264735184683423997962144755144861253295613483541614840866375333545015429086802645318986825815354151273604536963356385325609705073513900090050296255707042324475605609697751266363994805426782192634440734444672716092253084612391408308281687474696343558464995289484361393754815042182638089039449164675413362959275165343925651527602782759898087099603200256780606415020828992163256349771610603958763459367182981826258297293952091256863994278994999638811100503567697632698452255363710599794001565414616303731715376438252685668577968185091545984167496126308462906828402523575450291284711228596212721854645189276866909263070412328798810412649422726169665414704265554612144332165641775960772182198538925647863540102550948408202232271212559136584424869646858147503593226811283920486212171652630734502394813000463852037035473670659610272997250512531487396393596821295525543849176259516862955086192867033014544008290940067918556671276419776369183114457473807779716423099108882866094350755705540060798719752954580848712243768301782652046899494474800580908579395548404821137621250661878560866997780997759998662692827039881409176343741736468524542528324929168604565799130924930196403840179376182605883332422643809364832590937675089308613732570547013331027656818953872577597372794389945988164598235195417583538826857711243440937815847145671573721475906900974866583997923781869089814653029072349096522288135409651597184352794832937137830331623074711505666488219686599706538703059999882413556118448987499342149880954634199711917295430592055525483660091443625368140442662338919716437577531709858418406905828120005851527331514422521463135545970153421113045479196887475923609004955712864988340231703274838201696808143806624343021793458584162534139728795462157422901320517519102317841779168337932974758211121596342886031896327199502501502706455630192712614273874561307707806749473855697488154508309472602789368052947641690416000660372395838088348163059904158204942224820364116875766653237350656347628684480826467804200059975690090865664153791218832159457790396074394098012561400501441064686679434248654182046446939056464687705118122214998300512306944066517877598842460159317581535342836980054766208443201778098259939768436044985935192000856069720508525110916727452273523007141490806039545616280467852544132927700611011227263385997041774696894290459663480816307912962870325205019701496809959722309228532992431634225046478299460079010846163600522887180782061640657568931716343000853951400402140633940576714147409664490445399713245821982681828689723507736407634641927995648034468050978305647856809839829239515926228496944491464734834386588239811899679707950296380358973325478978551004236081692992760120746074791370480793149257978743556920149607383796333651827780551058957019519549404569469527178333555811602739955515065962847860723786445289081038798375134600625774733341950301126279264963429052399784082285887565319816311709372958259584104604824557871209026671700779528820814720515438521891282783377073008119384701564184511804701122097255508774861968778695589377911762551893503164359654389013316579821835012796996288069080876576841901381809167621086926410378014727431375625827766538099754272044353829123494524817922700424363485786266962318342641793369170716048752205402110404291989296552778182891238282319398552671280478979413427420160375028288910955869354976908021513344480225695078846570013088134413634579891488420746663496897933276164756573476965611036241862042512143646492714635702813756388089422930203835662265116296666501523009673644950934440510017662713860663726057296725211080366322300729958737270581022570935546451214660906068814159519754894219917861157247111179394816784687373811056236720336383740510449829570651939502479396149437917105520019432865824463670948012149451471658873097852101821248532365176498732924428992952393347128829808205109824993614557443610931848517578518828671943487916159606039566972579789725225985813628230850841692948355606585753985728193982001289091885877377827181941055437676258531268013128646316461833975009808857530672557212001904228688103677310354869044526268057870675623467122881536387942502129022699142401533563286621452724465355888274796325609690274682900475336433458660432774881372658886147935838709028101176358754166940108279341823669425204510097832275013602553761547971283371635940959572809030127557473784687205959160746448646650214784534285726965560044869387284943589375543316300135104174949073500035939609516667801526786080584345139591088422660162243027697264436273807258349501832570529972310756467552196482068857042793420837838491706017506304742233321679175062632444048163754666494399490964597725960746075041468009819479629858524236867178022041194230854846201802927481369389914968796123720183359667852470773582388605049781174455261055663312750830662819653636785818049963458338220315022911448432743518621172404106254647568374391043880829036643354635388792521779009410494321089873034755763879286727944807817031119262050551090006118364352514938312453110522032498628175989470593779153573086888863169851119630885531336208383257323892901290933929024370250295826865777514139626651849138012701441934152520650419772616441458999248116201306420678684252798581632261440584871310963459138051449067038220127881463510338965639861595776321414857370096807902188382552895885795870302838587683006831215833793305789705768896950819490505077518483907707662535549287371560106557064919597974183901795978167708425543674356203322121640367994035597263185010694423190277754498356444723190860842558912514169271696589401392505269804215694297829332830929369941084539206618176156707106297402192765792893839476907751229764773901957843984350496996045591718613726427350657401588415581619139791248815876763395344066166363677166345088255243091304612824554389826400302368048906280504063234419309386453263081776614613256238138443623796636987049048771770553940804890749733675561892823396663210854792939511208122199199485594851391840825193600788229117631957858225503796029113870942923297208308269863296460187332231256504150328697806227706629575609851166955680712286261751157833273774538777465293677724188934069734553106085212077653349407657739799853641090935539435189263327808806190850267691028835293708302864699898728398524269235474963952165486253776125325738472538685811059133358264088653406729866889719788712520508000683600055366571146892038990432005069211564958700481000257704270538569594768887417365229787432849266944560621988153027513119058183278893345223535661883402654802573859696565629678111196382677075236723927524437536210233624661232792810901357260024044741681437459372333606745175485063034388568213048838974969140908524833409398758797279121505661710793845447952022794769858188759511395183452325824359186300648423741897065254968682912239595438967153788952586087160373021503835744040007098270989395284135698511561002428180592047421633037607846742880259767467345676753551023535596169720818383402526913246879052290224626751088291445608496447399144881623793109984452523108680982537670487526138119071767448780967759443232960354600611400988551265987693502122358472319949380870871775190083165998292346569379429542297863838445415333664404995350748059646739130215855079114543800432173068491431913236908340508803889502048436114698348950209524636401088267834934593186077441763277708696539095762977479502638963287276383508951342584703583679597941386069929021318525192237106016432427934440704208126975603675009071690561296464084506390857684200174793007390109824609116182189552665588270699912212062740854802639152129852346037403682597665352890306981741043265597215488160864724250634457353394943977831440978580330379357811455961820372432174830129647167624940670294485692700016138294399870498432940653515795436885961523845319521007402106893397110078189252837966877844034137779949468653002518288461481243782175814906848646607535307269232441428639471208417392491246840703667930798381781176417629816378196525343311248259887191353887635652307371523862034834685586749685020044645058554690279943776268297563102379868547142611430338388332546652645875225612728907497620238140922519666538089561828971092675829905422923189882740422625117651620985595697878100586811645779988829240360161226838047393948746781311938797957720958191404314198680615611281328758416530456385176687188166951859328955189351737984041544659969698448470199889828778786929047261439817139848114141810453632119488907188590635785574766798138127059236031145465497704853948890005284926365557076923991245378263250017876416490313015234156719371865914387130833163086861128979957478809061374677240396592162996366575256724896206042093383953367776351203968252676432994680399663408885067640427994657575619727624465014058681908267675538560150468774985369212550877721637937231473564487374929123273604459346825737100592043444555258672479598063569983722688604781196101505390493798464731903542040050974785576071948799299236176072685900816578993578005511282020394209602179466736235339252371548275050402592400094028719701848119804205281155425178326110187392249561054482662443364365324660590456304518436582390553526511207887433423742458505692430099640213872079421629984538385739942131202332057456958019571497562736196228998275216627078405143636314823825155621631247122921276943219955502693629248023048309428838198485615171173402453343655420950108309733731840098045927076272923833570394875001964621016533467144365918015814199689031795648961910360146649145018839179386683927355628155658813793391532466929555762039427462042907352019676871284466376019826235142571319143000374572522442775651352030596532583444705202036206127564960952355764651061372937327246691731380509292909395666295979349666605009341598529124222322168394694540448954335399694764328631786388097860080587570927015185925127623162437504078829610010602064843819205999742949959518934335540314897337468362496710022692398763111749039509307367182530595515580157547371532126387842102922070371564348680778684534944100389323864536559972830821538124444484139627729859517739317304753485532428387866904533552805336715143728943109738262592356885221585882176533242440272740533662854224364024877501951330138198979047240392459648828552003258261503948634029586112820659518832448323509493043759728594897555517565148275185376285846238527643579536143706455759185376324576657513842512445014365325862561029652468844641854978233705875461382237165765159708467087381979531026985430222160563105622464611583837881875644799134408293591753525187702495373116395237645497662498990000641039163749118021677386306517135419489992171248277964556586461935245655237382966604772396689144687246126244981443398064425313459273972838439641753468703321753040224160322648855942281897710894715689750648916444642006381023703445969020224318035514431244397789276931564091040879789591984837756772164511824419327110827094690329149761143264348841378289794312489506336937849377420300280589207413440729302085682135668665747148911910761338602936919448490336133213450128881358451023770970782282157104930852878815707290378248873375878346315973515972100224732711542221443496052179911705111937747552557052186810031322665839333915409375954835452351878112614648323165219029136095485555350077882337111527383872489666574025724433294140592203112023277478401752191889068746131266996049479905098455996887304472824559745184597768409490967633644939091003153031283889332847007939479760767337363758814270470224243352903649209758847641797340125348933512386590838389031864977220526151794409410451453984587706982430800883632955733679239556205666619463483162675311589737540144471280884780709365747578291390167101139454440563934434542712456751318770415379889907891304951868092663290729639502232988887919576915684247136524933862157177001500315151151066519911151824057289681629977946905642604374732525934067964908259689778915048685951644516069503933175381965526642468254182702325814619802979968412938418865552620947244191658391059444960061282235270148521560101473991811219550224017131531028684780972113066714783016230200788967782275183739675630576452008047303503453141350494030961369102204171179186784237409594443947081229583809490911445293102416898764947149060611689070820721404263069887924791394124554219196741616931340684879927160021493316698275658567752766912135503738189946054871128883338141358612824765665173891630967776935156942834644087266361882896861414337642307528835031801309176333944370430794834677067599563956825881287488114319439175104740228513587621899955774574402541923583070956557629013024354619175590370070563768755350792257746535736921962933638681928809173440598129910390246761095903447207469995690919677207494964650621214031273305939741629667398942380031801185045411619219222201586265149904765236612841301433348829382734601285514734205911782476808504350675508162344628594141869882375058766412203993148368236853461394997431605295173476763326344318682071814076165460197692267214685036786289459523452317496293850169337321210193448714765485289702298480181999998111583944646947152852134707836506154240567956647220943116326413069450591156485784063430886757585619518352139136002379380386994620653131103579220395693872656491323565529683993503307982486782957811025196352978571186800091385234399874847620174156364861636804454062620958058940691788539492584626126102261400557237357558466340293750607410276547942650769568337632718013240378933683792563281787859679128827018425351448578931634756740001292423705370613912242009260766877158976659778551565965239262913087203148217746463492246414560862912289452952825939615934403343874173843116296299502781187129004425431368149655910118177854576023889762547268409974311106037682247436986076927174194488559576048213483127201814147855351756732972427663680859808965192366584141985716854601111780828393038536665739000103270532510904829783100638647607405458569033832798167396227552083839902704815573325025672693306456588796552886133634437561877954522020286006639653899030275109335445366103384539774528368469373581996856995254017864545222750295826342936222295843838931569029034885634470073002332312094488842889933122319992554755423808955798646491467674897530432140863764647173408451546994392046330234960010210385178212950274674203454239149065122808881986026001012275309157915216234134349134238630157975077962789365672146046995334674736281180048708784864264273074892811334539373782094117368628816344716259458404330042218381552084430402914787761584517526380352342688653133871232715058393916280876739798302310714009857388941373062489166561476232312062770030272182753720439018311783257867257905370425754223657334386167046755567383164052623125335702082988949101108751654041026187523432161199338905516261611400856744260038245301420318952756644930652413140230776127244823495417278835526108009525451633738715112106079336982455483177335633379561687235079229263321885706942948346342956213900079758092835933639586859818627789223005233125019199391083998185732274206453141290073495435844618888362108320031221960092932741043551833221536965953672480235968985173073707618704057393217378077800426086718070320672234017670743014733775215937044534371311404275717329872335232211445215298322215490506536272190116237697950502576325470084086967712150075391814882018646150626578508248735369964811359275973189560554785419717748865308052263470874321118992557001207236900983131285592601506899947882843012874071397727104076880671257477658107852200342531775223543509235270948887522492165711202842966129821206496175381376404404698817367925388831677087137779708422659306785934931230704684086128307763882483238061406280816206970882954745414153012263878688988062951899786830910425466043446543182732208666933403719917752039602822883183486312366333390705876229458509918608365779256174454576864486887320191587577848374709363286379811212294387425065252847127073562812380305268004432139670260757962625620032111148060508106673642098099075593404175445217641138203005922560201627175365256723340272911766218234258334669688528436901694240343242407516759211079515500617537142041699582063840618133314430714701256152400056043408424715615509014408759445366946754957584376233825490050796072723185628768800619493467212403695054372758133484832103589406733985183876115612267379626490244534781402605254938330596447304949414275821485483866192799921073616315952728344399395638124834236778549525506841440605339049381274597501632218904161005668381473332270990373765964042804952717057227475678092420790028112230285592956371360361355478521265485865806022591134202451958623954211202902503827168059485843801153604602777136482329949472014141069527574771641465098302944704552528354446089656125299769144400349820384318075047654000962784464098322415041091283712474334186398477882955066756332676605581587493036841179081920875228140229035558163372383993806848897302096386053828321676123549252655599826942626983636965911787497330881529710350085068503081490996829294734424124851549770434259606849239868979894647553431370768283411665527916498519254352222916536789642816717980281302015020402536132309252687832654474897224612447652873545593291268541426674987449991502084916882275597691466711131959735542723760041245586359003843424140135352281037562784637793324141521245628921119340905957226160617258599556936291116530310909088071105725333718067251894851397236020687776129198768280115050624966342794902158406466537264235835038463764905704512090508537245236589582439211282724896560135449570001056390487030700026300315381893363027304769543036867950930683794550127370015976042072111670574897435196809747411994576773508428505666981291286982481888955177822096097931194411912462630802998787525181312285603765180639786019933920894996910223168353412934669931582175179582736082834724220520657725308750889595784378790752026154545079829475507846582176389434705932360810653265023528545522546927352953924896778226239339560093430468580261824797553484940616586027790506390360225878418051928145316683038709514993495033577330599599204050585873806670352903472914599838727900490204158722815254487688105200702612835231424615377373566865843461909191729831847729836940371845053925958594792782605530307378111123432014496257846344336118502423736496744954600635669301315906381074665086148404330008645735682096214519144276986288427603695684250137895410747750727879681426741465857068899229347710752970892276238215463105322549404353189921849123947449660812110815612433917097498517547014399941555641532437252424225130550071213532232707719711039699328940624574772325416670359115137468982757387865703328624746670972229136187439027192117711031559816428629890949510320013134848532234282501716520079192008781963853858811294446574428774449109433542381871408163709575916313550961627228079176392604653676803753399712755477758238353059756020251135474021285427799192196596291399267659292120225229351193227804424139362817266857662944318919969479636687906592024613370226675511070540515977284192029962923989855843292478489499475279464230025707738407237824127093390753994998178787890419318994176279957363050890560145904652222130045801324962462812549068023774820978982203527832420256720722068692916066057169624486393557550161020261071899546352163209589673067151016098753265110469254485661476301136413701122519899002588682385875833413229496592552421994467150810231369495825809003632251214743345028730329812269923097939421202687743587841574102435537550075225124116525250693237596998705201576208623292671488578748226280768756543897380722305097091359336629977079549102877650100076199642499512624020445579656493684769203512513317873416983173654962019523783943843499859781749328583855785543256586171006392925156705232051285013409342349093514087393117018192383519274922638421230730073597020418882387358967881108199461076774820299212783659422834818217103379700637821871763834388767128133019875490043201352068721489025399594611902279947544296539524078923003633810238806679469663937849423017061313806776039352860409605461715431826960780859175461291563155561763564184916321595583927265035435518099819531130319067610840327478211046224298098855945506259134649463934793217448282221979275733072617246973751278850590767705634335730673904477081958163381493428023074677957220543423815112204000951928580026569050471175088777883578110773067394512725356133731420940733630529303105656558982285412388737257274576730340041996739755197359329412293261788113853534728882034671575162402546828919494415018699651833120333172728853583152810533856218342743996025965352612585544704604629797970359793094191543637071731853551585800979637451408953333730580718667128678968179893755429752193032693235911562023224879014311608044041907457214177895876630240073995665040026537485214305654060025913635527941770779999684862242442423602650489916920565133813715585441076641127871084851998990793433381485341121964161848225358255158456798279703833164606731337329869581933130182839096316915307341212371194036322048477965647229618193557601011785064152591695903270709277597691530412537582837987531419766085015335924563604524174054331955961394093482058028854380527488322642901517790931900689431032089049986536583373039791409226941472807138946380303272520352363460358254538239026678299977121857562396533044013353314166132752659469062912795452104231211111071811526912841582423045946036572183755771086712128950416070980520388651959056237834190204676080875678749369310946736456178017164512767834940137939041297100858444537711102266587132648063134724285446235978292553661611526156809659095613492584516577801209540633772645622340178534602360669290514609404756302646565310668860895866185661839579932886985153617801452842882428111658592747147177405844242717593415719218001258732289187207481881067367932731059518642481068631969678283773490383421345967448470898933712364484433831295629139476176920938359632808944378321704613269588582778306599215193337946652334498954369923882813708853262876016943271993576813957997805775599212401983828106937615958642110371675408997774022896909512263018523228569665075467737388987425806294104234759629133961948158508191738458047790846152729734697487545662614748714211358649995112072132174575699792408294355522006092350349449109490991497552859992580781060106907861554957462881814959903339721378133767640750965717390588052731309382736653107794579963134465440285993286911920342767467717416684182282326005748037648729117471040928488981856710650826779155397354752832774473959709964096092216695902746960293211572764231398011646267241942755297333294211165929098759214667466883872371791893141960679341455200505530698753456606367444994293418719962746953124077080182419667407244149293977275675349192772846490827556283104824533837416737052087570296756277370086395110615435806866492193182452086040751821930702544333173765219555888066446132014642787056013276554526823339947260465957108611083047064361640970986286817333729846650240302628730993426816898468784128586436906762532886066656381412748534236537018558707755202324309379041270126141252845883379476393933636990017172225848662779768933528231601396801724557932984994452599567902695634087983542538651570058092440359252763208411913882006369086406495473534284144002065616413525377981181319517485026889327729566337147333556023696997717676538330219910689411535966319667314184558228277392427072077433033595320082009493317332024745137125940752689362060214991447797438663642848541865585499580359564950283585511379529740923864182301542118761657670816785617568314030524690790190031051557594674135379010289303653338358333294982588321967646818282436006542162959516792492555728050830100822257418720893149898467670126966219158686731149739908278000651454821787981059553485569762900182587470135629473228444418750254214664235093043109508071937297455018411941032595628686764048172572596643925276302045937508090684427619114970388836331895103031590377944252366421931305713277730540321468510575475326359117942769319737283450746916952084222087312694532548610845283029967949270150843188613633081217049485562550841770087457574122529742683512968421811269075760335162859498446190409280281357821978535965719526622342448035945284591929901861937162455211933283484372277057858797848594656181704939941764512721422474310697906010510245759478089621586795917476019686770353578612667911550181484303132815623517818391916054763564977630071496110625222814058478301389163534436922969485749879166066081086308732785508710916599751630617928697599599440593091722186770064459147862671535819272281770260163015036856689384487952062617577401255537211979763999922907830955517616970145829063943215511620827621483922149723086728716889995229593838038418425567956023933857020004955313530353581289744500617919668766312324703174855999394176938918269497651250086040705119835812420936486873953599327791744652041900596242240148909887063469870556537788344510542347121974809613688107753290594398718974179021615669102446596492934658260284785060941306309332077104849019087605475698904545581361202636178059821839567356065352714060529248354269577689358377701821939566062948796791743165738099026248409533406575077438653021789066191011271665259994408046765641788208056945104708175206980217748416611029528240247483624623329126115591276100065126612798276753946056569233597094825388408830335319686090920552441086154214052039533898330095106879078070734528742640173775963857418862745629812098083186768903413453896764448249800821151731885855270795345814180355646345358648757901383922330946332324677875464121038309918384467492024761918742704239706612286827224064720519463029397720656126034314238627856935530495680864457989278779084561545341009034333857741362014255364586029382160409228793431403860655467171764569737990172768619063249913451650896822346092430008710090107338628097826115918055041561956345451890838924046824335325117053559782431095629239096290582628497263942542905024804743017113605180761100023494540141047802148719272607152241031581798438997969514725049597651258516519068584184676034273190133334685831486383409741173190731225903844301505025707339664112088761253738000005540212079130497901287289197692969377661626725415938942407466723019264067644939722942345411739790794945784278500504920994634157799298780936590711203177286051827009003062017251028282817781347271973033847658643384512643947148817243080730983414269558598310719792047367005172491952104154263128696994969727319758562593503890182280852616775567045095993294162035410286351654992130699845191015717313421645255513560505493395274754488841934389077608802846822953679908674854396364840478534095862310903493790227417458543626844738041153630035224339857465932428628326082409171102560009078035992776496394097492368435676811028281561686025402608228629720694506427203588504827064571382108830343711928159383923141077250427623425942144429275166151444058261301441899039769167200730446872973877730586597626218337989120196922515076544531410337039879141627694379242488029726483987193574584689954801959376222441485903057225437404401862470005760871430020384465168048702555207990995403857614094914784732612952398219331051465593700212030994877430093540473265400689494610941399927893370614230263308574189086492374324194240012900567817860070871695717315964549749545819279209860825841678009408546820391875776468523943113371726188749194530847466019178619726792697881768437122423008704462290435212783449746449837468162941656191136422549289971831067470314292593287798465762229087941989408083492414688915553068038606750759820598202992694800528196762302663981418673708057262438655004480015293937508834350457599690833902528368010812482470439852190072483098822757408644184470126464366101928715333601457611049154092910410150379844330306328932616162079946772633899062780340016827745152467052739190122757580212518256316825325611740935027911432783388264072218408044078959592523392326170052373320459165312707397308182353450389917422331373091078245961674341993603677399813187352561476720790089761197310397391048440079586562989224681472806482316951190114224481603130588511449917556344031304430799651376526129001553123896759302311834981296896290820517960753095942361265837980641382264651018487176906563286374466369434345670140894301922170613791231354279371172516478591908595161618119678764475156377487498004057574018720083377509534608577477784179672597384073316109488397657868323837770091192727843300967000830791783025863147581151335346179296257404668731030077479108734607281537824727712492734122307412331226873567849576019811667396895846943314166861513584570270005830433995997313365870791167616040850972436096065477034119910324508361871396348632641205967871115757935356333020991245726172530901526846301119608875863512753254641445972065144991197503334377206457228731101381771073830971345861412742631061692426732197714771626816003490809389408491085693446998031037213603210129169005695419026643400397328369888186917212954491723895066820167886472816466631933712461759605536688913395186514690173922230066939232331856388192478304791735797995091662475813437947827878206403181633582713080181591286733369738284797029449276633051120635827916729381708602813776525661229573656426137488240711783650059440099010386565398101878931514090298519425833320939664957670934060492924982217174079374068713958553867001663728312731594161714697705377121520062162911339288180375913174946071588453951344727026198179771691245477225429186929550420710435578767260205813395761376147250898106718693298872390110650440091634846903890300919920069118410788730973965413939539005184250694330851907177851120863301623434930360873860331791701176469088197268404909425294804659592819571267456179773999323297518532901341416034349585038008047810872177391663398640714638068786762512313829432499299201134185093506009972129867351728556278364445741271087414144437521780455832736318738049106485839278570017943067351462234595926732931314715501893201195570898560305600065386544256111186511843340363818123486293637169835289294046878750742154249662475893052147588844533263063283795755061074502312132684042481250894066032406806439695402413082755247636594163079681948651220251789819240167326929096641936720369042493395646462464836081202046567116976122184617750693776605987535488026721142202158231929163064658679234815572068917600046204286738683145742299321305815290120976837920135829278350090311693569390235554844134873145213129893218693258771214547730270118420003943948173834080188603319282175358796250736709520125637680820686832969138500871799257326007321420486364951285307065300923810257876341526789227710741341995483253088008019818383505043880225605332316658843754543450204868655622012616814156676421095795898887691558104124062034584073432894183824737828126353785129823670327396584556389653007270452997814383601559742932931670746983432016219936908102105790458746313129075079297123962772790787910070776789643104531685726076293391641582691409102091069668784347633766353437219626543985854812660620228777705117378113866011820680025347953672791858489984303149162409309029408296361702756848996110426632952540571513912458195504248577412581895062419500289538181656554986041126505460460824478808869734076268805864374262192757586448247613718436690396612074636648073605203470974890777304330664052974180555705151049173163226542266041306032122501747371380193297599389243950825135187778467771624628824173606834037241515189415254961342938451454746227613939971077051525265563315280771490585764079558171741832417224539350870099457587208863622821856800202221676980335011803818258162916060166968680592473724241192488800622831381478261884195710287127065839145048074222391929484534767525674015196390713932924744327445658483970577044066454072300283158513313195486042748784085317456752673378499680193903263838478674550484855626867612503106731180238489835676805322930625488953033576188483761719394085876003637697959143937871554197982784372760420118527181832840321497939602663609393678175970788704058066578481815116133428649955784049102199292990051732347050684213078066615694050253219136863104863819828505338394893170312400228280642647412836472955878213028519158614199675622066339969397707690007633282465091922927213468336785124805470504864714063643552178178994962807497917468498737432141439805086585037477473768860536063923744233455956885218510437715948439161042075513840476503132073246315413038516978906972717588657249252685248860728991904761624539139937210617860946559313180198384448841803484291196971488513659860067935535556257265687035811904531995992287034019951531745956153169517438908430907952138254993495840223112878040236556561279777051901934283332402687839348428548620324401168688278203392883492264213102631029373626385137483391506490502935196170536786501800100303776788925000286376994803929992844408286607624576194386114259514542330264705733723578770671640771701994252775841098080505290263336161247709150028634806703941018521629124673276696075565672913449350814350872283428723051750203488757345004504661638897814387062629202254137109585580555129814234467733662682787966929473759882571451815832221817510590314760744912061508915185194725577267916072345404402288617743667330579665433541190157949573864853667995673292593278783583581301388793849429484005388539168404806818413283691879875405829432606518419017112319100062372261955462713199906197765036700646212498686497126784906114005033035824352889035813736018357067187664013753508038540709791932436913183653629815757819776171564779657354025848226597831730921792808725623178224139722562808806872267173478630022847648634932865958189384749216558200723039275120978633959254417049729839710355438902445019706537905339592117956715931112350918490584933825636677791880158246102423236428447493674418399654872438529683039778884247506358234874705890983023173154630641065732184188758380786233481213233535334727221537188074628803897065281199347593265552191247968014692420213237030688270094658076999085570143094866393016165739455639762829262268094978039394779708877069151553048661264662232235397464284109123452419095805183848509526526193788106794790663963005145578858262176791241453399156230047644901324048758473293910118645280143510825691618986779224533981947795330662120972326256949925528380992562065252134486154067752140150958450268984694421137605740536207313746589328543271403560909674064714256591459737308829904212989647542382515196558498560419822394741729265490485507953510854454949921156527682565594890326204830559951653367160877706185051549518723947030807318681266979839791508953460834324516707551704309973705216535253342078456526787503353321049162971476310876862846487662881316426518430760962126291338149454250164443012846680879469534236139689802222117389980189613476956347023428731649465984929217615872425688467013350491517325123701348514917439243831802726962537779512380308703685516474325807290822818863696441712736198475243476066020397035833358334024118029599041245298865741685225903584899963772417027910691355017338218252268661161818758547892344163011211300937371831661689850169505675743905678413589194721881918322020678893634304113681164740234808477235239153742262862307395917251730101712915037160092153118675618450994238284558032857980587123066923831283882125379475233941898256488317785455441369380898081541498368988276108899581218880039067661917907595596693121478033795758494086706695100334949139045882338345554901570588671217404554925445218623833430072667945631696419152755082519335145086723604408749803664362650546283161671405819737582387721590056590282439583735851229978635929754530465998981535471642491782019973057039517886096656290687664937069408473223571102740682352808698984088371428261913916543386660828285084205495635539823333402156607529326329978345778591097055993993495432821350502950881936727581229536828898218338236141368870830604217843140500362863757453708706304601207541419687493654420487706204510599103947966781871379333478560536294890162912087721602564447130404853791988799559810287469872298043031919061432317409602379620803465415902213627843730783801429852500926784375516695695561127717998778697114287395936971777184066515096348596815782802096045511430252860479828247495147000529035172420040479399585067317397409257349935564519439492920697254101801950980690739286798209054507355537630218805730714684543820112323619617340374604811467793839493788379659539795891789917688364252997106293929377677324233753971544901223494429815574746794453704306367504967496491628191565970706226594574831592815986235061578220469144428902319393424726315675271496821304430753366588285181694474426262702849073995748787157452600652732007274857890158319454758019074856226815784031618009974908984094396979890399465539398191353392636289175795453606521527821187879877343365050883337202941615728036334766044784341941408845336109926760877931936411441297100913012116359811059639415425897993894054347486097252430634172217462506636433394623498272963444739386528217215690487363259282201048566894274415127925043542617949248406405426220385408865211307863614598420264740721241219510728640306756551984876801429833050560630922846055996902056610404632221087913254174786636896227140690904427214533901463313145373288385108336751524741601510329455924098775409550658074004222537167353191511895936576062196142087183774844351019334381837722295058267286962156533573076555630925034290709135914300307744103703545697934401577865503359309978855102066583638269930739701541296681215819695802100877807464561776783665950816256891213682381798439055437406431400252614793534411965206308703909522279530186527775281181450642804656702223482887053430427306106241775215993816972924371496521035425724972695516371273949138783173990721858193079313028462937054571756055369327983048906816759941362098486816739457354748298690392915526215782118976081105430556646689761630513374748561430494850704519376852791208056497779299104900544590364983592190629368960137090250156415980300094880317377368431743980832514758362959013450821782251123764641882908389246512885673696394079299081704648451545505906209934004067730650473601958392295929308514915527923690875022169876729781839604359953500838680726178668961683175620327511160388500368505410019018791688629519483337201243144066880897008353868880047333568100133432918990554865000827759479739937204674465671990189421015936400079346365680685549187577778661438867437934671603577164242355604272643110424558264657420187166668209137114685627321281381853817733899272724950750051052808536240309216312134307073912487242764606262313698474665181595093798799129783284687608539301241573605136484558737211632036432916847153735727043259291877984314628013427922011718240941633718281067802037744826497790411472582660355102598739362172197918160228852220972978276171585159594434399967633227483242858664547726800435416818788700866552339037920626942775480779790656001925698194382268350032206767899536344876186883768608928054471906983494814452423645274133028260552879916927464970916447161189525154782599380013867128304385861706291852982792530181885259385854305047419442749400252168818182557521997989260315372004325169769625830369175099243815231937013740557377157717931918935519324404937796299453989262357189735333382330223900931465281991784039495771736516499377781234976788320329164959937094238741373158004393146105805173742514123822421531809626550217682467994690113722640557704949358501018552270846056594034095413029500993011470727291706010791290791664761311133783688452924200766125276665226811335274782205746137004338533668285906087942769565898854950507763709526717464251498227316662025230051166850325951022445720675528527610653860913115009711084193287080358034003233520418768205487061472990383691749413984980642992244378130283134689980275472925891056546809809963866907901169189018219241221427602400965446386446962483067983936403121408571801850238092041157211391595166028303091032345380259009334019660053730286564817592400059582774601330990480823843300409203721316730430339399943995623296642620897047096081305641599202850716317010106821188297539606103384650052753334446882210372620824786701629029498247171866514502344815280866673040742534777358676685663983159332834919193327677119191665497760646292623325819407511014070089066815419240281580135270379621871467703511808138222266179661080244121289831515837423740286936953271094216768129537131596787635616116191517396444978600000793130972557962962704886625339114123111714078762000107824939421665695683360121896596331278967268066659232351100876335223841259035233619510499210261669809756043521174045620071232594192098470300141072609303149057995082341007619538623507666536091702300442238365059142838266490540965015680012890008457983940026938060052181911266470892127600215706893326699695770340924464516891403487627704923221206625776498447610197393211342966617092530028419573139920416963248232855413220932868982898523904472256855501174072514647706920588609040045279158809964162001875808864979175725168408878035062231028036251359902694344880033337378824065694190632084062254701019848579275292752140841985835153725768099868374447080197742870286412750531559151040758183789910648067146453226845675507114088342435365090372014832245128652849073326275644622604254333788557239089358994744693139183247742411583270859301008545173943218558319312401610083616502432572883966285549576698555744113049893456476965231980819688404154518881207619633150026004371290636257176607340566918878557181968395822542682895151215262478636655187380801404985840855782598585787667966680694565984166098368466432881500724420487763569109277120146500450751509035461385869833441955300069328243700672510240854062354884088520083158706128572096034212901606527801686323236330754551660629724882167040297497038379784279445934391421938987105323848569394979405242044007085510535016359738378350921296878451302234029958207208203733759670755160621621988119361908177186501378564372294695533481825561158431384690910944660584765037168352735355345456838642751318835013471868907166893643418585347201364383328564225554457608346329507588231075478994913935010686797911918230844854101938048780285217563613055219571946760212045839684434379277651485106879295933974078908027095475354654168708197728355599204602808122855984336748818625654875461411284998353375592868963488997015058137199352816512126848628265202152432620721283826528100564405018497877039256656970903491786649903768914830161869104785585030160685763000389297809872628861941396870690639402011146781576268633026165453621254196676998715738144237019781392910974082504182353198028149916989632482864138502074160108262400530304365425424745547510664332914754180923441591449498056903701972779557747687347743740970788903696468988402103347297086401423216061231256759398537384053063341383858149924316628070949067155094389291850112248382848537769831062071464255956947228610189411340025225610074913026418057795134513399009038924512609131286795134355295520898318821041483234589218870252160444612775981489083619569310504853685229997283256634405382892201921473730459260724965488757386668968438002082885387806846149941362235529884094554537831328502437675790035193479488825954893223453981626376023423384003571288311132132173358653397536968308956717407378359611806329470625437663409629193903535718975309625624612795257299647586945338154282103569568839014523126332020598374553322016019816849029382254142607488277707300576502071706370925477107039091758763702471571634542683406169904714960163371916376886754471913717928022732183257447126621391894959512894009236729858945531994292109904739463074188905887834556313169765527516196404806362884997971543062067034168329278217380973574836565395739359851143499607638691562976244001505001840179380506768431532151128146199170017752118963937534135162586941334363920870470124445278298682885325629147285527506634683266166776970082001027289482270333395699989397957837055799417870528486009000423247118567926884334183306652021166856336146830537583275320527096188261333030130670260884747498103222391142212932259162029838017586849361186916786013795912693007108116321908741615731237834287133354621668838818529170658515971507781208258152530017690697800723171973544695671373629995908524202822161366556511407439478122685997480175902490594512014061521445160588422875262034159355261567680879423768772545041120970864462941295126458794612439554348585925979235455660451739496817133372320385881005613437346221387650013548742466903266100235951838794283671598375669614731816415737812438597784182185704635163816500917067232436308698423581885329947249186489781416885531171824514084760064418134044624861673871992627610979490461422927471307547651760871556917644171415759103336916698232195449431736095207973446039326461636175216483539435313542318053025168828547689585794649031575499714841273861891774173048358898079477782249391631583943119842718490755313710251057161996090468472224811390267990823913096803106236449838173180256521531558968563094813354013419442320770972627369327889006089861292905452182292206795768094338483427000174177465513520518106166459429896154401903607182712021930348771525901418395882911207755986886421718013142615952766417303330271398744902810180808518194098217718810694235096794262676835849358423358304568219294175887290390752864762492525309334770347953153094032985130872274086650725105467960690463579033645106931993589614549493220722608343997719952622867096198020090020376620093289638841967244417739093403744074571585078539830593725376846419966867168684436614960525077752030045210698478736614880322967067764130111764876381876877793889340053772954983417765118727585887073148906718864341784888643303876999610482059229824837426894561353392495081848758416230062041937197709426227849915536576422738931769189295322167288996563754813860102788407886481482710307199796310123078368149120884355823456012592825040778692833536152342634966861702521863685985514777151916593762457254418916555269626952335039321832448562481524087599346588977934111382669854301301267072189201983896550938090714084270811988011567694871084625225298852060171910756656624418121993673277957824967143470227586415164595870977411264920378045140705564730515684691864380992363194027289179953140502175467830888161284721745604162255152509568065438111820688180567509392183896054622861284097330063064729463457190815374696765864293278279899040668069221153576964506179434340192224944569783081876678107972253122902196668908419426476249284514519003154885193656058901161492385217559564931644748135010839172256341631104766750706969069777473219645462064637300279552058422891039660022818349899776305618367657033597724276805472522806927210966170816712874182846491028733352086058981495106886246800072868003159628812757196583700028372657805982148667965990661986894621276833097965132007256732200143831463005781714003915626770261787391344663116934364262597427661547118569140783672258988187526731397835702417265409501085748305311392538523202941767350465553586745449202996787589171440200954304642089354336571354660542119206972627448905422621043287154129369740048515683646432297538004627415212754913054368816529736728311702162278477540824383169430117404421210228001067361702553373662046589839425265641268263922767850399832949083931414143420315791774470720636931713392591189325317038172777678257589115757900100750878892863746811250834179963645646574968312910949397762457883337729701505735562795298685732168542400686000347344249461289709579569962144462061188699884510092497977998036067311958395125746065319619090423189009509940056469979774626598462676614455781137254664406347838548494590053469376436744458412936632591476456730944783242877059621597163178411385290738574110341838764599708883684794240786404181430278582654790073087719131369805882710360341389585276641074199787379016473630295868205622080097257809109714521603142651816305540882198973363995299768466513573629995881201632146196244644227798695987637262963751849087677596012594173646394005556178318352398924911769034598663274241523927764677880284425542331087755759372983383426385568154750559502604041525667278204409010293312512265092489234862085549914711448584494611920691532292669016120198363965152384554703049276278100773502351240710947019356403565195079075228384917845498495911801198166994657350144288539497232721067770442935459100429364064709757699868013000881811204790275448046207898469042941304608013534289518837488121039313764587249304855865127223012405512667504984892827531079009211233144175924211742104211447571509800673224693552711216411166883246817815589812885360187254850884246815253368276543631189081811171231432378915999733860868297252305735079842397560835508567122788694002916090609709321899783288077222375693195717017082740963333295333268829970380934975767431056493216138238249279515189317020332082032638085766522452304530759646166058021283885067520001839336194216621378661915924359959892286475279430843784361160507614965259816164793633427562539410165958255770855559495801342680481590383247460371234610921063704111688681935791090024846965956155122977612069607878489529024879658490355396964295581421688844841832160333884145647146512930102486360385727948199285257883100582654111240980153485228197275320883520777052769696432504091444440504476088132343425496092848386855992986655542325186554784102722600386945118932502058067474148898261196657592878073497334209920382684531562904377727914322590469575873327336340711787330854520914216156870071677226159286829575013049429767353981871820342500187374492334149855418048345444397834926036789774303180048908786154872330928905952544214926519877021357694635389150786838064356014584834143426641956014814650867763772991857679838856158092937408526163686153311096228061417448874049713444714484639151516484179194048320968698148266088520348056344937677238480772857397083272702261675366099408113168391439895123694925954323481219414604846001902146370354365587454266783250572813112351738858621130896720140188020625004431565008938498247596516497304437745698767224970122187574374722926523738885383666431776669695626155294108698532820472691870032095787755992550074444331080855441889951940725710999942383943068465976888789337657977781726473476386087679149430214679603968786478707864878411874545971940886354173611099740582859816370693559932922307663249027604284804847050774948345617343533372881762375958772037827927981121835440600250566778618215213915171794348361465828126047721575132770327194325717225714708776519323842546439905028432116410527386124174009914246066706044773989952833793116275785339224051800511515430302417349288078499119939795874356153174852844718154073474938575925421054937660733603930102325258009429993802065586264970004549770069256777293676206045989924264458840159621246646608263429909770209578501219325410464573218714453799016133158760168454090975780760879087578590637356682513414800744734899898789867782187069965122395999826054058600284039002818241423152737412792410399086016591426976665975512641895232187524795354631617546644175859629082862716381889478018573690385751892669706961250058035643066569090837376218033027409960305061152691390355011965743527113887168335698207760942100973785229392449887530908158480273286737462040006981095366844668935720351356242557260065508430658082090426161031952253545979018634899655285490959740656046748266302323403426111566352413753575010051608141155450630180381215366184290176994829918950879011410713528753678305178506755689283207150311905847029324321098953685512662951213286588045916562118528536181301759483321346276599021675529366481712836756430425482722102405514208221916798934530875284745565802538077436922835214977593648529183268813980087358789205552880207458882759230900007170302449512148184379239587976519831226635270377410543331009591253071705306264004780978948673358802299373687444319799692022176392617083652092248389942591937720767297588418326250016005679950449139907815885981328423704343634621662975324143762491925539078105693957851054018484747010721225117040896380081569565157364928904934543885864402559540222552431366661119225683290183017456201197875396053810812604536544147173317530856056282300034456680972109992108430052331435086513105855847026838444208553640416217422079032141258993291903115377745714406915973237488595961413634452221135562507895485656035267950651202199668075477497659449673098053879152156451024344125070973207373944768495199888168405578359147564302543924377231450931582128441968401474235943859320230138520368072195078272755591607268724310319824373886904140412430526636196181284418150195791920663523933778662225748597660033782448141514414353971987097515577945916763475584742927299360103726297999095542001196575881482391364222747405881715634364433454867872996427251387984973611011435403550087842952155569654733498125368179162097008495155023235007281622264105631359872734845293729933947897996001477586317816430120032685371297325996426368426668383788191506564031246765931440178888689792199517070127575327617889340391413238517208085314013602042474402600859552113896018112289554621010232866434845293345016604683810372821190198940615727534309321725543067165509518063532318598669282513242938042083675582936515848619371018471402735803658578917940164220108361929015467504877315657642447800596443210370570219468131885785324441113358218321200881332975465360468801964031161146869650823801173267944548451575415209314226107555046942135996115590335417577769746100535274988275045593214833316115784663474772410880186326194357962013455786760147364772575557338477518433221419869413298727546214183262953376351205027471547152067659656438417619593280902277664781410035038342099239152797799319554006339953336677571170103118107722744502158578175648177823779351705680375188830200463297647894040508086302318803322414344556039256894568145767845168910284106778756743570015516485643111632346958800276935065968588421899520271552704619320897202145922408866643410944932243706095189779409458057437237870416870415960209044391087014272279041043805997355391269119752756178968362127561592652058497079290255045349308625994841224913600687770606604289544517643440015322819031901595784536618382338231963139205363436374366076752547422942597019988240161195392792997046216728014056080789423766658664786677450474076976856384577934621914751932119595081569452409284944642830806701519148066735406221270737228441871174975278083486022219489592170589999765752173476020652175404869804881778297950373142154556540801109302901347490578380496574450351897807959133212254941013976003632774662586153162015937725435993891236433312892216871329701552835014008768286486086894289718315319110539488744285434819069535272320458650016835969267356389698552113535941394433446072712092341764935268836925962681703147268372065647920412048743444117953167448368163080948706487028766238010072640794337753613948378473652208034826902713303535323443931029102318916711726259163261234661973406643726232503489334820855797918236115505641188877263392378649634034455779167233224276088821480106104327621943633981296486872373371132466686698110498452176473978979737126136136525980549739585184141664099787060557549602809132765457286603278303581819951234602588203192232455018292336654719709319470599184030485597573427317344557108045604857914404225797467746741643747109482424227776932471778776513912967178276899953081833040907674425572039105606254030751032097085585808511239073541871033733103686398111866544167599713415376354400021867540458904589445383934367614510497891081113622062761401781367252708718759120980610106421565751173338229578654586118029200900170541483199708402965719141124929986487011515764024218232870295486811636587992900919818701725541385935624785360927441745846060484938400709073082328596527177595914209674600230423095237275427832131236385344861374997788477371933673775983773793730936640308921389772674067217090558504872444130948662193298205611411871280892982130773740535049571783736206927285644464235282073005278936033250238518113746458072577975324007163494905980757158923694781435402181298094685132092120783470930664201558740608898766662967955165819508127727633979478630425964629586794947596960574976216131799752424842952882366385386793941651759700558802178106945716456787471416171298319955250973254784292882283756393955750132141539118847502051237749883299719907045470681644462528047645771258356089798139045788971358409081632391037779610918785058700440831289635134946617402229110207231340165443003090647690077066532100619983968319902658021469072837024407045544315948168001218147573350235307507866278347915052255391512743812235016468543279074809390034314348966687679626004959977961220667090314546099471589382894561971024054176472741416527763774885634420729310479487562893679362176656096166062447335035097672885899340989890297169888723693492783543330321264086991025373541707036249314883275415246327492161993097091820553978122048750321857604980781814236986865380955888970013303735198998481601247334817779673590347878159615502068942333292489058867694895520281945994445190230777631631927562834049286487363034446002289789037753283027237919238314285609164834033074790228614859165591347254583843453035180697369180113464980395262321109238352423807030409617023385245473010200338539251644998659190622499803350419739844722465702649999594288707714168473044300761505703886770812880829112579088989741164604887000444594004275755381647001967812512346817115617874810794722914912686510847577262762821151497541284193615227071191861803905271084239858704315795050025851579339755842283122564289136653322069696483020426146122652510146833605708522122796918657154194504767856522499268781710646389304489432220693815563102514017519369689545873327352799040687715923428374410744702649593230836634103380370806489315696116514638548465662282316203700379756758336789322004161670976883070278411151655835984305449209083229907575580867320530301611063095737619903757701350015847253235641514010843862763029609117897726599410500534740379631754233824456942240313858322841830177765351978060097921631212648250886019763489651471725755031931009622221163864109158333035822209629763960849648438349518619098655685500450813852104582069749908459072836284462428433819060321619217588595695948498922948466800197845977786647484021843863349672576598009248293681754548304811805021581552255935101622198610137293436176021578576928273603767199989259993462355402564680680321338831475034094608494239008038426050346997155868931703070035933085486782889951150864543929398922141667420703429234346190903132762946162105066945060064257389458281267193985753510504073311434489628686605325962594864879783430793341887596661607281796584641961212131931973627386580790403623600720251226790988379851644622438390870050717969831392217222957345088298178668145252236854295558704547865344967692355296576890911796556335271307816603808946666859754265189216262297935236285885961071164782699849316646950692615979630786198703073606935118448464805395294292693439789865303263488622488750711182661540176092872257163411263081871092869720018912657228238601386450785176325629227401521298555779582153438774854381501136325195584682672342416142278431410531569828802079806149481801003431953501110477307987763942486841060831517527354049836033485606015326163835883771734739815117942854692032644935387163002584734456087587802102277899107592405209878471411328315687337089507006538676149140374295871603168923871761871766111984786958774451662042480633399776984686681663161530080685328823641220328449223142859865049606736998795186571411017323139400841608931925534058761309164889561662628640086599222810176254824693334588348163518787230875745850031599780268735821489618316546556527630239470375802354868998205222505297705114836425755257664811682151246416356442310913533089288740962701266321559678575395919379604426115812082935435137459810986123646730661108817965067341055819919302674188970077782914124181180365932740069789811373390639060752414057990036551910100368614517546866295479962026643855258833628598055920644778726937045590565771757265518564872459072129673026879427607988013144283225344691859428749113133942736151747522097372527288376097728373993370685000999566511490639754171433314714215653054771335439695546724560603567312899656212755315341039015194781202357906300749087389813925884121314635301277336246317625162535163907081354122953906463864449646380824910928632815319631821724515141216591894564833936439980655476718833734266603067585823460385693518985709109398744002597160293962206245823281797026270311717525851133877662382454300121874805448163462460794025189192401735444697485703388286617177024741060599513690253342881471214811290142593248226744398653577642527340413621528214074054059453329648354871788439966732519735000494470375154397355572997162051561577790919106095675070542160858066315936248007473351236914019079570456918160267750130676275508390515902081994396949371457958130418998417049145928425049029594206151611876476696283936323252177488049749993296053640842851549045137576396823767415517457649626076154171352259745859575901798214533413379502030958401899602391829094843154616047650280648119988000663899579993250474547421223098285180704467037076222383088352016787228171962433458539874135895870088366877121855976368346182449783036561232597131500488712110686331901454350959929351750256428060109331883985717898938887588101364973394583708772443176376031444821013133615073089055443720509501947409012750341798721098004231300714831409792406010126633226284021630152219155756167137704395832200415080620306106182239789138896859678928463232846389349123753707665735903354024454098174049498694325931597514116000386058803795186697826667236586098799743154865081779649298444447129129684682090773639587853712421152749793790114386361406067798439763566462361223821675232464630497227887430190286624673058775619765229519272477866663829388878121051216137097085295171194329214437458827707249753239771880057585627501422526249129215492711460977978411295444253850480109203411639727228292046131207800517427436720429896633470568539276937010012972973085064400926845568952314830177000910758684452479111635983902367142012542738370213779126338647060984422058794055749754977052096016047774198233729455904566767871427982820056613503955567636308163765640534197065842780511996060572231750406276967626375912971245809794774400700820907267911201842618399474320288358759753330606448250987186635757370491983472879703969423913854560250127860798975432216945583286220802430975070115877163952324511681348116594323688283646928214791961643321319253829634372078100926468859926948840615008013411768203334224895630538830602054409175690119941076054956196190715308525690503507935823421070545764659881107871540133537751900776971611147604695722807078504332261051964760066788645394827762854315738423584043543993810464500435482906364555227164342747510056807729403180047115202225181665509052826446590354167299733710188447747080466101159493441767557889980915611207831323653180891812676260456038684874366836676589008291068437776862937830523351709649208980166285499980898214757412147049117891741551816176511743430191106820501320500941757375883711793287835663724412175368963377695336744953557398899580746960112299994503392907672788302959037492072775816901328370394449749916554153604280638590001341514613073888484737225347638958140291291931679028815283412644837148476271790834857014157248877606470281627850871704195056614868077221928809710044761029813822016142748548917983837600271327323098537223141565308270585997166784232116967180233392401053785152744060550967811104538807515023598612420175011992668962770030208246225932671141336686713539280688664553141911177650597999428708446876966739460814046608292210718637339064942753757156027302205479952485687111638799346254528199358832880061917450634541457721977873501975457088663600617208326637380293000988391384995920333362291306752427348328551736445031003314098329187966824228834238001921968412263523730841962903601290218385416687710050445376163598993580441934450862234298498557598528253574198372864237508857217997554032876337746821053336427385892576170028336387547700440224612486036755302493372328932116470699200806493089905007373103601980833506545701501237702692768036262148614376221717364020313808886224331064897614244145554355286985535833331176366938277524275910487277636362913957621584690467521383539287955582015621480357122135849366801011976128804955595910264715823525641710801404391720481640050511715784127424757560342391732612993838845767934545733963824181189861545893663883624643665354233659411721004668397586072959352216896194953727973957050152728755306405621839504423926649364330123843152584646290208468116597806778902433797661222169323490736097200500375521513225714240936060524632313363692786636363343721451785190628487432477737983884461985728428982218461503741934864183368126038183424912531362601645563379714098346162471418563699541754718172717361781219408330961006255252134706041497388805575051230438788357919135162084146405856643306945380583339528960628213160849688884858543682008557435725613458015311716046700400846945971213708746120876792780738570649366816867586921634576821637014245484804957897253313310122014412013529159851619019674846698264873095631940243154830123894649968959274597640623171464741228861491097414753817532928353427198484428305478493597265427787822037197822170343352229331648215591551615876276487787906526982099053805821361728846800974933457992823504535864287715240661336759012739475431475546077195245650394496807227902315755869608311136405043550266649742722108655149666717325136310414087084024645570299260082486611761635791065729324019850592783428651537143365826896455204674997932509574598197727648195986752186471013733464537690382918141816040189975978788562606260607721318777305957995515153154654488008402022593057006695755688073766804264814924462276979931659906663157973690435182948953496887476202608921910281322603311094264061448040645989159466258215402519568427834300609874968861891360465155956580084539117990140552109094895835105293776566184866568536464364102455082703560969423171949515836655629461585245747561094231498428650360313049021182685674062064112855200014987052124267230981514139175827003322816049459583723229034407299526044156231309443997329119914844473441614464166722685461222759261284248301758382279129963461679920935140376506049824895983889891491913915580636367213539768043096505813985396056596684729497159104516357849765044215166329582434805360039002235547052860531176828087427251342678243895274716482012874577661262104904077174323373556017692441686835257701368867413959409830338445962841292338508530672981907297642424098408009632669033927863900833924293911020106390678318966497258073436298927690868543269957910183609462619733514251251322768557752536456881448537955740381156743342234467958135419642066506621817634275274447473593924748941004695183563960849595865146979364867046417405812861899807616456202173549120307269300588779305862810941742684056308565584788552749469705971135790794295312410268308282822004826540289122169484371137849668315700879732464444332565368412146061019593413257318869352217887841481660157445762227541712076109337264145154097056557873397559714349394445447710804026600981996847610126652045382523744608962391865870182226552657253479478342326997805046424025196748508463937936215966968475147593425653283874447506962235853483201009350619426990710502063792653201543894436889880396030870292994901437484844440329908527492807249500023398949103583377129170380802091146295040686046214889231155688803952606909978284275515622014985973460530097119163891471991129359978392269597554552663328562290935462414187254200503996249010661604234765871984182738966978311502629034725905057672782065119216093495745351815770107278483645878902667167259793213506811162903138750203345849841537426625381842162093231628997783952449769364711760655476379625614810505347342601039593903587076393234447629585923878282707210665377459383558517144067948537822943968379404574031315817786506673445593628965566320020989132322994150890824093300159766775247921703724115853734796738991653820442166909285893320970500127475144241148604949035522104425525067265518950643354555384185548349607954062911651554534305899482406389094983548110165893786258800249790725997858310289008132564292121297074509112351691366154147624915070968798353997069513678533586212932255578748574213936674184864375740276974630422793173685684022777131096172025528100643405719441668578582328182352742964825996093594408484779528493469061359091698385468414335709736251779706747768967093169933149670444272696188896243407992955468088240834059714169487507097484264226682094431162685764609517340659288065144995302226476886083817570628816101085607379898230161447572770008973298816231579374265406035455048245938417094472922685522683035355054611026067682325843972727804826709207025574057123004954169423722638316852311840581695103185106165499934535086006903989796873199886690540216859993602223906251765466219352808254646392311251879769294334225852132479948656591110977423898469973166098364401699792225511684499770614633933824118420358117699327672097146782783316817559864536617446524858741005506477102279193876214975415387597262009621469867716598121004670642702514404357305411411678399726467756731493197680403848914743048941107324016962213274186757516164234131957993245866321437817893658670438871496890366938823602929798129206319918306018996957982941850790073617363998003340587999130408400584475953814461450134947940457944419796895027289906133699931738768321823421515785386857841505001261602395359896205092398920452894017335136174328354716434760804949721221937209706018192404555216088046805137527149450078380044353107496035768422618812989438278625587325169819603485177786423432988274718139889239261050086786258590792734483531036314558595216894776266402568687372032991380729728600206607911499706720283284753773229755108004290206253488111525801359164560846755997496670249886498978249354326612718052964173194684007058015095249198132226983729392264780994401563747940812667385556637732673433710110132286775100101100827712826155407803348233390404085151583977361306575168086262321229994372590572169058780588591563423783596698526800208900197593061569294810373375382350848077243486951570775202761722562642882309758307609311865482791797126649603113281944437430074951692397921593916103857526289096780166947459149879454680214903637327102295032233284340278824721725364878979811780903057677894760434441585934350537001367343595027122402120589806653920271926428519022535735302905642797781083455410167478430894026070033631628737463552174595116730485285774310779969717474827141326449327202265116706053102857490409042854454035606780503754170237365554013923873735133355961228763018064454245650349762927584066513153718144310980637701812029584722927310464296947361826048672085026076409566312574493839329499679857150394518735570054383139991763509814594150008080386862092142002947008033280394665097255634178897862633020851287890409328902079959914119658315303868813057110174897385582439449472895511176834771522780672368795412083424819145428874153271848858575557463586661861984900648151676938954137996392372991651201929907415220944487909268739123438959569050746179302467126845253137996281797830473528186569894253596420514521188198197328077264756784690591464849699938098544332593836717016473774349016133714031585627879848861355162277716737838828173063335647554197190851643506450849278564352263575935557259021872361876135886940276926825544180082700869453610924404733109428391404354987949037980328612779254272609745300547191998963051377720915706689417199290455475500565224741892598979247337916447575702528894803797889126302256097535369792113406699097774966456960829210373459737349951958078627054256560587455708560326891978521506479717001920841784073549365552446434349354060583050817593569308613666734423135517613168910681447625489767161381443526359534657177524336354387762574542576041912560203843406882750716585405407105659983622744801577528967285379372269614982922712846347966854786247656589234694134807792865534824676410171754006436217103555261109529466871997536071771915804344985367522520289495897062415478494039199502935906762993719377073166438015472667451350606191193340165507002124478738423753509608529518340384620761922025915232971690091712736324830381369748250650870437489054005268821936872966103366120625064384008605974409616252553263042240749756579020605483803432192514730580667295447160903365299507995830659787108748903847241875405282766361410829496466268846887475381001032792558214516649918319001481415050873905879473270617605904568900280311217286975800377953607135395026128238733746515119636434816651774737396127089098408751960001430612960779256879597685487855117224681253304705098702659297934705835255786494914240743203641783430212785599478190403625216955755764881088724883773597344077933550526715451206368972878461590718274737838373734859288460439512588467703913924207877536003186108732877905163272110913696234718374305646272638760938105624069201848046819710664338601952438335162439353811962737656001796028643443463016234820069467128382272671086185340667136717594776244036275997524476755250470611610611721403234557299631415822514335119970971151526608031255264218035638405671714602440378244724542876536940870592105546173866444499857253121750065209435195720854166557269021845531372832819337443131762252030733104065103678327558153237531151642634527823193861871462969949537898007107656488609845822266509400915366475190057146156585943129207216635344845159830179207002355283920771612086013049927228732035958971776500031215950043148371949383966946846351633908273307828138038897931291284083109633123180173740622265688332077891878236463688304803647800884501202563110015775147240953333282652800217717600828793848189735034654906853562526834095330724201397015159724702051236386716725683086654414751974359098534190542191479935942245523622755422208402673983397858895677944742130745392383416882197029496044221085731532921436078458533918285833806896895793919460403248799307645966729854547318313010681041860618909305851587270010866145483148223649899189572558937207288173201930225187969167226304762799940236134813632579537606402432914190273444923306609957853736400229340350072697788056783570565677663935344722557936118727369484367450890082344217943880756763974283748645414240359281452159886824463897767941880265771490777629324044293099006252832916388085043188069721826355381221288176894316300798473177946320881390977366474520734569697068829420867331828001823967784518127574720989927806495400720752665188456821637211242734298844395859548968976692767563070925117043930409464047412276776920387333681597994579767951574469288993571285721169370704914322200513726409154571934921940125402119287938734995608802039299920633003931835826656930596951227168735477183374080007580830790054768694626663579915316201904816593333163550054413015842147131193928270715242124248555560827489783857880806453740878570283445832958548063247125299306262152812528028276852183637787444941339265118401891700382467509884682695685752546636435024036137412919678199502462925676859606537907210678387428698380714439135561979563086234530866865264603614237424859385626050945092370236765010463368150262270647980494277003731578012024658998017676052131098980096512409101252015202016807458193936907363824164128190539765497740436791423379099178704624891933686323013072322895061100137832742727739547956762083391111224433804465507704967198486055837838782800367014493251897539905313581434483237968047390425178739139837309037616999043457919694058562990970050845670053755128508721368933905901577761824627498808120365802859863673948191075914290009343010029815534354768064104379815394446077884886597800010553362679611052687449395468957166239820362027723464824748446037551766988207517791388859683378515732287379644058342212776131243037297353797352942749159025127775767055641754201837743992116352206049249234504635680406245443923316669559974669132638707675639377198258773187083704295807764638636674777652102196712737274508208296881056515730646514269987803681361308658077341558356292529107571938566180180680780192360033099411996176094567710654794077102396237997674459089456077512662664813103792709678055091892824914373784165518033641959813086936050788699269238948784664444371534383792525266167191343853001565543091456322977882175593620493109879483145257886602028385887323431390349754160268056185104619089676791998192270020083637957429615685762383588550596041855102086661236388939456482192382603686520320359896669544353954813659018767292913323897157076270649433318783802382116142125009300608788097603621860945799457104245421153493240246915250835002949960246226186711913351949598580476493560744864460897362794279519461452933499625643722864522422110037445494100863010988150214976321872762435180233466823570935197097502197658555377585613249729050905664552279051847962897894904640377222561512363055898675294549011238525353478562163466214231318017890406490603773865152044344967525057864340617515488109064138210590703338114030133670738769717786984803700833992142199434709450543920939148128219481910343042142432830153176062351817503353831932719597724921944337706106355204865213757636813390706579995727173124410572860023208085874980675247541622845542243150395782670318177319830772900211276357613910868996367071392561267213627287452569374308245003855404973751265047731467238294914185695408966497733482979670535231241163276189187159443073668045886750789948566972776135638688313919881615253538033014389028089195445557228799171586707713279496422664187213954425012365627485996633389575687964647773638945677687862932363988427568338955928651684736911605651170771858060578427887866426715090657158974531442485811055402131287238869836312406585025881788522653446798111841755643439035449624255879631654294296745509619212084888824168981227254277907965206973707150994638295434445012641193339275042780482958843602752247254914538121961680102256390250925439404037119594739318053190641612871536330374865377030718585295574973243051147139232544343580724223255597592398446833828172709875281073396069244361621579113866840231238560698473808803980863421333336203333636480976484084678005742807962924156100585481003591814386733193930423753249233038470973837428897535398766649018214096593995872111221362486592262626918268495380078988065841378629558023247038332429827487789323869910675577959680072689742343519311609099187572405570352838222501798221235198709176574924625699274552896777679850629754461999316411897000981131921608213690416180864949324480857072669376459168097060890772995596171070965228416410201266739102723449207472943213553245561963845254164918131883049850350402118958301906869611386473208460038656034084647709872256468382839117977946153519464607408396576944728704436024690786685690645199053526493185257766344684407903515116627021696868803575487410315910872187037882534081279821332433626694840567468916386265308438656431435423228659199027702571624100108225014403705931010393877036313285619698282273176923869275335096217660817531249574209096059676571982726130091528960157232249488889867946864859518991158306196644904204289557430798931414973352470141235667753286205143089787428215331114755316462252111775566643110712532758184667767296517607345754612995586993479147209129385015503456177098041067555373686558231193370944332872168747548001120920824412829663291116580670659157541219757011261461755107553184366041342390042067059715584131775327573813441229557466967738857454156220049020380650108077637236070869952551352407088111933201709262121643113920917206257875536226192484998120291018543506807815408104926152908119466761741506527969332373029943703220693579719334529841950616484669093950264830703290108085730345884146510601997960890097548633874011992347936644525262503075239461008161784398671824298287121612954165610837141712953170291090117870219060815288534745779142408598539656681115757105484681002255705070649519281612019417226288519680556854899366429911638526250457454217384291417621094378862086836251746698133679553963055768958976789319682213782424268952182836928673259252159720965730294820286336473368053446365029154117747214758608950418924886947208960626749594443960950656572685790512905007456699892923703989837164849350974036214400863828165495677744917934077729023330466685684427792130213970015786826327754434903750597337630840374236282345575562158938083938088402824896454838537887763460942606066136330715016275728154469936030322376285020487845970694307984839011920862594213066751378676563337979625011105215570990394376156545671598727143216039260297156499572100994176392565651669026364925039895587669411303667554283177221385941938556702309500665558264880738814873413115649394079792681723423643559578900734768142172263601722959088961196423814675105847337606227272116468051042808043932546841150695062065956795890701097542792406308542351481738822576988436632573342762494269047782394770724737940036350743302076728675877782456260336306218335679151404588818433030346372650217517847033009372729285724200044121709180577080099959907369318284099200788548860768809423591927153551884388349960097627124037257253093909547534812451890433775407877299017177099741686842591933004168918624672620588005157127846403639160429200459195480287731618593159243079009202425080483373406781395678906735129294125689144447123680333287552963717916457588301448286980710818853701765051449406134806151493832016626893699138064661418968298825580020798537822116451585433312287731538668357649145115430717501758857871317853504933108841639909394645413413517944553814958553144724110700728443621036667365744328027013487856348569477433325555668315399562581075125221860072013251071844964131267808789700851284641559619558600926326138132487684481058516642563338722565302311503226260455287873956430605999413968241399246115768596131894572017941093963061141791161605335818564181924120033610691964621606300291639481202301478113582036470744579885692226063424742453903903387227984045060988237441727325503025417098659866517880869989304750988538324906821345949371746405836171169232712963978655819908011854282460302889744107233886014545986601138026513541640127255552644998718769069021528950933591910990997710315102204050993816018827887216619981007046350747954065315789693357319442678340511585616274627959067458770488354800427906583598647396437954607474264210427082200617024711157860844408208789012415382253387550038011282671188446221264650971698083093934305260354298629108447253573375909570770511009319732425555229771970152398668321678378803282196570430585627502827756544492231419394896395307169615876540651139783380607278022917728762142020054970951373713319831543295949785360369601319176717108040711265672046442128920793329387713793359321291039465504950333784148466017338675300276422681294528799334777260867014408851604588123738299079602878984327146017812595389361430310071345754472128964390867258327626068753055211252552082945651645654611873177930873401022346876940385766910241565199423244242347198976573448517846439568745301064934363031306207739808024193070089292730094791117545200316319075702898667792812429496808833017949263048819094610998839868725235055396655679175487307127120038437605067762436990553189273428936852542703471966629599165395905373087827170385914754269667015476034098211449612819315066542372736555787078427040830334519629579263938076595277622403483325649424156803827705139839669666480084499265594250402465189016974077427009881780587183600383640609416562204547401004276131334657314813809962445171102993811201507385149874471469863171286122173458528377272711602578650415976991347315671173890330059715500605793685948742926395590038666616383019919794951315767637441061876720652984616134879950847442724417178047451690502331882604537535803303601179288821641004101831069816532345324611702041674158844082449913328681255362915694559217083132245200653789949835105972671567634949412190112299627206136693668915683998710075724841674944112998776837871149024849247345668296391243330822820436131003360369606336380169686510651631518246684608313982399954244471777990253614223925219315046383385113897285218749715008511383944537651922089991861394610480370973286552716728606301928550154537109695806081229580884981417097637840079021540491946679866970705732105045792339999869899832195408568089293652550881638635393996347434330336702284863188873754352364464377001971536486033795727272799794512204646844531704776649558120463719089829106122914939845253123352445568853688658380655592059817973121434702787142554164779226831563530652160545222137618140094169708822145073121814109799771251574079513077913111062945858478467437117711210340011037947831445414211500625201569150377311305994457333868093625193787809447114667798277899004099155752198759649933896819523982190726327860060394006708493382018448788657639472637289826097587553007068460378605749004502840114702533019392668695008751273443969996488722418289498888409796474428693027779547945536338777214461397871042623141029045735681500094248771259529352820072285667286921712747648281981071432203695523844507484687176072846554077084459698472549585472370169004000576871052453331731388301865889860041213099750049609601412334618654149865048691667377948221377795236501018113823077729773581439127261899041768436011870381717087436665441872716302955791119499442331912948098011159454955020626942583661156874225851396482508251868815141493741681522858957741519793034871140073086343128226606867113120896442074972514303619512198477184700344226443871307008224981344198902008354202012923997059566388165041348596106789304331484779611144998618207698688858648356581110456020722826693527406189385249245752805645665213746888427152226192385822462038239744744789494690474945163128421725871845688636331612470576386629253140648585545395332100604312109967414456860086744559499078931843196482877587543542097675095281666925963163517815562085194377311664906817933743869387725568539285553939413822540834196399651425830297202479933574304139760484666660462174435484788052076192343330876263605366460834853131399200333655601139536804683397381938394232676672699606061930787348509670275629955054415494843539805219925334929529080423946563669594286799662418202753084979950541561168969695399899224343292425687662275124009796906043805463692421607526999554127317521836200285424393538476593235327078826247297380919344042113665636067250377422832185980403874700207713450645612283964257177259670893682098794193496946589290550804745173201053476778888223698765821532416710450692564594267531711053575468669129022611000516350731320781032932582117135580346630193278545569207633142803862622109750514956784498585909151985068020302041680135296628929581675155077697307662653559371225324864191485406122124100934752554366421394559346651175332775675645646727933234419373334482570025199647593098288250346759946801373398248404806085826360117770643850455024451937113768338806114489399052410474001522794723736966708207072384403092855762493169006816601849832015615361555973245260795946979728022828942617703299228555718117766725109168113316077762403846532969307716800679806303264058413813427375143705802048171732137397321331508719065451568332161733208043777899412710979683887512922317916939290780088085285557267510444200230260289507591328028382580637486325196094213794038804483516750404291519506643981456954622154624507361582116362025700913841168133659848599345849842929969406175049601579899062841953249872016905878808149421663461042244662227825753272584548193658006977194845342086963222456627498089716891568373290177613256826419194334737009701123937498476924645189162791031757509856053875279195273214322524957763320816910968669931259930519680377045857596490467895137180381199300708713552843288677280851081345700786355207915617775253621538073510382231448113431288406816482782584755474409091359511538784676826460044071727885841505241314555675710548570187467495798880865080108364175689885235582370248869805934625766883482038477194823870192219665802939192974264399784383373069228219609900345790287512264107505313799815428835004144642871491208133177938540356250647836486397186817453580789485492260853026776598713481419277727819364080890800411645909885689435072684079029833755252092017384317909160588445637520784490676115562960608824332275725613381079505310318133341342593794040091172882912781547890555979431127632468144099954495063913223766544880210298067265536086505927609503034718374720126226908313675593502006522248338710502947922127308104398100310456580202491514593531232450156035630657626780421355187872680457424009715571863275960385628400828349963166095587462001740165289107436004302210169708949134162315498204183678182562055955857320465514187855116766741952913932496476437978285349889686819042406009619080054431217375006800178407973972320165580334786112380412336345469792279780815969249776483425541785409701859781119331535813951585333230633330298631230310904878079554824000293648426318596715216110451042023423011521313887487334460268608807785403927955190099779384635815709835332703918180513461606099925563549549807698380106516599152260992734696329919491901248136954309765767186237858686012598912434159142499135302730891144276965222011148588334690310363487575018807345618062313691062136562377380050078482185487870566264613402359978608740994034763047454170692323626003010040123957599962473697579265859775160287913559406579632941892603866110724364671043543871851926658475269307664862139895492532433377600655729161457102469947924961141290886154885296915613770983289149165576746378658581707637362852288035233604863506758535295835575938147555112301353975107954013669844383136790148873526713933096684010527321489085719662873472018181083582132535731885237556558427198306606223148126736641832519963549069976510924990497716047758151269269287466962010840247755075440749941233033336578128071720404754136913344808970408936238584972210578134197111354927565187583254558639301755587989045645028870591336036049217868090933234337065906110240582857582590074665125219468395442508413734385679191516013109898720181136694638889206480209293202438851373665389920062118289711400047546424758354931444574130944115700214415280908281980297471141857911420029218220722577956242626571182612861124646092414390559019627405507624006063543391111559188369121754917659670892141332036706004799675047567883838836073745529379520733494604145034031933987641611231726632574217140372523821889787150737141276506345077698932103497170903937320308273299840897345632563909739228054861268933489854479089858648214809457334443680541856514958972522009952001285014471069044083844431549981009171613229764463751474806311660268130486312192175256867499202840962263785603950194901894256955137864771876468025401424237086815839042514362368988853212180911749468120870460159903834484924242038935490293639910306550286718186627839840745415481607186997905593697068545639007930069086825104376900602473120030183393225254606473859777560079255549165969681643132973674391344114685020811409406887731320540360858439630105461991909029101821349855713412032246366227529602279169788824178882815721818318221120255492945001150930357211242650121521115960651176226922588678039538489335978109349016109869638665185178729533562705958691655313091258265596910740204294518074382135896936052850174725368623415632822981300766423817416591782529964733821048086911301045828952131706400372767333087537244702626767806534004942655430222819365358466029715209692904665849718303990787525614751704645947361805506903806836354189432898085589135695305783016051822092830295873287456988256270849949674903256889552011558582981403591851653996484402562400336052305969529662526622698566430187991291176515927110622188881305473812833099635805934079394935176293971684201104899323526918556410694127248284041630261020415433265835784501066040621865927206047250408544471089699254974252792571926464678447692996181743098565765773626843126087216327857001018288735804354812735286454217025778114358668541287061833917068085550098757175379721136260517832950304440157446013721746747280714688834912133084585033281133907699472728688062562911789311271060075862750989788813000881144746197807929452927006787276925545131672323117603302149863921051126110274115562974130265525539131091015236417514421883065312119904100638186867530606316715658313951163472464289146819865422785832059975476560994628220227682135751105490310910954197214765689813905243839462190864477419872933880248570076633560575671812609563864302743699617902324325568566374670942265352293883535507586382837545679932953173204739209214280627102454550774358512377096604948146975806534641692159983948918385845141157132254346994050121060999218436112854706542867780802152364975544422195157167534233746142437113675001690042829377093548667926969546562458745140131576613234022958068993107019485554698826124690729540015152574381700163940198207091917786577051472675883766971556424948257413160305678555543382553930637010793603381960002706408723942484748100317520265788183726718633577502740923395284845051318058997522971087968283795358933991390280371210553637845398776430235684308755777107421306327153998271249742588398467014393063109186327490942410094773001610324683558746820918481612080952395614482251180253521780345289557792501665155336064096080296823352331722961191259862063019118757046382434997302246500412568556432582089098031082621962568369484788238318355670934601214058486512660220003372898694547055547740166813864779741365940228332983603115917120159798502021654921174077492231313275350977712508925923330757297931596749141554916150302071769659599645669726222694411011518491037410518372954146697879191727450959868831763632849901004688426738335773265000667179060625039035432218135912819974523576034721833931783378654500798299187647475596247226338376555570790971818698724911930150206764116326701429545338676490793277248718281624621978037185147848808678571284573601602052210223724741372528463834895580118365518198726755550708435083409410479384614777887219503170645673291502950735410958128287326580804384597759463945710454515655622568036933865948125924381147289020566064441817423286397405419204002804330751830942009166429005051926091922081935148708493235753445331628239955433901201043702230011271352924592888613459746653099577382508493844632801291157533308353787401733489212984413006901187608533320383299770680201847294523676100389332329113500468916044769789371651925990580744021781901506777713105996699492831092959095116346784222326899359128606364455742824065933242264284106862674171347392056649549986333856426896784429035960195049449896316696293988800725299876304448097608641167993679085152324932124599043243563282602888219491569343739721584140762802503874085802632747713867072744640618714242979264728959945735477639353534825849713817902568566144048150866431439421354762926790093580906249514218783470157793596791972394719390982546173382713695097652892968880366605307078827615316435574329236985930447855967955016695360723511115586832730964795443654220998704296306290688953972034739194994572150953924816655797318044998699757370195871384539208629011982368749291049392128777415833837025921538086125724690578358118641190164522652333993633999452202141873241433190728800618459024375997515980414059111201668798743132370516532590815434334745111044961276693773773826366036472332764304469379992356784888211635801638776200943417250814689530364174866236279736311059304756870688979869350950041413307617619162130379719970316114265119338229061637399880243571656967093717299270566776802432600237892242824890938904740516035150085472320164165105686770828865173569042854966984650083535986598603312908578964827449668710494875912508528237714925623228526157604427906214476762253020962094476952264784350431163460257371062701089847268202424677979885605543793640902691714699660680705327240567150483858701692528266320294031936710305840583834570615919328073762800788200600798274036033045462368546178360540760355188534249629385289513433453683871506924764882212486984087536676847218274643314693472905169274189751703189094689531774412098588094202690583183842626594124116594167836527511789995426977336735456925163918403362919771505724834124340636397898655751404400562861783728552487136431728803527278962642159051877258875918065641114721925176945060023346135953742553267470568018233496877552058256819474306302994873707572800472637605227574265830805984354936012828948461306681732606501106257810055381515898128870774211362576891104798381226024407065463241871526007650303915946567854720984450164897915791114431276950768212946974700674932788528248273686657865970439615988897992575591689586003045612621106418035290654285684593357617218771615546649224768331761970951611481748368064868035563594334483136855399889655612957102596664781206019445973423527851774843861418837290179236977507598707775678196055085130751255235937136519775817700697373344749600707986800676434934562588241326462835028665293637498024366996426678460793797529097427928053515427479493656324167330063168214978909978598524206827939476582219110308031330854908322535007319191715072931071429125606799014478698289394527801856944719625730160894339831539501950816250277888821616655283441512032926818709263714709723099809909367215306893115063407622317603128811858836481490107670259358805426173835763286673036295588904965864624941194977822365964880825489287393819256137255377633318456253731940127182514482279043331262967627854524900983556061327881781957058202149561312083660257923838552110931783543931772596102523364836469317409252716142206718640622885558685485244004081352949157553924042968309918414431517119030641674972988922583689765376435981620661127976130822781807982902174318588527125274614137576023163386622608265897189892514731829882007620858365435089099211144104543301002481134980729234230038568510603740986641929629688735987139701098217478716198290783790432430641290137756595397327948661080748613974560761789013825344110266462119533490369041992784705747803127923555847515678720604870207323875723655293965130044813898034031465364457017202337209197093380299823810600846813703864162107053576816254152548690785166693449879168591364060585715248487259051465692613741136001571929948892104533141819228505905899162258852642588274367059568445705794638064460396589683191486345131952577895101631590461372641940135511107884082846553273582817298138634685616260852655603684531788631070151740427762773492023956925250792428666610606996579809196457449328904982682617781123131528783177319910937689862419215190393686231309314780814015096646959740687677228836676245001023280273692377071102335930732843019093426544731977834743818976664482942397080986048315266877896916539377953345476206427329758838487426568586880583752772549376194158584676841382357501549789926567851477928466486428273013015992584945005147900272448361258627170884806625812552224494233880968866344609355026270612857278975419753567858382543063439687072684770174652299956827608326458174134965606728574441150710234698638991620786285943948684572377368401278866033485972062256323203564798198069577243324086634230817088858053915241775497516846837744661278742055466612731216841118828321809338707905500620042943185409529194621121657279857011309998267978350225827258552158321171181581233911020956406114282533021457262330157146039130871450973387002235783623932415110254953492607101585169142683352764621051884966511780579234262038342506795424134263222969089732857011754480785591731552171722593389153991634384078352376659423766073342928689324340400533728791704616914602419690677200673046131039567922153544345594768784328690487179099119127632545315478449115200451243749461626045106923709940446675074057118463050643907623207572813084276999103209748226898694195067829145046159465993145777510398189989079813059948410271818700586179743343378314700399580565620417240797625824757762226472247586426835387268650911772877481479146088069622457229075499830634255881567675809835389976624067815009057430359422747821851333569023012826189874236681598936145775543852850726931297031208513737525682825050017771002749567433375918067957695268681850701739606893352183122882833939119772124041703828933479947702848310336410182534579978838073825165528228861749679643346154995105551940661601524495089796685372973204927963022812135857792017112139874517270797070576055032558683446370528139915096405073372303148477534658235221195316227026387744893980955330465233843122418870050409599052772265506882575071255324580988286815361433019104750039344530928358241065635233471109716112491752758915945525001735358598702441071426151988947463271079943016747355241432192877719649640408296515519123586911942125839808259288873459393484724206591268832518621684282533432175455685063317850321980940727195119690534238013423628390716385519214996824567076626568116198821250993161408376799064952448819243407965724501942244708625689812558969369773157407080888045202639885874659709824012883875989468512240061247205644290569742637396367699669162235384347542078569714192884064190288468389137006239527184837379452282846976997268575558065588807751929157221970280459454876667143075275994806728830853677014317667875801554619758970495514950584174067041919557800712216678814507963032519529858351039770146613688304641899219460387737281903199915430112861994348416530272501315499146462158100032387407789668220057138943318343452881949722306559988167944010123094280940771222933566376989690970946041350300353725842887312928047252275182415129657856298865531960096858142361689360325984661232232988838857852271759277522490806767582945162774483367899303490272290830708363189122931484412545887167125515143979983465470416590517066897362847937108946299922720581944220975765187004665685412329435425032269873783965257452834743359103214518190304698289622004873517654031194216789056835496725678257495158091407643068364841389413055301956456589086071680980267854996199162096471171837942776276588212674352339055964307093148171366018036323172754606636410441262009721114321816245480276136428344025703702104269522532608043697713730907068806287527775921214648308429326322838817544435778691462997728459464017353254798073213494089745920846602035382395317154478083009493361063427400277162638223991294370058853556160826392465885839930064618974855188670966802705693275894643492816422099714891764375482917221787926157578896122307405625627144590709702678683774008722026224168119293058705637503113631675886746561177400487464732883104488320430618336287220743931180731357391994116978150371945944986667978194145155384343620274005412881409038032200615887399973685853492398238885504239215028795536494245872263518769777703294571267657039482671539755118084478012013227836691470508990252682515952939514512566926293136243008278433762275198436327925865325883476215817885789118384549868279486552308741386698374323192738821260447487854499652323993541075322140414176651237603363380179285977609768765904184712198898340408150477261240883587617007082671918964464735280519692515878533964991427218637930492246131602535975315816012307919575443573946793393068323677250019351094349101820100239371630284744103466720325298329972555842938981971303042386009047012755519877150154418270908046329342858643573650275305465757896070610786563531520974455872192210252094340729075747092337353188371408878819558449956570920215269368500531630048638268397731994442096904110959606493656026389782697250980158943549456426151516866649969649521376129502040470807565985927279840883367836063586646843218490760907505428029925334891160993074291939035064532652569525431512027228307442042349601500676399364325149997317847656733725944689799429576896282098311308685141939228133464651935003122486527523839026979454327760277380044124885562074896566765952582048793398298893898661828520814112541345403349262829117774798276955935261660914847296835986812462535142045099064678586602398018610252164535881943809355871995159182139896227520757078380705817479649200635261711047431012521393656007137617406976967507076470805663577018733157778674446249232905391289831123866628396819595830382642158277501399210604211049952331047612704721255384061662635025331817722774914084411089877732992570462686777193810184928060463141749481481637705959757112597019768447154330435375302872211543109171044704676949936804391907669641514099776022398433926671335349360611079896751994099348648702973485081615540485060677853472312892009586017587410430817717591790488691902876445068723530931638563192087323535863496516007703665656606152209990864525529839202952857095768878282267434847897458496596405337209966786152427284476957358873392648242904873444963853768138710339426536579942308283614394917298934384416259831651466020622121722623412480169311625347501612483142257170359242199009966589731796302016774162146727267205836022647079555377167984408715386390628161928116039123459307786196222688906357173929733173347918029985162253148081838886152081721139511129062461881133648138628237171047703157848096040888203053796364547961809130835293635390928344354954487011234983594722942455059824751810194642593669241106543018176720100855604542008896428113501218321939010964715569455487656478537799452340666705827775149208651001634045473975416042042582198256303528817771046303740231232756691457965425774115489310942399677882192448855008117561924087218960978816979755602143071692500726736012999345578586239413616705989546781811319750068104849305342064131247587306073810780566206425327125818658534639163531275052740849070694989508340991125527537094058164334504323195372596480226233111361312651516710899698077578913999517508308687000603143827428974093096381999129620212587847333857439105869940553830680983083704305903898547175263828421360326816607196480214879333380617843132942100188712149197603042854347246383025212200362303240539373213801402522919088952288118452987820552947701360594763694252885812599927866941681030024018521756986424815214671816034961027740947762149391263947760751307824549352405015810705665157098333397333172514872717679871024479816699328562762568438468949755287615351326401561134896394083701761961649262431652545205375459564754933061773055367650772781385590722355503251260452227123050897397480038813164273209234388007203772466485609141381470699301322137958082975384680314788882922843408669353667955055658040455272762013626669453857170865133068587813223432712298765888099494225844723757529833374376265781227491094288382460714473741768194278907958937777549092484872984314849413181903599819504686243392041400296845454803085844923987888411644885806032383358236247317273222932396471048700742134398091991416522610513661319580111126089161040731752796560407917703253671520330339728014012067678100259458510295033293307877517694250648945191125587310786369115597621413250815370798385630986533264347144395368682136813687694132595517252455739235773528613742609310981259247162094404027673533979316688740170015343818724343328134320071944387146723694798896283864225629775712813204423910376932412575141247765514535465056680800374208755041825524405950350066087741203744848608718973626907737472758200001217996187613455457618216514159792874523373999673474032381325993762231761184919745866418073276619505815818024944632989843151918396853909108632398534731874147256804765691715069262526875815888006250848978342851681289052540652433640350376835830377171158327085029474317386171607283172039169990373737559097884658415934611753927322401000675099627207190006971431254691372655522895846956928708616356172958978251926729058632630576249029471721291270437942830289402062565333552115273812038152506069614073198314845644832757279834497649276982777718179588947486634428384775441080900802659798695361296776589735887569676398025951461288854160674588469324713107135364937898869415798027033410384482344856002314013508923947154681509632052959333324759416582954357534438329670615800604242533076990947227899363026625622644012783219809414193798782283917238812912523163179720976260760729910877176026381999759734661459335881758122717525126706358684530501374891580681865938424983819374768392753621682161922805495041512704020257313678107501885683662929466638054171620259888581339700625664424063648006902061493028010002000328770828723759018869608530238011669959851905688311555831925866288319827548494353966976595731202004964839821342395331964937248900039646237720270906528762886956853241269170737463751638739352618327811470064675028717963435678831488301014384258737921468252161601025926447468385870718427421403957782877361412992124465010131818313046100195306989942193378584740542301618893812289155867874374757024908525624994348544901311459011384031891798051432993391735914865734789075424873476828267343863915532961059550006355353077687970651454164368268174456687824930529187271804228956238922389115365865920282335782331450368079778972971381161184107255737568591355373938247934224794510857199754183724242855433354172580517173450936093044953191552916351888353640325395814975385580628921557077430782292156058988075446199710991527344882816420896516328999120223630737877860196580132229036508478332229352302430913500772834510530028284441726132318303774675443849547165657172666110128471310174315603303468806433855216631425959861534765322489949925731745039743805382536303742604848591785655500206472814169107652934436051947162464304112547783267990030049157638846759907740082753451763338036235872662625192221009938697413365685821197803146334564919088424876004197710747042372518750962230104946689999013360666409621369292923078518078450560788969668215798204750171518862136485769247319633822669011087140065393125485367917234654217083541063741897650335832068306113752997934963863053304893618404432510649416047722495092841344721073259573566644521572443587302635974941944448305354862776737239379637972464370736354889683653531045018805461174831635059933404161928857202642801931519153153740744658306944337509377204728581688909703665372157346716453258661927816214862439076358379902245474715468677884516044964746775474056207735559494885543351530636348030236277956320453464990167289464036048063477949835309584466852393400528449866119725858488116615967006295228965453906062370339365125177933988504456055527067934925284450226193596566285401455818024648177406365925551919668337672546214126590754612014210912243041372811604556388974698071979532099018187829542873941007977529308146836424030348343146413439300664712827697660434321660082265887474922567349412820675014136081033081676300139996102934958896926854387611320890506693911448307007611367608599126037402781751710650083850627138139961378375252185794684463584718398808496968721346881610350544415323104067686450496121356922162111383004980405057737053286422532431070071979746483719060885598963958218658085640445403612961214590514625557368335912477151274566585358641144168179635021458608066425208411148664049707077536081137872098302769444192326096206643775603973061910810673902802153857344043344153777819493098407825805141856434900732601741757235990294126648619449917638242234720045102110225784164933368316136390954996608157315048605018032464741886246265245455800583296114528529706246526429216572952921983655300226183829191035857979534768843451118114466184353482673058338040639199337684625599771213136695852892945984702077060703074215981481166976991494792892931954525204876139318835251836462182124688543007028974747030819783528316214856425395562341295339553709950406485676888460458263245221753438507185095567990693809119295189065840680219427957649072038179891632728209136431066560922219747039684910730733500366814923552155628474040458892665749681376556830429404761866955510256420911719103468297170089477209845314394094082219645856924433975775824935836127252147792962330353011595537780433072093049100971884511370369741512951528416421667441812839097954996278031627221392617421393222669583030882490120459659147868346906952426656401894147705846101756441820679001292678821816020761917990849334674545284163199457097048580689286613398310561359604292432767916577296844072905099394409322264442320135029971099631880239294980885560922862085677842451583730576539494117339004255244715689305291399778904185854543070439533719231172446082481601058442102149333735135725149312032977525639664782767426717980282195735979383627333379375015232820496021794965644057673758724217039322516116618833372155283923846854035854297160485812959370693460639963756552594089181146507066980527018380443284223866763387330499593879819896627848795206545107645652109511626809737435762357362242840962399774296110991647309152012887563570922352755354057647346119388690007482523518129762361331552025222049272965196522138688645756719185849010159091475863042311411625166016290674852410568431523679923537353457945321466957687169518754600801609168766181590132250848969609732170260626024452628972991355724276823141403280982469871890025235108484203032497600302139773483573861593068788831425152373091449960101783017422731375391080511759523649503560753778899956541300138372272011448128165903645368948348804401307629963317229666900679901502697981739518493454272681614589673895718793765413429101646694926908817244340526416411600485709468815593398500821962154277378467715879905750814253738573850449977701418044272546808237741747470445242131594693075594931199708448057698467200480141518811036511902653618485453292228307615821514187650088924772665004778112380192075950541869200129454210959651575912134492058731454747327658014684307431392448379393398668969106181376976090303141694628029772699237483180838248556195630964747490025634876329018557244380192680377404839820050006659781734772398788708295023264222677924653351547852412497555208104235439404602810081193821132407460296536713534678454165266636294688653633631429574671179566080984803659309797056111368606476908639376787388574001318116958424256581818089836729515654060855049802708007862681183590817535623658015268227388512897208340964408255099039788574168142417818871445373237080507926138799145349777861334767985416689642497351662840482926882881127974400980293227725557004919211579504760275431602548815177303278571128240718096820135585022831913252656667624689837530376929155290021848429416310194674256731035674590018426979575838460963602108758170792749224188319098286145943025451248409262798495119542652318675161053155133442722255289851522848324901562628290463604076506158858536084835104470750196529369015523102676986241969579855047222887782936194412210910233476471320976863166918216110376632869889557173943033145452608243882399161826502913044788284697518600059482888351703836368358964118980954778944446510389415279157295766991119369101887304309101174310011486130560533798645166779437503772650128163562473856810959331430277497652543120768868347116563344616607629398287372240678680325920586830908882046614758874054282204574102460858408622834038686844855700335833163918426554457756217176779674341832055865277100615950661248123508112102280401524074211429104428549106996336436942163631964328288014604706682800563972785176747067130268147775976366778756363927364282252264797567977858063678562541440817167220523164322696841752021847839285418106047172969106892984345017714721142610701983631114263704319436152619851551699008079580690043479686835929466026538784437520830937475324157924121864607076887250474313596763025507601046441926453568807849173486243481472363107502745718264186472209894725110617029971593487769631731208037641224870601030804416580690664577202427813702500103739940319459736576803027904676480129764644009552450954630285329918894757789167571777711166297527666692854780260655643415415925184235817548006224661087641046455585486794934486547995024635673427455470723059278283026604844534708525428247043957818349031432264554408185658614068151477919664004864460556949854265880409182451148167681274555389609776122046702295660379153629597111920415236560359778665224419445182067994544356319603262856052982974878167935625137121439760795664318369336583333177325498853591177698981522374726124545418267138082780056137762336310677707424326811736139245136481029185414108043863241804352997342027633276187248565754888102332260006016066149537177226050730135239723563965014133322010190079234116655686978873416372560608264407332088031174637550495630880018626406377680164285565361881295760988085718221231383321974277110002635765271735525082767776744553718319407132264208970206969234114053446347442659271310023908339956343557662677013863191915405102786872669972578219081206586458672183913200876008697952488132846348261337610598591772358284022840407680325773447472635486588002931958520531444589531090833509127406434350467115504976146398635160611032071306346992048557199817017750821974501313146305424933351525620223217242926761544202170282744126813570954910597634231752915872258840181787708931181864461075647456165897040115341074920955792692377378455251632877421574299190589181951875479861609885215674911186863989450424249353783603119210001880686764260982146189158545119277698925917840363910599276380763651497017118001506645842463130650403880487719381666783533996333240139094584997580834963413029546728044816513881437520146431661006851322010329508772811794356819737029295685004767573703798873709506859731328351716928435959192246500627899094470111708469378706208316776734349097232385863119450429921617572062891466229922026559381146455066639801816303514097547438553920260918091850777231537550750905865418550093448164461708615635724577306042559456490668726866120681203679805913048444247206965205597585799718529823605830466006053039847084321547139899269435205390418924611939759109757229351852983520604523786316290617863485890390742192259739372540550201231248782530541775544735075915011530506639316312877715665630067045070533571519910908075193603794863952941164073852209683457782816672132150084648124436133192412856668338352806901830974718042791677553428940162221552972188686561483957893665338245032438206422662498706776168527714206699093191971248236717210604770595973840914520028560774748140359792531119284397155924647817398221825267485702864992810935847809905242578340426291639873222747268499790553021819036662912577308852799711432193619566989983079616862081311498000566015226090595713484771371219607106596475758099293989771106246637012928475014268132319566292007314137863938169516035101878950793045771183308485553025359119133960710881062187775206834377017787561106380131264144971851227317957892178277219390105434865689762855105650287847895907325814095874921978417891325551929918329942302479676163033169972998445124011566562288381498362190185288857429551511395895204502814988141077823288165710347960711173792638028382882215152793460698330267374421902311836702703956724315097156261847388776440524930327374203282789713969854612223936960581230221559126260571398117209154040601583915558137422355610997227655271612184330103288652119497911627055667228830455380461915829876808229687831925844700510157889955220924946282687860393728242883712652881594739918875202078155636083303467687347143591865278762634830049017392418963087046637076443181248386208525866215664574487264976792731668455058606839692928461083162029270864837081924574191339573130510892838306369955093239433339896486582576125748209256704747393227735125450558304250351896313960190896181114433474064061236298521208838533922913331503906443042727365994207927442591505657680452962039875685324688800885459382447059605221499010223650358889629368741057048557908970182511004163719965347259201537594159803496238537157169901139159838035193842229045609157576788783684254247689643720949835246113671704469446455774485486877868201334831687564564672956925117164933904969167229183930495243929842830656156711408907514277848725238718208498374741315934192855217824676827480673207689355454801112722534843561846303374961510983424289318677182855228921836465202485665890118589218556326991145781364299156203098351785752544116430898165371208967101883535667337424611026773389129420277746535702917623733144831471160327830082647826418619854831927597536286817812636523111867471220813402712307600521672735645891307169351488079039192256278732481822977913715485392574802879635164503031824915364421903006714930104398784031187866498618201305755098426779954488825576293934674295435170074089997889112022597980337097972731878351093051726384560138839562713650045003941146187179307569417827321274257620959894566680812625993824049233192919854049972058327449108767502700155141351280243880413719945317171768918421160549767788615966795524470736248698543145248147115410135669460153057046298781392172979317057260578760504563902654352154222169544831665124731133789337028984033359672759456158212580482126396475549281546714854041222125353552549171522718215224083874793095557385755507216435604885976036956786527922137864128254217481091915063068054376527060830641683541802770420916682798779722702630185075659855165353079977245024886131663287624077130526738880314711111076632499868147139503088265116852264073357406261546923176139923102420577854368569780312850972943999114540585582264134527439613985762934470207146886052964089622162281073515280569108480288589892202494719861089023460310422481770763329817591596971447043461037485602377726790626290007625407472144595137651630164271013654473727762354718026047389709706549029488729047419232823337529962846480956212887681692196959491529004735646748615956654296910251594360816724882516774857368649102626946087382278339653333183151673082296964193152596431512673099851027007977593238485184714543255943202803292115589423109770945543650276204479864122430891349762721351707305655405317826674452871181935654322715188290288247119842776085154293410188464529800301535425991874865284970154247916931635220966609962809707014378914019504828587146897039674539308121236180044375983760190173365717432313678634321436318274945780266281557342842836141159606822486162167172850166502992162639772395822878643670490892549653915811243986663005091181938933790670542561920717156764585422760686995243533473461909255681017271491416138653938314191551125212535949194037742751817673306038747549551242863143619787503630906069567733574191955296136989999172335941386392367617921953214153695041031553733108796982033194503902164564048056512904160006342890210826064215094374156298559737354339930937231391258989344229814042069349872556332126855701527289358589535494008818941165643761084580644703387159237731418786403645194021711867063429625291155347636920201954574293684670704035230204872949617870887255260723863480651622801000633175760512576232909503000167023831634728489196048589925779321828124348277488628938640632388548068513480766314890930940911520694560738266291545868859222640053563995514924745958666931986395973185298785336117684875661686098427938596454105262016036006264631219615746124299697861387073261074321209670352056447859788902729452237190774790791922662285946175626726373235378578318358305956725866134502582969270476931115772626761727497994621878654303613641036148604031361980381949382389532282490685843780536992827795079351486442833493258663392102687901656075977524904044759715780259329493898111974686167765675712979310683592805965367039024714907570519943358745297489808257458122399959755693774308819423542893574084992407094569417745399766765937780397874586597549854505461375230370403076890887922862933033666204896583394260768773345649753126685140122258434891008036982700463781903295242459175066308770751122741971714912286514999203969773761628875602738252400509338379828911378022572220031559718549010317895368437484737073504612516751454213517697200625032376267647998062246242535525805957898576467618990385685803719549793869120330944690812221447397456775095480455466460552875821710905017879261432252884698340021224388617169470353342191821959484212794002810051902146786670922042266950494286735640312099418943476320357020205161122794912818005137988580736609318173663695882365126515976107386864771259584121044707298692028810028958267410288641924412487315027662178018130849379166846032691289979783913362735019339466642381160500875929900549883936515296464141757919462470024920327588606727577281638609777414148666061947830113812980469762161446196823795442430856581975336841710649638904965884670888947507362835579530388494492282622899954051273246385478181461876403060556210942521669158687284749464420128640740706012354629230521442537891878659699981747349525641814166149733797437986426386072675490661645981048992778818736445351409437821537621708915134747666463158298882449616264436950778145894564438588221293185722169102345008802087905180283525375197655234286112234528670719441303955025694208108848497223151130650135649552660030385434450735691150879498466886149176440806729651104049341805889487540038554926982246375706471154671330800918374160441231640524164443959088814473462196455957206712968882950635677678790588067191449478976703572150199081288677754957765788014251938332852526261065025814788770309624457732687466238372765673656554197490007336231324870070392345382404018841782770730045169652385896848392596969428613484762402192228866786442591392373028474466805062388169103912947148845762842617904700481706165110082901144180853142002828499166368308381320688875217643221004936267275172830381861971063180581385580392196516375423943597079163510757981920665474183971124339688440051744479810581181646317063865624172258790762923189873943650811627718016894183099334086632504063281776183739201438475266286769556940401086339663814389706491327242771770317042099801561784354875473583395036944150920809583005661866591365755214215888971360134627351862677476138271063277426113219512942283982390950563321878969230223773003657957438100109623805518818793845846439887490555848729674361428253295250680385432955098623716639251791994341676004607879803559684364417350094716811978489816868579407077487484467525711151121675514058441227586437006471987104258704016052010152002461465245071181240361556679611765604598585381608507520486051028894741996774391306510722995394043797122128880372544642670324769096780275691504648657695849929944705963159809550638694744938783311429620489588935654738256858190287020024259702210244158526625704778278967340560124685774468697213743148230083778055543603297210594076498528274222617660704371720013324835608202258697926767180085525573226294262514858019234361940390902348507304197035417326751672257043095862168198218175009531956413575293273963398110404141070383756221265046546552499275101349325832089051880075989404220615188352428902112376620806414219630841429743597783187486958033475315386668176126874128778265573116298380053077277705859098550379873743729672947755938797594877503641723345358177096530985406067771269961252851671545076902696108032928892725655632961708814499097593908447195388746394114694127052282277052822807598149442701553100374746420750767625398567567450177644851880224880758594068946387036291331867142152746244726175750595924576250818199114729386444073944264225707888010983848819036983881328446007854232647668941969559423082286603253552880548607528285302562253311021881860164579069383597789531302299347459854925772764876935597113909625985641111987081636151599171049691827686367776448941336004244045096555452180549076876883286393688601412865880296655899020245243811544937540505766361727371356540343638265568704917818358474953065897378285984746576100397730149550964021882588652101237293100451380187363255474133898016874382365073308785382774425847645948058653600986921147272506327455930953041482399508913726758710558950623985304740472468536250372508744373818092065676516891391758113068891343542893661856160294135328976864784808106986533198605306892449218764736667065148784918109696068914348450390513542411562920056351251257910553215032834744407367601534084407124029245673263399989142447786866125974945876231375264192618246212493551581894917995853845889504372024741988445819974272072711758356403046287632832409583186480554723556137106730338318310775665933336495286215586477967313985993586712385901294558698152695205016336373961976966555059967219213939305867385114085949704091498182750142265728262258264472030747285171051000562382030825019729618144270984876289086220987074592203874488913456248121892010289272729103403634445963372621792430750464720705767029414050141826812024685912261299618454791840122002949007886125546637444477057965410404927145068399392219539546483930121536018762072537735720582805050504230437434694779417659669394581810804993137315605519871194004159209745441269602793039795927853813214759203928090565177317755952565124642543558479514643702654990717066451959374259223972872879060237614555114095672147448386612946812320641166866536219720196133210948491608873487028606873536105519407882831380190775021139741328968223959819864560378323477362247430251566213727608215716117498518935273096187296734221856523378241104583823053206693551310346329754352435934901554886134827054194965961199830265700182821493931643467325595586369975364592065210778286823703490093998782137687021204703768671261429343910804300189564399439421747876871922285859608637557642063042723196864184822670562711548723209634859124480408785125714053252378173856145413446619137497703455726580953633351865862881833453445213918053361915363490302620349445819960981208278820225551224755301807757951231237673493138194752314682850011591943076208158463209220591411895798469389209719864562487881220146630397827974092490653635861849050689485470934554964389554187247147248872082699662676144681609625588622704112832879523269297246554875215998713837752003687093406119930480543077162515636997594378287602009412153495075569568880911764478863368685791958270983623339678109108515882787939924287360317488749808509857216605595007173719173307560188183308935968787775203273058735637474806449065741115526900025809885091339052569684369102310824025564014795270881388530993063461446771639009734124626441197453295185065148482238795459350637906840279342647819070649650455324500636994239549231844771627253616701877488571638692335680546304235544229758214907515970381922505479123256889480393077858366624735109152462325301067341118254340015493099533808112192408076703840206570903301586781815557643002718577967360506131859195423301072566661773920090266140742696292646025809702465960191781340087084152302044439314648070715880110745005787906459966141858402511315331267940501762162881509052119758389010883405518871497241317924626207735873297387187364118894176698026854807498621301323557984226165023549393013170678023338840215328054420489233553549050165481353066733472724433770469128881510309311179654496320044628374808940188468299014885790186350157781477172371071263615027772593424170158867496466699747331124267680829051409382237569954656439704199114371432064866930663808610094662959837282017590906201235348247786875371174528697783990599894184180118977481565731582577467365151384621294384810309357568892619107379431068237858102222830812458366005069304753416089460019991328747134805112208333733551682811727448637653243815795192143212410549322256423566707660502564226109898840665325484474307943675397483420280975126163702960180755350776098320687777353836894228736622920486658199515406630475774642926193363169746477202781590194429354537171779822328741620102592568980896017672098458378032584419907523414675883306016396793099721163458041938608022830895325527754299905437365599794645788641547902195950925189566074424804114462449270411638891373957747248314985331689524783007737460750168583656759350483653883119444350267135107632988926830161725668644070704602349394469629066870942863432359950394538113491863385246566083560948523717902277216878522556158476724825717274910689118581395827081553745550004023471898790484078520309223769068067501633651172850313630507783085644121736774034979791099798059344413086625673989074195139190971116607304545685894130852088762139381542463804153652378014098215867790357183827592310567820230084029281411773644524238889474555891696606353181323613505875318165817993541588481379157184161548616029592262137224734146931890439951839610523174362586971754157278128455123734079350747957664671212875585670365141478905469005705374548384170999516073334110433118001413496614562427022359460458079604652881082024117688567723035182043368387309901481124787607782211199042497396214519959778606999271494756864412663586897420596456538125545756123629319145119090710045687227494077411551091266767834768520735890370082232608809615229009321499594966479178241672456071752995425651162006336565910718885168438878088149493585649499281173386399706413552894597507464822256789003952492253469459353000827614385600949155568636245217643105372337386853505976309437361599649976924606564608166631164785907499947930787896043973694421790725992077684708547192146323626364651323528413238063692125738388132441118524639505764495867091742739413936116921153777861184520266724931198178023484807384948584021509311589214075235101694104395314655247299913589725616546372412170245137607840690066066020654501598056566789819092665103826284775174489291094098103648785946101301865835285694552961018541658339206244426881248281123001315874281467387023678287253121453309279690583584885367973672901832635875109026266462368202324099506605055136498724396473176744931669268369461666019669921287959138498285268965711300510593368942370616936731615661419492437737351639264110372384742419318730102499141931015393597778093123715737433006822469337908123403159437264172299549402607080106959615584368613522550990109275227772339596815198394158695803414951637005022872806929102474627808698923301765417148241065379943120005474755220887139658571589299082699072273090390123853244154136170136987127135738120839622021266343511158671775167124628907235411379178644585127157439476380070887872556483013671619579127352573876686264822282632813111708598492444110450365344410600838809311507956190785364286393612944034649783228348877089930510030677501095429381090573456251072231910402176417248531469236784675794242590670972727094330896074775346911750083344025599151946516352316453324334294227907668577061842918900242212082145386430732631262228217568034689844983339057799029766441168122805663453585556781389837775159584609934809269246093182172961664822696548495533720207739018712100526199006507020340898275340011706892550688772569619767665605322982425299948707355275920671009305871733178734698361770438500947585683324015807178458253375651860363835652667764978220538013173691691449231712447666263192309791724318290442328819177595525163353460452802752894031352406895220815425956835078999198553792687172797726043808004095130309256186576357886775347883948405476474277899513812214967984902123584200305252423892909181730841194815014590720054027024452410650237326121639138793643917037362746231532818261705041838091677189146873233770844398227840856743474567170506632077180556297635863876036571571651741261296319720432561944403397172642971708854092385224507162588715203270230883160293431936876480956274268573300434708249312448773613668054400814749452617138281998530096641228645882310150172245370049211576059573440169055692860557487843453228602895239587400101197235288727259963356226453229445712595272687146585554798549506275345207035414652366716840342237884299568100909729133825168268344942950744622581086425768087306766828629322259691889981831485709834425922644981956509544364043772482636606360404119972097265935506788211216449697294190688252807701955831902542309105279894911284486481443743318083091708807243480780295136489053097350007643443886354588017624688104905957259796472140050452411255293732052755722454378240069086589900018838706303690187733547741626503066920185607529940579843220764873730074336719073952568018844136862359470513826102979768945277491070722051093423242871575088547754180896938906333842169327907804476250690359872759316881688971859177387731251660593749905882346958544711295699065225971442614087623356371873905920620171108046042487256500962996101330037299902301884082526679639748810022453110660388221538654246132471073425694413082463302580434268486617256170004388847841362256668294927888517493492933096521311931287535013524843746095017856020972512892099326615128194469830295981036412001703981010650593623281732192833749047417815761090856197683186757649450917780024116137033151772833642534166522324598521980144812961193056442922209039868825125247744179352439078627622587954030945771446895907440405082282472337786289695815405190821107596904944865033088094527963956773599314442581039815029087916613322037895553756381434938961702321477104326394402905227423516240391324888855389115487460385614092035933886786612890476252683484799279765100998403543815046885577330702504142432748562381712985812375498125388469564704081688029118647327893109598927877790869399161469153871139576334885623407184123426705688187508233933121667156135401616518733707453889731943725044105755048745941620432965133899755644854279168459308602528550469091274545257995473892592718275575900791759699748071722340013950837552079859045501618333965078474930073578769713013290037651833168613047646882312778920518167643529317729957062196364714605507271219724766647052600031172931702609687256591203709857585490549624188130664971110094968703237311175112014232456636039475018706317432300918514742357324150467832109353839160434134892531240771246660575097314084402148729138091413566839082378367667820333463205373828713369865829593929542089024438443664266164285764964077812085760036592852680589362364891406887083526919349192075399605067267275407911989500303879252152878322192593297256805799625828110982759805115798168672627733108849969362420793984764386236369073190604876739018661629817602724559525815090119323882959412744063374678215473830547741448501360452003775204027443521645136933874818837885659990517198576242014759694069910160664182186937734596833407243510785071376159856863220226782720518374542711879916576603133567934806582631532802398745158917260035130168595998639118025546344952005407559920917337010377652497172275966173140575168127309325345868297071326233416448459113261910912147304158392308183685607291669463644160191202123934453345710370210203850045803802188569902738482886901084093775225720709724545017481712733525106255940500757287119778639457947640910110911932609059804996326924117871054729922493036904057476917291909017227557650271393205532148296549452126213731520721961911981850023805486631274983781485384447463005245298357509915825764203614344045638029549913747947574620862360229494077805147692091419331287922495777130840746892335950475861742427948825822349333970611070540427961859442217353442913549488228176715200809660304700659497426445714231955363371774433441043693245487969761886928959032637186977808270454158419009680365316593559641621168889585160451476888701383110195676378284316048580249055418710701630544698570675799837825744970921110840878585058040546356754359742433031650789637554640474854848031458178784739427834652453925852946340057620445945232687518892453620711992825294133303537461505531622661771233294488358947848188863731184924434378816196397288893573210959859811466969666759936725795454049882525250170044403030657380708982059281502509201520460891585446809378828333861410669130615034261947049824057608396191034113352771824095519774252942875550421690152531171093756279454116315301739701413687681679125335880051134136109634094498175986244177679592225734864058307558277991761399799761526924592687209726132693904487586387419017249948410189138692571523853208786606810571872661394114103260160999009325283822237999675191581592418695654840507679736167547382950568737221386108598478866762945857868099236707046543288936057877699396787991875595634903780168763803574590703702118833956761376212496092416760731746231287537771567422049820176047770091781220769797310850852451885970794068236908765202570494883671824210721475506849391439135042522709531567745403501739468031327597718925526874930972491140337319245055627315884677614347059621201993505157721828184253420570405156436878534359071681085025226687521250015984275749406515148048242341313034188454788927056103945424925658708224492788113681028657832449915214041998637153834912052009885331779548208148001800281787307198238781756325700761142477311045144150413987066841535701677530945011894819912619950999184073745039672076379205731295583848729257748677153625735550919286690020483105601967383075678363618865063764552392986741312265921373323269860220750876431175794016141445199771459704152430350609976739186353581406723271338932841980858702918789640628582858788025561278697971605347157629784783822752110512941207496478049541371835544801037437426381675509155740059013233888959211016137140288494959024296997689872752360906558030201651366418344743343488672313302769352108763825757319805678177342364741965876975139323576869811926610073934665171490989244534870136450762058830860419588937405032809030915901604881091771641380446574610103270739298687050415310316009473111965809832640884314659647880962410860343086377948645496417190988681463916270445330288821011461490962917025783631396763546017360355285910498221065957704568926284808469355149872712301827499381652787878292526303346513518074684167242995406899737972908971388700960413941842025765271202490464011012010465183204301970398318293999051879509163215589960587716506792122078541086102671460248355437383784830694284719563434216558516499912490992008276732059073063593911885468179845705198617771030580828014254945009737294669213042549807056098513997992668601011872140862642207510559538001200055940241912719794750500827393197987632318509169898554659110809836241383046713045281285386851975312269378516999031459457853888131385602664154023004229997615086146548187826561149461514439219307265028767352023071813765868486863570591498475402575959657111654109334724346871088878480840583096743127773185494281949500648601576277131111174004614613556063007832617492965305445141716371934875609740288740961735015925019802749222568911441287408221925988859571622426236435206719616664448382341530392501376459533006566182770288748552234476584362503724402658064808493190553174451886771584858156313060269865941917841742564022790135221968191817416963429088134800037016406931423923265960659172601028930647465672480067694288296182917802299748445602438691667969296385526945860847318094365507170504718022087456569741401025901428670995509615253042712442433275402700723208420489801177139406908720127756241445507136337505348087645320902247421210222153055659380718009083965680807855835868681777963363401545221073561952862170354007644467565792386434832998676444930888353124804339315507476031093375376236255787704768547842605843615619829567744800951340613531275203604755792318341536858194018129227050283595583424114120884043098978594290812694998255407334630160128343506310250134307805814588261612701734863287778038506369271851152280222317653590827530166388082519590798269729023536471040960881291188991018516248801811897518602222493679763865359419476468638470896485794632151644496291539727718998928865895152024760041657450608731123232133100930671800521370341439974406216782068713496369778786914231901667434567782130509658229917737957042678901135186598584640783553363482414494740297369472581442812179603132325065620648850030770721708495935477119843479807241498175901913380831336930985446773252886499582396636694346959858517447891397517736177990832480625450116896641341732411953290750939063017837852040355818527061293000744391297202567855408815853299030248809405366615487709762601702545269037391917418091375865916095239751599151295407439925678156986113009737082518223476239451413569556818641054901367288478816852864655685577896770243874042224290963673733139454910539678961137483927972678726540256090200785114109673040205607172042995116661564776738558612543392240971569911237631206127041556024230920257757319635937289276310096284814268131560967010936533264606343036565030167012155613786077126756947451022767699555043361650947185134669115000095382909465238551389247820053445128944607048118779281524132702100204305441176358366859102914464400262060847814269494231321174241369997834119736216665710588186488020088062974191715508403096613356005887578924968789482249608078347444918303087619401305346965281074174921973161629013665360514072581680020340051090719757945330408913246835198993011121419880524235170364345449306613043558971424566109334314806202695210930044548993602890495807610329353048544070444953137913599057597477396002881675300504977281755477412238972801984758679389473023851860379515198924063869682469570421783375994525500219288121896264080981730692458445311724016671067071432109625574026375310730432286040909498945596666715173204453243730100971937582963461801992894610403678053960516853239643934694874358691633386771686508893906489374819006229924980954089531157832150115075710742334668455329844298653719862822125895948855641881005684878029867862766131927788379728816451099551954422509398197362535015202632279999048258300971107416964035423319574981028026127792324032767925421711511902636440435143738280234189787842980801123949398090600711806005333672285912527994244834821695313806823316748656265393465350191054269919443483714803229183975987158616380097030624835198379841656036004047727987098020893717821298459573938078937857302689215859154777253307272380618220974254220358094788633091922698001822791319452387829302934618828645217033049028448571383226085822371560674306126468792282942809979709119707330874721633892345978464931005522258751497333289277979003103400743489599166357396563901232598366767503575656591058870649853898977309454410689425966995358442765369311047554800715867959609177958146223967022412824153621936363142390612418193996747397125265269661615907405906067957921041341004371850806383836144919327361872395606126920089221839625554388385955281209865150927351784903121214031193563522289300904319725689137953231780495798653703523226521105342770480270374648318528431743639843758185213858235198585612671930667388998237717909474052089757425772771272462697441284206810654145929645482942653120050629412484467227017857676631252426985719482180669201681226540961611541351225664374909525946102462268708207386979709550379072072860151589013638136461392779914508233509807711766722588705321032086305896508852985307689830603650866327841849627818345713107201976488973303992607809889435237703118682355701415601738412913549183761708786239830012760872394345137556700176355064741024765607578837802575923974739244873364648057569026621601510250758032178418664279642913297971191030300391706834360759750059791141519613248295776739738041957343893670607803327305207997958036205786069084139413671132203290125661104843685789112348411580307755637273088536976916872382041624788543367880746185791506473495356696452337017637169630578623579132493629914142868013567859029754088427474487347136002160253846194379019031589779373006117839576563942619150023626545761625721539802035396086572212437837715953917504076441866885727194287141094426561703597339907902361219419061055776242954096524596935841440503380708809564044032663786108241853610696704855367509661018710733328268023534694476194391044447468881101870540104431742299299091284448551367028000716059328241773461379169824388029452302428611944378134972672281964656195624965233992757697236623826362494815500502334037049434985358600890889474673105267224799409987790834791920005415230966023660476904733865872604701478700877003918875831823832211235574761769170270722064251312735881701415929368651901821692035672619506386591243299028569778263917978464725487609678416118707441118040977875549668543159311983394026132384559352036028660666352158942585348992726577106416910166516430539474162170309626003614306869402466825418843964386343920245527779187746089725240839142546312501322945132559635468576547001884949614039485448028241674448068696534114753393387542180684713721989465434141197187553582015631658823185503206182245572768362488462573236453559656534805174231775914843838690855121941209380184049106641506359221768652896061601447935091452942971858234329909816074628458320706633016987463674392367573951361487007772532879694876542215201332616255369185619893423770152318773396377196024868703463940229701278872365794850101649718227441629880327391719009884570998790670247700965734190441101237892899790242789426168727317563972282094809017596463829487386368413134247431970134814217208928472469124667955142956024129217306598895463213179741457398149727289204606129751570459855792589730166348480644881221716258601464399125604109090023942155821335233109450254224917410771867799579538335670704246639731996288991670086129813611086584711643006586185272745808644599759014872825117693029844986026835158257312686781978563371030943600526310736896146495284363448170425745898955950763933252638267361186198255917488899089999279254303414996092919953891990493115759560424941630967967081445303430912850588042332269324636107628168100315362974838057566641202104981970079713220327881689708517077931119796917841057503609297532323014907894713616110867259606781514129465109753058468860186164538351790801417868042324115885478336202136955394447664991410484419183168619761507540672109125089188920323573858302553476791270076385829379296212669532371589764858113840541266923298759748998138639668270929411226456217124172286011040297416053862452025126727443438271222567730598102670902615242188639098155874612811999331861834792885367115350513361213650091929760694836531427214983397186769924218787756981677087106229283113995588196289268292629044657630042449350589475083392123306064247920379328611807386146393474359730628427083892941145540479988921663359969726765767999982225907583405668685736560829001661342689488962085267443940420383486995227213636292176886853049146079105902927690654526450383030108397699157440080011787662359962879184476317468602114079046757895057582466520440996074150076175498325059493338465267619929406451478727627528081645238159317866535222522419088893677554805449534614729880628056959923080217475071713244063867458486009476125607315023602990675691267748695496585222559100467430315466788454135310080827658042647310272373380334473055602663277763499284877632476790244433182490372877149073122395343265770544516413533238125894564875057741227783569331460349606512462535065703030839888917490559942298052896141183454023036557619326314083090030375236666713480991650401157380056157460403624016968322212298879662000366805642179807576779082320128206027976027249401836356524678488528383721235520962349305169586120188565759432521160138432259926901410388370784198540746627926171473654686628318259398952741472543119009331716704346753793700162680959055910128192462492014985373744152889925941010018329707792342692551903194820763524689913929394190170017001289182806404271469533493638940026940974336589342087459469384983036718658775341046391512825056871274404011827472733067183082454873099436822440656109948323986678431762947460249990996640575716300778202548553382911548370483242222426488246629154807685540343815965814456167442588080284626893606794863778129697093710192336451468086715894030077468725759304768147119581383377659412607842668388302618998113785041160964714813121315132898730210823389350136434701562544221640352653451685061397287591717156822909968225691428004775492106941403633919356427425866173680119044091970721774137989509313708553951948624013480515899840422379857863588317914802279564490846225843346916148244815081869120376511056212268660476225246129813060130557872569997369440463598588192819058180887882331576789372924488437784285202013883394487757979725676698373019198175483411785601381244203742678976419103565599115209247611569965943431428750074747279179213535360005727586965998051461614892813429615129259987074412052735727663809042154293231571720812444537224793417378689843564012916537751324549474861564299537489736253264962038280548104426600077077309856104243393942077571088789011045114148987045736127124396351957077210500865497037486641970490964667625553867446221513045682272240846386745703490377872085614831402671105218274924759391809797045781460604583192636727391611995169359967509684290593260035652500431253317274118439758303314707909473346348464510956535928991605370073157507672993603356332044895087933283546323130837172832957343973173100635152947913958600245341480888044634397826091963221328141724078702943364661646103588365665009099098881174092096722703742900579295664476661124535629028536718661205960739429945963466980590684631241385910264688678079987485669645641329112389427024325305643118967378429108142809675568000533662359646136003178566988040736580941283401767322095605743897237775128573238685964391413514027292106475065322652473366219082693218272331863910570859313080962301388483692181301775932058709394601784916725404018147458665190678451927447262866960246544635162986249058641034105600165772334802604429254909627683867294403472645954680375768185588408485810497814848244842416701135550410996327023824287401089309191738689619472663926145242688162547384460273633810140699460001726293773032567169982852540049447625887734506519228970878141000927447647423035702187192366249233132116490123865795102514452114067106514670400151463443109315463098246850648964918552083296788169942150496996466399424767576164745077635570981742624962305858513427673462526083558639969609938416363693477933836509166377635674030651382055674920755071852681328073774322913230185822065626273478339853204339481925488816264419258291390660680416436888397104806713130371626867510839402437314441921540449908053150433669098442681790325290105172455373132778064496425082877404389324157775722781949310347720336059029792223902662024958679024669336128917996290524856750343855535920782448582862819638830362919674214644717284356556675926226019334838782639427729158858308204152903926664377858095847733106305048499408339092263422089569768736086475307186500647376421559644488445188019466144994616031950661814712269944094602426255376827655227854180557024337626309725355216557014472072910849212634197477847374528320971629224852694326867405498969436592068911473230530091181573838136021416268667598991408404781854116209147010017789763218365792931575604706601664972336821091976830309427791081550288184154468204969666667737853552281313319882476340956316675807986886588357212441494232473427632823465437639440923605721841176489771573597157671960521504484786448983950296064527201167816469492255930670971441181849833130425043184895813783789725256853619683339081405214742368497045483685066384272703931392175843467018915602193501216057707308300425958731643012019717664636494210692768702201494936108888546526821990622434814514058931435358254116609353399220054743718607304380002140232076788925941111301610038954139866528901302362697970922407825012149005357565136915233259599054128470414061993806543643853372768644081951495343817769609431888354406400851723169065588847940912135172548401318888873210445735706099212826721194487242537391342498845725789362201041752399624928318069457373345280846401385486639463279643623995638479470567947971940463493844419108332917539711427198455732543529384149305837815253744101190817583879402007685645932661291914452367680624210266951751985110335380892606190397472757725890753845739421564873738586882727082943921611259795529138346668151560577509981614031689128113342860075134994226911454798010336286075697088351828867651595648234076721827113644309913241825331370619747173546420448199089205572536182699115221310931927179493081766315965879565653842162539739837365447027813628151149757569682652504794429800408372444353025205316074131285643456220141265345569268550280077533175602557904540598118513495386374778287894256641063412094152979544971351222768863977546476490549178156696246388643871140600297802549082724294483015990255956118268780460006400066261019026576741115963578194780440702528856610254963114156003670921626744430441609145635280199625518735395692160388769318538690275090605604683750365120625019289338669940699861034543815772150481909293838663921912651783010662440237357015714904873401574468439708063137410298207205081007964820406248105401903734752149471594002373625808677532680259267232470807155603492534514779838282032565650429597487137628836248164821552170086906591296781155233737528849171025570860247752650703364872929537906107388909708177721325761511122643629547551363407223481975818983784724962163692643396896257086672628437339276166899388481457892368668925506713044386784629218509619815950277845951694320778586084211640429625504031475956619035009522076295210283065247259414879165563324498799869084576800060491037724075884552201411854471716661474082376416598726130007994697772003184844334432032444947179909633758465382247419870490287245698869989240998811720914182763919886428097051475952467591806045275295958454201931151964249582333266124595256374056258659917710175264714540886479136491086194142264314953511094943865087179588852054054687798844278358972917164445449832697570848464139355800722462124150684746466002517387614509420504849451174958327642657330169967784128686020930446428393312610361011626543829532529172269170813144906578650276476959185947557680056767138001836509858813624559180741246324470601628409685753863109625512341024352808985917147732672568165944158776500831684664722762357641788296011454021817887878854271711883018311243068286872069049752533226310029173461176100116689846973025716160134639425809278403341375580803797109471199990263541147339031797809951657367474281408632359174343952320540623365864163675440950395054854235601751022577908101870685082223377848360745120412105767640572448802466101915283534656489207917540885455768361400231033253584892951840991090558951366128919039048737271815594833171204009323423220967612983538515046026029078752446464425437534096662151432804086353802115289790321325084906553049321961387950644351591845583315071262342564726944403895237013334386559590936601881021492086996777260523751561344916314950865915509398735457504528808829204145790479879442187975573588460400648000265492573897978534579361629414010676939995723414557294077324873588380644157551395570538561197216054377325406911521023595338694992506435510103064740568466195633470694850524992539227779396454861786650029224464543058354880880465766763442046135136510792030918933353945660430815670823563712545094423208909114537462874861292360748684085192372174217764790225999868701069216312243091780631466089541543060130289181465730618942035291943706495468035502942902007343481275097874493058357896047102034898006129669871305151611503663069775777328651948607139097115992157225749779031861543125714078323306076249752164670717787034018734165751464695273886439718989659662347769862721220587621584592121585225922652527775556745963621309754076391581663949446845286332706074385819113759262073925766991271434724947217263104455970086761760797378255403473687395503608866062813809365855302942316633082402292369879658425045292800231669490539532516107529179653738845609195559448509804412514904652095978181201059088212773926713331887147164026344364373992147606998517717626626477754655260551482653685479913443832935891925432756559412808581936892758528728004101765565319908958179673280495180712314497742033807719653184447737762689210464746660225648579422268685182710232896819149230272446423147220202279275814379450545760799508946653226601461246139742013256206308772322091261034333605642506465632675950502201805721069024633453931561267408044982934587900452842235695479217903483918895753340620460927608440625493701261004356220314134948752633372160637372534220525466102507556259865725249699606585619395487870634733076252148610433711040519563572026707011698668093065709472401707976493331607344395875795616475418200399960402162208203161988663585567681521997886742006157636438037026447403521839621809194127476046478725997041234233234016715440107283175899894747846008066424615906278398618940705272083774366465558903420946553652095782296563694899594375750257232486606111961933409203409870501286645129062101065405114922609228454591420873408023921443601123189667690610060535683748625674984725037134192784327867234908469078004561932392456357671408106023334151219438640837794015562827252083212342832937023220656937715678372133103195301298560434735664467844122403939408766918209771959479297963733512028682276336871687194980175826760097435472724915545888788460928378554247796498025500009306835613495156715063654176303624527304754867839823090290350422016099375764877214242562752073223506098086840196693461163306073589224523596547150078928382487661578646689915700496608015073634305874515345912777759797400228350982047158434881407424897919367394160287207969053524653026939639592142549098542516498457999679477914579747812440539756735898216654955459774720337243335607406291286656592267915805680636471158801544867630057109636560548122986250242407525696904543955819956779128656761227528940186611816561295750459070008963905163291674722043238239484000339378334384574184630114513072593519229483506238106278628018585490750206329323729915171709447477604667225966199480211911865241426557898619118374634438001014235637348356957733289714734020668959851141530519755323385341019436797318501330393836789909132528872416513178381468503664917095276823971122605741510538857902593530873430108963391372488909806215141017938208631575792247000049374906234563318271610402157584796669987280514843116788696665219344639996065762462656502021612207985229067507281880842989127575755536311684329002677490715899183533682600213474182609110650034802014459932256590147662604235847272076684870689135236135917271645229062008752653262604089357433538594845954904988817796571908255991942015123018714735314488136346579062517518544839099122172425878323544171917879951937154083927514263530710535175780510622272877996355621427124815950200250510193113309284941917504239416042190449527700559470986163123316022832178411475707723530202208521775041537247569810104339203849045080706097833486881134938955015854550003078290971092405936988543084698791899732138795985907728967208439651379982392877805410492296916916331904128649612635786881739529234487603312827801434094430267247043949591084705579069368938877898533177146013212407986293244500633912513445896543073189871786935648162202680465747671219713224197100833434615219507331084098767392012216728082222657122766663713750078024024320323722948611358013372994548998048324856993274262085171562347866289380990840189610592151440144880674037076005338964395291771275341377400230441545916411604219449525059258878031536834220475364553418692863867738133477464205893345266289443845094733724906525272838209172210313386447255576635930859626771939402468559988324848629566160409597443236686009700501191856611948937771299125095305839531661668969396956727766954903669294255466380281834145573132046123281723317804850469769752513111802050974849627533794633706557591031062360196827910015062872037749322114652905345932178304623034589803677452858696463042104143029722597827026521413753987262314652781828657264792786040894238957207526140282818806662930160429289644558356636231065567873989298448905631991531917216932821218499646479326623272755250155673186615584135490818272664913372055817359990175115500796940191531103049218148016717845467971679807573984674140091881633541961220421656165104840568138768201659223332947083407130296255840865442699518815518056292782502936674368853828718895708315869255808293525287310813697367893812184580064179414915011790403192488675037719785308340518167035455889925678630793657701718670672243062281660839756205562468771140004746679996725721394512142232301013592667545426065095548086338005996627548204102548723576627780451206497117832314034849097563393847735316442039072795373652922998829648286565342213728772397234792813827499450703388028088684380326441892328365839088769790402797609646086249252598328718554466752723381808921192615431847773351943441492720640511131922532740744727311408338263965685285824565079465336067232051140778376636387825649054341914478190470406561297142351746263485901591979536788305901478523099585438856799232818615169626192221072872118128862570280304772901030681536362023053841976976056558190821829766989215665646987595891477671482952023855395976057296771062191798146086782229709050299904712197122551162036217340095492154616976766653634619564692846194611772045905076023449961910572991006386261248535633387477683716611103200994358289060348980785496427958979091780977578410806040828115536129291644277195505832892904107649696291675303009619879778321239833373201126447325376728318062301120235072377895387491605528487471879522769626038314991577840002029213391158317305218169385659524200634208426107738744321034240176174146144268432750597311311326664206219610717063512603256958858697458992399112268281613065769024025125607236659551723913140255875430017313711606262169863261915975646310537030071252660851210780166173905550184830210592150237365681035126151287824235831715022135985986708745636349387452439730339972582073468533111122910666308760466091772404335590736071846469927168540120397477526392625763595218915070721127958725897086216788517941741218136317593647231700885939121642973522936041745174709152255177907929597892823717952057961276811829137778473218790393712675550048517515224335793295469682302838993439160974326932588226937619802547619591214471198963480033554612251449434398881710554128789567203488850503468002731879025440442409590105177373150579606759723123131027703022505946328327571152571128568774012659122411912200936194371761948084444027727207976772118745319062950951536720734407324160923303552296452784754062778924087526031639306462612126213097276829441872175972106057963327866441403413958468896262273157166949221009043338649062413045059870950583937262147092330484171701236175307018167542074465023729357979065243833084284588082673742063175906082022139729556718318223958014002771077211794769330107197690363645082970255226917534639659143588895470351386241741115983396284662460497336414483135181987702718786320921779156727460249275254377548524143736310239561508388828045093901682349789208501050006146645582766283178591043726402452308242972102311429188298962442849484869278150167611533368734111722791916879057149328418183131720896396024578497909766246488993420220738812797870834318358822961516866196031572337003157029370173147243964214392981521707713517019239229630071104758351464218486526475725092628530457791256386668431038500346984618393668029664681899872751386479620262667445668826603306911420826543348958799326257991235013896541448394492575932274141169526081997394382110159205228207545204700751045049230492596660386846872201537267104234195518147285385091175744866776620636057890081068908406973094716324941011745872851688168307914018021854220703462049889379766170576203617259389813146168508392568942752435208235956750751450965517389845109128508816084546397306166550416303161392721638058319443403917060208181193847144192222184773514541551781887377264073428660126490450507511362960034868993021155780887033467190936125898946827714716975040911264414698703311308110898359116784530659501893994486204010738708649948546273494904813281996914988806877638444329462548802961387488612855997118110602028238638112548809923043369954440483945358987460113756528203734688143826413631792721707718062708359637634769507499348155545538990757839580879590592219395797488490713201817952782627854670143240030132020694566265029100242887008676880658340592256759867841441852223437146582113156745282357808074617727438002309545795353192107201902722761544079906783641026259173325160659196345841344279097910397001992762654211163975008517848610046981297236649838391537996505576596429830593616177168821168008224432661441838207849227848673809109471625578597039683954807879853760080063992162586162176092357826822399666112328573815019567949783906108284726918302727334360240282096353706229047730245252397681472793147051213097017834977678371435715312612577382437783163940462769750990021496779648975280567508338359169965271609243267554370145644652907368151686340520294297492342974797258908415563956907208810295342676613377871031870760507367951013675025257001671818165261102242092916575432545483354947903595599854639031989237150479521358403863181897740883240490973858494498521925331665944651861253853254744123514245649017517779773872206248479157926541884677379734764864975202160378583082542927758008097208759308136875895045636627556626703559491609117569588707532479728402952982879982256863015065666381783739114850344006294410830872503498782959384316435275372364063426961593213753363626779665117072481440186789692188364776826447595950678409221481169618523523330313625391516821736985409512687731171690032593112651007819394443234593099618415507469337351355166618469285701596231818499712105025553056344226495671662932655871295181355149053115952699350117872409014228419868428258570667958354448450082802352298246269778623434846518990827924569788152552486411970039391342763738914598302186668136914228158252496671956170745738090192541312602716702500941097689930337438567973650142464094716934236656441159226493986006261414781229094627430278208790752914621276691338824756412868437150175824462167664623805484410373299625657008862866326035619351716021936449248809104341727825695528258904001440089329687156903208485013689073088643030752919011329180509552002897541771811235419353668862244331618826119929417991090095990286044243667488465217738957994527537991011590952369468639950956217664976309925444286646080339043130862356570630182620171832414447601013955490396267195862241557198253933193363575545992287942103035451600211341939164794817613614630164322758012770411184407664378460340843579895287951000723621935469660947078449708674326297585731037051735611586887215438871259083159383935437122966580105104403969250085201609648892820094142914455708692943731679347868464797503208385226624240817150894106077294245178382254067277385638039448145400862463016594488719396226060701241283956658919286432696211866068268714037758743642907362071914799455864220312768966921823573460993604810809333516866885907673056634088472499889347478285509991944135529517175071479232139447481546174171234060338863719878038632176429964979071592629558905164993858587349510524608272992117806791470388365464103170032149844052806450881846186578379639132230320044289074857705879074592873824499000533319442399235637157278102362155990075298088684086862945390372437886183425683790624460872288258703274771340180980361146059112440412941691209569868128654069081522037352049699693908746033343609638337025666977280289446312162553267334931449042099050206372931629406857637092094884326382697808392843040640305105339872431515435011173841452247469138571589336469447569706621509379151768440978340269652788069255071662134687026100217794082384415254019988063995491137983332530102143917696953721054953495547304211023014703920558060873033951822829565830056156206992089843486879578293926736566002152268023617158863997659123541253135390969393178661109117117429983267119939679837454687771126533110499718727420802733203110665725486666621575655369346613023220728537398926603214670145435753355144258433441328207392576588401793452453670515496308382729636491837405812812048416785287286203214605288793406272569880192205527456274020163337779392466739273277307635103556156983192270183396599569633091991669317683735967431553767906043379066189023607457212236355192367470149038793419482473834473237165323925657857795699820262600524476866797891630469355654830815755557770120590106283357059523986082316446024557427041753727778574650928934411689653964632168750111128778773553037974613658743289875021044673591417454853174961722613762236558282172788938386383284012425152030486784774804718601232228816105652534365549489384823386552179573161136833308523429428041658949192441425487410557105112071087738511603942280993337183730876923241246770928202936516833757715514794959247568982693506518689681272013916299774412984581513483916377568741858627238671187231569502735543073274166795507377138551129866376579739426137551804538445848477666243255281319472005372811135178775426137857782928580085401517493129944841894391685510518780803755947259537109989359628710029927486343311690440805407584490463009399004253117077024496479105608875002565189765962809018139552928126705018883785729621490661391476553159792755010546477707239494996007590977670393142003589110618435685421734183683664222480086097966218156073739940820328199865795255508484991822498925236140896964295423032812996313562216566796078277265969336445661979369516948128433102396532355100355912005991532388532270776356211859574862578727218467567133820244242147675127409398044902901555620200273707857209834547401606757068241316197267175743401541517148309803521860087332042294919079760172746342088558320435367173218162086926207313526185293376830816711725926350159843281833874631647037478025048825398942025829737850501528156423269299011579668060725486563128340006534144263470437031392669857631417863747616432231109903989738774757165840639591926566773515888366866707611415941565770896804023695425685899713920724949103074820103208190388757664923538555805972098870627930404469664469662555975360539333736367769151410231399956976460047746829445276056560720818298876762796983911644607199637840012772650118864299903666879778043341345830290434870703282104266688899772601194547876110787783009638667930070201812484997683207550091394205374483179342124166089101945120086132279328070134870908370420085466277498404425685899730818803861649253354507480547692532365794359105379806130615035810186345236309797885949805351793575185812595908991018605284987410908717571303493714709422464725913112451848416565495328566145938964535253646801787561812092056818652492109433866713711374485466056542058799657286331979564925080865943150139832395110106824091272900242942187623284495431703789808375249611111287165655273474982719722600757095718412653892940723502609961014724813475549430804056332196139383259265352148892508159586884397742467729087298818538258443371239523227910293164498131084972448668538587574378475052717332491336444332700949854853099300796244692848930802404291084993919133202398756214759314498622642056165452419206004131722953600948768217528278896199313999710574039128543701153487190798723193958542494647363736479330000388773092156890473236392383816510981568303709858725836897187929691222914263510848388937407142847381372794811592354979891647837983067957340314259234525466423954310557290098374179292332004902532328904840546007186295125986637784147028583910971062705168033506658251884476900323968260589462135179756191293528580522570918669641988048870774256684505703153233351031645610144623483680377962739896952377325364290414820703071621077119600922064492295064469831591634082321060056933827211909143871946862263644906104614370377321802983916052667166666626222269285003732902354600918065537422465136392704453876335720776245837273176374787429674487854394414672459935639922312018075641072469994723276851051585086121058925247800649982232949729322752031649961985604788436386625404398085091184425637109519517077982421620298892132000346314406545946251579429888046102173993056300045479687568128271144245305619615599686799124203245692296455575070267395194217368697057517510045044119021691859866388810069174343519466981918348925848219923613480441538240632531201489153957756581262499599169171807657706781477081276831138735591712812541655183103026580942027981335478977738503850384137523392834523847951647393631833756873850502682242287128176074565882816309413676618966921693399836163663012530472838245551594739764956589043005126035093204680054936402281579437758114092633616139461587412272398438026602299635594073170952007404666347053221500159491500391587529584228174581349792183073564407241666642891692786519934787534390221973889386089531085640814232084495381790474282754270770004563950934065834407518003079941888129030468415032354536302550738242768607725680698540758911275307641695364003646397168289831584684932895464233065931783456403343478168980230677668371106209512653077960085179912933470459242502066022215625977869424282858919795123939772627131630956503036610440983787716686489577682515096194809586101040553186664014298338822576427461090455864566421105206062876555266668178148057868493713023332401921772206450644273129208081256916753275317258270354472365318673390827040693380867272992321405351739710334111582239535126152841485435986281285284468845462918521097907086176277451541641363275554911476793844518721348806817070099561387555773767633756184068326802976799610853999159752536317558165972048534792336357383475545618464437347894760351948941251186108231956606610979350791309591123277792814538579514691832227896920408630459537683772682275204499436941378585848851886654147313274984285057516603583774405574203938378689380435708414345857128697579238136003481048151155153441241225008340555154542922513177436502936740501912978483178665677228493459716761816835570037764270796171653803795454564889672623881467560484887937321507677160790852960457214013212978307368232744828946709878562871612585408374285231553511225606058311838373160599074584904676576849643041872697508352311925091163799301368012056037526791507433630314452894328312310192825204601025863911226741739272270897062161309280369650568734221535001561163777576304226627066768708174389464777355129027431376015767237507821209275203411910999342643808340839988988630730653106230402640812335671329281657703404002945539699507208902986024819178689664528447626562079392785028262620932645226535564327921530611286968844673034609059020709453268034865598024043485563796246500596034225858723801394959577330932826295512253487284237908434513467812290439331088324641550129823306018080117143401168775309334484521569345368362107938762807116361292015008160309298280359000962994280226191464804116888831336839473218455136743198808027149978056213154197805706352726580114134569971977331229790600993708092168955820347076554985500079842736835312973195766303819305740814889674045302135376883050468254352938108363493998587922943293536375188385320915791620080746949262846115096365261906250785408932493761855161620357885133012658288953382302749372475153244094870023820891265371599516620921417306165295736917803888765066906606509402459621808694655820572312538839736775974052792086902650136638834593789372485575113821970826532069383721157587609348960960148721338458627986961409389511750312772642074993407803376915808070605343634451951243962620104097357197491402237699534046110080162548714278635343342687084455111207897009280983826496237703092397369583004576164621970556267625311672601237147000732945405580007069076893016715919947429108697986290856350287236788576704988230503746426960333029347299744792687592850520799095233623130568591284967862095712011975495535126048049007006333373999701031303448901964110195805956769406617217867830272352903125604582022164565926326367398694698987774836895378467021224726176518911406787869002858164332050506896770875340786461891837255530826677285693301059739026033156808131310227420251413920121436869216758336595244246756393943661086874244423935355754968727675637229148535358901485513861867066156396487011786663475990061619760620539150790725437258835651211395561032335073291997370056547705172580306671030765493478378076234081305648098158777532546562654997422214188650886225945321146330336654535374039067184741399720392605817494622457493617695900787390191043388688800303535651370307754796576074588016686175162607407255118011037422711886107358155770783373875270290529304179076020978534845506120094029987721508388325795677513557316237306073692256292787482064263154802445766960273234221757673198212217701160168878765249695963029042502552045495913984143420650889771557262596052145921222197871053319692329504228147433709594705596198162531325394053611867953718320993653447304580255143566918907797376196066964670281674582763924079875584218019868230473918705187491041978699124156563704777550192897993050431586297507709423664239452837862138374847005005851243899964343988599335995574925622086923062347902709668032502625914558447683827857188315280167095672566382339242117083798066805152481226003287887748174833144032317932873621232402888287014308934391015502749296698775016739071034143994470752459141300486496804306815146299045975804391754704382599258889392042948169250229823456649848162075904472011042493482698247325124463330769257144457916261460617691850450792238472854142232301435332793279755061138716304119446906646081085693623395807406741551415596138384473867954293708286651131555168625263487135774634608561258326955745350320761372683084754789944912764587851872954367949763159258779079329219820324754437680849120582033829052169298080745894781337265838490031178756374824619177857175567296002289226434477372730002503559092732461183118088959518463881275493167943180178966358521806650640654497464210057499601394406188133532177646663704296312232609265390253340561679817082241073095417057697283218865638694411196862164616313439927289475221371336332599217905241613068907904601593550744690083369583766239638513066511844638897749196258799552834367609373718048960692765442353132940971624238942107171131979934636888117368061558977513333298754290155842352565362085850051069994597897212082426976419902180614744106664053322029326820426213442203992956268958760786902946302765089429994824395947666975495876592775249765610512376647028711553948577690871473118144184815687624629860919115942973828778738547390072429315379475177735473938541704453655430825325803534715588073686318827212515198158614475707013402551541623956182749481843488648560089199555692576690594184838882072404438314475775733308778413657538871148334781964473626171718379566451595794672584521683823720568791541749410304102085141392177549974105514232688568744205053568833390715628783690474146610141867719133223565586796971413665437247694351296133408821813718672642824761117063493108213143266648232291039626828529226068078359285375857715859213677451995521528058821209068012289431527633310594472446601030886057293725163149568035140042374421159281484176985900421252706504145831070752592350456100723634229646607100870644740641146566850171421177034573633052250822340965345020758205364494375959315468230924325796097318985190312565949287799805086317562863849653556247982779031012337570409307871368860915462510432088225841468411274323524765995139546750057666144776367627912773848589852145078751565039259607839667146411824052109761469503404045064406739499106792740814106069287959075830745409971202602530489928445597842653541373909227486172092001271362936192145995555468930297112757108602763476225098263407569074602543571175591766487490539835657309595418045049995253465741075966645590787300582573185310083562116121068237387796225244772936315675445856457485389008689391560827434022969158032809153267028538024446068739158028235264192177140400625853464163489356937471465044987279469737313488322828427188539924431728442577797428219821273451502903842100247308848604495940048631357962016007283651471884086303955489782893168357659710358132077497471832829283675035222062538529024694856342598373175272902287830832208479172211693405220371482562814319157096483854489904957496076826714022023927963574281309208578802958874216413371064173178214130626998101405254228721100341424458142618320084153074860569421049014911489770688043815832542860632509086265645196732744341704531494647551759970149308413361425816847959814129411267844980333247424337901423862986809459434828863211535314931582281204553114482709573520711206941933590753800800787699613481767790683122066513042930490305459440213922102846818165328201381408693153369577568418201113976070796964260033806188441277844016896030175429761447500823220542639383199888748787905623302387388547362433043825607185552163172205331079705292744905400273983538120545428883848394201197767028837259527460316056904672510984643136627084075191214010642374980925999365182064018762858973327073152634551320901521100161548013490645914633934184640121733288116929535551796536079882204364534239671344124869139248616716541146719696371790938732769576424626057921008896854048709832939044409682310250942038950580403888349007331938870661541322538810221598559653985712204064439687643187334908856460155288080456462316983774441610843675555217159295773029010054962363259684924725290799119150467294461698613287053564241844491559067171519911320567571019290702202928352892546046892806210355297316904840463509829498385983784971227274607606192646410497652834047401750503091674443237207477208168553971651186419603177313432182463175720162181077950647079738336591947992807319421034144382252159504365384364265279922132715566218923924604563125053803079886411786470089148823079080451435886982437060196174342915385145529512811161681410005606710742311080269692381794901957631015311071723870542606320672563403597795170728671135192100130329973266409849348296365295381747468791334063062873166229744984926445547704511327740586745117362097427521848887915862568323817003967961961274785723024983006004102758009954331194984924130391092233802586483223512610364850737956741741497233881456875179353176326434472441329605136738348214471882925956220740975180014268026451025810428209607722327667392666364121896455466044136069224167987996427534384034636597806797742950622607497216721957391698621668888533088603001860420060399232598611910143689142022248383779634343181956799057306199617839434284318990271072555023181065930490620085887983258383463227169344574488453590745556491918011929466292399794060184103127019948730612805323480140039529822080731613034697217081382551047405382552761470461156600920372851516204706589737036581776184048479667750466346827960746561383650709044292400305023743220245493178031873140787638389756029912020766574930875330761388275170867931189540276730527631351706345338023110894453960217819062873657469581970461400350141752724223102237525129179388243684668887586454049545028993398478550301080822283723089166616291645749654056945085721317410058184841853231794058865158909893695929831884364327531468682725082314310266869812525009566537457589874743775040296293579945564479746171767348854570361266668607092673595206885041845003899278810640545835907365330440346549107726981751316880868130803839802950302022194352672915193232642409521715282489642038723681903437228929356945982830741550325308327904317238735759617488498167749094367269480668678542004824048323409793524751886909031787335240184581064276478334432834178331286135916055095384110747023069374248986634330291696297948169149070668179132339318364261313595230552634944659775946191655312910768810939873020447393540311319446600755762760744112634350542657524360371394430096703347920245150850934344123655144438431985376221746283219978760668364301445897486835723649161353507059955828151886613156357125541743177421125001128310878142184369552665616494610999276429942320836929518568585905132441078945428755276064348531318761580049357615564265185662442520053362802352367910747729517797962784482601150434210251390789505560079069081550695819869442137711948788358819744428996611767493129452437912657287694389779000109914920380409834055868414200344168076934544680966398433810170433644835731246516232447792695280535329643445169213223076128556467892088288421582177530551527972321662448977885358129878205608958282531010276324014785850769090879350427426907285032040540396174607342319835447546025546224717751156044316071375356917165823942731347853106276528450572357765418713460614089155767209858383018458851138444493313305419312246834663695336143495717181760999421709143107783988005116390383050208950062715901649078436254634545938532604647832704421918873162303828262371777990338512601620501912744318900240113269738758949899142037607675904486157295372348719667915629005055096842264973197816208145149442742052776654832881945591279996292203565667766046967030012637431122029684041262971256481471750662862922667378121402072001857919339333669247008203635160005449047330971320942235566806951791291344567729820695430000069561049101235969541937191654024154299924822360859838784399451563448746596626506371509001025749884840889365215819792344651324277059557461612190944850399571278646524884729037756631888340644446575710586215502051022278034779163713662766532123276489419983135427051813852288069447633517972930530198960885171279894865581662938266710379412101124709722436239131301230302600966263395747790239569196909533898067614804838725016772429169542243558720319221770123461016453734870131922167072831429366677210317232269614830100422276048286479086535225939878982776895948317142104281200022465336137910613616921163553727503953967452762339855023212365542803967767109314348215006578141661861891767691368270155568062024779482172439190864640234782444460979570407581905121144962635021058370542280823710199245137326782666263775425888310022668874012387245724164925002735304463266741089037372045105173951386643985271945263315482738712940495591680899964307766799243132173441419236427493576304728637798954124314421498635065280978641361942753816656791236205153687413870616247884070130405205775739371086516263164566459315303551626267134269510357222361681264505935997205582154200775032926548517865165237557365533132828757622578407068251235251982608664424055987829581759703425674299637171540226068442165356541474971214691327116177988398618353779103967949039810197466397120654401577036662400751893099558555390645448659398338796535170479826776736374437269809005963019757466655930162124537533065725104594114798409727783252210165409349539160089183480440148514439529061448651418869289722873165528901395066400518202843081777454031631844852096764671799777340513361770488682996953399543051555468342670567427971443397324996774749614696615454276567396861460515069737119247281129147794530231818845311300712261829876142541640150226224083931473654208984134009389111946574214023955385312056873091000430277503507299340882487365151593336803184892083927762457192554463949147930975962757102104981026755751640321012527848758837350016769322759696726814658484064912119131411526127455478695088061699199629825186133376045094654907499809853187046486586117522792832052988961899628940735764101064272585350227407135498630575709767496016077948528796078118187848164282775412483631516087249542847297594260245202216780219332084997335273355548875094535096380990772015906247795688577252917924440950203331309711929929566693482988713101155403945599900196943186501288142136160293624394222746570677264419151668045639895210192607769943614631905944553088066510067838193960770138195034969204190354620617037549268877728636970441958202115150650083107815762462523617521934801452541873239530038633733382884417413597293195634800194743989583626387566311295680482282707079283704279996107731818627051078397396983395266679716559196829811174230604705840666008432092985909376834666590420198272957617315078432215869235627224155819734968512457688219589681902802586785727490784361796145917633970511219386000581264006158891875198425199916213459476798141114813123867842238858446975719972481268710659170233074426191528614179439287703504845208779340737865679014157438396970133917161611516850255321982439261957102286854117863354839617757738485418960119280792435208585246268696602564724440065303354638860892890427930426278165495307896211906097176773268722245847858704160961251898554031864677430793534969341946096330229144652910656934261784222818693529832498864179911931006915543529505866149968021084615291774176011018479714023371952543447520893673834945584614553180541274860682167038821399513345667369759407452690380639559919611851484328443405023119601296297509967016112926243357316427097675353219358754616037270961204844380737176177056742541291718616867570011456730573829306452122831156443854940014285010104117290331448513105561377758323223898348475881801879349991563863315480412108303793566914850313747574300828521623773925908871348026150428934033010334593005064829323768002235076683681113578747174802053482948117368453091663378352250898984554102084151710479198467369475484018502145133381494628487350196518482242091300282358188924993086853577800544289611917457468183916461053419800444094091058882198871343246804754393457882299290406979031349679598429252290564754862144672791890279964390991939650190960018748509242635373920940701077039782482705814692752198727341817659697625033475095340792507445032635888538572407146130020874186732533412806823224828749327045919755141013091770252196734220310671089479160878458699928628743528177195267693745729504779343493158376728219855664402599243585576409403486643576895606038675541432927847126144402690011713057338885037528433261203487818785723815102700958218995872824336791019084821922473508230361679682312469274953275032505151906255799966220567765862994276692931589093248975521041583276783664833926442937332276520326859002842294467348186539453239245454822578809473429839536381872712747199293638439007252578456746766437296584141260367745049155841515287346855484744462244629858128356020820402890696354603743432736452317556634446148247233055027249467621812177550976991800974299534076018878247300248825222410616073591400460705556889598476535865502549577790585288267248568172858251434849553015299982053417664140188586600539036515655816226388619276761383953972674331914820552724465848686214474914030302974312246791183186358946023240525963990768148516498274204044064478348119758685124385344889974851270235110862484061519611230175163029544864249321866782529923838556674236580808871368183315717525292318945921400374423638428256222615412240324851201514247781492988210307041757752055631639814014742386993657853837002016913487909851499198755934546613161474202346866542379124228223310661802232999075164376854407782230457587568825135846690603990452687886566477985453381606047747475178803705618073839540499399840068359606476845985349212623273582010422228279063273058766585335820257453854584119912001117564564136787823988149181182006559711756903493220495146585975983862115405334954553005846837329131774193984844512818635656279093544835319333391041911722010836509942895753192910491689388212937387899417663416296829153018885866275600193587551451263094936621838091178465993176276827353346897349218685151014563976247405009524415379946938509055731602898530100262936685899007113740114220151520084485658375954925060029142980128165901510120403319604564681423960801643063473157673116404287122345399479742417214944225546804175039500834020517508839066500120797519172544120342318134014409952857366673299505114157830501949744480920119525718484044657227104307558009056101765574333568326642442561315486651675461105454910084443343525784225559724155644505399526538845597948820499184840800381932290216422694605889828207856556196053046725897595923143019731195216210933333253835850611340589421425174636459802701313406261808367994892714662516976777785758997914804697542993843575804276479087927148676428529238068742738899705417216583869853300873259510230551806949818533282184679798771701818492856567458210577013591291286970118984194348267546568879858177684174133047060417032288139630858012410288921914624525474077431263449462063678877407081194479811963433255184362564778817326622462598680601163230312321766128665160457711114473013373889934336874129234939300507625985240306649466925164841988754881818176984649017041210562772534831011883090498383698493402706357301793765335752466290224767516745693912430996293748234787632999180344101692450977641250441931345465979289092050872089892811133848242513206793901876466386359103478756026398899926697496333809447183243771951788729088132493452625578525325007530015653106060817550619190478910071523022778481114511609149334883631219277548570699470490475987407674914019935782064101174939136454296421478293900717364898130684269036759173852782688235023562745668764693279437902407070055122266245456130465184159344687998881214922765665527550817811914199437290749874542570285404462682487467364218460384977488199233860370163700377222056033071790165156814455398742407117069651440110420883759720006417406135241513502448411152886904350490398530880779012558506723070195658028407469369239358607469223042724714664463899902304569395190080372590016762306275567965490925655035779299277727524512378469898418318250846567022073536755405051032358717629041728669050435352758764913919503332300064427443893395878127552122744693894260397639865159491614623591841793064204479788988471975067268224609768545098761192195124614883356476531667016144571894067976704023915947804789279558863031999120679108289981350464189117212711662019505292451734354893395509514489628587553470816936098185664859115942953676405412201494374449511033229255124770768173633704234214790943216560712825096219546979845802256847003960767391817900181703055633848840813851484590020231905596500689928180560683945464337604893771294775533091010409076246107539012456420831787877438865291210541351529936183926003965881669790794709977368118529301937204935872662688248181584128305080706018606966260840976940872782945673294319853342844096274853665536198785106818569624556719357026921210016591784538462100434849906711472041938263766924456004253423690677713445242726546630453513331045438820615775737092954134747169023654789471075550303870082114309670596701538189942085709376574824595193553303511763121300905288924725268117914665537384807082906674532806887527066983392139366881553486286423268282590516421235732951016785339356449300076483829691495963997692123080121224908113490687187415658481856879007535136596307631698014629832382904122112129156786734431175498255868729304283648894255584316993974274857710934445914820844471958622075754736250102538501818349636517194086086639693400185762806242701663232806328339534214831779458554026123390765273448220685263479522748648863320701144727863186619978091041424948676818040690970764184744178853359681569454851594653492142405981904312643120320487032241569524927586101006464849773487918248858693677554341618583007070993153793688603782024498273725773402208692264104243045999758698193671832763663127493778804163630905672472456170748688769001470116984607896890836638513780430429838525649072942350772777400835715523198510592363212770244173333857148615884774825529021872814368391868519154442385134357675481956913194592886003638554141322084482926592697197852367209210368512976047400481118208224514670818014482497036616556214876512463132339268401379662218001437635704729148692508426782609348216534516938405792115308486817423351243894269061743969481989337849116241427965257706380381256906742822613427248986973957793150916361954833410248070267589284950467879787512038554208836083045574523139530617796833631827816375282015533653287202760404408110970514821867783720094876030553205156108589863860890193651559373678357995813654317247135286936147550749625715875897046014382271299087900580479927969535730286156127134879083356879576829751809203189663729128812677523949475237723415055272790463494068516823913789876303710065598704856857836903487699496724333167408623509976739636078124369254453744020672958171293867518271967993495838203360208295315073387784526512328420982850057226656270355775473883878098736540530536972064829792977456489468664380490136795712560596139612757995248901327668004867467494885149853412659553193913124628910299766807280383865596620556727189582178117514951880638533468327591085604564473234971016696496322859745354930627224501530487581187434069897530559018447019569965587919363108664070748429254023945427500986108199907742704655406933335548108740405883811697346415046205199140349262429021083291165674257947577859868213155288765287000106495056033158091027581633568280165186540209141299887454737153291556268311783801234712921201768438391065020161110200565791095620066259251030853209623830008159884998968836732959761169298209726492943555223200453665892242529300123510273007526451558978730010175530946823977280195923500968189031766468079278839839145975200506669710254609199040395325970683257022964849632007114360007161100247553638848411713055256708523395535102689301121467680870968586023235862398163417811724305905362489943594185210957289386769216830577078801762825155132718840461944463862096040381339239120319046319428085019023037180446360032067396817413689654511195564643461331819756985295174401838996596200561557732720211319009063379960398430187218749691903506708267939893318113974818626938251093652528729694070092858232897693127177796428779792290646624578275157701156880535282544530301977975290922634589628574700755935104335215883700431636636856015003281102500738212250899628688522544265576733411080011840961884785962904904580413398443015543731626985171234004379461546768346907726845360116900381259315941517783172339757755567218600862575006096714518306532119389032971294936153862639236915168954109947147578948037685741085564382362700766126626810560451568691480812816475670991990883985362290364737535124861610060913269417354104263593055915073808038358065628680408710959277239078240228656276130724929030711824315921084291537104009574529498969101271699023738376354296291078321305384955980332037844128394921111746126037419887591809253268392446861281699047979976317851663985089194902465758974167336743647342436517526010447200576983490570866292391567991050403165539412465435897563040865680533181977307031041782975327906152298006380190245479045527648832314020442412213231038851459229707453877201308229290544496886557499367559498113671455313601862595924162914020318341326201615961980953205588344644889373945887406867308082316411855508591512463583730706635863891172986719757908585422047568842384782385438279603125461379467418817043903005360049039501903876929247836019327300166044819142757736061439263754218937247219858837063462688074425004742132333336446623753682126351496176605806366872532328635904965344333418618512548449125848830541143079330345167135487204344981824872816023557997298332094038276716224318071788145943718845611401627899761054104898638965752782520593935494820874446825712896796207949657290336632289286069201028549790771697166171730773563181352793155784639884771699342158174626180266820757318040922278914832207818649486173808825979850799515752087235101848642237296975804845231067498145835446783679919237680118056997443912295965236219355120479647613587475719470490279656671739692004981853867308525726066915878766432480840975681280211715514543371738873913627722093382139674438485960147783527809324061904389276301217543903332744505618263694034201815025001755735144351620994709917192509844026928645363828694442723057657026469228329858405593672630274658092203894511880567561271730610299030228697416468877749498494010390051614734927880570941898371070780681981307209269398354232061159874382644687980295399057634379782914465811738780631433929602694192974222228200107771812365052917744186086091348356572972891798847445223438201433337940083999079180199292734536938089384316431007255649701643652935225146622202570192690756818823956709687440703989007517114037029544023737657068517598808774593104824359943483995740812594280315475247791702491133530877320822245083130715280357262063244387236405368758696963309196436644279256342014469660464268722941021259126723348610219724537931895374658693070771262017575402870078600875720374855422495864468480574149463688283438458873856430353066257928396377611173489135635074599352035790872026774818304171018280696098893216011493258885845675399209027263045367064100365590217340751773932953158245527643701841773303907796885714738134837835070489563477797422700813992570975114161107525391321867089258335916015379781598386466365144893610307637578220138500672655227885635102577424513515946816635830400389053031846321754920885696972845404470030521955641768769273810643107498489032936841348829273876055259492550785181346347024939302593827655789724340545794876743789189116521362698880594010562562463783062706433868633283427312587999922948023559792499627676730028106579605809901985757702122807032490689632896202824043036134190802348628702585142138284372153805359056069378631474783474311816546054242658978926589448106378213631968403168590876778814501667430970161003826416409586735525034058936497290277165842381766433568214842826606770578202690519483281113244569259514166235216317538423551356871125865938449638571338094710445426041348634598959952199109022144951827884238919078879013140322867292314294525943448814364220038200994903874741521944707527798804949366972030726934607016978777391642910507843694610043894173029592193086961726799493275948180386436759723044205916077983903090362244990891271120546826180117946620888312692606114535691367716712548946645015351505903913854805148375779309913070378047932527022808956112503801775888639511377199831830325861666726345272820489504843796005554617398815392350202023010115844185544337478814756079768519561623194371117232360361504716413989033876400843530964681750821217792182055146268539079082347894283419145760972304302109701562831810333352034637955995225752298655706507601673964080311847460560639682569241986887628594816992663685323915706264289717502644775667989484687227076039465861666001016994315627596348316169559696232918350191224322124162992604256005009210262814871115967803423851804780196311259938786303400095341195715350037769024405937725010191751859526347294392843128138554834735385715703808882702322865195754210175705769615208301401226881218779344935262424360541008435611234911203043027629306113106616419075785156780644947244181116726479506611260906417458622114880495825970231091398093672416035297196807230136591672705108461693354959575402815238565799969612820886477356906184676452842132326248074487312168899758020902808173184602727822124068814394233663217318289956325801491904728408393767553002723314789950894926759972586745549200358668501477907479913435946158149675218176636522280473923964074335641923925015681930163324037018728272866662147207399833043026367471722029928492038692826652370287079783489362013308430272848291799247070839611213472925358463686368136547769973105572041157648418570641885654174095861646184108544045415688222566941579234412127086516169311789690074630238324033760457386362013307709929696940406884519289174195103098188296997235117684876509574686056377283927719829523012834554363005982345451202652135812692346985808136771311020095636396075941121025173587018944801945077806709263397779929207673717329135795738942221580588557610929814305738392801227235187047746902456784884069370041548608840247135560010706313104509538634454837937291482371399075296056479423671120880642890939149598968237138652979795454181878348278329796041286214720205353675447746685675774729789260198798451637729441153645461087591315333500486741843157198781865809589657834790792393190869936157733092545138363278685851593807855096275578945734620126094052456385180873413939897538361160954272481923639106391054459700042317587307120459100230307245760664014448156982309583276005108873739900180166404625770878621864929508202268391410816002886713627390097827933192500997609053398464886879345786299007751637871995165431945010284529091297107452317607758837492704520162830762536445522172868279919656210872373729081496711674400551169669754712350242420567047474322453006288219021254632957172136591723009966716762977743285156233323966047828939546827274662360403555017804124425949656896331482219499795493921232255410603427601422833932944861022418578605431741295515331957897758407958340296677728492105661678903370148609721592728366293166999530973540142887525317584815132565439839165657291927385962335073096198132989865905663862942482353216995457888096187406409341893100343523798411195955166834427091636259719772511053243685922120518440996380941395251796417430755457576144847672729686612532943377454661739272783645595658856294741865325990619506874618328945424752303347965048314205747945482819089565781440129320265837176466100027855398115030155406850381376565653729383013138265941297864315280188671396750270250847834379778902859176153935359018664173845843796852672597123220405159313961403142323920772011620771269618694149197254076029496045040201691009915367808430343798786757611371085451400445190772965882499548917145282903521857907865683607385689980710481663184437025985624663170866201409167413395534513876060419031482569424640299435713058753064536477964046568690219811341134117178537082805589795529211140661866762833401892729856574117281914251235013596923269644673917849468290449475302232778957653631181066922497229493891818571183357487335595577950204944299901721938849694629608327144179254549094625068325143980703822460649637773791317200580979247809666565667199955489648397338460195354703663398667245223327124221035288510416143219667163879947698318495399993109849321562449241990172313301670020651812102904013689286065997002981502277546633411720601283369109774519015702478855629041522331338873990628350372643327964238290264151454128656962102803059113796539245323904351004123209810853222033083050479495562407842343891575737260077731334470508311690935130931276988707417913155266937826957924097300781346271637588300249069017402591056648247108853765229725355391419345362132931643775544064175248788769577712544298553060534007811566752689598005508003254961870943193885584738901547856275989766036062398630028689873936818557066048579995153580818177948901623316641325738772152722786082834220800085217786905283151622066817477503366730846037252829817877433253987896220265710346950838311689944275974853503160940404718021110306127691272978943988915715324782134148153496302392322455871212652945399740751461138655347682980198921364766708053977011787086147184783798067004906881573516430224117003660624980948664026710225789143492592146962867790711332738601527657891052465378840595607245935530204178332209595805739931764427736118061056455008482609668874563040571118622859755402787835565456817893282842334225887497834289281750178410343766796242754493884575140557858636442667397651853178876469802075567345570828553112369007395391240314547149187506064778121695891938114611486099685195211783666265454947151823496621248311440292987565442382011757292224912748922276275243516118376129046971836526215523641764588636126663182982413024398680569073541087785729659453662248011673633059510738656231498269073618191186077434027244357298331915894519614396223926998595394853599101225967028781821501784386984290974993557385386656658661702201801914576169512911211119495497379302561782991969273178558504827696928662852209092173201950558416562064888682722228136258328489105011513580608980316126118226912449399024775157467466243167757254391464238809518386892356564336184063700084062913333034078687853221472833944640825578007164707063696291995874717411036119429929973338705088890184551866552658909286910018522069749386610505622277673071230302422807911506751980595841596042383292993950081896773755864804018073792467471336347944523984061215544385541026460238399046250062657933067414271552134808986687714816675953371491825038717760549016500089912511943667822355660414162253678332541061965286624032729464905064328990740275796130949234482523906648821037012355070774327326759147467507452662385192141749133860558678042239772534829786671068778186226741043002854792786138171882381777379966324568329330507011315193156520919983210298709062122105747596472395258747803924115530532468797365665267889563749339587596973548459742706019454450833034473343067323836834842371918742106190584708786963679381424069722921103879681183102123394636470277955047045348336337603403569463285429516487084421574905680034632938948866041969510392028238038531659352913383811077071305264753031414259497037706749783664530285468581651894414440823598302888084993853143575218414631495939489788324063194873261229198042876967015666655361633227749925801506375673722163547474341959652949915180903717204983245118392992444409148638786393367172421020323667948537574245874191593139883166105777561893540656817538261286820933457394247432648604869782651932793306494432131672662558317380341272981438516639956873199157003895847565463114149537636683146932674325601248148123378613342340147769353459996268023756265502223083026677231188582790436124282187661560680023840093780366926106743096558932399305925267691801145035284173610305406492900731029419193788449820747595195844115106114592409272679867827829748555281989241337315108502052527473999803572960974254409461111702348454871380975743601717294602442126534904149360861151058813422665542742529614566866904670503104931926309692235326165149093513173928970352568244705472151117975436880090046460141245199099950889254347850050262894145265307002801124413968861169321829254076277721786486407429564448649944827118032935255082634007063508967372128113589967953994931586910154093220973706599523013946994421864265428043557202578597649877103985242951082278232120329302642098240851414237677909937271592309439811962262119192612594662435262010759413447473241077730140474361702162169273428015432767084388705924805181847735194418492002752936589197263354192560775906903890290667294055346737791126885471282468597869312407422658307985284945353962796441332905653290170818293062799528839881237741529540547818416820207036739192348318197225680338183973405078354366943956648655181767098295422994053290856991747513621512301408895662957385388910141460372469092037709874220987614668767923287520722559493439592762302063316109700681390427910774196187866818920248730313033723894815352027195806988339952517012394795955808057775667326308175466972327323046820425810525988868059304505175701070548614205532556764519872942089038666146198726717083989128031553734691267809332570097825858986142371514023666610337447088912123533005626472419326041435697656244061342573404732102285248939798036022367299228206434170165072411029129852155272491916410843261980174342098637236084536176059070098199493088363839422453470565932399741529934536445508956739520240874134084256754414671376562190217974432086927665963570738080475797659501669515421153634799871998111908237115291962526068286052685105184243530261072542390684922630839982357564157101484617428382219021451552455157445892097989369825198166040675529104489088416676723972947164781540374271265498050870647861362536255896075203758057425108921553720433233556420507885239252324215851749374288454773839491538609921771129570674396228162666019581509203622528870406445507830218900403131636796904850405754359426084240047518542271210009486074873190550395514578112945005318512296400210296754432032359967254476420232769167594928194159423031773700662165625150216821318071887517872444273209540657310729635432233194811139947189117605692049831395858674593683033955457448299415419833028869298196721634824366291211599004609560558625104047578974962878623126919570241582513935838782598132576762111385133838658483087591448899135668343087212220875648834258490630299388717103754011005199441975827957623028673915309062300151663205568917152560605524816948930567004447435555861926463941145173456736902137155151252007550358494543331695526372669539556063131308147233663565412967980380462527174882192238293225106500953332686524151813536861589661841298946207782745670851081430773165021107428735009611954155171374021619161325869575667252505394389267696812391440580142634360972775593782440335610555736422395299342389558870319333617502770957609205001544658233634294318938538499700743368214494124596061391911133416948864177654030391573376252886139399480399986160092805258080544228249696547007139464934728117148673162119804763601693980467540649798685334315889956843895579770673092250360508247787658268891286240549276852864745204082370786212250793218406379113302631004954553984705295443859686814902076156825248368131198730406324309982857568081548464593685843078300996761900475916500477470680847850499047847431518600010620353574331346788841969277931710098649803640577530753305220555796402823281489466898899852051492427979584130437007211404867950195477284261217130511484005862186321200066740619008865048237812113230044607702858937431667563546269796413251276928608314277846363871194159598053842330504501437021299373076196611927257125991249467830144191063651072505140168429511675192843895466805496923970457762456776701617076689374432133294743086241669927085586103963381200910431859870162911579423797666468207963595395553897003526173741445888527346933476857825540886541366167337895569674924619445709205791510034244107753140182686618347121858352807412277179407401645927601733877082536815256146046225675784683933206675013766290020071633004405934560714731338555623092671728731131863655016090222508435621302074350200046124625623178517190756116087738563749993952572445810041645566580542699743807181010294101162634921911819474840616238633434432770411297332951234951102090476568853365699965212417337694110529903858946148861363881857492860540494637594275316620303613324310204082558098581521385052050730030189896717542805877507600256478092585120355247829260556286796420875645463819679434738683986565727145034358629082723472371324233664886339859351519183821046768727156149900450475838639856853928430021032645370924356464956597679077013189401373368621261401816043400595849648867072841412660151879117960044934707195059803962538474470888199334644764877738496232964797797590406113625364295585519806352672058564244153686083500898524131504996335269927251115709242330121697175099418878675317994300160307732173930964340992515208510791604087075840658075925041296082409912119156143752814834549192682440195436562804341312530927337865022735276962485848190722186920198299094063237679704629119247230754015327580850817867586473154560235137022600634068814651899584963704229957655258121129935752763585944031357796359317777473515214805118238330494457470896443050157128194789913972492812155316053967035701378759822461762697686003284542138410551233229058887342615799525681127067089405519395966053339945891381240229313509355952376225301554165549372918390973039887202744670552549480198838335133856500251459400977946754904912708483281998094183726978718827468532268713436196767196676884696296016310278573668647952425267648536366714293480708513233931582661054921215111630637950407429588004504954054155810247379249692626616091023290324061295431706995769247536153530132181340578548894430903117887472505095686752837931873460471097509930509616017663037665357984499848529034390645719077108742800254177070435770419954464841589052330537419761436544856437360047959918613604007017531247716984666870605862702108912553735484916482799385725531494997559468465738038140543170757360389223413798544642437805175973853737139620927769449926307372517461945097668368994504102205417754580509037417882752738429407447055423027024446883367455718654355192389318534451086982563591467635352525964700510299144831223106195835688844939929734814239758943044022644001309456644297144126721279366242353822386813262358837083981129433897789874397088426091353136188217576084400722594793837131258727502172049398841876667263812001506290104593230673612193104756912499405197684322704014472918579479788032321716554494311757510161280234296520462781375782793670337631069378094552072754725920873319417855803890262066354801187491847001341479774806523723804148021384326158926927111013472693730265492203143549307028356588677879515944440807273233676430343420340677125164094616320991167988650039895748957750890004325194025591926700289918781978945370662969278357936149194091588121621276601175028751381261300200575255892208721760933127826655179762476477910787417390257286927129008483838447850213405578866869666649312891184674808304591635016328623567156274218922091234664976557258393204703306824306965045267675343206498518887967711009006536027689715997552369542559989500787075106451729724518462570044260801198264894610429113153788450628412553516894268248017608003652007572661266420407368012290710426764628801826809243101970749903233116771036618380287184769435320270355299381727420880443454278614185998864068966945255241078142573582544777060450428062654887131588986518809074633374310333786949405743290456129337379332798361134963966152653282295017092936128539717392553105602689226585100696594946610386324551508159630709161469021670622933276540153931887200581420031619237394560934944227208405460229600374849360667328109646686666720512827627056404704623232324429589396742597075615765604078537400705226356239202377753815628807085233469304679709058832425777968356143577834716094876022089297063858694260873797579327199237206264792640057659546868341761659437644878910074269353665121542007231305427417139254494085275141216394701152146901829902418534903664814032510697012789374499701071935588280178722364181892914793048020841317811739487457605365286018452725179654127320937403823270325605805136133004971012541348011589175770166255043638390079058504452866124699670456647113548651303316187392045115775600782806664162047310601868488718886834766357824016240032240189015941534748219911707669755930515778023286528003867991626639854128787125110441915564583779685865444308641103643522870536474962304115367191773492182179547874942679866038709215420729632736274086841303436814115832902956794270878739001193521669144975384713182174765436920499916021823335017337150900405961649014351350648243941323075199639597623044894953420310521590507732693562728031005693181786310742285345108042735088579362612299482681132650723076981380580778050828211032948739495816022484540903972991719164215267204234608177437810358589745987702536154366305511899215657575568317703182273546957545280200461038180795161989812381641248236919934032114390489599547370420864310954554760395882654425274451927372596049304459892681574416305392546161640804923464832236051923663437839803849870635735566983001082722948828773032384678089135061284645707611745123752020834403298838930932466027593902000187469475913196331170958373704458191652957507110126978001571193033102317376430345776736200742117360039332184960260775237476547561106593139453640380606182742162042707080091156101727422586586974454584914630811572674365935247186786027503623590165683568714993926555341141939636469465167167050201050237215205235651599338720308178400242843076360779771326401082602110970180189355856078821120488688371778111062936116256840145356492307377654241318548841418388992760498521228351063940404467719509123633488626279638967587427710605692041898092491594085583593644283123018732432238503614726085865274995227211140870041557499207912084080022121524548099137265474094912032766745124265040132103673453372078446229369576422590617403765631608340846595499017874935338777686650549300018795462135569126248692540354878424991222147760683214942178178078085963116521912166664631363903528742912296418224164509019319233216817689436576266034343870341663248567360534742008721737148107635227314289816159274376907144930221783847402057916652385569129182433884681801606075957514769598937452464854924219912250614890273687037099979372992949437116131036869039340737476086258386221930008691963640519828737821266468126433814307616361057759647109633205108099223027475253777842497893262449967308288919667924641372846118214970256894087752723511957643092452360551061526032964955207378365395219416320342647155342409253931779589873128772378260227490573443653352646662116649830224932769840967369881057543252952004815060154095378021180449881026717562185592903458448213389731641144054292482831680046932538705622883631894497003957874442725731367255827640501307154502226897983520566514459543123592964419242940060543119025842609404434273234377978806587051609255429648641667829669433225644694668937820865432467851113848562330736069242074023652417608903826370240686100726982459876906132419353811540567183681530033930632425089651316053721776397814344474445540176383079887024863549349346648642354233130642566349377512415389538266942000527177164619370373759944203304249867013888448255321435527268046099897615200613038675539143983883439271588505711508183144599789161631307846694604148160816778271473960780323500211811907716970897902988560914825678275567438343427398321533531788364337687289609815507823873845585532090083961679840696816966194889028348216229029751255228917754886774720028954409734802022773081248944869669132456084493079641779684909208101663825403392188371100473706386546014954846813148249841995057169505521705263839431646471257194548980218953376186815318636927574022595665411261703541184495249272125395420688561630336783687575687743980076154849921424391325534824025111005985306650666976421783174955279072368685554903863894206176470575984317164058960537739558569179996454388237806942538686228724320678618789895904451232967036523000463175865572197172259347065907135440906071862931889240974484602225751728886482133416100282413973844317175156799242106019426410130093103214321387002937126791156809325272842604272330303632924496869476250796088565800368880201176190202739728240571180234064102341161480064231343571300833312860855818547965155950510910130224756881933288038530186251409637622341795850492071634164760986667916871218884497108383673584092351352099233163781133368958387186052756552277155322252475269596143812427078604571555513038112182660614131024119998328120868074195733075962236811791963806460011416579581476742626693301908638857383050317688723266789451927462484128128738158053701674619536890881270032617788359808556849945288561968930071788623323249909747763629661427966878774353682802630327723621223635114363653789145300684372293151787480191926657632247072921478948999043167294669898574950606195816137599851136320941198353873879484247900695455474053464233624100603336865278457333411413001395055278988488106581390545794837245636456720961929467622204495851299262735893489059124349599928934295606149488858382546825986494064257417958705978191190916573625691166086924845260074527323231483555830729874283847663077948682440813076489197823210843940834594168436300432263073854448390310311883548491235945623082190337202288522036904051633966969048860429842546161396025235873298526920619678495443120165517565474083291533553979698995328470719595080452975580644224531506020498551663432863225883875538601870950853007095608820606012514477470041653898923705530876088217947036796111106607530475022851589596375766621310148246301954138099020995035120418251684572875086024977871186084508834555196109244020301302688414678903783594209708677004112038886103199753459845071478743570829616099050511824619076446615111581691114435908698519306550508550602122042816559335504134260093580014363994195970519742052580792416298570108233749346684406066917368325798757331704813103574995790346782644446980044618006115056672873831493214712758388939026178655964216073959853045667582541359450531845445081196803034555330680101752720260046169683377942823973175242629445672043262265344694256136503543484060193970772470159900565572370359610100466488237532353073233334057582662098316267918206508118626369177430316597795595663287957752651240133055541160338265033170442281194080588411322704115652320314538329654202414613954420496776458552594994171384855472646279608930964311308690470884465035825528040252592975422027847875038125903375107448134673496132238784320851937172029456354297639867422366069750303331262987658811887318025422756868845603999406921899031244824746173251060656901681761618119635254585653188361191480486858848874327151169122803086011752835191048081057932028453828110218174008852025370233815896185393937751058819348730986347272564019212930146110243959966122842623581234112899858173854533584743659931873987545494138547964357745127094457566950100610068967786087263178639843407947960436980755940927421982951894881905623336325989662780782078766026036735768148628388523974788499211243386008747684533936326718415579026621247361244482058997419244505905725198996627518624960947191180183813416692197126169953747639796793019714384428010481511023966539413255721806362051191692790771123184516153254734223377893769919562090991026775943860187924828722609312224770705315081008456703078125780762387479717457157278500289654695777013599499103661097210769878777484859584387117635169407958878639523424828741998655099313312241155852945985269116437856509398226918137243977012372182871712449866616693012746741702569943197392481262175072824507922810606109095437262023365493154758008658777421800212482086096217424316968084105590018487071461901777936666438958437250928075904132515509560866977405865646622288862645717355719236267128156467851988440828431073388168882741074030143553780355717311930027800034695982747285004047699765897814517524005822352223556047268212197947369955678942451058942235659573269331100904879640224912868875244361830485837712870036919560872467522113805088372308717742005877445065309133737829932641310073001862570933319894428068730109053605602259111546107988269931021344756301292097257480964523438944969987376048696704104567674405256555788174152765339992991735210020336631022097171077553950857830916399661274694405921110437278714031273006987138724706160033254650490420813705110782268497497545222420845069915994160403379456889677080455357577079776936859056157472037520943568211018268735734730387026440652293461280423851234558184158014648307819160067431212240005572670761851706212037186361663643943137961501138674164450820968606668401735711133452164664137609156606286073520426656018059758703871107646570370354508839236230729516014535058490691742083860090957413256103701051968594360248638632377430148085059715891564888778330812863539183714096353660824216305662821644771854267099014569831060624033849861463755474248039481387530358519886937991614794055082715488965117751792828112090251123804207576276861248699543910865954445811781860742344413102388374894207246630563281871393389178144226052649116843065018487568368023890553881539008512254663788133331878500367967579520782901892766069518963252954063850384492834174993596444137139927050152634857371827513615023568297520226594348705089557883140288237211072388938471239710161080600953550488476910606403221937640843900316252274511171582213808174804815262714043548152233455504835658253098764566474881220593327476633654116791904216168980719754648215651211158424388909432492270227297794179584189608923847124730976552711749082257719032608210158948177176654605269156476090676174459113877035073195996785147087652873124382713671778466956228323253001499065692095425830062763252837198155839473931713749833153415872016371865672777796341500173399581505532953856030054304736390294269389805085090950075864224332570565139113469433724581645562377092725948925762137813424742522496786869506995506915367391194816286970192581148225090217088844511894791323119195777084462372982480335710120641313333469497718763855666941720540358725935263488701960672685660368899879187522215172517382824292300303977312849479136386231036015570585345524911901600040709825530200591884619576600859334513281215545312247913987927265622793072187837495295705684730322825927079204212541214541192304624175771822367538433345941616008606078485273900634463417331029207684038941373737841620820180275029329410880231807143386039531162843442529835417513635403960126630484674833305342975278405491038120449839588398510512527617773600521396201297024110648553727430574976343982430211662530626461379393067927630332704359213440676705671270746394801250138158356375460571454144141046025020649539681521627632443750913245532559323058738082927882330739193046007981059696429736928912926320601984917202733176639328672274566499295284887898981117243844803142874314827677496296505501332791724237122494835728419201658436192077391788454337099299509048643657169537373988301816275594492003650447039268939054163234090350007235420351495299589225366441300932755899640031220796477421926114015348134327410353184661039693340087758045415259561010532300608141131876076035921168744939201715155407352233238668508539597319151970662474749461897967141906050964935306891815613378932728599399823815415830632196194822972858509951932585880690522207638318152646744936630331871919158340831647792508863548466279585147459198911558489449891997378584930648687669320730650246386759553471553645686193962817803714762612767066714965337355298306775004870854138675936118770869178935869059128339217438044785530658349944430175447951285189544633619725234169305250791094235958819984609534992023767379074404639383792635640822519862050252660556756981981161129173284652617348960733276399416179156581100451432328063313676232757455448119042677925076045088266338673006725200421731895074765044318133860991456253850258076915945555944650214322341352588692692177608611700570527754431423829717526346126293732362827113063330535745444185487398671899822670951175907244672706785903297194082198548730910089292609065045608418893233205195407548262395877161535983188828614498746583249498214929370658151338281137856243718423154330507436500480641928681411458997452782856001912404309620427808379485076053014284151840378477430161911713348887611694766848249114235189943413670170436946401376041268654013180257881837228004267130795628488736192002142754913036234194121989686440337353549324247206751190536108020991800554274331897003174679684916133360583637433372935018623109483046809136620733853245279906371668244773441783285522403363274243497271975633894912394793800519244391721033871267161622928372019278587281816426662428443619847807052786678799611134669831047819382390753648522860971249542766859516652415237195572832759142373389423665482119369337901197831432867884101114997718660536429179070372439950200461459361620425804404418745640093072526197024586727134511153204643870819747347518102840915964972002645433166959591516198106579196384125557643652211140815596046941300583111937215300779405443904677225832754170685008764706267250484012688813679641252297312321570629639918763583721967587790660408457403660195440567551852329300865440568101391650087993170312785475191769905847340290288754198064322408648347015307385121323880839280003611527036528957158680443155049950274503739157681496836992204124723550469751254854545891158726243386727356344987040258360304159464072445810384892006655637643978095102101932756258905796837132927172690656920059787843332267014994056095178010978611543939758391775442494679899289512181785956613672995410754232259591541985115727587329386742747918198681148418319838845798559764282281450492856281816166533413961734647400856588622645467528682613280186341136452871067281620928618117097503562852465546624183081463694131519158400385141672528904078093523428490283545334409171001350714957262459926538608855473522166920270359518619750463283535500153600897616614136254470184212444921511884030482805110329497056890771338613156872671386326358186191242910716424001797409462684972001882692898854517292143691141715071861974010219884258055304725416093680986305514614398998189871749372300987759593120614905846990927390105417051004394662271968557945325546222418265957343795233504349135294948301892527724327995105322920763791887238228837702719770473960453540969435662076866376129999366297424701088032677814014820213889269661141013904253429992864413738915585659700506130152761649601880790203012644213750787528233079768225550081351619097036139082308812641730628722815650352483642086002692724486468746533314650791273617583323534342273935923060512436870046055332685580456872323971032101105457538242876065307320890919828103178985964590967792121497459694020739456216351805904752213822878678728485063067580854161143139633473158364965732691815804046692095682104369696792122518154433950221409516342388496851162328495347583138601616177884506813096110909333832981548670469790130158303966039160504976484503754694283877687168896118930407706553590203735696463448310938015430439260291483432060258885122486347264050689298910789030466937341927553858926156049915815833929281849649215026101698200356400960824279841747224615175080946476668499169267562613830000700069133706269593364239594560062856120107458707135327531602903491949574900862977256093370628496713619763063447870822244198214717955920554059532767524009862679792779484557012262399517585053706566370843505531243951842983401790928025925295636543525820130188866149924624485596670817509635249116799745125238452664959594464828210584762925089391874333073520305666608095060014157089127621068075700069877054824581646828085633163076716938222113259386358644367792262346718501941201113588359952420682763343426961394098107308596849174296107807738846893609271248531500676466073392387336405756353799744678378133885938041186589519402828856449819147701817090770348974064651810496689113418300277510677768706502223524661732788570887614799780227259229411550745315937868177955216214338328737879777955785563227949946431759751250718205854387643946999143255103862810635874173864819255707588255019173726788180314273649595951477555577178846564582827788801992345123204437828661263421983643185388076941740165940470567154696685572547911000198942543168189111991357103862107804505787615862282605787065088385086850985750052239889563175989193739395812515899321282334752648130865457949123679912800782751016477572952004864252959764688090772563845267764600152066467251130582755224497073683176368878332326667975508517200815553817908382037625888447840843818081939691238230004138886773133339690189844706338195761720287617427080175813313775917365775965971264509167551189010156420343854148444910788043502232560153755318778921264155312015718131923797146937766300657000590317532962287131921673550073424780076837922069974436423934654439854655248846579649648940418934862067703071158942249540635973985484836735400448640939706521207084324264456612922610558674302729863171030927620255287361008008515878762843482747011244223842405464515819305629597856443781828210690584954568652762384279754116692154820606067199800717287247371184617221777375054508229257737924211012370133675311509252862134662786339990334240578396491112575486119519032514823872536247945850028028670918112668783641405732236821419606609084992878777686606094068937343639944208304927567407603669896088541451973467776241039057268472044030233082099203801645612902004677086641616237013712051444280829671961277855841260086099832050360142552571993978911535505761569265860856445023977204571203446803779805310445720600064241337385932450364433748150879124155015216067130879677886024659552579831981805071325728738435499323338476516969343363464668911321785336511702712248352888789082770185985527522444918386051029784308181774457699889243701144707295373805475868977112799219720363477975982229619526304549495762995516823208825877712659733741565746755494069285646584718156771166623153006283364641930870462300408864412812389550876164601798632125566429219454951587503764419274921425805422655085540190397015743367981118458015926836198623663288416211194768453962881723736132614960498232735255770755833133328963118577333863018160547608459020675125421424458455450082133898144924468535390920984861299787547923070948479701943378518231705943837157520028331656514123378835734251889929069718340407011946159855973266799940969836640815484881882679707055026948341956268312270104978222088099053957916001566803442389266776586175273373699431476910263452638107763807876150069554365199483176662127890853626540578472372944186696296976889959652641935191333017843907561415403352888569928474529476474735974275271744690335481426231324734674209081143395619565067642721562062521536301247714119906918876120090571606818683358158130768632590744063787985232504232394019518780422012638489138182511507876785006405224289539838660081586121563803758634539414313749951125821610506794377089876679947284777990294904918990857525631336384120471435821058100649207716319099318805419985604672050727983220916163388807656099594966141194706585551306024799772884928095676438995426320499124506036805796645719632642101334952316938504524656148089356888663065043021503205251411829537655678831624320376367149157223802293844468998721897999549422436896089782753231240780214881172784892012520385983515752479939435852299785933880288219102906072280485285671066084084816326951934580868185672833165555924671134273718331615210522947990495292043980239079511348688785380129258689377630950231545110612532734566884544019210722758287869607062985109590409182065581508813542245654580168998241211384427572918218063468082719050033636661728277256600157225913069061760287775201741732993314594211302691713193578849427422455485884201282229161987247353514456753102793373382024163915965986579366962208079630870147232424358973847662650688719396429226689457350907126254108506316696080103273699382639947745604783898164686439147298785161742722422915132956764464314139279307493069641196073728696633059012589965948293728374444314905822837395489025649031510875435110154198213418557646035743207247440365272379477889645334329251451453866027842256511523977291986738747128624934368527180613271636554700760449944132795173114572907129849083540551717150352129023510300407424252815900406694100469926967203728777504357207142638211263726524244061801815553011868356162389411376863091504791461012596339768328895036707638388671989909583887218419418045702116086128985443566667205933311563115717535800176935123431376245285654979860829522762187539691173266533496895785328115394826297366671881868841932165671645817658945879232253070338476284049187020100210601944350681832634890849417291834802896834303806047466878507223791633351782972521515501627945967429499217900909777656331254303483238532166708005121719305004476595590156897713307629042724183791118381636538857310803817979671205500911445380705432673801059624201554201179217028024203388665633422214454564916423320659648474692275208971350153723497818234303275612313946291054366410502327837019312859674405122884435800003693538162237144691043693853968580634082899065518637481152614730503483891515258694292750219144653598489103804609856954410033535130603589730405050346123542816462960268616192728608168596041126310418107718906262997613488372365986528948265334095078294461938220194350326043267720160940402955156241431320609334518790753397658196430221867577495289446095804109672932875739215446580697582610943773351172863126070383621057625674131970712056073279781610986006457214591600748801235193783742129489485816143206658803079444044722026941183479815941325357388731893453755074120270876295135882969354119001182314451960136508391735408788933387753857134280295514974323640238120509426327947027220912975520472277691256617925606557348000167765023566314602656025253928108038025973155093075830575108744674125283310220186567720136125859637967935772287671628019198732153929356860441765939203569231209386685388088980519119699171981285443615366333253304378357181136380917580808101347520000002324695639806938901942522554833608976879631473796762491393368954444805667283409838543863662392069593568757037994115848070998602053682770860934829771987328974283147287480616543816501957182379550002862878274187616642723439202318258141673925846974793956220944558999996512004406834628028084108038705190066102445075693745307056497486784882484040660317417603007815683825562109523899755255102719032263508728943225175682566224039393244209961054852394751008594575650928943662170621777202850486800379116511441294910790315916367924693047489448866951951872999860542595215962044101708420865639521405517155073321425921158748478929939572504400707782358882746133410738600211963480652756258062637181472885571136682572275117493476156914884473622372587059987004104051893644547370527543601927101512025487731263767823794501972052651288663066117431213991640702493054923269516051583680354680001373236339926009296486487504841644366765380838383656621310455333390796951324021943539606506458047740129194988361775653520164463320741344990540934675440610168653169419060562504106219634292621450754849605989486952403281653252445804381971413550885291812953677073898732364154635101925386398896045571023193026535654713310342746344772049036528639947382234733491680291767132320291127694805193263487055789506163059486928406270533220415262846244136170809532438453358586864711538725726235353453367221545590254944824395575416928420187117238296175514955845251939636815702037911500519496743117439851849878823457684732077798978191254707335769651875893955549909162705217383274460237458897840527118760008929873307410902039760695779000623677178956276919298794913986148421163857295496997533138323861504679023130250055932706966136841366374970750594652993906082697377466470155701786571212084579644294304706953163647389367779441538951336033125269730015310828329498485403866980547116605661515814652717499751718570135000743929184472546418541779227663435382613294251249162671792116071987667797418649775895906059744197405875932769873762947871579803489139126724460652033997530434982933489202984502404989072935219560537997666253237580370720423173122650591899093755196912625604777158303961041947180865476202645183808074317607014918488937025238470255688434220409062217957307966928172277845994959855891044329967737578234181559624740551075903688334754708867428273918276522719456125708757032435770363944998839394523475168835518768669943142494219482837399527942969155232182173610086949508671472687664525668917000736734375082930089456436374483267145123504400856302877685333921079460903136157945680712703732300065757226493185617618120782545133071079479029640145920846990774833873078145786478366095395569431169476812862613944908392856856402844623423088800263703016008778745235322326181926979272541573218725395060387501104487887806992289609059356975797438183681017164995292452299053934092610659900882729203384357180486831925615439600500234009869443862801248234499983963565784735875095788688750758567996052113202994427853109755201082649597857939990304362892024440232157065508981805178045625918137188950152260000830799781843937426630856155226883973652978414409234916994387493155531216849038161520466862242089444715487162356905152740869321571110266587492196152024387923503950396585959752288727406170199029940047500026742529304841518438514254617834323127944728873983088463563146116256702895487470205643789571245172843790939920771382198504210695362969501594704436674402605998350016868182278303839830889031097617484317305976345983656093189000603771452223503904729480252815664506165265905529207509523680460236568378563603407484760572808303789801444368356565853566492343103244788498628256655372580377540816210978938781956864551574032492333872045740249747638811675208353984751229089644608119654931576211758393301277017814276879403335211579858697853677691736169232912366090007723669438930137332702741451895549920884458056118979500385584504117471634907561061572930996833416338509514494358343929303439163893141470706783223221153358721793830627695160338763234555923848242307295631142604818155652582404627916821330822968896635234367915559066325332728303748317593050960546332009672275270306892722196840600056484765280176367595853631778629731836740089626921475872934350472178257408071585114256489860279038686816203683578361687584396176891766480064784104414902871541599925474749837590189503570945629398427028042800949052172912782670858929561156366876160500014858680497891297764506808393954133776336653206171486960685317420548879472718355370389923990350107953196478689715027148298086038268315772704810731651787891614377606549488457506541187379355288073598248452489866819577966139705391417051174978487128447786003467698731150051360667827853949089702417712695181330117628498699793947642477130866945897011755548848567537306679324898847022459146381582595653162249644635723181623426465916030240877035409855448666734659556011125922650011316174853259187872357651850963637489942853888547033010171745532609422915638904243784399819093382273267469078711780036754677732825695278503930017514292995611215441484576613286979279895174337849649293992744236642616569417005061562640787035252929100606981814493184234298621413121947365998431327261670728233004806127152751032861562480217647314938435416875817516088887272729367503808009702345027798289166539125664401191450672371618840243254233484458708351701556487910057845636573020965991194763034419297767269464509726344033732311102813309932852794512575656484648527446188183261818469690506957499728388622071572881964175324708949481034749735023234096060330172789434163248914648024857468255537914679229007468022535973341588892981329915529479760321752890603543450090040762806962632723117023053153440305069298015945404003672442356599970531772172502358760939026603829793388602466086141915002884862130207100707665790680415554617353522352604842935470720880198154538365639470131680640872585530607626239354116326745479175875365866241096669950648517642236761832457837996299624743330484558620114207494032740622391433779818761355516101554093371388456304090464278150622097309428322189904961323540643409769039116761493385396283776804533682484968523098294607625840812616747108535122967411779931326838814950598117471306931952455431449818736376041199330743414794528691034093191357007831630549970678880307076026106718688616877675125520657761906942571070173832809685328552346620832259541867059127439903370393924792368561251434050836912156891454884349061297387242840692547890156232780046366838865922945379717303323546971007562534369885150886336405433757018920272208734986175568632588219947825990244519930270522259603908901557562586007432244601081556034932452040536063470666955018615299284889854607566598582079578405618070889053508786881656038553968051057048163524508275759339623720580010825002874531009538604183761832904402277623567974703391776065984777708057711918556747929404069287068458231616800805545918616475450772161657650560531469573766809047961727065156453808363539552937103389795350336009446249224001313552143103118137541258996159521737569350822456385488166248770105039320523561964353573417125094058774771194266433141126284876839009538584477675466781050084757811680574152038891370653772168485580900335839284348434696077941332446628785358155043729594579690869406935923777592168332414467564965435796346767812446505676366142172948141453060703306079036660827237091651729587854989800774822674988684578341407602747165253784024651976869795033791233106066141250275072454722485977119104387742954327435325350856790652926552307314335343693928770744467092288340269538781326435057948569992544947566153297875083959803362523417401206128077177957280407473356142468094544347767654676617526635163509272959036061494400848851572612912285545105002067126588806595047001679342676250262674354348194286988464880561543633519231107316474747022503291656942506503569445668527287725431431905301857664344136648670803540583270910008808317256436351328742585445696512010741255172778739387587344082203136435284975787393372218267302310293285524532707192130570898807718098161798234390381980066956042842447869762230807291311658620458188950551460139530496901676312605017165547245905011017229458635525591295242510380207674392972728566781745205373102763404519251190455477905758398381103843111393773942399319617139079785539698823764380833531108569506251013605889685115991547363246865628165325051093811231356550704312723210660813308417020119394623895008636896310708553695595094991490296838464285199747835158360937357451849496960681565182458784923982357110194338041442946740966243198834964921912018362920680307403341040594540509719174238900441514696778513379686745113787512262447536459439534412312748199161167831190338709710098216903187022853085949580004943927436999307665092548379791695537261601834918723397984583606236675158912762892094168006843406031164114814509286323297331192493697851201303101860907523630496407070616935637300365967877307954626909771934592197787373499939430333794068554852827137729702229994772074032070434152730975677303018637755678101830998485265178821003079658514619525472750312318732152481590861286959855209714810377784845254700980056287930393692364860075147885966635705411661939043354182233515899383201065651646595148415912614933396963132316219902014345399138522567847478463457843261821926606513371573195298358393892177209994195777173082227206972085341726415613727634769479085398504964507792531772201405291316682342372554397007341907470030096350673300094788989506533067660613363257939979481405132299164273290220823348047361169591070894151245579858440700388999483161446712885909471624133724608922544233872575348055730545216103502467159869139016481543984951423539398159621357379067413538907279048616133241795542879430244933603450566769123297323172222800944790905075232043801520686160711659438787359682827588118060685099880136517149523509668545852281090637987990336473594238684939561290997248969991593323229355282606633916348812771820110858895840238414470111208289749797176367080880338259739177442875078019496831210064100839643879375633321987480179991635654373882939172605880373339116286022840267446949576097450120627382853397367269356485639215342610485702182275974705008973252820066142222380988408813866017265327105610209590828502770897363561962615166104857640382814625685253605872852639848354088047868930268744280139369481757753703489600895698207048141323292170961911293136103405940655765062386227539559573677269088825064869390039335494107217315253725482472356781084719103851441719478575038864948970265626169154589075642924002704837368256787553682261879973067527700538397457276551689924803921548041197600873395243875697267443677841878714403223822635442761547992723287847788497403442580552586042048947150803708327996306313440135955667533175744291855305012170404766671586361868933307538785178087562874484637579051889279440242994823686801172577832308764579998581321737083838292998815380011137833751661142399989200806378604227322772817814879945084028459847399379738116395034433879809204098158029782383769338685088489679963364411361543595565707083832984155002675772516351794467602387171868550749310072246667145854565438857460639671832365166570326720615172040386584812008504817278549354428111098439055374745154559451741473419173234524529580824672798109530704012957489326187155448227664674753706745889945950544453940126317703229476249600391118205205206063030596626023758388180284471311902758027674876608775842104803995731737859113142344908200968183162669893708203710902918291118096004059657947537143394871907801241972603438557989641502895507879456593122400970696540407450299872908169270037274130509343420376621904517461825546806334171874998008202265193414526348084977076106721798547248054031840578860341237323063929039794461914076216631623399661432273441305799147284936815136938856876614045796390235153919713930498186027796067286365550941426531324250976691320340454285588074634941071219834524936627888321005490993118006737145587085433057590028429827443061123232907824094107071785815828971382273928891950523293701033266967676790166609455697177030698069724694520655625997690604325554048729690119018716238506845631392713687864426162829494147709247965801918883732363796920249394107401401702117314060667698541965390620854117882696953363894833425701255727728009396646888047112515343462334393817141848163277923092176583672381883425490865478187233541281165379887260682420627699908539029179450947846124071227040837550243215078919264846875016350705085502322355830366529329018920152887490840386388517642016869039673661358087946720597945336507650208668441943056280091099544899503812011135521308574280140621607453607421530644952522444097873304701880981359855212788485179948883855578263576526180342025129292508192182408288627286015993076882401800516472243031849624283561580259366427827746021249170461392943172748838757109895669577334249088645177778258223804114976367007076122773028653269949407162750765409875295706159734764486974686686463918983217006530782220367570887422164118917799981681701810689816098797061859318459570604028568135368463721387512330520157761421510334134806535273924638387833986799769384218901512723809132753911033116953962408443123595386279571848588263673279506922693121075614041900178887053905660757808571238039759212023462186588193599516334506830108290603575148648887539671008948734645434263760567432098613726634337419347711994940885704910634150226066631719184583337527051916433048752881590406809926007088153805874149685325138054250160631985086043612110881217301314948782067529823841778559194451377489592893240815575486483741396878816303286480187317307694582084164619443557605573067590528192771048727943417929705883564912257982772063145124598903664604814134881330066574822104467336922692218008656213709898517068358654793062337807309984187150379650800921686431582006555743919905635930782270147024882266612455054990875733238781341532546403095055818469970211835081266558275212543889475021724529473244753659304442491209523256927291177835512171632876225508592587987514000273314244546285020068035240544202380135601545679755194985960369925127014742670468176810852387545445256018893508185001920564175757755248724313771580269591757276434428671232587071301840031953244349287408759213424584208271045948436591823250416921021585150194947455897241140534070121398611249654515759156644740601402205756261384842133649513119352904345299868670816742999326667154924473279626950547432578292284549125452830018206767882213876337546806011123131526488721622030983619076752731237833667761684701798491351450950035417742203972103980156205951969238530992713309544898953318389930208735480591739132238199117801884126180525805634568299143620655354176183883782841234704753362447434539739115158887886236017681032076049629455723501017473415587062151483568400053479009196596765381329635557314565898716367365973149923975374447992006018660722303691910921622047932637167215915123493576825142610252261002918249931008201493744071530694668980417185391290985945237130270727971196772025673464323719020634778849683325283307682483710171933852249276885004056602533845595157030523328575330834421820088489502474565812367135515554676249473114989815449076914583056457125374151808687740500265100749382851841654585551790652315126051110486150738630461763461046461551257695658268135901406876448826618576188539838249162636555157896942291339962371122809598988181880286250669996491217360829228520491132381470176247974434989978933341749314106691479067858366712519784118004473791906371362396680765617642230637768780185769552875491318229075855729411435171132544148666101700161586924498505894843268534175845217027360364750873527480424055893281743026537606948124708485522501705918448316859246790607213886109513625914226574847493554957017712806446618666487484132411516956058892035872126642517830672041489428335377497822976824072638340402301999324063688877378044813595409193754734882396659111188942486385503362053442889298156693492487435472793355739907002394494965175505334192539917223260132316454806794290075721146811547435196911331443929098618748786883247574476532342014816139290825925589761542810885144648631952963931551794614974486035536086425719603472028251406474885566563982209264718946786251044390768778819885880809630331750066959310033759708620580218863903655865833579958409640838514388282856290272152177584029185329910256762850914885629681812231512665121329258155581196597871614212946463907152133331498133376840073538666865766226967154111947085063197189832900823069104426508094775239818989414715062726211081332324344277981031275015673522634728580321821780950111172538698059051875200929568816360690210881811711179127464260451034248936542025966374141257507101099799285267684927102816040551321982168290123892172894826079066561454319999141906070036872258130383222568418961752588709389819983057256209000981440109124732118793931878070257192101632092260877148403186931825196700810296059646533436395287518881394375880581057497263669918423980918558825798582092256627805390845166042386862322697030131713550186236082974744547299495613576917981291033960764805159176835122942057956043351044809848857581944865575872785316256861211216189584931112025458697120143224278297424977763928733041762067566325168007611984974232821467682898086437263646882061156590481998443530834597426457163183244373514386327323181074423419212443724226971157114186230841532248587640281238133256337406075536151172263484109046267915552580951123319574321718559130181908325811830039275533206713645012745702264120195547173431249682031107172299463767706167655088187443688444354142401703250047212849059403766916937212912147695520364722833310757418789688302765346242923840661853594387593840846417348072722972690488478760829012162187795172444672196998758794573393454348497380977582595447497233485376025627319779076462315235329476658911783242515088583438122874056062243010846813832305200596527973769306039177808552766827685301932275646629254622549305789159952231655835296215668420792033423236521992951851185440761091467194117322926176145839080280418344835406837590205977715282882705796279781278428336833436469088436629004887069935369804836545010396503379669181115433581387109459389882021964395609327711765392379790816386861395054497420137860717951703625099951934358676608151847109884974884209125289109545605745059399875792582944188911325910921064464602966191482038883106881363925956565069488810454078246367721424943376564933100916736320190875353796695145798174180401553453675410578027636701853074519005553197767027876772458261145239850357303873159463670679251734246401397873925382932135389796955826901161548620736335693092825926391866752758425080481823027991187216531781754798595398972701457363315239086483684839263230793212286654671616441377123256722125182034825887217847135963749175202393854572129117893105608192240252312446733895084359316040767542529724070679801540309706444986135397764723788148715300736160714902759906293398637576837706613995059727697873973979124563090843035402602969216298994728463028129567294350369692871170045065360808579260222195851341783471646462919864665235111530297191138662922056763893767349785638488454672551465445494462820795079250275395966323452148857535840638219048374007859380668180305488198311111261881767010770946382144033427417724276158010390307240338450337635744381318078820920970644099301393435751142258775524566377479976134521737292551117254260398481942151579651084811006664865892251581491465700835796953541252740653242586768605381434929713990017975766371939940185041279231390687112499568819379588267915534447777827743851599090956169330579097665820736053481562000808481856246743284933701742711951434050370137847466341419157443129279129760167396674491155916881213360687631667378857920152162840011550541733259238577551815031980397912062141554468854153651894690068686730817383975266806754844136148243617507717074782021289825231295092294700025709291827204177418889098215969536183318869887178793234181509043605994910901617524547338172057747857594994646835225563470014631386507501587354397440579096003766210090780965691492741954539149275750346514461178944366916703689595429031101665409092372509849817982261189914663849318965500702797167583695221529834935993446850269731576788808503346146884983972016976889884721666147571365775294506580713543295330954549345988288453706917762498850924217565920378980991993227703976507194870861386921213330969146104806741045978066269475467352214991675969475419356110090088170005771829141992277992116190332147359098188865087782519230464769503145002682501508791678071810089013121246841383201336638969510814373379625199895674610918280844425796294399509148951389779033543755620713966027321973973982047503065824575284019823664609452347284336972892762726645691175935793429300621236674141608005080931113981323157016927811591233069430009086581349964659205176455107488443760673526322872428137214525362608596647129790611976877648745378140984640135001996164885053101183670545453778696840862775439817730686132194340484817307771702196010614202227346674270011542766977347353415826085070131073648719501776078991131200832974595837982753055397669891027703790772014107142045979451615909166771391203160126240882549179384714183700593369744759750856722118584963750533934075311600792660337990153828455674714583870089587508805755756825632085687131427297079067114900182478452592735975419367438611805187993527386184959147344710424286715034514349637669953293033611925447917709007211951484416972529033042504746498359177338316582927390107457470798997503316685012572681784904859461714855980923475669090361068970916515465581749790744820768995304593254528938948689920252375123678089806362586390213901936618422900021172226607542272087446046662556515309403038391657635094302822043470856510247811347151857038547971257896512234568066332736186496002602360645820241550038513455444321723326768587184570840705083014256792051706104849818220301277051328201325091825283935690139879475007589837329170678294983730384817853888190192714564896287911905198748693134835705536811790633578627404828376348052162095009801284104056393861093331096728055235571055351473230149472078910150653337460390739945449755584159939389469227674584025750069845498938529567801165206911871591731757500868331239905300726718401669300289228416620707072135834532907092516908443691333167315696395830801953798519294256644190199956023760720052900783528242123152563410867360208369105711978648916779063501743961017653496284471652196332883567926997107798389695029720304219211364702665362735727369971282820046131439837269113945116686735485076160172527229493120095004798598418271500739471881988140216779633851927902097194154440751120444433886874625022565540784903692798704477409111280271286612594194899602445738626500296287134592222218718189284129816068015321653487370554116869661224276818305919724978658679705556864329430486066715292689116279486940855978281831830737236685188111139385965531867649347929281814911518320662221941332771077052497766759521732336316291641957227607693785718512685775879505258698618547067579854242858312269340292331843589837626441623317961577260680095402750729028407033299447513553302854520274040788803851920270257339736275430506180767819592528642924640526037722291116771415396911333596293448010775621037780225918076643815827552244017277344750517477282228195013517939765985891848270663998329110931587607314506326512779455875307728884459120878750782051803424035547281517554905870293217242481555669615846088644279148240463369153351800542622830746166260668241879296664274993021927785428089856666220064757335188644175583709647622779502332633811108817277653194553796853151483563402441372865503102221725177376803342194160083539759001952349791545992260535828543630344129083225312748778706027916663130811089578964810404523683357471235066373173435540137016802286952553615568038177878246555743994980409595957580594220205936536470398272728317212916840297472386156093122864287919384715147759372599456222031339083869169813514931459645389672826744459645431596671514509696383792614976833220601356841111672829238906361394657008262461420981753308573535765453564934262739313892652363131853003221215762162606593501870673788910494669329678958017821615665853451327414318483980926692250773797634223085965254338136495284005775073244846873975833591075869661460243953343764317693973237770331752616154584445584931593319835613645830288083025419206277283061923230287096069868041118417632765165487268992096401878466456702750179685939517058762815496109753153865626770905920453827751286139662162754731536197663294521665203077599841630492201868290265698582344324115503385142715853364037331255637198596130128156889057761433040985681501873682339920099462578631625124107228827256508619170748453256731984780823695499455085347861594463997593518859491222329634739629669071856845507129404512474407864007029789683387462007137776126557170801575416229351474486454938859326967704595000979746894660858522550522273273477643495871790021123014725117281753205851984667627058346548529135243136881916243392614016391781848858948251135414437554171897438921799058890595587359234163088936584906859197109669011931550878531339665643155017503480078292286726230160278912357344491486434353345111269194987522773197109659695853267035757242202094999855598923859775523506574216274501639112980919262408985378408155536722072658571395106911967004542360212504701669037295816041490363149903719411896724911380419411884646249246334841294857244142657898506480248113505613790612023046431785131827718642610086432602575734130206545108047779510183205078742522596714016167674075750037386623070512855446193693324676475793695352865066902573860312807386061834027972296665923110941992921660673315858600690392995762889612949965639324313801460269282020722023971414891551998657699746443327058087069058948541519521327933524964977245030257999458945527555260336704652261835185091643856381702377659170009849196469183448192213707724876466283352718184813771383185059043568817235160884861318718642469758899427313194778069897150901224285414719970045326668571307223458026722541387091485271734148872520174844772456793138527611352671182902811301801860014597685227251689685753384135791608516838584941586330352620878686464122004693889809920569127637485484158042799812090059611567390460833905684624157379775744418010453907438066248517057018763804900575730445235627510254449749244323480719910124745094160938137327521734786096453186486222446146656412963954608302755220794067452259942796075470145608825649631934076604376104806683892379301357346307662207677712488738878014167404259428693905707556456211417949260146692279594779480347887981226927445318219573606203167188658144199177469429381731907968739601548393921691579672979209470714375501421398282882934530537884224610394463407454303700771924291581929742361496114555397962570486202369936276802183188416307800619679233612023213776194209476834510579810387205761055330189588593423069473520255808587008861490456990091392748289987208832598636761723101273877741540925528193225368545324174056483158592469872944472602195405351807144161365775960063917674418432998251582246040069657851969573776818131695609853237081704145114291528248283627089874056573294031728000398608633979541518749831947113308304641597467847555411484601318039061221874905811534773525249234956742309114164814647593557244188434975877024562965060245495725702133539767786215200804986891321318056066692379866835627793590860484326934897218945554312183070456400989067158042833555107966260779993035035511121867195156404889075605548820665890390987253003627017913305689160760634620627548837273676065322043343367656544229725801023468815281117236969598544407363885326750081721099408250957302830441914708093519483888847025329769073306176926415315195049185974534608612948690739180425991041950936064869635721872209425252837319017858948212114386969492420573324780457929196466057670375137701085110104599609261637076272946847488835327209671874174166444908555553642059228544206324823217806546475088564928652256416123241057730805824635861281688260047736397637207165163164667296613521035083157735933977647408222928726530255349715338089734292662089094006269943040750573180169670728945541539552563973252429063468286860387441369346494763235551013157350391457996039945557470968140285537990902122249014943748137349909086888710853091750129379586165653632231170492587496749876575777237644610234380421778309208234371381181919956983683714350309093653456947194293242821899416407833660619318251832947456366368469646627249102035203951759737457602770748513356331541162919454248403080489265885507612072837188917726410692809875586794400291728988771175466148795478968724480722110155167421204402911420979772520280874596928729116264382834353613289695740169128000952191234108684156416690354724196569284265766795176189412788662985966328719675253802400208848896312912627053553591215044419516274597198640141826732174578948446901891563296074154503017515029772781910232049248741090776482050396098109466395202145278365342354194530798285688940365747966504915919291365344590375150088879680759267596759755712332545117024155329343923965033258636708852901476143711817596817299906250306525835660425974969714547821501633504544370315787489914086174436490024401699596321350631977540107837640673777618450678933968852039349496898572477393006990553128670588532781785862644307188155130655351598163158025622404189499446001082068291791361445588219222778458756465046960962060516733903777729082063625099346207429549534933151583494803373469850756480623962880911875148622767309727162771847268964187862589474429551969546026051115113748329185858595557382644808836837792392586393435927735243802511414696253038213234510781333295102873113498742532095377494924463380288648037261431328574101555596357419922939741079680474163901041449836810318274968048496705082894333012840909315422830910397669032427840191130399302579240413982155176608468122088228553733431326564080492139818450422025517197395002710881056301529640861554646261265772425555677122330457483441417068408141686098399719893783811046073641499726052724224492714870854905462515740938947190388870688333710103934596519294237655366748445589607925724972334856045645118079470939643464024344919451174022113258985828458696167400820201032903570209597642000103929973311413562929950912169998337058585329090161468173070763647065293720546632277921747198324335185404707996222311848123779799208874055008383462651256969927562367339438737033861067634882134964972367162484353937731440781564564850434366956327864180069210734391331671392605005220352901273520940744501718284223094321461419987824324015050487268823226295460633651164528839054857060784551361502071129911798997312879992019023371788697065929824181096826392260318979710116199226299456602455685329679487293467905897925333550698660447111533925433010849812553832378639289757539636423567545981731500296391145620365540854213319772376909328206989373467845821195829272850962973031516999770755819839396741704122968440036316665388220798778692325698325764756400086606055338239139189802535724646447070135116307942422699929210563336076687757174239493200043288337157243674679275408627115874107745022978296640452223840056459177945913387633786763831557757500493667340453563452247470953246027498014213163296484166193003788032534676635887320033227412300999709519158581993693284042174470019307246862462900460664264666351470654124256546982842471379921027437649604593092543701383720538480845185005361336026134085350546030088579069890083636798681843278100886701784060334731597710679484515382200171778652504917741637574998036411754994619406359098797928907021027757995738683118917293869457056417891834909568566086059667728348158883913616519993588882040903090626087659103211747196030692747217077171686564779350233027660558449241493734152329834049281875776613771990866618346246886170810809225431656053670248836589488674976225197214113989462798383865322355874533509127535778798232129195266318766744881123625595396651885416491791518448659735662288398591220017775216720026757601004351456270288510506272445606287046479925096933963146029473602561124353084765281602353049518710163415214739941507773608453401907214111699515867386471841389955904198531755526472868329018656737296424606474531341799524216773173132688660647570142281741827319315472168298759379661948067266444003340926302447102282700320671993710757033639072188121659065708213331252617084406674098154289901616000805123203961257491984634340590072776001715972606648760371695113187968926253605199793480646873804035695419319580433464486448175452335007840935543517164350314776236262898211639353925572777836613692603847348972735293878858965419585264562104191688103359881798928869380293730082511841476095032110723678236952096192327555048925531400017146101845515961171126486852688026430937079303259913976916379182350464045872271351030936967511156793121121362303923099424787016503203239930305895707917580018591635263724705426485260242176261567793186132689425431174716651161522123050034170142690426902075800883383107826927160775245404673269307262304457640423758544926412304463002275430927788163002407145469147661196666498886624919898510828823906225794921572483461153910033716112641883315730190278448450322903281763818347434768925521582647089071530471093581218451731478973266764146049439720738606508301429933343340714800400600888428256269962181963173425884831139057547845078196462801183080589411825662200627386901075925331522260917015636375430637741129478472688003213040305733145849764312766016325525710353972252957333370265960791715750589766669216738533792893319250874110869647269591159764049593959003021020103328906539208504522423740271518838126766823359392640991275708166130282345326277350212355612239940248181478609110481613469075680699459393108786389220102179468010158803760626665970291546968070468997686782074375957186012518921170698969718164336222758420324254159636595661792497831040025428431124801331283366940976295070890522676859360171933747613046702601134954695328015142764380025220435489421735741890727699277531183488137758266729120097342746020533013932899627148867709055787049715181874339763908510752217281244160855458723967255758974072386546198543896641141959219588003013560648976333433623270286864918908523300543357594687057688834239869987059299604510508917309209548151361901463531036776299562671063219474174118098421141875860178038150096938916274182400317489684568959988295445583733468917642354910158534576981771945090361678310727842478577969368809101011924737903690697419667248035518312693688020994735592597860861190390837509538643017383094570374914101934150576905460553086515575693632932300984394704549328536678061211566676593592531540486245958291532116421332265711835076797648664856572638165031936773106695159889296568465869960900664432869816000366166412208365340257877470467223433313983376625064826362205951662329292905289654867657333966726401973901409054312994164097941976166290195453069796653104327797979783505909558234160126307755183267706128728597437819151995371438441013866391462276629137217349984026120663233192396738930134490007633228708476190300045273123697235136334082055098775346726243158572780987582383292528096869766119671389369189565865503472442641508736056887187323435194870438405087878926509788852582713399637878720675121017988029285594504862767514668508517839936365924733244181189877728174583388986848684648851369727375357438783359047675522427781886956327944499067721226443155845956741880488153545848649811372061608094399519982804262252205180002584664542729462631217023902185970194105503735089626523139111825258039228063169910244109670141464056988915013636649946619165446820667468332998498782146631448020834752109960271234785673108584197572186721637473626461332707391597538937676109325537268156008568656492575099851614791143646627971210381325057089617665312038535203739126308434818285290028402648537860496345535289064079612352952888884474756139645616864116222915230473767088599192608682522425956345990698440527073068814705000497395770800908423583725345434665413193413922209250496193589323091655905693953493118773757879295537043402086874286077714497066180909661968586336902167601126922411909605288839259293758910687532610889222990803794193606815552026917417799085769525292366375358961128856772576747768572984993382664860642002382582936413493269158939868425334483669739249935533492395502727701889010868730053458421944842488786118445015801804460489603820517937036563483319010924670794432065977102796628002076902639510893924631505752334242408186612694645572456168896330048105092817253028352461388143967474193625978689440311642854566947159366403330194111944701595610759769254114984040269701632849464661926981236533292050219493536105849208491809309859461402745058001045093919927642283202583543396965136446736398172053231620824465767204515618544085800287268946019642667517649463156138948810125711920283109980350342885182999875828744959019218398833173867709184920448972675290569038480975372429775659355589567516746738421630019721748187824728269342198196620570383698108664776443557791699730612883991217060855198544312233206721672856582372193854960750206802001722836403073744625178122366474034887610777441650212907342336818839396897580741914794948958854336292111383877472284398849998077080946723584209461941273860551113897517413667834212837445874551338098218194533772747800548956312919599872762545087775114819410624871684180631672611151102878185263343473531012441350967839236268306704186844649648904976675256007929084647704285488094168836469391459261154557742828788289404522626563831283979817947696741226919785750092989221261597942107402235131915982402267249942083119755709972014313831771933104639660077730195862548340241046369948641916510145406795097992030453455290428293260545230336930587006785076950104806942421208905712454794674417703685439485342164592616771751826518418698664269825963165556410429307166178107548426153841194868433252330806840969888310796099745066174091845604543969278733495948366827609722843664485631903555696301654807466481381264128267029502156932447831942237210741737542779562775984645155863490315022128447449644681001848130496272101729315138969275756219566825552591595347915703156472780381924895600995683592613350465190450394149317128836856788157146057262409118961178607312720111248323103880065920712892251625119663349542903662090381357624687542412709811555844698303369876412932633562788764306909539071046284665282463289041002778420342202217506953025561302258331043332023683804725636402647407687491860493064758322750706437149656606175423962859892374839412918806143170784967425126924015812765577448697646609644275029500654152939552825256993172987369850676267933553599611833995937274109481991321612370814203437644140400792657968308671443684725780231673031892903844656664009489763149982744627926575112498912107961489467375050812674084854902628223681209976538297902193554176543178658038319312105970855817381952830879454112141200448012532449835802081573415018672045059961258021857657774476407314106168831498355944550884090844319737812783851178569336166819585005411834264776868469697508918814434749971876864741108855017988022333280674774911192416925773140512729152582089622472993022783977952909851701953584924909405782249856543061970729010038582292853666085062620461427342747891163174213888674940646486147708393457466270779696025250943089394956726135709444311644290180015328090086311730902123101695842685588048172503439068278052675065921878679179731438168788181924964263597728738335023306154697893173613700435128893225934928179209533629270511047058276005108384590817094884066800575123090422094226608028765167907517617868330226442385433286062415006098741582131364604374229598649384512702686990347783264196473799167003850921783516126641657088971310587316668459949239894948456587213406757573910697346530763544625367111927610311042252419525112523334287753881998230263904285413201400828685821025470107066252006252549555660520146883658170750163626865815796885238653409550943371603449349334765530143438010299169247307280567704766766336760082805431875774372720681826576093106339896318969263300307446472991749653466343502418378099251100985942478129400733859353903471607103589615375624271328812828673855334581082157991861786996242272308117159729924324374287329338956921231322705848846639999027799692112706544125675184872228534714518409681727299987663337223797388499999653255425550221491073218190845731580820598773669564630970609713554454949143653602616919559494641590163167827180599717135516495414669755918676942001040063189281303707829622181587004703157412542049220901616421363253372004004619949546234816124337607831416668349460722044355482336548928618380257738024385013410095004000310453044435593648845613905960524532840930611404329877747639902545112159157635160532638722785158265701464017842069481135872760560601340156745289506935430045340570960671769021313146789159095339988934405342795464561082956173225566460848457249645232148395299455571422337492767111389199258420988343879885574209964057713391198572788407953957424706575300537489236909561554789840060607087277083600408093195882484209455113908195460810951444230604678971275235297599507354409663301250464829140164247440463921965971994974957094822055450583143142214526253357216229827668407108085748841511923620703181034834524115502731015405927282839412817340665997988458856680141398371110839764211783702315651576238557945657275576592175275517475554191954250287880247858649176162080623535082738636060872652628927919011835030635989545120779791339202886215336897082724637315772720206745196257133793931671103329287710620832969708905099200974156869286786502606069699106334526811729862493562650314256358496597411019192316434289085363959173935882915219539662995096126232359437334326530945930273740023165686276547281774278844697168767863022325733237604420341619519129069815089796797300602173660903517776045299209789923070847545958229675929445055573394938914895902777594019946021780404757105735184729687806620280232693302138816754672644951034428498139606720013673723562099083930866882676639091582464868787294916446462795302427832137759822974650477922518400861420360018278557947238469847503663232392457855270959330786581585117937093908720935371716747874190671429874504156074514029834576732605522212058561011779444905494639942094512038834232233437624210303821138375695506071031000278514094015874327522219663925499583063114678425265736965590794357659143528588533990392607420221530824250524858312950496669353596460136299948675152150736353487820092867242334996122712564177031662606627731796102191431882019503519541262026209595109537235295406396570377211509769588234603612307872147794050466688013435038776600826558007938035989982962772242161610975574763749511923264904047184820810120256105523066177343222437251807491843356505386123357948865871229107544063870098820439877508741751652770267173240356307200079674109435581092545731839304599833354857432990362558271985463893566964961933465780167176357506977720064010939403284945099245231321855349260118548367479405050548689890993612596873204646734086908725829177152575645175245737304959468839537078183518320454343256703007172718295626281646037270878404105842250564180237101191713221542426026001617232567788690262726443226366113962729532262748230375357967895649801827910064635788807746274213137815191530818953724485338533402829656192795331252259293400074329225121452628210112292251801952853767020962894508767964527093866541997015352899112108368899702790946548735209127317430498353327124769193379650010685252808504618833816370246632949878885575958890775272873249934841710901385823036996277781846596040292083591014931231300017805929900681137355566812505491644011962908293299850191727894944496149245966942840740347775840974138510633462859958373074392272512032351114912657104323734033112424857271315802143605520425420937301957294697523363025819878098424388621165943255754145720865701193025877383314426199123223113590211891281580562177042687301644840618531431719716773248986105506136621827692722940736493581136314393510209735880058067680774151740221068033596301448139877160329906069903500786256565380933874792534254019411135106352364667048089584161103739230672280480967815899232856960002892811216301901973885652055037198913559684425591923541863544816226644751242240425422723504488179908315261297783479224531228422605058312729795605298503927503000678845923607759398624584663462111615322262996736144222849194184859440821542392344636780901477290996257217061816741577530592254667382895581435936551722285148272125586266911399971384221881473552910184893839503807434812277352576640541741272814301562868979546304528446420025643498880732013209831663959087276480134722624128634922547914523752323253142738049690501617399522488527836242761143822861797746291595664647428419626352051593173309334771167655261150622991387754982852942061454287509382279744779695188785369117734710401165949529884664439642487135297290628853791173017045425452011083285062413969361317028694352666342950133899848973660289146100606835505334273954040990298692558643592804897737634912888604502998022968058021825093223442164083703913493108314947534147715521256040130807716158446512188215806647228411281868192456920768573269926784468301020658491409227775059962907941791448656320552815640919298765349598458144862760957837033265155646051549549097797221249065349854946276633676691266074807304799612028679859143706480096317920307908962551257478834342413855250898207870131766104424987225699895930929563784363561059106725826956785159653530098139040939291419596012806120191391659285127357421262453208144197793469202325457783060803751455582596667257780101926596544704827208604737135832290410550774436283546520813197572789790721433082584399659709424500502871156723515754740717807030432604799074096874608132369793762248684785256591424078592136863919623135430249013201381140068184279803509807785772096476023038378533126609578893607270733399748716551760747314706704469635826415301350323631864841864929548273213149545853474902260999248749391070412498439323537550746018110046241502923084270148060024141758522560715877129663559221085873232544092921266921348388047995103178270227119985632111327844178787490943136881665236298326159785765662673088587363467976350746141791353072183187118049380757380443797439172925827988755364711693370242424695289879528189333608610881153283790330445030959799083207210034199731822741194264755842308715678171372262475929272583854186161284092257974385541820692170520856106191843886333862178608742181059563320555657815348345094360251336339147758873853526185371919328721033328753184683149628595010451954765262417372546536536428049133296309119767376339276925000246521884159206872347243053763035956751374240824308240876701997213617966444603364204154848478060788731064018576900387842602025507236181199198150510569187679690670879570757107417126143621898382025468989494120013896886260111450240582459342637149524570025680685544834297036669134826083361827397194862299341526539386089801755705950076981666168725820664505450640683507374786457342406579755001873298833722627583220688530377499817688702430100486021470491674805995331048295295974768988852430213339257363687650887772742387285190173588337246543455499317157832818622538554356878522863316497367077126477842017642457946150951709190010020144457451285332666694656169161583481196759683299587330793748038925998137084265057402488066425263588427903895316754531441697548410425410439011903452896650910237896072483848963025187782141510861854385253581405010608858434643090369160802087583732040681255910607506949222034423530023978047852247001591813279620197037117084198854613841844148911520036410842272401530234978850407769142091188253467788625173592319099867340169397572236972108021453495342686925229878449509672406607772387235121023788921670197719306043826005510656475215759937236888543662376158062525268655062794963302743339908242586919855069693147057847048224344567308740642820613940822062067585934680162348800522236717523885577679467034150629577890884150151968282308576677387018209680531836977841869876327323892234505040103950846388734539521811814590014298896824455257629515568774586317222890142005304665731678186589918457329529836156772012154275845326219453427220261491523183554397094356397839064322718812372480139018706269841807460568276389538025195007797238285277459453627068323114921804014656835505117093004322353766350517225746455566437724289470794508092989281998523860942561126513077651209511333462361420586154763644034753105331008224363241082593734671052372330650821438318287332253628715074035691361125075548253633726454689595748135853170683248305347710054450436065769161606142725925016749734790387673363856622595276761198507019717048903041797003927551210340167481660898737007153403317739998667130678601954578462844462817835420800879330895875992497045321719800469675234834178731041924337154360056339995851763109102139899286178203503360553004874889828721944843324397834354666251998560723206836628731207194911776860037202260906518321015486347931367932494267936805260879813130933397612235703947092395575682010799740389102164296669320285808050789309720448036669792998425899412321991773496796154843627287451916161345508881629938960702534668297091355090891992041945714281026678353741774994761538016233218894829738945749894741354119259226356681469379633479140416873069823483449213347877761526990260046128502168608591903528834294103737261706642385614655854762346414388316725749882826881767170721697894943556127388051265628031723585849488351366625881654319075556788098455453037820352443469596983730011069786451456197358876791575120720151548094406529958668215541270686998907710673434982363686313022383485119437120461111750766120703013477256529140973746887817118468621622476889780993802551510254999864386975301717691573597203092788921361823193925834592121117063147006466225713034150893074996186268262060767732283755076388072882298488199628704231904399506490241263064353220274589309851398914539179971081602295116261709056781662137912330282643264257291044832733422454312230173379505091874834644062304107917084725304982771159915876791533157833405835889646687683489582072294243039371489947639106266458557702411578531414581074800602206331907444047274585564469881151020813344901315500350944327498410128667557007827939027225901145548605110128245663417558022706174668215561462772543089367562974118271044590448517535976776956756994363498200177376457192521581347706752567413428739512165254880043581335664098380540775875290740111352170680305816533029968414343894499422907464997400120555124251263900100278345213151328088028808285464683546509665382977405585935868528327553546426791093024898219936895385552533606956001046368820402974474001005909527679444610684879695354171190325192718320370062118237123927312706750047176895165468524819587700776689498198228859507968005914633177877355876358412673319930826415272840602954396033416083693713484938982165310717980604216018814018134834251689325426435094518797477475606689342925614468198835989510861893348280560314249465106134890950811661628404236393914611782079397797650810464251890481174082914879063111074865203868322003272942982331536000844455949023106930756461651235977193729310680044472913867676461537926926251895019274605910642881339031700424741213062570214174613894508438712489088375552459276195685871813523924250666798658910583241812549119386301739608772492684635939383441260523870971605630198380832780135265334404029369229144374292205915175948813841813822025658719662924411093630583435950186071565259670677909999229349144283583406812119671415667622017514802119003141356556437467303777511719864483070105505426792689747108515089637209843393117989817653829956438502074339998708828892349456285914996744221235578629470969986983496629980532923149643729128749428466529527911725281356819441757012854762828912340460643030721481873335959462574214521660704529709882368021718558231747922531043232842626187364377027237857762787460559236339801876746456044145440250319137444176917424590084153891647619971178719310292642553762296354667175860760567284617245669662963119500047923297209994731560044010366686487485557422686149758670785409197082321166372203368536980239901021668586803180344615878305337852752812461846750193293529788072412905679555243892878426163318247609526496893316487614856496327777181382263022803876864768563898030048945047384166777258141299612553140455904532326514740814487010876065580427408163417567395351536629832566456887311381279601689099602838981970458643579442164283609035935088840302697333686646631863193803248698891148114745230277039249489206995201575964045813911230020025246956794564208578312908636444284592571559522369362612868706810138867609786209026020576422929256187530653844815388740924518314086771764808156936109628374995416288682245749862866789683557736059954805051897115765876647663862351326220913832591272912983820166520651420785201711977127306268342643350562471830093329070192104993920752226458779930846440339179517892433844046291176794944643334591363389148038167096486178135755828647702453620614126536177676413193353966576039294802099908098858923533421214908381594448233098878682260285906040326853116912953436831202699756051528165896732472354055270028270651699717731750954366851432226172669946253307193417301896309361943749298164525050170945226573992830907128732722744087805460698993492104232726894054418269807419421757617713583836034766305240906393736110555962119180705795479654265008199614606748305981103199522970684720052281577819039710112966765140923150232598028252750145450301646189177328691047157093315871644126492435492431077943911484201076365637039466967844195615993949231476865631127991083354317900753541694618365716594261992624483276352774681631028381890969011191825229680835785871249813838532172770114237997264649495289436827813550913235463393052137995405738268666199737271505634410601806540278400790093294453410651233186447434706363179229612067948230960104651604851139792857482742441389490643550889379100153455386798987247155588529471966689851490984884471467191421203554055832289573355220165268648087924229404849552010314662100998495193130592603869632701127726000858795085185746693897262251017414012567400047427177150185188708723577925894810358369537809322728960235419948604086861311766060195662847787163526484492206330914175587940649513447052603313488749480122354390776592855931815711587502902064282594346596472221746348805174428845220578621183902216546652588411725428735522113075222268168139591727435552011878733610005756525713231344404323450698944054825829795762721506351626165948311756802620753332162316132062456957791938873691503586886909967679524853364945455664861188475970043571593262958445727926743566472302907866017191403362100340578765086631895780642184864776807256741016130787983791072989887577951132192898402828097910252641566589165279885204093361693225285489217578839538251349730037671387448990513742574039853801472083668470461947777607279231959894882913252814721602297668282420108408680588990740565545152530665762761577698536917898878830638601303711078039999162700290295113907269091094196400932425380349398254877525844430613545596366146622006779205874714760199754707113148940687507817482896585111801966937349969349064717654169776811336337222726377887800064445333736346661091152600455319217469324798721548138891453650599263914972297887309584605080422414979523085525332550894777884716984205119114367046804139865458163364736092859059586013846440839330854550860895102477203942320400946788149757215543102488461009213825742738208499472036700579547079284434140943489540622075400348340677861626401646610802632091694081228220084842728101832620240834371378922664846682152277102082526694865700825487213322462206678993116978046126236406349648392688016500509827429471074729688454193852408886168276274898562001383377579933959718107927767572137339812485902125347416647912673314357445056405668129785011044548683450842181921439011735230156247385113820936532446870399684484815376704730557376458488373966874373028154539923413428084216188868796298224563182942600024162559445444477743579385170329266608670525728758805773555025622799115663489049193928477228818244492125696713933340331508477989391287836258214684598772491005544471105491743447513395000011002997060110893871100311279058936762380588115467260420176622072166985425088542697818031432723823052025627438886104986775526303074886826990008370061004911061152880536404970539083746498143069859275115644166502420292408542077635306110477313538752448030356267225124734656078944701826947479546872536340539364614574616094010320744819321774779673138866395459209440180986900282498459677997632790423230627964350711076404265840886048386685734424470547988891491683455895751271175550268372578333813124323568258663546621583891288539637412003649629886140351554763361013958817533684239866309376541521408838039312598982401910337460449041473033080127152359094225270772179062106931153683274808794519015069123199375110836309507914372712939978673164451146749786771820914946050786732586993216056149955549019358648285460411971982090561288314763198013754296608571649690879668121159251584218439789105163711918599987871032138023027080203568216805160911698566321766804747461225070772540071431495989628353680067333567495014790618555551597228769727131029333439811509672738113175515503091180959336253197548820013117881127150334123088432667403389098617521874016410330952698514942979227833238767334333867500134875290900420266909371795383089272178615066834932945864085295229851453463806724506267410862700277972353944778788431469444064660670349018526687759983729691738040207054064236835840490433969866068134564659992441223826765669956189848545751320036505204547806213406587373454853072229275729015286331209849719431295632269109150525711931911318095877680836588182759997477133467418803524234773427797308637584000446548823951087825538677441050061502033295486765318839265959882496625879750422365916986087760509380076175573803294249386067160561934830045970516368384329091284433663844980303725858741304994837390024463747100566369735089666365933718545782914181881250151019095104086241988557871916360785499347374528439678258038648581748324509965533282117295478723901754734374302344418319889515767926453975449968094064905797284117085753175811860144203471039073410688385615057755539877697171515666079489908781243904553135008686085174481226920173794729808158415384402926107760356488558508845714255641940153168271355412151679693184423163035509613777888280485474880089811847507062787933143422493480760408689870012388461722948352467925111578723520290963531047120547576165612328877610533538959179887785086707890621528037525345211705838472724915999232161224793041297803752740077029440281525279627691231519464081499321273219628233807219709948535624103265236474191857353489225061840595748741851642724436220276908427716472730860096552459381436747783105985208852130268153224840726183752910075599564899833208960470486444054437501394835659305977331853003651054453589038126141078512052722877897282039447656413387299578196757230433471631123811084431519454853008377160674433237515350830860627580280090342295506369151581221654464238601072983960775775882386149653970477346500738250700950660900938186392196032497582429720016050927638071190293888166396289360711200392409973869960128167255545721107459366894915975591748978438264154985004775387671994960231104562620054396518655160473196572854761431200748940775100796397966506380463783548864344895164203238177228733864565071735192968345300449363075413099893409616761491005227758651881872884313660761843340611188433343992978798139543525677388453331712828116809507977901952924396254953440654195264911860602702811146569913968655496786873482292453426324887917392382772839659663904829750649682607486152201941122597627583897083547181669285454001994337609055955225061061584357778999294685738939187745482171937916261262843404817741755125571853778143272392808271633546281451023143594802823158592568212580247237183915545082053541589171064365655662920267677530990324935950831478574549738414217004112717021712764216604353118968220380779201073858580363180695599107522501065947002453969177615607342007482498471722358682096414538699570949309157659772518077127204598116608368278013059502904183058855690922360605532394560637106360887709673111763298905079735743267893556770846070460896742130242473927970637740627772491461907820706881766464218713638841648801195920972811537088674956369083271898289548637843629196461316871579604460146299977378183215882847104559973302050654771364836103849553012392322387040428589491620779310669067447052007790692449751271031425851573700494096078704219409114815619546607869589705403975173329544771760839571844160566840111414429859958000168459044030121142340679999880853154085675951848878540895649773758146289905121530775255681060057701790589157886996176744958174925779111321407211761312884506706541741019673139146040266876651703207918865821591143264979172625883089738164015250213638840973998719813037242304396061684994786250189968111346469929148686301860875112266376180657666928668014239475852446457273309843345775062034171021314920016642145316894657212716801112471232787214121724824154524302042979493686069569871240972211096674796968978313958577895193809046025564555927354663681185740699356430584448590977137317506464492127487096245442542442628008290400864660807361624006934371650094686786381184965099701256748997404721298762361072038984794038584890657222988442739211432818755810842575953594437721823681483974525605044508811810995335709264372050829970545340907402001067727732728900574666574350230959469548921972101131169966586972161661284389770072359231518994376402480423521944668375229439563897513240136332619910332696700989982741407971866926082266681732795171889459149715009842934291538315443083089161517813211271839131258849165859670988329650741881356273838732119928384178343266960850396002342653175694700024665966735694815308391771588034250971617143665449430879656051522434502388548786879465181697319787226037108481638621565609994926663212414862380880125598490202649916628205993932304917036013187124119058704529610276814912161656752629645720274769536710773529894432709321327976059940602982151609249779967790674262956731635435455211833585629476067247352762508520180180927593637707391357012426559499138052672749517359320055261605430316833205585555430236788447980394023105701575099857773535008205404273585569597356555635616861595783230759520025492157913669574889303670929055989457105310309772285817717491101268236244849577522038009543522419202596992964793001725742109919416688388726473211143437254686135140924544822147098462787659873209565257216459344970732537792748213433472792742386393583227018643262639634392018990679694528942929021524098940364374848939249425267715519043880291021558816356729438590254435614550257073092123399214979707724557403530285497888927719053542215059154486108384268960329364888099190473833809947792025362245336553477878918541397633067095056727314020063581181326121355000985345480771664635280531725069921150973687031967493773993879839141752045982214532999064689129962308587425889233685693050733760790843612214775582215419841570497793972397832524338992080243055730932918967757081349460800820251449989805501808349455915659723997909169923624228973400700652086465210223072640510632102101688142649096513110918857515572535774545729286284706875614357932065891268039303170942899251619718812947116981701156814537749978645595364703389996833142851714005900403450297355214502073030980726118997177826851209390762837662698792530109902159953925181518756963866724818304606919136369730680498328517437885322358393557749505990176431491893325372057651228133463558039487914954392310932139096227677394955791455938365987555132133754099345936420817748304463884712558152661545353975922585216432080913709313475033694542668214240535177148081164838529488494780271240858995945714834648572227577664140470752344517589876906964588205697515225561356472813554584041729427124235353280660406177939327218226989399429438683491560219246381908135961868863252536086711783060829125329834780107339752777157938095256630169790203968274687916822494375489882542210309634725452766683887955949103235949945540319981862768695807886275085880062047381041642786613290699612001879348221614294551183442929937464442084749523544198173056165484472138152787045357882488952740851072312150840762912762276497407083371432227364441088486358100518363759430298350471926998684400375482578419194881535785553415021187976820756424241931044948974049209014931740275468324532841766958243995081887900516303391553861304178760947726763902419128353259905928524186701375602179901265979529812234576539685391077267867334776614992462105230879485405229788764814006711563675109906047203767068436508570197528584802643474767444526383968395339181254270371000255899608854056575887914772242785271697676293719338639622456217477964998261968176258524014262649607912012442646936277047914498155560245546104427688591591999633288844218991457042868659110228087458974195265837843816515951517219345470718086245799020763130956699802272452509347430240139509431179820303200932820073948690887392332614335765929229494906544518082149285727970860598922303880645098027897396395943661486750278158900270158398911402045396834133001433108465329559851168519709143345181551598467409246618786123956480193492584315564713976172635769072017747061818224744950880169302065925835892368096001814607869957481519160106671412987026193253830700878506045805862522099959886601762973121826002067422381562195599922882054765811288701438763944707476926611336218723624438732058767036039987925127186106689368296918579624347180434516062357654386466887459224882420325173205025557413500417666676831816924352984834647173265199674547699158715800418471023336711801000172289471417832568575102483977556042356438039210553509006467600632968479595822745369582371763209943131794712195595364671567065674433892086265352089661335395063447652746996998509292550602526172377133975583679790541983930471575102247853519373319644155416639307778798008241548502656049870785680190698327746215071856253934859087949735279433832547399798835543261112446870818909195401802673054252614712849024202314267514278668853268649118928354558234650452514502858068408298135505826920898430046165305763448957264125411279575699512019248637045901249941980385347681418547126400695884236723021395848455061489078843112888416415186761162300141738752439927718236262623484398002705220602229385520466425738665556382006897284760325772733972270849174868323677098052487167831725151934142569414120749234434756381966033178228466744907260331043154712551737245399656942967842620888394526992035899241955920594755708432023053605630239151148365478318101482479254279178907028564742750736669143388912883726350267395871771487206070508728731385977519394036809758883998235229083159123644610010531424277227303780182046567876530409808585058671383238535419736576621300858241488032146017257841825065549926758184105467095966429393605162628296596639509083219405815369659260597958096408167174726821845257090231783032398455467026323240645557689404305768073528025131101213445131245163771476995563589362326462499970269143422068699912266894259220177077338222501436310430165280344640002184491424134672028102531611789867412146878163174858674494028475484422067452655287716775275463065959847239454086990262293562505032882140890382853441586343113498209850937662399879849522608591198186484290536836237272455676640374386519572896895920992544813630401726535114067222210844539039977214887594255767012844292771134180069509846401446164991202901024645801369803372565085163075110344074191558764240730720935944874458249482851788554459258973707853566159165097996436499718432814357556800341662821526322401782663638389925603960311618766904357070811184081115419289097656608005456022377289432580944562205253486959239434696736785219683258383617531703722115949719590469787707812447726680385348489916504776247352308694371446917980075514226775586923393925430962224929297715390012452452765227137067130434060180479618755526577217552149319880912370355088351038706653123225642407934372143971422324236048079927310110352558859932571239803465500878687555296586975748079543526145912851142891757737898037649499302979394423730074039817308927176180319972559754494413301378563288086571139895352024762426819976184327875432712703992169307434343834266654199156428875344671525364183717111318843606488695528565073508523278766520926185587145576813217095024567614075377103215336027656075920984494363869705144864186872874387198497044920188630128183530386966544940032472597001897887291385362858460957805132292155136427117504486951281489082421561213562093882110662453701547428322102260024336190168445204649569391376916362717998610100209856584641106193580304186701104763181951960035548528808352210583564652091680908854017681586644134509113978453247929832284590168990704175807302222004165405095442027298213841126728200119990707405148017898693930682852553211888443089760059336707726777866735903527872551564867471625739365875839105846278251964478091778466245272646417200388667420921809264184084782878052536557282119404442914144112087037177914804089369177358189497212764894367462457734302705972669020368802333126660370738650013937838447973953937438095192221771114008481917755925589114468364064694692158870027915910181364460424408326203882181773665795162016691342783592281916262260958051354620462678837576900132521184624045274094488873791586319208717420626819968552570431028083564335859394255217841603464622563554981390458373025472018448134645192555518259089736469217297694916325308140469288916370711384563745163813537297311155831968276014865726754590304392478804312723235088510188149212681879706829549272429288345419010461203518076951890444251218661869131684327089749368540950540514829238214226132535374881321075483624246435444391341833885832162040146129678415074368615762724157367534685039253819741768931855017955088325376162122577036316898597495319830239455754109828190872661889058551037840696979000597270130287425681743617241534023700239740708023740282982922194173914355188483703663959280750972228554908265688989376782728830602731560402074854304964756375376933155050944052151188410239865593792316965478676893645109578944855098679967502570236377133177911962316262322177900076764396796384477777938243284449369163025954780135291802864824223024386866886287772522360468435665261474608381270997061293275580683184314000173197213231500453244996795088290538613562293502752690352010741199736374776953363578648628517991857812904259220274104546727524042890450951929090898003843074193796476249813497159211970475116548140070111354523484860060810939522047390060156404425427348030494162921942863563286250225786530097081036587954111245673207637965836852379283009637602731909261010207742951294038640675791660288230361242725106832539702139044248307679485532025931048892725174252652717799432893716677273768661491117220689330471359628099175610615927159050719161943188102336323183296984353440508841023030573801638770923853716090635634243021143174855074935707983263638102893654339571673185815284723724986579177626769800703858301775442768849732645188121795046694132610826269633797078556967740316389801636608066096984851943341940222098831798533550645515790949708127257298200166119746105147689697802921007166527135677899355000037427358279167785758980067946238251536604956270037561405188301686873106224554333026419275023027841113205799484943819279289769431517042782878028628208833009386219623173567841178855061904613824674886090286308724212359052801986759557933563451012923743040457516680155014681826562456508144968203330387736679241719731412871765378983747118711434221638335841664709483649098238755740598977837635856283874903818306650605871942979140597412571021508506566522663069404279547572460545713864300274443202686654430253475994060507014473120102636265720149911606008125689300289545638331317996070878353408862899028136445635777428309933269148298219316334670408393996770378114612674925387921428224559656516528443029523580117695648616178664486249743812300625220617833511389441860917422598438992609363575291824538551170439294185991074736843585730844706110490434429258950211199112787852955351990303461590659984364535142262577784576485171736260364003886547569339740650616809799109968678697497839040574116891893026336958312775236497290617131457702625882532644058824770055307355593093385544400990178765456444631251466217935895748660416727338840375637418270706263778009034677191707523112745486380959321199024877078331463146854919318128372201650908504677978978003401761483993830396162910379790485790431429454362200227574185746885692191604218985552330902176092276524194831081789570669029285059327526405530175712999826914352543796586321302645562648356275179151061106509219653229362230511898471754004331997366582924518691529334249543842851162757624507341769390997756823729372496855155247588143936373713711608728164014281722454755591009296880643099652501193595405733518033520650874144119811247429871188387270655373239368301151887138818449870990367180966919640627519977793802794574243360540083499579012484632518120941309088390280725424083729113157687525698083256232440959784790043041754064415092888338263641019611525780260518336414114781790913446313792173278787114073020727493924943502529415081962784335399735047978493356459965734839628905481640181966414657258008708010032773589647266086626343118846399752316059190130329424849550233065880669689198719156570004864597197843549072355205570976096401988507700371658509894036539443402985137694428472682881834837385966337886620571519906846031661783323331798300688397777641679512824068369091218703952750956629977870638417932518446982248884849841559408732182299102669190849238805882982836017632887770095468686049268993932608111486163981194686090131727868720456504703648867751457988302939146910115681232282498487753222409508389403498646033043367655721121401430578943171912613642198690778229686735348638009479183695586954687061783288052669944820006963534133923728959269234718517991047242978157287203257003444961091443585165871537707204830056954405874793433941898973298417613243364210725191936686922969696070989901904150199309585539449448905158961066278646430161047399315578945105729498948559147888208316956728193803058867712585704052667688589543052639242559154036601698015037310472826342469086832790225950772334879317071062344519430654916329159046947271853571581473287607322770344944888677518999836981554771291237546633844827246348452567263525061873231172346407948751898534555531936041253898632477698957710434653523240302108005918663180304679993321333074668918775086343282001637446557037010465181867964035939086719917119858083035124855841613718341551998664647352290302864621479241213786387197590480732855177355079855604492876076046785924848709974834569770603481739482654758725186309169472967102649317807778502803524947272451782147038241461635120999939582699148891273474048950514773867888811018978294732172695908248595736936769510597447103070330726886320114911728377619869852658203259311467040302144368576847761487298890533058951216885794011158124316277302765408356314029478709125061647314211007450549999648396599638684202586963892136854493375077871223165839823604265957254754127685780628100025236947768686299158229744888670436115007031792715083030607760931093693140229398522913555940032008702029724524384276238101110145989857007685964547615225839264303978075320264254684682924462269371518716429669715726826780125859087921632101802780237119822767514945665950097798071150226145730002356673088003102990787108938915159521701675750572930249152124863927743924429187759888106557971414614683134451317268726247041880171016964117372255417927409988449927641826266123788498028772196633950191073767533453958036433193522296981718151927230692454700641726388572764394257136396423020483441420973208596455624573113372498536395021396678029991720844668929687498307732413276658035347029707765394775285300630527169247081891612578796354330326267841724547702241599736022546676482952215920053690225449564652272534505275082458317305125329333704896145239175369492298252020796050240126387791951017317668741134383953606097579162492856659492774463819601258110962953547195334704018553932608377643903456389887051144092035748743117989939790133687357876225104719721685730818179467794825101449655855479176027403500728819586272389429324652664671214648539755416882791683626769570691235043493991833231146691560560013143991219521942944059242371676018199516853539549613504123068339872702167018352869886732032588253378489706839147303991661081915633929415048421358629096205361407652823033524843774746372559813512229095179202207576714647444849853045920923076824692574920555082250027758638511446317415318411592205707311204295031582475209460076658616950262350803873307267909761784225735399880322026444836678841324125498945142649962290152048812317965570088079674230822521778870402950304185066860397024048696282028521014392935801236860684656686186744158028734372105409361262446874125355151239810023981067297313375729434426736835010889977781823140067117758757413020466801795197788825103047185735865894382742006208638559813586877917554641745697117087289243013747459187162040832416518597255909853494490563062952278732151677856597297390180816886838265685238430550028152926017616635746834375259355783757725703634209829369928351946084970735458355814753226920570885139239942573952390274512342596801680091214855142951627444576852350341046746399020345283561795994339384515855523417723801494848292504447955633712726349662860390950488305216175364089560428057231128736518589542845467043311852631537832761306310355867611953753210595722906134049557230175863067961351406215169454128241780131899343726016197872082484230505752245418856878016692621655538650362640814987498836807063827682316502924849184836574879553086442555384293453297747566865521082723908025064490001642258713698789731883739108535570982070725722978417593129594054357109694037895752712424333896505363830746767678969293607483818952995568572874331272185380850659921575224532588629222005896285471444919601784867390709331406247101959337720907844423945505551318297490635411142579291779936857843907832836249837162745892463782581397487426287543551114647182008477199227626996667289909307177198920914934152677262335364437910161586539681393744815731167782055894080478596768100909751482455366204446395845937010732015144816545425816762332740139206560776408651026647436146935332650585871757620661764650918819986996283803062820772115381882849027638840276919512599444845255252551652506360434900366484949807252363131847439363638909281115582739796441815523433077783736673481000778293430404953596718654897867821435200967938127711832413270132806823550420809015068975380997874721984980656854380206440686633172404563736672216823176421732921910993613802790299455703875809041789259759080362572346961820892051485177172466197150765073800875037685585684708977454678483012050365076086704550910259638937997973678616874459504015841403474967094222888113946590885387258243126606260717143151090644705543956795656533447507863399970930508664495779862038602576162527607781555384988973415163627194455869245598487957520449241516745945768108739088383359302122153276141590439709052615524753148149066282868267321402303779933601593696819376477385686826888778016130590687252802266523070136630518493784265147535006288960805731547604397395417656161138761017860662090249103192039209101495500709100795720112877654696364310676319977035963903601533366448120829616770405127010039275248846504482550507582016704423207885243510840914970671023767155146546191766575315796492412473733143456740647314641002668857670648922757222594084144133170500378543010950734070059266385127209011376377632062857836936572585257515392446881080094978868196353365007549990284637353274144985493874112427895272942448091293525653721033962317425204828467396996461844977899743104082371143216718582437507149178207785422612106777543676130163990673573861037847187474720915356292313882008561975398438882036713614393918652394538368108476259261881475345383182821671396678586580106115950326663827275407062371670478265042018781474527335679061944370346479187053161059630324139368657923490262142667754594537028921156876293794756123147025315740357896551781732500010249424810180733889483088534830222167125105860014459656866828473813579015130500569337768544387726561974919356224098009513764124078445990954475503251306381049487785960136867964032668383652961193631164993155593520292669062252663101923234541431752421353692555781886444532787811112530979360517875474455998287663140874529675107087764292097730554448316296926355133961911827649094839540517937784479274396637753276978506939922598372109653205389116397752808359400112705808424917340394202161617181970484796650923959788638914534806598065306912054773201799245438633606169513456373431059823671545851617073927943221296264188674736186758638206717265181380196422934412623814802493660108330222981244357485823133460487063334108973186036290942696046956593013086863492975298490568670769467870030150042310837230509949239661987431414696175764659775739300543937305741683947311638048480925203912137780060333613757302697389869564987440476558733967796872703105118503568326289378976393105722264985590609142086975367569206643766910522887449400889587498243307818511491671970400188354094965346056411389506635355811151195892127957377544435734214301533836174175980678154506691110516462550108304181220665620284968622565809241673646856268658903059290958501021154868758115680569575542952273929925823601078637307547554717130334936642368826462093779350301310932037655913444423547982847976357788165734789732763430383690654558704610213973044157995931306000164603948915516645534238266441222917790682329548743788964043217320178092165114058457226720688115883626878414831324938411040179235099983719731388370389724493793849104727909330516622435727794679615559054926960380377593211895266080066198536173924235613897242856681204617262865365752785041625703213038434702860904683405122896356681257827299847423939249193166883386692384894724312783875698169590636693162443617614821341669748630490088441192934979344048851041634354475452678859438916088499094648449045491139918090718286441097510357397981965402949032369919071248023385730487982120986363858851656536221140536841410936776990697080586078213532504908307381062627195240315633392522338565823745966445553233094455591016036991612722208772408388973232055194150410882963742370433710948254245748218957904283817729904507016447010637074354898740242811260848776479751004813457189628796467554493079178156777153443368899734152039201936897571598139536494076788009062908506972465883349236718460656055015240293066350608265767105918157456416176346797453341823737248733526552537907497167609068249874295328797706811801096140350942922927178537160483615221460938126191746554499565187457971347713504277415370922848169138616007239300049438704127977625632353764406418266569310686043182246955201359161811773419479395714921008143991896838998343349700981210699264241912007458428560113174011630487896236659154928650331432660981695659760392166867191778355320713081219780581759178806502290620915743382747936378103104324338274146204602687059597057584876848517168946609256897605575328796003915326408212316822507963541200284629849645710494998247417818288375873745946107281842913340512074936894195830578280181721175771066069213798266378383349489407436871572616163504441992325048445130473456176543228446011930364238885800526190603582193419198431408528487610726619363944701632718672715853954594801489965494394846519535309174766999510999174992763109033753227716531920706850351989110633188813792221810637211982626597480405798490304070546227263756125005150575054434263211924429202693373923599650338886529819243420651900672133557641515890968449645868933380017337218139458005552845815406577489582515101470404863955086010141120471772036342648180639955105297400854858891109231960176429770728434421783961726659054519928381010321965037329041709743589588536487077409953916808890586877547291429840090758660102251341820832421982190927685071210254357629363270438451917716544983261872921615896220511823408395575850674063537573918066844306648556668396146421960799740160504375818814092229396324616383749311010649522016769993536539100431435930117516912855128513788057134506324084683061697257145258847435268662286532477617590982724176421781913494893953119357554409261911504456532960578299677065138702725015541238753779804126368673676989163131990382179087616046367157297034275532917672107360832280099260842824927999635689337009309831376498280720254244431189258283998045179145876278230116768474827838231265332394796643954889918886917462992175288497612628054906058806695844826196113430046699542541230565170096612993868034555932646120266987859858567054338065645085313985910007114635781775531457007971608933018624204424160207022705807565799507186948339291652937833505955460787998244731557136258999334805527359804219597218713778215908655329980412968548100516073214409920702270179771193807812286536067207856555447648831634708964174478520071645921827972664329427290136856174491607341695896476595104991310577357250229244909521714988326156421958943419372305446927162546533778144863658774695741293965118481248975363441488646921236606249787843430264264419198345853800202860712304619702008469622181789120736070233522376521138808584747432645087199929163434320776532370021490672740478079789437156757941397647540410368169785796934193990836320933665337271328268360046285802007903117064018291965999999152443687356500600675804457106850363217782946559844388287184431605301881327684926180161349478224797844784168176501954302278493615517024472014146491581121392582959362300410955665361143269934377074144059165088707163878895811795960859634110388553430127302255904253736038905595892753605170755415444075104920784654939897023952926489630461463749176501775529683812135944534277186496055146492248285946568632792783235769223772834828341602353492023998263754882716028414583528535922004176255776621164721882801823759060072778414592790762456473756238421476768332082420577489564471645441806149088521703102269648672333390955552879465845711912521220727681102509450170185320440589059449877045824515787872947125323322360022870522545103219615805170714883366240087377016518188869301179872265629453250457860099645137439840808041633949049761974587528757550372944430048271976089716199044007361712399354633277139781550731481918371766597070301286301187283961509552205552782360411689898216912607112708939703297732896133742629438437077705183363740713832902446289072748443912904703657925308925691382437879019018815294406841185312104380931688175611149193474306792097793761806850653740060964058797707812720568648496548013677079261075473249388404146701261210203710871355570014433516940623324039370961690313663315442844773576121521285615197617278951815488476228349112448291444268986155897183969614029344171646386001361673250647611343464237980845442310147388468436374624281712139704811738588730924152110194011598742920789329915149239278104856909441875540352449082524829553655979745505803320128409645436941559928673830837128493717475120326631399475479286971662893273605142362184707660931599254680633387562637755346726121950903182354368119919924383111176135348573015706717633320995300672061826371112699699265549941808490934088698656229662528837626537569699851395975167914394875169269819657194498398451828828923367930898596333134515756847436778741796722363194252389746770399533166008756195080113447457238427767580317572898288131159897303625051495183393361540356252948922499706291281241052047141286512114839731663172049428224537820907491410369347443657404691034598582593714801905160952566606137743213688105377158808815964693835081676971312210636696739189631132423575250864583202563610364882934012119740385543653491883681834579337242389914646410788891685265106248558678997831200812075863460900022191005188980263230032026820642917830605243745497779869637858936348929986672770322015080026331576327254982285648020285591786547824968468337915338474213166978949444263397993666646928970706051946299510861018953562748203831508402085499787607930178336602678119460485080595446383450173867763276393083882205891436160613506799742785147411702026117006994454029485476766087488594466936189503985618573680423327730895275869295075918052935573414369117673515339066037236400602937987059800677977857390725413568439937062795954697542247110335300705202965357956902308412265930032505072384219066864681422761736413949398460164304915121169617733293233483388439000654761238407463951646869743365400396193956753267652886886839867202461400110429853351713170826207356535300181482944772998796078311228882795363331268757895857554141807504800114135617489040603017766960422161062408051401356233602771917457446863621621809274260805371794701078865642835295755047341381203202616770671159577166572532411180469236890762310935809814418610913020611573624152013890978463980389688063373952269240285254865236241940354987405646345376051530100750664079959470615308148133309744885926999152940424615369690857260565955234057421730325359886520771911416708664497519873884831288613258842870625486385229586549129496682967356394001291987635339417750800648965087915989801008320703940509516569119477595666787614365699106828401415187591138228307558735388352428296779141594286006538042401872724314354543425628172051985187235041629811421648740897518107772866743889781853238390760331605251175461799212860325506609985193061311338099389447345718932139699168829246720518706509332653816806849606549104378083498955130170312225688243043880236002573447221609095375937748893710746078350027122353241894048669770808529055119999794153788314892614491130715954090227010785750653336338000343261052904537258440409406860438795387897553236694083308852516105685922356985880654271044577247287533866600886460539190644617527355477731274895363298619566374424648182303745017735434109579254689910813070042980975733308314286442258706800673023111306398230261424790914266464177471602060773433084960321575384885757147946278566436937231769906027652024097944899703519686778446763598806663490461255448942377041096083927045796979878121903624654711986705831988883249267525500868783776120954872748545443843534728309344298272264860244048081627130668355484578508889816767498615584919813949875956747850556808741120749352869087281372541766307896377899761792885987396468047907660038143731922282415315249910696788460254441850278626980408314420910682653268353771860725143090674228888449742167534879277707515970812447772477076538190869572777099009309466874435053223629500719102772789347081484098415544361825892071899177635389576460892630524182708714995466880530197674333588355253999215731750978723625357685771169929149637803300104516299899607767950339361650563973252358860893293170544591445426809617971181808206639885521777490779317025610788084875318421625713671314212530394892752970159730811966868913394109428051453874150646963050128167347335852996243030940340438892011369996683185544160596249071532935860505624887396734981435261215183219867583827918916438053845149866669514616246058444819536524671652397142136178214328551771603402351397611561255716403005545116549247357167783735889602071388865080812994950786406264734250971290638116571998010507925414064306256362963295421774711681944727529240026307891215577753468443453092901152711209534093447784262897034540020844356131318307547715401970213785754443253939988248079041482209834293318032527097062501436853230387772895876944109288057101064611572053973961620435339747798385976483976698293983646916578280864719578933882706262711639094830308816865617278473353147331484425902597303919309545183939929288478679871466601411697269153123713803303221820462802291787610742204256656103948362481608290600268386004648810156723974749667152705230260880204726285818390231042199150282019775832478542596922836016774269450085199923630418622176362618070650514359659983970457212605887319537963204363737293413518052679675037602362844559029699891444596331442208758803837399399787698537472178387659404481093835304983400884899893146556823118255702731677763178210475340138159159170812718021724045516575808974195829376512711795075898541408459379461340047895894729124720347445382618334539798929164253710233020545950053820298867538956716150889804407583513049841302152418793161442002300515652789119727181002836479705895733250651583988307361778802243863809812412813661104434775187504923695734916621250329132071583373949657686127727516229257867869365687042085688005403336715520523928952001013201744281574384857766857018537533585265313502719062226247790230839037921527067074549025078455290813036806121756158210970161035938453134093169989077076555156846474598444532459098061803162451034753374010383208340342193496050413872916440469653581910668053928478766885701824942684148060472948700028395960272574955594008867463571258741919534602858608302000406416752233474703672208400948512593039794857380905807563820114902536015719680874511283147701212290670453210173244761275375044785948195808039246447952886076090867698028606065042983188102974366634440216802653494942103137948370470262967351272668458396121150714474846954733383732385018812905059153977778096529408917914858925652886485567598347415652016861987695078562424411395981020040089938114335213647801676479162260293395389332868765768459976146535959036973143721984562916864483134095894091636638006268314939781081331299026711291388018083248969076019731551938432700649434305572295231211367259294275715315054037646849164748886693685904770004476734184052425870149816056569987562080397586005064797734161270625010737069057188660343920803640392521078058333854427425172859778034202192116553999470795060933489916877199917669731161499430598429762961673256730733473800758051111640555175329768697857785708194287463192053527629724407551387623337742126262680348091174754283380370524426982279659870101805202890037401775178172860217265437286464683250242190351188702054087492462146212567429725860364780945048906752830986608398438640898034111382895901767193981281625373235558327773777588191212497674848526266982517130493015311977173278786132070357882064847306027274683709342340833900735704269544606508543000793564060912826530013315950654305846545888106874102631022664328003338290511382010949263137460451772841557360432788475143307047623571117829648845289906683028423737325639140743845044341146421122020797405153414125552013897738659950912632996959837475608732812969844574648035261725536935399436300518459506837496988565306322037390591391555809893642900618672820069139707111683266613674309935250062050556904089983332113011162690939482669672668497143053196396337250307953295739880824679449740351410979326254842977653988908106029970376875972574734808711702659019521554147329946335233662455208713165108722334857550405436720439110024648337453881933149031048826475223797458292701850306989998280275822857820787810864266520202014898147514565802668671164121889638339579571222676796367688479670953635474905443321163259208359802360523509086695077328998791646857201799192777328749657743279590331804674334169876596293712317418438400232447281695468359278883582081317839984224658009375527014081681482200822372850843506158462282498472039939683024382708780909301589885384145366298914772577701547550666908263562171339208885047033734463003094889964036457907116416261044325050393854604173768463357384011158536138100635160217168759671251451061522525847295496953703989636545351336370392733761070913080181028605201704096131172907729558271848668010867214999862282900362641276241461195844901623760382329787427592012218136758491656327642884725313980927640112666795930795862741494592938003005777703699067538283428490366727727000472158842546787771458228438224288433477989680729249859383837124522159092937379215985434503448849407714780740977657512559877832942058193539581867826854672630995370583501588798356014717504718917538783285210533882441881537246982048645338014081897544000442566437414755379780789658096829854695501105819519158238609908149073608383434001794982160157302207983671364259299518891972563690914738052714048273482958906971414456618671224678434731991480492202780376211396593159743884815305258107507657552221488272973018191558501294740666732312749308413841323996226639675264768476394229183525403055328429834619182677310839090585704356722842776836911713252889363357081663750358645549207536778336247757377305662276342098077355125365777303031490535151548321511202511153966119981929211696851158986425731753877825410008708537116644396939129854796386250037034694456604845189175187065325734612297969004780950439656773825355291166868618343541209720397708867722957457833548606616909111397464316342790281497381417330826518690058169241244496177914099991519023301241155409205788340983773831503812260824833686634521777246902411428087556381525123816956472644672670969130800020280061739633769850491269361140195985029977153740884571826622858299441036832094152954432873390118796005873222804746807218203070476058205946491379049274848283994616844630120435813980748967184508574256617886702212144866622820017300795142789034106822612811996841275656106636140089390905598007596259302369903183767239232751724860002667597613919519972161512117565297750816021908755272099064972873760606029000335781284551082337127811681333443648772190321790460144653514933517510331433837366858802398260194827494278651752923482885762107489117691291677723505328529440981532924130161400252336644202048540491232337643199439886048637019050395686650932802360529753572679273828422998435855076207110812451037469911923123468973229150527941126354015044136349085715763974515727358481655824327769897276067104023003249078387034625652502040071779203890498495217829011119690526210851176080558908423087466221886085469294871171121299475024974350330063802645474113439321611044965717690311875936732721626846132841262516348935435502588044355214167794570062273493178749778423393688064929665905186772926895294407605453337083428859571646901987168637975474254681265983050867016370491528123574218847742672579400912084590305029931514146477678820357877676568881310329717363637494779750674029011740484292803736889866817976371719172446418145389194087928991464006047789542549506848303647568481255908490952870303367131447283790671160201494309753589171846317850919039923747434203392498142038139080962384794349890745694155131140679704996800241165352341535080590647687997937990623629091270947478546322346227786246396850710563440441654760360120682373003627848631035244417709591015355946037178150245248253675847862905477071957419122935634580833184288751103071606910197535839180880386966389952524108958179713103373546535285241571950826623783876839199655799280917331209589824500431978069095784752028605956584855297585970406796675853631218405982239454920509020006747175643481277493091129730815180074759857083677802837537369499354517047502759433588594147114613036473767977923931296183556671185351024667133296017793667744018257573294077540467710835053306117325818682835063075089427149298603694338039573683176770248668477194266574539331369227273765196595292100514163973275409072290346309148593259921382113048877220199528995380272706832584027957961322589015159014675066153986089382870918796792851085958064732411489429406378599539643710801171116385899390065448850171020444737349014776254138623691880912450405403816986521341167810543191707478169706138252114552941049942426543841408117524186299223473152216302707966341656290248354813812369505498071017951061803259413881392141441680805504308986569188605261736212381230504369288738423887489853308257015555992081472856591743922087225658057908554593069399388319788444292946828837421962386527254180508414308473534803237654018796061718979079174489674885041429740935095927756974684599862168498908089617230056059399240002845202608895599345683039712190331736000431596834921718553383092820777846823720189044057185216706709138644405139026633230241509296748468074241246950073085366224801244347306323166519301736271887726155182965543595695779829826291593736800145077028563729999384810588169090375068447875298183189932873193211872121826034433257759031039988348097028683432040469143139837186881571305156776533433275694386867821486567263940951529370840950120492350035357595387728529923367864581600647005273674138581350411668019206081241640442213825309956434245054398872758878052545350712960423948645971551392897352861032236714897602780146461850349507445930961282070089605610875415017787364510666383193273977410123268873661406654883099204757054122212054206652090913353539318220337971318490997992459151488711186934713530099397812276458996392961206759192486254602975816172945657419974761564789421311318561543042678797147889579837745223856215211175792102636592547136365380552195914130045848095687346220520907632904338325979648050179216646594182795160310285881358698284943010237436850175770918194677119208622790541124275845570026203012082670726354948814504255347965440749963829068792176656921215479150214473706706355908656953281498221432152128877224592592461598901756339776330563000911300556596132953750746318337019521324751922150726131625121492116864859664782076734377826757140891967969107170242197087912051893438830466185683705854382788250533283749460975756534739196923613888998636635165560426141763161088767366498054044332204539810724161293941157463406251794612198363591487704386828145484678709703353036389779621358494420789121972844969010371932654630317081876077557624317109439729524838872007141309493141011307263587771799107724707542996793239966750682478221087481573711306007809289528273497819693153056599301000548246405260043676501029470114998757924154632011681834647749463725872519663244521425587793660471999690357799352662970186892196350548905276114977629767431374010627280322146575420968143893573885052418194732055755165429245309774940427972457707758883442026513810539479714840574002788590851454289095886689705122006173780130816199250531571694858834505497997849035803084324958733259627474847625558912739783449333744893956969567831093667927884333852504204140689904280539249547862492874749754810419652510363491699009454643759792244442111029323986655465074378342055036421161266059554995594779100047055601389376720170650571073459529537554794156942175531783645425737656588393991315945588799562722954963399319989655376973222126161455960786515111189843978624472078544111931505741975055531843683105560227663972102844558374328068806520473008053156183620381991021925562697418691066792810966523086797271198720255299545418297128832599403316510857979272391383229790957795196088426371288330899037274364646523864094291760575733761978278125618811271616517294768876487550393272565537269189396645042477840745336788053087564299826118715017194563786219707313158570765855415739699487101558962157927352157571018625244196449143327089758454484185536958615801531495901003592782873799495959201250350159579388081510121849049544132851830514236169689165770910000121553605901337749603208244746080731725604191127781025751424100772087600013091565610402287726044370548756989650053975311687225563015125729887672509763714476408790147212430621726533305032642300058547387848064159657618412856538730964363465791090904865909777213196662278361209310134286229906159585969218124109682036576546481176913160126568004788418529542437750805960164056753803886806545216295684315758222555296029342876162157867256147683721752956834453905155039412608575988812852085188083593770787582433832760648149183279321290329440152685113281180444220966441545506513831663085476922676265939830583803229174318837099812980396175723492352494535033888851750137545039792716425415342694363863255855156461969158433765162767049795395409407492042906297908747045237144220683596701584571010491205521643914606857939547398457647340837478803902588813815831212885963855685263489518004906897365609365007510257505718460664750282793818567707735247342655199162762398891033563037033598056512055825869880433278110877180998513758842705996451984633254065198760638992917899119822098844697739526507463218903884391142853180370484928950332370718821990861915627853969173685298451730528729170135304334996164169738347228306493890273469226938279627726833188655025842278702939654454370201688274252863028499972944796434417755880078057920191828197311275159311388700368763526039804068401708156309927697015223798275007354026141985631414109627423498527085798073393632449780941032266854103871365009560015182770509765752896107060612439585708889642720233246841669223360690393213498211159461152742249971980188852082293972861708388790062509220578899550590075023690589745802626116399406305577004819652870178588118961084143623999799576409873136369520487851533496546718790388008104313080842265109331389356290709966118853869476510950614098585536662057607793407404616711997431151033979572668233923660723328714472903064448747205268623030966987326630115416883501686239107433713328593564753363132909900252721566235465043297882673172472120416920286439407053409631016779428373889633109449652307183074411912257352712660752968907323670175920103040697057874020970450917221747311683729100908914138328493188818208709610434017850659675579952400432392284694552119105790759474034397478657624275520955962332583364246346206489578382527361331937690364913039861864275439374412252716183199441877551895756411866998451506283145694038378526372637174639356162319169309694570966511668608914897749003259702311770515153631533922248280045657627753234219276407966297972088934726179517941724461790339367570475714627592609944898972192399074294619554713894900635988744897402643517844230967035738176785061723733823003688052096325987148980146021494070019293998782313352793942918494588982559730796863209044176957011060492252520281759060416063543487700856353577431194346165261458355273661727427178294364550739619825690620874423144293961401923840682567201941584210082567110693889137240244270458221197059504043781448857059717943121094596215883277452855338671077186325287607376830806534345874968087398264173355544574601124727200851002562001084954252357968456295685154499840159625870767350874806595153673189744132234359984855639057067397704536253815262341033519510491393670769623122329820233108638822139564013121868667392883646123105605330522736041884257530964235150381087258410082768428251079577513035451743805856154477616310881856656694039136902311880443559876267636379118562041697228352784330826663213710465611694956926341305626652730144547313385062519643301579369133340542718989382485989557047108004999332583251167674929208992461193583303433719735939234193947183490238964539779807283736890059279010865465041489587785914444286689931539786478377331198616514504343988231559486948188649708391066732296969230933660360771878154994437317610955690699808697724952357516886544738587037146521502318092058287073715230338028747987755865289449017649700736684736779908201240125333849475842100094503592554657149212224831260209433872963408462793453661927485646485512541848359540517047616460390538593911427916281653824941335090619901561650587295778608406157979497550599252676879643505948705020682291480266175148558511256322892938964475920620279298712441071912464655890219864849354164179507891411786258458751012357993035886595409010701422009545798369453059571479497158902240570017721416368268653665491211657047345988974743160580549412687633974082833589561094627995882495781298549185026605802193707518309212895917991863128743613179607610139910606901522638315734668594092235667966992246262691209991785631491601780610906810635917110443424473931456203394923395290451814900593576718361933131255274308993043482628348491873167293138759111004522144558313679552055171183844825683196002803137346198609401061617628282280057870009969894234291732244457632906659105364356777186905729693370622482790720538111062102043404990116632069889024538445057945831135581750798644951405502473326720830194553891166295840489799699718956321027042949366118203494048875742037107686617185458299467492858309686069677905673848858492742487996335019572636375169356304928367432296713727547767000960811761903605229454088044299217768048049253222634841398610367113423585488993311274402306571853660098221860681024741772029701028546339931830781458230806592547601367093710611768754143842232964883846325844685722126349715801819161023612912444291275755656898503314970055338711214204991373290465490617424441146897998546350351991689085684601005753348305954374236264190996116376244902724412216235563015260913654728984341243006598101911533033340143962442422227908032964805563987743419656720326690994045035963618445691735153657667608612621950224404143996904910001233982648795598581834334726495705194538549134617651102189197511042513061402221815871021180703051569709088330052043056402018480099274792928016874248358103221204682667194469409279091252093717125407233204988312677428797380094425408528864480286859748103794479647248936280838969150630733220998582411858240194403718704305521526048094986148057008883262668556515219285515985669017194490544466599514710950512140959176308277570487000787347356243543893898917069792080483671553760576939571155038534596828999250328306874126288418935982987384425638834348366822748593079907597985500166596279433999743246822491902866159337624715804581682123057756368288602962958214697860862033307870539020921034652162683537285858993968965398592239996468599647158475457160442420280507099054810065885536094822319855929094974866588856807657811327050377746262370683216621466562845271314912265317805037673102017106679809430934219754786618630373314249686776154808224176323108770242906805781870118607079019019743619323986598994895700506478474820536457717407929867895617426046116047172110263273505709483313949369157045582648534510960808816150720465503998910338536758304383510532624756607667245816774587879529035448655446602000011961464928865580015811030788991188821935499225475647692991881999008501922250476921204544206400612432251951233004656153413213676703564668505624935827378843061824735723678612185006375246519317491847393509889220902825639218516506466860854929422189397971395074892515686695544272877436539392946710723984924469009194756666004469870041684415918444811763503387632227037271150651070091951913564348618523938963741098601172297307505663038000785365950477174121947703466297355527978524793684920547061741564350032274520824025335254449537708352714735638913260200693850306177635521056248318372761342223733201757459316672058104393678222027675539306062352865924112253620098958732826216851264639000907552825218598000434354349593561625767896877882546937558426897853247169160047793317367457812157318825940400555917662854299896175105184565326190091539489684062154987291327869170222335391395333254446025862465876544547350343242790185283716202618884611881498470391724863894143308956119160627828351142839343966642883761987464101948957502801800810814873043396101426761948304249463257269923059328643463549828835000910215041433271819525200077058370020618613345275229393404141201676403236225399158571197353638660711724222287281885579165821482555070833046547037236742244354841974367679558589712728099858850128512870882203592346152505507031841819725828360487891685839524650800937311320876908969132694070809550202415289463394511665362325782956687842784684018633464105542589578713833119931985375455712273749938854529868733421109989381194267251633362752312738876025021728436704117395423657212256734437327441645015310864226525006952962465100368225883686073298415783821716664841058442598975714731831775434865509768205242990835818535089002762783656888277265786542877675410051877930831459676768539284884404142640258722971348367719773273782595918830447208552765839114554234839205257720703856178069192586346295040359818881724857597239691436012801120156725524514367186429610589182295836856426285782434270802261921692849712938547296639628002773693145115612072511007267300960681062577784108640029981647685537120508861415613379794565030464746323100132570408506808792288035113780709115896685111979716070401181592388997182840774295841653170040398180126824788675269512566708830232759300664074732641164673838692867641225317999512223046276420191083935764069582474609783593920171236727727420587376410583418146854753267395436677444281384388231215073702941606875972778223764520351571984520988057177458169830534080470696980927934055689336169263707017233535367715396521113113843346722455078631696279552156741877974290752887239749779066839673650014021763454877098999120134907729333403833144796193385984700055622430796161942436533457292582402788584696995084125174157404413089424226399388418045039900685349332738642182200479642539667545210835609049795986765066048848711265473510258892120331892088583015899815665851995476855019671327546860821391632954415976091321468356039839104804800881091880328006332557496340315662411257557018899850090712604108166691549510802223050199166606115863044660005970513436831118102881875582786939222810011608941254259383724563475303304073296550231090472306620915560248109262597796742783503328400723601173573481769513957937224763266082146614850175028339961728486167564927382849573717467031467865973982314340340040760784965418415118692019884021120344926834465906143179330380775432854349288503292755887432483858570664816036819024738897020773465858292220963834268354885128955026638845009268045099767179430957350482971332114584293721742191285806068307745992232586553901825241420882072873057575369673878523304005263925376745561754803387458934143665892602071323023007683812213535185073923133618979256360172932163967240530352086042881920005222988416578075689315537054922233566087037143303666525088063455838075455726625480390100028057616943012811191559922323080870245404448340565206098358583605689161877904212047334616841765740397440382232026208815438969175341467145982795191167042985333724783685547205894033886763035406344934192753232200920681125044829237337585356212797648109031886778105240647649049132364048216674389489651197701446312974160515064698013613447623372694595429133516284909389908284261077811864653945651124834370585920405137684698309657005281332512828950748497007146637562440813067066492657933860787488203502391114498089960097093494313981590974663507650764724624719448959340345912245869423590554016274447898198175871907249098392924271986971216094696711551289267771393111645650305535422667365141893505729767192758813019994160561832811315382613647245232765261696021870957074208410341920434856513517016914517621349268823344067637588666238881177935969605904500410584068272616795126157456742350852491040919158724014604843486567121494801344588019431529478460876653853505214397765938607158342841668189860568974775316866313501271430522682840051611603267887125968340123726295954694111622585944326005584331241008275017296259060427769478230888351684441867981206239498921696396103100603722662457811621772413349954436143804672159575549130685375414380415763992492112069978893782697573370325000446976237056557678401992662314041724203230565061537848639998600040768490022473038555781047677913992208835193856034091679017012911675831179558761804629414897694738366435987051429873132814224499312136894373772849318933786088332374462547588159359099769698110979671515274397042930139572955680499453127299831978177372529888483048989882606083048657946698428459277437329121190365820804821864320778326041729513295243907277425674548606934122611035147392096996964384151506482591658425160582647542390319143385848412576371799608091914232228292162095203682602788901720199192877468313085434409916875152481756383409662807120863549729522135713240862906390188628165395366207407772237635343157290428024881818188470330782040128991729042854168098877076121154826176811818541770580356684539645179265415565418191173027178624488602839564242505626705418952301898985177494334726284011250481163669100365037202887296077805861768988832887958211496902688743918923482837433840009781337511466787077384849171707796605661298063101551229718888552989864489241681275133070364209753376477554786045092748863136870053600791859353145448440505573237253989713605106992443623735722163086203870217418963120597697565201531314605076495032786575581982272245498461204165153747091758538061201218679379452843285636530655610505077296007992200414450779151804121177133752825660134589625206887417408622013055590354312421857894333022398509626734988143641285332825753792110311520197766743489334704156233941243127711914743278390722598081552967080215926277176374786815623768656042285726026707995463575067466461685749991208191513698807096535460938693739750378573587736648498594987278354174733311734971109196557740339425828209870466320038591628387015645052013504768986112946158188035494374725721123100809695506707215107490633758805156720433999173982694257236542837820286188664046398976621441432739284003406441036122582673175184529446779122411088568372056805924381620624805789913938339371138697335155147492434877419597859573654752353547376419825313649960626665702676928842604435627262678361015598029365042046553715989066173089550338663028600865859479557470612870094974084710451037977644542608455913978215309587940095027737856476774608239624858043816009040381529888645219953478999814713547484605689248366541590483243109504456868738375056764077460678321463347078847763271995525660559060299905325885823284490696549089049393258405673978681547347374480519456779440065394935747793366633535427616207320628883253847803736210431179291467055687377904963194854687298009065290123269149143446400834414616674588985520688185390277778586603879218101720629495800249408700465817673883404951775030481734079096648812511777102806680967170611230551595050561736195097030356355155401944048030887255545313070158690316242501277905224248685569565626092132268489962860233325793654163258487539669561753135508542168019378097901913211442969930742886568680277470355407423940342895987971628922210419201182882795457984629260493084010640005617751954262223797065503123512675219878633658992569552507542918372353018539615710261465668175915340197663920078293065371731575308538894129570501466436545329404710449000580723410237178069002343991823129395130988909644804832412585568126627611456623825846872539676794325049342030937629671781405731236730146499524164610026620775732418327653190127393482667790047102288108623934220908963475969743756746416133577173062180539591226947223721223328693740880535987425733181509017232994469713173939232383105957074054341906728083374643483303879727306117705675592936431335811807391771671353180339144350324293581816372645398254803164984641795733390917787622252209523123420580892708526882187873894349964169364113557004621781759663718858562905170628939733297181069065007661788278049904275665711410269337747461576271164401021152176532988321697478773024928149281846729719161442694810040446991725746806139287575106643985614002373839455446789948414906670674384398346340630708716656833778090207356191915519443803808681053783751855617811074075827484269767906450304574336626134340899342941481649260566408145731802257029295105421144749346520896015752479413230801909954875693834421155435908812293190016941035088534790451100027195170519926229988296304422746555324711687932029407051601591829848395732275966221236216621426266465967855072510751635412006842060528231829170426001809892366403218008872245048012911034875203643733297095922301537278882528438716659262770162560913414634227537293452161092782331243394569771871578708669827286324487335669968292019825933860921041857415868213140742522443848051541174406786471416305827909184912831495989007627146548973130018649505788041303150106209350035150272827535718581076395943066403045729156863024870110869079789277573882011284961014265300812226261230045551710296655478644785433374761233707474475060381145265918879539072301410232877907430883616325219512776399466458618596073040690569512945435435549341487775618676560505374376250838134131375012766932350061460717203695312651402189434485283461976956593373259446136121170137751551096085536452653400122599112758284164959569011522198087977011365930888937989994064637667375681306328096543761866379980582244709080734039446644258925750785403616839530912960278326008093763437733925463631661264916039232886031028826801705160337382938528158741565116270186782185988638657865681797847659330187284708128350221808215796235039121141233934830053298504417234994686031444040718708989987325248406618985263927398715639383387364588435123567765832419831787973001106813634464348936220868508260130333585659604676788580868467776126551431479576196331956124910543713535912952693658586742106551440149552339822008595441303717820688613830844980994891741875140583978212467841573343511265096466070366646965266264401745602205612021548549465900547438048346152009074476344520605646317716723923361201683516876125855733446775120633454476868218427142948955994844068293112106858953100607467891527707926242200475318040715534363058095538974697232907375234960538558195056584147951684153531285470791262933294742722115234743716971030189300225970318812303833087755807429968245672165278025285234418158431160343896222819320867539787818101165264024076438343965533641499148335734722957257143908390714849129632569292421328348307078783725121330543264371525356831909149774827969905902798560088920514495909190476138682464198882910116965099322456043048734889626922079567010023081571205680922993218438075883416152061796677891257021743477835431334605682418586489294135053287827599890570494525908874769336754729204633791275178784470914306936586092549325026879916878058731027394254507559923970950445706481227071483468185775874626075380527869770250202031664517402992385037886164758482691980087481799315149721315874853865684867153281991651896524173541342772886550739923254208421711789933939843296014322384679523707112190635632189479340648339124566769811326427160196774845393984901062167739951295192416760175360566973808929336552697714603470837065474792360977020162220144862231970111074349907258318184983495903130608234040148300162538413196279351454113940195753890931960955834571047421202682184728670715055735572736702015483229233205936952772784114818572384692212170745485163779196639376682977283516896281163075017734938963567858043736710349798535823761212116368624092571616056346703610369091194685061788374471312603140388031114522632848671862464437415184856097141283389064689751313057757947160024735970930094430983220875000628105986820733967745920836367484695630252152271608492943298869758110551608132661316809278211239759022654321479534785226176594244347843941124292806201749486850178906799414345381896206679601544029485900020078628753089380901516663943074107969522793457119128211330835706741579237327420237258162176162846775222982570084033425126604192929645318272796708044639695145728994113998545524997554239093986795601330471863931594283461647322542839005389690358912928820424755251203052834157966726516696806256065212031174969410251342122986334266265131206944697848181976359441098705617750176500139140575422676706136577968667699103010495946782623244777805908838809068013834391590822469053555501260294793335090502229342208248520292270638494885066084978946577770544332506918780048648035229515608942562770600877001934313018748831407277652559599473511946630899442019176576061875057548087896395201148095886221067941916389983826042952579505705616750551485103884831685990717709212844636110261722185260856777581286529911684812082814920593615978948738941136658322743877100909511180086760111729808971702229939764197271409773842170261056497184649843571921913087453271652415145492752554616953074306182537760661655013816210670645006730989702041429166256294607071294317769308803785043032583774679045459576169729643800588952867298810008170867338029608407780676236000463473031080523893312356255459011460148267753681288539353081690884194515180183431393657294837795768071238747105376075864483116384794245228287723817670012649233303808424117226248309193603618922543708088284826176236923940371708677601117670472621394774192818082056817317458647907870743113834891487592349699044408112306063690543619828901070932056411105130260509412415951118812987916681687646762117578260699741268978538537227527396246059651635951226595411053694366720903031228092087688590007125975408352310719295113831470825320858043843208653819244017572192811641828946982662187540147689407060077642128731007133864447116384637073062113654096676964564177120429385120114420775497100504852185321494633124640159289841004693880072964401898992550413148308491589312204293967487109017803224831963125677270354045204178815450801397398233259427511050918802798517926614830799274750446867347867883334484636492032842852975341467123066913655934633685330563995674881726247687961080764394805712478811770991908847747490161640104668765157396408285520042720101550248363434712670699123346379156614437904243460629346908407100832700811059755636127665589215282039049601195427788671817976069068969554032179689163657101088024566874351148085147925297314489292197915840745347857860671226217952237997261578677853156966819152399721310748999993148240950174949493154529163464895177880008502505632902601782679785825080933574343370568577202383889472248447345183571348723499924644785116772252019571774048741450792720478499230841611708385910615875541353310878671929390290892124212989979772168725106576736237231249070225436422731350712916697407230851149000187998736256790601990451510201107999503068076947962974163785673988222232514341820866462698245604524535539532416364476482051460070123346091608285447992955791926224120411009534035253829309478340853339090226023190868415057494303161644352937334728080530730415474165715804811978380512571379295320012912309489324168599614957848196713651037090551720421612867143304739299324699037520689438718587479083880398262674866426087672705881325469965854489960803069378395538882290811496670544779597598108832097028475855993125444497160987562882316225353595757712859739748947797169735084141707409211523580143392697194082664067631671817544059612360501889083147501458595293369724371102122694142056849373130727918464307162649438445784841827080925724422578994570023875800818014105510906227082022527103687027942039611848033661462095246575484309672682827770537858682104580569926768172919927827494432302288815342794195488927555470680105418639916289427161395390624028896204472011959316284511359123277791802070328856320776851140378024091461844987189510740167487584358814963328990912293275546977740471574394208140191525806114464292684034170717129438235195336915315626203790181139387805478104683192568626654325983780783052598061334513192753822919049844625747826304235285736542768946949609269519834573583252506223821226894183277734136771484860491998753808831979478225098773423013412884565424228523935345168345498935469815809714231585511288970246657643479993915270282505383976601931588221992822421477267178389185189699156557074745513725856117979036914810562332833331364426050309107872012078746759412730205666294002124140208468070642202066633801283615941382919578577900115876689987987910577674490135982585637099534729914206099307909538605138826193745607945719337786041671036295910466839571192034469796238014224654566417948675358371052105589846653825970584505850341556965907000158458746380984239762252387816184875656288382600241435185920525139256251287738403928230030982062380940269944006695512491713334482492867772539645414338972279979765470273962067220349741446071019081864024395388127748395749884516121437727042086600089110008524288957546231280825260358860234605777971531615335702521305355908863901010309102617269184780360616720373087113537235643754070616722645646565339568708983556517980990069288817000905226797600785675294401522031003339293532205247515082039118181842160377069780669432765771803482134723775242982137207607886397162615077570438557944641819094914429341068813965905219115992742909010865054995103273170676516121750353540585824911241475667464665919771993132539461913513575997917218970576374576916459997776635847216723042885129918198202988581951110831224796462277681716405365723292224012557397208271952211191484026652569566492552169533776057113101743286884483429127183524367921334885170926185689683440056124595318424527612713546407646174072558197581403388616039754279636559470665706616677989721130059206086352337912241250244782439655884162993156798808921435022019494779072909640584798133093099278697172109028161202952029040779987224915668131214212301475390002884546778522122902168402521269550914228771232751420143731642534284891122580879869297436908903050596215946721584537732098744696446066377009480948442282795719766449601118219539340621063868693818529986558427766570501860710206404987881354271732079679059237274847322445386990879167740976065407735271014137549787056681898023139312345391543463907458455171399058903485295108076571527447282314916061612971180712749390377990754892638489774433843501285095302835939740446480264163768061905335310734443883733825212764249516595695499632230456670948922014956263396781774979160112779026962907233977902770181731158725330880382075430294324029602407888428932702587104236778285368874317881406564868054468334722030193445224909202452616991586897550856700640260781214534232715641667092542854944953065860078769123156709172068401836719450347297569238409209985797639198637512284442559638311051153368636349673738227427881376735323865732469575635747129302888222514628229683343950654083546960800914735055023835911944102491578968095154066123967642575598620951142979113652745556993611440433730228442820587515012679815019640785911288629958769566093232746914453169673130362191102362058826334177409502266631113734942393089495960279042168217162273757032238661775271004950494774101980087743562904047350960865074704894413996541669305518098858921421072706385671879933674582991284922631827520111797622531481285440737794359474250736105845360081752849567903011508776296072608114310106608652979650319515697956911931180721055078990965691280304748571449109293492428855325038773297502971881496785496914540540024808541361499382298682128509529320340876838434680609064628256878413849238497847858613872101649959154406809434746239524881485395978213788735183958401692727198058265156132068077879399518673507873309087707755123022365809649770951104585609711030799064149810935191775486001594126360527877427885691086238028911271858744774143420879645216874603409365681325884424653772283504391286463860226635805321164508998673074140608968262785791106942667476204643150568397033950394086210993762479943067373285800262621596564426704795695401450207696648029145511599447826014416540285371625399142657948250585417619639276261823039055272356189077174115164509992824800122441839685609350882969121957758265846042346770606303831191429767182086242335833878087520498115810775932827562854366494589391288295758743849388234199327896488883075859815761812312709873624186771221380696682089925468929800992223690505783648538608468750332621785219813632737866506913815160412862456949135575987953558029509363975262320345811876398671430628433470228864631746426055206571174265661663665528521598096747255484001667436249588197938324238740380132287700700609127457375205654827683863144988131841824125082713503209006232763876378440380886775874698715112819485878592129559980283332856766933823784935912256719093633954208778712688896166611721981073867794417306001273774727851641554290822376149390379715850463765031302382726633836561457103364926533976777175649918347479469977433922241819028515348619317659591488367543253464180345944509522088966253886490495961406105226033570256470212411256808149413111667288793260645647003311998152987079001425974603673071501071176349304627429025162069818621240988756049224220459590072885003933194616120015895914586381746074377866597462898509515117484515174617460395407901517678874900496661529465642584537662379638530083780169367711042221908038839477606007667958877438781553552098242015597914194281298255653245718245223743273138929020794785230986011296110697685529226859825473535364598814158063254330686088233072171955956712603502973002024133237013213952217222395638658238842632923849426039117884781377327483568352074369885219440664039060205145679233730230658183654993338006772799602886597929628336834227215238962634429537687944192136947324241822509783901441253292382106036512345075032168447815794179138017787117735999819056187533712015860188639560557464573787930834932090444683401751579686219938931110050027630054639038702135394985900634825791720617697082647803712643678282353298671870306515526010658378068503507336851412179455414263332073158989010058858211285114350132659976651708446666572280089851482739644027195442089934223571300719928895843204959479521500713527927964705870347120218914549069573969431126495097696567195690213224955431678334115500399486439909424887052071412778649667063657807042043450638419405612576253788911847361122897765166171596118285437535834622426271513997628438830916675775784624223654708469370449919243932009743945658792444131835991109033894304077512527275269338612542666508084782797451286502778598015337679489215730221383942498804206053239012044220824716284933281244164719918428604096561945868413353127303401981861498206283982968758783766427075437852712485398029495970970791210176730079235233416665080460781205358491938817774503697007926177526249974435427731505088484462894348232636532463901768244427658622054418860819232208438118444044052701179412772464463985487725146981286644472373623267535661703176601867611115145858649497483329821389085978578834526521350590879953640216179858718533390058082244451152602361320309530918075305991710573097462298504495530335880743043227496023813181600458241040937636048859026187877951679888077412930758412282439026075264404519790675324031705905237704905517617707612823419009659179052604963784898589212918763673169472526985821605436771419829060457429361630226455633102844821476545957951344296394611707199325525865590371736310128697608551597611012439949353035016099413375410003841486571533831941165868152641125982078479955640980851637752793507715497747070611749531790794341098241459411535786356502243048125755402893395590867363916565586143558268410013011661199254207776905445647441958807822357238143064834057910602654838822082446206143969927892439088011955369864264635331808653089392490036169699684766495871717186289679373683316568083503027555212542904287557876574821665632951050906993087381097562449352698417688890987404012772494805964788822317298289997714768832414998275310838236685142327017873703179155089822822826304695293590062919561542055280971891290108334019352747846371945466530743821653287829021154583365628714572853693714322020845506617425105961830529535634909768568278338865234734461970808924132661018966397342764935794497582154284454305572246727397210264235755660271784134557128844158515646859991197492488810796300876445055165618070572037069708682880745610477466738651194068672270476923189791093761621581282809517357399543902932925541672297799379494326323809255904498980148606293265008448861490914392055528022988665119181587374543100214797337085165658573903183478347410791843954406232830241595734076604475029330304494616359730181099352705107253659661751405352680359258439523302465005304251008241621916482413307852451301690991878773262817468402625728517322590384783985914723213559352485915599537072800361223557455939634267784482331802396719018862736758210853363170488944322875051652979002427387160350828170234553099335055381383816375901754265507125660038361284723365833432724276198009722368024104117853826559044115134769879916438838728839073170929931805188378692676056088926757677545803707355779810282309994773384026916706833898605269649424370906738253580090822394262385794745730636053874237382761231280204576842437191857919487340139679319857747961522685356508069328713551069420114155633682941409156059488471818668617136123848662916697529305381937150508518047585141837916853980290614838419096892526972160022565073740566320489412575477179064435004855539227383467759732558595217766432078650348508722198848474694623002285542320922458767814439748410049527506142927659115171152453973479598571110119729983658055682942298291597228282977306789119790926143865446026821522378406452139900272503587927788408673018884566014527585095260499278719103535046023457655690524202704764106483505890545378385014064379633985916425755512786515084390316911702397592741853149483935826618064708541034441746210790971440340690976813882579236571602806613284521818166906755594181138482313694284918424873016146377650312062335794632349719764894343639534447662269615637425127122859923153060633186519985225712528415480086102627317381631548681796245492448972084012493239129986909710050063152422340136412004896829159301824056870382617482117126216952653047088401470003577269663711850672732095195674255494354947732987992284923121689372510020946102622736861312205290751145502256211630687993652699372163639657547764712227323914277625537926666354682912192962516200950648382756765512029900589522597790351875749443814135386855753876816712851380764426365912439877007112204893729025524506623766252140582219681899518339261012376502765628307662312390075606846242193519523380877999207890546319989122449355971004816111124200859706184250768349145362919706458257490961301630813422277803428677537246906031147758318461288538097348274603540164993687821635164527563341839956625351013344440164081526022805208230456604099820493587536553944290543019396514618035593487437296855320715836484284701846833907962814538005047487419722711998706529100148236657710168578951735560650281172300958637248369973898053362831012938014672783033744221420183537161030526259035257571350885223767334768979169877235143489451129840828348978771680143814940685244720220319600904409583012881469593285243245988238465780097206178603835104636971408282084148407507752518316031731649075774286332537999373759359807936701184914301959757227536127779942734349403350337516264442121293899901923022060831650090422447283954948318763364945377472918648031790175765562467523671770182223595378963160551110375357933150729564392024230518563919990135770788759021467325280698283671978822120231210422321683845645329273659983993850548781656749792796542079096541629589335240290001208565495990451295669850966494304353721902509023190045513803656895272445443966244495822166067835613491299537814216867868916831253988134861368877699673176472572270293312450802653006829728926637855190324878419496982753215709695823447777319967173337477961092421630947210496693989498958992038660904416174080537122448886745202659167154267229058504794574609034606664761844898919014137910745040669857128739768312726287696332361657036886653904810120962660218465476743852964406902604801736794333876767808285314723079174503935617351436335802946093686671928996461175257222560429628987327957940257351000949868056317091028668195938018540782683036025488853949718980965341643365350533752659088845957503462001233007107882582281989748249107332231980942398281663575860399418769920735076666450356765391460745785039944949303544333097780660568474740504465822466470325575201600544475663894299925018540292254257023474859304430220933405479129575721748555195592107105139979184109939507525915659548578183708306357621229692564964419460340178738465803207960485108598240239000807152585241844153087530105834761150422914692853154549441698211275812149796104199945571067925238190248280116292054234209226721550386726811211247406190667357903373127236893167646929082883751755682707756746818880256207651707137590322794090579616878527450826752557553075331760781450954379080237834091343825383942199944559476225942050956344937882731919720992022994078538511311457583017230654924221709815811552462247271530524346118828856961431514520967589343424871261153980111264651217236016965393474494997539988792239775098979427701734178906863160900624434881797550344269603544002330489974065365535648972704374119105772255036153610222955613380300451040975213310319583091795878205547873878889832435783100277129752114823267346352199223965860988585691851897400493852488624986101531227499753404270065097539487911723471558022061271334748024619740692822241895737688183382219610580805318095622924330960773440166918923554768257832566131686994020393806917794415732317957054226491579223200563557198840567473403971870595407911580293795559054274834595597410794952486189672909701846209322611713505495880325027367225178239728291207021765287164835907200344724946910959319564949270410387602147055403879840797358095611989294443341709814758632578688213836258262207609027986768323522132608206795557221484288896521397872536302974800462826254526991370301116020054820515036605468180715830002895246906907201723217768239432187853416274170932959415260871663946429364470721943534554200452500453921083634922939524997214496905961078211224828414072928342355887221305425207459426614793664146649366355745135926579178536982187043932364595128516328555476675762231022193387576043006205293623967986917849650917778695922289637231739019702444913508396056140364233236236944757775259280443386881604461786790375666401364787901276128082549858056771894091806047783111452449237834107499100274690748319812852109580715703837139787164033178315789412752012698046222225616530625676035518761527040607454232403511548188994668360136201017929856004772007830110374100046513142185508245325013393817488574434767144993326071591362728552211152233885073222369216786860805650762449875125945502280365134202855703637484018135913294989596678435052343237872198495016553407084691521927456216241164378425146439979060659006712999898833943688406346209337730220603198002481605141695339170019552923221067938392803011972926304573446647541495740242741223731996381645991887532585104468174172561544443776639559580112101195071701674711145097489316983285102018017054532563174291095791299375409870606651085353690116024499146157297632778754426770722488638285820728818965147945475360401728985171456569222369580995571284673782073053265213097498167063411949580987856644824176363443226427365386458885200235110514175648183659362964134113440940878935249046072551330356344411971109005572514825955967214890609745189995053495734862512935692728680942569057864812014498592191155287139755255809857415238667631773834853355173466125538907970171191496335153760334241221680692662606624503545640849705090513320969014138284835234740370286306181839367405661482270591458046246771081143086686264299643756614187266113367970012822652342715718376139539871265203490591671364559427386912374627540889073907621494193656149629705497392646037138786631901742331167692361179946450431142297170171022038978284541442010689509635304790000418528496471569186658355276774694683197811874567295627141630961084027430176516487607797598945874689284473984051842457993661772017911162625938841963686819461722865329187287446296410102181865198898548508012267858606404421658625261415771424916746826646728035632082025974714695053005305310548610683207175512416172549279323887292003845520554470162453262580937885066879171924014066321942722533758787477568530368225270293156145767217486917554660111681705328414425192029112381877735471821711739306247415133447679659833152769713189671699951480792883549170891868518820460821144123834896360586784137364198850564337450046483143080130256737494959920184495548974307923942269046152810369123073251580707784515915507474429126856389150246711064480657174147099522744774092656827768876045276774014238429611996569914349062111846797796123566144581419202711743379814677931932502047002799765031195806801071374815546886717533462526489408074647041663028338858378750893025967001052025814412386620089193082805211104414497981779971295930393609723967615360153337264126086496941919314361704066285741112673482161266542190562147419251261156790856269221397676711535636679468969139455776436450372564228680120596496792088849018260940069906585376503202518776343856654730269887415036564357396592984925287211954600122190177897813374148178058794993363393654961597489385484533897462176263265623712154841339793908764955746760963156570716002590136573040801928330674781238351548522159897413492844594252478173598650777824049397791759753881605211828897392337764163649938009118630964975009246216564592519299584505327026968368562638488545826901054944226092321215839299439261359893361573377328958879590229100339639404242911225524413068122521280031737080775259448637430992678962512116651864511715146221317818098978021123192519065903678422297344438642788688868920745094877450365202954222297577166467046975254209689521939124387177266724087716540240389680409962280840018304788076881160738310630144797701583849595822654275594846955158369139304788043287082262174135029118128287922240217161847693451848239826631433227058577040652173589396200973206846193017601661506125010976089339264356516791556560794381706984691219945086571842106060225333350978389707083782945938076141539008544534802674366119664872127626543704464705041733222465951683062863378838676944802341377147747442129218248378789134353555485527921621406881797641243353923653935693997586411897589765957013903582464442284165574682637819395233922603208712830298044695991627148830303223284516610800195525442380228880974821853529055747573296866878009987660382231389250411760012876250795840120201636234155987402887444843892469830647640832517585775804091891568735166250738981404428380568902968983377256278856115406855470048299272611177146780467413845369159774186271984156654652641937018404605649180210302811587193966191521367429067628759490704846019362326868124823791083520453164699305177088748555736227472137987166237885006283390009286631276161075954081246975610149536333995079472848951236448103068286060179400135402878473570403426936981359485193630937495842490470514414884908656302523801503213321187482034237433040040494541161405479024062820309917298148732229330698490803564413145936101076823938012374574314421066326633128163937003446364081033393656351915335439692644894486741149857312626068539273028092229776567889452195912258503279491856439685753558342989801649926934451898002854501597450881016346463358766642318803886061453226085593453028152204417506650204342623867257266419273772138751832508436278922802369935325596221658264156903034225776897518724971374985438385417167813785360262321250624011834903764825282056333710210583641390813564168609956179410210377961793502765031586589106908498324431880133580796600409224173962309711222110975241381977288303420166911549540370247396051972814464909198142764001538967913674330081956107159988942447896981161241421945447005650739280750320730682740555422336358211858829560234116603236509335784402395831734301016987153409865059345269594888537972036163595436444718419280136090965289244039498497283453000100946990453087028696215941559432668907721881560164886227963688408295306725511858910003654999322648498045843962359698242361867886847721849495583660661860850755145179812334806057084583064125090076051934189911110755459699363796314492496881732937722609544213092683201266845033327672074888110700937920864921168931184278086402683254740650450700953063763992907414599653264361061437637571563908813491504228123768288733359718662293284313065301275845334304625535369681124814807372404212363822177509601333781297492036759101303744137239532548337034105404978902559812104526645939152656361612067065242850334439678250594653493311586789804804087765234708026319670058408230597635247042208339374989427262221081524656391443814689100615652535754761692395021433354184899515852937573519793148021434932104123817363583747872760990381854521944077569785051712753978261873585482939121100086904427394379392293013355094193067171961723491521536898650678291816030031928806962636097427327538653009864939483296417652228798360508923883880848234783320529024641013912516022135974700065624922280348613372744330753451091577584073952916506985322294254688037169494071167324307776636909445636474048934356846621838390798631766301452516433516821360299234609965790755536944755707320143472463624819760250145520671250633137881376162678162409222483696295816280900739684416083796940519392391382852398119195253063577693749986069498453316764275524671772639098595487674643102759370697961666182368862227824977466217568587849849103331712461362254923670526640573601289326146625169604798539311895640111117410544708073282211029002173647347631895350804535487119451249706529292219146065433622902945453951026443129141714148030780537892491242451611195161936063703383676422100971613468673644449596609454996331766776672508354844112194881063295863047243538413563254154790110152719624927340334132452474059750812677115121056009781597544085838574401783600659522127048391920881461251689984464343630241440184135221204886637688089817080295754571667030785839940754623397954987424750677832843132980708604474888629238929920110642046331322183771257291784043699077562701206871165461570872525749965317019504863872219026960638966957292855181589081863003334685246229498198974776833915826150231526873437802478061124581944297265602066025293197233193046675736422158067825865322897719910174393916312598993959940436954268848475545343668033484260249081205699432520794093368891714381047333198078978766633216316680976583432703099954746426837921712039603860014928422439543472678991657694307508080756625718688323029776075565626871550495188391840960026510666737237411300463675941264264786927974388778514290018017366393830331624983881921475088711524144194428173733275794301903794152963703719982390598258747346968186536214240020437270262977520728416304613651661717759557311950974885936281213667013409937219956099967133997002252155870620446020801392403317704283694738625461353229862473536317972846705958951893251441806923918105743313782370513859230098088737764651329661944576890520628555968023727645782725021632755021000610784059846240766003927777376649953785390780793675377219376736770887814594043507331101856755402846072114440506545622789435405742913810193087272852117506367179090824770482188082218061225904400731461746366807616282502518584067325864494107990597336405055591084083856714956120663778189017440900391069890895217706407577865209786971184675167995161889666797492634952768993332542358905798340377281935905626694605247175250008982340458041658468097995367104696897439491592788358751910151194320635809801451430540533941216213682271081443053545087269634702106116884113907901724451836137343668071624084230958747979107314266525087469010037468009921367041016221529183672229238796457043640532601345515140479152506647869569920018273195503569422790178053918288037315961077166938649472310392724399624658281640560658580331293185125306334291317123991841739007960392491190862684340216154085857073052115121781389570336398960504356538890090170562438131486289924361580200045742403866227963717901866544892282750103092477029537470670505878064029216805592945775077189155898348795079328133817884940837779342821183070199797807807662836446255905264280287739147981441740365136220644446128335358777380668549392851110958784928959809159055134227857544414925650129274438553695905833292226233355861061522413033998346037869004513067513397284978343777561897683300933399108047328373540869944991665546579560488556278839021599438188331017046819796099807096205646400509981077770424222883117818485038606432392228973957778937328600631685983634113609285531062069161944714113252698286036546885191883392993539831455186067173025705603026794756102098401203370682312167563089222006235656823087810451913008892396043151036808350100039992504733998527887603229879125113788823178053207752875517156390182640241533858173870096816425156724427877025006926720991844500548343597870047136194638922327486435715270537493146745904332115027733561979668847144912832889418198519429868541158728781445125080859204981009952983238228525424016484377168762530102125983703847058286598115621166853333170617258103250688750906738697894863038128118656111683876456395838126620544777180406916527638966325565753940674202461498309094195307896925187168565159434992456705052899348268724908923041511068989904453035430804133202733743460288815024214414474266360183259309669022549342341797949091859595178228992059072087463033740786956691212758201555896018357015059076144307713418188728451086346870412709736926610787634578806777155541242320722497582329104238481791889803100385681168043131783944168607797034072608538758655817475609763995802272380339034643935523280284540010275361913475445439506828652913811347987429147101129699315313684745220533358333336104500811534510570879871194034328273495643808741699604428144569176196894757350327419322231214251259052828110569396068300775137651456557357649285124143118137071699596598811343607170693827335260935409784322224576212639010868304313791863919274318999131657649360329492591305212881336270798361887952827241691404422869827243773289186516179302186370363262297075820890212709172850810409165609831813298664644330934708705454093643706971429373664399008636307495102135485430689090262627899684549848888607380487598752549522510224044923703738975813523620747879288408868831677654025316542326817436260953594577728720458966044465455141353338077949499033987902944425645781287083342706136956111096417012925203314771103036496973139519051709339379994375328284063378615685688640216837477368077977582650496073713433766363013787033952425562501658033113922110754193349755385337680250115675825593767433895551955906988574074947295871215923553801966061383309550936978541748943263322206117252761536551875771188145545016989120763280350402727576076072234730724191679291864381887331323523734784278242598026401958875182578924049293005200083844474073369539890130541594145277907127163215844612795133554805236824171893761502671045944010204082135727543761652645764572393692521766266004757852243251341248418034373892320719979861383142446992324604040310454555658354831519609209462906134589963997176051980445359765853893908094065068366511487501633766175323029961643437272817998019369184593732870541309776459142641386524770386257874683992480432378775681488388862113270725733927864360838810824727298203942801467374731923904889322508457185780989225753177859431516896847458570123587522456455017059896793989870727308734566127939641379971778838543690546293407394693932503723395227723603303066446453438527381975297445206370205709213526088379836574812664965508464198328040103616883222538426940659063967188654683820471351211539793764058127987326843263985937226340384173636561330519540415508322590919238565517977927723872703074678426863704086237042424280576115773157000594344605099577656205661609764589235462907675989345271114302101545217294722455013157866539829309328696737515016361379005913428855169414701112772699661572588234375033919536550330026868824490963724468862896425227109815479724760925072663220099874229925074829827018481809990689202455015577714252332322243795576224495565264503480994614668474582700600081709432103697613097118136732156146690483725681291828479838548829580642342012401772961377469189564647802448352455992049865692630507510986282550658527553183604479901754818726084573366759584204879256639050259333231160847347478515208891574103539943487122441131273723303385330548052880669439705071219026748908679640845882529131192978468836428582855125869967147634483665609785004239175133865318998311987924167914890053045446264704858671572270755222590695341670165320307239690828471769718609757913815394850909255951645998173371826623319781113759302560480431235826998059440215451893880904856560658279669286148285280560770596320411862396870950999331839884148742409693846337373832304968333593538312506582888801393554955872759818214614120922862150664773962043091161612780326085748490142267219663099415501000959884448832675841251537108595325814790241742296179776136969482517187835237541871867541759712651528533103412247006143733500860376134255147548278139990248885017315429030820755089186227052180594124421070863741801623850625897241474648668134214430072380194437646758187348281587393796277665112070091285437859896188213290485985043925966084543853661878014875224568748080309256931698573478834793225328577771411088739785940071735893298438334655163989174838967679520593169517219500080652541275769128322527101939102396824527536237610169468788799179343768092967344406636885845553163854122778497072568745378506866930597053582473041648857144434148841807037948907774599512244613698282097699120804673965065537397164806772341465480847732459247245953275208603743990101940645129384245820956470193383011101179570772394247781453536272949688343371717840790727643786977877957463142004513164464750474852802803145633138298948860005708564937248689397259929763014072080063995528783601874471548046958352292478370028356609415430817298427152216324713837474422402126503948422368674358958038657274122329632904957546934574376664478103337685131136994674215779665196256195466673109257245853274434830200286255964598738142465105323889450746075831964975100673685735153934033244933792593377206387980218279211023767324901138444445493190854200103482819424091436714864037996285800206787930294726329011066810480273865455970191373061237396357328956483521573561750430006224061910785288474230690468158772966790341174620318492167863928496652069729596638727969712764694790100078045798434344527118893928367309192302929971225687233864946650196835838722603264220114550496843693393603907887644706778217006569368855863123398479259351406931984446662749596503217061530316961196737050492344039641767699501077514831732168234618410602331868942114132447171675932257503609309620402154607320974337057249580591946065374403639978275889970222913484256073791004310623379658975879652578099187892034093432680996014963167184309886943789540901907631991472054816032044887848328591355468618072533175300464601756029948381899037951303366892566294725452932595708628509212987645998187429850592312269372692468985957578045204540369733774859231177697335891099654927628500415533802162830641686317160458129424069150735949687366975962143497920861544135354958163665063331606809520122729661867971916532462491194891661371968369350466873653524849914472482204432883863734280529941932081408214984455383569062101839218297492329241387499864157333841105252445074189566937665384165910292325316053102238655612209280941275882300670449932913343505642628255502441805663445282773139495584256884921246013760315159624607922097196460972422979496073121965506362178687540424509472882054186312043745323893937617195949393325387020198266198261068268934802743535079197075138466882828311716150024835254951211201729140096726869084459954069194200529222241035584146094929599366137228101476382511118181123417959067560039043205268021213500933882706909458034028533805245187538781991307077475696814304577721158700288757593466551938993954704758873617250289243163437103781559022709498156608616140070879177665605721692699956358870832512527684541417233159166103649012507658214202400150415118229425336608949060368607409264699650667700376805788046241228129046660494992870642170416690585162608382323895286956880902347321532385153708810812239939729963014282266655225658436069561563637448132550497385544421221359158752819442804173712062531973455961861297804233385702538168794135730694149410763064670686515234232633143138278232422196177117236123262643230953669540946568941785247118967401470375147601139712506507885153565892105497150123262038279626197652184122055813082873087262765078487792747153497610193827267451120803257181164149966853574374482053103500409612810960096656521238960017612873046449994363094615842743533023174435939515551714669088472950863714060455230346376353858147353762842635835627418509869594523913502410140052283168918993662917497888060035045316004589630277183232560437840899244746615399738160344454815054101578934569372210624528496498091679376448200544046443262903562558805156707380897578066151798255789872552436180049098902738017304817101161441149994768144240810046376075105832567573944557830519867512596276008708387361340294084719431083777758887344460356555477986877625508471854883366511158177814423660248089594402837042361941382418246215559210744095219781203092899807622936534299548083885016010545194383548216925913855506654839966105011018986137267194406310891346066735138109289118373122955169261521581379758757220713490471263039964321098754751021524233159795863169073425353619846198557438556189362235893194785252141583000218614569162643223793892504548501850248559336028906768684003359927555880621189928220344578941267734342452001194536432052859785965879322598678656804091217647324071095288191256441955529911412730091810632184982750601948239574514450973119782702400103900711523917189253824764037088961021140758032935671301895830866262961561792492942591238737618202396465309957254545497501404293307180789413672317911145402758111231533308979420052096068776156185031571041898165075187274326139452541615536618910195309202669348341286969135830485535302213481681376744469339705003181110662319298632823903631615413266217885739853960289069531461988610484523446353391170613672827095712367917255573439510687004032491505066524604551298415427420933193301738674110409519427882034088336300452141047913453699075730777285692683755644137352377676968331752652363561562570997199136980132587454260378874398665039374046314151487457594216491182418216023846399007249872777332204609739544792955085554049768004386136631518295569567598217057635533517951527308568930793369433047785047435229554873881652258330290557515290696415896627119246503220171203857752618000558883993986085444216267827092672282801094394744366551114812472918701435241056949632975567726758275199411425804828280465164283474111738151515150920091599682501274536252228387657419605832888163368301988139311698271346283825931834002463535804929553587599906138408176834876051346262245450915687916096827581799194123661995739030098001535532055796917720166956573280099074347561361499388726588488081564581893783312694918686617989596811748863670269677382919941751619035589774852451719251805866003413232711129694098651873332138257578189532211446867924615006169756861365388959298281792991227992539228221055694279426803437320150746418388172331583266790829112737718701681248055094352733743164746348271513497195074238732656788179003005163621041100079864656509306857343367254618780457727954300170645084587286014849141224966873819958946101322260453372206790877289086402833455729934181597880151925844518929233803385151299017901395471948416779938087434919244965292388071621997543473649791684134939422268677136997916533288286701921510105073242507413409514368833435250095849733504554835872929334588217625695405679118870565722854336908837608042460586265997363891879613213835460316633399824482219793124311433179930316715356549618721633352410225168730592902251253478626698032381520371679128437658713872959875892432917919652806299378417341174493367898090633833293067982778493221246951931451770187653817833600246529756649607822173811052784051464431413145544190344688625754828683915449266124544693029693428965306532787738651672758254093044383009781544979455331919831373983688756686500324466846987444745997161813240191794716034728006510479454218252722594173479793382570767991066459230520944986860372104500533079810333345373831117827742891069022274427042031593737121095327350204263101777305670788713960999075501814307724027987338818979986420861107631134181777575036029295653330820371326277941450587760881633258366637784873729407534375874268861388141125788709407142427583448838454614618374747024276032023612181023178660847589275759302360694325517837509703251168230257111651564524788236460987951776355579535929312849231667427145380298393749652456180807716199493390602679068087388599904290181871991506929452080781803494064364428111844867639716020098741525228533019411257837691830087675432479990584603810187111667846427258992459952709184251887989793431786132365185055679760460636914703366963526984750400724804901127656458696553410463570119559606947650301090230233519260740778905685581923084679285568020533614783017588704860329126593003963847692596505238112452032154882887494587879766281973488122529948863032730874703533847692517802046802791612285574231942379389789128398972920738073244429906451022246651711194600693696940802128713052667310371552752341613885719274196431018050044930020434159616411513673704044450956052494816905616756903470908135234201502054084653025125834887638444956179882120776378083690214012788580701804489369621826618889864259394316717590676832371798796158079693563740078055111482993291702775437638880513011349070375993584973673814045852091905178342593035943168364697062506614172688410107876511920113389653620556606434732123081134200412351349305186245972560954467427675546337952461915397574440786904627542711183693214786577834278628220308783206810180765303377476042752968488297362452181246611221673898800071278758685310444672962532671942068879442340550895542140092066785877568041166157882468887669714945921062555491663188169930479273563586726446023764291175494737201866201696379309910834946087822793903513907143010278158371702282460290363095557986338743953391160242712779515037068556995137733746181155301920048080948925195527970872974693168104307640791903302015366409238112527955778411919061333228878816494662252927152871622121456369934268441528209412820335233610077895817530927765886907850734638131921315692310548819998129123718081822380094021226016412022120665347432356536080907851431789203329943308065305033273610657139294419621965037767123191254855752106748279900714342573745973150612706151053391334999625187453197589340063373517752324900785123802261248423885661098764876513390911023179173995353317723838799927537678890907797202824046165309621339523861173897327901182699175368454556759006428208021670821364431966719759712545512327658059126205696045962877421830021874735030858959612904286049567129505151648960503061349785504974349609068817899013172675186434417253204192604338600719531482382662110823585279016879837256844465350796656095281620582840863822075044503511913397396087872119355987012535089528716319109348932985894345775928996736483076322532207450313573595312625941909009838381287779660033799898893612393241943429912010823015073406967007403661761080238568720613554043933010046773060164558507168492078513823237337047581908489352178380364657911138257110549230351830601023900849401836975571699229268692868935033494280930273802335580557690097218507789791087902401062632573463871118997955401555966837985625065046873744370931315694053116306805406883740885066589581229418519995972484995735828374897774817746535805906807374621202112183825215954049370018214362520666685323914177379281568702285827851205445614304001023498462522059225506823166065818803725391276166244113028843572200239234603927601340691485534946272968312713737087614490633433739393251591131963942332188992399027748312586991038295217629845765247034725301072848568279413987726569046527983114027893204160935117061537506586415902797042211867440545959961757872598317619085227295570750434897455256212830953339124947133263457584565075209562088953116801058016603390108093384825793178668357877002152615697135103791369248215371908862845735506552392248492572616498654668897705591395366951257905521316217365603136415680442806240566799722927160933567692511572849833744577547578323546030286659559521905676587701685139849029498464357877887446387807563826679511455907874126943109770186930582368124392500930815984153157998080032056667909224556084330640693822063786907980155507719473889881751302981605480650088110536842317783055591661985273990772402253065851180650491995368550162045733794134887731654465536174994521923323586971213706334129306666190084977450115716489503338275307327755079463496875875305611606535234690352207578992563548176496043687929235284900704627704152027953596200825877464392511814656987441437500346599438440405907796419694765894898157448957838796297657700473913647529447802041858073654428773324732352387409544930323227763740316009039488799469951584505922667881552490980196309958060204209672349936595597534601340713401667757267743419489071322951433993988806299218780143240433866495327604974666624957545367364666642028497975311401154808821167390816022357936304567913626263628384399613099872013178035212124364710163583789825227853411048980794484896353782567052463511981452538275627241567120459050365969286376385695570568872965930548082519121011377219349868805370225887184766317833779230043787226396072926013566895735478666674851714881746824690130715568092248574995968065319191513396271800969053821067220154150860730496098467034237020066069960701937780194534926338888468115495010228380951676998057589222644707231848942015124319694737737754376324836427089071237136996769496950550166112306740091976870091331851999373948150631307186576729565287136498920736722337704940335552628251296462328157678484874284436707822588488661363846016700393382097057324503243367284039775035109311910538859233488958025329962123072341239902855713800489329099826338309795598247396349027470892988487583462533185278897982207036711363579130349005802673827325094179077366247756316884290683071895479473002563486332629031239779019129847075766797136766961908836073650998324335853746409807903380882038331501884771174383791321468405224713081145015710336681368214947956225376166743141452189349828661606682025242566707971850784936093328375913316448839834156883573680236986640437993178300395945216076806910006495122752032454690455232985772744776832954152230875546571583366205253557998130138724905226730206295615887129320372211287168966024807486124741790877319010130011488378452894143216892349933228041288650505821495350988210206460644237062975160695044576163171094811744771181415964974979191165883205491475481005798473766301183696165632102942281793569037390282957783692190593329960706068953634904519337504158149065437133862373628752649153116135353486522207867741344773220430310372159188370139332423593993630382835935041093978210114267552542684495024859343975765798225122535213860762673095307222914991406955426138015437660142251027339054430657032715239823231814760054287097032423072594743417444201120169891059585042579404402134652808931623399047954405581046251619398799348397273181451677662355785508772737877206936930554536842567042554793897151205967982805532000982084440095855148901786802963307021815685979185665170190373069844105886055923824587648857082478401072708573780140149923951599051230024139443868788138988371109470901089989241851122762879521286067726404645737617085250443840481458156994647287417716139831704463610801485719190492122662136547000756870654575249298670806970716001392771635225564271349469563025969458579873678579186966089860252359941946349946052538448145398295593565998018790182957695222105498190195094206389859283667680248911692256607840125871926940214231572890042541909608691855220514690056636512340803294500223035302937948511124656251233979945836240997173276416268757586749595176408119896736250326806242565755394741884114458303430278444931516755122812541416943668217431018995425709769028198895714462564755259530535966519665813221211509585912167173177478560285195331966351129539684967022308188197737047557834230203173563226702758167100908411814933886340309322116159281159534663665033811010463688804749451069262889474538583775592112308957025309927989269921460171193187982127833741021161991967610970902745575308661408105893626387324135216512320967875773881478382530182809370463384876808102827894744204393398468959647278751800634753541771630117402888657124930772292462344875794962540214498778715738673255177736320807319665176742477371341644270661599520922250364231350134780849223350133038344169154685394983905969149673324919014138119272913896702129106007429157732357624992988647505220190689960451390242523275883907053269648471403721258981791347349852737005765623782353983900464316160967228520659126549073929143719562151198036558555973040766880215660980561350362989262458880415307297067057155966771229474173201601839210663484094899915467606531834005088444041876206031041843730596721190262675796714961804980779668067125573603433516253315091073111482878475471773341762586292995028554410580235592293486815101013191082881050880178865781244214176762978335956847870424890023424625267900029683196327076007780764697540444177704176766421195666022909722312756101190528959324668891695981813073286804174291839127984797805305223930034995673427224532467426549799335976707544693276800328556319979283912474236009482551205520456549398268307738346780274682706008521212458555097540102034065577492095790863846556799893094674734164369390123540126610328503890648801728638522272897432540163785322262702897069454605191369950833588144625884134142455249955415689086882137481804627143774891895089595929424425127115497929171999042636190441529168756782505679354961218857487147384889567199042563018693513602161420071391291961863813651260540348429955117903737541207341362541977681048809990060204214096632193352302708314057820748822161733122717022910980499211529313083986775062576275312644301584862770174649015163300148194440954176767799349044412230629181780970540520769680365790157946416225673381931958392021818204070521294004469110407528902424983370237024362199599855995064397036118879894268293599559385115196324219895176202870120644339533959872246136448660434783540627794132853525082615901484210674782737559132814685173789175592945178939874686751295057590938615528433575657891680198252987682096079315026108330460532051288384899602000938063590499869058839316754536681695465189058986287298679430611308764752260256415844002598632387712148044737964286306608094165445087328116453218263515588816463415092555257505947299510495001346664667840603102982896977169833657945719195290393889124863388563723434173376238291602040780813355368112383846108583000817414365462305612188480046278095194408416438352675820812365792644444739759321100109590735254915068463813101294645973483387502812995054760742737431555065257512256391665086504591985723129404370469693222702272162643575432352391408784517230401641584744934958746910764381603710717913036537794144864293573065870325170894087135129816485844142564696267210775401712030807839777147416961749936415264605472842521825807116663840312972536882810498856276542379228846330355460843300492654316412049456183875674289137455362420445769277868063069952973746677307027409997690488833154520201601048796539129205141601333850097465629759253271750043142965820765879127485859820459691466733979868716877556863027005863877379367678998493355500737773228324700842431572009261250245360773827724906370617932970606657554057760999989494499317184872717304995499037706775843555134909635135570574171092203367746803586242742531104533640350291445652551469935250587434387704548707086948574699643810117294867742439394567656192439549573324134366437652206713986614432985695997239039564006000453238583368524469395458733764293425630584357953310531913254142406918346506977858088297411744042246251569224436753146602318025105949594418330395340935137099812955987648606997932417167025360292692097647602593520487737212816567821266219493807646892868424684126084735184574585768800903127133570392121527803584539984370468461221672128712584116666981274584086406732438475490579464959414378529972058936765759482504559356336631056304149516861955342607411457176940957057185274907269281993062388273052850480930816152840821516009555752650847514758099561048697516475091662704131100279997439390051275187351097996924388825773168744848954710783174117969286208121969488907305240432242307829746721533337161370157976943654714472400629269498053409418988997401241081288618454202614786582318987712001362040382918572521516022933684840899928640920468410517198717527225131109464986991995046421205653638039915658020205899429208817226667322359166526414715571304209591130551206837655471621014379535983732937188203183841295056621625985546939696590083508730486291679499714969819854555800511842834104549622783786218870338451566553185702923745469962313094506523061211251252474536669695275649463266190058905551148878716758523830419036888337429925136391492003378123341511465613315468170881817027805057137595443253454120870507377827536119046556281278379825118809738980396231720254219828805473536947799770690407713955054004172640580392254064664491625446706089636925314300250655741792228789224267628542601564288393088687171779242427375142826298287124325164243800202174950955582729856771826572991112123651646491156105170491894329343911275601926409768110906053146992390915684220077688912329925566228946397552945889017073799760046548057776093080994545583738809535004380973006049374970625751306649492992906076863650521487579823972842790321526619119094935067369283800496542878185493358922182442099079959094528232240343863929382624098812508687372749166994911333335592518047710320950405731740015874558194204492292188343805142304975965368549759173622139973878297621253637521715275349891969998815011495847300845237943113671708268420361757935386013623657535469676875328906559981933723025854708036982867984547029941416442441137403065067537275563398769653999866222132567348646382663545478739720737886531542872666189095292155097492911316583846705831486974738938906853648582820114274372069926428755908811124174703428470947164051016015394892590989036656578712680979464624801717793991787544353210136286233698910895834713104226312601707702842590265269115634915461247637661289025007986057240085702586259086516393852275125952844657061466162422262980561218478599396769201292956574326351726714085265071510008967413728664408026761071513559326318465679669028435430258828414934505553395476558308032220865113157637076482155399376706763666398463516027144297658424852267027021680899195313678667305515017085417964828239496917142322656265210187930178197708764863073890972849406930107568507015320973160233949280481482035515884875158726444128145220098102194719899464745817709328185078848237859222472212776343961943709856684381326439076653451947267258601731484492286140871522476715389949586632492593448569890432313970663424849140657199904406531546225520393869795330256712305393157150332606213228326036186625396697354657037491965019732091035545525255961459020228195805963507228510972950056414984877945894765218065356189312709244973434229297391340779529287135899971419352650816167270499102598417306767275155777192414459056702425724827181330765144927542152476595544513699555068162260900450139167866790078432971985500998723773586883142707293142180713416907255978204900276160143944569380457710325826273086628758851925706897992811218096305350576092110600221087052338024056580137838094201285966571178098435278553235156598870793597572418429170281374741247373860402628887890367855407957580572943300920284183716176486254171540807565247619040603010482481653083477243975738594409347286563388781991399060529046110296847736053074572908157403042376891558476787958858895830190490021904604097954540800899636976395797010233163584126899769626527913194118278816694720016857567097586518560902155531739878467209676933194095174324695404863842346134383646602388090572530859233914715142020990807501477396588968819249642417764499094939864970359830081045182504039114011551657986907869541229553303510320767503862188271717565752712220009083420077388217112761324091134217155819901710930449674390507738559066650810326056079561747742388695723823637473483796242220809847372701507672298097671249926277070982158602793789350224221658754062123791158320971634893131059148024246344538897156547790255231679128393992149467670301895294903950712298379752173356463570775422685323553229805839266928317673836772246168271185657155428542942752256308084235501339319735230884043948255963354102451319615390355178576810458304557123352538265045306851940007896645393576699011117379701266063453732155249162096642074652266272459308436881845267446256291545393655430869996150871322744590558024044988498988567973485606548874590163317404688268305156962514790475118471836607501859895368166424509376831901069289849340505082482009314817749170711815133577897973562909650077404832767478978979656768061519796906450263477997792763900347990494157816093670960369796718789401298221563539183048508549388904866660262703170642440825818718046374153201429600920522538786179978109555973232462384400797356042420060034769045238728282783515192079657696630517835975940820892744564330408154559441235716234982487724283529909064901606630308335447338174733442418329005076900171596951666602253297534470334009701536163645541680829670513536554371177045107363859986868865910985973309240099785488678593499582628150091350569579818724371072903433039837874217678957885944325050621722549082129361923786240107743802127424048979056007857525544771148577960473408278287368851989924779655770565195609574553501288044910766689025602945669789516621319026959703684699436631048068968589836242741344883991986557756486976885010759951958135694897887867942659562411546489866967975585947813926736976617053174001481191104330762709704966614889063875480441407496652033363590952866936161196467724095649717722328833286896708985825824323780410064698088236088427970187040919560976447697496424241019031680017866066498122084416989555179882714371733067284420468492266945402273356116892256772558629421661257176833169891645514965232592769284390524602064949132150412075063720520443285190766680396356127364844298656059565624151111220253870208627239008304297504883993058108449412087054419843971611181512648936268971794486923798548302092021531334194931185506965466309533708069610422315897977997004642715692346023477388227757670781053145659248852089140010677782872113283065793933335449773351740411289985587901295524677935415272873421160969371340637117583248065905177438654794620519208565328345088725899024974571488555392277436441313398668336430861573355179792962568780818264337777360903612574537903808000247490632750745726211428441160402520451902860773078249078433502560304158356218038515601720010161262627434072584490434292245268376374330146608239790171735501016639927301301264501020506534048105243713273004726376187990958535950077994642465745693798751163436685987182169348011396745426713244107036553403868481059596325048033106146084915753466468117683437879422280593918304998112464847362332741179069036909941298513534391966124685611303565289724066618091138412234880219713619602684021380294557164702712307031726973160603130115001481749455880848688579306546046386459612552991641641615981582094081859794141249855617243462987287027863363174398049417647766890309598614641597146735729285877311255951791860278960633016907528764457256132366176518567148794030353424626417981759312464796938875487452916391674032092185574682618422643541061356834699332892795533490659955291151775275961501242832145354489241958528892032906529408155046896195665969665009672247614778883626242193114578690141208604974333604799313760962197892995152605723160054975894221954456589319607239148108551663553095537487716185519759746632818847020063616448435379507358218286078029345198958022211332181059929459486810208464693928810910417881987915239575341224612120932044831021666752032803765975032397772515404179110913553773159001195516046267302665780806611511541018477999923292786146954516203808813833375447807490972584541323851447693477792843780559239676347449218716844282990216022896832406739422833325117598434056596439396409592836134038779086260434151121288917201221316214753691861339917265896104162800814113310910973376221772171868121463651056038444340505152368458674196653263069749390017367892844025234417517624310029918877022270690544781171895605471191335161723287690680309621516822711655337077538896447903536461460747255491494100748485744278231186126372217384558734097748573955968925431849848357316174147110610301201692642924541366458102316418238096142279617940049415285126799104534145016050205052001359839773475145553684737382508450547277106887171422689938442164423212209496325736439236545348367617515603772895505443185269980767403741764130697467240960337863843599008075269885911282470230124046978831924800950058383456273754884014094802371834238442200433269312395703771387289705937481075923040729989548210483533090765512642664547367678624735549322694758831457330262413405746732094933503029412339708133352788064361019518486006743506007692458056161721163366643478345126097778023661412345477919169250593246989836887631639343766956303048789854709089021989347631754497718449298473200846506509408427618505216966983891363239749281011739741476646584138249486997522308299725104765969242439795410297267463509077811234792318793879613692648311323836533981213333911755332422292489243495700286611403455884325446883598151459365828768948639424782524680608401790418809773158587337332970958422383391795315510045475312698556094066694354555845851693430015042370230423513933686204340436263499017113589657296086485717427529824656837971168170144804424286053509748494403349610613655634073014023647570437395217110454874630421760150125742272192373766031980489080710601084987342153381498473856467641752752857781038625862711716208608276054345233369956023506583439821006200503645909959347943816757019417284709158458560161743668881668540500368355785159311219065062857166815094973586976886247765076284721714159615378905042684798183404809215704016894591835490936361168419821392204616349692301120867629911643155829278607009989377747583950732188136778018723445406504420130643551409084955914897004958104270888535639811068387571498443753774605380202734976382082146192247909291525472606230487701919815897781530167194342422497387739458774571438351242473629181144924962727356158927941658838797351166903918052296888633151299028447462184884905005031440104000618506959482061099562804618473701067205061234143930176360491098143586554213456525952043577905162749525384457026490218000486521417722798764897457188346825136972410184950230564558747390273126094209046354609941779531608634837368222469994837492143571369141415326020728024595333774531188695594476750030513240790259472564638405763650357319186658700546711279834536053445968965557452043000134020323456612847115127547918813315010562699929957649235082702774875119794727408779907749942987997768948247893945988492345853050760929853488853006019986730162585950400809351341276868549888275865392786010960223774822421564828005947870225697998176577567745675523252722734788125467003423828071905056935412059067070712768092912195502903558461687623894070610409615451175456142193568138692538287744890971943543237792527749134464972209770777665719296271187968812917893742240074405067458976971588653415986577283179940338305764442292088949566685670115202499297815231977061856520697815338289074433115335596321696346217819468420119048650065992388032810324114060155940348376346768240956166493889303991996594923493150712039110764399936501197111057452002034405541416765152470787306131005007499992973680676181102272966810405384013697222857578685523348064236124122008781375835077395517597208647044319920096790767829150682203619156247620476104191687596686987374513910347744421098609899155865645428015935661372198679507362987575553460730330542441945225922556614343750648736197686737914217043457612754254045314761423780719774663963489210062533120456601737576445070751372230230211945389561617031581439198681799461731626366128277971477424250570379061911445528867499818659825379096826651149344305867462949375870572192438892294933043764761755324082298934882543408840115782822039795126972770410564202487289727675721681226238723800522317690755128507915591519439173221094630135255170813738681262677397239383692521143322756942448576665292130568574651396650562822006589338482769380251772917052534839446301535597975525056844018659332215128350141965900334105969425279699716634376810754446780658928766032999274079197284258679813315373420437270187969420150255109342881679617262348272059815697183097830676260787819711572476289213068148575921556271331027002008357052137080185831686295326486147238575261767622244076422788209287005412181737328719037101232867049314617732700582909930308554671185723526761996828998971651008495100355462066652207323336307011705454119700778775490624699606202989341610518750875995870742118806041348801923889144032126195978141076318401525125426425187164372671595009839731033766464696219359259812018054822928648480278594986004562800815683922922133616805086501476940356514983477187877311557258997140848596847956195358964677183398100587770828905672335234946022212735457382199857252382417141957111597309744033925891253857012431423417615521775899981771791170426351386792060560599978111241813516287340203877179511902341582800545849923386675617715680317554624185445158766575504308976981909275982030614363412209432883439594514196637419470445626182506049945664431684212599345729417810401550763192205255420247818609448307022320721671527045687602888180288711810921417236514839606343930638206939224930759549369377094191170156577485094424960881892073475017276327917476224238713132807963445049538577660180857805403714728132195631467459688844438457213231725307014781217173638466029331361779240505434015705695139730796729792714382192823880427051625224657744577028733656725212781856786173166159169846732826832948274378110158779072474014344162421496178156723119515126583803458950886822394444624867751686480121794628202604839862439827097222727357744185587338605281148121721829864962372736515157932278786481690157673353829266761209607992635576017385332530842192000752532733732982517780147385403193282786954538065130799475350463882106606346330468008932414730584755929413647455267468609876826888028506824212425308296575201602565170651446658168143816832540928364458768380795389438113207925635463341054999157318002282853756973911240401707322245659062281433356784548461367276844932229922462675891152816832484632161376530108421039977149806471421394719398055576358376669778146918082981809766532723066410877032456731625739786754090133039828087582392764849932451590516756542327178589962668137645633230423555674740132920470685680082034288799037330051644525073664945340402670942301829929380653605292192174345497339246207229221577926634325853498854796700973695417361651015009015136952182358592488835863040272334045010622476128826582960719415306597593610851967259855897526959889684074820482483516978542524270188418317989186354005044562667556269358040290110350677319239071752286116605496021049864954807892821415720540500472637697503147483636007675224296409327609870880000569548710649019517050272597859342850643988534191530150762581018830742665245960144980768973878744664251505434032383875743073603787692622819359745502396399341051798325067839308676676684933956410166910434424983063112943936093387794266060855621398361588553937179507875603526220436318960606014597717017165923866313565676723234491555784677860209637068695943604377866097704702559536626831180107817041543046052867095045157665041840755944479145587139139211455977200931863604609508920213154111656654528274429250723454988051924916494962916357205518149430198285330678182539044006212513129596236818253057056319309964064393126747328388178782003231360808144965875171509857449477502214365190254448061229582941069544498436066663797738651124508092137416519821898095749707073918728952434940425102404076766392224219721867749238099336924234189898715850489907000889402602492665621609676838129068360639102797270308685657507501469968949172792521662146825616586394262226764426640991905780626847138979128106178004242590233744076769617912372065904526886895517266859218931165691634862829763165712125543802978729988431207039896746220725578185026274184793508553904864310978615478423234928940246182664840664442973653453210303608959704772449876212185348269867137434839946909524137685387228553579730506136781637342930893572517022430296166700322414884759325561797648349662859646859645554044332659570471878229127286101342430911711360840004402904532734964936866758302562456479304562490872034957871976437182806274199695735358081395344828303074067263712926720508116728664163010482787960248435165324000745420929788487661710953992192079095403320628880061232596908758691140136410076916761177157556935513974933069179328411702031760655418680605210367461221930543710923582730677950267877536606239460402659335692028685615582589977674158565910963850041936304284373597554132553209716097062434424329949082290922912448221595868491839169268526759755173833985046110627861955616478761280017602501608334877896251027180294848585447426690513435721075905406491278171190144286007415731511216760831574769279219674759781778571048952040070913460972242812545190173458433012328192272452883321574733858620202427836896776007340113586069682397657085753633469899981662258755008106200315774545525613104498302457275520680889548204080255507581303104123248214218459006685628600286326613225557897786047579253881297264235538646513296342625194328079506370538717341556907520416019799746537059967058569168809288842176612581511091906003439826976588057291444150164170905376013938105650060268358424081810501414677880877597595010013991028204544863845941060570442535199757126274243200113368797078018116597666835369696600006807459631586100174549697502237055585013278459349134604113153431852756239055084053756744483324234588872564977151672340286856989525382877922412993513250819455647148217110180829413290538169110637021339647979701764441640104195197889612082043916439495586015274335871548840900613647472061348716053001284209884661849919276481081770365587483966844307332527028899445712207512710819458783914406160224306407416757103829905584216201183377594279487852837017454125351672482410115964489171056163851504248959438595881855634171002637612537292125186845585876759073465793236625090321501315067610039418411316262202308470405794320698278832948254500737421472286634820185526860326838836022641753924289970741990304785100975540415396949745456579661432866853728340335183625589315130131982366261930865226519276485483427555285437898947229531628503718950737092572827015213070710161757607435983243764557841466721132210954489710015716467743561045224240926370705737997823103635294848901372292953349387990938574973679388079739077313045245214533196774328031516185125754851067940506469315859107555750009611809948111182569981626535350821216411701409171422599994898215702432161995653781501815251320992829397281697205748691051001260084295624494227396932680008157898841756143978817005039449654306749258461691928236461107961645100511441856945132953312884205582932451157504384478814766689766342489807376705099632550958948309779262577353902477726353525262875489060535806526502318295420353142356953952622906463712867479751666534015286099423173896289977711250798391081080700373502241192384527090952400325296388168749241029311535972240508858700854407579545465538273676458987047098672806486694779045335945542894069926973870245550769264228386165417138244733552744505797332166247742952549432057857161790172216648329333328701098900717122473431786497729474653328459097071784366241846499305649377614314388150123409591827602164590040665905003025696144549864748593788237665263449463259555583106978947064946011398975609395964567294234155684949033407132123744147206861247621604852295410691883045882276568063280575144663986388683102469917277042868091960602966224089681469087641775648618931583032917443410733802010283053614825746719277901358404243755399856406531761618174771525046585277918511829483679225521299346462553877903106367604036846567626541598587563503531288544485140424904314305360286731883034720732975637739075003872860288895833696748290959153437718156912950346818714848946543740928639447979875348425453911171145190872656097987209047927394865226010411688152824458531271187266465004243208673690439190254974822477119271647640387026007053651760537690924429388578698009173454752999440734999927200986318094458543815814479022225104527684267389079767513873418460075759548371078619849173356327871527836517223735240252381547582310966306616717330551753862766973315531120151244982613697748574860333945592898910110083207474878979777114229919234841066144835393301225984483834193014977181782600056738842208359148124654134489015256124571260101846824576800711134240762414790871577660393344184569533084887738923747276174893283454316997752775020265153019713020702630384270368032039733739581542686947612090029462673074738010213047520819480805664084053203534070756130944706553594020552434900268013193802431150938960364668982384708754201472977421147665616999928314541121346276073390850362143447864467932036748989742485223133873075892293354370602988233768836845417627702337051133507180552065457597108418115626642264232694690470957406472634777518380103759180798501774649250199477366229019142029570052285410333803692488823011961421972620978665991934163651760403525559716287633070698151166950529313679910186170582252187498786003706924860059250301879820582322854847238189991931768068853787298641542980670073904856572165039766475957059772643462897179510957233314070867183271010104885869921049383176708317098485792153601495276615157474068038351265157438866714928555980865306124463477373334260731877099824486090715897008526836178852772758820641033050691047789450028538700075608851162780995360761475275061674111692022000789366078557710576397781227430275437843048514159204815142178202856780007008387131660179160714066143845684542988203381367562024705004889715541369481466549443321698555395411564120598645287300149937004582965265919745813374545375659939086605377763820258085486048895685905468604305950677786893459184777701842377559127610191949045924107339519513717043502116587698971109362471469327438048067944882253965364850945873326171071567119163126940115693004555080807179105737325358417605560171329695872270820995768769213200019990729175518091058437356981158732868336400149533865547674893054979006143462763041747437083456164286295636843816975703264204644621863473310594142778836614139683976027635437476324784228671008434620655180807481658587747013455425172473471952748721289077505172090953907214679171893748726326076707827549213364167259841778953490195704167593643260455289585023538131709438124300017447673490773320902273623370557444139294045310150125540966673727028902917563672490759501232164504886450039193581807929436060692104951617126604959637005494540034500414782244259064167038357915027550669492164947174061646400876795772921673119227859464007479660226908696355325833996319394046331170465197977974995330408117478668773753798803698051778459777763403170138559490543408805301792351169715124331082217737865968523861313586367412822356714883185068361651593203423265885916260774547232787235870837594752157072128802284038462856078714129876037034229714858139150387225083876743128202993113622678995033689334258401376039368067805102590255891338963006287400553319337900644963931563970303033501216613732935917694203241755582832647287503534190540550232431243001630285695974998887450640715820918378800753201543213669014446213734022760773869613078256004328106124145137428555815730326261058876426644984535386903693030467105076333946200789028865023086246529243791228464968706857419900833011341393938793073668845473066366762177035114580273867829523696833096836521150668055632348039743987871272989340405229809873763394395772668363877466150541601361813658200843662257815466566130009140220534785067740781562136160989630313365421138335483399430061038591761711075062941354912541496095365405374138532559602910873784787796065393756756323471699392952998909785149908419173476261648544267475298002413680180557605131743371349883948447154193835542285372282024724447190696144623886094780153028880420701414312954291591658353791947020624209836090857142143088440366746405487373091631186696561728582267802745299225810567689280571725404070641637183111387879446318186999463819947208371888031172929464442227563847308049747819743946366039790901509456105749966207655030518129786696108542773580948560027557456559343212396466696782745214651858611396475248625982210153038184772387629252646180845823513530946671882382132343969700906351554474814473493672214521277811893879611117597660796289340186035908806145710034101344344273992070127637599264944269306111723525432435209027988208877442890960607927805998155100262311860955081935738963413997449612089797056848100928033948978843638736792303681995554825671171834263578894633808691862358691691023731274727314801611688621517027038983144784533856229375013720832662511743735421647569887808720214038182281755936722501503892753898775954424053439170436676137698334012379334211528926046664419413857701054212568762112495777700395003403377351419321515095582805869405688257936503242203982605087454846532473470791620425418857442018086201911270965536529863505098313238715111160423102622764300989684721799868985274121694635311639438046632906749620849793156702160532564381783801738727869976576597217294330692759080071315151178657258966565213251534700068226255001151513709321421788111046353535526844899615870169091581208762523842010830617974171218312201374595845389045208704856256583093240623663081962324682898248030909724258175229795685598603308973880229024279690426323766281945952673012908307468760905400905960592808800861942080265941324821428088002752015808593044063781770715920283516273563575884605831712672835643688824922303223668964666316786587299151621057644851488982963510323031862809218081320643540134874871560929134601856815625317797608777170365118153862426359904096477326692054123803873332484956932362260764134430041652901053665082560743809978895859707219052903190800003846842830784415419080150005552201508815148389685317043797169369514667356882026164768553991104105382389067943952964901445718382794530850144102100892949095776047288119023637121221453802074453001869159124605961310000649005251523754343668087667311535234373708658420141174599522752849403673993196478633846836564935594749163240612949287884898850926676582482034304409148954277548285697543786937479203390356167486603303156254897076739074561431938560522640491331129279265305461381421922913423191876523353121384251125151018372692659733734683459879001116848828081177632813200995861773419330473150594979261257974661731320970598955147718239663715886520842248515818098973586928038244729728487946046125789250603651297025005431449074278280381912496453341601682097789141674773097189993328841475695787851388849898242484323344256705012002676717146885718621408293530243642988364916487298965874606423911756541834872740105463032546949254629190935682738150926155901410916237927177876246905459212384583606471573032479567503612943642039659095377031522540106163405869001812073495871227701123627826016865854001428773867638078606793222755849865238193356994558726811949012512165823647754155227175259987626421920034795403300275770599316998088760955217233335790249519179884656107901100331444047695724260738811071783328696917011911075823378234329864836112184301515595246205679584814740119870625294183682063882887221134678671682388149422961558686889495997887962436996206706355936963685052335190368412118554148937723944533724799878716689621037243983816297898705889439310431858502995871631267766915943389745974515598151315651508167000532632790509050965153887477409399818504161386340240611182438905841866304633680186235990373753411135776780903159173958215896934183936252035533613076659158973599663417851351121321153103347149996777039440963565812855385434016361220371582146713426756796447167390472698046134560107808640380097972664540785130642659418776088096885160032896231795265742053556927095428054944086462207007090020784024748566042451459849647901881112279006650245253560744260805058444450074556475550743881832095348735890582182500366806548351652112073793950856204143438641841024623635840526012786487963936371283953617833029391644614653214210816950816957236285376711906279027683966798565569890531432515912983579294590320657943136347046476120911401582841641690484028351662348193864756534589480302270870820442923204948350993760344000831545421732394559687514144727620212461249766667430132535207891105323869447674964213634879153685014001890927954286392959080232285999916691315961760245268678289659264937840559987089859071858014739832478131317936660273617085387403079082362624334376239366222952675957624112356294548750507432652022080283849216985892040988597700440320229919887675969487610026223470330040135334535896763493951329116843198906163788535355649227232655881501711590854097671016205485494589915125994092555242603657311097102183989627442194874535011207607139600265707076494676359531752344662182961245875505375229026899381552956919684989802035515427615993603956385586686032632098648076052944223583152599148479793915566248912549820530366448348715640387084370382181248828835629069409271250279284348115568307155365623354102330995945546613869313913609768938475404004540268733459127018566944805356747982669261430795774284144347432963500030225287311853765507065575954712992456931597776361748143626178047475103600399484332430731702182750879788277575562184807199600662210994949901987303493521459180949897375257655675214840284604685215244393088208621420782422036105001803905631820817327987396665553450227116793536846431804585995962092103612224803013934685274508568313426338326946040849758831995292024732209636963557383608765684171608878312634800933495647014898998587760160908541502013090995959521879589884512237603103194178878328961836899993582764418089868304611778658445844148329553383511177623860231619343954477418891703436272418955437025868697011182643088231973760601383833055255010710076175482506288819337123669921236771393025300365991626827053778633579977050088553333524413765770281506206219126608649139522975274349264410241878942875882934868190434660277764157266273814366962344327113335193687817996642117389374896396607576095494285609985767330582473761223446127081435177267971258505992222354685137311469457687504518950982564585949761805677177348813972241629993996457903920826995682823845545896610178055556637773816727338081173108543779566966318746380885941809849086138688659978046981607900469429821046693472798839525546352395277384300868426670270166090315018659526312295541302243042671653750791658481820867149848105543361685205813174245458527361478216512580657968749524693967088618220450297348736794172089855961845083308948543796100628382000773395630659171639088671344219598026544060751645470449688057335593537986037222614945424026521317239439514916017977896862735312050023098650393363883971453475065282844556948091392469938123816965561707179718537969478897554969640533733852222289376620802729334244947509004053212147789891433789615766209626792980656851630687521986321705678264324460564923391082791469033302586370457749021693954369527175102264660741961243282084880812648316081356928403625833934453220212759672996615732391670781374023502254120669734431418221242501883687523856300773855446109109270302709868062071597082915475044697818194956271290906473655351976479684388351634399133394113164112051858535783732280807182262940188048833343932285669105881358339044375999658541740386432524229169659495697897602804683079757543248659084657917826170066251769677561295451995886062950586463992450132954698266295088162200950995015108731899244145564530624576801402425111618572214227660905879922853817514744169224345884418619377198270943276597450203818824593268725132396046817830059572488584145597617303564662644620991170382274734780765330553874175439197617794458460209582679803958257664648155452672232378092701497592576730268098135685909946600768742071645382923863544970805820608359916548292084032785031183830432526645884682976786503727622044486918273538575817631793123587975736804419381292992507033551035398022248204048683443163849435339125904731361138263405135597946856210715807729909759394444779763997808834919149646431084748440493211586423372579004332629583646971594342042731244029754125716175880086515246768267736136996203205457609752984411960917978767891228949270909583607446518938115156656127253851480317011157933643960896186859603353753051052688824731617175936040180533883348510712278577869038475996533168495581231567729987928182343403476377809109108434962724107103174155753336244047785123775014618704205858268346197765104285457531724748472687341715325503039463217647935528540449902082217621806793381613913987495768538659412509856280912369932353707210502278520754832359891655685313519404509932780034782044065194582992228611022513182166456418969671356185602744772203693426999113262580815455479528754576059086322718065137831362232191556857885684027454302859902352159747367276016281645720978893206796968715744164092936511405888652869941991655069598136693242957459435478328116250441261880977136309591835161685397481351451044707674490863530106798109653961250585244525493834430183471411805025578560494499051782996456026801175802628792862016895339639706762822852227018025915340417327420404608043223919234559231514500378937959229785176785843865898348514367031444516062304153055863587047037190806953755351001530930204093008034991106400755123561285835999878656130623959451014334775448611661683670436035321176701565805497393981473435372594671054551108429434523522115935294337809242441386720741369868498809462649865707052559120033599075003139080152131568495799123597037677802658906683478428817118100880825551457044256771705592114161034902209900779823429251434851564643277357704083312339344790243934512629984184108936081571430549878665530064067808824419010881756517769588185941845569857690962852980136683143888939430362212721988580208162023073744412232454393609841896260188019055905073477652654943355853176893813847075943032054041018744093437449182754907592010476459354345821088209148657527455056873094595770834906613754846256754932573739670435901040048408219390757831292911886843819018447241429290319969298885121700998054426669902999345897504759034641951248871111179137565435365856803038336500645742247407806168927694979224920777052040338625468337301974992841453456624607609763339207426312988795666543601500238925577898281078148319232087300208599755630221486113330109577418686904567118550113925313780027400640410466641139996515933649274986630626325087807753825280364903610258040380106893874390527703545362440267542337560317754669319419086843160250987626484527588205419425483341265728537947968346222918725436658406377349928659798103428598630303846337379588326566035929786936277586088475946679477728430868629101025927272722853265361484660148304733307425682037901393597574304966395480536462753660290311194487087266271595599647236580649315128265639434238977963082279798888029192731517554001002837384526815618159141829720427182287375427185453938963601202181517869886052184018350206966923456130793789147800064427929646367462925146635959611114293839107744393409518513373026904168122174582654814911228105507051369341725707898558700191412081897810687238663842594499826072919921999358501416641630010002697734316407133398328524170869746960261373311979166819921077315892730763346907030422766587687147759112346468182132215064253673390128797677504818330527193365561635730826515291797433381276875585516469368977746741393139168054302480232115368573972048551738607164009723931012824701379954216095361470142670626725392384775108572144565048835304463284338555320027932370048558746966189815682650139439064839488199507920250866471343033024993192796506692016455592136966836493545638315507569417194186316291550903767267779733255203322998217524833632057264506343287638351861948407993018930657251515369038723540429230378003186992155536021109024626276412621321096479097316962405339959856692944373512258923795001439204766484006630847886258647043479224261202188937119988973104001602059570735687311841068229510649070782469163951197766496538107705667989574201133733888078312711499660815373019325246382854190989352133453035850949698831719924499194988359717266836469840746047118496451944765197477845987897621971387900126438528537370299157640194224860679992345700899125908875961219643831938350877038076497366789317504200908205170725320026623878603221340019688157861824633840937110424187997076730737784012645062960791989778891111119842265160988128978644770335634640870131801426528412705562236453687072827945870058999895047964525436519322870357588451937868080355127860740062662294571148508078093527953970609766461515179069995480439075389868076058174815406876570679945059060944772717226066876373740565600553431581536947074456412036685198177303720008985389721437014557262307021906409448762682031167276416951380481570597033451381009834444827344049907091127480787327087668898676303693039451249640530036746079600621185793234452011077483380585666237901313588329046231514401448445330951173378765928328525239469407421971318533551291903650775402408318582020290944352762776582135106784860569495006720442786448112262643794427305643598866605536050113418766926019439734083499459547663385526043550812681751047494593597301450542343974141562684282858383728962758495307437839628998848160636344789826785672676971551387302855158541188505571039667685289629493091083758727337395964281234573987449040132943611619053887046263390586960451150256661396265974521521658642782997268889417957967261878841458425066631008371935851932853147635023662662995030292308820481719920281232707631809828574369199311481193974805368509232567882538940743746324662253230617548552753379053840796303419035258613320605884863030441514111035665095271933351921106601384682158434360064445328566575026524195269230388800742094556518597347777217085222910561809020972360989224440570587187668363519219926448503019374688053792659381501065973022699328061420228611473824149575213765994610240201001844850867683380793790057343293820134166540502564534095710174476521321884091051773712392176987281789329469913295508244068278388737904700168720601830367373182921046067319075509740412610475283234474574384872945631156280452609088276963757583292724990253159531115590068642107457600263278103342672863879343220323518391925317179627745481154933161982073865863916808228964359876279514820129363087583677797165679983479709980221439519834957123045952778757176785350993681408220813216716756115775292480424027852923830016606733036449910043891905701568750594959571803996693751018444886158794755148393159880022329243796237122295716702626725892713621777640270763335790018993646091706147140096474014417113621416013749785767430454493512917085571210760100020075276316015228984916013234427999715142535492167344138420180375329976232164623345584830478684798850473384190985197197664253916719117596814993774643227583438046634933885375160599633936722908863940994662006387754232398912636063418442932790128326026557746433917992027353000245303192530992417545880188302945866063496466470627071943111880148905970608795766201736067096479298081196153357279639407014183905361504792036049506743635681443972765767510353045429028146148427051315318107926731478670419022964083082841494753734553696523953024838480297618512880364151278635612082895291186539626130874437811169966806286938234022204570664763284811396409279594930808493079284441650841644523482453599393682792859065573081128495553952733591748603151726621301502676577038244580320228001056918160464418796065634763280548913943347353033773866074582676415376323179030756906776343285461186127050658357625248523725244720972925973096649331906065353704459094387138353992907821178643252484518347134503366458644459868047190282953801629921050204894525934998987291206357114830196074749443451200991157681969259427290676530800093135320389126395808902685344465990221786725358700906777320555154347544353453778685545257768089649112808300053195167757698871870919198410923160503806121698079951565489374778404573194158058725588905765398289113502445936161077541481759387445455893228828135602273013932208270538365488095782990407253091463630725583312622671763402093562546667251731412618815605981923249315273855660098553501452263086855703273948717547380833813114929783626499933229191775071838818492224735349564218814225501313237096114333403746767892287246555588443313242833774209231890994065344453338294866762384198145739295904836985272949547929161182207127586326042956150055069134525040032855213294061551773271731485764448638169799282069275335583821536522258962225943220275763566045600889229032104156159184915775347144579675627329779268647386995200505818714213046401155642502908874938559944471027212441339443299979959932121305521734426071878491215562716948761829154555158242434427438451425393271008448001794488750789242440193587317976859988446467098012431529994583663061335435381670504405459440030423117675794182085705315651849250832099664136643704153981931164732787238863139016439979131970458739369107367649024456082672014573644476330931304975730190741273334517360947043847105610510054260077639029712389794264333753473959998954029799212048240582399246558219980065704979661929158519068028428252265996670843564815857780182500620731954628226499913801869117994355403340947170342992756331959968506291823424736636130487871176031236608915743988510205558501717623970539289902788429926833730272680020621180931765934625635611596797385820574171209289511460244961640354229148731812033291225579104412928081892901753252293754286461572445325853136434205654310946670522602549100902773530823415072628535825466222825202923172030422972300674934361070825367210129131463100702666712462483918968339510045653384405555909571856025623970861036592756080228107090293098426363592668522410499805741398084656859276646884531036060856252867554205808078810225963985991609982344015908196165991547904310117553452162911048038184960727866022636912550294731576487294893284715916362907054758402234637460847284322349667090348624317997952967716383837850147988136480066145884813593140602436049098347850142317618616670922217554243371682093234840227887184555202092682302173204669790685227789214385085799333709138581439030154927908718324605338354702105351679060213533958339338241895473159130449805989610765650420674427166155426004449380794743650021593312552888988110603820285219991943579855695481705553272142263086173680799551386376028362510990603077842609237271531219096723924526871043034558816293699599976779870408303259553857209773810382649173919860328100651228587702008722628918295256469623191960139924628426675592743101793981198465531111949423140438748787951083691818742898126351078361465938339532012330192083630177090806793209818268653866374336497136723417727876739171841851164954198496469946307003625321244114146083213186795542517540921834175577843422238364876107686293858203541467260989482535294818704278396337182417968434595069013654984055934089813049009649748867450633461845269958718140006769934605717606258674216267522525497304375637018362419165813401933140297829873891945212531536295298215916149473951261171790316815022070177556487574888431562002161662979447978605871682897796348450114789590600519306571052418747290416951308065965953784416820377901201786967127656075620695540055451913927364664153315536640167167345037606631054950731739149585406179850463951259433462011391886906819898413827121863781270305056038055599653541885419552431687662023679664003863883292812803069078378682026798084087593476839165718592519476461759820039179766766927974624219799044017567531085787585663999677619584358357515182522172746260075102564093266559790279823811289908613576736966285655460665104007594297457818169135883871854510390743939687791870282740469620066655972635328692125164008481884166592079305586573924313309162151571319479303956254902201108952860393223829814441993923286182963497732411264522206040682852527077542882560067429916050122033328525660330786265230171267092022176698029653320749155807040993043004536153761242541700055967260364044772885621360090100367797006660775315364579489299336097480212360392144566046980118234854014278093009725392670820718710368679503303933249771455594993736970281034169525823659516782249880629048979008077777652196620295402996859129912149437876453524879714403270622776364006073209104309751522009266609861202447385047694731490823692599374743754678450591440441736048616687853342365304963637465735634025521518691726084018233147668000928425464790642641114613687974948104096872239872106204363661836174915905963195584994995273824717137629607127658025466770711889868345625550298003576652779805102941787633187983867581852279767314510369348494382653790498043977054199970241136388507240714504326876822827786481803917718220909682734854841793281612615323643972159850368057816992467146063261530517912970479575307689678894138079754607298054072444011263985796261312168995938568112211350310657467638205601475011889903300433471167207632587703338448143575898106175955258162456741427814366394314256708071286665626444869073356230398605657658603710460388074661451677976316601501645535953853355419095635171225112747928752976087090102666620119585869564462697076523063144315485921266632517342390147123405395894358528119896772577558958104183542363221960037290372776926952000144757681022431378831173435040366335957622969505927442726300660979659681338321929009963855741276075445994731459428499061259440263525703689305866906607859735180500929091576737117461196597125222466068372500123985442100913391931465708313208606383527842514699260242202606586266901121834863609493793011119577713222964519173980974764018687640061448782944836162750618030303840699554688438861646645751082660392751542687553984261016034184210337288467305927409958390892804628865736090055069113084500862012920156884988009529619590244045645846940269112546846555134276214175029905283778440286680871290118706777693475993812128339734640833068567997352570259874546436549172920821717755791477471350783246905035472918916937510331673616010329912557051662944235086133994540027107756280084126672554914788745242930119719777023240558093322416747041872584925310320453363182210119351079984383723947987610047161721428866577195281432363548638103278540268691933695755666922888280164822751949995130059202440591962658806229485181331398548307924740015181538508039654483623561869735460040938948846732944119224376007592646511424938050254393928547035366937212893031553904020428690375303980578224626752260017244663605600620851037666963103960373788649875550943930483688846086555164673834172063367015964243442143700089577082161006808539809441612563322628053982002572235053941466254678647310063120441161593897136354621581500948220009181422074027810640954933708920589407357769301082561429750431262583317364279950467173340401984151293333059005215351953429212588305628123860587946232333107413411602395611608952558784305854305165736513152021722715836107507674361557458594497331963978973457464787677611315654920813910728285203571690477723628408245912175354929144293645511253329036356571014805602467464484130359162721198030198395627404790956597904289579223943235617084238862208325918841961560433081403777159249248151726855302385591002315989327242648594398770556572889627029505745083859183860547045315140241024788641902066336960724633665526769149816506395542192783168929197745185599942926753977879059497014353165201218457616843231545484536463220856605645978611805202286194255987616796638668007570097900044574912692258345002831343626416864666396749741424560543344894193952322069209748386842097885773102786882163167145792071221999716036108177114579622972047862168785108394699359182154839403671087054290333713848934843763707057275174243909406622930014196076211306514224810019234789037759379326250937738067690272255098330777404316988987239277075065379099808710150112561994996680678024975470888819119744421247988887164874894386018925787140130748087673633463672187086094259182647094387704846288569151984350459663521751550149536922590532139962440065263668091442277716523700314683012150669005256737773155457167491525125154807559580326569354975649153055878720338067965673845809161330151613715343277745632974762928533373824580528707208010673691011062114885436765096712652690734873969800681889284849083952868771313529256123530781730383310650872359366828489667884028741693266947429302312774530204394321709078042276288528651368353323336819865081129790810234599056030056690262912348227178320866050291311553300197461233305418899391132768646949923641891796399921293386687215055397854077858788537145375536146508281042431719809804056046897195318806066458636411646609023320242219579432869724696294250758999472340686568600898897086605202560526655475253089187235851565978691432412273945650399880390842557768543894122464635776525740363770160507119874802023509945801597339950123989738808545402470558625468470606132914770456571388890719760588361924080534195466509087441678442835338826931695748712910361345850150268928529877431336003784809255673198139071586195135956058236425931116141138350059963594262056419130371403913411019882061674202635694863545798023059307320465981327327789646410286893225566385276241948356630851367857314109096098995623241879776194470563133350524758838735191687968136344303162529006001925764525380703011083237913889637921908638339912915244204546009235122807060228816003397528185674794907628976949701655239996274004181931552808390405067806251579797501399872093422991616805080777821664625952469669546791708922140720477366044001686152448758939161975969740951392090888963284270116293614566591941042527248847439104497234054679660847601085635249202329769773419036595671311296563359182403009472903238864954081004196374011386622864822707393455080927113596974937879459825681157047073149236053802890731105103191219914471042169983061354905601638469940082919568677350635993422078382996612850406241602346185401675443005037328827786833766849655861807595403776201664033079577119840283242514716061260311740341007763557222579787263544882329453331862785244014761909020555887470950100524391663158930809859731618160022863548416753026508469630647816096555983846560145596289039439481102613369451103149321620294491745036080048214202373793858578990152929936089071825296419081120650597981009197031334088388676317717860419156343892612868722229204455024909556932285560414063827344736351919203049547474201183313483285810104330400249042871748598837632690763367965110940482080292781645067114620057226076167165459939269177401147944549690782303873810693554169914318229428320349505398056612747973353516822790796495126974198366471856485457278137518369666260518501438696067106118936289497070436722133064035406685923601627062113023673027116747739090340922764569057759352830424681089627067269968909593831293269588729578904631190516160634016857148710591794979920710588041228319105433309409870460287088615130500166341005746222927144157932042613146960655848206473138405708234552006868311708650007010001926089908105649253173473496826184567081968114065748085192788825429029532845528912258996653187876207995404060620936838171843689832866623718737779753967939572515590047948990132614135534242797528055408893675370104882942103879106094615894573115921530236723683501171313571023271071465805130670589949171274473986237235373483951245496464103006450095043305183908222678553604582470719649463367041450851002434534676782134514627930961653912559729744152273196357522073578171518890741169155036757360397971845480988443428503303255367198875905871550105387635878606238385572517271041654436192276465575872342378265082021395423520451982764900262567898465317306176599641976602210352026682430684343093495191502621891597041794426483354532845143908550446386820111165679448945150079618309567207494476008870527363796916610402322627153641810860942726396849039397137063139971926988600859028314909423614519135128554279138234387361070670675485937604083574659920206608297461914079744662856978158205721916251895471578477403017555582694863745046164277492045655647913425154507006948801342395277635763096460013879804948961865670174618464332805163490142191581277256094492271293072467346345589714826562397124154225001425482489597786019313499649007251474016430203900289538150905005528079875657825118542892091854136182697651466167054342694490758814941216308580924606188593188860529441514815742696961804167266565129898107676191708398209495961221716371579830525429827184294050594283864431547885563172252875530540674877891350520481768399157320125807598097558970877285348113605262538562536890315076593079042701767847920960801456495305886301760306227250586949801040754578308652091777510595641824128201025852700282873409563118666787377024615870011453619433639226284176484361326356865741999085147655647734544520114623461848193281826175124664107697971567244242625578223621247741432357877892124539246878207058333106050911849079244368421962048036999609906274691823093441266565079648151411946164975407384949403470226342114242235684214801708985855342957201146843990581977597098360260549694861300022246545117793495332413111054850248800092377935306888279780142044520057005760569380751838579210777258636679419501808668604474655002361445058366499527259090463759615306156794532709666890175528995636400620983101827515784093463217578864314355054638584963979744783413917177821334379879651925758043711504444882950433691531959457222189817824081863601919468504321361237574274486659731497428806623572130804378320189001539237045184973280434999550566540344980237771192349702487686744056449087323907420770501279069931234283252709882487548172682076146037171881661053563928106900045772804123342065286542841053635449824066191880745716668659489303957909338728377670192988563576449625898446743129393525901934299370927501481292562041066433096460264245479178732416920388037100496720743147345245703491898535133568182252146091248106797676449413773767409718308015117701654443188346431096287685150678504052988467624222210696097938795678345387556191338772952950916243483320522169817326744514906548368589133983240435926625516122697106830538402779619884648746810084903824580083980825539934807848528757047498770977212375920235399497479280182269347587266904782886879830431045588779987184235776415622797370494073551682516989765133679799273698768034297932767936522039491502932672130998392268401271196358667684943452822697637189770526346399918169012887220717258144995027298847164168865857627295922060749173457107491407698364217993416013218253288189620518684215224951138824161166398419954838216775605637322284149478147758406154075910606429507393882955362266935906963092463576824587189724598414274537790651002454504697360653524474383439511625934928461920078729012829246918291718966704973043923199261131083070406498018833383705405781558696205652446957051771175168115285763608801911406564470833973687364960905507864464900504429622921028413914952249583134117123164028405203249177350210554054875919685915783782761239679718303267594160549986793374596533134403122467487979702921682068815980295262778465153567505204731971283755733530258065741350094098121642005459110597387674705103312762669467913316270149791972665336742790796280647618210667678040245636839371052254993221919818467290103297909413191294893553671534437247912182267071284153474851042853270348552547829341478607516243514879009716678504120257872583053614440662286727666103885223253624299488327849510123755000705239246509194627271210664278844198961964559831895028582116984859678565411344701318928707978881762784948655123993487901371217471679602361323109277599424709194912012102017316083120116116406832983652007444752071304851553932505990421195897976144302835385544468164230182801288313602317555682304554657943081116590561008121798296518963275078491416501590744681535107688074844392487970144930228706712449414048977336233837325877711694029650534881326367291950292997296623888013016903488906573656454147591909238350763183249046387456436144208284000981143563776821504911822457501845755794758746347492367588836034972737047030136628337798807207273410504409725110321598619176676905740561896313608305116520346310113014736070894746322665906374009030307841620673166154586583078601710999057514632571112272924552976882533403737934918706187195032359460712669108073428549625242538903220579985064372889014632412707990286651394660921505072549792783143269479109225899784826119694573357538200639295584619292001860880275175645906783149949597136743488807273720570103718172187709968234343013568357040346477595964366249561456630512970376936480278712157144834278437308667766550540684821412893659994211514006621189583286458492042846415086396847873360841162159035365885468203477457770552393834746956068679232076381368625090966135346333653301803389717898049135378073851401764560954037629921212441384404303716041732255508777156473166116413836897358060521201657808888233919442660284519827972469874250646339508640163939096896570768191081609715154613936911806186989478352065184109187088149924468781961061794724718856594381705797176608787997119939782782072039802998771508810371035749412915973045773616804952907944779164392961575748007832783096662513545462115271191941215208728941734758731241330533688799141205183456000146092691503745441939714308900926983089917259904206770333182315245884483351834713913172506432887282461426575920488219265125312608864667273499464233821359991213416399233459506942239616855296521385651689422471872840788530159992298290826899883346265808608917484902043671634707276964419807175271173000559298069215103180440499717548872672700519823516833647203915489622877186943914988576202948704131386154986452285405526965336621829610062565565746349387363291868227961250139875802156543253999587373437482000178845955030606864033906190308314631681995674312695902230070543621738693445566085871203573364613680703474808634300986382350054376961907802340096360748401798457704992098219911512781169600610868373109816508581562068084416804920586578285137991249383137811005628479071399576701294599813520999283676018062761639355588575099805965989728290735959283522423476492459825783356677452449003978479185125806921233102385356349755091012313331709216064254096062107516131419857348288775603433678566909169623391941646238185534824225554706259129013485241278919456162087090477071809763403719838044238919465674837214925481652656869922302365851321675452413142440069581346296201580641172253544266777802914893412680836362755259223600167826696013219594023465631466260076856634285259162614019237013841685361626175113764151899324399486003399739156376713879752877384249980910231289357265349036912984178602127514499466000395815483319589045937689176380677629083248646546101038563759664243116303287315949821724500913245940402914702338422524123840360651704196108216037074095959932643108350145397539255850817426783238433806182586789178174858522126820843454157365904609613702986152849192823578305613754795401687661966274950966927799887707202542330421265756409090255355770965762963777684404658815218282504151469460092573290041071585257056343217662876945281960050862037004581703882580973294055571413142535542382991812345623341001947867143009983852268637408736301267300033663290909609980990100605485001084707987671017356370625514966393787787055797362583951210481668072683601593657213940310797320842334021915078920403319804615343834268226152047672272909345785248718197934784827019701834158239089443735496454459182996008764658558651923285181589966273051358034511909611564437818249546802640732495579152445605190630692399544601061512516801287356192208298427325303938436501895876925757434914686081187038145885250766426279164047285920183807016577541308250122099500998072724864820342539526119363149140112369626122134832734427442691345690213027527629220143731712622696125170627016077493805397597994216408666011149280260788023860197621857758362609065896008749715270589638246275321570520662848278910115296568368529703138943319942899312805545752050829237679314171755506080812407294326965559315168991397311204000451817548673037556340975877968735973450394861656414041376718234814521356235310612061673766937624482976950071423938493166744211483231682376849336186085507691043399586241549555471522385810164545457427398232144230039422813252879412951986904567195650053339600953406476969205819603834997289379373741718352587755790090572486233984436028000634725594788701059886985020862936076652820903617792454891561219386399282076733434379132670967487710281747584089753872335577107066673958049214273297768374936421206752228250622995946645277937181633768182918992876257042076392589844942865529126765831884361579103470379985029771638640594624846475763358901426868356314786544276580603245274325835798814083055188393176785349063322467624324999333728553834376244295718594727948650215632281314028226152824932405891490016063088487448718751512639698366620882489646536886860453802673318344297565620787375134096817724267791338986004360636791207789508836576424019918532503721732689330682929806610902258453844338166068680980317629564750813096592367242526316433570786307657987841706670850804327999980169555362678463202711156667960636003034288704799573543422450849694657764058876182997881722212915750908735085365736930541751696412881235877831041342036036465494560526271774119129601302425941513682220505966063463966626595564316759504610242854362810290627767033789624264392811130150777066661509062367349109159988806562372797998885268965295557791969396184085777143020802210611972517920623322010633582768244448972185222981395540108044264693978707337125405201355500912141680015111756598444912463975792165468738443648779747784727681326913108852755884606116993050095548440777139301935445803068770094354112314231665639830424490776416755323646328017158495908244912628025349733018083558011871274079949139484358398513481194383883751959751657346764439847930074385599374063426685694842324660382863697870617606151595734454971269072947064967100160425583491138565946778219506934730244965739124635048458693251165839791169364502357411796494307761527531516675272687128068912244165424714502896908852576608982756590695390409074161093591189293648066713880021249103663858821222497347403389112561611666779333250949733123585200871035736947990051570774398862879170082009534315144842411261360306712248135891898918490832645348527748096953312319658924868346803313574301192574726322289578010182124767433866341417812929432950931835218885746564488591643421494458080467760093280208035352059479970945188733737549588823406161519351914782178140549375676839973802346191630175341105008607139930689368208994640294992648055399895878959037972752458811064969428845038194298724940758699841862012299239206028956405535074300933570095400190496808473863545079934455966140596503915639530887862348649239189011510741911068633574317083716340894315364010363216035008784849103145290496274139866736267861454087975395987742838119287169415209058169224473619631430709271679651144314378755865238725362019277383039072006454873118345429820884042841362427976349216124341515283187471778284460380424124725399675174277346966026821476885570726554528030474822792977446079852511365051158502286339326555748359856615257667175483627839791867158510145053944076947346401079358013054074622193790412884688871345510012917597310791090299846848100021566705496694051670618359626841312142542241207830851083131366916417031817655720229518173826801021457954815646399054953099167950843243410783002801654495866608061067240456156338932266663266403595726997406400156526850010069831903855460554679829458147859151870487944535479598243817618855277363788020968799661215490735777006645825308839883244596705384019204331333950703138615614587598325186165810208321215690241563115651180020929126142596120964306702753644139477670268945082614199900442101098610624281380367476214527379783594431733546691922975600715900081267977144013007811852110061300180155142571898216165939707744342578051862957261534128476485156532947340712393388908042534529052667240572108851395333316999510133822804200438778634713413173382789580128249328124951825080148987097584080629504026515276860715278114245445769211775788177746974653494539179441696398487369623574701464578591251923646028517104731176728778968718929801143566620367700147048701480929608896036992148992593869179280287092846773950961594417526767799997755883566875536325431438951775674728324346731005279541909614679773435111852589211808664869260484983109204934222235096386167903289904886297004472523529809139676426521472083073052646933891811332673594039242322854504923106430140427767960756353639023831055637841781240504197196132275495867784742464554520718285840178036993053003918910981853788487575111398157618115675748508253367343191340077705837193634932648301681863156257964846069448864546997615855752440081825761200887657014621028983277197068455982781259978989467816751825559255459085122490753636970108150257971359816891079005441107428094956776652614718306271279203258854841987600412575980702140211878606346599962987041590343178327933902281961660396916168947853096359030328322341584992706764873528619241913422337924151657783680744883151306845485727160797335102595928019167409517390089001435263708460749264970762467256513386072196815319441692628626513134993871768393321302724582588197379105386752070111259870890964584589523813480394095694428543511191766683767403992434869659961561418239319873355964122855514106744581427098460967101583265231537977743999075307061822527187749621458053227308033791677894789260354180451294998136091701872231471317574756582287939372777430088227769428441185247771379656866334301940186087449085462591432319264401539643593474384700478064150494398035431691110967625167357549509808807786113235096705355388421939597619816264415470931559159648623368900957147990205721725762186994202975656383765669333348368486476306238389487557231874433255042720550750816836620487921456040008735961622967836310430189148060555375175394997212620248251056933037601971440562759995144963720934111589606326280824770751345606555188274042649628415216089967942585494218357842534960771024262202356959395710706821584077983127974218056038764582246677952197432964760025197656786527393880824360560829675070011051968035464366208706699161746346099103980564325812469617297648685377314085780700618112663833168202420399675092030678018277065821870376639086082796905903215511004668904728446764772989981952757915009935180940716788771114602200318186846015333093433051090591371445234558325920105210432879326393129706603393532586666961377300395107768178461519866082099215442645054773577667277633101629474160009878148852696340324657935039679455765402988894068449115558480737499334757995804931349731823230550897550516300925564559596425841718152039149081345349171275564663848170885004577450549156975354062813439101875249677550171899001954343039845233267883849029677271994872355348213035240828284828091120257255034782238875100903540872660001931032861071694534831267993882589681612504520243321455371950501303390699394472238149044124178291282597848723307944831461716057428618526905239531663065113190888680907332008268121234619385726597370625320159330259099755457325825834890747746015927347588308970394720137633918936256640050029729196293521923553717906002400664744428512396941077480850248934852853630428390918593012770894182698156284741939872547350790020093812936861299739117265159563561939070700704381418613729565671642897853256372686309817317304399455704960923834158717371077777642965115901968874374805524377661095671287194397439109156287316578153550794672725067862740507969746965007338409970365115018624084817756132318760014271848659888092272231189621490768293378368181360591667673021225326679304944570569344514377165664471648597408220713621607572548329313006713917140673778513277855213647235867671644463754112701396719121025760084802559506320242347152128899053494120814615912014463842832588862405525195917881991200884175902271162562486526416871399441700068510023383621487984194474921779979173521477234860986341937821055081102828858264771988016931013188863108294121915905575779101803878692319423289734129225242619647976025265395667726338700852855347525069171422018499919895310120363269432380517052954073649214498312695137392445716507568780868440312950030772034277774974501468508686389807301184735289791501519699135151713496708434509143653155621707271040345436924958743476851099008452685548620827889968166144938755805166161013462752908910457549972453482600470007957802228775680185925740675142436619456296822160720041695936826928939306101195267738693691468050215338204411353985343620690428956671402990763904682178369565795608036876642918204471194205196064237835433822951379604273528221782172860132137850354967227599352717023513435861440754020782763321622347787757065857504093959155017381374622057378838008201021302697501336582016181184607977147935218788384645799064694438262680651540527647454725371699471721576382238849297464953855369458187242434401642870304821745722749063432574377833784664437432487912974461171715842682978041994759958142461354218906400235978664281859080789658971107031344031134770566644169569766649886563705811025144023059050579318842147683272174986302092386413794100508176449963409859505512624247955237619165071891297590954348423984633478426673702829465463197535915621058360117758357419456215616080803168583939528729614051909746947189099784262750394863932793497578251041505301765866753994883531845259136194822314650944359463978881837091275216148200997302908904453672235072635000778512718335233200852972613778848937925530662287660158732042010697613621907376710440001911007783375993880860783574475986121648303958521106854026966555868907983909544764439839928939697289600954850496664407245199392785031015668452615879650486813766536498907787767183342139683627864783886622156243695892171589810445264310737875636647610129206809734440378401048037095086008017669675026938917676455713588751708610339900137805344075828734655448293549058484728534388323923930096408014852271571851999423012007192279353881070270918596006220971911532490642876369826357102941987315151534108960537732750902645459986086418067835085853526191696448858971913264614613214747611204789972444261108205943730321678339439391878245471541537438317393204669801896139971374481082502258224879445076220112964772325730877555987563459949608649240048344481043062779299142249638662664397099011287340586138604892254852550167153711960617377471278112453344310583164808930277236035926992676828045165234359553174366760039759504606467914602737804685973488836437252805678856065300037617368073558990812548502093087466882074164951676595036403001337676370685934741681102997374891674552012062154504727504896430763853893220903079884703789074698618971146938995754723892377182544701404985490916823215473538001872282947809355691137441224980669994906144388815799075588379462500788473499853599859954845926604739115856183731648489056928205110099460370992271589993230536841341392647959221424327909874770731102891137976311919491742368581526330524158644600610098215799534608133244543205140828647287231336888074738200151559115696381026585972125692988728093842487321521149876381178874168467771648130804577581973324075805717006965922371812691639309411647745655489703833043937760653250032482619612942478180478586388354316521166027176978751802959920134706035635079580443235116408137241361979708636757731615280140333400432552619594162486386129222954286600591989046182351570367117487412523785396957178927054646700088565984553510713796064245844984994776678140781784426016737007797721210027974174525686526744740197905580669674692088919415650252434103842245905819160099267667238919258935088092680263356175991064971749218478509648947866286086202814716999940324818805539464844152210201589016628897755963296684401304712122907256818901886015602685007301790125864615714967717610745881290237089805415104214279726653508146693787268769294952114420697529411038715794361700686673750917038906044658224815562594716739857875514394632250649559296221642464193841540651881110599123269343336874460398216932997737788314338908725061061721459675576188841015278612662878873660396974707319315898771777278305889586062120568172297273843707641146151194377950208155622815953614588100879480903574847784085772684958380766748066475557164272288020649862638545538519352426275397462379145865559547562647969852898518627896722991210931058014067841316446366428834523075197504729402897940867159937840156501356619743776002586860101266780045350924609104850840142034590156003275628019664833266082711691919498874171780219652158186605479004574401409111018190089479021692049322091997592836943233736393474917320398904015754563751579111247375499482315788949814542214115340344578273625232473348737221019755521112932569725850965702621699925069215630677869958047217837046983690197757332944126009667402800164882131485349700704300925557114922777982311560307142274604678340100763430210071347064136907640124930900033014116719012903963124337733681879845890121670358193794058188240734466091314711196589133196939101114634185347719012330450422966545061740163777310295593819935158039860806095574475361529733393749629520877059028005415593137686474107671646603375947894617910223597179558287513579314099782117393302521482657360892398982632290711209195213936651733300594913772944732947470461941397699347949607392107851717971282053557202318266217029058778919493013491712589911006186372277629316971153785531960531313602588747078398772088938034517090467075130921595518742168379854069648527132463160350458658293437116281542014448526146521349574342607419216829331891864626107057814013708503147948768045252069185075463870317077620627305806477615152508214903266924251641212409956642490342100761359482907857079809398437346280062433813605820483913668523614386384825765145501524559190260065490059994913822883060612627033598839166455258349244420856982724074547130187581479228283180863574140051288004094155495843644689625628973650269191954899458401059973381983556454145033291483412229599107974425006418368756494656513333033982390545947348864723434226979318280685059763594797446066256797466508073890894536970852140322561300596152976522881255784637692372793156734579462294245813348818180778559325152603754376460699493262441014190266011189237465013959034711452477686177820348685101632786702356807830919812925990957428452214113652949478411624508643122992240141385535939348701087931870469840400472360239648360531923158610289219707701141371139482247887753295804988596438822354405303886179542344467926275827355935554601131092265524937322831038389180558073829370731583790580762597543075941651203403449735588609395113371146598786749708613628125024620279402030938605922342304195627032268461773296404698672254214752238609592618459003826724875888926716937514614270071776190407875164636628259647818438045547636509677033722351561707132281913993605201672232327229969454344828305920339539227485187458499474029579258725583363974863190691904715261026846580545190763097064616616822841339628184270831140132782504869040535403912713032323341486281065130669247517259411444214467923457903478103472308283881820150502236004947531962195826732521470084531979588872365652191306509324078964048904867625186664574919278198459538830172433825854457727949395480313558414695199227097267258071989947585742535515310234321973626121966110403311115866099996370025675054703474401797201262546930607886636439143048637343540786759063076481727019980178575930351209645808117073918333178600571186673783452629793054800941782507249636379227665037957940450558050991607548919113579766683717634178146834377824263558505806608652426204591123601715767969894054564335311825447061224372828068005087615308334157395239811814396519117382642512449552028847188406239222466677985685278522637438215941278527943389938177517321643630375918009988176915072896997401325862195207262065822977412488508483454824026080065867485675920517122848674615393719413751157222068622182943418855167889011425363647930876298859296301967966482817159433202722309563492818872840741732081040834889116395007610258445055011784574527626363171194887132064052913409639808841462488339698277711856866756880451747937821961238127875770834857469340187526507535042050176002193760629880581222298960373879099802694814123096791508246068698788880685376073496060662876374578786886193618095686863338152650677196442132464698443654147909967384591609704596448825190269408337610920809908702697905217907571496917647266954861096088192196760083782159466521110322427624653498368290874019372946028172813083898341165685681840872866356624772332938589812825523881512330792365092105391222338055974753442846604021848550824243510424554843173640334550978721842189739823312693120073329391894299302400887937376549886256128957281814919336035250523654224945059214216601065764178831199224295247715127347092789348544756896356493287242427719101260191286958388658898978757778033572392758608632176272586681893864761712055773163030489482999266305827487246836897837708740245152793167503025796030443564605343942849710784298502793499201545014157202864303834979452869060150710317902411539007277445451541604701510295061576877674423432132619381479440630207976071066877470157784810188948606214722004137225148326929279095474270613725310164111787552586402399025264758544431795851126593027651402567233268530379687643527327049629672748332157788419708130339873738438465036539445777399664700585523350520149355308774516510102501892591349607332294540638904032419706133626620926287959854394869741893575289849645743404285812609094848011388113635205824926035387077394419740197285477940558413776581041733281075644173872744485360827213251389081066991749382904053970567018318303332699330718438727732220076830050336900787321190385951725313069679596944431107180059765324967776726468431806938697767822712219577633359519479511882284041174461405728445370884438846140973143516514163951828582584670732154288940404824627657373177176441411711507404912930368660748708054350626429823793973708680659772007473285865948866810898566553671582418915386140958451840489478261517596758472393239122859024469337473077827693241580149441873048676955474834611233817360157071607324544338942794162381725699899858336282743965082647255840607653081374270433013785855738144865898941128978749632760671047369782045947609960874657330379624100711599904561377425936433445756141829823000412681348395633877496338928671817383605929458345055286814481802561573067881378736807589590661231122106369043317282522044333956154185063992800319831599935519260747388413546043114881572878215706619688091351606723909944265493421598124791404377182061047171124692430897106078396212769342976376053847219137908725365453331405338178557204652639659638357585429567957226386032290492669715161473212672308136946392273478701360860618418708321634367717084671712596658667944051506470884697735655366935040873166642675379671032781846492095702949526833526563023172543839137392719818176412340119091437975763941162209680130485426022764366062670918524231450087551339609626264378458603752548936583392628111430895610669599938450879613069056101048384386302193535947875500100825484497894773802269429910671859329784965220888440017799125803520509042586137557228227072762442134025493271935738143791949721131324722788357808769916416336182770780100302536915395979771212136739026317504090238546195470786335006877707647495518251682539462885993522252877954607106285056742260675805968799515622938165098903435751597364135078400996797506234698430981286946632160301798508148479352352648156983463127018475123528676491201585276697234691295876198315090895496124791695557298098434657671903276638648159550781610400895521270027963252731122633335655276185804086516437068460070038950879936967901397256116447040933869834667294745922092792439717605862184614046334495547071564727219121681635259810066799170671801316435213993037297765303693612898512899159356122471607379411319132569489878874624205007843887000427941081864867799507586348694314994826731065031109108693572368087959365972777702604550253624672871434340218941079327307955101669250710517053186090921572334093435909636120516049110223551307962346023877523980922172290892228362482927958075423905671344242358135161025102524196924320166398736725783094916689233972725209355789722951676540515370380122335972954160721459118140858451951968104904469073902638772798551501474196020453839026905275588589438511366982156916504139293416053281840315159226254366776877506998885267558608904299286987670837174165270039164859028200338952751113827592376561745975084584941810588035355103722214649127993307158423455903435474097346675682378510962277924049377761857967819263572375424301320095932617780362020558121512596426086772797782883292151667995033596469428694987853880266697127144320338553546320741687441811845802195986886076706159216420577357981078373632415857505403242399745540373385182949723946918704864820111191904068467683153067549893092004079126565597001093806437808301492789495968923591710600810151957496235116215029707037736896582701853227110070882846749920743107393038179419526202745892388876495959001188012302167509522681563736917730581496239404103226688818585608104636936761258677534087937758170907501370963117986146685729975657925835648635400311598381612936859919657366133199597417399453759735857348096915477561533956142000260778417486510694786516213269827143941949435800971237683410101992874845291202416178191895505465291089646225857126724214706061283560797813465968696338746185777934203314511981620056836436693110371866220642235780937229074589538127888589968588981266636175520351528294817416854291954572488663080564957402186863021378565923266925869442362879175525490906958547050300543678830831795814441056288780906663563269637001039120126026586599902734431964606253384957401324363677470155129651866291726517027955754783229762754992309041667371735102867430812513520988918584896110931343963876760674253263639611194312460077950815154362533010408314784238701171114300062164962541175357070983187278715424051822030189511064845286784522685344009618750623960484799405055951363200937249295542232968988366534531098782684854537895256163497248545548663597703276459345939092711013382353903292949906567889775789560119128042009430779222707302354231706472829220458810478902465224727016453131622217801729787954108742399569434447881352036377386074972415410920279267257109821923841359500839457219727921538776762286315337021644457747835389978721871832838660280508378561997733894602225849925756402643204980809650941331924648482890577834229261552777188310460809816272017452677339757314305070790620263220435133257859919671119399191266798392037917335453696386481409624802116898751039653753635578613030574413977890972364925992501999956709693250365967751720842501415254407828763017822007154117692594013520559182276425622047670968324476921690348785294254207207463698714750464600232595916873595301680725880855726311537522999297526361526510756750239794732249778074237001815178224788090256710738399986417392348014915881839843708781036717908569974537795779879369471436075663742156005598883964066775227456676540037462483018793502253519906775501517355225520867694934091098838627079786551827570247840732231627670427566834296556365880103238998039084858210925540905065723373335806487386006342936834479026804081874112503317500263428309379597295852352188036705703616207857533636675265215670478162134760582805085269608443032071160519077685340731441798006631191596972874792662290893848871017302848314515405475198228386192489736222008013403776985858367319096805033451493119247338083346112491477212537629003871058980621498110027905728865952255090529299779832536532309844223374734011763395697760758552889409766977866003557849308037099930694671535287583498980026664425120494302381142739349137516772307983261347715157349340382904729451625220458657750978869743678436688746709775894042058045571967921099140915263804490418225120389120438587017755710934996785749863536841218740481686871486070677396160191437952045126649564586040070554999636228248596720660402656608269079701991184313833315272743878376081018888036202697778124374088814943411986131899561678510277531956511228897267219456458425990069599514276931282321981621908291839205245744189952109538241508062302884963203899043054919936682587769005430027664263757496355050104229438649403820309102278529391770387668909967209311382823410758316392870258052795709019449333847752667374504471525590870516655320382923448262154802442206787755193833533701685710405301595744842390406905818337881288312540458441086895711060930578547049065512522649375659354097952674332800081039024104260246827758756376574306208697686893244199464039223022040996136649602323094932424592878578960825318563790204049165811739242715116903305813488944587773778391100339737518556822970663452550654400597612020427831184660318274800756812962400446256643739175045874254217517694817311466529803925226451747692714464870487502181987615180800244583525944110452156606890490144871467675613522989854286629403024045950755235897751332745651579989204513453719527602714542462794678040922859540261028123853600896355018439583642723920545937438631261692294624363175208296151298590318081598249396738624853191708316749526971584502802328843983257194746162294750248279916239577506842259983649236826381756768701141640096010866472055841716945176802876137457065154147010429336594297307013659504874156135901434352023664240706569346686065755541794751278953869167275328432766939503436827360619687178052895756218292076544680055166888447916924851510216800912666281986462427938767022107141060669267129157147699541710847443779878422434609606822510106888094172844550990449248986827784549098131806598267399232193689799918735562558467012203389642958703236209292283317610268926233938191526799828433035840190167576689239463768274066386486017111672610287889318100480371162026107452391967101212141301171643490287775284138343518800396657451137019413560710395711355292979146428363102018512102637364146907517065577908227996778692691026989209631787466393610736257778708427978961963483188137680621021896584429255931939141574548681331698451829789860208248420808169933712005153713770003489736432204792243775876111720614495790914283123166858920420675279903559039235594313909726945631345040154104015601973254293813694542650326012615302865215313368804859269265260541863109299030503707962910623022840573995579309383104318029713495132601798594330028281943401034505745735492209940762409236214848090867916027071423961875938507153392359053825073192136774775928876462289822303095624928183198027283251333736737624710974948291135962985056354905193179080692616581821473012870074438924004484752869846845393001960952727660558137111708133523914252300698308952606958110040483740408228705356442023390417826496128656413371201726694747770283148426127866634813988483378848967144118118267119598053864834917203445765789534873398741174892743192315834426030952199661473752104314885979100381875151530357767150177774416796523283481451114493587596546886275565422968703010801120613216562654161827053707176226525972572412322368972652078111682575155774932116636165561381055167621838738541621247004559145542579555927508014917573937097738342011948127845959125721231842688036174594405432690820398505841603190091691627744137918768525958055031484333082127899522097475372566935449229225698488771816702195992048416925812664896114581798421123629201139431429851357735085276240073759811677386726847865988433538474372714318434166232001170756459682421856659660683802688371760566355744012576761980560353415902486063880041549187232478370364660949282371998284029327459964761609559705298068694951430576456902093800707104523610551148322916905640402375476992404978487182051820569011759793652917412535776889828625964711264438213285535030398224477005415861450457613679329182001765126314869637576191772152952215404427637307570406721057683524331075294785377598916962123696812849269910388309987406676881902408137024639850352732184850092300219605339723387643677095886747560647865427426359771329450578429063008375151863922237884418897404075253984605491126732998441687360227382077066903971969166723938973482915035318660149052056760552855827982688488690691923018961092078151859469591030819670329307512571195793575216997764688761231896438104903442322322998272256051975022822800441673527830480287858017847128600324424642429535086011525650496937941579355190522783792801392541598423557895358589332290761228765875658562659171957372923927312136128702325774255772946993494251145018989101034308649378753308208473389388566859562499066235426868896985359017442946330100916407605876518048973586806966511982655125092338293087155396467209598867887038861973991110873830369180351196220961275897565879116640541339433881154631677468403859364691000016863124540425232141928575167820806243306769966318155975791760897594135146552012326460462453881573012258700433531043935082247193059395854508754556032555460392780872763561610928227259886970731998326023151832689220181086750735543406199771495076878359891097663077875674592588059510668440451863772818836711747368367820834094608060637512660620341782291413875898184904755052905393438993217443868510752773024471655858918463052719045328059149224181018312872762056335806439855615946070408954500622498920804658200066156996625277769852380670373427337114054056220517615396243724976219037407822645188839937239184219383202614825352999859194291010985743080296326091128981315950865710818928504747894641831801227105358058596147821206580732296469707407498108346482519424279170182604397057529448222647759562132004077326180344260541646249036411484533510748590950211532357620372255800668505646578870929508186728088524304073987415861781551091424957349777613572515239886647390059310212455085253945527845681033662757473910355444821881442603112782714376779667804610053451864082102749886612072803889687131757344711759124864832751503063575619339585639060712414504512676434581872837262041549005757218863052050261210528738887725125892412312943312932549159060273095754819867308474406675062019063845890220142334900967982367583847993286379592802995030055256598498689924193558683735628889686882496954895263154043331863879291488262231639769149167230906631969965895410990256279354814132770282552137949720380895374868722961920303154990376947029628789476376198197015270031633493980112919116494933504832428195387694667198299795027343172526580348206342787164088190426189366024179066815208097918111366951115865758123589262810938994146201033186679055540838338791754801403432931699712306656684914788882188193110062548156772322035805110529527135548353324900670103325166674499289236821166257151105282417873180653534592679879250606001459875047930846482275371200219924157064660492783242553912684623175729228219836937312743656827032488115737158049603844087807772296938358105833722692345364476406213404096776292177323104434884551472163078145672601777586299132344096040142128077195028639987842542322631659283549132956450430553809291693225773040016846972038036678720810359586590339969659983446803960595047603468417974582040220597386449970718007838880842332886963586134681525748430368251693763274967336223626464664396808629753164461295634110488401089656185524450419178158304683181344519890790963587660230747897195090081975525619567479707818269736374046742699036904894548433638280139795462137373106646188871983864884273122160013033560648715736340895941946542064572875603790809035716957697211675937816577053155904514051543885741610032387447409438933267696584584676288727553826063280750681151002793562243297346134834397376673757757261122177229597088032262996019214890419279246773301995888138076791720762575967844564037825300129042487811227222611010511957338524188160404845505015949111427317922410051347070390003062974660016523874073109762821058314345227192376597592274977041392834409089117667239453650186167488211521615079681444118883837011702135392619862339686560903399837549069318913667470083729832225743833925849792984535244085285092957087959201241792963206869941930662363026768731888065826977765540544194481865818353530007233582880089020352004859306211621177719589441125682254921656876860962027975355272503756425027716860652768241388796678737938854951025564312749828715798391321957535190803583348159138741933930035342976631973581685254082795608957054723338435644531802701702292453023166797477401103709679045868531347418016175920514980302883879712403083440118095910149553858021447300891106799588325268786530687659401773126752220004587659919207285474502579015469819874769804958037887169937629051819532401911683830809358958650959291038099585035414146973477920370760773003766016573227913241931862136606175428346906340950235392481813630662956161039799037254734182358774499898182530151947668602428350818205323927464423473687467657541433385567506022161831181919816870062665133496987051270505579685245456576470982142047055124368789264513588444194345642535137928761953185704508162794684443097041397598288657011342713273541008276389903662257137489128982031384924918239030173386454095383867999506674931574546790875043722324321720050986754877046808307242805847469478660210216523624092682617521987336802273260958381440807441036250107903377489310151238266546418107480009494260234992537529090231110340332394029044057044678631096819358663390905242997155939141081588315477977585777154091272179553090303153438233402654714800459656237994418489073121124394706002584831328489181201152046968283811681208121773506338992124276006076250341328551785334802460829114295051551654541713354035405046302431969530004244483446502748509507218961198780553319121149840126902603929136453513607437978050940958590276474587834778387857937157560910126865834618254167027287690838169007086087657127562950555166280730868094490257191733318228313568632202628851271945516281443794261608932825893396680989226912836120529811386913589534801087218329748419582686967532084673296308512862650698534262043585584616798625374669708892009582034194087658833740890593142235366979856384545523016989771382427376905442390466992983678596783887841809935203274738887340311506276258598199219878441219932814694961454685231250449084154000354336364209105785613627592036735259054048017885556184722467283500588927695573062435094361164011218759035960330124636442525236597145669882220070842628936266430693960985828656370216134677133407698489847162702047791027724716654628491013259009402648178169753415426485297484992052304635928061158655922142063402297591556670041122460276149129070669811316974070425569432098249969164860937800652319238592538768461795886674257140954854103903591416986024780398054462346033905694691711118903584655184136823860393238697856742967050977389013872620489426557055137705195486562299879426432643174500329587091525079417001528388477409054257594794725080288582662819359782925707386131872038865873901119495268021500817389865417417975858720491002727032069589958880085160607206980914907464732589494488957967105925993275195552554476321509414040069892177194707821097612476766477320898061359762214506441577850020915944530983832964224055479664915444627299241186711766838750255522539853227988302700548974019195531305254788722767755247537639311855437531364290861139073132734629882843712369054273997888679879514679801694260960909318870258075437667246192018379835349845830348787341882933956957430514643527697913321315046164972892702591290438091821044324036616783105862346429437028375231283816708447888124702051072063878135915431952646232889296824705690933570231427426704618295145711762525451830583888726576899254602041012144765208133060701530896182104480218012758885266398811622483789330557404628289955891544606982878778944608125324793800747889158293771928931627418629535261177902214293831299771637039635011711970506749636514374309402104692758474349567506777109515017183380938845620450831685431574531217026039158832309007548569876402202164588705678294832634864903597973169409269061363909749576754761546424527271486675573146115093331636719639361495235163914677452805504967723596012796676351686106750567025724508990023123765662548167789701904088980431552817803172164412069864044281345597031922192004572121841463236946982755288515383133925761542591811907719583904373684207007230412272179605282913553585868582151144367575860322873599836427296286279507054241411442650238951195901898661577952640012681119922037477941566704264036352446771128738760606662704147532567976872602292976875173281417002250821218911577923656921249619423916766022507015532888525286759967077139070849410865221965239633020848443738153876566917054183093086624018714904779172379672824722523583040662889543824532330549320593153024311336509073281034811684364538539316468272474793030086137176447905438981916506783315413498347660566026008325587587162607122665579676271583425095510274349966130566509105887895703436414825016371237173707238556028142970738380512668734115258442519914438724953809739473115970109319540718928523261412011289824460463951215036855040303283208707536942519053382679413468812209263625940076150738681448382021001748060912297741753869540542589245461483030928264429135095276752882618117142769419587664800266694474982328946126753793018088231639395553993336398885544667218165896283157176926574448636036840620225124293224471572649474389915584127642246901107177198608049528070941203690222388801999696238112517478759171671896189004183969387036878675963165264347973226989620772602396574904642669767547004064701520394185121868136793660113792657311306082656720049980353718531385294997485679970550845936263897668807397560099743288414102019275409105212362038205039319320220397604702634611711616507868895872199670773331521470021362403802894438237242710603422151534089644063155510118809591094261825215555023907948976463666949102023061413001597919414565392342263735938699119564867597721047969019347807517497971424215794034490004243882173161584291724413623090305671968562303139145058200952297410003121328844637545771742391628164493755506089736223505492001258338355248631471735477666939900313114172044094891263777369501195774393268298907344316277777076260759673059011097550459132052599290865534739915093061908142018608972308841697337032786853604396782584045632821619861064664083026080239703125828607764733782080202938297129780803026399610136745236994545518032424088257441881618204604469351419843912565298970281848637728373902940804188157241410341915526032358374979212911437599567594203567576472348058321022462319079591714507282905109080894945124977708353815574352048370236152646654183712664570825907655539636567041354201663745744854577222381793893655321308629662800488151240076169101898956247938717244018667167292960005505657929273244665695919278711608317072061996035289581045157194131400366346933365601628266920450625761769359102547350063592086232762421622873057619517924576769243068434802650890314784059775293414525598855967758213828076353807385119924749778456381940120127857598578689777100807376328419641079677117137312447999274644460220137480217414404912401161332123553819312384042995083272994543079764137784210437594398198453515391210225564026124198746686942195472809284850273513132693329753983932115723051017107106459817750106248759925225390533634825733627882755279092208486934282089633003585865934841885602496935505499632241584162082355246255677972607127177870643756203333828453657282187773487677920001600919577347229764623357057564541863096849325940837753881344935613666955283260962335076850464611084359979890224101175704537280406700661379260785643678567261968080912392185376720012273270925534200072894240658012860740322523765483286593535656153452835878784688266697630645817180800742360655096952897678549413068862647549000910357714765411561394254197993408059977670321248651332773017151796891077860120512314417131959259003817431423262530244431460587775507480352256587371103927242573600647030629513889479197768951173278029717348599869093468177801698874149605651911401479251829341248618366101080572325554935792654509518186057183550480302276085752667097360743783673930722281500857137848620137466698147907720573837108039252365658037796898942745305239546467621106908403992650071167251121710012470105837078770423441879643327311506136816122394184159662078789339651149219841152950037071488490422315533517914267671918366694237888204378299826059523704711035983508490459458530062914587603696642726125781931409753310972064982988796910693892888075903749473549672425043666600373883601135244874181163227539444315086493634294893136743797347947879042536694904301738608097471027307669231740898201317051483334626333398346193440596320696398416425627757589276907971703460927597908291276244497564167481998412923710946384056365213650768188470903582166386197183572204196491995686817339297427115656186043021015559292188699341211954395116166458895500108865460292167848539883323430500139332476223382890858401669623212288342385224177751655021121273830506425392861791575689712591143699597132396963965026427587189731796040068021756297172601485041289680294267917110887597571587017793938776506928172664083316814116823075144526414329571872022896169694486362623288190615897656107696958352388990645408102078460553230114580505683794636143314153634527178562577683735193182854666403757834425756955981774501313502095921826252274356878637212270326157108982150075379096113898849406128824479502929984117604304326689527576004142468956056039377516350860404916928116220604281273876548008264688894766706835351209596880861730705291878701798403587279962297047827023109289628590244906957486520239928566396089770941376683060246111292813307204091089055283479114455081848877263669199972739499761593177426906427724912481352579849861490563465070576676989337888110566362005656325591594328657618648197916410063639969607929373395778984545716519235339236334970053472191278654578308091107256822599109061698437108837547994367919769314688994171587272135941520302343915619325563289447990796106013779367265575363627518494001021943314954260423513501105647420299425835659133358207578576695430498211569904059878253647775854063227187373913965672494569087267139677626384624504372858473234378064761579991984471246006374285114189301692076366039066198754710173912830230712675235891664679166907466316878703867042335645688701999272447651550628492119211743282202072175630724380315183073020190456898805541401272213301827462780260177020910133057119488655157835171934255020429542531938125508514458950626870341358070411096073433921377973932336013768369540735121154049647525350332353432860970306676424767562874521703389706897294201928127398254492672292349567503743686742291825606516196153570347245600625433485146601075108172581659394429937216429218266212165662543239540462408472979413042777610723710167592531226444367416143944065004922241432084200861811605751539698507581414525708649102375828919154827852408350000165936818032536846325927321571935397537547181060188213480174200462371922992556360090480227062075523715550280877427867492676498968021710215044576116316698433888115665013316747201674309271524740974562877219608959343830942019847099250490598055340232148451998653600661514661174497043925817691491423344465830323688599223532289628979961726999087204384477063478578623264553909705669842184742170269099897893186490020059315482008358785512450047224003478695640194499602767485545224771759950727996564508552519865429892500490902046095008612402913022805761319403065191980254680633208693284066376821881135230565082581122000808992931335454509467796509422422715578540251080605300649725307535091800986966464964666882355488429291163036209145326919498179177653936950298664748306648130830219882237466876904907720831089510181756460580437714419548299327123705964362692585932804093691613836611930916474691413164054483591511284505058009652233398899375757077142496289402806937441915434384716413288573599118730012517212648426676974422438798807547196053275994048844893633140244014960815263989034407996017315285258934029764155438288665249191038603459551355527930953910002133986830948040807450667083525147147123671212490268546492385099033364427423334213713972949395967730998352490295598858835690300987456099851966896121831697986789977561174791113091128979470267522040032801110380161722999763085767802404910744737479028151309646127192997599453403744463229502403749719184504321270713249081405360715417548901616864373697336926698890096154340920371424895943471365463024022013365334247089545707562144106160044980723504469029195734424624540184245453967522135208288813372204804042127831339074900753404931579386179730348048646430726174726756279251683901174560562962670677813637761905751976052609589742226771193011400035200363050846236070316188020811270689825986481324165404997985288064337199963600566028424613647636765018331952291628651273290562021413261846552017185396382494544264874774054574533678318010002674625215091975827809036504009582068308248625848598972443528683387648072536934129961421998816109166196978182035744294793682536739887052243974087123533251253334929163258449904330627200581790138900699667597616350747737682100606040800536444290131555792652836751289041513014817057399887646761514428886749616535119221341007147138481967183332952137593144657822081732028431525872220192678842813937607679495353401867771967393130808269450182800146271560305579870500369406411641765625714192168211537303425513190814378745057768503676711317004226349383378177378087217265909446277318269122873320422136600383990180064189184757478169543373031464692181488977790573005999363855245396864232100212340701403265763852142055998582958822186369394985509815241087865196274003905631254103250791117561061918230555269124429841633783760208383313827250228868503286118173117073886256942010418134970657380416010309044254909227472256080390758588938444623484485848858031938663248359055286362262518226142766552827681097358076375964216007248767421921662444245734092772388371137119642044286901741332241511531192012811334613582707537789136198689154341281526695207412497619024728614658243680282716275708268749246591285639022202859149121948033687027079927870087998846137688840502596407993754314834223625834686618004301496608250890583732423742820717362529424438448669854912044339864747899238758544077195328475199566735440179883291305251707274802686837278975423686709528607262406688578549129075839549420342832957721411688766379780031877234264997677702180709012336469465265658146807412041998522149932517452205373690588514646806293220395959880996035019136772665211181421610190847298682303441212778322963854041875858156048471099789885670395093708337293228703695874656682534502413653252676792984740791707884383626737869028482895847439915383359608641271112304518208135212156611171659343427514667014894805540634977850300283407805724725184260150894700252997132920677481657516600640762520325816828816204270024921456298687635251522852984231347652500533302542949837638882065204294213756539641647001438194731077116966244972819040377485524641125984607035663561094895606311511969247597574744123282440519021130907474415168935480803503198984312373408135669522325430043074965202249637853897139553081435621581073233989903290262045458548952433048775268592026080766808938639684700442077300627998058671985916437510084226704787546505550737280960705050148870161273440780751759713011181528753011925282959169473696189974265938404514837950287805492792990177863625161974932238382557361660613681136426967619278603142048810642331841561576313596658492513556939091496010850599480091510568124894676348674916003431389989154094798687892744814964656765406625097085577517198164825951494364112735741218863684980196802341816177210694078475162577853906146609037591729944806739766399395484804224763822503893300987639850998685642052373027511051164850013248565753067518815906016849631628647012441480653533041326628439897816839464305035923648524187175439772084002168864832012533279322283940839256083722929978685918751038213183930215259196124582921577802858836818345792433923069577847101233384723593685543016204311239810094614750687187395807577265367565374142060691188195990534977493713732192341041395009331472510183645731253808372596698287912140780352872808519085656163959959787688780367015674790567999194153820622557876458017583345088131665734671902842534542791875917457049080919429595852323890277631835456326731493249248381879763891513676657822474827777327185576252054217283475593948750656630692674936844592759986873328886996129468702150808195084404123027873880181952507377820185693239084901630181478426168290918836259486750402103303805582757864375094766489456630437379501753984804253928832665005965321974037521599966809791463769625936137813978801260386220927674414302042738374772159704192311938056524716873737740561503718600386459275786938580147045515011693406186936428283757727961855578516493416272659762736906513595099917451003981309296764215017997431079144361902113511677218444029770250090256716385062147855304802248778338521744914157375216721839921408992127583270212280045127358100846270485254182470871532533657791496654278698942356952309315596086017841275468807266868751047838959555775481551393925487828529266367518255414722734142173369587094455662567700820040008483943879939856428547286228765607719366369946263257343975698161356911455218454829825714847034218011248524305180421967561512131797335682571949962574986167190440736182048869958145724310546075746950111495427301087535873142799293338444461458830215114809323783641166988852759180539707419376361448345846270039276967150218771480074507660441903403911187635849923838775306866254165037387912087668110738545203086162023865088314783470004234216799059435534677015275457310148467185343239492354942332888528383943220733712792659255687684482216081851006946330196908254659814261850433890715658654766968043273577304462142054735092229621039261846159758193820887888232218431630188037295104951610550875658761201168369481516903977425360496497910181978979748154956708859720000473651654529822962004202791557383258221189075692501914555835302678592938055444438864247937595033565367302289107193524320571095052142124406259790490582475361272303529804075925422704283568276202895256909933671030198811479001788519756238330523530124588069723377493061170399110710691484373111812829654697915788731267374874881514258312362642094233688302709954859122127629464709451571054480925728163821358167476907891645865384124399435872238851283211554600016004000153388466666453803074007328875473169908456636966845739112386614123782376810152172319038970063856559651386717944323573133408975443697888139979546889911775604157086252769106356024566756993590517889464208421244528156072030755366512216496480803436940129525526834393402023911092719059718500447665560621615486727681644183941908102548673906495851153935376963476597904775239816555909303874042214556604419997858967830372611033716946143699786185278690966280485031154637353412563327020174810777183346079109892155692850403468417032002033010583545264577801554825662919194809801319208558187798878488058985226299796967404854547069308483659695739220247583827244723557773981436557453436108794090932168665844971603281877157474897131105480130762494486410587514775538314634815351602255675575840571840221093890927053870921226749557072571361098253700931538105636838968102205821544841870833810544046999277511051019359363456086259524700319464346203291757492505240041776017159132117833104207907701874409519857442481178126250687711478333470580484658907022714517007658935324475179369476700928791998971244303778909023261737626340872884935356275725002275435334920950496055456493626341465629066525707615336917881935556816422075094119739613720968265307384984735327315386901373823045339483874710004053006613008904024968369267149001962850373074729616333543144331490784074282720214430482176354505753663529596962537062155458185936617206070548833835067657752590861129725196655433165013348507236953406635803390994546173806839157540906021315862840418890728583645920769371615888557603376857907356862661969156659181050745009626326082337638659367511324692370169910362393580909076247007834097342727755468968770727546180833647899424274986145120519132642678990616449527279436704063119181949220275917396549997891962277138249914106519475142247279781251207498239996996099939654730756725765563063217097225555776149353804667285626115735845013096866884359140992373913266939134915726313637372235536419274067809778996113805551704523775861030266113830878850059843685045549368805605748692498078953538616481780586780157777648978114085267954711785452304397674220834812001123525224180109597281441483667174414458621671662968050569037691991133490953707778101586940432298528677427603161214497367723036988898155734160618719932705658699114870074762102219870708107785830654615218265353493111013108749518207417772764917843748747754297329774891253953629466374102700012730150638367707862713845891866411328875103929429343396909557617397031588917660501340097825139543387870430711442115159820996352236708005732628682909815165437267939544653260667095052373599035731847602579249049494900305670041773414435643773574167157981779590063790006522309884705379391352149185775675820852597655136400515797704104143937303107592464710548084137860333464729620011196661682028910644234642219283996956404798283720704228450417527402458360715595112809093829353278753266084907809555790219407241226224670141667956991914960665107821446685075413003272250740301031650110532554395147973658901806265736935825826850614140640765747801602779806900204558532381956764513918477084261452320016412078557860401242292117606643834340989990787484314010841818616950938908876676441010225038499282572923324032129241416504010990167339974532873232173444658865623736907600110046884757305398666056146480062027353782069823484937614533576319873138300462007783010760012843980769954923009608753409170329164526407746171173777270511607648006502149919235355796338874587359637037888949607279242196466202847687801992608617471729474636824403632839880582969056240245139531688045775504452824785740659411983988359566713995630698643200919376498161844313530996079096963631297011661243501434447496442886891839502906458163301248210505380165646042904857416015143573651902876162001424949011495979563752753854976811300177490809562606034645364401671629839053830567421927680507158716709943553851146176695597732349200079181001528194335929693139481779852626059640916858104304113970438811745902673577114959592538861160037091248224910952482558386009369768837151146917692491297525932788600589922166515031784072065727121263115389401036254081919980357431469807258926738855780507169221980232890418108675024958299514523783115630559026376221217029414635158766350465485866306584014840630863777147278245323234124224725400426083327658563557263040036352676222301987560433884647111675222602410289693727432303928338284656586383268847868615324013933159057044542031083991718987486018843113182886151739726304363785902696550341579705593332901680260307573696733482695807440736548220745455212671370866846813872402034926074661174321643568060278035923937965389054227866339695402348659999754847192237301698882978718830820868583776635228301794454705617453127066539941603984582247361434428749813930715058000195098207254768555966351368093046687258215365096191854461882457223398727542771923733021134389401622764944719925384862108457315572085740135587704240361715607883797980030436248113609704260677342816128780578723460474978264437613895630015210808353080619440877223306349450819826572492293822458027615964900683576611645374191862790971335037055487779793079303650448271109671671906032352838456596961483444573819316128466619273416809911315478606589623345972522915338032578780419413970745963506383148099293599111757218758156864292667994342265625981412170623074722058508689040409044243253600722850998660115295789292321965439151864634341371407621838941152441894874952360544204257771714679100639472530027071080202421624516339473851746925530050069814420804004304753394452238418251193767946155542948096030999805674741181624828953704477980547101610762378429539677034205162589955513725936414497575767101405768249176516834096734024928220583328047268001499341704728890368065957178994775248921499171183401443132939984415595709044407034070917632390126301614016489023736457833119347364363531173815214932759872923541132218457250571586933935720182682606995570182424769975897045883034796482637980780096231502223449001671121764564904391308909967170926146328280014867734340941323970270069663462684700092310263679290314165467726376328672288591727267420693292192866616324004532854704767157612005270499327480636433460646432883404487550590158807403817967614722458680863015899168646614299123694630628879493618071311224879727725461197800713721989586110321670129261874719134161069349894666131348070419341586437353797649826645596187179391728788873356438025111031149745742576448728137946089432386549717557321050363613615260908146602169665592606735846951431840335697455016689342592576916812209252027275927127731041596636067624416024569957530031435314617579697713518027951290915970612750305094800100675866786639428517486255306761024339835752939653089281088134292608258218138876165003880106629005386323688083081892779687416406081648064188793589802444225998917585365685938759357011808253481289524505503289687722102072254603588231377948098192632031298957441412710252265186378136925029291646177632771474007883541614611166144524342072634544510578529407687581243181884333181986294969067685578298809172624872602686090134901602251577433439100455103680326241701423975469953130717880155936086519386872405332387714029438900288185269319219472813219759571989581548859541343787318376966595157406356207195349804026909806113048873145208604473165931604187882069914034356884195494106673155064430816299693971775523491477905172762409112618945949504324319692957569882270116466413886719732534212270140912827955911192695707302266967405270854673623339893650450849706370610491683367883913277432793689814830548606618408803516354251536197466641625662184666584005862425029413278238943888882978670648366676508420903077468475960266285632019516426035596574913005520596277730686709545117480638024947948987354680063235555133408102137323871982436275050329670114421277151172121683864957561009008912576067123674417798358319854968798264829518676258695499075426037540173451011108535231058737906524094029138314482205998294097926370341019480922103735078865057206921983786404744641387273337870212808980254478327487396448339360570549630857848337384654663282042380911493127324050459115741334781737709537371742898549827078048218588911971342228076361910145354314605444186457691390183184318949408843563905474483776669991599984248140596584076664296556332864161631922153927977706989910016457711138048691837193315576290383516260136928354001541605351810663694531031388061443514733398753270745814834191814578553004077674555647319974210148886636369092809535602512635587294822540207543034676425681611576091521181653247490342533026564576986317415004144907648926451228743518616424956220044460887054755612076848243170243723100937352851955965755945701025516552756936562918374433504705714338966327006488692365531370164162647293404522435834458817238914537413044066187918980088322201302129206669744454524255068319863538207873441278725701757566488780803449903823605710592685507464123803206528552865914331991902904631385929698617972256654995942744639492452725590478334481733169793646778275694153229915162662747783640456946254606717069863327190446658414554082537370559579343407009770458790108511357695402845239741628501545868047561254897772238308973540098537901151119276693369122983191107404713102785927956057026749088237787678643357289278773625948201112777351498055088856206816723189289178753556315483588715202641303525845706574050107654060573222174242807669870835585866949246437815314250437106799486616649019812063112844151987275435613680647423379962270481181928249357475473430776567985462411370908860514242444941358407009705235359600688213329740626505062966419385881286540772484037549019922607965741722887122048492726478753731600867069531513252074673918742110246237862739987829596837697737168238029263698644505401761909419900265910007146220971895503691462211969078050728740657944611151144129846125349673290606732427664764283388093065084132361928297667141763591105784461227833084382610741892504264008387729523452974060448988743349932382838453605216062251779971681724992796371967717834499547253367925294675256452868805152545798478430846261009601679128145488442172989172653249294936796172823370007753430831516184122367301009774550705323807818228564558187367823286804019982761728666933144938017412702817563175150094809763738053706849393206227995648178483466186726178044175655185376869332536143175248126763906481858237886659267790081021085545931812267056074874232352149783292081551826172926296195781576780769858911427501756999334681311145149511233284388108581287804948265235078461407071872546984089012319146760832193130536313714314273324767158457210013281809645798419747509055848363574577280254195984246651659980706743161510535079392824585948368340984588576624939494061665233237359137423470132963047912355886753110030515800775451443204591201731436352227662008045041090436272997460690160671881530771753811181702837754455163718770393516595404663418093572309368686658506853204917595984389595246797372279194183945618903081204675739295361208858653777016538631652065980186645911875069330793421909236937342065235514452323668578074410681600029929670079607701017806469358020422201920005987639641850613287862361361154497339659249391230442501706214013263036149429732509336646637023456225052993942926158500413741561869782486136100758797751319924154462331282735949044528133235998735427186231459082758071739070456453506557365180623973441577984401330826406364333838154255810431449786590175965630837971600985163053011159312928246767732138154229645444302796812910652033588677924466392016444162565039788097550221814929776298315130095578406699936346409763295724100934408387655430862811938413492906688484285192886474311153026537812635790735813389399014211970451191102422068092306384789553259974251270017652239412277560067861065275462449008571207036397223259279345339290383452805657984108282618625509473740756461606591039892319509013307598575577848543241028536476208673139404380552624872427150916241093216624282504045138943764303978058401558164718056223863118713434673954661209750040668157436732384643104637778675866949921632312407372092088797123221906423598983801439745273284585022051794954259852544064184402712869447276719716289904436575896957094431415617443561100467101112125876287536339761954981326540990243676321090510151997898166368556688294639267940555320771057015871755799473850858095442268964539477343655791375960904261838744689705955333910342459871746912423363627690359680979979666372934467245757724970284271474663208857520301237665582606072893904918296073590624962177041985080001469274673609694318346968524443221409566273345026355121015262019642468418178147600009876067839664454260204774428682739832216379043634311650280248955380267415804851399642974431153384625021661520985188140728290751961983906958138604870486511442874006529717799681725532069726212856830965333029925388107598966261313662161190086727687668649036657599573843719546181835402562108405675457592693257034304995624528827076138509124825016074087188252685130759316306350530445754564475975013129001604607850574808731319371774225154446069926171497645320116344820550142492836882063309381791852048308189877693513324090453501589065115441954644915467820369077318074540542838900298703944000348443644314403257422249409178238640716384278796571716294256540247979360241982872036922591678731975622602968675921049982588098827376596075046806501660269463497096658976377569999053703234070802795162278759737276859072826968570482814961476057406055679359259785618308573808553525021809172012469207131983991449761782034509196568808683565640123815805885207471507688618919216344950724537519309032625656823874907142215673745940769537046655845619006567808312112127152487659368169195006276199064814968287511714656001880379543494815963147877575693713345990095665974530284598440114151622098554054512686642946054222001273305497930880046842508260015286987784910505284374828414380949257121921946507814331566577032910512106532942548542071129804074735023300109529528589224309579824763164533780054432448969315461989747826025641172544496907350652877258510602955089517835545178398137725861220818823236524804960572397155777102072878347009429373121665999611041390454666424538879789037370699925956064114054803999566810109715969582176113844892545754851313706141518432667812086576813522512449591748941401047752932341102004217813938042594314828009744227722707126251310075510714183189432447351074186933924909063864269627112432052223010635221020234627608817097012034229655267675481421369128861563071700654644659312826682990426450809441278567661650083773468442537687143738944521745604715173761724362929450758941409450550924629179092552013056896981570477994324285078844655156198575067566762247033973087625565846364536980019756997626069285888489151435823259159292274676704413147942897823028888963334439155812000689003680323852606860026219601197104966130205924453632094456134531880401735506310842737783124644912246912605247153368565174041138214162618707423394425679005056816755322875476736792520467519704259180418642554530563394930310315385316482956581706342135993230921233656759512065939118224009184462259769232263445983033858952768757025150940182314306204902158730849223224149478192293367137477697176697240472201283790183860640170597673542201753266047409128861594329910341308843324047141485148040844619632058417090591113920747528833672913503228629864259755707556281408140518463853876944423350547255150271666241844927319897019677658761125139040662984082174156775378270917298038309047848058915613887116434096633969491241312473398215110253083133350774021563241640638810746486911296939653844548757101966276808856742299846721697772522218974995322079249125983477802973536175538554024724420931417880932571459556462310308112474646391258537323422711378567157170934408298382833637669157015583820458421592835917734428075271245228812078560544527653574227251017051684053857227848936473798073114535287734725111937338815630948306741997328452682583990660049292785660839048509845114559639510705434718325610711380072197722242960936370856525629458571276508634167309437505962198992374088776720290566870313730690239748906760618229936483199092293387537222538855771979530512976299482461627916753201649893518960823067503949448424560231396096543733784976647372509663537164300458402107617914518333348175813772088312839142827020464969185165839080605291401845437936138809429844140885252217932019677272731795714383664250929103948679966874388376831056062138183574903614887031553309741674725896234433526483054125175622174924325190204695730516008695284879485228501992248460301298786549036430187837289929844284017663368371679225284699595428395046287667133651562019745165065084447453402470473380534994193277906414960790082433638856633615886002465302579425979169113187032290203934467996504920514073506966452774961972428250481713252261545482580092635517452999983645276272010860829571290324884197699937038828925281353108653722498588377837108163886346695704507195541274788212036992068372644206997693278375310516200751320291167109003576124258834609761962536834920246129893991239209745633126078610598894083690359145847596976316865484052480262675612050958557679837294446598569131082179321429254417028343981062139771365019089415445531505176682353652279858805228661688569893636916801947510507036237830226161631813332861415461528577976371705315612290523685100459652607379372933223184674932704504977436886790124698306700080964080430429646539768551574003083201481706664763203029822678395530171810208904048618850741983110278896194641401366323833713092332153007468531006615437826739477785243384484439815377217635271276046981760252917578944694528006505297031896200853445022588321104220666376976803428533742289590232732720442253858115731117196861191833846709855739732823374806300288674146010930257028767084102929400540449509666992709342114752305006373850276552971411077244944690391586712647438291648953377373193935020191733202450128639340278241261132955835241204425588478290584535849129113593043800522058067083526600285860895577964418322132321666327166858981649638325447707871065167731662105783126826227122330291137052171166189795602628541601685040751616208564376019103411079866124728765770721809277363631560234578344004902937752256784717668087776578155652554983473188319684775609743395056771315513075303559797170230225354861810114168687701172481659030752307107319333033399794979842927980667545912623379201289399204435355237867130960560158302490029934896283972952068873264966925798156939958871725870101769943354543645520972011214598640610117561350656531864840827607284746897127896455727766259570143603029154528246950688673411644566661659598405038735612754743436840845523021735639051060198520740951805770367439688383013165829766194532306773742327365169980573430960890641319157339923053652363421128173129919012602411133261285501207463489565557976853631843287986081825503846883336226511094426407768828839059543898889772532056644606168108978114547764891252602928360874922028182484753353787529274355409314223077597958938897834340461850700554068927884717027638663120496274037951544545717259338334725704401678125767107716488117424692940201244115446074398795835401552385739858279061335519942536092332843148008867432786704292396240951308220811061094403187960859490133063253511528973035105861627525357162581144433076176775191136908471206999890945741061538805190370908375305895611351140141991530144953235783303085104047575896289812669838001086143844801777640702881873614046878074820403346265222592197415488980644153877959001642597395709245651896794815384192388192441776800502110832404568889932235796732560271446048650889257386326219833128832807973921966364664892114317772699476123270336371367799674441621183399659517479408425098798013013656874967269504603828569278686913599821095521013031584668242997500538165302097584016346768212055653746686538341329626748898954657563970872305196425591084594894907077450108227932150283199200565305418343412915687030818221076703031436842673620372342423899714705787140888898263070583493321277915955029017961263948433168335307970361677117286592114412929664309427923724662410693348783113548268389469968789220298588429576154025781921888229884563879678119158819935520732329672264792810743020672574503671093395832655402043193556870252811256774420790994099663209599576751388629427393369527927856413039522465675097825844638833695314542169366131224807063852699734836340216752951247866855203642930403630620591984545279208640945725186000256839645725525721245711464592200455245065762780365028444810744181841739277746925517806915523154002829789480957387174063234525350609327573706449484964315230135109299761711795843536005480081157340546397531636333247972905243357393983209889785833136361110290886527172738850780043673827607386546108828519823237617145444995461931871810335457564476334691781502689977425775341045496792600540358690813818475573032717746149119441176278854587706181123319641502296556418890643520791604147879288705273442726171105610044687933105872740641568103568758792847993190212558217434503532569218001354383023262123900338658211378327229506064231301147007924810941766409903420983850057759789639382881772401703508644414891767000772788594550018426745149034658043729155812085265262968550369132028364805117824220531983362530591807249802911026580883635351024177335552903812734550137418478704925788084463691019488005394379347908419603823796725656896524286619216580961676651036684498142976272543358676150247013305238987676593426526363691772924719936768719823577166576058755387126382827280033671471653500674989346016817737610699661442794303870235016788903455596539536951351022954024296226680824957840842828074909889783934699954576690057486544136451749042368542260016393595823695736825699624757981173312871840628827363962535393916159425087937608076591938393538603634394434672852486333155516572332425467782441917552217516365379249199577122915404270344460191061562709640939071629152555840098777361768331719924167758147659429055050760764924759780727971337125691124952835835328722642957417067288463833171407109410438689076021120457493371104586095463378410058781385932853839003886456129976941421235405418665068769342094310498819655364917584807296376762849683380225165916240113696783478793098751468978867513343920278241118737022918637279161712634066684025227613439061918716360137110862532641152745493583742341708886271880687389295571705312836500441406350452176870378299036495253597178118930273249066890933634718578082755528599513590617478641415833592072997411969431333263369598523129937599871765543937676024209015293664579350823860641998943912472770017846954681204646564091883488051902791754322004641396592064762945149853328670190294180300325892202221872987390913331385182616248215642221706320104747251886155187056890437542497966068915355465180932863824508745829915846746367219098112668293165065401589333093008998160568662340732810911544773492762893223999864442646574511464910860828356408076696898920142772092556353946207271015260199597511118978359404239959900407996495777229563895334572671131260238218070996514989226220787337558796636173274091024768006920596618662619789658020325698339054889781826857023705014576662135858358698391400012464619065217185460469814309081335674373338923185894581282026778860092982930883565452162951553431150395994162209304790359162380717084682919289226830071897464300143007118979016379525950965064845828741503745766677644376929264581048098317267093179171368006915903040321883224551577452081965945409082003881470284071270446179403618278735858124992105320253188749843346491190056901476702135833853242488434152793421523563093389889958655812601642509332778777210118608740051888978963614425534807902463374051437040189871567817820683892274147947038342693198524137834921116486093678133871017874824569728904931804440286886819154756694990407611432473011172182569677329527238998736258422149719005736672443590099808826096123931984815049289336539996182065022312646031018831404336216368311311107709098669999188395434335422857412823742966032722310656974343690980139822181583767514524348107308256561374858259826959807017066537971703064969013090539725715274065392107764948668013243438595211420101449813700747143127871376386915795863830626444521968341522928635321911238105534024259438195624134903253084732635246852598235184172009986497895237102953314911166935970790856138653183082159433239819827067783124738094978639425703147586908698714004929357116896340147435674017180557121715779875473044016174988661547545025408939214308167567722827910936031370548667986192947221301793387597877375802899582373849579033040672568181515935546078667054275838719507087433086942875683075085193395377896689963247657276814194377819602444318318409618431844971324645491328377947046747974779067465609406281597782383060101247722134977909668261522680050730224267149551838554312623314013406160358980508592049389028194259239553772499602197384645787434477888179531414355471713073834200985591217910077230546114727554242073191534799389610208635799423111231686219523876069234417505561771850924524432071711364877362967647651731716981179375211000634895654220687044084305258475773195122552470438294292477149319877392341567261242889089992072260965913443013884773493569811954067189266242358575281931181425433393800894781791982136195459239910082313252224348756267664107101973562429101508418031388441832872679278744880804275102044766688917195919122209016411323487104570278869250552149685614331790882395501950719489289033524115797826305492704254587986573740218284989912208666286046863850654505044241581156238125544628608056125499350052543496072296116301214504709640582892566708451535884966748762346099681105572862107975307476593964255260992105487068386456266947007744978503234369606709561288510718278712985248416882028768563480498015755188929740486491220689106467130307991846751363386097780683764076247131950376120254176572077674905774921316286955855225846551958595508317979357821627142629219299075816642242871826914704520787076433960955807179830866807595020865103427242352024804205732157961214427868405809411246629088492883612143135613093842465035323286322173999597352451542754730492689716860947910774258857055648838390994004364463423396052539386447045021118896246959529899756528517990214869164473311022048165059524432044019120866011473641246721580120388235821604997660996932804002890647684129319212245349124204473856527445998046531087778378479186323820586052348822421392429005971221730103288283043531489325846193542032104898425129194217380596424891745829721249411846037787676793837451979892362709600350128124018806404857911409651013646434655986814131011426210884624524465951818966558050474493713306350344263008311187585341056017893674266577992751481861543868065171226709901807620669146531026620175351512475003555500761535543708731493031278396651629269654097606726951247101083764164445652250812017890370066287522914176056349973256823273152987243201820655445612743896604454027108377733494862547809311338065006866605447580477841733279751297004691528717600997665268852346298943633545864102829048488157611981754439725600181998913787900632613325847870645468291348718546599203685702678382360361468805221434057791212392698396497573390864890600200413367035965340646535063246059406867137167886610687791161085471507687397200443296284489701042433434822025276249801729883877677845518951437234494352376206631695668585609970630858499650224319587721439856595468081421412248920097151182305402332522750686867453120008044070636074475481566737888890372142668948360303200381322696628348377192382968807934031977080326983201189442277411035940057664868516717334423193245998415291756166764687963182593682537040271315404558464791124650350363679070793645584311457403012944561875372325963115157027291650030145096722564930646473475956408194992357139031186415340999060511361070264324344161437219572793432855249634450063968408694871911455696753532878134718784892882835547242931218728926171137310053214457148256334137602812034240860916546352577228893720204462687425769317091800695609980591983638335014198827957201631647412320330183826312302155309071161333678411587056730213888166041012585168696234663983271819202742680265473860568952730414542286768260542321320705591088080200704770918904523967456962630065149332219415422018633812069956453922754112749506781840028179040259317583908363095982610817084217226739944419772404168292892136241799154414886454055889551042877878862754987652023871251081597872776227576265367855040535891018073067003959980454039938872413069328819142997288569900690490240961403309416034580377612247182030758288295220597037316892418259970118432185953492170142361852224983584011673829804280518340034254229656550179760574087587604121639282914172788473122559736774254402214553092276490701640011758552327247578937315850951053028093216055831843181033383156254259933433539534370221443650701325916000919350564119918085638694045657257883587828933583594431485601116697116050177267727620120051532498055093810116578392620908269092727305899583614885751793627930358663727860865713106057443440673208806543418617112683394396650351261408992750829088859660489844377476199418478359586836683746019040815251973325563389033820147820490262721948516278590812262520271056713120036279183978539785651578364759293658855708986039312478508571241915722482858431356785938237937190592412239666508472557106377386041629202543132003747131546320468599697142656478099786905048714476063465527924586933324741949263996275822050144364084038904006125412141493467818069022919150540092435871156646421784573818380292472530917939610752542518439992204219101864252718789689369187355519646561784076118757116348010085259531839664589894054757065973607448652939000347413402596177791080504030392147144259142477218777907658883483514723966955244698660662722334215000011864098830623527299431192477446276362828592567551422196508572498123026696345187448714960368010624774277587647249968713500437385239750885123255626735718089452899031463238012419822121019578840637941757984655691394627828307761774195210519448071453047908366267438884970243849665929954935307976880101440972464569769769932525807763515747798185745758968161150023868040042316917144707972323963301412742024744702843103183920979251702373562048578531870361049645430969608966562485595877735383111851715311032185609114067482238812819091887581866072458444636046709314692400449544628926410470550928990910112995168364699124766739359953034528004335591491966904203340699999946801620088953039147939591882483961405715373921153107878975460352961533717813924976125060956408908637882031070278042921207782329680031109832251025185513548213345417699782057147833345639472047426955633512824576458344259932877752947717683400676962077194592750223457846069407498820580592781295038002860734034758590657996559522518527677998001965117939314354530939877096790840952970845238634864878609429854482643344885151121844478875627330203025014689182034569242364570573116613908448097296779956932272406884720086558395011348027936015790460914326334112588840458215679116382368266053068397199286523017276097723045565715265362726043091367273114497619829958959438351895526610168323707744586291904040577471462852395004992031007049760519713750148024254007752671978737471600509317512782259487490270074109911016738564603458692420297048006433457481241137230809775822005347546719572630933295963646115957606007783526358658824100244422629856678559461886754656814135786654946395392177839860289397104828746427268110816725388203824578154833296403317040967992256723862853156591207575466976622984364389838397041142103377824383441248447070989017027977932993969850118171913297089086370631859387950154356373134998966682810341610184306406142078720737710084731461269331575209197455962633716615608460906444872469447040506347116335111697467879675775015363401262522230777250841861675713239015309157919055831144334200286577395267364043663426935935338983803144878562091768091600409075949529394871157991137021160074723651264357040401468757416898469348102240216812143208585751434939568616680373827984519317101783890133339747270610647076528498309385160127817789373768552051336197642907561504742478499975848734571938895214272411012751216882097086087437429523156194281072087191627594049653714982290814518287425344146462270411594340456950241002819835714847098539379932047579706003155176418580493245311941609443171865030422207332263221519631486923641839614350387286073433302681540859072815205385713669252741810349815672182334525785159462305126351344332653522185082226403771922428023947408448374888989148643550691944485321030830339967148538015912406985598813144517994214023003237247587145652524755113771402437440068717425460842501558386459060505915056217975254307505411484895276569669132541817947932305351097606676041182818628080731609015391481405356251427653060253127689656292660688353323123897832158155242347552888232494616095416854412999647005913454713762439069286721174133414720466566161470733801570864506423478469083826245578407751486097901125790190201088481415404791054829665829016667907513015881510430607143884363806542007388789222941031673080905339191492773817738127941765696325509325924786217273238811453347006110222109215719302691006176003445673858155574635671624717076909659728839207295580662129805135273609236453544743793773858937137357529609943671066174637854692822645728738072245389965587455240521266692102484858221404389129775545355572785251923874903390398883774174233400117663211687276201034059709474648433327015738367100976690421361490703117586859791404281099457696554475331281586608348641670254919994897583484905007013509358214278202563114858205458629726762806709391411413707767950876214097481910462580236574279893505370956678586776597701988941840809700759148642936794875438580984050743478998011523370304632683853191099403876918426684434231546525463606661324555729756556069720967479432606780603971138910900983810844301622920462532812784845469082095091221998635663172143554404172568944898530123486560838545700844555368426683770695191760701090114184446008366523083885360649909485470191909335050508553810190310983493481324936982642169286441788908154856589815617191810229143825181502022297368274542213699558564636570251981078875633232543977829925334825416442228258767009938619393219666806664412420456501317566171605175182272500875272205559918392846697225863657100382823090814833473472617924112336730453233170346764324448881628886260920287061256879021509459622122459734956485738275661243252407052534559651666091868243800454992714245136730554835431866601986769395889136723773555352678206721428058762598368150946292830507981558809572324750328712380182223192292161130971345030141646702529801810625331343650619632442314368193560341258959655803851424212541710493006486519448535275524478294435220045539397786192449597100503410408369707567275997190148067049689627271841534553366979146420757386287703310140378017559056750730832546257066798247332798277189353517556422905074981454720941631382506175260638891446528996457868592359789058850518119370545105614062274696303604864415550688710405729926363282740279729740253035322246427556135410703868250419714200212052528782792012239083042308535528197961698486839767720593025010699176935925543520183167391612835699720526002823532443179718351939698883272202426841406655873169997656777409007861010180855065424491427133751278461140553479313500635523315258883666643310490914432277149120771133001838462752609736071030334451113200317241418816336025421135014495850727893456191998254275729188543769362922680449904512938453431864179498129101965368065633708445897577680975311844438443968949801396710679164647797762009581944013697605354987165433556882924942688464585140574509185299356185876360576000650963348127534850490851214895766052337812497189535944261411656891127076996854328020772547209659747643729178633384895765216883629729717430960507295483423053180682832516926578678779896561928036748020769889979045759542358619219831800859162270440241836839812504055781541321708585822210073411693812597261074471813846165919957276822500201829622168518623651652277152921267707008144817609155817262984176538493062964695932940705079158158705660487982459613165971089785719292521852550616222822652722199075905629824694135872909456244410044599371322691693164082548785960567590944307661780354469338074455487918514951273113938152460557173763204740356138015745777810434759862422196673565457196215878035749002405328334914896655438133372964233378384485634543470762512590645750424946911207794612696949393959856450116889932476287186359877917364501073381281853045260974669520803507990160834539703552709415849880713633659666689772885402674312760722151265069833452129010321656935982022381060979460338825715503191275560817991579234414794760573882286230207250364697193861087795625277129578425844692641358809165425787152032238223505015225039482456772936125642399387092340039621468487008826414350398444354941547795181629372252709204383402570451643731807498854627493616080306207599249543769094384426060968301599384439159625136199337369966619115545907885069304032237146889306310169563340586425422700789633155128334812858352924917742721282032488118451395842565066102912725576262960331064802836592367692769915879256161795491812501659915163241197725233379022531585212177763149324155836523647017144205568205891550918019502063309335302188070179104323226454054478232544761407480566789577531057837765870778314251567049594364555146673204299467341045034499025803918720089226320384271735049043110659299499159047489640217028841797792178171736302681773227522096568891212853434135922037752491043449946364610494303629595984808128307770275401825503788745347487664978117922989471142164399628089222956720702535415327521856367747090751313316359055353262031240675898499145751003250739363276177774699995258153227034166870792614725891767870876037887642319155425119640252203432736934190740168072757314646735047157680819013986083291277962292161801856879364278542359984840409253066551296068329131162590293132394845562788872011521102257111989894514144765800815604138059937602615483525792658117091681791691682502292665454886860381374524175289649831287556661550438398916640773677135047169391076613251474796843214557890207025680081198380201703882967151643509435926400551801229998135705530770531267353345794202609053185521618984011394449392895377835856441845277817378437954205267360167210112139340451789149915606428491634501113307717286773838523026774145738346451815214931814829247455462017443837335959958657390506930947896048618905567293287072433301347447590013415115665477856101635733343465616435633230624323488927713744265348466690850446046095296846368164112402849129821323825765278070565304355110869145021104023893114237415142650421457548647133525670845579924880613398356770155114147663705775538812778553574592423126900200821770917668337701018257654816368096014988450563338487223580062710942455526874924771530900093884889075831182478397845962373805355533441955752297872408478168023961990613445949233885213782352541916364301476570089976804867145618263123060804348259470436681913099585537198505523475247177160272058054282961719420924062341113445473102650470467916018724848139609351627777724016327012534395358454202318268946825007639923118860434494664015520670080408774465496749182396770848747162547892417489573034752206552338644612996742835802704422381954341831055902705738925388312629002731651194494691832869800193332235162691147760914192773520401972475291264835729251478934892064912896499267088841141190557414550405937907243535572120764293061883802261480532444953751618971647243973199956296112877409240954603890156902876902729247798974965680022670355204266573458059668071189128524821423656831519473641323507781833254134602119912746641612952931991044073785935606287430423590443173293714661941257150770641321559404945141169550405551769197505785653519549959528441926725863532215661660030609584353103583428303814017227036230029246668292054600680548406945774263921294723192044553040313892976197071623168948238285410905274303137135608047431222036537406150456923679450545284985647517820168359738217032455615076446791682599406140721426722461603694541840599041709429596506842392547463620127565581806663630928056169970579314836109485029902456416261873317343485949969284208304306825463242289239414050836822297017952908330960431825194321899231463090056786181242122528821938581107257895145194946047617565376490056651320880109908703096032150934741544319131142771721562584882136090609468831941789670706205698213417636283344554749328648812397509940264177548851656028491381080900092027838763565332185126406502034251072280956251682590295297023851855524337783532402907576136973355184863797430072598501685146515537531217989262981050870648189390997903632952925914115954290705243661212012342862199632606686809892625898729908420847338195417647027180182676396058451776730209222088554172378802471175350003525890371918724013770736382166833001629177058538949496990598283055647083487579464931881205792661804099365468237315289360165479900761420630379398394794185131691827694837958960236166378906372955929163672050093020239813999481473409564542283023709631185991265303929362616389560133572923873652989188542046885548167613870679846771207653128567328262171203664100727180126956071842163435144232771906527008083941267682986119329168476016852508334139818420193185844361410131405955094071055604065130520487278396184554098770797086774135501437083686464741573784114839151479355429799280306324097060882302644453407901892220171628148605098232948446823068736938510015840205540813557683578670432191814160822050508674370049186418249981710798111409088601739016568411483437391461591984473106073082174903962886539398415224031223980949121932765855585943222353093286235965121378167484058044290438955979774806079237510589451394132025754384039568272920019709998232280856499046780716390127354823565534571592566729396279352177566006581842887390257382908531474750195886439688301611263698442580588949824197227499971854442615322541942506050299403834623835815044044902976871309020634219876154309001019861932450883742927444312819417869544349560540333907789875256212384619996496130428639594905835051580369303768764910943503832308358268174944681357998493976590515612837662368777805243104812209747748127245328046505120252229394392288120486259795778234525193516031162572835431107950698849161187751342407915729979284203334214544634138508747763357118824380595693163339306123907958162021860495089405879672494496716197563591367505253822840896649618122656033718033175108199595020016633302533611024120023197345938609899400828350265223627917781357978515951030616278088950817135410096137718700467731214180188232826813485462728827429910818753158462685118267517615382845490282029977016920581280252582089384997769265593811144131633605564827766486641222526739817172581739272304102136118891476982317091028427953535936772459492792514854094564889692109427522663025165772313063218428609029311174701849952741125582009839294955818506467288211603776503053787665458131291653845657562783233495963927953491517608475832074591562351303830595827634906839658585895754806588911376264000417429125738685807578868415270481533661081406399107613642758276135980607200521365772596982247864986572132570246640617230237952049225306869647549202724250432725476631826209501202420914247166205518280662661002664944698639282885777482946897174243583341475581202137016737671336620402915983704123280669287514791548278013744362245300215382142282434011039060653861579722770063190220654848862447366499316844472768815461763073486316247505754755614180363537381940858685568426721483389270305538704443336521818489308760608381744767484702512697362346543400854097537405063895586616682406503389873370473196277852060397993150826671775595913868997458704491661150741350115181630328572533917310610524175428776703664453284412120220560942119680898739696810559384037201541822307097214799239563341610233868249290868191158622530940571863468984716578888975540165647417252610244685041582620809025756821943207749565677368880407608777751694226658020234827646867731639699090793973483118165192315598845386598941865023712274367625407165780403079155654429489209539672736245125433730517153516015280263016787909138098547062874061739740485091007090832638642361889287853589502871821329805379303097662856025480304787399787193323688576964071803264330437124669353944705797269583795674283436730166819504637390584081008840502049377087496383620498111607261261468618266940440380857586949370264482366460120870595649037932956196935977957607788268284131411586562087364024449716277506812274455854848102897070874609803018995469191723668832433252889179800915940477180557012549143134913684437518730202680435478725813982179306962613394998475162054521617563969580599220569791442768171094085719982795736802938987687872195174035267569397736187925536833905915598375474215410490247147484840170336323006782840428311031789247249184182163600760187301170060376351652451843822732800038572565068460532989283583744203151700438508346277664829693228846554827058675553290151052645700297535558565746735792369223513748550929125855598107475855694068301635752280746748408471693658655717045432066454277707315381869638511478094205920561118156699982924614257035188439474493467464023018933367713538649967958142082000819253612599469010329685523905248668183440592267887518327585766013494367007463169756441921616210186020582936554193625498894808062222702645343770981398450146666037772367105881355897182273107205900369265170518684154455892924716212046307806292924285886504924372195396873554563035114618778014429752541852364761579343737567599628530531812270516057540589629604695454494142179228016442644352240547925869029881108803503681524945989183379193919604091004335542058686708886775815409922507716273872969897294407123098134866508446531328061772190747082955109360693203828387563737081530815360448469653738992746779186165419365315789904798820270618779576500054361699420745764706883586299867090303015007977353006023476222317798190580417640407977258473807872032153477309419717684977162246001915952798636164912579915567634097334746653345872275629036317646032889893818812348234663814967587652077268731751433118857350614509418990236606108605571189870006361204614903319300830271787584477255619303035376032459455076776193431010935635762601479386884941235172425275609438584757933887081425181875455409350458430074583532558494146517758983690531752333209923717739856821534284029199323204226990067680888357066778684967050252000848932802247996145878922498562959523350032464014920773623797944291102435856450800048208983700798797906708388885750407074567374757972625710058814881989728823434066140259185493893823481014116509123535629355800153578695764536191069047615943695405941452654147103748552977906453063868418237909343451329408614451609806288208793859666016026625243009923773437844477179344335180865808811285142258501840908795202712477064999858447385258758007091141148807607678177538666466290787364537575390848960883306484382860355760710313920083472924192903214711450009128700250398978143114211925718352789158784688880915074575058524820068039718715636525928340823499540533952096334446521867472600813659200136315032659774768321430043934253280799141306821863432015469602123185968876502667099319457979167293611087708683146614005605482596495965749804363407599376961443683908629926180715006886295626318491216654442428527967684764982490847331098860336923174287700188360525287062318903024845485985128656149184593246824722392400869606276663934082627585685606423798197431205634694678993731086217657413068418344902398832534969520722865737097933016280104095457708038930558624091085494777019586462323584291052245573454550525601709603416250330899390541661432705012882542148692438521876632572201021725703041647038456284785993847647872626730113544650519990097868923293043288157212584891056081203964854724212708868918878775414225525606903867594487412498250466405186660106569273522538763047730785663205032318042120611986590468753259263748424856685657100621763566463195973077444413591637231932279737079069315700591553459391926054410077697015088282409648977932109326865999903207553206267488715217762681098834438832548610719487005279729922259870478493589622635763427012849799919152532981331100570606234987741542036456881121110903567219144181039690455195401102583285326069297006363986372124524016773089057459979199092870973462732225581446972798363809888455354234184446510309596627599398795088035128126251101601563948846147224606630846038318174553535817853504745195804976546778485189983754206438545109142053573321704435829912853765390860715028430482961187823102376006016776836622162041031464036070256755074882669626891462737653396306885020917957005438326887611887634125697997382471811394688535288486993475393556426669883594460670223319967103383747501684447439363836587206658649987564916813366346753815937996479574545780615235172841877051543964983766947638077831153696033890636996698333050250600130687656005145184933327837115887807011794900951072807988596996059026358487938101962087542382647997757810306022436800835224173545500866810977289423139794645779575669131008446611690405951848095255782568804428908360934789845644474522081680499493241183894580871330040426572411207596847979419657089048796291549310377739490624503025798711083131375367913745461153969886513239648329775513654486739267886570623125810757659556421999567086221708049909833298413681772534282980004527854515334601191147473956902036734393275989742555026260006364683749366020285612026518083198921314558946198208987088147681241367860602824064548767094070786263991661438944547001179669541913082499874983899188625161752176429196576160913627015767566563805837432976915708212566003577626578249439196080650253476046403893567169781495127373255803648843889664620696732587440978924541785816281992318564279190259244798152495648688357366528433799447828449495778846296616847072984472400860004295950460521885148023607724098540274247507885892846743893305700680532162689557827150055401489378771352429209648109977935629066917502768460085522302914611893558910685448749111586079194315362580661398298727345109420412647224444307670504797838005642221364895763860835431292098739062474120837159007028002042659138509019312523633777347807383045969164673054589245346238017677755238607009814935571308518481166787486033814794563503740128969906820785562149460693643222376646077881810317770416584366208855931205144698879932635762492221150221968291610024165198660628273998482760717043869806938548606150842292866123683177575649032562857057173400019392285101254125805281617825336711620156658046669687315357113644177352870156404374881800584663767129061281435670847621856776592865546103608165735780104742864794854215561623624569658080769143419409413665627817240853656644281779527331922106025639073560025991105710915250988559349853648931086366879679879843489225531829362074283429405702198846611578255502028044931735655547039435866251125559648944515930008672335669575026215678398964069423428563913608731816517209866307591748208056446380528421262100860902124884803309591715364677473785962284811338848239685636074843581826473049254602103842088003037559762118029894172649832380408355540184976912033252545663737333030976520302860631982722612003215040236341752891132355433932041262969504780402224025351665409543267211920813227410199027480889228135267692087555873478339162316687888753433289603432440096328478967097379298559408037940061764100542318467480604799708676551345500341765249791954979809905392498099641236497183931958351736371323855222085039153252944598943906917990450778101065272360239950259856328180660711006339654237729681210383223105141999522254236198608373372971322974263267047291268138517091628776806349530933774455876971851986972900239029623566210339385365511828412703016201670747369413668753848788095218986076423507487904875071994249312314991203467354259904383506113988965483881628635083367940856101644894246533350080873081230175846561509009551976291426562097783594165423120881424648298150213411419407145132941629498066445737192672600142905424954836995151439770664758573835448696099127866902729131327755581626586280178205895952482367520526533360448794209874939206398800614104419888866119987385339157918818367670631279215511759701891755691330324810890974137978974335802495414618115505386770598069276221702487528842996359304459977207946790672068859554143611738078934416001639987264836979294438583336498084439008000404305341908868075160381608114549555626804273487663137581914892247756002115922712002437204704933703618051245735403223616474445160815081265103767283063690307359341136747817370981749090954375530723135897183809709945569167053436984037227548498263614904644951102927829944960864465288351681158115554342469934303362337076152648768658514256794775144509323041297311088973951940650180571101602346278669897227529579535332254374628757139147519173257550666777232768018538707792269710298890162637097885011657536065891353304112107402100678241841049242892437060555931411610056530655434749138465594424911892470515254035129923055903638052945655341000598141329140593475200764197527107454987904340342468487950535336034897846847153409353627733784559610267247429051518311979406066782504669656573371890526572074592380754744177587537382613067314959529543657717385431913433644033777758586578225312542433542480897820805229116314689806043671175963267481669200041930447126549295231852328353127665594668039727602764728582766438785511465772447127875511115336569743870230710071455504228738523039971972775935725743509640298464503421135066202167803432577611971670122152496509723158748157127210696713181359069745150385658470318649748034230234875268962847945391625821489139583242911017524536180682606774695468568281623729683679105799574571811637322815091000935173383773434834649446313514021755968241029913188375169606317842225719713580034976487941434688702174900720069171841673318882741861686615864361393350545424150857482729990599595534202777092415568496973755444637596134113512909887202488038276093398834090931512920942072628578003698102936293961303133598882344601321517004098565315679039513605758740485006854828800959627511491193980208201077165978654357313522609946231253179688725107354300558250214138763272088445571264945823991588179699197327179281012851450584156730233656445992476090537425148888093331824079689998401192550199993906847242641473754036061078728115855341753499104652780203815924945764090960381908834023010858455493724333858869201512499294628921194261112761036738608694245964600600315826229689632076176096334821589765356391900342054348567266586652039900681879540378617757086894251147308834029760541254571733111549301408499571919559687573958476647634348125173266547911404964535091062604838698087558364759252180854682115518480272686919162395247970236687220475347044708325886201740155702913418306396377705303414549427821859831287716804823686542968562652896041661406552414896915060529360318269012720283508101737116223591270893219671715908403889472373442476091593050146373190920464540702035291756807627344934963408340384071958952775012526014448010242549374971967823649119870312092111358557237335122908586445404583810342855248896938491130672478156990619053193290457713595827587291202876493082502431868794695282393882892113345574154756845386850718056898167726679421639684428381543876705030502322144252418308963214920025125825276657616662056140030019994820853909473869362592775860288576781596510028835380257474210625382534173047210886661067962645268838281197723655739237231213392474804490764289967707824997536952941085616512879142553223587307170459754722062647689082674927617178851654471584909226071762288917104619440361460367686309566709134776632832825560646606331669061590892437579050092270369605683460483990417011854166850167812265849786301059194922596812643561052835758490251986652776063376947105684966347743751506855163224854971246392160028693386862165936324513525453795503562925593311100543245807272459101932498620091294871632042730128050085304067064928134883924858008666409292587612110885983152127188421945386335043180248350464428954221387102076054931449465920009059646498645147112600893688856263862050786097412276200639290883065077595423910090598123173894703154945575366617369461925295592831303798171428110687573866058202794291844822217698158224489075163982746373650038079979280287381388882162015655239732369668515552331829578264768113146164016626412001673805095601162139722105028809744798745085207697670841404589647216171875671945681149134812659820825709887082357734277625753448778077401875154736989973387303519309760009048953518158568268372259775643670056932856317868146248977432487020976446614820120182123444562005916138643294438464716173936886936185610491507060940336351585644701622967768084939518449008962630690120095580322497613639060081435228845530080140156441018951497901993426551726419810367620423548350409557171120634474243313709126114839589731399362663495087738030074009796201019509838753122364794175194217449877090583993768825901664550743689339632001855326261219847640691137943801509135522098084472009460161760360427052637790050790749009461635172946782408980063570489199501057573636537817046862278720798866909374334651515661622687376201709119050578382712780418170572055744003352454869083309181545320530793801529354972512498087695079958764271060035942580155975160195618696971863355868603962394027850363469915165306048878581956292814110630087200997837014008955966672258535118236294653248069006103199541621839062509738777037704407506645606682340831106851381766208034104249806197574385197085069370673556904363676779951048819603027508750572144326575856222684463342451404701216705740253356092236599859479416243273342280932805695031517311244771250036503905015776514641231244839110351225859334753912972678327354823474679886160511769408108588963309931945359318760588585196872896517792052153828479338240568420670083024014110369507084915775352393123203494724537006018710525879869957804623998216049918525018359253438562404298490327430394854894599540153464226369470474482042849234123460331121935302449553201133490796910627555746935920841127294559117997608384135811781552392698612290386262431200049721948099680484789140686014643617354036104891243942979724658715327667495340094573943032615503742456458208662744358695714966201530855212013711582074365623207045838304904878779160335078970039443311911987495383987066863852112738117456762287567120929654967290452993429208893103463118281379346069394516820079313782438137953098164437120148688890106668342807584800291939364387807497217604254481075972519696739933902912714560936499814950563848158283489149384321660398442141958665309219884135454362847637755000271361870696854303699298967176014173827358389660984603165385236981665852388084109260243201899765545625507085936282990898651357705367121638765737141518971908637056056652874551480268576976547229576378190647944661512940673087205205230906877842062533642629601510015764723931709051909459675286690070322101134142573595968858249789486174537391401324470647896756162339621433400757629479133139297336948413285636400978053359681459553693638501039038904428427157765763960071993654468895777311416469700722068857911286930181697317953986367161357815533107857699883342229681495450664752355839606069456316737099310039572076866927528452692120475410136694159624703337465346283371411706184791023597406595158082230241245596051611852409442858377302964558128663204442249794808359115746536778754701944058014687754338124692107759213360197989044478834754810924777305366679308820063053333978546954728227929941644775401702795799134805062735874121494963952883106912057631021268048174722444767808673999373251100374929750194961163866876384839548917176045489508729879096715741843081142401144269128828791098058301222619975942049497342732708538851310501258047021475515943131036634867846492939178972100581657735611990876786492155619900081502901324074687755989153618712538013096828196388856306292574450803300401037138868301611423999334311090394229302576342921322842457892853877824886949093053977917061312788596404687213555056244307880183982447084874773940364544772686492196727517861604763130381597936621455316395980158917022143547025514491474459702618917999902896563270947132977748111548314997757188625081268188269606013281217826224263023292230277785276331914184772840001938641538952273013659530308794147094875810435305275726938172214726559276164758676456672362038978108610663620730898392539392531015542008802532464669262240175440208227870678008036687054331364750502911595426569725609183190203111512724021338959620879528966652801635344871060338074753995603761700934588570510972016013985392092287629037890227115856818062031094506506747827528035964163685087458890040620507545240838144356480422584570235044203409969932668167357599080375737638326824530551174586397987457171319540564957480898278348366828392861062459562992234817430368274388360494174411256841862588731391183694109176295034011172908061101865947893272515767232840486923366304729267667310576984514079314300330053978130848004832383250239298763253804198635664802589186844231071427717336671998504180995701543550320604593381093746725782545783809922810111227999345218625385668006653715584772526796158859170978063094959686816642076546431741722993598390141750965924086988579144645552612576885960276121081198702738176324637532769634709346165576198813218246816744009348651437369165171802374246964295892516278246185171079812715941255093763893411429914242818666214107613698040633860046084120471658336814660213273995374489098236446737839559143371549434075044443395821304678953301998793412314106074824855535654403103911087430326099819067699820878061591629192448908142027718924840816125620493260172079100620853188305186189402930989128359747737052686609379106317191923524968343083856767139819850771767621182740522220571191829737204470538300014553149499816705593414160986470580078407596796511550652696556360888935214862285476048155475028978080330939979891189671170882603133079252543306206379818590852748853815490121058707478526334935652254294740289535098854132909035412910742569402550249520084599427567991788860679217024160042563653585766549129764104198620130083401044472269494222162660973207191948629169100390021819032190957650324315020844326225108297308493494632355034762928416530270033225946007642721890202123690736946468624123150350320452832496767954693663488110887400455640755176259334003961924795763525286153586463213877605175194613871765047175281878087068456837821613936962199803816585222127394475275954549546368180772054352751866816048851040187679875374009988125542186846571535237165166198324142277808870155057837803303944024316279058898922386017853667411907891303238202240230835394034049013980311421475618311342090195251379629572043103325457268185028015789494518238303753600326774719223613059095114477396000648939176992272666356029134463957077032287060771627503469913197563544912805331558141328673920122438338389290901813370860200992776195667637448082606314862583181117270093568912656760802284677074305738654300985069501338936991927258241558469460245233536906354522710596247218819272885534081115732117115804344244194175843545849826344393142720018833386383701942970702326487912408638852278226981647676790563236708347711196306600543118722745355938488739481966951690877812487236103543757085089769719794443560337334925812906539012178729745665457654983086740431535274717502642875285084739155016452956424474775747720451844735499405532260515300221594495060920149112782792071364580695246413701308772365326106954349497744909905258342231334537760522082423872514534288840126267825419973480579798281626467547381972608782547192314057909179765841871045032080991382384785086414095641628260514506672413236168513775986181791541892163346511442931933573985438204678428644093458894796669486446812513377934329994285490298962494565235848532140855817757422598801169751408714770526533857995690793432550475097928741249591910381591370812120305640067528869940612664159832906448146725883540437096729128009960239632957062174388515892727419668554663059516508805567806866552182132498567082427229434869503866513387109036264659005054429074123682490989950262065698372790524612769059106770678332199596628072794572840825579630737159219668537013049053029996532314623565650014487486751843175972310602218595169432375593751937806309146569446871705155659222531162307300116498372653200090037379965260052797090617422719912150055354220905981070605827037526529717365930256100015527879847109517455309781469049114133080033488925780602676321184772913940067765302588692223158130530171465765213082256286915811907484368070792162350181653001004481624362968858302807736995222943118224783540244541128801212730404631708913533373161142333894357242512582313716754273458151365630432096485649616879061132016136864087180949393441407083741437142615718098246266935794320513382467703132405060553263319967811313435966024797440539084034928726931079141458726722931626102540306683601090230629766433672860178513657421003258846433875609963840488205035670580496273779981883026812256690457053480083538248167107857050427419143140336380295018008860439385556175208539216977848825998391836349450562730868869362601131839365591797325482715368137474777614820942862067092013265891683557517518191682471245473200989577198187047551541348083434161179491814387625445988307442651506614593630265546306753215482017983560830090913774949902771839443306260295737056165949770797394785921038208383244738661535788529801766924349811091776551954319167691225413729169852365447553077072230721036934407613363060896824448794842802074963026295972581318784942661367752356463636603483829189851519730400062839163558854643581125151686960250340807927263298603418091475976249577730981843285245320903201396034956274237890353312745579018536077554926553044787407980384403891200924136481261680876655038172727278370083960536371146058342911588953917514538949355103817651431743113656706226909293537551229987602633286228657862644837154872825664817570236165418241703881111757670637534100561050379075496870050398879529865034151652745861184595589226493935894952358002193772051673730052340857179107357714445407519880390488220238216313803192767283853796228956391998348056033116322792917545417169015296463067133202784003713768588638530841040714131447320852440422583725386704856838116519299455544165508751159554303495914768394111746243377589451569814544168196290256677448800913848244824683577734226105240471012470453823572712343442168957865907975647055255181710613316163133160771025749811588315260458956544158331588838316353526144159201525431240317872820532582973125379528299211181435962934098341991969726057818641248094700863066074746410056504234885398152113927592916090572757828085371698242083415412491268094796669672006015808997556095700562070215719741135972055109868575784642530608482858687351522462093064386207613032044706932020623412788643373673222108046165240840143844600314437582761402254529226201307223451509175781499067770963850491617579064186665459659365777753886055337562821090851633761495349161794670511158619456621705753316308482765427183166300502180776790194702963042259538622336842663361033016872242309073961021265723375456976582152228154627408494160742631693629877527639893929952812314825680170183127306655900220658595110767388213807245961155568728063557821044109079416632868510991187926643074785274963726512307670808730595945051919572988454266669751375021790547671211587616564691832695419581611528112416968371659320727345965746419880392946390467453471725912154644680742492521730332068095424540358670195960883871703449082916148048915361649451914779199329464639044220191859072074964369938848879933739758916737444789306843025520204374047801598171201160797576949271809128649867386777405071546512919538988184115981733026950551907506277706454489379092295936766249617563183112543206459629506139022517123486266173172444280398139496512485624234772913704523073634966415525667969049619676527499995296143310530077062916057859719758552840529455950387153740033687519382894218163354647922375488266968836984085528783919447526004760917438315905099586682317847401529017031094489384537037166655818577247833628462726233403070729772834907646486054612897876925106145909710097209594106193818022008596756348497034035889803158098940346950749485232155999513713804760894057695187490956346888006013822422141898425970974222724879240788384762347325349813225541583262803374316217444864660636366856404248939528882131943072593866349790763158479644751387281277947485320288384541691698139522571237384418992601315031332245579439917476287997164702643017838813658887435027088572143618427045607504259623093883411167355368074325525061299908289054174178469514034079758198953368752081622143855182850930213406144851433909071208173608004422248752054700545894397791105135482701270576113629239026267666135148850109038751316548022079239053267800151822968917512768720017890984440342667333621934588452932771000826232142981692954064847321761429174721108640770004866487932578776301221040457501440748145972228120697111235541824809481832851034647986858941181392775268938561987115750675092849539991151981736660994065971149047599490319764413905367354564274853199451197827741997569416111275459032415203483785257078892986899062564948805543861080782697892323353588051692921691926885012549691663543358346022058655502546126897577021295177715641490321854067244237660000537005291020095778778280049733103194630436392638417676234053628013700723470547712417131675108903406056865585410023369699827953675853388347565505601185679300265629404025305691386159666491233761968265239560969199389337587962012587526545851287722612271876109515208365844096308225404655827066270901536665770266875550026308040876560471762207793390579325081283848876607069864361159201640974740394933575116095515098795273666867294892677263382348311599661784328198727417869221582184558594228397040459352890924553767117360235864275664063096449666803019390556304610190971093407745739546217384286113520037277408653306460955566277907323871313246319337698959244438842534659950380108742417155686760674444957612516226185469108626366557450474400980511103700592606759297528278285838500494878289652657178527107604978716150432936364888171005099572925712053614945276503786294674739759108742051027693078034208238566683675561826066319319811697592231780643237284746153172421509228902933275983393331913238366778515010378110916647043475369366650446273702637557648441304800167364570583013107211280642650808124677475506599624881171276619662653445177816330092841513358446717586723602462680292277308278215600600196325040096236885168454059750282343523144082816353301837554329496371503794793886433010015419111643918481235958847619306827691832528626525501757373516085123719808039799698551174101523970583929948430305978968021563849547300369538139779162377140246215424819545124004069508699081238284250364941475337537834548838513579440023274261383542038728427120345889639905353458829191839728851708636995026291633134248092638521808431171744532288655080588320267644481100315677250938532592863769189041586736551063693453363853487960091570023903092665598229286095781047551436263830337136677278627843557586901389978467465184693698827468188432086449210186528129298864552391745192641858476035957722772101505257534402413439490070615529003895683799896459210291271197609298614264590419090737442014004141018247009826612111559829490846033457647289897508483633231967081865071966506357304375820217716178167212882316607742145320297985256703248956280388394388732998232656606818288791346422509866888089324677701493939516849958961194343655818734907801453344759133021719722274745272987177397005858116149246020750682148954014563485580821038406663579167115688969250398610209286524540715829364426713396437101606440509001512771950879432662810668946985518763680788399782640611577259290261577362599213133764872370075723902006664825751800487934608917835922266712126509279591955562352627721295774964015908226813774631390205120206049465568862089964923706719019417710149011423003054150614389125003136875933314644175362479919146563928372929351334533082435445628179162601426953819684470130490462773169565915338559612266022587504667084338245989244537350116488588613329220814409308270206641167932065053195294065031706007573412047830051826342762660273130538157522695819833940836619506562085441271118952594381578148050830809682826590092297340113150835536049842874636493532574472965120479812441304640744993959317311761701205105491292966376277013786714793219794448605610343110266521204855843259100918166014453282662797914955459298825294867099977457892679844405956777388439913560143659970344095337073541315242449349229467679190774128655619204705988127940984729076164245039379472154536352270136975568989394313659750164982198625099517579355381467790071205283058484040118367971962275510554999566377459854925310148534309729930364387268548930031819465816851973158748477118655699067990229391395523384831868732641348678636930104540135607459797491865460008698092159556610381662422048857710823985408420136871371495513482116936420690097015898569526418409922806753364192983490686157698222352453240418217375503206491133053315532321427497009222597616666160867086872760994367835552667416255953004888966611959192174746169923813652038308344048636130344502273995862862840496939320443515908051388460630995057831609876037491215556655171474670132974771642489425328254693798526052146896366994805453535757773943063116275153165752935717706844947930529024354148892215625818476558198791677829608251594808711252249465719992641356177092760985772730573032950393052264992685653411463544762498595264994478589024581976337554502629239405680393424651903616647521738146885966338180104322519680930703591565963563092854572193131141981365101494348085079702533392371067007250960645626491409753903718190003922789189610014050120125412595911296491882278879429700489831451691534780258820720069593239832242202297920418183521213736793048918825762152151454120695667406355744525341713816894442420952353215991582138129115011320540507195038330272158338482098476235776451397217486516384417348483171803165790363115898553880834022454496900310405231747365059428286346496570437814998666082216994602556646665026082174522478384318392073540953827608428656787638942406576732883078794782896325974424252666664227469187974077444704660252167850854186762797029666289203749388341477148425159467743452778989181669331766520583819083467780083016914531315406269991206427299334012507113711472575795827643981190305172481874966732579051829415849553024750066292184354784157843057293765222955934292517732939466884305768243321100188607795454419051939921965757348110592093489325735649166936249890869433639881015683520287028050277335720907043832420073969639521107689944642284039809645243629719827610144115793578594422249692442496052527774476874098507463348261659426453834350976354172387399274603718670700802532922279568668992519573932159915297083804556105118805331486698006513665039628558258159482991032939699593075428260339586253219587395740226717655144050091854498027798359475350714166182004144739110729481117603500466887446688514077891483974202656887694441651651394064599450323194038267404047746444266888033264786736014265523953689900430973937190226380882038596842487974431716296011368387234553075635729884496429175623235138547874228456049099113451337157687368025633971802794611352352806560297289284697812465462089599425827479545607075563253950005694143517589814379053294355165809898268713111638959380029315196310440658246650164155953078449908420709575050528652414227729148797992323674850984712728700046160491143720613052349062299960146615949652917920868003749212548561790918168683566564134427680046500468798247148950981771479705465189301207884227453375895824842260430135638168669928193718822729124906951291792653302442786612866045629971772213330346647092897680851155772980247406991356787178481564581089247150539061205444622856679859941306753795030835573724015697099298211695595676513410539448823192485308997150067618081401643366745757837660684568384000057136072803402694851108037753798548197892197618446623843354054556031789976220311772710847097633108426736188786561227295945564072606160005373487623937341428401352975752759150498306625526337527631684221835019889796834087903697743659100704030559481121311759556462503575685667955151619597299569572674331559113398801792768095122706217855512375611091274166717984381267068246101183209098253965481158422154660182203087385561263324890260559325227692057592199539703974566105406886712101474177459678459350520793304960343932471046335231074908184827435520292539567040259351924942053206773878637086265779621190925656268697597710423090040923459464517774225773241949249392577354185684214235386428205573683110359291516223835115133472572022078018758675043422080588505716496913671108737482688049846956434472017819537850705631332218265891416524546721654259286315163768695420044121888071114188329157510464742682505732654227022219905885402200759274338582301291281198595745761286953897510914553321275951587431236426989854201920698514466455553968703014339507828420045071655988805180686932872394951402971452121667316976585968360668524997276035318003626234006218828875368091189018647514708888678903115719647054098706765381665260163075648221849499009795025643273135944072107200756341053124392263993206876381642660531667081556257472397135363112956759463062102050567540792351070668899454384811010897961906597133297445563735241160764294761749252234709765902962397519938955961255788171816965077068884201785584651608804215257114561777522704240036315392329491392238451770821040222036739599441340313702024576080495990730061220211513509573063420331890997588223976215017741115280941593603956119448833692556213324759849300550581622552232444431949928637912399302585057838881339585211705601857888426163577497553998785641099467170954224877943024761240301222377050740406198672747913097276170314449876359416712882704694959967474147035287318664982553246096601526279146967784675016152271529468614418438949588053889131623285735073003858741640501783202610018745904582989866533799619439624919041686152147421574545212579719728820028668181704354650467168549971391003880545743106755033591217869222787925102575866810047449406403054416420105316873772621748721874480596966812969312862727622901185889821520518822999455592019607435619519319826834926751667853603682608153821946597303095675678818710178890467958567022072112573966332555224173052648524659866894760506865737053640523921445420342439753672799875344775523370513027490795393982731695973445464953134147341583340949863915628306071616323846284325442986109973475990334735937201697885771716105665209002753457094726478554404197412873479396685780155697386951139629253220021426041060499814688809034887420005830663089261390768138665299934364713817891985947817500361550942638478303103207850239113664647496204197249300804078295147979704832675937579456038429791807872569415385169961086236642025219487262233214599980184264317243694357581415676989691780301426512196595449657157458925207618790471728343893609663121004415266483646587658734321703411296865412332123811888601588837342294744466976798756293318798751051795457781374040855273681336496737097627855326179403693486252665011133919703136535042811033219667050579662735565803227969403310134909727441388994999735814708577469172183588624351763780258473139503851722197172232017601984375656485018533371255874049030559460235121213529753235008168507381842159531823431863318262396403581799312212915381466775078601473455002550332427215421516533193210851783453492242584738676533748547517334359938282339112328894067869484919911045137687593576894023994019337087378430308296499455318032353741773421746509244160436682269763324873123729281507191217777695352392201080999019436398177951463594360566130676960601686476109073581347715475002170115052542964347719845056312411165986812915576672409383513860551270736034750364484264012062987212968433804510318495423506518272870056880418727847084448837924863967072115627604762641464487427261950551959568158641330264560876728987399014131929121896127018896125098576499539891696385765695592639353908427259166103382685119918865422192247400271425914190018538643251157267804996885421896377027749415048572573419657638908595403609612576141383222038705645333001569951712822019269213955849005843526034594039256767312077339471322038810127302352041907742806885593848349417236552346458708373399799278234401532857998536638955388599599919832309034944515338589350724900736531641130859979894440580114285418714674512958728947873287598617272179825029089199066039002859493747607874204863500610009448147678739223496420376452969193866604200343772331772948203103513506721274156865448627084518162005213790595214942580838796476376282924258267240098380270733354020865324590955290521218726177220427008308436942515152664498671812598104092005955628876799057345490786733662515728502995829414603099666664276863672452081834805307721656228114088814154619040845510853105591453686642554553012461021110530965153280411222449943226807423525418947092114388140775251458732222346550165390408832282843292865988939928918951807660204333083252924005411304153660909326774262213628048032974760103352426797305266761709310410431461944142936021045983009080845690082946256719267250194745528286129841498692679090184474291878568683948499674985817307494550920374923503855015139369636088372849567976773147752067364936667932208648787045986723370631175937845215066493475020845036346275434760024992060393035503569525575562001137913564677509601300304450312689711339483118128095277249917293974385748968763225974431342715062917365152537870584922094931853357689625721415857735714976041167759518374668099949549366860400660280215803730872865720690040314106324792055649558132599686319390949428679923061419310762162200753587931919749839759765373719404876603956272301977271847997578454480364629545694157967756819283200127782247948287569015360405968769125889185780013714460272882956381862885992162485424911012929041989422944754664191241743038280024961472817818103492300609373137590597287368605146693363357325149922894408918117054967728060027280034377240041768048319542294284984417110481312960666400344309831390680134595969669583280520903729826915140666272880889835253878194043830837823281822558429019171486399662327861880413591223654417415752696796484407697741647702521863498917619386478790099625997398218765910225222578158195564966821532174556798371343695239526059051279162310885647801974545255092995467962300456901417200537398772363684207490721826941959774196646840486447864750569470906951320686626116616906789704074579644573793626536998946996753906024202681362404275922193053941234985606984458648443121695976925491174400624358133239916759735322070296081032209848909402835553483889553018884267184372933651579455558894701749208668332036347581191909927888787272075530896184370213340547956203201202732790354286791025684465646953660504623855018239985677822202905420313419659092091026984839283755228630286248105671492504167408978953582697666757727267861834651556317243521171569024300541182344183683817985937987299052791280862961531457661927223036028866258734179661505526571114492076971839880188766991759707412134768489735037364557468421440246731085664404424872110176532102656182760163568579103206647052336180169527306744071740977841316273745103690766630581443106130141010556028040526426957163427147008563955315208421638124423546588405213443708430443835148055515643228090969311885490459312257585815303379583172647293411060381161030508577911545217621740565250158355344604041355016605782678880544098520669077255303758505441765146396122345561214790396139334778300489231204581067833157762995925479065777473614496477112193503045956894063759359502343399175070238137922229999648465500788827051304572461237031297828245017180303082796322816727649527570093313355446265131393379182496634646759551511719038191446329540024517827030651511212549239291863541468894528131547151046371299393864639691538528030292341280602960659941437442846357691782914163666031512392579238762941809371777904624781159005375371830183984099962610765857166755511814411157243424915595404903625845592751704989883895798706015818454871768506940016377346811087378828717608573257835661964138965286947928789355231979275262845366678397453194208355352097522333892829423432950586485264674410128015400522924395922664099492135702774039887616511670768820824766461798604817360895513214342037189745943286133628226811794735966693933073543727693642181630159706888831384851842705167806021150767927589610952176133589138653163471038221694433859156038095665264252519840725229148775211398909974485001296778657197347294404408063747439185830142589205560884732374465985645621807648528198000473734536755601893582974757168428320985731332798232371511131094489448905696468460739789639528887206028075488358222671734264463863635109752252153065892720791164258184904543180174173671170513792368070673567611113281482088553365173201608169353784104955784671354088329823943586128759866483979306616222119842267061556529989694182737378820931432502113922934268835826838311073981493910903802965164013379586866164932248782455976593935916046504367067195588983379552292464116315133703529743768566451213753001806895945359948828537609206428763594034480704559580161873159187562086664003132884647574079852207935531775440234343932479613304919893730840245255568018756526321606872264132601382582679557231182788043496574854021410349508007618190140000645061968507397663124997760145781463937084068001800081432648923930033895521038271423894256214262396834946816852645954170333194701704357068558140007543112366311618717805589786046464132241581909656095837647545345948303406722765472146961969190488770643242805961800095207477755026022119783408237239433834614992086107628947362263717237389690900209477797583479710326865876052296518268371103537579467819523858263598449895546429161888639190229784764412218888598412787098288653790042014817809459546984746102704130908718816682628839804019415615092463880283474466873833310309225115012935446717874035281679998585566514068679776374615922641639417273534314492865663226071555565506253839458255963051008202772103420970526432340458498214121003313714931991474075658960776879731548857908505027062136120682402058512750334832812768505609777631461826585559757239177832493076776585573310035938849521953456078222961514999045472781785730090901760770703021863781718450935746230321859636381412224577887162363008799792839932802052796961627184201213323586306487588363906998465348800502947018563722880884385724306686587872759983167804212765779138430642312229027424166165972299852086551459290070078156082043481287474039739382326910135538210730428724717816365178410490233131183484946561296152555978610628059772231220947216644520200548492212249252910417135564426519221157411080044956661314363195171032322326717828072530268469986079814002244861523094728411840517367557238159827960480283868261910677941730174725638709146999497740571986381832347447609664321040586989476810457698442365581083743411263841243028547274334885066789404358159025173830633961710379290499435842664133527784969725824456487605035663511062246524738861606962964070507322345852362768849615919161603896192576124556570374450451421489812084338211764294325048799301426221119768632833369337439778028987112988655217435875921172814661868680942579732232815628442206945100653656263163919908085536908830509042164483453853197481822943411400378030575992053296044087980511527424110473348916598678872967584690784692785614041236630893744054184914116434636420668867786730569845405651318766315658139156605830903722340657566512204037642322969517334313006603493980610190779375742960562575885590454555355318276552159950182689008024047650831529447116786790397810187918511048258753436139144246484046512727922177850820608269399724635084503220830582791676189337079028133924688373347061147379067092169637084453113820593087975545757507098086152400208279583518537486101447297327671589517179703402933517040260184331339141882574168536182237693563679283618775699998320923597786951513637843132366399950450596051201834751494595509505584603939398687516996810499428998575675210694749335985125696340811168451289879106508483328503029955192820099830981237327913810813154143493555900838020907938484381780821426117061692629663919993753855838648700340391947820007404174325536971399622985484415408032412450294706249622348754649818246364592816933713867516376563878900234233335607183249483182210251164153573193209454015314440197448717664528732529753151128579765574044092649104478993308895062166756221205165247782109025499015776343330817357740906775805251334494467028912678825206179940732844715996925235193502343737363627646992487444858800282722657754055595020151606676835667533552359298630205859931285132666062024743991265810230709801263481571540001781107778831042773139370686870188992775273942857157272721107867843741445192407499192619704580167295113343959986533384020533625778486549534410024983361456133174691247231525678476053517511330242206540021712981456725033697401293471883169497626046781454654796390167236322434162389894940530429934300661763834636782759932077677853289527095425697782919476503056145382005300998478993153768412843127168314548407897977823561704784025666036652039500627798043160779145787702339872257039666405429891891296768092866894917356925049144260093906847306059663879129469367133547122355929327331870652019371654656145131864540764144253794971811750089037853792924831444821303352876685290375564933990742423379553930265515951587601214791766535063567636795216856146163166727870135809424537173262196775041864001440411164788613029651116586168519692167397957214334789579147682157082222596236932419886842300383429897272885170799212048148744895449520359415352921276606677123556628626722430074017306935367283980048638713781315370875430953326813609189041301449733687505853111983509861986338515209305387040796196108237707082531403695398962366890097878711655630773464256153878701395111653855937828677260871781662672544480681908030004165325033084999106840992233772172303237909623440805784871848409711689783385883327156247231542728348071529442469031666370682698100937194468582025497047675366232548634022288919980533874417231313083683385882745166707234796602055180599452394966523541758894355420026032112180004342162217311941173927406983668997131545168979804226510846330964966721636201962285935462108571877446637230025316375088629102570368895802301682478443405519508208335602013278547263622701291310705152552468236777605509356283226802840689144566499167084464546646580000951098357743194549014588349092851462074984362894046213995694565186426706176211073914699124970677028788149545282365120875753545573800291274023401099246968353879165037500161756817615653989017204561306838418891190543790712150741879131094850356779355272235646852140665885897814437938689275994455797078065365334461445705593852712970077997984171381655566929572883119837278801545294355278010038514577505841290687476040704229345224239183362160057862047941411754809587351822768710748009390872023602161195104507724307937218348924617800376518727950467201945141582792826790546681436459203041720243936707676494265648194797091920127911170374475314564271322218368090193714903438883218346984024970123837086923271204073341319878313339724081831426719663927485340966179777374910430824193006604978021226037314583869238445343880741667909761304997176571372954338496903143057865347694371151653286325929604566014516374440796593333027397366851822614195823298103935075567085316275213501516854076820953038151630945917045868912797187266862754782437988846809141949219749536247656004807867229877629542335162668552856276266618590630979463823541748428062084821173544728983579553422355416454597182966460871684082788328987579255020633618314450888443017274827707701422357679971307144594822243698329564576221776964584690427185185822796607629909198944897201270421269683922528391112756711840515938288476655178730929802141335734028483113402654206509312584395345789441482086704156310474880666970239963005126596077522679792852758781097926899040105021642553675087531960487256089925737900040157934511573499180615470078144369870587458770180991977728226327459501665300325489363190250336572389701656196314515969800302928033457056533261642396989306756558378911861805644374981787073536731213102325058612644350611302038730892775859232180405333781727519390442354481517254159231136634380509359903100871896911113424648973825873469392583361520512326384125288200807028374413558532615538990410556364157753218722051647890263925750681639757255883143436006188473500014082231938545065574471526517705386222179748202723582719193344709871681036310262281818264468959860084947061117327625067934200807952605825830377107173194823182663935920424758665923607444504466686478832506599917768361974773140639823181440332314272886708315984249058743655414789768618076099881400885407564936353544311506422562966910869409006408910898006010281590235892012857459578420160609389157512021810742317847146710479655074061537771448274079424401696463899019722144762311961379653665401253909653360638697739661717106187900159813664672873421955169734207588890219325550028176049389970035118408731926257364272023121814148493979847529765696430405227448693548633070570595778739078077658410891654647697914524271913706101331670982832937573137971401825687109565103962951772558896621234685602896878252534378122179500183257966753069285299209030666367745611405879388550942506915506010081964413833102090739824008230916016237215339069997877386313329063876891917035932264407230884998378935055364360270300689433599092500071740529435791501575347146385485405450801474040711223593031380738803810058007479693768813398343767643499576722886987282036386459258325664403351418125365959688096651041829984841982468367166638146943643035616337646478371075474669097048928058878891543488434553866420506375852050618631139962300578171891539682355983137060513510888874783004430934722049947966419838213170801785855808229236473847591832009860748175614175989162823324801568820731459598267996719126147273929310683428663586374373011442599908492723575328416135729752488994316286710932941914169092953747455381763015817828651637416339642975320106010947186327722898319981798088264871617729360303641462764948030783084913402242093811183848147739000415737045932543392601539060701183451944642222500421534860350834402979670686388494285838703295624384998878639640588122966096193592108900512386480398350199649144676234579598697452952049289944982907695461791840375188806646727928230859975292632200334168031716074806105270886484992472835450938169390883970454091821063230904043753677598396884408097822458725676437857564494893011029240586446012498241591691929186201962468316196192733958385736688975430001008951979872755128204211325433949856731133880262207237348663768255588589060778277113274436378943716867866550312758260643970969162872062448112177262736957758589144834183678046228574184280922370897725323037099005622969976664960857468511131359070011421004157067192411563938319651460680449267348669215450875267262957491800924313728301311013351988824568896356031882429960725213698306213324810335911324073575762677334888513760837323025242148082513823702541476464253589472582070024423732258936492873602518987731921050497700362839691884452161868917978558375499790440915494806607573660996829175238071767605505676626469245012262913437587511849385057515859038348257687664267416602499968508224239039446153473560677508312038618291648847706430230037037354713195923172765110661343732349695917035722700765215371834145136423921436263191002219969149801003103842206375797167254859035845171272230704592884493361230384485049139233967316536698522744975801832406373823767160596257573401619845695360957990707740766033926108173514419075781691294313369992443282532314138015150830170643470896808076324405684393176132798445189843583589116328868957046831446713019298430121997819699561685599809079897454182436086779254696534722847770068498555749570126804325023557539035302032709911015016369613886478792502026832815200041637000704641374957978239264663661672107982802114472641671475634838666240869918369158948296917314995286925349231250282705917171128162165671459364512236976995899371836657307132683995792973483186909932911661034889664415620253083813062473698583944882429218506364590903492092958174600240407919004159184089819666682146406375062869830511770914973432099733021528071225232125909825609667372651870250420386054259249367229666207300532724507531491093176822706052608911365773491542049350439015212005981975773768413313807616640336758306147992879987117717151510563749486386759102139638392814796498629446240061637450311220755594064898708029451705455699087531217962643918639185760470915185941788844788969925077845833838445095911796999153979407434800636877243288266426875640529245198433069245746996341044990295239417747738684235499301051586524003304527568349532757258653459123354369001231364494279881834584801427503706672036895441693714493116610478248344207295071605498937951848582994093683527016721222203305203371133404861898325472191331971490358186599438636861218635553940189940276909343453742879438667549552049512508181020041792421329327912706199796635090802611414253820783451147606921788698654672280446656379848102474711424584525565162950883634998710025550839192223682415715430208223280160636868132842012846810854490902135593118564982310169785438857472424028737631916636824252391422139729079842648402701216244908077353640954427162226290435626049630623705499909497848505431840590678555495985302585541214367900018895486986703036995935934780007296292327276209374478360814864816612819481908326320921533769424570491363615023000046676795873895795704264065565122988206972960791957945902564658914217542946624604231193199548439631824799503849019545194829624520641792165090156264818860627846811157356804306019279020386100678598406657625293924499241263676081006858134037310387405059314321485543976453896369200890569734668186102169231343471640991138660138359232792079743386405253288995347453579446640220774767278674850171876235903869786532872139016287357860483248081161388705896964906611074878788087485052244749974742438071421797955981356716617013857587443393801711213148963394433393288260413052525504313544885406809140622895038416199977272784083283637733997644517873100606450626559424703246220708778161338389973464228038893132445613649769212834306428048637336512089050527067225175154073451621176313883185604954038338890788891734494620533924964107696955879927901445109951905308924157859970692873721722471199958184446934673713169876314229256134364266795664121511927932997250800329934997868737109486297117940715860636799072828672146376723258558970788524168483091332363332834922716775712298338558744453965380699174142688211861004853703068851414454713282032730921438295818333014978827020886554744612113155126834126631055548509271190979661140455389549156099618482278501528488791374734368571697435030963216664831335853156220784992982271485781727706226492697629345333486044964273029012388601500175845305551992141672579502842813798762713311301824062779060784538911475948664540603723220574313067722437106593295387064584565621542625555590901390294753999984730745196503609900980562477743444712272684984140027669477268542813610357697525134865938436967274265275657429356556777863298175050929263472235370029401052976537144273705416456867257899708945640146741785555961759599931904570347188546031585344554889818136504735625938591717825628119241002611141220807771617253560610274286227529276738091862957759707048766397776447508402800660141452025968440871966349056682185217903575180677489056336395005907287572715886878909126628468915089997106889659696564470454732136947139828054678101158106504522163800624619062249498502713731612971037126294481922753909779293336315300856140688054653907126016844391372265575721341877915004428355029052782457212497461060891603673364668369594660569336841113313161975105811402193308169033515112665313705521312109212932376167488083467645458901212993791448588688714741386591361253369979671628632120002632312153102389804382841792609558409235477609930080489897745281030324532936394524371072006789197281438232738589756458819974900957836352834807509328178885455131073620750745569317469293793871291236584028541017205953217918812517349008728455569714580496854933140639221295495986666653298118282857981134624428179143418902457592224207037603465746305602496577234700004682734336579894522242690432381236617402759232467006500254858949398799224680524317540355224178661219467712437132134313663062297769799110017479006011288269003291657143634457666984247840913198954610205636854796839933724753256020185003436436158888778468405169228557494986634311072612441719228424746141548189462132340582761699891719942121555591119317309933717472841354021518192762432048843382953829106161533353340456949310413925670529731381481786593006208596149932718182427880449157047997130334680935586077074769188613036668688973446267547514515814778804532310428596682383935739369880953959834800087691821893320173522446643434644379982129920656225387841561052606054815497716141096294200253278690484907692578702115697237038465104044318184681646362473899943954633114857798799527483596151706527012752428040885440607779623568078142723979652511732942077915849826410040728069027754989799326327972506205906156575210219473337163314818550722287940235698441148612231673773646966141920011356476158192758754728739927335664948676609589823206703125356512850197747098759290563058124897181503060242317927510190220183482233395328679084179275063473467583443671717793390636567999914566816987123367074909755778852436122272109954813783553370798230731343970678717944847505178376338424344884284922548889098253890563090110865581832765638458355935283922684165987680500361338384461296326302474821828036461181897236835576088686485795772121679335122883117878128947301594838667290069059151085252721247049086379790593782324292947157099575611378663159333100186678726040366031264056167756929362356907709131234860698184430749717866045110540857007943142415333076787715528069463958398080290873666225893152848366475648462973356963637454706572967112313622188108979552181078208631453179629006629202940518533362564775397028941684550212008639148391408822427038663658433478520597514737539247302133684214248383891467177394113248155783692144092033940780053400040119960768730199690177430625063603543615945727534729837887320692300025065979058863857839755233001704481972316477201644715217656155849181789463431695563570512978615058327504419197257296786620758137536189835240655580758322208405827411225490347349718796713600068356263502966103414572737646489643559841132524334695087527177372778887350853688211847502384838821925947111373943479232157790844191830000756354957329168914944899973922901282776876090366123229041456552601449823235836372977483290627780237275220313970414708333696264812677989767241786123275276174128448499579393137090262715904347488260885812979650535683352933111086593065953697727186311903453701622713033498819599145472261037244438759335202197749384875829725746447350042706068045684460575399901989738848602079558195799282360129434536665678312171157016961368292806571417922162177036318092748915600073155838848091840749379350474261708649071945896070786240765302286757185370473885530509190011715943147156511842709116486374129296619245598972857338439536426901627166109340574635975773292819966808009293999304313927940239369023510347319895379994895890687449075833364109017925677630378848403687991973376458340949288974851138870097053265862608692773043164627163132631944137641764751984278827649438151843335044481115198794569981606341016682319872003104105792131191848115944488910434743440833137993999751017571931020651892782660956563167884435356354010143640055324727346363100696807349864806024909390546591575997518529963653640884139117383310254980330081904381761991136514697237058491992695399938641245106671094623861882137962250713010595176095902995498946702449977694033132249897280279356503059221989088849842443865255687722913756527831789964815939226166185845218168594366081823307210273326371599491170130763360886309120352741103301197161156827285234800989519880890108215756317610424012792388790264022076072306512189474708476448016861160410323916545055426340599770792712137599238132074918638150559567139087750096810196751270553958801098531253702761426356691141764754606914679611395540771366602417632109989812073286837175845005036491250361800474892756806182762319500368253332948859679039242338116248021122180282275559323873206671781477025953102070984659528149096246419627560291742797580160739102147836347391440213703936404933429712992268499011122798177291939210411319764260309753408061221379821623805685414194559177290613771848680319299989381731718386986944090820584418499828116779980232582115484735561239479867748414782698913659975852163302006579063337590671596050446687700133118618105930089935658480012967185353071996670735372608416766518471066655367469419508851844465155497423134403991148161146469751788583583839903608291785118880098470549990948785677965171803627651864395959965651600235105909941411613461394882613471798688782989874691117894384394416341641989910371796351424585108546859848452976470187473831921650825827479242402078652472819027381955385750619538028795752271270422240034754563347121732222800974968149258818821690487919543010918696165893672730523401803585190345798422790001401484074091495927112626349651558020569395953027580628996101138298844834872938249362981489313409822402251594819211878746804033342527137067432567513626055192205577375011943406423556956504403663745297725382635952420433326946118212622004386065417576770590672798922209863207347894180938593548732647894023276999717441700013046380554647443484194438581634919993121457200535476180434884216415676515590492725735745182657452784201023392781765727269811034701468726321666734407033376734855465405178371783638439564556250182048090201343963982386031379377829053489837618419656971751652009670484849222386600578344148812802513795008629443884453287559482040113313873214996552120346346036909847919708531542516342306490039136681471582568712167963372275724003791440465701654917395831769815225942801368704697671747077875529542927170466116477271753756615441801212063356789675723608575764144160972270279520899290205890544713171933255817671873005573670705855576444576793357207300897131794875508455476403731615229691282625008124026785594339519985504930620687185760521438526528512270864047856791135576082509421959228254080235387341012832613100224647861221150080913088143682697680892568957981954698683564013366095857812896706224783144947476916822463779304111178937801414984257717923657364373474237171220134263637348810714943922883716459787755481301909551169020517405970127870037183597676296698949880605339298386395470646869586272790077537879499723086655023497676228740678832019404693821712429420559299481870682379646982858820548611413256321335490462265225192146757098328990249124233888289628875881391574768171952852159588584644203413207228723718407326495636597112474516206971137531993036146773648564416819846566724371034713144068991700167044742868887802574289276111696482123397713770319740819688572122645417894750178136562100599352409582090426522202994970726418308632116719732929692466236462130494694147860757536904255577519361660137913039271531870124883127376642210037264364721646073191504785275493231001841396004009934064227388779519247365020393785177169421261924471429610913814860549539305786659942381921650417550250694723505556465307100596324637990380978950416672572642406071417773656805151671868362735703084601195972345386388280668729162637754712110274454206373568868466554430945202237020536364361567112262312201904273133216434622609390674876179457626501976489284418637850005991353663860135292392222526051147558545815791530172762125917276733855405897644980213099479539698149090373783199993643780128266639325603135376620486977931452230058326916273371833209386498208436522564365203071883474447658107229784054570551427739171659756260464929486790880980174414821283475844036160139698812610316273367190153362998596552808505042232211085445726844929717967875992430629349099336768844181210900898451597200687078453481157826483126477958122958738498249899152032249926214949420520597096678619743315218839120790682560151662059558202219412068788905164686664363324708667299663884976642408723011948235563653276038671086999436822810325244027908147095430191527739997461327705159020077821885241994996608398092695162821995378321238800519143196331225076072904258500158930684988797023058970239729086880924255512994307775719667740140408625486989016473231437385897382724003437044725532959109520638502961978020146334820205311912022633294976949883677724609121662250238282053725607831491575593801375351847779092954724812210777890697036390145462879292368600868160327019971436500502004714737457256055992138285819093960647619776940772101089694776561160370341037003879695724454898198150059144553119469816786562730413855433746264406315388709878827400438819088390091699164020802803471053607828876397220280544746816160694797473908967655316895758844001815065914611947450628103214502828082350839939468335121612046763018341924565980798851919677577796818762656300846569659136235947275683792775600445615676557867434095017162934954813004594948400972024081326291813651240163004669858089168558133354962087635499685069109708063932501343568105194278512555131655281219586036532579509913973179291215868801250011990780543828395536302591540495759485243534689800580863090107137699787563927344426331935277400928277926933258002033663652868124883666180466181262619292317521350449762432797815225798183459914313420007503248524691930399008716091551979391270530099881833165471856919803440531619309381926488276541821599401997747354315462773788862532414312526055227532935014337593432574877398867455750017656644656049708047529426594077228247763605951963309888259829841702121628374457036595432047651491667986473851021733712258110834320383416241916061345876594584448030418597306902534429902114308566923964468584217917714511610584226839799772477841529355982370509734078980660576585015570861023877908976603730018902916833736454077745905288529455810961855522490674893968103530017696262119173876123514882393480683137354945204468670123341199732980983876023207873537355974025464410078010149313294138371243818141450601541007375095565927093371036429060018683182795345938398806591979872324689798340413056392754151375738973802850267786448193718246695059359814862398836860564190650240631313727479386189733659966855480913437980693983134319820104800470876250423282799702393968100743938747415860972562345129048845231516053887135088365624657398635684063488730033248479809112004174674420168909003311623178355027530111279847663016954323956830840605340927603644938628006438690911143950413121940488250927642142036819675595895040399019248479247806108907666041046801759102144682538603113568245460379133287130349980417855448363753966232444556610524025703747243599150011526899606619778501113905481414091459709084612622293650704830025290367030103880049716583870472518449336013074111238800099327225199893616508704634942150032963893834980194449525931771843079728606257928637449486700459212777299968138771429603418639103481207913226920722316933342363147719485774925589304387768201302325101474166451536169091717843463370461026248858835740514446796736972325629960376568836201620268312370645621693789725766709594770356728430398986988515770680920369031788635889608395964629607720171213162401305098798774493207621504434143125570679001128233330893100306623828394154623216918385093901424132127378560265102144688118933127545597028365234597531107099116633418169368605768854542257427127024949919579397209561490835333127197118601735658703734524133894195801579615677182078703733119587757245637629897008755866403747009497002070627685494293626615819145871766405415828692225174605893740059738668973631703123578130317488960611816217132424102422726631910348336135485616731805289540712840862891188873148556621707982749350478537094474327266576774462463817991642459783000157996221713637637216746549982917241354998119295658216143313184244258917101356709538281899321131701678225729611676220398807697587373428288228672070806704857465325890425805399761842715833864638699427235776178720304567387855494866228415852383382514012614558843508848587109660921310574136812657464791129886447049513467939313723884480142282374723021934781372854957564299348973199401558561896525993476606815212154921465279645855785219890415769866415128888075531103629404607184013207486856786881497714846713243156016946288859247990439575646317566576683688650491781148067635632620919260695730807876299878320769622085884655986550484760378075213525868117773888760652254364606651051244767748447709350907813571619702783328379944414121117684112083358440583817201765865107739659582306292577269016290666122730309789478912826583714327434850670781085462255052255833619672082279585809778807647153618061663372038357475177556586282876011009516472747286531994635219681886271842262665992162440837411186397365732955555702054487379851567930229155823626020311575178641939218384179476461723131094116642931864068648773108239504269841250026332532409948146514115678268483122736903134000777924088934712552037478263648356668643605861821400561092193879480688172187216505895401507303427174942172279426918122238689335425365016235940101252021960609926884514009641437458284821028155375757540077960078111443533392863101685426029476873619117550964452675788949166897734964696523442930351695002442364805114275550679197304483935448267647585733487182869150881099770509412825833434648948097620410048861103814523793427278803766934448266438118236309570868255732352749798755321940160282322901676316983837205514046939456264599887910068372072159930109097636720148738616709200218226225835460545751460584584018834407304894217564428779561555014552159588877968169994572232578977649333635133267350683194510254232011276918707124290965407851170233877838668156270231782550120404206882836743442364792803627325233741299183532412390439314364302426819800545407813341225738771258235244259308498412091502862776944951811095312599611483957653816569183397657513495086757924251539317036501837429654773033553644257793330782498187570883256916310846251403950232701557729907184327978648433670552091199323912878470290229325093542494218028259808819013706318487760634155266182702188365702546445382203255297248690381400500945924620310908491510190126167575061547927232060708184223708772418159653588841834968248452532857913830735920490034695263079769302007380562815270270506199954763722123239852407070197291842545404261292429922109916077067598283944199590274459995691734295716923664390500425144645881938979764430931120463926898258821694935642984399657154173325956579847432146819242924805529015695886839739696850616106142867305239906963023253285026937142385975449963891252594640984846988097796503514096877464579907733293498208502024261090676483174801672274830790525897823345821871503022484352183245249306854022570531541485987884334796099578629549503680007991197204919416432731803978967098616161699886690336634047199707722704128124100110577658415536099359511421749259064240485405675646130370804076798089800699146500928094565181294109879891332685080727010112094138288865475224462056153318320407367753955774094310103887717665387124258591223762132966144515503589769076386210643282476399545527961203698073531886008044238741860547977022228078109263852439233793084022463329854167220180110082094393217319139698425839472061071740406596024694242143766550714464172616404782740814164510592878689498301259066479517875661164529086895423096492254475477579097219819136230789738165483542694957717503963786182004906325829264329360539335551344565456533653654227643121248604882653011306621941159368058243813448887408624501372558501520622999169765639554557592978970489613616757087788731468310778469240101082591631187037968473908237713759305092059918130124979716411678319004322006980661165984255175185309104095275712836134939785303810300905386794217454212980453107917080874510245269238209925305803765897778338304825815571461825890256143262667924494153069093738543773526220636271598955126826155171656962210868560636142597573197097261287369824788974426190097304256352426551802983198824872245159834930737910372549453186066336380416335013315386066526014882997253084747940561992768261663604499691303286008182795846660954949531979285235116951016845425974916066442831956285859181338952668837475832199845024579881492599537764428791739348820700632420799472952152808841152620053268985718565426554383795307184239687880254399699318941121298757788558837191003795066338912167460790014404612281749809470585962115697730829532052195015833385709885582421640435996227326158403252897781848462692284912742888057791227371399062869206260921887346419184792518895516258990696048340081422214030080888582099426440186833099073787002755191641228851880156095164323907668573799612686513522212510577734843239969619966131517170800444599424636709516653843923221616890398206960871842582697570935106335919490807025081396279148828000137113087807975120299525088736136908410714398063122970719393549044534799067067929372186224408560957085240886319815152822372097266510776663359371903023372626200947764390559033628173608949549088967662431616899234394129416371326936493956064394516064541740117378571892306274071387439637442789627125683325946898968383288956928723074861237357024506822119375065351896766637806167585014520211211972719808934825600533793045678061676096418443321215282024000785712277067200203726239916738193972906709390981972301094371665671594837742979967272974338851681238986356492954282529401752148498023095532593122840354689419418027582333692396009748366875724684282034366941098963701170599396775463090972988121469747181035895190816499208743963935808752488272323182307709873634024507193904480368005545707702011564339386409692868755168038239185579830169216550363344665741062688517812998453900886885094794395302628285529802030115972700474834723363517681351636712199802360449507589006265248223161065560501309003647888987085403283253068714393155528457892090884206908942302658794785979355754352493497143138911138484375470062986162432775655037744227507476707343528884175859788646319903626371794744721589510287634104811021563043311002923158125779808719295053626892439403892890684679746247536361779555157997746392076489232013821110866821963597990978085697437003002795711989208134489124320818220695873577096170813232213078917224598830936613379353980199925335819714170032086491537358125709303815538824265396394311112141955307843406365089493474586581883705825196329824386242574413937565323536013113841810973534337149588741324939717530829864425894488133853268866648695791981736758656426174990425997590625216408357120413233950383446044234653002070507605846035340034375557427447213733038322168087909839039047073972596572407540140108604173514312251584047203539437130420437718627481229352634976256550648587815902858430945675369067545243048652230394817445299396050005725890392676029316072092732567920619592073862344818959635637043538421177751187149788101031273306317625316746311279651719931113497484855482585236147646565576455750692163292444207509704578392505059559448382277768012043990883114178455599279919042887783022969340682363810024072261983998535865163157127781368499102933664420289250348307043130906263480125650870207738180055613723883862126892498700384828585105545684573861474000693934105624474395104811938537101804781413525942053414710838726492899058178402176891374148744989756354880707752760642281620586181371610239603583118727376459217271070361402006531186350530920256595950327396326436093981058097940459483057057362660846083716691702289065265108649204367051962185739653393175151931337185674114317778126698866343014899544692874287891213155228687672890355009137945256865076028093955211738320321862520104069923006089546923636653372246336940912972483184986946882781400586024860837781149498071859203773205143212028149467280517688358856493132927577774257760972898338869973865637148289570515310572941825620397320711550569049275775828611067240606054784647956833831878092226865871347566333226724615734930467395656396803459830616135062696307340640973559589803328235673463409469118210093828868162961164812322873756491512739799285631938745447217394449792183888400999889211631499729086940923087646853794653604514688121730550613402753223381580554408955304405743696527408637006294522427030937386942576419990292091651542013845121713842044107816309513176592380639244403062491502564416995872655076949256461932139665301549415502875854181919295090194958903962605322717578938046514636255241771769179991558815345962688899031172457233526641456139702180605231200666586070506299156752813362348252363160400802433385979195540198335342765373924156545612106723337389567341599681664898758317439759428545633988560282676322202539277637656789809213708181423722680256160547394599491703675409556641233858463035454942252421181444278651090978020903954150515034740004105016234398631542555111999758478915340246193876945810610182974662165839487441023750180814229219029680145321195012668482333041119588293418930004218850156415168478681613371642340303022603629271845662340612885995681506626568113317829315155529784989496379248616687381228569876069141374942544511198510651622492164104369590966592121040556286205235902432420745149264425570951884404367318772963101023779865078295714082934942196703739740407649751535162530480598598667820234240821945082642263186630929511768906619397056351489383454126009749705503877392884273762619660053111643818558178279991846349870121558196180636979828866023573483290585655413705582581134435045362495846222519666863018923403540896839186865925407401304549857817211940354716068956899112287378242929822235535182434141571743553355282584352764997473116605521872430158912469299835799505822406481920792956308203292612210423563974585843581556916705291439157050698759056318203883603361363635526473599005518910975910485786335395641874458318972120043627277316231480043674608814684343254823696644775753678808066925360419315971650746483819274804385933993237223585061501150763032046048655904078280265562126805737082560857663990091985267754338979616514565585312828171862618090844241997966276154466458397909073018592346128392530407609757445106190612730970246210446671470829976607432478889159702633733957490154315216959732748230770255125021499780372933893530227907618673793026391501512706812407515934002825322646243468851300682088818531761752569882887238949232127811571307143520926583238282225191214071403742369205732700767197569253301617511758242617934613711215721808909625089937405319876692488287678668174057692044000968574253308705025897201679841075397707369669981344107004186898993145864071886497170633535880039086421956285581797415056301775245573716441695342382998257872173669887457336573574065458244246194787548264250681831589999785276185557409685378577844872761001151952325440877915711075387194186744751343728079856600155388968416350510926719931643077405737388411921750898252835771577085133286914968089525161200523945827883842154386163680966482627197078875326358573465673477710032698826706782587082071959041742718853924447117306096598451216731223953991839656464749535602030957321672004415779097252280331099189316374478612285229066102186170515956846351357145566750983754743755358469099699313737983451661969146052251008355672142371233593175767747566443303611922934064780970328348352069828872248709169913806580550718304846883188730649638942754966316759397651425841431846912953113459972657053091506060226035101051499412078410379023172854269017755002154616302094446591529630411411560150170966973015555322130854428673796903488483158820453258871104654990309178845098441798839374738140508542465217729616519167607067329154366603889760057822424313080226732420148656953262326073173304150833724682123085464762907817385972672522774582437082705995837792772615414544462195553384564233026685289753464809656656764465932898099736362541048700502815448468286259395708772208681274248081638825083310861712479006005676395250002389980652953878873573662228475817778096812863657763322948834547123618530254725561482506771981087456456545352814003517714109468854650446205168867366209645428899025214672236585556470188612733193091424063617781441820821416141412420528938678249574043511635686306338979841396376897409097410286610616812411239471368374313837602447138141928106380629708091935498104390457584247491415783562245458455239599579024082463002357205430177822268899666430450112080284088119712380641872617026625135562226888345139092051936871475461719721393722651369344189058878369656817211481942320736038210844713301327762594756314385411833725956542922839446350707482140859206387769190894432652478225636689336707753353178760614826348837377005652150114943359905168372496390832295384778879045416158463595686028907849740259528459189019009125687423094420230743271547334918169549885625972632038716985096644098046272311453660646325417941359138466540512849910623132177069592844019023397380665441315156674523592334898727191009035504876061963942310712297592019310003450827318877084142079751953529131164464400629587289509826940381490628337040088311904670889031644083885457118799369421653909968765952371550107977520590214205078279186445212462900410632733333379276688949826578601441046762974287138159460792171243323535992097382579316440551025129527524191930016922933087332040146415817992653983836818355476615780557886145904120778124268176604886224209626887849298076253519855853609128568229633384430376191138983179399702259343895625311232444993973805930438359884776635633362958887438124119072021090094963213329175467927156851676580315493095065893980141078514110751507814969897603938759831757111321471700884857396592188483655554617734911569163876406961730673598934236223043435471014059300431417357942237278957634959175566739125437545305794767759580848429648906660448081617559537842943728844066237423804086462544886357073888375133612235120798525281047107143288380593982336756401137876670145981695666200109543006035216327371618669552082713112574807513290367762318187774818074327170680477363985943839478868317245998358653758984287424998211731625723765618947813311169401978006104117664361452615888057556740420363952921578915134743420772820582147740517400967284981945316939924375626012585971774538170094958621941073684213756316884057353990426611970933471231537750803326296574727068789654645179536509366919068573278570005607515546432248337801112448196711695415572047150510469639014328270711296881084646005767050609298085122039630892309359630673397713142789681048971479845594835511092803101079595622637614854752487770958863496150733259349322478271072422814829375589771169009814227192208505235965504257309102161887486513735724434703792288125968642202270121032686651471599794079393287325596483440337922782500506331721368862400686146680209203401517907622567844072326618731505243032557290605797740659141203414211641543885508523813283430809231692420045559031215193997405326388171334779402476532580993129856835625093597553035079690470899458072586160601381200085691393717690322223636851426186746995182571007569258760095081524309501424954516345568800935562378392329480273743513988506915747545854210670752513001038395566270363129321733906821561237942073968760425908611216780238587153758636515802356969465669172094298365130882865692529005416856371585394724880558979761493162692027612094454020447657497030546825593360705717716831222077406493965987531777826500805913949621644211266419356383327533451449780480749068431628856224187136229959565593762787265543968368356203233430316655578641435836222326544648280344314870077264539766361772421846469658329161911263185965671625777038669282353065601342781460277133811361649866836806958641939415745464995982092289349671412825829830110516518425936403294008034456999875094784436559210198822807731923341566583391777400163338705970936949836322049006536485200704319959211481379317320549587603343389001680704123571550363455830403366993640325207216980116096818984832123987602901724552247541611863679859024027334140420486256226068682114822780028318406401819958175586329658196484135610887891620342048631603357966163691131314965125254341655211051073180582286925903481005186203443748081846243095983522865460141446497299133120170409125794974535904060775618671281423231429174147856674534618086097043713632338468653792563277559759853859906614994235382225899641737482119676888626682643854019513695472382812767984621554923888160867099612239801807910898305107192792180289204492791183084701746643055023338304295351133607833184365410214187751533461143138432660319416463143824709151918557575648074001324261452591102502786253111244587776340535389542586627046435592873719147683371482863297929975314089990805092775915629163649063402528266437941613976779243776035999292176506344301170715545066890415932161281090340588427525049960183452042136370186826715595746644698418260127627322738782099558249839337125971687394860520872092494230265682877644790369362110394905452535210579918415540772367322060834174979122554926600347605469556781140017060794539799040476454035615065412448749217449352547669899570498834554539184159254099782588823531150769052221878182711398393716428617062881490609257199427792183288529045320796131180934528617755484413285884776537398120345517279486635817877523565229701357911445437833695079598236784598538380047283218996603162448424511341564513691756021892439165787351917087763012711812992315647105001930796663814722276522676065237478775536641048400801810134546972129472141718764144311603959190734390602302497726675695959197921244579970064847478058369005851346309409210873674625676887276210653397098361910415422241995664726381282267737861429039457163470262220119391143744327036561093899731377118013285183683126697868181886499370853422808528215589187892382126040991744255537800520700280334215891665960807756465238910749525479458908566587939642059704742297683773924715796389657422287481210195457427864480385286020791607732444207861376400807752829688653825100710611069575811458908997161868701755366036700143436756828624944151479267280123368993075973914611196988645431270924337049473536633600792996818169264672230182596772511162980513254633336333928693505543486098000769803153510963146162085413877627474151909069747923124349161401012814362999742196967740238238546832437576562077502859586487226614196113824287297492482977774310482892188553670922392956040627332980372666862286573080068174172315411043774328044895225194969654284419621136774501418863943966351126239180791004449261524793217889281691570728781347854502542813372899136263090477807861237692906665555063581309200567986861146667248557571123942958381885358216307944925438377042401139715559497784281446619301373184730661393291944976783024826723343490974833346681505433926967439172093841847065975690275306730255781196232166073967062280178055673065719791270071809963101793259037446513996417631024655988430224400867983905418807060896710558806460032631444333477803388225259774216559202482516402951832872338515657167592414984368167182271580946224205641854284047644096962836018319264469467422634660693872663012044752553946800156868515955394419615144482095137888217670167626938737427556236819208756925773512885299093658748325964798363501338169577915067955665421235002891573495326079666743735636973716915849608938745832844572700292616084197149045963618925280556145691953197782269183248778647656080758563350450427809239045213670289577962266788050437435365951994204058863032770736134612990463928569883913243886107846050603693190355257741334046678542442160614225886937586041689411595834686724604157509008155951499646254218112292836000843665145000489389605746072014869588524701609668914844060705101593174635007850106602143286445679019276598355818595867804555493673660644175283727871423485461638602957643268907792608623611932104323372276713425695617463466732325645336737102082731237027428205209314467762698537082765075412297429222444024752599501721939092154866846603787834061229199414175897814497610719460513917598316597686468202932535074051506579198041228460942805799490606955798858987625474872347290049284394912590491536500375091076160007674971329311898557579849659751089269966521758111355112438522960275164210949436920514642006557109654952426655282989083492938259888318037769648155688282741321055706263457666583004564040012961237999302360388757814479212944915772428038646526809755044626390638670596190056335656336251397464974631518818770681258867655455159565255377738547403618980188624039914457818875490837198121286355069609476808485563346140790259936268557556534859456299455299915124720698387708877367639035148144037993310060467468355394154874659250402482446127313962326495758902105993881578767522989359446772386870077947833667507267614919874987863573301524547454669410819689167307444771033754188556840527687138435913309971993511915432200316539748685297695899282031001012067598032824290345741812883882979108704418091417170015969127487151662686269082063043416149013144112615659601197623173904679480630555449162719576058994366204424820607568512441081725303470325376338177836031276765140879361343008711714638996105704406392239135167032193822112769653003801471528235531532107077771785542173693036435794264938622490997428201253759146705047984372508626888927632023987712908006035548642387631270649045179660995347284566642332803044897847822385718218063326013428753981887672714437204389398721736044119877658927443925661690711402148292264704723155467335791800886287849178796590903886107331290615844202955433691100425808317969214487662019012756723927249852571886646569444381375237748325972372090917369691014818312578556628967997000931508410742511839847498107146408752432700557165464316883199470706479998604789589085179393073842990301299334404664260366858093951045475529479618354794492571077328139650299100192785394969860627767921739081885773250320046957867504799232437141710897266259326396428194412400506264094452426353354282159173736446815264749912681794603789293445899062897376083295024194888018484543248497436068975023529370334504991971456350741494192951515703464428356853608805238676219782725413255196033367584316666129168817690461555176030778400892982658143396692209407292263826344950741382015356759080988588227610145650406289240493854024274473631554156157098686673096979026089169387589709208769368504151610842826636069332037313568027330755696455945967200307839076281411743938466501716200944737462357982475631735849783222128989759353643134668314507654784718920998680592634431042699925682702733570478551627318449423092127872978292550763096507336593989635101343831772428729385045446429686265137121750946647808054052812750371297301162215945910144940989331655760718685980680391321621828522002970603533962701278647158577976189074881345223808449356888388189186306698986131957893387759608196609046536324802254808143015685718632306952908523565384764852192106682110062975862821195105972937974087832125326937230045852689781198619984551011697633637158703302575801954843991528654940863431146077984492894507870893414403808264877907316409956084493872255209997229917283671602453964694057367023963160332554902210380972331584519393143166505026801281782730316468714539357278604532265945408024014464697818563589907559040611530487545088680919669901675283971597014161303025733307855204168165127074988306757300057102887607043048899833842621844859095982536336185396756175835184237583900347443374975692951368625507535248894965508659601665981115862292479719586770730315377103724174959551818500063896648773589550977539763857709182356729961761906729474282268046438934774263176380076178606012315690187083842533689698364228957958812729801764064703185990243891010522454280152767273511011500850493719814181071436985138388343047031910841404001434326823230514963706487312592798049346913259738539985302335532370821722433312561469152049739911136861710280826471344558602871614887156959617653089180153562168430854432585355884478281060368318609432645653983935837650678075085531431803524403506986542002069943514899266712109804522869189424420772348576559389824954895524681923098852614371520137168931089472244031668125135097690239355836189846606647881261298416458371441818559038827631701315880657513349886090457256514555906627790057758094442127444026514743600514249302403845114739202683726620136721199650464183615138053640043073217430724588302941616939857866892761888611034176099276642272185464882895554910607479311564098239429505012286287201296292610906980926080960260022560832682596468355426569890869936185032890713987886123903580363121900830590938591413384322388684144939301054400640265036534374075824332968596535451504661384654809808597740753138635840543190393141265061831638147778336635224639997524458236594372716300093816129210289574572683470038875495345771107719578364805869431818337262228412495358209033356356658189940590480373519854174332311152750878584127208562046658714024039343448159079987879118378518236633069939024213307557028224401613989408861557037872006435006739320514695585189511534549845076109510472920212293270991038426918688483001639994887423376966910066693000921299333006978856059368789756404852029928003422883543752865322121967845064403782394598988782108472812548047452566284574676599109972938074046901113828638390963687835898960698332756262794593660818865474872667185874385244092194757708189701540683514859532355294545090982166395853487649641149819585546091836342363273072519273176091077518120384804612807174330877992224475277815461775557720898517471972375518820210337462880833044033561506886910608218022610374573205198467452488493771197113653873527514275423456631819748382801879300963789023297107421235545188466638349269169162057178956248084970480190075548881949371891421448184566183195564469628620645230259383959884939881904038718102202872377437134437492793565387154482761259349748194392819586173780162453620123844405011812634593356833975860216470266186299236456489935445272290664803963014520622881255060362289061350237416026795614171285322726658300158186888637164431158446379501366961790994032464517916050069386513924433133164714620806470545824794463104920067967002523953487374454626753891264321250348092472827148835063373061308903798488129002956562225923351133794003874921019717389919290680435035529630457124137861667853318253873345340886010980186210022274278456667063886666669834870050751770705059257706316579835698013210234977766840350574628463526046526666718663851927944076557484883425224351581811637594019529921885854591698016176998187376968558116009602912608628620510209747907493611110411567374089316892276371155374633952263121444861437105852846913547020182709697874350647820691831589215808620291099143559887946288581119255547071995507608774559666436805465444935329979825711634720343017236638595302752479483071522372542585970575223892958013494009630646396972478416365884332782602984781072479057719377767384011052576953869073807896693271846340733425766011493380901739781639409358789738559445859429806224206090476722121374752051595477839629120590996225022179406375010652298680755161280545868125092941931951415626731414621166323484567680289570501127024999258808835385784757896169027690477200353035858439813313107944871946906609606275005121881790817929670226917334141305698603653655288896644323916338663283291063245911914060843548157843164331709552575178477655120416677750946285966594223769419843917093756369344150450714126653128763499957393663368262589459736428321145976220146310591590919347984156708201180103210621451859668723988932953103626560817950102408846176183574195828367070097588026837065940448385063907921892507174919977331631208897708578651869326147874854284996983417620820180178509293503810795468524326590623260423066211431682195498553779932407022376395808944288263915463272250234530196419131868333903911178248994627830929261350326408006330746524397394319090747084047907211634576741619884312544572827361372372840397685464612586284978590354851949225377388522760453113652011744733318532271347920356918502865800818442567423944905181539215422720328516036713088931829840012025473134230230737968896616299587603224564136416108977891204047643404654361783741751181993962840359379529854277527061148186727020321531829690444495337312637758768866679833950402039208469016392247981438096578709127143245795728427396891381349261751825397810099724469935839404980549788014235785675146580980566473995555664558961217403770790721060192396476759550187381918011977133558786782086262523796667388277795653205386022152951471081770303569035956474733718924599426723791846754262491570737699424854438971533811344502281480366635217467822288641431190232087565890388661197808989368531235648842221356059197608693669456927962433935705460753061121064348156777146462234617041950783187512323921971988978694978000671474700099040205038031479734675277871139872130441752117484554176392324551901959430000352237040182039866887344669307654912408381946498080406595153807667117281666145277855663056086452505991489994338421652087661383287365974728777215857424320122953697406839973807631117001258313982338635842406612513802021705712305068544818780991133351296577103993940137162067979343823056022202897111650353430382434035143017107602786226265242343311124596005226625372398545936058595812053201406216695787857394664868582695259792400613341617543539864533752026283349799839510744209750332171132145090489317158764284926264030840931611846466319073156302518838460331777492373847813392407381305931147840709167974253732152003545309611969593096590515781093862604217264051109308001319558369721173104959608053189134057242157362475977751570526274423413905010455166076507547720984301610578703562994356243898032344254371082806430997802863041383717207268866912277092827977009909981619335372769937526822618849104133575799173015918966427682453293366229546094622635776290169655491518152653722560796597040332218904250964500909953041486093024964783631294696668829071873494927271623851398272853135246260428466190610210973553869521913054553553199533307814253979439706149753911651690416324898470445431016714857647192208747561794802482668798439341183620470286495558567099925032081326297379349225211699098121936042631941504241181217339510815313578033684670419429395282259628383339496361642248027956850875274664878295494198838739637841788654426201824177154894810376588258468998224693703212280762726194427430576453676951791399479333703447301294516542009507011068838933734342360555536866004204399466967628133244963980993284312176176759898887940179912709742424454546881260194489977863949052748106239285638085443415942610507311034039907819768711993473161338712642806618420406695434503528819444442205755528678382616076157068883528212255214060570791999461575890515916773676927076295611171661709612424647146780795078500580558108941113166703989712704842767124274179806385533475466365728356284001379722583838710188054646679791373239346990310965283196881181524861048570316086876315680966426569276597299519514523674182547062184185280349192923134503302480307200558075053062195381557204383834044024280457944355420592157375796780463638821020615429276165688543451193803104994210441329979604187831258701461591304318872203919494309747445691339202327237954576634249037788087912788104784398534616591809887347523788466245672895077027967882802311928737339273518383116332752750958970333630311084889712529712582153635875339609764835974992846747240309333692815058246117432058311164658114951718042016059934259874715191125859441041890777269733815295749102817806056290428682456079758619181364011204727398743134858573890739986417252857101265092676239952395403566442252411445028225797321115050620351514472115689555134297776284134837264753058674650889779664333461040898541317157504070777030432129337823883132017664566424221486860989169532882065779231846785285311759549138368422822431568186410089544019830573098147383409345272335222105472333165108351780251047276492824318237477002390897013759639682452410126061464395388140602192294742919436678568873287361209251211722148259929283949997427591524638694930741365472584831437354269252258210343995263843670478764988561756345717237696293912066656740572181426907333184920524156072302749325627880557500256048665483420379092258294693253325577731115170064827079084140429797185337369719685659216402215873527806556014681539283967091949327661267976502395222624433272360013760162655648130703268561256037703277468122493683036481906002476003134956276273111615732110046436577046850223524551467250160054332835271191630470570757375072827882097438858047576546560507252087731355203966322671861207068330259770930831333629206849640866554632567735434295465443900648486652932207126136815353246138314208610290321828436040623377509478404630689088872531713379779051482069017951381480635633111009505583709059433863358371082526062224668006747784517655748967172757089513816724294254869747710926091521101211392776030342966458371837144282627859874969634654802636471796603544979472218031450038901040930372055259670981300906347948245199599299117952969388032013065161286513127733701969287224618833291431979090527678519161502311052207238265048327674275918724809297354488933524454159701226091975266053399954621629423455662311521716497035069113057103086415032150086072273017228678016530892714584284132460619993125441320265930090253801844694196527729893618964710356438832021364907412825157331447463569956184935601899476485874661911098829638847635150546549796073108825137994245600817200429465725189689457990512356841007396477310005721112330068108218409694724234428419675622191032748779818188349223197721983777534909095848579961735936041703372734092217040669113579807096101953442904585298755627401233021508707651293634983043194800899831143057624276138085969214267160061902167495399620131125903418498418295271409573336773820021249282658157289810366064913743843178051332027798912877828391425513743969711441077812140770280098298251041063248495319609843503239981674977014719624119621368800397325460444380902465601413576950224105184341952695070868369497355925995799334414798488163603016495191476661574804478370065427481882289707689150746622116165696001152355766710279089734876656703618641312641311262184426461237639139948540985786667578272992649234594373936044953162352703755214569447175333907599676541687398368096702687577179000045060373787269790879038292931743212762657151280263093495034776661852209653187516687992047477693098761595888079126375496669100632107650212581818170856911756139732320538410132608826047462362804538332464676447946048126959604162218559230305449660783099355484620697546161990788841244730734878648570911469564478844103977818744961619016576138603047549588276212647616723232806996020829309590947034598492516679290253853900851268204325628064322872982129999413456929105181590849481751049081578680217628908863260791319260783592419275330176415160178687811431392791724890771208798824228227173648945631364147123723720971512168858077036314464898414166542038019950934645910401255882014862612153723096926179020549602671139438284815963325936691301910926979432211969814800391347703636909596563870669134366025939870878524758516650078320961981177689480006187050410611098107366208363542756795040727887933742846407660684184328445718537834930375252766805451810336719686195304290311754055695496589637072370168787245038645650598869156835496328678463827014524921453666111151777218907470662416667818812408668423678308205597179225330325169469077689245498806790894778736735508817258656888455097602599570472530139949407583145445204565402097707197635933491383053588956907081942792333555359940944659328318947307270320560058116378194768337153666766627840539182195919810048647493752238154766231295665679524791715993662961350241710497589648643734643987968498482700224054354665963018033681745265090633135107200502309009186073387875233776993354866894015795264735984108515767675613025766137844808402521807766970548960836469968654179549497767195127968362677063447184845513599564508432725229709217849277559693778145188027978328798585036790906694290282757237733916508390486559749536282452175834109886245006156866656781407602280572659368393722956364629630102320119407108642387051758032912293957763886114909138677521748346133695289601933805637031516925429045277928278864069323286134671896718179949097853625901907433553983520081451066292424207396907854533489891636506802244191303132839907988971869021150494120131166614677638769611191678984029609242745291940400968124867199409893322183608944060520545926948369976312191393798140239281578127485011492039064612522280782774160998592670324527584959017980705108935465521743454670115321581450966732382984249674359419113801726564770151889660946395057819298161715028394379058060229133001233816703413541752063092521092548279917176525294008012521999947234973533535893434065201627364005749077539126070964470914096038858791964947202364082046460058142778918163451847327496130265554270733535224227800722285019009581050248086322474139798157702034974794953208763766885429475917441562665087466449362014075308950762456120583746223820910816830047389558243647277354428682588388721420103611473623593700858456186533951534755948919157953502452703826713309779506629775900600748531265554467022911524043644379323940329606806971726118987863938314023688805689526776449399297280079025086660844172003672010487759773875682981378756274523902779352466841656553519072193016569615249825635070870440203704396027839944394329175717651966557965034721186947784777825855359010489154918933922330297705579360603343786991820299704684382244627626249366072585080220955159770683861426768833137652752209627684285847395255856220034151742572973260833404491767504368346462935494146199535744337379594577464105897552877183758097743987106364890641583169693537945848331430017810885492674633753850147918184177387234072939102965384303976650710148878968365283721107318095761926918975341055319109094293030136097783136434459298882583789292494496585826199851653420028527410720980540253920001898898868068722413848162422726892933689151188361298963852688829297922604424392002359678656850349426515659239244353422262100977210858130455189363381494260124134353439420695282253241366460053559368484117688323570674630991722630524485382290226391923916410164420183737297289790976913410935284922012250014695337235561405071127140421896222720879216889403519631491712041140037542719831776135440351256631413014809197864271532160913137766775780545504102398419267125505632772876408250137074756258245586364615258229489407183033469816516969119994596391038777756642484432914698606617496510040096899956953986624199083497506137725157889356440152978170031907820503449322679222491658689802131370731621500961302508441554821991332987751146742542492458472882883354816800683948754615887057845596073487165374204087058775177718096559228504003932800738218372801467701409444884443513041137331080164567730913553509415171097661472106431890038133369121121386501629777807764346959190477408935299302293128411550044504187911897703330352456030038809741959917602068783004248739973928782731324371929035486805358994961149880428514110330877633619423486230036863450994728840578555562059627033563043523751266046932088278711485981443618485874847440175089244051647090040729003256180343370684889637506920260783675140562748830546859338654720395404360734579212253178877996427605347619655743697133674277660606465776766841166072163340424792351600265365540271362397221858846339969605604736528413059156418135979181068837033499638558260444622686998743111190212501063480057886533489452390751150254359265551782173840966725911719171215074431774484510431054805693211842949196703677952015616319944068374394747104251048946358488430632025724177014017691464696442137680224448752533831729767678356028051373664316659302502371129314380657793908342896945433323870236515810656618890220741790719144654989732204215980185577930562299769176203531061644110256367492121942453138395121759804001301239332178003618187881337035336850116092609962851588704233456025961697447970621711524243681626323328152538440953825108627940278303619428562861944757803213578839062971303614016010614115273009631358328109904740995955138567200920389973397319420201578082054191605484430458160122749560428802454947053993555234357540777924721498940699441772064629866870579643334037286571474706582947237730478470223366222318818880013729381569555296383447804301627448808566676985064156825521420216480282470376802139874193250785915719737153282276475319126465612218009763625115958109198876577681353851601618492919652343779377309510709000423489201366204939787032508463807143503506567427457990244535303613136706462519841883235723155751091956464468338607015869930300734133504400183575223566577173070268114239826275991979824261143020905232185391011540987864390538218736572391157583446441485374412267470215668646454050483707320441218483457883569484632708023055266107388649879872452645665309107583221769497368824876049561079472280848066174041746838701556308501948573105699553462516080338779169972718526333240407387142726620022980780831061258122985622325460241502418498882467670403500619675666745518502141147664539509547940953859617747581331699077348553638491378778837237521464693400336334122100023926253819662122089939300677825272971843871377820497699497713793088725395070977069448154007245819202163889023236462256313747386814115967792102362338805696087381732595836184293598779246101284585554624445578751127030337223844335818904580838838186005903481851072780168229313361671898410689195081747537719901490742592762662554892614918338618134312160957818215063362402678480933509558077791242531589754822508540876934520228437672345494069689152857355598386880369813136432110484458171922927020492029676755425698134836904116628034925514036899594663948941520680194594367891613028007352739741744149191952941166374406491178780166507718890654809392602180579687357204776807752206581299840363797593924337619694963602130338625150314341456657594911977674561536266167583762559494412237218874159047893477759915727810683560264955130990959187797819741619371984401646656176093497877559250681412248039535685536392383870164756325986127939453365822961065457679224393017421632847578624261675141279630455968774944230428921016811048271285143986695919912701802691644687765857796146815368305815558671076969435967841346018440366154264456910492597501777917590479555083335162778525322018831113825367575649777712971400352102747071165860183856440150291614568278429964593101829493238244047875360847863311314830316324702561892203289542535562123769096959223207677921384795355213836994318461557065115343664456817571631557731789378447778178929429909175556821821757693370936264056301446550644950565425521848276968707031623223489852645029145434579879357959355686680764721224120630865781066053236404422251482784663891813607259007884892495919355251386140376202383724381412048518328705740613247444557845466219400705283169685245878749127552997484875724510566575761399267931519546185474920657845445143964105989572419166176353119956139233546113743408474378230652224204198934757102567043025223683043242347498995359892665845974868235320443184475888757216503006801766796813695029396799238284835825543973211424561347800471102907998613598686524427960559093832577156290285535720055235025601629169289590784245365609016167655237104306180859000997863903079806658303898998552826981021774803977787289226471792016443123020153544506392885711637786863281186095974149172015958600779032076501442378430436662920897243201630123077074710411315221028119925916983888218693204381701156226466907619917638339098462003403086260270016619025095973238269913809264081386024553869202931117510100580561896829355632548657546320433966047998840441891866228819830143088032259070153411778697774022169699029751948393381562186932402966002232763905181026050079063543332632303927539935010265475097958606060188232318381403131790042879225043697174775403559400483556114238508650830502449219452205248718979852937301311546438485021442876885183563214083730377179331646257246889707724970518837743426962042699516545087036718098059304569898473010977339094075713359890033018934636552411063240099464861351551199266162110788082947587354741915576342119388098469013125207692599052038840155103967415619116824875712579326443603021465883569006805906971749657309652359994672856598918737383944286269170903901670866459834871290957663609631093978087887804446122867410538842318144212059439384366972934660460452064222047142360195383797834277671988400709754230132529242582035949875371004920204684938724797419902870795023860546549276527476943663658624611698340924675297955128288138846675811014466642255023543209292428792239359124323095098318739800906434471263047567492209879599049498635977671800547029466570539254145470307992094147704836538608283845165168720514260328749801584392906050737449235490490060859369542599102649033521346992038091656769663275995088770791883228961161669960699282616122603785606075596188567950283571829200501178692013101834585903019055784487582183428108236797283770299048980101067995742351345474735948081929984484774366301946870645335984114105069081562829041086451619557809871023712006605966427163236954565751979361706261152997210354802868492973371286955307075894115178013966179886209850181618571627587336100890370918786122850608798621890396468169613287495266171009350745464551484640090119974958995518376676057141210828834785083880331630358140931640625848621840537600871741385445446451648597067408619108003558764809685379563743051420692441341515202087477939103582273239778466434014927910546837242908322149848029278029769670840856890083857292695175102665512591125802666247909554276471603741156669115393351976135890613766407741171640442900058468051247880912182389735085886907438491018528424439657534856707974673307448260785103325064969123079654705390672637935498621351137181469954098447185112925884024270979200302365692392131392649371728765830926637406411042350020089286686349891061111843925221165417233902969703514817786176158927591475741579085349349390992040306457554302152015866423822302982666780756495780260867296061799084812440860817598423868766158233684738744099602360776154954417177971831901037795357504729005080810508101937919433189683216269520274320915309839310137016023924824975029662984999475979245095874278125677779680854829159740128665795206397867184067064640662123406375414145290282546173879286712491189612253653906156831394392116400208094530730459794677652671771314929618250461765233647870686972352299059012875831570067346020845754666039771757444411597720061426610504712481508428120572375766588522844792184001212639584520890395569704846265770129414159316830068945629166217106634400480094695898231251750397995787187010023958315511606100694068134130607433704976924466635735599975585462020422557052246264005347785056188217466907358033344756530084449469617584157694630304158492875769674595657997138465580233004985138042484758424889849567810600180839930416550623406829634573707708444825952274824488469958970910182023964525501895813299266404488816094796322609519618267136881392935861492267132598144986637301123060105365231718776931910141382096363843093972042627965922293433031562948857978531945857513884160912345701829229350353427312984735194798128808731461872100032285081006307164036837354531517605735818047506297336865341287489064126286163791033386811934934973333954834818164549433104413358121242669523474489038753028643905290239251769263239628078776411154496773161900452181731854872288490799144141045338196415841083639577310430271512483907946328682305735180020417627627046552275190065206119927598191481575215909060230017938314882592941324443336052687791341583206747599099282265213443055189132060817481736136497977522441248144016986833743712479084342915482791137120267536582489801222883356361307833311225428443351048088866525434983448674637288816318447458805863354636021276767275164958839176173215489479413416564969526012294413320374102927164836436515145804860086677083470188105691670710268466403602016331415527006545067097752160877687947339562462313080584562922567874833732689759368340965618146056736388434256613049966432776338355098161188898368385730904919962331201209300442643912015620911761357381779774233562312219652739191781803871691914982723088553052991791957828316124674029649894033884345594249671677052383888230823813553211281073795440626013840774041716364339570884674740787998564476006274052159080439355379455897907581151715347871545249443116225511003075947737709575438465627467239514352427385715118010880580049413245903207498640508381872173613025127944478989636564246029217858317154643568432790281129273411619022487474082773072164544485447620081045826747960993617444260092747229856101902996734818173925699588222461565844061382527349803209584563068510292963157824906307655711922833263902488417940857614250268616902033432438645988700594920627099548180877936757952140440372924702045995115948593262592793276153306772210241432192353450193799463078927884914018536613153827901098531233477413973916028305375126192358367320160162484369971712350165077449811515085181527078489619979199208302808298077508766186650978009292892516325755799129150882308192327094637250267564647506832446936637804896080827344837569501423797401582524785609511149343865440831354301700225162086798977637761714364807528016007322048514505808920766318189274035254447686264084703018546906557057994994559087701543124247432863208485802267410819476186796479658649536620578495805220721882595045511495527068469312317409154325981020338660309834494798865145622404665921660249117419076880655396341990078432641852987654255311002747667428551941487737328819990821147308337668696833524999620424297709471252144769962992196710795661594463280723208300341770401945849616836584903989094625911370271103635866673477836553895692719351608533483669972696106796958355216831225902312090641637800221679974254865849082210449929455913660282757862708787517224946039167200445411605981833571948476406657507327495240411769025761433062265581712108558405439119640041122595085506537295339359554679077956663880546603843134821081736727706205422497925588241704050287679944618495564085352309240403217852401982416532765153546749952454887039565139629219737873782334129172965965561396394251484168659540805261712003785467524014590639228998208816162560855201778330889631434300269292058533247260827737834552928716834439930310522488393450788418540866165126469864878700963875350331699256866329760838961231079858796133196105472999103900125672500144016292101462046400414494001613175932887692167310763604916246731124437035680059582544425190921169469318898301237861256786850997830669228845273594103833386188065609426793532288022011554124229611709659230331499258784688269499977262317497877170860889842863813359730288077011915213450451181012843307299974215421262168694281697105309077765677976178286745581798182796003222557868552703384845880795769255312410461598764900680769866137711405642702380921550121774236408167533986219423897995219832454286632651131726288380499496307716369620764559489474003416857095280107575476668969747455906147323041317893439732954199745616688262078476512470855526332057514951520215769973630022701897795695054171022002720377458906973389581842096331803552467779566781121313457600711819266901523458902301396991266112640781810346108324634421192698300005378501292595784646820013540050466923089496782299109248981787598484866072257771493202963554661312441521713464034828233588834179158249483289301116665866382557033545179313334999172613497166875164538444983323255650178259545448539036048828761549556288410929422250654768768452775971368861706759192986161893531745413201176041316094367434011482842383991446928447175592393371787737908302526086071933224374501867757267050288286647286249472843829627264184920435897261746907840288566159607221501995395796626594515002230133224255180070719223370516389690889588330845482464144798624083873890062057441653549385211668003570173681617359595482259265052385456876005016965897627412957849094564588473174509843764596905505880203093883360044252847335583068336871308505092816604942350498851592264908460711347419437528834687124532297888733819882953977519728187896659579320032505975251040258098025654029554680047922625238639223236960535593625211614149723102899212555484844616676387646489399376796983908425735678344339630957419991710272936043900782299524641153503929460363219398933121265684337230186551760309616744348606647701390169499583262996196351753526676714180661881835199892636147588399723129018385484936650807639152874957098191687005331620949190173841865173394643955545091638358396835295755147785112908923116439682878403777519768988268308733688206982361747777508558482272841681629413509379021636000433972639022596325725821973343481042780612452325053305829520062208346101487857877130185877090533747172229990329306456353728288492209889007631778761823449035056953481679825057445451775220267256236829699793206950196828455507088948301615431130520921357046840531364156465218670819515717975887941302811582411572145629615431249491073305613294358415113588969641975516483792202292876596226010720964637426824982001890313338593473502634401237180668006150521944505160882150145816363186077534999798251955980353713623881312103330553976824089374255312000008693083158655451227467003187699541712662219413183347259931351902662301113154227496875290308652647397882735179400064259941300094676148646085773256857284779452635070415306195815480387697242759627675190907527402491663517274203151082441118311077761977424241838533315408106707054320379668554991583147291615007090720551786486301775268153605003400540759080261113410581600602315950860398384345835354282760103127374177426942397570818703987120505146977397748125398126424725875671995904770188816502054697779255131756127934588752688910809969445948923652670557421537338013950258191662597804178025094935265516239184083498151887520886368753110016246340221305349403910898255691489394921010787062509119578141526081900595689468750824683498675911743076041136403825404526242432697345683288639670778541549622579834841226789718813824676810111800104241941159396103492824241957793069645536688464170107169755230116525737460727468281797635847053474030516088862901196692168273448032827587755175380729028174109333219318090187909297470528361796870209312570292927267889906620592382249811047460375806919088239238787814869685774733501448649291406106507209776797595454609860426876923148997586470500099421176577153065417408471136694758781301492931867653586405774490089653897784782109513199600779050937791471942870662410529112675208751944440303159618918959701105757634938124978760911905505610482145066148663279443058400554349922128965744768432472047692426379524675451791561564124871344272165003182253750827045976575454008324875548364770851403458795967932155330390288302795253477374619063002980638301291470601876707987465491209668852180044932706593970933019101581695941185618157646706547428236606029767269846915497760110450820941540697409569645670680528909235574379750367051187827061106198090409806537818703259234023664822190218012762886022464107249213975726857338771953757915958273080238936524703697687764163725067329914630513262744504046982255810912564000654532264814222838128367092694941239177318145049725471479380090493503575742967366235278444555261113286818324089033724668395134999481038180723769447070301980555288883805870183451988339712893004918720582175723490463118250234533387275344742411224874303269418375195130585302401353670660287125991437021964383954498720298533434636897496364039186521575146901048290416356950648652258454995552565913048899446075036871304260809927686827524267090241436791781308435746614910764331741528068914392904052162642956664362611061013209082959680942391122337280294236972670682661754152060109812827877007728902922167589091740112953799505920105114278972685242704751061305879433807218517045502830444827030127265340786379789491062331037054419567841417706362175573947088297018079874688039012969897944646819290815936056539916038217831913417369310831025101866547877234805184111858355321354474635062199478880898545122982340563040322472237243530453624315495366089481766332016734194499291755546472619899615472571668055230730755003001095812186547842467225680506343445928435373327359114590506134074683851809679659469507144868726628660121406661240530960459327068794775366543253821604912644947472704895841487939454412754034767981958976654658895669473671443692811742997567985580494618977163130271863017496670630369229674977153710678279601926996189344340791179466493787744442689510209310216626938911414738055293170452899910470324770007608959330400499432760171191272373348823812498445001513506950569645363436788780816316504984221883716543502527542962296701289595258979564468577002858971350913449523769573444652210292222681673174409682429730446424832818438026084813689289471028257486267701379233575460713383235068576100341212933527152856628491657459503711030455490988667418118635825151588402173155691573462058574407054103702134124965718709834829153530218384002493490188231034245324491119278493761884954586565782726584953534027612953373059373741147102328218183070005574689922205174985502342463259511822627057195050498902572770747261531733325824554865347589285921622730695665754965598008787640261608939795514447640579309129239943637952430741265798448565797798538848850765532599528901329929256590176892623253704320118708201313680221054373004025816253462173005074131115719591267435832819461466783896750713630122120239466204971108928274757004782431046182178978182528370528407163672842534254356752695680602412522421944129489397660640444092169347053554918357557779773210710151374405850973589593002509993479976125678709135265928698323860936457377579960735157646767571601383124699839858408228027309475126480822341007318483422280042902991599587226131804684335236871188130904442901476793176423599499403131117334926335158422843261926865877603838252448317820611313706690125910433661633846803690025992186124856827004930174135051038264536709846216997404361607147124631682783765645888790163638668961639018862872646814637564202596598892687414050964730897897380376814267496188134878946613719802763471362466410950829465758018966486017624961234273130871200478160981761934452700848994725449956948936101762969722862331978726544779615562786583948309401423085410846624669447922547602232510516375855430603115121765835974739082049979202127964470347463520012867495735407571789073350334747574921192196938562797696131358658733551172293312737683622122986708828968674797377136430960165451507518231132871346206606760641613107381987496857346667681187098114520413315405612174364525599819777190625051484035846746394346520114361625366225154596608152395526869638573347777085432790050768186150251720461491210078144699561612317235333942494386903003051999546295076349464935605385778879547928781643034021708310240612680832318341347196395640443683713972774602003345487399444808539743460453282482831514796701429214891501775041425285696814705249392845204686498153184771154047481553664213100693198153951128342609670238235239870597229538573135920873361521908922763355876649553627750091231027572767680488189546871169470355179151955003434258338282698524541913130465017694325487188967029169569364608042320844222646908498694186241046791006938726935295326656005078947022927853426073332286729603030766091929876853991579587116856039022625340585677117169251288161012661409819271203144785590579404714206244682740317249030787619022513724190537152346922590936934894329842379565199033487871355737360781859374842580583347733014973536040264610572095669830626564329490603502660706725486503877991349418149332278561972733528464749995898531099652705926632460058025414269335335200459684821325118821194609228980755968207069170570414305337646068624933494056389991173423892602761903194597834272710595472050007234107385294844547022850177056749985339260267480816713864338840826219524448888883763707772490286156230902902005167590691522444418750704076629595043938831606162797431751888913652803905568728645861828429047141509886511330206130959776116432598156701282135856472950944186538318608232372563817127260016089613612556688970359003660490825241186847266329605773905282806803153347119212344929644125560224945347860469500021471196557214045694518939871318483878798936386089004156180535038901628283684058820121085836236123120903692324742934979304933873278686946024569432750946323434158159270424178199152690255911283549488601932466636175029534360699132978270523692139503950881555021875858422031739269916504679847334180987536965909453238668715427045983212865210493198943368063003291621188245180927645895380589620884498300381776810122339407624658111965448843593939461747207883014975736743649765142955170603788215321548715789025579719296002554147399852043831455979726700359232276181886528103592434122475556681622217058289510499680285153932421446117714701412192612259825680087356114207237860267369350239584946684310318338175914234964567097578295725295053713551414320703155778520522200794879399830355713385730124003440863010731104045845844530651485360782045258874516413311399185770922182418949511351475904342540756098650032462771240444062298612695970943215879400603669356917854473374447204560511299297209196869866642683228925713754629345317479600901171825643336181201423765016386726390809372299331998016396048272009245789557011520096106502630466565225237638316062725581883277604019051646087985169945417353770018383420055438524276903019382118795816394968292163460264887973939529620043669659067942149402111637599957798382624910132953038915762458176808700684457772215337776286950519891514769516962645194051866139509364608756545337392448173307011747739287918785090827866468989667776034470812342230814733136892150891753619906188331387657594800790643783640347782772960459017016769027680838766768754523880195962818686157854813242381216480343821017941294698612562195448802269124882074868523925833978399820401409848806261278766416551953269445201879495253489122378224553126673102773036723475462439386489959259167561870317911227787190327444006844746031954746239961153285658306670397505731289803105195947632777710037505868125778239227590473296604341048583729207924201553634906772238890376963908356001822173673480682957262137284098913102471623436465778292093764262950202275467713536438794891664478709382981561481101951433773331084172347201340056951874776388977573058229019170210899161606716642325236959281237178320200811174107484200050556251077788885143530819365007656251359275033435856957275728345957623816051033921468888088770496798818479399500075324052063479589547633285768639542602683280420696100162839641346802583198156057784191029674050710222573820908372656601974771681387552864966438450381086058379549233644969591781031380919970613298268036118267209761819308705963325926781586468038931902464471134786498530220349198197733055703953049532183826158536064024868290686359359651713525894094350170881156207569217044021246383659860591068717797273986570414573413656258376379922493428983159477307413592901559531963982385878371561655802029235896367662746037640384310164908288908383188540566763822315958561309201684118841071137872208797071767933715401091942015135529415149116748466608095330248587511868427440261427153128634711548085892947708686288049182090246934733716374427684528353088143127650437751847473193418346985558393783659734007852446151934729163056894222862057144372208309721450132501310042213516142311954517926109606652932773587174066270926922072485842842142602610881015751376939603239858012321258890332819632955617037910304337940974587419071299425225315106933178783098954683941232183912757696407493385530999689627502016192959574623585670493431201856885630960045334129038682044105747811094742216247846879475492307223850062094967005546386046766727140067881895580756601408150883910568036736582589691416871135814640419709511927193499967507934977278450489070469908522834019475675341468111711150114337487828670907889370719095133488669771075677894310117052582952117020575398773287365478899239870489849175127446263123245493118344194473675239699327678946791322266395515976939024628700222772042988852122023748822085643437192107377795898426897015039437960864250880249255184885040837401599118380035497391420836909124815969174394599535494069181745638023541446992941931740273143710624723385278189070010579186212698762170966272969760230685713840588282266892840607854010195415966552773970269711635267093356691298247283322086051361678663152466129451384256002401031734383590181813207609881365992902505412015946244157766085532116058431053123478226744262700047047000925683704114848399258706400970588031464560903863126851168598791677372303671146009567688513014482816237195864843529747711285293865955494963388223379224478633891193173934623018332031723164579868659006849429145038525176081252533862243176240102749095149250816932110423750816942573513607009674913072183616612579719460179280875959186482861761374963133327747479576625956921718466222270355919062483830442799538472243049620104601770287185854680271477796048198684515958901359749648304469791965312352754273031044012451546888988777069472532409504345915017875128622140693136522878102715117366490307063306326017359737575803381495851166933188209985347346400367664085039787242526290456396495098220318321042107444234517477470942395469419673568844371552525826759815733828515888048527663318412831116485850874334324154178533142654105159522842638817494474720976323641901672540755076286514231036771975113711996406825377693969700295248070568588610764010710565044996278554800169678282594472373359865939703615051217043256551898119385626007562115562878451225074986501363751348911543522343638265414172876242638853649487513156460751612510364826378920334543353544446377129342895882698482561341904601509413525309889419557098191322935823605657292892415083647531309229226033038358752788759972074094043201182094956701495182582058635892750757052593202037976254928051596678040930425827258677670658778580966750504683203674984220109578019263983912344119149391054491977081032356892552138072060440605238814942437620747798368177574857617285433017229058564605122831486233946588418985048133413044464679183309762193477983685215389142763620756246484288819187278589266967453085559482015996389849750302662657052873628901633328363982589152457981274551151103774294762687430500565031956328038821319442414170574202842766510940128541865037746447420040256155949484069203179581239469625425419519034794842448979554600153360999241944635191914658918700672380711336333985368073356037585452001015472000986127755335208699173452370939656763356824997752812344543176793218391288508921065396643628752032739180801400314755356244778812767405050589567764173345331545176550807539517850328464974553030986290457765624271954117323533220470689864389066484939076147293570070625078935619931988092349582296974474565408420531950856538516472153809029356315856512004956363486316365559436445094462179288238775245866954495502286900954559677384682869773184303243291073800579120898865335079303597287558697777060543465752365825392031276694735658288778374933997857762155713337587533295729983712324457218316889431946767949183880240936909854806540455919394975866445914721005533776576410330635008823631350003475712270333308506411021113472561550384141504753039079220097351581379746984232315294621897753845334276913556187996227062358489480161519767473411656388235561053072431719034581995062685610354442989529701141953045869444444303330495375232900510036236627147284208597783939067925793643685399587357776496938801684520960695680390967664859578495981580623094923439066799490324490738861106051231380307468217784069204901850357765305726446341192401748116596477834145432913641023669156561906486800357286025712694864612715814807098659637561526704514316778764202058700419816561234126408562002116703805339644756906502049235287747801900883876116518259587883034303356054294868856155671050550126057906098231947089108652786146277300562134529586760946682292391705325578643680383460193150315333442736011958696049618347750480409783531183382119471549941028762631107178230762854524043475093820157683498116541077728427728718059501244240718238634187935912856778977373876049713931670584065662713495502725277113597317206622310536390462716522686054011212718377670497633063673615601179193233109832669635509740561362161586270750570734464331566972505349931226471805426475096915450703829748053516341047659800897545609670230204214190353506897930421501174489477495075662600194617780071618467852115257217214599588362759631237782697060581307370877723871646274452761763298620220222274465855409718162798682946331412989955690578326942389764573849357145683388174345980123108018792224705395781696551234601929094388311767366221551179387006069382572209793861318077746383931184377421951650395204066916479724145941562975916909969781892640811056548796537980012041063581263070443080396274007253372482406032760478483512127325990441361599499673595958791721788286538517845821406751518222933838923820592166192903215953659952076996747989528691857175622956249948320354932808341549664876505505330781969995664932820976096246568590809383102852585701753621441162388665506959483955184976767045772683862201791848173005536419553908565462208307348990517294143933216694275558141025832162762900882247642162114935334676846566070296753279490455081496571252997658424774621662847089440875171865810827197436905815534880688622120798456404545432675687088894913344899908666529795870064401356747210275933743305457490355462092818549215664221469527796947425393844398865140511541252235347639553677564808644580516652477312056472022571945877442476266479084653316638222208880536910672720185973247863359350124883575599683011922522830483545702725604382143096523917163428910344345510173445823915524955301252436256715597180285230266961536956792593312915612623361657953968652706935290346844064148062137986549264191092872443805306704479410966489460532276906158930012120049946576984372699255935297534089645445484470326330721106166272622639527924176273879383978100791390750813640303881382994325979780113362737598418510972208918025246157575531187042032719851898553509617412982391010865050399341302232993435472517533683760150139900781000404392953355471853486001327078133909983845766850908809046238886332118198678675934882537522341710164889241918958472409581636055829330793870769860232403185181717168909268162521339322791166763757882973857943757576071468573549894169302250155947537013231139099590112160801180651779568824685254289666407161113480272671245901054403792346783410996830722999204225638667022320192243523030526448311222634996639429301453481827394341738276040554222294254052401107961385934581175650574899666856851138817477153124961203806786159809985100941684890083718841140206062536084586759572244740000816244363843071574125784438540236906601345913820083258083298396302953433708371323615574053990893150027227099760261290394417834161365143740782282880570587477607415987459237048796173155440063106932144690241843448912080412905504695730745277377387056847320913433814983576706116747882927745072097772184832960123169184797019946399968493373689711138764114220438736041980520347123536895724398492622641628910295149516968819842179413345490700954988956208228685960071493356836487391601897612305570451726866288559024919774156026605430180522004241504170605767357820151447611136957154644363921680967196143764752754259393279439363563573355803888557817121268765665809168588589385167866431939615720535004731407614333498269482356658135398884920665776382819791730616153300709463806688457733380755982244783898129850033389095307184706269412446027178960307918197809590958181766402121790334379399586175273362243278168695899223280507704302268729511113427636696906216615494342947714503429632439057701596401790636791196000641043961610497984436017493880094625645610258809562901013053365119372931246691675365160320279884557871268350310246946845771530215052502119664741285645778657968463375003407313465128971990128682008037573820158302980574103044831802859005804063624067051715289540416248139448525889954610685702736134680585793390062844634573182282349527320452505576769342226601898714973269978818485124871495637028719743175431761160220814443385688156269275791465332789156881429514234042774439421302931477100044041946483797015786865265409873476312485273909056819116853002094618519403716639087141133526450567765448726797931242569992334704108887794695960441495334410187348246165110092921942664878569403890708559464434182640331870878119734146545082895874861411037620645621544450033018837131574905212208797873065085835328941008029397017232349012126776111862036612639571801718779451101281918272882091180207018703386838419963523669165659832093223470940608300691895582015980949253725256325243211404507628612940165854660893389657974210245649679720175580924738925744325574994045507378227975822430951734035107112415932999968967812183484610967297526685459022626945041609923393110203745864925137739693559997027246948706834259712463953713423119779194544377256216595031387539515586303555296462251959877356502922977101483431142422441705211406349123401145358635335397935047837532717847184249068987764133031726169492917214755127164252096816760665763527660424688814018184494556903016922937859943742293676190653067900986431342868888137232264452791539182806596044523855727745850501758460810819661693371007136546414924427443846315010901103037458712317150345567782742254271881690773605292766576346682105714129978014402103783507591361811018980489535897085542529946563525082424792218563790552787741785647242520505242668817534573686203219519070055619843205785544071940573628124126719898428964596544143054907811254091945663122371693706204552907478600646675527055129807163301357731851505153141318289911838424513416979319243898979062991397357272761667912998719342857789146745913769503540258458139371680220446368445421748385684400331402937870391755053711313102172881381371437757286179859426592871517993179480716087038223937365873972576457663518170320340660260663032362441883607860782489951929294089924443480544538924445983334035960588707165732461987810237544404113220720962080999215060564995816851115454084550015627459622215950442485143557370279032853452035788246106412130060420819746558976391390227833113600992967833154587037751133278727269305260071763227077908878225966781043572262953342277407891158500207385853521745314842375873991603635422059989392907716539909811358846260530295896312135578276143803293964253296647830618687303633052428650866004655704145543755887722766473358172322090655975360863357429002111816817199066314713168737608785366081428320896274320943757427305970837000334706101376260973409135628049945246751375092703364178469996918473097331408284364521973056025933727091263200097172989250090654296193788947179840457990750063624018966666714835518995786592524068271797556696151135397699959283493530309996957137806647642375804244898330141805674455095461742776970439283166803642410893238434042792716180177397221501112529952237915625272647375527916857092699047428426487835354113419456887909196612233546248343900101676767726783223017597029962665333155858973132850638762179828393711171392643607839865043151895539034400861860684608669713844370813863972243221444255861325980823632154356577448141236579238376590455981299591730613103030927307640965632213249080261230632824622683875851192845232641179461632316191277033145652508352316157044913683767754151360631523254216982394783185967133707523381847158548522690772557282826723169474999337310977290667989924810859922335640644587168492180280668279617788508134226207167233524085299039798536410466989270434770682279892550744903084610360867366938457401934315178956825073635698939445565879056369936592080328847854844840491635407865715614491530741023847479635574007958197295299342153135278645788341445192701417812113215879826965402665881716533049064600326859441290984052071917910437646280250193414293894967854716042313420613415724394046116623903976472579294029114700939299692405575669588377769745496932228988656016018155885987473352278541916599333563522312347360331337874412329545608338204979774927487991361094424551142625004781867500607768432296848841052830246532679050972980319058015104475176785105033974885406434683752495742910848337400216064858352446122029564058217086027418194291000156777294624968596626122907739492202916084092603085206547910806004385435701855977523666466593244752300367834987619871016048444613042752343852548138197516814424315088081674860052944950361649209801860951519720018968123549602760021242242170382314695550659381246345416353371337885908781081921854181365398791065938509734157927811651295626877164017571743380914830080308992003519043101258045020032464363239663774380310684664541922173557373585708585890809837620025025372182782958908400014660562388455627217425680103807950684421433876988035403462274015108496390876018609497494865128570535815847788438071002080776230644059471619897704540468381903549616939371094822712510881809971735467687306441864126784494606851642581751460638876486514099719540323941849284775550569996485434039162347879196316197225292129702666522798684961854091621261159295253288269793970290670304174739641454480575275273283406635772369511304337485664602809800218726012608196439007393060797857666026253705636199267491136142774203152160606629352879420026294799128139464832723501221676660148892898554932470694542511614353157088106216425138322802456475824961634508815615521340827222761391895443683641857618288383843401807333224872526321300284239279739174256280660245290052542641083580978372191235786010454196724336791552119777109224445743951209505140293100983370808818968743666212953318287496941903058847494300028448328552725999524792342141256710427934343878565543121705632895435289960251914512381746779224816500053093704573375543645257196394423675915477480487244693329150090970563417705331215047348664687646249255256209469602536661263284173262265568187459267622265032494343999273610644111489285764302770212285678336918419437949360156646481611895772169547580449068415582157726337328645514886289889512622142447948400488866832833807224805227729314230909438192202499503541480775499872426395845612857891525453546204200734824773974179603902765312981120823748592167479282084945659612103243601793097471046611232282675931922977372059797181511248808452242283831171534808837183755554557016031597284324587039462622450347629731892105433775195693959149242507521933835123128876623683333983387946270534452115547673787310664919211274387483711076042120405448242693063137691200489543202226878075676760214664108305687013778870242927330905569332710116057240460788028255280690822663841238039891327738051826768789015763176911274287630448177523996657570294085703901706492544317778726557819618773681965420994002079280283327445309765501568637728696744530297294805905251397772291008847803477687520529899077145903672461166928003578665550036715205364193544405062260915886483344181847413525379235101620667116876856335168726336637939398161334680088708407638432977132789051734944332842570319823400818159962577214610328540761389149467118497857831895651028816591703200574374508481189132383160417252070119163566498542476129959456690640918125420737192917553689123487480500776775521470412559069589847961342387109534482916824834270752921849023332067498651069548887102402500669556837740311937398893188429879411940971736329920049005218667155589067764703937801097292588564234473494737787801049974854273820080772811749377406183740421414344070366719402638103994388321035083913846534405648061602820584403556466341928298274943960576535578195481285235459957245428529898274948274175273728620994535282115904124583499318984667600265983802098299505253390797281598859573264129201707394605629931271314160572143571374572054745638880257917474277404818394217661831107308608416213298086910552012180277748454828296925954356573550093305028220826446842960859346670897990422847480175769755292204034674030752197680309200845055520033187306631441227664543020459718917937124138955062581594441345099904503181805691873201873682742606233840957970151464358010477043572614411070319053598333462917371891282329237849331172264703691027278962998332672253269862706983713867217517939007751266566918368340813915067821074178498024409593200701914002720015043595119803479037236563936481325476496851888699479074344135531332144321577871356910272040105658367733288159929701280953697641015229392941452476651807935768241513220887168236320967099936440519843579933221130136560829399644859051543491975067160909462863853139560703548828492000439092698395760750516980424338947658540751108052358631239031903656088050088141643383420511349817128182669431760786586267146291636150523170028682334144093949188731281154501298511104909905952575105944393008471189103725912291970960239834162118523609599097213716759373536038382279961475346553841389810749199791819592599901862730031478914088101640817854480355725074526544643599800121271707431845238618727360369994660080833645292220401962020351277197672197278508379643846292641041829818793170736724095304643078169983334695112494158334129959088379502851034944747857233344163580333542710277193203857318940747617524598531901772147014331621479002336924910382397327667399176898323011219184130713560592090971648991215173574430016769337368651878367960894486531198614385233577852697680064518707927578053741267714300883211831637231384258167456856974641884311546480037065265686661536993767273537189226559508300228163001175954460844962511859246644213963612324219100806275839786014410799915124739328464485540943138020326791981986309264401101934691069164691073167166527252303273353858561033220464602130190890175760694487660710643179376166023556889223959800016080599829494754343219926185243210546945857560748377750407478281010700166244566080963006290381920490600819993231469875891990960981122108282957940867377701527929536329852548697917981802091250935523996185679063309342558497195889946545609603152862371144659011171958783803994859671493750637066360417589433678799759348180075848061704019292192889010991013425904061606125185675275554212878959728056197575980978823500477347348701975913874328402205363692814634907071964880102666340076331170281261834511067431020007910892564942757828767617260822336864137429926325118950706244126946911461912690286850899661044733193316339364908214788549099297830144887612930378010553763806737137320239671031704729191184664195034346197493977327056553661576326081981485373650451564449244801913484762349399093584271853392520136126489724887481738782044421518354988720967660909539829871120833658342362077058345308198725160719902026214141657649607668988176957897791425566766984676737229395174308391271981810923976385921740908090773477059026680231132099450019550915216133520888889390984966746534471388727350754975883489417681106560030426443643047219634985439814355516751449940931593447611389371398058762415818119349539832774257548625687434785839549646562708041562631526433333952614861922025965239733339827544356493291500124874162760787203155296785757815535897473051674549260777254494053452637566172732249692037000307654421666468493189897062249102639822424679213089030496284690189876329136983249167217897288953280502291677247198017548043365757827655477837408931809939801548948157705011944455645840907131382590986626184425738443139496283624067203662402672440769733246947315078526432505589702808885540133656387246636625084444076898552778472919261447536027225871937353554027045690214096873953509143919947157061333646826103977605906447072078182859887536289231803890041500436477229978761787665861352514117444357208908518922109897081176749345890557683534508557331382438093385110767432140548548437645251021858091402031939414730738450594394562962611624787668416089336331340986821886250447607143932182568023797590608982519303842407723952950675952576203078333565086293186141563570435592061124414545874618894311231908735667155845339665086405892154298878189514949508007743665485828419587086681806000964675156911099456265911936384337438967658790952262275131934499900451064384820018962715994429388399497320298048864896841381127907317540558600253554143038353433324223865728017833776889297715457962791512757230885350807716631472165769220352602644777949340805239681750182873571680887956396946303035814634309268523966478201272932750037402894783898217980480120949391099122967012902143237016028325995611516821559226654781713598954784437734705779830605312322811473456887221810390724565379982517773452706070736749422498997773718294906337451821471814304680531609374780612116983107591229177387828178616529194706603491683202920070847448839936133655194644037368449722936165488160247399921627309147661614324344077799285701828576544603150781416444016779644411228070978534342658198836328605271744088502731900635197255806656682234486587237493404476528842599145264476731349931260810432738991069835958736970261322671651180131558217826514720949402543953656099750443262497882516519812931381250510927321362502146714014663634691363779342124387785826073025273424946931403554586852754624908471092881521761765581352218876307720250165095574112315372302274751436270828378874077931235233926775240274971497008293051192339480349202630281359665465771294692519822788164109634356565364787523395940156316391653367813460530307709834816561727483265244801925531499317729208704586852583700309577052932815729426803846384203199880303127782010390599871858977855685898586694834132935228343159456645642020211494439499438416485199593605854957744831168975669513542500504672137134266592842081184525214673673724229710345470167045182146857886687460646824263885402143354915034845572171569905346569036363808505427312015522171736583093589542240461973201897091076445890573451799407758928148859895724358305299405845413610654577979964111593205099285756421954967767959227402039488365925948187053831302237967846054947910597364185510368859729628664449491625048013823462078596936560020388994844247444397778196867773586786336203628445830966666877810615265739761798120938770327460723595740679766225505886361057445120048317036762502051799731750943148333798818654281752406245890347652384181039999537042154015179989475363312452537806355402220652330780989386690366335865990963176547700337753689852865677112267217814400149429816685860165455117983087336119866049825968015659693127652472718515329367858481073684697517158629784406426611956064864396562724332244692663364627555936386005520411591385730490278288497865596355828046898661450140991807851076417108375967939882876703216837822917093284507891360498145395620203737698823503721270163401850199422705728263928086968281835532670861832617905677614483766018285764197231478351972843335635458909149659939593835655879137725699729378723078121934874045124405214669984105724483277506682774515044855721889871722609379863419980710819429820255548042296458263980932165395096335174581081374815208923129557752172756629926876785600007825192211358722483416417635921062580077289517011057983042312721615183709380660745167880402472925010406462340503730593027975472006413168537973017531039564671415296709615615783088180922739723823418695586226802650891052693489420441161746936643738148857708946063684978768318978588924507181706045237336095571511471470470012371277091667256658101773404528529802018023181639480218191527456475117468441380076127850789562346261855239657303877378959887103571688225036385746079747658507274239718316037758688090549869115814430512466992496179009029124856664128429684934351398930993271181467224537556464005064936533880698191065512169914165447469334130678142990254175115040539301573323085343661047844617056841914979584199246738142287142285709292194550950176850840256994906552009240195691090400518344058481313273829101389175414405847648643451141820161633258758824022841104278319710550880299190656579944280453590046888589928814206565343652264175511296658612925803066946447196304272140763612519936372888397105718852609487024117494560715491727506349609577729531391612806380153018452234955536458901625644854783510172621808523067792478630887683006559766025769363390323155398003549725761231542010955106469504718333166043810183045329030550779533651539159664284258633469254831576092300888781992142251519644222505429112434156211872600801897649555432426990629597442572628310721256706261232897985452455213624441122985956907563456174426609105857975577842435893654321944647322891074784093753286984209138135325932557880293032053823257591700484276345244219441910250244405194195029472074076264553146431793847263002600136910790948779590407958017134771152582990106780029527284316649009631761023168874432833833219187277739450903513059978401493705908269393707638301596576218312766913925179391006220816719664546515882576938589631866073052156323420804571589505739097888707967998216540691491720294636023360882280012466589186874442057612744843895747698733538941702654047234390248406358847841309802241995178343122012616891772729919447551265537118198787965927692391051366571549362323085337851133237241703002746548356694036112140927462393030876515274182319049794150501562525390011231777942572416473541117762356398303748311069550067580744678614875156345355885678219586434963616403780040007981474158472684380582929590024384057950333861830422122519521583063728800222077221129352132365120316768511081357557293312806813697610287817473424637603412728503270784569274616484339233497399374781477762773582026032313456345183690060348029699531940232518464708233020832129318700764479376489404979958718612127194938578486290126781734865936535790116611834470560443917109733752837440712914112046439862042514903159759249337674052236668637301534673392423211987171243650201087395563558236130255703076575226197197828094084372509451536771501606646180050154519690540946640993249522459443695713918138847125729234477540303980007192240198488560289785929200659230376151608658349074053479447986177787265389985576496162321978576430388151757032197243392398559114986569345402890569169876015188490871828291010575332406232827808322071170986301650797332078695521961666020206876813544673125979213939640697178909387737889017992838737249003911401623650040609676817421140349336194663904016711380071085134482686872449026143408369807138431727500080205294227806409985348944522624560864919498998399244165008460359197666399887422666726668038384046259045016617200903347561988474629126759328504627491420595515802515776063893543067465225244029752992190307758223984700205524192511131878250612242167994721777022843718158626283375074826230910526528052278628467460326488541039095578653501705112058008362815307384318777606234820064968027824638596987050448885143143012322842726843445899241368498868109666442500590772493511091520087900060928929627737067487219062169455345541491276843893500349882820494512274561842742187702349157897699962081739682197814858247823652979318969749121645564485966250260876391161267308332414978887269380909970742473837468851711308178547984346547798520240549906022517306189667144517585572266979654342017353144385755240182645420511885559788584588613117373297009597968990216486182108109822712057152348730313989958801509714404702749508635346036098102600981236496285699243788976094777463463587726471943612856263691943390143659185542521298444267894145156863527604911967633842738104608271285245970264605714460160432806858371654508713696944513615448625495514723904384936700153405730729915082073062780820891224576963858502218207734396764078673449374635843471548055515556044398506916266908186092605191794588892744829350267258054763688353662466003038669125588768249386086743977782403904990819692860621311686613389432866719216037023495106516124879483409434567336895576545526634820130067000540892593220682264117695055131840723549333952078264732143215171673102574006678603720205379888015664771104978580760730131304495503946502890920284467611059006436247547530821240005341067377755461466229150086413701271506438387627821313623558574034305395323405871628032650453775800387865254531586734707108679731324031812260478046533130165712799746264484803845086297541164456927521401542521876169980636930451191460702694806330039669482216299019016108025062933005893341339014581156768067844855982012078118137673250219142537792418116467566290051157550491977951732731564708175518602920948927647454645967606137019882669067584947456841666885853405216036501804071231478877687991025915098302916861511747962073471263033186822909699435321731089222057085947876446861990005632100168024140707082594572780854799791534088083252085592684742769527953759764828942427646669868489810824339965957762119024996668774731076512296275135259813697246114178383146181026712596199001917043614790332526830566887732667692062182577112005352510059408605277863554105572954489696347599542613475818274703006675992176576265561357379459057794857246073458902804884991713669477716764686396175873783709697755259713024410051715401052540558541736678932735049090714835920765477311095009058112767896606446715837091057003528614426318316715518386308237804569753394409803684920140943818508929107548079972670696194134838246687922274774937275719591638014243032481971909148475203348184389081290815086436778574969549221715108590473844182075538670560620017026511664588951107194562729245793708294454509851759326844829174379884186830359468577567554819592343904130586134023067912355873253704262063181843831780827465712255845925922966250525063751472023939331660228132178861024018607522132906496103526488681745937428445620259928759605331596011356956219206981668142741554849002332604722797431152653327701896676333977646229712651281473442137071892973928030336066026327604905035265701959932485020084461939704800448368476494111513734803452473621776382936016091716185239190533676135231753941152198534841488168851165345762717316903068529277435790383425249208655410994092192407336284921174579780354772348438571392144952786335987331183752688857509132350599870344738971399148600186612393469728656991318343598729220104183884362459504904011219079617839363557913339476431532866595138358916671065652788561577986388646965568944930384535583859441442613800258738725088571724162689440266251146900023928877387082402850795352039047373676677588843177730609658728271194974804964043659494449304338434394123123092395587935065863036592312463462100506002957011550749085477680950980992482512236861456829427293368224628935724010399684499896654133966926138677765270320356147416754666487660817570556571938187213262482778028913795376561292287616064904659305718846922671506546502646284018184861715554507931096095185927647706215584388986087381540739731466172634304559994399804579972611293617770259130570174634447571317846787520293131710788628740875211580787960757571264919119317165246075471220764472899470107706317245792052521625811293415961574511520101011937911806826226811327124838830824639079833156985798223003539665299478909380409143357330781135552310347547828857964405938796180496515468789304436730271982084519343290099371322896894017987899997385861085197677696478436025966152825208604666261492711334559173313334529161230329569298355442978160211957201018881356529912387315877756789389126899777291288466410702804058285283106817564502437323726507233260805634630525985583756396009279756659097263723539933454077649883509030714036433349233271420030259443943791195936624172816709078870860089002994599731770361497706087884820018731361254549608966158554159217394028221492084441051436140617214402722773533988720176151300441663882275107583449881700638145502248983471011920234645600525754068094646733286463586777951013117139846600492293676878218661789575711499923794739670718481195751677306710360166798261173886219106424315887139858827577701258720629372045386804539319201202248409156077124277480248116000541356492273579591743347011691261065460053482358050579212544480845243641810611601686451396556435364076730933646769062489145836146093427027587466902018693726516198317243267491586947199584774763159770453222812038959287186616820141252277341618494779550700171485760969932335681079125877314504989384466828726251351319818329211555246031510383908823318267714002737604422424744530032540921155637318669649328568651500234399732098462420350612402172220419016495213417622546808142847322546900091380651924639365411852959320596719835635395869608604627992962242398595634035079344912640459319399943520459099411910477693180911490441811606266882119342983914993494843087519349404890598983751603458323507408223127896021205682104535909025147482157149019527715992771188543652160206762319979401746045120220010243285434327705446451367585829825695104581414199343174486475867170208197175388512490573936930614815306187297441906834946257658712168896794371576025529752728736212837849143682713015443702348013305673968004871949810574400656968634051110807491630329557290332154965841609966102084089670159814631932385120444789405416651438720546246512200633507265124508310725295572379962382193541337840391603329806350850614421204089357124456213042908040668596009802564316049194377861389822930186067529531110873862536043488284885738367922646249886027607393206424571241130222671895493912268674815308412434439334541108850468173676585029336829170481550669909931458118779391752652541303570926785171097854198976426457851508767765914363804036689381258205384699906605207357493462891753623426044049971842625645122903173177872915948906072813657282532314345609950535673567841242069888365397050226507257194610155598271552061729457284724893262331159774076615867591390696969714692750157899392699543118682370496708156907561015974491996680180398591735167557560402045788976633151154691306797228834436925802410714304327553742500227714446303170950875444905776776522444624849614778705184097779708589392958696225223481537677310975064167863012437898708837315202842960162139502805190769882978935621053814708155697532037378686746993405155964420436771286133816742210785474609101252516079348144642695493632801127173583839010636980318092666608581228619837881904276324740634873504063050980900671850594311464953237401756693267636774027714863750725599600595240458064329805414301504420145461879898827916746611332446836287136792231337458034651131831181258404685105909080123518427946875885929607057621231557677765494881622657357005662473012635408023164870104400894199254419702446552769438934117303905863980419987598479516943899265968267544358149790036811385221197038251984509147472138502076420691314443135557323429672612462965520952046113687060275940750322874472466181823619569213875295916134237107471410895426219787757498263963887874273781311286562777228750404842225810087689752456136320117578319759891993169150962295545733374588513688857037406379764631257042704437907270760677202098767446484740073815074585317044996045919377376766023799562827716990456461332403452038364887489905801945566338354683331089066192791323678354533497829652506183893817782536159335573744297520369555790055558831635791930816184081194201986906981420914666413327869686560586966324602688788901951156529344721631526939225738624796375275907617989130417447954971628975285278308226338724733688657587509076241572530772336078290808682862934481991500703966154686873638506070512373587370144993404776750696521713126684977163527170041035164284446768250490127016594063509039205960269026901418037902928390627062205806329165621298509083905512573496669270743662540372531878971422625014901289340877158014774009708721306659351491089164483428036115153342387547290142571300743593225580576426441130258684250692681234802078934878901091358840832522055625938714607545436451080676536723874822371126292988397485558564234458538576001635415872045716699047817285976150112016184904827572960089520258874389703131064040553026818571926225585605405079125436120855268114520021053439708918878600927739126668461849466893623802673821337037780596271079088373091563605642670416226149854751440720543962406984987226838349584900857345118086244043016538019898838272951727781861951587697615573608913394804872003294964887919400416893916176926945534956069872749075525868429179115284544091565494817131687058247783794693451400683323758863718986691300800459467209048505703083972710757441134125997081865706577738973971695272968981196486718152017423447509498475628733129044917765359833225539912241652293189032000238076783005485977706095330208368478893365705102156178496696370739835975847071697030493221437603776915893809111751265605808325443408042416198986132858701419556708760998238520003641089677569278137974889922984265123837893987328834082970803518850154103705092685056128388345746354146182839415543339026768317647781185475877737977541332668597369603677039912096337623240991848896045104758284440998604412421133679769296414601774096593567041175939527160259882407559322059320686202538856277412176011611222688144856145460894757144251548112710787100082987035028245145877217761941358289040193313706995223283120100216104018804413153815139365707737783437763252748741098730398743002814785417746447330459134084383066448071976692979102934099068728425199767452068149486036056855136048207692936187498820449144334539944191809794688940892315851966964860129379453281625151303125726863358478779791520451684874078433715725603890762755954204494774078550925479152281777612159109109931985821082637510209564216689866852938925371718584224467180358937467437378942386140985275209401191725065936269179820752791733047413765128277421088413820672249145427399308845729960700952297748293064193573247097150835951919388155579555080195978177413032268055818581137698575998645232833480608293325693615708023817600749817467547386422602757303908301278133926605740874900661834062118500390273317932702421392371340651674573645188538691222019860333918645590235586109509983694819975715305710547198096641180519816590331769868179780062624029059502345351149389560548998316303709851570772268327925954558489297790381529275900340117739200528781431981789724620912279238347921607596642868103473359766827336119311214711393641673087215624456398894080102167572057494010606855595613190418673208232701189794895883502913642249149726689963558840796790493513559630890929338150726848838162986797388437375967093007268515748275956146997943342039666532385250181419126492496378944650670496110861297238699812764932218154687673258945134925854615069308700925270592238961849251853653957384623308028605751200877339021991629684146465683837516236960814206517232893505598690925968162823614594748341414767059220296795494026176926601872953136249619233011085089555344058153989739811543941381005574025475845094270572898430841870464704711636882296832045134339878304577345405397381900754007127267024747068059543925167425805328629017655123405368177073758742018678989917994807844404994155104060584243060372962843220363563773651662624674066291906848971060824109793828715999084354707156482377188105684912469236045261846010284446374901394742598912333861526283403881403745326749092054830109027027403596801226539454053138900881118763701693133929242022949905153738469925062327926978258406443768549192125279778813679145145534741515044853859375178324725410540922884624097344782067176223015996446540884161833139012876086990259165997165064207915169515827399258183666037700972415873143258408516217719621811859724353418187774474307072681833914806191021853495106897280621227626608127485925786413850291163893365603331534603417472560356518973098118540514248479943904900791873240469282200347020708361597145134815717939580815900069520697557631907167424926354721065043938353645349623033432385378373401754175026462038406231754052142027159549091382628950079923259332649000800283457590772189855790760061615835138765114284278142571129869732553728536232462967824198550194131438023022986113294352794483236712359821567514315453404980961745456257758154410402770184377558422953212069936839440116897339260068750643270812658317967516497033433474751482436879230766859856569426915607934016017865968746272269388657602767816585269670709394990231077792187845048077907705501174312320028878874475570880619203343119382428742457990177870396710006037329236371987956448402991856211446309193748663400419412927160064201444142230310845284497361672301084278922468813116575599326717102722472795907485622960043595947732639039885691117408528696766163187877813093420043371794826032418430000559817303441755530159085659709085181476608690828581182337616609007949273064742707005896083490639899043582491026331393101155160585859410056164054777507862179035118988908456091228732780094984643284353722308479540042638588153971774183862579621134001801509209114389689905325800840838581125824939451512437904194368036687490705365929095982916943057190950781556464890455021780071561239932666480025341062068649660339381966115930543127233951347026069911586495635501721868904177834259712102270327588486106799127538971217123841399076811879132754937018159597974206808808199492088001139372831244022249280319334257281210476429549962191920680334786537623294666266487548778924817704553485737628282039223714998451528058840272702199801284681059167555110366507515386290486019167521379914671051898736562149757391437069541635938456564864418951965370392834284355750394797297016313801796098751312221668727506244788479195998534304592061791068746514387449398548685924316987061739573499220716190152777473820470800272528765786843871685839458923850014808427213895929896934582533233708013450114538961005482960366020236538272702674453669888270339351843486351406108981432423791811821245000350340078704068625178304294415954377741246433872783915894513811868223921873269624662000266902285734780660610139160159311729357954948325805543131640073325853468644120879230437171410693852557192991253802228296544303536427025199030063552645859680573303425110144957039560825310683853686460896509778044810336612211134774814441271073603872427057082304365199911591374683870922951154155113808845952791137913465502393740200667466899579365476891201554675568831999629237126122441743820757602069449914029350434024392611047662299200413852668756466549505775383740554343929256507193142176556101328579036285870495790426742126021499726476395560442774931725692421819965333848925769354090834412957765124507595909541024030613363523919918848361810670207134656755011860745999107747508991308607241475116104790510560738237993592689203385925369841391605717612502616187606027382526387377621098694845331858392212017781531468603110433865539833224298918264766322269243191610105267385042244523150638663845053592966662464584288431442847859047258954380512298908228287499480883296471633270563561701677692907323341916003772725072392771081555707949404589464151263088024360088484751760963824763622785155793387409988196820170810689758342405889257932046459915333161519202252246838843659254127551338826293757433008748301947779131919729372389537752808183816331898834448169593625593490364224982566815184882392957528693493403815223908848573066729774779778924192956407719179205130366572138799634150928670748573568335854829908641012451210931803847447067680193853915765600905446820616474273113952174711218632141505739100284696761539960120230055876503288951071422643662816808380850223627782501864082415078720833934266718052647586231221917948375069505606291394516116140401934381076783705859625139026016389922932162184136438072449322286511068555959969164385745364722702119388765360136216629552042144162699194258495369255533137447846367231625460114457057728075875473030483857555425090322880665146064739021048424376682935893626438349744274075297452615422472564339315200648948983735047518409517848318833748354509057809063043700962119402116849481440331785597722727601662199375573790810383207933649042196562658088036010918321729850702192105908728221299044552100217860360588757655679619305226028355380556771369562736059825782444612547174045868906168290473863627234698011707392913715308612967973314047627999215831890903802491979298690524006334970813022647412186354007316946885338980063997772248591861253386291992327481346255921931472058628351873854489032033114350916213591200406700242480537133967755185023348453829893593564230041700143729815510131012945065423826799777103624589993578338345040497963111527146248642198743214320699704243718300663251734413373961189008228632286366584136849991148632365522938949748732701297171420189581560102380386203340808530154196807508841926278678454698140368568497928701382024031973226351532925173796718830544666055484269644786264281353192195907482978149445623647307564260575629718435171801876833392187713182093674755383508462107743625197410744308986814711238425018983675120890229530288179955552398259973200635168551654909439969518808827887040423874881233587488361704001075591602647444083731335007327729296932776146480336713787210211667490969748285760392352439303620148431856504544324818721936540844229938702820111703567570931350334593063934214351819652162127704057331624665093410305763309549241325715573558506612720570264818039767561775284049585613673098538328269283106930078707147114926254194164656149989098023750293819773908043295677939393426596222692972935569315904039856462996572200722910404919975533115800320973346488941080419227558267918748311312056960774606986911073508263440261570475531109187269717052760869416874743727910099328526114626323987235130383201862438537333721227392187055589414124511767374758860736619007901474920120241183875166119809300397006787011716377361721460085480616106399225334235694633242489442233604931008146580458068559637580835369136051744572438212948927365038788919396733940434522092557156121847331935923958976252033288268780823557936177858263636016254399708085724801009770442445628010273843677001152640258115735537907234867892406238888026314918262794586781870966796515026186348557694114803108521601672451498221167928353909629860997938704974724514653167554965270335407360761781447088941329029117981141933304153920493300925660476853560428981784297040539173530793309893217057801948010093389035475230663668223019749973578054065201741040614103220743571695377564082878556420890287288156349685203177640343222668397695550891964776506299113021705434857689838528242488097299598249806859731175633385565138032997140250925375998690137061423654779528052935726866150142328932446952258108795259675264426298335559739686920405940658885000634369372091483180991885349722538169794577301106296887865844350873744728989635209864861864913007557970388814794150730617794883199455193414698294934142403745232157814089806623963888609756956506387720591459779716626531002419564391099710635092548904598413092365574801837886463368186342455176890503330204895369795689923075628832112924528046569623886151829859780197058408879620946259890873272013359548387660783225329976615379670346234090622612108213332072732558010778385894982031691426490559641843855878897845942425644031371059783455721381000048756442236320423438721054816427019109060195364788127475504337106463134002044743510609387661223786111232859637524320342385951290960332778052679603795919740450223106380354969715683831756842092656189816121770016077320667982459328981554298976612414901480102067269337777552118730674580553052991326397834734060803108709726778788716322603380868489719177721028351074659339675794187744976670920510392045740596088386409470477866621096448620169773469876736490326768625537803151708103271211863276561535217981212836421616737241193942565211126590517993001809388176610241988118420845662240745083454979847281333190082603653544269564732783337148109998272300616984006443333633075182481184863030102368588380733033989967151946760046157014988126474338979184330344087948144442675660900180524539660874686853474597827774202801353031924356364865314454207265378425060749874585434419887462608231196212074903586958402174782980333784882529419899120310822915697211494777949733165126077184924365571645418455435866870590669917259211821028881404647619285127655284194626478325706865530645703621897513411065820107675282854862361638826276803840147372266268908214546363046275692589220008516882186061978284543624788674680152856886016925028202141001408664226952132230901751540267174710449104593537216811629361256755267953003103467718790575576432543376335575226392148950378282533327399052798878006994650962826045116270497447162444128369314176581694050524800092216518365388891506079161225490108868771752407597497704942964551418208935016566502762614065038569011882706835142611096192927976061264318872503622971988903865552624991101860511167895032073706839934027972388707411482796403929467609599611959193046862150825104763873678674252486042091120405070146178661264971420646347361025542426313579424183699372644079947414290345280536343679572864244850968667422973193708801689519820216547699213312198397215182131155030514761302830619982178033887581034070095039006153543320928715982172256336183647058004880488298996290179827698643491358670443895141705053868974444550765995176015280749282837843076587741130038383730952995857044368453579343011938100315720450347052257840338739631572807452092660891906074126082586308406036384953316493701061017215911214736745303333937905329803291550396458275242314757335673000325212173024057486218859518151544595864141683008278046537249874409226914436011197857964990049144407702239654138339820380107648068892657163079285725058463826012794899132323271417352135348609517319352816352299758342890329129254563512802558099254655036894616312659778012693637217127731809690471104692685890318904489644956897822328725545903106947086235539044654506405181773027138409255114178018874187426796536226970762070515823197766352524964837028075510048912644999413297920152003254977211166311082270741437959667424169972256171263283237193960425605509555914629722614333063006862020370998805296735386239567973233052655647946202912122951757496206371259693666037467460207516740428617000531975364382995161988129734356706320951624051847854300191331080870988566570554759471542714438506887356276786539265244611433352717353346836316262060406785907053337347439435026489008881231877867645633178424115896983846438681370587429771854628607363476440809745850784941453310014548331290485736557465700912267980012044561066879130215576831621501671277063125697739319836884814601005578901883786844309117465463356015718889768574166726925397657717744155137579197930894661771043478955230939031368217241935946449185629609277076683090898437093901766580289833793810851391385023308390852489504178201214247297478619824866110728110835675548096261594120678204743021696899366417786349593237449431097790394809432670867381270975933068884062298284433852300557170652588368479560935167381217169907245137463307940305492400022343296322126456887096877211435758470861871996532253815736593413382840831457159939576789809538842684756826043713365605586316631239064829184044495554866554008673177817536651619925921107561255529729698234220694809213973047039011896061782106471707425387974460432744296826764328005127564501352722615132219477599910314069172421178321751851463756538827651596351307044238269802381259525746802715713269330614135702850337564853229466592736773684809779382386448236393453564757432457630437467146497939662336861806248501277172467130130019243839751495848757612490613452166300387369576030119959585292865442973105510394750219468646523566440175273053827856657450535249787105184340845263663160170537572466668011289408755606614806755355149935028907500879880186465638853807048480209252421378841014572047522231713855177305232758862893547556842200085238562462030806628804288770445964145151248042373674378626724148137837704152094471365140023117407678816086918049576950727640969870509283909894743516767508859867388190737578817084233991565480845605403695081819056577776287088572524075398415612375763499103562125096934000062232670544233980818929637053166740417064805301726872830144681895025583606614770202552679358911290288345754202627956592315043179139651278800629554414265912253923451332001862455525470013600457901089355160110415125813458798374530646288071276697411953765011549159838525143826090630886312510961079413769492145296434497642028707484615668241588301358362926709861557997749936725285271340960792088563520211187252595764319950203189929488491894179508634167414561211479851288603079769521149589727428038155721369032184682354592632608782498143554752693502225309095547300935856008442106842901097020052714932521526645375851184724818791351020562174893307629558894388702397138460753668891743932336355134750869392023214086949583104122907801768102766415455277716212234398198126891507321341651583251594929862969757375932174338169151306908215152350904327223027699890355341190494431573452252492219903006473378783498720369087834325139426199733403641557034857113940538793907240148538307018819749430766072866972944247928318819314941230796490586080100678503311932455233154532725842624302060993640843460983630046578018145010826448052860448585308343920400108819186109289547953833016427126257672499154156049245228037234552035565473111683857970341698116868762914513812093818263954778717495998817072171359403141222652412536734990956636571669967605034154719666515716969694815510207409931237817344315187490873311416375390635948728937960782984684139178888818345040387014094560782556287420227164978092166996629668977085857649545480932992283339140256167994331033827122801246147648704032751235970812857121695239396922088054347439129055536057581619029885699078625236839578677246893722130327388237355644947507863165951889467941053403244398198048324730636449122126249063935363764796226203153656911386355941790398809478042022652443165669350791074581753392588029463064398985098913211758485625529331736739474161322852081305466961089532460162858945381861713368638651307968882669593443789610730178811919253076176026336684936794505489028580158491927889074461533015700124303649064078145274478517984153955401863493489390608128959382175871636557919781220130174185484273201882315400460395368940450066327747066440936251470667708857665585579888838462255928354720466964903027037745844946882614515654894602930000682132018085748914034497787465435774261953811653566174575007300883451403647346525428648955774836954277368532959960607605597548816828139426814163044854792912558978916255176401601549200718479420331936574578653863968996103651899215009987702832541497818972539510791058060100365508683070210760210298899831192630378463895727814951629991986813947982256230547802168217630197051813018693271699100093110467038564110095408461827108338852411934774092294454477543084105874102456667350211570482679531701723120056212149193953703904776062946530363683973917926579073297217080166035729798050242590848935984729925506496937243822723007063879345938922417187860289589722245308577255038100104446627879857923987197398895971229152540345823433745789451157974613376544432796596858116162310086185069552179688306065353278870840229916669565953229514255297810587387804400401684118901267179641331013885700848724365965945841246319254396445580952887872324378577694924059983991820035377075254909246131135738979638188507222295011176459583332818408684148449945251359965583567024394008233667734021603995870654842087671467775649253967286406718036007092361398108725421801906064885524907214427124983563927620067603936558834650708661902226661759565369053518611033770663004155472747130420519355415695115612770688978327884432833849392994928301044854727287862719656569518103686004700383998735251393270114009364498090663979962332142654550564763573646427956010051756312893697340155267723663352277065673212623028379474887768774072107729891230143755808455492863633086959174852900917201752084317229826200210059744797846003898535714122624625508866457343361394584133323909152184960710737872739253322884846666005804452837993774853842739326179936778372908655402758123759111576511517538731404971846229039910667889053956157117394025939506881119784232684347923712302730283744791140100833529042179666402702775576563196411495732086184367028934412392837311641214207977946597303514247233035761284362890497686206959615238451978627001458180849865547205581917660783858587346989196721095297589979942610165791415202174814460290829294405100394396990679319099146280081358688726302663636801657540296555447598070799212922856897782348504306524516200649826108241555770186629579551334726573693926132867047801695895305279886988104828165574334896731732728879806431202820612661907615214284969261645063998087513419723244488518988587596838503324296079820981954840086510402067717037438693749717697219872559043136326275597969775469423385828661684828282501462679996920673295744845762639982192262156484172450308591813197767394500625696329683212396636585695506721348157875955498227333974686722359294426201587122932122725579371912421577864329647285730149727409657652822441766671018813578958109691489197671034996713882788132527957365665350751073464270331780454231709435803881145212393859828926783632999733617807215769914633564755239225085052833223016208581988090090048583944336423866922109737752344244102473704659590493152336826240161793245875118353677472422379690020145294601765395979112511381747169760361767133199140257532964879670307604416697559985391562414625651161023505345446396360332947043780546066316999809888576023624751573987498682967032916883685814718952909827298592332254000473943345981069796526896992714533916586100982161432847095260772468976300922163813220547622737533935773144198401090881704330335043549486152369831733815027580239035988062294725662796036430404603797104080094780187964611916125722170480223444030170990135342744200649605770806529207004273040508697849329813330535648225105656017515529229967146130201790595943320193294404395764363329884337463280017019184392102058364063819184868544616153598252073167656593647561750763651662164473317115178422313446971525935117490393625854513939689730508130108173836910486443644495480741222836717951612319639117347603364559343682281720627361481211699838921530830129940202890663440017027752522063260357435325890319477288142273441180636853308953339021266401278434841199946582689472514673644767071397046564458342930260959538270901981392375329380129002726311061630385404464169686738535538971824383043799711798451539990235881343951801597371392639811710642608668412777283752608704248602692609987083890385880389535496851965708669021027294372683780891476177247171427036286986575682301542283348485318460398216305161408304432450751334456105605343800813829273393200392619509770102949999811483314004921497520874489097783729825258039949688444455875562818918052653845058246957612374309714531047118640088249431242919449966220406764181825705477506201165691199322044806713466065675440317353002868253137534948884150609398995827405535187632518761076072811137725055204063164381419281392965167348082648503562994834228673655684002323488452776117110029412474931787637642777915802316217167194067737651773932948279555898949337765458369768096003726199619436625514976350186567092236936019128510481722196224854655596703492962314690534215123406371230585184539828511467648826901286998851641125539220981774220919856067500005686312219488210071225322280192311866004745954194819242285285900609404813734174819595557143351888770914917574741635326479251236652644900671617031082401426789452610765771237725617938416326749190126633687042988765692233718889225140315145615230951981850170703164007350866024545372853163344818205189856590980839242889413236776218314746180967849076922293200131486642670513386874648428151096167277470212604599801977157003642078897074850080364836118727808998376722840281803017969798308614854082739417953900152788884972365587344147572436645702170147551651245107568586984247909516744657117769267211009913644206084181229788648431278049755235988546256427316257084761370943628956639418828754672605935088990797672416462833005301191812935737975104986316512680917071681654286180183240792238899318346983689959123435292119498079703194418060318237280877328839698106148080959460466119393692365507575448770078791227447327586295418816159454739883530365428476717628004504186829671963832971555676551301582136945609885648395971199352095431603019183030925486116600155619307671743493175709503116468300976938787501756738014024290613855895848954127194019578587700263297672003297340475388314356575658755997216451176898948743186178549683858968326886998706718580591114365225635147308518711043520620615499946805198156768802557128139155375278242895165178107033820096446538555208138931319978887567671733732454575725643927311262469138366725680975799082868912053529400519590681906331037922252868507301535982279970091839536779659056442404609235228390743749189318866614989389051229086266279460413362772331370561987823455876845316285641186819796936965182828036451197389809130795686896902925485106464631585720645905566758911889395877939271741130944230067119697710339841748498295346742841242431012344656956989733986231261103310230807979062598022380929420595775497971848205374914618208116226269670954542378481764613947621689737290586707059755329094073550237500549161685239174561188383071910560879119066916493001389145296807406739561287590763298272498975598595920153524801302094951142871468848166001431727957541492498605434544379670732161807753929815150900250243885415880059411206893005897115725543865628088235586839903880679225169831163996341824505217313716031865022846934413611468436259065788747009595042694220668688006935961866420433922675880841243330719274100021583759869089348406940993837292659127686290248830182037877809488319856535269950897222530615357892117012349920844454129542590230587931946526472531659515165630224705354852183025088246555771568541451159068300275852440314773714572421652765635003698353356600879187361738364854544455794988071709266614732468802293642373772167513587586816728182116721904909206908172414584853947021236703981237340756666349563437982809756002704882449461639860138093173268931830213329342062897537127367772644156524103342503003149664102565065477549073575334618855235344176747076713444738674364605666684189447054382391898952561577070452887871304673015767742747255075203121501537040654706972199190304440643458635882633242740276528298619357440858542920870781620222801045119987713664205874663628016500389765105709327458332259738028631466630180448682271581231116505763235373577701863816659136777319610002890050232644227790815762096107623964097930299443776752774298679530769181858485436075992105670147675129843638869237848632024510221888496865130838415275556545661164276888466446887871866589483443290111088931699889718084860750541318357926355708006409762360112322000195025964838050861216541457875399049753148867113987322482543615685654829903550821619941085008118954324784642165870199271623231696195453873353065162472460527475598355823820686035507749927048265391872623936376364539875123336071327939458343482045112439397755220277915602522300913471848890172251244915330626895814970734239988255099730378792713654174644843600650033650709772239372281184991329657666741426582780884344741672381874275334419208120351521272595091551636410360933569163214718904467313496946102450799616764639076350948746059689585149818027147174855531522773903823500710782940224096204201765547375767843795214982299261857276888600010948580915188416400482004937746169604040481488998773129293712649422100227092000571452672131805411253208827537123298911407073380658361235985879249071652009090415895405671417318236865548079206337435504455514600292822209282836336344244098435759850923853841751384894966565524507674843669240541484275652530685176189787270154869442073334166956199973163999423833841224392820760208976942785230354740920404384291888060385744084267488653947034293165747261351551818261703229579536763314783704861873876533391742286862785301105870313593245085865656835091256719758215576363746008720544865923771386053216422884340935727568008538019219874140723764106192244221191813742881269970971469959750684564317109057495360278687285229250081891524804484333349891300119700540203631204462352954514164743849540109591526362049933104105994810645961206013570794415924866178997194010540638953518996828582666234946628960974296156284905099613397527968537216562588597355050504421558120907492954206591941011764347519060859424800391343711859835455701868079546635322789414193952378962129658124956967023755640772286028265702288031957605283301465104897625457471310904996882204745483770626929299555560685552120768323407016904361567830071903864774025053110416058196613094955975938646943935868918070331493906952648137040131776876617048593668262064355033910881815180390172026755646024616292382095077590437283901447376690022059384426012317066470869219431716650112928272984986766711153567816275152979164095829371015762137396597011478852348390912559489818282738968950167570795214904673318119873008821144416485117736637857677256745414900875611573647476701957643919018828440864502237922399137620765025029842960684566478184186295826842176642765569430727356490843321204080673041832409292321256473393054163052562677186472932611674915953762775681860718344200812283592457228276494237728350079708203994133082241122428064338995461866304675718496548231972190297045880784602723892342115444666061861323183061628128599178345795855842535790162490072640446613394996868613163476358679998295299773365530104569990320265165950818584330799633194879082107324671463310241490844169471553737186369429039740581101437085295841668755965295719562756490892782340880618661898096373325757836773347585401925192699075006554224142624622496528066203551994607613352629652207841081187910944890001347799242529651814976836499386884436740886482060071811247195055834237819299529361603857982876694283713487077345966071752419187855462571406254141153816257055830669911757580578130117482432420773774182394588863556244159286199960971633075808799720532418023538053223930813154226859203997709827864816482556850482259244709671812783672945207080368686681989919136839398630892752922996019931727959499499278261551073595058617592414485386136580144759430664480366929021927652945460758198368845559798348751451724986887117720439699831873617287862100837823233230951842294296030070567199992298007092387935238729239519184346937205705321336783147175457370001250409386578171959528363408498182657250786621061354343776701599271330696741830536728405975879310322232884089571261924085953345494389359969480734463427854035178029638557739783191975757834513191054026456831798884100961745858147564135579451423635640324015693851107848340143659980859152957957769618358876620706317087046890306756554210896922945816621337556613038865299577948126980656161628298198351118519099092491544322265943134328733883245223322398874647329862798034594791073662141330188581706559296167042534319308624902004819175768368940447452704045515892705866013782529059481243626415715424971888921422060646316227384770595485347796909912379093117319885826335271442487911387829044391474170170131554745148668716172067366084587120527911056138208628250085078689583240026503830818875647011635417819686057933825403884413155357698685528069738785885847826062333404936391813190649774467455107758215674366699100009449116038927901019826438787580819085097880998737185242341476910108138153543109600862645698288150028915618208718584066018471077955485243207870569918423143412240417712466844787410446112909077237605285404586195162832287147336359371709349225095343297985989250864615685827173170912130369670411425654775456661213444008893938440208637935579812804576703104381570028284791408645540682270900319374638330212617619257530273381792685640663644941081560241621991495148816514858369576454242361116087917130253112518039719274282410297382765224671870696751152669091368834472557470336653851835012264615030575454867582920465006797338810908443642509416434832300992043624407560473334927793351095485038546547564450749902860752016087916318365899674144412551419875521864601575008775313808092746030737771474827460376120421766819988093111859333039200196621154679339808110866397379683252712153466703793325615982237697515059757948693128688094171974039267436134652090090514797661509552266082816770859186062158287951177386802987626023010652739182295541392918020056838360135679872860483416916652487086962757779741806708471114811595228196181682379446066996833600335035579534312511612725344467160112063722352068121255162528031252563906005692627824649052422502206934159709803688308998372051463441115976028226909156682192013981830822014104610660911290342036586081253355079240744261814870918055920432372301962016835359462310980067434984625380787247802532758511333502460778884339034019700927663958167698908010736101410136996852925703272553544622464685928707526568105993689915218073801443404945008266425932413139826915084069991159279791908398130223304824083119093195998014562456347941202195900928079670729447921616491887478265780022181166697152511
